????
Current Path : /home/multihiv/www/store/wp-content/themes/js/scripts/global/ |
Current File : //home/multihiv/www/store/wp-content/themes/js/scripts/global/swiperInit.js |
woodmartThemeModule.$document.on('wdInstagramAjaxSuccess wdLoadDropdownsSuccess wdProductsTabsLoaded wdSearchFullScreenContentLoaded wdShopPageInit wdRecentlyViewedProductLoaded wdQuickViewOpen300', function() { woodmartThemeModule.swiperInit(); }); [ 'frontend/element_ready/wd_products.default', 'frontend/element_ready/wd_products_tabs.default', 'frontend/element_ready/wd_product_categories.default', 'frontend/element_ready/wd_products_brands.default', 'frontend/element_ready/wd_blog.default', 'frontend/element_ready/wd_portfolio.default', 'frontend/element_ready/wd_images_gallery.default', 'frontend/element_ready/wd_product_categories.default', 'frontend/element_ready/wd_banner_carousel.default', 'frontend/element_ready/wd_infobox_carousel.default', 'frontend/element_ready/wd_instagram.default', 'frontend/element_ready/wd_testimonials.default', 'frontend/element_ready/wd_nested_carousel.default' ].forEach( function (value) { woodmartThemeModule.wdElementorAddAction(value, function() { woodmartThemeModule.swiperInit(); }); }); woodmartThemeModule.swiperInit = function() { if ('undefined' === typeof wdSwiper) { console.error('Swiper is not defined'); return; } document.querySelectorAll('.wd-carousel:not(.scroll-init)').forEach( function (carousel) { carouselInit(carousel); }); if ('undefined' !== typeof window.Waypoint) { document.querySelectorAll('.wd-carousel.scroll-init').forEach( function (carousel) { new Waypoint({ element: carousel, handler: function() { if (carousel.classList.contains('wd-initialized')) { this.destroy(); } carouselInit(this.element); }, offset: '100%' }); }); } function carouselInit(carousel, thumbs = false) { if (carousel.closest('.woocommerce-product-gallery') && ! carousel.classList.contains('quick-view-gallery') || ( ! thumbs && 'undefined' !== typeof carousel.dataset.sync_child_id && document.querySelector('.wd-carousel[data-sync_parent_id=' + carousel.dataset.sync_child_id + ']') ) ) { return; } var carouselWrapper = carousel.closest('.wd-carousel-container'); var carouselStyle = window.getComputedStyle(carousel); if (woodmartThemeModule.windowWidth <= 1024 && carouselWrapper.classList.contains('wd-carousel-dis-mb') || carousel.classList.contains('wd-initialized') ) { return; } var mainSlidesPerView = carouselStyle.getPropertyValue('--wd-col'); var breakpointsSettings = woodmart_settings.carousel_breakpoints; var breakpoints = {}; var carouselItemsLength = carousel.querySelectorAll('.wd-carousel-item').length; Object.entries(breakpointsSettings).forEach(( [size, key] ) => { var slidesPerView = carouselStyle.getPropertyValue('--wd-col-' + key ); var enableScrollPerGroup = 'undefined' !== typeof carousel.dataset.scroll_per_page && 'yes' === carousel.dataset.scroll_per_page; if ( ! slidesPerView ) { slidesPerView = mainSlidesPerView; } if ( slidesPerView ) { breakpoints[ size ] = { slidesPerView : slidesPerView ? slidesPerView : 1 }; if ( 'yes' === carousel.dataset.wrap && parseInt(slidesPerView, 10 ) * 2 > carouselItemsLength || 'yes' === carousel.dataset.center_mode) { enableScrollPerGroup = false; } if ( enableScrollPerGroup && slidesPerView ) { breakpoints[ size ]['slidesPerGroup'] = parseInt(slidesPerView); } // if ( 'yes' === carousel.dataset.wrap && 'yes' === carousel.dataset.center_mode ) { // // breakpoints[ size ]['loopAdditionalSlides'] = parseInt(parseInt( slidesPerView, 10 ) / 2, 10 ); // breakpoints[ size ]['loopAdditionalSlides'] = 1; // } } }); var config = { slidesPerView : mainSlidesPerView, loop : 'yes' === carousel.dataset.wrap && ('yes' !== carousel.dataset.center_mode || parseInt( mainSlidesPerView, 10) + 1 < carouselItemsLength ), loopAddBlankSlides : false, centeredSlides : 'yes' === carousel.dataset.center_mode, autoHeight : 'yes' === carousel.dataset.autoheight, grabCursor : true, a11y : { enabled: false }, breakpoints : breakpoints, watchSlidesProgress : true, slideClass : 'wd-carousel-item', slideActiveClass : 'wd-active', slideVisibleClass : 'wd-slide-visible', slideNextClass : 'wd-slide-next', slidePrevClass : 'wd-slide-prev', slideFullyVisibleClass: 'wd-full-visible', slideBlankClass : 'wd-slide-blank', lazyPreloaderClass : 'wd-lazy-preloader', containerModifierClass: 'wd-', wrapperClass : 'wd-carousel-wrap', on : { init: function() { setTimeout(function() { woodmartThemeModule.$document.trigger('wdSwiperCarouselInited'); }, 100); } } }; if ('undefined' !== typeof carousel.dataset.effect) { var effect = carousel.dataset.effect; if ('distortion' === effect) { effect = 'fade'; } config.effect = effect; if ('parallax' === effect) { config.parallax = { enabled: true }; carousel.querySelectorAll('.wd-slide-bg').forEach( function (slideBg) { slideBg.setAttribute('data-swiper-parallax', '50%'); }); } } if ('undefined' !== typeof carousel.dataset.sliding_speed && carousel.dataset.sliding_speed) { config.speed = carousel.dataset.sliding_speed; } var pagination = Array.prototype.filter.call( carouselWrapper.children, (element) => element.classList.contains('wd-nav-pagin-wrap'), ).shift(); if (pagination) { config.pagination = { el : pagination.querySelector('.wd-nav-pagin'), dynamicBullets : pagination.classList.contains('wd-dynamic'), type : 'bullets', clickable : true, bulletClass : 'wd-nav-pagin-item', bulletActiveClass : 'wd-active', modifierClass : 'wd-type-', lockClass : 'wd-lock', currentClass : 'wd-current', totalClass : 'wd-total', hiddenClass : 'wd-hidden', clickableClass : 'wd-clickable', horizontalClass : 'wd-horizontal', verticalClass : 'wd-vertical', paginationDisabledClass: 'wd-disabled', renderBullet : function(index, className) { var innerContent = ''; if (pagination.classList.contains('wd-style-number-2')) { innerContent = index + 1; if ( 9 >= innerContent ) { innerContent = '0' + innerContent; } } return '<li class="' + className + '"><span>' + innerContent + '</span></li>'; } }; } var navigationWrapper = Array.prototype.filter.call( carouselWrapper.querySelector('.wd-carousel-inner').children, (element) => element.classList.contains('wd-nav-arrows'), ).shift(); if (navigationWrapper) { config.navigation = { nextEl : navigationWrapper.querySelector('.wd-btn-arrow.wd-next'), prevEl : navigationWrapper.querySelector('.wd-btn-arrow.wd-prev'), disabledClass: 'wd-disabled', lockClass : 'wd-lock', hiddenClass : 'wd-hide' }; } var scrollbar = Array.prototype.filter.call( carouselWrapper.children, (element) => element.classList.contains('wd-nav-scroll'), ).shift(); if (scrollbar) { config.scrollbar = { el : scrollbar, lockClass : 'wd-lock', dragClass : 'wd-nav-scroll-drag', scrollbarDisabledClass: 'wd-disabled', horizontalClass : 'wd-horizontal', verticalClass : 'wd-vertical', draggable : true }; config.on.scrollbarDragStart = function () { scrollbar.classList.add('wd-grabbing'); }; config.on.scrollbarDragEnd = function () { scrollbar.classList.remove('wd-grabbing'); }; } if ('undefined' !== typeof carousel.dataset.autoplay && 'yes' === carousel.dataset.autoplay) { config.autoplay = { delay: carousel.dataset.speed ? carousel.dataset.speed : 5000, pauseOnMouseEnter: true }; } if ('undefined' !== typeof carousel.dataset.sync_parent_id) { var childCarousel = document.querySelector('.wd-carousel[data-sync_child_id=' + carousel.dataset.sync_parent_id + ']'); if ( childCarousel ) { config.thumbs = { swiper : carouselInit(childCarousel, true), slideThumbActiveClass: 'wd-thumb-active', thumbsContainerClass : 'wd-thumbs' }; } } carousel.querySelectorAll('link').forEach(function (link) { var linkClone = link.cloneNode(false); carouselWrapper.append(linkClone); linkClone.addEventListener('load', function() { setTimeout(function () { link.remove(); }, 500); }, false); }); const swiper = new wdSwiper(carousel, config); if (carouselWrapper && carouselWrapper.classList.contains('wd-slider')) { swiper.on('realIndexChange', function (swiper) { setTimeout(function () { carousel.dispatchEvent(new CustomEvent('wdSlideChange', { detail: {activeIndex: swiper.realIndex} })); },100); }); } window.addEventListener('popstate', function() { document.querySelectorAll('.wd-carousel.wd-initialized').forEach( function (carousel) { if ('undefined' === typeof carousel.swiper) { carousel.classList.remove('wd-initialized'); carouselInit(carousel); } }); }); return swiper; } }; window.addEventListener('load',function() { woodmartThemeModule.swiperInit(); });