PageSourceSearch

https://www.expat-expo.com/wp-content/themes/exhibz/assets/js/elementor.js?ver=3.0.0

js expat-expo.com collected 2026-10-10 01:41:38 UTC 18,382 bytes, 434 lines download raw bytes

1(function ($, elementor) {
2    "use strict";
3
4
5    var Exhibs = {
6        /**
7         * Create a new Swiper instance
8         *
9         * @param swiperElement widget scope
10         * @param swiperConfig swiper config
11         */
12        swiper: function (swiperElement, swiperConfig) {
13            var swiperContainer = swiperElement.get(0);
14            if (typeof Swiper !== 'function') {
15                // If Swiper is not defined or not a function, load the Swiper library asynchronously
16                const asyncSwiper = elementor.utils.swiper;
17                return new asyncSwiper(swiperContainer, swiperConfig).then((newSwiperInstance) => {
18                    return newSwiperInstance;
19                });
20            }
21            // If Swiper is already defined, create a new Swiper instance using the global Swiper object
22            const swiperInstance = new Swiper(swiperContainer, swiperConfig);
23            return Promise.resolve(swiperInstance);
24        },
25
26        init: function () {
27
28            var widgets = {
29                'exhibz-speaker.default': Exhibs.Speaker_Image_Popup,
30                'exhibz-speaker-slider.default': Exhibs.Speaker_Slider_popup,
31                'exhibz-testimonial.default': Exhibs.Testimonial_Slider,
32                'exhibz-slider.default': Exhibs.Main_Slider,
33                'exhibz-gallery-slider.default': Exhibs.Exhibz_Gallery_Slider,
34                'exhibz-event-category-slider.default': Exhibs.Exhibz_Category_Slider,
35                'exhibz-creative-speaker.default': Exhibs.Exhibz_Creative_Speaker_Widget,
36                'creative-schedule.default': Exhibs.Exhibz_Creative_Schedule_Tab,
37                'exhibz-event-ticket.default': Exhibs.Ticket_Variation_Slider,
38            };
39            $.each(widgets, function (widget, callback) {
40                elementor.hooks.addAction('frontend/element_ready/' + widget, callback);
41            });
42
43        },
44        Exhibz_Creative_Speaker_Widget: function ($scope) {
45            const container = $scope.find('.exhibz-creative-speaker');
46            if (container.length > 0) {
47                const settings = container.data('widget_settings');
48                const slider_space_between = parseInt(settings.slider_space_between);
49                const slide_autoplay = (settings.speaker_slider_autoplay === 'yes') ? true : false;
50                const speaker_slider_speed = parseInt(settings.speaker_slider_speed);
51                var config = {
52                    slidesPerView: settings.slider_items,
53                    spaceBetween: slider_space_between,
54                    loop: true,
55                    speed: speaker_slider_speed,
56                    autoplay: slide_autoplay,
57                    navigation: {
58                        nextEl: `.swiper-next-${settings.widget_id}`,
59                        prevEl: `.swiper-prev-${settings.widget_id}`,
60                    },
61                    pagination: {
62                        el: ".exhibz-speaker-scrollbar",
63                        type: "progressbar",
64                    },
65                    // Responsive breakpoints
66                    breakpoints: {
67                        // when window width is >= 320px
68                        0: {
69                            slidesPerView: 1,
70                        },
71                        // when window width is >= 480px
72                        767: {
73                            slidesPerView: 2,
74                        },
75                        // when window width is >= 640px
76                        1024: {
77                            slidesPerView: settings.slider_items,
78                        }
79                    }
80                }
81                // swiper
82                let swiperClass = $scope.find(`.${window.elementorFrontend.config.swiperClass}`);
83                Exhibs.swiper(swiperClass, config).then(function (swiperInstance) { });
84            }
85
86            $('.exh-speaker-title a').each(function () {
87                let speakerName = $(this);
88                speakerName.html(speakerName.text().replace(/([^\s]+)/, '<span class="first-name">$1</span>'));
89            });
90        },
91
92        Exhibz_Category_Slider: function ($scope) {
93            const container = $scope.find('.ts-event-category-slider');
94
95            if (container.length > 0) {
96                const count = $(".ts-event-category-slider").data("c
96ount");
97                const controls = container.data('controls');
98                const autoslide = Boolean(controls.autoplay_slide === 'yes' ? true : false);
99                const slider_loop = (controls.slider_loop === 'yes') ? true : false;
100                const slider_items = controls.slider_items;
101                const widget_id = controls.widget_id;
102                var config = {
103                    wrapperClass: 'swiper-wrapper',
104                    slideClass: 'swiper-slide',
105                    slidesPerView: slider_items,
106                    mouseDrag: true,
107                    loop: false,
108                    touchDrag: true,
109                    autoplay: autoslide,
110                    nav: false,
111                    spaceBetween: 30,
112                    dots: true,
113                    autoplayTimeout: 5000,
114                    autoplayHoverPause: true,
115                    smartSpeed: 600,
116                    navigation: {
117                        nextEl: `.swiper-next-${widget_id}`,
118                        prevEl: `.swiper-prev-${widget_id}`,
119                    },
120                    breakpoints: {
121                        // when window width is >= 320px
122                        0: {
123                            slidesPerView: 2,
124                        },
125                        // when window width is >= 480px
126                        767: {
127                            slidesPerView: 3,
128                        },
129                        // when window width is >= 640px
130                        1024: {
131                            slidesPerView: slider_items
132                        }
133                    }
134                }
135
136                // swiper
137                let swiperClass = $scope.find(`.${window.elementorFrontend.config.swiperClass}`);
138                Exhibs.swiper(swiperClass, config).then(function (swiperInstance) { });
139            };
140        },
141
142        Speaker_Slider_popup: function ($scope) {
143            var $container = $scope.find('.ts-image-popup');
144            var $container2 = $scope.find('.ts-speaker-slider');
145            let controls = $container2.data('controls');
146            $container.magnificPopup({
147                type: 'inline',
148                closeOnContentClick: false,
149                midClick: true,
150                callbacks: {
151                    beforeOpen: function () {
152                        this.st.mainClass = this.st.el.attr('data-effect');
153                    }
154                },
155                zoom: {
156                    enabled: true,
157                    duration: 500, // don't foget to change the duration also in CSS
158                },
159                mainClass: 'mfp-fade',
160            });
161
162            let widget_id = controls.widget_id;
163            let speaker_slider_speed = parseInt(controls.speaker_slider_speed);
164            let slider_count = parseInt(controls.slider_count);
165            let speaker_slider_autoplay = Boolean(controls.speaker_slider_autoplay ? true : false);
166            var config = {
167                slidesPerView: slider_count,
168                spaceBetween: 0,
169                loop: true,
170                wrapperClass: 'swiper-wrapper',
171                slideClass: 'swiper-slide',
172                grabCursor: false,
173                allowTouchMove: true,
174                autoplay: speaker_slider_autoplay ? { delay: 5000 } : false,
175                speed: speaker_slider_speed, //slider transition speed
176                mousewheelControl: 1,
177                pagination: {
178                    el: '.swiper-pagination',
179                    type: 'bullets',
180                    dynamicBullets: true,
181                    clickable: true,
182                },
183                navigation: {
184                    nextEl: `.swiper-next-${widget_id}`,
185                    prevEl: `.swiper-prev-${widget_id}`,
186                },
187                breakpoints: {
188                    // when window width is >= 320px
189                    0: {
190                        slidesPerView: 1,
191                    },
192                    // when window width is >= 480px
193                    767: {
194                        slidesPerView: 2,
195                    },
196                    // when window width is >= 640px
197                    1024: {
198                        slidesPerView: slider_count,
199                    }
200                }
201            }
202            // swiper
203            let swiperClass = $scope.find(`.${window.elementorFrontend.config.swiperClass}`);
204            Exhibs.swiper(swiperClass, config).then(function (swiperInstance) { });
205        },
206
207        Speaker_Image_Popup: function ($scope) {
208            var $container = $scope.find('.ts-image-popup');
209
210            $container.magnificPopup({
211                type: 'inline',
212                closeOnContentClick: false,
213                midClick: true,
214                callbacks: {
215                    beforeOpen: function () {
216                        this.st.mainClass = this.st.el.attr('data-effect');
217                    }
218                },
219                zoom: {
220                    enabled: true,
221                    duration: 500, // don't foget to change the duration also in CSS
222                },
223                mainClass: 'mfp-fade',
224            });
225
226        },
227
228        Main_Slider: function ($scope) {
229            let $container = $scope.find('.main-slider');
230            let controls = $container.data('controls');
231
232            var autoslide = Boolean(controls.auto_nav_slide ? true : false);
233            const slider_speed = parseInt(controls.slider_speed);
234            let widget_id = controls.widget_id;
235            var config = {
236                slidesPerView: 1,
237                centeredSlides: true,
238                spaceBetween: 0,
239                loop: true,
240                wrapperClass: 'swiper-wrapper',
241                slideClass: 'swiper-slide',
242                grabCursor: false,
243                allowTouchMove: true,
244                speed: slider_speed, //slider transition speed
245                parallax: true,
246                autoplay: autoslide ? { delay: 5000 } : false,
247                effect: 'slide',
248                mousewheelControl: 1,
249                pagination: {
250                    el: '.swiper-pagination',
251                    type: 'bullets',
252                    dynamicBullets: true,
253                    clickable: true,
254                },
255                navigation: {
256                    nextEl: `.swiper-next-${widget_id}`,
257                    prevEl: `.swiper-prev-${widget_id}`,
258                },
259            }
260
261            // swiper
262            let swiperClass = $scope.find(`.${window.elementorFrontend.config.swiperClass}`);
263            Exhibs.swiper(swiperClass, config).then(function (swiperInstance) { });
264        },
265
266        Exhibz_Gallery_Slider: function ($scope) {
267            const container = $scope.find('.ts-gallery-slider');
268            if (container.length > 0) {
269                const settings = container.data('widget_settings');
270                const slider_space_between = parseInt(settings.slider_space_between);
271                const slide_autoplay = (settings.speaker_slider_autoplay === 'yes') ? true : false;
272                const speaker_slider_speed = parseInt(settings.speaker_slider_speed);
273                var config = {
274                    slidesPerView: settings.slider_items,
275                    spaceBetween: slider_space_between,
276                    loop: true,
277                    gap: 0,
278                    centeredSlides: true,
279                    speed: speaker_slider_speed,
280                    autoplay: slide_autoplay,
281                    navigation: {
282                        nextEl: `.swiper-next-${settings.widget_id}`,
283                        prevEl: `.swiper-prev-${settings.widget_id}`,
284                    },
285                    pagination: {
286                        el: ".swiper-pagination",
287                        type: "bullets",
288                        clickable: true
289                    },
290                    // Responsive breakpoints
291                    breakpoints: {
292                        // when window width is >= 320px
293                        0: {
294                            slidesPerView: 1,
295                        },
296                        // when window width is >= 480px
297                        767: {
298                            slidesPerView: 2,
299                        },
300                        // when window width is >= 640px
301                        1024: {
302                            slidesPerView: settings.slider_items,
303                        }
304                    }
305                }
306
307                // swiper
308                let swiperClass = $scope.find(`.${window.elementorFrontend.config.swiperClass}`);
309                Exhibs.swiper(swiperClass, config).then(function (swiperInstance) { });
310            }
311        },
312
313        Testimonial_Slider: function ($scope) {
314            const container = $scope.find('.testimonial-carousel');
315            if (container.length > 0) {
316                const settings = container.data('widget_settings');
317                const slide_autoplay = (settings.autoplay_onoff === 'yes') ? true : false;
318                const quote_slider_speed = parseInt(settings.quote_slider_speed);
319                var config = {
320                    slidesPerView: settings.quote_slider_count,
321                    spaceBetween: 10,
322                    loop: true,
323                    speed: quote_slider_speed,
324                    autoplay: slide_autoplay,
325                    navigation: {
326                        nextEl: `.swiper-next-${settings.widget_id}`,
327                        prevEl: `.swiper-prev-${settings.widget_id}`,
328                    },
329                    pagination: {
330                        el: ".swiper-pagination",
331                        type: "bullets",
332                        clickable: true
333                    },
334                    // Responsive breakpoints
335                    breakpoints: {
336                        // when window width is >= 320px
337                        0: {
338                            slidesPerView: 1,
339                        },
340                        // when window width is >= 480px
341                        767: {
342                            slidesPerView: 2,
343                        },
344                        // when window width is >= 640px
345                        1024: {
346                            slidesPerView: settings.quote_slider_count,
347                        }
348                    }
349                }
350
351                // swiper
352                let swiperClass = $scope.find(`.${window.elementorFrontend.config.swiperClass}`);
353                Exhibs.swiper(swiperClass, config).then(function (swiperInstance) { });
354            }
355        },
356
357        Exhibz_Creative_Schedule_Tab: function ($scope) {
358            const container = $scope.find('.etn-tab-content .etn-schedule-speaker');
359            if (container.length > 0) {
360                var config = {
361                    slidesPerView: 3,
362                    spaceBetween: 5,
363                    autoplay: true,
364                    effect: 'slide',
365                    loop: true,
366                    centeredSlides: true,
367                    navigation: false,
368                    // Responsive breakpoints
369                    breakpoints: {
370                        // when window width is >= 320px
371                        0: {
372                            slidesPerView: 1,
373                        },
374                        // when window width is >= 480px
375                        767: {
376                            slidesPerView: 2,
377                        },
378                        // when window width is >= 640px
379                        1024: {
380                            slidesPerView: 3,
381                        }
382                    }
383                };
384
385                let swiperClass = $scope.find(`.${window.elementorFrontend.config.swiperClass}`);
386                swiperClass.each(function (index, currentItem) {
387                    let $currentItem = $(currentItem);
388                    Exhibs.swiper($currentItem, config).then(function (swiperInstance) { }).catch(function (error) { });
389                });
390
391                let nav = $scope.find('.etn-nav li a.etn-tab-a');
392                nav.on('click', function (e) {
393                    e.preventDefault();
394                    setTimeout(function () {
395                        window.elementorFrontend.elementsHandler.runReadyTrigger($scope);
396                    }, 800);
397                });
398            }
399        },
400
401
402        Ticket_Variation_Slider: function ($scope) {
403            const container = $scope.find('.ticket-variation-sli
403der');
404           
405            if (container.length > 0) {
406                let controls = container.data('controls');
407                let autoplay = Boolean((controls.autoplay_slide === 'yes') ? true : false);
408                let speed = parseInt(controls.speed);
409                let loop = (controls.slider_loop === 'yes') ? true : false;
410                let widget_id = controls.widget_id;
411                var config = {
412                    slidesPerView: 1,
413                    centeredSlides: true,
414                    loop: false,
415                    loopAdditionalSlides: 0,
416                    grabCursor: false,
417                    allowTouchMove: true,
418                    speed: speed, //slider transition speed
419                    autoplay: autoplay,
420                    effect: 'slide',
421                    navigation: {
422                        nextEl: `.swiper-next-${widget_id}`,
423                        prevEl: `.swiper-prev-${widget_id}`,
424                    },
425                }
426
427                // swiper
428                let swiperClass = $scope.find(`.${window.elementorFrontend.config.swiperClass}`);
429                Exhibs.swiper(swiperClass, config).then(function (swiperInstance) { });
430            }
431        },
432    };
433    $(window).on('elementor/frontend/init', Exhibs.init);
434}(jQuery, window.elementorFrontend)); 

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.