1 2//for window dom loaded 3window.addEventListener('DOMContentLoaded', (event) => { 4 var keySelector = '.rt___animated'; 5 6 waitForWrapperSection(keySelector).then((elm) => { 7 var findAnimationClass = document.querySelectorAll(keySelector); 8 animateClassReplace(findAnimationClass); 9 10 window.addEventListener('scroll', function (event) { 11 animateClassReplace(findAnimationClass); 12 }, true); 13 }); 14 15 //For block inspector sidebar panel 16 window.addEventListener('DOMNodeInserted', (event) => { 17 var adminSidebarChangeSelector = document.getElementById('rtrb-animation-selector'); 18 19 if (adminSidebarChangeSelector) { 20 adminSidebarChangeSelector.addEventListener('change', function (event) { 21 setTimeout(function () { 22 animateClassReplace(document.querySelectorAll(keySelector)); 23 }, 500); 24 }, true); 25 } 26 }); 27}); 28 29var isInWrapperViewport = function (elem) { 30 var distance = elem.getBoundingClientRect(); 31 return ( 32 distance.top >= 0 && distance.top <= (window.innerHeight || document.documentElement.clientHeight) 33 && distance.bottom >= 0 && distance.bottom <= (window.innerWidth || document.documentElement.clientWidth) 34 ); 35}; 36 37//replace rt___animated className 38var animateClassReplace = function (selector) { 39 selector.forEach(element => { 40 if (isInWrapperViewport(element)) { 41 let toRemoveClasses = []; 42 let toAddClasses = []; 43 element.classList.forEach((classname) => { 44 if (classname.includes('rt___')) { 45 toRemoveClasses.push(classname); 46 toAddClasses.push(classname.replace('rt___', 'rt__')); 47 } 48 }) 49 element.classList.add(...toAddClasses); 50 element.classList.remove(...toRemoveClasses); 51 } 52 53 }); 54} 55 56var waitForWrapperSection = function (selector) { 57 return new Promise(resolve => { 58 if (document.querySelector(selector)) { 59 return resolve(document.querySelector(selector)); 60 } 61 62 const observer = new MutationObserver(mutations => { 63 if (document.querySelector(selector)) { 64 resolve(document.querySelector(selector)); 65 observer.disconnect(); 66 } 67 }); 68 69 observer.observe(document.body, { 70 childList: true, 71 subtree: true 72 }); 73 }); 74}
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.