1(function($) { 2 'use strict'; 3 4 $(window).on('elementor/frontend/init', function() { 5 elementorFrontend.hooks.addAction('frontend/element_ready/global', function( $scope ) { 6 bp_starter.slide_slick_col( $scope ); 7 }); 8 }); 9 10 $(document).ready(function() { 11 bp_starter.ready(); 12 }); 13 14 var bp_starter = { 15 16 /** 17 * Call functions when document ready 18 */ 19 ready: function() { 20 this.slide_slick_col(); 21 this.bp_hover_element(); 22 this.element_responsive(); 23 }, 24 25 /** 26 * Slide slick col. 27 */ 28 slide_slick_col: function( $scope ) { 29 var $context = ($scope && $scope.length) ? $scope : $(document); 30 var verticalSlide = false; 31 var verticalSwipe = false; 32 var customdot = false; 33 var numOfSlide = 4; 34 var numOfScroll = 4; 35 var loopSlide = false; 36 var autoScroll = false; 37 var speedAuto = 5000; 38 var respon = [[4, 4], [3, 3], [2, 2], [1, 1], [1, 1]] 39 40 var runSlick = function() { 41 $context.find('.js-call-slick-col').each(function(){ 42 var wrapSlick = $(this); 43 var slideSlick = $(this).find('.slide-slick'); 44 45 // Destroy if already initialized to prevent double-init 46 if (slideSlick.hasClass('slick-initialized')) { 47 slideSlick.slick('destroy'); 48 } 49 50 // Check show dot, arrows 51 var showDot = false; 52 if($(wrapSlick).find('.wrap-dot-slick').length > 0) { 53 showDot = true; 54 } 55 56 var showArrow = false; 57 if($(wrapSlick).find('.wrap-arrow-slick').length > 0) { 58 showArrow = true; 59 } 60 61 // Get data 62 numOfSlide = Number($(this).data('numofslide')); 63 numOfScroll = Number($(this).data('numofscroll')); 64 speedAuto = Number($(this).data('speedauto')); 65 66 if($(this).data('loopslide') == '1') { 67 loopSlide = true; 68 } else { 69 loopSlide = false; 70 } 71 72 if($(this).data('autoscroll') == '1') { 73 autoScroll = true; 74 } else { 75 autoScroll = false; 76 } 77 78 if($(this).data('customdot') == '1') { 79 customdot = true; 80 } else { 81 customdot = false; 82 } 83 84 if($(this).data('verticalslide') == '1') { 85 verticalSlide = true; 86 } else { 87 verticalSlide = false; 88 } 89 90 if($(this).data('verticalswipe') == '1') { 91 verticalSwipe = true; 92 } else { 93 verticalSwipe = false; 94 } 95 96 var str = $(this).data('respon') //'[4, 4], [3, 3], [2, 2], [1, 1], [1, 1]'; 97 var strArray = str.match(/(\d+)/g); 98 respon = [ 99 [Number(strArray[0]), Number(strArray[1])], 100 [Number(strArray[2]), Number(strArray[3])], 101 [Number(strArray[4]), Number(strArray[5])], 102 [Number(strArray[6]), Number(strArray[7])], 103 [Number(strArray[8]), Number(strArray[9])] 104 ] 105 106 var attr = $('html').attr('dir'); 107 if (typeof attr !== typeof undefined && attr !== false) { 108 var rightToLeft = true; 109 } else{ 110 rightToLeft = false; 111 } 112 113 114 // Call slick 115 $(slideSlick).slick({ 116 rtl: rightToLeft, 117 vertical: verticalSlide, 118 verticalSwiping: verticalSwipe, 119 pauseOnFocus: false, 120 pauseOnHover: true, 121 slidesToShow: numOfSlide, 122 slidesToScroll: numOfScroll, 123 fade: false, 124 infinite: loopSlide, 125 autoplay: autoScroll, 126 autoplaySpeed: speedAuto, 127 arrows: showArrow, 128 appendArrows: $(wrapSlick).find('.wrap-arrow-slick'), 129 prevArrow: $(wrapSlick).find('.prev-slick'), 130 nextArrow: $(wrapSlick).find('.next-slick'), 131 dots: showDot, 132 appendDots: $(wrapSlick).find('.wrap-dot-slick'), 133 dotsClass:'dots-slick', 134 customPaging: function(slick, index) { 135 var portrait = $(slick.$slides[index]).data('thumb'); 136 137 if(customdot) return '<img src=" ' + portrait + ' "/>'; 138 139 return '<span></span>' 140 }, 141 responsive: [ 142 { 143 breakpoint: 1368, 144 settings: { 145 slidesToShow: respon[0][0], 146 slidesToScroll: respon[0][1] 147 } 148 }, 149 { 150 breakpoint: 1199, 151 settings: { 152 slidesToShow: respon[1][0], 153 slidesToScroll: respon[1][1] 154 } 155 }, 156 { 157 breakpoint: 991, 158 settings: { 159 slidesToShow: respon[2][0], 160 slidesToScroll: respon[2][1] 161 } 162 }, 163 { 164 breakpoint: 767, 165 settings: { 166 slidesToShow: respon[3][0], 167 slidesToScroll: respon[3][1] 168 } 169 }, 170 { 171 breakpoint: 575, 172 settings: { 173 slidesToShow: respon[4][0], 174 slidesToScroll: respon[4][1] 175 } 176 } 177 ] 178 }).on('setPosition', 179 function(event, slick){ 180 if($(this).parent().data('equalheight') == '1') { 181 var maxHeight = 0; 182 var $items = $(this).find('.item-sl
182ick'); 183 184 $items.each(function(){ 185 if($(this).outerHeight() > maxHeight) { 186 maxHeight = $(this).outerHeight(); 187 } 188 }) 189 190 $items.css('min-height', maxHeight); 191 //console.log(maxHeight); 192 } 193 194 // Middle Arrow 195 if($(wrapSlick).data('middlearrow') != null) { 196 var $wrapArrows = $(wrapSlick).find('.wrap-arrow-slick'); 197 var middleOf = $(wrapSlick).find($(wrapSlick).data('middlearrow')).outerHeight(); 198 199 $wrapArrows.css('height', middleOf + 'px'); 200 } 201 }); 202 203 // Show dot number 204 if($(wrapSlick).hasClass('show-dot-number')) { 205 var $wrapDotNumber = $(wrapSlick).find('.wrap-dot-slick'); 206 var $dotItem = $wrapDotNumber.find('.dots-slick > li'); 207 208 $wrapDotNumber.append('<span class="num-active">0</span><span class="div-num">/</span><span class="num-total">0</span>'); 209 210 var $numActive = $wrapDotNumber.find('.num-active'); 211 var $numTotal = $wrapDotNumber.find('.num-total'); 212 213 $(slideSlick).on('setPosition', function(event, slick, currentSlide){ 214 $dotItem = $wrapDotNumber.find('.dots-slick > li'); 215 $dotItem.length < 10 ? $numTotal.html('0' + $dotItem.length + '') : $numTotal.html($dotItem.length + ''); 216 }); 217 218 $(slideSlick).on('afterChange setPosition', function(event, slick, currentSlide){ 219 for(var i=0; i<$dotItem.length; i++) { 220 if($($dotItem[i]).hasClass('slick-active')) { 221 (i + 1) < 10 ? $numActive.html('0' + (i + 1) + '') : $numActive.html(i + 1 + ''); 222 break; 223 } 224 } 225 }); 226 } 227 228 // Show dot process 229 if($(wrapSlick).hasClass('dot-has-process')) { 230 $(slideSlick).on('afterChange breakpoint', function () { 231 $(wrapSlick).find('.wrap-dot-slick .dots-slick li').removeClass('process-dot'); 232 $(wrapSlick).find('.wrap-dot-slick .dots-slick li.slick-active').addClass('process-dot'); 233 }); 234 } 235 }); 236 }; 237 238 if (typeof $.fn.slick !== 'function') { 239 var attempts = 0; 240 var wait = setInterval(function() { 241 if (typeof $.fn.slick === 'function') { 242 clearInterval(wait); 243 runSlick(); 244 } else { 245 attempts++; 246 if (attempts >= 40) { 247 clearInterval(wait); 248 } 249 } 250 }, 100); 251 return; 252 } 253 254 runSlick(); 255 }, 256 257 /** 258 * Element hover 259 */ 260 bp_hover_element: function () { 261 $('.bp-element-hover').each(function () { 262 var elem = $(this), 263 old_style = elem.attr('style') 264 if(elem.data('hover')) { 265 var hover_style = old_style + elem.data('hover'); 266 elem.on({ 267 'mouseenter': function () { 268 elem.attr('style', hover_style); 269 }, 270 'mouseleave': function () { 271 elem.attr('style', old_style); 272 } 273 }) 274 } 275 }); 276 }, 277 278 /** 279 * Row, Column Responsive 280 */ 281 element_responsive: function() { 282 $(window).on('load resize', function() { 283 var mode = 'desktop'; 284 285 if ( matchMedia( 'only screen and (max-width: 1024px) and (min-width: 768px)' ).matches ) 286 mode = 'tablet'; 287 else if ( matchMedia( 'only screen and (max-width: 767px)' ).matches ) 288 mode = 'mobile'; 289 290 $('.vc_row, .vc_row-inner, .wpb_column, .vc_column-inner, .bp-element').each(function(){ 291 if ( mode == 'tablet' ) { 292 if($(this).data('class-tablet')) { 293 $(this).addClass($(this).data('class-tablet')); 294 } 295 } 296 if ( mode == 'mobile' ) { 297 if($(this).data('class-mobile')) { 298 $(this).addClass($(this).data('class-mobile')); 299 } 300 } 301 }); 302 }); 303 }, 304 } 305})(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.