1var __defProp = Object.defineProperty; 2var __getOwnPropSymbols = Object.getOwnPropertySymbols; 3var __hasOwnProp = Object.prototype.hasOwnProperty; 4var __propIsEnum = Object.prototype.propertyIsEnumerable; 5var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; 6var __spreadValues = (a, b) => { 7 for (var prop in b || (b = {})) 8 if (__hasOwnProp.call(b, prop)) 9 __defNormalProp(a, prop, b[prop]); 10 if (__getOwnPropSymbols) 11 for (var prop of __getOwnPropSymbols(b)) { 12 if (__propIsEnum.call(b, prop)) 13 __defNormalProp(a, prop, b[prop]); 14 } 15 return a; 16}; 17(function() { 18 "use strict"; 19 const intersectionObserverSupport = function() { 20 return "IntersectionObserver" in window && "IntersectionObserverEntry" in window && "intersectionRatio" in window.IntersectionObserverEntry.prototype; 21 }; 22 const observe = function(elements, callback, options = {}) { 23 const optionsWithDefaults = __spreadValues({}, options); 24 const observer = new IntersectionObserver(callback, optionsWithDefaults); 25 elements.forEach((element) => { 26 observer.observe(element); 27 }); 28 return observer; 29 }; 30 const animateJs = function(options) { 31 let elements; 32 options = __spreadValues({ 33 animationClass: "animated", 34 selector: "ajs__element", 35 watchForChanges: true, 36 mode: "css_class", 37 once: true 38 }, options); 39 const selector = options.selector; 40 if (typeof selector === "string") { 41 elements = document.querySelectorAll(`.${selector}`); 42 } else if (typeof selector === "object" && selector[0] && selector[0].nodeType === 1 || selector instanceof Array) { 43 elements = [...selector]; 44 } else if (typeof selector === "object" && selector.nodeType === 1) { 45 elements = [selector]; 46 } else { 47 console.warn("You need to specify the selector."); 48 return; 49 } 50 const applyAnimation = function(domNode) { 51 if (domNode.dataset.ajsAnimation) { 52 domNode.classList.add(domNode.dataset.ajsAnimation, options.animationClass); 53 } 54 }; 55 if (!intersectionObserverSupport()) { 56 elements.forEach((element) => { 57 applyAnimation(element); 58 }); 59 } 60 const onElementInViewport = function(entries, observer2) { 61 entries.forEach((entry) => { 62 if (entry.isIntersecting) { 63 if (options.mode === "css_class" && options.animationClass) { 64 applyAnimation(entry.target); 65 } else if (options.mode === "event") { 66 const event = new Event("inViewport"); 67 entry.target.dispatchEvent(event); 68 } 69 if (options.once) { 70 observer2.unobserve(entry.target); 71 } 72 } 73 }); 74 }; 75 const observer = observe(elements, onElementInViewport); 76 const destroy = function() { 77 observer.disconnect(); 78 elements = null; 79 }; 80 return { 81 destroy 82 }; 83 }; 84 window.animateJS = animateJs; 85})();
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.