@acvl/mobile-components 0.0.0-stage → 0.0.2
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/README.md +147 -2
- package/assets/fonts/Inter_400Regular.ttf +0 -0
- package/assets/fonts/Inter_500Medium.ttf +0 -0
- package/assets/fonts/Inter_600SemiBold.ttf +0 -0
- package/assets/fonts/Inter_700Bold.ttf +0 -0
- package/assets/fonts/Inter_800ExtraBold.ttf +0 -0
- package/assets/fonts/Inter_900Black.ttf +0 -0
- package/assets/fonts/OFL.txt +93 -0
- package/lib/module/camara/CampoDeFotos.js +124 -0
- package/lib/module/camara/CampoDeFotos.js.map +1 -0
- package/lib/module/camara/elegir.js +104 -0
- package/lib/module/camara/elegir.js.map +1 -0
- package/lib/module/camara/index.js +10 -0
- package/lib/module/camara/index.js.map +1 -0
- package/lib/module/camara/reducir.js +93 -0
- package/lib/module/camara/reducir.js.map +1 -0
- package/lib/module/componentes/AccionesDelEncabezado.js +212 -0
- package/lib/module/componentes/AccionesDelEncabezado.js.map +1 -0
- package/lib/module/componentes/BotonDeAvatar.js +55 -0
- package/lib/module/componentes/BotonDeAvatar.js.map +1 -0
- package/lib/module/componentes/BotonGrande.js +105 -0
- package/lib/module/componentes/BotonGrande.js.map +1 -0
- package/lib/module/componentes/CabeceraEmpujada.js +101 -0
- package/lib/module/componentes/CabeceraEmpujada.js.map +1 -0
- package/lib/module/componentes/Chip.js +77 -0
- package/lib/module/componentes/Chip.js.map +1 -0
- package/lib/module/componentes/ContenidoDePantalla.js +56 -0
- package/lib/module/componentes/ContenidoDePantalla.js.map +1 -0
- package/lib/module/componentes/EstadoVacio.js +65 -0
- package/lib/module/componentes/EstadoVacio.js.map +1 -0
- package/lib/module/componentes/Foto.js +106 -0
- package/lib/module/componentes/Foto.js.map +1 -0
- package/lib/module/componentes/IconoDeRenglon.js +44 -0
- package/lib/module/componentes/IconoDeRenglon.js.map +1 -0
- package/lib/module/componentes/Logo.js +44 -0
- package/lib/module/componentes/Logo.js.map +1 -0
- package/lib/module/componentes/Nota.js +51 -0
- package/lib/module/componentes/Nota.js.map +1 -0
- package/lib/module/componentes/OpcionesExcluyentes.js +69 -0
- package/lib/module/componentes/OpcionesExcluyentes.js.map +1 -0
- package/lib/module/componentes/PantallaDeError.js +84 -0
- package/lib/module/componentes/PantallaDeError.js.map +1 -0
- package/lib/module/componentes/Pestanas.js +87 -0
- package/lib/module/componentes/Pestanas.js.map +1 -0
- package/lib/module/componentes/Rotulo.js +28 -0
- package/lib/module/componentes/Rotulo.js.map +1 -0
- package/lib/module/componentes/RotuloDeSeccion.js +87 -0
- package/lib/module/componentes/RotuloDeSeccion.js.map +1 -0
- package/lib/module/componentes/Tarjeta.js +63 -0
- package/lib/module/componentes/Tarjeta.js.map +1 -0
- package/lib/module/componentes/TarjetaDeDatos.js +79 -0
- package/lib/module/componentes/TarjetaDeDatos.js.map +1 -0
- package/lib/module/componentes/TiraDeFotos.js +184 -0
- package/lib/module/componentes/TiraDeFotos.js.map +1 -0
- package/lib/module/componentes/VisorDeFoto.js +171 -0
- package/lib/module/componentes/VisorDeFoto.js.map +1 -0
- package/lib/module/componentes/logos/bola-blanca.png +0 -0
- package/lib/module/componentes/logos/bola.png +0 -0
- package/lib/module/componentes/logos/logo-blanco.png +0 -0
- package/lib/module/componentes/logos/logo.png +0 -0
- package/lib/module/dialogos/HostDeDialogos.js +170 -0
- package/lib/module/dialogos/HostDeDialogos.js.map +1 -0
- package/lib/module/dialogos/dialogos.js +112 -0
- package/lib/module/dialogos/dialogos.js.map +1 -0
- package/lib/module/formularios/CampoDeSeleccion.js +72 -0
- package/lib/module/formularios/CampoDeSeleccion.js.map +1 -0
- package/lib/module/formularios/SelectorDeOpcion.js +406 -0
- package/lib/module/formularios/SelectorDeOpcion.js.map +1 -0
- package/lib/module/formularios/TextoDeAccesoControlado.js +73 -0
- package/lib/module/formularios/TextoDeAccesoControlado.js.map +1 -0
- package/lib/module/formularios/campos.js +501 -0
- package/lib/module/formularios/campos.js.map +1 -0
- package/lib/module/formularios/controlados.js +199 -0
- package/lib/module/formularios/controlados.js.map +1 -0
- package/lib/module/formularios/errores.js +91 -0
- package/lib/module/formularios/errores.js.map +1 -0
- package/lib/module/formularios/guardado.js +78 -0
- package/lib/module/formularios/guardado.js.map +1 -0
- package/lib/module/formularios/useBusqueda.js +22 -0
- package/lib/module/formularios/useBusqueda.js.map +1 -0
- package/lib/module/fotos/elegir.js +105 -0
- package/lib/module/fotos/elegir.js.map +1 -0
- package/lib/module/fotos/index.js +9 -0
- package/lib/module/fotos/index.js.map +1 -0
- package/lib/module/hoja/HojaDeLista.js +211 -0
- package/lib/module/hoja/HojaDeLista.js.map +1 -0
- package/lib/module/hoja/HojaInferior.js +112 -0
- package/lib/module/hoja/HojaInferior.js.map +1 -0
- package/lib/module/hoja/index.js +8 -0
- package/lib/module/hoja/index.js.map +1 -0
- package/lib/module/hoja/useMasDeLaFicha.js +48 -0
- package/lib/module/hoja/useMasDeLaFicha.js.map +1 -0
- package/lib/module/index.js +67 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/listas/HojaDeFiltros.js +270 -0
- package/lib/module/listas/HojaDeFiltros.js.map +1 -0
- package/lib/module/listas/ListaPaginada.js +103 -0
- package/lib/module/listas/ListaPaginada.js.map +1 -0
- package/lib/module/listas/TarjetaDeslizable.js +118 -0
- package/lib/module/listas/TarjetaDeslizable.js.map +1 -0
- package/lib/module/listas/paginado.js +11 -0
- package/lib/module/listas/paginado.js.map +1 -0
- package/lib/module/listas/piezas.js +666 -0
- package/lib/module/listas/piezas.js.map +1 -0
- package/lib/module/navegacion/BarraDePestanas.js +162 -0
- package/lib/module/navegacion/BarraDePestanas.js.map +1 -0
- package/lib/module/navegacion/BotonDeBarra.js +58 -0
- package/lib/module/navegacion/BotonDeBarra.js.map +1 -0
- package/lib/module/navegacion/encabezado.js +103 -0
- package/lib/module/navegacion/encabezado.js.map +1 -0
- package/lib/module/pantallas/PantallaDeAcceso.js +195 -0
- package/lib/module/pantallas/PantallaDeAcceso.js.map +1 -0
- package/lib/module/pantallas/PantallaDeEdicion.js +121 -0
- package/lib/module/pantallas/PantallaDeEdicion.js.map +1 -0
- package/lib/module/pantallas/PantallaDeFicha.js +94 -0
- package/lib/module/pantallas/PantallaDeFicha.js.map +1 -0
- package/lib/module/pantallas/PantallaDeHistorial.js +328 -0
- package/lib/module/pantallas/PantallaDeHistorial.js.map +1 -0
- package/lib/module/pantallas/PantallaDePerfil.js +137 -0
- package/lib/module/pantallas/PantallaDePerfil.js.map +1 -0
- package/lib/module/tema/ProveedorDeTema.js +122 -0
- package/lib/module/tema/ProveedorDeTema.js.map +1 -0
- package/lib/module/tema/estilos.js +54 -0
- package/lib/module/tema/estilos.js.map +1 -0
- package/lib/module/tema/fuentes.js +28 -0
- package/lib/module/tema/fuentes.js.map +1 -0
- package/lib/module/tema/index.js +8 -0
- package/lib/module/tema/index.js.map +1 -0
- package/lib/module/tema/paleta.js +107 -0
- package/lib/module/tema/paleta.js.map +1 -0
- package/lib/module/tema/tipografia.js +32 -0
- package/lib/module/tema/tipografia.js.map +1 -0
- package/lib/module/texto.js +48 -0
- package/lib/module/texto.js.map +1 -0
- package/lib/typescript/src/camara/CampoDeFotos.d.ts +30 -0
- package/lib/typescript/src/camara/CampoDeFotos.d.ts.map +1 -0
- package/lib/typescript/src/camara/elegir.d.ts +47 -0
- package/lib/typescript/src/camara/elegir.d.ts.map +1 -0
- package/lib/typescript/src/camara/index.d.ts +4 -0
- package/lib/typescript/src/camara/index.d.ts.map +1 -0
- package/lib/typescript/src/camara/reducir.d.ts +32 -0
- package/lib/typescript/src/camara/reducir.d.ts.map +1 -0
- package/lib/typescript/src/componentes/AccionesDelEncabezado.d.ts +34 -0
- package/lib/typescript/src/componentes/AccionesDelEncabezado.d.ts.map +1 -0
- package/lib/typescript/src/componentes/BotonDeAvatar.d.ts +17 -0
- package/lib/typescript/src/componentes/BotonDeAvatar.d.ts.map +1 -0
- package/lib/typescript/src/componentes/BotonGrande.d.ts +26 -0
- package/lib/typescript/src/componentes/BotonGrande.d.ts.map +1 -0
- package/lib/typescript/src/componentes/CabeceraEmpujada.d.ts +18 -0
- package/lib/typescript/src/componentes/CabeceraEmpujada.d.ts.map +1 -0
- package/lib/typescript/src/componentes/Chip.d.ts +14 -0
- package/lib/typescript/src/componentes/Chip.d.ts.map +1 -0
- package/lib/typescript/src/componentes/ContenidoDePantalla.d.ts +17 -0
- package/lib/typescript/src/componentes/ContenidoDePantalla.d.ts.map +1 -0
- package/lib/typescript/src/componentes/EstadoVacio.d.ts +17 -0
- package/lib/typescript/src/componentes/EstadoVacio.d.ts.map +1 -0
- package/lib/typescript/src/componentes/Foto.d.ts +41 -0
- package/lib/typescript/src/componentes/Foto.d.ts.map +1 -0
- package/lib/typescript/src/componentes/IconoDeRenglon.d.ts +25 -0
- package/lib/typescript/src/componentes/IconoDeRenglon.d.ts.map +1 -0
- package/lib/typescript/src/componentes/Logo.d.ts +13 -0
- package/lib/typescript/src/componentes/Logo.d.ts.map +1 -0
- package/lib/typescript/src/componentes/Nota.d.ts +7 -0
- package/lib/typescript/src/componentes/Nota.d.ts.map +1 -0
- package/lib/typescript/src/componentes/OpcionesExcluyentes.d.ts +14 -0
- package/lib/typescript/src/componentes/OpcionesExcluyentes.d.ts.map +1 -0
- package/lib/typescript/src/componentes/PantallaDeError.d.ts +23 -0
- package/lib/typescript/src/componentes/PantallaDeError.d.ts.map +1 -0
- package/lib/typescript/src/componentes/Pestanas.d.ts +28 -0
- package/lib/typescript/src/componentes/Pestanas.d.ts.map +1 -0
- package/lib/typescript/src/componentes/Rotulo.d.ts +6 -0
- package/lib/typescript/src/componentes/Rotulo.d.ts.map +1 -0
- package/lib/typescript/src/componentes/RotuloDeSeccion.d.ts +20 -0
- package/lib/typescript/src/componentes/RotuloDeSeccion.d.ts.map +1 -0
- package/lib/typescript/src/componentes/Tarjeta.d.ts +25 -0
- package/lib/typescript/src/componentes/Tarjeta.d.ts.map +1 -0
- package/lib/typescript/src/componentes/TarjetaDeDatos.d.ts +13 -0
- package/lib/typescript/src/componentes/TarjetaDeDatos.d.ts.map +1 -0
- package/lib/typescript/src/componentes/TiraDeFotos.d.ts +36 -0
- package/lib/typescript/src/componentes/TiraDeFotos.d.ts.map +1 -0
- package/lib/typescript/src/componentes/VisorDeFoto.d.ts +23 -0
- package/lib/typescript/src/componentes/VisorDeFoto.d.ts.map +1 -0
- package/lib/typescript/src/dialogos/HostDeDialogos.d.ts +14 -0
- package/lib/typescript/src/dialogos/HostDeDialogos.d.ts.map +1 -0
- package/lib/typescript/src/dialogos/dialogos.d.ts +65 -0
- package/lib/typescript/src/dialogos/dialogos.d.ts.map +1 -0
- package/lib/typescript/src/formularios/CampoDeSeleccion.d.ts +24 -0
- package/lib/typescript/src/formularios/CampoDeSeleccion.d.ts.map +1 -0
- package/lib/typescript/src/formularios/SelectorDeOpcion.d.ts +59 -0
- package/lib/typescript/src/formularios/SelectorDeOpcion.d.ts.map +1 -0
- package/lib/typescript/src/formularios/TextoDeAccesoControlado.d.ts +18 -0
- package/lib/typescript/src/formularios/TextoDeAccesoControlado.d.ts.map +1 -0
- package/lib/typescript/src/formularios/campos.d.ts +113 -0
- package/lib/typescript/src/formularios/campos.d.ts.map +1 -0
- package/lib/typescript/src/formularios/controlados.d.ts +29 -0
- package/lib/typescript/src/formularios/controlados.d.ts.map +1 -0
- package/lib/typescript/src/formularios/errores.d.ts +36 -0
- package/lib/typescript/src/formularios/errores.d.ts.map +1 -0
- package/lib/typescript/src/formularios/guardado.d.ts +36 -0
- package/lib/typescript/src/formularios/guardado.d.ts.map +1 -0
- package/lib/typescript/src/formularios/useBusqueda.d.ts +7 -0
- package/lib/typescript/src/formularios/useBusqueda.d.ts.map +1 -0
- package/lib/typescript/src/fotos/elegir.d.ts +28 -0
- package/lib/typescript/src/fotos/elegir.d.ts.map +1 -0
- package/lib/typescript/src/fotos/index.d.ts +3 -0
- package/lib/typescript/src/fotos/index.d.ts.map +1 -0
- package/lib/typescript/src/hoja/HojaDeLista.d.ts +50 -0
- package/lib/typescript/src/hoja/HojaDeLista.d.ts.map +1 -0
- package/lib/typescript/src/hoja/HojaInferior.d.ts +21 -0
- package/lib/typescript/src/hoja/HojaInferior.d.ts.map +1 -0
- package/lib/typescript/src/hoja/index.d.ts +4 -0
- package/lib/typescript/src/hoja/index.d.ts.map +1 -0
- package/lib/typescript/src/hoja/useMasDeLaFicha.d.ts +27 -0
- package/lib/typescript/src/hoja/useMasDeLaFicha.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +46 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/listas/HojaDeFiltros.d.ts +76 -0
- package/lib/typescript/src/listas/HojaDeFiltros.d.ts.map +1 -0
- package/lib/typescript/src/listas/ListaPaginada.d.ts +39 -0
- package/lib/typescript/src/listas/ListaPaginada.d.ts.map +1 -0
- package/lib/typescript/src/listas/TarjetaDeslizable.d.ts +33 -0
- package/lib/typescript/src/listas/TarjetaDeslizable.d.ts.map +1 -0
- package/lib/typescript/src/listas/paginado.d.ts +16 -0
- package/lib/typescript/src/listas/paginado.d.ts.map +1 -0
- package/lib/typescript/src/listas/piezas.d.ts +157 -0
- package/lib/typescript/src/listas/piezas.d.ts.map +1 -0
- package/lib/typescript/src/navegacion/BarraDePestanas.d.ts +57 -0
- package/lib/typescript/src/navegacion/BarraDePestanas.d.ts.map +1 -0
- package/lib/typescript/src/navegacion/BotonDeBarra.d.ts +15 -0
- package/lib/typescript/src/navegacion/BotonDeBarra.d.ts.map +1 -0
- package/lib/typescript/src/navegacion/encabezado.d.ts +44 -0
- package/lib/typescript/src/navegacion/encabezado.d.ts.map +1 -0
- package/lib/typescript/src/pantallas/PantallaDeAcceso.d.ts +32 -0
- package/lib/typescript/src/pantallas/PantallaDeAcceso.d.ts.map +1 -0
- package/lib/typescript/src/pantallas/PantallaDeEdicion.d.ts +38 -0
- package/lib/typescript/src/pantallas/PantallaDeEdicion.d.ts.map +1 -0
- package/lib/typescript/src/pantallas/PantallaDeFicha.d.ts +35 -0
- package/lib/typescript/src/pantallas/PantallaDeFicha.d.ts.map +1 -0
- package/lib/typescript/src/pantallas/PantallaDeHistorial.d.ts +65 -0
- package/lib/typescript/src/pantallas/PantallaDeHistorial.d.ts.map +1 -0
- package/lib/typescript/src/pantallas/PantallaDePerfil.d.ts +19 -0
- package/lib/typescript/src/pantallas/PantallaDePerfil.d.ts.map +1 -0
- package/lib/typescript/src/tema/ProveedorDeTema.d.ts +32 -0
- package/lib/typescript/src/tema/ProveedorDeTema.d.ts.map +1 -0
- package/lib/typescript/src/tema/estilos.d.ts +31 -0
- package/lib/typescript/src/tema/estilos.d.ts.map +1 -0
- package/lib/typescript/src/tema/fuentes.d.ts +20 -0
- package/lib/typescript/src/tema/fuentes.d.ts.map +1 -0
- package/lib/typescript/src/tema/index.d.ts +6 -0
- package/lib/typescript/src/tema/index.d.ts.map +1 -0
- package/lib/typescript/src/tema/paleta.d.ts +86 -0
- package/lib/typescript/src/tema/paleta.d.ts.map +1 -0
- package/lib/typescript/src/tema/tipografia.d.ts +29 -0
- package/lib/typescript/src/tema/tipografia.d.ts.map +1 -0
- package/lib/typescript/src/texto.d.ts +16 -0
- package/lib/typescript/src/texto.d.ts.map +1 -0
- package/package.json +140 -5
- package/src/camara/CampoDeFotos.tsx +132 -0
- package/src/camara/elegir.ts +113 -0
- package/src/camara/index.ts +15 -0
- package/src/camara/reducir.ts +87 -0
- package/src/componentes/AccionesDelEncabezado.tsx +247 -0
- package/src/componentes/BotonDeAvatar.tsx +59 -0
- package/src/componentes/BotonGrande.tsx +100 -0
- package/src/componentes/CabeceraEmpujada.tsx +69 -0
- package/src/componentes/Chip.tsx +60 -0
- package/src/componentes/ContenidoDePantalla.tsx +53 -0
- package/src/componentes/EstadoVacio.tsx +45 -0
- package/src/componentes/Foto.tsx +92 -0
- package/src/componentes/IconoDeRenglon.tsx +42 -0
- package/src/componentes/Logo.tsx +34 -0
- package/src/componentes/Nota.tsx +37 -0
- package/src/componentes/OpcionesExcluyentes.tsx +62 -0
- package/src/componentes/PantallaDeError.tsx +76 -0
- package/src/componentes/Pestanas.tsx +86 -0
- package/src/componentes/Rotulo.tsx +21 -0
- package/src/componentes/RotuloDeSeccion.tsx +71 -0
- package/src/componentes/Tarjeta.tsx +58 -0
- package/src/componentes/TarjetaDeDatos.tsx +62 -0
- package/src/componentes/TiraDeFotos.tsx +189 -0
- package/src/componentes/VisorDeFoto.tsx +181 -0
- package/src/componentes/logos/bola-blanca.png +0 -0
- package/src/componentes/logos/bola.png +0 -0
- package/src/componentes/logos/logo-blanco.png +0 -0
- package/src/componentes/logos/logo.png +0 -0
- package/src/dialogos/HostDeDialogos.tsx +172 -0
- package/src/dialogos/dialogos.ts +148 -0
- package/src/formularios/CampoDeSeleccion.tsx +60 -0
- package/src/formularios/SelectorDeOpcion.tsx +407 -0
- package/src/formularios/TextoDeAccesoControlado.tsx +72 -0
- package/src/formularios/campos.tsx +497 -0
- package/src/formularios/controlados.tsx +200 -0
- package/src/formularios/errores.ts +105 -0
- package/src/formularios/guardado.ts +76 -0
- package/src/formularios/useBusqueda.ts +19 -0
- package/src/fotos/elegir.ts +116 -0
- package/src/fotos/index.ts +6 -0
- package/src/hoja/HojaDeLista.tsx +214 -0
- package/src/hoja/HojaInferior.tsx +103 -0
- package/src/hoja/index.ts +5 -0
- package/src/hoja/useMasDeLaFicha.tsx +63 -0
- package/src/index.ts +151 -0
- package/src/listas/HojaDeFiltros.tsx +286 -0
- package/src/listas/ListaPaginada.tsx +117 -0
- package/src/listas/TarjetaDeslizable.tsx +126 -0
- package/src/listas/paginado.ts +15 -0
- package/src/listas/piezas.tsx +670 -0
- package/src/navegacion/BarraDePestanas.tsx +198 -0
- package/src/navegacion/BotonDeBarra.tsx +61 -0
- package/src/navegacion/encabezado.tsx +88 -0
- package/src/pantallas/PantallaDeAcceso.tsx +184 -0
- package/src/pantallas/PantallaDeEdicion.tsx +116 -0
- package/src/pantallas/PantallaDeFicha.tsx +115 -0
- package/src/pantallas/PantallaDeHistorial.tsx +293 -0
- package/src/pantallas/PantallaDePerfil.tsx +126 -0
- package/src/tema/ProveedorDeTema.tsx +150 -0
- package/src/tema/estilos.ts +51 -0
- package/src/tema/fuentes.ts +20 -0
- package/src/tema/index.ts +10 -0
- package/src/tema/paleta.ts +147 -0
- package/src/tema/tipografia.ts +29 -0
- package/src/texto.tsx +44 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/** Una opción de una lista: lo que se guarda (`value`) y lo que se lee (`label`). */
|
|
3
|
+
export interface Opcion {
|
|
4
|
+
value: number | string;
|
|
5
|
+
label: string;
|
|
6
|
+
}
|
|
7
|
+
/** Lo que tienen en común el selector de una y el de varias: de dónde salen las opciones. */
|
|
8
|
+
interface FuenteDeOpciones<T extends Opcion> {
|
|
9
|
+
etiqueta: string;
|
|
10
|
+
opciones: T[];
|
|
11
|
+
/**
|
|
12
|
+
* Si las opciones las trae el servidor, mientras llegan. Una lista fija (las modalidades, los
|
|
13
|
+
* estados) no lo pasa.
|
|
14
|
+
*/
|
|
15
|
+
cargando?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* El texto de la búsqueda, para que quien llama pida al servidor. **Sin `onBuscar` la lista es
|
|
18
|
+
* fija** y se filtra aquí, por lo que se lee: así una lista de cinco opciones no necesita una
|
|
19
|
+
* consulta ni un estado en la pantalla.
|
|
20
|
+
*/
|
|
21
|
+
texto?: string;
|
|
22
|
+
onBuscar?: (texto: string) => void;
|
|
23
|
+
/** Lo que va debajo del nombre de cada opción (un viaje: sus unidades). */
|
|
24
|
+
detalle?: (opcion: T) => string | null;
|
|
25
|
+
/** Para agrupar las opciones con un rótulo (los viajes esperados primero). */
|
|
26
|
+
grupo?: (opcion: T) => string;
|
|
27
|
+
vacio?: string;
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface PropsDeSelectorDeOpcion<T extends Opcion> extends FuenteDeOpciones<T> {
|
|
31
|
+
valor: T | null;
|
|
32
|
+
onElegir: (opcion: T | null) => void;
|
|
33
|
+
/** Si se puede dejar vacío: agrega «Ninguno» arriba de la lista. */
|
|
34
|
+
opcional?: boolean;
|
|
35
|
+
/** Cómo se dice el vacío de `opcional`: «Todos» en un filtro. */
|
|
36
|
+
textoDeNinguno?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface PropsDeSelectorDeVarias<T extends Opcion> extends FuenteDeOpciones<T> {
|
|
39
|
+
valor: T[];
|
|
40
|
+
onElegir: (opciones: T[]) => void;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Un campo que se elige de una lista: el renglón con lo elegido y, al tocarlo, la lista a pantalla
|
|
44
|
+
* completa con su buscador. **A pantalla completa y no un menú**: con la letra al 180% un menú
|
|
45
|
+
* desplegable deja ver dos opciones, y quien la usa elige de pie.
|
|
46
|
+
*/
|
|
47
|
+
export default function SelectorDeOpcion<T extends Opcion>(props: PropsDeSelectorDeOpcion<T>): React.JSX.Element;
|
|
48
|
+
/**
|
|
49
|
+
* Lo mismo que `SelectorDeOpcion`, pero se marcan varias: tocar una la pone o la quita, y la
|
|
50
|
+
* elección se confirma con el botón del pie. Se confirma y no se guarda a cada toque para que
|
|
51
|
+
* salir con la flecha deje lo que había —igual que en el selector de una, donde salir no cambia
|
|
52
|
+
* nada—.
|
|
53
|
+
*
|
|
54
|
+
* Cerrado dice lo elegido separado por comas, que con la letra grande parte en los renglones que
|
|
55
|
+
* haga falta en vez de recortarse.
|
|
56
|
+
*/
|
|
57
|
+
export declare function SelectorDeVarias<T extends Opcion>(props: PropsDeSelectorDeVarias<T>): React.JSX.Element;
|
|
58
|
+
export {};
|
|
59
|
+
//# sourceMappingURL=SelectorDeOpcion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectorDeOpcion.d.ts","sourceRoot":"","sources":["../../../../src/formularios/SelectorDeOpcion.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,qFAAqF;AACrF,MAAM,WAAW,MAAM;IACnB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,6FAA6F;AAC7F,UAAU,gBAAgB,CAAC,CAAC,SAAS,MAAM;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,2EAA2E;IAC3E,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC;IACvC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAClF,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACrC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAClF,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;CACrC;AAqKD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,qBAuD3F;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,qBAwDnF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type FieldValues } from "react-hook-form";
|
|
2
|
+
import { type TextInputProps } from "react-native-paper";
|
|
3
|
+
import type { CampoAtado } from "./controlados";
|
|
4
|
+
/**
|
|
5
|
+
* Un campo del login (el usuario, la contraseña), atado a react-hook-form: el `TextInput` de Paper
|
|
6
|
+
* con contorno y la etiqueta que sube al escribir. Con `contrasena`, oculta lo escrito y lleva el
|
|
7
|
+
* ojo para verlo.
|
|
8
|
+
*
|
|
9
|
+
* Es de Paper y no `TextoControlado`, que lleva su rótulo arriba, porque así es la pantalla de
|
|
10
|
+
* entrada de las apps.
|
|
11
|
+
*/
|
|
12
|
+
export default function TextoDeAccesoControlado<T extends FieldValues>({ control, name, etiqueta, contrasena, entrada, }: CampoAtado<T> & {
|
|
13
|
+
etiqueta: string;
|
|
14
|
+
contrasena?: boolean;
|
|
15
|
+
/** Lo demás del `TextInput` de Paper (`autoCapitalize`, `keyboardType`…). */
|
|
16
|
+
entrada?: Partial<TextInputProps>;
|
|
17
|
+
}): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=TextoDeAccesoControlado.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextoDeAccesoControlado.d.ts","sourceRoot":"","sources":["../../../../src/formularios/TextoDeAccesoControlado.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,CAAC,SAAS,WAAW,EAAE,EACnE,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,UAAkB,EAClB,OAAO,GACV,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACrC,+BAuCA"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type KeyboardTypeOptions } from "react-native";
|
|
3
|
+
/**
|
|
4
|
+
* Los campos de un formulario (un viaje, un tracto, un operador). Cada uno trae su rótulo arriba y
|
|
5
|
+
* su error abajo, para que la pantalla sólo los apile. Son controlados: atados a react-hook-form,
|
|
6
|
+
* van por `controlados.tsx`.
|
|
7
|
+
*/
|
|
8
|
+
/** El error de un campo, en rojo y debajo de él. */
|
|
9
|
+
export declare function ErrorDelCampo({ error }: {
|
|
10
|
+
error?: string;
|
|
11
|
+
}): React.JSX.Element | null;
|
|
12
|
+
/**
|
|
13
|
+
* El marco de un campo: el rótulo arriba, lo que se captura en medio, y debajo la ayuda y el error.
|
|
14
|
+
* Lo usan todos los campos de aquí, y una app lo usa para lo que no es un campo de la casa —una
|
|
15
|
+
* tira de fotos, el renglón de un escáner— sin que se vea distinto de los demás.
|
|
16
|
+
*
|
|
17
|
+
* Sin `etiqueta` no pinta rótulo: el interruptor lleva el suyo adentro.
|
|
18
|
+
*/
|
|
19
|
+
export declare function Campo({ etiqueta, ayuda, error, children, }: {
|
|
20
|
+
etiqueta?: string;
|
|
21
|
+
ayuda?: string;
|
|
22
|
+
error?: string;
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
}): React.JSX.Element;
|
|
25
|
+
/**
|
|
26
|
+
* Un texto libre: una referencia (tope de 100), unas instrucciones (varios renglones), un VIN (en
|
|
27
|
+
* mayúsculas) o un año (`teclado="number-pad"`).
|
|
28
|
+
*/
|
|
29
|
+
export declare function CampoDeTexto({ etiqueta, valor, onCambiar, error, multilinea, maximo, placeholder, ayuda, disabled, teclado, mayusculas, }: {
|
|
30
|
+
etiqueta: string;
|
|
31
|
+
valor: string;
|
|
32
|
+
onCambiar: (valor: string) => void;
|
|
33
|
+
error?: string;
|
|
34
|
+
multilinea?: boolean;
|
|
35
|
+
maximo?: number;
|
|
36
|
+
placeholder?: string;
|
|
37
|
+
ayuda?: string;
|
|
38
|
+
disabled?: boolean;
|
|
39
|
+
teclado?: KeyboardTypeOptions;
|
|
40
|
+
/** Cómo pone mayúsculas el teclado; un VIN o una placa, `characters`. */
|
|
41
|
+
mayusculas?: "none" | "sentences" | "words" | "characters";
|
|
42
|
+
}): React.JSX.Element;
|
|
43
|
+
/**
|
|
44
|
+
* Una fecha con su hora: dos botones, el día y la hora, cada uno con el selector del sistema. **La
|
|
45
|
+
* hora es el dato** (contra ella se mide si un viaje va tarde o un equipo está comprometido), así
|
|
46
|
+
* que nunca se manda sólo el día.
|
|
47
|
+
*
|
|
48
|
+
* Vacío, un solo botón «Elegir»: abre el día y, al elegirlo, la hora. Si es `opcional`, «Quitar»
|
|
49
|
+
* lo deja vacío otra vez.
|
|
50
|
+
*/
|
|
51
|
+
export declare function CampoDeFechaHora({ etiqueta, valor, onCambiar, error, opcional, ayuda, desde, hasta, }: {
|
|
52
|
+
etiqueta: string;
|
|
53
|
+
valor: Date | null;
|
|
54
|
+
onCambiar: (valor: Date | null) => void;
|
|
55
|
+
error?: string;
|
|
56
|
+
opcional?: boolean;
|
|
57
|
+
ayuda?: string;
|
|
58
|
+
/** El primer y el último momento que el selector deja elegir, como en `CampoDeFecha`. */
|
|
59
|
+
desde?: Date;
|
|
60
|
+
hasta?: Date;
|
|
61
|
+
}): React.JSX.Element;
|
|
62
|
+
/** Un interruptor con su texto y, si hace falta, por qué está como está. */
|
|
63
|
+
export declare function CampoInterruptor({ texto, valor, onCambiar, ayuda, error, disabled, }: {
|
|
64
|
+
texto: string;
|
|
65
|
+
valor: boolean;
|
|
66
|
+
onCambiar: (valor: boolean) => void;
|
|
67
|
+
ayuda?: string;
|
|
68
|
+
error?: string;
|
|
69
|
+
disabled?: boolean;
|
|
70
|
+
}): React.JSX.Element;
|
|
71
|
+
/**
|
|
72
|
+
* Una fecha sin hora (un nacimiento, el fin de una renta): un botón con el selector del sistema.
|
|
73
|
+
* El valor es el de la API, `YYYY-MM-DD`, para no pasar por una zona horaria que lo corra un día.
|
|
74
|
+
*/
|
|
75
|
+
export declare function CampoDeFecha({ etiqueta, valor, onCambiar, error, opcional, ayuda, desde, hasta, }: {
|
|
76
|
+
etiqueta: string;
|
|
77
|
+
valor: string | null;
|
|
78
|
+
onCambiar: (valor: string | null) => void;
|
|
79
|
+
error?: string;
|
|
80
|
+
opcional?: boolean;
|
|
81
|
+
ayuda?: string;
|
|
82
|
+
/** Los días que el selector deja elegir: una recepción no puede ser de mañana (`hasta`). */
|
|
83
|
+
desde?: Date;
|
|
84
|
+
hasta?: Date;
|
|
85
|
+
}): React.JSX.Element;
|
|
86
|
+
/**
|
|
87
|
+
* Una de pocas opciones fijas (la cabina, la propiedad, la longitud): todas a la vista, una por
|
|
88
|
+
* renglón, en vez de un menú que con la letra al 180% deja ver dos.
|
|
89
|
+
*/
|
|
90
|
+
export declare function CampoDeOpciones<V extends string>({ etiqueta, opciones, valor, onElegir, error, ayuda, }: {
|
|
91
|
+
etiqueta: string;
|
|
92
|
+
opciones: readonly {
|
|
93
|
+
value: V;
|
|
94
|
+
label: string;
|
|
95
|
+
}[];
|
|
96
|
+
valor: V | null;
|
|
97
|
+
onElegir: (valor: V) => void;
|
|
98
|
+
error?: string;
|
|
99
|
+
ayuda?: string;
|
|
100
|
+
}): React.JSX.Element;
|
|
101
|
+
/**
|
|
102
|
+
* Un teléfono, como el `ControlledPhoneNumber` del portal: la lada (México o Estados Unidos) y los
|
|
103
|
+
* diez dígitos. El valor es el del servidor (`PhoneNumberField`), en E.164: `+526641234567`; vacío
|
|
104
|
+
* es `null`.
|
|
105
|
+
*/
|
|
106
|
+
export declare function CampoDeTelefono({ etiqueta, valor, onCambiar, error, ayuda, }: {
|
|
107
|
+
etiqueta: string;
|
|
108
|
+
valor: string | null;
|
|
109
|
+
onCambiar: (valor: string | null) => void;
|
|
110
|
+
error?: string;
|
|
111
|
+
ayuda?: string;
|
|
112
|
+
}): React.JSX.Element;
|
|
113
|
+
//# sourceMappingURL=campos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"campos.d.ts","sourceRoot":"","sources":["../../../../src/formularios/campos.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMjF;;;;GAIG;AAEH,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,4BAG1D;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,EAClB,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,GACX,EAAE;IACC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B,qBAUA;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,WAAW,EACX,KAAK,EACL,QAAQ,EACR,OAAO,EACP,UAAU,GACb,EAAE;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,CAAC;CAC9D,qBAuBA;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAC7B,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,GACR,EAAE;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,IAAI,CAAC;CAChB,qBAsFA;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,EAC7B,KAAK,EACL,KAAK,EACL,SAAS,EACT,KAAK,EACL,KAAK,EACL,QAAQ,GACX,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,qBAuBA;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,GACR,EAAE;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,IAAI,CAAC;CAChB,qBAsDA;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,EAC9C,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,GACR,EAAE;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,qBAUA;AAkBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC5B,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,EACL,KAAK,GACR,EAAE;IACC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,qBAmCA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type Control, type FieldValues, type Path } from "react-hook-form";
|
|
3
|
+
import CampoDeSeleccion, { CampoDeVarias } from "./CampoDeSeleccion";
|
|
4
|
+
import { CampoDeFecha, CampoDeFechaHora, CampoDeOpciones, CampoDeTelefono, CampoDeTexto, CampoInterruptor } from "./campos";
|
|
5
|
+
import type { Opcion } from "./SelectorDeOpcion";
|
|
6
|
+
/**
|
|
7
|
+
* Los campos de `campos.tsx` ya atados a un formulario de react-hook-form: reciben `control` y
|
|
8
|
+
* `name` y se cuelgan su valor y su error. Así un formulario largo (un tracto, una caja, un
|
|
9
|
+
* operador) es una lista de campos y no una de `Controller`.
|
|
10
|
+
*
|
|
11
|
+
* Un campo propio de una app (un catálogo de su API, una dirección) se ata igual, con `CampoAtado`
|
|
12
|
+
* y `SinValor`.
|
|
13
|
+
*/
|
|
14
|
+
/** Lo que un campo controlado recibe para atarse al formulario. */
|
|
15
|
+
export interface CampoAtado<T extends FieldValues> {
|
|
16
|
+
control: Control<T>;
|
|
17
|
+
name: Path<T>;
|
|
18
|
+
}
|
|
19
|
+
/** Las props de un campo sin lo que pone el `Controller`. */
|
|
20
|
+
export type SinValor<P> = Omit<P, "valor" | "onCambiar" | "onElegir" | "error">;
|
|
21
|
+
export declare function TextoControlado<T extends FieldValues>({ control, name, ...props }: CampoAtado<T> & SinValor<React.ComponentProps<typeof CampoDeTexto>>): React.JSX.Element;
|
|
22
|
+
export declare function InterruptorControlado<T extends FieldValues>({ control, name, ...props }: CampoAtado<T> & SinValor<React.ComponentProps<typeof CampoInterruptor>>): React.JSX.Element;
|
|
23
|
+
export declare function FechaControlada<T extends FieldValues>({ control, name, ...props }: CampoAtado<T> & SinValor<React.ComponentProps<typeof CampoDeFecha>>): React.JSX.Element;
|
|
24
|
+
export declare function FechaHoraControlada<T extends FieldValues>({ control, name, ...props }: CampoAtado<T> & SinValor<React.ComponentProps<typeof CampoDeFechaHora>>): React.JSX.Element;
|
|
25
|
+
export declare function OpcionesControladas<T extends FieldValues, V extends string>({ control, name, ...props }: CampoAtado<T> & SinValor<React.ComponentProps<typeof CampoDeOpciones<V>>>): React.JSX.Element;
|
|
26
|
+
export declare function SeleccionControlada<T extends FieldValues, O extends Opcion>({ control, name, ...props }: CampoAtado<T> & SinValor<React.ComponentProps<typeof CampoDeSeleccion<O>>>): React.JSX.Element;
|
|
27
|
+
export declare function TelefonoControlado<T extends FieldValues>({ control, name, ...props }: CampoAtado<T> & SinValor<React.ComponentProps<typeof CampoDeTelefono>>): React.JSX.Element;
|
|
28
|
+
export declare function VariasControladas<T extends FieldValues, O extends Opcion>({ control, name, ...props }: CampoAtado<T> & SinValor<React.ComponentProps<typeof CampoDeVarias<O>>>): React.JSX.Element;
|
|
29
|
+
//# sourceMappingURL=controlados.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controlados.d.ts","sourceRoot":"","sources":["../../../../src/formularios/controlados.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* El mensaje que el backend mandó, listo para enseñárselo al usuario.
|
|
3
|
+
*
|
|
4
|
+
* Los errores de los backends de ACV salen de `drf_simple_api_errors`, que responde
|
|
5
|
+
* `{ title, detail?: string[], invalid_params?: [{ name, reason: string[] }] }`. Llegan en dos
|
|
6
|
+
* formas y se leen las dos:
|
|
7
|
+
*
|
|
8
|
+
* - `detail`: los errores de regla, que no cuelgan de un campo (el orden de los pasos, «falta lo
|
|
9
|
+
* que la acción pide»). Si vienen varios se juntan todos, uno por renglón: enseñar sólo el
|
|
10
|
+
* primero obligaba a corregir y reintentar para descubrir el siguiente.
|
|
11
|
+
* - `invalid_params`: los de un campo (`clave`, `lng`, `fecha_real`), cada uno con su motivo.
|
|
12
|
+
*
|
|
13
|
+
* `title` es la etiqueta del tipo de error («Validation error.»), que sola no le dice nada a
|
|
14
|
+
* nadie: sólo se usa si no hay nada más.
|
|
15
|
+
*
|
|
16
|
+
* Sirve para el feedback de una acción —un aviso, Pendientes—, no para pintar errores en los
|
|
17
|
+
* campos de un formulario: eso lo hace `setErrors` con `invalid_params`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const mensajeDeError: (error: any, fallback: string) => string;
|
|
20
|
+
/**
|
|
21
|
+
* Vuelca los motivos de un 400 sobre los campos del formulario.
|
|
22
|
+
*
|
|
23
|
+
* El backend responde en RFC 7807 (`invalid_params: [{ name, reason }]`). Un campo suelto trae
|
|
24
|
+
* su motivo como lista de textos y se cuelga de su nombre tal cual. Una **lista editable**
|
|
25
|
+
* (`useFieldArray`) trae en su lugar un objeto por renglón —vacío si ese
|
|
26
|
+
* renglón está bien—, que es como DRF reporta un serializador anidado `many=True`; ahí el motivo
|
|
27
|
+
* va a `lista.<índice>.<campo>`, que es justo como se llaman los inputs de la fila, para que se
|
|
28
|
+
* pinte sobre el campo que falla.
|
|
29
|
+
*
|
|
30
|
+
* Sin ese segundo caso el error quedaba a nombre de la lista entera, donde no hay ningún input
|
|
31
|
+
* registrado: quien capturaba sólo veía el aviso genérico de que no se pudo guardar. Es la misma
|
|
32
|
+
* traducción que hace el portal (`setErrors` de @acvl/frontend-components), así que la forma de
|
|
33
|
+
* la respuesta es una sola para los dos clientes.
|
|
34
|
+
*/
|
|
35
|
+
export declare const setErrors: (form: any, error: any) => void;
|
|
36
|
+
//# sourceMappingURL=errores.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errores.d.ts","sourceRoot":"","sources":["../../../../src/formularios/errores.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,GAAG,EAAE,UAAU,MAAM,KAAG,MAoC7D,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,GAAG,EAAE,OAAO,GAAG,SA8B9C,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { FieldValues, UseFormReturn } from "react-hook-form";
|
|
2
|
+
/**
|
|
3
|
+
* Lo que comparten los formularios de edición: cómo se compara lo capturado contra lo que vino,
|
|
4
|
+
* cómo se lee un rechazo del servidor y cómo se guarda.
|
|
5
|
+
*/
|
|
6
|
+
/** Un texto anulable como se manda: sin espacios a los lados, y vacío es `null`. */
|
|
7
|
+
export declare const textoONulo: (texto: string | null | undefined) => string | null;
|
|
8
|
+
/** Una fecha como se manda: ISO **con su hora** (la hora es el dato), o `null`. */
|
|
9
|
+
export declare const isoONulo: (fecha: Date | null) => string | null;
|
|
10
|
+
/** Una fecha del servidor como la captura el formulario. */
|
|
11
|
+
export declare const fechaONula: (iso: string | null | undefined) => Date | null;
|
|
12
|
+
/** Si dos instantes son el mismo; dos nulos también lo son. */
|
|
13
|
+
export declare const mismoInstante: (a: Date | null, b: Date | null) => boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Cuelga de cada campo el motivo con el que el servidor lo rechazó (`invalid_params`). Sólo si
|
|
16
|
+
* vienen como lista: un 400 de regla trae `detail` y `invalid_params` nulo, y `setErrors` no lo
|
|
17
|
+
* aguanta. Lo que no es de un campo lo dice quien llama, con `mensajeDeError`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const volcarErrores: <T extends FieldValues>(form: UseFormReturn<T>, error: unknown) => void;
|
|
20
|
+
/**
|
|
21
|
+
* Guardar un formulario de edición, igual en todos: si nada cambió, sólo se regresa; si el
|
|
22
|
+
* servidor lo rechaza, cada motivo se cuelga de su campo (`volcarErrores`), el mensaje queda
|
|
23
|
+
* abajo del formulario (`error`) y se avisa. Al guardar, regresa a la pantalla de antes.
|
|
24
|
+
*/
|
|
25
|
+
export declare function useGuardado<T extends FieldValues>(form: UseFormReturn<T>): {
|
|
26
|
+
error: string | null;
|
|
27
|
+
guardar: (cambios: object, mandar: () => Promise<unknown>) => Promise<void>;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* De dos cuerpos completos —lo que se mandaría con lo que vino y con lo capturado—, sólo las
|
|
31
|
+
* llaves que cambiaron, como el `formParser` del portal: un `PATCH` con todo pisaría lo que alguien
|
|
32
|
+
* cambió en el portal mientras la pantalla estaba abierta. Compara por valor (`JSON`), así que
|
|
33
|
+
* sirve con listas y objetos (los contactos, una dirección).
|
|
34
|
+
*/
|
|
35
|
+
export declare const soloLoQueCambio: <T extends Record<string, unknown>>(antes: T, despues: T) => Partial<T>;
|
|
36
|
+
//# sourceMappingURL=guardado.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardado.d.ts","sourceRoot":"","sources":["../../../../src/formularios/guardado.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIlE;;;GAGG;AAEH,oFAAoF;AACpF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM,GAAG,IAGtE,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,QAAQ,GAAI,OAAO,IAAI,GAAG,IAAI,KAAG,MAAM,GAAG,IAA4C,CAAC;AAEpG,4DAA4D;AAC5D,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,IAAI,GAAG,IACrC,CAAC;AAE/B,+DAA+D;AAC/D,eAAO,MAAM,aAAa,GAAI,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,KAAG,OACV,CAAC;AAEtD;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,WAAW,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,OAAO,SAG1F,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;;uBAErC,MAAM,UAAU,MAAM,OAAO,CAAC,OAAO,CAAC;EAiBzE;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,KAK9E,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Un buscador que pide al servidor: `[texto, busqueda, setTexto]`. `texto` es lo escrito, al
|
|
3
|
+
* momento, para el campo; `busqueda` es lo mismo sin espacios a los lados y **300 ms después de la
|
|
4
|
+
* última tecla**, para la consulta.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useBusqueda(): [string, string, (texto: string) => void];
|
|
7
|
+
//# sourceMappingURL=useBusqueda.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBusqueda.d.ts","sourceRoot":"","sources":["../../../../src/formularios/useBusqueda.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAQvE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ArchivoElegido, type PermisoDeCamara } from "../camara/elegir";
|
|
2
|
+
/** El tope de un archivo en el servidor (`ConArchivoSubido.TAMANO_MAXIMO`): 25 MB. */
|
|
3
|
+
export declare const TAMANO_MAXIMO_BYTES: number;
|
|
4
|
+
/**
|
|
5
|
+
* Lo que el servidor acepta de un adjunto (`core/shared/serializers.py`): PDF, imágenes y hojas de
|
|
6
|
+
* cálculo. Lo demás ni se ofrece en el selector.
|
|
7
|
+
*/
|
|
8
|
+
export declare const TIPOS_DE_ADJUNTO: string[];
|
|
9
|
+
/**
|
|
10
|
+
* Documentos (un PDF, una foto ya escaneada). Uno más pesado que el tope del servidor se rechaza al
|
|
11
|
+
* subirlo, así que se avisa aquí y se deja fuera. Una imagen adjuntada como archivo también se
|
|
12
|
+
* reduce, igual que una de la cámara.
|
|
13
|
+
*/
|
|
14
|
+
export declare function elegirDocumentos({ tipos, varias, tamanoMaximo, }?: {
|
|
15
|
+
tipos?: string[];
|
|
16
|
+
varias?: boolean;
|
|
17
|
+
tamanoMaximo?: number;
|
|
18
|
+
}): Promise<ArchivoElegido[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Pregunta de dónde (cámara, galería o un documento) y elige uno. Contesta `null` si se canceló en
|
|
21
|
+
* cualquier paso o el archivo no se puede subir (y ya se dijo por qué).
|
|
22
|
+
*/
|
|
23
|
+
export declare function elegirAdjunto({ titulo, permiso, tipos, }: {
|
|
24
|
+
titulo?: string;
|
|
25
|
+
permiso: PermisoDeCamara;
|
|
26
|
+
tipos?: string[];
|
|
27
|
+
}): Promise<ArchivoElegido | null>;
|
|
28
|
+
//# sourceMappingURL=elegir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elegir.d.ts","sourceRoot":"","sources":["../../../../src/fotos/elegir.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,KAAK,cAAc,EACnB,KAAK,eAAe,EACvB,MAAM,kBAAkB,CAAC;AAI1B,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,QAAmB,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,UAM5B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EACnC,KAAwB,EACxB,MAAc,EACd,YAAkC,GACrC,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA4BhG;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,EAChC,MAA2B,EAC3B,OAAO,EACP,KAAK,GACR,EAAE;IACC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAmCjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fotos/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/** Lo que la hoja lee de la consulta de su lista, sea de páginas o de scroll infinito. */
|
|
3
|
+
export interface ListaDeLaHoja<T> {
|
|
4
|
+
/** Lo cargado hasta ahora, de todas las páginas. */
|
|
5
|
+
renglones: T[];
|
|
6
|
+
/** Cuántos hay en total, si el servidor lo dice. */
|
|
7
|
+
total?: number | null;
|
|
8
|
+
/** La primera carga: todavía no hay nada que enseñar. */
|
|
9
|
+
cargando: boolean;
|
|
10
|
+
/** Falló y no hay nada que enseñar. */
|
|
11
|
+
fallo: boolean;
|
|
12
|
+
hayMas: boolean;
|
|
13
|
+
cargandoMas: boolean;
|
|
14
|
+
onMas: () => void;
|
|
15
|
+
onReintentar: () => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Una lista que sube desde abajo sobre una ficha: lo que cuelga de ella (las transferencias de un
|
|
19
|
+
* embarque, las facturas de un pedimento), **con su buscador, su scroll infinito y lo que se hace
|
|
20
|
+
* con ella** (agregar, quitar), sin salir de la ficha. Es la hermana de `HojaInferior` para cuando
|
|
21
|
+
* lo de adentro es una lista larga: aquélla mide su contenido y ésta tiene alto fijo, porque al
|
|
22
|
+
* buscar la lista crece y se encoge y la hoja no debe brincar.
|
|
23
|
+
*
|
|
24
|
+
* Los renglones son `RenglonDeHoja` o los de la lista de la app: una `Tarjeta` adentro ya va del
|
|
25
|
+
* color del fondo (`EnHoja`) para que se distinga de la hoja. Arriba de la lista, el buscador (si lo hay), `acciones` (los botones de la
|
|
26
|
+
* lista) y cuántos hay. Se cierra deslizándola, tocando el velo o con atrás.
|
|
27
|
+
*
|
|
28
|
+
* Sólo se monta abierta: quien la usa pide su consulta sólo entonces (`skip`).
|
|
29
|
+
*/
|
|
30
|
+
export default function HojaDeLista<T>({ abierta, onCerrar, titulo, subtitulo, buscador, acciones, lista, llave, renderItem, vacio, nombres, }: {
|
|
31
|
+
abierta: boolean;
|
|
32
|
+
onCerrar: () => void;
|
|
33
|
+
titulo: string;
|
|
34
|
+
subtitulo?: string | null;
|
|
35
|
+
buscador?: {
|
|
36
|
+
texto: string;
|
|
37
|
+
onCambiar: (texto: string) => void;
|
|
38
|
+
placeholder: string;
|
|
39
|
+
};
|
|
40
|
+
/** Lo que se hace con la lista entera: «Agregar transferencias». */
|
|
41
|
+
acciones?: React.ReactNode;
|
|
42
|
+
lista: ListaDeLaHoja<T>;
|
|
43
|
+
llave: (item: T) => string | number;
|
|
44
|
+
renderItem: (item: T) => React.ReactElement;
|
|
45
|
+
/** Lo que se dice sin renglones: «Este embarque no trae transferencias». */
|
|
46
|
+
vacio: string;
|
|
47
|
+
/** Cómo se cuentan: `["transferencia", "transferencias"]` → «12 transferencias». */
|
|
48
|
+
nombres?: readonly [string, string];
|
|
49
|
+
}): React.JSX.Element | null;
|
|
50
|
+
//# sourceMappingURL=HojaDeLista.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HojaDeLista.d.ts","sourceRoot":"","sources":["../../../../src/hoja/HojaDeLista.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAY3D,0FAA0F;AAC1F,MAAM,WAAW,aAAa,CAAC,CAAC;IAC5B,oDAAoD;IACpD,SAAS,EAAE,CAAC,EAAE,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,yDAAyD;IACzD,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,CAAC,EAAE,EACnC,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,KAAK,EACL,UAAU,EACV,KAAK,EACL,OAAO,GACV,EAAE;IACC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,oEAAoE;IACpE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACxB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC;IAC5C,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,4BAuHA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Una hoja que sube desde abajo sobre una ficha, para lo que se consulta y se cierra sin salir
|
|
4
|
+
* de ella: los hitos de un tramo, las excepciones, las comisiones. **Mide lo que
|
|
5
|
+
* su contenido**, hasta `ALTO_MAXIMO` de la pantalla; lo demás se recorre adentro.
|
|
6
|
+
*
|
|
7
|
+
* Se cierra deslizándola, tocando el velo de atrás o con atrás. Va **dentro de la pantalla** (no
|
|
8
|
+
* es un modal): en una ficha empujada no hay barra de pestañas que librar. Donde sí la hay (un
|
|
9
|
+
* mapa en una pestaña), la hoja es de la app.
|
|
10
|
+
*
|
|
11
|
+
* Está en `@acvl/mobile-components/hoja` y no en la entrada principal: usa `@gorhom/bottom-sheet`,
|
|
12
|
+
* que sólo instala la app que la usa.
|
|
13
|
+
*/
|
|
14
|
+
export default function HojaInferior({ abierta, onCerrar, titulo, subtitulo, children, }: {
|
|
15
|
+
abierta: boolean;
|
|
16
|
+
onCerrar: () => void;
|
|
17
|
+
titulo: string;
|
|
18
|
+
subtitulo?: string | null;
|
|
19
|
+
children: React.ReactNode;
|
|
20
|
+
}): React.JSX.Element;
|
|
21
|
+
//# sourceMappingURL=HojaInferior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HojaInferior.d.ts","sourceRoot":"","sources":["../../../../src/hoja/HojaInferior.tsx"],"names":[],"mappings":"AAQA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAOjD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACjC,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,QAAQ,GACX,EAAE;IACC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B,qBAkDA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hoja/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import MaterialCommunityIcons from "@expo/vector-icons/MaterialCommunityIcons";
|
|
2
|
+
import React from "react";
|
|
3
|
+
/** Una lista de «Más»: su renglón con contador y lo que abre en la hoja. */
|
|
4
|
+
export interface ListaDeLaFicha {
|
|
5
|
+
clave: string;
|
|
6
|
+
titulo: string;
|
|
7
|
+
icono: React.ComponentProps<typeof MaterialCommunityIcons>["name"];
|
|
8
|
+
/** `null` mientras se cuenta. */
|
|
9
|
+
cuantos: number | null;
|
|
10
|
+
/** Lo que acompaña al número: «2 vencidas», «1 pendiente». */
|
|
11
|
+
detalle?: string | null;
|
|
12
|
+
/** Lo que enseña la hoja; sólo se monta abierta. */
|
|
13
|
+
contenido: React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* «Más» de una ficha (un tracto, un cliente): lo que cuelga de ella, un renglón con cuántos hay
|
|
17
|
+
* que abre su hoja desde abajo (`HojaInferior`). Devuelve la sección (`seccion`, dentro del
|
|
18
|
+
* scroll) y la hoja (`hoja`, encima de la ficha, en `PantallaDeFicha.encima`).
|
|
19
|
+
*
|
|
20
|
+
* Quien llama pasa sólo las listas que se ven (cada una con su permiso); sin ninguna, la sección
|
|
21
|
+
* no se pinta.
|
|
22
|
+
*/
|
|
23
|
+
export declare function useMasDeLaFicha(listas: ListaDeLaFicha[], subtitulo?: string): {
|
|
24
|
+
seccion: React.JSX.Element | null;
|
|
25
|
+
hoja: React.JSX.Element;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=useMasDeLaFicha.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMasDeLaFicha.d.ts","sourceRoot":"","sources":["../../../../src/hoja/useMasDeLaFicha.tsx"],"names":[],"mappings":"AACA,OAAO,sBAAsB,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;IACnE,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oDAAoD;IACpD,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM;;;EAoC3E"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export * from "./tema";
|
|
2
|
+
export { Text, TextInput } from "./texto";
|
|
3
|
+
export { default as AccionesDelEncabezado, type AccionDelEncabezado, } from "./componentes/AccionesDelEncabezado";
|
|
4
|
+
export { default as BotonDeAvatar, inicialesDe } from "./componentes/BotonDeAvatar";
|
|
5
|
+
export { default as BotonGrande } from "./componentes/BotonGrande";
|
|
6
|
+
export { default as CabeceraEmpujada } from "./componentes/CabeceraEmpujada";
|
|
7
|
+
export { default as Chip, type TonoDeChip } from "./componentes/Chip";
|
|
8
|
+
export { default as ContenidoDePantalla } from "./componentes/ContenidoDePantalla";
|
|
9
|
+
export { default as EstadoVacio } from "./componentes/EstadoVacio";
|
|
10
|
+
export { default as Foto, ProveedorDeFotos, type BajarFoto, type FotoAVer, } from "./componentes/Foto";
|
|
11
|
+
export { default as IconoDeRenglon } from "./componentes/IconoDeRenglon";
|
|
12
|
+
export { Logo, LogoCompleto } from "./componentes/Logo";
|
|
13
|
+
export { default as Nota } from "./componentes/Nota";
|
|
14
|
+
export { default as OpcionesExcluyentes } from "./componentes/OpcionesExcluyentes";
|
|
15
|
+
export { default as PantallaDeError, type PropsDePantallaDeError, } from "./componentes/PantallaDeError";
|
|
16
|
+
export { default as Pestanas, type Pestana } from "./componentes/Pestanas";
|
|
17
|
+
export { default as Rotulo } from "./componentes/Rotulo";
|
|
18
|
+
export { default as RotuloDeSeccion } from "./componentes/RotuloDeSeccion";
|
|
19
|
+
export { default as Tarjeta } from "./componentes/Tarjeta";
|
|
20
|
+
export { default as TarjetaDeDatos } from "./componentes/TarjetaDeDatos";
|
|
21
|
+
export { default as TiraDeFotos, type FotoDeLaTira } from "./componentes/TiraDeFotos";
|
|
22
|
+
export { default as VisorDeFoto } from "./componentes/VisorDeFoto";
|
|
23
|
+
export { avisar, confirmar, mostrarDialogo, type BotonDeDialogo, type Dialogo, type EstiloDeBoton, } from "./dialogos/dialogos";
|
|
24
|
+
export { default as HostDeDialogos } from "./dialogos/HostDeDialogos";
|
|
25
|
+
export { default as BarraDePestanas, HUECO_DE_LA_BARRA } from "./navegacion/BarraDePestanas";
|
|
26
|
+
export type { IconoDePestana } from "./navegacion/BotonDeBarra";
|
|
27
|
+
export { ALTO_DEL_ENCABEZADO, TituloDelEncabezado, useOpcionesDelEncabezado, } from "./navegacion/encabezado";
|
|
28
|
+
export { CampoDeFecha, CampoDeFechaHora, CampoDeOpciones, CampoDeTelefono, CampoDeTexto, CampoInterruptor, Campo, ErrorDelCampo, } from "./formularios/campos";
|
|
29
|
+
export { default as CampoDeSeleccion, CampoDeVarias } from "./formularios/CampoDeSeleccion";
|
|
30
|
+
export { FechaControlada, FechaHoraControlada, InterruptorControlado, OpcionesControladas, SeleccionControlada, TelefonoControlado, TextoControlado, VariasControladas, type CampoAtado, type SinValor, } from "./formularios/controlados";
|
|
31
|
+
export { mensajeDeError, setErrors } from "./formularios/errores";
|
|
32
|
+
export { fechaONula, isoONulo, mismoInstante, soloLoQueCambio, textoONulo, useGuardado, volcarErrores, } from "./formularios/guardado";
|
|
33
|
+
export { default as SelectorDeOpcion, SelectorDeVarias, type Opcion, type PropsDeSelectorDeOpcion, type PropsDeSelectorDeVarias, } from "./formularios/SelectorDeOpcion";
|
|
34
|
+
export { default as TextoDeAccesoControlado } from "./formularios/TextoDeAccesoControlado";
|
|
35
|
+
export { useBusqueda } from "./formularios/useBusqueda";
|
|
36
|
+
export { default as HojaDeFiltros, InterruptorDeFiltro, OpcionDeFiltro, OpcionesMultiples, OrdenDeLista, type CampoDeOrden, SeccionDeFiltros, } from "./listas/HojaDeFiltros";
|
|
37
|
+
export { default as ListaPaginada, type ConsultaPaginada } from "./listas/ListaPaginada";
|
|
38
|
+
export { renglonesDe, type Pagina } from "./listas/paginado";
|
|
39
|
+
export { AvisoDeRecortados, Buscador, CabeceraDeLista, EstadoDeHoja, FilaConContador, RenglonDeContacto, RenglonDeDireccion, RenglonDeHoja, RenglonDeLiga, SeccionDeFicha, TarjetaDeLista, type FiltrosDeCabecera, } from "./listas/piezas";
|
|
40
|
+
export { default as TarjetaDeslizable, type AccionDeslizable } from "./listas/TarjetaDeslizable";
|
|
41
|
+
export { default as PantallaDeAcceso, type DatosDeAcceso, type ResultadoDeAcceso, } from "./pantallas/PantallaDeAcceso";
|
|
42
|
+
export { EsperaDeEdicion, FormularioDeEdicion } from "./pantallas/PantallaDeEdicion";
|
|
43
|
+
export { default as PantallaDeFicha } from "./pantallas/PantallaDeFicha";
|
|
44
|
+
export { default as PantallaDeHistorial, TarjetaDeEvento, type EventoDeHistorial, type Historial, } from "./pantallas/PantallaDeHistorial";
|
|
45
|
+
export { default as PantallaDePerfil } from "./pantallas/PantallaDePerfil";
|
|
46
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|