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.