1094 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			1094 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			JavaScript
		
	
	
/**
 | 
						|
 * Theme: Attex - Responsive Tailwind CSS 3 Admin Dashboard
 | 
						|
 * Author: Coderthemes
 | 
						|
 * Module/App: Apex line Charts
 | 
						|
 */
 | 
						|
 | 
						|
//
 | 
						|
// Simple line chart
 | 
						|
//
 | 
						|
var colors = ["#ffbc00"];
 | 
						|
var dataColors = document.querySelector("#line-chart").dataset.colors;
 | 
						|
if (dataColors) {
 | 
						|
    colors = dataColors.split(",");
 | 
						|
}
 | 
						|
var options = {
 | 
						|
    chart: {
 | 
						|
        height: 380,
 | 
						|
        type: 'line',
 | 
						|
        zoom: {
 | 
						|
            enabled: false
 | 
						|
        }
 | 
						|
    },
 | 
						|
    dataLabels: {
 | 
						|
        enabled: false
 | 
						|
    },
 | 
						|
    colors: colors,
 | 
						|
    stroke: {
 | 
						|
        width: [4],
 | 
						|
        curve: 'straight'
 | 
						|
    },
 | 
						|
    series: [{
 | 
						|
        name: "Desktops",
 | 
						|
        data: [30, 41, 35, 51, 49, 62, 69, 91, 126]
 | 
						|
    }],
 | 
						|
    title: {
 | 
						|
        text: 'Product Trends by Month',
 | 
						|
        align: 'center'
 | 
						|
    },
 | 
						|
    grid: {
 | 
						|
        row: {
 | 
						|
            colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | 
						|
            opacity: 0.2
 | 
						|
        },
 | 
						|
        borderColor: '#f1f3fa',
 | 
						|
    },
 | 
						|
    labels: series.monthDataSeries1.dates,
 | 
						|
    xaxis: {
 | 
						|
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'],
 | 
						|
    },
 | 
						|
    responsive: [{
 | 
						|
        breakpoint: 600,
 | 
						|
        options: {
 | 
						|
            chart: {
 | 
						|
                toolbar: {
 | 
						|
                    show: false
 | 
						|
                }
 | 
						|
            },
 | 
						|
            legend: {
 | 
						|
                show: false
 | 
						|
            },
 | 
						|
        }
 | 
						|
    }]
 | 
						|
}
 | 
						|
 | 
						|
var chart = new ApexCharts(
 | 
						|
    document.querySelector("#line-chart"),
 | 
						|
    options
 | 
						|
);
 | 
						|
chart.render();
 | 
						|
 | 
						|
//
 | 
						|
// Line chart with data labels
 | 
						|
//
 | 
						|
 | 
						|
var colors = ["#3e60d5", "#47ad77", "#fa5c7c", "#ffbc00"];
 | 
						|
var dataColors = document.querySelector("#line-chart-datalabel").dataset.colors;
 | 
						|
if (dataColors) {
 | 
						|
    colors = dataColors.split(",");
 | 
						|
}
 | 
						|
var options = {
 | 
						|
    chart: {
 | 
						|
        height: 380,
 | 
						|
        type: 'line',
 | 
						|
        zoom: {
 | 
						|
            enabled: false
 | 
						|
        },
 | 
						|
        toolbar: {
 | 
						|
            show: false
 | 
						|
        }
 | 
						|
    },
 | 
						|
    colors: colors,
 | 
						|
    dataLabels: {
 | 
						|
        enabled: true,
 | 
						|
    },
 | 
						|
    stroke: {
 | 
						|
        width: [3, 3],
 | 
						|
        curve: 'smooth'
 | 
						|
    },
 | 
						|
    series: [{
 | 
						|
        name: "High - 2018",
 | 
						|
        data: [28, 29, 33, 36, 32, 32, 33]
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name: "Low - 2018",
 | 
						|
        data: [12, 11, 14, 18, 17, 13, 13]
 | 
						|
    }
 | 
						|
    ],
 | 
						|
    title: {
 | 
						|
        text: 'Average High & Low Temperature',
 | 
						|
        align: 'left'
 | 
						|
    },
 | 
						|
    grid: {
 | 
						|
        row: {
 | 
						|
            colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | 
						|
            opacity: 0.2
 | 
						|
        },
 | 
						|
        borderColor: '#f1f3fa'
 | 
						|
    },
 | 
						|
    markers: {
 | 
						|
        style: 'inverted',
 | 
						|
        size: 6
 | 
						|
    },
 | 
						|
    xaxis: {
 | 
						|
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
 | 
						|
        title: {
 | 
						|
            text: 'Month'
 | 
						|
        }
 | 
						|
    },
 | 
						|
    yaxis: {
 | 
						|
        title: {
 | 
						|
            text: 'Temperature'
 | 
						|
        },
 | 
						|
        min: 5,
 | 
						|
        max: 40
 | 
						|
    },
 | 
						|
    legend: {
 | 
						|
        position: 'top',
 | 
						|
        horizontalAlign: 'right',
 | 
						|
        floating: true,
 | 
						|
        offsetY: -25,
 | 
						|
        offsetX: -5
 | 
						|
    },
 | 
						|
    responsive: [{
 | 
						|
        breakpoint: 600,
 | 
						|
        options: {
 | 
						|
            chart: {
 | 
						|
                toolbar: {
 | 
						|
                    show: false
 | 
						|
                }
 | 
						|
            },
 | 
						|
            legend: {
 | 
						|
                show: false
 | 
						|
            },
 | 
						|
        }
 | 
						|
    }]
 | 
						|
}
 | 
						|
 | 
						|
var chart = new ApexCharts(
 | 
						|
    document.querySelector("#line-chart-datalabel"),
 | 
						|
    options
 | 
						|
);
 | 
						|
 | 
						|
chart.render();
 | 
						|
 | 
						|
//
 | 
						|
// Zoomable Timeseries
 | 
						|
//
 | 
						|
 | 
						|
var ts2 = 1484418600000;
 | 
						|
var dates = [];
 | 
						|
var spikes = [5, -5, 3, -3, 8, -8]
 | 
						|
for (var i = 0; i < 120; i++) {
 | 
						|
    ts2 = ts2 + 86400000;
 | 
						|
    var innerArr = [ts2, dataSeries[1][i].value];
 | 
						|
    dates.push(innerArr)
 | 
						|
}
 | 
						|
var colors = ["#fa5c7c"];
 | 
						|
var dataColors = document.querySelector("#line-chart-zoomable").dataset.colors;
 | 
						|
if (dataColors) {
 | 
						|
    colors = dataColors.split(",");
 | 
						|
}
 | 
						|
var options = {
 | 
						|
    chart: {
 | 
						|
        type: 'area',
 | 
						|
        stacked: false,
 | 
						|
        height: 380,
 | 
						|
        zoom: {
 | 
						|
            enabled: true
 | 
						|
        },
 | 
						|
    },
 | 
						|
    plotOptions: {
 | 
						|
        line: {
 | 
						|
            curve: 'smooth',
 | 
						|
 | 
						|
        }
 | 
						|
    },
 | 
						|
    dataLabels: {
 | 
						|
        enabled: false
 | 
						|
    },
 | 
						|
    stroke: {
 | 
						|
        width: [3]
 | 
						|
    },
 | 
						|
    series: [{
 | 
						|
        name: 'XYZ MOTORS',
 | 
						|
        data: dates
 | 
						|
    }],
 | 
						|
    markers: {
 | 
						|
        size: 0,
 | 
						|
        style: 'full',
 | 
						|
    },
 | 
						|
    colors: colors,
 | 
						|
    title: {
 | 
						|
        text: 'Stock Price Movement',
 | 
						|
        align: 'left'
 | 
						|
    },
 | 
						|
    grid: {
 | 
						|
        row: {
 | 
						|
            colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | 
						|
            opacity: 0.2
 | 
						|
        },
 | 
						|
        borderColor: '#f1f3fa'
 | 
						|
    },
 | 
						|
    fill: {
 | 
						|
        gradient: {
 | 
						|
            enabled: true,
 | 
						|
            shadeIntensity: 1,
 | 
						|
            inverseColors: false,
 | 
						|
            opacityFrom: 0.5,
 | 
						|
            opacityTo: 0.1,
 | 
						|
            stops: [0, 70, 80, 100]
 | 
						|
        },
 | 
						|
    },
 | 
						|
    yaxis: {
 | 
						|
        min: 20000000,
 | 
						|
        max: 250000000,
 | 
						|
        labels: {
 | 
						|
            formatter: function (val) {
 | 
						|
                return (val / 1000000).toFixed(0);
 | 
						|
            },
 | 
						|
        },
 | 
						|
        title: {
 | 
						|
            text: 'Price'
 | 
						|
        },
 | 
						|
    },
 | 
						|
    xaxis: {
 | 
						|
        type: 'datetime',
 | 
						|
    },
 | 
						|
 | 
						|
    tooltip: {
 | 
						|
        shared: false,
 | 
						|
        y: {
 | 
						|
            formatter: function (val) {
 | 
						|
                return (val / 1000000).toFixed(0)
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    responsive: [{
 | 
						|
        breakpoint: 600,
 | 
						|
        options: {
 | 
						|
            chart: {
 | 
						|
                toolbar: {
 | 
						|
                    show: false
 | 
						|
                }
 | 
						|
            },
 | 
						|
            legend: {
 | 
						|
                show: false
 | 
						|
            },
 | 
						|
        }
 | 
						|
    }]
 | 
						|
}
 | 
						|
 | 
						|
var chart = new ApexCharts(
 | 
						|
    document.querySelector("#line-chart-zoomable"),
 | 
						|
    options
 | 
						|
);
 | 
						|
 | 
						|
chart.render();
 | 
						|
 | 
						|
 | 
						|
//
 | 
						|
// Line Annotations 
 | 
						|
//
 | 
						|
var colors = ["#39afd1"];
 | 
						|
var dataColors = document.querySelector("#line-chart-annotations").dataset.colors;
 | 
						|
if (dataColors) {
 | 
						|
    colors = dataColors.split(",");
 | 
						|
}
 | 
						|
var options = {
 | 
						|
    annotations: {
 | 
						|
        yaxis: [{
 | 
						|
            y: 8200,
 | 
						|
            borderColor: '#47ad77',
 | 
						|
            label: {
 | 
						|
                borderColor: '#47ad77',
 | 
						|
                style: {
 | 
						|
                    color: '#fff',
 | 
						|
                    background: '#47ad77',
 | 
						|
                },
 | 
						|
                text: 'Support',
 | 
						|
            }
 | 
						|
        }],
 | 
						|
        xaxis: [{
 | 
						|
            x: new Date('23 Nov 2017').getTime(),
 | 
						|
            borderColor: '#775DD0',
 | 
						|
            label: {
 | 
						|
                borderColor: '#775DD0',
 | 
						|
                style: {
 | 
						|
                    color: '#fff',
 | 
						|
                    background: '#775DD0',
 | 
						|
                },
 | 
						|
                text: 'Anno Test',
 | 
						|
            }
 | 
						|
        }, {
 | 
						|
            x: new Date('03 Dec 2017').getTime(),
 | 
						|
            borderColor: '#ffbc00',
 | 
						|
            label: {
 | 
						|
                borderColor: '#ffbc00',
 | 
						|
                style: {
 | 
						|
                    color: '#fff',
 | 
						|
                    background: '#ffbc00',
 | 
						|
                },
 | 
						|
                orientation: 'horizontal',
 | 
						|
                text: 'New Beginning',
 | 
						|
            }
 | 
						|
        }],
 | 
						|
        points: [{
 | 
						|
            x: new Date('27 Nov 2017').getTime(),
 | 
						|
            y: 8506.9,
 | 
						|
            marker: {
 | 
						|
                size: 8,
 | 
						|
                fillColor: '#fff',
 | 
						|
                strokeColor: '#fa5c7c',
 | 
						|
                radius: 2
 | 
						|
            },
 | 
						|
            label: {
 | 
						|
                borderColor: '#fa5c7c',
 | 
						|
                offsetY: 0,
 | 
						|
                style: {
 | 
						|
                    color: '#fff',
 | 
						|
                    background: '#fa5c7c',
 | 
						|
                },
 | 
						|
 | 
						|
                text: 'Point Annotation',
 | 
						|
            }
 | 
						|
        }]
 | 
						|
    },
 | 
						|
    chart: {
 | 
						|
        height: 380,
 | 
						|
        type: 'line',
 | 
						|
        id: 'areachart-2'
 | 
						|
    },
 | 
						|
    colors: colors,
 | 
						|
    dataLabels: {
 | 
						|
        enabled: false
 | 
						|
    },
 | 
						|
    stroke: {
 | 
						|
        width: [3],
 | 
						|
        curve: 'straight'
 | 
						|
    },
 | 
						|
    series: [{
 | 
						|
        data: series.monthDataSeries1.prices
 | 
						|
    }],
 | 
						|
    title: {
 | 
						|
        text: 'Line with Annotations',
 | 
						|
        align: 'left'
 | 
						|
    },
 | 
						|
    labels: series.monthDataSeries1.dates,
 | 
						|
    xaxis: {
 | 
						|
        type: 'datetime',
 | 
						|
    },
 | 
						|
    grid: {
 | 
						|
        row: {
 | 
						|
            colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | 
						|
            opacity: 0.2
 | 
						|
        },
 | 
						|
        borderColor: '#f1f3fa'
 | 
						|
    },
 | 
						|
    responsive: [{
 | 
						|
        breakpoint: 600,
 | 
						|
        options: {
 | 
						|
            chart: {
 | 
						|
                toolbar: {
 | 
						|
                    show: false
 | 
						|
                }
 | 
						|
            },
 | 
						|
            legend: {
 | 
						|
                show: false
 | 
						|
            },
 | 
						|
        }
 | 
						|
    }]
 | 
						|
}
 | 
						|
 | 
						|
var chart = new ApexCharts(
 | 
						|
    document.querySelector("#line-chart-annotations"),
 | 
						|
    options
 | 
						|
);
 | 
						|
 | 
						|
chart.render();
 | 
						|
 | 
						|
//
 | 
						|
// Syncing charts
 | 
						|
//
 | 
						|
var colors = ["#3e60d5"];
 | 
						|
var dataColors = document.querySelector("#line-chart-syncing").dataset.colors;
 | 
						|
if (dataColors) {
 | 
						|
    colors = dataColors.split(",");
 | 
						|
}
 | 
						|
var optionsline2 = {
 | 
						|
    chart: {
 | 
						|
        type: 'line',
 | 
						|
        height: 160,
 | 
						|
        id: 'fb',
 | 
						|
        group: 'social'
 | 
						|
    },
 | 
						|
    colors: colors,
 | 
						|
    stroke: {
 | 
						|
        width: [3],
 | 
						|
        curve: 'straight'
 | 
						|
    },
 | 
						|
    toolbar: {
 | 
						|
        tools: {
 | 
						|
            selection: false
 | 
						|
        }
 | 
						|
    },
 | 
						|
    fill: {
 | 
						|
        opacity: 1,
 | 
						|
    },
 | 
						|
    tooltip: {
 | 
						|
        followCursor: false,
 | 
						|
        theme: 'dark',
 | 
						|
        x: {
 | 
						|
            show: false
 | 
						|
        },
 | 
						|
        marker: {
 | 
						|
            show: false
 | 
						|
        },
 | 
						|
        y: {
 | 
						|
            title: {
 | 
						|
                formatter: function () {
 | 
						|
                    return ''
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    series: [{
 | 
						|
        data: generateDayWiseTimeSeries(new Date('11 Feb 2017').getTime(), 20, {
 | 
						|
            min: 10,
 | 
						|
            max: 30
 | 
						|
        })
 | 
						|
    }],
 | 
						|
    xaxis: {
 | 
						|
        type: 'datetime'
 | 
						|
    },
 | 
						|
    grid: {
 | 
						|
        row: {
 | 
						|
            colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | 
						|
            opacity: 0.2
 | 
						|
        },
 | 
						|
        borderColor: '#f1f3fa'
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
var chartline2 = new ApexCharts(
 | 
						|
    document.querySelector("#line-chart-syncing"),
 | 
						|
    optionsline2
 | 
						|
);
 | 
						|
 | 
						|
chartline2.render();
 | 
						|
 | 
						|
// 
 | 
						|
// Syncing Chart-2
 | 
						|
//
 | 
						|
 | 
						|
var colors = ["#6c757d"];
 | 
						|
var dataColors = document.querySelector("#line-chart-syncing2").dataset.colors;
 | 
						|
if (dataColors) {
 | 
						|
    colors = dataColors.split(",");
 | 
						|
}
 | 
						|
var options = {
 | 
						|
    chart: {
 | 
						|
        height: 200,
 | 
						|
        type: 'line',
 | 
						|
        id: 'yt',
 | 
						|
        group: 'social'
 | 
						|
    },
 | 
						|
    colors: colors,
 | 
						|
    dataLabels: {
 | 
						|
        enabled: false
 | 
						|
    },
 | 
						|
    toolbar: {
 | 
						|
        tools: {
 | 
						|
            selection: false
 | 
						|
        }
 | 
						|
    },
 | 
						|
    tooltip: {
 | 
						|
        followCursor: false,
 | 
						|
        theme: 'dark',
 | 
						|
        x: {
 | 
						|
            show: false
 | 
						|
        },
 | 
						|
        marker: {
 | 
						|
            show: false
 | 
						|
        },
 | 
						|
        y: {
 | 
						|
            title: {
 | 
						|
                formatter: function () {
 | 
						|
                    return ''
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    stroke: {
 | 
						|
        width: [3],
 | 
						|
        curve: 'smooth'
 | 
						|
    },
 | 
						|
 | 
						|
    series: [{
 | 
						|
        data: generateDayWiseTimeSeries(new Date('11 Feb 2017').getTime(), 20, {
 | 
						|
            min: 10,
 | 
						|
            max: 60
 | 
						|
        })
 | 
						|
    }],
 | 
						|
    fill: {
 | 
						|
        gradient: {
 | 
						|
            enabled: true,
 | 
						|
            opacityFrom: 0.6,
 | 
						|
            opacityTo: 0.8,
 | 
						|
        }
 | 
						|
    },
 | 
						|
    legend: {
 | 
						|
        position: 'top',
 | 
						|
        horizontalAlign: 'left'
 | 
						|
    },
 | 
						|
    xaxis: {
 | 
						|
        type: 'datetime'
 | 
						|
    },
 | 
						|
    grid: {
 | 
						|
        row: {
 | 
						|
            colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | 
						|
            opacity: 0.2
 | 
						|
        },
 | 
						|
        borderColor: '#f1f3fa'
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
var chart = new ApexCharts(
 | 
						|
    document.querySelector("#line-chart-syncing2"),
 | 
						|
    options
 | 
						|
);
 | 
						|
 | 
						|
chart.render();
 | 
						|
 | 
						|
/*
 | 
						|
  // this function will generate output in this format
 | 
						|
  // data = [
 | 
						|
      [timestamp, 23],
 | 
						|
      [timestamp, 33],
 | 
						|
      [timestamp, 12]
 | 
						|
      ...
 | 
						|
  ]
 | 
						|
*/
 | 
						|
function generateDayWiseTimeSeries(baseval, count, yrange) {
 | 
						|
    var i = 0;
 | 
						|
    var series = [];
 | 
						|
    while (i < count) {
 | 
						|
        var x = baseval;
 | 
						|
        var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
 | 
						|
 | 
						|
        series.push([x, y]);
 | 
						|
        baseval += 86400000;
 | 
						|
        i++;
 | 
						|
    }
 | 
						|
    return series;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
//
 | 
						|
// Gradient Line Chart
 | 
						|
//
 | 
						|
 | 
						|
var options = {
 | 
						|
    chart: {
 | 
						|
        height: 374,
 | 
						|
        type: 'line',
 | 
						|
        shadow: {
 | 
						|
            enabled: false,
 | 
						|
            color: '#bbb',
 | 
						|
            top: 3,
 | 
						|
            left: 2,
 | 
						|
            blur: 3,
 | 
						|
            opacity: 1
 | 
						|
        },
 | 
						|
    },
 | 
						|
    forecastDataPoints: {
 | 
						|
        count: 7
 | 
						|
    },
 | 
						|
      stroke: {
 | 
						|
        width: 5,
 | 
						|
        curve: 'smooth'
 | 
						|
    },
 | 
						|
    series: [{
 | 
						|
        name: 'Likes',
 | 
						|
        data: [4, 3, 10, 9, 29, 19, 22, 9, 12, 7, 19, 5, 13, 9, 17, 2, 7, 5]
 | 
						|
    }],
 | 
						|
    xaxis: {
 | 
						|
        type: 'datetime',
 | 
						|
        categories: ['1/11/2000', '2/11/2000', '3/11/2000', '4/11/2000', '5/11/2000', '6/11/2000', '7/11/2000', '8/11/2000', '9/11/2000', '10/11/2000', '11/11/2000', '12/11/2000', '1/11/2001', '2/11/2001', '3/11/2001', '4/11/2001', '5/11/2001', '6/11/2001'],
 | 
						|
    },
 | 
						|
    title: {
 | 
						|
        text: 'Social Media',
 | 
						|
        align: 'left',
 | 
						|
        style: {
 | 
						|
            fontSize: "16px",
 | 
						|
            color: '#666'
 | 
						|
        }
 | 
						|
    },
 | 
						|
    fill: {
 | 
						|
        type: 'gradient',
 | 
						|
        gradient: {
 | 
						|
            shade: 'dark',
 | 
						|
            gradientToColors: ['#fa5c7c'],
 | 
						|
            shadeIntensity: 1,
 | 
						|
            type: 'horizontal',
 | 
						|
            opacityFrom: 1,
 | 
						|
            opacityTo: 1,
 | 
						|
            stops: [0, 100, 100, 100]
 | 
						|
        },
 | 
						|
    },
 | 
						|
    markers: {
 | 
						|
        size: 4,
 | 
						|
        opacity: 0.9,
 | 
						|
        colors: ["#ffbc00"],
 | 
						|
        strokeColor: "#fff",
 | 
						|
        strokeWidth: 2,
 | 
						|
        style: 'inverted', // full, hollow, inverted
 | 
						|
        hover: {
 | 
						|
            size: 7,
 | 
						|
        }
 | 
						|
    },
 | 
						|
    yaxis: {
 | 
						|
        min: -10,
 | 
						|
        max: 40,
 | 
						|
        title: {
 | 
						|
            text: 'Engagement',
 | 
						|
        },
 | 
						|
    },
 | 
						|
    grid: {
 | 
						|
        row: {
 | 
						|
            colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | 
						|
            opacity: 0.2
 | 
						|
        },
 | 
						|
        borderColor: '#f1f3fa'
 | 
						|
    },
 | 
						|
    responsive: [{
 | 
						|
        breakpoint: 600,
 | 
						|
        options: {
 | 
						|
            chart: {
 | 
						|
                toolbar: {
 | 
						|
                    show: false
 | 
						|
                }
 | 
						|
            },
 | 
						|
            legend: {
 | 
						|
                show: false
 | 
						|
            },
 | 
						|
        }
 | 
						|
    }]
 | 
						|
}
 | 
						|
 | 
						|
var chart = new ApexCharts(
 | 
						|
    document.querySelector("#line-chart-gradient"),
 | 
						|
    options
 | 
						|
);
 | 
						|
 | 
						|
chart.render();
 | 
						|
 | 
						|
//
 | 
						|
// Missing Data
 | 
						|
//
 | 
						|
var colors = ["#ffbc00", "#47ad77", "#39afd1"];
 | 
						|
var dataColors = document.querySelector("#line-chart-missing").dataset.colors;
 | 
						|
if (dataColors) {
 | 
						|
    colors = dataColors.split(",");
 | 
						|
}
 | 
						|
var options = {
 | 
						|
    chart: {
 | 
						|
        height: 380,
 | 
						|
        type: 'line',
 | 
						|
        zoom: {
 | 
						|
            enabled: false
 | 
						|
        },
 | 
						|
        animations: {
 | 
						|
            enabled: false
 | 
						|
        }
 | 
						|
    },
 | 
						|
    stroke: {
 | 
						|
        width: [5, 5, 4],
 | 
						|
        curve: 'straight'
 | 
						|
    },
 | 
						|
 | 
						|
    series: [{
 | 
						|
        name: 'Peter',
 | 
						|
        data: [5, 5, 10, 8, 7, 5, 4, null, null, null, 10, 10, 7, 8, 6, 9]
 | 
						|
    }, {
 | 
						|
        name: 'Johnny',
 | 
						|
        data: [10, 15, null, 12, null, 10, 12, 15, null, null, 12, null, 14, null, null, null]
 | 
						|
    }, {
 | 
						|
        name: 'David',
 | 
						|
        data: [null, null, null, null, 3, 4, 1, 3, 4, 6, 7, 9, 5, null, null, null]
 | 
						|
    }],
 | 
						|
    colors: colors,
 | 
						|
    labels: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
 | 
						|
    grid: {
 | 
						|
        row: {
 | 
						|
            colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | 
						|
            opacity: 0.2
 | 
						|
        },
 | 
						|
        borderColor: '#f1f3fa',
 | 
						|
        padding: {
 | 
						|
            bottom: 5
 | 
						|
        }
 | 
						|
    },
 | 
						|
    legend: {
 | 
						|
        offsetY: 7,
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
var chart = new ApexCharts(
 | 
						|
    document.querySelector("#line-chart-missing"),
 | 
						|
    options
 | 
						|
);
 | 
						|
 | 
						|
chart.render();
 | 
						|
 | 
						|
//
 | 
						|
// Dashed line chart
 | 
						|
//
 | 
						|
var colors = ["#6c757d", "#47ad77", "#39afd1"];
 | 
						|
var dataColors = document.querySelector("#line-chart-dashed").dataset.colors;
 | 
						|
if (dataColors) {
 | 
						|
    colors = dataColors.split(",");
 | 
						|
}
 | 
						|
var options = {
 | 
						|
    chart: {
 | 
						|
        height: 380,
 | 
						|
        type: 'line',
 | 
						|
        zoom: {
 | 
						|
            enabled: false
 | 
						|
        },
 | 
						|
    },
 | 
						|
    dataLabels: {
 | 
						|
        enabled: false
 | 
						|
    },
 | 
						|
    stroke: {
 | 
						|
        width: [3, 5, 3],
 | 
						|
        curve: 'straight',
 | 
						|
        dashArray: [0, 8, 5]
 | 
						|
    },
 | 
						|
    series: [{
 | 
						|
        name: "Session Duration",
 | 
						|
        data: [45, 52, 38, 24, 33, 26, 21, 20, 6, 8, 15, 10]
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name: "Page Views",
 | 
						|
        data: [35, 41, 62, 42, 13, 18, 29, 37, 36, 51, 32, 35]
 | 
						|
    },
 | 
						|
    {
 | 
						|
        name: 'Total Visits',
 | 
						|
        data: [87, 57, 74, 99, 75, 38, 62, 47, 82, 56, 45, 47]
 | 
						|
    }
 | 
						|
    ],
 | 
						|
    markers: {
 | 
						|
        size: 0,
 | 
						|
        style: 'hollow', // full, hollow, inverted
 | 
						|
    },
 | 
						|
    xaxis: {
 | 
						|
        categories: ['01 Jan', '02 Jan', '03 Jan', '04 Jan', '05 Jan', '06 Jan', '07 Jan', '08 Jan',
 | 
						|
            '09 Jan', '10 Jan', '11 Jan', '12 Jan'
 | 
						|
        ],
 | 
						|
    },
 | 
						|
    colors: colors,
 | 
						|
    tooltip: {
 | 
						|
        y: {
 | 
						|
            title: {
 | 
						|
                formatter: function (val) {
 | 
						|
                    if (val === 'Session Duration') return val + " (mins)"
 | 
						|
                    else if (val === 'Page Views') return val + " per session"
 | 
						|
                    return val;
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    grid: {
 | 
						|
        borderColor: '#f1f3fa',
 | 
						|
    },
 | 
						|
    legend: {
 | 
						|
        offsetY: 7,
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
var chart = new ApexCharts(
 | 
						|
    document.querySelector("#line-chart-dashed"),
 | 
						|
    options
 | 
						|
);
 | 
						|
 | 
						|
chart.render();
 | 
						|
 | 
						|
// 
 | 
						|
// Stepline Charts
 | 
						|
//
 | 
						|
 | 
						|
var ts2 = 1484418600000;
 | 
						|
var data = [];
 | 
						|
var spikes = [5, -5, 3, -3, 8, -8]
 | 
						|
for (var i = 0; i < 30; i++) {
 | 
						|
    ts2 = ts2 + 86400000;
 | 
						|
    var innerArr = [ts2, dataSeries[1][i].value];
 | 
						|
    data.push(innerArr)
 | 
						|
}
 | 
						|
var colors = ["#47ad77"];
 | 
						|
var dataColors = document.querySelector("#line-chart-stepline").dataset.colors;
 | 
						|
if (dataColors) {
 | 
						|
    colors = dataColors.split(",");
 | 
						|
}
 | 
						|
var options = {
 | 
						|
    chart: {
 | 
						|
        type: 'line',
 | 
						|
        height: 344
 | 
						|
    },
 | 
						|
    stroke: {
 | 
						|
        curve: 'stepline',
 | 
						|
    },
 | 
						|
    dataLabels: {
 | 
						|
        enabled: false
 | 
						|
    },
 | 
						|
    series: [{
 | 
						|
        data: [34, 44, 54, 21, 12, 43, 33, 23, 66, 66, 58]
 | 
						|
    }],
 | 
						|
    colors: colors,
 | 
						|
    title: {
 | 
						|
        text: 'Stepline Chart',
 | 
						|
        align: 'left'
 | 
						|
    },
 | 
						|
    markers: {
 | 
						|
        hover: {
 | 
						|
            sizeOffset: 4
 | 
						|
        }
 | 
						|
    },
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
var chart = new ApexCharts(
 | 
						|
    document.querySelector("#line-chart-stepline"),
 | 
						|
    options
 | 
						|
);
 | 
						|
 | 
						|
chart.render();
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
var colors = ["#ffbc00"];
 | 
						|
var dataColors = document.querySelector("#chart-line2").dataset.colors;
 | 
						|
if (dataColors) {
 | 
						|
    colors = dataColors.split(",");
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
    // this function will generate output in this format
 | 
						|
    // data = [
 | 
						|
        [timestamp, 23],
 | 
						|
        [timestamp, 33],
 | 
						|
        [timestamp, 12]
 | 
						|
        ...
 | 
						|
    ]
 | 
						|
  */
 | 
						|
    function generateDayWiseTimeSeries(baseval, count, yrange) {
 | 
						|
        var i = 0;
 | 
						|
        var series = [];
 | 
						|
        while (i < count) {
 | 
						|
          var x = baseval;
 | 
						|
          var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
 | 
						|
      
 | 
						|
          series.push([x, y]);
 | 
						|
          baseval += 86400000;
 | 
						|
          i++;
 | 
						|
        }
 | 
						|
        return series;
 | 
						|
      }
 | 
						|
      
 | 
						|
      var data = generateDayWiseTimeSeries(new Date('11 Feb 2017').getTime(), 185, {
 | 
						|
        min: 30,
 | 
						|
        max: 90
 | 
						|
      })
 | 
						|
var options = {
 | 
						|
    series: [{
 | 
						|
    data: data
 | 
						|
  }],
 | 
						|
    chart: {
 | 
						|
    id: 'chart2',
 | 
						|
    type: 'line',
 | 
						|
    height: 230,
 | 
						|
    toolbar: {
 | 
						|
      autoSelected: 'pan',
 | 
						|
      show: false
 | 
						|
    }
 | 
						|
  },
 | 
						|
  colors: colors,
 | 
						|
  stroke: {
 | 
						|
    width: 3
 | 
						|
  },
 | 
						|
  dataLabels: {
 | 
						|
    enabled: false
 | 
						|
  },
 | 
						|
  fill: {
 | 
						|
    opacity: 1,
 | 
						|
  },
 | 
						|
  markers: {
 | 
						|
    size: 0
 | 
						|
  },
 | 
						|
  xaxis: {
 | 
						|
    type: 'datetime'
 | 
						|
  }
 | 
						|
  };
 | 
						|
 | 
						|
  var chart = new ApexCharts(document.querySelector("#chart-line2"), options);
 | 
						|
  chart.render();
 | 
						|
 | 
						|
 | 
						|
  var colors = ["#ffbc00"];
 | 
						|
    var dataColors = document.querySelector("#chart-line").dataset.colors;
 | 
						|
    if (dataColors) {
 | 
						|
        colors = dataColors.split(",");
 | 
						|
    }
 | 
						|
 | 
						|
  var optionsLine = {
 | 
						|
    series: [{
 | 
						|
    data: data
 | 
						|
  }],
 | 
						|
    chart: {
 | 
						|
    id: 'chart1',
 | 
						|
    height: 130,
 | 
						|
    type: 'area',
 | 
						|
    brush:{
 | 
						|
      target: 'chart2',
 | 
						|
      enabled: true
 | 
						|
    },
 | 
						|
    selection: {
 | 
						|
      enabled: true,
 | 
						|
      xaxis: {
 | 
						|
        min: new Date('19 Jun 2017').getTime(),
 | 
						|
        max: new Date('14 Aug 2017').getTime()
 | 
						|
      }
 | 
						|
    },
 | 
						|
  },
 | 
						|
  colors: colors,
 | 
						|
  fill: {
 | 
						|
    type: 'gradient',
 | 
						|
    gradient: {
 | 
						|
      opacityFrom: 0.91,
 | 
						|
      opacityTo: 0.1,
 | 
						|
    }
 | 
						|
  },
 | 
						|
  xaxis: {
 | 
						|
    type: 'datetime',
 | 
						|
    tooltip: {
 | 
						|
      enabled: false
 | 
						|
    }
 | 
						|
  },
 | 
						|
  yaxis: {
 | 
						|
    tickAmount: 2
 | 
						|
  }
 | 
						|
  };
 | 
						|
 | 
						|
  var chartLine = new ApexCharts(document.querySelector("#chart-line"), optionsLine);
 | 
						|
  chartLine.render();
 | 
						|
 | 
						|
 | 
						|
//
 | 
						|
// Realtime chart
 | 
						|
//
 | 
						|
 | 
						|
'use strict';
 | 
						|
 | 
						|
var lastDate = 0;
 | 
						|
var data = [];
 | 
						|
function getDayWiseTimeSeries(baseval, count, yrange) {
 | 
						|
    var i = 0;
 | 
						|
    while (i < count) {
 | 
						|
        var x = baseval;
 | 
						|
        var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
 | 
						|
 | 
						|
        data.push({
 | 
						|
            x: x, y: y
 | 
						|
        });
 | 
						|
        lastDate = baseval;
 | 
						|
        baseval += 86400000;
 | 
						|
        i++;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
getDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 10, {
 | 
						|
    min: 10,
 | 
						|
    max: 90
 | 
						|
});
 | 
						|
 | 
						|
function getNewSeries(baseval, yrange) {
 | 
						|
    var newDate = baseval + 86400000;
 | 
						|
    lastDate = newDate;
 | 
						|
    data.push({
 | 
						|
        x: newDate,
 | 
						|
        y: Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
function resetData() {
 | 
						|
    data = data.slice(data.length - 10, data.length);
 | 
						|
}
 | 
						|
 | 
						|
var colors = ["#39afd1"];
 | 
						|
var dataColors = document.querySelector("#line-chart-realtime").dataset.colors;
 | 
						|
if (dataColors) {
 | 
						|
    colors = dataColors.split(",");
 | 
						|
}
 | 
						|
var options = {
 | 
						|
    chart: {
 | 
						|
        height: 350,
 | 
						|
        type: 'line',
 | 
						|
        animations: {
 | 
						|
            enabled: true,
 | 
						|
            easing: 'linear',
 | 
						|
            dynamicAnimation: {
 | 
						|
                speed: 2000
 | 
						|
            }
 | 
						|
        },
 | 
						|
        toolbar: {
 | 
						|
            show: false
 | 
						|
        },
 | 
						|
        zoom: {
 | 
						|
            enabled: false
 | 
						|
        }
 | 
						|
    },
 | 
						|
    dataLabels: {
 | 
						|
        enabled: false
 | 
						|
    },
 | 
						|
    stroke: {
 | 
						|
        curve: 'smooth',
 | 
						|
        width: [3],
 | 
						|
    },
 | 
						|
    colors: colors,
 | 
						|
    series: [{
 | 
						|
        data: data
 | 
						|
    }],
 | 
						|
    markers: {
 | 
						|
        size: 0
 | 
						|
    },
 | 
						|
    xaxis: {
 | 
						|
        type: 'datetime',
 | 
						|
        range: 777600000
 | 
						|
    },
 | 
						|
    yaxis: {
 | 
						|
        max: 100
 | 
						|
    },
 | 
						|
    legend: {
 | 
						|
        show: false
 | 
						|
    },
 | 
						|
    grid: {
 | 
						|
        borderColor: '#f1f3fa',
 | 
						|
    }
 | 
						|
};
 | 
						|
 | 
						|
var chart = new ApexCharts(document.querySelector("#line-chart-realtime"), options);
 | 
						|
 | 
						|
chart.render();
 | 
						|
 | 
						|
var dataPointsLength = 10;
 | 
						|
 | 
						|
window.setInterval(function () {
 | 
						|
    getNewSeries(lastDate, {
 | 
						|
        min: 10,
 | 
						|
        max: 90
 | 
						|
    });
 | 
						|
 | 
						|
    chart.updateSeries([{
 | 
						|
        data: data
 | 
						|
    }]);
 | 
						|
}, 2000);
 | 
						|
 | 
						|
// every 60 seconds, we reset the data 
 | 
						|
window.setInterval(function () {
 | 
						|
    resetData();
 | 
						|
    chart.updateSeries([{
 | 
						|
        data: data
 | 
						|
    }], false, true);
 | 
						|
}, 60000); |