get_name() === 'jltma_popup') { return; } // Use the document's actual settings tab (Post uses 'content', Library\Page uses 'settings') $tabs = $element->get_tabs_controls(); $tab = isset($tabs[Controls_Manager::TAB_SETTINGS]) ? Controls_Manager::TAB_SETTINGS : array_keys($tabs)[0]; $element->start_controls_section( 'jltma_reading_progress_bar_section', [ 'tab' => $tab, 'label' => esc_html__('Reading Progress Bar ', 'master-addons' ) . JLTMA_EXTENSION_BADGE ] ); $element->add_control( 'jltma_enable_reading_progress_bar', [ 'type' => Controls_Manager::SWITCHER, 'label' => esc_html__('Enable Reading Progress Bar', 'master-addons' ), 'default' => '', 'label_on' => esc_html__('Yes', 'master-addons' ), 'label_off' => esc_html__('No', 'master-addons' ), 'return_value' => 'yes' ] ); $element->add_control( 'jltma_reading_progress_bar_position', [ 'label' => esc_html__('Position', 'master-addons' ), 'type' => Controls_Manager::SELECT, 'default' => 'top', 'label_block' => false, 'options' => [ 'top' => esc_html__('Top', 'master-addons' ), 'bottom' => esc_html__('Bottom', 'master-addons' ), ], 'condition' => [ 'jltma_enable_reading_progress_bar' => 'yes', ], 'selectors' => [ '.ma-el-page-scroll-indicator.bottom' => 'top:inherit !important; bottom:0;', '.ma-el-page-scroll-indicator.top' => 'top:0px;', '.logged-in.admin-bar .ma-el-page-scroll-indicator.top' => 'top:32px;', ], ] ); $element->add_control( 'jltma_reading_progress_bar_height', [ 'label' => esc_html__('Height', 'master-addons' ), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', 'size' => 5, ], 'selectors' => [ '.ma-el-page-scroll-indicator, .ma-el-scroll-indicator' => 'height: {{SIZE}}{{UNIT}}', ], 'condition' => [ 'jltma_enable_reading_progress_bar' => 'yes', ], ] ); $element->add_control( 'jltma_reading_progress_bar_bg_color', [ 'label' => esc_html__('Background Color', 'master-addons' ), 'type' => Controls_Manager::COLOR, 'default' => '#fff', 'selectors' => [ '.ma-el-page-scroll-indicator' => 'background: {{VALUE}}', ], 'condition' => [ 'jltma_enable_reading_progress_bar' => 'yes', ], ] ); $element->add_control( 'jltma_reading_progress_bar_fill_color', [ 'label' => esc_html__('Fill Color', 'master-addons' ), 'type' => Controls_Manager::COLOR, 'default' => '#007bff', 'selectors' => [ '.ma-el-scroll-indicator' => 'background: {{VALUE}}', ], 'condition' => [ 'jltma_enable_reading_progress_bar' => 'yes', ], ] ); $element->add_control( 'jltma_reading_progress_bar_animation_speed', [ 'label' => esc_html__('Animation Speed', 'master-addons' ), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 1000, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', 'size' => 50, ], 'selectors' => [ '.ma-el-scroll-indicator' => 'transition: width {{SIZE}}ms ease;', ], 'condition' => [ 'jltma_enable_reading_progress_bar' => 'yes', ], ] ); $element->end_controls_section(); } public function jltma_reading_progress_bar_styles() { if (did_action('elementor/loaded')) { $page_settings_manager = \Elementor\Core\Settings\Manager::get_settings_managers('page'); $page_settings_model = $page_settings_manager->get_model(get_the_ID()); $jltma_r_p_b_height = $page_settings_model->get_settings('jltma_reading_progress_bar_height'); $jltma_r_p_b_bg_color = $page_settings_model->get_settings('jltma_reading_progress_bar_bg_color'); $jltma_r_p_b_fill_color = $page_settings_model->get_settings('jltma_reading_progress_bar_fill_color'); $jltma_r_p_b_animation_speed = $page_settings_model->get_settings('jltma_reading_progress_bar_animation_speed'); $jltma_rbp_position = $page_settings_model->get_settings('jltma_reading_progress_bar_position'); // $jltma_r_p_b_custom_css = ""; $jltma_r_p_b_custom_css = ".ma-el-page-scroll-indicator{ position: sticky;}"; if ($jltma_r_p_b_fill_color != "") { if(!$jltma_r_p_b_bg_color) $jltma_r_p_b_bg_color = 'transparent'; $jltma_r_p_b_custom_css .= ".ma-el-page-scroll-indicator{ background: {$jltma_r_p_b_bg_color};} .ma-el-scroll-indicator{ background: {$jltma_r_p_b_fill_color};} .ma-el-page-scroll-indicator, .ma-el-scroll-indicator{ height: {$jltma_r_p_b_height['size']}px;}"; } if (isset($jltma_rbp_position) && $jltma_rbp_position != "") { if ($jltma_rbp_position == "top") { $jltma_r_p_b_custom_css .= '.ma-el-page-scroll-indicator{top:0px;}'; } else { $jltma_r_p_b_custom_css .= '.ma-el-page-scroll-indicator{top:inherit !important; bottom:0;}'; } } if (Helper::jltma_elementor()->editor->is_edit_mode() || Helper::jltma_elementor()->preview->is_preview_mode()) { if ($jltma_rbp_position == "top") { $jltma_r_p_b_custom_css .= '.ma-el-page-scroll-indicator{top:0px;}'; } else { $jltma_r_p_b_custom_css .= '.ma-el-page-scroll-indicator{top:inherit !important; bottom:0;}'; } } // Inline CSS through the enqueue API (late-printed in the footer) instead of a hardcoded