/** * Theme: Velonic - Responsive Bootstrap 5 Admin Dashboard * Author: Techzaa * Module/App: Chartjs */ !function ($) { "use strict"; var BarChart = function () { this.$body = $("body"); this.charts = []; this.defaultColors = ["#3bc0c3", "#4489e4", "#d03f3f", "#716cb0"]; }; BarChart.prototype.borderRadiusExample = function () { var chartElement = document.getElementById('border-radius-example'); var dataColors = chartElement.getAttribute('data-colors'); var colors = dataColors ? dataColors.split(",") : this.defaultColors; var ctx = chartElement.getContext('2d'); var chart = new Chart(ctx, { type: 'bar', data: { labels: ['Jan', 'Feb', 'March', 'April', 'May', 'June'], datasets: [{ label: 'Fully Rounded', data: [12, -19, 14, -15, 12, -14], borderColor: colors[0], backgroundColor: hexToRGB(colors[0], .3), borderWidth: 2, borderRadius: Number.MAX_VALUE, borderSkipped: false, }, { label: 'Small Radius', data: [-10, 19, -15, -8, 12, -7], backgroundColor: hexToRGB(colors[1], .3), borderColor: colors[1], borderWidth: 2, borderRadius: Number.MAX_VALUE, borderSkipped: false, }] }, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { display: false, position: 'top', }, }, scales: { x: { grid: { display: false } }, y: { grid: { display: false } }, } }, }); this.charts.push(chart); } BarChart.prototype.floatingBarExample = function () { var chartElement = document.getElementById('floating-example'); var dataColors = chartElement.getAttribute('data-colors'); var colors = dataColors ? dataColors.split(",") : this.defaultColors var ctx = chartElement.getContext('2d'); var chart = new Chart(ctx, { type: 'bar', data: { labels: ['Jan', 'Feb', 'March', 'April', 'May', 'June'], datasets: [{ label: 'Fully Rounded', data: [12, -19, 14, -15, 12, -14], backgroundColor: colors[0], }, { label: 'Small Radius', data: [-10, 19, -15, -8, 12, -7], backgroundColor: colors[1], }] }, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { display: false, position: 'top', }, }, scales: { x: { grid: { display: false } }, y: { grid: { display: false } }, } }, }); this.charts.push(chart) } //initializing various components and plugins BarChart.prototype.init = function () { var $this = this; Chart.defaults.font.family = '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif'; Chart.defaults.color = "#8391a2"; Chart.defaults.scale.grid.color = "#8391a2"; // init charts this.borderRadiusExample(); this.floatingBarExample(); // enable resizing matter $(window).on('resizeEnd', function (e) { $.each($this.charts, function (index, chart) { try { chart.destroy(); } catch (err) { } }); $this.borderRadiusExample(); $this.floatingBarExample(); }); $(window).resize(function () { if (this.resizeTO) clearTimeout(this.resizeTO); this.resizeTO = setTimeout(function () { $(this).trigger('resizeEnd'); }, 500); }); }; //init chart $.ChartJs = new BarChart; $.ChartJs.Constructor = BarChart }(window.jQuery), //initializing ChartJs function ($) { "use strict"; $.ChartJs.init() }(window.jQuery); /* utility function */ function hexToRGB(hex, alpha) { var r = parseInt(hex.slice(1, 3), 16), g = parseInt(hex.slice(3, 5), 16), b = parseInt(hex.slice(5, 7), 16); if (alpha) { return "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")"; } else { return "rgb(" + r + ", " + g + ", " + b + ")"; } }