@vuu-ui/vuu-filters 4.0.0-alpha.20 → 4.0.0-alpha.22
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 +15 -16
- package/src/filter-clause/FilterClause.css.js +1 -1
- package/src/tabbed-filter-container/TabbedFilterContainer.js +19 -17
- package/src/toggle-filter/ToggleFilter.js +16 -6
- package/src/toggle-filter/useToggleFilter.js +15 -2
- package/types/custom-filters/CustomFilters.d.ts +1 -1
- package/types/filter-bar/FilterBar.d.ts +1 -1
- package/types/filter-bar/FilterBarMenu.d.ts +1 -1
- package/types/filter-clause/FilterClause.d.ts +1 -1
- package/types/filter-clause/value-editors/FilterClauseValueEditorDate.d.ts +1 -1
- package/types/filter-clause/value-editors/FilterClauseValueEditorTime.d.ts +1 -1
- package/types/filter-container/FilterContainer.d.ts +2 -2
- package/types/filter-editor/FilterClauseCombinator.d.ts +1 -1
- package/types/filter-editor/FilterEditor.d.ts +1 -1
- package/types/filter-pill/FilterMenu.d.ts +1 -1
- package/types/filter-pill/FilterPill.d.ts +1 -1
- package/types/filter-pill/FilterPillNext.d.ts +1 -1
- package/types/filter-pill-menu/FilterPillMenu.d.ts +1 -1
- package/types/filter-provider/FilterProvider.d.ts +1 -1
- package/types/filter-toggle-button/FilterToggleButton.d.ts +1 -1
- package/types/index.d.ts +1 -1
- package/types/inline-filter/InlineFilter.d.ts +1 -1
- package/types/quick-filters/QuickFilters.d.ts +1 -1
- package/types/saved-filters/DeleteFilterPrompt.d.ts +1 -1
- package/types/saved-filters/FilterNamePrompt.d.ts +1 -1
- package/types/saved-filters/SavedFilterPanel.d.ts +1 -1
- package/types/tabbed-filter-container/TabbedFilterContainer.d.ts +1 -1
- package/types/toggle-filter/ToggleFilter.d.ts +14 -1
- package/types/toggle-filter/useToggleFilter.d.ts +9 -1
- package/types/src/FilterAggregator.d.ts +0 -28
- package/types/src/FilterModel.d.ts +0 -44
- package/types/src/column-filter/ColumnFilter.d.ts +0 -6
- package/types/src/column-filter/useColumnFilter.d.ts +0 -43
- package/types/src/column-filter/utils.d.ts +0 -4
- package/types/src/custom-filters/CustomFilters.d.ts +0 -7
- package/types/src/custom-filters/filterBarFocusManagement.d.ts +0 -1
- package/types/src/custom-filters/index.d.ts +0 -1
- package/types/src/custom-filters/useCustomFilters.d.ts +0 -33
- package/types/src/custom-filters/useFilterState.d.ts +0 -17
- package/types/src/filter-bar/FilterBar.d.ts +0 -33
- package/types/src/filter-bar/FilterBarMenu.d.ts +0 -1
- package/types/src/filter-bar/index.d.ts +0 -2
- package/types/src/filter-bar/useFilterBar.d.ts +0 -7
- package/types/src/filter-clause/ExpandoCombobox.d.ts +0 -10
- package/types/src/filter-clause/FilterClause.d.ts +0 -16
- package/types/src/filter-clause/column-picker/ColumnPicker.d.ts +0 -13
- package/types/src/filter-clause/column-picker/useColumnPicker.d.ts +0 -11
- package/types/src/filter-clause/filterClauseFocusManagement.d.ts +0 -15
- package/types/src/filter-clause/filterClauseTypes.d.ts +0 -12
- package/types/src/filter-clause/index.d.ts +0 -5
- package/types/src/filter-clause/operator-picker/OperatorPicker.d.ts +0 -14
- package/types/src/filter-clause/operator-picker/operator-utils.d.ts +0 -5
- package/types/src/filter-clause/operator-picker/useOperatorPicker.d.ts +0 -12
- package/types/src/filter-clause/useFilterClause.d.ts +0 -26
- package/types/src/filter-clause/value-editors/FilterClauseValueEditor.d.ts +0 -26
- package/types/src/filter-clause/value-editors/FilterClauseValueEditorDate.d.ts +0 -9
- package/types/src/filter-clause/value-editors/FilterClauseValueEditorNumber.d.ts +0 -9
- package/types/src/filter-clause/value-editors/FilterClauseValueEditorText.d.ts +0 -9
- package/types/src/filter-clause/value-editors/FilterClauseValueEditorTime.d.ts +0 -9
- package/types/src/filter-container/ExtendedSingleValueFilterClause.d.ts +0 -21
- package/types/src/filter-container/FilterContainer.d.ts +0 -23
- package/types/src/filter-container/useFilterContainer.d.ts +0 -22
- package/types/src/filter-context-menu/useFilterContextMenu.d.ts +0 -6
- package/types/src/filter-display/FilterDisplay.d.ts +0 -10
- package/types/src/filter-editor/FilterClauseCombinator.d.ts +0 -9
- package/types/src/filter-editor/FilterEditor.d.ts +0 -14
- package/types/src/filter-editor/index.d.ts +0 -1
- package/types/src/filter-editor/useFilterEditor.d.ts +0 -32
- package/types/src/filter-panel/FilterPanel.d.ts +0 -9
- package/types/src/filter-panel/useFilterPanel.d.ts +0 -14
- package/types/src/filter-pill/FilterMenu.d.ts +0 -24
- package/types/src/filter-pill/FilterPill.d.ts +0 -16
- package/types/src/filter-pill/FilterPillNext.d.ts +0 -15
- package/types/src/filter-pill/filterAsReactNode.d.ts +0 -3
- package/types/src/filter-pill/getFilterLabel.d.ts +0 -2
- package/types/src/filter-pill/getFilterTooltipText.d.ts +0 -2
- package/types/src/filter-pill/index.d.ts +0 -1
- package/types/src/filter-pill/useFilterPillNext.d.ts +0 -25
- package/types/src/filter-pill-menu/FilterPillMenu.d.ts +0 -17
- package/types/src/filter-pill-menu/FilterPillMenuOptions.d.ts +0 -12
- package/types/src/filter-pill-menu/index.d.ts +0 -1
- package/types/src/filter-provider/FilterContext.d.ts +0 -39
- package/types/src/filter-provider/FilterProvider.d.ts +0 -10
- package/types/src/filter-provider/filter-descriptor-utils.d.ts +0 -7
- package/types/src/filter-toggle-button/FilterToggleButton.d.ts +0 -9
- package/types/src/filter-utils.d.ts +0 -60
- package/types/src/index.d.ts +0 -24
- package/types/src/inline-filter/InlineFilter.d.ts +0 -12
- package/types/src/inline-filter/index.d.ts +0 -1
- package/types/src/inline-filter/useInlineFilter.d.ts +0 -5
- package/types/src/quick-filters/QuickFilters.d.ts +0 -17
- package/types/src/quick-filters/index.d.ts +0 -1
- package/types/src/quick-filters/useQuickFilters.d.ts +0 -12
- package/types/src/saved-filters/DeleteFilterPrompt.d.ts +0 -9
- package/types/src/saved-filters/FilterNamePrompt.d.ts +0 -6
- package/types/src/saved-filters/SavedFilterPanel.d.ts +0 -14
- package/types/src/saved-filters/useFilterNamePrompt.d.ts +0 -28
- package/types/src/saved-filters/useSavedFilterPanel.d.ts +0 -13
- package/types/src/tabbed-filter-container/TabbedFilterContainer.d.ts +0 -10
- package/types/src/toggle-filter/ToggleFilter.d.ts +0 -17
- package/types/src/toggle-filter/useToggleFilter.d.ts +0 -11
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.0.0-alpha.
|
|
2
|
+
"version": "4.0.0-alpha.22",
|
|
3
3
|
"main": "./src/index.js",
|
|
4
4
|
"author": "heswell",
|
|
5
5
|
"license": "Apache-2.0",
|
|
@@ -10,23 +10,22 @@
|
|
|
10
10
|
"type-defs": "node ../../scripts/build-type-defs.mjs"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
|
-
"@vuu-ui/vuu-data-types": "4.0.0-alpha.
|
|
14
|
-
"@vuu-ui/vuu-protocol-types": "4.0.0-alpha.
|
|
15
|
-
"@vuu-ui/vuu-table-types": "4.0.0-alpha.
|
|
16
|
-
"@vuu-ui/vuu-filter-types": "4.0.0-alpha.
|
|
13
|
+
"@vuu-ui/vuu-data-types": "4.0.0-alpha.22",
|
|
14
|
+
"@vuu-ui/vuu-protocol-types": "4.0.0-alpha.22",
|
|
15
|
+
"@vuu-ui/vuu-table-types": "4.0.0-alpha.22",
|
|
16
|
+
"@vuu-ui/vuu-filter-types": "4.0.0-alpha.22"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@vuu-ui/vuu-context-menu": "4.0.0-alpha.
|
|
20
|
-
"@vuu-ui/vuu-data-react": "4.0.0-alpha.
|
|
21
|
-
"@vuu-ui/vuu-filter-parser": "4.0.0-alpha.
|
|
22
|
-
"@vuu-ui/vuu-popups": "4.0.0-alpha.
|
|
23
|
-
"@vuu-ui/vuu-ui-controls": "4.0.0-alpha.
|
|
24
|
-
"@vuu-ui/vuu-table": "4.0.0-alpha.
|
|
25
|
-
"@vuu-ui/vuu-utils": "4.0.0-alpha.
|
|
26
|
-
"@salt-ds/core": "1.
|
|
27
|
-
"@salt-ds/
|
|
28
|
-
"@salt-ds/
|
|
29
|
-
"@salt-ds/window": "0.1.1"
|
|
19
|
+
"@vuu-ui/vuu-context-menu": "4.0.0-alpha.22",
|
|
20
|
+
"@vuu-ui/vuu-data-react": "4.0.0-alpha.22",
|
|
21
|
+
"@vuu-ui/vuu-filter-parser": "4.0.0-alpha.22",
|
|
22
|
+
"@vuu-ui/vuu-popups": "4.0.0-alpha.22",
|
|
23
|
+
"@vuu-ui/vuu-ui-controls": "4.0.0-alpha.22",
|
|
24
|
+
"@vuu-ui/vuu-table": "4.0.0-alpha.22",
|
|
25
|
+
"@vuu-ui/vuu-utils": "4.0.0-alpha.22",
|
|
26
|
+
"@salt-ds/core": "1.72.0",
|
|
27
|
+
"@salt-ds/styles": "0.4.1",
|
|
28
|
+
"@salt-ds/window": "0.1.2"
|
|
30
29
|
},
|
|
31
30
|
"peerDependencies": {
|
|
32
31
|
"@internationalized/date": "^3.0.0",
|
|
@@ -12,7 +12,7 @@ const css = `
|
|
|
12
12
|
border-radius: var(--saltButton-borderRadius);
|
|
13
13
|
align-items: center;
|
|
14
14
|
gap: var(--salt-spacing-50);
|
|
15
|
-
height: calc(var(--salt-size-base) + var(--salt-
|
|
15
|
+
height: calc(var(--salt-size-base) + var(--salt-spacing-100));
|
|
16
16
|
min-width: calc(var(--salt-size-base) * 4);
|
|
17
17
|
padding: 0 var(--salt-spacing-100);
|
|
18
18
|
border-style: solid;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Tab, TabList, TabPanel, TabTrigger, Tabs } from "@salt-ds/core";
|
|
2
|
+
import { Tab, TabBar, TabList, TabPanel, TabTrigger, Tabs } from "@salt-ds/core";
|
|
3
3
|
import clsx from "clsx";
|
|
4
4
|
import { FilterPanel } from "../filter-panel/FilterPanel.js";
|
|
5
5
|
import { SavedFilterPanel } from "../saved-filters/SavedFilterPanel.js";
|
|
@@ -10,22 +10,24 @@ const TabbedFilterContainer = ({ SavedFilterPanelProps, children, className, fil
|
|
|
10
10
|
children: /*#__PURE__*/ jsxs(Tabs, {
|
|
11
11
|
defaultValue: "ad-hoc-filter",
|
|
12
12
|
children: [
|
|
13
|
-
/*#__PURE__*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
children:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
children:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
13
|
+
/*#__PURE__*/ jsx(TabBar, {
|
|
14
|
+
children: /*#__PURE__*/ jsxs(TabList, {
|
|
15
|
+
appearance: "transparent",
|
|
16
|
+
children: [
|
|
17
|
+
/*#__PURE__*/ jsx(Tab, {
|
|
18
|
+
value: "ad-hoc-filter",
|
|
19
|
+
children: /*#__PURE__*/ jsx(TabTrigger, {
|
|
20
|
+
children: filterTabLabel
|
|
21
|
+
})
|
|
22
|
+
}, "ad-hoc-filter"),
|
|
23
|
+
/*#__PURE__*/ jsx(Tab, {
|
|
24
|
+
value: "saved-filters",
|
|
25
|
+
children: /*#__PURE__*/ jsx(TabTrigger, {
|
|
26
|
+
children: savedFilterLabel
|
|
27
|
+
})
|
|
28
|
+
}, "saved-filters")
|
|
29
|
+
]
|
|
30
|
+
})
|
|
29
31
|
}),
|
|
30
32
|
/*#__PURE__*/ jsx(TabPanel, {
|
|
31
33
|
value: "ad-hoc-filter",
|
|
@@ -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
|
];
|
|
@@ -25,7 +28,7 @@ const getValues = (defaultValue, value)=>{
|
|
|
25
28
|
};
|
|
26
29
|
const classBase = "vuuToggleFilter";
|
|
27
30
|
const NO_MATCHING_DATA = "No matching data";
|
|
28
|
-
const ToggleFilter_ToggleFilter = /*#__PURE__*/ forwardRef(function({ className, column, defaultValue: defaultValueProp, labels, onCommit, table, value: valueProp, values, ...ToggleButtonGroupProps }, forwardedRef) {
|
|
31
|
+
const ToggleFilter_ToggleFilter = /*#__PURE__*/ forwardRef(function({ className, column, defaultValue: defaultValueProp, disableTypeahead, labels, onCommit, table, value: valueProp, values, ...ToggleButtonGroupProps }, forwardedRef) {
|
|
29
32
|
const targetWindow = useWindow();
|
|
30
33
|
useComponentCssInjection({
|
|
31
34
|
testId: "vuu-toggle-filter",
|
|
@@ -34,16 +37,23 @@ 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,
|
|
43
|
+
disableTypeahead,
|
|
39
44
|
table,
|
|
40
|
-
values
|
|
45
|
+
values: stringValues
|
|
41
46
|
});
|
|
42
47
|
const handleChange = useCallback((e)=>{
|
|
43
48
|
const value = e.currentTarget.value;
|
|
44
|
-
"all" === value
|
|
49
|
+
if ("all" === value) onCommit(e, "");
|
|
50
|
+
else {
|
|
51
|
+
const toggleValue = values.find((v)=>`${v}` === value);
|
|
52
|
+
onCommit(e, "boolean" == typeof toggleValue ? toggleValue : value);
|
|
53
|
+
}
|
|
45
54
|
}, [
|
|
46
|
-
onCommit
|
|
55
|
+
onCommit,
|
|
56
|
+
values
|
|
47
57
|
]);
|
|
48
58
|
return /*#__PURE__*/ jsxs(ToggleButtonGroup, {
|
|
49
59
|
...ToggleButtonGroupProps,
|
|
@@ -57,7 +67,7 @@ const ToggleFilter_ToggleFilter = /*#__PURE__*/ forwardRef(function({ className,
|
|
|
57
67
|
value: "all",
|
|
58
68
|
children: "All"
|
|
59
69
|
}, "all"),
|
|
60
|
-
|
|
70
|
+
stringValues.map((toggleValue, i)=>{
|
|
61
71
|
const unavailable = unavailableValues.includes(toggleValue);
|
|
62
72
|
return /*#__PURE__*/ jsx(Tooltip, {
|
|
63
73
|
content: NO_MATCHING_DATA,
|
|
@@ -12,7 +12,11 @@ const hasFilterOnColumn = (filterSpec, column)=>{
|
|
|
12
12
|
const filter = filterSpec.filterStruct ?? parseFilter(filterSpec.filter);
|
|
13
13
|
return void 0 !== extractFilterForColumn(filter, column);
|
|
14
14
|
};
|
|
15
|
-
const
|
|
15
|
+
const isNonStringColumn = (dataSource, column)=>{
|
|
16
|
+
const serverDataType = dataSource?.tableSchema?.columns.find((col)=>col.name === column)?.serverDataType;
|
|
17
|
+
return void 0 !== serverDataType && "string" !== serverDataType;
|
|
18
|
+
};
|
|
19
|
+
const useToggleFilter = ({ column, disableTypeahead = false, table, values })=>{
|
|
16
20
|
const dataSource = useDataSource(false);
|
|
17
21
|
const [typeaheadValues, setTypeaheadValues] = useState(void 0);
|
|
18
22
|
const getSuggestions = useTypeaheadSuggestions();
|
|
@@ -24,7 +28,7 @@ const useToggleFilter = ({ column, table, values })=>{
|
|
|
24
28
|
const tableModule = vuuTable?.module;
|
|
25
29
|
const tableName = vuuTable?.table;
|
|
26
30
|
const checkAvailability = useCallback(()=>{
|
|
27
|
-
if (void 0 === tableModule || void 0 === tableName || void 0 === dataSource) return;
|
|
31
|
+
if (disableTypeahead || void 0 === tableModule || void 0 === tableName || void 0 === dataSource || isNonStringColumn(dataSource, column)) return;
|
|
28
32
|
if (hasFilterOnColumn(dataSource.filter, column)) return;
|
|
29
33
|
const requestId = ++requestIdRef.current;
|
|
30
34
|
const params = [
|
|
@@ -42,6 +46,7 @@ const useToggleFilter = ({ column, table, values })=>{
|
|
|
42
46
|
}, [
|
|
43
47
|
column,
|
|
44
48
|
dataSource,
|
|
49
|
+
disableTypeahead,
|
|
45
50
|
getSuggestions,
|
|
46
51
|
tableModule,
|
|
47
52
|
tableName
|
|
@@ -65,6 +70,14 @@ const useToggleFilter = ({ column, table, values })=>{
|
|
|
65
70
|
checkAvailability,
|
|
66
71
|
dataSource
|
|
67
72
|
]);
|
|
73
|
+
useEffect(()=>{
|
|
74
|
+
if (disableTypeahead) {
|
|
75
|
+
requestIdRef.current += 1;
|
|
76
|
+
setTypeaheadValues(void 0);
|
|
77
|
+
}
|
|
78
|
+
}, [
|
|
79
|
+
disableTypeahead
|
|
80
|
+
]);
|
|
68
81
|
return useMemo(()=>{
|
|
69
82
|
if (void 0 === typeaheadValues) return {
|
|
70
83
|
unavailableValues: []
|
|
@@ -4,4 +4,4 @@ import { type FilterBarProps } from "../filter-bar";
|
|
|
4
4
|
export interface CustomFilterProps extends HTMLAttributes<HTMLDivElement>, Pick<FilterBarProps, "defaultFilterState" | "filterState" | "onApplyFilter" | "onClearFilter" | "onFilterDeleted" | "onFilterRenamed" | "onFilterStateChanged" | "vuuTable"> {
|
|
5
5
|
columnDescriptors: readonly ColumnDescriptor[];
|
|
6
6
|
}
|
|
7
|
-
export declare const CustomFilters: ({ columnDescriptors, defaultFilterState, filterState, onApplyFilter, onClearFilter, onFilterDeleted, onFilterRenamed, onFilterStateChanged, vuuTable, }: CustomFilterProps) => import("react").JSX.Element;
|
|
7
|
+
export declare const CustomFilters: ({ columnDescriptors, defaultFilterState, filterState, onApplyFilter, onClearFilter, onFilterDeleted, onFilterRenamed, onFilterStateChanged, vuuTable, }: CustomFilterProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -30,4 +30,4 @@ export interface FilterBarProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
30
30
|
vuuTable?: VuuTable;
|
|
31
31
|
variant?: FilterBarVariant;
|
|
32
32
|
}
|
|
33
|
-
export declare const FilterBar: ({ QuickFilterProps, className: classNameProp, columnDescriptors, defaultFilterMode, defaultFilterState, filterMode: filterModeProp, filterState, onApplyFilter, onChangeFilterMode: onChangeFilterModeProp, onClearFilter, onFilterDeleted, onFilterRenamed, onFilterStateChanged, vuuTable, variant, ...htmlAttributes }: FilterBarProps) => import("react").JSX.Element;
|
|
33
|
+
export declare const FilterBar: ({ QuickFilterProps, className: classNameProp, columnDescriptors, defaultFilterMode, defaultFilterState, filterMode: filterModeProp, filterState, onApplyFilter, onChangeFilterMode: onChangeFilterModeProp, onClearFilter, onFilterDeleted, onFilterRenamed, onFilterStateChanged, vuuTable, variant, ...htmlAttributes }: FilterBarProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const FilterBarMenu: () => import("react").JSX.Element;
|
|
1
|
+
export declare const FilterBarMenu: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -13,4 +13,4 @@ export interface FilterClauseProps extends Omit<HTMLAttributes<HTMLDivElement>,
|
|
|
13
13
|
dropdownOnAutofocus?: boolean;
|
|
14
14
|
vuuTable: VuuTable;
|
|
15
15
|
}
|
|
16
|
-
export declare const FilterClause: ({ className, columnsByName, onCancel, onDropdownOpen, onFocusSave, filterClauseModel, vuuTable, dropdownOnAutofocus, ...htmlAttributes }: FilterClauseProps) => import("react").JSX.Element;
|
|
16
|
+
export declare const FilterClause: ({ className, columnsByName, onCancel, onDropdownOpen, onFocusSave, filterClauseModel, vuuTable, dropdownOnAutofocus, ...htmlAttributes }: FilterClauseProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -16,5 +16,5 @@ interface FilterClauseValueEditorDateProps extends Pick<FilterClauseValueEditor,
|
|
|
16
16
|
* created, the clause is applied to the whole day e.g. '=' selects all values
|
|
17
17
|
* on that day, '>' selects all values after that day (see temporalFilterAsQuery).
|
|
18
18
|
*/
|
|
19
|
-
export declare const FilterClauseValueEditorDate: ({ className, inputProps, onChangeValue, temporalInfo, value, }: FilterClauseValueEditorDateProps) => import("react").JSX.Element;
|
|
19
|
+
export declare const FilterClauseValueEditorDate: ({ className, inputProps, onChangeValue, temporalInfo, value, }: FilterClauseValueEditorDateProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
20
|
export {};
|
|
@@ -16,5 +16,5 @@ interface FilterClauseValueEditorTimeProps extends Pick<FilterClauseValueEditor,
|
|
|
16
16
|
* is created, the time is resolved against today's date (in the column time
|
|
17
17
|
* zone), so a saved filter always applies to the current day.
|
|
18
18
|
*/
|
|
19
|
-
export declare const FilterClauseValueEditorTime: ({ className, onChangeValue, temporalInfo, value, }: FilterClauseValueEditorTimeProps) => import("react").JSX.Element;
|
|
19
|
+
export declare const FilterClauseValueEditorTime: ({ className, onChangeValue, temporalInfo, value, }: FilterClauseValueEditorTimeProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
20
|
export {};
|
|
@@ -16,7 +16,7 @@ export interface FilterContainerColumnFilterProps extends Omit<ColumnFilterProps
|
|
|
16
16
|
*/
|
|
17
17
|
pattern?: DateTimePattern;
|
|
18
18
|
}
|
|
19
|
-
export declare const FilterContainerColumnFilter: ({ column: columnProp, operator, pattern: patternProp, variant, ...props }: FilterContainerColumnFilterProps) => import("react").JSX.Element;
|
|
19
|
+
export declare const FilterContainerColumnFilter: ({ column: columnProp, operator, pattern: patternProp, variant, ...props }: FilterContainerColumnFilterProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
20
|
/**
|
|
21
21
|
* FilterContainer is a generic UI container for a collection of Filter
|
|
22
22
|
* controls. Each control manages a single filter clause and the Filter
|
|
@@ -27,4 +27,4 @@ export declare const FilterContainerColumnFilter: ({ column: columnProp, operato
|
|
|
27
27
|
* the top-level filter.
|
|
28
28
|
* See FilterPanel and InlineFilter for examples of FilterContainer usage.
|
|
29
29
|
*/
|
|
30
|
-
export declare const FilterContainer: ({ children, className, filter, filterProviderKey, onFilterApplied, onFilterCleared, ...htmlAttributes }: FilterContainerProps) => import("react").JSX.Element;
|
|
30
|
+
export declare const FilterContainer: ({ children, className, filter, filterProviderKey, onFilterApplied, onFilterCleared, ...htmlAttributes }: FilterContainerProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -6,4 +6,4 @@ export interface FilterClauseCombinatorProps {
|
|
|
6
6
|
onKeyDown: KeyboardEventHandler;
|
|
7
7
|
operator: FilterCombinatorOp;
|
|
8
8
|
}
|
|
9
|
-
export declare const FilterClauseCombinator: ({ onChange, onKeyDown, operator, }: FilterClauseCombinatorProps) => import("react").JSX.Element;
|
|
9
|
+
export declare const FilterClauseCombinator: ({ onChange, onKeyDown, operator, }: FilterClauseCombinatorProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -11,4 +11,4 @@ export interface FilterEditorProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
11
11
|
onSave: FilterEditSaveHandler;
|
|
12
12
|
vuuTable: VuuTable;
|
|
13
13
|
}
|
|
14
|
-
export declare const FilterEditor: ({ columnDescriptors, filter, onCancel, onSave, vuuTable, ...htmlAttributes }: FilterEditorProps) => import("react").JSX.Element;
|
|
14
|
+
export declare const FilterEditor: ({ columnDescriptors, filter, onCancel, onSave, vuuTable, ...htmlAttributes }: FilterEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -21,4 +21,4 @@ export interface FilterMenuProps extends Pick<MenuProps, "getVirtualElement" | "
|
|
|
21
21
|
permissions?: FilterPermissions;
|
|
22
22
|
}
|
|
23
23
|
export type FilterAction = "close" | "remove" | "edit" | "rename";
|
|
24
|
-
export declare const FilterMenu: ({ filterId, getVirtualElement, onMenuAction, onOpenChange, open, permissions, }: FilterMenuProps) => import("react").JSX.Element;
|
|
24
|
+
export declare const FilterMenu: ({ filterId, getVirtualElement, onMenuAction, onOpenChange, open, permissions, }: FilterMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -13,4 +13,4 @@ export interface FilterPillProps extends SplitStateButtonProps, Pick<Partial<Edi
|
|
|
13
13
|
onBeginEdit?: (filter: Filter) => void;
|
|
14
14
|
onMenuAction?: MenuActionHandler;
|
|
15
15
|
}
|
|
16
|
-
export declare const FilterPill: ({ allowClose, allowDelete, allowEdit, allowRename, className: classNameProp, columnsByName, editable, editing, editLabelApiRef, filter, id: idProp, onBeginEdit, onExitEditMode, onMenuAction, ...htmlAttributes }: FilterPillProps) => import("react").JSX.Element;
|
|
16
|
+
export declare const FilterPill: ({ allowClose, allowDelete, allowEdit, allowRename, className: classNameProp, columnsByName, editable, editing, editLabelApiRef, filter, id: idProp, onBeginEdit, onExitEditMode, onMenuAction, ...htmlAttributes }: FilterPillProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -12,4 +12,4 @@ export interface FilterPillNextProps extends FilterPillNextHookProps, Omit<HTMLA
|
|
|
12
12
|
permissions?: FilterPermissions;
|
|
13
13
|
showTooltip?: boolean;
|
|
14
14
|
}
|
|
15
|
-
export declare const FilterPillNext: ({ active, appearence, columns, className, defaultActive, filter, id, onClick, onMenuAction: onMenuActionProp, permissions, showTooltip, ...htmlAttributes }: FilterPillNextProps) => import("react").JSX.Element;
|
|
15
|
+
export declare const FilterPillNext: ({ active, appearence, columns, className, defaultActive, filter, id, onClick, onMenuAction: onMenuActionProp, permissions, showTooltip, ...htmlAttributes }: FilterPillNextProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -14,4 +14,4 @@ export interface FilterPillMenuProps {
|
|
|
14
14
|
onMenuAction: MenuActionHandler;
|
|
15
15
|
onMenuClose?: () => void;
|
|
16
16
|
}
|
|
17
|
-
export declare const FilterPillMenu: ({ allowClose, allowDelete, allowEdit, allowRename, filter, location, onMenuAction, onMenuClose, }: FilterPillMenuProps) => import("react").JSX.Element;
|
|
17
|
+
export declare const FilterPillMenu: ({ allowClose, allowDelete, allowEdit, allowRename, filter, location, onMenuAction, onMenuClose, }: FilterPillMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -25,4 +25,4 @@ export interface FilterProviderProps {
|
|
|
25
25
|
savedFilters?: SavedFilterRecord;
|
|
26
26
|
filterNameMaxLength?: number;
|
|
27
27
|
}
|
|
28
|
-
export declare const FilterProvider: ({ children, columnFilterPatterns, columnTypeFilterPatterns, onFiltersSaved, savedFilters: savedFiltersProp, filterNameMaxLength, }: FilterProviderProps) => import("react").JSX.Element;
|
|
28
|
+
export declare const FilterProvider: ({ children, columnFilterPatterns, columnTypeFilterPatterns, onFiltersSaved, savedFilters: savedFiltersProp, filterNameMaxLength, }: FilterProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -6,4 +6,4 @@ export interface FilterToggleButtonProps {
|
|
|
6
6
|
filterProviderKey?: string;
|
|
7
7
|
onToggle: () => void;
|
|
8
8
|
}
|
|
9
|
-
export declare const FilterToggleButton: ({ columns, filterProviderKey, onToggle, }: FilterToggleButtonProps) => import("react").JSX.Element;
|
|
9
|
+
export declare const FilterToggleButton: ({ columns, filterProviderKey, onToggle, }: FilterToggleButtonProps) => import("react/jsx-runtime").JSX.Element;
|
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";
|
|
@@ -9,4 +9,4 @@ export interface InlineFilterProps extends Partial<BaseRowProps>, Omit<HTMLAttri
|
|
|
9
9
|
onFilterCleared?: () => void;
|
|
10
10
|
table: TableSchemaTable;
|
|
11
11
|
}
|
|
12
|
-
export declare const InlineFilter: ({ ariaRole, onFilterApplied, onFilterCleared, table, ...htmlAttributes }: InlineFilterProps) => import("react").JSX.Element;
|
|
12
|
+
export declare const InlineFilter: ({ ariaRole, onFilterApplied, onFilterCleared, table, ...htmlAttributes }: InlineFilterProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -14,4 +14,4 @@ export interface QuickFilterProps extends HTMLAttributes<HTMLDivElement>, Pick<F
|
|
|
14
14
|
*/
|
|
15
15
|
showFind?: boolean | string[];
|
|
16
16
|
}
|
|
17
|
-
export declare const QuickFilters: ({ allowAddColumn, allowFind, availableColumns, onApplyFilter, onClearFilter, onChangeQuickFilterColumns, quickFilterColumns, vuuTable, }: QuickFilterProps) => import("react").JSX.Element;
|
|
17
|
+
export declare const QuickFilters: ({ allowAddColumn, allowFind, availableColumns, onApplyFilter, onClearFilter, onChangeQuickFilterColumns, quickFilterColumns, vuuTable, }: QuickFilterProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -6,4 +6,4 @@ export interface DeleteFilterPromptProps extends Pick<PromptProps, "onConfirm" |
|
|
|
6
6
|
columns?: ColumnDescriptor[];
|
|
7
7
|
filterDescriptor: FilterContainerFilterDescriptor;
|
|
8
8
|
}
|
|
9
|
-
export declare const DeleteFilterPrompt: ({ children, className, columns, filterDescriptor, onClose, onConfirm, open, ...htmlAttributes }: DeleteFilterPromptProps) => import("react").JSX.Element;
|
|
9
|
+
export declare const DeleteFilterPrompt: ({ children, className, columns, filterDescriptor, onClose, onConfirm, open, ...htmlAttributes }: DeleteFilterPromptProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -3,4 +3,4 @@ import { HTMLAttributes } from "react";
|
|
|
3
3
|
import { FilterNamePromptHookProps } from "./useFilterNamePrompt";
|
|
4
4
|
export interface FilterNamePromptProps extends FilterNamePromptHookProps, Pick<PromptProps, "onClose" | "open" | "title">, Omit<HTMLAttributes<HTMLDivElement>, "title"> {
|
|
5
5
|
}
|
|
6
|
-
export declare const FilterNamePrompt: ({ className, filterName, onClose, onConfirm: onConfirmProp, open, title, filterNameMaxLength, ...htmlAttributes }: FilterNamePromptProps) => import("react").JSX.Element;
|
|
6
|
+
export declare const FilterNamePrompt: ({ className, filterName, onClose, onConfirm: onConfirmProp, open, title, filterNameMaxLength, ...htmlAttributes }: FilterNamePromptProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -11,4 +11,4 @@ export interface SavedFilterPanelProps extends HTMLAttributes<HTMLDivElement>, P
|
|
|
11
11
|
availableColumns?: ColumnDescriptor[];
|
|
12
12
|
filterPillPermissions?: FilterPermissions;
|
|
13
13
|
}
|
|
14
|
-
export declare const SavedFilterPanel: ({ availableColumns, className, filterPillPermissions, filterProviderKey, ...htmlAttributes }: SavedFilterPanelProps) => import("react").JSX.Element;
|
|
14
|
+
export declare const SavedFilterPanel: ({ availableColumns, className, filterPillPermissions, filterProviderKey, ...htmlAttributes }: SavedFilterPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -7,4 +7,4 @@ export interface TabbedFilterContainerProps extends HTMLAttributes<HTMLDivElemen
|
|
|
7
7
|
filterTabLabel?: string;
|
|
8
8
|
savedFilterLabel?: string;
|
|
9
9
|
}
|
|
10
|
-
export declare const TabbedFilterContainer: ({ SavedFilterPanelProps, children, className, filter, filterProviderKey, filterTabLabel, onFilterApplied, onFilterCleared, savedFilterLabel, ...htmlAttributes }: TabbedFilterContainerProps) => import("react").JSX.Element;
|
|
10
|
+
export declare const TabbedFilterContainer: ({ SavedFilterPanelProps, children, className, filter, filterProviderKey, filterTabLabel, onFilterApplied, onFilterCleared, savedFilterLabel, ...htmlAttributes }: TabbedFilterContainerProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -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
|
|
@@ -10,13 +12,24 @@ import { type ToggleFilterHookProps } from "./useToggleFilter";
|
|
|
10
12
|
* values from dataSource.
|
|
11
13
|
* With neither of these Providers available, the ToggleFilter is
|
|
12
14
|
* behaving like a regular ToggleButtonGroup.
|
|
15
|
+
* Validation of values uses the typeahead service, which only supports
|
|
16
|
+
* string columns. It can be disabled with disableTypeahead and is always
|
|
17
|
+
* disabled for a non-string (e.g. boolean or numeric) column.
|
|
13
18
|
*/
|
|
14
|
-
export interface ToggleFilterProps extends ToggleButtonGroupProps, ToggleFilterHookProps {
|
|
19
|
+
export interface ToggleFilterProps extends Omit<ToggleButtonGroupProps, "defaultValue" | "value">, Omit<ToggleFilterHookProps, "values"> {
|
|
20
|
+
defaultValue?: ToggleFilterValue | Value;
|
|
15
21
|
/**
|
|
16
22
|
* Optional labels for the toggle buttons. If provided, must contain
|
|
17
23
|
* the same number of items as values. Defaults to values.
|
|
18
24
|
*/
|
|
19
25
|
labels?: string[];
|
|
20
26
|
onCommit: CommitHandler<HTMLElement>;
|
|
27
|
+
value?: ToggleFilterValue | Value;
|
|
28
|
+
/**
|
|
29
|
+
* Values for the toggle buttons. Boolean values are converted to
|
|
30
|
+
* strings internally, the original value is passed to onCommit.
|
|
31
|
+
*/
|
|
32
|
+
values: ToggleFilterValue[];
|
|
21
33
|
}
|
|
22
34
|
export declare const ToggleFilter: import("react").ForwardRefExoticComponent<ToggleFilterProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
35
|
+
export {};
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import type { TableSchemaTable } from "@vuu-ui/vuu-data-types";
|
|
2
2
|
export interface ToggleFilterHookProps {
|
|
3
3
|
column: string;
|
|
4
|
+
/**
|
|
5
|
+
* Typeahead is used to determine which toggle values have matching
|
|
6
|
+
* data. Set disableTypeahead to opt out of this check, all values
|
|
7
|
+
* will then be treated as available. Typeahead only supports string
|
|
8
|
+
* lookups, so it is always disabled if the serverDataType of column
|
|
9
|
+
* (from the DataSource tableSchema) is anything other than string.
|
|
10
|
+
*/
|
|
11
|
+
disableTypeahead?: boolean;
|
|
4
12
|
/**
|
|
5
13
|
* table must be provided to enable validation
|
|
6
14
|
* of values using server data.
|
|
@@ -26,4 +34,4 @@ export interface ToggleFilterHookResult {
|
|
|
26
34
|
* and the result of the last check (if any) is retained. If there has
|
|
27
35
|
* been no check, all values are assumed to possibly have data.
|
|
28
36
|
*/
|
|
29
|
-
export declare const useToggleFilter: ({ column, table, values, }: ToggleFilterHookProps) => ToggleFilterHookResult;
|
|
37
|
+
export declare const useToggleFilter: ({ column, disableTypeahead, table, values, }: ToggleFilterHookProps) => ToggleFilterHookResult;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ColumnFilterValue, ExtendedFilterOptions, FilterClauseOp, FilterContainerFilter } from "@vuu-ui/vuu-filter-types";
|
|
2
|
-
import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
3
|
-
/**
|
|
4
|
-
* Manages a filter that can be updated one clause at a time.
|
|
5
|
-
* Works with FilterContainer to aggregate multiple filter
|
|
6
|
-
* clauses edited via individual controls. It is just a wrapper
|
|
7
|
-
* around a Map, does not support switching filters - create a
|
|
8
|
-
* new FilterAggregator for a new filter.
|
|
9
|
-
*
|
|
10
|
-
*/
|
|
11
|
-
export declare class FilterAggregator {
|
|
12
|
-
#private;
|
|
13
|
-
constructor(filter?: FilterContainerFilter);
|
|
14
|
-
add(column: ColumnDescriptor, value: ColumnFilterValue, op?: FilterClauseOp | "between" | "between-inclusive", extendedFilterOptions?: ExtendedFilterOptions): void;
|
|
15
|
-
has({ name }: ColumnDescriptor): boolean;
|
|
16
|
-
get({ name }: ColumnDescriptor): FilterContainerFilter | undefined;
|
|
17
|
-
clear(): void;
|
|
18
|
-
/**
|
|
19
|
-
* Remove filter for this column. Return false if no filter found, otw true
|
|
20
|
-
*/
|
|
21
|
-
remove(column: ColumnDescriptor): boolean;
|
|
22
|
-
get isEmpty(): boolean;
|
|
23
|
-
/**
|
|
24
|
-
* Count of the number of columns for which filters are stored
|
|
25
|
-
*/
|
|
26
|
-
get count(): number;
|
|
27
|
-
get filter(): FilterContainerFilter | undefined;
|
|
28
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Filter, FilterClause, FilterClauseOp, FilterCombinatorOp } from "@vuu-ui/vuu-filter-types";
|
|
2
|
-
import { EventEmitter } from "@vuu-ui/vuu-utils";
|
|
3
|
-
export type FilterStatusChangeHandler = (isValid: boolean) => void;
|
|
4
|
-
export type FilterChangeHandler = (filter: Partial<Filter>, isValid: boolean) => void;
|
|
5
|
-
export type FilterClauseChangeHandler = (filter: Partial<FilterClause>, isValid: boolean) => void;
|
|
6
|
-
export type FilterClauseModelEvents = {
|
|
7
|
-
filterClause: FilterClauseChangeHandler;
|
|
8
|
-
isValid: FilterStatusChangeHandler;
|
|
9
|
-
};
|
|
10
|
-
export type FilterModelEvents = {
|
|
11
|
-
filter: FilterChangeHandler;
|
|
12
|
-
isValid: FilterStatusChangeHandler;
|
|
13
|
-
};
|
|
14
|
-
export declare class FilterClauseModel extends EventEmitter<FilterClauseModelEvents> {
|
|
15
|
-
#private;
|
|
16
|
-
constructor(filterClause: Partial<FilterClause>);
|
|
17
|
-
get isValid(): boolean;
|
|
18
|
-
private setIsValid;
|
|
19
|
-
get column(): undefined | string;
|
|
20
|
-
set column(column: undefined | string);
|
|
21
|
-
get op(): "in" | import("@vuu-ui/vuu-filter-types").SingleValueFilterClauseOp | undefined;
|
|
22
|
-
setOp(op: undefined | FilterClauseOp): void;
|
|
23
|
-
setValue(value: undefined | string | string[] | number | number[] | boolean | boolean[], isFinal?: boolean): void;
|
|
24
|
-
asFilter(throwIfInvalid?: boolean): FilterClause;
|
|
25
|
-
commit(): void;
|
|
26
|
-
}
|
|
27
|
-
export declare class FilterModel extends EventEmitter<FilterModelEvents> {
|
|
28
|
-
#private;
|
|
29
|
-
constructor(filter?: Filter);
|
|
30
|
-
get isValid(): boolean;
|
|
31
|
-
private setIsValid;
|
|
32
|
-
addNewFilterClause(operator?: FilterCombinatorOp): void;
|
|
33
|
-
addFilterClause(filterClause?: Partial<FilterClause>): void;
|
|
34
|
-
removeFilterClause(filterClause: FilterClauseModel): void;
|
|
35
|
-
checkValidStatus(): void;
|
|
36
|
-
onFilterClauseChange: FilterChangeHandler;
|
|
37
|
-
onFilterClauseStatusChange: (isValid: boolean) => void;
|
|
38
|
-
getFilterClause(index: number): FilterClauseModel;
|
|
39
|
-
get op(): FilterCombinatorOp | undefined;
|
|
40
|
-
setOp(op: FilterCombinatorOp): void;
|
|
41
|
-
get filterClauses(): FilterClauseModel[];
|
|
42
|
-
get isMultiClauseFilter(): boolean;
|
|
43
|
-
asFilter(throwIfInvalid?: boolean): Filter;
|
|
44
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type SegmentedButtonGroupProps } from "@salt-ds/core";
|
|
2
|
-
import { DataItemEditControlProps } from "@vuu-ui/vuu-data-react";
|
|
3
|
-
import { ColumnFilterHookProps } from "./useColumnFilter";
|
|
4
|
-
export interface ColumnFilterProps extends ColumnFilterHookProps, Omit<SegmentedButtonGroupProps, "defaultValue">, Pick<DataItemEditControlProps, "TypeaheadProps" | "table" | "values" | "variant"> {
|
|
5
|
-
}
|
|
6
|
-
export declare const ColumnFilter: import("react").ForwardRefExoticComponent<ColumnFilterProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { ColumnFilterChangeHandler, ColumnFilterCommitHandler, ColumnFilterOp, ColumnFilterValue, ExtendedFilterOptions } from "@vuu-ui/vuu-filter-types";
|
|
2
|
-
import { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
3
|
-
import { InputProps } from "@salt-ds/core";
|
|
4
|
-
import { CommitHandler } from "@vuu-ui/vuu-utils";
|
|
5
|
-
import { DataItemEditControlProps } from "@vuu-ui/vuu-data-react";
|
|
6
|
-
export interface ColumnFilterHookProps extends Pick<DataItemEditControlProps, "InputProps"> {
|
|
7
|
-
column: ColumnDescriptor;
|
|
8
|
-
/**
|
|
9
|
-
* Filter defaultValue. Pair of values expected when operator is
|
|
10
|
-
* 'between'. If provided, component is uncontrolled
|
|
11
|
-
*/
|
|
12
|
-
defaultValue?: ColumnFilterValue;
|
|
13
|
-
/**
|
|
14
|
-
* Provides for custom filters.
|
|
15
|
-
*/
|
|
16
|
-
extendedFilterOptions?: ExtendedFilterOptions;
|
|
17
|
-
/**
|
|
18
|
-
* Filter change events.
|
|
19
|
-
*/
|
|
20
|
-
onColumnFilterChange?: ColumnFilterChangeHandler;
|
|
21
|
-
/**
|
|
22
|
-
* Filter change events on second control in range filter
|
|
23
|
-
*/
|
|
24
|
-
onColumnRangeFilterChange?: ColumnFilterChangeHandler;
|
|
25
|
-
/**
|
|
26
|
-
* Called when user 'commits' filter value, either by pressing enter,
|
|
27
|
-
* tabbing away from control or making selection from list
|
|
28
|
-
*/
|
|
29
|
-
onCommit: ColumnFilterCommitHandler;
|
|
30
|
-
operator?: ColumnFilterOp;
|
|
31
|
-
/**
|
|
32
|
-
* Filter value. Pair of values expected when operator is
|
|
33
|
-
* 'between'. If provided, component is controlled.
|
|
34
|
-
*/
|
|
35
|
-
value?: ColumnFilterValue;
|
|
36
|
-
}
|
|
37
|
-
export declare const useColumnFilter: ({ InputProps: InputPropsProp, column, defaultValue, extendedFilterOptions, onColumnFilterChange, onColumnRangeFilterChange, onCommit, operator, value: valueProp, }: ColumnFilterHookProps) => {
|
|
38
|
-
InputProps: InputProps;
|
|
39
|
-
InputPropsRange: InputProps;
|
|
40
|
-
isInvalid: boolean;
|
|
41
|
-
onCommit: CommitHandler<HTMLElement>;
|
|
42
|
-
onCommitRange: CommitHandler<HTMLElement>;
|
|
43
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { Filter } from "@vuu-ui/vuu-filter-types";
|
|
2
|
-
export declare const isStartsWithValue: (value: string) => boolean;
|
|
3
|
-
export declare const getTypeaheadFilter: (column: string, filterValues: string[], isStartsWithFilter?: boolean) => Filter | undefined;
|
|
4
|
-
export declare const getRangeFilter: (column: string, startValue?: number, endValue?: number) => Filter | undefined;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
2
|
-
import { HTMLAttributes } from "react";
|
|
3
|
-
import { type FilterBarProps } from "../filter-bar";
|
|
4
|
-
export interface CustomFilterProps extends HTMLAttributes<HTMLDivElement>, Pick<FilterBarProps, "defaultFilterState" | "filterState" | "onApplyFilter" | "onClearFilter" | "onFilterDeleted" | "onFilterRenamed" | "onFilterStateChanged" | "vuuTable"> {
|
|
5
|
-
columnDescriptors: readonly ColumnDescriptor[];
|
|
6
|
-
}
|
|
7
|
-
export declare const CustomFilters: ({ columnDescriptors, defaultFilterState, filterState, onApplyFilter, onClearFilter, onFilterDeleted, onFilterRenamed, onFilterStateChanged, vuuTable, }: CustomFilterProps) => import("react").JSX.Element;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const navigateToNextItem: (el: HTMLElement | EventTarget, direction?: "bwd" | "fwd") => void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./CustomFilters";
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { ColumnDescriptorsByName, Filter } from "@vuu-ui/vuu-filter-types";
|
|
2
|
-
import { PromptProps } from "@vuu-ui/vuu-ui-controls";
|
|
3
|
-
import { KeyboardEventHandler, RefObject } from "react";
|
|
4
|
-
import { FilterBarProps } from "../filter-bar";
|
|
5
|
-
import { FilterEditCancelHandler, FilterEditSaveHandler } from "../filter-editor";
|
|
6
|
-
import { FilterPillProps } from "../filter-pill";
|
|
7
|
-
export type EditFilterState = "create" | "edit";
|
|
8
|
-
export type FilterState = EditFilterState | "rename";
|
|
9
|
-
export declare const isEditFilterState: (filterState?: string) => filterState is EditFilterState;
|
|
10
|
-
type InteractedFilterState = {
|
|
11
|
-
filter?: Filter;
|
|
12
|
-
index: number;
|
|
13
|
-
state: FilterState;
|
|
14
|
-
};
|
|
15
|
-
export interface CustomFilterHookProps extends Pick<FilterBarProps, "columnDescriptors" | "defaultFilterState" | "filterState" | "onApplyFilter" | "onClearFilter" | "onFilterDeleted" | "onFilterRenamed" | "onFilterStateChanged"> {
|
|
16
|
-
containerRef: RefObject<HTMLDivElement | null>;
|
|
17
|
-
}
|
|
18
|
-
export declare const useCustomFilters: ({ columnDescriptors, containerRef, defaultFilterState, filterState, onApplyFilter, onClearFilter, onFilterDeleted, onFilterRenamed, onFilterStateChanged, }: CustomFilterHookProps) => {
|
|
19
|
-
FilterPillProps: Omit<FilterPillProps, "filter" | "selected">;
|
|
20
|
-
activeFilterIndex: number[];
|
|
21
|
-
addButtonProps: {
|
|
22
|
-
ref: RefObject<HTMLButtonElement | null>;
|
|
23
|
-
onClick: () => void;
|
|
24
|
-
onKeyDown: KeyboardEventHandler;
|
|
25
|
-
};
|
|
26
|
-
columnsByName: ColumnDescriptorsByName;
|
|
27
|
-
filters: Filter[];
|
|
28
|
-
interactedFilterState: InteractedFilterState | undefined;
|
|
29
|
-
onCancelEdit: FilterEditCancelHandler;
|
|
30
|
-
onSave: FilterEditSaveHandler;
|
|
31
|
-
promptProps: PromptProps | null;
|
|
32
|
-
};
|
|
33
|
-
export {};
|