@datosgeo-atdt/geo-ui 0.11.2 → 0.11.3
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 +78 -0
- package/dist/components/DataTable.d.ts +1 -0
- package/dist/components/DataTable.d.ts.map +1 -1
- package/dist/geo-ui.js +1671 -1668
- package/dist/geo-ui.js.map +1 -1
- package/dist/geo-ui.umd.cjs +18 -18
- package/dist/geo-ui.umd.cjs.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -761,6 +761,7 @@ function App() {
|
|
|
761
761
|
| `className` | `string` | `""` | Clases CSS adicionales |
|
|
762
762
|
| `showIndex` | `boolean` | `false` | Mostrar columna con índice numérico |
|
|
763
763
|
| `indexLabel` | `string` | `"#"` | Etiqueta para la columna de índice |
|
|
764
|
+
| `onRowClick` | `(row: Record<string, any>, index: number) => void` | `undefined` | Callback que se ejecuta al hacer click en una fila. Recibe los datos de la fila y su índice |
|
|
764
765
|
|
|
765
766
|
#### Tipo DataTableColumn
|
|
766
767
|
|
|
@@ -863,6 +864,83 @@ function App() {
|
|
|
863
864
|
}
|
|
864
865
|
```
|
|
865
866
|
|
|
867
|
+
#### Ejemplo con interactividad bidireccional (Tabla ↔ Mapa)
|
|
868
|
+
|
|
869
|
+
Crea interacción entre la tabla y el mapa: click en tabla hace zoom en mapa, click en mapa cambia datos de tabla:
|
|
870
|
+
|
|
871
|
+
```tsx
|
|
872
|
+
import { MapaPMTiles, DataTable } from '@atdt/geo-ui';
|
|
873
|
+
import { useState } from 'react';
|
|
874
|
+
import '@atdt/geo-ui/style.css';
|
|
875
|
+
|
|
876
|
+
function App() {
|
|
877
|
+
const [nivel, setNivel] = useState<'entidad' | 'municipio'>('entidad');
|
|
878
|
+
const [selectedEnt, setSelectedEnt] = useState<string | null>(null);
|
|
879
|
+
|
|
880
|
+
return (
|
|
881
|
+
<div style={{ display: 'flex', width: '100%', height: '100vh' }}>
|
|
882
|
+
{/* Mapa con click handler */}
|
|
883
|
+
<MapaPMTiles
|
|
884
|
+
csvPath={nivel === 'entidad' ? '/prueba_entidad.csv' : `/cdmx_prueba.csv`}
|
|
885
|
+
fitToIds={selectedEnt ? [selectedEnt] : undefined}
|
|
886
|
+
mode="jenks"
|
|
887
|
+
showMunicipios={nivel === 'municipio'}
|
|
888
|
+
enablePopup={true}
|
|
889
|
+
/>
|
|
890
|
+
|
|
891
|
+
{/* Tabla con click handler */}
|
|
892
|
+
<DataTable
|
|
893
|
+
csvPath={nivel === 'entidad' ? '/prueba_entidad.csv' : `/cdmx_prueba.csv`}
|
|
894
|
+
columns={
|
|
895
|
+
nivel === 'entidad'
|
|
896
|
+
? [
|
|
897
|
+
{ key: 'entidad', label: 'Entidad' },
|
|
898
|
+
{ key: 'total', label: 'Total' }
|
|
899
|
+
]
|
|
900
|
+
: [
|
|
901
|
+
{ key: 'municipio', label: 'Municipio' },
|
|
902
|
+
{ key: 'valor', label: 'Valor' }
|
|
903
|
+
]
|
|
904
|
+
}
|
|
905
|
+
onRowClick={(row) => {
|
|
906
|
+
if (nivel === 'entidad') {
|
|
907
|
+
// Click en tabla de entidades → zoom a esa entidad y muestra municipios
|
|
908
|
+
setSelectedEnt(row.cvegeo);
|
|
909
|
+
setNivel('municipio');
|
|
910
|
+
}
|
|
911
|
+
}}
|
|
912
|
+
/>
|
|
913
|
+
|
|
914
|
+
{/* Botón para regresar */}
|
|
915
|
+
{nivel === 'municipio' && (
|
|
916
|
+
<button
|
|
917
|
+
style={{
|
|
918
|
+
position: 'absolute',
|
|
919
|
+
top: 20,
|
|
920
|
+
left: 20,
|
|
921
|
+
zIndex: 1000,
|
|
922
|
+
padding: '10px 20px'
|
|
923
|
+
}}
|
|
924
|
+
onClick={() => {
|
|
925
|
+
setNivel('entidad');
|
|
926
|
+
setSelectedEnt(null);
|
|
927
|
+
}}
|
|
928
|
+
>
|
|
929
|
+
← Regresar a entidades
|
|
930
|
+
</button>
|
|
931
|
+
)}
|
|
932
|
+
</div>
|
|
933
|
+
);
|
|
934
|
+
}
|
|
935
|
+
```
|
|
936
|
+
|
|
937
|
+
**Flujo de interacción:**
|
|
938
|
+
1. **Vista inicial**: Muestra tabla con entidades (`prueba_entidad.csv`)
|
|
939
|
+
2. **Click en fila de tabla**: Cambia a vista de municipios de esa entidad
|
|
940
|
+
3. **Mapa hace zoom**: Automáticamente hacia la entidad seleccionada
|
|
941
|
+
4. **Tabla cambia**: Muestra datos municipales (`cdmx_prueba.csv`)
|
|
942
|
+
5. **Botón "Regresar"**: Vuelve a la vista de entidades
|
|
943
|
+
|
|
866
944
|
### Formato de Números
|
|
867
945
|
|
|
868
946
|
Los números se formatean automáticamente con separadores de miles usando el formato mexicano:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../src/components/DataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../src/components/DataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuKvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|