@gen3/frontend 0.10.73 → 0.10.75

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 (250) hide show
  1. package/dist/cjs/index.js +229 -173
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/dts/components/Buttons/DownloadButtons/JSONObjectDownloadButton.d.ts +1 -0
  4. package/dist/dts/components/Buttons/DownloadButtons/JSONObjectDownloadButton.d.ts.map +1 -1
  5. package/dist/dts/components/Buttons/DownloadButtons/JSONObjectDownloadButton.js +3 -3
  6. package/dist/dts/components/Buttons/DownloadButtons/JSONObjectDownloadButton.js.map +1 -1
  7. package/dist/dts/components/Buttons/UploadJSONButton.js +1 -1
  8. package/dist/dts/components/Buttons/UploadJSONButton.js.map +1 -1
  9. package/dist/dts/components/Content/TextContent.d.ts +1 -2
  10. package/dist/dts/components/Content/TextContent.d.ts.map +1 -1
  11. package/dist/dts/components/Content/TextContent.js +5 -8
  12. package/dist/dts/components/Content/TextContent.js.map +1 -1
  13. package/dist/dts/components/CountButton/CountButton.d.ts +19 -0
  14. package/dist/dts/components/CountButton/CountButton.d.ts.map +1 -0
  15. package/dist/dts/components/CountButton/CountButton.js +18 -0
  16. package/dist/dts/components/CountButton/CountButton.js.map +1 -0
  17. package/dist/dts/components/DropdownWithIcon/DropdownWithIcon.d.ts +8 -12
  18. package/dist/dts/components/DropdownWithIcon/DropdownWithIcon.d.ts.map +1 -1
  19. package/dist/dts/components/DropdownWithIcon/DropdownWithIcon.js +17 -11
  20. package/dist/dts/components/DropdownWithIcon/DropdownWithIcon.js.map +1 -1
  21. package/dist/dts/components/DropdownWithIcon/DropdownWithIcon.unit.test.js +18 -4
  22. package/dist/dts/components/DropdownWithIcon/DropdownWithIcon.unit.test.js.map +1 -1
  23. package/dist/dts/components/ErrorMessage.d.ts +6 -0
  24. package/dist/dts/components/ErrorMessage.d.ts.map +1 -0
  25. package/dist/dts/components/ErrorMessage.js +8 -0
  26. package/dist/dts/components/ErrorMessage.js.map +1 -0
  27. package/dist/dts/components/Login/LoginProvidersPanel.d.ts.map +1 -1
  28. package/dist/dts/components/Login/LoginProvidersPanel.js +5 -8
  29. package/dist/dts/components/Login/LoginProvidersPanel.js.map +1 -1
  30. package/dist/dts/components/MessageCards/ErrorCard.js +1 -1
  31. package/dist/dts/components/MessageCards/ErrorCard.js.map +1 -1
  32. package/dist/dts/components/MessageCards/WarningCard.js +1 -1
  33. package/dist/dts/components/MessageCards/WarningCard.js.map +1 -1
  34. package/dist/dts/components/MessagePanel.d.ts.map +1 -1
  35. package/dist/dts/components/MessagePanel.js +1 -1
  36. package/dist/dts/components/MessagePanel.js.map +1 -1
  37. package/dist/dts/components/Providers/Gen3Provider.d.ts +3 -2
  38. package/dist/dts/components/Providers/Gen3Provider.d.ts.map +1 -1
  39. package/dist/dts/components/Providers/Gen3Provider.js +8 -4
  40. package/dist/dts/components/Providers/Gen3Provider.js.map +1 -1
  41. package/dist/dts/components/Providers/ResourceMonitor.d.ts +1 -1
  42. package/dist/dts/components/Providers/ResourceMonitor.d.ts.map +1 -1
  43. package/dist/dts/components/Providers/ResourceMonitor.js +48 -131
  44. package/dist/dts/components/Providers/ResourceMonitor.js.map +1 -1
  45. package/dist/dts/components/charts/echarts/BarChart.d.ts.map +1 -1
  46. package/dist/dts/components/charts/echarts/BarChart.js +28 -4
  47. package/dist/dts/components/charts/echarts/BarChart.js.map +1 -1
  48. package/dist/dts/components/facets/FacetControlsHeader.d.ts.map +1 -1
  49. package/dist/dts/components/facets/FacetControlsHeader.js +0 -1
  50. package/dist/dts/components/facets/FacetControlsHeader.js.map +1 -1
  51. package/dist/dts/features/CohortBuilder/CohortBuilder.d.ts +1 -0
  52. package/dist/dts/features/CohortBuilder/CohortBuilder.d.ts.map +1 -1
  53. package/dist/dts/features/CohortBuilder/CohortBuilder.js +13 -1
  54. package/dist/dts/features/CohortBuilder/CohortBuilder.js.map +1 -1
  55. package/dist/dts/features/CohortBuilder/CohortManager/CohortActions.d.ts +10 -0
  56. package/dist/dts/features/CohortBuilder/CohortManager/CohortActions.d.ts.map +1 -0
  57. package/dist/dts/features/CohortBuilder/CohortManager/CohortActions.js +53 -0
  58. package/dist/dts/features/CohortBuilder/CohortManager/CohortActions.js.map +1 -0
  59. package/dist/dts/features/CohortBuilder/CohortManager/CohortManager.d.ts +7 -0
  60. package/dist/dts/features/CohortBuilder/CohortManager/CohortManager.d.ts.map +1 -0
  61. package/dist/dts/features/CohortBuilder/CohortManager/CohortManager.js +38 -0
  62. package/dist/dts/features/CohortBuilder/CohortManager/CohortManager.js.map +1 -0
  63. package/dist/dts/features/CohortBuilder/{CohortSelector.d.ts → CohortManager/CohortSelector.d.ts} +4 -1
  64. package/dist/dts/features/CohortBuilder/CohortManager/CohortSelector.d.ts.map +1 -0
  65. package/dist/dts/features/CohortBuilder/CohortManager/CohortSelector.js +56 -0
  66. package/dist/dts/features/CohortBuilder/CohortManager/CohortSelector.js.map +1 -0
  67. package/dist/dts/features/CohortBuilder/CohortManager/cohortUtils.d.ts +4 -0
  68. package/dist/dts/features/CohortBuilder/CohortManager/cohortUtils.d.ts.map +1 -0
  69. package/dist/dts/features/CohortBuilder/CohortManager/cohortUtils.js +22 -0
  70. package/dist/dts/features/CohortBuilder/CohortManager/cohortUtils.js.map +1 -0
  71. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveCohortModal.d.ts +1 -0
  72. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveCohortModal.d.ts.map +1 -0
  73. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveCohortModal.js +320 -0
  74. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveCohortModal.js.map +1 -0
  75. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveModal.d.ts +1 -0
  76. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveModal.d.ts.map +1 -0
  77. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveModal.js +2 -0
  78. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveModal.js.map +1 -0
  79. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveOrCreateEntityModal.d.ts +29 -0
  80. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveOrCreateEntityModal.d.ts.map +1 -0
  81. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveOrCreateEntityModal.js +85 -0
  82. package/dist/dts/features/CohortBuilder/CohortManager/modals/SaveOrCreateEntityModal.js.map +1 -0
  83. package/dist/dts/features/CohortBuilder/CohortPanel.d.ts.map +1 -1
  84. package/dist/dts/features/CohortBuilder/CohortPanel.js +3 -2
  85. package/dist/dts/features/CohortBuilder/CohortPanel.js.map +1 -1
  86. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.d.ts +6 -0
  87. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.d.ts.map +1 -0
  88. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.js +55 -0
  89. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.js.map +1 -0
  90. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.d.ts +13 -0
  91. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.d.ts.map +1 -0
  92. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.js +41 -0
  93. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.js.map +1 -0
  94. package/dist/dts/features/CohortBuilder/{QueryExpressionSection.d.ts → QueryExpression/QueryExpressionSection.d.ts} +1 -4
  95. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.d.ts.map +1 -0
  96. package/dist/dts/features/CohortBuilder/{QueryExpressionSection.js → QueryExpression/QueryExpressionSection.js} +36 -28
  97. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.js.map +1 -0
  98. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionsExpandedContext.d.ts.map +1 -0
  99. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionsExpandedContext.js.map +1 -0
  100. package/dist/dts/features/CohortBuilder/{QueryRepresentation.d.ts → QueryExpression/QueryRepresentation.d.ts} +1 -1
  101. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.d.ts.map +1 -0
  102. package/dist/dts/features/CohortBuilder/{QueryRepresentation.js → QueryExpression/QueryRepresentation.js} +23 -30
  103. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.js.map +1 -0
  104. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentationLabel.d.ts.map +1 -0
  105. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentationLabel.js.map +1 -0
  106. package/dist/dts/features/CohortBuilder/cohortUtils.d.ts +4 -0
  107. package/dist/dts/features/CohortBuilder/cohortUtils.d.ts.map +1 -0
  108. package/dist/dts/features/CohortBuilder/cohortUtils.js +23 -0
  109. package/dist/dts/features/CohortBuilder/cohortUtils.js.map +1 -0
  110. package/dist/dts/features/CohortBuilder/hooks.d.ts +1 -0
  111. package/dist/dts/features/CohortBuilder/hooks.d.ts.map +1 -1
  112. package/dist/dts/features/CohortBuilder/hooks.js +52 -1
  113. package/dist/dts/features/CohortBuilder/hooks.js.map +1 -1
  114. package/dist/dts/features/CohortBuilder/style.d.ts +6 -0
  115. package/dist/dts/features/CohortBuilder/style.d.ts.map +1 -1
  116. package/dist/dts/features/CohortBuilder/style.js +11 -0
  117. package/dist/dts/features/CohortBuilder/style.js.map +1 -1
  118. package/dist/dts/features/CohortDiscovery/ChartsAndFacetsPanel.d.ts.map +1 -1
  119. package/dist/dts/features/CohortDiscovery/ChartsAndFacetsPanel.js +6 -4
  120. package/dist/dts/features/CohortDiscovery/ChartsAndFacetsPanel.js.map +1 -1
  121. package/dist/dts/features/CohortDiscovery/CohortManager.d.ts.map +1 -0
  122. package/dist/dts/features/CohortDiscovery/CohortManager.js +57 -0
  123. package/dist/dts/features/CohortDiscovery/CohortManager.js.map +1 -0
  124. package/dist/dts/features/CohortDiscovery/CohortSelectors.d.ts +23 -0
  125. package/dist/dts/features/CohortDiscovery/CohortSelectors.d.ts.map +1 -0
  126. package/dist/dts/features/CohortDiscovery/CohortSelectors.js +35 -0
  127. package/dist/dts/features/CohortDiscovery/CohortSelectors.js.map +1 -0
  128. package/dist/dts/features/CohortDiscovery/CohortSlice.d.ts +91 -0
  129. package/dist/dts/features/CohortDiscovery/CohortSlice.d.ts.map +1 -0
  130. package/dist/dts/features/CohortDiscovery/CohortSlice.js +93 -0
  131. package/dist/dts/features/CohortDiscovery/CohortSlice.js.map +1 -0
  132. package/dist/dts/features/CohortDiscovery/FilterPanels/createFacetPanel.d.ts.map +1 -1
  133. package/dist/dts/features/CohortDiscovery/IndexPanel.d.ts.map +1 -1
  134. package/dist/dts/features/CohortDiscovery/IndexPanel.js +5 -3
  135. package/dist/dts/features/CohortDiscovery/IndexPanel.js.map +1 -1
  136. package/dist/dts/features/CohortDiscovery/appApi.d.ts +2 -0
  137. package/dist/dts/features/CohortDiscovery/appApi.d.ts.map +1 -1
  138. package/dist/dts/features/CohortDiscovery/appApi.js +2 -0
  139. package/dist/dts/features/CohortDiscovery/appApi.js.map +1 -1
  140. package/dist/dts/features/CohortDiscovery/hooks.d.ts +10 -0
  141. package/dist/dts/features/CohortDiscovery/hooks.d.ts.map +1 -1
  142. package/dist/dts/features/CohortDiscovery/hooks.js +38 -1
  143. package/dist/dts/features/CohortDiscovery/hooks.js.map +1 -1
  144. package/dist/dts/features/CohortDiversity/diversityApi.d.ts +12 -12
  145. package/dist/dts/features/DataLibrary/QueryDetails.d.ts.map +1 -1
  146. package/dist/dts/features/DataLibrary/QueryDetails.js +2 -2
  147. package/dist/dts/features/DataLibrary/QueryDetails.js.map +1 -1
  148. package/dist/dts/features/Dictionary/Dictionary.d.ts.map +1 -1
  149. package/dist/dts/features/Dictionary/Dictionary.js +0 -1
  150. package/dist/dts/features/Dictionary/Dictionary.js.map +1 -1
  151. package/dist/dts/features/Dictionary/index.d.ts +1 -3
  152. package/dist/dts/features/Dictionary/index.d.ts.map +1 -1
  153. package/dist/dts/features/Dictionary/index.js +1 -3
  154. package/dist/dts/features/Dictionary/index.js.map +1 -1
  155. package/dist/dts/features/Workspace/ExternalLogins/ExternalLoginsStatus.d.ts.map +1 -1
  156. package/dist/dts/features/Workspace/ExternalLogins/ExternalLoginsStatus.js +1 -1
  157. package/dist/dts/features/Workspace/ExternalLogins/ExternalLoginsStatus.js.map +1 -1
  158. package/dist/dts/features/Workspace/NotebookCard.d.ts.map +1 -1
  159. package/dist/dts/features/Workspace/NotebookCard.js +8 -30
  160. package/dist/dts/features/Workspace/NotebookCard.js.map +1 -1
  161. package/dist/dts/features/Workspace/PaymentPanel/PaymentPanel.d.ts.map +1 -1
  162. package/dist/dts/features/Workspace/PaymentPanel/PaymentPanel.js +3 -3
  163. package/dist/dts/features/Workspace/PaymentPanel/PaymentPanel.js.map +1 -1
  164. package/dist/dts/features/Workspace/StatusAndControls.d.ts.map +1 -1
  165. package/dist/dts/features/Workspace/StatusAndControls.js +2 -2
  166. package/dist/dts/features/Workspace/StatusAndControls.js.map +1 -1
  167. package/dist/dts/features/Workspace/Workspace.d.ts.map +1 -1
  168. package/dist/dts/features/Workspace/Workspace.js +1 -0
  169. package/dist/dts/features/Workspace/Workspace.js.map +1 -1
  170. package/dist/dts/features/Workspace/WorkspaceNotebookPanelWithControls.d.ts.map +1 -1
  171. package/dist/dts/features/Workspace/WorkspaceNotebookPanelWithControls.js +1 -3
  172. package/dist/dts/features/Workspace/WorkspaceNotebookPanelWithControls.js.map +1 -1
  173. package/dist/dts/features/Workspace/WorkspacePanel.d.ts.map +1 -1
  174. package/dist/dts/features/Workspace/WorkspacePanel.js +9 -10
  175. package/dist/dts/features/Workspace/WorkspacePanel.js.map +1 -1
  176. package/dist/dts/features/Workspace/WorkspaceProvider.d.ts.map +1 -1
  177. package/dist/dts/features/Workspace/WorkspaceProvider.js +0 -1
  178. package/dist/dts/features/Workspace/WorkspaceProvider.js.map +1 -1
  179. package/dist/dts/features/Workspace/WorkspaceStatusProvider.d.ts +1 -2
  180. package/dist/dts/features/Workspace/WorkspaceStatusProvider.d.ts.map +1 -1
  181. package/dist/dts/features/Workspace/WorkspaceStatusProvider.js +27 -56
  182. package/dist/dts/features/Workspace/WorkspaceStatusProvider.js.map +1 -1
  183. package/dist/dts/features/Workspace/types.d.ts +0 -10
  184. package/dist/dts/features/Workspace/types.d.ts.map +1 -1
  185. package/dist/dts/features/Workspace/types.js +1 -10
  186. package/dist/dts/features/Workspace/types.js.map +1 -1
  187. package/dist/dts/index.d.ts +2 -3
  188. package/dist/dts/index.d.ts.map +1 -1
  189. package/dist/dts/index.js +2 -3
  190. package/dist/dts/index.js.map +1 -1
  191. package/dist/dts/lib/session/session.d.ts.map +1 -1
  192. package/dist/dts/lib/session/session.js +7 -7
  193. package/dist/dts/lib/session/session.js.map +1 -1
  194. package/dist/dts/pages/Theme/index.d.ts.map +1 -1
  195. package/dist/dts/utils/date.d.ts +6 -0
  196. package/dist/dts/utils/date.d.ts.map +1 -1
  197. package/dist/dts/utils/date.js +12 -0
  198. package/dist/dts/utils/date.js.map +1 -1
  199. package/dist/dts/utils/icons.d.ts +18 -0
  200. package/dist/dts/utils/icons.d.ts.map +1 -0
  201. package/dist/dts/utils/icons.js +18 -0
  202. package/dist/dts/utils/icons.js.map +1 -0
  203. package/dist/dts/utils/index.d.ts +0 -1
  204. package/dist/dts/utils/index.d.ts.map +1 -1
  205. package/dist/dts/utils/index.js +0 -1
  206. package/dist/dts/utils/index.js.map +1 -1
  207. package/dist/dts/utils/time.d.ts +0 -15
  208. package/dist/dts/utils/time.d.ts.map +1 -1
  209. package/dist/dts/utils/time.js +0 -105
  210. package/dist/dts/utils/time.js.map +1 -1
  211. package/dist/esm/index.js +231 -175
  212. package/dist/esm/index.js.map +1 -1
  213. package/dist/index.d.ts +15 -45
  214. package/dist/tsconfig.tsbuildinfo +1 -1
  215. package/package.json +3 -3
  216. package/dist/dts/features/CohortBuilder/CohortManager.d.ts.map +0 -1
  217. package/dist/dts/features/CohortBuilder/CohortManager.js +0 -17
  218. package/dist/dts/features/CohortBuilder/CohortManager.js.map +0 -1
  219. package/dist/dts/features/CohortBuilder/CohortSelector.d.ts.map +0 -1
  220. package/dist/dts/features/CohortBuilder/CohortSelector.js +0 -20
  221. package/dist/dts/features/CohortBuilder/CohortSelector.js.map +0 -1
  222. package/dist/dts/features/CohortBuilder/QueryExpressionSection.d.ts.map +0 -1
  223. package/dist/dts/features/CohortBuilder/QueryExpressionSection.js.map +0 -1
  224. package/dist/dts/features/CohortBuilder/QueryExpressionsExpandedContext.d.ts.map +0 -1
  225. package/dist/dts/features/CohortBuilder/QueryExpressionsExpandedContext.js.map +0 -1
  226. package/dist/dts/features/CohortBuilder/QueryRepresentation.d.ts.map +0 -1
  227. package/dist/dts/features/CohortBuilder/QueryRepresentation.js.map +0 -1
  228. package/dist/dts/features/CohortBuilder/QueryRepresentationLabel.d.ts.map +0 -1
  229. package/dist/dts/features/CohortBuilder/QueryRepresentationLabel.js.map +0 -1
  230. package/dist/dts/features/Dictionary/metadata/MetadataDictionary.d.ts +0 -7
  231. package/dist/dts/features/Dictionary/metadata/MetadataDictionary.d.ts.map +0 -1
  232. package/dist/dts/features/Dictionary/metadata/MetadataDictionary.js +0 -39
  233. package/dist/dts/features/Dictionary/metadata/MetadataDictionary.js.map +0 -1
  234. package/dist/dts/features/Dictionary/metadata/MetadataPropertiesTable.d.ts +0 -9
  235. package/dist/dts/features/Dictionary/metadata/MetadataPropertiesTable.d.ts.map +0 -1
  236. package/dist/dts/features/Dictionary/metadata/MetadataPropertiesTable.js +0 -113
  237. package/dist/dts/features/Dictionary/metadata/MetadataPropertiesTable.js.map +0 -1
  238. package/dist/dts/features/Dictionary/metadata/registerApp.d.ts +0 -3
  239. package/dist/dts/features/Dictionary/metadata/registerApp.d.ts.map +0 -1
  240. package/dist/dts/features/Dictionary/metadata/registerApp.js +0 -13
  241. package/dist/dts/features/Dictionary/metadata/registerApp.js.map +0 -1
  242. package/dist/dts/features/Dictionary/metadata/types.d.ts +0 -17
  243. package/dist/dts/features/Dictionary/metadata/types.d.ts.map +0 -1
  244. package/dist/dts/features/Dictionary/metadata/types.js +0 -2
  245. package/dist/dts/features/Dictionary/metadata/types.js.map +0 -1
  246. /package/dist/dts/features/CohortBuilder/{QueryExpressionsExpandedContext.d.ts → QueryExpression/QueryExpressionsExpandedContext.d.ts} +0 -0
  247. /package/dist/dts/features/CohortBuilder/{QueryExpressionsExpandedContext.js → QueryExpression/QueryExpressionsExpandedContext.js} +0 -0
  248. /package/dist/dts/features/CohortBuilder/{QueryRepresentationLabel.d.ts → QueryExpression/QueryRepresentationLabel.d.ts} +0 -0
  249. /package/dist/dts/features/CohortBuilder/{QueryRepresentationLabel.js → QueryExpression/QueryRepresentationLabel.js} +0 -0
  250. /package/dist/dts/features/{CohortBuilder → CohortDiscovery}/CohortManager.d.ts +0 -0
package/dist/esm/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import React__default, { createContext, useState, useMemo, useEffect, useContext, useCallback, useRef, createElement, forwardRef, useReducer } from 'react';
4
- import { useUserAuth, useCoreSelector, selectUserDetails, useGetAuthzMappingsQuery, WorkspaceStatus, useGetWorkspaceStatusQuery, useGetWorkspacePayModelsQuery, useTerminateWorkspaceMutation, selectRequestedWorkspaceStatus, selectRequestedWorkspaceStatusTimestamp, useCoreDispatch, setActiveWorkspaceStatus, RequestedWorkspaceStatus, setRequestedWorkspaceStatus, isTimeGreaterThan, useLazyFetchUserDetailsQuery, selectUserAuthStatus, GEN3_REDIRECT_URL, showModal, Modals, GEN3_FENCE_API, isAuthenticated, useGetLoginProvidersQuery, hideModal, useGetCSRFQuery, selectCurrentModal, fieldNameToTitle, useIsUserLoggedIn, useGetMDSQuery, selectAuthzMappingData, useGetAggMDSQuery, useAskQuestionMutation, useGetIndexAggMDSQuery, useGetTagsQuery, updateCohortFilter, selectIndexedFilterByName, isOperationWithField, removeCohortFilter, trimFirstFieldNameToTitle, selectCohortFilters, handleOperation, selectCurrentCohortId, setCohortFilter, clearCohortFilters, selectCurrentCohortName, useGeneralGQLQuery, selectIndexFilters, useGetRawDataAndTotalCountsQuery, Accessibility, downloadFromGuppyToBlob, downloadJSONDataFromGuppy, useGetAggsQuery, extractEnumFilterValue, useGetCountsQuery, selectHeadersWithCSRFToken, GEN3_GUPPY_API, useLaunchWorkspaceMutation, selectActiveWorkspaceStatus, isFetchBaseQueryError, setActiveWorkspace, getCurrentTimestamp, selectWorkspaceStatusFromService, selectActiveWorkspaceId, useGetWorkspaceOptionsQuery, GEN3_WORKSPACE_API, useGetExternalLoginsQuery, isWorkspaceRunningOrStopping, useSetCurrentPayModelMutation, PodStatus, PodConditionType, GEN3_COMMONS_NAME, createAppStore, createGen3AppWithOwnStore, createAppApiForRTKQ, getGen3AppId, useGetDictionaryQuery, useGetMetadataByIdQuery, createGen3App, CoreProvider, useGetCredentialsQuery, useRemoveCredentialMutation, useAddNewCredentialMutation, useGetProjectsDetailsQuery, useGetSubmissionsQuery, isCohortItem, isFileItem, fetchFencePresignedURL, HTTPError, isFilterSet, getNumberOfItemsInDatalist, isAdditionalDataItem, getTimestamp, useDataLibrary, useLazyGetCrosswalkDataQuery } from '@gen3/core';
4
+ import { useUserAuth, useCoreSelector, selectUserDetails, useGetAuthzMappingsQuery, WorkspaceStatus, useGetWorkspaceStatusQuery, useGetWorkspacePayModelsQuery, useTerminateWorkspaceMutation, selectRequestedWorkspaceStatus, selectRequestedWorkspaceStatusTimestamp, useCoreDispatch, setActiveWorkspaceStatus, RequestedWorkspaceStatus, setRequestedWorkspaceStatus, isTimeGreaterThan, useLazyFetchUserDetailsQuery, selectUserAuthStatus, GEN3_REDIRECT_URL, showModal, Modals, GEN3_FENCE_API, isAuthenticated, useGetLoginProvidersQuery, hideModal, useGetCSRFQuery, selectCurrentModal, fieldNameToTitle, useIsUserLoggedIn, useGetMDSQuery, selectAuthzMappingData, useGetAggMDSQuery, useAskQuestionMutation, useGetIndexAggMDSQuery, useGetTagsQuery, updateCohortFilter, selectIndexedFilterByName, isOperationWithField, removeCohortFilter, trimFirstFieldNameToTitle, selectCohortFilters, handleOperation, selectCurrentCohortId, setCohortIndexFilters, clearCohortFilters, selectCurrentCohortName, useGeneralGQLQuery, selectIndexFilters, useGetRawDataAndTotalCountsQuery, Accessibility, downloadFromGuppyToBlob, downloadJSONDataFromGuppy, useGetAggsQuery, extractEnumFilterValue, useGetCountsQuery, selectHeadersWithCSRFToken, GEN3_GUPPY_API, useLaunchWorkspaceMutation, selectActiveWorkspaceStatus, isFetchBaseQueryError, setActiveWorkspace, getCurrentTimestamp, selectWorkspaceStatusFromService, selectActiveWorkspaceId, useGetWorkspaceOptionsQuery, GEN3_WORKSPACE_API, useGetExternalLoginsQuery, useSetCurrentPayModelMutation, PodStatus, PodConditionType, isWorkspaceRunningOrStopping, GEN3_COMMONS_NAME, createAppStore, createGen3AppWithOwnStore, createAppApiForRTKQ, getGen3AppId, useGetDictionaryQuery, useGetMetadataByIdQuery, createGen3App, CoreProvider, useGetCredentialsQuery, useRemoveCredentialMutation, useAddNewCredentialMutation, useGetProjectsDetailsQuery, useGetSubmissionsQuery, isCohortItem, isFileItem, fetchFencePresignedURL, HTTPError, isFilterSet, getNumberOfItemsInDatalist, isAdditionalDataItem, getTimestamp, useDataLibrary, useLazyGetCrosswalkDataQuery } from '@gen3/core';
5
5
  import { LoadingOverlay, Card, Group, Avatar, Text, Checkbox, Stack, Tooltip, UnstyledButton, ThemeIcon, Center, Box, Select, Button, Divider, Textarea, FileButton, Anchor, Modal, Grid, Table, ColorSwatch, useMantineTheme, Loader, Paper, Menu, Badge, Alert, Tabs, Accordion, Drawer, CopyButton, factory, useProps, getStyleObject, SegmentedControl, Switch, Autocomplete, TextInput, Title, ActionIcon, NumberInput, RangeSlider, MultiSelect, Transition, rem, Stepper, Image as Image$1, NavLink, Flex, ScrollArea, Highlight, List, createTheme, FileInput, CloseButton } from '@mantine/core';
6
6
  import { useDeepCompareEffect, useDeepCompareMemo, useDeepCompareCallback } from 'use-deep-compare';
7
7
  import { useRouter } from 'next/router';
@@ -26,7 +26,7 @@ import { init, getInstanceByDom } from 'echarts';
26
26
  import { VictoryChart, VictoryTheme, VictoryContainer, VictoryAxis, VictoryStack, VictoryBar, VictoryTooltip, Bar } from 'victory';
27
27
  import Image from 'next/image';
28
28
  import Link from 'next/link';
29
- import { FaExternalLinkAlt, FaQuestion, FaExclamation, FaExclamationTriangle, FaUndo, FaPlus, FaRegStopCircle, FaUser, FaExclamationCircle, FaChartPie, FaCircle, FaCheck, FaGraduationCap, FaRegQuestionCircle, FaVideo, FaRedo, FaUpload, FaDownload } from 'react-icons/fa';
29
+ import { FaExternalLinkAlt, FaQuestion, FaExclamation, FaExclamationTriangle, FaUndo, FaPlus, FaUser, FaExclamationCircle, FaRegStopCircle, FaChartPie, FaCircle, FaCheck, FaGraduationCap, FaRegQuestionCircle, FaVideo, FaRedo, FaUpload, FaDownload } from 'react-icons/fa';
30
30
  import { AiOutlineLogin } from 'react-icons/ai';
31
31
  import { PiDotsThreeCircleThin, PiTrash, PiSparkleFill, PiCaretUpFill, PiCaretDownFill, PiCaretUpDownFill, PiCaretCircleDownFill } from 'react-icons/pi';
32
32
  import Head from 'next/head';
@@ -489,6 +489,12 @@ const extractObjectKey = (obj)=>{
489
489
  return keys.length > 0 ? keys[0] : undefined;
490
490
  };
491
491
 
492
+ var NotificationStatus;
493
+ (function(NotificationStatus) {
494
+ NotificationStatus[NotificationStatus["Info"] = 0] = "Info";
495
+ NotificationStatus[NotificationStatus["Warn"] = 1] = "Warn";
496
+ NotificationStatus[NotificationStatus["Error"] = 2] = "Error";
497
+ })(NotificationStatus || (NotificationStatus = {}));
492
498
  const notifyUser = (title, message, status = 0)=>{
493
499
  const NotificationMap = {
494
500
  [0]: 'utility.1',
@@ -833,12 +839,12 @@ const TooltipStyle = {
833
839
  arrow: 'bg-base-darker '
834
840
  };
835
841
 
836
- var LoginButtonVisibility = /*#__PURE__*/ function(LoginButtonVisibility) {
842
+ var LoginButtonVisibility;
843
+ (function(LoginButtonVisibility) {
837
844
  LoginButtonVisibility["Hidden"] = "hide";
838
845
  LoginButtonVisibility["Visible"] = "visible";
839
846
  LoginButtonVisibility["LogoutOnly"] = "logoutOnly";
840
- return LoginButtonVisibility;
841
- }({});
847
+ })(LoginButtonVisibility || (LoginButtonVisibility = {}));
842
848
 
843
849
  /**
844
850
  * Merges default and user values for Tailwind classnames.
@@ -1168,7 +1174,8 @@ function hashCode(str) {
1168
1174
  return hashString(str);
1169
1175
  }
1170
1176
 
1171
- var ContentType = /*#__PURE__*/ function(ContentType) {
1177
+ var ContentType;
1178
+ (function(ContentType) {
1172
1179
  ContentType["Text"] = "text";
1173
1180
  ContentType["TextArray"] = "textArray";
1174
1181
  ContentType["Html"] = "html";
@@ -1176,8 +1183,7 @@ var ContentType = /*#__PURE__*/ function(ContentType) {
1176
1183
  ContentType["TextWithEmail"] = "textWithEmail";
1177
1184
  ContentType["TextWithLink"] = "textWithLink";
1178
1185
  ContentType["Link"] = "link";
1179
- return ContentType;
1180
- }({});
1186
+ })(ContentType || (ContentType = {}));
1181
1187
  const TextContent = ({ text, className = 'inline text-base-contrast-min font-medium margin-block-start-1 margin-block-end-1', type = "text", email = undefined, link = undefined, linkText = undefined })=>{
1182
1188
  switch(type){
1183
1189
  case "html":
@@ -2891,7 +2897,7 @@ const LoginAccountButton = ({ className = undefined })=>{
2891
2897
 
2892
2898
  const TopIconButton = ({ name, leftIcon = undefined, rightIcon = undefined, classNames = {}, drawBorder = true })=>{
2893
2899
  const classNamesDefaults = {
2894
- root: `flex items-center align-middle px-2 ${drawBorder && 'border-r-2 border-accent'} my-2`,
2900
+ root: `flex items-center align-middle px-2 my-2`,
2895
2901
  button: 'flex flex-nowrap items-center align-middle border-b-2 hover:border-accent border-transparent',
2896
2902
  leftIcon: 'text-secondary-contrast-lighter pr-1',
2897
2903
  label: 'font-content text-secondary-contrast-lighter block',
@@ -2940,7 +2946,15 @@ const processTopBarItems = (items, showLogin)=>{
2940
2946
  classNames: item.classNames,
2941
2947
  drawBorder: needsBorder
2942
2948
  }),
2943
- ' '
2949
+ ' ',
2950
+ /*#__PURE__*/ jsx(Divider, {
2951
+ size: "md",
2952
+ color: "accent.4",
2953
+ orientation: "vertical",
2954
+ classNames: {
2955
+ root: 'my-2'
2956
+ }
2957
+ })
2944
2958
  ]
2945
2959
  }, `${item.href}_${item.name}`));
2946
2960
  return acc;
@@ -2961,12 +2975,25 @@ const TopBar = ({ items, loginButtonVisibility = LoginButtonVisibility.Hidden, c
2961
2975
  className: "flex items-center align-middle",
2962
2976
  children: [
2963
2977
  processTopBarItems(items, loginButtonVisibility === LoginButtonVisibility.Visible),
2964
- loginButtonVisibility != LoginButtonVisibility.Hidden ? /*#__PURE__*/ jsx(LoginAccountButton, {
2965
- className: extractClassName('login', mergedClassnames)
2978
+ loginButtonVisibility != LoginButtonVisibility.Hidden ? /*#__PURE__*/ jsxs("div", {
2979
+ className: "flex items-center",
2980
+ children: [
2981
+ /*#__PURE__*/ jsx(LoginAccountButton, {
2982
+ className: extractClassName('login', mergedClassnames)
2983
+ }),
2984
+ /*#__PURE__*/ jsx(Divider, {
2985
+ size: "md",
2986
+ color: "accent.4",
2987
+ orientation: "vertical"
2988
+ })
2989
+ ]
2966
2990
  }) : null,
2967
- loginButtonVisibility != LoginButtonVisibility.Hidden ? /*#__PURE__*/ jsx(LoginButton, {
2968
- visibility: loginButtonVisibility,
2969
- className: extractClassName('login', mergedClassnames)
2991
+ loginButtonVisibility != LoginButtonVisibility.Hidden ? /*#__PURE__*/ jsx("div", {
2992
+ className: "flex items-center",
2993
+ children: /*#__PURE__*/ jsx(LoginButton, {
2994
+ visibility: loginButtonVisibility,
2995
+ className: extractClassName('login', mergedClassnames)
2996
+ })
2970
2997
  }) : null
2971
2998
  ]
2972
2999
  })
@@ -3658,14 +3685,14 @@ const isSearchKVArray = (obj)=>{
3658
3685
  return obj && Array.isArray(obj) && obj.every(isSearchKV);
3659
3686
  };
3660
3687
  const accessibleFieldName = '__accessible';
3661
- var AccessLevel = /*#__PURE__*/ function(AccessLevel) {
3688
+ var AccessLevel;
3689
+ (function(AccessLevel) {
3662
3690
  AccessLevel[AccessLevel["ACCESSIBLE"] = 1] = "ACCESSIBLE";
3663
3691
  AccessLevel[AccessLevel["UNACCESSIBLE"] = 2] = "UNACCESSIBLE";
3664
3692
  AccessLevel[AccessLevel["PENDING"] = 3] = "PENDING";
3665
3693
  AccessLevel[AccessLevel["NOT_AVAILABLE"] = 4] = "NOT_AVAILABLE";
3666
3694
  AccessLevel[AccessLevel["OTHER"] = 5] = "OTHER";
3667
- return AccessLevel;
3668
- }({});
3695
+ })(AccessLevel || (AccessLevel = {}));
3669
3696
 
3670
3697
  const DataAccessCellRenderer = ({ value })=>{
3671
3698
  if (value === AccessLevel.PENDING) {
@@ -5031,11 +5058,17 @@ const SearchFilters = ({ values, filter, filterState, setFilterState })=>{
5031
5058
  });
5032
5059
  };
5033
5060
 
5034
- var SearchCombination = /*#__PURE__*/ function(SearchCombination) {
5061
+ var SearchCombination;
5062
+ (function(SearchCombination) {
5035
5063
  SearchCombination["and"] = "AND";
5036
5064
  SearchCombination["or"] = "OR";
5037
- return SearchCombination;
5038
- }({});
5065
+ })(SearchCombination || (SearchCombination = {}));
5066
+ var AccessSortDirection;
5067
+ (function(AccessSortDirection) {
5068
+ AccessSortDirection["ASCENDING"] = "sort ascending";
5069
+ AccessSortDirection["DESCENDING"] = "sort descending";
5070
+ AccessSortDirection["NONE"] = "cancel sorting";
5071
+ })(AccessSortDirection || (AccessSortDirection = {}));
5039
5072
 
5040
5073
  const AdvancedSearch = ({ advSearchFilters, setAdvancedSearchFilters })=>{
5041
5074
  const [searchCombination, setSearchCombination] = useState(SearchCombination.and);
@@ -8577,10 +8610,11 @@ const UploadJSONButton = ({ handleFileChange, tooltip, icon = 'gen3:upload' })=>
8577
8610
  }
8578
8611
  },
8579
8612
  accept: "application/json",
8580
- children: ()=>/*#__PURE__*/ jsx(Tooltip, {
8613
+ children: (props)=>/*#__PURE__*/ jsx(Tooltip, {
8581
8614
  label: tooltip,
8582
8615
  disabled: !tooltip,
8583
8616
  children: /*#__PURE__*/ jsx(Button, {
8617
+ ...props,
8584
8618
  loading: processingFile,
8585
8619
  variant: "outline",
8586
8620
  classNames: {
@@ -8595,21 +8629,16 @@ const UploadJSONButton = ({ handleFileChange, tooltip, icon = 'gen3:upload' })=>
8595
8629
  });
8596
8630
  };
8597
8631
 
8598
- const CohortSelector = ({ index, filters })=>{
8632
+ const CohortSelector = ()=>{
8599
8633
  const dispatch = useCoreDispatch();
8600
- const getData = useDeepCompareCallback(()=>{
8601
- return filters;
8602
- }, [
8603
- filters
8604
- ]);
8634
+ const cohortFilters = useCoreSelector(selectCohortFilters);
8635
+ const getData = ()=>cohortFilters;
8605
8636
  const setCohort = useDeepCompareCallback((data)=>{
8606
8637
  const jsonForm = JSON.parse(data);
8607
- dispatch(setCohortFilter({
8608
- index,
8638
+ dispatch(setCohortIndexFilters({
8609
8639
  filters: jsonForm
8610
8640
  }));
8611
8641
  }, [
8612
- index,
8613
8642
  dispatch
8614
8643
  ]);
8615
8644
  return /*#__PURE__*/ jsxs(Group, {
@@ -8779,10 +8808,7 @@ const QueryExpressionSection = ({ index, filters, currentCohortName, currentCoho
8779
8808
  /*#__PURE__*/ jsxs("div", {
8780
8809
  className: "display flex gap-2 ml-auto mr-3",
8781
8810
  children: [
8782
- /*#__PURE__*/ jsx(CohortSelector, {
8783
- index: index,
8784
- filters: filters
8785
- }),
8811
+ /*#__PURE__*/ jsx(CohortSelector, {}),
8786
8812
  /*#__PURE__*/ jsx(Tooltip, {
8787
8813
  label: noFilters ? 'No values to expand/collapse' : allQueryExpressionsCollapsed ? 'Expand all values' : 'Collapse all values',
8788
8814
  children: /*#__PURE__*/ jsx(Button, {
@@ -10377,7 +10403,8 @@ const WorkspaceProvider = ({ children, config })=>{
10377
10403
  });
10378
10404
  };
10379
10405
 
10380
- var PayModelStatus = /*#__PURE__*/ function(PayModelStatus) {
10406
+ var PayModelStatus;
10407
+ (function(PayModelStatus) {
10381
10408
  PayModelStatus["GETTING"] = "GETTING";
10382
10409
  PayModelStatus["INVALID"] = "INVALID";
10383
10410
  PayModelStatus["ERROR"] = "ERROR";
@@ -10385,8 +10412,7 @@ var PayModelStatus = /*#__PURE__*/ function(PayModelStatus) {
10385
10412
  PayModelStatus["OVER_LIMIT"] = "OVER_LIMIT";
10386
10413
  PayModelStatus["NOT_REQUIRED"] = "NOT_REQUIRED";
10387
10414
  PayModelStatus["VALID"] = "VALID";
10388
- return PayModelStatus;
10389
- }({});
10415
+ })(PayModelStatus || (PayModelStatus = {}));
10390
10416
 
10391
10417
  const getWorkspaceErrorMessage = (error, defaultMessage)=>{
10392
10418
  if (isFetchBaseQueryError(error)) {
@@ -10744,94 +10770,21 @@ const PaymentNumberToString = (x, undefinedValue = 'N/A', precision = 2)=>{
10744
10770
  return x.toFixed(precision);
10745
10771
  };
10746
10772
 
10747
- const StatusAndControls = ()=>{
10748
- const { stopWorkspace, toggleFullscreen, isFullscreen } = useWorkspaceStatusContext();
10749
- const openModal = ()=>modals.openConfirmModal({
10750
- title: 'Workspace',
10751
- children: /*#__PURE__*/ jsx(Text, {
10752
- size: "sm",
10753
- children: "Please confirm workspace shutdown"
10754
- }),
10755
- labels: {
10756
- confirm: 'Confirm',
10757
- cancel: 'Cancel'
10758
- },
10759
- onConfirm: ()=>stopWorkspace()
10760
- });
10761
- const workspaceStatus = useCoreSelector(selectActiveWorkspaceStatus);
10762
- const requestedStatus = useCoreSelector(selectRequestedWorkspaceStatus);
10763
- return /*#__PURE__*/ jsx(Transition, {
10764
- mounted: isWorkspaceRunningOrStopping(workspaceStatus),
10765
- transition: "fade",
10766
- duration: 1200,
10767
- timingFunction: "ease",
10768
- children: (styles)=>/*#__PURE__*/ jsx("div", {
10769
- style: styles,
10770
- children: /*#__PURE__*/ jsxs(Group, {
10771
- children: [
10772
- /*#__PURE__*/ jsx(Icon, {
10773
- height: '2.0rem',
10774
- icon: 'workspace:jupyter'
10775
- }),
10776
- /*#__PURE__*/ jsx(Tooltip, {
10777
- label: "Stop Workspace",
10778
- children: /*#__PURE__*/ jsx(Button, {
10779
- loading: requestedStatus === 'Terminate',
10780
- size: "md",
10781
- color: "accent.5",
10782
- variant: "default",
10783
- onClick: ()=>{
10784
- openModal();
10785
- },
10786
- "aria-label": "Stop Workspace",
10787
- leftSection: /*#__PURE__*/ jsx(FaRegStopCircle, {
10788
- color: "utility.2",
10789
- size: "1rem",
10790
- className: "text-accent-warm"
10791
- }),
10792
- children: "Stop Workspace"
10793
- })
10794
- }),
10795
- /*#__PURE__*/ jsx(Tooltip, {
10796
- label: "Toggle fullscreen mode",
10797
- children: /*#__PURE__*/ jsx(Button, {
10798
- color: "utility.2",
10799
- size: "md",
10800
- variant: "default",
10801
- onClick: ()=>{
10802
- toggleFullscreen();
10803
- },
10804
- "aria-label": isFullscreen ? 'Exit Fullscreen' : 'Make Fullscreen',
10805
- leftSection: /*#__PURE__*/ jsx(BsArrowsFullscreen, {
10806
- className: "text-accent-warm"
10807
- }),
10808
- children: isFullscreen ? 'Exit Fullscreen' : 'Make Fullscreen'
10809
- })
10810
- })
10811
- ]
10812
- })
10813
- })
10814
- });
10815
- };
10816
-
10817
10773
  const isNoPayModelError = (error)=>{
10818
10774
  return 'status' in error && error.status === 'PARSING_ERROR' && error.originalStatus === 404;
10819
10775
  };
10820
10776
  const NoPayModel = ()=>{
10821
- return /*#__PURE__*/ jsxs(Group, {
10777
+ return /*#__PURE__*/ jsx(Group, {
10822
10778
  className: "p-2 border-1 border-l-0 border-r-0 border-base-lighter w-full h-16",
10823
10779
  justify: "space-between",
10824
- children: [
10825
- /*#__PURE__*/ jsx(Text, {
10826
- className: "pl-4",
10827
- size: "md",
10828
- classNames: {
10829
- root: 'font-heading text-utility-warning'
10830
- },
10831
- children: "No pay model defined"
10832
- }),
10833
- /*#__PURE__*/ jsx(StatusAndControls, {})
10834
- ]
10780
+ children: /*#__PURE__*/ jsx(Text, {
10781
+ className: "pl-4",
10782
+ size: "md",
10783
+ classNames: {
10784
+ root: 'font-heading text-utility-warning'
10785
+ },
10786
+ children: "No pay model defined"
10787
+ })
10835
10788
  });
10836
10789
  };
10837
10790
  const PaymentPanel = ()=>{
@@ -11159,6 +11112,72 @@ const WorkspaceLaunchProgress = ()=>{
11159
11112
  });
11160
11113
  };
11161
11114
 
11115
+ const StatusAndControls = ()=>{
11116
+ const { stopWorkspace, toggleFullscreen, isFullscreen } = useWorkspaceStatusContext();
11117
+ const openModal = ()=>modals.openConfirmModal({
11118
+ title: 'Workspace',
11119
+ children: /*#__PURE__*/ jsx(Text, {
11120
+ size: "sm",
11121
+ children: "Please confirm workspace shutdown"
11122
+ }),
11123
+ labels: {
11124
+ confirm: 'Confirm',
11125
+ cancel: 'Cancel'
11126
+ },
11127
+ onConfirm: ()=>stopWorkspace()
11128
+ });
11129
+ const workspaceStatus = useCoreSelector(selectActiveWorkspaceStatus);
11130
+ const requestedStatus = useCoreSelector(selectRequestedWorkspaceStatus);
11131
+ return /*#__PURE__*/ jsx(Transition, {
11132
+ mounted: isWorkspaceRunningOrStopping(workspaceStatus),
11133
+ transition: "fade",
11134
+ duration: 1200,
11135
+ timingFunction: "ease",
11136
+ children: (styles)=>/*#__PURE__*/ jsx("div", {
11137
+ style: styles,
11138
+ children: /*#__PURE__*/ jsxs(Group, {
11139
+ children: [
11140
+ /*#__PURE__*/ jsx(Tooltip, {
11141
+ label: "Stop Workspace",
11142
+ children: /*#__PURE__*/ jsx(Button, {
11143
+ loading: requestedStatus === RequestedWorkspaceStatus.Terminate,
11144
+ size: "md",
11145
+ color: "accent.5",
11146
+ variant: "default",
11147
+ onClick: ()=>{
11148
+ openModal();
11149
+ },
11150
+ "aria-label": "Stop Workspace",
11151
+ leftSection: /*#__PURE__*/ jsx(FaRegStopCircle, {
11152
+ color: "utility.2",
11153
+ size: "1rem",
11154
+ className: "text-accent-warm"
11155
+ }),
11156
+ children: "Stop Workspace"
11157
+ })
11158
+ }),
11159
+ /*#__PURE__*/ jsx(Tooltip, {
11160
+ label: "Toggle fullscreen mode",
11161
+ children: /*#__PURE__*/ jsx(Button, {
11162
+ color: "utility.2",
11163
+ size: "md",
11164
+ variant: "default",
11165
+ onClick: ()=>{
11166
+ toggleFullscreen();
11167
+ },
11168
+ "aria-label": isFullscreen ? 'Exit Fullscreen' : 'Make Fullscreen',
11169
+ leftSection: /*#__PURE__*/ jsx(BsArrowsFullscreen, {
11170
+ className: "text-accent-warm"
11171
+ }),
11172
+ children: isFullscreen ? 'Exit Fullscreen' : 'Make Fullscreen'
11173
+ })
11174
+ })
11175
+ ]
11176
+ })
11177
+ })
11178
+ });
11179
+ };
11180
+
11162
11181
  const FULLSCREEN_STYLE = 'fixed top-0 left-0 w-full h-full flex flex-col flex-grow content-center items-center bg-base-lightest';
11163
11182
  const WorkspaceNotebookPanelWithControls = ()=>{
11164
11183
  const { isFullscreen } = useWorkspaceStatusContext();
@@ -11167,7 +11186,13 @@ const WorkspaceNotebookPanelWithControls = ()=>{
11167
11186
  className: isFullscreen ? FULLSCREEN_STYLE : 'flex flex-col grow w-full h-full relative',
11168
11187
  children: [
11169
11188
  /*#__PURE__*/ jsx(ExternalLoginsStatus, {}),
11170
- requirePayModel && /*#__PURE__*/ jsx(PaymentPanel, {}),
11189
+ /*#__PURE__*/ jsxs("div", {
11190
+ className: `flex w-full p-2 ${requirePayModel ? 'justify-between' : 'justify-end'}`,
11191
+ children: [
11192
+ requirePayModel && /*#__PURE__*/ jsx(PaymentPanel, {}),
11193
+ /*#__PURE__*/ jsx(StatusAndControls, {})
11194
+ ]
11195
+ }),
11171
11196
  /*#__PURE__*/ jsx(WorkspaceLaunchProgress, {}),
11172
11197
  /*#__PURE__*/ jsx(WorkspacePanel, {}),
11173
11198
  /*#__PURE__*/ jsx(WorkspaceNotebook, {})
@@ -16036,6 +16061,12 @@ const UserDetailsPanel = ({ user, closePanel })=>{
16036
16061
  });
16037
16062
  };
16038
16063
 
16064
+ var UserPanelMode;
16065
+ (function(UserPanelMode) {
16066
+ UserPanelMode[UserPanelMode["UserTable"] = 0] = "UserTable";
16067
+ UserPanelMode[UserPanelMode["NewUserPanel"] = 1] = "NewUserPanel";
16068
+ UserPanelMode[UserPanelMode["UserDetailPanel"] = 2] = "UserDetailPanel";
16069
+ })(UserPanelMode || (UserPanelMode = {}));
16039
16070
  const NullUser = {
16040
16071
  id: '',
16041
16072
  tags: {
@@ -16912,6 +16943,7 @@ const ALLOWED_IMAGE_TYPES = [
16912
16943
  'image/png',
16913
16944
  'image/svg+xml'
16914
16945
  ];
16946
+ const MAX_HISTORY = 50;
16915
16947
  const AnalysisCardEditor = ()=>{
16916
16948
  // Enhanced state management with history
16917
16949
  const [history, setHistory] = useState({
@@ -16942,7 +16974,7 @@ const AnalysisCardEditor = ()=>{
16942
16974
  past: [
16943
16975
  ...prev.past,
16944
16976
  prev.present
16945
- ].slice(-50),
16977
+ ].slice(-MAX_HISTORY),
16946
16978
  present: newPresent,
16947
16979
  future: []
16948
16980
  }));
@@ -19542,7 +19574,7 @@ const CrosswalkTable = ({ mapping, data, isFetching, isError, tableMessage, show
19542
19574
  });
19543
19575
  };
19544
19576
 
19545
- const MIN_ROWS = 18;
19577
+ const MIN_ROWS = 22;
19546
19578
  /**
19547
19579
  *
19548
19580
  */ const buildCSVData = (data, mapping, includeSourceId)=>{
@@ -19566,7 +19598,7 @@ const downloadData = (data)=>{
19566
19598
  link.click();
19567
19599
  document.body.removeChild(link);
19568
19600
  };
19569
- const CrosswalkPanel = ({ mapping, showSubmittedIdInTable })=>{
19601
+ const CrosswalkPanel = ({ mapping, showSubmittedIdInTable, idEntryPlaceholderText })=>{
19570
19602
  const [query, setQuery] = useState('');
19571
19603
  const [sourceIds, setSourceIds] = useState('');
19572
19604
  const clipboard = useClipboard({
@@ -19623,29 +19655,35 @@ const CrosswalkPanel = ({ mapping, showSubmittedIdInTable })=>{
19623
19655
  /*#__PURE__*/ jsxs(Stack, {
19624
19656
  align: "stretch",
19625
19657
  justify: "flex-start",
19626
- className: "p-2 w-1/4",
19658
+ className: "p-2 w-1/4 h-full",
19627
19659
  children: [
19628
19660
  /*#__PURE__*/ jsxs(Group, {
19629
19661
  wrap: "nowrap",
19630
19662
  children: [
19631
- /*#__PURE__*/ jsx(Button, {
19632
- size: "md",
19633
- color: "secondary.4",
19634
- disabled: sourceIds.length == 0,
19635
- onClick: ()=>onSubmit(),
19636
- children: "Submit"
19663
+ /*#__PURE__*/ jsx(Tooltip, {
19664
+ label: "Submit IDs to crosswalk service",
19665
+ children: /*#__PURE__*/ jsx(Button, {
19666
+ size: "md",
19667
+ color: "secondary.4",
19668
+ disabled: sourceIds.length == 0,
19669
+ onClick: ()=>onSubmit(),
19670
+ children: "Submit"
19671
+ })
19637
19672
  }),
19638
- /*#__PURE__*/ jsx(Button, {
19639
- size: "md",
19640
- color: "secondary.4",
19641
- disabled: sourceIds.length == 0,
19642
- onClick: ()=>clear(),
19643
- children: "Clear"
19673
+ /*#__PURE__*/ jsx(Tooltip, {
19674
+ label: "Clear all Ids",
19675
+ children: /*#__PURE__*/ jsx(Button, {
19676
+ size: "md",
19677
+ color: "secondary.4",
19678
+ disabled: sourceIds.length == 0,
19679
+ onClick: ()=>clear(),
19680
+ children: "Clear"
19681
+ })
19644
19682
  })
19645
19683
  ]
19646
19684
  }),
19647
19685
  /*#__PURE__*/ jsx(Textarea, {
19648
- placeholder: "IDs...",
19686
+ placeholder: idEntryPlaceholderText,
19649
19687
  radius: "md",
19650
19688
  size: "md",
19651
19689
  required: true,
@@ -19672,24 +19710,30 @@ const CrosswalkPanel = ({ mapping, showSubmittedIdInTable })=>{
19672
19710
  /*#__PURE__*/ jsxs(Group, {
19673
19711
  justify: "flex-end",
19674
19712
  children: [
19675
- /*#__PURE__*/ jsx(Button, {
19676
- variant: "outline",
19677
- size: "md",
19678
- color: clipboard.copied ? 'accent.4' : 'accent-warm.4',
19679
- onClick: ()=>{
19680
- if (data) clipboard.copy(buildCSVData(data, mapping, showSubmittedIdInTable));
19681
- },
19682
- disabled: !data || data.length == 0,
19683
- children: "Copy"
19713
+ /*#__PURE__*/ jsx(Tooltip, {
19714
+ label: "Copy mapping to clipboard",
19715
+ children: /*#__PURE__*/ jsx(Button, {
19716
+ variant: "outline",
19717
+ size: "md",
19718
+ color: clipboard.copied ? 'accent.4' : 'accent-warm.4',
19719
+ onClick: ()=>{
19720
+ if (data) clipboard.copy(buildCSVData(data, mapping, showSubmittedIdInTable));
19721
+ },
19722
+ disabled: !data || data.length == 0,
19723
+ children: "Copy"
19724
+ })
19684
19725
  }),
19685
- /*#__PURE__*/ jsx(Button, {
19686
- variant: "outline",
19687
- size: "md",
19688
- onClick: ()=>{
19689
- if (data) downloadData(buildCSVData(data, mapping, showSubmittedIdInTable));
19690
- },
19691
- disabled: !data || data.length == 0,
19692
- children: "Download"
19726
+ /*#__PURE__*/ jsx(Tooltip, {
19727
+ label: "Download mapping",
19728
+ children: /*#__PURE__*/ jsx(Button, {
19729
+ variant: "outline",
19730
+ size: "md",
19731
+ onClick: ()=>{
19732
+ if (data) downloadData(buildCSVData(data, mapping, showSubmittedIdInTable));
19733
+ },
19734
+ disabled: !data || data.length == 0,
19735
+ children: "Download"
19736
+ })
19693
19737
  })
19694
19738
  ]
19695
19739
  }),
@@ -19724,26 +19768,38 @@ const CrosswalkPage = ({ headerProps, footerProps, config })=>{
19724
19768
  };
19725
19769
 
19726
19770
  const CrosswalkPageGetServerSideProps = async ()=>{
19727
- const initialConfig = await ContentSource.get(`config/${GEN3_COMMONS_NAME}/crosswalk.json`);
19728
- const regex = /->/g;
19729
- const processedConfig = {
19730
- showSubmittedIdInTable: initialConfig.showSubmittedIdInTable,
19731
- mapping: {
19732
- source: initialConfig.mapping.source,
19733
- external: initialConfig.mapping.external.map((entry)=>({
19734
- ...entry,
19735
- dataPath: entry.dataPath.split(regex).map((x)=>JSON.stringify([
19736
- x
19737
- ])).join('.')
19738
- }))
19739
- }
19740
- };
19741
- return {
19742
- props: {
19743
- ...await getNavPageLayoutPropsFromConfig(),
19744
- config: processedConfig
19745
- }
19746
- };
19771
+ try {
19772
+ const initialConfig = await ContentSource.get(`config/${GEN3_COMMONS_NAME}/crosswalk.json`);
19773
+ const regex = /->/g;
19774
+ const processedConfig = {
19775
+ showSubmittedIdInTable: initialConfig.showSubmittedIdInTable,
19776
+ idEntryPlaceholderText: initialConfig?.idEntryPlaceholderText || 'Enter IDs, one per line.\nExample:\nD334343\nC343433',
19777
+ mapping: {
19778
+ source: initialConfig.mapping.source,
19779
+ external: initialConfig.mapping.external.map((entry)=>({
19780
+ ...entry,
19781
+ dataPath: entry.dataPath.split(regex).map((x)=>JSON.stringify([
19782
+ x
19783
+ ])).join('.')
19784
+ }))
19785
+ }
19786
+ };
19787
+ return {
19788
+ props: {
19789
+ ...await getNavPageLayoutPropsFromConfig(),
19790
+ config: processedConfig
19791
+ }
19792
+ };
19793
+ } catch (error) {
19794
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error in crosswalk config';
19795
+ console.error(errorMessage);
19796
+ return {
19797
+ props: {
19798
+ ...await getNavPageLayoutPropsFromConfig(),
19799
+ config: undefined
19800
+ }
19801
+ };
19802
+ }
19747
19803
  };
19748
19804
 
19749
19805
  const TailwindConfig = (themer)=>{