@m4l/components 9.1.143 → 9.1.144
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/.storybook/utils/getStylesColorsByMode.d.ts +48 -48
- package/@types/types.d.ts +17 -0
- package/components/AccountPopover/slots/AccountPopoverSlots.d.ts +7 -7
- package/components/AppBar/slots/AppBarSlots.d.ts +6 -6
- package/components/AppBar/slots/AppBarSlots.js +1 -1
- package/components/Chip/slots/ChipSlots.d.ts +2 -2
- package/components/Color/slots/ColorSlots.d.ts +2 -2
- package/components/Color/slots/ColorSlots.js +1 -1
- package/components/CommonActions/components/ActionCancel/slots/ActionsCancelSlots.d.ts +1 -1
- package/components/CommonActions/components/ActionFormCancel/slots/ActionFormCancelSlots.d.ts +1 -1
- package/components/CommonActions/components/ActionIntro/slots/ActionsIntroSlots.d.ts +1 -1
- package/components/CommonActions/components/ActionsContainer/slots/ActionsContainerSlots.d.ts +1 -1
- package/components/DataGrid/DataGrid.d.ts +9 -0
- package/components/DataGrid/DataGrid.js +95 -0
- package/components/DataGrid/contexts/DataGridContext/index.js +2 -2
- package/components/DataGrid/contexts/FilterContext/index.js +2 -2
- package/components/DataGrid/hooks/useDataGrid.js +1 -1
- package/components/DataGrid/hooks/useFilters.js +1 -1
- package/components/DataGrid/index.d.ts +8 -9
- package/components/DataGrid/index.js +1 -89
- package/components/DataGrid/slots/DataGridEnum.d.ts +2 -1
- package/components/DataGrid/slots/DataGridEnum.js +1 -0
- package/components/DataGrid/slots/DataGridSlot.d.ts +19 -18
- package/components/DataGrid/slots/DataGridSlot.js +13 -8
- package/components/DataGrid/styles.js +10 -8
- package/components/DataGrid/subcomponents/Actions/index.js +15 -12
- package/components/DataGrid/subcomponents/Actions/subcomponents/Settings/subcomponents/ColumnsConfig/index.js +1 -1
- package/components/DataGrid/subcomponents/Actions/subcomponents/hooks/useModalSettings/index.js +1 -1
- package/components/DataGrid/subcomponents/Actions/types.d.ts +2 -0
- package/components/DataGrid/subcomponents/Table/index.js +1 -1
- package/components/DataGrid/subcomponents/Table/subcomponents/DraggableHeaderRenderer.js +1 -1
- package/components/DataGrid/types.d.ts +8 -12
- package/components/DragResizeWindow/slots/DragResizeWindowSlots.d.ts +2 -2
- package/components/DynamicFilter/slots/dynamicFilterSlots.d.ts +15 -15
- package/components/DynamicFilter/slots/dynamicFilterSlots.js +1 -1
- package/components/DynamicFilter/subcomponents/DynamicFilterBase/DynamicFilterBase.js +4 -0
- package/components/DynamicSort/dictionary.js +3 -2
- package/components/DynamicSort/helpers/formatToRowSort.js +1 -1
- package/components/DynamicSort/slots/DynamicSortSlots.d.ts +10 -10
- package/components/DynamicSort/subcomponents/DynamicSortBase/DynamicSortBase.js +4 -0
- package/components/DynamicSort/subcomponents/FieldTypes/StringSort/index.js +1 -1
- package/components/DynamicSort/subcomponents/InputSort/useInputSort.js +1 -1
- package/components/DynamicSort/subcomponents/SortActions/SortActions.js +1 -1
- package/components/DynamicSort/subcomponents/SortActions/useSortActions.js +1 -1
- package/components/DynamicSort/types.d.ts +1 -1
- package/components/Icon/slots/IconSlots.d.ts +2 -2
- package/components/Label/slots/LabelSlots.d.ts +1 -1
- package/components/LanguagePopover/slots/LanguagePopoverSlots.d.ts +1 -1
- package/components/LoadingError/slots/LoadingErrorSlots.d.ts +8 -8
- package/components/MenuActions/slots/MenuActionsSlots.d.ts +6 -6
- package/components/ModalDialog/slots/ModalDialogSlots.d.ts +2 -2
- package/components/NoItemSelected/slots/NoItemSelectedSlots.d.ts +3 -3
- package/components/NumberInput/slots/NumberInputSlots.d.ts +5 -5
- package/components/ObjectLogs/index.js +1 -1
- package/components/PDFViewer/slots/PDFViewerSlots.d.ts +1 -1
- package/components/Pager/Pager.js +4 -1
- package/components/Pager/slots/PagerSlots.d.ts +4 -4
- package/components/PaperForm/slots/PaperFormSlots.d.ts +3 -3
- package/components/PropertyValue/slots/PropertyValueSlots.d.ts +3 -3
- package/components/ScrollBar/slots/ScrollBarSlots.d.ts +1 -1
- package/components/SideBar/slots/SideBarSlots.d.ts +15 -15
- package/components/ToastContainer/slots/toastContainerSlots.d.ts +7 -7
- package/components/WindowBase/slots/WindowBaseSlots.d.ts +8 -8
- package/components/WindowConfirm/slots/WindowConfirmSlots.d.ts +8 -8
- package/components/areas/components/AreasAdmin/slots/AreasAdminSlots.d.ts +17 -17
- package/components/areas/components/AreasAdmin/subcomponents/AreaChip/AreaChip.js +1 -1
- package/components/areas/components/AreasViewer/slots/AreasViewerSlots.d.ts +5 -5
- package/components/areas/contexts/WindowToolsMFContext/types.d.ts +1 -1
- package/components/extended/React-Spinners/PropagateLoaderSpinner/slots/PropagateLoaderSpinnerSlots.d.ts +1 -1
- package/components/extended/React-Splitter-Layout/slots/SplitLayoutSlots.d.ts +3 -3
- package/components/hook-form/RHFAutocomplete/slots/RHFAutocompleteSlots.d.ts +1 -1
- package/components/hook-form/RHFCheckbox/slots/RHFCheckBoxSlots.d.ts +3 -3
- package/components/hook-form/RHFColorPicker/slots/RHFColorPickerSlots.d.ts +1 -1
- package/components/hook-form/RHFDateTime/slots/RHFDateTimeSlots.d.ts +1 -1
- package/components/hook-form/RHFNumberInput/slots/RHFNumberInputSlots.d.ts +1 -1
- package/components/hook-form/RHFPeriod/slots/RHFPeriodSlots.d.ts +4 -4
- package/components/hook-form/RHFSelect/slots/RHFSlots.d.ts +2 -2
- package/components/hook-form/RHFTextField/slots/RHFTextFieldSlots.d.ts +2 -2
- package/components/hook-form/RHFTextFieldPassword/slots/RHFTextFieldPasswordSlots.d.ts +3 -3
- package/components/hook-form/RHFTimePicker/slots/RHFTimePickerSlots.d.ts +1 -1
- package/components/index.d.ts +27 -33
- package/components/mui_extended/Accordion/slots/AccordionSlots.d.ts +2 -2
- package/components/mui_extended/Autocomplete/slots/AutocompleteSlots.d.ts +5 -5
- package/components/mui_extended/Autocomplete/slots/AutocompleteSlots.js +1 -1
- package/components/mui_extended/Avatar/slots/AvatarSlots.d.ts +1 -1
- package/components/mui_extended/Badge/slots/BadgeSlots.d.ts +1 -1
- package/components/mui_extended/Button/slots/ButtonSlots.d.ts +1 -1
- package/components/mui_extended/CheckBox/slots/CheckBoxSlots.d.ts +2 -2
- package/components/mui_extended/DateTimePicker/slots/DateTimePickerSlots.d.ts +4 -4
- package/components/mui_extended/Dialog/slots/DialogSlots.d.ts +2 -2
- package/components/mui_extended/Divider/slots/DividerSlots.d.ts +2 -2
- package/components/mui_extended/IconButton/IconButton.js +2 -2
- package/components/mui_extended/IconButton/slots/IconButtonSlots.d.ts +2 -2
- package/components/mui_extended/LoadingButton/slots/LoadingButtonSlots.d.ts +1 -1
- package/components/mui_extended/MenuDivider/slots/MenuDividerSlots.d.ts +2 -2
- package/components/mui_extended/MenuItem/slots/MenuItemSlots.d.ts +2 -2
- package/components/mui_extended/MenuItem/slots/MenuItemSlots.js +1 -1
- package/components/mui_extended/NavLink/slots/NavLinkSlots.d.ts +1 -1
- package/components/mui_extended/Popper/slots/PopperStlots.d.ts +1 -1
- package/components/mui_extended/Select/slots/SelectSlots.d.ts +3 -3
- package/components/mui_extended/Skeleton/Slots/skeletonSlots.d.ts +1 -1
- package/components/mui_extended/Stack/slots/StackSlot.d.ts +1 -1
- package/components/mui_extended/Tab/Slots/TabSlots.d.ts +1 -1
- package/components/mui_extended/Tabs/slots/TabsSlots.d.ts +1 -1
- package/components/mui_extended/TextField/slots/TextFieldSlots.d.ts +1 -1
- package/components/mui_extended/TimePicker/slots/TimePickerSlots.d.ts +3 -3
- package/components/mui_extended/ToggleButton/slots/ToggleButtonSlots.d.ts +1 -1
- package/components/mui_extended/ToggleIconButton/slots/ToggleIconButtonSlots.d.ts +1 -1
- package/components/mui_extended/Tooltip/slots/TooltipSlots.d.ts +1 -1
- package/components/mui_extended/Typography/slots/typographySlots.d.ts +1 -1
- package/components/popups/components/PopupsViewer/slots/popupsViewerSlots.d.ts +5 -5
- package/hooks/index.d.ts +1 -0
- package/hooks/useDynamicFilterAndSort/constants.d.ts +1 -0
- package/hooks/useDynamicFilterAndSort/constants.js +4 -0
- package/hooks/useDynamicFilterAndSort/icons.d.ts +6 -0
- package/hooks/useDynamicFilterAndSort/icons.js +11 -0
- package/hooks/useDynamicFilterAndSort/index.d.ts +2 -0
- package/hooks/useDynamicFilterAndSort/index.js +1 -0
- package/hooks/useDynamicFilterAndSort/slots/DynamicFilterAndSortEnum.d.ts +5 -0
- package/hooks/useDynamicFilterAndSort/slots/DynamicFilterAndSortEnum.js +9 -0
- package/hooks/useDynamicFilterAndSort/slots/DynamicFilterAndSortSlots.d.ts +9 -0
- package/hooks/useDynamicFilterAndSort/slots/DynamicFilterAndSortSlots.js +22 -0
- package/hooks/useDynamicFilterAndSort/styles.d.ts +2 -0
- package/hooks/useDynamicFilterAndSort/styles.js +43 -0
- package/hooks/useDynamicFilterAndSort/types.d.ts +34 -0
- package/hooks/useDynamicFilterAndSort/useDynamicFilterAndSort.d.ts +10 -0
- package/hooks/useDynamicFilterAndSort/useDynamicFilterAndSort.js +90 -0
- package/index.js +294 -292
- package/package.json +1 -1
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useEnvironment } from "@m4l/core";
|
|
3
|
+
import { T as ToggleIconButton } from "../../components/mui_extended/ToggleIconButton/ToggleIconButton.js";
|
|
4
|
+
import { I as ICON_PATH_FILTER, a as ICON_PATH_SORT, A as ASSETS } from "./icons.js";
|
|
5
|
+
import { useState, useMemo, useRef, useCallback } from "react";
|
|
6
|
+
import { D as DynamicFilter } from "../../components/DynamicFilter/DynamicFilter.js";
|
|
7
|
+
import { D as DynamicSort } from "../../components/DynamicSort/DynamicSort.js";
|
|
8
|
+
import { S as StackLeftActionsStyled, a as StackRightActionsStyled, b as StackCustomHeaderStyled } from "./slots/DynamicFilterAndSortSlots.js";
|
|
9
|
+
import { B as Badge } from "../../components/mui_extended/Badge/Badge.js";
|
|
10
|
+
import { g as getPropDataTestId } from "../../test/getNameDataTestId.js";
|
|
11
|
+
import { M as M4LDYNAMIC_KEY_FILTER_AND_SORT } from "./constants.js";
|
|
12
|
+
import { D as DynamicFilterAndSortSlots } from "./slots/DynamicFilterAndSortEnum.js";
|
|
13
|
+
import { I as IconButton } from "../../components/mui_extended/IconButton/IconButton.js";
|
|
14
|
+
const useDynamicFilterAndSort = (props) => {
|
|
15
|
+
const { fields, sorts, onChangeFilterSort, dataTestId, initialAppliedFilters, initialAppliedSorts, withAllField, rightActions, initialFilterToggleed = true, initialSortToggleed = true } = props;
|
|
16
|
+
const { host_static_assets, environment_assets } = useEnvironment();
|
|
17
|
+
const [togglesLeftActions, setTogglesLeftActions] = useState({ filter: initialFilterToggleed, sort: initialSortToggleed });
|
|
18
|
+
const [invisibleBadge, setInvisibleBadge] = useState({
|
|
19
|
+
filter: initialAppliedFilters?.length === 0,
|
|
20
|
+
sort: initialAppliedSorts?.length === 0
|
|
21
|
+
});
|
|
22
|
+
const visibleCustomHeader = useMemo(() => togglesLeftActions.filter || togglesLeftActions.sort, [togglesLeftActions]);
|
|
23
|
+
const sortIconUrl = `${host_static_assets}/${environment_assets}/${ASSETS.refresh}`;
|
|
24
|
+
const eventRefs = useRef({
|
|
25
|
+
eventFilters: { filters: initialAppliedFilters, rawFilters: [] },
|
|
26
|
+
eventSorts: { sorts: initialAppliedSorts, rawSorts: [] }
|
|
27
|
+
});
|
|
28
|
+
const handleToggles = (key) => {
|
|
29
|
+
setTogglesLeftActions((prev) => ({ ...prev, [key]: !prev[key] }));
|
|
30
|
+
};
|
|
31
|
+
const handleChangeFilters = useCallback(
|
|
32
|
+
(filters, rawFilters) => {
|
|
33
|
+
setInvisibleBadge((prev) => ({ ...prev, filter: filters.length === 0 }));
|
|
34
|
+
eventRefs.current = {
|
|
35
|
+
...eventRefs.current,
|
|
36
|
+
eventFilters: { filters, rawFilters }
|
|
37
|
+
};
|
|
38
|
+
onChangeFilterSort(eventRefs.current);
|
|
39
|
+
},
|
|
40
|
+
[onChangeFilterSort]
|
|
41
|
+
);
|
|
42
|
+
const handleChangeSorts = useCallback((Sorts, rawSorts) => {
|
|
43
|
+
setInvisibleBadge((prev) => ({ ...prev, sort: Sorts.length === 0 }));
|
|
44
|
+
eventRefs.current = {
|
|
45
|
+
...eventRefs.current,
|
|
46
|
+
eventSorts: { sorts: Sorts, rawSorts }
|
|
47
|
+
};
|
|
48
|
+
onChangeFilterSort(eventRefs.current);
|
|
49
|
+
}, [onChangeFilterSort]);
|
|
50
|
+
const onRefresh = useCallback(() => {
|
|
51
|
+
onChangeFilterSort(eventRefs.current);
|
|
52
|
+
}, [onChangeFilterSort]);
|
|
53
|
+
const leftActions = useMemo(() => /* @__PURE__ */ jsxs(StackLeftActionsStyled, { direction: "row", ownerState: {}, ...getPropDataTestId(M4LDYNAMIC_KEY_FILTER_AND_SORT, DynamicFilterAndSortSlots.stackLeftActions, dataTestId), children: [
|
|
54
|
+
/* @__PURE__ */ jsx(Badge, { badgeContent: "", size: "small", color: "primary", invisible: invisibleBadge.filter, children: /* @__PURE__ */ jsx(ToggleIconButton, { icon: `${host_static_assets}/${environment_assets}/${ICON_PATH_FILTER}`, isToggled: togglesLeftActions.filter, onToggle: () => handleToggles("filter") }) }),
|
|
55
|
+
/* @__PURE__ */ jsx(Badge, { badgeContent: "", size: "small", color: "primary", invisible: invisibleBadge.sort, children: /* @__PURE__ */ jsx(ToggleIconButton, { icon: `${host_static_assets}/${environment_assets}/${ICON_PATH_SORT}`, isToggled: togglesLeftActions.sort, onToggle: () => handleToggles("sort") }) })
|
|
56
|
+
] }), [togglesLeftActions, invisibleBadge, host_static_assets, environment_assets]);
|
|
57
|
+
const finalRightActions = useMemo(() => /* @__PURE__ */ jsxs(
|
|
58
|
+
StackRightActionsStyled,
|
|
59
|
+
{
|
|
60
|
+
direction: "row",
|
|
61
|
+
ownerState: {},
|
|
62
|
+
...getPropDataTestId(M4LDYNAMIC_KEY_FILTER_AND_SORT, DynamicFilterAndSortSlots.stackRightActions, dataTestId),
|
|
63
|
+
children: [
|
|
64
|
+
/* @__PURE__ */ jsx(
|
|
65
|
+
IconButton,
|
|
66
|
+
{
|
|
67
|
+
icon: sortIconUrl,
|
|
68
|
+
"aria-label": "refresh",
|
|
69
|
+
onClick: onRefresh
|
|
70
|
+
}
|
|
71
|
+
),
|
|
72
|
+
rightActions
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
), [dataTestId, rightActions, sortIconUrl, onRefresh]);
|
|
76
|
+
const dynamicsFiltersSorts = useMemo(() => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
77
|
+
/* @__PURE__ */ jsx(DynamicFilter, { fields, initialAppliedFilters, onChangeFilters: handleChangeFilters, withAllField }),
|
|
78
|
+
sorts ? /* @__PURE__ */ jsx(DynamicSort, { fields: sorts, initialAppliedSorts, onChangeSorts: handleChangeSorts }) : null
|
|
79
|
+
] }), [fields, sorts, initialAppliedFilters, initialAppliedSorts, handleChangeFilters, handleChangeSorts, withAllField]);
|
|
80
|
+
const customHeaderComponent = useMemo(() => /* @__PURE__ */ jsx(StackCustomHeaderStyled, { direction: "row", ownerState: { showDynamicFilter: togglesLeftActions.filter, showDynamicSort: togglesLeftActions.sort }, ...getPropDataTestId(M4LDYNAMIC_KEY_FILTER_AND_SORT, DynamicFilterAndSortSlots.stackCustomHeader, dataTestId), children: dynamicsFiltersSorts }), [togglesLeftActions]);
|
|
81
|
+
return {
|
|
82
|
+
leftActions,
|
|
83
|
+
rightActions: finalRightActions,
|
|
84
|
+
visibleCustomHeader,
|
|
85
|
+
customHeaderComponent
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
export {
|
|
89
|
+
useDynamicFilterAndSort as u
|
|
90
|
+
};
|