PageSourceSearch

https://wewere.online/assets/useAccumulatedEvents-CsLDP_wA.js

js wewere.online collected 2026-10-08 09:22:22 UTC 11,649 bytes, 1 lines download raw bytes

1import{r as t,j as k}from"./client-CUTvk0f7.js";import{a as Ue,r as je,R as Ve,b as Be,c as Ke,d as Ne,p as ze,e as He}from"./trailPrimitives-CHQyI8sc.js";import{a as Xe}from"./clickDefaults-Yw1BgyYC.js";const qe=8e3,Ge=4e3;function Z(e,r){if(e===null)return 1;const n=Math.max(0,Math.min(1,(r-e.startedAt)/e.durationMs));return e.fromOpacity+(e.toOpacity-e.fromOpacity)*n}function fe(e,r,n){return{startedAt:r,fromOpacity:Z(e,r),toOpacity:n?1:0,durationMs:n?Ge:qe}}const Ye=8e3,Fe=1200,Ze=600,Je=3e4,Qe=600,et=32,tt=6e4;function De(e,r,n=!1){return!!(!n&&e?.settled&&e.settledAt!==null&&r-e.settledAt>=tt)}function rt(e,r){if(e.dimmedAt===null)return 1;const n=Math.min(1,(r-e.dimmedAt)/Fe);return 1-(1-He)*n}function nt(e,r){return e.activeFromVariedPoint===null?0:e.activeDimmedAt===null?1:Math.max(0,1-(r-e.activeDimmedAt)/Fe)}function st(e,r,n,c,h){if(r<=e.total)return;const s=Math.max(1,e.variedTotal-1),l=Math.max(1,n-1),m=e.drawProgress*s/l;e.seenAt=c-m*h,e.drawProgress=m,e.settled&&(e.activeFromVariedPoint=s,e.activeDimmedAt=null,e.settled=!1,e.settledAt=null),e.total=r,e.variedTotal=n,e.grewAt=c,e.caughtUpAt=null}function it(e){const r=ze(e.variedPoints)/Qe*1e3,n=Math.max(0,e.variedPoints.length-1)*et;return Math.max(Ze,Math.min(Je,e.durationMs),r,n)}function ot(e,r,n){if(!r){e.caughtUpAt=null;return}e.caughtUpAt??=n,!(e.settled||n-e.caughtUpAt<Ye)&&(e.settled=!0,e.settledAt=n,e.activeFromVariedPoint===null?e.dimmedAt??=n:e.activeDimmedAt=n)}function Ie(e,r,n){return(n??e)-r}function ct(e,r,n,c){const h=r.trail.points,s=Math.min(Math.floor((h.length-1)*c),h.length-1);return{trailIndex:e,x:n.x,y:n.y,prevX:n.x,prevY:n.y,cursorType:h[s]?.cursor,progress:c,color:r.trail.color,isNewlyActive:!1,identityKey:r.trail.id}}function ut(e){let r=0;for(let n=0;n<e.length;n++)r=r*31+e.charCodeAt(n)|0;return Math.abs(r)}const yt=t.memo(({trailStates:e,frozen:r=!1,visible:n=!0,cinematic:c=null,cinematicNextSignal:h=0,showClickRipples:s=!1,soundEngine:l=null,onTrailsRemoved:m,settings:i})=>{const[o,a]=t.useState([]),b=t.useRef(o);t.useEffect(()=>{b.current=o},[o]);const D=t.useRef(null),I=t.useRef(null),K=t.useRef(new Map),Oe=t.useRef(0);t.useEffect(()=>{c?I.current?I.current.setConfig(c):I.current=new Xe(c):(I.current=null,D.current?.removeAttribute("viewBox"))},[c]),t.useEffect(()=>{h>0&&I.current?.requestNext()},[h]);const Ce=t.useRef(null),N=t.useRef(void 0),de=t.useRef(0),C=Ue(i.trailVisualStyle??"color"),ve=t.useRef(C);t.useEffect(()=>{ve.current=C},[C]);const pe=t.useRef(i.strokeWidth),me=t.useRef(i.trailOpacity);t.useEffect(()=>{pe.current=i.strokeWidth,me.current=i.trailOpacity},[i.strokeWidth,i.trailOpacity]);const J=t.useRef(r);t.useEffect(()=>{J.current=r},[r]);const he=t.useRef(s);t.useEffect(()=>{he.current=s,s||a([])},[s]);const L=t.useRef(l);t.useEffect(()=>{L.current=l},[l]);const Le=t.useRef([]),W=t.useRef(new Map),We=t.useRef(0),z=t.useRef([]),ge=u=>{const f=W.current.get(u);f!==void 0&&z.current.push(f),W.current.delete(u)},H=t.useRef(new Map),Q=t.useRef(new Map),[$,ye]=t.useState(()=>e.map(u=>({trail:u,visibility:null}))),ee=t.useRef($),U=t.useRef([]),Re=t.useRef(m);t.useEffect(()=>{Re.current=m},[m]),t.useEffect(()=>{if(ee.current=$,z.current.length>0){const u=z.current;z.current=[];for(const f of u)L.current?.retireTrail(f)}if(U.current.length>0){const u=U.current;U.current=[];const f=new Set(u);a(y=>je(y,f)),Re.current?.(u)}},[$]),t.useEffect(()=>{const u=Ae(),f=new Map(e.map(g=>[g.trail.id,g])),y=Q.current;ye(g=>{const w=[],P=new Set;for(const d of g){const v=d.trail.trail.id;P.add(v);const S=f.get(v),p=y.get(v),_=S!==void 0&&p!==void 0&&S.trail.points.length>p.total,se=De(p,u,_);if(S&&!se){const O=d.visibility?.toOpacity===0?fe(d.visibility,u,!0):d.visibility;w.push({trail:S,visibility:O})}else d.visibility?.toOpacity!==0?w.push({trail:S??d.trail,visibility:fe(d.visibility,u,!1)}):Z(d.visibility,u)>0?w.push(d):(U.current.push(v),H.current.delete(v),ge(v))}for(const d of e)P.has(d.trail.id)||w.push({trail:d,visibility:null});return w})},[e]),t.useEffect(()=>{const u=window.setInterval(()=>{if(J.current)return;const f=Ae(),y=Q.current;ye(g=>{let w=!1;const P=[];for(const d of g){const v=d.trail.trail.id,S=y.get(v),p=De(S,f),_=d.visibility?.toOpacity===0;p&&!_?(P.push({trail:d.trail,visibility:fe(d.visibility,f,!1)}),w=!0):!_||Z(d.visibility,f)>0?P.push(d):(w=!0,U.current.push(v),H.current.delete(v),ge(v))}return w?P:g})},1e3);return()=>window.clearInterval(u)},[]),t.useEffect(()=>()=>{for(const u of W.current.values())L.current?.retireTrail(u)},[]);const te=t.useRef(new Map),re=t.useRef(new Map),ne=t.useRef(new Map),X=t.useRef(0),F=t.useRef(null),Ae=()=>Ie(performance.now(),X.current,F.current);return t.useEffect(()=>{const u=()=>{N.current!==void 0&&(cancelAnimationFrame(N.current),N.current=void 0)},f=v=>{F.current===null&&(F.current=v)},y=v=>{F.current!==null&&(X.current+=v-F.current,F.current=null)},g=()=>{if(u(),document.visibilityState==="hidden"){f(performance.now());return}N.current=requestAnimationFrame(w)},w=v=>{try{P(v),de.current=0}catch(S){const p=++de.current;if((p<=3||p%300===0)&&console.error(`[LiveTrails] frame error (#${p}, kept=${ee.current.length}):`,S),p>600){console.error("[LiveTrails] giving up rAF loop after persistent errors");return}}g()},P=v=>{if(J.current){f(v),L.current?.tick(Ie(v,X.current,F.current),[]);return}y(v);const S=ee.current,p=v-X.current,_=me.current,se=pe.current,O=Q.current,q=L.current,ie=Le.current;ie.length=0;const Ee=new Map,G=new Set,Te=[];for(const x of S){const A=x.trail,E=A.trail.id;G.add(E);const xe=te.current.get(E);if(!xe)continue;const Y=A.trail.points.length;let T=O.get(E);const Me=it(A);T===void 0?(T={seenAt:p,total:Y,variedTotal:A.variedPoints.length,drawProgress:0,grewAt:p,caughtUpAt:null,settled:!1,settledAt:null,dimmedAt:null,activeFromVariedPoint:null,activeDimmedAt:null},O.set(E,T)):st(T,Y,A.variedPoints.length,p,Me);const we=Math.min(1,(p-T.seenAt)/Me),oe=we>=1;ot(T,oe,p);const V=T.settled?1:we;T.drawProgress=V;const $e=rt(T,p),Se=nt(T,p),ce=Z(x.visibility,p);Ee.set(E,ce);const ue=T.activeFromVariedPoint===null||A.variedPoints.length<2?null:T.activeFromVariedPoint/(A.variedPoints.length-1),M=xe.update(0,_*$e,se,ce,V,ue===null||Se<=0?void 0:{startProgress:ue,baseProgress:T.activeDimmedAt===null?ue:V,opacity:_*Se}),be=M&&!oe&&!T.settled&&x.visibility?.toOpacity!==0;if(I.current&&be){let R=K.current.get(E);R===void 0&&(R=Oe.current++,K.current.set(E,R)),Te.push({index:R,...M.cursorPosition,progress:M.trailProgress})}if(q&&be){let R=W.current.get(E);R===void 0&&(R=We.current++,W.current.set(E,R)),ie.push(ct(R,A,M.cursorPosition,M.trailProgress))}if(M&&he.current){let R=H.current.get(E);R||(R=new Set,H.current.set(E,R));const le=Ne(A,M.trailProgress,R,M.cursorPosition,ve.current.getClickColor(A.trail.color),Date.now());if(le.length>0){if(q)for(const B of le)q.triggerClick({x:B.x,y:B.y,holdDuration:B.holdDuration});a(B=>[...B,...le])}}const ae=re.current.get(E);if(ae&&M&&M.cursorPosition&&!oe&&!T.settled&&x.visibility?.toOpacity!==0){const R=Math.min(Math.floor((Y-1)*(M.trailProgress??V)),Y-1);ae.update(M.cursorPosition,A.trail.points[R]?.cursor,!1,V,ce)}else ae?.hide()}for(const x of b.current){const A=ne.current.get(x.id);if(!A)continue;const E=String(Ee.get(x.trailId)??0);
1A.getAttribute("opacity")!==E&&A.setAttribute("opacity",E)}const j=I.current?.tick({screenW:window.innerWidth,screenH:window.innerHeight,nowMs:p,activeTrails:Te});j&&D.current?.setAttribute("viewBox",`${j.x} ${j.y} ${j.w} ${j.h}`);for(const x of K.current.keys())G.has(x)||K.current.delete(x);if(q?.tick(p,ie),O.size>G.size)for(const x of O.keys())G.has(x)||O.delete(x)},d=()=>g();return document.addEventListener("visibilitychange",d),g(),()=>{document.removeEventListener("visibilitychange",d),u()}},[]),k.jsxs("svg",{ref:D,className:"trails-svg",width:"100%",height:"100%",preserveAspectRatio:"none",style:{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:n?"visible":"hidden"},children:[s&&o.map(u=>k.jsx("g",{ref:f=>{f?ne.current.set(u.id,f):ne.current.delete(u.id)},children:k.jsx(Ve,{effect:u,settings:i})},u.id)),k.jsx("g",{ref:Ce,children:$.map(u=>{const f=u.trail,y=f.trail.id;return k.jsx(Be,{ref:g=>{g?te.current.set(y,g):te.current.delete(y)},trailState:f,fixedMonoStrokeWidth:1+ut(y)%5,renderer:C},`live-path-${y}`)})}),$.map(u=>{const f=u.trail,y=f.trail.id;return k.jsx(Ke,{ref:g=>{g?re.current.set(y,g):re.current.delete(y)},trailState:f,renderer:C},`live-cursor-${y}`)})]})}),at="#4a9a8a",Pe=(e,r)=>`${e} ${r}${e===1?"":"s"}`;function Rt({connected:e,peopleCount:r,timezones:n,continents:c,style:h}){if(!e)return null;let s;r<=0?s="no one browsing":r===1?s="1 person browsing":s=`${r} people browsing`;const l=[s];return n&&n>1&&l.push(Pe(n,"timezone")),c&&c>1&&l.push(Pe(c,"continent")),s=l.join(" · "),k.jsx("span",{style:{fontFamily:"'Martian Mono', ui-monospace, monospace",fontSize:"11px",letterSpacing:"0.06em",textTransform:"uppercase",color:at,pointerEvents:"none",userSelect:"none",...h},children:s})}const lt=new Intl.DateTimeFormat(void 0,{timeZone:"UTC",weekday:"long",month:"long",day:"numeric"}),ft=new Intl.DateTimeFormat(void 0,{timeZone:"UTC",hour:"numeric",minute:"2-digit",second:"2-digit",hour12:!1});function dt(e){return`${lt.format(e)} · ${ft.format(e)} UTC`}function At({style:e}){const[r,n]=t.useState(()=>new Date);return t.useEffect(()=>{const c=window.setInterval(()=>n(new Date),1e3);return()=>window.clearInterval(c)},[]),k.jsx("span",{style:{fontFamily:"'Source Serif 4', 'Lora', Georgia, serif",fontStyle:"italic",fontWeight:200,fontSize:"18px",letterSpacing:"-0.01em",color:"#3d3833",pointerEvents:"none",userSelect:"none",whiteSpace:"nowrap",...e},children:dt(r)})}const ke=8e3;function _e(e){return`${e.meta.pid}|${e.meta.url||""}`}function vt(e,r,n,c){const h=new Set(n.map(l=>l.id)),s=new Set(Array.from(e).filter(l=>h.has(l)));if(c)for(const l of c){const m=r.get(l);if(m)for(const i of m.events)h.has(i.id)&&s.add(i.id)}return s}function pt(e,r,n,c,h){const s=new Map(e);if(n)for(const i of n)s.delete(i);const l=new Map;for(const i of r){if(h?.has(i.id))continue;const o=_e(i);let a=l.get(o);if(!a){const D=s.get(o);a={events:D?D.events.slice():[],eventIds:new Set(D?.eventIds??D?.events.map(I=>I.id)??[]),lastTs:D?.lastTs??0,changed:!1,needsSort:!1},l.set(o,a)}if(a.eventIds.has(i.id))continue;const b=a.events[a.events.length-1];b&&i.ts<b.ts&&(a.needsSort=!0),a.eventIds.add(i.id),a.events.push(i),a.lastTs=Math.max(a.lastTs,i.ts),a.changed=!0}for(const[i,o]of l)o.changed&&(o.needsSort&&o.events.sort((a,b)=>a.ts-b.ts),s.set(i,{events:o.events,eventIds:o.eventIds,lastTs:o.lastTs}));if(c!==void 0&&s.size>c){const i=Array.from(s.entries()).sort((o,a)=>a[1].lastTs-o[1].lastTs);for(let o=c;o<i.length;o++)s.delete(i[o][0])}let m=0;for(const i of s.values())m+=i.events.length;if(m>ke&&s.size>1){const i=Array.from(s.entries()).sort((o,a)=>a[1].lastTs-o[1].lastTs);for(let o=i.length-1;o>0&&m>ke;o--)m-=i[o][1].events.length,s.delete(i[o][0])}return s}function Et(e,r={}){const n=r.maxGroups,c=r.evictIdsRef,h=r.enabled??!0,s=t.useRef(new Map),l=t.useRef(new Set),m=t.useMemo(()=>{if(!h)return{events:e,evictions:new Set};const i=c&&c.current.size>0?new Set(c.current):void 0;l.current=vt(l.current,s.current,e,i),s.current=pt(s.current,e,i,n,l.current);for(const a of e)s.current.has(_e(a))||l.current.add(a.id);const o=[];for(const a of s.current.values())o.push(...a.events);return o.sort((a,b)=>a.ts-b.ts),{events:o,evictions:i}},[e,n,h,c]);return t.useEffect(()=>{if(c&&m.evictions)for(const i of m.evictions)c.current.delete(i)},[m,c]),m.events}export{yt as L,At as W,Rt as a,dt as f,Et as u};

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.