/home/preegmxb/gymnyou.com/wp-content/plugins/sight/elementor/widget-portfolio.php
<?php
/**
 * Widget Portfolio.
 *
 * @package Sight
 */

namespace Sight_Elementor\Widgets;

use Elementor\Widget_Base;
use Elementor\Controls_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Elementor Widget
 *
 * @since 1.0.0
 */
class Sight_Widget_Portfolio extends Widget_Base {

	/**
	 * Retrieve the widget name.
	 *
	 * @since 1.0.0
	 *
	 * @access public
	 *
	 * @return string Widget name.
	 */
	public function get_name() {
		return 'sight-portfolio-widget';
	}

	/**
	 * Retrieve the widget title.
	 *
	 * @since 1.0.0
	 *
	 * @access public
	 *
	 * @return string Widget title.
	 */
	public function get_title() {
		return esc_html__( 'Portfolio', 'sight' );
	}

	/**
	 * Retrieve the widget icon.
	 *
	 * @since 1.0.0
	 *
	 * @access public
	 *
	 * @return string Widget icon.
	 */
	public function get_icon() {
		return 'eicon-call-to-action';
	}

	/**
	 * Retrieve the list of categories the widget belongs to.
	 *
	 * Used to determine where to display the widget in the editor.
	 *
	 * Note that currently Elementor supports only one category.
	 * When multiple categories passed, Elementor uses the first one.
	 *
	 * @since 1.0.0
	 *
	 * @access public
	 *
	 * @return array Widget categories.
	 */
	public function get_categories() {
		return array( 'basic' );
	}

	/**
	 * Registers layouts of block.
	 */
	public function widget_layouts() {
		$layouts = array(
			'standard' => array(
				'name'     => esc_html__( 'Standard', 'sight' ),
				'template' => SIGHT_PATH . 'render/handler/post-area-init.php',
			),
		);

		// Return.
		return apply_filters( 'sight_widget_portfolio_layouts', $layouts );
	}

	/**
	 * Get layouts (format: array)
	 *
	 * @access protected
	 */
	protected function get_array_layouts() {
		$widget_layouts = $this->widget_layouts();

		$layouts = array();

		foreach ( $widget_layouts as $key => $attrs ) {
			$layouts[ $key ] = $attrs['name'];
		}

		return $layouts;
	}

	/**
	 * Register the widget controls.
	 *
	 * Adds different input fields to allow the user to change and customize the widget settings.
	 *
	 * @since 1.0.0
	 *
	 * @access protected
	 */
	protected function _register_controls() {

		$this->start_controls_section(
			'layout_section',
			array(
				'label' => esc_html__( 'Layout', 'sight' ),
			)
		);

		do_action( 'sight/widget/fields/before', $this );

		$this->add_control(
			'layout',
			array(
				'label'   => esc_html__( 'Layout', 'sight' ),
				'type'    => Controls_Manager::SELECT,
				'default' => 'standard',
				'options' => $this->get_array_layouts(),
			)
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'general',
			array(
				'label' => esc_html__( 'General Settings', 'sight' ),
			)
		);

		do_action( 'sight/widget/fields/general/before', $this );

		$this->add_control(
			'source',
			array(
				'label'   => esc_html__( 'Source', 'sight' ),
				'type'    => Controls_Manager::SELECT,
				'default' => 'projects',
				'options' => array(
					'projects'   => esc_html__( 'Projects', 'sight' ),
					'custom'     => esc_html__( 'Images', 'sight' ),
					'categories' => esc_html__( 'Categories', 'sight' ),
					'post'       => esc_html__( 'Post Attachments', 'sight' ),
				),
			)
		);

		/* Type Projects */

		$this->add_control(
			'video',
			array(
				'label'      => esc_html__( 'Video Background', 'sight' ),
				'type'       => Controls_Manager::SELECT,
				'default'    => 'always',
				'options'    => array(
					'none'   => esc_html__( 'None', 'sight' ),
					'always' => esc_html__( 'Always', 'sight' ),
					'hover'  => esc_html__( 'On Hover', 'sight' ),
				),
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'projects',
						),
					),
				),
			)
		);

		$this->add_control(
			'video_controls',
			array(
				'label'        => esc_html__( 'Enable video controls', 'sight' ),
				'type'         => Controls_Manager::SWITCHER,
				'return_value' => 'true',
				'default'      => 'true',
				'conditions'   => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'projects',
						),
						array(
							'name'     => 'video',
							'operator' => '!=',
							'value'    => 'none',
						),
					),
				),
			)
		);

		/* Post */

		$this->add_control(
			'custom_post',
			array(
				'label'      => esc_html__( 'Post', 'sight' ),
				'type'       => 'custom_post',
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'post',
						),
					),
				),
			)
		);

		/* Type Custom */

		$this->add_control(
			'custom_images',
			array(
				'label'      => esc_html__( 'Images', 'sight' ),
				'type'       => Controls_Manager::GALLERY,
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'custom',
						),
					),
				),
			)
		);

		/* Common end */

		$this->add_control(
			'number_items',
			array(
				'label'   => esc_html__( 'Number of Items', 'sight' ),
				'type'    => Controls_Manager::NUMBER,
				'min'     => 1,
				'max'     => 100,
				'step'    => 1,
				'default' => 10,
			)
		);

		do_action( 'sight/widget/fields/general/after', $this );

		$this->end_controls_section();

		$this->start_controls_section(
			'meta',
			array(
				'label' => esc_html__( 'Meta Settings', 'sight' ),
			)
		);

		do_action( 'sight/widget/fields/meta/after', $this );

		$this->add_control(
			'meta_title',
			array(
				'label'        => esc_html__( 'Display item title', 'sight' ),
				'type'         => Controls_Manager::SWITCHER,
				'return_value' => 'true',
				'default'      => 'true',
				'conditions'   => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '!=',
							'value'    => 'post',
						),
						array(
							'name'     => 'source',
							'operator' => '!=',
							'value'    => 'custom',
						),
					),
				),
			)
		);

		$this->add_control(
			'meta_caption',
			array(
				'label'        => esc_html__( 'Display item caption', 'sight' ),
				'type'         => Controls_Manager::SWITCHER,
				'return_value' => 'true',
				'default'      => 'true',
			)
		);

		$this->add_control(
			'meta_caption_length',
			array(
				'label'      => esc_html__( 'Caption length', 'sight' ),
				'type'       => Controls_Manager::NUMBER,
				'min'        => 1,
				'max'        => 1000,
				'step'       => 1,
				'default'    => 100,
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'meta_caption',
							'operator' => '==',
							'value'    => 'true',
						),
					),
				),
			)
		);

		$this->add_control(
			'meta_category',
			array(
				'label'        => esc_html__( 'Display meta category', 'sight' ),
				'type'         => Controls_Manager::SWITCHER,
				'return_value' => 'true',
				'conditions'   => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'projects',
						),
						array(
							'name'     => 'projects_filter_post_type',
							'operator' => '==',
							'value'    => 'sight-projects',
						),
					),
				),
			)
		);

		$this->add_control(
			'meta_date',
			array(
				'label'        => esc_html__( 'Display meta date', 'sight' ),
				'type'         => Controls_Manager::SWITCHER,
				'return_value' => 'true',
				'conditions'   => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '!=',
							'value'    => 'categories',
						),
					),
				),
			)
		);

		do_action( 'sight/widget/fields/meta/after', $this );

		$this->end_controls_section();

		$this->start_controls_section(
			'media',
			array(
				'label' => esc_html__( 'Media Settings', 'sight' ),
			)
		);

		do_action( 'sight/widget/fields/media/before', $this );

		$this->add_control(
			'attachment_lightbox',
			array(
				'label'        => esc_html__( 'Enable lightbox', 'sight' ),
				'type'         => Controls_Manager::SWITCHER,
				'return_value' => 'true',
			)
		);

		$this->add_control(
			'attachment_lightbox_icon',
			array(
				'label'        => esc_html__( 'Display lightbox zoom icon', 'sight' ),
				'type'         => Controls_Manager::SWITCHER,
				'return_value' => 'true',
				'default'      => 'true',
				'conditions'   => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'attachment_lightbox',
							'operator' => '==',
							'value'    => 'true',
						),
					),
				),
			)
		);

		$this->add_control(
			'attachment_link_to',
			array(
				'label'       => esc_html__( 'Link To', 'sight' ),
				'description' => sight_is_archive() ? null : esc_html__( 'If the source is "Categories" then the "Page" value will be ignored.', 'sight' ),
				'type'        => Controls_Manager::SELECT,
				'default'     => 'page',
				'options'     => array(
					'none'  => esc_html__( 'None', 'sight' ),
					'media' => esc_html__( 'Media File', 'sight' ),
					'page'  => esc_html__( 'Page', 'sight' ),
				),
				'conditions'  => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'attachment_lightbox',
							'operator' => '!=',
							'value'    => 'true',
						),
					),
				),
			)
		);

		$this->add_control(
			'attachment_view_more',
			array(
				'label'        => esc_html__( 'Enable view more', 'sight' ),
				'type'         => Controls_Manager::SWITCHER,
				'return_value' => 'true',
				'conditions'   => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'attachment_lightbox',
							'operator' => '!=',
							'value'    => 'true',
						),
						array(
							'name'     => 'attachment_link_to',
							'operator' => '!=',
							'value'    => 'none',
						),
					),
				),
			)
		);

		$this->add_control(
			'attachment_size',
			array(
				'label'   => esc_html__( 'Size', 'sight' ),
				'type'    => Controls_Manager::SELECT,
				'default' => 'large',
				'options' => sight_get_list_available_image_sizes(),
			)
		);

		$this->add_control(
			'attachment_orientation',
			array(
				'label'   => esc_html__( 'Orientation', 'sight' ),
				'type'    => Controls_Manager::SELECT,
				'default' => 'landscape-16-9',
				'options' => array(
					'original'       => esc_html__( 'Original', 'sight' ),
					'landscape-4-3'  => esc_html__( 'Landscape 4:3', 'sight' ),
					'landscape-3-2'  => esc_html__( 'Landscape 3:2', 'sight' ),
					'landscape-16-9' => esc_html__( 'Landscape 16:9', 'sight' ),
					'portrait-3-4'   => esc_html__( 'Portrait 3:4', 'sight' ),
					'portrait-2-3'   => esc_html__( 'Portrait 2:3', 'sight' ),
					'square'         => esc_html__( 'Square', 'sight' ),
				),
			)
		);

		do_action( 'sight/widget/fields/media/after', $this );

		$this->end_controls_section();

		$this->start_controls_section(
			'typography',
			array(
				'label' => esc_html__( 'Typography Settings', 'sight' ),
			)
		);

		do_action( 'sight/widget/fields/typography/before', $this );

		$this->add_control(
			'typography_heading',
			array(
				'label'      => esc_html__( 'Heading Font Size', 'sight' ),
				'type'       => Controls_Manager::TEXT,
				'default'    => '',
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '!=',
							'value'    => 'post',
						),
						array(
							'name'     => 'source',
							'operator' => '!=',
							'value'    => 'custom',
						),
						array(
							'name'     => 'meta_title',
							'operator' => '==',
							'value'    => 'true',
						),
					),
				),
			)
		);

		$this->add_control(
			'typography_heading_tag',
			array(
				'label'      => esc_html__( 'Heading Tag', 'sight' ),
				'type'       => Controls_Manager::SELECT,
				'default'    => 'h3',
				'options'    => array(
					'h1'  => esc_html__( 'H1', 'sight' ),
					'h2'  => esc_html__( 'H2', 'sight' ),
					'h3'  => esc_html__( 'H3', 'sight' ),
					'h4'  => esc_html__( 'H4', 'sight' ),
					'h5'  => esc_html__( 'H5', 'sight' ),
					'h6'  => esc_html__( 'H6', 'sight' ),
					'p'   => esc_html__( 'P', 'sight' ),
					'div' => esc_html__( 'DIV', 'sight' ),
				),
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '!=',
							'value'    => 'post',
						),
						array(
							'name'     => 'source',
							'operator' => '!=',
							'value'    => 'custom',
						),
						array(
							'name'     => 'meta_title',
							'operator' => '==',
							'value'    => 'true',
						),
					),
				),
			)
		);

		$this->add_control(
			'typography_caption',
			array(
				'label'      => esc_html__( 'Caption Font Size', 'sight' ),
				'type'       => Controls_Manager::TEXT,
				'default'    => '',
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'meta_caption',
							'operator' => '==',
							'value'    => 'true',
						),
					),
				),
			)
		);

		do_action( 'sight/widget/fields/typography/after', $this );

		$this->end_controls_section();

		$this->start_controls_section(
			'query',
			array(
				'label'      => esc_html__( 'Query Settings', 'sight' ),
				'conditions' => array(
					'relation' => 'or',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'projects',
						),
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'categories',
						),
					),
				),
			)
		);

		do_action( 'sight/widget/fields/query/before', $this );

		$this->add_control(
			'projects_filter_post_type',
			array(
				'label'      => esc_html__( 'Filter by Post Type', 'sight' ),
				'type'       => Controls_Manager::SELECT,
				'default'    => 'sight-projects',
				'options'    => sight_get_post_types_stack(),
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'projects',
						),
					),
				),
			)
		);

		$this->add_control(
			'projects_filter_categories',
			array(
				'label'      => esc_html__( 'Filter by Categories', 'sight' ),
				'type'       => Controls_Manager::SELECT2,
				'multiple'   => true,
				'options'    => sight_get_categories_stack(),
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'projects',
						),
						array(
							'name'     => 'projects_filter_post_type',
							'operator' => '==',
							'value'    => 'sight-projects',
						),
					),
				),
			)
		);

		$this->add_control(
			'projects_filter_offset',
			array(
				'label'      => esc_html__( 'Offset', 'sight' ),
				'type'       => Controls_Manager::TEXT,
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'projects',
						),
					),
				),
			)
		);

		$this->add_control(
			'projects_orderby',
			array(
				'label'      => esc_html__( 'Order By', 'sight' ),
				'type'       => Controls_Manager::SELECT,
				'default'    => 'date',
				'options'    => array(
					'date'          => esc_html__( 'Published Date', 'sight' ),
					'modified'      => esc_html__( 'Modified Date', 'sight' ),
					'title'         => esc_html__( 'Title', 'sight' ),
					'rand'          => esc_html__( 'Random', 'sight' ),
					'views'         => esc_html__( 'Views', 'sight' ),
					'comment_count' => esc_html__( 'Comment Count', 'sight' ),
					'ID'            => esc_html__( 'ID', 'sight' ),
				),
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'projects',
						),
					),
				),
			)
		);

		$this->add_control(
			'projects_order',
			array(
				'label'      => esc_html__( 'Order', 'sight' ),
				'type'       => Controls_Manager::SELECT,
				'default'    => 'DESC',
				'options'    => array(
					'DESC' => esc_html__( 'Descending', 'sight' ),
					'ASC'  => esc_html__( 'Ascending', 'sight' ),
				),
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'projects',
						),
					),
				),
			)
		);

		$this->add_control(
			'categories_filter_ids',
			array(
				'label'      => esc_html__( 'Filter by Categories', 'sight' ),
				'type'       => Controls_Manager::SELECT,
				'options'    => sight_get_categories_stack(),
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'categories',
						),
					),
				),
			)
		);

		$this->add_control(
			'categories_orderby',
			array(
				'label'      => esc_html__( 'Order By', 'sight' ),
				'type'       => Controls_Manager::SELECT,
				'default'    => 'name',
				'options'    => array(
					'name'    => esc_html__( 'Name', 'sight' ),
					'count'   => esc_html__( 'Posts count', 'sight' ),
					'include' => esc_html__( 'Filter include', 'sight' ),
					'ID'      => esc_html__( 'ID', 'sight' ),
				),
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'categories',
						),
					),
				),
			)
		);

		$this->add_control(
			'categories_order',
			array(
				'label'      => esc_html__( 'Order', 'sight' ),
				'type'       => Controls_Manager::SELECT,
				'default'    => 'ASC',
				'options'    => array(
					'DESC' => esc_html__( 'Descending', 'sight' ),
					'ASC'  => esc_html__( 'Ascending', 'sight' ),
				),
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'categories',
						),
					),
				),
			)
		);

		do_action( 'sight/widget/fields/query/after', $this );

		$this->end_controls_section();

		$this->start_controls_section(
			'color',
			array(
				'label' => esc_html__( 'Color Settings', 'sight' ),
			)
		);

		do_action( 'sight/widget/fields/color/before', $this );

		$this->add_control(
			'color_heading',
			array(
				'label'      => esc_html__( 'Heading Color', 'sight' ),
				'type'       => Controls_Manager::COLOR,
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '!=',
							'value'    => 'post',
						),
						array(
							'name'     => 'source',
							'operator' => '!=',
							'value'    => 'custom',
						),
						array(
							'name'     => 'meta_title',
							'operator' => '==',
							'value'    => 'true',
						),
					),
				),
			)
		);

		$this->add_control(
			'color_heading_hover',
			array(
				'label'      => esc_html__( 'Heading Hover Color', 'sight' ),
				'type'       => Controls_Manager::COLOR,
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'source',
							'operator' => '!=',
							'value'    => 'post',
						),
						array(
							'name'     => 'source',
							'operator' => '!=',
							'value'    => 'custom',
						),
						array(
							'name'     => 'meta_title',
							'operator' => '==',
							'value'    => 'true',
						),
					),
				),
			)
		);

		$this->add_control(
			'color_caption',
			array(
				'label'      => esc_html__( 'Caption Color', 'sight' ),
				'type'       => Controls_Manager::COLOR,
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'meta_caption',
							'operator' => '==',
							'value'    => 'true',
						),
					),
				),
			)
		);

		do_action( 'sight/widget/fields/color/after', $this );

		$this->end_controls_section();

		do_action( 'sight/widget/fields/after', $this );
	}

	/**
	 * Render attributes from widget.
	 *
	 * @param array  $attributes The attributes.
	 * @param string $layout     The layout.
	 */
	public function render_attributes( $attributes, $layout ) {

		// Change type for bool attributes.
		foreach ( $attributes as $key => $value ) {
			if ( 'true' === $attributes[ $key ] ) {
				$attributes[ $key ] = true;
			} elseif ( 'false' === $attributes[ $key ] ) {
				$attributes[ $key ] = false;
			}
		}

		// Set attribute for field 'Images'.
		if ( $attributes['custom_images'] ) {
			$attributes['custom_images'] = wp_list_pluck( $attributes['custom_images'], 'id' );
		}

		return $attributes;
	}

	/**
	 * Render options from widget.
	 *
	 * @param array  $attributes The attributes.
	 * @param string $layout     The layout.
	 */
	public function render_options( $attributes, $layout ) {
		$options = array();

		// Get layouts.
		$layouts = $this->widget_layouts();

		// Render stack.
		foreach ( $attributes as $key => $settings ) {

			$clear_key = str_replace( $layout . '_', '', $key );

			$search = $layout . '_' . $clear_key;

			if ( array_key_exists( $search, $attributes ) ) {
				$options[ $clear_key ] = $attributes[ $search ];
			}
		}

		return $options;
	}

	/**
	 * Render the widget output on the frontend.
	 *
	 * Written in PHP and used to generate the final HTML.
	 *
	 * @since 1.0.0
	 *
	 * @access protected
	 */
	protected function render() {
		$attributes = $this->get_settings_for_display();

		$layouts = $this->widget_layouts();

		// Set id.
		$id = $this->get_id();

		// Set layout.
		$layout = $attributes['layout'];

		// Render attributes.
		$attributes = $this->render_attributes( $attributes, $layout );

		// Render options.
		$options = $this->render_options( $attributes, $layout );

		// Set classes.
		$classes  = " sight-block-portfolio-id-{$id}";
		$classes .= " sight-block-portfolio-layout-{$layout}";

		// Output.
		?>
		<div class="sight-block-portfolio <?php echo esc_attr( $classes ); ?>">
			<?php
			if ( isset( $layouts[ $layout ]['template'] ) && file_exists( $layouts[ $layout ]['template'] ) ) {

				// Require custom template.
				require $layouts[ $layout ]['template'];
			} else {

				// Default template.
				require SIGHT_PATH . 'render/handler/post-area-init.php';
			}
			?>
		</div>

		<?php sight_portfolio_render_style( $attributes, $options, $id ); ?>
		<?php
	}
}

/**
 * Elementor Widget Layouts
 *
 * @since 1.0.0
 */
class Sight_Widget_Portfolio_Layouts {

	/**
	 * Initialize
	 */
	public function __construct() {
		add_action( 'sight/widget/fields/general/after', array( $this, 'widget_portfolio_standard_fields' ), 5, 1 );
	}

	/**
	 * Add controls for standard layout.
	 *
	 * @param object $object The object.
	 */
	public function widget_portfolio_standard_fields( $object ) {
		$object->add_control(
			'standard_filter_items',
			array(
				'label'        => esc_html__( 'Display category filter', 'sight' ),
				'type'         => Controls_Manager::SWITCHER,
				'return_value' => 'true',
				'default'      => 'true',
				'conditions'   => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'layout',
							'operator' => '==',
							'value'    => 'standard',
						),
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'projects',
						),
						array(
							'name'     => 'projects_filter_post_type',
							'operator' => '==',
							'value'    => 'sight-projects',
						),
					),
				),
			)
		);

		$object->add_control(
			'standard_pagination_type',
			array(
				'label'      => esc_html__( 'Pagination type', 'sight' ),
				'type'       => Controls_Manager::SELECT,
				'default'    => 'ajax',
				'options'    => array(
					'none'     => esc_html__( 'None', 'sight' ),
					'ajax'     => esc_html__( 'Load More', 'sight' ),
					'infinite' => esc_html__( 'Infinite Load', 'sight' ),
				),
				'conditions' => array(
					'relation' => 'and',
					'terms'    => array(
						array(
							'name'     => 'layout',
							'operator' => '==',
							'value'    => 'standard',
						),
						array(
							'name'     => 'source',
							'operator' => '==',
							'value'    => 'projects',
						),
					),
				),
			)
		);
	}
}

new Sight_Widget_Portfolio_Layouts();