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 var settings = slider_elem.data('settings'); 14 var arrows = settings['arrows']; 15 var dots = settings['dots']; 16 var autoplay = settings['autoplay']; 17 var rtl = settings['rtl']; 18 var autoplay_speed = parseInt(settings['autoplay_speed']) || 3000; 19 var animation_speed = parseInt(settings['animation_speed']) || 300; 20 var fade = settings['fade']; 21 var pause_on_hover = settings['pause_on_hover']; 22 var display_columns = parseInt(settings['product_items']) || 4; 23 var scroll_columns = parseInt(settings['scroll_columns']) || 4; 24 var tablet_width = parseInt(settings['tablet_width']) || 800; 25 var tablet_display_columns = parseInt(settings['tablet_display_columns']) || 2; 26 var tablet_scroll_columns = parseInt(settings['tablet_scroll_columns']) || 2; 27 var mobile_width = parseInt(settings['mobile_width']) || 480; 28 var mobile_display_columns = parseInt(settings['mobile_display_columns']) || 1; 29 var mobile_scroll_columns = parseInt(settings['mobile_scroll_columns']) || 1; 30 31 slider_elem.slick({ 32 arrows: arrows, 33 prevArrow: '<button type="button" class="slick-prev"><i class="fa fa-angle-left"></i></button>', 34 nextArrow: '<button type="button" class="slick-next"><i class="fa fa-angle-right"></i></button>', 35 dots: dots, 36 infinite: true, 37 autoplay: autoplay, 38 autoplaySpeed: autoplay_speed, 39 speed: animation_speed, 40 fade: false, 41 pauseOnHover: pause_on_hover, 42 slidesToShow: display_columns, 43 slidesToScroll: scroll_columns, 44 rtl: rtl, 45 responsive: [ 46 { 47 breakpoint: tablet_width, 48 settings: { 49 slidesToShow: tablet_display_columns, 50 slidesToScroll: tablet_scroll_columns 51 } 52 }, 53 { 54 breakpoint: mobile_width, 55 settings: { 56 slidesToShow: mobile_display_columns, 57 slidesToScroll: mobile_scroll_columns 58 } 59 } 60 ] 61 }); 62 }; 63 }; 64 65 /* 66 * Custom Tab 67 */ 68 function dethemekit_tabs( $tabmenus, $tabpane ){ 69 $tabmenus.on('click', 'a', function(e){ 70 e.preventDefault(); 71 var $this = $(this), 72 $target = $this.attr('href'); 73 $this.addClass('htactive').parent().siblings().children('a').removeClass('htactive'); 74 $( $tabpane + $target ).addClass('htactive').siblings().removeClass('htactive'); 75 76 // slick refresh 77 if( $('.slick-slider').length > 0 ){ 78 var $id = $this.attr('href'); 79 $( $id ).find('.slick-slider').slick('refresh'); 80 } 81 82 }); 83 } 84 85 /* 86 * Universal product 87 */ 88 function productImageThumbnailsSlider( $slider ){ 89 $slider.slick({ 90 dots: true, 91 arrows: true, 92 prevArrow: '<button class="slick-prev"><i class="sli sli-arrow-left"></i></button>', 93 nextArrow: '<button class="slick-next"><i class="sli sli-arrow-right"></i></button>', 94 }); 95 } 96 if( $(".ht-product-image-slider").length > 0 ) { 97 productImageThumbnailsSlider( $(".ht-product-image-slider") ); 98 } 99 100 var WidgetThumbnaisImagesHandler = function thumbnailsimagescontroller(){ 101 dethemekit_tabs( $(".ht-product-cus-tab-links"), '.ht-product-cus-tab-pane' ); 102 dethemekit_tabs( $(".ht-tab-menus"), '.ht-tab-pane' ); 103 104 // Countdown 105 var finalTime, daysTime, hours, minutes, second; 106 $('.ht-product-countdown').each(function() { 107 var $this = $(this), finalDate = $(this).data('countdown'); 108 var customlavel = $(this).data('customlavel'); 109 $this.countdown(finalDate, function(event) { 110 $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>')); 111 }); 112 }); 113 114 } 115 116 /* 117 * dethemekitquickview slider 118 */ 119 function dethemekitquickviewMainImageSlider(){ 120 $('.ht-quick-view-learg-img').slick({ 121 slidesToShow: 1, 122 slidesToScroll: 1,
123 arrows: false, 124 fade: true, 125 asNavFor: '.ht-quick-view-thumbnails' 126 }); 127 } 128 function dethemekitquickviewThumb(){ 129 $('.ht-quick-view-thumbnails').slick({ 130 slidesToShow: 3, 131 slidesToScroll: 1, 132 asNavFor: '.ht-quick-view-learg-img', 133 dots: false, 134 arrows: true, 135 focusOnSelect: true, 136 prevArrow: '<button class="dethemekit-slick-prev"><i class="sli sli-arrow-left"></i></button>', 137 nextArrow: '<button class="dethemekit-slick-next"><i class="sli sli-arrow-right"></i></button>', 138 }); 139 } 140 141 /* 142 * Tool Tip 143 */ 144 function dethemekit_tool_tips(element, content) { 145 if ( content == 'html' ) { 146 var tipText = element.html(); 147 } else { 148 var tipText = element.attr('title'); 149 } 150 element.on('mouseover', function() { 151 if ( $('.dethemekit-tip').length == 0 ) { 152 element.before('<span class="dethemekit-tip">' + tipText + '</span>'); 153 $('.dethemekit-tip').css('transition', 'all 0.5s ease 0s'); 154 $('.dethemekit-tip').css('margin-left', 0); 155 } 156 }); 157 element.on('mouseleave', function() { 158 $('.dethemekit-tip').remove(); 159 }); 160 } 161 162 /* 163 * Tooltip Render 164 */ 165 var WidgetDethemeKitTooltipHandler = function dethemekit_tool_tip(){ 166 $('a.dethemekit-compare').each(function() { 167 dethemekit_tool_tips( $(this), 'title' ); 168 }); 169 $('.dethemekit-cart a.add_to_cart_button,.dethemekit-cart a.added_to_cart,.dethemekit-cart a.button').each(function() { 170 dethemekit_tool_tips( $(this), 'html'); 171 }); 172 } 173 174 /* 175 * Quick view 176 */ 177 $(document).on('click', '.dethemekitquickview', function (event) { 178 event.preventDefault(); 179 180 var $this = $(this); 181 var productID = $this.data('quick-id'); 182 183 $('.htwl-modal-body').html(''); /*clear content*/ 184 $('#htwlquick-viewmodal').addClass('dethemekitquickview-open wlloading'); 185 $('#htwlquick-viewmodal .htcloseqv').hide(); 186 $('.htwl-modal-body').html('<div class="dethemekit-loading"><div class="wlds-css"><div style="width:100%;height:100%" class="wlds-ripple"><div></div><div></div></div>'); 187 188 var data = { 189 id: productID, 190 action: "dethemekit_quickview", 191 }; 192 $.ajax({
193 url: dethemekit_addons.dethemekitajaxurl, 194 data: data, 195 method: 'POST', 196 success: function (response) { 197 setTimeout(function () { 198 $('.htwl-modal-body').html(response); 199 $('#htwlquick-viewmodal .htcloseqv').show(); 200 dethemekitquickviewMainImageSlider(); 201 dethemekitquickviewThumb(); 202 }, 300 ); 203 }, 204 complete: function () { 205 $('#htwlquick-viewmodal').removeClass('wlloading'); 206 $('.htwl-modal-dialog').css("background-color","#ffffff"); 207 }, 208 error: function () { 209 console.log("Quick View Not Loaded"); 210 }, 211 }); 212 213 }); 214 $('.htcloseqv').on('click', function(event){ 215 $('#htwlquick-viewmodal').removeClass('dethemekitquickview-open'); 216 $('body').removeClass('dethemekitquickview'); 217 $('.htwl-modal-dialog').css("background-color","transparent"); 218 }); 219 220 /* 221 * Product Tab 222 */ 223 var WidgetProducttabsHandler = dethemekit_tabs( $(".ht-tab-menus"),'.ht-tab-pane' ); 224 225 /* 226 * Single Product Video Gallery tab 227 */ 228 var WidgetProductVideoGallery = function thumbnailsvideogallery(){ 229 dethemekit_tabs( $(".dethemekit-product-video-tabs"), '.video-cus-tab-pane' ); 230 } 231 232 /* 233 * Run this code under Elementor. 234 */ 235 $(window).on('elementor/frontend/init', function () { 236 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-product-tab.default', WidgetProductSliderHandler); 237 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-product-tab.default', WidgetProducttabsHandler); 238 239 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-product-display.default', WidgetProductSliderHandler); 240 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-product-display.default', WidgetDethemeKitTooltipHandler); 241 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-product-display.default', WidgetThumbnaisImagesHandler); 242 243 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-cross-sell-product-custom.default', WidgetProductSliderHandler); 244 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-cross-sell-product-custom.default', WidgetDethemeKitTooltipHandler); 245 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-cross-sell-product-custom.default', WidgetThumbnaisImagesHandler); 246 247 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-upsell-product-custom.default', WidgetProductSliderHandler); 248 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-upsell-product-custom.default', WidgetDethemeKitTooltipHandler); 249 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-upsell-product-custom.default', WidgetThumbnaisImagesHandler); 250 251 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-related-product-custom.default', WidgetProductSliderHandler); 252 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-related-product-custom.default', WidgetDethemeKitTooltipHandler); 253 elementorFrontend.hooks.addAction( 'frontend/element_ready/dethemekit-related-product-custom.default', WidgetThumbnaisImagesHandler); 254 255 elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-product-video-gallery.default', WidgetProductVideoGallery ); 256 257 elementorFrontend.hooks.addAction( 'frontend/element_ready/wl-brand-logo.default', WidgetProductSliderHandler ); 258 }); 259 260 261})(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.