feat: initialisation de ĞéoFlux — visualisation géographique Ğ1

- Carte Leaflet plein écran avec heatmap (OpenStreetMap, dark mode)
- Sélecteur de période 24h / 7j / 30j
- Panneau latéral : volume total, compteur de transactions, top 3 villes
- mockData.ts : 2 400 transactions simulées sur 24 villes FR/EU
- DataService.ts : abstraction prête pour branchement Subsquid/Ğ1v2
- Schémas Zod (g1.schema.ts) : validation runtime Duniter GVA + Cesium+
- Adaptateurs DuniterAdapter et CesiumAdapter (Ğ1v1, à migrer v2)
- Suite de tests Vitest : 43 tests, conformité schéma Ğ1 vérifiée

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
syoul
2026-03-22 15:49:01 +01:00
commit d20d042bca
34 changed files with 6397 additions and 0 deletions

26
src/types/leaflet-heat.d.ts vendored Normal file
View File

@@ -0,0 +1,26 @@
import * as L from 'leaflet';
declare module 'leaflet' {
interface HeatMapOptions {
minOpacity?: number;
maxZoom?: number;
max?: number;
radius?: number;
blur?: number;
gradient?: Record<number, string>;
}
type HeatLatLngTuple = [number, number, number?];
interface HeatLayer extends Layer {
setLatLngs(latlngs: HeatLatLngTuple[]): this;
addLatLng(latlng: HeatLatLngTuple): this;
setOptions(options: HeatMapOptions): this;
redraw(): this;
}
function heatLayer(
latlngs: HeatLatLngTuple[],
options?: HeatMapOptions
): HeatLayer;
}