PageSourceSearch

https://flauntbasket.com/wp-content/plugins/mega_main_menu/src/js/frontend.js

js flauntbasket.com collected 2026-10-10 00:45:25 UTC 15,125 bytes, 375 lines download raw bytes

1var _____WB$wombat$assign$function_____=function(name){return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name))||self[name];};if(!self.__WB_pmw){self.__WB_pmw=function(obj){this.__WB_source=obj;return this;}}{
2let window = _____WB$wombat$assign$function_____("window");
3let self = _____WB$wombat$assign$function_____("self");
4let document = _____WB$wombat$assign$function_____("document");
5let location = _____WB$wombat$assign$function_____("location");
6let top = _____WB$wombat$assign$function_____("top");
7let parent = _____WB$wombat$assign$function_____("parent");
8let frames = _____WB$wombat$assign$function_____("frames");
9let opens = _____WB$wombat$assign$function_____("opens");
10/* 
11 * Function for Mega Main Menu.
12 */
13(function( $ ){ 
14	jQuery(document).ready(function(){
15
16		/* 
17		 * Unbinded all previous JS actions with menu.
18		 */
19//		jQuery( '.mega_main_menu, .mega_main_menu *' ).off();
20
21		/* 
22		 * INIT
23		 */
24		mmm_reversal_z_index();
25		mmm_sticky_menu();
26		mmm_fullwidth_menu();
27		mmm_keep_open();
28		mmm_height_of_tabs_dropdown();
29		mmm_pushing_content();
30		mmm_mobile_double_tap_to_go();
31		mmm_mobile_toggle_menu();
32		mmm_smooth_scroll_to_anchor();
33		mmm_accessibility_actions();
34
35		/* 
36		 * EVENTS
37		 */
38		jQuery(window).on( 'resize orientationchange', function(){
39			mmm_sticky_menu();
40			mmm_fullwidth_menu();
41//			mmm_keep_open();
42			mmm_height_of_tabs_dropdown();
43			mmm_pushing_content();
44			mmm_smooth_scroll_to_anchor();
45//			mmm_mobile_toggle_menu();
46//			mmm_mobile_double_tap_to_go();
47		});
48
49
50		/* 
51		 * Reversal z-index.
52		 */
53		function mmm_reversal_z_index () {
54			var z_index = 1000;
55			function_selector = '.mega_main_menu';
56			jQuery( function_selector ).off();
57			jQuery( function_selector ).each(function(index,element){
58				z_index = z_index - 10;
59				jQuery( element ).css({
60					'z-index' : z_index
61				});
62			});
63		}
64
65		/* 
66		 * Mobile toggle menu
67		 */
68		function mmm_mobile_toggle_menu () {
69			function_selector = '.mobile_toggle';
70			jQuery( function_selector ).off();
71			jQuery( '.mobile_menu_active' ).removeClass( 'mobile_menu_active' );
72			jQuery( function_selector ).on( 'click', function() {
73				if ( jQuery( this ).parent().hasClass( 'mobile_menu_active' ) ) {
74					jQuery( this ).parent().removeClass( 'mobile_menu_active' );
75					jQuery( this ).parent().parent().removeClass( 'mobile_menu_active' );
76					jQuery( '.mega_main_menu .keep_open' ).removeClass('keep_open');
77				} else {					
78					jQuery( this ).parent().addClass( 'mobile_menu_active' );
79					jQuery( this ).parent().parent().addClass( 'mobile_menu_active' );
80				}
81			});
82		}
83
84		/* 
85		 * Mobile Double tap to go
86		 */
87		function mmm_mobile_double_tap_to_go () {
88			function_selector = '.mega_main_menu li:has(.mega_dropdown) > .item_link, .mega_main_menu li:has(.post_details) > .processed_image';
89			jQuery( function_selector ).off();
90			if( /iphone|ipad|ipod|android|webos|blackberry|iemobile|opera mini/i.test( navigator.userAgent.toLowerCase() ) ) 
91			{
92				var clicked_item = false;
93				jQuery( function_selector ).on( 'click', function( index )
94				{
95					if ( clicked_item != this) {
96						index.preventDefault();
97						if ( jQuery( this ).parent().parent().parent().hasClass('keep_open') ) {
98
99						} else {
100							jQuery( '.mega_main_menu .keep_open' ).removeClass('keep_open');
101						}
102						jQuery( this ).parent().addClass('keep_open');
103						clicked_item = this;
104					}
105				});
106			}
107		}
108
109		/* 
110		 * Sticky menu
111		 */
112		function mmm_sticky_menu () {
113			function_selector = '.mega_main_menu > .menu_holder';
114			jQuery( function_selector ).off();
115			jQuery( function_selector ).each(function(index,element){
116				var stickyoffset = [];
117				var menu_inner_width = [];
118				var menu_inner = [];
119				var style_attr = [];
120				menu_inner[ index ] = jQuery( element ).find( '.menu_inner' );
121				stickyoffset[ index ] = jQuery( element ).data( 'stickyoffset' ) * 1;
122				if ( jQuery( element ).hasClass( 'coercive_styles-enable' ) ) {
123					rules_priority = ' !important';
124				} else {
125					rules_priority = '';
126				}
127
128				if ( jQuery( element ).attr( 'data-sticky' ) == '1' && stickyoffset[ index ] == 0 ) {
129					menu_inner_width[ index ] = menu_inner[ index ].parents( '.mega_main_menu' ).width();
130					menu_inner[ index ].attr( 'style' , 'width:' + menu_inner_width[ index ] + 'px;' );
131					jQuery( element ).addClass( 'sticky_container' );
132				} else {
133					jQuery(window).on( 'scroll', function(){
134						if ( jQuery( element ).attr( 'data-sticky' ) == '1' ) {
135							scrollpath = jQuery(window).scrollTop();
136							if ( scrollpath > stickyoffset[ index ] ) {
137								menu_inner_width[ index ] = menu_inner[ index ].parents( '.mega_main_menu' ).width();
138								jQuery( element ).find( '.menu_inner' ).attr( 'style' , 'width:' + menu_inner_width[ index ] + 'px;' );
139								jQuery( element ).find( '.mmm_fullwidth_container' ).attr( 'style' , 'left: 0px' + rules_priority + ';' );
140								if ( !jQuery( element ).hasClass( 'sticky_container' ) ) {
141									jQuery( element ).addClass( 'sticky_container' );
142								}
143							} else {
144								mmm_fullwidth_menu();
145								jQuery( element ).removeClass( 'sticky_container' );
146								style_attr[ index ] = jQuery( menu_inner[ index ] ).attr( 'style' );
147								if ( typeof style_attr[ index ] !== 'undefined' && style_attr[ index ] !== false ) {
148									menu_inner[ index ].removeAttr( 'style' );
149								}
150							}
151						} else {
152							jQuery( element ).removeClass( 'sticky_container' );
153						}
154					});
155				}
156			});
157		}
158
159		/* 
160		 * Fullwidth menu container
161		 */
162		function mmm_fullwidth_menu () {
163			function_selector = '.mega_main_menu.direction-horizontal.fullwidth-enable';
164			jQuery( function_selector ).off();
165			body_width = jQuery( 'body' ).width();
166			jQuery( function_selector ).each( function( index, element ) {
167				offset_left = jQuery( element ).offset().left;
168				// rules_priority
169				if ( jQuery( element ).hasClass( 'coercive_styles-enable' ) ) {
170					rules_priority = ' !important';
171				} else {
172					rules_priority = '';
173				}
174				jQuery( element ).find( '.mmm_fullwidth_container' ).attr( 'style' , 'width:' + body_width + 'px' + rules_priority + ';left: -' + offset_left + 'px' + rules_priority + ';right:auto' + rules_priority + ';' );
175			});
176		}
177
178		/*
179		 * Height of .tabs_dropdown
180		 */
181		function mmm_height_of_tabs_dropdown () {
182			function_selector = '.mega_main_menu .tabs_dropdown > .mega_dropdown > li';
183			jQuery( function_selector ).off();
184			// to open first tab when tabs are visible
185			jQuery( '.mega_main_menu .tabs_dropdown' ).on( 'hover mouseleave mouseenter', function( event ){
186				jQuery( '.dropdowns_trigger-hover .keep_open' ).removeClass( 'keep_open' );
187				my_el = jQuery( this ).find( '.mega_dropdown > li' ).first();
188				jQuery( my_el ).parent().css({
189					"min-height": jQuery( my_el ).find( '.mega_dropdown' ).outerHeight( true )
190				});
191				jQuery( my_el ).find( ' > .mega_dropdown' ).css({
192					"min-height": jQuery( my_el ).closest( '.mega_dropdown' ).outerHeight( true )
193				});
194				jQuery( my_el ).addClass( 'keep_open' );
195			});
196			// For Hover
197			jQuery( '.dropdowns_trigger-hover' + function_selector ).on( 'hover mouseenter transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd', function( event ){
198				jQuery( '.dropdowns_trigger-hover .keep_open' ).removeClass( 'keep_open' );
199				jQuery( this ).parent().css({
200					"min-height": jQuery( this ).find( '.mega_dropdown' ).outerHeight( true )
201				});
202				jQuery( this ).find( ' > .mega_dropdown' ).css({
203					"min-height": jQuery( this ).closest( '.mega_dropdown' ).outerHeight( true )
204				});
205				jQuery( this ).addClass( 'keep_open' );
206			});
207			jQuery( '.dropdowns_trigger-hover' + function_selector ).on( 'mouseleave ', function( event ){
208				jQuery( this ).parent().css({
209					"min-height": '0px'
210				});
211				jQuery( this ).find( ' > .mega_dropdown' ).css({
212					"min-height": '0px'
213				});
214//				jQuery( this ).removeClass( 'keep_open' );
215			});
216			// For Click
217			jQuery( '.dropdowns_trigger-click' + function_selector ).on( 'click', function(){
218				jQuery( this ).parent().parent().find( '.mega_dropdown' ).css({
219					"min-height": '0px'
220				});
221				jQuery( this ).parent().css({
222					"min-height": jQuery( this ).find(' > .mega_dropdown').outerHeight( true )
223				});
224			});
225		}
226
227		/* 
228		 * Pushing the content when dropdowns visible
229		 */
230		function mmm_pushing_content () {
231			function_selector = '.mega_main_menu.direction-horizontal.pushing_content-enable';
232			jQuery( function_selector ).off();
233			jQuery( function_selector ).each( function( index, element ) {
234				// rules_priority
235				if ( jQuery( element ).hasClass( 'coercive_styles-enable' ) ) {
236					rules_priority = ' !important';
237				} else {
238					rules_priority = '';
239				}
240				menu_holder_height = jQuery( element ).find( '.menu_holder' ).outerHeight( true );
241				click_item = false;
242				if ( jQuery( element ).hasClass( 'dropdowns_trigger-click' ) ) {
243					// dropdowns_trigger
244					dropdowns_trigger = 'click';
245					// calculations
246					if ( jQuery( '.mega_main_menu .nav_logo.mobile_menu_active' ).length ) {
247					} else {
248						jQuery( 'body' ).on( dropdowns_trigger, function ( body_el ) {
249								menu_item_class = jQuery( body_el.target ).closest( '.menu-item' ).attr( 'class' );
250								if ( typeof jQuery( body_el.target ).parents( '.menu-item' ).attr( 'class' ) != 'undefined' ) {
251									jQuery( element ).css({ height: menu_holder_height + jQuery( this ).find( '.mega_main_menu_ul > li.keep_open > .mega_dropdown' ).outerHeight( true ) + rules_priority });
252									if ( click_item == menu_item_class ) {
253										jQuery( element ).css({ height: menu_holder_height });
254										click_item = false;
255									} else {
256										click_item = jQuery( body_el.target ).closest( '.menu-item' ).attr( 'class' );
257									}
258								} else {
259									jQuery( element ).css({ height: menu_holder_height });
260									click_item = false;
261								}
262						});
263					}
264				} else {
265					// dropdowns_trigger
266					dropdowns_trigger = 'hover mouseleave';
267					// calculations
268					if ( jQuery( '.mega_main_menu .nav_logo.mobile_menu_active' ).length ) {
269					} else {
270						jQuery( element ).find( 'li' ).on( dropdowns_trigger, function ( body_el ) {
271								jQuery( element ).delay( 200 ).css({ height: menu_holder_height + jQuery( element ).find( '.mega_main_menu_ul > li:hover > .mega_dropdown' ).outerHeight( true ) + rules_priority });
272						});
273					}
274				}
275			});
276		}
277
278		/* 
279		 * Smooth scroll to anchor link
280		 */
281		function mmm_smooth_scroll_to_anchor () {
282			function_selector = '.mega_main_menu a[href*="#"]:not([href="#"])';
283//			jQuery( function_selector ).off();
284			jQuery( function_selector ).on( 'click', function() {
285				if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
286					var target = jQuery(this.hash);
287					target = target.length ? target : jQuery('[name=' + this.hash.slice(1) +'], [id=' + this.hash.slice(1) +']');
288					if (target.length) {
289						jQuery( '.mega_main_menu .current-menu-item' ).removeClass( 'current-menu-item' );
290						jQuery( this ).parent().addClass( 'current-menu-item' );
291						jQuery('html,body').animate({
292							scrollTop: target.offset().top - 90
293						}, 600);
294						jQuery( '.mega_main_menu .mobile_menu_active' ).removeClass( 'mobile_menu_active' );
295//						return false;
296					}
297				}
298			});
299		};
300
301		/* 
302		 * Keep dropdown open if some inner element has a :focus.
303		 */
304		function mmm_keep_open () {
305/*
306			function_selector = '.mega_main_menu .menu-item *';
307			jQuery( function_selector ).off();
308			jQuery( function_selector ).on( 'focus', function( index ){
309				jQuery( this ).parents( '.menu-item, .post_item' ).addClass( 'keep_open' );
310			})
311			jQuery( function_selector ).on( 'hover', function( index ){
312				jQuery( this ).parents( '.menu-item, .post_item' ).removeClass( 'keep_open' );
313			})
314			jQuery( function_selector ).on( 'blur', function( index ){
315				jQuery( this ).parents( '.menu-item, .post_item' ).removeClass( 'keep_open' );
316			})
317*/
318			click_item_2 = false;
319/*
320			if( true != /iphone|ipad|ipod|android|webos|blackberry|iemobile|opera mini/i.test( navigator.userAgent.toLowerCase() ) ) 
321			{
322			}
323*/
324			jQuery( 'body' ).on( 'click', function ( body_el ) {
325				menu_item_class = jQuery( body_el.target ).closest( '.menu-item' ).attr( 'class' );
326				if ( ( click_item_2 != menu_item_class ) && ( typeof jQuery( body_el.target ).closest( '.mega_main_menu.dropdowns_trigger-click .menu-item:has(.mega_dropdown)' ).attr( 'class' ) != 'undefined' )/* && ( typeof jQuery( body_el.target ).closest( '.mega_main_menu.dropdowns_trigger-click .menu-item:not(.multicolumn_dropdown)' ).attr( 'class' ) == 'undefined' )*/ ) {
327					if ( jQuery( body_el.target ).closest( '.menu-item' ).find( '.mega_dropdown' ).length ) {
328						body_el.preventDefault();
329					}
330					jQuery( '.mega_main_menu .keep_open' ).removeClass( 'keep_open' );
331					jQuery( body_el.target ).parents( '.menu-item' ).addClass( 'keep_open' );
332					click_item_2 = jQuery( body_el.target ).closest( '.menu-item' ).attr( 'class' );
333				} else if ( jQuery( body_el.target ).is( '.mega_main_menu .mega_dropdown form *:focus' ) ) {
334					jQuery( '.mega_main_menu .keep_open' ).removeClass( 'keep_open' );
335					jQuery( body_el.target ).parents( '.menu-item' ).addClass( 'keep_open' );
336				} else if ( ( click_item_2 == menu_item_class ) ) {
337					jQuery( body_el.target ).closest( '.menu-item' ).removeClass( 'keep_open' );
338					click_item_2 = false;
339				} else {
340					jQuery( '.menu-item' ).removeClass( 'keep_open' );
341					click_item_2 = false;
342				}
343			});
344		}
345
346		/* 
347		 * For accessibility compatibility. keep_open dropdowns when user press "space" on keyboard if some menu link in focus.
348		 */
349		function mmm_accessibility_actions () {
350			window.onkeydown = function( onkeydown_event ) {
351				if ( jQuery( onkeydown_event.target ).hasClass( 'item_link' ) ) {
352					if ( onkeydown_event.keyCode == 32 ) {
353						onkeydown_event.preventDefault();
354						check_condition = jQuery( onkeydown_event.target ).parent( '.menu-item' ).hasClass( 'keep_open' );
355						jQuery( '.mega_main_menu .keep_open' ).removeClass( 'keep_open' );
356						jQuery( '.mega_main_menu [aria-expanded="true"]' ).attr( 'aria-expanded', false );
357						jQuery( onkeydown_event.target ).parents( '.menu-item' ).addClass( 'keep_open' );
358						jQuery( onkeydown_event.target ).attr( 'aria-expanded', true );
359						jQuery( onkeydown_event.target ).siblings( ".mega_dropdown" ).attr( 'aria-expanded', true );
360						if ( check_condition ) {
361							jQuery( onkeydown_event.target ).parent( '.menu-item' ).removeClass( 'keep_open' );
362							jQuery( onkeydown_event.target ).attr( 'aria-expanded', false );
363							jQuery( onkeydown_event.target ).siblings( ".mega_dropdown" ).attr( 'aria-expanded', false );
364						}
365					}
366				} else {
367					jQuery( '.mega_main_menu .keep_open' ).removeClass( 'keep_open' );
368					jQuery( '.mega_main_menu [aria-expanded="true"]' ).attr( 'aria-expanded', false );
369				}
370			};
371		}
372
373	});
374})(jQuery);
375}

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.