@acvl/mobile-components 0.0.0-stage → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +146 -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/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 +47 -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 +47 -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 +493 -0
- package/lib/module/formularios/campos.js.map +1 -0
- package/lib/module/formularios/controlados.js +197 -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 +178 -0
- package/lib/module/fotos/elegir.js.map +1 -0
- package/lib/module/fotos/index.js +8 -0
- package/lib/module/fotos/index.js.map +1 -0
- package/lib/module/fotos/reducir.js +93 -0
- package/lib/module/fotos/reducir.js.map +1 -0
- package/lib/module/hoja/HojaInferior.js +108 -0
- package/lib/module/hoja/HojaInferior.js.map +1 -0
- package/lib/module/hoja/index.js +7 -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 +66 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/listas/HojaDeFiltros.js +260 -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 +603 -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/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/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 +15 -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 +22 -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 +107 -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 +58 -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/fotos/reducir.d.ts +32 -0
- package/lib/typescript/src/fotos/reducir.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 +3 -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 +45 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/listas/HojaDeFiltros.d.ts +60 -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 +135 -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/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 +135 -5
- 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 +44 -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 +46 -0
- package/src/formularios/SelectorDeOpcion.tsx +407 -0
- package/src/formularios/TextoDeAccesoControlado.tsx +72 -0
- package/src/formularios/campos.tsx +483 -0
- package/src/formularios/controlados.tsx +198 -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 +194 -0
- package/src/fotos/index.ts +15 -0
- package/src/fotos/reducir.ts +87 -0
- package/src/hoja/HojaInferior.tsx +102 -0
- package/src/hoja/index.ts +4 -0
- package/src/hoja/useMasDeLaFicha.tsx +63 -0
- package/src/index.ts +143 -0
- package/src/listas/HojaDeFiltros.tsx +261 -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 +594 -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/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,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Achicar las fotos en el teléfono antes de subirlas.
|
|
4
|
+
import { ImageManipulator, SaveFormat } from "expo-image-manipulator";
|
|
5
|
+
import { Image } from "react-native";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Lado más largo con el que se sube una foto. Es el mismo con el que el backend la guarda
|
|
9
|
+
* (`MAX_DIMENSION` en `core/shared/fields.py`): arriba de eso los píxeles viajan para que el
|
|
10
|
+
* servidor los tire.
|
|
11
|
+
*/
|
|
12
|
+
export const LADO_MAXIMO = 1920;
|
|
13
|
+
|
|
14
|
+
/** Calidad JPEG de la copia reducida; el backend recodifica a 82 al guardarla. */
|
|
15
|
+
const CALIDAD = 0.8;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* La foto con su lado más largo en `LADO_MAXIMO` y codificada en JPEG.
|
|
19
|
+
*
|
|
20
|
+
* Una foto de la cámara (12 MP o más) pesa de 2 a 5 MB, y se sube con la señal que haya en el
|
|
21
|
+
* camino o en el patio: reducida pesa unos cientos de KB, sale antes y no se pasa del tope
|
|
22
|
+
* de tamaño del servidor. El servidor no pierde nada, porque de todos modos la guarda a 1920 px.
|
|
23
|
+
*
|
|
24
|
+
* Falla en blando: si no se puede reducir, se guarda la original —pesa más, pero es mejor que
|
|
25
|
+
* perder la foto que se acaba de tomar—.
|
|
26
|
+
*/
|
|
27
|
+
export async function reducirFoto(asset) {
|
|
28
|
+
const {
|
|
29
|
+
width,
|
|
30
|
+
height
|
|
31
|
+
} = asset;
|
|
32
|
+
const cabe = width > 0 && height > 0 && Math.max(width, height) <= LADO_MAXIMO;
|
|
33
|
+
if (cabe && asset.mimeType === "image/jpeg") return asset;
|
|
34
|
+
try {
|
|
35
|
+
const contexto = ImageManipulator.manipulate(asset.uri);
|
|
36
|
+
if (!cabe) {
|
|
37
|
+
// Se da un solo lado y el otro sale de la proporción.
|
|
38
|
+
contexto.resize(width >= height ? {
|
|
39
|
+
width: LADO_MAXIMO
|
|
40
|
+
} : {
|
|
41
|
+
height: LADO_MAXIMO
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const imagen = await contexto.renderAsync();
|
|
45
|
+
const reducida = await imagen.saveAsync({
|
|
46
|
+
compress: CALIDAD,
|
|
47
|
+
format: SaveFormat.JPEG
|
|
48
|
+
});
|
|
49
|
+
const base = (asset.fileName ?? reducida.uri.split("/").pop() ?? "foto").replace(/\.[^.]+$/, "");
|
|
50
|
+
return {
|
|
51
|
+
...asset,
|
|
52
|
+
uri: reducida.uri,
|
|
53
|
+
width: reducida.width,
|
|
54
|
+
height: reducida.height,
|
|
55
|
+
fileName: `${base}.jpg`,
|
|
56
|
+
mimeType: "image/jpeg",
|
|
57
|
+
fileSize: undefined
|
|
58
|
+
};
|
|
59
|
+
} catch (error) {
|
|
60
|
+
console.warn("No se pudo reducir la foto; se sube la original.", error);
|
|
61
|
+
return asset;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Lo mismo para una imagen adjuntada como archivo (`DocumentPicker`), que no trae sus medidas: se
|
|
67
|
+
* leen del archivo y se reduce como una foto. Si no se pueden leer, se guarda la original.
|
|
68
|
+
*/
|
|
69
|
+
export async function reducirImagenAdjunta(archivo) {
|
|
70
|
+
try {
|
|
71
|
+
const {
|
|
72
|
+
width,
|
|
73
|
+
height
|
|
74
|
+
} = await Image.getSize(archivo.uri);
|
|
75
|
+
const reducida = await reducirFoto({
|
|
76
|
+
uri: archivo.uri,
|
|
77
|
+
width,
|
|
78
|
+
height,
|
|
79
|
+
fileName: archivo.nombre,
|
|
80
|
+
mimeType: archivo.tipo,
|
|
81
|
+
type: "image"
|
|
82
|
+
});
|
|
83
|
+
return {
|
|
84
|
+
uri: reducida.uri,
|
|
85
|
+
nombre: reducida.fileName ?? archivo.nombre,
|
|
86
|
+
tipo: reducida.mimeType ?? archivo.tipo
|
|
87
|
+
};
|
|
88
|
+
} catch (error) {
|
|
89
|
+
console.warn("No se pudieron leer las medidas de la imagen; se sube la original.", error);
|
|
90
|
+
return archivo;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=reducir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ImageManipulator","SaveFormat","Image","LADO_MAXIMO","CALIDAD","reducirFoto","asset","width","height","cabe","Math","max","mimeType","contexto","manipulate","uri","resize","imagen","renderAsync","reducida","saveAsync","compress","format","JPEG","base","fileName","split","pop","replace","fileSize","undefined","error","console","warn","reducirImagenAdjunta","archivo","getSize","nombre","tipo","type"],"sourceRoot":"../../../src","sources":["fotos/reducir.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { crearEstilos, renglon, tipografia } from "../tema";
|
|
4
|
+
import { Text } from "../texto";
|
|
5
|
+
import BottomSheet, { BottomSheetBackdrop, BottomSheetScrollView } from "@gorhom/bottom-sheet";
|
|
6
|
+
import React, { useEffect, useRef } from "react";
|
|
7
|
+
import { BackHandler, useWindowDimensions, View } from "react-native";
|
|
8
|
+
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
9
|
+
|
|
10
|
+
/** Lo más que sube: arriba se sigue viendo un poco de la ficha, que dice dónde se está. */
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
const ALTO_MAXIMO = 0.85;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Una hoja que sube desde abajo sobre una ficha, para lo que se consulta y se cierra sin salir
|
|
16
|
+
* de ella: los hitos de un tramo, las excepciones, las comisiones. **Mide lo que
|
|
17
|
+
* su contenido**, hasta `ALTO_MAXIMO` de la pantalla; lo demás se recorre adentro.
|
|
18
|
+
*
|
|
19
|
+
* Se cierra deslizándola, tocando el velo de atrás o con atrás. Va **dentro de la pantalla** (no
|
|
20
|
+
* es un modal): en una ficha empujada no hay barra de pestañas que librar. Donde sí la hay (un
|
|
21
|
+
* mapa en una pestaña), la hoja es de la app.
|
|
22
|
+
*
|
|
23
|
+
* Está en `@acvl/mobile-components/hoja` y no en la entrada principal: usa `@gorhom/bottom-sheet`,
|
|
24
|
+
* que sólo instala la app que la usa.
|
|
25
|
+
*/
|
|
26
|
+
export default function HojaInferior({
|
|
27
|
+
abierta,
|
|
28
|
+
onCerrar,
|
|
29
|
+
titulo,
|
|
30
|
+
subtitulo,
|
|
31
|
+
children
|
|
32
|
+
}) {
|
|
33
|
+
const styles = useStyles();
|
|
34
|
+
const hoja = useRef(null);
|
|
35
|
+
const insets = useSafeAreaInsets();
|
|
36
|
+
const {
|
|
37
|
+
height
|
|
38
|
+
} = useWindowDimensions();
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (abierta) hoja.current?.snapToIndex(0);else hoja.current?.close();
|
|
41
|
+
}, [abierta]);
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
if (!abierta) return;
|
|
44
|
+
const sub = BackHandler.addEventListener("hardwareBackPress", () => {
|
|
45
|
+
onCerrar();
|
|
46
|
+
return true;
|
|
47
|
+
});
|
|
48
|
+
return () => sub.remove();
|
|
49
|
+
}, [abierta, onCerrar]);
|
|
50
|
+
return /*#__PURE__*/_jsx(BottomSheet, {
|
|
51
|
+
ref: hoja,
|
|
52
|
+
index: -1,
|
|
53
|
+
enableDynamicSizing: true,
|
|
54
|
+
maxDynamicContentSize: height * ALTO_MAXIMO,
|
|
55
|
+
enablePanDownToClose: true,
|
|
56
|
+
onClose: onCerrar,
|
|
57
|
+
backdropComponent: props => /*#__PURE__*/_jsx(BottomSheetBackdrop, {
|
|
58
|
+
...props,
|
|
59
|
+
appearsOnIndex: 0,
|
|
60
|
+
disappearsOnIndex: -1,
|
|
61
|
+
pressBehavior: "close"
|
|
62
|
+
}),
|
|
63
|
+
backgroundStyle: styles.fondo,
|
|
64
|
+
handleIndicatorStyle: styles.agarradera,
|
|
65
|
+
children: /*#__PURE__*/_jsxs(BottomSheetScrollView, {
|
|
66
|
+
contentContainerStyle: [styles.contenido, {
|
|
67
|
+
paddingBottom: insets.bottom + 24
|
|
68
|
+
}],
|
|
69
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
70
|
+
style: styles.cabecera,
|
|
71
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
72
|
+
style: styles.titulo,
|
|
73
|
+
children: titulo
|
|
74
|
+
}), subtitulo ? /*#__PURE__*/_jsx(Text, {
|
|
75
|
+
style: styles.subtitulo,
|
|
76
|
+
children: subtitulo
|
|
77
|
+
}) : null]
|
|
78
|
+
}), abierta ? children : null]
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const useStyles = crearEstilos(c => ({
|
|
83
|
+
fondo: {
|
|
84
|
+
backgroundColor: c.superficie,
|
|
85
|
+
borderWidth: c.esOscuro ? 1 : 0,
|
|
86
|
+
borderColor: c.secondaryLighter
|
|
87
|
+
},
|
|
88
|
+
agarradera: {
|
|
89
|
+
backgroundColor: c.secondaryLight
|
|
90
|
+
},
|
|
91
|
+
contenido: {
|
|
92
|
+
paddingHorizontal: 20,
|
|
93
|
+
gap: 12
|
|
94
|
+
},
|
|
95
|
+
cabecera: {
|
|
96
|
+
gap: 2
|
|
97
|
+
},
|
|
98
|
+
titulo: {
|
|
99
|
+
...renglon(tipografia.titulo),
|
|
100
|
+
fontWeight: "900",
|
|
101
|
+
color: c.texto
|
|
102
|
+
},
|
|
103
|
+
subtitulo: {
|
|
104
|
+
...renglon(tipografia.secundario),
|
|
105
|
+
color: c.secondary
|
|
106
|
+
}
|
|
107
|
+
}));
|
|
108
|
+
//# sourceMappingURL=HojaInferior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["crearEstilos","renglon","tipografia","Text","BottomSheet","BottomSheetBackdrop","BottomSheetScrollView","React","useEffect","useRef","BackHandler","useWindowDimensions","View","useSafeAreaInsets","jsx","_jsx","jsxs","_jsxs","ALTO_MAXIMO","HojaInferior","abierta","onCerrar","titulo","subtitulo","children","styles","useStyles","hoja","insets","height","current","snapToIndex","close","sub","addEventListener","remove","ref","index","enableDynamicSizing","maxDynamicContentSize","enablePanDownToClose","onClose","backdropComponent","props","appearsOnIndex","disappearsOnIndex","pressBehavior","backgroundStyle","fondo","handleIndicatorStyle","agarradera","contentContainerStyle","contenido","paddingBottom","bottom","style","cabecera","c","backgroundColor","superficie","borderWidth","esOscuro","borderColor","secondaryLighter","secondaryLight","paddingHorizontal","gap","fontWeight","color","texto","secundario","secondary"],"sourceRoot":"../../../src","sources":["hoja/HojaInferior.tsx"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,OAAO,EAAEC,UAAU,QAAQ,SAAS;AAC3D,SAASC,IAAI,QAAQ,UAAU;AAC/B,OAAOC,WAAW,IACdC,mBAAmB,EACnBC,qBAAqB,QAElB,sBAAsB;AAC7B,OAAOC,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChD,SAASC,WAAW,EAAEC,mBAAmB,EAAEC,IAAI,QAAQ,cAAc;AACrE,SAASC,iBAAiB,QAAQ,gCAAgC;;AAElE;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,WAAW,GAAG,IAAI;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAAC;EACjCC,OAAO;EACPC,QAAQ;EACRC,MAAM;EACNC,SAAS;EACTC;AAOJ,CAAC,EAAE;EACC,MAAMC,MAAM,GAAGC,SAAS,CAAC,CAAC;EAC1B,MAAMC,IAAI,GAAGlB,MAAM,CAAc,IAAI,CAAC;EACtC,MAAMmB,MAAM,GAAGf,iBAAiB,CAAC,CAAC;EAClC,MAAM;IAAEgB;EAAO,CAAC,GAAGlB,mBAAmB,CAAC,CAAC;EAExCH,SAAS,CAAC,MAAM;IACZ,IAAIY,OAAO,EAAEO,IAAI,CAACG,OAAO,EAAEC,WAAW,CAAC,CAAC,CAAC,CAAC,KACrCJ,IAAI,CAACG,OAAO,EAAEE,KAAK,CAAC,CAAC;EAC9B,CAAC,EAAE,CAACZ,OAAO,CAAC,CAAC;EAEbZ,SAAS,CAAC,MAAM;IACZ,IAAI,CAACY,OAAO,EAAE;IACd,MAAMa,GAAG,GAAGvB,WAAW,CAACwB,gBAAgB,CAAC,mBAAmB,EAAE,MAAM;MAChEb,QAAQ,CAAC,CAAC;MACV,OAAO,IAAI;IACf,CAAC,CAAC;IACF,OAAO,MAAMY,GAAG,CAACE,MAAM,CAAC,CAAC;EAC7B,CAAC,EAAE,CAACf,OAAO,EAAEC,QAAQ,CAAC,CAAC;EAEvB,oBACIN,IAAA,CAACX,WAAW;IACRgC,GAAG,EAAET,IAAK;IACVU,KAAK,EAAE,CAAC,CAAE;IACVC,mBAAmB;IACnBC,qBAAqB,EAAEV,MAAM,GAAGX,WAAY;IAC5CsB,oBAAoB;IACpBC,OAAO,EAAEpB,QAAS;IAClBqB,iBAAiB,EAAGC,KAA+B,iBAC/C5B,IAAA,CAACV,mBAAmB;MAAA,GACZsC,KAAK;MACTC,cAAc,EAAE,CAAE;MAClBC,iBAAiB,EAAE,CAAC,CAAE;MACtBC,aAAa,EAAC;IAAO,CACxB,CACH;IACFC,eAAe,EAAEtB,MAAM,CAACuB,KAAM;IAC9BC,oBAAoB,EAAExB,MAAM,CAACyB,UAAW;IAAA1B,QAAA,eAExCP,KAAA,CAACX,qBAAqB;MAClB6C,qBAAqB,EAAE,CAAC1B,MAAM,CAAC2B,SAAS,EAAE;QAAEC,aAAa,EAAEzB,MAAM,CAAC0B,MAAM,GAAG;MAAG,CAAC,CAAE;MAAA9B,QAAA,gBAEjFP,KAAA,CAACL,IAAI;QAAC2C,KAAK,EAAE9B,MAAM,CAAC+B,QAAS;QAAAhC,QAAA,gBACzBT,IAAA,CAACZ,IAAI;UAACoD,KAAK,EAAE9B,MAAM,CAACH,MAAO;UAAAE,QAAA,EAAEF;QAAM,CAAO,CAAC,EAC1CC,SAAS,gBAAGR,IAAA,CAACZ,IAAI;UAACoD,KAAK,EAAE9B,MAAM,CAACF,SAAU;UAAAC,QAAA,EAAED;QAAS,CAAO,CAAC,GAAG,IAAI;MAAA,CACnE,CAAC,EACNH,OAAO,GAAGI,QAAQ,GAAG,IAAI;IAAA,CACP;EAAC,CACf,CAAC;AAEtB;AAEA,MAAME,SAAS,GAAG1B,YAAY,CAAEyD,CAAC,KAAM;EACnCT,KAAK,EAAE;IACHU,eAAe,EAAED,CAAC,CAACE,UAAU;IAC7BC,WAAW,EAAEH,CAAC,CAACI,QAAQ,GAAG,CAAC,GAAG,CAAC;IAC/BC,WAAW,EAAEL,CAAC,CAACM;EACnB,CAAC;EACDb,UAAU,EAAE;IAAEQ,eAAe,EAAED,CAAC,CAACO;EAAe,CAAC;EACjDZ,SAAS,EAAE;IAAEa,iBAAiB,EAAE,EAAE;IAAEC,GAAG,EAAE;EAAG,CAAC;EAC7CV,QAAQ,EAAE;IAAEU,GAAG,EAAE;EAAE,CAAC;EACpB5C,MAAM,EAAE;IAAE,GAAGrB,OAAO,CAACC,UAAU,CAACoB,MAAM,CAAC;IAAE6C,UAAU,EAAE,KAAK;IAAEC,KAAK,EAAEX,CAAC,CAACY;EAAM,CAAC;EAC5E9C,SAAS,EAAE;IAAE,GAAGtB,OAAO,CAACC,UAAU,CAACoE,UAAU,CAAC;IAAEF,KAAK,EAAEX,CAAC,CAACc;EAAU;AACvE,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// `@acvl/mobile-components/hoja`: lo que sube desde abajo sobre una ficha. Va aparte de la entrada
|
|
4
|
+
// principal porque usa `@gorhom/bottom-sheet`, que sólo instala la app que la usa.
|
|
5
|
+
export { default as HojaInferior } from "./HojaInferior";
|
|
6
|
+
export { useMasDeLaFicha } from "./useMasDeLaFicha";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","HojaInferior","useMasDeLaFicha"],"sourceRoot":"../../../src","sources":["hoja/index.ts"],"mappings":";;AAAA;AACA;AACA,SAASA,OAAO,IAAIC,YAAY,QAAQ,gBAAgB;AACxD,SAASC,eAAe,QAA6B,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import HojaInferior from "./HojaInferior";
|
|
4
|
+
import React from "react";
|
|
5
|
+
import { FilaConContador, SeccionDeFicha } from "../listas/piezas";
|
|
6
|
+
|
|
7
|
+
/** Una lista de «Más»: su renglón con contador y lo que abre en la hoja. */
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
/**
|
|
10
|
+
* «Más» de una ficha (un tracto, un cliente): lo que cuelga de ella, un renglón con cuántos hay
|
|
11
|
+
* que abre su hoja desde abajo (`HojaInferior`). Devuelve la sección (`seccion`, dentro del
|
|
12
|
+
* scroll) y la hoja (`hoja`, encima de la ficha, en `PantallaDeFicha.encima`).
|
|
13
|
+
*
|
|
14
|
+
* Quien llama pasa sólo las listas que se ven (cada una con su permiso); sin ninguna, la sección
|
|
15
|
+
* no se pinta.
|
|
16
|
+
*/
|
|
17
|
+
export function useMasDeLaFicha(listas, subtitulo) {
|
|
18
|
+
// Lo que enseña se queda al cerrarla, para que su título no se vacíe mientras baja.
|
|
19
|
+
const [clave, setClave] = React.useState(null);
|
|
20
|
+
const [abierta, setAbierta] = React.useState(false);
|
|
21
|
+
const cerrar = React.useCallback(() => setAbierta(false), []);
|
|
22
|
+
const elegida = listas.find(l => l.clave === clave);
|
|
23
|
+
const seccion = listas.length ? /*#__PURE__*/_jsx(SeccionDeFicha, {
|
|
24
|
+
titulo: "M\xE1s",
|
|
25
|
+
children: listas.map(l => /*#__PURE__*/_jsx(FilaConContador, {
|
|
26
|
+
icono: l.icono,
|
|
27
|
+
etiqueta: l.titulo,
|
|
28
|
+
cuantos: l.cuantos,
|
|
29
|
+
detalle: l.detalle,
|
|
30
|
+
onPress: () => {
|
|
31
|
+
setClave(l.clave);
|
|
32
|
+
setAbierta(true);
|
|
33
|
+
}
|
|
34
|
+
}, l.clave))
|
|
35
|
+
}) : null;
|
|
36
|
+
const hoja = /*#__PURE__*/_jsx(HojaInferior, {
|
|
37
|
+
abierta: abierta && Boolean(elegida),
|
|
38
|
+
onCerrar: cerrar,
|
|
39
|
+
titulo: elegida?.titulo ?? "",
|
|
40
|
+
subtitulo: subtitulo,
|
|
41
|
+
children: abierta ? elegida?.contenido : null
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
seccion,
|
|
45
|
+
hoja
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=useMasDeLaFicha.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HojaInferior","React","FilaConContador","SeccionDeFicha","jsx","_jsx","useMasDeLaFicha","listas","subtitulo","clave","setClave","useState","abierta","setAbierta","cerrar","useCallback","elegida","find","l","seccion","length","titulo","children","map","icono","etiqueta","cuantos","detalle","onPress","hoja","Boolean","onCerrar","contenido"],"sourceRoot":"../../../src","sources":["hoja/useMasDeLaFicha.tsx"],"mappings":";;AAAA,OAAOA,YAAY,MAAM,gBAAgB;AAEzC,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,EAAEC,cAAc,QAAQ,kBAAkB;;AAElE;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAACC,MAAwB,EAAEC,SAAkB,EAAE;EAC1E;EACA,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGT,KAAK,CAACU,QAAQ,CAAgB,IAAI,CAAC;EAC7D,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGZ,KAAK,CAACU,QAAQ,CAAC,KAAK,CAAC;EACnD,MAAMG,MAAM,GAAGb,KAAK,CAACc,WAAW,CAAC,MAAMF,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;EAC7D,MAAMG,OAAO,GAAGT,MAAM,CAACU,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACT,KAAK,KAAKA,KAAK,CAAC;EAErD,MAAMU,OAAO,GAAGZ,MAAM,CAACa,MAAM,gBACzBf,IAAA,CAACF,cAAc;IAACkB,MAAM,EAAC,QAAK;IAAAC,QAAA,EACvBf,MAAM,CAACgB,GAAG,CAAEL,CAAC,iBACVb,IAAA,CAACH,eAAe;MAEZsB,KAAK,EAAEN,CAAC,CAACM,KAAM;MACfC,QAAQ,EAAEP,CAAC,CAACG,MAAO;MACnBK,OAAO,EAAER,CAAC,CAACQ,OAAQ;MACnBC,OAAO,EAAET,CAAC,CAACS,OAAQ;MACnBC,OAAO,EAAEA,CAAA,KAAM;QACXlB,QAAQ,CAACQ,CAAC,CAACT,KAAK,CAAC;QACjBI,UAAU,CAAC,IAAI,CAAC;MACpB;IAAE,GARGK,CAAC,CAACT,KASV,CACJ;EAAC,CACU,CAAC,GACjB,IAAI;EAER,MAAMoB,IAAI,gBACNxB,IAAA,CAACL,YAAY;IACTY,OAAO,EAAEA,OAAO,IAAIkB,OAAO,CAACd,OAAO,CAAE;IACrCe,QAAQ,EAAEjB,MAAO;IACjBO,MAAM,EAAEL,OAAO,EAAEK,MAAM,IAAI,EAAG;IAC9Bb,SAAS,EAAEA,SAAU;IAAAc,QAAA,EAEpBV,OAAO,GAAGI,OAAO,EAAEgB,SAAS,GAAG;EAAI,CAC1B,CACjB;EACD,OAAO;IAAEb,OAAO;IAAEU;EAAK,CAAC;AAC5B","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// ==============================|| TEMA ||============================== //
|
|
4
|
+
|
|
5
|
+
export * from "./tema";
|
|
6
|
+
export { Text, TextInput } from "./texto";
|
|
7
|
+
|
|
8
|
+
// ==============================|| COMPONENTES ||============================== //
|
|
9
|
+
|
|
10
|
+
export { default as AccionesDelEncabezado } from "./componentes/AccionesDelEncabezado";
|
|
11
|
+
export { default as BotonDeAvatar, inicialesDe } from "./componentes/BotonDeAvatar";
|
|
12
|
+
export { default as BotonGrande } from "./componentes/BotonGrande";
|
|
13
|
+
export { default as CabeceraEmpujada } from "./componentes/CabeceraEmpujada";
|
|
14
|
+
export { default as Chip } from "./componentes/Chip";
|
|
15
|
+
export { default as ContenidoDePantalla } from "./componentes/ContenidoDePantalla";
|
|
16
|
+
export { default as EstadoVacio } from "./componentes/EstadoVacio";
|
|
17
|
+
export { default as Foto, ProveedorDeFotos } from "./componentes/Foto";
|
|
18
|
+
export { default as IconoDeRenglon } from "./componentes/IconoDeRenglon";
|
|
19
|
+
export { Logo, LogoCompleto } from "./componentes/Logo";
|
|
20
|
+
export { default as Nota } from "./componentes/Nota";
|
|
21
|
+
export { default as OpcionesExcluyentes } from "./componentes/OpcionesExcluyentes";
|
|
22
|
+
export { default as PantallaDeError } from "./componentes/PantallaDeError";
|
|
23
|
+
export { default as Pestanas } from "./componentes/Pestanas";
|
|
24
|
+
export { default as Rotulo } from "./componentes/Rotulo";
|
|
25
|
+
export { default as RotuloDeSeccion } from "./componentes/RotuloDeSeccion";
|
|
26
|
+
export { default as Tarjeta } from "./componentes/Tarjeta";
|
|
27
|
+
export { default as TarjetaDeDatos } from "./componentes/TarjetaDeDatos";
|
|
28
|
+
export { default as TiraDeFotos } from "./componentes/TiraDeFotos";
|
|
29
|
+
export { default as VisorDeFoto } from "./componentes/VisorDeFoto";
|
|
30
|
+
|
|
31
|
+
// ==============================|| DIÁLOGOS ||============================== //
|
|
32
|
+
|
|
33
|
+
export { avisar, confirmar, mostrarDialogo } from "./dialogos/dialogos";
|
|
34
|
+
export { default as HostDeDialogos } from "./dialogos/HostDeDialogos";
|
|
35
|
+
|
|
36
|
+
// ==============================|| NAVEGACIÓN ||============================== //
|
|
37
|
+
|
|
38
|
+
export { default as BarraDePestanas, HUECO_DE_LA_BARRA } from "./navegacion/BarraDePestanas";
|
|
39
|
+
export { ALTO_DEL_ENCABEZADO, TituloDelEncabezado, useOpcionesDelEncabezado } from "./navegacion/encabezado";
|
|
40
|
+
|
|
41
|
+
// ==============================|| FORMULARIOS ||============================== //
|
|
42
|
+
|
|
43
|
+
export { CampoDeFecha, CampoDeFechaHora, CampoDeOpciones, CampoDeTelefono, CampoDeTexto, CampoInterruptor, Campo, ErrorDelCampo } from "./formularios/campos";
|
|
44
|
+
export { default as CampoDeSeleccion, CampoDeVarias } from "./formularios/CampoDeSeleccion";
|
|
45
|
+
export { FechaControlada, FechaHoraControlada, InterruptorControlado, OpcionesControladas, SeleccionControlada, TelefonoControlado, TextoControlado, VariasControladas } from "./formularios/controlados";
|
|
46
|
+
export { mensajeDeError, setErrors } from "./formularios/errores";
|
|
47
|
+
export { fechaONula, isoONulo, mismoInstante, soloLoQueCambio, textoONulo, useGuardado, volcarErrores } from "./formularios/guardado";
|
|
48
|
+
export { default as SelectorDeOpcion, SelectorDeVarias } from "./formularios/SelectorDeOpcion";
|
|
49
|
+
export { default as TextoDeAccesoControlado } from "./formularios/TextoDeAccesoControlado";
|
|
50
|
+
export { useBusqueda } from "./formularios/useBusqueda";
|
|
51
|
+
|
|
52
|
+
// ==============================|| LISTAS Y FICHAS ||============================== //
|
|
53
|
+
|
|
54
|
+
export { default as HojaDeFiltros, InterruptorDeFiltro, OpcionDeFiltro, OpcionesMultiples, OrdenDeLista, SeccionDeFiltros } from "./listas/HojaDeFiltros";
|
|
55
|
+
export { default as ListaPaginada } from "./listas/ListaPaginada";
|
|
56
|
+
export { renglonesDe } from "./listas/paginado";
|
|
57
|
+
export { AvisoDeRecortados, Buscador, CabeceraDeLista, EstadoDeHoja, FilaConContador, RenglonDeContacto, RenglonDeHoja, RenglonDeLiga, SeccionDeFicha, TarjetaDeLista } from "./listas/piezas";
|
|
58
|
+
export { default as TarjetaDeslizable } from "./listas/TarjetaDeslizable";
|
|
59
|
+
|
|
60
|
+
// ==============================|| PANTALLAS ||============================== //
|
|
61
|
+
|
|
62
|
+
export { default as PantallaDeAcceso } from "./pantallas/PantallaDeAcceso";
|
|
63
|
+
export { EsperaDeEdicion, FormularioDeEdicion } from "./pantallas/PantallaDeEdicion";
|
|
64
|
+
export { default as PantallaDeFicha } from "./pantallas/PantallaDeFicha";
|
|
65
|
+
export { default as PantallaDePerfil } from "./pantallas/PantallaDePerfil";
|
|
66
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Text","TextInput","default","AccionesDelEncabezado","BotonDeAvatar","inicialesDe","BotonGrande","CabeceraEmpujada","Chip","ContenidoDePantalla","EstadoVacio","Foto","ProveedorDeFotos","IconoDeRenglon","Logo","LogoCompleto","Nota","OpcionesExcluyentes","PantallaDeError","Pestanas","Rotulo","RotuloDeSeccion","Tarjeta","TarjetaDeDatos","TiraDeFotos","VisorDeFoto","avisar","confirmar","mostrarDialogo","HostDeDialogos","BarraDePestanas","HUECO_DE_LA_BARRA","ALTO_DEL_ENCABEZADO","TituloDelEncabezado","useOpcionesDelEncabezado","CampoDeFecha","CampoDeFechaHora","CampoDeOpciones","CampoDeTelefono","CampoDeTexto","CampoInterruptor","Campo","ErrorDelCampo","CampoDeSeleccion","CampoDeVarias","FechaControlada","FechaHoraControlada","InterruptorControlado","OpcionesControladas","SeleccionControlada","TelefonoControlado","TextoControlado","VariasControladas","mensajeDeError","setErrors","fechaONula","isoONulo","mismoInstante","soloLoQueCambio","textoONulo","useGuardado","volcarErrores","SelectorDeOpcion","SelectorDeVarias","TextoDeAccesoControlado","useBusqueda","HojaDeFiltros","InterruptorDeFiltro","OpcionDeFiltro","OpcionesMultiples","OrdenDeLista","SeccionDeFiltros","ListaPaginada","renglonesDe","AvisoDeRecortados","Buscador","CabeceraDeLista","EstadoDeHoja","FilaConContador","RenglonDeContacto","RenglonDeHoja","RenglonDeLiga","SeccionDeFicha","TarjetaDeLista","TarjetaDeslizable","PantallaDeAcceso","EsperaDeEdicion","FormularioDeEdicion","PantallaDeFicha","PantallaDePerfil"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import BotonGrande from "../componentes/BotonGrande";
|
|
4
|
+
import IconoDeRenglon from "../componentes/IconoDeRenglon";
|
|
5
|
+
import { crearEstilos, renglon, tipografia, usePaleta } from "../tema";
|
|
6
|
+
import { Text } from "../texto";
|
|
7
|
+
import MaterialIcons from "@expo/vector-icons/MaterialIcons";
|
|
8
|
+
import React from "react";
|
|
9
|
+
import { Modal, Pressable, ScrollView, Switch, TouchableOpacity, View } from "react-native";
|
|
10
|
+
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* La hoja de filtros y orden de una lista (viajes, recursos), a pantalla completa
|
|
14
|
+
* como la del mapa: con la letra al 180% un menú deja ver dos opciones. Se aplica al tocar, sin
|
|
15
|
+
* «Aplicar»; el botón de abajo dice cuántos renglones quedan. Cada lista pone sus secciones.
|
|
16
|
+
*/
|
|
17
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
18
|
+
export default function HojaDeFiltros({
|
|
19
|
+
abierta,
|
|
20
|
+
onCerrar,
|
|
21
|
+
hayAlgo,
|
|
22
|
+
onQuitar,
|
|
23
|
+
visibles,
|
|
24
|
+
nombres,
|
|
25
|
+
children
|
|
26
|
+
}) {
|
|
27
|
+
const c = usePaleta();
|
|
28
|
+
const styles = useStyles();
|
|
29
|
+
const insets = useSafeAreaInsets();
|
|
30
|
+
return /*#__PURE__*/_jsx(Modal, {
|
|
31
|
+
visible: abierta,
|
|
32
|
+
animationType: "slide",
|
|
33
|
+
onRequestClose: onCerrar,
|
|
34
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
35
|
+
style: [styles.hoja, {
|
|
36
|
+
paddingTop: insets.top + 10
|
|
37
|
+
}],
|
|
38
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
39
|
+
style: styles.cabecera,
|
|
40
|
+
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
41
|
+
onPress: onCerrar,
|
|
42
|
+
accessibilityLabel: "Cerrar",
|
|
43
|
+
children: /*#__PURE__*/_jsx(MaterialIcons, {
|
|
44
|
+
name: "arrow-back",
|
|
45
|
+
size: 45,
|
|
46
|
+
color: c.primary
|
|
47
|
+
})
|
|
48
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
49
|
+
style: styles.titulo,
|
|
50
|
+
children: "Filtros"
|
|
51
|
+
}), hayAlgo ? /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
52
|
+
onPress: onQuitar,
|
|
53
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
54
|
+
style: styles.limpiar,
|
|
55
|
+
children: "Quitar"
|
|
56
|
+
})
|
|
57
|
+
}) : null]
|
|
58
|
+
}), /*#__PURE__*/_jsx(ScrollView, {
|
|
59
|
+
contentContainerStyle: styles.contenido,
|
|
60
|
+
children: children
|
|
61
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
62
|
+
style: {
|
|
63
|
+
paddingBottom: insets.bottom + 16
|
|
64
|
+
},
|
|
65
|
+
children: /*#__PURE__*/_jsx(BotonGrande, {
|
|
66
|
+
onPress: onCerrar,
|
|
67
|
+
children: visibles === null ? "Listo" : `Ver ${visibles} ${visibles === 1 ? nombres[0] : nombres[1]}`
|
|
68
|
+
})
|
|
69
|
+
})]
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** El rótulo de una sección de la hoja. */
|
|
75
|
+
export function SeccionDeFiltros({
|
|
76
|
+
children
|
|
77
|
+
}) {
|
|
78
|
+
const styles = useStyles();
|
|
79
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
80
|
+
style: styles.seccion,
|
|
81
|
+
children: children
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/** Una opción como renglón: casilla (de varias) o círculo (de una), como la hoja del mapa. */
|
|
86
|
+
export function OpcionDeFiltro({
|
|
87
|
+
texto,
|
|
88
|
+
elegida,
|
|
89
|
+
unica = false,
|
|
90
|
+
onPress
|
|
91
|
+
}) {
|
|
92
|
+
const c = usePaleta();
|
|
93
|
+
const styles = useStyles();
|
|
94
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
95
|
+
onPress: onPress,
|
|
96
|
+
accessibilityRole: unica ? "radio" : "checkbox",
|
|
97
|
+
accessibilityState: {
|
|
98
|
+
checked: elegida
|
|
99
|
+
},
|
|
100
|
+
style: [styles.opcion, elegida && styles.opcionElegida],
|
|
101
|
+
children: [/*#__PURE__*/_jsx(IconoDeRenglon, {
|
|
102
|
+
name: unica ? elegida ? "radiobox-marked" : "radiobox-blank" : elegida ? "checkbox-marked" : "checkbox-blank-outline",
|
|
103
|
+
fontSize: tipografia.subtitulo,
|
|
104
|
+
color: elegida ? c.primary : c.secondary
|
|
105
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
106
|
+
style: styles.opcionTexto,
|
|
107
|
+
children: texto
|
|
108
|
+
})]
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** Varias opciones de un mismo filtro, cada una se prende y se apaga sola. */
|
|
113
|
+
export function OpcionesMultiples({
|
|
114
|
+
titulo,
|
|
115
|
+
opciones,
|
|
116
|
+
elegidas,
|
|
117
|
+
onCambiar
|
|
118
|
+
}) {
|
|
119
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
120
|
+
children: [/*#__PURE__*/_jsx(SeccionDeFiltros, {
|
|
121
|
+
children: titulo
|
|
122
|
+
}), opciones.map(o => /*#__PURE__*/_jsx(OpcionDeFiltro, {
|
|
123
|
+
texto: o.label,
|
|
124
|
+
elegida: elegidas.includes(o.value),
|
|
125
|
+
onPress: () => onCambiar(elegidas.includes(o.value) ? elegidas.filter(v => v !== o.value) : [...elegidas, o.value])
|
|
126
|
+
}, String(o.value)))]
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/** Un filtro de sí o no: el renglón entero lo alterna, no sólo el interruptor. */
|
|
131
|
+
export function InterruptorDeFiltro({
|
|
132
|
+
texto,
|
|
133
|
+
prendido,
|
|
134
|
+
onCambiar
|
|
135
|
+
}) {
|
|
136
|
+
const c = usePaleta();
|
|
137
|
+
const styles = useStyles();
|
|
138
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
139
|
+
onPress: () => onCambiar(!prendido),
|
|
140
|
+
accessibilityRole: "switch",
|
|
141
|
+
accessibilityState: {
|
|
142
|
+
checked: prendido
|
|
143
|
+
},
|
|
144
|
+
style: [styles.opcion, styles.interruptor, prendido && styles.opcionElegida],
|
|
145
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
146
|
+
style: styles.opcionTexto,
|
|
147
|
+
children: texto
|
|
148
|
+
}), /*#__PURE__*/_jsx(Switch, {
|
|
149
|
+
value: prendido,
|
|
150
|
+
onValueChange: onCambiar,
|
|
151
|
+
trackColor: {
|
|
152
|
+
true: c.primaryLight
|
|
153
|
+
},
|
|
154
|
+
thumbColor: prendido ? c.primary : undefined
|
|
155
|
+
})]
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* «Ordenar por» y su sentido. `orden` es el `ordering` que se manda (`-codigo`), o `undefined` si
|
|
161
|
+
* se deja el del servidor; con `porOmision`, ese «sin orden» se ofrece como opción.
|
|
162
|
+
*/
|
|
163
|
+
export function OrdenDeLista({
|
|
164
|
+
campos,
|
|
165
|
+
orden,
|
|
166
|
+
onOrdenar,
|
|
167
|
+
porOmision
|
|
168
|
+
}) {
|
|
169
|
+
const descendente = orden?.startsWith("-") ?? false;
|
|
170
|
+
const campo = orden?.replace(/^-/, "");
|
|
171
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
172
|
+
children: [/*#__PURE__*/_jsx(SeccionDeFiltros, {
|
|
173
|
+
children: "Ordenar por"
|
|
174
|
+
}), porOmision ? /*#__PURE__*/_jsx(OpcionDeFiltro, {
|
|
175
|
+
texto: porOmision,
|
|
176
|
+
unica: true,
|
|
177
|
+
elegida: orden === undefined,
|
|
178
|
+
onPress: () => onOrdenar(null)
|
|
179
|
+
}) : null, campos.map(c => /*#__PURE__*/_jsx(OpcionDeFiltro, {
|
|
180
|
+
texto: c.label,
|
|
181
|
+
unica: true,
|
|
182
|
+
elegida: campo === c.value,
|
|
183
|
+
onPress: () => onOrdenar(`${descendente ? "-" : ""}${c.value}`)
|
|
184
|
+
}, c.value)), campo !== undefined ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
185
|
+
children: [/*#__PURE__*/_jsx(SeccionDeFiltros, {
|
|
186
|
+
children: "Sentido"
|
|
187
|
+
}), /*#__PURE__*/_jsx(OpcionDeFiltro, {
|
|
188
|
+
texto: "Ascendente",
|
|
189
|
+
unica: true,
|
|
190
|
+
elegida: !descendente,
|
|
191
|
+
onPress: () => onOrdenar(campo)
|
|
192
|
+
}), /*#__PURE__*/_jsx(OpcionDeFiltro, {
|
|
193
|
+
texto: "Descendente",
|
|
194
|
+
unica: true,
|
|
195
|
+
elegida: descendente,
|
|
196
|
+
onPress: () => onOrdenar(`-${campo}`)
|
|
197
|
+
})]
|
|
198
|
+
}) : null]
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
const useStyles = crearEstilos(c => ({
|
|
202
|
+
hoja: {
|
|
203
|
+
flex: 1,
|
|
204
|
+
backgroundColor: c.fondo,
|
|
205
|
+
paddingHorizontal: 18,
|
|
206
|
+
gap: 12
|
|
207
|
+
},
|
|
208
|
+
cabecera: {
|
|
209
|
+
flexDirection: "row",
|
|
210
|
+
alignItems: "center",
|
|
211
|
+
gap: 8
|
|
212
|
+
},
|
|
213
|
+
titulo: {
|
|
214
|
+
flex: 1,
|
|
215
|
+
fontSize: tipografia.titulo,
|
|
216
|
+
fontWeight: "900",
|
|
217
|
+
color: c.primary
|
|
218
|
+
},
|
|
219
|
+
limpiar: {
|
|
220
|
+
...renglon(tipografia.cuerpo),
|
|
221
|
+
fontWeight: "700",
|
|
222
|
+
color: c.primary
|
|
223
|
+
},
|
|
224
|
+
contenido: {
|
|
225
|
+
gap: 8,
|
|
226
|
+
paddingBottom: 16
|
|
227
|
+
},
|
|
228
|
+
seccion: {
|
|
229
|
+
...renglon(tipografia.etiqueta),
|
|
230
|
+
fontWeight: "800",
|
|
231
|
+
color: c.secondary,
|
|
232
|
+
textTransform: "uppercase",
|
|
233
|
+
letterSpacing: 0.8,
|
|
234
|
+
marginTop: 10
|
|
235
|
+
},
|
|
236
|
+
opcion: {
|
|
237
|
+
flexDirection: "row",
|
|
238
|
+
alignItems: "flex-start",
|
|
239
|
+
gap: 10,
|
|
240
|
+
backgroundColor: c.superficie,
|
|
241
|
+
borderRadius: 14,
|
|
242
|
+
borderWidth: 2,
|
|
243
|
+
borderColor: c.secondaryLighter,
|
|
244
|
+
padding: 12
|
|
245
|
+
},
|
|
246
|
+
opcionElegida: {
|
|
247
|
+
borderColor: c.primary,
|
|
248
|
+
backgroundColor: c.primaryWash
|
|
249
|
+
},
|
|
250
|
+
interruptor: {
|
|
251
|
+
alignItems: "center"
|
|
252
|
+
},
|
|
253
|
+
opcionTexto: {
|
|
254
|
+
flex: 1,
|
|
255
|
+
...renglon(tipografia.subtitulo),
|
|
256
|
+
fontWeight: "700",
|
|
257
|
+
color: c.texto
|
|
258
|
+
}
|
|
259
|
+
}));
|
|
260
|
+
//# sourceMappingURL=HojaDeFiltros.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BotonGrande","IconoDeRenglon","crearEstilos","renglon","tipografia","usePaleta","Text","MaterialIcons","React","Modal","Pressable","ScrollView","Switch","TouchableOpacity","View","useSafeAreaInsets","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","HojaDeFiltros","abierta","onCerrar","hayAlgo","onQuitar","visibles","nombres","children","c","styles","useStyles","insets","visible","animationType","onRequestClose","style","hoja","paddingTop","top","cabecera","onPress","accessibilityLabel","name","size","color","primary","titulo","limpiar","contentContainerStyle","contenido","paddingBottom","bottom","SeccionDeFiltros","seccion","OpcionDeFiltro","texto","elegida","unica","accessibilityRole","accessibilityState","checked","opcion","opcionElegida","fontSize","subtitulo","secondary","opcionTexto","OpcionesMultiples","opciones","elegidas","onCambiar","map","o","label","includes","value","filter","v","String","InterruptorDeFiltro","prendido","interruptor","onValueChange","trackColor","true","primaryLight","thumbColor","undefined","OrdenDeLista","campos","orden","onOrdenar","porOmision","descendente","startsWith","campo","replace","flex","backgroundColor","fondo","paddingHorizontal","gap","flexDirection","alignItems","fontWeight","cuerpo","etiqueta","textTransform","letterSpacing","marginTop","superficie","borderRadius","borderWidth","borderColor","secondaryLighter","padding","primaryWash"],"sourceRoot":"../../../src","sources":["listas/HojaDeFiltros.tsx"],"mappings":"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","ignoreList":[]}
|