renderPie = function renderPie(data, property) {
const piechart = html`<div ></div>`;
piechart.style.width = `100`;
piechart.style.height = `${height}px`;
google.charts.load("current", {
packages: ["corechart"]
});
google.charts.setOnLoadCallback(drawChart);
let domain = "";
let range = "";
if (!property) {
let count = 0;
for (const [key, value] of Object.entries(data[0])) {
if (typeof value === "number" && count < 1) {
count += 1;
if (count === 1) {
range = key;
}
}
}
} else {
domain = property.domain;
range = property.range;
}
for (const [key, value] of Object.entries(data[0])) {
if (key !== range && domain === "") {
domain = key;
break;
}
}
let domain_array = data.map((dt, index) => {
return dt[domain];
})
let range_array = data.map((dt, index) => {
return dt[range];
})
let total = 0;
range_array.forEach((dt) => total += dt);
let new_data_array = [
[domain, range]
];
console.log(domain)
data.forEach((dt) => {
new_data_array.push([dt[domain], dt[range]])
})
function drawChart() {
const data = google.visualization.arrayToDataTable(new_data_array);
const options = {
title: "TOTAL COUNT ( "+ range +" ): " + total,
pieHole: 0.5,
};
const chart = new google.visualization.PieChart(piechart);
chart.draw(data, options);
}
return piechart;
}