lampuotomatis/public/build/js/pages/dashboard-analytics.init.js

456 lines
12 KiB
JavaScript

/*
Template Name: Grenviro Monitoring
Author: Themesbrand
Website: https://Themesbrand.com/
Contact: Themesbrand@gmail.com
File: Analytics sales init js
*/
// get colors array from the string
function getChartColorsArray(chartId) {
if (document.getElementById(chartId) !== null) {
var colors = document.getElementById(chartId).getAttribute("data-colors");
if (colors) {
colors = JSON.parse(colors);
return colors.map(function (value) {
var newValue = value.replace(" ", "");
if (newValue.indexOf(",") === -1) {
var color = getComputedStyle(document.documentElement).getPropertyValue(newValue);
if (color) return color;
else return newValue;;
} else {
var val = value.split(',');
if (val.length == 2) {
var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]);
rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")";
return rgbaColor;
} else {
return newValue;
}
}
});
} else {
console.warn('data-colors atributes not found on', chartId);
}
}
}
var worldemapmarkers = "";
function loadCharts() {
// world map with line & markers
var vectorMapWorldLineColors = getChartColorsArray("users-by-country");
if (vectorMapWorldLineColors) {
document.getElementById("users-by-country").innerHTML = "";
worldlinemap = "";
worldlinemap = new jsVectorMap({
map: "world_merc",
selector: "#users-by-country",
zoomOnScroll: false,
zoomButtons: false,
markers: [{
name: "Greenland",
coords: [72, -42]
},
{
name: "Canada",
coords: [56.1304, -106.3468]
},
{
name: "Brazil",
coords: [-14.2350, -51.9253]
},
{
name: "Egypt",
coords: [26.8206, 30.8025]
},
{
name: "Russia",
coords: [61, 105]
},
{
name: "China",
coords: [35.8617, 104.1954]
},
{
name: "United States",
coords: [37.0902, -95.7129]
},
{
name: "Norway",
coords: [60.472024, 8.468946]
},
{
name: "Ukraine",
coords: [48.379433, 31.16558]
},
],
lines: [{
from: "Canada",
to: "Egypt"
},
{
from: "Russia",
to: "Egypt"
},
{
from: "Greenland",
to: "Egypt"
},
{
from: "Brazil",
to: "Egypt"
},
{
from: "United States",
to: "Egypt"
},
{
from: "China",
to: "Egypt"
},
{
from: "Norway",
to: "Egypt"
},
{
from: "Ukraine",
to: "Egypt"
},
],
regionStyle: {
initial: {
stroke: "#9599ad",
strokeWidth: 0.25,
fill: vectorMapWorldLineColors,
fillOpacity: 1,
},
},
lineStyle: {
animation: true,
strokeDasharray: "6 3 6",
},
})
}
}
window.onresize = function () {
setTimeout(() => {
loadCharts();
}, 0);
};
loadCharts();
// Countries charts
var barchartCountriesColors = getChartColorsArray("countries_charts");
if (barchartCountriesColors) {
var options = {
series: [{
data: [1010, 1640, 490, 1255, 1050, 689, 800, 420, 1085, 589],
name: 'Sessions',
}],
chart: {
type: 'bar',
height: 436,
toolbar: {
show: false,
}
},
plotOptions: {
bar: {
borderRadius: 4,
horizontal: true,
distributed: true,
dataLabels: {
position: 'top',
},
}
},
colors: barchartCountriesColors,
dataLabels: {
enabled: true,
offsetX: 32,
style: {
fontSize: '12px',
fontWeight: 400,
colors: ['#adb5bd']
}
},
legend: {
show: false,
},
grid: {
show: false,
},
xaxis: {
categories: ['India', 'United States', 'China', 'Indonesia', 'Russia', 'Bangladesh', 'Canada', 'Brazil', 'Vietnam', 'UK'],
},
};
var chart = new ApexCharts(document.querySelector("#countries_charts"), options);
chart.render();
}
// Heatmap Charts Generatedata
function generateData(count, yrange) {
var i = 0;
var series = [];
while (i < count) {
var x = (i + 1).toString() + "h";
var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
series.push({
x: x,
y: y
});
i++;
}
return series;
}
// Basic Heatmap Charts
var chartHeatMapBasicColors = getChartColorsArray("audiences-sessions-country-charts");
if (chartHeatMapBasicColors) {
var options = {
series: [{
name: 'Sat',
data: generateData(18, {
min: 0,
max: 90
})
},
{
name: 'Fri',
data: generateData(18, {
min: 0,
max: 90
})
},
{
name: 'Thu',
data: generateData(18, {
min: 0,
max: 90
})
},
{
name: 'Wed',
data: generateData(18, {
min: 0,
max: 90
})
},
{
name: 'Tue',
data: generateData(18, {
min: 0,
max: 90
})
},
{
name: 'Mon',
data: generateData(18, {
min: 0,
max: 90
})
},
{
name: 'Sun',
data: generateData(18, {
min: 0,
max: 90
})
}
],
chart: {
height: 400,
type: 'heatmap',
offsetX: 0,
offsetY: -8,
toolbar: {
show: false
}
},
plotOptions: {
heatmap: {
colorScale: {
ranges: [{
from: 0,
to: 50,
color: chartHeatMapBasicColors[0]
},
{
from: 51,
to: 100,
color: chartHeatMapBasicColors[1]
},
],
},
}
},
dataLabels: {
enabled: false
},
legend: {
show: true,
horizontalAlign: 'center',
offsetX: 0,
offsetY: 20,
markers: {
width: 20,
height: 6,
radius: 2,
},
itemMargin: {
horizontal: 12,
vertical: 0
},
},
colors: chartHeatMapBasicColors,
tooltip: {
y: [{
formatter: function (y) {
if (typeof y !== "undefined") {
return y.toFixed(0) + "k";
}
return y;
}
}]
}
};
var chart = new ApexCharts(document.querySelector("#audiences-sessions-country-charts"), options);
chart.render();
}
// Audiences metrics column charts
var chartAudienceColumnChartsColors = getChartColorsArray("audiences_metrics_charts");
if (chartAudienceColumnChartsColors) {
var columnoptions = {
series: [{
name: 'Last Year',
data: [25.3, 12.5, 20.2, 18.5, 40.4, 25.4, 15.8, 22.3, 19.2, 25.3, 12.5, 20.2]
}, {
name: 'Current Year',
data: [36.2, 22.4, 38.2, 30.5, 26.4, 30.4, 20.2, 29.6, 10.9, 36.2, 22.4, 38.2]
}],
chart: {
type: 'bar',
height: 309,
stacked: true,
toolbar: {
show: false,
}
},
plotOptions: {
bar: {
horizontal: false,
columnWidth: '20%',
borderRadius: 6,
},
},
dataLabels: {
enabled: false,
},
legend: {
show: true,
position: 'bottom',
horizontalAlign: 'center',
fontWeight: 400,
fontSize: '8px',
offsetX: 0,
offsetY: 0,
markers: {
width: 9,
height: 9,
radius: 4,
},
},
stroke: {
show: true,
width: 2,
colors: ['transparent']
},
grid: {
show: false,
},
colors: chartAudienceColumnChartsColors,
xaxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
axisTicks: {
show: false,
},
axisBorder: {
show: true,
strokeDashArray: 1,
height: 1,
width: '100%',
offsetX: 0,
offsetY: 0
},
},
yaxis: {
show: false
},
fill: {
opacity: 1
}
};
var chart = new ApexCharts(document.querySelector("#audiences_metrics_charts"), columnoptions);
chart.render();
}
// User by devices
var dountchartUserDeviceColors = getChartColorsArray("user_device_pie_charts");
if (dountchartUserDeviceColors) {
var options = {
series: [78.56, 105.02, 42.89],
labels: ["Desktop", "Mobile", "Tablet"],
chart: {
type: "donut",
height: 219,
},
plotOptions: {
pie: {
size: 100,
donut: {
size: "76%",
},
},
},
dataLabels: {
enabled: false,
},
legend: {
show: false,
position: 'bottom',
horizontalAlign: 'center',
offsetX: 0,
offsetY: 0,
markers: {
width: 20,
height: 6,
radius: 2,
},
itemMargin: {
horizontal: 12,
vertical: 0
},
},
stroke: {
width: 0
},
yaxis: {
labels: {
formatter: function (value) {
return value + "k" + " Users";
}
},
tickAmount: 4,
min: 0
},
colors: dountchartUserDeviceColors,
};
var chart = new ApexCharts(document.querySelector("#user_device_pie_charts"), options);
chart.render();
}