PageSourceSearch

https://headblue.com/wp-content/plugins/woolentor-addons/assets/js/woolentor-widgets-active.js?ver=2.8.3

js headblue.com collected 2026-10-06 19:11:54 UTC 20,094 bytes, 468 lines download raw bytes

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.