PageSourceSearch

https://tiggypet.it/wp-content/plugins/petty-pro/modules/woocommer…/products/assets/js/script.js?ver=7.1.3

js tiggypet.it collected 2026-10-07 12:16:54 UTC 8,160 bytes, 248 lines download raw bytes

1( function( $ ) {
2
3	var wdtShopProducts = function($scope, $){
4
5
6		// Product Shortcode - Ajax Pagination
7
8		jQuery( 'body' ).delegate( '.wdt-product-pagination a', 'click', function(e) {
9
10			var this_item = jQuery(this);
11
12			// Pagination Data
13			if(this_item.parent().hasClass('prev-post')) {
14				var current_page = parseInt(this_item.attr('data-currentpage'), 10)-1;
15			} else if(this_item.parent().hasClass('next-post')) {
16				var current_page = parseInt(this_item.attr('data-currentpage'), 10)+1;
17			} else {
18				var current_page = this_item.text();
19			}
20
21			var post_per_page = this_item.parents('.wdt-product-pagination').attr('data-postperpage');
22
23			if(current_page == 1) {
24				var offset = 0;
25			} else if(current_page > 1) {
26				var offset = ((current_page-1)*post_per_page);
27			}
28
29			var function_call = this_item.parents('.wdt-product-pagination').attr('data-functioncall');
30			var output_div = this_item.parents('.wdt-product-pagination').attr('data-outputdiv');
31
32			var shortcodeattrs = this_item.parents('.wdt-product-pagination').attr('data-shortcodeattrs');
33
34			var productpagination_nonce = this_item.parents('.wdt-product-pagination').attr('data-productpagination-nonce');
35
36
37			// Ajax call
38			jQuery.ajax({
39				type: "POST",
40				url: wdtShopScObjects.ajaxurl,
41				data:
42				{
43					action: function_call,
44					current_page: current_page,
45					offset: offset,
46					post_per_page: post_per_page,
47					function_call: function_call,
48					output_div: output_div,
49					shortcodeattrs: shortcodeattrs,
50					productpagination_nonce: productpagination_nonce
51				},
52				beforeSend: function(){
53					this_item.parents('.'+output_div).prepend( '<div class="wdt-product-loader"><i class="fa fa-spinner fa-spin"></i></div>' );
54				},
55				success: function (response) {
56					this_item.parents('.'+output_div).replaceWith(response);
57				},
58				complete: function(){
59					this_item.parents('.'+output_div+' .wdt-product-loader').remove();
60				}
61			});
62
63			e.preventDefault();
64
65		});
66
67		var swiperProduct = [];
68		var swiperProductOptions = [];
69
70		$scope.find('.wdt-products-container.swiper-container').each(function() {
71
72			var $swiperItem = jQuery(this);
73			var swiperIterator = $swiperItem.attr('data-moduleid');
74			var swiperUniqueId = 'swiperuniqueid-'+swiperIterator;
75			var $carouselSettings = $swiperItem.data('carouselresponsive');
76
77			swiperProductOptions[swiperUniqueId] = [];
78			$swiperItem.attr('id', swiperUniqueId);
79
80			// Get swiper options
81			var effect = $swiperItem.attr('data-carouseleffect');
82			var slidesperview = parseInt($swiperItem.attr('data-carouselslidesperview'), 10);
83			if(effect == 'fade') {
84				slidesperview = 1;
85			}
86
87			var slidespercolumn = 1;
88			var carouselslidespercolumn = parseInt($swiperItem.attr('data-carouselslidespercolumn'), 10);
89			if(effect == 'multirow') {
90				slidespercolumn = carouselslidespercolumn;
91			}
92
93			var loopmode = ($swiperItem.attr('data-carouselloopmode') == 'true') ? true : false;
94			var mousewheelcontrol = ($swiperItem.attr('data-carouselmousewheelcontrol') == 'true') ? true : false;
95
96			var pagination_class = '';
97			var pagination_type = '';
98
99			var carouselbulletpagination = ($swiperItem.attr('data-carouselbulletpagination') == 'true') ? true : false;
100			if(carouselbulletpagination) {
101				var pagination_class = $swiperItem.find('.wdt-products-bullet-pagination');
102				var pagination_type = 'bullets';
103			}
104
105			var carouselthumbnailposition = ($swiperItem.attr('data-carouselthumbnailposition') != '') ? $swiperItem.attr('data-carouselthumbnailposition') : false;
106			if(carouselthumbnailposition) {
107				swiperProductOptions[swiperUniqueId]['carouselthumbnailposition'] = 'vertical';
108			} else {
109				swiperProductOptions[swiperUniqueId]['carouselthumbnailposition'] = 'horizontal';
110			}
111
112			var scrollbar_class = '';
113			var	scrollbar_hide = true;
114			var carouselscrollbar = ($swiperItem.attr('data-carouselscrollbar') == 'true') ? true : false;
115			if(carouselscrollbar) {
116				scrollbar_class = $swiperItem.find('.wdt-products-scrollbar');
117				scrollbar_hide = false;
118			}
119
120			var spacebetween = parseInt($swiperItem.attr('data-carouselspacebetween'), 10);
121			if(spacebetween) {
122				spacebetween = spacebetween;
123			} else {
124				spacebetween = 0;
125			}
126
127			var autoheight = true;
128			if(effect == 'multirow') {
129				autoheight = false;
130				loopmode = false;
131			}
132
133			// Update breakpoints
134			const $responsiveSettings = $carouselSettings['responsive'];			
135			const $responsiveData = {};
136
137			$.each($responsiveSettings, function (index, value) {
138				$responsiveData[value.breakpoint] = {
139					slidesPerView: value.toshow
140				};
141			});
142
143			// Generate swiper
144			swiperProduct[swiperUniqueId] = new Swiper('#'+swiperUniqueId, {
145
146				initialSlide: 0,
147				simulateTouch: true,
148				roundLengths: true,
149				//spaceBetween: spacebetween,
150				keyboardControl: true,
151				paginationClickable: true,
152				autoHeight: autoheight,
153				grabCursor: true,
154
155				slidesPerView: slidesperview,
156				slidesPerColumn: slidespercolumn,
157				slidesPerColumnFill: 'row',
158				loop: loopmode,
159				loopFillGroupWithBlank: loopmode,
160				mousewheel: mousewheelcontrol,
161				direction: 'horizontal',
162
163				pagination: {
164					el: pagination_class,
165					type: pagination_type,
166					clickable: true
167				},
168
169				scrollbar: {
170					el: scrollbar_class,
171					hide: scrollbar_hide,
172					draggable: true,
173				},
174
175				effect: effect,
176
177				breakpoints : $responsiveData,
178
179			});
180
181			// Arrow pagination
182			var arrowpagination = ($swiperItem.attr('data-carouselarrowpagination') == 'true') ? true : false;
183
184			if(arrowpagination) {
185
186				$swiperItem.find('.wdt-products-arrow-pagination .wdt-products-arrow-prev').on('click', function(e) {
187					var swiperUniqueId = $swiperItem.attr('id');
188					swiperProduct[swiperUniqueId].slidePrev();
189					if(swiperProductOptions[swiperUniqueId]['autoplay_enable']) {
190						swiperProduct[swiperUniqueId].autoplay.start();
191					}
192					e.preventDefault();
193				});
194
195				$swiperItem.find('.wdt-products-arrow-pagination .wdt-products-arrow-next').on('click', function(e) {
196					var swiperUniqueId = $swiperItem.attr('id');
197					swiperProduct[swiperUniqueId].slideNext();
198					if(swiperProductOptions[swiperUniqueId]['autoplay_enable']) {
199						swiperProduct[swiperUniqueId].autoplay.start();
200					}
201					e.preventDefault();
202				});
203
204			}
205
206			// swiperIterator++;
207
208		});
209
210
211		if($scope.hasClass('elementor-element-edit-mode')) {
212
213			// Loading option CSS near html element
214			var customCSS = jQuery('body', parent.document).find('style[id="petty-woo-non-archive-inline-css"]').text();
215			jQuery('body', parent.document).find('style[id="petty-woo-non-archive-inline-css"]').remove();
216			jQuery('.elementor-widget-wdt-shop-products.elementor-element-edit-mode').find('.wdt-products-container').append('<style id="wdt-edit-mode-shop-style">'+customCSS+'</style>');
217
218			// Loading option JS near html element
219			var customJS = jQuery('body', parent.document).find('script[id="petty-woo-non-archive-js-after"]').text();
220			jQuery('body', parent.document).find('script[id="petty-woo-non-archive-js-after"]').remove();
221			jQuery('.elementor-widget-wdt-shop-products.elementor-element-edit-mode').find('.wdt-products-container').append('<script id="wdt-edit-mode-shop-script">'+customJS+'</script>');
222
223			// On window resize
224			jQuery(window).on('resize', function() {
225				// Product Listing Isotope
226				$scope.find('.products-apply-isotope').each(function() {
227					if(!jQuery(this).hasClass('swiper-wrapper')) {
228						jQuery(this).isotope({itemSelector : '.wdt-col', transformsEnabled:false });
229					}
230				});
231			});
232
233			if($scope.find('.products-apply-isotope').length) {
234				window.dispatchEvent(new Event('resize'));
235			}
236
237		}
238
239	};
240
241    $(window).on('elementor/frontend/init', function(){
242		elementorFrontend.hooks.addAction('frontend/element_ready/wdt-shop-products.default', wdtShopProducts);
243		elementorFrontend.hooks.addAction('frontend/element_ready/tabs.default', wdtShopProducts);
244		elementorFrontend.hooks.addAction('frontend/element_ready/jet-tabs.default', wdtShopProducts);
245		elementorFrontend.hooks.addAction('frontend/element_ready/text-editor.default', wdtShopProducts);
246    });
247
248} )( jQuery );

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.