PageSourceSearch

https://planet-toys.de/wp-content/plugins/divi-gallery-extended/di…/assets/script.min.js?ver=2.0.1

js planet-toys.de collected 2026-10-07 13:22:03 UTC 16,208 bytes, 445 lines download raw bytes

1// This script is loaded both on the frontend page and in the Visual Builder.
2( function( $ ) {
3	$.fn.JustifiedGalleryExtendedPagination = function( $options = {} ) {
4		let $defaults = {
5				paginationClass: 'el_masonry_gallery_pagination',
6				hideOnlyOnePage: true,
7				totalPages: 1,
8				visiblePages: 10,
9				startPage: 1,
10				initiateStartPageClick: false,
11				first: false,
12				last: false,
13				prev: false,
14				next: false,
15			},
16			$pagination = this;
17		
18		$options = $.extend({}, $defaults, $options);
19		$pagination.twbsPagination($options);
20	}
21} ( jQuery ) );
22
23jQuery( document ).ready( function($) {
24	// Justified Gallery Script.
25	if ( $(document).find('.el-justified-gallery-wrap').length > 0 ) {
26		$( '.el-justified-gallery-wrap' ).each( function() {
27			dge_init_justified_gallery( $( this ).parents( '.el_justified_gallery' ) );
28		} );
29	}
30} );
31
32// Init justified gallery.
33function dge_init_justified_gallery( $this ) {
34	let $         = jQuery,
35		$wrapper  = $this.find( '.el-justified-gallery-wrap' ),
36		$inner    = $wrapper.find( '.el-justified-gallery-container' ),
37		$settings = $wrapper.attr( 'data-settings' );
38
39	$settings = JSON.parse( $settings )
40
41	let justified_settings = {
42		rowHeight : ( $settings?.row_height ) ? $settings.row_height : 200,
43		captions : false, 
44		margins : ( $settings?.column_spacing ) ? $settings.column_spacing : 10,
45		lastRow: ( $settings?.lastrow_align ) ? $settings.lastrow_align : 'justify',
46		waitThumbnailsLoad: true,
47		refreshTime: 500,
48		filter: 'div:not(.dge-hidden-item)', // init filter.
49		sizeRangeSuffixes: {
50			'lt100': '_t', 
51			'lt240': '_m', 
52			'lt320': '_n', 
53			'lt500': '', 
54			'lt640': '_z', 
55			'lt1024': '_b'
56		}
57	};
58
59	// Init justified gallery.
60	$inner.justifiedGallery( justified_settings );
61	$inner.imagesLoaded( function() {
62		$inner.justifiedGallery( 'norewind' );
63	} );
64
65	// Load other images.
66	$wrapper.find( '.el-justified-gallery-load-more' ).on( 'click', function(e) {
67		e.preventDefault();
68		let $load_more_btn = $( this ),
69			$options       = $load_more_btn.parent().data( 'options' );
70			$settings      = $wrapper.attr( 'data-settings' );
71
72		$settings = JSON.parse( $settings );
73
74		$load_more_btn.css( 'opacity', '0.5' ).prop( 'disabled', true );
75
76		// Get selected category if filter exists.
77		let selected_cat = '';
78		if ( $wrapper.find( '.dge-justified-gallery-filter' ).length > 0 ) {
79			selected_cat = $wrapper.find( '.dge-justified-gallery-filter li.active a' ).data( 'filter' );
80		}
81
82		// Selected category class to filter.
83		let selectedCatClass = selected_cat;
84		if ( '*' === selected_cat ) {
85			selectedCatClass = '';
86		}
87
88		const perPage     = ( $options?.images_per_page ) ? $options?.images_per_page : 8;
89		const totalImages = parseInt( $wrapper.find( '.el-justified-gallery-item' + selectedCatClass ).length );
90		const totalPages  = Math.ceil( totalImages / parseInt( perPage ) );
91
92		let loadPage = ( $options.page ) ? $options.page : 2;
93
94		// If all pages are visibled.
95		if ( loadPage > totalPages ) {
96			$load_more_btn.hide();
97			return;
98		}
99
100		let $startIndex = 0;
101		let $endIndex   = perPage;
102		if ( 1 !== loadPage ) {
103			$startIndex = ( perPage * ( loadPage - 1 ) );
104			$endIndex   = perPage * loadPage;
105		}
106
107		for ( $i = $startIndex; $i < $endIndex; $i++ ) {
108			$wrapper.find( '.el-justified-gallery-item.dge-hidden-item' + selectedCatClass + ':first' ).removeClass( 'dge-hidden-item' );
109		}
110
111		// no review to view with new images.
112		$inner.justifiedGallery( justified_settings ).on( 'jg.complete', function (e) {
113			$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' ).fadeIn('slow');
114		} );
115
116		// Update the options.
117		$options['page'] = parseInt( $options['page'] ) + 1;
118		$load_more_btn.parent().data( 'options', $options );
119
120		$load_more_btn.css( 'opacity', '1' ).prop( 'disabled', false );
121		if ( $endIndex >= totalImages ) {
122			$load_more_btn.hide();
123		}
124
125		/* *****
126		$settings['_wpnonce'] = DGEObj.restNonce;
127
128		// Ajax for load more images
129		$.ajax( {
130			type : 'GET',  
131			url  : DGEObj.restURL + 'justified-gallery/ajax',
132			data : $.extend( $options, $settings ),
133			success: function(response) {
134				if ( response.success ) {
135					// Append the elements
136					let $elements = $( response.data.items );
137					$wrapper.find( '.el-justified-gallery-container' ).append( $elements );
138
139					// Update the options
140					$options['page'] = parseInt( $options['page'] ) + 1;
141					$load_more_btn.parent().data( 'options', $options );
142
143					let $imgs_array  = $options['images'].split(",");
144					let $total_pages = Math.ceil( parseInt( $imgs_array.length ) / parseInt( $options['images_per_page'] ) );
145
146					if ( $elements.length < $options.images_per_page || $total_pages < $options['page'] ) {
147						$load_more_btn.fadeOut();
148					}
149
150					// Set the filter again
151					$wrapper.imagesLoaded( function() {
152						// no review to view with new images
153						$wrapper.find( '.el-justified-gallery-container' ).justifiedGallery( 'norewind' );
154
155						// Reset with gallery filter
156						setTimeout( function() {
157							// Check if category filter is there
158							if ( $( '.dge-justified-gallery-filter' ).length > 0 ) {
159								// Set the current filter
160								let selected_cat = $wrapper.find( '.dge-justified-gallery-filter li.active a' ).data( 'filter' );
161								if ( '*' === selected_cat ) {
162									$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' ).removeClass( 'dge-hidden-item' );
163								} else {
164									$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' ).addClass( 'dge-hidden-item' );
165									$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' + selected_cat ).removeClass( 'dge-hidden-item' );
166								}
167
168								// Add category to filtered
169								justified_settings.filter = selected_cat;
170							}
171
172							$wrapper.find( '.el-justified-gallery-container' ).justifiedGallery( justified_settings )
173								.on( 'jg.complete', function (e) {
174									$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' ).fadeIn('slow');
175								} );
176						}, 300 );
177					} );
178				} else {
179					$load_more_btn.fadeOut();
180				}
181
182				$load_more_btn.css( 'opacity', '1' ).prop( 'disabled', false );
183			}
184		} ); // End of ajax
185		*********** */
186	} ); // End of clicked on load more button
187
188	// Number pagination.
189	if ( $wrapper.find( '.et_pb_button_wrapper ul' ).length > 0 ) {
190				
191		let $pagin_wrapper = $wrapper.find( '.et_pb_button_wrapper' ),
192			$pagination    = $pagin_wrapper.find( 'ul' ),
193			$options       = $pagin_wrapper.data( 'options' );
194
195		// Get selected category if filter exists.
196		let selected_cat = '';
197		if ( $wrapper.find( '.dge-justified-gallery-filter' ).length > 0 ) {
198			selected_cat = $wrapper.find( '.dge-justified-gallery-filter li.active a' ).data( 'filter' );
199		}
200
201		// Selected category class to filter.
202		let selectedCatClass = selected_cat;
203		if ( '*' === selected_cat ) {
204			selectedCatClass = '';
205		}
206
207		const perPage      = ( $options?.images_per_page ) ? $options?.images_per_page : 8;
208		const totalImages  = parseInt( $options?.total_images );
209		const totalPages   = Math.ceil( totalImages / parseInt( perPage ) );
210
211		let	$paginationArgs = {
212			totalPages: totalPages,
213			onPageClick: function (event, page) {
214
215				let $startIndex = 0;
216				let $endIndex   = perPage;
217				if ( 1 !== page ) {
218					$startIndex = ( perPage * ( page - 1 ) );
219					$endIndex   = perPage * page;
220				}
221
222				// Hide all first.
223				$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' ).addClass( 'dge-hidden-item' );
224
225				const $elements = $wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item.dge-hidden-item' + selectedCatClass );
226				$elements.each( function( $index ) {
227					if ( parseInt($index) + 1 > $startIndex && parseInt($index) + 1 <= $endIndex ) {
228						$( this ).removeClass( 'dge-hidden-item' );
229					}
230				} );
231
232				// no review to view with new images.
233				$inner.justifiedGallery( justified_settings ).on( 'jg.complete', function (e) {
234					$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' ).fadeIn('slow');
235				} );
236
237				if ( $wrapper.offset().top > 0 ) {
238					let topHeaderHeight  = 0,
239						mainHeaderHeight = 0,
240						tbHeaderHeight   = 0;
241
242					if ( $('body').find('#top-header').length > 0 && $('body').hasClass('et_fixed_nav') ) {
243						topHeaderHeight = parseFloat( $('#top-header').innerHeight() );
244					}
245					if ( $('body').find('#main-header').length > 0 && $('body').hasClass('et_fixed_nav') ) {
246						mainHeaderHeight = parseFloat( $('#main-header').innerHeight() );
247					}
248					if ( $('body').find('.et-l--header').length > 0 && $('body').find('.et-l--header .et_builder_inner_content').hasClass('has_et_pb_sticky') ) {
249						tbHeaderHeight = parseFloat( $('.et-l--header').innerHeight() );
250					}
251
252					let headerHeight = topHeaderHeight + mainHeaderHeight + tbHeaderHeight + 50;
253					$( 'html, body' ).animate( {
254						scrollTop: ( $wrapper.offset().top - headerHeight )
255					} );
256				}
257			}
258		};
259
260		if ( 'on' === $options?.show_prev_next ) {
261			$paginationArgs.prev = $options?.prev_text;
262			$paginationArgs.next = $options?.next_text;
263		}
264		
265		$pagination.JustifiedGalleryExtendedPagination( $paginationArgs );
266	}
267
268	// Filter the gallery.
269	$wrapper.find( '.dge-justified-gallery-filter a' ).on( 'click', function(e) {
270		e.preventDefault();
271
272		const $this = $( this );
273		if ( $this.parent().hasClass( 'active' ) ) {
274			return false;
275		}
276
277		const selected_cat   = $this.data( 'filter' );
278		let selectedCatClass = selected_cat;
279		if ( '*' === selected_cat ) {
280			selectedCatClass = '';
281		}
282
283		// Check if load more, re-render it.
284		if ( $wrapper.find( '.et_pb_button_wrapper .el-justified-gallery-load-more' ).length > 0 ||
285			$wrapper.find( '.et_pb_button_wrapper ul' ).length > 0
286		) {
287			let $options = $wrapper.find( '.et_pb_button_wrapper' ).data( 'options' );
288
289			$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' ).addClass( 'dge-hidden-item' );
290
291			const perPage    = ( $options.images_per_page ) ? $options.images_per_page : 8;
292			const totalImage = parseInt( $wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' + selectedCatClass ).length );
293			
294			if ( totalImage > perPage ) {
295				let $startIndex = 0;
296				let $endIndex   = perPage;
297				for ( $i = $startIndex; $i < $endIndex; $i++ ) {
298					$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item.dge-hidden-item' + selectedCatClass + ':first' ).removeClass( 'dge-hidden-item' );
299				}
300
301				// Show button, it hidden.
302				$wrapper.find( '.et_pb_button_wrapper .el-justified-gallery-load-more' ).show();
303			} else {
304				$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' + selectedCatClass ).removeClass( 'dge-hidden-item' );
305				$wrapper.find( '.et_pb_button_wrapper .el-justified-gallery-load-more' ).hide();
306			}
307
308			// Update the options.
309			$options['page'] = 2;
310			$wrapper.find( '.et_pb_button_wrapper' ).data( 'options', $options );
311
312			// Re-render number pagination.
313			if ( $wrapper.find( '.et_pb_button_wrapper ul' ).length > 0 ) {
314
315				let $pagin_wrapper = $wrapper.find( '.et_pb_button_wrapper' ),
316					$pagination    = $pagin_wrapper.find( 'ul' );
317
318				let	$paginationArgs = {
319					totalPages: parseInt( Math.ceil( totalImage / perPage ) ),
320					onPageClick: function (event, page) {
321
322						let $startIndex = 0;
323						let $endIndex   = perPage;
324						if ( 1 !== page ) {
325							$startIndex = ( perPage * ( page - 1 ) );
326							$endIndex   = perPage * page;
327						}
328
329						// Hide all first.
330						$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' ).addClass( 'dge-hidden-item' );
331
332						const $elements = $wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item.dge-hidden-item' + selectedCatClass );
333						$elements.each( function( $index ) {
334							if ( parseInt($index) + 1 > $startIndex && parseInt($index) + 1 <= $endIndex ) {
335								$( this ).removeClass( 'dge-hidden-item' );
336							}
337						} );
338
339						// no review to view with new images.
340						$inner.justifiedGallery( justified_settings ).on( 'jg.complete', function (e) {
341							$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' ).fadeIn('slow');
342						} );
343
344						if ( $wrapper.offset().top > 0 ) {
345							let topHeaderHeight  = 0,
346								mainHeaderHeight = 0,
347								tbHeaderHeight   = 0;
348
349							if ( $('body').find('#top-header').length > 0 && $('body').hasClass('et_fixed_nav') ) {
350								topHeaderHeight = parseFloat( $('#top-header').innerHeight() );
351							}
352							if ( $('body').find('#main-header').length > 0 && $('body').hasClass('et_fixed_nav') ) {
353								mainHeaderHeight = parseFloat( $('#main-header').innerHeight() );
354							}
355							if ( $('body').find('.et-l--header').length > 0 && $('body').find('.et-l--header .et_builder_inner_content').hasClass('has_et_pb_sticky') ) {
356								tbHeaderHeight = parseFloat( $('.et-l--header').innerHeight() );
357							}
358
359							let headerHeight = topHeaderHeight + mainHeaderHeight + tbHeaderHeight + 50;
360							$( 'html, body' ).animate( {
361								scrollTop: ( $wrapper.offset().top - headerHeight )
362							} );
363						}
364					}
365				};
366
367				if ( 'on' === $options.show_prev_next ) {
368					$paginationArgs.prev = $options.prev_text;
369					$paginationArgs.next = $options.next_text;
370				}
371				
372				$pagination.twbsPagination( 'destroy' );
373				$pagination.JustifiedGalleryExtendedPagination( $paginationArgs );
374			}
375		} else {
376			// Hide all first.
377			$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' ).addClass( 'dge-hidden-item' );
378			$wrapper.find( '.el-justified-gallery-container .el-justified-gallery-item' + selectedCatClass ).removeClass( 'dge-hidden-item' );
379		}
380		
381		$wrapper.find( '.dge-justified-gallery-filter li' ).removeClass( 'active' );
382		$this.parent().addClass( 'active' );
383
384		// Add category to filtered.
385		// justified_settings.filter = selected_cat;
386		$inner.justifiedGallery( justified_settings ).on( 'jg.complete', function (e) {
387			$inner.find( '.el-justified-gallery-item' ).fadeIn('slow');
388		} );
389	} ); // End of clicked on filter.
390
391	// Lightbox.
392	if ( $settings?.click_trigger && ( 'lightbox' === $settings.click_trigger || 'zoom_n_link' === $settings.click_trigger ) ) {
393		let $orderClass = $this.prop('class').match(/(el_justified_gallery\_[^\s]*)/)[0] + '_lightbox',
394			$effect     = $settings.lightbox_effect,
395			$zoom       = 'zoom' === $effect ? true : false,
396			$duration   = 'none' !== $effect ? parseInt( $settings.lightbox_transition_duration ) : 0,
397			$navigation = ( 'on' === $settings.enable_navigation ) ? true : false;
398
399		let clickDeligate = '.el-justified-gallery-item figure';
400		if ( 'zoom_n_link' === $settings.click_trigger ) {
401			clickDeligate = '.el-justified-gallery-item .dge-overlay-lightbox';
402		}
403
404		$wrapper.magnificPopup( {
405			delegate: clickDeligate,
406			type: 'image',
407			removalDelay: $duration,
408			closeOnContentClick: false,
409			closeBtnInside: false,
410			mainClass: 'mfp-with-zoom mfp-img-mobile el_justified_gallery_lightbox ' + $orderClass + ' dipl_mfp_' + $effect,
411			gallery: {
412				enabled: $navigation,
413				navigateByImgClick: false,
414				tPrev: '',
415				tNext: '',
416				tCounter: ''
417			},
418			zoom: {
419				enabled: $zoom,
420				duration: $duration,
421				easing: 'ease-in-out',
422				opener: function(element) {
423					return element;
424				}
425			},
426			image: {
427				markup: '<div class="mfp-figure">'+
428						'<div class="mfp-close"></div>'+
429						'<div class="mfp-img"></div>'+
430						'<div class="mfp-bottom-bar">'+
431						'<div class="mfp-title"></div>'+
432						'</div>'+
433					'</div>',
434				titleSrc: function(item) {
435					if ( 'zoom_n_link' === $settings.click_trigger ) {
436						return item.el.parents( '.el-justified-gallery-item' ).find( 'figcaption .el-item-content' ).length > 0 ? item.el.parents( '.el-justified-gallery-item' ).find( 'figcaption .el-item-content' ).html() : '';
437					}
438					return item.el.find('figcaption .el-item-content').length > 0 ? item.el.find('figcaption .el-item-content').html() : '';
439				},
440				tError: '<a href="%url%">The image</a> could not be loaded.',
441			},
442			allowHTMLInTemplate: true
443		} );
444	}
445}

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.