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.