1/** 2 * Start testimonials carousel widget script 3 */ 4 5(function ($) { 6 /** 7 * @param $scope The Widget wrapper element as a jQuery element 8 * @param $ The jQuery alias 9 */ 10 11 var WidgetTestimonialsCarousel = function ($scope, $) { 12 var $carouselContainer = $scope.find(".mwt-testimonials-carousel-container"); 13 var $carousel = $carouselContainer.find(".owl-carousel.mwt-testimonials-carousel"); 14 15 var $carouselSync1 = $carouselContainer.find(".owl-carousel.mwt-testimonials-carousel-sync1"); 16 var $carouselSync2 = $carouselContainer.find(".owl-carousel.mwt-testimonials-carousel-sync2"); 17 18 if (!$carousel.length && !$carouselSync1.length && !$carouselSync2.length) { 19 return; 20 } 21 22 if (!$().owlCarousel) { 23 return; 24 } 25 26 var loop = $carousel.data('loop') ? $carousel.data('loop') : false; 27 var margin = ($carousel.data('margin') || $carousel.data('margin') == 0) ? $carousel.data('margin') : 30; 28 var nav = $carousel.data('nav') ? $carousel.data('nav') : false; 29 var dots = $carousel.data('dots') ? $carousel.data('dots') : false; 30 var themeClass = $carousel.data('themeclass') ? $carousel.data('themeclass') : 'owl-theme'; 31 var center = $carousel.data('center') ? $carousel.data('center') : false; 32 var items = $carousel.data('items') ? $carousel.data('items') : 4; 33 var autoplay = $carousel.data('autoplay') ? $carousel.data('autoplay') : false; 34 var autoplayTimeout = $carousel.data('autoplaytimeout') ? $carousel.data('autoplaytimeout') : 5000; 35 var autoplayHoverPause = $carousel.data('autoplayhoverpause') ? $carousel.data('autoplayhoverpause') : false; 36 var responsiveXs = $carousel.data('responsive-xs') ? $carousel.data('responsive-xs') : 1; 37 var responsiveSm = $carousel.data('responsive-sm') ? $carousel.data('responsive-sm') : 2; 38 var responsiveMd = $carousel.data('responsive-md') ? $carousel.data('responsive-md') : 3; 39 var responsiveLg = $carousel.data('responsive-lg') ? $carousel.data('responsive-lg') : 4; 40 var draggable = $carousel.data('draggable') ? $carousel.data('draggable') : true; 41 var rtl = $carousel.data('rtl') ? $carousel.data('rtl') : false; 42 var navSpeed = $carousel.data('nav-speed') ? $carousel.data('nav-speed') : false; 43 var width = $carousel.data('width') ? $carousel.data('width') : false; 44 45 $carousel.each(function () { 46 var number = $(this).data('number'); 47 $(this).owlCarousel({ 48 loop: loop, 49 margin: margin, 50 nav: nav, 51 navText: [$('.mwt-testimonials-carousel-prev-' + number), $('.mwt-testimonials-carousel-next-' + number)], 52 navContainer: '.mwt-testimonials-carousel-nav-' + number, 53 autoplay: autoplay, 54 autoplayTimeout: autoplayTimeout, 55 dots: dots, 56 themeClass: themeClass, 57 center: center, 58 items: items, 59 mouseDrag: draggable, 60 touchDrag: draggable, 61 rtl: rtl, 62 navSpeed: navSpeed, 63 autoplayHoverPause: autoplayHoverPause, 64 responsiveBaseElement: $('body')[0], 65 responsive: { 66 0: { 67 items: responsiveXs 68 }, 69 767: { 70 items: responsiveSm 71 }, 72 991: { 73 items: responsiveMd, 74 }, 75 1200: { 76 items: responsiveLg, 77 autoWidth: width 78 }, 79 }, 80 }) 81 $carousel.find('.owl-stage-outer').wrap('<div class="owl-stage-outer-wrap"></div>'); 82 }) 83 .addClass(themeClass); 84 if (center) { 85 $carousel.addClass('owl-center'); 86 } 87 88 var marginSync1 = ($carouselSync1.data('margin') || $carouselSync1.data('margin') == 0) ? $carouselSync1.data('margin') : 30; 89 90 $carouselSync1.each(function () { 91 $(this).owlCarousel({ 92 loop: true, 93 margin: marginSync1, 94 autoplay: false, 95 dots: true, 96 nav: false, 97 center: false, 98 responsiveBaseElement: $('body')[0], 99 responsive: { 100 0: { 101 items: 1 102 }, 103 767: { 104 items: 3 105 }, 106 991: { 107 items: 3 108 }, 109 1200: { 110 items: 3 111 }, 112 }, 113 }) 114 115 $carouselSync1.on('click', '.owl-item', function () { 116 var carousel = $carouselSync2.data('owl.carousel'); 117 carousel.to(carousel.relative($(this).index() - 1)); 118 }); 119 120 $carouselSync1.on('change.owl.carousel', function (event) { 121 if (event.namespace && event.property.name === 'position') { 122 var target = event.relatedTarget.relative(event.property.value, true); 123 $carouselSync2.owlCarousel('to', target, 300, true); 124 } 125 }); 126 }) 127 128 $carouselSync2.each(function () { 129 $(this).owlCarousel({ 130 loop: true, 131 autoplay: false, 132 margin: 0, 133 nav: false, 134 dots: false, 135 center: false, 136 mouseDrag: false, 137 touchDrag: false, 138 responsiveBaseElement: $('body')[0], 139 responsive: { 140 0: { 141 items: 1 142 }, 143 767: { 144 items: 1 145 }, 146 991: { 147 items: 1 148 }, 149 1200: { 150 items: 1 151 }, 152 }, 153 }) 154 }) 155 }; 156 157 $(window).on('elementor/frontend/init', function () { 158 elementorFrontend.hooks.addAction( 159 'frontend/element_ready/mwt-testimonials-carousel.default',
160 WidgetTestimonialsCarousel 161 ); 162 }); 163})(jQuery); 164 165/** 166 * End testimonials carousel widget script 167 */
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.