@m4l/components 9.1.79 → 9.1.80
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/components/extended/React-Splitter/SplitLayout/SplitLayout.d.ts +14 -0
- package/components/extended/React-Splitter/SplitLayout/SplitLayout.js +53 -0
- package/components/extended/React-Splitter/SplitLayout/SplitLayout.styles.d.ts +2 -0
- package/components/extended/React-Splitter/SplitLayout/SplitLayout.styles.js +157 -0
- package/components/extended/React-Splitter/SplitLayout/constants.d.ts +9 -0
- package/components/extended/React-Splitter/SplitLayout/constants.js +6 -0
- package/components/extended/React-Splitter/SplitLayout/slots/SplitLayoutEnum.d.ts +5 -0
- package/components/extended/React-Splitter/SplitLayout/slots/SplitLayoutEnum.js +9 -0
- package/components/extended/React-Splitter/SplitLayout/slots/SplitLayoutSlots.d.ts +3 -0
- package/components/extended/React-Splitter/SplitLayout/slots/SplitLayoutSlots.js +21 -0
- package/components/extended/React-Splitter/SplitLayout/tests/SplitLayout.test.d.ts +1 -0
- package/components/{SplitLayout → extended/React-Splitter/SplitLayout}/types.d.ts +11 -5
- package/components/index.d.ts +2 -2
- package/index.js +1 -1
- package/package.json +1 -1
- package/components/SplitLayout/SplitLayout.d.ts +0 -16
- package/components/SplitLayout/SplitLayout.js +0 -57
- package/components/SplitLayout/classes/constants.d.ts +0 -1
- package/components/SplitLayout/classes/constants.js +0 -4
- package/components/SplitLayout/classes/index.d.ts +0 -17
- package/components/SplitLayout/classes/index.js +0 -33
- package/components/SplitLayout/classes/types.d.ts +0 -10
- package/components/SplitLayout/index.d.ts +0 -2
- package/components/SplitLayout/styles.d.ts +0 -3
- package/components/SplitLayout/styles.js +0 -29
- package/components/SplitLayout/tests/constants.d.ts +0 -1
- package/components/SplitLayout/tests/constants.js +0 -4
- package/components/SplitLayout/tests/utils.d.ts +0 -2
- package/components/SplitLayout/tests/utils.js +0 -7
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SplitLayoutProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Componente SplitLayout refactorizado de la libreria `react-splitter-layout` que usa `SplitterLayout`.
|
|
4
|
+
* @param {SplitLayoutProps} props
|
|
5
|
+
* @example
|
|
6
|
+
* ```
|
|
7
|
+
* <SplitLayout
|
|
8
|
+
* splitPosition={isDesktop ? splitPosition : 'none'}
|
|
9
|
+
* firstPart={masterComponent}
|
|
10
|
+
* secondPart={detailComponent}
|
|
11
|
+
* />
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare const SplitLayout: (props: SplitLayoutProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { clsx } from "clsx";
|
|
3
|
+
import { S as SplitterLayout } from "../../../../internal_libs/react-splitter-layout.js";
|
|
4
|
+
import { g as getPropDataTestId } from "../../../../test/getNameDataTestId.js";
|
|
5
|
+
import { a as getComponentSlotRoot } from "../../../../utils/getComponentSlotRoot.js";
|
|
6
|
+
import { S as SplitLayoutRootStyled, a as SplitMasterStyled, b as SplitDetailStyled } from "./slots/SplitLayoutSlots.js";
|
|
7
|
+
import { S as SplitLayoutSlots } from "./slots/SplitLayoutEnum.js";
|
|
8
|
+
import { S as SPLIT_LAYOUT_PREFIX, a as SPLIT_LAYOUT_KEY_COMPONENT } from "./constants.js";
|
|
9
|
+
const SplitLayout = (props) => {
|
|
10
|
+
const {
|
|
11
|
+
splitPosition,
|
|
12
|
+
firstPart,
|
|
13
|
+
secondPart,
|
|
14
|
+
secondParrtInitialSize = 50,
|
|
15
|
+
percentage = true,
|
|
16
|
+
dataTestId,
|
|
17
|
+
className
|
|
18
|
+
} = props;
|
|
19
|
+
return /* @__PURE__ */ jsx(
|
|
20
|
+
SplitLayoutRootStyled,
|
|
21
|
+
{
|
|
22
|
+
...getPropDataTestId(SPLIT_LAYOUT_PREFIX, SplitLayoutSlots.root, dataTestId),
|
|
23
|
+
className: clsx(getComponentSlotRoot(SPLIT_LAYOUT_KEY_COMPONENT), className),
|
|
24
|
+
children: /* @__PURE__ */ jsxs(
|
|
25
|
+
SplitterLayout,
|
|
26
|
+
{
|
|
27
|
+
vertical: splitPosition === "vertical",
|
|
28
|
+
percentage,
|
|
29
|
+
secondaryInitialSize: secondParrtInitialSize,
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ jsx(
|
|
32
|
+
SplitMasterStyled,
|
|
33
|
+
{
|
|
34
|
+
...getPropDataTestId(SPLIT_LAYOUT_PREFIX, SplitLayoutSlots.splitMaster, dataTestId),
|
|
35
|
+
children: typeof firstPart === "function" ? firstPart() : firstPart
|
|
36
|
+
}
|
|
37
|
+
),
|
|
38
|
+
splitPosition !== "none" && /* @__PURE__ */ jsx(
|
|
39
|
+
SplitDetailStyled,
|
|
40
|
+
{
|
|
41
|
+
...getPropDataTestId(SPLIT_LAYOUT_PREFIX, SplitLayoutSlots.splitDetail, dataTestId),
|
|
42
|
+
children: typeof secondPart === "function" ? secondPart() : secondPart
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
};
|
|
51
|
+
export {
|
|
52
|
+
SplitLayout as S
|
|
53
|
+
};
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
const splitLayoutStyles = {
|
|
2
|
+
/**
|
|
3
|
+
* Estilos para root
|
|
4
|
+
*/
|
|
5
|
+
root: ({ theme }) => ({
|
|
6
|
+
display: "flex",
|
|
7
|
+
flexDirection: "column",
|
|
8
|
+
position: "relative",
|
|
9
|
+
flexGrow: 1,
|
|
10
|
+
overflow: "hidden",
|
|
11
|
+
// Configuracion por defecto en horizontal
|
|
12
|
+
"& .splitter-layout": {
|
|
13
|
+
position: "absolute",
|
|
14
|
+
display: "flex",
|
|
15
|
+
flexDirection: "row",
|
|
16
|
+
width: "100%",
|
|
17
|
+
height: "100%",
|
|
18
|
+
overflow: "hidden",
|
|
19
|
+
gap: theme.vars.size.baseSpacings.sp2
|
|
20
|
+
},
|
|
21
|
+
// Configuracion de ambos paneles a dividir
|
|
22
|
+
"& .splitter-layout .layout-pane": {
|
|
23
|
+
position: "relative",
|
|
24
|
+
flex: "0 0 auto",
|
|
25
|
+
overflow: "hidden"
|
|
26
|
+
},
|
|
27
|
+
// Configuración del panel principal
|
|
28
|
+
"& .splitter-layout .layout-pane.layout-pane-primary": {
|
|
29
|
+
flex: "1 1 auto"
|
|
30
|
+
},
|
|
31
|
+
// Configuración del cursor en horizontal
|
|
32
|
+
"& .splitter-layout.layout-changing": {
|
|
33
|
+
cursor: "col-resize"
|
|
34
|
+
},
|
|
35
|
+
// Configuración barran grande cuando es horizontal
|
|
36
|
+
"& .splitter-layout > .layout-splitter": {
|
|
37
|
+
display: "flex",
|
|
38
|
+
alignItems: "center",
|
|
39
|
+
backgroundColor: "none",
|
|
40
|
+
boxSizing: "border-box",
|
|
41
|
+
backgroundClip: "padding-box",
|
|
42
|
+
// Propiedades del horizontal
|
|
43
|
+
width: "8px",
|
|
44
|
+
margin: "0 0.5px",
|
|
45
|
+
borderLeft: "4px solid hsla(0, 0%, 5%, 0)",
|
|
46
|
+
borderRight: "4px solid hsla(0, 0%, 5%, 0)",
|
|
47
|
+
cursor: "col-resize",
|
|
48
|
+
justifyContent: "center",
|
|
49
|
+
height: "100%"
|
|
50
|
+
},
|
|
51
|
+
// Configuración divisorra interna posición horizontal del split
|
|
52
|
+
"& .splitter-layout .layout-splitter:before": {
|
|
53
|
+
content: `""`,
|
|
54
|
+
height: "56px",
|
|
55
|
+
width: "4px",
|
|
56
|
+
top: "calc(50% - 22.5px)",
|
|
57
|
+
position: "absolute",
|
|
58
|
+
background: theme.vars.palette.primary.enabled,
|
|
59
|
+
borderRadius: theme.vars.size.borderRadius["r0-5"],
|
|
60
|
+
margin: "1px 0px"
|
|
61
|
+
},
|
|
62
|
+
// Hover de la barra externa en posición horizontal
|
|
63
|
+
"& .splitter-layout > .layout-splitter:hover": {
|
|
64
|
+
borderRadius: "2px",
|
|
65
|
+
borderLeft: `2px`,
|
|
66
|
+
borderRight: `2px`
|
|
67
|
+
},
|
|
68
|
+
// Configuración del cursor en horizontal
|
|
69
|
+
"& .splitter-layout.splitter-layout-vertical.layout-changing": {
|
|
70
|
+
cursor: "row-resize"
|
|
71
|
+
},
|
|
72
|
+
// Barra divisora vertical del split
|
|
73
|
+
"& .splitter-layout.splitter-layout-vertical > .layout-splitter": {
|
|
74
|
+
height: theme.vars.size.baseSpacings.sp2,
|
|
75
|
+
width: "100% !important",
|
|
76
|
+
margin: "1px 0",
|
|
77
|
+
cursor: "row-resize"
|
|
78
|
+
},
|
|
79
|
+
// Configuración barra divisora interna vertical del split
|
|
80
|
+
"& .splitter-layout.splitter-layout-vertical .layout-splitter:before": {
|
|
81
|
+
width: "56px !important",
|
|
82
|
+
height: "4px !important",
|
|
83
|
+
left: "calc(50% - 22.5px)",
|
|
84
|
+
top: "unset",
|
|
85
|
+
background: theme.vars.palette.primary.enabled,
|
|
86
|
+
borderRadius: "2px",
|
|
87
|
+
zIndex: "1"
|
|
88
|
+
},
|
|
89
|
+
// Color del hover y el arrastrando del splitter
|
|
90
|
+
"& .splitter-layout > .layout-splitter:hover:before, .splitter-layout.layout-changing > .layout-splitter:before": {
|
|
91
|
+
// barra interna vertical
|
|
92
|
+
background: theme.vars.palette.primary.hover
|
|
93
|
+
},
|
|
94
|
+
// Dirección flex cuando es vertical
|
|
95
|
+
"& .splitter-layout.splitter-layout-vertical": {
|
|
96
|
+
flexDirection: "column",
|
|
97
|
+
position: "relative",
|
|
98
|
+
"& .layout-splitter:after": {
|
|
99
|
+
content: `""`,
|
|
100
|
+
height: "2px",
|
|
101
|
+
left: "0",
|
|
102
|
+
right: "0",
|
|
103
|
+
/* top: 'calc(50% - 6px)', */
|
|
104
|
+
position: "absolute",
|
|
105
|
+
background: theme.vars.palette?.border.default
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"& .splitter-layout:not(.splitter-layout-vertical)": {
|
|
109
|
+
"& .layout-splitter:after": {
|
|
110
|
+
content: `""`,
|
|
111
|
+
width: "2px",
|
|
112
|
+
top: "0",
|
|
113
|
+
bottom: "0",
|
|
114
|
+
position: "absolute",
|
|
115
|
+
background: theme.vars.palette?.border.default
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}),
|
|
119
|
+
/**
|
|
120
|
+
* SplitMaster firstPart
|
|
121
|
+
*/
|
|
122
|
+
splitMaster: () => ({
|
|
123
|
+
position: "relative",
|
|
124
|
+
width: "100%",
|
|
125
|
+
height: "100%",
|
|
126
|
+
display: "flex",
|
|
127
|
+
flexDirection: "column",
|
|
128
|
+
overflow: "hidden",
|
|
129
|
+
"& .M4LStack-root": {
|
|
130
|
+
gap: "8px"
|
|
131
|
+
}
|
|
132
|
+
}),
|
|
133
|
+
/**
|
|
134
|
+
* SplitMaster secondPart
|
|
135
|
+
*/
|
|
136
|
+
splitDetail: () => ({
|
|
137
|
+
position: "relative",
|
|
138
|
+
width: "100%",
|
|
139
|
+
height: "100%",
|
|
140
|
+
display: "flex",
|
|
141
|
+
flexDirection: "column",
|
|
142
|
+
justifyContent: "center",
|
|
143
|
+
alignItems: "center",
|
|
144
|
+
overflow: "hidden",
|
|
145
|
+
left: "0px",
|
|
146
|
+
right: "0px",
|
|
147
|
+
top: "0px",
|
|
148
|
+
bottom: "0px",
|
|
149
|
+
"& .M4LStack-root": {
|
|
150
|
+
//gap: '8px',
|
|
151
|
+
overflow: "hidden"
|
|
152
|
+
}
|
|
153
|
+
})
|
|
154
|
+
};
|
|
155
|
+
export {
|
|
156
|
+
splitLayoutStyles as s
|
|
157
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clave de identificación del componente SplitLayout dentro del sistema.
|
|
3
|
+
*
|
|
4
|
+
* Esta constante se utiliza como identificador único para asociar y personalizar estilos y configuraciones
|
|
5
|
+
* relacionadas con el componente `SplitLayout` dentro del sistema de temas y estilos.
|
|
6
|
+
* @default 'SplitLayout'
|
|
7
|
+
*/
|
|
8
|
+
export declare const SPLIT_LAYOUT_KEY_COMPONENT = "M4LSplitLayout";
|
|
9
|
+
export declare const SPLIT_LAYOUT_PREFIX = "M4LSplitLayout";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
var SplitLayoutSlots = /* @__PURE__ */ ((SplitLayoutSlots2) => {
|
|
2
|
+
SplitLayoutSlots2["root"] = "root";
|
|
3
|
+
SplitLayoutSlots2["splitMaster"] = "splitMaster";
|
|
4
|
+
SplitLayoutSlots2["splitDetail"] = "splitDetail";
|
|
5
|
+
return SplitLayoutSlots2;
|
|
6
|
+
})(SplitLayoutSlots || {});
|
|
7
|
+
export {
|
|
8
|
+
SplitLayoutSlots as S
|
|
9
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const SplitLayoutRootStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown>, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').HTMLAttributes<HTMLDivElement> | keyof import('react').ClassAttributes<HTMLDivElement>>, {}>;
|
|
2
|
+
export declare const SplitMasterStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown>, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').HTMLAttributes<HTMLDivElement> | keyof import('react').ClassAttributes<HTMLDivElement>>, {}>;
|
|
3
|
+
export declare const SplitDetailStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown>, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').HTMLAttributes<HTMLDivElement> | keyof import('react').ClassAttributes<HTMLDivElement>>, {}>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { styled } from "@mui/material/styles";
|
|
2
|
+
import { s as splitLayoutStyles } from "../SplitLayout.styles.js";
|
|
3
|
+
import { a as SPLIT_LAYOUT_KEY_COMPONENT } from "../constants.js";
|
|
4
|
+
import { S as SplitLayoutSlots } from "./SplitLayoutEnum.js";
|
|
5
|
+
const SplitLayoutRootStyled = styled("div", {
|
|
6
|
+
name: SPLIT_LAYOUT_KEY_COMPONENT,
|
|
7
|
+
slot: SplitLayoutSlots.root
|
|
8
|
+
})(splitLayoutStyles.root);
|
|
9
|
+
const SplitMasterStyled = styled("div", {
|
|
10
|
+
name: SPLIT_LAYOUT_KEY_COMPONENT,
|
|
11
|
+
slot: SplitLayoutSlots.splitMaster
|
|
12
|
+
})(splitLayoutStyles.splitMaster);
|
|
13
|
+
const SplitDetailStyled = styled("div", {
|
|
14
|
+
name: SPLIT_LAYOUT_KEY_COMPONENT,
|
|
15
|
+
slot: SplitLayoutSlots.splitDetail
|
|
16
|
+
})(splitLayoutStyles.splitDetail);
|
|
17
|
+
export {
|
|
18
|
+
SplitLayoutRootStyled as S,
|
|
19
|
+
SplitMasterStyled as a,
|
|
20
|
+
SplitDetailStyled as b
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
+
import { Theme } from '@mui/material';
|
|
3
|
+
import { M4LOverridesStyleRules } from 'src/@types/augmentations';
|
|
4
|
+
import { SplitLayoutSlots as slots } from './slots/SplitLayoutEnum';
|
|
5
|
+
import { SPLIT_LAYOUT_KEY_COMPONENT } from './constants';
|
|
2
6
|
export type SplitPosition = 'vertical' | 'horizontal' | 'none';
|
|
3
7
|
/** Es una interfaz que define las propiedades aceptadas por el componente SplitLayout. */
|
|
4
8
|
export interface SplitLayoutProps {
|
|
@@ -9,12 +13,14 @@ export interface SplitLayoutProps {
|
|
|
9
13
|
/** permite establecer un tamaño inicial específico para la segunda parte del diseño dividido.*/
|
|
10
14
|
secondParrtInitialSize?: number;
|
|
11
15
|
/**representa el contenido o componente que se mostrará en la primera parte de la interfaz de usuario. */
|
|
12
|
-
firstPart
|
|
16
|
+
firstPart?: ((props?: any) => JSX.Element) | ReactNode;
|
|
13
17
|
/** representa el contenido o componente que se mostrará en la segunda parte de la interfaz de usuario,la parte sea de abajo o a la derecha*/
|
|
14
|
-
secondPart
|
|
18
|
+
secondPart?: ((props?: any) => JSX.Element) | ReactNode;
|
|
15
19
|
/** se utiliza para permitir que el componente SplitLayout reciba clases CSS personalizadas desde el componente padre, lo que permite una mayor flexibilidad en la estilización de este componente.*/
|
|
16
20
|
className?: string;
|
|
21
|
+
/**
|
|
22
|
+
* se utiliza el `dataTestId` para las pruebas unitarias
|
|
23
|
+
*/
|
|
24
|
+
dataTestId?: string;
|
|
17
25
|
}
|
|
18
|
-
|
|
19
|
-
* En este contexto OwnerState está siendo utilizado para almacenar información sobre la posición de la división en el diseño dividido, para controlar cómo se visualiza o se comporta el diseño dividido en la interfaz de usuario */
|
|
20
|
-
export type OwnerState = Pick<SplitLayoutProps, 'splitPosition'>;
|
|
26
|
+
export type SplitLayoutStyles = M4LOverridesStyleRules<keyof typeof slots, typeof SPLIT_LAYOUT_KEY_COMPONENT, Theme>;
|
package/components/index.d.ts
CHANGED
|
@@ -43,7 +43,7 @@ export type { MenuAction, ComponentActionProps } from './MenuActions/types';
|
|
|
43
43
|
export * from './extended/React-Resizable';
|
|
44
44
|
export * from './ScrollBar';
|
|
45
45
|
export { ScrollToTop } from './ScrollToTop';
|
|
46
|
-
export * from './SplitLayout/SplitLayout';
|
|
46
|
+
export * from './extended/React-Splitter/SplitLayout/SplitLayout';
|
|
47
47
|
export * from './ToastContainer';
|
|
48
48
|
export * from './SideBar';
|
|
49
49
|
export * from './AppBar';
|
|
@@ -53,6 +53,6 @@ export * from './popups';
|
|
|
53
53
|
export * from './commercial';
|
|
54
54
|
export * from './MFIsolationApp';
|
|
55
55
|
export * from './BaseModule';
|
|
56
|
-
export type { SplitPosition } from './SplitLayout/types';
|
|
56
|
+
export type { SplitPosition } from './extended/React-Splitter/SplitLayout/types';
|
|
57
57
|
export * from './mui_extended';
|
|
58
58
|
export * from './WindowBase';
|
package/index.js
CHANGED
|
@@ -131,7 +131,7 @@ import { a as a10, M as M11 } from "./components/MenuActions/MenuActions.js";
|
|
|
131
131
|
import { R as R16 } from "./components/extended/React-Resizable/Resizable/Resizable.js";
|
|
132
132
|
import { R as R17 } from "./components/extended/React-Resizable/ResizableBox/ResizableBox.js";
|
|
133
133
|
import { S as S3 } from "./components/ScrollBar/index.js";
|
|
134
|
-
import { S as S4 } from "./components/SplitLayout/SplitLayout.js";
|
|
134
|
+
import { S as S4 } from "./components/extended/React-Splitter/SplitLayout/SplitLayout.js";
|
|
135
135
|
import { T as T3 } from "./components/ToastContainer/ToastContainer.js";
|
|
136
136
|
import { T as T4 } from "./components/ToastContainer/subcomponents/ToastMessage/ToastMessage.js";
|
|
137
137
|
import { S as S5 } from "./components/SideBar/SideBar.js";
|
package/package.json
CHANGED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { SplitLayoutProps } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Propiedades para el componente SplitLayout.
|
|
4
|
-
* @param {SplitLayoutProps} props
|
|
5
|
-
* splitPosition - determina la orientación de la división entre las dos partes de la interfaz de usuario. Puede tener tres valores: "vertical", "horizontal" o "none".
|
|
6
|
-
* props.firstPart - representa el contenido o componente que se mostrará en la primera parte de la interfaz de usuario.
|
|
7
|
-
* props.secondPart - Esta propiedad representa el contenido o componente que se mostrará en la segunda parte de la interfaz de usuario,la parte sea de abajo o a la derecha
|
|
8
|
-
* props.secondParrtInitialSize - te permite establecer un tamaño inicial específico para la segunda parte del diseño dividido.
|
|
9
|
-
* props.percentage - La propiedad percentage en la interfaz SplitLayoutProps indica si el tamaño inicial de la segunda parte del diseño dividido se proporciona en porcentaje en lugar de píxeles.
|
|
10
|
-
* props.className - se utiliza para permitir que el componente SplitLayout reciba clases CSS personalizadas desde el componente padre, lo que permite una mayor flexibilidad en la estilización de este componente.
|
|
11
|
-
* @returns
|
|
12
|
-
*/
|
|
13
|
-
/**
|
|
14
|
-
* TODO: Documentar
|
|
15
|
-
*/
|
|
16
|
-
export declare function SplitLayout(props: SplitLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { S as SplitLayoutRoot, a as SplitMaster, b as SplitDetail } from "./styles.js";
|
|
3
|
-
import { u as useSplitLayoutUtilityClasses } from "./classes/index.js";
|
|
4
|
-
import clsx from "clsx";
|
|
5
|
-
import { T as TEST_PROP_ID } from "../../test/constants_no_mock.js";
|
|
6
|
-
import { g as getNameSplitLayoutDataTestId } from "./tests/utils.js";
|
|
7
|
-
import { S as SplitterLayout } from "../../internal_libs/react-splitter-layout.js";
|
|
8
|
-
function SplitLayout(props) {
|
|
9
|
-
const {
|
|
10
|
-
splitPosition,
|
|
11
|
-
firstPart,
|
|
12
|
-
secondPart,
|
|
13
|
-
secondParrtInitialSize = 50,
|
|
14
|
-
percentage = true,
|
|
15
|
-
className
|
|
16
|
-
} = props;
|
|
17
|
-
const ownerState = {
|
|
18
|
-
splitPosition
|
|
19
|
-
};
|
|
20
|
-
const classes = useSplitLayoutUtilityClasses(ownerState);
|
|
21
|
-
return /* @__PURE__ */ jsx(
|
|
22
|
-
SplitLayoutRoot,
|
|
23
|
-
{
|
|
24
|
-
className: clsx(classes.root, className),
|
|
25
|
-
...process.env.NODE_ENV !== "production" ? { [TEST_PROP_ID]: getNameSplitLayoutDataTestId("root") } : {},
|
|
26
|
-
children: SplitterLayout ? /* @__PURE__ */ jsxs(
|
|
27
|
-
SplitterLayout,
|
|
28
|
-
{
|
|
29
|
-
vertical: splitPosition === "vertical",
|
|
30
|
-
percentage,
|
|
31
|
-
secondaryInitialSize: secondParrtInitialSize,
|
|
32
|
-
children: [
|
|
33
|
-
/* @__PURE__ */ jsx(
|
|
34
|
-
SplitMaster,
|
|
35
|
-
{
|
|
36
|
-
className: classes.firstPart,
|
|
37
|
-
...process.env.NODE_ENV !== "production" ? { [TEST_PROP_ID]: getNameSplitLayoutDataTestId("firstPart") } : {},
|
|
38
|
-
children: typeof firstPart === "function" ? firstPart() : firstPart
|
|
39
|
-
}
|
|
40
|
-
),
|
|
41
|
-
splitPosition !== "none" && /* @__PURE__ */ jsx(
|
|
42
|
-
SplitDetail,
|
|
43
|
-
{
|
|
44
|
-
className: classes.secondPart,
|
|
45
|
-
...process.env.NODE_ENV !== "production" ? { [TEST_PROP_ID]: getNameSplitLayoutDataTestId("secondPart") } : {},
|
|
46
|
-
children: typeof secondPart === "function" ? secondPart() : secondPart
|
|
47
|
-
}
|
|
48
|
-
)
|
|
49
|
-
]
|
|
50
|
-
}
|
|
51
|
-
) : null
|
|
52
|
-
}
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
export {
|
|
56
|
-
SplitLayout as S
|
|
57
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const componentName = "M4LSplitLayout";
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { SplitLayoutClassesType } from './types';
|
|
2
|
-
import { OwnerState } from '../types';
|
|
3
|
-
/**
|
|
4
|
-
* Esta es una constante que se está exportando y que contiene las clases de estilo generadas para el componente SplitLayout.
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
export declare const splitLayoutClasses: SplitLayoutClassesType;
|
|
8
|
-
export declare function getSplitLayoutUtilityClass(slot: string): string;
|
|
9
|
-
/**
|
|
10
|
-
* Es un hook que facilita la gestión de clases de estilo para el componente SplitLayout, permitiendo una mayor flexibilidad en la aplicación de estilos basados en el estado del propietario.
|
|
11
|
-
* @param {OwnerState} ownerState - El estado del propietario del componente SplitLayout.
|
|
12
|
-
*/
|
|
13
|
-
export declare const useSplitLayoutUtilityClasses: (ownerState: OwnerState) => {
|
|
14
|
-
root: string;
|
|
15
|
-
firstPart: string;
|
|
16
|
-
secondPart: string;
|
|
17
|
-
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { generateUtilityClasses, generateUtilityClass } from "@mui/material";
|
|
2
|
-
import { unstable_composeClasses } from "@mui/base";
|
|
3
|
-
import { c as componentName } from "./constants.js";
|
|
4
|
-
generateUtilityClasses(componentName, [
|
|
5
|
-
/* elements */
|
|
6
|
-
"root",
|
|
7
|
-
"firstPart",
|
|
8
|
-
"secondPart",
|
|
9
|
-
/* states or variants of elements */
|
|
10
|
-
"stateVertical",
|
|
11
|
-
"stateHorizontal"
|
|
12
|
-
]);
|
|
13
|
-
function getSplitLayoutUtilityClass(slot) {
|
|
14
|
-
return generateUtilityClass(componentName, slot);
|
|
15
|
-
}
|
|
16
|
-
const useSplitLayoutUtilityClasses = (ownerState) => {
|
|
17
|
-
const slots = {
|
|
18
|
-
root: [
|
|
19
|
-
"root",
|
|
20
|
-
ownerState.splitPosition === "vertical" && "stateVertical",
|
|
21
|
-
ownerState.splitPosition === "horizontal" && "stateHorizontal"
|
|
22
|
-
],
|
|
23
|
-
firstPart: ["firstPart"],
|
|
24
|
-
secondPart: ["secondPart"]
|
|
25
|
-
};
|
|
26
|
-
const composedClasses = unstable_composeClasses(slots, getSplitLayoutUtilityClass, {});
|
|
27
|
-
return {
|
|
28
|
-
...composedClasses
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
export {
|
|
32
|
-
useSplitLayoutUtilityClasses as u
|
|
33
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { useSplitLayoutUtilityClasses } from './index';
|
|
2
|
-
export interface SplitLayoutClassesType {
|
|
3
|
-
root: string;
|
|
4
|
-
firstPart: string;
|
|
5
|
-
secondPart: string;
|
|
6
|
-
stateVertical: string;
|
|
7
|
-
stateHorizontal: string;
|
|
8
|
-
}
|
|
9
|
-
export type SplitLayoutClassesKey = keyof SplitLayoutClassesType;
|
|
10
|
-
export type Classes = ReturnType<typeof useSplitLayoutUtilityClasses>;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare const SplitLayoutRoot: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
2
|
-
export declare const SplitMaster: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
3
|
-
export declare const SplitDetail: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { styled } from "@mui/material";
|
|
2
|
-
const SplitLayoutRoot = styled("div")(({ theme }) => ({
|
|
3
|
-
...theme.components?.M4LSplitLayout?.styleOverrides || {}
|
|
4
|
-
}));
|
|
5
|
-
const SplitMaster = styled("div")(() => ({
|
|
6
|
-
display: "flex",
|
|
7
|
-
flexDirection: "column",
|
|
8
|
-
position: "relative",
|
|
9
|
-
width: "100%",
|
|
10
|
-
height: "100%",
|
|
11
|
-
overflow: "hidden"
|
|
12
|
-
}));
|
|
13
|
-
const SplitDetail = styled("div")(() => ({
|
|
14
|
-
display: "flex",
|
|
15
|
-
flexDirection: "column",
|
|
16
|
-
justifyContent: "center",
|
|
17
|
-
alignItems: "center",
|
|
18
|
-
overflow: "hidden",
|
|
19
|
-
position: "absolute",
|
|
20
|
-
left: "0px",
|
|
21
|
-
right: "0px",
|
|
22
|
-
top: "0px",
|
|
23
|
-
bottom: "0px"
|
|
24
|
-
}));
|
|
25
|
-
export {
|
|
26
|
-
SplitLayoutRoot as S,
|
|
27
|
-
SplitMaster as a,
|
|
28
|
-
SplitDetail as b
|
|
29
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const SPLITLAYOUT_PREFIX = "M4LSplitLayout";
|