-
WIBUHAX0R1337
-
/
home
/
coludnqa
/
xtrasolutionsco.com
/
wp-content
/
plugins
/
elementor
/
includes
/
controls
/
[ Home ]
Create Folder
Create File
Nama File / Folder
Size
Action
groups
--
NONE
alert.php
1.795KB
Edit File
Delete File
Rename
animation.php
4.756KB
Edit File
Delete File
Rename
base-data.php
3.662KB
Edit File
Delete File
Rename
base-icon-font.php
0.566KB
Edit File
Delete File
Rename
base-multiple.php
2.033KB
Edit File
Delete File
Rename
base-ui.php
0.504KB
Edit File
Delete File
Rename
base-units.php
3.495KB
Edit File
Delete File
Rename
base.php
3.08KB
Edit File
Delete File
Rename
box-shadow.php
3.393KB
Edit File
Delete File
Rename
button.php
1.678KB
Edit File
Delete File
Rename
choose.php
2.187KB
Edit File
Delete File
Rename
code.php
1.99KB
Edit File
Delete File
Rename
color.php
2.035KB
Edit File
Delete File
Rename
date-time.php
2.036KB
Edit File
Delete File
Rename
deprecated-notice.php
2.273KB
Edit File
Delete File
Rename
dimensions.php
5KB
Edit File
Delete File
Rename
divider.php
0.81KB
Edit File
Delete File
Rename
exit-animation.php
2.542KB
Edit File
Delete File
Rename
font.php
2.216KB
Edit File
Delete File
Rename
gallery.php
6.387KB
Edit File
Delete File
Rename
heading.php
1.316KB
Edit File
Delete File
Rename
hidden.php
0.926KB
Edit File
Delete File
Rename
hover-animation.php
4.321KB
Edit File
Delete File
Rename
icon.php
31.325KB
Edit File
Delete File
Rename
icons.php
7.566KB
Edit File
Delete File
Rename
image-dimensions.php
3.708KB
Edit File
Delete File
Rename
media.php
14.117KB
Edit File
Delete File
Rename
notice.php
4.071KB
Edit File
Delete File
Rename
number.php
2.765KB
Edit File
Delete File
Rename
popover-toggle.php
2.664KB
Edit File
Delete File
Rename
raw-html.php
1.483KB
Edit File
Delete File
Rename
repeater.php
4.964KB
Edit File
Delete File
Rename
section.php
1.33KB
Edit File
Delete File
Rename
select.php
2.563KB
Edit File
Delete File
Rename
select2.php
2.716KB
Edit File
Delete File
Rename
slider.php
3.488KB
Edit File
Delete File
Rename
structure.php
2.462KB
Edit File
Delete File
Rename
switcher.php
2.076KB
Edit File
Delete File
Rename
tab.php
1.006KB
Edit File
Delete File
Rename
tabs.php
0.922KB
Edit File
Delete File
Rename
text-shadow.php
3.133KB
Edit File
Delete File
Rename
text.php
2.08KB
Edit File
Delete File
Rename
textarea.php
2.006KB
Edit File
Delete File
Rename
url.php
5.126KB
Edit File
Delete File
Rename
visual-choice.php
2.152KB
Edit File
Delete File
Rename
wp-widget.php
1.346KB
Edit File
Delete File
Rename
wysiwyg.php
1.734KB
Edit File
Delete File
Rename
<?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; } }
© 2022 - 2023 WIBUHAXOR V1 By Lutfifakee || Padang Blackhat