summit/frontend/node_modules/@react-three/drei/index.cjs.js

2 lines
367 KiB
JavaScript
Raw Normal View History

2025-12-08 16:31:30 +00:00
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("react-dom/client"),n=require("three"),a=require("@react-three/fiber"),o=require("zustand"),i=require("@use-gesture/react"),s=require("maath"),l=require("@react-spring/three"),c=require("zustand/middleware"),u=require("three-stdlib"),d=require("zustand/shallow"),m=require("troika-three-text"),f=require("suspend-react"),p=require("meshline"),h=require("camera-controls"),x=require("hls.js"),y=require("stats.js"),v=require("stats-gl"),g=require("detect-gpu"),w=require("three-mesh-bvh"),z=require("react-composer"),b=require("@monogrid/gainmap-js"),E=require("tunnel-rat");function M(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function S(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var T=M(e),C=S(t),P=S(r),R=S(n),D=M(h),F=M(y),k=M(v),_=M(z),A=M(E);const L=new n.Vector3,I=new n.Vector3,B=new n.Vector3,V=new n.Vector2;function U(e,t,r){const n=L.setFromMatrixPosition(e.matrixWorld);n.project(t);const a=r.width/2,o=r.height/2;return[n.x*a+a,-n.y*o+o]}const O=e=>Math.abs(e)<1e-10?0:e;function N(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=O(t[r]*e.elements[r])+(15!==r?",":")");return r+n}const j=(W=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>N(e,W));var W;const G=(e,t)=>{return N(e,[1/(r=t),1/r,1/r,1,-1/r,-1/r,-1/r,-1,1/r,1/r,1/r,1,1,1,1,1],"translate(-50%,-50%)");var r};const H=C.forwardRef((({children:e,eps:t=.001,style:r,className:o,prepend:i,center:s,fullscreen:l,portal:c,distanceFactor:u,sprite:d=!1,transform:m=!1,occlude:f,onOcclude:p,castShadow:h,receiveShadow:x,material:y,geometry:v,zIndexRange:g=[16777271,0],calculatePosition:w=U,as:z="div",wrapperClass:b,pointerEvents:E="auto",...M},S)=>{const{gl:R,camera:D,scene:F,size:k,raycaster:_,events:A,viewport:N}=a.useThree(),[W]=C.useState((()=>document.createElement(z))),H=C.useRef(),$=C.useRef(null),q=C.useRef(0),X=C.useRef([0,0]),Z=C.useRef(null),Y=C.useRef(null),Q=(null==c?void 0:c.current)||A.connected||R.domElement.parentNode,K=C.useRef(null),J=C.useRef(!1),ee=C.useMemo((()=>f&&"blending"!==f||Array.isArray(f)&&f.length&&function(e){return e&&"object"==typeof e&&"current"in e}(f[0])),[f]);C.useLayoutEffect((()=>{const e=R.domElement;f&&"blending"===f?(e.style.zIndex=`${Math.floor(g[0]/2)}`,e.style.position="absolute",e.style.pointerEvents="none"):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)}),[f]),C.useLayoutEffect((()=>{if($.current){const e=H.current=P.createRoot(W);if(F.updateMatrixWorld(),m)W.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e=w($.current,D,k);W.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return Q&&(i?Q.prepend(W):Q.appendChild(W)),()=>{Q&&Q.removeChild(W),e.unmount()}}}),[Q,m]),C.useLayoutEffect((()=>{b&&(W.className=b)}),[b]);const te=C.useMemo((()=>m?{position:"absolute",top:0,left:0,width:k.width,height:k.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:s?"translate3d(-50%,-50%,0)":"none",...l&&{top:-k.height/2,left:-k.width/2,width:k.width,height:k.height},...r}),[r,s,l,k,m]),re=C.useMemo((()=>({position:"absolute",pointerEvents:E})),[E]);C.useLayoutEffect((()=>{var t,n;(J.current=!1,m)?null==(t=H.current)||t.render(C.createElement("div",{ref:Z,style:te},C.createElement("div",{ref:Y,style:re},C.createElement("div",{ref:S,className:o,style:r,children:e})))):null==(n=H.current)||n.render(C.createElement("div",{ref:S,style:te,className:o,children:e}))}));const ne=C.useRef(!0);a.useFrame((e=>{if($.current){D.updateMatrixWorld(),$.current.updateWorldMatrix(!0,!1);const e=m?X.current:w($.current,D,k);if(m||Math.abs(q.current-D.zoom)>t||Math.abs(X.current[0]-e[0])>t||Math.abs(X.curren