1(function ($) { 2 3 const wdtCarouselWidgetHandler = function($scope, $) { 4 5 setTimeout( function() { 6 7 const $carouselItem = $scope.find('.wdt-carousel-holder'); 8 const $moduleId = $carouselItem.data('id'); 9 const $swiperItem = $carouselItem.find('.swiper'); 10 const $swiperUniqueId = $swiperItem.attr('id'); 11 const $swiperWrapper = $carouselItem.find('.swiper-wrapper'); 12 const $carouselSettings = $swiperItem.data('settings'); 13 14 if($carouselSettings === undefined) { 15 return; 16 } 17 18 const $direction = ($carouselSettings['direction'] !== undefined) ? ($carouselSettings['direction']) : 'horizontal'; 19 const $effect = ($carouselSettings['effect'] !== undefined) ? ($carouselSettings['effect']) : 'default'; 20 // const $grab_cursor = ($effect == 'flip' || $effect == 'cards' || $effect == 'creative') ? true : false; 21 const $free_mode = ($effect == 'free_mode') ? true : false; 22 const $slides_to_show = ($carouselSettings['slides_to_show'] !== undefined) ? parseInt($carouselSettings['slides_to_show']) : 1; 23 const $slides_to_scroll = ($carouselSettings['slides_to_scroll'] !== undefined) ? parseInt($carouselSettings['slides_to_scroll']) : 1; 24 const $pagination = ($carouselSettings['pagination'] !== undefined) ? ($carouselSettings['pagination']) : ''; 25 const $arrows = ($carouselSettings['arrows'] !== undefined) ? ($carouselSettings['arrows'] == 'yes') : false; 26 const $speed = ($carouselSettings['speed'] !== undefined && $carouselSettings['speed'] != '') ? parseInt($carouselSettings['speed']) : 400; 27 const $autoplay = ($carouselSettings['autoplay'] !== undefined) ? ($carouselSettings['autoplay'] == 'yes') : false; 28 const $autoplay_speed = ($carouselSettings['autoplay_speed'] !== undefined && $carouselSettings['autoplay_speed'] != '') ? parseInt($carouselSettings['autoplay_speed']) : 20000; 29 const $autoplay_direction = ($carouselSettings['autoplay_direction'] !== undefined) ? ($carouselSettings['autoplay_direction']) : ''; 30 const $allow_touch = ($carouselSettings['allow_touch'] !== undefined) ? ($carouselSettings['allow_touch'] == 'yes') : true; 31 const $loop = ($carouselSettings['loop'] !== undefined) ? ($carouselSettings['loop'] == 'yes') : false; 32 const $centered_slides = ($carouselSettings['centered_slides'] !== undefined) ? ($carouselSettings['centered_slides'] == 'yes') : false; 33 const $pause_on_interaction = ($carouselSettings['pause_on_interaction'] !== undefined) ? ($carouselSettings['pause_on_interaction'] == 'yes') : false; 34 const $pause_on_mouseenter = ($carouselSettings['pause_on_mouseenter'] !== undefined) ? ($carouselSettings['pause_on_mouseenter'] == 'yes') : false; 35 const $overflow_type = ($carouselSettings['overflow_type'] !== undefined) ? ($carouselSettings['overflow_type']) : ''; 36 const $overflow_opacity = ($carouselSettings['overflow_opacity'] !== undefined) ? ($carouselSettings['overflow_opacity'] == 'yes') : false; 37 const $unequal_height_compatability = ($carouselSettings['unequal_height_compatability'] === 'yes') ? true : false; 38 const $space_between_gaps = $carouselSettings['space_between_gaps']; 39 var $deviceMode = elementorFrontend.getCurrentDeviceMode(); 40 if( $deviceMode = 'widescreen' ) { 41 $deviceMode = 'desktop'; 42 } 43 const $space_between = $space_between_gaps[$deviceMode] ? $space_between_gaps[$deviceMode] : 0; 44 45 // Initialize height if its vertical carousel 46 if($direction == 'vertical') { 47 const $height = parseInt($swiperItem.find('.swiper-slide:first .wdt-content-item').height(), 10) + 20; 48 $swiperWrapper.css({'height':$height+'px'}); 49 } 50 51 // Overflow script 52 if($overflow_type == 'left') { 53 54 const $itemOffsetLeft = $carouselItem.offset().left; 55 const $itemPadding = parseInt($carouselItem.parents('.elementor-widget-wrap').css("padding-left")); 56 const $itemLeft = (parseFloat($itemOffsetLeft) - parseFloat($itemPadding)); 57 const $itemWidth = $carouselItem.width(); 58 const $itemTotalWidth = parseFloat($itemWidth) + parseFloat($itemLeft); 59 60 $swiperItem.css('width', $itemTotalWidth); 61 $swiperItem.css('left', -$itemLeft); 62 63 } else if($overflow_type == 'right') { 64 65 const $docWidth = $(document).width(); 66 const $itemOffsetLeft = $carouselItem.offset().left; 67 const itemOuterWidth = $carouselItem.outerWidth(); 68 const $itemWidth = $carouselItem.width(); 69 const itemRight = parseFloat($docWidth) - (parseFloat($itemOffsetLeft) + parseFloat(itemOuterWidth)); 70 const $itemPadding = parseInt($carouselItem.parents('.elementor-widget-wrap').css("padding-right")); 71 const $itemTotalWidth = parseFloat($itemWidth) + parseFloat(itemRight) - parseFloat($itemPadding); 72 73 $swiperItem.css('width', $itemTotalWidth); 74 75 } 76 77 // Build swiper options 78 const swiperOptions = { 79 initialSlide: 0, 80 simulateTouch: true, 81 // roundLengths: true, 82 keyboardControl: true, 83 paginationClickable: true, 84 autoHeight: false, 85 // grabCursor: $grab_cursor, 86 87 freeMode: $free_mode, 88 allowTouchMove: $allow_touch, 89 90 effect: $effect, 91 fadeEffect: { 92 crossFade: true 93 }, 94 coverflowEffect: { 95 rotate: 30, 96 slideShadows: false, 97 }, 98 cubeEffect: { 99 slideShadows: false, 100 }, 101 102 slidesPerView: $slides_to_show, 103 slidesPerGroup: $slides_to_scroll, 104 loop: $loop, 105 // loopFillGroupWithBlank: $loop, 106 centeredSlides: $centered_slides, 107 direction: $direction, 108 speed: $speed, 109 spaceBetween: $space_between 110 } 111 112 // Update breakpoints 113 const $responsiveSettings = $carouselSettings['responsive']; 114 const $responsiveData = {}; 115 $.each($responsiveSettings, function (index, value) { 116 $responsiveData[value.breakpoint] = { 117 slidesPerView: value.toshow, 118 slidesPerGroup: value.toscroll 119 }; 120 }); 121 swiperOptions['breakpoints'] = $responsiveData; 122 123 // Creative effects 124 /* if( $effect == 'creative' ) { 125 const $creativeType = $carouselSettings['effect_type']; 126 if( $creativeType == 'type_1' ) { 127 swiperOptions.creativeEffect = { 128 prev: { 129 shadow: true, 130 translate: [0, 0, -400], 131 }, 132 next: { 133 translate: ["100%", 0, 0], 134 } 135 } 136 } else if( $creativeType == 'type_2' ) { 137 swiperOptions.creativeEffect = { 138 prev: { 139 shadow: true, 140 translate: ["-120%", 0, -500], 141 }, 142 next: { 143 shadow: true, 144 translate: ["120%", 0, -500], 145 } 146 } 147 } else if( $creativeType == 'type_3' ) { 148 swiperOptions.creativeEffect = { 149 prev: { 150 shadow: true, 151 translate: ["-20%", 0, -1], 152 }, 153 next: { 154 translate: ["100%", 0, 0], 155 } 156 } 157 } else if( $creativeType == 'type_4' ) { 158 swiperOptions.creativeEffect = { 159 prev: { 160 shadow: true, 161 translate: [0, 0, -800], 162 rotate: [180, 0, 0], 163 }, 164 next: { 165 shadow: true, 166 translate: [0, 0, -800], 167 rotate: [-180, 0, 0], 168 } 169 } 170 } else if( $creativeType == 'type_5' ) { 171 swiperOptions.creativeEffect = { 172 prev: { 173 shadow: true, 174 translate: ["-125%", 0, -800], 175 rotate: [0, 0, -90], 176 }, 177 next: { 178 shadow: true, 179 translate: ["125%", 0, -800], 180 rotate: [0, 0, 90], 181 } 182 } 183 } else if( $creativeType == 'type_6' ) { 184 swiperOptions.creativeEffect = { 185 prev: { 186 shadow: true, 187 origin: "left center", 188 translate: ["-5%", 0, -200], 189 rotate: [0, 100, 0], 190 }, 191 next: { 192 origin: "right center", 193 translate: ["5%", 0, -200], 194 rotate: [0, -100, 0], 195 } 196 } 197 } 198 } */ 199 200 // Arrow pagination 201 if ($arrows) { 202 swiperOptions.navigation = { 203 prevEl: '.wdt-arrow-pagination-prev-'+$moduleId, 204 nextEl: '.wdt-arrow-pagination-next-'+$moduleId 205 }; 206 } 207 208 // Other pagination 209 if ($pagination != '') { 210 if( $pagination == 'scrollbar' ) { 211 swiperOptions.scrollbar = { 212 el: '.wdt-swiper-scrollbar-'+$moduleId, 213 type: $pagination, 214 hide: true 215 }; 216 } else { 217 swiperOptions.pagination = { 218 el: '.wdt-swiper-pagination-'+$moduleId, 219 type: $pagination, 220 clickable: true 221 }; 222 } 223 } 224 225 // Autoplay direction 226 $reversedirection = false;
227 if($autoplay_direction == 'right') { 228 $reversedirection = true; 229 } 230 231 // Autoplay 232 if ($autoplay) { 233 swiperOptions.autoplay = { 234 delay: $autoplay_speed, 235 disableOnInteraction: $pause_on_interaction, 236 reverseDirection: $reversedirection, 237 pauseOnMouseEnter: $pause_on_mouseenter, 238 }; 239 } 240 241 const swiperGallery = new Swiper('#'+$swiperUniqueId, swiperOptions); 242 243 if($direction == 'vertical' && $unequal_height_compatability) { 244 swiperGallery.on('slideChangeTransitionStart', function () { 245 const height = parseInt($swiperItem.find('.swiper-slide.swiper-slide-active .wdt-content-item').height(), 10) + 20; 246 $swiperWrapper.animate({height:height}, 400); 247 }); 248 } 249 250 // On slide change 251 swiperGallery.on('slideChangeTransitionStart', function () { 252 // Overflow Opacity 253 if($overflow_opacity) { 254 $scope.find('.swiper').css({'overflow': 'visible'}); 255 $scope.find('.swiper-slide').css({'opacity': 0.5}); 256 $scope.find('.swiper-slide.swiper-slide-active').css({'opacity': 1}); 257 $scope.find('.swiper-slide.swiper-slide-active').nextAll('*:lt('+(+$slides_to_show-1)+')').css({'opacity': 1}); 258 } 259 }); 260 261 // Overflow Opacity 262 if($overflow_opacity) { 263 $scope.find('.swiper').css({'overflow': 'visible'}); 264 $scope.find('.swiper-slide').css({'opacity': 0.5}); 265 $scope.find('.swiper-slide.swiper-slide-active').css({'opacity': 1}); 266 $scope.find('.swiper-slide.swiper-slide-active').nextAll('*:lt('+(+$slides_to_show-1)+')').css({'opacity': 1}); 267 } 268 269 setTimeout( function() { 270 $scope.find('.swiper-slide-duplicate .elementor-invisible').removeClass('elementor-invisible'); 271 }, 400 ); 272 273 }, 400 ); 274 275 }; 276 277 $(window).on('elementor/frontend/init', function () { 278 279 elementorFrontend.hooks.addAction('frontend/element_ready/wdt-advanced-carousel.default', wdtCarouselWidgetHandler); 280 elementorFrontend.hooks.addAction('frontend/element_ready/wdt-counter.default', wdtCarouselWidgetHandler); 281 elementorFrontend.hooks.addAction('frontend/element_ready/wdt-icon-box.default', wdtCarouselWidgetHandler); 282 elementorFrontend.hooks.addAction('frontend/element_ready/wdt-instagram.default', wdtCarouselWidgetHandler); 283 elementorFrontend.hooks.addAction('frontend/element_ready/wdt-team.default', wdtCarouselWidgetHandler); 284 elementorFrontend.hooks.addAction('frontend/element_ready/wdt-testimonial.default', wdtCarouselWidgetHandler); 285 elementorFrontend.hooks.addAction('frontend/element_ready/wdt-image-box.default', wdtCarouselWidgetHandler); 286 elementorFrontend.hooks.addAction('frontend/element_ready/wdt-events.default', wdtCarouselWidgetHandler); 287 elementorFrontend.hooks.addAction('frontend/element_ready/wdt-donations.default', wdtCarouselWidgetHandler); 288 289 }); 290 291 })(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.