Skip to content

Conversation

@manuelarretxea
Copy link
Contributor

No description provided.

@manuelarretxea manuelarretxea changed the base branch from main to dev February 2, 2026 12:41
@manuelarretxea
Copy link
Contributor Author

Resumen de Cambios en anemui-core

  1. css/sidebar.scss (-52 líneas)
  • Eliminados estilos de popovers (.popover, .popover-header, .popover-body) - movidos a topbar.scss

  1. css/topbar.scss (+25 líneas)
  • Añadidos estilos de popovers (migrados desde sidebar.scss):
    • .popover con estilos de fondo, borde, fuente y z-index
    • .popover-header y .popover-body con colores

  1. src/BaseApp.ts (+29 líneas)
  • Nuevo método getPopData(): Carga y procesa datos de popup desde popData.json
    • Usa el idioma configurado (es_ o en_) para seleccionar campos
    • Retorna datos formateados con claves traducidas (Nombre, Descripción, etc.)
  • Import añadido: loadPopData, PopDataItem desde CsDataLoader

  1. src/LayerManager.ts (+33 líneas)
  • Efecto fade-in/fade-out en showUncertaintyLayer():
    • Duración: 150ms en 10 pasos
    • Fade-in: opacidad 0 → 1 gradualmente
    • Fade-out: opacidad 1 → 0 y luego setVisible(false)

  1. src/OpenLayersMap.ts (+50/-50 líneas)
  • Reordenamiento de construcción de capas:
    • ANTES: Incertidumbre → Datos principales
    • AHORA: Datos principales → Incertidumbre (necesario para máscara NaN)
  • Cambio de .then() a await para garantizar secuencia
  • Mostrar capa de incertidumbre directamente (sin fade) al construirse:
    if (state.uncertaintyLayer) {
    this.uncertaintyLayer.forEach(layer => {
    layer.setOpacity(1);
    layer.setVisible(true);
    });
    }

  1. src/PaletteManager.ts (+568/-215 líneas) - Cambio más grande

Nuevas clases de Painter:

CrossPatternPainter (nuevo, recomendado):

  • Dibuja patrón de X continuo donde los extremos se tocan
  • Una X por cada píxel de datos con incertidumbre
  • Constructor: (color, opacity, tileSize)
  • Canvas escalado: cada píxel de datos = tileSize × tileSize

WebGLPatternPainter (nuevo, experimental):

  • Usa WebGL con shaders para mejor rendimiento
  • Patrón X con anti-aliasing
  • Fallback a Canvas 2D si WebGL no disponible

DotPatternPainter (refactorizado):

  • Ahora dibuja patrón X (similar a CategoryRangePainter)
  • Usa máscara para aplicar patrón solo donde hay incertidumbre

CategoryRangePainter:

  • Añadido soporte para capa de incertidumbre con patrón X
  • Usa composición de canvas (destination-in) para máscara

getPainter() mejorado:
public getPainter(forUncertainty: boolean = false): Painter {
if (forUncertainty && this.painters['uncertainty'] != undefined) {
return this.painters['uncertainty'];
}
// ...
}


  1. src/data/ChunkDownloader.ts (+48 líneas)
  • Nueva variable mainLayerData: Almacena datos de capa principal para máscara
  • Copia profunda: filteredArrays.map(arr => [...arr])
  • Filtrado de incertidumbre sobre mar/otros países:
    if (uncertaintyLayer && mainLayerData[i]) {
    filteredArray = filteredArray.map((val, idx) => {
    const mainVal = mainLayerData[i][idx];
    if (isNaN(mainVal) || !isFinite(mainVal)) {
    return 0; // No mostrar
    }
    return val;
    });
    }
  • Logs de debug para verificar funcionamiento de máscara

  1. src/data/CsDataLoader.ts (+27 líneas)
  • Nueva interfaz PopDataItem: Tipo para datos de popup procesados
  • Nueva función loadPopData(): Carga datos de popup desde JSON

  1. src/index.ts (+1 línea)
  • Exporta loadPopData y PopDataItem en la API pública

  1. src/language/language.ts (+16 líneas)
  • Nuevas traducciones para campos de PopData:
    • pop_name, pop_description, pop_importance
    • pop_time_scale, pop_geographic, pop_formula, pop_reference
    • En inglés y español

  1. src/ui/CsMenuItem.tsx (+5 líneas)
  • Cambio en Popover:
    • placement: 'right' → 'left'
    • Añadido offset: [0, 10] para mejor posicionamiento

  1. src/ui/MenuBar.tsx (+26 líneas)
  • Nuevo parámetro skipLayerToggle en toggleUncertaintyLayer():
    public toggleUncertaintyLayer(checked: boolean, skipLayerToggle: boolean = false)
    • Si true: Solo actualiza estado y checkbox, NO toca la capa
    • Evita parpadeo cuando la capa se va a reconstruir
  • Eliminados setTimeout de 200ms que causaban parpadeo
  • Llamadas actualizadas a usar skipLayerToggle: true cuando la capa se reconstruye

Resumen por Funcionalidad

│ Funcionalidad │ Archivos afectados │
│ Patrón X en incertidumbre │ PaletteManager.ts │
│ Fade-in/fade-out │ LayerManager.ts, MenuBar.tsx │
│ Evitar parpadeo │ MenuBar.tsx, OpenLayersMap.ts │
│ Máscara NaN (mar/países) │ ChunkDownloader.ts, OpenLayersMap.ts │
│ PopData (popups) │ BaseApp.ts, CsDataLoader.ts, language.ts, index.ts │
│ Estilos Popover │ sidebar.scss, topbar.scss, CsMenuItem.tsx │

@manuelarretxea manuelarretxea merged commit c84c154 into dev Feb 3, 2026
@manuelarretxea manuelarretxea deleted the fri branch February 3, 2026 10:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant