1;(function($){ 2"use strict"; 3 4 /* 5 * Product Slider 6 */ 7 var WidgetProductSliderHandler = function ($scope, $) { 8 9 var slider_elem = $scope.find('.product-slider').eq(0); 10 11 if (slider_elem.length > 0) { 12 13 slider_elem[0].style.display='block'; 14 15 var settings = slider_elem.data('settings'); 16 var arrows = settings['arrows']; 17 var dots = settings['dots']; 18 var autoplay = settings['autoplay']; 19 var infinite = settings.hasOwnProperty('infinite') ? settings['infinite'] : true; 20 var rtl = settings['rtl']; 21 var autoplay_speed = parseInt(settings['autoplay_speed']) || 3000; 22 var animation_speed = parseInt(settings['animation_speed']) || 300; 23 var fade = settings['fade']; 24 var pause_on_hover = settings['pause_on_hover']; 25 var display_columns = parseInt(settings['product_items']) || 4; 26 var scroll_columns = parseInt(settings['scroll_columns']) || 4; 27 var tablet_width = parseInt(settings['tablet_width']) || 800; 28 var tablet_display_columns = parseInt(settings['tablet_display_columns']) || 2; 29 var tablet_scroll_columns = parseInt(settings['tablet_scroll_columns']) || 2; 30 var mobile_width = parseInt(settings['mobile_width']) || 480; 31 var mobile_display_columns = parseInt(settings['mobile_display_columns']) || 1; 32 var mobile_scroll_columns = parseInt(settings['mobile_scroll_columns']) || 1; 33 34 slider_elem.not('.slick-initialized').slick({ 35 arrows: arrows, 36 prevArrow: '<button type="button" class="slick-prev"><i class="fa fa-angle-left"></i></button>', 37 nextArrow: '<button type="button" class="slick-next"><i class="fa fa-angle-right"></i></button>', 38 dots: dots, 39 infinite: infinite, 40 autoplay: autoplay, 41 autoplaySpeed: autoplay_speed, 42 speed: animation_speed, 43 fade: false, 44 pauseOnHover: pause_on_hover, 45 slidesToShow: display_columns, 46 slidesToScroll: scroll_columns, 47 rtl: rtl, 48 responsive: [ 49 { 50 breakpoint: tablet_width, 51 settings: { 52 slidesToShow: tablet_display_columns, 53 slidesToScroll: tablet_scroll_columns 54 } 55 }, 56 { 57 breakpoint: mobile_width, 58 settings: { 59 slidesToShow: mobile_display_columns, 60 slidesToScroll: mobile_scroll_columns 61 } 62 } 63 ] 64 }); 65 }; 66 }; 67 68 /* 69 * Custom Tab 70 */ 71 function woolentor_tabs( $tabmenus, $tabpane ){ 72 $tabmenus.on('click', 'a', function(e){ 73 e.preventDefault(); 74 var $this = $(this), 75 $target = $this.attr('href'); 76 $this.addClass('htactive').parent().siblings().children('a').removeClass('htactive'); 77 $( $tabpane + $target ).addClass('htactive').siblings().removeClass('htactive'); 78 79 // slick refresh 80 if( $('.slick-slider').length > 0 ){ 81 var $id = $this.attr('href'); 82 $( $id ).find('.slick-slider').slick('refresh'); 83 } 84 85 }); 86 } 87 88 /* 89 * Universal product 90 */ 91 function productImageThumbnailsSlider( $slider ){ 92 $slider.slick({ 93 dots: true, 94 arrows: true, 95 prevArrow: '<button class="slick-prev"><i class="sli sli-arrow-left"></i></button>', 96 nextArrow: '<button class="slick-next"><i class="sli sli-arrow-right"></i></button>', 97 }); 98 } 99 if( $(".ht-product-image-slider").length > 0 ) { 100 productImageThumbnailsSlider( $(".ht-product-image-slider") ); 101 } 102 103 var WidgetThumbnaisImagesHandler = function thumbnailsimagescontroller(){ 104 woolentor_tabs( $(".ht-product-cus-tab-links"), '.ht-product-cus-tab-pane' ); 105 woolentor_tabs( $(".ht-tab-menus"), '.ht-tab-pane' ); 106 107 // Countdown 108 var finalTime, daysTime, hours, minutes, second; 109 $('.ht-product-countdown').each(function() { 110 var $this = $(this), finalDate = $(this).data('countdown'); 111 var customlavel = $(this).data('customlavel'); 112 $this.countdown(finalDate, function(event) { 113 $this.html(event.strftime('<div class="cd-single"><div class="cd-single-inner"><h3>%D</h3><p>'+customlavel.daytxt+'</p></div></div><div class="cd-single"><div class="cd-single-inner"><h3>%H</h3><p>'+customlavel.hourtxt+'</p></div></div><div class="cd-single"><div class="cd-single-inner"><h3>%M</h3><p>'+customlavel.minutestxt+'</p></div></div><div class="cd-single"><div class="cd-single-inner"><h3>%S</h3><p>'+customlavel.secondstxt+'</p></div></div>')); 114 }); 115 }); 116 117 } 118 119 /* 120 * woolentorquickview slider 121 */ 122 function woolentorquickviewMainImageSlider(){ 123 $('.ht-quick-view-learg-img').slick({ 124 slidesToShow: 1, 125 slidesToScroll: 1,
126 arrows: false, 127 fade: true, 128 asNavFor: '.ht-quick-view-thumbnails' 129 }); 130 } 131 function woolentorquickviewThumb(){ 132 $('.ht-quick-view-thumbnails').slick({ 133 slidesToShow: 3, 134 slidesToScroll: 1, 135 asNavFor: '.ht-quick-view-learg-img', 136 dots: false, 137 arrows: true, 138 focusOnSelect: true, 139 prevArrow: '<button class="woolentor-slick-prev"><i class="sli sli-arrow-left"></i></button>', 140 nextArrow: '<button class="woolentor-slick-next"><i class="sli sli-arrow-right"></i></button>', 141 }); 142 } 143 144 /* 145 * Tool Tip 146 */ 147 function woolentor_tool_tips(element, content) { 148 if ( content == 'html' ) { 149 var tipText = element.html(); 150 } else { 151 var tipText = element.attr('title'); 152 } 153 element.on('mouseover', function() { 154 if ( $('.woolentor-tip').length == 0 ) { 155 element.before('<span class="woolentor-tip">' + tipText + '</span>'); 156 $('.woolentor-tip').css('transition', 'all 0.5s ease 0s'); 157 $('.woolentor-tip').css('margin-left', 0); 158 } 159 }); 160 element.on('mouseleave', function() { 161 $('.woolentor-tip').remove(); 162 }); 163 } 164 165 /* 166 * Tooltip Render 167 */ 168 var WidgetWoolentorTooltipHandler = function woolentor_tool_tip(){ 169 $('a.woolentor-compare').each(function() { 170 woolentor_tool_tips( $(this), 'title' ); 171 }); 172 $('.woolentor-cart a.add_to_cart_button,.woolentor-cart a.added_to_cart,.woolentor-cart a.button').each(function() { 173 woolentor_tool_tips( $(this), 'html'); 174 }); 175 } 176 177 /* Quick View ajax Add to cart */ 178 function woolentorquickviewAjaxCart( $selector ){ 179 180 $(document).on('click', $selector, function (e) { 181 e.preventDefault(); 182 183 var $thisbutton = $(this), 184 $form = $thisbutton.closest('form.cart'), 185 product_qty = $form.find('input[name=quantity]').val() || 1, 186 product_id = $form.find('input[name=product_id]').val() || $thisbutton.val(), 187 variation_id = $form.find('input[name=variation_id]').val() || 0; 188 189 /* For Variation product */ 190 var item = {}, 191 variations = $form.find( 'select[name^=attribute]' ); 192 if ( !variations.length) { 193 variations = $form.find( '[name^=attribute]:checked' ); 194 } 195 if ( !variations.length) {
196 variations = $form.find( 'input[name^=attribute]' ); 197 } 198 199 variations.each( function() { 200 var $thisitem = $( this ), 201 attributeName = $thisitem.attr( 'name' ), 202 attributevalue = $thisitem.val(), 203 index, 204 attributeTaxName; 205 $thisitem.removeClass( 'error' ); 206 if ( attributevalue.length === 0 ) { 207 index = attributeName.lastIndexOf( '_' ); 208 attributeTaxName = attributeName.substring( index + 1 ); 209 $thisitem.addClass( 'required error' ); 210 } else { 211 item[attributeName] = attributevalue; 212 } 213 }); 214 215 var data = { 216 action: 'woolentor_insert_to_cart', 217 product_id: product_id, 218 product_sku: '', 219 quantity: product_qty, 220 variation_id: variation_id, 221 variations: item, 222 }; 223 224 $(document.body).trigger('adding_to_cart', [$thisbutton, data]); 225 226 $.ajax({ 227 type: 'post', 228 url: woolentor_addons.woolentorajaxurl, 229 data: data, 230 beforeSend: function (response) { 231 $thisbutton.removeClass('added').addClass('loading'); 232 }, 233 complete: function (response) { 234 $thisbutton.addClass('added').removeClass('loading'); 235 }, 236 success: function (response) { 237 if (response.error && response.product_url) { 238 window.location = response.product_url; 239 return; 240 } else { 241 $(document.body).trigger('added_to_cart', [response.fragments, response.cart_hash, $thisbutton]); 242 } 243 }, 244 }); 245 246 return false; 247 }); 248 249 250 } 251 252 /* 253 * Quick view 254 */ 255 $(document).on('click', '.woolentorquickview', function (event) { 256 event.preventDefault(); 257 258 var $this = $(this); 259 var productID = $this.data('quick-id'); 260 261 $('.htwl-modal-body').html(''); /*clear content*/ 262 $('#htwlquick-viewmodal').addClass('woolentorquickview-open wlloading'); 263 $('#htwlquick-viewmodal .htcloseqv').hide(); 264 $('.htwl-modal-body').html('<div class="woolentor-loading"><div class="wlds-css"><div style="width:100%;height:100%" class="wlds-ripple"><div></div><div></div></div>'); 265 266 var data = { 267 id: productID, 268 action: "woolentor_quickview", 269 }; 270 $.ajax({ 271 url: woolentor_addons.woolentorajaxurl, 272 data: data, 273 method: 'POST', 274 success: function (response) { 275 setTimeout(function () { 276 $('.htwl-modal-body').html(response); 277 $('#htwlquick-viewmodal .htcloseqv').show(); 278 woolentorquickviewMainImageSlider(); 279 woolentorquickviewThumb(); 280 woolentor_render_variation_quick_view_data( $('.woolentorquickview-open') ); 281 woolentorquickviewAjaxCart( ".htwl-modal-content .woolentorquickview-content-template:not(.external) .single_add_to_cart_button:not(.disabled)" ); 282 283 $(document).trigger('woolentor_quick_view_rendered'); 284 }, 300 ); 285 }, 286 complete: function () { 287 $('#htwlquick-viewmodal').removeClass('wlloading'); 288 $('#htwlquick-viewmodal').append('<div class="wlquickview-overlay"></div>'); 289 $('.htwl-modal-dialog').css("background-color","#ffffff"); 290 $('.wlquickview-overlay').on('click', function(event){ 291 $(this).closeQuickView(); 292 }); 293 }, 294 error: function () { 295 console.log("Quick View Not Loaded"); 296 }, 297 }); 298 299 }); 300 $('.htcloseqv').on('click', function(event){ 301 $(this).closeQuickView(); 302 }); 303 304 // QuickView Close 305 $.fn.closeQuickView = function(){ 306 $('#htwlquick-viewmodal').removeClass('woolentorquickview-open'); 307 $('body').removeClass('woolentorquickview'); 308 $('.htwl-modal-dialog').css("background-color","transparent"); 309 $('.wlquickview-overlay').remove(); 310 }; 311 312 function woolentor_render_variation_quick_view_data( $product ) { 313 $product.find('.variations_form').wc_variation_form().find('.variations select:eq(0)').change(); 314 $product.find('.variations_form').trigger('wc_variation_form'); 315 316 var $default_data = { 317 src:'', 318 srcfull:'', 319 srcset:'', 320 sizes:'', 321 width:'', 322 height:'', 323 }; 324 $product.find( '.single_variation_wrap' ).on( 'show_variation', function ( event, variation ) { 325 326 // Get First image data 327 if( $default_data.src.length === 0 ){ 328 $default_data.src = $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').attr('src'); 329 $default_data.srcset = $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').attr('srcset'); 330 $default_data.srcfull = $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').attr('data-src'); 331 } 332 333 $('.ht-qwick-view-left').find('.ht-quick-view-learg-img').slick('slickGoTo', 0); 334 335 $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('src',variation.image.full_src); 336 $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('srcset',variation.image.srcset); 337 $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('data-src',variation.image.full_src); 338 $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('data-large_image',variation.image.full_src); 339 340 // Reset data 341 $('.variations').find('.reset_variations').on('click', function(e){ 342 $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('src', $default_data.src ); 343 $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('srcset', $default_data.srcset); 344 $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('data-src', $default_data.srcfull ); 345 $('.ht-quick-view-learg-img').find('.wl-quickview-first-image .wp-post-image').wc_set_variation_attr('data-large_image', $default_data.srcfull ); 346 }); 347 348 }); 349 350 } 351 352 /* 353 * Product Tab 354 */ 355 var WidgetProducttabsHandler = woolentor_tabs( $(".ht-tab-menus"),'.ht-tab-pane' ); 356 357 /* 358 * Single Product Video Gallery tab 359 */ 360 var WidgetProductVideoGallery = function thumbnailsvideogallery(){ 361 woolentor_tabs( $(".woolentor-product-video-tabs"), '.video-cus-tab-pane' ); 362 } 363 364 /** 365 * WoolentorAccordion 366 */
367 var WoolentorAccordion = function ( $scope, $ ){ 368 var accordion_elem = $scope.find('.htwoolentor-faq').eq(0); 369 370 var data_opt = accordion_elem.data('settings'); 371 372 if ( accordion_elem.length > 0 ) { 373 var $id = accordion_elem.attr('id'); 374 new Accordion('#' + $id, { 375 duration: 500, 376 showItem: data_opt.showitem, 377 elementClass: 'htwoolentor-faq-card', 378 questionClass: 'htwoolentor-faq-head', 379 answerClass: 'htwoolentor-faq-body', 380 }); 381 } 382 383 }; 384 385 386 /** 387 * WoolentorOnePageSlider 388 */ 389 var WoolentorOnePageSlider = function ( $scope, $ ){ 390 391 var slider_elem = $scope.find('.ht-full-slider-area').eq(0); 392 393 if ( slider_elem.length > 0 ) { 394 395 /* Jarallax active */ 396 $('.ht-parallax-active').jarallax({ 397 speed: 0.4, 398 }); 399 400 $('#ht-nav').onePageNav({ 401 currentClass: 'current', 402 changeHash: false, 403 scrollSpeed: 750, 404 scrollThreshold: 0.5, 405 filter: '', 406 easing: 'swing', 407 }); 408 409 /*------ Wow Active ----*/ 410 new WOW().init(); 411 412 /*--------------------- 413 Video popup 414 --------------------- */ 415 $('.ht-video-popup').magnificPopup({ 416 type: 'iframe', 417 mainClass: 'mfp-fade', 418 removalDelay: 160, 419 preloader: false, 420 zoom: { 421 enabled: true, 422 } 423 }); 424 425 } 426 427 }; 428 429 /* 430 * Run this code under Elementor. 431 */ 432 $(window).on('elementor/frontend/init', function () { 433 434 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-product-tab.default', WidgetProductSliderHandler); 435 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-product-tab.default', WidgetProducttabsHandler); 436 437 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-universal-product.default', WidgetProductSliderHandler); 438 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-universal-product.default', WidgetWoolentorTooltipHandler); 439 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-universal-product.default', WidgetThumbnaisImagesHandler); 440 441 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-cross-sell-product-custom.default', WidgetProductSliderHandler); 442 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-cross-sell-product-custom.default', WidgetWoolentorTooltipHandler); 443 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-cross-sell-product-custom.default', WidgetThumbnaisImagesHandler); 444 445 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-upsell-product-custom.default', WidgetProductSliderHandler); 446 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-upsell-product-custom.default', WidgetWoolentorTooltipHandler); 447 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-upsell-product-custom.default', WidgetThumbnaisImagesHandler); 448 449 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-related-product-custom.default', WidgetProductSliderHandler); 450 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-related-product-custom.default', WidgetWoolentorTooltipHandler); 451 elementorFrontend.hooks.addAction( 'frontend/element_ready/woolentor-related-product-custom.default', WidgetThumbnaisImagesHandler); 452 453 elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-product-video-gallery.default', WidgetProductVideoGallery ); 454 455 elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-brand-logo.default', WidgetProductSliderHandler ); 456 elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-faq.default', WoolentorAccordion ); 457 458 elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-category-grid.default', WidgetProductSliderHandler ); 459 elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-testimonial.default', WidgetProductSliderHandler ); 460 elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-product-grid.default', WidgetProductSliderHandler ); 461 elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-onepage-slider.default', WoolentorOnePageSlider ); 462 463 elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-customer-veview.default', WidgetProductSliderHandler ); 464 465 }); 466 467 468})(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.