1(function () { 2 function initLandingSlider() { 3 var root = document.getElementById('tw-landing-slider'); 4 if (!root || typeof Swiper === 'undefined') return; 5 6 var swiperEl = root.querySelector('.tw-landing-slides'); 7 if (!swiperEl) return; 8 9 var pills = root.querySelectorAll('.tw-landing-slider-pill'); 10 var paginationEl = root.querySelector('.tw-landing-pagination'); 11 12 function setPillActive(index) { 13 pills.forEach(function (pill, i) { 14 pill.classList.toggle('tw-landing-slider-pill-active', i === index); 15 }); 16 } 17 18 var swiper = new Swiper(swiperEl, { 19 effect: 'fade', 20 fadeEffect: { 21 crossFade: true 22 }, 23 speed: 1600, 24 loop: false, 25 autoplay: { 26 delay: 5000, 27 disableOnInteraction: false, 28 pauseOnMouseEnter: true 29 }, 30 pagination: { 31 el: paginationEl, 32 clickable: true, 33 bulletClass: 'tw-landing-pagination-bullet', 34 bulletActiveClass: 'tw-landing-pagination-bullet-active', 35 renderBullet: function (index, className) { 36 return '<button type="button" class="' + className + '" aria-label="Slide ' + (index + 1) + '"></button>'; 37 } 38 }, 39 on: { 40 init: function () { 41 setPillActive(this.activeIndex); 42 }, 43 slideChange: function () { 44 setPillActive(this.activeIndex); 45 } 46 } 47 }); 48 49 pills.forEach(function (pill) { 50 pill.querySelector('button')?.addEventListener('click', function () { 51 var index = parseInt(pill.getAttribute('data-index') || '0', 10); 52 swiper.slideTo(index); 53 }); 54 }); 55 } 56 57 if (document.readyState === 'loading') { 58 document.addEventListener('DOMContentLoaded', initLandingSlider); 59 } else { 60 initLandingSlider(); 61 } 62})();
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.