@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.
Files changed (129) hide show
  1. package/.storybook/utils/getStylesColorsByMode.d.ts +48 -48
  2. package/@types/types.d.ts +17 -0
  3. package/components/AccountPopover/slots/AccountPopoverSlots.d.ts +7 -7
  4. package/components/AppBar/slots/AppBarSlots.d.ts +6 -6
  5. package/components/AppBar/slots/AppBarSlots.js +1 -1
  6. package/components/Chip/slots/ChipSlots.d.ts +2 -2
  7. package/components/Color/slots/ColorSlots.d.ts +2 -2
  8. package/components/Color/slots/ColorSlots.js +1 -1
  9. package/components/CommonActions/components/ActionCancel/slots/ActionsCancelSlots.d.ts +1 -1
  10. package/components/CommonActions/components/ActionFormCancel/slots/ActionFormCancelSlots.d.ts +1 -1
  11. package/components/CommonActions/components/ActionIntro/slots/ActionsIntroSlots.d.ts +1 -1
  12. package/components/CommonActions/components/ActionsContainer/slots/ActionsContainerSlots.d.ts +1 -1
  13. package/components/DataGrid/DataGrid.d.ts +9 -0
  14. package/components/DataGrid/DataGrid.js +95 -0
  15. package/components/DataGrid/contexts/DataGridContext/index.js +2 -2
  16. package/components/DataGrid/contexts/FilterContext/index.js +2 -2
  17. package/components/DataGrid/hooks/useDataGrid.js +1 -1
  18. package/components/DataGrid/hooks/useFilters.js +1 -1
  19. package/components/DataGrid/index.d.ts +8 -9
  20. package/components/DataGrid/index.js +1 -89
  21. package/components/DataGrid/slots/DataGridEnum.d.ts +2 -1
  22. package/components/DataGrid/slots/DataGridEnum.js +1 -0
  23. package/components/DataGrid/slots/DataGridSlot.d.ts +19 -18
  24. package/components/DataGrid/slots/DataGridSlot.js +13 -8
  25. package/components/DataGrid/styles.js +10 -8
  26. package/components/DataGrid/subcomponents/Actions/index.js +15 -12
  27. package/components/DataGrid/subcomponents/Actions/subcomponents/Settings/subcomponents/ColumnsConfig/index.js +1 -1
  28. package/components/DataGrid/subcomponents/Actions/subcomponents/hooks/useModalSettings/index.js +1 -1
  29. package/components/DataGrid/subcomponents/Actions/types.d.ts +2 -0
  30. package/components/DataGrid/subcomponents/Table/index.js +1 -1
  31. package/components/DataGrid/subcomponents/Table/subcomponents/DraggableHeaderRenderer.js +1 -1
  32. package/components/DataGrid/types.d.ts +8 -12
  33. package/components/DragResizeWindow/slots/DragResizeWindowSlots.d.ts +2 -2
  34. package/components/DynamicFilter/slots/dynamicFilterSlots.d.ts +15 -15
  35. package/components/DynamicFilter/slots/dynamicFilterSlots.js +1 -1
  36. package/components/DynamicFilter/subcomponents/DynamicFilterBase/DynamicFilterBase.js +4 -0
  37. package/components/DynamicSort/dictionary.js +3 -2
  38. package/components/DynamicSort/helpers/formatToRowSort.js +1 -1
  39. package/components/DynamicSort/slots/DynamicSortSlots.d.ts +10 -10
  40. package/components/DynamicSort/subcomponents/DynamicSortBase/DynamicSortBase.js +4 -0
  41. package/components/DynamicSort/subcomponents/FieldTypes/StringSort/index.js +1 -1
  42. package/components/DynamicSort/subcomponents/InputSort/useInputSort.js +1 -1
  43. package/components/DynamicSort/subcomponents/SortActions/SortActions.js +1 -1
  44. package/components/DynamicSort/subcomponents/SortActions/useSortActions.js +1 -1
  45. package/components/DynamicSort/types.d.ts +1 -1
  46. package/components/Icon/slots/IconSlots.d.ts +2 -2
  47. package/components/Label/slots/LabelSlots.d.ts +1 -1
  48. package/components/LanguagePopover/slots/LanguagePopoverSlots.d.ts +1 -1
  49. package/components/LoadingError/slots/LoadingErrorSlots.d.ts +8 -8
  50. package/components/MenuActions/slots/MenuActionsSlots.d.ts +6 -6
  51. package/components/ModalDialog/slots/ModalDialogSlots.d.ts +2 -2
  52. package/components/NoItemSelected/slots/NoItemSelectedSlots.d.ts +3 -3
  53. package/components/NumberInput/slots/NumberInputSlots.d.ts +5 -5
  54. package/components/ObjectLogs/index.js +1 -1
  55. package/components/PDFViewer/slots/PDFViewerSlots.d.ts +1 -1
  56. package/components/Pager/Pager.js +4 -1
  57. package/components/Pager/slots/PagerSlots.d.ts +4 -4
  58. package/components/PaperForm/slots/PaperFormSlots.d.ts +3 -3
  59. package/components/PropertyValue/slots/PropertyValueSlots.d.ts +3 -3
  60. package/components/ScrollBar/slots/ScrollBarSlots.d.ts +1 -1
  61. package/components/SideBar/slots/SideBarSlots.d.ts +15 -15
  62. package/components/ToastContainer/slots/toastContainerSlots.d.ts +7 -7
  63. package/components/WindowBase/slots/WindowBaseSlots.d.ts +8 -8
  64. package/components/WindowConfirm/slots/WindowConfirmSlots.d.ts +8 -8
  65. package/components/areas/components/AreasAdmin/slots/AreasAdminSlots.d.ts +17 -17
  66. package/components/areas/components/AreasAdmin/subcomponents/AreaChip/AreaChip.js +1 -1
  67. package/components/areas/components/AreasViewer/slots/AreasViewerSlots.d.ts +5 -5
  68. package/components/areas/contexts/WindowToolsMFContext/types.d.ts +1 -1
  69. package/components/extended/React-Spinners/PropagateLoaderSpinner/slots/PropagateLoaderSpinnerSlots.d.ts +1 -1
  70. package/components/extended/React-Splitter-Layout/slots/SplitLayoutSlots.d.ts +3 -3
  71. package/components/hook-form/RHFAutocomplete/slots/RHFAutocompleteSlots.d.ts +1 -1
  72. package/components/hook-form/RHFCheckbox/slots/RHFCheckBoxSlots.d.ts +3 -3
  73. package/components/hook-form/RHFColorPicker/slots/RHFColorPickerSlots.d.ts +1 -1
  74. package/components/hook-form/RHFDateTime/slots/RHFDateTimeSlots.d.ts +1 -1
  75. package/components/hook-form/RHFNumberInput/slots/RHFNumberInputSlots.d.ts +1 -1
  76. package/components/hook-form/RHFPeriod/slots/RHFPeriodSlots.d.ts +4 -4
  77. package/components/hook-form/RHFSelect/slots/RHFSlots.d.ts +2 -2
  78. package/components/hook-form/RHFTextField/slots/RHFTextFieldSlots.d.ts +2 -2
  79. package/components/hook-form/RHFTextFieldPassword/slots/RHFTextFieldPasswordSlots.d.ts +3 -3
  80. package/components/hook-form/RHFTimePicker/slots/RHFTimePickerSlots.d.ts +1 -1
  81. package/components/index.d.ts +27 -33
  82. package/components/mui_extended/Accordion/slots/AccordionSlots.d.ts +2 -2
  83. package/components/mui_extended/Autocomplete/slots/AutocompleteSlots.d.ts +5 -5
  84. package/components/mui_extended/Autocomplete/slots/AutocompleteSlots.js +1 -1
  85. package/components/mui_extended/Avatar/slots/AvatarSlots.d.ts +1 -1
  86. package/components/mui_extended/Badge/slots/BadgeSlots.d.ts +1 -1
  87. package/components/mui_extended/Button/slots/ButtonSlots.d.ts +1 -1
  88. package/components/mui_extended/CheckBox/slots/CheckBoxSlots.d.ts +2 -2
  89. package/components/mui_extended/DateTimePicker/slots/DateTimePickerSlots.d.ts +4 -4
  90. package/components/mui_extended/Dialog/slots/DialogSlots.d.ts +2 -2
  91. package/components/mui_extended/Divider/slots/DividerSlots.d.ts +2 -2
  92. package/components/mui_extended/IconButton/IconButton.js +2 -2
  93. package/components/mui_extended/IconButton/slots/IconButtonSlots.d.ts +2 -2
  94. package/components/mui_extended/LoadingButton/slots/LoadingButtonSlots.d.ts +1 -1
  95. package/components/mui_extended/MenuDivider/slots/MenuDividerSlots.d.ts +2 -2
  96. package/components/mui_extended/MenuItem/slots/MenuItemSlots.d.ts +2 -2
  97. package/components/mui_extended/MenuItem/slots/MenuItemSlots.js +1 -1
  98. package/components/mui_extended/NavLink/slots/NavLinkSlots.d.ts +1 -1
  99. package/components/mui_extended/Popper/slots/PopperStlots.d.ts +1 -1
  100. package/components/mui_extended/Select/slots/SelectSlots.d.ts +3 -3
  101. package/components/mui_extended/Skeleton/Slots/skeletonSlots.d.ts +1 -1
  102. package/components/mui_extended/Stack/slots/StackSlot.d.ts +1 -1
  103. package/components/mui_extended/Tab/Slots/TabSlots.d.ts +1 -1
  104. package/components/mui_extended/Tabs/slots/TabsSlots.d.ts +1 -1
  105. package/components/mui_extended/TextField/slots/TextFieldSlots.d.ts +1 -1
  106. package/components/mui_extended/TimePicker/slots/TimePickerSlots.d.ts +3 -3
  107. package/components/mui_extended/ToggleButton/slots/ToggleButtonSlots.d.ts +1 -1
  108. package/components/mui_extended/ToggleIconButton/slots/ToggleIconButtonSlots.d.ts +1 -1
  109. package/components/mui_extended/Tooltip/slots/TooltipSlots.d.ts +1 -1
  110. package/components/mui_extended/Typography/slots/typographySlots.d.ts +1 -1
  111. package/components/popups/components/PopupsViewer/slots/popupsViewerSlots.d.ts +5 -5
  112. package/hooks/index.d.ts +1 -0
  113. package/hooks/useDynamicFilterAndSort/constants.d.ts +1 -0
  114. package/hooks/useDynamicFilterAndSort/constants.js +4 -0
  115. package/hooks/useDynamicFilterAndSort/icons.d.ts +6 -0
  116. package/hooks/useDynamicFilterAndSort/icons.js +11 -0
  117. package/hooks/useDynamicFilterAndSort/index.d.ts +2 -0
  118. package/hooks/useDynamicFilterAndSort/index.js +1 -0
  119. package/hooks/useDynamicFilterAndSort/slots/DynamicFilterAndSortEnum.d.ts +5 -0
  120. package/hooks/useDynamicFilterAndSort/slots/DynamicFilterAndSortEnum.js +9 -0
  121. package/hooks/useDynamicFilterAndSort/slots/DynamicFilterAndSortSlots.d.ts +9 -0
  122. package/hooks/useDynamicFilterAndSort/slots/DynamicFilterAndSortSlots.js +22 -0
  123. package/hooks/useDynamicFilterAndSort/styles.d.ts +2 -0
  124. package/hooks/useDynamicFilterAndSort/styles.js +43 -0
  125. package/hooks/useDynamicFilterAndSort/types.d.ts +34 -0
  126. package/hooks/useDynamicFilterAndSort/useDynamicFilterAndSort.d.ts +10 -0
  127. package/hooks/useDynamicFilterAndSort/useDynamicFilterAndSort.js +90 -0
  128. package/index.js +294 -292
  129. 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
+ };