PageSourceSearch

https://sofia-art-galleries.com/wp-content/plugins/citadelawp-pro/assets/js/script.js?ver=1784997837

js sofia-art-galleries.com collected 2026-10-02 08:22:20 UTC 10,088 bytes, 310 lines download raw bytes

1/*
2*	Citadela Pro plugin javascripts
3*
4*/
5
6jQuery(document).ready(function(){
7	"use strict";
8	// functionality for widget titles deprecated from WP 5.8
9	//citadelaWidgetTitles();
10	//citadelaCollapsibleSidebarsWidgets();
11	citadelaCollapsibleFooterWidgets();
12	citadelaWoocommerceCart();
13	citadelaMobileSettings();
14	citadelaProTriggers();
15});
16
17/* Window Resize Hook */
18jQuery(window).resize(function(){
19	// functionality for widget titles deprecated from WP 5.8
20	//citadelaCollapsibleSidebarsWidgets();
21	citadelaCollapsibleFooterWidgets();
22	citadelaClearStickyHeaderClasses();
23
24});
25
26function citadelaProTriggers(){
27	jQuery( 'body.sticky-header-enabled header#masthead' ).on( 'ctdl_sticky_header_toggled', function(e){
28		citadelaCloseAllTopItemsSubmenus();
29		citadelaMainMenuBurger();
30	});
31
32	jQuery( 'body' ).on( 'ctdl_device_design_swap', function(e, device){
33		var $body = jQuery( 'body' );
34
35		citadelaMobileSettings();
36
37		if( $body.find('header#masthead').hasClass('is-sticky') || ( $body.hasClass('header-scrolled') && $body.hasClass(`sticky-header-${device}-full`) ) ){
38			citadelaRestartStickyHeader();
39		}
40
41		if(  $body.hasClass('sticky-header-enabled') ){
42			var $header = jQuery('body').find('header#masthead');
43			var $custom_header_logo = $header.find('.custom-header-logo');
44			var $default_logo = $header.find('.default-logo');
45
46			// check if device may have sticky header
47			if(  $body.hasClass(`sticky-header-${device}-full`) ){
48				if( $header.hasClass('is-sticky') ){
49					citadelaSwitchLogo( $custom_header_logo, $default_logo );
50				}else{
51					citadelaSwitchLogo( $default_logo, $custom_header_logo );
52				}
53			}else{
54				//set logo for non sticky header
55				citadelaSwitchLogo( $default_logo, $custom_header_logo );
56			}
57		}
58
59	});
60
61}
62function citadelaRestartStickyHeader(){
63	var $body = jQuery( 'body' );
64	$body.find('header#masthead').removeClass('is-sticky');
65	$body.find('.sticky-header-wrapper').css('height', '');
66	// show sticky header with delay because of css transitions in header elements
67	setTimeout(function(){
68		citadelaShowStickyHeader($body.find('.sticky-header-wrapper'));
69	},300 );
70
71}
72function citadelaMobileSettings(){
73	var $body = jQuery( 'body' );
74	var $logo_wrapper = jQuery( 'header#masthead .logo-wrapper' );
75	var $site_title = jQuery( 'header#masthead .site-title' );
76	var $logo_wrapper_maxWidth = $logo_wrapper.data( 'mobile-max-width' );
77	var $site_title_fontSize = $site_title.data( 'mobile-font-size' );
78	var isResponsive = $body.hasClass( 'mobile-screen-width' );
79	
80	if( isResponsive ){
81		if( $logo_wrapper_maxWidth ){
82			$logo_wrapper.css('max-width', $logo_wrapper_maxWidth['mobile']);
83		}
84		if( $site_title_fontSize ){
85			$site_title.css('font-size', $site_title_fontSize['mobile']);
86		}
87		
88	}else{
89		if( $logo_wrapper_maxWidth ){
90			$logo_wrapper.css('max-width', $logo_wrapper_maxWidth['desktop']);
91		}
92		if( $site_title_fontSize ){
93			$site_title.css('font-size', $site_title_fontSize['desktop']);
94		}
95	}
96}
97
98function citadelaClearStickyHeaderClasses(){
99	var $body = jQuery('body');
100	var isResponsive = $body.hasClass( 'mobile-screen-width' );
101	if( isResponsive ){
102		if( ! $body.hasClass( 'sticky-header-mobile-full' ) ){
103			$body.find('header.is-sticky').removeClass('is-sticky');
104			$body.find('.sticky-header-wrapper').css('height', '');
105		}
106	}else{
107		if( ! $body.hasClass( 'sticky-header-desktop-full' ) ){
108			$body.find('header.is-sticky').removeClass('is-sticky');
109			$body.find('.sticky-header-wrapper').css('height', '');
110		}
111	}
112}
113
114function citadelaHideStickyHeader( $wrapper ){
115	var $body = jQuery('body');
116	var $header = $wrapper.find('#masthead');
117	if( 
118		( $body.hasClass( 'mobile-screen-width' ) && $body.hasClass( 'sticky-header-mobile-full' ) )
119		|| ( ! $body.hasClass( 'mobile-screen-width' ) && $body.hasClass( 'sticky-header-desktop-full' ) )
120	){
121		$wrapper.css( 'height', '');
122		$wrapper.find('#masthead').removeClass('is-sticky');
123		citadelaSwitchLogo( $header.find('.default-logo'), $header.find('.custom-header-logo') );
124		$wrapper.find('#masthead').trigger('ctdl_sticky_header_toggled');
125	}
126}
127function citadelaShowStickyHeader( $wrapper ){
128	var $body = jQuery('body');
129	var $header = $wrapper.find('#masthead');
130	if( 
131		( $body.hasClass( 'mobile-screen-width' ) && $body.hasClass( 'sticky-header-mobile-full' ) )
132		|| ( ! $body.hasClass( 'mobile-screen-width' ) && $body.hasClass( 'sticky-header-desktop-full' ) )
133	){
134		if( ! $body.hasClass('custom-header-over-content') ){
135			$wrapper.css( 'height', $header.attr('data-offset') + "px" );
136		}
137		if( ! $header.hasClass('is-sticky') ){
138			// set sticky header parameters while it's hidden
139			$header.css('visibility', 'hidden').addClass('is-sticky');
140			citadelaSwitchLogo( $header.find('.custom-header-logo'), $header.find('.default-logo') );
141			$header.trigger('ctdl_sticky_header_toggled');
142			// finally show sticky header
143			$header.hide().css('visibility', '').delay(1).slideDown();
144		}
145	}
146}
147
148function citadelaSwitchLogo( from, to, cb = false ){
149	if( from.length && to.length ){
150		from.fadeOut( 0, () => {
151			to.fadeIn( 0, () => { if( cb ) cb() } )
152		} );
153	}
154}
155function citadelaWoocommerceCart(){
156	if( ! jQuery('.citadela-woocommerce-minicart').length ) return;
157	var $cart = jQuery('.citadela-woocommerce-minicart');
158	$cart.find('.cart-header').on('click', function(e){
159		//close all submenus
160		$mainMenuUl = jQuery('#masthead').find('.citadela-menu-container').find('ul.citadela-menu');
161		$mainMenuUl.find('.menu-item.opened, .menu-item-wrapper.opened, .sub-menu.opened').each(function(){
162			jQuery(this).removeClass('opened');
163		});
164
165		var $body = jQuery('body');
166		var isResponsive = $body.hasClass('responsive-menu');
167		if( $cart.hasClass('opened') ){
168			$cart.removeClass('opened');
169			$body.removeClass('cart-opened');
170		}else{
171			$cart.addClass('opened');
172			if( isResponsive ){
173				$body.addClass('cart-opened');
174			}
175		}
176	});
177
178	jQuery(document.body).on('added_to_cart removed_from_cart wc_fragments_refreshed', function(e){
179		//update class in main holder
180		var $count = parseInt( jQuery('.citadela-woocommerce-minicart .cart-count span').html() );
181		if( typeof $count === 'number'){
182			var $cart = jQuery('.citadela-woocommerce-minicart');
183			if( $count === 0 ){
184				$cart.addClass('is-empty');
185			}else{
186				$cart.removeClass('is-empty');
187			}
188			citadelaMainMenuBurger();
189		}
190	});
191
192}
193
194function citadelaWidgetTitles(){
195	var $sidebarWidgets = jQuery('aside#secondary').find('.widget');
196	var $footerWidgets = jQuery('#footer-widgets').find('.widget');
197	var $widgets = jQuery.merge($sidebarWidgets, $footerWidgets);
198	var $widget;
199
200	if($widgets.length){
201		$widgets.each(function(){
202			$widget = jQuery(this);
203			if(citadelaIsEmptyWidgetTitle($widget)){
204				$widget.find('div.widget-title').addClass('no-title');
205			}
206		});
207	}
208}
209
210function citadelaCollapsibleFooterWidgets(){
211	if( ! jQuery('body').hasClass('footer-collapsible-widgets-enabled') ){
212		return;
213	}
214	var $footer = jQuery('footer#colophon');
215	var $footerWidgetsButton = $footer.find('.footer-widgets-button');
216	var $footerWidgetsArea = $footer.find('#footer-widgets');
217
218	if( citadela_isResponsive(600) ){
219		//before first load
220		if( ! jQuery('body').hasClass('footer-collapsible-widgets') && jQuery('body').hasClass('footer-widgets-default-opened')){
221			$footerWidgetsButton.addClass('opened').removeClass('hidden');
222			$footerWidgetsArea.addClass('collapsible-widgets opened');
223		}else{
224			$footerWidgetsButton.removeClass('hidden');
225			$footerWidgetsArea.addClass('collapsible-widgets');
226		}
227		jQuery('body').addClass('footer-collapsible-widgets');
228	}else{
229		$footerWidgetsButton.addClass('hidden').removeClass('opened');
230		$footerWidgetsArea.removeClass('collapsible-widgets opened');
231		jQuery('body').removeClass('footer-collapsible-widgets');
232	}
233
234	$footerWidgetsButton.off();
235	$footerWidgetsButton.on('click', function(e){
236		if($footerWidgetsButton.hasClass('opened')){
237			$footerWidgetsButton.removeClass('opened');
238			$footerWidgetsArea.removeClass('opened');
239		}else{
240			$footerWidgetsButton.addClass('opened');
241			$footerWidgetsArea.addClass('opened');
242		}
243	});
244
245}
246
247
248function citadelaCollapsibleSidebarsWidgets(){
249	var $sidebar = jQuery('aside#secondary');
250	var $widgets = $sidebar.find('.widget');
251	if($widgets.length){
252		$widgets.each(function(){
253			$widget = jQuery(this);
254			if( citadela_isResponsive(1024) ){
255				jQuery('body').addClass('sidebar-collapsible-widgets');
256				citadelaApplyCollapsibleSidebarWidget($widget, $sidebar);
257			}else{
258				jQuery('body').removeClass('sidebar-collapsible-widgets');
259				citadelaDisableCollapsibleSidebarWidget($widget, $sidebar);
260			}
261		});
262	}
263}
264
265function citadelaApplyCollapsibleSidebarWidget($widget, $sidebar){
266	if( !$widget.hasClass('collapsible-widget')){
267		$widgetTitle = $widget.find('div.widget-title');
268		if( ! $widgetTitle.hasClass('no-title') ){
269			
270			if( ( $sidebar.hasClass('left-widget-area') && jQuery('body').hasClass('left-widgets-default-opened') )
271			|| ( $sidebar.hasClass('right-widget-area') && jQuery('body').hasClass('right-widgets-default-opened') ) ){
272				$widget.addClass('opened');
273			}else{
274				$widget.find('div.widget-container').hide();
275			}
276			
277			$widgetTitle.on('click', function(e){
278				e.preventDefault();
279				var $clickedWidget = jQuery(this).parent('.widget');
280				var $clickedWidgetContainer = $clickedWidget.find('.widget-container');
281				$clickedWidget.toggleClass('opened');
282				if($clickedWidget.hasClass('opened')){
283					$clickedWidgetContainer.slideDown();
284				}else{
285					$clickedWidgetContainer.slideUp();
286				}
287
288			});
289		}
290	}
291	$widget.addClass('collapsible-widget');
292};
293
294function citadelaDisableCollapsibleSidebarWidget($widget, $sidebar){
295	if( $widget.hasClass('collapsible-widget')){
296		$widget.removeClass('collapsible-widget opened');
297		$widget.find('div.widget-container').show();
298		$widgetTitle = $widget.find('div.widget-title');
299		$widgetTitle.off();
300	}
301}
302
303
304function citadelaIsEmptyWidgetTitle($widget){
305	var titleContent = $widget.find('div.widget-title').html();
306	if( titleContent === "" || titleContent === "<!-- citadela-no-widget-title -->" ){
307		return true;
308	}
309	return false
vendor: 4 bytes, lines 309-310
309;
310}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.