@m4l/components 9.3.29 → 9.3.30-JA.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.
Files changed (62) hide show
  1. package/components/DynamicFilter/subcomponents/FieldTypes/BooleanFilter/helpers.d.ts +3 -2
  2. package/components/DynamicFilter/subcomponents/FieldTypes/BooleanFilter/helpers.js +3 -2
  3. package/components/DynamicFilter/subcomponents/FieldTypes/DateTimeFilter/helpers.d.ts +3 -2
  4. package/components/DynamicFilter/subcomponents/FieldTypes/DateTimeFilter/helpers.js +3 -2
  5. package/components/DynamicFilter/subcomponents/FieldTypes/FieldTypeInterface.d.ts +3 -4
  6. package/components/DynamicFilter/subcomponents/FieldTypes/NumberFilter/helpers.d.ts +3 -2
  7. package/components/DynamicFilter/subcomponents/FieldTypes/NumberFilter/helpers.js +3 -2
  8. package/components/DynamicFilter/subcomponents/FieldTypes/SelectAsyncFilter/helpers.d.ts +3 -2
  9. package/components/DynamicFilter/subcomponents/FieldTypes/SelectAsyncFilter/helpers.js +3 -2
  10. package/components/DynamicFilter/subcomponents/FieldTypes/SelectFilter/helpers.d.ts +3 -2
  11. package/components/DynamicFilter/subcomponents/FieldTypes/SelectFilter/helpers.js +3 -2
  12. package/components/DynamicFilter/subcomponents/FieldTypes/StringFilter/helpers.d.ts +3 -2
  13. package/components/DynamicFilter/subcomponents/FieldTypes/StringFilter/helpers.js +3 -2
  14. package/components/DynamicFilter/subcomponents/PopoverFilter/PopoverFilter.js +1 -1
  15. package/components/DynamicFilter/subcomponents/PopoverFilter/usePopoverFilter.d.ts +1 -7
  16. package/components/DynamicSort/subcomponents/FieldTypes/FieldTypeInterface.d.ts +2 -3
  17. package/components/DynamicSort/subcomponents/FieldTypes/StringSort/helpers.d.ts +3 -2
  18. package/components/DynamicSort/subcomponents/FieldTypes/StringSort/helpers.js +3 -2
  19. package/components/DynamicSort/subcomponents/PopoverSort/PopoverSort.js +1 -1
  20. package/components/DynamicSort/subcomponents/PopoverSort/usePopoverSort.d.ts +1 -7
  21. package/components/areas/components/AreasAdmin/subcomponents/AreaChip/AreaChip.js +4 -3
  22. package/components/areas/components/AreasAdmin/subcomponents/AreaChipMobile/subcomponents/ChipMobile/ChipMobile.js +4 -3
  23. package/components/areas/contexts/AreasContext/store.js +2 -2
  24. package/components/hook-form/RHFormProvider/RHFormProvider.d.ts +31 -0
  25. package/components/hook-form/RHFormProvider/RHFormProvider.js +93 -0
  26. package/components/hook-form/RHFormProvider/index.d.ts +4 -0
  27. package/components/hook-form/RHFormProvider/index.js +1 -0
  28. package/components/hook-form/RHFormProvider/schema.d.ts +17 -0
  29. package/components/hook-form/RHFormProvider/schema.js +29 -0
  30. package/components/hook-form/RHFormProvider/types.d.ts +129 -0
  31. package/components/hook-form/RHFormProvider/types.js +8 -0
  32. package/components/hook-form/index.d.ts +1 -0
  33. package/contexts/index.d.ts +3 -3
  34. package/helpers/getStepsAndValidationSchema/getStepsAndValidationSchema.d.ts +3 -3
  35. package/helpers/getStepsAndValidationSchema/getStepsAndValidationSchema.js +3 -3
  36. package/helpers/getStepsAndValidationSchema/types.d.ts +5 -4
  37. package/hooks/index.d.ts +1 -0
  38. package/hooks/useFormAddEdit/index.d.ts +1 -1
  39. package/hooks/useWatchTyped/index.d.ts +1 -0
  40. package/hooks/useWatchTyped/index.js +1 -0
  41. package/hooks/useWatchTyped/types.d.ts +11 -0
  42. package/hooks/useWatchTyped/useTypedWatch.d.ts +9 -0
  43. package/hooks/useWatchTyped/useTypedWatch.js +30 -0
  44. package/index.js +46 -35
  45. package/package.json +1 -1
  46. package/components/hook-form/RHFormContext/index.d.ts +0 -120
  47. package/components/hook-form/RHFormContext/index.js +0 -91
  48. package/components/hook-form/RHFormContext/types.d.ts +0 -83
  49. package/hooks/useFormReadyForUpdate/types.d.ts +0 -8
  50. /package/components/hook-form/{RHFormContext → RHFormProvider}/classes/constants.d.ts +0 -0
  51. /package/components/hook-form/{RHFormContext → RHFormProvider}/classes/constants.js +0 -0
  52. /package/components/hook-form/{RHFormContext → RHFormProvider}/classes/index.d.ts +0 -0
  53. /package/components/hook-form/{RHFormContext → RHFormProvider}/classes/index.js +0 -0
  54. /package/components/hook-form/{RHFormContext → RHFormProvider}/classes/types.d.ts +0 -0
  55. /package/components/hook-form/{RHFormContext → RHFormProvider}/dictionary.d.ts +0 -0
  56. /package/components/hook-form/{RHFormContext → RHFormProvider}/dictionary.js +0 -0
  57. /package/components/hook-form/{RHFormContext → RHFormProvider}/styles.d.ts +0 -0
  58. /package/components/hook-form/{RHFormContext → RHFormProvider}/styles.js +0 -0
  59. /package/components/hook-form/{RHFormContext → RHFormProvider}/subcomponents/FormActions/index.d.ts +0 -0
  60. /package/components/hook-form/{RHFormContext → RHFormProvider}/subcomponents/FormActions/skeleton.d.ts +0 -0
  61. /package/components/hook-form/{RHFormContext → RHFormProvider}/subcomponents/FormActions/styles.d.ts +0 -0
  62. /package/components/hook-form/{RHFormContext → RHFormProvider}/subcomponents/FormActions/types.d.ts +0 -0
@@ -1,120 +0,0 @@
1
- import { FieldValues } from 'react-hook-form';
2
- import { CustomFormArguments, FormProviderProps, RHFormProviderRef } from './types';
3
- /**
4
- * Hook personalizado que configura y gestiona un formulario usando React Hook Form con validación Yup.
5
- *
6
- * Este hook encapsula la lógica de inicialización del formulario, incluyendo la configuración del resolver de Yup,
7
- * valores por defecto, y la gestión de estados de carga para actualizar valores del formulario.
8
- * @param validationSchema - Esquema de validación de Yup que define las reglas de validación del formulario
9
- * @param values - Valores iniciales del formulario
10
- * @param statusLoad - Estado de carga que determina cuándo actualizar los valores del formulario
11
- * @param mode - Modo de validación del formulario (ej: 'onChange', 'onBlur', 'onSubmit')
12
- * @returns Objeto con todos los métodos y propiedades de React Hook Form
13
- * @example
14
- * ```tsx
15
- * const formMethods = useCustomForm({
16
- * validationSchema: myValidationSchema,
17
- * values: { name: '', email: '' },
18
- * statusLoad: 'ready',
19
- * mode: 'onChange'
20
- * });
21
- * ```
22
- */
23
- export declare function useCustomForm({ validationSchema, values, statusLoad, mode, }: CustomFormArguments): import('react-hook-form').UseFormReturn<FieldValues, any, FieldValues>;
24
- /**
25
- * Componente que proporciona el contexto de React Hook Form con funcionalidades adicionales.
26
- *
27
- * Este componente envuelve el `FormProvider` de React Hook Form y expone métodos del formulario
28
- * a través de una ref usando `useImperativeHandle`. Permite acceso programático a métodos
29
- * como submit, reset, setValue, etc.
30
- * @param props - Propiedades del componente que incluyen los métodos de React Hook Form
31
- * @param ref - Referencia que expone los métodos del formulario
32
- * @returns JSX del FormProvider con el formulario envuelto
33
- * @example
34
- * ```tsx
35
- * const formRef = useRef<RHFormProviderRef>(null);
36
- *
37
- * const handleReset = () => {
38
- * formRef.current?.reset();
39
- * };
40
- *
41
- * return (
42
- * <FormProviderCustom
43
- * ref={formRef}
44
- * onSubmit={handleSubmit}
45
- * {...formMethods}
46
- * >
47
- * <input {...register('name')} />
48
- * </FormProviderCustom>
49
- * );
50
- * ```
51
- */
52
- export declare const FormProviderCustom: import('react').ForwardRefExoticComponent<{
53
- children: React.ReactNode | React.ReactNode[];
54
- } & import('react-hook-form').UseFormReturn<FieldValues, any, FieldValues> & FormProviderProps & import('react').RefAttributes<RHFormProviderRef>>;
55
- /**
56
- * Componente principal que gestiona el `Provider` de `react-hook-form` y encapsula el formulario para la creación de formularios personalizados.
57
- *
58
- * Este componente utiliza internamente `useForm` para inicializar todos los métodos necesarios para la manipulación del formulario,
59
- * incluyendo validación con Yup, gestión de estados de carga, y exposición de métodos a través de refs.
60
- *
61
- * **Características principales:**
62
- * - Integración completa con React Hook Form
63
- * - Validación automática usando esquemas de Yup
64
- * - Gestión de estados de carga para actualización de valores
65
- * - Exposición de métodos del formulario a través de refs
66
- * - Soporte para diferentes modos de validación
67
- *
68
- * Si necesitas acceso directo a los métodos de `useForm`, puedes utilizar el `Provider` y el hook por separado mediante
69
- * `FormProviderCustom` y `useCustomForm`, respectivamente.
70
- * @param props - Propiedades del componente
71
- * @param props.children - Elementos hijos del formulario
72
- * @param props.onSubmit - Función que se ejecuta al enviar el formulario
73
- * @param props.values - Valores iniciales del formulario
74
- * @param props.validationSchema - Esquema de validación de Yup
75
- * @param props.statusLoad - Estado de carga del formulario (opcional, por defecto 'ready')
76
- * @param props.className - Clases CSS adicionales (opcional)
77
- * @param props.mode - Modo de validación del formulario (opcional)
78
- * @param ref - Referencia que expone los métodos del formulario
79
- * @returns JSX del formulario con contexto de React Hook Form
80
- * @example
81
- * ```tsx
82
- * import { useRef } from 'react';
83
- * import { RHFormProvider, RHFormProviderRef } from './RHFormContext';
84
- * import * as yup from 'yup';
85
- *
86
- * const schema = yup.object({
87
- * name: yup.string().required('El nombre es requerido'),
88
- * email: yup.string().email('Email inválido').required('El email es requerido')
89
- * });
90
- *
91
- * const MyForm = () => {
92
- * const formRef = useRef<RHFormProviderRef>(null);
93
- *
94
- * const handleSubmit = (data: any) => {
95
- * console.log('Datos del formulario:', data);
96
- * };
97
- *
98
- * const handleReset = () => {
99
- * formRef.current?.reset();
100
- * };
101
- *
102
- * return (
103
- * <RHFormProvider
104
- * ref={formRef}
105
- * onSubmit={handleSubmit}
106
- * values={{ name: '', email: '' }}
107
- * validationSchema={schema}
108
- * statusLoad="ready"
109
- * mode="onChange"
110
- * >
111
- * <input {...register('name')} placeholder="Nombre" />
112
- * <input {...register('email')} placeholder="Email" />
113
- * <button type="submit">Enviar</button>
114
- * <button type="button" onClick={handleReset}>Resetear</button>
115
- * </RHFormProvider>
116
- * );
117
- * };
118
- * ```
119
- */
120
- export declare const RHFormProvider: import('react').ForwardRefExoticComponent<FormProviderProps & import('react').RefAttributes<RHFormProviderRef>>;
@@ -1,91 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { forwardRef, useImperativeHandle, useEffect } from "react";
3
- import clsx from "clsx";
4
- import { FormProvider, useForm } from "react-hook-form";
5
- import { yupResolver } from "@hookform/resolvers/yup";
6
- import { F as FormProviderRoot } from "./styles.js";
7
- import { R as RHFormProviderUtilityClasses } from "./classes/index.js";
8
- const classes = RHFormProviderUtilityClasses();
9
- function useCustomForm({
10
- validationSchema,
11
- values,
12
- statusLoad,
13
- mode
14
- }) {
15
- const formMethods = useForm({
16
- resolver: yupResolver(validationSchema),
17
- defaultValues: values,
18
- ...mode && { mode }
19
- });
20
- useEffect(() => {
21
- if (statusLoad === "reload_values_provider") {
22
- const keys = Object.keys(values);
23
- keys.forEach((key) => {
24
- formMethods.setValue(key, values[key], {
25
- shouldValidate: false,
26
- shouldDirty: false,
27
- shouldTouch: false
28
- });
29
- });
30
- formMethods.clearErrors();
31
- return;
32
- }
33
- }, [formMethods, statusLoad, values]);
34
- useEffect(() => {
35
- if (statusLoad === "ready") {
36
- formMethods.setValue("statusLoad", "ready", {
37
- shouldValidate: false,
38
- shouldDirty: false,
39
- shouldTouch: false
40
- });
41
- }
42
- }, [statusLoad]);
43
- return formMethods;
44
- }
45
- const FormProviderCustom = forwardRef((props, ref) => {
46
- const { children, onSubmit, className, handleSubmit, ...formMethods } = props;
47
- useImperativeHandle(ref, () => ({
48
- formMethods: { ...formMethods, handleSubmit },
49
- submit: () => handleSubmit(onSubmit)(),
50
- reset: formMethods.reset,
51
- clearErrors: formMethods.clearErrors,
52
- setValue: formMethods.setValue,
53
- getValues: formMethods.getValues,
54
- trigger: formMethods.trigger,
55
- watch: formMethods.watch,
56
- setError: formMethods.setError,
57
- unregister: formMethods.unregister
58
- }), [formMethods, handleSubmit, onSubmit]);
59
- return /* @__PURE__ */ jsx(FormProvider, { ...props, children: /* @__PURE__ */ jsx(
60
- FormProviderRoot,
61
- {
62
- className: clsx(classes.root, className),
63
- onSubmit: handleSubmit(onSubmit),
64
- children
65
- }
66
- ) });
67
- });
68
- FormProviderCustom.displayName = "FormProviderCustom";
69
- const RHFormProvider = forwardRef((props, ref) => {
70
- const { children, onSubmit, values, validationSchema, statusLoad = "ready", className, mode } = props;
71
- const formMethods = useCustomForm({ validationSchema, statusLoad, values, mode });
72
- return /* @__PURE__ */ jsx(
73
- FormProviderCustom,
74
- {
75
- ref,
76
- className,
77
- values,
78
- validationSchema,
79
- statusLoad,
80
- onSubmit,
81
- ...formMethods,
82
- children
83
- }
84
- );
85
- });
86
- RHFormProvider.displayName = "RHFormProvider";
87
- export {
88
- FormProviderCustom as F,
89
- RHFormProvider as R,
90
- useCustomForm as u
91
- };
@@ -1,83 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { FieldValues, FormProviderProps as RHFormProviderProps, Mode, UseFormReturn } from 'react-hook-form';
3
- /**
4
- * Estados de carga del formulario que determinan cuándo y cómo actualizar los valores.
5
- *
6
- * - `initial`: Estado inicial del formulario
7
- * - `new`: Formulario para crear un nuevo elemento
8
- * - `edit`: Formulario para editar un elemento existente
9
- * - `reload_values_provider`: Estado que indica que se deben recargar los valores del proveedor
10
- * - `ready`: Formulario listo para ser usado
11
- * - `error`: Estado de error en el formulario
12
- */
13
- export type FormStatusLoad = 'initial' | 'new' | 'edit' | 'reload_values_provider' | 'ready' | 'error';
14
- /**
15
- * Tipo que define los valores iniciales del formulario.
16
- * Extiende FieldValues de React Hook Form para mayor flexibilidad.
17
- */
18
- export type FormInitialValues = FieldValues;
19
- /**
20
- * Propiedades del componente principal RHFormProvider.
21
- * Define la interfaz para crear formularios con React Hook Form y validación Yup.
22
- */
23
- export interface FormProviderProps {
24
- /** Elementos hijos del formulario */
25
- children: ReactNode;
26
- /** Función que se ejecuta al enviar el formulario con los datos validados */
27
- onSubmit: (data: FieldValues) => void;
28
- /** Valores iniciales del formulario */
29
- values: FormInitialValues;
30
- /** Esquema de validación de Yup */
31
- validationSchema: any;
32
- /** Estado de carga del formulario (opcional, por defecto 'ready') */
33
- statusLoad?: FormStatusLoad;
34
- /** Clases CSS adicionales (opcional) */
35
- className?: string;
36
- /** Modo de validación del formulario (opcional) */
37
- mode?: Mode;
38
- }
39
- /**
40
- * Propiedades del componente FormProviderCustom.
41
- * Combina las propiedades de React Hook Form con las propiedades personalizadas del formulario.
42
- */
43
- export type FormProviderCustomProps = RHFormProviderProps & FormProviderProps;
44
- /**
45
- * Argumentos para el hook useCustomForm.
46
- * Define los parámetros necesarios para configurar un formulario personalizado.
47
- */
48
- export interface CustomFormArguments {
49
- /** Valores iniciales del formulario */
50
- values: FormInitialValues;
51
- /** Esquema de validación de Yup */
52
- validationSchema: any;
53
- /** Estado de carga del formulario (opcional) */
54
- statusLoad?: FormStatusLoad;
55
- /** Modo de validación del formulario (opcional) */
56
- mode?: Mode;
57
- }
58
- /**
59
- * Interfaz que define los métodos expuestos a través de la ref del RHFormProvider.
60
- * Permite acceso programático a los métodos de React Hook Form desde componentes padre.
61
- */
62
- export interface RHFormProviderRef {
63
- /** Objeto completo con todos los métodos de React Hook Form */
64
- formMethods: UseFormReturn<FieldValues>;
65
- /** Ejecuta el submit del formulario */
66
- submit: () => void;
67
- /** Resetea el formulario a sus valores iniciales */
68
- reset: () => void;
69
- /** Limpia todos los errores del formulario */
70
- clearErrors: () => void;
71
- /** Establece un valor en un campo específico del formulario */
72
- setValue: (name: string, value: any, options?: any) => void;
73
- /** Obtiene los valores actuales del formulario o de campos específicos */
74
- getValues: (payload?: string | string[]) => any;
75
- /** Dispara la validación de campos específicos o de todo el formulario */
76
- trigger: (name?: string | string[]) => Promise<boolean>;
77
- /** Observa cambios en campos específicos o en todo el formulario */
78
- watch: (name?: string | string[]) => any;
79
- /** Establece un error en un campo específico */
80
- setError: (name: string, error: any) => void;
81
- /** Desregistra campos del formulario */
82
- unregister: (name: string | string[]) => void;
83
- }
@@ -1,8 +0,0 @@
1
- import { FieldValues } from 'react-hook-form';
2
- import { FormInitialValues } from '../../components/hook-form/RHFormContext/types';
3
- export interface UseFormReadyForUpdateProps {
4
- statusLoad?: number;
5
- endPoint: string;
6
- initialValues: FormInitialValues;
7
- formatDataEnpoint?: (data: FieldValues) => FormInitialValues;
8
- }