@vuu-ui/vuu-filters 3.5.2 → 3.5.3
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
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.5.
|
|
2
|
+
"version": "3.5.3",
|
|
3
3
|
"main": "./src/index.js",
|
|
4
4
|
"author": "heswell",
|
|
5
5
|
"license": "Apache-2.0",
|
|
@@ -10,19 +10,19 @@
|
|
|
10
10
|
"type-defs": "node ../../scripts/build-type-defs.mjs"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
|
-
"@vuu-ui/vuu-data-types": "3.5.
|
|
14
|
-
"@vuu-ui/vuu-protocol-types": "3.5.
|
|
15
|
-
"@vuu-ui/vuu-table-types": "3.5.
|
|
16
|
-
"@vuu-ui/vuu-filter-types": "3.5.
|
|
13
|
+
"@vuu-ui/vuu-data-types": "3.5.3",
|
|
14
|
+
"@vuu-ui/vuu-protocol-types": "3.5.3",
|
|
15
|
+
"@vuu-ui/vuu-table-types": "3.5.3",
|
|
16
|
+
"@vuu-ui/vuu-filter-types": "3.5.3"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@vuu-ui/vuu-context-menu": "3.5.
|
|
20
|
-
"@vuu-ui/vuu-data-react": "3.5.
|
|
21
|
-
"@vuu-ui/vuu-filter-parser": "3.5.
|
|
22
|
-
"@vuu-ui/vuu-popups": "3.5.
|
|
23
|
-
"@vuu-ui/vuu-ui-controls": "3.5.
|
|
24
|
-
"@vuu-ui/vuu-table": "3.5.
|
|
25
|
-
"@vuu-ui/vuu-utils": "3.5.
|
|
19
|
+
"@vuu-ui/vuu-context-menu": "3.5.3",
|
|
20
|
+
"@vuu-ui/vuu-data-react": "3.5.3",
|
|
21
|
+
"@vuu-ui/vuu-filter-parser": "3.5.3",
|
|
22
|
+
"@vuu-ui/vuu-popups": "3.5.3",
|
|
23
|
+
"@vuu-ui/vuu-ui-controls": "3.5.3",
|
|
24
|
+
"@vuu-ui/vuu-table": "3.5.3",
|
|
25
|
+
"@vuu-ui/vuu-utils": "3.5.3",
|
|
26
26
|
"@salt-ds/core": "1.54.1",
|
|
27
27
|
"@salt-ds/lab": "1.0.0-alpha.83",
|
|
28
28
|
"@salt-ds/styles": "0.2.1",
|
|
@@ -6,7 +6,10 @@ import clsx from "clsx";
|
|
|
6
6
|
import { forwardRef, useCallback } from "react";
|
|
7
7
|
import { useToggleFilter } from "./useToggleFilter.js";
|
|
8
8
|
import ToggleFilter_0 from "./ToggleFilter.css";
|
|
9
|
-
const
|
|
9
|
+
const toToggleButtonValue = (value)=>"boolean" == typeof value ? `${value}` : value;
|
|
10
|
+
const getValues = (defaultValueProp, valueProp)=>{
|
|
11
|
+
const defaultValue = toToggleButtonValue(defaultValueProp);
|
|
12
|
+
const value = toToggleButtonValue(valueProp);
|
|
10
13
|
if (void 0 === defaultValue && void 0 === value) return [
|
|
11
14
|
"all"
|
|
12
15
|
];
|
|
@@ -34,16 +37,22 @@ const ToggleFilter_ToggleFilter = /*#__PURE__*/ forwardRef(function({ className,
|
|
|
34
37
|
});
|
|
35
38
|
if (void 0 !== labels && labels.length !== values.length) throw Error("[ToggleFilter] labels must have the same number of items as values");
|
|
36
39
|
const [defaultValue, value] = getValues(defaultValueProp, valueProp);
|
|
40
|
+
const stringValues = values.map(String);
|
|
37
41
|
const { onlyAvailableValue, unavailableValues } = useToggleFilter({
|
|
38
42
|
column,
|
|
39
43
|
table,
|
|
40
|
-
values
|
|
44
|
+
values: stringValues
|
|
41
45
|
});
|
|
42
46
|
const handleChange = useCallback((e)=>{
|
|
43
47
|
const value = e.currentTarget.value;
|
|
44
|
-
"all" === value
|
|
48
|
+
if ("all" === value) onCommit(e, "");
|
|
49
|
+
else {
|
|
50
|
+
const toggleValue = values.find((v)=>`${v}` === value);
|
|
51
|
+
onCommit(e, "boolean" == typeof toggleValue ? toggleValue : value);
|
|
52
|
+
}
|
|
45
53
|
}, [
|
|
46
|
-
onCommit
|
|
54
|
+
onCommit,
|
|
55
|
+
values
|
|
47
56
|
]);
|
|
48
57
|
return /*#__PURE__*/ jsxs(ToggleButtonGroup, {
|
|
49
58
|
...ToggleButtonGroupProps,
|
|
@@ -57,7 +66,7 @@ const ToggleFilter_ToggleFilter = /*#__PURE__*/ forwardRef(function({ className,
|
|
|
57
66
|
value: "all",
|
|
58
67
|
children: "All"
|
|
59
68
|
}, "all"),
|
|
60
|
-
|
|
69
|
+
stringValues.map((toggleValue, i)=>{
|
|
61
70
|
const unavailable = unavailableValues.includes(toggleValue);
|
|
62
71
|
return /*#__PURE__*/ jsx(Tooltip, {
|
|
63
72
|
content: NO_MATCHING_DATA,
|
package/types/index.d.ts
CHANGED
|
@@ -21,4 +21,4 @@ export { FilterNamePrompt as SaveFilterConfirmPrompt, type FilterNamePromptProps
|
|
|
21
21
|
export { SavedFilterPanel, type SavedFilterPanelProps, } from "./saved-filters/SavedFilterPanel";
|
|
22
22
|
export type { FilterClickHandler } from "./saved-filters/useSavedFilterPanel";
|
|
23
23
|
export { TabbedFilterContainer, type TabbedFilterContainerProps, } from "./tabbed-filter-container/TabbedFilterContainer";
|
|
24
|
-
export { ToggleFilter, type ToggleFilterProps, } from "./toggle-filter/ToggleFilter";
|
|
24
|
+
export { ToggleFilter, type ToggleFilterProps, type ToggleFilterValue, } from "./toggle-filter/ToggleFilter";
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ToggleButtonGroupProps } from "@salt-ds/core";
|
|
2
2
|
import { CommitHandler } from "@vuu-ui/vuu-utils";
|
|
3
3
|
import { type ToggleFilterHookProps } from "./useToggleFilter";
|
|
4
|
+
export type ToggleFilterValue = string | number | boolean;
|
|
5
|
+
type Value = ToggleButtonGroupProps["value"];
|
|
4
6
|
/**
|
|
5
7
|
* ToggleFilter is designed to work with a FilterProvider and
|
|
6
8
|
* DataSourceProvider. With a DataSourceProvider, values will
|
|
@@ -11,12 +13,20 @@ import { type ToggleFilterHookProps } from "./useToggleFilter";
|
|
|
11
13
|
* With neither of these Providers available, the ToggleFilter is
|
|
12
14
|
* behaving like a regular ToggleButtonGroup.
|
|
13
15
|
*/
|
|
14
|
-
export interface ToggleFilterProps extends ToggleButtonGroupProps, ToggleFilterHookProps {
|
|
16
|
+
export interface ToggleFilterProps extends Omit<ToggleButtonGroupProps, "defaultValue" | "value">, Omit<ToggleFilterHookProps, "values"> {
|
|
17
|
+
defaultValue?: ToggleFilterValue | Value;
|
|
15
18
|
/**
|
|
16
19
|
* Optional labels for the toggle buttons. If provided, must contain
|
|
17
20
|
* the same number of items as values. Defaults to values.
|
|
18
21
|
*/
|
|
19
22
|
labels?: string[];
|
|
20
23
|
onCommit: CommitHandler<HTMLElement>;
|
|
24
|
+
value?: ToggleFilterValue | Value;
|
|
25
|
+
/**
|
|
26
|
+
* Values for the toggle buttons. Boolean values are converted to
|
|
27
|
+
* strings internally, the original value is passed to onCommit.
|
|
28
|
+
*/
|
|
29
|
+
values: ToggleFilterValue[];
|
|
21
30
|
}
|
|
22
31
|
export declare const ToggleFilter: import("react").ForwardRefExoticComponent<ToggleFilterProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
32
|
+
export {};
|