1(function () { 2 'use strict'; 3 4 var carousel = document.querySelector('.notice-carousel'); 5 if (!carousel) return; 6 7 var slides = carousel.querySelectorAll('.notice-slide'); 8 var dots = carousel.querySelectorAll('.notice-dot'); 9 var current = 0; 10 var timer; 11 12 function advance() { 13 showSlide((current + 1) % slides.length); 14 } 15 16 function showSlide(index) { 17 if (index === current) return; 18 slides[current].classList.remove('is-active'); 19 slides[current].classList.add('is-leaving'); 20 slides[current].setAttribute('aria-hidden', 'true'); 21 slides[current].setAttribute('inert', ''); 22 current = index; 23 slides[current].classList.remove('is-leaving'); 24 slides[current].classList.add('is-active'); 25 slides[current].setAttribute('aria-hidden', 'false'); 26 slides[current].removeAttribute('inert'); 27 for (var i = 0; i < dots.length; i++) { 28 dots[i].classList.toggle('is-active', i === current); 29 dots[i].setAttribute('aria-pressed', i === current ? 'true' : 'false'); 30 } 31 } 32 33 function pause() { 34 window.clearInterval(timer); 35 } 36 37 function resume() { 38 pause(); 39 if (!document.hidden && !carousel.matches(':hover') && 40 !carousel.contains(document.activeElement)) { 41 timer = window.setInterval(advance, 5000); 42 } 43 } 44 45 for (var i = 0; i < dots.length; i++) { 46 (function (index) { 47 dots[index].addEventListener('click', function () { 48 showSlide(index); 49 resume(); 50 }); 51 }(i)); 52 } 53 54 carousel.addEventListener('mouseenter', pause); 55 carousel.addEventListener('mouseleave', resume); 56 carousel.addEventListener('focusin', pause); 57 carousel.addEventListener('focusout', function () { 58 window.setTimeout(resume, 0); 59 }); 60 document.addEventListener('visibilitychange', resume); 61 resume(); 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.