* @copyright 2007-2022 Apollotheme * @license http://apollotheme.com - prestashop template provider */ namespace LeoElements; use LeoElements\Leo_Helper; if ( ! defined( '_PS_VERSION_' ) ) { exit; // Exit if accessed directly. } /** * Elementor slider control. * * A base control for creating slider control. Displays a draggable range slider. * The slider control can optionally have a number of unit types (`size_units`) * for the user to choose from. The control also accepts a range argument that * allows you to set the `min`, `max` and `step` values per unit type. * * @since 1.0.0 */ class Control_Slider extends Control_Base_Units { /** * Get slider control type. * * Retrieve the control type, in this case `slider`. * * @since 1.0.0 * @access public * * @return string Control type. */ public function get_type() { return 'slider'; } /** * Get slider control default values. * * Retrieve the default value of the slider control. Used to return the default * values while initializing the slider control. * * @since 1.0.0 * @access public * * @return array Control default value. */ public function get_default_value() { return array_merge( parent::get_default_value(), [ 'size' => '', 'sizes' => [], ] ); } /** * Get slider control default settings. * * Retrieve the default settings of the slider control. Used to return the * default settings while initializing the slider control. * * @since 1.0.0 * @access protected * * @return array Control default settings. */ protected function get_default_settings() { return array_merge( parent::get_default_settings(), [ 'label_block' => true, 'labels' => [], 'scales' => 0, 'handles' => 'default', ] ); } /** * Render slider control output in the editor. * * Used to generate the control HTML in the editor using Underscore JS * template. The variables for the class are available using `data` JS * object. * * @since 1.0.0 * @access public */ public function content_template() { $control_uid = $this->get_control_uid(); ?>
print_units_template(); ?>
<# if ( isMultiple && ( data.labels.length || data.scales ) ) { #>
<# if ( data.labels.length ) { #>
<# jQuery.each( data.labels, ( index, label ) => { #>
{{{ label }}}
<# } ); #>
<# } if ( data.scales ) { #>
<# for ( var i = 0; i < data.scales; i++ ) { #>
<# } #>
<# } #>
<# } #>
<# if ( ! isMultiple ) { #>
<# } #>
<# if ( data.description ) { #>
{{{ data.description }}}
<# } #>