PageSourceSearch

https://app.luw.ai/_next/static/chunks/4801.9e8959e67856639c.js

js luw.ai collected 2026-09-25 03:14:09 UTC 5,826 bytes, 1 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="04e65641-f8e1-4b86-ba4d-e3b888b70c5f",e._sentryDebugIdIdentifier="sentry-dbid-04e65641-f8e1-4b86-ba4d-e3b888b70c5f")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4801],{84801:function(e,t,n){n.r(t),n.d(t,{default:function(){return l}});var i=n(57437),o=n(2265),a=n(68092);let r=Math.PI/2*.98;function l(e){let{url:t,file:l,opts:s,syncing:u,stats:h,onRows:v,onError:p}=e,m=(0,o.useRef)(null),f=(0,o.useRef)(null);return f.current={...s,syncing:u,file:l,onRows:v,onError:p},(0,o.useEffect)(()=>{let e=!1,i=()=>{};return(async()=>{var o,l,s,u,v,p,w;let b;let y=await Promise.all([n.e(5870),n.e(6689)]).then(n.bind(n,51448)),g=m.current;if(!g||e)return;let E=new y.WebGLRenderer({antialias:!0,preserveDrawingBuffer:!0});E.setPixelRatio(Math.min(devicePixelRatio,2)),E.setSize(g.clientWidth,g.clientHeight),E.domElement.style.cursor="grab",E.domElement.style.touchAction="none",g.appendChild(E.domElement);try{b=await new Promise((e,n)=>{let i=new Image;i.onload=()=>e(i),i.onerror=()=>n(Error("decode failed")),i.src=t})}catch(t){e||null===(v=f.current)||void 0===v||null===(u=v.onError)||void 0===u||u.call(v,"This image could not be read. A 360 photo has to be a JPG, PNG or WebP."),E.dispose(),E.domElement.parentNode===g&&g.removeChild(E.domElement);return}if(e){E.dispose(),E.domElement.parentNode===g&&g.removeChild(E.domElement);return}let M=b.naturalWidth,x=b.naturalHeight,S=x?M/x:0,L=E.capabilities.maxTextureSize,P=M>L||x>L?function(e,t){var n;let i=Math.min(t/e.naturalWidth,t/e.naturalHeight),o=document.createElement("canvas");return o.width=Math.max(1,Math.floor(e.naturalWidth*i)),o.height=Math.max(1,Math.floor(e.naturalHeight*i)),null===(n=o.getContext("2d"))||void 0===n||n.drawImage(e,0,0,o.width,o.height),o}(b,L):b,I=new y.Texture(P);I.colorSpace=y.SRGBColorSpace,I.anisotropy=E.capabilities.getMaxAnisotropy(),I.needsUpdate=!0;let N=new y.Scene,C=new y.SphereGeometry(100,96,64);C.scale(-1,1,1);let F=new y.MeshBasicMaterial({map:I});N.add(new y.Mesh(C,F));let W=new y.PerspectiveCamera(75,g.clientWidth/g.clientHeight,.1,200);W.rotation.order="YXZ";let z={yaw:0,pitch:0,fov:75},A={yaw:0,pitch:0,fov:75},R=[{label:h.resolution,value:"".concat(M.toLocaleString("en-US")," \xd7 ").concat(x.toLocaleString("en-US"))},{label:h.aspect,value:"".concat(S.toFixed(2),":1")},{label:h.megapixels,value:"".concat((M*x/1e6).toFixed(1)," MP")}];P!==b&&R.push({label:h.shownAt,value:"".concat(P.width.toLocaleString("en-US")," \xd7 ").concat(P.height.toLocaleString("en-US")," (GPU limit)")});let k=null===(o=f.current)||void 0===o?void 0:o.file;(null==k?void 0:k.size)&&R.push({label:h.fileSize,value:d(k.size)}),null===(s=f.current)||void 0===s||null===(l=s.onRows)||void 0===l||l.call(s,R),Math.abs(S-2)>.02&&(null===(w=f.current)||void 0===w||null===(p=w.onError)||void 0===p||p.call(w,"This image is ".concat(M," \xd7 ").concat(x,", an aspect of ").concat(S.toFixed(2),":1. A 360 photo is 2:1 — exactly twice as wide as it is tall — so this one is being stretched onto the sphere and will look wrong.")));let H=Math.random(),_=0,D=()=>{var e;(null===(e=f.current)||void 0===e?void 0:e.syncing)&&(a.m.kind="pano",a.m.owner=H,a.m.orbit=JSON.stringify({yaw:A.yaw,pitch:A.pitch,fov:A.fov}),a.m.v++)},G=new Map,T=0,U=!1,B=e=>{var t,n;G.set(e.pointerId,{x:e.clientX,y:e.clientY}),U=!0,T=0,E.domElement.style.cursor="grabbing",null===(t=(n=E.domElement).setPointerCapture)||void 0===t||t.call(n,e.pointerId)},Y=e=>{let t=G.get(e.pointerId);if(!t)return;let n=e.clientX-t.x,i=e.clientY-t.y;if(G.set(e.pointerId,{x:e.clientX,y:e.clientY}),G.size>=2){let[e,t]=Array.from(G.values()),n=Math.hypot(e.x-t.x,e.y-t.y);T&&n&&(A.fov=c(A.fov*T/n,30,100)),T=n,D();return}let o=z.fov*Math.PI/180/Math.max(1,g.clientHeight);A.yaw-=n*o,A.pitch=c(A.pitch-i*o,-r,r),D()},X=e=>{G.delete(e.pointerId),T=0,0===G.size&&(U=!1,E.domElement.style.cursor="grab")},j=e=>{e.preventDefault(),A.fov=c(A.fov*(e.deltaY>0?1.08:1/1.08),30,100),D()},J=E.domElement;J.addEventListener("pointerdown",B),J.addEventListener("pointermove",Y),J.addEventListener("pointerup",X),J.addEventListener("pointercancel",X),J.addEventListener("wheel",j,{passive:!1});let O=new ResizeObserver(()=>{g.clientWidth&&(W.aspect=g.clientWidth/g.clientHeight,W.updateProjectionMatrix(),E.setSize(g.clientWidth,g.clientHeight))});O.observe(g);let q=0,K=performance.now(),Z=()=>{q=requestAnimationFrame(Z);let e=performance.now(),t=Math.min(.1,(e-K)/1e3);K=e;let n=f.current||{};
1if(n.syncing&&"pano"===a.m.kind&&a.m.v!==_&&a.m.owner!==H){_=a.m.v;try{let e=JSON.parse(a.m.orbit);Number.isFinite(null==e?void 0:e.yaw)&&Number.isFinite(null==e?void 0:e.pitch)&&Number.isFinite(null==e?void 0:e.fov)&&(A.yaw=e.yaw,A.pitch=c(e.pitch,-r,r),A.fov=c(e.fov,30,100))}catch(e){}}!n.autoRotate||U||n.syncing||(A.yaw-=.045*t);let i=1-Math.exp(-(12*t));z.yaw+=(A.yaw-z.yaw)*i,z.pitch+=(A.pitch-z.pitch)*i,Math.abs(A.fov-z.fov)>.01&&(z.fov+=(A.fov-z.fov)*i,W.fov=z.fov,W.updateProjectionMatrix()),W.rotation.set(z.pitch,z.yaw,0),E.render(N,W)};q=requestAnimationFrame(Z),i=()=>{cancelAnimationFrame(q),O.disconnect(),J.removeEventListener("pointerdown",B),J.removeEventListener("pointermove",Y),J.removeEventListener("pointerup",X),J.removeEventListener("pointercancel",X),J.removeEventListener("wheel",j),C.dispose(),F.dispose(),I.dispose(),E.dispose(),J.parentNode===g&&g.removeChild(J)}})(),()=>{e=!0,i()}},[t]),(0,i.jsx)("div",{ref:m,className:"tv-three"})}function c(e,t,n){return Math.min(n,Math.max(t,e))}let d=e=>e>1048576?(e/1048576).toFixed(1)+" MB":Math.max(1,Math.round(e/1024))+" KB"}}]);

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.