mantine-composite-filters 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/CompositeFiltersInput/CompositeFiltersInput.cjs +16 -9
- package/dist/cjs/components/CompositeFiltersInput/CompositeFiltersInput.cjs.map +1 -1
- package/dist/cjs/components/CompositeFiltersInput/FilterActionsMenu.cjs +57 -4
- package/dist/cjs/components/CompositeFiltersInput/FilterActionsMenu.cjs.map +1 -1
- package/dist/cjs/hooks/useCompositeFilters.cjs +665 -0
- package/dist/cjs/hooks/useCompositeFilters.cjs.map +1 -0
- package/dist/cjs/hooks/useFilterHistory.cjs +12 -7
- package/dist/cjs/hooks/useFilterHistory.cjs.map +1 -1
- package/dist/cjs/hooks/useFilterPresets.cjs +20 -7
- package/dist/cjs/hooks/useFilterPresets.cjs.map +1 -1
- package/dist/cjs/index.cjs +6 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/storage/localStorageAdapter.cjs +81 -0
- package/dist/cjs/storage/localStorageAdapter.cjs.map +1 -0
- package/dist/cjs/storage/useStorageState.cjs +68 -0
- package/dist/cjs/storage/useStorageState.cjs.map +1 -0
- package/dist/esm/components/CompositeFiltersInput/CompositeFiltersInput.mjs +17 -10
- package/dist/esm/components/CompositeFiltersInput/CompositeFiltersInput.mjs.map +1 -1
- package/dist/esm/components/CompositeFiltersInput/FilterActionsMenu.mjs +59 -6
- package/dist/esm/components/CompositeFiltersInput/FilterActionsMenu.mjs.map +1 -1
- package/dist/esm/hooks/useCompositeFilters.mjs +663 -0
- package/dist/esm/hooks/useCompositeFilters.mjs.map +1 -0
- package/dist/esm/hooks/useFilterHistory.mjs +12 -7
- package/dist/esm/hooks/useFilterHistory.mjs.map +1 -1
- package/dist/esm/hooks/useFilterPresets.mjs +22 -9
- package/dist/esm/hooks/useFilterPresets.mjs.map +1 -1
- package/dist/esm/index.mjs +3 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/storage/localStorageAdapter.mjs +79 -0
- package/dist/esm/storage/localStorageAdapter.mjs.map +1 -0
- package/dist/esm/storage/useStorageState.mjs +66 -0
- package/dist/esm/storage/useStorageState.mjs.map +1 -0
- package/dist/types/components/CompositeFiltersInput/FilterActionsMenu.d.ts +8 -1
- package/dist/types/hooks/useCompositeFilters.d.ts +98 -0
- package/dist/types/index.d.mts +5 -1
- package/dist/types/index.d.ts +5 -1
- package/dist/types/storage/index.d.ts +4 -0
- package/dist/types/storage/localStorageAdapter.d.ts +2 -0
- package/dist/types/storage/types.d.ts +19 -0
- package/dist/types/storage/useStorageState.d.ts +7 -0
- package/dist/types/types/filter.types.d.ts +15 -0
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var core = require('@mantine/core');
|
|
8
8
|
var hooks = require('@mantine/hooks');
|
|
9
|
+
var useStorageState = require('../../storage/useStorageState.cjs');
|
|
9
10
|
var iconsReact = require('@tabler/icons-react');
|
|
10
11
|
var clsx = require('../../node_modules/clsx/dist/clsx.cjs');
|
|
11
12
|
var CompositeFiltersInput_module = require('./CompositeFiltersInput.module.css.cjs');
|
|
@@ -35,6 +36,8 @@ const CompositeFiltersInputBase = ({
|
|
|
35
36
|
disablePresets = false,
|
|
36
37
|
disableHistory = false,
|
|
37
38
|
storageKeyPrefix = "filters",
|
|
39
|
+
presetsStorageAdapter,
|
|
40
|
+
historyStorageAdapter,
|
|
38
41
|
customActions = [],
|
|
39
42
|
overflowMode = "scroll",
|
|
40
43
|
styles,
|
|
@@ -42,6 +45,7 @@ const CompositeFiltersInputBase = ({
|
|
|
42
45
|
operatorPlaceholder = "Select operator...",
|
|
43
46
|
valuePlaceholder = "Enter value...",
|
|
44
47
|
searchPlaceholder = "Search options...",
|
|
48
|
+
renderSavePresetModal,
|
|
45
49
|
...boxProps
|
|
46
50
|
}) => {
|
|
47
51
|
const theme = core.useMantineTheme();
|
|
@@ -68,12 +72,12 @@ const CompositeFiltersInputBase = ({
|
|
|
68
72
|
const [editingPart, setEditingPart] = React.useState(null);
|
|
69
73
|
const inputRef = React.useRef(null);
|
|
70
74
|
const pillsContainerRef = React.useRef(null);
|
|
71
|
-
const [isCompactMode, setIsCompactMode] =
|
|
72
|
-
|
|
75
|
+
const [isCompactMode, setIsCompactMode] = useStorageState.useStorageState({
|
|
76
|
+
storageKey: `${storageKeyPrefix}-compact-mode`,
|
|
73
77
|
defaultValue: false
|
|
74
78
|
});
|
|
75
|
-
const [showFilterCount, setShowFilterCount] =
|
|
76
|
-
|
|
79
|
+
const [showFilterCount, setShowFilterCount] = useStorageState.useStorageState({
|
|
80
|
+
storageKey: `${storageKeyPrefix}-show-count`,
|
|
77
81
|
defaultValue: true
|
|
78
82
|
});
|
|
79
83
|
const {
|
|
@@ -84,11 +88,13 @@ const CompositeFiltersInputBase = ({
|
|
|
84
88
|
deletePreset
|
|
85
89
|
} = useFilterPresets.useFilterPresets({
|
|
86
90
|
storageKey: `${storageKeyPrefix}-saved-presets`,
|
|
87
|
-
onLoad: onChange
|
|
91
|
+
onLoad: onChange,
|
|
92
|
+
storageAdapter: presetsStorageAdapter
|
|
88
93
|
});
|
|
89
94
|
const { history: filterHistory } = useFilterHistory.useFilterHistory(activeFilters, {
|
|
90
95
|
storageKey: `${storageKeyPrefix}-history`,
|
|
91
|
-
enabled: !disableHistory
|
|
96
|
+
enabled: !disableHistory,
|
|
97
|
+
storageAdapter: historyStorageAdapter
|
|
92
98
|
});
|
|
93
99
|
const combobox = core.useCombobox({
|
|
94
100
|
onDropdownClose: () => combobox.resetSelectedOption(),
|
|
@@ -594,8 +600,8 @@ const CompositeFiltersInputBase = ({
|
|
|
594
600
|
},
|
|
595
601
|
[inputStep, selectedField, multiSelectValues, handleValueSubmit, inputValue, activeFilters, resetInput, combobox, handleRemoveFilter]
|
|
596
602
|
);
|
|
597
|
-
const handleSavePreset = React.useCallback(() => {
|
|
598
|
-
savePreset(activeFilters);
|
|
603
|
+
const handleSavePreset = React.useCallback((name) => {
|
|
604
|
+
savePreset(activeFilters, name);
|
|
599
605
|
}, [activeFilters, savePreset]);
|
|
600
606
|
const showDropdown = inputStep === "field" || inputStep === "operator" || inputStep === "value" && (selectedField?.type === "select" || selectedField?.type === "multi_select");
|
|
601
607
|
const shouldShowDateInput = inputStep === "value" && (selectedField?.type === "date" || selectedField?.type === "date_range");
|
|
@@ -870,7 +876,8 @@ const CompositeFiltersInputBase = ({
|
|
|
870
876
|
filterHistory,
|
|
871
877
|
customActions,
|
|
872
878
|
disablePresets,
|
|
873
|
-
disableHistory
|
|
879
|
+
disableHistory,
|
|
880
|
+
renderSavePresetModal
|
|
874
881
|
}
|
|
875
882
|
)
|
|
876
883
|
)
|