%PDF- %PDF-
Direktori : /home/vacivi36/campanha.vacivitta.com.br/wp-content/plugins/elementskit/widgets/chart/ |
Current File : /home/vacivi36/campanha.vacivitta.com.br/wp-content/plugins/elementskit/widgets/chart/chart.php |
<?php namespace Elementor; use \Elementor\ElementsKit_Widget_Chart_Handler as Handler; use \ElementsKit_Lite\Modules\Controls\Controls_Manager as ElementsKit_Controls_Manager; if(!defined('ABSPATH')) { exit; } class ElementsKit_Widget_Chart extends Widget_Base { use \ElementsKit_Lite\Widgets\Widget_Notice; public $base; public function __construct( $data = [], $args = null ) { parent::__construct( $data, $args ); $this->add_script_depends('chart-kit-js'); } public function get_name() { return Handler::get_name(); } public function get_title() { return Handler::get_title(); } public function get_icon() { return Handler::get_icon(); } public function get_categories() { return Handler::get_categories(); } public function get_keywords() { return Handler::get_keywords(); } public function get_help_url() { return 'https://wpmet.com/doc/advanced-chart/'; } protected function is_dynamic_content(): bool { return false; } protected function register_controls() { /*Data Section*/ $this->start_controls_section( 'ekit_chart_data_section', [ 'label' => esc_html__('Data ', 'elementskit'), ] ); // start repeter for lavel $chartRepeterCate = new Repeater(); $chartRepeterCate->add_control( 'ekit_chart_label', [ 'label' => esc_html__('Name', 'elementskit'), 'type' => Controls_Manager::TEXT, 'default' => esc_html__('January', 'elementskit'), 'label_block' => true, 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'ekit_charts_labels_data', [ 'label' => esc_html__('Categories', 'elementskit'), 'type' => Controls_Manager::REPEATER, 'default' => [ ['ekit_chart_label' => esc_html__('January', 'elementskit')], ['ekit_chart_label' => esc_html__('February', 'elementskit')], ['ekit_chart_label' => esc_html__('March', 'elementskit')], ], 'fields' => $chartRepeterCate->get_controls(), 'title_field' => '{{{ ekit_chart_label }}}', 'condition' => ['ekit_chart_style' => ['bar', 'horizontalBar', 'line', 'radar']], ] ); // repeter 1 $chartRepeter = new Repeater(); $chartRepeter->add_control( 'ekit_chart_data_label', [ 'label' => esc_html__('Label', 'elementskit'), 'type' => Controls_Manager::TEXT, 'default' => esc_html__('Label #1', 'elementskit'), 'label_block' => true, 'dynamic' => [ 'active' => true, ], ] ); $chartRepeter->add_control( 'ekit_chart_data_set', [ 'label' => esc_html__('Data', 'elementskit'), 'type' => Controls_Manager::TEXT, 'default' => '10,23,15', 'label_block' => true, 'description' => esc_html__('Enter data values by "," separated(1). Example: 2,4,8,16,32 etc', 'elementskit'), 'dynamic' => [ 'active' => true, ], ] ); // start tabs section $chartRepeter->start_controls_tabs( 'ekit_chart_data_bar_back_tab' ); // start normal sections $chartRepeter->start_controls_tab( 'ekit_chart_data_bar_back_normal', [ 'label' => esc_html__('Normal', 'elementskit'), ] ); $chartRepeter->add_control( 'ekit_chart_data_bar_back_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => 'rgba(242,41,91,0.48)', ] ); $chartRepeter->add_control( 'ekit_chart_data_bar_border_color', [ 'label' => esc_html__('Border Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => 'rgba(242,41,91,0.48)', ] ); $chartRepeter->end_controls_tab(); // end normal sections // start hover sections $chartRepeter->start_controls_tab( 'ekit_chart_data_bar_back_hover', [ 'label' => esc_html__('Hover', 'elementskit'), ] ); $chartRepeter->add_control( 'ekit_chart_data_bar_back_color_hover', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, ] ); $chartRepeter->add_control( 'ekit_chart_data_bar_border_color_hover', [ 'label' => esc_html__('Border Color', 'elementskit'), 'type' => Controls_Manager::COLOR, ] ); $chartRepeter->end_controls_tab(); // end hover sections $chartRepeter->end_controls_tabs(); // end tabs section $chartRepeter->add_control( 'ekit_chart_data_bar_border_width', [ 'label' => esc_html__('Border Width', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'default' => '1', ] ); $this->add_control( 'ekit_charts_data_set', [ 'label' => esc_html__('Set Data', 'elementskit'), 'type' => Controls_Manager::REPEATER, 'default' => [ [ 'ekit_chart_data_label' => esc_html__('Label #1', 'elementskit'), 'ekit_chart_data_set' => '13,20,15', 'ekit_chart_data_bar_back_color' => 'rgba(242,41,91,0.48)', 'ekit_chart_data_bar_border_color' => 'rgba(242,41,91,0.48)', 'ekit_chart_data_bar_border_width' => 1, ], [ 'ekit_chart_data_label' => esc_html__('Label #2', 'elementskit'), 'ekit_chart_data_set' => '20,10,33', 'ekit_chart_data_bar_back_color' => 'rgba(69,53,244,0.48)', 'ekit_chart_data_bar_border_color' => 'rgba(69,53,244,0.48)', 'ekit_chart_data_bar_border_width' => 1, ], [ 'ekit_chart_data_label' => esc_html__('Label #3', 'elementskit'), 'ekit_chart_data_set' => '10,3,23', 'ekit_chart_data_bar_back_color' => 'rgba(239,239,40,0.57)', 'ekit_chart_data_bar_border_color' => 'rgba(239,239,40,0.57)', 'ekit_chart_data_bar_border_width' => 1, ], ], 'fields' => $chartRepeter->get_controls(), 'title_field' => '{{{ ekit_chart_data_label }}}', 'condition' => ['ekit_chart_style' => ['bar', 'horizontalBar', 'line', 'radar']], ] ); // repeter 2 $chartRepeter2 = new Repeater(); $chartRepeter2->add_control( 'ekit_chart_data_label', [ 'label' => esc_html__('Label', 'elementskit'), 'type' => Controls_Manager::TEXT, 'default' => esc_html__('Label #1', 'elementskit'), 'label_block' => true, ] ); $chartRepeter2->add_control( 'ekit_chart_data_set2', [ 'label' => esc_html__('Data', 'elementskit'), 'type' => Controls_Manager::TEXT, 'default' => '10', 'label_block' => true, ] ); // start tabs section $chartRepeter2->start_controls_tabs( 'ekit_chart_data_bar_back_tab' ); // start normal sections $chartRepeter2->start_controls_tab( 'ekit_chart_data_bar_back_normal', [ 'label' => esc_html__('Normal', 'elementskit'), ] ); $chartRepeter2->add_control( 'ekit_chart_data_bar_back_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => 'rgba(242,41,91,0.48)', ] ); $chartRepeter2->add_control( 'ekit_chart_data_bar_border_color', [ 'label' => esc_html__('Border Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => 'rgba(242,41,91,0.48)', ] ); $chartRepeter2->end_controls_tab(); // end normal sections // start hover sections $chartRepeter2->start_controls_tab( 'ekit_chart_data_bar_back_hover', [ 'label' => esc_html__('Hover', 'elementskit'), ] ); $chartRepeter2->add_control( 'ekit_chart_data_bar_back_color_hover', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, ] ); $chartRepeter2->add_control( 'ekit_chart_data_bar_border_color_hover', [ 'label' => esc_html__('Border Color', 'elementskit'), 'type' => Controls_Manager::COLOR, ] ); $chartRepeter2->end_controls_tab(); // end hover sections $chartRepeter2->end_controls_tabs(); // end tabs section $chartRepeter2->add_control( 'ekit_chart_data_bar_border_width', [ 'label' => esc_html__('Border Width', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'default' => '1', ] ); $this->add_control( 'ekit_charts_data_set2', [ 'label' => esc_html__('Set Data', 'elementskit'), 'type' => Controls_Manager::REPEATER, 'default' => [ [ 'ekit_chart_data_label' => esc_html__('Label #1', 'elementskit'), 'ekit_chart_data_set2' => '13', 'ekit_chart_data_bar_back_color' => 'rgba(242,41,91,0.48)', 'ekit_chart_data_bar_border_color' => 'rgba(242,41,91,0.48)', 'ekit_chart_data_bar_border_width' => 1, ], [ 'ekit_chart_data_label' => esc_html__('Label #2', 'elementskit'), 'ekit_chart_data_set2' => '20', 'ekit_chart_data_bar_back_color' => 'rgba(69,53,244,0.48)', 'ekit_chart_data_bar_border_color' => 'rgba(69,53,244,0.48)', 'ekit_chart_data_bar_border_width' => 1, ], [ 'ekit_chart_data_label' => esc_html__('Label #3', 'elementskit'), 'ekit_chart_data_set2' => '10', 'ekit_chart_data_bar_back_color' => 'rgba(239,239,40,0.57)', 'ekit_chart_data_bar_border_color' => 'rgba(239,239,40,0.57)', 'ekit_chart_data_bar_border_width' => 1, ], ], 'fields' => $chartRepeter2->get_controls(), 'title_field' => '{{{ ekit_chart_data_label }}}', 'condition' => ['ekit_chart_style' => ['doughnut', 'pie', 'polarArea']], ] ); $this->end_controls_section(); // end Data Section /*Account Settings*/ $this->start_controls_section( 'ekit_chart_settings', [ 'label' => esc_html__('Settings ', 'elementskit'), ] ); // chart style $this->add_control( 'ekit_chart_style', [ 'label' => esc_html__('Chart Styles', 'elementskit'), 'type' => Controls_Manager::SELECT, 'default' => 'bar', 'options' => [ 'bar' => esc_html__('Bar (Vertical)', 'elementskit'), 'horizontalBar' => esc_html__('Bar (Horozontal)', 'elementskit'), 'line' => esc_html__('Line', 'elementskit'), 'radar' => esc_html__('Radar', 'elementskit'), 'doughnut' => esc_html__('Doughnut', 'elementskit'), 'pie' => esc_html__('Pie', 'elementskit'), 'polarArea' => esc_html__('Polar Area', 'elementskit'), ], ] ); // title options $this->add_control( 'ekit_charts_show_title', [ 'label' => esc_html__('Show Title', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'separator' => 'before', ] ); $this->add_control( 'ekit_charts_title_text', [ 'label' => esc_html__('Title', 'elementskit'), 'type' => Controls_Manager::TEXT, 'default' => 'Element Kit Line Chart - Animation Progress Bar', 'condition' => ['ekit_charts_show_title' => 'yes'], 'label_block' => true, ] ); // gridline options $this->add_control( 'ekit_charts_grid_lines', [ 'label' => esc_html__('Grid Lines', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'condition' => ['ekit_chart_style!' => ['doughnut', 'pie', 'polarArea']], ] ); $this->add_control( 'ekit_charts_grid_color', [ 'label' => esc_html__('Grid Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => 'rgba(0,0,0,0.05)', 'condition' => [ 'ekit_charts_grid_lines' => 'yes', 'ekit_chart_style!' => ['doughnut', 'pie', 'polarArea'], ], ] ); // lavel options $this->add_control( 'ekit_charts_show_lavel', [ 'label' => esc_html__('Enable Label', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'separator' => 'before', ] ); // legend options $this->add_control( 'ekit_charts_show_legend', [ 'label' => esc_html__('Enable Legends', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', ] ); // legend Click options $this->add_control( 'ekit_charts_disable_legends_filter', [ 'label' => esc_html__('Disable Legends Filter', 'elementskit'), 'description' => esc_html__( 'If enabled, the user cannot click items on the legend to show/hide chart elements.', 'elementskit' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'condition' => ['ekit_charts_show_legend' => 'yes'], ] ); // tooltips options $this->add_control( 'ekit_charts_show_tooltips', [ 'label' => esc_html__('Show Tooltip', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'separator' => 'before', ] ); $this->end_controls_section(); // end content account settings // start style sections // start title style here $this->start_controls_section( 'ekit_chart_section_style_chart', [ 'label' => esc_html__('Chart', 'elementskit'), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => ['ekit_chart_style' => ['line', 'pie', 'bubble', 'radar']], ] ); $this->add_control( 'ekit_chart_section_style_chart_point_style', [ 'label' => esc_html__('Point Style', 'elementskit'), 'type' => Controls_Manager::SELECT, 'default' => 'circle', 'options' => [ 'circle' => 'Circle', 'cross' => 'Cross', 'star' => 'Star', 'triangle' => 'Triangle', 'line' => 'Line', ], 'condition' => ['ekit_chart_style' => ['line', 'radar', 'bubble']], ] ); // line chart $this->add_control( 'ekit_chart_section_style_line_chart_stepped', [ 'label' => esc_html__('Stepped Line', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'condition' => ['ekit_chart_style' => 'line'], ] ); $this->add_control( 'ekit_chart_section_style_line_chart_tension', [ 'label' => esc_html__('Tension', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'default' => 0.4, 'min' => 0, 'condition' => ['ekit_chart_style' => 'line', 'ekit_chart_section_style_line_chart_stepped' => 'yes'], ] ); $this->add_control( 'ekit_chart_section_style_line_chart_fill', [ 'label' => esc_html__('Fill', 'elementskit'), 'type' => Controls_Manager::SELECT, 'default' => 'bottom', 'options' => [ 'top' => 'Top', 'bottom' => 'Bottom', ], 'condition' => ['ekit_chart_style' => 'line'], ] ); $this->add_control( 'ekit_chart_section_style_pie_chart_border_width', [ 'label' => esc_html__('Border Width', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'default' => 1, 'min' => 0, 'condition' => ['ekit_chart_style' => 'pie'], ] ); $this->end_controls_section(); // end chart style // start label style $this->start_controls_section( 'ekit_chart_section_style_label', [ 'label' => esc_html__('Categories', 'elementskit'), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => ['ekit_charts_show_lavel' => 'yes'], ] ); $this->add_control( 'ekit_charts_label_font_color', [ 'label' => esc_html__('Font Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => '#666', ] ); $this->add_control( 'ekit_charts_label_font_size', [ 'label' => esc_html__('Font Size', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'min' => 0, 'max' => 100, 'step' => 1, 'default' => 12, ] ); $this->add_control( 'ekit_charts_label_font_style', [ 'label' => esc_html__('Font Style', 'elementskit'), 'type' => Controls_Manager::SELECT, 'default' => 'normal', 'options' => [ 'bold' => 'Bold', 'normal' => 'Normal', ], ] ); $this->add_control( 'ekit_charts_label_padding', [ 'label' => esc_html__('Padding', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'min' => 0, 'max' => 60, 'step' => 1, 'default' => 5, ] ); $this->end_controls_section(); // end label style // start legend style $this->start_controls_section( 'ekit_chart_section_style_legend', [ 'label' => esc_html__('Legend', 'elementskit'), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => ['ekit_charts_show_legend' => 'yes'], ] ); $this->add_control( 'ekit_charts_legend_font_color', [ 'label' => esc_html__('Font Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => '#666', ] ); $this->add_control( 'ekit_charts_legend_font_size', [ 'label' => esc_html__('Font Size', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'min' => 0, 'max' => 100, 'step' => 1, 'default' => 12, ] ); $this->add_control( 'ekit_charts_legend_font_style', [ 'label' => esc_html__('Font Style', 'elementskit'), 'type' => Controls_Manager::SELECT, 'default' => 'normal', 'options' => [ 'bold' => 'Bold', 'normal' => 'Normal', ], ] ); $this->add_control( 'ekit_charts_legend_padding', [ 'label' => esc_html__('Padding', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'min' => 0, 'max' => 300, 'step' => 1, 'default' => 10, ] ); $this->add_control( 'ekit_charts_legend_point_style', [ 'label' => esc_html__('Point Style', 'elementskit'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'return_value' => 'yes', ] ); $this->add_control( 'ekit_charts_legend_box_width', [ 'label' => esc_html__('Box Width', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'min' => 0, 'max' => 300, 'step' => 1, 'default' => 40, 'condition' => ['ekit_charts_legend_point_style!' => 'yes'], ] ); $this->add_control( 'ekit_charts_legend_align', [ 'label' => esc_html__('Position', 'elementskit'), 'type' => Controls_Manager::CHOOSE, 'default' => 'top', 'options' => [ 'left' => [ 'title' => esc_html__('Left', 'elementskit'), 'icon' => 'fa fa-long-arrow-left', ], 'top' => [ 'title' => esc_html__('Top', 'elementskit'), 'icon' => 'fa fa-long-arrow-up', ], 'bottom' => [ 'title' => esc_html__('Bottom', 'elementskit'), 'icon' => 'fa fa-long-arrow-down', ], 'right' => [ 'title' => esc_html__('Right', 'elementskit'), 'icon' => 'fa fa-long-arrow-right', ], ], ] ); $this->end_controls_section(); // end legend style // start tooltips style $this->start_controls_section( 'ekit_chart_section_style_tooltip', [ 'label' => esc_html__('Tooltip', 'elementskit'), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => ['ekit_charts_show_tooltips' => 'yes'], ] ); $this->add_control( 'ekit_charts_tooltips_back_color', [ 'label' => esc_html__('Background Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => 'rgba(0,0,0,0.96)', ] ); // title $this->add_control( 'ekit_charts_tooltips_title_font_color', [ 'label' => esc_html__('Title Font Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => '#fff', ] ); $this->add_control( 'ekit_charts_tooltips_title_font_size', [ 'label' => esc_html__('Title Font Size', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'min' => 0, 'max' => 100, 'step' => 1, 'default' => 13, ] ); $this->add_control( 'ekit_charts_tooltips_title_font_style', [ 'label' => esc_html__('Title Font Style', 'elementskit'), 'type' => Controls_Manager::SELECT, 'default' => 'normal', 'options' => [ 'bold' => 'Bold', 'normal' => 'Normal', ], ] ); // bodyFontColor $this->add_control( 'ekit_charts_tooltips_body_font_color', [ 'label' => esc_html__('Body Font Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => '#fff', ] ); $this->add_control( 'ekit_charts_tooltips_body_font_size', [ 'label' => esc_html__('Body Font Size', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'min' => 0, 'max' => 100, 'step' => 1, 'default' => 12, ] ); $this->add_control( 'ekit_charts_tooltips_body_font_style', [ 'label' => esc_html__('Body Font Style', 'elementskit'), 'type' => Controls_Manager::SELECT, 'default' => 'normal', 'options' => [ 'bold' => 'Bold', 'normal' => 'Normal', ], ] ); $this->end_controls_section(); // end tooltips style // start title style here $this->start_controls_section( 'ekit_chart_section_style_title', [ 'label' => esc_html__('Title', 'elementskit'), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => ['ekit_charts_show_title' => 'yes'], ] ); $this->add_control( 'ekit_charts_title_text_font_size', [ 'label' => esc_html__('Font Size', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'min' => 0, 'max' => 100, 'step' => 1, 'default' => 14, ] ); $this->add_control( 'ekit_charts_title_text_font_color', [ 'label' => esc_html__('Font Color', 'elementskit'), 'type' => Controls_Manager::COLOR, 'default' => '#666', ] ); $this->add_control( 'ekit_charts_title_text_font_style', [ 'label' => esc_html__('Font Style', 'elementskit'), 'type' => Controls_Manager::SELECT, 'default' => 'bold', 'options' => [ 'bold' => 'Bold', 'normal' => 'Normal', ], ] ); $this->add_control( 'ekit_charts_title_align', [ 'label' => esc_html__('Position', 'elementskit'), 'type' => Controls_Manager::CHOOSE, 'default' => 'top', 'options' => [ 'left' => [ 'title' => esc_html__('Left', 'elementskit'), 'icon' => 'fa fa-long-arrow-left', ], 'top' => [ 'title' => esc_html__('Top', 'elementskit'), 'icon' => 'fa fa-long-arrow-up', ], 'bottom' => [ 'title' => esc_html__('Bottom', 'elementskit'), 'icon' => 'fa fa-long-arrow-down', ], 'right' => [ 'title' => esc_html__('Right', 'elementskit'), 'icon' => 'fa fa-long-arrow-right', ], ], ] ); $this->add_control( 'ekit_charts_title_text_font_padding', [ 'label' => esc_html__('Padding', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'min' => 0, 'max' => 300, 'step' => 1, 'default' => 10, ] ); $this->add_control( 'ekit_charts_title_text_font_line_height', [ 'label' => esc_html__('Line Height', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'min' => 1, 'max' => 100, 'step' => 1, 'default' => 1.2, ] ); $this->end_controls_section(); // end title style // start animation style $this->start_controls_section( 'ekit_chart_section_style_animation', [ 'label' => esc_html__('Animation', 'elementskit'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'ekit_chart_section_style_animation_duration', [ 'label' => esc_html__('Duration', 'elementskit'), 'type' => Controls_Manager::NUMBER, 'min' => 1000, 'max' => 10000, 'step' => 100, 'default' => 1000, ] ); $this->add_control( 'ekit_chart_section_style_animation_style', [ 'label' => esc_html__('Style', 'elementskit'), 'type' => Controls_Manager::SELECT2, 'default' => 'linear', 'label_block' => true, 'options' => [ 'linear' => 'Linear', 'easeInQuad' => 'easeInQuad', 'easeOutQuad' => 'easeOutQuad', 'easeInOutQuad' => 'easeInOutQuad', 'easeInCubic' => 'easeInCubic', 'easeOutCubic' => 'easeOutCubic', 'easeInOutCubic' => 'easeInOutCubic', 'easeInQuart' => 'easeInQuart', 'easeOutQuart' => 'easeOutQuart', 'easeInOutQuart' => 'easeInOutQuart', 'easeInQuint' => 'easeInQuint', 'easeOutQuint' => 'easeOutQuint', 'easeInOutQuint' => 'easeInOutQuint', 'easeInSine' => 'easeInSine', 'easeOutSine' => 'easeOutSine', 'easeInOutSine' => 'easeInOutSine', 'easeInExpo' => 'easeInExpo', 'easeOutExpo' => 'easeOutExpo', 'easeInOutExpo' => 'easeInOutExpo', 'easeInCirc' => 'easeInCirc', 'easeOutCirc' => 'easeOutCirc', 'easeInOutCirc' => 'easeInOutCirc', 'easeInElastic' => 'easeInElastic', 'easeOutElastic' => 'easeOutElastic', 'easeInOutElastic' => 'easeInOutElastic', 'easeInBack' => 'easeInBack', 'easeOutBack' => 'easeOutBack', 'easeInOutBack' => 'easeInOutBack', 'easeInBounce' => 'easeInBounce', 'easeOutBounce' => 'easeOutBounce', 'easeInOutBounce' => 'easeInOutBounce', ], ] ); $this->end_controls_section(); // end animation style /** * Section: Responsive */ $this->start_controls_section( 'ekit_chart_section_style_res', [ 'label' => esc_html__( 'Responsive', 'elementskit' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); /** * Control: Enable/Disable */ $this->add_control( 'ekit_chart_res', [ 'label' => esc_html__( 'Responsive Layout', 'elementskit' ), 'type' => Controls_Manager::SWITCHER, 'selectors' => [ '{{WRAPPER}} .ekit-wid-con' => 'overflow: auto;', '{{WRAPPER}} .ekit-chart' => 'position: relative; margin: 0 auto;', ], ] ); /** * Control: Width */ $this->add_responsive_control( 'ekit_chart_res_width', [ 'label' => esc_html__( 'Width (px)', 'elementskit' ), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 0, 'max' => 1600 ] ], 'default' => [ 'size' => '800', ], 'selectors' => [ '{{WRAPPER}} .ekit-chart' => 'width: {{SIZE}}px;', ], 'condition' => [ 'ekit_chart_res' => 'yes', ], 'separator' => 'before', ] ); /** * Control: Height */ $this->add_responsive_control( 'ekit_chart_res_height', [ 'label' => esc_html__( 'Height (px)', 'elementskit' ), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 0, 'max' => 1600 ] ], 'default' => [ 'size' => '400', ], 'selectors' => [ '{{WRAPPER}} .ekit-chart' => 'height: {{SIZE}}px;', ], 'condition' => [ 'ekit_chart_res' => 'yes', ], ] ); $this->end_controls_section(); $this->insert_pro_message(); } protected function render() { echo '<div class="ekit-wid-con" >'; $this->render_raw(); echo '</div>'; } protected function render_raw() { $settings = $this->get_settings_for_display(); extract($settings); $Chart_id = 'ekit-chart-' . $this->get_id(); $dataChartArray = []; if(is_array($ekit_charts_labels_data) && sizeof($ekit_charts_labels_data)): foreach($ekit_charts_labels_data AS $labelsData): $dataChartArray['labels'][] = $labelsData['ekit_chart_label']; endforeach; endif; $backColor = []; // set data if(in_array($ekit_chart_style, array('pie', 'doughnut', 'polarArea'))) { $backgroundColor = []; $backgroundColorHover = []; $borderColor = []; $borderColorHover = []; $dataChart = []; $chartLabel = []; if(is_array($ekit_charts_data_set2) && sizeof($ekit_charts_data_set2)): foreach($ekit_charts_data_set2 AS $DataChart): $backgroundColor[] = $DataChart['ekit_chart_data_bar_back_color']; $backgroundColorHover[] = strlen($DataChart['ekit_chart_data_bar_back_color_hover']) > 0 ? $DataChart['ekit_chart_data_bar_back_color_hover'] : $DataChart['ekit_chart_data_bar_back_color']; $borderColor[] = $DataChart['ekit_chart_data_bar_border_color']; $borderColorHover[] = strlen($DataChart['ekit_chart_data_bar_border_color_hover']) > 0 ? $DataChart['ekit_chart_data_bar_border_color_hover'] : $DataChart['ekit_chart_data_bar_border_color']; $dataArray = array_map('intval', explode(',', trim($DataChart['ekit_chart_data_set2'], ','))); $dataChart[] = $dataArray[0]; $chartLabel[] = $DataChart['ekit_chart_data_label']; endforeach; endif; $dataChartArray['datasets'][] = [ 'data' => $dataChart, 'backgroundColor' => $backgroundColor, 'hoverBackgroundColor' => $backgroundColorHover, 'borderColor' => $borderColor, 'hoverBorderColor' => $borderColorHover, ]; $dataChartArray['labels'] = $chartLabel; } else { if(is_array($ekit_charts_data_set) && sizeof($ekit_charts_data_set)): foreach($ekit_charts_data_set AS $DataChart): $backgroundColor = $DataChart['ekit_chart_data_bar_back_color']; $backgroundColorHover = $DataChart['ekit_chart_data_bar_back_color_hover']; $borderColor = $DataChart['ekit_chart_data_bar_border_color']; $borderColorHover = $DataChart['ekit_chart_data_bar_border_color_hover']; $borderWidth = $DataChart['ekit_chart_data_bar_border_width']; $backgroundColorHover = strlen($backgroundColorHover) > 0 ? $backgroundColorHover : $backgroundColor; $borderColorHover = strlen($borderColorHover) > 0 ? $borderColorHover : $borderColor; $dataChartArray['datasets'][] = [ 'label' => $DataChart['ekit_chart_data_label'], 'data' => array_map('floatval', explode(',', trim($DataChart['ekit_chart_data_set'], ','))), 'backgroundColor' => $backgroundColor, 'hoverBackgroundColor' => $backgroundColorHover, 'borderColor' => $borderColor, 'hoverBorderColor' => $borderColorHover, 'borderWidth' => $borderWidth, ]; endforeach; endif; } $dataLabelsJson = wp_json_encode(array_filter($dataChartArray['labels'])); $dataJson = wp_json_encode(array_filter($dataChartArray['datasets'])); // start options $options = []; // Title options if($ekit_charts_show_title == 'yes') { $options['title'] = [ 'display' => true, 'position' => strlen($ekit_charts_title_align) > 0 ? $ekit_charts_title_align : 'top', 'fontSize' => $ekit_charts_title_text_font_size, 'fontColor' => $ekit_charts_title_text_font_color, 'fontStyle' => $ekit_charts_title_text_font_style, 'padding' => $ekit_charts_title_text_font_padding, 'lineHeight' => $ekit_charts_title_text_font_line_height, 'text' => $ekit_charts_title_text, ]; } // animations options $options['animation'] = [ 'duration' => $ekit_chart_section_style_animation_duration, 'easing' => $ekit_chart_section_style_animation_style, 'onProgress' => 'function(animation) {progress.value = animation.animationObject.currentStep / animation.animationObject.numSteps;}', 'onComplete' => 'function() {window.setTimeout(function() { progress.value = 0;}, ' . $ekit_chart_section_style_animation_duration . ');', ]; // tooltip options options if($ekit_charts_show_tooltips == 'yes') { if($ekit_charts_tooltips_back_color) { $options['tooltips'] = [ 'backgroundColor' => $ekit_charts_tooltips_back_color, 'intersect' => true, 'mode' => 'nearest', 'titleFontSize' => $ekit_charts_tooltips_title_font_size, 'titleFontColor' => $ekit_charts_tooltips_title_font_color, 'titleFontStyle' => $ekit_charts_tooltips_title_font_style, 'bodyFontSize' => $ekit_charts_tooltips_body_font_size, 'bodyFontColor' => $ekit_charts_tooltips_body_font_color, 'bodyFontStyle' => $ekit_charts_tooltips_body_font_style, ]; } } else { $options['tooltips'] = ['enabled' => false]; } //Elements optins if(in_array($ekit_chart_style, array('line', 'radar', 'bubble'))) { $options['elements']['point'] = [ 'radius' => 5, 'pointStyle' => $ekit_chart_section_style_chart_point_style, 'borderWidth' => 3, 'hoverRadius' => 6, 'hoverBorderWidth' => 4, ]; } if(in_array($ekit_chart_style, array('line'))) { $options['elements']['line'] = [ 'tension' => $ekit_chart_section_style_line_chart_tension, 'borderCapStyle' => 'butt', 'fill' => $ekit_chart_section_style_line_chart_fill, 'stepped' => isset($ekit_chart_section_style_line_chart_stepped) && $ekit_chart_section_style_line_chart_stepped == 'yes' ? false : true, ]; } if(in_array($ekit_chart_style, array('pie'))) { $options['elements']['arc'] = [ 'backgroundColor' => 'rgba(0, 0, 0, 0.1)', 'borderColor' => 'rgba(0, 0, 0, 0.1)', 'borderWidth' => $ekit_chart_section_style_pie_chart_border_width, 'borderAlign' => 'left', ]; } // legend options if($ekit_charts_show_legend == 'yes') { if($ekit_charts_legend_align) { $options['legend'] = [ 'position' => $ekit_charts_legend_align, 'labels' => [ 'boxWidth' => $ekit_charts_legend_box_width, 'fontColor' => $ekit_charts_legend_font_color, 'fontSize' => $ekit_charts_legend_font_size, 'fontStyle' => $ekit_charts_legend_font_style, 'padding' => $ekit_charts_legend_padding, 'usePointStyle' => (isset($ekit_charts_legend_point_style) & $ekit_charts_legend_point_style == 'yes') ? true : false, ], ]; } // Check if Clickable is set to 'yes' if ($ekit_charts_disable_legends_filter == 'yes') { // Add the onClick handler $options['legend']['onClick'] = 'function(e) { e.stopPropagation(); }'; } } else { $options['legend'] = ['display' => false]; } // gridline options if(!in_array($ekit_chart_style, array('doughnut', 'pie', 'polarArea'))) { $ticksArray = [ 'display' => ($ekit_charts_show_lavel) ? true : false, 'beginAtZero' => true, 'fontColor' => $ekit_charts_label_font_color, 'fontSize' => $ekit_charts_label_font_size, 'fontStyle' => $ekit_charts_label_font_style, 'padding' => $ekit_charts_label_padding, ]; if($ekit_charts_grid_lines == 'yes') { $options['scales']['yAxes'] = [ [ 'ticks' => $ticksArray, 'gridLines' => [ 'drawBorder' => false, 'color' => $ekit_charts_grid_color, ], ], ]; $options['scales']['xAxes'] = [ [ 'ticks' => $ticksArray, 'gridLines' => [ 'drawBorder' => false, 'color' => $ekit_charts_grid_color, ], ], ]; } else { $options['scales']['yAxes'] = [ [ 'ticks' => $ticksArray, 'gridLines' => [ 'display' => false, ], ], ]; $options['scales']['xAxes'] = [ [ 'ticks' => $ticksArray, 'gridLines' => [ 'display' => false, ], ], ]; } } if(in_array($ekit_chart_style, array('doughnut'))) { $options['cutoutPercentage'] = 50; } if(in_array($ekit_chart_style, array('pie'))) { $options['cutoutPercentage'] = 0; } // extra plugin $options['plugins'] = [ 'deferred' => [ 'xOffset' => 150, 'yOffset' => '50%', 'delay' => 300, ], ]; $opionsJson = wp_json_encode(array_filter($options)); ?> <div class="ekit-chart"> <canvas id="<?php echo esc_attr($Chart_id); ?>"></canvas> </div> <script type="text/javascript"> jQuery(function ($) { var ekitChartId = document.querySelector('#<?php echo esc_attr($Chart_id); ?>'), ekitChart = new Chart(ekitChartId, { type: '<?php echo esc_js($ekit_chart_style);?>', data: { labels: <?php echo \ElementsKit_Lite\Utils::render($dataLabelsJson); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>, datasets: <?php echo \ElementsKit_Lite\Utils::render($dataJson); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> }, options: <?php echo \ElementsKit_Lite\Utils::render($opionsJson);// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> }); }); </script> <?php } }