@databiosphere/findable-ui 18.0.0 → 20.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 (536) 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/NextSessionController/SessionController.d.ts +2 -0
  7. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.js +17 -0
  8. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.d.ts +5 -0
  9. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.js +12 -0
  10. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.d.ts +4 -0
  11. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.js +1 -0
  12. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.d.ts +15 -0
  13. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.js +53 -0
  14. package/lib/components/ComponentCreator/ComponentCreator.js +2 -3
  15. package/lib/components/Detail/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.js +2 -0
  16. package/lib/components/Detail/components/Table/components/TableRows/tableRows.js +1 -15
  17. package/lib/components/Export/components/ExportForm/components/ExportFileSummaryForm/exportFileSummaryForm.js +9 -10
  18. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.js +2 -2
  19. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.js +1 -1
  20. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.js +8 -3
  21. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.d.ts +2 -1
  22. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.js +17 -14
  23. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.d.ts +3 -4
  24. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.js +15 -24
  25. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
  26. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.js +2 -2
  27. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.d.ts +2 -0
  28. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.js +14 -0
  29. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.js +3 -2
  30. package/lib/components/Layout/components/Header/header.js +1 -1
  31. package/lib/components/Links/components/Link/components/ExploreViewLink/exploreViewLink.js +23 -12
  32. package/lib/components/Login/components/Button/button.d.ts +2 -0
  33. package/lib/components/Login/components/Button/button.js +6 -0
  34. package/lib/components/Login/components/Button/button.styles.d.ts +5 -0
  35. package/lib/components/Login/components/Button/button.styles.js +11 -0
  36. package/lib/components/Login/components/Button/constants.d.ts +2 -0
  37. package/lib/components/Login/components/Button/constants.js +6 -0
  38. package/lib/components/Login/components/Button/types.d.ts +3 -0
  39. package/lib/components/Login/components/Button/types.js +1 -0
  40. package/lib/components/Login/login.d.ts +2 -9
  41. package/lib/components/Login/login.js +9 -10
  42. package/lib/components/Login/types.d.ts +10 -0
  43. package/lib/components/Login/types.js +1 -0
  44. package/lib/components/Table/common/columnDef.js +1 -0
  45. package/lib/components/Table/common/gridTable.styles.js +5 -11
  46. package/lib/components/Table/common/utils.d.ts +3 -29
  47. package/lib/components/Table/common/utils.js +25 -60
  48. package/lib/components/Table/components/TableBody/hooks/virtualizer/constants.d.ts +3 -0
  49. package/lib/components/Table/components/TableBody/hooks/virtualizer/constants.js +3 -0
  50. package/lib/components/Table/components/TableBody/hooks/virtualizer/hook.d.ts +8 -0
  51. package/lib/components/Table/components/TableBody/hooks/virtualizer/hook.js +18 -0
  52. package/lib/components/Table/components/TableBody/hooks/virtualizer/types.d.ts +4 -0
  53. package/lib/components/Table/components/TableBody/hooks/virtualizer/types.js +1 -0
  54. package/lib/components/Table/components/TableBody/tableBody.d.ts +3 -2
  55. package/lib/components/Table/components/TableBody/tableBody.js +7 -28
  56. package/lib/components/Table/components/TableBody/utils.d.ts +12 -0
  57. package/lib/components/Table/components/TableBody/utils.js +17 -0
  58. package/lib/components/Table/components/TableCell/components/CollapsableCell/collapsableCell.d.ts +3 -1
  59. package/lib/components/Table/components/TableCell/components/CollapsableCell/collapsableCell.js +6 -14
  60. package/lib/components/Table/components/TableFeatures/ColumnGrouping/utils.d.ts +28 -0
  61. package/lib/components/Table/components/TableFeatures/ColumnGrouping/utils.js +52 -0
  62. package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.d.ts +21 -0
  63. package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.js +37 -0
  64. package/lib/components/Table/components/TableFeatures/RowSorting/utils.d.ts +29 -0
  65. package/lib/components/Table/components/TableFeatures/RowSorting/utils.js +68 -0
  66. package/lib/components/Table/components/TableHead/tableHead.d.ts +2 -6
  67. package/lib/components/Table/components/TableHead/tableHead.js +6 -4
  68. package/lib/components/Table/components/TableHead/types.d.ts +6 -0
  69. package/lib/components/Table/components/TableHead/types.js +1 -0
  70. package/lib/components/Table/components/TableHead/utils.d.ts +19 -0
  71. package/lib/components/Table/components/TableHead/utils.js +34 -0
  72. package/lib/components/Table/components/TableRow/tableRow.styles.d.ts +1 -0
  73. package/lib/components/Table/components/TableRow/tableRow.styles.js +14 -2
  74. package/lib/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.d.ts +3 -2
  75. package/lib/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.js +8 -4
  76. package/lib/components/Table/components/TableRows/components/CollapsableRows/hook.d.ts +9 -0
  77. package/lib/components/Table/components/TableRows/components/CollapsableRows/hook.js +17 -0
  78. package/lib/components/Table/components/TableRows/tableRows.d.ts +3 -3
  79. package/lib/components/Table/components/TableRows/tableRows.js +9 -5
  80. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.d.ts +3 -0
  81. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.js +26 -0
  82. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.styles.d.ts +2 -0
  83. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.styles.js +16 -0
  84. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.d.ts +3 -0
  85. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.js +12 -0
  86. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.d.ts +7 -0
  87. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.js +1 -0
  88. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.d.ts +4 -0
  89. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.js +13 -0
  90. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/types.d.ts +4 -0
  91. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/types.js +1 -0
  92. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.d.ts +17 -0
  93. package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.js +36 -0
  94. package/lib/components/Table/components/TableToolbar/components/RowSelection/components/DropdownMenu/dropdownMenu.d.ts +2 -3
  95. package/lib/components/Table/components/TableToolbar/components/RowSelection/components/DropdownMenu/dropdownMenu.js +3 -11
  96. package/lib/components/Table/components/TableToolbar/tableToolbar.js +4 -2
  97. package/lib/components/Table/features/RowPosition/constants.js +2 -2
  98. package/lib/components/Table/features/RowPosition/utils.d.ts +2 -2
  99. package/lib/components/Table/features/RowPosition/utils.js +12 -5
  100. package/lib/components/Table/options/updater.d.ts +10 -0
  101. package/lib/components/Table/options/updater.js +24 -0
  102. package/lib/components/Table/table.js +22 -17
  103. package/lib/components/TableCreator/common/constants.d.ts +2 -2
  104. package/lib/components/TableCreator/common/constants.js +2 -1
  105. package/lib/components/TableCreator/common/utils.d.ts +5 -2
  106. package/lib/components/TableCreator/common/utils.js +11 -4
  107. package/lib/components/TableCreator/options/expanded/constants.d.ts +2 -0
  108. package/lib/components/TableCreator/options/expanded/constants.js +6 -0
  109. package/lib/components/TableCreator/options/expanded/hook.d.ts +2 -0
  110. package/lib/components/TableCreator/options/expanded/hook.js +4 -0
  111. package/lib/components/TableCreator/options/grouping/constants.d.ts +2 -0
  112. package/lib/components/TableCreator/options/grouping/constants.js +5 -0
  113. package/lib/components/TableCreator/options/grouping/hook.d.ts +2 -0
  114. package/lib/components/TableCreator/options/grouping/hook.js +9 -0
  115. package/lib/components/TableCreator/options/hook.d.ts +2 -0
  116. package/lib/components/TableCreator/options/hook.js +25 -0
  117. package/lib/components/TableCreator/options/rowSelection/constants.d.ts +2 -0
  118. package/lib/components/TableCreator/options/rowSelection/constants.js +5 -0
  119. package/lib/components/TableCreator/options/rowSelection/hook.d.ts +2 -0
  120. package/lib/components/TableCreator/options/rowSelection/hook.js +4 -0
  121. package/lib/components/TableCreator/options/sorting/constants.d.ts +2 -0
  122. package/lib/components/TableCreator/options/sorting/constants.js +5 -0
  123. package/lib/components/TableCreator/options/sorting/hook.d.ts +2 -0
  124. package/lib/components/TableCreator/options/sorting/hook.js +4 -0
  125. package/lib/components/TableCreator/tableCreator.d.ts +3 -5
  126. package/lib/components/TableCreator/tableCreator.js +4 -2
  127. package/lib/components/common/Banner/components/SessionTimeout/sessionTimeout.js +1 -1
  128. package/lib/components/common/CustomIcon/common/entities.d.ts +1 -4
  129. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.d.ts +2 -2
  130. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.js +1 -1
  131. package/lib/components/common/DropdownMenu/dropdownMenu.d.ts +2 -3
  132. package/lib/components/common/DropdownMenu/dropdownMenu.js +7 -7
  133. package/lib/components/common/DropdownMenu/dropdownMenu.styles.d.ts +1 -1
  134. package/lib/components/common/DropdownMenu/dropdownMenu.styles.js +1 -1
  135. package/lib/components/common/Menu/hooks/useMenu.d.ts +5 -6
  136. package/lib/config/entities.d.ts +28 -29
  137. package/lib/config/utils.d.ts +0 -7
  138. package/lib/config/utils.js +0 -12
  139. package/lib/hooks/authentication/auth/useAuthReducer.d.ts +2 -0
  140. package/lib/hooks/authentication/auth/useAuthReducer.js +8 -0
  141. package/lib/hooks/authentication/authentication/useAuthenticationReducer.d.ts +2 -0
  142. package/lib/hooks/authentication/authentication/useAuthenticationReducer.js +8 -0
  143. package/lib/hooks/authentication/config/useAuthenticationConfig.d.ts +6 -0
  144. package/lib/hooks/authentication/config/useAuthenticationConfig.js +9 -0
  145. package/lib/hooks/authentication/credentials/useCredentialsReducer.d.ts +2 -0
  146. package/lib/hooks/authentication/credentials/useCredentialsReducer.js +7 -0
  147. package/lib/hooks/authentication/profile/types.d.ts +5 -0
  148. package/lib/hooks/authentication/profile/types.js +1 -0
  149. package/lib/hooks/authentication/profile/useProfile.d.ts +6 -0
  150. package/lib/hooks/authentication/profile/useProfile.js +15 -0
  151. package/lib/hooks/authentication/providers/types.d.ts +6 -0
  152. package/lib/hooks/authentication/providers/types.js +1 -0
  153. package/lib/hooks/authentication/providers/useProviders.d.ts +6 -0
  154. package/lib/hooks/authentication/providers/useProviders.js +14 -0
  155. package/lib/hooks/authentication/session/useSessionActive.d.ts +12 -0
  156. package/lib/hooks/authentication/session/useSessionActive.js +36 -0
  157. package/lib/hooks/authentication/session/useSessionCallbackUrl.d.ts +4 -0
  158. package/lib/hooks/authentication/session/useSessionCallbackUrl.js +20 -0
  159. package/lib/hooks/authentication/session/useSessionIdleTimer.d.ts +6 -0
  160. package/lib/hooks/authentication/session/useSessionIdleTimer.js +8 -0
  161. package/lib/hooks/{useSessionTimeout.js → authentication/session/useSessionTimeout.js} +2 -2
  162. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.d.ts +0 -1
  163. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.js +6 -9
  164. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.js +3 -4
  165. package/lib/hooks/authentication/token/types.d.ts +4 -0
  166. package/lib/hooks/authentication/token/types.js +1 -0
  167. package/lib/hooks/authentication/token/useToken.d.ts +2 -0
  168. package/lib/hooks/authentication/token/useToken.js +5 -0
  169. package/lib/hooks/authentication/token/useTokenReducer.d.ts +7 -0
  170. package/lib/hooks/authentication/token/useTokenReducer.js +12 -0
  171. package/lib/hooks/useEntityList.js +2 -2
  172. package/lib/hooks/useFetchEntity.js +4 -3
  173. package/lib/hooks/useFileManifest/useFetchFilesFacets.js +2 -3
  174. package/lib/hooks/useFileManifest/useFetchSummary.js +2 -3
  175. package/lib/hooks/useRequestFileLocation.js +2 -3
  176. package/lib/hooks/useRouteHistory.d.ts +14 -0
  177. package/lib/hooks/useRouteHistory.js +40 -0
  178. package/lib/hooks/useRouteRoot.d.ts +1 -0
  179. package/lib/hooks/useRouteRoot.js +8 -0
  180. package/lib/hooks/useSummary.js +3 -3
  181. package/lib/providers/authentication/auth/actions.d.ts +8 -0
  182. package/lib/providers/authentication/auth/actions.js +12 -0
  183. package/lib/providers/authentication/auth/constants.d.ts +2 -0
  184. package/lib/providers/authentication/auth/constants.js +5 -0
  185. package/lib/providers/authentication/auth/context.d.ts +2 -0
  186. package/lib/providers/authentication/auth/context.js +7 -0
  187. package/lib/providers/authentication/auth/dispatch.d.ts +23 -0
  188. package/lib/providers/authentication/auth/dispatch.js +43 -0
  189. package/lib/providers/authentication/auth/hook.d.ts +6 -0
  190. package/lib/providers/authentication/auth/hook.js +9 -0
  191. package/lib/providers/authentication/auth/reducer.d.ts +8 -0
  192. package/lib/providers/authentication/auth/reducer.js +24 -0
  193. package/lib/providers/authentication/auth/types.d.ts +48 -0
  194. package/lib/providers/authentication/auth/types.js +11 -0
  195. package/lib/providers/authentication/authentication/actions.d.ts +8 -0
  196. package/lib/providers/authentication/authentication/actions.js +12 -0
  197. package/lib/providers/authentication/authentication/constants.d.ts +2 -0
  198. package/lib/providers/authentication/authentication/constants.js +5 -0
  199. package/lib/providers/authentication/authentication/context.d.ts +2 -0
  200. package/lib/providers/authentication/authentication/context.js +6 -0
  201. package/lib/providers/authentication/authentication/dispatch.d.ts +22 -0
  202. package/lib/providers/authentication/authentication/dispatch.js +42 -0
  203. package/lib/providers/authentication/authentication/hook.d.ts +6 -0
  204. package/lib/providers/authentication/authentication/hook.js +9 -0
  205. package/lib/providers/authentication/authentication/reducer.d.ts +9 -0
  206. package/lib/providers/authentication/authentication/reducer.js +25 -0
  207. package/lib/providers/authentication/authentication/types.d.ts +47 -0
  208. package/lib/providers/authentication/authentication/types.js +11 -0
  209. package/lib/providers/authentication/authentication/utils.d.ts +12 -0
  210. package/lib/providers/authentication/authentication/utils.js +18 -0
  211. package/lib/providers/authentication/common/types.d.ts +1 -0
  212. package/lib/providers/authentication/common/types.js +1 -0
  213. package/lib/providers/authentication/common/utils.d.ts +6 -0
  214. package/lib/providers/authentication/common/utils.js +11 -0
  215. package/lib/providers/authentication/credentials/actions.d.ts +8 -0
  216. package/lib/providers/authentication/credentials/actions.js +12 -0
  217. package/lib/providers/authentication/credentials/constants.d.ts +2 -0
  218. package/lib/providers/authentication/credentials/constants.js +3 -0
  219. package/lib/providers/authentication/credentials/context.d.ts +2 -0
  220. package/lib/providers/authentication/credentials/context.js +6 -0
  221. package/lib/providers/authentication/credentials/dispatch.d.ts +12 -0
  222. package/lib/providers/authentication/credentials/dispatch.js +22 -0
  223. package/lib/providers/authentication/credentials/hook.d.ts +6 -0
  224. package/lib/providers/authentication/credentials/hook.js +9 -0
  225. package/lib/providers/authentication/credentials/reducer.d.ts +8 -0
  226. package/lib/providers/authentication/credentials/reducer.js +22 -0
  227. package/lib/providers/authentication/credentials/types.d.ts +24 -0
  228. package/lib/providers/authentication/credentials/types.js +5 -0
  229. package/lib/providers/authentication/terra/context.d.ts +2 -0
  230. package/lib/providers/authentication/terra/context.js +7 -0
  231. package/lib/providers/authentication/terra/hook.d.ts +6 -0
  232. package/lib/providers/authentication/terra/hook.js +9 -0
  233. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.d.ts +2 -0
  234. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.js +7 -0
  235. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.d.ts +3 -7
  236. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.js +1 -5
  237. package/lib/providers/authentication/terra/hooks/useFetchProfiles.d.ts +13 -0
  238. package/lib/providers/authentication/terra/hooks/useFetchProfiles.js +31 -0
  239. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.js +11 -6
  240. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.js +11 -6
  241. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.js +11 -6
  242. package/lib/providers/authentication/terra/hooks/utils.d.ts +16 -0
  243. package/lib/providers/authentication/terra/hooks/utils.js +19 -0
  244. package/lib/providers/authentication/terra/provider.d.ts +2 -0
  245. package/lib/providers/authentication/terra/provider.js +42 -0
  246. package/lib/providers/authentication/terra/types.d.ts +20 -0
  247. package/lib/providers/authentication/terra/types.js +6 -0
  248. package/lib/providers/authentication/terra/utils.d.ts +19 -0
  249. package/lib/providers/authentication/terra/utils.js +36 -0
  250. package/lib/providers/authentication/token/constants.d.ts +2 -0
  251. package/lib/providers/authentication/token/constants.js +4 -0
  252. package/lib/providers/authentication/token/dispatch.d.ts +12 -0
  253. package/lib/providers/authentication/token/dispatch.js +22 -0
  254. package/lib/providers/authentication/token/reducer.d.ts +8 -0
  255. package/lib/providers/authentication/token/reducer.js +22 -0
  256. package/lib/providers/authentication/token/types.d.ts +28 -0
  257. package/lib/providers/authentication/token/types.js +5 -0
  258. package/lib/providers/exploreState/actions/updateGrouping/action.d.ts +10 -0
  259. package/lib/providers/exploreState/actions/updateGrouping/action.js +16 -0
  260. package/lib/providers/exploreState/actions/updateGrouping/dispatch.d.ts +7 -0
  261. package/lib/providers/exploreState/actions/updateGrouping/dispatch.js +12 -0
  262. package/lib/providers/exploreState/actions/updateGrouping/types.d.ts +9 -0
  263. package/lib/providers/exploreState/actions/updateGrouping/types.js +1 -0
  264. package/lib/providers/exploreState/actions/updateGrouping/utils.d.ts +10 -0
  265. package/lib/providers/exploreState/actions/updateGrouping/utils.js +26 -0
  266. package/lib/providers/exploreState/entities.d.ts +3 -4
  267. package/lib/providers/exploreState/initializer/utils.js +41 -8
  268. package/lib/providers/exploreState/payloads/entities.d.ts +2 -1
  269. package/lib/providers/exploreState/utils.d.ts +6 -4
  270. package/lib/providers/exploreState/utils.js +7 -4
  271. package/lib/providers/exploreState.d.ts +3 -1
  272. package/lib/providers/exploreState.js +18 -10
  273. package/lib/providers/googleSignInAuthentication/common/types.d.ts +17 -0
  274. package/lib/providers/googleSignInAuthentication/common/types.js +1 -0
  275. package/lib/providers/googleSignInAuthentication/constants.d.ts +4 -0
  276. package/lib/providers/googleSignInAuthentication/constants.js +12 -0
  277. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.d.ts +3 -0
  278. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.js +36 -0
  279. package/lib/providers/googleSignInAuthentication/profile/types.d.ts +14 -0
  280. package/lib/providers/googleSignInAuthentication/profile/types.js +1 -0
  281. package/lib/providers/googleSignInAuthentication/profile/utils.d.ts +8 -0
  282. package/lib/providers/googleSignInAuthentication/profile/utils.js +25 -0
  283. package/lib/providers/googleSignInAuthentication/provider.d.ts +2 -0
  284. package/lib/providers/googleSignInAuthentication/provider.js +40 -0
  285. package/lib/providers/googleSignInAuthentication/service/constants.d.ts +4 -0
  286. package/lib/providers/googleSignInAuthentication/service/constants.js +9 -0
  287. package/lib/providers/googleSignInAuthentication/service/service.d.ts +6 -0
  288. package/lib/providers/googleSignInAuthentication/service/service.js +43 -0
  289. package/lib/providers/googleSignInAuthentication/types.d.ts +6 -0
  290. package/lib/providers/googleSignInAuthentication/types.js +1 -0
  291. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.d.ts +2 -0
  292. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.js +14 -0
  293. package/lib/providers/nextAuthAuthentication/provider.d.ts +2 -0
  294. package/lib/providers/nextAuthAuthentication/provider.js +30 -0
  295. package/lib/providers/nextAuthAuthentication/service/service.d.ts +6 -0
  296. package/lib/providers/nextAuthAuthentication/service/service.js +12 -0
  297. package/lib/providers/nextAuthAuthentication/types.d.ts +8 -0
  298. package/lib/providers/nextAuthAuthentication/types.js +1 -0
  299. package/lib/routes/constants.d.ts +3 -0
  300. package/lib/routes/constants.js +3 -0
  301. package/lib/styles/common/mui/button.d.ts +3 -0
  302. package/lib/styles/common/mui/button.js +17 -0
  303. package/lib/styles/common/mui/paper.d.ts +2 -0
  304. package/lib/styles/common/mui/paper.js +9 -0
  305. package/lib/styles/common/mui/popover.d.ts +3 -0
  306. package/lib/styles/common/mui/popover.js +10 -0
  307. package/lib/theme/common/entities.d.ts +6 -0
  308. package/lib/theme/common/entities.js +1 -0
  309. package/lib/views/ExploreView/exploreView.js +2 -2
  310. package/lib/views/LoginView/loginView.d.ts +5 -1
  311. package/lib/views/LoginView/loginView.js +6 -4
  312. package/package.json +3 -2
  313. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.tsx +38 -0
  314. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/types.ts +7 -0
  315. package/src/components/Authentication/components/SessionController/components/NextSessionController/SessionController.tsx +23 -0
  316. package/src/components/Authentication/components/SessionController/components/NextSessionController/constants.ts +21 -0
  317. package/src/components/Authentication/components/SessionController/components/NextSessionController/types.ts +5 -0
  318. package/src/components/Authentication/components/SessionController/components/NextSessionController/utils.ts +74 -0
  319. package/src/components/ComponentCreator/ComponentCreator.tsx +4 -3
  320. package/src/components/Detail/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.tsx +2 -0
  321. package/src/components/Detail/components/Table/components/TableRows/tableRows.tsx +3 -18
  322. package/src/components/Export/components/ExportForm/components/ExportFileSummaryForm/exportFileSummaryForm.tsx +28 -32
  323. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.tsx +4 -4
  324. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.tsx +1 -1
  325. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.tsx +9 -6
  326. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.tsx +27 -25
  327. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.ts +2 -2
  328. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.tsx +18 -42
  329. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.ts +19 -0
  330. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.ts +3 -2
  331. package/src/components/Layout/components/Header/header.tsx +1 -1
  332. package/src/components/Links/components/Link/components/ExploreViewLink/exploreViewLink.tsx +27 -13
  333. package/src/components/Login/components/Button/button.styles.ts +12 -0
  334. package/src/components/Login/components/Button/button.tsx +8 -0
  335. package/src/components/Login/components/Button/constants.ts +8 -0
  336. package/src/components/Login/components/Button/types.ts +4 -0
  337. package/src/components/Login/login.tsx +28 -28
  338. package/src/components/Login/types.ts +11 -0
  339. package/src/components/Table/common/columnDef.ts +1 -0
  340. package/src/components/Table/common/gridTable.styles.ts +5 -11
  341. package/src/components/Table/common/utils.ts +44 -107
  342. package/src/components/Table/components/TableBody/hooks/virtualizer/constants.ts +3 -0
  343. package/src/components/Table/components/TableBody/hooks/virtualizer/hook.ts +23 -0
  344. package/src/components/Table/components/TableBody/hooks/virtualizer/types.ts +5 -0
  345. package/src/components/Table/components/TableBody/tableBody.tsx +14 -30
  346. package/src/components/Table/components/TableBody/utils.ts +21 -0
  347. package/src/components/Table/components/TableCell/components/CollapsableCell/collapsableCell.tsx +14 -15
  348. package/src/components/Table/components/TableFeatures/ColumnGrouping/utils.ts +70 -0
  349. package/src/components/Table/components/TableFeatures/ColumnVisibility/utils.ts +52 -0
  350. package/src/components/Table/components/TableFeatures/RowSorting/utils.ts +87 -0
  351. package/src/components/Table/components/TableHead/tableHead.tsx +21 -29
  352. package/src/components/Table/components/TableHead/types.ts +7 -0
  353. package/src/components/Table/components/TableHead/utils.ts +42 -0
  354. package/src/components/Table/components/TableRow/tableRow.styles.ts +19 -2
  355. package/src/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.tsx +8 -2
  356. package/src/components/Table/components/TableRows/components/CollapsableRows/hook.ts +20 -0
  357. package/src/components/Table/components/TableRows/tableRows.tsx +18 -15
  358. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.styles.ts +17 -0
  359. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.tsx +54 -0
  360. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.tsx +28 -0
  361. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.ts +8 -0
  362. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/constants.ts +17 -0
  363. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/types.ts +5 -0
  364. package/src/components/Table/components/TableToolbar/components/ColumnGrouping/utils.ts +45 -0
  365. package/src/components/Table/components/TableToolbar/components/RowSelection/components/DropdownMenu/dropdownMenu.tsx +7 -20
  366. package/src/components/Table/components/TableToolbar/tableToolbar.tsx +8 -2
  367. package/src/components/Table/features/RowPosition/constants.ts +2 -2
  368. package/src/components/Table/features/RowPosition/utils.ts +10 -5
  369. package/src/components/Table/options/updater.ts +29 -0
  370. package/src/components/Table/table.tsx +43 -25
  371. package/src/components/TableCreator/common/constants.ts +4 -6
  372. package/src/components/TableCreator/common/utils.ts +14 -7
  373. package/src/components/TableCreator/options/expanded/constants.ts +14 -0
  374. package/src/components/TableCreator/options/expanded/hook.ts +6 -0
  375. package/src/components/TableCreator/options/grouping/constants.ts +6 -0
  376. package/src/components/TableCreator/options/grouping/hook.ts +17 -0
  377. package/src/components/TableCreator/options/hook.ts +31 -0
  378. package/src/components/TableCreator/options/rowSelection/constants.ts +10 -0
  379. package/src/components/TableCreator/options/rowSelection/hook.ts +8 -0
  380. package/src/components/TableCreator/options/sorting/constants.ts +10 -0
  381. package/src/components/TableCreator/options/sorting/hook.ts +6 -0
  382. package/src/components/TableCreator/tableCreator.tsx +4 -11
  383. package/src/components/common/Banner/components/SessionTimeout/sessionTimeout.tsx +1 -1
  384. package/src/components/common/CustomIcon/common/entities.ts +1 -4
  385. package/src/components/common/CustomIcon/components/GoogleIcon/googleIcon.tsx +3 -4
  386. package/src/components/common/DropdownMenu/dropdownMenu.styles.ts +1 -1
  387. package/src/components/common/DropdownMenu/dropdownMenu.tsx +19 -17
  388. package/src/components/common/Menu/hooks/useMenu.ts +8 -9
  389. package/src/config/entities.ts +30 -34
  390. package/src/config/utils.ts +0 -14
  391. package/src/hooks/authentication/auth/useAuthReducer.ts +16 -0
  392. package/src/hooks/authentication/authentication/useAuthenticationReducer.ts +16 -0
  393. package/src/hooks/authentication/config/useAuthenticationConfig.ts +13 -0
  394. package/src/hooks/authentication/credentials/useCredentialsReducer.ts +13 -0
  395. package/src/hooks/authentication/profile/types.ts +9 -0
  396. package/src/hooks/authentication/profile/useProfile.ts +21 -0
  397. package/src/hooks/authentication/providers/types.ts +7 -0
  398. package/src/hooks/authentication/providers/useProviders.ts +23 -0
  399. package/src/hooks/authentication/session/useSessionActive.ts +51 -0
  400. package/src/hooks/authentication/session/useSessionCallbackUrl.ts +25 -0
  401. package/src/hooks/authentication/session/useSessionIdleTimer.ts +10 -0
  402. package/src/hooks/{useSessionTimeout.ts → authentication/session/useSessionTimeout.ts} +2 -2
  403. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.ts +8 -13
  404. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.ts +3 -4
  405. package/src/hooks/authentication/token/types.ts +5 -0
  406. package/src/hooks/authentication/token/useToken.ts +9 -0
  407. package/src/hooks/authentication/token/useTokenReducer.ts +19 -0
  408. package/src/hooks/useEntityList.ts +2 -2
  409. package/src/hooks/useFetchEntity.tsx +3 -3
  410. package/src/hooks/useFileManifest/useFetchFilesFacets.ts +2 -3
  411. package/src/hooks/useFileManifest/useFetchSummary.ts +2 -3
  412. package/src/hooks/useRequestFileLocation.ts +2 -3
  413. package/src/hooks/useRouteHistory.ts +65 -0
  414. package/src/hooks/useRouteRoot.ts +11 -0
  415. package/src/hooks/useSummary.ts +3 -3
  416. package/src/providers/authentication/auth/actions.ts +17 -0
  417. package/src/providers/authentication/auth/constants.ts +6 -0
  418. package/src/providers/authentication/auth/context.ts +9 -0
  419. package/src/providers/authentication/auth/dispatch.ts +58 -0
  420. package/src/providers/authentication/auth/hook.ts +11 -0
  421. package/src/providers/authentication/auth/reducer.ts +25 -0
  422. package/src/providers/authentication/auth/types.ts +63 -0
  423. package/src/providers/authentication/authentication/actions.ts +17 -0
  424. package/src/providers/authentication/authentication/constants.ts +6 -0
  425. package/src/providers/authentication/authentication/context.ts +8 -0
  426. package/src/providers/authentication/authentication/dispatch.ts +55 -0
  427. package/src/providers/authentication/authentication/hook.ts +11 -0
  428. package/src/providers/authentication/authentication/reducer.ts +34 -0
  429. package/src/providers/authentication/authentication/types.ts +64 -0
  430. package/src/providers/authentication/authentication/utils.ts +25 -0
  431. package/src/providers/authentication/common/types.ts +1 -0
  432. package/src/providers/authentication/common/utils.ts +11 -0
  433. package/src/providers/authentication/credentials/actions.ts +17 -0
  434. package/src/providers/authentication/credentials/constants.ts +5 -0
  435. package/src/providers/authentication/credentials/context.ts +8 -0
  436. package/src/providers/authentication/credentials/dispatch.ts +31 -0
  437. package/src/providers/authentication/credentials/hook.ts +11 -0
  438. package/src/providers/authentication/credentials/reducer.ts +30 -0
  439. package/src/providers/authentication/credentials/types.ts +33 -0
  440. package/src/providers/authentication/terra/context.ts +16 -0
  441. package/src/providers/authentication/terra/hook.ts +11 -0
  442. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.ts +9 -0
  443. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.ts +1 -7
  444. package/src/providers/authentication/terra/hooks/useFetchProfiles.ts +61 -0
  445. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.ts +18 -7
  446. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.ts +18 -7
  447. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.ts +18 -7
  448. package/src/providers/authentication/terra/hooks/utils.ts +29 -0
  449. package/src/providers/authentication/terra/provider.tsx +60 -0
  450. package/src/providers/authentication/terra/types.ts +23 -0
  451. package/src/providers/authentication/terra/utils.ts +49 -0
  452. package/src/providers/authentication/token/constants.ts +6 -0
  453. package/src/providers/authentication/token/dispatch.ts +29 -0
  454. package/src/providers/authentication/token/reducer.ts +26 -0
  455. package/src/providers/authentication/token/types.ts +36 -0
  456. package/src/providers/exploreState/actions/updateGrouping/action.ts +26 -0
  457. package/src/providers/exploreState/actions/updateGrouping/dispatch.ts +16 -0
  458. package/src/providers/exploreState/actions/updateGrouping/types.ts +11 -0
  459. package/src/providers/exploreState/actions/updateGrouping/utils.ts +33 -0
  460. package/src/providers/exploreState/entities.ts +3 -3
  461. package/src/providers/exploreState/initializer/utils.ts +58 -10
  462. package/src/providers/exploreState/payloads/entities.ts +2 -0
  463. package/src/providers/exploreState/utils.ts +10 -7
  464. package/src/providers/exploreState.tsx +32 -10
  465. package/src/providers/googleSignInAuthentication/common/types.ts +28 -0
  466. package/src/providers/googleSignInAuthentication/constants.ts +17 -0
  467. package/src/providers/googleSignInAuthentication/hooks/useGoogleSignInService.ts +53 -0
  468. package/src/providers/googleSignInAuthentication/profile/types.ts +15 -0
  469. package/src/providers/googleSignInAuthentication/profile/utils.ts +29 -0
  470. package/src/providers/googleSignInAuthentication/provider.tsx +53 -0
  471. package/src/providers/googleSignInAuthentication/service/constants.ts +16 -0
  472. package/src/providers/googleSignInAuthentication/service/service.ts +68 -0
  473. package/src/providers/googleSignInAuthentication/types.ts +7 -0
  474. package/src/providers/nextAuthAuthentication/hooks/useNextAuthService.ts +26 -0
  475. package/src/providers/nextAuthAuthentication/provider.tsx +42 -0
  476. package/src/providers/nextAuthAuthentication/service/service.ts +14 -0
  477. package/src/providers/nextAuthAuthentication/types.ts +9 -0
  478. package/src/routes/constants.ts +3 -0
  479. package/src/styles/common/mui/button.ts +20 -0
  480. package/src/styles/common/mui/paper.ts +11 -0
  481. package/src/styles/common/mui/popover.ts +19 -0
  482. package/src/theme/common/entities.ts +7 -0
  483. package/src/views/ExploreView/exploreView.tsx +1 -3
  484. package/src/views/LoginView/loginView.tsx +15 -9
  485. package/tests/getProfileStatus.test.ts +290 -0
  486. package/tests/terraProfileProvider.test.tsx +121 -0
  487. package/tests/transformRoute.test.ts +21 -0
  488. package/tests/useRouteHistory.test.ts +97 -0
  489. package/tests/useSessionActive.test.ts +107 -0
  490. package/types/data-explorer-ui.d.ts +8 -1
  491. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.d.ts +0 -5
  492. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.js +0 -29
  493. package/lib/components/Login/login.stories.d.ts +0 -6
  494. package/lib/components/Login/login.stories.js +0 -31
  495. package/lib/components/TableCreator/common/entities.d.ts +0 -5
  496. package/lib/components/common/Button/components/LoginButton/loginButton.d.ts +0 -3
  497. package/lib/components/common/Button/components/LoginButton/loginButton.js +0 -6
  498. package/lib/components/common/Button/components/LoginButton/loginButton.styles.d.ts +0 -7
  499. package/lib/components/common/Button/components/LoginButton/loginButton.styles.js +0 -11
  500. package/lib/hooks/useAuthentication/useAuthentication.d.ts +0 -6
  501. package/lib/hooks/useAuthentication/useAuthentication.js +0 -9
  502. package/lib/hooks/useAuthentication/useAuthenticationComplete.d.ts +0 -6
  503. package/lib/hooks/useAuthentication/useAuthenticationComplete.js +0 -55
  504. package/lib/hooks/useAuthentication/useAuthenticationStatus.d.ts +0 -20
  505. package/lib/hooks/useAuthentication/useAuthenticationStatus.js +0 -32
  506. package/lib/hooks/useAuthentication/useFetchGoogleProfile.d.ts +0 -21
  507. package/lib/hooks/useAuthentication/useFetchGoogleProfile.js +0 -41
  508. package/lib/hooks/useAuthentication/useTokenClient.d.ts +0 -11
  509. package/lib/hooks/useAuthentication/useTokenClient.js +0 -29
  510. package/lib/hooks/useAuthenticationConfig.d.ts +0 -6
  511. package/lib/hooks/useAuthenticationConfig.js +0 -14
  512. package/lib/providers/authentication.d.ts +0 -51
  513. package/lib/providers/authentication.js +0 -110
  514. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.tsx +0 -35
  515. package/src/components/Login/login.stories.tsx +0 -43
  516. package/src/components/TableCreator/common/entities.ts +0 -6
  517. package/src/components/common/Button/components/LoginButton/loginButton.styles.ts +0 -13
  518. package/src/components/common/Button/components/LoginButton/loginButton.tsx +0 -16
  519. package/src/hooks/useAuthentication/useAuthentication.tsx +0 -10
  520. package/src/hooks/useAuthentication/useAuthenticationComplete.ts +0 -66
  521. package/src/hooks/useAuthentication/useAuthenticationStatus.ts +0 -49
  522. package/src/hooks/useAuthentication/useFetchGoogleProfile.ts +0 -68
  523. package/src/hooks/useAuthentication/useTokenClient.ts +0 -54
  524. package/src/hooks/useAuthenticationConfig.ts +0 -18
  525. package/src/providers/authentication.tsx +0 -181
  526. package/tests/authentication.test.ts +0 -142
  527. package/tests/useAuthenticationStatus.test.ts +0 -155
  528. /package/lib/components/{TableCreator/common/entities.js → Authentication/components/SessionController/components/GoogleSessionController/types.js} +0 -0
  529. /package/lib/hooks/{useSessionTimeout.d.ts → authentication/session/useSessionTimeout.d.ts} +0 -0
  530. /package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.d.ts +0 -0
  531. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.d.ts +0 -0
  532. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.js +0 -0
  533. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.d.ts +0 -0
  534. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.d.ts +0 -0
  535. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.d.ts +0 -0
  536. /package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.ts +0 -0
@@ -0,0 +1,22 @@
1
+ import { DEFAULT_TOKEN_STATE } from "./constants";
2
+ import { TokenActionKind } from "./types";
3
+ /**
4
+ * Token reducer.
5
+ * @param state - State.
6
+ * @param action - Action.
7
+ * @returns state.
8
+ */
9
+ export function tokenReducer(state, action) {
10
+ const { payload, type } = action;
11
+ switch (type) {
12
+ case TokenActionKind.ResetState:
13
+ return DEFAULT_TOKEN_STATE;
14
+ case TokenActionKind.UpdateToken:
15
+ return {
16
+ ...state,
17
+ ...payload,
18
+ };
19
+ default:
20
+ return state;
21
+ }
22
+ }
@@ -0,0 +1,28 @@
1
+ import { Dispatch } from "react";
2
+ import { ProviderId } from "../common/types";
3
+ export interface ResetStateAction {
4
+ payload: ResetStatePayload;
5
+ type: TokenActionKind.ResetState;
6
+ }
7
+ export type ResetStatePayload = undefined;
8
+ export type TokenAction = ResetStateAction | UpdateTokenAction;
9
+ export declare enum TokenActionKind {
10
+ ResetState = "RESET_TOKEN",
11
+ UpdateToken = "UPDATE_TOKEN"
12
+ }
13
+ export interface TokenContextProps {
14
+ tokenDispatch: Dispatch<TokenAction> | null;
15
+ tokenState: TokenState;
16
+ }
17
+ export interface TokenState {
18
+ providerId: ProviderId | undefined;
19
+ token: string | undefined;
20
+ }
21
+ export interface UpdateTokenAction {
22
+ payload: UpdateTokenPayload;
23
+ type: TokenActionKind.UpdateToken;
24
+ }
25
+ export interface UpdateTokenPayload {
26
+ providerId: ProviderId | undefined;
27
+ token: string | undefined;
28
+ }
@@ -0,0 +1,5 @@
1
+ export var TokenActionKind;
2
+ (function (TokenActionKind) {
3
+ TokenActionKind["ResetState"] = "RESET_TOKEN";
4
+ TokenActionKind["UpdateToken"] = "UPDATE_TOKEN";
5
+ })(TokenActionKind || (TokenActionKind = {}));
@@ -0,0 +1,10 @@
1
+ import { ExploreState } from "../../../exploreState";
2
+ import { UpdateGroupingPayload } from "./types";
3
+ /**
4
+ * Reducer function to handle the "update grouping" action.
5
+ * Updates the grouping in the state for the current entity.
6
+ * @param state - Explore State.
7
+ * @param payload - Payload.
8
+ * @returns explore state.
9
+ */
10
+ export declare function updateGroupingAction(state: ExploreState, payload: UpdateGroupingPayload): ExploreState;
@@ -0,0 +1,16 @@
1
+ import { updateEntityPageState } from "../../utils";
2
+ import { buildNextGrouping } from "./utils";
3
+ /**
4
+ * Reducer function to handle the "update grouping" action.
5
+ * Updates the grouping in the state for the current entity.
6
+ * @param state - Explore State.
7
+ * @param payload - Payload.
8
+ * @returns explore state.
9
+ */
10
+ export function updateGroupingAction(state, payload) {
11
+ const grouping = buildNextGrouping(state, payload.updaterOrValue);
12
+ return {
13
+ ...state,
14
+ entityPageState: updateEntityPageState(state.tabValue, state.entityPageState, { grouping }),
15
+ };
16
+ }
@@ -0,0 +1,7 @@
1
+ import { UpdateGroupingAction, UpdateGroupingPayload } from "./types";
2
+ /**
3
+ * Action creator for updating grouping in the state.
4
+ * @param payload - Payload.
5
+ * @returns Action with payload and action type.
6
+ */
7
+ export declare function updateGrouping(payload: UpdateGroupingPayload): UpdateGroupingAction;
@@ -0,0 +1,12 @@
1
+ import { ExploreActionKind } from "../../../exploreState";
2
+ /**
3
+ * Action creator for updating grouping in the state.
4
+ * @param payload - Payload.
5
+ * @returns Action with payload and action type.
6
+ */
7
+ export function updateGrouping(payload) {
8
+ return {
9
+ payload,
10
+ type: ExploreActionKind.UpdateGrouping,
11
+ };
12
+ }
@@ -0,0 +1,9 @@
1
+ import { GroupingState, Updater } from "@tanstack/react-table";
2
+ import { ExploreActionKind } from "../../../exploreState";
3
+ export type UpdateGroupingAction = {
4
+ payload: UpdateGroupingPayload;
5
+ type: ExploreActionKind.UpdateGrouping;
6
+ };
7
+ export type UpdateGroupingPayload = {
8
+ updaterOrValue: Updater<GroupingState>;
9
+ };
@@ -0,0 +1,10 @@
1
+ import { GroupingState, Updater } from "@tanstack/react-table";
2
+ import { ExploreState } from "../../../exploreState";
3
+ /**
4
+ * Builds the next grouping state for the current entity type.
5
+ * Uses TanStack updater to update the grouping state.
6
+ * @param state - Explore state.
7
+ * @param updaterOrValue - Updater or value to update the grouping state.
8
+ * @returns grouping state.
9
+ */
10
+ export declare function buildNextGrouping(state: ExploreState, updaterOrValue: Updater<GroupingState>): GroupingState;
@@ -0,0 +1,26 @@
1
+ import { resolveUpdater } from "../../../../components/Table/options/updater";
2
+ /**
3
+ * Builds the next grouping state for the current entity type.
4
+ * Uses TanStack updater to update the grouping state.
5
+ * @param state - Explore state.
6
+ * @param updaterOrValue - Updater or value to update the grouping state.
7
+ * @returns grouping state.
8
+ */
9
+ export function buildNextGrouping(state, updaterOrValue) {
10
+ const grouping = resolveUpdater(updaterOrValue, getOldGrouping(state));
11
+ if (grouping.length > 1) {
12
+ // Explore state only supports single-column grouping.
13
+ return grouping.slice(-1);
14
+ }
15
+ return grouping;
16
+ }
17
+ /**
18
+ * Retrieves the current "old" grouping state from the explore state, for the current entity type.
19
+ * @param state - Explore state.
20
+ * @returns old grouping state.
21
+ */
22
+ function getOldGrouping(state) {
23
+ const { entityPageState, tabValue } = state;
24
+ const { grouping = [] } = entityPageState[tabValue];
25
+ return grouping;
26
+ }
@@ -1,4 +1,4 @@
1
- import { ColumnSort, RowSelectionState, VisibilityState } from "@tanstack/react-table";
1
+ import { ColumnSort, GroupingState, RowSelectionState, VisibilityState } from "@tanstack/react-table";
2
2
  import { CategoryValueKey, SelectCategory, SelectCategoryView, SelectedFilter } from "../../common/entities";
3
3
  import { RowPreviewState } from "../../components/Table/features/RowPreview/entities";
4
4
  import { CategoryConfig, CategoryGroup, CategoryGroupConfig, EntityPath, SavedFilter } from "../../config/entities";
@@ -6,6 +6,7 @@ export interface EntityPageState {
6
6
  categoryGroupConfigKey: CategoryGroupConfigKey;
7
7
  columnsVisibility: VisibilityState;
8
8
  enableRowSelection: boolean;
9
+ grouping: GroupingState;
9
10
  rowPreview: RowPreviewState;
10
11
  rowSelection: RowSelectionState;
11
12
  sorting: ColumnSort[];
@@ -24,8 +25,6 @@ export interface EntityState {
24
25
  }
25
26
  export type EntityStateByCategoryGroupConfigKey = Map<CategoryGroupConfigKey, EntityState>;
26
27
  export type CategoryGroupConfigKey = CategoryGroupConfig["key"];
27
- export interface EntityStateSavedFilter extends Omit<SavedFilter, "sort"> {
28
- sorting?: ColumnSort[];
29
- }
28
+ export type EntityStateSavedFilter = SavedFilter;
30
29
  export type ListItem = any;
31
30
  export type SavedFilterByCategoryValueKey = Map<CategoryValueKey, EntityStateSavedFilter>;
@@ -1,6 +1,5 @@
1
1
  import { getInitialTableColumnVisibility } from "../../../components/Table/common/utils";
2
2
  import { ACCESSOR_KEYS } from "../../../components/TableCreator/common/constants";
3
- import { getDefaultSorting } from "../../../config/utils";
4
3
  import { SELECT_CATEGORY_KEY } from "../constants";
5
4
  import { getEntityCategoryGroupConfigKey, getFilterCount } from "../utils";
6
5
  import { DEFAULT_CATEGORY_GROUP_SAVED_FILTERS, DEFAULT_ENTITY_STATE, INITIAL_STATE, } from "./constants";
@@ -45,8 +44,13 @@ function buildSavedFilterByCategoryValueKey(savedFilters) {
45
44
  if (!savedFilters)
46
45
  return;
47
46
  const savedFilterByCategoryValueKey = new Map();
48
- for (const { filters, sorting, title } of savedFilters) {
49
- savedFilterByCategoryValueKey.set(title, { filters, sorting, title });
47
+ for (const { filters, grouping, sorting, title } of savedFilters) {
48
+ savedFilterByCategoryValueKey.set(title, {
49
+ filters,
50
+ grouping,
51
+ sorting,
52
+ title,
53
+ });
50
54
  }
51
55
  return savedFilterByCategoryValueKey;
52
56
  }
@@ -95,14 +99,22 @@ function initCategoryGroups(entityStateByCategoryGroupConfigKey, categoryGroupCo
95
99
  * @returns column visibility.
96
100
  */
97
101
  function initColumnVisibility(entityConfig) {
98
- const { list: { columns, tableOptions: { initialState: { columnVisibility = {} } = {} } = {}, }, listView: { enableRowSelection = false } = {}, } = entityConfig;
102
+ const { list: { columns, tableOptions: { enableRowSelection, initialState: { columnVisibility = {} } = {}, } = {}, }, } = entityConfig;
99
103
  return {
100
- [ACCESSOR_KEYS.ROW_POSITION]: false, // Explicitly setting row position to false; required - currently `columnVisibilty` is initialized from columns configuration.
101
- [ACCESSOR_KEYS.SELECT]: enableRowSelection,
104
+ [ACCESSOR_KEYS.ROW_POSITION]: false, // Explicitly setting row position to false; required - currently `columnVisibility` is initialized from columns configuration.
105
+ [ACCESSOR_KEYS.SELECT]: Boolean(enableRowSelection),
102
106
  ...getInitialTableColumnVisibility(columns),
103
107
  ...columnVisibility, // `columnVisibility` is managed by ExploreState; use table options to override this setting.
104
108
  };
105
109
  }
110
+ /**
111
+ * Returns the initial `enableRowSelection` option for the specified entity list configuration.
112
+ * @param entityConfig - Entity configuration.
113
+ * @returns initial `enableRowSelection` option.
114
+ */
115
+ function initEnableRowSelection(entityConfig) {
116
+ return Boolean(entityConfig.list.tableOptions?.enableRowSelection);
117
+ }
106
118
  /**
107
119
  * Initializes entity page state.
108
120
  * @param config - Site config.
@@ -115,10 +127,11 @@ function initEntityPageState(config) {
115
127
  [entity.route]: {
116
128
  categoryGroupConfigKey: initCategoryGroupConfigKey(config, entity),
117
129
  columnsVisibility: initColumnVisibility(entity),
118
- enableRowSelection: Boolean(entity.listView?.enableRowSelection),
130
+ enableRowSelection: initEnableRowSelection(entity),
131
+ grouping: initGrouping(entity),
119
132
  rowPreview: undefined,
120
133
  rowSelection: {},
121
- sorting: getDefaultSorting(entity),
134
+ sorting: initSorting(entity),
122
135
  },
123
136
  };
124
137
  }, {});
@@ -169,6 +182,26 @@ function initFilterState(decodedFilterParam) {
169
182
  }
170
183
  return filterState;
171
184
  }
185
+ /**
186
+ * Returns the initial table grouping state for the specified entity list configuration.
187
+ * @param entityConfig - Entity configuration.
188
+ * @returns initial grouping state.
189
+ */
190
+ function initGrouping(entityConfig) {
191
+ const { list: { tableOptions: { initialState: { grouping = [] } = {} } = {} }, } = entityConfig;
192
+ return grouping;
193
+ }
194
+ /**
195
+ * Returns the initial table sorting state for the specified entity list configuration.
196
+ * @param entityConfig - Entity configuration.
197
+ * @returns initial sorting state.
198
+ */
199
+ function initSorting(entityConfig) {
200
+ const { list: { defaultSort, tableOptions: { initialState: { sorting = [] } = {} } = {}, }, } = entityConfig;
201
+ if (defaultSort)
202
+ return [defaultSort];
203
+ return sorting;
204
+ }
172
205
  /**
173
206
  * Returns the explore state reducer initial arguments.
174
207
  * @param config - Site config.
@@ -1,4 +1,4 @@
1
- import { ColumnSort, RowSelectionState, VisibilityState } from "@tanstack/react-table";
1
+ import { ColumnSort, GroupingState, RowSelectionState, VisibilityState } from "@tanstack/react-table";
2
2
  import { CategoryKey, CategoryValueKey, PaginationDirectionType, SelectCategory, SelectedFilter } from "../../../common/entities";
3
3
  import { RowPreviewState } from "../../../components/Table/features/RowPreview/entities";
4
4
  import { ListItems, PaginationResponse } from "../../exploreState";
@@ -45,6 +45,7 @@ export type UpdateColumnVisibilityPayload = VisibilityState;
45
45
  export interface UpdateEntityFiltersPayload {
46
46
  entityListType: string;
47
47
  filters: SelectedFilter[];
48
+ grouping?: GroupingState;
48
49
  sorting?: ColumnSort[];
49
50
  }
50
51
  /**
@@ -1,4 +1,3 @@
1
- import { ColumnSort } from "@tanstack/react-table";
2
1
  import { CategoryKey, CategoryValueKey, SelectedFilter } from "../../common/entities";
3
2
  import { RowPreviewState } from "../../components/Table/features/RowPreview/entities";
4
3
  import { ExploreState, ListItems, PaginationState } from "../exploreState";
@@ -48,13 +47,16 @@ export declare function getEntityState(state: ExploreState, categoryGroupConfigK
48
47
  */
49
48
  export declare function getEntityStateSavedFilter(state: ExploreState, categoryValueKey: CategoryValueKey): EntityStateSavedFilter | undefined;
50
49
  /**
51
- * Returns entity state "saved filter" sorting for the given category value key.
50
+ * Retrieves a specified property from the "saved filter" for the given category value key.
51
+ * This function fetches a property (e.g., "sorting" or "grouping") from the saved filter
52
+ * associated with a given `selectedValue`.
52
53
  * @param state - Explore state.
53
54
  * @param selectedValue - Key of category value that has been de/selected.
54
55
  * @param selected - True if value is selected, false if de-selected.
55
- * @returns sorting.
56
+ * @param propertyName - The name of the property to retrieve from the saved filter. Should be one of the predefined keys: "sorting" or "grouping".
57
+ * @returns value of the specified property from the saved filter, or undefined if `selected` is false.
56
58
  */
57
- export declare function getEntityStateSavedSorting(state: ExploreState, selectedValue: CategoryValueKey, selected: boolean): ColumnSort[] | undefined;
59
+ export declare function getEntityStateSavedProperty<K extends "sorting" | "grouping">(state: ExploreState, selectedValue: CategoryValueKey, selected: boolean, propertyName: K): EntityStateSavedFilter[K] | undefined;
58
60
  /**
59
61
  * Returns the filter count.
60
62
  * @param filterState - Filter state.
@@ -67,17 +67,20 @@ export function getEntityStateSavedFilter(state, categoryValueKey) {
67
67
  return entityState.savedFilterByCategoryValueKey?.get(categoryValueKey);
68
68
  }
69
69
  /**
70
- * Returns entity state "saved filter" sorting for the given category value key.
70
+ * Retrieves a specified property from the "saved filter" for the given category value key.
71
+ * This function fetches a property (e.g., "sorting" or "grouping") from the saved filter
72
+ * associated with a given `selectedValue`.
71
73
  * @param state - Explore state.
72
74
  * @param selectedValue - Key of category value that has been de/selected.
73
75
  * @param selected - True if value is selected, false if de-selected.
74
- * @returns sorting.
76
+ * @param propertyName - The name of the property to retrieve from the saved filter. Should be one of the predefined keys: "sorting" or "grouping".
77
+ * @returns value of the specified property from the saved filter, or undefined if `selected` is false.
75
78
  */
76
- export function getEntityStateSavedSorting(state, selectedValue, selected) {
79
+ export function getEntityStateSavedProperty(state, selectedValue, selected, propertyName) {
77
80
  if (!selected)
78
81
  return;
79
82
  const savedFilter = getEntityStateSavedFilter(state, selectedValue);
80
- return savedFilter?.sorting;
83
+ return savedFilter?.[propertyName];
81
84
  }
82
85
  /**
83
86
  * Returns the filter count.
@@ -3,6 +3,7 @@ import { AzulSearchIndex } from "../apis/azul/common/entities";
3
3
  import { SelectCategoryView, SelectedFilter } from "../common/entities";
4
4
  import { RowPreviewState } from "../components/Table/features/RowPreview/entities";
5
5
  import { CategoryGroup, SiteConfig } from "../config/entities";
6
+ import { UpdateGroupingAction } from "./exploreState/actions/updateGrouping/types";
6
7
  import { EntityPageStateMapper, EntityStateByCategoryGroupConfigKey, ListItem } from "./exploreState/entities";
7
8
  import { ApplySavedFilterPayload, PaginateTablePayload, PatchExploreResponsePayload, ProcessExploreResponsePayload, ResetExploreResponsePayload, UpdateColumnVisibilityPayload, UpdateEntityFiltersPayload, UpdateEntityViewAccessPayload, UpdateFilterPayload, UpdateRowPreviewPayload, UpdateRowSelectionPayload, UpdateSortingPayload } from "./exploreState/payloads/entities";
8
9
  export type CatalogState = string | undefined;
@@ -103,6 +104,7 @@ export declare enum ExploreActionKind {
103
104
  UpdateEntityFilters = "UPDATE_ENTITY_FILTERS",
104
105
  UpdateEntityViewAccess = "UPDATE_ENTITY_VIEW_ACCESS",
105
106
  UpdateFilter = "UPDATE_FILTER",
107
+ UpdateGrouping = "UPDATE_GROUPING",
106
108
  UpdateRowPreview = "UPDATE_ROW_PREVIEW",
107
109
  UpdateRowSelection = "UPDATE_ROW_SELECTION",
108
110
  UpdateSorting = "UPDATE_SORTING"
@@ -110,7 +112,7 @@ export declare enum ExploreActionKind {
110
112
  /**
111
113
  * Explore action.
112
114
  */
113
- export type ExploreAction = ApplySavedFilterAction | ClearFiltersAction | PaginateTableAction | PatchExploreResponseAction | ProcessExploreResponseAction | ResetExploreResponseAction | ResetStateAction | SelectEntityTypeAction | UpdateColumnVisibilityAction | UpdateEntityFiltersAction | UpdateEntityViewAccessAction | UpdateFilterAction | UpdateRowPreviewAction | UpdateRowSelectionAction | UpdateSortingAction;
115
+ export type ExploreAction = ApplySavedFilterAction | ClearFiltersAction | PaginateTableAction | PatchExploreResponseAction | ProcessExploreResponseAction | ResetExploreResponseAction | ResetStateAction | SelectEntityTypeAction | UpdateColumnVisibilityAction | UpdateEntityFiltersAction | UpdateEntityViewAccessAction | UpdateFilterAction | UpdateGroupingAction | UpdateRowPreviewAction | UpdateRowSelectionAction | UpdateSortingAction;
114
116
  /**
115
117
  * Apply saved filter action.
116
118
  */
@@ -1,11 +1,12 @@
1
1
  import React, { createContext, useEffect, useMemo, useReducer, useState, } from "react";
2
- import { useAuthentication } from "../hooks/useAuthentication/useAuthentication";
2
+ import { useToken } from "../hooks/authentication/token/useToken";
3
3
  import { buildCategoryViews, buildNextFilterState, } from "../hooks/useCategoryFilter";
4
4
  import { useConfig } from "../hooks/useConfig";
5
5
  import { useURLFilterParams } from "../hooks/useURLFilterParams";
6
+ import { updateGroupingAction } from "./exploreState/actions/updateGrouping/action";
6
7
  import { DEFAULT_PAGINATION_STATE, INITIAL_STATE, } from "./exploreState/initializer/constants";
7
8
  import { initReducerArguments } from "./exploreState/initializer/utils";
8
- import { buildEntityStateSavedFilterState, buildNextSavedFilterState, closeRowPreview, getEntityCategoryGroupConfigKey, getEntityState, getEntityStateSavedSorting, getFilterCount, patchEntityListItems, resetPage, updateEntityPageState, updateEntityPageStateWithCommonCategoryGroupConfigKey, updateEntityStateByCategoryGroupConfigKey, updateSelectColumnVisibility, } from "./exploreState/utils";
9
+ import { buildEntityStateSavedFilterState, buildNextSavedFilterState, closeRowPreview, getEntityCategoryGroupConfigKey, getEntityState, getEntityStateSavedProperty, getFilterCount, patchEntityListItems, resetPage, updateEntityPageState, updateEntityPageStateWithCommonCategoryGroupConfigKey, updateEntityStateByCategoryGroupConfigKey, updateSelectColumnVisibility, } from "./exploreState/utils";
9
10
  /**
10
11
  * Explore state context for storing and using filter-related and explore state.
11
12
  */
@@ -31,7 +32,7 @@ export const ExploreStateContext = createContext({
31
32
  export function ExploreStateProvider({ children, entityListType, }) {
32
33
  const { config, defaultEntityListType } = useConfig();
33
34
  const { decodedCatalogParam, decodedFeatureFlagParam, decodedFilterParam } = useURLFilterParams();
34
- const { isEnabled: isAuthEnabled, token } = useAuthentication();
35
+ const { token } = useToken();
35
36
  const entityList = entityListType || defaultEntityListType;
36
37
  const [initializerArg] = useState(() => initReducerArguments(config, entityList, decodedFilterParam, decodedCatalogParam, decodedFeatureFlagParam));
37
38
  const [exploreState, exploreDispatch] = useReducer((s, a) => exploreReducer(s, a, {
@@ -44,13 +45,11 @@ export function ExploreStateProvider({ children, entityListType, }) {
44
45
  }, [exploreDispatch, exploreState]);
45
46
  // Reset explore response when token changes.
46
47
  useEffect(() => {
47
- if (!isAuthEnabled)
48
- return;
49
48
  exploreDispatch({
50
49
  payload: undefined,
51
50
  type: ExploreActionKind.ResetExploreResponse,
52
51
  });
53
- }, [exploreDispatch, isAuthEnabled, token]);
52
+ }, [exploreDispatch, token]);
54
53
  return (React.createElement(ExploreStateContext.Provider, { value: exploreContextValue }, children));
55
54
  }
56
55
  /**
@@ -70,6 +69,7 @@ export var ExploreActionKind;
70
69
  ExploreActionKind["UpdateEntityFilters"] = "UPDATE_ENTITY_FILTERS";
71
70
  ExploreActionKind["UpdateEntityViewAccess"] = "UPDATE_ENTITY_VIEW_ACCESS";
72
71
  ExploreActionKind["UpdateFilter"] = "UPDATE_FILTER";
72
+ ExploreActionKind["UpdateGrouping"] = "UPDATE_GROUPING";
73
73
  ExploreActionKind["UpdateRowPreview"] = "UPDATE_ROW_PREVIEW";
74
74
  ExploreActionKind["UpdateRowSelection"] = "UPDATE_ROW_SELECTION";
75
75
  ExploreActionKind["UpdateSorting"] = "UPDATE_SORTING";
@@ -93,7 +93,9 @@ function exploreReducer(state, action, exploreContext) {
93
93
  const rowPreview = closeRowPreview(state.rowPreview);
94
94
  const rowSelection = {};
95
95
  const savedFilterState = buildEntityStateSavedFilterState(payload.categoryKey, payload.selectedValue, payload.selected);
96
- const savedSorting = getEntityStateSavedSorting(state, payload.selectedValue, payload.selected);
96
+ const savedGrouping = getEntityStateSavedProperty(state, payload.selectedValue, payload.selected, "grouping");
97
+ const savedSorting = getEntityStateSavedProperty(state, payload.selectedValue, payload.selected, "sorting");
98
+ const grouping = savedGrouping || []; // Reset grouping to default if saved grouping is not available.
97
99
  const sorting = savedSorting || []; // Reset sorting to default if saved sorting is not available.
98
100
  updateEntityStateByCategoryGroupConfigKey(state, {
99
101
  filterState,
@@ -101,7 +103,7 @@ function exploreReducer(state, action, exploreContext) {
101
103
  });
102
104
  return {
103
105
  ...state,
104
- entityPageState: updateEntityPageStateWithCommonCategoryGroupConfigKey(state, { rowPreview, rowSelection, sorting }),
106
+ entityPageState: updateEntityPageStateWithCommonCategoryGroupConfigKey(state, { grouping, rowPreview, rowSelection, sorting }),
105
107
  filterCount: getFilterCount(filterState),
106
108
  filterState,
107
109
  paginationState: resetPage(state.paginationState),
@@ -250,7 +252,7 @@ function exploreReducer(state, action, exploreContext) {
250
252
  * - closes row preview, without updating the entity page state row preview.
251
253
  */
252
254
  case ExploreActionKind.UpdateEntityFilters: {
253
- const { entityListType, filters: filterState, sorting } = payload;
255
+ const { entityListType, filters: filterState, grouping = [], sorting = [], } = payload;
254
256
  const categoryGroupConfigKey = getEntityCategoryGroupConfigKey(entityListType, state.entityPageState);
255
257
  const rowPreview = closeRowPreview(state.entityPageState[entityListType].rowPreview);
256
258
  const rowSelection = {};
@@ -261,7 +263,7 @@ function exploreReducer(state, action, exploreContext) {
261
263
  }, categoryGroupConfigKey);
262
264
  return {
263
265
  ...state,
264
- entityPageState: updateEntityPageStateWithCommonCategoryGroupConfigKey(state, { rowPreview, rowSelection, sorting }, categoryGroupConfigKey),
266
+ entityPageState: updateEntityPageStateWithCommonCategoryGroupConfigKey(state, { grouping, rowPreview, rowSelection, sorting }, categoryGroupConfigKey),
265
267
  rowPreview: closeRowPreview(state.rowPreview),
266
268
  };
267
269
  }
@@ -295,6 +297,12 @@ function exploreReducer(state, action, exploreContext) {
295
297
  rowPreview,
296
298
  };
297
299
  }
300
+ /**
301
+ * Update grouping
302
+ **/
303
+ case ExploreActionKind.UpdateGrouping: {
304
+ return updateGroupingAction(state, payload);
305
+ }
298
306
  /**
299
307
  * Update row preview
300
308
  */
@@ -0,0 +1,17 @@
1
+ import { Dispatch } from "react";
2
+ import { AuthAction, AuthContextProps } from "../../authentication/auth/types";
3
+ import { AuthenticationAction, AuthenticationContextProps } from "../../authentication/authentication/types";
4
+ import { CredentialsAction, CredentialsContextProps } from "../../authentication/credentials/types";
5
+ import { TokenAction, TokenContextProps } from "../../authentication/token/types";
6
+ export interface SessionReducer {
7
+ authenticationReducer: AuthenticationContextProps;
8
+ authReducer: Omit<AuthContextProps, "service">;
9
+ credentialsReducer: CredentialsContextProps;
10
+ tokenReducer: TokenContextProps;
11
+ }
12
+ export interface SessionDispatch {
13
+ authDispatch: Dispatch<AuthAction> | null;
14
+ authenticationDispatch: Dispatch<AuthenticationAction> | null;
15
+ credentialsDispatch: Dispatch<CredentialsAction> | null;
16
+ tokenDispatch: Dispatch<TokenAction> | null;
17
+ }
@@ -0,0 +1,4 @@
1
+ import { AuthState } from "../authentication/auth/types";
2
+ import { AuthenticationState } from "../authentication/authentication/types";
3
+ export declare const AUTH_STATE: AuthState;
4
+ export declare const AUTHENTICATION_STATE: AuthenticationState;
@@ -0,0 +1,12 @@
1
+ import { DEFAULT_AUTH_STATE } from "../authentication/auth/constants";
2
+ import { AUTH_STATUS } from "../authentication/auth/types";
3
+ import { DEFAULT_AUTHENTICATION_STATE } from "../authentication/authentication/constants";
4
+ import { AUTHENTICATION_STATUS, } from "../authentication/authentication/types";
5
+ export const AUTH_STATE = {
6
+ ...DEFAULT_AUTH_STATE,
7
+ status: AUTH_STATUS.SETTLED,
8
+ };
9
+ export const AUTHENTICATION_STATE = {
10
+ ...DEFAULT_AUTHENTICATION_STATE,
11
+ status: AUTHENTICATION_STATUS.SETTLED,
12
+ };
@@ -0,0 +1,3 @@
1
+ import { Service } from "../../authentication/auth/types";
2
+ import { SessionReducer } from "../common/types";
3
+ export declare const useGoogleSignInService: (reducer: SessionReducer) => Service;
@@ -0,0 +1,36 @@
1
+ import { useRouter } from "next/router";
2
+ import { useCallback } from "react";
3
+ import { useProviders } from "../../../hooks/authentication/providers/useProviders";
4
+ import { service } from "../service/service";
5
+ export const useGoogleSignInService = (reducer) => {
6
+ const { findProvider } = useProviders();
7
+ const { basePath } = useRouter();
8
+ const { authenticationReducer: { authenticationDispatch }, authReducer: { authDispatch }, credentialsReducer: { credentialsDispatch }, tokenReducer: { tokenDispatch }, } = reducer;
9
+ const onLogin = useCallback((providerId) => {
10
+ const provider = findProvider(providerId);
11
+ if (!provider)
12
+ return;
13
+ service.login(provider, {
14
+ authDispatch,
15
+ authenticationDispatch,
16
+ tokenDispatch,
17
+ });
18
+ }, [authDispatch, authenticationDispatch, findProvider, tokenDispatch]);
19
+ const onLogout = useCallback((options) => {
20
+ service.logout({
21
+ authDispatch,
22
+ authenticationDispatch,
23
+ credentialsDispatch,
24
+ tokenDispatch,
25
+ });
26
+ // Request page reload, ensuring that the entity detail page is re-initialized with the correct state and associated data.
27
+ location.href = options?.callbackUrl || basePath;
28
+ }, [
29
+ authDispatch,
30
+ authenticationDispatch,
31
+ basePath,
32
+ credentialsDispatch,
33
+ tokenDispatch,
34
+ ]);
35
+ return { requestLogin: onLogin, requestLogout: onLogout };
36
+ };
@@ -0,0 +1,14 @@
1
+ export interface GoogleProfile {
2
+ email: string;
3
+ email_verified: boolean;
4
+ family_name: string;
5
+ given_name: string;
6
+ hd: string;
7
+ locale: string;
8
+ name: string;
9
+ picture: string;
10
+ sub: string;
11
+ }
12
+ export interface TokenSetParameters {
13
+ access_token: string;
14
+ }
@@ -0,0 +1,8 @@
1
+ import { UserProfile } from "../../authentication/authentication/types";
2
+ import { GoogleProfile } from "./types";
3
+ /**
4
+ * Returns user profile from google response.
5
+ * @param profile - Google response.
6
+ * @returns user profile.
7
+ */
8
+ export declare function mapProfile(profile: GoogleProfile): UserProfile;
@@ -0,0 +1,25 @@
1
+ import { GOOGLE_SIGN_IN_PROVIDER_ID } from "../service/constants";
2
+ /**
3
+ * Returns full name, from given and family name.
4
+ * @param profile - Google response.
5
+ * @returns full name.
6
+ */
7
+ function getFullName(profile) {
8
+ const { family_name: lastName = "", given_name: firstName = "" } = profile;
9
+ return `${firstName} ${lastName}`.trim();
10
+ }
11
+ /**
12
+ * Returns user profile from google response.
13
+ * @param profile - Google response.
14
+ * @returns user profile.
15
+ */
16
+ export function mapProfile(profile) {
17
+ const { email, picture: image } = profile;
18
+ const name = getFullName(profile);
19
+ return {
20
+ email,
21
+ id: GOOGLE_SIGN_IN_PROVIDER_ID,
22
+ image,
23
+ name,
24
+ };
25
+ }
@@ -0,0 +1,2 @@
1
+ import { GoogleSignInAuthenticationProviderProps } from "./types";
2
+ export declare function GoogleSignInAuthenticationProvider({ children, SessionController, timeout, }: GoogleSignInAuthenticationProviderProps): JSX.Element;