@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.
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +22 -0
- package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.d.ts +2 -0
- package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.js +29 -0
- package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.d.ts +6 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.d.ts +2 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.js +17 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.d.ts +5 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.js +12 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.d.ts +4 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.js +1 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.d.ts +15 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.js +53 -0
- package/lib/components/ComponentCreator/ComponentCreator.js +2 -3
- package/lib/components/Detail/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.js +2 -0
- package/lib/components/Detail/components/Table/components/TableRows/tableRows.js +1 -15
- package/lib/components/Export/components/ExportForm/components/ExportFileSummaryForm/exportFileSummaryForm.js +9 -10
- package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.js +2 -2
- package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.js +1 -1
- package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.js +8 -3
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.d.ts +2 -1
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.js +17 -14
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.d.ts +3 -4
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.js +15 -24
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.js +2 -2
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.d.ts +2 -0
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.js +14 -0
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.js +3 -2
- package/lib/components/Layout/components/Header/header.js +1 -1
- package/lib/components/Links/components/Link/components/ExploreViewLink/exploreViewLink.js +23 -12
- package/lib/components/Login/components/Button/button.d.ts +2 -0
- package/lib/components/Login/components/Button/button.js +6 -0
- package/lib/components/Login/components/Button/button.styles.d.ts +5 -0
- package/lib/components/Login/components/Button/button.styles.js +11 -0
- package/lib/components/Login/components/Button/constants.d.ts +2 -0
- package/lib/components/Login/components/Button/constants.js +6 -0
- package/lib/components/Login/components/Button/types.d.ts +3 -0
- package/lib/components/Login/components/Button/types.js +1 -0
- package/lib/components/Login/login.d.ts +2 -9
- package/lib/components/Login/login.js +9 -10
- package/lib/components/Login/types.d.ts +10 -0
- package/lib/components/Login/types.js +1 -0
- package/lib/components/Table/common/columnDef.js +1 -0
- package/lib/components/Table/common/gridTable.styles.js +5 -11
- package/lib/components/Table/common/utils.d.ts +3 -29
- package/lib/components/Table/common/utils.js +25 -60
- package/lib/components/Table/components/TableBody/hooks/virtualizer/constants.d.ts +3 -0
- package/lib/components/Table/components/TableBody/hooks/virtualizer/constants.js +3 -0
- package/lib/components/Table/components/TableBody/hooks/virtualizer/hook.d.ts +8 -0
- package/lib/components/Table/components/TableBody/hooks/virtualizer/hook.js +18 -0
- package/lib/components/Table/components/TableBody/hooks/virtualizer/types.d.ts +4 -0
- package/lib/components/Table/components/TableBody/hooks/virtualizer/types.js +1 -0
- package/lib/components/Table/components/TableBody/tableBody.d.ts +3 -2
- package/lib/components/Table/components/TableBody/tableBody.js +7 -28
- package/lib/components/Table/components/TableBody/utils.d.ts +12 -0
- package/lib/components/Table/components/TableBody/utils.js +17 -0
- package/lib/components/Table/components/TableCell/components/CollapsableCell/collapsableCell.d.ts +3 -1
- package/lib/components/Table/components/TableCell/components/CollapsableCell/collapsableCell.js +6 -14
- package/lib/components/Table/components/TableFeatures/ColumnGrouping/utils.d.ts +28 -0
- package/lib/components/Table/components/TableFeatures/ColumnGrouping/utils.js +52 -0
- package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.d.ts +21 -0
- package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.js +37 -0
- package/lib/components/Table/components/TableFeatures/RowSorting/utils.d.ts +29 -0
- package/lib/components/Table/components/TableFeatures/RowSorting/utils.js +68 -0
- package/lib/components/Table/components/TableHead/tableHead.d.ts +2 -6
- package/lib/components/Table/components/TableHead/tableHead.js +6 -4
- package/lib/components/Table/components/TableHead/types.d.ts +6 -0
- package/lib/components/Table/components/TableHead/types.js +1 -0
- package/lib/components/Table/components/TableHead/utils.d.ts +19 -0
- package/lib/components/Table/components/TableHead/utils.js +34 -0
- package/lib/components/Table/components/TableRow/tableRow.styles.d.ts +1 -0
- package/lib/components/Table/components/TableRow/tableRow.styles.js +14 -2
- package/lib/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.d.ts +3 -2
- package/lib/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.js +8 -4
- package/lib/components/Table/components/TableRows/components/CollapsableRows/hook.d.ts +9 -0
- package/lib/components/Table/components/TableRows/components/CollapsableRows/hook.js +17 -0
- package/lib/components/Table/components/TableRows/tableRows.d.ts +3 -3
- package/lib/components/Table/components/TableRows/tableRows.js +9 -5
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.d.ts +3 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.js +26 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.styles.d.ts +2 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.styles.js +16 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.d.ts +3 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.js +12 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.d.ts +7 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.js +1 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.d.ts +4 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.js +13 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/types.d.ts +4 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/types.js +1 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.d.ts +17 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.js +36 -0
- package/lib/components/Table/components/TableToolbar/components/RowSelection/components/DropdownMenu/dropdownMenu.d.ts +2 -3
- package/lib/components/Table/components/TableToolbar/components/RowSelection/components/DropdownMenu/dropdownMenu.js +3 -11
- package/lib/components/Table/components/TableToolbar/tableToolbar.js +4 -2
- package/lib/components/Table/features/RowPosition/constants.js +2 -2
- package/lib/components/Table/features/RowPosition/utils.d.ts +2 -2
- package/lib/components/Table/features/RowPosition/utils.js +12 -5
- package/lib/components/Table/options/updater.d.ts +10 -0
- package/lib/components/Table/options/updater.js +24 -0
- package/lib/components/Table/table.js +22 -17
- package/lib/components/TableCreator/common/constants.d.ts +2 -2
- package/lib/components/TableCreator/common/constants.js +2 -1
- package/lib/components/TableCreator/common/utils.d.ts +5 -2
- package/lib/components/TableCreator/common/utils.js +11 -4
- package/lib/components/TableCreator/options/expanded/constants.d.ts +2 -0
- package/lib/components/TableCreator/options/expanded/constants.js +6 -0
- package/lib/components/TableCreator/options/expanded/hook.d.ts +2 -0
- package/lib/components/TableCreator/options/expanded/hook.js +4 -0
- package/lib/components/TableCreator/options/grouping/constants.d.ts +2 -0
- package/lib/components/TableCreator/options/grouping/constants.js +5 -0
- package/lib/components/TableCreator/options/grouping/hook.d.ts +2 -0
- package/lib/components/TableCreator/options/grouping/hook.js +9 -0
- package/lib/components/TableCreator/options/hook.d.ts +2 -0
- package/lib/components/TableCreator/options/hook.js +25 -0
- package/lib/components/TableCreator/options/rowSelection/constants.d.ts +2 -0
- package/lib/components/TableCreator/options/rowSelection/constants.js +5 -0
- package/lib/components/TableCreator/options/rowSelection/hook.d.ts +2 -0
- package/lib/components/TableCreator/options/rowSelection/hook.js +4 -0
- package/lib/components/TableCreator/options/sorting/constants.d.ts +2 -0
- package/lib/components/TableCreator/options/sorting/constants.js +5 -0
- package/lib/components/TableCreator/options/sorting/hook.d.ts +2 -0
- package/lib/components/TableCreator/options/sorting/hook.js +4 -0
- package/lib/components/TableCreator/tableCreator.d.ts +3 -5
- package/lib/components/TableCreator/tableCreator.js +4 -2
- package/lib/components/common/Banner/components/SessionTimeout/sessionTimeout.js +1 -1
- package/lib/components/common/CustomIcon/common/entities.d.ts +1 -4
- package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.d.ts +2 -2
- package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.js +1 -1
- package/lib/components/common/DropdownMenu/dropdownMenu.d.ts +2 -3
- package/lib/components/common/DropdownMenu/dropdownMenu.js +7 -7
- package/lib/components/common/DropdownMenu/dropdownMenu.styles.d.ts +1 -1
- package/lib/components/common/DropdownMenu/dropdownMenu.styles.js +1 -1
- package/lib/components/common/Menu/hooks/useMenu.d.ts +5 -6
- package/lib/config/entities.d.ts +28 -29
- package/lib/config/utils.d.ts +0 -7
- package/lib/config/utils.js +0 -12
- package/lib/hooks/authentication/auth/useAuthReducer.d.ts +2 -0
- package/lib/hooks/authentication/auth/useAuthReducer.js +8 -0
- package/lib/hooks/authentication/authentication/useAuthenticationReducer.d.ts +2 -0
- package/lib/hooks/authentication/authentication/useAuthenticationReducer.js +8 -0
- package/lib/hooks/authentication/config/useAuthenticationConfig.d.ts +6 -0
- package/lib/hooks/authentication/config/useAuthenticationConfig.js +9 -0
- package/lib/hooks/authentication/credentials/useCredentialsReducer.d.ts +2 -0
- package/lib/hooks/authentication/credentials/useCredentialsReducer.js +7 -0
- package/lib/hooks/authentication/profile/types.d.ts +5 -0
- package/lib/hooks/authentication/profile/types.js +1 -0
- package/lib/hooks/authentication/profile/useProfile.d.ts +6 -0
- package/lib/hooks/authentication/profile/useProfile.js +15 -0
- package/lib/hooks/authentication/providers/types.d.ts +6 -0
- package/lib/hooks/authentication/providers/types.js +1 -0
- package/lib/hooks/authentication/providers/useProviders.d.ts +6 -0
- package/lib/hooks/authentication/providers/useProviders.js +14 -0
- package/lib/hooks/authentication/session/useSessionActive.d.ts +12 -0
- package/lib/hooks/authentication/session/useSessionActive.js +36 -0
- package/lib/hooks/authentication/session/useSessionCallbackUrl.d.ts +4 -0
- package/lib/hooks/authentication/session/useSessionCallbackUrl.js +20 -0
- package/lib/hooks/authentication/session/useSessionIdleTimer.d.ts +6 -0
- package/lib/hooks/authentication/session/useSessionIdleTimer.js +8 -0
- package/lib/hooks/{useSessionTimeout.js → authentication/session/useSessionTimeout.js} +2 -2
- package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.d.ts +0 -1
- package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.js +6 -9
- package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.js +3 -4
- package/lib/hooks/authentication/token/types.d.ts +4 -0
- package/lib/hooks/authentication/token/types.js +1 -0
- package/lib/hooks/authentication/token/useToken.d.ts +2 -0
- package/lib/hooks/authentication/token/useToken.js +5 -0
- package/lib/hooks/authentication/token/useTokenReducer.d.ts +7 -0
- package/lib/hooks/authentication/token/useTokenReducer.js +12 -0
- package/lib/hooks/useEntityList.js +2 -2
- package/lib/hooks/useFetchEntity.js +4 -3
- package/lib/hooks/useFileManifest/useFetchFilesFacets.js +2 -3
- package/lib/hooks/useFileManifest/useFetchSummary.js +2 -3
- package/lib/hooks/useRequestFileLocation.js +2 -3
- package/lib/hooks/useRouteHistory.d.ts +14 -0
- package/lib/hooks/useRouteHistory.js +40 -0
- package/lib/hooks/useRouteRoot.d.ts +1 -0
- package/lib/hooks/useRouteRoot.js +8 -0
- package/lib/hooks/useSummary.js +3 -3
- package/lib/providers/authentication/auth/actions.d.ts +8 -0
- package/lib/providers/authentication/auth/actions.js +12 -0
- package/lib/providers/authentication/auth/constants.d.ts +2 -0
- package/lib/providers/authentication/auth/constants.js +5 -0
- package/lib/providers/authentication/auth/context.d.ts +2 -0
- package/lib/providers/authentication/auth/context.js +7 -0
- package/lib/providers/authentication/auth/dispatch.d.ts +23 -0
- package/lib/providers/authentication/auth/dispatch.js +43 -0
- package/lib/providers/authentication/auth/hook.d.ts +6 -0
- package/lib/providers/authentication/auth/hook.js +9 -0
- package/lib/providers/authentication/auth/reducer.d.ts +8 -0
- package/lib/providers/authentication/auth/reducer.js +24 -0
- package/lib/providers/authentication/auth/types.d.ts +48 -0
- package/lib/providers/authentication/auth/types.js +11 -0
- package/lib/providers/authentication/authentication/actions.d.ts +8 -0
- package/lib/providers/authentication/authentication/actions.js +12 -0
- package/lib/providers/authentication/authentication/constants.d.ts +2 -0
- package/lib/providers/authentication/authentication/constants.js +5 -0
- package/lib/providers/authentication/authentication/context.d.ts +2 -0
- package/lib/providers/authentication/authentication/context.js +6 -0
- package/lib/providers/authentication/authentication/dispatch.d.ts +22 -0
- package/lib/providers/authentication/authentication/dispatch.js +42 -0
- package/lib/providers/authentication/authentication/hook.d.ts +6 -0
- package/lib/providers/authentication/authentication/hook.js +9 -0
- package/lib/providers/authentication/authentication/reducer.d.ts +9 -0
- package/lib/providers/authentication/authentication/reducer.js +25 -0
- package/lib/providers/authentication/authentication/types.d.ts +47 -0
- package/lib/providers/authentication/authentication/types.js +11 -0
- package/lib/providers/authentication/authentication/utils.d.ts +12 -0
- package/lib/providers/authentication/authentication/utils.js +18 -0
- package/lib/providers/authentication/common/types.d.ts +1 -0
- package/lib/providers/authentication/common/types.js +1 -0
- package/lib/providers/authentication/common/utils.d.ts +6 -0
- package/lib/providers/authentication/common/utils.js +11 -0
- package/lib/providers/authentication/credentials/actions.d.ts +8 -0
- package/lib/providers/authentication/credentials/actions.js +12 -0
- package/lib/providers/authentication/credentials/constants.d.ts +2 -0
- package/lib/providers/authentication/credentials/constants.js +3 -0
- package/lib/providers/authentication/credentials/context.d.ts +2 -0
- package/lib/providers/authentication/credentials/context.js +6 -0
- package/lib/providers/authentication/credentials/dispatch.d.ts +12 -0
- package/lib/providers/authentication/credentials/dispatch.js +22 -0
- package/lib/providers/authentication/credentials/hook.d.ts +6 -0
- package/lib/providers/authentication/credentials/hook.js +9 -0
- package/lib/providers/authentication/credentials/reducer.d.ts +8 -0
- package/lib/providers/authentication/credentials/reducer.js +22 -0
- package/lib/providers/authentication/credentials/types.d.ts +24 -0
- package/lib/providers/authentication/credentials/types.js +5 -0
- package/lib/providers/authentication/terra/context.d.ts +2 -0
- package/lib/providers/authentication/terra/context.js +7 -0
- package/lib/providers/authentication/terra/hook.d.ts +6 -0
- package/lib/providers/authentication/terra/hook.js +9 -0
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.d.ts +2 -0
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.js +7 -0
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.d.ts +3 -7
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.js +1 -5
- package/lib/providers/authentication/terra/hooks/useFetchProfiles.d.ts +13 -0
- package/lib/providers/authentication/terra/hooks/useFetchProfiles.js +31 -0
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.js +11 -6
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.js +11 -6
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.js +11 -6
- package/lib/providers/authentication/terra/hooks/utils.d.ts +16 -0
- package/lib/providers/authentication/terra/hooks/utils.js +19 -0
- package/lib/providers/authentication/terra/provider.d.ts +2 -0
- package/lib/providers/authentication/terra/provider.js +42 -0
- package/lib/providers/authentication/terra/types.d.ts +20 -0
- package/lib/providers/authentication/terra/types.js +6 -0
- package/lib/providers/authentication/terra/utils.d.ts +19 -0
- package/lib/providers/authentication/terra/utils.js +36 -0
- package/lib/providers/authentication/token/constants.d.ts +2 -0
- package/lib/providers/authentication/token/constants.js +4 -0
- package/lib/providers/authentication/token/dispatch.d.ts +12 -0
- package/lib/providers/authentication/token/dispatch.js +22 -0
- package/lib/providers/authentication/token/reducer.d.ts +8 -0
- package/lib/providers/authentication/token/reducer.js +22 -0
- package/lib/providers/authentication/token/types.d.ts +28 -0
- package/lib/providers/authentication/token/types.js +5 -0
- package/lib/providers/exploreState/actions/updateGrouping/action.d.ts +10 -0
- package/lib/providers/exploreState/actions/updateGrouping/action.js +16 -0
- package/lib/providers/exploreState/actions/updateGrouping/dispatch.d.ts +7 -0
- package/lib/providers/exploreState/actions/updateGrouping/dispatch.js +12 -0
- package/lib/providers/exploreState/actions/updateGrouping/types.d.ts +9 -0
- package/lib/providers/exploreState/actions/updateGrouping/types.js +1 -0
- package/lib/providers/exploreState/actions/updateGrouping/utils.d.ts +10 -0
- package/lib/providers/exploreState/actions/updateGrouping/utils.js +26 -0
- package/lib/providers/exploreState/entities.d.ts +3 -4
- package/lib/providers/exploreState/initializer/utils.js +41 -8
- package/lib/providers/exploreState/payloads/entities.d.ts +2 -1
- package/lib/providers/exploreState/utils.d.ts +6 -4
- package/lib/providers/exploreState/utils.js +7 -4
- package/lib/providers/exploreState.d.ts +3 -1
- package/lib/providers/exploreState.js +18 -10
- package/lib/providers/googleSignInAuthentication/common/types.d.ts +17 -0
- package/lib/providers/googleSignInAuthentication/common/types.js +1 -0
- package/lib/providers/googleSignInAuthentication/constants.d.ts +4 -0
- package/lib/providers/googleSignInAuthentication/constants.js +12 -0
- package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.d.ts +3 -0
- package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.js +36 -0
- package/lib/providers/googleSignInAuthentication/profile/types.d.ts +14 -0
- package/lib/providers/googleSignInAuthentication/profile/types.js +1 -0
- package/lib/providers/googleSignInAuthentication/profile/utils.d.ts +8 -0
- package/lib/providers/googleSignInAuthentication/profile/utils.js +25 -0
- package/lib/providers/googleSignInAuthentication/provider.d.ts +2 -0
- package/lib/providers/googleSignInAuthentication/provider.js +40 -0
- package/lib/providers/googleSignInAuthentication/service/constants.d.ts +4 -0
- package/lib/providers/googleSignInAuthentication/service/constants.js +9 -0
- package/lib/providers/googleSignInAuthentication/service/service.d.ts +6 -0
- package/lib/providers/googleSignInAuthentication/service/service.js +43 -0
- package/lib/providers/googleSignInAuthentication/types.d.ts +6 -0
- package/lib/providers/googleSignInAuthentication/types.js +1 -0
- package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.d.ts +2 -0
- package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.js +14 -0
- package/lib/providers/nextAuthAuthentication/provider.d.ts +2 -0
- package/lib/providers/nextAuthAuthentication/provider.js +30 -0
- package/lib/providers/nextAuthAuthentication/service/service.d.ts +6 -0
- package/lib/providers/nextAuthAuthentication/service/service.js +12 -0
- package/lib/providers/nextAuthAuthentication/types.d.ts +8 -0
- package/lib/providers/nextAuthAuthentication/types.js +1 -0
- package/lib/routes/constants.d.ts +3 -0
- package/lib/routes/constants.js +3 -0
- package/lib/styles/common/mui/button.d.ts +3 -0
- package/lib/styles/common/mui/button.js +17 -0
- package/lib/styles/common/mui/paper.d.ts +2 -0
- package/lib/styles/common/mui/paper.js +9 -0
- package/lib/styles/common/mui/popover.d.ts +3 -0
- package/lib/styles/common/mui/popover.js +10 -0
- package/lib/theme/common/entities.d.ts +6 -0
- package/lib/theme/common/entities.js +1 -0
- package/lib/views/ExploreView/exploreView.js +2 -2
- package/lib/views/LoginView/loginView.d.ts +5 -1
- package/lib/views/LoginView/loginView.js +6 -4
- package/package.json +3 -2
- package/src/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.tsx +38 -0
- package/src/components/Authentication/components/SessionController/components/GoogleSessionController/types.ts +7 -0
- package/src/components/Authentication/components/SessionController/components/NextSessionController/SessionController.tsx +23 -0
- package/src/components/Authentication/components/SessionController/components/NextSessionController/constants.ts +21 -0
- package/src/components/Authentication/components/SessionController/components/NextSessionController/types.ts +5 -0
- package/src/components/Authentication/components/SessionController/components/NextSessionController/utils.ts +74 -0
- package/src/components/ComponentCreator/ComponentCreator.tsx +4 -3
- package/src/components/Detail/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.tsx +2 -0
- package/src/components/Detail/components/Table/components/TableRows/tableRows.tsx +3 -18
- package/src/components/Export/components/ExportForm/components/ExportFileSummaryForm/exportFileSummaryForm.tsx +28 -32
- package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.tsx +4 -4
- package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.tsx +1 -1
- package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.tsx +9 -6
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.tsx +27 -25
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.ts +2 -2
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.tsx +18 -42
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.ts +19 -0
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.ts +3 -2
- package/src/components/Layout/components/Header/header.tsx +1 -1
- package/src/components/Links/components/Link/components/ExploreViewLink/exploreViewLink.tsx +27 -13
- package/src/components/Login/components/Button/button.styles.ts +12 -0
- package/src/components/Login/components/Button/button.tsx +8 -0
- package/src/components/Login/components/Button/constants.ts +8 -0
- package/src/components/Login/components/Button/types.ts +4 -0
- package/src/components/Login/login.tsx +28 -28
- package/src/components/Login/types.ts +11 -0
- package/src/components/Table/common/columnDef.ts +1 -0
- package/src/components/Table/common/gridTable.styles.ts +5 -11
- package/src/components/Table/common/utils.ts +44 -107
- package/src/components/Table/components/TableBody/hooks/virtualizer/constants.ts +3 -0
- package/src/components/Table/components/TableBody/hooks/virtualizer/hook.ts +23 -0
- package/src/components/Table/components/TableBody/hooks/virtualizer/types.ts +5 -0
- package/src/components/Table/components/TableBody/tableBody.tsx +14 -30
- package/src/components/Table/components/TableBody/utils.ts +21 -0
- package/src/components/Table/components/TableCell/components/CollapsableCell/collapsableCell.tsx +14 -15
- package/src/components/Table/components/TableFeatures/ColumnGrouping/utils.ts +70 -0
- package/src/components/Table/components/TableFeatures/ColumnVisibility/utils.ts +52 -0
- package/src/components/Table/components/TableFeatures/RowSorting/utils.ts +87 -0
- package/src/components/Table/components/TableHead/tableHead.tsx +21 -29
- package/src/components/Table/components/TableHead/types.ts +7 -0
- package/src/components/Table/components/TableHead/utils.ts +42 -0
- package/src/components/Table/components/TableRow/tableRow.styles.ts +19 -2
- package/src/components/Table/components/TableRows/components/CollapsableRows/collapsableRows.tsx +8 -2
- package/src/components/Table/components/TableRows/components/CollapsableRows/hook.ts +20 -0
- package/src/components/Table/components/TableRows/tableRows.tsx +18 -15
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.styles.ts +17 -0
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.tsx +54 -0
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.tsx +28 -0
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.ts +8 -0
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/constants.ts +17 -0
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/types.ts +5 -0
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/utils.ts +45 -0
- package/src/components/Table/components/TableToolbar/components/RowSelection/components/DropdownMenu/dropdownMenu.tsx +7 -20
- package/src/components/Table/components/TableToolbar/tableToolbar.tsx +8 -2
- package/src/components/Table/features/RowPosition/constants.ts +2 -2
- package/src/components/Table/features/RowPosition/utils.ts +10 -5
- package/src/components/Table/options/updater.ts +29 -0
- package/src/components/Table/table.tsx +43 -25
- package/src/components/TableCreator/common/constants.ts +4 -6
- package/src/components/TableCreator/common/utils.ts +14 -7
- package/src/components/TableCreator/options/expanded/constants.ts +14 -0
- package/src/components/TableCreator/options/expanded/hook.ts +6 -0
- package/src/components/TableCreator/options/grouping/constants.ts +6 -0
- package/src/components/TableCreator/options/grouping/hook.ts +17 -0
- package/src/components/TableCreator/options/hook.ts +31 -0
- package/src/components/TableCreator/options/rowSelection/constants.ts +10 -0
- package/src/components/TableCreator/options/rowSelection/hook.ts +8 -0
- package/src/components/TableCreator/options/sorting/constants.ts +10 -0
- package/src/components/TableCreator/options/sorting/hook.ts +6 -0
- package/src/components/TableCreator/tableCreator.tsx +4 -11
- package/src/components/common/Banner/components/SessionTimeout/sessionTimeout.tsx +1 -1
- package/src/components/common/CustomIcon/common/entities.ts +1 -4
- package/src/components/common/CustomIcon/components/GoogleIcon/googleIcon.tsx +3 -4
- package/src/components/common/DropdownMenu/dropdownMenu.styles.ts +1 -1
- package/src/components/common/DropdownMenu/dropdownMenu.tsx +19 -17
- package/src/components/common/Menu/hooks/useMenu.ts +8 -9
- package/src/config/entities.ts +30 -34
- package/src/config/utils.ts +0 -14
- package/src/hooks/authentication/auth/useAuthReducer.ts +16 -0
- package/src/hooks/authentication/authentication/useAuthenticationReducer.ts +16 -0
- package/src/hooks/authentication/config/useAuthenticationConfig.ts +13 -0
- package/src/hooks/authentication/credentials/useCredentialsReducer.ts +13 -0
- package/src/hooks/authentication/profile/types.ts +9 -0
- package/src/hooks/authentication/profile/useProfile.ts +21 -0
- package/src/hooks/authentication/providers/types.ts +7 -0
- package/src/hooks/authentication/providers/useProviders.ts +23 -0
- package/src/hooks/authentication/session/useSessionActive.ts +51 -0
- package/src/hooks/authentication/session/useSessionCallbackUrl.ts +25 -0
- package/src/hooks/authentication/session/useSessionIdleTimer.ts +10 -0
- package/src/hooks/{useSessionTimeout.ts → authentication/session/useSessionTimeout.ts} +2 -2
- package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.ts +8 -13
- package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.ts +3 -4
- package/src/hooks/authentication/token/types.ts +5 -0
- package/src/hooks/authentication/token/useToken.ts +9 -0
- package/src/hooks/authentication/token/useTokenReducer.ts +19 -0
- package/src/hooks/useEntityList.ts +2 -2
- package/src/hooks/useFetchEntity.tsx +3 -3
- package/src/hooks/useFileManifest/useFetchFilesFacets.ts +2 -3
- package/src/hooks/useFileManifest/useFetchSummary.ts +2 -3
- package/src/hooks/useRequestFileLocation.ts +2 -3
- package/src/hooks/useRouteHistory.ts +65 -0
- package/src/hooks/useRouteRoot.ts +11 -0
- package/src/hooks/useSummary.ts +3 -3
- package/src/providers/authentication/auth/actions.ts +17 -0
- package/src/providers/authentication/auth/constants.ts +6 -0
- package/src/providers/authentication/auth/context.ts +9 -0
- package/src/providers/authentication/auth/dispatch.ts +58 -0
- package/src/providers/authentication/auth/hook.ts +11 -0
- package/src/providers/authentication/auth/reducer.ts +25 -0
- package/src/providers/authentication/auth/types.ts +63 -0
- package/src/providers/authentication/authentication/actions.ts +17 -0
- package/src/providers/authentication/authentication/constants.ts +6 -0
- package/src/providers/authentication/authentication/context.ts +8 -0
- package/src/providers/authentication/authentication/dispatch.ts +55 -0
- package/src/providers/authentication/authentication/hook.ts +11 -0
- package/src/providers/authentication/authentication/reducer.ts +34 -0
- package/src/providers/authentication/authentication/types.ts +64 -0
- package/src/providers/authentication/authentication/utils.ts +25 -0
- package/src/providers/authentication/common/types.ts +1 -0
- package/src/providers/authentication/common/utils.ts +11 -0
- package/src/providers/authentication/credentials/actions.ts +17 -0
- package/src/providers/authentication/credentials/constants.ts +5 -0
- package/src/providers/authentication/credentials/context.ts +8 -0
- package/src/providers/authentication/credentials/dispatch.ts +31 -0
- package/src/providers/authentication/credentials/hook.ts +11 -0
- package/src/providers/authentication/credentials/reducer.ts +30 -0
- package/src/providers/authentication/credentials/types.ts +33 -0
- package/src/providers/authentication/terra/context.ts +16 -0
- package/src/providers/authentication/terra/hook.ts +11 -0
- package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.ts +9 -0
- package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.ts +1 -7
- package/src/providers/authentication/terra/hooks/useFetchProfiles.ts +61 -0
- package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.ts +18 -7
- package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.ts +18 -7
- package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.ts +18 -7
- package/src/providers/authentication/terra/hooks/utils.ts +29 -0
- package/src/providers/authentication/terra/provider.tsx +60 -0
- package/src/providers/authentication/terra/types.ts +23 -0
- package/src/providers/authentication/terra/utils.ts +49 -0
- package/src/providers/authentication/token/constants.ts +6 -0
- package/src/providers/authentication/token/dispatch.ts +29 -0
- package/src/providers/authentication/token/reducer.ts +26 -0
- package/src/providers/authentication/token/types.ts +36 -0
- package/src/providers/exploreState/actions/updateGrouping/action.ts +26 -0
- package/src/providers/exploreState/actions/updateGrouping/dispatch.ts +16 -0
- package/src/providers/exploreState/actions/updateGrouping/types.ts +11 -0
- package/src/providers/exploreState/actions/updateGrouping/utils.ts +33 -0
- package/src/providers/exploreState/entities.ts +3 -3
- package/src/providers/exploreState/initializer/utils.ts +58 -10
- package/src/providers/exploreState/payloads/entities.ts +2 -0
- package/src/providers/exploreState/utils.ts +10 -7
- package/src/providers/exploreState.tsx +32 -10
- package/src/providers/googleSignInAuthentication/common/types.ts +28 -0
- package/src/providers/googleSignInAuthentication/constants.ts +17 -0
- package/src/providers/googleSignInAuthentication/hooks/useGoogleSignInService.ts +53 -0
- package/src/providers/googleSignInAuthentication/profile/types.ts +15 -0
- package/src/providers/googleSignInAuthentication/profile/utils.ts +29 -0
- package/src/providers/googleSignInAuthentication/provider.tsx +53 -0
- package/src/providers/googleSignInAuthentication/service/constants.ts +16 -0
- package/src/providers/googleSignInAuthentication/service/service.ts +68 -0
- package/src/providers/googleSignInAuthentication/types.ts +7 -0
- package/src/providers/nextAuthAuthentication/hooks/useNextAuthService.ts +26 -0
- package/src/providers/nextAuthAuthentication/provider.tsx +42 -0
- package/src/providers/nextAuthAuthentication/service/service.ts +14 -0
- package/src/providers/nextAuthAuthentication/types.ts +9 -0
- package/src/routes/constants.ts +3 -0
- package/src/styles/common/mui/button.ts +20 -0
- package/src/styles/common/mui/paper.ts +11 -0
- package/src/styles/common/mui/popover.ts +19 -0
- package/src/theme/common/entities.ts +7 -0
- package/src/views/ExploreView/exploreView.tsx +1 -3
- package/src/views/LoginView/loginView.tsx +15 -9
- package/tests/getProfileStatus.test.ts +290 -0
- package/tests/terraProfileProvider.test.tsx +121 -0
- package/tests/transformRoute.test.ts +21 -0
- package/tests/useRouteHistory.test.ts +97 -0
- package/tests/useSessionActive.test.ts +107 -0
- package/types/data-explorer-ui.d.ts +8 -1
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.d.ts +0 -5
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.js +0 -29
- package/lib/components/Login/login.stories.d.ts +0 -6
- package/lib/components/Login/login.stories.js +0 -31
- package/lib/components/TableCreator/common/entities.d.ts +0 -5
- package/lib/components/common/Button/components/LoginButton/loginButton.d.ts +0 -3
- package/lib/components/common/Button/components/LoginButton/loginButton.js +0 -6
- package/lib/components/common/Button/components/LoginButton/loginButton.styles.d.ts +0 -7
- package/lib/components/common/Button/components/LoginButton/loginButton.styles.js +0 -11
- package/lib/hooks/useAuthentication/useAuthentication.d.ts +0 -6
- package/lib/hooks/useAuthentication/useAuthentication.js +0 -9
- package/lib/hooks/useAuthentication/useAuthenticationComplete.d.ts +0 -6
- package/lib/hooks/useAuthentication/useAuthenticationComplete.js +0 -55
- package/lib/hooks/useAuthentication/useAuthenticationStatus.d.ts +0 -20
- package/lib/hooks/useAuthentication/useAuthenticationStatus.js +0 -32
- package/lib/hooks/useAuthentication/useFetchGoogleProfile.d.ts +0 -21
- package/lib/hooks/useAuthentication/useFetchGoogleProfile.js +0 -41
- package/lib/hooks/useAuthentication/useTokenClient.d.ts +0 -11
- package/lib/hooks/useAuthentication/useTokenClient.js +0 -29
- package/lib/hooks/useAuthenticationConfig.d.ts +0 -6
- package/lib/hooks/useAuthenticationConfig.js +0 -14
- package/lib/providers/authentication.d.ts +0 -51
- package/lib/providers/authentication.js +0 -110
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.tsx +0 -35
- package/src/components/Login/login.stories.tsx +0 -43
- package/src/components/TableCreator/common/entities.ts +0 -6
- package/src/components/common/Button/components/LoginButton/loginButton.styles.ts +0 -13
- package/src/components/common/Button/components/LoginButton/loginButton.tsx +0 -16
- package/src/hooks/useAuthentication/useAuthentication.tsx +0 -10
- package/src/hooks/useAuthentication/useAuthenticationComplete.ts +0 -66
- package/src/hooks/useAuthentication/useAuthenticationStatus.ts +0 -49
- package/src/hooks/useAuthentication/useFetchGoogleProfile.ts +0 -68
- package/src/hooks/useAuthentication/useTokenClient.ts +0 -54
- package/src/hooks/useAuthenticationConfig.ts +0 -18
- package/src/providers/authentication.tsx +0 -181
- package/tests/authentication.test.ts +0 -142
- package/tests/useAuthenticationStatus.test.ts +0 -155
- /package/lib/components/{TableCreator/common/entities.js → Authentication/components/SessionController/components/GoogleSessionController/types.js} +0 -0
- /package/lib/hooks/{useSessionTimeout.d.ts → authentication/session/useSessionTimeout.d.ts} +0 -0
- /package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.d.ts +0 -0
- /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.d.ts +0 -0
- /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.js +0 -0
- /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.d.ts +0 -0
- /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.d.ts +0 -0
- /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.d.ts +0 -0
- /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,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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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
|
|
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, {
|
|
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 = {} } = {} } = {}, },
|
|
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 `
|
|
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:
|
|
130
|
+
enableRowSelection: initEnableRowSelection(entity),
|
|
131
|
+
grouping: initGrouping(entity),
|
|
119
132
|
rowPreview: undefined,
|
|
120
133
|
rowSelection: {},
|
|
121
|
-
sorting:
|
|
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
|
-
*
|
|
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
|
-
* @
|
|
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
|
|
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
|
-
*
|
|
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
|
-
* @
|
|
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
|
|
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?.
|
|
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 {
|
|
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,
|
|
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 {
|
|
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,
|
|
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
|
|
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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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,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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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
|
+
}
|