UNPKG

inegicomponentes-grafica

Version:

Componentes de visualizacion 2023 - Graficas

142 lines (132 loc) 4.31 kB
/**============================================== * ! CONTEXTO DEL ESTADO GLOBAL * * @descripcion: config, dataset y columnas del componente * * columnas: [ * { * nombre:"string", * alinear:"c|i|d" // c= centrar, d=derecha, i=izquierda * resaltar:true // texto en negritas * } * ] * * * *=============================================**/ import React, {useReducer, useContext, useState} from 'react'; import {Contexto} from './_Contexto'; import Highcharts from 'highcharts'; import HC_exporting from 'highcharts/modules/exporting'; let oGlobalOptionsHighcharts = { lang:{ contextButtonTitle:"Opciones", decimalPoint:".", downloadCSV:"Descarga CSV", downloadJPEG:"Descarga JPEG", downloadPDF:"Descarga PDF", downloadPNG:"Descarga PNG", downloadSVG:"Descarga SVG", downloadXLS:"Descarga XLS", exitFullscreen:"Salir de pantalla completa", exportInProgress:"Exportando...", hideData:"Ocultar tabla de datos", loading:"Cargando...", months:["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], noData:"No hay datos para mostrar", numericSymbolMagnitude:1000, numericSymbols:["k", "M", "G", "T", "P", "E"], playAsSound:"Escuchar sonido", printChart:"Imprimir gráfica", resetZoom:"Reiniciar Zoom", resetZoomTitle:"Zoom 1:1", shortMonths:["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], shortWeekdays:undefined, thousandsSep:"\u0020", viewData:"Ver tabla de datos", viewFullscreen:"Ver pantalla completa", weekdays:["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sabado"] } } let aDatasetDefault = []; let oConfigDefault = { id:"", _chartRef:null, // guarda la referencia del obj DOM donde se genera el svg de highcharts _chartOptions:{}, // objeto de configuracion para generar la gráfica de Highcharts exe:true, tipo:"linea", titulo:"", mostrar:true, herramientas:{ id:"", mostrar:true, exportarCsv:true, exportarXls:true }, color:"Tema.Azul", margen_derecho:10, margen_izquierdo:10, margen_superior:10, margen_inferior:10, // alto:400, grid:{ x:true, y:true }, ejeY:{ mostrar:true, texto:"", posicion:"l", }, ejeX:{ mostrar:true, texto:"", posicion:"b" }, leyenda: { mostrar:true, alto:150, }, series:{ mostrar:true, // curva:true, // puntos:true, // linea_guia_x:true, // linea_guia_y:true, // punto_guia:true, // etiquetas:{ //} }, tooltip:{ mostrar:true, // seguir_puntero:false, // seguimiento del cursor // formato:function(){} } }; // Creacion del contexto CONFIGURACION // let CONFIGURACION = React.createContext(); // Provider de configuracion const ConfiguracionProvider = ({children, initialConfig, initialDataset}) => { const [configOriginal,, setConfigOriginal] = useState({...oConfigDefault, ...initialConfig}) const [config, setConfigDinamica] = useState({...oConfigDefault, ...initialConfig}) const [dataset, setDataset] = useState(initialDataset) // console.log(initial); // set global options Highcharts HC_exporting(Highcharts); Highcharts.setOptions(oGlobalOptionsHighcharts) const updateConfiguracion = (c, dataset) => { setConfigDinamica({...config,...c}); } const exports = { configOriginal, config, dataset, updateConfiguracion } return ( <Contexto.Provider value={{...exports}}> {children} </Contexto.Provider> ) } export default ConfiguracionProvider; // provider de parametros