1class u{constructor(e){this.root=e,this.valueElement=this.root.querySelector("[data-kw-talkingnumber-value]"),this.targetValue=Number(this.valueElement.dataset.kwTalkingnumberValue),this.duration=this.valueElement.dataset.kwTalkingnumberDuration||1500,this.locale=document.documentElement.lang.split("-")[0]||"de",this.hasAnimated=!1,this.observe()}observe(){this.observer=new IntersectionObserver(([e])=>{e.isIntersecting&&!this.hasAnimated&&(this.hasAnimated=!0,this.animateValue(),this.observer.unobserve(this.root))},{threshold:.75}),this.observer.observe(this.root)}animateValue(){const e=performance.now(),n=i=>{const s=i-e,r=Math.min(s/this.duration,1),o=Math.floor(r*this.targetValue);this.valueElement.textContent=this.formatNumber(o),r<1&&requestAnimationFrame(n)};requestAnimationFrame(n)}formatNumber(e){return new Intl.NumberFormat(this.locale).format(e)}}const a=(t=document)=>{t.querySelectorAll("[data-kw-talkingnumber]").forEach(e=>{e.dataset.kwInitialized||(e.dataset.kwInitialized="true",new u(e))})};document.readyState!=="loading"?a():document.addEventListener("DOMContentLoaded",()=>a());document.addEventListener("kw:modules:init",t=>a(t.detail?.root??document));
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.