File "data-map.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/happy-elementor-addons/widgets/bar-chart/classes/data-map.php
File
size: 9.25 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
/**
* Chart widget class
*
* @package Happy_Addons
*/
namespace Happy_Addons\Elementor\Widget\Bar_Chart;
defined( 'ABSPATH' ) || die();
class Data_Map {
public static function initial($settings) {
$data_settings = json_encode(
[
'type' => $settings['chart_position'],
'data' => [
'labels' => explode(',', esc_html( $settings['labels'] ) ),
'datasets' => self::chart_dataset($settings),
],
'options' => self::chart_options($settings)
]
);
return $data_settings;
}
public static function chart_dataset($settings) {
$datasets = [];
$items = $settings['chart_data'];
if ( !empty( $items ) ) {
foreach ( $items as $item ) {
$item['label'] = !empty( $item['label'] ) ? esc_html( $item['label'] ) : '';
$item['data'] = !empty( $item['data'] ) ? array_map( 'trim', explode(',', $item['data'] ) ) : '';
$item['backgroundColor'] = !empty( $item['background_color'] ) ? $item['background_color'] : 'rgba(86, 45, 212, 0.7)';
$item['hoverBackgroundColor'] = !empty( $item['background_hover_color'] ) ? $item['background_hover_color'] : '#562dd4';
$item['borderColor'] = !empty( $item['border_color'] ) ? $item['border_color'] : '#602edc';
$item['hoverBorderColor'] = !empty( $item['border_hover_color'] ) ? $item['border_hover_color'] : '#602edc';
$item['borderWidth'] = ( $settings['bar_border_width']['size'] !== '' ) ? $settings['bar_border_width']['size'] : 1;
$datasets[] = $item;
}
}
return $datasets;
}
public static function chart_options($settings) {
$xaxes_labels_display = $settings['xaxes_labels_display'] == 'yes' ? true : false;
$yaxes_labels_display = $settings['yaxes_labels_display'] == 'yes' ? true : false;
$tooltips_display = $settings['tooltip_display'] == 'yes' ? true : false;
$legend_display = $settings['legend_display'] == 'yes' ? true : false;
$xaxes_grid_display = $settings['xaxes_grid_display'] == 'yes' ? true : false;
$yaxes_grid_display = $settings['yaxes_grid_display'] == 'yes' ? true : false;
$title_display = $settings['title_display'] == 'yes' ? true : false;
$legend_style = [
'boxWidth' => !empty( $settings['legend_box_width']['size'] ) ? $settings['legend_box_width']['size'] : 45,
'fontFamily' => !empty( $settings['legend_font_family'] ) ? $settings['legend_font_family'] : 'auto',
'fontSize' => !empty( $settings['legend_font_size']['size'] ) ? $settings['legend_font_size']['size'] : 12,
'fontStyle' => (!empty( $settings['legend_font_style'] ) ? $settings['legend_font_style'] : '') . ' ' . (!empty( $settings['legend_font_weight'] ) ? $settings['legend_font_weight'] : ''),
'fontColor' => !empty( $settings['legend_font_color'] ) ? $settings['legend_font_color'] : '#222',
];
$tooltip = [
'enabled' => $tooltips_display,
'backgroundColor' => !empty( $settings['tooltip_background_color'] ) ? $settings['tooltip_background_color'] : 'rgba(0, 0, 0, .7)',
'borderWidth' => !empty( $settings['tooltip_border_width']['size'] ) ? $settings['tooltip_border_width']['size'] : 0,
'borderColor' => !empty( $settings['tooltip_border_color'] ) ? $settings['tooltip_border_color'] : 'rgba(0, 0, 0, 0.1)',
'titleFontFamily' => !empty( $settings['tooltip_title_font_family'] ) ? $settings['tooltip_title_font_family'] : 'auto',
'titleFontSize' => !empty( $settings['tooltip_title_font_size']['size'] ) ? $settings['tooltip_title_font_size']['size'] : 12,
'titleFontStyle' => (!empty( $settings['tooltip_title_font_style'] ) ? $settings['tooltip_title_font_style'] : '') . ' ' . (!empty( $settings['tooltip_title_font_weight'] ) ? $settings['tooltip_title_font_weight'] : ''),
'titleFontColor' => !empty( $settings['tooltip_title_font_color'] ) ? $settings['tooltip_title_font_color'] : '#fff',
'bodyFontFamily' => !empty( $settings['tooltip_body_font_family'] ) ? $settings['tooltip_body_font_family'] : 'auto',
'bodyFontSize' => !empty( $settings['tooltip_body_font_size']['size'] ) ? $settings['tooltip_body_font_size']['size'] : 11,
'bodyFontStyle' => (!empty( $settings['tooltip_body_font_style'] ) ? $settings['tooltip_body_font_style'] : '') . ' ' . (!empty( $settings['tooltip_body_font_weight'] ) ? $settings['tooltip_body_font_weight'] : ''),
'bodyFontColor' => !empty( $settings['tooltip_body_font_color'] ) ? $settings['tooltip_body_font_color'] : '#f7f7f7',
'cornerRadius' => !empty( $settings['tooltip_border_radius']['size'] ) ? $settings['tooltip_border_radius']['size'] : 6,
'xPadding' => !empty( $settings['tooltip_padding']['size'] ) ? $settings['tooltip_padding']['size'] : 6,
'yPadding' => !empty( $settings['tooltip_padding']['size'] ) ? $settings['tooltip_padding']['size'] : 6,
'caretSize' => !empty( $settings['tooltip_caret_size']['size'] ) ? $settings['tooltip_caret_size']['size'] : 5,
'mode' => !empty( $settings['tooltip_mode'] ) ? $settings['tooltip_mode'] : 'nearest',
];
if ( $xaxes_grid_display == 'yes' ) {
$xaxes_gridLines = [
'drawBorder' => false,
'color' => isset( $settings['grid_color'] ) ? $settings['grid_color'] : '#eeeeee',
];
} else {
$xaxes_gridLines = [];
}
if ( $yaxes_grid_display == 'yes' ) {
$yaxes_gridLines = [
'drawBorder' => false,
'color' => isset( $settings['grid_color'] ) ? $settings['grid_color'] : '#eeeeee',
];
} else {
$yaxes_gridLines = [];
}
$options = [
'title' => [
'display' => $title_display,
'text' => $settings['chart_title'],
'fontFamily' => !empty( $settings['title_font_family'] ) ? $settings['title_font_family'] : 'auto',
'fontSize' => !empty( $settings['title_font_size']['size'] ) ? $settings['title_font_size']['size'] : 18,
'fontStyle' => (!empty( $settings['title_font_style'] ) ? $settings['title_font_style'] : '') . ' ' . (!empty( $settings['title_font_weight'] ) ? $settings['title_font_weight'] : ''),
'fontColor' => !empty( $settings['title_font_color'] ) ? $settings['title_font_color'] : '#222',
],
'tooltips' => $tooltip,
'legend' => [
'display' => $legend_display,
'position' => !empty( $settings['legend_position'] ) ? $settings['legend_position'] : 'top',
'reverse' => $settings['legend_reverse'] == 'yes' ? true : false,
'labels' => $legend_style,
],
'animation' => [
'easing' => $settings['animation_options'],
'duration' => $settings['chart_animation_duration'],
],
'layout' => [
'padding' => [
'top' => $settings['layout_padding']['top'],
'right' => $settings['layout_padding']['right'],
'bottom' => $settings['layout_padding']['bottom'],
'left' => $settings['layout_padding']['left']
]
],
'maintainAspectRatio' => false,
'scales' => [
'xAxes' => [
[
'ticks' => [
'display' => $xaxes_labels_display,
'beginAtZero' => true,
'max' => isset( $settings['axis_range'] ) ? $settings['axis_range'] : 10,
'stepSize' => isset( $settings['step_size'] ) ? $settings['step_size'] : 1,
'fontFamily' => !empty( $settings['labels_xaxes_font_family'] ) ? $settings['labels_xaxes_font_family'] : 'auto',
'fontSize' => !empty( $settings['labels_xaxes_font_size']['size'] ) ? $settings['labels_xaxes_font_size']['size'] : 12,
'fontStyle' => (!empty( $settings['labels_xaxes_font_style'] ) ? $settings['labels_xaxes_font_style'] : '') . ' ' . (!empty( $settings['labels_xaxes_font_weight'] ) ? $settings['labels_xaxes_font_weight'] : ''),
'fontColor' => !empty( $settings['labels_xaxes_font_color'] ) ? $settings['labels_xaxes_font_color'] : '#222',
'padding' => !empty( $settings['labels_padding']['size'] ) ? $settings['labels_padding']['size'] : 10,
],
'gridLines' => $xaxes_gridLines,
'barPercentage' => ( $settings['bar_width']['size'] !== '' ) ? $settings['bar_width']['size'] / 100 : '',
'categoryPercentage' => ( $settings['category_width']['size'] !== '' ) ? $settings['category_width']['size'] / 100 : '',
]
],
'yAxes' => [
[
'ticks' => [
'display' => $yaxes_labels_display,
'beginAtZero' => true,
'max' => isset( $settings['axis_range'] ) ? $settings['axis_range'] : 10,
'stepSize' => isset( $settings['step_size'] ) ? $settings['step_size'] : 1,
'fontFamily' => !empty( $settings['labels_yaxes_font_family'] ) ? $settings['labels_yaxes_font_family'] : 'auto',
'fontSize' => !empty( $settings['labels_yaxes_font_size']['size'] ) ? $settings['labels_yaxes_font_size']['size'] : 12,
'fontStyle' => (!empty( $settings['labels_yaxes_font_style'] ) ? $settings['labels_yaxes_font_style'] : '') . ' ' . (!empty( $settings['labels_yaxes_font_weight'] ) ? $settings['labels_yaxes_font_weight'] : ''),
'fontColor' => !empty( $settings['labels_yaxes_font_color'] ) ? $settings['labels_yaxes_font_color'] : '#222',
'padding' => !empty( $settings['labels_padding']['size'] ) ? $settings['labels_padding']['size'] : 10,
],
'gridLines' => $yaxes_gridLines,
'barPercentage' => ( $settings['bar_width']['size'] !== '' ) ? $settings['bar_width']['size'] / 100 : '',
'categoryPercentage' => ( $settings['category_width']['size'] !== '' ) ? $settings['category_width']['size'] / 100 : '',
]
],
],
];
return $options;
}
}