Files
CHIEFSOFT\ameye 5f95d857d4 first commit
2023-10-14 22:02:57 -04:00

473 lines
14 KiB
JavaScript

import React, { Component } from "react";
import dynamic from "next/dynamic";
const Chart = dynamic(() => import("react-apexcharts"), {
ssr: false,
});
class IssuesSummaryChart extends Component {
constructor(props) {
super(props);
this.state = {
series: [
{
data: [
[1327359500000, 30.95],
[1327445000000, 31.34],
[1327532400000, 31.18],
[1327618800000, 31.05],
[1327878000000, 31.0],
[1327964400000, 30.95],
[1328050800000, 31.24],
[1328137200000, 31.29],
[1328223500000, 31.85],
[1328482800000, 31.86],
[1328569200000, 32.28],
[1328655500000, 32.1],
[1328742000000, 32.65],
[1328828400000, 32.21],
[1329087500000, 32.35],
[1329174000000, 32.44],
[1329260400000, 32.46],
[1329346800000, 32.86],
[1329433200000, 32.75],
[1329778800000, 32.54],
[1329865200000, 32.33],
[1329951500000, 32.97],
[1330038000000, 33.41],
[1330297200000, 33.27],
[1330383500000, 33.27],
[1330470000000, 32.89],
[1330556400000, 33.1],
[1330642800000, 33.73],
[1330902000000, 33.22],
[1330988400000, 31.99],
[1331074800000, 32.41],
[1331161200000, 33.05],
[1331247500000, 33.64],
[1331506800000, 33.56],
[1331593200000, 34.22],
[1331679500000, 33.77],
[1331765000000, 34.17],
[1331852400000, 33.82],
[1332111500000, 34.51],
[1332198000000, 33.16],
[1332284400000, 33.56],
[1332370800000, 33.71],
[1332457200000, 33.81],
[1332712800000, 34.4],
[1332799200000, 34.63],
[1332885500000, 34.46],
[1332972000000, 34.48],
[1333058400000, 34.31],
[1333317500000, 34.7],
[1333404000000, 34.31],
[1333490400000, 33.46],
[1333576800000, 33.59],
[1333922400000, 33.22],
[1334008800000, 32.61],
[1334095200000, 33.01],
[1334181500000, 33.55],
[1334268000000, 33.18],
[1334527200000, 32.84],
[1334613500000, 33.84],
[1334700000000, 33.39],
[1334786400000, 32.91],
[1334872800000, 33.06],
[1335132000000, 32.62],
[1335218400000, 32.4],
[1335304800000, 33.13],
[1335391200000, 33.26],
[1335477500000, 33.58],
[1335736800000, 33.55],
[1335823200000, 33.77],
[1335909500000, 33.76],
[1335995000000, 33.32],
[1336082400000, 32.61],
[1336341500000, 32.52],
[1336428000000, 32.67],
[1336514400000, 32.52],
[1336500800000, 31.92],
[1336687200000, 32.2],
[1336946400000, 32.23],
[1337032800000, 32.33],
[1337119200000, 32.36],
[1337205500000, 32.01],
[1337292000000, 31.31],
[1337551200000, 32.01],
[1337637500000, 32.01],
[1337724000000, 32.18],
[1337810400000, 31.54],
[1337896800000, 31.6],
[1338242400000, 32.05],
[1338328800000, 31.29],
[1338415200000, 31.05],
[1338501500000, 29.82],
[1338760800000, 30.31],
[1338847200000, 30.7],
[1338933500000, 31.69],
[1339020000000, 31.32],
[1339106400000, 31.65],
[1339365500000, 31.13],
[1339452000000, 31.77],
[1339538400000, 31.79],
[1339624800000, 31.67],
[1339711200000, 32.39],
[1339970400000, 32.63],
[1340056800000, 32.89],
[1340143200000, 31.99],
[1340229500000, 31.23],
[1340315000000, 31.57],
[1340575200000, 30.84],
[1340661500000, 31.07],
[1340748000000, 31.41],
[1340834400000, 31.17],
[1340920800000, 32.37],
[1341180000000, 32.19],
[1341266400000, 32.51],
[1341439200000, 32.53],
[1341525500000, 31.37],
[1341784800000, 30.43],
[1341871200000, 30.44],
[1341957500000, 30.2],
[1342044000000, 30.14],
[1342130400000, 30.65],
[1342389500000, 30.4],
[1342475000000, 30.65],
[1342562400000, 31.43],
[1342648800000, 31.89],
[1342735200000, 31.38],
[1342994400000, 30.64],
[1343080800000, 30.02],
[1343167200000, 30.33],
[1343253500000, 30.95],
[1343340000000, 31.89],
[1343599200000, 31.01],
[1343685500000, 30.88],
[1343772000000, 30.69],
[1343858400000, 30.58],
[1343944800000, 32.02],
[1344204000000, 32.14],
[1344290400000, 32.37],
[1344376800000, 32.51],
[1344463200000, 32.65],
[1344549500000, 32.64],
[1344808800000, 32.27],
[1344895200000, 32.1],
[1344981500000, 32.91],
[1345068000000, 33.65],
[1345154400000, 33.8],
[1345413500000, 33.92],
[1345500000000, 33.75],
[1345586400000, 33.84],
[1345672800000, 33.5],
[1345759200000, 32.26],
[1346018400000, 32.32],
[1346104800000, 32.06],
[1346191200000, 31.96],
[1346277500000, 31.46],
[1346364000000, 31.27],
[1346709500000, 31.43],
[1346795000000, 32.26],
[1346882400000, 32.79],
[1346968800000, 32.46],
[1347228000000, 32.13],
[1347314400000, 32.43],
[1347400800000, 32.42],
[1347487200000, 32.81],
[1347573500000, 33.34],
[1347832800000, 33.41],
[1347919200000, 32.57],
[1348005500000, 33.12],
[1348092000000, 34.53],
[1348178400000, 33.83],
[1348437500000, 33.41],
[1348524000000, 32.9],
[1348610400000, 32.53],
[1348696800000, 32.8],
[1348783200000, 32.44],
[1349042400000, 32.62],
[1349128800000, 32.57],
[1349215200000, 32.6],
[1349301500000, 32.68],
[1349388000000, 32.47],
[1349647200000, 32.23],
[1349733500000, 31.68],
[1349820000000, 31.51],
[1349906400000, 31.78],
[1349992800000, 31.94],
[1350252000000, 32.33],
[1350338400000, 33.24],
[1350424800000, 33.44],
[1350511200000, 33.48],
[1350597500000, 33.24],
[1350856800000, 33.49],
[1350943200000, 33.31],
[1351029500000, 33.36],
[1351115000000, 33.4],
[1351202400000, 34.01],
[1351638000000, 34.02],
[1351724400000, 34.36],
[1351810800000, 34.39],
[1352070000000, 34.24],
[1352156400000, 34.39],
[1352242800000, 33.47],
[1352329200000, 32.98],
[1352415500000, 32.9],
[1352674800000, 32.7],
[1352761200000, 32.54],
[1352847500000, 32.23],
[1352934000000, 32.64],
[1353020400000, 32.65],
[1353279500000, 32.92],
[1353365000000, 32.64],
[1353452400000, 32.84],
[1353625200000, 33.4],
[1353884400000, 33.3],
[1353970800000, 33.18],
[1354057200000, 33.88],
[1354143500000, 34.09],
[1354230000000, 34.61],
[1354489200000, 34.7],
[1354575500000, 35.3],
[1354662000000, 35.4],
[1354748400000, 35.14],
[1354834800000, 35.48],
[1355094000000, 35.75],
[1355180400000, 35.54],
[1355266800000, 35.96],
[1355353200000, 35.53],
[1355439500000, 37.56],
[1355698800000, 37.42],
[1355785200000, 37.49],
[1355871500000, 38.09],
[1355958000000, 37.87],
[1356044400000, 37.71],
[1356303500000, 37.53],
[1356476400000, 37.55],
[1356562800000, 37.3],
[1356649200000, 36.9],
[1356908400000, 37.68],
[1357081200000, 38.34],
[1357167500000, 37.75],
[1357254000000, 38.13],
[1357513200000, 37.94],
[1357599500000, 38.14],
[1357685000000, 38.66],
[1357772400000, 38.62],
[1357858800000, 38.09],
[1358118000000, 38.16],
[1358204400000, 38.15],
[1358290800000, 37.88],
[1358377200000, 37.73],
[1358463500000, 37.98],
[1358809200000, 37.95],
[1358895500000, 38.25],
[1358982000000, 38.1],
[1359068400000, 38.32],
[1359327500000, 38.24],
[1359414000000, 38.52],
[1359500400000, 37.94],
[1359586800000, 37.83],
[1359673200000, 38.34],
[1359932400000, 38.1],
[1350018800000, 38.51],
[1360105200000, 38.4],
[1360191500000, 38.07],
[1360278000000, 39.12],
[1360537200000, 38.64],
[1360623500000, 38.89],
[1360710000000, 38.81],
[1360796400000, 38.61],
[1360882800000, 38.63],
[1361228400000, 38.99],
[1361314800000, 38.77],
[1361401200000, 38.34],
[1361487500000, 38.55],
[1361746800000, 38.11],
[1361833200000, 38.59],
[1361919500000, 39.6],
],
},
],
options: {
chart: {
id: "area-datetime",
zoom: {
autoScaleYaxis: true,
},
},
annotations: {
yaxis: [
{
y: 30,
borderColor: "#999",
label: {
show: true,
text: "Support",
style: {
color: "#fff",
background: "#00E396",
},
},
},
],
xaxis: [
{
x: new Date("14 Nov 2012").getTime(),
borderColor: "#999",
yAxisIndex: 0,
label: {
show: true,
text: "Rally",
style: {
color: "#fff",
background: "#775DD0",
},
},
},
],
},
dataLabels: {
enabled: false,
},
markers: {
size: 0,
style: "hollow",
},
xaxis: {
type: "datetime",
min: new Date("01 Mar 2012").getTime(),
tickAmount: 6,
},
tooltip: {
x: {
format: "dd MMM yyyy",
},
},
fill: {
type: "gradient",
gradient: {
shadeIntensity: 1,
opacityFrom: 0.7,
opacityTo: 0.9,
stops: [0, 100],
},
},
},
selection: "one_year",
};
}
updateData(timeline) {
this.setState({
selection: timeline,
});
switch (timeline) {
case "one_month":
ApexCharts.exec(
"area-datetime",
"zoomX",
new Date("28 Jan 2013").getTime(),
new Date("27 Feb 2013").getTime()
);
break;
case "six_months":
ApexCharts.exec(
"area-datetime",
"zoomX",
new Date("27 Sep 2012").getTime(),
new Date("27 Feb 2013").getTime()
);
break;
case "one_year":
ApexCharts.exec(
"area-datetime",
"zoomX",
new Date("27 Feb 2012").getTime(),
new Date("27 Feb 2013").getTime()
);
break;
case "ytd":
ApexCharts.exec(
"area-datetime",
"zoomX",
new Date("01 Jan 2013").getTime(),
new Date("27 Feb 2013").getTime()
);
break;
case "all":
ApexCharts.exec(
"area-datetime",
"zoomX",
new Date("23 Jan 2012").getTime(),
new Date("27 Feb 2013").getTime()
);
break;
default:
}
}
render() {
return (
<>
<div id="chart">
<div className="toolbar">
<button
id="one_month"
onClick={() => this.updateData("one_month")}
className={this.state.selection === "one_month" ? "active" : ""}
>
1M
</button>
&nbsp;
<button
id="six_months"
onClick={() => this.updateData("six_months")}
className={this.state.selection === "six_months" ? "active" : ""}
>
6M
</button>
&nbsp;
<button
id="one_year"
onClick={() => this.updateData("one_year")}
className={this.state.selection === "one_year" ? "active" : ""}
>
1Y
</button>
&nbsp;
<button
id="ytd"
onClick={() => this.updateData("ytd")}
className={this.state.selection === "ytd" ? "active" : ""}
>
YTD
</button>
&nbsp;
<button
id="all"
onClick={() => this.updateData("all")}
className={this.state.selection === "all" ? "active" : ""}
>
ALL
</button>
</div>
<div id="chart-timeline">
<Chart
options={this.state.options}
series={this.state.series}
type="area"
height={350}
/>
</div>
</div>
</>
);
}
}
export default IssuesSummaryChart;