2025-04-02 13:24:56 +05:30

361 lines
9.0 KiB
JavaScript

/**
* Advanced Cards
*/
'use strict';
(function () {
let cardColor, headingColor, legendColor, labelColor;
if (isDarkStyle) {
cardColor = config.colors_dark.cardColor;
labelColor = config.colors_dark.textMuted;
legendColor = config.colors_dark.bodyColor;
headingColor = config.colors_dark.headingColor;
} else {
cardColor = config.colors.cardColor;
labelColor = config.colors.textMuted;
legendColor = config.colors.bodyColor;
headingColor = config.colors.headingColor;
}
// Radial bar chart functions
function radialBarChart(color, value, show) {
const radialBarChartOpt = {
chart: {
height: show == 'true' ? 58 : 55,
width: show == 'true' ? 58 : 45,
type: 'radialBar'
},
plotOptions: {
radialBar: {
hollow: {
size: show == 'true' ? '50%' : '25%'
},
dataLabels: {
show: show == 'true' ? true : false,
value: {
offsetY: -10,
fontSize: '15px',
fontWeight: 500,
fontFamily: 'Public Sans',
color: headingColor
}
},
track: {
background: config.colors_label.secondary
}
}
},
stroke: {
lineCap: 'round'
},
colors: [color],
grid: {
padding: {
top: show == 'true' ? -12 : -15,
bottom: show == 'true' ? -17 : -15,
left: show == 'true' ? -17 : -5,
right: -15
}
},
series: [value],
labels: show == 'true' ? [''] : ['Progress']
};
return radialBarChartOpt;
}
// Progress Chart
// --------------------------------------------------------------------
// All progress chart
const chartProgressList = document.querySelectorAll('.chart-progress');
if (chartProgressList) {
chartProgressList.forEach(function (chartProgressEl) {
const color = config.colors[chartProgressEl.dataset.color],
series = chartProgressEl.dataset.series;
const progress_variant = chartProgressEl.dataset.progress_variant
? chartProgressEl.dataset.progress_variant
: 'false';
const optionsBundle = radialBarChart(color, series, progress_variant);
const chart = new ApexCharts(chartProgressEl, optionsBundle);
chart.render();
});
}
// Order Statistics Chart
// --------------------------------------------------------------------
const chartOrderStatistics = document.querySelector('#orderStatisticsChart'),
orderChartConfig = {
chart: {
height: 145,
width: 110,
type: 'donut'
},
labels: ['Electronic', 'Sports', 'Decor', 'Fashion'],
series: [50, 85, 25, 40],
colors: [config.colors.success, config.colors.primary, config.colors.secondary, config.colors.info],
stroke: {
width: 5,
colors: [cardColor]
},
dataLabels: {
enabled: false,
formatter: function (val, opt) {
return parseInt(val) + '%';
}
},
legend: {
show: false
},
grid: {
padding: {
top: 0,
bottom: 0,
right: 15
}
},
plotOptions: {
pie: {
donut: {
size: '75%',
labels: {
show: true,
value: {
fontSize: '18px',
fontFamily: 'Public Sans',
fontWeight: 500,
color: headingColor,
offsetY: -17,
formatter: function (val) {
return parseInt(val) + '%';
}
},
name: {
offsetY: 17,
fontFamily: 'Public Sans'
},
total: {
show: true,
fontSize: '13px',
color: legendColor,
label: 'Weekly',
formatter: function (w) {
return '38%';
}
}
}
}
}
},
states: {
active: {
filter: {
type: 'none'
}
}
}
};
if (typeof chartOrderStatistics !== undefined && chartOrderStatistics !== null) {
const statisticsChart = new ApexCharts(chartOrderStatistics, orderChartConfig);
statisticsChart.render();
}
// Earning Reports Bar Chart
// --------------------------------------------------------------------
const reportBarChartEl = document.querySelector('#reportBarChart'),
reportBarChartConfig = {
chart: {
height: 200,
type: 'bar',
toolbar: {
show: false
}
},
plotOptions: {
bar: {
barHeight: '60%',
columnWidth: '60%',
startingShape: 'rounded',
endingShape: 'rounded',
borderRadius: 4,
distributed: true
}
},
grid: {
show: false,
padding: {
top: -20,
bottom: 0,
left: -10,
right: -10
}
},
colors: [
config.colors_label.primary,
config.colors_label.primary,
config.colors_label.primary,
config.colors_label.primary,
config.colors.primary,
config.colors_label.primary,
config.colors_label.primary
],
dataLabels: {
enabled: false
},
series: [
{
data: [40, 95, 60, 45, 90, 50, 75]
}
],
legend: {
show: false
},
xaxis: {
categories: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
axisBorder: {
show: false
},
axisTicks: {
show: false
},
labels: {
style: {
colors: labelColor,
fontSize: '13px'
}
}
},
yaxis: {
labels: {
show: false
}
}
};
if (typeof reportBarChartEl !== undefined && reportBarChartEl !== null) {
const barChart = new ApexCharts(reportBarChartEl, reportBarChartConfig);
barChart.render();
}
// Conversion rate Line Chart
// --------------------------------------------------------------------
const conversionLineChartEl = document.querySelector('#conversionRateChart'),
conversionLineChartConfig = {
chart: {
height: 80,
width: 140,
type: 'line',
toolbar: {
show: false
},
dropShadow: {
enabled: true,
top: 10,
left: 5,
blur: 3,
color: config.colors.primary,
opacity: 0.15
},
sparkline: {
enabled: true
}
},
markers: {
size: 6,
colors: 'transparent',
strokeColors: 'transparent',
strokeWidth: 4,
discrete: [
{
fillColor: cardColor,
seriesIndex: 0,
dataPointIndex: 3,
strokeColor: config.colors.primary,
strokeWidth: 4,
size: 6,
radius: 2
}
],
hover: {
size: 7
}
},
grid: {
show: false,
padding: {
right: 8
}
},
colors: [config.colors.primary],
dataLabels: {
enabled: false
},
stroke: {
width: 5,
curve: 'smooth'
},
series: [
{
data: [137, 210, 160, 245]
}
],
xaxis: {
show: false,
lines: {
show: false
},
labels: {
show: false
},
axisBorder: {
show: false
}
},
yaxis: {
show: false
}
};
const conversionLineChart = new ApexCharts(conversionLineChartEl, conversionLineChartConfig);
conversionLineChart.render();
// Credit Card Validation
// --------------------------------------------------------------------
const creditCardPayment = document.querySelector('.credit-card-payment'),
expiryDatePayment = document.querySelector('.expiry-date-payment'),
cvvMaskList = document.querySelectorAll('.cvv-code-payment');
let cleave;
// Credit Card Cleave Masking
if (creditCardPayment) {
cleave = new Cleave(creditCardPayment, {
creditCard: true,
onCreditCardTypeChanged: function (type) {
if (type != '' && type != 'unknown') {
document.querySelector('.card-payment-type').innerHTML =
'<img src="' + assetsPath + 'img/icons/payments/' + type + '-cc.png" class="cc-icon-image" height="20"/>';
} else {
document.querySelector('.card-payment-type').innerHTML = '';
}
}
});
}
// Expiry Date Mask
if (expiryDatePayment) {
new Cleave(expiryDatePayment, {
date: true,
delimiter: '/',
datePattern: ['m', 'y']
});
}
// All CVV field
if (cvvMaskList) {
cvvMaskList.forEach(function (cvvMaskEl) {
new Cleave(cvvMaskEl, {
numeral: true,
numeralPositiveOnly: true
});
});
}
})();