@aibee/crc-bmap 0.8.29 → 0.8.30

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.
@@ -100,7 +100,7 @@
100
100
  gl_FragColor = vec4(uColor2, uOpacity); // \u5176\u4ED6\u9762\u989C\u8272\uFF09
101
101
  }
102
102
  }
103
- `,e=-1/0,i=this.geometry.getAttribute("position");if(i)for(let o=0;o<i.count;o++){let a=i.getZ(o);a>e&&(e=a)}let r=new G.ShaderMaterial({uniforms:{maxZ:{value:e},uColor:{value:new G.Color(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new G.Color(Pt(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:n,transparent:!0});this.material=r}initLineMaterial(){let t=L.createLineMaterial({color:this.options[0].strokeColor,opacity:this.options[0].strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new G.Mesh(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],n=this.options[0].height+this.options[0].deltaHeight;return this.options.map(e=>{let{coords:i}=e.geometry;for(let r=0;r<i.length;r++){let o=i[r];for(let a=0;a<o.length;a++){let u=o[a],l=a+1===o.length?o[0]:o[a+1];t.push(new G.Vector3(u[0],u[1],n)),t.push(new G.Vector3(l[0],l[1],n))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),n=new G.BufferGeometry().setFromPoints(t);this.lineGeometry=n}createBorder(){this.line&&this.remove(this.line);let t=new G.LineSegments(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t;this.geometry.dispose(),this.material.dispose(),(t=this.line)==null||t.geometry.dispose(),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>Mi({},ln,e)),this.init()}};var Q=require("three");var Mo=require("lodash");function So(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function gn(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){So(r,e,i,o,a,"next",u)}function a(u){So(r,e,i,o,a,"throw",u)}o(void 0)})}}function bi(){return bi=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},bi.apply(this,arguments)}var xa={text:"",icon:"",icon_size:[22,22],level:1,collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},text_font_size:14,icon_rotate:0,depth_test:!1},z=class extends Q.Object3D{get durIconAndText(){return this.options.icon&&this.options.text?2:0}get offset(){return this.options.icon&&this.options.text?0:.5}get iconWidth(){return this.options.icon?this.options.icon_size[0]:0}get iconHeight(){return this.options.icon?this.options.icon_size[1]:0}get textWidth(){return this.options.text?this.options.text_font_size*this.textAspect:0}get textHeight(){return this.options.text?this.options.text_font_size:0}get deltaZ(){return!this.options.icon&&this.options.text?.1+this.offset*(this.iconHeight+this.durIconAndText+this.textHeight)/this.context.camera.zoom:.1}get canSelect(){return this.visible&&(this.spriteIcon?this.spriteIcon.visible:!0)&&(this.spriteText?this.spriteText.visible:!0)}registryEvent(){this.context.addEventListener("control-zoom-change",this._initScale);var t=this;this.addEventListener("change-icon",gn(function*({value:n}){t._initIconPromise&&(yield t._initIconPromise),t.spriteIcon&&(t.remove(t.spriteIcon),t.spriteIcon=void 0),yield t.initIcon(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})),this.addEventListener("change-text",({value:n})=>{this.spriteText&&(this.remove(this.spriteText),this.spriteText=void 0),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-icon_rotate",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.rotation=n/180*Math.PI)}),this.addEventListener("change-icon_size",({value:n})=>{this.spriteIcon&&this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-depth_test",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.depthTest=n),this.spriteText&&(this.spriteText.material.depthTest=n)})}unRegistryEvent(){this.context.removeEventListener("control-zoom-change",this._initScale)}getPosition(){return this.position}initIcon(){var t=this;return gn(function*(){if(t.options.icon)return t._initIconPromise=new Promise(gn(function*(n){let e=yield Bt.getTextureByUrl(t.options.icon),i=new Q.Sprite(new Q.SpriteMaterial({map:e,transparent:!0,alphaTest:.2,depthTest:t.options.depth_test,rotation:t.options.icon_rotate/180*Math.PI}));i.visible=!1,i.renderOrder=1e5+t.options.level,e.needsUpdate=!0,t.add(i),t.spriteIcon=i,n(i)})).then(()=>{t._initIconPromise=null})})()}initText(){if(this.options.text){let t=ft.getTextureByText(this.options.text);this.textAspect=t.image.width/t.image.height;let n=new Q.Sprite(new Q.SpriteMaterial({map:t,transparent:!0,alphaTest:.2,depthTest:this.options.depth_test}));n.visible=!1,n.renderOrder=100001+this.options.level,t.needsUpdate=!0,this.spriteText=n,this.add(n)}}initSize(){var t,n;let e=0,i=0,{icon:r,text:o}=this.options;r?o?(e=0,i=e*(this.iconHeight/this.textHeight)-this.iconHeight/this.textHeight-this.durIconAndText/this.textHeight):(e=.5,i=0):o?(i=.5,e=0):(e=0,i=0),(t=this.spriteIcon)==null||t.center.set(.5,e),(n=this.spriteText)==null||n.center.set(.5,i)}init(){var t=this;return gn(function*(){yield t.initIcon(),t.initText(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})()}resetZ(){let t=this.deltaZ;this.spriteIcon&&(this.spriteIcon.position.z=t),this.spriteText&&(this.spriteText.position.z=t)}getBox(t){let{clientSize:{width:n,height:e}}=this.context,i=n*(t.x+1)/2,r=e*(-t.y+1)/2;r+=this.offset*(this.iconHeight+this.durIconAndText+this.textHeight);let o=this.iconWidth/2,a=new Q.Box2(new Q.Vector2(i-o,r-this.iconHeight),new Q.Vector2(i+o,r)),u=this.textWidth/2,l=new Q.Box2(new Q.Vector2(i-u,r-this.textHeight-this.durIconAndText-this.iconHeight),new Q.Vector2(i+u,r-this.iconHeight-this.durIconAndText));return this.box=l.union(a),this.box}renderBoxHelper(t,n){if(!this.boxHelper){let e=document.createElement("div");e.style.position="absolute",e.style.zIndex="999",e.style.border="1px solid red",e.style.pointerEvents="none",this.boxHelper=e,this.context.container.appendChild(e)}t&&n?(this.boxHelper.style.left=t+"px",this.boxHelper.style.top=n+"px",this.boxHelper.style.width="2px",this.boxHelper.style.height="2px"):(this.boxHelper.style.left=this.box.min.x+"px",this.boxHelper.style.top=this.box.min.y+"px",this.boxHelper.style.width=this.box.max.x-this.box.min.x+"px",this.boxHelper.style.height=this.box.max.y-this.box.min.y+"px")}parentSetVisible(t){this.spriteText&&(this.spriteText.visible=t),this.spriteIcon&&(this.spriteIcon.visible=t),this.boxHelper&&(this.boxHelper.style.display=t?"block":"none")}dispose(){this.clear(),this.unRegistryEvent(),this.spriteText=void 0,this.spriteIcon=void 0}constructor(t,n){super(),this.context=t,this.textAspect=1,this.box=new Q.Box2,this._initIconPromise=null,this._initScale=({zoom:e})=>{if(this.spriteText){let r=this.textHeight/e;this.spriteText.scale.set(this.textAspect*r,r,.1)}if(this.spriteIcon){var i;(i=this.spriteIcon)==null||i.scale.set(this.options.icon_size[0]/e,this.options.icon_size[1]/e,.1)}this.resetZ()},this.options=Kt((0,Mo.cloneDeep)(bi({},xa,n)),this),this.position.set(this.options.position.x,this.options.position.y,this.options.position.z),this.registryEvent(),this.init()}};var mt=require("three"),wo=require("three/examples/jsm/utils/BufferGeometryUtils");function bo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ca(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){bo(r,e,i,o,a,"next",u)}function a(u){bo(r,e,i,o,a,"throw",u)}o(void 0)})}}function wi(){return wi=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},wi.apply(this,arguments)}var To={airHeight:0,deltaHeight:0,height:0,geometry:{cds:[],type:"polygon",coords:[],curveCpt:[],curveIndex:[]},texts:[],fillColor:"#ffffff",fillOpacity:0,strokeColor:"#ffffff",strokeOpacity:0,secondHeight:0,secondRotate:0,center_x:0,center_y:0},We=class extends mt.Object3D{init(){var t=this;return Ca(function*(){let n=t.options.map(a=>ft.getTextureByText(a.texts[0],{fillStyle:sn(a.fillColor,a.fillOpacity),strokeStyle:sn(a.strokeColor,a.strokeOpacity),lineWidth:6,font:"54px sans-serif"})),e=n.map((a,u)=>{let l=t.options[u],{width:c,height:h}=a.image,p=c/h,f=l.secondHeight*p,g=new mt.PlaneGeometry(f,l.secondHeight),_=new mt.Matrix4().makeTranslation(l.center_x,l.center_y,l.airHeight+l.deltaHeight+l.height).multiply(new mt.Matrix4().makeRotationZ(l.secondRotate));return g.applyMatrix4(_),g}),i=(0,wo.mergeGeometries)(e,!0);e.forEach(a=>a.dispose());let r=n.map(a=>{let u=new mt.MeshBasicMaterial({map:a,alphaTest:1,side:mt.DoubleSide});return a.needsUpdate=!0,u}),o=new mt.Mesh(i,r);t.mesh=o,t.position.z+=.04,t.add(o)})()}dispose(){var t,n;(t=this.mesh)==null||t.geometry.dispose(),((n=this.mesh)==null?void 0:n.material).forEach(e=>e.dispose()),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>wi({},To,e)),this.init()}};var Io=require("three");function Ti(){return Ti=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Ti.apply(this,arguments)}var mn=class extends gt{setEnable(t){super.setEnable(t),K(this.rect,0,0,0,0),t?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:n,container:{clientWidth:e,clientHeight:i}}}=this,r=x(this.startPoint,n,e,i),o=x(this.endPoint,n,e,i),a={x:Math.min(r.x,o.x),y:Math.min(r.y,o.y)},u={x:Math.max(r.x,o.x),y:Math.max(r.y,o.y)},l=this.searchMapInFrustum(a,u);this.dispatchEvent({type:"selected",list:l})}}searchMapInFrustum(t,n){var e;let{context:i}=this;return((e=i.currentFloor)==null?void 0:e.graphicLayer.children.filter(r=>r instanceof $&&this.searchChildInFrustum(r,t,n)))||[]}searchChildInFrustum(t,n,e){let{context:{camera:i,container:{clientWidth:r,clientHeight:o}}}=this;if(!t)return!1;if(!t.mesh){let p=t.getPosition();if(p){let f=x(p,i,r,o);return Ut(f,n,e)}return!1}t.mesh.geometry.boundingBox||t.mesh.geometry.computeBoundingBox();let a=t.mesh.geometry.boundingBox;if(!a)return!1;let{min:u,max:l}=a,c=x(u,i,r,o),h=x(l,i,r,o);return!(!Ut(c,n,e)||!Ut(h,n,e))}dispose(){this.unRegistryEvent()}constructor(t){super(t),this.frustum=new Io.Frustum,this.onPointerDown=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.startPoint=r),this.endPoint=void 0},this.onPointerMove=i=>{if(!this.enable||!this.startPoint)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r)},this.onPointerUp=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r),this.doSelect(),this.startPoint=void 0},this.onUpdate=()=>{if(this.startPoint){let i=this.getSvgCoordinate(this.startPoint),r=Ti({},i);this.endPoint&&(r=this.getSvgCoordinate(this.endPoint));let o={x:Math.min(i.x,r.x),y:Math.min(i.y,r.y)},a=Math.abs(r.x-i.x),u=Math.abs(r.y-i.y);K(this.rect,o.x,o.y,a,u)}else K(this.rect,0,0,0,0)};let{config:{selectBox:{fill:n,stroke:e}}}=t;this.rect=$t(e,n),this.svg.appendChild(this.rect),this.registryEvent()}};var qe=class extends Ro.EventDispatcher{get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.context.config.enableBoxSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}constructor(t){super(),this.context=t,this._list=new Set,this.downPoint=null,this.isMultipleSelect=!1,this.onPointerDown=n=>{this.downPoint={x:n.offsetX,y:n.offsetY}},this.onPointerUp=n=>{if(!this.downPoint)return;let{offsetX:e,offsetY:i}=n,{x:r,y:o}=this.downPoint;if(Math.sqrt((r-e)**2+(o-i)**2)>3)return;let{graphics:a}=this.context.getGraphicsByDeviceXy(e,i),u=new Set(a.map(c=>c.options.id));this.context.getPoisByDeviceXy(e,i).forEach(c=>{if(!u.has(c.options.id)){var h;let p=((h=this.context.currentFloor)==null?void 0:h.graphicLayer.graphicMap.get(c.options.id))||null;p&&p.options.geometry.type==="point"&&(a.push(p),u.add(c.options.id))}}),(Jt?n.metaKey:n.ctrlKey)||this._list.clear(),a.forEach(c=>this._list.add(c)),this.selectEnd(),this.downPoint=null},this.onPointerOut=n=>{this.disableBoxSelection()},this.onKeyDown=n=>{Zt(n.key)&&this.enableBoxSelection()},this.onKeyUp=n=>{Zt(n.key)&&this.disableBoxSelection()},this.onBoxSelected=({list:n})=>{this._list.clear(),n.forEach(e=>{this._list.add(e)}),this.selectEnd()},this.boxSelection=new mn(t),this.boxSelection.setEnable(!1),this.registryEvent()}};var _n=require("three");var Qe=class extends _n.EventDispatcher{handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel),document.body.addEventListener("pointermove",this.onBodyPointerMove)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel),document.body.removeEventListener("pointermove",this.onBodyPointerMove)}dispose(){this.unRegistryEvent(),this.timer.dispose()}constructor(t){super(),this.context=t,this.curGraphics=new Set,this.timer=new X,this.graphicTimerMap=new Map,this.onPointerMove=({graphics:n,pois:e,e:i})=>{let r=e.map(l=>{var c;return(c=this.context.currentFloor)==null?void 0:c.graphicLayer.graphicMap.get(l.options.id)}).filter(l=>l&&l.options.geometry.type==="point");if(!n.length&&!r.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:o}=this.context.config.hover,a=new Set;if(r.length){let l,c=1e4;r.forEach(h=>{let p=e.find(f=>f.options.id===h.options.id);if(p instanceof jt){let{x:f,y:g}=p.clientPos,_=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);_<c&&(c=_,l=h)}else if(p instanceof z){let{x:f,y:g}=p.box.getCenter(new _n.Vector2),_=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);_<c&&(c=_,l=h)}}),a.add(l)}a.size||n.forEach(l=>a.add(l)),a.forEach(l=>{if(this.graphicTimerMap.get(l)||this.curGraphics.has(l))return;let c=this.timer.setTimeout(()=>{this.curGraphics.add(l),this.graphicTimerMap.delete(l),this.timer.clearTimeout(c),this.handleHoverGraphicsChange()},o);this.graphicTimerMap.set(l,c)}),this.graphicTimerMap.forEach((l,c)=>{a.has(c)||(this.timer.clearTimeout(l),this.graphicTimerMap.delete(c))});let u=this.curGraphics.size;this.curGraphics.forEach(l=>{a.has(l)||this.curGraphics.delete(l)}),u!==this.curGraphics.size&&this.handleHoverGraphicsChange()},this.onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()},this.onBodyPointerMove=n=>{if(this.curGraphics.size){let e=this.context.container.getBoundingClientRect();(n.clientX<e.left||n.clientX>e.right||n.clientY<e.top||n.clientY>e.bottom)&&this.onPointerLevel()}},this.registryEvent()}};var ae=require("three");var yn=class{updateBox(){this.box.setFromObject(this.context.scene)}setEnable(t){this.enable=t,t?this.registryEvent():this.unRegistryEvent()}changePrevCamera(){this.prevCamera={position:this.context.camera.position.clone(),zoom:this.context.camera.zoom,target:this.context.control.target.clone()}}backToPrevCamera(){this.setEnable(!1),this.context.camera.position.copy(this.prevCamera.position),this.context.camera.zoom=this.prevCamera.zoom,this.context.control.target.copy(this.prevCamera.target),this.context.control.update(),this.setEnable(!0)}registryEvent(){this.context.addEventListener("control-change",this.onCameraChange)}unRegistryEvent(){this.context.removeEventListener("control-change",this.onCameraChange)}getCurFloorScreenPosition(){if(!this.context.scene.children.filter(E=>E instanceof dt).length)return null;let n=this.box,{camera:e,clientSize:{width:i,height:r}}=this.context,{min:o,max:a}=n,u=x(o,e,i,r),l=x(a,e,i,r),c=x(new ae.Vector3(o.x,a.y,a.z),e,i,r),h=x(new ae.Vector3(a.x,o.y,o.z),e,i,r),p=Math.min(u.x,l.x,c.x,h.x),f=Math.max(u.x,l.x,c.x,h.x),g=Math.min(u.y,l.y,c.y,h.y),_=Math.max(u.y,l.y,c.y,h.y);return{left:p,right:f,top:g,bottom:_}}checkDistanceToScreenEdge({left:t,right:n,top:e,bottom:i}){let{width:r,height:o}=this.context.clientSize,[a,u,l,c]=this.context.config.cameraBound.padding,h=n>=c,p=r-t>=u,f=o-e>=l,g=i>=a;return h&&p&&f&&g}dispose(){this.unRegistryEvent()}constructor(t){this.context=t,this.prevCamera={position:new ae.Vector3,zoom:1,target:new ae.Vector3},this.enable=!0,this.box=new ae.Box3,this.onCameraChange=()=>{let n=this.getCurFloorScreenPosition();if(n){let{left:e,right:i,top:r,bottom:o}=n;this.checkDistanceToScreenEdge({left:e,right:i,top:r,bottom:o})?this.changePrevCamera():this.backToPrevCamera()}},this.registryEvent(),this.changePrevCamera()}};var Ri=require("three"),ue=require("@tweenjs/tween.js");var y=require("three"),vn=new y.Ray,Po=new y.Plane,Aa=Math.cos(70*y.MathUtils.DEG2RAD),xn=class extends y.EventDispatcher{dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerUp),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null)}constructor(t,n){super(),this.rotateLineStart=new y.Vector2,this.rotateLineEnd=new y.Vector2,this.spherical=new y.Spherical,this.sphericalDelta=new y.Spherical,this.object=t,this.domElement=n,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new y.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.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.screenSpacePanning=!1,this.mouseButtons={LEFT:y.MOUSE.PAN,MIDDLE:y.MOUSE.DOLLY,RIGHT:y.MOUSE.ROTATE},this.touches={ONE:y.TOUCH.PAN,TWO:y.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 a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(d){d.addEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=d},this.stopListenToKeyEvents=function(){var d;(d=this._domElementKeyEvents)==null||d.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null},this.saveState=function(){e.target0.copy(e.target),e.position0.copy(e.object.position),e.zoom0=e.object.zoom},this.reset=function(){e.target.copy(e.target0),e.object.position.copy(e.position0),e.object.zoom=e.zoom0,e.object.updateProjectionMatrix(),e.dispatchEvent({type:"change"}),e.update(),r=i.NONE},this.update=function(){let d=new y.Vector3,m=new y.Quaternion().setFromUnitVectors(t.up,new y.Vector3(0,1,0)),T=m.clone().invert(),B=new y.Vector3,ut=new y.Quaternion,Rt=new y.Vector3,Mt=2*Math.PI;return function(Wn=null){let Nt=e.object.position;d.copy(Nt).sub(e.target),d.applyQuaternion(m),a.setFromVector3(d),e.autoRotate&&r===i.NONE&&fe(Me(Wn)),e.enableDamping?(a.theta+=u.theta*e.dampingFactor,a.phi+=u.phi*e.dampingFactor):(a.theta+=u.theta,a.phi+=u.phi);let Ot=e.minAzimuthAngle,Dt=e.maxAzimuthAngle;isFinite(Ot)&&isFinite(Dt)&&(Ot<-Math.PI?Ot+=Mt:Ot>Math.PI&&(Ot-=Mt),Dt<-Math.PI?Dt+=Mt:Dt>Math.PI&&(Dt-=Mt),Ot<=Dt?a.theta=Math.max(Ot,Math.min(Dt,a.theta)):a.theta=a.theta>(Ot+Dt)/2?Math.max(Ot,a.theta):Math.min(Dt,a.theta)),a.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,a.phi)),a.makeSafe(),e.enableDamping===!0?e.target.addScaledVector(c,e.dampingFactor):e.target.add(c),e.zoomToCursor&&at||e.object.isOrthographicCamera?a.radius=Vn(a.radius):a.radius=Vn(a.radius*l),d.setFromSpherical(a),d.applyQuaternion(T),Nt.copy(e.target).add(d),e.object.lookAt(e.target),e.enableDamping===!0?(u.theta*=1-e.dampingFactor,u.phi*=1-e.dampingFactor,c.multiplyScalar(1-e.dampingFactor)):(u.set(0,0,0),c.set(0,0,0));let en=!1;if(e.zoomToCursor&&at){let be=null;if(e.object.isPerspectiveCamera){let we=d.length();be=Vn(we*l);let nn=we-be;e.object.position.addScaledVector(D,nn),e.object.updateMatrixWorld()}else if(e.object.isOrthographicCamera){let we=new y.Vector3(M.x,M.y,0);we.unproject(e.object),e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),en=!0;let nn=new y.Vector3(M.x,M.y,0);nn.unproject(e.object),e.object.position.sub(nn).add(we),e.object.updateMatrixWorld(),be=d.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),e.zoomToCursor=!1;be!==null&&(e.screenSpacePanning?e.target.set(0,0,-1).transformDirection(e.object.matrix).multiplyScalar(be).add(e.object.position):(vn.origin.copy(e.object.position),vn.direction.set(0,0,-1).transformDirection(e.object.matrix),Math.abs(e.object.up.dot(vn.direction))<Aa?t.lookAt(e.target):(Po.setFromNormalAndCoplanarPoint(e.object.up,e.target),vn.intersectPlane(Po,e.target))))}else e.object.isOrthographicCamera&&(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),en=!0);return l=1,at=!1,en||B.distanceToSquared(e.object.position)>o||8*(1-ut.dot(e.object.quaternion))>o||Rt.distanceToSquared(e.target)>0?(e.dispatchEvent({type:"change"}),B.copy(e.object.position),ut.copy(e.object.quaternion),Rt.copy(e.target),en=!1,!0):!1}}();let e=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},r=i.NONE,o=1e-6,a=new y.Spherical,u=new y.Spherical,l=1,c=new y.Vector3,h=new y.Vector2,p=new y.Vector2,f=new y.Vector2,g=new y.Vector2,_=new y.Vector2,E=new y.Vector2,S=new y.Vector2,R=new y.Vector2,V=new y.Vector2,D=new y.Vector3,M=new y.Vector2,at=!1,C=[],rt={};function Me(d){return d!==null?2*Math.PI/60*e.autoRotateSpeed*d:2*Math.PI/60/60*e.autoRotateSpeed}function pe(){return Math.pow(.95,e.zoomSpeed)}function fe(d){u.theta-=d}function de(d){u.phi-=d}let gr=function(){let d=new y.Vector3;return function(T,B){d.setFromMatrixColumn(B,0),d.multiplyScalar(-T),c.add(d)}}(),mr=function(){let d=new y.Vector3;return function(T,B){e.screenSpacePanning===!0?d.setFromMatrixColumn(B,1):(d.setFromMatrixColumn(B,0),d.crossVectors(e.object.up,d)),d.multiplyScalar(T),c.add(d)}}(),ge=function(){let d=new y.Vector3;return function(T,B){let ut=e.domElement;if(e.object.isPerspectiveCamera){let Rt=e.object.position;d.copy(Rt).sub(e.target);let Mt=d.length();Mt*=Math.tan(e.object.fov/2*Math.PI/180),gr(2*T*Mt/ut.clientHeight,e.object.matrix),mr(2*B*Mt/ut.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(gr(T*(e.object.right-e.object.left)/e.object.zoom/ut.clientWidth,e.object.matrix),mr(B*(e.object.top-e.object.bottom)/e.object.zoom/ut.clientHeight,e.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1)}}();function Hn(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l/=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function _r(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l*=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function yr(d){if(!e.zoomToCursor)return;at=!0;let m=e.domElement.getBoundingClientRect(),T=d.clientX-m.left,B=d.clientY-m.top,ut=m.width,Rt=m.height;M.x=T/ut*2-1,M.y=-(B/Rt)*2+1,D.set(M.x,M.y,1).unproject(e.object).sub(e.object.position).normalize()}function Vn(d){return Math.max(e.minDistance,Math.min(e.maxDistance,d))}function vr(d){h.set(d.clientX,d.clientY)}function bs(d){yr(d),S.set(d.clientX,d.clientY)}function xr(d){g.set(d.clientX,d.clientY)}function ws(d){p.set(d.clientX,d.clientY),f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let m=e.domElement;fe(2*Math.PI*f.x/m.clientHeight),de(2*Math.PI*f.y/m.clientHeight),h.copy(p),e.update()}function Ts(d){R.set(d.clientX,d.clientY),V.subVectors(R,S),V.y>0?Hn(pe()):V.y<0&&_r(pe()),S.copy(R),e.update()}function Is(d){_.set(d.clientX,d.clientY),E.subVectors(_,g).multiplyScalar(e.panSpeed),ge(E.x,E.y),g.copy(_),e.update()}function Rs(d){yr(d),d.deltaY<0?_r(pe()):d.deltaY>0&&Hn(pe()),e.update()}function Ps(d){let m=!1;switch(d.code){case e.keys.UP:d.ctrlKey||d.metaKey||d.shiftKey?de(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):ge(0,e.keyPanSpeed),m=!0;break;case e.keys.BOTTOM:d.ctrlKey||d.metaKey||d.shiftKey?de(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):ge(0,-e.keyPanSpeed),m=!0;break;case e.keys.LEFT:d.ctrlKey||d.metaKey||d.shiftKey?fe(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):ge(e.keyPanSpeed,0),m=!0;break;case e.keys.RIGHT:d.ctrlKey||d.metaKey||d.shiftKey?fe(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):ge(-e.keyPanSpeed,0),m=!0;break}m&&(d.preventDefault(),e.update())}function Cr(){if(C.length===1)h.set(C[0].pageX,C[0].pageY);else{let d=(C[0].pageX-C[0].pageY)/(C[1].pageX-C[1].pageY),m=C[0].pageY-d*C[0].pageX;e.rotateLineStart.set(d,m);let T=.5*(C[0].pageX+C[1].pageX),B=.5*(C[0].pageY+C[1].pageY);h.set(T,B)}}function Ar(){if(C.length===1)g.set(C[0].pageX,C[0].pageY);else{let d=.5*(C[0].pageX+C[1].pageX),m=.5*(C[0].pageY+C[1].pageY);g.set(d,m)}}function Er(){let d=C[0].pageX-C[1].pageX,m=C[0].pageY-C[1].pageY,T=Math.sqrt(d*d+m*m);S.set(0,T)}function Ls(){e.enableZoom&&Er(),e.enablePan&&Ar()}function Bs(){e.enableZoom&&Er(),e.enableRotate&&Cr()}function Sr(d){if(C.length==1)p.set(d.pageX,d.pageY);else{let T=Xn(d),B=.5*(d.pageX+T.x),ut=.5*(d.pageY+T.y);p.set(B,ut);let Rt=(d.pageY-T.y)/(d.pageX-T.x),Mt=T.y-Rt*T.x;if(e.rotateLineEnd.set(Rt,Mt),Number.isFinite(e.rotateLineEnd.x)&&Number.isFinite(e.rotateLineStart.x)){let jn=(e.rotateLineStart.y-e.rotateLineEnd.y)/(e.rotateLineEnd.x-e.rotateLineStart.x),Wn=Rt*jn+Mt;if(Number.isFinite(jn)&&Number.isFinite(Wn)){let Nt=Math.atan(e.rotateLineEnd.x)-Math.atan(e.rotateLineStart.x);Math.PI-Math.abs(Nt)<.5&&(Nt=-Math.sign(Nt)*(Math.PI-Math.abs(Nt))),Math.abs(Nt)<.1&&(u.theta+=Nt)}}e.rotateLineStart.copy(e.rotateLineEnd)}f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let m=e.domElement;de(2*Math.PI*f.y/m.clientHeight),h.copy(p)}function Mr(d){if(C.length===1)_.set(d.pageX,d.pageY);else{let m=Xn(d),T=.5*(d.pageX+m.x),B=.5*(d.pageY+m.y);_.set(T,B)}E.subVectors(_,g).multiplyScalar(e.panSpeed),ge(E.x,E.y),g.copy(_)}function br(d){let m=Xn(d),T=d.pageX-m.x,B=d.pageY-m.y,ut=Math.sqrt(T*T+B*B);R.set(0,ut),V.set(0,Math.pow(R.y/S.y,e.zoomSpeed)),Hn(V.y),S.copy(R)}function Ns(d){e.enableZoom&&br(d),e.enablePan&&Mr(d)}function Os(d){e.enableZoom&&br(d),e.enableRotate&&Sr(d)}this.onPointerDown=function(m){e.enabled!==!1&&(C.length===0&&(e.domElement.setPointerCapture(m.pointerId),e.domElement.addEventListener("pointermove",e.onPointerMove),e.domElement.addEventListener("pointerup",e.onPointerUp)),zs(m),m.pointerType==="touch"?Fs(m):Ds(m))},this.onPointerMove=function(m){e.enabled!==!1&&(m.pointerType==="touch"?$s(m):Us(m))},this.onPointerUp=function(m){Gs(m),C.length===0&&(e.domElement.releasePointerCapture(m.pointerId),e.domElement.removeEventListener("pointermove",e.onPointerMove),e.domElement.removeEventListener("pointerup",e.onPointerUp)),e.dispatchEvent({type:"end"}),r=i.NONE};function Ds(d){let m;switch(d.button){case 0:m=e.mouseButtons.LEFT;break;case 1:m=e.mouseButtons.MIDDLE;break;case 2:m=e.mouseButtons.RIGHT;break;default:m=-1}switch(m){case y.MOUSE.DOLLY:if(e.enableZoom===!1)return;bs(d),r=i.DOLLY;break;case y.MOUSE.ROTATE:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enablePan===!1)return;xr(d),r=i.PAN}else{if(e.enableRotate===!1)return;vr(d),r=i.ROTATE}break;case y.MOUSE.PAN:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enableRotate===!1)return;vr(d),r=i.ROTATE}else{if(e.enablePan===!1)return;xr(d),r=i.PAN}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function Us(d){switch(r){case i.ROTATE:if(e.enableRotate===!1)return;ws(d);break;case i.DOLLY:if(e.enableZoom===!1)return;Ts(d);break;case i.PAN:if(e.enablePan===!1)return;Is(d);break}}this.onMouseWheel=function(m){e.enabled===!1||e.enableZoom===!1||r!==i.NONE||(m.preventDefault(),e.dispatchEvent({type:"start"}),Rs(m),e.dispatchEvent({type:"end"}))},this.onKeyDown=function(m){e.enabled===!1||e.enablePan===!1||Ps(m)};function Fs(d){switch(wr(d),C.length){case 1:switch(e.touches.ONE){case y.TOUCH.ROTATE:if(e.enableRotate===!1)return;Cr(),r=i.TOUCH_ROTATE;break;case y.TOUCH.PAN:if(e.enablePan===!1)return;Ar(),r=i.TOUCH_PAN;break;default:r=i.NONE}break;case 2:switch(e.touches.TWO){case y.TOUCH.DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Ls(),r=i.TOUCH_DOLLY_PAN;break;case y.TOUCH.DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Bs(),r=i.TOUCH_DOLLY_ROTATE;break;default:r=i.NONE}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function $s(d){switch(wr(d),r){case i.TOUCH_ROTATE:if(e.enableRotate===!1)return;Sr(d),e.update();break;case i.TOUCH_PAN:if(e.enablePan===!1)return;Mr(d),e.update();break;case i.TOUCH_DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Ns(d),e.update();break;case i.TOUCH_DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Os(d),e.update();break;default:r=i.NONE}}this.onContextMenu=function(m){e.enabled!==!1&&m.preventDefault()};function zs(d){C.push(d)}function Gs(d){delete rt[d.pointerId];for(let m=0;m<C.length;m++)if(C[m].pointerId==d.pointerId){C.splice(m,1);return}}function wr(d){let m=rt[d.pointerId];m===void 0&&(m=new y.Vector2,rt[d.pointerId]=m),m.set(d.pageX,d.pageY)}function Xn(d){let m=d.pointerId===C[0].pointerId?C[1]:C[0];return rt[m.pointerId]}e.domElement.addEventListener("contextmenu",this.onContextMenu),e.domElement.addEventListener("pointerdown",this.onPointerDown),e.domElement.addEventListener("pointercancel",this.onPointerUp),e.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}};function Lo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ii(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Lo(r,e,i,o,a,"next",u)}function a(u){Lo(r,e,i,o,a,"throw",u)}o(void 0)})}}var Cn=class extends xn{registryEvent(){this.addEventListener("change",()=>{let t=this.camera.zoom;t!==this.prevCameraZoom&&(this.prevCameraZoom=t,this.dispatchEvent({type:"change-zoom",zoom:t}))}),this.context.addEventListener("update",this.tweenUpdate)}setPolarAngle(t,n=!1){let{maxPolarAngle:e,minPolarAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),r||(this.maxPolarAngle=e,this.minPolarAngle=i)}setPolarAngleByDuration(t,n=!1,e=500){var i=this;return Ii(function*(){return e<=0?i.setPolarAngle(t,n):ht(new Promise(r=>{let o={polar:i.getPolarAngle()},a={polar:t},u=new ue.Tween(o,i.tweenGroup).to(a,e).onUpdate(()=>{i.setPolarAngle(o.polar,n)}).onComplete(()=>{i.enabled=!0,i.tweenGroup.remove(u),r(!0)}).onStart(()=>{i.enabled=!1}).start()}),e+500)})()}setAzimuthalAngle(t,n){let{maxAzimuthAngle:e,minAzimuthAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxAzimuthAngle=t,this.minAzimuthAngle=t,this.update()),r||(this.maxAzimuthAngle=e,this.minAzimuthAngle=i)}setAzimuthalAngleDuration(t,n=!1,e=500){return e<=0?this.setAzimuthalAngle(t,n):ht(new Promise(i=>{let r={azimuthal:this.getAzimuthalAngle()},o={azimuthal:t},a=new ue.Tween(r,this.tweenGroup).to(o,e).onUpdate(()=>{this.setAzimuthalAngle(r.azimuthal,n)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(a),i(!0)}).onStart(()=>{this.enabled=!1}).start()}),e+500)}getCameraLookAt(){return new Ri.Vector3().subVectors(this.target,this.camera.position)}setCameraPositionByTarget(t,n){var e=this;return Ii(function*(){let i=e.target.clone(),r=e.getCameraLookAt();if(!n){e.camera.position.copy(t.clone().sub(r)),e.target.copy(t.clone()),e.update();return}return ht(new Promise(o=>{let a=new ue.Tween(i,e.tweenGroup).to(t,n).onUpdate(()=>{e.camera.position.copy(i.clone().sub(r)),e.target.copy(i.clone()),e.update()}).onComplete(()=>{e.tweenGroup.remove(a),e.enabled=!0,o(!0)}).onStart(()=>{e.enabled=!1}).start()}),n+500)})()}setZoom(t,n,e=!1){let{minZoom:i,maxZoom:r}=this;(e||t>=i&&t<=r)&&(this.camera.position.copy(n.clone().sub(this.getCameraLookAt())),this.target.copy(n),this.camera.zoom=t,this.update())}setZoomByDuration(t,n,e=!1,i=500){var r=this;return Ii(function*(){let o={zoom:r.camera.zoom,target:r.target.clone()};if(t!==r.camera.zoom)return i?ht(new Promise(a=>{let u=new ue.Tween(o,r.tweenGroup).to({zoom:t,target:n},i).onUpdate(()=>{r.setZoom(o.zoom,o.target,e)}).onComplete(()=>{r.tweenGroup.remove(u),r.enabled=!0,a(!0)}).onStart(()=>{r.enabled=!1}).start()}),i+500):r.setZoom(t,n,e)})()}setTargetByOffset(t,n=this.target.clone()){if(!t)return;this.camera.updateMatrix();let e=new Ri.Vector3;e.setFromMatrixColumn(this.camera.matrix,1),e.normalize(),e.multiplyScalar(t/this.camera.zoom),n.add(e),this.setCameraPositionByTarget(n,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){super.dispose(),this.clearTween()}constructor(t,n,e){super(n,e),this.context=t,this.camera=n,this.domElement=e,this.prevCameraZoom=1,this.tweenGroup=new ue.Group,this.offsetY=0,this.tweenUpdate=()=>{this.tweenGroup.update()},this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=n.zoom,this.registryEvent()}};var Ce=require("three");function Pi(){return Pi=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Pi.apply(this,arguments)}var An=class extends Ce.WebGLRenderer{setCameraAndScene(t,n){this.scene=t,this.camera=n}autoRender(){this.scene&&this.camera&&this.enable&&(this.event.dispatchEvent({type:"update"}),this.render(this.scene,this.camera)),this.timer.requestAnimationFrame(()=>{this.autoRender()})}pauseRender(){this.enable=!1}continueRender(){this.enable=!0}addEventListener(t,n){this.event.addEventListener(t,n)}removeEventListener(t,n){this.event.removeEventListener(t,n)}dispose(){this.timer.dispose(),this.enable=!1,super.dispose()}constructor(t){super(Pi({antialias:!0,alpha:!0},t)),this.event=new Ce.EventDispatcher,this.enable=!0,this.timer=new X,this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.shadowMap.enabled=!0,this.shadowMap.autoUpdate=!0,this.shadowMap.type=Ce.PCFSoftShadowMap}};var Bo=require("three"),En=class extends Bo.Scene{constructor(){super()}};var No=require("three"),Sn=class extends No.OrthographicCamera{constructor(t,n){super(-t/2,t/2,n/2,-n/2,-1e4,5e4),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};function Oo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ea(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Oo(r,e,i,o,a,"next",u)}function a(u){Oo(r,e,i,o,a,"throw",u)}o(void 0)})}}var Ye=class extends w.EventDispatcher{resizeClientSize(){let{x:t,y:n,width:e,height:i}=this.container.getBoundingClientRect();this.clientSize={width:e||this.container.clientWidth,height:i||this.container.clientHeight,x:t,y:n}}init(){let{clientWidth:t,clientHeight:n}=this.container;this.camera=new Sn(t,n),this.renderer.setSize(t,n),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new Cn(this,this.camera,this.renderer.domElement),this.control.maxPolarAngle=this.config.control.maxPolar,this.container.appendChild(this.renderer.domElement),this.scene.add(this.lights),this.basicRatio=this.getRatio(),this.control.addEventListener("change",()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})}),this.control.addEventListener("change-zoom",({zoom:e})=>{this.dispatchEvent({type:"control-zoom-change",zoom:e})}),this.renderer.addEventListener("update",()=>{this.dispatchEvent({type:"update"})}),this.cameraBound=new yn(this)}getRatio(t=new w.Vector3(0,0,0),n=new w.Vector3(100,0,0)){let{clientWidth:e,clientHeight:i}=this.container,r=x(t,this.camera,e,i),o=x(n,this.camera,e,i);return Math.ceil(Math.sqrt((o.x-r.x)**2+(o.y-r.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(n=>{n instanceof w.AmbientLight&&(n.color=new w.Color(t))})}switchFloor(t){this.currentFloor&&(this.scene.remove(this.currentFloor),this.currentFloor.dispose()),this.currentFloor=t,this.scene.add(t);let n=t.getCenter();n&&(this.lights.position.x=n.x,this.lights.position.y=n.y),this.cameraBound.updateBox()}getGraphicsByDeviceXy(t,n){var e;let i=new w.Vector2;i.x=t/this.clientSize.width*2-1,i.y=n/this.clientSize.height*-2+1;let r=new w.Raycaster;return r.setFromCamera(i,this.camera),r.ray.origin.sub(r.ray.direction.clone().multiplyScalar(100)),((e=this.currentFloor)==null?void 0:e.graphicLayer.getGraphicByRaycaster(r))||{graphics:[],position:null}}getPoisByDeviceXy(t,n){var e,i;let r=(e=this.currentFloor)==null?void 0:e.poiLayer.getPoiByDeviceXy(t,n),o=(i=this.currentFloor)==null?void 0:i.poiLayer2.getPoiByDeviceXy(t,n);return(r||[]).concat(o||[])}registryEvent(){window.addEventListener("resize",this.onWindowResize),this.container.addEventListener("click",this.onClick),this.container.addEventListener("pointerover",this.onPointerover),this.container.addEventListener("pointermove",this.onPointermove),this.container.addEventListener("pointerleave",this.onPointerleave),this.container.addEventListener("pointercancel",this.onPointerleave),this.container.addEventListener("pointerout",this.onPointerleave),this.selection.addEventListener("select",this.onSelectionSelect),this.hoverHelper.addEventListener("hover-change",this.onHoverChange)}unRegistryEvent(){window.removeEventListener("resize",this.onWindowResize),this.container.removeEventListener("click",this.onClick),this.container.removeEventListener("pointerover",this.onPointerover),this.container.removeEventListener("pointermove",this.onPointermove),this.container.removeEventListener("pointerleave",this.onPointerleave),this.container.removeEventListener("pointercancel",this.onPointerleave),this.container.removeEventListener("pointerout",this.onPointerleave),this.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange)}setPolarAngle(t,n=500){return this.control.setPolarAngleByDuration(t,!0,n)}setAzimuthalAngle(t,n=500){return this.control.setAzimuthalAngleDuration(t,!0,n)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,n,e=500){return this.control.setZoomByDuration(t,n,!0,e)}getFitCameraToObjectZoom(t,n=[20,20,20,20],e=500,i=!0){let[r,o,a,u]=n,{clientSize:{width:l,height:c}}=this,h=this.control.getPolarAngle();i&&this.setPolarAngle(0,0);let p=new w.Box3().setFromObject(t);this.setPolarAngle(h,0);let{max:f,min:g}=p,_=new w.Vector3(g.x,f.y,f.z),E=new w.Vector3(f.x,f.y,f.z),S=new w.Vector3(f.x,g.y,g.z),R=new w.Vector3(g.x,g.y,g.z),V=x(_,this.camera,l,c),D=x(E,this.camera,l,c),M=x(R,this.camera,l,c),at=x(S,this.camera,l,c),rt=new w.Box2().setFromPoints([new w.Vector2(V.x,V.y),new w.Vector2(D.x,D.y),new w.Vector2(M.x,M.y),new w.Vector2(at.x,at.y)]).getSize(new w.Vector2),Me=(l-o-u)/rt.x,pe=(c-r-a)/rt.y,fe=Math.min(Me,pe),de=new w.Vector3((f.x+g.x)/2,(f.y+g.y)/2,(f.z+g.z)/2);return{zoom:fe*this.camera.zoom,center:de}}fitCameraToObject(t,n=[20,20,20,20],e=500,i=!0){let{zoom:r,center:o}=this.getFitCameraToObjectZoom(t,n,e,i);return this.setZoom(r,o,e)}getFitCameraToGroundZoom(t=[20,20,20,20],n=500,e=!0){if(this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,n,e).zoom}fitCameraToGround(t=[20,20,20,20],n=500,e=!0){return this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundLayer,t,n,e):Promise.resolve(!1)}setCameraPosition(t,n){var e=this;return Ea(function*(){return e.control.setCameraPositionByTarget(t,n)})()}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}dispose(){this.control.dispose(),this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.unRegistryEvent(),this.renderer.domElement.remove(),this.renderer.dispose(),this.lights.children.forEach(t=>t.dispose()),j(this.scene)}constructor(t,n){super(),this.container=t,this.config=n,this.scene=new En,this.renderer=new An,this.lights=Qn(),this.clientSize={width:0,height:0,x:0,y:0},this.renderRf=0,this.onWindowResize=()=>{let{container:e,camera:i,renderer:r}=this,{clientWidth:o,clientHeight:a}=e;o=Math.max(1,o),a=Math.max(1,a),i.left=-o/2,i.right=o/2,i.top=a/2,i.bottom=-a/2,i.updateProjectionMatrix(),r.setSize(o,a),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:o,height:a})},this.onClick=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY);i.length&&this.dispatchEvent({type:"graphic-click",graphics:i,position:r});let o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);o.length&&this.dispatchEvent({type:"poi-click",pois:o})},this.onPointerover=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-over",e,graphics:i,pois:o,position:r})},this.onPointermove=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-move",e,graphics:i,pois:o,position:r})},this.onPointerleave=e=>{this.dispatchEvent({type:"pointer-level"})},this.onSelectionSelect=({graphics:e,isMultipleSelect:i})=>{this.dispatchEvent({type:"select-graphic",graphics:e,isMultipleSelect:i})},this.onHoverChange=({graphics:e})=>{this.dispatchEvent({type:"hover",graphics:e})},this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new qe(this),this.hoverHelper=new Qe(this),this.resizeClientSize(),this.registryEvent()}};var Do=require("lodash"),Uo={apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get",equipmentList:"/api/inception-map/equipment/get",roadNetwork:"/api/inception-map/road_network/get"},enableBoxSelect:!0,resizeObserver:!1,initTransToMark:!1,heatMap:{radius:50,gradient:{0:"#8F9FCD",.5:"#6284FF",1:"#F95D5D"}},useFloorCache:!0,control:{maxPolar:1.2,defaultPolar:1.1,defaultAzimuthal:0},defaultPadding:[20,20,20,20],svg:{circle:{radius:"2",fill:"#1CADFF"},line:{stroke:"#1CADFF"}},selectBox:{stroke:"#1CADFF",fill:"rgba(28, 173, 255, 0.3)"},hover:{time:100},ground:{color:"#F6F6F6",opacity:1,height:.001,stroke:!1,strokeColor:"#E6E6E6",strokeOpacity:1},markGraphic:{color:"#EEF0F3",opacity:1,height:.001,stroke:!1,strokeColor:"#000",strokeOpacity:1},graphic:{fillOpacity:1},cameraBound:{padding:[150,150,150,150]},poi:{boxScale:1}};function Li(s){return(0,Do.merge)({},Uo,s)}var $o=require("lodash");function Fo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Bi(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Fo(r,e,i,o,a,"next",u)}function a(u){Fo(r,e,i,o,a,"throw",u)}o(void 0)})}}function Mn(){return Mn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Mn.apply(this,arguments)}var Sa=function(s){return s[s.D2=0]="D2",s[s.D3=1.1]="D3",s}({}),Ni=class extends bn.EventDispatcher{changeBuildingCenter(t,{brand:n,project:e}){let i=t?Te(t.info.geometry.cds[0]):[0,0];this.buildingCenter=i,this.dispatchEvent({type:"center-change",center:i,project:e,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(n=>n!==t)}triggerHooks(t,n){this.dispatchEvent({type:t,data:n})}switchFloorByFloor(t,n=t.graphicLayer.children){this.triggerHooks(J.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:n}),this.context.switchFloor(t),this.initialFloorCamera(),this.triggerHooks(J.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:n})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(void 0,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*30,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}addModel(t,n){if(t.options.geometry.type==="polygon"){var e;let i=(e=this.context.currentFloor)==null?void 0:e.addModel(Mn({},n,{position:t.getPosition().setZ(.1),id:t.options.id}));if(i){let{facilityAngle:r=0,facilityXScale:o=1,facilityYScale:a=1}=t.options.userData;i.rotateZ((180-r)/180*Math.PI),i.scale.set(o,a,1)}}}addHeatmap(t){var n;return(n=this.context.currentFloor)==null?void 0:n.addHeatmap(t)}getLegacyToGraphicMap(){var t;return((t=this.context.currentFloor)==null?void 0:t.userData.legacyToGraphicMap)||new Map}getFloorAllGraphics(){var t;return((t=this.context.currentFloor)==null?void 0:t.graphicLayer.children.filter(n=>n instanceof $))||[]}createGraphicPoi(t,n){if(this.context.currentFloor){n.id===void 0&&(n.id=t.options.id);let e=t.options.center,i=t.getCenter(),r=(e==null?void 0:e[0])||i.x,o=(e==null?void 0:e[1])||i.y;return console.log(r,o,e,i),this.context.currentFloor.addPoi(Mn({},n,{position:{x:r,y:o,z:i.z+t.options.height/2}}))}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,n=500){let e=t.getPosition();return this.context.setCameraPosition(e,n)}translateElementToCenterX(t,n=500){var e=this;return Bi(function*(){return ht(new Promise(i=>{let r=e.context.control.target.clone(),o=t.getPosition();e.timer.requestAnimationFrame(()=>{let{clientSize:{width:a,height:u},camera:l}=e.context,h=x(o,l,a,u).x-a/2,p=new bn.Vector3;p.setFromMatrixColumn(e.context.camera.matrix,0),p.normalize(),p.multiplyScalar(h/e.context.camera.zoom),r.add(p),e.context.setCameraPosition(r,n).then(i)})}),n+500)})()}getElementDeviceCoordinate(t){let n=t.position.clone(),{clientWidth:e,clientHeight:i}=this.container;return x(n,this.context.camera,e,i)}changeMapType(t,n=500){return this.type=t,t==="2d"?this.context.setPolarAngle(0,n):this.context.setPolarAngle(1.1,n)}resetView(t=300){var n=this;return Bi(function*(){let e=t/3;yield n.context.setAzimuthalAngle(n.config.control.defaultAzimuthal,e),yield n.context.setPolarAngle(n.config.control.defaultPolar,e),yield n.context.fitCameraToGround(n.config.defaultPadding,e,!1)})()}reduceMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e-t,this.context.control.target,n)}enlargeMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e+t,this.context.control.target,n)}registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver((0,$o.debounce)(this.resize,5));t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t=.1){let n=this.context.control.getAzimuthalAngle();this.context.setAzimuthalAngle(n+t,500)}measureDistance(){var t=this;return Bi(function*(){return t.cancelDistance(),new Promise((n,e)=>{t.changeMapType("2d",0),t.context.control.enableRotate=!1,t.svgLine=new Ge(t.context);let i=t.svgLine.dispose.bind(t.svgLine);t.svgLine.dispose=function(){i(),e("cancel")},t.svgLine.addEventListener("distance",({distance:r})=>{n(r)})})})()}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,n)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new ke(this.context);let e=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){e(),n("cancel")},this.svgPolygon.addEventListener("area",({area:i})=>{t(i)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){var n;return((n=this.context.currentFloor)==null?void 0:n.graphicLayer.getGraphicByNodeId(t))||null}deleteGraphic(t){var n;(n=this.context.currentFloor)==null||n.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var n;if(!t.transformToBuildingGround&&this.currentBuildGround){let e=Te(this.currentBuildGround.info.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(r=>{r[0]-=e[0],r[1]-=e[1]})});else{let[i,r]=t.geometry.cds;t.geometry.coords=[i-e[0],r-e[1]]}}return(n=this.context.currentFloor)==null?void 0:n.graphicLayer.createGraphic(t)}removePoiById(t){var n,e;(n=this.context.currentFloor)==null||n.poiLayer.removePoiById(t),(e=this.context.currentFloor)==null||e.poiLayer2.removePoiById(t)}getPoiById(t){var n,e;return((n=this.context.currentFloor)==null?void 0:n.poiLayer.getPoiById(t))||((e=this.context.currentFloor)==null?void 0:e.poiLayer2.getPoiById(t))}getPois(){var t,n;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(e=>!e.options.built_in),...((n=this.context.currentFloor)==null?void 0:n.poiLayer2.pois)||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.context.dispose(),this.unRegistryEvent(),ft.dispose(),Bt.dispose(),Xt.dispose(),xt.dispose(),L.dispose()}constructor(t,n={}){super(),this.container=t,this.polarKeys=[],this.azimuthalKeys=[],this.basicZoom=1,this.prevCameraZoom=1,this.type="2d",this.currentBuildGround=null,this.observe=null,this.buildingCenter=[0,0],this.timer=new X,this.plugins=[],this.onControlChange=()=>{let{camera:{zoom:e}}=this.context;e!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=e)},this.onKeydown=e=>{this.polarKeys.includes(e.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(e.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=e=>{if(this.polarKeys.includes(e.code)){let i=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=i,this.context.control.minPolarAngle=i}if(this.azimuthalKeys.includes(e.code)){let i=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=i,this.context.control.minAzimuthAngle=i}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let e=this.context.control.getAzimuthalAngle(),i=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let r=this.context.getFitCameraToGroundZoom(void 0,0)||1;this.context.camera.zoom=i,this.context.control.minZoom=r,this.context.control.maxZoom=r*25,this.basicZoom=i,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(e,0),this.context.cameraBound.setEnable(!0)},this.config=Li(n),this.context=new Ye(t,this.config),this.registryEvent()}};var zo=require("three"),Et=class extends zo.EventDispatcher{dispose(){}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};function Go(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ma(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Go(r,e,i,o,a,"next",u)}function a(u){Go(r,e,i,o,a,"throw",u)}o(void 0)})}}var Oi=class extends Et{fetchEquipment(){var t=this;return Ma(function*(){let{apiDomain:n,apiPath:{equipmentList:e},apiInfo:i}=t.bmap.config,r=`${n}${e}`;yield fetch(r,i).then(o=>o.json()).then(o=>o.data).then(o=>{t.equipmentList=o,t.equipmentMap=new Map(o.map(a=>[a.equipment_id,a]))}),t.dispatchEvent({type:"change-equipment-list",data:t.equipmentList}),t.bmap.context.currentFloor&&t.changeGraphicToEquipment(t.bmap.context.currentFloor.graphicLayer.children)})()}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(n=>{let e=this.getGraphicEquipment(n);return e&&this.equipmentMap.has(e)}).forEach(n=>{let e=this.equipmentMap.get(this.getGraphicEquipment(n)),i=this.bmap.createGraphicPoi(n,{icon:e==null?void 0:e.equipment_icon,built_in:!0,icon_size:[14,14]});i&&(i.userData.data=e,i.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(J.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(n=>{if(n.userData.type==="equipment"){var e;(e=this.bmap.context.currentFloor)==null||e.poiLayer.removePoi(n)}})}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=({data:{graphics:n}})=>{this.equipmentList.length&&this.changeGraphicToEquipment(n)},this.fetchEquipment(),this.bmap.addEventListener(J.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};var k=require("three");var v=require("three"),it=class extends v.BufferGeometry{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new v.Matrix4,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(t){this.setGeometry(t,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(t){this.setPoints(t,this.widthCallback)}}})}};it.prototype.setMatrixWorld=function(s){this.matrixWorld=s};it.prototype.setGeometry=function(s,t){this._geometry=s,this.setPoints(s.getAttribute("position").array,t)};it.prototype.setPoints=function(s,t){if(!(s instanceof Float32Array)&&!(s instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=s,this.widthCallback=t,this.positions=[],this.counters=[],s.length&&s[0]instanceof v.Vector3)for(var n=0;n<s.length;n++){var e=s[n],i=n/s.length;this.positions.push(e.x,e.y,e.z),this.positions.push(e.x,e.y,e.z),this.counters.push(i),this.counters.push(i)}else for(var n=0;n<s.length;n+=3){var i=n/s.length;this.positions.push(s[n],s[n+1],s[n+2]),this.positions.push(s[n],s[n+1],s[n+2]),this.counters.push(i),this.counters.push(i)}this.process()};function ba(s,t){var n=new v.Matrix4,e=new v.Ray,i=new v.Sphere,r=new v.Vector3,o=this.geometry;if(o.boundingSphere||o.computeBoundingSphere(),i.copy(o.boundingSphere),i.applyMatrix4(this.matrixWorld),s.ray.intersectSphere(i,r)!==!1){n.copy(this.matrixWorld).invert(),e.copy(s.ray).applyMatrix4(n);var a=new v.Vector3,u=new v.Vector3,l=new v.Vector3,c=this instanceof v.LineSegments?2:1,h=o.index,p=o.attributes;if(h!==null)for(var f=h.array,g=p.position.array,_=p.width.array,E=0,S=f.length-1;E<S;E+=c){var R=f[E],V=f[E+1];a.fromArray(g,R*3),u.fromArray(g,V*3);var D=_[Math.floor(E/3)]!==void 0?_[Math.floor(E/3)]:1,M=s.params.Line.threshold+this.material.lineWidth*D/2,at=M*M,C=e.distanceSqToSegment(a,u,r,l);if(!(C>at)){r.applyMatrix4(this.matrixWorld);var rt=s.ray.origin.distanceTo(r);rt<s.near||rt>s.far||(t.push({distance:rt,point:l.clone().applyMatrix4(this.matrixWorld),index:E,face:null,faceIndex:null,object:this}),E=S)}}}}it.prototype.raycast=ba;it.prototype.compareV3=function(s,t){var n=s*6,e=t*6;return this.positions[n]===this.positions[e]&&this.positions[n+1]===this.positions[e+1]&&this.positions[n+2]===this.positions[e+2]};it.prototype.copyV3=function(s){var t=s*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};it.prototype.getDistance=function(s){let t=0;for(let n=0;n<s;n++){let e=6*n,i=new v.Vector3(this.positions[e],this.positions[e+1],this.positions[e+2]),r=new v.Vector3(this.positions[e+6],this.positions[e+7],this.positions[e+8]),o=i.distanceTo(r);t+=o}return t};it.prototype.process=function(){var s=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let n=this.getDistance(s-1);var e;this.compareV3(0,s-1)?e=this.copyV3(s-2):e=this.copyV3(0),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);for(var i=0;i<s;i++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(i/(s-1)):t=1,this.width.push(t),this.width.push(t),i===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(i===s-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let o=this.getDistance(i)/n;this.uvs.push(o,0),this.uvs.push(o,1)}if(i<s-1){e=this.copyV3(i),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);var r=i*2;this.indices_array.push(r,r+1,r+2),this.indices_array.push(r+2,r+1,r+3)}i>0&&(e=this.copyV3(i),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]))}this.compareV3(s-1,0)?e=this.copyV3(1):e=this.copyV3(s-1),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new v.BufferAttribute(new Float32Array(this.positions),3),previous:new v.BufferAttribute(new Float32Array(this.previous),3),next:new v.BufferAttribute(new Float32Array(this.next),3),side:new v.BufferAttribute(new Float32Array(this.side),1),width:new v.BufferAttribute(new Float32Array(this.width),1),uv:new v.BufferAttribute(new Float32Array(this.uvs),2),index:new v.BufferAttribute(new Uint16Array(this.indices_array),1),counters:new v.BufferAttribute(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function Di(s,t,n,e,i){var r;if(s=s.subarray||s.slice?s:s.buffer,n=n.subarray||n.slice?n:n.buffer,s=t?s.subarray?s.subarray(t,i&&t+i):s.slice(t,i&&t+i):s,n.set)n.set(s,e);else for(r=0;r<s.length;r++)n[r+e]=s[r];return n}it.prototype.advance=function(s){var t=this._attributes.position.array,n=this._attributes.previous.array,e=this._attributes.next.array,i=t.length;Di(t,0,n,0,i),Di(t,6,t,0,i-6),t[i-6]=s.x,t[i-5]=s.y,t[i-4]=s.z,t[i-3]=s.x,t[i-2]=s.y,t[i-1]=s.z,Di(t,6,e,0,i-6),e[i-6]=s.x,e[i-5]=s.y,e[i-4]=s.z,e[i-3]=s.x,e[i-2]=s.y,e[i-1]=s.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};v.ShaderChunk.meshline_vert=["",v.ShaderChunk.logdepthbuf_pars_vertex,v.ShaderChunk.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",v.ShaderChunk.logdepthbuf_vertex,v.ShaderChunk.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",v.ShaderChunk.fog_vertex,"}"].join(`
103
+ `,e=-1/0,i=this.geometry.getAttribute("position");if(i)for(let o=0;o<i.count;o++){let a=i.getZ(o);a>e&&(e=a)}let r=new G.ShaderMaterial({uniforms:{maxZ:{value:e},uColor:{value:new G.Color(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new G.Color(Pt(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:n,transparent:!0});this.material=r}initLineMaterial(){let t=L.createLineMaterial({color:this.options[0].strokeColor,opacity:this.options[0].strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new G.Mesh(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],n=this.options[0].height+this.options[0].deltaHeight;return this.options.map(e=>{let{coords:i}=e.geometry;for(let r=0;r<i.length;r++){let o=i[r];for(let a=0;a<o.length;a++){let u=o[a],l=a+1===o.length?o[0]:o[a+1];t.push(new G.Vector3(u[0],u[1],n)),t.push(new G.Vector3(l[0],l[1],n))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),n=new G.BufferGeometry().setFromPoints(t);this.lineGeometry=n}createBorder(){this.line&&this.remove(this.line);let t=new G.LineSegments(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t;this.geometry.dispose(),this.material.dispose(),(t=this.line)==null||t.geometry.dispose(),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>Mi({},ln,e)),this.init()}};var Q=require("three");var Mo=require("lodash");function So(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function gn(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){So(r,e,i,o,a,"next",u)}function a(u){So(r,e,i,o,a,"throw",u)}o(void 0)})}}function bi(){return bi=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},bi.apply(this,arguments)}var xa={text:"",icon:"",icon_size:[22,22],level:1,collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},text_font_size:14,icon_rotate:0,depth_test:!1},z=class extends Q.Object3D{get durIconAndText(){return this.options.icon&&this.options.text?2:0}get offset(){return this.options.icon&&this.options.text?0:.5}get iconWidth(){return this.options.icon?this.options.icon_size[0]:0}get iconHeight(){return this.options.icon?this.options.icon_size[1]:0}get textWidth(){return this.options.text?this.options.text_font_size*this.textAspect:0}get textHeight(){return this.options.text?this.options.text_font_size:0}get deltaZ(){return!this.options.icon&&this.options.text?.1+this.offset*(this.iconHeight+this.durIconAndText+this.textHeight)/this.context.camera.zoom:.1}get canSelect(){return this.visible&&(this.spriteIcon?this.spriteIcon.visible:!0)&&(this.spriteText?this.spriteText.visible:!0)}registryEvent(){this.context.addEventListener("control-zoom-change",this._initScale);var t=this;this.addEventListener("change-icon",gn(function*({value:n}){t._initIconPromise&&(yield t._initIconPromise),t.spriteIcon&&(t.remove(t.spriteIcon),t.spriteIcon=void 0),yield t.initIcon(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})),this.addEventListener("change-text",({value:n})=>{this.spriteText&&(this.remove(this.spriteText),this.spriteText=void 0),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-icon_rotate",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.rotation=n/180*Math.PI)}),this.addEventListener("change-icon_size",({value:n})=>{this.spriteIcon&&this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-depth_test",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.depthTest=n),this.spriteText&&(this.spriteText.material.depthTest=n)})}unRegistryEvent(){this.context.removeEventListener("control-zoom-change",this._initScale)}getPosition(){return this.position}initIcon(){var t=this;return gn(function*(){if(t.options.icon)return t._initIconPromise=new Promise(gn(function*(n){let e=yield Bt.getTextureByUrl(t.options.icon),i=new Q.Sprite(new Q.SpriteMaterial({map:e,transparent:!0,alphaTest:.2,depthTest:t.options.depth_test,rotation:t.options.icon_rotate/180*Math.PI}));i.visible=!1,i.renderOrder=1e5+t.options.level,e.needsUpdate=!0,t.add(i),t.spriteIcon=i,n(i)})).then(()=>{t._initIconPromise=null})})()}initText(){if(this.options.text){let t=ft.getTextureByText(this.options.text);this.textAspect=t.image.width/t.image.height;let n=new Q.Sprite(new Q.SpriteMaterial({map:t,transparent:!0,alphaTest:.2,depthTest:this.options.depth_test}));n.visible=!1,n.renderOrder=100001+this.options.level,t.needsUpdate=!0,this.spriteText=n,this.add(n)}}initSize(){var t,n;let e=0,i=0,{icon:r,text:o}=this.options;r?o?(e=0,i=e*(this.iconHeight/this.textHeight)-this.iconHeight/this.textHeight-this.durIconAndText/this.textHeight):(e=.5,i=0):o?(i=.5,e=0):(e=0,i=0),(t=this.spriteIcon)==null||t.center.set(.5,e),(n=this.spriteText)==null||n.center.set(.5,i)}init(){var t=this;return gn(function*(){yield t.initIcon(),t.initText(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})()}resetZ(){let t=this.deltaZ;this.spriteIcon&&(this.spriteIcon.position.z=t),this.spriteText&&(this.spriteText.position.z=t)}getBox(t){let{clientSize:{width:n,height:e}}=this.context,i=n*(t.x+1)/2,r=e*(-t.y+1)/2;r+=this.offset*(this.iconHeight+this.durIconAndText+this.textHeight);let o=this.iconWidth/2,a=new Q.Box2(new Q.Vector2(i-o,r-this.iconHeight),new Q.Vector2(i+o,r)),u=this.textWidth/2,l=new Q.Box2(new Q.Vector2(i-u,r-this.textHeight-this.durIconAndText-this.iconHeight),new Q.Vector2(i+u,r-this.iconHeight-this.durIconAndText));return this.box=l.union(a),this.box}renderBoxHelper(t,n){if(!this.boxHelper){let e=document.createElement("div");e.style.position="absolute",e.style.zIndex="999",e.style.border="1px solid red",e.style.pointerEvents="none",this.boxHelper=e,this.context.container.appendChild(e)}t&&n?(this.boxHelper.style.left=t+"px",this.boxHelper.style.top=n+"px",this.boxHelper.style.width="2px",this.boxHelper.style.height="2px"):(this.boxHelper.style.left=this.box.min.x+"px",this.boxHelper.style.top=this.box.min.y+"px",this.boxHelper.style.width=this.box.max.x-this.box.min.x+"px",this.boxHelper.style.height=this.box.max.y-this.box.min.y+"px")}parentSetVisible(t){this.spriteText&&(this.spriteText.visible=t),this.spriteIcon&&(this.spriteIcon.visible=t),this.boxHelper&&(this.boxHelper.style.display=t?"block":"none")}dispose(){this.clear(),this.unRegistryEvent(),this.spriteText=void 0,this.spriteIcon=void 0}constructor(t,n){super(),this.context=t,this.textAspect=1,this.box=new Q.Box2,this._initIconPromise=null,this._initScale=({zoom:e})=>{if(this.spriteText){let r=this.textHeight/e;this.spriteText.scale.set(this.textAspect*r,r,.1)}if(this.spriteIcon){var i;(i=this.spriteIcon)==null||i.scale.set(this.options.icon_size[0]/e,this.options.icon_size[1]/e,.1)}this.resetZ()},this.options=Kt((0,Mo.cloneDeep)(bi({},xa,n)),this),this.position.set(this.options.position.x,this.options.position.y,this.options.position.z),this.registryEvent(),this.init()}};var mt=require("three"),wo=require("three/examples/jsm/utils/BufferGeometryUtils");function bo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ca(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){bo(r,e,i,o,a,"next",u)}function a(u){bo(r,e,i,o,a,"throw",u)}o(void 0)})}}function wi(){return wi=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},wi.apply(this,arguments)}var To={airHeight:0,deltaHeight:0,height:0,geometry:{cds:[],type:"polygon",coords:[],curveCpt:[],curveIndex:[]},texts:[],fillColor:"#ffffff",fillOpacity:0,strokeColor:"#ffffff",strokeOpacity:0,secondHeight:0,secondRotate:0,center_x:0,center_y:0},We=class extends mt.Object3D{init(){var t=this;return Ca(function*(){let n=t.options.map(a=>ft.getTextureByText(a.texts[0],{fillStyle:sn(a.fillColor,a.fillOpacity),strokeStyle:sn(a.strokeColor,a.strokeOpacity),lineWidth:6,font:"54px sans-serif"})),e=n.map((a,u)=>{let l=t.options[u],{width:c,height:h}=a.image,p=c/h,f=l.secondHeight*p,g=new mt.PlaneGeometry(f,l.secondHeight),_=new mt.Matrix4().makeTranslation(l.center_x,l.center_y,l.airHeight+l.deltaHeight+l.height).multiply(new mt.Matrix4().makeRotationZ(l.secondRotate));return g.applyMatrix4(_),g}),i=(0,wo.mergeGeometries)(e,!0);e.forEach(a=>a.dispose());let r=n.map(a=>{let u=new mt.MeshBasicMaterial({map:a,alphaTest:1,side:mt.DoubleSide});return a.needsUpdate=!0,u}),o=new mt.Mesh(i,r);t.mesh=o,t.position.z+=.04,t.add(o)})()}dispose(){var t,n;(t=this.mesh)==null||t.geometry.dispose(),((n=this.mesh)==null?void 0:n.material).forEach(e=>e.dispose()),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>wi({},To,e)),this.init()}};var Io=require("three");function Ti(){return Ti=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Ti.apply(this,arguments)}var mn=class extends gt{setEnable(t){super.setEnable(t),K(this.rect,0,0,0,0),t?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:n,container:{clientWidth:e,clientHeight:i}}}=this,r=x(this.startPoint,n,e,i),o=x(this.endPoint,n,e,i),a={x:Math.min(r.x,o.x),y:Math.min(r.y,o.y)},u={x:Math.max(r.x,o.x),y:Math.max(r.y,o.y)},l=this.searchMapInFrustum(a,u);this.dispatchEvent({type:"selected",list:l})}}searchMapInFrustum(t,n){var e;let{context:i}=this;return((e=i.currentFloor)==null?void 0:e.graphicLayer.children.filter(r=>r instanceof $&&this.searchChildInFrustum(r,t,n)))||[]}searchChildInFrustum(t,n,e){let{context:{camera:i,container:{clientWidth:r,clientHeight:o}}}=this;if(!t)return!1;if(!t.mesh){let p=t.getPosition();if(p){let f=x(p,i,r,o);return Ut(f,n,e)}return!1}t.mesh.geometry.boundingBox||t.mesh.geometry.computeBoundingBox();let a=t.mesh.geometry.boundingBox;if(!a)return!1;let{min:u,max:l}=a,c=x(u,i,r,o),h=x(l,i,r,o);return!(!Ut(c,n,e)||!Ut(h,n,e))}dispose(){this.unRegistryEvent()}constructor(t){super(t),this.frustum=new Io.Frustum,this.onPointerDown=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.startPoint=r),this.endPoint=void 0},this.onPointerMove=i=>{if(!this.enable||!this.startPoint)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r)},this.onPointerUp=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r),this.doSelect(),this.startPoint=void 0},this.onUpdate=()=>{if(this.startPoint){let i=this.getSvgCoordinate(this.startPoint),r=Ti({},i);this.endPoint&&(r=this.getSvgCoordinate(this.endPoint));let o={x:Math.min(i.x,r.x),y:Math.min(i.y,r.y)},a=Math.abs(r.x-i.x),u=Math.abs(r.y-i.y);K(this.rect,o.x,o.y,a,u)}else K(this.rect,0,0,0,0)};let{config:{selectBox:{fill:n,stroke:e}}}=t;this.rect=$t(e,n),this.svg.appendChild(this.rect),this.registryEvent()}};var qe=class extends Ro.EventDispatcher{get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.context.config.enableBoxSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}constructor(t){super(),this.context=t,this._list=new Set,this.downPoint=null,this.isMultipleSelect=!1,this.onPointerDown=n=>{this.downPoint={x:n.offsetX,y:n.offsetY}},this.onPointerUp=n=>{if(!this.downPoint)return;let{offsetX:e,offsetY:i}=n,{x:r,y:o}=this.downPoint;if(Math.sqrt((r-e)**2+(o-i)**2)>3)return;let{graphics:a}=this.context.getGraphicsByDeviceXy(e,i),u=new Set(a.map(c=>c.options.id));this.context.getPoisByDeviceXy(e,i).forEach(c=>{if(!u.has(c.options.id)){var h;let p=((h=this.context.currentFloor)==null?void 0:h.graphicLayer.graphicMap.get(c.options.id))||null;p&&p.options.geometry.type==="point"&&(a.push(p),u.add(c.options.id))}}),(Jt?n.metaKey:n.ctrlKey)||this._list.clear(),a.forEach(c=>this._list.add(c)),this.selectEnd(),this.downPoint=null},this.onPointerOut=n=>{this.disableBoxSelection()},this.onKeyDown=n=>{Zt(n.key)&&this.enableBoxSelection()},this.onKeyUp=n=>{Zt(n.key)&&this.disableBoxSelection()},this.onBoxSelected=({list:n})=>{this._list.clear(),n.forEach(e=>{this._list.add(e)}),this.selectEnd()},this.boxSelection=new mn(t),this.boxSelection.setEnable(!1),this.registryEvent()}};var _n=require("three");var Qe=class extends _n.EventDispatcher{handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel),document.body.addEventListener("pointermove",this.onBodyPointerMove)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel),document.body.removeEventListener("pointermove",this.onBodyPointerMove)}dispose(){this.unRegistryEvent(),this.timer.dispose()}constructor(t){super(),this.context=t,this.curGraphics=new Set,this.timer=new X,this.graphicTimerMap=new Map,this.onPointerMove=({graphics:n,pois:e,e:i})=>{let r=e.map(l=>{var c;return(c=this.context.currentFloor)==null?void 0:c.graphicLayer.graphicMap.get(l.options.id)}).filter(l=>l&&l.options.geometry.type==="point");if(!n.length&&!r.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:o}=this.context.config.hover,a=new Set;if(r.length){let l,c=1e4;r.forEach(h=>{let p=e.find(f=>f.options.id===h.options.id);if(p instanceof jt){let{x:f,y:g}=p.clientPos,_=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);_<c&&(c=_,l=h)}else if(p instanceof z){let{x:f,y:g}=p.box.getCenter(new _n.Vector2),_=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);_<c&&(c=_,l=h)}}),a.add(l)}a.size||n.forEach(l=>a.add(l)),a.forEach(l=>{if(this.graphicTimerMap.get(l)||this.curGraphics.has(l))return;let c=this.timer.setTimeout(()=>{this.curGraphics.add(l),this.graphicTimerMap.delete(l),this.timer.clearTimeout(c),this.handleHoverGraphicsChange()},o);this.graphicTimerMap.set(l,c)}),this.graphicTimerMap.forEach((l,c)=>{a.has(c)||(this.timer.clearTimeout(l),this.graphicTimerMap.delete(c))});let u=this.curGraphics.size;this.curGraphics.forEach(l=>{a.has(l)||this.curGraphics.delete(l)}),u!==this.curGraphics.size&&this.handleHoverGraphicsChange()},this.onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()},this.onBodyPointerMove=n=>{if(this.curGraphics.size){let e=this.context.container.getBoundingClientRect();(n.clientX<e.left||n.clientX>e.right||n.clientY<e.top||n.clientY>e.bottom)&&this.onPointerLevel()}},this.registryEvent()}};var ae=require("three");var yn=class{updateBox(){this.box.setFromObject(this.context.scene)}setEnable(t){this.enable=t,t?this.registryEvent():this.unRegistryEvent()}changePrevCamera(){this.prevCamera={position:this.context.camera.position.clone(),zoom:this.context.camera.zoom,target:this.context.control.target.clone()}}backToPrevCamera(){this.setEnable(!1),this.context.camera.position.copy(this.prevCamera.position),this.context.camera.zoom=this.prevCamera.zoom,this.context.control.target.copy(this.prevCamera.target),this.context.control.update(),this.setEnable(!0)}registryEvent(){this.context.addEventListener("control-change",this.onCameraChange)}unRegistryEvent(){this.context.removeEventListener("control-change",this.onCameraChange)}getCurFloorScreenPosition(){if(!this.context.scene.children.filter(E=>E instanceof dt).length)return null;let n=this.box,{camera:e,clientSize:{width:i,height:r}}=this.context,{min:o,max:a}=n,u=x(o,e,i,r),l=x(a,e,i,r),c=x(new ae.Vector3(o.x,a.y,a.z),e,i,r),h=x(new ae.Vector3(a.x,o.y,o.z),e,i,r),p=Math.min(u.x,l.x,c.x,h.x),f=Math.max(u.x,l.x,c.x,h.x),g=Math.min(u.y,l.y,c.y,h.y),_=Math.max(u.y,l.y,c.y,h.y);return{left:p,right:f,top:g,bottom:_}}checkDistanceToScreenEdge({left:t,right:n,top:e,bottom:i}){let{width:r,height:o}=this.context.clientSize,[a,u,l,c]=this.context.config.cameraBound.padding,h=n>=c,p=r-t>=u,f=o-e>=l,g=i>=a;return h&&p&&f&&g}dispose(){this.unRegistryEvent()}constructor(t){this.context=t,this.prevCamera={position:new ae.Vector3,zoom:1,target:new ae.Vector3},this.enable=!0,this.box=new ae.Box3,this.onCameraChange=()=>{let n=this.getCurFloorScreenPosition();if(n){let{left:e,right:i,top:r,bottom:o}=n;this.checkDistanceToScreenEdge({left:e,right:i,top:r,bottom:o})?this.changePrevCamera():this.backToPrevCamera()}},this.registryEvent(),this.changePrevCamera()}};var Ri=require("three"),ue=require("@tweenjs/tween.js");var y=require("three"),vn=new y.Ray,Po=new y.Plane,Aa=Math.cos(70*y.MathUtils.DEG2RAD),xn=class extends y.EventDispatcher{dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerUp),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null)}constructor(t,n){super(),this.rotateLineStart=new y.Vector2,this.rotateLineEnd=new y.Vector2,this.spherical=new y.Spherical,this.sphericalDelta=new y.Spherical,this.object=t,this.domElement=n,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new y.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.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.screenSpacePanning=!1,this.mouseButtons={LEFT:y.MOUSE.PAN,MIDDLE:y.MOUSE.DOLLY,RIGHT:y.MOUSE.ROTATE},this.touches={ONE:y.TOUCH.PAN,TWO:y.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 a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(d){d.addEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=d},this.stopListenToKeyEvents=function(){var d;(d=this._domElementKeyEvents)==null||d.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null},this.saveState=function(){e.target0.copy(e.target),e.position0.copy(e.object.position),e.zoom0=e.object.zoom},this.reset=function(){e.target.copy(e.target0),e.object.position.copy(e.position0),e.object.zoom=e.zoom0,e.object.updateProjectionMatrix(),e.dispatchEvent({type:"change"}),e.update(),r=i.NONE},this.update=function(){let d=new y.Vector3,m=new y.Quaternion().setFromUnitVectors(t.up,new y.Vector3(0,1,0)),T=m.clone().invert(),B=new y.Vector3,ut=new y.Quaternion,Rt=new y.Vector3,Mt=2*Math.PI;return function(Wn=null){let Nt=e.object.position;d.copy(Nt).sub(e.target),d.applyQuaternion(m),a.setFromVector3(d),e.autoRotate&&r===i.NONE&&fe(Me(Wn)),e.enableDamping?(a.theta+=u.theta*e.dampingFactor,a.phi+=u.phi*e.dampingFactor):(a.theta+=u.theta,a.phi+=u.phi);let Ot=e.minAzimuthAngle,Dt=e.maxAzimuthAngle;isFinite(Ot)&&isFinite(Dt)&&(Ot<-Math.PI?Ot+=Mt:Ot>Math.PI&&(Ot-=Mt),Dt<-Math.PI?Dt+=Mt:Dt>Math.PI&&(Dt-=Mt),Ot<=Dt?a.theta=Math.max(Ot,Math.min(Dt,a.theta)):a.theta=a.theta>(Ot+Dt)/2?Math.max(Ot,a.theta):Math.min(Dt,a.theta)),a.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,a.phi)),a.makeSafe(),e.enableDamping===!0?e.target.addScaledVector(c,e.dampingFactor):e.target.add(c),e.zoomToCursor&&at||e.object.isOrthographicCamera?a.radius=Vn(a.radius):a.radius=Vn(a.radius*l),d.setFromSpherical(a),d.applyQuaternion(T),Nt.copy(e.target).add(d),e.object.lookAt(e.target),e.enableDamping===!0?(u.theta*=1-e.dampingFactor,u.phi*=1-e.dampingFactor,c.multiplyScalar(1-e.dampingFactor)):(u.set(0,0,0),c.set(0,0,0));let en=!1;if(e.zoomToCursor&&at){let be=null;if(e.object.isPerspectiveCamera){let we=d.length();be=Vn(we*l);let nn=we-be;e.object.position.addScaledVector(D,nn),e.object.updateMatrixWorld()}else if(e.object.isOrthographicCamera){let we=new y.Vector3(M.x,M.y,0);we.unproject(e.object),e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),en=!0;let nn=new y.Vector3(M.x,M.y,0);nn.unproject(e.object),e.object.position.sub(nn).add(we),e.object.updateMatrixWorld(),be=d.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),e.zoomToCursor=!1;be!==null&&(e.screenSpacePanning?e.target.set(0,0,-1).transformDirection(e.object.matrix).multiplyScalar(be).add(e.object.position):(vn.origin.copy(e.object.position),vn.direction.set(0,0,-1).transformDirection(e.object.matrix),Math.abs(e.object.up.dot(vn.direction))<Aa?t.lookAt(e.target):(Po.setFromNormalAndCoplanarPoint(e.object.up,e.target),vn.intersectPlane(Po,e.target))))}else e.object.isOrthographicCamera&&(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),en=!0);return l=1,at=!1,en||B.distanceToSquared(e.object.position)>o||8*(1-ut.dot(e.object.quaternion))>o||Rt.distanceToSquared(e.target)>0?(e.dispatchEvent({type:"change"}),B.copy(e.object.position),ut.copy(e.object.quaternion),Rt.copy(e.target),en=!1,!0):!1}}();let e=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},r=i.NONE,o=1e-6,a=new y.Spherical,u=new y.Spherical,l=1,c=new y.Vector3,h=new y.Vector2,p=new y.Vector2,f=new y.Vector2,g=new y.Vector2,_=new y.Vector2,E=new y.Vector2,S=new y.Vector2,R=new y.Vector2,V=new y.Vector2,D=new y.Vector3,M=new y.Vector2,at=!1,C=[],rt={};function Me(d){return d!==null?2*Math.PI/60*e.autoRotateSpeed*d:2*Math.PI/60/60*e.autoRotateSpeed}function pe(){return Math.pow(.95,e.zoomSpeed)}function fe(d){u.theta-=d}function de(d){u.phi-=d}let gr=function(){let d=new y.Vector3;return function(T,B){d.setFromMatrixColumn(B,0),d.multiplyScalar(-T),c.add(d)}}(),mr=function(){let d=new y.Vector3;return function(T,B){e.screenSpacePanning===!0?d.setFromMatrixColumn(B,1):(d.setFromMatrixColumn(B,0),d.crossVectors(e.object.up,d)),d.multiplyScalar(T),c.add(d)}}(),ge=function(){let d=new y.Vector3;return function(T,B){let ut=e.domElement;if(e.object.isPerspectiveCamera){let Rt=e.object.position;d.copy(Rt).sub(e.target);let Mt=d.length();Mt*=Math.tan(e.object.fov/2*Math.PI/180),gr(2*T*Mt/ut.clientHeight,e.object.matrix),mr(2*B*Mt/ut.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(gr(T*(e.object.right-e.object.left)/e.object.zoom/ut.clientWidth,e.object.matrix),mr(B*(e.object.top-e.object.bottom)/e.object.zoom/ut.clientHeight,e.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1)}}();function Hn(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l/=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function _r(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l*=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function yr(d){if(!e.zoomToCursor)return;at=!0;let m=e.domElement.getBoundingClientRect(),T=d.clientX-m.left,B=d.clientY-m.top,ut=m.width,Rt=m.height;M.x=T/ut*2-1,M.y=-(B/Rt)*2+1,D.set(M.x,M.y,1).unproject(e.object).sub(e.object.position).normalize()}function Vn(d){return Math.max(e.minDistance,Math.min(e.maxDistance,d))}function vr(d){h.set(d.clientX,d.clientY)}function bs(d){yr(d),S.set(d.clientX,d.clientY)}function xr(d){g.set(d.clientX,d.clientY)}function ws(d){p.set(d.clientX,d.clientY),f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let m=e.domElement;fe(2*Math.PI*f.x/m.clientHeight),de(2*Math.PI*f.y/m.clientHeight),h.copy(p),e.update()}function Ts(d){R.set(d.clientX,d.clientY),V.subVectors(R,S),V.y>0?Hn(pe()):V.y<0&&_r(pe()),S.copy(R),e.update()}function Is(d){_.set(d.clientX,d.clientY),E.subVectors(_,g).multiplyScalar(e.panSpeed),ge(E.x,E.y),g.copy(_),e.update()}function Rs(d){yr(d),d.deltaY<0?_r(pe()):d.deltaY>0&&Hn(pe()),e.update()}function Ps(d){let m=!1;switch(d.code){case e.keys.UP:d.ctrlKey||d.metaKey||d.shiftKey?de(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):ge(0,e.keyPanSpeed),m=!0;break;case e.keys.BOTTOM:d.ctrlKey||d.metaKey||d.shiftKey?de(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):ge(0,-e.keyPanSpeed),m=!0;break;case e.keys.LEFT:d.ctrlKey||d.metaKey||d.shiftKey?fe(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):ge(e.keyPanSpeed,0),m=!0;break;case e.keys.RIGHT:d.ctrlKey||d.metaKey||d.shiftKey?fe(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):ge(-e.keyPanSpeed,0),m=!0;break}m&&(d.preventDefault(),e.update())}function Cr(){if(C.length===1)h.set(C[0].pageX,C[0].pageY);else{let d=(C[0].pageX-C[0].pageY)/(C[1].pageX-C[1].pageY),m=C[0].pageY-d*C[0].pageX;e.rotateLineStart.set(d,m);let T=.5*(C[0].pageX+C[1].pageX),B=.5*(C[0].pageY+C[1].pageY);h.set(T,B)}}function Ar(){if(C.length===1)g.set(C[0].pageX,C[0].pageY);else{let d=.5*(C[0].pageX+C[1].pageX),m=.5*(C[0].pageY+C[1].pageY);g.set(d,m)}}function Er(){let d=C[0].pageX-C[1].pageX,m=C[0].pageY-C[1].pageY,T=Math.sqrt(d*d+m*m);S.set(0,T)}function Ls(){e.enableZoom&&Er(),e.enablePan&&Ar()}function Bs(){e.enableZoom&&Er(),e.enableRotate&&Cr()}function Sr(d){if(C.length==1)p.set(d.pageX,d.pageY);else{let T=Xn(d),B=.5*(d.pageX+T.x),ut=.5*(d.pageY+T.y);p.set(B,ut);let Rt=(d.pageY-T.y)/(d.pageX-T.x),Mt=T.y-Rt*T.x;if(e.rotateLineEnd.set(Rt,Mt),Number.isFinite(e.rotateLineEnd.x)&&Number.isFinite(e.rotateLineStart.x)){let jn=(e.rotateLineStart.y-e.rotateLineEnd.y)/(e.rotateLineEnd.x-e.rotateLineStart.x),Wn=Rt*jn+Mt;if(Number.isFinite(jn)&&Number.isFinite(Wn)){let Nt=Math.atan(e.rotateLineEnd.x)-Math.atan(e.rotateLineStart.x);Math.PI-Math.abs(Nt)<.5&&(Nt=-Math.sign(Nt)*(Math.PI-Math.abs(Nt))),Math.abs(Nt)<.1&&(u.theta+=Nt)}}e.rotateLineStart.copy(e.rotateLineEnd)}f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let m=e.domElement;de(2*Math.PI*f.y/m.clientHeight),h.copy(p)}function Mr(d){if(C.length===1)_.set(d.pageX,d.pageY);else{let m=Xn(d),T=.5*(d.pageX+m.x),B=.5*(d.pageY+m.y);_.set(T,B)}E.subVectors(_,g).multiplyScalar(e.panSpeed),ge(E.x,E.y),g.copy(_)}function br(d){let m=Xn(d),T=d.pageX-m.x,B=d.pageY-m.y,ut=Math.sqrt(T*T+B*B);R.set(0,ut),V.set(0,Math.pow(R.y/S.y,e.zoomSpeed)),Hn(V.y),S.copy(R)}function Ns(d){e.enableZoom&&br(d),e.enablePan&&Mr(d)}function Os(d){e.enableZoom&&br(d),e.enableRotate&&Sr(d)}this.onPointerDown=function(m){e.enabled!==!1&&(C.length===0&&(e.domElement.setPointerCapture(m.pointerId),e.domElement.addEventListener("pointermove",e.onPointerMove),e.domElement.addEventListener("pointerup",e.onPointerUp)),zs(m),m.pointerType==="touch"?Fs(m):Ds(m))},this.onPointerMove=function(m){e.enabled!==!1&&(m.pointerType==="touch"?$s(m):Us(m))},this.onPointerUp=function(m){Gs(m),C.length===0&&(e.domElement.releasePointerCapture(m.pointerId),e.domElement.removeEventListener("pointermove",e.onPointerMove),e.domElement.removeEventListener("pointerup",e.onPointerUp)),e.dispatchEvent({type:"end"}),r=i.NONE};function Ds(d){let m;switch(d.button){case 0:m=e.mouseButtons.LEFT;break;case 1:m=e.mouseButtons.MIDDLE;break;case 2:m=e.mouseButtons.RIGHT;break;default:m=-1}switch(m){case y.MOUSE.DOLLY:if(e.enableZoom===!1)return;bs(d),r=i.DOLLY;break;case y.MOUSE.ROTATE:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enablePan===!1)return;xr(d),r=i.PAN}else{if(e.enableRotate===!1)return;vr(d),r=i.ROTATE}break;case y.MOUSE.PAN:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enableRotate===!1)return;vr(d),r=i.ROTATE}else{if(e.enablePan===!1)return;xr(d),r=i.PAN}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function Us(d){switch(r){case i.ROTATE:if(e.enableRotate===!1)return;ws(d);break;case i.DOLLY:if(e.enableZoom===!1)return;Ts(d);break;case i.PAN:if(e.enablePan===!1)return;Is(d);break}}this.onMouseWheel=function(m){e.enabled===!1||e.enableZoom===!1||r!==i.NONE||(m.preventDefault(),e.dispatchEvent({type:"start"}),Rs(m),e.dispatchEvent({type:"end"}))},this.onKeyDown=function(m){e.enabled===!1||e.enablePan===!1||Ps(m)};function Fs(d){switch(wr(d),C.length){case 1:switch(e.touches.ONE){case y.TOUCH.ROTATE:if(e.enableRotate===!1)return;Cr(),r=i.TOUCH_ROTATE;break;case y.TOUCH.PAN:if(e.enablePan===!1)return;Ar(),r=i.TOUCH_PAN;break;default:r=i.NONE}break;case 2:switch(e.touches.TWO){case y.TOUCH.DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Ls(),r=i.TOUCH_DOLLY_PAN;break;case y.TOUCH.DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Bs(),r=i.TOUCH_DOLLY_ROTATE;break;default:r=i.NONE}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function $s(d){switch(wr(d),r){case i.TOUCH_ROTATE:if(e.enableRotate===!1)return;Sr(d),e.update();break;case i.TOUCH_PAN:if(e.enablePan===!1)return;Mr(d),e.update();break;case i.TOUCH_DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Ns(d),e.update();break;case i.TOUCH_DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Os(d),e.update();break;default:r=i.NONE}}this.onContextMenu=function(m){e.enabled!==!1&&m.preventDefault()};function zs(d){C.push(d)}function Gs(d){delete rt[d.pointerId];for(let m=0;m<C.length;m++)if(C[m].pointerId==d.pointerId){C.splice(m,1);return}}function wr(d){let m=rt[d.pointerId];m===void 0&&(m=new y.Vector2,rt[d.pointerId]=m),m.set(d.pageX,d.pageY)}function Xn(d){let m=d.pointerId===C[0].pointerId?C[1]:C[0];return rt[m.pointerId]}e.domElement.addEventListener("contextmenu",this.onContextMenu),e.domElement.addEventListener("pointerdown",this.onPointerDown),e.domElement.addEventListener("pointercancel",this.onPointerUp),e.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}};function Lo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ii(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Lo(r,e,i,o,a,"next",u)}function a(u){Lo(r,e,i,o,a,"throw",u)}o(void 0)})}}var Cn=class extends xn{registryEvent(){this.addEventListener("change",()=>{let t=this.camera.zoom;t!==this.prevCameraZoom&&(this.prevCameraZoom=t,this.dispatchEvent({type:"change-zoom",zoom:t}))}),this.context.addEventListener("update",this.tweenUpdate)}setPolarAngle(t,n=!1){let{maxPolarAngle:e,minPolarAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),r||(this.maxPolarAngle=e,this.minPolarAngle=i)}setPolarAngleByDuration(t,n=!1,e=500){var i=this;return Ii(function*(){return e<=0?i.setPolarAngle(t,n):ht(new Promise(r=>{let o={polar:i.getPolarAngle()},a={polar:t},u=new ue.Tween(o,i.tweenGroup).to(a,e).onUpdate(()=>{i.setPolarAngle(o.polar,n)}).onComplete(()=>{i.enabled=!0,i.tweenGroup.remove(u),r(!0)}).onStart(()=>{i.enabled=!1}).start()}),e+500)})()}setAzimuthalAngle(t,n){let{maxAzimuthAngle:e,minAzimuthAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxAzimuthAngle=t,this.minAzimuthAngle=t,this.update()),r||(this.maxAzimuthAngle=e,this.minAzimuthAngle=i)}setAzimuthalAngleDuration(t,n=!1,e=500){return e<=0?this.setAzimuthalAngle(t,n):ht(new Promise(i=>{let r={azimuthal:this.getAzimuthalAngle()},o={azimuthal:t},a=new ue.Tween(r,this.tweenGroup).to(o,e).onUpdate(()=>{this.setAzimuthalAngle(r.azimuthal,n)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(a),i(!0)}).onStart(()=>{this.enabled=!1}).start()}),e+500)}getCameraLookAt(){return new Ri.Vector3().subVectors(this.target,this.camera.position)}setCameraPositionByTarget(t,n){var e=this;return Ii(function*(){let i=e.target.clone(),r=e.getCameraLookAt();if(!n){e.camera.position.copy(t.clone().sub(r)),e.target.copy(t.clone()),e.update();return}return ht(new Promise(o=>{let a=new ue.Tween(i,e.tweenGroup).to(t,n).onUpdate(()=>{e.camera.position.copy(i.clone().sub(r)),e.target.copy(i.clone()),e.update()}).onComplete(()=>{e.tweenGroup.remove(a),e.enabled=!0,o(!0)}).onStart(()=>{e.enabled=!1}).start()}),n+500)})()}setZoom(t,n,e=!1){let{minZoom:i,maxZoom:r}=this;(e||t>=i&&t<=r)&&(this.camera.position.copy(n.clone().sub(this.getCameraLookAt())),this.target.copy(n),this.camera.zoom=t,this.update())}setZoomByDuration(t,n,e=!1,i=500){var r=this;return Ii(function*(){let o={zoom:r.camera.zoom,target:r.target.clone()};if(t!==r.camera.zoom)return i?ht(new Promise(a=>{let u=new ue.Tween(o,r.tweenGroup).to({zoom:t,target:n},i).onUpdate(()=>{r.setZoom(o.zoom,o.target,e)}).onComplete(()=>{r.tweenGroup.remove(u),r.enabled=!0,a(!0)}).onStart(()=>{r.enabled=!1}).start()}),i+500):r.setZoom(t,n,e)})()}setTargetByOffset(t,n=this.target.clone()){if(!t)return;this.camera.updateMatrix();let e=new Ri.Vector3;e.setFromMatrixColumn(this.camera.matrix,1),e.normalize(),e.multiplyScalar(t/this.camera.zoom),n.add(e),this.setCameraPositionByTarget(n,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){super.dispose(),this.clearTween()}constructor(t,n,e){super(n,e),this.context=t,this.camera=n,this.domElement=e,this.prevCameraZoom=1,this.tweenGroup=new ue.Group,this.offsetY=0,this.tweenUpdate=()=>{this.tweenGroup.update()},this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=n.zoom,this.registryEvent()}};var Ce=require("three");function Pi(){return Pi=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Pi.apply(this,arguments)}var An=class extends Ce.WebGLRenderer{setCameraAndScene(t,n){this.scene=t,this.camera=n}autoRender(){this.scene&&this.camera&&this.enable&&(this.event.dispatchEvent({type:"update"}),this.render(this.scene,this.camera)),this.timer.requestAnimationFrame(()=>{this.autoRender()})}pauseRender(){this.enable=!1}continueRender(){this.enable=!0}addEventListener(t,n){this.event.addEventListener(t,n)}removeEventListener(t,n){this.event.removeEventListener(t,n)}dispose(){this.timer.dispose(),this.enable=!1,super.dispose()}constructor(t){super(Pi({antialias:!0,alpha:!0},t)),this.event=new Ce.EventDispatcher,this.enable=!0,this.timer=new X,this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.shadowMap.enabled=!0,this.shadowMap.autoUpdate=!0,this.shadowMap.type=Ce.PCFSoftShadowMap}};var Bo=require("three"),En=class extends Bo.Scene{constructor(){super()}};var No=require("three"),Sn=class extends No.OrthographicCamera{constructor(t,n){super(-t/2,t/2,n/2,-n/2,-1e4,5e4),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};function Oo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ea(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Oo(r,e,i,o,a,"next",u)}function a(u){Oo(r,e,i,o,a,"throw",u)}o(void 0)})}}var Ye=class extends w.EventDispatcher{resizeClientSize(){let{x:t,y:n,width:e,height:i}=this.container.getBoundingClientRect();this.clientSize={width:e||this.container.clientWidth,height:i||this.container.clientHeight,x:t,y:n}}init(){let{clientWidth:t,clientHeight:n}=this.container;this.camera=new Sn(t,n),this.renderer.setSize(t,n),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new Cn(this,this.camera,this.renderer.domElement),this.control.maxPolarAngle=this.config.control.maxPolar,this.container.appendChild(this.renderer.domElement),this.scene.add(this.lights),this.basicRatio=this.getRatio(),this.control.addEventListener("change",()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})}),this.control.addEventListener("change-zoom",({zoom:e})=>{this.dispatchEvent({type:"control-zoom-change",zoom:e})}),this.renderer.addEventListener("update",()=>{this.dispatchEvent({type:"update"})}),this.cameraBound=new yn(this)}getRatio(t=new w.Vector3(0,0,0),n=new w.Vector3(100,0,0)){let{clientWidth:e,clientHeight:i}=this.container,r=x(t,this.camera,e,i),o=x(n,this.camera,e,i);return Math.ceil(Math.sqrt((o.x-r.x)**2+(o.y-r.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(n=>{n instanceof w.AmbientLight&&(n.color=new w.Color(t))})}switchFloor(t){this.currentFloor&&(this.scene.remove(this.currentFloor),this.currentFloor.dispose()),this.currentFloor=t,this.scene.add(t);let n=t.getCenter();n&&(this.lights.position.x=n.x,this.lights.position.y=n.y),this.cameraBound.updateBox()}getGraphicsByDeviceXy(t,n){var e;let i=new w.Vector2;i.x=t/this.clientSize.width*2-1,i.y=n/this.clientSize.height*-2+1;let r=new w.Raycaster;return r.setFromCamera(i,this.camera),r.ray.origin.sub(r.ray.direction.clone().multiplyScalar(100)),((e=this.currentFloor)==null?void 0:e.graphicLayer.getGraphicByRaycaster(r))||{graphics:[],position:null}}getPoisByDeviceXy(t,n){var e,i;let r=(e=this.currentFloor)==null?void 0:e.poiLayer.getPoiByDeviceXy(t,n),o=(i=this.currentFloor)==null?void 0:i.poiLayer2.getPoiByDeviceXy(t,n);return(r||[]).concat(o||[])}registryEvent(){window.addEventListener("resize",this.onWindowResize),this.container.addEventListener("click",this.onClick),this.container.addEventListener("pointerover",this.onPointerover),this.container.addEventListener("pointermove",this.onPointermove),this.container.addEventListener("pointerleave",this.onPointerleave),this.container.addEventListener("pointercancel",this.onPointerleave),this.container.addEventListener("pointerout",this.onPointerleave),this.selection.addEventListener("select",this.onSelectionSelect),this.hoverHelper.addEventListener("hover-change",this.onHoverChange)}unRegistryEvent(){window.removeEventListener("resize",this.onWindowResize),this.container.removeEventListener("click",this.onClick),this.container.removeEventListener("pointerover",this.onPointerover),this.container.removeEventListener("pointermove",this.onPointermove),this.container.removeEventListener("pointerleave",this.onPointerleave),this.container.removeEventListener("pointercancel",this.onPointerleave),this.container.removeEventListener("pointerout",this.onPointerleave),this.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange)}setPolarAngle(t,n=500){return this.control.setPolarAngleByDuration(t,!0,n)}setAzimuthalAngle(t,n=500){return this.control.setAzimuthalAngleDuration(t,!0,n)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,n,e=500){return this.control.setZoomByDuration(t,n,!0,e)}getFitCameraToObjectZoom(t,n=[20,20,20,20],e=500,i=!0){let[r,o,a,u]=n,{clientSize:{width:l,height:c}}=this,h=this.control.getPolarAngle();i&&this.setPolarAngle(0,0);let p=new w.Box3().setFromObject(t);this.setPolarAngle(h,0);let{max:f,min:g}=p,_=new w.Vector3(g.x,f.y,f.z),E=new w.Vector3(f.x,f.y,f.z),S=new w.Vector3(f.x,g.y,g.z),R=new w.Vector3(g.x,g.y,g.z),V=x(_,this.camera,l,c),D=x(E,this.camera,l,c),M=x(R,this.camera,l,c),at=x(S,this.camera,l,c),rt=new w.Box2().setFromPoints([new w.Vector2(V.x,V.y),new w.Vector2(D.x,D.y),new w.Vector2(M.x,M.y),new w.Vector2(at.x,at.y)]).getSize(new w.Vector2),Me=(l-o-u)/rt.x,pe=(c-r-a)/rt.y,fe=Math.min(Me,pe),de=new w.Vector3((f.x+g.x)/2,(f.y+g.y)/2,(f.z+g.z)/2);return{zoom:fe*this.camera.zoom,center:de}}fitCameraToObject(t,n=[20,20,20,20],e=500,i=!0){let{zoom:r,center:o}=this.getFitCameraToObjectZoom(t,n,e,i);return this.setZoom(r,o,e)}getFitCameraToGroundZoom(t=[20,20,20,20],n=500,e=!0){if(this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,n,e).zoom}fitCameraToGround(t=[20,20,20,20],n=500,e=!0){return this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundLayer,t,n,e):Promise.resolve(!1)}setCameraPosition(t,n){var e=this;return Ea(function*(){return e.control.setCameraPositionByTarget(t,n)})()}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}dispose(){this.control.dispose(),this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.unRegistryEvent(),this.renderer.domElement.remove(),this.renderer.dispose(),this.lights.children.forEach(t=>t.dispose()),j(this.scene)}constructor(t,n){super(),this.container=t,this.config=n,this.scene=new En,this.renderer=new An,this.lights=Qn(),this.clientSize={width:0,height:0,x:0,y:0},this.renderRf=0,this.onWindowResize=()=>{let{container:e,camera:i,renderer:r}=this,{clientWidth:o,clientHeight:a}=e;o=Math.max(1,o),a=Math.max(1,a),i.left=-o/2,i.right=o/2,i.top=a/2,i.bottom=-a/2,i.updateProjectionMatrix(),r.setSize(o,a),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:o,height:a})},this.onClick=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY);i.length&&this.dispatchEvent({type:"graphic-click",graphics:i,position:r});let o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);o.length&&this.dispatchEvent({type:"poi-click",pois:o})},this.onPointerover=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-over",e,graphics:i,pois:o,position:r})},this.onPointermove=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-move",e,graphics:i,pois:o,position:r})},this.onPointerleave=e=>{this.dispatchEvent({type:"pointer-level"})},this.onSelectionSelect=({graphics:e,isMultipleSelect:i})=>{this.dispatchEvent({type:"select-graphic",graphics:e,isMultipleSelect:i})},this.onHoverChange=({graphics:e})=>{this.dispatchEvent({type:"hover",graphics:e})},this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new qe(this),this.hoverHelper=new Qe(this),this.resizeClientSize(),this.registryEvent()}};var Do=require("lodash"),Uo={apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get",equipmentList:"/api/inception-map/equipment/get",roadNetwork:"/api/inception-map/road_network/get"},enableBoxSelect:!0,resizeObserver:!1,initTransToMark:!1,heatMap:{radius:50,gradient:{0:"#8F9FCD",.5:"#6284FF",1:"#F95D5D"}},useFloorCache:!0,control:{maxPolar:1.2,defaultPolar:1.1,defaultAzimuthal:0},defaultPadding:[20,20,20,20],svg:{circle:{radius:"2",fill:"#1CADFF"},line:{stroke:"#1CADFF"}},selectBox:{stroke:"#1CADFF",fill:"rgba(28, 173, 255, 0.3)"},hover:{time:100},ground:{color:"#F6F6F6",opacity:1,height:.001,stroke:!1,strokeColor:"#E6E6E6",strokeOpacity:1},markGraphic:{color:"#EEF0F3",opacity:1,height:.001,stroke:!1,strokeColor:"#000",strokeOpacity:1},graphic:{fillOpacity:1},cameraBound:{padding:[150,150,150,150]},poi:{boxScale:1}};function Li(s){return(0,Do.merge)({},Uo,s)}var $o=require("lodash");function Fo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Bi(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Fo(r,e,i,o,a,"next",u)}function a(u){Fo(r,e,i,o,a,"throw",u)}o(void 0)})}}function Mn(){return Mn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Mn.apply(this,arguments)}var Sa=function(s){return s[s.D2=0]="D2",s[s.D3=1.1]="D3",s}({}),Ni=class extends bn.EventDispatcher{changeBuildingCenter(t,{brand:n,project:e}){let i=t?Te(t.info.geometry.cds[0]):[0,0];this.buildingCenter=i,this.dispatchEvent({type:"center-change",center:i,project:e,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(n=>n!==t)}triggerHooks(t,n){this.dispatchEvent({type:t,data:n})}switchFloorByFloor(t,n=t.graphicLayer.children){this.triggerHooks(J.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:n}),this.context.switchFloor(t),this.initialFloorCamera(),this.triggerHooks(J.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:n})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(this.config.defaultPadding,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*30,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}addModel(t,n){if(t.options.geometry.type==="polygon"){var e;let i=(e=this.context.currentFloor)==null?void 0:e.addModel(Mn({},n,{position:t.getPosition().setZ(.1),id:t.options.id}));if(i){let{facilityAngle:r=0,facilityXScale:o=1,facilityYScale:a=1}=t.options.userData;i.rotateZ((180-r)/180*Math.PI),i.scale.set(o,a,1)}}}addHeatmap(t){var n;return(n=this.context.currentFloor)==null?void 0:n.addHeatmap(t)}getLegacyToGraphicMap(){var t;return((t=this.context.currentFloor)==null?void 0:t.userData.legacyToGraphicMap)||new Map}getFloorAllGraphics(){var t;return((t=this.context.currentFloor)==null?void 0:t.graphicLayer.children.filter(n=>n instanceof $))||[]}createGraphicPoi(t,n){if(this.context.currentFloor){n.id===void 0&&(n.id=t.options.id);let e=t.options.center,i=t.getCenter(),r=(e==null?void 0:e[0])||i.x,o=(e==null?void 0:e[1])||i.y;return console.log(r,o,e,i),this.context.currentFloor.addPoi(Mn({},n,{position:{x:r,y:o,z:i.z+t.options.height/2}}))}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,n=500){let e=t.getPosition();return this.context.setCameraPosition(e,n)}translateElementToCenterX(t,n=500){var e=this;return Bi(function*(){return ht(new Promise(i=>{let r=e.context.control.target.clone(),o=t.getPosition();e.timer.requestAnimationFrame(()=>{let{clientSize:{width:a,height:u},camera:l}=e.context,h=x(o,l,a,u).x-a/2,p=new bn.Vector3;p.setFromMatrixColumn(e.context.camera.matrix,0),p.normalize(),p.multiplyScalar(h/e.context.camera.zoom),r.add(p),e.context.setCameraPosition(r,n).then(i)})}),n+500)})()}getElementDeviceCoordinate(t){let n=t.position.clone(),{clientWidth:e,clientHeight:i}=this.container;return x(n,this.context.camera,e,i)}changeMapType(t,n=500){return this.type=t,t==="2d"?this.context.setPolarAngle(0,n):this.context.setPolarAngle(1.1,n)}resetView(t=300){var n=this;return Bi(function*(){let e=t/3;yield n.context.setAzimuthalAngle(n.config.control.defaultAzimuthal,e),yield n.context.setPolarAngle(n.config.control.defaultPolar,e),yield n.context.fitCameraToGround(n.config.defaultPadding,e,!1)})()}reduceMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e-t,this.context.control.target,n)}enlargeMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e+t,this.context.control.target,n)}registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver((0,$o.debounce)(this.resize,5));t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t=.1){let n=this.context.control.getAzimuthalAngle();this.context.setAzimuthalAngle(n+t,500)}measureDistance(){var t=this;return Bi(function*(){return t.cancelDistance(),new Promise((n,e)=>{t.changeMapType("2d",0),t.context.control.enableRotate=!1,t.svgLine=new Ge(t.context);let i=t.svgLine.dispose.bind(t.svgLine);t.svgLine.dispose=function(){i(),e("cancel")},t.svgLine.addEventListener("distance",({distance:r})=>{n(r)})})})()}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,n)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new ke(this.context);let e=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){e(),n("cancel")},this.svgPolygon.addEventListener("area",({area:i})=>{t(i)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){var n;return((n=this.context.currentFloor)==null?void 0:n.graphicLayer.getGraphicByNodeId(t))||null}deleteGraphic(t){var n;(n=this.context.currentFloor)==null||n.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var n;if(!t.transformToBuildingGround&&this.currentBuildGround){let e=Te(this.currentBuildGround.info.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(r=>{r[0]-=e[0],r[1]-=e[1]})});else{let[i,r]=t.geometry.cds;t.geometry.coords=[i-e[0],r-e[1]]}}return(n=this.context.currentFloor)==null?void 0:n.graphicLayer.createGraphic(t)}removePoiById(t){var n,e;(n=this.context.currentFloor)==null||n.poiLayer.removePoiById(t),(e=this.context.currentFloor)==null||e.poiLayer2.removePoiById(t)}getPoiById(t){var n,e;return((n=this.context.currentFloor)==null?void 0:n.poiLayer.getPoiById(t))||((e=this.context.currentFloor)==null?void 0:e.poiLayer2.getPoiById(t))}getPois(){var t,n;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(e=>!e.options.built_in),...((n=this.context.currentFloor)==null?void 0:n.poiLayer2.pois)||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.context.dispose(),this.unRegistryEvent(),ft.dispose(),Bt.dispose(),Xt.dispose(),xt.dispose(),L.dispose()}constructor(t,n={}){super(),this.container=t,this.polarKeys=[],this.azimuthalKeys=[],this.basicZoom=1,this.prevCameraZoom=1,this.type="2d",this.currentBuildGround=null,this.observe=null,this.buildingCenter=[0,0],this.timer=new X,this.plugins=[],this.onControlChange=()=>{let{camera:{zoom:e}}=this.context;e!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=e)},this.onKeydown=e=>{this.polarKeys.includes(e.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(e.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=e=>{if(this.polarKeys.includes(e.code)){let i=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=i,this.context.control.minPolarAngle=i}if(this.azimuthalKeys.includes(e.code)){let i=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=i,this.context.control.minAzimuthAngle=i}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let e=this.context.control.getAzimuthalAngle(),i=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let r=this.context.getFitCameraToGroundZoom(void 0,0)||1;this.context.camera.zoom=i,this.context.control.minZoom=r,this.context.control.maxZoom=r*25,this.basicZoom=i,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(e,0),this.context.cameraBound.setEnable(!0)},this.config=Li(n),this.context=new Ye(t,this.config),this.registryEvent()}};var zo=require("three"),Et=class extends zo.EventDispatcher{dispose(){}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};function Go(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ma(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Go(r,e,i,o,a,"next",u)}function a(u){Go(r,e,i,o,a,"throw",u)}o(void 0)})}}var Oi=class extends Et{fetchEquipment(){var t=this;return Ma(function*(){let{apiDomain:n,apiPath:{equipmentList:e},apiInfo:i}=t.bmap.config,r=`${n}${e}`;yield fetch(r,i).then(o=>o.json()).then(o=>o.data).then(o=>{t.equipmentList=o,t.equipmentMap=new Map(o.map(a=>[a.equipment_id,a]))}),t.dispatchEvent({type:"change-equipment-list",data:t.equipmentList}),t.bmap.context.currentFloor&&t.changeGraphicToEquipment(t.bmap.context.currentFloor.graphicLayer.children)})()}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(n=>{let e=this.getGraphicEquipment(n);return e&&this.equipmentMap.has(e)}).forEach(n=>{let e=this.equipmentMap.get(this.getGraphicEquipment(n)),i=this.bmap.createGraphicPoi(n,{icon:e==null?void 0:e.equipment_icon,built_in:!0,icon_size:[14,14]});i&&(i.userData.data=e,i.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(J.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(n=>{if(n.userData.type==="equipment"){var e;(e=this.bmap.context.currentFloor)==null||e.poiLayer.removePoi(n)}})}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=({data:{graphics:n}})=>{this.equipmentList.length&&this.changeGraphicToEquipment(n)},this.fetchEquipment(),this.bmap.addEventListener(J.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};var k=require("three");var v=require("three"),it=class extends v.BufferGeometry{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new v.Matrix4,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(t){this.setGeometry(t,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(t){this.setPoints(t,this.widthCallback)}}})}};it.prototype.setMatrixWorld=function(s){this.matrixWorld=s};it.prototype.setGeometry=function(s,t){this._geometry=s,this.setPoints(s.getAttribute("position").array,t)};it.prototype.setPoints=function(s,t){if(!(s instanceof Float32Array)&&!(s instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=s,this.widthCallback=t,this.positions=[],this.counters=[],s.length&&s[0]instanceof v.Vector3)for(var n=0;n<s.length;n++){var e=s[n],i=n/s.length;this.positions.push(e.x,e.y,e.z),this.positions.push(e.x,e.y,e.z),this.counters.push(i),this.counters.push(i)}else for(var n=0;n<s.length;n+=3){var i=n/s.length;this.positions.push(s[n],s[n+1],s[n+2]),this.positions.push(s[n],s[n+1],s[n+2]),this.counters.push(i),this.counters.push(i)}this.process()};function ba(s,t){var n=new v.Matrix4,e=new v.Ray,i=new v.Sphere,r=new v.Vector3,o=this.geometry;if(o.boundingSphere||o.computeBoundingSphere(),i.copy(o.boundingSphere),i.applyMatrix4(this.matrixWorld),s.ray.intersectSphere(i,r)!==!1){n.copy(this.matrixWorld).invert(),e.copy(s.ray).applyMatrix4(n);var a=new v.Vector3,u=new v.Vector3,l=new v.Vector3,c=this instanceof v.LineSegments?2:1,h=o.index,p=o.attributes;if(h!==null)for(var f=h.array,g=p.position.array,_=p.width.array,E=0,S=f.length-1;E<S;E+=c){var R=f[E],V=f[E+1];a.fromArray(g,R*3),u.fromArray(g,V*3);var D=_[Math.floor(E/3)]!==void 0?_[Math.floor(E/3)]:1,M=s.params.Line.threshold+this.material.lineWidth*D/2,at=M*M,C=e.distanceSqToSegment(a,u,r,l);if(!(C>at)){r.applyMatrix4(this.matrixWorld);var rt=s.ray.origin.distanceTo(r);rt<s.near||rt>s.far||(t.push({distance:rt,point:l.clone().applyMatrix4(this.matrixWorld),index:E,face:null,faceIndex:null,object:this}),E=S)}}}}it.prototype.raycast=ba;it.prototype.compareV3=function(s,t){var n=s*6,e=t*6;return this.positions[n]===this.positions[e]&&this.positions[n+1]===this.positions[e+1]&&this.positions[n+2]===this.positions[e+2]};it.prototype.copyV3=function(s){var t=s*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};it.prototype.getDistance=function(s){let t=0;for(let n=0;n<s;n++){let e=6*n,i=new v.Vector3(this.positions[e],this.positions[e+1],this.positions[e+2]),r=new v.Vector3(this.positions[e+6],this.positions[e+7],this.positions[e+8]),o=i.distanceTo(r);t+=o}return t};it.prototype.process=function(){var s=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let n=this.getDistance(s-1);var e;this.compareV3(0,s-1)?e=this.copyV3(s-2):e=this.copyV3(0),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);for(var i=0;i<s;i++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(i/(s-1)):t=1,this.width.push(t),this.width.push(t),i===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(i===s-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let o=this.getDistance(i)/n;this.uvs.push(o,0),this.uvs.push(o,1)}if(i<s-1){e=this.copyV3(i),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);var r=i*2;this.indices_array.push(r,r+1,r+2),this.indices_array.push(r+2,r+1,r+3)}i>0&&(e=this.copyV3(i),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]))}this.compareV3(s-1,0)?e=this.copyV3(1):e=this.copyV3(s-1),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new v.BufferAttribute(new Float32Array(this.positions),3),previous:new v.BufferAttribute(new Float32Array(this.previous),3),next:new v.BufferAttribute(new Float32Array(this.next),3),side:new v.BufferAttribute(new Float32Array(this.side),1),width:new v.BufferAttribute(new Float32Array(this.width),1),uv:new v.BufferAttribute(new Float32Array(this.uvs),2),index:new v.BufferAttribute(new Uint16Array(this.indices_array),1),counters:new v.BufferAttribute(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function Di(s,t,n,e,i){var r;if(s=s.subarray||s.slice?s:s.buffer,n=n.subarray||n.slice?n:n.buffer,s=t?s.subarray?s.subarray(t,i&&t+i):s.slice(t,i&&t+i):s,n.set)n.set(s,e);else for(r=0;r<s.length;r++)n[r+e]=s[r];return n}it.prototype.advance=function(s){var t=this._attributes.position.array,n=this._attributes.previous.array,e=this._attributes.next.array,i=t.length;Di(t,0,n,0,i),Di(t,6,t,0,i-6),t[i-6]=s.x,t[i-5]=s.y,t[i-4]=s.z,t[i-3]=s.x,t[i-2]=s.y,t[i-1]=s.z,Di(t,6,e,0,i-6),e[i-6]=s.x,e[i-5]=s.y,e[i-4]=s.z,e[i-3]=s.x,e[i-2]=s.y,e[i-1]=s.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};v.ShaderChunk.meshline_vert=["",v.ShaderChunk.logdepthbuf_pars_vertex,v.ShaderChunk.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",v.ShaderChunk.logdepthbuf_vertex,v.ShaderChunk.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",v.ShaderChunk.fog_vertex,"}"].join(`
104
104
  `);v.ShaderChunk.meshline_frag=["",v.ShaderChunk.fog_pars_fragment,v.ShaderChunk.logdepthbuf_pars_fragment,"","uniform sampler2D map;","uniform sampler2D alphaMap;","uniform float useMap;","uniform float useAlphaMap;","uniform float useDash;","uniform float dashArray;","uniform float dashOffset;","uniform float dashRatio;","uniform float visibility;","uniform float alphaTest;","uniform vec2 repeat;","uniform float thresholdRatio;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","void main() {","",v.ShaderChunk.logdepthbuf_fragment,""," vec4 c = vColor;"," if( useMap == 1. ) c *= texture2D( map, vUV * repeat );"," if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUV * repeat ).a;"," if( c.a < alphaTest ) discard;"," if( useDash == 1. ){"," c.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio));"," }"," gl_FragColor = c;"," gl_FragColor.a *= step(vCounters, visibility);","",v.ShaderChunk.fog_fragment,"if (vUV.x <= thresholdRatio) {","gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);","}","}"].join(`
105
105
  `);var le=class extends v.ShaderMaterial{constructor(t){super({uniforms:Object.assign({},v.UniformsLib.fog,{lineWidth:{value:1},map:{value:null},useMap:{value:0},alphaMap:{value:null},useAlphaMap:{value:0},color:{value:new v.Color(16777215)},opacity:{value:1},resolution:{value:new v.Vector2(1,1)},sizeAttenuation:{value:1},dashArray:{value:0},dashOffset:{value:0},dashRatio:{value:.5},useDash:{value:0},visibility:{value:1},alphaTest:{value:0},repeat:{value:new v.Vector2(1,1)},thresholdRatio:{value:0},transparent:{value:!0},depthTest:{vale:!1},depthWrite:{value:!1}}),vertexShader:v.ShaderChunk.meshline_vert,fragmentShader:v.ShaderChunk.meshline_frag}),this.isMeshLineMaterial=!0,this.type="MeshLineMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get:function(){return this.uniforms.lineWidth.value},set:function(n){this.uniforms.lineWidth.value=n}},map:{enumerable:!0,get:function(){return this.uniforms.map.value},set:function(n){this.uniforms.map.value=n}},useMap:{enumerable:!0,get:function(){return this.uniforms.useMap.value},set:function(n){this.uniforms.useMap.value=n}},alphaMap:{enumerable:!0,get:function(){return this.uniforms.alphaMap.value},set:function(n){this.uniforms.alphaMap.value=n}},useAlphaMap:{enumerable:!0,get:function(){return this.uniforms.useAlphaMap.value},set:function(n){this.uniforms.useAlphaMap.value=n}},color:{enumerable:!0,get:function(){return this.uniforms.color.value},set:function(n){this.uniforms.color.value=n}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(n){this.uniforms.opacity.value=n}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(n){this.uniforms.resolution.value.copy(n)}},sizeAttenuation:{enumerable:!0,get:function(){return this.uniforms.sizeAttenuation.value},set:function(n){this.uniforms.sizeAttenuation.value=n}},dashArray:{enumerable:!0,get:function(){return this.uniforms.dashArray.value},set:function(n){this.uniforms.dashArray.value=n,this.useDash=n!==0?1:0}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(n){this.uniforms.dashOffset.value=n}},dashRatio:{enumerable:!0,get:function(){return this.uniforms.dashRatio.value},set:function(n){this.uniforms.dashRatio.value=n}},useDash:{enumerable:!0,get:function(){return this.uniforms.useDash.value},set:function(n){this.uniforms.useDash.value=n}},visibility:{enumerable:!0,get:function(){return this.uniforms.visibility.value},set:function(n){this.uniforms.visibility.value=n}},alphaTest:{enumerable:!0,get:function(){return this.uniforms.alphaTest.value},set:function(n){this.uniforms.alphaTest.value=n}},repeat:{enumerable:!0,get:function(){return this.uniforms.repeat.value},set:function(n){this.uniforms.repeat.value.copy(n)}},thresholdRatio:{enumerable:!0,get:function(){return this.uniforms.thresholdRatio.value},set:function(n){this.uniforms.thresholdRatio.value=n}}}),this.setValues(t)}};le.prototype.copy=function(s){return v.ShaderMaterial.prototype.copy.call(this,s),this.lineWidth=s.lineWidth,this.map=s.map,this.useMap=s.useMap,this.alphaMap=s.alphaMap,this.useAlphaMap=s.useAlphaMap,this.color.copy(s.color),this.opacity=s.opacity,this.resolution.copy(s.resolution),this.sizeAttenuation=s.sizeAttenuation,this.dashArray.copy(s.dashArray),this.dashOffset.copy(s.dashOffset),this.dashRatio.copy(s.dashRatio),this.useDash=s.useDash,this.visibility=s.visibility,this.alphaTest=s.alphaTest,this.repeat.copy(s.repeat),this};var ko="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAMAAACROYkbAAABrVBMVEVsjPdsjPdqi/doifdpivdrjPdsjPdsjPd/m/igtfqTq/lykfdri/dsjPdtjfe/zPv8/f/w8/6zw/p0kvdri/dsjPdtjffU3vz////////3+f62xfpzkfdri/dsjPdsjPeZr/nr8P7////////4+f62xfp0kvdri/dsjPdsjPdujveXrvne5v3////////3+f63x/t2lPdri/dsjPdsjPdsjPdri/eMpfjb4/3+/v/////4+v+7yft1k/dri/dsjPdsjPdri/eJovjl6/3////////3+f6Jo/lqivdsjPdri/dvjveluPry9f7////////i6f2BnPhqi/dsjPdrjPdvjveluPrv8v7////////l6/6Uq/lsjPdsjPdsjPdvjveluPrv8v7////////m6/6Uq/lsjPdsjPdsjPdsjPeZr/nv8v7////////s8f6XrvlsjPdsjPdtjffS2/z////////w9P6bsfltjfdsjPdtjffBz/v7/P/y9f6svvpxkPdrjPdsjPdsjPd+mviftPqVrPlykfdri/dsjPdsjPdri/doifdpifdrjPdsjPclkRlrAAAAx0lEQVQ4y2NgwAsYmZhZWNkYyAfsHJxc3Dy85BvAxy8gKCQsIkq2AWLiEpJS0jKycuQaIK+gqKSsoqqmrkGmAZpa2jq6evoGhkbG5BlgYmpmbmFpZW1ja0emE+wdHJ2cXVzd3D3INMDTy9vH188/IDCIPP3BIaFh4RGRUdExseQZEBefkJiUnJKalp5BngGZWdk5uXn5BemFZAZBUXFJaVl5RSWZ9jMwVFXX1NbVNzSSq5+hqbmlta29g2z9DJ1d3T29ffhUAABKPSh5Xst3GwAAAABJRU5ErkJggg==";function Ho(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ta(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Ho(r,e,i,o,a,"next",u)}function a(u){Ho(r,e,i,o,a,"throw",u)}o(void 0)})}}var Vo={texture_url:ko,lineWidth:10,color:16777215},wn=class extends k.Object3D{registryEvent(){this.navigation.bmap.context.addEventListener("control-change",this.onControlChange),this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.bmap.context.addEventListener("resize",this.onResize)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("control-change",this.onControlChange),this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.bmap.context.removeEventListener("resize",this.onResize)}getDepthTestByControl(){let t=this.navigation.bmap.context.control.getPolarAngle();return!(t>=0&&t<=.15)}setDepthTest(t){this.depthTest=t,this.material&&(this.material.depthTest=t)}getRepeat(){let{points:t,navigation:{bmap:{context:{camera:n,clientSize:{width:e,height:i}}}}}=this,r=t.map(([a,u])=>x(new k.Vector3(a,u,0),n,e,i)).map(({x:a,y:u})=>[a,u]);return ct(r)/32}changeRepeat(){if(!this.material)return;let t=this.getRepeat();this.material.repeat=new k.Vector2(t,1)}loadTexture(t){return new Promise((n,e)=>{new k.TextureLoader().load(t,n,void 0,e)})}transformPoints(t){let n=[];for(let e=0;e<t.length;e++)n.push(...t[e],0);return n}updatePoints(t){this.points=t,this.changeRepeat();let n=this.transformPoints(t);this.geometry&&this.geometry.setPoints(n)}movePath(t){this.material&&(this.material.thresholdRatio=t)}create(t){var n=this;return Ta(function*(){let e=n.geometry=new it;if(n.updatePoints(t),!n.texture){let o=n.texture=yield n.loadTexture(n.config.texture_url);o.wrapS=o.wrapT=k.RepeatWrapping}let i=n.material=new le({useMap:!0,color:new k.Color(n.config.color),transparent:!0,resolution:new k.Vector2(n.navigation.bmap.context.clientSize.width,n.navigation.bmap.context.clientSize.height),depthTest:n.depthTest,sizeAttenuation:!1,lineWidth:n.config.lineWidth*2,map:n.texture,blending:k.NormalBlending,repeat:new k.Vector2(n.getRepeat(),1)}),r=n.mesh=new k.Mesh(e,i);return r.renderOrder=9,n.add(r),r})()}dispose(){var t,n,e;this.unRegistryEvent(),this.clear(),(t=this.geometry)==null||t.dispose(),(n=this.material)==null||n.dispose(),(e=this.texture)==null||e.dispose()}constructor(t,n){super(),this.navigation=t,this.mesh=null,this.geometry=null,this.material=null,this.texture=null,this.config=Vo,this.points=[],this.basicRepeat=1,this.prevCameraZoom=0,this.depthTest=!0,this.onControlChange=()=>{let e=this.navigation.bmap.context.camera.zoom;e!==this.prevCameraZoom&&(this.prevCameraZoom=e,this.changeRepeat()),this.setDepthTest(this.getDepthTestByControl())},this.onUpdate=()=>{this.texture},this.onResize=()=>{if(this.material){let{width:e,height:i}=this.navigation.bmap.context.clientSize;this.material.resolution.set(e,i)}},this.config=Object.assign({},Vo,n),this.registryEvent(),this.prevCameraZoom=this.navigation.bmap.context.camera.zoom,this.setDepthTest(this.getDepthTestByControl())}};var Ae=require("@tweenjs/tween.js"),Qt=require("three");var jo=require("three");var Wo=require("@tweenjs/tween.js"),qo=require("lodash");function Xo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ia(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Xo(r,e,i,o,a,"next",u)}function a(u){Xo(r,e,i,o,a,"throw",u)}o(void 0)})}}function Ui(){return Ui=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Ui.apply(this,arguments)}var Ra={offsetDistance:15,offsetToResetTime:3e3,directionEmitThreshold:5,simulationSpeed:1},Tn=class extends jo.EventDispatcher{get curRoutePath(){return this.paths[this.routeIndex]||null}get curRoutePathPoints(){var t;return((t=this.curRoutePath)==null?void 0:t.points)||[]}registryEvent(){this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.addEventListener("add-path",this.onAddPaths)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.removeEventListener("add-path",this.onAddPaths)}resetStatus(t){this.offset=!1,this.reset=!1,this.routeIndex=0,this.pointIndex=0,t.length&&(this.position=t[0].points[0])}emitNavigationStatus(){let t=this.getNavigationInfo();t&&this.dispatchEvent({type:"navigation-info",info:t})}adsorb(t,n){let{curRoutePathPoints:e,position:i,curRoutePath:r,paths:o,routeIndex:a}=this;if(!e.length)return null;let u=e;if(i){let g=Ft(e,i);u=u.slice(g+1),u.unshift(i)}let l=[{floor:r==null?void 0:r.floor,points:u},...o.slice(a+1)],{distance:c,closestPoint:h,index:p,i:f}=l.reduce((g,_,E)=>{if(_.floor!==t)return g;let{distance:S,closestPoint:R,index:V}=_.points.reduce((D,M,at,C)=>{if(!C[at+1])return Ui({},D,{distance:D.distance===1/0?F(M,n):D.distance});let{distance:rt,closestPoint:Me}=ai(n,M,C[at+1]);return rt<D.distance?{distance:rt,closestPoint:Me,index:at}:D},{distance:1/0,closestPoint:_.points[0],index:0});return S<g.distance?{distance:S,closestPoint:R,index:E,i:V}:g},{distance:1/0,closestPoint:u[0],index:0,i:0});return{distance:c,closestPoint:h,routeIndex:p+a,pointIndex:p===0?f+this.pointIndex:f}}toPosition(t,n){let e=this.adsorb(t,n);if(console.log("adsorbData",e),!e)return;let{distance:i,closestPoint:r,routeIndex:o,pointIndex:a}=e;i>this.options.offsetDistance?(this.offset=!0,this.resetTimer||(this.resetTimer=this.timer.setTimeout(()=>{this.reset=!0,this.resetTimer=null},this.options.offsetToResetTime))):(this.offset=!1,this.reset=!1,this.resetTimer&&(this.timer.clearTimeout(this.resetTimer),this.resetTimer=null)),this.routeIndex=o,this.pointIndex=a,this.position=r,this.emitNavigationStatus()}startSimulation(){this.resetStatus(this.paths),this.emitNavigationStatus(),this.startCurRouteSimulation()}pause(){var t;this.tweenUtil.pause(),(t=this.throttleUpdatePosition)==null||t.cancel()}startCurRouteSimulation(){var t=this;return Ia(function*(){let{curRoutePath:n}=t;if(!n)return;t.simulationTween&&t.tweenUtil.remove(t.simulationTween);let e=[];return new Promise(i=>{let r=[t.position,...t.curRoutePathPoints.slice(t.pointIndex+1)],o=t.getCurRouteRemainDistance(),a=o/t.options.simulationSpeed,u=t.throttleUpdatePosition=(0,qo.throttle)(c=>{let h=ee(r,c.distance);h&&(e.push({floor:n.floor,pos:h}),t.toPosition(n.floor,h))},100),l=t.simulationTween=new Wo.Tween({distance:0},t.tweenUtil.group).to({distance:o},a*1e3).onUpdate(u).onComplete(()=>{t.tweenUtil.remove(l),u.flush(),u.cancel(),t.routeIndex+1<t.paths.length?(t.routeIndex++,t.position=t.paths[t.routeIndex].points[0],t.pointIndex=0,setTimeout(()=>{i(t.startCurRouteSimulation())},3e3)):(i(!0),console.log(e,t.routeIndex,t.paths))}).start()})})()}changeSimulationSpeed(t){this.options.simulationSpeed=t,this.startCurRouteSimulation()}getCurRouteRemainDistance(){let{curRoutePathPoints:t,pointIndex:n,position:e}=this;if(!t.length)return 0;let i=[e,...t.slice(n+1)];return ct(i)}getCurRouteToStartDistance(){let{curRoutePathPoints:t,pointIndex:n,position:e}=this;if(!t.length)return 0;let i=[...t.slice(0,n+1),e];return ct(i)}getRemainDistance(){let t=this.getCurRouteRemainDistance();return{total:this.paths.slice(this.routeIndex+1).reduce((i,r)=>i+r.distance,0)+t,curRoute:t}}getNextDirDistance(){if(!this.position)return null;let{pointIndex:t,curRoutePathPoints:n,position:e}=this,i=t,r=pt.FRONT,o=0,a=Date.now();for(;r===pt.FRONT&&o<this.options.directionEmitThreshold&&Date.now()-a<5;){let l=n[i],c=n[i+1],h=n[i+2];!l||!c?r=pt.END:t===0?F(l,e)<5&&(r=pt.START):(o+=F(e,c),h?(r=an(l,c,h),i+=1):r=pt.END)}return r===pt.END&&o<=this.options.directionEmitThreshold?{dir:r,distance:o}:this.getCurRouteToStartDistance()<=5?{dir:pt.START,distance:o}:(o>=this.options.directionEmitThreshold&&(r=pt.FRONT),{dir:r,distance:o})}getNavigationInfo(){let{total:t,curRoute:n}=this.getRemainDistance(),e=this.getNextDirDistance();if(!e)return null;let{dir:i,distance:r}=e;return i===pt.END&&r>15&&(i=pt.FRONT),n<=10&&(i=pt.END),{distance:t,curRouteDistance:n,nextDirDistance:r,dir:i,pos:this.position,routeIndex:this.routeIndex,offset:this.offset,reset:this.reset}}dispose(){this.timer.dispose(),this.unRegistryEvent(),this.tweenUtil.clear()}constructor(t,n,e){super(),this.navigation=t,this.offset=!1,this.reset=!1,this.position=[0,0],this.routeIndex=0,this.pointIndex=0,this.paths=[],this.timer=new X,this.resetTimer=null,this.tweenUtil=new zt,this.onAddPaths=({paths:i})=>{this.paths=i,this.resetStatus(i)},this.onUpdate=()=>{this.tweenUtil.update()},this.options=Object.assign({},Ra,n),this.roadData=e,this.registryEvent()}};var St=require("three");var Gt=class s extends z{addDebug(){s.canvas.style.cssText=`
106
106
  position: fixed;
package/lib/bmap.esm.js CHANGED
@@ -8825,7 +8825,7 @@ var BMap = class extends EventDispatcher11 {
8825
8825
  this.context.camera.zoom = 1;
8826
8826
  this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal, 0);
8827
8827
  this.context.setPolarAngle(this.config.control.defaultPolar, 0);
8828
- this.context.fitCameraToGround(void 0, 0);
8828
+ this.context.fitCameraToGround(this.config.defaultPadding, 0);
8829
8829
  const basicZoom = this.context.camera.zoom;
8830
8830
  this.context.control.minZoom = basicZoom;
8831
8831
  this.context.control.maxZoom = basicZoom * 30;
@@ -100,7 +100,7 @@ var ps=Object.create;var Ni=Object.defineProperty;var fs=Object.getOwnPropertyDe
100
100
  gl_FragColor = vec4(uColor2, uOpacity); // \u5176\u4ED6\u9762\u989C\u8272\uFF09
101
101
  }
102
102
  }
103
- `,e=-1/0,i=this.geometry.getAttribute("position");if(i)for(let o=0;o<i.count;o++){let a=i.getZ(o);a>e&&(e=a)}let r=new Eu({uniforms:{maxZ:{value:e},uColor:{value:new zr(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new zr(vt(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:n,transparent:!0});this.material=r}initLineMaterial(){let t=w.createLineMaterial({color:this.options[0].strokeColor,opacity:this.options[0].strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new xu(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],n=this.options[0].height+this.options[0].deltaHeight;return this.options.map(e=>{let{coords:i}=e.geometry;for(let r=0;r<i.length;r++){let o=i[r];for(let a=0;a<o.length;a++){let u=o[a],l=a+1===o.length?o[0]:o[a+1];t.push(new $r(u[0],u[1],n)),t.push(new $r(l[0],l[1],n))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),n=new Cu().setFromPoints(t);this.lineGeometry=n}createBorder(){this.line&&this.remove(this.line);let t=new Au(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t;this.geometry.dispose(),this.material.dispose(),(t=this.line)==null||t.geometry.dispose(),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>Hn({},Dn,e)),this.init()}};import{Box2 as Vn,Object3D as Mu,Sprite as kr,SpriteMaterial as Hr,Vector2 as Ge}from"three";import{cloneDeep as bu}from"lodash";function Gr(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function ze(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Gr(r,e,i,o,a,"next",u)}function a(u){Gr(r,e,i,o,a,"throw",u)}o(void 0)})}}function Xn(){return Xn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Xn.apply(this,arguments)}var wu={text:"",icon:"",icon_size:[22,22],level:1,collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},text_font_size:14,icon_rotate:0,depth_test:!1},N=class extends Mu{get durIconAndText(){return this.options.icon&&this.options.text?2:0}get offset(){return this.options.icon&&this.options.text?0:.5}get iconWidth(){return this.options.icon?this.options.icon_size[0]:0}get iconHeight(){return this.options.icon?this.options.icon_size[1]:0}get textWidth(){return this.options.text?this.options.text_font_size*this.textAspect:0}get textHeight(){return this.options.text?this.options.text_font_size:0}get deltaZ(){return!this.options.icon&&this.options.text?.1+this.offset*(this.iconHeight+this.durIconAndText+this.textHeight)/this.context.camera.zoom:.1}get canSelect(){return this.visible&&(this.spriteIcon?this.spriteIcon.visible:!0)&&(this.spriteText?this.spriteText.visible:!0)}registryEvent(){this.context.addEventListener("control-zoom-change",this._initScale);var t=this;this.addEventListener("change-icon",ze(function*({value:n}){t._initIconPromise&&(yield t._initIconPromise),t.spriteIcon&&(t.remove(t.spriteIcon),t.spriteIcon=void 0),yield t.initIcon(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})),this.addEventListener("change-text",({value:n})=>{this.spriteText&&(this.remove(this.spriteText),this.spriteText=void 0),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-icon_rotate",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.rotation=n/180*Math.PI)}),this.addEventListener("change-icon_size",({value:n})=>{this.spriteIcon&&this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-depth_test",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.depthTest=n),this.spriteText&&(this.spriteText.material.depthTest=n)})}unRegistryEvent(){this.context.removeEventListener("control-zoom-change",this._initScale)}getPosition(){return this.position}initIcon(){var t=this;return ze(function*(){if(t.options.icon)return t._initIconPromise=new Promise(ze(function*(n){let e=yield dt.getTextureByUrl(t.options.icon),i=new kr(new Hr({map:e,transparent:!0,alphaTest:.2,depthTest:t.options.depth_test,rotation:t.options.icon_rotate/180*Math.PI}));i.visible=!1,i.renderOrder=1e5+t.options.level,e.needsUpdate=!0,t.add(i),t.spriteIcon=i,n(i)})).then(()=>{t._initIconPromise=null})})()}initText(){if(this.options.text){let t=W.getTextureByText(this.options.text);this.textAspect=t.image.width/t.image.height;let n=new kr(new Hr({map:t,transparent:!0,alphaTest:.2,depthTest:this.options.depth_test}));n.visible=!1,n.renderOrder=100001+this.options.level,t.needsUpdate=!0,this.spriteText=n,this.add(n)}}initSize(){var t,n;let e=0,i=0,{icon:r,text:o}=this.options;r?o?(e=0,i=e*(this.iconHeight/this.textHeight)-this.iconHeight/this.textHeight-this.durIconAndText/this.textHeight):(e=.5,i=0):o?(i=.5,e=0):(e=0,i=0),(t=this.spriteIcon)==null||t.center.set(.5,e),(n=this.spriteText)==null||n.center.set(.5,i)}init(){var t=this;return ze(function*(){yield t.initIcon(),t.initText(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})()}resetZ(){let t=this.deltaZ;this.spriteIcon&&(this.spriteIcon.position.z=t),this.spriteText&&(this.spriteText.position.z=t)}getBox(t){let{clientSize:{width:n,height:e}}=this.context,i=n*(t.x+1)/2,r=e*(-t.y+1)/2;r+=this.offset*(this.iconHeight+this.durIconAndText+this.textHeight);let o=this.iconWidth/2,a=new Vn(new Ge(i-o,r-this.iconHeight),new Ge(i+o,r)),u=this.textWidth/2,l=new Vn(new Ge(i-u,r-this.textHeight-this.durIconAndText-this.iconHeight),new Ge(i+u,r-this.iconHeight-this.durIconAndText));return this.box=l.union(a),this.box}renderBoxHelper(t,n){if(!this.boxHelper){let e=document.createElement("div");e.style.position="absolute",e.style.zIndex="999",e.style.border="1px solid red",e.style.pointerEvents="none",this.boxHelper=e,this.context.container.appendChild(e)}t&&n?(this.boxHelper.style.left=t+"px",this.boxHelper.style.top=n+"px",this.boxHelper.style.width="2px",this.boxHelper.style.height="2px"):(this.boxHelper.style.left=this.box.min.x+"px",this.boxHelper.style.top=this.box.min.y+"px",this.boxHelper.style.width=this.box.max.x-this.box.min.x+"px",this.boxHelper.style.height=this.box.max.y-this.box.min.y+"px")}parentSetVisible(t){this.spriteText&&(this.spriteText.visible=t),this.spriteIcon&&(this.spriteIcon.visible=t),this.boxHelper&&(this.boxHelper.style.display=t?"block":"none")}dispose(){this.clear(),this.unRegistryEvent(),this.spriteText=void 0,this.spriteIcon=void 0}constructor(t,n){super(),this.context=t,this.textAspect=1,this.box=new Vn,this._initIconPromise=null,this._initScale=({zoom:e})=>{if(this.spriteText){let r=this.textHeight/e;this.spriteText.scale.set(this.textAspect*r,r,.1)}if(this.spriteIcon){var i;(i=this.spriteIcon)==null||i.scale.set(this.options.icon_size[0]/e,this.options.icon_size[1]/e,.1)}this.resetZ()},this.options=Xt(bu(Xn({},wu,n)),this),this.position.set(this.options.position.x,this.options.position.y,this.options.position.z),this.registryEvent(),this.init()}};import{DoubleSide as Iu,Matrix4 as Xr,Mesh as Ru,MeshBasicMaterial as Pu,Object3D as Lu,PlaneGeometry as Bu}from"three";import{mergeGeometries as Nu}from"three/examples/jsm/utils/BufferGeometryUtils";function Vr(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Tu(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Vr(r,e,i,o,a,"next",u)}function a(u){Vr(r,e,i,o,a,"throw",u)}o(void 0)})}}function jn(){return jn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},jn.apply(this,arguments)}var Ou={airHeight:0,deltaHeight:0,height:0,geometry:{cds:[],type:"polygon",coords:[],curveCpt:[],curveIndex:[]},texts:[],fillColor:"#ffffff",fillOpacity:0,strokeColor:"#ffffff",strokeOpacity:0,secondHeight:0,secondRotate:0,center_x:0,center_y:0},ke=class extends Lu{init(){var t=this;return Tu(function*(){let n=t.options.map(a=>W.getTextureByText(a.texts[0],{fillStyle:Tn(a.fillColor,a.fillOpacity),strokeStyle:Tn(a.strokeColor,a.strokeOpacity),lineWidth:6,font:"54px sans-serif"})),e=n.map((a,u)=>{let l=t.options[u],{width:c,height:h}=a.image,p=c/h,f=l.secondHeight*p,g=new Bu(f,l.secondHeight),_=new Xr().makeTranslation(l.center_x,l.center_y,l.airHeight+l.deltaHeight+l.height).multiply(new Xr().makeRotationZ(l.secondRotate));return g.applyMatrix4(_),g}),i=Nu(e,!0);e.forEach(a=>a.dispose());let r=n.map(a=>{let u=new Pu({map:a,alphaTest:1,side:Iu});return a.needsUpdate=!0,u}),o=new Ru(i,r);t.mesh=o,t.position.z+=.04,t.add(o)})()}dispose(){var t,n;(t=this.mesh)==null||t.geometry.dispose(),((n=this.mesh)==null?void 0:n.material).forEach(e=>e.dispose()),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>jn({},Ou,e)),this.init()}};import{Frustum as Du}from"three";function Wn(){return Wn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Wn.apply(this,arguments)}var He=class extends nt{setEnable(t){super.setEnable(t),z(this.rect,0,0,0,0),t?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:n,container:{clientWidth:e,clientHeight:i}}}=this,r=y(this.startPoint,n,e,i),o=y(this.endPoint,n,e,i),a={x:Math.min(r.x,o.x),y:Math.min(r.y,o.y)},u={x:Math.max(r.x,o.x),y:Math.max(r.y,o.y)},l=this.searchMapInFrustum(a,u);this.dispatchEvent({type:"selected",list:l})}}searchMapInFrustum(t,n){var e;let{context:i}=this;return((e=i.currentFloor)==null?void 0:e.graphicLayer.children.filter(r=>r instanceof B&&this.searchChildInFrustum(r,t,n)))||[]}searchChildInFrustum(t,n,e){let{context:{camera:i,container:{clientWidth:r,clientHeight:o}}}=this;if(!t)return!1;if(!t.mesh){let p=t.getPosition();if(p){let f=y(p,i,r,o);return Et(f,n,e)}return!1}t.mesh.geometry.boundingBox||t.mesh.geometry.computeBoundingBox();let a=t.mesh.geometry.boundingBox;if(!a)return!1;let{min:u,max:l}=a,c=y(u,i,r,o),h=y(l,i,r,o);return!(!Et(c,n,e)||!Et(h,n,e))}dispose(){this.unRegistryEvent()}constructor(t){super(t),this.frustum=new Du,this.onPointerDown=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.startPoint=r),this.endPoint=void 0},this.onPointerMove=i=>{if(!this.enable||!this.startPoint)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r)},this.onPointerUp=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r),this.doSelect(),this.startPoint=void 0},this.onUpdate=()=>{if(this.startPoint){let i=this.getSvgCoordinate(this.startPoint),r=Wn({},i);this.endPoint&&(r=this.getSvgCoordinate(this.endPoint));let o={x:Math.min(i.x,r.x),y:Math.min(i.y,r.y)},a=Math.abs(r.x-i.x),u=Math.abs(r.y-i.y);z(this.rect,o.x,o.y,a,u)}else z(this.rect,0,0,0,0)};let{config:{selectBox:{fill:n,stroke:e}}}=t;this.rect=Mt(e,n),this.svg.appendChild(this.rect),this.registryEvent()}};var Ve=class extends Uu{get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.context.config.enableBoxSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}constructor(t){super(),this.context=t,this._list=new Set,this.downPoint=null,this.isMultipleSelect=!1,this.onPointerDown=n=>{this.downPoint={x:n.offsetX,y:n.offsetY}},this.onPointerUp=n=>{if(!this.downPoint)return;let{offsetX:e,offsetY:i}=n,{x:r,y:o}=this.downPoint;if(Math.sqrt((r-e)**2+(o-i)**2)>3)return;let{graphics:a}=this.context.getGraphicsByDeviceXy(e,i),u=new Set(a.map(c=>c.options.id));this.context.getPoisByDeviceXy(e,i).forEach(c=>{if(!u.has(c.options.id)){var h;let p=((h=this.context.currentFloor)==null?void 0:h.graphicLayer.graphicMap.get(c.options.id))||null;p&&p.options.geometry.type==="point"&&(a.push(p),u.add(c.options.id))}}),(jt?n.metaKey:n.ctrlKey)||this._list.clear(),a.forEach(c=>this._list.add(c)),this.selectEnd(),this.downPoint=null},this.onPointerOut=n=>{this.disableBoxSelection()},this.onKeyDown=n=>{Wt(n.key)&&this.enableBoxSelection()},this.onKeyUp=n=>{Wt(n.key)&&this.disableBoxSelection()},this.onBoxSelected=({list:n})=>{this._list.clear(),n.forEach(e=>{this._list.add(e)}),this.selectEnd()},this.boxSelection=new He(t),this.boxSelection.setEnable(!1),this.registryEvent()}};import{EventDispatcher as Fu,Vector2 as $u}from"three";var Xe=class extends Fu{handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel),document.body.addEventListener("pointermove",this.onBodyPointerMove)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel),document.body.removeEventListener("pointermove",this.onBodyPointerMove)}dispose(){this.unRegistryEvent(),this.timer.dispose()}constructor(t){super(),this.context=t,this.curGraphics=new Set,this.timer=new D,this.graphicTimerMap=new Map,this.onPointerMove=({graphics:n,pois:e,e:i})=>{let r=e.map(l=>{var c;return(c=this.context.currentFloor)==null?void 0:c.graphicLayer.graphicMap.get(l.options.id)}).filter(l=>l&&l.options.geometry.type==="point");if(!n.length&&!r.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:o}=this.context.config.hover,a=new Set;if(r.length){let l,c=1e4;r.forEach(h=>{let p=e.find(f=>f.options.id===h.options.id);if(p instanceof Nt){let{x:f,y:g}=p.clientPos,_=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);_<c&&(c=_,l=h)}else if(p instanceof N){let{x:f,y:g}=p.box.getCenter(new $u),_=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);_<c&&(c=_,l=h)}}),a.add(l)}a.size||n.forEach(l=>a.add(l)),a.forEach(l=>{if(this.graphicTimerMap.get(l)||this.curGraphics.has(l))return;let c=this.timer.setTimeout(()=>{this.curGraphics.add(l),this.graphicTimerMap.delete(l),this.timer.clearTimeout(c),this.handleHoverGraphicsChange()},o);this.graphicTimerMap.set(l,c)}),this.graphicTimerMap.forEach((l,c)=>{a.has(c)||(this.timer.clearTimeout(l),this.graphicTimerMap.delete(c))});let u=this.curGraphics.size;this.curGraphics.forEach(l=>{a.has(l)||this.curGraphics.delete(l)}),u!==this.curGraphics.size&&this.handleHoverGraphicsChange()},this.onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()},this.onBodyPointerMove=n=>{if(this.curGraphics.size){let e=this.context.container.getBoundingClientRect();(n.clientX<e.left||n.clientX>e.right||n.clientY<e.top||n.clientY>e.bottom)&&this.onPointerLevel()}},this.registryEvent()}};import{Box3 as zu,Vector3 as je}from"three";var We=class{updateBox(){this.box.setFromObject(this.context.scene)}setEnable(t){this.enable=t,t?this.registryEvent():this.unRegistryEvent()}changePrevCamera(){this.prevCamera={position:this.context.camera.position.clone(),zoom:this.context.camera.zoom,target:this.context.control.target.clone()}}backToPrevCamera(){this.setEnable(!1),this.context.camera.position.copy(this.prevCamera.position),this.context.camera.zoom=this.prevCamera.zoom,this.context.control.target.copy(this.prevCamera.target),this.context.control.update(),this.setEnable(!0)}registryEvent(){this.context.addEventListener("control-change",this.onCameraChange)}unRegistryEvent(){this.context.removeEventListener("control-change",this.onCameraChange)}getCurFloorScreenPosition(){if(!this.context.scene.children.filter(x=>x instanceof et).length)return null;let n=this.box,{camera:e,clientSize:{width:i,height:r}}=this.context,{min:o,max:a}=n,u=y(o,e,i,r),l=y(a,e,i,r),c=y(new je(o.x,a.y,a.z),e,i,r),h=y(new je(a.x,o.y,o.z),e,i,r),p=Math.min(u.x,l.x,c.x,h.x),f=Math.max(u.x,l.x,c.x,h.x),g=Math.min(u.y,l.y,c.y,h.y),_=Math.max(u.y,l.y,c.y,h.y);return{left:p,right:f,top:g,bottom:_}}checkDistanceToScreenEdge({left:t,right:n,top:e,bottom:i}){let{width:r,height:o}=this.context.clientSize,[a,u,l,c]=this.context.config.cameraBound.padding,h=n>=c,p=r-t>=u,f=o-e>=l,g=i>=a;return h&&p&&f&&g}dispose(){this.unRegistryEvent()}constructor(t){this.context=t,this.prevCamera={position:new je,zoom:1,target:new je},this.enable=!0,this.box=new zu,this.onCameraChange=()=>{let n=this.getCurFloorScreenPosition();if(n){let{left:e,right:i,top:r,bottom:o}=n;this.checkDistanceToScreenEdge({left:e,right:i,top:r,bottom:o})?this.changePrevCamera():this.backToPrevCamera()}},this.registryEvent(),this.changePrevCamera()}};import{Vector3 as Qr}from"three";import{Tween as Ke,Group as ju}from"@tweenjs/tween.js";import{EventDispatcher as Gu,MOUSE as Jt,Quaternion as jr,Spherical as qe,TOUCH as Zt,Vector2 as q,Vector3 as it,Plane as ku,Ray as Hu,MathUtils as Vu}from"three";var Qe=new Hu,Wr=new ku,Xu=Math.cos(70*Vu.DEG2RAD),Ye=class extends Gu{dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerUp),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null)}constructor(t,n){super(),this.rotateLineStart=new q,this.rotateLineEnd=new q,this.spherical=new qe,this.sphericalDelta=new qe,this.object=t,this.domElement=n,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new it,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.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.screenSpacePanning=!1,this.mouseButtons={LEFT:Jt.PAN,MIDDLE:Jt.DOLLY,RIGHT:Jt.ROTATE},this.touches={ONE:Zt.PAN,TWO:Zt.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 a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(d){d.addEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=d},this.stopListenToKeyEvents=function(){var d;(d=this._domElementKeyEvents)==null||d.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null},this.saveState=function(){e.target0.copy(e.target),e.position0.copy(e.object.position),e.zoom0=e.object.zoom},this.reset=function(){e.target.copy(e.target0),e.object.position.copy(e.position0),e.object.zoom=e.zoom0,e.object.updateProjectionMatrix(),e.dispatchEvent({type:"change"}),e.update(),r=i.NONE},this.update=function(){let d=new it,m=new jr().setFromUnitVectors(t.up,new it(0,1,0)),S=m.clone().invert(),T=new it,j=new jr,ct=new it,ot=2*Math.PI;return function(Mn=null){let gt=e.object.position;d.copy(gt).sub(e.target),d.applyQuaternion(m),a.setFromVector3(d),e.autoRotate&&r===i.NONE&&kt(ne(Mn)),e.enableDamping?(a.theta+=u.theta*e.dampingFactor,a.phi+=u.phi*e.dampingFactor):(a.theta+=u.theta,a.phi+=u.phi);let mt=e.minAzimuthAngle,_t=e.maxAzimuthAngle;isFinite(mt)&&isFinite(_t)&&(mt<-Math.PI?mt+=ot:mt>Math.PI&&(mt-=ot),_t<-Math.PI?_t+=ot:_t>Math.PI&&(_t-=ot),mt<=_t?a.theta=Math.max(mt,Math.min(_t,a.theta)):a.theta=a.theta>(mt+_t)/2?Math.max(mt,a.theta):Math.min(_t,a.theta)),a.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,a.phi)),a.makeSafe(),e.enableDamping===!0?e.target.addScaledVector(c,e.dampingFactor):e.target.add(c),e.zoomToCursor&&X||e.object.isOrthographicCamera?a.radius=An(a.radius):a.radius=An(a.radius*l),d.setFromSpherical(a),d.applyQuaternion(S),gt.copy(e.target).add(d),e.object.lookAt(e.target),e.enableDamping===!0?(u.theta*=1-e.dampingFactor,u.phi*=1-e.dampingFactor,c.multiplyScalar(1-e.dampingFactor)):(u.set(0,0,0),c.set(0,0,0));let de=!1;if(e.zoomToCursor&&X){let ie=null;if(e.object.isPerspectiveCamera){let re=d.length();ie=An(re*l);let ge=re-ie;e.object.position.addScaledVector(R,ge),e.object.updateMatrixWorld()}else if(e.object.isOrthographicCamera){let re=new it(A.x,A.y,0);re.unproject(e.object),e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),de=!0;let ge=new it(A.x,A.y,0);ge.unproject(e.object),e.object.position.sub(ge).add(re),e.object.updateMatrixWorld(),ie=d.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),e.zoomToCursor=!1;ie!==null&&(e.screenSpacePanning?e.target.set(0,0,-1).transformDirection(e.object.matrix).multiplyScalar(ie).add(e.object.position):(Qe.origin.copy(e.object.position),Qe.direction.set(0,0,-1).transformDirection(e.object.matrix),Math.abs(e.object.up.dot(Qe.direction))<Xu?t.lookAt(e.target):(Wr.setFromNormalAndCoplanarPoint(e.object.up,e.target),Qe.intersectPlane(Wr,e.target))))}else e.object.isOrthographicCamera&&(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),de=!0);return l=1,X=!1,de||T.distanceToSquared(e.object.position)>o||8*(1-j.dot(e.object.quaternion))>o||ct.distanceToSquared(e.target)>0?(e.dispatchEvent({type:"change"}),T.copy(e.object.position),j.copy(e.object.quaternion),ct.copy(e.target),de=!1,!0):!1}}();let e=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},r=i.NONE,o=1e-6,a=new qe,u=new qe,l=1,c=new it,h=new q,p=new q,f=new q,g=new q,_=new q,x=new q,C=new q,M=new q,P=new q,R=new it,A=new q,X=!1,v=[],H={};function ne(d){return d!==null?2*Math.PI/60*e.autoRotateSpeed*d:2*Math.PI/60/60*e.autoRotateSpeed}function Gt(){return Math.pow(.95,e.zoomSpeed)}function kt(d){u.theta-=d}function Ht(d){u.phi-=d}let Ci=function(){let d=new it;return function(S,T){d.setFromMatrixColumn(T,0),d.multiplyScalar(-S),c.add(d)}}(),Ai=function(){let d=new it;return function(S,T){e.screenSpacePanning===!0?d.setFromMatrixColumn(T,1):(d.setFromMatrixColumn(T,0),d.crossVectors(e.object.up,d)),d.multiplyScalar(S),c.add(d)}}(),Vt=function(){let d=new it;return function(S,T){let j=e.domElement;if(e.object.isPerspectiveCamera){let ct=e.object.position;d.copy(ct).sub(e.target);let ot=d.length();ot*=Math.tan(e.object.fov/2*Math.PI/180),Ci(2*S*ot/j.clientHeight,e.object.matrix),Ai(2*T*ot/j.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(Ci(S*(e.object.right-e.object.left)/e.object.zoom/j.clientWidth,e.object.matrix),Ai(T*(e.object.top-e.object.bottom)/e.object.zoom/j.clientHeight,e.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1)}}();function Cn(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l/=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function Ei(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l*=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function Si(d){if(!e.zoomToCursor)return;X=!0;let m=e.domElement.getBoundingClientRect(),S=d.clientX-m.left,T=d.clientY-m.top,j=m.width,ct=m.height;A.x=S/j*2-1,A.y=-(T/ct)*2+1,R.set(A.x,A.y,1).unproject(e.object).sub(e.object.position).normalize()}function An(d){return Math.max(e.minDistance,Math.min(e.maxDistance,d))}function Mi(d){h.set(d.clientX,d.clientY)}function Yo(d){Si(d),C.set(d.clientX,d.clientY)}function bi(d){g.set(d.clientX,d.clientY)}function Ko(d){p.set(d.clientX,d.clientY),f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let m=e.domElement;kt(2*Math.PI*f.x/m.clientHeight),Ht(2*Math.PI*f.y/m.clientHeight),h.copy(p),e.update()}function Jo(d){M.set(d.clientX,d.clientY),P.subVectors(M,C),P.y>0?Cn(Gt()):P.y<0&&Ei(Gt()),C.copy(M),e.update()}function Zo(d){_.set(d.clientX,d.clientY),x.subVectors(_,g).multiplyScalar(e.panSpeed),Vt(x.x,x.y),g.copy(_),e.update()}function ts(d){Si(d),d.deltaY<0?Ei(Gt()):d.deltaY>0&&Cn(Gt()),e.update()}function es(d){let m=!1;switch(d.code){case e.keys.UP:d.ctrlKey||d.metaKey||d.shiftKey?Ht(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):Vt(0,e.keyPanSpeed),m=!0;break;case e.keys.BOTTOM:d.ctrlKey||d.metaKey||d.shiftKey?Ht(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):Vt(0,-e.keyPanSpeed),m=!0;break;case e.keys.LEFT:d.ctrlKey||d.metaKey||d.shiftKey?kt(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):Vt(e.keyPanSpeed,0),m=!0;break;case e.keys.RIGHT:d.ctrlKey||d.metaKey||d.shiftKey?kt(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):Vt(-e.keyPanSpeed,0),m=!0;break}m&&(d.preventDefault(),e.update())}function wi(){if(v.length===1)h.set(v[0].pageX,v[0].pageY);else{let d=(v[0].pageX-v[0].pageY)/(v[1].pageX-v[1].pageY),m=v[0].pageY-d*v[0].pageX;e.rotateLineStart.set(d,m);let S=.5*(v[0].pageX+v[1].pageX),T=.5*(v[0].pageY+v[1].pageY);h.set(S,T)}}function Ti(){if(v.length===1)g.set(v[0].pageX,v[0].pageY);else{let d=.5*(v[0].pageX+v[1].pageX),m=.5*(v[0].pageY+v[1].pageY);g.set(d,m)}}function Ii(){let d=v[0].pageX-v[1].pageX,m=v[0].pageY-v[1].pageY,S=Math.sqrt(d*d+m*m);C.set(0,S)}function ns(){e.enableZoom&&Ii(),e.enablePan&&Ti()}function is(){e.enableZoom&&Ii(),e.enableRotate&&wi()}function Ri(d){if(v.length==1)p.set(d.pageX,d.pageY);else{let S=En(d),T=.5*(d.pageX+S.x),j=.5*(d.pageY+S.y);p.set(T,j);let ct=(d.pageY-S.y)/(d.pageX-S.x),ot=S.y-ct*S.x;if(e.rotateLineEnd.set(ct,ot),Number.isFinite(e.rotateLineEnd.x)&&Number.isFinite(e.rotateLineStart.x)){let Sn=(e.rotateLineStart.y-e.rotateLineEnd.y)/(e.rotateLineEnd.x-e.rotateLineStart.x),Mn=ct*Sn+ot;if(Number.isFinite(Sn)&&Number.isFinite(Mn)){let gt=Math.atan(e.rotateLineEnd.x)-Math.atan(e.rotateLineStart.x);Math.PI-Math.abs(gt)<.5&&(gt=-Math.sign(gt)*(Math.PI-Math.abs(gt))),Math.abs(gt)<.1&&(u.theta+=gt)}}e.rotateLineStart.copy(e.rotateLineEnd)}f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let m=e.domElement;Ht(2*Math.PI*f.y/m.clientHeight),h.copy(p)}function Pi(d){if(v.length===1)_.set(d.pageX,d.pageY);else{let m=En(d),S=.5*(d.pageX+m.x),T=.5*(d.pageY+m.y);_.set(S,T)}x.subVectors(_,g).multiplyScalar(e.panSpeed),Vt(x.x,x.y),g.copy(_)}function Li(d){let m=En(d),S=d.pageX-m.x,T=d.pageY-m.y,j=Math.sqrt(S*S+T*T);M.set(0,j),P.set(0,Math.pow(M.y/C.y,e.zoomSpeed)),Cn(P.y),C.copy(M)}function rs(d){e.enableZoom&&Li(d),e.enablePan&&Pi(d)}function os(d){e.enableZoom&&Li(d),e.enableRotate&&Ri(d)}this.onPointerDown=function(m){e.enabled!==!1&&(v.length===0&&(e.domElement.setPointerCapture(m.pointerId),e.domElement.addEventListener("pointermove",e.onPointerMove),e.domElement.addEventListener("pointerup",e.onPointerUp)),cs(m),m.pointerType==="touch"?us(m):ss(m))},this.onPointerMove=function(m){e.enabled!==!1&&(m.pointerType==="touch"?ls(m):as(m))},this.onPointerUp=function(m){hs(m),v.length===0&&(e.domElement.releasePointerCapture(m.pointerId),e.domElement.removeEventListener("pointermove",e.onPointerMove),e.domElement.removeEventListener("pointerup",e.onPointerUp)),e.dispatchEvent({type:"end"}),r=i.NONE};function ss(d){let m;switch(d.button){case 0:m=e.mouseButtons.LEFT;break;case 1:m=e.mouseButtons.MIDDLE;break;case 2:m=e.mouseButtons.RIGHT;break;default:m=-1}switch(m){case Jt.DOLLY:if(e.enableZoom===!1)return;Yo(d),r=i.DOLLY;break;case Jt.ROTATE:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enablePan===!1)return;bi(d),r=i.PAN}else{if(e.enableRotate===!1)return;Mi(d),r=i.ROTATE}break;case Jt.PAN:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enableRotate===!1)return;Mi(d),r=i.ROTATE}else{if(e.enablePan===!1)return;bi(d),r=i.PAN}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function as(d){switch(r){case i.ROTATE:if(e.enableRotate===!1)return;Ko(d);break;case i.DOLLY:if(e.enableZoom===!1)return;Jo(d);break;case i.PAN:if(e.enablePan===!1)return;Zo(d);break}}this.onMouseWheel=function(m){e.enabled===!1||e.enableZoom===!1||r!==i.NONE||(m.preventDefault(),e.dispatchEvent({type:"start"}),ts(m),e.dispatchEvent({type:"end"}))},this.onKeyDown=function(m){e.enabled===!1||e.enablePan===!1||es(m)};function us(d){switch(Bi(d),v.length){case 1:switch(e.touches.ONE){case Zt.ROTATE:if(e.enableRotate===!1)return;wi(),r=i.TOUCH_ROTATE;break;case Zt.PAN:if(e.enablePan===!1)return;Ti(),r=i.TOUCH_PAN;break;default:r=i.NONE}break;case 2:switch(e.touches.TWO){case Zt.DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;ns(),r=i.TOUCH_DOLLY_PAN;break;case Zt.DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;is(),r=i.TOUCH_DOLLY_ROTATE;break;default:r=i.NONE}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function ls(d){switch(Bi(d),r){case i.TOUCH_ROTATE:if(e.enableRotate===!1)return;Ri(d),e.update();break;case i.TOUCH_PAN:if(e.enablePan===!1)return;Pi(d),e.update();break;case i.TOUCH_DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;rs(d),e.update();break;case i.TOUCH_DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;os(d),e.update();break;default:r=i.NONE}}this.onContextMenu=function(m){e.enabled!==!1&&m.preventDefault()};function cs(d){v.push(d)}function hs(d){delete H[d.pointerId];for(let m=0;m<v.length;m++)if(v[m].pointerId==d.pointerId){v.splice(m,1);return}}function Bi(d){let m=H[d.pointerId];m===void 0&&(m=new q,H[d.pointerId]=m),m.set(d.pageX,d.pageY)}function En(d){let m=d.pointerId===v[0].pointerId?v[1]:v[0];return H[m.pointerId]}e.domElement.addEventListener("contextmenu",this.onContextMenu),e.domElement.addEventListener("pointerdown",this.onPointerDown),e.domElement.addEventListener("pointercancel",this.onPointerUp),e.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}};function qr(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function qn(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){qr(r,e,i,o,a,"next",u)}function a(u){qr(r,e,i,o,a,"throw",u)}o(void 0)})}}var Je=class extends Ye{registryEvent(){this.addEventListener("change",()=>{let t=this.camera.zoom;t!==this.prevCameraZoom&&(this.prevCameraZoom=t,this.dispatchEvent({type:"change-zoom",zoom:t}))}),this.context.addEventListener("update",this.tweenUpdate)}setPolarAngle(t,n=!1){let{maxPolarAngle:e,minPolarAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),r||(this.maxPolarAngle=e,this.minPolarAngle=i)}setPolarAngleByDuration(t,n=!1,e=500){var i=this;return qn(function*(){return e<=0?i.setPolarAngle(t,n):K(new Promise(r=>{let o={polar:i.getPolarAngle()},a={polar:t},u=new Ke(o,i.tweenGroup).to(a,e).onUpdate(()=>{i.setPolarAngle(o.polar,n)}).onComplete(()=>{i.enabled=!0,i.tweenGroup.remove(u),r(!0)}).onStart(()=>{i.enabled=!1}).start()}),e+500)})()}setAzimuthalAngle(t,n){let{maxAzimuthAngle:e,minAzimuthAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxAzimuthAngle=t,this.minAzimuthAngle=t,this.update()),r||(this.maxAzimuthAngle=e,this.minAzimuthAngle=i)}setAzimuthalAngleDuration(t,n=!1,e=500){return e<=0?this.setAzimuthalAngle(t,n):K(new Promise(i=>{let r={azimuthal:this.getAzimuthalAngle()},o={azimuthal:t},a=new Ke(r,this.tweenGroup).to(o,e).onUpdate(()=>{this.setAzimuthalAngle(r.azimuthal,n)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(a),i(!0)}).onStart(()=>{this.enabled=!1}).start()}),e+500)}getCameraLookAt(){return new Qr().subVectors(this.target,this.camera.position)}setCameraPositionByTarget(t,n){var e=this;return qn(function*(){let i=e.target.clone(),r=e.getCameraLookAt();if(!n){e.camera.position.copy(t.clone().sub(r)),e.target.copy(t.clone()),e.update();return}return K(new Promise(o=>{let a=new Ke(i,e.tweenGroup).to(t,n).onUpdate(()=>{e.camera.position.copy(i.clone().sub(r)),e.target.copy(i.clone()),e.update()}).onComplete(()=>{e.tweenGroup.remove(a),e.enabled=!0,o(!0)}).onStart(()=>{e.enabled=!1}).start()}),n+500)})()}setZoom(t,n,e=!1){let{minZoom:i,maxZoom:r}=this;(e||t>=i&&t<=r)&&(this.camera.position.copy(n.clone().sub(this.getCameraLookAt())),this.target.copy(n),this.camera.zoom=t,this.update())}setZoomByDuration(t,n,e=!1,i=500){var r=this;return qn(function*(){let o={zoom:r.camera.zoom,target:r.target.clone()};if(t!==r.camera.zoom)return i?K(new Promise(a=>{let u=new Ke(o,r.tweenGroup).to({zoom:t,target:n},i).onUpdate(()=>{r.setZoom(o.zoom,o.target,e)}).onComplete(()=>{r.tweenGroup.remove(u),r.enabled=!0,a(!0)}).onStart(()=>{r.enabled=!1}).start()}),i+500):r.setZoom(t,n,e)})()}setTargetByOffset(t,n=this.target.clone()){if(!t)return;this.camera.updateMatrix();let e=new Qr;e.setFromMatrixColumn(this.camera.matrix,1),e.normalize(),e.multiplyScalar(t/this.camera.zoom),n.add(e),this.setCameraPositionByTarget(n,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){super.dispose(),this.clearTween()}constructor(t,n,e){super(n,e),this.context=t,this.camera=n,this.domElement=e,this.prevCameraZoom=1,this.tweenGroup=new ju,this.offsetY=0,this.tweenUpdate=()=>{this.tweenGroup.update()},this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=n.zoom,this.registryEvent()}};import{EventDispatcher as Wu,PCFSoftShadowMap as qu,WebGLRenderer as Qu}from"three";function Qn(){return Qn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Qn.apply(this,arguments)}var Ze=class extends Qu{setCameraAndScene(t,n){this.scene=t,this.camera=n}autoRender(){this.scene&&this.camera&&this.enable&&(this.event.dispatchEvent({type:"update"}),this.render(this.scene,this.camera)),this.timer.requestAnimationFrame(()=>{this.autoRender()})}pauseRender(){this.enable=!1}continueRender(){this.enable=!0}addEventListener(t,n){this.event.addEventListener(t,n)}removeEventListener(t,n){this.event.removeEventListener(t,n)}dispose(){this.timer.dispose(),this.enable=!1,super.dispose()}constructor(t){super(Qn({antialias:!0,alpha:!0},t)),this.event=new Wu,this.enable=!0,this.timer=new D,this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.shadowMap.enabled=!0,this.shadowMap.autoUpdate=!0,this.shadowMap.type=qu}};import{Scene as Yu}from"three";var tn=class extends Yu{constructor(){super()}};import{OrthographicCamera as Ku}from"three";var en=class extends Ku{constructor(t,n){super(-t/2,t/2,n/2,-n/2,-1e4,5e4),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};function Yr(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ju(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Yr(r,e,i,o,a,"next",u)}function a(u){Yr(r,e,i,o,a,"throw",u)}o(void 0)})}}var nn=class extends Zu{resizeClientSize(){let{x:t,y:n,width:e,height:i}=this.container.getBoundingClientRect();this.clientSize={width:e||this.container.clientWidth,height:i||this.container.clientHeight,x:t,y:n}}init(){let{clientWidth:t,clientHeight:n}=this.container;this.camera=new en(t,n),this.renderer.setSize(t,n),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new Je(this,this.camera,this.renderer.domElement),this.control.maxPolarAngle=this.config.control.maxPolar,this.container.appendChild(this.renderer.domElement),this.scene.add(this.lights),this.basicRatio=this.getRatio(),this.control.addEventListener("change",()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})}),this.control.addEventListener("change-zoom",({zoom:e})=>{this.dispatchEvent({type:"control-zoom-change",zoom:e})}),this.renderer.addEventListener("update",()=>{this.dispatchEvent({type:"update"})}),this.cameraBound=new We(this)}getRatio(t=new Ot(0,0,0),n=new Ot(100,0,0)){let{clientWidth:e,clientHeight:i}=this.container,r=y(t,this.camera,e,i),o=y(n,this.camera,e,i);return Math.ceil(Math.sqrt((o.x-r.x)**2+(o.y-r.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(n=>{n instanceof r0&&(n.color=new i0(t))})}switchFloor(t){this.currentFloor&&(this.scene.remove(this.currentFloor),this.currentFloor.dispose()),this.currentFloor=t,this.scene.add(t);let n=t.getCenter();n&&(this.lights.position.x=n.x,this.lights.position.y=n.y),this.cameraBound.updateBox()}getGraphicsByDeviceXy(t,n){var e;let i=new te;i.x=t/this.clientSize.width*2-1,i.y=n/this.clientSize.height*-2+1;let r=new e0;return r.setFromCamera(i,this.camera),r.ray.origin.sub(r.ray.direction.clone().multiplyScalar(100)),((e=this.currentFloor)==null?void 0:e.graphicLayer.getGraphicByRaycaster(r))||{graphics:[],position:null}}getPoisByDeviceXy(t,n){var e,i;let r=(e=this.currentFloor)==null?void 0:e.poiLayer.getPoiByDeviceXy(t,n),o=(i=this.currentFloor)==null?void 0:i.poiLayer2.getPoiByDeviceXy(t,n);return(r||[]).concat(o||[])}registryEvent(){window.addEventListener("resize",this.onWindowResize),this.container.addEventListener("click",this.onClick),this.container.addEventListener("pointerover",this.onPointerover),this.container.addEventListener("pointermove",this.onPointermove),this.container.addEventListener("pointerleave",this.onPointerleave),this.container.addEventListener("pointercancel",this.onPointerleave),this.container.addEventListener("pointerout",this.onPointerleave),this.selection.addEventListener("select",this.onSelectionSelect),this.hoverHelper.addEventListener("hover-change",this.onHoverChange)}unRegistryEvent(){window.removeEventListener("resize",this.onWindowResize),this.container.removeEventListener("click",this.onClick),this.container.removeEventListener("pointerover",this.onPointerover),this.container.removeEventListener("pointermove",this.onPointermove),this.container.removeEventListener("pointerleave",this.onPointerleave),this.container.removeEventListener("pointercancel",this.onPointerleave),this.container.removeEventListener("pointerout",this.onPointerleave),this.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange)}setPolarAngle(t,n=500){return this.control.setPolarAngleByDuration(t,!0,n)}setAzimuthalAngle(t,n=500){return this.control.setAzimuthalAngleDuration(t,!0,n)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,n,e=500){return this.control.setZoomByDuration(t,n,!0,e)}getFitCameraToObjectZoom(t,n=[20,20,20,20],e=500,i=!0){let[r,o,a,u]=n,{clientSize:{width:l,height:c}}=this,h=this.control.getPolarAngle();i&&this.setPolarAngle(0,0);let p=new n0().setFromObject(t);this.setPolarAngle(h,0);let{max:f,min:g}=p,_=new Ot(g.x,f.y,f.z),x=new Ot(f.x,f.y,f.z),C=new Ot(f.x,g.y,g.z),M=new Ot(g.x,g.y,g.z),P=y(_,this.camera,l,c),R=y(x,this.camera,l,c),A=y(M,this.camera,l,c),X=y(C,this.camera,l,c),H=new t0().setFromPoints([new te(P.x,P.y),new te(R.x,R.y),new te(A.x,A.y),new te(X.x,X.y)]).getSize(new te),ne=(l-o-u)/H.x,Gt=(c-r-a)/H.y,kt=Math.min(ne,Gt),Ht=new Ot((f.x+g.x)/2,(f.y+g.y)/2,(f.z+g.z)/2);return{zoom:kt*this.camera.zoom,center:Ht}}fitCameraToObject(t,n=[20,20,20,20],e=500,i=!0){let{zoom:r,center:o}=this.getFitCameraToObjectZoom(t,n,e,i);return this.setZoom(r,o,e)}getFitCameraToGroundZoom(t=[20,20,20,20],n=500,e=!0){if(this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,n,e).zoom}fitCameraToGround(t=[20,20,20,20],n=500,e=!0){return this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundLayer,t,n,e):Promise.resolve(!1)}setCameraPosition(t,n){var e=this;return Ju(function*(){return e.control.setCameraPositionByTarget(t,n)})()}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}dispose(){this.control.dispose(),this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.unRegistryEvent(),this.renderer.domElement.remove(),this.renderer.dispose(),this.lights.children.forEach(t=>t.dispose()),U(this.scene)}constructor(t,n){super(),this.container=t,this.config=n,this.scene=new tn,this.renderer=new Ze,this.lights=Di(),this.clientSize={width:0,height:0,x:0,y:0},this.renderRf=0,this.onWindowResize=()=>{let{container:e,camera:i,renderer:r}=this,{clientWidth:o,clientHeight:a}=e;o=Math.max(1,o),a=Math.max(1,a),i.left=-o/2,i.right=o/2,i.top=a/2,i.bottom=-a/2,i.updateProjectionMatrix(),r.setSize(o,a),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:o,height:a})},this.onClick=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY);i.length&&this.dispatchEvent({type:"graphic-click",graphics:i,position:r});let o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);o.length&&this.dispatchEvent({type:"poi-click",pois:o})},this.onPointerover=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-over",e,graphics:i,pois:o,position:r})},this.onPointermove=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-move",e,graphics:i,pois:o,position:r})},this.onPointerleave=e=>{this.dispatchEvent({type:"pointer-level"})},this.onSelectionSelect=({graphics:e,isMultipleSelect:i})=>{this.dispatchEvent({type:"select-graphic",graphics:e,isMultipleSelect:i})},this.onHoverChange=({graphics:e})=>{this.dispatchEvent({type:"hover",graphics:e})},this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new Ve(this),this.hoverHelper=new Xe(this),this.resizeClientSize(),this.registryEvent()}};import{merge as o0}from"lodash";var s0={apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get",equipmentList:"/api/inception-map/equipment/get",roadNetwork:"/api/inception-map/road_network/get"},enableBoxSelect:!0,resizeObserver:!1,initTransToMark:!1,heatMap:{radius:50,gradient:{0:"#8F9FCD",.5:"#6284FF",1:"#F95D5D"}},useFloorCache:!0,control:{maxPolar:1.2,defaultPolar:1.1,defaultAzimuthal:0},defaultPadding:[20,20,20,20],svg:{circle:{radius:"2",fill:"#1CADFF"},line:{stroke:"#1CADFF"}},selectBox:{stroke:"#1CADFF",fill:"rgba(28, 173, 255, 0.3)"},hover:{time:100},ground:{color:"#F6F6F6",opacity:1,height:.001,stroke:!1,strokeColor:"#E6E6E6",strokeOpacity:1},markGraphic:{color:"#EEF0F3",opacity:1,height:.001,stroke:!1,strokeColor:"#000",strokeOpacity:1},graphic:{fillOpacity:1},cameraBound:{padding:[150,150,150,150]},poi:{boxScale:1}};function Kr(s){return o0({},s0,s)}import{debounce as l0}from"lodash";function Jr(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Yn(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Jr(r,e,i,o,a,"next",u)}function a(u){Jr(r,e,i,o,a,"throw",u)}o(void 0)})}}function rn(){return rn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},rn.apply(this,arguments)}var Gf=function(s){return s[s.D2=0]="D2",s[s.D3=1.1]="D3",s}({}),Zr=class extends a0{changeBuildingCenter(t,{brand:n,project:e}){let i=t?ye(t.info.geometry.cds[0]):[0,0];this.buildingCenter=i,this.dispatchEvent({type:"center-change",center:i,project:e,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(n=>n!==t)}triggerHooks(t,n){this.dispatchEvent({type:t,data:n})}switchFloorByFloor(t,n=t.graphicLayer.children){this.triggerHooks(G.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:n}),this.context.switchFloor(t),this.initialFloorCamera(),this.triggerHooks(G.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:n})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(void 0,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*30,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}addModel(t,n){if(t.options.geometry.type==="polygon"){var e;let i=(e=this.context.currentFloor)==null?void 0:e.addModel(rn({},n,{position:t.getPosition().setZ(.1),id:t.options.id}));if(i){let{facilityAngle:r=0,facilityXScale:o=1,facilityYScale:a=1}=t.options.userData;i.rotateZ((180-r)/180*Math.PI),i.scale.set(o,a,1)}}}addHeatmap(t){var n;return(n=this.context.currentFloor)==null?void 0:n.addHeatmap(t)}getLegacyToGraphicMap(){var t;return((t=this.context.currentFloor)==null?void 0:t.userData.legacyToGraphicMap)||new Map}getFloorAllGraphics(){var t;return((t=this.context.currentFloor)==null?void 0:t.graphicLayer.children.filter(n=>n instanceof B))||[]}createGraphicPoi(t,n){if(this.context.currentFloor){n.id===void 0&&(n.id=t.options.id);let e=t.options.center,i=t.getCenter(),r=(e==null?void 0:e[0])||i.x,o=(e==null?void 0:e[1])||i.y;return console.log(r,o,e,i),this.context.currentFloor.addPoi(rn({},n,{position:{x:r,y:o,z:i.z+t.options.height/2}}))}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,n=500){let e=t.getPosition();return this.context.setCameraPosition(e,n)}translateElementToCenterX(t,n=500){var e=this;return Yn(function*(){return K(new Promise(i=>{let r=e.context.control.target.clone(),o=t.getPosition();e.timer.requestAnimationFrame(()=>{let{clientSize:{width:a,height:u},camera:l}=e.context,h=y(o,l,a,u).x-a/2,p=new u0;p.setFromMatrixColumn(e.context.camera.matrix,0),p.normalize(),p.multiplyScalar(h/e.context.camera.zoom),r.add(p),e.context.setCameraPosition(r,n).then(i)})}),n+500)})()}getElementDeviceCoordinate(t){let n=t.position.clone(),{clientWidth:e,clientHeight:i}=this.container;return y(n,this.context.camera,e,i)}changeMapType(t,n=500){return this.type=t,t==="2d"?this.context.setPolarAngle(0,n):this.context.setPolarAngle(1.1,n)}resetView(t=300){var n=this;return Yn(function*(){let e=t/3;yield n.context.setAzimuthalAngle(n.config.control.defaultAzimuthal,e),yield n.context.setPolarAngle(n.config.control.defaultPolar,e),yield n.context.fitCameraToGround(n.config.defaultPadding,e,!1)})()}reduceMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e-t,this.context.control.target,n)}enlargeMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e+t,this.context.control.target,n)}registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver(l0(this.resize,5));t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t=.1){let n=this.context.control.getAzimuthalAngle();this.context.setAzimuthalAngle(n+t,500)}measureDistance(){var t=this;return Yn(function*(){return t.cancelDistance(),new Promise((n,e)=>{t.changeMapType("2d",0),t.context.control.enableRotate=!1,t.svgLine=new Ne(t.context);let i=t.svgLine.dispose.bind(t.svgLine);t.svgLine.dispose=function(){i(),e("cancel")},t.svgLine.addEventListener("distance",({distance:r})=>{n(r)})})})()}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,n)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new Oe(this.context);let e=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){e(),n("cancel")},this.svgPolygon.addEventListener("area",({area:i})=>{t(i)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){var n;return((n=this.context.currentFloor)==null?void 0:n.graphicLayer.getGraphicByNodeId(t))||null}deleteGraphic(t){var n;(n=this.context.currentFloor)==null||n.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var n;if(!t.transformToBuildingGround&&this.currentBuildGround){let e=ye(this.currentBuildGround.info.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(r=>{r[0]-=e[0],r[1]-=e[1]})});else{let[i,r]=t.geometry.cds;t.geometry.coords=[i-e[0],r-e[1]]}}return(n=this.context.currentFloor)==null?void 0:n.graphicLayer.createGraphic(t)}removePoiById(t){var n,e;(n=this.context.currentFloor)==null||n.poiLayer.removePoiById(t),(e=this.context.currentFloor)==null||e.poiLayer2.removePoiById(t)}getPoiById(t){var n,e;return((n=this.context.currentFloor)==null?void 0:n.poiLayer.getPoiById(t))||((e=this.context.currentFloor)==null?void 0:e.poiLayer2.getPoiById(t))}getPois(){var t,n;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(e=>!e.options.built_in),...((n=this.context.currentFloor)==null?void 0:n.poiLayer2.pois)||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.context.dispose(),this.unRegistryEvent(),W.dispose(),dt.dispose(),bt.dispose(),tt.dispose(),w.dispose()}constructor(t,n={}){super(),this.container=t,this.polarKeys=[],this.azimuthalKeys=[],this.basicZoom=1,this.prevCameraZoom=1,this.type="2d",this.currentBuildGround=null,this.observe=null,this.buildingCenter=[0,0],this.timer=new D,this.plugins=[],this.onControlChange=()=>{let{camera:{zoom:e}}=this.context;e!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=e)},this.onKeydown=e=>{this.polarKeys.includes(e.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(e.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=e=>{if(this.polarKeys.includes(e.code)){let i=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=i,this.context.control.minPolarAngle=i}if(this.azimuthalKeys.includes(e.code)){let i=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=i,this.context.control.minAzimuthAngle=i}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let e=this.context.control.getAzimuthalAngle(),i=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let r=this.context.getFitCameraToGroundZoom(void 0,0)||1;this.context.camera.zoom=i,this.context.control.minZoom=r,this.context.control.maxZoom=r*25,this.basicZoom=i,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(e,0),this.context.cameraBound.setEnable(!0)},this.config=Kr(n),this.context=new nn(t,this.config),this.registryEvent()}};import{EventDispatcher as c0}from"three";var rt=class extends c0{dispose(){}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};function to(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function h0(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){to(r,e,i,o,a,"next",u)}function a(u){to(r,e,i,o,a,"throw",u)}o(void 0)})}}var eo=class extends rt{fetchEquipment(){var t=this;return h0(function*(){let{apiDomain:n,apiPath:{equipmentList:e},apiInfo:i}=t.bmap.config,r=`${n}${e}`;yield fetch(r,i).then(o=>o.json()).then(o=>o.data).then(o=>{t.equipmentList=o,t.equipmentMap=new Map(o.map(a=>[a.equipment_id,a]))}),t.dispatchEvent({type:"change-equipment-list",data:t.equipmentList}),t.bmap.context.currentFloor&&t.changeGraphicToEquipment(t.bmap.context.currentFloor.graphicLayer.children)})()}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(n=>{let e=this.getGraphicEquipment(n);return e&&this.equipmentMap.has(e)}).forEach(n=>{let e=this.equipmentMap.get(this.getGraphicEquipment(n)),i=this.bmap.createGraphicPoi(n,{icon:e==null?void 0:e.equipment_icon,built_in:!0,icon_size:[14,14]});i&&(i.userData.data=e,i.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(G.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(n=>{if(n.userData.type==="equipment"){var e;(e=this.bmap.context.currentFloor)==null||e.poiLayer.removePoi(n)}})}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=({data:{graphics:n}})=>{this.equipmentList.length&&this.changeGraphicToEquipment(n)},this.fetchEquipment(),this.bmap.addEventListener(G.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};import{Mesh as C0,Object3D as A0,TextureLoader as E0,Color as S0,Vector2 as Jn,Vector3 as M0,NormalBlending as b0,RepeatWrapping as w0}from"three";import{BufferGeometry as p0,Matrix4 as io,Vector3 as Dt,Ray as f0,Sphere as d0,LineSegments as g0,BufferAttribute as Tt,ShaderChunk as Q,ShaderMaterial as ro,UniformsLib as m0,Color as _0,Vector2 as no}from"three";var k=class extends p0{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new io,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(t){this.setGeometry(t,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(t){this.setPoints(t,this.widthCallback)}}})}};k.prototype.setMatrixWorld=function(s){this.matrixWorld=s};k.prototype.setGeometry=function(s,t){this._geometry=s,this.setPoints(s.getAttribute("position").array,t)};k.prototype.setPoints=function(s,t){if(!(s instanceof Float32Array)&&!(s instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=s,this.widthCallback=t,this.positions=[],this.counters=[],s.length&&s[0]instanceof Dt)for(var n=0;n<s.length;n++){var e=s[n],i=n/s.length;this.positions.push(e.x,e.y,e.z),this.positions.push(e.x,e.y,e.z),this.counters.push(i),this.counters.push(i)}else for(var n=0;n<s.length;n+=3){var i=n/s.length;this.positions.push(s[n],s[n+1],s[n+2]),this.positions.push(s[n],s[n+1],s[n+2]),this.counters.push(i),this.counters.push(i)}this.process()};function y0(s,t){var n=new io,e=new f0,i=new d0,r=new Dt,o=this.geometry;if(o.boundingSphere||o.computeBoundingSphere(),i.copy(o.boundingSphere),i.applyMatrix4(this.matrixWorld),s.ray.intersectSphere(i,r)!==!1){n.copy(this.matrixWorld).invert(),e.copy(s.ray).applyMatrix4(n);var a=new Dt,u=new Dt,l=new Dt,c=this instanceof g0?2:1,h=o.index,p=o.attributes;if(h!==null)for(var f=h.array,g=p.position.array,_=p.width.array,x=0,C=f.length-1;x<C;x+=c){var M=f[x],P=f[x+1];a.fromArray(g,M*3),u.fromArray(g,P*3);var R=_[Math.floor(x/3)]!==void 0?_[Math.floor(x/3)]:1,A=s.params.Line.threshold+this.material.lineWidth*R/2,X=A*A,v=e.distanceSqToSegment(a,u,r,l);if(!(v>X)){r.applyMatrix4(this.matrixWorld);var H=s.ray.origin.distanceTo(r);H<s.near||H>s.far||(t.push({distance:H,point:l.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this}),x=C)}}}}k.prototype.raycast=y0;k.prototype.compareV3=function(s,t){var n=s*6,e=t*6;return this.positions[n]===this.positions[e]&&this.positions[n+1]===this.positions[e+1]&&this.positions[n+2]===this.positions[e+2]};k.prototype.copyV3=function(s){var t=s*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};k.prototype.getDistance=function(s){let t=0;for(let n=0;n<s;n++){let e=6*n,i=new Dt(this.positions[e],this.positions[e+1],this.positions[e+2]),r=new Dt(this.positions[e+6],this.positions[e+7],this.positions[e+8]),o=i.distanceTo(r);t+=o}return t};k.prototype.process=function(){var s=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let n=this.getDistance(s-1);var e;this.compareV3(0,s-1)?e=this.copyV3(s-2):e=this.copyV3(0),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);for(var i=0;i<s;i++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(i/(s-1)):t=1,this.width.push(t),this.width.push(t),i===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(i===s-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let o=this.getDistance(i)/n;this.uvs.push(o,0),this.uvs.push(o,1)}if(i<s-1){e=this.copyV3(i),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);var r=i*2;this.indices_array.push(r,r+1,r+2),this.indices_array.push(r+2,r+1,r+3)}i>0&&(e=this.copyV3(i),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]))}this.compareV3(s-1,0)?e=this.copyV3(1):e=this.copyV3(s-1),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new Tt(new Float32Array(this.positions),3),previous:new Tt(new Float32Array(this.previous),3),next:new Tt(new Float32Array(this.next),3),side:new Tt(new Float32Array(this.side),1),width:new Tt(new Float32Array(this.width),1),uv:new Tt(new Float32Array(this.uvs),2),index:new Tt(new Uint16Array(this.indices_array),1),counters:new Tt(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function Kn(s,t,n,e,i){var r;if(s=s.subarray||s.slice?s:s.buffer,n=n.subarray||n.slice?n:n.buffer,s=t?s.subarray?s.subarray(t,i&&t+i):s.slice(t,i&&t+i):s,n.set)n.set(s,e);else for(r=0;r<s.length;r++)n[r+e]=s[r];return n}k.prototype.advance=function(s){var t=this._attributes.position.array,n=this._attributes.previous.array,e=this._attributes.next.array,i=t.length;Kn(t,0,n,0,i),Kn(t,6,t,0,i-6),t[i-6]=s.x,t[i-5]=s.y,t[i-4]=s.z,t[i-3]=s.x,t[i-2]=s.y,t[i-1]=s.z,Kn(t,6,e,0,i-6),e[i-6]=s.x,e[i-5]=s.y,e[i-4]=s.z,e[i-3]=s.x,e[i-2]=s.y,e[i-1]=s.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};Q.meshline_vert=["",Q.logdepthbuf_pars_vertex,Q.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",Q.logdepthbuf_vertex,Q.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",Q.fog_vertex,"}"].join(`
103
+ `,e=-1/0,i=this.geometry.getAttribute("position");if(i)for(let o=0;o<i.count;o++){let a=i.getZ(o);a>e&&(e=a)}let r=new Eu({uniforms:{maxZ:{value:e},uColor:{value:new zr(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new zr(vt(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:n,transparent:!0});this.material=r}initLineMaterial(){let t=w.createLineMaterial({color:this.options[0].strokeColor,opacity:this.options[0].strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new xu(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],n=this.options[0].height+this.options[0].deltaHeight;return this.options.map(e=>{let{coords:i}=e.geometry;for(let r=0;r<i.length;r++){let o=i[r];for(let a=0;a<o.length;a++){let u=o[a],l=a+1===o.length?o[0]:o[a+1];t.push(new $r(u[0],u[1],n)),t.push(new $r(l[0],l[1],n))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),n=new Cu().setFromPoints(t);this.lineGeometry=n}createBorder(){this.line&&this.remove(this.line);let t=new Au(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t;this.geometry.dispose(),this.material.dispose(),(t=this.line)==null||t.geometry.dispose(),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>Hn({},Dn,e)),this.init()}};import{Box2 as Vn,Object3D as Mu,Sprite as kr,SpriteMaterial as Hr,Vector2 as Ge}from"three";import{cloneDeep as bu}from"lodash";function Gr(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function ze(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Gr(r,e,i,o,a,"next",u)}function a(u){Gr(r,e,i,o,a,"throw",u)}o(void 0)})}}function Xn(){return Xn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Xn.apply(this,arguments)}var wu={text:"",icon:"",icon_size:[22,22],level:1,collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},text_font_size:14,icon_rotate:0,depth_test:!1},N=class extends Mu{get durIconAndText(){return this.options.icon&&this.options.text?2:0}get offset(){return this.options.icon&&this.options.text?0:.5}get iconWidth(){return this.options.icon?this.options.icon_size[0]:0}get iconHeight(){return this.options.icon?this.options.icon_size[1]:0}get textWidth(){return this.options.text?this.options.text_font_size*this.textAspect:0}get textHeight(){return this.options.text?this.options.text_font_size:0}get deltaZ(){return!this.options.icon&&this.options.text?.1+this.offset*(this.iconHeight+this.durIconAndText+this.textHeight)/this.context.camera.zoom:.1}get canSelect(){return this.visible&&(this.spriteIcon?this.spriteIcon.visible:!0)&&(this.spriteText?this.spriteText.visible:!0)}registryEvent(){this.context.addEventListener("control-zoom-change",this._initScale);var t=this;this.addEventListener("change-icon",ze(function*({value:n}){t._initIconPromise&&(yield t._initIconPromise),t.spriteIcon&&(t.remove(t.spriteIcon),t.spriteIcon=void 0),yield t.initIcon(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})),this.addEventListener("change-text",({value:n})=>{this.spriteText&&(this.remove(this.spriteText),this.spriteText=void 0),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-icon_rotate",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.rotation=n/180*Math.PI)}),this.addEventListener("change-icon_size",({value:n})=>{this.spriteIcon&&this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-depth_test",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.depthTest=n),this.spriteText&&(this.spriteText.material.depthTest=n)})}unRegistryEvent(){this.context.removeEventListener("control-zoom-change",this._initScale)}getPosition(){return this.position}initIcon(){var t=this;return ze(function*(){if(t.options.icon)return t._initIconPromise=new Promise(ze(function*(n){let e=yield dt.getTextureByUrl(t.options.icon),i=new kr(new Hr({map:e,transparent:!0,alphaTest:.2,depthTest:t.options.depth_test,rotation:t.options.icon_rotate/180*Math.PI}));i.visible=!1,i.renderOrder=1e5+t.options.level,e.needsUpdate=!0,t.add(i),t.spriteIcon=i,n(i)})).then(()=>{t._initIconPromise=null})})()}initText(){if(this.options.text){let t=W.getTextureByText(this.options.text);this.textAspect=t.image.width/t.image.height;let n=new kr(new Hr({map:t,transparent:!0,alphaTest:.2,depthTest:this.options.depth_test}));n.visible=!1,n.renderOrder=100001+this.options.level,t.needsUpdate=!0,this.spriteText=n,this.add(n)}}initSize(){var t,n;let e=0,i=0,{icon:r,text:o}=this.options;r?o?(e=0,i=e*(this.iconHeight/this.textHeight)-this.iconHeight/this.textHeight-this.durIconAndText/this.textHeight):(e=.5,i=0):o?(i=.5,e=0):(e=0,i=0),(t=this.spriteIcon)==null||t.center.set(.5,e),(n=this.spriteText)==null||n.center.set(.5,i)}init(){var t=this;return ze(function*(){yield t.initIcon(),t.initText(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})()}resetZ(){let t=this.deltaZ;this.spriteIcon&&(this.spriteIcon.position.z=t),this.spriteText&&(this.spriteText.position.z=t)}getBox(t){let{clientSize:{width:n,height:e}}=this.context,i=n*(t.x+1)/2,r=e*(-t.y+1)/2;r+=this.offset*(this.iconHeight+this.durIconAndText+this.textHeight);let o=this.iconWidth/2,a=new Vn(new Ge(i-o,r-this.iconHeight),new Ge(i+o,r)),u=this.textWidth/2,l=new Vn(new Ge(i-u,r-this.textHeight-this.durIconAndText-this.iconHeight),new Ge(i+u,r-this.iconHeight-this.durIconAndText));return this.box=l.union(a),this.box}renderBoxHelper(t,n){if(!this.boxHelper){let e=document.createElement("div");e.style.position="absolute",e.style.zIndex="999",e.style.border="1px solid red",e.style.pointerEvents="none",this.boxHelper=e,this.context.container.appendChild(e)}t&&n?(this.boxHelper.style.left=t+"px",this.boxHelper.style.top=n+"px",this.boxHelper.style.width="2px",this.boxHelper.style.height="2px"):(this.boxHelper.style.left=this.box.min.x+"px",this.boxHelper.style.top=this.box.min.y+"px",this.boxHelper.style.width=this.box.max.x-this.box.min.x+"px",this.boxHelper.style.height=this.box.max.y-this.box.min.y+"px")}parentSetVisible(t){this.spriteText&&(this.spriteText.visible=t),this.spriteIcon&&(this.spriteIcon.visible=t),this.boxHelper&&(this.boxHelper.style.display=t?"block":"none")}dispose(){this.clear(),this.unRegistryEvent(),this.spriteText=void 0,this.spriteIcon=void 0}constructor(t,n){super(),this.context=t,this.textAspect=1,this.box=new Vn,this._initIconPromise=null,this._initScale=({zoom:e})=>{if(this.spriteText){let r=this.textHeight/e;this.spriteText.scale.set(this.textAspect*r,r,.1)}if(this.spriteIcon){var i;(i=this.spriteIcon)==null||i.scale.set(this.options.icon_size[0]/e,this.options.icon_size[1]/e,.1)}this.resetZ()},this.options=Xt(bu(Xn({},wu,n)),this),this.position.set(this.options.position.x,this.options.position.y,this.options.position.z),this.registryEvent(),this.init()}};import{DoubleSide as Iu,Matrix4 as Xr,Mesh as Ru,MeshBasicMaterial as Pu,Object3D as Lu,PlaneGeometry as Bu}from"three";import{mergeGeometries as Nu}from"three/examples/jsm/utils/BufferGeometryUtils";function Vr(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Tu(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Vr(r,e,i,o,a,"next",u)}function a(u){Vr(r,e,i,o,a,"throw",u)}o(void 0)})}}function jn(){return jn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},jn.apply(this,arguments)}var Ou={airHeight:0,deltaHeight:0,height:0,geometry:{cds:[],type:"polygon",coords:[],curveCpt:[],curveIndex:[]},texts:[],fillColor:"#ffffff",fillOpacity:0,strokeColor:"#ffffff",strokeOpacity:0,secondHeight:0,secondRotate:0,center_x:0,center_y:0},ke=class extends Lu{init(){var t=this;return Tu(function*(){let n=t.options.map(a=>W.getTextureByText(a.texts[0],{fillStyle:Tn(a.fillColor,a.fillOpacity),strokeStyle:Tn(a.strokeColor,a.strokeOpacity),lineWidth:6,font:"54px sans-serif"})),e=n.map((a,u)=>{let l=t.options[u],{width:c,height:h}=a.image,p=c/h,f=l.secondHeight*p,g=new Bu(f,l.secondHeight),_=new Xr().makeTranslation(l.center_x,l.center_y,l.airHeight+l.deltaHeight+l.height).multiply(new Xr().makeRotationZ(l.secondRotate));return g.applyMatrix4(_),g}),i=Nu(e,!0);e.forEach(a=>a.dispose());let r=n.map(a=>{let u=new Pu({map:a,alphaTest:1,side:Iu});return a.needsUpdate=!0,u}),o=new Ru(i,r);t.mesh=o,t.position.z+=.04,t.add(o)})()}dispose(){var t,n;(t=this.mesh)==null||t.geometry.dispose(),((n=this.mesh)==null?void 0:n.material).forEach(e=>e.dispose()),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>jn({},Ou,e)),this.init()}};import{Frustum as Du}from"three";function Wn(){return Wn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Wn.apply(this,arguments)}var He=class extends nt{setEnable(t){super.setEnable(t),z(this.rect,0,0,0,0),t?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:n,container:{clientWidth:e,clientHeight:i}}}=this,r=y(this.startPoint,n,e,i),o=y(this.endPoint,n,e,i),a={x:Math.min(r.x,o.x),y:Math.min(r.y,o.y)},u={x:Math.max(r.x,o.x),y:Math.max(r.y,o.y)},l=this.searchMapInFrustum(a,u);this.dispatchEvent({type:"selected",list:l})}}searchMapInFrustum(t,n){var e;let{context:i}=this;return((e=i.currentFloor)==null?void 0:e.graphicLayer.children.filter(r=>r instanceof B&&this.searchChildInFrustum(r,t,n)))||[]}searchChildInFrustum(t,n,e){let{context:{camera:i,container:{clientWidth:r,clientHeight:o}}}=this;if(!t)return!1;if(!t.mesh){let p=t.getPosition();if(p){let f=y(p,i,r,o);return Et(f,n,e)}return!1}t.mesh.geometry.boundingBox||t.mesh.geometry.computeBoundingBox();let a=t.mesh.geometry.boundingBox;if(!a)return!1;let{min:u,max:l}=a,c=y(u,i,r,o),h=y(l,i,r,o);return!(!Et(c,n,e)||!Et(h,n,e))}dispose(){this.unRegistryEvent()}constructor(t){super(t),this.frustum=new Du,this.onPointerDown=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.startPoint=r),this.endPoint=void 0},this.onPointerMove=i=>{if(!this.enable||!this.startPoint)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r)},this.onPointerUp=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r),this.doSelect(),this.startPoint=void 0},this.onUpdate=()=>{if(this.startPoint){let i=this.getSvgCoordinate(this.startPoint),r=Wn({},i);this.endPoint&&(r=this.getSvgCoordinate(this.endPoint));let o={x:Math.min(i.x,r.x),y:Math.min(i.y,r.y)},a=Math.abs(r.x-i.x),u=Math.abs(r.y-i.y);z(this.rect,o.x,o.y,a,u)}else z(this.rect,0,0,0,0)};let{config:{selectBox:{fill:n,stroke:e}}}=t;this.rect=Mt(e,n),this.svg.appendChild(this.rect),this.registryEvent()}};var Ve=class extends Uu{get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.context.config.enableBoxSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}constructor(t){super(),this.context=t,this._list=new Set,this.downPoint=null,this.isMultipleSelect=!1,this.onPointerDown=n=>{this.downPoint={x:n.offsetX,y:n.offsetY}},this.onPointerUp=n=>{if(!this.downPoint)return;let{offsetX:e,offsetY:i}=n,{x:r,y:o}=this.downPoint;if(Math.sqrt((r-e)**2+(o-i)**2)>3)return;let{graphics:a}=this.context.getGraphicsByDeviceXy(e,i),u=new Set(a.map(c=>c.options.id));this.context.getPoisByDeviceXy(e,i).forEach(c=>{if(!u.has(c.options.id)){var h;let p=((h=this.context.currentFloor)==null?void 0:h.graphicLayer.graphicMap.get(c.options.id))||null;p&&p.options.geometry.type==="point"&&(a.push(p),u.add(c.options.id))}}),(jt?n.metaKey:n.ctrlKey)||this._list.clear(),a.forEach(c=>this._list.add(c)),this.selectEnd(),this.downPoint=null},this.onPointerOut=n=>{this.disableBoxSelection()},this.onKeyDown=n=>{Wt(n.key)&&this.enableBoxSelection()},this.onKeyUp=n=>{Wt(n.key)&&this.disableBoxSelection()},this.onBoxSelected=({list:n})=>{this._list.clear(),n.forEach(e=>{this._list.add(e)}),this.selectEnd()},this.boxSelection=new He(t),this.boxSelection.setEnable(!1),this.registryEvent()}};import{EventDispatcher as Fu,Vector2 as $u}from"three";var Xe=class extends Fu{handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel),document.body.addEventListener("pointermove",this.onBodyPointerMove)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel),document.body.removeEventListener("pointermove",this.onBodyPointerMove)}dispose(){this.unRegistryEvent(),this.timer.dispose()}constructor(t){super(),this.context=t,this.curGraphics=new Set,this.timer=new D,this.graphicTimerMap=new Map,this.onPointerMove=({graphics:n,pois:e,e:i})=>{let r=e.map(l=>{var c;return(c=this.context.currentFloor)==null?void 0:c.graphicLayer.graphicMap.get(l.options.id)}).filter(l=>l&&l.options.geometry.type==="point");if(!n.length&&!r.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:o}=this.context.config.hover,a=new Set;if(r.length){let l,c=1e4;r.forEach(h=>{let p=e.find(f=>f.options.id===h.options.id);if(p instanceof Nt){let{x:f,y:g}=p.clientPos,_=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);_<c&&(c=_,l=h)}else if(p instanceof N){let{x:f,y:g}=p.box.getCenter(new $u),_=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);_<c&&(c=_,l=h)}}),a.add(l)}a.size||n.forEach(l=>a.add(l)),a.forEach(l=>{if(this.graphicTimerMap.get(l)||this.curGraphics.has(l))return;let c=this.timer.setTimeout(()=>{this.curGraphics.add(l),this.graphicTimerMap.delete(l),this.timer.clearTimeout(c),this.handleHoverGraphicsChange()},o);this.graphicTimerMap.set(l,c)}),this.graphicTimerMap.forEach((l,c)=>{a.has(c)||(this.timer.clearTimeout(l),this.graphicTimerMap.delete(c))});let u=this.curGraphics.size;this.curGraphics.forEach(l=>{a.has(l)||this.curGraphics.delete(l)}),u!==this.curGraphics.size&&this.handleHoverGraphicsChange()},this.onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()},this.onBodyPointerMove=n=>{if(this.curGraphics.size){let e=this.context.container.getBoundingClientRect();(n.clientX<e.left||n.clientX>e.right||n.clientY<e.top||n.clientY>e.bottom)&&this.onPointerLevel()}},this.registryEvent()}};import{Box3 as zu,Vector3 as je}from"three";var We=class{updateBox(){this.box.setFromObject(this.context.scene)}setEnable(t){this.enable=t,t?this.registryEvent():this.unRegistryEvent()}changePrevCamera(){this.prevCamera={position:this.context.camera.position.clone(),zoom:this.context.camera.zoom,target:this.context.control.target.clone()}}backToPrevCamera(){this.setEnable(!1),this.context.camera.position.copy(this.prevCamera.position),this.context.camera.zoom=this.prevCamera.zoom,this.context.control.target.copy(this.prevCamera.target),this.context.control.update(),this.setEnable(!0)}registryEvent(){this.context.addEventListener("control-change",this.onCameraChange)}unRegistryEvent(){this.context.removeEventListener("control-change",this.onCameraChange)}getCurFloorScreenPosition(){if(!this.context.scene.children.filter(x=>x instanceof et).length)return null;let n=this.box,{camera:e,clientSize:{width:i,height:r}}=this.context,{min:o,max:a}=n,u=y(o,e,i,r),l=y(a,e,i,r),c=y(new je(o.x,a.y,a.z),e,i,r),h=y(new je(a.x,o.y,o.z),e,i,r),p=Math.min(u.x,l.x,c.x,h.x),f=Math.max(u.x,l.x,c.x,h.x),g=Math.min(u.y,l.y,c.y,h.y),_=Math.max(u.y,l.y,c.y,h.y);return{left:p,right:f,top:g,bottom:_}}checkDistanceToScreenEdge({left:t,right:n,top:e,bottom:i}){let{width:r,height:o}=this.context.clientSize,[a,u,l,c]=this.context.config.cameraBound.padding,h=n>=c,p=r-t>=u,f=o-e>=l,g=i>=a;return h&&p&&f&&g}dispose(){this.unRegistryEvent()}constructor(t){this.context=t,this.prevCamera={position:new je,zoom:1,target:new je},this.enable=!0,this.box=new zu,this.onCameraChange=()=>{let n=this.getCurFloorScreenPosition();if(n){let{left:e,right:i,top:r,bottom:o}=n;this.checkDistanceToScreenEdge({left:e,right:i,top:r,bottom:o})?this.changePrevCamera():this.backToPrevCamera()}},this.registryEvent(),this.changePrevCamera()}};import{Vector3 as Qr}from"three";import{Tween as Ke,Group as ju}from"@tweenjs/tween.js";import{EventDispatcher as Gu,MOUSE as Jt,Quaternion as jr,Spherical as qe,TOUCH as Zt,Vector2 as q,Vector3 as it,Plane as ku,Ray as Hu,MathUtils as Vu}from"three";var Qe=new Hu,Wr=new ku,Xu=Math.cos(70*Vu.DEG2RAD),Ye=class extends Gu{dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerUp),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null)}constructor(t,n){super(),this.rotateLineStart=new q,this.rotateLineEnd=new q,this.spherical=new qe,this.sphericalDelta=new qe,this.object=t,this.domElement=n,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new it,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.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.screenSpacePanning=!1,this.mouseButtons={LEFT:Jt.PAN,MIDDLE:Jt.DOLLY,RIGHT:Jt.ROTATE},this.touches={ONE:Zt.PAN,TWO:Zt.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 a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(d){d.addEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=d},this.stopListenToKeyEvents=function(){var d;(d=this._domElementKeyEvents)==null||d.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null},this.saveState=function(){e.target0.copy(e.target),e.position0.copy(e.object.position),e.zoom0=e.object.zoom},this.reset=function(){e.target.copy(e.target0),e.object.position.copy(e.position0),e.object.zoom=e.zoom0,e.object.updateProjectionMatrix(),e.dispatchEvent({type:"change"}),e.update(),r=i.NONE},this.update=function(){let d=new it,m=new jr().setFromUnitVectors(t.up,new it(0,1,0)),S=m.clone().invert(),T=new it,j=new jr,ct=new it,ot=2*Math.PI;return function(Mn=null){let gt=e.object.position;d.copy(gt).sub(e.target),d.applyQuaternion(m),a.setFromVector3(d),e.autoRotate&&r===i.NONE&&kt(ne(Mn)),e.enableDamping?(a.theta+=u.theta*e.dampingFactor,a.phi+=u.phi*e.dampingFactor):(a.theta+=u.theta,a.phi+=u.phi);let mt=e.minAzimuthAngle,_t=e.maxAzimuthAngle;isFinite(mt)&&isFinite(_t)&&(mt<-Math.PI?mt+=ot:mt>Math.PI&&(mt-=ot),_t<-Math.PI?_t+=ot:_t>Math.PI&&(_t-=ot),mt<=_t?a.theta=Math.max(mt,Math.min(_t,a.theta)):a.theta=a.theta>(mt+_t)/2?Math.max(mt,a.theta):Math.min(_t,a.theta)),a.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,a.phi)),a.makeSafe(),e.enableDamping===!0?e.target.addScaledVector(c,e.dampingFactor):e.target.add(c),e.zoomToCursor&&X||e.object.isOrthographicCamera?a.radius=An(a.radius):a.radius=An(a.radius*l),d.setFromSpherical(a),d.applyQuaternion(S),gt.copy(e.target).add(d),e.object.lookAt(e.target),e.enableDamping===!0?(u.theta*=1-e.dampingFactor,u.phi*=1-e.dampingFactor,c.multiplyScalar(1-e.dampingFactor)):(u.set(0,0,0),c.set(0,0,0));let de=!1;if(e.zoomToCursor&&X){let ie=null;if(e.object.isPerspectiveCamera){let re=d.length();ie=An(re*l);let ge=re-ie;e.object.position.addScaledVector(R,ge),e.object.updateMatrixWorld()}else if(e.object.isOrthographicCamera){let re=new it(A.x,A.y,0);re.unproject(e.object),e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),de=!0;let ge=new it(A.x,A.y,0);ge.unproject(e.object),e.object.position.sub(ge).add(re),e.object.updateMatrixWorld(),ie=d.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),e.zoomToCursor=!1;ie!==null&&(e.screenSpacePanning?e.target.set(0,0,-1).transformDirection(e.object.matrix).multiplyScalar(ie).add(e.object.position):(Qe.origin.copy(e.object.position),Qe.direction.set(0,0,-1).transformDirection(e.object.matrix),Math.abs(e.object.up.dot(Qe.direction))<Xu?t.lookAt(e.target):(Wr.setFromNormalAndCoplanarPoint(e.object.up,e.target),Qe.intersectPlane(Wr,e.target))))}else e.object.isOrthographicCamera&&(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),de=!0);return l=1,X=!1,de||T.distanceToSquared(e.object.position)>o||8*(1-j.dot(e.object.quaternion))>o||ct.distanceToSquared(e.target)>0?(e.dispatchEvent({type:"change"}),T.copy(e.object.position),j.copy(e.object.quaternion),ct.copy(e.target),de=!1,!0):!1}}();let e=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},r=i.NONE,o=1e-6,a=new qe,u=new qe,l=1,c=new it,h=new q,p=new q,f=new q,g=new q,_=new q,x=new q,C=new q,M=new q,P=new q,R=new it,A=new q,X=!1,v=[],H={};function ne(d){return d!==null?2*Math.PI/60*e.autoRotateSpeed*d:2*Math.PI/60/60*e.autoRotateSpeed}function Gt(){return Math.pow(.95,e.zoomSpeed)}function kt(d){u.theta-=d}function Ht(d){u.phi-=d}let Ci=function(){let d=new it;return function(S,T){d.setFromMatrixColumn(T,0),d.multiplyScalar(-S),c.add(d)}}(),Ai=function(){let d=new it;return function(S,T){e.screenSpacePanning===!0?d.setFromMatrixColumn(T,1):(d.setFromMatrixColumn(T,0),d.crossVectors(e.object.up,d)),d.multiplyScalar(S),c.add(d)}}(),Vt=function(){let d=new it;return function(S,T){let j=e.domElement;if(e.object.isPerspectiveCamera){let ct=e.object.position;d.copy(ct).sub(e.target);let ot=d.length();ot*=Math.tan(e.object.fov/2*Math.PI/180),Ci(2*S*ot/j.clientHeight,e.object.matrix),Ai(2*T*ot/j.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(Ci(S*(e.object.right-e.object.left)/e.object.zoom/j.clientWidth,e.object.matrix),Ai(T*(e.object.top-e.object.bottom)/e.object.zoom/j.clientHeight,e.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1)}}();function Cn(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l/=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function Ei(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l*=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function Si(d){if(!e.zoomToCursor)return;X=!0;let m=e.domElement.getBoundingClientRect(),S=d.clientX-m.left,T=d.clientY-m.top,j=m.width,ct=m.height;A.x=S/j*2-1,A.y=-(T/ct)*2+1,R.set(A.x,A.y,1).unproject(e.object).sub(e.object.position).normalize()}function An(d){return Math.max(e.minDistance,Math.min(e.maxDistance,d))}function Mi(d){h.set(d.clientX,d.clientY)}function Yo(d){Si(d),C.set(d.clientX,d.clientY)}function bi(d){g.set(d.clientX,d.clientY)}function Ko(d){p.set(d.clientX,d.clientY),f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let m=e.domElement;kt(2*Math.PI*f.x/m.clientHeight),Ht(2*Math.PI*f.y/m.clientHeight),h.copy(p),e.update()}function Jo(d){M.set(d.clientX,d.clientY),P.subVectors(M,C),P.y>0?Cn(Gt()):P.y<0&&Ei(Gt()),C.copy(M),e.update()}function Zo(d){_.set(d.clientX,d.clientY),x.subVectors(_,g).multiplyScalar(e.panSpeed),Vt(x.x,x.y),g.copy(_),e.update()}function ts(d){Si(d),d.deltaY<0?Ei(Gt()):d.deltaY>0&&Cn(Gt()),e.update()}function es(d){let m=!1;switch(d.code){case e.keys.UP:d.ctrlKey||d.metaKey||d.shiftKey?Ht(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):Vt(0,e.keyPanSpeed),m=!0;break;case e.keys.BOTTOM:d.ctrlKey||d.metaKey||d.shiftKey?Ht(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):Vt(0,-e.keyPanSpeed),m=!0;break;case e.keys.LEFT:d.ctrlKey||d.metaKey||d.shiftKey?kt(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):Vt(e.keyPanSpeed,0),m=!0;break;case e.keys.RIGHT:d.ctrlKey||d.metaKey||d.shiftKey?kt(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):Vt(-e.keyPanSpeed,0),m=!0;break}m&&(d.preventDefault(),e.update())}function wi(){if(v.length===1)h.set(v[0].pageX,v[0].pageY);else{let d=(v[0].pageX-v[0].pageY)/(v[1].pageX-v[1].pageY),m=v[0].pageY-d*v[0].pageX;e.rotateLineStart.set(d,m);let S=.5*(v[0].pageX+v[1].pageX),T=.5*(v[0].pageY+v[1].pageY);h.set(S,T)}}function Ti(){if(v.length===1)g.set(v[0].pageX,v[0].pageY);else{let d=.5*(v[0].pageX+v[1].pageX),m=.5*(v[0].pageY+v[1].pageY);g.set(d,m)}}function Ii(){let d=v[0].pageX-v[1].pageX,m=v[0].pageY-v[1].pageY,S=Math.sqrt(d*d+m*m);C.set(0,S)}function ns(){e.enableZoom&&Ii(),e.enablePan&&Ti()}function is(){e.enableZoom&&Ii(),e.enableRotate&&wi()}function Ri(d){if(v.length==1)p.set(d.pageX,d.pageY);else{let S=En(d),T=.5*(d.pageX+S.x),j=.5*(d.pageY+S.y);p.set(T,j);let ct=(d.pageY-S.y)/(d.pageX-S.x),ot=S.y-ct*S.x;if(e.rotateLineEnd.set(ct,ot),Number.isFinite(e.rotateLineEnd.x)&&Number.isFinite(e.rotateLineStart.x)){let Sn=(e.rotateLineStart.y-e.rotateLineEnd.y)/(e.rotateLineEnd.x-e.rotateLineStart.x),Mn=ct*Sn+ot;if(Number.isFinite(Sn)&&Number.isFinite(Mn)){let gt=Math.atan(e.rotateLineEnd.x)-Math.atan(e.rotateLineStart.x);Math.PI-Math.abs(gt)<.5&&(gt=-Math.sign(gt)*(Math.PI-Math.abs(gt))),Math.abs(gt)<.1&&(u.theta+=gt)}}e.rotateLineStart.copy(e.rotateLineEnd)}f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let m=e.domElement;Ht(2*Math.PI*f.y/m.clientHeight),h.copy(p)}function Pi(d){if(v.length===1)_.set(d.pageX,d.pageY);else{let m=En(d),S=.5*(d.pageX+m.x),T=.5*(d.pageY+m.y);_.set(S,T)}x.subVectors(_,g).multiplyScalar(e.panSpeed),Vt(x.x,x.y),g.copy(_)}function Li(d){let m=En(d),S=d.pageX-m.x,T=d.pageY-m.y,j=Math.sqrt(S*S+T*T);M.set(0,j),P.set(0,Math.pow(M.y/C.y,e.zoomSpeed)),Cn(P.y),C.copy(M)}function rs(d){e.enableZoom&&Li(d),e.enablePan&&Pi(d)}function os(d){e.enableZoom&&Li(d),e.enableRotate&&Ri(d)}this.onPointerDown=function(m){e.enabled!==!1&&(v.length===0&&(e.domElement.setPointerCapture(m.pointerId),e.domElement.addEventListener("pointermove",e.onPointerMove),e.domElement.addEventListener("pointerup",e.onPointerUp)),cs(m),m.pointerType==="touch"?us(m):ss(m))},this.onPointerMove=function(m){e.enabled!==!1&&(m.pointerType==="touch"?ls(m):as(m))},this.onPointerUp=function(m){hs(m),v.length===0&&(e.domElement.releasePointerCapture(m.pointerId),e.domElement.removeEventListener("pointermove",e.onPointerMove),e.domElement.removeEventListener("pointerup",e.onPointerUp)),e.dispatchEvent({type:"end"}),r=i.NONE};function ss(d){let m;switch(d.button){case 0:m=e.mouseButtons.LEFT;break;case 1:m=e.mouseButtons.MIDDLE;break;case 2:m=e.mouseButtons.RIGHT;break;default:m=-1}switch(m){case Jt.DOLLY:if(e.enableZoom===!1)return;Yo(d),r=i.DOLLY;break;case Jt.ROTATE:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enablePan===!1)return;bi(d),r=i.PAN}else{if(e.enableRotate===!1)return;Mi(d),r=i.ROTATE}break;case Jt.PAN:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enableRotate===!1)return;Mi(d),r=i.ROTATE}else{if(e.enablePan===!1)return;bi(d),r=i.PAN}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function as(d){switch(r){case i.ROTATE:if(e.enableRotate===!1)return;Ko(d);break;case i.DOLLY:if(e.enableZoom===!1)return;Jo(d);break;case i.PAN:if(e.enablePan===!1)return;Zo(d);break}}this.onMouseWheel=function(m){e.enabled===!1||e.enableZoom===!1||r!==i.NONE||(m.preventDefault(),e.dispatchEvent({type:"start"}),ts(m),e.dispatchEvent({type:"end"}))},this.onKeyDown=function(m){e.enabled===!1||e.enablePan===!1||es(m)};function us(d){switch(Bi(d),v.length){case 1:switch(e.touches.ONE){case Zt.ROTATE:if(e.enableRotate===!1)return;wi(),r=i.TOUCH_ROTATE;break;case Zt.PAN:if(e.enablePan===!1)return;Ti(),r=i.TOUCH_PAN;break;default:r=i.NONE}break;case 2:switch(e.touches.TWO){case Zt.DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;ns(),r=i.TOUCH_DOLLY_PAN;break;case Zt.DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;is(),r=i.TOUCH_DOLLY_ROTATE;break;default:r=i.NONE}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function ls(d){switch(Bi(d),r){case i.TOUCH_ROTATE:if(e.enableRotate===!1)return;Ri(d),e.update();break;case i.TOUCH_PAN:if(e.enablePan===!1)return;Pi(d),e.update();break;case i.TOUCH_DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;rs(d),e.update();break;case i.TOUCH_DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;os(d),e.update();break;default:r=i.NONE}}this.onContextMenu=function(m){e.enabled!==!1&&m.preventDefault()};function cs(d){v.push(d)}function hs(d){delete H[d.pointerId];for(let m=0;m<v.length;m++)if(v[m].pointerId==d.pointerId){v.splice(m,1);return}}function Bi(d){let m=H[d.pointerId];m===void 0&&(m=new q,H[d.pointerId]=m),m.set(d.pageX,d.pageY)}function En(d){let m=d.pointerId===v[0].pointerId?v[1]:v[0];return H[m.pointerId]}e.domElement.addEventListener("contextmenu",this.onContextMenu),e.domElement.addEventListener("pointerdown",this.onPointerDown),e.domElement.addEventListener("pointercancel",this.onPointerUp),e.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}};function qr(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function qn(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){qr(r,e,i,o,a,"next",u)}function a(u){qr(r,e,i,o,a,"throw",u)}o(void 0)})}}var Je=class extends Ye{registryEvent(){this.addEventListener("change",()=>{let t=this.camera.zoom;t!==this.prevCameraZoom&&(this.prevCameraZoom=t,this.dispatchEvent({type:"change-zoom",zoom:t}))}),this.context.addEventListener("update",this.tweenUpdate)}setPolarAngle(t,n=!1){let{maxPolarAngle:e,minPolarAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),r||(this.maxPolarAngle=e,this.minPolarAngle=i)}setPolarAngleByDuration(t,n=!1,e=500){var i=this;return qn(function*(){return e<=0?i.setPolarAngle(t,n):K(new Promise(r=>{let o={polar:i.getPolarAngle()},a={polar:t},u=new Ke(o,i.tweenGroup).to(a,e).onUpdate(()=>{i.setPolarAngle(o.polar,n)}).onComplete(()=>{i.enabled=!0,i.tweenGroup.remove(u),r(!0)}).onStart(()=>{i.enabled=!1}).start()}),e+500)})()}setAzimuthalAngle(t,n){let{maxAzimuthAngle:e,minAzimuthAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxAzimuthAngle=t,this.minAzimuthAngle=t,this.update()),r||(this.maxAzimuthAngle=e,this.minAzimuthAngle=i)}setAzimuthalAngleDuration(t,n=!1,e=500){return e<=0?this.setAzimuthalAngle(t,n):K(new Promise(i=>{let r={azimuthal:this.getAzimuthalAngle()},o={azimuthal:t},a=new Ke(r,this.tweenGroup).to(o,e).onUpdate(()=>{this.setAzimuthalAngle(r.azimuthal,n)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(a),i(!0)}).onStart(()=>{this.enabled=!1}).start()}),e+500)}getCameraLookAt(){return new Qr().subVectors(this.target,this.camera.position)}setCameraPositionByTarget(t,n){var e=this;return qn(function*(){let i=e.target.clone(),r=e.getCameraLookAt();if(!n){e.camera.position.copy(t.clone().sub(r)),e.target.copy(t.clone()),e.update();return}return K(new Promise(o=>{let a=new Ke(i,e.tweenGroup).to(t,n).onUpdate(()=>{e.camera.position.copy(i.clone().sub(r)),e.target.copy(i.clone()),e.update()}).onComplete(()=>{e.tweenGroup.remove(a),e.enabled=!0,o(!0)}).onStart(()=>{e.enabled=!1}).start()}),n+500)})()}setZoom(t,n,e=!1){let{minZoom:i,maxZoom:r}=this;(e||t>=i&&t<=r)&&(this.camera.position.copy(n.clone().sub(this.getCameraLookAt())),this.target.copy(n),this.camera.zoom=t,this.update())}setZoomByDuration(t,n,e=!1,i=500){var r=this;return qn(function*(){let o={zoom:r.camera.zoom,target:r.target.clone()};if(t!==r.camera.zoom)return i?K(new Promise(a=>{let u=new Ke(o,r.tweenGroup).to({zoom:t,target:n},i).onUpdate(()=>{r.setZoom(o.zoom,o.target,e)}).onComplete(()=>{r.tweenGroup.remove(u),r.enabled=!0,a(!0)}).onStart(()=>{r.enabled=!1}).start()}),i+500):r.setZoom(t,n,e)})()}setTargetByOffset(t,n=this.target.clone()){if(!t)return;this.camera.updateMatrix();let e=new Qr;e.setFromMatrixColumn(this.camera.matrix,1),e.normalize(),e.multiplyScalar(t/this.camera.zoom),n.add(e),this.setCameraPositionByTarget(n,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){super.dispose(),this.clearTween()}constructor(t,n,e){super(n,e),this.context=t,this.camera=n,this.domElement=e,this.prevCameraZoom=1,this.tweenGroup=new ju,this.offsetY=0,this.tweenUpdate=()=>{this.tweenGroup.update()},this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=n.zoom,this.registryEvent()}};import{EventDispatcher as Wu,PCFSoftShadowMap as qu,WebGLRenderer as Qu}from"three";function Qn(){return Qn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Qn.apply(this,arguments)}var Ze=class extends Qu{setCameraAndScene(t,n){this.scene=t,this.camera=n}autoRender(){this.scene&&this.camera&&this.enable&&(this.event.dispatchEvent({type:"update"}),this.render(this.scene,this.camera)),this.timer.requestAnimationFrame(()=>{this.autoRender()})}pauseRender(){this.enable=!1}continueRender(){this.enable=!0}addEventListener(t,n){this.event.addEventListener(t,n)}removeEventListener(t,n){this.event.removeEventListener(t,n)}dispose(){this.timer.dispose(),this.enable=!1,super.dispose()}constructor(t){super(Qn({antialias:!0,alpha:!0},t)),this.event=new Wu,this.enable=!0,this.timer=new D,this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.shadowMap.enabled=!0,this.shadowMap.autoUpdate=!0,this.shadowMap.type=qu}};import{Scene as Yu}from"three";var tn=class extends Yu{constructor(){super()}};import{OrthographicCamera as Ku}from"three";var en=class extends Ku{constructor(t,n){super(-t/2,t/2,n/2,-n/2,-1e4,5e4),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};function Yr(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Ju(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Yr(r,e,i,o,a,"next",u)}function a(u){Yr(r,e,i,o,a,"throw",u)}o(void 0)})}}var nn=class extends Zu{resizeClientSize(){let{x:t,y:n,width:e,height:i}=this.container.getBoundingClientRect();this.clientSize={width:e||this.container.clientWidth,height:i||this.container.clientHeight,x:t,y:n}}init(){let{clientWidth:t,clientHeight:n}=this.container;this.camera=new en(t,n),this.renderer.setSize(t,n),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new Je(this,this.camera,this.renderer.domElement),this.control.maxPolarAngle=this.config.control.maxPolar,this.container.appendChild(this.renderer.domElement),this.scene.add(this.lights),this.basicRatio=this.getRatio(),this.control.addEventListener("change",()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})}),this.control.addEventListener("change-zoom",({zoom:e})=>{this.dispatchEvent({type:"control-zoom-change",zoom:e})}),this.renderer.addEventListener("update",()=>{this.dispatchEvent({type:"update"})}),this.cameraBound=new We(this)}getRatio(t=new Ot(0,0,0),n=new Ot(100,0,0)){let{clientWidth:e,clientHeight:i}=this.container,r=y(t,this.camera,e,i),o=y(n,this.camera,e,i);return Math.ceil(Math.sqrt((o.x-r.x)**2+(o.y-r.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(n=>{n instanceof r0&&(n.color=new i0(t))})}switchFloor(t){this.currentFloor&&(this.scene.remove(this.currentFloor),this.currentFloor.dispose()),this.currentFloor=t,this.scene.add(t);let n=t.getCenter();n&&(this.lights.position.x=n.x,this.lights.position.y=n.y),this.cameraBound.updateBox()}getGraphicsByDeviceXy(t,n){var e;let i=new te;i.x=t/this.clientSize.width*2-1,i.y=n/this.clientSize.height*-2+1;let r=new e0;return r.setFromCamera(i,this.camera),r.ray.origin.sub(r.ray.direction.clone().multiplyScalar(100)),((e=this.currentFloor)==null?void 0:e.graphicLayer.getGraphicByRaycaster(r))||{graphics:[],position:null}}getPoisByDeviceXy(t,n){var e,i;let r=(e=this.currentFloor)==null?void 0:e.poiLayer.getPoiByDeviceXy(t,n),o=(i=this.currentFloor)==null?void 0:i.poiLayer2.getPoiByDeviceXy(t,n);return(r||[]).concat(o||[])}registryEvent(){window.addEventListener("resize",this.onWindowResize),this.container.addEventListener("click",this.onClick),this.container.addEventListener("pointerover",this.onPointerover),this.container.addEventListener("pointermove",this.onPointermove),this.container.addEventListener("pointerleave",this.onPointerleave),this.container.addEventListener("pointercancel",this.onPointerleave),this.container.addEventListener("pointerout",this.onPointerleave),this.selection.addEventListener("select",this.onSelectionSelect),this.hoverHelper.addEventListener("hover-change",this.onHoverChange)}unRegistryEvent(){window.removeEventListener("resize",this.onWindowResize),this.container.removeEventListener("click",this.onClick),this.container.removeEventListener("pointerover",this.onPointerover),this.container.removeEventListener("pointermove",this.onPointermove),this.container.removeEventListener("pointerleave",this.onPointerleave),this.container.removeEventListener("pointercancel",this.onPointerleave),this.container.removeEventListener("pointerout",this.onPointerleave),this.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange)}setPolarAngle(t,n=500){return this.control.setPolarAngleByDuration(t,!0,n)}setAzimuthalAngle(t,n=500){return this.control.setAzimuthalAngleDuration(t,!0,n)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,n,e=500){return this.control.setZoomByDuration(t,n,!0,e)}getFitCameraToObjectZoom(t,n=[20,20,20,20],e=500,i=!0){let[r,o,a,u]=n,{clientSize:{width:l,height:c}}=this,h=this.control.getPolarAngle();i&&this.setPolarAngle(0,0);let p=new n0().setFromObject(t);this.setPolarAngle(h,0);let{max:f,min:g}=p,_=new Ot(g.x,f.y,f.z),x=new Ot(f.x,f.y,f.z),C=new Ot(f.x,g.y,g.z),M=new Ot(g.x,g.y,g.z),P=y(_,this.camera,l,c),R=y(x,this.camera,l,c),A=y(M,this.camera,l,c),X=y(C,this.camera,l,c),H=new t0().setFromPoints([new te(P.x,P.y),new te(R.x,R.y),new te(A.x,A.y),new te(X.x,X.y)]).getSize(new te),ne=(l-o-u)/H.x,Gt=(c-r-a)/H.y,kt=Math.min(ne,Gt),Ht=new Ot((f.x+g.x)/2,(f.y+g.y)/2,(f.z+g.z)/2);return{zoom:kt*this.camera.zoom,center:Ht}}fitCameraToObject(t,n=[20,20,20,20],e=500,i=!0){let{zoom:r,center:o}=this.getFitCameraToObjectZoom(t,n,e,i);return this.setZoom(r,o,e)}getFitCameraToGroundZoom(t=[20,20,20,20],n=500,e=!0){if(this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,n,e).zoom}fitCameraToGround(t=[20,20,20,20],n=500,e=!0){return this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundLayer,t,n,e):Promise.resolve(!1)}setCameraPosition(t,n){var e=this;return Ju(function*(){return e.control.setCameraPositionByTarget(t,n)})()}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}dispose(){this.control.dispose(),this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.unRegistryEvent(),this.renderer.domElement.remove(),this.renderer.dispose(),this.lights.children.forEach(t=>t.dispose()),U(this.scene)}constructor(t,n){super(),this.container=t,this.config=n,this.scene=new tn,this.renderer=new Ze,this.lights=Di(),this.clientSize={width:0,height:0,x:0,y:0},this.renderRf=0,this.onWindowResize=()=>{let{container:e,camera:i,renderer:r}=this,{clientWidth:o,clientHeight:a}=e;o=Math.max(1,o),a=Math.max(1,a),i.left=-o/2,i.right=o/2,i.top=a/2,i.bottom=-a/2,i.updateProjectionMatrix(),r.setSize(o,a),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:o,height:a})},this.onClick=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY);i.length&&this.dispatchEvent({type:"graphic-click",graphics:i,position:r});let o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);o.length&&this.dispatchEvent({type:"poi-click",pois:o})},this.onPointerover=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-over",e,graphics:i,pois:o,position:r})},this.onPointermove=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-move",e,graphics:i,pois:o,position:r})},this.onPointerleave=e=>{this.dispatchEvent({type:"pointer-level"})},this.onSelectionSelect=({graphics:e,isMultipleSelect:i})=>{this.dispatchEvent({type:"select-graphic",graphics:e,isMultipleSelect:i})},this.onHoverChange=({graphics:e})=>{this.dispatchEvent({type:"hover",graphics:e})},this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new Ve(this),this.hoverHelper=new Xe(this),this.resizeClientSize(),this.registryEvent()}};import{merge as o0}from"lodash";var s0={apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get",equipmentList:"/api/inception-map/equipment/get",roadNetwork:"/api/inception-map/road_network/get"},enableBoxSelect:!0,resizeObserver:!1,initTransToMark:!1,heatMap:{radius:50,gradient:{0:"#8F9FCD",.5:"#6284FF",1:"#F95D5D"}},useFloorCache:!0,control:{maxPolar:1.2,defaultPolar:1.1,defaultAzimuthal:0},defaultPadding:[20,20,20,20],svg:{circle:{radius:"2",fill:"#1CADFF"},line:{stroke:"#1CADFF"}},selectBox:{stroke:"#1CADFF",fill:"rgba(28, 173, 255, 0.3)"},hover:{time:100},ground:{color:"#F6F6F6",opacity:1,height:.001,stroke:!1,strokeColor:"#E6E6E6",strokeOpacity:1},markGraphic:{color:"#EEF0F3",opacity:1,height:.001,stroke:!1,strokeColor:"#000",strokeOpacity:1},graphic:{fillOpacity:1},cameraBound:{padding:[150,150,150,150]},poi:{boxScale:1}};function Kr(s){return o0({},s0,s)}import{debounce as l0}from"lodash";function Jr(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function Yn(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Jr(r,e,i,o,a,"next",u)}function a(u){Jr(r,e,i,o,a,"throw",u)}o(void 0)})}}function rn(){return rn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},rn.apply(this,arguments)}var Gf=function(s){return s[s.D2=0]="D2",s[s.D3=1.1]="D3",s}({}),Zr=class extends a0{changeBuildingCenter(t,{brand:n,project:e}){let i=t?ye(t.info.geometry.cds[0]):[0,0];this.buildingCenter=i,this.dispatchEvent({type:"center-change",center:i,project:e,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(n=>n!==t)}triggerHooks(t,n){this.dispatchEvent({type:t,data:n})}switchFloorByFloor(t,n=t.graphicLayer.children){this.triggerHooks(G.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:n}),this.context.switchFloor(t),this.initialFloorCamera(),this.triggerHooks(G.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:n})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(this.config.defaultPadding,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*30,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}addModel(t,n){if(t.options.geometry.type==="polygon"){var e;let i=(e=this.context.currentFloor)==null?void 0:e.addModel(rn({},n,{position:t.getPosition().setZ(.1),id:t.options.id}));if(i){let{facilityAngle:r=0,facilityXScale:o=1,facilityYScale:a=1}=t.options.userData;i.rotateZ((180-r)/180*Math.PI),i.scale.set(o,a,1)}}}addHeatmap(t){var n;return(n=this.context.currentFloor)==null?void 0:n.addHeatmap(t)}getLegacyToGraphicMap(){var t;return((t=this.context.currentFloor)==null?void 0:t.userData.legacyToGraphicMap)||new Map}getFloorAllGraphics(){var t;return((t=this.context.currentFloor)==null?void 0:t.graphicLayer.children.filter(n=>n instanceof B))||[]}createGraphicPoi(t,n){if(this.context.currentFloor){n.id===void 0&&(n.id=t.options.id);let e=t.options.center,i=t.getCenter(),r=(e==null?void 0:e[0])||i.x,o=(e==null?void 0:e[1])||i.y;return console.log(r,o,e,i),this.context.currentFloor.addPoi(rn({},n,{position:{x:r,y:o,z:i.z+t.options.height/2}}))}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,n=500){let e=t.getPosition();return this.context.setCameraPosition(e,n)}translateElementToCenterX(t,n=500){var e=this;return Yn(function*(){return K(new Promise(i=>{let r=e.context.control.target.clone(),o=t.getPosition();e.timer.requestAnimationFrame(()=>{let{clientSize:{width:a,height:u},camera:l}=e.context,h=y(o,l,a,u).x-a/2,p=new u0;p.setFromMatrixColumn(e.context.camera.matrix,0),p.normalize(),p.multiplyScalar(h/e.context.camera.zoom),r.add(p),e.context.setCameraPosition(r,n).then(i)})}),n+500)})()}getElementDeviceCoordinate(t){let n=t.position.clone(),{clientWidth:e,clientHeight:i}=this.container;return y(n,this.context.camera,e,i)}changeMapType(t,n=500){return this.type=t,t==="2d"?this.context.setPolarAngle(0,n):this.context.setPolarAngle(1.1,n)}resetView(t=300){var n=this;return Yn(function*(){let e=t/3;yield n.context.setAzimuthalAngle(n.config.control.defaultAzimuthal,e),yield n.context.setPolarAngle(n.config.control.defaultPolar,e),yield n.context.fitCameraToGround(n.config.defaultPadding,e,!1)})()}reduceMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e-t,this.context.control.target,n)}enlargeMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e+t,this.context.control.target,n)}registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver(l0(this.resize,5));t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t=.1){let n=this.context.control.getAzimuthalAngle();this.context.setAzimuthalAngle(n+t,500)}measureDistance(){var t=this;return Yn(function*(){return t.cancelDistance(),new Promise((n,e)=>{t.changeMapType("2d",0),t.context.control.enableRotate=!1,t.svgLine=new Ne(t.context);let i=t.svgLine.dispose.bind(t.svgLine);t.svgLine.dispose=function(){i(),e("cancel")},t.svgLine.addEventListener("distance",({distance:r})=>{n(r)})})})()}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,n)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new Oe(this.context);let e=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){e(),n("cancel")},this.svgPolygon.addEventListener("area",({area:i})=>{t(i)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){var n;return((n=this.context.currentFloor)==null?void 0:n.graphicLayer.getGraphicByNodeId(t))||null}deleteGraphic(t){var n;(n=this.context.currentFloor)==null||n.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var n;if(!t.transformToBuildingGround&&this.currentBuildGround){let e=ye(this.currentBuildGround.info.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(r=>{r[0]-=e[0],r[1]-=e[1]})});else{let[i,r]=t.geometry.cds;t.geometry.coords=[i-e[0],r-e[1]]}}return(n=this.context.currentFloor)==null?void 0:n.graphicLayer.createGraphic(t)}removePoiById(t){var n,e;(n=this.context.currentFloor)==null||n.poiLayer.removePoiById(t),(e=this.context.currentFloor)==null||e.poiLayer2.removePoiById(t)}getPoiById(t){var n,e;return((n=this.context.currentFloor)==null?void 0:n.poiLayer.getPoiById(t))||((e=this.context.currentFloor)==null?void 0:e.poiLayer2.getPoiById(t))}getPois(){var t,n;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(e=>!e.options.built_in),...((n=this.context.currentFloor)==null?void 0:n.poiLayer2.pois)||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.context.dispose(),this.unRegistryEvent(),W.dispose(),dt.dispose(),bt.dispose(),tt.dispose(),w.dispose()}constructor(t,n={}){super(),this.container=t,this.polarKeys=[],this.azimuthalKeys=[],this.basicZoom=1,this.prevCameraZoom=1,this.type="2d",this.currentBuildGround=null,this.observe=null,this.buildingCenter=[0,0],this.timer=new D,this.plugins=[],this.onControlChange=()=>{let{camera:{zoom:e}}=this.context;e!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=e)},this.onKeydown=e=>{this.polarKeys.includes(e.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(e.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=e=>{if(this.polarKeys.includes(e.code)){let i=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=i,this.context.control.minPolarAngle=i}if(this.azimuthalKeys.includes(e.code)){let i=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=i,this.context.control.minAzimuthAngle=i}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let e=this.context.control.getAzimuthalAngle(),i=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let r=this.context.getFitCameraToGroundZoom(void 0,0)||1;this.context.camera.zoom=i,this.context.control.minZoom=r,this.context.control.maxZoom=r*25,this.basicZoom=i,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(e,0),this.context.cameraBound.setEnable(!0)},this.config=Kr(n),this.context=new nn(t,this.config),this.registryEvent()}};import{EventDispatcher as c0}from"three";var rt=class extends c0{dispose(){}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};function to(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function h0(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){to(r,e,i,o,a,"next",u)}function a(u){to(r,e,i,o,a,"throw",u)}o(void 0)})}}var eo=class extends rt{fetchEquipment(){var t=this;return h0(function*(){let{apiDomain:n,apiPath:{equipmentList:e},apiInfo:i}=t.bmap.config,r=`${n}${e}`;yield fetch(r,i).then(o=>o.json()).then(o=>o.data).then(o=>{t.equipmentList=o,t.equipmentMap=new Map(o.map(a=>[a.equipment_id,a]))}),t.dispatchEvent({type:"change-equipment-list",data:t.equipmentList}),t.bmap.context.currentFloor&&t.changeGraphicToEquipment(t.bmap.context.currentFloor.graphicLayer.children)})()}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(n=>{let e=this.getGraphicEquipment(n);return e&&this.equipmentMap.has(e)}).forEach(n=>{let e=this.equipmentMap.get(this.getGraphicEquipment(n)),i=this.bmap.createGraphicPoi(n,{icon:e==null?void 0:e.equipment_icon,built_in:!0,icon_size:[14,14]});i&&(i.userData.data=e,i.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(G.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(n=>{if(n.userData.type==="equipment"){var e;(e=this.bmap.context.currentFloor)==null||e.poiLayer.removePoi(n)}})}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=({data:{graphics:n}})=>{this.equipmentList.length&&this.changeGraphicToEquipment(n)},this.fetchEquipment(),this.bmap.addEventListener(G.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};import{Mesh as C0,Object3D as A0,TextureLoader as E0,Color as S0,Vector2 as Jn,Vector3 as M0,NormalBlending as b0,RepeatWrapping as w0}from"three";import{BufferGeometry as p0,Matrix4 as io,Vector3 as Dt,Ray as f0,Sphere as d0,LineSegments as g0,BufferAttribute as Tt,ShaderChunk as Q,ShaderMaterial as ro,UniformsLib as m0,Color as _0,Vector2 as no}from"three";var k=class extends p0{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new io,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(t){this.setGeometry(t,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(t){this.setPoints(t,this.widthCallback)}}})}};k.prototype.setMatrixWorld=function(s){this.matrixWorld=s};k.prototype.setGeometry=function(s,t){this._geometry=s,this.setPoints(s.getAttribute("position").array,t)};k.prototype.setPoints=function(s,t){if(!(s instanceof Float32Array)&&!(s instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=s,this.widthCallback=t,this.positions=[],this.counters=[],s.length&&s[0]instanceof Dt)for(var n=0;n<s.length;n++){var e=s[n],i=n/s.length;this.positions.push(e.x,e.y,e.z),this.positions.push(e.x,e.y,e.z),this.counters.push(i),this.counters.push(i)}else for(var n=0;n<s.length;n+=3){var i=n/s.length;this.positions.push(s[n],s[n+1],s[n+2]),this.positions.push(s[n],s[n+1],s[n+2]),this.counters.push(i),this.counters.push(i)}this.process()};function y0(s,t){var n=new io,e=new f0,i=new d0,r=new Dt,o=this.geometry;if(o.boundingSphere||o.computeBoundingSphere(),i.copy(o.boundingSphere),i.applyMatrix4(this.matrixWorld),s.ray.intersectSphere(i,r)!==!1){n.copy(this.matrixWorld).invert(),e.copy(s.ray).applyMatrix4(n);var a=new Dt,u=new Dt,l=new Dt,c=this instanceof g0?2:1,h=o.index,p=o.attributes;if(h!==null)for(var f=h.array,g=p.position.array,_=p.width.array,x=0,C=f.length-1;x<C;x+=c){var M=f[x],P=f[x+1];a.fromArray(g,M*3),u.fromArray(g,P*3);var R=_[Math.floor(x/3)]!==void 0?_[Math.floor(x/3)]:1,A=s.params.Line.threshold+this.material.lineWidth*R/2,X=A*A,v=e.distanceSqToSegment(a,u,r,l);if(!(v>X)){r.applyMatrix4(this.matrixWorld);var H=s.ray.origin.distanceTo(r);H<s.near||H>s.far||(t.push({distance:H,point:l.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this}),x=C)}}}}k.prototype.raycast=y0;k.prototype.compareV3=function(s,t){var n=s*6,e=t*6;return this.positions[n]===this.positions[e]&&this.positions[n+1]===this.positions[e+1]&&this.positions[n+2]===this.positions[e+2]};k.prototype.copyV3=function(s){var t=s*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};k.prototype.getDistance=function(s){let t=0;for(let n=0;n<s;n++){let e=6*n,i=new Dt(this.positions[e],this.positions[e+1],this.positions[e+2]),r=new Dt(this.positions[e+6],this.positions[e+7],this.positions[e+8]),o=i.distanceTo(r);t+=o}return t};k.prototype.process=function(){var s=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let n=this.getDistance(s-1);var e;this.compareV3(0,s-1)?e=this.copyV3(s-2):e=this.copyV3(0),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);for(var i=0;i<s;i++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(i/(s-1)):t=1,this.width.push(t),this.width.push(t),i===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(i===s-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let o=this.getDistance(i)/n;this.uvs.push(o,0),this.uvs.push(o,1)}if(i<s-1){e=this.copyV3(i),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);var r=i*2;this.indices_array.push(r,r+1,r+2),this.indices_array.push(r+2,r+1,r+3)}i>0&&(e=this.copyV3(i),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]))}this.compareV3(s-1,0)?e=this.copyV3(1):e=this.copyV3(s-1),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new Tt(new Float32Array(this.positions),3),previous:new Tt(new Float32Array(this.previous),3),next:new Tt(new Float32Array(this.next),3),side:new Tt(new Float32Array(this.side),1),width:new Tt(new Float32Array(this.width),1),uv:new Tt(new Float32Array(this.uvs),2),index:new Tt(new Uint16Array(this.indices_array),1),counters:new Tt(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function Kn(s,t,n,e,i){var r;if(s=s.subarray||s.slice?s:s.buffer,n=n.subarray||n.slice?n:n.buffer,s=t?s.subarray?s.subarray(t,i&&t+i):s.slice(t,i&&t+i):s,n.set)n.set(s,e);else for(r=0;r<s.length;r++)n[r+e]=s[r];return n}k.prototype.advance=function(s){var t=this._attributes.position.array,n=this._attributes.previous.array,e=this._attributes.next.array,i=t.length;Kn(t,0,n,0,i),Kn(t,6,t,0,i-6),t[i-6]=s.x,t[i-5]=s.y,t[i-4]=s.z,t[i-3]=s.x,t[i-2]=s.y,t[i-1]=s.z,Kn(t,6,e,0,i-6),e[i-6]=s.x,e[i-5]=s.y,e[i-4]=s.z,e[i-3]=s.x,e[i-2]=s.y,e[i-1]=s.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};Q.meshline_vert=["",Q.logdepthbuf_pars_vertex,Q.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",Q.logdepthbuf_vertex,Q.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",Q.fog_vertex,"}"].join(`
104
104
  `);Q.meshline_frag=["",Q.fog_pars_fragment,Q.logdepthbuf_pars_fragment,"","uniform sampler2D map;","uniform sampler2D alphaMap;","uniform float useMap;","uniform float useAlphaMap;","uniform float useDash;","uniform float dashArray;","uniform float dashOffset;","uniform float dashRatio;","uniform float visibility;","uniform float alphaTest;","uniform vec2 repeat;","uniform float thresholdRatio;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","void main() {","",Q.logdepthbuf_fragment,""," vec4 c = vColor;"," if( useMap == 1. ) c *= texture2D( map, vUV * repeat );"," if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUV * repeat ).a;"," if( c.a < alphaTest ) discard;"," if( useDash == 1. ){"," c.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio));"," }"," gl_FragColor = c;"," gl_FragColor.a *= step(vCounters, visibility);","",Q.fog_fragment,"if (vUV.x <= thresholdRatio) {","gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);","}","}"].join(`
105
105
  `);var Ut=class extends ro{constructor(t){super({uniforms:Object.assign({},m0.fog,{lineWidth:{value:1},map:{value:null},useMap:{value:0},alphaMap:{value:null},useAlphaMap:{value:0},color:{value:new _0(16777215)},opacity:{value:1},resolution:{value:new no(1,1)},sizeAttenuation:{value:1},dashArray:{value:0},dashOffset:{value:0},dashRatio:{value:.5},useDash:{value:0},visibility:{value:1},alphaTest:{value:0},repeat:{value:new no(1,1)},thresholdRatio:{value:0},transparent:{value:!0},depthTest:{vale:!1},depthWrite:{value:!1}}),vertexShader:Q.meshline_vert,fragmentShader:Q.meshline_frag}),this.isMeshLineMaterial=!0,this.type="MeshLineMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get:function(){return this.uniforms.lineWidth.value},set:function(n){this.uniforms.lineWidth.value=n}},map:{enumerable:!0,get:function(){return this.uniforms.map.value},set:function(n){this.uniforms.map.value=n}},useMap:{enumerable:!0,get:function(){return this.uniforms.useMap.value},set:function(n){this.uniforms.useMap.value=n}},alphaMap:{enumerable:!0,get:function(){return this.uniforms.alphaMap.value},set:function(n){this.uniforms.alphaMap.value=n}},useAlphaMap:{enumerable:!0,get:function(){return this.uniforms.useAlphaMap.value},set:function(n){this.uniforms.useAlphaMap.value=n}},color:{enumerable:!0,get:function(){return this.uniforms.color.value},set:function(n){this.uniforms.color.value=n}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(n){this.uniforms.opacity.value=n}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(n){this.uniforms.resolution.value.copy(n)}},sizeAttenuation:{enumerable:!0,get:function(){return this.uniforms.sizeAttenuation.value},set:function(n){this.uniforms.sizeAttenuation.value=n}},dashArray:{enumerable:!0,get:function(){return this.uniforms.dashArray.value},set:function(n){this.uniforms.dashArray.value=n,this.useDash=n!==0?1:0}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(n){this.uniforms.dashOffset.value=n}},dashRatio:{enumerable:!0,get:function(){return this.uniforms.dashRatio.value},set:function(n){this.uniforms.dashRatio.value=n}},useDash:{enumerable:!0,get:function(){return this.uniforms.useDash.value},set:function(n){this.uniforms.useDash.value=n}},visibility:{enumerable:!0,get:function(){return this.uniforms.visibility.value},set:function(n){this.uniforms.visibility.value=n}},alphaTest:{enumerable:!0,get:function(){return this.uniforms.alphaTest.value},set:function(n){this.uniforms.alphaTest.value=n}},repeat:{enumerable:!0,get:function(){return this.uniforms.repeat.value},set:function(n){this.uniforms.repeat.value.copy(n)}},thresholdRatio:{enumerable:!0,get:function(){return this.uniforms.thresholdRatio.value},set:function(n){this.uniforms.thresholdRatio.value=n}}}),this.setValues(t)}};Ut.prototype.copy=function(s){return ro.prototype.copy.call(this,s),this.lineWidth=s.lineWidth,this.map=s.map,this.useMap=s.useMap,this.alphaMap=s.alphaMap,this.useAlphaMap=s.useAlphaMap,this.color.copy(s.color),this.opacity=s.opacity,this.resolution.copy(s.resolution),this.sizeAttenuation=s.sizeAttenuation,this.dashArray.copy(s.dashArray),this.dashOffset.copy(s.dashOffset),this.dashRatio.copy(s.dashRatio),this.useDash=s.useDash,this.visibility=s.visibility,this.alphaTest=s.alphaTest,this.repeat.copy(s.repeat),this};var oo="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAMAAACROYkbAAABrVBMVEVsjPdsjPdqi/doifdpivdrjPdsjPdsjPd/m/igtfqTq/lykfdri/dsjPdtjfe/zPv8/f/w8/6zw/p0kvdri/dsjPdtjffU3vz////////3+f62xfpzkfdri/dsjPdsjPeZr/nr8P7////////4+f62xfp0kvdri/dsjPdsjPdujveXrvne5v3////////3+f63x/t2lPdri/dsjPdsjPdsjPdri/eMpfjb4/3+/v/////4+v+7yft1k/dri/dsjPdsjPdri/eJovjl6/3////////3+f6Jo/lqivdsjPdri/dvjveluPry9f7////////i6f2BnPhqi/dsjPdrjPdvjveluPrv8v7////////l6/6Uq/lsjPdsjPdsjPdvjveluPrv8v7////////m6/6Uq/lsjPdsjPdsjPdsjPeZr/nv8v7////////s8f6XrvlsjPdsjPdtjffS2/z////////w9P6bsfltjfdsjPdtjffBz/v7/P/y9f6svvpxkPdrjPdsjPdsjPd+mviftPqVrPlykfdri/dsjPdsjPdri/doifdpifdrjPdsjPclkRlrAAAAx0lEQVQ4y2NgwAsYmZhZWNkYyAfsHJxc3Dy85BvAxy8gKCQsIkq2AWLiEpJS0jKycuQaIK+gqKSsoqqmrkGmAZpa2jq6evoGhkbG5BlgYmpmbmFpZW1ja0emE+wdHJ2cXVzd3D3INMDTy9vH188/IDCIPP3BIaFh4RGRUdExseQZEBefkJiUnJKalp5BngGZWdk5uXn5BemFZAZBUXFJaVl5RSWZ9jMwVFXX1NbVNzSSq5+hqbmlta29g2z9DJ1d3T29ffhUAABKPSh5Xst3GwAAAABJRU5ErkJggg==";function so(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function x0(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){so(r,e,i,o,a,"next",u)}function a(u){so(r,e,i,o,a,"throw",u)}o(void 0)})}}var ao={texture_url:oo,lineWidth:10,color:16777215},on=class extends A0{registryEvent(){this.navigation.bmap.context.addEventListener("control-change",this.onControlChange),this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.bmap.context.addEventListener("resize",this.onResize)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("control-change",this.onControlChange),this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.bmap.context.removeEventListener("resize",this.onResize)}getDepthTestByControl(){let t=this.navigation.bmap.context.control.getPolarAngle();return!(t>=0&&t<=.15)}setDepthTest(t){this.depthTest=t,this.material&&(this.material.depthTest=t)}getRepeat(){let{points:t,navigation:{bmap:{context:{camera:n,clientSize:{width:e,height:i}}}}}=this,r=t.map(([a,u])=>y(new M0(a,u,0),n,e,i)).map(({x:a,y:u})=>[a,u]);return Y(r)/32}changeRepeat(){if(!this.material)return;let t=this.getRepeat();this.material.repeat=new Jn(t,1)}loadTexture(t){return new Promise((n,e)=>{new E0().load(t,n,void 0,e)})}transformPoints(t){let n=[];for(let e=0;e<t.length;e++)n.push(...t[e],0);return n}updatePoints(t){this.points=t,this.changeRepeat();let n=this.transformPoints(t);this.geometry&&this.geometry.setPoints(n)}movePath(t){this.material&&(this.material.thresholdRatio=t)}create(t){var n=this;return x0(function*(){let e=n.geometry=new k;if(n.updatePoints(t),!n.texture){let o=n.texture=yield n.loadTexture(n.config.texture_url);o.wrapS=o.wrapT=w0}let i=n.material=new Ut({useMap:!0,color:new S0(n.config.color),transparent:!0,resolution:new Jn(n.navigation.bmap.context.clientSize.width,n.navigation.bmap.context.clientSize.height),depthTest:n.depthTest,sizeAttenuation:!1,lineWidth:n.config.lineWidth*2,map:n.texture,blending:b0,repeat:new Jn(n.getRepeat(),1)}),r=n.mesh=new C0(e,i);return r.renderOrder=9,n.add(r),r})()}dispose(){var t,n,e;this.unRegistryEvent(),this.clear(),(t=this.geometry)==null||t.dispose(),(n=this.material)==null||n.dispose(),(e=this.texture)==null||e.dispose()}constructor(t,n){super(),this.navigation=t,this.mesh=null,this.geometry=null,this.material=null,this.texture=null,this.config=ao,this.points=[],this.basicRepeat=1,this.prevCameraZoom=0,this.depthTest=!0,this.onControlChange=()=>{let e=this.navigation.bmap.context.camera.zoom;e!==this.prevCameraZoom&&(this.prevCameraZoom=e,this.changeRepeat()),this.setDepthTest(this.getDepthTestByControl())},this.onUpdate=()=>{this.texture},this.onResize=()=>{if(this.material){let{width:e,height:i}=this.navigation.bmap.context.clientSize;this.material.resolution.set(e,i)}},this.config=Object.assign({},ao,n),this.registryEvent(),this.prevCameraZoom=this.navigation.bmap.context.camera.zoom,this.setDepthTest(this.getDepthTestByControl())}};import{Tween as ti,Easing as D0}from"@tweenjs/tween.js";import{Vector3 as Ft}from"three";import{EventDispatcher as I0}from"three";import{Tween as R0}from"@tweenjs/tween.js";import{throttle as P0}from"lodash";function uo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function T0(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){uo(r,e,i,o,a,"next",u)}function a(u){uo(r,e,i,o,a,"throw",u)}o(void 0)})}}function Zn(){return Zn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},Zn.apply(this,arguments)}var L0={offsetDistance:15,offsetToResetTime:3e3,directionEmitThreshold:5,simulationSpeed:1},sn=class extends I0{get curRoutePath(){return this.paths[this.routeIndex]||null}get curRoutePathPoints(){var t;return((t=this.curRoutePath)==null?void 0:t.points)||[]}registryEvent(){this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.addEventListener("add-path",this.onAddPaths)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.removeEventListener("add-path",this.onAddPaths)}resetStatus(t){this.offset=!1,this.reset=!1,this.routeIndex=0,this.pointIndex=0,t.length&&(this.position=t[0].points[0])}emitNavigationStatus(){let t=this.getNavigationInfo();t&&this.dispatchEvent({type:"navigation-info",info:t})}adsorb(t,n){let{curRoutePathPoints:e,position:i,curRoutePath:r,paths:o,routeIndex:a}=this;if(!e.length)return null;let u=e;if(i){let g=St(e,i);u=u.slice(g+1),u.unshift(i)}let l=[{floor:r==null?void 0:r.floor,points:u},...o.slice(a+1)],{distance:c,closestPoint:h,index:p,i:f}=l.reduce((g,_,x)=>{if(_.floor!==t)return g;let{distance:C,closestPoint:M,index:P}=_.points.reduce((R,A,X,v)=>{if(!v[X+1])return Zn({},R,{distance:R.distance===1/0?L(A,n):R.distance});let{distance:H,closestPoint:ne}=Zi(n,A,v[X+1]);return H<R.distance?{distance:H,closestPoint:ne,index:X}:R},{distance:1/0,closestPoint:_.points[0],index:0});return C<g.distance?{distance:C,closestPoint:M,index:x,i:P}:g},{distance:1/0,closestPoint:u[0],index:0,i:0});return{distance:c,closestPoint:h,routeIndex:p+a,pointIndex:p===0?f+this.pointIndex:f}}toPosition(t,n){let e=this.adsorb(t,n);if(console.log("adsorbData",e),!e)return;let{distance:i,closestPoint:r,routeIndex:o,pointIndex:a}=e;i>this.options.offsetDistance?(this.offset=!0,this.resetTimer||(this.resetTimer=this.timer.setTimeout(()=>{this.reset=!0,this.resetTimer=null},this.options.offsetToResetTime))):(this.offset=!1,this.reset=!1,this.resetTimer&&(this.timer.clearTimeout(this.resetTimer),this.resetTimer=null)),this.routeIndex=o,this.pointIndex=a,this.position=r,this.emitNavigationStatus()}startSimulation(){this.resetStatus(this.paths),this.emitNavigationStatus(),this.startCurRouteSimulation()}pause(){var t;this.tweenUtil.pause(),(t=this.throttleUpdatePosition)==null||t.cancel()}startCurRouteSimulation(){var t=this;return T0(function*(){let{curRoutePath:n}=t;if(!n)return;t.simulationTween&&t.tweenUtil.remove(t.simulationTween);let e=[];return new Promise(i=>{let r=[t.position,...t.curRoutePathPoints.slice(t.pointIndex+1)],o=t.getCurRouteRemainDistance(),a=o/t.options.simulationSpeed,u=t.throttleUpdatePosition=P0(c=>{let h=Qt(r,c.distance);h&&(e.push({floor:n.floor,pos:h}),t.toPosition(n.floor,h))},100),l=t.simulationTween=new R0({distance:0},t.tweenUtil.group).to({distance:o},a*1e3).onUpdate(u).onComplete(()=>{t.tweenUtil.remove(l),u.flush(),u.cancel(),t.routeIndex+1<t.paths.length?(t.routeIndex++,t.position=t.paths[t.routeIndex].points[0],t.pointIndex=0,setTimeout(()=>{i(t.startCurRouteSimulation())},3e3)):(i(!0),console.log(e,t.routeIndex,t.paths))}).start()})})()}changeSimulationSpeed(t){this.options.simulationSpeed=t,this.startCurRouteSimulation()}getCurRouteRemainDistance(){let{curRoutePathPoints:t,pointIndex:n,position:e}=this;if(!t.length)return 0;let i=[e,...t.slice(n+1)];return Y(i)}getCurRouteToStartDistance(){let{curRoutePathPoints:t,pointIndex:n,position:e}=this;if(!t.length)return 0;let i=[...t.slice(0,n+1),e];return Y(i)}getRemainDistance(){let t=this.getCurRouteRemainDistance();return{total:this.paths.slice(this.routeIndex+1).reduce((i,r)=>i+r.distance,0)+t,curRoute:t}}getNextDirDistance(){if(!this.position)return null;let{pointIndex:t,curRoutePathPoints:n,position:e}=this,i=t,r=J.FRONT,o=0,a=Date.now();for(;r===J.FRONT&&o<this.options.directionEmitThreshold&&Date.now()-a<5;){let l=n[i],c=n[i+1],h=n[i+2];!l||!c?r=J.END:t===0?L(l,e)<5&&(r=J.START):(o+=L(e,c),h?(r=Rn(l,c,h),i+=1):r=J.END)}return r===J.END&&o<=this.options.directionEmitThreshold?{dir:r,distance:o}:this.getCurRouteToStartDistance()<=5?{dir:J.START,distance:o}:(o>=this.options.directionEmitThreshold&&(r=J.FRONT),{dir:r,distance:o})}getNavigationInfo(){let{total:t,curRoute:n}=this.getRemainDistance(),e=this.getNextDirDistance();if(!e)return null;let{dir:i,distance:r}=e;return i===J.END&&r>15&&(i=J.FRONT),n<=10&&(i=J.END),{distance:t,curRouteDistance:n,nextDirDistance:r,dir:i,pos:this.position,routeIndex:this.routeIndex,offset:this.offset,reset:this.reset}}dispose(){this.timer.dispose(),this.unRegistryEvent(),this.tweenUtil.clear()}constructor(t,n,e){super(),this.navigation=t,this.offset=!1,this.reset=!1,this.position=[0,0],this.routeIndex=0,this.pointIndex=0,this.paths=[],this.timer=new D,this.resetTimer=null,this.tweenUtil=new wt,this.onAddPaths=({paths:i})=>{this.paths=i,this.resetStatus(i)},this.onUpdate=()=>{this.tweenUtil.update()},this.options=Object.assign({},L0,n),this.roadData=e,this.registryEvent()}};import{DataTexture as B0,LinearFilter as lo,RGBAFormat as co,Sprite as N0,SpriteMaterial as O0}from"three";var Ct=class s extends N{addDebug(){s.canvas.style.cssText=`
106
106
  position: fixed;
package/lib/bmap.min.js CHANGED
@@ -100,7 +100,7 @@
100
100
  gl_FragColor = vec4(uColor2, uOpacity); // \u5176\u4ED6\u9762\u989C\u8272\uFF09
101
101
  }
102
102
  }
103
- `,e=-1/0,i=this.geometry.getAttribute("position");if(i)for(let o=0;o<i.count;o++){let a=i.getZ(o);a>e&&(e=a)}let r=new $.ShaderMaterial({uniforms:{maxZ:{value:e},uColor:{value:new $.Color(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new $.Color(Ut(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:n,transparent:!0});this.material=r}initLineMaterial(){let t=B.createLineMaterial({color:this.options[0].strokeColor,opacity:this.options[0].strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new $.Mesh(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],n=this.options[0].height+this.options[0].deltaHeight;return this.options.map(e=>{let{coords:i}=e.geometry;for(let r=0;r<i.length;r++){let o=i[r];for(let a=0;a<o.length;a++){let u=o[a],l=a+1===o.length?o[0]:o[a+1];t.push(new $.Vector3(u[0],u[1],n)),t.push(new $.Vector3(l[0],l[1],n))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),n=new $.BufferGeometry().setFromPoints(t);this.lineGeometry=n}createBorder(){this.line&&this.remove(this.line);let t=new $.LineSegments(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t;this.geometry.dispose(),this.material.dispose(),(t=this.line)==null||t.geometry.dispose(),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>ui({},ti,e)),this.init()}};var W=m("three");var so=m("lodash");function oo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function sn(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){oo(r,e,i,o,a,"next",u)}function a(u){oo(r,e,i,o,a,"throw",u)}o(void 0)})}}function li(){return li=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},li.apply(this,arguments)}var sa={text:"",icon:"",icon_size:[22,22],level:1,collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},text_font_size:14,icon_rotate:0,depth_test:!1},j=class extends W.Object3D{get durIconAndText(){return this.options.icon&&this.options.text?2:0}get offset(){return this.options.icon&&this.options.text?0:.5}get iconWidth(){return this.options.icon?this.options.icon_size[0]:0}get iconHeight(){return this.options.icon?this.options.icon_size[1]:0}get textWidth(){return this.options.text?this.options.text_font_size*this.textAspect:0}get textHeight(){return this.options.text?this.options.text_font_size:0}get deltaZ(){return!this.options.icon&&this.options.text?.1+this.offset*(this.iconHeight+this.durIconAndText+this.textHeight)/this.context.camera.zoom:.1}get canSelect(){return this.visible&&(this.spriteIcon?this.spriteIcon.visible:!0)&&(this.spriteText?this.spriteText.visible:!0)}registryEvent(){this.context.addEventListener("control-zoom-change",this._initScale);var t=this;this.addEventListener("change-icon",sn(function*({value:n}){t._initIconPromise&&(yield t._initIconPromise),t.spriteIcon&&(t.remove(t.spriteIcon),t.spriteIcon=void 0),yield t.initIcon(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})),this.addEventListener("change-text",({value:n})=>{this.spriteText&&(this.remove(this.spriteText),this.spriteText=void 0),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-icon_rotate",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.rotation=n/180*Math.PI)}),this.addEventListener("change-icon_size",({value:n})=>{this.spriteIcon&&this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-depth_test",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.depthTest=n),this.spriteText&&(this.spriteText.material.depthTest=n)})}unRegistryEvent(){this.context.removeEventListener("control-zoom-change",this._initScale)}getPosition(){return this.position}initIcon(){var t=this;return sn(function*(){if(t.options.icon)return t._initIconPromise=new Promise(sn(function*(n){let e=yield Bt.getTextureByUrl(t.options.icon),i=new W.Sprite(new W.SpriteMaterial({map:e,transparent:!0,alphaTest:.2,depthTest:t.options.depth_test,rotation:t.options.icon_rotate/180*Math.PI}));i.visible=!1,i.renderOrder=1e5+t.options.level,e.needsUpdate=!0,t.add(i),t.spriteIcon=i,n(i)})).then(()=>{t._initIconPromise=null})})()}initText(){if(this.options.text){let t=ht.getTextureByText(this.options.text);this.textAspect=t.image.width/t.image.height;let n=new W.Sprite(new W.SpriteMaterial({map:t,transparent:!0,alphaTest:.2,depthTest:this.options.depth_test}));n.visible=!1,n.renderOrder=100001+this.options.level,t.needsUpdate=!0,this.spriteText=n,this.add(n)}}initSize(){var t,n;let e=0,i=0,{icon:r,text:o}=this.options;r?o?(e=0,i=e*(this.iconHeight/this.textHeight)-this.iconHeight/this.textHeight-this.durIconAndText/this.textHeight):(e=.5,i=0):o?(i=.5,e=0):(e=0,i=0),(t=this.spriteIcon)==null||t.center.set(.5,e),(n=this.spriteText)==null||n.center.set(.5,i)}init(){var t=this;return sn(function*(){yield t.initIcon(),t.initText(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})()}resetZ(){let t=this.deltaZ;this.spriteIcon&&(this.spriteIcon.position.z=t),this.spriteText&&(this.spriteText.position.z=t)}getBox(t){let{clientSize:{width:n,height:e}}=this.context,i=n*(t.x+1)/2,r=e*(-t.y+1)/2;r+=this.offset*(this.iconHeight+this.durIconAndText+this.textHeight);let o=this.iconWidth/2,a=new W.Box2(new W.Vector2(i-o,r-this.iconHeight),new W.Vector2(i+o,r)),u=this.textWidth/2,l=new W.Box2(new W.Vector2(i-u,r-this.textHeight-this.durIconAndText-this.iconHeight),new W.Vector2(i+u,r-this.iconHeight-this.durIconAndText));return this.box=l.union(a),this.box}renderBoxHelper(t,n){if(!this.boxHelper){let e=document.createElement("div");e.style.position="absolute",e.style.zIndex="999",e.style.border="1px solid red",e.style.pointerEvents="none",this.boxHelper=e,this.context.container.appendChild(e)}t&&n?(this.boxHelper.style.left=t+"px",this.boxHelper.style.top=n+"px",this.boxHelper.style.width="2px",this.boxHelper.style.height="2px"):(this.boxHelper.style.left=this.box.min.x+"px",this.boxHelper.style.top=this.box.min.y+"px",this.boxHelper.style.width=this.box.max.x-this.box.min.x+"px",this.boxHelper.style.height=this.box.max.y-this.box.min.y+"px")}parentSetVisible(t){this.spriteText&&(this.spriteText.visible=t),this.spriteIcon&&(this.spriteIcon.visible=t),this.boxHelper&&(this.boxHelper.style.display=t?"block":"none")}dispose(){this.clear(),this.unRegistryEvent(),this.spriteText=void 0,this.spriteIcon=void 0}constructor(t,n){super(),this.context=t,this.textAspect=1,this.box=new W.Box2,this._initIconPromise=null,this._initScale=({zoom:e})=>{if(this.spriteText){let r=this.textHeight/e;this.spriteText.scale.set(this.textAspect*r,r,.1)}if(this.spriteIcon){var i;(i=this.spriteIcon)==null||i.scale.set(this.options.icon_size[0]/e,this.options.icon_size[1]/e,.1)}this.resetZ()},this.options=he((0,so.cloneDeep)(li({},sa,n)),this),this.position.set(this.options.position.x,this.options.position.y,this.options.position.z),this.registryEvent(),this.init()}};var pt=m("three"),uo=m("three/examples/jsm/utils/BufferGeometryUtils");function ao(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function aa(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){ao(r,e,i,o,a,"next",u)}function a(u){ao(r,e,i,o,a,"throw",u)}o(void 0)})}}function ci(){return ci=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},ci.apply(this,arguments)}var ua={airHeight:0,deltaHeight:0,height:0,geometry:{cds:[],type:"polygon",coords:[],curveCpt:[],curveIndex:[]},texts:[],fillColor:"#ffffff",fillOpacity:0,strokeColor:"#ffffff",strokeOpacity:0,secondHeight:0,secondRotate:0,center_x:0,center_y:0},an=class extends pt.Object3D{init(){var t=this;return aa(function*(){let n=t.options.map(a=>ht.getTextureByText(a.texts[0],{fillStyle:jn(a.fillColor,a.fillOpacity),strokeStyle:jn(a.strokeColor,a.strokeOpacity),lineWidth:6,font:"54px sans-serif"})),e=n.map((a,u)=>{let l=t.options[u],{width:c,height:h}=a.image,p=c/h,f=l.secondHeight*p,g=new pt.PlaneGeometry(f,l.secondHeight),y=new pt.Matrix4().makeTranslation(l.center_x,l.center_y,l.airHeight+l.deltaHeight+l.height).multiply(new pt.Matrix4().makeRotationZ(l.secondRotate));return g.applyMatrix4(y),g}),i=(0,uo.mergeGeometries)(e,!0);e.forEach(a=>a.dispose());let r=n.map(a=>{let u=new pt.MeshBasicMaterial({map:a,alphaTest:1,side:pt.DoubleSide});return a.needsUpdate=!0,u}),o=new pt.Mesh(i,r);t.mesh=o,t.position.z+=.04,t.add(o)})()}dispose(){var t,n;(t=this.mesh)==null||t.geometry.dispose(),((n=this.mesh)==null?void 0:n.material).forEach(e=>e.dispose()),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>ci({},ua,e)),this.init()}};var lo=m("three");function hi(){return hi=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},hi.apply(this,arguments)}var un=class extends xt{setEnable(t){super.setEnable(t),Z(this.rect,0,0,0,0),t?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:n,container:{clientWidth:e,clientHeight:i}}}=this,r=C(this.startPoint,n,e,i),o=C(this.endPoint,n,e,i),a={x:Math.min(r.x,o.x),y:Math.min(r.y,o.y)},u={x:Math.max(r.x,o.x),y:Math.max(r.y,o.y)},l=this.searchMapInFrustum(a,u);this.dispatchEvent({type:"selected",list:l})}}searchMapInFrustum(t,n){var e;let{context:i}=this;return((e=i.currentFloor)==null?void 0:e.graphicLayer.children.filter(r=>r instanceof V&&this.searchChildInFrustum(r,t,n)))||[]}searchChildInFrustum(t,n,e){let{context:{camera:i,container:{clientWidth:r,clientHeight:o}}}=this;if(!t)return!1;if(!t.mesh){let p=t.getPosition();if(p){let f=C(p,i,r,o);return zt(f,n,e)}return!1}t.mesh.geometry.boundingBox||t.mesh.geometry.computeBoundingBox();let a=t.mesh.geometry.boundingBox;if(!a)return!1;let{min:u,max:l}=a,c=C(u,i,r,o),h=C(l,i,r,o);return!(!zt(c,n,e)||!zt(h,n,e))}dispose(){this.unRegistryEvent()}constructor(t){super(t),this.frustum=new lo.Frustum,this.onPointerDown=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.startPoint=r),this.endPoint=void 0},this.onPointerMove=i=>{if(!this.enable||!this.startPoint)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r)},this.onPointerUp=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r),this.doSelect(),this.startPoint=void 0},this.onUpdate=()=>{if(this.startPoint){let i=this.getSvgCoordinate(this.startPoint),r=hi({},i);this.endPoint&&(r=this.getSvgCoordinate(this.endPoint));let o={x:Math.min(i.x,r.x),y:Math.min(i.y,r.y)},a=Math.abs(r.x-i.x),u=Math.abs(r.y-i.y);Z(this.rect,o.x,o.y,a,u)}else Z(this.rect,0,0,0,0)};let{config:{selectBox:{fill:n,stroke:e}}}=t;this.rect=kt(e,n),this.svg.appendChild(this.rect),this.registryEvent()}};var ln=class extends co.EventDispatcher{get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.context.config.enableBoxSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}constructor(t){super(),this.context=t,this._list=new Set,this.downPoint=null,this.isMultipleSelect=!1,this.onPointerDown=n=>{this.downPoint={x:n.offsetX,y:n.offsetY}},this.onPointerUp=n=>{if(!this.downPoint)return;let{offsetX:e,offsetY:i}=n,{x:r,y:o}=this.downPoint;if(Math.sqrt((r-e)**2+(o-i)**2)>3)return;let{graphics:a}=this.context.getGraphicsByDeviceXy(e,i),u=new Set(a.map(c=>c.options.id));this.context.getPoisByDeviceXy(e,i).forEach(c=>{if(!u.has(c.options.id)){var h;let p=((h=this.context.currentFloor)==null?void 0:h.graphicLayer.graphicMap.get(c.options.id))||null;p&&p.options.geometry.type==="point"&&(a.push(p),u.add(c.options.id))}}),(pe?n.metaKey:n.ctrlKey)||this._list.clear(),a.forEach(c=>this._list.add(c)),this.selectEnd(),this.downPoint=null},this.onPointerOut=n=>{this.disableBoxSelection()},this.onKeyDown=n=>{fe(n.key)&&this.enableBoxSelection()},this.onKeyUp=n=>{fe(n.key)&&this.disableBoxSelection()},this.onBoxSelected=({list:n})=>{this._list.clear(),n.forEach(e=>{this._list.add(e)}),this.selectEnd()},this.boxSelection=new un(t),this.boxSelection.setEnable(!1),this.registryEvent()}};var hn=m("three");var cn=class extends hn.EventDispatcher{handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel),document.body.addEventListener("pointermove",this.onBodyPointerMove)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel),document.body.removeEventListener("pointermove",this.onBodyPointerMove)}dispose(){this.unRegistryEvent(),this.timer.dispose()}constructor(t){super(),this.context=t,this.curGraphics=new Set,this.timer=new Q,this.graphicTimerMap=new Map,this.onPointerMove=({graphics:n,pois:e,e:i})=>{let r=e.map(l=>{var c;return(c=this.context.currentFloor)==null?void 0:c.graphicLayer.graphicMap.get(l.options.id)}).filter(l=>l&&l.options.geometry.type==="point");if(!n.length&&!r.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:o}=this.context.config.hover,a=new Set;if(r.length){let l,c=1e4;r.forEach(h=>{let p=e.find(f=>f.options.id===h.options.id);if(p instanceof te){let{x:f,y:g}=p.clientPos,y=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);y<c&&(c=y,l=h)}else if(p instanceof j){let{x:f,y:g}=p.box.getCenter(new hn.Vector2),y=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);y<c&&(c=y,l=h)}}),a.add(l)}a.size||n.forEach(l=>a.add(l)),a.forEach(l=>{if(this.graphicTimerMap.get(l)||this.curGraphics.has(l))return;let c=this.timer.setTimeout(()=>{this.curGraphics.add(l),this.graphicTimerMap.delete(l),this.timer.clearTimeout(c),this.handleHoverGraphicsChange()},o);this.graphicTimerMap.set(l,c)}),this.graphicTimerMap.forEach((l,c)=>{a.has(c)||(this.timer.clearTimeout(l),this.graphicTimerMap.delete(c))});let u=this.curGraphics.size;this.curGraphics.forEach(l=>{a.has(l)||this.curGraphics.delete(l)}),u!==this.curGraphics.size&&this.handleHoverGraphicsChange()},this.onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()},this.onBodyPointerMove=n=>{if(this.curGraphics.size){let e=this.context.container.getBoundingClientRect();(n.clientX<e.left||n.clientX>e.right||n.clientY<e.top||n.clientY>e.bottom)&&this.onPointerLevel()}},this.registryEvent()}};var ee=m("three");var pn=class{updateBox(){this.box.setFromObject(this.context.scene)}setEnable(t){this.enable=t,t?this.registryEvent():this.unRegistryEvent()}changePrevCamera(){this.prevCamera={position:this.context.camera.position.clone(),zoom:this.context.camera.zoom,target:this.context.control.target.clone()}}backToPrevCamera(){this.setEnable(!1),this.context.camera.position.copy(this.prevCamera.position),this.context.camera.zoom=this.prevCamera.zoom,this.context.control.target.copy(this.prevCamera.target),this.context.control.update(),this.setEnable(!0)}registryEvent(){this.context.addEventListener("control-change",this.onCameraChange)}unRegistryEvent(){this.context.removeEventListener("control-change",this.onCameraChange)}getCurFloorScreenPosition(){if(!this.context.scene.children.filter(S=>S instanceof vt).length)return null;let n=this.box,{camera:e,clientSize:{width:i,height:r}}=this.context,{min:o,max:a}=n,u=C(o,e,i,r),l=C(a,e,i,r),c=C(new ee.Vector3(o.x,a.y,a.z),e,i,r),h=C(new ee.Vector3(a.x,o.y,o.z),e,i,r),p=Math.min(u.x,l.x,c.x,h.x),f=Math.max(u.x,l.x,c.x,h.x),g=Math.min(u.y,l.y,c.y,h.y),y=Math.max(u.y,l.y,c.y,h.y);return{left:p,right:f,top:g,bottom:y}}checkDistanceToScreenEdge({left:t,right:n,top:e,bottom:i}){let{width:r,height:o}=this.context.clientSize,[a,u,l,c]=this.context.config.cameraBound.padding,h=n>=c,p=r-t>=u,f=o-e>=l,g=i>=a;return h&&p&&f&&g}dispose(){this.unRegistryEvent()}constructor(t){this.context=t,this.prevCamera={position:new ee.Vector3,zoom:1,target:new ee.Vector3},this.enable=!0,this.box=new ee.Box3,this.onCameraChange=()=>{let n=this.getCurFloorScreenPosition();if(n){let{left:e,right:i,top:r,bottom:o}=n;this.checkDistanceToScreenEdge({left:e,right:i,top:r,bottom:o})?this.changePrevCamera():this.backToPrevCamera()}},this.registryEvent(),this.changePrevCamera()}};var fi=m("three"),ne=m("@tweenjs/tween.js");var v=m("three"),fn=new v.Ray,ho=new v.Plane,la=Math.cos(70*v.MathUtils.DEG2RAD),dn=class extends v.EventDispatcher{dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerUp),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null)}constructor(t,n){super(),this.rotateLineStart=new v.Vector2,this.rotateLineEnd=new v.Vector2,this.spherical=new v.Spherical,this.sphericalDelta=new v.Spherical,this.object=t,this.domElement=n,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new v.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.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.screenSpacePanning=!1,this.mouseButtons={LEFT:v.MOUSE.PAN,MIDDLE:v.MOUSE.DOLLY,RIGHT:v.MOUSE.ROTATE},this.touches={ONE:v.TOUCH.PAN,TWO:v.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 a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(d){d.addEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=d},this.stopListenToKeyEvents=function(){var d;(d=this._domElementKeyEvents)==null||d.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null},this.saveState=function(){e.target0.copy(e.target),e.position0.copy(e.object.position),e.zoom0=e.object.zoom},this.reset=function(){e.target.copy(e.target0),e.object.position.copy(e.position0),e.object.zoom=e.zoom0,e.object.updateProjectionMatrix(),e.dispatchEvent({type:"change"}),e.update(),r=i.NONE},this.update=function(){let d=new v.Vector3,_=new v.Quaternion().setFromUnitVectors(t.up,new v.Vector3(0,1,0)),I=_.clone().invert(),N=new v.Vector3,lt=new v.Quaternion,It=new v.Vector3,St=2*Math.PI;return function(Hn=null){let Nt=e.object.position;d.copy(Nt).sub(e.target),d.applyQuaternion(_),a.setFromVector3(d),e.autoRotate&&r===i.NONE&&ae(Ee(Hn)),e.enableDamping?(a.theta+=u.theta*e.dampingFactor,a.phi+=u.phi*e.dampingFactor):(a.theta+=u.theta,a.phi+=u.phi);let Ot=e.minAzimuthAngle,Dt=e.maxAzimuthAngle;isFinite(Ot)&&isFinite(Dt)&&(Ot<-Math.PI?Ot+=St:Ot>Math.PI&&(Ot-=St),Dt<-Math.PI?Dt+=St:Dt>Math.PI&&(Dt-=St),Ot<=Dt?a.theta=Math.max(Ot,Math.min(Dt,a.theta)):a.theta=a.theta>(Ot+Dt)/2?Math.max(Ot,a.theta):Math.min(Dt,a.theta)),a.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,a.phi)),a.makeSafe(),e.enableDamping===!0?e.target.addScaledVector(c,e.dampingFactor):e.target.add(c),e.zoomToCursor&&ut||e.object.isOrthographicCamera?a.radius=zn(a.radius):a.radius=zn(a.radius*l),d.setFromSpherical(a),d.applyQuaternion(I),Nt.copy(e.target).add(d),e.object.lookAt(e.target),e.enableDamping===!0?(u.theta*=1-e.dampingFactor,u.phi*=1-e.dampingFactor,c.multiplyScalar(1-e.dampingFactor)):(u.set(0,0,0),c.set(0,0,0));let Ne=!1;if(e.zoomToCursor&&ut){let Se=null;if(e.object.isPerspectiveCamera){let Me=d.length();Se=zn(Me*l);let Oe=Me-Se;e.object.position.addScaledVector(U,Oe),e.object.updateMatrixWorld()}else if(e.object.isOrthographicCamera){let Me=new v.Vector3(b.x,b.y,0);Me.unproject(e.object),e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),Ne=!0;let Oe=new v.Vector3(b.x,b.y,0);Oe.unproject(e.object),e.object.position.sub(Oe).add(Me),e.object.updateMatrixWorld(),Se=d.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),e.zoomToCursor=!1;Se!==null&&(e.screenSpacePanning?e.target.set(0,0,-1).transformDirection(e.object.matrix).multiplyScalar(Se).add(e.object.position):(fn.origin.copy(e.object.position),fn.direction.set(0,0,-1).transformDirection(e.object.matrix),Math.abs(e.object.up.dot(fn.direction))<la?t.lookAt(e.target):(ho.setFromNormalAndCoplanarPoint(e.object.up,e.target),fn.intersectPlane(ho,e.target))))}else e.object.isOrthographicCamera&&(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),Ne=!0);return l=1,ut=!1,Ne||N.distanceToSquared(e.object.position)>o||8*(1-lt.dot(e.object.quaternion))>o||It.distanceToSquared(e.target)>0?(e.dispatchEvent({type:"change"}),N.copy(e.object.position),lt.copy(e.object.quaternion),It.copy(e.target),Ne=!1,!0):!1}}();let e=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},r=i.NONE,o=1e-6,a=new v.Spherical,u=new v.Spherical,l=1,c=new v.Vector3,h=new v.Vector2,p=new v.Vector2,f=new v.Vector2,g=new v.Vector2,y=new v.Vector2,S=new v.Vector2,M=new v.Vector2,P=new v.Vector2,k=new v.Vector2,U=new v.Vector3,b=new v.Vector2,ut=!1,A=[],rt={};function Ee(d){return d!==null?2*Math.PI/60*e.autoRotateSpeed*d:2*Math.PI/60/60*e.autoRotateSpeed}function se(){return Math.pow(.95,e.zoomSpeed)}function ae(d){u.theta-=d}function ue(d){u.phi-=d}let Ui=function(){let d=new v.Vector3;return function(I,N){d.setFromMatrixColumn(N,0),d.multiplyScalar(-I),c.add(d)}}(),Fi=function(){let d=new v.Vector3;return function(I,N){e.screenSpacePanning===!0?d.setFromMatrixColumn(N,1):(d.setFromMatrixColumn(N,0),d.crossVectors(e.object.up,d)),d.multiplyScalar(I),c.add(d)}}(),le=function(){let d=new v.Vector3;return function(I,N){let lt=e.domElement;if(e.object.isPerspectiveCamera){let It=e.object.position;d.copy(It).sub(e.target);let St=d.length();St*=Math.tan(e.object.fov/2*Math.PI/180),Ui(2*I*St/lt.clientHeight,e.object.matrix),Fi(2*N*St/lt.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(Ui(I*(e.object.right-e.object.left)/e.object.zoom/lt.clientWidth,e.object.matrix),Fi(N*(e.object.top-e.object.bottom)/e.object.zoom/lt.clientHeight,e.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1)}}();function $n(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l/=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function $i(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l*=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function zi(d){if(!e.zoomToCursor)return;ut=!0;let _=e.domElement.getBoundingClientRect(),I=d.clientX-_.left,N=d.clientY-_.top,lt=_.width,It=_.height;b.x=I/lt*2-1,b.y=-(N/It)*2+1,U.set(b.x,b.y,1).unproject(e.object).sub(e.object.position).normalize()}function zn(d){return Math.max(e.minDistance,Math.min(e.maxDistance,d))}function Gi(d){h.set(d.clientX,d.clientY)}function Cs(d){zi(d),M.set(d.clientX,d.clientY)}function ki(d){g.set(d.clientX,d.clientY)}function As(d){p.set(d.clientX,d.clientY),f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let _=e.domElement;ae(2*Math.PI*f.x/_.clientHeight),ue(2*Math.PI*f.y/_.clientHeight),h.copy(p),e.update()}function Es(d){P.set(d.clientX,d.clientY),k.subVectors(P,M),k.y>0?$n(se()):k.y<0&&$i(se()),M.copy(P),e.update()}function Ss(d){y.set(d.clientX,d.clientY),S.subVectors(y,g).multiplyScalar(e.panSpeed),le(S.x,S.y),g.copy(y),e.update()}function Ms(d){zi(d),d.deltaY<0?$i(se()):d.deltaY>0&&$n(se()),e.update()}function bs(d){let _=!1;switch(d.code){case e.keys.UP:d.ctrlKey||d.metaKey||d.shiftKey?ue(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):le(0,e.keyPanSpeed),_=!0;break;case e.keys.BOTTOM:d.ctrlKey||d.metaKey||d.shiftKey?ue(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):le(0,-e.keyPanSpeed),_=!0;break;case e.keys.LEFT:d.ctrlKey||d.metaKey||d.shiftKey?ae(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):le(e.keyPanSpeed,0),_=!0;break;case e.keys.RIGHT:d.ctrlKey||d.metaKey||d.shiftKey?ae(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):le(-e.keyPanSpeed,0),_=!0;break}_&&(d.preventDefault(),e.update())}function Hi(){if(A.length===1)h.set(A[0].pageX,A[0].pageY);else{let d=(A[0].pageX-A[0].pageY)/(A[1].pageX-A[1].pageY),_=A[0].pageY-d*A[0].pageX;e.rotateLineStart.set(d,_);let I=.5*(A[0].pageX+A[1].pageX),N=.5*(A[0].pageY+A[1].pageY);h.set(I,N)}}function Vi(){if(A.length===1)g.set(A[0].pageX,A[0].pageY);else{let d=.5*(A[0].pageX+A[1].pageX),_=.5*(A[0].pageY+A[1].pageY);g.set(d,_)}}function Xi(){let d=A[0].pageX-A[1].pageX,_=A[0].pageY-A[1].pageY,I=Math.sqrt(d*d+_*_);M.set(0,I)}function ws(){e.enableZoom&&Xi(),e.enablePan&&Vi()}function Ts(){e.enableZoom&&Xi(),e.enableRotate&&Hi()}function ji(d){if(A.length==1)p.set(d.pageX,d.pageY);else{let I=Gn(d),N=.5*(d.pageX+I.x),lt=.5*(d.pageY+I.y);p.set(N,lt);let It=(d.pageY-I.y)/(d.pageX-I.x),St=I.y-It*I.x;if(e.rotateLineEnd.set(It,St),Number.isFinite(e.rotateLineEnd.x)&&Number.isFinite(e.rotateLineStart.x)){let kn=(e.rotateLineStart.y-e.rotateLineEnd.y)/(e.rotateLineEnd.x-e.rotateLineStart.x),Hn=It*kn+St;if(Number.isFinite(kn)&&Number.isFinite(Hn)){let Nt=Math.atan(e.rotateLineEnd.x)-Math.atan(e.rotateLineStart.x);Math.PI-Math.abs(Nt)<.5&&(Nt=-Math.sign(Nt)*(Math.PI-Math.abs(Nt))),Math.abs(Nt)<.1&&(u.theta+=Nt)}}e.rotateLineStart.copy(e.rotateLineEnd)}f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let _=e.domElement;ue(2*Math.PI*f.y/_.clientHeight),h.copy(p)}function Wi(d){if(A.length===1)y.set(d.pageX,d.pageY);else{let _=Gn(d),I=.5*(d.pageX+_.x),N=.5*(d.pageY+_.y);y.set(I,N)}S.subVectors(y,g).multiplyScalar(e.panSpeed),le(S.x,S.y),g.copy(y)}function qi(d){let _=Gn(d),I=d.pageX-_.x,N=d.pageY-_.y,lt=Math.sqrt(I*I+N*N);P.set(0,lt),k.set(0,Math.pow(P.y/M.y,e.zoomSpeed)),$n(k.y),M.copy(P)}function Is(d){e.enableZoom&&qi(d),e.enablePan&&Wi(d)}function Rs(d){e.enableZoom&&qi(d),e.enableRotate&&ji(d)}this.onPointerDown=function(_){e.enabled!==!1&&(A.length===0&&(e.domElement.setPointerCapture(_.pointerId),e.domElement.addEventListener("pointermove",e.onPointerMove),e.domElement.addEventListener("pointerup",e.onPointerUp)),Os(_),_.pointerType==="touch"?Bs(_):Ps(_))},this.onPointerMove=function(_){e.enabled!==!1&&(_.pointerType==="touch"?Ns(_):Ls(_))},this.onPointerUp=function(_){Ds(_),A.length===0&&(e.domElement.releasePointerCapture(_.pointerId),e.domElement.removeEventListener("pointermove",e.onPointerMove),e.domElement.removeEventListener("pointerup",e.onPointerUp)),e.dispatchEvent({type:"end"}),r=i.NONE};function Ps(d){let _;switch(d.button){case 0:_=e.mouseButtons.LEFT;break;case 1:_=e.mouseButtons.MIDDLE;break;case 2:_=e.mouseButtons.RIGHT;break;default:_=-1}switch(_){case v.MOUSE.DOLLY:if(e.enableZoom===!1)return;Cs(d),r=i.DOLLY;break;case v.MOUSE.ROTATE:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enablePan===!1)return;ki(d),r=i.PAN}else{if(e.enableRotate===!1)return;Gi(d),r=i.ROTATE}break;case v.MOUSE.PAN:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enableRotate===!1)return;Gi(d),r=i.ROTATE}else{if(e.enablePan===!1)return;ki(d),r=i.PAN}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function Ls(d){switch(r){case i.ROTATE:if(e.enableRotate===!1)return;As(d);break;case i.DOLLY:if(e.enableZoom===!1)return;Es(d);break;case i.PAN:if(e.enablePan===!1)return;Ss(d);break}}this.onMouseWheel=function(_){e.enabled===!1||e.enableZoom===!1||r!==i.NONE||(_.preventDefault(),e.dispatchEvent({type:"start"}),Ms(_),e.dispatchEvent({type:"end"}))},this.onKeyDown=function(_){e.enabled===!1||e.enablePan===!1||bs(_)};function Bs(d){switch(Qi(d),A.length){case 1:switch(e.touches.ONE){case v.TOUCH.ROTATE:if(e.enableRotate===!1)return;Hi(),r=i.TOUCH_ROTATE;break;case v.TOUCH.PAN:if(e.enablePan===!1)return;Vi(),r=i.TOUCH_PAN;break;default:r=i.NONE}break;case 2:switch(e.touches.TWO){case v.TOUCH.DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;ws(),r=i.TOUCH_DOLLY_PAN;break;case v.TOUCH.DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Ts(),r=i.TOUCH_DOLLY_ROTATE;break;default:r=i.NONE}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function Ns(d){switch(Qi(d),r){case i.TOUCH_ROTATE:if(e.enableRotate===!1)return;ji(d),e.update();break;case i.TOUCH_PAN:if(e.enablePan===!1)return;Wi(d),e.update();break;case i.TOUCH_DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Is(d),e.update();break;case i.TOUCH_DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Rs(d),e.update();break;default:r=i.NONE}}this.onContextMenu=function(_){e.enabled!==!1&&_.preventDefault()};function Os(d){A.push(d)}function Ds(d){delete rt[d.pointerId];for(let _=0;_<A.length;_++)if(A[_].pointerId==d.pointerId){A.splice(_,1);return}}function Qi(d){let _=rt[d.pointerId];_===void 0&&(_=new v.Vector2,rt[d.pointerId]=_),_.set(d.pageX,d.pageY)}function Gn(d){let _=d.pointerId===A[0].pointerId?A[1]:A[0];return rt[_.pointerId]}e.domElement.addEventListener("contextmenu",this.onContextMenu),e.domElement.addEventListener("pointerdown",this.onPointerDown),e.domElement.addEventListener("pointercancel",this.onPointerUp),e.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}};function po(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function pi(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){po(r,e,i,o,a,"next",u)}function a(u){po(r,e,i,o,a,"throw",u)}o(void 0)})}}var gn=class extends dn{registryEvent(){this.addEventListener("change",()=>{let t=this.camera.zoom;t!==this.prevCameraZoom&&(this.prevCameraZoom=t,this.dispatchEvent({type:"change-zoom",zoom:t}))}),this.context.addEventListener("update",this.tweenUpdate)}setPolarAngle(t,n=!1){let{maxPolarAngle:e,minPolarAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),r||(this.maxPolarAngle=e,this.minPolarAngle=i)}setPolarAngleByDuration(t,n=!1,e=500){var i=this;return pi(function*(){return e<=0?i.setPolarAngle(t,n):dt(new Promise(r=>{let o={polar:i.getPolarAngle()},a={polar:t},u=new ne.Tween(o,i.tweenGroup).to(a,e).onUpdate(()=>{i.setPolarAngle(o.polar,n)}).onComplete(()=>{i.enabled=!0,i.tweenGroup.remove(u),r(!0)}).onStart(()=>{i.enabled=!1}).start()}),e+500)})()}setAzimuthalAngle(t,n){let{maxAzimuthAngle:e,minAzimuthAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxAzimuthAngle=t,this.minAzimuthAngle=t,this.update()),r||(this.maxAzimuthAngle=e,this.minAzimuthAngle=i)}setAzimuthalAngleDuration(t,n=!1,e=500){return e<=0?this.setAzimuthalAngle(t,n):dt(new Promise(i=>{let r={azimuthal:this.getAzimuthalAngle()},o={azimuthal:t},a=new ne.Tween(r,this.tweenGroup).to(o,e).onUpdate(()=>{this.setAzimuthalAngle(r.azimuthal,n)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(a),i(!0)}).onStart(()=>{this.enabled=!1}).start()}),e+500)}getCameraLookAt(){return new fi.Vector3().subVectors(this.target,this.camera.position)}setCameraPositionByTarget(t,n){var e=this;return pi(function*(){let i=e.target.clone(),r=e.getCameraLookAt();if(!n){e.camera.position.copy(t.clone().sub(r)),e.target.copy(t.clone()),e.update();return}return dt(new Promise(o=>{let a=new ne.Tween(i,e.tweenGroup).to(t,n).onUpdate(()=>{e.camera.position.copy(i.clone().sub(r)),e.target.copy(i.clone()),e.update()}).onComplete(()=>{e.tweenGroup.remove(a),e.enabled=!0,o(!0)}).onStart(()=>{e.enabled=!1}).start()}),n+500)})()}setZoom(t,n,e=!1){let{minZoom:i,maxZoom:r}=this;(e||t>=i&&t<=r)&&(this.camera.position.copy(n.clone().sub(this.getCameraLookAt())),this.target.copy(n),this.camera.zoom=t,this.update())}setZoomByDuration(t,n,e=!1,i=500){var r=this;return pi(function*(){let o={zoom:r.camera.zoom,target:r.target.clone()};if(t!==r.camera.zoom)return i?dt(new Promise(a=>{let u=new ne.Tween(o,r.tweenGroup).to({zoom:t,target:n},i).onUpdate(()=>{r.setZoom(o.zoom,o.target,e)}).onComplete(()=>{r.tweenGroup.remove(u),r.enabled=!0,a(!0)}).onStart(()=>{r.enabled=!1}).start()}),i+500):r.setZoom(t,n,e)})()}setTargetByOffset(t,n=this.target.clone()){if(!t)return;this.camera.updateMatrix();let e=new fi.Vector3;e.setFromMatrixColumn(this.camera.matrix,1),e.normalize(),e.multiplyScalar(t/this.camera.zoom),n.add(e),this.setCameraPositionByTarget(n,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){super.dispose(),this.clearTween()}constructor(t,n,e){super(n,e),this.context=t,this.camera=n,this.domElement=e,this.prevCameraZoom=1,this.tweenGroup=new ne.Group,this.offsetY=0,this.tweenUpdate=()=>{this.tweenGroup.update()},this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=n.zoom,this.registryEvent()}};var ve=m("three");function di(){return di=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},di.apply(this,arguments)}var mn=class extends ve.WebGLRenderer{setCameraAndScene(t,n){this.scene=t,this.camera=n}autoRender(){this.scene&&this.camera&&this.enable&&(this.event.dispatchEvent({type:"update"}),this.render(this.scene,this.camera)),this.timer.requestAnimationFrame(()=>{this.autoRender()})}pauseRender(){this.enable=!1}continueRender(){this.enable=!0}addEventListener(t,n){this.event.addEventListener(t,n)}removeEventListener(t,n){this.event.removeEventListener(t,n)}dispose(){this.timer.dispose(),this.enable=!1,super.dispose()}constructor(t){super(di({antialias:!0,alpha:!0},t)),this.event=new ve.EventDispatcher,this.enable=!0,this.timer=new Q,this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.shadowMap.enabled=!0,this.shadowMap.autoUpdate=!0,this.shadowMap.type=ve.PCFSoftShadowMap}};var fo=m("three"),_n=class extends fo.Scene{constructor(){super()}};var go=m("three"),yn=class extends go.OrthographicCamera{constructor(t,n){super(-t/2,t/2,n/2,-n/2,-1e4,5e4),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};function mo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function ca(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){mo(r,e,i,o,a,"next",u)}function a(u){mo(r,e,i,o,a,"throw",u)}o(void 0)})}}var vn=class extends T.EventDispatcher{resizeClientSize(){let{x:t,y:n,width:e,height:i}=this.container.getBoundingClientRect();this.clientSize={width:e||this.container.clientWidth,height:i||this.container.clientHeight,x:t,y:n}}init(){let{clientWidth:t,clientHeight:n}=this.container;this.camera=new yn(t,n),this.renderer.setSize(t,n),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new gn(this,this.camera,this.renderer.domElement),this.control.maxPolarAngle=this.config.control.maxPolar,this.container.appendChild(this.renderer.domElement),this.scene.add(this.lights),this.basicRatio=this.getRatio(),this.control.addEventListener("change",()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})}),this.control.addEventListener("change-zoom",({zoom:e})=>{this.dispatchEvent({type:"control-zoom-change",zoom:e})}),this.renderer.addEventListener("update",()=>{this.dispatchEvent({type:"update"})}),this.cameraBound=new pn(this)}getRatio(t=new T.Vector3(0,0,0),n=new T.Vector3(100,0,0)){let{clientWidth:e,clientHeight:i}=this.container,r=C(t,this.camera,e,i),o=C(n,this.camera,e,i);return Math.ceil(Math.sqrt((o.x-r.x)**2+(o.y-r.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(n=>{n instanceof T.AmbientLight&&(n.color=new T.Color(t))})}switchFloor(t){this.currentFloor&&(this.scene.remove(this.currentFloor),this.currentFloor.dispose()),this.currentFloor=t,this.scene.add(t);let n=t.getCenter();n&&(this.lights.position.x=n.x,this.lights.position.y=n.y),this.cameraBound.updateBox()}getGraphicsByDeviceXy(t,n){var e;let i=new T.Vector2;i.x=t/this.clientSize.width*2-1,i.y=n/this.clientSize.height*-2+1;let r=new T.Raycaster;return r.setFromCamera(i,this.camera),r.ray.origin.sub(r.ray.direction.clone().multiplyScalar(100)),((e=this.currentFloor)==null?void 0:e.graphicLayer.getGraphicByRaycaster(r))||{graphics:[],position:null}}getPoisByDeviceXy(t,n){var e,i;let r=(e=this.currentFloor)==null?void 0:e.poiLayer.getPoiByDeviceXy(t,n),o=(i=this.currentFloor)==null?void 0:i.poiLayer2.getPoiByDeviceXy(t,n);return(r||[]).concat(o||[])}registryEvent(){window.addEventListener("resize",this.onWindowResize),this.container.addEventListener("click",this.onClick),this.container.addEventListener("pointerover",this.onPointerover),this.container.addEventListener("pointermove",this.onPointermove),this.container.addEventListener("pointerleave",this.onPointerleave),this.container.addEventListener("pointercancel",this.onPointerleave),this.container.addEventListener("pointerout",this.onPointerleave),this.selection.addEventListener("select",this.onSelectionSelect),this.hoverHelper.addEventListener("hover-change",this.onHoverChange)}unRegistryEvent(){window.removeEventListener("resize",this.onWindowResize),this.container.removeEventListener("click",this.onClick),this.container.removeEventListener("pointerover",this.onPointerover),this.container.removeEventListener("pointermove",this.onPointermove),this.container.removeEventListener("pointerleave",this.onPointerleave),this.container.removeEventListener("pointercancel",this.onPointerleave),this.container.removeEventListener("pointerout",this.onPointerleave),this.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange)}setPolarAngle(t,n=500){return this.control.setPolarAngleByDuration(t,!0,n)}setAzimuthalAngle(t,n=500){return this.control.setAzimuthalAngleDuration(t,!0,n)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,n,e=500){return this.control.setZoomByDuration(t,n,!0,e)}getFitCameraToObjectZoom(t,n=[20,20,20,20],e=500,i=!0){let[r,o,a,u]=n,{clientSize:{width:l,height:c}}=this,h=this.control.getPolarAngle();i&&this.setPolarAngle(0,0);let p=new T.Box3().setFromObject(t);this.setPolarAngle(h,0);let{max:f,min:g}=p,y=new T.Vector3(g.x,f.y,f.z),S=new T.Vector3(f.x,f.y,f.z),M=new T.Vector3(f.x,g.y,g.z),P=new T.Vector3(g.x,g.y,g.z),k=C(y,this.camera,l,c),U=C(S,this.camera,l,c),b=C(P,this.camera,l,c),ut=C(M,this.camera,l,c),rt=new T.Box2().setFromPoints([new T.Vector2(k.x,k.y),new T.Vector2(U.x,U.y),new T.Vector2(b.x,b.y),new T.Vector2(ut.x,ut.y)]).getSize(new T.Vector2),Ee=(l-o-u)/rt.x,se=(c-r-a)/rt.y,ae=Math.min(Ee,se),ue=new T.Vector3((f.x+g.x)/2,(f.y+g.y)/2,(f.z+g.z)/2);return{zoom:ae*this.camera.zoom,center:ue}}fitCameraToObject(t,n=[20,20,20,20],e=500,i=!0){let{zoom:r,center:o}=this.getFitCameraToObjectZoom(t,n,e,i);return this.setZoom(r,o,e)}getFitCameraToGroundZoom(t=[20,20,20,20],n=500,e=!0){if(this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,n,e).zoom}fitCameraToGround(t=[20,20,20,20],n=500,e=!0){return this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundLayer,t,n,e):Promise.resolve(!1)}setCameraPosition(t,n){var e=this;return ca(function*(){return e.control.setCameraPositionByTarget(t,n)})()}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}dispose(){this.control.dispose(),this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.unRegistryEvent(),this.renderer.domElement.remove(),this.renderer.dispose(),this.lights.children.forEach(t=>t.dispose()),Y(this.scene)}constructor(t,n){super(),this.container=t,this.config=n,this.scene=new _n,this.renderer=new mn,this.lights=Ki(),this.clientSize={width:0,height:0,x:0,y:0},this.renderRf=0,this.onWindowResize=()=>{let{container:e,camera:i,renderer:r}=this,{clientWidth:o,clientHeight:a}=e;o=Math.max(1,o),a=Math.max(1,a),i.left=-o/2,i.right=o/2,i.top=a/2,i.bottom=-a/2,i.updateProjectionMatrix(),r.setSize(o,a),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:o,height:a})},this.onClick=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY);i.length&&this.dispatchEvent({type:"graphic-click",graphics:i,position:r});let o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);o.length&&this.dispatchEvent({type:"poi-click",pois:o})},this.onPointerover=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-over",e,graphics:i,pois:o,position:r})},this.onPointermove=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-move",e,graphics:i,pois:o,position:r})},this.onPointerleave=e=>{this.dispatchEvent({type:"pointer-level"})},this.onSelectionSelect=({graphics:e,isMultipleSelect:i})=>{this.dispatchEvent({type:"select-graphic",graphics:e,isMultipleSelect:i})},this.onHoverChange=({graphics:e})=>{this.dispatchEvent({type:"hover",graphics:e})},this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new ln(this),this.hoverHelper=new cn(this),this.resizeClientSize(),this.registryEvent()}};var _o=m("lodash"),ha={apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get",equipmentList:"/api/inception-map/equipment/get",roadNetwork:"/api/inception-map/road_network/get"},enableBoxSelect:!0,resizeObserver:!1,initTransToMark:!1,heatMap:{radius:50,gradient:{0:"#8F9FCD",.5:"#6284FF",1:"#F95D5D"}},useFloorCache:!0,control:{maxPolar:1.2,defaultPolar:1.1,defaultAzimuthal:0},defaultPadding:[20,20,20,20],svg:{circle:{radius:"2",fill:"#1CADFF"},line:{stroke:"#1CADFF"}},selectBox:{stroke:"#1CADFF",fill:"rgba(28, 173, 255, 0.3)"},hover:{time:100},ground:{color:"#F6F6F6",opacity:1,height:.001,stroke:!1,strokeColor:"#E6E6E6",strokeOpacity:1},markGraphic:{color:"#EEF0F3",opacity:1,height:.001,stroke:!1,strokeColor:"#000",strokeOpacity:1},graphic:{fillOpacity:1},cameraBound:{padding:[150,150,150,150]},poi:{boxScale:1}};function yo(s){return(0,_o.merge)({},ha,s)}var Co=m("lodash");function vo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function gi(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){vo(r,e,i,o,a,"next",u)}function a(u){vo(r,e,i,o,a,"throw",u)}o(void 0)})}}function xn(){return xn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},xn.apply(this,arguments)}var zl=function(s){return s[s.D2=0]="D2",s[s.D3=1.1]="D3",s}({}),xo=class extends Cn.EventDispatcher{changeBuildingCenter(t,{brand:n,project:e}){let i=t?De(t.info.geometry.cds[0]):[0,0];this.buildingCenter=i,this.dispatchEvent({type:"center-change",center:i,project:e,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(n=>n!==t)}triggerHooks(t,n){this.dispatchEvent({type:t,data:n})}switchFloorByFloor(t,n=t.graphicLayer.children){this.triggerHooks(tt.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:n}),this.context.switchFloor(t),this.initialFloorCamera(),this.triggerHooks(tt.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:n})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(void 0,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*30,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}addModel(t,n){if(t.options.geometry.type==="polygon"){var e;let i=(e=this.context.currentFloor)==null?void 0:e.addModel(xn({},n,{position:t.getPosition().setZ(.1),id:t.options.id}));if(i){let{facilityAngle:r=0,facilityXScale:o=1,facilityYScale:a=1}=t.options.userData;i.rotateZ((180-r)/180*Math.PI),i.scale.set(o,a,1)}}}addHeatmap(t){var n;return(n=this.context.currentFloor)==null?void 0:n.addHeatmap(t)}getLegacyToGraphicMap(){var t;return((t=this.context.currentFloor)==null?void 0:t.userData.legacyToGraphicMap)||new Map}getFloorAllGraphics(){var t;return((t=this.context.currentFloor)==null?void 0:t.graphicLayer.children.filter(n=>n instanceof V))||[]}createGraphicPoi(t,n){if(this.context.currentFloor){n.id===void 0&&(n.id=t.options.id);let e=t.options.center,i=t.getCenter(),r=(e==null?void 0:e[0])||i.x,o=(e==null?void 0:e[1])||i.y;return console.log(r,o,e,i),this.context.currentFloor.addPoi(xn({},n,{position:{x:r,y:o,z:i.z+t.options.height/2}}))}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,n=500){let e=t.getPosition();return this.context.setCameraPosition(e,n)}translateElementToCenterX(t,n=500){var e=this;return gi(function*(){return dt(new Promise(i=>{let r=e.context.control.target.clone(),o=t.getPosition();e.timer.requestAnimationFrame(()=>{let{clientSize:{width:a,height:u},camera:l}=e.context,h=C(o,l,a,u).x-a/2,p=new Cn.Vector3;p.setFromMatrixColumn(e.context.camera.matrix,0),p.normalize(),p.multiplyScalar(h/e.context.camera.zoom),r.add(p),e.context.setCameraPosition(r,n).then(i)})}),n+500)})()}getElementDeviceCoordinate(t){let n=t.position.clone(),{clientWidth:e,clientHeight:i}=this.container;return C(n,this.context.camera,e,i)}changeMapType(t,n=500){return this.type=t,t==="2d"?this.context.setPolarAngle(0,n):this.context.setPolarAngle(1.1,n)}resetView(t=300){var n=this;return gi(function*(){let e=t/3;yield n.context.setAzimuthalAngle(n.config.control.defaultAzimuthal,e),yield n.context.setPolarAngle(n.config.control.defaultPolar,e),yield n.context.fitCameraToGround(n.config.defaultPadding,e,!1)})()}reduceMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e-t,this.context.control.target,n)}enlargeMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e+t,this.context.control.target,n)}registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver((0,Co.debounce)(this.resize,5));t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t=.1){let n=this.context.control.getAzimuthalAngle();this.context.setAzimuthalAngle(n+t,500)}measureDistance(){var t=this;return gi(function*(){return t.cancelDistance(),new Promise((n,e)=>{t.changeMapType("2d",0),t.context.control.enableRotate=!1,t.svgLine=new Ze(t.context);let i=t.svgLine.dispose.bind(t.svgLine);t.svgLine.dispose=function(){i(),e("cancel")},t.svgLine.addEventListener("distance",({distance:r})=>{n(r)})})})()}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,n)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new tn(this.context);let e=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){e(),n("cancel")},this.svgPolygon.addEventListener("area",({area:i})=>{t(i)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){var n;return((n=this.context.currentFloor)==null?void 0:n.graphicLayer.getGraphicByNodeId(t))||null}deleteGraphic(t){var n;(n=this.context.currentFloor)==null||n.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var n;if(!t.transformToBuildingGround&&this.currentBuildGround){let e=De(this.currentBuildGround.info.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(r=>{r[0]-=e[0],r[1]-=e[1]})});else{let[i,r]=t.geometry.cds;t.geometry.coords=[i-e[0],r-e[1]]}}return(n=this.context.currentFloor)==null?void 0:n.graphicLayer.createGraphic(t)}removePoiById(t){var n,e;(n=this.context.currentFloor)==null||n.poiLayer.removePoiById(t),(e=this.context.currentFloor)==null||e.poiLayer2.removePoiById(t)}getPoiById(t){var n,e;return((n=this.context.currentFloor)==null?void 0:n.poiLayer.getPoiById(t))||((e=this.context.currentFloor)==null?void 0:e.poiLayer2.getPoiById(t))}getPois(){var t,n;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(e=>!e.options.built_in),...((n=this.context.currentFloor)==null?void 0:n.poiLayer2.pois)||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.context.dispose(),this.unRegistryEvent(),ht.dispose(),Bt.dispose(),Vt.dispose(),_t.dispose(),B.dispose()}constructor(t,n={}){super(),this.container=t,this.polarKeys=[],this.azimuthalKeys=[],this.basicZoom=1,this.prevCameraZoom=1,this.type="2d",this.currentBuildGround=null,this.observe=null,this.buildingCenter=[0,0],this.timer=new Q,this.plugins=[],this.onControlChange=()=>{let{camera:{zoom:e}}=this.context;e!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=e)},this.onKeydown=e=>{this.polarKeys.includes(e.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(e.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=e=>{if(this.polarKeys.includes(e.code)){let i=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=i,this.context.control.minPolarAngle=i}if(this.azimuthalKeys.includes(e.code)){let i=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=i,this.context.control.minAzimuthAngle=i}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let e=this.context.control.getAzimuthalAngle(),i=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let r=this.context.getFitCameraToGroundZoom(void 0,0)||1;this.context.camera.zoom=i,this.context.control.minZoom=r,this.context.control.maxZoom=r*25,this.basicZoom=i,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(e,0),this.context.cameraBound.setEnable(!0)},this.config=yo(n),this.context=new vn(t,this.config),this.registryEvent()}};var Ao=m("three"),At=class extends Ao.EventDispatcher{dispose(){}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};function Eo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function pa(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Eo(r,e,i,o,a,"next",u)}function a(u){Eo(r,e,i,o,a,"throw",u)}o(void 0)})}}var So=class extends At{fetchEquipment(){var t=this;return pa(function*(){let{apiDomain:n,apiPath:{equipmentList:e},apiInfo:i}=t.bmap.config,r=`${n}${e}`;yield fetch(r,i).then(o=>o.json()).then(o=>o.data).then(o=>{t.equipmentList=o,t.equipmentMap=new Map(o.map(a=>[a.equipment_id,a]))}),t.dispatchEvent({type:"change-equipment-list",data:t.equipmentList}),t.bmap.context.currentFloor&&t.changeGraphicToEquipment(t.bmap.context.currentFloor.graphicLayer.children)})()}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(n=>{let e=this.getGraphicEquipment(n);return e&&this.equipmentMap.has(e)}).forEach(n=>{let e=this.equipmentMap.get(this.getGraphicEquipment(n)),i=this.bmap.createGraphicPoi(n,{icon:e==null?void 0:e.equipment_icon,built_in:!0,icon_size:[14,14]});i&&(i.userData.data=e,i.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(tt.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(n=>{if(n.userData.type==="equipment"){var e;(e=this.bmap.context.currentFloor)==null||e.poiLayer.removePoi(n)}})}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=({data:{graphics:n}})=>{this.equipmentList.length&&this.changeGraphicToEquipment(n)},this.fetchEquipment(),this.bmap.addEventListener(tt.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};var z=m("three");var x=m("three"),it=class extends x.BufferGeometry{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new x.Matrix4,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(t){this.setGeometry(t,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(t){this.setPoints(t,this.widthCallback)}}})}};it.prototype.setMatrixWorld=function(s){this.matrixWorld=s};it.prototype.setGeometry=function(s,t){this._geometry=s,this.setPoints(s.getAttribute("position").array,t)};it.prototype.setPoints=function(s,t){if(!(s instanceof Float32Array)&&!(s instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=s,this.widthCallback=t,this.positions=[],this.counters=[],s.length&&s[0]instanceof x.Vector3)for(var n=0;n<s.length;n++){var e=s[n],i=n/s.length;this.positions.push(e.x,e.y,e.z),this.positions.push(e.x,e.y,e.z),this.counters.push(i),this.counters.push(i)}else for(var n=0;n<s.length;n+=3){var i=n/s.length;this.positions.push(s[n],s[n+1],s[n+2]),this.positions.push(s[n],s[n+1],s[n+2]),this.counters.push(i),this.counters.push(i)}this.process()};function fa(s,t){var n=new x.Matrix4,e=new x.Ray,i=new x.Sphere,r=new x.Vector3,o=this.geometry;if(o.boundingSphere||o.computeBoundingSphere(),i.copy(o.boundingSphere),i.applyMatrix4(this.matrixWorld),s.ray.intersectSphere(i,r)!==!1){n.copy(this.matrixWorld).invert(),e.copy(s.ray).applyMatrix4(n);var a=new x.Vector3,u=new x.Vector3,l=new x.Vector3,c=this instanceof x.LineSegments?2:1,h=o.index,p=o.attributes;if(h!==null)for(var f=h.array,g=p.position.array,y=p.width.array,S=0,M=f.length-1;S<M;S+=c){var P=f[S],k=f[S+1];a.fromArray(g,P*3),u.fromArray(g,k*3);var U=y[Math.floor(S/3)]!==void 0?y[Math.floor(S/3)]:1,b=s.params.Line.threshold+this.material.lineWidth*U/2,ut=b*b,A=e.distanceSqToSegment(a,u,r,l);if(!(A>ut)){r.applyMatrix4(this.matrixWorld);var rt=s.ray.origin.distanceTo(r);rt<s.near||rt>s.far||(t.push({distance:rt,point:l.clone().applyMatrix4(this.matrixWorld),index:S,face:null,faceIndex:null,object:this}),S=M)}}}}it.prototype.raycast=fa;it.prototype.compareV3=function(s,t){var n=s*6,e=t*6;return this.positions[n]===this.positions[e]&&this.positions[n+1]===this.positions[e+1]&&this.positions[n+2]===this.positions[e+2]};it.prototype.copyV3=function(s){var t=s*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};it.prototype.getDistance=function(s){let t=0;for(let n=0;n<s;n++){let e=6*n,i=new x.Vector3(this.positions[e],this.positions[e+1],this.positions[e+2]),r=new x.Vector3(this.positions[e+6],this.positions[e+7],this.positions[e+8]),o=i.distanceTo(r);t+=o}return t};it.prototype.process=function(){var s=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let n=this.getDistance(s-1);var e;this.compareV3(0,s-1)?e=this.copyV3(s-2):e=this.copyV3(0),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);for(var i=0;i<s;i++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(i/(s-1)):t=1,this.width.push(t),this.width.push(t),i===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(i===s-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let o=this.getDistance(i)/n;this.uvs.push(o,0),this.uvs.push(o,1)}if(i<s-1){e=this.copyV3(i),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);var r=i*2;this.indices_array.push(r,r+1,r+2),this.indices_array.push(r+2,r+1,r+3)}i>0&&(e=this.copyV3(i),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]))}this.compareV3(s-1,0)?e=this.copyV3(1):e=this.copyV3(s-1),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new x.BufferAttribute(new Float32Array(this.positions),3),previous:new x.BufferAttribute(new Float32Array(this.previous),3),next:new x.BufferAttribute(new Float32Array(this.next),3),side:new x.BufferAttribute(new Float32Array(this.side),1),width:new x.BufferAttribute(new Float32Array(this.width),1),uv:new x.BufferAttribute(new Float32Array(this.uvs),2),index:new x.BufferAttribute(new Uint16Array(this.indices_array),1),counters:new x.BufferAttribute(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function mi(s,t,n,e,i){var r;if(s=s.subarray||s.slice?s:s.buffer,n=n.subarray||n.slice?n:n.buffer,s=t?s.subarray?s.subarray(t,i&&t+i):s.slice(t,i&&t+i):s,n.set)n.set(s,e);else for(r=0;r<s.length;r++)n[r+e]=s[r];return n}it.prototype.advance=function(s){var t=this._attributes.position.array,n=this._attributes.previous.array,e=this._attributes.next.array,i=t.length;mi(t,0,n,0,i),mi(t,6,t,0,i-6),t[i-6]=s.x,t[i-5]=s.y,t[i-4]=s.z,t[i-3]=s.x,t[i-2]=s.y,t[i-1]=s.z,mi(t,6,e,0,i-6),e[i-6]=s.x,e[i-5]=s.y,e[i-4]=s.z,e[i-3]=s.x,e[i-2]=s.y,e[i-1]=s.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};x.ShaderChunk.meshline_vert=["",x.ShaderChunk.logdepthbuf_pars_vertex,x.ShaderChunk.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",x.ShaderChunk.logdepthbuf_vertex,x.ShaderChunk.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",x.ShaderChunk.fog_vertex,"}"].join(`
103
+ `,e=-1/0,i=this.geometry.getAttribute("position");if(i)for(let o=0;o<i.count;o++){let a=i.getZ(o);a>e&&(e=a)}let r=new $.ShaderMaterial({uniforms:{maxZ:{value:e},uColor:{value:new $.Color(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new $.Color(Ut(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:n,transparent:!0});this.material=r}initLineMaterial(){let t=B.createLineMaterial({color:this.options[0].strokeColor,opacity:this.options[0].strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new $.Mesh(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],n=this.options[0].height+this.options[0].deltaHeight;return this.options.map(e=>{let{coords:i}=e.geometry;for(let r=0;r<i.length;r++){let o=i[r];for(let a=0;a<o.length;a++){let u=o[a],l=a+1===o.length?o[0]:o[a+1];t.push(new $.Vector3(u[0],u[1],n)),t.push(new $.Vector3(l[0],l[1],n))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),n=new $.BufferGeometry().setFromPoints(t);this.lineGeometry=n}createBorder(){this.line&&this.remove(this.line);let t=new $.LineSegments(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t;this.geometry.dispose(),this.material.dispose(),(t=this.line)==null||t.geometry.dispose(),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>ui({},ti,e)),this.init()}};var W=m("three");var so=m("lodash");function oo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function sn(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){oo(r,e,i,o,a,"next",u)}function a(u){oo(r,e,i,o,a,"throw",u)}o(void 0)})}}function li(){return li=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},li.apply(this,arguments)}var sa={text:"",icon:"",icon_size:[22,22],level:1,collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},text_font_size:14,icon_rotate:0,depth_test:!1},j=class extends W.Object3D{get durIconAndText(){return this.options.icon&&this.options.text?2:0}get offset(){return this.options.icon&&this.options.text?0:.5}get iconWidth(){return this.options.icon?this.options.icon_size[0]:0}get iconHeight(){return this.options.icon?this.options.icon_size[1]:0}get textWidth(){return this.options.text?this.options.text_font_size*this.textAspect:0}get textHeight(){return this.options.text?this.options.text_font_size:0}get deltaZ(){return!this.options.icon&&this.options.text?.1+this.offset*(this.iconHeight+this.durIconAndText+this.textHeight)/this.context.camera.zoom:.1}get canSelect(){return this.visible&&(this.spriteIcon?this.spriteIcon.visible:!0)&&(this.spriteText?this.spriteText.visible:!0)}registryEvent(){this.context.addEventListener("control-zoom-change",this._initScale);var t=this;this.addEventListener("change-icon",sn(function*({value:n}){t._initIconPromise&&(yield t._initIconPromise),t.spriteIcon&&(t.remove(t.spriteIcon),t.spriteIcon=void 0),yield t.initIcon(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})),this.addEventListener("change-text",({value:n})=>{this.spriteText&&(this.remove(this.spriteText),this.spriteText=void 0),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-icon_rotate",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.rotation=n/180*Math.PI)}),this.addEventListener("change-icon_size",({value:n})=>{this.spriteIcon&&this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-depth_test",({value:n})=>{this.spriteIcon&&(this.spriteIcon.material.depthTest=n),this.spriteText&&(this.spriteText.material.depthTest=n)})}unRegistryEvent(){this.context.removeEventListener("control-zoom-change",this._initScale)}getPosition(){return this.position}initIcon(){var t=this;return sn(function*(){if(t.options.icon)return t._initIconPromise=new Promise(sn(function*(n){let e=yield Bt.getTextureByUrl(t.options.icon),i=new W.Sprite(new W.SpriteMaterial({map:e,transparent:!0,alphaTest:.2,depthTest:t.options.depth_test,rotation:t.options.icon_rotate/180*Math.PI}));i.visible=!1,i.renderOrder=1e5+t.options.level,e.needsUpdate=!0,t.add(i),t.spriteIcon=i,n(i)})).then(()=>{t._initIconPromise=null})})()}initText(){if(this.options.text){let t=ht.getTextureByText(this.options.text);this.textAspect=t.image.width/t.image.height;let n=new W.Sprite(new W.SpriteMaterial({map:t,transparent:!0,alphaTest:.2,depthTest:this.options.depth_test}));n.visible=!1,n.renderOrder=100001+this.options.level,t.needsUpdate=!0,this.spriteText=n,this.add(n)}}initSize(){var t,n;let e=0,i=0,{icon:r,text:o}=this.options;r?o?(e=0,i=e*(this.iconHeight/this.textHeight)-this.iconHeight/this.textHeight-this.durIconAndText/this.textHeight):(e=.5,i=0):o?(i=.5,e=0):(e=0,i=0),(t=this.spriteIcon)==null||t.center.set(.5,e),(n=this.spriteText)==null||n.center.set(.5,i)}init(){var t=this;return sn(function*(){yield t.initIcon(),t.initText(),t.initSize(),t._initScale({zoom:t.context.camera.zoom})})()}resetZ(){let t=this.deltaZ;this.spriteIcon&&(this.spriteIcon.position.z=t),this.spriteText&&(this.spriteText.position.z=t)}getBox(t){let{clientSize:{width:n,height:e}}=this.context,i=n*(t.x+1)/2,r=e*(-t.y+1)/2;r+=this.offset*(this.iconHeight+this.durIconAndText+this.textHeight);let o=this.iconWidth/2,a=new W.Box2(new W.Vector2(i-o,r-this.iconHeight),new W.Vector2(i+o,r)),u=this.textWidth/2,l=new W.Box2(new W.Vector2(i-u,r-this.textHeight-this.durIconAndText-this.iconHeight),new W.Vector2(i+u,r-this.iconHeight-this.durIconAndText));return this.box=l.union(a),this.box}renderBoxHelper(t,n){if(!this.boxHelper){let e=document.createElement("div");e.style.position="absolute",e.style.zIndex="999",e.style.border="1px solid red",e.style.pointerEvents="none",this.boxHelper=e,this.context.container.appendChild(e)}t&&n?(this.boxHelper.style.left=t+"px",this.boxHelper.style.top=n+"px",this.boxHelper.style.width="2px",this.boxHelper.style.height="2px"):(this.boxHelper.style.left=this.box.min.x+"px",this.boxHelper.style.top=this.box.min.y+"px",this.boxHelper.style.width=this.box.max.x-this.box.min.x+"px",this.boxHelper.style.height=this.box.max.y-this.box.min.y+"px")}parentSetVisible(t){this.spriteText&&(this.spriteText.visible=t),this.spriteIcon&&(this.spriteIcon.visible=t),this.boxHelper&&(this.boxHelper.style.display=t?"block":"none")}dispose(){this.clear(),this.unRegistryEvent(),this.spriteText=void 0,this.spriteIcon=void 0}constructor(t,n){super(),this.context=t,this.textAspect=1,this.box=new W.Box2,this._initIconPromise=null,this._initScale=({zoom:e})=>{if(this.spriteText){let r=this.textHeight/e;this.spriteText.scale.set(this.textAspect*r,r,.1)}if(this.spriteIcon){var i;(i=this.spriteIcon)==null||i.scale.set(this.options.icon_size[0]/e,this.options.icon_size[1]/e,.1)}this.resetZ()},this.options=he((0,so.cloneDeep)(li({},sa,n)),this),this.position.set(this.options.position.x,this.options.position.y,this.options.position.z),this.registryEvent(),this.init()}};var pt=m("three"),uo=m("three/examples/jsm/utils/BufferGeometryUtils");function ao(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function aa(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){ao(r,e,i,o,a,"next",u)}function a(u){ao(r,e,i,o,a,"throw",u)}o(void 0)})}}function ci(){return ci=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},ci.apply(this,arguments)}var ua={airHeight:0,deltaHeight:0,height:0,geometry:{cds:[],type:"polygon",coords:[],curveCpt:[],curveIndex:[]},texts:[],fillColor:"#ffffff",fillOpacity:0,strokeColor:"#ffffff",strokeOpacity:0,secondHeight:0,secondRotate:0,center_x:0,center_y:0},an=class extends pt.Object3D{init(){var t=this;return aa(function*(){let n=t.options.map(a=>ht.getTextureByText(a.texts[0],{fillStyle:jn(a.fillColor,a.fillOpacity),strokeStyle:jn(a.strokeColor,a.strokeOpacity),lineWidth:6,font:"54px sans-serif"})),e=n.map((a,u)=>{let l=t.options[u],{width:c,height:h}=a.image,p=c/h,f=l.secondHeight*p,g=new pt.PlaneGeometry(f,l.secondHeight),y=new pt.Matrix4().makeTranslation(l.center_x,l.center_y,l.airHeight+l.deltaHeight+l.height).multiply(new pt.Matrix4().makeRotationZ(l.secondRotate));return g.applyMatrix4(y),g}),i=(0,uo.mergeGeometries)(e,!0);e.forEach(a=>a.dispose());let r=n.map(a=>{let u=new pt.MeshBasicMaterial({map:a,alphaTest:1,side:pt.DoubleSide});return a.needsUpdate=!0,u}),o=new pt.Mesh(i,r);t.mesh=o,t.position.z+=.04,t.add(o)})()}dispose(){var t,n;(t=this.mesh)==null||t.geometry.dispose(),((n=this.mesh)==null?void 0:n.material).forEach(e=>e.dispose()),this.clear()}constructor(t,n){super(),this.context=t,this.options=n.map(e=>ci({},ua,e)),this.init()}};var lo=m("three");function hi(){return hi=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},hi.apply(this,arguments)}var un=class extends xt{setEnable(t){super.setEnable(t),Z(this.rect,0,0,0,0),t?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:n,container:{clientWidth:e,clientHeight:i}}}=this,r=C(this.startPoint,n,e,i),o=C(this.endPoint,n,e,i),a={x:Math.min(r.x,o.x),y:Math.min(r.y,o.y)},u={x:Math.max(r.x,o.x),y:Math.max(r.y,o.y)},l=this.searchMapInFrustum(a,u);this.dispatchEvent({type:"selected",list:l})}}searchMapInFrustum(t,n){var e;let{context:i}=this;return((e=i.currentFloor)==null?void 0:e.graphicLayer.children.filter(r=>r instanceof V&&this.searchChildInFrustum(r,t,n)))||[]}searchChildInFrustum(t,n,e){let{context:{camera:i,container:{clientWidth:r,clientHeight:o}}}=this;if(!t)return!1;if(!t.mesh){let p=t.getPosition();if(p){let f=C(p,i,r,o);return zt(f,n,e)}return!1}t.mesh.geometry.boundingBox||t.mesh.geometry.computeBoundingBox();let a=t.mesh.geometry.boundingBox;if(!a)return!1;let{min:u,max:l}=a,c=C(u,i,r,o),h=C(l,i,r,o);return!(!zt(c,n,e)||!zt(h,n,e))}dispose(){this.unRegistryEvent()}constructor(t){super(t),this.frustum=new lo.Frustum,this.onPointerDown=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.startPoint=r),this.endPoint=void 0},this.onPointerMove=i=>{if(!this.enable||!this.startPoint)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r)},this.onPointerUp=i=>{if(!this.enable)return;let r=this.getIntersectByPointerEvent(i);r&&(this.endPoint=r),this.doSelect(),this.startPoint=void 0},this.onUpdate=()=>{if(this.startPoint){let i=this.getSvgCoordinate(this.startPoint),r=hi({},i);this.endPoint&&(r=this.getSvgCoordinate(this.endPoint));let o={x:Math.min(i.x,r.x),y:Math.min(i.y,r.y)},a=Math.abs(r.x-i.x),u=Math.abs(r.y-i.y);Z(this.rect,o.x,o.y,a,u)}else Z(this.rect,0,0,0,0)};let{config:{selectBox:{fill:n,stroke:e}}}=t;this.rect=kt(e,n),this.svg.appendChild(this.rect),this.registryEvent()}};var ln=class extends co.EventDispatcher{get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.context.config.enableBoxSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}constructor(t){super(),this.context=t,this._list=new Set,this.downPoint=null,this.isMultipleSelect=!1,this.onPointerDown=n=>{this.downPoint={x:n.offsetX,y:n.offsetY}},this.onPointerUp=n=>{if(!this.downPoint)return;let{offsetX:e,offsetY:i}=n,{x:r,y:o}=this.downPoint;if(Math.sqrt((r-e)**2+(o-i)**2)>3)return;let{graphics:a}=this.context.getGraphicsByDeviceXy(e,i),u=new Set(a.map(c=>c.options.id));this.context.getPoisByDeviceXy(e,i).forEach(c=>{if(!u.has(c.options.id)){var h;let p=((h=this.context.currentFloor)==null?void 0:h.graphicLayer.graphicMap.get(c.options.id))||null;p&&p.options.geometry.type==="point"&&(a.push(p),u.add(c.options.id))}}),(pe?n.metaKey:n.ctrlKey)||this._list.clear(),a.forEach(c=>this._list.add(c)),this.selectEnd(),this.downPoint=null},this.onPointerOut=n=>{this.disableBoxSelection()},this.onKeyDown=n=>{fe(n.key)&&this.enableBoxSelection()},this.onKeyUp=n=>{fe(n.key)&&this.disableBoxSelection()},this.onBoxSelected=({list:n})=>{this._list.clear(),n.forEach(e=>{this._list.add(e)}),this.selectEnd()},this.boxSelection=new un(t),this.boxSelection.setEnable(!1),this.registryEvent()}};var hn=m("three");var cn=class extends hn.EventDispatcher{handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel),document.body.addEventListener("pointermove",this.onBodyPointerMove)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel),document.body.removeEventListener("pointermove",this.onBodyPointerMove)}dispose(){this.unRegistryEvent(),this.timer.dispose()}constructor(t){super(),this.context=t,this.curGraphics=new Set,this.timer=new Q,this.graphicTimerMap=new Map,this.onPointerMove=({graphics:n,pois:e,e:i})=>{let r=e.map(l=>{var c;return(c=this.context.currentFloor)==null?void 0:c.graphicLayer.graphicMap.get(l.options.id)}).filter(l=>l&&l.options.geometry.type==="point");if(!n.length&&!r.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:o}=this.context.config.hover,a=new Set;if(r.length){let l,c=1e4;r.forEach(h=>{let p=e.find(f=>f.options.id===h.options.id);if(p instanceof te){let{x:f,y:g}=p.clientPos,y=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);y<c&&(c=y,l=h)}else if(p instanceof j){let{x:f,y:g}=p.box.getCenter(new hn.Vector2),y=Math.sqrt((f-i.offsetX)**2+(g-i.offsetY)**2);y<c&&(c=y,l=h)}}),a.add(l)}a.size||n.forEach(l=>a.add(l)),a.forEach(l=>{if(this.graphicTimerMap.get(l)||this.curGraphics.has(l))return;let c=this.timer.setTimeout(()=>{this.curGraphics.add(l),this.graphicTimerMap.delete(l),this.timer.clearTimeout(c),this.handleHoverGraphicsChange()},o);this.graphicTimerMap.set(l,c)}),this.graphicTimerMap.forEach((l,c)=>{a.has(c)||(this.timer.clearTimeout(l),this.graphicTimerMap.delete(c))});let u=this.curGraphics.size;this.curGraphics.forEach(l=>{a.has(l)||this.curGraphics.delete(l)}),u!==this.curGraphics.size&&this.handleHoverGraphicsChange()},this.onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()},this.onBodyPointerMove=n=>{if(this.curGraphics.size){let e=this.context.container.getBoundingClientRect();(n.clientX<e.left||n.clientX>e.right||n.clientY<e.top||n.clientY>e.bottom)&&this.onPointerLevel()}},this.registryEvent()}};var ee=m("three");var pn=class{updateBox(){this.box.setFromObject(this.context.scene)}setEnable(t){this.enable=t,t?this.registryEvent():this.unRegistryEvent()}changePrevCamera(){this.prevCamera={position:this.context.camera.position.clone(),zoom:this.context.camera.zoom,target:this.context.control.target.clone()}}backToPrevCamera(){this.setEnable(!1),this.context.camera.position.copy(this.prevCamera.position),this.context.camera.zoom=this.prevCamera.zoom,this.context.control.target.copy(this.prevCamera.target),this.context.control.update(),this.setEnable(!0)}registryEvent(){this.context.addEventListener("control-change",this.onCameraChange)}unRegistryEvent(){this.context.removeEventListener("control-change",this.onCameraChange)}getCurFloorScreenPosition(){if(!this.context.scene.children.filter(S=>S instanceof vt).length)return null;let n=this.box,{camera:e,clientSize:{width:i,height:r}}=this.context,{min:o,max:a}=n,u=C(o,e,i,r),l=C(a,e,i,r),c=C(new ee.Vector3(o.x,a.y,a.z),e,i,r),h=C(new ee.Vector3(a.x,o.y,o.z),e,i,r),p=Math.min(u.x,l.x,c.x,h.x),f=Math.max(u.x,l.x,c.x,h.x),g=Math.min(u.y,l.y,c.y,h.y),y=Math.max(u.y,l.y,c.y,h.y);return{left:p,right:f,top:g,bottom:y}}checkDistanceToScreenEdge({left:t,right:n,top:e,bottom:i}){let{width:r,height:o}=this.context.clientSize,[a,u,l,c]=this.context.config.cameraBound.padding,h=n>=c,p=r-t>=u,f=o-e>=l,g=i>=a;return h&&p&&f&&g}dispose(){this.unRegistryEvent()}constructor(t){this.context=t,this.prevCamera={position:new ee.Vector3,zoom:1,target:new ee.Vector3},this.enable=!0,this.box=new ee.Box3,this.onCameraChange=()=>{let n=this.getCurFloorScreenPosition();if(n){let{left:e,right:i,top:r,bottom:o}=n;this.checkDistanceToScreenEdge({left:e,right:i,top:r,bottom:o})?this.changePrevCamera():this.backToPrevCamera()}},this.registryEvent(),this.changePrevCamera()}};var fi=m("three"),ne=m("@tweenjs/tween.js");var v=m("three"),fn=new v.Ray,ho=new v.Plane,la=Math.cos(70*v.MathUtils.DEG2RAD),dn=class extends v.EventDispatcher{dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerUp),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null)}constructor(t,n){super(),this.rotateLineStart=new v.Vector2,this.rotateLineEnd=new v.Vector2,this.spherical=new v.Spherical,this.sphericalDelta=new v.Spherical,this.object=t,this.domElement=n,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new v.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.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.screenSpacePanning=!1,this.mouseButtons={LEFT:v.MOUSE.PAN,MIDDLE:v.MOUSE.DOLLY,RIGHT:v.MOUSE.ROTATE},this.touches={ONE:v.TOUCH.PAN,TWO:v.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 a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(d){d.addEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=d},this.stopListenToKeyEvents=function(){var d;(d=this._domElementKeyEvents)==null||d.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null},this.saveState=function(){e.target0.copy(e.target),e.position0.copy(e.object.position),e.zoom0=e.object.zoom},this.reset=function(){e.target.copy(e.target0),e.object.position.copy(e.position0),e.object.zoom=e.zoom0,e.object.updateProjectionMatrix(),e.dispatchEvent({type:"change"}),e.update(),r=i.NONE},this.update=function(){let d=new v.Vector3,_=new v.Quaternion().setFromUnitVectors(t.up,new v.Vector3(0,1,0)),I=_.clone().invert(),N=new v.Vector3,lt=new v.Quaternion,It=new v.Vector3,St=2*Math.PI;return function(Hn=null){let Nt=e.object.position;d.copy(Nt).sub(e.target),d.applyQuaternion(_),a.setFromVector3(d),e.autoRotate&&r===i.NONE&&ae(Ee(Hn)),e.enableDamping?(a.theta+=u.theta*e.dampingFactor,a.phi+=u.phi*e.dampingFactor):(a.theta+=u.theta,a.phi+=u.phi);let Ot=e.minAzimuthAngle,Dt=e.maxAzimuthAngle;isFinite(Ot)&&isFinite(Dt)&&(Ot<-Math.PI?Ot+=St:Ot>Math.PI&&(Ot-=St),Dt<-Math.PI?Dt+=St:Dt>Math.PI&&(Dt-=St),Ot<=Dt?a.theta=Math.max(Ot,Math.min(Dt,a.theta)):a.theta=a.theta>(Ot+Dt)/2?Math.max(Ot,a.theta):Math.min(Dt,a.theta)),a.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,a.phi)),a.makeSafe(),e.enableDamping===!0?e.target.addScaledVector(c,e.dampingFactor):e.target.add(c),e.zoomToCursor&&ut||e.object.isOrthographicCamera?a.radius=zn(a.radius):a.radius=zn(a.radius*l),d.setFromSpherical(a),d.applyQuaternion(I),Nt.copy(e.target).add(d),e.object.lookAt(e.target),e.enableDamping===!0?(u.theta*=1-e.dampingFactor,u.phi*=1-e.dampingFactor,c.multiplyScalar(1-e.dampingFactor)):(u.set(0,0,0),c.set(0,0,0));let Ne=!1;if(e.zoomToCursor&&ut){let Se=null;if(e.object.isPerspectiveCamera){let Me=d.length();Se=zn(Me*l);let Oe=Me-Se;e.object.position.addScaledVector(U,Oe),e.object.updateMatrixWorld()}else if(e.object.isOrthographicCamera){let Me=new v.Vector3(b.x,b.y,0);Me.unproject(e.object),e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),Ne=!0;let Oe=new v.Vector3(b.x,b.y,0);Oe.unproject(e.object),e.object.position.sub(Oe).add(Me),e.object.updateMatrixWorld(),Se=d.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),e.zoomToCursor=!1;Se!==null&&(e.screenSpacePanning?e.target.set(0,0,-1).transformDirection(e.object.matrix).multiplyScalar(Se).add(e.object.position):(fn.origin.copy(e.object.position),fn.direction.set(0,0,-1).transformDirection(e.object.matrix),Math.abs(e.object.up.dot(fn.direction))<la?t.lookAt(e.target):(ho.setFromNormalAndCoplanarPoint(e.object.up,e.target),fn.intersectPlane(ho,e.target))))}else e.object.isOrthographicCamera&&(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/l)),e.object.updateProjectionMatrix(),Ne=!0);return l=1,ut=!1,Ne||N.distanceToSquared(e.object.position)>o||8*(1-lt.dot(e.object.quaternion))>o||It.distanceToSquared(e.target)>0?(e.dispatchEvent({type:"change"}),N.copy(e.object.position),lt.copy(e.object.quaternion),It.copy(e.target),Ne=!1,!0):!1}}();let e=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},r=i.NONE,o=1e-6,a=new v.Spherical,u=new v.Spherical,l=1,c=new v.Vector3,h=new v.Vector2,p=new v.Vector2,f=new v.Vector2,g=new v.Vector2,y=new v.Vector2,S=new v.Vector2,M=new v.Vector2,P=new v.Vector2,k=new v.Vector2,U=new v.Vector3,b=new v.Vector2,ut=!1,A=[],rt={};function Ee(d){return d!==null?2*Math.PI/60*e.autoRotateSpeed*d:2*Math.PI/60/60*e.autoRotateSpeed}function se(){return Math.pow(.95,e.zoomSpeed)}function ae(d){u.theta-=d}function ue(d){u.phi-=d}let Ui=function(){let d=new v.Vector3;return function(I,N){d.setFromMatrixColumn(N,0),d.multiplyScalar(-I),c.add(d)}}(),Fi=function(){let d=new v.Vector3;return function(I,N){e.screenSpacePanning===!0?d.setFromMatrixColumn(N,1):(d.setFromMatrixColumn(N,0),d.crossVectors(e.object.up,d)),d.multiplyScalar(I),c.add(d)}}(),le=function(){let d=new v.Vector3;return function(I,N){let lt=e.domElement;if(e.object.isPerspectiveCamera){let It=e.object.position;d.copy(It).sub(e.target);let St=d.length();St*=Math.tan(e.object.fov/2*Math.PI/180),Ui(2*I*St/lt.clientHeight,e.object.matrix),Fi(2*N*St/lt.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(Ui(I*(e.object.right-e.object.left)/e.object.zoom/lt.clientWidth,e.object.matrix),Fi(N*(e.object.top-e.object.bottom)/e.object.zoom/lt.clientHeight,e.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1)}}();function $n(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l/=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function $i(d){e.object.isPerspectiveCamera||e.object.isOrthographicCamera?l*=d:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function zi(d){if(!e.zoomToCursor)return;ut=!0;let _=e.domElement.getBoundingClientRect(),I=d.clientX-_.left,N=d.clientY-_.top,lt=_.width,It=_.height;b.x=I/lt*2-1,b.y=-(N/It)*2+1,U.set(b.x,b.y,1).unproject(e.object).sub(e.object.position).normalize()}function zn(d){return Math.max(e.minDistance,Math.min(e.maxDistance,d))}function Gi(d){h.set(d.clientX,d.clientY)}function Cs(d){zi(d),M.set(d.clientX,d.clientY)}function ki(d){g.set(d.clientX,d.clientY)}function As(d){p.set(d.clientX,d.clientY),f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let _=e.domElement;ae(2*Math.PI*f.x/_.clientHeight),ue(2*Math.PI*f.y/_.clientHeight),h.copy(p),e.update()}function Es(d){P.set(d.clientX,d.clientY),k.subVectors(P,M),k.y>0?$n(se()):k.y<0&&$i(se()),M.copy(P),e.update()}function Ss(d){y.set(d.clientX,d.clientY),S.subVectors(y,g).multiplyScalar(e.panSpeed),le(S.x,S.y),g.copy(y),e.update()}function Ms(d){zi(d),d.deltaY<0?$i(se()):d.deltaY>0&&$n(se()),e.update()}function bs(d){let _=!1;switch(d.code){case e.keys.UP:d.ctrlKey||d.metaKey||d.shiftKey?ue(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):le(0,e.keyPanSpeed),_=!0;break;case e.keys.BOTTOM:d.ctrlKey||d.metaKey||d.shiftKey?ue(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):le(0,-e.keyPanSpeed),_=!0;break;case e.keys.LEFT:d.ctrlKey||d.metaKey||d.shiftKey?ae(2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):le(e.keyPanSpeed,0),_=!0;break;case e.keys.RIGHT:d.ctrlKey||d.metaKey||d.shiftKey?ae(-2*Math.PI*e.rotateSpeed/e.domElement.clientHeight):le(-e.keyPanSpeed,0),_=!0;break}_&&(d.preventDefault(),e.update())}function Hi(){if(A.length===1)h.set(A[0].pageX,A[0].pageY);else{let d=(A[0].pageX-A[0].pageY)/(A[1].pageX-A[1].pageY),_=A[0].pageY-d*A[0].pageX;e.rotateLineStart.set(d,_);let I=.5*(A[0].pageX+A[1].pageX),N=.5*(A[0].pageY+A[1].pageY);h.set(I,N)}}function Vi(){if(A.length===1)g.set(A[0].pageX,A[0].pageY);else{let d=.5*(A[0].pageX+A[1].pageX),_=.5*(A[0].pageY+A[1].pageY);g.set(d,_)}}function Xi(){let d=A[0].pageX-A[1].pageX,_=A[0].pageY-A[1].pageY,I=Math.sqrt(d*d+_*_);M.set(0,I)}function ws(){e.enableZoom&&Xi(),e.enablePan&&Vi()}function Ts(){e.enableZoom&&Xi(),e.enableRotate&&Hi()}function ji(d){if(A.length==1)p.set(d.pageX,d.pageY);else{let I=Gn(d),N=.5*(d.pageX+I.x),lt=.5*(d.pageY+I.y);p.set(N,lt);let It=(d.pageY-I.y)/(d.pageX-I.x),St=I.y-It*I.x;if(e.rotateLineEnd.set(It,St),Number.isFinite(e.rotateLineEnd.x)&&Number.isFinite(e.rotateLineStart.x)){let kn=(e.rotateLineStart.y-e.rotateLineEnd.y)/(e.rotateLineEnd.x-e.rotateLineStart.x),Hn=It*kn+St;if(Number.isFinite(kn)&&Number.isFinite(Hn)){let Nt=Math.atan(e.rotateLineEnd.x)-Math.atan(e.rotateLineStart.x);Math.PI-Math.abs(Nt)<.5&&(Nt=-Math.sign(Nt)*(Math.PI-Math.abs(Nt))),Math.abs(Nt)<.1&&(u.theta+=Nt)}}e.rotateLineStart.copy(e.rotateLineEnd)}f.subVectors(p,h).multiplyScalar(e.rotateSpeed);let _=e.domElement;ue(2*Math.PI*f.y/_.clientHeight),h.copy(p)}function Wi(d){if(A.length===1)y.set(d.pageX,d.pageY);else{let _=Gn(d),I=.5*(d.pageX+_.x),N=.5*(d.pageY+_.y);y.set(I,N)}S.subVectors(y,g).multiplyScalar(e.panSpeed),le(S.x,S.y),g.copy(y)}function qi(d){let _=Gn(d),I=d.pageX-_.x,N=d.pageY-_.y,lt=Math.sqrt(I*I+N*N);P.set(0,lt),k.set(0,Math.pow(P.y/M.y,e.zoomSpeed)),$n(k.y),M.copy(P)}function Is(d){e.enableZoom&&qi(d),e.enablePan&&Wi(d)}function Rs(d){e.enableZoom&&qi(d),e.enableRotate&&ji(d)}this.onPointerDown=function(_){e.enabled!==!1&&(A.length===0&&(e.domElement.setPointerCapture(_.pointerId),e.domElement.addEventListener("pointermove",e.onPointerMove),e.domElement.addEventListener("pointerup",e.onPointerUp)),Os(_),_.pointerType==="touch"?Bs(_):Ps(_))},this.onPointerMove=function(_){e.enabled!==!1&&(_.pointerType==="touch"?Ns(_):Ls(_))},this.onPointerUp=function(_){Ds(_),A.length===0&&(e.domElement.releasePointerCapture(_.pointerId),e.domElement.removeEventListener("pointermove",e.onPointerMove),e.domElement.removeEventListener("pointerup",e.onPointerUp)),e.dispatchEvent({type:"end"}),r=i.NONE};function Ps(d){let _;switch(d.button){case 0:_=e.mouseButtons.LEFT;break;case 1:_=e.mouseButtons.MIDDLE;break;case 2:_=e.mouseButtons.RIGHT;break;default:_=-1}switch(_){case v.MOUSE.DOLLY:if(e.enableZoom===!1)return;Cs(d),r=i.DOLLY;break;case v.MOUSE.ROTATE:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enablePan===!1)return;ki(d),r=i.PAN}else{if(e.enableRotate===!1)return;Gi(d),r=i.ROTATE}break;case v.MOUSE.PAN:if(d.ctrlKey||d.metaKey||d.shiftKey){if(e.enableRotate===!1)return;Gi(d),r=i.ROTATE}else{if(e.enablePan===!1)return;ki(d),r=i.PAN}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function Ls(d){switch(r){case i.ROTATE:if(e.enableRotate===!1)return;As(d);break;case i.DOLLY:if(e.enableZoom===!1)return;Es(d);break;case i.PAN:if(e.enablePan===!1)return;Ss(d);break}}this.onMouseWheel=function(_){e.enabled===!1||e.enableZoom===!1||r!==i.NONE||(_.preventDefault(),e.dispatchEvent({type:"start"}),Ms(_),e.dispatchEvent({type:"end"}))},this.onKeyDown=function(_){e.enabled===!1||e.enablePan===!1||bs(_)};function Bs(d){switch(Qi(d),A.length){case 1:switch(e.touches.ONE){case v.TOUCH.ROTATE:if(e.enableRotate===!1)return;Hi(),r=i.TOUCH_ROTATE;break;case v.TOUCH.PAN:if(e.enablePan===!1)return;Vi(),r=i.TOUCH_PAN;break;default:r=i.NONE}break;case 2:switch(e.touches.TWO){case v.TOUCH.DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;ws(),r=i.TOUCH_DOLLY_PAN;break;case v.TOUCH.DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Ts(),r=i.TOUCH_DOLLY_ROTATE;break;default:r=i.NONE}break;default:r=i.NONE}r!==i.NONE&&e.dispatchEvent({type:"start"})}function Ns(d){switch(Qi(d),r){case i.TOUCH_ROTATE:if(e.enableRotate===!1)return;ji(d),e.update();break;case i.TOUCH_PAN:if(e.enablePan===!1)return;Wi(d),e.update();break;case i.TOUCH_DOLLY_PAN:if(e.enableZoom===!1&&e.enablePan===!1)return;Is(d),e.update();break;case i.TOUCH_DOLLY_ROTATE:if(e.enableZoom===!1&&e.enableRotate===!1)return;Rs(d),e.update();break;default:r=i.NONE}}this.onContextMenu=function(_){e.enabled!==!1&&_.preventDefault()};function Os(d){A.push(d)}function Ds(d){delete rt[d.pointerId];for(let _=0;_<A.length;_++)if(A[_].pointerId==d.pointerId){A.splice(_,1);return}}function Qi(d){let _=rt[d.pointerId];_===void 0&&(_=new v.Vector2,rt[d.pointerId]=_),_.set(d.pageX,d.pageY)}function Gn(d){let _=d.pointerId===A[0].pointerId?A[1]:A[0];return rt[_.pointerId]}e.domElement.addEventListener("contextmenu",this.onContextMenu),e.domElement.addEventListener("pointerdown",this.onPointerDown),e.domElement.addEventListener("pointercancel",this.onPointerUp),e.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}};function po(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function pi(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){po(r,e,i,o,a,"next",u)}function a(u){po(r,e,i,o,a,"throw",u)}o(void 0)})}}var gn=class extends dn{registryEvent(){this.addEventListener("change",()=>{let t=this.camera.zoom;t!==this.prevCameraZoom&&(this.prevCameraZoom=t,this.dispatchEvent({type:"change-zoom",zoom:t}))}),this.context.addEventListener("update",this.tweenUpdate)}setPolarAngle(t,n=!1){let{maxPolarAngle:e,minPolarAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),r||(this.maxPolarAngle=e,this.minPolarAngle=i)}setPolarAngleByDuration(t,n=!1,e=500){var i=this;return pi(function*(){return e<=0?i.setPolarAngle(t,n):dt(new Promise(r=>{let o={polar:i.getPolarAngle()},a={polar:t},u=new ne.Tween(o,i.tweenGroup).to(a,e).onUpdate(()=>{i.setPolarAngle(o.polar,n)}).onComplete(()=>{i.enabled=!0,i.tweenGroup.remove(u),r(!0)}).onStart(()=>{i.enabled=!1}).start()}),e+500)})()}setAzimuthalAngle(t,n){let{maxAzimuthAngle:e,minAzimuthAngle:i}=this,r=e===i;(n||t<=e&&t>=i)&&(this.maxAzimuthAngle=t,this.minAzimuthAngle=t,this.update()),r||(this.maxAzimuthAngle=e,this.minAzimuthAngle=i)}setAzimuthalAngleDuration(t,n=!1,e=500){return e<=0?this.setAzimuthalAngle(t,n):dt(new Promise(i=>{let r={azimuthal:this.getAzimuthalAngle()},o={azimuthal:t},a=new ne.Tween(r,this.tweenGroup).to(o,e).onUpdate(()=>{this.setAzimuthalAngle(r.azimuthal,n)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(a),i(!0)}).onStart(()=>{this.enabled=!1}).start()}),e+500)}getCameraLookAt(){return new fi.Vector3().subVectors(this.target,this.camera.position)}setCameraPositionByTarget(t,n){var e=this;return pi(function*(){let i=e.target.clone(),r=e.getCameraLookAt();if(!n){e.camera.position.copy(t.clone().sub(r)),e.target.copy(t.clone()),e.update();return}return dt(new Promise(o=>{let a=new ne.Tween(i,e.tweenGroup).to(t,n).onUpdate(()=>{e.camera.position.copy(i.clone().sub(r)),e.target.copy(i.clone()),e.update()}).onComplete(()=>{e.tweenGroup.remove(a),e.enabled=!0,o(!0)}).onStart(()=>{e.enabled=!1}).start()}),n+500)})()}setZoom(t,n,e=!1){let{minZoom:i,maxZoom:r}=this;(e||t>=i&&t<=r)&&(this.camera.position.copy(n.clone().sub(this.getCameraLookAt())),this.target.copy(n),this.camera.zoom=t,this.update())}setZoomByDuration(t,n,e=!1,i=500){var r=this;return pi(function*(){let o={zoom:r.camera.zoom,target:r.target.clone()};if(t!==r.camera.zoom)return i?dt(new Promise(a=>{let u=new ne.Tween(o,r.tweenGroup).to({zoom:t,target:n},i).onUpdate(()=>{r.setZoom(o.zoom,o.target,e)}).onComplete(()=>{r.tweenGroup.remove(u),r.enabled=!0,a(!0)}).onStart(()=>{r.enabled=!1}).start()}),i+500):r.setZoom(t,n,e)})()}setTargetByOffset(t,n=this.target.clone()){if(!t)return;this.camera.updateMatrix();let e=new fi.Vector3;e.setFromMatrixColumn(this.camera.matrix,1),e.normalize(),e.multiplyScalar(t/this.camera.zoom),n.add(e),this.setCameraPositionByTarget(n,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){super.dispose(),this.clearTween()}constructor(t,n,e){super(n,e),this.context=t,this.camera=n,this.domElement=e,this.prevCameraZoom=1,this.tweenGroup=new ne.Group,this.offsetY=0,this.tweenUpdate=()=>{this.tweenGroup.update()},this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=n.zoom,this.registryEvent()}};var ve=m("three");function di(){return di=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},di.apply(this,arguments)}var mn=class extends ve.WebGLRenderer{setCameraAndScene(t,n){this.scene=t,this.camera=n}autoRender(){this.scene&&this.camera&&this.enable&&(this.event.dispatchEvent({type:"update"}),this.render(this.scene,this.camera)),this.timer.requestAnimationFrame(()=>{this.autoRender()})}pauseRender(){this.enable=!1}continueRender(){this.enable=!0}addEventListener(t,n){this.event.addEventListener(t,n)}removeEventListener(t,n){this.event.removeEventListener(t,n)}dispose(){this.timer.dispose(),this.enable=!1,super.dispose()}constructor(t){super(di({antialias:!0,alpha:!0},t)),this.event=new ve.EventDispatcher,this.enable=!0,this.timer=new Q,this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.shadowMap.enabled=!0,this.shadowMap.autoUpdate=!0,this.shadowMap.type=ve.PCFSoftShadowMap}};var fo=m("three"),_n=class extends fo.Scene{constructor(){super()}};var go=m("three"),yn=class extends go.OrthographicCamera{constructor(t,n){super(-t/2,t/2,n/2,-n/2,-1e4,5e4),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};function mo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function ca(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){mo(r,e,i,o,a,"next",u)}function a(u){mo(r,e,i,o,a,"throw",u)}o(void 0)})}}var vn=class extends T.EventDispatcher{resizeClientSize(){let{x:t,y:n,width:e,height:i}=this.container.getBoundingClientRect();this.clientSize={width:e||this.container.clientWidth,height:i||this.container.clientHeight,x:t,y:n}}init(){let{clientWidth:t,clientHeight:n}=this.container;this.camera=new yn(t,n),this.renderer.setSize(t,n),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new gn(this,this.camera,this.renderer.domElement),this.control.maxPolarAngle=this.config.control.maxPolar,this.container.appendChild(this.renderer.domElement),this.scene.add(this.lights),this.basicRatio=this.getRatio(),this.control.addEventListener("change",()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})}),this.control.addEventListener("change-zoom",({zoom:e})=>{this.dispatchEvent({type:"control-zoom-change",zoom:e})}),this.renderer.addEventListener("update",()=>{this.dispatchEvent({type:"update"})}),this.cameraBound=new pn(this)}getRatio(t=new T.Vector3(0,0,0),n=new T.Vector3(100,0,0)){let{clientWidth:e,clientHeight:i}=this.container,r=C(t,this.camera,e,i),o=C(n,this.camera,e,i);return Math.ceil(Math.sqrt((o.x-r.x)**2+(o.y-r.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(n=>{n instanceof T.AmbientLight&&(n.color=new T.Color(t))})}switchFloor(t){this.currentFloor&&(this.scene.remove(this.currentFloor),this.currentFloor.dispose()),this.currentFloor=t,this.scene.add(t);let n=t.getCenter();n&&(this.lights.position.x=n.x,this.lights.position.y=n.y),this.cameraBound.updateBox()}getGraphicsByDeviceXy(t,n){var e;let i=new T.Vector2;i.x=t/this.clientSize.width*2-1,i.y=n/this.clientSize.height*-2+1;let r=new T.Raycaster;return r.setFromCamera(i,this.camera),r.ray.origin.sub(r.ray.direction.clone().multiplyScalar(100)),((e=this.currentFloor)==null?void 0:e.graphicLayer.getGraphicByRaycaster(r))||{graphics:[],position:null}}getPoisByDeviceXy(t,n){var e,i;let r=(e=this.currentFloor)==null?void 0:e.poiLayer.getPoiByDeviceXy(t,n),o=(i=this.currentFloor)==null?void 0:i.poiLayer2.getPoiByDeviceXy(t,n);return(r||[]).concat(o||[])}registryEvent(){window.addEventListener("resize",this.onWindowResize),this.container.addEventListener("click",this.onClick),this.container.addEventListener("pointerover",this.onPointerover),this.container.addEventListener("pointermove",this.onPointermove),this.container.addEventListener("pointerleave",this.onPointerleave),this.container.addEventListener("pointercancel",this.onPointerleave),this.container.addEventListener("pointerout",this.onPointerleave),this.selection.addEventListener("select",this.onSelectionSelect),this.hoverHelper.addEventListener("hover-change",this.onHoverChange)}unRegistryEvent(){window.removeEventListener("resize",this.onWindowResize),this.container.removeEventListener("click",this.onClick),this.container.removeEventListener("pointerover",this.onPointerover),this.container.removeEventListener("pointermove",this.onPointermove),this.container.removeEventListener("pointerleave",this.onPointerleave),this.container.removeEventListener("pointercancel",this.onPointerleave),this.container.removeEventListener("pointerout",this.onPointerleave),this.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange)}setPolarAngle(t,n=500){return this.control.setPolarAngleByDuration(t,!0,n)}setAzimuthalAngle(t,n=500){return this.control.setAzimuthalAngleDuration(t,!0,n)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,n,e=500){return this.control.setZoomByDuration(t,n,!0,e)}getFitCameraToObjectZoom(t,n=[20,20,20,20],e=500,i=!0){let[r,o,a,u]=n,{clientSize:{width:l,height:c}}=this,h=this.control.getPolarAngle();i&&this.setPolarAngle(0,0);let p=new T.Box3().setFromObject(t);this.setPolarAngle(h,0);let{max:f,min:g}=p,y=new T.Vector3(g.x,f.y,f.z),S=new T.Vector3(f.x,f.y,f.z),M=new T.Vector3(f.x,g.y,g.z),P=new T.Vector3(g.x,g.y,g.z),k=C(y,this.camera,l,c),U=C(S,this.camera,l,c),b=C(P,this.camera,l,c),ut=C(M,this.camera,l,c),rt=new T.Box2().setFromPoints([new T.Vector2(k.x,k.y),new T.Vector2(U.x,U.y),new T.Vector2(b.x,b.y),new T.Vector2(ut.x,ut.y)]).getSize(new T.Vector2),Ee=(l-o-u)/rt.x,se=(c-r-a)/rt.y,ae=Math.min(Ee,se),ue=new T.Vector3((f.x+g.x)/2,(f.y+g.y)/2,(f.z+g.z)/2);return{zoom:ae*this.camera.zoom,center:ue}}fitCameraToObject(t,n=[20,20,20,20],e=500,i=!0){let{zoom:r,center:o}=this.getFitCameraToObjectZoom(t,n,e,i);return this.setZoom(r,o,e)}getFitCameraToGroundZoom(t=[20,20,20,20],n=500,e=!0){if(this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,n,e).zoom}fitCameraToGround(t=[20,20,20,20],n=500,e=!0){return this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundLayer,t,n,e):Promise.resolve(!1)}setCameraPosition(t,n){var e=this;return ca(function*(){return e.control.setCameraPositionByTarget(t,n)})()}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}dispose(){this.control.dispose(),this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.unRegistryEvent(),this.renderer.domElement.remove(),this.renderer.dispose(),this.lights.children.forEach(t=>t.dispose()),Y(this.scene)}constructor(t,n){super(),this.container=t,this.config=n,this.scene=new _n,this.renderer=new mn,this.lights=Ki(),this.clientSize={width:0,height:0,x:0,y:0},this.renderRf=0,this.onWindowResize=()=>{let{container:e,camera:i,renderer:r}=this,{clientWidth:o,clientHeight:a}=e;o=Math.max(1,o),a=Math.max(1,a),i.left=-o/2,i.right=o/2,i.top=a/2,i.bottom=-a/2,i.updateProjectionMatrix(),r.setSize(o,a),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:o,height:a})},this.onClick=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY);i.length&&this.dispatchEvent({type:"graphic-click",graphics:i,position:r});let o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);o.length&&this.dispatchEvent({type:"poi-click",pois:o})},this.onPointerover=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-over",e,graphics:i,pois:o,position:r})},this.onPointermove=e=>{let{graphics:i,position:r}=this.getGraphicsByDeviceXy(e.offsetX,e.offsetY),o=this.getPoisByDeviceXy(e.offsetX,e.offsetY);this.dispatchEvent({type:"pointer-move",e,graphics:i,pois:o,position:r})},this.onPointerleave=e=>{this.dispatchEvent({type:"pointer-level"})},this.onSelectionSelect=({graphics:e,isMultipleSelect:i})=>{this.dispatchEvent({type:"select-graphic",graphics:e,isMultipleSelect:i})},this.onHoverChange=({graphics:e})=>{this.dispatchEvent({type:"hover",graphics:e})},this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new ln(this),this.hoverHelper=new cn(this),this.resizeClientSize(),this.registryEvent()}};var _o=m("lodash"),ha={apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get",equipmentList:"/api/inception-map/equipment/get",roadNetwork:"/api/inception-map/road_network/get"},enableBoxSelect:!0,resizeObserver:!1,initTransToMark:!1,heatMap:{radius:50,gradient:{0:"#8F9FCD",.5:"#6284FF",1:"#F95D5D"}},useFloorCache:!0,control:{maxPolar:1.2,defaultPolar:1.1,defaultAzimuthal:0},defaultPadding:[20,20,20,20],svg:{circle:{radius:"2",fill:"#1CADFF"},line:{stroke:"#1CADFF"}},selectBox:{stroke:"#1CADFF",fill:"rgba(28, 173, 255, 0.3)"},hover:{time:100},ground:{color:"#F6F6F6",opacity:1,height:.001,stroke:!1,strokeColor:"#E6E6E6",strokeOpacity:1},markGraphic:{color:"#EEF0F3",opacity:1,height:.001,stroke:!1,strokeColor:"#000",strokeOpacity:1},graphic:{fillOpacity:1},cameraBound:{padding:[150,150,150,150]},poi:{boxScale:1}};function yo(s){return(0,_o.merge)({},ha,s)}var Co=m("lodash");function vo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function gi(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){vo(r,e,i,o,a,"next",u)}function a(u){vo(r,e,i,o,a,"throw",u)}o(void 0)})}}function xn(){return xn=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},xn.apply(this,arguments)}var zl=function(s){return s[s.D2=0]="D2",s[s.D3=1.1]="D3",s}({}),xo=class extends Cn.EventDispatcher{changeBuildingCenter(t,{brand:n,project:e}){let i=t?De(t.info.geometry.cds[0]):[0,0];this.buildingCenter=i,this.dispatchEvent({type:"center-change",center:i,project:e,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(n=>n!==t)}triggerHooks(t,n){this.dispatchEvent({type:t,data:n})}switchFloorByFloor(t,n=t.graphicLayer.children){this.triggerHooks(tt.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:n}),this.context.switchFloor(t),this.initialFloorCamera(),this.triggerHooks(tt.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:n})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(this.config.defaultPadding,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*30,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}addModel(t,n){if(t.options.geometry.type==="polygon"){var e;let i=(e=this.context.currentFloor)==null?void 0:e.addModel(xn({},n,{position:t.getPosition().setZ(.1),id:t.options.id}));if(i){let{facilityAngle:r=0,facilityXScale:o=1,facilityYScale:a=1}=t.options.userData;i.rotateZ((180-r)/180*Math.PI),i.scale.set(o,a,1)}}}addHeatmap(t){var n;return(n=this.context.currentFloor)==null?void 0:n.addHeatmap(t)}getLegacyToGraphicMap(){var t;return((t=this.context.currentFloor)==null?void 0:t.userData.legacyToGraphicMap)||new Map}getFloorAllGraphics(){var t;return((t=this.context.currentFloor)==null?void 0:t.graphicLayer.children.filter(n=>n instanceof V))||[]}createGraphicPoi(t,n){if(this.context.currentFloor){n.id===void 0&&(n.id=t.options.id);let e=t.options.center,i=t.getCenter(),r=(e==null?void 0:e[0])||i.x,o=(e==null?void 0:e[1])||i.y;return console.log(r,o,e,i),this.context.currentFloor.addPoi(xn({},n,{position:{x:r,y:o,z:i.z+t.options.height/2}}))}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,n=500){let e=t.getPosition();return this.context.setCameraPosition(e,n)}translateElementToCenterX(t,n=500){var e=this;return gi(function*(){return dt(new Promise(i=>{let r=e.context.control.target.clone(),o=t.getPosition();e.timer.requestAnimationFrame(()=>{let{clientSize:{width:a,height:u},camera:l}=e.context,h=C(o,l,a,u).x-a/2,p=new Cn.Vector3;p.setFromMatrixColumn(e.context.camera.matrix,0),p.normalize(),p.multiplyScalar(h/e.context.camera.zoom),r.add(p),e.context.setCameraPosition(r,n).then(i)})}),n+500)})()}getElementDeviceCoordinate(t){let n=t.position.clone(),{clientWidth:e,clientHeight:i}=this.container;return C(n,this.context.camera,e,i)}changeMapType(t,n=500){return this.type=t,t==="2d"?this.context.setPolarAngle(0,n):this.context.setPolarAngle(1.1,n)}resetView(t=300){var n=this;return gi(function*(){let e=t/3;yield n.context.setAzimuthalAngle(n.config.control.defaultAzimuthal,e),yield n.context.setPolarAngle(n.config.control.defaultPolar,e),yield n.context.fitCameraToGround(n.config.defaultPadding,e,!1)})()}reduceMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e-t,this.context.control.target,n)}enlargeMap(t=.5,n=500){let e=this.context.camera.zoom;return this.context.setZoom(e+t,this.context.control.target,n)}registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver((0,Co.debounce)(this.resize,5));t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t=.1){let n=this.context.control.getAzimuthalAngle();this.context.setAzimuthalAngle(n+t,500)}measureDistance(){var t=this;return gi(function*(){return t.cancelDistance(),new Promise((n,e)=>{t.changeMapType("2d",0),t.context.control.enableRotate=!1,t.svgLine=new Ze(t.context);let i=t.svgLine.dispose.bind(t.svgLine);t.svgLine.dispose=function(){i(),e("cancel")},t.svgLine.addEventListener("distance",({distance:r})=>{n(r)})})})()}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,n)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new tn(this.context);let e=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){e(),n("cancel")},this.svgPolygon.addEventListener("area",({area:i})=>{t(i)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){var n;return((n=this.context.currentFloor)==null?void 0:n.graphicLayer.getGraphicByNodeId(t))||null}deleteGraphic(t){var n;(n=this.context.currentFloor)==null||n.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var n;if(!t.transformToBuildingGround&&this.currentBuildGround){let e=De(this.currentBuildGround.info.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(r=>{r[0]-=e[0],r[1]-=e[1]})});else{let[i,r]=t.geometry.cds;t.geometry.coords=[i-e[0],r-e[1]]}}return(n=this.context.currentFloor)==null?void 0:n.graphicLayer.createGraphic(t)}removePoiById(t){var n,e;(n=this.context.currentFloor)==null||n.poiLayer.removePoiById(t),(e=this.context.currentFloor)==null||e.poiLayer2.removePoiById(t)}getPoiById(t){var n,e;return((n=this.context.currentFloor)==null?void 0:n.poiLayer.getPoiById(t))||((e=this.context.currentFloor)==null?void 0:e.poiLayer2.getPoiById(t))}getPois(){var t,n;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(e=>!e.options.built_in),...((n=this.context.currentFloor)==null?void 0:n.poiLayer2.pois)||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.context.dispose(),this.unRegistryEvent(),ht.dispose(),Bt.dispose(),Vt.dispose(),_t.dispose(),B.dispose()}constructor(t,n={}){super(),this.container=t,this.polarKeys=[],this.azimuthalKeys=[],this.basicZoom=1,this.prevCameraZoom=1,this.type="2d",this.currentBuildGround=null,this.observe=null,this.buildingCenter=[0,0],this.timer=new Q,this.plugins=[],this.onControlChange=()=>{let{camera:{zoom:e}}=this.context;e!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=e)},this.onKeydown=e=>{this.polarKeys.includes(e.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(e.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=e=>{if(this.polarKeys.includes(e.code)){let i=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=i,this.context.control.minPolarAngle=i}if(this.azimuthalKeys.includes(e.code)){let i=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=i,this.context.control.minAzimuthAngle=i}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let e=this.context.control.getAzimuthalAngle(),i=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let r=this.context.getFitCameraToGroundZoom(void 0,0)||1;this.context.camera.zoom=i,this.context.control.minZoom=r,this.context.control.maxZoom=r*25,this.basicZoom=i,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(e,0),this.context.cameraBound.setEnable(!0)},this.config=yo(n),this.context=new vn(t,this.config),this.registryEvent()}};var Ao=m("three"),At=class extends Ao.EventDispatcher{dispose(){}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};function Eo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function pa(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){Eo(r,e,i,o,a,"next",u)}function a(u){Eo(r,e,i,o,a,"throw",u)}o(void 0)})}}var So=class extends At{fetchEquipment(){var t=this;return pa(function*(){let{apiDomain:n,apiPath:{equipmentList:e},apiInfo:i}=t.bmap.config,r=`${n}${e}`;yield fetch(r,i).then(o=>o.json()).then(o=>o.data).then(o=>{t.equipmentList=o,t.equipmentMap=new Map(o.map(a=>[a.equipment_id,a]))}),t.dispatchEvent({type:"change-equipment-list",data:t.equipmentList}),t.bmap.context.currentFloor&&t.changeGraphicToEquipment(t.bmap.context.currentFloor.graphicLayer.children)})()}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(n=>{let e=this.getGraphicEquipment(n);return e&&this.equipmentMap.has(e)}).forEach(n=>{let e=this.equipmentMap.get(this.getGraphicEquipment(n)),i=this.bmap.createGraphicPoi(n,{icon:e==null?void 0:e.equipment_icon,built_in:!0,icon_size:[14,14]});i&&(i.userData.data=e,i.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(tt.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(n=>{if(n.userData.type==="equipment"){var e;(e=this.bmap.context.currentFloor)==null||e.poiLayer.removePoi(n)}})}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=({data:{graphics:n}})=>{this.equipmentList.length&&this.changeGraphicToEquipment(n)},this.fetchEquipment(),this.bmap.addEventListener(tt.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};var z=m("three");var x=m("three"),it=class extends x.BufferGeometry{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new x.Matrix4,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(t){this.setGeometry(t,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(t){this.setPoints(t,this.widthCallback)}}})}};it.prototype.setMatrixWorld=function(s){this.matrixWorld=s};it.prototype.setGeometry=function(s,t){this._geometry=s,this.setPoints(s.getAttribute("position").array,t)};it.prototype.setPoints=function(s,t){if(!(s instanceof Float32Array)&&!(s instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=s,this.widthCallback=t,this.positions=[],this.counters=[],s.length&&s[0]instanceof x.Vector3)for(var n=0;n<s.length;n++){var e=s[n],i=n/s.length;this.positions.push(e.x,e.y,e.z),this.positions.push(e.x,e.y,e.z),this.counters.push(i),this.counters.push(i)}else for(var n=0;n<s.length;n+=3){var i=n/s.length;this.positions.push(s[n],s[n+1],s[n+2]),this.positions.push(s[n],s[n+1],s[n+2]),this.counters.push(i),this.counters.push(i)}this.process()};function fa(s,t){var n=new x.Matrix4,e=new x.Ray,i=new x.Sphere,r=new x.Vector3,o=this.geometry;if(o.boundingSphere||o.computeBoundingSphere(),i.copy(o.boundingSphere),i.applyMatrix4(this.matrixWorld),s.ray.intersectSphere(i,r)!==!1){n.copy(this.matrixWorld).invert(),e.copy(s.ray).applyMatrix4(n);var a=new x.Vector3,u=new x.Vector3,l=new x.Vector3,c=this instanceof x.LineSegments?2:1,h=o.index,p=o.attributes;if(h!==null)for(var f=h.array,g=p.position.array,y=p.width.array,S=0,M=f.length-1;S<M;S+=c){var P=f[S],k=f[S+1];a.fromArray(g,P*3),u.fromArray(g,k*3);var U=y[Math.floor(S/3)]!==void 0?y[Math.floor(S/3)]:1,b=s.params.Line.threshold+this.material.lineWidth*U/2,ut=b*b,A=e.distanceSqToSegment(a,u,r,l);if(!(A>ut)){r.applyMatrix4(this.matrixWorld);var rt=s.ray.origin.distanceTo(r);rt<s.near||rt>s.far||(t.push({distance:rt,point:l.clone().applyMatrix4(this.matrixWorld),index:S,face:null,faceIndex:null,object:this}),S=M)}}}}it.prototype.raycast=fa;it.prototype.compareV3=function(s,t){var n=s*6,e=t*6;return this.positions[n]===this.positions[e]&&this.positions[n+1]===this.positions[e+1]&&this.positions[n+2]===this.positions[e+2]};it.prototype.copyV3=function(s){var t=s*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};it.prototype.getDistance=function(s){let t=0;for(let n=0;n<s;n++){let e=6*n,i=new x.Vector3(this.positions[e],this.positions[e+1],this.positions[e+2]),r=new x.Vector3(this.positions[e+6],this.positions[e+7],this.positions[e+8]),o=i.distanceTo(r);t+=o}return t};it.prototype.process=function(){var s=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let n=this.getDistance(s-1);var e;this.compareV3(0,s-1)?e=this.copyV3(s-2):e=this.copyV3(0),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);for(var i=0;i<s;i++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(i/(s-1)):t=1,this.width.push(t),this.width.push(t),i===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(i===s-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let o=this.getDistance(i)/n;this.uvs.push(o,0),this.uvs.push(o,1)}if(i<s-1){e=this.copyV3(i),this.previous.push(e[0],e[1],e[2]),this.previous.push(e[0],e[1],e[2]);var r=i*2;this.indices_array.push(r,r+1,r+2),this.indices_array.push(r+2,r+1,r+3)}i>0&&(e=this.copyV3(i),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]))}this.compareV3(s-1,0)?e=this.copyV3(1):e=this.copyV3(s-1),this.next.push(e[0],e[1],e[2]),this.next.push(e[0],e[1],e[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new x.BufferAttribute(new Float32Array(this.positions),3),previous:new x.BufferAttribute(new Float32Array(this.previous),3),next:new x.BufferAttribute(new Float32Array(this.next),3),side:new x.BufferAttribute(new Float32Array(this.side),1),width:new x.BufferAttribute(new Float32Array(this.width),1),uv:new x.BufferAttribute(new Float32Array(this.uvs),2),index:new x.BufferAttribute(new Uint16Array(this.indices_array),1),counters:new x.BufferAttribute(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function mi(s,t,n,e,i){var r;if(s=s.subarray||s.slice?s:s.buffer,n=n.subarray||n.slice?n:n.buffer,s=t?s.subarray?s.subarray(t,i&&t+i):s.slice(t,i&&t+i):s,n.set)n.set(s,e);else for(r=0;r<s.length;r++)n[r+e]=s[r];return n}it.prototype.advance=function(s){var t=this._attributes.position.array,n=this._attributes.previous.array,e=this._attributes.next.array,i=t.length;mi(t,0,n,0,i),mi(t,6,t,0,i-6),t[i-6]=s.x,t[i-5]=s.y,t[i-4]=s.z,t[i-3]=s.x,t[i-2]=s.y,t[i-1]=s.z,mi(t,6,e,0,i-6),e[i-6]=s.x,e[i-5]=s.y,e[i-4]=s.z,e[i-3]=s.x,e[i-2]=s.y,e[i-1]=s.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};x.ShaderChunk.meshline_vert=["",x.ShaderChunk.logdepthbuf_pars_vertex,x.ShaderChunk.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",x.ShaderChunk.logdepthbuf_vertex,x.ShaderChunk.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",x.ShaderChunk.fog_vertex,"}"].join(`
104
104
  `);x.ShaderChunk.meshline_frag=["",x.ShaderChunk.fog_pars_fragment,x.ShaderChunk.logdepthbuf_pars_fragment,"","uniform sampler2D map;","uniform sampler2D alphaMap;","uniform float useMap;","uniform float useAlphaMap;","uniform float useDash;","uniform float dashArray;","uniform float dashOffset;","uniform float dashRatio;","uniform float visibility;","uniform float alphaTest;","uniform vec2 repeat;","uniform float thresholdRatio;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","void main() {","",x.ShaderChunk.logdepthbuf_fragment,""," vec4 c = vColor;"," if( useMap == 1. ) c *= texture2D( map, vUV * repeat );"," if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUV * repeat ).a;"," if( c.a < alphaTest ) discard;"," if( useDash == 1. ){"," c.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio));"," }"," gl_FragColor = c;"," gl_FragColor.a *= step(vCounters, visibility);","",x.ShaderChunk.fog_fragment,"if (vUV.x <= thresholdRatio) {","gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);","}","}"].join(`
105
105
  `);var ie=class extends x.ShaderMaterial{constructor(t){super({uniforms:Object.assign({},x.UniformsLib.fog,{lineWidth:{value:1},map:{value:null},useMap:{value:0},alphaMap:{value:null},useAlphaMap:{value:0},color:{value:new x.Color(16777215)},opacity:{value:1},resolution:{value:new x.Vector2(1,1)},sizeAttenuation:{value:1},dashArray:{value:0},dashOffset:{value:0},dashRatio:{value:.5},useDash:{value:0},visibility:{value:1},alphaTest:{value:0},repeat:{value:new x.Vector2(1,1)},thresholdRatio:{value:0},transparent:{value:!0},depthTest:{vale:!1},depthWrite:{value:!1}}),vertexShader:x.ShaderChunk.meshline_vert,fragmentShader:x.ShaderChunk.meshline_frag}),this.isMeshLineMaterial=!0,this.type="MeshLineMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get:function(){return this.uniforms.lineWidth.value},set:function(n){this.uniforms.lineWidth.value=n}},map:{enumerable:!0,get:function(){return this.uniforms.map.value},set:function(n){this.uniforms.map.value=n}},useMap:{enumerable:!0,get:function(){return this.uniforms.useMap.value},set:function(n){this.uniforms.useMap.value=n}},alphaMap:{enumerable:!0,get:function(){return this.uniforms.alphaMap.value},set:function(n){this.uniforms.alphaMap.value=n}},useAlphaMap:{enumerable:!0,get:function(){return this.uniforms.useAlphaMap.value},set:function(n){this.uniforms.useAlphaMap.value=n}},color:{enumerable:!0,get:function(){return this.uniforms.color.value},set:function(n){this.uniforms.color.value=n}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(n){this.uniforms.opacity.value=n}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(n){this.uniforms.resolution.value.copy(n)}},sizeAttenuation:{enumerable:!0,get:function(){return this.uniforms.sizeAttenuation.value},set:function(n){this.uniforms.sizeAttenuation.value=n}},dashArray:{enumerable:!0,get:function(){return this.uniforms.dashArray.value},set:function(n){this.uniforms.dashArray.value=n,this.useDash=n!==0?1:0}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(n){this.uniforms.dashOffset.value=n}},dashRatio:{enumerable:!0,get:function(){return this.uniforms.dashRatio.value},set:function(n){this.uniforms.dashRatio.value=n}},useDash:{enumerable:!0,get:function(){return this.uniforms.useDash.value},set:function(n){this.uniforms.useDash.value=n}},visibility:{enumerable:!0,get:function(){return this.uniforms.visibility.value},set:function(n){this.uniforms.visibility.value=n}},alphaTest:{enumerable:!0,get:function(){return this.uniforms.alphaTest.value},set:function(n){this.uniforms.alphaTest.value=n}},repeat:{enumerable:!0,get:function(){return this.uniforms.repeat.value},set:function(n){this.uniforms.repeat.value.copy(n)}},thresholdRatio:{enumerable:!0,get:function(){return this.uniforms.thresholdRatio.value},set:function(n){this.uniforms.thresholdRatio.value=n}}}),this.setValues(t)}};ie.prototype.copy=function(s){return x.ShaderMaterial.prototype.copy.call(this,s),this.lineWidth=s.lineWidth,this.map=s.map,this.useMap=s.useMap,this.alphaMap=s.alphaMap,this.useAlphaMap=s.useAlphaMap,this.color.copy(s.color),this.opacity=s.opacity,this.resolution.copy(s.resolution),this.sizeAttenuation=s.sizeAttenuation,this.dashArray.copy(s.dashArray),this.dashOffset.copy(s.dashOffset),this.dashRatio.copy(s.dashRatio),this.useDash=s.useDash,this.visibility=s.visibility,this.alphaTest=s.alphaTest,this.repeat.copy(s.repeat),this};var Mo="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAMAAACROYkbAAABrVBMVEVsjPdsjPdqi/doifdpivdrjPdsjPdsjPd/m/igtfqTq/lykfdri/dsjPdtjfe/zPv8/f/w8/6zw/p0kvdri/dsjPdtjffU3vz////////3+f62xfpzkfdri/dsjPdsjPeZr/nr8P7////////4+f62xfp0kvdri/dsjPdsjPdujveXrvne5v3////////3+f63x/t2lPdri/dsjPdsjPdsjPdri/eMpfjb4/3+/v/////4+v+7yft1k/dri/dsjPdsjPdri/eJovjl6/3////////3+f6Jo/lqivdsjPdri/dvjveluPry9f7////////i6f2BnPhqi/dsjPdrjPdvjveluPrv8v7////////l6/6Uq/lsjPdsjPdsjPdvjveluPrv8v7////////m6/6Uq/lsjPdsjPdsjPdsjPeZr/nv8v7////////s8f6XrvlsjPdsjPdtjffS2/z////////w9P6bsfltjfdsjPdtjffBz/v7/P/y9f6svvpxkPdrjPdsjPdsjPd+mviftPqVrPlykfdri/dsjPdsjPdri/doifdpifdrjPdsjPclkRlrAAAAx0lEQVQ4y2NgwAsYmZhZWNkYyAfsHJxc3Dy85BvAxy8gKCQsIkq2AWLiEpJS0jKycuQaIK+gqKSsoqqmrkGmAZpa2jq6evoGhkbG5BlgYmpmbmFpZW1ja0emE+wdHJ2cXVzd3D3INMDTy9vH188/IDCIPP3BIaFh4RGRUdExseQZEBefkJiUnJKalp5BngGZWdk5uXn5BemFZAZBUXFJaVl5RSWZ9jMwVFXX1NbVNzSSq5+hqbmlta29g2z9DJ1d3T29ffhUAABKPSh5Xst3GwAAAABJRU5ErkJggg==";function bo(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function ga(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){bo(r,e,i,o,a,"next",u)}function a(u){bo(r,e,i,o,a,"throw",u)}o(void 0)})}}var wo={texture_url:Mo,lineWidth:10,color:16777215},An=class extends z.Object3D{registryEvent(){this.navigation.bmap.context.addEventListener("control-change",this.onControlChange),this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.bmap.context.addEventListener("resize",this.onResize)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("control-change",this.onControlChange),this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.bmap.context.removeEventListener("resize",this.onResize)}getDepthTestByControl(){let t=this.navigation.bmap.context.control.getPolarAngle();return!(t>=0&&t<=.15)}setDepthTest(t){this.depthTest=t,this.material&&(this.material.depthTest=t)}getRepeat(){let{points:t,navigation:{bmap:{context:{camera:n,clientSize:{width:e,height:i}}}}}=this,r=t.map(([a,u])=>C(new z.Vector3(a,u,0),n,e,i)).map(({x:a,y:u})=>[a,u]);return ft(r)/32}changeRepeat(){if(!this.material)return;let t=this.getRepeat();this.material.repeat=new z.Vector2(t,1)}loadTexture(t){return new Promise((n,e)=>{new z.TextureLoader().load(t,n,void 0,e)})}transformPoints(t){let n=[];for(let e=0;e<t.length;e++)n.push(...t[e],0);return n}updatePoints(t){this.points=t,this.changeRepeat();let n=this.transformPoints(t);this.geometry&&this.geometry.setPoints(n)}movePath(t){this.material&&(this.material.thresholdRatio=t)}create(t){var n=this;return ga(function*(){let e=n.geometry=new it;if(n.updatePoints(t),!n.texture){let o=n.texture=yield n.loadTexture(n.config.texture_url);o.wrapS=o.wrapT=z.RepeatWrapping}let i=n.material=new ie({useMap:!0,color:new z.Color(n.config.color),transparent:!0,resolution:new z.Vector2(n.navigation.bmap.context.clientSize.width,n.navigation.bmap.context.clientSize.height),depthTest:n.depthTest,sizeAttenuation:!1,lineWidth:n.config.lineWidth*2,map:n.texture,blending:z.NormalBlending,repeat:new z.Vector2(n.getRepeat(),1)}),r=n.mesh=new z.Mesh(e,i);return r.renderOrder=9,n.add(r),r})()}dispose(){var t,n,e;this.unRegistryEvent(),this.clear(),(t=this.geometry)==null||t.dispose(),(n=this.material)==null||n.dispose(),(e=this.texture)==null||e.dispose()}constructor(t,n){super(),this.navigation=t,this.mesh=null,this.geometry=null,this.material=null,this.texture=null,this.config=wo,this.points=[],this.basicRepeat=1,this.prevCameraZoom=0,this.depthTest=!0,this.onControlChange=()=>{let e=this.navigation.bmap.context.camera.zoom;e!==this.prevCameraZoom&&(this.prevCameraZoom=e,this.changeRepeat()),this.setDepthTest(this.getDepthTestByControl())},this.onUpdate=()=>{this.texture},this.onResize=()=>{if(this.material){let{width:e,height:i}=this.navigation.bmap.context.clientSize;this.material.resolution.set(e,i)}},this.config=Object.assign({},wo,n),this.registryEvent(),this.prevCameraZoom=this.navigation.bmap.context.camera.zoom,this.setDepthTest(this.getDepthTestByControl())}};var xe=m("@tweenjs/tween.js"),qt=m("three");var Io=m("three");var Ro=m("@tweenjs/tween.js"),Po=m("lodash");function To(s,t,n,e,i,r,o){try{var a=s[r](o),u=a.value}catch(l){n(l);return}a.done?t(u):Promise.resolve(u).then(e,i)}function ma(s){return function(){var t=this,n=arguments;return new Promise(function(e,i){var r=s.apply(t,n);function o(u){To(r,e,i,o,a,"next",u)}function a(u){To(r,e,i,o,a,"throw",u)}o(void 0)})}}function _i(){return _i=Object.assign||function(s){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(s[e]=n[e])}return s},_i.apply(this,arguments)}var _a={offsetDistance:15,offsetToResetTime:3e3,directionEmitThreshold:5,simulationSpeed:1},En=class extends Io.EventDispatcher{get curRoutePath(){return this.paths[this.routeIndex]||null}get curRoutePathPoints(){var t;return((t=this.curRoutePath)==null?void 0:t.points)||[]}registryEvent(){this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.addEventListener("add-path",this.onAddPaths)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.removeEventListener("add-path",this.onAddPaths)}resetStatus(t){this.offset=!1,this.reset=!1,this.routeIndex=0,this.pointIndex=0,t.length&&(this.position=t[0].points[0])}emitNavigationStatus(){let t=this.getNavigationInfo();t&&this.dispatchEvent({type:"navigation-info",info:t})}adsorb(t,n){let{curRoutePathPoints:e,position:i,curRoutePath:r,paths:o,routeIndex:a}=this;if(!e.length)return null;let u=e;if(i){let g=Gt(e,i);u=u.slice(g+1),u.unshift(i)}let l=[{floor:r==null?void 0:r.floor,points:u},...o.slice(a+1)],{distance:c,closestPoint:h,index:p,i:f}=l.reduce((g,y,S)=>{if(y.floor!==t)return g;let{distance:M,closestPoint:P,index:k}=y.points.reduce((U,b,ut,A)=>{if(!A[ut+1])return _i({},U,{distance:U.distance===1/0?H(b,n):U.distance});let{distance:rt,closestPoint:Ee}=dr(n,b,A[ut+1]);return rt<U.distance?{distance:rt,closestPoint:Ee,index:ut}:U},{distance:1/0,closestPoint:y.points[0],index:0});return M<g.distance?{distance:M,closestPoint:P,index:S,i:k}:g},{distance:1/0,closestPoint:u[0],index:0,i:0});return{distance:c,closestPoint:h,routeIndex:p+a,pointIndex:p===0?f+this.pointIndex:f}}toPosition(t,n){let e=this.adsorb(t,n);if(console.log("adsorbData",e),!e)return;let{distance:i,closestPoint:r,routeIndex:o,pointIndex:a}=e;i>this.options.offsetDistance?(this.offset=!0,this.resetTimer||(this.resetTimer=this.timer.setTimeout(()=>{this.reset=!0,this.resetTimer=null},this.options.offsetToResetTime))):(this.offset=!1,this.reset=!1,this.resetTimer&&(this.timer.clearTimeout(this.resetTimer),this.resetTimer=null)),this.routeIndex=o,this.pointIndex=a,this.position=r,this.emitNavigationStatus()}startSimulation(){this.resetStatus(this.paths),this.emitNavigationStatus(),this.startCurRouteSimulation()}pause(){var t;this.tweenUtil.pause(),(t=this.throttleUpdatePosition)==null||t.cancel()}startCurRouteSimulation(){var t=this;return ma(function*(){let{curRoutePath:n}=t;if(!n)return;t.simulationTween&&t.tweenUtil.remove(t.simulationTween);let e=[];return new Promise(i=>{let r=[t.position,...t.curRoutePathPoints.slice(t.pointIndex+1)],o=t.getCurRouteRemainDistance(),a=o/t.options.simulationSpeed,u=t.throttleUpdatePosition=(0,Po.throttle)(c=>{let h=me(r,c.distance);h&&(e.push({floor:n.floor,pos:h}),t.toPosition(n.floor,h))},100),l=t.simulationTween=new Ro.Tween({distance:0},t.tweenUtil.group).to({distance:o},a*1e3).onUpdate(u).onComplete(()=>{t.tweenUtil.remove(l),u.flush(),u.cancel(),t.routeIndex+1<t.paths.length?(t.routeIndex++,t.position=t.paths[t.routeIndex].points[0],t.pointIndex=0,setTimeout(()=>{i(t.startCurRouteSimulation())},3e3)):(i(!0),console.log(e,t.routeIndex,t.paths))}).start()})})()}changeSimulationSpeed(t){this.options.simulationSpeed=t,this.startCurRouteSimulation()}getCurRouteRemainDistance(){let{curRoutePathPoints:t,pointIndex:n,position:e}=this;if(!t.length)return 0;let i=[e,...t.slice(n+1)];return ft(i)}getCurRouteToStartDistance(){let{curRoutePathPoints:t,pointIndex:n,position:e}=this;if(!t.length)return 0;let i=[...t.slice(0,n+1),e];return ft(i)}getRemainDistance(){let t=this.getCurRouteRemainDistance();return{total:this.paths.slice(this.routeIndex+1).reduce((i,r)=>i+r.distance,0)+t,curRoute:t}}getNextDirDistance(){if(!this.position)return null;let{pointIndex:t,curRoutePathPoints:n,position:e}=this,i=t,r=gt.FRONT,o=0,a=Date.now();for(;r===gt.FRONT&&o<this.options.directionEmitThreshold&&Date.now()-a<5;){let l=n[i],c=n[i+1],h=n[i+2];!l||!c?r=gt.END:t===0?H(l,e)<5&&(r=gt.START):(o+=H(e,c),h?(r=qn(l,c,h),i+=1):r=gt.END)}return r===gt.END&&o<=this.options.directionEmitThreshold?{dir:r,distance:o}:this.getCurRouteToStartDistance()<=5?{dir:gt.START,distance:o}:(o>=this.options.directionEmitThreshold&&(r=gt.FRONT),{dir:r,distance:o})}getNavigationInfo(){let{total:t,curRoute:n}=this.getRemainDistance(),e=this.getNextDirDistance();if(!e)return null;let{dir:i,distance:r}=e;return i===gt.END&&r>15&&(i=gt.FRONT),n<=10&&(i=gt.END),{distance:t,curRouteDistance:n,nextDirDistance:r,dir:i,pos:this.position,routeIndex:this.routeIndex,offset:this.offset,reset:this.reset}}dispose(){this.timer.dispose(),this.unRegistryEvent(),this.tweenUtil.clear()}constructor(t,n,e){super(),this.navigation=t,this.offset=!1,this.reset=!1,this.position=[0,0],this.routeIndex=0,this.pointIndex=0,this.paths=[],this.timer=new Q,this.resetTimer=null,this.tweenUtil=new Xt,this.onAddPaths=({paths:i})=>{this.paths=i,this.resetStatus(i)},this.onUpdate=()=>{this.tweenUtil.update()},this.options=Object.assign({},_a,n),this.roadData=e,this.registryEvent()}};var Et=m("three");var Ft=class s extends j{addDebug(){s.canvas.style.cssText=`
106
106
  position: fixed;
package/lib/src/bmap.js CHANGED
@@ -102,7 +102,7 @@ export class BMap extends EventDispatcher {
102
102
  this.context.camera.zoom = 1;
103
103
  this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal, 0);
104
104
  this.context.setPolarAngle(this.config.control.defaultPolar, 0);
105
- this.context.fitCameraToGround(undefined, 0);
105
+ this.context.fitCameraToGround(this.config.defaultPadding, 0);
106
106
  const basicZoom = this.context.camera.zoom;
107
107
  // 设置zoom
108
108
  this.context.control.minZoom = basicZoom;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aibee/crc-bmap",
3
- "version": "0.8.29",
3
+ "version": "0.8.30",
4
4
  "description": "",
5
5
  "main": "lib/bmap.min.js",
6
6
  "module": "lib/bmap.esm.js",