2022 Annual Security Report
Dec 06, 2024
Annual Reports
2022 Annual Security Report
Overview
This report provides a comprehensive analysis of security incidents and attack patterns observed throughout 2022. The data is aggregated from weekly security reports and presents trends in attack vectors, source countries, and target distributions.
<div markdown="0" class="annual-report">
<div class="summary-statistics">
<h2>Year 2022 Summary</h2>
<div class="stat-grid">
<div class="stat-box">
<h3>Total Attacks</h3>
<p>0</p>
</div>
<div class="stat-box">
<h3>Weekly Average</h3>
<p>0</p>
</div>
<div class="stat-box">
<h3>Weeks Analyzed</h3>
<p>58</p>
</div>
</div>
<div class="top-lists">
<div class="top-list">
<h3>Top Protocols</h3>
<ul>
<li>ssh: 0</li><li>ftp: 0</li><li>ntp: 0</li><li>sip: 0</li><li>snmp: 0</li>
</ul>
</div>
<div class="top-list">
<h3>Top Attacker Countries</h3>
<ul>
</ul>
</div>
<div class="top-list">
<h3>Top Target Locations</h3>
<ul>
</ul>
</div>
</div>
</div>
<h2>Monthly Attack Distribution</h2>
<div id="monthlyBreakdownChart" style="width: 100%; height: 400px;"></div>
<script>
am4core.ready(function() {
am4core.useTheme(am4themes_dark);
am4core.useTheme(am4themes_animated);
var chart = am4core.create("monthlyBreakdownChart", am4charts.XYChart);
chart.data = [{"month": "January", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"month": "February", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"month": "March", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"month": "April", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"month": "May", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"month": "June", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"month": "July", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"month": "August", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"month": "September", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"month": "October", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"month": "November", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"month": "December", "attacks": 0, "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}];
var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());
categoryAxis.dataFields.category = "month";
categoryAxis.renderer.grid.template.location = 0;
categoryAxis.renderer.minGridDistance = 30;
var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
valueAxis.title.text = "Total Attacks";
var series = chart.series.push(new am4charts.ColumnSeries());
series.dataFields.valueY = "attacks";
series.dataFields.categoryX = "month";
series.name = "Total Attacks";
series.columns.template.tooltipText = "{categoryX}: [bold]{valueY}[/]";
series.columns.template.fill = am4core.color("#17b924");
chart.cursor = new am4charts.XYCursor();
// Add legend
chart.legend = new am4charts.Legend();
});
</script>
<h2>Attack Trends</h2>
<div id="protocolTrendChart" style="width: 100%; height: 500px;"></div>
<script>
am4core.ready(function() {
am4core.useTheme(am4themes_dark);
am4core.useTheme(am4themes_animated);
var chart = am4core.create("protocolTrendChart", am4charts.XYChart);
chart.data = [{"date": "2022-01-07", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-01-08", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-01-14", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-01-15", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-01-21", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-01-22", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-01-28", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-01-29", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-02-04", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-02-05", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-02-11", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-02-12", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-02-18", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-02-25", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-03-04", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-03-11", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-03-18", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-03-25", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-04-01", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-04-08", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-04-15", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-04-22", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-04-29", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-05-06", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-05-13", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-05-20", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-05-27", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-06-03", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-06-10", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-06-17", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-06-24", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-07-01", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-07-08", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-07-15", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-07-22", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-07-29", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-08-05", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-08-12", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-08-19", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-08-26", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-09-02", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-09-09", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-09-16", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-09-23", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-09-30", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-10-07", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-10-14", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-10-21", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-10-28", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-11-04", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-11-11", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-11-18", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-11-25", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-12-02", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-12-09", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-12-16", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-12-23", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}, {"date": "2022-12-30", "ssh": 0, "ftp": 0, "ntp": 0, "sip": 0, "snmp": 0, "telnet": 0, "mssql": 0, "mysql": 0, "redis": 0, "nmap": 0, "git": 0, "dork": 0}];
// Create axes
var dateAxis = chart.xAxes.push(new am4charts.DateAxis());
dateAxis.renderer.minGridDistance = 50;
dateAxis.renderer.grid.template.location = 0.5;
dateAxis.startLocation = 0.5;
dateAxis.endLocation = 0.5;
var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
valueAxis.title.text = "Attack Attempts by Protocol";
// Create series for each category
var series_0 = chart.series.push(new am4charts.LineSeries());
series_0.dataFields.dateX = "date";
series_0.dataFields.valueY = "ssh";
series_0.name = "ssh";
series_0.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
var series_1 = chart.series.push(new am4charts.LineSeries());
series_1.dataFields.dateX = "date";
series_1.dataFields.valueY = "ftp";
series_1.name = "ftp";
series_1.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
var series_2 = chart.series.push(new am4charts.LineSeries());
series_2.dataFields.dateX = "date";
series_2.dataFields.valueY = "ntp";
series_2.name = "ntp";
series_2.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
var series_3 = chart.series.push(new am4charts.LineSeries());
series_3.dataFields.dateX = "date";
series_3.dataFields.valueY = "sip";
series_3.name = "sip";
series_3.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
var series_4 = chart.series.push(new am4charts.LineSeries());
series_4.dataFields.dateX = "date";
series_4.dataFields.valueY = "snmp";
series_4.name = "snmp";
series_4.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
var series_5 = chart.series.push(new am4charts.LineSeries());
series_5.dataFields.dateX = "date";
series_5.dataFields.valueY = "telnet";
series_5.name = "telnet";
series_5.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
var series_6 = chart.series.push(new am4charts.LineSeries());
series_6.dataFields.dateX = "date";
series_6.dataFields.valueY = "mssql";
series_6.name = "mssql";
series_6.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
var series_7 = chart.series.push(new am4charts.LineSeries());
series_7.dataFields.dateX = "date";
series_7.dataFields.valueY = "mysql";
series_7.name = "mysql";
series_7.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
var series_8 = chart.series.push(new am4charts.LineSeries());
series_8.dataFields.dateX = "date";
series_8.dataFields.valueY = "redis";
series_8.name = "redis";
series_8.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
var series_9 = chart.series.push(new am4charts.LineSeries());
series_9.dataFields.dateX = "date";
series_9.dataFields.valueY = "nmap";
series_9.name = "nmap";
series_9.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
var series_10 = chart.series.push(new am4charts.LineSeries());
series_10.dataFields.dateX = "date";
series_10.dataFields.valueY = "git";
series_10.name = "git";
series_10.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
var series_11 = chart.series.push(new am4charts.LineSeries());
series_11.dataFields.dateX = "date";
series_11.dataFields.valueY = "dork";
series_11.name = "dork";
series_11.tooltipText = "{name}: [bold]{valueY}[/]";
series.strokeWidth = 2;
series.tensionX = 0.8;
series.bullets.push(new am4charts.CircleBullet());
// Add legend
chart.legend = new am4charts.Legend();
// Add cursor
chart.cursor = new am4charts.XYCursor();
chart.cursor.xAxis = dateAxis;
// Add scrollbar
chart.scrollbarX = new am4core.Scrollbar();
});
</script>
</div>
<style>
.annual-report {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.stat-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin: 20px 0;
}
.stat-box {
background: #1a1a1a;
padding: 20px;
border-radius: 8px;
text-align: center;
}
.stat-box h3 {
margin: 0;
color: #17b924;
}
.stat-box p {
font-size: 24px;
margin: 10px 0 0 0;
}
.top-lists {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
margin: 20px 0;
}
.top-list {
background: #1a1a1a;
padding: 20px;
border-radius: 8px;
}
.top-list h3 {
margin: 0 0 15px 0;
color: #17b924;
}
.top-list ul {
list-style: none;
padding: 0;
margin: 0;
}
.top-list li {
padding: 5px 0;
border-bottom: 1px solid #333;
}
</style>
Share on: