/* global tns, kadenceSlideConfig */ /** * File slide-init.js. * Gets slide going when needed. */ (function() { 'use strict'; window.kadenceSlide = { /** * Initiate the script to process all */ start: function( element ) { var sliderDirection = 'ltr', nextLabel = element.getAttribute('data-slider-next-label'), prevLabel = element.getAttribute('data-slider-prev-label'), slideLabel = element.getAttribute('data-slider-slide-label'), sliderSpeed = parseInt( element.getAttribute( 'data-slider-speed' ) ), sliderAnimationSpeed = parseInt( element.getAttribute( 'data-slider-anim-speed' ) ), sliderArrows = element.getAttribute( 'data-slider-arrows' ), sliderDots = element.getAttribute( 'data-slider-dots' ), sliderPause = element.getAttribute( 'data-slider-pause-hover' ), sliderLoop = element.getAttribute( 'data-slider-loop' ), sliderAuto = element.getAttribute( 'data-slider-auto' ), xxl = parseInt( element.getAttribute( 'data-columns-xxl' ) ), xl = parseInt( element.getAttribute( 'data-columns-xl' ) ), md = parseInt( element.getAttribute( 'data-columns-md' ) ), sm = parseInt( element.getAttribute( 'data-columns-sm' ) ), xs = parseInt( element.getAttribute( 'data-columns-xs' ) ), ss = parseInt( element.getAttribute( 'data-columns-ss' ) ), gutter = parseInt( element.getAttribute( 'data-slider-gutter' ) ), scroll = parseInt( element.getAttribute( 'data-slider-scroll' ) ); if ( ! nextLabel ) { nextLabel = kadenceSlideConfig.next; } if ( ! prevLabel ) { prevLabel = kadenceSlideConfig.next; } if ( ! slideLabel ) { slideLabel = kadenceSlideConfig.slide; } if ( document.querySelector( 'html[dir="rtl"]' ) ) { sliderDirection = 'rtl'; } if ( 1 !== scroll ) { scroll = 'page' } var scrollSxxl = xxl, scrollSxl = xl, scrollSmd = md, scrollSsm = sm, scrollSxs = xs, scrollSss = ss; if ( 1 === scroll ) { scrollSxxl = 1; scrollSxl = 1; scrollSmd = 1; scrollSsm = 1; scrollSxs = 1; scrollSss = 1; } var initialize = false; var slideCount = element.querySelector( '.splide__list' ).childElementCount; if ( window.innerWidth < 544 ) { if ( slideCount > ss ) { initialize = true; } } else if ( window.innerWidth < 768 ) { if ( slideCount > xs ) { initialize = true; } } else if ( window.innerWidth < 992 ) { if ( slideCount > sm ) { initialize = true; } } else if ( window.innerWidth < 1200 ) { if ( slideCount > md ) { initialize = true; } } else if ( window.innerWidth < 1500 ) { if ( slideCount > xl ) { initialize = true; } } else if ( slideCount > xxl ) { initialize = true; } if ( initialize ) { element.classList.add( 'splide-initial' ); } var options = { perPage: xxl, type: ( 'false' === sliderLoop ? 'slide' : 'loop' ), slideFocus: false, perMove: scrollSxxl, autoplay: ( sliderAuto == 'false' ? false : true ), easing: undefined !== sliderAnimationSpeed && sliderAnimationSpeed > 1000 ? 'linear' : 'cubic-bezier(0.25, 1, 0.5, 1)', speed: ( undefined !== sliderAnimationSpeed ? sliderAnimationSpeed : 400 ), interval: ( undefined !== sliderSpeed ? sliderSpeed : 7000 ), autoplayHoverPause: ( 'true' === sliderPause ? true : false ), arrows: ( sliderArrows == 'false' ? false : true ), pagination: ( sliderDots == 'false' ? false : true ), gap: gutter + 'px', direction: sliderDirection, rewind:( sliderLoop == 'false' ? true : false ), focus: 0, perMove: scrollSxxl, i18n: { carousel: slideLabel, prev: prevLabel, next: nextLabel, slideLabel: '%s ' + kadenceSlideConfig.of + ' %s', }, breakpoints: { 543: { perPage: ss, perMove: scrollSss, }, 767: { perPage: xs, perMove: scrollSxs, }, 991: { perPage: sm, perMove: scrollSsm, }, 1199: { perPage: md, perMove: scrollSmd, }, 1499: { perPage: xl, perMove: scrollSxl, } } }; var slider = new Splide( element, options ); if ( initialize ) { slider.mount(); } }, /** * Initiate the script to process all */ initAll: function( element ) { document.querySelectorAll( '.kadence-slide-init' ).forEach(function ( element ) { window.kadenceSlide.start( element ); } ); }, // Initiate the menus when the DOM loads. init: function() { if ( typeof Splide == 'function' ) { window.kadenceSlide.initAll(); } else { var initLoadDelay = setInterval( function(){ if ( typeof Splide == 'function' ) { window.kadenceSlide.initAll(); clearInterval(initLoadDelay); } }, 200 ); } } } if ( 'loading' === document.readyState ) { // The DOM has not yet been loaded. document.addEventListener( 'DOMContentLoaded', window.kadenceSlide.init ); } else { // The DOM has already been loaded. window.kadenceSlide.init(); } })();