@trackunit/filters-filter-bar 1.3.235 → 1.3.236
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/package.json +13 -13
- package/src/lib/FilterBar.d.ts +1 -1
- package/src/lib/components/AppliedFiltersRenderer.d.ts +1 -1
- package/src/lib/components/DefaultCheckboxFilter.d.ts +1 -1
- package/src/lib/components/DefaultFilterTypes.d.ts +2 -2
- package/src/lib/components/FilterOptionsResults.d.ts +2 -2
- package/src/lib/components/FilterResults.d.ts +2 -2
- package/src/lib/components/FilterTableComponent.d.ts +1 -1
- package/src/lib/components/FilterTooltips/MultipleFilterTooltipLabel.d.ts +2 -2
- package/src/lib/components/FiltersMenu.d.ts +2 -2
- package/src/lib/components/FiltersMenuContent.d.ts +4 -4
- package/src/lib/components/FiltersRenderer.d.ts +2 -2
- package/src/lib/components/GroupedFiltersList.d.ts +1 -1
- package/src/lib/components/HierarchicalCheckboxFilter/HierarchicalCheckboxFilter.d.ts +3 -3
- package/src/lib/components/HierarchicalCheckboxFilter/HierarchicalCheckboxFilter.utils.d.ts +2 -2
- package/src/lib/components/HierarchicalCheckboxFilter/RenderHierarchicalOption.d.ts +1 -1
- package/src/lib/components/HierarchicalCheckboxFilter/useHierarchicalOptionState.d.ts +2 -2
- package/src/lib/hooks/useFiltersMenu.d.ts +3 -3
- package/src/lib/hooks/useGroupFilters.d.ts +3 -3
- package/src/lib/hooks/utils/useFilterBarPersistence.d.ts +1 -1
- package/src/lib/types/FilterTypes.d.ts +16 -21
- package/src/lib/utils/createFilterSetters.d.ts +1 -1
- package/src/lib/utils/createFilterValues.d.ts +1 -1
- package/src/lib/utils/createInitialState.d.ts +3 -3
- package/src/lib/utils/mergeFilters.d.ts +1 -1
- package/src/lib/utils/reduceFilterText.d.ts +1 -1
- package/src/lib/utils/toggleFilterValue.d.ts +1 -1
- package/src/lib/utils/validateFilter.d.ts +3 -3
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.236",
|
|
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.148",
|
|
18
|
+
"@trackunit/react-core-hooks": "1.3.153",
|
|
19
|
+
"@trackunit/react-filter-components": "1.3.194",
|
|
20
|
+
"@trackunit/react-date-and-time-components": "1.3.197",
|
|
21
|
+
"@trackunit/shared-utils": "1.5.141",
|
|
22
|
+
"@trackunit/react-form-components": "1.3.196",
|
|
23
|
+
"@trackunit/react-core-contexts-api": "1.4.148",
|
|
24
|
+
"@trackunit/geo-json-utils": "1.3.139",
|
|
25
|
+
"@trackunit/i18n-library-translation": "1.3.160",
|
|
26
|
+
"@trackunit/css-class-variance-utilities": "1.3.141",
|
|
27
|
+
"@trackunit/react-components": "1.4.172",
|
|
28
|
+
"@trackunit/react-test-setup": "1.0.31"
|
|
29
29
|
},
|
|
30
30
|
"module": "./index.esm.js",
|
|
31
31
|
"main": "./index.cjs.js",
|
package/src/lib/FilterBar.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ interface FilterBarProps<TFilterBarDefinition extends FilterBarDefinition> {
|
|
|
3
3
|
/**
|
|
4
4
|
* If you want some of the filters to be hidden, but still programmatically enabled
|
|
5
5
|
*/
|
|
6
|
-
hiddenFilters?: string
|
|
6
|
+
hiddenFilters?: Array<string>;
|
|
7
7
|
/**
|
|
8
8
|
* CSS class name for styling purposes
|
|
9
9
|
*/
|
|
@@ -3,7 +3,7 @@ import { FilterBarConfig, FilterBarDefinition, FilterDefinition, FilterMapAction
|
|
|
3
3
|
*
|
|
4
4
|
*/
|
|
5
5
|
export declare const AppliedFiltersRenderer: <TFilterBarDefinition extends FilterBarDefinition>({ appliedFilters, filterBarConfig, showResetButton, }: {
|
|
6
|
-
appliedFilters: FilterDefinition
|
|
6
|
+
appliedFilters: Array<FilterDefinition>;
|
|
7
7
|
filterBarConfig: FilterBarConfig<TFilterBarDefinition> & FilterMapActions & FilterMapGetter;
|
|
8
8
|
showResetButton?: boolean;
|
|
9
9
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ValueName } from "../types/FilterTypes";
|
|
2
2
|
import { DefaultFilterProps } from "./DefaultFilterTypes";
|
|
3
|
-
type FilterDefinitionValue = string
|
|
3
|
+
type FilterDefinitionValue = Array<string> | Array<ValueName>;
|
|
4
4
|
/**
|
|
5
5
|
* `DefaultCheckboxFilter` is a React component for handling checkbox filters.
|
|
6
6
|
*
|
|
@@ -25,7 +25,7 @@ export interface HierarchicalFilterOption extends FilterOption {
|
|
|
25
25
|
/**
|
|
26
26
|
* Child options for this node in the hierarchy.
|
|
27
27
|
*/
|
|
28
|
-
children?: HierarchicalFilterOption
|
|
28
|
+
children?: Array<HierarchicalFilterOption>;
|
|
29
29
|
/**
|
|
30
30
|
* The nesting level of this option (0 for root).
|
|
31
31
|
* Added during hierarchy processing.
|
|
@@ -36,7 +36,7 @@ export interface DefaultFilterProps<TReturnType> extends FilterViewProps<TReturn
|
|
|
36
36
|
/**
|
|
37
37
|
* An array of filter options to be displayed.
|
|
38
38
|
*/
|
|
39
|
-
options: FilterOption
|
|
39
|
+
options: Array<FilterOption>;
|
|
40
40
|
/**
|
|
41
41
|
* Indicates whether the filter is in a loading state.
|
|
42
42
|
*/
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ReactElement } from "react";
|
|
2
2
|
interface Props<TResult> {
|
|
3
|
-
results: TResult
|
|
3
|
+
results: Array<TResult> | undefined | null;
|
|
4
4
|
loading?: boolean;
|
|
5
5
|
ignoreUndefined?: boolean;
|
|
6
|
-
children: (results: TResult
|
|
6
|
+
children: (results: Array<TResult>) => ReactElement;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Wrapper around results for filters.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ReactElement } from "react";
|
|
2
2
|
interface Props<TResult> {
|
|
3
|
-
results: TResult
|
|
3
|
+
results: Array<TResult> | undefined | null;
|
|
4
4
|
loading?: boolean;
|
|
5
5
|
ignoreUndefined?: boolean;
|
|
6
|
-
children: (results: TResult
|
|
6
|
+
children: (results: Array<TResult>) => ReactElement;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Wrapper around results for filters.
|
|
@@ -2,8 +2,8 @@ import { ReactElement } from "react";
|
|
|
2
2
|
import { FilterBarDefinition, FilterDefinition, FilterMapActions, FilterMapGetter, FilterState } from "../../types/FilterTypes";
|
|
3
3
|
interface MultipleFilterTooltipLabelProps<TFilterBarDefinition extends FilterBarDefinition> {
|
|
4
4
|
filterBarConfig: FilterState<TFilterBarDefinition> & FilterMapActions & FilterMapGetter;
|
|
5
|
-
filterKeys?: string
|
|
6
|
-
filters: FilterDefinition
|
|
5
|
+
filterKeys?: Array<string>;
|
|
6
|
+
filters: Array<FilterDefinition>;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Component that displays a tooltip for filters.
|
|
@@ -17,7 +17,7 @@ interface FiltersMenuProps<TFilterBarDefinition extends FilterBarDefinition> ext
|
|
|
17
17
|
/**
|
|
18
18
|
* If you want some of the filters to be hidden, but still programmatically enabled
|
|
19
19
|
*/
|
|
20
|
-
hiddenFilters?: string
|
|
20
|
+
hiddenFilters?: Array<string>;
|
|
21
21
|
/**
|
|
22
22
|
* If true, the starred filters will be displayed in a compact mode
|
|
23
23
|
*/
|
|
@@ -37,7 +37,7 @@ interface FiltersMenuProps<TFilterBarDefinition extends FilterBarDefinition> ext
|
|
|
37
37
|
/**
|
|
38
38
|
* The filter keys to include in the filter bar, if not defined all filters will be shown.
|
|
39
39
|
*/
|
|
40
|
-
includeFilterKeys?: string
|
|
40
|
+
includeFilterKeys?: Array<string>;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* FilterMenu is a React component that displays a list of filters in a popover menu based on the provided filter bar configuration.
|
|
@@ -8,11 +8,11 @@ export declare const FiltersMenuContent: ({ filterBarConfig, setShowCustomFilter
|
|
|
8
8
|
setShowCustomFilters: (show: boolean) => void;
|
|
9
9
|
setSearchText: (text: string) => void;
|
|
10
10
|
searchText: string;
|
|
11
|
-
searchResultsGrouped: GroupOfFilters
|
|
12
|
-
filtersToShowGrouped: GroupOfFilters
|
|
13
|
-
removeCustomFieldsGroup: (groupOfFilters: GroupOfFilters
|
|
11
|
+
searchResultsGrouped: Array<GroupOfFilters>;
|
|
12
|
+
filtersToShowGrouped: Array<GroupOfFilters>;
|
|
13
|
+
removeCustomFieldsGroup: (groupOfFilters: Array<GroupOfFilters>) => Array<GroupOfFilters>;
|
|
14
14
|
hasCustomFields: boolean;
|
|
15
|
-
appliedCustomFields: FilterDefinition
|
|
15
|
+
appliedCustomFields: Array<FilterDefinition>;
|
|
16
16
|
showCustomFilters: boolean;
|
|
17
17
|
filterBarDefinitionCount: number;
|
|
18
18
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,7 +2,7 @@ import { ComponentProps, ReactElement } from "react";
|
|
|
2
2
|
import { FilterBarConfig, FilterBarDefinition, FilterDefinition, FilterMapActions, FilterMapGetter } from "../types/FilterTypes";
|
|
3
3
|
import { FilterComponent } from "./FilterComponent";
|
|
4
4
|
type FiltersRendererProps = {
|
|
5
|
-
filters: FilterDefinition
|
|
5
|
+
filters: Array<FilterDefinition>;
|
|
6
6
|
filterBarConfig: FilterBarConfig<FilterBarDefinition> & FilterMapActions & FilterMapGetter;
|
|
7
7
|
visualStyle?: ComponentProps<typeof FilterComponent>["visualStyle"];
|
|
8
8
|
};
|
|
@@ -18,5 +18,5 @@ type FiltersRendererProps = {
|
|
|
18
18
|
* @param {ComponentProps<typeof FilterComponent>["visualStyle"]} [props.visualStyle] - The visual style of the filters
|
|
19
19
|
* @returns {ReactElement[] | null} - Returns an array of Filter components or null
|
|
20
20
|
*/
|
|
21
|
-
export declare const FiltersRenderer: ({ filters, filterBarConfig, visualStyle, }: FiltersRendererProps) => ReactElement
|
|
21
|
+
export declare const FiltersRenderer: ({ filters, filterBarConfig, visualStyle, }: FiltersRendererProps) => Array<ReactElement> | null;
|
|
22
22
|
export {};
|
|
@@ -7,7 +7,7 @@ interface FiltersListProps extends CommonProps {
|
|
|
7
7
|
* The configuration of the filter bar, including its actions and state.
|
|
8
8
|
*/
|
|
9
9
|
filterBarConfig: FilterBarConfig<FilterBarDefinition> & FilterMapActions & FilterMapGetter;
|
|
10
|
-
filtersGrouped: GroupOfFilters
|
|
10
|
+
filtersGrouped: Array<GroupOfFilters>;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* FiltersList is a React component that displays a list of filters within a filter bar.
|
|
@@ -4,12 +4,12 @@ import { DefaultFilterProps, HierarchicalFilterOption } from "../DefaultFilterTy
|
|
|
4
4
|
* Props for the HierarchicalCheckboxFilter component.
|
|
5
5
|
* Extends base filter props but requires hierarchical options and ValueName[] type.
|
|
6
6
|
*/
|
|
7
|
-
export interface HierarchicalFilterProps extends Omit<DefaultFilterProps<ValueName
|
|
7
|
+
export interface HierarchicalFilterProps extends Omit<DefaultFilterProps<Array<ValueName>>, "options" | "customSearch" | "showRequestMoreUseSearch" | "showUndefinedOptionWithCountAtBottom" | "totalRecords"> {
|
|
8
8
|
/**
|
|
9
9
|
* An array of hierarchical filter options to be displayed.
|
|
10
10
|
* The structure (parent-child relationships and levels) should be pre-processed.
|
|
11
11
|
*/
|
|
12
|
-
options: HierarchicalFilterOption
|
|
12
|
+
options: Array<HierarchicalFilterOption>;
|
|
13
13
|
/**
|
|
14
14
|
* The filter definition, constrained to the 'valueNameArray' type for this component.
|
|
15
15
|
*/
|
|
@@ -19,7 +19,7 @@ export interface HierarchicalFilterProps extends Omit<DefaultFilterProps<ValueNa
|
|
|
19
19
|
/**
|
|
20
20
|
* Callback function to update the filter's value state.
|
|
21
21
|
*/
|
|
22
|
-
setValue: FilterStateSetterCallback<ValueName
|
|
22
|
+
setValue: FilterStateSetterCallback<Array<ValueName>>;
|
|
23
23
|
/**
|
|
24
24
|
* Enable cascading selection behavior.
|
|
25
25
|
* - Checking/unchecking a parent affects all descendants.
|
|
@@ -5,9 +5,9 @@ import { HierarchicalFilterOption } from "../DefaultFilterTypes";
|
|
|
5
5
|
* @param option The starting hierarchical filter option.
|
|
6
6
|
* @returns An array of string keys representing the option and all its descendants.
|
|
7
7
|
*/
|
|
8
|
-
export declare const getAllDescendantKeys: (option: HierarchicalFilterOption) => string
|
|
8
|
+
export declare const getAllDescendantKeys: (option: HierarchicalFilterOption) => Array<string>;
|
|
9
9
|
/**
|
|
10
10
|
* Recursively filters hierarchical options based on a search term.
|
|
11
11
|
* Keeps an option if its label matches or if any descendant matches.
|
|
12
12
|
*/
|
|
13
|
-
export declare const filterHierarchicalOptions: (options: HierarchicalFilterOption
|
|
13
|
+
export declare const filterHierarchicalOptions: (options: Array<HierarchicalFilterOption>, searchTerm: string, parentMatches?: boolean) => Array<HierarchicalFilterOption>;
|
|
@@ -8,7 +8,7 @@ interface RenderHierarchicalOptionProps {
|
|
|
8
8
|
filterBarActions: HierarchicalFilterProps["filterBarActions"];
|
|
9
9
|
setValue: HierarchicalFilterProps["setValue"];
|
|
10
10
|
logEvent: ReturnType<typeof useAnalytics>["logEvent"];
|
|
11
|
-
selectedValues: ValueName
|
|
11
|
+
selectedValues: Array<ValueName>;
|
|
12
12
|
cascadeSelection: boolean;
|
|
13
13
|
optionsMap: Map<string, HierarchicalFilterOption>;
|
|
14
14
|
}
|
|
@@ -3,9 +3,9 @@ import { ValueName } from "../../types/FilterTypes";
|
|
|
3
3
|
import { HierarchicalFilterOption } from "../DefaultFilterTypes";
|
|
4
4
|
import { HierarchicalFilterProps } from "./HierarchicalCheckboxFilter";
|
|
5
5
|
interface UseHierarchicalOptionStateProps {
|
|
6
|
-
options: HierarchicalFilterOption
|
|
6
|
+
options: Array<HierarchicalFilterOption>;
|
|
7
7
|
option: HierarchicalFilterOption;
|
|
8
|
-
selectedValues: ValueName
|
|
8
|
+
selectedValues: Array<ValueName>;
|
|
9
9
|
cascadeSelection: boolean;
|
|
10
10
|
optionsMap: Map<string, HierarchicalFilterOption>;
|
|
11
11
|
setValue: HierarchicalFilterProps["setValue"];
|
|
@@ -3,9 +3,9 @@ import { GroupOfFilters } from "./useGroupFilters";
|
|
|
3
3
|
type UseFiltersMenuProps<TFilterBarDefinition extends FilterBarDefinition> = {
|
|
4
4
|
filterBarDefinition: TFilterBarDefinition;
|
|
5
5
|
filterBarConfig: FilterBarConfig<TFilterBarDefinition> & FilterMapActions & FilterMapGetter;
|
|
6
|
-
hiddenFilters?: string
|
|
6
|
+
hiddenFilters?: Array<string>;
|
|
7
7
|
allowShowFiltersDirectly?: boolean;
|
|
8
|
-
includeFilterKeys?: string
|
|
8
|
+
includeFilterKeys?: Array<string>;
|
|
9
9
|
};
|
|
10
10
|
/**
|
|
11
11
|
* This hook is used to manage the filters menu.
|
|
@@ -21,6 +21,6 @@ export declare const useFiltersMenu: <TFilterBarDefinition extends FilterBarDefi
|
|
|
21
21
|
setSearchText: import("react").Dispatch<string>;
|
|
22
22
|
filtersToShowGrouped: GroupOfFilters[];
|
|
23
23
|
searchResultsGrouped: GroupOfFilters[];
|
|
24
|
-
removeCustomFieldsGroup: (groupOfFilters: GroupOfFilters
|
|
24
|
+
removeCustomFieldsGroup: (groupOfFilters: Array<GroupOfFilters>) => Array<GroupOfFilters>;
|
|
25
25
|
};
|
|
26
26
|
export {};
|
|
@@ -11,10 +11,10 @@ export interface GroupOfFilters {
|
|
|
11
11
|
/**
|
|
12
12
|
* An array of filter definitions that belong to this group.
|
|
13
13
|
*/
|
|
14
|
-
filters: FilterDefinition
|
|
14
|
+
filters: Array<FilterDefinition>;
|
|
15
15
|
}
|
|
16
16
|
interface UseGroupFiltersReturnType {
|
|
17
|
-
filtersGrouped: GroupOfFilters
|
|
17
|
+
filtersGrouped: Array<GroupOfFilters>;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Custom React hook for grouping and filtering a list of filters.
|
|
@@ -23,5 +23,5 @@ interface UseGroupFiltersReturnType {
|
|
|
23
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
|
|
26
|
+
export declare const useGroupFilters: (filterDefinitions: Array<FilterDefinition>, hiddenFilters?: Array<string>) => UseGroupFiltersReturnType;
|
|
27
27
|
export {};
|
|
@@ -11,7 +11,7 @@ type FilterBarPersistenceProps<TFilterBarDefinition extends FilterBarDefinition>
|
|
|
11
11
|
* @returns { object } An object containing the loadData and saveData functions.
|
|
12
12
|
*/
|
|
13
13
|
export declare const useFilterBarPersistence: <TFilterBarDefinition extends FilterBarDefinition>({ name, setValue, }: FilterBarPersistenceProps<TFilterBarDefinition>) => {
|
|
14
|
-
loadData: <TFilterBarDefinitionExtended extends TFilterBarDefinition>(updatedFilterDefinitionsValues: TFilterBarDefinitionExtended[keyof TFilterBarDefinitionExtended]
|
|
14
|
+
loadData: <TFilterBarDefinitionExtended extends TFilterBarDefinition>(updatedFilterDefinitionsValues: Array<TFilterBarDefinitionExtended[keyof TFilterBarDefinitionExtended]>) => FilterBarConfig<TFilterBarDefinition>;
|
|
15
15
|
saveData: (filterBarConfig: Partial<FilterBarConfig<TFilterBarDefinition>>, filterBarDefinitions: TFilterBarDefinition) => void;
|
|
16
16
|
};
|
|
17
17
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { geoJsonMultiPolygonSchema, geoJsonPolygonSchema } from "@trackunit/geo-json-utils";
|
|
1
2
|
import { ReactNode } from "react";
|
|
2
3
|
import { z } from "zod";
|
|
3
4
|
export type ValueName = {
|
|
@@ -16,11 +17,7 @@ export type MinMaxFilterValue = {
|
|
|
16
17
|
};
|
|
17
18
|
export declare const areaFilterGeoJsonGeometrySchema: z.ZodUnion<[z.ZodObject<{
|
|
18
19
|
type: z.ZodLiteral<"Polygon">;
|
|
19
|
-
coordinates: z.ZodArray<z.ZodEffects<z.ZodArray<z.ZodTuple<[z.ZodNumber
|
|
20
|
-
* The Group the filter will be shown under in the ui.
|
|
21
|
-
*
|
|
22
|
-
* @default "OTHER"
|
|
23
|
-
*/, z.ZodNumber], null>, "many">, [number, number][], [number, number][]>, "many">;
|
|
20
|
+
coordinates: z.ZodArray<z.ZodEffects<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">, [number, number][], [number, number][]>, "many">;
|
|
24
21
|
}, "strict", z.ZodTypeAny, {
|
|
25
22
|
type: "Polygon";
|
|
26
23
|
coordinates: [number, number][][];
|
|
@@ -29,9 +26,7 @@ export declare const areaFilterGeoJsonGeometrySchema: z.ZodUnion<[z.ZodObject<{
|
|
|
29
26
|
coordinates: [number, number][][];
|
|
30
27
|
}>, z.ZodObject<{
|
|
31
28
|
type: z.ZodLiteral<"MultiPolygon">;
|
|
32
|
-
coordinates: z.ZodArray<z.ZodArray<z.ZodEffects
|
|
33
|
-
* A boolean that determines if the filter should be generated.
|
|
34
|
-
*/<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">, [number, number][], [number, number][]>, "many">, "many">;
|
|
29
|
+
coordinates: z.ZodArray<z.ZodArray<z.ZodEffects<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">, [number, number][], [number, number][]>, "many">, "many">;
|
|
35
30
|
}, "strict", z.ZodTypeAny, {
|
|
36
31
|
type: "MultiPolygon";
|
|
37
32
|
coordinates: [number, number][][][];
|
|
@@ -39,20 +34,20 @@ export declare const areaFilterGeoJsonGeometrySchema: z.ZodUnion<[z.ZodObject<{
|
|
|
39
34
|
type: "MultiPolygon";
|
|
40
35
|
coordinates: [number, number][][][];
|
|
41
36
|
}>]>;
|
|
42
|
-
export type AreaFilterGeoJsonGeometry = z.infer<typeof
|
|
43
|
-
export type FilterValueType = string
|
|
37
|
+
export type AreaFilterGeoJsonGeometry = z.infer<typeof geoJsonPolygonSchema> | z.infer<typeof geoJsonMultiPolygonSchema>;
|
|
38
|
+
export type FilterValueType = Array<string> | Array<ValueName> | ValueName | MinMaxFilterValue | AreaFilterGeoJsonGeometry | string | number | BooleanValue | undefined;
|
|
44
39
|
export declare type FilterTypes = "boolean" | "string" | "number" | "dateRange" | "area" | "valueNameArray" | "valueName" | "stringArray" | "minMax";
|
|
45
40
|
export type FilterMapActions = {
|
|
46
41
|
updateStarredFilters: (filterkey: string) => void;
|
|
47
42
|
toggleArrayValue: (key: string, value: string) => void;
|
|
48
43
|
setStringValue: (key: string, value: string) => void;
|
|
49
|
-
setArrayValue: (key: string, value: string
|
|
44
|
+
setArrayValue: (key: string, value: Array<string>) => void;
|
|
50
45
|
setArea: (area: AreaFilterGeoJsonGeometry) => void;
|
|
51
46
|
setNumberValue: (key: string, value: NumberValue) => void;
|
|
52
47
|
setBooleanValue: (key: string, value: BooleanValue) => void;
|
|
53
48
|
setDateRange: (key: string, value: DateRangeValue) => void;
|
|
54
49
|
setMinMaxValue: (key: string, minMaxValue: MinMaxFilterValue) => void;
|
|
55
|
-
setArrayObjectValue: (key: string, value: ValueName
|
|
50
|
+
setArrayObjectValue: (key: string, value: Array<ValueName>) => void;
|
|
56
51
|
setObjectValue: (key: string, value: ValueName) => void;
|
|
57
52
|
toggleArrayObjectValue: (key: string, value: ValueName) => void;
|
|
58
53
|
toggleObjectValue: (key: string, value: ValueName) => void;
|
|
@@ -67,7 +62,7 @@ export type FilterMapGetter = {
|
|
|
67
62
|
getValuesByKey: (key: string) => FilterValueType;
|
|
68
63
|
hasDefaultValue: (key: string) => boolean;
|
|
69
64
|
arrayIncludesValue: (key: string, value: string | boolean) => boolean;
|
|
70
|
-
appliedFilterKeys: () =>
|
|
65
|
+
appliedFilterKeys: () => Array<keyof FilterBarDefinition>;
|
|
71
66
|
isFilterIncludedByKey(key: string): boolean;
|
|
72
67
|
};
|
|
73
68
|
export type FilterName = string;
|
|
@@ -144,9 +139,9 @@ export interface AreaFilterDefinition extends AbstractFilterDefinition {
|
|
|
144
139
|
}
|
|
145
140
|
export interface ValueNameArrayFilterDefinition extends AbstractFilterDefinition {
|
|
146
141
|
type: "valueNameArray";
|
|
147
|
-
defaultValue?: ValueName
|
|
148
|
-
valueAsText?: (value: ValueName
|
|
149
|
-
component: (filterComponentProps: FilterViewProps<ValueName
|
|
142
|
+
defaultValue?: Array<ValueName>;
|
|
143
|
+
valueAsText?: (value: Array<ValueName>) => Array<string>;
|
|
144
|
+
component: (filterComponentProps: FilterViewProps<Array<ValueName>>) => ReactNode;
|
|
150
145
|
}
|
|
151
146
|
export interface ValueNameFilterDefinition extends AbstractFilterDefinition {
|
|
152
147
|
type: "valueName";
|
|
@@ -156,9 +151,9 @@ export interface ValueNameFilterDefinition extends AbstractFilterDefinition {
|
|
|
156
151
|
}
|
|
157
152
|
export interface StringArrayFilterDefinition extends AbstractFilterDefinition {
|
|
158
153
|
type: "stringArray";
|
|
159
|
-
defaultValue?: string
|
|
160
|
-
valueAsText?: (value: string
|
|
161
|
-
component: (filterComponentProps: FilterViewProps<string
|
|
154
|
+
defaultValue?: Array<string>;
|
|
155
|
+
valueAsText?: (value: Array<string>) => Array<string>;
|
|
156
|
+
component: (filterComponentProps: FilterViewProps<Array<string>>) => ReactNode;
|
|
162
157
|
}
|
|
163
158
|
export interface MinMaxFilterDefinition extends AbstractFilterDefinition {
|
|
164
159
|
type: "minMax";
|
|
@@ -209,7 +204,7 @@ export type FiltersStoreInstance<T extends FilterBarDefinition> = Partial<Filter
|
|
|
209
204
|
export interface FilterStateMap<T extends FilterBarDefinition> {
|
|
210
205
|
filtersMap: Record<string, FilterBarConfig<T>>;
|
|
211
206
|
}
|
|
212
|
-
export type FilterBarInferredValue<T extends FilterBarDefinition, K extends keyof T> = T[K]["type"] extends infer Type ? Type extends "boolean" ? BooleanValue | undefined : Type extends "string" ? string | undefined : Type extends "number" ? number | undefined : Type extends "area" ? AreaFilterGeoJsonGeometry | undefined : Type extends "valueNameArray" ? ValueName
|
|
207
|
+
export type FilterBarInferredValue<T extends FilterBarDefinition, K extends keyof T> = T[K]["type"] extends infer Type ? Type extends "boolean" ? BooleanValue | undefined : Type extends "string" ? string | undefined : Type extends "number" ? number | undefined : Type extends "area" ? AreaFilterGeoJsonGeometry | undefined : Type extends "valueNameArray" ? Array<ValueName> | undefined : Type extends "valueName" ? ValueName | undefined : Type extends "stringArray" ? Array<string> | undefined : Type extends "minMax" ? MinMaxFilterValue | undefined : Type extends "dateRange" ? DateRangeValue | undefined : undefined : undefined;
|
|
213
208
|
export type SetterKey<T extends string> = `set${Capitalize<T>}`;
|
|
214
209
|
export type ReverseSetterKey<T extends string> = Uncapitalize<T extends `set${infer U}` ? U : never>;
|
|
215
210
|
export type ExtractFilterKeys<T extends FilterBarDefinition> = Extract<keyof T, string>;
|
|
@@ -238,7 +233,7 @@ export interface FilterBarConfig<T extends FilterBarDefinition> extends FilterSt
|
|
|
238
233
|
/**
|
|
239
234
|
* Filter names that should be starred for this filter list.
|
|
240
235
|
*/
|
|
241
|
-
starredFilterKeys: ExtractFilterKeys<T
|
|
236
|
+
starredFilterKeys: Array<ExtractFilterKeys<T>>;
|
|
242
237
|
/**
|
|
243
238
|
* The initial state of the filter bar - used to restore the filter bar to its initial state, and to validate if a filter has been changed from the initial state.
|
|
244
239
|
*/
|
|
@@ -2,4 +2,4 @@ import { FilterBarDefinition, FilterBarInferredValue, FilterDefinition, FilterSt
|
|
|
2
2
|
/**
|
|
3
3
|
*
|
|
4
4
|
*/
|
|
5
|
-
export declare const createFilterSetters: <TFilterBarDefinition extends FilterBarDefinition>(mainFilters: FilterDefinition
|
|
5
|
+
export declare const createFilterSetters: <TFilterBarDefinition extends FilterBarDefinition>(mainFilters: Array<FilterDefinition>, setValue: (key: string, callback: (prev: FilterBarInferredValue<TFilterBarDefinition, never> | undefined) => FilterBarInferredValue<TFilterBarDefinition, never> | undefined) => void) => FilterStateSetters<TFilterBarDefinition>;
|
|
@@ -2,4 +2,4 @@ import { FilterDefinition } from "../types/FilterTypes";
|
|
|
2
2
|
/**
|
|
3
3
|
*
|
|
4
4
|
*/
|
|
5
|
-
export declare const createFilterValues: (mainFilters: FilterDefinition
|
|
5
|
+
export declare const createFilterValues: (mainFilters: Array<FilterDefinition>, useDefaultValues?: boolean) => {};
|
|
@@ -4,10 +4,10 @@ type InitialTypes = {
|
|
|
4
4
|
Init: "";
|
|
5
5
|
} | {
|
|
6
6
|
Arg: "stringArray";
|
|
7
|
-
Init: string
|
|
7
|
+
Init: Array<string>;
|
|
8
8
|
} | {
|
|
9
9
|
Arg: "valueNameArray";
|
|
10
|
-
Init: ValueName
|
|
10
|
+
Init: Array<ValueName>;
|
|
11
11
|
} | {
|
|
12
12
|
Arg: "valueName";
|
|
13
13
|
Init: {
|
|
@@ -44,7 +44,7 @@ export declare const getInitialValueFromType: <TInitialType extends InitialTypes
|
|
|
44
44
|
*/
|
|
45
45
|
export declare const createInitialState: <TFilterBarDefinition extends FilterBarDefinition>({ name, mainFilters, setValue, }: {
|
|
46
46
|
name: string;
|
|
47
|
-
mainFilters: FilterDefinition
|
|
47
|
+
mainFilters: Array<FilterDefinition>;
|
|
48
48
|
setValue: (key: string, callback: (prev: FilterBarInferredValue<TFilterBarDefinition, never> | undefined) => FilterBarInferredValue<TFilterBarDefinition, never> | undefined) => void;
|
|
49
49
|
}) => FilterBarConfig<TFilterBarDefinition>;
|
|
50
50
|
export {};
|
|
@@ -5,4 +5,4 @@ import { FilterDefinition } from "../types/FilterTypes";
|
|
|
5
5
|
* @param {Record<string, FilterDefinition>} filterBarDefinition - The existing filter bar definition to which the filters will be added.
|
|
6
6
|
* @param {FilterDefinition[]} extraFilters - An array of additional filters to merge into the definition.
|
|
7
7
|
*/
|
|
8
|
-
export declare const mergeFilters: (filterBarDefinition: Record<string, FilterDefinition | undefined>, extraFilters: FilterDefinition
|
|
8
|
+
export declare const mergeFilters: (filterBarDefinition: Record<string, FilterDefinition | undefined>, extraFilters: Array<FilterDefinition>) => void;
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @template T - The type of the filter values.
|
|
5
5
|
* @returns {(prev?: T[]) => T[]} A function that takes an optional previous array of filter values
|
|
6
6
|
*/
|
|
7
|
-
export declare const toggleFilterValue: <T extends string | number | object>(value: T) => ((prev?: T
|
|
7
|
+
export declare const toggleFilterValue: <T extends string | number | object>(value: T) => ((prev?: Array<T>) => Array<T>);
|
|
@@ -21,7 +21,7 @@ export declare const isArrayFilterValue: (value: FilterDefinitionValue) => value
|
|
|
21
21
|
/**
|
|
22
22
|
*
|
|
23
23
|
*/
|
|
24
|
-
export declare const isStringArrayFilterValue: (value: FilterDefinitionValue) => value is string
|
|
24
|
+
export declare const isStringArrayFilterValue: (value: FilterDefinitionValue) => value is Array<string>;
|
|
25
25
|
/**
|
|
26
26
|
*
|
|
27
27
|
*/
|
|
@@ -33,7 +33,7 @@ export declare const isValueName: (value: unknown) => value is ValueName;
|
|
|
33
33
|
/**
|
|
34
34
|
* Type guard to check if a value is an array of ValueName objects
|
|
35
35
|
*/
|
|
36
|
-
export declare const isValueNameArray: (value: FilterDefinitionValue) => value is ValueName
|
|
36
|
+
export declare const isValueNameArray: (value: FilterDefinitionValue) => value is Array<ValueName>;
|
|
37
37
|
/**
|
|
38
38
|
* Validates a filter configuration against filter definitions.
|
|
39
39
|
*
|
|
@@ -45,5 +45,5 @@ export declare const isValueNameArray: (value: FilterDefinitionValue) => value i
|
|
|
45
45
|
export declare const validateFilter: <TFilterBarDefinition extends FilterBarDefinition>({ values, starredFilterKeys, filterDefinitions, }: {
|
|
46
46
|
values: FilterBarConfig<TFilterBarDefinition>["values"];
|
|
47
47
|
starredFilterKeys: FilterBarConfig<TFilterBarDefinition>["starredFilterKeys"];
|
|
48
|
-
filterDefinitions: FilterDefinition
|
|
48
|
+
filterDefinitions: Array<FilterDefinition>;
|
|
49
49
|
}) => boolean;
|