PageSourceSearch

https://ludwig-loehn.de/wp-content/plugins/layers-heroes-assemble/assets/js/plugin.js?ver=2.1.5

js ludwig-loehn.de collected 2026-10-07 05:19:53 UTC 16,595 bytes, 604 lines download raw bytes

1/* Plugin Script
2-------------------------------------------------------------
3------------------------------------------------------------- */
4
5var initHeroesAssemble = function( lhea ) {
6
7	var lhea_id = lhea.attr("data-lhea-id"),
8		lhea_design = lhea.attr("data-lhea-boxdesign"),
9		currentLHEA = jQuery( "#lhea-heroes-" + lhea_id ),
10		containerParent = currentLHEA.parent(),
11		lheaMaxHeight = 0;
12
13	currentLHEA.masonry({
14		itemSelector: '.lhea-hero',
15		//horizontalOrder: true
16	});
17
18	currentLHEA.imagesLoaded().progress( function( instance, image ) {
19
20		var imageHolder = jQuery( image.img ).parent();
21
22		// if is slider
23		if ( !imageHolder.hasClass('lhea-image-isloading') )
24			imageHolder = imageHolder.closest(".lhea-member-picture");
25
26		imageHolder.removeClass('lhea-image-isloading');
27		if ( !image.isLoaded ) {
28			imageHolder.addClass('lhea-image-isbroken');
29		}
30
31		// style specific JS
32		LHEA_STYLE.init({
33			heroes: currentLHEA,
34			design: lhea_design,
35		});
36
37		// set max height if needed
38		if ( undefined !== lhea_design && lhea_design && ( lhea_design == 'style-1' || lhea_design == 'style-3' || lhea_design == 'style-5' ) ) {
39			currentLHEA.find('.lhea-hero').each(function() {
40				var memImage = jQuery(this).find(".lhea-member-picture img");
41				if ( memImage.length > 0 ) {
42					var imageHeight = memImage.outerHeight();
43					jQuery(this).css('minHeight', Math.round(imageHeight)-1);
44				}
45			});
46		} // end - lhea_design
47
48		jQuery(document).trigger( "lhea_init_layout/before_init_slider" , currentLHEA );
49
50		// if has slider - init slider
51		currentLHEA.find('.lhea-hero').each(function() {
52			var imageWrapper = jQuery(this).find(".lhea-member-picture");
53			if ( imageWrapper != undefined && imageWrapper.length > 0 ) {
54				var slider = imageWrapper.find(".lhea-image-slider-wrapper");
55				if ( slider != undefined && slider.length > 0 ) {
56					var slideMode = slider.attr("data-slider-mode"),
57						slideAuto = slider.attr("data-slider-auto"),
58						slidePause = slider.attr("data-slider-pause");
59					slider.bxSlider({
60						//mode: ( slideMode == 'vertical' || slideMode == 'horizontal' ? slideMode : 'fade' ),
61						mode: 'fade',
62						auto: ( slideAuto && slideAuto == 'no' ? false : true ),
63						pause: ( slidePause ? parseInt( slidePause ) : 2500 ),
64						autoHover: true,
65						adaptiveHeight: true,
66						controls: false
67					});
68				} // end - slider
69			} // end - sliderWrapper
70		});
71
72		jQuery(document).trigger( "lhea_init_layout/before_masonry" , currentLHEA );
73
74		currentLHEA.masonry('layout');
75
76		jQuery(document).trigger( "lhea_init_layout/after_masonry" , currentLHEA );
77	});
78	
79}
80
81var LHEA = new function() {
82
83	var t = this;
84
85	/* Modal
86	---------------------------------------------------------- */	
87	t.triggerModal = function( event ) {
88
89		event.preventDefault();
90
91		var slider = false,
92			link = jQuery(this),
93			target = link.attr("href");
94
95		if ( typeof target != "" ) {
96
97			var modal = jQuery( target ),
98				modalImage = modal.find(".lhea-modal-contents .lhea-modal-picture");
99
100			jQuery.magnificPopup.open({
101			  	items: {
102			    	src: modal,
103			    	type: 'inline',
104			  	},
105	          	fixedContentPos: true,
106	          	fixedBgPos: true,
107	          	overflowY: "auto",
108	          	closeBtnInside: false,
109	          	showCloseBtn: false,
110	          	preloader: false, 
111	          	midClick: true,
112	          	removalDelay: 300,
113	          	alignTop: true,
114				mainClass: "lhea-modal",
115				callbacks: {
116					beforeOpen: function() {
117						jQuery('html').addClass('lhea-mfp-helper');
118						if ( modalImage != undefined && modalImage.hasClass("lhea-modal-slider") ) {
119							var slideMode = modalImage.attr("data-slider-mode"),
120								slideAuto = modalImage.attr("data-slider-auto"),
121								slidePause = modalImage.attr("data-slider-pause");
122			
123							slider = modalImage.find(".lhea-modal-slider-wrapper").bxSlider({
124								//mode: ( slideMode == 'vertical' || slideMode == 'horizontal' ? slideMode : 'fade' ),
125								mode: 'fade',
126								auto: ( slideAuto && slideAuto == 'no' ? false : true ),
127								pause: ( slidePause ? parseInt( slidePause ) : 2500 ),
128								autoHover: true,
129								autoDelay: 500,
130								adaptiveHeight: true,
131								controls: false
132							});
133						} // end - modalImage			
134					},
135					open: function() {
136						if ( modalImage != undefined && modalImage.hasClass("lhea-modal-slider") && slider && slider !== undefined && typeof slider.reloadSlider === "function" ) {
137							slider.reloadSlider();
138						} // end - modalImage
139					},
140					close: function() {
141						jQuery('html').removeClass('lhea-mfp-helper');
142						if ( modalImage != undefined && modalImage.hasClass("lhea-modal-slider") && slider && slider !== undefined && typeof slider.destroySlider === "function" ) {
143							slider.destroySlider();
144						} // end - modalImage
145					}
146				}
147			});
148
149		}
150
151	}
152
153	t.closeModal = function( event ) {
154		event.preventDefault();
155
156		var link = jQuery(this),
157			target = link.attr("href");
158
159		if ( typeof target != "" ) {
160
161			var modal = jQuery( target );
162
163			jQuery.magnificPopup.close({
164			  	items: {
165			    	src: modal,
166			    	type: 'inline',
167			  	},
168			});
169		}
170
171	}
172
173	/* Run the init function
174	---------------------------------------------------------- */
175	jQuery(document).ready(function(){
176
177		// trigger powertip
178		jQuery(".lhea-trigger-powertip").powerTip({
179			placement: "n",
180			smartPlacement: true,
181		});
182
183		// trigger modal
184		jQuery(document).on( "click" , ".lhea-modal-trigger", LHEA.triggerModal );
185		jQuery(document).on( "click" , ".lhea-close-modal" , LHEA.closeModal );
186
187		// init heroes assemble
188		jQuery(".lhea-main-wrapper").each(function() {
189			initHeroesAssemble( jQuery(this) );
190		});
191		
192		// when window resize
193		jQuery(window).resize(function() {
194			// re-init heroes assemble
195			jQuery(".lhea-main-wrapper").each(function() {
196				initHeroesAssemble( jQuery(this) );
197			});
198		});
199
200	});
201}
202
203/* Style specific JS */
204
205var LHEA_STYLE = new function() {
206
207	var t = this;
208
209	/* init function
210	---------------------------------------------------------- */
211
212	t.init = function( config ) {
213
214		var heroes 	= ( config && config.heroes 	? config.heroes 	: "" ),
215			design   = ( config && config.design 	? config.design 	: "" );
216
217		
218		switch( design ) {
219			case "style-1":
220				style_1( heroes );
221				break;
222			case "style-2":
223				style_2( heroes );
224				break;
225			case "style-3":
226				style_3( heroes );
227				break;
228			case "style-4":
229				style_4( heroes );
230				break;
231			case "style-5":
232				style_5( heroes );
233				break;
234			case "style-7":
235				style_7( heroes );
236				break;
237			case "style-8":
238				style_8( heroes );
239				break;				
240		}
241
242		
243
244
245	} // end - .init
246
247
248	/* Style 1 JS
249	---------------------------------------------------------- */
250
251	var style_1 = function( heroes ) {
252
253		var excerpt = heroes.find(".lhea-member-excerpt"),
254			hero    = heroes.find("li.lhea-hero");
255
256		// adjust excerpt height
257		if ( typeof excerpt != "" )
258			adjustHeight( excerpt );
259
260	}
261
262
263	/* Style 2 JS
264	---------------------------------------------------------- */
265	var style_2 = function( heroes ) {
266
267		var excerpt = heroes.find(".lhea-member-excerpt"),
268			hero    = heroes.find("li.lhea-hero");
269
270		// adjust excerpt height
271		if ( typeof excerpt != "" )
272			adjustHeight( excerpt );
273
274		// add hover animation
275		if ( typeof hero != "" ) {
276
277			hero
278				.on( "mouseenter" , ".lhea-member-style-2" , function() {
279
280					var selected = jQuery(this),
281						hover    = selected.find(".lhea-member-hover");
282
283					if ( typeof hover != "" )
284						hover.removeClass("fadeOutRight").addClass("animated zoomInLeft"); 
285
286				})
287				.on( "mouseleave" , ".lhea-member-style-2" , function() {
288
289					var selected = jQuery(this),
290						hover    = selected.find(".lhea-member-hover");
291
292					if ( typeof hover != "" )
293						hover.removeClass("zoomInLeft").addClass("fadeOutRight");
294
295				});
296
297		} // end - hero
298
299	}
300
301	/* Style 3 JS
302	---------------------------------------------------------- */
303	var style_3 = function( heroes ) {
304
305		var excerpt = heroes.find(".lhea-member-excerpt"),
306			hero    = heroes.find("li.lhea-hero");
307
308		// adjust excerpt height
309		if ( typeof excerpt != "" )
310			adjustHeight( excerpt );
311
312		// add hover animation
313		if ( typeof hero != "" ) {
314
315			hero
316				.on( "mouseenter" , ".lhea-member-style-3" , function() {
317
318					var selected = jQuery(this),
319						hover    = selected.find(".lhea-member-hover"),
320						name	 = selected.find(".lhea-member-picture .lhea-member-name"),
321						position = selected.find(".lhea-member-picture .lhea-member-position"),
322						social   = selected.find(".lhea-member-picture .lhea-member-social");
323
324					if ( typeof hover != "" )
325						hover.removeClass("zoomOut").addClass("animated zoomIn");
326
327					if ( typeof name != "" )
328						setTimeout(function() {
329							name.removeClass("zoomOut").addClass("animated zoomIn");
330						}, 100 );
331
332					if ( typeof position != "" )
333						setTimeout(function() {
334							position.removeClass("zoomOut").addClass("animated zoomIn");
335						}, 200 );
336
337					if ( typeof social != "" )
338						setTimeout(function() {
339							social.removeClass("zoomOut").addClass("animated zoomIn");
340						}, 300 );
341
342				})
343				.on( "mouseleave" , ".lhea-member-style-3" , function() {
344
345					var selected = jQuery(this),
346						hover    = selected.find(".lhea-member-hover"),
347						name	 = selected.find(".lhea-member-picture .lhea-member-name"),
348						position = selected.find(".lhea-member-picture .lhea-member-position"),
349						social   = selected.find(".lhea-member-picture .lhea-member-social");
350
351					if ( typeof hover != "" )
352						hover.removeClass("zoomIn").addClass("zoomOut");
353				
354					if ( typeof name != "" )
355						setTimeout(function() {
356							name.removeClass("zoomIn").addClass("zoomOut");
357						}, 100 );
358
359					if ( typeof position != "" )
360						setTimeout(function() {
361							position.removeClass("zoomIn").addClass("zoomOut");;
362						}, 200 );
363
364					if ( typeof social != "" )
365						setTimeout(function() {
366							social.removeClass("zoomIn").addClass("zoomOut");;
367						}, 200 );
368
369				});
370
371		} // end - hero
372
373	}
374
375	/* Style 4 JS
376	---------------------------------------------------------- */
377	var style_4 = function( heroes ) {
378		var excerpt = heroes.find(".lhea-member-excerpt"),
379			hero    = heroes.find("li.lhea-hero");
380
381		// adjust excerpt height
382		if ( typeof excerpt != "" )
383			adjustHeight( excerpt );
384
385		// add hover animation
386		if ( typeof hero != "" ) {
387
388			hero
389				.on( "mouseenter" , ".lhea-member-style-4" , function() {
390
391					var selected = jQuery(this),
392						hover    = selected.find(".lhea-member-hover");
393
394					if ( typeof hover != "" )
395						hover.removeClass("fadeOutRight").addClass("animated zoomInLeft"); 
396
397				})
398				.on( "mouseleave" , ".lhea-member-style-4" , function() {
399
400					var selected = jQuery(this),
401						hover    = selected.find(".lhea-member-hover");
402
403					if ( typeof hover != "" )
404						hover.removeClass("zoomInLeft").addClass("fadeOutRight");
405
406				});
407
408		} // end - hero
409	}
410
411	/* Style 5 JS
412	---------------------------------------------------------- */
413	var style_5 = function( heroes ) {
414
415		var excerpt = heroes.find(".lhea-member-excerpt"),
416			hero    = heroes.find("li.lhea-hero");
417
418		// adjust excerpt height
419		if ( typeof excerpt != "" )
420			adjustHeight( excerpt );
421
422		// add hover animation
423		if ( typeof hero != "" ) {
424
425			hero
426				.on( "mouseenter" , ".lhea-member-style-5" , function() {
427
428					var selected = jQuery(this),
429						hover    = selected.find(".lhea-member-hover"),
430						name	 = selected.find(".lhea-member-picture .lhea-member-name-position");
431
432					if ( typeof hover != "" )
433						hover.removeClass("fadeOutLeft").addClass("animated fadeInRight");
434
435					if ( typeof name != "" )
436						setTimeout(function() {
437							name.removeClass("fadeInRight").addClass("animated fadeOutLeft");
438						}, 150 );
439
440				})
441				.on( "mouseleave" , ".lhea-member-style-5" , function() {
442
443					var selected = jQuery(this),
444						hover    = selected.find(".lhea-member-hover"),
445						name	 = selected.find(".lhea-member-picture .lhea-member-name-position");
446
447					if ( typeof hover != "" )
448						hover.removeClass("fadeInRight").addClass("fadeOutLeft");
449
450					if ( typeof name != "" )
451						setTimeout(function() {
452							name.removeClass("fadeOutLeft").addClass("fadeInRight");
453						}, 150 );
454				});
455
456		} // end - hero
457
458	}
459
460	/* Style 7 JS
461	---------------------------------------------------------- */
462	var style_7 = function( heroes ) {
463		var box = heroes.find(".lhea-member-style-7"),
464			excerpt = box.find(".lhea-member-excerpt");
465
466		// adjust excerpt height
467		if ( typeof excerpt != "" )
468			adjustHeight( excerpt );
469
470		// adjust box height
471		if ( typeof box != "" )
472			adjustHeight( box );
473	}
474
475	/* Style 8 JS
476	---------------------------------------------------------- */
477	var style_8 = function( heroes ) {
478		var excerpt = heroes.find(".lhea-member-excerpt");
479
480		// adjust excerpt height
481		if ( typeof excerpt != "" )
482			adjustHeight( excerpt );
483	}
484
485	/* height adjustment
486	---------------------------------------------------------- */
487
488	var getMaxHeight = function( box ) {
489
490		var maxHeight = 0;
491
492		box.each( function() {
493			maxHeight = Math.max( jQuery(this).height() , maxHeight );
494		});
495
496		return maxHeight;
497	}
498
499	var adjustHeight = function( box ) {
500		var newHeight = getMaxHeight( box );
501
502		box.each( function() {
503			jQuery(this).css( 'minHeight' ,newHeight );
504		});
505	}
506
507	/* AJAX loading
508	---------------------------------------------------------- */
509	var doAjaxLoading = function( button, newPage, newTeams ) {
510
511		var container = button.closest(".lhea-widget-section"),
512			inputArgs = container.find("input.lhea-shortcode-args").val();
513
514		jQuery("#lhea-modal-loader").addClass("lhea-show-loader");
515
516		jQuery
517			.post( 
518				LHEA_JS.ajaxUrl, 
519				{ action: 'lhea_update_shortcode', args: inputArgs, page: ( newPage || null ), teams: ( newTeams || null ) },
520				function(data) {
521				  	container.fadeOut( 250, function() {
522						container.html( data ).fadeIn(250, function() {
523							var mainWrapper = container.find(".lhea-main-wrapper"),
524								mainWrapperID = mainWrapper.attr("data-lhea-id");
525
526							jQuery.scrollTo( "#lhea-heroes-" + mainWrapperID , 800, {offset:-200} );
527							jQuery("#lhea-modal-loader").removeClass("lhea-show-loader");
528	
529							// init layout
530							initHeroesAssemble( mainWrapper );		
531	
532							// re-trigger powertip
533							container.find(".lhea-trigger-powertip").each(function() {
534								jQuery(this).powerTip({
535									placement: "n",
536									smartPlacement: true,
537								});
538							});
539	
540							jQuery(document).trigger( "lhea_update_shortcode/success" , data );
541						});
542				  	});
543				}
544			);
545
546	}
547
548	jQuery(document).on( "click" , ".lhea-pagination-wrapper > button" , function( e ) {
549
550		var button = jQuery(this),
551			newPage = button.attr("data-gotopage");
552			
553		doAjaxLoading( button, newPage, false );
554
555	});
556
557	jQuery(document).on( "click" , '[id^="lhea-sorting-"] button.lhea-term-filter' , function( e ) {
558		var button = jQuery(this),
559			newTeams = '',
560			currentTeam = button.attr("data-lhea-team"),
561			filters = button.closest('[id^="lhea-sorting-"]');
562
563		filters.find("button.lhea-term-filter").each(function() {
564			jQuery(this).removeClass("filter-activated");
565		});
566
567		button.addClass("filter-activated");
568		newTeams = currentTeam;
569
570		doAjaxLoading( button, 1, newTeams );
571	});
572
573	jQuery(document).on( "change" , '[id^="lhea-sorting-"] select.lhea-filter-select' , function( e ) {
574		var select = jQuery(this),
575			newTeams = '',
576			currentTeam = select.val();
577
578		newTeams = currentTeam;
579		doAjaxLoading( select, 1, newTeams );
580	});
581
582	jQuery(document).on( "mouseenter" , '.lhea-heroes .lhea-hero' , function( e ) {
583		var hero = jQuery(this),
584			heroImageWrapper = hero.find(".lhea-member-picture"),
585			heroMainImage = hero.find(".lhea-member-picture img.wp-post-image"),
586			heroSecondaryImage = hero.find(".lhea-member-picture img.lhea-image-secondary");
587
588		if ( typeof heroMainImage != "" && heroMainImage.length > 0 && typeof heroSecondaryImage != "" && heroSecondaryImage.length > 0 ) {
589			heroImageWrapper.addClass("lhea-image-onhover");
590		}
591	});
592
593	jQuery(document).on( "mouseleave" , '.lhea-heroes .lhea-hero' , function( e ) {
594		var hero = jQuery(this),
595			heroImageWrapper = hero.find(".lhea-member-picture"),
596			heroMainImage = hero.find(".lhea-member-picture img.wp-post-image"),
597			heroSecondaryImage = hero.find(".lhea-member-picture img.lhea-image-secondary");
598
599		if ( typeof heroMainImage != "" && heroMainImage.length > 0 && typeof heroSecondaryImage != "" && heroSecondaryImage.length > 0 ) {
600			heroImageWrapper.removeClass("lhea-image-onhover");
601		}
602	});
603
604}

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.