@databiosphere/findable-ui 35.2.0 → 36.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 +15 -0
- package/lib/common/entities.d.ts +2 -3
- package/lib/components/DataDictionary/components/Entities/constants.d.ts +3 -1
- package/lib/components/DataDictionary/components/Entities/constants.js +6 -2
- package/lib/components/DataDictionary/components/Entities/entities.js +6 -2
- package/lib/components/DataDictionary/components/Entities/entities.styles.d.ts +3 -0
- package/lib/components/DataDictionary/components/Entities/entities.styles.js +5 -0
- package/lib/components/DataDictionary/components/Entity/entity.styles.js +1 -8
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.d.ts +4 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.js +15 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.styles.d.ts +7 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.styles.js +7 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/constants.d.ts +2 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/constants.js +6 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/types.d.ts +6 -0
- package/lib/components/DataDictionary/components/Filters/filters.js +2 -0
- package/lib/components/DataDictionary/components/Filters/filters.styles.js +3 -3
- package/lib/components/DataDictionary/components/Filters/stories/constants.d.ts +1 -0
- package/lib/components/DataDictionary/components/Filters/stories/constants.js +16 -0
- package/lib/components/DataDictionary/components/Filters/stories/filters.stories.js +11 -3
- package/lib/components/DataDictionary/components/Filters/stories/hook.d.ts +4 -0
- package/lib/components/DataDictionary/components/Filters/stories/hook.js +4 -0
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.d.ts +2 -1
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.js +4 -4
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.js +1 -4
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/types.d.ts +4 -2
- package/lib/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.d.ts +2 -1
- package/lib/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.js +4 -4
- package/lib/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.styles.js +4 -1
- package/lib/components/DataDictionary/components/Table/hook.d.ts +2 -2
- package/lib/components/DataDictionary/components/Table/hook.js +8 -4
- package/lib/components/DataDictionary/components/Table/options/columnFilters/constants.js +2 -1
- package/lib/components/DataDictionary/components/Table/options/columnFilters/hook.d.ts +2 -5
- package/lib/components/DataDictionary/components/Table/options/columnFilters/hook.js +8 -6
- package/lib/components/DataDictionary/components/Table/options/globalFilter/constants.d.ts +2 -0
- package/lib/components/DataDictionary/components/Table/options/globalFilter/constants.js +5 -0
- package/lib/components/DataDictionary/components/Table/options/globalFilter/hook.d.ts +3 -0
- package/lib/components/DataDictionary/components/Table/options/globalFilter/hook.js +16 -0
- package/lib/components/DataDictionary/components/Table/options/hook.js +7 -5
- package/lib/components/DataDictionary/components/Table/options/pagination/constants.d.ts +2 -0
- package/lib/components/DataDictionary/components/Table/options/pagination/constants.js +3 -0
- package/lib/components/DataDictionary/dataDictionary.d.ts +1 -1
- package/lib/components/DataDictionary/dataDictionary.js +31 -12
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/hook.d.ts +4 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/hook.js +27 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/types.d.ts +7 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/types.js +1 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/utils.d.ts +6 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/utils.js +8 -0
- package/lib/components/DataDictionary/hooks/UseMeasureFilters/hook.d.ts +2 -0
- package/lib/components/DataDictionary/hooks/UseMeasureFilters/hook.js +17 -0
- package/lib/components/DataDictionary/hooks/UseMeasureFilters/types.d.ts +7 -0
- package/lib/components/DataDictionary/hooks/UseMeasureFilters/types.js +1 -0
- package/lib/components/DataDictionary/types.d.ts +1 -0
- package/lib/components/Filter/components/FilterCountChip/filterCountChip.d.ts +2 -0
- package/lib/components/Filter/components/FilterCountChip/filterCountChip.js +8 -0
- package/lib/components/Filter/components/FilterCountChip/filterCountChip.styles.d.ts +3 -0
- package/lib/components/Filter/components/FilterCountChip/filterCountChip.styles.js +18 -0
- package/lib/components/Filter/components/FilterCountChip/stories/filterCountChip.stories.d.ts +6 -0
- package/lib/components/Filter/components/FilterCountChip/stories/filterCountChip.stories.js +6 -0
- package/lib/components/Filter/components/FilterCountChip/types.d.ts +5 -0
- package/lib/components/Filter/components/FilterCountChip/types.js +1 -0
- 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/Outline/outline.styles.d.ts +1 -1
- package/lib/components/Table/columnDef/globalFilter/constants.d.ts +2 -0
- package/lib/components/Table/columnDef/globalFilter/constants.js +4 -0
- package/lib/components/Table/columnDef/globalFilter/filterFn.d.ts +13 -0
- package/lib/components/Table/columnDef/globalFilter/filterFn.js +24 -0
- package/lib/components/Table/columnDef/globalFilter/types.d.ts +4 -0
- package/lib/components/Table/columnDef/globalFilter/types.js +1 -0
- package/lib/components/Table/columnDef/globalFilter/utils.d.ts +23 -0
- package/lib/components/Table/columnDef/globalFilter/utils.js +57 -0
- package/lib/components/Table/components/TableCell/components/RankedCell/rankedCell.d.ts +3 -0
- package/lib/components/Table/components/TableCell/components/RankedCell/rankedCell.js +25 -0
- package/lib/components/Table/components/TableCell/components/RankedCell/utils.d.ts +30 -0
- package/lib/components/Table/components/TableCell/components/RankedCell/utils.js +64 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/columnFilter.js +9 -5
- package/lib/components/Table/components/TableFeatures/ColumnFilter/columnFilter.styles.d.ts +9 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/columnFilter.styles.js +20 -1
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.d.ts +3 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.js +9 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.styles.d.ts +5 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.styles.js +24 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/constants.d.ts +3 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/constants.js +10 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/stories/columFilterTag.stories.d.ts +6 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/stories/columFilterTag.stories.js +17 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/types.d.ts +6 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/types.js +1 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/constants.d.ts +2 -1
- package/lib/components/Table/components/TableFeatures/ColumnFilter/constants.js +6 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/types.d.ts +3 -2
- package/lib/components/Table/components/TableFeatures/GlobalFilter/constants.d.ts +2 -0
- package/lib/components/Table/components/TableFeatures/GlobalFilter/constants.js +6 -0
- package/lib/components/Table/components/TableFeatures/GlobalFilter/globalFilter.d.ts +3 -0
- package/lib/components/Table/components/TableFeatures/GlobalFilter/globalFilter.js +10 -0
- package/lib/components/Table/components/TableFeatures/GlobalFilter/types.d.ts +6 -0
- package/lib/components/Table/components/TableFeatures/GlobalFilter/types.js +1 -0
- package/lib/components/Table/coreOptions/state/pagination/constants.d.ts +2 -0
- package/lib/components/Table/coreOptions/state/pagination/constants.js +6 -0
- package/lib/components/Table/coreOptions/state/pagination/utils.d.ts +9 -0
- package/lib/components/Table/coreOptions/state/pagination/utils.js +18 -0
- package/lib/components/common/AnchorLink/anchorLink.js +4 -2
- package/lib/components/common/AnchorLink/anchorLink.styles.d.ts +1 -1
- package/lib/components/common/AnchorLink/anchorLink.styles.js +1 -1
- package/lib/components/common/CustomIcon/components/SearchIcon/searchIcon.d.ts +2 -2
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.d.ts +2 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.js +13 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.styles.d.ts +5 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.styles.js +11 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/constants.d.ts +3 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/constants.js +10 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/types.d.ts +4 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/types.js +1 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/constants.d.ts +2 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/constants.js +5 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/searchInputAdornment.d.ts +1 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/searchInputAdornment.js +9 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/constants.d.ts +2 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/constants.js +5 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/inputAdornment.styles.d.ts +5 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/inputAdornment.styles.js +5 -0
- package/lib/components/common/OutlinedInput/outlinedInput.styles.d.ts +7 -0
- package/lib/components/common/OutlinedInput/outlinedInput.styles.js +18 -0
- package/lib/hooks/stateSyncManager/hooks/UseMetaCommands/hook.js +2 -2
- package/lib/hooks/stateSyncManager/hooks/UseStateSync/hook.js +3 -3
- package/lib/hooks/stateSyncManager/types.d.ts +1 -1
- package/lib/providers/dataDictionary/context.d.ts +2 -0
- package/lib/providers/dataDictionary/context.js +4 -0
- package/lib/providers/dataDictionary/hook.d.ts +6 -0
- package/lib/providers/dataDictionary/hook.js +9 -0
- package/lib/providers/dataDictionary/types.d.ts +3 -0
- package/lib/providers/dataDictionary/types.js +1 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/action.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/action.js +12 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/dispatch.d.ts +6 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/dispatch.js +11 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/types.d.ts +6 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/types.js +1 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/action.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/action.js +14 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/dispatch.d.ts +7 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/dispatch.js +12 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/types.d.ts +12 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/types.js +5 -0
- package/lib/providers/dataDictionaryState/actions/types.d.ts +13 -0
- package/lib/providers/dataDictionaryState/actions/types.js +8 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/action.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/action.js +18 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/dispatch.d.ts +7 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/dispatch.js +12 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/types.d.ts +10 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/types.js +1 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/utils.d.ts +11 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/utils.js +27 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/action.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/action.js +19 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/dispatch.d.ts +7 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/dispatch.js +12 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/types.d.ts +10 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/types.js +1 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/utils.d.ts +17 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/utils.js +36 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/action.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/action.js +20 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/dispatch.d.ts +7 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/dispatch.js +12 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/types.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/types.js +1 -0
- package/lib/providers/dataDictionaryState/context.d.ts +2 -0
- package/lib/providers/dataDictionaryState/context.js +6 -0
- package/lib/providers/dataDictionaryState/dictionaries/constants.d.ts +4 -0
- package/lib/providers/dataDictionaryState/dictionaries/constants.js +4 -0
- package/lib/providers/dataDictionaryState/dictionaries/state.d.ts +11 -0
- package/lib/providers/dataDictionaryState/dictionaries/state.js +29 -0
- package/lib/providers/dataDictionaryState/dictionaries/types.d.ts +9 -0
- package/lib/providers/dataDictionaryState/dictionaries/types.js +1 -0
- package/lib/providers/dataDictionaryState/dictionaries/utils.d.ts +14 -0
- package/lib/providers/dataDictionaryState/dictionaries/utils.js +20 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/hook.d.ts +2 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/hook.js +6 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/types.d.ts +4 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/types.js +1 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryReducer/hook.d.ts +2 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryReducer/hook.js +9 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryState/hook.d.ts +6 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryState/hook.js +9 -0
- package/lib/providers/dataDictionaryState/initializer/constants.d.ts +2 -0
- package/lib/providers/dataDictionaryState/initializer/constants.js +4 -0
- package/lib/providers/dataDictionaryState/initializer/initializer.d.ts +9 -0
- package/lib/providers/dataDictionaryState/initializer/initializer.js +17 -0
- package/lib/providers/dataDictionaryState/initializer/utils.d.ts +8 -0
- package/lib/providers/dataDictionaryState/initializer/utils.js +29 -0
- package/lib/providers/dataDictionaryState/provider.d.ts +4 -0
- package/lib/providers/dataDictionaryState/provider.js +7 -0
- package/lib/providers/dataDictionaryState/reducer.d.ts +9 -0
- package/lib/providers/dataDictionaryState/reducer.js +34 -0
- package/lib/providers/dataDictionaryState/types.d.ts +15 -0
- package/lib/providers/dataDictionaryState/types.js +1 -0
- package/lib/styles/common/mui/iconButton.d.ts +11 -0
- package/lib/styles/common/mui/iconButton.js +29 -0
- package/lib/styles/common/mui/inputAdornment.d.ts +9 -0
- package/lib/styles/common/mui/inputAdornment.js +13 -0
- package/lib/styles/common/mui/outlinedInput.d.ts +7 -0
- package/lib/styles/common/mui/outlinedInput.js +7 -0
- package/lib/theme/common/components.js +122 -16
- package/lib/theme/components/muiButtonGroup.js +4 -0
- package/lib/theme/components/muiTableCell.js +6 -0
- package/lib/utils/parseJsonQueryParam.d.ts +14 -0
- package/lib/utils/parseJsonQueryParam.js +25 -0
- package/lib/utils/stateToUrlQuery.d.ts +15 -0
- package/lib/utils/stateToUrlQuery.js +35 -0
- package/lib/views/DataDictionaryView/dataDictionaryView.d.ts +2 -2
- package/lib/views/DataDictionaryView/dataDictionaryView.js +16 -2
- package/lib/views/DataDictionaryView/types.d.ts +4 -0
- package/lib/views/DataDictionaryView/types.js +1 -0
- package/lib/views/DataDictionaryView/utils.d.ts +12 -0
- package/lib/views/DataDictionaryView/utils.js +17 -0
- package/lib/views/ExploreView/utils.d.ts +1 -1
- package/lib/views/ExploreView/utils.js +1 -1
- package/package.json +2 -1
- package/src/common/entities.ts +2 -3
- package/src/components/DataDictionary/components/Entities/constants.ts +9 -3
- package/src/components/DataDictionary/components/Entities/entities.styles.ts +6 -0
- package/src/components/DataDictionary/components/Entities/entities.tsx +7 -2
- package/src/components/DataDictionary/components/Entity/entity.styles.ts +1 -10
- package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.styles.ts +8 -0
- package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.tsx +33 -0
- package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/constants.ts +8 -0
- package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/types.ts +8 -0
- package/src/components/DataDictionary/components/Filters/filters.styles.ts +3 -3
- package/src/components/DataDictionary/components/Filters/filters.tsx +2 -0
- package/src/components/DataDictionary/components/Filters/stories/constants.ts +18 -0
- package/src/components/DataDictionary/components/Filters/stories/filters.stories.tsx +15 -3
- package/src/components/DataDictionary/components/Filters/stories/hook.ts +8 -0
- package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.ts +1 -5
- package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.tsx +13 -7
- package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/types.ts +4 -2
- package/src/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.styles.ts +4 -1
- package/src/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.tsx +13 -7
- package/src/components/DataDictionary/components/Table/hook.ts +10 -6
- package/src/components/DataDictionary/components/Table/options/columnFilters/constants.ts +2 -1
- package/src/components/DataDictionary/components/Table/options/columnFilters/hook.ts +13 -12
- package/src/components/DataDictionary/components/Table/options/globalFilter/constants.ts +14 -0
- package/src/components/DataDictionary/components/Table/options/globalFilter/hook.ts +28 -0
- package/src/components/DataDictionary/components/Table/options/hook.ts +9 -11
- package/src/components/DataDictionary/components/Table/options/pagination/constants.ts +6 -0
- package/src/components/DataDictionary/dataDictionary.tsx +45 -16
- package/src/components/DataDictionary/hooks/UseDataDictionaryConfig/hook.ts +38 -0
- package/src/components/DataDictionary/hooks/UseDataDictionaryConfig/types.ts +8 -0
- package/src/components/DataDictionary/hooks/UseDataDictionaryConfig/utils.ts +8 -0
- package/src/components/DataDictionary/hooks/UseMeasureFilters/hook.ts +27 -0
- package/src/components/DataDictionary/hooks/UseMeasureFilters/types.ts +6 -0
- package/src/components/DataDictionary/types.ts +1 -0
- package/src/components/Filter/components/FilterCountChip/filterCountChip.styles.ts +19 -0
- package/src/components/Filter/components/FilterCountChip/filterCountChip.tsx +21 -0
- package/src/components/Filter/components/FilterCountChip/stories/filterCountChip.stories.tsx +12 -0
- package/src/components/Filter/components/FilterCountChip/types.ts +6 -0
- package/src/components/Table/columnDef/globalFilter/constants.ts +5 -0
- package/src/components/Table/columnDef/globalFilter/filterFn.ts +34 -0
- package/src/components/Table/columnDef/globalFilter/types.ts +5 -0
- package/src/components/Table/columnDef/globalFilter/utils.ts +74 -0
- package/src/components/Table/components/TableCell/components/RankedCell/rankedCell.tsx +50 -0
- package/src/components/Table/components/TableCell/components/RankedCell/utils.ts +85 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/columnFilter.styles.ts +26 -1
- package/src/components/Table/components/TableFeatures/ColumnFilter/columnFilter.tsx +11 -5
- package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.styles.ts +25 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.tsx +31 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/constants.ts +13 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/stories/columFilterTag.stories.tsx +26 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/types.ts +9 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/constants.ts +8 -1
- package/src/components/Table/components/TableFeatures/ColumnFilter/types.ts +3 -2
- package/src/components/Table/components/TableFeatures/GlobalFilter/constants.ts +8 -0
- package/src/components/Table/components/TableFeatures/GlobalFilter/globalFilter.tsx +33 -0
- package/src/components/Table/components/TableFeatures/GlobalFilter/types.ts +9 -0
- package/src/components/Table/coreOptions/state/pagination/constants.ts +8 -0
- package/src/components/Table/coreOptions/state/pagination/utils.ts +21 -0
- package/src/components/common/AnchorLink/anchorLink.styles.ts +1 -1
- package/src/components/common/AnchorLink/anchorLink.tsx +9 -3
- package/src/components/common/CustomIcon/components/SearchIcon/searchIcon.tsx +2 -3
- package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.styles.ts +12 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.tsx +21 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/constants.ts +13 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/types.ts +4 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/constants.ts +7 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/searchInputAdornment.tsx +13 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/constants.ts +7 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/inputAdornment.styles.ts +6 -0
- package/src/components/common/OutlinedInput/outlinedInput.styles.ts +24 -0
- package/src/hooks/stateSyncManager/hooks/UseMetaCommands/hook.ts +2 -2
- package/src/hooks/stateSyncManager/hooks/UseStateSync/hook.ts +3 -3
- package/src/hooks/stateSyncManager/types.ts +1 -1
- package/src/providers/dataDictionary/context.ts +6 -0
- package/src/providers/dataDictionary/hook.ts +11 -0
- package/src/providers/dataDictionary/types.ts +6 -0
- package/src/providers/dataDictionaryState/actions/clearMeta/action.ts +18 -0
- package/src/providers/dataDictionaryState/actions/clearMeta/dispatch.ts +13 -0
- package/src/providers/dataDictionaryState/actions/clearMeta/types.ts +8 -0
- package/src/providers/dataDictionaryState/actions/stateToUrl/action.ts +20 -0
- package/src/providers/dataDictionaryState/actions/stateToUrl/dispatch.ts +14 -0
- package/src/providers/dataDictionaryState/actions/stateToUrl/types.ts +15 -0
- package/src/providers/dataDictionaryState/actions/types.ts +20 -0
- package/src/providers/dataDictionaryState/actions/updateColumnFilters/action.ts +24 -0
- package/src/providers/dataDictionaryState/actions/updateColumnFilters/dispatch.ts +16 -0
- package/src/providers/dataDictionaryState/actions/updateColumnFilters/types.ts +12 -0
- package/src/providers/dataDictionaryState/actions/updateColumnFilters/utils.ts +41 -0
- package/src/providers/dataDictionaryState/actions/updateGlobalFilter/action.ts +25 -0
- package/src/providers/dataDictionaryState/actions/updateGlobalFilter/dispatch.ts +16 -0
- package/src/providers/dataDictionaryState/actions/updateGlobalFilter/types.ts +12 -0
- package/src/providers/dataDictionaryState/actions/updateGlobalFilter/utils.ts +50 -0
- package/src/providers/dataDictionaryState/actions/urlToState/action.ts +28 -0
- package/src/providers/dataDictionaryState/actions/urlToState/dispatch.ts +14 -0
- package/src/providers/dataDictionaryState/actions/urlToState/types.ts +11 -0
- package/src/providers/dataDictionaryState/context.ts +9 -0
- package/src/providers/dataDictionaryState/dictionaries/constants.ts +4 -0
- package/src/providers/dataDictionaryState/dictionaries/state.ts +45 -0
- package/src/providers/dataDictionaryState/dictionaries/types.ts +11 -0
- package/src/providers/dataDictionaryState/dictionaries/utils.ts +25 -0
- package/src/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/hook.ts +14 -0
- package/src/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/types.ts +5 -0
- package/src/providers/dataDictionaryState/hooks/UseDataDictionaryReducer/hook.ts +17 -0
- package/src/providers/dataDictionaryState/hooks/UseDataDictionaryState/hook.ts +11 -0
- package/src/providers/dataDictionaryState/initializer/constants.ts +6 -0
- package/src/providers/dataDictionaryState/initializer/initializer.ts +22 -0
- package/src/providers/dataDictionaryState/initializer/utils.ts +39 -0
- package/src/providers/dataDictionaryState/provider.tsx +16 -0
- package/src/providers/dataDictionaryState/reducer.ts +42 -0
- package/src/providers/dataDictionaryState/types.ts +18 -0
- package/src/styles/common/mui/iconButton.ts +40 -0
- package/src/styles/common/mui/inputAdornment.ts +22 -0
- package/src/styles/common/mui/outlinedInput.ts +14 -0
- package/src/theme/common/components.ts +122 -16
- package/src/theme/components/muiButtonGroup.ts +4 -0
- package/src/theme/components/muiTableCell.ts +6 -0
- package/src/utils/parseJsonQueryParam.ts +27 -0
- package/src/utils/stateToUrlQuery.ts +40 -0
- package/src/views/DataDictionaryView/dataDictionaryView.tsx +29 -3
- package/src/views/DataDictionaryView/types.ts +5 -0
- package/src/views/DataDictionaryView/utils.ts +23 -0
- package/src/views/ExploreView/utils.ts +1 -1
- package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.d.ts +0 -4
- package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.js +0 -36
- package/lib/components/DataDictionary/hooks/UseDataDictionary/types.d.ts +0 -8
- package/src/components/DataDictionary/hooks/UseDataDictionary/hook.ts +0 -51
- package/src/components/DataDictionary/hooks/UseDataDictionary/types.ts +0 -9
- /package/lib/components/DataDictionary/{hooks/UseDataDictionary → components/Filters/components/ColumnFilterTags}/types.js +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NextRouter } from "next/router";
|
|
2
|
+
import { DataDictionaryActionKind } from "../types";
|
|
3
|
+
|
|
4
|
+
export type UrlToStateAction = {
|
|
5
|
+
payload: UrlToStatePayload;
|
|
6
|
+
type: DataDictionaryActionKind.UrlToState;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export type UrlToStatePayload = {
|
|
10
|
+
query: NextRouter["query"];
|
|
11
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createContext } from "react";
|
|
2
|
+
import { INITIAL_DATA_DICTIONARY_STATE } from "./initializer/constants";
|
|
3
|
+
import { DataDictionaryStateContextProps } from "./types";
|
|
4
|
+
|
|
5
|
+
export const DataDictionaryStateContext =
|
|
6
|
+
createContext<DataDictionaryStateContextProps>({
|
|
7
|
+
dataDictionaryDispatch: null,
|
|
8
|
+
dataDictionaryState: INITIAL_DATA_DICTIONARY_STATE,
|
|
9
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { TableState } from "@tanstack/react-table";
|
|
2
|
+
import { stateToUrlQuery } from "../../../utils/stateToUrlQuery";
|
|
3
|
+
import { DataDictionaryState } from "../types";
|
|
4
|
+
import { DictionariesContext } from "./types";
|
|
5
|
+
import { extractDictionaryUrlState as extractUrlState } from "./utils";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Builds the next dictionaries context.
|
|
9
|
+
* @param state - State.
|
|
10
|
+
* @param dictionaryKey - Dictionary key.
|
|
11
|
+
* @param nextDictionaryState - Next dictionary state.
|
|
12
|
+
* @returns Next dictionaries context.
|
|
13
|
+
*/
|
|
14
|
+
export function buildNextDictionaries(
|
|
15
|
+
state: DataDictionaryState,
|
|
16
|
+
dictionaryKey: string,
|
|
17
|
+
nextDictionaryState: Partial<TableState>
|
|
18
|
+
): DictionariesContext {
|
|
19
|
+
// Clone the dictionaries.
|
|
20
|
+
const dictionaries: DictionariesContext = { ...state.dictionaries };
|
|
21
|
+
|
|
22
|
+
for (const [key, dictionary] of Object.entries(dictionaries)) {
|
|
23
|
+
// Clone the dictionary context.
|
|
24
|
+
const dictionaryContext = { ...dictionary };
|
|
25
|
+
|
|
26
|
+
// If the dictionary key is a match, update the dictionary context.
|
|
27
|
+
if (key === dictionaryKey) {
|
|
28
|
+
// Update the dictionary state.
|
|
29
|
+
dictionaryContext.state = { ...dictionary.state, ...nextDictionaryState };
|
|
30
|
+
|
|
31
|
+
// Grab param values from the updated dictionary state.
|
|
32
|
+
const { columnFilters, globalFilter } = dictionaryContext.state;
|
|
33
|
+
|
|
34
|
+
// Update the dictionary query.
|
|
35
|
+
dictionaryContext.query = stateToUrlQuery(
|
|
36
|
+
extractUrlState(key, { columnFilters, globalFilter })
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Update the dictionary context.
|
|
41
|
+
dictionaries[key] = dictionaryContext;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return dictionaries;
|
|
45
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TableState } from "@tanstack/react-table";
|
|
2
|
+
import { NextRouter } from "next/router";
|
|
3
|
+
|
|
4
|
+
export interface DictionariesContext {
|
|
5
|
+
[key: string]: DictionaryContext;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface DictionaryContext {
|
|
9
|
+
query: NextRouter["query"];
|
|
10
|
+
state: Partial<TableState>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ColumnFiltersState, TableState } from "@tanstack/react-table";
|
|
2
|
+
import { DATA_DICTIONARY_URL_PARAMS } from "./constants";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Extracts dictionary state properties that should be synchronized with URL parameters.
|
|
6
|
+
* This function maps specific properties from the dictionary state to a format
|
|
7
|
+
* that can be used to generate URL query parameters.
|
|
8
|
+
* The extracted properties are:
|
|
9
|
+
* - dictionary: Dictionary key (string).
|
|
10
|
+
* - filter: Applied column filters (ColumnFiltersState).
|
|
11
|
+
* - search: Applied global filter (GlobalFilterTableState) - typed as string or undefined.
|
|
12
|
+
* @param dictionary - Dictionary key.
|
|
13
|
+
* @param state - Dictionary table state.
|
|
14
|
+
* @returns Object with properties ready for URL query serialization.
|
|
15
|
+
*/
|
|
16
|
+
export function extractDictionaryUrlState(
|
|
17
|
+
dictionary: string,
|
|
18
|
+
state: Partial<TableState>
|
|
19
|
+
): Record<string, string | ColumnFiltersState | undefined> {
|
|
20
|
+
return {
|
|
21
|
+
dictionary,
|
|
22
|
+
[DATA_DICTIONARY_URL_PARAMS.COLUMN_FILTERS]: state.columnFilters || [],
|
|
23
|
+
[DATA_DICTIONARY_URL_PARAMS.GLOBAL_FILTER]: state.globalFilter,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DataDictionaryConfig } from "../../../../common/entities";
|
|
2
|
+
import { useConfig } from "../../../../hooks/useConfig";
|
|
3
|
+
import { UseDataDictionaryInitialArgs } from "./types";
|
|
4
|
+
|
|
5
|
+
export const useDataDictionaryInitialArgs =
|
|
6
|
+
(): UseDataDictionaryInitialArgs => {
|
|
7
|
+
const { config } = useConfig();
|
|
8
|
+
|
|
9
|
+
const dataDictionaries = config.dataDictionaries as
|
|
10
|
+
| DataDictionaryConfig[]
|
|
11
|
+
| undefined;
|
|
12
|
+
|
|
13
|
+
return { dataDictionaries };
|
|
14
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useReducer } from "react";
|
|
2
|
+
import { initializer } from "../../initializer/initializer";
|
|
3
|
+
import { dataDictionaryReducer } from "../../reducer";
|
|
4
|
+
import { DataDictionaryStateContextProps } from "../../types";
|
|
5
|
+
import { useDataDictionaryInitialArgs } from "../UseDataDictionaryInitialArgs/hook";
|
|
6
|
+
|
|
7
|
+
export const useDataDictionaryReducer = (): DataDictionaryStateContextProps => {
|
|
8
|
+
const initialArgs = useDataDictionaryInitialArgs();
|
|
9
|
+
|
|
10
|
+
const [dataDictionaryState, dataDictionaryDispatch] = useReducer(
|
|
11
|
+
dataDictionaryReducer,
|
|
12
|
+
initialArgs,
|
|
13
|
+
initializer
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
return { dataDictionaryDispatch, dataDictionaryState };
|
|
17
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useContext } from "react";
|
|
2
|
+
import { DataDictionaryStateContext } from "../../context";
|
|
3
|
+
import { DataDictionaryStateContextProps } from "../../types";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Returns data dictionary state context.
|
|
7
|
+
* @returns data dictionary state context.
|
|
8
|
+
*/
|
|
9
|
+
export const useDataDictionaryState = (): DataDictionaryStateContextProps => {
|
|
10
|
+
return useContext(DataDictionaryStateContext);
|
|
11
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { UseDataDictionaryInitialArgs } from "../hooks/UseDataDictionaryInitialArgs/types";
|
|
2
|
+
import { DataDictionaryState } from "../types";
|
|
3
|
+
import { INITIAL_DATA_DICTIONARY_STATE } from "./constants";
|
|
4
|
+
import { initDictionaries } from "./utils";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Initializer function for the data dictionary reducer, returning initial state.
|
|
8
|
+
* @param initialArgs - Initial arguments.
|
|
9
|
+
* @param initialArgs.dataDictionaries - Data dictionary configs.
|
|
10
|
+
* @returns The initialized data dictionary state.
|
|
11
|
+
*/
|
|
12
|
+
export function initializer({
|
|
13
|
+
dataDictionaries,
|
|
14
|
+
}: UseDataDictionaryInitialArgs): DataDictionaryState {
|
|
15
|
+
// If no data dictionary configs are provided, return default initial state.
|
|
16
|
+
if (!dataDictionaries) return INITIAL_DATA_DICTIONARY_STATE;
|
|
17
|
+
|
|
18
|
+
return {
|
|
19
|
+
dictionaries: initDictionaries(dataDictionaries),
|
|
20
|
+
meta: null,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { TableState } from "@tanstack/react-table";
|
|
2
|
+
import { DataDictionaryConfig } from "../../../common/entities";
|
|
3
|
+
import { initPaginationState } from "../../../components/Table/coreOptions/state/pagination/utils";
|
|
4
|
+
import { DictionariesContext } from "../dictionaries/types";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Initializes the dictionaries context.
|
|
8
|
+
* @param dataDictionaries - The data dictionary configs.
|
|
9
|
+
* @returns The initialized dictionaries context.
|
|
10
|
+
*/
|
|
11
|
+
export function initDictionaries(
|
|
12
|
+
dataDictionaries: DataDictionaryConfig[]
|
|
13
|
+
): DictionariesContext {
|
|
14
|
+
return dataDictionaries.reduce((acc, { path, tableOptions }) => {
|
|
15
|
+
acc[path] = {
|
|
16
|
+
query: { dictionary: path },
|
|
17
|
+
state: initState(tableOptions),
|
|
18
|
+
};
|
|
19
|
+
return acc;
|
|
20
|
+
}, {} as DictionariesContext);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Initializes the dictionary state (TanStack Table state).
|
|
25
|
+
* @param tableOptions - The table options.
|
|
26
|
+
* @returns The initialized dictionary state.
|
|
27
|
+
*/
|
|
28
|
+
function initState(
|
|
29
|
+
tableOptions: DataDictionaryConfig["tableOptions"]
|
|
30
|
+
): Partial<TableState> {
|
|
31
|
+
const { initialState } = tableOptions;
|
|
32
|
+
|
|
33
|
+
return {
|
|
34
|
+
columnFilters: [],
|
|
35
|
+
globalFilter: undefined,
|
|
36
|
+
...initialState,
|
|
37
|
+
...initPaginationState(initialState),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
import { DataDictionaryStateContext } from "./context";
|
|
3
|
+
import { useDataDictionaryReducer } from "./hooks/UseDataDictionaryReducer/hook";
|
|
4
|
+
|
|
5
|
+
export function DataDictionaryStateProvider({
|
|
6
|
+
children,
|
|
7
|
+
}: {
|
|
8
|
+
children: ReactNode | ReactNode[];
|
|
9
|
+
}): JSX.Element {
|
|
10
|
+
const reducer = useDataDictionaryReducer();
|
|
11
|
+
return (
|
|
12
|
+
<DataDictionaryStateContext.Provider value={reducer}>
|
|
13
|
+
{children}
|
|
14
|
+
</DataDictionaryStateContext.Provider>
|
|
15
|
+
);
|
|
16
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { clearMetaAction } from "./actions/clearMeta/action";
|
|
2
|
+
import { stateToUrlAction } from "./actions/stateToUrl/action";
|
|
3
|
+
import {
|
|
4
|
+
DataDictionaryAction,
|
|
5
|
+
DataDictionaryActionKind,
|
|
6
|
+
} from "./actions/types";
|
|
7
|
+
import { updateColumnFiltersAction } from "./actions/updateColumnFilters/action";
|
|
8
|
+
import { updateGlobalFilterAction } from "./actions/updateGlobalFilter/action";
|
|
9
|
+
import { urlToStateAction } from "./actions/urlToState/action";
|
|
10
|
+
import { DataDictionaryState } from "./types";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Reducer for data dictionary.
|
|
14
|
+
* @param state - State.
|
|
15
|
+
* @param action - Action.
|
|
16
|
+
* @returns state.
|
|
17
|
+
*/
|
|
18
|
+
export function dataDictionaryReducer(
|
|
19
|
+
state: DataDictionaryState,
|
|
20
|
+
action: DataDictionaryAction
|
|
21
|
+
): DataDictionaryState {
|
|
22
|
+
const { payload, type } = action;
|
|
23
|
+
switch (type) {
|
|
24
|
+
case DataDictionaryActionKind.ClearMeta: {
|
|
25
|
+
return clearMetaAction(state, payload);
|
|
26
|
+
}
|
|
27
|
+
case DataDictionaryActionKind.StateToUrl: {
|
|
28
|
+
return stateToUrlAction(state, payload);
|
|
29
|
+
}
|
|
30
|
+
case DataDictionaryActionKind.UpdateColumnFilters: {
|
|
31
|
+
return updateColumnFiltersAction(state, payload);
|
|
32
|
+
}
|
|
33
|
+
case DataDictionaryActionKind.UpdateGlobalFilter: {
|
|
34
|
+
return updateGlobalFilterAction(state, payload);
|
|
35
|
+
}
|
|
36
|
+
case DataDictionaryActionKind.UrlToState: {
|
|
37
|
+
return urlToStateAction(state, payload);
|
|
38
|
+
}
|
|
39
|
+
default:
|
|
40
|
+
return state;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Dispatch } from "react";
|
|
2
|
+
import { META_COMMAND } from "../../hooks/stateSyncManager/hooks/UseMetaCommands/types";
|
|
3
|
+
import { DataDictionaryAction } from "./actions/types";
|
|
4
|
+
import { DictionariesContext } from "./dictionaries/types";
|
|
5
|
+
|
|
6
|
+
export interface DataDictionaryState {
|
|
7
|
+
dictionaries: DictionariesContext;
|
|
8
|
+
meta: Meta | null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface DataDictionaryStateContextProps {
|
|
12
|
+
dataDictionaryDispatch: Dispatch<DataDictionaryAction> | null;
|
|
13
|
+
dataDictionaryState: DataDictionaryState;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface Meta {
|
|
17
|
+
command: META_COMMAND;
|
|
18
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { IconButtonProps } from "@mui/material";
|
|
2
|
+
|
|
3
|
+
type IconButtonPropsOptions = {
|
|
4
|
+
COLOR: typeof COLOR;
|
|
5
|
+
EDGE: typeof EDGE;
|
|
6
|
+
SIZE: typeof SIZE;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const COLOR: Record<string, IconButtonProps["color"]> = {
|
|
10
|
+
DEFAULT: "default",
|
|
11
|
+
ERROR: "error",
|
|
12
|
+
INFO: "info",
|
|
13
|
+
INHERIT: "inherit",
|
|
14
|
+
INK: "ink",
|
|
15
|
+
INK_LIGHT: "inkLight",
|
|
16
|
+
PRIMARY: "primary",
|
|
17
|
+
SECONDARY: "secondary",
|
|
18
|
+
SUCCESS: "success",
|
|
19
|
+
WARNING: "warning",
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const EDGE: Record<string, IconButtonProps["edge"]> = {
|
|
23
|
+
END: "end",
|
|
24
|
+
START: "start",
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const SIZE: Record<string, IconButtonProps["size"]> = {
|
|
28
|
+
LARGE: "large",
|
|
29
|
+
MEDIUM: "medium",
|
|
30
|
+
SMALL: "small",
|
|
31
|
+
XLARGE: "xlarge",
|
|
32
|
+
XSMALL: "xsmall",
|
|
33
|
+
XXSMALL: "xxsmall",
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const ICON_BUTTON_PROPS: IconButtonPropsOptions = {
|
|
37
|
+
COLOR,
|
|
38
|
+
EDGE,
|
|
39
|
+
SIZE,
|
|
40
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { InputAdornmentProps } from "@mui/material";
|
|
2
|
+
|
|
3
|
+
type InputAdornmentPropsOptions = {
|
|
4
|
+
POSITION: typeof POSITION;
|
|
5
|
+
VARIANT: typeof VARIANT;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const POSITION: Record<string, InputAdornmentProps["position"]> = {
|
|
9
|
+
END: "end",
|
|
10
|
+
START: "start",
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const VARIANT: Record<string, InputAdornmentProps["variant"]> = {
|
|
14
|
+
FILLED: "filled",
|
|
15
|
+
OUTLINED: "outlined",
|
|
16
|
+
STANDARD: "standard",
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export const INPUT_ADORNMENT_PROPS: InputAdornmentPropsOptions = {
|
|
20
|
+
POSITION,
|
|
21
|
+
VARIANT,
|
|
22
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OutlinedInputProps } from "@mui/material";
|
|
2
|
+
|
|
3
|
+
type OutlinedInputPropsOptions = {
|
|
4
|
+
COLOR: typeof COLOR;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
const COLOR: Record<string, OutlinedInputProps["color"]> = {
|
|
8
|
+
PRIMARY: "primary",
|
|
9
|
+
SECONDARY: "secondary",
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export const OUTLINED_INPUT_PROPS: OutlinedInputPropsOptions = {
|
|
13
|
+
COLOR,
|
|
14
|
+
};
|
|
@@ -5,6 +5,7 @@ import { PALETTE } from "../../styles/common/constants/palette";
|
|
|
5
5
|
import { SHADOWS } from "../../styles/common/constants/shadows";
|
|
6
6
|
import { BUTTON_PROPS } from "../../styles/common/mui/button";
|
|
7
7
|
import { CHIP_PROPS } from "../../styles/common/mui/chip";
|
|
8
|
+
import { OUTLINED_INPUT_PROPS } from "../../styles/common/mui/outlinedInput";
|
|
8
9
|
import { desktopUp, mobileUp, tabletUp } from "./breakpoints";
|
|
9
10
|
import {
|
|
10
11
|
TEXT_BODY_400,
|
|
@@ -256,11 +257,25 @@ export const MuiButton = (theme: Theme): Components["MuiButton"] => {
|
|
|
256
257
|
minWidth: 0,
|
|
257
258
|
padding: 0,
|
|
258
259
|
},
|
|
259
|
-
textPrimary: {
|
|
260
|
-
color: theme.palette.primary.main,
|
|
261
|
-
},
|
|
262
260
|
},
|
|
263
261
|
variants: [
|
|
262
|
+
{
|
|
263
|
+
props: {
|
|
264
|
+
color: BUTTON_PROPS.COLOR.PRIMARY,
|
|
265
|
+
variant: BUTTON_PROPS.VARIANT.TEXT,
|
|
266
|
+
},
|
|
267
|
+
style: {
|
|
268
|
+
color: PALETTE.PRIMARY_MAIN,
|
|
269
|
+
// eslint-disable-next-line sort-keys -- disabling key order for readability
|
|
270
|
+
"&:hover": {
|
|
271
|
+
backgroundColor: "transparent",
|
|
272
|
+
textDecoration: "underline",
|
|
273
|
+
textDecorationColor: "currentColor",
|
|
274
|
+
textDecorationSkipInk: "none",
|
|
275
|
+
textUnderlinePosition: "from-font",
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
},
|
|
264
279
|
{
|
|
265
280
|
props: {
|
|
266
281
|
variant: "activeNav", // associated with "nav" variant.
|
|
@@ -439,6 +454,16 @@ export const MuiChip = (theme: Theme): Components["MuiChip"] => {
|
|
|
439
454
|
color: theme.palette.info.main,
|
|
440
455
|
},
|
|
441
456
|
},
|
|
457
|
+
{
|
|
458
|
+
props: {
|
|
459
|
+
color: CHIP_PROPS.COLOR.PRIMARY,
|
|
460
|
+
variant: CHIP_PROPS.VARIANT.FILLED,
|
|
461
|
+
},
|
|
462
|
+
style: {
|
|
463
|
+
backgroundColor: PALETTE.PRIMARY_MAIN,
|
|
464
|
+
color: PALETTE.COMMON_WHITE,
|
|
465
|
+
},
|
|
466
|
+
},
|
|
442
467
|
{
|
|
443
468
|
props: { color: "success" },
|
|
444
469
|
style: {
|
|
@@ -866,9 +891,6 @@ export const MuiIconButton = (theme: Theme): Components["MuiIconButton"] => {
|
|
|
866
891
|
export const MuiInputBase = (theme: Theme): Components["MuiInputBase"] => {
|
|
867
892
|
return {
|
|
868
893
|
styleOverrides: {
|
|
869
|
-
adornedStart: {
|
|
870
|
-
gap: 8,
|
|
871
|
-
},
|
|
872
894
|
multiline: {
|
|
873
895
|
height: "unset",
|
|
874
896
|
},
|
|
@@ -881,6 +903,17 @@ export const MuiInputBase = (theme: Theme): Components["MuiInputBase"] => {
|
|
|
881
903
|
[tabletUp]: {
|
|
882
904
|
fontSize: theme.typography[TEXT_BODY_400].fontSize,
|
|
883
905
|
},
|
|
906
|
+
variants: [
|
|
907
|
+
/* PRIMARY */ /* TODO: remove `adornedStart` when all input components are refactored to color: secondary */
|
|
908
|
+
{
|
|
909
|
+
props: { color: "primary" },
|
|
910
|
+
style: {
|
|
911
|
+
adornedStart: {
|
|
912
|
+
gap: 8,
|
|
913
|
+
},
|
|
914
|
+
},
|
|
915
|
+
},
|
|
916
|
+
],
|
|
884
917
|
},
|
|
885
918
|
},
|
|
886
919
|
};
|
|
@@ -1012,11 +1045,8 @@ export const MuiOutlinedInput = (
|
|
|
1012
1045
|
root: {
|
|
1013
1046
|
backgroundColor: PALETTE.COMMON_WHITE,
|
|
1014
1047
|
boxShadow: `inset 0 2px 0 0 ${COLOR_MIXES.COMMON_BLACK_04}`,
|
|
1015
|
-
paddingLeft: 12,
|
|
1048
|
+
paddingLeft: 12, // TODO: remove when all input components are refactored to color: secondary.
|
|
1016
1049
|
// eslint-disable-next-line sort-keys -- disabling key order for readability
|
|
1017
|
-
"& .MuiSvgIcon-root": {
|
|
1018
|
-
color: theme.palette.ink.light, // Adornment e.g. "SearchIcon".
|
|
1019
|
-
},
|
|
1020
1050
|
"&:hover": {
|
|
1021
1051
|
"& .MuiOutlinedInput-notchedOutline": {
|
|
1022
1052
|
borderColor: theme.palette.smoke.dark,
|
|
@@ -1028,9 +1058,6 @@ export const MuiOutlinedInput = (
|
|
|
1028
1058
|
borderColor: theme.palette.ink.main,
|
|
1029
1059
|
borderWidth: 1,
|
|
1030
1060
|
},
|
|
1031
|
-
"& .MuiSvgIcon-root": {
|
|
1032
|
-
color: theme.palette.ink.main, // Adornment e.g. "SearchIcon".
|
|
1033
|
-
},
|
|
1034
1061
|
},
|
|
1035
1062
|
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1036
1063
|
"&.Mui-disabled": {
|
|
@@ -1038,9 +1065,6 @@ export const MuiOutlinedInput = (
|
|
|
1038
1065
|
borderColor: theme.palette.smoke.dark,
|
|
1039
1066
|
borderWidth: 1,
|
|
1040
1067
|
},
|
|
1041
|
-
"& .MuiSvgIcon-root": {
|
|
1042
|
-
color: theme.palette.ink.light,
|
|
1043
|
-
},
|
|
1044
1068
|
},
|
|
1045
1069
|
"&.Mui-error": {
|
|
1046
1070
|
backgroundColor: theme.palette.alert.lightest,
|
|
@@ -1050,6 +1074,88 @@ export const MuiOutlinedInput = (
|
|
|
1050
1074
|
borderWidth: 1,
|
|
1051
1075
|
},
|
|
1052
1076
|
},
|
|
1077
|
+
variants: [
|
|
1078
|
+
/* PRIMARY */
|
|
1079
|
+
{
|
|
1080
|
+
props: { color: OUTLINED_INPUT_PROPS.COLOR.PRIMARY },
|
|
1081
|
+
style: {
|
|
1082
|
+
"& .MuiSvgIcon-root": {
|
|
1083
|
+
color: theme.palette.ink.light, // Adornment e.g. "SearchIcon". TODO: remove when all input components are refactored to color: secondary.
|
|
1084
|
+
},
|
|
1085
|
+
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1086
|
+
"&.Mui-focused": {
|
|
1087
|
+
"& .MuiSvgIcon-root": {
|
|
1088
|
+
color: theme.palette.ink.main, // Adornment e.g. "SearchIcon". TODO: remove when all input components are refactored to color: secondary.
|
|
1089
|
+
},
|
|
1090
|
+
},
|
|
1091
|
+
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1092
|
+
"&.Mui-disabled": {
|
|
1093
|
+
"& .MuiSvgIcon-root": {
|
|
1094
|
+
color: theme.palette.ink.light, // TODO: remove when all input components are refactored to color: secondary.
|
|
1095
|
+
},
|
|
1096
|
+
},
|
|
1097
|
+
},
|
|
1098
|
+
},
|
|
1099
|
+
/* SECONDARY */
|
|
1100
|
+
{
|
|
1101
|
+
props: { color: OUTLINED_INPUT_PROPS.COLOR.SECONDARY },
|
|
1102
|
+
style: {
|
|
1103
|
+
backgroundColor: PALETTE.COMMON_WHITE,
|
|
1104
|
+
boxShadow: `inset 0 2px 0 0 ${COLOR_MIXES.COMMON_BLACK_04}`,
|
|
1105
|
+
color: PALETTE.INK_LIGHT,
|
|
1106
|
+
padding: "0 12px",
|
|
1107
|
+
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1108
|
+
".MuiOutlinedInput-input": {
|
|
1109
|
+
color: "inherit",
|
|
1110
|
+
height: 20,
|
|
1111
|
+
padding: "10px 0",
|
|
1112
|
+
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1113
|
+
"&::placeholder": {
|
|
1114
|
+
color: "inherit",
|
|
1115
|
+
opacity: 0.8,
|
|
1116
|
+
},
|
|
1117
|
+
},
|
|
1118
|
+
".MuiOutlinedInput-notchedOutline": {
|
|
1119
|
+
borderColor: PALETTE.SMOKE_DARK,
|
|
1120
|
+
borderWidth: 1,
|
|
1121
|
+
},
|
|
1122
|
+
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1123
|
+
"&.Mui-focused": {
|
|
1124
|
+
color: PALETTE.INK_MAIN,
|
|
1125
|
+
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1126
|
+
".MuiOutlinedInput-input": {
|
|
1127
|
+
"&::placeholder": {
|
|
1128
|
+
opacity: 0,
|
|
1129
|
+
},
|
|
1130
|
+
},
|
|
1131
|
+
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1132
|
+
".MuiOutlinedInput-notchedOutline": {
|
|
1133
|
+
borderColor: PALETTE.INK_MAIN,
|
|
1134
|
+
borderWidth: 1,
|
|
1135
|
+
},
|
|
1136
|
+
},
|
|
1137
|
+
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1138
|
+
"&.Mui-disabled": {
|
|
1139
|
+
backgroundColor: PALETTE.SMOKE_LIGHT,
|
|
1140
|
+
color: PALETTE.INK_LIGHT,
|
|
1141
|
+
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1142
|
+
".MuiOutlinedInput-input": {
|
|
1143
|
+
WebkitTextFillColor: "unset",
|
|
1144
|
+
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1145
|
+
"&::placeholder": {
|
|
1146
|
+
color: "inherit",
|
|
1147
|
+
opacity: 1,
|
|
1148
|
+
},
|
|
1149
|
+
},
|
|
1150
|
+
// eslint-disable-next-line sort-keys -- disabling key order for specificity
|
|
1151
|
+
".MuiOutlinedInput-notchedOutline": {
|
|
1152
|
+
borderColor: PALETTE.SMOKE_DARK,
|
|
1153
|
+
borderWidth: 1,
|
|
1154
|
+
},
|
|
1155
|
+
},
|
|
1156
|
+
},
|
|
1157
|
+
},
|
|
1158
|
+
],
|
|
1053
1159
|
},
|
|
1054
1160
|
},
|
|
1055
1161
|
};
|
|
@@ -59,6 +59,10 @@ export const MuiButtonGroup: Components["MuiButtonGroup"] = {
|
|
|
59
59
|
backgroundColor: PALETTE.SMOKE_LIGHTEST,
|
|
60
60
|
boxShadow: `inset 0 0 0 1px ${PALETTE.SMOKE_DARK}`,
|
|
61
61
|
},
|
|
62
|
+
// eslint-disable-next-line sort-keys -- disabling key order for readability
|
|
63
|
+
"&.Mui-focusVisible": {
|
|
64
|
+
boxShadow: `inset 0 0 0 1px ${PALETTE.SMOKE_DARK}, 0 1px 0 0 ${COLOR_MIXES.COMMON_BLACK_08}`,
|
|
65
|
+
},
|
|
62
66
|
},
|
|
63
67
|
},
|
|
64
68
|
},
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Components, Theme } from "@mui/material";
|
|
2
|
+
import { PALETTE } from "../../styles/common/constants/palette";
|
|
2
3
|
import { TABLE_CELL_PROPS } from "../../styles/common/mui/tableCell";
|
|
3
4
|
import { TEXT_BODY_400, TEXT_BODY_SMALL_500 } from "../common/typography";
|
|
4
5
|
|
|
@@ -34,6 +35,11 @@ export const MuiTableCell = (theme: Theme): Components["MuiTableCell"] => {
|
|
|
34
35
|
props: { variant: TABLE_CELL_PROPS.VARIANT.BODY },
|
|
35
36
|
style: {
|
|
36
37
|
...typography[TEXT_BODY_400],
|
|
38
|
+
"& mark": {
|
|
39
|
+
backgroundColor: PALETTE.WARNING_LIGHT,
|
|
40
|
+
color: "inherit",
|
|
41
|
+
padding: "2px 0",
|
|
42
|
+
},
|
|
37
43
|
},
|
|
38
44
|
},
|
|
39
45
|
{
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses a JSON-encoded value from a URL query parameter.
|
|
3
|
+
*
|
|
4
|
+
* This function is specifically designed for query parameters that contain
|
|
5
|
+
* serialized complex data (arrays or objects), not for simple string values.
|
|
6
|
+
*
|
|
7
|
+
* It handles Next.js query parameters which can be string, string[] or undefined.
|
|
8
|
+
* Repeated parameters (`string[]`) are not supported.
|
|
9
|
+
*
|
|
10
|
+
* @param param - URL query parameter value.
|
|
11
|
+
* @param defaultValue - Default value.
|
|
12
|
+
* @returns Parsed complex data structure or default value.
|
|
13
|
+
*/
|
|
14
|
+
export function parseJsonQueryParam<T = unknown>(
|
|
15
|
+
param: string | string[] | undefined,
|
|
16
|
+
defaultValue?: T
|
|
17
|
+
): T | undefined {
|
|
18
|
+
// Handle non-string parameters.
|
|
19
|
+
if (typeof param !== "string") return defaultValue;
|
|
20
|
+
|
|
21
|
+
try {
|
|
22
|
+
return JSON.parse(decodeURIComponent(param));
|
|
23
|
+
} catch (error) {
|
|
24
|
+
console.warn("Failed to parse query param JSON:", error);
|
|
25
|
+
return defaultValue;
|
|
26
|
+
}
|
|
27
|
+
}
|