PageSourceSearch

https://kravmagapro.gr/wp-content/plugins/mwt-addons-for-elementor…/js/mwt-testimonials-carousel.js?ver=7.1.2

js kravmagapro.gr collected 2026-10-02 13:43:10 UTC 6,523 bytes, 167 lines download raw bytes

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.