@trackunit/filters-filter-bar 1.3.224 → 1.3.227
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/index.cjs.js +27 -11
- package/index.esm.js +27 -11
- package/package.json +13 -13
- package/src/lib/components/FiltersMenu.d.ts +5 -1
- package/src/lib/hooks/useFiltersMenu.d.ts +6 -5
- package/src/lib/hooks/useGroupFilters.d.ts +2 -2
package/index.cjs.js
CHANGED
|
@@ -12,6 +12,7 @@ var reactFormComponents = require('@trackunit/react-form-components');
|
|
|
12
12
|
var reactDateAndTimeComponents = require('@trackunit/react-date-and-time-components');
|
|
13
13
|
var sharedUtils = require('@trackunit/shared-utils');
|
|
14
14
|
var tailwindMerge = require('tailwind-merge');
|
|
15
|
+
var irisAppApi = require('@trackunit/iris-app-api');
|
|
15
16
|
var cssClassVarianceUtilities = require('@trackunit/css-class-variance-utilities');
|
|
16
17
|
var dequal = require('dequal');
|
|
17
18
|
var isEqual = require('lodash/isEqual');
|
|
@@ -801,7 +802,7 @@ const FilterButtonTooltipLabel = ({ filterBarConfig, }) => {
|
|
|
801
802
|
* Custom React hook for grouping and filtering a list of filters.
|
|
802
803
|
*
|
|
803
804
|
* @param {FilterDefinition[]} filterDefinitions - The list of filter definitions to group and filter.
|
|
804
|
-
* @param {string[]} hiddenFilters - An array of filter keys representing filters to be hidden
|
|
805
|
+
* @param {string[]} hiddenFilters - An array of filter keys representing filters to be hidden, if not provided, all filters will be shown
|
|
805
806
|
* @returns {UseGroupFiltersReturnType} An object containing the grouped filters.
|
|
806
807
|
*/
|
|
807
808
|
const useGroupFilters = (filterDefinitions, hiddenFilters) => {
|
|
@@ -812,7 +813,12 @@ const useGroupFilters = (filterDefinitions, hiddenFilters) => {
|
|
|
812
813
|
.map(key => ({
|
|
813
814
|
key,
|
|
814
815
|
title: t(`filtersBar.groups.${key}`),
|
|
815
|
-
filters: filterDefinitions.filter(rawFilter =>
|
|
816
|
+
filters: filterDefinitions.filter(rawFilter => {
|
|
817
|
+
const isInGroup = rawFilter.group === key;
|
|
818
|
+
const isHidden = hiddenFilters ? hiddenFilters.includes(rawFilter.filterKey) : false;
|
|
819
|
+
const shouldInclude = isInGroup && !isHidden;
|
|
820
|
+
return shouldInclude;
|
|
821
|
+
}),
|
|
816
822
|
}))
|
|
817
823
|
.filter(filter => filter.filters.length > 0);
|
|
818
824
|
}, [filterDefinitions, hiddenFilters, t]);
|
|
@@ -825,21 +831,29 @@ const uniqueKeysFromGroups = (filters) => [...new Set(filters.map(filter => filt
|
|
|
825
831
|
* It returns the filters that should be shown in the menu, the filters that should be shown directly in the filter bar,
|
|
826
832
|
* and the filters that should be shown in the search results.
|
|
827
833
|
*/
|
|
828
|
-
const useFiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], allowShowFiltersDirectly = true, }) => {
|
|
834
|
+
const useFiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], allowShowFiltersDirectly = true, includeFilterKeys, }) => {
|
|
829
835
|
const hideInMenu = react.useMemo(() => {
|
|
830
|
-
|
|
836
|
+
const result = sharedUtils.objectValues(filterBarDefinition)
|
|
831
837
|
.map(filter => {
|
|
832
838
|
const showInFilterBar = filter.showInFilterBar ? filter.showInFilterBar() : true;
|
|
833
839
|
const showInStarredMenu = filter.showInStarredMenu ? filter.showInStarredMenu() : true;
|
|
834
840
|
const showMenuAnywayBecauseFilterHasChanged = filterBarConfig.appliedFilterKeys().includes(filter.filterKey);
|
|
835
|
-
|
|
841
|
+
const showInMenu = includeFilterKeys
|
|
842
|
+
? filter.filterKey.startsWith("cf__")
|
|
843
|
+
? includeFilterKeys.includes(irisAppApi.customFieldFilterKey)
|
|
844
|
+
: includeFilterKeys.includes(filter.filterKey)
|
|
845
|
+
: true;
|
|
846
|
+
return ((!showInFilterBar || !showInStarredMenu) && !showMenuAnywayBecauseFilterHasChanged) || !showInMenu
|
|
836
847
|
? filter.filterKey
|
|
837
848
|
: null;
|
|
838
849
|
})
|
|
839
850
|
.filter(sharedUtils.truthy);
|
|
840
|
-
|
|
851
|
+
return result;
|
|
852
|
+
}, [filterBarConfig, filterBarDefinition, includeFilterKeys]);
|
|
841
853
|
const removeCustomFieldsGroup = react.useCallback((groupOfFilters) => groupOfFilters.filter(group => group.key !== "CUSTOM_FIELDS"), []);
|
|
842
|
-
const
|
|
854
|
+
const filterBarDefinitionArray = react.useMemo(() => sharedUtils.objectValues(filterBarDefinition), [filterBarDefinition]);
|
|
855
|
+
const hiddenFiltersArray = react.useMemo(() => [...hideInMenu, ...hiddenFilters], [hideInMenu, hiddenFilters]);
|
|
856
|
+
const { filtersGrouped } = useGroupFilters(filterBarDefinitionArray, hiddenFiltersArray);
|
|
843
857
|
const { appliedFilters, filtersToShow, showDirectlyFilters, hasCustomFields } = react.useMemo(() => {
|
|
844
858
|
const allFilters = filtersGrouped.map(group => group.filters).flat();
|
|
845
859
|
return {
|
|
@@ -849,9 +863,10 @@ const useFiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters =
|
|
|
849
863
|
hasCustomFields: allFilters.some(filter => filter.group === "CUSTOM_FIELDS"),
|
|
850
864
|
};
|
|
851
865
|
}, [filterBarConfig, filtersGrouped, allowShowFiltersDirectly]);
|
|
852
|
-
const
|
|
853
|
-
const
|
|
854
|
-
const { filtersGrouped:
|
|
866
|
+
const textCallback = react.useCallback((item) => [item.title], []);
|
|
867
|
+
const [searchResults, searchText, setSearchText] = reactCoreHooks.useTextSearch(filtersToShow, textCallback);
|
|
868
|
+
const { filtersGrouped: searchResultsGrouped } = useGroupFilters(searchResults);
|
|
869
|
+
const { filtersGrouped: filtersToShowGrouped } = useGroupFilters(filtersToShow);
|
|
855
870
|
const appliedCustomFields = react.useMemo(() => appliedFilters.filter(filter => filter.group === "CUSTOM_FIELDS"), [appliedFilters]);
|
|
856
871
|
return react.useMemo(() => {
|
|
857
872
|
return {
|
|
@@ -1023,7 +1038,7 @@ const MultipleFilterTooltipLabel = ({ filterBarConfig, filterKeys, filters, }) =
|
|
|
1023
1038
|
* @template TFilterBarDefinition - The type representing the filter bar definition.
|
|
1024
1039
|
* @returns {ReactElement} - Returns the FilterMenu component.
|
|
1025
1040
|
*/
|
|
1026
|
-
const FiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact, title, dataTestId = "filters-menu", className, showAppliedFiltersCount = true, buttonProps, allowShowFiltersDirectly = true, }) => {
|
|
1041
|
+
const FiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact, title, dataTestId = "filters-menu", className, showAppliedFiltersCount = true, buttonProps, allowShowFiltersDirectly = true, includeFilterKeys, }) => {
|
|
1027
1042
|
const [t] = useTranslation();
|
|
1028
1043
|
const { isSm } = reactComponents.useViewportBreakpoints();
|
|
1029
1044
|
const [showCustomFilters, setShowCustomFilters] = react.useState(false);
|
|
@@ -1032,6 +1047,7 @@ const FiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [],
|
|
|
1032
1047
|
filterBarDefinition,
|
|
1033
1048
|
filterBarConfig,
|
|
1034
1049
|
hiddenFilters,
|
|
1050
|
+
includeFilterKeys,
|
|
1035
1051
|
allowShowFiltersDirectly,
|
|
1036
1052
|
});
|
|
1037
1053
|
return (jsxRuntime.jsxs("div", { className: tailwindMerge.twMerge("flex items-center gap-2", className), "data-testid": dataTestId, children: [jsxRuntime.jsx(reactComponents.Popover, { onOpenStateChange: open => {
|
package/index.esm.js
CHANGED
|
@@ -10,6 +10,7 @@ import { Search, NumberField, RadioGroup } from '@trackunit/react-form-component
|
|
|
10
10
|
import { DayRangePicker } from '@trackunit/react-date-and-time-components';
|
|
11
11
|
import { nonNullable, capitalize as capitalize$1, objectValues, truthy, objectKeys } from '@trackunit/shared-utils';
|
|
12
12
|
import { twMerge } from 'tailwind-merge';
|
|
13
|
+
import { customFieldFilterKey } from '@trackunit/iris-app-api';
|
|
13
14
|
import { cvaMerge } from '@trackunit/css-class-variance-utilities';
|
|
14
15
|
import { dequal } from 'dequal';
|
|
15
16
|
import isEqual from 'lodash/isEqual';
|
|
@@ -799,7 +800,7 @@ const FilterButtonTooltipLabel = ({ filterBarConfig, }) => {
|
|
|
799
800
|
* Custom React hook for grouping and filtering a list of filters.
|
|
800
801
|
*
|
|
801
802
|
* @param {FilterDefinition[]} filterDefinitions - The list of filter definitions to group and filter.
|
|
802
|
-
* @param {string[]} hiddenFilters - An array of filter keys representing filters to be hidden
|
|
803
|
+
* @param {string[]} hiddenFilters - An array of filter keys representing filters to be hidden, if not provided, all filters will be shown
|
|
803
804
|
* @returns {UseGroupFiltersReturnType} An object containing the grouped filters.
|
|
804
805
|
*/
|
|
805
806
|
const useGroupFilters = (filterDefinitions, hiddenFilters) => {
|
|
@@ -810,7 +811,12 @@ const useGroupFilters = (filterDefinitions, hiddenFilters) => {
|
|
|
810
811
|
.map(key => ({
|
|
811
812
|
key,
|
|
812
813
|
title: t(`filtersBar.groups.${key}`),
|
|
813
|
-
filters: filterDefinitions.filter(rawFilter =>
|
|
814
|
+
filters: filterDefinitions.filter(rawFilter => {
|
|
815
|
+
const isInGroup = rawFilter.group === key;
|
|
816
|
+
const isHidden = hiddenFilters ? hiddenFilters.includes(rawFilter.filterKey) : false;
|
|
817
|
+
const shouldInclude = isInGroup && !isHidden;
|
|
818
|
+
return shouldInclude;
|
|
819
|
+
}),
|
|
814
820
|
}))
|
|
815
821
|
.filter(filter => filter.filters.length > 0);
|
|
816
822
|
}, [filterDefinitions, hiddenFilters, t]);
|
|
@@ -823,21 +829,29 @@ const uniqueKeysFromGroups = (filters) => [...new Set(filters.map(filter => filt
|
|
|
823
829
|
* It returns the filters that should be shown in the menu, the filters that should be shown directly in the filter bar,
|
|
824
830
|
* and the filters that should be shown in the search results.
|
|
825
831
|
*/
|
|
826
|
-
const useFiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], allowShowFiltersDirectly = true, }) => {
|
|
832
|
+
const useFiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], allowShowFiltersDirectly = true, includeFilterKeys, }) => {
|
|
827
833
|
const hideInMenu = useMemo(() => {
|
|
828
|
-
|
|
834
|
+
const result = objectValues(filterBarDefinition)
|
|
829
835
|
.map(filter => {
|
|
830
836
|
const showInFilterBar = filter.showInFilterBar ? filter.showInFilterBar() : true;
|
|
831
837
|
const showInStarredMenu = filter.showInStarredMenu ? filter.showInStarredMenu() : true;
|
|
832
838
|
const showMenuAnywayBecauseFilterHasChanged = filterBarConfig.appliedFilterKeys().includes(filter.filterKey);
|
|
833
|
-
|
|
839
|
+
const showInMenu = includeFilterKeys
|
|
840
|
+
? filter.filterKey.startsWith("cf__")
|
|
841
|
+
? includeFilterKeys.includes(customFieldFilterKey)
|
|
842
|
+
: includeFilterKeys.includes(filter.filterKey)
|
|
843
|
+
: true;
|
|
844
|
+
return ((!showInFilterBar || !showInStarredMenu) && !showMenuAnywayBecauseFilterHasChanged) || !showInMenu
|
|
834
845
|
? filter.filterKey
|
|
835
846
|
: null;
|
|
836
847
|
})
|
|
837
848
|
.filter(truthy);
|
|
838
|
-
|
|
849
|
+
return result;
|
|
850
|
+
}, [filterBarConfig, filterBarDefinition, includeFilterKeys]);
|
|
839
851
|
const removeCustomFieldsGroup = useCallback((groupOfFilters) => groupOfFilters.filter(group => group.key !== "CUSTOM_FIELDS"), []);
|
|
840
|
-
const
|
|
852
|
+
const filterBarDefinitionArray = useMemo(() => objectValues(filterBarDefinition), [filterBarDefinition]);
|
|
853
|
+
const hiddenFiltersArray = useMemo(() => [...hideInMenu, ...hiddenFilters], [hideInMenu, hiddenFilters]);
|
|
854
|
+
const { filtersGrouped } = useGroupFilters(filterBarDefinitionArray, hiddenFiltersArray);
|
|
841
855
|
const { appliedFilters, filtersToShow, showDirectlyFilters, hasCustomFields } = useMemo(() => {
|
|
842
856
|
const allFilters = filtersGrouped.map(group => group.filters).flat();
|
|
843
857
|
return {
|
|
@@ -847,9 +861,10 @@ const useFiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters =
|
|
|
847
861
|
hasCustomFields: allFilters.some(filter => filter.group === "CUSTOM_FIELDS"),
|
|
848
862
|
};
|
|
849
863
|
}, [filterBarConfig, filtersGrouped, allowShowFiltersDirectly]);
|
|
850
|
-
const
|
|
851
|
-
const
|
|
852
|
-
const { filtersGrouped:
|
|
864
|
+
const textCallback = useCallback((item) => [item.title], []);
|
|
865
|
+
const [searchResults, searchText, setSearchText] = useTextSearch(filtersToShow, textCallback);
|
|
866
|
+
const { filtersGrouped: searchResultsGrouped } = useGroupFilters(searchResults);
|
|
867
|
+
const { filtersGrouped: filtersToShowGrouped } = useGroupFilters(filtersToShow);
|
|
853
868
|
const appliedCustomFields = useMemo(() => appliedFilters.filter(filter => filter.group === "CUSTOM_FIELDS"), [appliedFilters]);
|
|
854
869
|
return useMemo(() => {
|
|
855
870
|
return {
|
|
@@ -1021,7 +1036,7 @@ const MultipleFilterTooltipLabel = ({ filterBarConfig, filterKeys, filters, }) =
|
|
|
1021
1036
|
* @template TFilterBarDefinition - The type representing the filter bar definition.
|
|
1022
1037
|
* @returns {ReactElement} - Returns the FilterMenu component.
|
|
1023
1038
|
*/
|
|
1024
|
-
const FiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact, title, dataTestId = "filters-menu", className, showAppliedFiltersCount = true, buttonProps, allowShowFiltersDirectly = true, }) => {
|
|
1039
|
+
const FiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact, title, dataTestId = "filters-menu", className, showAppliedFiltersCount = true, buttonProps, allowShowFiltersDirectly = true, includeFilterKeys, }) => {
|
|
1025
1040
|
const [t] = useTranslation();
|
|
1026
1041
|
const { isSm } = useViewportBreakpoints();
|
|
1027
1042
|
const [showCustomFilters, setShowCustomFilters] = useState(false);
|
|
@@ -1030,6 +1045,7 @@ const FiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [],
|
|
|
1030
1045
|
filterBarDefinition,
|
|
1031
1046
|
filterBarConfig,
|
|
1032
1047
|
hiddenFilters,
|
|
1048
|
+
includeFilterKeys,
|
|
1033
1049
|
allowShowFiltersDirectly,
|
|
1034
1050
|
});
|
|
1035
1051
|
return (jsxs("div", { className: twMerge("flex items-center gap-2", className), "data-testid": dataTestId, children: [jsx(Popover, { onOpenStateChange: open => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/filters-filter-bar",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.227",
|
|
4
4
|
"repository": "https://github.com/Trackunit/manager",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"engines": {
|
|
@@ -14,18 +14,18 @@
|
|
|
14
14
|
"tailwind-merge": "^2.0.0",
|
|
15
15
|
"string-ts": "^2.0.0",
|
|
16
16
|
"zod": "3.23.4",
|
|
17
|
-
"@trackunit/iris-app-api": "1.3.
|
|
18
|
-
"@trackunit/react-core-hooks": "1.3.
|
|
19
|
-
"@trackunit/react-filter-components": "1.3.
|
|
20
|
-
"@trackunit/react-date-and-time-components": "1.3.
|
|
21
|
-
"@trackunit/shared-utils": "1.5.
|
|
22
|
-
"@trackunit/react-form-components": "1.3.
|
|
23
|
-
"@trackunit/react-core-contexts-api": "1.4.
|
|
24
|
-
"@trackunit/geo-json-utils": "1.3.
|
|
25
|
-
"@trackunit/i18n-library-translation": "1.3.
|
|
26
|
-
"@trackunit/css-class-variance-utilities": "1.3.
|
|
27
|
-
"@trackunit/react-components": "1.4.
|
|
28
|
-
"@trackunit/react-test-setup": "1.0.
|
|
17
|
+
"@trackunit/iris-app-api": "1.3.141",
|
|
18
|
+
"@trackunit/react-core-hooks": "1.3.144",
|
|
19
|
+
"@trackunit/react-filter-components": "1.3.185",
|
|
20
|
+
"@trackunit/react-date-and-time-components": "1.3.188",
|
|
21
|
+
"@trackunit/shared-utils": "1.5.132",
|
|
22
|
+
"@trackunit/react-form-components": "1.3.187",
|
|
23
|
+
"@trackunit/react-core-contexts-api": "1.4.139",
|
|
24
|
+
"@trackunit/geo-json-utils": "1.3.132",
|
|
25
|
+
"@trackunit/i18n-library-translation": "1.3.151",
|
|
26
|
+
"@trackunit/css-class-variance-utilities": "1.3.132",
|
|
27
|
+
"@trackunit/react-components": "1.4.163",
|
|
28
|
+
"@trackunit/react-test-setup": "1.0.22"
|
|
29
29
|
},
|
|
30
30
|
"module": "./index.esm.js",
|
|
31
31
|
"main": "./index.cjs.js",
|
|
@@ -34,6 +34,10 @@ interface FiltersMenuProps<TFilterBarDefinition extends FilterBarDefinition> ext
|
|
|
34
34
|
* The icon props for the filter button to override the icon look and feel.
|
|
35
35
|
*/
|
|
36
36
|
buttonProps?: ButtonProps;
|
|
37
|
+
/**
|
|
38
|
+
* The filter keys to include in the filter bar, if not defined all filters will be shown.
|
|
39
|
+
*/
|
|
40
|
+
includeFilterKeys?: string[];
|
|
37
41
|
}
|
|
38
42
|
/**
|
|
39
43
|
* FilterMenu is a React component that displays a list of filters in a popover menu based on the provided filter bar configuration.
|
|
@@ -41,5 +45,5 @@ interface FiltersMenuProps<TFilterBarDefinition extends FilterBarDefinition> ext
|
|
|
41
45
|
* @template TFilterBarDefinition - The type representing the filter bar definition.
|
|
42
46
|
* @returns {ReactElement} - Returns the FilterMenu component.
|
|
43
47
|
*/
|
|
44
|
-
export declare const FiltersMenu: <TFilterBarDefinition extends FilterBarDefinition>({ filterBarDefinition, filterBarConfig, hiddenFilters, compact, title, dataTestId, className, showAppliedFiltersCount, buttonProps, allowShowFiltersDirectly, }: FiltersMenuProps<TFilterBarDefinition>) => ReactElement;
|
|
48
|
+
export declare const FiltersMenu: <TFilterBarDefinition extends FilterBarDefinition>({ filterBarDefinition, filterBarConfig, hiddenFilters, compact, title, dataTestId, className, showAppliedFiltersCount, buttonProps, allowShowFiltersDirectly, includeFilterKeys, }: FiltersMenuProps<TFilterBarDefinition>) => ReactElement;
|
|
45
49
|
export {};
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import { FilterBarConfig, FilterBarDefinition, FilterMapActions, FilterMapGetter } from "../types/FilterTypes";
|
|
1
|
+
import { FilterBarConfig, FilterBarDefinition, FilterDefinition, FilterMapActions, FilterMapGetter } from "../types/FilterTypes";
|
|
2
2
|
import { GroupOfFilters } from "./useGroupFilters";
|
|
3
3
|
type UseFiltersMenuProps<TFilterBarDefinition extends FilterBarDefinition> = {
|
|
4
4
|
filterBarDefinition: TFilterBarDefinition;
|
|
5
5
|
filterBarConfig: FilterBarConfig<TFilterBarDefinition> & FilterMapActions & FilterMapGetter;
|
|
6
6
|
hiddenFilters?: string[];
|
|
7
7
|
allowShowFiltersDirectly?: boolean;
|
|
8
|
+
includeFilterKeys?: string[];
|
|
8
9
|
};
|
|
9
10
|
/**
|
|
10
11
|
* This hook is used to manage the filters menu.
|
|
11
12
|
* It returns the filters that should be shown in the menu, the filters that should be shown directly in the filter bar,
|
|
12
13
|
* and the filters that should be shown in the search results.
|
|
13
14
|
*/
|
|
14
|
-
export declare const useFiltersMenu: <TFilterBarDefinition extends FilterBarDefinition>({ filterBarDefinition, filterBarConfig, hiddenFilters, allowShowFiltersDirectly, }: UseFiltersMenuProps<TFilterBarDefinition>) => {
|
|
15
|
-
appliedFilters:
|
|
15
|
+
export declare const useFiltersMenu: <TFilterBarDefinition extends FilterBarDefinition>({ filterBarDefinition, filterBarConfig, hiddenFilters, allowShowFiltersDirectly, includeFilterKeys, }: UseFiltersMenuProps<TFilterBarDefinition>) => {
|
|
16
|
+
appliedFilters: FilterDefinition[];
|
|
16
17
|
hasCustomFields: boolean;
|
|
17
|
-
showDirectlyFilters:
|
|
18
|
-
appliedCustomFields:
|
|
18
|
+
showDirectlyFilters: FilterDefinition[];
|
|
19
|
+
appliedCustomFields: FilterDefinition[];
|
|
19
20
|
searchText: string;
|
|
20
21
|
setSearchText: import("react").Dispatch<string>;
|
|
21
22
|
filtersToShowGrouped: GroupOfFilters[];
|
|
@@ -20,8 +20,8 @@ interface UseGroupFiltersReturnType {
|
|
|
20
20
|
* Custom React hook for grouping and filtering a list of filters.
|
|
21
21
|
*
|
|
22
22
|
* @param {FilterDefinition[]} filterDefinitions - The list of filter definitions to group and filter.
|
|
23
|
-
* @param {string[]} hiddenFilters - An array of filter keys representing filters to be hidden
|
|
23
|
+
* @param {string[]} hiddenFilters - An array of filter keys representing filters to be hidden, if not provided, all filters will be shown
|
|
24
24
|
* @returns {UseGroupFiltersReturnType} An object containing the grouped filters.
|
|
25
25
|
*/
|
|
26
|
-
export declare const useGroupFilters: (filterDefinitions: FilterDefinition[], hiddenFilters
|
|
26
|
+
export declare const useGroupFilters: (filterDefinitions: FilterDefinition[], hiddenFilters?: string[]) => UseGroupFiltersReturnType;
|
|
27
27
|
export {};
|