265 lines
5.4 KiB
JavaScript
265 lines
5.4 KiB
JavaScript
|
var chart = c3.generate({
|
||
|
data: {
|
||
|
columns: [
|
||
|
['data1', 30, 200, 100, 400, 150, 250, 50, 100, 250]
|
||
|
],
|
||
|
type: 'spline',
|
||
|
selection: {
|
||
|
enabled: true
|
||
|
}
|
||
|
},
|
||
|
color: {
|
||
|
pattern: [color.primary._500, color.info._500, color.success._500, color.danger._500, color.warning._500]
|
||
|
},
|
||
|
grid: {
|
||
|
x: {
|
||
|
show: false
|
||
|
},
|
||
|
y: {
|
||
|
show: true
|
||
|
}
|
||
|
}
|
||
|
|
||
|
});
|
||
|
|
||
|
var defaultMessage = $('#message').html(),
|
||
|
currentIndex = 0,
|
||
|
timer, duration = 1500,
|
||
|
demos = [
|
||
|
function () {
|
||
|
chart.load({
|
||
|
columns: [
|
||
|
['data2', 100, 30, 200, 320, 50, 150, 230, 80, 150]
|
||
|
],
|
||
|
type: 'spline'
|
||
|
})
|
||
|
setMessage('Load data2');
|
||
|
setProgressBar('4')
|
||
|
},
|
||
|
function () {
|
||
|
chart.load({
|
||
|
columns: [
|
||
|
['data3', 70, 90, 170, 220, 100, 110, 130, 40, 50]
|
||
|
]
|
||
|
})
|
||
|
setMessage('Load data3');
|
||
|
setProgressBar('8')
|
||
|
},
|
||
|
function () {
|
||
|
chart.select(['data1'], [2]);
|
||
|
setMessage('Select point for index 2 of data1');
|
||
|
setProgressBar('12')
|
||
|
},
|
||
|
function () {
|
||
|
chart.select(['data1'], [4, 6]);
|
||
|
setMessage('Select point for index 4,6 of data1');
|
||
|
setProgressBar('16')
|
||
|
},
|
||
|
function () {
|
||
|
chart.unselect();
|
||
|
setMessage('Unselect points');
|
||
|
setProgressBar('20')
|
||
|
},
|
||
|
function () {
|
||
|
chart.focus('data2');
|
||
|
setMessage('Focus on data2');
|
||
|
setProgressBar('24')
|
||
|
},
|
||
|
function () {
|
||
|
chart.focus('data3');
|
||
|
setMessage('Focus on data3');
|
||
|
setProgressBar('28')
|
||
|
},
|
||
|
function () {
|
||
|
chart.revert();
|
||
|
setMessage('Defocus');
|
||
|
setProgressBar('32')
|
||
|
},
|
||
|
function () {
|
||
|
chart.load({
|
||
|
columns: [
|
||
|
['data1', 300, 230, 400, 520, 230, 250, 330, 280, 250]
|
||
|
]
|
||
|
})
|
||
|
setMessage('Update data1');
|
||
|
setProgressBar('36')
|
||
|
},
|
||
|
function () {
|
||
|
chart.load({
|
||
|
columns: [
|
||
|
['data2', 30, 50, 90, 120, 40, 50, 80, 70, 50]
|
||
|
]
|
||
|
})
|
||
|
setMessage('Update data2');
|
||
|
setProgressBar('40')
|
||
|
},
|
||
|
function () {
|
||
|
chart.regions([{
|
||
|
start: 1,
|
||
|
end: 3
|
||
|
}]);
|
||
|
setMessage('Add region from 1 to 3');
|
||
|
setProgressBar('44')
|
||
|
},
|
||
|
function () {
|
||
|
chart.regions.add([{
|
||
|
start: 6
|
||
|
}]);
|
||
|
setMessage('Add region from 6 to end');
|
||
|
setProgressBar('48')
|
||
|
},
|
||
|
function () {
|
||
|
chart.regions([]);
|
||
|
setMessage('Clear regions');
|
||
|
setProgressBar('52')
|
||
|
},
|
||
|
function () {
|
||
|
chart.xgrids([{
|
||
|
value: 1,
|
||
|
text: 'Label 1'
|
||
|
}, {
|
||
|
value: 4,
|
||
|
text: 'Label 4'
|
||
|
}]);
|
||
|
setMessage('Add x grid lines for 1, 4');
|
||
|
setProgressBar('56')
|
||
|
},
|
||
|
function () {
|
||
|
chart.ygrids.add([{
|
||
|
value: 450,
|
||
|
text: 'Label 450'
|
||
|
}]);
|
||
|
setMessage('Add y grid lines for 450');
|
||
|
setProgressBar('60')
|
||
|
},
|
||
|
function () {
|
||
|
chart.xgrids.remove({
|
||
|
value: 1
|
||
|
});
|
||
|
chart.xgrids.remove({
|
||
|
value: 4
|
||
|
});
|
||
|
setMessage('Remove grid lines for 1, 4');
|
||
|
setProgressBar('64')
|
||
|
},
|
||
|
function () {
|
||
|
chart.ygrids.remove({
|
||
|
value: 450
|
||
|
});
|
||
|
setMessage('Remove grid line for 450');
|
||
|
setProgressBar('68')
|
||
|
},
|
||
|
function () {
|
||
|
chart.transform('bar');
|
||
|
setMessage('Show as bar chart');
|
||
|
setProgressBar('72')
|
||
|
},
|
||
|
function () {
|
||
|
chart.groups([
|
||
|
['data2', 'data3']
|
||
|
]);
|
||
|
setMessage('Grouping data2 and data3');
|
||
|
setProgressBar('76')
|
||
|
},
|
||
|
function () {
|
||
|
chart.groups([
|
||
|
['data1', 'data2', 'data3']
|
||
|
]);
|
||
|
setMessage('Grouping data1, data2 and data3');
|
||
|
},
|
||
|
function () {
|
||
|
chart.groups([
|
||
|
['data2', 'data3']
|
||
|
]);
|
||
|
chart.transform('spline', 'data1');
|
||
|
setMessage('Show data1 as spline');
|
||
|
setProgressBar('80')
|
||
|
},
|
||
|
function () {
|
||
|
chart.unload({
|
||
|
ids: 'data3'
|
||
|
});
|
||
|
setMessage('Unload data3');
|
||
|
setProgressBar('84')
|
||
|
},
|
||
|
function () {
|
||
|
chart.unload({
|
||
|
ids: 'data2'
|
||
|
});
|
||
|
setMessage('Unload data2');
|
||
|
setProgressBar('88')
|
||
|
},
|
||
|
function () {
|
||
|
chart.flow({
|
||
|
columns: [
|
||
|
['data1', 390, 400, 200, 500]
|
||
|
],
|
||
|
duration: 1000,
|
||
|
});
|
||
|
setMessage('Flow 4 data');
|
||
|
setProgressBar('92')
|
||
|
},
|
||
|
function () {
|
||
|
// wait for end of transition for flow
|
||
|
},
|
||
|
function () {
|
||
|
chart.flow({
|
||
|
columns: [
|
||
|
['data1', 190, 230]
|
||
|
],
|
||
|
});
|
||
|
setMessage('Flow 2 data');
|
||
|
setProgressBar('96')
|
||
|
},
|
||
|
function () {
|
||
|
// wait for end of transition for flow
|
||
|
},
|
||
|
function () {
|
||
|
chart.transform('spline', ['data1', 'data2', 'data3']);
|
||
|
chart.groups([
|
||
|
['data1'],
|
||
|
['data2'],
|
||
|
['data3']
|
||
|
]);
|
||
|
chart.load({
|
||
|
columns: [
|
||
|
['data1', 30, 200, 100, 400, 150, 250, 50, 100, 250]
|
||
|
]
|
||
|
})
|
||
|
setMessage('Finishing demo..');
|
||
|
setProgressBar('100')
|
||
|
stopDemo()
|
||
|
}
|
||
|
];
|
||
|
|
||
|
function setMessage(message) {
|
||
|
document.getElementById('message').innerHTML = '<div id="demoMessage" class="shadow-lg fs-xl p-3 rounded fadeinup">' + message + '</div>';
|
||
|
}
|
||
|
|
||
|
function setProgressBar(percentage) {
|
||
|
$('#demo-progress').css("width", percentage + "%");
|
||
|
}
|
||
|
|
||
|
function startDemo() {
|
||
|
setMessage('Starting Demo...');
|
||
|
timer = setInterval(function () {
|
||
|
if (currentIndex == demos.length) currentIndex = 0;
|
||
|
demos[currentIndex++]();
|
||
|
}, duration);
|
||
|
$('#playDemo').hide();
|
||
|
$('#pauseDemo').show();
|
||
|
}
|
||
|
|
||
|
function stopDemo() {
|
||
|
clearInterval(timer);
|
||
|
document.getElementById('message').innerHTML = '<div id="demoMessage" class="shadow-lg fs-xl p-3 rounded fadeinup bg-success-500 text-center">Thanks for watching! <br> <button class="btn btn-xs btn-dark mt-2" onclick="startDemo();">Play again</button> </div>';
|
||
|
$('#playDemo').hide();
|
||
|
$('#pauseDemo').hide();
|
||
|
};
|
||
|
|
||
|
function pauseDemo() {
|
||
|
clearInterval(timer);
|
||
|
document.getElementById('message').innerHTML = '<div id="demoMessage" class="shadow-lg fs-xl p-3 rounded highlight"> Demo Paused </div>';
|
||
|
$('#playDemo').show();
|
||
|
$('#pauseDemo').hide();
|
||
|
};
|