@uptimizr/dashboard 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/404.html +1 -1
- package/out/__next.__PAGE__.txt +2 -2
- package/out/__next._full.txt +3 -3
- package/out/__next._head.txt +1 -1
- package/out/__next._index.txt +2 -2
- package/out/__next._tree.txt +2 -2
- package/out/_next/static/chunks/0hol9-rsh00k6.js +3 -0
- package/out/_next/static/chunks/0ljf5zpstyrg7.js +1 -0
- package/out/_next/static/chunks/1i89ao_sm6o4o.js +1 -0
- package/out/_next/static/chunks/{2mleh3pbge181.js → 2t9zu9v_g9kr9.js} +1 -1
- package/out/_next/static/chunks/35f-9p5adh1sc.js +1 -0
- package/out/_next/static/chunks/3ef6upwlgr4q-.css +3 -0
- package/out/_not-found/__next._full.txt +2 -2
- package/out/_not-found/__next._head.txt +1 -1
- package/out/_not-found/__next._index.txt +2 -2
- package/out/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/out/_not-found/__next._not-found.txt +1 -1
- package/out/_not-found/__next._tree.txt +2 -2
- package/out/_not-found.html +1 -1
- package/out/_not-found.txt +2 -2
- package/out/index.html +1 -1
- package/out/index.txt +3 -3
- package/package.json +3 -3
- package/out/_next/static/chunks/1fruncg3k-3pu.js +0 -3
- package/out/_next/static/chunks/224_scesvd739.js +0 -1
- package/out/_next/static/chunks/2ktxjmx03u9l3.js +0 -1
- package/out/_next/static/chunks/2kw33jl_i9o5j.css +0 -3
- package/out/_next/static/chunks/30363ptka3vzy.js +0 -1
- /package/out/_next/static/{2AsIePMYsPfJoAl46w-g4 → W_AwLgpmWJNo9qUUBPat3}/_buildManifest.js +0 -0
- /package/out/_next/static/{2AsIePMYsPfJoAl46w-g4 → W_AwLgpmWJNo9qUUBPat3}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{2AsIePMYsPfJoAl46w-g4 → W_AwLgpmWJNo9qUUBPat3}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2348,2413,e=>{"use strict";let t=1/1.2;e.s(["ZOOM_IN_FACTOR",0,t,"ZOOM_OUT_FACTOR",0,1.2,"attachDoubleClickFocus",0,function(e,t,a){let n=()=>{let t=e.pick(e.pointerX,e.pointerY);t?.hit&&t.pickedPoint&&a.setTarget(t.pickedPoint)};return t.addEventListener("dblclick",n),()=>t.removeEventListener("dblclick",n)},"disableWheelZoom",0,function(e){e.inputs.removeByType("ArcRotateCameraMouseWheelInput")},"resetFocus",0,function(e,t){e.setTarget(t.target),e.alpha=t.alpha,e.beta=t.beta,e.radius=t.radius},"stepZoom",0,function(e,t){let a=e.lowerRadiusLimit??.01,n=e.upperRadiusLimit??1/0;e.radius=Math.min(n,Math.max(a,e.radius*t))}],2348);var a=e.i(28100);e.s(["ZoomButtons",0,function({onZoom:e,onReset:n}){let i="grid h-8 w-8 place-items-center rounded-md border border-edge bg-ink/80 text-lg leading-none text-fg backdrop-blur transition hover:bg-ink hover:text-white";return(0,a.jsxs)("div",{className:"absolute right-3 top-3 flex flex-col gap-1",children:[(0,a.jsx)("button",{type:"button","aria-label":"Zoom in",className:i,onClick:()=>e(t),children:"+"}),(0,a.jsx)("button",{type:"button","aria-label":"Zoom out",className:i,onClick:()=>e(1.2),children:"−"}),n?(0,a.jsx)("button",{type:"button","aria-label":"Reset camera focus to center",title:"Reset focus to center",className:i,onClick:n,children:(0,a.jsxs)("svg",{viewBox:"0 0 16 16",width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,a.jsx)("path",{d:"M8 1v2.5M8 12.5V15M1 8h2.5M12.5 8H15"})]})}):null]})}],2413)},25476,e=>{"use strict";e.s(["attachMeshHover",0,function(e,t,a){let n=0,i=null,s=t=>{let s=t.offsetX,r=t.offsetY;n||(n=requestAnimationFrame(()=>{var t,l;let o;n=0;let c=e.pick(s,r,e=>e.isPickable&&e.isEnabled()),u=c?.pickedMesh?(t=c.pickedMesh,l=c.thinInstanceIndex??-1,(o=t.metadata)?l>=0&&o.hoverLabels?o.hoverLabels[l]??null:o.hoverLabel??null:null):null;u?a({label:u,x:s,y:r}):null!==i&&a(null),i=u}))},r=()=>{n&&(cancelAnimationFrame(n),n=0),null!==i&&(i=null,a(null))};return t.addEventListener("pointermove",s),t.addEventListener("pointerleave",r),()=>{t.removeEventListener("pointermove",s),t.removeEventListener("pointerleave",r),n&&cancelAnimationFrame(n)}}])},48939,e=>{"use strict";var t=e.i(28100),a=e.i(11623);function n(e){return Number.isNaN(e)||e<0?0:e>1?1:e}function i(e){let t=n(e),a=[[0,.1,.9],[0,.85,1],[.1,.9,.2],[1,.85,0],[1,.15,0],[1,1,1]],i=a.length-1,s=t*i,r=Math.min(Math.floor(s),i-1),l=s-r,o=a[r],c=a[r+1];return o&&c?[o[0]+(c[0]-o[0])*l,o[1]+(c[1]-o[1])*l,o[2]+(c[2]-o[2])*l]:[1,1,1]}var s=e.i(56054),r=e.i(2348),l=e.i(25476),o=e.i(18637),c=e.i(2413);e.s(["CameraDome3DView",0,function({bins:u,gridSize:h}){let d=(0,a.useRef)(null),m=(0,a.useRef)(null),p=(0,a.useRef)(null),[b,g]=(0,a.useState)("loading"),[f,x]=(0,a.useState)(null),[v,w]=(0,a.useState)("markers"),[k,j]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let t=d.current;if(!t)return;if(0===u.length)return void g("empty");let a=!1,o=null;return g("loading"),x(null),(async()=>{try{let[{Engine:c},{Scene:d},{ArcRotateCamera:b},{HemisphericLight:f},{Vector3:x,Color3:w,Color4:k,Matrix:y},{MeshBuilder:M},{StandardMaterial:z},{Mesh:C},{DynamicTexture:_}]=await Promise.all([e.A(3905),e.A(94432),e.A(59694),e.A(88004),e.A(27940),e.A(27124),e.A(14074),e.A(2213),e.A(15002),e.A(35983),e.A(18561)]);if(a)return;let A=new c(t,!0,{preserveDrawingBuffer:!1}),L=new d(A);L.clearColor=new k(.04,.05,.07,1);let I=x.Zero(),S=new b("dome-cam",Math.PI/3,Math.PI/2.4,3.6,I,L);S.attachControl(t,!0),S.lowerRadiusLimit=1.6,S.upperRadiusLimit=8,(0,r.disableWheelZoom)(S),m.current=S,p.current={target:I,alpha:S.alpha,beta:S.beta,radius:S.radius},new f("dome-light",new x(.3,1,.2),L);let E=M.CreateSphere("dome",{diameter:2,segments:20},L),P=new z("dome-mat",L);P.wireframe=!0,P.disableLighting=!0,P.emissiveColor=new w(.16,.2,.28),P.alpha=.5,E.material=P,E.isPickable=!1;let T=[];for(let e=0;e<=64;e++){let t=e/64*Math.PI*2;T.push(new x(Math.cos(t),0,Math.sin(t)))}let R=M.CreateLines("dome-horizon",{points:T},L);R.color=new w(.3,.36,.46),R.isPickable=!1;let $=M.CreateLines("dome-forward",{points:[x.Zero(),new x(1.25,0,0)]},L);$.color=new w(.4,.7,.95),$.isPickable=!1;let B=u.reduce((e,t)=>Math.max(e,t.count),1),N=h>0?h:1;if("markers"===v){let e=M.CreateBox("dome-marker",{size:1},L),t=new z("dome-marker-mat",L);t.disableLighting=!0,t.emissiveColor=w.White(),t.specularColor=new w(0,0,0),e.material=t,e.isPickable=!0,e.thinInstanceEnablePicking=!0;let a=u.length,n=new Float32Array(16*a),i=new Float32Array(4*a),r=Array(a);for(let e=0;e<a;e++){let t=u[e],a=(t.azimuth_bin+.5)/N*Math.PI*2-Math.PI,l=(t.elevation_bin+.5)/N*Math.PI-Math.PI/2,o=Math.cos(l),c=o*Math.cos(a),h=Math.sin(l),d=o*Math.sin(a),m=t.count/B,p=.03+.12*m;y.Scaling(p,p,p).multiply(y.Translation(c,h,d)).copyToArray(n,16*e);let[b,g,f]=(0,s.heatRgb)(m);i[4*e]=b,i[4*e+1]=g,i[4*e+2]=f,i[4*e+3]=1,r[e]=`dir (${t.azimuth_bin}, ${t.elevation_bin}) \xb7 ${t.count}`}e.thinInstanceSetBuffer("matrix",n,16,!0),e.thinInstanceSetBuffer("color",i,4,!0),e.metadata={hoverLabels:r}}else{let e=function(e,t={}){let a=void 0!==t.width&&t.width>0?Math.floor(t.width):256,s=void 0!==t.height&&t.height>0?Math.floor(t.height):Math.max(1,Math.floor(a/2)),r=t.colorRamp??i,l=void 0!==t.blurBins&&t.blurBins>0?t.blurBins:1.5,o=n(t.alphaFloor??0),c=n(t.opacity??1),u=e.gridSize>0?e.gridSize:1,h=new Uint8ClampedArray(a*s*4),d=e.bins.filter(e=>e.count>0);if(0===d.length)return{width:a,height:s,rgba:h};let m=Math.max(1e-4,Math.PI/u*l),p=2*m*m,b=Math.cos(Math.min(Math.PI,3*m)),g=d.map(e=>{var t,a;let n,[i,s]=(t=e.azimuthBin,a=e.elevationBin,[(t+.5)/u*Math.PI*2-Math.PI,(a+.5)/u*Math.PI-Math.PI/2]);return[(n=Math.cos(s))*Math.cos(i),Math.sin(s),n*Math.sin(i)]}),f=new Float32Array(a*s),x=0;for(let e=0;e<s;e++){let t=Math.PI/2-(e+.5)/s*Math.PI,n=Math.cos(t),i=Math.sin(t);for(let t=0;t<a;t++){let s=(t+.5)/a*Math.PI*2-Math.PI,r=n*Math.cos(s),l=n*Math.sin(s),o=0;for(let e=0;e<d.length;e++){let t=g[e],a=r*t[0]+i*t[1]+l*t[2];if(a<b)continue;let n=Math.acos(a>1?1:a<-1?-1:a);o+=d[e].count*Math.exp(-(n*n)/p)}f[e*a+t]=o,o>x&&(x=o)}}if(x<=0)return{width:a,height:s,rgba:h};for(let e=0;e<f.length;e++){let t=n(f[e]/x),[a,i,s]=r(t),l=(o+(1-o)*t)*c,u=4*e;h[u]=Math.round(255*a),h[u+1]=Math.round(255*i),h[u+2]=Math.round(255*s),h[u+3]=Math.round(255*n(l))}return{width:a,height:s,rgba:h}}({bins:u.map(e=>({azimuthBin:e.azimuth_bin,elevationBin:e.elevation_bin,count:e.count})),gridSize:N},{width:256,blurBins:1.5,opacity:.95}),t=new _("dome-skytex",{width:e.width,height:e.height},L,!1);t.hasAlpha=!0;let a=t.getContext(),s=a.createImageData(e.width,e.height);s.data.set(e.rgba),a.putImageData(s,0,0),t.update();let r=M.CreateSphere("dome-sky",{diameter:2,segments:48,sideOrientation:C.DOUBLESIDE},L),l=new z("dome-sky-mat",L);l.disableLighting=!0,l.emissiveColor=w.White(),l.diffuseColor=new w(0,0,0),l.specularColor=new w(0,0,0),l.emissiveTexture=t,l.opacityTexture=t,l.backFaceCulling=!1,r.material=l,r.isPickable=!1}A.runRenderLoop(()=>L.render());let F=()=>A.resize();window.addEventListener("resize",F);let q=(0,l.attachMeshHover)(L,t,j),D=(0,r.attachDoubleClickFocus)(L,t,S);g("ready"),o=()=>{window.removeEventListener("resize",F),q(),D(),j(null),m.current=null,p.current=null,L.dispose(),A.dispose()}}catch(e){if(a)return;g("error"),x(e instanceof Error?e.message:"Failed to render dome.")}})(),()=>{a=!0,o?.()}},[u,h,v]),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("canvas",{ref:d,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),k?(0,t.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-[16rem] truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:k.x+12,top:k.y+12},children:k.label}):null,"ready"===b?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute left-3 top-3 flex overflow-hidden rounded-md border border-edge bg-ink/80 text-xs backdrop-blur",children:["markers","skydome"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>w(e),className:`px-2.5 py-1 ${v===e?"bg-fg/15 font-medium text-white":"text-fg-muted hover:text-fg"}`,children:"markers"===e?"Markers":"Skydome"},e))}),(0,t.jsx)(c.ZoomButtons,{onZoom:e=>m.current&&(0,r.stepZoom)(m.current,e),onReset:()=>m.current&&p.current&&(0,r.resetFocus)(m.current,p.current)}),(0,t.jsx)(o.HeatLegend,{title:"Gaze density",lowLabel:"rarely",highLabel:"most-viewed",note:"markers"===v?"Each marker is a look-direction (camera forward). Blue line = forward, ring = horizon. Color & size scale with how often that direction was viewed.":"Continuous equirectangular heat field: the same gaze bins splatted into a smooth thermal texture wrapped on the dome. The in-scene SDK overlay (showGazeSkydome) renders this inward so you can stand inside it in WebXR."})]}):(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===b?"Rendering…":"empty"===b?"No camera samples in range.":"error"===b?f??"Dome unavailable.":null})]})}],48939)},53993,e=>{"use strict";var t=e.i(28100),a=e.i(11623),n=e.i(56054),i=e.i(2348),s=e.i(25476),r=e.i(18637),l=e.i(2413);function o({shape:e,onChange:a}){let n=e=>`h-8 px-2.5 text-xs font-medium leading-none transition first:rounded-l-md last:rounded-r-md ${e?"bg-ink text-white":"bg-ink/80 text-fg hover:text-white"}`,i="sphere"===e,s="cube"===e;return(0,t.jsxs)("div",{className:"absolute left-3 top-3 flex overflow-hidden rounded-md border border-edge backdrop-blur",role:"group","aria-label":"Voxel marker shape",children:[(0,t.jsx)("button",{type:"button",className:n(i),"aria-pressed":i,onClick:()=>a("sphere"),children:"Spheres"}),(0,t.jsx)("button",{type:"button",className:n(s),"aria-pressed":s,onClick:()=>a("cube"),children:"Cubes"})]})}e.s(["WorldHeatmap3DView",0,function({voxels:c,cellSize:u,proxyMeshes:h=[],legendTitle:d="Pointer-hit density",legendLow:m="few hits",legendHigh:p="most hits",legendNote:b="Each marker is a voxel where the pointer hit your scene. Color & size scale with hits, normalized to the 95th-percentile cell so a few hotspots don't wash out the rest.",emptyLabel:g="No 3D hit-points in range.",totals:f,voxelLabels:x}){let v=(0,a.useRef)(null),w=(0,a.useRef)(null),k=(0,a.useRef)(null),[j,y]=(0,a.useState)("loading"),[M,z]=(0,a.useState)(null),[C,_]=(0,a.useState)("sphere"),[A,L]=(0,a.useState)(null);(0,a.useEffect)(()=>{let t=v.current;if(!t)return;if(0===c.length&&0===h.length)return void y("empty");let a=!1,r=null;return y("loading"),z(null),(async()=>{try{let[{Engine:l},{Scene:o},{ArcRotateCamera:d},{HemisphericLight:m},{Vector3:p,Color3:b,Color4:g,Matrix:f},{MeshBuilder:v},{StandardMaterial:j}]=await Promise.all([e.A(3905),e.A(94432),e.A(59694),e.A(88004),e.A(27940),e.A(27124),e.A(14074),e.A(35983),e.A(18561)]);if(a)return;let M=(0,n.percentileMax)(c.map(e=>e.count),.95),z=0,_=0,A=0,I=0;for(let e of c)z+=(e.vx+.5)*u,_+=(e.vy+.5)*u,A+=(e.vz+.5)*u,I++;if(0===I)for(let e of h)z+=(e.aabb[0]+e.aabb[3])/2,_+=(e.aabb[1]+e.aabb[4])/2,A+=(e.aabb[2]+e.aabb[5])/2,I++;let S=new p(z/I,_/I,A/I),E=4*u;for(let e of c){let t=(e.vx+.5)*u-S.x,a=(e.vy+.5)*u-S.y,n=(e.vz+.5)*u-S.z;E=Math.max(E,Math.sqrt(t*t+a*a+n*n))}for(let e of h){let t=(e.aabb[0]+e.aabb[3])/2-S.x,a=(e.aabb[1]+e.aabb[4])/2-S.y,n=(e.aabb[2]+e.aabb[5])/2-S.z;E=Math.max(E,Math.sqrt(t*t+a*a+n*n))}let P=new l(t,!0,{preserveDrawingBuffer:!1}),T=new o(P);T.clearColor=new g(.04,.05,.07,1);let R=new d("world-cam",Math.PI/4,Math.PI/3,2.4*E,S,T);if(R.attachControl(t,!0),(0,i.disableWheelZoom)(R),w.current=R,k.current={target:S,alpha:R.alpha,beta:R.beta,radius:R.radius},new m("world-light",new p(.4,1,.3),T),h.length>0){let e=v.CreateBox("scene-proxy",{size:1},T),t=new j("scene-proxy-mat",T);t.wireframe=!0,t.disableLighting=!0,t.emissiveColor=new b(.32,.4,.52),t.alpha=.35,e.material=t,e.isPickable=!0,e.thinInstanceEnablePicking=!0,e.metadata={hoverLabels:h.map(e=>e.name)};let a=h.length,n=new Float32Array(16*a);for(let e=0;e<a;e++){let t=h[e].aabb,a=Math.max(t[3]-t[0],.001),i=Math.max(t[4]-t[1],.001),s=Math.max(t[5]-t[2],.001);f.Scaling(a,i,s).multiply(f.Translation((t[0]+t[3])/2,(t[1]+t[4])/2,(t[2]+t[5])/2)).copyToArray(n,16*e)}e.thinInstanceSetBuffer("matrix",n,16,!0)}if(c.length>0){let e="cube"===C?v.CreateBox("world-voxel",{size:.9*u},T):v.CreateSphere("world-voxel",{diameter:.9*u,segments:6},T),t=new j("world-voxel-mat",T);t.diffuseColor=new b(1,1,1),t.specularColor=new b(0,0,0),e.material=t,x&&(e.isPickable=!0,e.thinInstanceEnablePicking=!0,e.metadata={hoverLabels:x});let a=c.length,i=new Float32Array(16*a),s=new Float32Array(4*a),r=new Float32Array(a),l=Math.max(.02*E,.25*u)/(.9*u);for(let e=0;e<a;e++){let t=c[e],a=Math.min(1,t.count/M),o=l*(.5+.5*a);r[e]=o,f.Scaling(o,o,o).multiply(f.Translation((t.vx+.5)*u,(t.vy+.5)*u,(t.vz+.5)*u)).copyToArray(i,16*e);let[h,d,m]=(0,n.heatRgb)(a);s[4*e]=h,s[4*e+1]=d,s[4*e+2]=m,s[4*e+3]=1}e.thinInstanceSetBuffer("matrix",i,16,!1),e.thinInstanceSetBuffer("color",s,4,!0);let o=R.radius,h=0,d=()=>{let t=Math.min(8,Math.max(.6,R.radius/o));if(!(.01>Math.abs(t-h))){h=t;for(let e=0;e<a;e++){let a=r[e]*t,n=16*e;i[n]=a,i[n+5]=a,i[n+10]=a}e.thinInstanceBufferUpdated("matrix")}};d(),T.onBeforeRenderObservable.add(d)}P.runRenderLoop(()=>T.render());let $=()=>P.resize();window.addEventListener("resize",$);let B=(0,s.attachMeshHover)(T,t,L),N=(0,i.attachDoubleClickFocus)(T,t,R);y("ready"),r=()=>{window.removeEventListener("resize",$),B(),N(),L(null),w.current=null,k.current=null,T.dispose(),P.dispose()}}catch(e){if(a)return;y("error"),z(e instanceof Error?e.message:"Failed to render heatmap.")}})(),()=>{a=!0,r?.()}},[c,u,h,C,x]);let I=f?f.cells>c.length?` Showing the ${c.length.toLocaleString()} busiest of ${f.cells.toLocaleString()} occupied cells (${f.hits.toLocaleString()} total hits).`:` ${f.cells.toLocaleString()} occupied cells, ${f.hits.toLocaleString()} total hits.`:"";return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("canvas",{ref:v,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),A?(0,t.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-[16rem] truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:A.x+12,top:A.y+12},children:A.label}):null,"ready"===j?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o,{shape:C,onChange:_}),(0,t.jsx)(l.ZoomButtons,{onZoom:e=>w.current&&(0,i.stepZoom)(w.current,e),onReset:()=>w.current&&k.current&&(0,i.resetFocus)(w.current,k.current)}),(0,t.jsx)(r.HeatLegend,{title:d,lowLabel:m,highLabel:p,note:b+I})]}):(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===j?"Rendering…":"empty"===j?g:"error"===j?M??"Heatmap unavailable.":null})]})}])},39592,e=>{"use strict";var t=e.i(28100),a=e.i(11623),n=e.i(56054),i=e.i(2348),s=e.i(25476),r=e.i(2413);function l(e){let t=Math.min(1,Math.max(0,e));return[.118+(.22-.118)*t,.227+.513*t,.541+(.97-.541)*t]}function o(e){return`${e.vx}|${e.vy}|${e.vz}`}function c({mode:e}){return(0,t.jsxs)("div",{className:"absolute bottom-3 right-3 max-w-72 rounded-md border border-edge bg-ink/80 px-2 py-1.5 text-xs text-fg backdrop-blur",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-sm bg-[#38bdf8]"}),"divergence"===e?"Gaze-heavy":"Gaze"]}),(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-sm bg-[#f4c84b]"}),"divergence"===e?"Click-heavy":"Clicks"]})]}),(0,t.jsx)("p",{className:"mt-1 text-fg-muted",children:"divergence"===e?"Per-voxel normalized difference: which signal dominates each cell. Color & size scale with the gap.":"Gaze = where viewers looked; Clicks = where they acted. Cells with gaze but no clicks are looked-at but un-acted-on."})]})}function u({active:e,onClick:a,children:n}){return(0,t.jsx)("button",{type:"button",onClick:a,className:`rounded px-2 py-0.5 font-medium transition ${e?"bg-amber text-ink":"text-fg-muted hover:text-fg"}`,children:n})}e.s(["GazeClickDivergence3DView",0,function({gazeVoxels:h,clickVoxels:d,cellSize:m,proxyMeshes:p=[]}){let b=(0,a.useRef)(null),g=(0,a.useRef)(null),f=(0,a.useRef)(null),[x,v]=(0,a.useState)("loading"),[w,k]=(0,a.useState)(null),[j,y]=(0,a.useState)("overlay"),[M,z]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let t=b.current;if(!t)return;if(0===h.length&&0===d.length&&0===p.length)return void v("empty");let a=!1,r=null;return v("loading"),k(null),(async()=>{try{let[{Engine:c},{Scene:u},{ArcRotateCamera:b},{HemisphericLight:x},{Vector3:w,Color3:k,Color4:y,Matrix:M},{MeshBuilder:C},{StandardMaterial:_}]=await Promise.all([e.A(3905),e.A(94432),e.A(59694),e.A(88004),e.A(27940),e.A(27124),e.A(14074),e.A(35983),e.A(18561)]);if(a)return;let A=h.reduce((e,t)=>Math.max(e,t.count),1),L=d.reduce((e,t)=>Math.max(e,t.count),1),I=[...h,...d],S=0,E=0,P=0,T=0;for(let e of I)S+=(e.vx+.5)*m,E+=(e.vy+.5)*m,P+=(e.vz+.5)*m,T++;if(0===T)for(let e of p)S+=(e.aabb[0]+e.aabb[3])/2,E+=(e.aabb[1]+e.aabb[4])/2,P+=(e.aabb[2]+e.aabb[5])/2,T++;let R=new w(S/T,E/T,P/T),$=4*m;for(let e of I){let t=(e.vx+.5)*m-R.x,a=(e.vy+.5)*m-R.y,n=(e.vz+.5)*m-R.z;$=Math.max($,Math.sqrt(t*t+a*a+n*n))}for(let e of p){let t=(e.aabb[0]+e.aabb[3])/2-R.x,a=(e.aabb[1]+e.aabb[4])/2-R.y,n=(e.aabb[2]+e.aabb[5])/2-R.z;$=Math.max($,Math.sqrt(t*t+a*a+n*n))}let B=new c(t,!0,{preserveDrawingBuffer:!1}),N=new u(B);N.clearColor=new y(.04,.05,.07,1);let F=new b("divergence-cam",Math.PI/4,Math.PI/3,2.4*$,R,N);if(F.attachControl(t,!0),(0,i.disableWheelZoom)(F),g.current=F,f.current={target:R,alpha:F.alpha,beta:F.beta,radius:F.radius},new x("divergence-light",new w(.4,1,.3),N),p.length>0){let e=C.CreateBox("scene-proxy",{size:1},N),t=new _("scene-proxy-mat",N);t.wireframe=!0,t.disableLighting=!0,t.emissiveColor=new k(.32,.4,.52),t.alpha=.35,e.material=t,e.isPickable=!0,e.thinInstanceEnablePicking=!0,e.metadata={hoverLabels:p.map(e=>e.name)};let a=p.length,n=new Float32Array(16*a);for(let e=0;e<a;e++){let t=p[e].aabb,a=Math.max(t[3]-t[0],.001),i=Math.max(t[4]-t[1],.001),s=Math.max(t[5]-t[2],.001);M.Scaling(a,i,s).multiply(M.Translation((t[0]+t[3])/2,(t[1]+t[4])/2,(t[2]+t[5])/2)).copyToArray(n,16*e)}e.thinInstanceSetBuffer("matrix",n,16,!0)}let q=Math.max(.02*$,.25*m)/(.9*m),D=(e,t,a,n,i)=>{if(0===t.length)return;let s=C.CreateSphere(e,{diameter:.9*m,segments:6},N),r=new _(`${e}-mat`,N);r.diffuseColor=new k(1,1,1),r.specularColor=new k(0,0,0),s.material=r,s.metadata={hoverLabel:i};let l=t.length,o=new Float32Array(16*l),c=new Float32Array(4*l);for(let e=0;e<l;e++){let i=t[e],s=i.count/a,r=q*(.5+.5*s);M.Scaling(r,r,r).multiply(M.Translation((i.vx+.5)*m,(i.vy+.5)*m,(i.vz+.5)*m)).copyToArray(o,16*e);let[l,u,h]=n(s);c[4*e]=l,c[4*e+1]=u,c[4*e+2]=h,c[4*e+3]=1}s.thinInstanceSetBuffer("matrix",o,16,!1),s.thinInstanceSetBuffer("color",c,4,!0)};if("divergence"===j){let e=new Map(h.map(e=>[o(e),e])),t=new Map(d.map(e=>[o(e),e])),a=new Set([...e.keys(),...t.keys()]),i=[],s=[];for(let n of a){let a=(e.get(n)?.count??0)/A,r=(t.get(n)?.count??0)/L,l=t.get(n)??e.get(n),o=r-a,c={vx:l.vx,vy:l.vy,vz:l.vz,count:1e3*Math.abs(o)};(o>=0?i:s).push(c)}D("div-click",i,1e3,n.heatRgb,"Click-heavy"),D("div-gaze",s,1e3,l,"Gaze-heavy")}else("overlay"===j||"gaze"===j)&&D("gaze-voxel",h,A,l,"Gaze"),("overlay"===j||"click"===j)&&D("click-voxel",d,L,n.heatRgb,"Click");B.runRenderLoop(()=>N.render());let O=()=>B.resize();window.addEventListener("resize",O);let Z=(0,s.attachMeshHover)(N,t,z),V=(0,i.attachDoubleClickFocus)(N,t,F);v("ready"),r=()=>{window.removeEventListener("resize",O),Z(),V(),z(null),g.current=null,f.current=null,N.dispose(),B.dispose()}}catch(e){if(a)return;v("error"),k(e instanceof Error?e.message:"Failed to render overlay.")}})(),()=>{a=!0,r?.()}},[h,d,m,p,j]),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("canvas",{ref:b,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),M?(0,t.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-64 truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:M.x+12,top:M.y+12},children:M.label}):null,"ready"===x?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"absolute left-3 top-3 flex items-center gap-1 rounded-md border border-edge bg-ink/80 p-0.5 text-xs backdrop-blur",children:[(0,t.jsx)(u,{active:"overlay"===j,onClick:()=>y("overlay"),children:"Overlay"}),(0,t.jsx)(u,{active:"gaze"===j,onClick:()=>y("gaze"),children:"Gaze"}),(0,t.jsx)(u,{active:"click"===j,onClick:()=>y("click"),children:"Clicks"}),(0,t.jsx)(u,{active:"divergence"===j,onClick:()=>y("divergence"),children:"Divergence"})]}),(0,t.jsx)(r.ZoomButtons,{onZoom:e=>g.current&&(0,i.stepZoom)(g.current,e),onReset:()=>g.current&&f.current&&(0,i.resetFocus)(g.current,f.current)}),(0,t.jsx)(c,{mode:j})]}):(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===x?"Rendering…":"empty"===x?"No gaze or click hit-points in range. Enable gaze + pointer capture in the SDK.":"error"===x?w??"Overlay unavailable.":null})]})}])},19399,e=>{"use strict";var t=e.i(28100),a=e.i(11623),n=e.i(20880);let i="__other_sp__",s="__other_mesh__";function r(e){return`${e[0]}|${e[1]}|${e[2]}`}function l(e,t){return t<=1?0:1.4-e/(t-1)*2.8}var o=e.i(56054),c=e.i(2348),u=e.i(25476),h=e.i(18637),d=e.i(2413);let m="__all__",p={maxStandpoints:6,maxMeshes:10,maxRibbons:70};function b(e,t){return`${e}|${t}`}function g({label:e,value:a,onChange:n,allLabel:i,options:s}){return(0,t.jsxs)("label",{className:"flex items-center gap-1.5 rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg backdrop-blur",children:[(0,t.jsx)("span",{className:"font-medium text-fg-muted",children:e}),(0,t.jsxs)("select",{className:"max-w-[12rem] bg-transparent text-white outline-none",value:a,onChange:e=>n(e.target.value),children:[(0,t.jsx)("option",{value:m,children:i}),s.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))]})]})}function f({active:e,onClick:a,children:n,disabled:i=!1,title:s}){return(0,t.jsx)("button",{type:"button",onClick:a,disabled:i,title:s,className:`rounded px-2 py-0.5 font-medium transition ${i?"cursor-not-allowed text-fg-muted/40":e?"bg-amber text-ink":"text-fg-muted hover:text-fg"}`,children:n})}function x({standpoints:e,proxyMeshes:n,selectedKey:i,onSelect:s}){let r=(0,a.useRef)(null),l=(0,a.useMemo)(()=>e.filter(e=>e.origin),[e]),o=(0,a.useMemo)(()=>{let e=1/0,t=-1/0,a=1/0,i=-1/0,s=(n,s)=>{e=Math.min(e,n),t=Math.max(t,n),a=Math.min(a,s),i=Math.max(i,s)};for(let e of n)s(e.aabb[0],e.aabb[2]),s(e.aabb[3],e.aabb[5]);for(let e of l)s(e.origin[0],e.origin[2]);return Number.isFinite(e)?(t-e<.001&&(e-=1,t+=1),i-a<.001&&(a-=1,i+=1),{minX:e,maxX:t,minZ:a,maxZ:i}):{minX:-1,maxX:1,minZ:-1,maxZ:1}},[n,l]),c=(0,a.useMemo)(()=>{let e=Math.min(134/(o.maxX-o.minX),94/(o.maxZ-o.minZ));return(t,a)=>[8+(t-o.minX)*e,8+(a-o.minZ)*e]},[o]),u=(0,a.useMemo)(()=>l.reduce((e,t)=>Math.max(e,t.count),1),[l]);return(0,a.useEffect)(()=>{let e=r.current,t=e?.getContext("2d");if(!t)return;let a=window.devicePixelRatio||1;for(let i of(e.width=150*a,e.height=110*a,t.setTransform(a,0,0,a,0,0),t.clearRect(0,0,150,110),t.fillStyle="rgba(8,10,14,0.85)",t.fillRect(0,0,150,110),t.strokeStyle="rgba(120,140,170,0.35)",t.lineWidth=1,n)){let[e,a]=c(i.aabb[0],i.aabb[2]),[n,s]=c(i.aabb[3],i.aabb[5]);t.strokeRect(Math.min(e,n),Math.min(a,s),Math.abs(n-e),Math.abs(s-a))}for(let e of l){let[a,n]=c(e.origin[0],e.origin[2]),s=2+e.count/u*4,r=e.key===i;t.beginPath(),t.arc(a,n,s,0,2*Math.PI),t.fillStyle=r?"rgba(242,115,242,1)":"rgba(242,115,242,0.55)",t.fill(),r&&(t.beginPath(),t.arc(a,n,s+2.5,0,2*Math.PI),t.strokeStyle="rgba(255,255,255,0.9)",t.lineWidth=1.5,t.stroke())}},[n,l,c,u,i]),(0,t.jsxs)("div",{className:"absolute right-3 top-3 rounded-md border border-edge bg-ink/80 p-1 backdrop-blur",children:[(0,t.jsx)("div",{className:"px-1 pb-0.5 text-[10px] font-medium text-fg-muted",children:"Standpoints (top view)"}),(0,t.jsx)("canvas",{ref:r,className:"h-27.5 w-37.5 cursor-pointer rounded",onClick:e=>{let t=r.current;if(!t||0===l.length)return;let a=t.getBoundingClientRect(),n=(e.clientX-a.left)/a.width*150,i=(e.clientY-a.top)/a.height*110,o=null,u=1/0;for(let e of l){let[t,a]=c(e.origin[0],e.origin[2]),s=(t-n)**2+(a-i)**2;s<u&&(u=s,o=e)}o&&u<=196&&s(o.key)}})]})}e.s(["FlowSankey3DView",0,function({links:v,gridSize:w,proxyMeshes:k=[],maxLinks:j=80,baseUrl:y,apiKey:M,flowQuery:z,hasFirstPerson:C=!1}){let _=(0,a.useRef)(null),A=(0,a.useRef)(null),L=(0,a.useRef)(null),[I,S]=(0,a.useState)("loading"),[E,P]=(0,a.useState)(null),[T,R]=(0,a.useState)(m),[$,B]=(0,a.useState)(m),[N,F]=(0,a.useState)(m),[q,D]=(0,a.useState)("aggregate"),[O,Z]=(0,a.useState)(null),[V,W]=(0,a.useState)("all"),[H,K]=(0,a.useState)(v),U=!!(y&&z),G=(0,a.useMemo)(()=>z?JSON.stringify(z):"",[z]),Y=(0,a.useRef)(!1);(0,a.useEffect)(()=>{!Y.current&&C&&(W("first-person"),Y.current=!0)},[C]),(0,a.useEffect)(()=>{C&&"viewer"===V&&W("first-person")},[C,V]),(0,a.useEffect)(()=>{U||K(v)},[v,U]),(0,a.useEffect)(()=>{if(!y||!z)return;let e=!1,t=new n.CollectorApi(y,M??""),a="all"===V?void 0:V;return t.flowHeatmap({...z,bins:w,limit:400,groupByOrigin:!0,cameraMode:a}).then(t=>{e||K(t)}).catch(()=>{e||K([])}),()=>{e=!0}},[y,M,G,V,w]);let X=(0,a.useMemo)(()=>{let e=new Map;for(let t of H){if(!t.originVoxel)continue;let a=r(t.originVoxel),n=t.origin,i=e.get(a);i?(i.count+=t.count,n&&(i.ox+=n[0]*t.count,i.oy+=n[1]*t.count,i.oz+=n[2]*t.count,i.wsum+=t.count)):e.set(a,{key:a,voxel:t.originVoxel,count:t.count,ox:n?n[0]*t.count:0,oy:n?n[1]*t.count:0,oz:n?n[2]*t.count:0,wsum:n?t.count:0})}return[...e.values()].map(e=>({key:e.key,voxel:e.voxel,count:e.count,origin:e.wsum>0?[e.ox/e.wsum,e.oy/e.wsum,e.oz/e.wsum]:void 0})).sort((e,t)=>t.count-e.count)},[H]),J=X.length>0,Q=(0,a.useMemo)(()=>N===m?null:X.find(e=>e.key===N)??null,[X,N]),ee=(0,a.useMemo)(()=>(function(e,t,a,n){let o=e.filter(e=>e.originVoxel);if(0===o.length)return{standpoints:[],gazes:[],meshes:[],ribbons:[],maxCount:1};let c=t.slice(0,Math.max(1,n.maxStandpoints)),u=new Set(c.map(e=>e.key)),h=e=>{let t=e.originVoxel?r(e.originVoxel):i;return u.has(t)?t:i},d=new Map;for(let e of o)d.set(e.mesh,(d.get(e.mesh)??0)+e.count);let m=new Set([...d.entries()].sort((e,t)=>t[1]-e[1]).slice(0,Math.max(1,n.maxMeshes)).map(([e])=>e)),p=e=>m.has(e)?e:s,b=new Map;for(let e of o){let t=h(e),a=p(e.mesh),n=`${t}|${e.azimuth_bin}|${e.elevation_bin}|${a}`,i=b.get(n);i?i.count+=e.count:b.set(n,{standpointId:t,gazeId:`${t}|${e.azimuth_bin}|${e.elevation_bin}`,meshId:a,azimuthBin:e.azimuth_bin,elevationBin:e.elevation_bin,count:e.count})}let g=[...b.values()].sort((e,t)=>t.count-e.count),f=g.slice(0,Math.max(1,n.maxRibbons)),x=g.slice(Math.max(1,n.maxRibbons));if(x.length>0){let e=new Map(f.map(e=>[`${e.standpointId}|${e.azimuthBin}|${e.elevationBin}|${s}`,e]));for(let t of x){let a=`${t.standpointId}|${t.azimuthBin}|${t.elevationBin}|${s}`,n=e.get(a);if(n)n.count+=t.count;else{let n={standpointId:t.standpointId,gazeId:t.gazeId,meshId:s,azimuthBin:t.azimuthBin,elevationBin:t.elevationBin,count:t.count};e.set(a,n),f.push(n)}}}let v=new Set(f.map(e=>e.standpointId)),w=new Set(f.map(e=>e.meshId)),k=[...c.filter(e=>v.has(e.key)).map(e=>e.key),...v.has(i)?[i]:[]],j=k.map((e,t)=>{let a=c.find(t=>t.key===e),n=f.filter(t=>t.standpointId===e).reduce((e,t)=>e+t.count,0);return{id:e,kind:"standpoint",pos:[-2.6,l(t,k.length),0],count:n,label:a?`[${a.voxel[0]}, ${a.voxel[1]}, ${a.voxel[2]}]`:"Other standpoints",isOther:e===i}}),y=new Map(j.map(e=>[e.id,e.pos[1]])),M=new Map;for(let e of f)M.set(e.meshId,(M.get(e.meshId)??0)+e.count);let z=[...w].sort((e,t)=>(M.get(t)??0)-(M.get(e)??0));z.sort((e,t)=>(e===s)-(t===s));let C=z.map((e,t)=>({id:e,kind:"mesh",pos:[2.6,l(t,z.length),0],count:M.get(e)??0,label:e===s?"Other meshes":e,isOther:e===s})),_=new Map;for(let e of f){let t=_.get(e.gazeId);t?t.count+=e.count:_.set(e.gazeId,{az:e.azimuthBin,el:e.elevationBin,sp:e.standpointId,count:e.count})}let A=[..._.entries()].map(([e,t])=>{let n=y.get(t.sp)??0,i=(t.az+.5)/a-.5;return{id:e,kind:"gaze",pos:[0,n+((t.el+.5)/a-.5)*.85,1.6*i],count:t.count,label:`(${t.az}, ${t.el})`,isOther:!1}}),L=f.reduce((e,t)=>Math.max(e,t.count),1);return{standpoints:j,gazes:A,meshes:C,ribbons:f,maxCount:L}})(H,X,w,p),[H,X,w]),et="twostage"===q&&J;(0,a.useEffect)(()=>{"twostage"!==q||J||D("aggregate")},[q,J]);let ea=(0,a.useMemo)(()=>{if(N!==m&&J)return H.filter(e=>e.originVoxel&&r(e.originVoxel)===N);if(!J)return H;let e=new Map;for(let t of H){let a=`${t.azimuth_bin}|${t.elevation_bin}|${t.mesh}`,n=e.get(a);n?n.count+=t.count:e.set(a,{azimuth_bin:t.azimuth_bin,elevation_bin:t.elevation_bin,mesh:t.mesh,count:t.count})}return[...e.values()]},[H,N,J]),en=(0,a.useMemo)(()=>[...ea].sort((e,t)=>t.count-e.count).slice(0,Math.max(1,j)),[ea,j]),ei=(0,a.useMemo)(()=>{let e=new Map;for(let t of en)e.set(t.mesh,(e.get(t.mesh)??0)+t.count);return[...e.entries()].sort((e,t)=>t[1]-e[1])},[en]),es=(0,a.useMemo)(()=>{let e=new Map;for(let t of en){let a=b(t.azimuth_bin,t.elevation_bin),n=e.get(a);n?n.count+=t.count:e.set(a,{azimuthBin:t.azimuth_bin,elevationBin:t.elevation_bin,count:t.count})}return[...e.values()].sort((e,t)=>t.count-e.count)},[en]);(0,a.useEffect)(()=>{!et&&T!==m&&(ei.some(([e])=>e===T)||R(m))},[et,T,ei]),(0,a.useEffect)(()=>{!et&&$!==m&&(es.some(e=>b(e.azimuthBin,e.elevationBin)===$)||B(m))},[et,$,es]),(0,a.useEffect)(()=>{!et&&N!==m&&(X.some(e=>e.key===N)||F(m))},[et,N,X]),(0,a.useEffect)(()=>{R(m),B(m),F(m)},[q]);let er=(0,a.useMemo)(()=>et?ee.ribbons.filter(e=>{let t=N===m||e.standpointId===N,a=$===m||b(e.azimuthBin,e.elevationBin)===$,n=T===m||e.meshId===T;return t&&a&&n}).length:en.filter(e=>{let t=$===m||b(e.azimuth_bin,e.elevation_bin)===$,a=T===m||e.mesh===T;return t&&a}).length,[et,ee,en,T,$,N]),el=et?ee.ribbons.length:en.length,eo=(0,a.useMemo)(()=>et?ee.standpoints.map(e=>({value:e.id,label:`${e.label} \xb7 ${e.count}`})):X.slice(0,24).map(e=>({value:e.key,label:`[${e.voxel[0]}, ${e.voxel[1]}, ${e.voxel[2]}] \xb7 ${e.count}`})),[et,ee,X]),ec=(0,a.useMemo)(()=>{if(et){let e=new Map;for(let t of ee.ribbons){let a=b(t.azimuthBin,t.elevationBin),n=e.get(a);n?n.count+=t.count:e.set(a,{az:t.azimuthBin,el:t.elevationBin,count:t.count})}return[...e.values()].sort((e,t)=>t.count-e.count).map(e=>({value:b(e.az,e.el),label:`(${e.az}, ${e.el}) \xb7 ${e.count}`}))}return es.map(e=>({value:b(e.azimuthBin,e.elevationBin),label:`(${e.azimuthBin}, ${e.elevationBin}) \xb7 ${e.count}`}))},[et,ee,es]),eu=(0,a.useMemo)(()=>et?ee.meshes.map(e=>({value:e.id,label:`${e.label} \xb7 ${e.count}`})):ei.map(([e,t])=>({value:e,label:`${e} \xb7 ${t}`})),[et,ee,ei]);return(0,a.useEffect)(()=>{let t=_.current;if(!t||et)return;if(0===en.length)return void S("empty");let a=!1,n=null;return S("loading"),P(null),(async()=>{try{let[{Engine:i},{Scene:s},{ArcRotateCamera:r},{HemisphericLight:l},{Vector3:h,Color3:d,Color4:p},{MeshBuilder:g},{StandardMaterial:f}]=await Promise.all([e.A(3905),e.A(94432),e.A(59694),e.A(88004),e.A(27940),e.A(27124),e.A(14074),e.A(18561)]);if(a)return;let x=new i(t,!0,{preserveDrawingBuffer:!1}),v=new s(x);v.clearColor=new p(.04,.05,.07,1);let j=new Map;for(let e of k)j.set(e.name,function(e){let t=e.aabb;return[(t[0]+t[3])/2,(t[1]+t[4])/2,(t[2]+t[5])/2]}(e));let y=new Map,M=ei.map(([e])=>e).filter(e=>!j.has(e));for(let e=0;e<M.length;e++){let t=M[e],a=function(e){let t=0;for(let a=0;a<e.length;a++)t=31*t+e.charCodeAt(a)|0;return Math.abs(t)}(t),n=e/Math.max(1,M.length)*Math.PI*2+a%100/100*.35;y.set(t,[2.2*Math.cos(n),-.35+(a%7-3)*.06,2.2*Math.sin(n)])}for(let[e,t]of j.entries())y.set(e,t);let z=0,C=0,_=0,I=0;for(let e of y.values())z+=e[0],C+=e[1],_+=e[2],I++;let E=new h(z/Math.max(1,I),C/Math.max(1,I),_/Math.max(1,I)),P=1.8;for(let e of y.values()){let t=e[0]-E.x,a=e[1]-E.y,n=e[2]-E.z;P=Math.max(P,Math.sqrt(t*t+a*a+n*n))}let R=.75*P+1,B=Math.max(1,P/1.8),N=en.reduce((e,t)=>Math.max(e,t.count),1),F=new f("flow-source-node",v);F.disableLighting=!0,F.emissiveColor=new d(.45,.75,1);let q=new f("flow-target-node",v);q.disableLighting=!0,q.emissiveColor=new d(1,.82,.42);let D=new Set,O=new Set,V=e=>{let t=$===m||b(e.azimuth_bin,e.elevation_bin)===$,a=T===m||e.mesh===T;return t&&a},W=new Set,H=new Set;for(let e of en)V(e)&&(W.add(b(e.azimuth_bin,e.elevation_bin)),H.add(e.mesh));for(let e of en){let t=`${e.azimuth_bin}|${e.elevation_bin}`,a=y.get(e.mesh);if(!a)continue;let n=V(e),i=(e.azimuth_bin+.5)/w*Math.PI*2-Math.PI,s=(e.elevation_bin+.5)/w*Math.PI-Math.PI/2,r=Math.cos(s),l=r*Math.cos(i),c=Math.sin(s),u=r*Math.sin(i),p=new h(E.x+l*R,E.y+c*R,E.z+u*R),b=new h(a[0],a[1],a[2]);if(!D.has(t)){let e=g.CreateSphere(`flow-src-${t}`,{diameter:.12*B,segments:6},v);e.position=p;let a=F.clone(`flow-src-mat-${t}`);a.alpha=W.has(t)||T===m&&$===m?1:.22,e.material=a,e.isPickable=!1,D.add(t)}if(!O.has(e.mesh)){let t=g.CreateSphere(`flow-target-${e.mesh}`,{diameter:.2*B,segments:7},v);t.position=b;let a=q.clone(`flow-target-mat-${e.mesh}`);a.alpha=H.has(e.mesh)||T===m&&$===m?1:.22,t.material=a,t.isPickable=!0,t.metadata={hoverLabel:e.mesh},O.add(e.mesh)}let x=p.add(b).scale(.5),k=x.subtract(E),j=Math.sqrt(k.x*k.x+k.y*k.y+k.z*k.z),M=j>1e-6?k.x/j:0,z=j>1e-6?k.y/j:1,C=j>1e-6?k.z/j:0,_=(.35+e.count/N*.75)*B,A=new h(x.x+M*_,x.y+z*_+.12*B,x.z+C*_),L=[];for(let e=0;e<=18;e++){let t=e/18,a=1-t;L.push(new h(a*a*p.x+2*a*t*A.x+t*t*b.x,a*a*p.y+2*a*t*A.y+t*t*b.y,a*a*p.z+2*a*t*A.z+t*t*b.z))}let I=e.count/N,[S,P,Z]=(0,o.heatRgb)(I),K=g.CreateTube(`flow-link-${e.mesh}-${t}`,{path:L,radius:(n?1:.4)*(.012+.04*I)*B,tessellation:8,cap:0,sideOrientation:0},v),U=new f(`flow-link-mat-${e.mesh}-${t}`,v);U.disableLighting=!0,U.emissiveColor=new d(S,P,Z),U.alpha=n?.35+.65*I:.08,K.material=U,K.isPickable=!0,K.metadata={hoverLabel:e.mesh}}let K=new r("flow-cam",Math.PI/4,Math.PI/3,3.4*P,E,v);K.attachControl(t,!0),(0,c.disableWheelZoom)(K),A.current=K,L.current={target:E,alpha:K.alpha,beta:K.beta,radius:K.radius},new l("flow-light",new h(.3,1,.2),v);let U=g.CreateSphere("flow-source-dome",{diameter:2*R,segments:20},v);U.position=E;let G=new f("flow-source-dome-mat",v);G.wireframe=!0,G.disableLighting=!0,G.emissiveColor=new d(.16,.2,.28),G.alpha=.35,U.material=G,U.isPickable=!1;let Y=Q?.origin;if(Y){let e=new h(Y[0],Y[1],Y[2]),t=g.CreateSphere("flow-standpoint",{diameter:.26*B,segments:10},v);t.position=e;let a=new f("flow-standpoint-mat",v);a.disableLighting=!0,a.emissiveColor=new d(.95,.45,.95),t.material=a,t.isPickable=!1;let n=g.CreateLines("flow-standpoint-stem",{points:[e,new h(e.x,E.y,e.z)]},v);n.color=new d(.95,.45,.95),n.isPickable=!1}x.runRenderLoop(()=>v.render());let X=()=>x.resize();window.addEventListener("resize",X);let J=(0,u.attachMeshHover)(v,t,Z),ee=(0,c.attachDoubleClickFocus)(v,t,K);S("ready"),n=()=>{window.removeEventListener("resize",X),J(),ee(),Z(null),A.current=null,L.current=null,v.dispose(),x.dispose()}}catch(e){if(a)return;S("error"),P(e instanceof Error?e.message:"Failed to render flow links.")}})(),()=>{a=!0,n?.()}},[en,w,k,T,$,Q,et]),(0,a.useEffect)(()=>{let t=_.current;if(!t||!et)return;if(0===ee.ribbons.length)return void S("empty");let a=!1,n=null;return S("loading"),P(null),(async()=>{try{let[{Engine:i},{Scene:s},{ArcRotateCamera:r},{HemisphericLight:l},{Vector3:h,Color3:d,Color4:p},{MeshBuilder:g},{StandardMaterial:f}]=await Promise.all([e.A(3905),e.A(94432),e.A(59694),e.A(88004),e.A(27940),e.A(27124),e.A(14074),e.A(18561)]);if(a)return;let x=new i(t,!0,{preserveDrawingBuffer:!1}),v=new s(x);v.clearColor=new p(.04,.05,.07,1);let w=e=>{let t=N===m||e.standpointId===N,a=$===m||b(e.azimuthBin,e.elevationBin)===$,n=T===m||e.meshId===T;return t&&a&&n},k=N!==m||$!==m||T!==m,j=new Set;for(let e of ee.ribbons)w(e)&&(j.add(e.standpointId),j.add(e.gazeId),j.add(e.meshId));let y={standpoint:[.95,.45,.95],gaze:[.45,.75,1],mesh:[1,.82,.42]},M={standpoint:.26,gaze:.13,mesh:.22},z=[...ee.standpoints,...ee.gazes,...ee.meshes],C=new Map(z.map(e=>[e.id,e.pos])),_=new Map(z.map(e=>[e.id,e.label]));for(let e of z){let t=g.CreateSphere(`ts-node-${e.kind}-${e.id}`,{diameter:M[e.kind],segments:8},v);t.position=new h(e.pos[0],e.pos[1],e.pos[2]);let a=new f(`ts-node-mat-${e.kind}-${e.id}`,v);a.disableLighting=!0;let[n,i,s]=y[e.kind];a.emissiveColor=new d(n,i,s),a.alpha=!k||j.has(e.id)?1:.2,t.material=a,t.isPickable=!0,t.metadata={hoverLabel:e.label}}let I=(e,t,a)=>{let n=e[0],i=e[1],s=e[2],r=t[0],l=t[1],o=t[2],c=[(n+r)/2,(i+l)/2+a,(s+o)/2],u=[];for(let e=0;e<=12;e++){let t=e/12,a=1-t;u.push(new h(a*a*n+2*a*t*c[0]+t*t*r,a*a*i+2*a*t*c[1]+t*t*l,a*a*s+2*a*t*c[2]+t*t*o))}return u};for(let e of ee.ribbons){let t=C.get(e.standpointId),a=C.get(e.gazeId),n=C.get(e.meshId);if(!t||!a||!n)continue;let i=e.count/ee.maxCount,s=.18+.5*i,r=[...I(t,a,s),...I(a,n,s).slice(1)],l=w(e),[c,u,h]=(0,o.heatRgb)(i),m=g.CreateTube(`ts-link-${e.standpointId}-${e.gazeId}-${e.meshId}`,{path:r,radius:(l?1:.4)*(.012+.04*i),tessellation:8,cap:0,sideOrientation:0},v),p=new f(`ts-link-mat-${e.standpointId}-${e.gazeId}-${e.meshId}`,v);p.disableLighting=!0,p.emissiveColor=new d(c,u,h),p.alpha=l?.35+.65*i:k?.06:.18,m.material=p,m.isPickable=!0,m.metadata={hoverLabel:_.get(e.meshId)??e.meshId}}let E=h.Zero(),P=new r("ts-cam",Math.PI/2,Math.PI/2.4,8.5,E,v);P.attachControl(t,!0),(0,c.disableWheelZoom)(P),A.current=P,L.current={target:E,alpha:P.alpha,beta:P.beta,radius:P.radius},new l("ts-light",new h(.3,1,.2),v),x.runRenderLoop(()=>v.render());let R=()=>x.resize();window.addEventListener("resize",R);let B=(0,u.attachMeshHover)(v,t,Z),F=(0,c.attachDoubleClickFocus)(v,t,P);S("ready"),n=()=>{window.removeEventListener("resize",R),B(),F(),Z(null),A.current=null,L.current=null,v.dispose(),x.dispose()}}catch(e){if(a)return;S("error"),P(e instanceof Error?e.message:"Failed to render flow links.")}})(),()=>{a=!0,n?.()}},[et,ee,N,$,T]),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("canvas",{ref:_,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),O?(0,t.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-[16rem] truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:O.x+12,top:O.y+12},children:O.label}):null,"ready"===I?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"absolute left-3 top-3 flex flex-wrap gap-2",children:[J?(0,t.jsxs)("div",{className:"flex items-center gap-1 rounded-md border border-edge bg-ink/80 p-0.5 text-xs backdrop-blur",children:[(0,t.jsx)(f,{active:!et,onClick:()=>D("aggregate"),children:"Aggregate"}),(0,t.jsx)(f,{active:et,onClick:()=>D("twostage"),children:"Two-stage"})]}):null,U?(0,t.jsxs)("div",{className:"flex items-center gap-1 rounded-md border border-edge bg-ink/80 p-0.5 text-xs backdrop-blur",children:[(0,t.jsx)(f,{active:"first-person"===V,onClick:()=>W("first-person"),children:"Walk"}),(0,t.jsx)(f,{active:"viewer"===V,onClick:()=>W("viewer"),disabled:C,title:C?"Orbit (viewer) flow isn't available for walkable scenes":void 0,children:"Orbit"}),(0,t.jsx)(f,{active:"all"===V,onClick:()=>W("all"),children:"All"})]}):null,J?(0,t.jsx)(g,{label:"Standpoint",value:N,onChange:F,allLabel:"All standpoints",options:eo}):null,(0,t.jsx)(g,{label:et?"Gaze":"Source",value:$,onChange:B,allLabel:et?"All gaze sectors":"All sources",options:ec}),(0,t.jsx)(g,{label:"Mesh",value:T,onChange:R,allLabel:"All meshes",options:eu})]}),et?(0,t.jsx)(x,{standpoints:X,proxyMeshes:k,selectedKey:N,onSelect:e=>F(t=>t===e?m:e)}):null,(0,t.jsxs)("div",{className:"pointer-events-none absolute bottom-3 right-3 flex max-w-[20rem] flex-col items-end gap-2",children:[U&&!C?(0,t.jsxs)("div",{className:"rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg-muted backdrop-blur",children:["Orbit-dominated scene — viewer ",(0,t.jsx)("em",{children:"position"})," adds little here. Use the"," ",(0,t.jsx)("strong",{children:"View dome"})," (§7.5) above for where viewers looked."]}):null,(0,t.jsxs)("div",{className:"rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg backdrop-blur",children:["Active links: ",er,"/",el]})]}),(0,t.jsx)(d.ZoomButtons,{onZoom:e=>A.current&&(0,c.stepZoom)(A.current,e),onReset:()=>A.current&&L.current&&(0,c.resetFocus)(A.current,L.current)}),(0,t.jsx)(h.HeatLegend,{title:"Flow volume",lowLabel:"fewer links",highLabel:"dominant links",note:et?"Three columns: standpoint → gaze sector → mesh. Top standpoints/meshes are kept; the tail folds into an “Other” node. Pick a standpoint (or click the minimap), gaze sector, or mesh to emphasize matching ribbons.":"Each arc aggregates clicks from one camera-direction bin to a mesh. Pick a source or mesh to emphasize matching links and dim the rest."})]}):(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===I?"Rendering…":"empty"===I?"No aggregate flow links in range.":"error"===I?E??"Flow view unavailable.":null})]})}],19399)},64434,e=>{"use strict";e.s([],4255),e.i(4255);var t=e.i(48939),a=e.i(53993),n=e.i(19399),i=e.i(39592),s=e.i(28100),r=e.i(11623),l=e.i(56054),o=e.i(2348),c=e.i(25476),u=e.i(18637),h=e.i(2413);let d="__all__";function m(e){return`${e[0]},${e[1]},${e[2]}`}function p({label:e,value:t,onChange:a,allLabel:n,options:i}){return(0,s.jsxs)("label",{className:"flex items-center gap-1.5 rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg backdrop-blur",children:[(0,s.jsx)("span",{className:"font-medium text-fg-muted",children:e}),(0,s.jsxs)("select",{className:"max-w-[12rem] bg-transparent text-white outline-none",value:t,onChange:e=>a(e.target.value),children:[(0,s.jsx)("option",{value:d,children:n}),i.map(e=>(0,s.jsx)("option",{value:e.value,children:e.label},e.value))]})]})}var b=e.i(37215);e.s(["CAMERA_DOME_SUBTITLE",()=>b.CAMERA_DOME_SUBTITLE,"CAMERA_DOME_TITLE",()=>b.CAMERA_DOME_TITLE,"CLICK_RAYS_SUBTITLE",()=>b.CLICK_RAYS_SUBTITLE,"CLICK_RAYS_TITLE",()=>b.CLICK_RAYS_TITLE,"CameraDome3DView",()=>t.CameraDome3DView,"ClickRays3DView",0,function({rays:t,cellSize:a,proxyMeshes:n=[]}){let i=(0,r.useRef)(null),b=(0,r.useRef)(null),g=(0,r.useRef)(null),[f,x]=(0,r.useState)("loading"),[v,w]=(0,r.useState)(null),[k,j]=(0,r.useState)(d),[y,M]=(0,r.useState)(d),[z,C]=(0,r.useState)(null),_=(0,r.useMemo)(()=>{let e=new Map;for(let a of t){let t=m(a.camVoxel),n=e.get(t);n?n.count+=a.count:e.set(t,{key:t,voxel:a.camVoxel,count:a.count})}return[...e.values()].sort((e,t)=>t.count-e.count)},[t]),A=(0,r.useMemo)(()=>{let e=new Map;for(let a of t)""!==a.mesh&&e.set(a.mesh,(e.get(a.mesh)??0)+a.count);return[...e.entries()].map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count)},[t]);return(0,r.useEffect)(()=>{k!==d&&(_.some(e=>e.key===k)||j(d))},[k,_]),(0,r.useEffect)(()=>{y!==d&&(A.some(e=>e.name===y)||M(d))},[y,A]),(0,r.useEffect)(()=>{let s=i.current;if(!s)return;if(0===t.length)return void x("empty");let r=!1,u=null;return x("loading"),w(null),(async()=>{try{let[{Engine:i},{Scene:h},{ArcRotateCamera:p},{HemisphericLight:f},{Vector3:v,Color3:w,Color4:j,Matrix:M},{MeshBuilder:z},{StandardMaterial:_}]=await Promise.all([e.A(3905),e.A(94432),e.A(59694),e.A(88004),e.A(27940),e.A(27124),e.A(14074),e.A(35983),e.A(18561)]);if(r)return;let A=k===d?t:t.filter(e=>m(e.camVoxel)===k);if(0===A.length)return void x("empty");let L=A.reduce((e,t)=>Math.max(e,t.count),1),I=0,S=0,E=0,P=0,T=(e,t,a)=>{I+=e,S+=t,E+=a,P++};for(let e of A)T(e.origin[0],e.origin[1],e.origin[2]),T(e.hit[0],e.hit[1],e.hit[2]);let R=P>0?new v(I/P,S/P,E/P):v.Zero(),$=4*a;for(let e of A)for(let t of[e.origin,e.hit]){let e=t[0]-R.x,a=t[1]-R.y,n=t[2]-R.z;$=Math.max($,Math.sqrt(e*e+a*a+n*n))}let B=new i(s,!0,{preserveDrawingBuffer:!1}),N=new h(B);N.clearColor=new j(.04,.05,.07,1);let F=new p("rays-cam",Math.PI/4,Math.PI/3,2.4*$,R,N);if(F.attachControl(s,!0),(0,o.disableWheelZoom)(F),b.current=F,g.current={target:R,alpha:F.alpha,beta:F.beta,radius:F.radius},new f("rays-light",new v(.4,1,.3),N),n.length>0){let e=z.CreateBox("scene-proxy",{size:1},N),t=new _("scene-proxy-mat",N);t.wireframe=!0,t.disableLighting=!0,t.emissiveColor=new w(.32,.4,.52),t.alpha=.35,e.material=t,e.isPickable=!0,e.thinInstanceEnablePicking=!0,e.metadata={hoverLabels:n.map(e=>e.name)};let a=n.length,i=new Float32Array(16*a);for(let e=0;e<a;e++){let t=n[e].aabb,a=Math.max(t[3]-t[0],.001),s=Math.max(t[4]-t[1],.001),r=Math.max(t[5]-t[2],.001);M.Scaling(a,s,r).multiply(M.Translation((t[0]+t[3])/2,(t[1]+t[4])/2,(t[2]+t[5])/2)).copyToArray(i,16*e)}e.thinInstanceSetBuffer("matrix",i,16,!0)}let q=[],D=[];for(let e of A){let t=e.count/L,[a,n,i]=(0,l.heatRgb)(t),s=new j(a,n,i,.35+.65*t);q.push([new v(e.origin[0],e.origin[1],e.origin[2]),new v(e.hit[0],e.hit[1],e.hit[2])]),D.push([s,s])}q.length>0&&(z.CreateLineSystem("click-rays",{lines:q,colors:D,useVertexAlpha:!0},N).isPickable=!1);let O=new Map;for(let e of A)O.set(m(e.camVoxel),e.camVoxel);if(O.size>0){let e=z.CreateSphere("rays-eye",{diameter:.6*a,segments:6},N),t=new _("rays-eye-mat",N);t.disableLighting=!0,t.emissiveColor=new w(.9,.95,1),e.material=t;let n=[...O.values()],i=new Float32Array(16*n.length);for(let e=0;e<n.length;e++){let t=n[e];M.Translation((t[0]+.5)*a,(t[1]+.5)*a,(t[2]+.5)*a).copyToArray(i,16*e)}e.thinInstanceSetBuffer("matrix",i,16,!0)}if(y!==d){let e=t.filter(e=>e.mesh===y);if(e.length>0){let t,i=n.find(e=>e.name===y);if(i){let e=i.aabb;t=new v((e[0]+e[3])/2,(e[1]+e[4])/2,(e[2]+e[5])/2)}else{let a=0,n=0,i=0;for(let t of e)a+=t.hit[0],n+=t.hit[1],i+=t.hit[2];t=new v(a/e.length,n/e.length,i/e.length)}let s=Math.max(3*a,.18*$),r=e.reduce((e,t)=>Math.max(e,t.count),1),o=[],c=[];for(let a of e){let e=a.origin[0]-a.hit[0],n=a.origin[1]-a.hit[1],i=a.origin[2]-a.hit[2],u=Math.sqrt(e*e+n*n+i*i)||1,h=a.count/r,d=s*(.4+.6*h),m=new v(t.x+e/u*d,t.y+n/u*d,t.z+i/u*d),[p,b,g]=(0,l.heatRgb)(h),f=new j(p,b,g,1);o.push([t.clone(),m]),c.push([new j(p,b,g,.25),f])}z.CreateLineSystem("mesh-rose",{lines:o,colors:c,useVertexAlpha:!0},N).isPickable=!1;let u=z.CreateSphere("mesh-rose-hub",{diameter:.8*a,segments:8},N),h=new _("mesh-rose-hub-mat",N);h.disableLighting=!0,h.emissiveColor=new w(1,.85,.4),u.material=h,u.position=t,u.isPickable=!0,u.metadata={hoverLabel:y}}}B.runRenderLoop(()=>N.render());let Z=()=>B.resize();window.addEventListener("resize",Z);let V=(0,c.attachMeshHover)(N,s,C),W=(0,o.attachDoubleClickFocus)(N,s,F);x("ready"),u=()=>{window.removeEventListener("resize",Z),V(),W(),C(null),b.current=null,g.current=null,N.dispose(),B.dispose()}}catch(e){if(r)return;x("error"),w(e instanceof Error?e.message:"Failed to render click rays.")}})(),()=>{r=!0,u?.()}},[t,a,n,k,y]),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("canvas",{ref:i,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),z?(0,s.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-[16rem] truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:z.x+12,top:z.y+12},children:z.label}):null,"ready"===f?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"absolute left-3 top-3 flex gap-2",children:[(0,s.jsx)(p,{label:"Viewpoint",value:k,onChange:j,allLabel:"All viewpoints",options:_.map(e=>({value:e.key,label:`(${e.voxel.join(", ")}) \xb7 ${e.count}`}))}),(0,s.jsx)(p,{label:"Mesh rose",value:y,onChange:M,allLabel:"No mesh focus",options:A.map(e=>({value:e.name,label:`${e.name} \xb7 ${e.count}`}))})]}),(0,s.jsx)(h.ZoomButtons,{onZoom:e=>b.current&&(0,o.stepZoom)(b.current,e),onReset:()=>b.current&&g.current&&(0,o.resetFocus)(b.current,g.current)}),(0,s.jsx)(u.HeatLegend,{title:"Click volume",lowLabel:"few clicks",highLabel:"most clicks",note:"Lines run from the camera position (bright eye) to where the click landed. Pick a viewpoint to see only clicks made from there; pick a mesh to see which directions its clicks came from."})]}):(0,s.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===f?"Rendering…":"empty"===f?"No correlated clicks in range.":"error"===f?v??"Click rays unavailable.":null})]})},"ERROR_HEATMAP_SUBTITLE",()=>b.ERROR_HEATMAP_SUBTITLE,"ERROR_HEATMAP_TITLE",()=>b.ERROR_HEATMAP_TITLE,"FLOW_SANKEY_HELP",()=>b.FLOW_SANKEY_HELP,"FLOW_SANKEY_SUBTITLE",()=>b.FLOW_SANKEY_SUBTITLE,"FLOW_SANKEY_TITLE",()=>b.FLOW_SANKEY_TITLE,"FlowSankey3DView",()=>n.FlowSankey3DView,"GAZE_CLICK_SUBTITLE",()=>b.GAZE_CLICK_SUBTITLE,"GAZE_CLICK_TITLE",()=>b.GAZE_CLICK_TITLE,"GazeClickDivergence3DView",()=>i.GazeClickDivergence3DView,"WORLD_HEATMAP_SUBTITLE",()=>b.WORLD_HEATMAP_SUBTITLE,"WORLD_HEATMAP_TITLE",()=>b.WORLD_HEATMAP_TITLE,"WorldHeatmap3DView",()=>a.WorldHeatmap3DView],64434)},94452,e=>{e.n(e.i(64434))},3905,e=>{e.v(t=>Promise.all(["static/chunks/3pdpaqzwhhijn.js","static/chunks/08bm3ye5govev.js","static/chunks/0g6u34xkzrpjn.js","static/chunks/25ctnyh7njp-d.js","static/chunks/2gh4z57fem0_v.js","static/chunks/3vaho-xrtuchd.js","static/chunks/0g7p8zp2kxve5.js"].map(t=>e.l(t))).then(()=>t(66232)))},94432,e=>{e.v(t=>Promise.all(["static/chunks/2kje_jvmwsvwo.js","static/chunks/1j--a56ji33_x.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/2npk7tr63h7rl.js","static/chunks/3vaho-xrtuchd.js","static/chunks/3g_h_00xs9u59.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/25ctnyh7njp-d.js","static/chunks/1vpcaaf-0dn7q.js"].map(t=>e.l(t))).then(()=>t(92494)))},59694,e=>{e.v(t=>Promise.all(["static/chunks/1j--a56ji33_x.js","static/chunks/0oap0o8a8a_cl.js","static/chunks/0f_nv15a8q415.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/245h82k-g1nxr.js","static/chunks/3ovd8o_usay7j.js","static/chunks/3vaho-xrtuchd.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/25ctnyh7njp-d.js","static/chunks/2npk7tr63h7rl.js","static/chunks/3pyggl13glbdc.js"].map(t=>e.l(t))).then(()=>t(67186)))},88004,e=>{e.v(t=>Promise.all(["static/chunks/2p8dbh81chhon.js","static/chunks/1oara6fkfvgs3.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/25ctnyh7njp-d.js","static/chunks/3pdpaqzwhhijn.js"].map(t=>e.l(t))).then(()=>t(15768)))},27940,e=>{e.v(t=>Promise.all(["static/chunks/0w0sx062qmcsh.js","static/chunks/25ctnyh7njp-d.js","static/chunks/3pdpaqzwhhijn.js"].map(t=>e.l(t))).then(()=>t(23235)))},27124,e=>{e.v(t=>Promise.all(["static/chunks/1par9m038tiov.js","static/chunks/1j--a56ji33_x.js","static/chunks/2j-sax2xfdv7l.js","static/chunks/340pg0qkv5tqq.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/0gwa154w_0wuh.js","static/chunks/0oap0o8a8a_cl.js","static/chunks/0f_nv15a8q415.js","static/chunks/3vaho-xrtuchd.js","static/chunks/3pyggl13glbdc.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/3g_h_00xs9u59.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/25ctnyh7njp-d.js","static/chunks/2npk7tr63h7rl.js","static/chunks/01aeari2x_tlz.js"].map(t=>e.l(t))).then(()=>t(70928)))},14074,e=>{e.v(t=>Promise.all(["static/chunks/1zcrrq1fx8g2y.js","static/chunks/1tdg_eolxlcdl.js","static/chunks/1j--a56ji33_x.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/0vddljjnmozzx.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/3vaho-xrtuchd.js","static/chunks/0f_nv15a8q415.js","static/chunks/3g_h_00xs9u59.js","static/chunks/2npk7tr63h7rl.js","static/chunks/25ctnyh7njp-d.js"].map(t=>e.l(t))).then(()=>t(87566)))},2213,e=>{e.v(t=>Promise.all(["static/chunks/3wqs57qehored.js","static/chunks/1j--a56ji33_x.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/2npk7tr63h7rl.js","static/chunks/1vkww9l6lgqag.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/0f_nv15a8q415.js","static/chunks/3pyggl13glbdc.js","static/chunks/3vaho-xrtuchd.js","static/chunks/25ctnyh7njp-d.js","static/chunks/3pdpaqzwhhijn.js"].map(t=>e.l(t))).then(()=>t(95758)))},15002,e=>{e.v(t=>Promise.all(["static/chunks/34gp3hvr3j6um.js","static/chunks/0x6i6e6863tir.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/3vaho-xrtuchd.js","static/chunks/2gh4z57fem0_v.js","static/chunks/25ctnyh7njp-d.js","static/chunks/28ycc-1519hl2.js"].map(t=>e.l(t))).then(()=>t(95729)))},35983,e=>{e.v(t=>Promise.all(["static/chunks/4227p7752rnny.js","static/chunks/1j--a56ji33_x.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/2npk7tr63h7rl.js","static/chunks/1vkww9l6lgqag.js","static/chunks/25ctnyh7njp-d.js","static/chunks/0f_nv15a8q415.js","static/chunks/3vaho-xrtuchd.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/3pyggl13glbdc.js","static/chunks/3pdpaqzwhhijn.js"].map(t=>e.l(t))).then(()=>t(50608)))},18561,e=>{e.v(t=>Promise.all(["static/chunks/1j--a56ji33_x.js","static/chunks/1vkww9l6lgqag.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/2npk7tr63h7rl.js","static/chunks/117ys3lltfmcu.js","static/chunks/25ctnyh7njp-d.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/3g_h_00xs9u59.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/3vaho-xrtuchd.js"].map(t=>e.l(t))).then(()=>t(85106)))}]);
|