1/* No network calls, dependencies, page state changes or content hidden on load. */ 2(function () { 3 'use strict'; 4 var reduced = window.matchMedia('(prefers-reduced-motion: reduce)'); 5 var active = new Set(); 6 var revealed = new WeakSet(); 7 var observer; 8 function stop() { 9 active.forEach(function (animation) { animation.cancel(); }); 10 active.clear(); 11 if (observer) observer.disconnect(); 12 } 13 function reveal(element, delay) { 14 if (reduced.matches || document.hidden || !element.animate) return; 15 var animation = element.animate([ 16 { opacity: .65, transform: 'translateY(8px)' }, 17 { opacity: 1, transform: 'translateY(0)' } 18 ], { duration: 360, delay: delay, easing: 'cubic-bezier(.22,1,.36,1)' }); 19 active.add(animation); 20 animation.onfinish = animation.oncancel = function () { active.delete(animation); }; 21 } 22 function init() { 23 if (reduced.matches || !('IntersectionObserver' in window)) return; 24 var page = document.body.dataset.dpPage; 25 var marketing = ['about','pricing','library','contact','support','coding','mcp','mac','news','credits','privacy','terms','refund','shortcut','droprompt-mobile','waffarha-ended','404']; 26 if (marketing.indexOf(page) === -1) return; 27 var targets = document.querySelectorAll('.plan,.prompt-card,.support-card,.credit-card,.cc-card,.legal-section,.mission-card,.response-card,.mcp-setup,.feats > *,[data-polish-reveal]'); 28 observer = new IntersectionObserver(function (entries) { 29 var index = 0; 30 entries.forEach(function (entry) { 31 if (!entry.isIntersecting) return; 32 observer.unobserve(entry.target); 33 revealed.add(entry.target); 34 reveal(entry.target, Math.min(index++ * 35, 105)); 35 }); 36 }, { threshold: .08 }); 37 targets.forEach(function (target) { if (!revealed.has(target)) observer.observe(target); }); 38 } 39 reduced.addEventListener('change', function () { stop(); if (!reduced.matches) init(); }); 40 document.addEventListener('visibilitychange', function () { if (document.hidden) stop(); else init(); }); 41 window.addEventListener('pagehide', stop); 42 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init, {once:true}); 43 else init(); 44})();
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.