Files
2026-07-21 14:35:37 +07:00

57 lines
3.4 KiB
Plaintext

@using Indotalent.Features.Root
@using System.Security.Claims
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="/" />
<link rel="icon" type="image/png" href="favicon.png" />
<ResourcePreloader />
<link rel="stylesheet" href="@Assets["Indotalent.styles.css"]" />
<ImportMap />
<HeadOutlet @rendermode="InteractiveServer" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;450;500;600;700;800&display=swap" rel="stylesheet" />
<link href="@Assets["_content/MudBlazor/MudBlazor.min.css"]" rel="stylesheet" />
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: { 'poppins': ['Poppins', 'sans-serif'] }
}
}
}
</script>
</head>
<body style="font-family: 'Poppins', sans-serif;">
<Routes @rendermode="new InteractiveServerRenderMode(prerender: false)" />
<ReconnectModal />
<script src="@Assets["_framework/blazor.web.js"]"></script>
<script src="@Assets["_content/MudBlazor/MudBlazor.min.js"]"></script>
<SsoFirebase/>
<SsoKeycloak/>
<script>
window.initDashboardCharts = function(ml,ms,mp,sl,sd,sc,al,ad,ac) {
var g='#94a3b8';
var c1=document.getElementById('plChart');
if(c1){ml=ml&&ml.length?ml:['Jan','Feb','Mar','Apr','May','Jun'];ms=ms&&ms.length?ms:new Array(ml.length).fill(0);mp=mp&&mp.length?mp:new Array(ml.length).fill(0);
new Chart(c1,{type:'bar',data:{labels:ml,datasets:[{label:'Sales (K)',data:ms,backgroundColor:'#2563eb',borderRadius:4,barPercentage:.4},{label:'Purchase (K)',data:mp,backgroundColor:'#f97316',borderRadius:4,barPercentage:.4}]},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false}},scales:{y:{beginAtZero:true,grid:{color:'#f1f5f9'},ticks:{color:g,font:{size:10},callback:function(v){return v+'K'}}},x:{grid:{display:false},ticks:{color:g,font:{size:9}}}}}});}
var c2=document.getElementById('expenseChart');
if(c2){sl=sl&&sl.length?sl:['Confirmed','Draft','Cancelled'];sd=sd&&sd.length?sd:new Array(sl.length).fill(1);sc=sc&&sc.length?sc:new Array(sl.length).fill('#10b981');
new Chart(c2,{type:'doughnut',data:{labels:sl,datasets:[{data:sd,backgroundColor:sc,borderWidth:0}]},options:{responsive:true,maintainAspectRatio:false,cutout:'72%',plugins:{legend:{display:false}}}});}
var c3=document.getElementById('cashflowChart');
if(c3){al=al&&al.length?al:['Confirmed','Draft','Cancelled','Total'];ad=ad&&ad.length?ad:new Array(al.length).fill(1);ac=ac&&ac.length?ac:new Array(al.length).fill('#10b981');
new Chart(c3,{type:'bar',data:{labels:al,datasets:[{label:'Activity',data:ad,backgroundColor:ac,borderRadius:4,barPercentage:.5}]},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false}},scales:{y:{beginAtZero:true,grid:{color:'#f1f5f9'},ticks:{color:g,font:{size:10}}},x:{grid:{display:false},ticks:{color:g,font:{size:9}}}}}});}
};
</script>
</body>
</html>