using EgwCoreLib.Razor; using EgwCoreLib.Razor.Data; using EgwCoreLib.Utils; using static EgwCoreLib.Razor.Data.chartJsData; using static EgwCoreLib.Razor.Toggler; namespace EgwCoreLib.BlazorTest.Pages { public partial class TestChart { #region Public Fields public List colors = new List(); public List Data = new List(); public List Labels = new List(); #endregion Public Fields #region Protected Fields protected Random rnd = new Random(); #endregion Protected Fields #region Protected Properties protected List? ChLabels { get; set; } = null; protected List? currDS { get; set; } = null; protected DtUtils.Periodo? periodo { get; set; } = new DtUtils.Periodo(DtUtils.PeriodSet.ThisTrim); #endregion Protected Properties #region Protected Methods protected string[] histData(int num) { List answ = new List(); for (int i = 0; i < 50; i++) { answ.Add($"{(double)(rnd.Next(10, 100)) / 10 + i}"); } return answ.ToArray(); } protected string[] histLabel(int num) { List answ = new List(); for (int i = 0; i < 50; i++) { answ.Add($"LBL_{i:00}"); } return answ.ToArray(); } protected override async Task OnInitializedAsync() { CurrFilt = new Toggler.SelectGlobalToggle() { leftString = "Multi-linea", rightString = "Singolo", isActive = true, toolTip = "Tipo di grafico" }; currDS = null; await Task.Delay(200); await setupData(); } protected override async Task OnParametersSetAsync() { await ReloadData(); await Task.Delay(1); } protected async Task ReloadData() { await Task.Delay(1); } protected async Task setPeriodo(DtUtils.Periodo newPeriodo) { await Task.Delay(1); periodo = newPeriodo; } protected void SetTipo(SelectGlobalToggle selFilt) { if (selFilt != null) { showMulti = !selFilt.isActive; } } protected double[] SimData() { List answ = new List(); double currColor = 0; for (int i = 0; i < 10; i++) { currColor = (double)(rnd.Next(10, 100)) / 10; answ.Add(currColor); if (currColor > 7) { colors.Add(new DoughnutStyling("#28FF69", "#00AA00")); } else if (currColor > 3) { colors.Add(new DoughnutStyling("orange", "#99AA00")); } else { colors.Add(new DoughnutStyling("red", "#FF6969")); } } return answ.ToArray(); } #endregion Protected Methods #region Private Fields private bool showMulti = false; #endregion Private Fields #region Private Properties private Toggler.SelectGlobalToggle CurrFilt { get; set; } = new Toggler.SelectGlobalToggle(); #endregion Private Properties #region Private Methods private async Task setupData() { currDS = null; List currDemo = new List(); ChLabels = new List(); int numMesi = 6; for (int iMese = 1; iMese <= numMesi; iMese++) { ChLabels.Add($"{iMese:00}"); } for (int iSerie = 0; iSerie < 4; iSerie++) { // simulo 12 mesi... List simData = new List(); for (int iMese = 1; iMese <= numMesi; iMese++) { simData.Add(new chartJsXY() { x = iMese, y = iMese + rnd.Next(-4, 4) }); } int rCol = rnd.Next(0, 155); int gCol = rnd.Next(0, 155); int bCol = rnd.Next(0, 100); chartJsData.chartJsDataSetXY singleData = new chartJsData.chartJsDataSetXY() { label = $"Data_{iSerie:00}", data = simData, borderColor = $"#{10 + rCol:X2}{30 + gCol:X2}{100 + bCol:X2}", backgroundColor = $"rgba({60 + rCol},{80 + gCol},{155 + bCol},0.3)", lineTension = 0, stepped = iSerie % 5 == 0, fill = iSerie % 3 == 0 ? "start" : "false" }; // aggiungo currDemo.Add(singleData); } currDS = currDemo; await Task.Delay(10); } #endregion Private Methods } }