three-render-objects 1.26.3 → 1.26.7

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.
@@ -1,2 +1,2 @@
1
- // Version 1.26.3 three-render-objects - https://github.com/vasturiano/three-render-objects
2
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("three")):"function"==typeof define&&define.amd?define(["three"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).ThreeRenderObjects=t(e.THREE)}(this,(function(e){"use strict";function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var o,r,a=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(a.push(o.value),!t||a.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw r}}return a}(e,t)||r(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||r(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){if(e){if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}(".scene-nav-info {\n bottom: 5px;\n width: 100%;\n text-align: center;\n color: slategrey;\n opacity: 0.7;\n font-size: 10px;\n}\n\n.scene-tooltip {\n color: lavender;\n font-size: 15px;\n}\n\n.scene-nav-info, .scene-tooltip {\n position: absolute;\n font-family: sans-serif;\n pointer-events: none;\n}\n\n.scene-container canvas:focus {\n outline: none;\n}");const i={type:"change"},s={type:"start"},c={type:"end"};class l extends e.EventDispatcher{constructor(t,n){super(),void 0===n&&console.warn('THREE.TrackballControls: The second parameter "domElement" is now mandatory.'),n===document&&console.error('THREE.TrackballControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.');const o=this,r=-1,a=0,l=1,u=2,h=3,d=4;this.object=t,this.domElement=n,this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=["KeyA","KeyS","KeyD"],this.mouseButtons={LEFT:e.MOUSE.ROTATE,MIDDLE:e.MOUSE.DOLLY,RIGHT:e.MOUSE.PAN},this.target=new e.Vector3;const p=1e-6,f=new e.Vector3;let m=1,g=r,b=r,v=0,y=0,w=0;const E=new e.Vector3,S=new e.Vector2,_=new e.Vector2,k=new e.Vector3,P=new e.Vector2,T=new e.Vector2,x=new e.Vector2,C=new e.Vector2;this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.zoom0=this.object.zoom,this.handleResize=function(){const e=o.domElement.getBoundingClientRect(),t=o.domElement.ownerDocument.documentElement;o.screen.left=e.left+window.pageXOffset-t.clientLeft,o.screen.top=e.top+window.pageYOffset-t.clientTop,o.screen.width=e.width,o.screen.height=e.height};const j=function(){const t=new e.Vector2;return function(e,n){return t.set((e-o.screen.left)/o.screen.width,(n-o.screen.top)/o.screen.height),t}}(),O=function(){const t=new e.Vector2;return function(e,n){return t.set((e-.5*o.screen.width-o.screen.left)/(.5*o.screen.width),(o.screen.height+2*(o.screen.top-n))/o.screen.width),t}}();function R(e){if(!1!==o.enabled)switch(e.pointerType){case"mouse":case"pen":!function(e){if(e.preventDefault(),g===r)switch(e.button){case o.mouseButtons.LEFT:g=a;break;case o.mouseButtons.MIDDLE:g=l;break;case o.mouseButtons.RIGHT:g=u;break;default:g=r}const t=b!==r?b:g;t!==a||o.noRotate?t!==l||o.noZoom?t!==u||o.noPan||(x.copy(j(e.pageX,e.pageY)),C.copy(x)):(P.copy(j(e.pageX,e.pageY)),T.copy(P)):(_.copy(O(e.pageX,e.pageY)),S.copy(_));o.domElement.ownerDocument.addEventListener("pointermove",L),o.domElement.ownerDocument.addEventListener("pointerup",M),o.dispatchEvent(s)}(e)}}function L(e){if(!1!==o.enabled)switch(e.pointerType){case"mouse":case"pen":!function(e){if(!1===o.enabled)return;e.preventDefault();const t=b!==r?b:g;t!==a||o.noRotate?t!==l||o.noZoom?t!==u||o.noPan||C.copy(j(e.pageX,e.pageY)):T.copy(j(e.pageX,e.pageY)):(S.copy(_),_.copy(O(e.pageX,e.pageY)))}(e)}}function M(e){if(!1!==o.enabled)switch(e.pointerType){case"mouse":case"pen":!function(e){if(!1===o.enabled)return;e.preventDefault(),g=r,o.domElement.ownerDocument.removeEventListener("pointermove",L),o.domElement.ownerDocument.removeEventListener("pointerup",M),o.dispatchEvent(c)}(e)}}function D(e){!1!==o.enabled&&(window.removeEventListener("keydown",D),b===r&&(e.code!==o.keys[a]||o.noRotate?e.code!==o.keys[l]||o.noZoom?e.code!==o.keys[u]||o.noPan||(b=u):b=l:b=a))}function A(){!1!==o.enabled&&(b=r,window.addEventListener("keydown",D))}function I(e){if(!1!==o.enabled&&!0!==o.noZoom){switch(e.preventDefault(),e.deltaMode){case 2:P.y-=.025*e.deltaY;break;case 1:P.y-=.01*e.deltaY;break;default:P.y-=25e-5*e.deltaY}o.dispatchEvent(s),o.dispatchEvent(c)}}function V(e){if(!1!==o.enabled){switch(e.preventDefault(),e.touches.length){case 1:g=h,_.copy(O(e.touches[0].pageX,e.touches[0].pageY)),S.copy(_);break;default:g=d;const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;y=v=Math.sqrt(t*t+n*n);const o=(e.touches[0].pageX+e.touches[1].pageX)/2,r=(e.touches[0].pageY+e.touches[1].pageY)/2;x.copy(j(o,r)),C.copy(x)}o.dispatchEvent(s)}}function F(e){if(!1!==o.enabled)switch(e.preventDefault(),e.touches.length){case 1:S.copy(_),_.copy(O(e.touches[0].pageX,e.touches[0].pageY));break;default:const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;y=Math.sqrt(t*t+n*n);const o=(e.touches[0].pageX+e.touches[1].pageX)/2,r=(e.touches[0].pageY+e.touches[1].pageY)/2;C.copy(j(o,r))}}function z(e){if(!1!==o.enabled){switch(e.touches.length){case 0:g=r;break;case 1:g=h,_.copy(O(e.touches[0].pageX,e.touches[0].pageY)),S.copy(_)}o.dispatchEvent(c)}}function U(e){!1!==o.enabled&&e.preventDefault()}this.rotateCamera=function(){const t=new e.Vector3,n=new e.Quaternion,r=new e.Vector3,a=new e.Vector3,i=new e.Vector3,s=new e.Vector3;return function(){s.set(_.x-S.x,_.y-S.y,0);let e=s.length();e?(E.copy(o.object.position).sub(o.target),r.copy(E).normalize(),a.copy(o.object.up).normalize(),i.crossVectors(a,r).normalize(),a.setLength(_.y-S.y),i.setLength(_.x-S.x),s.copy(a.add(i)),t.crossVectors(s,E).normalize(),e*=o.rotateSpeed,n.setFromAxisAngle(t,e),E.applyQuaternion(n),o.object.up.applyQuaternion(n),k.copy(t),w=e):!o.staticMoving&&w&&(w*=Math.sqrt(1-o.dynamicDampingFactor),E.copy(o.object.position).sub(o.target),n.setFromAxisAngle(k,w),E.applyQuaternion(n),o.object.up.applyQuaternion(n)),S.copy(_)}}(),this.zoomCamera=function(){let e;g===d?(e=v/y,v=y,o.object.isPerspectiveCamera?E.multiplyScalar(e):o.object.isOrthographicCamera?(o.object.zoom*=e,o.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")):(e=1+(T.y-P.y)*o.zoomSpeed,1!==e&&e>0&&(o.object.isPerspectiveCamera?E.multiplyScalar(e):o.object.isOrthographicCamera?(o.object.zoom/=e,o.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")),o.staticMoving?P.copy(T):P.y+=(T.y-P.y)*this.dynamicDampingFactor)},this.panCamera=function(){const t=new e.Vector2,n=new e.Vector3,r=new e.Vector3;return function(){if(t.copy(C).sub(x),t.lengthSq()){if(o.object.isOrthographicCamera){const e=(o.object.right-o.object.left)/o.object.zoom/o.domElement.clientWidth,n=(o.object.top-o.object.bottom)/o.object.zoom/o.domElement.clientWidth;t.x*=e,t.y*=n}t.multiplyScalar(E.length()*o.panSpeed),r.copy(E).cross(o.object.up).setLength(t.x),r.add(n.copy(o.object.up).setLength(t.y)),o.object.position.add(r),o.target.add(r),o.staticMoving?x.copy(C):x.add(t.subVectors(C,x).multiplyScalar(o.dynamicDampingFactor))}}}(),this.checkDistances=function(){o.noZoom&&o.noPan||(E.lengthSq()>o.maxDistance*o.maxDistance&&(o.object.position.addVectors(o.target,E.setLength(o.maxDistance)),P.copy(T)),E.lengthSq()<o.minDistance*o.minDistance&&(o.object.position.addVectors(o.target,E.setLength(o.minDistance)),P.copy(T)))},this.update=function(){E.subVectors(o.object.position,o.target),o.noRotate||o.rotateCamera(),o.noZoom||o.zoomCamera(),o.noPan||o.panCamera(),o.object.position.addVectors(o.target,E),o.object.isPerspectiveCamera?(o.checkDistances(),o.object.lookAt(o.target),f.distanceToSquared(o.object.position)>p&&(o.dispatchEvent(i),f.copy(o.object.position))):o.object.isOrthographicCamera?(o.object.lookAt(o.target),(f.distanceToSquared(o.object.position)>p||m!==o.object.zoom)&&(o.dispatchEvent(i),f.copy(o.object.position),m=o.object.zoom)):console.warn("THREE.TrackballControls: Unsupported camera type")},this.reset=function(){g=r,b=r,o.target.copy(o.target0),o.object.position.copy(o.position0),o.object.up.copy(o.up0),o.object.zoom=o.zoom0,o.object.updateProjectionMatrix(),E.subVectors(o.object.position,o.target),o.object.lookAt(o.target),o.dispatchEvent(i),f.copy(o.object.position),m=o.object.zoom},this.dispose=function(){o.domElement.removeEventListener("contextmenu",U),o.domElement.removeEventListener("pointerdown",R),o.domElement.removeEventListener("wheel",I),o.domElement.removeEventListener("touchstart",V),o.domElement.removeEventListener("touchend",z),o.domElement.removeEventListener("touchmove",F),o.domElement.ownerDocument.removeEventListener("pointermove",L),o.domElement.ownerDocument.removeEventListener("pointerup",M),window.removeEventListener("keydown",D),window.removeEventListener("keyup",A)},this.domElement.addEventListener("contextmenu",U),this.domElement.addEventListener("pointerdown",R),this.domElement.addEventListener("wheel",I,{passive:!1}),this.domElement.addEventListener("touchstart",V,{passive:!1}),this.domElement.addEventListener("touchend",z),this.domElement.addEventListener("touchmove",F,{passive:!1}),this.domElement.ownerDocument.addEventListener("pointermove",L),this.domElement.ownerDocument.addEventListener("pointerup",M),window.addEventListener("keydown",D),window.addEventListener("keyup",A),this.handleResize(),this.update()}}const u={type:"change"},h={type:"start"},d={type:"end"};class p extends e.EventDispatcher{constructor(t,n){super(),void 0===n&&console.warn('THREE.OrbitControls: The second parameter "domElement" is now mandatory.'),n===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=t,this.domElement=n,this.enabled=!0,this.target=new e.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:e.MOUSE.ROTATE,MIDDLE:e.MOUSE.DOLLY,RIGHT:e.MOUSE.PAN},this.touches={ONE:e.TOUCH.ROTATE,TWO:e.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return s.phi},this.getAzimuthalAngle=function(){return s.theta},this.listenToKeyEvents=function(e){e.addEventListener("keydown",H),this._domElementKeyEvents=e},this.saveState=function(){o.target0.copy(o.target),o.position0.copy(o.object.position),o.zoom0=o.object.zoom},this.reset=function(){o.target.copy(o.target0),o.object.position.copy(o.position0),o.object.zoom=o.zoom0,o.object.updateProjectionMatrix(),o.dispatchEvent(u),o.update(),a=r.NONE},this.update=function(){const n=new e.Vector3,h=(new e.Quaternion).setFromUnitVectors(t.up,new e.Vector3(0,1,0)),d=h.clone().invert(),m=new e.Vector3,g=new e.Quaternion,b=2*Math.PI;return function(){const e=o.object.position;n.copy(e).sub(o.target),n.applyQuaternion(h),s.setFromVector3(n),o.autoRotate&&a===r.NONE&&P(2*Math.PI/60/60*o.autoRotateSpeed),o.enableDamping?(s.theta+=c.theta*o.dampingFactor,s.phi+=c.phi*o.dampingFactor):(s.theta+=c.theta,s.phi+=c.phi);let t=o.minAzimuthAngle,v=o.maxAzimuthAngle;return isFinite(t)&&isFinite(v)&&(t<-Math.PI?t+=b:t>Math.PI&&(t-=b),v<-Math.PI?v+=b:v>Math.PI&&(v-=b),s.theta=t<=v?Math.max(t,Math.min(v,s.theta)):s.theta>(t+v)/2?Math.max(t,s.theta):Math.min(v,s.theta)),s.phi=Math.max(o.minPolarAngle,Math.min(o.maxPolarAngle,s.phi)),s.makeSafe(),s.radius*=l,s.radius=Math.max(o.minDistance,Math.min(o.maxDistance,s.radius)),!0===o.enableDamping?o.target.addScaledVector(p,o.dampingFactor):o.target.add(p),n.setFromSpherical(s),n.applyQuaternion(d),e.copy(o.target).add(n),o.object.lookAt(o.target),!0===o.enableDamping?(c.theta*=1-o.dampingFactor,c.phi*=1-o.dampingFactor,p.multiplyScalar(1-o.dampingFactor)):(c.set(0,0,0),p.set(0,0,0)),l=1,!!(f||m.distanceToSquared(o.object.position)>i||8*(1-g.dot(o.object.quaternion))>i)&&(o.dispatchEvent(u),m.copy(o.object.position),g.copy(o.object.quaternion),f=!1,!0)}}(),this.dispose=function(){o.domElement.removeEventListener("contextmenu",Q),o.domElement.removeEventListener("pointerdown",U),o.domElement.removeEventListener("wheel",B),o.domElement.removeEventListener("touchstart",X),o.domElement.removeEventListener("touchend",K),o.domElement.removeEventListener("touchmove",q),o.domElement.ownerDocument.removeEventListener("pointermove",N),o.domElement.ownerDocument.removeEventListener("pointerup",Y),null!==o._domElementKeyEvents&&o._domElementKeyEvents.removeEventListener("keydown",H)};const o=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let a=r.NONE;const i=1e-6,s=new e.Spherical,c=new e.Spherical;let l=1;const p=new e.Vector3;let f=!1;const m=new e.Vector2,g=new e.Vector2,b=new e.Vector2,v=new e.Vector2,y=new e.Vector2,w=new e.Vector2,E=new e.Vector2,S=new e.Vector2,_=new e.Vector2;function k(){return Math.pow(.95,o.zoomSpeed)}function P(e){c.theta-=e}function T(e){c.phi-=e}const x=function(){const t=new e.Vector3;return function(e,n){t.setFromMatrixColumn(n,0),t.multiplyScalar(-e),p.add(t)}}(),C=function(){const t=new e.Vector3;return function(e,n){!0===o.screenSpacePanning?t.setFromMatrixColumn(n,1):(t.setFromMatrixColumn(n,0),t.crossVectors(o.object.up,t)),t.multiplyScalar(e),p.add(t)}}(),j=function(){const t=new e.Vector3;return function(e,n){const r=o.domElement;if(o.object.isPerspectiveCamera){const a=o.object.position;t.copy(a).sub(o.target);let i=t.length();i*=Math.tan(o.object.fov/2*Math.PI/180),x(2*e*i/r.clientHeight,o.object.matrix),C(2*n*i/r.clientHeight,o.object.matrix)}else o.object.isOrthographicCamera?(x(e*(o.object.right-o.object.left)/o.object.zoom/r.clientWidth,o.object.matrix),C(n*(o.object.top-o.object.bottom)/o.object.zoom/r.clientHeight,o.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),o.enablePan=!1)}}();function O(e){o.object.isPerspectiveCamera?l/=e:o.object.isOrthographicCamera?(o.object.zoom=Math.max(o.minZoom,Math.min(o.maxZoom,o.object.zoom*e)),o.object.updateProjectionMatrix(),f=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),o.enableZoom=!1)}function R(e){o.object.isPerspectiveCamera?l*=e:o.object.isOrthographicCamera?(o.object.zoom=Math.max(o.minZoom,Math.min(o.maxZoom,o.object.zoom/e)),o.object.updateProjectionMatrix(),f=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),o.enableZoom=!1)}function L(e){m.set(e.clientX,e.clientY)}function M(e){v.set(e.clientX,e.clientY)}function D(e){if(1==e.touches.length)m.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);m.set(t,n)}}function A(e){if(1==e.touches.length)v.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);v.set(t,n)}}function I(e){const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,o=Math.sqrt(t*t+n*n);E.set(0,o)}function V(e){if(1==e.touches.length)g.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);g.set(t,n)}b.subVectors(g,m).multiplyScalar(o.rotateSpeed);const t=o.domElement;P(2*Math.PI*b.x/t.clientHeight),T(2*Math.PI*b.y/t.clientHeight),m.copy(g)}function F(e){if(1==e.touches.length)y.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);y.set(t,n)}w.subVectors(y,v).multiplyScalar(o.panSpeed),j(w.x,w.y),v.copy(y)}function z(e){const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,r=Math.sqrt(t*t+n*n);S.set(0,r),_.set(0,Math.pow(S.y/E.y,o.zoomSpeed)),O(_.y),E.copy(S)}function U(t){if(!1!==o.enabled)switch(t.pointerType){case"mouse":case"pen":!function(t){let n;switch(t.preventDefault(),o.domElement.focus?o.domElement.focus():window.focus(),t.button){case 0:n=o.mouseButtons.LEFT;break;case 1:n=o.mouseButtons.MIDDLE;break;case 2:n=o.mouseButtons.RIGHT;break;default:n=-1}switch(n){case e.MOUSE.DOLLY:if(!1===o.enableZoom)return;!function(e){E.set(e.clientX,e.clientY)}(t),a=r.DOLLY;break;case e.MOUSE.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===o.enablePan)return;M(t),a=r.PAN}else{if(!1===o.enableRotate)return;L(t),a=r.ROTATE}break;case e.MOUSE.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===o.enableRotate)return;L(t),a=r.ROTATE}else{if(!1===o.enablePan)return;M(t),a=r.PAN}break;default:a=r.NONE}a!==r.NONE&&(o.domElement.ownerDocument.addEventListener("pointermove",N),o.domElement.ownerDocument.addEventListener("pointerup",Y),o.dispatchEvent(h))}(t)}}function N(e){if(!1!==o.enabled)switch(e.pointerType){case"mouse":case"pen":!function(e){if(!1===o.enabled)return;switch(e.preventDefault(),a){case r.ROTATE:if(!1===o.enableRotate)return;!function(e){g.set(e.clientX,e.clientY),b.subVectors(g,m).multiplyScalar(o.rotateSpeed);const t=o.domElement;P(2*Math.PI*b.x/t.clientHeight),T(2*Math.PI*b.y/t.clientHeight),m.copy(g),o.update()}(e);break;case r.DOLLY:if(!1===o.enableZoom)return;!function(e){S.set(e.clientX,e.clientY),_.subVectors(S,E),_.y>0?O(k()):_.y<0&&R(k()),E.copy(S),o.update()}(e);break;case r.PAN:if(!1===o.enablePan)return;!function(e){y.set(e.clientX,e.clientY),w.subVectors(y,v).multiplyScalar(o.panSpeed),j(w.x,w.y),v.copy(y),o.update()}(e)}}(e)}}function Y(e){switch(e.pointerType){case"mouse":case"pen":!function(e){if(o.domElement.ownerDocument.removeEventListener("pointermove",N),o.domElement.ownerDocument.removeEventListener("pointerup",Y),!1===o.enabled)return;o.dispatchEvent(d),a=r.NONE}()}}function B(e){!1===o.enabled||!1===o.enableZoom||a!==r.NONE&&a!==r.ROTATE||(e.preventDefault(),o.dispatchEvent(h),function(e){e.deltaY<0?R(k()):e.deltaY>0&&O(k()),o.update()}(e),o.dispatchEvent(d))}function H(e){!1!==o.enabled&&!1!==o.enablePan&&function(e){let t=!1;switch(e.code){case o.keys.UP:j(0,o.keyPanSpeed),t=!0;break;case o.keys.BOTTOM:j(0,-o.keyPanSpeed),t=!0;break;case o.keys.LEFT:j(o.keyPanSpeed,0),t=!0;break;case o.keys.RIGHT:j(-o.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),o.update())}(e)}function X(t){if(!1!==o.enabled){switch(t.preventDefault(),t.touches.length){case 1:switch(o.touches.ONE){case e.TOUCH.ROTATE:if(!1===o.enableRotate)return;D(t),a=r.TOUCH_ROTATE;break;case e.TOUCH.PAN:if(!1===o.enablePan)return;A(t),a=r.TOUCH_PAN;break;default:a=r.NONE}break;case 2:switch(o.touches.TWO){case e.TOUCH.DOLLY_PAN:if(!1===o.enableZoom&&!1===o.enablePan)return;!function(e){o.enableZoom&&I(e),o.enablePan&&A(e)}(t),a=r.TOUCH_DOLLY_PAN;break;case e.TOUCH.DOLLY_ROTATE:if(!1===o.enableZoom&&!1===o.enableRotate)return;!function(e){o.enableZoom&&I(e),o.enableRotate&&D(e)}(t),a=r.TOUCH_DOLLY_ROTATE;break;default:a=r.NONE}break;default:a=r.NONE}a!==r.NONE&&o.dispatchEvent(h)}}function q(e){if(!1!==o.enabled)switch(e.preventDefault(),a){case r.TOUCH_ROTATE:if(!1===o.enableRotate)return;V(e),o.update();break;case r.TOUCH_PAN:if(!1===o.enablePan)return;F(e),o.update();break;case r.TOUCH_DOLLY_PAN:if(!1===o.enableZoom&&!1===o.enablePan)return;!function(e){o.enableZoom&&z(e),o.enablePan&&F(e)}(e),o.update();break;case r.TOUCH_DOLLY_ROTATE:if(!1===o.enableZoom&&!1===o.enableRotate)return;!function(e){o.enableZoom&&z(e),o.enableRotate&&V(e)}(e),o.update();break;default:a=r.NONE}}function K(e){!1!==o.enabled&&(o.dispatchEvent(d),a=r.NONE)}function Q(e){!1!==o.enabled&&e.preventDefault()}o.domElement.addEventListener("contextmenu",Q),o.domElement.addEventListener("pointerdown",U),o.domElement.addEventListener("wheel",B,{passive:!1}),o.domElement.addEventListener("touchstart",X,{passive:!1}),o.domElement.addEventListener("touchend",K),o.domElement.addEventListener("touchmove",q,{passive:!1}),this.update()}}const f={type:"change"};class m extends e.EventDispatcher{constructor(t,n){super(),void 0===n&&(console.warn('THREE.FlyControls: The second parameter "domElement" is now mandatory.'),n=document),this.object=t,this.domElement=n,this.movementSpeed=1,this.rollSpeed=.005,this.dragToLook=!1,this.autoForward=!1;const o=this,r=1e-6,a=new e.Quaternion,i=new e.Vector3;this.tmpQuaternion=new e.Quaternion,this.mouseStatus=0,this.moveState={up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0},this.moveVector=new e.Vector3(0,0,0),this.rotationVector=new e.Vector3(0,0,0),this.keydown=function(e){if(!e.altKey){switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=.1;break;case"KeyW":this.moveState.forward=1;break;case"KeyS":this.moveState.back=1;break;case"KeyA":this.moveState.left=1;break;case"KeyD":this.moveState.right=1;break;case"KeyR":this.moveState.up=1;break;case"KeyF":this.moveState.down=1;break;case"ArrowUp":this.moveState.pitchUp=1;break;case"ArrowDown":this.moveState.pitchDown=1;break;case"ArrowLeft":this.moveState.yawLeft=1;break;case"ArrowRight":this.moveState.yawRight=1;break;case"KeyQ":this.moveState.rollLeft=1;break;case"KeyE":this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}},this.keyup=function(e){switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=1;break;case"KeyW":this.moveState.forward=0;break;case"KeyS":this.moveState.back=0;break;case"KeyA":this.moveState.left=0;break;case"KeyD":this.moveState.right=0;break;case"KeyR":this.moveState.up=0;break;case"KeyF":this.moveState.down=0;break;case"ArrowUp":this.moveState.pitchUp=0;break;case"ArrowDown":this.moveState.pitchDown=0;break;case"ArrowLeft":this.moveState.yawLeft=0;break;case"ArrowRight":this.moveState.yawRight=0;break;case"KeyQ":this.moveState.rollLeft=0;break;case"KeyE":this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()},this.mousedown=function(e){if(this.domElement!==document&&this.domElement.focus(),e.preventDefault(),this.dragToLook)this.mouseStatus++;else{switch(e.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}},this.mousemove=function(e){if(!this.dragToLook||this.mouseStatus>0){const t=this.getContainerDimensions(),n=t.size[0]/2,o=t.size[1]/2;this.moveState.yawLeft=-(e.pageX-t.offset[0]-n)/n,this.moveState.pitchDown=(e.pageY-t.offset[1]-o)/o,this.updateRotationVector()}},this.mouseup=function(e){if(e.preventDefault(),this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(e.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()},this.update=function(e){const t=e*o.movementSpeed,n=e*o.rollSpeed;o.object.translateX(o.moveVector.x*t),o.object.translateY(o.moveVector.y*t),o.object.translateZ(o.moveVector.z*t),o.tmpQuaternion.set(o.rotationVector.x*n,o.rotationVector.y*n,o.rotationVector.z*n,1).normalize(),o.object.quaternion.multiply(o.tmpQuaternion),(i.distanceToSquared(o.object.position)>r||8*(1-a.dot(o.object.quaternion))>r)&&(o.dispatchEvent(f),a.copy(o.object.quaternion),i.copy(o.object.position))},this.updateMovementVector=function(){const e=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-e+this.moveState.back},this.updateRotationVector=function(){this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft},this.getContainerDimensions=function(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}},this.dispose=function(){this.domElement.removeEventListener("contextmenu",g),this.domElement.removeEventListener("mousedown",c),this.domElement.removeEventListener("mousemove",s),this.domElement.removeEventListener("mouseup",l),window.removeEventListener("keydown",u),window.removeEventListener("keyup",h)};const s=this.mousemove.bind(this),c=this.mousedown.bind(this),l=this.mouseup.bind(this),u=this.keydown.bind(this),h=this.keyup.bind(this);this.domElement.addEventListener("contextmenu",g),this.domElement.addEventListener("mousemove",s),this.domElement.addEventListener("mousedown",c),this.domElement.addEventListener("mouseup",l),window.addEventListener("keydown",u),window.addEventListener("keyup",h),this.updateMovementVector(),this.updateRotationVector()}}function g(e){e.preventDefault()}var b={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\t\t}"};class v{constructor(){this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}}const y=new e.OrthographicCamera(-1,1,1,-1,0,1),w=new e.BufferGeometry;w.setAttribute("position",new e.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),w.setAttribute("uv",new e.Float32BufferAttribute([0,2,0,0,2,0],2));class E{constructor(t){this._mesh=new e.Mesh(w,t)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,y)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}class S extends v{constructor(t,n){super(),this.textureID=void 0!==n?n:"tDiffuse",t instanceof e.ShaderMaterial?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=e.UniformsUtils.clone(t.uniforms),this.material=new e.ShaderMaterial({defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this.fsQuad=new E(this.material)}render(e,t,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}}class _ extends v{constructor(e,t){super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,n){const o=e.getContext(),r=e.state;let a,i;r.buffers.color.setMask(!1),r.buffers.depth.setMask(!1),r.buffers.color.setLocked(!0),r.buffers.depth.setLocked(!0),this.inverse?(a=0,i=1):(a=1,i=0),r.buffers.stencil.setTest(!0),r.buffers.stencil.setOp(o.REPLACE,o.REPLACE,o.REPLACE),r.buffers.stencil.setFunc(o.ALWAYS,a,4294967295),r.buffers.stencil.setClear(i),r.buffers.stencil.setLocked(!0),e.setRenderTarget(n),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),r.buffers.color.setLocked(!1),r.buffers.depth.setLocked(!1),r.buffers.stencil.setLocked(!1),r.buffers.stencil.setFunc(o.EQUAL,1,4294967295),r.buffers.stencil.setOp(o.KEEP,o.KEEP,o.KEEP),r.buffers.stencil.setLocked(!0)}}class k extends v{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}class P{constructor(t,n){if(this.renderer=t,void 0===n){const o={minFilter:e.LinearFilter,magFilter:e.LinearFilter,format:e.RGBAFormat},r=t.getSize(new e.Vector2);this._pixelRatio=t.getPixelRatio(),this._width=r.width,this._height=r.height,(n=new e.WebGLRenderTarget(this._width*this._pixelRatio,this._height*this._pixelRatio,o)).texture.name="EffectComposer.rt1"}else this._pixelRatio=1,this._width=n.width,this._height=n.height;this.renderTarget1=n,this.renderTarget2=n.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],void 0===b&&console.error("THREE.EffectComposer relies on CopyShader"),void 0===S&&console.error("THREE.EffectComposer relies on ShaderPass"),this.copyPass=new S(b),this.clock=new e.Clock}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t<this.passes.length;t++)if(this.passes[t].enabled)return!1;return!0}render(e){void 0===e&&(e=this.clock.getDelta());const t=this.renderer.getRenderTarget();let n=!1;for(let t=0,o=this.passes.length;t<o;t++){const o=this.passes[t];if(!1!==o.enabled){if(o.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(t),o.render(this.renderer,this.writeBuffer,this.readBuffer,e,n),o.needsSwap){if(n){const t=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(t.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,e),n.setFunc(t.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==_&&(o instanceof _?n=!0:o instanceof k&&(n=!1))}}this.renderer.setRenderTarget(t)}reset(t){if(void 0===t){const n=this.renderer.getSize(new e.Vector2);this._pixelRatio=this.renderer.getPixelRatio(),this._width=n.width,this._height=n.height,(t=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=t,this.renderTarget2=t.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(e,t){this._width=e,this._height=t;const n=this._width*this._pixelRatio,o=this._height*this._pixelRatio;this.renderTarget1.setSize(n,o),this.renderTarget2.setSize(n,o);for(let e=0;e<this.passes.length;e++)this.passes[e].setSize(n,o)}setPixelRatio(e){this._pixelRatio=e,this.setSize(this._width,this._height)}}new e.OrthographicCamera(-1,1,1,-1,0,1);const T=new e.BufferGeometry;T.setAttribute("position",new e.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),T.setAttribute("uv",new e.Float32BufferAttribute([0,2,0,0,2,0],2));class x extends v{constructor(t,n,o,r,a){super(),this.scene=t,this.camera=n,this.overrideMaterial=o,this.clearColor=r,this.clearAlpha=void 0!==a?a:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new e.Color}render(e,t,n){const o=e.autoClear;let r,a;e.autoClear=!1,void 0!==this.overrideMaterial&&(a=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),r=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:n),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),this.clearColor&&e.setClearColor(this._oldClearColor,r),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=a),e.autoClear=o}}function C(){return(C=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function j(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function R(e){return(R=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function L(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function M(e,t,n){return(M=L()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var r=new(Function.bind.apply(e,o));return n&&O(r,n.prototype),r}).apply(null,arguments)}function D(e){var t="function"==typeof Map?new Map:void 0;return(D=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,o)}function o(){return M(e,arguments,R(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),O(o,e)})(e)}var A={1:"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\n\n",2:"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\n\n",3:"Passed an incorrect argument to a color function, please pass a string representation of a color.\n\n",4:"Couldn't generate valid rgb string from %s, it returned %s.\n\n",5:"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\n\n",6:"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\n\n",7:"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\n\n",8:"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\n\n",9:"Please provide a number of steps to the modularScale helper.\n\n",10:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",11:'Invalid value passed as base to modularScale, expected number or em string but got "%s"\n\n',12:'Expected a string ending in "px" or a number passed as the first argument to %s(), got "%s" instead.\n\n',13:'Expected a string ending in "px" or a number passed as the second argument to %s(), got "%s" instead.\n\n',14:'Passed invalid pixel value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',15:'Passed invalid base value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',16:"You must provide a template to this method.\n\n",17:"You passed an unsupported selector state to this method.\n\n",18:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",19:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",20:"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",21:"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\n\n",22:"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\n\n",23:"fontFace expects a name of a font-family.\n\n",24:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",25:"fontFace expects localFonts to be an array.\n\n",26:"fontFace expects fileFormats to be an array.\n\n",27:"radialGradient requries at least 2 color-stops to properly render.\n\n",28:"Please supply a filename to retinaImage() as the first argument.\n\n",29:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",30:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",31:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\n\n",32:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\n\n",33:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\n\n",34:"borderRadius expects a radius value as a string or number as the second argument.\n\n",35:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',36:"Property must be a string value.\n\n",37:"Syntax Error at %s.\n\n",38:"Formula contains a function that needs parentheses at %s.\n\n",39:"Formula is missing closing parenthesis at %s.\n\n",40:"Formula has too many closing parentheses at %s.\n\n",41:"All values in a formula must have the same unit or be unitless.\n\n",42:"Please provide a number of steps to the modularScale helper.\n\n",43:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",44:"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\n\n",45:"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\n\n",46:"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\n\n",47:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",48:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",49:"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",50:"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\n\n",51:"Expects the first argument object to have the properties prop, fromSize, and toSize.\n\n",52:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",53:"fontFace expects localFonts to be an array.\n\n",54:"fontFace expects fileFormats to be an array.\n\n",55:"fontFace expects a name of a font-family.\n\n",56:"linearGradient requries at least 2 color-stops to properly render.\n\n",57:"radialGradient requries at least 2 color-stops to properly render.\n\n",58:"Please supply a filename to retinaImage() as the first argument.\n\n",59:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",60:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",61:"Property must be a string value.\n\n",62:"borderRadius expects a radius value as a string or number as the second argument.\n\n",63:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',64:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\n\n",65:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\n\n",66:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\n\n",67:"You must provide a template to this method.\n\n",68:"You passed an unsupported selector state to this method.\n\n",69:'Expected a string ending in "px" or a number passed as the first argument to %s(), got %s instead.\n\n',70:'Expected a string ending in "px" or a number passed as the second argument to %s(), got %s instead.\n\n',71:'Passed invalid pixel value %s to %s(), please pass a value like "12px" or 12.\n\n',72:'Passed invalid base value %s to %s(), please pass a value like "12px" or 12.\n\n',73:"Please provide a valid CSS variable.\n\n",74:"CSS variable not found and no default was provided.\n\n",75:"important requires a valid style object, got a %s instead.\n\n",76:"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\n\n",77:'remToPx expects a value in "rem" but you provided it in "%s".\n\n',78:'base must be set in "px" or "%" but you set it in "%s".\n'};function I(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o,r=t[0],a=[];for(o=1;o<t.length;o+=1)a.push(t[o]);return a.forEach((function(e){r=r.replace(/%[a-z]/,e)})),r}var V=function(e){var t,n;function o(t){var n;if("production"===process.env.NODE_ENV)n=e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+t+" for more information.")||this;else{for(var o=arguments.length,r=new Array(o>1?o-1:0),a=1;a<o;a++)r[a-1]=arguments[a];n=e.call(this,I.apply(void 0,[A[t]].concat(r)))||this}return j(n)}return n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,O(t,n),o}(D(Error));function F(e){return Math.round(255*e)}function z(e,t,n){return F(e)+","+F(t)+","+F(n)}function U(e,t,n,o){if(void 0===o&&(o=z),0===t)return o(n,n,n);var r=(e%360+360)%360/60,a=(1-Math.abs(2*n-1))*t,i=a*(1-Math.abs(r%2-1)),s=0,c=0,l=0;r>=0&&r<1?(s=a,c=i):r>=1&&r<2?(s=i,c=a):r>=2&&r<3?(c=a,l=i):r>=3&&r<4?(c=i,l=a):r>=4&&r<5?(s=i,l=a):r>=5&&r<6&&(s=a,l=i);var u=n-a/2;return o(s+u,c+u,l+u)}var N={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var Y=/^#[a-fA-F0-9]{6}$/,B=/^#[a-fA-F0-9]{8}$/,H=/^#[a-fA-F0-9]{3}$/,X=/^#[a-fA-F0-9]{4}$/,q=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i,K=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i,Q=/^hsl\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,Z=/^hsla\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i;function G(e){if("string"!=typeof e)throw new V(3);var t=function(e){if("string"!=typeof e)return e;var t=e.toLowerCase();return N[t]?"#"+N[t]:e}(e);if(t.match(Y))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(B)){var n=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:n}}if(t.match(H))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(X)){var o=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:o}}var r=q.exec(t);if(r)return{red:parseInt(""+r[1],10),green:parseInt(""+r[2],10),blue:parseInt(""+r[3],10)};var a=K.exec(t);if(a)return{red:parseInt(""+a[1],10),green:parseInt(""+a[2],10),blue:parseInt(""+a[3],10),alpha:parseFloat(""+a[4])};var i=Q.exec(t);if(i){var s="rgb("+U(parseInt(""+i[1],10),parseInt(""+i[2],10)/100,parseInt(""+i[3],10)/100)+")",c=q.exec(s);if(!c)throw new V(4,t,s);return{red:parseInt(""+c[1],10),green:parseInt(""+c[2],10),blue:parseInt(""+c[3],10)}}var l=Z.exec(t);if(l){var u="rgb("+U(parseInt(""+l[1],10),parseInt(""+l[2],10)/100,parseInt(""+l[3],10)/100)+")",h=q.exec(u);if(!h)throw new V(4,t,u);return{red:parseInt(""+h[1],10),green:parseInt(""+h[2],10),blue:parseInt(""+h[3],10),alpha:parseFloat(""+l[4])}}throw new V(5)}var W=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e};function $(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function J(e,t,n){if("number"==typeof e&&"number"==typeof t&&"number"==typeof n)return W("#"+$(e)+$(t)+$(n));if("object"==typeof e&&void 0===t&&void 0===n)return W("#"+$(e.red)+$(e.green)+$(e.blue));throw new V(6)}function ee(e,t,n){return function(){var o=n.concat(Array.prototype.slice.call(arguments));return o.length>=t?e.apply(this,o):ee(e,t,o)}}function te(e){return ee(e,e.length,[])}function ne(e,t){if("transparent"===t)return t;var n,o,r,a=G(t),i="number"==typeof a.alpha?a.alpha:1;return function(e,t,n,o){if("string"==typeof e&&"number"==typeof t){var r=G(e);return"rgba("+r.red+","+r.green+","+r.blue+","+t+")"}if("number"==typeof e&&"number"==typeof t&&"number"==typeof n&&"number"==typeof o)return o>=1?J(e,t,n):"rgba("+e+","+t+","+n+","+o+")";if("object"==typeof e&&void 0===t&&void 0===n&&void 0===o)return e.alpha>=1?J(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new V(7)}(C({},a,{alpha:(n=0,o=1,r=(100*i+100*parseFloat(e))/100,Math.max(n,Math.min(o,r)))}))}var oe,re=te(ne),ae={Linear:{None:function(e){return e}},Quadratic:{In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}},Cubic:{In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}},Quartic:{In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}},Quintic:{In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}},Sinusoidal:{In:function(e){return 1-Math.cos(e*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return.5*(1-Math.cos(Math.PI*e))}},Exponential:{In:function(e){return 0===e?0:Math.pow(1024,e-1)},Out:function(e){return 1===e?1:1-Math.pow(2,-10*e)},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(2-Math.pow(2,-10*(e-1)))}},Circular:{In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},Elastic:{In:function(e){return 0===e?0:1===e?1:-Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)},Out:function(e){return 0===e?0:1===e?1:Math.pow(2,-10*e)*Math.sin(5*(e-.1)*Math.PI)+1},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?-.5*Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)+1}},Back:{In:function(e){var t=1.70158;return e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?e*e*((t+1)*e-t)*.5:.5*((e-=2)*e*((t+1)*e+t)+2)}},Bounce:{In:function(e){return 1-ae.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?.5*ae.Bounce.In(2*e):.5*ae.Bounce.Out(2*e-1)+.5}}},ie="undefined"==typeof self&&"undefined"!=typeof process&&process.hrtime?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof self&&void 0!==self.performance&&void 0!==self.performance.now?self.performance.now.bind(self.performance):void 0!==Date.now?Date.now:function(){return(new Date).getTime()},se=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var e=this;return Object.keys(this._tweens).map((function(t){return e._tweens[t]}))},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(e){this._tweens[e.getId()]=e,this._tweensAddedDuringUpdate[e.getId()]=e},e.prototype.remove=function(e){delete this._tweens[e.getId()],delete this._tweensAddedDuringUpdate[e.getId()]},e.prototype.update=function(e,t){void 0===e&&(e=ie()),void 0===t&&(t=!1);var n=Object.keys(this._tweens);if(0===n.length)return!1;for(;n.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o<n.length;o++){var r=this._tweens[n[o]],a=!t;r&&!1===r.update(e,a)&&!t&&delete this._tweens[n[o]]}n=Object.keys(this._tweensAddedDuringUpdate)}return!0},e}(),ce={Linear:function(e,t){var n=e.length-1,o=n*t,r=Math.floor(o),a=ce.Utils.Linear;return t<0?a(e[0],e[1],o):t>1?a(e[n],e[n-1],n-o):a(e[r],e[r+1>n?n:r+1],o-r)},Bezier:function(e,t){for(var n=0,o=e.length-1,r=Math.pow,a=ce.Utils.Bernstein,i=0;i<=o;i++)n+=r(1-t,o-i)*r(t,i)*e[i]*a(o,i);return n},CatmullRom:function(e,t){var n=e.length-1,o=n*t,r=Math.floor(o),a=ce.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(r=Math.floor(o=n*(1+t))),a(e[(r-1+n)%n],e[r],e[(r+1)%n],e[(r+2)%n],o-r)):t<0?e[0]-(a(e[0],e[0],e[1],e[1],-o)-e[0]):t>1?e[n]-(a(e[n],e[n],e[n-1],e[n-1],o-n)-e[n]):a(e[r?r-1:0],e[r],e[n<r+1?n:r+1],e[n<r+2?n:r+2],o-r)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=ce.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:(oe=[1],function(e){var t=1;if(oe[e])return oe[e];for(var n=e;n>1;n--)t*=n;return oe[e]=t,t}),CatmullRom:function(e,t,n,o,r){var a=.5*(n-e),i=.5*(o-t),s=r*r;return(2*t-2*n+a+i)*(r*s)+(-3*t+3*n-2*a-i)*s+a*r+t}}},le=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),ue=new se,he=function(){function e(e,t){void 0===t&&(t=ue),this._object=e,this._group=t,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=ae.Linear.None,this._interpolationFunction=ce.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._id=le.nextId(),this._isChainStopped=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.to=function(e,t){return this._valuesEnd=Object.create(e),void 0!==t&&(this._duration=t),this},e.prototype.duration=function(e){return this._duration=e,this},e.prototype.start=function(e){if(this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed)for(var t in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(t),this._valuesStart[t]=this._valuesStartRepeat[t];return this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=void 0!==e?"string"==typeof e?ie()+parseFloat(e):e:ie(),this._startTime+=this._delayTime,this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat),this},e.prototype._setupProperties=function(e,t,n,o){for(var r in n){var a=e[r],i=Array.isArray(a),s=i?"array":typeof a,c=!i&&Array.isArray(n[r]);if("undefined"!==s&&"function"!==s){if(c){var l=n[r];if(0===l.length)continue;l=l.map(this._handleRelativeValue.bind(this,a)),n[r]=[a].concat(l)}if("object"!==s&&!i||!a||c)void 0===t[r]&&(t[r]=a),i||(t[r]*=1),o[r]=c?n[r].slice().reverse():t[r]||0;else{for(var u in t[r]=i?[]:{},a)t[r][u]=a[u];o[r]=i?[]:{},this._setupProperties(a,t[r],n[r],o[r])}}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(e){return void 0===e&&(e=ie()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=e,this._group&&this._group.remove(this)),this},e.prototype.resume=function(e){return void 0===e&&(e=ie()),this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=e-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this):this},e.prototype.stopChainedTweens=function(){for(var e=0,t=this._chainedTweens.length;e<t;e++)this._chainedTweens[e].stop();return this},e.prototype.group=function(e){return this._group=e,this},e.prototype.delay=function(e){return this._delayTime=e,this},e.prototype.repeat=function(e){return this._initialRepeat=e,this._repeat=e,this},e.prototype.repeatDelay=function(e){return this._repeatDelayTime=e,this},e.prototype.yoyo=function(e){return this._yoyo=e,this},e.prototype.easing=function(e){return this._easingFunction=e,this},e.prototype.interpolation=function(e){return this._interpolationFunction=e,this},e.prototype.chain=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return this._chainedTweens=e,this},e.prototype.onStart=function(e){return this._onStartCallback=e,this},e.prototype.onUpdate=function(e){return this._onUpdateCallback=e,this},e.prototype.onRepeat=function(e){return this._onRepeatCallback=e,this},e.prototype.onComplete=function(e){return this._onCompleteCallback=e,this},e.prototype.onStop=function(e){return this._onStopCallback=e,this},e.prototype.update=function(e,t){if(void 0===e&&(e=ie()),void 0===t&&(t=!0),this._isPaused)return!0;var n,o,r=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(e>r)return!1;t&&this.start(e)}if(this._goToEnd=!1,e<this._startTime)return!0;!1===this._onStartCallbackFired&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),o=(e-this._startTime)/this._duration,o=0===this._duration||o>1?1:o;var a=this._easingFunction(o);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,a),this._onUpdateCallback&&this._onUpdateCallback(this._object,o),1===o){if(this._repeat>0){for(n in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat)this._yoyo||"string"!=typeof this._valuesEnd[n]||(this._valuesStartRepeat[n]=this._valuesStartRepeat[n]+parseFloat(this._valuesEnd[n])),this._yoyo&&this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n];return this._yoyo&&(this._reversed=!this._reversed),void 0!==this._repeatDelayTime?this._startTime=e+this._repeatDelayTime:this._startTime=e+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var i=0,s=this._chainedTweens.length;i<s;i++)this._chainedTweens[i].start(this._startTime+this._duration);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(e,t,n,o){for(var r in n)if(void 0!==t[r]){var a=t[r]||0,i=n[r],s=Array.isArray(e[r]),c=Array.isArray(i);!s&&c?e[r]=this._interpolationFunction(i,o):"object"==typeof i&&i?this._updateProperties(e[r],a,i,o):"number"==typeof(i=this._handleRelativeValue(a,i))&&(e[r]=a+(i-a)*o)}},e.prototype._handleRelativeValue=function(e,t){return"string"!=typeof t?t:"+"===t.charAt(0)||"-"===t.charAt(0)?e+parseFloat(t):parseFloat(t)},e.prototype._swapEndStartRepeatValues=function(e){var t=this._valuesStartRepeat[e],n=this._valuesEnd[e];this._valuesStartRepeat[e]="string"==typeof n?this._valuesStartRepeat[e]+parseFloat(n):this._valuesEnd[e],this._valuesEnd[e]=t},e}(),de=le.nextId,pe=ue,fe=pe.getAll.bind(pe),me=pe.removeAll.bind(pe),ge=pe.add.bind(pe),be=pe.remove.bind(pe),ve=pe.update.bind(pe),ye={Easing:ae,Group:se,Interpolation:ce,now:ie,Sequence:le,nextId:de,Tween:he,VERSION:"18.6.4",getAll:fe,removeAll:me,add:ge,remove:be,update:ve};function we(e,t,n){var o,r,a,i,s;function c(){var l=Date.now()-i;l<t&&l>=0?o=setTimeout(c,t-l):(o=null,n||(s=e.apply(a,r),a=r=null))}null==t&&(t=100);var l=function(){a=this,r=arguments,i=Date.now();var l=n&&!o;return o||(o=setTimeout(c,t)),l&&(s=e.apply(a,r),a=r=null),s};return l.clear=function(){o&&(clearTimeout(o),o=null)},l.flush=function(){o&&(s=e.apply(a,r),a=r=null,clearTimeout(o),o=null)},l}we.debounce=we;var Ee=we;function Se(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var o,r,a=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(a.push(o.value),!t||a.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw r}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return _e(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _e(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var ke=function e(t,n){var o=n.default,r=void 0===o?null:o,a=n.triggerUpdate,i=void 0===a||a,s=n.onChange,c=void 0===s?function(e,t){}:s;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.name=t,this.defaultVal=r,this.triggerUpdate=i,this.onChange=c};var Pe,Te,xe,Ce,je,Oe,Re,Le,Me,De,Ae,Ie,Ve,Fe,ze=window.THREE?window.THREE:{WebGLRenderer:e.WebGLRenderer,Scene:e.Scene,PerspectiveCamera:e.PerspectiveCamera,Raycaster:e.Raycaster,TextureLoader:e.TextureLoader,Vector2:e.Vector2,Vector3:e.Vector3,Box3:e.Box3,Color:e.Color,Mesh:e.Mesh,SphereGeometry:e.SphereGeometry,MeshBasicMaterial:e.MeshBasicMaterial,BackSide:e.BackSide,EventDispatcher:e.EventDispatcher,MOUSE:e.MOUSE,Quaternion:e.Quaternion,Spherical:e.Spherical,Clock:e.Clock};return Pe={props:{width:{default:window.innerWidth,onChange:function(e,t,n){isNaN(e)&&(t.width=n)}},height:{default:window.innerHeight,onChange:function(e,t,n){isNaN(e)&&(t.height=n)}},backgroundColor:{default:"#000011"},backgroundImageUrl:{},onBackgroundImageLoaded:{},showNavInfo:{default:!0},skyRadius:{default:5e4},objects:{default:[]},enablePointerInteraction:{default:!0,onChange:function(e,t){t.hoverObj=null,t.toolTipElem&&(t.toolTipElem.innerHTML="")},triggerUpdate:!1},lineHoverPrecision:{default:1,triggerUpdate:!1},hoverOrderComparator:{default:function(){return-1},triggerUpdate:!1},hoverFilter:{default:function(){return!0},triggerUpdate:!1},tooltipContent:{triggerUpdate:!1},hoverDuringDrag:{default:!1,triggerUpdate:!1},clickAfterDrag:{default:!1,triggerUpdate:!1},onHover:{default:function(){},triggerUpdate:!1},onClick:{default:function(){},triggerUpdate:!1},onRightClick:{triggerUpdate:!1}},methods:{tick:function(e){if(e.initialised){if(e.controls.update&&e.controls.update(e.clock.getDelta()),e.postProcessingComposer?e.postProcessingComposer.render():e.renderer.render(e.scene,e.camera),e.extraRenderers.forEach((function(t){return t.render(e.scene,e.camera)})),e.enablePointerInteraction){var t=null;if(e.hoverDuringDrag||!e.isPointerDragging){var n=this.intersectingObjects(e.pointerPos.x,e.pointerPos.y).filter((function(t){return e.hoverFilter(t.object)})).sort((function(t,n){return e.hoverOrderComparator(t.object,n.object)})),o=n.length?n[0]:null;t=o?o.object:null,e.intersectionPoint=o?o.point:null}t!==e.hoverObj&&(e.onHover(t,e.hoverObj),e.toolTipElem.innerHTML=t&&((r=e.tooltipContent)instanceof Function?r:"string"==typeof r?function(e){return e[r]}:function(e){return r})(t)||"",e.hoverObj=t)}ye.update()}var r;return this},getPointerPos:function(e){var t=e.pointerPos;return{x:t.x,y:t.y}},cameraPosition:function(e,t,n,o){var r=e.camera;if(t&&e.initialised){var a=t,i=n||{x:0,y:0,z:0};if(o){var s=Object.assign({},r.position),c=h();new ye.Tween(s).to(a,o).easing(ye.Easing.Quadratic.Out).onUpdate(l).start(),new ye.Tween(c).to(i,o/3).easing(ye.Easing.Quadratic.Out).onUpdate(u).start()}else l(a),u(i);return this}return Object.assign({},r.position,{lookAt:h()});function l(e){var t=e.x,n=e.y,o=e.z;void 0!==t&&(r.position.x=t),void 0!==n&&(r.position.y=n),void 0!==o&&(r.position.z=o)}function u(t){e.controls.target=new ze.Vector3(t.x,t.y,t.z)}function h(){return Object.assign(new ze.Vector3(0,0,-1e3).applyQuaternion(r.quaternion).add(r.position))}},zoomToFit:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,o=arguments.length,r=new Array(o>3?o-3:0),a=3;a<o;a++)r[a-3]=arguments[a];return this.fitToBbox(this.getBbox.apply(this,r),t,n)},fitToBbox:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,i=e.camera;if(t){var s=new ze.Vector3(0,0,0),c=2*Math.max.apply(Math,o(Object.entries(t).map((function(e){var t=n(e,2),r=t[0],a=t[1];return Math.max.apply(Math,o(a.map((function(e){return Math.abs(s[r]-e)}))))})))),l=(1-2*a/e.height)*i.fov,u=c/Math.atan(l*Math.PI/180),h=u/i.aspect,d=Math.max(u,h);if(d>0){var p=s.clone().sub(i.position).normalize().multiplyScalar(-d);this.cameraPosition(p,s,r)}}return this},getBbox:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0},r=new ze.Box3(new ze.Vector3(0,0,0),new ze.Vector3(0,0,0)),a=e.objects.filter(n);return a.length?(a.forEach((function(e){return r.expandByObject(e)})),Object.assign.apply(Object,o(["x","y","z"].map((function(e){return t({},e,[r.min[e],r.max[e]])}))))):null},getScreenCoords:function(e,t,n,o){var r=new ze.Vector3(t,n,o);return r.project(this.camera()),{x:(r.x+1)*e.width/2,y:-(r.y-1)*e.height/2}},getSceneCoords:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=new ze.Vector2(t/e.width*2-1,-n/e.height*2+1),a=new ze.Raycaster;return a.setFromCamera(r,e.camera),Object.assign({},a.ray.at(o,new ze.Vector3))},intersectingObjects:function(e,t,n){var o=new ze.Vector2(t/e.width*2-1,-n/e.height*2+1),r=new ze.Raycaster;return r.params.Line.threshold=e.lineHoverPrecision,r.setFromCamera(o,e.camera),r.intersectObjects(e.objects,!0)},renderer:function(e){return e.renderer},scene:function(e){return e.scene},camera:function(e){return e.camera},postProcessingComposer:function(e){return e.postProcessingComposer},controls:function(e){return e.controls},tbControls:function(e){return e.controls}},stateInit:function(){return{scene:new ze.Scene,camera:new ze.PerspectiveCamera,clock:new ze.Clock}},init:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.controlType,a=void 0===r?"trackball":r,i=n.rendererConfig,s=void 0===i?{}:i,c=n.extraRenderers,u=void 0===c?[]:c,h=n.waitForLoadComplete,d=void 0===h||h;e.innerHTML="",e.appendChild(t.container=document.createElement("div")),t.container.className="scene-container",t.container.style.position="relative",t.container.appendChild(t.navInfo=document.createElement("div")),t.navInfo.className="scene-nav-info",t.navInfo.textContent={orbit:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",trackball:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",fly:"WASD: move, R|F: up | down, Q|E: roll, up|down: pitch, left|right: yaw"}[a]||"",t.navInfo.style.display=t.showNavInfo?null:"none",t.toolTipElem=document.createElement("div"),t.toolTipElem.classList.add("scene-tooltip"),t.container.appendChild(t.toolTipElem),t.pointerPos=new ze.Vector2,t.pointerPos.x=-2,t.pointerPos.y=-2,["pointermove","pointerdown"].forEach((function(e){return t.container.addEventListener(e,(function(n){if("pointerdown"===e&&(t.isPointerPressed=!0),!t.isPointerDragging&&"pointermove"===n.type&&(n.pressure>0||t.isPointerPressed)&&("touch"!==n.pointerType||void 0===n.movementX||[n.movementX,n.movementY].some((function(e){return Math.abs(e)>1})))&&(t.isPointerDragging=!0),t.enablePointerInteraction){var o=(r=t.container,a=r.getBoundingClientRect(),i=window.pageXOffset||document.documentElement.scrollLeft,s=window.pageYOffset||document.documentElement.scrollTop,{top:a.top+s,left:a.left+i});t.pointerPos.x=n.pageX-o.left,t.pointerPos.y=n.pageY-o.top,t.toolTipElem.style.top="".concat(t.pointerPos.y,"px"),t.toolTipElem.style.left="".concat(t.pointerPos.x,"px"),t.toolTipElem.style.transform="translate(-".concat(t.pointerPos.x/t.width*100,"%, 21px)")}var r,a,i,s}),{passive:!0})})),t.container.addEventListener("pointerup",(function(e){t.isPointerPressed=!1,t.isPointerDragging&&(t.isPointerDragging=!1,!t.clickAfterDrag)||requestAnimationFrame((function(){0===e.button&&t.onClick(t.hoverObj||null,e,t.intersectionPoint),2===e.button&&t.onRightClick&&t.onRightClick(t.hoverObj||null,e,t.intersectionPoint)}))}),{passive:!0,capture:!0}),t.container.addEventListener("contextmenu",(function(e){t.onRightClick&&e.preventDefault()})),t.renderer=new ze.WebGLRenderer(Object.assign({antialias:!0,alpha:!0},s)),t.renderer.setPixelRatio(Math.min(2,window.devicePixelRatio)),t.container.appendChild(t.renderer.domElement),t.extraRenderers=u,t.extraRenderers.forEach((function(e){e.domElement.style.position="absolute",e.domElement.style.top="0px",e.domElement.style.pointerEvents="none",t.container.appendChild(e.domElement)})),t.postProcessingComposer=new P(t.renderer),t.postProcessingComposer.addPass(new x(t.scene,t.camera)),t.controls=new{trackball:l,orbit:p,fly:m}[a](t.camera,t.renderer.domElement),"fly"===a&&(t.controls.movementSpeed=300,t.controls.rollSpeed=Math.PI/6,t.controls.dragToLook=!0),"trackball"!==a&&"orbit"!==a||(t.controls.minDistance=.1,t.controls.maxDistance=t.skyRadius,t.controls.addEventListener("start",(function(){t.controlsEngaged=!0})),t.controls.addEventListener("change",(function(){t.controlsEngaged&&(t.controlsDragging=!0)})),t.controls.addEventListener("end",(function(){t.controlsEngaged=!1,t.controlsDragging=!1}))),[t.renderer,t.postProcessingComposer].concat(o(t.extraRenderers)).forEach((function(e){return e.setSize(t.width,t.height)})),t.camera.aspect=t.width/t.height,t.camera.updateProjectionMatrix(),t.camera.position.z=1e3,t.scene.add(t.skysphere=new ze.Mesh),t.skysphere.visible=!1,t.loadComplete=t.scene.visible=!d,window.scene=t.scene},update:function(e,t){if(e.width&&e.height&&(t.hasOwnProperty("width")||t.hasOwnProperty("height"))&&(e.container.style.width=e.width,e.container.style.height=e.height,[e.renderer,e.postProcessingComposer].concat(o(e.extraRenderers)).forEach((function(t){return t.setSize(e.width,e.height)})),e.camera.aspect=e.width/e.height,e.camera.updateProjectionMatrix()),t.hasOwnProperty("skyRadius")&&e.skyRadius&&(e.controls.hasOwnProperty("maxDistance")&&t.skyRadius&&(e.controls.maxDistance=e.skyRadius),e.camera.far=2.5*e.skyRadius,e.camera.updateProjectionMatrix(),e.skysphere.geometry=new ze.SphereGeometry(e.skyRadius)),t.hasOwnProperty("backgroundColor")){var n=G(e.backgroundColor).alpha;void 0===n&&(n=1),e.renderer.setClearColor(new ze.Color(re(1,e.backgroundColor)),n)}function r(){e.loadComplete=e.scene.visible=!0}t.hasOwnProperty("backgroundImageUrl")&&(e.backgroundImageUrl?(new ze.TextureLoader).load(e.backgroundImageUrl,(function(t){e.skysphere.material=new ze.MeshBasicMaterial({map:t,side:ze.BackSide}),e.skysphere.visible=!0,e.onBackgroundImageLoaded&&setTimeout(e.onBackgroundImageLoaded),!e.loadComplete&&r()})):(e.skysphere.visible=!1,e.skysphere.material.map=null,!e.loadComplete&&r())),t.hasOwnProperty("showNavInfo")&&(e.navInfo.style.display=e.showNavInfo?null:"none"),t.hasOwnProperty("objects")&&((t.objects||[]).forEach((function(t){return e.scene.remove(t)})),e.objects.forEach((function(t){return e.scene.add(t)})))}},Te=Pe.stateInit,xe=void 0===Te?function(){return{}}:Te,Ce=Pe.props,je=void 0===Ce?{}:Ce,Oe=Pe.methods,Re=void 0===Oe?{}:Oe,Le=Pe.aliases,Me=void 0===Le?{}:Le,De=Pe.init,Ae=void 0===De?function(){}:De,Ie=Pe.update,Ve=void 0===Ie?function(){}:Ie,Fe=Object.keys(je).map((function(e){return new ke(e,je[e])})),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},xe instanceof Function?xe(e):xe,{initialised:!1}),n={};function o(t){return r(t,e),a(),o}var r=function(e,n){Ae.call(o,e,t,n),t.initialised=!0},a=Ee((function(){t.initialised&&(Ve.call(o,t,n),n={})}),1);return Fe.forEach((function(e){o[e.name]=function(e){var r=e.name,i=e.triggerUpdate,s=void 0!==i&&i,c=e.onChange,l=void 0===c?function(e,t){}:c,u=e.defaultVal,h=void 0===u?null:u;return function(e){var i=t[r];if(!arguments.length)return i;var c=void 0===e?h:e;return t[r]=c,l.call(o,c,t,i),!n.hasOwnProperty(r)&&(n[r]=i),s&&a(),o}}(e)})),Object.keys(Re).forEach((function(e){o[e]=function(){for(var n,r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(n=Re[e]).call.apply(n,[o,t].concat(a))}})),Object.entries(Me).forEach((function(e){var t=Se(e,2),n=t[0],r=t[1];return o[n]=o[r]})),o.resetProps=function(){return Fe.forEach((function(e){o[e.name](e.defaultVal)})),o},o.resetProps(),t._rerender=a,o}}));
1
+ // Version 1.26.7 three-render-objects - https://github.com/vasturiano/three-render-objects
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("three")):"function"==typeof define&&define.amd?define(["three"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).ThreeRenderObjects=t(e.THREE)}(this,(function(e){"use strict";function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var o,r,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(o=n.next()).done)&&(i.push(o.value),!t||i.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw r}}return i}(e,t)||r(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||r(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){if(e){if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}(".scene-nav-info {\n bottom: 5px;\n width: 100%;\n text-align: center;\n color: slategrey;\n opacity: 0.7;\n font-size: 10px;\n}\n\n.scene-tooltip {\n color: lavender;\n font-size: 15px;\n}\n\n.scene-nav-info, .scene-tooltip {\n position: absolute;\n font-family: sans-serif;\n pointer-events: none;\n}\n\n.scene-container canvas:focus {\n outline: none;\n}");const a={type:"change"},s={type:"start"},c={type:"end"};class l extends e.EventDispatcher{constructor(t,n){super(),void 0===n&&console.warn('THREE.TrackballControls: The second parameter "domElement" is now mandatory.'),n===document&&console.error('THREE.TrackballControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.');const o=this,r=-1,i=0,l=1,u=2,h=3,d=4;this.object=t,this.domElement=n,this.domElement.style.touchAction="none",this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=["KeyA","KeyS","KeyD"],this.mouseButtons={LEFT:e.MOUSE.ROTATE,MIDDLE:e.MOUSE.DOLLY,RIGHT:e.MOUSE.PAN},this.target=new e.Vector3;const p=1e-6,f=new e.Vector3;let m=1,g=r,b=r,v=0,y=0,w=0;const E=new e.Vector3,S=new e.Vector2,_=new e.Vector2,k=new e.Vector3,P=new e.Vector2,x=new e.Vector2,T=new e.Vector2,C=new e.Vector2,j=[],O={};this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.zoom0=this.object.zoom,this.handleResize=function(){const e=o.domElement.getBoundingClientRect(),t=o.domElement.ownerDocument.documentElement;o.screen.left=e.left+window.pageXOffset-t.clientLeft,o.screen.top=e.top+window.pageYOffset-t.clientTop,o.screen.width=e.width,o.screen.height=e.height};const R=function(){const t=new e.Vector2;return function(e,n){return t.set((e-o.screen.left)/o.screen.width,(n-o.screen.top)/o.screen.height),t}}(),L=function(){const t=new e.Vector2;return function(e,n){return t.set((e-.5*o.screen.width-o.screen.left)/(.5*o.screen.width),(o.screen.height+2*(o.screen.top-n))/o.screen.width),t}}();function I(e){!1!==o.enabled&&(0===j.length&&(o.domElement.setPointerCapture(e.pointerId),o.domElement.addEventListener("pointermove",M),o.domElement.addEventListener("pointerup",A)),function(e){j.push(e)}(e),"touch"===e.pointerType?function(e){if(1===(N(e),j.length))g=h,_.copy(L(j[0].pageX,j[0].pageY)),S.copy(_);else{g=d;const e=j[0].pageX-j[1].pageX,t=j[0].pageY-j[1].pageY;y=v=Math.sqrt(e*e+t*t);const n=(j[0].pageX+j[1].pageX)/2,o=(j[0].pageY+j[1].pageY)/2;T.copy(R(n,o)),C.copy(T)}o.dispatchEvent(s)}(e):function(e){if(g===r)switch(e.button){case o.mouseButtons.LEFT:g=i;break;case o.mouseButtons.MIDDLE:g=l;break;case o.mouseButtons.RIGHT:g=u;break;default:g=r}const t=b!==r?b:g;t!==i||o.noRotate?t!==l||o.noZoom?t!==u||o.noPan||(T.copy(R(e.pageX,e.pageY)),C.copy(T)):(P.copy(R(e.pageX,e.pageY)),x.copy(P)):(_.copy(L(e.pageX,e.pageY)),S.copy(_));o.dispatchEvent(s)}(e))}function M(e){!1!==o.enabled&&("touch"===e.pointerType?function(e){if(1===(N(e),j.length))S.copy(_),_.copy(L(e.pageX,e.pageY));else{const t=function(e){const t=e.pointerId===j[0].pointerId?j[1]:j[0];return O[t.pointerId]}(e),n=e.pageX-t.x,o=e.pageY-t.y;y=Math.sqrt(n*n+o*o);const r=(e.pageX+t.x)/2,i=(e.pageY+t.y)/2;C.copy(R(r,i))}}(e):function(e){const t=b!==r?b:g;t!==i||o.noRotate?t!==l||o.noZoom?t!==u||o.noPan||C.copy(R(e.pageX,e.pageY)):x.copy(R(e.pageX,e.pageY)):(S.copy(_),_.copy(L(e.pageX,e.pageY)))}(e))}function A(e){!1!==o.enabled&&("touch"===e.pointerType?function(e){switch(j.length){case 0:g=r;break;case 1:g=h,_.copy(L(e.pageX,e.pageY)),S.copy(_);break;case 2:g=d,_.copy(L(e.pageX-S.pageX,e.pageY-S.pageY)),S.copy(_)}o.dispatchEvent(c)}(e):(g=r,o.dispatchEvent(c)),Y(e),0===j.length&&(o.domElement.releasePointerCapture(e.pointerId),o.domElement.removeEventListener("pointermove",M),o.domElement.removeEventListener("pointerup",A)))}function D(e){Y(e)}function V(e){!1!==o.enabled&&(window.removeEventListener("keydown",V),b===r&&(e.code!==o.keys[i]||o.noRotate?e.code!==o.keys[l]||o.noZoom?e.code!==o.keys[u]||o.noPan||(b=u):b=l:b=i))}function F(){!1!==o.enabled&&(b=r,window.addEventListener("keydown",V))}function z(e){if(!1!==o.enabled&&!0!==o.noZoom){switch(e.preventDefault(),e.deltaMode){case 2:P.y-=.025*e.deltaY;break;case 1:P.y-=.01*e.deltaY;break;default:P.y-=25e-5*e.deltaY}o.dispatchEvent(s),o.dispatchEvent(c)}}function U(e){!1!==o.enabled&&e.preventDefault()}function Y(e){delete O[e.pointerId];for(let t=0;t<j.length;t++)if(j[t].pointerId==e.pointerId)return void j.splice(t,1)}function N(t){let n=O[t.pointerId];void 0===n&&(n=new e.Vector2,O[t.pointerId]=n),n.set(t.pageX,t.pageY)}this.rotateCamera=function(){const t=new e.Vector3,n=new e.Quaternion,r=new e.Vector3,i=new e.Vector3,a=new e.Vector3,s=new e.Vector3;return function(){s.set(_.x-S.x,_.y-S.y,0);let e=s.length();e?(E.copy(o.object.position).sub(o.target),r.copy(E).normalize(),i.copy(o.object.up).normalize(),a.crossVectors(i,r).normalize(),i.setLength(_.y-S.y),a.setLength(_.x-S.x),s.copy(i.add(a)),t.crossVectors(s,E).normalize(),e*=o.rotateSpeed,n.setFromAxisAngle(t,e),E.applyQuaternion(n),o.object.up.applyQuaternion(n),k.copy(t),w=e):!o.staticMoving&&w&&(w*=Math.sqrt(1-o.dynamicDampingFactor),E.copy(o.object.position).sub(o.target),n.setFromAxisAngle(k,w),E.applyQuaternion(n),o.object.up.applyQuaternion(n)),S.copy(_)}}(),this.zoomCamera=function(){let e;g===d?(e=v/y,v=y,o.object.isPerspectiveCamera?E.multiplyScalar(e):o.object.isOrthographicCamera?(o.object.zoom/=e,o.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")):(e=1+(x.y-P.y)*o.zoomSpeed,1!==e&&e>0&&(o.object.isPerspectiveCamera?E.multiplyScalar(e):o.object.isOrthographicCamera?(o.object.zoom/=e,o.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type")),o.staticMoving?P.copy(x):P.y+=(x.y-P.y)*this.dynamicDampingFactor)},this.panCamera=function(){const t=new e.Vector2,n=new e.Vector3,r=new e.Vector3;return function(){if(t.copy(C).sub(T),t.lengthSq()){if(o.object.isOrthographicCamera){const e=(o.object.right-o.object.left)/o.object.zoom/o.domElement.clientWidth,n=(o.object.top-o.object.bottom)/o.object.zoom/o.domElement.clientWidth;t.x*=e,t.y*=n}t.multiplyScalar(E.length()*o.panSpeed),r.copy(E).cross(o.object.up).setLength(t.x),r.add(n.copy(o.object.up).setLength(t.y)),o.object.position.add(r),o.target.add(r),o.staticMoving?T.copy(C):T.add(t.subVectors(C,T).multiplyScalar(o.dynamicDampingFactor))}}}(),this.checkDistances=function(){o.noZoom&&o.noPan||(E.lengthSq()>o.maxDistance*o.maxDistance&&(o.object.position.addVectors(o.target,E.setLength(o.maxDistance)),P.copy(x)),E.lengthSq()<o.minDistance*o.minDistance&&(o.object.position.addVectors(o.target,E.setLength(o.minDistance)),P.copy(x)))},this.update=function(){E.subVectors(o.object.position,o.target),o.noRotate||o.rotateCamera(),o.noZoom||o.zoomCamera(),o.noPan||o.panCamera(),o.object.position.addVectors(o.target,E),o.object.isPerspectiveCamera?(o.checkDistances(),o.object.lookAt(o.target),f.distanceToSquared(o.object.position)>p&&(o.dispatchEvent(a),f.copy(o.object.position))):o.object.isOrthographicCamera?(o.object.lookAt(o.target),(f.distanceToSquared(o.object.position)>p||m!==o.object.zoom)&&(o.dispatchEvent(a),f.copy(o.object.position),m=o.object.zoom)):console.warn("THREE.TrackballControls: Unsupported camera type")},this.reset=function(){g=r,b=r,o.target.copy(o.target0),o.object.position.copy(o.position0),o.object.up.copy(o.up0),o.object.zoom=o.zoom0,o.object.updateProjectionMatrix(),E.subVectors(o.object.position,o.target),o.object.lookAt(o.target),o.dispatchEvent(a),f.copy(o.object.position),m=o.object.zoom},this.dispose=function(){o.domElement.removeEventListener("contextmenu",U),o.domElement.removeEventListener("pointerdown",I),o.domElement.removeEventListener("pointercancel",D),o.domElement.removeEventListener("wheel",z),o.domElement.removeEventListener("pointermove",M),o.domElement.removeEventListener("pointerup",A),window.removeEventListener("keydown",V),window.removeEventListener("keyup",F)},this.domElement.addEventListener("contextmenu",U),this.domElement.addEventListener("pointerdown",I),this.domElement.addEventListener("pointercancel",D),this.domElement.addEventListener("wheel",z,{passive:!1}),window.addEventListener("keydown",V),window.addEventListener("keyup",F),this.handleResize(),this.update()}}const u={type:"change"},h={type:"start"},d={type:"end"};class p extends e.EventDispatcher{constructor(t,n){super(),void 0===n&&console.warn('THREE.OrbitControls: The second parameter "domElement" is now mandatory.'),n===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=t,this.domElement=n,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new e.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:e.MOUSE.ROTATE,MIDDLE:e.MOUSE.DOLLY,RIGHT:e.MOUSE.PAN},this.touches={ONE:e.TOUCH.ROTATE,TWO:e.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return s.phi},this.getAzimuthalAngle=function(){return s.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(e){e.addEventListener("keydown",K),this._domElementKeyEvents=e},this.saveState=function(){o.target0.copy(o.target),o.position0.copy(o.object.position),o.zoom0=o.object.zoom},this.reset=function(){o.target.copy(o.target0),o.object.position.copy(o.position0),o.object.zoom=o.zoom0,o.object.updateProjectionMatrix(),o.dispatchEvent(u),o.update(),i=r.NONE},this.update=function(){const n=new e.Vector3,h=(new e.Quaternion).setFromUnitVectors(t.up,new e.Vector3(0,1,0)),d=h.clone().invert(),m=new e.Vector3,g=new e.Quaternion,b=2*Math.PI;return function(){const e=o.object.position;n.copy(e).sub(o.target),n.applyQuaternion(h),s.setFromVector3(n),o.autoRotate&&i===r.NONE&&T(2*Math.PI/60/60*o.autoRotateSpeed),o.enableDamping?(s.theta+=c.theta*o.dampingFactor,s.phi+=c.phi*o.dampingFactor):(s.theta+=c.theta,s.phi+=c.phi);let t=o.minAzimuthAngle,v=o.maxAzimuthAngle;return isFinite(t)&&isFinite(v)&&(t<-Math.PI?t+=b:t>Math.PI&&(t-=b),v<-Math.PI?v+=b:v>Math.PI&&(v-=b),s.theta=t<=v?Math.max(t,Math.min(v,s.theta)):s.theta>(t+v)/2?Math.max(t,s.theta):Math.min(v,s.theta)),s.phi=Math.max(o.minPolarAngle,Math.min(o.maxPolarAngle,s.phi)),s.makeSafe(),s.radius*=l,s.radius=Math.max(o.minDistance,Math.min(o.maxDistance,s.radius)),!0===o.enableDamping?o.target.addScaledVector(p,o.dampingFactor):o.target.add(p),n.setFromSpherical(s),n.applyQuaternion(d),e.copy(o.target).add(n),o.object.lookAt(o.target),!0===o.enableDamping?(c.theta*=1-o.dampingFactor,c.phi*=1-o.dampingFactor,p.multiplyScalar(1-o.dampingFactor)):(c.set(0,0,0),p.set(0,0,0)),l=1,!!(f||m.distanceToSquared(o.object.position)>a||8*(1-g.dot(o.object.quaternion))>a)&&(o.dispatchEvent(u),m.copy(o.object.position),g.copy(o.object.quaternion),f=!1,!0)}}(),this.dispose=function(){o.domElement.removeEventListener("contextmenu",Q),o.domElement.removeEventListener("pointerdown",N),o.domElement.removeEventListener("pointercancel",X),o.domElement.removeEventListener("wheel",q),o.domElement.removeEventListener("pointermove",B),o.domElement.removeEventListener("pointerup",H),null!==o._domElementKeyEvents&&o._domElementKeyEvents.removeEventListener("keydown",K)};const o=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let i=r.NONE;const a=1e-6,s=new e.Spherical,c=new e.Spherical;let l=1;const p=new e.Vector3;let f=!1;const m=new e.Vector2,g=new e.Vector2,b=new e.Vector2,v=new e.Vector2,y=new e.Vector2,w=new e.Vector2,E=new e.Vector2,S=new e.Vector2,_=new e.Vector2,k=[],P={};function x(){return Math.pow(.95,o.zoomSpeed)}function T(e){c.theta-=e}function C(e){c.phi-=e}const j=function(){const t=new e.Vector3;return function(e,n){t.setFromMatrixColumn(n,0),t.multiplyScalar(-e),p.add(t)}}(),O=function(){const t=new e.Vector3;return function(e,n){!0===o.screenSpacePanning?t.setFromMatrixColumn(n,1):(t.setFromMatrixColumn(n,0),t.crossVectors(o.object.up,t)),t.multiplyScalar(e),p.add(t)}}(),R=function(){const t=new e.Vector3;return function(e,n){const r=o.domElement;if(o.object.isPerspectiveCamera){const i=o.object.position;t.copy(i).sub(o.target);let a=t.length();a*=Math.tan(o.object.fov/2*Math.PI/180),j(2*e*a/r.clientHeight,o.object.matrix),O(2*n*a/r.clientHeight,o.object.matrix)}else o.object.isOrthographicCamera?(j(e*(o.object.right-o.object.left)/o.object.zoom/r.clientWidth,o.object.matrix),O(n*(o.object.top-o.object.bottom)/o.object.zoom/r.clientHeight,o.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),o.enablePan=!1)}}();function L(e){o.object.isPerspectiveCamera?l/=e:o.object.isOrthographicCamera?(o.object.zoom=Math.max(o.minZoom,Math.min(o.maxZoom,o.object.zoom*e)),o.object.updateProjectionMatrix(),f=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),o.enableZoom=!1)}function I(e){o.object.isPerspectiveCamera?l*=e:o.object.isOrthographicCamera?(o.object.zoom=Math.max(o.minZoom,Math.min(o.maxZoom,o.object.zoom/e)),o.object.updateProjectionMatrix(),f=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),o.enableZoom=!1)}function M(e){m.set(e.clientX,e.clientY)}function A(e){v.set(e.clientX,e.clientY)}function D(){if(1===k.length)m.set(k[0].pageX,k[0].pageY);else{const e=.5*(k[0].pageX+k[1].pageX),t=.5*(k[0].pageY+k[1].pageY);m.set(e,t)}}function V(){if(1===k.length)v.set(k[0].pageX,k[0].pageY);else{const e=.5*(k[0].pageX+k[1].pageX),t=.5*(k[0].pageY+k[1].pageY);v.set(e,t)}}function F(){const e=k[0].pageX-k[1].pageX,t=k[0].pageY-k[1].pageY,n=Math.sqrt(e*e+t*t);E.set(0,n)}function z(e){if(1==k.length)g.set(e.pageX,e.pageY);else{const t=W(e),n=.5*(e.pageX+t.x),o=.5*(e.pageY+t.y);g.set(n,o)}b.subVectors(g,m).multiplyScalar(o.rotateSpeed);const t=o.domElement;T(2*Math.PI*b.x/t.clientHeight),C(2*Math.PI*b.y/t.clientHeight),m.copy(g)}function U(e){if(1===k.length)y.set(e.pageX,e.pageY);else{const t=W(e),n=.5*(e.pageX+t.x),o=.5*(e.pageY+t.y);y.set(n,o)}w.subVectors(y,v).multiplyScalar(o.panSpeed),R(w.x,w.y),v.copy(y)}function Y(e){const t=W(e),n=e.pageX-t.x,r=e.pageY-t.y,i=Math.sqrt(n*n+r*r);S.set(0,i),_.set(0,Math.pow(S.y/E.y,o.zoomSpeed)),L(_.y),E.copy(S)}function N(t){!1!==o.enabled&&(0===k.length&&(o.domElement.setPointerCapture(t.pointerId),o.domElement.addEventListener("pointermove",B),o.domElement.addEventListener("pointerup",H)),function(e){k.push(e)}(t),"touch"===t.pointerType?function(t){switch(G(t),k.length){case 1:switch(o.touches.ONE){case e.TOUCH.ROTATE:if(!1===o.enableRotate)return;D(),i=r.TOUCH_ROTATE;break;case e.TOUCH.PAN:if(!1===o.enablePan)return;V(),i=r.TOUCH_PAN;break;default:i=r.NONE}break;case 2:switch(o.touches.TWO){case e.TOUCH.DOLLY_PAN:if(!1===o.enableZoom&&!1===o.enablePan)return;o.enableZoom&&F(),o.enablePan&&V(),i=r.TOUCH_DOLLY_PAN;break;case e.TOUCH.DOLLY_ROTATE:if(!1===o.enableZoom&&!1===o.enableRotate)return;o.enableZoom&&F(),o.enableRotate&&D(),i=r.TOUCH_DOLLY_ROTATE;break;default:i=r.NONE}break;default:i=r.NONE}i!==r.NONE&&o.dispatchEvent(h)}(t):function(t){let n;switch(t.button){case 0:n=o.mouseButtons.LEFT;break;case 1:n=o.mouseButtons.MIDDLE;break;case 2:n=o.mouseButtons.RIGHT;break;default:n=-1}switch(n){case e.MOUSE.DOLLY:if(!1===o.enableZoom)return;!function(e){E.set(e.clientX,e.clientY)}(t),i=r.DOLLY;break;case e.MOUSE.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===o.enablePan)return;A(t),i=r.PAN}else{if(!1===o.enableRotate)return;M(t),i=r.ROTATE}break;case e.MOUSE.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===o.enableRotate)return;M(t),i=r.ROTATE}else{if(!1===o.enablePan)return;A(t),i=r.PAN}break;default:i=r.NONE}i!==r.NONE&&o.dispatchEvent(h)}(t))}function B(e){!1!==o.enabled&&("touch"===e.pointerType?function(e){switch(G(e),i){case r.TOUCH_ROTATE:if(!1===o.enableRotate)return;z(e),o.update();break;case r.TOUCH_PAN:if(!1===o.enablePan)return;U(e),o.update();break;case r.TOUCH_DOLLY_PAN:if(!1===o.enableZoom&&!1===o.enablePan)return;!function(e){o.enableZoom&&Y(e),o.enablePan&&U(e)}(e),o.update();break;case r.TOUCH_DOLLY_ROTATE:if(!1===o.enableZoom&&!1===o.enableRotate)return;!function(e){o.enableZoom&&Y(e),o.enableRotate&&z(e)}(e),o.update();break;default:i=r.NONE}}(e):function(e){if(!1===o.enabled)return;switch(i){case r.ROTATE:if(!1===o.enableRotate)return;!function(e){g.set(e.clientX,e.clientY),b.subVectors(g,m).multiplyScalar(o.rotateSpeed);const t=o.domElement;T(2*Math.PI*b.x/t.clientHeight),C(2*Math.PI*b.y/t.clientHeight),m.copy(g),o.update()}(e);break;case r.DOLLY:if(!1===o.enableZoom)return;!function(e){S.set(e.clientX,e.clientY),_.subVectors(S,E),_.y>0?L(x()):_.y<0&&I(x()),E.copy(S),o.update()}(e);break;case r.PAN:if(!1===o.enablePan)return;!function(e){y.set(e.clientX,e.clientY),w.subVectors(y,v).multiplyScalar(o.panSpeed),R(w.x,w.y),v.copy(y),o.update()}(e)}}(e))}function H(e){Z(e),0===k.length&&(o.domElement.releasePointerCapture(e.pointerId),o.domElement.removeEventListener("pointermove",B),o.domElement.removeEventListener("pointerup",H)),o.dispatchEvent(d),i=r.NONE}function X(e){Z(e)}function q(e){!1!==o.enabled&&!1!==o.enableZoom&&i===r.NONE&&(e.preventDefault(),o.dispatchEvent(h),function(e){e.deltaY<0?I(x()):e.deltaY>0&&L(x()),o.update()}(e),o.dispatchEvent(d))}function K(e){!1!==o.enabled&&!1!==o.enablePan&&function(e){let t=!1;switch(e.code){case o.keys.UP:R(0,o.keyPanSpeed),t=!0;break;case o.keys.BOTTOM:R(0,-o.keyPanSpeed),t=!0;break;case o.keys.LEFT:R(o.keyPanSpeed,0),t=!0;break;case o.keys.RIGHT:R(-o.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),o.update())}(e)}function Q(e){!1!==o.enabled&&e.preventDefault()}function Z(e){delete P[e.pointerId];for(let t=0;t<k.length;t++)if(k[t].pointerId==e.pointerId)return void k.splice(t,1)}function G(t){let n=P[t.pointerId];void 0===n&&(n=new e.Vector2,P[t.pointerId]=n),n.set(t.pageX,t.pageY)}function W(e){const t=e.pointerId===k[0].pointerId?k[1]:k[0];return P[t.pointerId]}o.domElement.addEventListener("contextmenu",Q),o.domElement.addEventListener("pointerdown",N),o.domElement.addEventListener("pointercancel",X),o.domElement.addEventListener("wheel",q,{passive:!1}),this.update()}}const f={type:"change"};class m extends e.EventDispatcher{constructor(t,n){super(),void 0===n&&(console.warn('THREE.FlyControls: The second parameter "domElement" is now mandatory.'),n=document),this.object=t,this.domElement=n,this.movementSpeed=1,this.rollSpeed=.005,this.dragToLook=!1,this.autoForward=!1;const o=this,r=1e-6,i=new e.Quaternion,a=new e.Vector3;this.tmpQuaternion=new e.Quaternion,this.mouseStatus=0,this.moveState={up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0},this.moveVector=new e.Vector3(0,0,0),this.rotationVector=new e.Vector3(0,0,0),this.keydown=function(e){if(!e.altKey){switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=.1;break;case"KeyW":this.moveState.forward=1;break;case"KeyS":this.moveState.back=1;break;case"KeyA":this.moveState.left=1;break;case"KeyD":this.moveState.right=1;break;case"KeyR":this.moveState.up=1;break;case"KeyF":this.moveState.down=1;break;case"ArrowUp":this.moveState.pitchUp=1;break;case"ArrowDown":this.moveState.pitchDown=1;break;case"ArrowLeft":this.moveState.yawLeft=1;break;case"ArrowRight":this.moveState.yawRight=1;break;case"KeyQ":this.moveState.rollLeft=1;break;case"KeyE":this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}},this.keyup=function(e){switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=1;break;case"KeyW":this.moveState.forward=0;break;case"KeyS":this.moveState.back=0;break;case"KeyA":this.moveState.left=0;break;case"KeyD":this.moveState.right=0;break;case"KeyR":this.moveState.up=0;break;case"KeyF":this.moveState.down=0;break;case"ArrowUp":this.moveState.pitchUp=0;break;case"ArrowDown":this.moveState.pitchDown=0;break;case"ArrowLeft":this.moveState.yawLeft=0;break;case"ArrowRight":this.moveState.yawRight=0;break;case"KeyQ":this.moveState.rollLeft=0;break;case"KeyE":this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()},this.mousedown=function(e){if(this.dragToLook)this.mouseStatus++;else{switch(e.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}},this.mousemove=function(e){if(!this.dragToLook||this.mouseStatus>0){const t=this.getContainerDimensions(),n=t.size[0]/2,o=t.size[1]/2;this.moveState.yawLeft=-(e.pageX-t.offset[0]-n)/n,this.moveState.pitchDown=(e.pageY-t.offset[1]-o)/o,this.updateRotationVector()}},this.mouseup=function(e){if(this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(e.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()},this.update=function(e){const t=e*o.movementSpeed,n=e*o.rollSpeed;o.object.translateX(o.moveVector.x*t),o.object.translateY(o.moveVector.y*t),o.object.translateZ(o.moveVector.z*t),o.tmpQuaternion.set(o.rotationVector.x*n,o.rotationVector.y*n,o.rotationVector.z*n,1).normalize(),o.object.quaternion.multiply(o.tmpQuaternion),(a.distanceToSquared(o.object.position)>r||8*(1-i.dot(o.object.quaternion))>r)&&(o.dispatchEvent(f),i.copy(o.object.quaternion),a.copy(o.object.position))},this.updateMovementVector=function(){const e=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-e+this.moveState.back},this.updateRotationVector=function(){this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft},this.getContainerDimensions=function(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}},this.dispose=function(){this.domElement.removeEventListener("contextmenu",g),this.domElement.removeEventListener("mousedown",c),this.domElement.removeEventListener("mousemove",s),this.domElement.removeEventListener("mouseup",l),window.removeEventListener("keydown",u),window.removeEventListener("keyup",h)};const s=this.mousemove.bind(this),c=this.mousedown.bind(this),l=this.mouseup.bind(this),u=this.keydown.bind(this),h=this.keyup.bind(this);this.domElement.addEventListener("contextmenu",g),this.domElement.addEventListener("mousemove",s),this.domElement.addEventListener("mousedown",c),this.domElement.addEventListener("mouseup",l),window.addEventListener("keydown",u),window.addEventListener("keyup",h),this.updateMovementVector(),this.updateRotationVector()}}function g(e){e.preventDefault()}var b={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\t\t}"};class v{constructor(){this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}}const y=new e.OrthographicCamera(-1,1,1,-1,0,1),w=new e.BufferGeometry;w.setAttribute("position",new e.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),w.setAttribute("uv",new e.Float32BufferAttribute([0,2,0,0,2,0],2));class E{constructor(t){this._mesh=new e.Mesh(w,t)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,y)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}class S extends v{constructor(t,n){super(),this.textureID=void 0!==n?n:"tDiffuse",t instanceof e.ShaderMaterial?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=e.UniformsUtils.clone(t.uniforms),this.material=new e.ShaderMaterial({defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this.fsQuad=new E(this.material)}render(e,t,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}}class _ extends v{constructor(e,t){super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,n){const o=e.getContext(),r=e.state;let i,a;r.buffers.color.setMask(!1),r.buffers.depth.setMask(!1),r.buffers.color.setLocked(!0),r.buffers.depth.setLocked(!0),this.inverse?(i=0,a=1):(i=1,a=0),r.buffers.stencil.setTest(!0),r.buffers.stencil.setOp(o.REPLACE,o.REPLACE,o.REPLACE),r.buffers.stencil.setFunc(o.ALWAYS,i,4294967295),r.buffers.stencil.setClear(a),r.buffers.stencil.setLocked(!0),e.setRenderTarget(n),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),r.buffers.color.setLocked(!1),r.buffers.depth.setLocked(!1),r.buffers.stencil.setLocked(!1),r.buffers.stencil.setFunc(o.EQUAL,1,4294967295),r.buffers.stencil.setOp(o.KEEP,o.KEEP,o.KEEP),r.buffers.stencil.setLocked(!0)}}class k extends v{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}class P{constructor(t,n){if(this.renderer=t,void 0===n){const o={minFilter:e.LinearFilter,magFilter:e.LinearFilter,format:e.RGBAFormat},r=t.getSize(new e.Vector2);this._pixelRatio=t.getPixelRatio(),this._width=r.width,this._height=r.height,(n=new e.WebGLRenderTarget(this._width*this._pixelRatio,this._height*this._pixelRatio,o)).texture.name="EffectComposer.rt1"}else this._pixelRatio=1,this._width=n.width,this._height=n.height;this.renderTarget1=n,this.renderTarget2=n.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],void 0===b&&console.error("THREE.EffectComposer relies on CopyShader"),void 0===S&&console.error("THREE.EffectComposer relies on ShaderPass"),this.copyPass=new S(b),this.clock=new e.Clock}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t<this.passes.length;t++)if(this.passes[t].enabled)return!1;return!0}render(e){void 0===e&&(e=this.clock.getDelta());const t=this.renderer.getRenderTarget();let n=!1;for(let t=0,o=this.passes.length;t<o;t++){const o=this.passes[t];if(!1!==o.enabled){if(o.renderToScreen=this.renderToScreen&&this.isLastEnabledPass(t),o.render(this.renderer,this.writeBuffer,this.readBuffer,e,n),o.needsSwap){if(n){const t=this.renderer.getContext(),n=this.renderer.state.buffers.stencil;n.setFunc(t.NOTEQUAL,1,4294967295),this.copyPass.render(this.renderer,this.writeBuffer,this.readBuffer,e),n.setFunc(t.EQUAL,1,4294967295)}this.swapBuffers()}void 0!==_&&(o instanceof _?n=!0:o instanceof k&&(n=!1))}}this.renderer.setRenderTarget(t)}reset(t){if(void 0===t){const n=this.renderer.getSize(new e.Vector2);this._pixelRatio=this.renderer.getPixelRatio(),this._width=n.width,this._height=n.height,(t=this.renderTarget1.clone()).setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}this.renderTarget1.dispose(),this.renderTarget2.dispose(),this.renderTarget1=t,this.renderTarget2=t.clone(),this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2}setSize(e,t){this._width=e,this._height=t;const n=this._width*this._pixelRatio,o=this._height*this._pixelRatio;this.renderTarget1.setSize(n,o),this.renderTarget2.setSize(n,o);for(let e=0;e<this.passes.length;e++)this.passes[e].setSize(n,o)}setPixelRatio(e){this._pixelRatio=e,this.setSize(this._width,this._height)}}new e.OrthographicCamera(-1,1,1,-1,0,1);const x=new e.BufferGeometry;x.setAttribute("position",new e.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),x.setAttribute("uv",new e.Float32BufferAttribute([0,2,0,0,2,0],2));class T extends v{constructor(t,n,o,r,i){super(),this.scene=t,this.camera=n,this.overrideMaterial=o,this.clearColor=r,this.clearAlpha=void 0!==i?i:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new e.Color}render(e,t,n){const o=e.autoClear;let r,i;e.autoClear=!1,void 0!==this.overrideMaterial&&(i=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),r=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:n),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),this.clearColor&&e.setClearColor(this._oldClearColor,r),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=i),e.autoClear=o}}function C(){return C=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},C.apply(this,arguments)}function j(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function O(e,t){return O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},O(e,t)}function R(e){return R=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},R(e)}function L(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function I(e,t,n){return I=L()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var r=new(Function.bind.apply(e,o));return n&&O(r,n.prototype),r},I.apply(null,arguments)}function M(e){var t="function"==typeof Map?new Map:void 0;return M=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,o)}function o(){return I(e,arguments,R(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),O(o,e)},M(e)}var A={1:"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\n\n",2:"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\n\n",3:"Passed an incorrect argument to a color function, please pass a string representation of a color.\n\n",4:"Couldn't generate valid rgb string from %s, it returned %s.\n\n",5:"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\n\n",6:"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\n\n",7:"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\n\n",8:"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\n\n",9:"Please provide a number of steps to the modularScale helper.\n\n",10:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",11:'Invalid value passed as base to modularScale, expected number or em string but got "%s"\n\n',12:'Expected a string ending in "px" or a number passed as the first argument to %s(), got "%s" instead.\n\n',13:'Expected a string ending in "px" or a number passed as the second argument to %s(), got "%s" instead.\n\n',14:'Passed invalid pixel value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',15:'Passed invalid base value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',16:"You must provide a template to this method.\n\n",17:"You passed an unsupported selector state to this method.\n\n",18:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",19:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",20:"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",21:"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\n\n",22:"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\n\n",23:"fontFace expects a name of a font-family.\n\n",24:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",25:"fontFace expects localFonts to be an array.\n\n",26:"fontFace expects fileFormats to be an array.\n\n",27:"radialGradient requries at least 2 color-stops to properly render.\n\n",28:"Please supply a filename to retinaImage() as the first argument.\n\n",29:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",30:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",31:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\n\n",32:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\n\n",33:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\n\n",34:"borderRadius expects a radius value as a string or number as the second argument.\n\n",35:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',36:"Property must be a string value.\n\n",37:"Syntax Error at %s.\n\n",38:"Formula contains a function that needs parentheses at %s.\n\n",39:"Formula is missing closing parenthesis at %s.\n\n",40:"Formula has too many closing parentheses at %s.\n\n",41:"All values in a formula must have the same unit or be unitless.\n\n",42:"Please provide a number of steps to the modularScale helper.\n\n",43:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",44:"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\n\n",45:"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\n\n",46:"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\n\n",47:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",48:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",49:"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",50:"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\n\n",51:"Expects the first argument object to have the properties prop, fromSize, and toSize.\n\n",52:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",53:"fontFace expects localFonts to be an array.\n\n",54:"fontFace expects fileFormats to be an array.\n\n",55:"fontFace expects a name of a font-family.\n\n",56:"linearGradient requries at least 2 color-stops to properly render.\n\n",57:"radialGradient requries at least 2 color-stops to properly render.\n\n",58:"Please supply a filename to retinaImage() as the first argument.\n\n",59:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",60:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",61:"Property must be a string value.\n\n",62:"borderRadius expects a radius value as a string or number as the second argument.\n\n",63:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',64:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\n\n",65:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\n\n",66:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\n\n",67:"You must provide a template to this method.\n\n",68:"You passed an unsupported selector state to this method.\n\n",69:'Expected a string ending in "px" or a number passed as the first argument to %s(), got %s instead.\n\n',70:'Expected a string ending in "px" or a number passed as the second argument to %s(), got %s instead.\n\n',71:'Passed invalid pixel value %s to %s(), please pass a value like "12px" or 12.\n\n',72:'Passed invalid base value %s to %s(), please pass a value like "12px" or 12.\n\n',73:"Please provide a valid CSS variable.\n\n",74:"CSS variable not found and no default was provided.\n\n",75:"important requires a valid style object, got a %s instead.\n\n",76:"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\n\n",77:'remToPx expects a value in "rem" but you provided it in "%s".\n\n',78:'base must be set in "px" or "%" but you set it in "%s".\n'};function D(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o,r=t[0],i=[];for(o=1;o<t.length;o+=1)i.push(t[o]);return i.forEach((function(e){r=r.replace(/%[a-z]/,e)})),r}var V=function(e){var t,n;function o(t){var n;if("production"===process.env.NODE_ENV)n=e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+t+" for more information.")||this;else{for(var o=arguments.length,r=new Array(o>1?o-1:0),i=1;i<o;i++)r[i-1]=arguments[i];n=e.call(this,D.apply(void 0,[A[t]].concat(r)))||this}return j(n)}return n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,O(t,n),o}(M(Error));function F(e){return Math.round(255*e)}function z(e,t,n){return F(e)+","+F(t)+","+F(n)}function U(e,t,n,o){if(void 0===o&&(o=z),0===t)return o(n,n,n);var r=(e%360+360)%360/60,i=(1-Math.abs(2*n-1))*t,a=i*(1-Math.abs(r%2-1)),s=0,c=0,l=0;r>=0&&r<1?(s=i,c=a):r>=1&&r<2?(s=a,c=i):r>=2&&r<3?(c=i,l=a):r>=3&&r<4?(c=a,l=i):r>=4&&r<5?(s=a,l=i):r>=5&&r<6&&(s=i,l=a);var u=n-i/2;return o(s+u,c+u,l+u)}var Y={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var N=/^#[a-fA-F0-9]{6}$/,B=/^#[a-fA-F0-9]{8}$/,H=/^#[a-fA-F0-9]{3}$/,X=/^#[a-fA-F0-9]{4}$/,q=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i,K=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i,Q=/^hsl\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,Z=/^hsla\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i;function G(e){if("string"!=typeof e)throw new V(3);var t=function(e){if("string"!=typeof e)return e;var t=e.toLowerCase();return Y[t]?"#"+Y[t]:e}(e);if(t.match(N))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(B)){var n=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:n}}if(t.match(H))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(X)){var o=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:o}}var r=q.exec(t);if(r)return{red:parseInt(""+r[1],10),green:parseInt(""+r[2],10),blue:parseInt(""+r[3],10)};var i=K.exec(t.substring(0,50));if(i)return{red:parseInt(""+i[1],10),green:parseInt(""+i[2],10),blue:parseInt(""+i[3],10),alpha:parseFloat(""+i[4])};var a=Q.exec(t);if(a){var s="rgb("+U(parseInt(""+a[1],10),parseInt(""+a[2],10)/100,parseInt(""+a[3],10)/100)+")",c=q.exec(s);if(!c)throw new V(4,t,s);return{red:parseInt(""+c[1],10),green:parseInt(""+c[2],10),blue:parseInt(""+c[3],10)}}var l=Z.exec(t.substring(0,50));if(l){var u="rgb("+U(parseInt(""+l[1],10),parseInt(""+l[2],10)/100,parseInt(""+l[3],10)/100)+")",h=q.exec(u);if(!h)throw new V(4,t,u);return{red:parseInt(""+h[1],10),green:parseInt(""+h[2],10),blue:parseInt(""+h[3],10),alpha:parseFloat(""+l[4])}}throw new V(5)}var W=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e};function $(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function J(e,t,n){if("number"==typeof e&&"number"==typeof t&&"number"==typeof n)return W("#"+$(e)+$(t)+$(n));if("object"==typeof e&&void 0===t&&void 0===n)return W("#"+$(e.red)+$(e.green)+$(e.blue));throw new V(6)}function ee(e,t,n){return function(){var o=n.concat(Array.prototype.slice.call(arguments));return o.length>=t?e.apply(this,o):ee(e,t,o)}}function te(e){return ee(e,e.length,[])}function ne(e,t){if("transparent"===t)return t;var n,o,r,i=G(t),a="number"==typeof i.alpha?i.alpha:1;return function(e,t,n,o){if("string"==typeof e&&"number"==typeof t){var r=G(e);return"rgba("+r.red+","+r.green+","+r.blue+","+t+")"}if("number"==typeof e&&"number"==typeof t&&"number"==typeof n&&"number"==typeof o)return o>=1?J(e,t,n):"rgba("+e+","+t+","+n+","+o+")";if("object"==typeof e&&void 0===t&&void 0===n&&void 0===o)return e.alpha>=1?J(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new V(7)}(C({},i,{alpha:(n=0,o=1,r=(100*a+100*parseFloat(e))/100,Math.max(n,Math.min(o,r)))}))}var oe,re=te(ne),ie={Linear:{None:function(e){return e}},Quadratic:{In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}},Cubic:{In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}},Quartic:{In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}},Quintic:{In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}},Sinusoidal:{In:function(e){return 1-Math.cos(e*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return.5*(1-Math.cos(Math.PI*e))}},Exponential:{In:function(e){return 0===e?0:Math.pow(1024,e-1)},Out:function(e){return 1===e?1:1-Math.pow(2,-10*e)},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(2-Math.pow(2,-10*(e-1)))}},Circular:{In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},Elastic:{In:function(e){return 0===e?0:1===e?1:-Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)},Out:function(e){return 0===e?0:1===e?1:Math.pow(2,-10*e)*Math.sin(5*(e-.1)*Math.PI)+1},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?-.5*Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)+1}},Back:{In:function(e){var t=1.70158;return e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?e*e*((t+1)*e-t)*.5:.5*((e-=2)*e*((t+1)*e+t)+2)}},Bounce:{In:function(e){return 1-ie.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?.5*ie.Bounce.In(2*e):.5*ie.Bounce.Out(2*e-1)+.5}}},ae="undefined"==typeof self&&"undefined"!=typeof process&&process.hrtime?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof self&&void 0!==self.performance&&void 0!==self.performance.now?self.performance.now.bind(self.performance):void 0!==Date.now?Date.now:function(){return(new Date).getTime()},se=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var e=this;return Object.keys(this._tweens).map((function(t){return e._tweens[t]}))},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(e){this._tweens[e.getId()]=e,this._tweensAddedDuringUpdate[e.getId()]=e},e.prototype.remove=function(e){delete this._tweens[e.getId()],delete this._tweensAddedDuringUpdate[e.getId()]},e.prototype.update=function(e,t){void 0===e&&(e=ae()),void 0===t&&(t=!1);var n=Object.keys(this._tweens);if(0===n.length)return!1;for(;n.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o<n.length;o++){var r=this._tweens[n[o]],i=!t;r&&!1===r.update(e,i)&&!t&&delete this._tweens[n[o]]}n=Object.keys(this._tweensAddedDuringUpdate)}return!0},e}(),ce={Linear:function(e,t){var n=e.length-1,o=n*t,r=Math.floor(o),i=ce.Utils.Linear;return t<0?i(e[0],e[1],o):t>1?i(e[n],e[n-1],n-o):i(e[r],e[r+1>n?n:r+1],o-r)},Bezier:function(e,t){for(var n=0,o=e.length-1,r=Math.pow,i=ce.Utils.Bernstein,a=0;a<=o;a++)n+=r(1-t,o-a)*r(t,a)*e[a]*i(o,a);return n},CatmullRom:function(e,t){var n=e.length-1,o=n*t,r=Math.floor(o),i=ce.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(r=Math.floor(o=n*(1+t))),i(e[(r-1+n)%n],e[r],e[(r+1)%n],e[(r+2)%n],o-r)):t<0?e[0]-(i(e[0],e[0],e[1],e[1],-o)-e[0]):t>1?e[n]-(i(e[n],e[n],e[n-1],e[n-1],o-n)-e[n]):i(e[r?r-1:0],e[r],e[n<r+1?n:r+1],e[n<r+2?n:r+2],o-r)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=ce.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:(oe=[1],function(e){var t=1;if(oe[e])return oe[e];for(var n=e;n>1;n--)t*=n;return oe[e]=t,t}),CatmullRom:function(e,t,n,o,r){var i=.5*(n-e),a=.5*(o-t),s=r*r;return(2*t-2*n+i+a)*(r*s)+(-3*t+3*n-2*i-a)*s+i*r+t}}},le=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),ue=new se,he=function(){function e(e,t){void 0===t&&(t=ue),this._object=e,this._group=t,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=ie.Linear.None,this._interpolationFunction=ce.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._id=le.nextId(),this._isChainStopped=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.to=function(e,t){return this._valuesEnd=Object.create(e),void 0!==t&&(this._duration=t),this},e.prototype.duration=function(e){return this._duration=e,this},e.prototype.start=function(e){if(this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed)for(var t in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(t),this._valuesStart[t]=this._valuesStartRepeat[t];return this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=void 0!==e?"string"==typeof e?ae()+parseFloat(e):e:ae(),this._startTime+=this._delayTime,this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat),this},e.prototype._setupProperties=function(e,t,n,o){for(var r in n){var i=e[r],a=Array.isArray(i),s=a?"array":typeof i,c=!a&&Array.isArray(n[r]);if("undefined"!==s&&"function"!==s){if(c){var l=n[r];if(0===l.length)continue;l=l.map(this._handleRelativeValue.bind(this,i)),n[r]=[i].concat(l)}if("object"!==s&&!a||!i||c)void 0===t[r]&&(t[r]=i),a||(t[r]*=1),o[r]=c?n[r].slice().reverse():t[r]||0;else{for(var u in t[r]=a?[]:{},i)t[r][u]=i[u];o[r]=a?[]:{},this._setupProperties(i,t[r],n[r],o[r])}}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(e){return void 0===e&&(e=ae()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=e,this._group&&this._group.remove(this)),this},e.prototype.resume=function(e){return void 0===e&&(e=ae()),this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=e-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this):this},e.prototype.stopChainedTweens=function(){for(var e=0,t=this._chainedTweens.length;e<t;e++)this._chainedTweens[e].stop();return this},e.prototype.group=function(e){return this._group=e,this},e.prototype.delay=function(e){return this._delayTime=e,this},e.prototype.repeat=function(e){return this._initialRepeat=e,this._repeat=e,this},e.prototype.repeatDelay=function(e){return this._repeatDelayTime=e,this},e.prototype.yoyo=function(e){return this._yoyo=e,this},e.prototype.easing=function(e){return this._easingFunction=e,this},e.prototype.interpolation=function(e){return this._interpolationFunction=e,this},e.prototype.chain=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return this._chainedTweens=e,this},e.prototype.onStart=function(e){return this._onStartCallback=e,this},e.prototype.onUpdate=function(e){return this._onUpdateCallback=e,this},e.prototype.onRepeat=function(e){return this._onRepeatCallback=e,this},e.prototype.onComplete=function(e){return this._onCompleteCallback=e,this},e.prototype.onStop=function(e){return this._onStopCallback=e,this},e.prototype.update=function(e,t){if(void 0===e&&(e=ae()),void 0===t&&(t=!0),this._isPaused)return!0;var n,o,r=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(e>r)return!1;t&&this.start(e)}if(this._goToEnd=!1,e<this._startTime)return!0;!1===this._onStartCallbackFired&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),o=(e-this._startTime)/this._duration,o=0===this._duration||o>1?1:o;var i=this._easingFunction(o);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,i),this._onUpdateCallback&&this._onUpdateCallback(this._object,o),1===o){if(this._repeat>0){for(n in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat)this._yoyo||"string"!=typeof this._valuesEnd[n]||(this._valuesStartRepeat[n]=this._valuesStartRepeat[n]+parseFloat(this._valuesEnd[n])),this._yoyo&&this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n];return this._yoyo&&(this._reversed=!this._reversed),void 0!==this._repeatDelayTime?this._startTime=e+this._repeatDelayTime:this._startTime=e+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var a=0,s=this._chainedTweens.length;a<s;a++)this._chainedTweens[a].start(this._startTime+this._duration);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(e,t,n,o){for(var r in n)if(void 0!==t[r]){var i=t[r]||0,a=n[r],s=Array.isArray(e[r]),c=Array.isArray(a);!s&&c?e[r]=this._interpolationFunction(a,o):"object"==typeof a&&a?this._updateProperties(e[r],i,a,o):"number"==typeof(a=this._handleRelativeValue(i,a))&&(e[r]=i+(a-i)*o)}},e.prototype._handleRelativeValue=function(e,t){return"string"!=typeof t?t:"+"===t.charAt(0)||"-"===t.charAt(0)?e+parseFloat(t):parseFloat(t)},e.prototype._swapEndStartRepeatValues=function(e){var t=this._valuesStartRepeat[e],n=this._valuesEnd[e];this._valuesStartRepeat[e]="string"==typeof n?this._valuesStartRepeat[e]+parseFloat(n):this._valuesEnd[e],this._valuesEnd[e]=t},e}(),de=le.nextId,pe=ue,fe=pe.getAll.bind(pe),me=pe.removeAll.bind(pe),ge=pe.add.bind(pe),be=pe.remove.bind(pe),ve=pe.update.bind(pe),ye={Easing:ie,Group:se,Interpolation:ce,now:ae,Sequence:le,nextId:de,Tween:he,VERSION:"18.6.4",getAll:fe,removeAll:me,add:ge,remove:be,update:ve};function we(e,t,n){var o,r,i,a,s;function c(){var l=Date.now()-a;l<t&&l>=0?o=setTimeout(c,t-l):(o=null,n||(s=e.apply(i,r),i=r=null))}null==t&&(t=100);var l=function(){i=this,r=arguments,a=Date.now();var l=n&&!o;return o||(o=setTimeout(c,t)),l&&(s=e.apply(i,r),i=r=null),s};return l.clear=function(){o&&(clearTimeout(o),o=null)},l.flush=function(){o&&(s=e.apply(i,r),i=r=null,clearTimeout(o),o=null)},l}we.debounce=we;var Ee=we;function Se(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _e(e,t,n){return t&&Se(e.prototype,t),n&&Se(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function ke(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var o,r,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(o=n.next()).done)&&(i.push(o.value),!t||i.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw r}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Pe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Pe(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var xe=_e((function e(t,n){var o=n.default,r=void 0===o?null:o,i=n.triggerUpdate,a=void 0===i||i,s=n.onChange,c=void 0===s?function(e,t){}:s;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.name=t,this.defaultVal=r,this.triggerUpdate=a,this.onChange=c}));var Te,Ce,je,Oe,Re,Le,Ie,Me,Ae,De,Ve,Fe,ze,Ue,Ye=window.THREE?window.THREE:{WebGLRenderer:e.WebGLRenderer,Scene:e.Scene,PerspectiveCamera:e.PerspectiveCamera,Raycaster:e.Raycaster,TextureLoader:e.TextureLoader,Vector2:e.Vector2,Vector3:e.Vector3,Box3:e.Box3,Color:e.Color,Mesh:e.Mesh,SphereGeometry:e.SphereGeometry,MeshBasicMaterial:e.MeshBasicMaterial,BackSide:e.BackSide,EventDispatcher:e.EventDispatcher,MOUSE:e.MOUSE,Quaternion:e.Quaternion,Spherical:e.Spherical,Clock:e.Clock},Ne=(Te={props:{width:{default:window.innerWidth,onChange:function(e,t,n){isNaN(e)&&(t.width=n)}},height:{default:window.innerHeight,onChange:function(e,t,n){isNaN(e)&&(t.height=n)}},backgroundColor:{default:"#000011"},backgroundImageUrl:{},onBackgroundImageLoaded:{},showNavInfo:{default:!0},skyRadius:{default:5e4},objects:{default:[]},enablePointerInteraction:{default:!0,onChange:function(e,t){t.hoverObj=null,t.toolTipElem&&(t.toolTipElem.innerHTML="")},triggerUpdate:!1},lineHoverPrecision:{default:1,triggerUpdate:!1},hoverOrderComparator:{default:function(){return-1},triggerUpdate:!1},hoverFilter:{default:function(){return!0},triggerUpdate:!1},tooltipContent:{triggerUpdate:!1},hoverDuringDrag:{default:!1,triggerUpdate:!1},clickAfterDrag:{default:!1,triggerUpdate:!1},onHover:{default:function(){},triggerUpdate:!1},onClick:{default:function(){},triggerUpdate:!1},onRightClick:{triggerUpdate:!1}},methods:{tick:function(e){if(e.initialised){if(e.controls.update&&e.controls.update(e.clock.getDelta()),e.postProcessingComposer?e.postProcessingComposer.render():e.renderer.render(e.scene,e.camera),e.extraRenderers.forEach((function(t){return t.render(e.scene,e.camera)})),e.enablePointerInteraction){var t=null;if(e.hoverDuringDrag||!e.isPointerDragging){var n=this.intersectingObjects(e.pointerPos.x,e.pointerPos.y).filter((function(t){return e.hoverFilter(t.object)})).sort((function(t,n){return e.hoverOrderComparator(t.object,n.object)})),o=n.length?n[0]:null;t=o?o.object:null,e.intersectionPoint=o?o.point:null}t!==e.hoverObj&&(e.onHover(t,e.hoverObj),e.toolTipElem.innerHTML=t&&((r=e.tooltipContent)instanceof Function?r:"string"==typeof r?function(e){return e[r]}:function(e){return r})(t)||"",e.hoverObj=t)}ye.update()}var r;return this},getPointerPos:function(e){var t=e.pointerPos;return{x:t.x,y:t.y}},cameraPosition:function(e,t,n,o){var r=e.camera;if(t&&e.initialised){var i=t,a=n||{x:0,y:0,z:0};if(o){var s=Object.assign({},r.position),c=h();new ye.Tween(s).to(i,o).easing(ye.Easing.Quadratic.Out).onUpdate(l).start(),new ye.Tween(c).to(a,o/3).easing(ye.Easing.Quadratic.Out).onUpdate(u).start()}else l(i),u(a);return this}return Object.assign({},r.position,{lookAt:h()});function l(e){var t=e.x,n=e.y,o=e.z;void 0!==t&&(r.position.x=t),void 0!==n&&(r.position.y=n),void 0!==o&&(r.position.z=o)}function u(t){var n=new Ye.Vector3(t.x,t.y,t.z);e.controls.target?e.controls.target=n:r.lookAt(n)}function h(){return Object.assign(new Ye.Vector3(0,0,-1e3).applyQuaternion(r.quaternion).add(r.position))}},zoomToFit:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,o=arguments.length,r=new Array(o>3?o-3:0),i=3;i<o;i++)r[i-3]=arguments[i];return this.fitToBbox(this.getBbox.apply(this,r),t,n)},fitToBbox:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,a=e.camera;if(t){var s=new Ye.Vector3(0,0,0),c=2*Math.max.apply(Math,o(Object.entries(t).map((function(e){var t=n(e,2),r=t[0],i=t[1];return Math.max.apply(Math,o(i.map((function(e){return Math.abs(s[r]-e)}))))})))),l=(1-2*i/e.height)*a.fov,u=c/Math.atan(l*Math.PI/180),h=u/a.aspect,d=Math.max(u,h);if(d>0){var p=s.clone().sub(a.position).normalize().multiplyScalar(-d);this.cameraPosition(p,s,r)}}return this},getBbox:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return!0},r=new Ye.Box3(new Ye.Vector3(0,0,0),new Ye.Vector3(0,0,0)),i=e.objects.filter(n);return i.length?(i.forEach((function(e){return r.expandByObject(e)})),Object.assign.apply(Object,o(["x","y","z"].map((function(e){return t({},e,[r.min[e],r.max[e]])}))))):null},getScreenCoords:function(e,t,n,o){var r=new Ye.Vector3(t,n,o);return r.project(this.camera()),{x:(r.x+1)*e.width/2,y:-(r.y-1)*e.height/2}},getSceneCoords:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=new Ye.Vector2(t/e.width*2-1,-n/e.height*2+1),i=new Ye.Raycaster;return i.setFromCamera(r,e.camera),Object.assign({},i.ray.at(o,new Ye.Vector3))},intersectingObjects:function(e,t,n){var o=new Ye.Vector2(t/e.width*2-1,-n/e.height*2+1),r=new Ye.Raycaster;return r.params.Line.threshold=e.lineHoverPrecision,r.setFromCamera(o,e.camera),r.intersectObjects(e.objects,!0)},renderer:function(e){return e.renderer},scene:function(e){return e.scene},camera:function(e){return e.camera},postProcessingComposer:function(e){return e.postProcessingComposer},controls:function(e){return e.controls},tbControls:function(e){return e.controls}},stateInit:function(){return{scene:new Ye.Scene,camera:new Ye.PerspectiveCamera,clock:new Ye.Clock}},init:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.controlType,i=void 0===r?"trackball":r,a=n.rendererConfig,s=void 0===a?{}:a,c=n.extraRenderers,u=void 0===c?[]:c,h=n.waitForLoadComplete,d=void 0===h||h;e.innerHTML="",e.appendChild(t.container=document.createElement("div")),t.container.className="scene-container",t.container.style.position="relative",t.container.appendChild(t.navInfo=document.createElement("div")),t.navInfo.className="scene-nav-info",t.navInfo.textContent={orbit:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",trackball:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",fly:"WASD: move, R|F: up | down, Q|E: roll, up|down: pitch, left|right: yaw"}[i]||"",t.navInfo.style.display=t.showNavInfo?null:"none",t.toolTipElem=document.createElement("div"),t.toolTipElem.classList.add("scene-tooltip"),t.container.appendChild(t.toolTipElem),t.pointerPos=new Ye.Vector2,t.pointerPos.x=-2,t.pointerPos.y=-2,["pointermove","pointerdown"].forEach((function(e){return t.container.addEventListener(e,(function(n){if("pointerdown"===e&&(t.isPointerPressed=!0),!t.isPointerDragging&&"pointermove"===n.type&&(n.pressure>0||t.isPointerPressed)&&("touch"!==n.pointerType||void 0===n.movementX||[n.movementX,n.movementY].some((function(e){return Math.abs(e)>1})))&&(t.isPointerDragging=!0),t.enablePointerInteraction){var o=(r=t.container,i=r.getBoundingClientRect(),a=window.pageXOffset||document.documentElement.scrollLeft,s=window.pageYOffset||document.documentElement.scrollTop,{top:i.top+s,left:i.left+a});t.pointerPos.x=n.pageX-o.left,t.pointerPos.y=n.pageY-o.top,t.toolTipElem.style.top="".concat(t.pointerPos.y,"px"),t.toolTipElem.style.left="".concat(t.pointerPos.x,"px"),t.toolTipElem.style.transform="translate(-".concat(t.pointerPos.x/t.width*100,"%, 21px)")}var r,i,a,s}),{passive:!0})})),t.container.addEventListener("pointerup",(function(e){t.isPointerPressed=!1,t.isPointerDragging&&(t.isPointerDragging=!1,!t.clickAfterDrag)||requestAnimationFrame((function(){0===e.button&&t.onClick(t.hoverObj||null,e,t.intersectionPoint),2===e.button&&t.onRightClick&&t.onRightClick(t.hoverObj||null,e,t.intersectionPoint)}))}),{passive:!0,capture:!0}),t.container.addEventListener("contextmenu",(function(e){t.onRightClick&&e.preventDefault()})),t.renderer=new Ye.WebGLRenderer(Object.assign({antialias:!0,alpha:!0},s)),t.renderer.setPixelRatio(Math.min(2,window.devicePixelRatio)),t.container.appendChild(t.renderer.domElement),t.extraRenderers=u,t.extraRenderers.forEach((function(e){e.domElement.style.position="absolute",e.domElement.style.top="0px",e.domElement.style.pointerEvents="none",t.container.appendChild(e.domElement)})),t.postProcessingComposer=new P(t.renderer),t.postProcessingComposer.addPass(new T(t.scene,t.camera)),t.controls=new{trackball:l,orbit:p,fly:m}[i](t.camera,t.renderer.domElement),"fly"===i&&(t.controls.movementSpeed=300,t.controls.rollSpeed=Math.PI/6,t.controls.dragToLook=!0),"trackball"!==i&&"orbit"!==i||(t.controls.minDistance=.1,t.controls.maxDistance=t.skyRadius,t.controls.addEventListener("start",(function(){t.controlsEngaged=!0})),t.controls.addEventListener("change",(function(){t.controlsEngaged&&(t.controlsDragging=!0)})),t.controls.addEventListener("end",(function(){t.controlsEngaged=!1,t.controlsDragging=!1}))),[t.renderer,t.postProcessingComposer].concat(o(t.extraRenderers)).forEach((function(e){return e.setSize(t.width,t.height)})),t.camera.aspect=t.width/t.height,t.camera.updateProjectionMatrix(),t.camera.position.z=1e3,t.scene.add(t.skysphere=new Ye.Mesh),t.skysphere.visible=!1,t.loadComplete=t.scene.visible=!d,window.scene=t.scene},update:function(e,t){if(e.width&&e.height&&(t.hasOwnProperty("width")||t.hasOwnProperty("height"))&&(e.container.style.width="".concat(e.width,"px"),e.container.style.height="".concat(e.height,"px"),[e.renderer,e.postProcessingComposer].concat(o(e.extraRenderers)).forEach((function(t){return t.setSize(e.width,e.height)})),e.camera.aspect=e.width/e.height,e.camera.updateProjectionMatrix()),t.hasOwnProperty("skyRadius")&&e.skyRadius&&(e.controls.hasOwnProperty("maxDistance")&&t.skyRadius&&(e.controls.maxDistance=e.skyRadius),e.camera.far=2.5*e.skyRadius,e.camera.updateProjectionMatrix(),e.skysphere.geometry=new Ye.SphereGeometry(e.skyRadius)),t.hasOwnProperty("backgroundColor")){var n=G(e.backgroundColor).alpha;void 0===n&&(n=1),e.renderer.setClearColor(new Ye.Color(re(1,e.backgroundColor)),n)}function r(){e.loadComplete=e.scene.visible=!0}t.hasOwnProperty("backgroundImageUrl")&&(e.backgroundImageUrl?(new Ye.TextureLoader).load(e.backgroundImageUrl,(function(t){e.skysphere.material=new Ye.MeshBasicMaterial({map:t,side:Ye.BackSide}),e.skysphere.visible=!0,e.onBackgroundImageLoaded&&setTimeout(e.onBackgroundImageLoaded),!e.loadComplete&&r()})):(e.skysphere.visible=!1,e.skysphere.material.map=null,!e.loadComplete&&r())),t.hasOwnProperty("showNavInfo")&&(e.navInfo.style.display=e.showNavInfo?null:"none"),t.hasOwnProperty("objects")&&((t.objects||[]).forEach((function(t){return e.scene.remove(t)})),e.objects.forEach((function(t){return e.scene.add(t)})))}},Ce=Te.stateInit,je=void 0===Ce?function(){return{}}:Ce,Oe=Te.props,Re=void 0===Oe?{}:Oe,Le=Te.methods,Ie=void 0===Le?{}:Le,Me=Te.aliases,Ae=void 0===Me?{}:Me,De=Te.init,Ve=void 0===De?function(){}:De,Fe=Te.update,ze=void 0===Fe?function(){}:Fe,Ue=Object.keys(Re).map((function(e){return new xe(e,Re[e])})),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},je instanceof Function?je(e):je,{initialised:!1}),n={};function o(t){return r(t,e),i(),o}var r=function(e,n){Ve.call(o,e,t,n),t.initialised=!0},i=Ee((function(){t.initialised&&(ze.call(o,t,n),n={})}),1);return Ue.forEach((function(e){o[e.name]=function(e){var r=e.name,a=e.triggerUpdate,s=void 0!==a&&a,c=e.onChange,l=void 0===c?function(e,t){}:c,u=e.defaultVal,h=void 0===u?null:u;return function(e){var a=t[r];if(!arguments.length)return a;var c=void 0===e?h:e;return t[r]=c,l.call(o,c,t,a),!n.hasOwnProperty(r)&&(n[r]=a),s&&i(),o}}(e)})),Object.keys(Ie).forEach((function(e){o[e]=function(){for(var n,r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return(n=Ie[e]).call.apply(n,[o,t].concat(i))}})),Object.entries(Ae).forEach((function(e){var t=ke(e,2),n=t[0],r=t[1];return o[n]=o[r]})),o.resetProps=function(){return Ue.forEach((function(e){o[e.name](e.defaultVal)})),o},o.resetProps(),t._rerender=i,o});return Ne}));
@@ -77,7 +77,7 @@ function _iterableToArray(iter) {
77
77
  }
78
78
 
79
79
  function _iterableToArrayLimit(arr, i) {
80
- var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]);
80
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
81
81
 
82
82
  if (_i == null) return;
83
83
  var _arr = [];
@@ -318,7 +318,14 @@ var threeRenderObjects = Kapsule({
318
318
  }
319
319
 
320
320
  function setLookAt(lookAt) {
321
- state.controls.target = new three.Vector3(lookAt.x, lookAt.y, lookAt.z);
321
+ var lookAtVect = new three.Vector3(lookAt.x, lookAt.y, lookAt.z);
322
+
323
+ if (state.controls.target) {
324
+ state.controls.target = lookAtVect;
325
+ } else {
326
+ // Fly controls doesn't have target attribute
327
+ camera.lookAt(lookAtVect); // note: lookAt may be overridden by other controls in some cases
328
+ }
322
329
  }
323
330
 
324
331
  function getLookAt() {
@@ -599,8 +606,8 @@ var threeRenderObjects = Kapsule({
599
606
  update: function update(state, changedProps) {
600
607
  // resize canvas
601
608
  if (state.width && state.height && (changedProps.hasOwnProperty('width') || changedProps.hasOwnProperty('height'))) {
602
- state.container.style.width = state.width;
603
- state.container.style.height = state.height;
609
+ state.container.style.width = "".concat(state.width, "px");
610
+ state.container.style.height = "".concat(state.height, "px");
604
611
  [state.renderer, state.postProcessingComposer].concat(_toConsumableArray(state.extraRenderers)).forEach(function (r) {
605
612
  return r.setSize(state.width, state.height);
606
613
  });
@@ -659,4 +666,4 @@ var threeRenderObjects = Kapsule({
659
666
  }
660
667
  });
661
668
 
662
- export default threeRenderObjects;
669
+ export { threeRenderObjects as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-render-objects",
3
- "version": "1.26.3",
3
+ "version": "1.26.7",
4
4
  "description": "Easy way to render ThreeJS objects with built-in interaction defaults",
5
5
  "license": "MIT",
6
6
  "unpkg": "dist/three-render-objects.min.js",
@@ -36,29 +36,29 @@
36
36
  "prepare": "npm run build"
37
37
  },
38
38
  "dependencies": {
39
- "@tweenjs/tween.js": "^18.6.4",
40
- "accessor-fn": "^1.3.0",
41
- "kapsule": "^1.13.4",
42
- "polished": "^4.1.2"
39
+ "@tweenjs/tween.js": "18",
40
+ "accessor-fn": "1",
41
+ "kapsule": "^1.13",
42
+ "polished": "4"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "three": "*"
46
46
  },
47
47
  "devDependencies": {
48
- "@babel/core": "^7.14.3",
49
- "@babel/plugin-proposal-class-properties": "^7.13.0",
50
- "@babel/plugin-proposal-object-rest-spread": "^7.14.2",
51
- "@babel/preset-env": "^7.14.2",
48
+ "@babel/core": "^7.16.12",
49
+ "@babel/plugin-proposal-class-properties": "^7.16.7",
50
+ "@babel/plugin-proposal-object-rest-spread": "^7.16.7",
51
+ "@babel/preset-env": "^7.16.11",
52
52
  "@rollup/plugin-babel": "^5.3.0",
53
- "@rollup/plugin-commonjs": "^19.0.0",
54
- "@rollup/plugin-node-resolve": "^13.0.0",
55
- "postcss": "^8.3.0",
53
+ "@rollup/plugin-commonjs": "^21.0.1",
54
+ "@rollup/plugin-node-resolve": "^13.1.3",
55
+ "postcss": "^8.4.5",
56
56
  "rimraf": "^3.0.2",
57
- "rollup": "^2.49.0",
58
- "rollup-plugin-dts": "^3.0.2",
59
- "rollup-plugin-postcss": "^4.0.0",
57
+ "rollup": "^2.66.1",
58
+ "rollup-plugin-dts": "^4.1.0",
59
+ "rollup-plugin-postcss": "^4.0.2",
60
60
  "rollup-plugin-terser": "^7.0.2",
61
- "three": "^0.128.0",
62
- "typescript": "^4.2.4"
61
+ "three": "^0.137.5",
62
+ "typescript": "^4.5.5"
63
63
  }
64
64
  }