@databiosphere/findable-ui 19.0.0 → 21.0.0

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 (510) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +22 -0
  3. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.d.ts +2 -0
  4. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.js +29 -0
  5. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.d.ts +6 -0
  6. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.js +1 -0
  7. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.d.ts +2 -0
  8. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.js +17 -0
  9. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.d.ts +5 -0
  10. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.js +12 -0
  11. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.d.ts +4 -0
  12. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.js +1 -0
  13. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.d.ts +15 -0
  14. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.js +53 -0
  15. package/lib/components/ComponentCreator/ComponentCreator.js +2 -3
  16. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.js +2 -2
  17. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.js +1 -1
  18. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.js +8 -3
  19. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.d.ts +2 -1
  20. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.js +17 -14
  21. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.d.ts +3 -4
  22. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.js +15 -24
  23. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
  24. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.js +2 -2
  25. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.d.ts +2 -0
  26. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.js +14 -0
  27. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.js +3 -2
  28. package/lib/components/Layout/components/Header/header.js +1 -1
  29. package/lib/components/Login/components/Button/button.d.ts +2 -0
  30. package/lib/components/Login/components/Button/button.js +6 -0
  31. package/lib/components/Login/components/Button/button.styles.d.ts +5 -0
  32. package/lib/components/Login/components/Button/button.styles.js +11 -0
  33. package/lib/components/Login/components/Button/constants.d.ts +2 -0
  34. package/lib/components/Login/components/Button/constants.js +6 -0
  35. package/lib/components/Login/components/Button/types.d.ts +3 -0
  36. package/lib/components/Login/components/Button/types.js +1 -0
  37. package/lib/components/Login/login.d.ts +2 -9
  38. package/lib/components/Login/login.js +9 -10
  39. package/lib/components/Login/types.d.ts +10 -0
  40. package/lib/components/Login/types.js +1 -0
  41. package/lib/components/Table/common/columnDef.js +18 -2
  42. package/lib/components/Table/common/columnIdentifier.d.ts +4 -0
  43. package/lib/components/Table/common/columnIdentifier.js +4 -0
  44. package/lib/components/Table/common/typeGuards.d.ts +11 -0
  45. package/lib/components/Table/common/typeGuards.js +8 -0
  46. package/lib/components/Table/common/utils.d.ts +1 -28
  47. package/lib/components/Table/common/utils.js +5 -88
  48. package/lib/components/Table/components/TableCell/common/utils.js +3 -3
  49. package/lib/components/Table/components/TableCell/components/RowSelectionCell/rowSelectionCell.d.ts +2 -5
  50. package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.d.ts +7 -18
  51. package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.js +20 -31
  52. package/lib/components/Table/components/TableHead/components/HeadSelectionCell/headSelectionCell.d.ts +2 -5
  53. package/lib/components/Table/components/TableHead/components/HeadSelectionCell/headSelectionCell.js +2 -2
  54. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.js +5 -17
  55. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/constants.d.ts +3 -0
  56. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/constants.js +10 -0
  57. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.d.ts +1 -1
  58. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.js +22 -10
  59. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.d.ts +1 -2
  60. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/utils.d.ts +27 -0
  61. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/utils.js +45 -0
  62. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.d.ts +1 -3
  63. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.js +0 -10
  64. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.d.ts +3 -13
  65. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.js +22 -27
  66. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.d.ts +3 -0
  67. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.js +13 -0
  68. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.styles.d.ts +3 -0
  69. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.styles.js +11 -0
  70. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/constants.d.ts +2 -0
  71. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/constants.js +7 -0
  72. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.d.ts +3 -0
  73. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.js +22 -0
  74. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.styles.d.ts +2 -0
  75. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.styles.js +16 -0
  76. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/types.d.ts +4 -0
  77. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/types.js +1 -0
  78. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/utils.d.ts +26 -0
  79. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/utils.js +32 -0
  80. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/constants.d.ts +2 -0
  81. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/constants.js +3 -0
  82. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/types.d.ts +4 -0
  83. package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/types.js +1 -0
  84. package/lib/components/Table/components/TableToolbar/tableToolbar.js +5 -12
  85. package/lib/components/Table/features/RowPosition/constants.js +5 -3
  86. package/lib/components/Table/features/RowPosition/types.d.ts +3 -0
  87. package/lib/components/Table/features/RowPosition/utils.d.ts +1 -7
  88. package/lib/components/Table/features/RowPosition/utils.js +0 -20
  89. package/lib/components/Table/features/RowPreview/constants.js +1 -1
  90. package/lib/components/Table/features/entities.d.ts +2 -2
  91. package/lib/components/Table/table.d.ts +2 -4
  92. package/lib/components/Table/table.js +9 -31
  93. package/lib/components/TableCreator/common/utils.js +1 -4
  94. package/lib/components/TableCreator/options/columnTrackSizing/typeGuards.d.ts +7 -0
  95. package/lib/components/TableCreator/options/columnTrackSizing/typeGuards.js +8 -0
  96. package/lib/components/TableCreator/options/columnTrackSizing/utils.d.ts +30 -0
  97. package/lib/components/TableCreator/options/columnTrackSizing/utils.js +83 -0
  98. package/lib/components/TableCreator/options/hook.js +8 -7
  99. package/lib/components/TableCreator/options/initialState/columnVisibility.d.ts +7 -0
  100. package/lib/components/TableCreator/options/initialState/columnVisibility.js +16 -0
  101. package/lib/components/TableCreator/options/initialState/hook.d.ts +2 -0
  102. package/lib/components/TableCreator/options/initialState/hook.js +10 -0
  103. package/lib/components/TableCreator/options/visibility/constants.d.ts +2 -0
  104. package/lib/components/TableCreator/options/visibility/constants.js +3 -0
  105. package/lib/components/TableCreator/options/visibility/hook.d.ts +2 -0
  106. package/lib/components/TableCreator/options/visibility/hook.js +11 -0
  107. package/lib/components/TableCreator/tableCreator.js +4 -18
  108. package/lib/components/common/Banner/components/SessionTimeout/sessionTimeout.js +1 -1
  109. package/lib/components/common/CustomIcon/common/entities.d.ts +1 -4
  110. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.d.ts +2 -2
  111. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.js +1 -1
  112. package/lib/config/entities.d.ts +22 -27
  113. package/lib/hooks/authentication/auth/useAuthReducer.d.ts +2 -0
  114. package/lib/hooks/authentication/auth/useAuthReducer.js +8 -0
  115. package/lib/hooks/authentication/authentication/useAuthenticationReducer.d.ts +2 -0
  116. package/lib/hooks/authentication/authentication/useAuthenticationReducer.js +8 -0
  117. package/lib/hooks/authentication/config/useAuthenticationConfig.d.ts +6 -0
  118. package/lib/hooks/authentication/config/useAuthenticationConfig.js +9 -0
  119. package/lib/hooks/authentication/credentials/useCredentialsReducer.d.ts +2 -0
  120. package/lib/hooks/authentication/credentials/useCredentialsReducer.js +7 -0
  121. package/lib/hooks/authentication/profile/types.d.ts +5 -0
  122. package/lib/hooks/authentication/profile/types.js +1 -0
  123. package/lib/hooks/authentication/profile/useProfile.d.ts +6 -0
  124. package/lib/hooks/authentication/profile/useProfile.js +15 -0
  125. package/lib/hooks/authentication/providers/types.d.ts +6 -0
  126. package/lib/hooks/authentication/providers/types.js +1 -0
  127. package/lib/hooks/authentication/providers/useProviders.d.ts +6 -0
  128. package/lib/hooks/authentication/providers/useProviders.js +14 -0
  129. package/lib/hooks/authentication/session/useSessionActive.d.ts +12 -0
  130. package/lib/hooks/authentication/session/useSessionActive.js +36 -0
  131. package/lib/hooks/authentication/session/useSessionCallbackUrl.d.ts +4 -0
  132. package/lib/hooks/authentication/session/useSessionCallbackUrl.js +20 -0
  133. package/lib/hooks/authentication/session/useSessionIdleTimer.d.ts +6 -0
  134. package/lib/hooks/authentication/session/useSessionIdleTimer.js +8 -0
  135. package/lib/hooks/{useSessionTimeout.js → authentication/session/useSessionTimeout.js} +2 -2
  136. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.d.ts +0 -1
  137. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.js +6 -9
  138. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.js +3 -4
  139. package/lib/hooks/authentication/token/types.d.ts +4 -0
  140. package/lib/hooks/authentication/token/types.js +1 -0
  141. package/lib/hooks/authentication/token/useToken.d.ts +2 -0
  142. package/lib/hooks/authentication/token/useToken.js +5 -0
  143. package/lib/hooks/authentication/token/useTokenReducer.d.ts +7 -0
  144. package/lib/hooks/authentication/token/useTokenReducer.js +12 -0
  145. package/lib/hooks/useEntityList.js +2 -2
  146. package/lib/hooks/useFetchEntity.js +4 -3
  147. package/lib/hooks/useFileManifest/useFetchFilesFacets.js +2 -3
  148. package/lib/hooks/useFileManifest/useFetchSummary.js +2 -3
  149. package/lib/hooks/useRequestFileLocation.js +2 -3
  150. package/lib/hooks/useRouteHistory.d.ts +14 -0
  151. package/lib/hooks/useRouteHistory.js +40 -0
  152. package/lib/hooks/useRouteRoot.d.ts +1 -0
  153. package/lib/hooks/useRouteRoot.js +8 -0
  154. package/lib/hooks/useSummary.js +3 -3
  155. package/lib/providers/authentication/auth/actions.d.ts +8 -0
  156. package/lib/providers/authentication/auth/actions.js +12 -0
  157. package/lib/providers/authentication/auth/constants.d.ts +2 -0
  158. package/lib/providers/authentication/auth/constants.js +5 -0
  159. package/lib/providers/authentication/auth/context.d.ts +2 -0
  160. package/lib/providers/authentication/auth/context.js +7 -0
  161. package/lib/providers/authentication/auth/dispatch.d.ts +23 -0
  162. package/lib/providers/authentication/auth/dispatch.js +43 -0
  163. package/lib/providers/authentication/auth/hook.d.ts +6 -0
  164. package/lib/providers/authentication/auth/hook.js +9 -0
  165. package/lib/providers/authentication/auth/reducer.d.ts +8 -0
  166. package/lib/providers/authentication/auth/reducer.js +24 -0
  167. package/lib/providers/authentication/auth/types.d.ts +48 -0
  168. package/lib/providers/authentication/auth/types.js +11 -0
  169. package/lib/providers/authentication/authentication/actions.d.ts +8 -0
  170. package/lib/providers/authentication/authentication/actions.js +12 -0
  171. package/lib/providers/authentication/authentication/constants.d.ts +2 -0
  172. package/lib/providers/authentication/authentication/constants.js +5 -0
  173. package/lib/providers/authentication/authentication/context.d.ts +2 -0
  174. package/lib/providers/authentication/authentication/context.js +6 -0
  175. package/lib/providers/authentication/authentication/dispatch.d.ts +22 -0
  176. package/lib/providers/authentication/authentication/dispatch.js +42 -0
  177. package/lib/providers/authentication/authentication/hook.d.ts +6 -0
  178. package/lib/providers/authentication/authentication/hook.js +9 -0
  179. package/lib/providers/authentication/authentication/reducer.d.ts +9 -0
  180. package/lib/providers/authentication/authentication/reducer.js +25 -0
  181. package/lib/providers/authentication/authentication/types.d.ts +47 -0
  182. package/lib/providers/authentication/authentication/types.js +11 -0
  183. package/lib/providers/authentication/authentication/utils.d.ts +12 -0
  184. package/lib/providers/authentication/authentication/utils.js +18 -0
  185. package/lib/providers/authentication/common/types.d.ts +1 -0
  186. package/lib/providers/authentication/common/types.js +1 -0
  187. package/lib/providers/authentication/common/utils.d.ts +6 -0
  188. package/lib/providers/authentication/common/utils.js +11 -0
  189. package/lib/providers/authentication/credentials/actions.d.ts +8 -0
  190. package/lib/providers/authentication/credentials/actions.js +12 -0
  191. package/lib/providers/authentication/credentials/constants.d.ts +2 -0
  192. package/lib/providers/authentication/credentials/constants.js +3 -0
  193. package/lib/providers/authentication/credentials/context.d.ts +2 -0
  194. package/lib/providers/authentication/credentials/context.js +6 -0
  195. package/lib/providers/authentication/credentials/dispatch.d.ts +12 -0
  196. package/lib/providers/authentication/credentials/dispatch.js +22 -0
  197. package/lib/providers/authentication/credentials/hook.d.ts +6 -0
  198. package/lib/providers/authentication/credentials/hook.js +9 -0
  199. package/lib/providers/authentication/credentials/reducer.d.ts +8 -0
  200. package/lib/providers/authentication/credentials/reducer.js +22 -0
  201. package/lib/providers/authentication/credentials/types.d.ts +24 -0
  202. package/lib/providers/authentication/credentials/types.js +5 -0
  203. package/lib/providers/authentication/terra/context.d.ts +2 -0
  204. package/lib/providers/authentication/terra/context.js +7 -0
  205. package/lib/providers/authentication/terra/hook.d.ts +6 -0
  206. package/lib/providers/authentication/terra/hook.js +9 -0
  207. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.d.ts +2 -0
  208. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.js +7 -0
  209. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.d.ts +3 -7
  210. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.js +1 -5
  211. package/lib/providers/authentication/terra/hooks/useFetchProfiles.d.ts +13 -0
  212. package/lib/providers/authentication/terra/hooks/useFetchProfiles.js +31 -0
  213. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.js +11 -6
  214. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.js +11 -6
  215. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.js +11 -6
  216. package/lib/providers/authentication/terra/hooks/utils.d.ts +16 -0
  217. package/lib/providers/authentication/terra/hooks/utils.js +19 -0
  218. package/lib/providers/authentication/terra/provider.d.ts +2 -0
  219. package/lib/providers/authentication/terra/provider.js +42 -0
  220. package/lib/providers/authentication/terra/types.d.ts +20 -0
  221. package/lib/providers/authentication/terra/types.js +6 -0
  222. package/lib/providers/authentication/terra/utils.d.ts +19 -0
  223. package/lib/providers/authentication/terra/utils.js +36 -0
  224. package/lib/providers/authentication/token/constants.d.ts +2 -0
  225. package/lib/providers/authentication/token/constants.js +4 -0
  226. package/lib/providers/authentication/token/dispatch.d.ts +12 -0
  227. package/lib/providers/authentication/token/dispatch.js +22 -0
  228. package/lib/providers/authentication/token/reducer.d.ts +8 -0
  229. package/lib/providers/authentication/token/reducer.js +22 -0
  230. package/lib/providers/authentication/token/types.d.ts +28 -0
  231. package/lib/providers/authentication/token/types.js +5 -0
  232. package/lib/providers/exploreState/actions/updateVisibility/action.d.ts +10 -0
  233. package/lib/providers/exploreState/actions/updateVisibility/action.js +16 -0
  234. package/lib/providers/exploreState/actions/updateVisibility/dispatch.d.ts +7 -0
  235. package/lib/providers/exploreState/actions/updateVisibility/dispatch.js +12 -0
  236. package/lib/providers/exploreState/actions/updateVisibility/types.d.ts +9 -0
  237. package/lib/providers/exploreState/actions/updateVisibility/types.js +1 -0
  238. package/lib/providers/exploreState/actions/updateVisibility/utils.d.ts +10 -0
  239. package/lib/providers/exploreState/actions/updateVisibility/utils.js +21 -0
  240. package/lib/providers/exploreState/entities.d.ts +1 -1
  241. package/lib/providers/exploreState/initializer/utils.js +5 -13
  242. package/lib/providers/exploreState/payloads/entities.d.ts +1 -5
  243. package/lib/providers/exploreState/utils.d.ts +1 -1
  244. package/lib/providers/exploreState/utils.js +5 -5
  245. package/lib/providers/exploreState.d.ts +2 -8
  246. package/lib/providers/exploreState.js +5 -10
  247. package/lib/providers/googleSignInAuthentication/common/types.d.ts +17 -0
  248. package/lib/providers/googleSignInAuthentication/common/types.js +1 -0
  249. package/lib/providers/googleSignInAuthentication/constants.d.ts +4 -0
  250. package/lib/providers/googleSignInAuthentication/constants.js +12 -0
  251. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.d.ts +3 -0
  252. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.js +36 -0
  253. package/lib/providers/googleSignInAuthentication/profile/types.d.ts +14 -0
  254. package/lib/providers/googleSignInAuthentication/profile/types.js +1 -0
  255. package/lib/providers/googleSignInAuthentication/profile/utils.d.ts +8 -0
  256. package/lib/providers/googleSignInAuthentication/profile/utils.js +25 -0
  257. package/lib/providers/googleSignInAuthentication/provider.d.ts +2 -0
  258. package/lib/providers/googleSignInAuthentication/provider.js +40 -0
  259. package/lib/providers/googleSignInAuthentication/service/constants.d.ts +4 -0
  260. package/lib/providers/googleSignInAuthentication/service/constants.js +9 -0
  261. package/lib/providers/googleSignInAuthentication/service/service.d.ts +6 -0
  262. package/lib/providers/googleSignInAuthentication/service/service.js +43 -0
  263. package/lib/providers/googleSignInAuthentication/types.d.ts +6 -0
  264. package/lib/providers/googleSignInAuthentication/types.js +1 -0
  265. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.d.ts +2 -0
  266. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.js +14 -0
  267. package/lib/providers/nextAuthAuthentication/provider.d.ts +2 -0
  268. package/lib/providers/nextAuthAuthentication/provider.js +30 -0
  269. package/lib/providers/nextAuthAuthentication/service/service.d.ts +6 -0
  270. package/lib/providers/nextAuthAuthentication/service/service.js +12 -0
  271. package/lib/providers/nextAuthAuthentication/types.d.ts +8 -0
  272. package/lib/providers/nextAuthAuthentication/types.js +1 -0
  273. package/lib/routes/constants.d.ts +3 -0
  274. package/lib/routes/constants.js +3 -0
  275. package/lib/styles/common/mui/button.d.ts +3 -0
  276. package/lib/styles/common/mui/button.js +17 -0
  277. package/lib/styles/common/mui/paper.d.ts +2 -0
  278. package/lib/styles/common/mui/paper.js +9 -0
  279. package/lib/styles/common/mui/popover.d.ts +3 -0
  280. package/lib/styles/common/mui/popover.js +10 -0
  281. package/lib/theme/common/entities.d.ts +6 -0
  282. package/lib/theme/common/entities.js +1 -0
  283. package/lib/views/LoginView/loginView.d.ts +5 -1
  284. package/lib/views/LoginView/loginView.js +6 -4
  285. package/package.json +3 -2
  286. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.tsx +38 -0
  287. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/types.ts +7 -0
  288. package/src/components/Authentication/components/SessionController/components/NextSessionController/SessionController.tsx +23 -0
  289. package/src/components/Authentication/components/SessionController/components/NextSessionController/constants.ts +21 -0
  290. package/src/components/Authentication/components/SessionController/components/NextSessionController/types.ts +5 -0
  291. package/src/components/Authentication/components/SessionController/components/NextSessionController/utils.ts +74 -0
  292. package/src/components/ComponentCreator/ComponentCreator.tsx +4 -3
  293. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.tsx +4 -4
  294. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.tsx +1 -1
  295. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.tsx +9 -6
  296. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.tsx +27 -25
  297. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.ts +2 -2
  298. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.tsx +18 -42
  299. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.ts +19 -0
  300. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.ts +3 -2
  301. package/src/components/Layout/components/Header/header.tsx +1 -1
  302. package/src/components/Login/components/Button/button.styles.ts +12 -0
  303. package/src/components/Login/components/Button/button.tsx +8 -0
  304. package/src/components/Login/components/Button/constants.ts +8 -0
  305. package/src/components/Login/components/Button/types.ts +4 -0
  306. package/src/components/Login/login.tsx +28 -28
  307. package/src/components/Login/types.ts +11 -0
  308. package/src/components/Table/common/columnDef.ts +18 -2
  309. package/src/components/Table/common/columnIdentifier.ts +4 -0
  310. package/src/components/Table/common/typeGuards.ts +12 -0
  311. package/src/components/Table/common/utils.ts +5 -115
  312. package/src/components/Table/components/TableCell/common/utils.ts +3 -3
  313. package/src/components/Table/components/TableCell/components/RowSelectionCell/rowSelectionCell.tsx +3 -7
  314. package/src/components/Table/components/TableFeatures/ColumnVisibility/utils.ts +25 -44
  315. package/src/components/Table/components/TableHead/components/HeadSelectionCell/headSelectionCell.tsx +5 -9
  316. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.tsx +4 -22
  317. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/constants.ts +13 -0
  318. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.tsx +47 -20
  319. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.ts +1 -2
  320. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/utils.ts +58 -0
  321. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/constants.ts +1 -13
  322. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/utils.ts +26 -33
  323. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.styles.ts +12 -0
  324. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.tsx +28 -0
  325. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/constants.ts +9 -0
  326. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.styles.ts +17 -0
  327. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.tsx +53 -0
  328. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/types.ts +5 -0
  329. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/utils.ts +44 -0
  330. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/constants.ts +5 -0
  331. package/src/components/Table/components/TableToolbar/components/ColumnVisibility/types.ts +5 -0
  332. package/src/components/Table/components/TableToolbar/tableToolbar.tsx +5 -19
  333. package/src/components/Table/features/RowPosition/constants.ts +8 -5
  334. package/src/components/Table/features/RowPosition/types.ts +4 -0
  335. package/src/components/Table/features/RowPosition/utils.ts +1 -30
  336. package/src/components/Table/features/RowPreview/constants.ts +1 -1
  337. package/src/components/Table/features/entities.ts +2 -2
  338. package/src/components/Table/table.tsx +8 -46
  339. package/src/components/TableCreator/common/utils.ts +0 -4
  340. package/src/components/TableCreator/options/columnTrackSizing/typeGuards.ts +12 -0
  341. package/src/components/TableCreator/options/columnTrackSizing/utils.ts +99 -0
  342. package/src/components/TableCreator/options/hook.ts +8 -11
  343. package/src/components/TableCreator/options/initialState/columnVisibility.ts +22 -0
  344. package/src/components/TableCreator/options/initialState/hook.ts +24 -0
  345. package/src/components/TableCreator/options/visibility/constants.ts +5 -0
  346. package/src/components/TableCreator/options/visibility/hook.ts +22 -0
  347. package/src/components/TableCreator/tableCreator.tsx +3 -27
  348. package/src/components/common/Banner/components/SessionTimeout/sessionTimeout.tsx +1 -1
  349. package/src/components/common/CustomIcon/common/entities.ts +1 -4
  350. package/src/components/common/CustomIcon/components/GoogleIcon/googleIcon.tsx +3 -4
  351. package/src/config/entities.ts +22 -29
  352. package/src/hooks/authentication/auth/useAuthReducer.ts +16 -0
  353. package/src/hooks/authentication/authentication/useAuthenticationReducer.ts +16 -0
  354. package/src/hooks/authentication/config/useAuthenticationConfig.ts +13 -0
  355. package/src/hooks/authentication/credentials/useCredentialsReducer.ts +13 -0
  356. package/src/hooks/authentication/profile/types.ts +9 -0
  357. package/src/hooks/authentication/profile/useProfile.ts +21 -0
  358. package/src/hooks/authentication/providers/types.ts +7 -0
  359. package/src/hooks/authentication/providers/useProviders.ts +23 -0
  360. package/src/hooks/authentication/session/useSessionActive.ts +51 -0
  361. package/src/hooks/authentication/session/useSessionCallbackUrl.ts +25 -0
  362. package/src/hooks/authentication/session/useSessionIdleTimer.ts +10 -0
  363. package/src/hooks/{useSessionTimeout.ts → authentication/session/useSessionTimeout.ts} +2 -2
  364. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.ts +8 -13
  365. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.ts +3 -4
  366. package/src/hooks/authentication/token/types.ts +5 -0
  367. package/src/hooks/authentication/token/useToken.ts +9 -0
  368. package/src/hooks/authentication/token/useTokenReducer.ts +19 -0
  369. package/src/hooks/useEntityList.ts +2 -2
  370. package/src/hooks/useFetchEntity.tsx +3 -3
  371. package/src/hooks/useFileManifest/useFetchFilesFacets.ts +2 -3
  372. package/src/hooks/useFileManifest/useFetchSummary.ts +2 -3
  373. package/src/hooks/useRequestFileLocation.ts +2 -3
  374. package/src/hooks/useRouteHistory.ts +65 -0
  375. package/src/hooks/useRouteRoot.ts +11 -0
  376. package/src/hooks/useSummary.ts +3 -3
  377. package/src/providers/authentication/auth/actions.ts +17 -0
  378. package/src/providers/authentication/auth/constants.ts +6 -0
  379. package/src/providers/authentication/auth/context.ts +9 -0
  380. package/src/providers/authentication/auth/dispatch.ts +58 -0
  381. package/src/providers/authentication/auth/hook.ts +11 -0
  382. package/src/providers/authentication/auth/reducer.ts +25 -0
  383. package/src/providers/authentication/auth/types.ts +63 -0
  384. package/src/providers/authentication/authentication/actions.ts +17 -0
  385. package/src/providers/authentication/authentication/constants.ts +6 -0
  386. package/src/providers/authentication/authentication/context.ts +8 -0
  387. package/src/providers/authentication/authentication/dispatch.ts +55 -0
  388. package/src/providers/authentication/authentication/hook.ts +11 -0
  389. package/src/providers/authentication/authentication/reducer.ts +34 -0
  390. package/src/providers/authentication/authentication/types.ts +64 -0
  391. package/src/providers/authentication/authentication/utils.ts +25 -0
  392. package/src/providers/authentication/common/types.ts +1 -0
  393. package/src/providers/authentication/common/utils.ts +11 -0
  394. package/src/providers/authentication/credentials/actions.ts +17 -0
  395. package/src/providers/authentication/credentials/constants.ts +5 -0
  396. package/src/providers/authentication/credentials/context.ts +8 -0
  397. package/src/providers/authentication/credentials/dispatch.ts +31 -0
  398. package/src/providers/authentication/credentials/hook.ts +11 -0
  399. package/src/providers/authentication/credentials/reducer.ts +30 -0
  400. package/src/providers/authentication/credentials/types.ts +33 -0
  401. package/src/providers/authentication/terra/context.ts +16 -0
  402. package/src/providers/authentication/terra/hook.ts +11 -0
  403. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.ts +9 -0
  404. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.ts +1 -7
  405. package/src/providers/authentication/terra/hooks/useFetchProfiles.ts +61 -0
  406. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.ts +18 -7
  407. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.ts +18 -7
  408. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.ts +18 -7
  409. package/src/providers/authentication/terra/hooks/utils.ts +29 -0
  410. package/src/providers/authentication/terra/provider.tsx +60 -0
  411. package/src/providers/authentication/terra/types.ts +23 -0
  412. package/src/providers/authentication/terra/utils.ts +49 -0
  413. package/src/providers/authentication/token/constants.ts +6 -0
  414. package/src/providers/authentication/token/dispatch.ts +29 -0
  415. package/src/providers/authentication/token/reducer.ts +26 -0
  416. package/src/providers/authentication/token/types.ts +36 -0
  417. package/src/providers/exploreState/actions/updateVisibility/action.ts +29 -0
  418. package/src/providers/exploreState/actions/updateVisibility/dispatch.ts +19 -0
  419. package/src/providers/exploreState/actions/updateVisibility/types.ts +11 -0
  420. package/src/providers/exploreState/actions/updateVisibility/utils.ts +28 -0
  421. package/src/providers/exploreState/entities.ts +1 -1
  422. package/src/providers/exploreState/initializer/utils.ts +5 -21
  423. package/src/providers/exploreState/payloads/entities.ts +0 -6
  424. package/src/providers/exploreState/utils.ts +5 -5
  425. package/src/providers/exploreState.tsx +6 -22
  426. package/src/providers/googleSignInAuthentication/common/types.ts +28 -0
  427. package/src/providers/googleSignInAuthentication/constants.ts +17 -0
  428. package/src/providers/googleSignInAuthentication/hooks/useGoogleSignInService.ts +53 -0
  429. package/src/providers/googleSignInAuthentication/profile/types.ts +15 -0
  430. package/src/providers/googleSignInAuthentication/profile/utils.ts +29 -0
  431. package/src/providers/googleSignInAuthentication/provider.tsx +53 -0
  432. package/src/providers/googleSignInAuthentication/service/constants.ts +16 -0
  433. package/src/providers/googleSignInAuthentication/service/service.ts +68 -0
  434. package/src/providers/googleSignInAuthentication/types.ts +7 -0
  435. package/src/providers/nextAuthAuthentication/hooks/useNextAuthService.ts +26 -0
  436. package/src/providers/nextAuthAuthentication/provider.tsx +42 -0
  437. package/src/providers/nextAuthAuthentication/service/service.ts +14 -0
  438. package/src/providers/nextAuthAuthentication/types.ts +9 -0
  439. package/src/routes/constants.ts +3 -0
  440. package/src/styles/common/mui/button.ts +20 -0
  441. package/src/styles/common/mui/paper.ts +11 -0
  442. package/src/styles/common/mui/popover.ts +19 -0
  443. package/src/theme/common/entities.ts +7 -0
  444. package/src/views/LoginView/loginView.tsx +15 -9
  445. package/tests/getProfileStatus.test.ts +290 -0
  446. package/tests/terraProfileProvider.test.tsx +121 -0
  447. package/tests/transformRoute.test.ts +21 -0
  448. package/tests/useRouteHistory.test.ts +97 -0
  449. package/tests/useSessionActive.test.ts +107 -0
  450. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.d.ts +0 -5
  451. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.js +0 -29
  452. package/lib/components/Login/login.stories.d.ts +0 -6
  453. package/lib/components/Login/login.stories.js +0 -31
  454. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.d.ts +0 -16
  455. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.js +0 -28
  456. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.stories.d.ts +0 -5
  457. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.stories.js +0 -46
  458. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.styles.d.ts +0 -3
  459. package/lib/components/Table/components/CheckboxMenu/checkboxMenu.styles.js +0 -21
  460. package/lib/components/Table/features/constants.d.ts +0 -6
  461. package/lib/components/Table/features/constants.js +0 -8
  462. package/lib/components/TableCreator/common/constants.d.ts +0 -7
  463. package/lib/components/TableCreator/common/constants.js +0 -21
  464. package/lib/components/common/Button/components/LoginButton/loginButton.d.ts +0 -3
  465. package/lib/components/common/Button/components/LoginButton/loginButton.js +0 -6
  466. package/lib/components/common/Button/components/LoginButton/loginButton.styles.d.ts +0 -7
  467. package/lib/components/common/Button/components/LoginButton/loginButton.styles.js +0 -11
  468. package/lib/hooks/useAuthentication/useAuthentication.d.ts +0 -6
  469. package/lib/hooks/useAuthentication/useAuthentication.js +0 -9
  470. package/lib/hooks/useAuthentication/useAuthenticationComplete.d.ts +0 -6
  471. package/lib/hooks/useAuthentication/useAuthenticationComplete.js +0 -55
  472. package/lib/hooks/useAuthentication/useAuthenticationStatus.d.ts +0 -20
  473. package/lib/hooks/useAuthentication/useAuthenticationStatus.js +0 -32
  474. package/lib/hooks/useAuthentication/useFetchGoogleProfile.d.ts +0 -21
  475. package/lib/hooks/useAuthentication/useFetchGoogleProfile.js +0 -41
  476. package/lib/hooks/useAuthentication/useTokenClient.d.ts +0 -11
  477. package/lib/hooks/useAuthentication/useTokenClient.js +0 -29
  478. package/lib/hooks/useAuthenticationConfig.d.ts +0 -6
  479. package/lib/hooks/useAuthenticationConfig.js +0 -14
  480. package/lib/providers/authentication.d.ts +0 -51
  481. package/lib/providers/authentication.js +0 -110
  482. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.tsx +0 -35
  483. package/src/components/Login/login.stories.tsx +0 -43
  484. package/src/components/Table/components/CheckboxMenu/checkboxMenu.stories.tsx +0 -54
  485. package/src/components/Table/components/CheckboxMenu/checkboxMenu.styles.ts +0 -22
  486. package/src/components/Table/components/CheckboxMenu/checkboxMenu.tsx +0 -87
  487. package/src/components/Table/features/constants.ts +0 -10
  488. package/src/components/TableCreator/common/constants.ts +0 -25
  489. package/src/components/common/Button/components/LoginButton/loginButton.styles.ts +0 -13
  490. package/src/components/common/Button/components/LoginButton/loginButton.tsx +0 -16
  491. package/src/hooks/useAuthentication/useAuthentication.tsx +0 -10
  492. package/src/hooks/useAuthentication/useAuthenticationComplete.ts +0 -66
  493. package/src/hooks/useAuthentication/useAuthenticationStatus.ts +0 -49
  494. package/src/hooks/useAuthentication/useFetchGoogleProfile.ts +0 -68
  495. package/src/hooks/useAuthentication/useTokenClient.ts +0 -54
  496. package/src/hooks/useAuthenticationConfig.ts +0 -18
  497. package/src/providers/authentication.tsx +0 -181
  498. package/tests/authentication.test.ts +0 -142
  499. package/tests/useAuthenticationStatus.test.ts +0 -155
  500. /package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/{columnGrouping.styles.d.ts → components/MenuItems/menuItems.styles.d.ts} +0 -0
  501. /package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/{columnGrouping.styles.js → components/MenuItems/menuItems.styles.js} +0 -0
  502. /package/lib/hooks/{useSessionTimeout.d.ts → authentication/session/useSessionTimeout.d.ts} +0 -0
  503. /package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.d.ts +0 -0
  504. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.d.ts +0 -0
  505. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.js +0 -0
  506. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.d.ts +0 -0
  507. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.d.ts +0 -0
  508. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.d.ts +0 -0
  509. /package/src/components/Table/components/TableToolbar/components/ColumnGrouping/{columnGrouping.styles.ts → components/MenuItems/menuItems.styles.ts} +0 -0
  510. /package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.ts +0 -0
@@ -1,41 +0,0 @@
1
- import { useCallback, useEffect, useState } from "react";
2
- import { useAuthenticationConfig } from "../useAuthenticationConfig";
3
- import { LOGIN_STATUS_FAILED, LOGIN_STATUS_NOT_STARTED, } from "./common/constants";
4
- import { REQUEST_STATUS } from "./common/entities";
5
- import { getAuthenticationRequestOptions } from "./common/utils";
6
- /**
7
- * Returns user profile login status from configured endpoint.
8
- * @param token - Token.
9
- * @returns google profile login status.
10
- */
11
- export const useFetchGoogleProfile = (token) => {
12
- const authenticationConfig = useAuthenticationConfig();
13
- const { googleGISAuthConfig: { googleProfileEndpoint: endpoint } = {} } = authenticationConfig;
14
- const [loginStatus, setLoginStatus] = useState(LOGIN_STATUS_NOT_STARTED);
15
- // Fetch google user profile.
16
- const fetchEndpointData = useCallback((endpoint, accessToken) => {
17
- fetch(endpoint, getAuthenticationRequestOptions(accessToken))
18
- .then((response) => response.json())
19
- .then((profile) => {
20
- setLoginStatus((prevStatus) => ({
21
- ...prevStatus,
22
- isSuccess: true,
23
- requestStatus: REQUEST_STATUS.COMPLETED,
24
- response: profile,
25
- }));
26
- })
27
- .catch((err) => {
28
- console.log(err); // TODO handle error.
29
- setLoginStatus(LOGIN_STATUS_FAILED);
30
- });
31
- }, []);
32
- // Fetches user profile.
33
- useEffect(() => {
34
- if (!token)
35
- return;
36
- if (!endpoint)
37
- return;
38
- fetchEndpointData(endpoint, token);
39
- }, [endpoint, fetchEndpointData, token]);
40
- return loginStatus;
41
- };
@@ -1,11 +0,0 @@
1
- type TokenClient = any;
2
- export interface UseTokenClient {
3
- token: string | undefined;
4
- tokenClient: TokenClient | undefined;
5
- }
6
- /**
7
- * Initializes the token client, sets token from token client callback.
8
- * @returns initialized token client.
9
- */
10
- export declare const useTokenClient: () => UseTokenClient;
11
- export {};
@@ -1,29 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- import { useAuthenticationConfig } from "../useAuthenticationConfig";
3
- /**
4
- * Initializes the token client, sets token from token client callback.
5
- * @returns initialized token client.
6
- */
7
- export const useTokenClient = () => {
8
- const [token, setToken] = useState();
9
- const [tokenClient, setTokenClient] = useState();
10
- const authenticationConfig = useAuthenticationConfig();
11
- const { googleGISAuthConfig: { clientId, scope } = {} } = authenticationConfig;
12
- // Initializes token client - (authorization client id must be configured).
13
- useEffect(() => {
14
- if (clientId) {
15
- setTokenClient(google.accounts.oauth2.initTokenClient({
16
- callback: (tokenResponse) => {
17
- const access_token = tokenResponse.access_token;
18
- setToken(access_token);
19
- },
20
- client_id: clientId,
21
- scope,
22
- }));
23
- }
24
- }, [clientId, scope]);
25
- return {
26
- token,
27
- tokenClient,
28
- };
29
- };
@@ -1,6 +0,0 @@
1
- import { AuthenticationConfig } from "../config/entities";
2
- /**
3
- * Hook to get the authentication config
4
- * @returns @see AuthenticationConfig used in the current config.
5
- */
6
- export declare const useAuthenticationConfig: () => AuthenticationConfig;
@@ -1,14 +0,0 @@
1
- import { useConfig } from "./useConfig";
2
- /**
3
- * Hook to get the authentication config
4
- * @returns @see AuthenticationConfig used in the current config.
5
- */
6
- export const useAuthenticationConfig = () => {
7
- const { config } = useConfig();
8
- if (!config.authentication) {
9
- return {
10
- title: "",
11
- };
12
- }
13
- return config.authentication;
14
- };
@@ -1,51 +0,0 @@
1
- import React, { ReactNode } from "react";
2
- import { AUTHENTICATION_STATUS, LoginStatus } from "../hooks/useAuthentication/common/entities";
3
- import { UserProfile } from "../hooks/useAuthentication/useFetchGoogleProfile";
4
- import { TerraNIHResponse } from "../hooks/useAuthentication/useFetchTerraNIHProfile";
5
- import { TerraResponse } from "../hooks/useAuthentication/useFetchTerraProfile";
6
- import { TerraTermsOfServiceResponse } from "../hooks/useAuthentication/useFetchTerraTermsOfService";
7
- export declare const ROUTE_LOGIN = "/login";
8
- type AuthenticateUserFn = () => void;
9
- type RequestAuthenticationFn = () => void;
10
- /**
11
- * Model of authentication context.
12
- */
13
- export interface AuthContextProps {
14
- authenticateUser: AuthenticateUserFn;
15
- authenticationStatus: AUTHENTICATION_STATUS;
16
- isAuthenticated: boolean;
17
- isEnabled: boolean;
18
- requestAuthentication: RequestAuthenticationFn;
19
- terraNIHProfileLoginStatus: LoginStatus<TerraNIHResponse>;
20
- terraProfileLoginStatus: LoginStatus<TerraResponse>;
21
- terraTOSLoginStatus: LoginStatus<TerraTermsOfServiceResponse>;
22
- token?: string;
23
- userProfile?: UserProfile;
24
- }
25
- /**
26
- * Auth context for storing and using auth-related state.
27
- */
28
- export declare const AuthContext: React.Context<AuthContextProps>;
29
- interface Props {
30
- children: ReactNode | ReactNode[];
31
- sessionTimeout?: number;
32
- }
33
- /**
34
- * Auth provider for consuming components to subscribe to changes in auth-related state.
35
- * @param props - Component inputs.
36
- * @param props.children - Set of children components that can possibly consume the query provider.
37
- * @param props.sessionTimeout - If provided, will set the value for a session timeout (in milliseconds).
38
- * @returns Provider element to be used by consumers to both update authentication state and subscribe to changes in authentication state.
39
- */
40
- export declare function AuthProvider({ children, sessionTimeout }: Props): JSX.Element;
41
- /**
42
- * Token is released for the following conditions:
43
- * - Terra endpoint is configured and the terms of service response is successful, or
44
- * - Terra endpoint is not configured and the user profile response is successful.
45
- * @param userProfileLoginStatus - User profile login status.
46
- * @param terraProfileLoginStatus - Terra profile login status.
47
- * @param terraTOSLoginStatus - Terra terms of service login status.
48
- * @returns true if the token should be released.
49
- */
50
- export declare function shouldReleaseToken(userProfileLoginStatus: LoginStatus<UserProfile>, terraProfileLoginStatus: LoginStatus<TerraResponse>, terraTOSLoginStatus: LoginStatus<TerraTermsOfServiceResponse>): boolean;
51
- export {};
@@ -1,110 +0,0 @@
1
- import Router, { useRouter } from "next/router";
2
- import React, { createContext, useCallback } from "react";
3
- import { useIdleTimer } from "react-idle-timer";
4
- import { LOGIN_STATUS_NOT_STARTED } from "../hooks/useAuthentication/common/constants";
5
- import { AUTHENTICATION_STATUS, } from "../hooks/useAuthentication/common/entities";
6
- import { useAuthenticationComplete } from "../hooks/useAuthentication/useAuthenticationComplete";
7
- import { useAuthenticationStatus } from "../hooks/useAuthentication/useAuthenticationStatus";
8
- import { useFetchGoogleProfile, } from "../hooks/useAuthentication/useFetchGoogleProfile";
9
- import { useFetchTerraNIHProfile, } from "../hooks/useAuthentication/useFetchTerraNIHProfile";
10
- import { useFetchTerraProfile, } from "../hooks/useAuthentication/useFetchTerraProfile";
11
- import { useFetchTerraTermsOfService, } from "../hooks/useAuthentication/useFetchTerraTermsOfService";
12
- import { useTokenClient } from "../hooks/useAuthentication/useTokenClient";
13
- import { useConfig } from "../hooks/useConfig";
14
- import { INACTIVITY_PARAM } from "../hooks/useSessionTimeout";
15
- // Template constants
16
- export const ROUTE_LOGIN = "/login";
17
- /**
18
- * Auth context for storing and using auth-related state.
19
- */
20
- export const AuthContext = createContext({
21
- // eslint-disable-next-line @typescript-eslint/no-empty-function -- allow dummy function for default state.
22
- authenticateUser: () => { },
23
- authenticationStatus: AUTHENTICATION_STATUS.INCOMPLETE,
24
- isAuthenticated: false,
25
- isEnabled: false,
26
- // eslint-disable-next-line @typescript-eslint/no-empty-function -- allow dummy function for default state.
27
- requestAuthentication: () => { },
28
- terraNIHProfileLoginStatus: LOGIN_STATUS_NOT_STARTED,
29
- terraProfileLoginStatus: LOGIN_STATUS_NOT_STARTED,
30
- terraTOSLoginStatus: LOGIN_STATUS_NOT_STARTED,
31
- token: undefined,
32
- userProfile: undefined,
33
- });
34
- /**
35
- * Auth provider for consuming components to subscribe to changes in auth-related state.
36
- * @param props - Component inputs.
37
- * @param props.children - Set of children components that can possibly consume the query provider.
38
- * @param props.sessionTimeout - If provided, will set the value for a session timeout (in milliseconds).
39
- * @returns Provider element to be used by consumers to both update authentication state and subscribe to changes in authentication state.
40
- */
41
- export function AuthProvider({ children, sessionTimeout }) {
42
- const { config } = useConfig();
43
- const { authentication, redirectRootToPath } = config;
44
- const { basePath } = useRouter();
45
- const { token, tokenClient } = useTokenClient();
46
- const terraNIHProfileLoginStatus = useFetchTerraNIHProfile(token);
47
- const terraProfileLoginStatus = useFetchTerraProfile(token);
48
- const terraTOSLoginStatus = useFetchTerraTermsOfService(token);
49
- const userProfileLoginStatus = useFetchGoogleProfile(token);
50
- const isEnabled = Boolean(authentication);
51
- const isAuthenticated = userProfileLoginStatus.isSuccess;
52
- const releaseToken = shouldReleaseToken(userProfileLoginStatus, terraProfileLoginStatus, terraTOSLoginStatus);
53
- const authenticationStatus = useAuthenticationStatus(userProfileLoginStatus, terraProfileLoginStatus, terraTOSLoginStatus, terraNIHProfileLoginStatus);
54
- // Handle completion of authentication process.
55
- useAuthenticationComplete(authenticationStatus);
56
- /**
57
- * If sessionTimeout is set and user is authenticated, the app will reload and redirect to
58
- * origin, including base path, root path, and query param.
59
- */
60
- useIdleTimer({
61
- onIdle: () => isAuthenticated &&
62
- sessionTimeout &&
63
- (window.location.href =
64
- window.location.origin +
65
- basePath +
66
- redirectRootToPath +
67
- "?" +
68
- `${INACTIVITY_PARAM}=true`),
69
- timeout: sessionTimeout,
70
- });
71
- /**
72
- * Requests access token and authenticates user.
73
- */
74
- const authenticateUser = useCallback(() => {
75
- tokenClient.requestAccessToken();
76
- }, [tokenClient]);
77
- /**
78
- * Navigates to login page.
79
- */
80
- const requestAuthentication = useCallback(() => {
81
- Router.push(ROUTE_LOGIN);
82
- }, []);
83
- return (React.createElement(AuthContext.Provider, { value: {
84
- authenticateUser,
85
- authenticationStatus,
86
- isAuthenticated,
87
- isEnabled,
88
- requestAuthentication,
89
- terraNIHProfileLoginStatus,
90
- terraProfileLoginStatus,
91
- terraTOSLoginStatus,
92
- token: releaseToken ? token : undefined,
93
- userProfile: userProfileLoginStatus.response,
94
- } }, children));
95
- }
96
- /**
97
- * Token is released for the following conditions:
98
- * - Terra endpoint is configured and the terms of service response is successful, or
99
- * - Terra endpoint is not configured and the user profile response is successful.
100
- * @param userProfileLoginStatus - User profile login status.
101
- * @param terraProfileLoginStatus - Terra profile login status.
102
- * @param terraTOSLoginStatus - Terra terms of service login status.
103
- * @returns true if the token should be released.
104
- */
105
- export function shouldReleaseToken(userProfileLoginStatus, terraProfileLoginStatus, terraTOSLoginStatus) {
106
- if (terraProfileLoginStatus.isSupported) {
107
- return terraTOSLoginStatus.isSuccess;
108
- }
109
- return userProfileLoginStatus.isSuccess;
110
- }
@@ -1,35 +0,0 @@
1
- import { Meta, StoryFn } from "@storybook/react";
2
- import React from "react";
3
- import { AuthenticationMenu } from "./authenticationMenu";
4
-
5
- export default {
6
- argTypes: {
7
- onLogout: {
8
- description: "Callback to be called when 'Logout' button is clicked",
9
- },
10
- userProfile: {
11
- description: "User profile with name and avatar",
12
- },
13
- },
14
- component: AuthenticationMenu,
15
- title: "Components/Navigation/AuthenticationMenu",
16
- } as Meta<typeof AuthenticationMenu>;
17
-
18
- const AuthenticationMenuTemplate: StoryFn<typeof AuthenticationMenu> = (
19
- args
20
- ) => <AuthenticationMenu {...args} />;
21
-
22
- export const AuthenticationMenuStory = AuthenticationMenuTemplate.bind({});
23
- AuthenticationMenuStory.args = {
24
- userProfile: {
25
- email: "john@smith.com",
26
- email_verified: true,
27
- family_name: "Smith",
28
- given_name: "John",
29
- hd: "",
30
- locale: "",
31
- name: "john_smith",
32
- picture: "https://i.pravatar.cc/200",
33
- sub: "",
34
- },
35
- };
@@ -1,43 +0,0 @@
1
- import { Meta, StoryObj } from "@storybook/react";
2
- import React from "react";
3
- import { HelpIconButton } from "../common/Button/components/HelpIconButton/helpIconButton";
4
- import { Login } from "./login";
5
-
6
- export default {
7
- argTypes: {
8
- isGoogle: { control: "boolean" },
9
- termsOfService: { control: "object" },
10
- text: { control: "object" },
11
- title: { control: "text" },
12
- warning: { control: "object" },
13
- },
14
- component: Login,
15
- parameters: {
16
- layout: "fullscreen",
17
- },
18
- title: "Components/Login",
19
- } as Meta<typeof Login>;
20
-
21
- type Story = StoryObj<typeof Login>;
22
-
23
- export const LoginStory: Story = {
24
- args: {
25
- isGoogle: true,
26
- termsOfService: (
27
- <p>I have read and agree to privacy notice and terms of use</p>
28
- ),
29
- text: (
30
- <p>
31
- Please sign in to your Data Explorer account{" "}
32
- <HelpIconButton url="https://www.google.com/" />
33
- </p>
34
- ),
35
- title: "Sign in to your account",
36
- warning: (
37
- <div>
38
- <p>WARNING NOTICE</p>
39
- <p>This is a warning notice.</p>
40
- </div>
41
- ),
42
- },
43
- };
@@ -1,54 +0,0 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
3
- import { CheckboxMenu } from "./checkboxMenu";
4
-
5
- export default {
6
- argTypes: {
7
- label: { control: "text" },
8
- onReset: { control: { disabled: true } },
9
- options: { control: "array" },
10
- },
11
- component: CheckboxMenu,
12
- title: "Components/Common/Menu/CheckboxMenu",
13
- } as ComponentMeta<typeof CheckboxMenu>;
14
-
15
- const CheckboxMenuTemplate: ComponentStory<typeof CheckboxMenu> = (args) => (
16
- <CheckboxMenu {...args} />
17
- );
18
-
19
- const onChange = (): void => {
20
- // onChange function
21
- };
22
-
23
- const onReset = (): void => {
24
- // onReset function
25
- };
26
-
27
- export const CheckboxMenuStory = CheckboxMenuTemplate.bind({});
28
- CheckboxMenuStory.args = {
29
- label: "Options",
30
- onReset: onReset,
31
- options: [
32
- {
33
- checked: true,
34
- disabled: true,
35
- label: "Item 1",
36
- onChange,
37
- value: "item_1",
38
- },
39
- {
40
- checked: false,
41
- disabled: false,
42
- label: "Item 2",
43
- onChange,
44
- value: "item_2",
45
- },
46
- {
47
- checked: true,
48
- disabled: false,
49
- label: "Item 3",
50
- onChange,
51
- value: "item_3",
52
- },
53
- ],
54
- };
@@ -1,22 +0,0 @@
1
- import styled from "@emotion/styled";
2
- import { Menu as MMenu } from "@mui/material";
3
-
4
- export const Menu = styled(MMenu)`
5
- .MuiPaper-menu {
6
- margin: 4px 0;
7
- }
8
-
9
- // List item button
10
- .MuiListItemButton-root {
11
- gap: 8px;
12
- }
13
-
14
- // List item
15
- .MuiListItem-root {
16
- padding: 10px 16px;
17
- }
18
-
19
- .MuiListItemButton-root.Mui-disabled {
20
- opacity: 1;
21
- }
22
- `;
@@ -1,87 +0,0 @@
1
- import {
2
- Checkbox,
3
- ListItem,
4
- ListItemButton,
5
- ListItemText,
6
- } from "@mui/material";
7
- import React, { MouseEvent, useState } from "react";
8
- import { ButtonTextPrimary } from "../../../common/Button/components/ButtonTextPrimary/buttonTextPrimary";
9
- import { DropdownButton } from "../../../common/Button/components/DropdownButton/dropdownButton";
10
- import { CheckedIcon } from "../../../common/CustomIcon/components/CheckedIcon/checkedIcon";
11
- import { UncheckedIcon } from "../../../common/CustomIcon/components/UncheckedIcon/uncheckedIcon";
12
- import { Menu } from "./checkboxMenu.styles";
13
-
14
- type MenuListItemOnChangeFn = (event: unknown) => void; // see React Table VisibilityColumn "getToggleVisibilityHandler".
15
- type onResetFn = () => void; // see React Table VisibilityInstance "resetColumnVisibility".
16
-
17
- export interface CheckboxMenuListItem {
18
- checked: boolean;
19
- disabled?: boolean;
20
- label: string;
21
- onChange: MenuListItemOnChangeFn;
22
- value: string;
23
- }
24
-
25
- export interface CheckboxMenuProps {
26
- label: string;
27
- onReset: onResetFn;
28
- options: CheckboxMenuListItem[];
29
- }
30
-
31
- export const CheckboxMenu = ({
32
- label: buttonLabel,
33
- onReset,
34
- options,
35
- }: CheckboxMenuProps): JSX.Element => {
36
- const [anchorEl, setAnchorEl] = useState<null | HTMLButtonElement>(null);
37
- const open = Boolean(anchorEl);
38
-
39
- const onOpenMenu = (event: MouseEvent<HTMLButtonElement>): void => {
40
- setAnchorEl(event.currentTarget);
41
- };
42
-
43
- const onCloseMenu = (): void => {
44
- setAnchorEl(null);
45
- };
46
-
47
- return (
48
- <>
49
- <DropdownButton onClick={onOpenMenu} open={open}>
50
- {buttonLabel}
51
- </DropdownButton>
52
- <Menu
53
- anchorEl={anchorEl}
54
- anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
55
- onClose={onCloseMenu}
56
- open={open}
57
- slotProps={{ paper: { variant: "menu" } }}
58
- transformOrigin={{
59
- horizontal: "right",
60
- vertical: "top",
61
- }}
62
- >
63
- {options.map(
64
- ({ checked, disabled = false, label, onChange, value }) => (
65
- <ListItemButton
66
- disabled={disabled}
67
- key={value}
68
- onClick={onChange}
69
- role={undefined}
70
- >
71
- <Checkbox
72
- checked={checked}
73
- checkedIcon={<CheckedIcon />}
74
- disabled={disabled}
75
- icon={<UncheckedIcon />}
76
- />
77
- <ListItemText disableTypography primary={<span>{label}</span>} />
78
- </ListItemButton>
79
- )
80
- )}
81
- <ListItem component="div">
82
- <ButtonTextPrimary onClick={onReset}>Reset</ButtonTextPrimary>
83
- </ListItem>
84
- </Menu>
85
- </>
86
- );
87
- };
@@ -1,10 +0,0 @@
1
- import { PaginationState } from "@tanstack/react-table";
2
-
3
- /**
4
- * Default TanStack pagination state.
5
- * See https://tanstack.com/table/latest/docs/guide/custom-features#getinitialstate.
6
- */
7
- export const DEFAULT_PAGINATION: PaginationState = {
8
- pageIndex: 0,
9
- pageSize: 10,
10
- };
@@ -1,25 +0,0 @@
1
- import { RowData } from "@tanstack/react-table";
2
- import { ColumnConfig } from "../../../config/entities";
3
- import { RowSelectionCell } from "../../Table/components/TableCell/components/RowSelectionCell/rowSelectionCell";
4
-
5
- export const ACCESSOR_KEYS = {
6
- ROW_POSITION: "rowPosition",
7
- SELECT: "select",
8
- };
9
-
10
- export const COLUMN_CONFIGS: Record<string, ColumnConfig<RowData>> = {
11
- SELECT: {
12
- columnPinned: false,
13
- columnVisible: false,
14
- componentConfig: { component: RowSelectionCell },
15
- disableHiding: true,
16
- enableGrouping: false,
17
- enableSorting: false,
18
- header: ACCESSOR_KEYS.SELECT,
19
- id: ACCESSOR_KEYS.SELECT,
20
- meta: {
21
- header: "",
22
- },
23
- width: "max-content",
24
- },
25
- };
@@ -1,13 +0,0 @@
1
- import styled from "@emotion/styled";
2
- import { ButtonSecondary } from "../ButtonSecondary/buttonSecondary";
3
-
4
- export const LoginButton = styled(ButtonSecondary)`
5
- .MuiButton-endIcon {
6
- margin-right: -6px;
7
- }
8
- `;
9
-
10
- export const LoginButtonText = styled.span`
11
- flex: 1;
12
- text-align: left;
13
- `;
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- import { ButtonProps } from "../../button";
3
- import { LoginButton as Button, LoginButtonText } from "./loginButton.styles";
4
-
5
- export type LoginButtonProps = Exclude<ButtonProps, "StartIcon">;
6
-
7
- export const LoginButton = ({
8
- children,
9
- ...props
10
- }: LoginButtonProps): JSX.Element => {
11
- return (
12
- <Button fullWidth={true} {...props}>
13
- <LoginButtonText>{children}</LoginButtonText>
14
- </Button>
15
- );
16
- };
@@ -1,10 +0,0 @@
1
- import { useContext } from "react";
2
- import { AuthContext, AuthContextProps } from "../../providers/authentication";
3
-
4
- /**
5
- * Returns authentication context.
6
- * @returns authentication context.
7
- */
8
- export const useAuthentication = (): AuthContextProps => {
9
- return useContext(AuthContext);
10
- };
@@ -1,66 +0,0 @@
1
- import Router, { useRouter } from "next/router";
2
- import { useEffect, useMemo, useRef } from "react";
3
- import { escapeRegExp } from "../../common/utils";
4
- import { ROUTE_LOGIN } from "../../providers/authentication";
5
- import { INACTIVITY_PARAM } from "../useSessionTimeout";
6
- import { AUTHENTICATION_STATUS } from "./common/entities";
7
-
8
- /**
9
- * Handles the completion of the authentication process.
10
- * @param authenticationStatus - Authentication status.
11
- */
12
- export const useAuthenticationComplete = (
13
- authenticationStatus: AUTHENTICATION_STATUS
14
- ): void => {
15
- const { asPath } = useRouter();
16
- const routeHistoryRef = useRef<string>(initRouteHistory(asPath));
17
-
18
- // Maintain a history of routes that have been visited prior to authentication.
19
- routeHistoryRef.current = useMemo(
20
- () => updateRouteHistory(routeHistoryRef.current, asPath),
21
- [asPath]
22
- );
23
-
24
- // Redirect to the previous route after authentication is completed.
25
- useEffect(() => {
26
- if (authenticationStatus === AUTHENTICATION_STATUS.COMPLETED) {
27
- Router.push(routeHistoryRef.current);
28
- }
29
- }, [authenticationStatus]);
30
- };
31
-
32
- /**
33
- * Initializes route history with the current path.
34
- * Returns base path if current path is the login route.
35
- * @param path - current browser path.
36
- * @returns path to be used as the initial route history.
37
- */
38
- function initRouteHistory(path: string): string {
39
- return path === ROUTE_LOGIN ? "/" : removeInactivityTimeoutQueryParam(path);
40
- }
41
-
42
- /**
43
- * Removes the inactivity timeout query parameter from the path.
44
- * the inactivity timeout parameter is used to indicate that the session has timed out; remove the parameter to
45
- * clear the session timeout banner after the user logs in again.
46
- * @param path - Path.
47
- * @returns path without the inactivity timeout query parameter.
48
- */
49
- function removeInactivityTimeoutQueryParam(path: string): string {
50
- const regex = new RegExp(`\\?${escapeRegExp(INACTIVITY_PARAM)}(?:$|[=&].*)`);
51
- return path.replace(regex, "");
52
- }
53
-
54
- /**
55
- * Updates route history with the current path, unless the current path is the LoginView page.
56
- * @param prevPath - route history path.
57
- * @param path - current browser path.
58
- * @returns updated path to be used as the route history.
59
- */
60
- function updateRouteHistory(prevPath: string, path: string): string {
61
- let currentPath = prevPath;
62
- if (path !== ROUTE_LOGIN) {
63
- currentPath = path;
64
- }
65
- return removeInactivityTimeoutQueryParam(currentPath);
66
- }