@geotab/zenith 3.0.1 → 3.1.0-beta.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/README.md +17 -0
- package/dist/advancedGroupsFilter/advancedGroupsFilter.d.ts +1 -0
- package/dist/advancedGroupsFilter/advancedGroupsFilter.js +2 -2
- package/dist/advancedGroupsFilter/advancedGroupsFilterFormSection.js +3 -1
- package/dist/chip/chip.js +5 -5
- package/dist/commonStyles/zIndex.less +5 -0
- package/dist/dateInput/dateInput.d.ts +2 -1
- package/dist/dateInput/dateInput.js +11 -2
- package/dist/dateRange/dateRange.js +9 -8
- package/dist/dropdown/dropdown.d.ts +2 -0
- package/dist/dropdown/dropdown.js +6 -5
- package/dist/dropdown/dropdownHelper.d.ts +4 -4
- package/dist/dropdown/dropdownHelper.js +2 -1
- package/dist/dropdown/dropdownList.js +2 -2
- package/dist/dropdown/dropdownPopup.d.ts +1 -0
- package/dist/dropdown/dropdownPopup.js +2 -2
- package/dist/dropdown/dropdownSearchableTrigger.js +1 -1
- package/dist/dropdown/stateReducer/stateReducer.d.ts +6 -2
- package/dist/dropdown/stateReducer/stateReducer.js +28 -42
- package/dist/dropdown/stateReducer/stateReducerHelper.d.ts +2 -0
- package/dist/dropdown/stateReducer/stateReducerHelper.js +12 -1
- package/dist/dropdown/useDropdownState.d.ts +1 -1
- package/dist/dropdown/useDropdownState.js +5 -2
- package/dist/filters/components/filtersContainer.d.ts +1 -0
- package/dist/filters/components/filtersContainer.js +10 -11
- package/dist/filters/components/filtersDateInput.d.ts +10 -0
- package/dist/filters/components/filtersDateInput.js +27 -0
- package/dist/filters/components/filtersDropdown.d.ts +5 -4
- package/dist/filters/components/filtersDropdown.js +3 -3
- package/dist/filters/components/filtersEmptySelectedList.d.ts +2 -0
- package/dist/filters/components/filtersEmptySelectedList.js +11 -0
- package/dist/filters/components/filtersItem.d.ts +5 -4
- package/dist/filters/components/filtersItem.js +2 -1
- package/dist/filters/components/filtersSaveModal.d.ts +3 -1
- package/dist/filters/components/filtersSaveModal.js +2 -2
- package/dist/filters/components/filtersSavedChipComponent.js +68 -6
- package/dist/filters/components/filtersSearch.d.ts +4 -4
- package/dist/filters/components/filtersSearch.js +20 -9
- package/dist/filters/components/filtersSearchItemData.js +18 -1
- package/dist/filters/components/filtersSearchList.d.ts +5 -1
- package/dist/filters/components/filtersSearchList.js +155 -27
- package/dist/filters/components/filtersSelect.d.ts +1 -0
- package/dist/filters/components/filtersSelect.js +35 -7
- package/dist/filters/components/filtersSelectListItem.d.ts +21 -15
- package/dist/filters/components/filtersSelectListItem.js +13 -3
- package/dist/filters/components/filtersSidePanel.d.ts +15 -0
- package/dist/filters/components/filtersSidePanel.js +212 -0
- package/dist/filters/components/filtersSidePanelChip.d.ts +9 -0
- package/dist/filters/components/filtersSidePanelChip.js +13 -0
- package/dist/filters/components/filtersSidePanelDropdown.d.ts +6 -0
- package/dist/filters/components/filtersSidePanelDropdown.js +85 -0
- package/dist/filters/components/filtersSidePanelItem.d.ts +16 -0
- package/dist/filters/components/filtersSidePanelItem.js +67 -0
- package/dist/filters/components/filtersSidePanelRange.d.ts +6 -0
- package/dist/filters/components/filtersSidePanelRange.js +28 -0
- package/dist/filters/filters.d.ts +5 -0
- package/dist/filters/filters.js +101 -38
- package/dist/filters/filtersHelper.d.ts +4 -2
- package/dist/filters/filtersHelper.js +40 -1
- package/dist/filters/filtersHooks.d.ts +12 -2
- package/dist/filters/filtersHooks.js +21 -3
- package/dist/formStepper/formStepper.d.ts +1 -1
- package/dist/formStepper/formStepper.js +5 -2
- package/dist/groupsFilter/groupsFilter.js +72 -37
- package/dist/groupsFilter/groupsFilterMenu.d.ts +1 -0
- package/dist/groupsFilter/groupsFilterMenu.js +2 -2
- package/dist/groupsFilter/groupsFilterTrigger.js +1 -1
- package/dist/images/imageLooking.d.ts +4 -0
- package/dist/images/imageLooking.js +16 -0
- package/dist/index.css +407 -83
- package/dist/index.d.ts +7 -4
- package/dist/index.js +26 -15
- package/dist/list/list.d.ts +3 -1
- package/dist/list/list.js +2 -2
- package/dist/mobileSheet/mobileSheet.d.ts +2 -0
- package/dist/mobileSheet/mobileSheet.js +4 -4
- package/dist/modal/modal.d.ts +1 -0
- package/dist/modal/modal.js +2 -2
- package/dist/radioGroup/radioGroup.d.ts +1 -0
- package/dist/radioGroup/radioGroup.js +3 -2
- package/dist/range/range.js +29 -10
- package/dist/searchInputRaw/searchInputRaw.js +1 -1
- package/dist/sidePanel/sidePanel.d.ts +1 -0
- package/dist/sidePanel/sidePanel.js +3 -3
- package/dist/tabs/tabItem/tabItem.d.ts +1 -0
- package/dist/tabs/tabItem/tabItem.js +2 -2
- package/dist/tabs/tabs.d.ts +1 -0
- package/dist/tabs/tabs.js +1 -1
- package/dist/utils/keyboardHelpers.d.ts +2 -0
- package/dist/utils/keyboardHelpers.js +49 -0
- package/dist/utils/localization/translations/cs-json.d.ts +1 -0
- package/dist/utils/localization/translations/cs-json.js +2 -1
- package/dist/utils/localization/translations/de-json.d.ts +1 -0
- package/dist/utils/localization/translations/de-json.js +2 -1
- package/dist/utils/localization/translations/en-json.d.ts +7 -0
- package/dist/utils/localization/translations/en-json.js +8 -1
- package/dist/utils/localization/translations/es-json.d.ts +1 -0
- package/dist/utils/localization/translations/es-json.js +2 -1
- package/dist/utils/localization/translations/fr-FR-json.d.ts +1 -0
- package/dist/utils/localization/translations/fr-FR-json.js +2 -1
- package/dist/utils/localization/translations/fr-json.d.ts +1 -0
- package/dist/utils/localization/translations/fr-json.js +2 -1
- package/dist/utils/localization/translations/id-json.d.ts +1 -0
- package/dist/utils/localization/translations/id-json.js +2 -1
- package/dist/utils/localization/translations/it-json.d.ts +1 -0
- package/dist/utils/localization/translations/it-json.js +2 -1
- package/dist/utils/localization/translations/ja-json.d.ts +1 -0
- package/dist/utils/localization/translations/ja-json.js +2 -1
- package/dist/utils/localization/translations/ko-KR-json.d.ts +1 -0
- package/dist/utils/localization/translations/ko-KR-json.js +2 -1
- package/dist/utils/localization/translations/ms-json.d.ts +1 -0
- package/dist/utils/localization/translations/ms-json.js +2 -1
- package/dist/utils/localization/translations/nl-json.d.ts +1 -0
- package/dist/utils/localization/translations/nl-json.js +2 -1
- package/dist/utils/localization/translations/pl-json.d.ts +1 -0
- package/dist/utils/localization/translations/pl-json.js +2 -1
- package/dist/utils/localization/translations/pt-BR-json.d.ts +1 -0
- package/dist/utils/localization/translations/pt-BR-json.js +2 -1
- package/dist/utils/localization/translations/sv-json.d.ts +1 -0
- package/dist/utils/localization/translations/sv-json.js +2 -1
- package/dist/utils/localization/translations/th-json.d.ts +1 -0
- package/dist/utils/localization/translations/th-json.js +2 -1
- package/dist/utils/localization/translations/tr-json.d.ts +1 -0
- package/dist/utils/localization/translations/tr-json.js +2 -1
- package/dist/utils/localization/translations/zh-Hans-json.d.ts +1 -0
- package/dist/utils/localization/translations/zh-Hans-json.js +2 -1
- package/dist/utils/localization/translations/zh-TW-json.d.ts +1 -0
- package/dist/utils/localization/translations/zh-TW-json.js +2 -1
- package/esm/advancedGroupsFilter/advancedGroupsFilter.d.ts +1 -0
- package/esm/advancedGroupsFilter/advancedGroupsFilter.js +2 -2
- package/esm/advancedGroupsFilter/advancedGroupsFilterFormSection.js +3 -1
- package/esm/chip/chip.js +5 -5
- package/esm/dateInput/dateInput.d.ts +2 -1
- package/esm/dateInput/dateInput.js +11 -2
- package/esm/dateRange/dateRange.js +9 -8
- package/esm/dropdown/dropdown.d.ts +2 -0
- package/esm/dropdown/dropdown.js +5 -4
- package/esm/dropdown/dropdownHelper.d.ts +4 -4
- package/esm/dropdown/dropdownHelper.js +2 -1
- package/esm/dropdown/dropdownList.js +2 -2
- package/esm/dropdown/dropdownPopup.d.ts +1 -0
- package/esm/dropdown/dropdownPopup.js +2 -2
- package/esm/dropdown/dropdownSearchableTrigger.js +1 -1
- package/esm/dropdown/stateReducer/stateReducer.d.ts +6 -2
- package/esm/dropdown/stateReducer/stateReducer.js +29 -43
- package/esm/dropdown/stateReducer/stateReducerHelper.d.ts +2 -0
- package/esm/dropdown/stateReducer/stateReducerHelper.js +10 -0
- package/esm/dropdown/useDropdownState.d.ts +1 -1
- package/esm/dropdown/useDropdownState.js +5 -2
- package/esm/filters/components/filtersContainer.d.ts +1 -0
- package/esm/filters/components/filtersContainer.js +12 -13
- package/esm/filters/components/filtersDateInput.d.ts +10 -0
- package/esm/filters/components/filtersDateInput.js +23 -0
- package/esm/filters/components/filtersDropdown.d.ts +5 -4
- package/esm/filters/components/filtersDropdown.js +3 -3
- package/esm/filters/components/filtersEmptySelectedList.d.ts +2 -0
- package/esm/filters/components/filtersEmptySelectedList.js +7 -0
- package/esm/filters/components/filtersItem.d.ts +5 -4
- package/esm/filters/components/filtersItem.js +2 -1
- package/esm/filters/components/filtersSaveModal.d.ts +3 -1
- package/esm/filters/components/filtersSaveModal.js +2 -2
- package/esm/filters/components/filtersSavedChipComponent.js +68 -6
- package/esm/filters/components/filtersSearch.d.ts +4 -4
- package/esm/filters/components/filtersSearch.js +20 -9
- package/esm/filters/components/filtersSearchItemData.js +18 -1
- package/esm/filters/components/filtersSearchList.d.ts +5 -1
- package/esm/filters/components/filtersSearchList.js +156 -28
- package/esm/filters/components/filtersSelect.d.ts +1 -0
- package/esm/filters/components/filtersSelect.js +36 -8
- package/esm/filters/components/filtersSelectListItem.d.ts +21 -15
- package/esm/filters/components/filtersSelectListItem.js +13 -3
- package/esm/filters/components/filtersSidePanel.d.ts +15 -0
- package/esm/filters/components/filtersSidePanel.js +208 -0
- package/esm/filters/components/filtersSidePanelChip.d.ts +9 -0
- package/esm/filters/components/filtersSidePanelChip.js +9 -0
- package/esm/filters/components/filtersSidePanelDropdown.d.ts +6 -0
- package/esm/filters/components/filtersSidePanelDropdown.js +81 -0
- package/esm/filters/components/filtersSidePanelItem.d.ts +16 -0
- package/esm/filters/components/filtersSidePanelItem.js +63 -0
- package/esm/filters/components/filtersSidePanelRange.d.ts +6 -0
- package/esm/filters/components/filtersSidePanelRange.js +24 -0
- package/esm/filters/filters.d.ts +5 -0
- package/esm/filters/filters.js +101 -38
- package/esm/filters/filtersHelper.d.ts +4 -2
- package/esm/filters/filtersHelper.js +37 -0
- package/esm/filters/filtersHooks.d.ts +12 -2
- package/esm/filters/filtersHooks.js +19 -2
- package/esm/formStepper/formStepper.d.ts +1 -1
- package/esm/formStepper/formStepper.js +5 -2
- package/esm/groupsFilter/groupsFilter.js +72 -37
- package/esm/groupsFilter/groupsFilterMenu.d.ts +1 -0
- package/esm/groupsFilter/groupsFilterMenu.js +2 -2
- package/esm/groupsFilter/groupsFilterTrigger.js +1 -1
- package/esm/images/imageLooking.d.ts +4 -0
- package/esm/images/imageLooking.js +12 -0
- package/esm/index.d.ts +7 -4
- package/esm/index.js +6 -3
- package/esm/list/list.d.ts +3 -1
- package/esm/list/list.js +2 -2
- package/esm/mobileSheet/mobileSheet.d.ts +2 -0
- package/esm/mobileSheet/mobileSheet.js +4 -4
- package/esm/modal/modal.d.ts +1 -0
- package/esm/modal/modal.js +2 -2
- package/esm/radioGroup/radioGroup.d.ts +1 -0
- package/esm/radioGroup/radioGroup.js +3 -2
- package/esm/range/range.js +29 -10
- package/esm/searchInputRaw/searchInputRaw.js +1 -1
- package/esm/sidePanel/sidePanel.d.ts +1 -0
- package/esm/sidePanel/sidePanel.js +3 -3
- package/esm/tabs/tabItem/tabItem.d.ts +1 -0
- package/esm/tabs/tabItem/tabItem.js +2 -2
- package/esm/tabs/tabs.d.ts +1 -0
- package/esm/tabs/tabs.js +1 -1
- package/esm/utils/keyboardHelpers.d.ts +2 -0
- package/esm/utils/keyboardHelpers.js +44 -0
- package/esm/utils/localization/translations/cs-json.d.ts +1 -0
- package/esm/utils/localization/translations/cs-json.js +2 -1
- package/esm/utils/localization/translations/de-json.d.ts +1 -0
- package/esm/utils/localization/translations/de-json.js +2 -1
- package/esm/utils/localization/translations/en-json.d.ts +7 -0
- package/esm/utils/localization/translations/en-json.js +8 -1
- package/esm/utils/localization/translations/es-json.d.ts +1 -0
- package/esm/utils/localization/translations/es-json.js +2 -1
- package/esm/utils/localization/translations/fr-FR-json.d.ts +1 -0
- package/esm/utils/localization/translations/fr-FR-json.js +2 -1
- package/esm/utils/localization/translations/fr-json.d.ts +1 -0
- package/esm/utils/localization/translations/fr-json.js +2 -1
- package/esm/utils/localization/translations/id-json.d.ts +1 -0
- package/esm/utils/localization/translations/id-json.js +2 -1
- package/esm/utils/localization/translations/it-json.d.ts +1 -0
- package/esm/utils/localization/translations/it-json.js +2 -1
- package/esm/utils/localization/translations/ja-json.d.ts +1 -0
- package/esm/utils/localization/translations/ja-json.js +2 -1
- package/esm/utils/localization/translations/ko-KR-json.d.ts +1 -0
- package/esm/utils/localization/translations/ko-KR-json.js +2 -1
- package/esm/utils/localization/translations/ms-json.d.ts +1 -0
- package/esm/utils/localization/translations/ms-json.js +2 -1
- package/esm/utils/localization/translations/nl-json.d.ts +1 -0
- package/esm/utils/localization/translations/nl-json.js +2 -1
- package/esm/utils/localization/translations/pl-json.d.ts +1 -0
- package/esm/utils/localization/translations/pl-json.js +2 -1
- package/esm/utils/localization/translations/pt-BR-json.d.ts +1 -0
- package/esm/utils/localization/translations/pt-BR-json.js +2 -1
- package/esm/utils/localization/translations/sv-json.d.ts +1 -0
- package/esm/utils/localization/translations/sv-json.js +2 -1
- package/esm/utils/localization/translations/th-json.d.ts +1 -0
- package/esm/utils/localization/translations/th-json.js +2 -1
- package/esm/utils/localization/translations/tr-json.d.ts +1 -0
- package/esm/utils/localization/translations/tr-json.js +2 -1
- package/esm/utils/localization/translations/zh-Hans-json.d.ts +1 -0
- package/esm/utils/localization/translations/zh-Hans-json.js +2 -1
- package/esm/utils/localization/translations/zh-TW-json.d.ts +1 -0
- package/esm/utils/localization/translations/zh-TW-json.js +2 -1
- package/package.json +1 -1
- package/dist/filters/components/filtersModal.d.ts +0 -17
- package/dist/filters/components/filtersModal.js +0 -107
- package/dist/filters/components/filtersModalItem.d.ts +0 -9
- package/dist/filters/components/filtersModalItem.js +0 -74
- package/esm/filters/components/filtersModal.d.ts +0 -17
- package/esm/filters/components/filtersModal.js +0 -103
- package/esm/filters/components/filtersModalItem.d.ts +0 -9
- package/esm/filters/components/filtersModalItem.js +0 -70
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FiltersModal = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const modal_1 = require("../../modal/modal");
|
|
7
|
-
const useLanguage_1 = require("../../utils/localization/useLanguage");
|
|
8
|
-
const tabs_1 = require("../../tabs/tabs");
|
|
9
|
-
const filtersHelper_1 = require("../filtersHelper");
|
|
10
|
-
const filtersModalItem_1 = require("./filtersModalItem");
|
|
11
|
-
const classNames_1 = require("../../commonHelpers/classNames/classNames");
|
|
12
|
-
const filtersSavedItemsProvider_1 = require("./filtersSavedItemsProvider");
|
|
13
|
-
const filtersSelect_1 = require("./filtersSelect");
|
|
14
|
-
const filtersSaveModal_1 = require("./filtersSaveModal");
|
|
15
|
-
const button_1 = require("../../button/button");
|
|
16
|
-
const iconDisk_1 = require("../../icons/iconDisk");
|
|
17
|
-
const useDriveClassName_1 = require("../../utils/theme/useDriveClassName");
|
|
18
|
-
const iconPin2_1 = require("../../icons/iconPin2");
|
|
19
|
-
const FiltersModal = ({ isOpen, onClose, onApply, onPin, tabItems, filters, externalModalState, setExternalModalState, isPinned = false }) => {
|
|
20
|
-
const { translate } = (0, useLanguage_1.useLanguage)();
|
|
21
|
-
const { onSave } = (0, filtersSavedItemsProvider_1.useFiltersSavedItems)();
|
|
22
|
-
const iconDriveClassName = (0, useDriveClassName_1.useDriveClassName)("icon");
|
|
23
|
-
const [activeTabId, setActiveTabId] = (0, react_1.useState)(filtersSelect_1.ALL_SELECT_OPTION_ID);
|
|
24
|
-
const [isSaveModalOpen, setIsSaveModalOpen] = (0, react_1.useState)(false);
|
|
25
|
-
const [filtersInternalModalState, setFiltersInternalModalState] = (0, react_1.useState)((0, filtersHelper_1.createStateObject)(filters, "state"));
|
|
26
|
-
const [initialExternalModalState] = (0, react_1.useState)(externalModalState);
|
|
27
|
-
const onTabChange = (newVal) => {
|
|
28
|
-
setActiveTabId(newVal);
|
|
29
|
-
};
|
|
30
|
-
const externalMode = (0, react_1.useMemo)(() => {
|
|
31
|
-
if (externalModalState === undefined || setExternalModalState === undefined) {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
return true;
|
|
35
|
-
}, [externalModalState, setExternalModalState]);
|
|
36
|
-
const handleInternalFiltersStateChange = (0, react_1.useCallback)((id) => (newState) => {
|
|
37
|
-
setFiltersInternalModalState((prevState) => (Object.assign(Object.assign({}, prevState), { [id]: newState })));
|
|
38
|
-
}, []);
|
|
39
|
-
const handleExternalFiltersStateChange = (0, react_1.useCallback)((id) => (newState) => {
|
|
40
|
-
setExternalModalState && setExternalModalState({ [id]: newState });
|
|
41
|
-
}, [setExternalModalState]);
|
|
42
|
-
const currentState = (0, react_1.useMemo)(() => externalMode ? externalModalState
|
|
43
|
-
: filtersInternalModalState, [externalMode, externalModalState, filtersInternalModalState]);
|
|
44
|
-
const currentFilters = (0, react_1.useMemo)(() => filters.filter((item) => currentState.hasOwnProperty(item.props.id)
|
|
45
|
-
&& (typeof item.props.visible === "boolean" ? item.props.visible
|
|
46
|
-
: item.props.visible === undefined ? true : item.props.visible([activeTabId], currentState))), [activeTabId, currentState, filters]);
|
|
47
|
-
const inhibitedFilters = (0, react_1.useMemo)(() => {
|
|
48
|
-
const inhibited = new Set();
|
|
49
|
-
if (externalMode) {
|
|
50
|
-
return inhibited;
|
|
51
|
-
}
|
|
52
|
-
currentFilters.forEach((item) => {
|
|
53
|
-
if (item.props.inhibit && item.props.inhibit.length > 0) {
|
|
54
|
-
item.props.inhibit.forEach((id) => inhibited.add(id));
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
return inhibited;
|
|
58
|
-
}, [currentFilters, externalMode]);
|
|
59
|
-
const handleClearClick = (0, react_1.useCallback)(() => {
|
|
60
|
-
const newState = (0, filtersHelper_1.createStateObject)(filters, "defaultState");
|
|
61
|
-
externalMode && setExternalModalState ? setExternalModalState(Object.assign({}, newState)) : setFiltersInternalModalState(newState);
|
|
62
|
-
}, [externalMode, filters, setExternalModalState]);
|
|
63
|
-
const handleApplyClick = (0, react_1.useCallback)(() => {
|
|
64
|
-
const stateForApply = externalMode ? currentState : {};
|
|
65
|
-
if (!externalMode) {
|
|
66
|
-
Object.keys(currentState).forEach(key => {
|
|
67
|
-
if (!inhibitedFilters.has(key)) {
|
|
68
|
-
stateForApply[key] = currentState[key];
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
onApply(stateForApply);
|
|
73
|
-
onClose();
|
|
74
|
-
}, [currentState, externalMode, inhibitedFilters, onApply, onClose]);
|
|
75
|
-
const handleCancelClick = (0, react_1.useCallback)(() => {
|
|
76
|
-
const newState = (0, filtersHelper_1.createStateObject)(filters, "state");
|
|
77
|
-
externalMode && setExternalModalState ? setExternalModalState(Object.assign({}, newState)) : setFiltersInternalModalState(newState);
|
|
78
|
-
onClose();
|
|
79
|
-
}, [externalMode, filters, onClose, setExternalModalState]);
|
|
80
|
-
const handleExternalModeClose = (0, react_1.useCallback)(() => {
|
|
81
|
-
if (!(externalMode && initialExternalModalState && setExternalModalState)) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
setExternalModalState(initialExternalModalState);
|
|
85
|
-
onClose();
|
|
86
|
-
}, [externalMode, initialExternalModalState, onClose, setExternalModalState]);
|
|
87
|
-
const toggleSaveModal = (0, react_1.useCallback)(() => {
|
|
88
|
-
setIsSaveModalOpen(val => !val);
|
|
89
|
-
}, []);
|
|
90
|
-
const handleSaveFilters = (0, react_1.useCallback)((filterName) => {
|
|
91
|
-
const stateForApply = externalMode ? currentState : {};
|
|
92
|
-
if (!externalMode) {
|
|
93
|
-
Object.keys(currentState).forEach(key => {
|
|
94
|
-
if (!inhibitedFilters.has(key)) {
|
|
95
|
-
stateForApply[key] = currentState[key];
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
onSave && onSave(filterName, stateForApply);
|
|
100
|
-
}, [externalMode, currentState, onSave, inhibitedFilters]);
|
|
101
|
-
const modalItemChangeHandler = (0, react_1.useCallback)((id) => externalMode ? handleExternalFiltersStateChange(id) : handleInternalFiltersStateChange(id), [externalMode, handleExternalFiltersStateChange, handleInternalFiltersStateChange]);
|
|
102
|
-
const tabsContent = (0, react_1.useMemo)(() => currentFilters.filter((item) => !inhibitedFilters.has(item.props.id))
|
|
103
|
-
.map((item) => (0, jsx_runtime_1.jsx)(filtersModalItem_1.FiltersModalItem, { item: item, itemState: currentState[item.props.id], changeHandler: modalItemChangeHandler(item.props.id) }, item.props.id)), [currentFilters, inhibitedFilters, currentState, modalItemChangeHandler]);
|
|
104
|
-
const memoizedActionButtons = (0, react_1.useCallback)((onSaveFn, onPinFn, isPin) => ((0, jsx_runtime_1.jsxs)("div", { className: "zen-filters-modal__header-buttons", children: [onSaveFn && (0, jsx_runtime_1.jsx)(button_1.Button, { type: "tertiary", "data-focusable": "save", className: "zen-filters-modal__save-button zen-filters-modal__header-button", title: translate("Save"), "aria-label": translate("Save"), onClick: onSaveFn, children: (0, jsx_runtime_1.jsx)(iconDisk_1.IconDisk, { description: translate("Save"), className: "svgIcon", size: iconDriveClassName ? "huge" : "large" }) }), onPinFn && (0, jsx_runtime_1.jsx)(button_1.Button, { type: "tertiary", "data-focusable": "pin", className: (0, classNames_1.classNames)(["zen-filters-modal__pin-button", isPin ? "zen-filters-modal__header-button--active" : "", "zen-filters-modal__header-button"]), title: translate("Pin"), "aria-label": translate("Pin"), onClick: onPinFn, children: (0, jsx_runtime_1.jsx)(iconPin2_1.IconPin2, { description: translate("Pin"), className: "svgIcon", size: iconDriveClassName ? "huge" : "large" }) })] })), [iconDriveClassName, translate]);
|
|
105
|
-
return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(modal_1.Modal, { className: (0, classNames_1.classNames)(["zen-filters-modal", isSaveModalOpen ? "zen-filters-modal--secondary" : ""]), isOpen: isOpen, onClose: externalMode ? handleExternalModeClose : onClose, title: translate("All Filters"), children: [memoizedActionButtons(onSave ? toggleSaveModal : undefined, onPin, isPinned), (0, jsx_runtime_1.jsx)(tabs_1.Tabs, { activeTabId: activeTabId, onTabChange: onTabChange, tabs: tabItems }), (0, jsx_runtime_1.jsx)("div", { className: "zen-filters-modal__content", children: tabsContent }), (0, jsx_runtime_1.jsx)(modal_1.Modal.TertiaryButton, { type: "tertiary", onClick: handleClearClick, children: translate("Clear") }), (0, jsx_runtime_1.jsx)(modal_1.Modal.SecondaryButton, { onClick: handleCancelClick, children: translate("Cancel") }), (0, jsx_runtime_1.jsx)(modal_1.Modal.PrimaryButton, { onClick: handleApplyClick, children: translate("Apply") })] }), (0, jsx_runtime_1.jsx)(filtersSaveModal_1.FiltersSaveModal, { isOpen: isSaveModalOpen, onClose: toggleSaveModal, onSave: handleSaveFilters })] });
|
|
106
|
-
};
|
|
107
|
-
exports.FiltersModal = FiltersModal;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ReactElement } from "react";
|
|
2
|
-
import { TFiltersComponentsItemState, TFiltersComponentsProps } from "./filtersItem";
|
|
3
|
-
interface IFiltersModalItem {
|
|
4
|
-
item: ReactElement<TFiltersComponentsProps>;
|
|
5
|
-
itemState: TFiltersComponentsItemState;
|
|
6
|
-
changeHandler: (newState: TFiltersComponentsItemState) => void;
|
|
7
|
-
}
|
|
8
|
-
export declare const FiltersModalItem: React.FC<IFiltersModalItem>;
|
|
9
|
-
export {};
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.FiltersModalItem = void 0;
|
|
15
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
-
const react_1 = require("react");
|
|
17
|
-
const filtersChip_1 = require("./filtersChip");
|
|
18
|
-
const chip_1 = require("../../chip/chip");
|
|
19
|
-
const filtersRange_1 = require("./filtersRange");
|
|
20
|
-
const classNames_1 = require("../../commonHelpers/classNames/classNames");
|
|
21
|
-
const filtersDropdown_1 = require("./filtersDropdown");
|
|
22
|
-
const dropdown_1 = require("../../dropdown/dropdown");
|
|
23
|
-
const filtersGroups_1 = require("./filtersGroups");
|
|
24
|
-
const groupsFilter_1 = require("../../groupsFilter/groupsFilter");
|
|
25
|
-
const filtersDateRange_1 = require("./filtersDateRange");
|
|
26
|
-
const dateRange_1 = require("../../dateRange/dateRange");
|
|
27
|
-
const range_1 = require("../../range/range");
|
|
28
|
-
const chipStatusProvider_1 = require("../../chip/chipStatusProvider");
|
|
29
|
-
const filtersHelper_1 = require("../filtersHelper");
|
|
30
|
-
const FiltersModalItem = ({ item, itemState, changeHandler }) => {
|
|
31
|
-
const status = (0, chipStatusProvider_1.useChipStatus)();
|
|
32
|
-
const getComponent = (0, react_1.useCallback)((elem, currentState, handleStateChange, chipStatus) => {
|
|
33
|
-
const { type, props } = elem;
|
|
34
|
-
switch (type) {
|
|
35
|
-
case filtersChip_1.FiltersChip: {
|
|
36
|
-
const _a = props, { id, state: _globalState, name, onChange: _globalOnChange, className } = _a, otherProps = __rest(_a, ["id", "state", "name", "onChange", "className"]);
|
|
37
|
-
return (0, jsx_runtime_1.jsx)(chip_1.Chip, Object.assign({ id: `${id}-modal` }, otherProps, { active: currentState, status: currentState ? chipStatus || undefined : undefined, onChange: handleStateChange, children: name }));
|
|
38
|
-
}
|
|
39
|
-
case filtersRange_1.FiltersRange: {
|
|
40
|
-
const _b = props, { id, state: _globalState, name, onChange: _globalOnChange, defaultState, className } = _b, otherProps = __rest(_b, ["id", "state", "name", "onChange", "defaultState", "className"]);
|
|
41
|
-
return (0, jsx_runtime_1.jsx)(range_1.Range, Object.assign({}, otherProps, { id: `${id}-modal`, className: (0, classNames_1.classNames)(["zen-filters-modal__item-element", className || ""]), fullWidthTriggerButton: true, label: name, value: currentState, onChange: handleStateChange, defaultValue: defaultState, chip: false }));
|
|
42
|
-
}
|
|
43
|
-
case filtersDropdown_1.FiltersDropdown: {
|
|
44
|
-
const _c = props, { id, name, state: _globalState, onChange: _globalOnChange, defaultState, fetchState, classNamePopup } = _c, otherProps = __rest(_c, ["id", "name", "state", "onChange", "defaultState", "fetchState", "classNamePopup"]);
|
|
45
|
-
const prepareValue = (value) => {
|
|
46
|
-
if (Array.isArray(value)) {
|
|
47
|
-
return value.map((el) => el.id);
|
|
48
|
-
}
|
|
49
|
-
return Object.assign(Object.assign({}, value), { selected: value.selected.map((el) => el.id) });
|
|
50
|
-
};
|
|
51
|
-
const dropdownStateType = (0, filtersHelper_1.getDropdownStateType)(currentState);
|
|
52
|
-
const preparedDefaultState = defaultState ? defaultState : (0, filtersHelper_1.prepareDefaultDropdownState)(dropdownStateType);
|
|
53
|
-
const dropdownProps = Object.assign(Object.assign({}, otherProps), { id: `${id}-modal`, fetchState: fetchState, classNamePopup: (0, classNames_1.classNames)(["zen-filters-modal__item-popup", classNamePopup || ""]), isLoading: undefined, multiselect: dropdownStateType === "fullSelection" || dropdownStateType === "fullSelectionWithCheckbox" ? true : otherProps.multiselect, selectAllButton: dropdownStateType === "fullSelection" || dropdownStateType === "fullSelectionWithCheckbox" ? true : otherProps.selectAllButton, fullWidthTriggerButton: true, errorHandler: (() => { }), placeholder: otherProps.placeholder || name, showSelection: true, value: currentState, onChange: (newValue) => {
|
|
54
|
-
const preparedValue = prepareValue(newValue);
|
|
55
|
-
handleStateChange(preparedValue);
|
|
56
|
-
}, defaultValue: preparedDefaultState, chip: false });
|
|
57
|
-
return (0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, Object.assign({}, dropdownProps));
|
|
58
|
-
}
|
|
59
|
-
case filtersGroups_1.FiltersGroups: {
|
|
60
|
-
const _d = props, { id, state: _globalState, onChange: _globalOnChange } = _d, otherProps = __rest(_d, ["id", "state", "onChange"]);
|
|
61
|
-
return (0, jsx_runtime_1.jsx)(groupsFilter_1.GroupsFilter, Object.assign({ initialFilterState: currentState, onChange: handleStateChange }, otherProps, { chip: false, fullSize: true }));
|
|
62
|
-
}
|
|
63
|
-
case filtersDateRange_1.FiltersDateRange: {
|
|
64
|
-
const _e = props, { id, state: _globalState, onChange: _globalOnChange, defaultState, allowUnsetValue, className } = _e, otherProps = __rest(_e, ["id", "state", "onChange", "defaultState", "allowUnsetValue", "className"]);
|
|
65
|
-
return allowUnsetValue ? (0, jsx_runtime_1.jsx)(dateRange_1.DateRange, Object.assign({}, otherProps, { id: `${id}-modal`, className: (0, classNames_1.classNames)(["zen-filters-modal__item-element", "zen-filters-modal__item-element--centred", className || ""]), value: currentState, onChange: handleStateChange, defaultValue: defaultState, allowUnsetValue: true, chip: false })) : (0, jsx_runtime_1.jsx)(dateRange_1.DateRange, Object.assign({}, otherProps, { id: `${id}-modal`, className: (0, classNames_1.classNames)(["zen-filters-modal__item-element", "zen-filters-modal__item-element--centred", className || ""]), value: currentState, onChange: handleStateChange, defaultValue: defaultState, allowUnsetValue: false, chip: false }));
|
|
66
|
-
}
|
|
67
|
-
default:
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
}, []);
|
|
71
|
-
const memoizedItem = (0, react_1.useMemo)(() => getComponent(item, itemState, changeHandler, status), [getComponent, item, itemState, changeHandler, status]);
|
|
72
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: "zen-filters-modal__item", children: [(0, jsx_runtime_1.jsx)("div", { className: "zen-filters-modal__item-label", children: item.props.name }), (0, jsx_runtime_1.jsx)("div", { children: memoizedItem })] }));
|
|
73
|
-
};
|
|
74
|
-
exports.FiltersModalItem = FiltersModalItem;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ReactElement } from "react";
|
|
2
|
-
import { IZenComponentProps } from "../../commonHelpers/zenComponent";
|
|
3
|
-
import { ITabElement } from "../../tabs/tabs";
|
|
4
|
-
import { TFiltersComponentsItemState, TFiltersComponentsProps } from "./filtersItem";
|
|
5
|
-
import "./filtersModal.less";
|
|
6
|
-
export interface IFiltersModal extends IZenComponentProps {
|
|
7
|
-
isOpen: boolean;
|
|
8
|
-
onClose: () => void;
|
|
9
|
-
onApply: (state: Record<string, TFiltersComponentsItemState>) => void;
|
|
10
|
-
onPin?: () => void;
|
|
11
|
-
isPinned?: boolean;
|
|
12
|
-
tabItems: ITabElement[];
|
|
13
|
-
filters: ReactElement<TFiltersComponentsProps>[];
|
|
14
|
-
externalModalState?: Record<string, TFiltersComponentsItemState>;
|
|
15
|
-
setExternalModalState?: (newState: Partial<Record<string, TFiltersComponentsItemState>>) => void;
|
|
16
|
-
}
|
|
17
|
-
export declare const FiltersModal: ({ isOpen, onClose, onApply, onPin, tabItems, filters, externalModalState, setExternalModalState, isPinned }: IFiltersModal) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback, useMemo, useState } from "react";
|
|
3
|
-
import { Modal } from "../../modal/modal";
|
|
4
|
-
import { useLanguage } from "../../utils/localization/useLanguage";
|
|
5
|
-
import { Tabs } from "../../tabs/tabs";
|
|
6
|
-
import { createStateObject } from "../filtersHelper";
|
|
7
|
-
import { FiltersModalItem } from "./filtersModalItem";
|
|
8
|
-
import { classNames } from "../../commonHelpers/classNames/classNames";
|
|
9
|
-
import { useFiltersSavedItems } from "./filtersSavedItemsProvider";
|
|
10
|
-
import { ALL_SELECT_OPTION_ID } from "./filtersSelect";
|
|
11
|
-
import { FiltersSaveModal } from "./filtersSaveModal";
|
|
12
|
-
import { Button } from "../../button/button";
|
|
13
|
-
import { IconDisk } from "../../icons/iconDisk";
|
|
14
|
-
import { useDriveClassName } from "../../utils/theme/useDriveClassName";
|
|
15
|
-
import { IconPin2 } from "../../icons/iconPin2";
|
|
16
|
-
export const FiltersModal = ({ isOpen, onClose, onApply, onPin, tabItems, filters, externalModalState, setExternalModalState, isPinned = false }) => {
|
|
17
|
-
const { translate } = useLanguage();
|
|
18
|
-
const { onSave } = useFiltersSavedItems();
|
|
19
|
-
const iconDriveClassName = useDriveClassName("icon");
|
|
20
|
-
const [activeTabId, setActiveTabId] = useState(ALL_SELECT_OPTION_ID);
|
|
21
|
-
const [isSaveModalOpen, setIsSaveModalOpen] = useState(false);
|
|
22
|
-
const [filtersInternalModalState, setFiltersInternalModalState] = useState(createStateObject(filters, "state"));
|
|
23
|
-
const [initialExternalModalState] = useState(externalModalState);
|
|
24
|
-
const onTabChange = (newVal) => {
|
|
25
|
-
setActiveTabId(newVal);
|
|
26
|
-
};
|
|
27
|
-
const externalMode = useMemo(() => {
|
|
28
|
-
if (externalModalState === undefined || setExternalModalState === undefined) {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
return true;
|
|
32
|
-
}, [externalModalState, setExternalModalState]);
|
|
33
|
-
const handleInternalFiltersStateChange = useCallback((id) => (newState) => {
|
|
34
|
-
setFiltersInternalModalState((prevState) => (Object.assign(Object.assign({}, prevState), { [id]: newState })));
|
|
35
|
-
}, []);
|
|
36
|
-
const handleExternalFiltersStateChange = useCallback((id) => (newState) => {
|
|
37
|
-
setExternalModalState && setExternalModalState({ [id]: newState });
|
|
38
|
-
}, [setExternalModalState]);
|
|
39
|
-
const currentState = useMemo(() => externalMode ? externalModalState
|
|
40
|
-
: filtersInternalModalState, [externalMode, externalModalState, filtersInternalModalState]);
|
|
41
|
-
const currentFilters = useMemo(() => filters.filter((item) => currentState.hasOwnProperty(item.props.id)
|
|
42
|
-
&& (typeof item.props.visible === "boolean" ? item.props.visible
|
|
43
|
-
: item.props.visible === undefined ? true : item.props.visible([activeTabId], currentState))), [activeTabId, currentState, filters]);
|
|
44
|
-
const inhibitedFilters = useMemo(() => {
|
|
45
|
-
const inhibited = new Set();
|
|
46
|
-
if (externalMode) {
|
|
47
|
-
return inhibited;
|
|
48
|
-
}
|
|
49
|
-
currentFilters.forEach((item) => {
|
|
50
|
-
if (item.props.inhibit && item.props.inhibit.length > 0) {
|
|
51
|
-
item.props.inhibit.forEach((id) => inhibited.add(id));
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
return inhibited;
|
|
55
|
-
}, [currentFilters, externalMode]);
|
|
56
|
-
const handleClearClick = useCallback(() => {
|
|
57
|
-
const newState = createStateObject(filters, "defaultState");
|
|
58
|
-
externalMode && setExternalModalState ? setExternalModalState(Object.assign({}, newState)) : setFiltersInternalModalState(newState);
|
|
59
|
-
}, [externalMode, filters, setExternalModalState]);
|
|
60
|
-
const handleApplyClick = useCallback(() => {
|
|
61
|
-
const stateForApply = externalMode ? currentState : {};
|
|
62
|
-
if (!externalMode) {
|
|
63
|
-
Object.keys(currentState).forEach(key => {
|
|
64
|
-
if (!inhibitedFilters.has(key)) {
|
|
65
|
-
stateForApply[key] = currentState[key];
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
onApply(stateForApply);
|
|
70
|
-
onClose();
|
|
71
|
-
}, [currentState, externalMode, inhibitedFilters, onApply, onClose]);
|
|
72
|
-
const handleCancelClick = useCallback(() => {
|
|
73
|
-
const newState = createStateObject(filters, "state");
|
|
74
|
-
externalMode && setExternalModalState ? setExternalModalState(Object.assign({}, newState)) : setFiltersInternalModalState(newState);
|
|
75
|
-
onClose();
|
|
76
|
-
}, [externalMode, filters, onClose, setExternalModalState]);
|
|
77
|
-
const handleExternalModeClose = useCallback(() => {
|
|
78
|
-
if (!(externalMode && initialExternalModalState && setExternalModalState)) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
setExternalModalState(initialExternalModalState);
|
|
82
|
-
onClose();
|
|
83
|
-
}, [externalMode, initialExternalModalState, onClose, setExternalModalState]);
|
|
84
|
-
const toggleSaveModal = useCallback(() => {
|
|
85
|
-
setIsSaveModalOpen(val => !val);
|
|
86
|
-
}, []);
|
|
87
|
-
const handleSaveFilters = useCallback((filterName) => {
|
|
88
|
-
const stateForApply = externalMode ? currentState : {};
|
|
89
|
-
if (!externalMode) {
|
|
90
|
-
Object.keys(currentState).forEach(key => {
|
|
91
|
-
if (!inhibitedFilters.has(key)) {
|
|
92
|
-
stateForApply[key] = currentState[key];
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
onSave && onSave(filterName, stateForApply);
|
|
97
|
-
}, [externalMode, currentState, onSave, inhibitedFilters]);
|
|
98
|
-
const modalItemChangeHandler = useCallback((id) => externalMode ? handleExternalFiltersStateChange(id) : handleInternalFiltersStateChange(id), [externalMode, handleExternalFiltersStateChange, handleInternalFiltersStateChange]);
|
|
99
|
-
const tabsContent = useMemo(() => currentFilters.filter((item) => !inhibitedFilters.has(item.props.id))
|
|
100
|
-
.map((item) => _jsx(FiltersModalItem, { item: item, itemState: currentState[item.props.id], changeHandler: modalItemChangeHandler(item.props.id) }, item.props.id)), [currentFilters, inhibitedFilters, currentState, modalItemChangeHandler]);
|
|
101
|
-
const memoizedActionButtons = useCallback((onSaveFn, onPinFn, isPin) => (_jsxs("div", { className: "zen-filters-modal__header-buttons", children: [onSaveFn && _jsx(Button, { type: "tertiary", "data-focusable": "save", className: "zen-filters-modal__save-button zen-filters-modal__header-button", title: translate("Save"), "aria-label": translate("Save"), onClick: onSaveFn, children: _jsx(IconDisk, { description: translate("Save"), className: "svgIcon", size: iconDriveClassName ? "huge" : "large" }) }), onPinFn && _jsx(Button, { type: "tertiary", "data-focusable": "pin", className: classNames(["zen-filters-modal__pin-button", isPin ? "zen-filters-modal__header-button--active" : "", "zen-filters-modal__header-button"]), title: translate("Pin"), "aria-label": translate("Pin"), onClick: onPinFn, children: _jsx(IconPin2, { description: translate("Pin"), className: "svgIcon", size: iconDriveClassName ? "huge" : "large" }) })] })), [iconDriveClassName, translate]);
|
|
102
|
-
return _jsxs(_Fragment, { children: [_jsxs(Modal, { className: classNames(["zen-filters-modal", isSaveModalOpen ? "zen-filters-modal--secondary" : ""]), isOpen: isOpen, onClose: externalMode ? handleExternalModeClose : onClose, title: translate("All Filters"), children: [memoizedActionButtons(onSave ? toggleSaveModal : undefined, onPin, isPinned), _jsx(Tabs, { activeTabId: activeTabId, onTabChange: onTabChange, tabs: tabItems }), _jsx("div", { className: "zen-filters-modal__content", children: tabsContent }), _jsx(Modal.TertiaryButton, { type: "tertiary", onClick: handleClearClick, children: translate("Clear") }), _jsx(Modal.SecondaryButton, { onClick: handleCancelClick, children: translate("Cancel") }), _jsx(Modal.PrimaryButton, { onClick: handleApplyClick, children: translate("Apply") })] }), _jsx(FiltersSaveModal, { isOpen: isSaveModalOpen, onClose: toggleSaveModal, onSave: handleSaveFilters })] });
|
|
103
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ReactElement } from "react";
|
|
2
|
-
import { TFiltersComponentsItemState, TFiltersComponentsProps } from "./filtersItem";
|
|
3
|
-
interface IFiltersModalItem {
|
|
4
|
-
item: ReactElement<TFiltersComponentsProps>;
|
|
5
|
-
itemState: TFiltersComponentsItemState;
|
|
6
|
-
changeHandler: (newState: TFiltersComponentsItemState) => void;
|
|
7
|
-
}
|
|
8
|
-
export declare const FiltersModalItem: React.FC<IFiltersModalItem>;
|
|
9
|
-
export {};
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
import { useCallback, useMemo } from "react";
|
|
14
|
-
import { FiltersChip } from "./filtersChip";
|
|
15
|
-
import { Chip } from "../../chip/chip";
|
|
16
|
-
import { FiltersRange } from "./filtersRange";
|
|
17
|
-
import { classNames } from "../../commonHelpers/classNames/classNames";
|
|
18
|
-
import { FiltersDropdown } from "./filtersDropdown";
|
|
19
|
-
import { Dropdown } from "../../dropdown/dropdown";
|
|
20
|
-
import { FiltersGroups } from "./filtersGroups";
|
|
21
|
-
import { GroupsFilter } from "../../groupsFilter/groupsFilter";
|
|
22
|
-
import { FiltersDateRange } from "./filtersDateRange";
|
|
23
|
-
import { DateRange } from "../../dateRange/dateRange";
|
|
24
|
-
import { Range } from "../../range/range";
|
|
25
|
-
import { useChipStatus } from "../../chip/chipStatusProvider";
|
|
26
|
-
import { getDropdownStateType, prepareDefaultDropdownState } from "../filtersHelper";
|
|
27
|
-
export const FiltersModalItem = ({ item, itemState, changeHandler }) => {
|
|
28
|
-
const status = useChipStatus();
|
|
29
|
-
const getComponent = useCallback((elem, currentState, handleStateChange, chipStatus) => {
|
|
30
|
-
const { type, props } = elem;
|
|
31
|
-
switch (type) {
|
|
32
|
-
case FiltersChip: {
|
|
33
|
-
const _a = props, { id, state: _globalState, name, onChange: _globalOnChange, className } = _a, otherProps = __rest(_a, ["id", "state", "name", "onChange", "className"]);
|
|
34
|
-
return _jsx(Chip, Object.assign({ id: `${id}-modal` }, otherProps, { active: currentState, status: currentState ? chipStatus || undefined : undefined, onChange: handleStateChange, children: name }));
|
|
35
|
-
}
|
|
36
|
-
case FiltersRange: {
|
|
37
|
-
const _b = props, { id, state: _globalState, name, onChange: _globalOnChange, defaultState, className } = _b, otherProps = __rest(_b, ["id", "state", "name", "onChange", "defaultState", "className"]);
|
|
38
|
-
return _jsx(Range, Object.assign({}, otherProps, { id: `${id}-modal`, className: classNames(["zen-filters-modal__item-element", className || ""]), fullWidthTriggerButton: true, label: name, value: currentState, onChange: handleStateChange, defaultValue: defaultState, chip: false }));
|
|
39
|
-
}
|
|
40
|
-
case FiltersDropdown: {
|
|
41
|
-
const _c = props, { id, name, state: _globalState, onChange: _globalOnChange, defaultState, fetchState, classNamePopup } = _c, otherProps = __rest(_c, ["id", "name", "state", "onChange", "defaultState", "fetchState", "classNamePopup"]);
|
|
42
|
-
const prepareValue = (value) => {
|
|
43
|
-
if (Array.isArray(value)) {
|
|
44
|
-
return value.map((el) => el.id);
|
|
45
|
-
}
|
|
46
|
-
return Object.assign(Object.assign({}, value), { selected: value.selected.map((el) => el.id) });
|
|
47
|
-
};
|
|
48
|
-
const dropdownStateType = getDropdownStateType(currentState);
|
|
49
|
-
const preparedDefaultState = defaultState ? defaultState : prepareDefaultDropdownState(dropdownStateType);
|
|
50
|
-
const dropdownProps = Object.assign(Object.assign({}, otherProps), { id: `${id}-modal`, fetchState: fetchState, classNamePopup: classNames(["zen-filters-modal__item-popup", classNamePopup || ""]), isLoading: undefined, multiselect: dropdownStateType === "fullSelection" || dropdownStateType === "fullSelectionWithCheckbox" ? true : otherProps.multiselect, selectAllButton: dropdownStateType === "fullSelection" || dropdownStateType === "fullSelectionWithCheckbox" ? true : otherProps.selectAllButton, fullWidthTriggerButton: true, errorHandler: (() => { }), placeholder: otherProps.placeholder || name, showSelection: true, value: currentState, onChange: (newValue) => {
|
|
51
|
-
const preparedValue = prepareValue(newValue);
|
|
52
|
-
handleStateChange(preparedValue);
|
|
53
|
-
}, defaultValue: preparedDefaultState, chip: false });
|
|
54
|
-
return _jsx(Dropdown, Object.assign({}, dropdownProps));
|
|
55
|
-
}
|
|
56
|
-
case FiltersGroups: {
|
|
57
|
-
const _d = props, { id, state: _globalState, onChange: _globalOnChange } = _d, otherProps = __rest(_d, ["id", "state", "onChange"]);
|
|
58
|
-
return _jsx(GroupsFilter, Object.assign({ initialFilterState: currentState, onChange: handleStateChange }, otherProps, { chip: false, fullSize: true }));
|
|
59
|
-
}
|
|
60
|
-
case FiltersDateRange: {
|
|
61
|
-
const _e = props, { id, state: _globalState, onChange: _globalOnChange, defaultState, allowUnsetValue, className } = _e, otherProps = __rest(_e, ["id", "state", "onChange", "defaultState", "allowUnsetValue", "className"]);
|
|
62
|
-
return allowUnsetValue ? _jsx(DateRange, Object.assign({}, otherProps, { id: `${id}-modal`, className: classNames(["zen-filters-modal__item-element", "zen-filters-modal__item-element--centred", className || ""]), value: currentState, onChange: handleStateChange, defaultValue: defaultState, allowUnsetValue: true, chip: false })) : _jsx(DateRange, Object.assign({}, otherProps, { id: `${id}-modal`, className: classNames(["zen-filters-modal__item-element", "zen-filters-modal__item-element--centred", className || ""]), value: currentState, onChange: handleStateChange, defaultValue: defaultState, allowUnsetValue: false, chip: false }));
|
|
63
|
-
}
|
|
64
|
-
default:
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
}, []);
|
|
68
|
-
const memoizedItem = useMemo(() => getComponent(item, itemState, changeHandler, status), [getComponent, item, itemState, changeHandler, status]);
|
|
69
|
-
return (_jsxs("div", { className: "zen-filters-modal__item", children: [_jsx("div", { className: "zen-filters-modal__item-label", children: item.props.name }), _jsx("div", { children: memoizedItem })] }));
|
|
70
|
-
};
|