@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
@@ -0,0 +1,83 @@
1
+ import { COLUMN_IDENTIFIER } from "../../../Table/common/columnIdentifier";
2
+ import { isGridTrackMinMax } from "./typeGuards";
3
+ /**
4
+ * Generates the grid track sizing for a table using a grid layout.
5
+ * Creates a string value for the `grid-template-columns` CSS property based on the visible columns.
6
+ * It ensures proper sizing for grouped, system, and non-system columns.
7
+ * - Grouped columns are excluded from grid sizing as they flex across the table.
8
+ * - System columns (e.g., "rowPosition" and "rowSelection") have pre-defined sizing.
9
+ * - Non-system columns collectively fill the table's width. If their total fractional sizing is less than `1fr`, the first non-system column is assigned `1fr` to ensure the table is filled.
10
+ * @param visibleColumns - Visible columns.
11
+ * @returns string defining the CSS `grid-template-columns` value for the table.
12
+ */
13
+ export function getColumnTrackSizing(visibleColumns) {
14
+ // Precompute track sizing.
15
+ const trackSizing = [];
16
+ let columnCount = 0; // Non-system column count.
17
+ let firstNonSystemColumnIndex = -1;
18
+ let totalFractionalSize = 0;
19
+ for (const [i, column] of visibleColumns.entries()) {
20
+ if (column.getIsGrouped())
21
+ continue;
22
+ // Get the column's track size.
23
+ const columnTrackSize = getColumnTrackSize(column);
24
+ trackSizing.push(columnTrackSize);
25
+ // Extract the fractional value (if it exists), and accumulate the total.
26
+ const frSize = extractFractionalValue(columnTrackSize);
27
+ if (frSize)
28
+ totalFractionalSize += frSize;
29
+ // Skip system columns; track the first non-system column index.
30
+ if (isSystemColumn(column))
31
+ continue;
32
+ if (firstNonSystemColumnIndex < 0)
33
+ firstNonSystemColumnIndex = i;
34
+ columnCount++;
35
+ }
36
+ // Adjust track sizing for the first non-system column when:
37
+ // - the table is a single-column table, or
38
+ // - the total `fr` value is less than 1.
39
+ if (firstNonSystemColumnIndex >= 0 &&
40
+ (columnCount === 1 || totalFractionalSize < 1)) {
41
+ trackSizing[firstNonSystemColumnIndex] = "1fr";
42
+ }
43
+ return trackSizing.join(" ");
44
+ }
45
+ /**
46
+ * Determines the CSS grid track size for a given column.
47
+ * Calculates the track size for a column based on its width configuration.
48
+ * If the column's width is defined as a min-max range, it returns a `minmax()` CSS function.
49
+ * Otherwise, it defaults to the column's width or `1fr` if no width is specified.
50
+ * @param column - Column.
51
+ * @returns A string representing the CSS track size for the column. This can be a `minmax()` function or a fixed/flexible value (e.g., `auto`, `1fr`, `200px`).
52
+ */
53
+ export function getColumnTrackSize(column) {
54
+ const width = column.columnDef.meta?.width || "1fr";
55
+ if (isGridTrackMinMax(width)) {
56
+ return `minmax(${width.min}, ${width.max})`;
57
+ }
58
+ return width;
59
+ }
60
+ /**
61
+ * Returns true if the column is a system column "rowPosition" or "rowSelection".
62
+ * @param column - Column.
63
+ * @returns true if the column is a system column.
64
+ */
65
+ function isSystemColumn(column) {
66
+ return (column.id === COLUMN_IDENTIFIER.ROW_POSITION ||
67
+ column.id === COLUMN_IDENTIFIER.ROW_SELECTION);
68
+ }
69
+ /**
70
+ * Extracts the fractional value (`fr`) from a CSS track size string.
71
+ * This function parses a CSS track size (e.g., `1fr`, `minmax(168px, 0.5fr)`)
72
+ * and extracts the numeric fractional value that appears before `fr`.
73
+ * If the input does not contain a valid fractional value, the function returns `0`.
74
+ * @param columnTrackSize - The CSS track size string e.g. `1fr`, `minmax(100px, 0.5fr)`, `200px`, or `auto`.
75
+ * @returns The fractional value as a number, or `0` if no fractional value is found.
76
+ */
77
+ export function extractFractionalValue(columnTrackSize) {
78
+ const match = columnTrackSize.match(/([\d.]+)fr/);
79
+ if (!match)
80
+ return 0;
81
+ const value = parseFloat(match[1]);
82
+ return Number.isNaN(value) ? 0 : value;
83
+ }
@@ -1,25 +1,26 @@
1
1
  import { useConfig } from "../../../hooks/useConfig";
2
2
  import { useExpandedOptions } from "./expanded/hook";
3
3
  import { useGroupingOptions } from "./grouping/hook";
4
+ import { useInitialState } from "./initialState/hook";
4
5
  import { useRowSelectionOptions } from "./rowSelection/hook";
5
6
  import { useSortingOptions } from "./sorting/hook";
7
+ import { useVisibilityOptions } from "./visibility/hook";
6
8
  export function useTableOptions() {
7
- const { entityConfig: { list: { defaultSort, tableOptions }, }, } = useConfig();
9
+ const { entityConfig } = useConfig();
10
+ const tableOptions = entityConfig.list.tableOptions;
8
11
  const expandedOptions = useExpandedOptions();
9
12
  const groupingOptions = useGroupingOptions();
10
13
  const rowSelectionOptions = useRowSelectionOptions();
11
14
  const sortingOptions = useSortingOptions();
15
+ const visibilityOptions = useVisibilityOptions();
16
+ const initialState = useInitialState(tableOptions);
12
17
  return {
13
18
  ...expandedOptions,
14
19
  ...groupingOptions,
15
20
  ...rowSelectionOptions,
16
21
  ...sortingOptions, // TODO(cc) merge of all sorting options.
22
+ ...visibilityOptions,
17
23
  ...tableOptions,
18
- initialState: {
19
- ...tableOptions?.initialState,
20
- sorting: defaultSort
21
- ? [defaultSort] // TODO(cc) deprecate `defaultSort` in favor of `initialState.sorting`.
22
- : tableOptions?.initialState?.sorting,
23
- },
24
+ initialState,
24
25
  };
25
26
  }
@@ -0,0 +1,7 @@
1
+ import { RowData, TableOptions, VisibilityState } from "@tanstack/react-table";
2
+ /**
3
+ * Returns initial column visibility state.
4
+ * @param tableOptions - Table options.
5
+ * @returns column visibility state.
6
+ */
7
+ export declare function getInitialColumnVisibilityState<T extends RowData>(tableOptions?: Partial<TableOptions<T>> | Partial<Omit<TableOptions<T>, "data" | "columns" | "getCoreRowModel">>): VisibilityState;
@@ -0,0 +1,16 @@
1
+ import { COLUMN_IDENTIFIER } from "../../../Table/common/columnIdentifier";
2
+ /**
3
+ * Returns initial column visibility state.
4
+ * @param tableOptions - Table options.
5
+ * @returns column visibility state.
6
+ */
7
+ export function getInitialColumnVisibilityState(tableOptions) {
8
+ const { initialState } = tableOptions || {};
9
+ const enableRowPosition = Boolean(tableOptions?.enableRowPosition);
10
+ const enableRowSelection = Boolean(tableOptions?.enableRowSelection);
11
+ return {
12
+ [COLUMN_IDENTIFIER.ROW_POSITION]: enableRowPosition,
13
+ [COLUMN_IDENTIFIER.ROW_SELECTION]: enableRowSelection,
14
+ ...initialState?.columnVisibility,
15
+ };
16
+ }
@@ -0,0 +1,2 @@
1
+ import { InitialTableState, RowData, TableOptions } from "@tanstack/react-table";
2
+ export declare function useInitialState<T extends RowData>(tableOptions?: Partial<TableOptions<T>> | Partial<Omit<TableOptions<T>, "data" | "columns" | "getCoreRowModel">>): InitialTableState;
@@ -0,0 +1,10 @@
1
+ import { useMemo } from "react";
2
+ import { getInitialColumnVisibilityState } from "./columnVisibility";
3
+ export function useInitialState(tableOptions) {
4
+ const { initialState } = tableOptions || {};
5
+ const columnVisibility = getInitialColumnVisibilityState(tableOptions);
6
+ return useMemo(() => ({
7
+ ...initialState,
8
+ columnVisibility,
9
+ }), [initialState, columnVisibility]);
10
+ }
@@ -0,0 +1,2 @@
1
+ import { VisibilityOptions } from "@tanstack/react-table";
2
+ export declare const VISIBILITY_OPTIONS: VisibilityOptions;
@@ -0,0 +1,3 @@
1
+ export const VISIBILITY_OPTIONS = {
2
+ enableHiding: true,
3
+ };
@@ -0,0 +1,2 @@
1
+ import { VisibilityOptions } from "@tanstack/react-table";
2
+ export declare function useVisibilityOptions(): VisibilityOptions;
@@ -0,0 +1,11 @@
1
+ import { useCallback } from "react";
2
+ import { useExploreState } from "../../../../hooks/useExploreState";
3
+ import { updateVisibility } from "../../../../providers/exploreState/actions/updateVisibility/dispatch";
4
+ import { VISIBILITY_OPTIONS } from "./constants";
5
+ export function useVisibilityOptions() {
6
+ const { exploreDispatch } = useExploreState();
7
+ const onColumnVisibilityChange = useCallback((updaterOrValue) => {
8
+ exploreDispatch(updateVisibility({ updaterOrValue }));
9
+ }, [exploreDispatch]);
10
+ return { ...VISIBILITY_OPTIONS, onColumnVisibilityChange };
11
+ }
@@ -3,23 +3,14 @@ import { PAPER_PANEL_STYLE } from "../common/Paper/paper";
3
3
  import { ComponentCreator } from "../ComponentCreator/ComponentCreator";
4
4
  import { Loading } from "../Loading/loading";
5
5
  import { COLUMN_DEF } from "../Table/common/columnDef";
6
- import { arrIncludesSome, getInitialState, sortingFn, } from "../Table/common/utils";
7
- import { RowSelectionCell } from "../Table/components/TableCell/components/RowSelectionCell/rowSelectionCell";
8
- import { HeadSelectionCell } from "../Table/components/TableHead/components/HeadSelectionCell/headSelectionCell";
6
+ import { arrIncludesSome, sortingFn } from "../Table/common/utils";
9
7
  import { Table } from "../Table/table";
10
- import { COLUMN_CONFIGS } from "./common/constants";
11
8
  import { buildBaseColumnDef } from "./common/utils";
12
9
  import { useTableOptions } from "./options/hook";
13
10
  import { TableCreator as TableCreatorContainer } from "./tableCreator.styles";
14
11
  const createCell = (config) => function CellCreator(cellContext) {
15
12
  return (React.createElement(ComponentCreator, { components: [config.componentConfig], response: cellContext.row.original, viewContext: { cellContext } }));
16
13
  };
17
- const createHeaderSelectionCell = () => function CellCreator({ table }) {
18
- return React.createElement(HeadSelectionCell, { tableInstance: table });
19
- };
20
- const createRowSelectionCell = () => function CellCreator({ row }) {
21
- return React.createElement(RowSelectionCell, { row: row });
22
- };
23
14
  export const TableCreator = ({ columns, getRowId, items, listView, loading, }) => {
24
15
  const tableOptions = useTableOptions();
25
16
  const columnDefs = useMemo(() => columns.reduce((acc, columnConfig) => {
@@ -33,15 +24,10 @@ export const TableCreator = ({ columns, getRowId, items, listView, loading, }) =
33
24
  }, [
34
25
  /* Initialize column definitions with the "row position" column */
35
26
  COLUMN_DEF.ROW_POSITION,
36
- /* Initialize column definitions with the "select" column */
37
- {
38
- ...buildBaseColumnDef(COLUMN_CONFIGS.SELECT),
39
- cell: createRowSelectionCell(),
40
- header: createHeaderSelectionCell(),
41
- },
27
+ /* Initialize column definitions with the "row selection" column */
28
+ COLUMN_DEF.ROW_SELECTION,
42
29
  ]), [columns]);
43
- const initialState = getInitialState(columns);
44
30
  return (React.createElement(TableCreatorContainer, null,
45
31
  React.createElement(Loading, { appear: false, loading: loading || false, panelStyle: PAPER_PANEL_STYLE.FLUID }),
46
- React.createElement(Table, { columns: columnDefs, getRowId: getRowId, initialState: initialState, items: items, listView: listView, loading: loading, tableOptions: tableOptions })));
32
+ React.createElement(Table, { columns: columnDefs, getRowId: getRowId, items: items, listView: listView, loading: loading, tableOptions: tableOptions })));
47
33
  };
@@ -1,6 +1,6 @@
1
1
  import { Fade } from "@mui/material";
2
2
  import React from "react";
3
- import { useSessionTimeout } from "../../../../../hooks/useSessionTimeout";
3
+ import { useSessionTimeout } from "../../../../../hooks/authentication/session/useSessionTimeout";
4
4
  import { Banner } from "../../banner";
5
5
  export const SessionTimeout = ({ children, className, content, ...props }) => {
6
6
  const { clearSessionTimeout, isSessionTimeout } = useSessionTimeout();
@@ -1,5 +1,2 @@
1
1
  import { SvgIconProps } from "@mui/material";
2
- export interface CustomSVGIconProps extends SvgIconProps {
3
- fontSize?: SvgIconProps["fontSize"];
4
- viewBox?: string;
5
- }
2
+ export type CustomSVGIconProps = SvgIconProps;
@@ -1,5 +1,5 @@
1
- import { CustomSVGIconProps } from "../../common/entities";
1
+ import { SvgIconProps } from "@mui/material";
2
2
  /**
3
3
  * Custom Google logo icon.
4
4
  */
5
- export declare const GoogleIcon: ({ fontSize, viewBox, ...props }: CustomSVGIconProps) => JSX.Element;
5
+ export declare const GoogleIcon: ({ fontSize, viewBox, ...props }: SvgIconProps) => JSX.Element;
@@ -3,7 +3,7 @@ import React from "react";
3
3
  /**
4
4
  * Custom Google logo icon.
5
5
  */
6
- export const GoogleIcon = ({ fontSize = "xsmall", viewBox = "0 0 20 20", ...props /* Spread props to allow for Mui SvgIconProps specific prop overrides e.g. "htmlColor". */ }) => {
6
+ export const GoogleIcon = ({ fontSize = "xsmall", viewBox = "0 0 20 20", ...props }) => {
7
7
  return (React.createElement(SvgIcon, { fontSize: fontSize, viewBox: viewBox, ...props },
8
8
  React.createElement("path", { d: "M19.7874 10.2249C19.7874 9.56659 19.7291 8.94159 19.6291 8.33325H10.2124V12.0916H15.6041C15.3624 13.3249 14.6541 14.3666 13.6041 15.0749V17.5749H16.8207C18.7041 15.8333 19.7874 13.2666 19.7874 10.2249Z", fill: "#4285F4" }),
9
9
  React.createElement("path", { d: "M10.2126 20.0001C12.9126 20.0001 15.1709 19.1001 16.8209 17.5751L13.6043 15.0751C12.7043 15.6751 11.5626 16.0418 10.2126 16.0418C7.60427 16.0418 5.39593 14.2834 4.60427 11.9084H1.2876V14.4834C2.92926 17.7501 6.30427 20.0001 10.2126 20.0001Z", fill: "#34A853" }),
@@ -6,7 +6,9 @@ import { HeroTitle } from "../components/common/Title/title";
6
6
  import { FooterProps } from "../components/Layout/components/Footer/footer";
7
7
  import { HeaderProps } from "../components/Layout/components/Header/header";
8
8
  import { ExploreMode } from "../hooks/useExploreMode";
9
- import { AuthContextProps } from "../providers/authentication";
9
+ import { AuthState } from "../providers/authentication/auth/types";
10
+ import { UserProfile } from "../providers/authentication/authentication/types";
11
+ import { ProviderId } from "../providers/authentication/common/types";
10
12
  import { ExploreState } from "../providers/exploreState";
11
13
  import { FileManifestState } from "../providers/fileManifestState";
12
14
  import { SystemStatus, SystemStatusResponse } from "../providers/systemStatus";
@@ -22,13 +24,17 @@ export interface AnalyticsConfig {
22
24
  * Interface to define the authentication configuration for a given site.
23
25
  */
24
26
  export interface AuthenticationConfig {
25
- googleGISAuthConfig?: GoogleGISAuthConfig;
27
+ providers?: OAuthProvider[];
28
+ services?: AuthService[];
26
29
  termsOfService?: ReactNode;
27
- terraAuthConfig?: TerraAuthConfig;
28
30
  text?: ReactNode;
29
31
  title: string;
30
32
  warning?: ReactNode;
31
33
  }
34
+ export interface AuthService {
35
+ endpoint: Record<string, string>;
36
+ id: string;
37
+ }
32
38
  /**
33
39
  * Interface to define the set of components that will be used for the back page.
34
40
  */
@@ -75,9 +81,7 @@ export interface CategoryConfig {
75
81
  */
76
82
  export type ColumnConfig<T extends RowData, TValue = unknown, C extends keyof JSX.IntrinsicElements | JSXElementConstructor<any> = any> = Omit<ColumnDef<T, TValue>, "enableMultiSort"> & {
77
83
  columnPinned?: boolean;
78
- columnVisible?: boolean;
79
84
  componentConfig: ComponentConfig<C, T>;
80
- disableHiding?: boolean;
81
85
  header: string;
82
86
  id: string;
83
87
  meta?: ColumnMeta<T, unknown>;
@@ -169,14 +173,6 @@ export type GetIdFunction<T> = (detail: T) => string;
169
173
  * Get title function.
170
174
  */
171
175
  export type GetTitleFunction<T> = (detail?: T) => string | undefined;
172
- /**
173
- * Google GIS authentication configuration.
174
- */
175
- export interface GoogleGISAuthConfig {
176
- clientId: string;
177
- googleProfileEndpoint: string;
178
- scope: string;
179
- }
180
176
  /**
181
177
  * Grid track configuration.
182
178
  */
@@ -203,7 +199,6 @@ export type GridTrackSize = GridTrackAuto | GridTrackLength | GridTrackFlex | Gr
203
199
  */
204
200
  export interface ListConfig<T extends RowData> {
205
201
  columns: ColumnConfig<T>[];
206
- defaultSort?: ColumnSort;
207
202
  tableOptions?: Omit<TableOptions<T>, "columns" | "data" | "getCoreRowModel">;
208
203
  }
209
204
  /**
@@ -212,19 +207,24 @@ export interface ListConfig<T extends RowData> {
212
207
  export interface ListViewConfig {
213
208
  disablePagination?: boolean;
214
209
  enableDownload?: boolean;
215
- enableRowPreview?: boolean;
216
210
  enableTab?: boolean;
217
211
  listHero?: ComponentsConfig;
218
212
  rowPreviewView?: ComponentsConfig;
219
213
  rowSelectionView?: ComponentsConfig;
220
214
  subTitleHero?: ComponentsConfig;
221
215
  }
222
- /**
223
- * Interface to define the authentication login notice component.
224
- */
225
- export interface LoginNotice {
226
- conditionsUrl: string;
227
- privacyUrl: string;
216
+ export interface OAuthProvider<P = any> {
217
+ authorization: {
218
+ params: {
219
+ scope: string;
220
+ };
221
+ };
222
+ clientId: string;
223
+ icon: ReactNode;
224
+ id: ProviderId;
225
+ name: string;
226
+ profile: (profile: P) => UserProfile;
227
+ userinfo: string;
228
228
  }
229
229
  /**
230
230
  * Option Method.
@@ -345,11 +345,6 @@ export interface TabConfig {
345
345
  tabIconPosition?: MTabProps["iconPosition"];
346
346
  tabName?: string;
347
347
  }
348
- export interface TerraAuthConfig {
349
- termsOfServiceEndpoint: string;
350
- terraNIHProfileEndpoint?: string;
351
- terraProfileEndpoint: string;
352
- }
353
348
  /**
354
349
  * Theme options function.
355
350
  * Defines theme options, and provides a reference to the specified theme.
@@ -359,7 +354,7 @@ export type ThemeOptionsFn = (theme: Theme) => ThemeOptions;
359
354
  * View context.
360
355
  */
361
356
  export interface ViewContext<T extends RowData, TData = unknown> {
362
- authState: Pick<AuthContextProps, "authenticationStatus" | "isAuthenticated">;
357
+ authState: Pick<AuthState, "isAuthenticated">;
363
358
  cellContext?: CellContext<T, TData>;
364
359
  entityConfig: EntityConfig;
365
360
  exploreState: ExploreState;
@@ -0,0 +1,2 @@
1
+ import { AuthContextProps } from "../../../providers/authentication/auth/types";
2
+ export declare const useAuthReducer: (initialState?: import("../../../providers/authentication/auth/types").AuthState) => Omit<AuthContextProps, "service">;
@@ -0,0 +1,8 @@
1
+ import { useReducer } from "react";
2
+ import { DEFAULT_AUTH_STATE } from "../../../providers/authentication/auth/constants";
3
+ import { authReducer } from "../../../providers/authentication/auth/reducer";
4
+ import { initializer } from "../../../providers/authentication/common/utils";
5
+ export const useAuthReducer = (initialState = DEFAULT_AUTH_STATE) => {
6
+ const [authState, authDispatch] = useReducer(authReducer, initialState, initializer);
7
+ return { authDispatch, authState };
8
+ };
@@ -0,0 +1,2 @@
1
+ import { AuthenticationContextProps } from "../../../providers/authentication/authentication/types";
2
+ export declare const useAuthenticationReducer: (initialState?: import("../../../providers/authentication/authentication/types").AuthenticationState) => AuthenticationContextProps;
@@ -0,0 +1,8 @@
1
+ import { useReducer } from "react";
2
+ import { DEFAULT_AUTHENTICATION_STATE } from "../../../providers/authentication/authentication/constants";
3
+ import { authenticationReducer } from "../../../providers/authentication/authentication/reducer";
4
+ import { initializer } from "../../../providers/authentication/common/utils";
5
+ export const useAuthenticationReducer = (initialState = DEFAULT_AUTHENTICATION_STATE) => {
6
+ const [authenticationState, authenticationDispatch] = useReducer(authenticationReducer, initialState, initializer);
7
+ return { authenticationDispatch, authenticationState };
8
+ };
@@ -0,0 +1,6 @@
1
+ import { AuthenticationConfig } from "../../../config/entities";
2
+ /**
3
+ * Returns the authentication configuration.
4
+ * @returns authentication configuration.
5
+ */
6
+ export declare const useAuthenticationConfig: () => AuthenticationConfig | undefined;
@@ -0,0 +1,9 @@
1
+ import { useConfig } from "../../useConfig";
2
+ /**
3
+ * Returns the authentication configuration.
4
+ * @returns authentication configuration.
5
+ */
6
+ export const useAuthenticationConfig = () => {
7
+ const { config: { authentication }, } = useConfig();
8
+ return authentication;
9
+ };
@@ -0,0 +1,2 @@
1
+ import { CredentialsContextProps } from "../../../providers/authentication/credentials/types";
2
+ export declare const useCredentialsReducer: () => CredentialsContextProps;
@@ -0,0 +1,7 @@
1
+ import { useReducer } from "react";
2
+ import { DEFAULT_CREDENTIALS_STATE } from "../../../providers/authentication/credentials/constants";
3
+ import { credentialsReducer } from "../../../providers/authentication/credentials/reducer";
4
+ export const useCredentialsReducer = () => {
5
+ const [credentialsState, credentialsDispatch] = useReducer(credentialsReducer, undefined, () => DEFAULT_CREDENTIALS_STATE);
6
+ return { credentialsDispatch, credentialsState };
7
+ };
@@ -0,0 +1,5 @@
1
+ import { Profile, UserProfile } from "../../../providers/authentication/authentication/types";
2
+ export interface UseProfile {
3
+ isLoading: boolean;
4
+ profile: Profile<UserProfile>;
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { UseProfile } from "./types";
2
+ /**
3
+ * Profile hook - returns user profile.
4
+ * @returns user profile.
5
+ */
6
+ export declare const useProfile: () => UseProfile;
@@ -0,0 +1,15 @@
1
+ import { useAuth } from "../../../providers/authentication/auth/hook";
2
+ import { AUTH_STATUS } from "../../../providers/authentication/auth/types";
3
+ import { useAuthentication } from "../../../providers/authentication/authentication/hook";
4
+ /**
5
+ * Profile hook - returns user profile.
6
+ * @returns user profile.
7
+ */
8
+ export const useProfile = () => {
9
+ const { authState: { status }, } = useAuth();
10
+ const { authenticationState: { profile }, } = useAuthentication();
11
+ return {
12
+ isLoading: status === AUTH_STATUS.PENDING,
13
+ profile: profile,
14
+ };
15
+ };
@@ -0,0 +1,6 @@
1
+ import { OAuthProvider } from "../../../config/entities";
2
+ import { ProviderId } from "../../../providers/authentication/common/types";
3
+ export interface UseProviders {
4
+ findProvider: (providerId: ProviderId) => OAuthProvider | undefined;
5
+ providers: OAuthProvider[] | undefined;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { UseProviders } from "./types";
2
+ /**
3
+ * Hook to facilitate the retrieval of authentication providers.
4
+ * @returns authentication providers and a function to find a provider by id.
5
+ */
6
+ export declare const useProviders: () => UseProviders;
@@ -0,0 +1,14 @@
1
+ import { useCallback } from "react";
2
+ import { useConfig } from "../../useConfig";
3
+ /**
4
+ * Hook to facilitate the retrieval of authentication providers.
5
+ * @returns authentication providers and a function to find a provider by id.
6
+ */
7
+ export const useProviders = () => {
8
+ const { config } = useConfig();
9
+ const providers = config.authentication?.providers;
10
+ const findProvider = useCallback((providerId) => {
11
+ return providers?.find(({ id }) => id === providerId);
12
+ }, [providers]);
13
+ return { findProvider, providers };
14
+ };
@@ -0,0 +1,12 @@
1
+ import { AuthState } from "../../../providers/authentication/auth/types";
2
+ import { AuthenticationState } from "../../../providers/authentication/authentication/types";
3
+ export declare const useSessionActive: (authState: AuthState, authenticationState: AuthenticationState) => void;
4
+ /**
5
+ * Finds the most recent route in the history that is not the login route and removes the inactivity timeout query parameter.
6
+ * The inactivity timeout query parameter is appended to a URL to indicate that a session has expired. This function iterates
7
+ * through the history of routes in reverse order, skipping any routes that lead to the login page, and returns the first route
8
+ * that isn't the login route with the inactivity timeout parameter removed.
9
+ * @param routes - An array of routes representing the navigation history, in order of navigation.
10
+ * @returns The most recent valid route without the inactivity timeout parameter, or `undefined` if no such route is found.
11
+ */
12
+ export declare function transformRoute(routes: string[]): string | undefined;
@@ -0,0 +1,36 @@
1
+ import Router from "next/router";
2
+ import { useEffect } from "react";
3
+ import { escapeRegExp } from "../../../common/utils";
4
+ import { AUTH_STATUS, } from "../../../providers/authentication/auth/types";
5
+ import { AUTHENTICATION_STATUS, } from "../../../providers/authentication/authentication/types";
6
+ import { ROUTE } from "../../../routes/constants";
7
+ import { useRouteHistory } from "../../useRouteHistory";
8
+ import { INACTIVITY_PARAM } from "./useSessionTimeout";
9
+ export const useSessionActive = (authState, authenticationState) => {
10
+ const { status: authStatus } = authState;
11
+ const { status: authenticationStatus } = authenticationState;
12
+ const { callbackUrl } = useRouteHistory(2);
13
+ const isReady = authenticationStatus === AUTHENTICATION_STATUS.SETTLED &&
14
+ authStatus === AUTH_STATUS.SETTLED;
15
+ useEffect(() => {
16
+ if (!isReady)
17
+ return;
18
+ Router.push(callbackUrl(transformRoute));
19
+ }, [callbackUrl, isReady]);
20
+ };
21
+ /**
22
+ * Finds the most recent route in the history that is not the login route and removes the inactivity timeout query parameter.
23
+ * The inactivity timeout query parameter is appended to a URL to indicate that a session has expired. This function iterates
24
+ * through the history of routes in reverse order, skipping any routes that lead to the login page, and returns the first route
25
+ * that isn't the login route with the inactivity timeout parameter removed.
26
+ * @param routes - An array of routes representing the navigation history, in order of navigation.
27
+ * @returns The most recent valid route without the inactivity timeout parameter, or `undefined` if no such route is found.
28
+ */
29
+ export function transformRoute(routes) {
30
+ for (const route of routes) {
31
+ if (route === ROUTE.LOGIN) {
32
+ continue;
33
+ }
34
+ return route?.replace(new RegExp(`\\?${escapeRegExp(INACTIVITY_PARAM)}(?:$|[=&].*)`), "");
35
+ }
36
+ }
@@ -0,0 +1,4 @@
1
+ export interface UseSessionCallbackUrl {
2
+ callbackUrl: string | undefined;
3
+ }
4
+ export declare const useSessionCallbackUrl: () => UseSessionCallbackUrl;
@@ -0,0 +1,20 @@
1
+ import { useMemo } from "react";
2
+ import { useRouteRoot } from "../../useRouteRoot";
3
+ import { INACTIVITY_PARAM } from "./useSessionTimeout";
4
+ export const useSessionCallbackUrl = () => {
5
+ const route = useRouteRoot();
6
+ const callbackUrl = useMemo(() => getUrl(route), [route]);
7
+ return { callbackUrl };
8
+ };
9
+ /**
10
+ * Returns the URL with the inactivity query parameter set to true.
11
+ * @param url - URL.
12
+ * @returns URL.
13
+ */
14
+ function getUrl(url) {
15
+ if (typeof window === "undefined")
16
+ return;
17
+ const urlObj = new URL(url, window.location.origin);
18
+ urlObj.searchParams.set(INACTIVITY_PARAM, "true");
19
+ return urlObj.href;
20
+ }
@@ -0,0 +1,6 @@
1
+ import { IIdleTimerProps } from "react-idle-timer/dist/types/IIdleTimerProps";
2
+ /**
3
+ * Sets a session timeout that triggers when the user has been idle for the specified duration.
4
+ * @param idleTimerProps - The parameters for the session timeout.
5
+ */
6
+ export declare const useSessionIdleTimer: (idleTimerProps: IIdleTimerProps) => void;
@@ -0,0 +1,8 @@
1
+ import { useIdleTimer } from "react-idle-timer";
2
+ /**
3
+ * Sets a session timeout that triggers when the user has been idle for the specified duration.
4
+ * @param idleTimerProps - The parameters for the session timeout.
5
+ */
6
+ export const useSessionIdleTimer = (idleTimerProps) => {
7
+ useIdleTimer(idleTimerProps);
8
+ };
@@ -1,7 +1,7 @@
1
1
  import Router from "next/router";
2
2
  import { useCallback, useEffect, useState } from "react";
3
- import { useConfig } from "./useConfig";
4
- import { useLocation } from "./useLocation";
3
+ import { useConfig } from "../../useConfig";
4
+ import { useLocation } from "../../useLocation";
5
5
  export const INACTIVITY_PARAM = "inactivityTimeout";
6
6
  /**
7
7
  * Session timeout hook.
@@ -9,7 +9,6 @@ export declare enum ONBOARDING_STEP {
9
9
  }
10
10
  interface UseAuthenticationForm {
11
11
  isComplete: boolean;
12
- isReady: boolean;
13
12
  onboardingStatusByStep: Map<ONBOARDING_STEP, OnboardingStatus>;
14
13
  }
15
14
  /**