'use strict'; class Carousel { CarouselSlickQuickView() { jQuery('#tbay-quick-view-content .woocommerce-product-gallery__wrapper').each(function () { let _this = jQuery(this); if (_this.children().length == 0 || _this.hasClass("slick-initialized")) { return; } var _config = {}; _config.slidesToShow = 1; _config.infinite = false; _config.focusOnSelect = true; _config.dots = true; _config.arrows = false; _config.adaptiveHeight = true; _config.mobileFirst = true; _config.vertical = false; _config.cssEase = 'ease'; _config.settings = "unslick"; _config.rtl = _this.parent('.woocommerce-product-gallery').data('rtl') === 'yes'; jQuery(".variations_form").on("woocommerce_variation_select_change", function () { _this.slick("slickGoTo", 0); }); _this.slick(_config); }); } CarouselSlick() { var _this = this; if (jQuery(".owl-carousel[data-carousel=owl]:visible").length === 0) return; jQuery('.owl-carousel[data-carousel=owl]:visible:not(.scroll-init)').each(function () { _this._initCarouselSlick(jQuery(this)); }); jQuery('.owl-carousel[data-carousel=owl]:visible.scroll-init').waypoint(function () { var $this = jQuery(jQuery(this)[0].element); _this._initCarouselSlick($this); }, { offset: '100%' }); } _initCarouselSlick(_this2) { var _this = this; if (_this2.hasClass("slick-initialized")) { return; } if (jQuery(window).width() > 767) { _this2.slick(_this._getSlickConfigOption(_this2)); } else if (!_this2.data('unslick')) { _this2.slick(_this._getSlickConfigOption(_this2)); } } _getSlickConfigOption(el) { var slidesToShow = jQuery(el).data('items'), rows = jQuery(el).data('rows') ? parseInt(jQuery(el).data('rows')) : 1, desktop = jQuery(el).data('desktopslick') ? jQuery(el).data('desktopslick') : slidesToShow, desktopsmall = jQuery(el).data('desktopsmallslick') ? jQuery(el).data('desktopsmallslick') : slidesToShow, tablet = jQuery(el).data('tabletslick') ? jQuery(el).data('tabletslick') : slidesToShow, landscape = jQuery(el).data('landscapeslick') ? jQuery(el).data('landscapeslick') : 2, mobile = jQuery(el).data('mobileslick') ? jQuery(el).data('mobileslick') : 2; let enonumber = slidesToShow < jQuery(el).children().length ? true : false, enonumber_mobile = 2 < jQuery(el).children().length ? true : false; let pagination = enonumber ? Boolean(jQuery(el).data('pagination')) : false, nav = enonumber ? Boolean(jQuery(el).data('nav')) : false, loop = enonumber ? Boolean(jQuery(el).data('loop')) : false, auto = enonumber ? Boolean(jQuery(el).data('auto')) : false; var _config = {}; _config.dots = pagination; _config.arrows = nav; _config.infinite = loop; _config.speed = jQuery(el).data('speed') ? jQuery(el).data('speed') : 500; _config.autoplay = auto; _config.autoplaySpeed = jQuery(el).data('autospeed') ? jQuery(el).data('autospeed') : 2000; _config.cssEase = 'ease'; _config.slidesToShow = slidesToShow; _config.slidesToScroll = slidesToShow; _config.mobileFirst = true; _config.vertical = false; _config.prevArrow = ''; _config.nextArrow = ''; _config.rtl = jQuery('html').attr('dir') == 'rtl'; if (rows > 1) { _config.slidesToShow = 1; _config.slidesToScroll = 1; _config.rows = rows; _config.slidesPerRow = slidesToShow; var settingsFull = { slidesPerRow: slidesToShow }, settingsDesktop = { slidesPerRow: desktop }, settingsDesktopsmall = { slidesPerRow: desktopsmall }, settingsTablet = { slidesPerRow: tablet, infinite: false }, settingsLandscape = jQuery(el).data('unslick') ? "unslick" : { slidesPerRow: landscape, infinite: false }, settingsMobile = jQuery(el).data('unslick') ? "unslick" : { slidesPerRow: mobile, infinite: false }; } else { var settingsFull = { slidesToShow: slidesToShow, slidesToScroll: slidesToShow }, settingsDesktop = { slidesToShow: desktop, slidesToScroll: desktop }, settingsDesktopsmall = { slidesToShow: desktopsmall, slidesToScroll: desktopsmall }, settingsTablet = { slidesToShow: tablet, slidesToScroll: tablet, infinite: false }, settingsLandscape = jQuery(el).data('unslick') ? "unslick" : { slidesToShow: landscape, slidesToScroll: landscape, infinite: false }, settingsMobile = jQuery(el).data('unslick') ? "unslick" : { slidesToShow: mobile, slidesToScroll: mobile, infinite: false }; } var settingsArrows = jQuery(el).data('nav') ? { arrows: false, dots: enonumber_mobile } : ''; settingsLandscape = jQuery(el).data('unslick') ? settingsLandscape : jQuery.extend(true, settingsLandscape, settingsArrows); settingsMobile = jQuery(el).data('unslick') ? settingsMobile : jQuery.extend(true, settingsMobile, settingsArrows); _config.responsive = [{ breakpoint: 1600, settings: settingsFull }, { breakpoint: 1199, settings: settingsDesktop }, { breakpoint: 991, settings: settingsDesktopsmall }, { breakpoint: 767, settings: settingsTablet }, { breakpoint: 575, settings: settingsLandscape }, { breakpoint: 0, settings: settingsMobile }]; return _config; } getSlickTabs() { var _this = this; jQuery('ul.nav-tabs li a').on('shown.bs.tab', event => { let carouselItemTab = jQuery(jQuery(event.target).attr("href")).find(".owl-carousel[data-carousel=owl]:visible"); let carouselItemDestroy = jQuery(jQuery(event.relatedTarget).attr("href")).find(".owl-carousel[data-carousel=owl]"); if (carouselItemDestroy.hasClass("slick-initialized")) { carouselItemDestroy.slick('unslick'); } if (!carouselItemTab.hasClass("slick-initialized")) { carouselItemTab.slick(_this._getSlickConfigOption(carouselItemTab)); } }); } } class Slider { tbaySlickSlider() { jQuery('.flex-control-thumbs').each(function () { if (jQuery(this).children().length == 0 || jQuery(this).hasClass("slick-initialized")) return; var _config = {}; _config.vertical = jQuery(this).parent('.woocommerce-product-gallery').data('layout') === 'vertical'; _config.slidesToShow = jQuery(this).parent('.woocommerce-product-gallery').data('columns'); _config.infinite = false; _config.focusOnSelect = true; _config.settings = "unslick"; _config.prevArrow = ''; _config.nextArrow = ''; _config.rtl = jQuery(this).parent('.woocommerce-product-gallery').data('rtl') === 'yes' && jQuery(this).parent('.woocommerce-product-gallery').data('layout') !== 'vertical'; _config.responsive = [{ breakpoint: 1200, settings: { vertical: false, slidesToShow: 4 } }]; jQuery(this).slick(_config); }); } } jQuery(document).ready(function () { var carousel = new Carousel(); carousel.CarouselSlick(); carousel.getSlickTabs(); }); jQuery(document.body).on('wc-product-gallery-after-init', () => { var slider = new Slider(); slider.tbaySlickSlider(); }); setTimeout(function () { jQuery(document.body).on('tbay_carousel_slick', () => { var carousel = new Carousel(); carousel.CarouselSlick(); }); jQuery(document.body).on('tbay_quick_view', () => { var carousel = new Carousel(); carousel.CarouselSlickQuickView(); }); }, 2000); var CustomSlickHandler = function (jQueryscope, jQuery) { var carousel = new Carousel(); carousel.CarouselSlick(); }; jQuery(window).on('elementor/frontend/init', function () { if (elementorFrontend.isEditMode() && typeof maia_settings !== "undefined" && Array.isArray(maia_settings.elements_ready.slick)) { jQuery.each(maia_settings.elements_ready.slick, function (index, value) { elementorFrontend.hooks.addAction('frontend/element_ready/tbay-' + value + '.default', CustomSlickHandler); }); } });