1(function(){ 2 function loadCore(then){ 3 if (window.SmgSlider) { then(); return; } 4 // Find current script URL to resolve core path 5 const current = document.currentScript || (function(){ 6 const scripts = Array.from(document.getElementsByTagName('script')); 7 return scripts.find(s => (s.src||'').includes('smg-list-slider.js')); 8 })(); 9 const base = current && current.src ? current.src.replace(/smg-list-slider\.js(?:\?.*)?$/, '') : ''; 10 const s = document.createElement('script'); 11 s.src = base + 'smg-slider-core.js'; 12 s.defer = true; 13 s.onload = then; 14 document.head.appendChild(s); 15 } 16 17 function start(){ 18 const MQ = matchMedia('(max-width: 768px)'); 19 20 function initAll(){ 21 document.querySelectorAll('.travel-list, .beach-list').forEach(list => { 22 const isBeach = list.classList.contains('beach-list'); 23 const prefix = isBeach ? 'beach' : 'travel'; 24 25 window.SmgSlider.init(list, { 26 itemSelector: isBeach ? ':scope > .beach-card' : ':scope > .travel-card', 27 pagination: { 28 mode: 'nextSibling', 29 classNames: { 30 container: prefix + '-pagination', 31 dot: prefix + '-dot' 32 } 33 }, 34 classes: { enabled: 'is-slider' }, 35 enable: () => MQ.matches, 36 mediaQuery: '(max-width: 768px)', 37 snap: { delay: 100 }, 38 a11y: { role: 'tablist', ariaLabel: 'Liste Navigation', announceActive: false } 39 }); 40 }); 41 } 42 43 if (document.readyState === 'loading') { 44 document.addEventListener('DOMContentLoaded', initAll, { once: true }); 45 } else { 46 initAll(); 47 } 48 } 49 50 loadCore(start); 51})();
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.