PageSourceSearch

https://signos.fr/wp-content/plugins/divi-testimonial-extended/div…/assets/script.min.js?ver=3.0.3

js signos.fr collected 2026-09-26 10:21:43 UTC 14,518 bytes, 357 lines download raw bytes

1( function( $ ) {
2	$.fn.DiviTestimonialExtendedPagination = function( $options = {} ) {
3		let $defaults = {
4				paginationClass: 'el_md_testimonial_pagination',
5				hideOnlyOnePage: true,
6				totalPages: 1,
7				visiblePages: 10,
8				startPage: 1,
9				initiateStartPageClick: false,
10				first: false,
11				last: false,
12				prev: false,
13				next: false,
14			},
15			$pagination = this;
16		
17		$options = $.extend({}, $defaults, $options);
18		$pagination.twbsPagination($options);
19	}
20} ( jQuery ) );
21
22jQuery(document).ready( function($) {
23	if ( $('body').find( '.el_md_testimonial_extended' ).length > 0 ) {
24		$( '.el_md_testimonial_extended' ).each( function() {
25			let $this = $(this);
26			dte_init_testimonial_slider( $this );
27			dte_init_testimonial_grid( $this );
28		} );
29	}
30} );
31
32/**
33 * Init the slider for testimonial.
34 */
35function dte_init_testimonial_slider( $wrapObj ) {
36	if ( $wrapObj.find( '.swiper-container' ).length < 1 || $wrapObj.find( '.swiper-slide' ).length < 1 ) {
37		return;
38	}
39
40	let $orderClass   = $wrapObj.prop('class').match(/(el_md_testimonial_extended\_[^\s]*)/)[0],
41		$orderNumber  = $orderClass.replace( 'el_md_testimonial_extended_', '' ),
42
43		$slidesPerGroup                     = 1,
44		$slidesPerGroupIpad                 = 1,
45		$slidesPerGroupMobile		        = 1,
46		$slidesPerGroupSkip			        = 0,
47		$slidesPerGroupSkipIpad		        = 0,
48		$slidesPerGroupSkipMobile	        = 0,
49		$testimonials_per_view        		= 1,
50		$testimonials_per_view_ipad   		= 1,
51		$testimonials_per_view_mobile 		= 1,
52		$testimonials_space_between   		= 0,
53		$testimonials_space_between_ipad	= 0,
54		$testimonials_space_between_mobile	= 0;
55
56	const dataObj = $wrapObj.find( '.el-testimonial-layout' );
57	let settings  = {
58		'slide_effect'                : dataObj.attr( 'data-slide_effect' ),
59		'show_arrow'                  : dataObj.attr( 'data-show_arrow' ),
60		'show_control'                : dataObj.attr( 'data-show_control' ),
61		'loop'                        : dataObj.attr( 'data-loop' ),
62		'autoplay'                    : dataObj.attr( 'data-autoplay' ),
63		'autoplay_speed'              : dataObj.attr( 'data-autoplay_speed' ),
64		'transition_duration'         : dataObj.attr( 'data-transition_duration' ),
65		'pause_on_hover'              : dataObj.attr( 'data-pause_on_hover' ),
66		'auto_height_slider'          : dataObj.attr( 'data-auto_height_slider' ),
67		'enable_coverflow_shadow'     : dataObj.attr( 'data-enable_coverflow_shadow' ),
68		'coverflow_rotate'            : dataObj.attr( 'data-coverflow_rotate' ),
69		'coverflow_depth'             : dataObj.attr( 'data-coverflow_depth' ),
70		'dynamic_bullets'             : dataObj.attr( 'data-dynamic_bullets' ),
71		'per_view'                    : dataObj.attr( 'data-per_view' ),
72		'per_view_tablet'             : dataObj.attr( 'data-per_view_tablet' ),
73		'per_view_phone'              : dataObj.attr( 'data-per_view_phone' ),
74		'per_group'                   : dataObj.attr( 'data-per_group' ),
75		'per_group_tablet'            : dataObj.attr( 'data-per_group_tablet' ),
76		'per_group_phone'             : dataObj.attr( 'data-per_group_phone' ),
77		'space_between_slides'        : dataObj.attr( 'data-space_between_slides' ),
78		'space_between_slides_tablet' : dataObj.attr( 'data-space_between_slides_tablet' ),
79		'space_between_slides_phone'  : dataObj.attr( 'data-space_between_slides_phone' ),
80	};
81
82	let slideEffect = ( settings.slide_effect ) ?? 'slide'; 
83	if ( 'slide' === slideEffect || 'coverflow' === slideEffect ) {
84
85		$testimonials_per_view              = ( settings?.per_view ) ? settings.per_view : '1';
86		$testimonials_per_view_ipad         = ( settings?.per_view_tablet ) ? settings.per_view_tablet : $testimonials_per_view;
87		$testimonials_per_view_mobile       = ( settings?.per_view_phone ) ? settings.per_view_phone : $testimonials_per_view_ipad;
88
89		$testimonials_space_between   	    = ( settings?.space_between_slides ) ? settings.space_between_slides : '20px';
90		$testimonials_space_between_ipad    = ( settings?.space_between_slides_tablet ) ? settings.space_between_slides_tablet : $testimonials_space_between;
91		$testimonials_space_between_mobile  = ( settings?.space_between_slides_phone ) ? settings.space_between_slides_phone : $testimonials_space_between_ipad;
92
93		$slidesPerGroup 					= ( settings?.per_group ) ? settings.per_group : '1';
94		$slidesPerGroupIpad					= ( settings?.per_group_tablet ) ? settings.per_group_tablet : $slidesPerGroup;
95		$slidesPerGroupMobile				= ( settings?.per_group_phone ) ? settings.per_group_phone : $slidesPerGroupIpad;
96
97		if ( $testimonials_per_view > $slidesPerGroup && 1 !== $slidesPerGroup ) {
98			$slidesPerGroupSkip = parseInt( $testimonials_per_view ) - parseInt( $slidesPerGroup );
99		}
100		if ( $testimonials_per_view_ipad > $slidesPerGroupIpad && 1 !== $slidesPerGroupIpad ) {
101			$slidesPerGroupSkipIpad = parseInt( $testimonials_per_view_ipad ) - parseInt( $slidesPerGroupIpad );
102		}
103		if ( $testimonials_per_view_mobile > $slidesPerGroupMobile && 1 !== $slidesPerGroupMobile ) {
104			$slidesPerGroupSkipMobile = parseInt( $testimonials_per_view_mobile ) - parseInt( $slidesPerGroupMobile );
105		}
106	}
107
108	let autoplay_speed      = ( settings?.autoplay_speed ) ?? 3000,
109		pause_on_hover      = ( settings?.pause_on_hover ) ?? 'on',
110		transition_duration = ( settings?.transition_duration ) ?? 1000,
111		loop_param          = ( 'on' === settings?.loop ) ? true : false,
112		dynamic_bullets     = ( 'on' === settings?.dynamic_bullets ) ? true : false;
113
114	let $show_arrow = 'false';
115	if ( 'on' === settings?.show_arrow ) {
116		$show_arrow = {    
117			nextEl: '.' + $orderClass + ' .swiper-button-next.arrow-' + $orderNumber,
118			prevEl: '.' + $orderClass + ' .swiper-button-prev.arrow-' + $orderNumber,
119		};
120	}
121
122	let $show_control = false;
123	if ( 'on' === settings?.show_control ) {
124		$show_control = {
125			el: '.' + $orderClass + ' .swiper-pagination.paged-' + $orderNumber,
126			dynamicBullets: dynamic_bullets,
127			clickable: true,
128		}
129	}
130	let $autoplay_param = 0;
131	if ( 'on' === settings?.autoplay ) {
132		$autoplay_param = {
133			delay: parseInt( autoplay_speed ),
134			disableOnInteraction: ( 'on' === pause_on_hover ) ? true : false,
135		};
136	}
137	let $slide_setting_cube = false;
138	if ( 'cube' === slideEffect ) {
139		$slide_setting_cube = {
140			shadow: false,
141			slideShadows: false,
142		};
143	}
144	let $slide_setting_coverflow = false;
145	if ( 'coverflow' === slideEffect ) {
146		$slide_setting_coverflow = {
147			rotate: ( settings?.coverflow_rotate ) ?? 40,
148			stretch: 0,
149			depth: ( settings?.coverflow_depth ) ?? 100,
150			modifier: 1,
151			slideShadows : ( settings?.enable_coverflow_shadow ) ?? false,
152		};
153		loop_param = true;
154	}
155
156	let $fade = false;
157	if ( 'fade' === slideEffect ) {
158		$fade = { crossFade: true };
159	}
160
161	// if ( $wrapObj.hasClass( 'dte-slider-initialized' ) ) {
162	// 	jQuery( '.' + $orderClass + ' .swiper-container' ).destroy();
163	// 	$wrapObj.removeClass( 'dte-slider-initialized' );
164	// }
165
166	// Remove the pagination clases.
167	if ( $wrapObj.find( '.swiper-pagination' ).hasClass( 'swiper-pagination-bullets-dynamic' ) ) {
168		$wrapObj.find( '.swiper-pagination' ).removeClass( 'swiper-pagination-bullets-dynamic' ).css( 'width', 'auto' );
169	}
170
171	var sliderInstance = document.querySelector( '.' + $orderClass + ' .swiper-container' ).swiper;
172	if ( sliderInstance ) {
173		sliderInstance.destroy();
174	}
175
176	var swipperSlider = new Swiper( '.' + $orderClass + ' .swiper-container', {
177		slidesPerView: parseInt( $testimonials_per_view ),
178		autoplay: $autoplay_param,
179		spaceBetween: parseInt( $testimonials_space_between ),
180		slidesPerGroup: parseInt( $slidesPerGroup ),
181		slidesPerGroupSkip: parseInt( $slidesPerGroupSkip ),
182		effect: slideEffect,
183		cubeEffect: $slide_setting_cube,
184		coverflowEffect: $slide_setting_coverflow,
185		fadeEffect: $fade,
186		autoHeight: ( 'on' === settings?.auto_height_slider ) ? true : false,
187		speed: parseInt( transition_duration ),
188		loop: loop_param,
189		pagination: $show_control,
190		navigation: $show_arrow,
191		grabCursor: true,
192		breakpoints: {
193			1080: {
194				slidesPerView: parseInt( $testimonials_per_view ),
195				spaceBetween: parseInt( $testimonials_space_between ),
196				slidesPerGroup: parseInt( $slidesPerGroup ),
197				slidesPerGroupSkip: parseInt( $slidesPerGroupSkip ),
198			},
199			767: {
200				slidesPerView: parseInt( $testimonials_per_view_ipad ),
201				spaceBetween: parseInt( $testimonials_space_between_ipad ),
202				slidesPerGroup: parseInt( $slidesPerGroupIpad ),
203				slidesPerGroupSkip: parseInt( $slidesPerGroupSkipIpad ),
204			},
205			0: {
206				slidesPerView: parseInt( $testimonials_per_view_mobile ),
207				spaceBetween: parseInt( $testimonials_space_between_mobile ),
208				slidesPerGroup: parseInt( $slidesPerGroupMobile ),
209				slidesPerGroupSkip: parseInt( $slidesPerGroupSkipMobile ),
210			}
211		}
212	} );
213
214	$wrapObj.addClass( 'dte-slider-initialized' );
215	if ( 'on' === pause_on_hover && 'on' === settings?.autoplay ) {
216		jQuery( '.' + $orderClass + ' .swiper-container' ).on( 'mouseleave', function(e) {
217			if ( typeof swipperSlider?.autoplay?.stop === "function" ) {
218				swipperSlider.autoplay.stop();
219			}
220		} );
221		jQuery( '.' + $orderClass + ' .swiper-container' ).on( 'mouseenter', function(e) {
222			if ( typeof swipperSlider?.autoplay?.start === "function" ) {
223				swipperSlider.autoplay.start();
224			}
225		} );
226	}
227
228	if ( 'on' !== settings?.loop ) {
229		swipperSlider.on( 'reachEnd', function() {
230			swipperSlider.autoplay = false;
231		} );
232	}
233}
234
235/**
236 * Init grid.
237 */
238function dte_init_testimonial_grid( $wrapObj ) {
239	let $masonry = '';
240	if ( $wrapObj.find('.el-testimonial-isotope-container').length > 0 ) {
241		$masonry = $wrapObj.find('.el-testimonial-isotope-container').isotope( {
242			itemSelector: '.el-testimonial-isotope-item',
243			layoutMode: 'masonry',
244			percentPosition: true,
245			resize: true,
246		} );
247
248		$masonry.imagesLoaded( function() {
249			$masonry.isotope( 'layout' );
250		} );
251
252		// $wrapObj.find( '.el-testimonial-isotope-container' ).isotope( 'reloadItems' );
253		// $wrapObj.find( '.el-testimonial-isotope-container' ).isotope( 'layout' );
254	}
255
256	// Pagination.
257	if ( $wrapObj.find('.el_md_testimonial_pagination_wrapper').length > 0 ) {
258		let $wrapper            = $wrapObj.find( '.el-testimonial-layout' ),
259			$pagination_wrapper = $wrapObj.find('.el_md_testimonial_pagination_wrapper'),
260			$pagination         = $pagination_wrapper.find('ul'),
261			$perPage            = isNaN( $pagination_wrapper.data('testimonial_number') ) || 0 === parseInt( $pagination_wrapper.data('testimonial_number') ) ? -1 : parseInt( $pagination_wrapper.data('testimonial_number') ),
262			$totalPages         = isNaN( $pagination_wrapper.data('total_pages') ) || 0 === parseInt( $pagination_wrapper.data('total_pages') ) ? 1 : parseInt( $pagination_wrapper.data('total_pages') ),
263			$options            = {
264				totalPages: $totalPages,
265				onPageClick: function (event, page) {
266					let $props = $pagination_wrapper.data();
267					$props['page'] = page;
268					$wrapper.fadeTo( '100', 0.2 );
269					jQuery.ajax( {
270						type: 'POST',  
271						url: DiviTestimonialExtendedFrontendData.ajaxurl,
272						data: {
273							action: 'el_get_testimonials', 
274							testimonial_extended_nonce: DiviTestimonialExtendedFrontendData.ajaxnonce,
275							props: $props
276						},
277						success: function( response ) {
278							// console.log(response);
279							if ( response.success ) {
280								let $elements = jQuery( response.items );
281								if ( $wrapObj.find('.el-testimonial-isotope-container').length > 0 ) {
282									$masonry.append( $elements ).isotope( 'appended', $elements );
283									$wrapper.find( '.el-single-testimonial-card:not(.el-single-testimonial-item-page-' + page + ')' ).each( function() {
284										jQuery(this).closest('.el-testimonial-isotope-item').detach();
285									} );
286									$masonry.isotope( {
287										filter: function() {
288											if ( jQuery(this).find('.el-single-testimonial-card').hasClass('el-single-testimonial-item-page-'+page) ) {
289												return jQuery(this);
290											}
291										}
292									} ).isotope( 'revealItemElements', $wrapper.find('.el-single-testimonial-item-page-'+page).closest('.el-testimonial-isotope-item') ).isotope('layout');
293									$wrapObj.find( '.el-testimonial-isotope-container' ).isotope( 'reloadItems' );
294									$masonry.imagesLoaded( function() {
295										$masonry.isotope( 'layout' );
296									} );
297								} else {
298									$wrapper.append( $elements );
299									$wrapper.find('.el-single-testimonial-card:not(.el-single-testimonial-item-page-' + page + ')').detach();
300								}
301								$wrapper.fadeTo( '100', 1 );
302							}
303						}
304					} );
305
306					let topHeaderHeight     = 0,
307						mainHeaderHeight    = 0,
308						tbHeaderHeight      = 0;
309
310					if ( jQuery('body').find('#top-header').length > 0 && jQuery('body').hasClass('et_fixed_nav') ) {
311						topHeaderHeight = parseFloat( jQuery('#top-header').innerHeight() );
312					}
313					if ( jQuery('body').find('#main-header').length > 0 && jQuery('body').hasClass('et_fixed_nav') ) {
314						mainHeaderHeight = parseFloat( jQuery('#main-header').innerHeight() );
315					}
316					if ( jQuery('body').find('.et-l--header').length > 0 && jQuery('body').find('.et-l--header .et_builder_inner_content').hasClass('has_et_pb_sticky') ) {
317						tbHeaderHeight = parseFloat( jQuery('.et-l--header').innerHeight() );
318					}
319					let headerHeight = topHeaderHeight + mainHeaderHeight + tbHeaderHeight + 50;
320					jQuery( 'html, body' ).animate( {
321						scrollTop: ( $wrapObj.offset().top - headerHeight )
322					} );
323				}
324			};
325
326		if ( 'on' === $pagination_wrapper.data('show_prev_next') ) {
327			$options.prev = $pagination_wrapper.data('prev_text');
328			$options.next = $pagination_wrapper.data('next_text');
329		}
330
331		$pagination.DiviTestimonialExtendedPagination( $options );
332	}
333
334	// Load more content.
335	$wrapObj.on( 'click', '.el-testimonial-desc .el-testimonial-readmore-btn.el-action-show-content', function(e) {
336		e.preventDefault();
337
338		jQuery( this ).parents( '.el-testimonial-desc' ).find( '.el-more-dots' ).hide();
339		jQuery( this ).parents( '.el-testimonial-desc' ).find( '.el-more-text' ).fadeIn();
340		jQuery( this ).next( '.el-testimonial-readless-btn' ).show();
341		jQuery( this ).hide()
342
343		return false;
344	} );
345
346	// Load less content.
347	$wrapObj.on( 'click', '.el-testimonial-desc .el-testimonial-readless-btn', function(e) {
348		e.preventDefault();
349
350		jQuery( this ).parents( '.el-testimonial-desc' ).find( '.el-more-dots' ).fadeIn();
351		jQuery( this ).parents( '.el-testimonial-desc' ).find( '.el-more-text' ).hide();
352		jQuery( this ).prev( '.el-testimonial-readmore-btn' ).show();
353		jQuery( this ).hide()
354
355		return false;
356	} );
357}

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.