@m4l/components 9.3.19-BE101025-beta.1 → 9.3.19-BE171025-beta.1
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/@types/types.d.ts +1 -1
- package/components/AccountPopover/AccountPopover.js +12 -13
- package/components/AccountPopover/subcomponents/MenuPopover/MenuPopover.d.ts +1 -1
- package/components/AccountPopover/subcomponents/MenuPopover/MenuPopover.js +7 -4
- package/components/AccountPopover/subcomponents/MenuPopover/types.d.ts +1 -1
- package/components/Chip/Chip.js +9 -7
- package/components/Chip/ChipStyles.js +4 -31
- package/components/Chip/helpers.d.ts +10 -0
- package/components/Chip/helpers.js +34 -0
- package/components/Chip/types.d.ts +6 -0
- package/components/DataGrid/subcomponents/HeaderActions/subcomponents/hooks/useModalSettings/index.js +1 -1
- package/components/DragResizeWindowRND/DragResizeWindowRND.js +14 -10
- package/components/DragResizeWindowRND/helpers/expandingParentContainer.d.ts +1 -1
- package/components/DragResizeWindowRND/helpers/expandingParentContainer.js +24 -19
- package/components/DragResizeWindowRND/helpers/getInitialSize.d.ts +3 -3
- package/components/DragResizeWindowRND/helpers/getInitialSize.js +18 -15
- package/components/DragResizeWindowRND/helpers/shrinkingParentContainer.d.ts +1 -1
- package/components/DragResizeWindowRND/helpers/shrinkingParentContainer.js +17 -9
- package/components/DragResizeWindowRND/hooks/useRNDDimensionEffects.js +4 -1
- package/components/DragResizeWindowRND/index.d.ts +1 -0
- package/components/DragResizeWindowRND/types.d.ts +12 -2
- package/components/DynamicFilter/DynamicFilter.js +2 -1
- package/components/DynamicFilter/helpers/frontEndHelpers.d.ts +2 -2
- package/components/DynamicFilter/helpers/frontEndHelpers.js +31 -9
- package/components/DynamicFilter/subcomponents/DynamicFilterBase/DynamicFilterBase.d.ts +2 -1
- package/components/DynamicFilter/subcomponents/DynamicFilterBase/DynamicFilterBase.js +4 -2
- package/components/DynamicFilter/subcomponents/DynamicFilterBase/types.d.ts +3 -0
- package/components/DynamicFilter/subcomponents/PopoverFilter/PopoverFilter.js +1 -1
- package/components/DynamicFilter/types.d.ts +4 -0
- package/components/DynamicSort/DynamicSort.js +2 -1
- package/components/DynamicSort/subcomponents/DynamicSortBase/DynamicSortBase.d.ts +2 -1
- package/components/DynamicSort/subcomponents/DynamicSortBase/DynamicSortBase.js +4 -2
- package/components/DynamicSort/subcomponents/DynamicSortBase/types.d.ts +3 -0
- package/components/DynamicSort/subcomponents/PopoverSort/PopoverSort.js +1 -1
- package/components/DynamicSort/types.d.ts +4 -0
- package/components/Image/Image.js +4 -1
- package/components/MFLoader/MFLoader.js +8 -3
- package/components/MFLoader/styles.js +1 -1
- package/components/MFLoader/types.d.ts +10 -0
- package/components/ObjectLogs/hooks/useDetailFormatter.js +1 -1
- package/components/WindowBase/WindowBase.js +3 -3
- package/components/WindowBase/WindowBase.styles.js +36 -31
- package/components/WindowBase/constants.d.ts +1 -1
- package/components/WindowBase/constants.js +2 -2
- package/components/WindowBase/index.d.ts +1 -0
- package/components/WindowBase/subcomponents/Component/index.js +2 -2
- package/components/WindowBase/subcomponents/Component/types.d.ts +2 -0
- package/components/WindowBase/subcomponents/Header/HeaderWindowBase.js +7 -7
- package/components/WindowBase/subcomponents/Header/types.d.ts +1 -1
- package/components/WindowBase/subcomponents/MicroFrontend/types.d.ts +4 -0
- package/components/WindowBase/types.d.ts +3 -3
- package/components/WindowConfirm/WindowConfirm.js +1 -1
- package/components/areas/components/AreasViewer/AreasViewer.styles.js +1 -1
- package/components/areas/components/AreasViewer/subcomponents/Area/subcomponents/Window/Window.js +6 -2
- package/components/areas/components/AreasViewer/subcomponents/Area/subcomponents/Window/hooks/useWindow.d.ts +1 -0
- package/components/areas/components/AreasViewer/subcomponents/Area/subcomponents/Window/hooks/useWindow.js +21 -3
- package/components/areas/index.d.ts +1 -1
- package/components/areas/types.d.ts +1 -1
- package/components/formatters/DistanceToNowFormatter/DistanceToNowFormatter.js +3 -34
- package/components/formatters/DistanceToNowFormatter/dictionary.d.ts +8 -0
- package/components/formatters/DistanceToNowFormatter/hooks/useDistanceToNowFormatter.d.ts +13 -0
- package/components/formatters/DistanceToNowFormatter/hooks/useDistanceToNowFormatter.js +65 -0
- package/components/formatters/DistanceToNowFormatter/index.d.ts +1 -0
- package/components/formatters/DistanceToNowFormatter/types.d.ts +4 -1
- package/components/hook-form/RHFAutocomplete/RHFAutocomplete.js +5 -1
- package/components/hook-form/RHFAutocomplete/constants.d.ts +1 -0
- package/components/hook-form/RHFAutocomplete/constants.js +5 -1
- package/components/hook-form/RHFAutocompleteAsync/RHFAutocompleteAsync.js +3 -1
- package/components/hook-form/RHFAutocompleteAsync/types.d.ts +4 -0
- package/components/mui_extended/Button/ButtonStyles.js +15 -5
- package/components/mui_extended/ToggleIconButton/ToggleIconButton.js +6 -2
- package/components/mui_extended/ToggleIconButton/ToggleIconButton.styles.js +9 -0
- package/components/mui_extended/ToggleIconButton/types.d.ts +1 -0
- package/components/mui_extended/index.d.ts +1 -1
- package/components/popups/components/PopupsProvider/hooks/usePopups.d.ts +2 -2
- package/components/popups/components/PopupsProvider/hooks/usePopups.js +0 -1
- package/components/popups/components/PopupsViewer/PopupsViewer.js +4 -3
- package/components/popups/components/PopupsViewer/subcomponents/Popup/Popup.js +5 -2
- package/components/popups/components/PopupsViewer/subcomponents/Popup/types.d.ts +5 -0
- package/components/popups/components/PopupsViewer/types.d.ts +3 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/useSizeContainer/index.d.ts +2 -1
- package/hooks/useSizeContainer/index.js +22 -13
- package/hooks/useSizeContainer/types.d.ts +6 -0
- package/hooks/useStateRef/index.d.ts +1 -1
- package/hooks/useStateRef/index.js +6 -6
- package/index.js +45 -38
- package/package.json +3 -4
- package/utils/deepShallow.d.ts +17 -0
- package/utils/deepShallow.js +76 -0
- package/utils/formatDistanceToNow/formatDistanteToNow.d.ts +2 -2
- package/utils/formatDistanceToNow/formatDistanteToNow.js +18 -2
- package/utils/formatDistanceToNow/types.d.ts +13 -0
- package/utils/index.d.ts +1 -0
|
@@ -11,7 +11,7 @@ import { M as MemonizedWindowBaseMicroFrontend } from "../../../../../WindowBase
|
|
|
11
11
|
import { W as WindowBaseComponent } from "../../../../../WindowBase/subcomponents/Component/index.js";
|
|
12
12
|
import { W as WindowBase } from "../../../../../WindowBase/WindowBase.js";
|
|
13
13
|
const Popup = forwardRef((props, ref) => {
|
|
14
|
-
const { popupId, containerElement, containerSize, style, onResizeStart, onResizeStop, onDragStart, onDragStop } = props;
|
|
14
|
+
const { popupId, containerElement, containerSize, style, onResizeStart, onResizeStop, onDragStart, onDragStop, loggedUser } = props;
|
|
15
15
|
const popup = usePopupsStore((state) => state.hashPopups[popupId], shallow);
|
|
16
16
|
const { bringPopupOnFront } = usePopupsStore((state) => state.popupsActions, shallow);
|
|
17
17
|
const { close } = usePopupsStore((state) => state.popupActions, shallow);
|
|
@@ -118,7 +118,7 @@ const Popup = forwardRef((props, ref) => {
|
|
|
118
118
|
isLoading: loading,
|
|
119
119
|
windowId: popupId,
|
|
120
120
|
selected,
|
|
121
|
-
|
|
121
|
+
emergeType: "popup",
|
|
122
122
|
variant: "outlined",
|
|
123
123
|
...process.env.NODE_ENV !== "production" ? {
|
|
124
124
|
[TEST_PROP_ID]: getNameDataTestId(
|
|
@@ -129,14 +129,17 @@ const Popup = forwardRef((props, ref) => {
|
|
|
129
129
|
children: winType === "microfrontend" ? /* @__PURE__ */ jsx(
|
|
130
130
|
MemonizedWindowBaseMicroFrontend,
|
|
131
131
|
{
|
|
132
|
+
emergeType: "popup",
|
|
132
133
|
moduleId,
|
|
133
134
|
dynamicMFStore,
|
|
134
135
|
windowTools,
|
|
136
|
+
loggedUser,
|
|
135
137
|
...mfProps ?? { debugPort: 0, prefix: "" }
|
|
136
138
|
}
|
|
137
139
|
) : /* @__PURE__ */ jsx(
|
|
138
140
|
WindowBaseComponent,
|
|
139
141
|
{
|
|
142
|
+
emergeType: "popup",
|
|
140
143
|
dynamicMFStore,
|
|
141
144
|
windowTools,
|
|
142
145
|
component
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CSSProperties } from 'react';
|
|
2
2
|
import { ContainerSize } from '../../../../../../utils/types';
|
|
3
|
+
import { AuthUserType } from '@m4l/core';
|
|
3
4
|
export type ResizeReason = 'start' | 'resize' | 'stop';
|
|
4
5
|
export interface PopupProps {
|
|
5
6
|
/**
|
|
@@ -34,4 +35,8 @@ export interface PopupProps {
|
|
|
34
35
|
* "onDragStop" Función que se ejecuta cuando se termina de arrastrar el popup
|
|
35
36
|
*/
|
|
36
37
|
onDragStop?: () => void;
|
|
38
|
+
/**
|
|
39
|
+
* "loggedUser" Usuario logueado
|
|
40
|
+
*/
|
|
41
|
+
loggedUser?: AuthUserType;
|
|
37
42
|
}
|
|
@@ -3,14 +3,17 @@ import { PopupViewerSlots } from './slots/slots';
|
|
|
3
3
|
import { POPUPS_VIEWER_KEY_COMPONENT } from './constants';
|
|
4
4
|
import { PopupStoreProps, PopupsProviderStoreState } from '../PopupsProvider/contexts/PopupsContext/types';
|
|
5
5
|
import { M4LOverridesStyleRules } from '../../../../@types/augmentations';
|
|
6
|
+
import { AuthUserType } from '@m4l/core';
|
|
6
7
|
export type PopupViewerSlotsType = keyof typeof PopupViewerSlots;
|
|
7
8
|
export type PopupsViewerProps = {
|
|
9
|
+
className?: string;
|
|
8
10
|
containerElement?: HTMLElement;
|
|
9
11
|
groupId?: string;
|
|
10
12
|
onResizeStart?: () => void;
|
|
11
13
|
onResizeStop?: () => void;
|
|
12
14
|
onDragStart?: () => void;
|
|
13
15
|
onDragStop?: () => void;
|
|
16
|
+
loggedUser?: AuthUserType;
|
|
14
17
|
};
|
|
15
18
|
export type PopupStatus = 'init' | 'closing' | 'hidden';
|
|
16
19
|
export interface PopupOwnerState extends Pick<PopupStoreProps, 'status' | 'subTitle' | 'editionInfo' | 'zIndex' | 'variant'> {
|
package/hooks/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ContainerSize } from '../../utils/types';
|
|
2
|
+
import { UseSizeContainerOptions } from './types';
|
|
2
3
|
/**
|
|
3
4
|
* useSizeContainer: hook encargado de obtener el tamaño de un elemento contenedor
|
|
4
5
|
* TODO: Usar throttle para evitar llamadas innecesarias
|
|
5
6
|
* @param containerElement
|
|
6
7
|
* @returns un objeto con el ancho y alto del contenedor
|
|
7
8
|
*/
|
|
8
|
-
export declare function useSizeContainer(containerElement?: HTMLElement | undefined | null): ContainerSize | undefined;
|
|
9
|
+
export declare function useSizeContainer(containerElement?: HTMLElement | undefined | null, options?: UseSizeContainerOptions): ContainerSize | undefined;
|
|
@@ -1,35 +1,44 @@
|
|
|
1
1
|
import { useState, useEffect } from "react";
|
|
2
2
|
import { T as THROTTLE_RESIZE_TIMEOUT } from "./contants.js";
|
|
3
3
|
import throttle from "lodash-es/throttle";
|
|
4
|
-
function useSizeContainer(containerElement) {
|
|
5
|
-
const
|
|
4
|
+
function useSizeContainer(containerElement, options) {
|
|
5
|
+
const { throttleTime = THROTTLE_RESIZE_TIMEOUT, excludePadding = false, leading = false, trailing = true } = options || {};
|
|
6
|
+
const [currentState, setCurrentState] = useState(void 0);
|
|
6
7
|
useEffect(() => {
|
|
7
8
|
if (!containerElement) {
|
|
8
9
|
return;
|
|
9
10
|
}
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
const setter = (size) => {
|
|
12
|
+
setCurrentState(size);
|
|
13
|
+
};
|
|
14
|
+
const throttleResize = throttle(setter, throttleTime, {
|
|
15
|
+
leading,
|
|
16
|
+
// Evento de resizing (Por defecto false)
|
|
17
|
+
trailing
|
|
14
18
|
// Incluir siempre el ultimo evento en la cola, para que no quede se quedee a la mitad de resizing
|
|
15
19
|
});
|
|
16
20
|
const resizeObserver = new ResizeObserver((entries) => {
|
|
17
|
-
|
|
21
|
+
if (excludePadding) {
|
|
18
22
|
throttleResize({
|
|
19
|
-
containerWidth: Math.round(
|
|
20
|
-
containerHeight: Math.round(
|
|
23
|
+
containerWidth: Math.round(containerElement.clientWidth),
|
|
24
|
+
containerHeight: Math.round(containerElement.clientHeight)
|
|
21
25
|
});
|
|
26
|
+
} else {
|
|
27
|
+
for (const entry of entries) {
|
|
28
|
+
throttleResize({
|
|
29
|
+
containerWidth: Math.round(entry.contentRect.width),
|
|
30
|
+
containerHeight: Math.round(entry.contentRect.height)
|
|
31
|
+
});
|
|
32
|
+
}
|
|
22
33
|
}
|
|
23
34
|
});
|
|
24
|
-
|
|
25
|
-
resizeObserver.observe(containerElement);
|
|
26
|
-
}
|
|
35
|
+
resizeObserver.observe(containerElement);
|
|
27
36
|
return () => {
|
|
28
37
|
if (containerElement) {
|
|
29
38
|
resizeObserver.unobserve(containerElement);
|
|
30
39
|
}
|
|
31
40
|
};
|
|
32
|
-
}, [containerElement]);
|
|
41
|
+
}, [containerElement, excludePadding, leading, throttleTime, trailing]);
|
|
33
42
|
return currentState;
|
|
34
43
|
}
|
|
35
44
|
export {
|
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* @param initialValue
|
|
6
6
|
* @returns
|
|
7
7
|
*/
|
|
8
|
-
export declare function useStateRef<T>(initialValue: T | null): [T | null, (node: T | null) => void];
|
|
8
|
+
export declare function useStateRef<T extends HTMLElement | null>(initialValue: T | null): [T | null, (node: T | null) => void];
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { useState, useRef } from "react";
|
|
1
|
+
import { useState, useRef, useCallback } from "react";
|
|
2
2
|
function useStateRef(initialValue) {
|
|
3
3
|
const [refState, setRefState] = useState(initialValue);
|
|
4
4
|
const nodeRef = useRef(null);
|
|
5
|
-
const ref = (
|
|
6
|
-
if (nodeRef.current !==
|
|
7
|
-
nodeRef.current =
|
|
8
|
-
setRefState(
|
|
5
|
+
const ref = useCallback((current) => {
|
|
6
|
+
if (current && nodeRef.current !== current) {
|
|
7
|
+
nodeRef.current = current;
|
|
8
|
+
setRefState(current);
|
|
9
9
|
}
|
|
10
|
-
};
|
|
10
|
+
}, []);
|
|
11
11
|
return [refState, ref];
|
|
12
12
|
}
|
|
13
13
|
export {
|
package/index.js
CHANGED
|
@@ -122,6 +122,7 @@ import { P as P5, g as g16 } from "./components/formatters/PriceFormatter/PriceF
|
|
|
122
122
|
import { C as C18 } from "./components/formatters/ChipStatusFormatter/ChipStatusFormatter.js";
|
|
123
123
|
import { g as g17 } from "./components/formatters/DistanceToNowFormatter/dictionary.js";
|
|
124
124
|
import { D as D9 } from "./components/formatters/DistanceToNowFormatter/DistanceToNowFormatter.js";
|
|
125
|
+
import { u as u13 } from "./components/formatters/DistanceToNowFormatter/hooks/useDistanceToNowFormatter.js";
|
|
125
126
|
import { g as g18 } from "./components/formatters/dictionary.js";
|
|
126
127
|
import { F as F2 } from "./components/FormContainer/FormContainer.js";
|
|
127
128
|
import { G } from "./components/GridLayout/GridLayout.js";
|
|
@@ -176,7 +177,7 @@ import { g as g27 } from "./components/ObjectLogs/dictionary.js";
|
|
|
176
177
|
import { O } from "./components/ObjectLogs/ObjectLogs.js";
|
|
177
178
|
import { P as P7 } from "./components/PaperForm/PaperForm.js";
|
|
178
179
|
import { P as P8 } from "./components/PDFViewer/PDFViewer.js";
|
|
179
|
-
import { u as
|
|
180
|
+
import { u as u14 } from "./components/popups/components/PopupsProvider/hooks/usePopupsStore.js";
|
|
180
181
|
import { a as a10, P as P9 } from "./components/popups/components/PopupsProvider/contexts/PopupsContext/PopupsContext.js";
|
|
181
182
|
import { P as P10 } from "./components/popups/components/PopupsViewer/PopupsViewer.js";
|
|
182
183
|
import { P as P11 } from "./components/PrintingSystem/PrintingSystem.js";
|
|
@@ -186,8 +187,8 @@ import { S as S9 } from "./components/SideBar/SideBar.js";
|
|
|
186
187
|
import { T as T17 } from "./components/ToastContainer/ToastContainer.js";
|
|
187
188
|
import { T as T18 } from "./components/ToastContainer/subcomponents/ToastMessage/ToastMessage.js";
|
|
188
189
|
import { W as W2 } from "./components/WindowBase/WindowBase.js";
|
|
189
|
-
import { u as
|
|
190
|
-
import { u as
|
|
190
|
+
import { u as u15 } from "./components/WindowBase/hooks/useWindowToolsMF/index.js";
|
|
191
|
+
import { u as u16, a as a11 } from "./components/WindowBase/hooks/useDynamicMFParameters/index.js";
|
|
191
192
|
import { M as M7, W as W3, a as a12 } from "./components/WindowBase/contexts/WindowToolsMFContext/WindowToolsMFContext.js";
|
|
192
193
|
import { c as c3 } from "./components/WindowBase/contexts/DynamicMFParmsContext/store.js";
|
|
193
194
|
import { D as D10, a as a13, M as M8 } from "./components/WindowBase/contexts/DynamicMFParmsContext/DynamicMFParmsContext.js";
|
|
@@ -196,7 +197,7 @@ import { a as a14, g as g28 } from "./components/ModalDialog/dictionary.js";
|
|
|
196
197
|
import { M as M9 } from "./components/ModalDialog/ModalDialog.js";
|
|
197
198
|
import { S as S10 } from "./components/SettingsLayout/SettingsLayout.js";
|
|
198
199
|
import { P as P13 } from "./components/Pager/Pager.js";
|
|
199
|
-
import { u as
|
|
200
|
+
import { u as u17 } from "./components/Stepper/hooks/useStepper/index.js";
|
|
200
201
|
import { S as S11 } from "./components/Stepper/Stepper.js";
|
|
201
202
|
import { S as S12 } from "./components/Stepper/subcomponents/StepperContent/index.js";
|
|
202
203
|
import { S as S13 } from "./components/Stepper/subcomponents/StepperContent/subcomponents/Step/index.js";
|
|
@@ -209,26 +210,27 @@ import { S as S19 } from "./components/Stepper/subcomponents/StepperButtons/Step
|
|
|
209
210
|
import { S as S20 } from "./components/Stepper/subcomponents/StepperButtons/StepperSubmitButton/index.js";
|
|
210
211
|
import { e as e3 } from "./components/Stepper/helpers/evaluateVisibilityStepCondition/index.js";
|
|
211
212
|
import { g as g29 } from "./components/Stepper/dictionary.js";
|
|
212
|
-
import { F as F3, R as R23, u as
|
|
213
|
+
import { F as F3, R as R23, u as u18 } from "./components/hook-form/RHFormContext/index.js";
|
|
213
214
|
import { g as g30 } from "./components/hook-form/RHFormContext/dictionary.js";
|
|
214
|
-
import { u as
|
|
215
|
+
import { u as u19 } from "./contexts/AppearanceComponentContext/useAppearanceComponentStore.js";
|
|
215
216
|
import { A as A16 } from "./contexts/AppearanceComponentContext/AppearanceComponentContext.js";
|
|
216
217
|
import { a as a15, M as M10 } from "./contexts/ModalContext/index.js";
|
|
217
|
-
import { u as
|
|
218
|
-
import { u as
|
|
219
|
-
import { u as
|
|
218
|
+
import { u as u20 } from "./hooks/useFormAddEdit/index.js";
|
|
219
|
+
import { u as u21 } from "./hooks/useModal/index.js";
|
|
220
|
+
import { u as u22 } from "./hooks/useTab/index.js";
|
|
220
221
|
import { g as g31 } from "./hooks/useFormAddEdit/dictionary.js";
|
|
221
|
-
import { u as
|
|
222
|
-
import { u as
|
|
223
|
-
import { u as
|
|
224
|
-
import { u as
|
|
225
|
-
import { u as
|
|
222
|
+
import { u as u23 } from "./hooks/useFormFocus/index.js";
|
|
223
|
+
import { u as u24 } from "./hooks/useInterval/index.js";
|
|
224
|
+
import { u as u25 } from "./hooks/useComponentSize/useComponentSize.js";
|
|
225
|
+
import { u as u26 } from "./hooks/useFormReadyForUpdate/index.js";
|
|
226
|
+
import { u as u27 } from "./hooks/useStateRef/index.js";
|
|
226
227
|
import { S as S21 } from "./hooks/useSvgColor/constants.js";
|
|
227
|
-
import { u as
|
|
228
|
-
import { u as
|
|
229
|
-
import { u as
|
|
230
|
-
import { u as
|
|
231
|
-
import { u as
|
|
228
|
+
import { u as u28 } from "./hooks/useSvgColor/useSvgColor.js";
|
|
229
|
+
import { u as u29 } from "./hooks/useDynamicFilterAndSort/useDynamicFilterAndSort.js";
|
|
230
|
+
import { u as u30 } from "./hooks/useDataGridPersistence/useDataGridPersistence.js";
|
|
231
|
+
import { u as u31 } from "./hooks/usePopoverContainer/usePopoverContainer.js";
|
|
232
|
+
import { u as u32 } from "./hooks/useIsVisible/useIsVisible.js";
|
|
233
|
+
import { u as u33 } from "./hooks/useSizeContainer/index.js";
|
|
232
234
|
import { c as c4 } from "./utils/capitalizeFirstLetter.js";
|
|
233
235
|
import { i as i2 } from "./utils/isValidDate.js";
|
|
234
236
|
import { g as g32 } from "./utils/getComponentUtilityClass.js";
|
|
@@ -241,6 +243,7 @@ import { g as g37, a as a17 } from "./utils/getComponentSlotRoot.js";
|
|
|
241
243
|
import { f } from "./utils/formatDistanceToNow/formatDistanteToNow.js";
|
|
242
244
|
import { g as g38 } from "./utils/getValidDate.js";
|
|
243
245
|
import { g as g39 } from "./utils/getNullGuard.js";
|
|
246
|
+
import { c as c5, d as d4 } from "./utils/deepShallow.js";
|
|
244
247
|
import { g as g40 } from "./helpers/getStepsAndValidationSchema/getStepsAndValidationSchema.js";
|
|
245
248
|
export {
|
|
246
249
|
A7 as AREAS_DICCTIONARY,
|
|
@@ -430,8 +433,10 @@ export {
|
|
|
430
433
|
e2 as addLayoutItemToBreakPoints,
|
|
431
434
|
c4 as capitalizeFirstLetter,
|
|
432
435
|
d3 as cloneLayouts,
|
|
436
|
+
c5 as createCustomDeepShallow,
|
|
433
437
|
c3 as createDynamicMFStore,
|
|
434
438
|
c as createToaster,
|
|
439
|
+
d4 as deepShallow,
|
|
435
440
|
d as defaultCommonActionsDictionary,
|
|
436
441
|
d2 as dragResizeWindowRNDClasses,
|
|
437
442
|
e3 as evaluateVisibilityStepCondition,
|
|
@@ -488,7 +493,7 @@ export {
|
|
|
488
493
|
r as rhfPeriodStyles,
|
|
489
494
|
t as toggleButtonStyles,
|
|
490
495
|
t2 as toggleIconButtonStyles,
|
|
491
|
-
|
|
496
|
+
u19 as useAppearanceComponentStore,
|
|
492
497
|
u as useAreasStore,
|
|
493
498
|
u2 as useColumnBoolean,
|
|
494
499
|
u11 as useColumnChipStatus,
|
|
@@ -500,26 +505,28 @@ export {
|
|
|
500
505
|
u8 as useColumnPrice,
|
|
501
506
|
u9 as useColumnSetCheck,
|
|
502
507
|
u10 as useColumnUncertanity,
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
+
u25 as useComponentSize,
|
|
509
|
+
u18 as useCustomForm,
|
|
510
|
+
u30 as useDataGridPersistence,
|
|
511
|
+
u13 as useDistanceToNowFormatter,
|
|
512
|
+
u29 as useDynamicFilterAndSort,
|
|
513
|
+
u16 as useDynamicMFParameters,
|
|
508
514
|
a11 as useDynamicMFParametersStore,
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
515
|
+
u20 as useFormAddEdit,
|
|
516
|
+
u23 as useFormFocus,
|
|
517
|
+
u26 as useFormReadyForUpdate,
|
|
512
518
|
u12 as useFormatPeriod,
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
519
|
+
u24 as useInterval,
|
|
520
|
+
u32 as useIsVisible,
|
|
521
|
+
u21 as useModal,
|
|
522
|
+
u31 as usePopoverContainer,
|
|
523
|
+
u14 as usePopupsStore,
|
|
524
|
+
u33 as useSizeContainer,
|
|
525
|
+
u27 as useStateRef,
|
|
526
|
+
u17 as useStepper,
|
|
527
|
+
u28 as useSvgColor,
|
|
528
|
+
u22 as useTab,
|
|
529
|
+
u15 as useWindowToolsMF,
|
|
523
530
|
v2 as varBounce,
|
|
524
531
|
v3 as varContainer,
|
|
525
532
|
v as varFade,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@m4l/components",
|
|
3
|
-
"version": "9.3.19-
|
|
3
|
+
"version": "9.3.19-BE171025-beta.1",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"description": "M4L Components",
|
|
6
6
|
"lint-staged": {
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"@googlemaps/js-api-loader": "^1.16.6",
|
|
12
12
|
"@hookform/resolvers": "2.9.11",
|
|
13
13
|
"@m4l/core": "^2.0.0",
|
|
14
|
-
"@m4l/graphics": "7.
|
|
15
|
-
"@m4l/styles": "7.1.34-
|
|
14
|
+
"@m4l/graphics": "7.2.0-BE171025-beta.1",
|
|
15
|
+
"@m4l/styles": "7.1.34-BE171025-beta.1",
|
|
16
16
|
"@mui/lab": "5.0.0-alpha.173",
|
|
17
17
|
"@mui/material": "5.16.7",
|
|
18
18
|
"@mui/x-date-pickers": "6.20.2",
|
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
"react-helmet-async": "^2.0.5",
|
|
44
44
|
"react-hook-form": "^7.33.1",
|
|
45
45
|
"react-intersection-observer": "^9.4.0",
|
|
46
|
-
"react-leaflet": "^4.2.1",
|
|
47
46
|
"react-resizable": "^3.0.4",
|
|
48
47
|
"react-resizable-panels": "^2.1.8",
|
|
49
48
|
"react-rnd": "^10.5.2",
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type DeepShallowOptions = {
|
|
2
|
+
maxDepth?: number;
|
|
3
|
+
ignoreTypes?: Array<string>;
|
|
4
|
+
compareArrays?: boolean;
|
|
5
|
+
compareObjects?: boolean;
|
|
6
|
+
customComparers?: Record<string, (a: any, b: any) => boolean>;
|
|
7
|
+
log?: boolean;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Comparador con profundidad
|
|
11
|
+
*/
|
|
12
|
+
export declare const deepShallow: <T>(objA: T, objB: T, depth?: number, options?: DeepShallowOptions) => boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Crea una función de comparación profunda con opciones personalizadas
|
|
15
|
+
*/
|
|
16
|
+
export declare const createCustomDeepShallow: <T>(options?: DeepShallowOptions) => (objA: T, objB: T, depth?: number) => boolean;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
const deepShallow = (objA, objB, depth = 0, options) => {
|
|
2
|
+
const {
|
|
3
|
+
maxDepth = 10,
|
|
4
|
+
ignoreTypes = ["function"],
|
|
5
|
+
compareArrays = true,
|
|
6
|
+
compareObjects = true,
|
|
7
|
+
customComparers = {},
|
|
8
|
+
log = false
|
|
9
|
+
} = options || {};
|
|
10
|
+
if (log && process.env.NODE_ENV === "development" && depth === 0) {
|
|
11
|
+
console.log("deepShallow**", objA, objB, depth);
|
|
12
|
+
}
|
|
13
|
+
if (depth >= maxDepth) {
|
|
14
|
+
return Object.is(objA, objB);
|
|
15
|
+
}
|
|
16
|
+
if (objA === objB) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
if (objA == null || objB == null) {
|
|
20
|
+
return objA === objB;
|
|
21
|
+
}
|
|
22
|
+
if (typeof objA !== "object" || typeof objB !== "object") {
|
|
23
|
+
return objA === objB;
|
|
24
|
+
}
|
|
25
|
+
if (Array.isArray(objA) && Array.isArray(objB)) {
|
|
26
|
+
if (!compareArrays) {
|
|
27
|
+
return Object.is(objA, objB);
|
|
28
|
+
}
|
|
29
|
+
if (objA.length !== objB.length) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
for (let i = 0; i < objA.length; i++) {
|
|
33
|
+
if (!deepShallow(objA[i], objB[i], depth + 1, options)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
if (Array.isArray(objA) || Array.isArray(objB)) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
if (!compareObjects) {
|
|
43
|
+
return Object.is(objA, objB);
|
|
44
|
+
}
|
|
45
|
+
const keysA = Object.keys(objA);
|
|
46
|
+
const keysB = Object.keys(objB);
|
|
47
|
+
if (keysA.length !== keysB.length) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
for (let i = 0; i < keysA.length; i++) {
|
|
51
|
+
const key = keysA[i];
|
|
52
|
+
const valueA = objA[key];
|
|
53
|
+
const valueB = objB[key];
|
|
54
|
+
if (ignoreTypes.includes(typeof valueA)) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const valueType = typeof valueA;
|
|
58
|
+
if (customComparers[valueType]) {
|
|
59
|
+
if (!customComparers[valueType](valueA, valueB)) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (!deepShallow(valueA, valueB, depth + 1, options)) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
};
|
|
70
|
+
const createCustomDeepShallow = (options) => {
|
|
71
|
+
return (objA, objB, depth = 0) => deepShallow(objA, objB, depth, options);
|
|
72
|
+
};
|
|
73
|
+
export {
|
|
74
|
+
createCustomDeepShallow as c,
|
|
75
|
+
deepShallow as d
|
|
76
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PresentationTimeType, FormatDistanteToNowDictionary } from './types';
|
|
1
|
+
import { PresentationTimeType, FormatDistanteToNowDictionary, FormatDistanceToNowReturn } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* TODO: Documentar
|
|
4
4
|
*/
|
|
5
|
-
export declare const formatDistanceToNow: (type: PresentationTimeType, date: Date, dictionary: FormatDistanteToNowDictionary) =>
|
|
5
|
+
export declare const formatDistanceToNow: (type: PresentationTimeType, date: Date, dictionary: FormatDistanteToNowDictionary) => FormatDistanceToNowReturn;
|
|
@@ -9,7 +9,7 @@ const replaceValues = (label, ...values) => {
|
|
|
9
9
|
};
|
|
10
10
|
const formatDistanceToNow = (type, date, dictionary) => {
|
|
11
11
|
if (!(date instanceof Date)) {
|
|
12
|
-
return "No date";
|
|
12
|
+
return { time: "No date", value: "", unit: "" };
|
|
13
13
|
}
|
|
14
14
|
const now = /* @__PURE__ */ new Date();
|
|
15
15
|
const diff = now.getTime() - date.getTime();
|
|
@@ -19,6 +19,8 @@ const formatDistanceToNow = (type, date, dictionary) => {
|
|
|
19
19
|
const days = Math.floor(hours / 24);
|
|
20
20
|
const months = Math.floor(days / 30);
|
|
21
21
|
const years = Math.floor(months / 12);
|
|
22
|
+
let value;
|
|
23
|
+
let unit;
|
|
22
24
|
let timeElaped = "";
|
|
23
25
|
const unitYears = years > 1 ? dictionary.label_unit_time_years : dictionary.label_unit_time_year;
|
|
24
26
|
const unitMonths = months % 12 > 1 ? dictionary.label_unit_time_months : dictionary.label_unit_time_month;
|
|
@@ -32,6 +34,8 @@ const formatDistanceToNow = (type, date, dictionary) => {
|
|
|
32
34
|
} else if (type === "future") {
|
|
33
35
|
label = dictionary.label_sentence_future_others;
|
|
34
36
|
}
|
|
37
|
+
const separatorTime = ":";
|
|
38
|
+
const separatorDate = "-";
|
|
35
39
|
if (seconds < 60) {
|
|
36
40
|
if (type === "past") {
|
|
37
41
|
timeElaped = replaceValues(dictionary.label_sentence_past_seconds, seconds + "", unitSeconds);
|
|
@@ -48,34 +52,46 @@ const formatDistanceToNow = (type, date, dictionary) => {
|
|
|
48
52
|
unitSeconds
|
|
49
53
|
);
|
|
50
54
|
}
|
|
55
|
+
value = seconds.toString().padStart(2, "0") + "";
|
|
56
|
+
unit = dictionary.label_unit_time_seconds_short;
|
|
51
57
|
} else if (minutes < 60) {
|
|
52
58
|
timeElaped = replaceValues(label, `${minutes}`, unitMinutes);
|
|
59
|
+
value = minutes.toString().padStart(2, "0") + ":" + (seconds % 60).toString().padStart(2, "0");
|
|
60
|
+
unit = dictionary.label_unit_time_minutes_short + dictionary.label_separator_time + dictionary.label_unit_time_seconds_short;
|
|
53
61
|
} else if (hours < 24) {
|
|
54
62
|
if (minutes % 60 > 0) {
|
|
55
63
|
timeElaped = replaceValues(label, `${hours} ${unitHours} ${minutes % 60} ${unitMinutes}`, "");
|
|
56
64
|
} else {
|
|
57
65
|
timeElaped = replaceValues(label, `${hours} ${unitHours}`, "");
|
|
58
66
|
}
|
|
67
|
+
value = hours.toString().padStart(2, "0") + ":" + (minutes % 60).toString().padStart(2, "0");
|
|
68
|
+
unit = dictionary.label_unit_time_hours_short + separatorTime + dictionary.label_unit_time_minutes_short;
|
|
59
69
|
} else if (days < 30) {
|
|
60
70
|
if (hours % 24 > 0) {
|
|
61
71
|
timeElaped = replaceValues(label, `${days} ${unitDays} ${hours % 24} ${unitHours}`, "");
|
|
62
72
|
} else {
|
|
63
73
|
timeElaped = replaceValues(label, `${days} ${unitDays}`, "");
|
|
64
74
|
}
|
|
75
|
+
value = days.toString().padStart(2, "0") + " " + (hours % 24).toString().padStart(2, "0");
|
|
76
|
+
unit = dictionary.label_unit_time_days_short + " " + dictionary.label_unit_time_hours_short;
|
|
65
77
|
} else if (months < 12) {
|
|
66
78
|
if (days % 30 > 0) {
|
|
67
79
|
timeElaped = replaceValues(label, `${months} ${unitMonths} ${days % 30} ${unitDays}`, "");
|
|
68
80
|
} else {
|
|
69
81
|
timeElaped = replaceValues(label, `${months} ${unitMonths}`, "");
|
|
70
82
|
}
|
|
83
|
+
value = months.toString().padStart(2, "0") + separatorDate + (days % 30).toString().padStart(2, "0");
|
|
84
|
+
unit = dictionary.label_unit_time_months_short + separatorDate + dictionary.label_unit_time_days_short;
|
|
71
85
|
} else {
|
|
72
86
|
if (months % 12 > 0) {
|
|
73
87
|
timeElaped = replaceValues(label, `${years} ${unitYears} ${months % 12} ${unitMonths}`, "");
|
|
74
88
|
} else {
|
|
75
89
|
timeElaped = replaceValues(label, `${years} ${unitYears}`, "");
|
|
76
90
|
}
|
|
91
|
+
value = years.toString().padStart(2, "0") + separatorDate + (months % 12).toString().padStart(2, "0");
|
|
92
|
+
unit = dictionary.label_unit_time_years_short + separatorDate + dictionary.label_unit_time_months_short;
|
|
77
93
|
}
|
|
78
|
-
return timeElaped;
|
|
94
|
+
return { time: timeElaped, value, unit };
|
|
79
95
|
};
|
|
80
96
|
export {
|
|
81
97
|
formatDistanceToNow as f
|
|
@@ -13,9 +13,22 @@ export type FormatDistanteToNowDictionary = {
|
|
|
13
13
|
label_unit_time_month: string;
|
|
14
14
|
label_unit_time_year: string;
|
|
15
15
|
label_unit_time_seconds: string;
|
|
16
|
+
label_unit_time_seconds_short: string;
|
|
16
17
|
label_unit_time_minutes: string;
|
|
18
|
+
label_unit_time_minutes_short: string;
|
|
17
19
|
label_unit_time_hours: string;
|
|
20
|
+
label_unit_time_hours_short: string;
|
|
18
21
|
label_unit_time_days: string;
|
|
22
|
+
label_unit_time_days_short: string;
|
|
19
23
|
label_unit_time_months: string;
|
|
24
|
+
label_unit_time_months_short: string;
|
|
20
25
|
label_unit_time_years: string;
|
|
26
|
+
label_unit_time_years_short: string;
|
|
27
|
+
label_separator_time: string;
|
|
28
|
+
label_separator_date: string;
|
|
29
|
+
};
|
|
30
|
+
export type FormatDistanceToNowReturn = {
|
|
31
|
+
time: string;
|
|
32
|
+
value: string;
|
|
33
|
+
unit: string;
|
|
21
34
|
};
|
package/utils/index.d.ts
CHANGED