1/* global tns, kadenceSlideConfig */ 2/** 3 * File slide-init.js. 4 * Gets slide going when needed. 5 */ 6 7(function() { 8 'use strict'; 9 window.kadenceSlide = { 10 /** 11 * Initiate the script to process all 12 */ 13 start: function( element ) { 14 var sliderDirection = 'ltr', 15 nextLabel = element.getAttribute('data-slider-next-label'), 16 prevLabel = element.getAttribute('data-slider-prev-label'), 17 slideLabel = element.getAttribute('data-slider-slide-label'), 18 sliderSpeed = parseInt( element.getAttribute( 'data-slider-speed' ) ), 19 sliderAnimationSpeed = parseInt( element.getAttribute( 'data-slider-anim-speed' ) ), 20 sliderArrows = element.getAttribute( 'data-slider-arrows' ), 21 sliderDots = element.getAttribute( 'data-slider-dots' ), 22 sliderPause = element.getAttribute( 'data-slider-pause-hover' ), 23 sliderLoop = element.getAttribute( 'data-slider-loop' ), 24 sliderAuto = element.getAttribute( 'data-slider-auto' ), 25 xxl = parseInt( element.getAttribute( 'data-columns-xxl' ) ), 26 xl = parseInt( element.getAttribute( 'data-columns-xl' ) ), 27 md = parseInt( element.getAttribute( 'data-columns-md' ) ), 28 sm = parseInt( element.getAttribute( 'data-columns-sm' ) ), 29 xs = parseInt( element.getAttribute( 'data-columns-xs' ) ), 30 ss = parseInt( element.getAttribute( 'data-columns-ss' ) ), 31 gutter = parseInt( element.getAttribute( 'data-slider-gutter' ) ), 32 scroll = parseInt( element.getAttribute( 'data-slider-scroll' ) ); 33 if ( ! nextLabel ) { 34 nextLabel = kadenceSlideConfig.next; 35 } 36 if ( ! prevLabel ) { 37 prevLabel = kadenceSlideConfig.next; 38 } 39 if ( ! slideLabel ) { 40 slideLabel = kadenceSlideConfig.slide; 41 } 42 if ( document.querySelector( 'html[dir="rtl"]' ) ) { 43 sliderDirection = 'rtl'; 44 } 45 if ( 1 !== scroll ) { 46 scroll = 'page' 47 } 48 var scrollSxxl = xxl, 49 scrollSxl = xl, 50 scrollSmd = md, 51 scrollSsm = sm, 52 scrollSxs = xs, 53 scrollSss = ss; 54 if ( 1 === scroll ) { 55 scrollSxxl = 1; 56 scrollSxl = 1; 57 scrollSmd = 1; 58 scrollSsm = 1; 59 scrollSxs = 1; 60 scrollSss = 1; 61 } 62 var initialize = false; 63 var slideCount = element.querySelector( '.splide__list' ).childElementCount; 64 if ( window.innerWidth < 544 ) { 65 if ( slideCount > ss ) { 66 initialize = true; 67 } 68 } else if ( window.innerWidth < 768 ) { 69 if ( slideCount > xs ) { 70 initialize = true; 71 } 72 } else if ( window.innerWidth < 992 ) { 73 if ( slideCount > sm ) { 74 initialize = true; 75 } 76 } else if ( window.innerWidth < 1200 ) { 77 if ( slideCount > md ) { 78 initialize = true; 79 } 80 } else if ( window.innerWidth < 1500 ) { 81 if ( slideCount > xl ) { 82 initialize = true; 83 } 84 } else if ( slideCount > xxl ) { 85 initialize = true; 86 } 87 if ( initialize ) { 88 element.classList.add( 'splide-initial' ); 89 } 90 var options = { 91 perPage: xxl, 92 type: ( 'false' === sliderLoop ? 'slide' : 'loop' ), 93 slideFocus: false, 94 perMove: scrollSxxl, 95 autoplay: ( sliderAuto == 'false' ? false : true ), 96 easing: undefined !== sliderAnimationSpeed && sliderAnimationSpeed > 1000 ? 'linear' : 'cubic-bezier(0.25, 1, 0.5, 1)', 97 speed: ( undefined !== sliderAnimationSpeed ? sliderAnimationSpeed : 400 ), 98 interval: ( undefined !== sliderSpeed ? sliderSpeed : 7000 ), 99 autoplayHoverPause: ( 'true' === sliderPause ? true : false ), 100 arrows: ( sliderArrows == 'false' ? false : true ), 101 pagination: ( sliderDots == 'false' ? false : true ), 102 gap: gutter + 'px', 103 direction: sliderDirection, 104 rewind:( sliderLoop == 'false' ? true : false ), 105 focus: 0, 106 perMove: scrollSxxl, 107 i18n: { 108 carousel: slideLabel, 109 prev: prevLabel, 110 next: nextLabel, 111 slideLabel: '%s ' + kadenceSlideConfig.of + ' %s', 112 }, 113 breakpoints: { 114 543: { 115 perPage: ss, 116 perMove: scrollSss, 117 }, 118 767: { 119 perPage: xs, 120 perMove: scrollSxs, 121 }, 122 991: { 123 perPage: sm, 124 perMove: scrollSsm, 125 }, 126 1199: { 127 perPage: md, 128 perMove: scrollSmd, 129 }, 130 1499: { 131 perPage: xl, 132 perMove: scrollSxl, 133 } 134 } 135 }; 136 var slider = new Splide( element, options ); 137 if ( initialize ) { 138 slider.mount(); 139 } 140 }, 141 /** 142 * Initiate the script to process all 143 */ 144 initAll: function( element ) { 145 document.querySelectorAll( '.kadence-slide-init' ).forEach(function ( element ) {
146 window.kadenceSlide.start( element ); 147 } ); 148 }, 149 // Initiate the menus when the DOM loads. 150 init: function() { 151 if ( typeof Splide == 'function' ) { 152 window.kadenceSlide.initAll(); 153 } else { 154 var initLoadDelay = setInterval( function(){ if ( typeof Splide == 'function' ) { window.kadenceSlide.initAll(); clearInterval(initLoadDelay); } }, 200 ); 155 } 156 } 157 } 158 if ( 'loading' === document.readyState ) { 159 // The DOM has not yet been loaded. 160 document.addEventListener( 'DOMContentLoaded', window.kadenceSlide.init ); 161 } else { 162 // The DOM has already been loaded. 163 window.kadenceSlide.init(); 164 } 165})();
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.