PageSourceSearch

https://arqueha.com/assets/KPIsSection-DWNnTuNQ.js

js arqueha.com collected 2026-10-05 06:26:13 UTC 2,500 bytes, 1 lines download raw bytes

1import{j as s}from"./query-BYFzMovP.js";import{r as m}from"./react-vendor-BrPc1QBO.js";import{u as h}from"./i18n-DJZKsO1h.js";const d=[{number:"475",labelKey:"home.kpis.projects",labelSide:"right"},{number:"+3K",labelKey:"home.kpis.homes",labelSide:"left"},{number:"+700K",labelKey:"home.kpis.m2",labelSide:"right"},{number:"340M",labelKey:"home.kpis.pem",labelSide:"left"}],g=r=>{const n=r.match(/^(\D*)(\d+(?:[.,]\d+)?)(\D*)$/);return n?{prefix:n[1],value:parseFloat(n[2].replace(",",".")),suffix:n[3],original:r}:{prefix:"",value:0,suffix:"",original:r}},y=r=>1-Math.pow(1-r,3),j=({value:r,start:n,duration:l=2e3})=>{const{prefix:i,value:o,suffix:e}=g(r),[t,u]=m.useState(0);m.useEffect(()=>{if(!n)return;let a=0;const f=performance.now(),c=b=>{const p=Math.min((b-f)/l,1);u(o*y(p)),p<1&&(a=requestAnimationFrame(c))};return a=requestAnimationFrame(c),()=>cancelAnimationFrame(a)},[n,o,l]);const x=Number.isInteger(o)?Math.round(t).toString():t.toFixed(1);return s.jsxs(s.Fragment,{children:[i,x,e]})},S=()=>{const{t:r}=h(),n=d.map(e=>({...e,label:r(e.labelKey)})),l=m.useRef(null),[i,o]=m.useState([!1,!1,!1,!1]);return m.useEffect(()=>{const e=l.current;if(!e)return;const t=new IntersectionObserver(([u])=>{u.isIntersecting&&(d.forEach((x,a)=>{setTimeout(()=>{o(f=>{const c=[...f];return c[a]=!0,c})},a*200)}),t.unobserve(e))},{threshold:.15});return t.observe(e),()=>t.disconnect()},[]),s.jsxs("section",{className:"w-full py-20 md:py-32 lg:py-40 px-6 md:px-12 lg:px-24 bg-secondary",children:[s.jsx("h2",{className:"sr-only",children:"Arqueha en cifras: proyectos, viviendas y superficie"}),s.jsx("div",{ref:l,className:"flex flex-col items-center gap-2",children:n.map((e,t)=>s.jsxs("div",{className:"flex items-center gap-4 md:gap-6 justify-center transition-all duration-700 ease-out",style:{opacity:i[t]?1:0,transform:i[t]?"translateY(0)":"translateY(40px)"},children:[e.labelSide==="left"&&s.jsx("span",{className:"text-[13px] md:text-[16px] font-normal text-foreground/70 tracking-wide text-right leading-none whitespace-pre-line lg:text-3xl",children:e.label}),s.jsx("span",{className:"text-[5rem] md:text-[9rem] lg:text-[13rem] xl:text-[15rem] leading-[0.85] tracking-[-0.04em] font-medium text-primary tabular-nums",children:s.jsx(j,{value:e.number,start:i[t]})}),e.labelSide==="right"&&s.jsx("span",{className:"text-[13px] md:text-[16px] font-normal text-foreground/70 tracking-wide leading-none whitespace-pre-line lg:text-3xl",children:e.label})]},t))})]})};export{S as default};

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.