ep_is_edit_mode() ) { return [ 'ep-styles' ]; } else { return [ 'ep-image-stack', 'tippy' ]; } } public function get_script_depends() { if ( $this->ep_is_edit_mode() ) { return [ 'popper', 'tippyjs', 'ep-scripts' ]; } else { return [ 'popper', 'tippyjs', 'ep-image-stack' ]; } } public function get_custom_help_url() { return 'https://youtu.be/maLIlug2RwM'; } protected function is_dynamic_content(): bool { return false; } protected function register_controls() { $this->start_controls_section( 'section_content_image_stack', [ 'label' => __( 'Image Stack', 'bdthemes-element-pack' ), ] ); $repeater = new Repeater(); $repeater->start_controls_tabs( 'item_content_tabs' ); $repeater->start_controls_tab( 'tab_item_content', [ 'label' => __( 'Content', 'bdthemes-element-pack' ) ] ); $repeater->add_control( 'media_type', [ 'label' => esc_html__( 'Media Type', 'bdthemes-element-pack' ), 'type' => Controls_Manager::CHOOSE, 'toggle' => false, 'default' => 'image', 'render_type' => 'template', 'options' => [ 'image' => [ 'title' => esc_html__( 'Image', 'bdthemes-element-pack' ), 'icon' => 'far fa-image' ], 'icon' => [ 'title' => esc_html__( 'Icon', 'bdthemes-element-pack' ), 'icon' => 'fas fa-star' ] ] ] ); $repeater->add_control( 'selected_icon', [ 'label' => __( 'Icon', 'bdthemes-element-pack' ), 'type' => Controls_Manager::ICONS, 'default' => [ 'value' => 'fas fa-star', 'library' => 'fa-solid', ], 'render_type' => 'template', 'condition' => [ 'media_type' => 'icon', ], 'label_block' => false, 'skin' => 'inline' ] ); $repeater->add_control( 'image', [ 'label' => __( 'Image', 'bdthemes-element-pack' ), 'type' => Controls_Manager::MEDIA, 'render_type' => 'template', 'default' => [ 'url' => Utils::get_placeholder_image_src(), ], 'condition' => [ 'media_type' => 'image' ] ] ); $repeater->add_control( 'link_url', [ 'label' => __( 'Link', 'bdthemes-element-pack' ), 'type' => Controls_Manager::URL, 'dynamic' => [ 'active' => true ], 'placeholder' => 'http://your-link.com', ] ); $repeater->end_controls_tab(); $repeater->start_controls_tab( 'tab_tooltip_text', [ 'label' => __( 'Tooltip', 'bdthemes-element-pack' ) ] ); $repeater->add_control( 'tooltip_text', [ 'label' => __( 'Text', 'bdthemes-element-pack' ), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], ] ); $repeater->add_control( 'tooltip_placement', [ 'label' => __( 'Placement', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SELECT, 'default' => 'top', 'options' => [ 'top' => __( 'Top', 'bdthemes-element-pack' ), 'bottom' => __( 'Bottom', 'bdthemes-element-pack' ), 'left' => __( 'Left', 'bdthemes-element-pack' ), 'right' => __( 'Right', 'bdthemes-element-pack' ), ], 'condition' => [ 'tooltip_text!' => '', ], ] ); $repeater->end_controls_tab(); $repeater->start_controls_tab( 'tab_item_style', [ 'label' => __( 'Style', 'bdthemes-element-pack' ) ] ); $repeater->add_control( 'icon_color', [ 'label' => __( 'Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-image-stack .bdt-ep-image-stack-item{{CURRENT_ITEM}}' => 'color: {{VALUE}};', '{{WRAPPER}} .bdt-image-stack .bdt-ep-image-stack-item{{CURRENT_ITEM}} svg' => 'fill: {{VALUE}};', ], 'condition' => [ 'media_type' => 'icon' ], ] ); $repeater->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'icon_background', 'types' => [ 'classic', 'gradient' ], 'exclude' => [ 'image' ], 'selector' => '{{WRAPPER}} .bdt-image-stack .bdt-ep-image-stack-item{{CURRENT_ITEM}} span, {{WRAPPER}} .bdt-image-stack .bdt-ep-image-stack-item{{CURRENT_ITEM}} a', 'condition' => [ 'media_type' => 'icon' ], ] ); $repeater->add_control( 'border_color_item', [ 'label' => __( 'Border Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-image-stack .bdt-ep-image-stack-item{{CURRENT_ITEM}} span, {{WRAPPER}} .bdt-ep-image-stack-item{{CURRENT_ITEM}} a' => 'border-color: {{VALUE}}', ], ] ); $repeater->end_controls_tab(); $repeater->end_controls_tabs(); $this->add_control( 'image_stack_items', [ 'show_label' => false, 'type' => Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'default' => [ [ 'image' => [ 'url' => Utils::get_placeholder_image_src() ], ], [ 'image' => [ 'url' => Utils::get_placeholder_image_src() ], ], [ 'image' => [ 'url' => Utils::get_placeholder_image_src() ], ], [ 'image' => [ 'url' => Utils::get_placeholder_image_src() ], ], ], 'title_field' => '{{{ tooltip_text }}}', ] ); $this->add_group_control( Group_Control_Image_Size::get_type(), [ 'name' => 'thumbnail_size', 'default' => 'medium', ] ); $this->add_responsive_control( 'alignment', [ 'label' => __( 'Alignment', 'bdthemes-element-pack' ), 'type' => Controls_Manager::CHOOSE, 'options' => [ 'left' => [ 'title' => __( 'Left', 'bdthemes-element-pack' ), 'icon' => 'eicon-text-align-left', ], 'center' => [ 'title' => __( 'Center', 'bdthemes-element-pack' ), 'icon' => 'eicon-text-align-center', ], 'right' => [ 'title' => __( 'Right', 'bdthemes-element-pack' ), 'icon' => 'eicon-text-align-right', ] ], 'default' => 'center', 'selectors' => [ '{{WRAPPER}}.elementor-widget-bdt-image-stack .elementor-widget-container' => 'text-align: {{VALUE}};' ] ] ); $this->end_controls_section(); //Style $this->start_controls_section( 'section_style_items', [ 'label' => __( 'Items', 'bdthemes-element-pack' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->start_controls_tabs( 'item_style_tabs' ); $this->start_controls_tab( 'tab_item_normal', [ 'label' => __( 'Normal', 'bdthemes-element-pack' ) ] ); $this->add_control( 'icon_color', [ 'label' => __( 'Icon Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-ep-image-stack-item' => 'color: {{VALUE}}', '{{WRAPPER}} .bdt-ep-image-stack-item svg' => 'fill: {{VALUE}}', ] ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'icon_background_color', 'types' => [ 'classic', 'gradient' ], 'exclude' => [ 'image' ], 'selector' => '{{WRAPPER}} .bdt-ep-image-stack-item span, {{WRAPPER}} .bdt-ep-image-stack-item a' ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'item_border', 'label' => esc_html__( 'Border', 'bdthemes-element-pack' ), 'fields_options' => [ 'border' => [ 'default' => 'solid', ], 'width' => [ 'default' => [ 'top' => '3', 'right' => '3', 'bottom' => '3', 'left' => '3', 'isLinked' => false, ], ], 'color' => [ 'default' => '#fff', ], ], 'selector' => '{{WRAPPER}} .bdt-ep-image-stack-item span, {{WRAPPER}} .bdt-ep-image-stack-item a', 'separator' => 'before', ] ); $this->add_responsive_control( 'item_border_radius', [ 'label' => __( 'Border Radius', 'bdthemes-element-pack' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .bdt-ep-image-stack-item,{{WRAPPER}} .bdt-ep-image-stack-item span, {{WRAPPER}} .bdt-ep-image-stack-item a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'item_size', [ 'label' => __( 'Item Size', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 10, 'max' => 200, ], ], 'selectors' => [ '{{WRAPPER}} .bdt-ep-image-stack-item span, {{WRAPPER}} .bdt-ep-image-stack-item a' => 'width: {{SIZE}}{{UNIT}}; min-width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'icon_size', [ 'label' => __( 'Icon Size', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'selectors' => [ '{{WRAPPER}} .bdt-ep-image-stack-item span, {{WRAPPER}} .bdt-ep-image-stack-item a' => 'font-size: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'item_spacing', [ 'label' => __( 'Spacing', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'selectors' => [ '{{WRAPPER}} .bdt-ep-image-stack-item:not(:last-child) span, {{WRAPPER}} .bdt-ep-image-stack-item:not(:last-child) a' => 'margin-right: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'item_stack_spacing', [ 'label' => __( 'Stack Spacing', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'selectors' => [ '{{WRAPPER}} .bdt-ep-image-stack-item:not(:first-child) a, {{WRAPPER}} .bdt-ep-image-stack-item:not(:first-child) span' => 'margin-left: -{{SIZE}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'item_box_shadow', 'label' => __( 'Box Shadow', 'bdthemes-element-pack' ), 'selector' => '{{WRAPPER}} .bdt-ep-image-stack-item span, {{WRAPPER}} .bdt-ep-image-stack-item a', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_item_hover', [ 'label' => __( 'Hover', 'bdthemes-element-pack' ) ] ); $this->add_control( 'icon_color_hover', [ 'label' => __( 'Icon Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .bdt-ep-image-stack-item:hover' => 'color: {{VALUE}}', '{{WRAPPER}} .bdt-ep-image-stack-item:hover svg' => 'fill: {{VALUE}}', ] ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'icon_background_color_hover', 'types' => [ 'classic', 'gradient' ], 'exclude' => [ 'image' ], 'selector' => '{{WRAPPER}} .bdt-ep-image-stack-item:hover span, {{WRAPPER}} .bdt-ep-image-stack-item:hover a' ] ); $this->add_control( 'item_hover_border_color', [ 'label' => esc_html__( 'Border Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'condition' => [ 'item_border_border!' => '', ], 'selectors' => [ '{{WRAPPER}} .bdt-ep-image-stack-item:hover span, {{WRAPPER}} .bdt-ep-image-stack-item:hover a' => 'border-color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'item_box_shadow_hover', 'label' => __( 'Box Shadow', 'bdthemes-element-pack' ), 'selector' => '{{WRAPPER}} .bdt-ep-image-stack-item:hover span, {{WRAPPER}} .bdt-ep-image-stack-item:hover a', ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'section_style_stack_animations', [ 'label' => __( 'Stack Animations', 'bdthemes-element-pack' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->start_controls_tabs( 'stack_style_tabs' ); $this->start_controls_tab( 'tab_stack_item_hover', [ 'label' => __( 'Item Hover', 'bdthemes-element-pack' ) ] ); $this->add_control( 'item_translate_toggle_hover', [ 'label' => __( 'Translate', 'bdthemes-element-pack' ), 'type' => Controls_Manager::POPOVER_TOGGLE, 'return_value' => 'yes', ] ); $this->start_popover(); $this->add_responsive_control( 'item_effect_transx_hover', [ 'label' => esc_html__( 'Translate X', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -100, 'max' => 100, ], ], 'condition' => [ 'item_translate_toggle_hover' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-trans-x-hover: {{SIZE}}px;' ], ] ); $this->add_responsive_control( 'item_effect_transy_hover', [ 'label' => esc_html__( 'Translate Y', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -100, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-trans-y-hover: {{SIZE}}px;' ], 'condition' => [ 'item_translate_toggle_hover' => 'yes', ], ] ); $this->end_popover(); $this->add_control( 'item_rotate_toggle_hover', [ 'label' => __( 'Rotate', 'bdthemes-element-pack' ), 'type' => Controls_Manager::POPOVER_TOGGLE, 'return_value' => 'yes', ] ); $this->start_popover(); $this->add_responsive_control( 'item_effect_rotatex_hover', [ 'label' => esc_html__( 'Rotate X', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -180, 'max' => 180, ], ], 'condition' => [ 'item_rotate_toggle_hover' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-rotate-x-hover: {{SIZE||0}}deg;' ], ] ); $this->add_responsive_control( 'item_effect_rotatey_hover', [ 'label' => esc_html__( 'Rotate Y', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -180, 'max' => 180, ], ], 'condition' => [ 'item_rotate_toggle_hover' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-rotate-y-hover: {{SIZE||0}}deg;' ], ] ); $this->add_responsive_control( 'item_effect_rotatez_hover', [ 'label' => __( 'Rotate Z', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -180, 'max' => 180, ], ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-rotate-z-hover: {{SIZE||0}}deg;' ], 'condition' => [ 'item_rotate_toggle_hover' => 'yes', ], ] ); $this->end_popover(); $this->add_control( 'item_scale_hover', [ 'label' => __( 'Scale', 'bdthemes-element-pack' ), 'type' => Controls_Manager::POPOVER_TOGGLE, 'return_value' => 'yes', ] ); $this->start_popover(); $this->add_responsive_control( 'item_effect_scalex_hover', [ 'label' => esc_html__( 'Scale X', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 10, 'step' => 0.1 ], ], 'condition' => [ 'item_scale_hover' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-scale-x-hover: {{SIZE}};' ], ] ); $this->add_responsive_control( 'item_effect_scaley_hover', [ 'label' => esc_html__( 'Scale Y', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 10, 'step' => 0.1 ], ], 'condition' => [ 'item_scale_hover' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-scale-y-hover: {{SIZE}};' ], ] ); $this->end_popover(); $this->add_control( 'item_skew_hover', [ 'label' => __( 'Skew', 'bdthemes-element-pack' ), 'type' => Controls_Manager::POPOVER_TOGGLE, 'return_value' => 'yes', ] ); $this->start_popover(); $this->add_responsive_control( 'item_effect_skewx_hover', [ 'label' => esc_html__( 'Skew X', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -180, 'max' => 180, ], ], 'condition' => [ 'item_skew_hover' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-skew-x-hover: {{SIZE}}deg;' ], ] ); $this->add_responsive_control( 'item_effect_skewy_hover', [ 'label' => esc_html__( 'Skew Y', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -180, 'max' => 180, ], ], 'condition' => [ 'item_skew_hover' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-skew-y-hover: {{SIZE}}deg;' ], ] ); $this->end_popover(); $this->add_control( 'item_effect_transition', [ 'label' => __( 'Transition', 'bdthemes-element-pack' ), 'type' => Controls_Manager::POPOVER_TOGGLE, 'render_type' => 'none', ] ); $this->start_popover(); $this->add_control( 'item_effect_transition_duration', [ 'label' => esc_html__( 'Duration (ms)', 'bdthemes-element-pack' ), 'type' => Controls_Manager::TEXT, 'default' => '300', 'condition' => [ 'item_effect_transition' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-transition-duration: {{VALUE}}ms;', ], ] ); $this->add_control( 'item_effect_transition_delay', [ 'label' => esc_html__( 'Delay (ms)', 'bdthemes-element-pack' ), 'type' => Controls_Manager::TEXT, 'condition' => [ 'item_effect_transition' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-transition-delay: {{VALUE}}ms;', ], ] ); $this->add_control( 'item_effect_transition_easing', [ 'label' => esc_html__( 'Easing', 'bdthemes-element-pack' ), 'description' => sprintf( __( 'If you want use Cubic Bezier easing, Go %1s HERE %2s', 'bdthemes-element-pack' ), '', '' ), 'type' => Controls_Manager::TEXT, 'default' => 'ease-out', 'condition' => [ 'item_effect_transition' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-item-transition-easing: {{VALUE}};', ], ] ); $this->end_popover(); $this->end_controls_tab(); $this->start_controls_tab( 'tab_stack_hover', [ 'label' => __( 'Stack Hover', 'bdthemes-element-pack' ) ] ); $this->add_control( 'stack_translate_toggle_normal', [ 'label' => __( 'Translate', 'bdthemes-element-pack' ), 'type' => Controls_Manager::POPOVER_TOGGLE, 'return_value' => 'yes', ] ); $this->start_popover(); $this->add_responsive_control( 'stack_effect_transx_normal', [ 'label' => esc_html__( 'Translate X', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -100, 'max' => 100, ], ], 'condition' => [ 'stack_translate_toggle_normal' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-stack-trans-x-normal: {{SIZE}}px;' ], ] ); $this->add_responsive_control( 'stack_effect_transy_normal', [ 'label' => esc_html__( 'Translate Y', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -100, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}}' => '--ep-stack-trans-y-normal: {{SIZE}}px;' ], 'condition' => [ 'stack_translate_toggle_normal' => 'yes', ], ] ); $this->end_popover(); $this->add_control( 'stack_rotate_toggle_normal', [ 'label' => __( 'Rotate', 'bdthemes-element-pack' ), 'type' => Controls_Manager::POPOVER_TOGGLE, 'return_value' => 'yes', ] ); $this->start_popover(); $this->add_responsive_control( 'stack_effect_rotatex_normal', [ 'label' => esc_html__( 'Rotate X', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -180, 'max' => 180, ], ], 'condition' => [ 'stack_rotate_toggle_normal' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-stack-rotate-x-normal: {{SIZE||0}}deg;' ], ] ); $this->add_responsive_control( 'stack_effect_rotatey_normal', [ 'label' => esc_html__( 'Rotate Y', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -180, 'max' => 180, ], ], 'condition' => [ 'stack_rotate_toggle_normal' => 'yes', ], 'selectors' => [ '{{WRAPPER}}' => '--ep-stack-rotate-y-normal: {{SIZE||0}}deg;' ], ] ); $this->add_responsive_control( 'stack_effect_rotatez_normal', [ 'label' => __( 'Rotate Z', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => -180, 'max' => 180, ], ], 'selectors' => [ '{{WRAPPER}}' => '--ep-stack-rotate-z-normal: {{SIZE||0}}deg;' ], 'condition' => [ 'stack_rotate_toggle_normal' => 'yes', ], ] ); $this->end_popover(); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'section_style_tooltip', [ 'label' => __( 'Tooltip', 'bdthemes-element-pack' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'tooltip_width', [ 'label' => esc_html__( 'Width', 'bdthemes-element-pack' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px', 'em', ], 'range' => [ 'px' => [ 'min' => 50, 'max' => 500, ], ], 'selectors' => [ '.tippy-box[data-theme="bdt-tippy-{{ID}}"]' => 'width: {{SIZE}}{{UNIT}};', ], 'render_type' => 'template', ] ); $this->add_control( 'tooltip_text_align', [ 'label' => esc_html__( 'Text Alignment', 'bdthemes-element-pack' ), 'type' => Controls_Manager::CHOOSE, 'default' => 'center', 'options' => [ 'left' => [ 'title' => esc_html__( 'Left', 'bdthemes-element-pack' ), 'icon' => 'eicon-text-align-left', ], 'center' => [ 'title' => esc_html__( 'Center', 'bdthemes-element-pack' ), 'icon' => 'eicon-text-align-center', ], 'right' => [ 'title' => esc_html__( 'Right', 'bdthemes-element-pack' ), 'icon' => 'eicon-text-align-right', ], ], 'selectors' => [ '.tippy-box[data-theme="bdt-tippy-{{ID}}"]' => 'text-align: {{VALUE}};', ], ] ); $this->add_control( 'tooltip_color', [ 'label' => esc_html__( 'Text Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '.tippy-box[data-theme="bdt-tippy-{{ID}}"]' => 'color: {{VALUE}}', ], 'separator' => 'before' ] ); $this->add_control( 'tooltip_arrow_color', [ 'label' => esc_html__( 'Arrow Color', 'bdthemes-element-pack' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '.tippy-box[data-theme="bdt-tippy-{{ID}}"] .tippy-arrow' => 'color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'tooltip_background', 'selector' => '.tippy-box[data-theme="bdt-tippy-{{ID}}"], .tippy-box[data-theme="bdt-tippy-{{ID}}"] .tippy-backdrop', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'tooltip_border', 'label' => esc_html__( 'Border', 'bdthemes-element-pack' ), 'placeholder' => '1px', 'default' => '1px', 'selector' => '.tippy-box[data-theme="bdt-tippy-{{ID}}"]', ] ); $this->add_responsive_control( 'tooltip_border_radius', [ 'label' => __( 'Border Radius', 'bdthemes-element-pack' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '.tippy-box[data-theme="bdt-tippy-{{ID}}"]' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'tooltip_padding', [ 'label' => __( 'Padding', 'bdthemes-element-pack' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', '%' ], 'selectors' => [ '.tippy-box[data-theme="bdt-tippy-{{ID}}"]' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'render_type' => 'template', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'tooltip_typography', 'selector' => '.tippy-box[data-theme="bdt-tippy-{{ID}}"]', ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'tooltip_box_shadow', 'selector' => '.tippy-box[data-theme="bdt-tippy-{{ID}}"]', ] ); $this->end_controls_section(); } protected function render_media( $item ) { $settings = $this->get_settings_for_display(); ?> 'true' ] ); ?> ', esc_url( $item['image']['url'] ), esc_html( $item['tooltip_text'] ) ); } else { print ( wp_get_attachment_image( $item['image']['id'], $settings['thumbnail_size_size'], false, [ 'alt' => esc_html( $item['tooltip_text'] ) ] ) ); } } ?> get_settings_for_display(); if ( empty( $settings['image_stack_items'] ) ) { return; } ?>
$item ) : $this->add_render_attribute( 'stack-item', 'class', 'bdt-ep-image-stack-item elementor-repeater-item-' . esc_attr( $item['_id'] ), true ); if ( isset( $item['tooltip_text'] ) && ! empty( $item['tooltip_text'] ) ) { // Tooltip settings $this->add_render_attribute( 'stack-item', 'class', [ 'bdt-ep-image-stack-item elementor-repeater-item-' . esc_attr( $item['_id'] ), 'bdt-tippy-tooltip', ], true ); $this->add_render_attribute( 'stack-item', 'data-tippy', '', true ); $this->add_render_attribute( 'stack-item', 'data-tippy-arrow', 'true', true ); $this->add_render_attribute( 'stack-item', 'data-tippy-placement', htmlspecialchars( $item['tooltip_placement'], ENT_QUOTES, 'UTF-8' ), true ); $this->add_render_attribute( 'stack-item', 'data-tippy-content', htmlspecialchars( $item['tooltip_text'], ENT_QUOTES, 'UTF-8' ), true ); } if ( ! empty( $item['link_url']['url'] ) ) { $this->add_link_attributes( 'link-wrap' . $index, $item['link_url'] ); } ?>
print_render_attribute_string( 'stack-item' ); ?>> print_render_attribute_string( 'link-wrap' . $index ); ?>> render_media( $item ); ?> render_media( $item ); ?>