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.
Files changed (42) hide show
  1. package/dist/cjs/components/CompositeFiltersInput/CompositeFiltersInput.cjs +16 -9
  2. package/dist/cjs/components/CompositeFiltersInput/CompositeFiltersInput.cjs.map +1 -1
  3. package/dist/cjs/components/CompositeFiltersInput/FilterActionsMenu.cjs +57 -4
  4. package/dist/cjs/components/CompositeFiltersInput/FilterActionsMenu.cjs.map +1 -1
  5. package/dist/cjs/hooks/useCompositeFilters.cjs +665 -0
  6. package/dist/cjs/hooks/useCompositeFilters.cjs.map +1 -0
  7. package/dist/cjs/hooks/useFilterHistory.cjs +12 -7
  8. package/dist/cjs/hooks/useFilterHistory.cjs.map +1 -1
  9. package/dist/cjs/hooks/useFilterPresets.cjs +20 -7
  10. package/dist/cjs/hooks/useFilterPresets.cjs.map +1 -1
  11. package/dist/cjs/index.cjs +6 -0
  12. package/dist/cjs/index.cjs.map +1 -1
  13. package/dist/cjs/storage/localStorageAdapter.cjs +81 -0
  14. package/dist/cjs/storage/localStorageAdapter.cjs.map +1 -0
  15. package/dist/cjs/storage/useStorageState.cjs +68 -0
  16. package/dist/cjs/storage/useStorageState.cjs.map +1 -0
  17. package/dist/esm/components/CompositeFiltersInput/CompositeFiltersInput.mjs +17 -10
  18. package/dist/esm/components/CompositeFiltersInput/CompositeFiltersInput.mjs.map +1 -1
  19. package/dist/esm/components/CompositeFiltersInput/FilterActionsMenu.mjs +59 -6
  20. package/dist/esm/components/CompositeFiltersInput/FilterActionsMenu.mjs.map +1 -1
  21. package/dist/esm/hooks/useCompositeFilters.mjs +663 -0
  22. package/dist/esm/hooks/useCompositeFilters.mjs.map +1 -0
  23. package/dist/esm/hooks/useFilterHistory.mjs +12 -7
  24. package/dist/esm/hooks/useFilterHistory.mjs.map +1 -1
  25. package/dist/esm/hooks/useFilterPresets.mjs +22 -9
  26. package/dist/esm/hooks/useFilterPresets.mjs.map +1 -1
  27. package/dist/esm/index.mjs +3 -0
  28. package/dist/esm/index.mjs.map +1 -1
  29. package/dist/esm/storage/localStorageAdapter.mjs +79 -0
  30. package/dist/esm/storage/localStorageAdapter.mjs.map +1 -0
  31. package/dist/esm/storage/useStorageState.mjs +66 -0
  32. package/dist/esm/storage/useStorageState.mjs.map +1 -0
  33. package/dist/types/components/CompositeFiltersInput/FilterActionsMenu.d.ts +8 -1
  34. package/dist/types/hooks/useCompositeFilters.d.ts +98 -0
  35. package/dist/types/index.d.mts +5 -1
  36. package/dist/types/index.d.ts +5 -1
  37. package/dist/types/storage/index.d.ts +4 -0
  38. package/dist/types/storage/localStorageAdapter.d.ts +2 -0
  39. package/dist/types/storage/types.d.ts +19 -0
  40. package/dist/types/storage/useStorageState.d.ts +7 -0
  41. package/dist/types/types/filter.types.d.ts +15 -0
  42. 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] = hooks.useLocalStorage({
72
- key: `${storageKeyPrefix}-compact-mode`,
75
+ const [isCompactMode, setIsCompactMode] = useStorageState.useStorageState({
76
+ storageKey: `${storageKeyPrefix}-compact-mode`,
73
77
  defaultValue: false
74
78
  });
75
- const [showFilterCount, setShowFilterCount] = hooks.useLocalStorage({
76
- key: `${storageKeyPrefix}-show-count`,
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
  )