Update UI Chart, Update Quote order
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (push) Successful in 9m49s

This commit is contained in:
Leandro Hernan Rojas 2025-06-09 11:32:32 -03:00
parent 134e702273
commit ca229ed6cb
11 changed files with 500 additions and 9 deletions

View File

@ -112,7 +112,8 @@ namespace Models.Repositories
if (!string.IsNullOrWhiteSpace(status))
query = query.Where(q => q.Status == status);
// 3) Execute paged query
// 3) Order by most recent and execute paged query
query = query.OrderByDescending(q => q.Issuedate);
var pagedEntities = await query.ToPagedResultAsync(page, pageSize);
// 4) Project to DTOs

View File

@ -65,7 +65,7 @@
</NavLink>
</div>
<div class="nav-item ps-4 py-0 border-start border-2 border-white">
<NavLink class="nav-link small py-0 px-2 text-start d-flex align-items-center" href="quotes" activeClass="bg-secondary text-white fw-semibold">
<NavLink class="nav-link small py-0 px-2 text-start d-flex align-items-center" href="quotes/dashboard" activeClass="bg-secondary text-white fw-semibold">
<i class="bi bi-receipt me-2 text-white"></i> Presupuesto
</NavLink>
</div>

View File

@ -0,0 +1,198 @@
@page "/quotes/dashboard"
@using PSC.Blazor.Components.Chartjs
@using PSC.Blazor.Components.Chartjs.Models.Pie
@using PSC.Blazor.Components.Chartjs.Models.Bar
@using PSC.Blazor.Components.Chartjs.Models.Line
@using PSC.Blazor.Components.Chartjs.Models.Common
@inject NavigationManager Navigation
<div class="container py-4" style="zoom:0.8;">
<!-- Header visual -->
<div class="bg-dark text-white p-4 rounded-3 mb-4 shadow-sm">
<h2 class="text-center m-0">Dashboard Operativo de Presupuestos</h2>
</div>
<!-- KPI Cards estilo limpio -->
<div class="row g-3 mb-4">
<div class="col-md-3">
<div class="d-flex align-items-center shadow-sm p-3 rounded border bg-white">
<i class="fas fa-calculator fa-2x text-success me-3"></i>
<div>
<div class="fw-bold fs-5">120</div>
<div class="text-muted small">Total Quotes</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="d-flex align-items-center shadow-sm p-3 rounded border bg-white">
<i class="fas fa-check-circle fa-2x text-success me-3"></i>
<div>
<div class="fw-bold fs-5">65%</div>
<div class="text-muted small">Approval Rate</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="d-flex align-items-center shadow-sm p-3 rounded border bg-white">
<i class="fas fa-dollar-sign fa-2x text-warning me-3"></i>
<div>
<div class="fw-bold fs-5">$150,000</div>
<div class="text-muted small">Total Quoted</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="d-flex align-items-center shadow-sm p-3 rounded border bg-white">
<i class="fas fa-chart-line fa-2x text-info me-3"></i>
<div>
<div class="fw-bold fs-5">$2,500</div>
<div class="text-muted small">Average Quote</div>
</div>
</div>
</div>
</div>
<!-- Botonera debajo del gráfico -->
<div class="d-flex justify-content-center flex-wrap gap-3 mb-4">
<button class="quote-action-button" @onclick="@(() => Navigation.NavigateTo("/quotes"))">
<i class="fas fa-search"></i>
<span>Buscar</span>
</button>
<button class="quote-action-button" @onclick="@(() => Navigation.NavigateTo("/quotes/create"))">
<i class="fas fa-plus"></i>
<span>Nuevo</span>
</button>
<button class="quote-action-button success" disabled @onclick="@(() => Navigation.NavigateTo("/quotes/authorize"))">
<i class="fas fa-check-circle"></i>
<span>Autorizar</span>
</button>
</div>
<!-- Charts -->
<div class="row g-4">
<div class="col-md-6">
<div class="card p-3 shadow-sm rounded-3">
<h6 class="text-center">Quotes by Status</h6>
<Chart Config="@_pieChartConfig" />
</div>
</div>
<div class="col-md-6">
<div class="card p-3 shadow-sm rounded-3">
<h6 class="text-center">Top Productos Presupuestados</h6>
<Chart Config="@_barChartConfig" />
</div>
</div>
<div class="col-12">
<div class="card p-3 shadow-sm rounded-3">
<h6 class="text-center">Quoted Amount Over Time</h6>
<Chart Config="@_lineChartConfig" />
</div>
</div>
</div>
</div>
@code {
private PieChartConfig _pieChartConfig;
private BarChartConfig _barChartConfig;
private LineChartConfig _lineChartConfig;
protected override void OnInitialized()
{
InitPieChart();
InitBarChart();
InitLineChart();
}
private void InitPieChart()
{
_pieChartConfig = new PieChartConfig
{
Options = new PieOptions
{
Plugins = new Plugins
{
Legend = new Legend
{
Display = true,
Position = LegendPosition.Bottom
}
}
},
Data = new PieData
{
Labels = new List<string> { "Aprobado", "Pendiente", "Rechazado" },
Datasets = new List<PieDataset>
{
new PieDataset
{
Data = new List<decimal?> { 60, 25, 15 },
BackgroundColor = new List<string> { "#4CAF50", "#FFC107", "#F44336" }
}
}
}
};
}
private void InitBarChart()
{
_barChartConfig = new BarChartConfig
{
Options = new Options
{
Plugins = new Plugins { Legend = new Legend { Display = false } },
Scales = new Dictionary<string, Axis>
{
["x"] = new Axis { Title = new AxesTitle { Display = true, Text = "Producto" } },
["y"] = new Axis { Title = new AxesTitle { Display = true, Text = "Cantidad" } }
}
},
Data = new BarData
{
Labels = new List<string> { "Prod A", "Prod B", "Prod C", "Prod D", "Prod E" },
Datasets = new List<BarDataset>
{
new BarDataset
{
Data = new List<decimal?> { 10, 8, 6, 5, 4 },
BackgroundColor = Enumerable.Repeat("#2196F3", 5).ToList()
}
}
}
};
}
private void InitLineChart()
{
_lineChartConfig = new LineChartConfig
{
Options = new Options
{
Plugins = new Plugins { Legend = new Legend { Display = true } },
Scales = new Dictionary<string, Axis>
{
["x"] = new Axis { Title = new AxesTitle { Display = true, Text = "Mes" } },
["y"] = new Axis { Title = new AxesTitle { Display = true, Text = "Monto ($)" } }
}
},
Data = new LineData
{
Labels = new List<string> { "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio" },
Datasets = new List<LineDataset>
{
new LineDataset
{
Label = "Total Presupuestado",
Data = new List<decimal?> { 10000, 12000, 13000, 14000, 16000, 20000 },
Fill = false,
BorderColor = "#4CAF50",
Tension = 0.3m
}
}
}
};
}
}

View File

@ -0,0 +1,33 @@
.quote-action-button {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.6rem 1.2rem;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 10px;
box-shadow: 0 2px 6px rgba(0,0,0,0.05);
font-size: 0.95rem;
font-weight: 500;
color: #333;
transition: all 0.2s ease-in-out;
}
.quote-action-button i {
font-size: 1.2rem;
}
.quote-action-button:hover {
background-color: #f8f9fa;
transform: translateY(-1px);
box-shadow: 0 4px 10px rgba(0,0,0,0.07);
}
.quote-action-button.success {
border-color: #198754;
color: #198754;
}
.quote-action-button.success:hover {
background-color: #e8f5e9;
}

View File

@ -113,10 +113,10 @@
<button class="btn btn-link btn-lg p-0 text-success ms-2" title="Generar PDF" @onclick="() => PrintPdf(quote.Id, quote.Quotenumber)"><i class="fas fa-print"></i></button>
@if (quote.Status?.ToLower() == "emitido")
{
<button class="btn btn-link btn-lg p-0 text-danger ms-2"
<button class="btn btn-link btn-lg p-0 text-info ms-2"
title="Autorizar presupuesto"
@onclick="() => Autorizar(quote.Id)">
<i class="fas fa-check-circle"></i>
<i class="fas fa-unlock"></i>
</button>
}
</td>
@ -259,19 +259,19 @@
<!-- FOOTER: PAGINACIÓN -->
<div class="card-footer d-flex justify-content-center align-items-center" style="zoom:80%;">
<div class="d-flex align-items-center gap-3">
<button class="btn btn-secondary rounded-pill" @onclick="PrimeraPagina" disabled="@(Filters.Page == 1)">
<button class="btn btn-secondary btn-sm rounded-pill" @onclick="PrimeraPagina" disabled="@(Filters.Page == 1)">
<i class="fas fa-angle-double-left me-1"></i> Primera
</button>
<button class="btn btn-secondary rounded-pill" @onclick="AnteriorPagina" disabled="@(!PuedeRetroceder)">
<button class="btn btn-secondary btn-sm rounded-pill" @onclick="AnteriorPagina" disabled="@(!PuedeRetroceder)">
<i class="fas fa-chevron-left me-1"></i> Anterior
</button>
<span class="mx-2">
Página <strong>@Filters.Page</strong> de <strong>@TotalPaginas</strong>
</span>
<button class="btn btn-secondary rounded-pill" @onclick="SiguientePagina" disabled="@(!PuedeAvanzar)">
<button class="btn btn-secondary btn-sm rounded-pill" @onclick="SiguientePagina" disabled="@(!PuedeAvanzar)">
Siguiente <i class="fas fa-chevron-right ms-1"></i>
</button>
<button class="btn btn-secondary rounded-pill" @onclick="UltimaPagina" disabled="@(Filters.Page == TotalPaginas)">
<button class="btn btn-secondary btn-sm rounded-pill" @onclick="UltimaPagina" disabled="@(Filters.Page == TotalPaginas)">
Última <i class="fas fa-angle-double-right ms-1"></i>
</button>
<div class="d-flex align-items-center ms-3">

View File

@ -160,6 +160,10 @@
"target": "Package",
"version": "[9.0.5, )",
"autoReferenced": true
},
"PSC.Blazor.Components.Chartjs": {
"target": "Package",
"version": "[8.0.8, )"
}
},
"imports": [

View File

@ -13,7 +13,26 @@
<SourceRoot Include="C:\Users\maski\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Content Include="$(NuGetPackageRoot)psc.blazor.components.chartjs\8.0.8\contentFiles\any\net8.0\libman.json" Condition="Exists('$(NuGetPackageRoot)psc.blazor.components.chartjs\8.0.8\contentFiles\any\net8.0\libman.json')">
<NuGetPackageId>PSC.Blazor.Components.Chartjs</NuGetPackageId>
<NuGetPackageVersion>8.0.8</NuGetPackageVersion>
<NuGetItemType>Content</NuGetItemType>
<Pack>false</Pack>
<Private>False</Private>
<Link>libman.json</Link>
</Content>
<Content Include="$(NuGetPackageRoot)psc.blazor.components.chartjs\8.0.8\contentFiles\any\net8.0\psc_ico.ico" Condition="Exists('$(NuGetPackageRoot)psc.blazor.components.chartjs\8.0.8\contentFiles\any\net8.0\psc_ico.ico')">
<NuGetPackageId>PSC.Blazor.Components.Chartjs</NuGetPackageId>
<NuGetPackageVersion>8.0.8</NuGetPackageVersion>
<NuGetItemType>Content</NuGetItemType>
<Pack>false</Pack>
<Private>False</Private>
<Link>psc_ico.ico</Link>
</Content>
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)psc.blazor.components.chartjs\8.0.8\buildTransitive\PSC.Blazor.Components.Chartjs.props" Condition="Exists('$(NuGetPackageRoot)psc.blazor.components.chartjs\8.0.8\buildTransitive\PSC.Blazor.Components.Chartjs.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.sdk.webassembly.pack\9.0.5\build\Microsoft.NET.Sdk.WebAssembly.Pack.props" Condition="Exists('$(NuGetPackageRoot)microsoft.net.sdk.webassembly.pack\9.0.5\build\Microsoft.NET.Sdk.WebAssembly.Pack.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.illink.tasks\8.0.16\build\Microsoft.NET.ILLink.Tasks.props" Condition="Exists('$(NuGetPackageRoot)microsoft.net.illink.tasks\8.0.16\build\Microsoft.NET.ILLink.Tasks.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.components.webassembly\8.0.6\build\net8.0\Microsoft.AspNetCore.Components.WebAssembly.props" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.components.webassembly\8.0.6\build\net8.0\Microsoft.AspNetCore.Components.WebAssembly.props')" />

View File

@ -3,9 +3,9 @@
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.1\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.1\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.components.analyzers\8.0.6\buildTransitive\netstandard2.0\Microsoft.AspNetCore.Components.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.components.analyzers\8.0.6\buildTransitive\netstandard2.0\Microsoft.AspNetCore.Components.Analyzers.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.net.sdk.webassembly.pack\9.0.5\build\Microsoft.NET.Sdk.WebAssembly.Pack.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.net.sdk.webassembly.pack\9.0.5\build\Microsoft.NET.Sdk.WebAssembly.Pack.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.binder\8.0.1\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.binder\8.0.1\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.components.webassembly.devserver\8.0.6\build\Microsoft.AspNetCore.Components.WebAssembly.DevServer.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.components.webassembly.devserver\8.0.6\build\Microsoft.AspNetCore.Components.WebAssembly.DevServer.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.components.analyzers\8.0.6\buildTransitive\netstandard2.0\Microsoft.AspNetCore.Components.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.components.analyzers\8.0.6\buildTransitive\netstandard2.0\Microsoft.AspNetCore.Components.Analyzers.targets')" />
</ImportGroup>
</Project>

View File

@ -764,6 +764,40 @@
}
}
},
"PSC.Blazor.Components.Chartjs/8.0.8": {
"type": "package",
"dependencies": {
"Microsoft.AspNetCore.Components.Web": "8.0.6"
},
"compile": {
"lib/net8.0/PSC.Blazor.Components.Chartjs.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/PSC.Blazor.Components.Chartjs.dll": {
"related": ".xml"
}
},
"contentFiles": {
"contentFiles/any/net8.0/libman.json": {
"buildAction": "Content",
"codeLanguage": "any",
"copyToOutput": false
},
"contentFiles/any/net8.0/psc_ico.ico": {
"buildAction": "Content",
"codeLanguage": "any",
"copyToOutput": false
}
},
"build": {
"buildTransitive/PSC.Blazor.Components.Chartjs.props": {}
},
"buildMultiTargeting": {
"buildMultiTargeting/PSC.Blazor.Components.Chartjs.props": {}
}
},
"PuppeteerSharp/6.0.0": {
"type": "package",
"dependencies": {
@ -3057,6 +3091,40 @@
}
}
},
"PSC.Blazor.Components.Chartjs/8.0.8": {
"type": "package",
"dependencies": {
"Microsoft.AspNetCore.Components.Web": "8.0.6"
},
"compile": {
"lib/net8.0/PSC.Blazor.Components.Chartjs.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/PSC.Blazor.Components.Chartjs.dll": {
"related": ".xml"
}
},
"contentFiles": {
"contentFiles/any/net8.0/libman.json": {
"buildAction": "Content",
"codeLanguage": "any",
"copyToOutput": false
},
"contentFiles/any/net8.0/psc_ico.ico": {
"buildAction": "Content",
"codeLanguage": "any",
"copyToOutput": false
}
},
"build": {
"buildTransitive/PSC.Blazor.Components.Chartjs.props": {}
},
"buildMultiTargeting": {
"buildMultiTargeting/PSC.Blazor.Components.Chartjs.props": {}
}
},
"PuppeteerSharp/6.0.0": {
"type": "package",
"dependencies": {
@ -5921,6 +5989,164 @@
"tools/install.ps1"
]
},
"PSC.Blazor.Components.Chartjs/8.0.8": {
"sha512": "N5P5DaddtBmmdpd96t3PQ2td9VUmTZM0VjMWBAuApJGS6QWjwAavRaKZ/jwcuQVk8uajf1/DmR3lWjyAFABtAQ==",
"type": "package",
"path": "psc.blazor.components.chartjs/8.0.8",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE",
"README.md",
"build/Microsoft.AspNetCore.StaticWebAssets.props",
"build/PSC.Blazor.Components.Chartjs.props",
"buildMultiTargeting/PSC.Blazor.Components.Chartjs.props",
"buildTransitive/PSC.Blazor.Components.Chartjs.props",
"content/libman.json",
"content/psc_ico.ico",
"contentFiles/any/net8.0/libman.json",
"contentFiles/any/net8.0/psc_ico.ico",
"lib/net8.0/PSC.Blazor.Components.Chartjs.dll",
"lib/net8.0/PSC.Blazor.Components.Chartjs.xml",
"psc.blazor.components.chartjs.8.0.8.nupkg.sha512",
"psc.blazor.components.chartjs.nuspec",
"psc_logo.png",
"staticwebassets/Chart.js",
"staticwebassets/PSC.Blazor.Components.Chartjs.bundle.scp.css",
"staticwebassets/lib/Chart.js/chart.cjs",
"staticwebassets/lib/Chart.js/chart.cjs.map",
"staticwebassets/lib/Chart.js/chart.esm.js",
"staticwebassets/lib/Chart.js/chart.esm.min.js",
"staticwebassets/lib/Chart.js/chart.js",
"staticwebassets/lib/Chart.js/chart.js.map",
"staticwebassets/lib/Chart.js/chart.min.js",
"staticwebassets/lib/Chart.js/chart.mjs",
"staticwebassets/lib/Chart.js/chart.umd.js",
"staticwebassets/lib/Chart.js/chart.umd.js.map",
"staticwebassets/lib/Chart.js/chunks/helpers.segment.cjs",
"staticwebassets/lib/Chart.js/chunks/helpers.segment.cjs.map",
"staticwebassets/lib/Chart.js/chunks/helpers.segment.js",
"staticwebassets/lib/Chart.js/chunks/helpers.segment.js.map",
"staticwebassets/lib/Chart.js/controllers/controller.bar.d.ts",
"staticwebassets/lib/Chart.js/controllers/controller.bubble.d.ts",
"staticwebassets/lib/Chart.js/controllers/controller.doughnut.d.ts",
"staticwebassets/lib/Chart.js/controllers/controller.line.d.ts",
"staticwebassets/lib/Chart.js/controllers/controller.pie.d.ts",
"staticwebassets/lib/Chart.js/controllers/controller.polarArea.d.ts",
"staticwebassets/lib/Chart.js/controllers/controller.radar.d.ts",
"staticwebassets/lib/Chart.js/controllers/controller.scatter.d.ts",
"staticwebassets/lib/Chart.js/controllers/index.d.ts",
"staticwebassets/lib/Chart.js/core/core.adapters.d.ts",
"staticwebassets/lib/Chart.js/core/core.animation.d.ts",
"staticwebassets/lib/Chart.js/core/core.animations.d.ts",
"staticwebassets/lib/Chart.js/core/core.animations.defaults.d.ts",
"staticwebassets/lib/Chart.js/core/core.animator.d.ts",
"staticwebassets/lib/Chart.js/core/core.config.d.ts",
"staticwebassets/lib/Chart.js/core/core.controller.d.ts",
"staticwebassets/lib/Chart.js/core/core.datasetController.d.ts",
"staticwebassets/lib/Chart.js/core/core.defaults.d.ts",
"staticwebassets/lib/Chart.js/core/core.element.d.ts",
"staticwebassets/lib/Chart.js/core/core.interaction.d.ts",
"staticwebassets/lib/Chart.js/core/core.layouts.d.ts",
"staticwebassets/lib/Chart.js/core/core.layouts.defaults.d.ts",
"staticwebassets/lib/Chart.js/core/core.plugins.d.ts",
"staticwebassets/lib/Chart.js/core/core.registry.d.ts",
"staticwebassets/lib/Chart.js/core/core.scale.autoskip.d.ts",
"staticwebassets/lib/Chart.js/core/core.scale.d.ts",
"staticwebassets/lib/Chart.js/core/core.scale.defaults.d.ts",
"staticwebassets/lib/Chart.js/core/core.ticks.d.ts",
"staticwebassets/lib/Chart.js/core/core.typedRegistry.d.ts",
"staticwebassets/lib/Chart.js/core/index.d.ts",
"staticwebassets/lib/Chart.js/elements/element.arc.d.ts",
"staticwebassets/lib/Chart.js/elements/element.bar.d.ts",
"staticwebassets/lib/Chart.js/elements/element.line.d.ts",
"staticwebassets/lib/Chart.js/elements/element.point.d.ts",
"staticwebassets/lib/Chart.js/elements/index.d.ts",
"staticwebassets/lib/Chart.js/helpers.cjs",
"staticwebassets/lib/Chart.js/helpers.cjs.map",
"staticwebassets/lib/Chart.js/helpers.esm.js",
"staticwebassets/lib/Chart.js/helpers.esm.min.js",
"staticwebassets/lib/Chart.js/helpers.js",
"staticwebassets/lib/Chart.js/helpers.js.map",
"staticwebassets/lib/Chart.js/helpers.mjs",
"staticwebassets/lib/Chart.js/helpers/helpers.canvas.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.collection.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.color.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.config.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.config.types.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.core.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.curve.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.dom.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.easing.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.extras.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.interpolation.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.intl.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.math.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.options.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.rtl.d.ts",
"staticwebassets/lib/Chart.js/helpers/helpers.segment.d.ts",
"staticwebassets/lib/Chart.js/helpers/index.d.ts",
"staticwebassets/lib/Chart.js/index.d.ts",
"staticwebassets/lib/Chart.js/index.umd.d.ts",
"staticwebassets/lib/Chart.js/platform/index.d.ts",
"staticwebassets/lib/Chart.js/platform/platform.base.d.ts",
"staticwebassets/lib/Chart.js/platform/platform.basic.d.ts",
"staticwebassets/lib/Chart.js/platform/platform.dom.d.ts",
"staticwebassets/lib/Chart.js/plugins/index.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.colors.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.decimation.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.filler/filler.drawing.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.filler/filler.helper.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.filler/filler.options.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.filler/filler.segment.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.filler/filler.target.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.filler/filler.target.stack.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.filler/index.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.filler/simpleArc.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.legend.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.subtitle.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.title.d.ts",
"staticwebassets/lib/Chart.js/plugins/plugin.tooltip.d.ts",
"staticwebassets/lib/Chart.js/scales/index.d.ts",
"staticwebassets/lib/Chart.js/scales/scale.category.d.ts",
"staticwebassets/lib/Chart.js/scales/scale.linear.d.ts",
"staticwebassets/lib/Chart.js/scales/scale.linearbase.d.ts",
"staticwebassets/lib/Chart.js/scales/scale.logarithmic.d.ts",
"staticwebassets/lib/Chart.js/scales/scale.radialLinear.d.ts",
"staticwebassets/lib/Chart.js/scales/scale.time.d.ts",
"staticwebassets/lib/Chart.js/scales/scale.timeseries.d.ts",
"staticwebassets/lib/Chart.js/types.d.ts",
"staticwebassets/lib/Chart.js/types/animation.d.ts",
"staticwebassets/lib/Chart.js/types/basic.d.ts",
"staticwebassets/lib/Chart.js/types/color.d.ts",
"staticwebassets/lib/Chart.js/types/geometric.d.ts",
"staticwebassets/lib/Chart.js/types/index.d.ts",
"staticwebassets/lib/Chart.js/types/layout.d.ts",
"staticwebassets/lib/Chart.js/types/utils.d.ts",
"staticwebassets/lib/chartjs-adapter-moment/chartjs-adapter-moment.esm.js",
"staticwebassets/lib/chartjs-adapter-moment/chartjs-adapter-moment.esm.min.js",
"staticwebassets/lib/chartjs-adapter-moment/chartjs-adapter-moment.js",
"staticwebassets/lib/chartjs-adapter-moment/chartjs-adapter-moment.min.js",
"staticwebassets/lib/chartjs-plugin-autocolors/chartjs-plugin-autocolors.cjs",
"staticwebassets/lib/chartjs-plugin-autocolors/chartjs-plugin-autocolors.cjs.map",
"staticwebassets/lib/chartjs-plugin-autocolors/chartjs-plugin-autocolors.esm.js",
"staticwebassets/lib/chartjs-plugin-autocolors/chartjs-plugin-autocolors.esm.js.map",
"staticwebassets/lib/chartjs-plugin-autocolors/chartjs-plugin-autocolors.min.js",
"staticwebassets/lib/chartjs-plugin-autocolors/chartjs-plugin-autocolors.min.js.map",
"staticwebassets/lib/chartjs-plugin-datalabels/chartjs-plugin-datalabels.esm.js",
"staticwebassets/lib/chartjs-plugin-datalabels/chartjs-plugin-datalabels.esm.min.js",
"staticwebassets/lib/chartjs-plugin-datalabels/chartjs-plugin-datalabels.js",
"staticwebassets/lib/chartjs-plugin-datalabels/chartjs-plugin-datalabels.min.js",
"staticwebassets/lib/chartjs-plugin-zoom/chartjs-plugin-zoom.esm.js",
"staticwebassets/lib/chartjs-plugin-zoom/chartjs-plugin-zoom.esm.min.js",
"staticwebassets/lib/chartjs-plugin-zoom/chartjs-plugin-zoom.js",
"staticwebassets/lib/chartjs-plugin-zoom/chartjs-plugin-zoom.min.js",
"staticwebassets/lib/hammer.js/hammer.js",
"staticwebassets/lib/hammer.js/hammer.min.js",
"staticwebassets/lib/hammer.js/hammer.min.js.map",
"staticwebassets/lib/hammer.js/hammer.min.map"
]
},
"PuppeteerSharp/6.0.0": {
"sha512": "wJIQH1qIVqC7iS+RrnfDfK4uQLqrMvWLxbMFXGDrClQGf7LKA4BDpZVPd/0hYtWjYJcsAs9UCn826VUxtD3yxw==",
"type": "package",
@ -10333,6 +10559,7 @@
"Microsoft.AspNetCore.Components.WebAssembly.DevServer >= 8.0.6",
"Microsoft.NET.ILLink.Tasks >= 8.0.16",
"Microsoft.NET.Sdk.WebAssembly.Pack >= 9.0.5",
"PSC.Blazor.Components.Chartjs >= 8.0.8",
"Transversal >= 1.0.0"
]
},
@ -10430,6 +10657,10 @@
"target": "Package",
"version": "[9.0.5, )",
"autoReferenced": true
},
"PSC.Blazor.Components.Chartjs": {
"target": "Package",
"version": "[8.0.8, )"
}
},
"imports": [

View File

@ -20,6 +20,7 @@
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="8.0.6" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.6" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.6" PrivateAssets="all" />
<PackageReference Include="PSC.Blazor.Components.Chartjs" Version="8.0.8" />
</ItemGroup>
<ItemGroup>

View File

@ -25,6 +25,10 @@
integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew=="
crossorigin=""></script>
<script src="_content/Blazored.Typeahead/blazored-typeahead.js"></script>
<!-- PSC ChartJs Blazor -->
<script src="_content/PSC.Blazor.Components.Chartjs/lib/Chart.js/chart.js"></script>
<script src="_content/PSC.Blazor.Components.Chartjs/Chart.js" type="module"></script>
</head>
<body>