|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
namespace GeminiLabs\SiteReviews\Integrations\Elementor\Controls; |
|
4
|
|
|
|
|
5
|
|
|
use Elementor\Base_Data_Control; |
|
6
|
|
|
use GeminiLabs\SiteReviews\Helpers\Str; |
|
7
|
|
|
|
|
8
|
|
|
class MultiSwitcher extends Base_Data_Control |
|
9
|
|
|
{ |
|
10
|
|
|
public function content_template(): void |
|
11
|
|
|
{ |
|
12
|
|
|
$control_uid_input_type = '{{option}}'; |
|
13
|
|
|
?> |
|
14
|
|
|
<div class="elementor-control-type-switcher elementor-control-type-multi_switcher" style="display: grid; row-gap: 10px;"> |
|
15
|
|
|
<# if ( data.label ) {#> |
|
16
|
|
|
<label class="elementor-control-title">{{{ data.label }}}</label> |
|
17
|
|
|
<# } #> |
|
18
|
|
|
<input type="hidden" data-setting="{{ data.name }}" value="{{ data.controlValue || '' }}" /> |
|
19
|
|
|
<# var values = data.controlValue ? data.controlValue.split(',').filter(Boolean) : []; #> |
|
20
|
|
|
<# _.each( data.options, function( label, option ) { #> |
|
21
|
|
|
<div class="elementor-control-field" style="display: grid; grid-template-columns: 1fr auto;"> |
|
22
|
|
|
<label for="<?php $this->print_control_uid($control_uid_input_type); ?>" class="elementor-control-title">{{{ label }}}</label> |
|
23
|
|
|
<div class="elementor-control-input-wrapper"> |
|
24
|
|
|
<label class="elementor-switch elementor-control-unit-2"> |
|
25
|
|
|
<input id="<?php $this->print_control_uid($control_uid_input_type); ?>" |
|
26
|
|
|
type="checkbox" |
|
27
|
|
|
class="elementor-switch-input" |
|
28
|
|
|
value="{{ option }}" |
|
29
|
|
|
<# if ( values.includes(option) ) { #>checked<# } #> |
|
30
|
|
|
/> |
|
31
|
|
|
<span class="elementor-switch-label" data-on="{{ data.label_on }}" data-off="{{ data.label_off }}"></span> |
|
32
|
|
|
<span class="elementor-switch-handle"></span> |
|
33
|
|
|
</label> |
|
34
|
|
|
</div> |
|
35
|
|
|
</div> |
|
36
|
|
|
<# } ); #> |
|
37
|
|
|
</div> |
|
38
|
|
|
<# if ( data.description ) { #> |
|
39
|
|
|
<div class="elementor-control-field-description">{{{ data.description }}}</div> |
|
40
|
|
|
<# } #> |
|
41
|
|
|
<?php |
|
42
|
|
|
} |
|
43
|
|
|
|
|
44
|
|
|
public function get_type(): string |
|
45
|
|
|
{ |
|
46
|
|
|
return 'multi_switcher'; |
|
47
|
|
|
} |
|
48
|
|
|
|
|
49
|
|
|
protected function get_default_settings() |
|
50
|
|
|
{ |
|
51
|
|
|
return [ |
|
52
|
|
|
'label_off' => esc_html_x('No', 'admin-text', 'site-reviews'), |
|
53
|
|
|
'label_on' => esc_html_x('Yes', 'admin-text', 'site-reviews'), |
|
54
|
|
|
]; |
|
55
|
|
|
} |
|
56
|
|
|
} |
|
57
|
|
|
|