PageSourceSearch

https://movemomentum.co.uk/wp-content/plugins/divi-plus/divi-5/ser…/WooProducts/assets/script.min.js?ver=2.2.1

js movemomentum.co.uk collected 2026-10-04 02:03:12 UTC 9,822 bytes, 256 lines download raw bytes

1jQuery(document).ready(function($){
2	
3	// jQuery(document).on('mouseenter', '.add-to-cart-on-hover .dipl_single_woo_product', function(){
4	//     let btnHeight = parseFloat( $(this).find('.dipl-woo-products-add-to-cart-link').innerHeight() ) + 10 + 'px';
5	//     $(this).find('.dipl-woo-products-add-to-cart-link').css('transform','translateY(-' + btnHeight + ')');
6	//     $(this).find('.dipl_single_woo_product_title').css('transform','translateY(-' + btnHeight + ')');
7	//     $(this).find('.dipl_single_woo_product_price').css('transform','translateY(-' + btnHeight + ')');
8	//     $(this).find('.dipl_single_woo_product_thumbnail').css('transform','translateY(-' + btnHeight + ')');
9	//     $(this).find('.dipl_single_woo_product_star_rating').css('transform','translateY(-' + btnHeight + ')');
10	//     $(this).find('.dipl_single_woo_product_quickview_wrapper').css('transform','translateY(-' + btnHeight + ')');
11	// });
12	// jQuery(document).on('mouseleave', '.layout1.add-to-cart-on-hover .dipl_single_woo_product', function(){
13	//     $(this).find('.dipl-woo-products-add-to-cart-link').css('transform','translateY(0)');
14	//     $(this).find('.dipl_single_woo_product_title').css('transform','translateY(0)');
15	//     $(this).find('.dipl_single_woo_product_price').css('transform','translateY(0)');
16	//     $(this).find('.dipl_single_woo_product_thumbnail').css('transform','translateY(0)');
17	//     $(this).find('.dipl_single_woo_product_star_rating').css('transform','translateY(0)');
18	//     $(this).find('.dipl_single_woo_product_quickview_wrapper').css('transform','translateY(0)');
19	// });
20
21	$('.dipl_woo_products').find('.dipl_single_woo_product').each( function() {
22		if ( $(this).find('.dipl_single_woo_product_add_to_cart').hasClass('dipl_single_woo_product_add_to_cart_on_hover') && ! $(this).hasClass('dipl_product_lightbox_loader') ) {
23			$(this).on( 'mouseenter', function() {
24				let btnHeight = parseFloat( $(this).find('.add_to_cart_inline').innerHeight() ) + 10 + 'px';
25				$(this).find('.add_to_cart_inline').css('transform','translateY(-' + btnHeight + ')');
26				$(this).find('.dipl_single_woo_product_title').css('transform','translateY(-' + btnHeight + ')');
27				$(this).find('.dipl_single_woo_product_price').css('transform','translateY(-' + btnHeight + ')');
28				$(this).find('.dipl_single_woo_product_thumbnail').css('transform','translateY(-' + btnHeight + ')');
29				$(this).find('.dipl_single_woo_product_star_rating').css('transform','translateY(-' + btnHeight + ')');
30				$(this).find('.dipl_single_woo_product_quickview_wrapper').css('transform','translateY(-' + btnHeight + ')');
31			} );
32			$(this).on( 'mouseleave', function() {
33				$(this).find('.add_to_cart_inline').css('transform','translateY(0)');
34				$(this).find('.dipl_single_woo_product_title').css('transform','translateY(0)');
35				$(this).find('.dipl_single_woo_product_price').css('transform','translateY(0)');
36				$(this).find('.dipl_single_woo_product_thumbnail').css('transform','translateY(0)');
37				$(this).find('.dipl_single_woo_product_star_rating').css('transform','translateY(0)');
38				$(this).find('.dipl_single_woo_product_quickview_wrapper').css('transform','translateY(0)');
39			} );
40		}
41	} );
42	
43	jQuery(document).on( 'change', 'select.orderby', function() {
44		$( this ).closest( 'form' ).trigger( 'submit' );
45	} );
46
47	jQuery(document).on( 'click', 'a.page-numbers', function(e) {
48		event.preventDefault();
49		let parent = $(this).closest('.dipl_woo_products');
50
51		let $props     = parent.find('.woocommerce').data(),
52			$category  = $(this).data('term_id'),
53			$queryVars = diplGetQueryVars(),
54			url        = event.target.href,
55			page       = parseInt( getParameterByName( 'dipl_woo_products_page', url ) );
56
57		let diplWooProductsNonce = $('body').find('.dipl_woo_products_nonce').val();
58		if ( ! dipl_validate_script( diplWooProductsNonce ) || ! dipl_validate_html( diplWooProductsNonce ) ) {
59			return false;
60		}
61
62		if ( '' !== page && page > 0 ) {
63			$props['page'] = page;
64		} else {
65			$props['page'] = 1;
66		}
67
68		parent.fadeTo( '100', 0.2 );
69		$.ajax({
70			type: 'POST',  
71			url: DiviPlusFrontendData.ajaxurl,
72			data: {
73				action: 'dipl_woo_products_pagination', 
74				dipl_get_woo_products_nonce: diplWooProductsNonce,
75				props: $props,
76				query_vars: $queryVars
77			},
78			success: function(response) {
79				if ( response.success ) {
80					if ( parent.find('.et_pb_module_inner').length > 0 ) {
81						parent.find('.et_pb_module_inner').html( response.content );
82					} else {
83						parent.html( response.content );
84					}
85					parent.fadeTo( '100', 1 );
86				}
87
88				$('.dipl_woo_products').each( function(){
89					let $this = $(this);
90					dipl_init_masonry( $this );
91				} );
92
93				let topHeaderHeight     = 0,
94					mainHeaderHeight    = 0,
95					tbHeaderHeight      = 0;
96				if ( $('body').find('#top-header').length > 0 && $('body').hasClass('et_fixed_nav') ) {
97					topHeaderHeight = parseFloat( $('#top-header').innerHeight() );
98				}
99				if ( $('body').find('#main-header').length > 0 && $('body').hasClass('et_fixed_nav') ) {
100					mainHeaderHeight = parseFloat( $('#main-header').innerHeight() );
101				}
102				if ( $('body').find('.et-l--header').length > 0 && $('body').find('.et-l--header .et_builder_inner_content').hasClass('has_et_pb_sticky') ) {
103					tbHeaderHeight = parseFloat( $('.et-l--header').innerHeight() );
104				}
105				let headerHeight = topHeaderHeight + mainHeaderHeight + tbHeaderHeight + 50;
106				$( 'html, body' ).animate( {
107					scrollTop: ( parent.offset().top - headerHeight )
108				} );
109			}
110		} );
111	} );
112
113	jQuery(document).on('click', '.dipl_woo_products .dipl_single_woo_product_quickview', function(e){
114		e.preventDefault();
115		
116		let $this  = $(this),
117			parent = $(this).closest('.dipl_woo_products .woocommerce'),
118			data   = parent.data('args'),
119			$props = $this.data();
120
121		$this.closest('li.product').addClass('dipl_product_lightbox_loader');
122
123		let diplWooProductsNonce = $('body').find('.dipl_woo_products_nonce').val();
124		if ( ! dipl_validate_script( diplWooProductsNonce ) || ! dipl_validate_html( diplWooProductsNonce ) ) {
125			return false;
126		}
127
128		data.action = 'dipl_get_product_page';
129		data.dipl_product_popup_nonce = diplWooProductsNonce;
130		data.props = $props;
131
132		$.ajax( {
133			type: 'POST',  
134			url: DiviPlusFrontendData.ajaxurl,
135			data: data,
136			success: function(response) {
137
138				$orderClass = $this.closest('.dipl_woo_products').prop('class').match(/(dipl_woo_products\_[^\s]*)/)[0] + '_lightbox';
139				if ( $('body').hasClass('et-tb-has-template') ) {
140					if ( $orderClass.includes('_tb_header') ) {
141						$prependTo = $('body').find('#page-container').find('#et-boc .et-l--header');
142					} else if ( $orderClass.includes('_tb_body') ) {
143						$prependTo = $('body').find('#page-container').find('#et-boc .et-l--body');  
144					} else if ( $orderClass.includes('_tb_footer') ) {
145						$prependTo = $('body').find('#page-container').find('#et-boc .et-l--footer');
146					}
147				}
148
149				if ( response.success ) {
150					$.magnificPopup.open({
151						preloader: true,
152						items: {
153							src: $(response.content),
154							type: 'inline'
155						},
156						closeOnContentClick: false,
157						closeBtnInside: false,
158						mainClass: 'dipl_product_lightbox woocommerce single-product ' + $orderClass,
159						callbacks: {
160							open: function () {
161
162								const iconPlacement = data.quickViewAddToCartIconPlacement,
163								iconPlacementClass  = ( 'right' === iconPlacement ) ? 'icon-placement-right' : 'icon-placement-left';;
164
165								$this.closest('li.product').removeClass('dipl_product_lightbox_loader');
166								if ( typeof wc_add_to_cart_variation_params !== 'undefined' ) {
167									var form_variation = jQuery( $orderClass ).find( '.variations_form' );
168									form_variation.each( function () {
169										jQuery( this ).wc_variation_form();
170									} );
171								}
172								jQuery( '.woocommerce-product-gallery' ).each( function() {
173									jQuery( this ).trigger( 'wc-product-gallery-before-init', [ this, wc_single_product_params ] );
174									jQuery( this ).wc_product_gallery( wc_single_product_params );
175									jQuery( this ).trigger( 'wc-product-gallery-after-init', [ this, wc_single_product_params ] );
176								} );
177							}
178						},
179					} );
180				}
181			}
182		});
183	} );
184
185	$( '.dipl_woo_products' ).each( function() {
186		let $this = $(this);
187		dipl_init_masonry( $this );
188	} );
189} );
190
191function dipl_init_masonry( elObj ) {
192	let $masonry = '';
193	if ( elObj.find('.dipl_woo_products_isotope_container').length > 0 ) {
194		$masonry = elObj.find( '.dipl_woo_products_isotope_container' ).isotope( {
195			itemSelector: '.dipl_woo_products_isotope_item',
196			layoutMode: 'masonry',
197			percentPosition: true,
198			resize: true,
199			masonry: {
200				columnWidth: '.dipl_woo_products_isotope_item',
201				gutter: '.dipl_woo_products_isotope_item_gutter'
202			}
203		} );
204		$masonry.imagesLoaded( function() {
205			$masonry.isotope( 'layout' );
206		} );
207	}
208}
209
210function diplGetQueryVars() {
211	let $vars    = {},
212		$hashes  = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'),
213		$hash;
214	
215	for ( let i = 0; i < $hashes.length; i++ ) {
216		$hash = $hashes[i].split('=');
217		$vars[$hash[0]] = $hash[1];
218	}
219
220	return $vars;
221}
222
223function dipl_validate_script(pass) {
224	var filter =  /<script>/i;
225	if ( filter.test(pass) ) {
226		return false;   
227	} else {
228		return true;
229	}
230}
231
232/* HTML Vadlidation */
233function dipl_validate_html(pass) {
234	var filter =  /</;
235	if ( filter.test(pass) ) {
236		return false;   
237	} else {
238		return true;
239	}
240}
241
242function getParameterByName( name, url = window.location.href ) {
243	name = name.replace( /[\[\]]/g, '\\$&' );
244
245	var regex   = new RegExp( '[?&]' + name + '(=([^&#]*)|&|#|$)' ),
246		results = regex.exec( url );
247
248	if ( ! results) {
249		return null;
250	}
251	if ( ! results[2]) {
252		return '';
253	}
254
255	return decodeURIComponent( results[2].replace( /\+/g, ' ' ) );
256}

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.