@databiosphere/findable-ui 19.0.0 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/GoogleSessionController/types.js +1 -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/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/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 +18 -2
- package/lib/components/Table/common/columnIdentifier.d.ts +4 -0
- package/lib/components/Table/common/columnIdentifier.js +4 -0
- package/lib/components/Table/common/typeGuards.d.ts +11 -0
- package/lib/components/Table/common/typeGuards.js +8 -0
- package/lib/components/Table/common/utils.d.ts +1 -28
- package/lib/components/Table/common/utils.js +5 -88
- package/lib/components/Table/components/TableCell/common/utils.js +3 -3
- package/lib/components/Table/components/TableCell/components/RowSelectionCell/rowSelectionCell.d.ts +2 -5
- package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.d.ts +7 -18
- package/lib/components/Table/components/TableFeatures/ColumnVisibility/utils.js +20 -31
- package/lib/components/Table/components/TableHead/components/HeadSelectionCell/headSelectionCell.d.ts +2 -5
- package/lib/components/Table/components/TableHead/components/HeadSelectionCell/headSelectionCell.js +2 -2
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.js +5 -17
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/constants.d.ts +3 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/constants.js +10 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.d.ts +1 -1
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.js +22 -10
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.d.ts +1 -2
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/utils.d.ts +27 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/utils.js +45 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.d.ts +1 -3
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/constants.js +0 -10
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.d.ts +3 -13
- package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/utils.js +22 -27
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.d.ts +3 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.js +13 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.styles.d.ts +3 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.styles.js +11 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/constants.d.ts +2 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/constants.js +7 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.d.ts +3 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.js +22 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.styles.d.ts +2 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.styles.js +16 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/types.d.ts +4 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/types.js +1 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/utils.d.ts +26 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/utils.js +32 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/constants.d.ts +2 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/constants.js +3 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/types.d.ts +4 -0
- package/lib/components/Table/components/TableToolbar/components/ColumnVisibility/types.js +1 -0
- package/lib/components/Table/components/TableToolbar/tableToolbar.js +5 -12
- package/lib/components/Table/features/RowPosition/constants.js +5 -3
- package/lib/components/Table/features/RowPosition/types.d.ts +3 -0
- package/lib/components/Table/features/RowPosition/utils.d.ts +1 -7
- package/lib/components/Table/features/RowPosition/utils.js +0 -20
- package/lib/components/Table/features/RowPreview/constants.js +1 -1
- package/lib/components/Table/features/entities.d.ts +2 -2
- package/lib/components/Table/table.d.ts +2 -4
- package/lib/components/Table/table.js +9 -31
- package/lib/components/TableCreator/common/utils.js +1 -4
- package/lib/components/TableCreator/options/columnTrackSizing/typeGuards.d.ts +7 -0
- package/lib/components/TableCreator/options/columnTrackSizing/typeGuards.js +8 -0
- package/lib/components/TableCreator/options/columnTrackSizing/utils.d.ts +30 -0
- package/lib/components/TableCreator/options/columnTrackSizing/utils.js +83 -0
- package/lib/components/TableCreator/options/hook.js +8 -7
- package/lib/components/TableCreator/options/initialState/columnVisibility.d.ts +7 -0
- package/lib/components/TableCreator/options/initialState/columnVisibility.js +16 -0
- package/lib/components/TableCreator/options/initialState/hook.d.ts +2 -0
- package/lib/components/TableCreator/options/initialState/hook.js +10 -0
- package/lib/components/TableCreator/options/visibility/constants.d.ts +2 -0
- package/lib/components/TableCreator/options/visibility/constants.js +3 -0
- package/lib/components/TableCreator/options/visibility/hook.d.ts +2 -0
- package/lib/components/TableCreator/options/visibility/hook.js +11 -0
- package/lib/components/TableCreator/tableCreator.js +4 -18
- 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/config/entities.d.ts +22 -27
- 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/updateVisibility/action.d.ts +10 -0
- package/lib/providers/exploreState/actions/updateVisibility/action.js +16 -0
- package/lib/providers/exploreState/actions/updateVisibility/dispatch.d.ts +7 -0
- package/lib/providers/exploreState/actions/updateVisibility/dispatch.js +12 -0
- package/lib/providers/exploreState/actions/updateVisibility/types.d.ts +9 -0
- package/lib/providers/exploreState/actions/updateVisibility/types.js +1 -0
- package/lib/providers/exploreState/actions/updateVisibility/utils.d.ts +10 -0
- package/lib/providers/exploreState/actions/updateVisibility/utils.js +21 -0
- package/lib/providers/exploreState/entities.d.ts +1 -1
- package/lib/providers/exploreState/initializer/utils.js +5 -13
- package/lib/providers/exploreState/payloads/entities.d.ts +1 -5
- package/lib/providers/exploreState/utils.d.ts +1 -1
- package/lib/providers/exploreState/utils.js +5 -5
- package/lib/providers/exploreState.d.ts +2 -8
- package/lib/providers/exploreState.js +5 -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/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/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/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 +18 -2
- package/src/components/Table/common/columnIdentifier.ts +4 -0
- package/src/components/Table/common/typeGuards.ts +12 -0
- package/src/components/Table/common/utils.ts +5 -115
- package/src/components/Table/components/TableCell/common/utils.ts +3 -3
- package/src/components/Table/components/TableCell/components/RowSelectionCell/rowSelectionCell.tsx +3 -7
- package/src/components/Table/components/TableFeatures/ColumnVisibility/utils.ts +25 -44
- package/src/components/Table/components/TableHead/components/HeadSelectionCell/headSelectionCell.tsx +5 -9
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.tsx +4 -22
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/constants.ts +13 -0
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/menuItems.tsx +47 -20
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/types.ts +1 -2
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/components/MenuItems/utils.ts +58 -0
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/constants.ts +1 -13
- package/src/components/Table/components/TableToolbar/components/ColumnGrouping/utils.ts +26 -33
- package/src/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.styles.ts +12 -0
- package/src/components/Table/components/TableToolbar/components/ColumnVisibility/columnVisibility.tsx +28 -0
- package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/constants.ts +9 -0
- package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.styles.ts +17 -0
- package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/menuItems.tsx +53 -0
- package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/types.ts +5 -0
- package/src/components/Table/components/TableToolbar/components/ColumnVisibility/components/MenuItems/utils.ts +44 -0
- package/src/components/Table/components/TableToolbar/components/ColumnVisibility/constants.ts +5 -0
- package/src/components/Table/components/TableToolbar/components/ColumnVisibility/types.ts +5 -0
- package/src/components/Table/components/TableToolbar/tableToolbar.tsx +5 -19
- package/src/components/Table/features/RowPosition/constants.ts +8 -5
- package/src/components/Table/features/RowPosition/types.ts +4 -0
- package/src/components/Table/features/RowPosition/utils.ts +1 -30
- package/src/components/Table/features/RowPreview/constants.ts +1 -1
- package/src/components/Table/features/entities.ts +2 -2
- package/src/components/Table/table.tsx +8 -46
- package/src/components/TableCreator/common/utils.ts +0 -4
- package/src/components/TableCreator/options/columnTrackSizing/typeGuards.ts +12 -0
- package/src/components/TableCreator/options/columnTrackSizing/utils.ts +99 -0
- package/src/components/TableCreator/options/hook.ts +8 -11
- package/src/components/TableCreator/options/initialState/columnVisibility.ts +22 -0
- package/src/components/TableCreator/options/initialState/hook.ts +24 -0
- package/src/components/TableCreator/options/visibility/constants.ts +5 -0
- package/src/components/TableCreator/options/visibility/hook.ts +22 -0
- package/src/components/TableCreator/tableCreator.tsx +3 -27
- 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/config/entities.ts +22 -29
- 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/updateVisibility/action.ts +29 -0
- package/src/providers/exploreState/actions/updateVisibility/dispatch.ts +19 -0
- package/src/providers/exploreState/actions/updateVisibility/types.ts +11 -0
- package/src/providers/exploreState/actions/updateVisibility/utils.ts +28 -0
- package/src/providers/exploreState/entities.ts +1 -1
- package/src/providers/exploreState/initializer/utils.ts +5 -21
- package/src/providers/exploreState/payloads/entities.ts +0 -6
- package/src/providers/exploreState/utils.ts +5 -5
- package/src/providers/exploreState.tsx +6 -22
- 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/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/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/Table/components/CheckboxMenu/checkboxMenu.d.ts +0 -16
- package/lib/components/Table/components/CheckboxMenu/checkboxMenu.js +0 -28
- package/lib/components/Table/components/CheckboxMenu/checkboxMenu.stories.d.ts +0 -5
- package/lib/components/Table/components/CheckboxMenu/checkboxMenu.stories.js +0 -46
- package/lib/components/Table/components/CheckboxMenu/checkboxMenu.styles.d.ts +0 -3
- package/lib/components/Table/components/CheckboxMenu/checkboxMenu.styles.js +0 -21
- package/lib/components/Table/features/constants.d.ts +0 -6
- package/lib/components/Table/features/constants.js +0 -8
- package/lib/components/TableCreator/common/constants.d.ts +0 -7
- package/lib/components/TableCreator/common/constants.js +0 -21
- 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/Table/components/CheckboxMenu/checkboxMenu.stories.tsx +0 -54
- package/src/components/Table/components/CheckboxMenu/checkboxMenu.styles.ts +0 -22
- package/src/components/Table/components/CheckboxMenu/checkboxMenu.tsx +0 -87
- package/src/components/Table/features/constants.ts +0 -10
- package/src/components/TableCreator/common/constants.ts +0 -25
- 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/Table/components/TableToolbar/components/ColumnGrouping/{columnGrouping.styles.d.ts → components/MenuItems/menuItems.styles.d.ts} +0 -0
- /package/lib/components/Table/components/TableToolbar/components/ColumnGrouping/{columnGrouping.styles.js → components/MenuItems/menuItems.styles.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/components/Table/components/TableToolbar/components/ColumnGrouping/{columnGrouping.styles.ts → components/MenuItems/menuItems.styles.ts} +0 -0
- /package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.ts +0 -0
|
@@ -2,25 +2,16 @@ import {
|
|
|
2
2
|
Cell,
|
|
3
3
|
Column,
|
|
4
4
|
ColumnFiltersState,
|
|
5
|
-
InitialTableState,
|
|
6
5
|
memo,
|
|
7
6
|
PaginationState,
|
|
8
7
|
Row,
|
|
9
8
|
RowData,
|
|
10
9
|
sortingFns,
|
|
11
10
|
Table,
|
|
12
|
-
VisibilityState,
|
|
13
11
|
} from "@tanstack/react-table";
|
|
14
12
|
import { SelectCategory } from "../../../common/entities";
|
|
15
|
-
import {
|
|
16
|
-
ColumnConfig,
|
|
17
|
-
GridTrackMinMax,
|
|
18
|
-
GridTrackSize,
|
|
19
|
-
} from "../../../config/entities";
|
|
20
13
|
import { EXPLORE_MODE, ExploreMode } from "../../../hooks/useExploreMode";
|
|
21
|
-
import {
|
|
22
|
-
import { CheckboxMenuListItem } from "../components/CheckboxMenu/checkboxMenu";
|
|
23
|
-
import { handleToggleVisibility } from "../components/TableFeatures/ColumnVisibility/utils";
|
|
14
|
+
import { COLUMN_IDENTIFIER } from "./columnIdentifier";
|
|
24
15
|
|
|
25
16
|
/**
|
|
26
17
|
* Internal model of a category term count keyed by category term.
|
|
@@ -136,40 +127,6 @@ export function generateDownloadBlob<T extends RowData>(
|
|
|
136
127
|
return new Blob([tsv], { type: "text/tab-separated-values" });
|
|
137
128
|
}
|
|
138
129
|
|
|
139
|
-
/**
|
|
140
|
-
* Returns edit column checkbox menu options.
|
|
141
|
-
* @param table - Table.
|
|
142
|
-
* @returns a list of edit column options.
|
|
143
|
-
*/
|
|
144
|
-
export function getEditColumnOptions<T extends RowData>(
|
|
145
|
-
table: Table<T>
|
|
146
|
-
): CheckboxMenuListItem[] {
|
|
147
|
-
const { getAllColumns, initialState } = table;
|
|
148
|
-
const { columnVisibility: initialVisibilityState } = initialState;
|
|
149
|
-
const allColumns = getAllColumns();
|
|
150
|
-
return allColumns.reduce((acc, column) => {
|
|
151
|
-
const {
|
|
152
|
-
columnDef: { header },
|
|
153
|
-
getCanHide,
|
|
154
|
-
getIsVisible,
|
|
155
|
-
id,
|
|
156
|
-
} = column;
|
|
157
|
-
if (getCanHide()) {
|
|
158
|
-
const option: CheckboxMenuListItem = {
|
|
159
|
-
checked: getIsVisible(),
|
|
160
|
-
disabled: initialVisibilityState[id], // TODO(cc) column visibility toggle should be disabled when table enableGrouping is false, and column is grouped.
|
|
161
|
-
label: header as string, // TODO revisit type assertion here
|
|
162
|
-
onChange: () => {
|
|
163
|
-
handleToggleVisibility(table, column);
|
|
164
|
-
},
|
|
165
|
-
value: id,
|
|
166
|
-
};
|
|
167
|
-
acc.push(option);
|
|
168
|
-
}
|
|
169
|
-
return acc;
|
|
170
|
-
}, [] as CheckboxMenuListItem[]);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
130
|
/**
|
|
174
131
|
* Returns unique category term counts keyed by category terms.
|
|
175
132
|
* Custom function based off react table function getFacetedUniqueValues, see
|
|
@@ -212,41 +169,6 @@ export function getFacetedUniqueValuesWithArrayValues<T extends RowData>(): (
|
|
|
212
169
|
);
|
|
213
170
|
}
|
|
214
171
|
|
|
215
|
-
/**
|
|
216
|
-
* Generates a string value for the CSS property grid-template-columns.
|
|
217
|
-
* Defines grid table track sizing (for each visible column).
|
|
218
|
-
* @param columns - Table columns.
|
|
219
|
-
* @returns string value for the css property grid-template-columns.
|
|
220
|
-
*/
|
|
221
|
-
export function getGridTemplateColumns<T extends RowData>(
|
|
222
|
-
columns: Column<T>[]
|
|
223
|
-
): string {
|
|
224
|
-
return columns
|
|
225
|
-
.filter(filterGroupedColumn)
|
|
226
|
-
.map(({ columnDef: { meta } }) => {
|
|
227
|
-
const width = meta?.width;
|
|
228
|
-
if (isGridTrackMinMax(width)) {
|
|
229
|
-
return `minmax(${width.min}, ${width.max})`;
|
|
230
|
-
}
|
|
231
|
-
return width;
|
|
232
|
-
})
|
|
233
|
-
.join(" ");
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/**
|
|
237
|
-
* Returns initial table state.
|
|
238
|
-
* @param columns - Column configuration.
|
|
239
|
-
* @returns initial table state.
|
|
240
|
-
*/
|
|
241
|
-
export function getInitialState<T extends RowData>(
|
|
242
|
-
columns: ColumnConfig<T>[]
|
|
243
|
-
): InitialTableState {
|
|
244
|
-
const columnVisibility = getInitialTableColumnVisibility(columns);
|
|
245
|
-
return {
|
|
246
|
-
columnVisibility,
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
|
|
250
172
|
/**
|
|
251
173
|
* Returns the pinned cell and its index tuple.
|
|
252
174
|
* @param row - Row.
|
|
@@ -288,19 +210,19 @@ export function getTableStatePagination(
|
|
|
288
210
|
}
|
|
289
211
|
|
|
290
212
|
/**
|
|
291
|
-
* Returns the list of table headers, excluding "
|
|
213
|
+
* Returns the list of table headers, excluding "rowSelection" column.
|
|
292
214
|
* @param rows - Table rows.
|
|
293
215
|
* @returns list of headers.
|
|
294
216
|
*/
|
|
295
217
|
function getHeadersTableData<T extends RowData>(rows: Row<T>[]): TableData[] {
|
|
296
218
|
return rows[0]
|
|
297
219
|
.getAllCells()
|
|
298
|
-
.filter((cell) => cell.column.id !==
|
|
220
|
+
.filter((cell) => cell.column.id !== COLUMN_IDENTIFIER.ROW_SELECTION)
|
|
299
221
|
.map((cell) => cell.column.columnDef.header as TableData);
|
|
300
222
|
}
|
|
301
223
|
|
|
302
224
|
/**
|
|
303
|
-
* Returns the list of table data, excluding "
|
|
225
|
+
* Returns the list of table data, excluding "rowSelection" column.
|
|
304
226
|
* @param rows - Table rows.
|
|
305
227
|
* @returns list of data.
|
|
306
228
|
*/
|
|
@@ -308,20 +230,11 @@ function getRowsTableData<T extends RowData>(rows: Row<T>[]): TableData[][] {
|
|
|
308
230
|
return rows.map((row) =>
|
|
309
231
|
row
|
|
310
232
|
.getAllCells()
|
|
311
|
-
.filter((cell) => cell.column.id !==
|
|
233
|
+
.filter((cell) => cell.column.id !== COLUMN_IDENTIFIER.ROW_SELECTION)
|
|
312
234
|
.map((cell) => cell.getValue() as TableData)
|
|
313
235
|
);
|
|
314
236
|
}
|
|
315
237
|
|
|
316
|
-
/**
|
|
317
|
-
* Returns true if the column is not grouped (filters out grouped columns).
|
|
318
|
-
* @param column - Table column.
|
|
319
|
-
* @returns true if the column is not grouped.
|
|
320
|
-
*/
|
|
321
|
-
function filterGroupedColumn<T extends RowData>(column: Column<T>): boolean {
|
|
322
|
-
return !column.getIsGrouped();
|
|
323
|
-
}
|
|
324
|
-
|
|
325
238
|
/**
|
|
326
239
|
* Returns true if any or all table rows are selected.
|
|
327
240
|
* @param table - Table.
|
|
@@ -397,29 +310,6 @@ function basicSort<TValue>(val0: TValue, val1: TValue): number {
|
|
|
397
310
|
return val0 === val1 ? 0 : val0 > val1 ? 1 : -1;
|
|
398
311
|
}
|
|
399
312
|
|
|
400
|
-
/**
|
|
401
|
-
* Returns the initial table visibility state for the specified column configuration.
|
|
402
|
-
* @param columns - Column configuration.
|
|
403
|
-
* @returns initial table visibility state.
|
|
404
|
-
*/
|
|
405
|
-
export function getInitialTableColumnVisibility<T extends RowData>(
|
|
406
|
-
columns: ColumnConfig<T>[]
|
|
407
|
-
): VisibilityState {
|
|
408
|
-
return columns.reduce((acc, { columnVisible = true, id }) => {
|
|
409
|
-
Object.assign(acc, { [id]: columnVisible });
|
|
410
|
-
return acc;
|
|
411
|
-
}, {});
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
/**
|
|
415
|
-
* Determine if the given track size width is a size range.
|
|
416
|
-
* @param width - Grid table track size.
|
|
417
|
-
* @returns true if the given track size width is a size range.
|
|
418
|
-
*/
|
|
419
|
-
function isGridTrackMinMax(width?: GridTrackSize): width is GridTrackMinMax {
|
|
420
|
-
return (width as GridTrackMinMax).min !== undefined;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
313
|
/**
|
|
424
314
|
* Returns the given value as a string.
|
|
425
315
|
* See React Table "toString" function
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TableCellProps } from "@mui/material";
|
|
2
2
|
import { Column, CoreCell, CoreHeader, RowData } from "@tanstack/react-table";
|
|
3
3
|
import { TABLE_CELL_PROPS } from "../../../../../styles/common/mui/tableCell";
|
|
4
|
-
import {
|
|
4
|
+
import { COLUMN_IDENTIFIER } from "../../../common/columnIdentifier";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Returns table cell alignment based on the cell.
|
|
@@ -23,9 +23,9 @@ export function getTableCellPadding<T extends RowData, TValue>(
|
|
|
23
23
|
id: CoreHeader<T, TValue>["id"] | CoreCell<T, TValue>["id"]
|
|
24
24
|
): TableCellProps["padding"] {
|
|
25
25
|
switch (id) {
|
|
26
|
-
case
|
|
26
|
+
case COLUMN_IDENTIFIER.ROW_POSITION:
|
|
27
27
|
return TABLE_CELL_PROPS.PADDING.NORMAL;
|
|
28
|
-
case
|
|
28
|
+
case COLUMN_IDENTIFIER.ROW_SELECTION:
|
|
29
29
|
return TABLE_CELL_PROPS.PADDING.CHECKBOX;
|
|
30
30
|
default:
|
|
31
31
|
return TABLE_CELL_PROPS.PADDING.NORMAL;
|
package/src/components/Table/components/TableCell/components/RowSelectionCell/rowSelectionCell.tsx
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import { Checkbox as MCheckbox } from "@mui/material";
|
|
2
|
-
import {
|
|
2
|
+
import { CellContext, RowData } from "@tanstack/react-table";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { CheckedIcon } from "../../../../../common/CustomIcon/components/CheckedIcon/checkedIcon";
|
|
5
5
|
import { UncheckedIcon } from "../../../../../common/CustomIcon/components/UncheckedIcon/uncheckedIcon";
|
|
6
6
|
|
|
7
|
-
export
|
|
8
|
-
row: Row<T>;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const RowSelectionCell = <T extends RowData>({
|
|
7
|
+
export const RowSelectionCell = <T extends RowData, TValue = unknown>({
|
|
12
8
|
row,
|
|
13
|
-
}:
|
|
9
|
+
}: CellContext<T, TValue>): JSX.Element => {
|
|
14
10
|
const { getIsSelected, getToggleSelectedHandler } = row;
|
|
15
11
|
return (
|
|
16
12
|
<MCheckbox
|
|
@@ -1,52 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RowData, Table, VisibilityState } from "@tanstack/react-table";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* ###
|
|
6
|
-
* -
|
|
7
|
-
*
|
|
8
|
-
* -
|
|
9
|
-
* - Toggles the visibility state of the specified column.
|
|
10
|
-
* ### Grouping and Sorting State
|
|
11
|
-
* - **Column is not visible**:
|
|
12
|
-
* - No grouping or sorting action (exit).
|
|
13
|
-
* - **Column is visible**:
|
|
14
|
-
* - **Column is grouped**:
|
|
15
|
-
* - Resets grouping state to `[]`.
|
|
16
|
-
* - Clears column from sorting state.
|
|
17
|
-
* - **Column is not grouped**:
|
|
18
|
-
* - No grouping or sorting action.
|
|
4
|
+
* Resets column visibility state of the table.
|
|
5
|
+
* ### Default Behavior:
|
|
6
|
+
* - Column visibility state is reset to initial state.
|
|
7
|
+
* ### Grouping State:
|
|
8
|
+
* - Column visibility state is reset to initial state, with any grouped columns remaining visible.
|
|
19
9
|
* @param table - Table.
|
|
20
|
-
* @param column - Column.
|
|
21
10
|
*/
|
|
22
|
-
export function
|
|
23
|
-
table: Table<T
|
|
24
|
-
column: Column<T>
|
|
11
|
+
export function handleResetVisibilityState<T extends RowData>(
|
|
12
|
+
table: Table<T>
|
|
25
13
|
): void {
|
|
26
|
-
const {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
getIsGrouped,
|
|
34
|
-
getIsVisible,
|
|
35
|
-
toggleVisibility,
|
|
36
|
-
} = column;
|
|
37
|
-
if (!getCanHide()) return;
|
|
38
|
-
|
|
39
|
-
// Toggle column visibility.
|
|
40
|
-
toggleVisibility();
|
|
41
|
-
|
|
42
|
-
// Column is not visible i.e. requesting column visibility and therefore no further action is needed.
|
|
43
|
-
if (!getIsVisible()) return;
|
|
14
|
+
const { getState, initialState, resetColumnVisibility, setColumnVisibility } =
|
|
15
|
+
table;
|
|
16
|
+
const { grouping } = getState();
|
|
17
|
+
if (grouping.length === 0) {
|
|
18
|
+
resetColumnVisibility(); // Resets column visibility state.
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
44
21
|
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
clearSorting(); // Clears column sorting.
|
|
22
|
+
// Table is grouped.
|
|
23
|
+
// Ensure grouped columns remain visible (as their initial visibility state may have been `false`).
|
|
24
|
+
const groupedColumnVisibility: VisibilityState = {};
|
|
25
|
+
for (const id of grouping) {
|
|
26
|
+
groupedColumnVisibility[id] = true;
|
|
51
27
|
}
|
|
28
|
+
|
|
29
|
+
setColumnVisibility({
|
|
30
|
+
...initialState.columnVisibility,
|
|
31
|
+
...groupedColumnVisibility,
|
|
32
|
+
});
|
|
52
33
|
}
|
package/src/components/Table/components/TableHead/components/HeadSelectionCell/headSelectionCell.tsx
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
import { Checkbox } from "@mui/material";
|
|
2
|
-
import {
|
|
2
|
+
import { HeaderContext, RowData } from "@tanstack/react-table";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { CheckedIcon } from "../../../../../common/CustomIcon/components/CheckedIcon/checkedIcon";
|
|
5
5
|
import { IndeterminateIcon } from "../../../../../common/CustomIcon/components/IndeterminateIcon/indeterminateIcon";
|
|
6
6
|
import { UncheckedIcon } from "../../../../../common/CustomIcon/components/UncheckedIcon/uncheckedIcon";
|
|
7
7
|
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const HeadSelectionCell = <T extends RowData>({
|
|
13
|
-
tableInstance,
|
|
14
|
-
}: HeadSelectionCellProps<T>): JSX.Element => {
|
|
8
|
+
export const HeadSelectionCell = <T extends RowData, TValue = unknown>({
|
|
9
|
+
table,
|
|
10
|
+
}: HeaderContext<T, TValue>): JSX.Element => {
|
|
15
11
|
const {
|
|
16
12
|
getIsAllPageRowsSelected,
|
|
17
13
|
getIsSomePageRowsSelected,
|
|
18
14
|
getToggleAllRowsSelectedHandler,
|
|
19
|
-
} =
|
|
15
|
+
} = table;
|
|
20
16
|
return (
|
|
21
17
|
<Checkbox
|
|
22
18
|
checked={getIsAllPageRowsSelected()}
|
package/src/components/Table/components/TableToolbar/components/ColumnGrouping/columnGrouping.tsx
CHANGED
|
@@ -1,32 +1,26 @@
|
|
|
1
|
-
import { ListItemText } from "@mui/material";
|
|
2
1
|
import { RowData } from "@tanstack/react-table";
|
|
3
2
|
import React from "react";
|
|
4
3
|
import { DropdownButton } from "../../../../../common/Button/components/DropdownButton/dropdownButton";
|
|
5
4
|
import { DropdownMenu } from "../../../../../common/DropdownMenu/dropdownMenu";
|
|
6
|
-
import { handleClearGroupingState } from "../../../TableFeatures/ColumnGrouping/utils";
|
|
7
|
-
import { StyledMenuItem } from "./columnGrouping.styles";
|
|
8
5
|
import { MenuItems } from "./components/MenuItems/menuItems";
|
|
9
|
-
import {
|
|
6
|
+
import { MENU_PROPS } from "./constants";
|
|
10
7
|
import { ColumnGroupingProps } from "./types";
|
|
11
|
-
import { getButtonLabel
|
|
8
|
+
import { getButtonLabel } from "./utils";
|
|
12
9
|
|
|
13
10
|
export const ColumnGrouping = <T extends RowData>({
|
|
14
11
|
tableInstance,
|
|
15
12
|
}: ColumnGroupingProps<T>): JSX.Element | null => {
|
|
16
13
|
const {
|
|
17
|
-
|
|
14
|
+
getAllColumns,
|
|
18
15
|
options: { enableGrouping },
|
|
19
16
|
} = tableInstance;
|
|
20
|
-
const { grouping } = getState();
|
|
21
|
-
const groupingByColumnId = getColumnGrouping(tableInstance);
|
|
22
17
|
if (!enableGrouping) return null;
|
|
23
|
-
if (groupingByColumnId.size === 0) return null;
|
|
24
18
|
return (
|
|
25
19
|
<DropdownMenu
|
|
26
20
|
{...MENU_PROPS}
|
|
27
21
|
button={(props) => (
|
|
28
22
|
<DropdownButton {...props}>
|
|
29
|
-
{getButtonLabel(
|
|
23
|
+
{getButtonLabel(getAllColumns())}
|
|
30
24
|
</DropdownButton>
|
|
31
25
|
)}
|
|
32
26
|
>
|
|
@@ -34,20 +28,8 @@ export const ColumnGrouping = <T extends RowData>({
|
|
|
34
28
|
<MenuItems
|
|
35
29
|
key="column-grouping"
|
|
36
30
|
closeMenu={closeMenu}
|
|
37
|
-
groupingByColumnId={groupingByColumnId}
|
|
38
31
|
tableInstance={tableInstance}
|
|
39
32
|
/>,
|
|
40
|
-
<StyledMenuItem
|
|
41
|
-
{...MENU_ITEM_PROPS}
|
|
42
|
-
key="reset-grouping-state"
|
|
43
|
-
disabled={grouping.length === 0}
|
|
44
|
-
onClick={() => {
|
|
45
|
-
handleClearGroupingState(tableInstance);
|
|
46
|
-
closeMenu();
|
|
47
|
-
}}
|
|
48
|
-
>
|
|
49
|
-
<ListItemText {...LIST_ITEM_TEXT_PROPS}>Clear Grouping</ListItemText>
|
|
50
|
-
</StyledMenuItem>,
|
|
51
33
|
]}
|
|
52
34
|
</DropdownMenu>
|
|
53
35
|
);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ListItemTextProps, MenuItemProps } from "@mui/material";
|
|
2
|
+
|
|
3
|
+
export const LIST_ITEM_TEXT_PROPS: Partial<ListItemTextProps> = {
|
|
4
|
+
primaryTypographyProps: {
|
|
5
|
+
color: "primary",
|
|
6
|
+
component: "span",
|
|
7
|
+
variant: "inherit",
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const MENU_ITEM_PROPS: Partial<MenuItemProps> = {
|
|
12
|
+
component: "li",
|
|
13
|
+
};
|
|
@@ -1,28 +1,55 @@
|
|
|
1
1
|
import { ListItemText, MenuItem } from "@mui/material";
|
|
2
2
|
import { RowData } from "@tanstack/react-table";
|
|
3
|
-
import React from "react";
|
|
4
|
-
import {
|
|
5
|
-
|
|
3
|
+
import React, { Fragment } from "react";
|
|
4
|
+
import {
|
|
5
|
+
handleClearGroupingState,
|
|
6
|
+
handleToggleGrouping,
|
|
7
|
+
} from "../../../../../TableFeatures/ColumnGrouping/utils";
|
|
8
|
+
import { LIST_ITEM_TEXT_PROPS, MENU_ITEM_PROPS } from "./constants";
|
|
9
|
+
import { StyledMenuItem } from "./menuItems.styles";
|
|
6
10
|
import { MenuItemsProps } from "./types";
|
|
11
|
+
import {
|
|
12
|
+
getCanGroupColumns,
|
|
13
|
+
getVisibleColumnCount,
|
|
14
|
+
isToggleGroupingDisabled,
|
|
15
|
+
} from "./utils";
|
|
7
16
|
|
|
8
17
|
export const MenuItems = <T extends RowData>({
|
|
9
18
|
closeMenu,
|
|
10
|
-
groupingByColumnId,
|
|
11
19
|
tableInstance,
|
|
12
|
-
}: MenuItemsProps<T>): JSX.Element
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
}: MenuItemsProps<T>): JSX.Element => {
|
|
21
|
+
const { getAllColumns } = tableInstance;
|
|
22
|
+
const columns = getCanGroupColumns(getAllColumns());
|
|
23
|
+
const visibleCount = getVisibleColumnCount(getAllColumns());
|
|
24
|
+
return (
|
|
25
|
+
<Fragment>
|
|
26
|
+
{columns.map((column) => {
|
|
27
|
+
return (
|
|
28
|
+
<MenuItem
|
|
29
|
+
{...MENU_ITEM_PROPS}
|
|
30
|
+
key={column.id}
|
|
31
|
+
disabled={isToggleGroupingDisabled(column, visibleCount)}
|
|
32
|
+
onClick={() => {
|
|
33
|
+
handleToggleGrouping(tableInstance, column);
|
|
34
|
+
closeMenu();
|
|
35
|
+
}}
|
|
36
|
+
selected={column.getIsGrouped()}
|
|
37
|
+
>
|
|
38
|
+
<ListItemText disableTypography>
|
|
39
|
+
{column.columnDef.header}
|
|
40
|
+
</ListItemText>
|
|
41
|
+
</MenuItem>
|
|
42
|
+
);
|
|
43
|
+
})}
|
|
44
|
+
<StyledMenuItem
|
|
45
|
+
{...MENU_ITEM_PROPS}
|
|
46
|
+
onClick={() => {
|
|
47
|
+
handleClearGroupingState(tableInstance);
|
|
48
|
+
closeMenu();
|
|
49
|
+
}}
|
|
50
|
+
>
|
|
51
|
+
<ListItemText {...LIST_ITEM_TEXT_PROPS}>Clear Grouping</ListItemText>
|
|
52
|
+
</StyledMenuItem>
|
|
53
|
+
</Fragment>
|
|
54
|
+
);
|
|
28
55
|
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RowData, Table } from "@tanstack/react-table";
|
|
2
2
|
import { UseMenu } from "../../../../../../../common/Menu/hooks/useMenu";
|
|
3
3
|
|
|
4
4
|
export interface MenuItemsProps<T extends RowData> {
|
|
5
5
|
closeMenu: UseMenu<HTMLButtonElement>["onClose"];
|
|
6
|
-
groupingByColumnId: Map<string, [string, Column<T>]>;
|
|
7
6
|
tableInstance: Table<T>;
|
|
8
7
|
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Column, RowData } from "@tanstack/react-table";
|
|
2
|
+
import { COLUMN_IDENTIFIER } from "../../../../../../common/columnIdentifier";
|
|
3
|
+
import { isStringHeaderColumn } from "../../../../../../common/typeGuards";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Returns columns that are enabled to be grouped.
|
|
7
|
+
* @param columns - Columns.
|
|
8
|
+
* @returns columns that are enabled to be grouped.
|
|
9
|
+
*/
|
|
10
|
+
export function getCanGroupColumns<T extends RowData>(
|
|
11
|
+
columns: Column<T>[]
|
|
12
|
+
): (Column<T> & { columnDef: { header: string } })[] {
|
|
13
|
+
return columns
|
|
14
|
+
.filter(isStringHeaderColumn)
|
|
15
|
+
.filter(({ getCanGroup }) => getCanGroup());
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Returns the number of visible columns, excluding system columns "rowPosition" and "rowSelection".
|
|
20
|
+
* @param columns - Columns.
|
|
21
|
+
* @returns number of visible columns.
|
|
22
|
+
*/
|
|
23
|
+
export function getVisibleColumnCount<T extends RowData>(
|
|
24
|
+
columns: Column<T>[]
|
|
25
|
+
): number {
|
|
26
|
+
return columns
|
|
27
|
+
.filter((column) => !isSystemColumn(column))
|
|
28
|
+
.filter(({ getIsVisible }) => getIsVisible()).length;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Returns true if the column is a system column "rowPosition" or "rowSelection".
|
|
33
|
+
* @param column - Column.
|
|
34
|
+
* @returns true if the column is a system column.
|
|
35
|
+
*/
|
|
36
|
+
function isSystemColumn<T extends RowData>(column: Column<T>): boolean {
|
|
37
|
+
return (
|
|
38
|
+
column.id === COLUMN_IDENTIFIER.ROW_POSITION ||
|
|
39
|
+
column.id === COLUMN_IDENTIFIER.ROW_SELECTION
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Returns whether the column grouping toggle is disabled.
|
|
45
|
+
* - If the column is not enabled to be grouped, the toggle is disabled.
|
|
46
|
+
* - If the column is not visible, the toggle is disabled.
|
|
47
|
+
* - If the count of visible columns is 1, the toggle is disabled.
|
|
48
|
+
* @param column - Column.
|
|
49
|
+
* @param visibleCount - Count of visible, un-grouped columns.
|
|
50
|
+
* @returns true if the column visibility toggle is disabled.
|
|
51
|
+
*/
|
|
52
|
+
export function isToggleGroupingDisabled<T extends RowData>(
|
|
53
|
+
column: Column<T>,
|
|
54
|
+
visibleCount: number
|
|
55
|
+
): boolean {
|
|
56
|
+
if (!column.getCanGroup() || !column.getIsVisible()) return true;
|
|
57
|
+
return visibleCount === 1; // We should not be able to group the last visible column; at least one un-grouped column should be visible.
|
|
58
|
+
}
|
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export const LIST_ITEM_TEXT_PROPS: Partial<ListItemTextProps> = {
|
|
4
|
-
primaryTypographyProps: {
|
|
5
|
-
color: "primary",
|
|
6
|
-
component: "span",
|
|
7
|
-
variant: "inherit",
|
|
8
|
-
},
|
|
9
|
-
};
|
|
1
|
+
import { MenuProps } from "@mui/material";
|
|
10
2
|
|
|
11
3
|
export const MENU_PROPS: Partial<MenuProps> = {
|
|
12
4
|
variant: "menu",
|
|
13
5
|
};
|
|
14
|
-
|
|
15
|
-
export const MENU_ITEM_PROPS: Partial<MenuItemProps> = {
|
|
16
|
-
component: "li",
|
|
17
|
-
};
|
|
@@ -1,45 +1,38 @@
|
|
|
1
|
-
import { Column,
|
|
1
|
+
import { Column, RowData } from "@tanstack/react-table";
|
|
2
|
+
import { isStringHeaderColumn } from "../../../../common/typeGuards";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Retrieves the button label for the column grouping dropdown.
|
|
5
|
-
*
|
|
6
|
-
* @param groupingByColumnId - Map of column groupings by column ID.
|
|
7
|
-
* @param groupingState - Grouping state.
|
|
6
|
+
* @param columns - Columns.
|
|
8
7
|
* @returns button label.
|
|
9
8
|
*/
|
|
10
9
|
export function getButtonLabel<T extends RowData>(
|
|
11
|
-
|
|
12
|
-
groupingState: GroupingState
|
|
10
|
+
columns: Column<T>[]
|
|
13
11
|
): string {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
const headers = columns
|
|
13
|
+
.filter(isColumnGrouped)
|
|
14
|
+
.filter(isStringHeaderColumn)
|
|
15
|
+
.map(mapGroupedHeader);
|
|
16
|
+
if (headers.length === 0) return "Group by";
|
|
17
|
+
return `Group by: ${headers.join(", ")}`;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* @param table - Table.
|
|
24
|
-
* @returns map of column grouping by column id.
|
|
21
|
+
* Returns true if the column is grouped.
|
|
22
|
+
* @param column - Column.
|
|
23
|
+
* @returns true if the column is grouped.
|
|
25
24
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// Currently, headers are configured as strings.
|
|
40
|
-
// Only include columns that have a string header (for now).
|
|
41
|
-
if (typeof header !== "string") continue;
|
|
42
|
-
groupingByColumnId.set(id, [header, column]);
|
|
43
|
-
}
|
|
44
|
-
return groupingByColumnId;
|
|
25
|
+
function isColumnGrouped<T extends RowData>(column: Column<T>): boolean {
|
|
26
|
+
return column.getIsGrouped();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Maps a column to its header.
|
|
31
|
+
* @param column - Column.
|
|
32
|
+
* @returns header.
|
|
33
|
+
*/
|
|
34
|
+
function mapGroupedHeader<T extends RowData>(
|
|
35
|
+
column: Column<T> & { columnDef: { header: string } }
|
|
36
|
+
): string {
|
|
37
|
+
return column.columnDef.header;
|
|
45
38
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import styled from "@emotion/styled";
|
|
2
|
+
import { DropdownMenu } from "../../../../../common/DropdownMenu/dropdownMenu";
|
|
3
|
+
|
|
4
|
+
export const StyledDropdownMenu = styled(DropdownMenu)`
|
|
5
|
+
.MuiListItemButton-root {
|
|
6
|
+
gap: 8px;
|
|
7
|
+
|
|
8
|
+
&.Mui-disabled {
|
|
9
|
+
opacity: 1;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
`;
|