1(function () { 2 const initializedAttr = "data-infinite-scroller-initialized"; 3 4 function duplicateScrollerItems(scroller) { 5 if (!scroller || scroller.hasAttribute(initializedAttr)) { 6 return; 7 } 8 9 const innerScroller = scroller.querySelector(":scope > *"); 10 11 if (!innerScroller) { 12 return; 13 } 14 15 const items = Array.from(innerScroller.children); 16 17 if (!items.length) { 18 return; 19 } 20 21 const duplicationRounds = window.matchMedia("(min-width: 1921px)").matches 22 ? 2 23 : 1; 24 25 for (let round = 0; round < duplicationRounds; round += 1) { 26 items.forEach((item) => { 27 const duplicate = item.cloneNode(true); 28 duplicate.setAttribute("aria-hidden", "true"); 29 disableFocusableItems(duplicate); 30 innerScroller.appendChild(duplicate); 31 }); 32 } 33 34 scroller.setAttribute(initializedAttr, "true"); 35 } 36 37 function disableFocusableItems(root) { 38 const focusableSelector = [ 39 "a[href]", 40 "button", 41 "input", 42 "select", 43 "textarea", 44 "summary", 45 "iframe", 46 "audio[controls]", 47 "video[controls]", 48 "[contenteditable]", 49 "[tabindex]", 50 ].join(","); 51 52 if (root.matches?.(focusableSelector)) { 53 root.setAttribute("tabindex", "-1"); 54 } 55 56 root.querySelectorAll?.(focusableSelector).forEach((element) => { 57 element.setAttribute("tabindex", "-1"); 58 }); 59 } 60 61 function initAllScrollers() { 62 document.querySelectorAll(".infinite-scroller").forEach(duplicateScrollerItems); 63 } 64 65 window.inicializarInfiniteScroller = duplicateScrollerItems; 66 67 document.addEventListener("infiniteScroller:contentReady", (event) => { 68 duplicateScrollerItems(event.detail?.scroller); 69 }); 70 71 document.addEventListener("cursosScroller:itensAdicionados", initAllScrollers); 72 73 if (document.readyState === "loading") { 74 document.addEventListener("DOMContentLoaded", initAllScrollers, { 75 once: true, 76 }); 77 } else { 78 initAllScrollers(); 79 } 80})();
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.