1const animateNextGENImage = function (node, animation) { 2 const prefix = 'animate__'; 3 return new Promise((resolve, reject) => { 4 const animationName = `${prefix}${animation}`; 5 6 // Images are given opacity: 0 to prevent their display before the animation effects start. 7 // So we drop the class that hides the image and immediately assign the animation class. 8 node.classList.remove('nextgen-pro-animate-images-loading'); 9 node.classList.add(`${prefix}animated`, animationName); 10 11 // Remove the animation class when the effect has finished. 12 function handleAnimationEnd(event) { 13 event.stopPropagation(); 14 node.classList.remove(`${prefix}animated`, animationName); 15 resolve('Animation ended'); 16 } 17 18 node.addEventListener('animationend', handleAnimationEnd, {once: true}); 19 }); 20}; 21 22const processNextGENImageAnimations = function(styleName) { 23 const containers = document.querySelectorAll('.nextgen-pro-animate-images-gallery-container'); 24 containers.forEach(function (container) { 25 // Not all display types support XHR pagination; if the data-animate-all=1 is set then we force 26 // a workaround here and apply the animation to all images in the gallery, not just the first. 27 if (1 === parseInt(container.dataset.animateAll)) { 28 styleName = 'pagination'; 29 } 30 31 const style = container.dataset[`${styleName}Style`]; 32 const duration = parseInt(container.dataset[`${styleName}Duration`]); 33 const delay = parseInt(container.dataset[`${styleName}Delay`]); 34 35 container.querySelectorAll('.nextgen-pro-animate-images-image-container').forEach( 36 function(image, index) { 37 image.style.setProperty('--animate-duration', `${duration}ms`); 38 setTimeout(() => { 39 animateNextGENImage(image, style); 40 }, (0 === index ? 0 : index * delay)); 41 } 42 ); 43 }); 44}; 45 46document.addEventListener('nextgen_page_refreshed', function() { 47 processNextGENImageAnimations('pagination'); 48}); 49 50processNextGENImageAnimations('firstload');
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.