!function(){let e={type:"change"},t={type:"start"},n={type:"end"};class o extends THREE.EventDispatcher{constructor(o,a){super(),void 0===a&&console.warn('THREE.MapControls: The second parameter "domElement" is now mandatory.'),a===document&&console.error('THREE.MapControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=o,this.domElement=a,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new THREE.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=!1,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:THREE.MOUSE.PAN,MIDDLE:THREE.MOUSE.DOLLY,RIGHT:THREE.MOUSE.ROTATE},this.touches={ONE:THREE.TOUCH.PAN,TWO:THREE.TOUCH.DOLLY_ROTATE},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return l.phi},this.getAzimuthalAngle=function(){return l.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(){i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=function(){i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent(e),i.update(),s=r.NONE},this.update=function(){let t=new THREE.Vector3,n=(new THREE.Quaternion).setFromUnitVectors(o.up,new THREE.Vector3(0,1,0)),a=n.clone().invert(),h=new THREE.Vector3,d=new THREE.Quaternion,b=2*Math.PI;return function(){let o=i.object.position;t.copy(o).sub(i.target),t.applyQuaternion(n),l.setFromVector3(t),i.autoRotate&&s===r.NONE&&A(2*Math.PI/60/60*i.autoRotateSpeed),i.enableDamping?(l.theta+=p.theta*i.dampingFactor,l.phi+=p.phi*i.dampingFactor):(l.theta+=p.theta,l.phi+=p.phi);let T=i.minAzimuthAngle,g=i.maxAzimuthAngle;return isFinite(T)&&isFinite(g)&&(T<-Math.PI?T+=b:T>Math.PI&&(T-=b),g<-Math.PI?g+=b:g>Math.PI&&(g-=b),l.theta=T<=g?Math.max(T,Math.min(g,l.theta)):l.theta>(T+g)/2?Math.max(T,l.theta):Math.min(g,l.theta)),l.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,l.phi)),l.makeSafe(),l.radius*=m,l.radius=Math.max(i.minDistance,Math.min(i.maxDistance,l.radius)),!0===i.enableDamping?i.target.addScaledVector(E,i.dampingFactor):i.target.add(E),t.setFromSpherical(l),t.applyQuaternion(a),o.copy(i.target).add(t),i.object.lookAt(i.target),!0===i.enableDamping?(p.theta*=1-i.dampingFactor,p.phi*=1-i.dampingFactor,E.multiplyScalar(1-i.dampingFactor)):(p.set(0,0,0),E.set(0,0,0)),m=1,!!(u||h.distanceToSquared(i.object.position)>c||8*(1-d.dot(i.object.quaternion))>c)&&(i.dispatchEvent(e),h.copy(i.object.position),d.copy(i.object.quaternion),u=!1,!0)}}(),this.dispose=function(){i.domElement.removeEventListener("contextmenu",B),i.domElement.removeEventListener("pointerdown",_),i.domElement.removeEventListener("pointercancel",X),i.domElement.removeEventListener("wheel",Z),i.domElement.removeEventListener("pointermove",z),i.domElement.removeEventListener("pointerup",F),null!==i._domElementKeyEvents&&i._domElementKeyEvents.removeEventListener("keydown",K)};let i=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},s=r.NONE,c=1e-6,l=new THREE.Spherical,p=new THREE.Spherical,m=1,E=new THREE.Vector3,u=!1,h=new THREE.Vector2,d=new THREE.Vector2,b=new THREE.Vector2,T=new THREE.Vector2,g=new THREE.Vector2,O=new THREE.Vector2,f=new THREE.Vector2,R=new THREE.Vector2,H=new THREE.Vector2,y=[],P={};function v(){return Math.pow(.95,i.zoomSpeed)}function A(e){p.theta-=e}function L(e){p.phi-=e}let M=function(){let e=new THREE.Vector3;return function(t,n){e.setFromMatrixColumn(n,0),e.multiplyScalar(-t),E.add(e)}}(),N=function(){let e=new THREE.Vector3;return function(t,n){!0===i.screenSpacePanning?e.setFromMatrixColumn(n,1):(e.setFromMatrixColumn(n,0),e.crossVectors(i.object.up,e)),e.multiplyScalar(t),E.add(e)}}(),w=function(){let e=new THREE.Vector3;return function(t,n){let o=i.domElement;if(i.object.isPerspectiveCamera){let a=i.object.position;e.copy(a).sub(i.target);let r=e.length();M(2*t*(r*=Math.tan(i.object.fov/2*Math.PI/180))/o.clientHeight,i.object.matrix),N(2*n*r/o.clientHeight,i.object.matrix)}else i.object.isOrthographicCamera?(M(t*(i.object.right-i.object.left)/i.object.zoom/o.clientWidth,i.object.matrix),N(n*(i.object.top-i.object.bottom)/i.object.zoom/o.clientHeight,i.object.matrix)):(console.warn("WARNING: MapControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}}();function j(e){i.object.isPerspectiveCamera?m/=e:i.object.isOrthographicCamera?(i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom*e)),i.object.updateProjectionMatrix(),u=!0):(console.warn("WARNING: MapControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function S(e){i.object.isPerspectiveCamera?m*=e:i.object.isOrthographicCamera?(i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/e)),i.object.updateProjectionMatrix(),u=!0):(console.warn("WARNING: MapControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function k(e){h.set(e.clientX,e.clientY)}function C(e){T.set(e.clientX,e.clientY)}function Y(){if(1===y.length)h.set(y[0].pageX,y[0].pageY);else{let e=.5*(y[0].pageX+y[1].pageX),t=.5*(y[0].pageY+y[1].pageY);h.set(e,t)}}function x(){if(1===y.length)T.set(y[0].pageX,y[0].pageY);else{let e=.5*(y[0].pageX+y[1].pageX),t=.5*(y[0].pageY+y[1].pageY);T.set(e,t)}}function D(){let e=y[0].pageX-y[1].pageX,t=y[0].pageY-y[1].pageY;f.set(0,Math.sqrt(e*e+t*t))}function I(e){if(1==y.length)d.set(e.pageX,e.pageY);else{let t=q(e),n=.5*(e.pageX+t.x),o=.5*(e.pageY+t.y);d.set(n,o)}b.subVectors(d,h).multiplyScalar(i.rotateSpeed);let t=i.domElement;A(2*Math.PI*b.x/t.clientHeight),L(2*Math.PI*b.y/t.clientHeight),h.copy(d)}function U(e){if(1===y.length)g.set(e.pageX,e.pageY);else{let t=q(e),n=.5*(e.pageX+t.x),o=.5*(e.pageY+t.y);g.set(n,o)}O.subVectors(g,T).multiplyScalar(i.panSpeed),w(O.x,O.y),T.copy(g)}function V(e){let t=q(e),n=e.pageX-t.x,o=e.pageY-t.y;R.set(0,Math.sqrt(n*n+o*o)),H.set(0,Math.pow(R.y/f.y,i.zoomSpeed)),j(H.y),f.copy(R)}function _(e){var n;!1!==i.enabled&&(0===y.length&&(i.domElement.setPointerCapture(e.pointerId),i.domElement.addEventListener("pointermove",z),i.domElement.addEventListener("pointerup",F)),n=e,y.push(n),"touch"===e.pointerType?function(e){switch(W(e),y.length){case 1:switch(i.touches.ONE){case THREE.TOUCH.ROTATE:if(!1===i.enableRotate)return;Y(),s=r.TOUCH_ROTATE;break;case THREE.TOUCH.PAN:if(!1===i.enablePan)return;x(),s=r.TOUCH_PAN;break;default:s=r.NONE}break;case 2:switch(i.touches.TWO){case THREE.TOUCH.DOLLY_PAN:if(!1===i.enableZoom&&!1===i.enablePan)return;i.enableZoom&&D(),i.enablePan&&x(),s=r.TOUCH_DOLLY_PAN;break;case THREE.TOUCH.DOLLY_ROTATE:if(!1===i.enableZoom&&!1===i.enableRotate)return;i.enableZoom&&D(),i.enableRotate&&Y(),s=r.TOUCH_DOLLY_ROTATE;break;default:s=r.NONE}break;default:s=r.NONE}s!==r.NONE&&i.dispatchEvent(t)}(e):function(e){let n;switch(e.button){case 0:n=i.mouseButtons.LEFT;break;case 1:n=i.mouseButtons.MIDDLE;break;case 2:n=i.mouseButtons.RIGHT;break;default:n=-1}switch(n){case THREE.MOUSE.DOLLY:var o;if(!1===i.enableZoom)return;o=e,f.set(o.clientX,o.clientY),s=r.DOLLY;break;case THREE.MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===i.enablePan)return;C(e),s=r.PAN}else{if(!1===i.enableRotate)return;k(e),s=r.ROTATE}break;case THREE.MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===i.enableRotate)return;k(e),s=r.ROTATE}else{if(!1===i.enablePan)return;C(e),s=r.PAN}break;default:s=r.NONE}s!==r.NONE&&i.dispatchEvent(t)}(e))}function z(e){!1!==i.enabled&&("touch"===e.pointerType?function(e){var t,n;switch(W(e),s){case r.TOUCH_ROTATE:if(!1===i.enableRotate)return;I(e),i.update();break;case r.TOUCH_PAN:if(!1===i.enablePan)return;U(e),i.update();break;case r.TOUCH_DOLLY_PAN:if(!1===i.enableZoom&&!1===i.enablePan)return;t=e,i.enableZoom&&V(t),i.enablePan&&U(t),i.update();break;case r.TOUCH_DOLLY_ROTATE:if(!1===i.enableZoom&&!1===i.enableRotate)return;n=e,i.enableZoom&&V(n),i.enableRotate&&I(n),i.update();break;default:s=r.NONE}}(e):function(e){var t,n;if(!1!==i.enabled)switch(s){case r.ROTATE:if(!1===i.enableRotate)return;!function(e){d.set(e.clientX,e.clientY),b.subVectors(d,h).multiplyScalar(i.rotateSpeed);let t=i.domElement;A(2*Math.PI*b.x/t.clientHeight),L(2*Math.PI*b.y/t.clientHeight),h.copy(d),i.update()}(e);break;case r.DOLLY:if(!1===i.enableZoom)return;t=e,R.set(t.clientX,t.clientY),H.subVectors(R,f),H.y>0?j(v()):H.y<0&&S(v()),f.copy(R),i.update();break;case r.PAN:if(!1===i.enablePan)return;n=e,g.set(n.clientX,n.clientY),O.subVectors(g,T).multiplyScalar(i.panSpeed),w(O.x,O.y),T.copy(g),i.update()}}(e))}function F(e){G(e),0===y.length&&(i.domElement.releasePointerCapture(e.pointerId),i.domElement.removeEventListener("pointermove",z),i.domElement.removeEventListener("pointerup",F)),i.dispatchEvent(n),s=r.NONE}function X(e){G(e)}function Z(e){var o;!1!==i.enabled&&!1!==i.enableZoom&&s===r.NONE&&(e.preventDefault(),i.dispatchEvent(t),(o=e).deltaY<0?S(v()):o.deltaY>0&&j(v()),i.update(),i.dispatchEvent(n))}function K(e){!1!==i.enabled&&!1!==i.enablePan&&function(e){let t=!1;switch(e.code){case i.keys.UP:w(0,i.keyPanSpeed),t=!0;break;case i.keys.BOTTOM:w(0,-i.keyPanSpeed),t=!0;break;case i.keys.LEFT:w(i.keyPanSpeed,0),t=!0;break;case i.keys.RIGHT:w(-i.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),i.update())}(e)}function B(e){!1!==i.enabled&&e.preventDefault()}function G(e){delete P[e.pointerId];for(let t=0;t