File: /var/www/Gosurya/WP2/wp-content/plugins/elementor-pro/modules/theme-builder/documents/section.php
<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;
use Elementor\Controls_Manager;
use ElementorPro\Modules\ThemeBuilder\Module;
use ElementorPro\Plugin;
if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}
class Section extends Theme_Section_Document {
	public function get_name() {
		return 'section';
	}
	public static function get_title() {
		return __( 'Section', 'elementor-pro' );
	}
	public static function get_plural_title() {
		return __( 'Sections', 'elementor-pro' );
	}
	public static function get_properties() {
		$properties = parent::get_properties();
		$properties['admin_tab_group'] = 'library';
		$properties['support_site_editor'] = false;
		return $properties;
	}
	protected function register_controls() {
		parent::register_controls();
		Module::instance()->get_locations_manager()->register_locations();
		$locations = Module::instance()->get_locations_manager()->get_locations( [
			'public' => true,
		] );
		if ( empty( $locations ) ) {
			return;
		}
		$this->start_controls_section(
			'location_settings',
			[
				'label' => __( 'Location Settings', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_SETTINGS,
			]
		);
		$options = [
			'' => __( 'Select', 'elementor-pro' ),
		];
		foreach ( $locations as $location => $settings ) {
			$options[ $location ] = $settings['label'];
		}
		$this->add_control(
			'location',
			[
				'label' => __( 'Location', 'elementor-pro' ),
				'label_block' => true,
				'type' => Controls_Manager::SELECT,
				'default' => $this->get_location(),
				'save_default' => true,
				'options' => $options,
			]
		);
		$this->add_control(
			'apply_location',
			[
				'type' => Controls_Manager::BUTTON,
				'label' => '',
				'text' => __( 'Apply', 'elementor-pro' ),
				'separator' => 'none',
				'event' => 'elementorThemeBuilder:ApplyPreview',
			]
		);
		$this->end_controls_section();
	}
	public function get_export_data() {
		$data = parent::get_export_data();
		$data['location'] = $this->get_location();
		return $data;
	}
	public function save_settings( $settings ) {
		if ( isset( $settings['location'] ) ) {
			if ( empty( $settings['location'] ) ) {
				$this->delete_main_meta( '_elementor_location' );
			} else {
				$this->update_main_meta( '_elementor_location', $settings['location'] );
				unset( $settings['location'] );
			}
			Module::instance()->get_conditions_manager()->get_cache()->regenerate();
		}
		parent::save_settings( $settings );
	}
}