$this->end_controls_section(); $this->start_controls_section( 'section_close_button', [ 'label' => esc_html__( 'Close Button', 'elementor-pro' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'close_button!' => '', ], ] ); $this->add_control( 'close_button_position', [ 'label' => esc_html__( 'Position', 'elementor-pro' ), 'type' => Controls_Manager::SELECT, 'options' => [ '' => esc_html__( 'Inside', 'elementor-pro' ), 'outside' => esc_html__( 'Outside', 'elementor-pro' ), ], 'frontend_available' => true, ] ); $this->add_responsive_control( 'close_button_vertical', [ 'label' => esc_html__( 'Vertical Position', 'elementor-pro' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ '%', 'px' ], 'range' => [ '%' => [ 'max' => 100, 'min' => 0, 'step' => 0.1, ], 'px' => [ 'max' => 500, 'min' => -500, ], ], 'default' => [ 'unit' => '%', ], 'tablet_default' => [ 'unit' => '%', ], 'mobile_default' => [ 'unit' => '%', ], 'selectors' => [ '{{WRAPPER}} .dialog-close-button' => 'top: {{SIZE}}{{UNIT}}', ], ] ); $this->add_responsive_control( 'close_button_horizontal', [ 'label' => esc_html__( 'Horizontal Position', 'elementor-pro' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ '%', 'px' ], 'range' => [ '%' => [ 'max' => 100, 'min' => 0, 'step' => 0.1, ], 'px' => [ 'max' => 500, 'min' => -500, ], ], 'default' => [ 'unit' => '%', ], 'tablet_default' => [ 'unit' => '%', ], 'mobile_default' => [ 'unit' => '%', ], 'selectors' => [ 'body:not(.rtl) {{WRAPPER}} .dialog-close-button' => 'right: {{SIZE}}{{UNIT}}', 'body.rtl {{WRAPPER}} .dialog-close-button' => 'left: {{SIZE}}{{UNIT}}', ], 'separator' => 'after', ] ); $this->start_controls_tabs( 'close_button_style_tabs' ); $this->start_controls_tab( 'tab_x_button_normal', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ), ] ); $this->add_control( 'close_button_color', [ 'label' => esc_html__( 'Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .dialog-close-button i' => 'color: {{VALUE}}', '{{WRAPPER}} .dialog-close-button svg' => 'fill: {{VALUE}}', ], ] ); $this->add_control( 'close_button_background_color', [ 'label' => esc_html__( 'Background Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .dialog-close-button' => 'background-color: {{VALUE}}', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_x_button_hover', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ), ] ); $this->add_control( 'close_button_hover_color', [ 'label' => esc_html__( 'Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .dialog-close-button:hover i' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'close_button_hover_background_color', [ 'label' => esc_html__( 'Background Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .dialog-close-button:hover' => 'background-color: {{VALUE}}', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_responsive_control( 'icon_size', [ 'label' => esc_html__( 'Size', 'elementor-pro' ), 'type' => Controls_Manager::SLIDER, 'selectors' => [ '{{WRAPPER}} .dialog-close-button' => 'font-size: {{SIZE}}{{UNIT}}', ], 'separator' => 'before', ] ); $this->end_controls_section(); $this->start_controls_section( 'section_advanced', [ 'label' => esc_html__( 'Advanced', 'elementor-pro' ), 'tab' => Controls_Manager::TAB_ADVANCED, ] ); $this->add_control( 'close_button_delay', [ 'label' => esc_html__( 'Show Close Button After', 'elementor-pro' ) . ' (sec)', 'type' => Controls_Manager::NUMBER, 'min' => 0.1, 'max' => 60, 'step' => 0.1, 'condition' => [ 'close_button' => 'yes', ], 'frontend_available' => true, ] ); $this->add_control( 'close_automatically', [ 'label' => esc_html__( 'Automatically Close After', 'elementor-pro' ) . ' (sec)', 'type' => Controls_Manager::NUMBER, 'min' => 0.1, 'max' => 60, 'step' => 0.1, 'frontend_available' => true, ] ); $this->add_control( 'prevent_close_on_background_click', [ 'label' => esc_html__( 'Prevent Closing on Overlay', 'elementor-pro' ), 'type' => Controls_Manager::SWITCHER, 'frontend_available' => true, ] ); $this->add_control( 'prevent_close_on_esc_key', [ 'label' => esc_html__( 'Prevent Closing on ESC key', 'elementor-pro' ), 'type' => Controls_Manager::SWITCHER, 'frontend_available' => true, ] ); $this->add_control( 'prevent_scroll', [ 'label' => esc_html__( 'Disable Page Scrolling', 'elementor-pro' ), 'type' => Controls_Manager::SWITCHER, 'frontend_available' => true, ] ); $this->add_control( 'avoid_multiple_popups', [ 'label' => esc_html__( 'Avoid Multiple Popups', 'elementor-pro' ), 'type' => Controls_Manager::SWITCHER, 'description' => esc_html__( 'If the user has seen another popup on the page hide this popup', 'elementor-pro' ), 'frontend_available' => true, ] ); $this->add_control( 'open_selector', [ 'label' => esc_html__( 'Open By Selector', 'elementor-pro' ), 'type' => Controls_Manager::TEXT, 'placeholder' => esc_html__( '#id, .class', 'elementor-pro' ), 'description' => esc_html__( 'In order to open a popup on selector click, please set your Popup Conditions', 'elementor-pro' ), 'frontend_available' => true, ] ); $this->add_responsive_control( 'margin', [ 'label' => esc_html__( 'Margin', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'separator' => 'before', 'selectors' => [ '{{WRAPPER}} .dialog-widget-content' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'padding', [ 'label' => esc_html__( 'Padding', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '{{WRAPPER}} .dialog-message' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_control( 'classes', [ 'label' => esc_html__( 'CSS Classes', 'elementor-pro' ), 'type' => Controls_Manager::TEXT, 'title' => esc_html__( 'Add your custom class WITHOUT the dot. e.g: my-class', 'elementor-pro' ), 'frontend_available' => true, ] ); $this->end_controls_section(); Plugin::elementor()->controls_manager->add_custom_css_controls( $this ); } protected function get_remote_library_config() { $config = parent::get_remote_library_config(); $config['type'] = 'popup'; $config['default_route'] = 'templates/popups'; $config['autoImportSettings'] = true; return $config; } }