@aibee/crc-bmap 0.8.100 → 0.8.101
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.
- package/lib/index.cjs +2 -2
- package/lib/index.esm.min.js +2 -2
- package/lib/index.js +2 -2
- package/lib/index.online.esm.min.js +2 -2
- package/lib/platform/wrapper.cjs +2 -2
- package/lib/platform/wrapper.esm.min.js +2 -2
- package/lib/platform/wrapper.js +2 -2
- package/lib/platform/wrapper.online.esm.min.js +2 -2
- package/lib/src/loader/AibeeLoader/index.d.ts +1 -0
- package/lib/src/loader/AibeeLoader/index.js +22 -21
- package/lib/src/loader/AibeeLoader/layer.js +3 -3
- package/lib/src/plugins/navigation/path.js +1 -1
- package/package.json +1 -1
|
@@ -3908,9 +3908,9 @@ void main() {
|
|
|
3908
3908
|
gl_FragColor = vec4(uColor2, uOpacity); // \u5176\u4ED6\u9762\u989C\u8272\uFF09
|
|
3909
3909
|
}
|
|
3910
3910
|
}
|
|
3911
|
-
`,n=-1/0,r=this.geometry.getAttribute("position");if(r)for(let s=0;s<r.count;s++){let a=r.getZ(s);a>n&&(n=a)}let o=new uz({uniforms:{maxZ:{value:n},uColor:{value:new F6(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new F6(De(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:e,transparent:!0});this.material=o}initLineMaterial(){let t=X.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 oz(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],e=this.options[0].height+this.options[0].deltaHeight;return this.options.map(n=>{let{coords:r}=n.geometry;for(let o=0;o<r.length;o++){let s=r[o];for(let a=0;a<s.length;a++){let u=s[a],l=a+1===s.length?s[0]:s[a+1];t.push(new U6(u[0],u[1],e)),t.push(new U6(l[0],l[1],e))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),e=new sz().setFromPoints(t);this.lineGeometry=e}createBorder(){this.line&&this.remove(this.line);let t=new az(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t,e,n;(t=this.geometry)==null||t.dispose(),(e=this.material)==null||e.dispose(),(n=this.line)==null||n.geometry.dispose(),this.clear()}constructor(t,e){super(),this.context=t,this.options=e.map(n=>S({},Rc,n)),this.init()}};var kK=d(A(),1);import{Box2 as Lc,Object3D as lz,Sprite as B6,SpriteMaterial as z6,Vector2 as ia}from"three";import{isNil as zi}from"lodash";var cz={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,hide_text:!1},nt=class extends lz{get hasText(){return!this.options.hide_text&&this.options.text}get durIconAndText(){return this.options.icon&&this.hasText?2:0}get offset(){return this.options.icon&&this.hasText?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.hasText?this.options.text_font_size*this.textAspect:0}get textHeight(){return this.hasText?this.options.text_font_size:0}get hasOriginTexture(){let{text_texture:t,text_texture_width:e,text_texture_height:n,text_texture_offset_x:r,text_texture_offset_y:o}=this.options;return!zi(t)&&!zi(e)&&!zi(n)&&!zi(r)&&!zi(o)}get deltaZ(){return!this.options.icon&&this.hasText?.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),this.addEventListener("change-icon",t=>x(this,null,function*(){let{value:e}=t;this._initIconPromise&&(yield this._initIconPromise),this.spriteIcon&&(this.remove(this.spriteIcon),this.spriteIcon=void 0),yield this.initIcon(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})})),this.addEventListener("change-text",t=>{let{value:e}=t;this.spriteText&&(this.remove(this.spriteText),this.spriteText=void 0),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-text_font_size",t=>{let{value:e}=t;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",t=>{let{value:e}=t;this.spriteIcon&&(this.spriteIcon.material.rotation=e/180*Math.PI)}),this.addEventListener("change-icon_size",t=>{let{value:e}=t;this.spriteIcon&&(this.initSize(),this._initScale({zoom:this.context.camera.zoom}))}),this.addEventListener("change-depth_test",t=>{let{value:e}=t;this.spriteIcon&&(this.spriteIcon.material.depthTest=e),this.spriteText&&(this.spriteText.material.depthTest=e)})}unRegistryEvent(){this.context.removeEventListener("control-zoom-change",this._initScale)}getPosition(){return this.position}initIcon(){return x(this,null,function*(){if(this.options.icon)return this._initIconPromise=new Promise(t=>x(this,null,function*(){let e;if(this.options.icon_border){let{icon:r,icon_size:o,icon_border:s}=this.options;e=yield ut.getUrlTextureBorder(r,o[0]-s.width*2,s)}else e=yield ut.getTextureByUrl(this.options.icon);let n=new B6(new z6({map:e,transparent:!0,alphaTest:.2,depthTest:this.options.depth_test,rotation:this.options.icon_rotate/180*Math.PI}));n.visible=!1,n.renderOrder=1e5+this.options.level,e.needsUpdate=!0,this.add(n),this.spriteIcon=n,t(n)})).then(()=>{this._initIconPromise=null})})}initText(){if(this.hasText){let t;if(this.hasOriginTexture){let{text_texture:n,text_texture_width:r,text_texture_height:o,text_texture_offset_x:s,text_texture_offset_y:a}=this.options;t=this.options.text_texture.clone(),t.uuid=n.uuid,t.offset.set(s/t.image.width,1-(o+a)/t.image.height),t.repeat.set(r/t.image.width,o/t.image.height),this.textAspect=r/o}else t=tt.getTextureByText(this.options.text),this.textAspect=t.image.width/t.image.height;let e=new B6(new z6({map:t,transparent:!0,alphaTest:.2,depthTest:this.options.depth_test}));e.visible=!1,e.renderOrder=100001+this.options.level,t.needsUpdate=!0,this.spriteText=e,this.add(e)}}initSize(){var t,e;let n=0,r=0,{icon:o}=this.options;o?this.hasText?(n=0,r=n*(this.iconHeight/this.textHeight)-this.iconHeight/this.textHeight-this.durIconAndText/this.textHeight):(n=.5,r=0):this.hasText?(r=.5,n=0):(n=0,r=0),(t=this.spriteIcon)==null||t.center.set(.5,n),(e=this.spriteText)==null||e.center.set(.5,r)}init(){return x(this,null,function*(){yield Promise.all([this.initIcon(),new Promise(t=>{this.initText(),t(!0)})]),this.initSize(),this._initScale({zoom:this.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:e,height:n}}=this.context,r=e*(t.x+1)/2,o=n*(-t.y+1)/2;o+=this.offset*(this.iconHeight+this.durIconAndText+this.textHeight);let s=this.iconWidth/2,a=new Lc(new ia(r-s,o-this.iconHeight),new ia(r+s,o)),u=this.textWidth/2,l=new Lc(new ia(r-u,o-this.textHeight-this.durIconAndText-this.iconHeight),new ia(r+u,o-this.iconHeight-this.durIconAndText));return this.box=l.union(a),this.box}renderBoxHelper(t,e){if(!this.boxHelper){let n=document.createElement("div");n.style.position="absolute",n.style.zIndex="999",n.style.border="1px solid red",n.style.pointerEvents="none",this.boxHelper=n,this.context.container.appendChild(n)}t&&e?(this.boxHelper.style.left=t+"px",this.boxHelper.style.top=e+"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,e){super(),this.context=t,this.textAspect=1,this.box=new Lc,this._initIconPromise=null,this._initScale=n=>{let{zoom:r}=n;if(this.spriteText){let s=this.textHeight/r;this.spriteText.scale.set(this.textAspect*s,s,.1)}if(this.spriteIcon){var o;(o=this.spriteIcon)==null||o.scale.set(this.options.icon_size[0]/r,this.options.icon_size[1]/r,.1)}this.resetZ()},this.options=Kn(S({},cz,e),this),this.position.set(this.options.position.x,this.options.position.y,this.options.position.z),this.registryEvent(),this.init()}};import{DoubleSide as hz,Matrix4 as k6,Mesh as pz,MeshBasicMaterial as fz,Object3D as dz,PlaneGeometry as gz}from"three";import{mergeGeometries as mz}from"three/examples/jsm/utils/BufferGeometryUtils";var vz={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},oa=class extends dz{init(){return x(this,null,function*(){let t=this.options.map(s=>tt.getTextureByText(s.texts[0],{fillStyle:_0(s.fillColor,s.fillOpacity),strokeStyle:_0(s.strokeColor,s.strokeOpacity),lineWidth:6,font:"bold 54px sans-serif"})),e=t.map((s,a)=>{let u=this.options[a],{width:l,height:c}=s.image,h=l/c,p=u.secondHeight*h,f=new gz(p,u.secondHeight),m=new k6().makeTranslation(u.center_x,u.center_y,u.airHeight+u.deltaHeight+u.height).multiply(new k6().makeRotationZ(u.secondRotate));return f.applyMatrix4(m),f}),n=mz(e,!0);e.forEach(s=>s.dispose());let r=t.map(s=>{let a=new fz({map:s,alphaTest:1,side:hz});return s.needsUpdate=!0,a}),o=new pz(n,r);this.mesh=o,this.position.z+=.04,this.add(o)})}dispose(){var t,e;(t=this.mesh)==null||t.geometry.dispose(),((e=this.mesh)==null?void 0:e.material).forEach(n=>n.dispose()),this.clear()}constructor(t,e){super(),this.context=t,this.options=e.map(n=>S({},vz,n)),this.init()}};import{Object3D as _z}from"three";import{Line2 as yz}from"three/examples/jsm/lines/Line2";import{LineGeometry as xz}from"three/examples/jsm/lines/LineGeometry";import{LineMaterial as Ez}from"three/examples/jsm/lines/LineMaterial";var ki=class extends _z{registryEvent(){this.context.addEventListener("resize",this.onResize)}unRegistryEvent(){this.context.removeEventListener("resize",this.onResize)}setPosition(t,e){this.lineGeometry.setPositions([t.x,t.y,t.z,e.x,e.y,e.z]),this.line||this.createLine()}createLine(){this.line=new yz(this.lineGeometry,this.lineMaterial),this.line.renderOrder=100003,this.add(this.line)}dispose(){var t;this.unRegistryEvent(),this.line&&J(this.line),this.lineGeometry=null,this.lineMaterial=null,this.clear(),(t=this.line)==null||t.clear(),this.line=null}constructor(t,e,n){super(),this.context=t,this.lineGeometry=new xz,this.lineMaterial=new Ez({color:0,transparent:!0,depthTest:!1,linewidth:2}),this.line=null,this.onResize=()=>{let{width:r,height:o}=this.context.clientSize;this.lineMaterial.resolution.set(r,o)},this.onResize(),this.registryEvent(),e&&n&&this.setPosition(e,n)}};import{Frustum as Sz}from"three";var sa=class extends Yt{setEnable(t){super.setEnable(t),dt(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:e,container:{clientWidth:n,clientHeight:r}}}=this,o=C(this.startPoint,e,n,r),s=C(this.endPoint,e,n,r),a={x:Math.min(o.x,s.x),y:Math.min(o.y,s.y)},u={x:Math.max(o.x,s.x),y:Math.max(o.y,s.y)},l=this.searchMapInFrustum(a,u);this.dispatchEvent({type:"selected",list:l})}}searchMapInFrustum(t,e){var n;let{context:r}=this;return((n=r.currentFloor)==null?void 0:n.graphicLayer.children.filter(o=>o instanceof et&&this.searchChildInFrustum(o,t,e)))||[]}searchChildInFrustum(t,e,n){let{context:{camera:r,container:{clientWidth:o,clientHeight:s}}}=this;if(!t)return!1;if(!t.mesh){let p=t.getPosition();if(p){let f=C(p,r,o,s);return en(f,e,n)}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,r,o,s),h=C(l,r,o,s);return!(!en(c,e,n)||!en(h,e,n))}dispose(){super.dispose(),this.rect=null,this.unRegistryEvent()}constructor(t){super(t),this.frustum=new Sz,this.onPointerDown=r=>{if(!this.enable)return;let o=this.getIntersectByPointerEvent(r);o&&(this.startPoint=o),this.endPoint=void 0},this.onPointerMove=r=>{if(!this.enable||!this.startPoint)return;let o=this.getIntersectByPointerEvent(r);o&&(this.endPoint=o)},this.onPointerUp=r=>{if(!this.enable)return;let o=this.getIntersectByPointerEvent(r);o&&(this.endPoint=o),this.doSelect(),this.startPoint=void 0},this.onUpdate=()=>{if(this.startPoint){let r=this.getSvgCoordinate(this.startPoint),o=S({},r);this.endPoint&&(o=this.getSvgCoordinate(this.endPoint));let s={x:Math.min(r.x,o.x),y:Math.min(r.y,o.y)},a=Math.abs(o.x-r.x),u=Math.abs(o.y-r.y);dt(this.rect,s.x,s.y,a,u)}else dt(this.rect,0,0,0,0)};let{config:{selectBox:{fill:e,stroke:n}}}=t;this.rect=nn(n,e),this.svg.appendChild(this.rect),this.registryEvent()}};var aa=class extends bz{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.downTime=0,this.isMultipleSelect=!1,this.onPointerDown=e=>{Date.now()-this.downTime<200||(this.downPoint={x:e.offsetX,y:e.offsetY},this.downTime=Date.now())},this.onPointerUp=e=>{if(!this.downPoint)return;let{offsetX:n,offsetY:r}=e,{x:o,y:s}=this.downPoint;if(Math.sqrt((o-n)**2+(s-r)**2)>3)return;let{graphics:a}=this.context.getGraphicsByDeviceXy(n,r),u=new Set(a.map(c=>c.options.id));this.context.getPoisByDeviceXy(n,r).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))}}),($n?e.metaKey:e.ctrlKey)||this._list.clear(),a.forEach(c=>this._list.add(c)),this.selectEnd(),this.downPoint=null},this.onPointerOut=e=>{this.disableBoxSelection()},this.onKeyDown=e=>{Jn(e.key)&&this.enableBoxSelection()},this.onKeyUp=e=>{Jn(e.key)&&this.disableBoxSelection()},this.onBoxSelected=e=>{let{list:n}=e;this._list.clear(),n.forEach(r=>{this._list.add(r)}),this.selectEnd()},this.boxSelection=new sa(t),this.boxSelection.setEnable(!1),this.registryEvent()}};var WZ=d(de(),1),qZ=d(ge(),1),XZ=d(me(),1),jZ=d(ve(),1),YZ=d(_e(),1),KZ=d(ye(),1),ZZ=d(xe(),1),$Z=d(A(),1);import{EventDispatcher as Mz,Vector2 as wz}from"three";var ua=class extends Mz{handleHoverGraphicsChange(t){t===void 0&&(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 W,this.graphicTimerMap=new Map,this.onPointerMove=e=>{let{graphics:n,pois:r,e:o}=e,s=r.map(c=>{var h;return(h=this.context.currentFloor)==null?void 0:h.graphicLayer.graphicMap.get(c.options.id)}).filter(c=>c&&c.options.geometry.type==="point");if(!n.length&&!s.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:a}=this.context.config.hover,u=new Set;if(s.length){let c,h=1e4;s.forEach(p=>{let f=r.find(m=>m.options.id===p.options.id);if(f instanceof Nn){let{x:m,y:v}=f.clientPos,y=Math.sqrt((m-o.offsetX)**2+(v-o.offsetY)**2);y<h&&(h=y,c=p)}else if(f instanceof nt){let{x:m,y:v}=f.box.getCenter(new wz),y=Math.sqrt((m-o.offsetX)**2+(v-o.offsetY)**2);y<h&&(h=y,c=p)}}),u.add(c)}u.size||n.forEach(c=>u.add(c)),u.forEach(c=>{if(this.graphicTimerMap.get(c)||this.curGraphics.has(c))return;let h=this.timer.setTimeout(()=>{this.curGraphics.add(c),this.graphicTimerMap.delete(c),this.timer.clearTimeout(h),this.handleHoverGraphicsChange()},a);this.graphicTimerMap.set(c,h)}),this.graphicTimerMap.forEach((c,h)=>{u.has(h)||(this.timer.clearTimeout(c),this.graphicTimerMap.delete(h))});let l=this.curGraphics.size;this.curGraphics.forEach(c=>{u.has(c)||this.curGraphics.delete(c)}),l!==this.curGraphics.size&&this.handleHoverGraphicsChange()},this.onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()},this.onBodyPointerMove=e=>{if(this.curGraphics.size){let n=this.context.container.getBoundingClientRect();(e.clientX<n.left||e.clientX>n.right||e.clientY<n.top||e.clientY>n.bottom)&&this.onPointerLevel()}},this.registryEvent()}};var l$=d(A(),1);import{Box3 as Tz,Vector3 as la}from"three";var ca=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(y=>y instanceof jt).length)return null;let e=this.box,{camera:n,clientSize:{width:r,height:o}}=this.context,{min:s,max:a}=e,u=C(s,n,r,o),l=C(a,n,r,o),c=C(new la(s.x,a.y,a.z),n,r,o),h=C(new la(a.x,s.y,s.z),n,r,o),p=Math.min(u.x,l.x,c.x,h.x),f=Math.max(u.x,l.x,c.x,h.x),m=Math.min(u.y,l.y,c.y,h.y),v=Math.max(u.y,l.y,c.y,h.y);return{left:p,right:f,top:m,bottom:v}}checkDistanceToScreenEdge(t){let{left:e,right:n,top:r,bottom:o}=t,{width:s,height:a}=this.context.clientSize,[u,l,c,h]=this.context.config.cameraBound.padding,p=n>=h,f=s-e>=l,m=a-r>=c,v=o>=u;return p&&f&&m&&v}dispose(){this.unRegistryEvent()}constructor(t){this.context=t,this.prevCamera={position:new la,zoom:1,target:new la},this.enable=!0,this.box=new Tz,this.onCameraChange=()=>{let e=this.getCurFloorScreenPosition();if(e){let{left:n,right:r,top:o,bottom:s}=e;this.checkDistanceToScreenEdge({left:n,right:r,top:o,bottom:s})?this.changePrevCamera():this.backToPrevCamera()}},this.registryEvent(),this.changePrevCamera()}};var M$=d(Dc(),1);import{Vector3 as n3}from"three";import{Tween as ga,Group as Yz}from"@tweenjs/tween.js";var x$=d(A(),1),E$=d(D(),1);import{EventDispatcher as Hz,MOUSE as br,Quaternion as t3,Spherical as pa,TOUCH as Mr,Vector2 as Pt,Vector3 as Kt,Plane as Wz,Ray as qz,MathUtils as Xz}from"three";var fa=new qz,e3=new Wz,jz=Math.cos(70*Xz.DEG2RAD),da=class extends Hz{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,e){super(),this.rotateLineStart=new Pt,this.rotateLineEnd=new Pt,this.spherical=new pa,this.sphericalDelta=new pa,this.object=t,this.domElement=e,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new Kt,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:br.PAN,MIDDLE:br.DOLLY,RIGHT:br.ROTATE},this.touches={ONE:Mr.PAN,TWO:Mr.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(_){_.addEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=_},this.stopListenToKeyEvents=function(){var _;(_=this._domElementKeyEvents)==null||_.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null},this.saveState=function(){n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=function(){n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent({type:"change"}),n.update(),o=r.NONE},this.update=function(){let _=new Kt,b=new t3().setFromUnitVectors(t.up,new Kt(0,1,0)),k=b.clone().invert(),Z=new Kt,wt=new t3,he=new Kt,Zt=2*Math.PI;return function(Pr){Pr===void 0&&(Pr=null);let Ae=n.object.position;_.copy(Ae).sub(n.target),_.applyQuaternion(b),a.setFromVector3(_),n.autoRotate&&o===r.NONE&&G(j(Pr)),n.enableDamping?(a.theta+=u.theta*n.dampingFactor,a.phi+=u.phi*n.dampingFactor):(a.theta+=u.theta,a.phi+=u.phi);let Ce=n.minAzimuthAngle,Re=n.maxAzimuthAngle;isFinite(Ce)&&isFinite(Re)&&(Ce<-Math.PI?Ce+=Zt:Ce>Math.PI&&(Ce-=Zt),Re<-Math.PI?Re+=Zt:Re>Math.PI&&(Re-=Zt),Ce<=Re?a.theta=Math.max(Ce,Math.min(Re,a.theta)):a.theta=a.theta>(Ce+Re)/2?Math.max(Ce,a.theta):Math.min(Re,a.theta)),a.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,a.phi)),a.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(c,n.dampingFactor):n.target.add(c),n.zoomToCursor&&U||n.object.isOrthographicCamera?a.radius=Mt(a.radius):a.radius=Mt(a.radius*l),_.setFromSpherical(a),_.applyQuaternion(k),Ae.copy(n.target).add(_),n.object.lookAt(n.target),n.enableDamping===!0?(u.theta*=1-n.dampingFactor,u.phi*=1-n.dampingFactor,c.multiplyScalar(1-n.dampingFactor)):(u.set(0,0,0),c.set(0,0,0));let Xi=!1;if(n.zoomToCursor&&U){let Ir=null;if(n.object.isPerspectiveCamera){let Lr=_.length();Ir=Mt(Lr*l);let ji=Lr-Ir;n.object.position.addScaledVector(P,ji),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){let Lr=new Kt(R.x,R.y,0);Lr.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/l)),n.object.updateProjectionMatrix(),Xi=!0;let ji=new Kt(R.x,R.y,0);ji.unproject(n.object),n.object.position.sub(ji).add(Lr),n.object.updateMatrixWorld(),Ir=_.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;Ir!==null&&(n.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(Ir).add(n.object.position):(fa.origin.copy(n.object.position),fa.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(fa.direction))<jz?t.lookAt(n.target):(e3.setFromNormalAndCoplanarPoint(n.object.up,n.target),fa.intersectPlane(e3,n.target))))}else n.object.isOrthographicCamera&&(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/l)),n.object.updateProjectionMatrix(),Xi=!0);return l=1,U=!1,Xi||Z.distanceToSquared(n.object.position)>s||8*(1-wt.dot(n.object.quaternion))>s||he.distanceToSquared(n.target)>0?(n.dispatchEvent({type:"change"}),Z.copy(n.object.position),wt.copy(n.object.quaternion),he.copy(n.target),Xi=!1,!0):!1}}();let n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},o=r.NONE,s=1e-6,a=new pa,u=new pa,l=1,c=new Kt,h=new Pt,p=new Pt,f=new Pt,m=new Pt,v=new Pt,y=new Pt,E=new Pt,M=new Pt,w=new Pt,P=new Kt,R=new Pt,U=!1,T=[],I={};function j(_){return _!==null?2*Math.PI/60*n.autoRotateSpeed*_:2*Math.PI/60/60*n.autoRotateSpeed}function Y(){return Math.pow(.95,n.zoomSpeed)}function G(_){u.theta-=_}function ht(_){u.phi-=_}let yt=function(){let _=new Kt;return function(k,Z){_.setFromMatrixColumn(Z,0),_.multiplyScalar(-k),c.add(_)}}(),Lt=function(){let _=new Kt;return function(k,Z){n.screenSpacePanning===!0?_.setFromMatrixColumn(Z,1):(_.setFromMatrixColumn(Z,0),_.crossVectors(n.object.up,_)),_.multiplyScalar(k),c.add(_)}}(),Nt=function(){let _=new Kt;return function(k,Z){let wt=n.domElement;if(n.object.isPerspectiveCamera){let he=n.object.position;_.copy(he).sub(n.target);let Zt=_.length();Zt*=Math.tan(n.object.fov/2*Math.PI/180),yt(2*k*Zt/wt.clientHeight,n.object.matrix),Lt(2*Z*Zt/wt.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(yt(k*(n.object.right-n.object.left)/n.object.zoom/wt.clientWidth,n.object.matrix),Lt(Z*(n.object.top-n.object.bottom)/n.object.zoom/wt.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function Fn(_){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?l/=_:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function Cr(_){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?l*=_:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function Rr(_){if(!n.zoomToCursor)return;U=!0;let b=n.domElement.getBoundingClientRect(),k=_.clientX-b.left,Z=_.clientY-b.top,wt=b.width,he=b.height;R.x=k/wt*2-1,R.y=-(Z/he)*2+1,P.set(R.x,R.y,1).unproject(n.object).sub(n.object.position).normalize()}function Mt(_){return Math.max(n.minDistance,Math.min(n.maxDistance,_))}function Kc(_){h.set(_.clientX,_.clientY)}function k3(_){Rr(_),E.set(_.clientX,_.clientY)}function Zc(_){m.set(_.clientX,_.clientY)}function G3(_){p.set(_.clientX,_.clientY),f.subVectors(p,h).multiplyScalar(n.rotateSpeed);let b=n.domElement;G(2*Math.PI*f.x/b.clientHeight),ht(2*Math.PI*f.y/b.clientHeight),h.copy(p),n.update()}function V3(_){M.set(_.clientX,_.clientY),w.subVectors(M,E),w.y>0?Fn(Y()):w.y<0&&Cr(Y()),E.copy(M),n.update()}function H3(_){v.set(_.clientX,_.clientY),y.subVectors(v,m).multiplyScalar(n.panSpeed),Nt(y.x,y.y),m.copy(v),n.update()}function W3(_){Rr(_),_.deltaY<0?Cr(Y()):_.deltaY>0&&Fn(Y()),n.update()}function q3(_){let b=!1;switch(_.code){case n.keys.UP:_.ctrlKey||_.metaKey||_.shiftKey?ht(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):Nt(0,n.keyPanSpeed),b=!0;break;case n.keys.BOTTOM:_.ctrlKey||_.metaKey||_.shiftKey?ht(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):Nt(0,-n.keyPanSpeed),b=!0;break;case n.keys.LEFT:_.ctrlKey||_.metaKey||_.shiftKey?G(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):Nt(n.keyPanSpeed,0),b=!0;break;case n.keys.RIGHT:_.ctrlKey||_.metaKey||_.shiftKey?G(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):Nt(-n.keyPanSpeed,0),b=!0;break}b&&(_.preventDefault(),n.update())}function $c(){if(T.length===1)h.set(T[0].pageX,T[0].pageY);else{let _=(T[0].pageX-T[0].pageY)/(T[1].pageX-T[1].pageY),b=T[0].pageY-_*T[0].pageX;n.rotateLineStart.set(_,b);let k=.5*(T[0].pageX+T[1].pageX),Z=.5*(T[0].pageY+T[1].pageY);h.set(k,Z)}}function Jc(){if(T.length===1)m.set(T[0].pageX,T[0].pageY);else{let _=.5*(T[0].pageX+T[1].pageX),b=.5*(T[0].pageY+T[1].pageY);m.set(_,b)}}function Qc(){let _=T[0].pageX-T[1].pageX,b=T[0].pageY-T[1].pageY,k=Math.sqrt(_*_+b*b);E.set(0,k)}function X3(){n.enableZoom&&Qc(),n.enablePan&&Jc()}function j3(){n.enableZoom&&Qc(),n.enableRotate&&$c()}function th(_){if(T.length==1)p.set(_.pageX,_.pageY);else{let k=Ga(_),Z=.5*(_.pageX+k.x),wt=.5*(_.pageY+k.y);p.set(Z,wt);let he=(_.pageY-k.y)/(_.pageX-k.x),Zt=k.y-he*k.x;if(n.rotateLineEnd.set(he,Zt),Number.isFinite(n.rotateLineEnd.x)&&Number.isFinite(n.rotateLineStart.x)){let Va=(n.rotateLineStart.y-n.rotateLineEnd.y)/(n.rotateLineEnd.x-n.rotateLineStart.x),Pr=he*Va+Zt;if(Number.isFinite(Va)&&Number.isFinite(Pr)){let Ae=Math.atan(n.rotateLineEnd.x)-Math.atan(n.rotateLineStart.x);Math.PI-Math.abs(Ae)<.5&&(Ae=-Math.sign(Ae)*(Math.PI-Math.abs(Ae))),Math.abs(Ae)<.1&&(u.theta+=Ae)}}n.rotateLineStart.copy(n.rotateLineEnd)}f.subVectors(p,h).multiplyScalar(n.rotateSpeed);let b=n.domElement;ht(2*Math.PI*f.y/b.clientHeight),h.copy(p)}function eh(_){if(T.length===1)v.set(_.pageX,_.pageY);else{let b=Ga(_),k=.5*(_.pageX+b.x),Z=.5*(_.pageY+b.y);v.set(k,Z)}y.subVectors(v,m).multiplyScalar(n.panSpeed),Nt(y.x,y.y),m.copy(v)}function nh(_){let b=Ga(_),k=_.pageX-b.x,Z=_.pageY-b.y,wt=Math.sqrt(k*k+Z*Z);M.set(0,wt),w.set(0,Math.pow(M.y/E.y,n.zoomSpeed)),Fn(w.y),E.copy(M)}function Y3(_){n.enableZoom&&nh(_),n.enablePan&&eh(_)}function K3(_){n.enableZoom&&nh(_),n.enableRotate&&th(_)}this.onPointerDown=function(b){n.enabled!==!1&&(T.length===0&&(n.domElement.setPointerCapture(b.pointerId),n.domElement.addEventListener("pointermove",n.onPointerMove),n.domElement.addEventListener("pointerup",n.onPointerUp)),t1(b),b.pointerType==="touch"?J3(b):Z3(b))},this.onPointerMove=function(b){n.enabled!==!1&&(b.pointerType==="touch"?Q3(b):$3(b))},this.onPointerUp=function(b){e1(b),T.length===0&&(n.domElement.releasePointerCapture(b.pointerId),n.domElement.removeEventListener("pointermove",n.onPointerMove),n.domElement.removeEventListener("pointerup",n.onPointerUp)),n.dispatchEvent({type:"end"}),o=r.NONE};function Z3(_){let b;switch(_.button){case 0:b=n.mouseButtons.LEFT;break;case 1:b=n.mouseButtons.MIDDLE;break;case 2:b=n.mouseButtons.RIGHT;break;default:b=-1}switch(b){case br.DOLLY:if(n.enableZoom===!1)return;k3(_),o=r.DOLLY;break;case br.ROTATE:if(_.ctrlKey||_.metaKey||_.shiftKey){if(n.enablePan===!1)return;Zc(_),o=r.PAN}else{if(n.enableRotate===!1)return;Kc(_),o=r.ROTATE}break;case br.PAN:if(_.ctrlKey||_.metaKey||_.shiftKey){if(n.enableRotate===!1)return;Kc(_),o=r.ROTATE}else{if(n.enablePan===!1)return;Zc(_),o=r.PAN}break;default:o=r.NONE}o!==r.NONE&&n.dispatchEvent({type:"start"})}function $3(_){switch(o){case r.ROTATE:if(n.enableRotate===!1)return;G3(_);break;case r.DOLLY:if(n.enableZoom===!1)return;V3(_);break;case r.PAN:if(n.enablePan===!1)return;H3(_);break}}this.onMouseWheel=function(b){n.enabled===!1||n.enableZoom===!1||o!==r.NONE||(b.preventDefault(),n.dispatchEvent({type:"start"}),W3(b),n.dispatchEvent({type:"end"}))},this.onKeyDown=function(b){n.enabled===!1||n.enablePan===!1||q3(b)};function J3(_){switch(rh(_),T.length){case 1:switch(n.touches.ONE){case Mr.ROTATE:if(n.enableRotate===!1)return;$c(),o=r.TOUCH_ROTATE;break;case Mr.PAN:if(n.enablePan===!1)return;Jc(),o=r.TOUCH_PAN;break;default:o=r.NONE}break;case 2:switch(n.touches.TWO){case Mr.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;X3(),o=r.TOUCH_DOLLY_PAN;break;case Mr.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;j3(),o=r.TOUCH_DOLLY_ROTATE;break;default:o=r.NONE}break;default:o=r.NONE}o!==r.NONE&&n.dispatchEvent({type:"start"})}function Q3(_){switch(rh(_),o){case r.TOUCH_ROTATE:if(n.enableRotate===!1)return;th(_),n.update();break;case r.TOUCH_PAN:if(n.enablePan===!1)return;eh(_),n.update();break;case r.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Y3(_),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;K3(_),n.update();break;default:o=r.NONE}}this.onContextMenu=function(b){n.enabled!==!1&&b.preventDefault()};function t1(_){T.push(_)}function e1(_){delete I[_.pointerId];for(let b=0;b<T.length;b++)if(T[b].pointerId==_.pointerId){T.splice(b,1);return}}function rh(_){let b=I[_.pointerId];b===void 0&&(b=new Pt,I[_.pointerId]=b),b.set(_.pageX,_.pageY)}function Ga(_){let b=_.pointerId===T[0].pointerId?T[1]:T[0];return I[b.pointerId]}n.domElement.addEventListener("contextmenu",this.onContextMenu),n.domElement.addEventListener("pointerdown",this.onPointerDown),n.domElement.addEventListener("pointercancel",this.onPointerUp),n.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}};var ma=class extends da{registryEvent(){this.addEventListener("change",this.onChange),this.context.addEventListener("update",this.tweenUpdate)}unRegistryEvent(){this.removeEventListener("change",this.onChange),this.context.removeEventListener("update",this.tweenUpdate)}setPolarAngle(t,e){e===void 0&&(e=!1);let{maxPolarAngle:n,minPolarAngle:r}=this,o=n===r;(e||t<=n&&t>=r)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),o||(this.maxPolarAngle=n,this.minPolarAngle=r)}setPolarAngleByDuration(t,e,n){return x(this,null,function*(){return e===void 0&&(e=!1),n===void 0&&(n=500),n<=0?this.setPolarAngle(t,e):Ft(new Promise(r=>{let o={polar:this.getPolarAngle()},s={polar:t},a=new ga(o,this.tweenGroup).to(s,n).onUpdate(()=>{this.setPolarAngle(o.polar,e)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(a),r(!0)}).onStart(()=>{this.enabled=!1}).start()}),n+500)})}setAzimuthalAngle(t,e){let{maxAzimuthAngle:n,minAzimuthAngle:r}=this,o=n===r;(e||t<=n&&t>=r)&&(this.maxAzimuthAngle=t,this.minAzimuthAngle=t,this.update()),o||(this.maxAzimuthAngle=n,this.minAzimuthAngle=r)}setAzimuthalAngleDuration(t,e,n){return e===void 0&&(e=!1),n===void 0&&(n=500),n<=0?this.setAzimuthalAngle(t,e):Ft(new Promise(r=>{let o={azimuthal:this.getAzimuthalAngle()},s={azimuthal:t},a=new ga(o,this.tweenGroup).to(s,n).onUpdate(()=>{this.setAzimuthalAngle(o.azimuthal,e)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(a),r(!0)}).onStart(()=>{this.enabled=!1}).start()}),n+500)}getCameraLookAt(){return new n3().subVectors(this.target,this.camera.position)}setCameraPositionByTarget(t,e){return x(this,null,function*(){let n=this.target.clone(),r=this.getCameraLookAt();if(!e){this.camera.position.copy(t.clone().sub(r)),this.target.copy(t.clone()),this.update();return}return Ft(new Promise(o=>{let s=new ga(n,this.tweenGroup).to(t,e).onUpdate(()=>{this.camera.position.copy(n.clone().sub(r)),this.target.copy(n.clone()),this.update()}).onComplete(()=>{this.tweenGroup.remove(s),this.enabled=!0,o(!0)}).onStart(()=>{this.enabled=!1}).start()}),e+500)})}setZoom(t,e,n){n===void 0&&(n=!1);let{minZoom:r,maxZoom:o}=this;(n||t>=r&&t<=o)&&(this.camera.position.copy(e.clone().sub(this.getCameraLookAt())),this.target.copy(e),this.camera.zoom=t,this.update())}setZoomByDuration(t,e,n,r){return x(this,null,function*(){n===void 0&&(n=!1),r===void 0&&(r=500);let o={zoom:this.camera.zoom,target:this.target.clone()};if(t!==this.camera.zoom)return r?Ft(new Promise(s=>{let a=new ga(o,this.tweenGroup).to({zoom:t,target:e},r).onUpdate(()=>{this.setZoom(o.zoom,o.target,n)}).onComplete(()=>{this.tweenGroup.remove(a),this.enabled=!0,s(!0)}).onStart(()=>{this.enabled=!1}).start()}),r+500).finally(()=>{this.enabled=!0}):this.setZoom(t,e,n)})}setTargetByOffset(t,e){if(e===void 0&&(e=this.target.clone()),this.camera.updateMatrix(),t){let n=new n3;n.setFromMatrixColumn(this.camera.matrix,1),n.normalize(),n.multiplyScalar(t/this.camera.zoom),e.add(n)}this.setCameraPositionByTarget(e,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){super.dispose(),this.unRegistryEvent(),this.clearTween()}constructor(t,e,n){super(e,n),this.context=t,this.camera=e,this.domElement=n,this.prevCameraZoom=1,this.tweenGroup=new Yz,this.offsetY=0,this.onChange=()=>{let r=this.camera.zoom;r!==this.prevCameraZoom&&(this.prevCameraZoom=r,this.dispatchEvent({type:"change-zoom",zoom:r}))},this.tweenUpdate=()=>{this.tweenGroup.update()},this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=e.zoom,this.registryEvent()}};import{EventDispatcher as Kz,PCFSoftShadowMap as Zz,WebGLRenderer as $z}from"three";var va=class extends $z{setCameraAndScene(t,e){this.scene=t,this.camera=e}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,e){this.event.addEventListener(t,e)}removeEventListener(t,e){this.event.removeEventListener(t,e)}dispose(){this.timer.dispose(),this.enable=!1,super.dispose(),this.domElement=null}constructor(t){super(S({antialias:!0,alpha:!0},t)),this.event=new Kz,this.enable=!0,this.timer=new W,this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.shadowMap.enabled=!0,this.shadowMap.autoUpdate=!0,this.shadowMap.type=Zz}};import{Euler as Jz,Matrix4 as Qz,Scene as tk,EquirectangularReflectionMapping as ek}from"three";import{RGBELoader as nk}from"three/examples/jsm/loaders/RGBELoader.js";var _a=class extends tk{constructor(){super(),new nk().load(b6,t=>{t.mapping=ek,this.environment=t;let e=new Qz;e.makeRotationX(Math.PI/2),this.environmentRotation=new Jz().setFromRotationMatrix(e)})}};import{OrthographicCamera as rk}from"three";var ya=class extends rk{constructor(t,e){super(-t/2,t/2,e/2,-e/2,-1e4,5e4),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};var xa=class extends ik{resizeClientSize(){let{x:t,y:e,width:n,height:r}=this.container.getBoundingClientRect();this.clientSize={width:n||this.container.clientWidth,height:r||this.container.clientHeight,x:t,y:e}}init(){let{clientWidth:t,clientHeight:e}=this.container;this.camera=new ya(t,e),this.renderer.setSize(t,e),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new ma(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.onControlChange),this.control.addEventListener("change-zoom",this.onControlChangeZoom),this.renderer.addEventListener("update",this.onRendererUpdate),this.cameraBound=new ca(this)}getRatio(t,e){t===void 0&&(t=new We(0,0,0)),e===void 0&&(e=new We(100,0,0));let{clientWidth:n,clientHeight:r}=this.container,o=C(t,this.camera,n,r),s=C(e,this.camera,n,r);return Math.ceil(Math.sqrt((s.x-o.x)**2+(s.y-o.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(e=>{e instanceof lk&&(e.color=new uk(t))})}switchFloor(t){this.currentFloor&&(this.scene.remove(this.currentFloor),this.currentFloor.dispose()),this.currentFloor=t,this.scene.add(t);let e=t.getCenter();e&&(this.lights.position.x=e.x,this.lights.position.y=e.y),this.cameraBound.updateBox()}getGraphicsByDeviceXy(t,e){var n;let r=new wr;r.x=t/this.clientSize.width*2-1,r.y=e/this.clientSize.height*-2+1;let o=new sk;return o.setFromCamera(r,this.camera),o.ray.origin.sub(o.ray.direction.clone().multiplyScalar(100)),((n=this.currentFloor)==null?void 0:n.graphicLayer.getGraphicByRaycaster(o))||{graphics:[],position:null}}getPoisByDeviceXy(t,e){var n,r;let o=(n=this.currentFloor)==null?void 0:n.poiLayer.getPoiByDeviceXy(t,e),s=(r=this.currentFloor)==null?void 0:r.poiLayer2.getPoiByDeviceXy(t,e);return(o||[]).concat(s||[])}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),this.control.removeEventListener("change",this.onControlChange),this.control.removeEventListener("change-zoom",this.onControlChangeZoom),this.renderer.removeEventListener("update",this.onRendererUpdate)}setPolarAngle(t,e){return e===void 0&&(e=500),this.control.setPolarAngleByDuration(t,!0,e)}setAzimuthalAngle(t,e){return e===void 0&&(e=500),this.control.setAzimuthalAngleDuration(t,!0,e)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,e,n){return n===void 0&&(n=500),this.control.setZoomByDuration(t,e,!0,n)}getFitCameraToObjectZoom(t,e,n,r){e===void 0&&(e=[20,20,20,20]),n===void 0&&(n=500),r===void 0&&(r=!0);let[o,s,a,u]=e,{clientSize:{width:l,height:c}}=this,h=this.control.getPolarAngle();r&&this.setPolarAngle(0,0);let p=new ak().setFromObject(t);this.setPolarAngle(h,0);let{max:f,min:m}=p,v=new We(m.x,f.y,f.z),y=new We(f.x,f.y,f.z),E=new We(f.x,m.y,m.z),M=new We(m.x,m.y,m.z),w=C(v,this.camera,l,c),P=C(y,this.camera,l,c),R=C(M,this.camera,l,c),U=C(E,this.camera,l,c),I=new ok().setFromPoints([new wr(w.x,w.y),new wr(P.x,P.y),new wr(R.x,R.y),new wr(U.x,U.y)]).getSize(new wr),j=(l-s-u)/I.x,Y=(c-o-a)/I.y,G=Math.min(j,Y),ht=new We((f.x+m.x)/2,(f.y+m.y)/2,(f.z+m.z)/2),yt=G*this.camera.zoom,Lt=this.camera.clone();Lt.zoom=yt,Lt.updateMatrix();let Nt=(l-I.x*G)/2,Fn=(c-I.y*G)/2,Cr=(s-u)/2,Rr=(o-a)/2;if(Cr){let Mt=new We;Mt.setFromMatrixColumn(Lt.matrix,0),Mt.normalize(),Mt.multiplyScalar(Cr/yt),ht.add(Mt)}if(Rr){let Mt=new We;Mt.setFromMatrixColumn(Lt.matrix,1),Mt.normalize(),Mt.multiplyScalar(Rr/yt),ht.add(Mt)}return{zoom:G*this.camera.zoom,center:ht}}fitCameraToObject(t,e,n,r){e===void 0&&(e=[20,20,20,20]),n===void 0&&(n=500),r===void 0&&(r=!0);let{zoom:o,center:s}=this.getFitCameraToObjectZoom(t,e,n,r);return this.setZoom(o,s,n)}getFitCameraToGroundZoom(t,e,n){if(t===void 0&&(t=[20,20,20,20]),e===void 0&&(e=500),n===void 0&&(n=!0),this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,e,n).zoom}fitCameraToGround(t,e,n){return t===void 0&&(t=[20,20,20,20]),e===void 0&&(e=500),n===void 0&&(n=!0),this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundLayer,t,e,n):Promise.resolve(!1)}setCameraPosition(t,e){return x(this,null,function*(){return this.control.setCameraPositionByTarget(t,e)})}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}dispose(){var t;(t=this.currentFloor)==null||t.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(e=>e.dispose()),J(this.scene),this.scene.clear(),this.container=null}constructor(t,e){super(),this.container=t,this.config=e,this.scene=new _a,this.renderer=new va,this.lights=zg(),this.clientSize={width:0,height:0,x:0,y:0},this.renderRf=0,this.onControlChange=()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})},this.onControlChangeZoom=n=>{let{zoom:r}=n;this.dispatchEvent({type:"control-zoom-change",zoom:r})},this.onRendererUpdate=()=>{this.dispatchEvent({type:"update"})},this.onWindowResize=()=>{let{container:n,camera:r,renderer:o}=this,{clientWidth:s,clientHeight:a}=n;s=Math.max(1,s),a=Math.max(1,a),r.left=-s/2,r.right=s/2,r.top=a/2,r.bottom=-a/2,r.updateProjectionMatrix(),o.setSize(s,a),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:s,height:a})},this.onClick=n=>{let{graphics:r,position:o}=this.getGraphicsByDeviceXy(n.offsetX,n.offsetY);r.length&&this.dispatchEvent({type:"graphic-click",graphics:r,position:o});let s=this.getPoisByDeviceXy(n.offsetX,n.offsetY);s.length&&this.dispatchEvent({type:"poi-click",pois:s})},this.onPointerover=n=>{let{graphics:r,position:o}=this.getGraphicsByDeviceXy(n.offsetX,n.offsetY),s=this.getPoisByDeviceXy(n.offsetX,n.offsetY);this.dispatchEvent({type:"pointer-over",e:n,graphics:r,pois:s,position:o})},this.onPointermove=n=>{let{graphics:r,position:o}=this.getGraphicsByDeviceXy(n.offsetX,n.offsetY),s=this.getPoisByDeviceXy(n.offsetX,n.offsetY);this.dispatchEvent({type:"pointer-move",e:n,graphics:r,pois:s,position:o})},this.onPointerleave=n=>{this.dispatchEvent({type:"pointer-level"})},this.onSelectionSelect=n=>{let{graphics:r,isMultipleSelect:o}=n;this.dispatchEvent({type:"select-graphic",graphics:r,isMultipleSelect:o})},this.onHoverChange=n=>{let{graphics:r}=n;this.dispatchEvent({type:"hover",graphics:r})},this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new aa(this),this.hoverHelper=new ua(this),this.resizeClientSize(),this.registryEvent()}};import{merge as ck}from"lodash";var hk={placeId:0,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",loadPlaceInfo:"https://screen.aibee.cn/ai-map/map/get-floor-map"},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 r3(i){return ck({},hk,i)}import{debounce as Pk}from"lodash";var fJ=d(A(),1);var le;function i3(i,t){return i===void 0&&(i="aibee_map"),t===void 0&&(t=1),new Promise((e,n)=>{if(le)return e({db:le,type:"success"});let r=indexedDB.open(i,t);r.onupgradeneeded=function(o){le=o.target.result,console.log("onupgradeneeded"),e({db:le,type:"onupgradeneeded"})},r.onsuccess=o=>{le=o.target.result,e({db:le,type:"success"})},r.onerror=o=>{n(o)}})}function Uc(i,t,e){return e===void 0&&(e=le),new Promise((n,r)=>{e||r("\u6CA1\u6709db");let s=e.transaction([i],"readonly").objectStore(i).get(t);s.onsuccess=()=>{s.result?n(s.result.value):n(null)},s.onerror=a=>{console.log("[getVersionByKey]",a),n(null)}})}function o3(i,t,e,n){return n===void 0&&(n=le),new Promise((r,o)=>(n||o("\u6CA1\u6709db"),new Promise((s,a)=>x(this,null,function*(){let u=yield Uc(i,t),l=n.transaction([i],"readwrite").objectStore(i),c=u!==null?l.put({key:t,value:e}):l.add({key:t,value:e});c.onsuccess=function(h){s(h)},c.onerror=function(h){a(h)}}))))}function On(i,t){t===void 0&&(t=le),t&&(t.objectStoreNames.contains(i)||t.createObjectStore(i,{keyPath:"key"}))}function s3(i){i===void 0&&(i=le),i==null||i.close(),le=null}import{Vector3 as Mk,EventDispatcher as wk,Color as Tk}from"three";var oJ=d(D(),1),sJ=d(A(),1);function Ea(i,t){let e=i.poi_info.showName||i.store_name||i.poi_info.text;switch(t){case"zh-cn":return e;case"en":var n;return((n=i.store_info_ext)==null?void 0:n.poi_name)||e;case"zh-hk":var r;return((r=i.store_info_ext)==null?void 0:r.traditional_name)||e}}function Sa(i,t){let e=i.poi_info.showName||i.store_name||i.poi_info.text;switch(t){case"zh-cn":return e;case"en":var n;return((n=i.infra_info_ext)==null?void 0:n.poi_name)||e;case"zh-hk":var r;return((r=i.infra_info_ext)==null?void 0:r.traditional_name)||e}}function a3(i,t,e){switch(i.l_type){case"graph":return pk(i,t);case"wall":return fk(i,t);case"lane":return dk(i,t);case"texture2d":case"texture3d":return gk(i,t);case"glb":return mk(i,t);case"store":return vk(i,t);case"facility":return yk(i,t);case"parkingSpace":return Ek(i,t,e);case"text":return bk(i,t)}}function u3(i,t,e,n){switch(i.l_type){case"store":return _k(i,t,e,n.showStoreName);case"facility":return xk(i,t,e,n.showFacilityName);case"parkingSpace":return Sk(i,t)}}function pk(i,t){let e=i.elements.reduce((n,r)=>{let{fillColor:o,fillOpacity:s,strokeColor:a,strokeOpacity:u,height:l,airHeight:c}=r,h=o.toLowerCase()+"-"+s+"-"+a.toLowerCase()+"-"+u+"-"+l+"-"+c;return u===0&&(h=o.toLowerCase()+"-"+s+"-"+l+"-"+c),n[h]?n[h].push(r):n[h]=[r],n},{});Object.values(e).forEach(n=>{let r=new Sr(t.context,n);t.mergeGraphicLayer.add(r)})}function fk(i,t){let e=i.elements.reduce((n,r)=>{let{fillColor:o,fillOpacity:s,strokeColor:a,strokeOpacity:u,height:l}=r,c=o.toLowerCase()+"-"+s+"-"+a.toLowerCase()+"-"+u+"-"+l;return u===0&&(c=o.toLowerCase()+"-"+s+"-"+l),n[c]?n[c].push(r):n[c]=[r],n},{});Object.values(e).forEach(n=>{let r=new ea(t.context,n);t.wallLayer.add(r)})}function dk(i,t){let e=i.elements.reduce((n,r)=>{let{fillColor:o,fillOpacity:s,strokeColor:a,strokeOpacity:u}=r,l=o.toLowerCase()+"-"+s+"-"+a.toLowerCase()+"-"+u;return u===0&&(l=o.toLowerCase()+"-"+s),n[l]?n[l].push(r):n[l]=[r],n},{});Object.values(e).forEach(n=>{let r=new ra(t.context,n);t.laneLayer.add(r)})}function gk(i,t){if(i.elements.length){let e=new Er(t.context,i.elements);t.textureLayer.add(e)}}function mk(i,t){i.elements.forEach(e=>{let n=new na(t.context,S({},e,{url:e.secondUrl,rotate:e.secondRotate,width:e.secondWidth,center_x:e.center_coord_x,center_y:e.center_coord_y}));t.glbModelLayer.add(n)})}function vk(i,t){i.elements.map(e=>{let n=t.addGraphic(e);t.userData.graphics.push(n),t.userData.graphicMap.set(e.id,n)})}function _k(i,t,e,n){i.elements.map(r=>{try{let o=Ea(r,e),s=new nt(t.context,{id:r.id,icon:r.poi_info.icon,text:o,position:{x:r.center_coord_x,y:r.center_coord_y,z:r.airHeight+r.height},icon_size:[24,24],level:r.poi_info.level||0,hide_text:!n});t.poiLayer2.pushPoi(s),s&&(s.userData.type="store",s.userData.data=r,s.userData.floor=t.name)}catch(o){console.log("\u521B\u5EFA\u5E97\u94FApoi\u5931\u8D25",o,r)}})}function yk(i,t){i.elements.map(e=>{let n=t.addGraphic(e);t.userData.graphics.push(n),t.userData.graphicMap.set(e.id,n)})}function xk(i,t,e,n){i.elements.filter(o=>o.poi_info).map(o=>{try{let s=Sa(o,e),a=new nt(t.context,{id:o.id,icon:o.poi_info.icon,text:s,position:{x:o.center_coord_x,y:o.center_coord_y,z:o.airHeight+o.height},icon_size:[24,24],level:o.poi_info.level||0,hide_text:!n});t.poiLayer2.pushPoi(a),a.userData.type="facility",a.userData.data=o,a.userData.floor=t.name}catch(s){console.log("\u6DFB\u52A0facility\u5931\u8D25",s,o)}})}function Ek(i,t,e){t.parkingSpaceLayer.createParkings(i.elements,e.mergeParkingSpace),t.userData.parkingSpaces=t.parkingSpaceLayer.graphicMap.values(),t.userData.parkingSpacesGraphicMap=t.parkingSpaceLayer.graphicMap}function Sk(i,t){return x(this,null,function*(){let e=i.elements.filter(o=>o.texts[0]),n=e.map(o=>o.texts[0]),r=yield tt.lazyGetTextureByTexts(n);e.forEach(o=>{try{let s=o.texts[0],a=new nt(t.context,{id:o.id,text:s,position:{x:o.center_coord_x,y:o.center_coord_y,z:o.airHeight+o.height},text_texture:r[s].texture,text_texture_width:r[s].width,text_texture_height:r[s].height,text_texture_offset_x:r[s].x,text_texture_offset_y:r[s].y});a&&(a.userData.type="parkingSpace",a.userData.data=o,a.userData.floor=t.name),t.poiLayer2.pushPoi(a)}catch(s){console.log("\u6DFB\u52A0\u8F66\u4F4Dpoi\u5931\u8D25",s,o)}}),Object.values(r).forEach(o=>{o.texture.dispose()})})}function bk(i,t){let e=new oa(t.context,i.elements.map(n=>S({},n,{center_x:n.center_coord_x,center_y:n.center_coord_y})));t.textTextureLayer.add(e)}var l3="map_version",c3="route_version",h3="facility_version",Fc="map_data",ba="road_network_data",Bc="facility_data",Ak={mergeParkingSpace:!0},Tr=class extends wk{initDb(){return x(this,null,function*(){try{let{db:t,type:e}=yield i3("aibee_map",2);e==="onupgradeneeded"&&(On(l3),On(c3),On(h3),On(Fc),On(ba),On(Bc)),this.db=t}catch(t){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",t)}})}load(t,e){return x(this,null,function*(){if(Array.isArray(t))this.floors=t,e&&(this.placeConfig=S({},this.placeConfig,e));else{let n=yield fetch(t).then(r=>r.json());n.code===200&&(this.floors=n.data.list,this.placeConfig=S({},this.placeConfig,JSON.parse(n.data.config||"{}")))}})}setCacheData(t,e,n){return this.initDbPromise.then(()=>o3(t,""+e,n,this.db))}getCacheData(t,e){return this.initDbPromise.then(()=>Uc(t,""+e,this.db))}getFloorCacheKey(t){return t.floor_id+"_"+t.version_id}getFloorData(t){return x(this,null,function*(){let e=yield this.getFloorJsonData(t);return e?this.getDataByJson(e):null})}getFloorDataByFloorInfo(t){return x(this,null,function*(){let e=yield this.getFloorJsonDataByFloorInfo(t);return this.getDataByJson(e)})}setLocale(t){this.locale=t,this.bmap.context.currentFloor&&this.bmap.context.currentFloor.poiLayer2.pois.forEach(e=>{e.userData.type==="store"&&(e.options.text=Ea(e.userData.data,t)),e.userData.type==="facility"&&(e.options.text=Sa(e.userData.data,t))})}getFloorJsonDataByFloorInfo(t){return x(this,null,function*(){let e=this.getFloorCacheKey(t);console.time("zstd_json");let n=yield fetch(t.map_url).then(r=>r.json());return n.floor=t.floor,console.timeEnd("zstd_json"),this.setCacheData(Fc,e,n),this.setCacheData(l3,e,t.version_id),n})}getFloorJsonData(t){return x(this,null,function*(){let e=this.floors.find(r=>r.floor===t);if(!e)return null;let n=this.getFloorCacheKey(e);try{let r=yield this.getCacheData(Fc,n);return console.log("cacheKey",n,r),r||this.getFloorJsonDataByFloorInfo(e)}catch(r){return console.log("[get floor data error]",r),this.getFloorJsonDataByFloorInfo(e)}})}getRoadNetworkData(){return x(this,null,function*(){return(yield Promise.all(this.floors.map(e=>x(this,null,function*(){let n=this.getFloorCacheKey(e);try{let r=yield this.getCacheData(ba,n);if(r)return r;let o=yield fetch(e.route_url).then(s=>s.json());return this.setCacheData(ba,n,o),this.setCacheData(c3,n,e.version_id),o}catch(r){let o=yield fetch(e.route_url).then(s=>s.json());return this.setCacheData(ba,n,o),o}})))).filter(e=>e.points)})}getFacilitiesData(){return x(this,null,function*(){let t=this.floors.reduce((r,o)=>r.updated_at>o.updated_at?r:o,this.floors[0]);if(!t)return null;let e=this.getFloorCacheKey(t),n=()=>x(this,null,function*(){let r=yield fetch(t.entry_infra_url).then(o=>o.json());return r&&(this.setCacheData(Bc,e,r),this.setCacheData(h3,e,t.version_id)),r});try{let r=yield this.getCacheData(Bc,e);return r||n()}catch(r){return console.log("[get facility error]",r),n()}})}getOtherDataByFreeTime(){return x(this,null,function*(){})}getMulFloorsData(t){return x(this,null,function*(){return Promise.all(t.map(e=>this.getFloorData(e))).then(e=>e.filter(n=>n))})}getDataByUrl(t){return x(this,null,function*(){let e=yield fetch(t).then(n=>n.json());return this.getDataByJson(e)})}getDataByJson(t,e,n){return x(this,null,function*(){return e=this.getFloorBaseLayer(t,e),n=S({},this.placeConfig,n),t.layers.forEach(r=>{["range","ground"].includes(r.l_type)||nr(r.elements,e.userData.center)}),yield this.getFloorContentLayer(t,e),yield this.getFloorPoi(t,e,n),this.changeFloorBox(t,e),e})}changeFloorBox(t,e){e.updateBox();let n=e.box.getSize(new Mk),r=Math.max(n.x,n.y,n.z);e.userData.height=r/4+t.floorHeight}switchFloor(t,e){return x(this,null,function*(){return new Promise(n=>{let r={run:()=>this._switchFloor(t,e),meta:{type:"switchFloor"}},o=this.taskQueue.replaceByMetaType(r),s=a=>{let{task:u,res:l}=a;u.tid===o&&(this.taskQueue.removeEventListener("active-task-end",s),n(l))};this.taskQueue.addEventListener("active-task-end",s)})})}_switchFloor(t,e){return x(this,null,function*(){var n;let r=t;if(typeof t=="string"){let l=yield this.getFloorJsonData(t);if(l)r=l;else return null}e=S({},this.placeConfig,e);let o=new jt(this.bmap.context);o.userData.data=t;let s=this.floors.find(l=>l.floor===r.floor);var a;let u=(a=s==null?void 0:s.map_angle)!=null?a:0;return this.bmap.dispatchEvent({type:ct.SWITCH_FLOOR_BEFORE,data:{curFloor:o,graphics:[]}}),this.dispatchEvent({type:"switch-floor-before",data:{curFloor:o,graphics:[],floorData:r}}),this.bmap.context.control.setAzimuthalAngle(u/180*Math.PI,!0),this.bmap.context.scene.background=new Tk(e.backgroundColor),this.getFloorBaseLayer(r,o),this.changeFloorBox(r,o),this.bmap.buildingCenter=o.userData.center,this.bmap.currentBuildGround=(n=o.userData.data.layers.find(l=>l.l_type==="range"))==null?void 0:n.elements[0],this.bmap.context.switchFloor(o),this.bmap.initialFloorCamera(),this.bmap.context.cameraBound.updateBox(),r.layers.forEach(l=>{["range","ground"].includes(l.l_type)||nr(l.elements,o.userData.center)}),this.dispatchEvent({type:"switch-floor-ground",data:{curFloor:o,graphics:[]}}),this.bmap.dispatchEvent({type:ct.SWITCH_FLOOR_GROUND,data:{curFloor:o}}),yield Ho(),yield this.getFloorContentLayer(r,o),this.changeFloorBox(r,o),this.dispatchEvent({type:"switch-floor-content",data:{curFloor:o,graphics:[]}}),yield Im(2),yield this.getFloorPoi(r,o,e),this.dispatchEvent({type:"switch-floor-after",data:{curFloor:o,graphics:o.graphicLayer.children}}),this.bmap.dispatchEvent({type:ct.SWITCH_FLOOR_AFTER,data:{curFloor:o,graphics:o.graphicLayer.children}}),o})}getFloorBaseLayer(t,e){e||(e=new jt(this.bmap.context));let n=[0,0];return t.layers.forEach(r=>{switch(r.l_type){case"range":let o=r.elements[0];n=[o.center_x,o.center_y];break;case"ground":nr(r.elements,n);let s=r.elements.map(a=>new et(this.bmap.context,a));e.addGrounds(s);break;default:break}}),e.userData.center=n,e.name=t.floor,e.userData.data=t,e}getFloorContentLayer(t,e){return x(this,null,function*(){e||(e=new jt(this.bmap.context)),e.userData.graphics=[],e.userData.graphicMap=new Map;let n=Date.now();for(let r=0;r<t.layers.length;r++){let o=t.layers[r];["range","ground"].includes(o.l_type)||(a3(o,e,this.options),console.log("time",Date.now()-n,o.l_type),Date.now()-n>50&&(yield Ho(),n=Date.now()))}return e})}getFloorPoi(t,e,n){return x(this,null,function*(){n===void 0&&(n=this.placeConfig);let r=Date.now();yield Promise.all(t.layers.map(s=>u3(s,e,this.locale,n))),console.log("poi time",Date.now()-r);let o=Date.now();Ho().then(()=>{console.log("poi render time",Date.now()-o)})})}clear(){return x(this,null,function*(){var t;s3((t=this.db)!=null?t:void 0)})}dispose(){this.clear()}constructor(t,e={}){super(),this.bmap=t,this.floors=[],this.initDbPromise=Promise.resolve(),this.db=null,this.taskQueue=new rr,this.locale="zh-cn",this.placeConfig={backgroundColor:"#f1f7f6",showFacilityName:!0,showStoreName:!0},this.options=S({},Ak,e),this.initDbPromise=this.initDb()}};var CJ=d(A(),1);function p3(i,t){return x(this,null,function*(){let{brand:e,project:n}=i,{apiDomain:r,apiPath:{floorRange:o},apiInfo:s}=t,a=""+r+o+"?brand="+e+"&project="+n+"&phase="+n+"&building="+n;return yield fetch(a,s).then(l=>l.json()).then(l=>l.data).then(l=>{let c=(l||[])[0];return c&&(c.info=JSON.parse(c.info)),c})})}function f3(i,t){return x(this,null,function*(){let{brand:e,project:n,floor:r,ts:o,resource_type_list:s}=i,{apiDomain:a,apiPath:{floorGraphic:u},apiInfo:l}=t,c=""+a+u+"?brand="+e+"&project="+n+"&phase="+n+"&building="+n+"&floor="+r+"&ts="+o+"&resource_type_list="+s;return yield fetch(c,l).then(p=>p.json()).then(p=>p.data).then(p=>((p||[]).map(f=>f.info=JSON.parse(f.info)),p||[]))})}function SJ(i,t){return x(this,null,function*(){let{project:e,floor:n}=i,{apiDomain:r,apiInfo:o}=t,s=r+"/api/inception-map/external_street/get?projectCode="+e+"&floorCode="+n;return yield fetch(s,o).then(u=>u.json()).then(u=>u.data).then(u=>JSON.parse(u[0].streetInfo||"{}")).then(u=>u.fileId?Ck(u.fileId,t):null)})}function Ck(i,t){return x(this,null,function*(){let{apiDomain:e,apiInfo:n}=t;return fetch(e+"/api/inception-map/file/getFileStream?fileId="+i,n).then(r=>r.arrayBuffer()).then(r=>{let s=new TextDecoder("utf-8").decode(r);return s?JSON.parse(s):null})})}var d3=class{load(t){return x(this,null,function*(){let e=Qn(t);if(this.cacheData.has(e))return this.cacheData.get(e);let[,n]=yield Promise.all([this.loadBuildGround(t),f3(t,this.bmap.config)]),r=Qn({floor:t.floor,ts:t.ts});nr(n.map(s=>s.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(r)||0),n.forEach(s=>s.info.transformToBuildingGround=!1),this.cacheData.set(e,n);let o=this.floorDataLengthMap.get(r)||0;return this.floorDataLengthMap.set(r,o+n.length),this.loadExternalStreet(t),n})}loadExternalStreet(t){return x(this,null,function*(){})}switchFloorByData(t,e){if(!t.length)return;let n=e.userData.legacyToGraphicMap||new Map,r=e.userData.graphicMap||new Map,{ground:o,markGraphic:s,graphic:a}=this.bmap.config;for(let u=0;u<t.length;u++){let l=t[u];l.info.group==="ground"?(l.info.fillColor=o.color,l.info.fillOpacity=o.opacity,l.info.height=o.height,l.info.stroke=o.stroke,l.info.strokeColor=o.strokeColor,l.info.strokeOpacity=o.strokeOpacity):l.info.userData.mark?(l.info.height=s.height,l.info.fillColor=s.color,l.info.fillOpacity=s.opacity,l.info.stroke=s.stroke,l.info.strokeColor=s.strokeColor,l.info.strokeOpacity=s.strokeOpacity):(l.info.fillOpacity=a.fillOpacity,this.bmap.config.initTransToMark&&(l.info.height=s.height,l.info.fillColor=s.color,l.info.stroke=s.stroke,l.info.strokeColor=s.strokeColor,l.info.strokeOpacity=s.strokeOpacity))}for(let u of t){if(u.info.group==="ground")e.createGround(u.info);else{let l=e.addGraphic(u.info);l.userData.data=u,n.set(u.legacy_id,l)}r.set(u.element_uuid,u)}e.userData.legacyToGraphicMap=n,e.userData.graphicMap=r,e.updateBox(),e===this.bmap.context.currentFloor?(this.bmap.triggerHooks(ct.SWITCH_FLOOR_BEFORE,{curFloor:e,graphics:e.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks(ct.SWITCH_FLOOR_AFTER,{curFloor:e,graphics:e.graphicLayer.children})):this.bmap.switchFloorByFloor(e)}filterData(t,e){let n=e.userData.graphicMap||new Map;return t.filter(r=>!n.has(r.element_uuid))}switchFloorByStoreData(t,e){return x(this,null,function*(){let n=yield this.load(S({},t,{resource_type_list:"6"})),r=this.filterData(n,e);this.switchFloorByData(r,e)})}switchFloorByOtherData(t,e){return x(this,null,function*(){let n=yield this.load(S({},t,{resource_type_list:"1,2,3,4"})),r=this.filterData(n,e);this.switchFloorByData(r,e)})}loadBuildGround(t){return x(this,null,function*(){let{brand:e,project:n}=t,r=yield this.loadBuildingGround({brand:e,project:n});return this.bmap.currentBuildGround=r,this.bmap.changeBuildingCenter(r,{brand:e,project:n}),this.bmap.currentBuildGround})}loadBuildingGround(t){return x(this,null,function*(){let{brand:e,project:n}=t,r=Qn({brand:e,project:n});if(this.buildingGroundMap.has(r))return this.buildingGroundMap.get(r);let o=p3({brand:e,project:n},this.bmap.config).then(s=>(this.buildingGroundMap.set(r,s),s));return this.buildingGroundMap.set(r,o),o})}switchFloor(t){return x(this,null,function*(){let e=new jt(this.bmap.context);e.userData.graphicMap=new Map,e.name=t.floor;try{yield Promise.all([this.switchFloorByStoreData(t,e),this.switchFloorByOtherData(t,e)])}catch(n){console.log(n)}return e})}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}constructor(t){this.bmap=t,this.cacheData=new Map,this.floorDataLengthMap=new Map,this.buildingGroundMap=new Map,this.externalStreetMap=new Map}};var ZJ=function(i){return i[i.D2=0]="D2",i[i.D3=1.1]="D3",i}({}),Ma=class extends Rk{changeBuildingCenter(t,e){let{brand:n,project:r}=e,o=t?Fo(t.info.geometry.cds[0]):[0,0];this.buildingCenter=o,this.dispatchEvent({type:"center-change",center:o,project:r,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(e=>e!==t)}triggerHooks(t,e){this.dispatchEvent({type:t,data:e})}switchFloor(t){return x(this,null,function*(){return this.loader||(this.loader=new Tr(this),yield this.loader.load(this.config.apiPath.loadPlaceInfo+"?place_id="+this.config.placeId+"&env=prod")),this.loader.switchFloor(t)})}switchFloorByFloor(t,e){e===void 0&&(e=t.graphicLayer.children),this.triggerHooks(ct.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:e}),this.context.switchFloor(t),this.initialFloorCamera(),this.triggerHooks(ct.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:e})}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,e){if(t.options.geometry.type==="polygon"){var n;let r=(n=this.context.currentFloor)==null?void 0:n.addModel(S({},e,{position:t.getPosition().setZ(.1),id:t.options.id}));if(r){let{facilityAngle:o=0,facilityXScale:s=1,facilityYScale:a=1}=t.options.userData;r.rotateZ((180-o)/180*Math.PI),r.scale.set(s,a,1)}}}addHeatmap(t){var e;return(e=this.context.currentFloor)==null?void 0:e.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(e=>e instanceof et))||[]}createGraphicPoi(t,e){if(this.context.currentFloor){e.id===void 0&&(e.id=t.options.id);let n=t.options.center,r=t.getCenter(),o=(n==null?void 0:n[0])||r.x,s=(n==null?void 0:n[1])||r.y;return console.log(o,s,n,r),this.context.currentFloor.addPoi(S({},e,{position:{x:o,y:s,z:r.z+t.options.height/2}}))}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,e,n,r){e===void 0&&(e=500),n===void 0&&(n=0),r===void 0&&(r=0);let o=t.getPosition().clone(),{context:{camera:s}}=this;if(s.updateMatrix(),r){let a=new zc;a.setFromMatrixColumn(s.matrix,1),a.normalize(),a.multiplyScalar(r/s.zoom),o.add(a)}if(n){let a=new zc;a.setFromMatrixColumn(s.matrix,0),a.normalize(),a.multiplyScalar(n/s.zoom),o.add(a)}return this.context.setCameraPosition(o,e)}translateElementToCenterX(t,e){return x(this,null,function*(){return e===void 0&&(e=500),Ft(new Promise(n=>{let r=this.context.control.target.clone(),o=t.getPosition();this.timer.requestAnimationFrame(()=>{let{clientSize:{width:s,height:a},camera:u}=this.context,c=C(o,u,s,a).x-s/2,h=new zc;h.setFromMatrixColumn(this.context.camera.matrix,0),h.normalize(),h.multiplyScalar(c/this.context.camera.zoom),r.add(h),this.context.setCameraPosition(r,e).then(n)})}),e+500)})}getElementDeviceCoordinate(t){let e=t.position.clone(),{clientWidth:n,clientHeight:r}=this.container;return C(e,this.context.camera,n,r)}changeMapType(t,e){return e===void 0&&(e=500),this.type=t,t==="2d"?this.context.setPolarAngle(0,e):this.context.setPolarAngle(1.1,e)}resetView(t){return x(this,null,function*(){t===void 0&&(t=300);let e=t/3;yield this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,e),yield this.context.setPolarAngle(this.config.control.defaultPolar,e),yield this.context.fitCameraToGround(this.config.defaultPadding,e,!1)})}reduceMap(t,e){t===void 0&&(t=.5),e===void 0&&(e=500);let n=this.context.camera.zoom;return this.context.setZoom(n-t,this.context.control.target,e)}enlargeMap(t,e){t===void 0&&(t=.5),e===void 0&&(e=500);let n=this.context.camera.zoom;return this.context.setZoom(n+t,this.context.control.target,e)}registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver(this.debounceResize);t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;this.context.control.removeEventListener("change",this.onControlChange),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){t===void 0&&(t=.1);let e=this.context.control.getAzimuthalAngle();this.context.setAzimuthalAngle(e+t,500)}measureDistance(){return x(this,null,function*(){return this.cancelDistance(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgLine=new Qs(this.context);let n=this.svgLine.dispose.bind(this.svgLine);this.svgLine.dispose=function(){n(),e("cancel")},this.svgLine.addEventListener("distance",r=>{let{distance:o}=r;t(o)})})})}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new ta(this.context);let n=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){n(),e("cancel")},this.svgPolygon.addEventListener("area",r=>{let{area:o}=r;t(o)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){var e,n;return((e=this.context.currentFloor)==null?void 0:e.graphicLayer.getGraphicByNodeId(t))||((n=this.context.currentFloor)==null?void 0:n.parkingSpaceLayer.graphicMap.get(t))||null}deleteGraphic(t){var e;(e=this.context.currentFloor)==null||e.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var e;if(!t.transformToBuildingGround&&this.currentBuildGround){let n=Fo(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(r=>{Array.isArray(r)&&r.forEach(o=>{o[0]-=n[0],o[1]-=n[1]})});else{let[r,o]=t.geometry.cds;t.geometry.coords=[r-n[0],o-n[1]]}}return(e=this.context.currentFloor)==null?void 0:e.graphicLayer.createGraphic(t)}removePoiById(t){var e,n;(e=this.context.currentFloor)==null||e.poiLayer.removePoiById(t),(n=this.context.currentFloor)==null||n.poiLayer2.removePoiById(t)}getPoiById(t){var e,n;return((e=this.context.currentFloor)==null?void 0:e.poiLayer.getPoiById(t))||((n=this.context.currentFloor)==null?void 0:n.poiLayer2.getPoiById(t))}getPois(){var t,e;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(n=>!n.options.built_in),...((e=this.context.currentFloor)==null?void 0:e.poiLayer2.pois)||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.loader&&(this.loader.dispose(),this.loader=null),this.unRegistryEvent(),this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.plugins=[],this.context.dispose(),this.context=null,this.container=null,tt.dispose(),ut.dispose(),sn.dispose(),St.dispose(),X.dispose(),ue.dispose(),this.debounceResize=null}constructor(t,e={}){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 W,this.plugins=[],this.loader=null,this.onControlChange=()=>{let{camera:{zoom:n}}=this.context;n!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=n)},this.onKeydown=n=>{this.polarKeys.includes(n.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(n.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=n=>{if(this.polarKeys.includes(n.code)){let r=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=r,this.context.control.minPolarAngle=r}if(this.azimuthalKeys.includes(n.code)){let r=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=r,this.context.control.minAzimuthAngle=r}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let n=this.context.control.getAzimuthalAngle(),r=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 o=this.context.getFitCameraToGroundZoom(this.config.defaultPadding,0)||1;this.context.camera.zoom=r,this.context.control.minZoom=o,this.context.control.maxZoom=o*25,this.basicZoom=r,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(n,0),this.context.cameraBound.setEnable(!0)},this.config=r3(e),this.context=new xa(t,this.config),this.debounceResize=Pk(this.resize,5),this.registryEvent()}};var eQ=d(A(),1);import{EventDispatcher as Ik}from"three";var bt=class extends Ik{dispose(){let t=this.bmap.plugins.findIndex(e=>e===this);t!==-1&&this.bmap.plugins.splice(t,1),this.bmap=null}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};var g3=class extends bt{fetchEquipment(){return x(this,null,function*(){let{apiDomain:t,apiPath:{equipmentList:e},apiInfo:n}=this.bmap.config,r=""+t+e;yield fetch(r,n).then(o=>o.json()).then(o=>o.data).then(o=>{this.equipmentList=o,this.equipmentMap=new Map(o.map(s=>[s.equipment_id,s]))}),this.dispatchEvent({type:"change-equipment-list",data:this.equipmentList}),this.bmap.context.currentFloor&&this.changeGraphicToEquipment(this.bmap.context.currentFloor.graphicLayer.children)})}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(e=>{let n=this.getGraphicEquipment(e);return n&&this.equipmentMap.has(n)}).forEach(e=>{let n=this.equipmentMap.get(this.getGraphicEquipment(e)),r=this.bmap.createGraphicPoi(e,{icon:n==null?void 0:n.equipment_icon,built_in:!0,icon_size:[14,14]});r&&(r.userData.data=n,r.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(ct.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(e=>{if(e.userData.type==="equipment"){var n;(n=this.bmap.context.currentFloor)==null||n.poiLayer.removePoi(e)}}),super.dispose()}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=e=>{let{data:{graphics:n}}=e;this.equipmentList.length&&this.changeGraphicToEquipment(n)},this.fetchEquipment(),this.bmap.addEventListener(ct.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};var ftt=d(ti(),1),dtt=d(ee(),1),gtt=d(A(),1),mtt=d(Dc(),1);var AQ=d(A(),1),CQ=d(D(),1);import{Mesh as zk,Object3D as kk,TextureLoader as Gk,Color as Vk,Vector2 as Gc,Vector3 as Hk,NormalBlending as Wk,RepeatWrapping as qk}from"three";var uQ=d(Ul(),1),lQ=d(hi(),1),cQ=d(pi(),1),hQ=d(di(),1),pQ=d(gi(),1),fQ=d(mi(),1),dQ=d(_i(),1),gQ=d(yi(),1),mQ=d(xi(),1),vQ=d(Ei(),1),_Q=d(Si(),1),yQ=d(bi(),1),xQ=d(Mi(),1),EQ=d(Ti(),1),SQ=d(Ai(),1),bQ=d(D(),1),MQ=d(wc(),1);import{BufferGeometry as Lk,Matrix4 as v3,Vector3 as Dn,Ray as Nk,Sphere as Ok,LineSegments as Dk,BufferAttribute as vn,ShaderChunk as It,ShaderMaterial as _3,UniformsLib as Uk,Color as Fk,Vector2 as m3}from"three";var _t=class extends Lk{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 v3,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)}}})}};_t.prototype.setMatrixWorld=function(i){this.matrixWorld=i};_t.prototype.setGeometry=function(i,t){this._geometry=i,this.setPoints(i.getAttribute("position").array,t)};_t.prototype.setPoints=function(i,t){if(!(i instanceof Float32Array)&&!(i instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=i,this.widthCallback=t,this.positions=[],this.counters=[],i.length&&i[0]instanceof Dn)for(var e=0;e<i.length;e++){var n=i[e],r=e/i.length;this.positions.push(n.x,n.y,n.z),this.positions.push(n.x,n.y,n.z),this.counters.push(r),this.counters.push(r)}else for(var e=0;e<i.length;e+=3){var r=e/i.length;this.positions.push(i[e],i[e+1],i[e+2]),this.positions.push(i[e],i[e+1],i[e+2]),this.counters.push(r),this.counters.push(r)}this.process()};function Bk(i,t){var e=new v3,n=new Nk,r=new Ok,o=new Dn,s=this.geometry;if(s.boundingSphere||s.computeBoundingSphere(),r.copy(s.boundingSphere),r.applyMatrix4(this.matrixWorld),i.ray.intersectSphere(r,o)!==!1){e.copy(this.matrixWorld).invert(),n.copy(i.ray).applyMatrix4(e);var a=new Dn,u=new Dn,l=new Dn,c=this instanceof Dk?2:1,h=s.index,p=s.attributes;if(h!==null)for(var f=h.array,m=p.position.array,v=p.width.array,y=0,E=f.length-1;y<E;y+=c){var M=f[y],w=f[y+1];a.fromArray(m,M*3),u.fromArray(m,w*3);var P=v[Math.floor(y/3)]!==void 0?v[Math.floor(y/3)]:1,R=i.params.Line.threshold+this.material.lineWidth*P/2,U=R*R,T=n.distanceSqToSegment(a,u,o,l);if(!(T>U)){o.applyMatrix4(this.matrixWorld);var I=i.ray.origin.distanceTo(o);I<i.near||I>i.far||(t.push({distance:I,point:l.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this}),y=E)}}}}_t.prototype.raycast=Bk;_t.prototype.compareV3=function(i,t){var e=i*6,n=t*6;return this.positions[e]===this.positions[n]&&this.positions[e+1]===this.positions[n+1]&&this.positions[e+2]===this.positions[n+2]};_t.prototype.copyV3=function(i){var t=i*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};_t.prototype.getDistance=function(i){let t=0;for(let e=0;e<i;e++){let n=6*e,r=new Dn(this.positions[n],this.positions[n+1],this.positions[n+2]),o=new Dn(this.positions[n+6],this.positions[n+7],this.positions[n+8]),s=r.distanceTo(o);t+=s}return t};_t.prototype.process=function(){var i=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let e=this.getDistance(i-1);var n;this.compareV3(0,i-1)?n=this.copyV3(i-2):n=this.copyV3(0),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);for(var r=0;r<i;r++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(r/(i-1)):t=1,this.width.push(t),this.width.push(t),r===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(r===i-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let s=this.getDistance(r)/e;this.uvs.push(s,0),this.uvs.push(s,1)}if(r<i-1){n=this.copyV3(r),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);var o=r*2;this.indices_array.push(o,o+1,o+2),this.indices_array.push(o+2,o+1,o+3)}r>0&&(n=this.copyV3(r),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]))}this.compareV3(i-1,0)?n=this.copyV3(1):n=this.copyV3(i-1),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new vn(new Float32Array(this.positions),3),previous:new vn(new Float32Array(this.previous),3),next:new vn(new Float32Array(this.next),3),side:new vn(new Float32Array(this.side),1),width:new vn(new Float32Array(this.width),1),uv:new vn(new Float32Array(this.uvs),2),index:new vn(new Uint16Array(this.indices_array),1),counters:new vn(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 kc(i,t,e,n,r){var o;if(i=i.subarray||i.slice?i:i.buffer,e=e.subarray||e.slice?e:e.buffer,i=t?i.subarray?i.subarray(t,r&&t+r):i.slice(t,r&&t+r):i,e.set)e.set(i,n);else for(o=0;o<i.length;o++)e[o+n]=i[o];return e}_t.prototype.advance=function(i){var t=this._attributes.position.array,e=this._attributes.previous.array,n=this._attributes.next.array,r=t.length;kc(t,0,e,0,r),kc(t,6,t,0,r-6),t[r-6]=i.x,t[r-5]=i.y,t[r-4]=i.z,t[r-3]=i.x,t[r-2]=i.y,t[r-1]=i.z,kc(t,6,n,0,r-6),n[r-6]=i.x,n[r-5]=i.y,n[r-4]=i.z,n[r-3]=i.x,n[r-2]=i.y,n[r-1]=i.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};It.meshline_vert=["",It.logdepthbuf_pars_vertex,It.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;","",It.logdepthbuf_vertex,It.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",It.fog_vertex,"}"].join(`
|
|
3911
|
+
`,n=-1/0,r=this.geometry.getAttribute("position");if(r)for(let s=0;s<r.count;s++){let a=r.getZ(s);a>n&&(n=a)}let o=new uz({uniforms:{maxZ:{value:n},uColor:{value:new F6(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new F6(De(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:e,transparent:!0});this.material=o}initLineMaterial(){let t=X.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 oz(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],e=this.options[0].height+this.options[0].deltaHeight;return this.options.map(n=>{let{coords:r}=n.geometry;for(let o=0;o<r.length;o++){let s=r[o];for(let a=0;a<s.length;a++){let u=s[a],l=a+1===s.length?s[0]:s[a+1];t.push(new U6(u[0],u[1],e)),t.push(new U6(l[0],l[1],e))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),e=new sz().setFromPoints(t);this.lineGeometry=e}createBorder(){this.line&&this.remove(this.line);let t=new az(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t,e,n;(t=this.geometry)==null||t.dispose(),(e=this.material)==null||e.dispose(),(n=this.line)==null||n.geometry.dispose(),this.clear()}constructor(t,e){super(),this.context=t,this.options=e.map(n=>S({},Rc,n)),this.init()}};var kK=d(A(),1);import{Box2 as Lc,Object3D as lz,Sprite as B6,SpriteMaterial as z6,Vector2 as ia}from"three";import{isNil as zi}from"lodash";var cz={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,hide_text:!1},nt=class extends lz{get hasText(){return!this.options.hide_text&&this.options.text}get durIconAndText(){return this.options.icon&&this.hasText?2:0}get offset(){return this.options.icon&&this.hasText?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.hasText?this.options.text_font_size*this.textAspect:0}get textHeight(){return this.hasText?this.options.text_font_size:0}get hasOriginTexture(){let{text_texture:t,text_texture_width:e,text_texture_height:n,text_texture_offset_x:r,text_texture_offset_y:o}=this.options;return!zi(t)&&!zi(e)&&!zi(n)&&!zi(r)&&!zi(o)}get deltaZ(){return!this.options.icon&&this.hasText?.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),this.addEventListener("change-icon",t=>x(this,null,function*(){let{value:e}=t;this._initIconPromise&&(yield this._initIconPromise),this.spriteIcon&&(this.remove(this.spriteIcon),this.spriteIcon=void 0),yield this.initIcon(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})})),this.addEventListener("change-text",t=>{let{value:e}=t;this.spriteText&&(this.remove(this.spriteText),this.spriteText=void 0),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-text_font_size",t=>{let{value:e}=t;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",t=>{let{value:e}=t;this.spriteIcon&&(this.spriteIcon.material.rotation=e/180*Math.PI)}),this.addEventListener("change-icon_size",t=>{let{value:e}=t;this.spriteIcon&&(this.initSize(),this._initScale({zoom:this.context.camera.zoom}))}),this.addEventListener("change-depth_test",t=>{let{value:e}=t;this.spriteIcon&&(this.spriteIcon.material.depthTest=e),this.spriteText&&(this.spriteText.material.depthTest=e)})}unRegistryEvent(){this.context.removeEventListener("control-zoom-change",this._initScale)}getPosition(){return this.position}initIcon(){return x(this,null,function*(){if(this.options.icon)return this._initIconPromise=new Promise(t=>x(this,null,function*(){let e;if(this.options.icon_border){let{icon:r,icon_size:o,icon_border:s}=this.options;e=yield ut.getUrlTextureBorder(r,o[0]-s.width*2,s)}else e=yield ut.getTextureByUrl(this.options.icon);let n=new B6(new z6({map:e,transparent:!0,alphaTest:.2,depthTest:this.options.depth_test,rotation:this.options.icon_rotate/180*Math.PI}));n.visible=!1,n.renderOrder=1e5+this.options.level,e.needsUpdate=!0,this.add(n),this.spriteIcon=n,t(n)})).then(()=>{this._initIconPromise=null})})}initText(){if(this.hasText){let t;if(this.hasOriginTexture){let{text_texture:n,text_texture_width:r,text_texture_height:o,text_texture_offset_x:s,text_texture_offset_y:a}=this.options;t=this.options.text_texture.clone(),t.uuid=n.uuid,t.offset.set(s/t.image.width,1-(o+a)/t.image.height),t.repeat.set(r/t.image.width,o/t.image.height),this.textAspect=r/o}else t=tt.getTextureByText(this.options.text),this.textAspect=t.image.width/t.image.height;let e=new B6(new z6({map:t,transparent:!0,alphaTest:.2,depthTest:this.options.depth_test}));e.visible=!1,e.renderOrder=100001+this.options.level,t.needsUpdate=!0,this.spriteText=e,this.add(e)}}initSize(){var t,e;let n=0,r=0,{icon:o}=this.options;o?this.hasText?(n=0,r=n*(this.iconHeight/this.textHeight)-this.iconHeight/this.textHeight-this.durIconAndText/this.textHeight):(n=.5,r=0):this.hasText?(r=.5,n=0):(n=0,r=0),(t=this.spriteIcon)==null||t.center.set(.5,n),(e=this.spriteText)==null||e.center.set(.5,r)}init(){return x(this,null,function*(){yield Promise.all([this.initIcon(),new Promise(t=>{this.initText(),t(!0)})]),this.initSize(),this._initScale({zoom:this.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:e,height:n}}=this.context,r=e*(t.x+1)/2,o=n*(-t.y+1)/2;o+=this.offset*(this.iconHeight+this.durIconAndText+this.textHeight);let s=this.iconWidth/2,a=new Lc(new ia(r-s,o-this.iconHeight),new ia(r+s,o)),u=this.textWidth/2,l=new Lc(new ia(r-u,o-this.textHeight-this.durIconAndText-this.iconHeight),new ia(r+u,o-this.iconHeight-this.durIconAndText));return this.box=l.union(a),this.box}renderBoxHelper(t,e){if(!this.boxHelper){let n=document.createElement("div");n.style.position="absolute",n.style.zIndex="999",n.style.border="1px solid red",n.style.pointerEvents="none",this.boxHelper=n,this.context.container.appendChild(n)}t&&e?(this.boxHelper.style.left=t+"px",this.boxHelper.style.top=e+"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,e){super(),this.context=t,this.textAspect=1,this.box=new Lc,this._initIconPromise=null,this._initScale=n=>{let{zoom:r}=n;if(this.spriteText){let s=this.textHeight/r;this.spriteText.scale.set(this.textAspect*s,s,.1)}if(this.spriteIcon){var o;(o=this.spriteIcon)==null||o.scale.set(this.options.icon_size[0]/r,this.options.icon_size[1]/r,.1)}this.resetZ()},this.options=Kn(S({},cz,e),this),this.position.set(this.options.position.x,this.options.position.y,this.options.position.z),this.registryEvent(),this.init()}};import{DoubleSide as hz,Matrix4 as k6,Mesh as pz,MeshBasicMaterial as fz,Object3D as dz,PlaneGeometry as gz}from"three";import{mergeGeometries as mz}from"three/examples/jsm/utils/BufferGeometryUtils";var vz={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},oa=class extends dz{init(){return x(this,null,function*(){let t=this.options.map(s=>tt.getTextureByText(s.texts[0],{fillStyle:_0(s.fillColor,s.fillOpacity),strokeStyle:_0(s.strokeColor,s.strokeOpacity),lineWidth:6,font:"bold 54px sans-serif"})),e=t.map((s,a)=>{let u=this.options[a],{width:l,height:c}=s.image,h=l/c,p=u.secondHeight*h,f=new gz(p,u.secondHeight),m=new k6().makeTranslation(u.center_x,u.center_y,u.airHeight+u.deltaHeight+u.height).multiply(new k6().makeRotationZ(u.secondRotate));return f.applyMatrix4(m),f}),n=mz(e,!0);e.forEach(s=>s.dispose());let r=t.map(s=>{let a=new fz({map:s,alphaTest:1,side:hz});return s.needsUpdate=!0,a}),o=new pz(n,r);this.mesh=o,this.position.z+=.04,this.add(o)})}dispose(){var t,e;(t=this.mesh)==null||t.geometry.dispose(),((e=this.mesh)==null?void 0:e.material).forEach(n=>n.dispose()),this.clear()}constructor(t,e){super(),this.context=t,this.options=e.map(n=>S({},vz,n)),this.init()}};import{Object3D as _z}from"three";import{Line2 as yz}from"three/examples/jsm/lines/Line2";import{LineGeometry as xz}from"three/examples/jsm/lines/LineGeometry";import{LineMaterial as Ez}from"three/examples/jsm/lines/LineMaterial";var ki=class extends _z{registryEvent(){this.context.addEventListener("resize",this.onResize)}unRegistryEvent(){this.context.removeEventListener("resize",this.onResize)}setPosition(t,e){this.lineGeometry.setPositions([t.x,t.y,t.z,e.x,e.y,e.z]),this.line||this.createLine()}createLine(){this.line=new yz(this.lineGeometry,this.lineMaterial),this.line.renderOrder=100003,this.add(this.line)}dispose(){var t;this.unRegistryEvent(),this.line&&J(this.line),this.lineGeometry=null,this.lineMaterial=null,this.clear(),(t=this.line)==null||t.clear(),this.line=null}constructor(t,e,n){super(),this.context=t,this.lineGeometry=new xz,this.lineMaterial=new Ez({color:0,transparent:!0,depthTest:!1,linewidth:2}),this.line=null,this.onResize=()=>{let{width:r,height:o}=this.context.clientSize;this.lineMaterial.resolution.set(r,o)},this.onResize(),this.registryEvent(),e&&n&&this.setPosition(e,n)}};import{Frustum as Sz}from"three";var sa=class extends Yt{setEnable(t){super.setEnable(t),dt(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:e,container:{clientWidth:n,clientHeight:r}}}=this,o=C(this.startPoint,e,n,r),s=C(this.endPoint,e,n,r),a={x:Math.min(o.x,s.x),y:Math.min(o.y,s.y)},u={x:Math.max(o.x,s.x),y:Math.max(o.y,s.y)},l=this.searchMapInFrustum(a,u);this.dispatchEvent({type:"selected",list:l})}}searchMapInFrustum(t,e){var n;let{context:r}=this;return((n=r.currentFloor)==null?void 0:n.graphicLayer.children.filter(o=>o instanceof et&&this.searchChildInFrustum(o,t,e)))||[]}searchChildInFrustum(t,e,n){let{context:{camera:r,container:{clientWidth:o,clientHeight:s}}}=this;if(!t)return!1;if(!t.mesh){let p=t.getPosition();if(p){let f=C(p,r,o,s);return en(f,e,n)}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,r,o,s),h=C(l,r,o,s);return!(!en(c,e,n)||!en(h,e,n))}dispose(){super.dispose(),this.rect=null,this.unRegistryEvent()}constructor(t){super(t),this.frustum=new Sz,this.onPointerDown=r=>{if(!this.enable)return;let o=this.getIntersectByPointerEvent(r);o&&(this.startPoint=o),this.endPoint=void 0},this.onPointerMove=r=>{if(!this.enable||!this.startPoint)return;let o=this.getIntersectByPointerEvent(r);o&&(this.endPoint=o)},this.onPointerUp=r=>{if(!this.enable)return;let o=this.getIntersectByPointerEvent(r);o&&(this.endPoint=o),this.doSelect(),this.startPoint=void 0},this.onUpdate=()=>{if(this.startPoint){let r=this.getSvgCoordinate(this.startPoint),o=S({},r);this.endPoint&&(o=this.getSvgCoordinate(this.endPoint));let s={x:Math.min(r.x,o.x),y:Math.min(r.y,o.y)},a=Math.abs(o.x-r.x),u=Math.abs(o.y-r.y);dt(this.rect,s.x,s.y,a,u)}else dt(this.rect,0,0,0,0)};let{config:{selectBox:{fill:e,stroke:n}}}=t;this.rect=nn(n,e),this.svg.appendChild(this.rect),this.registryEvent()}};var aa=class extends bz{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.downTime=0,this.isMultipleSelect=!1,this.onPointerDown=e=>{Date.now()-this.downTime<200||(this.downPoint={x:e.offsetX,y:e.offsetY},this.downTime=Date.now())},this.onPointerUp=e=>{if(!this.downPoint)return;let{offsetX:n,offsetY:r}=e,{x:o,y:s}=this.downPoint;if(Math.sqrt((o-n)**2+(s-r)**2)>3)return;let{graphics:a}=this.context.getGraphicsByDeviceXy(n,r),u=new Set(a.map(c=>c.options.id));this.context.getPoisByDeviceXy(n,r).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))}}),($n?e.metaKey:e.ctrlKey)||this._list.clear(),a.forEach(c=>this._list.add(c)),this.selectEnd(),this.downPoint=null},this.onPointerOut=e=>{this.disableBoxSelection()},this.onKeyDown=e=>{Jn(e.key)&&this.enableBoxSelection()},this.onKeyUp=e=>{Jn(e.key)&&this.disableBoxSelection()},this.onBoxSelected=e=>{let{list:n}=e;this._list.clear(),n.forEach(r=>{this._list.add(r)}),this.selectEnd()},this.boxSelection=new sa(t),this.boxSelection.setEnable(!1),this.registryEvent()}};var WZ=d(de(),1),qZ=d(ge(),1),XZ=d(me(),1),jZ=d(ve(),1),YZ=d(_e(),1),KZ=d(ye(),1),ZZ=d(xe(),1),$Z=d(A(),1);import{EventDispatcher as Mz,Vector2 as wz}from"three";var ua=class extends Mz{handleHoverGraphicsChange(t){t===void 0&&(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 W,this.graphicTimerMap=new Map,this.onPointerMove=e=>{let{graphics:n,pois:r,e:o}=e,s=r.map(c=>{var h;return(h=this.context.currentFloor)==null?void 0:h.graphicLayer.graphicMap.get(c.options.id)}).filter(c=>c&&c.options.geometry.type==="point");if(!n.length&&!s.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:a}=this.context.config.hover,u=new Set;if(s.length){let c,h=1e4;s.forEach(p=>{let f=r.find(m=>m.options.id===p.options.id);if(f instanceof Nn){let{x:m,y:v}=f.clientPos,y=Math.sqrt((m-o.offsetX)**2+(v-o.offsetY)**2);y<h&&(h=y,c=p)}else if(f instanceof nt){let{x:m,y:v}=f.box.getCenter(new wz),y=Math.sqrt((m-o.offsetX)**2+(v-o.offsetY)**2);y<h&&(h=y,c=p)}}),u.add(c)}u.size||n.forEach(c=>u.add(c)),u.forEach(c=>{if(this.graphicTimerMap.get(c)||this.curGraphics.has(c))return;let h=this.timer.setTimeout(()=>{this.curGraphics.add(c),this.graphicTimerMap.delete(c),this.timer.clearTimeout(h),this.handleHoverGraphicsChange()},a);this.graphicTimerMap.set(c,h)}),this.graphicTimerMap.forEach((c,h)=>{u.has(h)||(this.timer.clearTimeout(c),this.graphicTimerMap.delete(h))});let l=this.curGraphics.size;this.curGraphics.forEach(c=>{u.has(c)||this.curGraphics.delete(c)}),l!==this.curGraphics.size&&this.handleHoverGraphicsChange()},this.onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()},this.onBodyPointerMove=e=>{if(this.curGraphics.size){let n=this.context.container.getBoundingClientRect();(e.clientX<n.left||e.clientX>n.right||e.clientY<n.top||e.clientY>n.bottom)&&this.onPointerLevel()}},this.registryEvent()}};var l$=d(A(),1);import{Box3 as Tz,Vector3 as la}from"three";var ca=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(y=>y instanceof jt).length)return null;let e=this.box,{camera:n,clientSize:{width:r,height:o}}=this.context,{min:s,max:a}=e,u=C(s,n,r,o),l=C(a,n,r,o),c=C(new la(s.x,a.y,a.z),n,r,o),h=C(new la(a.x,s.y,s.z),n,r,o),p=Math.min(u.x,l.x,c.x,h.x),f=Math.max(u.x,l.x,c.x,h.x),m=Math.min(u.y,l.y,c.y,h.y),v=Math.max(u.y,l.y,c.y,h.y);return{left:p,right:f,top:m,bottom:v}}checkDistanceToScreenEdge(t){let{left:e,right:n,top:r,bottom:o}=t,{width:s,height:a}=this.context.clientSize,[u,l,c,h]=this.context.config.cameraBound.padding,p=n>=h,f=s-e>=l,m=a-r>=c,v=o>=u;return p&&f&&m&&v}dispose(){this.unRegistryEvent()}constructor(t){this.context=t,this.prevCamera={position:new la,zoom:1,target:new la},this.enable=!0,this.box=new Tz,this.onCameraChange=()=>{let e=this.getCurFloorScreenPosition();if(e){let{left:n,right:r,top:o,bottom:s}=e;this.checkDistanceToScreenEdge({left:n,right:r,top:o,bottom:s})?this.changePrevCamera():this.backToPrevCamera()}},this.registryEvent(),this.changePrevCamera()}};var M$=d(Dc(),1);import{Vector3 as n3}from"three";import{Tween as ga,Group as Yz}from"@tweenjs/tween.js";var x$=d(A(),1),E$=d(D(),1);import{EventDispatcher as Hz,MOUSE as br,Quaternion as t3,Spherical as pa,TOUCH as Mr,Vector2 as Pt,Vector3 as Kt,Plane as Wz,Ray as qz,MathUtils as Xz}from"three";var fa=new qz,e3=new Wz,jz=Math.cos(70*Xz.DEG2RAD),da=class extends Hz{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,e){super(),this.rotateLineStart=new Pt,this.rotateLineEnd=new Pt,this.spherical=new pa,this.sphericalDelta=new pa,this.object=t,this.domElement=e,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new Kt,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:br.PAN,MIDDLE:br.DOLLY,RIGHT:br.ROTATE},this.touches={ONE:Mr.PAN,TWO:Mr.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(_){_.addEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=_},this.stopListenToKeyEvents=function(){var _;(_=this._domElementKeyEvents)==null||_.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null},this.saveState=function(){n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=function(){n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent({type:"change"}),n.update(),o=r.NONE},this.update=function(){let _=new Kt,b=new t3().setFromUnitVectors(t.up,new Kt(0,1,0)),k=b.clone().invert(),Z=new Kt,wt=new t3,he=new Kt,Zt=2*Math.PI;return function(Pr){Pr===void 0&&(Pr=null);let Ae=n.object.position;_.copy(Ae).sub(n.target),_.applyQuaternion(b),a.setFromVector3(_),n.autoRotate&&o===r.NONE&&G(j(Pr)),n.enableDamping?(a.theta+=u.theta*n.dampingFactor,a.phi+=u.phi*n.dampingFactor):(a.theta+=u.theta,a.phi+=u.phi);let Ce=n.minAzimuthAngle,Re=n.maxAzimuthAngle;isFinite(Ce)&&isFinite(Re)&&(Ce<-Math.PI?Ce+=Zt:Ce>Math.PI&&(Ce-=Zt),Re<-Math.PI?Re+=Zt:Re>Math.PI&&(Re-=Zt),Ce<=Re?a.theta=Math.max(Ce,Math.min(Re,a.theta)):a.theta=a.theta>(Ce+Re)/2?Math.max(Ce,a.theta):Math.min(Re,a.theta)),a.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,a.phi)),a.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(c,n.dampingFactor):n.target.add(c),n.zoomToCursor&&U||n.object.isOrthographicCamera?a.radius=Mt(a.radius):a.radius=Mt(a.radius*l),_.setFromSpherical(a),_.applyQuaternion(k),Ae.copy(n.target).add(_),n.object.lookAt(n.target),n.enableDamping===!0?(u.theta*=1-n.dampingFactor,u.phi*=1-n.dampingFactor,c.multiplyScalar(1-n.dampingFactor)):(u.set(0,0,0),c.set(0,0,0));let Xi=!1;if(n.zoomToCursor&&U){let Ir=null;if(n.object.isPerspectiveCamera){let Lr=_.length();Ir=Mt(Lr*l);let ji=Lr-Ir;n.object.position.addScaledVector(P,ji),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){let Lr=new Kt(R.x,R.y,0);Lr.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/l)),n.object.updateProjectionMatrix(),Xi=!0;let ji=new Kt(R.x,R.y,0);ji.unproject(n.object),n.object.position.sub(ji).add(Lr),n.object.updateMatrixWorld(),Ir=_.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;Ir!==null&&(n.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(Ir).add(n.object.position):(fa.origin.copy(n.object.position),fa.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(fa.direction))<jz?t.lookAt(n.target):(e3.setFromNormalAndCoplanarPoint(n.object.up,n.target),fa.intersectPlane(e3,n.target))))}else n.object.isOrthographicCamera&&(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/l)),n.object.updateProjectionMatrix(),Xi=!0);return l=1,U=!1,Xi||Z.distanceToSquared(n.object.position)>s||8*(1-wt.dot(n.object.quaternion))>s||he.distanceToSquared(n.target)>0?(n.dispatchEvent({type:"change"}),Z.copy(n.object.position),wt.copy(n.object.quaternion),he.copy(n.target),Xi=!1,!0):!1}}();let n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},o=r.NONE,s=1e-6,a=new pa,u=new pa,l=1,c=new Kt,h=new Pt,p=new Pt,f=new Pt,m=new Pt,v=new Pt,y=new Pt,E=new Pt,M=new Pt,w=new Pt,P=new Kt,R=new Pt,U=!1,T=[],I={};function j(_){return _!==null?2*Math.PI/60*n.autoRotateSpeed*_:2*Math.PI/60/60*n.autoRotateSpeed}function Y(){return Math.pow(.95,n.zoomSpeed)}function G(_){u.theta-=_}function ht(_){u.phi-=_}let yt=function(){let _=new Kt;return function(k,Z){_.setFromMatrixColumn(Z,0),_.multiplyScalar(-k),c.add(_)}}(),Lt=function(){let _=new Kt;return function(k,Z){n.screenSpacePanning===!0?_.setFromMatrixColumn(Z,1):(_.setFromMatrixColumn(Z,0),_.crossVectors(n.object.up,_)),_.multiplyScalar(k),c.add(_)}}(),Nt=function(){let _=new Kt;return function(k,Z){let wt=n.domElement;if(n.object.isPerspectiveCamera){let he=n.object.position;_.copy(he).sub(n.target);let Zt=_.length();Zt*=Math.tan(n.object.fov/2*Math.PI/180),yt(2*k*Zt/wt.clientHeight,n.object.matrix),Lt(2*Z*Zt/wt.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(yt(k*(n.object.right-n.object.left)/n.object.zoom/wt.clientWidth,n.object.matrix),Lt(Z*(n.object.top-n.object.bottom)/n.object.zoom/wt.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function Fn(_){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?l/=_:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function Cr(_){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?l*=_:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function Rr(_){if(!n.zoomToCursor)return;U=!0;let b=n.domElement.getBoundingClientRect(),k=_.clientX-b.left,Z=_.clientY-b.top,wt=b.width,he=b.height;R.x=k/wt*2-1,R.y=-(Z/he)*2+1,P.set(R.x,R.y,1).unproject(n.object).sub(n.object.position).normalize()}function Mt(_){return Math.max(n.minDistance,Math.min(n.maxDistance,_))}function Kc(_){h.set(_.clientX,_.clientY)}function k3(_){Rr(_),E.set(_.clientX,_.clientY)}function Zc(_){m.set(_.clientX,_.clientY)}function G3(_){p.set(_.clientX,_.clientY),f.subVectors(p,h).multiplyScalar(n.rotateSpeed);let b=n.domElement;G(2*Math.PI*f.x/b.clientHeight),ht(2*Math.PI*f.y/b.clientHeight),h.copy(p),n.update()}function V3(_){M.set(_.clientX,_.clientY),w.subVectors(M,E),w.y>0?Fn(Y()):w.y<0&&Cr(Y()),E.copy(M),n.update()}function H3(_){v.set(_.clientX,_.clientY),y.subVectors(v,m).multiplyScalar(n.panSpeed),Nt(y.x,y.y),m.copy(v),n.update()}function W3(_){Rr(_),_.deltaY<0?Cr(Y()):_.deltaY>0&&Fn(Y()),n.update()}function q3(_){let b=!1;switch(_.code){case n.keys.UP:_.ctrlKey||_.metaKey||_.shiftKey?ht(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):Nt(0,n.keyPanSpeed),b=!0;break;case n.keys.BOTTOM:_.ctrlKey||_.metaKey||_.shiftKey?ht(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):Nt(0,-n.keyPanSpeed),b=!0;break;case n.keys.LEFT:_.ctrlKey||_.metaKey||_.shiftKey?G(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):Nt(n.keyPanSpeed,0),b=!0;break;case n.keys.RIGHT:_.ctrlKey||_.metaKey||_.shiftKey?G(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):Nt(-n.keyPanSpeed,0),b=!0;break}b&&(_.preventDefault(),n.update())}function $c(){if(T.length===1)h.set(T[0].pageX,T[0].pageY);else{let _=(T[0].pageX-T[0].pageY)/(T[1].pageX-T[1].pageY),b=T[0].pageY-_*T[0].pageX;n.rotateLineStart.set(_,b);let k=.5*(T[0].pageX+T[1].pageX),Z=.5*(T[0].pageY+T[1].pageY);h.set(k,Z)}}function Jc(){if(T.length===1)m.set(T[0].pageX,T[0].pageY);else{let _=.5*(T[0].pageX+T[1].pageX),b=.5*(T[0].pageY+T[1].pageY);m.set(_,b)}}function Qc(){let _=T[0].pageX-T[1].pageX,b=T[0].pageY-T[1].pageY,k=Math.sqrt(_*_+b*b);E.set(0,k)}function X3(){n.enableZoom&&Qc(),n.enablePan&&Jc()}function j3(){n.enableZoom&&Qc(),n.enableRotate&&$c()}function th(_){if(T.length==1)p.set(_.pageX,_.pageY);else{let k=Ga(_),Z=.5*(_.pageX+k.x),wt=.5*(_.pageY+k.y);p.set(Z,wt);let he=(_.pageY-k.y)/(_.pageX-k.x),Zt=k.y-he*k.x;if(n.rotateLineEnd.set(he,Zt),Number.isFinite(n.rotateLineEnd.x)&&Number.isFinite(n.rotateLineStart.x)){let Va=(n.rotateLineStart.y-n.rotateLineEnd.y)/(n.rotateLineEnd.x-n.rotateLineStart.x),Pr=he*Va+Zt;if(Number.isFinite(Va)&&Number.isFinite(Pr)){let Ae=Math.atan(n.rotateLineEnd.x)-Math.atan(n.rotateLineStart.x);Math.PI-Math.abs(Ae)<.5&&(Ae=-Math.sign(Ae)*(Math.PI-Math.abs(Ae))),Math.abs(Ae)<.1&&(u.theta+=Ae)}}n.rotateLineStart.copy(n.rotateLineEnd)}f.subVectors(p,h).multiplyScalar(n.rotateSpeed);let b=n.domElement;ht(2*Math.PI*f.y/b.clientHeight),h.copy(p)}function eh(_){if(T.length===1)v.set(_.pageX,_.pageY);else{let b=Ga(_),k=.5*(_.pageX+b.x),Z=.5*(_.pageY+b.y);v.set(k,Z)}y.subVectors(v,m).multiplyScalar(n.panSpeed),Nt(y.x,y.y),m.copy(v)}function nh(_){let b=Ga(_),k=_.pageX-b.x,Z=_.pageY-b.y,wt=Math.sqrt(k*k+Z*Z);M.set(0,wt),w.set(0,Math.pow(M.y/E.y,n.zoomSpeed)),Fn(w.y),E.copy(M)}function Y3(_){n.enableZoom&&nh(_),n.enablePan&&eh(_)}function K3(_){n.enableZoom&&nh(_),n.enableRotate&&th(_)}this.onPointerDown=function(b){n.enabled!==!1&&(T.length===0&&(n.domElement.setPointerCapture(b.pointerId),n.domElement.addEventListener("pointermove",n.onPointerMove),n.domElement.addEventListener("pointerup",n.onPointerUp)),t1(b),b.pointerType==="touch"?J3(b):Z3(b))},this.onPointerMove=function(b){n.enabled!==!1&&(b.pointerType==="touch"?Q3(b):$3(b))},this.onPointerUp=function(b){e1(b),T.length===0&&(n.domElement.releasePointerCapture(b.pointerId),n.domElement.removeEventListener("pointermove",n.onPointerMove),n.domElement.removeEventListener("pointerup",n.onPointerUp)),n.dispatchEvent({type:"end"}),o=r.NONE};function Z3(_){let b;switch(_.button){case 0:b=n.mouseButtons.LEFT;break;case 1:b=n.mouseButtons.MIDDLE;break;case 2:b=n.mouseButtons.RIGHT;break;default:b=-1}switch(b){case br.DOLLY:if(n.enableZoom===!1)return;k3(_),o=r.DOLLY;break;case br.ROTATE:if(_.ctrlKey||_.metaKey||_.shiftKey){if(n.enablePan===!1)return;Zc(_),o=r.PAN}else{if(n.enableRotate===!1)return;Kc(_),o=r.ROTATE}break;case br.PAN:if(_.ctrlKey||_.metaKey||_.shiftKey){if(n.enableRotate===!1)return;Kc(_),o=r.ROTATE}else{if(n.enablePan===!1)return;Zc(_),o=r.PAN}break;default:o=r.NONE}o!==r.NONE&&n.dispatchEvent({type:"start"})}function $3(_){switch(o){case r.ROTATE:if(n.enableRotate===!1)return;G3(_);break;case r.DOLLY:if(n.enableZoom===!1)return;V3(_);break;case r.PAN:if(n.enablePan===!1)return;H3(_);break}}this.onMouseWheel=function(b){n.enabled===!1||n.enableZoom===!1||o!==r.NONE||(b.preventDefault(),n.dispatchEvent({type:"start"}),W3(b),n.dispatchEvent({type:"end"}))},this.onKeyDown=function(b){n.enabled===!1||n.enablePan===!1||q3(b)};function J3(_){switch(rh(_),T.length){case 1:switch(n.touches.ONE){case Mr.ROTATE:if(n.enableRotate===!1)return;$c(),o=r.TOUCH_ROTATE;break;case Mr.PAN:if(n.enablePan===!1)return;Jc(),o=r.TOUCH_PAN;break;default:o=r.NONE}break;case 2:switch(n.touches.TWO){case Mr.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;X3(),o=r.TOUCH_DOLLY_PAN;break;case Mr.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;j3(),o=r.TOUCH_DOLLY_ROTATE;break;default:o=r.NONE}break;default:o=r.NONE}o!==r.NONE&&n.dispatchEvent({type:"start"})}function Q3(_){switch(rh(_),o){case r.TOUCH_ROTATE:if(n.enableRotate===!1)return;th(_),n.update();break;case r.TOUCH_PAN:if(n.enablePan===!1)return;eh(_),n.update();break;case r.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Y3(_),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;K3(_),n.update();break;default:o=r.NONE}}this.onContextMenu=function(b){n.enabled!==!1&&b.preventDefault()};function t1(_){T.push(_)}function e1(_){delete I[_.pointerId];for(let b=0;b<T.length;b++)if(T[b].pointerId==_.pointerId){T.splice(b,1);return}}function rh(_){let b=I[_.pointerId];b===void 0&&(b=new Pt,I[_.pointerId]=b),b.set(_.pageX,_.pageY)}function Ga(_){let b=_.pointerId===T[0].pointerId?T[1]:T[0];return I[b.pointerId]}n.domElement.addEventListener("contextmenu",this.onContextMenu),n.domElement.addEventListener("pointerdown",this.onPointerDown),n.domElement.addEventListener("pointercancel",this.onPointerUp),n.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}};var ma=class extends da{registryEvent(){this.addEventListener("change",this.onChange),this.context.addEventListener("update",this.tweenUpdate)}unRegistryEvent(){this.removeEventListener("change",this.onChange),this.context.removeEventListener("update",this.tweenUpdate)}setPolarAngle(t,e){e===void 0&&(e=!1);let{maxPolarAngle:n,minPolarAngle:r}=this,o=n===r;(e||t<=n&&t>=r)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),o||(this.maxPolarAngle=n,this.minPolarAngle=r)}setPolarAngleByDuration(t,e,n){return x(this,null,function*(){return e===void 0&&(e=!1),n===void 0&&(n=500),n<=0?this.setPolarAngle(t,e):Ft(new Promise(r=>{let o={polar:this.getPolarAngle()},s={polar:t},a=new ga(o,this.tweenGroup).to(s,n).onUpdate(()=>{this.setPolarAngle(o.polar,e)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(a),r(!0)}).onStart(()=>{this.enabled=!1}).start()}),n+500)})}setAzimuthalAngle(t,e){let{maxAzimuthAngle:n,minAzimuthAngle:r}=this,o=n===r;(e||t<=n&&t>=r)&&(this.maxAzimuthAngle=t,this.minAzimuthAngle=t,this.update()),o||(this.maxAzimuthAngle=n,this.minAzimuthAngle=r)}setAzimuthalAngleDuration(t,e,n){return e===void 0&&(e=!1),n===void 0&&(n=500),n<=0?this.setAzimuthalAngle(t,e):Ft(new Promise(r=>{let o={azimuthal:this.getAzimuthalAngle()},s={azimuthal:t},a=new ga(o,this.tweenGroup).to(s,n).onUpdate(()=>{this.setAzimuthalAngle(o.azimuthal,e)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(a),r(!0)}).onStart(()=>{this.enabled=!1}).start()}),n+500)}getCameraLookAt(){return new n3().subVectors(this.target,this.camera.position)}setCameraPositionByTarget(t,e){return x(this,null,function*(){let n=this.target.clone(),r=this.getCameraLookAt();if(!e){this.camera.position.copy(t.clone().sub(r)),this.target.copy(t.clone()),this.update();return}return Ft(new Promise(o=>{let s=new ga(n,this.tweenGroup).to(t,e).onUpdate(()=>{this.camera.position.copy(n.clone().sub(r)),this.target.copy(n.clone()),this.update()}).onComplete(()=>{this.tweenGroup.remove(s),this.enabled=!0,o(!0)}).onStart(()=>{this.enabled=!1}).start()}),e+500)})}setZoom(t,e,n){n===void 0&&(n=!1);let{minZoom:r,maxZoom:o}=this;(n||t>=r&&t<=o)&&(this.camera.position.copy(e.clone().sub(this.getCameraLookAt())),this.target.copy(e),this.camera.zoom=t,this.update())}setZoomByDuration(t,e,n,r){return x(this,null,function*(){n===void 0&&(n=!1),r===void 0&&(r=500);let o={zoom:this.camera.zoom,target:this.target.clone()};if(t!==this.camera.zoom)return r?Ft(new Promise(s=>{let a=new ga(o,this.tweenGroup).to({zoom:t,target:e},r).onUpdate(()=>{this.setZoom(o.zoom,o.target,n)}).onComplete(()=>{this.tweenGroup.remove(a),this.enabled=!0,s(!0)}).onStart(()=>{this.enabled=!1}).start()}),r+500).finally(()=>{this.enabled=!0}):this.setZoom(t,e,n)})}setTargetByOffset(t,e){if(e===void 0&&(e=this.target.clone()),this.camera.updateMatrix(),t){let n=new n3;n.setFromMatrixColumn(this.camera.matrix,1),n.normalize(),n.multiplyScalar(t/this.camera.zoom),e.add(n)}this.setCameraPositionByTarget(e,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){super.dispose(),this.unRegistryEvent(),this.clearTween()}constructor(t,e,n){super(e,n),this.context=t,this.camera=e,this.domElement=n,this.prevCameraZoom=1,this.tweenGroup=new Yz,this.offsetY=0,this.onChange=()=>{let r=this.camera.zoom;r!==this.prevCameraZoom&&(this.prevCameraZoom=r,this.dispatchEvent({type:"change-zoom",zoom:r}))},this.tweenUpdate=()=>{this.tweenGroup.update()},this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=e.zoom,this.registryEvent()}};import{EventDispatcher as Kz,PCFSoftShadowMap as Zz,WebGLRenderer as $z}from"three";var va=class extends $z{setCameraAndScene(t,e){this.scene=t,this.camera=e}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,e){this.event.addEventListener(t,e)}removeEventListener(t,e){this.event.removeEventListener(t,e)}dispose(){this.timer.dispose(),this.enable=!1,super.dispose(),this.domElement=null}constructor(t){super(S({antialias:!0,alpha:!0},t)),this.event=new Kz,this.enable=!0,this.timer=new W,this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.shadowMap.enabled=!0,this.shadowMap.autoUpdate=!0,this.shadowMap.type=Zz}};import{Euler as Jz,Matrix4 as Qz,Scene as tk,EquirectangularReflectionMapping as ek}from"three";import{RGBELoader as nk}from"three/examples/jsm/loaders/RGBELoader.js";var _a=class extends tk{constructor(){super(),new nk().load(b6,t=>{t.mapping=ek,this.environment=t;let e=new Qz;e.makeRotationX(Math.PI/2),this.environmentRotation=new Jz().setFromRotationMatrix(e)})}};import{OrthographicCamera as rk}from"three";var ya=class extends rk{constructor(t,e){super(-t/2,t/2,e/2,-e/2,-1e4,5e4),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};var xa=class extends ik{resizeClientSize(){let{x:t,y:e,width:n,height:r}=this.container.getBoundingClientRect();this.clientSize={width:n||this.container.clientWidth,height:r||this.container.clientHeight,x:t,y:e}}init(){let{clientWidth:t,clientHeight:e}=this.container;this.camera=new ya(t,e),this.renderer.setSize(t,e),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new ma(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.onControlChange),this.control.addEventListener("change-zoom",this.onControlChangeZoom),this.renderer.addEventListener("update",this.onRendererUpdate),this.cameraBound=new ca(this)}getRatio(t,e){t===void 0&&(t=new We(0,0,0)),e===void 0&&(e=new We(100,0,0));let{clientWidth:n,clientHeight:r}=this.container,o=C(t,this.camera,n,r),s=C(e,this.camera,n,r);return Math.ceil(Math.sqrt((s.x-o.x)**2+(s.y-o.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(e=>{e instanceof lk&&(e.color=new uk(t))})}switchFloor(t){this.currentFloor&&(this.scene.remove(this.currentFloor),this.currentFloor.dispose()),this.currentFloor=t,this.scene.add(t);let e=t.getCenter();e&&(this.lights.position.x=e.x,this.lights.position.y=e.y),this.cameraBound.updateBox()}getGraphicsByDeviceXy(t,e){var n;let r=new wr;r.x=t/this.clientSize.width*2-1,r.y=e/this.clientSize.height*-2+1;let o=new sk;return o.setFromCamera(r,this.camera),o.ray.origin.sub(o.ray.direction.clone().multiplyScalar(100)),((n=this.currentFloor)==null?void 0:n.graphicLayer.getGraphicByRaycaster(o))||{graphics:[],position:null}}getPoisByDeviceXy(t,e){var n,r;let o=(n=this.currentFloor)==null?void 0:n.poiLayer.getPoiByDeviceXy(t,e),s=(r=this.currentFloor)==null?void 0:r.poiLayer2.getPoiByDeviceXy(t,e);return(o||[]).concat(s||[])}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),this.control.removeEventListener("change",this.onControlChange),this.control.removeEventListener("change-zoom",this.onControlChangeZoom),this.renderer.removeEventListener("update",this.onRendererUpdate)}setPolarAngle(t,e){return e===void 0&&(e=500),this.control.setPolarAngleByDuration(t,!0,e)}setAzimuthalAngle(t,e){return e===void 0&&(e=500),this.control.setAzimuthalAngleDuration(t,!0,e)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,e,n){return n===void 0&&(n=500),this.control.setZoomByDuration(t,e,!0,n)}getFitCameraToObjectZoom(t,e,n,r){e===void 0&&(e=[20,20,20,20]),n===void 0&&(n=500),r===void 0&&(r=!0);let[o,s,a,u]=e,{clientSize:{width:l,height:c}}=this,h=this.control.getPolarAngle();r&&this.setPolarAngle(0,0);let p=new ak().setFromObject(t);this.setPolarAngle(h,0);let{max:f,min:m}=p,v=new We(m.x,f.y,f.z),y=new We(f.x,f.y,f.z),E=new We(f.x,m.y,m.z),M=new We(m.x,m.y,m.z),w=C(v,this.camera,l,c),P=C(y,this.camera,l,c),R=C(M,this.camera,l,c),U=C(E,this.camera,l,c),I=new ok().setFromPoints([new wr(w.x,w.y),new wr(P.x,P.y),new wr(R.x,R.y),new wr(U.x,U.y)]).getSize(new wr),j=(l-s-u)/I.x,Y=(c-o-a)/I.y,G=Math.min(j,Y),ht=new We((f.x+m.x)/2,(f.y+m.y)/2,(f.z+m.z)/2),yt=G*this.camera.zoom,Lt=this.camera.clone();Lt.zoom=yt,Lt.updateMatrix();let Nt=(l-I.x*G)/2,Fn=(c-I.y*G)/2,Cr=(s-u)/2,Rr=(o-a)/2;if(Cr){let Mt=new We;Mt.setFromMatrixColumn(Lt.matrix,0),Mt.normalize(),Mt.multiplyScalar(Cr/yt),ht.add(Mt)}if(Rr){let Mt=new We;Mt.setFromMatrixColumn(Lt.matrix,1),Mt.normalize(),Mt.multiplyScalar(Rr/yt),ht.add(Mt)}return{zoom:G*this.camera.zoom,center:ht}}fitCameraToObject(t,e,n,r){e===void 0&&(e=[20,20,20,20]),n===void 0&&(n=500),r===void 0&&(r=!0);let{zoom:o,center:s}=this.getFitCameraToObjectZoom(t,e,n,r);return this.setZoom(o,s,n)}getFitCameraToGroundZoom(t,e,n){if(t===void 0&&(t=[20,20,20,20]),e===void 0&&(e=500),n===void 0&&(n=!0),this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,e,n).zoom}fitCameraToGround(t,e,n){return t===void 0&&(t=[20,20,20,20]),e===void 0&&(e=500),n===void 0&&(n=!0),this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundLayer,t,e,n):Promise.resolve(!1)}setCameraPosition(t,e){return x(this,null,function*(){return this.control.setCameraPositionByTarget(t,e)})}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}dispose(){var t;(t=this.currentFloor)==null||t.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(e=>e.dispose()),J(this.scene),this.scene.clear(),this.container=null}constructor(t,e){super(),this.container=t,this.config=e,this.scene=new _a,this.renderer=new va,this.lights=zg(),this.clientSize={width:0,height:0,x:0,y:0},this.renderRf=0,this.onControlChange=()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})},this.onControlChangeZoom=n=>{let{zoom:r}=n;this.dispatchEvent({type:"control-zoom-change",zoom:r})},this.onRendererUpdate=()=>{this.dispatchEvent({type:"update"})},this.onWindowResize=()=>{let{container:n,camera:r,renderer:o}=this,{clientWidth:s,clientHeight:a}=n;s=Math.max(1,s),a=Math.max(1,a),r.left=-s/2,r.right=s/2,r.top=a/2,r.bottom=-a/2,r.updateProjectionMatrix(),o.setSize(s,a),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:s,height:a})},this.onClick=n=>{let{graphics:r,position:o}=this.getGraphicsByDeviceXy(n.offsetX,n.offsetY);r.length&&this.dispatchEvent({type:"graphic-click",graphics:r,position:o});let s=this.getPoisByDeviceXy(n.offsetX,n.offsetY);s.length&&this.dispatchEvent({type:"poi-click",pois:s})},this.onPointerover=n=>{let{graphics:r,position:o}=this.getGraphicsByDeviceXy(n.offsetX,n.offsetY),s=this.getPoisByDeviceXy(n.offsetX,n.offsetY);this.dispatchEvent({type:"pointer-over",e:n,graphics:r,pois:s,position:o})},this.onPointermove=n=>{let{graphics:r,position:o}=this.getGraphicsByDeviceXy(n.offsetX,n.offsetY),s=this.getPoisByDeviceXy(n.offsetX,n.offsetY);this.dispatchEvent({type:"pointer-move",e:n,graphics:r,pois:s,position:o})},this.onPointerleave=n=>{this.dispatchEvent({type:"pointer-level"})},this.onSelectionSelect=n=>{let{graphics:r,isMultipleSelect:o}=n;this.dispatchEvent({type:"select-graphic",graphics:r,isMultipleSelect:o})},this.onHoverChange=n=>{let{graphics:r}=n;this.dispatchEvent({type:"hover",graphics:r})},this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new aa(this),this.hoverHelper=new ua(this),this.resizeClientSize(),this.registryEvent()}};import{merge as ck}from"lodash";var hk={placeId:0,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",loadPlaceInfo:"https://screen.aibee.cn/ai-map/map/get-floor-map"},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 r3(i){return ck({},hk,i)}import{debounce as Pk}from"lodash";var fJ=d(A(),1);var le;function i3(i,t){return i===void 0&&(i="aibee_map"),t===void 0&&(t=1),new Promise((e,n)=>{if(le)return e({db:le,type:"success"});let r=indexedDB.open(i,t);r.onupgradeneeded=function(o){le=o.target.result,console.log("onupgradeneeded"),e({db:le,type:"onupgradeneeded"})},r.onsuccess=o=>{le=o.target.result,e({db:le,type:"success"})},r.onerror=o=>{n(o)}})}function Uc(i,t,e){return e===void 0&&(e=le),new Promise((n,r)=>{e||r("\u6CA1\u6709db");let s=e.transaction([i],"readonly").objectStore(i).get(t);s.onsuccess=()=>{s.result?n(s.result.value):n(null)},s.onerror=a=>{console.log("[getVersionByKey]",a),n(null)}})}function o3(i,t,e,n){return n===void 0&&(n=le),new Promise((r,o)=>(n||o("\u6CA1\u6709db"),new Promise((s,a)=>x(this,null,function*(){let u=yield Uc(i,t),l=n.transaction([i],"readwrite").objectStore(i),c=u!==null?l.put({key:t,value:e}):l.add({key:t,value:e});c.onsuccess=function(h){s(h)},c.onerror=function(h){a(h)}}))))}function On(i,t){t===void 0&&(t=le),t&&(t.objectStoreNames.contains(i)||t.createObjectStore(i,{keyPath:"key"}))}function s3(i){i===void 0&&(i=le),i==null||i.close(),le=null}import{Vector3 as Mk,EventDispatcher as wk,Color as Tk}from"three";var oJ=d(D(),1),sJ=d(A(),1);function Ea(i,t){let e=i.poi_info.showName||i.store_name||i.poi_info.text;switch(t){case"zh-cn":return e;case"en":var n;return((n=i.store_info_ext)==null?void 0:n.poi_name)||e;case"zh-hk":var r;return((r=i.store_info_ext)==null?void 0:r.traditional_name)||e}}function Sa(i,t){let e=i.poi_info.showName||i.store_name||i.poi_info.text;switch(t){case"zh-cn":return e;case"en":var n;return((n=i.infra_info_ext)==null?void 0:n.poi_name)||e;case"zh-hk":var r;return((r=i.infra_info_ext)==null?void 0:r.traditional_name)||e}}function a3(i,t,e){switch(i.l_type){case"graph":return pk(i,t);case"wall":return fk(i,t);case"lane":return dk(i,t);case"texture2d":case"texture3d":return gk(i,t);case"glb":return mk(i,t);case"store":return vk(i,t);case"facility":return yk(i,t);case"parkingSpace":return Ek(i,t,e);case"text":return bk(i,t)}}function u3(i,t,e,n){switch(i.l_type){case"store":return _k(i,t,e,n.showStoreName);case"facility":return xk(i,t,e,n.showFacilityName);case"parkingSpace":return Sk(i,t)}}function pk(i,t){let e=i.elements.reduce((n,r)=>{let{fillColor:o,fillOpacity:s,strokeColor:a,strokeOpacity:u,height:l,airHeight:c}=r,h=o.toLowerCase()+"-"+s+"-"+a.toLowerCase()+"-"+u+"-"+l+"-"+c;return u===0&&(h=o.toLowerCase()+"-"+s+"-"+l+"-"+c),n[h]?n[h].push(r):n[h]=[r],n},{});Object.values(e).forEach(n=>{let r=new Sr(t.context,n);t.mergeGraphicLayer.add(r)})}function fk(i,t){let e=i.elements.reduce((n,r)=>{let{fillColor:o,fillOpacity:s,strokeColor:a,strokeOpacity:u,height:l}=r,c=o.toLowerCase()+"-"+s+"-"+a.toLowerCase()+"-"+u+"-"+l;return u===0&&(c=o.toLowerCase()+"-"+s+"-"+l),n[c]?n[c].push(r):n[c]=[r],n},{});Object.values(e).forEach(n=>{let r=new ea(t.context,n);t.wallLayer.add(r)})}function dk(i,t){let e=i.elements.reduce((n,r)=>{let{fillColor:o,fillOpacity:s,strokeColor:a,strokeOpacity:u,height:l,dashed:c}=r,h=o.toLowerCase()+"-"+s+"-"+a.toLowerCase()+"-"+u+"-"+l+"-"+c;return u===0&&(h=o.toLowerCase()+"-"+s+"-"+l+"-"+c),n[h]?n[h].push(r):n[h]=[r],n},{});Object.values(e).forEach(n=>{let r=new ra(t.context,n);t.laneLayer.add(r)})}function gk(i,t){if(i.elements.length){let e=new Er(t.context,i.elements);t.textureLayer.add(e)}}function mk(i,t){i.elements.forEach(e=>{let n=new na(t.context,S({},e,{url:e.secondUrl,rotate:e.secondRotate,width:e.secondWidth,center_x:e.center_coord_x,center_y:e.center_coord_y}));t.glbModelLayer.add(n)})}function vk(i,t){i.elements.map(e=>{let n=t.addGraphic(e);t.userData.graphics.push(n),t.userData.graphicMap.set(e.id,n)})}function _k(i,t,e,n){i.elements.map(r=>{try{let o=Ea(r,e),s=new nt(t.context,{id:r.id,icon:r.poi_info.icon,text:o,position:{x:r.center_coord_x,y:r.center_coord_y,z:r.airHeight+r.height},icon_size:[24,24],level:r.poi_info.level||0,hide_text:!n});t.poiLayer2.pushPoi(s),s&&(s.userData.type="store",s.userData.data=r,s.userData.floor=t.name)}catch(o){console.log("\u521B\u5EFA\u5E97\u94FApoi\u5931\u8D25",o,r)}})}function yk(i,t){i.elements.map(e=>{let n=t.addGraphic(e);t.userData.graphics.push(n),t.userData.graphicMap.set(e.id,n)})}function xk(i,t,e,n){i.elements.filter(o=>o.poi_info).map(o=>{try{let s=Sa(o,e),a=new nt(t.context,{id:o.id,icon:o.poi_info.icon,text:s,position:{x:o.center_coord_x,y:o.center_coord_y,z:o.airHeight+o.height},icon_size:[24,24],level:o.poi_info.level||0,hide_text:!n});t.poiLayer2.pushPoi(a),a.userData.type="facility",a.userData.data=o,a.userData.floor=t.name}catch(s){console.log("\u6DFB\u52A0facility\u5931\u8D25",s,o)}})}function Ek(i,t,e){t.parkingSpaceLayer.createParkings(i.elements,e.mergeParkingSpace),t.userData.parkingSpaces=t.parkingSpaceLayer.graphicMap.values(),t.userData.parkingSpacesGraphicMap=t.parkingSpaceLayer.graphicMap}function Sk(i,t){return x(this,null,function*(){let e=i.elements.filter(o=>o.texts[0]),n=e.map(o=>o.texts[0]),r=yield tt.lazyGetTextureByTexts(n);e.forEach(o=>{try{let s=o.texts[0],a=new nt(t.context,{id:o.id,text:s,position:{x:o.center_coord_x,y:o.center_coord_y,z:o.airHeight+o.height},text_texture:r[s].texture,text_texture_width:r[s].width,text_texture_height:r[s].height,text_texture_offset_x:r[s].x,text_texture_offset_y:r[s].y});a&&(a.userData.type="parkingSpace",a.userData.data=o,a.userData.floor=t.name),t.poiLayer2.pushPoi(a)}catch(s){console.log("\u6DFB\u52A0\u8F66\u4F4Dpoi\u5931\u8D25",s,o)}}),Object.values(r).forEach(o=>{o.texture.dispose()})})}function bk(i,t){let e=new oa(t.context,i.elements.map(n=>S({},n,{center_x:n.center_coord_x,center_y:n.center_coord_y})));t.textTextureLayer.add(e)}var l3="map_version",c3="route_version",h3="facility_version",Fc="map_data",ba="road_network_data",Bc="facility_data",Ak={mergeParkingSpace:!0},Tr=class extends wk{initDb(){return x(this,null,function*(){try{let{db:t,type:e}=yield i3("aibee_map",2);e==="onupgradeneeded"&&(On(l3),On(c3),On(h3),On(Fc),On(ba),On(Bc)),this.db=t}catch(t){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",t)}})}load(t,e){return x(this,null,function*(){if(Array.isArray(t))this.floors=t,e&&(this.placeConfig=S({},this.placeConfig,e));else{let n=yield fetch(t).then(r=>r.json());n.code===200&&(this.floors=n.data.list,this.placeConfig=S({},this.placeConfig,JSON.parse(n.data.config||"{}")))}this.getOtherDataByFreeTime()})}setCacheData(t,e,n){return this.initDbPromise.then(()=>o3(t,""+e,n,this.db))}getCacheData(t,e){return this.initDbPromise.then(()=>Uc(t,""+e,this.db))}getFloorCacheKey(t){return t.floor_id+"_"+t.version_id}getFloorData(t){return x(this,null,function*(){let e=yield this.getFloorJsonData(t);return e?this.getDataByJson(e):null})}getFloorDataByFloorInfo(t){return x(this,null,function*(){let e=yield this.getFloorJsonDataByFloorInfo(t);return this.getDataByJson(e)})}setLocale(t){this.locale=t,this.bmap.context.currentFloor&&this.bmap.context.currentFloor.poiLayer2.pois.forEach(e=>{e.userData.type==="store"&&(e.options.text=Ea(e.userData.data,t)),e.userData.type==="facility"&&(e.options.text=Sa(e.userData.data,t))})}getFloorJsonDataByFloorInfo(t){return x(this,null,function*(){if(this.getFloorDataPromise.has(t.floor))return this.getFloorDataPromise.get(t.floor);let e=new Promise(n=>x(this,null,function*(){let r=this.getFloorCacheKey(t),o=yield fetch(t.map_url).then(s=>s.json());o.floor=t.floor,this.setCacheData(Fc,r,o),this.setCacheData(l3,r,t.version_id),n(o)}));return this.getFloorDataPromise.set(t.floor,e),e})}getFloorJsonData(t){return x(this,null,function*(){let e=this.floors.find(r=>r.floor===t);if(!e)return null;let n=this.getFloorCacheKey(e);try{let r=yield this.getCacheData(Fc,n);return r||this.getFloorJsonDataByFloorInfo(e)}catch(r){return console.log("[get floor data error]",r),this.getFloorJsonDataByFloorInfo(e)}})}getRoadNetworkData(){return x(this,null,function*(){return(yield Promise.all(this.floors.map(e=>x(this,null,function*(){let n=this.getFloorCacheKey(e);try{let r=yield this.getCacheData(ba,n);if(r)return r;let o=yield fetch(e.route_url).then(s=>s.json());return this.setCacheData(ba,n,o),this.setCacheData(c3,n,e.version_id),o}catch(r){let o=yield fetch(e.route_url).then(s=>s.json());return this.setCacheData(ba,n,o),o}})))).filter(e=>e.points)})}getFacilitiesData(){return x(this,null,function*(){let t=this.floors.reduce((r,o)=>r.updated_at>o.updated_at?r:o,this.floors[0]);if(!t)return null;let e=this.getFloorCacheKey(t),n=()=>x(this,null,function*(){let r=yield fetch(t.entry_infra_url).then(o=>o.json());return r&&(this.setCacheData(Bc,e,r),this.setCacheData(h3,e,t.version_id)),r});try{let r=yield this.getCacheData(Bc,e);return r||n()}catch(r){return console.log("[get facility error]",r),n()}})}getOtherDataByFreeTime(){return x(this,null,function*(){for(let t=0;t<this.floors.length;t++){let e=this.floors[t];this.getFloorJsonData(e.floor)}})}getMulFloorsData(t){return x(this,null,function*(){return Promise.all(t.map(e=>this.getFloorData(e))).then(e=>e.filter(n=>n))})}getDataByUrl(t){return x(this,null,function*(){let e=yield fetch(t).then(n=>n.json());return this.getDataByJson(e)})}getDataByJson(t,e,n){return x(this,null,function*(){return e=this.getFloorBaseLayer(t,e),n=S({},this.placeConfig,n),t.layers.forEach(r=>{["range","ground"].includes(r.l_type)||nr(r.elements,e.userData.center)}),yield this.getFloorContentLayer(t,e),yield this.getFloorPoi(t,e,n),this.changeFloorBox(t,e),e})}changeFloorBox(t,e){e.updateBox();let n=e.box.getSize(new Mk),r=Math.max(n.x,n.y,n.z);e.userData.height=r/4+t.floorHeight}switchFloor(t,e){return x(this,null,function*(){return new Promise(n=>{let r={run:()=>this._switchFloor(t,e),meta:{type:"switchFloor"}},o=this.taskQueue.replaceByMetaType(r),s=a=>{let{task:u,res:l}=a;u.tid===o&&(this.taskQueue.removeEventListener("active-task-end",s),n(l))};this.taskQueue.addEventListener("active-task-end",s)})})}_switchFloor(t,e){return x(this,null,function*(){var n;let r=t;if(typeof t=="string"){let l=yield this.getFloorJsonData(t);if(l)r=l;else return null}e=S({},this.placeConfig,e);let o=new jt(this.bmap.context);o.userData.data=t;let s=this.floors.find(l=>l.floor===r.floor);var a;let u=(a=s==null?void 0:s.map_angle)!=null?a:0;return this.bmap.dispatchEvent({type:ct.SWITCH_FLOOR_BEFORE,data:{curFloor:o,graphics:[]}}),this.dispatchEvent({type:"switch-floor-before",data:{curFloor:o,graphics:[],floorData:r}}),this.bmap.context.control.setAzimuthalAngle(u/180*Math.PI,!0),this.bmap.context.scene.background=new Tk(e.backgroundColor),this.getFloorBaseLayer(r,o),this.changeFloorBox(r,o),this.bmap.buildingCenter=o.userData.center,this.bmap.currentBuildGround=(n=o.userData.data.layers.find(l=>l.l_type==="range"))==null?void 0:n.elements[0],this.bmap.context.switchFloor(o),this.bmap.initialFloorCamera(),this.bmap.context.cameraBound.updateBox(),r.layers.forEach(l=>{["range","ground"].includes(l.l_type)||nr(l.elements,o.userData.center)}),this.dispatchEvent({type:"switch-floor-ground",data:{curFloor:o,graphics:[]}}),this.bmap.dispatchEvent({type:ct.SWITCH_FLOOR_GROUND,data:{curFloor:o}}),yield Ho(),yield this.getFloorContentLayer(r,o),this.changeFloorBox(r,o),this.dispatchEvent({type:"switch-floor-content",data:{curFloor:o,graphics:[]}}),yield Im(2),yield this.getFloorPoi(r,o,e),this.dispatchEvent({type:"switch-floor-after",data:{curFloor:o,graphics:o.graphicLayer.children}}),this.bmap.dispatchEvent({type:ct.SWITCH_FLOOR_AFTER,data:{curFloor:o,graphics:o.graphicLayer.children}}),o})}getFloorBaseLayer(t,e){e||(e=new jt(this.bmap.context));let n=[0,0];return t.layers.forEach(r=>{switch(r.l_type){case"range":let o=r.elements[0];n=[o.center_x,o.center_y];break;case"ground":nr(r.elements,n);let s=r.elements.map(a=>new et(this.bmap.context,a));e.addGrounds(s);break;default:break}}),e.userData.center=n,e.name=t.floor,e.userData.data=t,e}getFloorContentLayer(t,e){return x(this,null,function*(){e||(e=new jt(this.bmap.context)),e.userData.graphics=[],e.userData.graphicMap=new Map;let n=Date.now();for(let r=0;r<t.layers.length;r++){let o=t.layers[r];["range","ground"].includes(o.l_type)||(a3(o,e,this.options),console.log("time",Date.now()-n,o.l_type),Date.now()-n>50&&(yield Ho(),n=Date.now()))}return e})}getFloorPoi(t,e,n){return x(this,null,function*(){n===void 0&&(n=this.placeConfig);let r=Date.now();yield Promise.all(t.layers.map(s=>u3(s,e,this.locale,n))),console.log("poi time",Date.now()-r);let o=Date.now();Ho().then(()=>{console.log("poi render time",Date.now()-o)})})}clear(){return x(this,null,function*(){var t;s3((t=this.db)!=null?t:void 0)})}dispose(){this.clear(),this.getFloorDataPromise.clear()}constructor(t,e={}){super(),this.bmap=t,this.floors=[],this.initDbPromise=Promise.resolve(),this.db=null,this.taskQueue=new rr,this.locale="zh-cn",this.placeConfig={backgroundColor:"#f1f7f6",showFacilityName:!0,showStoreName:!0},this.getFloorDataPromise=new Map,this.options=S({},Ak,e),this.initDbPromise=this.initDb()}};var CJ=d(A(),1);function p3(i,t){return x(this,null,function*(){let{brand:e,project:n}=i,{apiDomain:r,apiPath:{floorRange:o},apiInfo:s}=t,a=""+r+o+"?brand="+e+"&project="+n+"&phase="+n+"&building="+n;return yield fetch(a,s).then(l=>l.json()).then(l=>l.data).then(l=>{let c=(l||[])[0];return c&&(c.info=JSON.parse(c.info)),c})})}function f3(i,t){return x(this,null,function*(){let{brand:e,project:n,floor:r,ts:o,resource_type_list:s}=i,{apiDomain:a,apiPath:{floorGraphic:u},apiInfo:l}=t,c=""+a+u+"?brand="+e+"&project="+n+"&phase="+n+"&building="+n+"&floor="+r+"&ts="+o+"&resource_type_list="+s;return yield fetch(c,l).then(p=>p.json()).then(p=>p.data).then(p=>((p||[]).map(f=>f.info=JSON.parse(f.info)),p||[]))})}function SJ(i,t){return x(this,null,function*(){let{project:e,floor:n}=i,{apiDomain:r,apiInfo:o}=t,s=r+"/api/inception-map/external_street/get?projectCode="+e+"&floorCode="+n;return yield fetch(s,o).then(u=>u.json()).then(u=>u.data).then(u=>JSON.parse(u[0].streetInfo||"{}")).then(u=>u.fileId?Ck(u.fileId,t):null)})}function Ck(i,t){return x(this,null,function*(){let{apiDomain:e,apiInfo:n}=t;return fetch(e+"/api/inception-map/file/getFileStream?fileId="+i,n).then(r=>r.arrayBuffer()).then(r=>{let s=new TextDecoder("utf-8").decode(r);return s?JSON.parse(s):null})})}var d3=class{load(t){return x(this,null,function*(){let e=Qn(t);if(this.cacheData.has(e))return this.cacheData.get(e);let[,n]=yield Promise.all([this.loadBuildGround(t),f3(t,this.bmap.config)]),r=Qn({floor:t.floor,ts:t.ts});nr(n.map(s=>s.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(r)||0),n.forEach(s=>s.info.transformToBuildingGround=!1),this.cacheData.set(e,n);let o=this.floorDataLengthMap.get(r)||0;return this.floorDataLengthMap.set(r,o+n.length),this.loadExternalStreet(t),n})}loadExternalStreet(t){return x(this,null,function*(){})}switchFloorByData(t,e){if(!t.length)return;let n=e.userData.legacyToGraphicMap||new Map,r=e.userData.graphicMap||new Map,{ground:o,markGraphic:s,graphic:a}=this.bmap.config;for(let u=0;u<t.length;u++){let l=t[u];l.info.group==="ground"?(l.info.fillColor=o.color,l.info.fillOpacity=o.opacity,l.info.height=o.height,l.info.stroke=o.stroke,l.info.strokeColor=o.strokeColor,l.info.strokeOpacity=o.strokeOpacity):l.info.userData.mark?(l.info.height=s.height,l.info.fillColor=s.color,l.info.fillOpacity=s.opacity,l.info.stroke=s.stroke,l.info.strokeColor=s.strokeColor,l.info.strokeOpacity=s.strokeOpacity):(l.info.fillOpacity=a.fillOpacity,this.bmap.config.initTransToMark&&(l.info.height=s.height,l.info.fillColor=s.color,l.info.stroke=s.stroke,l.info.strokeColor=s.strokeColor,l.info.strokeOpacity=s.strokeOpacity))}for(let u of t){if(u.info.group==="ground")e.createGround(u.info);else{let l=e.addGraphic(u.info);l.userData.data=u,n.set(u.legacy_id,l)}r.set(u.element_uuid,u)}e.userData.legacyToGraphicMap=n,e.userData.graphicMap=r,e.updateBox(),e===this.bmap.context.currentFloor?(this.bmap.triggerHooks(ct.SWITCH_FLOOR_BEFORE,{curFloor:e,graphics:e.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks(ct.SWITCH_FLOOR_AFTER,{curFloor:e,graphics:e.graphicLayer.children})):this.bmap.switchFloorByFloor(e)}filterData(t,e){let n=e.userData.graphicMap||new Map;return t.filter(r=>!n.has(r.element_uuid))}switchFloorByStoreData(t,e){return x(this,null,function*(){let n=yield this.load(S({},t,{resource_type_list:"6"})),r=this.filterData(n,e);this.switchFloorByData(r,e)})}switchFloorByOtherData(t,e){return x(this,null,function*(){let n=yield this.load(S({},t,{resource_type_list:"1,2,3,4"})),r=this.filterData(n,e);this.switchFloorByData(r,e)})}loadBuildGround(t){return x(this,null,function*(){let{brand:e,project:n}=t,r=yield this.loadBuildingGround({brand:e,project:n});return this.bmap.currentBuildGround=r,this.bmap.changeBuildingCenter(r,{brand:e,project:n}),this.bmap.currentBuildGround})}loadBuildingGround(t){return x(this,null,function*(){let{brand:e,project:n}=t,r=Qn({brand:e,project:n});if(this.buildingGroundMap.has(r))return this.buildingGroundMap.get(r);let o=p3({brand:e,project:n},this.bmap.config).then(s=>(this.buildingGroundMap.set(r,s),s));return this.buildingGroundMap.set(r,o),o})}switchFloor(t){return x(this,null,function*(){let e=new jt(this.bmap.context);e.userData.graphicMap=new Map,e.name=t.floor;try{yield Promise.all([this.switchFloorByStoreData(t,e),this.switchFloorByOtherData(t,e)])}catch(n){console.log(n)}return e})}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}constructor(t){this.bmap=t,this.cacheData=new Map,this.floorDataLengthMap=new Map,this.buildingGroundMap=new Map,this.externalStreetMap=new Map}};var ZJ=function(i){return i[i.D2=0]="D2",i[i.D3=1.1]="D3",i}({}),Ma=class extends Rk{changeBuildingCenter(t,e){let{brand:n,project:r}=e,o=t?Fo(t.info.geometry.cds[0]):[0,0];this.buildingCenter=o,this.dispatchEvent({type:"center-change",center:o,project:r,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(e=>e!==t)}triggerHooks(t,e){this.dispatchEvent({type:t,data:e})}switchFloor(t){return x(this,null,function*(){return this.loader||(this.loader=new Tr(this),yield this.loader.load(this.config.apiPath.loadPlaceInfo+"?place_id="+this.config.placeId+"&env=prod")),this.loader.switchFloor(t)})}switchFloorByFloor(t,e){e===void 0&&(e=t.graphicLayer.children),this.triggerHooks(ct.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:e}),this.context.switchFloor(t),this.initialFloorCamera(),this.triggerHooks(ct.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:e})}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,e){if(t.options.geometry.type==="polygon"){var n;let r=(n=this.context.currentFloor)==null?void 0:n.addModel(S({},e,{position:t.getPosition().setZ(.1),id:t.options.id}));if(r){let{facilityAngle:o=0,facilityXScale:s=1,facilityYScale:a=1}=t.options.userData;r.rotateZ((180-o)/180*Math.PI),r.scale.set(s,a,1)}}}addHeatmap(t){var e;return(e=this.context.currentFloor)==null?void 0:e.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(e=>e instanceof et))||[]}createGraphicPoi(t,e){if(this.context.currentFloor){e.id===void 0&&(e.id=t.options.id);let n=t.options.center,r=t.getCenter(),o=(n==null?void 0:n[0])||r.x,s=(n==null?void 0:n[1])||r.y;return console.log(o,s,n,r),this.context.currentFloor.addPoi(S({},e,{position:{x:o,y:s,z:r.z+t.options.height/2}}))}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,e,n,r){e===void 0&&(e=500),n===void 0&&(n=0),r===void 0&&(r=0);let o=t.getPosition().clone(),{context:{camera:s}}=this;if(s.updateMatrix(),r){let a=new zc;a.setFromMatrixColumn(s.matrix,1),a.normalize(),a.multiplyScalar(r/s.zoom),o.add(a)}if(n){let a=new zc;a.setFromMatrixColumn(s.matrix,0),a.normalize(),a.multiplyScalar(n/s.zoom),o.add(a)}return this.context.setCameraPosition(o,e)}translateElementToCenterX(t,e){return x(this,null,function*(){return e===void 0&&(e=500),Ft(new Promise(n=>{let r=this.context.control.target.clone(),o=t.getPosition();this.timer.requestAnimationFrame(()=>{let{clientSize:{width:s,height:a},camera:u}=this.context,c=C(o,u,s,a).x-s/2,h=new zc;h.setFromMatrixColumn(this.context.camera.matrix,0),h.normalize(),h.multiplyScalar(c/this.context.camera.zoom),r.add(h),this.context.setCameraPosition(r,e).then(n)})}),e+500)})}getElementDeviceCoordinate(t){let e=t.position.clone(),{clientWidth:n,clientHeight:r}=this.container;return C(e,this.context.camera,n,r)}changeMapType(t,e){return e===void 0&&(e=500),this.type=t,t==="2d"?this.context.setPolarAngle(0,e):this.context.setPolarAngle(1.1,e)}resetView(t){return x(this,null,function*(){t===void 0&&(t=300);let e=t/3;yield this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,e),yield this.context.setPolarAngle(this.config.control.defaultPolar,e),yield this.context.fitCameraToGround(this.config.defaultPadding,e,!1)})}reduceMap(t,e){t===void 0&&(t=.5),e===void 0&&(e=500);let n=this.context.camera.zoom;return this.context.setZoom(n-t,this.context.control.target,e)}enlargeMap(t,e){t===void 0&&(t=.5),e===void 0&&(e=500);let n=this.context.camera.zoom;return this.context.setZoom(n+t,this.context.control.target,e)}registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver(this.debounceResize);t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;this.context.control.removeEventListener("change",this.onControlChange),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){t===void 0&&(t=.1);let e=this.context.control.getAzimuthalAngle();this.context.setAzimuthalAngle(e+t,500)}measureDistance(){return x(this,null,function*(){return this.cancelDistance(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgLine=new Qs(this.context);let n=this.svgLine.dispose.bind(this.svgLine);this.svgLine.dispose=function(){n(),e("cancel")},this.svgLine.addEventListener("distance",r=>{let{distance:o}=r;t(o)})})})}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new ta(this.context);let n=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){n(),e("cancel")},this.svgPolygon.addEventListener("area",r=>{let{area:o}=r;t(o)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){var e,n;return((e=this.context.currentFloor)==null?void 0:e.graphicLayer.getGraphicByNodeId(t))||((n=this.context.currentFloor)==null?void 0:n.parkingSpaceLayer.graphicMap.get(t))||null}deleteGraphic(t){var e;(e=this.context.currentFloor)==null||e.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var e;if(!t.transformToBuildingGround&&this.currentBuildGround){let n=Fo(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(r=>{Array.isArray(r)&&r.forEach(o=>{o[0]-=n[0],o[1]-=n[1]})});else{let[r,o]=t.geometry.cds;t.geometry.coords=[r-n[0],o-n[1]]}}return(e=this.context.currentFloor)==null?void 0:e.graphicLayer.createGraphic(t)}removePoiById(t){var e,n;(e=this.context.currentFloor)==null||e.poiLayer.removePoiById(t),(n=this.context.currentFloor)==null||n.poiLayer2.removePoiById(t)}getPoiById(t){var e,n;return((e=this.context.currentFloor)==null?void 0:e.poiLayer.getPoiById(t))||((n=this.context.currentFloor)==null?void 0:n.poiLayer2.getPoiById(t))}getPois(){var t,e;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(n=>!n.options.built_in),...((e=this.context.currentFloor)==null?void 0:e.poiLayer2.pois)||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.loader&&(this.loader.dispose(),this.loader=null),this.unRegistryEvent(),this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.plugins=[],this.context.dispose(),this.context=null,this.container=null,tt.dispose(),ut.dispose(),sn.dispose(),St.dispose(),X.dispose(),ue.dispose(),this.debounceResize=null}constructor(t,e={}){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 W,this.plugins=[],this.loader=null,this.onControlChange=()=>{let{camera:{zoom:n}}=this.context;n!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=n)},this.onKeydown=n=>{this.polarKeys.includes(n.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(n.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=n=>{if(this.polarKeys.includes(n.code)){let r=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=r,this.context.control.minPolarAngle=r}if(this.azimuthalKeys.includes(n.code)){let r=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=r,this.context.control.minAzimuthAngle=r}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let n=this.context.control.getAzimuthalAngle(),r=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 o=this.context.getFitCameraToGroundZoom(this.config.defaultPadding,0)||1;this.context.camera.zoom=r,this.context.control.minZoom=o,this.context.control.maxZoom=o*25,this.basicZoom=r,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(n,0),this.context.cameraBound.setEnable(!0)},this.config=r3(e),this.context=new xa(t,this.config),this.debounceResize=Pk(this.resize,5),this.registryEvent()}};var eQ=d(A(),1);import{EventDispatcher as Ik}from"three";var bt=class extends Ik{dispose(){let t=this.bmap.plugins.findIndex(e=>e===this);t!==-1&&this.bmap.plugins.splice(t,1),this.bmap=null}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};var g3=class extends bt{fetchEquipment(){return x(this,null,function*(){let{apiDomain:t,apiPath:{equipmentList:e},apiInfo:n}=this.bmap.config,r=""+t+e;yield fetch(r,n).then(o=>o.json()).then(o=>o.data).then(o=>{this.equipmentList=o,this.equipmentMap=new Map(o.map(s=>[s.equipment_id,s]))}),this.dispatchEvent({type:"change-equipment-list",data:this.equipmentList}),this.bmap.context.currentFloor&&this.changeGraphicToEquipment(this.bmap.context.currentFloor.graphicLayer.children)})}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(e=>{let n=this.getGraphicEquipment(e);return n&&this.equipmentMap.has(n)}).forEach(e=>{let n=this.equipmentMap.get(this.getGraphicEquipment(e)),r=this.bmap.createGraphicPoi(e,{icon:n==null?void 0:n.equipment_icon,built_in:!0,icon_size:[14,14]});r&&(r.userData.data=n,r.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(ct.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(e=>{if(e.userData.type==="equipment"){var n;(n=this.bmap.context.currentFloor)==null||n.poiLayer.removePoi(e)}}),super.dispose()}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=e=>{let{data:{graphics:n}}=e;this.equipmentList.length&&this.changeGraphicToEquipment(n)},this.fetchEquipment(),this.bmap.addEventListener(ct.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};var ftt=d(ti(),1),dtt=d(ee(),1),gtt=d(A(),1),mtt=d(Dc(),1);var AQ=d(A(),1),CQ=d(D(),1);import{Mesh as zk,Object3D as kk,TextureLoader as Gk,Color as Vk,Vector2 as Gc,Vector3 as Hk,NormalBlending as Wk,RepeatWrapping as qk}from"three";var uQ=d(Ul(),1),lQ=d(hi(),1),cQ=d(pi(),1),hQ=d(di(),1),pQ=d(gi(),1),fQ=d(mi(),1),dQ=d(_i(),1),gQ=d(yi(),1),mQ=d(xi(),1),vQ=d(Ei(),1),_Q=d(Si(),1),yQ=d(bi(),1),xQ=d(Mi(),1),EQ=d(Ti(),1),SQ=d(Ai(),1),bQ=d(D(),1),MQ=d(wc(),1);import{BufferGeometry as Lk,Matrix4 as v3,Vector3 as Dn,Ray as Nk,Sphere as Ok,LineSegments as Dk,BufferAttribute as vn,ShaderChunk as It,ShaderMaterial as _3,UniformsLib as Uk,Color as Fk,Vector2 as m3}from"three";var _t=class extends Lk{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 v3,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)}}})}};_t.prototype.setMatrixWorld=function(i){this.matrixWorld=i};_t.prototype.setGeometry=function(i,t){this._geometry=i,this.setPoints(i.getAttribute("position").array,t)};_t.prototype.setPoints=function(i,t){if(!(i instanceof Float32Array)&&!(i instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=i,this.widthCallback=t,this.positions=[],this.counters=[],i.length&&i[0]instanceof Dn)for(var e=0;e<i.length;e++){var n=i[e],r=e/i.length;this.positions.push(n.x,n.y,n.z),this.positions.push(n.x,n.y,n.z),this.counters.push(r),this.counters.push(r)}else for(var e=0;e<i.length;e+=3){var r=e/i.length;this.positions.push(i[e],i[e+1],i[e+2]),this.positions.push(i[e],i[e+1],i[e+2]),this.counters.push(r),this.counters.push(r)}this.process()};function Bk(i,t){var e=new v3,n=new Nk,r=new Ok,o=new Dn,s=this.geometry;if(s.boundingSphere||s.computeBoundingSphere(),r.copy(s.boundingSphere),r.applyMatrix4(this.matrixWorld),i.ray.intersectSphere(r,o)!==!1){e.copy(this.matrixWorld).invert(),n.copy(i.ray).applyMatrix4(e);var a=new Dn,u=new Dn,l=new Dn,c=this instanceof Dk?2:1,h=s.index,p=s.attributes;if(h!==null)for(var f=h.array,m=p.position.array,v=p.width.array,y=0,E=f.length-1;y<E;y+=c){var M=f[y],w=f[y+1];a.fromArray(m,M*3),u.fromArray(m,w*3);var P=v[Math.floor(y/3)]!==void 0?v[Math.floor(y/3)]:1,R=i.params.Line.threshold+this.material.lineWidth*P/2,U=R*R,T=n.distanceSqToSegment(a,u,o,l);if(!(T>U)){o.applyMatrix4(this.matrixWorld);var I=i.ray.origin.distanceTo(o);I<i.near||I>i.far||(t.push({distance:I,point:l.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this}),y=E)}}}}_t.prototype.raycast=Bk;_t.prototype.compareV3=function(i,t){var e=i*6,n=t*6;return this.positions[e]===this.positions[n]&&this.positions[e+1]===this.positions[n+1]&&this.positions[e+2]===this.positions[n+2]};_t.prototype.copyV3=function(i){var t=i*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};_t.prototype.getDistance=function(i){let t=0;for(let e=0;e<i;e++){let n=6*e,r=new Dn(this.positions[n],this.positions[n+1],this.positions[n+2]),o=new Dn(this.positions[n+6],this.positions[n+7],this.positions[n+8]),s=r.distanceTo(o);t+=s}return t};_t.prototype.process=function(){var i=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let e=this.getDistance(i-1);var n;this.compareV3(0,i-1)?n=this.copyV3(i-2):n=this.copyV3(0),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);for(var r=0;r<i;r++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(r/(i-1)):t=1,this.width.push(t),this.width.push(t),r===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(r===i-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let s=this.getDistance(r)/e;this.uvs.push(s,0),this.uvs.push(s,1)}if(r<i-1){n=this.copyV3(r),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);var o=r*2;this.indices_array.push(o,o+1,o+2),this.indices_array.push(o+2,o+1,o+3)}r>0&&(n=this.copyV3(r),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]))}this.compareV3(i-1,0)?n=this.copyV3(1):n=this.copyV3(i-1),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new vn(new Float32Array(this.positions),3),previous:new vn(new Float32Array(this.previous),3),next:new vn(new Float32Array(this.next),3),side:new vn(new Float32Array(this.side),1),width:new vn(new Float32Array(this.width),1),uv:new vn(new Float32Array(this.uvs),2),index:new vn(new Uint16Array(this.indices_array),1),counters:new vn(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 kc(i,t,e,n,r){var o;if(i=i.subarray||i.slice?i:i.buffer,e=e.subarray||e.slice?e:e.buffer,i=t?i.subarray?i.subarray(t,r&&t+r):i.slice(t,r&&t+r):i,e.set)e.set(i,n);else for(o=0;o<i.length;o++)e[o+n]=i[o];return e}_t.prototype.advance=function(i){var t=this._attributes.position.array,e=this._attributes.previous.array,n=this._attributes.next.array,r=t.length;kc(t,0,e,0,r),kc(t,6,t,0,r-6),t[r-6]=i.x,t[r-5]=i.y,t[r-4]=i.z,t[r-3]=i.x,t[r-2]=i.y,t[r-1]=i.z,kc(t,6,n,0,r-6),n[r-6]=i.x,n[r-5]=i.y,n[r-4]=i.z,n[r-3]=i.x,n[r-2]=i.y,n[r-1]=i.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};It.meshline_vert=["",It.logdepthbuf_pars_vertex,It.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;","",It.logdepthbuf_vertex,It.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",It.fog_vertex,"}"].join(`
|
|
3912
3912
|
`);It.meshline_frag=["",It.fog_pars_fragment,It.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() {","",It.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);","",It.fog_fragment,"if (vUV.x <= thresholdRatio) {","gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);","}","}"].join(`
|
|
3913
|
-
`);var Un=class extends _3{constructor(t){super({uniforms:Object.assign({},Uk.fog,{lineWidth:{value:1},map:{value:null},useMap:{value:0},alphaMap:{value:null},useAlphaMap:{value:0},color:{value:new Fk(16777215)},opacity:{value:1},resolution:{value:new m3(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 m3(1,1)},thresholdRatio:{value:0},transparent:{value:!0},depthTest:{vale:!1},depthWrite:{value:!1}}),vertexShader:It.meshline_vert,fragmentShader:It.meshline_frag}),this.isMeshLineMaterial=!0,this.type="MeshLineMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get:function(){return this.uniforms.lineWidth.value},set:function(e){this.uniforms.lineWidth.value=e}},map:{enumerable:!0,get:function(){return this.uniforms.map.value},set:function(e){this.uniforms.map.value=e}},useMap:{enumerable:!0,get:function(){return this.uniforms.useMap.value},set:function(e){this.uniforms.useMap.value=e}},alphaMap:{enumerable:!0,get:function(){return this.uniforms.alphaMap.value},set:function(e){this.uniforms.alphaMap.value=e}},useAlphaMap:{enumerable:!0,get:function(){return this.uniforms.useAlphaMap.value},set:function(e){this.uniforms.useAlphaMap.value=e}},color:{enumerable:!0,get:function(){return this.uniforms.color.value},set:function(e){this.uniforms.color.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}},sizeAttenuation:{enumerable:!0,get:function(){return this.uniforms.sizeAttenuation.value},set:function(e){this.uniforms.sizeAttenuation.value=e}},dashArray:{enumerable:!0,get:function(){return this.uniforms.dashArray.value},set:function(e){this.uniforms.dashArray.value=e,this.useDash=e!==0?1:0}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(e){this.uniforms.dashOffset.value=e}},dashRatio:{enumerable:!0,get:function(){return this.uniforms.dashRatio.value},set:function(e){this.uniforms.dashRatio.value=e}},useDash:{enumerable:!0,get:function(){return this.uniforms.useDash.value},set:function(e){this.uniforms.useDash.value=e}},visibility:{enumerable:!0,get:function(){return this.uniforms.visibility.value},set:function(e){this.uniforms.visibility.value=e}},alphaTest:{enumerable:!0,get:function(){return this.uniforms.alphaTest.value},set:function(e){this.uniforms.alphaTest.value=e}},repeat:{enumerable:!0,get:function(){return this.uniforms.repeat.value},set:function(e){this.uniforms.repeat.value.copy(e)}},thresholdRatio:{enumerable:!0,get:function(){return this.uniforms.thresholdRatio.value},set:function(e){this.uniforms.thresholdRatio.value=e}}}),this.setValues(t)}};Un.prototype.copy=function(i){return _3.prototype.copy.call(this,i),this.lineWidth=i.lineWidth,this.map=i.map,this.useMap=i.useMap,this.alphaMap=i.alphaMap,this.useAlphaMap=i.useAlphaMap,this.color.copy(i.color),this.opacity=i.opacity,this.resolution.copy(i.resolution),this.sizeAttenuation=i.sizeAttenuation,this.dashArray.copy(i.dashArray),this.dashOffset.copy(i.dashOffset),this.dashRatio.copy(i.dashRatio),this.useDash=i.useDash,this.visibility=i.visibility,this.alphaTest=i.alphaTest,this.repeat.copy(i.repeat),this};var y3={texture_url:Gs,lineWidth:10,color:16777215},wa=class extends kk{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)}getRepeat(){let{points:t,navigation:{bmap:{context:{camera:e,clientSize:{width:n,height:r}}}}}=this,o=t.map(a=>{let[u,l]=a;return C(new Hk(u,l,0),e,n,r)}).map(a=>{let{x:u,y:l}=a;return[u,l]});return Ct(o)/32}changeRepeat(){if(!this.material)return;let t=this.getRepeat();this.material.repeat=new Gc(t,1)}loadTexture(t){return new Promise((e,n)=>{new Gk().load(t,e,void 0,n)})}transformPoints(t){let e=[];for(let n=0;n<t.length;n++)e.push(...t[n],0);return e}updatePoints(t){this.points=t,this.changeRepeat();let e=this.transformPoints(t);this.geometry&&this.geometry.setPoints(e)}movePath(t){this.material&&(this.material.thresholdRatio=t)}create(t){return x(this,null,function*(){let e=this.geometry=new _t;if(this.updatePoints(t),!this.texture){let o=this.texture=yield this.loadTexture(this.config.texture_url);o.wrapS=o.wrapT=qk}let n=this.material=new Un({useMap:!0,color:new Vk(this.config.color),transparent:!0,resolution:new Gc(this.navigation.bmap.context.clientSize.width,this.navigation.bmap.context.clientSize.height),depthTest:!1,sizeAttenuation:!1,lineWidth:this.config.lineWidth*2,map:this.texture,blending:Wk,repeat:new Gc(this.getRepeat(),1)}),r=this.mesh=new zk(e,n);return r.renderOrder=100009,this.add(r),r})}dispose(){var t,e,n;this.unRegistryEvent(),this.clear(),(t=this.geometry)==null||t.dispose(),(e=this.material)==null||e.dispose(),(n=this.texture)==null||n.dispose(),this.navigation=null}constructor(t,e){super(),this.navigation=t,this.mesh=null,this.geometry=null,this.material=null,this.texture=null,this.config=y3,this.points=[],this.basicRepeat=1,this.prevCameraZoom=0,this.onControlChange=()=>{let n=this.navigation.bmap.context.camera.zoom;n!==this.prevCameraZoom&&(this.prevCameraZoom=n,this.changeRepeat())},this.onUpdate=()=>{this.texture},this.onResize=()=>{if(this.material){let{width:n,height:r}=this.navigation.bmap.context.clientSize;this.material.resolution.set(n,r)}},this.config=Object.assign({},y3,e),this.registryEvent(),this.prevCameraZoom=this.navigation.bmap.context.camera.zoom}};import{Tween as Vc,Easing as rG}from"@tweenjs/tween.js";import{Vector2 as iG,Vector3 as ce}from"three";var UQ=d(Ys(),1),FQ=d(A(),1),BQ=d(D(),1);import{EventDispatcher as Xk,Vector2 as jk}from"three";import{Tween as Yk}from"@tweenjs/tween.js";import{throttle as Kk}from"lodash";import{booleanPointInPolygon as Zk,point as $k,polygon as Jk}from"@turf/turf";var Qk={offsetDistance:15,offsetToResetTime:3e3,directionEmitThreshold:5,simulationSpeed:1},Ta=class extends Xk{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)}setRoadData(t){this.roadData=t}resetStatus(t){this.offset=!1,this.reset=!1,this.routeIndex=0,this.pointIndex=0,this.resetTimer&&(this.timer.clearTimeout(this.resetTimer),this.resetTimer=null),t.length&&(this.position=t[0].points[0])}emitNavigationStatus(){let t=this.getNavigationInfo();t&&this.dispatchEvent({type:"navigation-info",info:t})}adsorb(t,e){let{curRoutePathPoints:n,position:r,curRoutePath:o,paths:s,routeIndex:a}=this;if(!n.length)return null;let u=n,l=this.paths[this.routeIndex].floor,c=this.getCurRouteRemainDistance();if(r){let y=Oe(n,r);u=u.slice(y+1),u.unshift(r)}let h=[{floor:o==null?void 0:o.floor,points:u},...s.slice(a+1)],{distance:p,closestPoint:f,index:m,i:v}=h.reduce((y,E,M)=>{if(E.floor!==t)return y;let{distance:w,closestPoint:P,index:R}=E.points.reduce((U,T,I,j)=>{if(!j[I+1])return S({},U,{distance:U.distance===1/0?z(T,e):U.distance});let{distance:Y,closestPoint:G}=mv(e,T,j[I+1]);if(l===t){let ht=[e,...j.slice(I+1)],yt=Ct(ht);if(c-yt>10)return U}return Y<U.distance?{distance:Y,closestPoint:G,index:I}:U},{distance:1/0,closestPoint:E.points[0],index:0});return w<y.distance?{distance:w,closestPoint:P,index:M,i:R}:y},{distance:1/0,closestPoint:u[0],index:0,i:0});return{distance:p,closestPoint:f,routeIndex:m+a,pointIndex:m===0?v+this.pointIndex:v}}toPosition(t,e){let n=this.adsorb(t,e);if(!n)return;let{distance:r,closestPoint:o,routeIndex:s,pointIndex:a}=n;r>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=s,this.pointIndex=a,this.position=o,this.emitNavigationStatus()}startSimulation(){this.resetStatus(this.paths),this.emitNavigationStatus(),this.startCurRouteSimulation()}pause(){var t;this.tweenUtil.clear(),(t=this.throttleUpdatePosition)==null||t.cancel(),this.paused=!0}continue(){this.paused=!1,this.startCurRouteSimulation()}startCurRouteSimulation(){return x(this,null,function*(){let{curRoutePath:t}=this;if(!t)return;this.simulationTween&&this.tweenUtil.remove(this.simulationTween);let e=[];return new Promise(n=>{let r=[this.position,...this.curRoutePathPoints.slice(this.pointIndex+1)],o=this.getCurRouteRemainDistance(),s=o/this.options.simulationSpeed,a=this.throttleUpdatePosition=Kk(l=>{let c=tr(r,l.distance);c&&(e.push({floor:t.floor,pos:c}),this.toPosition(t.floor,c))},100),u=this.simulationTween=new Yk({distance:0},this.tweenUtil.group).to({distance:o},s*1e3).onUpdate(a).onComplete(()=>{this.tweenUtil.remove(u),a.flush(),a.cancel(),this.routeIndex+1<this.paths.length?(this.routeIndex++,this.position=this.paths[this.routeIndex].points[0],this.pointIndex=0,setTimeout(()=>{n(this.startCurRouteSimulation())},3e3)):(n(!0),console.log(e,this.routeIndex,this.paths))}).start()})})}changeSimulationSpeed(t){this.options.simulationSpeed=t,this.paused||this.startCurRouteSimulation()}getCurRouteRemainDistance(){let{curRoutePathPoints:t,pointIndex:e,position:n}=this;if(!t.length)return 0;let r=[n,...t.slice(e+1)];return Ct(r)}getCurRouteToStartDistance(){let{curRoutePathPoints:t,pointIndex:e,position:n}=this;if(!t.length)return 0;let r=[...t.slice(0,e+1),n];return Ct(r)}getRemainDistance(){let t=this.getCurRouteRemainDistance();return{total:this.paths.slice(this.routeIndex+1).reduce((r,o)=>r+o.distance,0)+t,curRoute:t}}getNextDirDistance(){var t;if(!this.position)return null;let{pointIndex:e,curRoutePathPoints:n,position:r,curRoutePath:o}=this,s=e,a=Ue.FRONT,u=(o==null||(t=o.pointInfos[s])==null?void 0:t.crossName)||"",l=0,c=0,h=0;for(;a===Ue.FRONT&&s<=n.length;){let m=n[s],v=n[s+1],y=n[s+2];if(!m||!v)a=Ue.END;else if(l+=z(m,v),!y)a=Ue.END;else{a=x0(m,v,y),c=Bo(m,v,y),h=(new jk(y[0]-v[0],y[1]-v[1]).angle()*180/Math.PI-90+360)%360;var p;u=(p=o==null?void 0:o.pointInfos[s+1].crossName)!=null?p:"",s+=1}}if(n[s]&&(l=z(r,n[s])),a===Ue.END&&l<=this.options.directionEmitThreshold)return{dir:a,distance:l,crossName:u,angle:c,nextAngle:h};let f=this.getCurRouteToStartDistance();return e===0&&f<=5?{dir:Ue.START,distance:l,crossName:u,angle:c,nextAngle:h}:(l>=this.options.directionEmitThreshold&&(a=Ue.FRONT),{dir:a,distance:l,crossName:u,angle:c,nextAngle:h})}getCurPointAreaInfo(){let t=this.roadData.find(e=>e.floor===this.paths[this.routeIndex].floor);if(t){let e=(t.areas||[]).find(n=>{let r=Jk(n.cds),o=$k(this.position);return Zk(o,r)});if(e)return e}return{imageUrl:null}}getNavigationInfo(){let{total:t,curRoute:e}=this.getRemainDistance(),n=this.getNextDirDistance();if(!n)return null;let{dir:r,distance:o,crossName:s,angle:a,nextAngle:u}=n;e<=10&&(r=Ue.END);let{imageUrl:l}=this.getCurPointAreaInfo();return{distance:t,curRouteDistance:e,nextDirDistance:o,dir:r,angle:a,nextAngle:u,pos:this.position,routeIndex:this.routeIndex,crossName:s,offset:this.offset,reset:this.reset,imageUrl:l}}dispose(){this.timer.dispose(),this.unRegistryEvent(),this.tweenUtil.clear(),this.navigation=null}constructor(t,e,n){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 W,this.resetTimer=null,this.tweenUtil=new an,this.paused=!1,this.onAddPaths=r=>{let{paths:o}=r;this.paths=o,this.resetStatus(o),this.simulationTween&&this.startSimulation()},this.onUpdate=()=>{this.tweenUtil.update()},this.options=Object.assign({},Qk,e),this.roadData=n,this.registryEvent()}};var XQ=d(ys(),1),jQ=d(hi(),1),YQ=d(pi(),1),KQ=d(di(),1),ZQ=d(gi(),1),$Q=d(mi(),1),JQ=d(_i(),1),QQ=d(yi(),1),ttt=d(xi(),1),ett=d(Ei(),1),ntt=d(Si(),1),rtt=d(bi(),1),itt=d(Mi(),1),ott=d(Ti(),1),stt=d(Ai(),1),att=d(Ol(),1),utt=d(A(),1);import{DataTexture as tG,LinearFilter as x3,RGBAFormat as E3,Sprite as eG,SpriteMaterial as nG}from"three";var qe=class i extends nt{addDebug(){i.canvas.style.cssText=`
|
|
3913
|
+
`);var Un=class extends _3{constructor(t){super({uniforms:Object.assign({},Uk.fog,{lineWidth:{value:1},map:{value:null},useMap:{value:0},alphaMap:{value:null},useAlphaMap:{value:0},color:{value:new Fk(16777215)},opacity:{value:1},resolution:{value:new m3(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 m3(1,1)},thresholdRatio:{value:0},transparent:{value:!0},depthTest:{vale:!1},depthWrite:{value:!1}}),vertexShader:It.meshline_vert,fragmentShader:It.meshline_frag}),this.isMeshLineMaterial=!0,this.type="MeshLineMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get:function(){return this.uniforms.lineWidth.value},set:function(e){this.uniforms.lineWidth.value=e}},map:{enumerable:!0,get:function(){return this.uniforms.map.value},set:function(e){this.uniforms.map.value=e}},useMap:{enumerable:!0,get:function(){return this.uniforms.useMap.value},set:function(e){this.uniforms.useMap.value=e}},alphaMap:{enumerable:!0,get:function(){return this.uniforms.alphaMap.value},set:function(e){this.uniforms.alphaMap.value=e}},useAlphaMap:{enumerable:!0,get:function(){return this.uniforms.useAlphaMap.value},set:function(e){this.uniforms.useAlphaMap.value=e}},color:{enumerable:!0,get:function(){return this.uniforms.color.value},set:function(e){this.uniforms.color.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}},sizeAttenuation:{enumerable:!0,get:function(){return this.uniforms.sizeAttenuation.value},set:function(e){this.uniforms.sizeAttenuation.value=e}},dashArray:{enumerable:!0,get:function(){return this.uniforms.dashArray.value},set:function(e){this.uniforms.dashArray.value=e,this.useDash=e!==0?1:0}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(e){this.uniforms.dashOffset.value=e}},dashRatio:{enumerable:!0,get:function(){return this.uniforms.dashRatio.value},set:function(e){this.uniforms.dashRatio.value=e}},useDash:{enumerable:!0,get:function(){return this.uniforms.useDash.value},set:function(e){this.uniforms.useDash.value=e}},visibility:{enumerable:!0,get:function(){return this.uniforms.visibility.value},set:function(e){this.uniforms.visibility.value=e}},alphaTest:{enumerable:!0,get:function(){return this.uniforms.alphaTest.value},set:function(e){this.uniforms.alphaTest.value=e}},repeat:{enumerable:!0,get:function(){return this.uniforms.repeat.value},set:function(e){this.uniforms.repeat.value.copy(e)}},thresholdRatio:{enumerable:!0,get:function(){return this.uniforms.thresholdRatio.value},set:function(e){this.uniforms.thresholdRatio.value=e}}}),this.setValues(t)}};Un.prototype.copy=function(i){return _3.prototype.copy.call(this,i),this.lineWidth=i.lineWidth,this.map=i.map,this.useMap=i.useMap,this.alphaMap=i.alphaMap,this.useAlphaMap=i.useAlphaMap,this.color.copy(i.color),this.opacity=i.opacity,this.resolution.copy(i.resolution),this.sizeAttenuation=i.sizeAttenuation,this.dashArray.copy(i.dashArray),this.dashOffset.copy(i.dashOffset),this.dashRatio.copy(i.dashRatio),this.useDash=i.useDash,this.visibility=i.visibility,this.alphaTest=i.alphaTest,this.repeat.copy(i.repeat),this};var y3={texture_url:Gs,lineWidth:10,color:16777215},wa=class extends kk{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)}getRepeat(){let{points:t,navigation:{bmap:{context:{camera:e,clientSize:{width:n,height:r}}}}}=this,o=t.map(a=>{let[u,l]=a;return C(new Hk(u,l,0),e,n,r)}).map(a=>{let{x:u,y:l}=a;return[u,l]});return Ct(o)/32}changeRepeat(){if(!this.material)return;let t=this.getRepeat();this.material.repeat=new Gc(t,1)}loadTexture(t){return new Promise((e,n)=>{new Gk().load(t,e,void 0,n)})}transformPoints(t){let e=[];for(let n=0;n<t.length;n++)e.push(...t[n],0);return e}updatePoints(t){this.points=t,this.changeRepeat();let e=this.transformPoints(t);this.geometry&&this.geometry.setPoints(e)}movePath(t){this.material&&(this.material.thresholdRatio=t)}create(t){return x(this,null,function*(){let e=this.geometry=new _t;if(this.updatePoints(t),!this.texture){let o=this.texture=yield this.loadTexture(this.config.texture_url);o.wrapS=o.wrapT=qk}let n=this.material=new Un({useMap:!0,color:new Vk(this.config.color),transparent:!0,resolution:new Gc(this.navigation.bmap.context.clientSize.width,this.navigation.bmap.context.clientSize.height),depthTest:!1,sizeAttenuation:!1,lineWidth:this.config.lineWidth*2,map:this.texture,blending:Wk,repeat:new Gc(this.getRepeat(),1)}),r=this.mesh=new zk(e,n);return r.renderOrder=99999,this.add(r),r})}dispose(){var t,e,n;this.unRegistryEvent(),this.clear(),(t=this.geometry)==null||t.dispose(),(e=this.material)==null||e.dispose(),(n=this.texture)==null||n.dispose(),this.navigation=null}constructor(t,e){super(),this.navigation=t,this.mesh=null,this.geometry=null,this.material=null,this.texture=null,this.config=y3,this.points=[],this.basicRepeat=1,this.prevCameraZoom=0,this.onControlChange=()=>{let n=this.navigation.bmap.context.camera.zoom;n!==this.prevCameraZoom&&(this.prevCameraZoom=n,this.changeRepeat())},this.onUpdate=()=>{this.texture},this.onResize=()=>{if(this.material){let{width:n,height:r}=this.navigation.bmap.context.clientSize;this.material.resolution.set(n,r)}},this.config=Object.assign({},y3,e),this.registryEvent(),this.prevCameraZoom=this.navigation.bmap.context.camera.zoom}};import{Tween as Vc,Easing as rG}from"@tweenjs/tween.js";import{Vector2 as iG,Vector3 as ce}from"three";var UQ=d(Ys(),1),FQ=d(A(),1),BQ=d(D(),1);import{EventDispatcher as Xk,Vector2 as jk}from"three";import{Tween as Yk}from"@tweenjs/tween.js";import{throttle as Kk}from"lodash";import{booleanPointInPolygon as Zk,point as $k,polygon as Jk}from"@turf/turf";var Qk={offsetDistance:15,offsetToResetTime:3e3,directionEmitThreshold:5,simulationSpeed:1},Ta=class extends Xk{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)}setRoadData(t){this.roadData=t}resetStatus(t){this.offset=!1,this.reset=!1,this.routeIndex=0,this.pointIndex=0,this.resetTimer&&(this.timer.clearTimeout(this.resetTimer),this.resetTimer=null),t.length&&(this.position=t[0].points[0])}emitNavigationStatus(){let t=this.getNavigationInfo();t&&this.dispatchEvent({type:"navigation-info",info:t})}adsorb(t,e){let{curRoutePathPoints:n,position:r,curRoutePath:o,paths:s,routeIndex:a}=this;if(!n.length)return null;let u=n,l=this.paths[this.routeIndex].floor,c=this.getCurRouteRemainDistance();if(r){let y=Oe(n,r);u=u.slice(y+1),u.unshift(r)}let h=[{floor:o==null?void 0:o.floor,points:u},...s.slice(a+1)],{distance:p,closestPoint:f,index:m,i:v}=h.reduce((y,E,M)=>{if(E.floor!==t)return y;let{distance:w,closestPoint:P,index:R}=E.points.reduce((U,T,I,j)=>{if(!j[I+1])return S({},U,{distance:U.distance===1/0?z(T,e):U.distance});let{distance:Y,closestPoint:G}=mv(e,T,j[I+1]);if(l===t){let ht=[e,...j.slice(I+1)],yt=Ct(ht);if(c-yt>10)return U}return Y<U.distance?{distance:Y,closestPoint:G,index:I}:U},{distance:1/0,closestPoint:E.points[0],index:0});return w<y.distance?{distance:w,closestPoint:P,index:M,i:R}:y},{distance:1/0,closestPoint:u[0],index:0,i:0});return{distance:p,closestPoint:f,routeIndex:m+a,pointIndex:m===0?v+this.pointIndex:v}}toPosition(t,e){let n=this.adsorb(t,e);if(!n)return;let{distance:r,closestPoint:o,routeIndex:s,pointIndex:a}=n;r>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=s,this.pointIndex=a,this.position=o,this.emitNavigationStatus()}startSimulation(){this.resetStatus(this.paths),this.emitNavigationStatus(),this.startCurRouteSimulation()}pause(){var t;this.tweenUtil.clear(),(t=this.throttleUpdatePosition)==null||t.cancel(),this.paused=!0}continue(){this.paused=!1,this.startCurRouteSimulation()}startCurRouteSimulation(){return x(this,null,function*(){let{curRoutePath:t}=this;if(!t)return;this.simulationTween&&this.tweenUtil.remove(this.simulationTween);let e=[];return new Promise(n=>{let r=[this.position,...this.curRoutePathPoints.slice(this.pointIndex+1)],o=this.getCurRouteRemainDistance(),s=o/this.options.simulationSpeed,a=this.throttleUpdatePosition=Kk(l=>{let c=tr(r,l.distance);c&&(e.push({floor:t.floor,pos:c}),this.toPosition(t.floor,c))},100),u=this.simulationTween=new Yk({distance:0},this.tweenUtil.group).to({distance:o},s*1e3).onUpdate(a).onComplete(()=>{this.tweenUtil.remove(u),a.flush(),a.cancel(),this.routeIndex+1<this.paths.length?(this.routeIndex++,this.position=this.paths[this.routeIndex].points[0],this.pointIndex=0,setTimeout(()=>{n(this.startCurRouteSimulation())},3e3)):(n(!0),console.log(e,this.routeIndex,this.paths))}).start()})})}changeSimulationSpeed(t){this.options.simulationSpeed=t,this.paused||this.startCurRouteSimulation()}getCurRouteRemainDistance(){let{curRoutePathPoints:t,pointIndex:e,position:n}=this;if(!t.length)return 0;let r=[n,...t.slice(e+1)];return Ct(r)}getCurRouteToStartDistance(){let{curRoutePathPoints:t,pointIndex:e,position:n}=this;if(!t.length)return 0;let r=[...t.slice(0,e+1),n];return Ct(r)}getRemainDistance(){let t=this.getCurRouteRemainDistance();return{total:this.paths.slice(this.routeIndex+1).reduce((r,o)=>r+o.distance,0)+t,curRoute:t}}getNextDirDistance(){var t;if(!this.position)return null;let{pointIndex:e,curRoutePathPoints:n,position:r,curRoutePath:o}=this,s=e,a=Ue.FRONT,u=(o==null||(t=o.pointInfos[s])==null?void 0:t.crossName)||"",l=0,c=0,h=0;for(;a===Ue.FRONT&&s<=n.length;){let m=n[s],v=n[s+1],y=n[s+2];if(!m||!v)a=Ue.END;else if(l+=z(m,v),!y)a=Ue.END;else{a=x0(m,v,y),c=Bo(m,v,y),h=(new jk(y[0]-v[0],y[1]-v[1]).angle()*180/Math.PI-90+360)%360;var p;u=(p=o==null?void 0:o.pointInfos[s+1].crossName)!=null?p:"",s+=1}}if(n[s]&&(l=z(r,n[s])),a===Ue.END&&l<=this.options.directionEmitThreshold)return{dir:a,distance:l,crossName:u,angle:c,nextAngle:h};let f=this.getCurRouteToStartDistance();return e===0&&f<=5?{dir:Ue.START,distance:l,crossName:u,angle:c,nextAngle:h}:(l>=this.options.directionEmitThreshold&&(a=Ue.FRONT),{dir:a,distance:l,crossName:u,angle:c,nextAngle:h})}getCurPointAreaInfo(){let t=this.roadData.find(e=>e.floor===this.paths[this.routeIndex].floor);if(t){let e=(t.areas||[]).find(n=>{let r=Jk(n.cds),o=$k(this.position);return Zk(o,r)});if(e)return e}return{imageUrl:null}}getNavigationInfo(){let{total:t,curRoute:e}=this.getRemainDistance(),n=this.getNextDirDistance();if(!n)return null;let{dir:r,distance:o,crossName:s,angle:a,nextAngle:u}=n;e<=10&&(r=Ue.END);let{imageUrl:l}=this.getCurPointAreaInfo();return{distance:t,curRouteDistance:e,nextDirDistance:o,dir:r,angle:a,nextAngle:u,pos:this.position,routeIndex:this.routeIndex,crossName:s,offset:this.offset,reset:this.reset,imageUrl:l}}dispose(){this.timer.dispose(),this.unRegistryEvent(),this.tweenUtil.clear(),this.navigation=null}constructor(t,e,n){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 W,this.resetTimer=null,this.tweenUtil=new an,this.paused=!1,this.onAddPaths=r=>{let{paths:o}=r;this.paths=o,this.resetStatus(o),this.simulationTween&&this.startSimulation()},this.onUpdate=()=>{this.tweenUtil.update()},this.options=Object.assign({},Qk,e),this.roadData=n,this.registryEvent()}};var XQ=d(ys(),1),jQ=d(hi(),1),YQ=d(pi(),1),KQ=d(di(),1),ZQ=d(gi(),1),$Q=d(mi(),1),JQ=d(_i(),1),QQ=d(yi(),1),ttt=d(xi(),1),ett=d(Ei(),1),ntt=d(Si(),1),rtt=d(bi(),1),itt=d(Mi(),1),ott=d(Ti(),1),stt=d(Ai(),1),att=d(Ol(),1),utt=d(A(),1);import{DataTexture as tG,LinearFilter as x3,RGBAFormat as E3,Sprite as eG,SpriteMaterial as nG}from"three";var qe=class i extends nt{addDebug(){i.canvas.style.cssText=`
|
|
3914
3914
|
position: fixed;
|
|
3915
3915
|
top: 0;
|
|
3916
3916
|
left: 0;
|
|
@@ -61,6 +61,7 @@ export declare class AibeeLoader extends EventDispatcher<AibeeLoaderEventMap> {
|
|
|
61
61
|
options: AibeeLoaderOptions;
|
|
62
62
|
locale: Locale;
|
|
63
63
|
placeConfig: PlaceConfig;
|
|
64
|
+
getFloorDataPromise: Map<string, Promise<AibeeFloorData>>;
|
|
64
65
|
constructor(bmap: BMap, options?: Partial<AibeeLoaderOptions>);
|
|
65
66
|
initDb(): Promise<void>;
|
|
66
67
|
load(data: string | AibeeFloorInfo[], placeConfig?: PlaceConfig): Promise<void>;
|
|
@@ -46,6 +46,8 @@ export class AibeeLoader extends EventDispatcher {
|
|
|
46
46
|
this.placeConfig = _extends({}, this.placeConfig, JSON.parse(res.data.config || "{}"));
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
+
// 在空闲时间获取其他数据
|
|
50
|
+
this.getOtherDataByFreeTime();
|
|
49
51
|
}
|
|
50
52
|
setCacheData(storeName, key, data) {
|
|
51
53
|
return this.initDbPromise.then(()=>set(storeName, "" + key, data, this.db));
|
|
@@ -82,15 +84,20 @@ export class AibeeLoader extends EventDispatcher {
|
|
|
82
84
|
}
|
|
83
85
|
}
|
|
84
86
|
async getFloorJsonDataByFloorInfo(floorInfo) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
if (this.getFloorDataPromise.has(floorInfo.floor)) {
|
|
88
|
+
return this.getFloorDataPromise.get(floorInfo.floor);
|
|
89
|
+
}
|
|
90
|
+
const promise = new Promise(async (resolve)=>{
|
|
91
|
+
const cacheKey = this.getFloorCacheKey(floorInfo);
|
|
92
|
+
// 直接请求json数据
|
|
93
|
+
const res1 = await fetch(floorInfo.map_url).then((res)=>res.json());
|
|
94
|
+
res1.floor = floorInfo.floor;
|
|
95
|
+
this.setCacheData(MapDataStoreName, cacheKey, res1);
|
|
96
|
+
this.setCacheData(MapVersionStoreName, cacheKey, floorInfo.version_id);
|
|
97
|
+
resolve(res1);
|
|
98
|
+
});
|
|
99
|
+
this.getFloorDataPromise.set(floorInfo.floor, promise);
|
|
100
|
+
return promise;
|
|
94
101
|
}
|
|
95
102
|
async getFloorJsonData(floor) {
|
|
96
103
|
const floorInfo = this.floors.find((item)=>item.floor === floor);
|
|
@@ -102,7 +109,6 @@ export class AibeeLoader extends EventDispatcher {
|
|
|
102
109
|
// const cacheVersion = await this.getCacheData(MapVersionStoreName, cacheKey);
|
|
103
110
|
// if (cacheVersion === floorInfo.version_id) {
|
|
104
111
|
const res = await this.getCacheData(MapDataStoreName, cacheKey);
|
|
105
|
-
console.log("cacheKey", cacheKey, res);
|
|
106
112
|
if (res) {
|
|
107
113
|
return res;
|
|
108
114
|
}
|
|
@@ -170,16 +176,10 @@ export class AibeeLoader extends EventDispatcher {
|
|
|
170
176
|
}
|
|
171
177
|
// 空闲时间请求其他数据
|
|
172
178
|
async getOtherDataByFreeTime() {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
// console.log('执行任务...', deadline.timeRemaining());
|
|
178
|
-
// // TODO 看一下还有哪些楼层没有获取最新的数据
|
|
179
|
-
// // 模拟一些工作
|
|
180
|
-
// // fetchData(); // 在空闲时间请求数据
|
|
181
|
-
// }
|
|
182
|
-
// })
|
|
179
|
+
for(let i = 0; i < this.floors.length; i++){
|
|
180
|
+
const floorInfo = this.floors[i];
|
|
181
|
+
this.getFloorJsonData(floorInfo.floor);
|
|
182
|
+
}
|
|
183
183
|
}
|
|
184
184
|
// 获取多楼层数据
|
|
185
185
|
async getMulFloorsData(floors) {
|
|
@@ -397,13 +397,14 @@ export class AibeeLoader extends EventDispatcher {
|
|
|
397
397
|
}
|
|
398
398
|
dispose() {
|
|
399
399
|
this.clear();
|
|
400
|
+
this.getFloorDataPromise.clear();
|
|
400
401
|
}
|
|
401
402
|
constructor(bmap, options = {}){
|
|
402
403
|
super(), this.bmap = bmap, this.floors = [], this.initDbPromise = Promise.resolve(), this.db = null, this.taskQueue = new TaskQueue(), this.locale = "zh-cn", this.placeConfig = {
|
|
403
404
|
backgroundColor: '#f1f7f6',
|
|
404
405
|
showFacilityName: true,
|
|
405
406
|
showStoreName: true
|
|
406
|
-
};
|
|
407
|
+
}, this.getFloorDataPromise = new Map();
|
|
407
408
|
this.options = _extends({}, defaultAibeeLoaderOptions, options);
|
|
408
409
|
this.initDbPromise = this.initDb();
|
|
409
410
|
}
|