Current Path: > home > codekrsu > > escapematrixonline.com > wp-content > plugins > > elementor > includes > controls
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
groups | Directory | - | - | |
alert.php | File | 1838 bytes | January 22 2024 14:24:30. | |
animation.php | File | 4870 bytes | August 25 2024 17:59:38. | |
base-data.php | File | 3750 bytes | March 17 2025 17:28:54. | |
base-icon-font.php | File | 580 bytes | March 17 2025 17:28:54. | |
base-multiple.php | File | 2082 bytes | March 17 2025 17:28:54. | |
base-ui.php | File | 516 bytes | April 23 2023 15:22:46. | |
base-units.php | File | 3579 bytes | February 29 2024 16:51:58. | |
base.php | File | 3154 bytes | April 23 2023 15:37:02. | |
box-shadow.php | File | 3474 bytes | April 23 2023 15:22:46. | |
button.php | File | 1718 bytes | April 23 2023 15:22:46. | |
choose.php | File | 2239 bytes | June 10 2025 13:36:30. | |
code.php | File | 2038 bytes | April 23 2023 15:37:02. | |
color.php | File | 2084 bytes | April 23 2023 15:22:46. | |
date-time.php | File | 2085 bytes | April 23 2023 15:22:46. | |
deprecated-notice.php | File | 2328 bytes | April 23 2023 15:22:46. | |
dimensions.php | File | 5120 bytes | February 18 2025 20:14:26. | |
divider.php | File | 829 bytes | February 29 2024 16:51:58. | |
exit-animation.php | File | 2603 bytes | August 25 2024 17:59:38. | |
font.php | File | 2269 bytes | April 23 2023 15:22:46. | |
gallery.php | File | 5825 bytes | March 17 2025 17:28:54. | |
gaps.php | File | 1657 bytes | March 17 2025 17:28:54. | |
heading.php | File | 1348 bytes | April 23 2023 15:22:46. | |
hidden.php | File | 948 bytes | April 23 2023 15:22:46. | |
hover-animation.php | File | 4425 bytes | August 25 2024 17:59:38. | |
icon.php | File | 32077 bytes | July 09 2023 16:14:12. | |
icons.php | File | 7748 bytes | June 10 2025 13:36:30. | |
image-dimensions.php | File | 3797 bytes | April 23 2023 15:22:46. | |
media.php | File | 13829 bytes | June 10 2025 13:36:30. | |
notice.php | File | 4169 bytes | December 10 2024 19:19:32. | |
number.php | File | 2114 bytes | June 10 2025 13:36:30. | |
popover-toggle.php | File | 2728 bytes | April 23 2023 15:37:02. | |
raw-html.php | File | 1519 bytes | April 23 2023 15:22:46. | |
repeater.php | File | 5083 bytes | June 10 2025 13:36:30. | |
section.php | File | 1350 bytes | February 29 2024 16:51:58. | |
select.php | File | 2625 bytes | May 28 2023 19:49:54. | |
select2.php | File | 2781 bytes | November 08 2023 18:47:58. | |
slider.php | File | 3572 bytes | April 23 2023 15:22:46. | |
structure.php | File | 2521 bytes | February 29 2024 16:51:58. | |
switcher.php | File | 2126 bytes | April 23 2023 15:22:46. | |
tab.php | File | 1030 bytes | February 29 2024 16:51:58. | |
tabs.php | File | 944 bytes | February 29 2024 16:51:58. | |
text-shadow.php | File | 3208 bytes | April 23 2023 15:22:46. | |
text.php | File | 2130 bytes | June 10 2025 13:36:30. | |
textarea.php | File | 2054 bytes | April 23 2023 15:37:02. | |
url.php | File | 5249 bytes | June 10 2025 13:36:30. | |
visual-choice.php | File | 2204 bytes | June 10 2025 13:36:30. | |
wp-widget.php | File | 1378 bytes | April 23 2023 15:22:46. | |
wysiwyg.php | File | 1776 bytes | April 23 2023 15:37:02. |
<?php namespace Elementor; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Elementor repeater control. * * A base control for creating repeater control. Repeater control allows you to * build repeatable blocks of fields. You can create, for example, a set of * fields that will contain a title and a WYSIWYG text - the user will then be * able to add "rows", and each row will contain a title and a text. The data * can be wrapper in custom HTML tags, designed using CSS, and interact using JS * or external libraries. * * @since 1.0.0 */ class Control_Repeater extends Base_Data_Control implements Has_Validation { /** * Get repeater control type. * * Retrieve the control type, in this case `repeater`. * * @since 1.0.0 * @access public * * @return string Control type. */ public function get_type() { return 'repeater'; } /** * Get repeater control default value. * * Retrieve the default value of the data control. Used to return the default * values while initializing the repeater control. * * @since 2.0.0 * @access public * * @return array Control default value. */ public function get_default_value() { return []; } /** * Get repeater control default settings. * * Retrieve the default settings of the repeater control. Used to return the * default settings while initializing the repeater control. * * @since 1.0.0 * @access protected * * @return array Control default settings. */ protected function get_default_settings() { return [ 'fields' => [], 'title_field' => '', 'prevent_empty' => true, 'is_repeater' => true, 'max_items' => 0, 'min_items' => 0, 'item_actions' => [ 'add' => true, 'duplicate' => true, 'remove' => true, 'sort' => true, ], ]; } /** * Get repeater control value. * * Retrieve the value of the repeater control from a specific Controls_Stack. * * @since 1.0.0 * @access public * * @param array $control Control. * @param array $settings Controls_Stack settings. * * @return mixed Control values. */ public function get_value( $control, $settings ) { $value = parent::get_value( $control, $settings ); if ( ! empty( $value ) ) { foreach ( $value as &$item ) { foreach ( $control['fields'] as $field ) { $control_obj = Plugin::$instance->controls_manager->get_control( $field['type'] ); // Prior to 1.5.0 the fields may contains non-data controls. if ( ! $control_obj instanceof Base_Data_Control ) { continue; } $item[ $field['name'] ] = $control_obj->get_value( $field, $item ); } } } return $value; } /** * Import repeater. * * Used as a wrapper method for inner controls while importing Elementor * template JSON file, and replacing the old data. * * @since 1.8.0 * @access public * * @param array $settings Control settings. * @param array $control_data Optional. Control data. Default is an empty array. * * @return array Control settings. */ public function on_import( $settings, $control_data = [] ) { if ( empty( $settings ) || empty( $control_data['fields'] ) ) { return $settings; } $method = 'on_import'; foreach ( $settings as &$item ) { foreach ( $control_data['fields'] as $field ) { if ( empty( $field['name'] ) || empty( $item[ $field['name'] ] ) ) { continue; } $control_obj = Plugin::$instance->controls_manager->get_control( $field['type'] ); if ( ! $control_obj ) { continue; } if ( method_exists( $control_obj, $method ) ) { $item[ $field['name'] ] = $control_obj->{$method}( $item[ $field['name'] ], $field ); } } } return $settings; } /** * Render repeater 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() { ?> <label> <span class="elementor-control-title">{{{ data.label }}}</span> </label> <div class="elementor-repeater-fields-wrapper" role="list"></div> <# if ( itemActions.add ) { #> <div class="elementor-button-wrapper"> <button class="elementor-button elementor-repeater-add" type="button"> <i class="eicon-plus" aria-hidden="true"></i> <# if ( data.button_text ) { #> {{{ data.button_text }}} <# } else { #> <?php echo esc_html__( 'Add Item', 'elementor' ); ?> <# } #> </button> </div> <# } #> <?php } public function validate( array $control_data ): bool { if ( isset( $control_data['min_items'] ) ) { if ( ! isset( $control_data['default'] ) || count( $control_data['default'] ) < $control_data['min_items'] ) { throw new \Exception( esc_html__( 'In a Repeater control, if you specify a minimum number of items, you must also specify a default value that contains at least that number of items.', 'elementor' ) ); } } return true; } }
SILENT KILLER Tool