{"version":3,"file":"counter.js","names":["n","a","t","DURATION_MS","animateCounter","target","element","start","step","progress","now","eased","observer","entry","entries"],"sources":["../../static_src/js/scripts/counter.js"],"sourcesContent":["const DURATION_MS = 1_000\n\nexport function animateCounter(element) {\n  const target = Number(element.dataset.countTo)\n  const start = performance.now()\n  element.textContent = \"0\"\n  function step(now) {\n    const progress = Math.min((now - start) / DURATION_MS, 1)\n    const eased = 1 - (1 - progress) ** 2\n    element.textContent = Math.floor(eased * target)\n    if (progress < 1) {\n      requestAnimationFrame(step)\n    } else {\n      element.textContent = target\n    }\n  }\n  requestAnimationFrame(step)\n}\n\nconst observer = new IntersectionObserver((entries) => {\n  for (const entry of entries) {\n    if (entry.isIntersecting) {\n      animateCounter(entry.target)\n      observer.unobserve(entry.target)\n    }\n  }\n})\n\nfor (const element of document.querySelectorAll(\"[data-count-to]\")) {\n  observer.observe(element)\n}\n"],"mappings":"CAAA,UAAA,CAAA,GAAA,CAAA,IAAA,EAAA,OAAA,OAAA,IAAA,OAAA,OAAA,OAAA,IAAA,OAAA,OAAA,WAAA,IAAA,WAAA,OAAA,KAAA,IAAA,KAAA,CAAA,EAAA,EAAA,sBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,sBAAA,IAAA,EAAA,MAAA,CAAA,CAAA,OAAA,SAAA,EAAA,CAAA,IAAA,IAAAA,EAAA,EAAAA,EAAA,UAAA,OAAA,IAAA,CAAA,IAAAC,EAAA,UAAAD,GAAA,GAAAC,GAAA,KAAA,IAAA,IAAAC,KAAAD,EAAAA,EAAA,eAAAC,CAAA,IAAA,EAAAA,GAAAD,EAAAC,GAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,EAAA,sBAAA,IAAA,EAAA,MAAA,CAAA,CAAA,OAAA,CAAA,gDAAA,EAAA,CAAA,EAAA,IAAAF,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA,MAAAA,IAAA,EAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,gBAAAA,GAAA,uCAAA,EAAA,yBAAA,mDAAA,MAAA,CAAA,CAAA,EAAA,CAAA,EAAA,IAAMG,EAAc,IAEpB,SAAgBC,EAAe,EAAS,CACtC,IAAMC,EAAS,OAAOC,EAAQ,QAAQ,OAAO,EACvCC,EAAQ,YAAY,IAAI,EAC9B,EAAQ,YAAc,IACtB,SAASC,EAAK,EAAK,CACjB,IAAMC,EAAW,KAAK,KAAKC,EAAMH,GAASJ,EAAa,CAAC,EAClDQ,EAAQ,GAAK,EAAIF,IAAa,EACpC,EAAQ,YAAc,KAAK,MAAME,EAAQN,CAAM,EAC3CI,EAAW,EACb,sBAAsBD,CAAI,EAE1B,EAAQ,YAAcH,CAE1B,CACA,sBAAsBG,CAAI,CAC5B,CAEA,IAAMI,EAAW,IAAI,qBAAsB,GAAY,CACrD,IAAK,IAAMC,KAASC,EACdD,EAAM,iBACRT,EAAeS,EAAM,MAAM,EAC3BD,EAAS,UAAUC,EAAM,MAAM,EAGrC,CAAC,EAED,IAAK,IAAMP,KAAW,SAAS,iBAAiB,iBAAiB,EAC/DM,EAAS,QAAQN,CAAO"}