PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.86
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.86
51.1.87 51.1.86 51.1.84 51.1.85 51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 All 41 releases
← All changes | includes/widgets/Charts/Charts.php +2649 -2795 51.1.36 → 51.1.86 View file →
@@ -1,2796 +1,2650 @@
1 -<?php
2 -
3 -namespace King_Addons;
4 -
5 -use Elementor\Controls_Manager;
6 -use Elementor\Widget_Base;
7 -use Elementor\Repeater;
8 -
9 -if (!defined('ABSPATH')) {
10 - exit;
11 -}
12 -
13 -class Charts extends Widget_Base
14 -{
15 -
16 -
17 -
18 - public function get_name()
19 - {
20 - return 'king-addons-charts';
21 - }
22 -
23 - public function get_title()
24 - {
25 - return esc_html__('Charts', 'king-addons');
26 - }
27 -
28 - public function get_icon()
29 - {
30 - return 'king-addons-icon king-addons-charts';
31 - }
32 -
33 - public function get_script_depends()
34 - {
35 - return [KING_ADDONS_ASSETS_UNIQUE_KEY . '-charts-charts', KING_ADDONS_ASSETS_UNIQUE_KEY . '-charts-script'];
36 - }
37 -
38 - public function get_style_depends()
39 - {
40 - return [
41 - KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-timing',
42 - KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-loading',
43 - KING_ADDONS_ASSETS_UNIQUE_KEY . '-charts-style'
44 - ];
45 - }
46 -
47 - public function get_categories()
48 - {
49 - return ['king-addons'];
50 - }
51 -
52 - public function get_keywords()
53 - {
54 - return ['charts', 'chart', 'polar', 'linear', 'graph', 'pie', 'radar', 'king addons', 'line charts',
55 - 'radar charts', 'doughnut charts', 'pie charts', 'polararea charts', 'vertical', 'bar', 'polararea',
56 - 'polar charts', 'bar charts', 'horizontal charts', 'vertical charts', 'horizontal',
57 - 'king', 'addons', 'kingaddons', 'king-addons'];
58 - }
59 -
60 - public function get_custom_help_url()
61 - {
62 - return 'mailto:[email protected]?subject=Bug Report - King Addons&body=Please describe the issue';
63 - }
64 -
65 - public function add_control_choose_chart_data_source()
66 - {
67 - $this->add_control(
68 - 'data_source',
69 - [
70 - 'label' => esc_html__('Data Source', 'king-addons'),
71 - 'type' => Controls_Manager::SELECT,
72 - 'default' => 'custom',
73 - 'options' => [
74 - 'custom' => esc_html__('Custom', 'king-addons'),
75 - 'pro-csv' => 'CSV' . ' ' . esc_html__('File', 'king-addons') . ' (Pro)',
76 - ],
77 - 'frontend_available' => true,
78 - ]
79 - );
80 - }
81 -
82 - protected function register_controls()
83 - {
84 -
85 - $this->start_controls_section(
86 - 'section_chart_general',
87 - [
88 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('General', 'king-addons'),
89 - 'tab' => Controls_Manager::TAB_CONTENT,
90 - ]
91 - );
92 -
93 - $this->add_control_choose_chart_data_source();
94 -
95 - Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'charts', 'data_source', ['pro-csv']);
96 -
97 - $this->add_control(
98 - 'csv_source',
99 - [
100 - 'label' => esc_html__('CSV Source', 'king-addons'),
101 - 'type' => Controls_Manager::SELECT,
102 - 'default' => 'url',
103 - 'options' => [
104 - 'url' => esc_html__('Remote URL', 'king-addons'),
105 - 'file' => esc_html__('File', 'king-addons'),
106 - ],
107 - 'condition' => [
108 - 'data_source' => 'csv',
109 - ],
110 - 'frontend_available' => true,
111 - ]
112 - );
113 -
114 - $this->add_control(
115 - 'data_csv_separator',
116 - [
117 - 'label' => esc_html__('Separator', 'king-addons'),
118 - 'type' => Controls_Manager::TEXT,
119 - 'default' => ',',
120 - 'label_block' => true,
121 - 'condition' => [
122 - 'data_source' => 'csv',
123 - ],
124 - ]
125 - );
126 -
127 - $this->add_control(
128 - 'data_source_csv_url',
129 - [
130 - 'label' => esc_html__('Remote URL', 'king-addons'),
131 - 'type' => Controls_Manager::TEXT,
132 - 'dynamic' => [
133 - 'active' => true,
134 - ],
135 - 'label_block' => true,
136 - 'condition' => [
137 - 'data_source' => 'csv',
138 - 'csv_source' => 'url',
139 - ],
140 - ]
141 - );
142 -
143 - $this->add_control(
144 - 'data_source_csv_file',
145 - [
146 - 'label' => esc_html__('Upload CSV File', 'king-addons'),
147 - 'type' => Controls_Manager::MEDIA,
148 - 'dynamic' => ['
149 - active' => true,
150 - ],
151 - 'media_type' => [],
152 - 'label_block' => true,
153 - 'condition' => [
154 - 'data_source' => 'csv',
155 - 'csv_source' => 'file',
156 - ],
157 - ]
158 - );
159 -
160 - $this->add_control(
161 - 'chart_type',
162 - [
163 - 'label' => esc_html__('Chart Styles', 'king-addons'),
164 - 'type' => Controls_Manager::SELECT,
165 - 'description' => esc_html__('Doughnut, pie and polar area charts only work with custom data source', 'king-addons'),
166 - 'default' => 'bar',
167 - 'options' => [
168 - 'bar' => esc_html__('Bar Vertical', 'king-addons'),
169 - 'bar_horizontal' => esc_html__('Bar Horizontal', 'king-addons'),
170 - 'line' => esc_html__('Line', 'king-addons'),
171 - 'radar' => esc_html__('Radar', 'king-addons'),
172 - 'doughnut' => esc_html__('Doughnut', 'king-addons'),
173 - 'pie' => esc_html__('Pie', 'king-addons'),
174 - 'polarArea' => esc_html__('Polar Area', 'king-addons'),
175 - ],
176 - 'separator' => 'before'
177 - ]
178 - );
179 -
180 - $this->add_control(
181 - 'data_type',
182 - [
183 - 'label' => esc_html__('Data Grid Type', 'king-addons'),
184 - 'type' => Controls_Manager::SELECT,
185 - 'options' => [
186 - 'linear' => esc_html__('Linear', 'king-addons'),
187 - 'logarithmic' => esc_html__('Logarithmic', 'king-addons'),
188 - ],
189 - 'default' => 'linear',
190 - 'condition' => [
191 - 'chart_type' => ['bar', 'bar_horizontal', 'line']
192 - ],
193 - 'frontend_available' => true,
194 - ]
195 - );
196 -
197 - $this->add_control(
198 - 'column_width_x',
199 - [
200 - 'label' => esc_html__('Column Width', 'king-addons'),
201 - 'type' => Controls_Manager::NUMBER,
202 - 'default' => 0.5,
203 - 'step' => 0.1,
204 - 'min' => 0,
205 - 'max' => 1,
206 - 'frontend_available' => true,
207 - 'separator' => 'before',
208 - 'condition' => [
209 - 'chart_type' => ['bar', 'bar_horizontal'],
210 - ]
211 - ]
212 - );
213 -
214 - $this->add_control(
215 - 'exclude_dataset_on_click',
216 - [
217 - 'label' => esc_html__('Exclude Data on Legend Click', 'king-addons'),
218 - 'type' => Controls_Manager::SWITCHER,
219 - 'default' => 'yes',
220 - 'return_value' => 'yes',
221 - 'separator' => 'before'
222 - ]
223 - );
224 -
225 - $this->add_control(
226 - 'stacked_bar_chart',
227 - [
228 - 'label' => esc_html__('Enable Stacked Chart', 'king-addons'),
229 - 'type' => Controls_Manager::SWITCHER,
230 - 'default' => 'yes',
231 - 'return_value' => 'yes',
232 - 'condition' => [
233 - 'chart_type' => ['bar', 'bar_horizontal', 'radar', 'doughnut', 'pie']
234 - ]
235 - ]
236 - );
237 -
238 - $this->add_control(
239 - 'inner_datalabels',
240 - [
241 - 'label' => esc_html__('Show Data Values', 'king-addons'),
242 - 'type' => Controls_Manager::SWITCHER,
243 - 'default' => 'false',
244 - 'return_value' => 'true',
245 - 'condition' => [
246 - 'chart_type' => ['bar', 'bar_horizontal', 'line', '']
247 - ]
248 - ]
249 - );
250 -
251 - $this->add_control(
252 - 'enable_min_max',
253 - [
254 - 'label' => esc_html__('Min-Max Values', 'king-addons'),
255 - 'type' => Controls_Manager::SWITCHER,
256 - 'default' => 'no',
257 - 'return_value' => 'yes',
258 - 'separator' => 'before',
259 - 'condition' => [
260 - 'chart_type!' => ['doughnut', 'polarArea', 'pie'],
261 - ]
262 - ]
263 - );
264 -
265 - $this->add_control(
266 - 'min_value',
267 - [
268 - 'label' => esc_html__('Min. Value', 'king-addons'),
269 - 'type' => Controls_Manager::NUMBER,
270 - 'default' => -100,
271 - 'condition' => [
272 - 'enable_min_max' => 'yes',
273 - ]
274 - ]
275 - );
276 -
277 - $this->add_control(
278 - 'max_value',
279 - [
280 - 'label' => esc_html__('Max. Value', 'king-addons'),
281 - 'type' => Controls_Manager::NUMBER,
282 - 'default' => 100,
283 - 'condition' => [
284 - 'enable_min_max' => 'yes',
285 - ]
286 - ]
287 - );
288 -
289 - $this->add_control(
290 - 'animations_heading',
291 - [
292 - 'label' => esc_html__('Animation', 'king-addons'),
293 - 'type' => Controls_Manager::HEADING,
294 - 'separator' => 'before',
295 - ]
296 - );
297 -
298 - $this->add_control(
299 - 'chart_animation',
300 - [
301 - 'label' => esc_html__('Animation', 'king-addons'),
302 - 'type' => Controls_Manager::SWITCHER,
303 - 'default' => 'yes',
304 - 'return_value' => 'yes',
305 - 'chart_type' => ['line', 'radar']
306 - ]
307 - );
308 -
309 - $this->add_control(
310 - 'chart_animation_loop',
311 - [
312 - 'label' => esc_html__('Loop', 'king-addons'),
313 - 'type' => Controls_Manager::SWITCHER,
314 - 'default' => 'yes',
315 - 'return_value' => 'yes',
316 - 'condition' => [
317 - 'chart_animation' => 'yes',
318 - 'chart_type' => ['line', 'radar']
319 - ]
320 - ]
321 - );
322 -
323 - $this->add_control(
324 - 'chart_animation_duration',
325 - [
326 - 'label' => esc_html__('Animation Duration (ms)', 'king-addons'),
327 - 'type' => Controls_Manager::NUMBER,
328 - 'default' => 1000,
329 - 'min' => 1,
330 - 'condition' => [
331 - 'chart_animation' => 'yes',
332 - 'chart_type' => ['radar', 'line']
333 - ]
334 - ]
335 - );
336 -
337 - $this->add_control(
338 - 'animation_transition_type',
339 - [
340 - 'label' => esc_html__('Animation Timing', 'king-addons'),
341 - 'type' => Controls_Manager::SELECT,
342 - 'default' => 'linear',
343 - 'options' => [
344 - 'linear' => 'linear',
345 - 'easeInBack' => 'easeInBack',
346 - 'easeInBounce' => 'easeInBounce',
347 - 'easeInCirc' => 'easeInCirc',
348 - 'easeInCubic' => 'easeInCubic',
349 - 'easeInElastic' => 'easeInElastic',
350 - 'easeInExpo' => 'easeInExpo',
351 - 'easeInOutBack' => 'easeInOutBack',
352 - 'easeInOutBounce' => 'easeInOutBounce',
353 - 'easeInOutCirc' => 'easeInOutCirc',
354 - 'easeInOutCubic' => 'easeInOutCubic',
355 - 'easeInOutElastic' => 'easeInOutElastic',
356 - 'easeInOutExpo' => 'easeInOutExpo',
357 - 'easeInOutQuad' => 'easeInOutQuad',
358 - 'easeInOutQuart' => 'easeInOutQuart',
359 - 'easeInOutQuint' => 'easeInOutQuint',
360 - 'easeInOutSine' => 'easeInOutSine',
361 - 'easeInQuad' => 'easeInQuad',
362 - 'easeInQuart' => 'easeInQuart',
363 - 'easeInQuint' => 'easeInQuint',
364 - 'easeInSine' => 'easeInSine',
365 - 'easeOutBack' => 'easeOutBack',
366 - 'easeOutBounce' => 'easeOutBounce',
367 - 'easeOutCirc' => 'easeOutCirc',
368 - 'easeOutCubic' => 'easeOutCubic',
369 - 'easeOutElastic' => 'easeOutElastic',
370 - 'easeOutExpo' => 'easeOutExpo',
371 - 'easeOutQuad' => 'easeOutQuad',
372 - 'easeOutQuart' => 'easeOutQuart',
373 - 'easeOutQuint' => 'easeOutQuint',
374 - 'easeOutSine' => 'easeOutSine',
375 - ],
376 - 'condition' => [
377 - 'chart_animation' => 'yes',
378 - 'chart_type' => ['radar', 'line']
379 - ]
380 - ]
381 - );
382 -
383 - $this->end_controls_section();
384 -
385 - $this->start_controls_section(
386 - 'section_chart_data',
387 - [
388 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Data', 'king-addons'),
389 - 'tab' => Controls_Manager::TAB_CONTENT,
390 - ]
391 - );
392 -
393 - $this->add_control(
394 - 'charts_labels_data', [
395 - 'label' => esc_html__('Data Labels', 'king-addons'),
396 - 'type' => Controls_Manager::TEXTAREA,
397 - 'dynamic' => [
398 - 'active' => true,
399 - ],
400 - 'default' => esc_html__('January, February, March', 'king-addons'),
401 - 'description' => esc_html__('Enter the comma-separated list of values (Used only with custom data source)', 'king-addons'),
402 - 'label_block' => true,
403 - 'condition' => [
404 - 'data_source' => 'custom',
405 -
406 - ],
407 - ]
408 - );
409 -
410 - if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
411 - $this->add_control(
412 - 'charts_repeater_labels_data_pro_notice',
413 - [
414 - 'type' => Controls_Manager::RAW_HTML,
415 - 'raw' => 'More than 3 Data Labels are available<br> in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-charts-settings-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
416 - 'content_classes' => 'king-addons-pro-notice',
417 - ]
418 - );
419 - }
420 -
421 - $chart_repeater_labels = new Repeater();
422 -
423 - $chart_repeater_labels->add_control(
424 - 'chart_data_label', [
425 - 'label' => esc_html__('Label', 'king-addons'),
426 - 'type' => Controls_Manager::TEXT,
427 - 'dynamic' => [
428 - 'active' => true,
429 - ],
430 - 'default' => esc_html__('Label #1', 'king-addons'),
431 - 'label_block' => true,
432 - ]
433 - );
434 -
435 - $chart_repeater_labels->add_control(
436 - 'chart_data_set', [
437 - 'label' => esc_html__('Data', 'king-addons'),
438 - 'type' => Controls_Manager::TEXT,
439 - 'dynamic' => [
440 - 'active' => true,
441 - ],
442 - 'default' => '10,23,15',
443 - 'label_block' => true,
444 - 'description' => esc_html__("Only works with custom charts. Enter comma separated data values (Shouldn't Exceed number of values provided in Data Labels option).", 'king-addons'),
445 - ]
446 - );
447 -
448 -
449 - $chart_repeater_labels->start_controls_tabs(
450 - 'chart_data_bar_background_tab'
451 - );
452 -
453 - $chart_repeater_labels->start_controls_tab(
454 - 'chart_data_bar_background_normal',
455 - [
456 - 'label' => esc_html__('Normal', 'king-addons'),
457 - ]
458 - );
459 -
460 - $chart_repeater_labels->add_control(
461 - 'chart_data_background_color', [
462 - 'label' => esc_html__('Background Color', 'king-addons'),
463 - 'type' => Controls_Manager::COLOR,
464 - 'default' => '#5B03FF',
465 - ]
466 - );
467 -
468 - $chart_repeater_labels->add_control(
469 - 'chart_data_border_color', [
470 - 'label' => esc_html__('Border Color', 'king-addons'),
471 - 'type' => Controls_Manager::COLOR,
472 - 'default' => '#5B03FF',
473 - ]
474 - );
475 -
476 - $chart_repeater_labels->end_controls_tab();
477 -
478 -
479 - $chart_repeater_labels->start_controls_tab(
480 - 'chart_data_bar_background_hover',
481 - [
482 - 'label' => esc_html__('Hover', 'king-addons'),
483 - ]
484 - );
485 - $chart_repeater_labels->add_control(
486 - 'chart_data_background_color_hover', [
487 - 'label' => esc_html__('Background Color', 'king-addons'),
488 - 'type' => Controls_Manager::COLOR,
489 - 'default' => '#7A7A7ACC'
490 - ]
491 - );
492 -
493 - $chart_repeater_labels->add_control(
494 - 'chart_data_border_color_hover', [
495 - 'label' => esc_html__('Border Color', 'king-addons'),
496 - 'type' => Controls_Manager::COLOR,
497 - 'default' => '#7A7A7ACC',
498 - ]
499 - );
500 - $chart_repeater_labels->end_controls_tab();
501 -
502 - $chart_repeater_labels->end_controls_tabs();
503 -
504 -
505 - $chart_repeater_labels->add_control(
506 - 'chart_data_border_width', [
507 - 'label' => esc_html__('Border Width', 'king-addons'),
508 - 'type' => Controls_Manager::NUMBER,
509 - 'default' => '1',
510 - ]
511 - );
512 -
513 - $this->add_control(
514 - 'charts_data_set',
515 - [
516 - 'label' => esc_html__('Set Data', 'king-addons'),
517 - 'type' => Controls_Manager::REPEATER,
518 - 'default' => [
519 - [
520 - 'chart_data_label' => esc_html__('Laptops', 'king-addons'),
521 - 'chart_data_set' => '13,20,15',
522 - 'chart_data_background_color' => '#5B03FFCC',
523 - 'chart_data_border_color' => '#5B03FFCC',
524 - 'chart_data_border_width' => 1,
525 - ],
526 - [
527 - 'chart_data_label' => esc_html__('Phones', 'king-addons'),
528 - 'chart_data_set' => '20,10,33',
529 - 'chart_data_background_color' => '#E5605BCC',
530 - 'chart_data_border_color' => '#E5605BCC',
531 - 'chart_data_border_width' => 1,
532 - ],
533 - [
534 - 'chart_data_label' => esc_html__('Other', 'king-addons'),
535 - 'chart_data_set' => '10,3,23',
536 - 'chart_data_background_color' => '#5BE560CC',
537 - 'chart_data_border_color' => '#5BE560CC',
538 - 'chart_data_border_width' => 1,
539 - ],
540 -
541 - ],
542 -
543 - 'fields' => $chart_repeater_labels->get_controls(),
544 - 'title_field' => '{{{ chart_data_label }}}',
545 -
546 - ]
547 - );
548 -
549 - if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
550 - $this->add_control(
551 - 'charts_repeater_pro_notice',
552 - [
553 - 'type' => Controls_Manager::RAW_HTML,
554 - 'raw' => 'More than 3 Items are available<br> in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-charts-settings-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
555 - 'content_classes' => 'king-addons-pro-notice',
556 - ]
557 - );
558 - }
559 -
560 - $this->end_controls_section();
561 -
562 - $this->start_controls_section(
563 - 'section_chart_axis_r',
564 - [
565 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Axis', 'king-addons'),
566 - 'tab' => Controls_Manager::TAB_CONTENT,
567 - 'condition' => [
568 - 'chart_type' => ['radar', 'polarArea']
569 - ],
570 - ]
571 - );
572 -
573 - $this->add_control(
574 - 'r_axis_conditions',
575 - [
576 - 'label' => esc_html__('Axis', 'king-addons'),
577 - 'type' => Controls_Manager::HEADING,
578 - 'separator' => 'before'
579 - ]
580 - );
581 -
582 - $this->add_control(
583 - 'display_r_axis',
584 - [
585 - 'label' => esc_html__('Grid Lines', 'king-addons'),
586 - 'type' => Controls_Manager::SWITCHER,
587 - 'default' => 'true',
588 - 'return_value' => 'true'
589 - ]
590 - );
591 -
592 - $this->add_control(
593 - 'grid_line_width_r', [
594 - 'label' => esc_html__('Grid Line Width', 'king-addons'),
595 - 'type' => Controls_Manager::NUMBER,
596 - 'default' => '1',
597 - 'step' => 0.1,
598 - 'condition' => [
599 - 'display_r_axis' => 'true'
600 - ]
601 - ]
602 - );
603 -
604 - $this->add_control(
605 - 'display_r_ticks',
606 - [
607 - 'label' => esc_html__('Ticks (Labels)', 'king-addons'),
608 - 'type' => Controls_Manager::SWITCHER,
609 - 'default' => 'true',
610 - 'return_value' => 'true'
611 - ]
612 - );
613 -
614 - $this->add_control(
615 - 'r_step_size',
616 - [
617 - 'label' => esc_html__('Step Size', 'king-addons'),
618 - 'type' => Controls_Manager::NUMBER,
619 - 'min' => 0,
620 - 'max' => 360,
621 - 'default' => 0,
622 - 'frontend_available' => true,
623 - 'condition' => [
624 - 'display_r_ticks' => 'true'
625 - ]
626 - ]
627 - );
628 -
629 - $this->add_control(
630 - 'border_dash_length_r', [
631 - 'label' => esc_html__('Border Dash length', 'king-addons'),
632 - 'type' => Controls_Manager::NUMBER,
633 - 'default' => '1',
634 - 'separator' => 'before',
635 - ]
636 - );
637 -
638 - $this->add_control(
639 - 'border_dash_spacing_r', [
640 - 'label' => esc_html__('Border Dash spacing', 'king-addons'),
641 - 'type' => Controls_Manager::NUMBER,
642 - 'default' => '1'
643 - ]
644 - );
645 -
646 - $this->add_control(
647 - 'border_dash_offset_r', [
648 - 'label' => esc_html__('Border Dash offset', 'king-addons'),
649 - 'type' => Controls_Manager::NUMBER,
650 - 'default' => '1'
651 - ]
652 - );
653 -
654 - $this->end_controls_section();
655 -
656 - $this->start_controls_section(
657 - 'section_chart_axis',
658 - [
659 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Axis', 'king-addons'),
660 - 'tab' => Controls_Manager::TAB_CONTENT,
661 - 'condition' => [
662 - 'chart_type' => ['bar', 'bar_horizontal', 'line']
663 - ],
664 - ]
665 - );
666 -
667 - $this->add_control(
668 - 'x_axis_conditions',
669 - [
670 - 'label' => esc_html__('X-Axis', 'king-addons'),
671 - 'type' => Controls_Manager::HEADING,
672 - ]
673 - );
674 -
675 - $this->add_control(
676 - 'display_x_axis',
677 - [
678 - 'label' => esc_html__('Grid Lines', 'king-addons'),
679 - 'type' => Controls_Manager::SWITCHER,
680 - 'default' => 'true',
681 - 'return_value' => 'true',
682 - ]
683 - );
684 -
685 - $this->add_control(
686 - 'grid_line_width_x', [
687 - 'label' => esc_html__('Grid Line Width', 'king-addons'),
688 - 'type' => Controls_Manager::NUMBER,
689 - 'default' => '1',
690 - 'step' => 0.1,
691 - 'condition' => [
692 - 'display_x_axis' => 'true'
693 - ]
694 - ]
695 - );
696 -
697 - $this->add_control(
698 - 'display_x_ticks',
699 - [
700 - 'label' => esc_html__('Ticks (Labels)', 'king-addons'),
701 - 'type' => Controls_Manager::SWITCHER,
702 - 'default' => 'true',
703 - 'return_value' => 'true'
704 - ]
705 - );
706 -
707 - $this->add_control(
708 - 'x_step_size',
709 - [
710 - 'label' => esc_html__('Step Size', 'king-addons'),
711 - 'type' => Controls_Manager::NUMBER,
712 - 'min' => 0,
713 - 'max' => 360,
714 - 'default' => 0,
715 - 'frontend_available' => true,
716 - 'condition' => [
717 - 'display_x_ticks' => 'true'
718 - ]
719 - ]
720 - );
721 -
722 - $this->add_control(
723 - 'display_x_axis_title',
724 - [
725 - 'label' => esc_html__('Show Title', 'king-addons'),
726 - 'type' => Controls_Manager::SWITCHER,
727 - 'default' => 'true',
728 - 'return_value' => 'true'
729 - ]
730 - );
731 -
732 - $this->add_control(
733 - 'x_axis_title',
734 - [
735 - 'label' => esc_html__('Title', 'king-addons'),
736 - 'type' => Controls_Manager::TEXT,
737 - 'dynamic' => [
738 - 'active' => true,
739 - ],
740 - 'placeholder' => esc_html__('X-Axis', 'king-addons'),
741 - 'default' => esc_html__('X-Axis', 'king-addons'),
742 - 'condition' => [
743 - 'display_x_axis_title' => 'true'
744 - ]
745 - ]
746 - );
747 -
748 - $this->add_control(
749 - 'labels_rotation_x_axis',
750 - [
751 - 'label' => esc_html__('Ticks (Labels) Rotation', 'king-addons'),
752 - 'type' => Controls_Manager::NUMBER,
753 - 'min' => 0,
754 - 'max' => 360,
755 - 'default' => 0,
756 - 'frontend_available' => true
757 - ]
758 - );
759 -
760 - $this->add_control(
761 - 'y_axis_conditions',
762 - [
763 - 'label' => esc_html__('Y-Axis', 'king-addons'),
764 - 'type' => Controls_Manager::HEADING,
765 - 'separator' => 'before'
766 - ]
767 - );
768 -
769 - $this->add_control(
770 - 'display_y_axis',
771 - [
772 - 'label' => esc_html__('Grid Lines', 'king-addons'),
773 - 'type' => Controls_Manager::SWITCHER,
774 - 'default' => 'true',
775 - 'return_value' => 'true'
776 - ]
777 - );
778 -
779 - $this->add_control(
780 - 'grid_line_width_y', [
781 - 'label' => esc_html__('Grid Line Width', 'king-addons'),
782 - 'type' => Controls_Manager::NUMBER,
783 - 'default' => '1',
784 - 'step' => 0.1,
785 - 'condition' => [
786 - 'display_y_axis' => 'true'
787 - ]
788 - ]
789 - );
790 -
791 - $this->add_control(
792 - 'display_y_ticks',
793 - [
794 - 'label' => esc_html__('Ticks (Labels)', 'king-addons'),
795 - 'type' => Controls_Manager::SWITCHER,
796 - 'default' => 'true',
797 - 'return_value' => 'true'
798 - ]
799 - );
800 -
801 - $this->add_control(
802 - 'y_step_size',
803 - [
804 - 'label' => esc_html__('Step Size', 'king-addons'),
805 - 'type' => Controls_Manager::NUMBER,
806 - 'min' => 0,
807 - 'max' => 360,
808 - 'default' => 0,
809 - 'frontend_available' => true,
810 - 'condition' => [
811 - 'display_y_ticks' => 'true'
812 - ]
813 - ]
814 - );
815 -
816 - $this->add_control(
817 - 'display_y_axis_title',
818 - [
819 - 'label' => esc_html__('Show Title', 'king-addons'),
820 - 'type' => Controls_Manager::SWITCHER,
821 - 'default' => 'true',
822 - 'return_value' => 'true'
823 - ]
824 - );
825 -
826 - $this->add_control(
827 - 'y_axis_title',
828 - [
829 - 'label' => esc_html__('Title', 'king-addons'),
830 - 'type' => Controls_Manager::TEXT,
831 - 'dynamic' => [
832 - 'active' => true,
833 - ],
834 - 'placeholder' => esc_html__('Y-Axis', 'king-addons'),
835 - 'default' => esc_html__('Y-Axis', 'king-addons'),
836 - 'condition' => [
837 - 'display_y_axis_title' => 'true'
838 - ]
839 - ]
840 - );
841 -
842 - $this->add_control(
843 - 'labels_rotation_y_axis',
844 - [
845 - 'label' => esc_html__('Ticks (Labels) Rotation', 'king-addons'),
846 - 'type' => Controls_Manager::NUMBER,
847 - 'min' => 0,
848 - 'max' => 360,
849 - 'default' => 0,
850 - 'frontend_available' => true
851 - ]
852 - );
853 -
854 - $this->add_control(
855 - 'reverse_x',
856 - [
857 - 'label' => esc_html__('Reverse Charts', 'king-addons'),
858 - 'type' => Controls_Manager::SWITCHER,
859 - 'default' => 'no',
860 - 'return_value' => 'yes',
861 - 'separator' => 'before',
862 - 'condition' => [
863 - 'show_chart_legend' => 'yes',
864 - 'chart_type' => 'bar_horizontal'
865 - ]
866 - ]
867 - );
868 -
869 - $this->add_control(
870 - 'reverse_y',
871 - [
872 - 'label' => esc_html__('Reverse Charts', 'king-addons'),
873 - 'type' => Controls_Manager::SWITCHER,
874 - 'default' => 'no',
875 - 'return_value' => 'yes',
876 - 'separator' => 'before',
877 - 'condition' => [
878 - 'show_chart_legend' => 'yes',
879 - 'chart_type' => ['bar', 'line']
880 - ]
881 - ]
882 - );
883 -
884 - $this->add_control(
885 - 'border_dash_length', [
886 - 'label' => esc_html__('Border Dash length', 'king-addons'),
887 - 'type' => Controls_Manager::NUMBER,
888 - 'default' => '1',
889 - 'separator' => 'before',
890 -
891 - 'conditions' => [
892 - 'relation' => 'or',
893 - 'terms' => [
894 - [
895 - 'name' => 'display_x_axis',
896 - 'operator' => '==',
897 - 'value' => 'true'
898 - ],
899 - [
900 - 'name' => 'display_y_axis',
901 - 'operator' => '==',
902 - 'value' => 'true'
903 - ]
904 - ]
905 - ]
906 - ]
907 - );
908 -
909 - $this->add_control(
910 - 'border_dash_spacing', [
911 - 'label' => esc_html__('Border Dash spacing', 'king-addons'),
912 - 'type' => Controls_Manager::NUMBER,
913 - 'default' => '1',
914 -
915 - 'conditions' => [
916 - 'relation' => 'or',
917 - 'terms' => [
918 - [
919 - 'name' => 'display_x_axis',
920 - 'operator' => '==',
921 - 'value' => 'true'
922 - ],
923 - [
924 - 'name' => 'display_y_axis',
925 - 'operator' => '==',
926 - 'value' => 'true'
927 - ]
928 - ]
929 - ]
930 - ]
931 - );
932 -
933 - $this->add_control(
934 - 'border_dash_offset', [
935 - 'label' => esc_html__('Border Dash offset', 'king-addons'),
936 - 'type' => Controls_Manager::NUMBER,
937 - 'default' => '1',
938 -
939 - 'conditions' => [
940 - 'relation' => 'or',
941 - 'terms' => [
942 - [
943 - 'name' => 'display_x_axis',
944 - 'operator' => '==',
945 - 'value' => 'true'
946 - ],
947 - [
948 - 'name' => 'display_y_axis',
949 - 'operator' => '==',
950 - 'value' => 'true'
951 - ]
952 - ]
953 - ]
954 - ]
955 - );
956 -
957 - $this->end_controls_section();
958 -
959 - $this->start_controls_section(
960 - 'section_chart_title',
961 - [
962 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Title', 'king-addons'),
963 - 'tab' => Controls_Manager::TAB_CONTENT,
964 - ]
965 - );
966 -
967 - $this->add_control(
968 - 'show_chart_title',
969 - [
970 - 'label' => esc_html__('Show Title', 'king-addons'),
971 - 'type' => Controls_Manager::SWITCHER,
972 - 'return_value' => 'yes'
973 - ]
974 - );
975 -
976 - $this->add_control(
977 - 'chart_title',
978 - [
979 - 'label' => esc_html__('Title', 'king-addons'),
980 - 'type' => Controls_Manager::TEXT,
981 - 'dynamic' => [
982 - 'active' => true,
983 - ],
984 - 'placeholder' => esc_html__('To Be Applied', 'king-addons'),
985 - 'default' => esc_html__('To Be Applied', 'king-addons'),
986 - 'condition' => [
987 - 'show_chart_title' => 'yes',
988 - ],
989 - ]
990 - );
991 -
992 - $this->add_control(
993 - 'chart_title_position',
994 - [
995 - 'label' => esc_html__('Position', 'king-addons'),
996 - 'type' => Controls_Manager::SELECT,
997 - 'default' => 'top',
998 - 'label_block' => false,
999 - 'options' => [
1000 - 'top' => esc_html__('Top', 'king-addons'),
1001 - 'right' => esc_html__('Right', 'king-addons'),
1002 - 'bottom' => esc_html__('Bottom', 'king-addons'),
1003 - 'left' => esc_html__('Left', 'king-addons'),
1004 -
1005 - ],
1006 - 'condition' => [
1007 - 'show_chart_title' => 'yes',
1008 - ]
1009 - ]
1010 - );
1011 -
1012 - $this->add_control(
1013 - 'chart_title_align',
1014 - [
1015 - 'label' => esc_html__('Align', 'king-addons'),
1016 - 'type' => Controls_Manager::SELECT,
1017 - 'default' => 'center',
1018 - 'label_block' => false,
1019 - 'options' => [
1020 - 'start' => esc_html__('Start', 'king-addons'),
1021 - 'center' => esc_html__('Center', 'king-addons'),
1022 - 'end' => esc_html__('End', 'king-addons'),
1023 - ],
1024 - 'condition' => [
1025 - 'show_chart_title' => 'yes',
1026 - ]
1027 - ]
1028 - );
1029 -
1030 - $this->end_controls_section();
1031 -
1032 - $this->start_controls_section(
1033 - 'section_chart_legend',
1034 - [
1035 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Legends', 'king-addons'),
1036 - 'tab' => Controls_Manager::TAB_CONTENT,
1037 - ]
1038 - );
1039 -
1040 - $this->add_control(
1041 - 'show_chart_legend',
1042 - [
1043 - 'label' => esc_html__('Show Legends', 'king-addons'),
1044 - 'type' => Controls_Manager::SWITCHER,
1045 - 'default' => 'yes',
1046 - 'return_value' => 'yes',
1047 - ]
1048 - );
1049 -
1050 - $this->add_control(
1051 - 'reverse_legend',
1052 - [
1053 - 'label' => esc_html__('Reverse', 'king-addons'),
1054 - 'type' => Controls_Manager::SWITCHER,
1055 - 'default' => 'no',
1056 - 'return_value' => 'yes',
1057 - 'condition' => [
1058 - 'show_chart_legend' => 'yes',
1059 - ]
1060 - ]
1061 - );
1062 -
1063 - $this->add_control(
1064 - 'charts_legend_shape',
1065 - [
1066 - 'label' => esc_html__('Shape', 'king-addons'),
1067 - 'type' => Controls_Manager::SELECT,
1068 - 'default' => 'rectangle',
1069 - 'label_block' => false,
1070 - 'render_type' => 'template',
1071 - 'options' => [
1072 - 'rectangle' => esc_html__('Rectangle', 'king-addons'),
1073 - 'point' => esc_html__('Point', 'king-addons'),
1074 - ],
1075 - 'condition' => [
1076 - 'show_chart_legend' => 'yes',
1077 - ]
1078 - ]
1079 - );
1080 -
1081 - $this->add_control(
1082 - 'charts_legend_position',
1083 - [
1084 - 'label' => esc_html__('Position', 'king-addons'),
1085 - 'type' => Controls_Manager::SELECT,
1086 - 'default' => 'top',
1087 - 'label_block' => false,
1088 - 'options' => [
1089 - 'top' => esc_html__('Top', 'king-addons'),
1090 - 'right' => esc_html__('Right', 'king-addons'),
1091 - 'bottom' => esc_html__('Bottom', 'king-addons'),
1092 - 'left' => esc_html__('Left', 'king-addons'),
1093 - 'chartArea' => esc_html__('chartArea', 'king-addons'),
1094 - ],
1095 - 'condition' => [
1096 - 'show_chart_legend' => 'yes',
1097 - ]
1098 - ]
1099 - );
1100 -
1101 - $this->add_control(
1102 - 'charts_legend_align',
1103 - [
1104 - 'label' => esc_html__('Align', 'king-addons'),
1105 - 'type' => Controls_Manager::SELECT,
1106 - 'default' => 'center',
1107 - 'label_block' => false,
1108 - 'options' => [
1109 - 'start' => esc_html__('Start', 'king-addons'),
1110 - 'center' => esc_html__('Center', 'king-addons'),
1111 - 'end' => esc_html__('End', 'king-addons'),
1112 - ],
1113 - 'condition' => [
1114 - 'show_chart_legend' => 'yes',
1115 - ]
1116 - ]
1117 - );
1118 -
1119 - $this->end_controls_section();
1120 -
1121 - $this->start_controls_section(
1122 - 'section_chart_tooltip',
1123 - [
1124 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Tooltip', 'king-addons'),
1125 - 'tab' => Controls_Manager::TAB_CONTENT,
1126 - ]
1127 - );
1128 -
1129 - $this->add_control(
1130 - 'show_chart_tooltip',
1131 - [
1132 - 'label' => esc_html__('Show Tooltip', 'king-addons'),
1133 - 'type' => Controls_Manager::SWITCHER,
1134 - 'default' => 'yes',
1135 - 'return_value' => 'yes'
1136 - ]
1137 - );
1138 -
1139 - $this->add_control(
1140 - 'tooltips_percent',
1141 - [
1142 - 'label' => esc_html__('Convert Values to Percents', 'king-addons'),
1143 - 'type' => Controls_Manager::SWITCHER,
1144 - 'return_value' => 'true',
1145 - 'default' => 'true',
1146 - 'frontend_available' => true,
1147 - 'condition' => [
1148 - 'show_chart_tooltip' => 'yes'
1149 - ]
1150 - ]
1151 - );
1152 -
1153 - $this->add_control(
1154 - 'trigger_tooltip_on',
1155 - [
1156 - 'label' => esc_html__('Show Tooltip On', 'king-addons'),
1157 - 'type' => Controls_Manager::SELECT,
1158 - 'default' => 'mousemove',
1159 - 'options' => [
1160 - 'mousemove' => esc_html__('Hover', 'king-addons'),
1161 - 'click' => esc_html__('Click', 'king-addons'),
1162 - ],
1163 - 'condition' => [
1164 - 'show_chart_tooltip' => 'yes'
1165 - ]
1166 - ]
1167 - );
1168 -
1169 - $this->add_control(
1170 - 'chart_interaction_mode',
1171 - [
1172 - 'label' => esc_html__('Interaction Mode', 'king-addons'),
1173 - 'type' => Controls_Manager::SELECT,
1174 - 'default' => 'point',
1175 - 'options' => [
1176 -
1177 - 'point' => esc_html__('Point', 'king-addons'),
1178 - 'index' => esc_html__('Index', 'king-addons'),
1179 - 'dataset' => esc_html__('Dataset', 'king-addons'),
1180 - ],
1181 - 'condition' => [
1182 - 'show_chart_tooltip' => 'yes'
1183 - ]
1184 - ]
1185 - );
1186 -
1187 - $this->add_control(
1188 - 'chart_tooltip_position',
1189 - [
1190 - 'label' => esc_html__('Position', 'king-addons'),
1191 - 'type' => Controls_Manager::SELECT,
1192 - 'default' => 'nearest',
1193 - 'options' => [
1194 - 'nearest' => esc_html__('Nearest', 'king-addons'),
1195 - 'average' => esc_html__('Average', 'king-addons'),
1196 - ],
1197 - 'condition' => [
1198 - 'show_chart_tooltip' => 'yes'
1199 - ]
1200 - ]
1201 - );
1202 -
1203 - $this->end_controls_section();
1204 -
1205 - $this->start_controls_section(
1206 - 'section_chart_lines',
1207 - [
1208 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Lines', 'king-addons'),
1209 - 'tab' => Controls_Manager::TAB_CONTENT,
1210 - 'condition' => [
1211 - 'chart_type' => ['line', 'radar'],
1212 - ]
1213 - ]
1214 - );
1215 -
1216 - $this->add_control(
1217 - 'show_lines',
1218 - [
1219 - 'label' => esc_html__('Show Lines', 'king-addons'),
1220 - 'type' => Controls_Manager::SWITCHER,
1221 - 'default' => 'yes',
1222 - 'return_value' => 'yes',
1223 - 'separator' => 'before',
1224 - ]
1225 - );
1226 -
1227 - $this->add_control(
1228 - 'chart_type_line_fill',
1229 - [
1230 - 'label' => esc_html__('Show Background Fill', 'king-addons'),
1231 - 'type' => Controls_Manager::SWITCHER,
1232 - 'default' => 'yes',
1233 - 'return_value' => 'yes',
1234 - 'condition' => [
1235 - 'chart_type!' => ['bar', 'bar_horizontal'],
1236 - ]
1237 - ]
1238 - );
1239 -
1240 - $this->add_control(
1241 - 'line_dots',
1242 - [
1243 - 'label' => esc_html__('Show Dots', 'king-addons'),
1244 - 'type' => Controls_Manager::SWITCHER,
1245 - 'default' => 'yes',
1246 - 'return_value' => 'yes',
1247 - 'condition' => [
1248 - 'chart_type!' => ['bar', 'bar_horizontal'],
1249 - ]
1250 - ]
1251 - );
1252 -
1253 - $this->add_responsive_control(
1254 - 'line_dots_radius',
1255 - [
1256 - 'label' => esc_html__('Dots Size', 'king-addons'),
1257 - 'type' => Controls_Manager::SLIDER,
1258 - 'devices' => ['desktop', 'mobile'],
1259 - 'exclude' => ['tablet'],
1260 - 'range' => [
1261 - 'px' => [
1262 - 'min' => 0,
1263 - 'max' => 50,
1264 - ],
1265 - ],
1266 - 'size_units' => ['px'],
1267 - 'default' => [
1268 - 'unit' => 'px',
1269 - 'size' => 10,
1270 - ],
1271 - 'mobile_default' => [
1272 - 'unit' => 'px',
1273 - 'size' => 5
1274 - ],
1275 - 'condition' => [
1276 - 'chart_type!' => ['bar', 'bar_horizontal'],
1277 - 'line_dots' => 'yes',
1278 - ]
1279 - ]
1280 - );
1281 -
1282 - $this->end_controls_section();
1283 -
1284 - $this->start_controls_section(
1285 - 'chart_section_style_res',
1286 - [
1287 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Responsive', 'king-addons'),
1288 - 'tab' => Controls_Manager::TAB_CONTENT,
1289 - ]
1290 - );
1291 -
1292 - $this->add_control(
1293 - 'responsive_chart',
1294 - [
1295 - 'label' => esc_html__('Responsive Layout', 'king-addons'),
1296 - 'description' => esc_html__('Enables scrollbar on tablet and mobile screens', 'king-addons'),
1297 - 'default' => 'yes',
1298 - 'type' => Controls_Manager::SWITCHER,
1299 - 'selectors' => [
1300 - '{{WRAPPER}} .king-addons-charts-container' => 'overflow: auto;',
1301 - '{{WRAPPER}} .king-addons-charts-wrapper' => 'position: relative; margin: 0 auto;',
1302 - ],
1303 - ]
1304 - );
1305 -
1306 -
1307 - $this->add_responsive_control(
1308 - 'chart_res_width',
1309 - [
1310 - 'label' => esc_html__('Min Width (px)', 'king-addons'),
1311 - 'type' => Controls_Manager::SLIDER,
1312 - 'range' => [
1313 - 'px' => [
1314 - 'min' => 0,
1315 - 'max' => 1600
1316 - ]
1317 - ],
1318 - 'default' => [
1319 - 'size' => 800,
1320 - ],
1321 - 'selectors' => [
1322 - '{{WRAPPER}} .king-addons-charts-wrapper' => 'min-width: {{SIZE}}px;',
1323 - ],
1324 - 'separator' => 'before',
1325 - 'condition' => [
1326 - 'responsive_chart' => 'yes',
1327 - ],
1328 - ]
1329 - );
1330 -
1331 -
1332 - $this->add_responsive_control(
1333 - 'chart_res_height',
1334 - [
1335 - 'label' => esc_html__('Min Height (px)', 'king-addons'),
1336 - 'type' => Controls_Manager::SLIDER,
1337 - 'range' => [
1338 - 'px' => [
1339 - 'min' => 0,
1340 - 'max' => 1600
1341 - ]
1342 - ],
1343 - 'default' => [
1344 - 'size' => 400,
1345 - ],
1346 - 'selectors' => [
1347 - '{{WRAPPER}} .king-addons-charts-wrapper' => 'min-height: {{SIZE}}px;',
1348 - ],
1349 - 'condition' => [
1350 - 'responsive_chart' => 'yes',
1351 - ],
1352 - ]
1353 - );
1354 -
1355 - $this->end_controls_section();
1356 -
1357 - Core::renderProFeaturesSection($this, '', Controls_Manager::RAW_HTML, 'charts', [
1358 - 'Upload CSV File',
1359 - 'Import CSV File from URL',
1360 - 'Import Published Google Sheets',
1361 - 'Add Unlimited Chart Items',
1362 - 'Add Unlimited Data Labels'
1363 - ]);
1364 -
1365 - $this->start_controls_section(
1366 - 'section_datalabels_styles',
1367 - [
1368 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Data Values', 'king-addons'),
1369 - 'tab' => Controls_Manager::TAB_STYLE,
1370 - 'condition' => [
1371 - 'inner_datalabels' => 'true'
1372 - ]
1373 - ]
1374 - );
1375 -
1376 - $this->add_control(
1377 - 'inner_datalabels_color', [
1378 - 'label' => esc_html__('Color', 'king-addons'),
1379 - 'type' => Controls_Manager::COLOR,
1380 - 'default' => '#FFF',
1381 - ]
1382 - );
1383 -
1384 - $this->add_control(
1385 - 'inner_datalabels_font_family',
1386 - [
1387 - 'label' => esc_html__('Font Family', 'king-addons'),
1388 - 'type' => Controls_Manager::FONT,
1389 - 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1390 - 'default' => 'Arial',
1391 - ]
1392 - );
1393 -
1394 - $this->add_control(
1395 - 'inner_datalabels_font_style',
1396 - [
1397 - 'label' => esc_html__('Font Style', 'king-addons'),
1398 - 'type' => Controls_Manager::SELECT,
1399 - 'default' => 'normal',
1400 - 'options' => [
1401 - 'normal' => 'Normal',
1402 - 'italic' => 'Italic',
1403 - 'oblique' => 'Oblique',
1404 - ],
1405 -
1406 - ]
1407 - );
1408 -
1409 - $this->add_control(
1410 - 'inner_datalabels_font_weight',
1411 - [
1412 - 'label' => esc_html__('Font Weight ', 'king-addons'),
1413 - 'type' => Controls_Manager::NUMBER,
1414 - 'min' => 0,
1415 - 'default' => 600,
1416 - 'frontend_available' => true
1417 - ]
1418 - );
1419 -
1420 - $this->add_control(
1421 - 'inner_datalabels_font_size',
1422 - [
1423 - 'label' => esc_html__('Font Size', 'king-addons'),
1424 - 'type' => Controls_Manager::SLIDER,
1425 - 'size_units' => ['px'],
1426 - 'range' => [
1427 - 'px' => [
1428 - 'min' => 10,
1429 - 'max' => 100,
1430 - ],
1431 - ],
1432 - 'default' => [
1433 - 'unit' => 'px',
1434 - 'size' => 14,
1435 - ]
1436 - ]
1437 - );
1438 -
1439 - $this->end_controls_section();
1440 -
1441 - $this->start_controls_section(
1442 - 'section_styles_chart_axis_r',
1443 - [
1444 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Axis', 'king-addons'),
1445 - 'tab' => Controls_Manager::TAB_STYLE,
1446 - 'condition' => [
1447 - 'chart_type' => ['radar', 'polarArea']
1448 - ],
1449 - ]
1450 - );
1451 -
1452 - $this->add_control(
1453 - 'r_axis_angle_lines_heading',
1454 - [
1455 - 'label' => esc_html__('Angle Lines', 'king-addons'),
1456 - 'type' => Controls_Manager::HEADING,
1457 - ]
1458 - );
1459 -
1460 - $this->add_control(
1461 - 'angle_lines_color', [
1462 - 'label' => esc_html__('Color', 'king-addons'),
1463 - 'type' => Controls_Manager::COLOR,
1464 - 'default' => '#E7E7E7'
1465 - ]
1466 - );
1467 -
1468 - $this->add_control(
1469 - 'r_axis_grid_lines_heading',
1470 - [
1471 - 'label' => esc_html__('Grid Lines', 'king-addons'),
1472 - 'type' => Controls_Manager::HEADING,
1473 - 'separator' => 'before',
1474 - ]
1475 - );
1476 -
1477 - $this->add_control(
1478 - 'axis_grid_line_color_r', [
1479 - 'label' => esc_html__('Color', 'king-addons'),
1480 - 'type' => Controls_Manager::COLOR,
1481 - 'default' => '#E7E7E7'
1482 - ]
1483 - );
1484 -
1485 - $this->add_control(
1486 - 'axis_labels_heading',
1487 - [
1488 - 'label' => esc_html__('Axis Labels', 'king-addons'),
1489 - 'type' => Controls_Manager::HEADING,
1490 - 'separator' => 'before',
1491 - ]
1492 - );
1493 -
1494 - $this->add_control(
1495 - 'axis_labels_color', [
1496 - 'label' => esc_html__('Color', 'king-addons'),
1497 - 'type' => Controls_Manager::COLOR,
1498 - 'default' => '#222222'
1499 - ]
1500 - );
1501 -
1502 - $this->add_control(
1503 - 'axis_labels_bg_color', [
1504 - 'label' => esc_html__('Background Color', 'king-addons'),
1505 - 'type' => Controls_Manager::COLOR,
1506 - 'default' => '#B2B2B200'
1507 - ]
1508 - );
1509 -
1510 - $this->add_control(
1511 - 'axis_labels_padding',
1512 - [
1513 - 'label' => esc_html__('Padding', 'king-addons'),
1514 - 'type' => Controls_Manager::SLIDER,
1515 - 'size_units' => ['px'],
1516 - 'range' => [
1517 - 'px' => [
1518 - 'min' => 0,
1519 - 'max' => 100,
1520 - ],
1521 - ],
1522 - 'default' => [
1523 - 'unit' => 'px',
1524 - 'size' => 5,
1525 - ],
1526 - ]
1527 - );
1528 -
1529 - $this->add_control(
1530 - 'chart_point_labels_heading',
1531 - [
1532 - 'label' => esc_html__('Ticks', 'king-addons'),
1533 - 'type' => Controls_Manager::HEADING,
1534 - 'separator' => 'before'
1535 - ]
1536 - );
1537 -
1538 - $this->add_control(
1539 - 'chart_point_labels_color_r', [
1540 - 'label' => esc_html__('Color', 'king-addons'),
1541 - 'type' => Controls_Manager::COLOR,
1542 - 'default' => '#B2B2B2'
1543 - ]
1544 - );
1545 -
1546 - $this->add_control(
1547 - 'point_labels_font_family_r',
1548 - [
1549 - 'label' => esc_html__('Font Family', 'king-addons'),
1550 - 'type' => Controls_Manager::FONT,
1551 - 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1552 - 'default' => 'Arial',
1553 - ]
1554 - );
1555 -
1556 - $this->add_control(
1557 - 'point_labels_font_style_r',
1558 - [
1559 - 'label' => esc_html__('Font Style', 'king-addons'),
1560 - 'type' => Controls_Manager::SELECT,
1561 - 'default' => 'normal',
1562 - 'options' => [
1563 - 'normal' => 'Normal',
1564 - 'italic' => 'Italic',
1565 - 'oblique' => 'Oblique',
1566 - ],
1567 -
1568 - ]
1569 - );
1570 -
1571 - $this->add_control(
1572 - 'point_labels_font_weight_r',
1573 - [
1574 - 'label' => esc_html__('Font Weight ', 'king-addons'),
1575 - 'type' => Controls_Manager::NUMBER,
1576 - 'min' => 0,
1577 - 'default' => 600,
1578 - 'frontend_available' => true,
1579 - ]
1580 - );
1581 -
1582 - $this->add_control(
1583 - 'point_labels_font_size_r',
1584 - [
1585 - 'label' => esc_html__('Font Size', 'king-addons'),
1586 - 'type' => Controls_Manager::SLIDER,
1587 - 'size_units' => ['px'],
1588 - 'range' => [
1589 - 'px' => [
1590 - 'min' => 10,
1591 - 'max' => 100,
1592 - ],
1593 - ],
1594 - 'default' => [
1595 - 'unit' => 'px',
1596 - 'size' => 14,
1597 - ],
1598 - ]
1599 - );
1600 -
1601 - $this->end_controls_section();
1602 -
1603 - $this->start_controls_section(
1604 - 'section_chart_axis_styles',
1605 - [
1606 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Axis', 'king-addons'),
1607 - 'tab' => Controls_Manager::TAB_STYLE,
1608 - 'condition' => [
1609 - 'chart_type' => ['bar', 'bar_horizontal', 'line']
1610 - ],
1611 - ]
1612 - );
1613 -
1614 - $this->add_control(
1615 - 'x_axis_grid_lines_heading',
1616 - [
1617 - 'label' => esc_html__('Grid Lines (X)', 'king-addons'),
1618 - 'type' => Controls_Manager::HEADING,
1619 - 'separator' => 'before',
1620 - ]
1621 - );
1622 -
1623 - $this->add_control(
1624 - 'axis_grid_line_color_x', [
1625 - 'label' => esc_html__('Color (X)', 'king-addons'),
1626 - 'type' => Controls_Manager::COLOR,
1627 - 'default' => '#999999'
1628 - ]
1629 - );
1630 -
1631 - $this->add_control(
1632 - 'y_axis_grid_lines_heading',
1633 - [
1634 - 'label' => esc_html__('Grid Lines (Y)', 'king-addons'),
1635 - 'type' => Controls_Manager::HEADING,
1636 - 'separator' => 'before',
1637 - ]
1638 - );
1639 -
1640 - $this->add_control(
1641 - 'axis_grid_line_color_y', [
1642 - 'label' => esc_html__('Color (Y)', 'king-addons'),
1643 - 'type' => Controls_Manager::COLOR,
1644 - 'default' => '#999999'
1645 - ]
1646 - );
1647 -
1648 - $this->add_control(
1649 - 'x_axis_title_styles_heading',
1650 - [
1651 - 'label' => esc_html__('X-Title', 'king-addons'),
1652 - 'type' => Controls_Manager::HEADING,
1653 - 'separator' => 'before',
1654 - ]
1655 - );
1656 -
1657 - $this->add_control(
1658 - 'axis_title_color_x', [
1659 - 'label' => esc_html__('Color (X)', 'king-addons'),
1660 - 'type' => Controls_Manager::COLOR,
1661 - 'default' => '#C0C0C0'
1662 - ]
1663 - );
1664 -
1665 - $this->add_control(
1666 - 'axis_title_font_family_x',
1667 - [
1668 - 'label' => esc_html__('Font Family', 'king-addons'),
1669 - 'type' => Controls_Manager::FONT,
1670 - 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1671 - 'default' => 'Arial',
1672 - ]
1673 - );
1674 -
1675 - $this->add_control(
1676 - 'axis_title_font_style_x',
1677 - [
1678 - 'label' => esc_html__('Font Style', 'king-addons'),
1679 - 'type' => Controls_Manager::SELECT,
1680 - 'default' => 'normal',
1681 - 'options' => [
1682 - 'normal' => 'Normal',
1683 - 'italic' => 'Italic',
1684 - 'oblique' => 'Oblique',
1685 - ],
1686 -
1687 - ]
1688 - );
1689 -
1690 - $this->add_control(
1691 - 'axis_title_font_weight_x',
1692 - [
1693 - 'label' => esc_html__('Font Weight ', 'king-addons'),
1694 - 'type' => Controls_Manager::NUMBER,
1695 - 'min' => 0,
1696 - 'default' => 600,
1697 - 'frontend_available' => true,
1698 - ]
1699 - );
1700 -
1701 - $this->add_control(
1702 - 'axis_title_font_size_x',
1703 - [
1704 - 'label' => esc_html__('Font Size', 'king-addons'),
1705 - 'type' => Controls_Manager::SLIDER,
1706 - 'size_units' => ['px'],
1707 - 'range' => [
1708 - 'px' => [
1709 - 'min' => 10,
1710 - 'max' => 100,
1711 - ],
1712 - ],
1713 - 'default' => [
1714 - 'unit' => 'px',
1715 - 'size' => 14,
1716 - ],
1717 - ]
1718 - );
1719 -
1720 - $this->add_control(
1721 - 'y_axis_title_styles_heading',
1722 - [
1723 - 'label' => esc_html__('Y-Title', 'king-addons'),
1724 - 'type' => Controls_Manager::HEADING,
1725 - 'separator' => 'before',
1726 - ]
1727 - );
1728 -
1729 - $this->add_control(
1730 - 'axis_title_color_y', [
1731 - 'label' => esc_html__('Color (Y)', 'king-addons'),
1732 - 'type' => Controls_Manager::COLOR,
1733 - 'default' => '#C0C0C0'
1734 - ]
1735 - );
1736 -
1737 - $this->add_control(
1738 - 'axis_title_font_family_y',
1739 - [
1740 - 'label' => esc_html__('Font Family', 'king-addons'),
1741 - 'type' => Controls_Manager::FONT,
1742 - 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1743 - 'default' => 'Arial',
1744 - ]
1745 - );
1746 -
1747 - $this->add_control(
1748 - 'axis_title_font_style_y',
1749 - [
1750 - 'label' => esc_html__('Font Style', 'king-addons'),
1751 - 'type' => Controls_Manager::SELECT,
1752 - 'default' => 'normal',
1753 - 'options' => [
1754 - 'normal' => 'Normal',
1755 - 'italic' => 'Italic',
1756 - 'oblique' => 'Oblique',
1757 - ],
1758 -
1759 - ]
1760 - );
1761 -
1762 - $this->add_control(
1763 - 'axis_title_font_weight_y',
1764 - [
1765 - 'label' => esc_html__('Font Weight ', 'king-addons'),
1766 - 'type' => Controls_Manager::NUMBER,
1767 - 'min' => 0,
1768 - 'default' => 600,
1769 - 'frontend_available' => true,
1770 - ]
1771 - );
1772 -
1773 - $this->add_control(
1774 - 'axis_title_font_size_y',
1775 - [
1776 - 'label' => esc_html__('Font Size', 'king-addons'),
1777 - 'type' => Controls_Manager::SLIDER,
1778 - 'size_units' => ['px'],
1779 - 'range' => [
1780 - 'px' => [
1781 - 'min' => 10,
1782 - 'max' => 100,
1783 - ],
1784 - ],
1785 - 'default' => [
1786 - 'unit' => 'px',
1787 - 'size' => 14,
1788 - ],
1789 - ]
1790 - );
1791 -
1792 - $this->add_control(
1793 - 'x_ticks_styles_heading',
1794 - [
1795 - 'label' => esc_html__('X-Ticks', 'king-addons'),
1796 - 'type' => Controls_Manager::HEADING,
1797 - 'separator' => 'before',
1798 - ]
1799 - );
1800 -
1801 - $this->add_control(
1802 - 'chart_ticks_color_x', [
1803 - 'label' => esc_html__('Ticks Color (X)', 'king-addons'),
1804 - 'type' => Controls_Manager::COLOR,
1805 - ]
1806 - );
1807 -
1808 - $this->add_control(
1809 - 'ticks_font_family_x',
1810 - [
1811 - 'label' => esc_html__('Font Family', 'king-addons'),
1812 - 'type' => Controls_Manager::FONT,
1813 - 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1814 - 'default' => 'Arial',
1815 - ]
1816 - );
1817 -
1818 - $this->add_control(
1819 - 'ticks_font_style_x',
1820 - [
1821 - 'label' => esc_html__('Font Style', 'king-addons'),
1822 - 'type' => Controls_Manager::SELECT,
1823 - 'default' => 'normal',
1824 - 'options' => [
1825 - 'normal' => 'Normal',
1826 - 'italic' => 'Italic',
1827 - 'oblique' => 'Oblique',
1828 - ],
1829 -
1830 - ]
1831 - );
1832 -
1833 - $this->add_control(
1834 - 'ticks_font_weight_x',
1835 - [
1836 - 'label' => esc_html__('Font Weight ', 'king-addons'),
1837 - 'type' => Controls_Manager::NUMBER,
1838 - 'min' => 0,
1839 - 'default' => 600,
1840 - 'frontend_available' => true,
1841 - ]
1842 - );
1843 -
1844 - $this->add_control(
1845 - 'ticks_font_size_x',
1846 - [
1847 - 'label' => esc_html__('Font Size', 'king-addons'),
1848 - 'type' => Controls_Manager::SLIDER,
1849 - 'size_units' => ['px'],
1850 - 'range' => [
1851 - 'px' => [
1852 - 'min' => 10,
1853 - 'max' => 100,
1854 - ],
1855 - ],
1856 - 'default' => [
1857 - 'unit' => 'px',
1858 - 'size' => 17,
1859 - ],
1860 - ]
1861 - );
1862 -
1863 - $this->add_control(
1864 - 'ticks_padding_x',
1865 - [
1866 - 'label' => esc_html__('Distance', 'king-addons'),
1867 - 'type' => Controls_Manager::SLIDER,
1868 - 'range' => [
1869 - 'px' => [
1870 - 'min' => 0,
1871 - 'max' => 50,
1872 - ],
1873 - ],
1874 - 'size_units' => ['px'],
1875 - 'default' => [
1876 - 'unit' => 'px',
1877 - 'size' => 10,
1878 - ]
1879 - ]
1880 - );
1881 -
1882 - $this->add_control(
1883 - 'y_ticks_styles_heading',
1884 - [
1885 - 'label' => esc_html__('Y-Ticks', 'king-addons'),
1886 - 'type' => Controls_Manager::HEADING,
1887 - 'separator' => 'before',
1888 - ]
1889 - );
1890 -
1891 - $this->add_control(
1892 - 'chart_ticks_color_y', [
1893 - 'label' => esc_html__('Ticks Color (Y)', 'king-addons'),
1894 - 'type' => Controls_Manager::COLOR,
1895 - ]
1896 - );
1897 -
1898 - $this->add_control(
1899 - 'ticks_font_family_y',
1900 - [
1901 - 'label' => esc_html__('Font Family', 'king-addons'),
1902 - 'type' => Controls_Manager::FONT,
1903 - 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1904 - 'default' => 'Arial',
1905 - ]
1906 - );
1907 -
1908 - $this->add_control(
1909 - 'ticks_font_style_y',
1910 - [
1911 - 'label' => esc_html__('Font Style', 'king-addons'),
1912 - 'type' => Controls_Manager::SELECT,
1913 - 'default' => 'normal',
1914 - 'options' => [
1915 - 'normal' => 'Normal',
1916 - 'italic' => 'Italic',
1917 - 'oblique' => 'Oblique',
1918 - ],
1919 -
1920 - ]
1921 - );
1922 -
1923 - $this->add_control(
1924 - 'ticks_font_weight_y',
1925 - [
1926 - 'label' => esc_html__('Font Weight ', 'king-addons'),
1927 - 'type' => Controls_Manager::NUMBER,
1928 - 'min' => 0,
1929 - 'default' => 600,
1930 - 'frontend_available' => true,
1931 - ]
1932 - );
1933 -
1934 - $this->add_control(
1935 - 'ticks_font_size_y',
1936 - [
1937 - 'label' => esc_html__('Font Size', 'king-addons'),
1938 - 'type' => Controls_Manager::SLIDER,
1939 - 'size_units' => ['px'],
1940 - 'range' => [
1941 - 'px' => [
1942 - 'min' => 10,
1943 - 'max' => 100,
1944 - ],
1945 - ],
1946 - 'default' => [
1947 - 'unit' => 'px',
1948 - 'size' => 14,
1949 - ],
1950 - ]
1951 - );
1952 -
1953 - $this->add_control(
1954 - 'ticks_padding_y',
1955 - [
1956 - 'label' => esc_html__('Distance', 'king-addons'),
1957 - 'type' => Controls_Manager::SLIDER,
1958 - 'range' => [
1959 - 'px' => [
1960 - 'min' => 0,
1961 - 'max' => 50,
1962 - ],
1963 - ],
1964 - 'size_units' => ['px'],
1965 - 'default' => [
1966 - 'unit' => 'px',
1967 - 'size' => 10,
1968 - ]
1969 - ]
1970 - );
1971 -
1972 - $this->end_controls_section();
1973 -
1974 - $this->start_controls_section(
1975 - 'section_chart_title_styles',
1976 - [
1977 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Title', 'king-addons'),
1978 - 'tab' => Controls_Manager::TAB_STYLE,
1979 - 'condition' => [
1980 - 'show_chart_title' => 'yes'
1981 - ]
1982 - ]
1983 - );
1984 -
1985 - $this->add_control(
1986 - 'chart_title_color', [
1987 - 'label' => esc_html__('Color', 'king-addons'),
1988 - 'type' => Controls_Manager::COLOR,
1989 - ]
1990 - );
1991 -
1992 - $this->add_control(
1993 - 'title_font_family',
1994 - [
1995 - 'label' => esc_html__('Font Family', 'king-addons'),
1996 - 'type' => Controls_Manager::FONT,
1997 - 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1998 - 'default' => 'Arial',
1999 - ]
2000 - );
2001 -
2002 - $this->add_control(
2003 - 'title_font_style',
2004 - [
2005 - 'label' => esc_html__('Font Style', 'king-addons'),
2006 - 'type' => Controls_Manager::SELECT,
2007 - 'default' => 'normal',
2008 - 'options' => [
2009 - 'normal' => 'Normal',
2010 - 'italic' => 'Italic',
2011 - 'oblique' => 'Oblique',
2012 - ],
2013 -
2014 - ]
2015 - );
2016 -
2017 - $this->add_control(
2018 - 'title_font_weight',
2019 - [
2020 - 'label' => esc_html__('Font Weight ', 'king-addons'),
2021 - 'type' => Controls_Manager::NUMBER,
2022 - 'min' => 0,
2023 - 'default' => 600,
2024 - 'frontend_available' => true,
2025 - ]
2026 - );
2027 -
2028 - $this->add_control(
2029 - 'title_font_size',
2030 - [
2031 - 'label' => esc_html__('Font Size', 'king-addons'),
2032 - 'type' => Controls_Manager::SLIDER,
2033 - 'size_units' => ['px'],
2034 - 'range' => [
2035 - 'px' => [
2036 - 'min' => 10,
2037 - 'max' => 100,
2038 - ],
2039 - ],
2040 - 'default' => [
2041 - 'unit' => 'px',
2042 - 'size' => 14,
2043 - ],
2044 - ]
2045 - );
2046 -
2047 - $this->add_control(
2048 - 'chart_title_padding',
2049 - [
2050 - 'label' => esc_html__('Padding', 'king-addons'),
2051 - 'type' => Controls_Manager::SLIDER,
2052 - 'range' => [
2053 - 'px' => [
2054 - 'min' => 0,
2055 - 'max' => 50,
2056 - ],
2057 - ],
2058 - 'size_units' => ['px'],
2059 - 'default' => [
2060 - 'unit' => 'px',
2061 - 'size' => 10,
2062 - ],
2063 - ]
2064 - );
2065 -
2066 - $this->end_controls_section();
2067 -
2068 - $this->start_controls_section(
2069 - 'section_chart_legend_styles',
2070 - [
2071 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Legend', 'king-addons'),
2072 - 'tab' => Controls_Manager::TAB_STYLE,
2073 - ]
2074 - );
2075 -
2076 - $this->add_control(
2077 - 'chart_legend_text_color', [
2078 - 'label' => esc_html__('Color', 'king-addons'),
2079 - 'type' => Controls_Manager::COLOR,
2080 - 'default' => '#222222'
2081 - ]
2082 - );
2083 -
2084 - $this->add_control(
2085 - 'legend_font_family',
2086 - [
2087 - 'label' => esc_html__('Font Family', 'king-addons'),
2088 - 'type' => Controls_Manager::FONT,
2089 - 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
2090 - 'default' => 'Arial',
2091 - ]
2092 - );
2093 -
2094 - $this->add_control(
2095 - 'legend_font_style',
2096 - [
2097 - 'label' => esc_html__('Font Style', 'king-addons'),
2098 - 'type' => Controls_Manager::SELECT,
2099 - 'default' => 'normal',
2100 - 'options' => [
2101 - 'normal' => 'Normal',
2102 - 'italic' => 'Italic',
2103 - 'oblique' => 'Oblique',
2104 - ],
2105 -
2106 - ]
2107 - );
2108 -
2109 - $this->add_control(
2110 - 'legend_font_weight',
2111 - [
2112 - 'label' => esc_html__('Font Weight ', 'king-addons'),
2113 - 'type' => Controls_Manager::NUMBER,
2114 - 'min' => 0,
2115 - 'default' => 600,
2116 - 'frontend_available' => true,
2117 - ]
2118 - );
2119 -
2120 - $this->add_control(
2121 - 'legend_font_size',
2122 - [
2123 - 'label' => esc_html__('Font Size', 'king-addons'),
2124 - 'type' => Controls_Manager::SLIDER,
2125 - 'size_units' => ['px'],
2126 - 'range' => [
2127 - 'px' => [
2128 - 'min' => 10,
2129 - 'max' => 100,
2130 - ],
2131 - ],
2132 - 'default' => [
2133 - 'unit' => 'px',
2134 - 'size' => 14,
2135 - ],
2136 - ]
2137 - );
2138 -
2139 - $this->add_control(
2140 - 'legend_box_width',
2141 - [
2142 - 'label' => esc_html__('Box Size', 'king-addons'),
2143 - 'type' => Controls_Manager::SLIDER,
2144 - 'range' => [
2145 - 'px' => [
2146 - 'min' => 0,
2147 - 'max' => 200,
2148 - ],
2149 - ],
2150 - 'size_units' => ['px'],
2151 - 'default' => [
2152 - 'unit' => 'px',
2153 - 'size' => 40,
2154 - ]
2155 - ]
2156 - );
2157 -
2158 - $this->add_control(
2159 - 'chart_legend_padding',
2160 - [
2161 - 'label' => esc_html__('Gutter', 'king-addons'),
2162 - 'type' => Controls_Manager::SLIDER,
2163 - 'range' => [
2164 - 'px' => [
2165 - 'min' => 0,
2166 - 'max' => 50,
2167 - ],
2168 - ],
2169 - 'size_units' => ['px'],
2170 - 'default' => [
2171 - 'unit' => 'px',
2172 - 'size' => 10,
2173 - ],
2174 - ]
2175 - );
2176 -
2177 - $this->end_controls_section();
2178 -
2179 - $this->start_controls_section(
2180 - 'section_chart_tooltip_styles',
2181 - [
2182 - 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Tooltip', 'king-addons'),
2183 - 'tab' => Controls_Manager::TAB_STYLE,
2184 - 'condition' => [
2185 - 'show_chart_tooltip' => 'yes'
2186 - ]
2187 - ]
2188 - );
2189 -
2190 - $this->add_control(
2191 - 'chart_tooltip_bg_color', [
2192 - 'label' => esc_html__('Background Color', 'king-addons'),
2193 - 'type' => Controls_Manager::COLOR,
2194 - ]
2195 - );
2196 -
2197 - $this->add_control(
2198 - 'tooltip_padding',
2199 - [
2200 - 'label' => esc_html__('Padding', 'king-addons'),
2201 - 'type' => Controls_Manager::SLIDER,
2202 - 'size_units' => ['px'],
2203 - 'range' => [
2204 - 'px' => [
2205 - 'min' => 0,
2206 - 'max' => 100,
2207 - ],
2208 - ],
2209 - 'default' => [
2210 - 'unit' => 'px',
2211 - 'size' => 5,
2212 - ],
2213 - ]
2214 - );
2215 -
2216 - $this->add_responsive_control(
2217 - 'tooltip_caret_size',
2218 - [
2219 - 'label' => esc_html__('Triangle Size', 'king-addons'),
2220 - 'type' => Controls_Manager::SLIDER,
2221 - 'devices' => ['desktop', 'mobile'],
2222 - 'size_units' => ['px'],
2223 - 'range' => [
2224 - 'px' => [
2225 - 'min' => 0,
2226 - 'max' => 100,
2227 - ],
2228 - ],
2229 - 'default' => [
2230 - 'unit' => 'px',
2231 - 'size' => 10,
2232 - ],
2233 - 'mobile_default' => [
2234 - 'unit' => 'px',
2235 - 'size' => 6,
2236 - ],
2237 - ]
2238 - );
2239 -
2240 - $this->add_control(
2241 - 'tooltip_title_heading',
2242 - [
2243 - 'label' => esc_html__('Tooltip Title', 'king-addons'),
2244 - 'type' => Controls_Manager::HEADING,
2245 - 'separator' => 'before',
2246 - ]
2247 - );
2248 -
2249 - $this->add_control(
2250 - 'chart_tooltip_title_color', [
2251 - 'label' => esc_html__('Title Color', 'king-addons'),
2252 - 'type' => Controls_Manager::COLOR,
2253 - 'default' => '#FFF'
2254 - ]
2255 - );
2256 -
2257 - $this->add_control(
2258 - 'chart_tooltip_title_font',
2259 - [
2260 - 'label' => esc_html__('Font Family', 'king-addons'),
2261 - 'type' => Controls_Manager::FONT,
2262 - 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
2263 - 'default' => 'Arial',
2264 - ]
2265 - );
2266 -
2267 - $this->add_control(
2268 - 'chart_tooltip_title_font_size',
2269 - [
2270 - 'label' => esc_html__('Font Size', 'king-addons'),
2271 - 'type' => Controls_Manager::SLIDER,
2272 - 'size_units' => ['px'],
2273 - 'range' => [
2274 - 'px' => [
2275 - 'min' => 10,
2276 - 'max' => 100,
2277 - ],
2278 - ],
2279 - 'default' => [
2280 - 'unit' => 'px',
2281 - 'size' => 14,
2282 - ],
2283 - 'separator' => 'before'
2284 - ]
2285 - );
2286 -
2287 - $this->add_control(
2288 - 'chart_tooltip_title_margin_bottom',
2289 - [
2290 - 'label' => esc_html__('Title Spacing', 'king-addons'),
2291 - 'type' => Controls_Manager::SLIDER,
2292 - 'range' => [
2293 - 'px' => [
2294 - 'min' => 0,
2295 - 'max' => 50,
2296 - ],
2297 - ],
2298 - 'size_units' => ['px'],
2299 - 'default' => [
2300 - 'unit' => 'px',
2301 - 'size' => 10,
2302 - ],
2303 - ]
2304 - );
2305 -
2306 - $this->add_control(
2307 - 'chart_tooltip_title_align',
2308 - [
2309 - 'label' => esc_html__('Title Alignment', 'king-addons'),
2310 - 'type' => Controls_Manager::CHOOSE,
2311 - 'default' => 'center',
2312 - 'label_block' => false,
2313 - 'options' => [
2314 - 'left' => [
2315 - 'title' => esc_html__('Left', 'king-addons'),
2316 - 'icon' => 'eicon-text-align-left',
2317 - ],
2318 - 'center' => [
2319 - 'title' => esc_html__('Center', 'king-addons'),
2320 - 'icon' => 'eicon-text-align-center',
2321 - ],
2322 - 'right' => [
2323 - 'title' => esc_html__('Right', 'king-addons'),
2324 - 'icon' => 'eicon-text-align-right',
2325 - ],
2326 - ],
2327 - 'separator' => 'before'
2328 - ]
2329 - );
2330 -
2331 - $this->add_control(
2332 - 'tooltip_item_heading',
2333 - [
2334 - 'label' => esc_html__('Tooltip Item', 'king-addons'),
2335 - 'type' => Controls_Manager::HEADING,
2336 - 'separator' => 'before',
2337 - ]
2338 - );
2339 -
2340 - $this->add_control(
2341 - 'chart_tooltip_item_color', [
2342 - 'label' => esc_html__('Item Color', 'king-addons'),
2343 - 'type' => Controls_Manager::COLOR,
2344 - 'default' => '#FFF'
2345 - ]
2346 - );
2347 -
2348 - $this->add_control(
2349 - 'chart_tooltip_item_font',
2350 - [
2351 - 'label' => esc_html__('Font Family', 'king-addons'),
2352 - 'type' => Controls_Manager::FONT,
2353 - 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
2354 - 'default' => 'Arial',
2355 - ]
2356 - );
2357 -
2358 - $this->add_control(
2359 - 'chart_tooltip_item_font_size',
2360 - [
2361 - 'label' => esc_html__('Font Size', 'king-addons'),
2362 - 'type' => Controls_Manager::SLIDER,
2363 - 'size_units' => ['px'],
2364 - 'range' => [
2365 - 'px' => [
2366 - 'min' => 10,
2367 - 'max' => 100,
2368 - ],
2369 - ],
2370 - 'default' => [
2371 - 'unit' => 'px',
2372 - 'size' => 14,
2373 - ],
2374 - 'separator' => 'before'
2375 - ]
2376 - );
2377 -
2378 - $this->add_control(
2379 - 'chart_tooltip_item_spacing',
2380 - [
2381 - 'label' => esc_html__('Item Spacing', 'king-addons'),
2382 - 'type' => Controls_Manager::SLIDER,
2383 - 'range' => [
2384 - 'px' => [
2385 - 'min' => 0,
2386 - 'max' => 50,
2387 - ],
2388 - ],
2389 - 'size_units' => ['px'],
2390 - 'default' => [
2391 - 'unit' => 'px',
2392 - 'size' => 10,
2393 - ],
2394 - ]
2395 - );
2396 -
2397 - $this->add_control(
2398 - 'chart_tooltip_item_align',
2399 - [
2400 - 'label' => esc_html__('Item Alignment', 'king-addons'),
2401 - 'type' => Controls_Manager::CHOOSE,
2402 - 'default' => 'center',
2403 - 'label_block' => false,
2404 - 'options' => [
2405 - 'left' => [
2406 - 'title' => esc_html__('Left', 'king-addons'),
2407 - 'icon' => 'eicon-text-align-left',
2408 - ],
2409 - 'center' => [
2410 - 'title' => esc_html__('Center', 'king-addons'),
2411 - 'icon' => 'eicon-text-align-center',
2412 - ],
2413 - 'right' => [
2414 - 'title' => esc_html__('Right', 'king-addons'),
2415 - 'icon' => 'eicon-text-align-right',
2416 - ],
2417 - ],
2418 - 'separator' => 'before'
2419 - ]
2420 - );
2421 -
2422 -
2423 -
2424 -
2425 -$this->end_controls_section();
2426 -
2427 -
2428 - }
2429 -
2430 - protected function render()
2431 - {
2432 - $settings = $this->get_settings_for_display();
2433 - // Security fix: Extract only specific safe settings to prevent variable injection
2434 - $chart_type = $settings['chart_type'] ?? '';
2435 - $charts_labels_data = $settings['charts_labels_data'] ?? '';
2436 - $charts_datasets_data = $settings['charts_datasets_data'] ?? '';
2437 - $chart_title = $settings['chart_title'] ?? '';
2438 - $chart_title_show = $settings['chart_title_show'] ?? '';
2439 - $chart_legend_show = $settings['chart_legend_show'] ?? '';
2440 - $chart_tooltips_show = $settings['chart_tooltips_show'] ?? '';
2441 - $chart_options = $settings['chart_options'] ?? '';
2442 - $chart_height = $settings['chart_height'] ?? '';
2443 - $chart_width = $settings['chart_width'] ?? '';
2444 - $chart_responsive = $settings['chart_responsive'] ?? '';
2445 - $chart_maintain_aspect_ratio = $settings['chart_maintain_aspect_ratio'] ?? '';
2446 - $chart_animation_duration = $settings['chart_animation_duration'] ?? '';
2447 - $chart_animation_easing = $settings['chart_animation_easing'] ?? '';
2448 - $chart_show_labels = $settings['chart_show_labels'] ?? '';
2449 - $chart_label_position = $settings['chart_label_position'] ?? '';
2450 - $chart_label_color = $settings['chart_label_color'] ?? '';
2451 - $chart_label_font_size = $settings['chart_label_font_size'] ?? '';
2452 - $chart_label_font_family = $settings['chart_label_font_family'] ?? '';
2453 - $chart_label_font_style = $settings['chart_label_font_style'] ?? '';
2454 - $chart_label_font_weight = $settings['chart_label_font_weight'] ?? '';
2455 - $chart_grid_lines = $settings['chart_grid_lines'] ?? '';
2456 - $chart_grid_color = $settings['chart_grid_color'] ?? '';
2457 - $chart_grid_line_width = $settings['chart_grid_line_width'] ?? '';
2458 - $chart_point_radius = $settings['chart_point_radius'] ?? '';
2459 - $chart_point_hover_radius = $settings['chart_point_hover_radius'] ?? '';
2460 - $chart_point_background_color = $settings['chart_point_background_color'] ?? '';
2461 - $chart_point_border_color = $settings['chart_point_border_color'] ?? '';
2462 - $chart_point_border_width = $settings['chart_point_border_width'] ?? '';
2463 - $chart_line_tension = $settings['chart_line_tension'] ?? '';
2464 - $chart_line_border_width = $settings['chart_line_border_width'] ?? '';
2465 - $chart_line_border_color = $settings['chart_line_border_color'] ?? '';
2466 - $chart_line_background_color = $settings['chart_line_background_color'] ?? '';
2467 - $chart_bar_border_width = $settings['chart_bar_border_width'] ?? '';
2468 - $chart_bar_border_color = $settings['chart_bar_border_color'] ?? '';
2469 - $chart_bar_background_color = $settings['chart_bar_background_color'] ?? '';
2470 - $chart_doughnut_cutout = $settings['chart_doughnut_cutout'] ?? '';
2471 - $chart_doughnut_circumference = $settings['chart_doughnut_circumference'] ?? '';
2472 - $chart_doughnut_rotation = $settings['chart_doughnut_rotation'] ?? '';
2473 - $chart_polar_area_start_angle = $settings['chart_polar_area_start_angle'] ?? '';
2474 - $chart_polar_area_start_angle = $settings['chart_polar_area_start_angle'] ?? '';
2475 - $chart_radar_point_labels = $settings['chart_radar_point_labels'] ?? '';
2476 - $chart_radar_angle_lines = $settings['chart_radar_angle_lines'] ?? '';
2477 - $chart_radar_grid_lines = $settings['chart_radar_grid_lines'] ?? '';
2478 - $chart_radar_point_radius = $settings['chart_radar_point_radius'] ?? '';
2479 - $chart_radar_point_hover_radius = $settings['chart_radar_point_hover_radius'] ?? '';
2480 - $chart_radar_point_background_color = $settings['chart_radar_point_background_color'] ?? '';
2481 - $chart_radar_point_border_color = $settings['chart_radar_point_border_color'] ?? '';
2482 - $chart_radar_point_border_width = $settings['chart_radar_point_border_width'] ?? '';
2483 - $chart_radar_line_tension = $settings['chart_radar_line_tension'] ?? '';
2484 - $chart_radar_line_border_width = $settings['chart_radar_line_border_width'] ?? '';
2485 - $chart_radar_line_border_color = $settings['chart_radar_line_border_color'] ?? '';
2486 - $chart_radar_line_background_color = $settings['chart_radar_line_background_color'] ?? '';
2487 -
2488 - // Additional chart settings
2489 - $charts_data_set = $settings['charts_data_set'] ?? '';
2490 - $animation_transition_type = $settings['animation_transition_type'] ?? '';
2491 - $axis_grid_line_color_r = $settings['axis_grid_line_color_r'] ?? '';
2492 - $axis_grid_line_color_x = $settings['axis_grid_line_color_x'] ?? '';
2493 - $axis_grid_line_color_y = $settings['axis_grid_line_color_y'] ?? '';
2494 - $axis_title_color_x = $settings['axis_title_color_x'] ?? '';
2495 - $axis_title_color_y = $settings['axis_title_color_y'] ?? '';
2496 - $axis_title_font_family_x = $settings['axis_title_font_family_x'] ?? '';
2497 - $axis_title_font_family_y = $settings['axis_title_font_family_y'] ?? '';
2498 - $axis_title_font_style_x = $settings['axis_title_font_style_x'] ?? '';
2499 - $axis_title_font_style_y = $settings['axis_title_font_style_y'] ?? '';
2500 - $axis_title_font_weight_x = $settings['axis_title_font_weight_x'] ?? '';
2501 - $axis_title_font_weight_y = $settings['axis_title_font_weight_y'] ?? '';
2502 - $border_dash_length = $settings['border_dash_length'] ?? '';
2503 - $border_dash_length_r = $settings['border_dash_length_r'] ?? '';
2504 - $border_dash_offset = $settings['border_dash_offset'] ?? '';
2505 - $border_dash_offset_r = $settings['border_dash_offset_r'] ?? '';
2506 - $border_dash_spacing = $settings['border_dash_spacing'] ?? '';
2507 - $border_dash_spacing_r = $settings['border_dash_spacing_r'] ?? '';
2508 - $chart_interaction_mode = $settings['chart_interaction_mode'] ?? '';
2509 - $chart_tooltip_bg_color = $settings['chart_tooltip_bg_color'] ?? '';
2510 - $chart_tooltip_item_align = $settings['chart_tooltip_item_align'] ?? '';
2511 - $chart_tooltip_item_color = $settings['chart_tooltip_item_color'] ?? '';
2512 - $chart_tooltip_item_font = $settings['chart_tooltip_item_font'] ?? '';
2513 - $chart_tooltip_title_align = $settings['chart_tooltip_title_align'] ?? '';
2514 - $chart_tooltip_title_color = $settings['chart_tooltip_title_color'] ?? '';
2515 - $chart_tooltip_title_font = $settings['chart_tooltip_title_font'] ?? '';
2516 - $data_source = $settings['data_source'] ?? '';
2517 - $display_r_axis = $settings['display_r_axis'] ?? '';
2518 - $display_r_ticks = $settings['display_r_ticks'] ?? '';
2519 - $display_x_axis = $settings['display_x_axis'] ?? '';
2520 - $display_x_axis_title = $settings['display_x_axis_title'] ?? '';
2521 - $display_x_ticks = $settings['display_x_ticks'] ?? '';
2522 - $display_y_axis = $settings['display_y_axis'] ?? '';
2523 - $display_y_axis_title = $settings['display_y_axis_title'] ?? '';
2524 - $display_y_ticks = $settings['display_y_ticks'] ?? '';
2525 - $exclude_dataset_on_click = $settings['exclude_dataset_on_click'] ?? '';
2526 - $grid_line_width_r = $settings['grid_line_width_r'] ?? '';
2527 - $grid_line_width_x = $settings['grid_line_width_x'] ?? '';
2528 - $grid_line_width_y = $settings['grid_line_width_y'] ?? '';
2529 - $inner_datalabels = $settings['inner_datalabels'] ?? '';
2530 - $inner_datalabels_color = $settings['inner_datalabels_color'] ?? '';
2531 - $charts_legend_align = $settings['charts_legend_align'] ?? '';
2532 - $legend_box_width = $settings['legend_box_width'] ?? '';
2533 - $legend_font_family = $settings['legend_font_family'] ?? '';
2534 - $legend_font_size = $settings['legend_font_size'] ?? '';
2535 - $legend_font_style = $settings['legend_font_style'] ?? '';
2536 - $legend_font_weight = $settings['legend_font_weight'] ?? '';
2537 - $chart_legend_padding = $settings['chart_legend_padding'] ?? '';
2538 - $charts_legend_position = $settings['charts_legend_position'] ?? '';
2539 - $charts_legend_shape = $settings['charts_legend_shape'] ?? '';
2540 - $chart_legend_text_color = $settings['chart_legend_text_color'] ?? '';
2541 - $max_value = $settings['max_value'] ?? '';
2542 - $min_value = $settings['min_value'] ?? '';
2543 - $point_labels_font_family_r = $settings['point_labels_font_family_r'] ?? '';
2544 - $point_labels_font_style_r = $settings['point_labels_font_style_r'] ?? '';
2545 - $point_labels_font_weight_r = $settings['point_labels_font_weight_r'] ?? '';
2546 - $r_step_size = $settings['r_step_size'] ?? '';
2547 - $reverse_legend = $settings['reverse_legend'] ?? '';
2548 - $reverse_x = $settings['reverse_x'] ?? '';
2549 - $reverse_y = $settings['reverse_y'] ?? '';
2550 - $labels_rotation_x_axis = $settings['labels_rotation_x_axis'] ?? '';
2551 - $labels_rotation_y_axis = $settings['labels_rotation_y_axis'] ?? '';
2552 - $data_csv_separator = $settings['data_csv_separator'] ?? '';
2553 - $show_chart_legend = $settings['show_chart_legend'] ?? '';
2554 - $show_chart_title = $settings['show_chart_title'] ?? '';
2555 - $show_chart_tooltip = $settings['show_chart_tooltip'] ?? '';
2556 - $chart_ticks_color_x = $settings['chart_ticks_color_x'] ?? '';
2557 - $ticks_font_family_x = $settings['ticks_font_family_x'] ?? '';
2558 - $ticks_font_family_y = $settings['ticks_font_family_y'] ?? '';
2559 - $ticks_font_style_x = $settings['ticks_font_style_x'] ?? '';
2560 - $ticks_font_style_y = $settings['ticks_font_style_y'] ?? '';
2561 - $ticks_font_weight_x = $settings['ticks_font_weight_x'] ?? '';
2562 - $ticks_font_weight_y = $settings['ticks_font_weight_y'] ?? '';
2563 - $title_font_family = $settings['title_font_family'] ?? '';
2564 - $title_font_weight = $settings['title_font_weight'] ?? '';
2565 - $tooltips_percent = $settings['tooltips_percent'] ?? '';
2566 - $chart_tooltip_position = $settings['chart_tooltip_position'] ?? '';
2567 - $trigger_tooltip_on = $settings['trigger_tooltip_on'] ?? '';
2568 - $data_source_csv_file = $settings['data_source_csv_file'] ?? '';
2569 - $x_axis_title = $settings['x_axis_title'] ?? '';
2570 - $x_step_size = $settings['x_step_size'] ?? '';
2571 - $y_axis_title = $settings['y_axis_title'] ?? '';
2572 - $y_step_size = $settings['y_step_size'] ?? '';
2573 -
2574 - $premium = king_addons_freemius()->can_use_premium_code__premium_only();
2575 - $data_charts_array = [];
2576 -
2577 - if (in_array($chart_type, ['bar', 'bar_horizontal', 'line', 'radar'])) {
2578 - if (!empty($charts_labels_data)) {
2579 - $labels = explode(',', trim($charts_labels_data));
2580 - if (!$premium && count($labels) > 3) {
2581 - $labels = array_slice($labels, 0, 3);
2582 - }
2583 - $data_charts_array['labels'] = $labels;
2584 - }
2585 -
2586 - if (is_array($charts_data_set) && count($charts_data_set)) {
2587 - foreach ($charts_data_set as $charts_counter => $chart_data) {
2588 - if (!$premium && $charts_counter === 3) break;
2589 - $data_charts_array['datasets'][] = [
2590 - 'label' => $chart_data['chart_data_label'],
2591 - 'data' => array_map('floatval', explode(',', trim($chart_data['chart_data_set'], ','))),
2592 - 'backgroundColor' => $chart_data['chart_data_background_color'],
2593 - 'hoverBackgroundColor' => $chart_data['chart_data_background_color_hover'],
2594 - 'borderColor' => $chart_data['chart_data_border_color'],
2595 - 'hoverBorderColor' => $chart_data['chart_data_border_color_hover'],
2596 - 'borderWidth' => $chart_data['chart_data_border_width'],
2597 - 'barPercentage' => $settings['column_width_x'] ?? '',
2598 - 'fill' => !empty($settings['chart_type_line_fill']) && 'yes' === $settings['chart_type_line_fill'],
2599 - ];
2600 - }
2601 - }
2602 - } else {
2603 - if (is_array($charts_data_set) && count($charts_data_set) && $settings['data_source'] !== 'csv') {
2604 - $chart_data_number_values = $chart_background_colors = $chart_background_hover_colors = [];
2605 - $chart_data_border_colors = $chart_data_border_hover_colors = $chart_data_border_width = $chart_data_bar_percentage = [];
2606 - $data_charts_array['labels'] = [];
2607 -
2608 - foreach ($charts_data_set as $labels_data) {
2609 - if (!$premium && count($data_charts_array['labels']) === 3) break;
2610 - $data_charts_array['labels'][] = $labels_data['chart_data_label'];
2611 - }
2612 -
2613 - $data_charts_array_test = !empty($charts_labels_data) ? explode(',', trim($charts_labels_data)) : [];
2614 -
2615 - foreach ($data_charts_array_test as $key => $test_data) {
2616 - if (!$premium && $key === 3) break;
2617 - $chart_data_number_values[$key] = [];
2618 - foreach ($charts_data_set as $key_inner => $chart_data) {
2619 - if (!$premium && $key_inner === 3) break;
2620 - $numbers = array_map('floatval', explode(',', trim($chart_data['chart_data_set'], ',')));
2621 - $chart_data_number_values[$key][] = $numbers[$key] ?? '0';
2622 - }
2623 - }
2624 -
2625 - foreach ($charts_data_set as $key => $chart_data) {
2626 - if (!$premium && $key === 3) break;
2627 - $chart_background_colors[] = trim($chart_data['chart_data_background_color']);
2628 - $chart_background_hover_colors[] = trim($chart_data['chart_data_background_color_hover']);
2629 - $chart_data_border_colors[] = trim($chart_data['chart_data_border_color']);
2630 - $chart_data_border_hover_colors[] = trim($chart_data['chart_data_border_color_hover']);
2631 - $chart_data_border_width[] = trim($chart_data['chart_data_border_width']);
2632 - if (!empty($settings['column_width_x'])) {
2633 - $chart_data_bar_percentage[] = trim($chart_data['column_width_x']);
2634 - }
2635 - }
2636 -
2637 - foreach ($data_charts_array_test as $key => $data_test) {
2638 - if (!$premium && $key === 3) break;
2639 - $data_charts_array['datasets'][] = [
2640 - 'label' => $data_test,
2641 - 'data' => $chart_data_number_values[$key],
2642 - 'backgroundColor' => $chart_background_colors,
2643 - 'hoverBackgroundColor' => $chart_background_hover_colors,
2644 - 'borderColor' => $chart_data_border_colors,
2645 - 'hoverBorderColor' => $chart_data_border_hover_colors,
2646 - 'borderWidth' => $chart_data_border_width,
2647 - 'barPercentage' => $chart_data_bar_percentage,
2648 - ];
2649 - }
2650 - }
2651 - }
2652 -
2653 - $layout_settings = [
2654 - 'angle_lines_color' => $angle_lines_color ?? '',
2655 - 'animation_transition_type' => $animation_transition_type,
2656 - 'axis_grid_line_color_r' => $axis_grid_line_color_r,
2657 - 'axis_grid_line_color_x' => $axis_grid_line_color_x,
2658 - 'axis_grid_line_color_y' => $axis_grid_line_color_y,
2659 - 'axis_labels_bg_color' => $axis_labels_bg_color ?? '',
2660 - 'axis_labels_color' => $axis_labels_color ?? '',
2661 - 'axis_labels_padding' => $axis_labels_padding['size'] ?? '',
2662 - 'axis_title_color_x' => $axis_title_color_x,
2663 - 'axis_title_color_y' => $axis_title_color_y,
2664 - 'axis_title_font_family_x' => $axis_title_font_family_x,
2665 - 'axis_title_font_family_y' => $axis_title_font_family_y,
2666 - 'axis_title_font_size_x' => $axis_title_font_size_x['size'] ?? '',
2667 - 'axis_title_font_size_y' => $axis_title_font_size_y['size'] ?? '',
2668 - 'axis_title_font_style_x' => $axis_title_font_style_x,
2669 - 'axis_title_font_style_y' => $axis_title_font_style_y,
2670 - 'axis_title_font_weight_x' => $axis_title_font_weight_x,
2671 - 'axis_title_font_weight_y' => $axis_title_font_weight_y,
2672 - 'border_dash_length' => $border_dash_length,
2673 - 'border_dash_length_r' => $border_dash_length_r,
2674 - 'border_dash_offset' => $border_dash_offset,
2675 - 'border_dash_offset_r' => $border_dash_offset_r,
2676 - 'border_dash_spacing' => $border_dash_spacing,
2677 - 'border_dash_spacing_r' => $border_dash_spacing_r,
2678 - 'chart_animation' => $chart_animation ?? '',
2679 - 'chart_animation_duration' => $chart_animation_duration ?? '',
2680 - 'chart_animation_loop' => $chart_animation_loop ?? '',
2681 - 'chart_datasets' => !empty($data_charts_array['datasets']) ? wp_json_encode($data_charts_array['datasets']) : '',
2682 - 'chart_interaction_mode' => $chart_interaction_mode,
2683 - 'chart_labels' => $data_charts_array['labels'] ?? '',
2684 - 'chart_title' => $chart_title ?? '',
2685 - 'chart_title_align' => $chart_title_align ?? '',
2686 - 'chart_title_color' => $chart_title_color ?? '',
2687 - 'chart_title_position' => $chart_title_position ?? '',
2688 - 'chart_tooltip_bg_color' => $chart_tooltip_bg_color,
2689 - 'chart_tooltip_item_align' => $chart_tooltip_item_align,
2690 - 'chart_tooltip_item_color' => $chart_tooltip_item_color,
2691 - 'chart_tooltip_item_font' => $chart_tooltip_item_font,
2692 - 'chart_tooltip_item_font_size' => $chart_tooltip_item_font_size['size'] ?? 1,
2693 - 'chart_tooltip_item_spacing' => $chart_tooltip_item_spacing['size'] ?? 1,
2694 - 'chart_tooltip_title_align' => $chart_tooltip_title_align,
2695 - 'chart_tooltip_title_color' => $chart_tooltip_title_color,
2696 - 'chart_tooltip_title_font' => $chart_tooltip_title_font,
2697 - 'chart_tooltip_title_font_size' => $chart_tooltip_title_font_size['size'] ?? 1,
2698 - 'chart_tooltip_title_margin_bottom' => $chart_tooltip_title_margin_bottom['size'] ?? 1,
2699 - 'chart_type' => $chart_type,
2700 - 'data_source' => $data_source,
2701 - 'data_type' => $settings['data_type'] ?? 'linear',
2702 - 'display_r_axis' => $display_r_axis,
2703 - 'display_r_ticks' => $display_r_ticks,
2704 - 'display_x_axis' => $display_x_axis,
2705 - 'display_x_axis_title' => $display_x_axis_title,
2706 - 'display_x_ticks' => $display_x_ticks,
2707 - 'display_y_axis' => $display_y_axis,
2708 - 'display_y_axis_title' => $display_y_axis_title,
2709 - 'display_y_ticks' => $display_y_ticks,
2710 - 'exclude_dataset_on_click' => $exclude_dataset_on_click,
2711 - 'grid_line_width_r' => $grid_line_width_r,
2712 - 'grid_line_width_x' => $grid_line_width_x,
2713 - 'grid_line_width_y' => $grid_line_width_y,
2714 - 'inner_datalabels' => $inner_datalabels,
2715 - 'inner_datalabels_color' => $inner_datalabels_color,
2716 - 'inner_datalabels_font_family' => $inner_datalabels_font_family ?? '',
2717 - 'inner_datalabels_font_size' => $inner_datalabels_font_size['size'] ?? '',
2718 - 'inner_datalabels_font_style' => $inner_datalabels_font_style ?? '',
2719 - 'inner_datalabels_font_weight' => $inner_datalabels_font_weight ?? '',
2720 - 'legend_align' => $charts_legend_align,
2721 - 'legend_box_width' => $legend_box_width['size'],
2722 - 'legend_font_family' => $legend_font_family,
2723 - 'legend_font_size' => $legend_font_size['size'],
2724 - 'legend_font_style' => $legend_font_style,
2725 - 'legend_font_weight' => $legend_font_weight,
2726 - 'legend_padding' => $chart_legend_padding['size'],
2727 - 'legend_position' => $charts_legend_position,
2728 - 'legend_shape' => $charts_legend_shape,
2729 - 'legend_text_color' => $chart_legend_text_color,
2730 - 'line_dots' => $line_dots ?? '',
2731 - 'line_dots_radius' => $line_dots_radius['size'] ?? '',
2732 - 'line_dots_radius_mobile' => $line_dots_radius_mobile['size'] ?? 0,
2733 - 'max_value' => $max_value,
2734 - 'min_value' => $min_value,
2735 - 'point_labels_color_r' => $chart_point_labels_color_r ?? '',
2736 - 'point_labels_font_family_r' => $point_labels_font_family_r,
2737 - 'point_labels_font_size_r' => $point_labels_font_size_r['size'] ?? '',
2738 - 'point_labels_font_style_r' => $point_labels_font_style_r,
2739 - 'point_labels_font_weight_r' => $point_labels_font_weight_r,
2740 - 'r_step_size' => $r_step_size,
2741 - 'reverse_legend' => $reverse_legend,
2742 - 'reverse_x' => $reverse_x,
2743 - 'reverse_y' => $reverse_y,
2744 - 'rotation_x' => $labels_rotation_x_axis,
2745 - 'rotation_y' => $labels_rotation_y_axis,
2746 - 'separator' => $data_csv_separator,
2747 - 'show_chart_legend' => $show_chart_legend,
2748 - 'show_chart_title' => $show_chart_title,
2749 - 'show_chart_tooltip' => $show_chart_tooltip,
2750 - 'show_lines' => $show_lines ?? '',
2751 - 'stacked_bar_chart' => $stacked_bar_chart ?? '',
2752 - 'ticks_color_x' => $chart_ticks_color_x,
2753 - 'ticks_color_y' => $chart_ticks_color_y ?? '',
2754 - 'ticks_font_family_x' => $ticks_font_family_x,
2755 - 'ticks_font_family_y' => $ticks_font_family_y,
2756 - 'ticks_font_size_x' => $ticks_font_size_x['size'] ?? '',
2757 - 'ticks_font_size_y' => $ticks_font_size_y['size'] ?? '',
2758 - 'ticks_font_style_x' => $ticks_font_style_x,
2759 - 'ticks_font_style_y' => $ticks_font_style_y,
2760 - 'ticks_font_weight_x' => $ticks_font_weight_x,
2761 - 'ticks_font_weight_y' => $ticks_font_weight_y,
2762 - 'ticks_padding_x' => $ticks_padding_x['size'] ?? '',
2763 - 'ticks_padding_y' => $ticks_padding_y['size'] ?? '',
2764 - 'title_font_family' => $title_font_family,
2765 - 'title_font_size' => $title_font_size['size'] ?? '',
2766 - 'title_font_style' => $title_font_style ?? '',
2767 - 'title_font_weight' => $title_font_weight,
2768 - 'title_padding' => $chart_title_padding['size'] ?? '',
2769 - 'tooltips_percent' => $tooltips_percent,
2770 - 'tooltip_caret_size' => $tooltip_caret_size['size'] ?? 1,
2771 - 'tooltip_caret_size_mobile' => $tooltip_caret_size_mobile['size'] ?? 0,
2772 - 'tooltip_padding' => $tooltip_padding['size'] ?? 1,
2773 - 'tooltip_position' => $chart_tooltip_position,
2774 - 'trigger_tooltip_on' => $trigger_tooltip_on,
2775 - 'url' => !empty($data_source_csv_url) ? $data_source_csv_url : (!empty($data_source_csv_file['url']) ? $data_source_csv_file['url'] : ''),
2776 - 'x_axis_title' => $x_axis_title,
2777 - 'x_step_size' => $x_step_size,
2778 - 'y_axis_title' => $y_axis_title,
2779 - 'y_step_size' => $y_step_size,
2780 - ];
2781 -
2782 - $this->add_render_attribute('chart-settings', [
2783 - 'class' => 'king-addons-charts-container',
2784 - 'data-settings' => wp_json_encode($layout_settings),
2785 - ]);
2786 -
2787 - echo '<div ' . $this->get_render_attribute_string('chart-settings') . '>';
2788 - if ($data_source === 'csv') {
2789 - echo '<span class="king-addons-rotating-plane"></span>';
2790 - }
2791 - echo '<div class="king-addons-charts-wrapper">';
2792 - echo '<canvas class="king-addons-chart"></canvas>';
2793 - echo '</div></div>';
2794 - }
2795 -
1 +<?php
2 +
3 +namespace King_Addons;
4 +
5 +use Elementor\Controls_Manager;
6 +use Elementor\Widget_Base;
7 +use Elementor\Repeater;
8 +
9 +if (!defined('ABSPATH')) {
10 + exit;
11 +}
12 +
13 +class Charts extends Widget_Base
14 +{
15 +
16 + public function get_name()
17 + {
18 + return 'king-addons-charts';
19 + }
20 +
21 + public function get_title()
22 + {
23 + return esc_html__('Charts', 'king-addons');
24 + }
25 +
26 + public function get_icon()
27 + {
28 + return 'king-addons-icon king-addons-charts';
29 + }
30 +
31 + public function get_script_depends()
32 + {
33 + return [KING_ADDONS_ASSETS_UNIQUE_KEY . '-charts-charts', KING_ADDONS_ASSETS_UNIQUE_KEY . '-charts-script'];
34 + }
35 +
36 + public function get_style_depends()
37 + {
38 + return [
39 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-timing',
40 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-loading',
41 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-charts-style'
42 + ];
43 + }
44 +
45 + public function get_categories()
46 + {
47 + return ['king-addons'];
48 + }
49 +
50 + public function get_keywords()
51 + {
52 + return ['charts', 'chart', 'polar', 'linear', 'graph', 'pie', 'radar', 'king addons', 'line charts',
53 + 'radar charts', 'doughnut charts', 'pie charts', 'polararea charts', 'vertical', 'bar', 'polararea',
54 + 'polar charts', 'bar charts', 'horizontal charts', 'vertical charts', 'horizontal',
55 + 'king', 'addons', 'kingaddons', 'king-addons'];
56 + }
57 +
58 + public function get_custom_help_url()
59 + {
60 + return 'https://kingaddons.com/elementor/charts/';
61 + }
62 +
63 + public function add_control_choose_chart_data_source()
64 + {
65 + $this->add_control(
66 + 'data_source',
67 + [
68 + 'label' => esc_html__('Data Source', 'king-addons'),
69 + 'type' => Controls_Manager::SELECT,
70 + 'default' => 'custom',
71 + 'options' => [
72 + 'custom' => esc_html__('Custom', 'king-addons'),
73 + 'pro-csv' => 'CSV' . ' ' . esc_html__('File', 'king-addons') . ' (Pro)',
74 + ],
75 + 'frontend_available' => true,
76 + ]
77 + );
78 + }
79 +
80 + protected function register_controls()
81 + {
82 +
83 + $this->start_controls_section(
84 + 'section_chart_general',
85 + [
86 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('General', 'king-addons'),
87 + 'tab' => Controls_Manager::TAB_CONTENT,
88 + ]
89 + );
90 +
91 + $this->add_control_choose_chart_data_source();
92 +
93 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'charts', 'data_source', ['pro-csv']);
94 +
95 + $this->add_control(
96 + 'csv_source',
97 + [
98 + 'label' => esc_html__('CSV Source', 'king-addons'),
99 + 'type' => Controls_Manager::SELECT,
100 + 'default' => 'url',
101 + 'options' => [
102 + 'url' => esc_html__('Remote URL', 'king-addons'),
103 + 'file' => esc_html__('File', 'king-addons'),
104 + ],
105 + 'condition' => [
106 + 'data_source' => 'csv',
107 + ],
108 + 'frontend_available' => true,
109 + ]
110 + );
111 +
112 + $this->add_control(
113 + 'data_csv_separator',
114 + [
115 + 'label' => esc_html__('Separator', 'king-addons'),
116 + 'type' => Controls_Manager::TEXT,
117 + 'default' => ',',
118 + 'label_block' => true,
119 + 'condition' => [
120 + 'data_source' => 'csv',
121 + ],
122 + ]
123 + );
124 +
125 + $this->add_control(
126 + 'data_source_csv_url',
127 + [
128 + 'label' => esc_html__('Remote URL', 'king-addons'),
129 + 'type' => Controls_Manager::TEXT,
130 + 'dynamic' => [
131 + 'active' => true,
132 + ],
133 + 'label_block' => true,
134 + 'condition' => [
135 + 'data_source' => 'csv',
136 + 'csv_source' => 'url',
137 + ],
138 + ]
139 + );
140 +
141 + $this->add_control(
142 + 'data_source_csv_file',
143 + [
144 + 'label' => esc_html__('Upload CSV File', 'king-addons'),
145 + 'type' => Controls_Manager::MEDIA,
146 + 'dynamic' => ['
147 + active' => true,
148 + ],
149 + 'media_type' => [],
150 + 'label_block' => true,
151 + 'condition' => [
152 + 'data_source' => 'csv',
153 + 'csv_source' => 'file',
154 + ],
155 + ]
156 + );
157 +
158 + $this->add_control(
159 + 'chart_type',
160 + [
161 + 'label' => esc_html__('Chart Styles', 'king-addons'),
162 + 'type' => Controls_Manager::SELECT,
163 + 'description' => esc_html__('Doughnut, pie and polar area charts only work with custom data source', 'king-addons'),
164 + 'default' => 'bar',
165 + 'options' => [
166 + 'bar' => esc_html__('Bar Vertical', 'king-addons'),
167 + 'bar_horizontal' => esc_html__('Bar Horizontal', 'king-addons'),
168 + 'line' => esc_html__('Line', 'king-addons'),
169 + 'radar' => esc_html__('Radar', 'king-addons'),
170 + 'doughnut' => esc_html__('Doughnut', 'king-addons'),
171 + 'pie' => esc_html__('Pie', 'king-addons'),
172 + 'polarArea' => esc_html__('Polar Area', 'king-addons'),
173 + ],
174 + 'separator' => 'before'
175 + ]
176 + );
177 +
178 + $this->add_control(
179 + 'data_type',
180 + [
181 + 'label' => esc_html__('Data Grid Type', 'king-addons'),
182 + 'type' => Controls_Manager::SELECT,
183 + 'options' => [
184 + 'linear' => esc_html__('Linear', 'king-addons'),
185 + 'logarithmic' => esc_html__('Logarithmic', 'king-addons'),
186 + ],
187 + 'default' => 'linear',
188 + 'condition' => [
189 + 'chart_type' => ['bar', 'bar_horizontal', 'line']
190 + ],
191 + 'frontend_available' => true,
192 + ]
193 + );
194 +
195 + $this->add_control(
196 + 'column_width_x',
197 + [
198 + 'label' => esc_html__('Column Width', 'king-addons'),
199 + 'type' => Controls_Manager::NUMBER,
200 + 'default' => 0.5,
201 + 'step' => 0.1,
202 + 'min' => 0,
203 + 'max' => 1,
204 + 'frontend_available' => true,
205 + 'separator' => 'before',
206 + 'condition' => [
207 + 'chart_type' => ['bar', 'bar_horizontal'],
208 + ]
209 + ]
210 + );
211 +
212 + $this->add_control(
213 + 'exclude_dataset_on_click',
214 + [
215 + 'label' => esc_html__('Exclude Data on Legend Click', 'king-addons'),
216 + 'type' => Controls_Manager::SWITCHER,
217 + 'default' => 'yes',
218 + 'return_value' => 'yes',
219 + 'separator' => 'before'
220 + ]
221 + );
222 +
223 + $this->add_control(
224 + 'stacked_bar_chart',
225 + [
226 + 'label' => esc_html__('Enable Stacked Chart', 'king-addons'),
227 + 'type' => Controls_Manager::SWITCHER,
228 + 'default' => 'yes',
229 + 'return_value' => 'yes',
230 + 'condition' => [
231 + 'chart_type' => ['bar', 'bar_horizontal', 'radar', 'doughnut', 'pie']
232 + ]
233 + ]
234 + );
235 +
236 + $this->add_control(
237 + 'inner_datalabels',
238 + [
239 + 'label' => esc_html__('Show Data Values', 'king-addons'),
240 + 'type' => Controls_Manager::SWITCHER,
241 + 'default' => 'false',
242 + 'return_value' => 'true',
243 + 'condition' => [
244 + 'chart_type' => ['bar', 'bar_horizontal', 'line', '']
245 + ]
246 + ]
247 + );
248 +
249 + $this->add_control(
250 + 'enable_min_max',
251 + [
252 + 'label' => esc_html__('Min-Max Values', 'king-addons'),
253 + 'type' => Controls_Manager::SWITCHER,
254 + 'default' => 'no',
255 + 'return_value' => 'yes',
256 + 'separator' => 'before',
257 + 'condition' => [
258 + 'chart_type!' => ['doughnut', 'polarArea', 'pie'],
259 + ]
260 + ]
261 + );
262 +
263 + $this->add_control(
264 + 'min_value',
265 + [
266 + 'label' => esc_html__('Min. Value', 'king-addons'),
267 + 'type' => Controls_Manager::NUMBER,
268 + 'default' => -100,
269 + 'condition' => [
270 + 'enable_min_max' => 'yes',
271 + ]
272 + ]
273 + );
274 +
275 + $this->add_control(
276 + 'max_value',
277 + [
278 + 'label' => esc_html__('Max. Value', 'king-addons'),
279 + 'type' => Controls_Manager::NUMBER,
280 + 'default' => 100,
281 + 'condition' => [
282 + 'enable_min_max' => 'yes',
283 + ]
284 + ]
285 + );
286 +
287 + $this->add_control(
288 + 'animations_heading',
289 + [
290 + 'label' => esc_html__('Animation', 'king-addons'),
291 + 'type' => Controls_Manager::HEADING,
292 + 'separator' => 'before',
293 + ]
294 + );
295 +
296 + $this->add_control(
297 + 'chart_animation',
298 + [
299 + 'label' => esc_html__('Animation', 'king-addons'),
300 + 'type' => Controls_Manager::SWITCHER,
301 + 'default' => 'yes',
302 + 'return_value' => 'yes',
303 + 'chart_type' => ['line', 'radar']
304 + ]
305 + );
306 +
307 + $this->add_control(
308 + 'chart_animation_loop',
309 + [
310 + 'label' => esc_html__('Loop', 'king-addons'),
311 + 'type' => Controls_Manager::SWITCHER,
312 + 'default' => 'yes',
313 + 'return_value' => 'yes',
314 + 'condition' => [
315 + 'chart_animation' => 'yes',
316 + 'chart_type' => ['line', 'radar']
317 + ]
318 + ]
319 + );
320 +
321 + $this->add_control(
322 + 'chart_animation_duration',
323 + [
324 + 'label' => esc_html__('Animation Duration (ms)', 'king-addons'),
325 + 'type' => Controls_Manager::NUMBER,
326 + 'default' => 1000,
327 + 'min' => 1,
328 + 'condition' => [
329 + 'chart_animation' => 'yes',
330 + 'chart_type' => ['radar', 'line']
331 + ]
332 + ]
333 + );
334 +
335 + $this->add_control(
336 + 'animation_transition_type',
337 + [
338 + 'label' => esc_html__('Animation Timing', 'king-addons'),
339 + 'type' => Controls_Manager::SELECT,
340 + 'default' => 'linear',
341 + 'options' => [
342 + 'linear' => 'linear',
343 + 'easeInBack' => 'easeInBack',
344 + 'easeInBounce' => 'easeInBounce',
345 + 'easeInCirc' => 'easeInCirc',
346 + 'easeInCubic' => 'easeInCubic',
347 + 'easeInElastic' => 'easeInElastic',
348 + 'easeInExpo' => 'easeInExpo',
349 + 'easeInOutBack' => 'easeInOutBack',
350 + 'easeInOutBounce' => 'easeInOutBounce',
351 + 'easeInOutCirc' => 'easeInOutCirc',
352 + 'easeInOutCubic' => 'easeInOutCubic',
353 + 'easeInOutElastic' => 'easeInOutElastic',
354 + 'easeInOutExpo' => 'easeInOutExpo',
355 + 'easeInOutQuad' => 'easeInOutQuad',
356 + 'easeInOutQuart' => 'easeInOutQuart',
357 + 'easeInOutQuint' => 'easeInOutQuint',
358 + 'easeInOutSine' => 'easeInOutSine',
359 + 'easeInQuad' => 'easeInQuad',
360 + 'easeInQuart' => 'easeInQuart',
361 + 'easeInQuint' => 'easeInQuint',
362 + 'easeInSine' => 'easeInSine',
363 + 'easeOutBack' => 'easeOutBack',
364 + 'easeOutBounce' => 'easeOutBounce',
365 + 'easeOutCirc' => 'easeOutCirc',
366 + 'easeOutCubic' => 'easeOutCubic',
367 + 'easeOutElastic' => 'easeOutElastic',
368 + 'easeOutExpo' => 'easeOutExpo',
369 + 'easeOutQuad' => 'easeOutQuad',
370 + 'easeOutQuart' => 'easeOutQuart',
371 + 'easeOutQuint' => 'easeOutQuint',
372 + 'easeOutSine' => 'easeOutSine',
373 + ],
374 + 'condition' => [
375 + 'chart_animation' => 'yes',
376 + 'chart_type' => ['radar', 'line']
377 + ]
378 + ]
379 + );
380 +
381 + $this->end_controls_section();
382 +
383 + $this->start_controls_section(
384 + 'section_chart_data',
385 + [
386 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Data', 'king-addons'),
387 + 'tab' => Controls_Manager::TAB_CONTENT,
388 + ]
389 + );
390 +
391 + $this->add_control(
392 + 'charts_labels_data', [
393 + 'label' => esc_html__('Data Labels', 'king-addons'),
394 + 'type' => Controls_Manager::TEXTAREA,
395 + 'dynamic' => [
396 + 'active' => true,
397 + ],
398 + 'default' => esc_html__('January, February, March', 'king-addons'),
399 + 'description' => esc_html__('Enter the comma-separated list of values (Used only with custom data source)', 'king-addons'),
400 + 'label_block' => true,
401 + 'condition' => [
402 + 'data_source' => 'custom',
403 +
404 + ],
405 + ]
406 + );
407 +
408 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
409 + $this->add_control(
410 + 'charts_repeater_labels_data_pro_notice',
411 + [
412 + 'type' => Controls_Manager::RAW_HTML,
413 + 'raw' => 'More than 3 Data Labels are available<br> in the <strong><a href="https://kingaddons.com/pricing/?ref=kng-module-charts-settings-upgrade-pro" target="_blank">Pro version</a></strong>',
414 + 'content_classes' => 'king-addons-pro-notice',
415 + ]
416 + );
417 + }
418 +
419 + $chart_repeater_labels = new Repeater();
420 +
421 + $chart_repeater_labels->add_control(
422 + 'chart_data_label', [
423 + 'label' => esc_html__('Label', 'king-addons'),
424 + 'type' => Controls_Manager::TEXT,
425 + 'dynamic' => [
426 + 'active' => true,
427 + ],
428 + 'default' => esc_html__('Label #1', 'king-addons'),
429 + 'label_block' => true,
430 + ]
431 + );
432 +
433 + $chart_repeater_labels->add_control(
434 + 'chart_data_set', [
435 + 'label' => esc_html__('Data', 'king-addons'),
436 + 'type' => Controls_Manager::TEXT,
437 + 'dynamic' => [
438 + 'active' => true,
439 + ],
440 + 'default' => '10,23,15',
441 + 'label_block' => true,
442 + 'description' => esc_html__("Only works with custom charts. Enter comma separated data values (Shouldn't Exceed number of values provided in Data Labels option).", 'king-addons'),
443 + ]
444 + );
445 +
446 +
447 + $chart_repeater_labels->start_controls_tabs(
448 + 'chart_data_bar_background_tab'
449 + );
450 +
451 + $chart_repeater_labels->start_controls_tab(
452 + 'chart_data_bar_background_normal',
453 + [
454 + 'label' => esc_html__('Normal', 'king-addons'),
455 + ]
456 + );
457 +
458 + $chart_repeater_labels->add_control(
459 + 'chart_data_background_color', [
460 + 'label' => esc_html__('Background Color', 'king-addons'),
461 + 'type' => Controls_Manager::COLOR,
462 + 'default' => '#5B03FF',
463 + ]
464 + );
465 +
466 + $chart_repeater_labels->add_control(
467 + 'chart_data_border_color', [
468 + 'label' => esc_html__('Border Color', 'king-addons'),
469 + 'type' => Controls_Manager::COLOR,
470 + 'default' => '#5B03FF',
471 + ]
472 + );
473 +
474 + $chart_repeater_labels->end_controls_tab();
475 +
476 +
477 + $chart_repeater_labels->start_controls_tab(
478 + 'chart_data_bar_background_hover',
479 + [
480 + 'label' => esc_html__('Hover', 'king-addons'),
481 + ]
482 + );
483 + $chart_repeater_labels->add_control(
484 + 'chart_data_background_color_hover', [
485 + 'label' => esc_html__('Background Color', 'king-addons'),
486 + 'type' => Controls_Manager::COLOR,
487 + 'default' => '#7A7A7ACC'
488 + ]
489 + );
490 +
491 + $chart_repeater_labels->add_control(
492 + 'chart_data_border_color_hover', [
493 + 'label' => esc_html__('Border Color', 'king-addons'),
494 + 'type' => Controls_Manager::COLOR,
495 + 'default' => '#7A7A7ACC',
496 + ]
497 + );
498 + $chart_repeater_labels->end_controls_tab();
499 +
500 + $chart_repeater_labels->end_controls_tabs();
501 +
502 +
503 + $chart_repeater_labels->add_control(
504 + 'chart_data_border_width', [
505 + 'label' => esc_html__('Border Width', 'king-addons'),
506 + 'type' => Controls_Manager::NUMBER,
507 + 'default' => '1',
508 + ]
509 + );
510 +
511 + $this->add_control(
512 + 'charts_data_set',
513 + [
514 + 'label' => esc_html__('Set Data', 'king-addons'),
515 + 'type' => Controls_Manager::REPEATER,
516 + 'default' => [
517 + [
518 + 'chart_data_label' => esc_html__('Laptops', 'king-addons'),
519 + 'chart_data_set' => '13,20,15',
520 + 'chart_data_background_color' => '#5B03FFCC',
521 + 'chart_data_border_color' => '#5B03FFCC',
522 + 'chart_data_border_width' => 1,
523 + ],
524 + [
525 + 'chart_data_label' => esc_html__('Phones', 'king-addons'),
526 + 'chart_data_set' => '20,10,33',
527 + 'chart_data_background_color' => '#E5605BCC',
528 + 'chart_data_border_color' => '#E5605BCC',
529 + 'chart_data_border_width' => 1,
530 + ],
531 + [
532 + 'chart_data_label' => esc_html__('Other', 'king-addons'),
533 + 'chart_data_set' => '10,3,23',
534 + 'chart_data_background_color' => '#5BE560CC',
535 + 'chart_data_border_color' => '#5BE560CC',
536 + 'chart_data_border_width' => 1,
537 + ],
538 +
539 + ],
540 +
541 + 'fields' => $chart_repeater_labels->get_controls(),
542 + 'title_field' => '{{ chart_data_label }}',
543 +
544 + ]
545 + );
546 +
547 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
548 + $this->add_control(
549 + 'charts_repeater_pro_notice',
550 + [
551 + 'type' => Controls_Manager::RAW_HTML,
552 + 'raw' => 'More than 3 Items are available<br> in the <strong><a href="https://kingaddons.com/pricing/?ref=kng-module-charts-settings-upgrade-pro" target="_blank">Pro version</a></strong>',
553 + 'content_classes' => 'king-addons-pro-notice',
554 + ]
555 + );
556 + }
557 +
558 + $this->end_controls_section();
559 +
560 + $this->start_controls_section(
561 + 'section_chart_axis_r',
562 + [
563 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Axis', 'king-addons'),
564 + 'tab' => Controls_Manager::TAB_CONTENT,
565 + 'condition' => [
566 + 'chart_type' => ['radar', 'polarArea']
567 + ],
568 + ]
569 + );
570 +
571 + $this->add_control(
572 + 'r_axis_conditions',
573 + [
574 + 'label' => esc_html__('Axis', 'king-addons'),
575 + 'type' => Controls_Manager::HEADING,
576 + 'separator' => 'before'
577 + ]
578 + );
579 +
580 + $this->add_control(
581 + 'display_r_axis',
582 + [
583 + 'label' => esc_html__('Grid Lines', 'king-addons'),
584 + 'type' => Controls_Manager::SWITCHER,
585 + 'default' => 'true',
586 + 'return_value' => 'true'
587 + ]
588 + );
589 +
590 + $this->add_control(
591 + 'grid_line_width_r', [
592 + 'label' => esc_html__('Grid Line Width', 'king-addons'),
593 + 'type' => Controls_Manager::NUMBER,
594 + 'default' => '1',
595 + 'step' => 0.1,
596 + 'condition' => [
597 + 'display_r_axis' => 'true'
598 + ]
599 + ]
600 + );
601 +
602 + $this->add_control(
603 + 'display_r_ticks',
604 + [
605 + 'label' => esc_html__('Ticks (Labels)', 'king-addons'),
606 + 'type' => Controls_Manager::SWITCHER,
607 + 'default' => 'true',
608 + 'return_value' => 'true'
609 + ]
610 + );
611 +
612 + $this->add_control(
613 + 'r_step_size',
614 + [
615 + 'label' => esc_html__('Step Size', 'king-addons'),
616 + 'type' => Controls_Manager::NUMBER,
617 + 'min' => 0,
618 + 'max' => 360,
619 + 'default' => 0,
620 + 'frontend_available' => true,
621 + 'condition' => [
622 + 'display_r_ticks' => 'true'
623 + ]
624 + ]
625 + );
626 +
627 + $this->add_control(
628 + 'border_dash_length_r', [
629 + 'label' => esc_html__('Border Dash length', 'king-addons'),
630 + 'type' => Controls_Manager::NUMBER,
631 + 'default' => '1',
632 + 'separator' => 'before',
633 + ]
634 + );
635 +
636 + $this->add_control(
637 + 'border_dash_spacing_r', [
638 + 'label' => esc_html__('Border Dash spacing', 'king-addons'),
639 + 'type' => Controls_Manager::NUMBER,
640 + 'default' => '1'
641 + ]
642 + );
643 +
644 + $this->add_control(
645 + 'border_dash_offset_r', [
646 + 'label' => esc_html__('Border Dash offset', 'king-addons'),
647 + 'type' => Controls_Manager::NUMBER,
648 + 'default' => '1'
649 + ]
650 + );
651 +
652 + $this->end_controls_section();
653 +
654 + $this->start_controls_section(
655 + 'section_chart_axis',
656 + [
657 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Axis', 'king-addons'),
658 + 'tab' => Controls_Manager::TAB_CONTENT,
659 + 'condition' => [
660 + 'chart_type' => ['bar', 'bar_horizontal', 'line']
661 + ],
662 + ]
663 + );
664 +
665 + $this->add_control(
666 + 'x_axis_conditions',
667 + [
668 + 'label' => esc_html__('X-Axis', 'king-addons'),
669 + 'type' => Controls_Manager::HEADING,
670 + ]
671 + );
672 +
673 + $this->add_control(
674 + 'display_x_axis',
675 + [
676 + 'label' => esc_html__('Grid Lines', 'king-addons'),
677 + 'type' => Controls_Manager::SWITCHER,
678 + 'default' => 'true',
679 + 'return_value' => 'true',
680 + ]
681 + );
682 +
683 + $this->add_control(
684 + 'grid_line_width_x', [
685 + 'label' => esc_html__('Grid Line Width', 'king-addons'),
686 + 'type' => Controls_Manager::NUMBER,
687 + 'default' => '1',
688 + 'step' => 0.1,
689 + 'condition' => [
690 + 'display_x_axis' => 'true'
691 + ]
692 + ]
693 + );
694 +
695 + $this->add_control(
696 + 'display_x_ticks',
697 + [
698 + 'label' => esc_html__('Ticks (Labels)', 'king-addons'),
699 + 'type' => Controls_Manager::SWITCHER,
700 + 'default' => 'true',
701 + 'return_value' => 'true'
702 + ]
703 + );
704 +
705 + $this->add_control(
706 + 'x_step_size',
707 + [
708 + 'label' => esc_html__('Step Size', 'king-addons'),
709 + 'type' => Controls_Manager::NUMBER,
710 + 'min' => 0,
711 + 'max' => 360,
712 + 'default' => 0,
713 + 'frontend_available' => true,
714 + 'condition' => [
715 + 'display_x_ticks' => 'true'
716 + ]
717 + ]
718 + );
719 +
720 + $this->add_control(
721 + 'display_x_axis_title',
722 + [
723 + 'label' => esc_html__('Show Title', 'king-addons'),
724 + 'type' => Controls_Manager::SWITCHER,
725 + 'default' => 'true',
726 + 'return_value' => 'true'
727 + ]
728 + );
729 +
730 + $this->add_control(
731 + 'x_axis_title',
732 + [
733 + 'label' => esc_html__('Title', 'king-addons'),
734 + 'type' => Controls_Manager::TEXT,
735 + 'dynamic' => [
736 + 'active' => true,
737 + ],
738 + 'placeholder' => esc_html__('X-Axis', 'king-addons'),
739 + 'default' => esc_html__('X-Axis', 'king-addons'),
740 + 'condition' => [
741 + 'display_x_axis_title' => 'true'
742 + ]
743 + ]
744 + );
745 +
746 + $this->add_control(
747 + 'labels_rotation_x_axis',
748 + [
749 + 'label' => esc_html__('Ticks (Labels) Rotation', 'king-addons'),
750 + 'type' => Controls_Manager::NUMBER,
751 + 'min' => 0,
752 + 'max' => 360,
753 + 'default' => 0,
754 + 'frontend_available' => true
755 + ]
756 + );
757 +
758 + $this->add_control(
759 + 'y_axis_conditions',
760 + [
761 + 'label' => esc_html__('Y-Axis', 'king-addons'),
762 + 'type' => Controls_Manager::HEADING,
763 + 'separator' => 'before'
764 + ]
765 + );
766 +
767 + $this->add_control(
768 + 'display_y_axis',
769 + [
770 + 'label' => esc_html__('Grid Lines', 'king-addons'),
771 + 'type' => Controls_Manager::SWITCHER,
772 + 'default' => 'true',
773 + 'return_value' => 'true'
774 + ]
775 + );
776 +
777 + $this->add_control(
778 + 'grid_line_width_y', [
779 + 'label' => esc_html__('Grid Line Width', 'king-addons'),
780 + 'type' => Controls_Manager::NUMBER,
781 + 'default' => '1',
782 + 'step' => 0.1,
783 + 'condition' => [
784 + 'display_y_axis' => 'true'
785 + ]
786 + ]
787 + );
788 +
789 + $this->add_control(
790 + 'display_y_ticks',
791 + [
792 + 'label' => esc_html__('Ticks (Labels)', 'king-addons'),
793 + 'type' => Controls_Manager::SWITCHER,
794 + 'default' => 'true',
795 + 'return_value' => 'true'
796 + ]
797 + );
798 +
799 + $this->add_control(
800 + 'y_step_size',
801 + [
802 + 'label' => esc_html__('Step Size', 'king-addons'),
803 + 'type' => Controls_Manager::NUMBER,
804 + 'min' => 0,
805 + 'max' => 360,
806 + 'default' => 0,
807 + 'frontend_available' => true,
808 + 'condition' => [
809 + 'display_y_ticks' => 'true'
810 + ]
811 + ]
812 + );
813 +
814 + $this->add_control(
815 + 'display_y_axis_title',
816 + [
817 + 'label' => esc_html__('Show Title', 'king-addons'),
818 + 'type' => Controls_Manager::SWITCHER,
819 + 'default' => 'true',
820 + 'return_value' => 'true'
821 + ]
822 + );
823 +
824 + $this->add_control(
825 + 'y_axis_title',
826 + [
827 + 'label' => esc_html__('Title', 'king-addons'),
828 + 'type' => Controls_Manager::TEXT,
829 + 'dynamic' => [
830 + 'active' => true,
831 + ],
832 + 'placeholder' => esc_html__('Y-Axis', 'king-addons'),
833 + 'default' => esc_html__('Y-Axis', 'king-addons'),
834 + 'condition' => [
835 + 'display_y_axis_title' => 'true'
836 + ]
837 + ]
838 + );
839 +
840 + $this->add_control(
841 + 'labels_rotation_y_axis',
842 + [
843 + 'label' => esc_html__('Ticks (Labels) Rotation', 'king-addons'),
844 + 'type' => Controls_Manager::NUMBER,
845 + 'min' => 0,
846 + 'max' => 360,
847 + 'default' => 0,
848 + 'frontend_available' => true
849 + ]
850 + );
851 +
852 + $this->add_control(
853 + 'reverse_x',
854 + [
855 + 'label' => esc_html__('Reverse Charts', 'king-addons'),
856 + 'type' => Controls_Manager::SWITCHER,
857 + 'default' => 'no',
858 + 'return_value' => 'yes',
859 + 'separator' => 'before',
860 + 'condition' => [
861 + 'show_chart_legend' => 'yes',
862 + 'chart_type' => 'bar_horizontal'
863 + ]
864 + ]
865 + );
866 +
867 + $this->add_control(
868 + 'reverse_y',
869 + [
870 + 'label' => esc_html__('Reverse Charts', 'king-addons'),
871 + 'type' => Controls_Manager::SWITCHER,
872 + 'default' => 'no',
873 + 'return_value' => 'yes',
874 + 'separator' => 'before',
875 + 'condition' => [
876 + 'show_chart_legend' => 'yes',
877 + 'chart_type' => ['bar', 'line']
878 + ]
879 + ]
880 + );
881 +
882 + $this->add_control(
883 + 'border_dash_length', [
884 + 'label' => esc_html__('Border Dash length', 'king-addons'),
885 + 'type' => Controls_Manager::NUMBER,
886 + 'default' => '1',
887 + 'separator' => 'before',
888 +
889 + 'conditions' => [
890 + 'relation' => 'or',
891 + 'terms' => [
892 + [
893 + 'name' => 'display_x_axis',
894 + 'operator' => '==',
895 + 'value' => 'true'
896 + ],
897 + [
898 + 'name' => 'display_y_axis',
899 + 'operator' => '==',
900 + 'value' => 'true'
901 + ]
902 + ]
903 + ]
904 + ]
905 + );
906 +
907 + $this->add_control(
908 + 'border_dash_spacing', [
909 + 'label' => esc_html__('Border Dash spacing', 'king-addons'),
910 + 'type' => Controls_Manager::NUMBER,
911 + 'default' => '1',
912 +
913 + 'conditions' => [
914 + 'relation' => 'or',
915 + 'terms' => [
916 + [
917 + 'name' => 'display_x_axis',
918 + 'operator' => '==',
919 + 'value' => 'true'
920 + ],
921 + [
922 + 'name' => 'display_y_axis',
923 + 'operator' => '==',
924 + 'value' => 'true'
925 + ]
926 + ]
927 + ]
928 + ]
929 + );
930 +
931 + $this->add_control(
932 + 'border_dash_offset', [
933 + 'label' => esc_html__('Border Dash offset', 'king-addons'),
934 + 'type' => Controls_Manager::NUMBER,
935 + 'default' => '1',
936 +
937 + 'conditions' => [
938 + 'relation' => 'or',
939 + 'terms' => [
940 + [
941 + 'name' => 'display_x_axis',
942 + 'operator' => '==',
943 + 'value' => 'true'
944 + ],
945 + [
946 + 'name' => 'display_y_axis',
947 + 'operator' => '==',
948 + 'value' => 'true'
949 + ]
950 + ]
951 + ]
952 + ]
953 + );
954 +
955 + $this->end_controls_section();
956 +
957 + $this->start_controls_section(
958 + 'section_chart_title',
959 + [
960 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Title', 'king-addons'),
961 + 'tab' => Controls_Manager::TAB_CONTENT,
962 + ]
963 + );
964 +
965 + $this->add_control(
966 + 'show_chart_title',
967 + [
968 + 'label' => esc_html__('Show Title', 'king-addons'),
969 + 'type' => Controls_Manager::SWITCHER,
970 + 'return_value' => 'yes'
971 + ]
972 + );
973 +
974 + $this->add_control(
975 + 'chart_title',
976 + [
977 + 'label' => esc_html__('Title', 'king-addons'),
978 + 'type' => Controls_Manager::TEXT,
979 + 'dynamic' => [
980 + 'active' => true,
981 + ],
982 + 'placeholder' => esc_html__('To Be Applied', 'king-addons'),
983 + 'default' => esc_html__('To Be Applied', 'king-addons'),
984 + 'condition' => [
985 + 'show_chart_title' => 'yes',
986 + ],
987 + ]
988 + );
989 +
990 + $this->add_control(
991 + 'chart_title_position',
992 + [
993 + 'label' => esc_html__('Position', 'king-addons'),
994 + 'type' => Controls_Manager::SELECT,
995 + 'default' => 'top',
996 + 'label_block' => false,
997 + 'options' => [
998 + 'top' => esc_html__('Top', 'king-addons'),
999 + 'right' => esc_html__('Right', 'king-addons'),
1000 + 'bottom' => esc_html__('Bottom', 'king-addons'),
1001 + 'left' => esc_html__('Left', 'king-addons'),
1002 +
1003 + ],
1004 + 'condition' => [
1005 + 'show_chart_title' => 'yes',
1006 + ]
1007 + ]
1008 + );
1009 +
1010 + $this->add_control(
1011 + 'chart_title_align',
1012 + [
1013 + 'label' => esc_html__('Align', 'king-addons'),
1014 + 'type' => Controls_Manager::SELECT,
1015 + 'default' => 'center',
1016 + 'label_block' => false,
1017 + 'options' => [
1018 + 'start' => esc_html__('Start', 'king-addons'),
1019 + 'center' => esc_html__('Center', 'king-addons'),
1020 + 'end' => esc_html__('End', 'king-addons'),
1021 + ],
1022 + 'condition' => [
1023 + 'show_chart_title' => 'yes',
1024 + ]
1025 + ]
1026 + );
1027 +
1028 + $this->end_controls_section();
1029 +
1030 + $this->start_controls_section(
1031 + 'section_chart_legend',
1032 + [
1033 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Legends', 'king-addons'),
1034 + 'tab' => Controls_Manager::TAB_CONTENT,
1035 + ]
1036 + );
1037 +
1038 + $this->add_control(
1039 + 'show_chart_legend',
1040 + [
1041 + 'label' => esc_html__('Show Legends', 'king-addons'),
1042 + 'type' => Controls_Manager::SWITCHER,
1043 + 'default' => 'yes',
1044 + 'return_value' => 'yes',
1045 + ]
1046 + );
1047 +
1048 + $this->add_control(
1049 + 'reverse_legend',
1050 + [
1051 + 'label' => esc_html__('Reverse', 'king-addons'),
1052 + 'type' => Controls_Manager::SWITCHER,
1053 + 'default' => 'no',
1054 + 'return_value' => 'yes',
1055 + 'condition' => [
1056 + 'show_chart_legend' => 'yes',
1057 + ]
1058 + ]
1059 + );
1060 +
1061 + $this->add_control(
1062 + 'charts_legend_shape',
1063 + [
1064 + 'label' => esc_html__('Shape', 'king-addons'),
1065 + 'type' => Controls_Manager::SELECT,
1066 + 'default' => 'rectangle',
1067 + 'label_block' => false,
1068 + 'render_type' => 'template',
1069 + 'options' => [
1070 + 'rectangle' => esc_html__('Rectangle', 'king-addons'),
1071 + 'point' => esc_html__('Point', 'king-addons'),
1072 + ],
1073 + 'condition' => [
1074 + 'show_chart_legend' => 'yes',
1075 + ]
1076 + ]
1077 + );
1078 +
1079 + $this->add_control(
1080 + 'charts_legend_position',
1081 + [
1082 + 'label' => esc_html__('Position', 'king-addons'),
1083 + 'type' => Controls_Manager::SELECT,
1084 + 'default' => 'top',
1085 + 'label_block' => false,
1086 + 'options' => [
1087 + 'top' => esc_html__('Top', 'king-addons'),
1088 + 'right' => esc_html__('Right', 'king-addons'),
1089 + 'bottom' => esc_html__('Bottom', 'king-addons'),
1090 + 'left' => esc_html__('Left', 'king-addons'),
1091 + 'chartArea' => esc_html__('chartArea', 'king-addons'),
1092 + ],
1093 + 'condition' => [
1094 + 'show_chart_legend' => 'yes',
1095 + ]
1096 + ]
1097 + );
1098 +
1099 + $this->add_control(
1100 + 'charts_legend_align',
1101 + [
1102 + 'label' => esc_html__('Align', 'king-addons'),
1103 + 'type' => Controls_Manager::SELECT,
1104 + 'default' => 'center',
1105 + 'label_block' => false,
1106 + 'options' => [
1107 + 'start' => esc_html__('Start', 'king-addons'),
1108 + 'center' => esc_html__('Center', 'king-addons'),
1109 + 'end' => esc_html__('End', 'king-addons'),
1110 + ],
1111 + 'condition' => [
1112 + 'show_chart_legend' => 'yes',
1113 + ]
1114 + ]
1115 + );
1116 +
1117 + $this->end_controls_section();
1118 +
1119 + $this->start_controls_section(
1120 + 'section_chart_tooltip',
1121 + [
1122 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Tooltip', 'king-addons'),
1123 + 'tab' => Controls_Manager::TAB_CONTENT,
1124 + ]
1125 + );
1126 +
1127 + $this->add_control(
1128 + 'show_chart_tooltip',
1129 + [
1130 + 'label' => esc_html__('Show Tooltip', 'king-addons'),
1131 + 'type' => Controls_Manager::SWITCHER,
1132 + 'default' => 'yes',
1133 + 'return_value' => 'yes'
1134 + ]
1135 + );
1136 +
1137 + $this->add_control(
1138 + 'tooltips_percent',
1139 + [
1140 + 'label' => esc_html__('Convert Values to Percents', 'king-addons'),
1141 + 'type' => Controls_Manager::SWITCHER,
1142 + 'return_value' => 'true',
1143 + 'default' => 'true',
1144 + 'frontend_available' => true,
1145 + 'condition' => [
1146 + 'show_chart_tooltip' => 'yes'
1147 + ]
1148 + ]
1149 + );
1150 +
1151 + $this->add_control(
1152 + 'trigger_tooltip_on',
1153 + [
1154 + 'label' => esc_html__('Show Tooltip On', 'king-addons'),
1155 + 'type' => Controls_Manager::SELECT,
1156 + 'default' => 'mousemove',
1157 + 'options' => [
1158 + 'mousemove' => esc_html__('Hover', 'king-addons'),
1159 + 'click' => esc_html__('Click', 'king-addons'),
1160 + ],
1161 + 'condition' => [
1162 + 'show_chart_tooltip' => 'yes'
1163 + ]
1164 + ]
1165 + );
1166 +
1167 + $this->add_control(
1168 + 'chart_interaction_mode',
1169 + [
1170 + 'label' => esc_html__('Interaction Mode', 'king-addons'),
1171 + 'type' => Controls_Manager::SELECT,
1172 + 'default' => 'point',
1173 + 'options' => [
1174 +
1175 + 'point' => esc_html__('Point', 'king-addons'),
1176 + 'index' => esc_html__('Index', 'king-addons'),
1177 + 'dataset' => esc_html__('Dataset', 'king-addons'),
1178 + ],
1179 + 'condition' => [
1180 + 'show_chart_tooltip' => 'yes'
1181 + ]
1182 + ]
1183 + );
1184 +
1185 + $this->add_control(
1186 + 'chart_tooltip_position',
1187 + [
1188 + 'label' => esc_html__('Position', 'king-addons'),
1189 + 'type' => Controls_Manager::SELECT,
1190 + 'default' => 'nearest',
1191 + 'options' => [
1192 + 'nearest' => esc_html__('Nearest', 'king-addons'),
1193 + 'average' => esc_html__('Average', 'king-addons'),
1194 + ],
1195 + 'condition' => [
1196 + 'show_chart_tooltip' => 'yes'
1197 + ]
1198 + ]
1199 + );
1200 +
1201 + $this->end_controls_section();
1202 +
1203 + $this->start_controls_section(
1204 + 'section_chart_lines',
1205 + [
1206 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Lines', 'king-addons'),
1207 + 'tab' => Controls_Manager::TAB_CONTENT,
1208 + 'condition' => [
1209 + 'chart_type' => ['line', 'radar'],
1210 + ]
1211 + ]
1212 + );
1213 +
1214 + $this->add_control(
1215 + 'show_lines',
1216 + [
1217 + 'label' => esc_html__('Show Lines', 'king-addons'),
1218 + 'type' => Controls_Manager::SWITCHER,
1219 + 'default' => 'yes',
1220 + 'return_value' => 'yes',
1221 + 'separator' => 'before',
1222 + ]
1223 + );
1224 +
1225 + $this->add_control(
1226 + 'chart_type_line_fill',
1227 + [
1228 + 'label' => esc_html__('Show Background Fill', 'king-addons'),
1229 + 'type' => Controls_Manager::SWITCHER,
1230 + 'default' => 'yes',
1231 + 'return_value' => 'yes',
1232 + 'condition' => [
1233 + 'chart_type!' => ['bar', 'bar_horizontal'],
1234 + ]
1235 + ]
1236 + );
1237 +
1238 + $this->add_control(
1239 + 'line_dots',
1240 + [
1241 + 'label' => esc_html__('Show Dots', 'king-addons'),
1242 + 'type' => Controls_Manager::SWITCHER,
1243 + 'default' => 'yes',
1244 + 'return_value' => 'yes',
1245 + 'condition' => [
1246 + 'chart_type!' => ['bar', 'bar_horizontal'],
1247 + ]
1248 + ]
1249 + );
1250 +
1251 + $this->add_responsive_control(
1252 + 'line_dots_radius',
1253 + [
1254 + 'label' => esc_html__('Dots Size', 'king-addons'),
1255 + 'type' => Controls_Manager::SLIDER,
1256 + 'devices' => ['desktop', 'mobile'],
1257 + 'exclude' => ['tablet'],
1258 + 'range' => [
1259 + 'px' => [
1260 + 'min' => 0,
1261 + 'max' => 50,
1262 + ],
1263 + ],
1264 + 'size_units' => ['px'],
1265 + 'default' => [
1266 + 'unit' => 'px',
1267 + 'size' => 10,
1268 + ],
1269 + 'mobile_default' => [
1270 + 'unit' => 'px',
1271 + 'size' => 5
1272 + ],
1273 + 'condition' => [
1274 + 'chart_type!' => ['bar', 'bar_horizontal'],
1275 + 'line_dots' => 'yes',
1276 + ]
1277 + ]
1278 + );
1279 +
1280 + $this->end_controls_section();
1281 +
1282 + $this->start_controls_section(
1283 + 'chart_section_style_res',
1284 + [
1285 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Responsive', 'king-addons'),
1286 + 'tab' => Controls_Manager::TAB_CONTENT,
1287 + ]
1288 + );
1289 +
1290 + $this->add_control(
1291 + 'responsive_chart',
1292 + [
1293 + 'label' => esc_html__('Responsive Layout', 'king-addons'),
1294 + 'description' => esc_html__('Enables scrollbar on tablet and mobile screens', 'king-addons'),
1295 + 'default' => 'yes',
1296 + 'type' => Controls_Manager::SWITCHER,
1297 + 'selectors' => [
1298 + '{{WRAPPER}} .king-addons-charts-container' => 'overflow: auto;',
1299 + '{{WRAPPER}} .king-addons-charts-wrapper' => 'position: relative; margin: 0 auto;',
1300 + ],
1301 + ]
1302 + );
1303 +
1304 +
1305 + $this->add_responsive_control(
1306 + 'chart_res_width',
1307 + [
1308 + 'label' => esc_html__('Min Width (px)', 'king-addons'),
1309 + 'type' => Controls_Manager::SLIDER,
1310 + 'range' => [
1311 + 'px' => [
1312 + 'min' => 0,
1313 + 'max' => 1600
1314 + ]
1315 + ],
1316 + 'default' => [
1317 + 'size' => 800,
1318 + ],
1319 + 'selectors' => [
1320 + '{{WRAPPER}} .king-addons-charts-wrapper' => 'min-width: {{SIZE}}px;',
1321 + ],
1322 + 'separator' => 'before',
1323 + 'condition' => [
1324 + 'responsive_chart' => 'yes',
1325 + ],
1326 + ]
1327 + );
1328 +
1329 +
1330 + $this->add_responsive_control(
1331 + 'chart_res_height',
1332 + [
1333 + 'label' => esc_html__('Min Height (px)', 'king-addons'),
1334 + 'type' => Controls_Manager::SLIDER,
1335 + 'range' => [
1336 + 'px' => [
1337 + 'min' => 0,
1338 + 'max' => 1600
1339 + ]
1340 + ],
1341 + 'default' => [
1342 + 'size' => 400,
1343 + ],
1344 + 'selectors' => [
1345 + '{{WRAPPER}} .king-addons-charts-wrapper' => 'min-height: {{SIZE}}px;',
1346 + ],
1347 + 'condition' => [
1348 + 'responsive_chart' => 'yes',
1349 + ],
1350 + ]
1351 + );
1352 +
1353 + $this->end_controls_section();
1354 +
1355 + Core::renderProFeaturesSection($this, '', Controls_Manager::RAW_HTML, 'charts', [
1356 + 'Upload CSV File',
1357 + 'Import CSV File from URL',
1358 + 'Import Published Google Sheets',
1359 + 'Add Unlimited Chart Items',
1360 + 'Add Unlimited Data Labels'
1361 + ]);
1362 +
1363 + $this->start_controls_section(
1364 + 'section_datalabels_styles',
1365 + [
1366 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Data Values', 'king-addons'),
1367 + 'tab' => Controls_Manager::TAB_STYLE,
1368 + 'condition' => [
1369 + 'inner_datalabels' => 'true'
1370 + ]
1371 + ]
1372 + );
1373 +
1374 + $this->add_control(
1375 + 'inner_datalabels_color', [
1376 + 'label' => esc_html__('Color', 'king-addons'),
1377 + 'type' => Controls_Manager::COLOR,
1378 + 'default' => '#FFF',
1379 + ]
1380 + );
1381 +
1382 + $this->add_control(
1383 + 'inner_datalabels_font_family',
1384 + [
1385 + 'label' => esc_html__('Font Family', 'king-addons'),
1386 + 'type' => Controls_Manager::FONT,
1387 + 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1388 + 'default' => 'Arial',
1389 + ]
1390 + );
1391 +
1392 + $this->add_control(
1393 + 'inner_datalabels_font_style',
1394 + [
1395 + 'label' => esc_html__('Font Style', 'king-addons'),
1396 + 'type' => Controls_Manager::SELECT,
1397 + 'default' => 'normal',
1398 + 'options' => [
1399 + 'normal' => 'Normal',
1400 + 'italic' => 'Italic',
1401 + 'oblique' => 'Oblique',
1402 + ],
1403 +
1404 + ]
1405 + );
1406 +
1407 + $this->add_control(
1408 + 'inner_datalabels_font_weight',
1409 + [
1410 + 'label' => esc_html__('Font Weight ', 'king-addons'),
1411 + 'type' => Controls_Manager::NUMBER,
1412 + 'min' => 0,
1413 + 'default' => 600,
1414 + 'frontend_available' => true
1415 + ]
1416 + );
1417 +
1418 + $this->add_control(
1419 + 'inner_datalabels_font_size',
1420 + [
1421 + 'label' => esc_html__('Font Size', 'king-addons'),
1422 + 'type' => Controls_Manager::SLIDER,
1423 + 'size_units' => ['px'],
1424 + 'range' => [
1425 + 'px' => [
1426 + 'min' => 10,
1427 + 'max' => 100,
1428 + ],
1429 + ],
1430 + 'default' => [
1431 + 'unit' => 'px',
1432 + 'size' => 14,
1433 + ]
1434 + ]
1435 + );
1436 +
1437 + $this->end_controls_section();
1438 +
1439 + $this->start_controls_section(
1440 + 'section_styles_chart_axis_r',
1441 + [
1442 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Axis', 'king-addons'),
1443 + 'tab' => Controls_Manager::TAB_STYLE,
1444 + 'condition' => [
1445 + 'chart_type' => ['radar', 'polarArea']
1446 + ],
1447 + ]
1448 + );
1449 +
1450 + $this->add_control(
1451 + 'r_axis_angle_lines_heading',
1452 + [
1453 + 'label' => esc_html__('Angle Lines', 'king-addons'),
1454 + 'type' => Controls_Manager::HEADING,
1455 + ]
1456 + );
1457 +
1458 + $this->add_control(
1459 + 'angle_lines_color', [
1460 + 'label' => esc_html__('Color', 'king-addons'),
1461 + 'type' => Controls_Manager::COLOR,
1462 + 'default' => '#E7E7E7'
1463 + ]
1464 + );
1465 +
1466 + $this->add_control(
1467 + 'r_axis_grid_lines_heading',
1468 + [
1469 + 'label' => esc_html__('Grid Lines', 'king-addons'),
1470 + 'type' => Controls_Manager::HEADING,
1471 + 'separator' => 'before',
1472 + ]
1473 + );
1474 +
1475 + $this->add_control(
1476 + 'axis_grid_line_color_r', [
1477 + 'label' => esc_html__('Color', 'king-addons'),
1478 + 'type' => Controls_Manager::COLOR,
1479 + 'default' => '#E7E7E7'
1480 + ]
1481 + );
1482 +
1483 + $this->add_control(
1484 + 'axis_labels_heading',
1485 + [
1486 + 'label' => esc_html__('Axis Labels', 'king-addons'),
1487 + 'type' => Controls_Manager::HEADING,
1488 + 'separator' => 'before',
1489 + ]
1490 + );
1491 +
1492 + $this->add_control(
1493 + 'axis_labels_color', [
1494 + 'label' => esc_html__('Color', 'king-addons'),
1495 + 'type' => Controls_Manager::COLOR,
1496 + 'default' => '#222222'
1497 + ]
1498 + );
1499 +
1500 + $this->add_control(
1501 + 'axis_labels_bg_color', [
1502 + 'label' => esc_html__('Background Color', 'king-addons'),
1503 + 'type' => Controls_Manager::COLOR,
1504 + 'default' => '#B2B2B200'
1505 + ]
1506 + );
1507 +
1508 + $this->add_control(
1509 + 'axis_labels_padding',
1510 + [
1511 + 'label' => esc_html__('Padding', 'king-addons'),
1512 + 'type' => Controls_Manager::SLIDER,
1513 + 'size_units' => ['px'],
1514 + 'range' => [
1515 + 'px' => [
1516 + 'min' => 0,
1517 + 'max' => 100,
1518 + ],
1519 + ],
1520 + 'default' => [
1521 + 'unit' => 'px',
1522 + 'size' => 5,
1523 + ],
1524 + ]
1525 + );
1526 +
1527 + $this->add_control(
1528 + 'chart_point_labels_heading',
1529 + [
1530 + 'label' => esc_html__('Ticks', 'king-addons'),
1531 + 'type' => Controls_Manager::HEADING,
1532 + 'separator' => 'before'
1533 + ]
1534 + );
1535 +
1536 + $this->add_control(
1537 + 'chart_point_labels_color_r', [
1538 + 'label' => esc_html__('Color', 'king-addons'),
1539 + 'type' => Controls_Manager::COLOR,
1540 + 'default' => '#B2B2B2'
1541 + ]
1542 + );
1543 +
1544 + $this->add_control(
1545 + 'point_labels_font_family_r',
1546 + [
1547 + 'label' => esc_html__('Font Family', 'king-addons'),
1548 + 'type' => Controls_Manager::FONT,
1549 + 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1550 + 'default' => 'Arial',
1551 + ]
1552 + );
1553 +
1554 + $this->add_control(
1555 + 'point_labels_font_style_r',
1556 + [
1557 + 'label' => esc_html__('Font Style', 'king-addons'),
1558 + 'type' => Controls_Manager::SELECT,
1559 + 'default' => 'normal',
1560 + 'options' => [
1561 + 'normal' => 'Normal',
1562 + 'italic' => 'Italic',
1563 + 'oblique' => 'Oblique',
1564 + ],
1565 +
1566 + ]
1567 + );
1568 +
1569 + $this->add_control(
1570 + 'point_labels_font_weight_r',
1571 + [
1572 + 'label' => esc_html__('Font Weight ', 'king-addons'),
1573 + 'type' => Controls_Manager::NUMBER,
1574 + 'min' => 0,
1575 + 'default' => 600,
1576 + 'frontend_available' => true,
1577 + ]
1578 + );
1579 +
1580 + $this->add_control(
1581 + 'point_labels_font_size_r',
1582 + [
1583 + 'label' => esc_html__('Font Size', 'king-addons'),
1584 + 'type' => Controls_Manager::SLIDER,
1585 + 'size_units' => ['px'],
1586 + 'range' => [
1587 + 'px' => [
1588 + 'min' => 10,
1589 + 'max' => 100,
1590 + ],
1591 + ],
1592 + 'default' => [
1593 + 'unit' => 'px',
1594 + 'size' => 14,
1595 + ],
1596 + ]
1597 + );
1598 +
1599 + $this->end_controls_section();
1600 +
1601 + $this->start_controls_section(
1602 + 'section_chart_axis_styles',
1603 + [
1604 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Axis', 'king-addons'),
1605 + 'tab' => Controls_Manager::TAB_STYLE,
1606 + 'condition' => [
1607 + 'chart_type' => ['bar', 'bar_horizontal', 'line']
1608 + ],
1609 + ]
1610 + );
1611 +
1612 + $this->add_control(
1613 + 'x_axis_grid_lines_heading',
1614 + [
1615 + 'label' => esc_html__('Grid Lines (X)', 'king-addons'),
1616 + 'type' => Controls_Manager::HEADING,
1617 + 'separator' => 'before',
1618 + ]
1619 + );
1620 +
1621 + $this->add_control(
1622 + 'axis_grid_line_color_x', [
1623 + 'label' => esc_html__('Color (X)', 'king-addons'),
1624 + 'type' => Controls_Manager::COLOR,
1625 + 'default' => '#999999'
1626 + ]
1627 + );
1628 +
1629 + $this->add_control(
1630 + 'y_axis_grid_lines_heading',
1631 + [
1632 + 'label' => esc_html__('Grid Lines (Y)', 'king-addons'),
1633 + 'type' => Controls_Manager::HEADING,
1634 + 'separator' => 'before',
1635 + ]
1636 + );
1637 +
1638 + $this->add_control(
1639 + 'axis_grid_line_color_y', [
1640 + 'label' => esc_html__('Color (Y)', 'king-addons'),
1641 + 'type' => Controls_Manager::COLOR,
1642 + 'default' => '#999999'
1643 + ]
1644 + );
1645 +
1646 + $this->add_control(
1647 + 'x_axis_title_styles_heading',
1648 + [
1649 + 'label' => esc_html__('X-Title', 'king-addons'),
1650 + 'type' => Controls_Manager::HEADING,
1651 + 'separator' => 'before',
1652 + ]
1653 + );
1654 +
1655 + $this->add_control(
1656 + 'axis_title_color_x', [
1657 + 'label' => esc_html__('Color (X)', 'king-addons'),
1658 + 'type' => Controls_Manager::COLOR,
1659 + 'default' => '#C0C0C0'
1660 + ]
1661 + );
1662 +
1663 + $this->add_control(
1664 + 'axis_title_font_family_x',
1665 + [
1666 + 'label' => esc_html__('Font Family', 'king-addons'),
1667 + 'type' => Controls_Manager::FONT,
1668 + 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1669 + 'default' => 'Arial',
1670 + ]
1671 + );
1672 +
1673 + $this->add_control(
1674 + 'axis_title_font_style_x',
1675 + [
1676 + 'label' => esc_html__('Font Style', 'king-addons'),
1677 + 'type' => Controls_Manager::SELECT,
1678 + 'default' => 'normal',
1679 + 'options' => [
1680 + 'normal' => 'Normal',
1681 + 'italic' => 'Italic',
1682 + 'oblique' => 'Oblique',
1683 + ],
1684 +
1685 + ]
1686 + );
1687 +
1688 + $this->add_control(
1689 + 'axis_title_font_weight_x',
1690 + [
1691 + 'label' => esc_html__('Font Weight ', 'king-addons'),
1692 + 'type' => Controls_Manager::NUMBER,
1693 + 'min' => 0,
1694 + 'default' => 600,
1695 + 'frontend_available' => true,
1696 + ]
1697 + );
1698 +
1699 + $this->add_control(
1700 + 'axis_title_font_size_x',
1701 + [
1702 + 'label' => esc_html__('Font Size', 'king-addons'),
1703 + 'type' => Controls_Manager::SLIDER,
1704 + 'size_units' => ['px'],
1705 + 'range' => [
1706 + 'px' => [
1707 + 'min' => 10,
1708 + 'max' => 100,
1709 + ],
1710 + ],
1711 + 'default' => [
1712 + 'unit' => 'px',
1713 + 'size' => 14,
1714 + ],
1715 + ]
1716 + );
1717 +
1718 + $this->add_control(
1719 + 'y_axis_title_styles_heading',
1720 + [
1721 + 'label' => esc_html__('Y-Title', 'king-addons'),
1722 + 'type' => Controls_Manager::HEADING,
1723 + 'separator' => 'before',
1724 + ]
1725 + );
1726 +
1727 + $this->add_control(
1728 + 'axis_title_color_y', [
1729 + 'label' => esc_html__('Color (Y)', 'king-addons'),
1730 + 'type' => Controls_Manager::COLOR,
1731 + 'default' => '#C0C0C0'
1732 + ]
1733 + );
1734 +
1735 + $this->add_control(
1736 + 'axis_title_font_family_y',
1737 + [
1738 + 'label' => esc_html__('Font Family', 'king-addons'),
1739 + 'type' => Controls_Manager::FONT,
1740 + 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1741 + 'default' => 'Arial',
1742 + ]
1743 + );
1744 +
1745 + $this->add_control(
1746 + 'axis_title_font_style_y',
1747 + [
1748 + 'label' => esc_html__('Font Style', 'king-addons'),
1749 + 'type' => Controls_Manager::SELECT,
1750 + 'default' => 'normal',
1751 + 'options' => [
1752 + 'normal' => 'Normal',
1753 + 'italic' => 'Italic',
1754 + 'oblique' => 'Oblique',
1755 + ],
1756 +
1757 + ]
1758 + );
1759 +
1760 + $this->add_control(
1761 + 'axis_title_font_weight_y',
1762 + [
1763 + 'label' => esc_html__('Font Weight ', 'king-addons'),
1764 + 'type' => Controls_Manager::NUMBER,
1765 + 'min' => 0,
1766 + 'default' => 600,
1767 + 'frontend_available' => true,
1768 + ]
1769 + );
1770 +
1771 + $this->add_control(
1772 + 'axis_title_font_size_y',
1773 + [
1774 + 'label' => esc_html__('Font Size', 'king-addons'),
1775 + 'type' => Controls_Manager::SLIDER,
1776 + 'size_units' => ['px'],
1777 + 'range' => [
1778 + 'px' => [
1779 + 'min' => 10,
1780 + 'max' => 100,
1781 + ],
1782 + ],
1783 + 'default' => [
1784 + 'unit' => 'px',
1785 + 'size' => 14,
1786 + ],
1787 + ]
1788 + );
1789 +
1790 + $this->add_control(
1791 + 'x_ticks_styles_heading',
1792 + [
1793 + 'label' => esc_html__('X-Ticks', 'king-addons'),
1794 + 'type' => Controls_Manager::HEADING,
1795 + 'separator' => 'before',
1796 + ]
1797 + );
1798 +
1799 + $this->add_control(
1800 + 'chart_ticks_color_x', [
1801 + 'label' => esc_html__('Ticks Color (X)', 'king-addons'),
1802 + 'type' => Controls_Manager::COLOR,
1803 + ]
1804 + );
1805 +
1806 + $this->add_control(
1807 + 'ticks_font_family_x',
1808 + [
1809 + 'label' => esc_html__('Font Family', 'king-addons'),
1810 + 'type' => Controls_Manager::FONT,
1811 + 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1812 + 'default' => 'Arial',
1813 + ]
1814 + );
1815 +
1816 + $this->add_control(
1817 + 'ticks_font_style_x',
1818 + [
1819 + 'label' => esc_html__('Font Style', 'king-addons'),
1820 + 'type' => Controls_Manager::SELECT,
1821 + 'default' => 'normal',
1822 + 'options' => [
1823 + 'normal' => 'Normal',
1824 + 'italic' => 'Italic',
1825 + 'oblique' => 'Oblique',
1826 + ],
1827 +
1828 + ]
1829 + );
1830 +
1831 + $this->add_control(
1832 + 'ticks_font_weight_x',
1833 + [
1834 + 'label' => esc_html__('Font Weight ', 'king-addons'),
1835 + 'type' => Controls_Manager::NUMBER,
1836 + 'min' => 0,
1837 + 'default' => 600,
1838 + 'frontend_available' => true,
1839 + ]
1840 + );
1841 +
1842 + $this->add_control(
1843 + 'ticks_font_size_x',
1844 + [
1845 + 'label' => esc_html__('Font Size', 'king-addons'),
1846 + 'type' => Controls_Manager::SLIDER,
1847 + 'size_units' => ['px'],
1848 + 'range' => [
1849 + 'px' => [
1850 + 'min' => 10,
1851 + 'max' => 100,
1852 + ],
1853 + ],
1854 + 'default' => [
1855 + 'unit' => 'px',
1856 + 'size' => 17,
1857 + ],
1858 + ]
1859 + );
1860 +
1861 + $this->add_control(
1862 + 'ticks_padding_x',
1863 + [
1864 + 'label' => esc_html__('Distance', 'king-addons'),
1865 + 'type' => Controls_Manager::SLIDER,
1866 + 'range' => [
1867 + 'px' => [
1868 + 'min' => 0,
1869 + 'max' => 50,
1870 + ],
1871 + ],
1872 + 'size_units' => ['px'],
1873 + 'default' => [
1874 + 'unit' => 'px',
1875 + 'size' => 10,
1876 + ]
1877 + ]
1878 + );
1879 +
1880 + $this->add_control(
1881 + 'y_ticks_styles_heading',
1882 + [
1883 + 'label' => esc_html__('Y-Ticks', 'king-addons'),
1884 + 'type' => Controls_Manager::HEADING,
1885 + 'separator' => 'before',
1886 + ]
1887 + );
1888 +
1889 + $this->add_control(
1890 + 'chart_ticks_color_y', [
1891 + 'label' => esc_html__('Ticks Color (Y)', 'king-addons'),
1892 + 'type' => Controls_Manager::COLOR,
1893 + ]
1894 + );
1895 +
1896 + $this->add_control(
1897 + 'ticks_font_family_y',
1898 + [
1899 + 'label' => esc_html__('Font Family', 'king-addons'),
1900 + 'type' => Controls_Manager::FONT,
1901 + 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1902 + 'default' => 'Arial',
1903 + ]
1904 + );
1905 +
1906 + $this->add_control(
1907 + 'ticks_font_style_y',
1908 + [
1909 + 'label' => esc_html__('Font Style', 'king-addons'),
1910 + 'type' => Controls_Manager::SELECT,
1911 + 'default' => 'normal',
1912 + 'options' => [
1913 + 'normal' => 'Normal',
1914 + 'italic' => 'Italic',
1915 + 'oblique' => 'Oblique',
1916 + ],
1917 +
1918 + ]
1919 + );
1920 +
1921 + $this->add_control(
1922 + 'ticks_font_weight_y',
1923 + [
1924 + 'label' => esc_html__('Font Weight ', 'king-addons'),
1925 + 'type' => Controls_Manager::NUMBER,
1926 + 'min' => 0,
1927 + 'default' => 600,
1928 + 'frontend_available' => true,
1929 + ]
1930 + );
1931 +
1932 + $this->add_control(
1933 + 'ticks_font_size_y',
1934 + [
1935 + 'label' => esc_html__('Font Size', 'king-addons'),
1936 + 'type' => Controls_Manager::SLIDER,
1937 + 'size_units' => ['px'],
1938 + 'range' => [
1939 + 'px' => [
1940 + 'min' => 10,
1941 + 'max' => 100,
1942 + ],
1943 + ],
1944 + 'default' => [
1945 + 'unit' => 'px',
1946 + 'size' => 14,
1947 + ],
1948 + ]
1949 + );
1950 +
1951 + $this->add_control(
1952 + 'ticks_padding_y',
1953 + [
1954 + 'label' => esc_html__('Distance', 'king-addons'),
1955 + 'type' => Controls_Manager::SLIDER,
1956 + 'range' => [
1957 + 'px' => [
1958 + 'min' => 0,
1959 + 'max' => 50,
1960 + ],
1961 + ],
1962 + 'size_units' => ['px'],
1963 + 'default' => [
1964 + 'unit' => 'px',
1965 + 'size' => 10,
1966 + ]
1967 + ]
1968 + );
1969 +
1970 + $this->end_controls_section();
1971 +
1972 + $this->start_controls_section(
1973 + 'section_chart_title_styles',
1974 + [
1975 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Title', 'king-addons'),
1976 + 'tab' => Controls_Manager::TAB_STYLE,
1977 + 'condition' => [
1978 + 'show_chart_title' => 'yes'
1979 + ]
1980 + ]
1981 + );
1982 +
1983 + $this->add_control(
1984 + 'chart_title_color', [
1985 + 'label' => esc_html__('Color', 'king-addons'),
1986 + 'type' => Controls_Manager::COLOR,
1987 + ]
1988 + );
1989 +
1990 + $this->add_control(
1991 + 'title_font_family',
1992 + [
1993 + 'label' => esc_html__('Font Family', 'king-addons'),
1994 + 'type' => Controls_Manager::FONT,
1995 + 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
1996 + 'default' => 'Arial',
1997 + ]
1998 + );
1999 +
2000 + $this->add_control(
2001 + 'title_font_style',
2002 + [
2003 + 'label' => esc_html__('Font Style', 'king-addons'),
2004 + 'type' => Controls_Manager::SELECT,
2005 + 'default' => 'normal',
2006 + 'options' => [
2007 + 'normal' => 'Normal',
2008 + 'italic' => 'Italic',
2009 + 'oblique' => 'Oblique',
2010 + ],
2011 +
2012 + ]
2013 + );
2014 +
2015 + $this->add_control(
2016 + 'title_font_weight',
2017 + [
2018 + 'label' => esc_html__('Font Weight ', 'king-addons'),
2019 + 'type' => Controls_Manager::NUMBER,
2020 + 'min' => 0,
2021 + 'default' => 600,
2022 + 'frontend_available' => true,
2023 + ]
2024 + );
2025 +
2026 + $this->add_control(
2027 + 'title_font_size',
2028 + [
2029 + 'label' => esc_html__('Font Size', 'king-addons'),
2030 + 'type' => Controls_Manager::SLIDER,
2031 + 'size_units' => ['px'],
2032 + 'range' => [
2033 + 'px' => [
2034 + 'min' => 10,
2035 + 'max' => 100,
2036 + ],
2037 + ],
2038 + 'default' => [
2039 + 'unit' => 'px',
2040 + 'size' => 14,
2041 + ],
2042 + ]
2043 + );
2044 +
2045 + $this->add_control(
2046 + 'chart_title_padding',
2047 + [
2048 + 'label' => esc_html__('Padding', 'king-addons'),
2049 + 'type' => Controls_Manager::SLIDER,
2050 + 'range' => [
2051 + 'px' => [
2052 + 'min' => 0,
2053 + 'max' => 50,
2054 + ],
2055 + ],
2056 + 'size_units' => ['px'],
2057 + 'default' => [
2058 + 'unit' => 'px',
2059 + 'size' => 10,
2060 + ],
2061 + ]
2062 + );
2063 +
2064 + $this->end_controls_section();
2065 +
2066 + $this->start_controls_section(
2067 + 'section_chart_legend_styles',
2068 + [
2069 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Legend', 'king-addons'),
2070 + 'tab' => Controls_Manager::TAB_STYLE,
2071 + ]
2072 + );
2073 +
2074 + $this->add_control(
2075 + 'chart_legend_text_color', [
2076 + 'label' => esc_html__('Color', 'king-addons'),
2077 + 'type' => Controls_Manager::COLOR,
2078 + 'default' => '#222222'
2079 + ]
2080 + );
2081 +
2082 + $this->add_control(
2083 + 'legend_font_family',
2084 + [
2085 + 'label' => esc_html__('Font Family', 'king-addons'),
2086 + 'type' => Controls_Manager::FONT,
2087 + 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
2088 + 'default' => 'Arial',
2089 + ]
2090 + );
2091 +
2092 + $this->add_control(
2093 + 'legend_font_style',
2094 + [
2095 + 'label' => esc_html__('Font Style', 'king-addons'),
2096 + 'type' => Controls_Manager::SELECT,
2097 + 'default' => 'normal',
2098 + 'options' => [
2099 + 'normal' => 'Normal',
2100 + 'italic' => 'Italic',
2101 + 'oblique' => 'Oblique',
2102 + ],
2103 +
2104 + ]
2105 + );
2106 +
2107 + $this->add_control(
2108 + 'legend_font_weight',
2109 + [
2110 + 'label' => esc_html__('Font Weight ', 'king-addons'),
2111 + 'type' => Controls_Manager::NUMBER,
2112 + 'min' => 0,
2113 + 'default' => 600,
2114 + 'frontend_available' => true,
2115 + ]
2116 + );
2117 +
2118 + $this->add_control(
2119 + 'legend_font_size',
2120 + [
2121 + 'label' => esc_html__('Font Size', 'king-addons'),
2122 + 'type' => Controls_Manager::SLIDER,
2123 + 'size_units' => ['px'],
2124 + 'range' => [
2125 + 'px' => [
2126 + 'min' => 10,
2127 + 'max' => 100,
2128 + ],
2129 + ],
2130 + 'default' => [
2131 + 'unit' => 'px',
2132 + 'size' => 14,
2133 + ],
2134 + ]
2135 + );
2136 +
2137 + $this->add_control(
2138 + 'legend_box_width',
2139 + [
2140 + 'label' => esc_html__('Box Size', 'king-addons'),
2141 + 'type' => Controls_Manager::SLIDER,
2142 + 'range' => [
2143 + 'px' => [
2144 + 'min' => 0,
2145 + 'max' => 200,
2146 + ],
2147 + ],
2148 + 'size_units' => ['px'],
2149 + 'default' => [
2150 + 'unit' => 'px',
2151 + 'size' => 40,
2152 + ]
2153 + ]
2154 + );
2155 +
2156 + $this->add_control(
2157 + 'chart_legend_padding',
2158 + [
2159 + 'label' => esc_html__('Gutter', 'king-addons'),
2160 + 'type' => Controls_Manager::SLIDER,
2161 + 'range' => [
2162 + 'px' => [
2163 + 'min' => 0,
2164 + 'max' => 50,
2165 + ],
2166 + ],
2167 + 'size_units' => ['px'],
2168 + 'default' => [
2169 + 'unit' => 'px',
2170 + 'size' => 10,
2171 + ],
2172 + ]
2173 + );
2174 +
2175 + $this->end_controls_section();
2176 +
2177 + $this->start_controls_section(
2178 + 'section_chart_tooltip_styles',
2179 + [
2180 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Tooltip', 'king-addons'),
2181 + 'tab' => Controls_Manager::TAB_STYLE,
2182 + 'condition' => [
2183 + 'show_chart_tooltip' => 'yes'
2184 + ]
2185 + ]
2186 + );
2187 +
2188 + $this->add_control(
2189 + 'chart_tooltip_bg_color', [
2190 + 'label' => esc_html__('Background Color', 'king-addons'),
2191 + 'type' => Controls_Manager::COLOR,
2192 + ]
2193 + );
2194 +
2195 + $this->add_control(
2196 + 'tooltip_padding',
2197 + [
2198 + 'label' => esc_html__('Padding', 'king-addons'),
2199 + 'type' => Controls_Manager::SLIDER,
2200 + 'size_units' => ['px'],
2201 + 'range' => [
2202 + 'px' => [
2203 + 'min' => 0,
2204 + 'max' => 100,
2205 + ],
2206 + ],
2207 + 'default' => [
2208 + 'unit' => 'px',
2209 + 'size' => 5,
2210 + ],
2211 + ]
2212 + );
2213 +
2214 + $this->add_responsive_control(
2215 + 'tooltip_caret_size',
2216 + [
2217 + 'label' => esc_html__('Triangle Size', 'king-addons'),
2218 + 'type' => Controls_Manager::SLIDER,
2219 + 'devices' => ['desktop', 'mobile'],
2220 + 'size_units' => ['px'],
2221 + 'range' => [
2222 + 'px' => [
2223 + 'min' => 0,
2224 + 'max' => 100,
2225 + ],
2226 + ],
2227 + 'default' => [
2228 + 'unit' => 'px',
2229 + 'size' => 10,
2230 + ],
2231 + 'mobile_default' => [
2232 + 'unit' => 'px',
2233 + 'size' => 6,
2234 + ],
2235 + ]
2236 + );
2237 +
2238 + $this->add_control(
2239 + 'tooltip_title_heading',
2240 + [
2241 + 'label' => esc_html__('Tooltip Title', 'king-addons'),
2242 + 'type' => Controls_Manager::HEADING,
2243 + 'separator' => 'before',
2244 + ]
2245 + );
2246 +
2247 + $this->add_control(
2248 + 'chart_tooltip_title_color', [
2249 + 'label' => esc_html__('Title Color', 'king-addons'),
2250 + 'type' => Controls_Manager::COLOR,
2251 + 'default' => '#FFF'
2252 + ]
2253 + );
2254 +
2255 + $this->add_control(
2256 + 'chart_tooltip_title_font',
2257 + [
2258 + 'label' => esc_html__('Font Family', 'king-addons'),
2259 + 'type' => Controls_Manager::FONT,
2260 + 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
2261 + 'default' => 'Arial',
2262 + ]
2263 + );
2264 +
2265 + $this->add_control(
2266 + 'chart_tooltip_title_font_size',
2267 + [
2268 + 'label' => esc_html__('Font Size', 'king-addons'),
2269 + 'type' => Controls_Manager::SLIDER,
2270 + 'size_units' => ['px'],
2271 + 'range' => [
2272 + 'px' => [
2273 + 'min' => 10,
2274 + 'max' => 100,
2275 + ],
2276 + ],
2277 + 'default' => [
2278 + 'unit' => 'px',
2279 + 'size' => 14,
2280 + ],
2281 + 'separator' => 'before'
2282 + ]
2283 + );
2284 +
2285 + $this->add_control(
2286 + 'chart_tooltip_title_margin_bottom',
2287 + [
2288 + 'label' => esc_html__('Title Spacing', 'king-addons'),
2289 + 'type' => Controls_Manager::SLIDER,
2290 + 'range' => [
2291 + 'px' => [
2292 + 'min' => 0,
2293 + 'max' => 50,
2294 + ],
2295 + ],
2296 + 'size_units' => ['px'],
2297 + 'default' => [
2298 + 'unit' => 'px',
2299 + 'size' => 10,
2300 + ],
2301 + ]
2302 + );
2303 +
2304 + $this->add_control(
2305 + 'chart_tooltip_title_align',
2306 + [
2307 + 'label' => esc_html__('Title Alignment', 'king-addons'),
2308 + 'type' => Controls_Manager::CHOOSE,
2309 + 'default' => 'center',
2310 + 'label_block' => false,
2311 + 'options' => [
2312 + 'left' => [
2313 + 'title' => esc_html__('Left', 'king-addons'),
2314 + 'icon' => 'eicon-text-align-left',
2315 + ],
2316 + 'center' => [
2317 + 'title' => esc_html__('Center', 'king-addons'),
2318 + 'icon' => 'eicon-text-align-center',
2319 + ],
2320 + 'right' => [
2321 + 'title' => esc_html__('Right', 'king-addons'),
2322 + 'icon' => 'eicon-text-align-right',
2323 + ],
2324 + ],
2325 + 'separator' => 'before'
2326 + ]
2327 + );
2328 +
2329 + $this->add_control(
2330 + 'tooltip_item_heading',
2331 + [
2332 + 'label' => esc_html__('Tooltip Item', 'king-addons'),
2333 + 'type' => Controls_Manager::HEADING,
2334 + 'separator' => 'before',
2335 + ]
2336 + );
2337 +
2338 + $this->add_control(
2339 + 'chart_tooltip_item_color', [
2340 + 'label' => esc_html__('Item Color', 'king-addons'),
2341 + 'type' => Controls_Manager::COLOR,
2342 + 'default' => '#FFF'
2343 + ]
2344 + );
2345 +
2346 + $this->add_control(
2347 + 'chart_tooltip_item_font',
2348 + [
2349 + 'label' => esc_html__('Font Family', 'king-addons'),
2350 + 'type' => Controls_Manager::FONT,
2351 + 'description' => esc_html__('Use only the fonts located under System options group', 'king-addons'),
2352 + 'default' => 'Arial',
2353 + ]
2354 + );
2355 +
2356 + $this->add_control(
2357 + 'chart_tooltip_item_font_size',
2358 + [
2359 + 'label' => esc_html__('Font Size', 'king-addons'),
2360 + 'type' => Controls_Manager::SLIDER,
2361 + 'size_units' => ['px'],
2362 + 'range' => [
2363 + 'px' => [
2364 + 'min' => 10,
2365 + 'max' => 100,
2366 + ],
2367 + ],
2368 + 'default' => [
2369 + 'unit' => 'px',
2370 + 'size' => 14,
2371 + ],
2372 + 'separator' => 'before'
2373 + ]
2374 + );
2375 +
2376 + $this->add_control(
2377 + 'chart_tooltip_item_spacing',
2378 + [
2379 + 'label' => esc_html__('Item Spacing', 'king-addons'),
2380 + 'type' => Controls_Manager::SLIDER,
2381 + 'range' => [
2382 + 'px' => [
2383 + 'min' => 0,
2384 + 'max' => 50,
2385 + ],
2386 + ],
2387 + 'size_units' => ['px'],
2388 + 'default' => [
2389 + 'unit' => 'px',
2390 + 'size' => 10,
2391 + ],
2392 + ]
2393 + );
2394 +
2395 + $this->add_control(
2396 + 'chart_tooltip_item_align',
2397 + [
2398 + 'label' => esc_html__('Item Alignment', 'king-addons'),
2399 + 'type' => Controls_Manager::CHOOSE,
2400 + 'default' => 'center',
2401 + 'label_block' => false,
2402 + 'options' => [
2403 + 'left' => [
2404 + 'title' => esc_html__('Left', 'king-addons'),
2405 + 'icon' => 'eicon-text-align-left',
2406 + ],
2407 + 'center' => [
2408 + 'title' => esc_html__('Center', 'king-addons'),
2409 + 'icon' => 'eicon-text-align-center',
2410 + ],
2411 + 'right' => [
2412 + 'title' => esc_html__('Right', 'king-addons'),
2413 + 'icon' => 'eicon-text-align-right',
2414 + ],
2415 + ],
2416 + 'separator' => 'before'
2417 + ]
2418 + );
2419 +
2420 + $this->end_controls_section();
2421 + }
2422 +
2423 + protected function render()
2424 + {
2425 + $settings = $this->get_settings_for_display();
2426 + extract($settings);
2427 +
2428 + $premium = king_addons_freemius()->can_use_premium_code__premium_only();
2429 + $data_charts_array = [];
2430 +
2431 + if (in_array($chart_type, ['bar', 'bar_horizontal', 'line', 'radar'])) {
2432 + if (!empty($charts_labels_data)) {
2433 + $labels = explode(',', trim($charts_labels_data));
2434 + if (!$premium && count($labels) > 3) {
2435 + $labels = array_slice($labels, 0, 3);
2436 + }
2437 + $data_charts_array['labels'] = $labels;
2438 + }
2439 +
2440 + if (is_array($charts_data_set) && count($charts_data_set)) {
2441 + foreach ($charts_data_set as $charts_counter => $chart_data) {
2442 + if (!$premium && $charts_counter === 3) break;
2443 + $data_charts_array['datasets'][] = [
2444 + 'label' => $chart_data['chart_data_label'],
2445 + 'data' => array_map('floatval', explode(',', trim($chart_data['chart_data_set'], ','))),
2446 + 'backgroundColor' => $chart_data['chart_data_background_color'],
2447 + 'hoverBackgroundColor' => $chart_data['chart_data_background_color_hover'],
2448 + 'borderColor' => $chart_data['chart_data_border_color'],
2449 + 'hoverBorderColor' => $chart_data['chart_data_border_color_hover'],
2450 + 'borderWidth' => $chart_data['chart_data_border_width'],
2451 + 'barPercentage' => $settings['column_width_x'] ?? '',
2452 + 'fill' => !empty($settings['chart_type_line_fill']) && 'yes' === $settings['chart_type_line_fill'],
2453 + ];
2454 + }
2455 + }
2456 + } else {
2457 + if (is_array($charts_data_set) && count($charts_data_set) && $settings['data_source'] !== 'csv') {
2458 + $chart_data_number_values = $chart_background_colors = $chart_background_hover_colors = [];
2459 + $chart_data_border_colors = $chart_data_border_hover_colors = $chart_data_border_width = $chart_data_bar_percentage = [];
2460 + $data_charts_array['labels'] = [];
2461 +
2462 + foreach ($charts_data_set as $labels_data) {
2463 + if (!$premium && count($data_charts_array['labels']) === 3) break;
2464 + $data_charts_array['labels'][] = $labels_data['chart_data_label'];
2465 + }
2466 +
2467 + $data_charts_array_test = !empty($charts_labels_data) ? explode(',', trim($charts_labels_data)) : [];
2468 +
2469 + foreach ($data_charts_array_test as $key => $test_data) {
2470 + if (!$premium && $key === 3) break;
2471 + $chart_data_number_values[$key] = [];
2472 + foreach ($charts_data_set as $key_inner => $chart_data) {
2473 + if (!$premium && $key_inner === 3) break;
2474 + $numbers = array_map('floatval', explode(',', trim($chart_data['chart_data_set'], ',')));
2475 + $chart_data_number_values[$key][] = $numbers[$key] ?? '0';
2476 + }
2477 + }
2478 +
2479 + foreach ($charts_data_set as $key => $chart_data) {
2480 + if (!$premium && $key === 3) break;
2481 + $chart_background_colors[] = trim($chart_data['chart_data_background_color']);
2482 + $chart_background_hover_colors[] = trim($chart_data['chart_data_background_color_hover']);
2483 + $chart_data_border_colors[] = trim($chart_data['chart_data_border_color']);
2484 + $chart_data_border_hover_colors[] = trim($chart_data['chart_data_border_color_hover']);
2485 + $chart_data_border_width[] = trim($chart_data['chart_data_border_width']);
2486 + if (!empty($settings['column_width_x'])) {
2487 + $chart_data_bar_percentage[] = trim($chart_data['column_width_x']);
2488 + }
2489 + }
2490 +
2491 + foreach ($data_charts_array_test as $key => $data_test) {
2492 + if (!$premium && $key === 3) break;
2493 + $data_charts_array['datasets'][] = [
2494 + 'label' => $data_test,
2495 + 'data' => $chart_data_number_values[$key],
2496 + 'backgroundColor' => $chart_background_colors,
2497 + 'hoverBackgroundColor' => $chart_background_hover_colors,
2498 + 'borderColor' => $chart_data_border_colors,
2499 + 'hoverBorderColor' => $chart_data_border_hover_colors,
2500 + 'borderWidth' => $chart_data_border_width,
2501 + 'barPercentage' => $chart_data_bar_percentage,
2502 + ];
2503 + }
2504 + }
2505 + }
2506 +
2507 + $layout_settings = [
2508 + 'angle_lines_color' => $angle_lines_color ?? '',
2509 + 'animation_transition_type' => $animation_transition_type,
2510 + 'axis_grid_line_color_r' => $axis_grid_line_color_r,
2511 + 'axis_grid_line_color_x' => $axis_grid_line_color_x,
2512 + 'axis_grid_line_color_y' => $axis_grid_line_color_y,
2513 + 'axis_labels_bg_color' => $axis_labels_bg_color ?? '',
2514 + 'axis_labels_color' => $axis_labels_color ?? '',
2515 + 'axis_labels_padding' => $axis_labels_padding['size'] ?? '',
2516 + 'axis_title_color_x' => $axis_title_color_x,
2517 + 'axis_title_color_y' => $axis_title_color_y,
2518 + 'axis_title_font_family_x' => $axis_title_font_family_x,
2519 + 'axis_title_font_family_y' => $axis_title_font_family_y,
2520 + 'axis_title_font_size_x' => $axis_title_font_size_x['size'] ?? '',
2521 + 'axis_title_font_size_y' => $axis_title_font_size_y['size'] ?? '',
2522 + 'axis_title_font_style_x' => $axis_title_font_style_x,
2523 + 'axis_title_font_style_y' => $axis_title_font_style_y,
2524 + 'axis_title_font_weight_x' => $axis_title_font_weight_x,
2525 + 'axis_title_font_weight_y' => $axis_title_font_weight_y,
2526 + 'border_dash_length' => $border_dash_length,
2527 + 'border_dash_length_r' => $border_dash_length_r,
2528 + 'border_dash_offset' => $border_dash_offset,
2529 + 'border_dash_offset_r' => $border_dash_offset_r,
2530 + 'border_dash_spacing' => $border_dash_spacing,
2531 + 'border_dash_spacing_r' => $border_dash_spacing_r,
2532 + 'chart_animation' => $chart_animation ?? '',
2533 + 'chart_animation_duration' => $chart_animation_duration ?? '',
2534 + 'chart_animation_loop' => $chart_animation_loop ?? '',
2535 + 'chart_datasets' => !empty($data_charts_array['datasets']) ? wp_json_encode($data_charts_array['datasets']) : '',
2536 + 'chart_interaction_mode' => $chart_interaction_mode,
2537 + 'chart_labels' => $data_charts_array['labels'] ?? '',
2538 + 'chart_title' => $chart_title ?? '',
2539 + 'chart_title_align' => $chart_title_align ?? '',
2540 + 'chart_title_color' => $chart_title_color ?? '',
2541 + 'chart_title_position' => $chart_title_position ?? '',
2542 + 'chart_tooltip_bg_color' => $chart_tooltip_bg_color,
2543 + 'chart_tooltip_item_align' => $chart_tooltip_item_align,
2544 + 'chart_tooltip_item_color' => $chart_tooltip_item_color,
2545 + 'chart_tooltip_item_font' => $chart_tooltip_item_font,
2546 + 'chart_tooltip_item_font_size' => $chart_tooltip_item_font_size['size'] ?? 1,
2547 + 'chart_tooltip_item_spacing' => $chart_tooltip_item_spacing['size'] ?? 1,
2548 + 'chart_tooltip_title_align' => $chart_tooltip_title_align,
2549 + 'chart_tooltip_title_color' => $chart_tooltip_title_color,
2550 + 'chart_tooltip_title_font' => $chart_tooltip_title_font,
2551 + 'chart_tooltip_title_font_size' => $chart_tooltip_title_font_size['size'] ?? 1,
2552 + 'chart_tooltip_title_margin_bottom' => $chart_tooltip_title_margin_bottom['size'] ?? 1,
2553 + 'chart_type' => $chart_type,
2554 + 'data_source' => $data_source,
2555 + 'data_type' => $settings['data_type'] ?? 'linear',
2556 + 'display_r_axis' => $display_r_axis,
2557 + 'display_r_ticks' => $display_r_ticks,
2558 + 'display_x_axis' => $display_x_axis,
2559 + 'display_x_axis_title' => $display_x_axis_title,
2560 + 'display_x_ticks' => $display_x_ticks,
2561 + 'display_y_axis' => $display_y_axis,
2562 + 'display_y_axis_title' => $display_y_axis_title,
2563 + 'display_y_ticks' => $display_y_ticks,
2564 + 'exclude_dataset_on_click' => $exclude_dataset_on_click,
2565 + 'grid_line_width_r' => $grid_line_width_r,
2566 + 'grid_line_width_x' => $grid_line_width_x,
2567 + 'grid_line_width_y' => $grid_line_width_y,
2568 + 'inner_datalabels' => $inner_datalabels,
2569 + 'inner_datalabels_color' => $inner_datalabels_color,
2570 + 'inner_datalabels_font_family' => $inner_datalabels_font_family ?? '',
2571 + 'inner_datalabels_font_size' => $inner_datalabels_font_size['size'] ?? '',
2572 + 'inner_datalabels_font_style' => $inner_datalabels_font_style ?? '',
2573 + 'inner_datalabels_font_weight' => $inner_datalabels_font_weight ?? '',
2574 + 'legend_align' => $charts_legend_align,
2575 + 'legend_box_width' => $legend_box_width['size'],
2576 + 'legend_font_family' => $legend_font_family,
2577 + 'legend_font_size' => $legend_font_size['size'],
2578 + 'legend_font_style' => $legend_font_style,
2579 + 'legend_font_weight' => $legend_font_weight,
2580 + 'legend_padding' => $chart_legend_padding['size'],
2581 + 'legend_position' => $charts_legend_position,
2582 + 'legend_shape' => $charts_legend_shape,
2583 + 'legend_text_color' => $chart_legend_text_color,
2584 + 'line_dots' => $line_dots ?? '',
2585 + 'line_dots_radius' => $line_dots_radius['size'] ?? '',
2586 + 'line_dots_radius_mobile' => $line_dots_radius_mobile['size'] ?? 0,
2587 + 'max_value' => $max_value,
2588 + 'min_value' => $min_value,
2589 + 'point_labels_color_r' => $chart_point_labels_color_r ?? '',
2590 + 'point_labels_font_family_r' => $point_labels_font_family_r,
2591 + 'point_labels_font_size_r' => $point_labels_font_size_r['size'] ?? '',
2592 + 'point_labels_font_style_r' => $point_labels_font_style_r,
2593 + 'point_labels_font_weight_r' => $point_labels_font_weight_r,
2594 + 'r_step_size' => $r_step_size,
2595 + 'reverse_legend' => $reverse_legend,
2596 + 'reverse_x' => $reverse_x,
2597 + 'reverse_y' => $reverse_y,
2598 + 'rotation_x' => $labels_rotation_x_axis,
2599 + 'rotation_y' => $labels_rotation_y_axis,
2600 + 'separator' => $data_csv_separator,
2601 + 'show_chart_legend' => $show_chart_legend,
2602 + 'show_chart_title' => $show_chart_title,
2603 + 'show_chart_tooltip' => $show_chart_tooltip,
2604 + 'show_lines' => $show_lines ?? '',
2605 + 'stacked_bar_chart' => $stacked_bar_chart ?? '',
2606 + 'ticks_color_x' => $chart_ticks_color_x,
2607 + 'ticks_color_y' => $chart_ticks_color_y ?? '',
2608 + 'ticks_font_family_x' => $ticks_font_family_x,
2609 + 'ticks_font_family_y' => $ticks_font_family_y,
2610 + 'ticks_font_size_x' => $ticks_font_size_x['size'] ?? '',
2611 + 'ticks_font_size_y' => $ticks_font_size_y['size'] ?? '',
2612 + 'ticks_font_style_x' => $ticks_font_style_x,
2613 + 'ticks_font_style_y' => $ticks_font_style_y,
2614 + 'ticks_font_weight_x' => $ticks_font_weight_x,
2615 + 'ticks_font_weight_y' => $ticks_font_weight_y,
2616 + 'ticks_padding_x' => $ticks_padding_x['size'] ?? '',
2617 + 'ticks_padding_y' => $ticks_padding_y['size'] ?? '',
2618 + 'title_font_family' => $title_font_family,
2619 + 'title_font_size' => $title_font_size['size'] ?? '',
2620 + 'title_font_style' => $title_font_style ?? '',
2621 + 'title_font_weight' => $title_font_weight,
2622 + 'title_padding' => $chart_title_padding['size'] ?? '',
2623 + 'tooltips_percent' => $tooltips_percent,
2624 + 'tooltip_caret_size' => $tooltip_caret_size['size'] ?? 1,
2625 + 'tooltip_caret_size_mobile' => $tooltip_caret_size_mobile['size'] ?? 0,
2626 + 'tooltip_padding' => $tooltip_padding['size'] ?? 1,
2627 + 'tooltip_position' => $chart_tooltip_position,
2628 + 'trigger_tooltip_on' => $trigger_tooltip_on,
2629 + 'url' => !empty($data_source_csv_url) ? $data_source_csv_url : (!empty($data_source_csv_file['url']) ? $data_source_csv_file['url'] : ''),
2630 + 'x_axis_title' => $x_axis_title,
2631 + 'x_step_size' => $x_step_size,
2632 + 'y_axis_title' => $y_axis_title,
2633 + 'y_step_size' => $y_step_size,
2634 + ];
2635 +
2636 + $this->add_render_attribute('chart-settings', [
2637 + 'class' => 'king-addons-charts-container',
2638 + 'data-settings' => wp_json_encode($layout_settings),
2639 + ]);
2640 +
2641 + echo '<div ' . $this->get_render_attribute_string('chart-settings') . '>';
2642 + if ($data_source === 'csv') {
2643 + echo '<span class="king-addons-rotating-plane"></span>';
2644 + }
2645 + echo '<div class="king-addons-charts-wrapper">';
2646 + echo '<canvas class="king-addons-chart"></canvas>';
2647 + echo '</div></div>';
2648 + }
2649 +
2796 2650 }