@aibee/crc-bmap 0.0.91 → 0.0.92
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/bmap.cjs.min.js +2 -2
- package/lib/bmap.cjs.min.js.map +3 -3
- package/lib/bmap.esm.js +195 -15
- package/lib/bmap.esm.js.map +3 -3
- package/lib/bmap.esm.min.js +2 -2
- package/lib/bmap.esm.min.js.map +3 -3
- package/lib/bmap.min.js +2 -2
- package/lib/bmap.min.js.map +3 -3
- package/lib/src/elements/overlay.d.ts +26 -0
- package/package.json +1 -1
package/lib/bmap.cjs.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var vt=Object.defineProperty,Ee=Object.defineProperties,Me=Object.getOwnPropertyDescriptor,Ce=Object.getOwnPropertyDescriptors,Le=Object.getOwnPropertyNames,te=Object.getOwnPropertySymbols;var ee=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;var C=Math.pow,zt=(r,n,t)=>n in r?vt(r,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[n]=t,E=(r,n)=>{for(var t in n||(n={}))ee.call(n,t)&&zt(r,t,n[t]);if(te)for(var t of te(n))Ge.call(n,t)&&zt(r,t,n[t]);return r},yt=(r,n)=>Ee(r,Ce(n));var Se=(r,n)=>{for(var t in n)vt(r,t,{get:n[t],enumerable:!0})},De=(r,n,t,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of Le(n))!ee.call(r,i)&&i!==t&&vt(r,i,{get:()=>n[i],enumerable:!(e=Me(n,i))||e.enumerable});return r};var Oe=r=>De(vt({},"__esModule",{value:!0}),r);var s=(r,n,t)=>(zt(r,typeof n!="symbol"?n+"":n,t),t);var B=(r,n,t)=>new Promise((e,i)=>{var o=h=>{try{c(t.next(h))}catch(l){i(l)}},a=h=>{try{c(t.throw(h))}catch(l){i(l)}},c=h=>h.done?e(h.value):Promise.resolve(h.value).then(o,a);c((t=t.apply(r,n)).next())});var Ve={};Se(Ve,{BMap:()=>Yt,BaseSvg:()=>k,Context:()=>ft,Floor:()=>pt,Graphic:()=>z,GraphicLayer:()=>at,HeatmapElement:()=>ht,HoverHelper:()=>gt,Layer:()=>j,MapTypePolar:()=>ye,Model:()=>lt,Overlay:()=>st,Poi:()=>Q,PoiLayer:()=>ct,SelectBox:()=>Xt,Selection:()=>ut,Shadow:()=>rt,SvgLine:()=>mt,SvgPolygon:()=>dt,Timer:()=>H,addAlphaToHexColor:()=>Te,clearCanvas:()=>It,clearTextTexture:()=>$t,createCanvas:()=>ne,createCircle:()=>N,createLine:()=>it,createRect:()=>U,createSvg:()=>Ut,createSvgElement:()=>et,darkenColor:()=>ot,defaultConfig:()=>ge,dispose:()=>F,disposeLoader:()=>Zt,getCenter:()=>wt,getConfig:()=>Wt,getLongestSideDir:()=>Ae,getTextureByText:()=>ze,hasChinese:()=>_t,initCamera:()=>kt,initCanvas:()=>oe,initControl:()=>Ft,initDirectionalLight:()=>Ht,initLight:()=>Tt,initRenderer:()=>Bt,initScene:()=>At,initShape:()=>Rt,isContain:()=>J,isControl:()=>Mt,isMac:()=>nt,loadModel:()=>jt,proxyOptions:()=>tt,setCirclePosition:()=>_,setLineStartEnd:()=>D,setRectPosition:()=>O,sleepOnePromise:()=>Kt,sleepOneRf:()=>Be,strToNumber:()=>ke,timeoutPromise:()=>q,vector3ToDevice:()=>y});module.exports=Oe(Ve);var fe=require("three");var H=class{constructor(){s(this,"tasks",{requestAnimation:new Set,timeout:new Set,interval:new Set})}requestAnimationFrame(n){let t=window.requestAnimationFrame(()=>{this.tasks.requestAnimation.delete(t),n()});return this.tasks.requestAnimation.add(t),t}cancelAnimationFrame(n){this.tasks.requestAnimation.delete(n),window.cancelAnimationFrame(n)}setTimeout(n,t){let e=window.setTimeout(()=>{this.tasks.timeout.delete(e),n()},t);return this.tasks.timeout.add(e),e}clearTimeout(n){this.tasks.timeout.delete(n),window.clearTimeout(n)}setInterval(n,t){let e=window.setInterval(()=>{this.tasks.interval.delete(e),n()},t);return this.tasks.interval.add(e),e}clearInterval(n){this.tasks.interval.delete(n),window.clearInterval(n)}dispose(){this.tasks.requestAnimation.forEach(n=>{window.cancelAnimationFrame(n)}),this.tasks.requestAnimation.clear(),this.tasks.timeout.forEach(n=>{window.clearTimeout(n)}),this.tasks.timeout.clear(),this.tasks.interval.forEach(n=>{window.clearInterval(n)}),this.tasks.interval.clear()}};var P=require("three"),ie=require("three/examples/jsm/controls/MapControls");function At(){let r=new P.Scene;return r.background=new P.Color(16777215),r}function Bt(){let r=new P.WebGLRenderer({antialias:!0});return r.autoClear=!0,r.setClearAlpha(1),r.setClearColor(16777215),r.setPixelRatio(window.devicePixelRatio),r.shadowMap.enabled=!0,r.shadowMap.autoUpdate=!0,r.shadowMap.type=P.PCFSoftShadowMap,r}function kt(r,n){let t=new P.OrthographicCamera(-r/2,r/2,n/2,-n/2,-1e3,5e3);return t.up.set(0,0,1),t.position.set(0,0,100),t.lookAt(0,0,0),t}function Tt(){let r=new P.Group,n=new P.AmbientLight(16777215,2.6);return r.add(n),r}function Ft(r,n){let t=new ie.MapControls(r,n);return t.enableDamping=!1,t.zoomSpeed=2,t}function Rt(r,n=[]){let t=new P.Shape(r.map(e=>new P.Vector2(...e)));return n.length&&n.forEach(e=>{var i=new P.Path(e.map(o=>new P.Vector2(...o)));t.holes.push(i)}),t}function Ht(r=16777215,n=1){let t=new P.DirectionalLight(r,n);return t.castShadow=!0,t.shadow.radius=8,t.shadow.bias=-.001,t.shadow.mapSize.set(256,256),t.shadow.camera.left=-200,t.shadow.camera.right=200,t.shadow.camera.top=200,t.shadow.camera.bottom=-200,t}function F(r,n){var t;if(n&&r.children&&r.children.length&&r.children.forEach(e=>{F(e,n)}),r.isMesh){let e=r;e.geometry&&e.geometry.dispose(),e.material&&(Array.isArray(e.material)?e.material.forEach(i=>{i.dispose()}):e.material.dispose())}r.isLight&&((t=r.dispose)==null||t.call(r))}function _t(r){return/[\u4E00-\u9FA5]+/g.test(r)}var I=require("three");var xt=new Map;function oe(){let r=document.createElement("canvas");r.width=1024,r.height=64;let n=r.getContext("2d",{willReadFrequently:!0});return n.font="54px sans-serif",n.textBaseline="hanging",n.lineWidth=12,n.fillStyle="rgba(0,0,0,1)",n.strokeStyle="white",{canvas:r,ctx:n}}var Vt,$;function ne(){if(!Vt){let{canvas:r,ctx:n}=oe();Vt=r,$=n}}function ze(r){if(xt.has(r))return xt.get(r);ne(),$.clearRect(0,0,1024,64);let n=_t(r)?4:8;$.strokeText(r,2,n),$.fillText(r,2,n);let t=Math.ceil($.measureText(r).width);t=t%2===0?t:t+1,t+=2;let e=$.getImageData(0,0,t,64),i=new I.DataTexture(Uint8Array.from(e.data),t,64,I.RGBAFormat);return i.flipY=!0,i.minFilter=I.LinearFilter,i.magFilter=I.LinearFilter,xt.set(r,i),i}function $t(){xt.clear()}function It(){$=null,Vt=null}var bt=require("three"),Y=require("@turf/turf");function y(r,n,t,e){let i=r.clone().project(n),o=t/2,a=e/2,c=Math.round(i.x*o+o),h=Math.round(-i.y*a+a);return{x:c,y:h}}function wt(r){let n=(0,Y.featureCollection)(r.map(e=>(0,Y.point)(e)));return(0,Y.center)(n).geometry.coordinates}function J(r,n,t){return r.x>=n.x&&r.x<=t.x&&r.y>=n.y&&r.y<=t.y}function Ae(r){let n=0,t=new bt.Vector3;for(let e=1;e<r.length;e++){let i=new bt.Vector3(r[e-1][0],r[e-1][1],0),o=new bt.Vector3(r[e][0],r[e][1],0),a=o.distanceTo(i);a>n&&(n=a,t=o.clone().sub(i).normalize())}return t}function tt(r,n){return new Proxy(r,{get:(t,e,i)=>Reflect.get(t,e,i),set:(t,e,i,o)=>{let a=Reflect.get(t,e,o),c=Reflect.set(t,e,i,o);return a!==i&&n.dispatchEvent({type:`change-${e}`,value:i}),c}})}function q(r,n){return Promise.race([r,new Promise((t,e)=>{setTimeout(()=>e(new Error("Promise timeout")),n)})])}function et(r){return document.createElementNS("http://www.w3.org/2000/svg",r)}function Ut(r,n){let t=et("svg");return t.setAttribute("width",r),t.setAttribute("height",n),t.style.cssText="position: absolute; left: 0; top: 0; pointer-events: none;",t}function N(r="2",n){let t=et("circle");return t.setAttribute("r",r),t.setAttribute("fill",n),t}function it(r){let n=et("line");return n.setAttribute("stroke",r),n}function U(r,n){let t=et("rect");return t.setAttribute("stroke",r),t.setAttribute("fill",n),t}function _(r,n,t){r.setAttribute("cx",`${n}`),r.setAttribute("cy",`${t}`)}function D(r,n,t){n&&(r.setAttribute("x1",`${n.x}`),r.setAttribute("y1",`${n.y}`)),t&&(r.setAttribute("x2",`${t.x}`),r.setAttribute("y2",`${t.y}`))}function O(r,n,t,e,i){r.setAttribute("x",`${n}`),r.setAttribute("y",`${t}`),r.setAttribute("width",`${e}`),r.setAttribute("height",`${i}`)}function Kt(){return Promise.resolve()}function Be(){return new Promise(r=>{requestAnimationFrame(r)})}function ke(r){return parseInt(r.replace("#","0x"),16)}function Te(r,n){let t=parseInt(r.substring(1,3),16),e=parseInt(r.substring(3,5),16),i=parseInt(r.substring(5,7),16),o=Math.round(t*n),a=Math.round(e*n),c=Math.round(i*n);return`#${(1<<24|o<<16|a<<8|c).toString(16).slice(1)}`}function ot(r,n=.85){let t,e,i;if(r.startsWith("#"))t=parseInt(r.substring(1,3),16),e=parseInt(r.substring(3,5),16),i=parseInt(r.substring(5,7),16);else{let a=r.slice(4,-1).split(",");t=parseInt(a[0].trim()),e=parseInt(a[1].trim()),i=parseInt(a[2].trim())}return t=Math.min(Math.floor(t*n),255),e=Math.min(Math.floor(e*n),255),i=Math.min(Math.floor(i*n),255),"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)}var re=require("three/examples/jsm/loaders/GLTFLoader");function Fe(){return new re.GLTFLoader}var Pt=null,Et=new Map;function jt(r){if(Et.has(r)){let t=Et.get(r).then(e=>(e.scene=e.scene.clone(),e))}Pt||(Pt=Fe());let n=new Promise((t,e)=>{Pt.load(r,i=>{t(i)},void 0,e)});return Et.set(r,n),n.then(t=>(t.scene=t.scene.clone(),t))}function Zt(){Pt=null,Et.clear()}var nt=navigator.userAgent.toUpperCase().indexOf("MAC")>=0;function Mt(r){return nt?r==="Meta":r==="Control"}var x=require("three"),W=require("@tweenjs/tween.js");var pe=require("three");var f=require("three");var Re={id:"",height:.1,airHeight:0,area:0,group:"",fillColor:"#EFF4FB",strokeColor:"#ffffff",fillOpacity:1,strokeOpacity:1,strokeWidth:1,doors:[],locked:!1,visible:!0,geometry:{type:"polygon",cds:[],coords:[],curveCpt:[],curveIndex:[]},layerType:"",zIndex:0,stroke:!0,deltaHeight:0,userData:{},gradualColor:[],renderType:"single",colorFactor:.9},z=class extends f.Object3D{constructor(t,e){super();this.context=t;s(this,"geometry");s(this,"material");s(this,"mesh");s(this,"line");s(this,"lineMaterial");s(this,"lineGeometry");s(this,"options");if(this.options=tt(E(E({},Re),e),this),this.options.geometry.type==="point"){let[i,o]=this.options.geometry.coords;return this.position.set(i,o,this.options.height+this.options.airHeight),this}this.init(),this.visible=this.options.visible,this.addEventListener("change-fillColor",({value:i})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-fillOpacity",({value:i})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-height",({value:i})=>{this.dispose(),this.init()}),this.addEventListener("change-strokeColor",({value:i})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-strokeOpacity",({value:i})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-airHeight",({value:i})=>{this.position.z=i}),this.addEventListener("change-visible",({value:i})=>{this.visible=i}),this.addEventListener("change-stroke",({value:i})=>{var o;if(i){if(this.line)return;this.initLineGeometry(),this.initLineMaterial(),this.createBorder()}else this.line&&(this.remove(this.line),(o=this.lineGeometry)==null||o.dispose())}),this.addEventListener("change-renderType",()=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-gradualColor",()=>{this.initMaterial(),this.initMesh()})}getCenter(){if(this.options.geometry.type==="point")return this.position.clone();let t=new f.Vector3,e=new f.Box3;return e.setFromObject(this),e.getCenter(t),t}getSize(){if(this.options.geometry.type==="point")return new f.Vector3(0,0,0);let t=new f.Box3,e=new f.Vector3;return t.setFromObject(this),t.getSize(e),e}getPosition(){let t=this.getCenter();return t.setZ(t.z+this.options.height/2),t}init(){this.geometry=this.initGeometry(),this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options.airHeight+this.options.deltaHeight,this.options.stroke&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())}initGeometry(){let t=Rt(this.options.geometry.coords[0],this.options.geometry.coords.slice(1));return new f.ExtrudeGeometry(t,{steps:1,bevelEnabled:!1,depth:this.options.height,curveSegments:4})}initSingleMaterial(){let t=this.context.materialFactory.createMeshBasicMaterial({color:this.options.fillColor,opacity:this.options.fillOpacity});if(this.options.height<=.1)return this.material=t,t;let e=this.context.materialFactory.createMeshBasicMaterial({color:ot(this.options.fillColor),opacity:this.options.fillOpacity});return this.material=[t,e],[t,e]}getMaxAndMin(t,e){let i=new f.Box3().setFromObject(this),o=t.clone().add(e.clone().multiplyScalar(1e3)),a=new f.Ray(o,e.clone().multiplyScalar(-1)),c=new f.Vector3;a.intersectBox(i,c);let h=t.clone().add(e.clone().multiplyScalar(-1e3)),l=new f.Ray(h,e.clone()),p=new f.Vector3;return l.intersectBox(i,p),{max:p,min:c}}initGradualMaterial(){let{max:t,min:e}=new f.Box3().setFromObject(this),i=t.clone().sub(e),o=Math.max(i.x,i.y,i.z)/2,a=this.getPosition(),c=new f.Vector3(-1,.2,0).normalize(),{max:h,min:l}=this.getMaxAndMin(a,c),p=this.context.materialFactory.createShaderMaterial({gradualColor:this.options.gradualColor,center:this.getPosition(),maxValue:o,opacity:this.options.fillOpacity,direction:new f.Vector3(-1,.2,0),max:h,min:l});if(this.options.height<=.1)return this.material=p,p;let d=this.getCenter(),v=new f.Vector3(-1,.2,1).normalize(),{max:g,min:m}=this.getMaxAndMin(d,v),b=this.context.materialFactory.createShaderMaterial({gradualColor:[ot(this.options.gradualColor[0],this.options.colorFactor),ot(this.options.gradualColor[1],this.options.colorFactor)],center:this.getCenter(),maxValue:o,opacity:this.options.fillOpacity,direction:new f.Vector3(-1,.2,1),max:g,min:m});return this.material=[p,b],[p,b]}initMaterial(){return this.options.renderType==="gradual"?this.initGradualMaterial():this.initSingleMaterial()}initLineMaterial(){let t=this.context.materialFactory.createLineMaterial({color:this.options.strokeColor,opacity:this.options.strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new f.Mesh(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],e=this.options.height+this.options.deltaHeight,{coords:i}=this.options.geometry;for(let o=0;o<i.length;o++){let a=i[o];for(let c=0;c<a.length;c++){let h=a[c],l=c+1===a.length?a[0]:a[c+1];t.push(new f.Vector3(h[0],h[1],e)),t.push(new f.Vector3(l[0],l[1],e))}}return t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),e=new f.BufferGeometry().setFromPoints(t);this.lineGeometry=e}createBorder(){this.line&&this.remove(this.line);let t=new f.LineSegments(this.lineGeometry,this.lineMaterial);return t.position.z=this.options.airHeight+.01,this.line=t,this.add(t),t}raycast(t){if(!this.visible||this.options.geometry.type==="point")return!1;let e=t.intersectObject(this.mesh);if(e[0]){let{point:i,distance:o}=e[0];return{position:i,distance:o}}return!1}dispose(){var t;this.geometry.dispose(),(t=this.line)==null||t.geometry.dispose(),this.clear()}};var A=require("three");var rt=class extends A.Object3D{constructor(){super();s(this,"directionalLight");s(this,"plane");s(this,"basicOpacity",.07);this.directionalLight=this.initLight(),this.initPlane()}initLight(){let t=Ht(16777215,.5);return t.position.set(0,0,100),this.add(t),t}changeLightCamera(t){let e=t.x,i=t.y;this.directionalLight.shadow.camera.left=-e,this.directionalLight.shadow.camera.right=e,this.directionalLight.shadow.camera.top=i,this.directionalLight.shadow.camera.bottom=-i,this.directionalLight.shadow.camera.near=.5,this.directionalLight.shadow.camera.far=Math.max(e,i)}changeLightColor(t){this.directionalLight.color=new A.Color(t)}setPosition(t){this.position.copy(t),this.directionalLight.position.set(-t.x/2,-t.y/2,100)}initPlane(t=1e3,e=1e3){let i=new A.PlaneGeometry(t,e),o=new A.ShadowMaterial({transparent:!0,opacity:0,side:A.DoubleSide}),a=new A.Mesh(i,o);return a.receiveShadow=!0,a.position.z=-10,this.add(a),this.plane=a,a}setTarget(t){this.directionalLight.target=t}transformOpacity(t){return t*this.basicOpacity}setOpacity(t){this.plane.material.opacity=this.transformOpacity(t)}dispose(){F(this,!0)}};var Ct=require("three");var K=require("three");var He={autoUpdate:!0,appendToBody:!1},st=class extends K.EventDispatcher{constructor(t,e={}){super();this.context=t;s(this,"div");s(this,"element");s(this,"position",new K.Vector3);s(this,"clientPos",{x:0,y:0});s(this,"visible",!0);s(this,"options");s(this,"onUpdate",()=>{this.updatePosition()});this.options=E(E({},He),e),this.registryEvent(),this.div=this.initDiv(),this.options.appendToBody?document.body.appendChild(this.div):this.context.container.appendChild(this.div)}initDiv(){let t=document.createElement("div");return t.style.position="absolute",t}bindElement(t){this.element=t,this.onUpdate()}unBindElement(){this.element=void 0}setVisible(t,e="block"){t!==this.visible&&(this.div.style.display=t?e:"none",this.visible=t)}setOpacity(t){this.div.style.opacity=`${t}`}getPosition(){return this.element?typeof this.element.getPosition=="function"?this.element.getPosition():new K.Box3().setFromObject(this.element).getCenter(new K.Vector3):this.position}get withinDisplayRange(){let{x:t,y:e}=this.clientPos,{width:i,height:o}=this.context.clientSize;return t>=0&&t<=i&&e>=0&&e<=o}updatePosition(t=!1){let e=this.getPosition(),{width:i,height:o,x:a,y:c}=this.context.clientSize,{x:h,y:l}=y(e,this.context.camera,i,o);this.clientPos.x===h&&this.clientPos.y===l&&!t||(this.clientPos={x:h,y:l},this.options.appendToBody&&(this.div.style.left=`${a}px`,this.div.style.top=`${c+o}px`),this.options.autoUpdate?this.div.style.transform=`translate3d(${h}px, ${-o+l}px, 0)`:this.dispatchEvent({type:"update-position",x:h,y:l,width:i,height:o}))}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){var t;this.unRegistryEvent(),this.unBindElement(),(t=this.div)==null||t.remove(),this.div=null}};var _e={texts:[{text:""}],level:1,icon_position:"bottom",collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},icon_opacity:1,icon_border:{color:"#586EE0",width:0},background:"",collision_hide_icon:!0,built_in:!1,box_only_icon:!1},Q=class extends Ct.EventDispatcher{constructor(t,e){var i,o,a;super();this.context=t;s(this,"div");s(this,"textDiv");s(this,"img");s(this,"overlay");s(this,"options");s(this,"visible",!0);s(this,"size",{width:0,height:0});s(this,"position",new Ct.Vector3);s(this,"userData",{});s(this,"showTextStatus",!0);s(this,"_changePosition",()=>{this.overlay.updatePosition(!0)});this.options=tt(E(E({},_e),e),this),this.position.set(((i=e.position)==null?void 0:i.x)||0,((o=e.position)==null?void 0:o.y)||0,((a=e.position)==null?void 0:a.z)||0),this.overlay=new st(this.context,{autoUpdate:!1}),this.overlay.addEventListener("update-position",({x:c,y:h,height:l})=>{this.overlay.div.style.transform=`translate3d(calc(${c}px - 50%), calc(${-l+h}px - ${this.options.icon?"100%":"50%"}), 0)`}),this.overlay.bindElement(this),this.registryEvent(),this.initDiv(),this.addEventListener("change-icon",({value:c})=>{c?this.img?this.img.setAttribute("src",c):(this.addIcon(),this._changePosition()):(this.img&&this.div.removeChild(this.img),this.img=void 0,this._changePosition(),this.resetSize())}),this.addEventListener("change-texts",({value:c})=>{this.div.removeChild(this.textDiv),this.addText(),this.resetSize()}),this.addEventListener("change-opacity",({value:c})=>{this.overlay.setOpacity(c)}),this.addEventListener("change-icon_size",({value:c})=>{this.img&&(this.img.style.width=`${(c==null?void 0:c[0])||32}px`,this.img.style.height=`${(c==null?void 0:c[1])||32}px`,this.resetSize())}),this.addEventListener("change-icon_opacity",({value:c})=>{this.img&&(this.img.style.opacity=`${c}`)}),this.addEventListener("change-icon_border",({value:c})=>{this.img&&(this.img.style.border=`${c.width}px solid ${c.color}`)}),this.addEventListener("change-background",({value:c})=>{this.div.style.background=c})}get withinDisplayRange(){return this.overlay.withinDisplayRange}resetSize(){return B(this,null,function*(){if(yield Kt(),this.options.box_only_icon){if(!this.img)return;let{width:t,height:e}=this.img.getBoundingClientRect();this.size={width:t+2,height:e+2}}else{let{width:t,height:e}=this.div.getBoundingClientRect();this.size={width:t+2,height:e+2}}})}renderHelperBox(){}get clientPos(){return this.overlay.clientPos}initDiv(){let t=document.createElement("div");return this.div=t,this.addText(),this.options.icon&&this.addIcon(),t.style.fontSize="12px",t.style.textShadow="#fff 1px 0 0, #fff 0 1px 0, #fff -1px 0 0, #fff 0 -1px 0",t.style.display="flex",t.style.flexDirection="column",t.style.justifyContent="center",t.style.alignItems="center",t.style.padding="4px",this.overlay.setOpacity(this.options.opacity),this.overlay.div.style.pointerEvents="none",this.overlay.div.style.userSelect="none",this.overlay.div.appendChild(t),this.resetSize(),t}addIcon(){if(!this.img){let t=this.initIcon();this.options.icon_position==="top"?this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t):this.div.appendChild(t)}}addText(){let t=this.initText();this.options.icon_position==="top"?this.div.appendChild(t):this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t)}getPosition(){return this.position}initText(){let t=document.createElement("div");return t.appendChild(this.createTextFragment()),t.style.textAlign="center",this.textDiv=t,t}createTextFragment(){let t=document.createDocumentFragment();return this.options.texts.forEach(e=>{let i=document.createElement("div");if(i.style.whiteSpace="nowrap",e.styles)for(let[o,a]of Object.entries(e.styles))i.style[o]=a;i.textContent=e.text,t.appendChild(i)}),t}initIcon(){var e,i;let t=document.createElement("img");return t.setAttribute("src",this.options.icon),t.style.width=`${((e=this.options.icon_size)==null?void 0:e[0])||32}px`,t.style.height=`${((i=this.options.icon_size)==null?void 0:i[1])||32}px`,t.style.opacity=`${this.options.icon_opacity}px`,t.style.borderRadius="50%",this.options.icon_border.width&&(t.style.border=`${this.options.icon_border.width}px solid ${this.options.icon_border.color}`),t.onload=()=>{this.resetSize()},this.img=t,t}registryEvent(){}unRegistryEvent(){}setVisible(t){t!==this.visible&&(this.visible=t,this.changeOverlayVisible(t))}changeOverlayVisible(t){if(!(t===this.overlay.visible&&this.options.collision_hide_icon))if(this.options.collision_hide_icon)this.overlay.visible=t,this.overlay.div.style.visibility=t?"visible":"hidden";else{if(this.showTextStatus===t)return;this.textDiv.style.visibility=t?"visible":"hidden",this.showTextStatus=t}}parentSetVisible(t){this.visible&&this.changeOverlayVisible(t)}getBox(t=this.context.config.poi.boxScale){let{width:e,height:i}=this.size,o=e*t,a=i*t,{x:c,y:h}=this.overlay.clientPos;return{left:c-o/2,right:c+o/2,top:this.options.icon?h-a:h-a/2,bottom:this.options.icon?h:h+a/2}}getOriginBox(){return this.getBox(1)}isContain(t,e){if(!this.overlay.visible||!this.visible)return!1;let i=this.getOriginBox();return t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom}dispose(){this.unRegistryEvent(),this.div=null,this.textDiv=null,this.img=void 0,this.overlay.dispose()}};var S=require("three");var Lt=require("three");var se=require("three");var j=class extends se.Object3D{constructor(t){super();this.context=t}dispose(){F(this),this.clear()}};var at=class extends j{constructor(t){super(t);s(this,"graphicMap",new Map)}getCenter(){return new Lt.Box3().setFromObject(this).getCenter(new Lt.Vector3)}createGraphic(t){let e=new z(this.context,t);return this.add(e),this.graphicMap.set(t.id,e),e}removeGraphic(t){this.remove(t),this.graphicMap.delete(t.options.id),t.dispose()}removeGraphicById(t){this.graphicMap.has(t)&&this.removeGraphic(this.graphicMap.get(t))}getGraphicByNodeId(t){return this.graphicMap.get(t)||null}getGraphicByRaycaster(t){let e={distance:1e4,graphic:null,position:null},i=this.children.reduce((o,a)=>{if(a instanceof z){let c=a.raycast(t);if(c){let{distance:h}=c;if(h<o.distance)return{distance:o.distance,position:o.position,graphic:a}}return o}else return o},e);return i===e?{graphics:[],position:null}:{graphics:[i.graphic],position:i.position}}};var ae=require("lodash");var ct=class extends j{constructor(t){super(t);s(this,"pois",[]);s(this,"debounceCollisionDetection");s(this,"timer",new H);s(this,"onUpdate",()=>{this.timer.requestAnimationFrame(()=>{this.collisionDetection()})});this.registryEvent(),this.debounceCollisionDetection=(0,ae.debounce)(this.collisionDetection,10)}clear(t=!1){return this.pois.forEach(e=>{e.options.built_in&&!t||e.dispose()}),this.pois=t?[]:this.pois.filter(e=>e.options.built_in),this}createPoi(t){let e=new Q(this.context,t);return this.pushPoi(e),e.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(e)),e.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(e)),Promise.resolve().then(()=>{this.debounceCollisionDetection()}),e}changePoiLevelOrCollisionEnable(t){let e=this.pois.findIndex(i=>i===t);e!==-1&&(this.pois.splice(e,1),this.pushPoi(t))}removePoi(t){let e=this.pois.findIndex(i=>i===t);e!==-1&&(this.pois.splice(e,1),t.dispose())}removePoiById(t){let e=this.pois.find(i=>i.options.id===t);e&&this.removePoi(e)}getPoiById(t){return this.pois.find(i=>i.options.id===t)||null}pushPoi(t){if(!t.options.collision_enable){this.pois.unshift(t);return}if(t.options.level===0){this.pois.push(t);return}for(let e=0;e<this.pois.length;e++){let i=this.pois[e];if(i.options.collision_enable&&i.options.level<=t.options.level){this.pois.splice(e,0,t);return}}this.pois.push(t)}getPoiByDeviceXy(t,e){return this.pois.filter(o=>o instanceof Q&&o.isContain(t,e))}collisionDetection(){let t=[];this.pois.filter(i=>i.visible&&i.withinDisplayRange).forEach((i,o)=>{let{left:a,right:c,top:h,bottom:l}=i.getBox();if(o===0||!i.options.collision_enable){t.push({left:a,right:c,top:h,bottom:l}),i.parentSetVisible(!0);return}let p=t.some(d=>d.left<c&&d.right>a&&d.top<l&&d.bottom>h);i.parentSetVisible(!p),p||t.push({left:a,right:c,top:h,bottom:l})})}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){this.timer.dispose(),this.pois.forEach(t=>t.dispose()),this.pois.length=0,this.debounceCollisionDetection=()=>{},super.dispose(),this.unRegistryEvent()}};var M=require("three"),ce=require("@mars3d/heatmap.js"),V=require("@turf/turf");var ht=class extends M.Object3D{constructor(t){super();this.context=t;s(this,"heatmap");s(this,"div");s(this,"plane");this.div=document.createElement("div")}clearHeatmap(){this.div.firstChild&&this.div.removeChild(this.div.firstChild),this.heatmap=void 0}loadData(t){this.clearHeatmap();let{width:e,height:i,leftTop:o,center:a}=this.getBox(t);this.heatmap=(0,ce.create)(E({width:e,height:i,container:this.div},this.context.config.heatMap)),this.heatmap.setData(this.transformData(t,o)),this.initPlane(e,i),this.position.set(a[0],a[1],this.position.z)}initPlane(t,e){this.plane&&this.remove(this.plane);let i=new M.PlaneGeometry(t,e),o=new M.Texture(this.div.firstChild);o.needsUpdate=!0;let a=new M.MeshBasicMaterial({transparent:!0,side:M.DoubleSide,map:o});a.needsUpdate=!0,this.plane=new M.Mesh(i,a),this.add(this.plane)}getTransMatrix({x:t,y:e}){return new M.Matrix3().makeScale(1,-1).multiply(new M.Matrix3().makeTranslation(0-t,0-e))}transformData(t,e){let i=this.getTransMatrix(e);return{data:t.data.map(a=>{let c=new M.Vector2(a.x,a.y).applyMatrix3(i);return{x:c.x,y:c.y,value:a.value}}),max:t.max,min:t.min}}getBox(t){let e=(0,V.featureCollection)(t.data.map(l=>(0,V.point)([l.x,l.y]))),i=(0,V.bbox)(e),o=i[2]-i[0],a=i[3]-i[1],c={x:i[0],y:i[3]},h=(0,V.center)(e);return{width:o,height:a,leftTop:c,center:h.geometry.coordinates}}dispose(){this.div=null,this.heatmap=void 0}};var Z=require("three");var lt=class extends Z.Object3D{constructor(t,e){super();this.context=t;this.options=e;s(this,"poi",null);s(this,"model",null);this.position.copy(e.position||new Z.Vector3(0,0,0)),this.loadModel()}loadModel(){return B(this,null,function*(){let t=yield jt(this.options.modelUrl);t.scene.rotation.set(Math.PI/2,Math.PI/2,0),this.add(t.scene),this.model=t,this.initPoi()})}initPoi(){var e;if(!this.options.icon)return;let t=(e=this.context.currentFloor)==null?void 0:e.addPoi({icon:this.options.icon,icon_size:this.options.icon_size,built_in:!0,level:0});this.poi=t||null,this.model&&t&&(t.position=new Z.Box3().setFromObject(this).getCenter(new Z.Vector3))}dispose(){var t;F(this),this.model=null,this.poi&&((t=this.context.currentFloor)==null||t.poiLayer.removePoi(this.poi),this.poi=null)}};var pt=class extends S.Object3D{constructor(t){super();this.context=t;s(this,"graphicLayer");s(this,"poiLayer");s(this,"grounds",new Set);s(this,"shadow",new rt);s(this,"heatmap");s(this,"groundUpper",new S.Object3D);s(this,"models",new S.Object3D);s(this,"modelMap",new Map);s(this,"groundMaxHeight",0);this.graphicLayer=new at(this.context),this.poiLayer=new ct(this.context),this.groundUpper.add(this.graphicLayer),this.groundUpper.add(this.poiLayer),this.add(this.groundUpper),this.add(this.models)}getPosition(){return new S.Box3().setFromObject(this.groundUpper).getCenter(new S.Vector3)}createGround(t){let e=new z(this.context,t);this.addGrounds([e])}addGrounds(t){t.forEach(e=>{this.grounds.has(e)||(e.mesh.castShadow=!0,this.grounds.add(e),this.groundUpper.add(e))}),this.changeGroundMaxHeight()}changeGroundMaxHeight(){let t=Array.from(this.grounds);this.groundMaxHeight=this.grounds.size>0?Math.max(...t.map(e=>e.options.height+e.options.airHeight+e.options.deltaHeight)):0,this.graphicLayer.position.z=this.groundMaxHeight,this.models.position.z=this.groundMaxHeight}get hasElement(){return!!(this.grounds.size||this.graphicLayer.children.length)}getCenter(){return new S.Box3().setFromObject(this.groundUpper).getCenter(new S.Vector3)}addModel(t){let e=new lt(this.context,t);return this.models.add(e),this.modelMap.set(t.id,e),e}addShadow(){let t=new S.Box3().setFromObject(this.groundUpper),e=t.getCenter(new S.Vector3),i=t.getSize(new S.Vector3);this.shadow.setPosition(e),this.shadow.changeLightCamera(i)}addGraphic(t){return this.graphicLayer.createGraphic(t)}addPoi(t){return this.poiLayer.createPoi(t)}addHeatmap(t){this.heatmap||(this.heatmap=new ht(this.context),this.add(this.heatmap)),this.heatmap.loadData(t);let e=new S.Box3().setFromObject(this.graphicLayer);return this.heatmap.position.setZ(e.max.z),this.heatmap}removeHeatMap(){this.heatmap&&(this.remove(this.heatmap),this.heatmap.dispose(),this.heatmap=void 0)}setShadowOpacity(t){this.shadow.setOpacity(t)}setShadowVisible(t){this.shadow.visible=t}dispose(){var t;this.shadow.dispose(),this.graphicLayer.dispose(),this.poiLayer.dispose(),this.grounds.forEach(e=>e.dispose()),(t=this.heatmap)==null||t.dispose(),this.groundUpper.clear(),this.models.children.forEach(e=>e.dispose()),this.models.clear(),this.modelMap.clear(),this.clear()}};var Gt=require("three");var k=class extends Gt.EventDispatcher{constructor(t){super();this.context=t;s(this,"points",[]);s(this,"svg");s(this,"enable",!0);s(this,"_onResize",({width:t,height:e})=>{this.svg&&(this.svg.setAttribute("width",`${t}`),this.svg.setAttribute("height",`${e}`))});this.svg=Ut(`${t.container.clientWidth}`,`${t.container.clientHeight}`),t.container.appendChild(this.svg),this._registryEvent()}_registryEvent(){this.context.addEventListener("resize",this._onResize)}_unRegistryEvent(){this.context.removeEventListener("resize",this._onResize)}setEnable(t){this.enable=t,t?this.svg.style.display="block":this.svg.style.display="none"}getIntersectByPointerEvent(t){let{camera:e,renderer:i}=this.context,{offsetX:o,offsetY:a}=t,{clientWidth:c,clientHeight:h}=i.domElement,l=o/c*2-1,p=1-a/h*2;return new Gt.Vector3(l,p,0).unproject(e)}getSvgCoordinate(t){let{camera:e,container:i}=this.context;return y(t,e,i.clientWidth,i.clientHeight)}dispose(){this._unRegistryEvent(),this.context.container.removeChild(this.svg),this.svg=null}};var mt=class extends k{constructor(t){super(t);this.context=t;s(this,"circles");s(this,"line");s(this,"onUpdate",()=>{if(this.points[0]){let t=this.getSvgCoordinate(this.points[0]);_(this.circles[0],t.x,t.y),D(this.line,t)}if(this.points[1]){let t=this.getSvgCoordinate(this.points[1]);_(this.circles[1],t.x,t.y),D(this.line,void 0,t)}});s(this,"onPointermove",t=>{this.points.length===1&&(this.line.style.display="block",D(this.line,void 0,{x:t.offsetX,y:t.offsetY}))});s(this,"onPointerleave",()=>{this.points[1]||(this.line.style.display="none")});s(this,"onPointerdown",t=>{if(this.points[1])return;let e=this.getIntersectByPointerEvent(t);if(e){let{offsetX:i,offsetY:o}=t,a=this.circles[this.points.length];_(a,i,o),this.points.length||D(this.line,{x:i,y:o},{x:i,y:o}),this.addPoint(e)}});let{config:{svg:{circle:e,line:i}}}=t;this.circles=[N(e.radius,e.fill),N(e.radius,e.fill)],this.line=it(i.stroke),this.svg.appendChild(this.circles[0]),this.svg.appendChild(this.circles[1]),this.svg.appendChild(this.line),this.registryEvent()}setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}addPoint(t){if(this.points.push(t),this.points.length>=2){let e=this.calculatedDistance();this.dispatchEvent({type:"distance",distance:e})}}calculatedDistance(){let[{x:t,y:e},{x:i,y:o}]=this.points;return Math.sqrt(C(i-t,2)+C(o-e,2))}dispose(){super.dispose(),this.unRegistryEvent(),this.line=null,this.circles=[]}};var dt=class extends k{constructor(t){super(t);s(this,"circles",[]);s(this,"lines",[]);s(this,"isClose",!1);s(this,"onUpdate",()=>{this.points.length&&this.points.forEach((t,e)=>{let i=this.getSvgCoordinate(t);this.circles[e]&&_(this.circles[e],i.x,i.y),e!==0&&D(this.lines[e-1],void 0,i),this.lines[e]&&D(this.lines[e],i)})});s(this,"onPointermove",t=>{!this.lastLine||this.isClose||(this.lastLine.style.display="block",D(this.lastLine,void 0,{x:t.offsetX,y:t.offsetY}))});s(this,"onPointerleave",()=>{this.isClose||(this.lastLine.style.display="none")});s(this,"onPointerdown",t=>{if(this.isClose)return;let e=this.getIntersectByPointerEvent(t);if(e){let{offsetX:i,offsetY:o}=t;this.checkAdsorb(i,o)?(this.isClose=!0,this.addPoint(this.points[0])):this.addPoint(e);let{circle:{fill:a,radius:c},line:{stroke:h}}=this.context.config.svg;if(!this.isClose){let l=N(c,a);_(l,i,o),this.addCircle(l)}if(this.lines.length&&D(this.lastLine,void 0,{x:i,y:o}),!this.isClose){let l=it(h);D(l,{x:i,y:o},{x:i,y:o}),this.addLine(l)}}});this.registryEvent()}setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}get lastLine(){return this.lines.slice(-1)[0]}addCircle(t){this.circles.push(t),this.svg.appendChild(t)}addLine(t){this.lines.push(t),this.svg.appendChild(t)}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}checkAdsorb(t,e){if(this.points.length<3)return!1;let i=this.circles[0],o=+i.getAttribute("cx"),a=+i.getAttribute("cy");return Math.sqrt(C(t-o,2)+C(e-a,2))<=5}addPoint(t){if(this.points.push(t),this.isClose){let e=this.calculatedArea();this.dispatchEvent({type:"area",area:e})}}calculatedArea(){let t=this.points.map(o=>[o.x,o.y]),e=0,i=t.length;for(let o=0;o<i;o++){let a=(o+1)%i;e+=t[o][0]*t[a][1]-t[a][0]*t[o][1]}return Math.abs(e/2)}dispose(){super.dispose(),this.unRegistryEvent(),this.lines=[],this.circles=[]}};var he=require("three");var Xt=class extends k{constructor(t){super(t);this.context=t;s(this,"rect");s(this,"cornerRect",[]);s(this,"centerRect",[]);s(this,"graphic");s(this,"onUpdate",()=>{if(this.graphic){let t=new he.Box3().setFromObject(this.graphic),{camera:e,container:{clientWidth:i,clientHeight:o}}=this.context,{min:a,max:c}=t,h=y(a,e,i,o),l=y(c,e,i,o);O(this.rect,h.x,l.y,Math.abs(l.x-h.x),Math.abs(l.y-h.y));let{x:p,y:d}=h,{x:v,y:g}=l,m=5,b=[{x:p-m,y:g-m},{x:v-m,y:g-m},{x:p-m,y:d-m},{x:v-m,y:d-m}];for(let G=0;G<b.length;G++)O(this.cornerRect[G],b[G].x,b[G].y,m*2,m*2);let w=4,u=(p+v)/2,R=(d+g)/2,T=[{x:u-w,y:g-w},{x:p-w,y:R-w},{x:v-w,y:R-w},{x:u-w,y:d-w}];for(let G=0;G<T.length;G++)O(this.centerRect[G],T[G].x,T[G].y,w*2,w*2)}else{O(this.rect,0,0,0,0);for(let t=0;t<this.cornerRect.length;t++)O(this.cornerRect[t],0,0,0,0),O(this.centerRect[t],0,0,0,0)}});let{config:{svg:{line:e}}}=t;this.rect=U(e.stroke,"transparent"),this.svg.appendChild(this.rect);for(let i=0;i<4;i++)this.cornerRect[i]=U(e.stroke,"#ffffff"),this.centerRect[i]=U(e.stroke,"#ffffff"),this.svg.appendChild(this.cornerRect[i]),this.svg.appendChild(this.centerRect[i]);this.registryEvent()}setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}selectGraphic(t){this.graphic=t}dispose(){super.dispose(),this.unRegistryEvent(),this.rect=null,this.cornerRect=[],this.centerRect=[]}};var le=require("three");var St=class extends k{constructor(t){super(t);s(this,"startPoint");s(this,"endPoint");s(this,"rect");s(this,"frustum",new le.Frustum);s(this,"onPointerDown",t=>{if(!this.enable)return;let e=this.getIntersectByPointerEvent(t);e&&(this.startPoint=e),this.endPoint=void 0});s(this,"onPointerMove",t=>{if(!this.enable||!this.startPoint)return;let e=this.getIntersectByPointerEvent(t);e&&(this.endPoint=e)});s(this,"onPointerUp",t=>{if(!this.enable)return;let e=this.getIntersectByPointerEvent(t);e&&(this.endPoint=e),this.doSelect(),this.startPoint=void 0});s(this,"onUpdate",()=>{if(this.startPoint){let t=this.getSvgCoordinate(this.startPoint),e=E({},t);this.endPoint&&(e=this.getSvgCoordinate(this.endPoint));let i={x:Math.min(t.x,e.x),y:Math.min(t.y,e.y)},o=Math.abs(e.x-t.x),a=Math.abs(e.y-t.y);O(this.rect,i.x,i.y,o,a)}else O(this.rect,0,0,0,0)});let{config:{selectBox:{fill:e,stroke:i}}}=t;this.rect=U(i,e),this.svg.appendChild(this.rect),this.registryEvent()}setEnable(t){super.setEnable(t),O(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:i,clientHeight:o}}}=this,a=y(this.startPoint,e,i,o),c=y(this.endPoint,e,i,o),h={x:Math.min(a.x,c.x),y:Math.min(a.y,c.y)},l={x:Math.max(a.x,c.x),y:Math.max(a.y,c.y)},p=this.searchMapInFrustum(h,l);this.dispatchEvent({type:"selected",list:p})}}searchMapInFrustum(t,e){var o;let{context:i}=this;return((o=i.currentFloor)==null?void 0:o.graphicLayer.children.filter(a=>a instanceof z&&this.searchChildInFrustum(a,t,e)))||[]}searchChildInFrustum(t,e,i){let{context:{camera:o,container:{clientWidth:a,clientHeight:c}}}=this;if(!t)return!1;if(!t.mesh){let g=t.getPosition();if(g){let m=y(g,o,a,c);return J(m,e,i)}return!1}t.mesh.geometry.boundingBox||t.mesh.geometry.computeBoundingBox();let h=t.mesh.geometry.boundingBox;if(!h)return!1;let{min:l,max:p}=h,d=y(l,o,a,c),v=y(p,o,a,c);return!(!J(d,e,i)||!J(v,e,i))}dispose(){this.unRegistryEvent()}};var ut=class extends pe.EventDispatcher{constructor(t){super();this.context=t;s(this,"_list",new Set);s(this,"boxSelection");s(this,"prevPanStatus");s(this,"prevRotateStatus");s(this,"downPoint",null);s(this,"isMultipleSelect",!1);s(this,"onPointerDown",t=>{this.downPoint={x:t.offsetX,y:t.offsetY}});s(this,"onPointerUp",t=>{if(!this.downPoint)return;let{offsetX:e,offsetY:i}=t,{x:o,y:a}=this.downPoint;if(Math.sqrt(C(o-e,2)+C(a-i,2))>3)return;let{graphics:c}=this.context.getGraphicsByDeviceXy(e,i),h=new Set(c.map(p=>p.options.id));this.context.getPoisByDeviceXy(e,i).forEach(p=>{var d;if(!h.has(p.options.id)){let v=((d=this.context.currentFloor)==null?void 0:d.graphicLayer.graphicMap.get(p.options.id))||null;v&&v.options.geometry.type==="point"&&(c.push(v),h.add(p.options.id))}}),(nt?t.metaKey:t.ctrlKey)||this._list.clear(),c.forEach(p=>this._list.add(p)),this.selectEnd(),this.downPoint=null});s(this,"onPointerOut",t=>{this.disableBoxSelection()});s(this,"onKeyDown",t=>{Mt(t.key)&&this.enableBoxSelection()});s(this,"onKeyUp",t=>{Mt(t.key)&&this.disableBoxSelection()});s(this,"onBoxSelected",({list:t})=>{this._list.clear(),t.forEach(e=>{this._list.add(e)}),this.selectEnd()});this.boxSelection=new St(t),this.boxSelection.setEnable(!1),this.registryEvent()}get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||(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()}};var me=require("three");var gt=class extends me.EventDispatcher{constructor(t){super();this.context=t;s(this,"curGraphics",new Set);s(this,"timer",new H);s(this,"graphicTimerMap",new Map);s(this,"onPointerMove",({graphics:t,pois:e,e:i})=>{let o=e.map(l=>{var p;return(p=this.context.currentFloor)==null?void 0:p.graphicLayer.graphicMap.get(l.options.id)}).filter(l=>l&&l.options.geometry.type==="point");if(!t.length&&!o.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:a}=this.context.config.hover,c=new Set;if(o.length){let l,p=1e4;o.forEach(d=>{let v=e.find(w=>w.options.id===d.options.id),{x:g,y:m}=v.clientPos,b=Math.sqrt(C(g-i.offsetX,2)+C(m-i.offsetY,2));b<p&&(p=b,l=d)}),c.add(l)}c.size||t.forEach(l=>c.add(l)),c.forEach(l=>{if(this.graphicTimerMap.get(l)||this.curGraphics.has(l))return;let p=this.timer.setTimeout(()=>{this.curGraphics.add(l),this.graphicTimerMap.delete(l),this.timer.clearTimeout(p),this.handleHoverGraphicsChange()},a);this.graphicTimerMap.set(l,p)}),this.graphicTimerMap.forEach((l,p)=>{c.has(p)||(this.timer.clearTimeout(l),this.graphicTimerMap.delete(p))});let h=this.curGraphics.size;this.curGraphics.forEach(l=>{c.has(l)||this.curGraphics.delete(l)}),h!==this.curGraphics.size&&this.handleHoverGraphicsChange()});s(this,"onPointerLevel",()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()});this.registryEvent()}handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel)}dispose(){this.unRegistryEvent(),this.timer.dispose()}};var L=require("three");function de(r){return`${r.x}-${r.y}-${r.z}`}var Dt=class{constructor(n){this.context=n;s(this,"lineMaterialMap",new Map);s(this,"meshStandardMaterialMap",new Map);s(this,"meshBasicMaterialMap",new Map);s(this,"shaderMaterialMap",new Map)}generateLineMaterialKey({color:n,opacity:t}){return`${n}-${t}`}createLineMaterial({color:n,opacity:t}){let e=this.generateLineMaterialKey({color:n,opacity:t});if(this.lineMaterialMap.has(e))return this.lineMaterialMap.get(e);let i=new L.LineBasicMaterial({color:new L.Color(n).convertLinearToSRGB(),transparent:!0,opacity:t});return this.lineMaterialMap.set(e,i),i}createMeshStandardMaterial({color:n,opacity:t}){let e=`${n}-${t}`;if(this.meshStandardMaterialMap.has(e))return this.meshStandardMaterialMap.get(e);let i=new L.MeshStandardMaterial({color:new L.Color(n).convertLinearToSRGB(),roughness:1,transparent:!0,opacity:t,depthWrite:!0});return this.meshStandardMaterialMap.set(e,i),i}createMeshBasicMaterial({color:n,opacity:t}){let e=`${n}-${t}`;if(this.meshBasicMaterialMap.has(e))return this.meshBasicMaterialMap.get(e);let i=new L.MeshBasicMaterial({color:n,transparent:!0,opacity:t,depthWrite:!0});return this.meshBasicMaterialMap.set(e,i),i}createShaderMaterial({gradualColor:n,center:t,maxValue:e,opacity:i,direction:o,max:a,min:c}){let h=`${n.toString()}-${de(t)}-${e}-${i}-${de(o)}`;if(this.shaderMaterialMap.has(h))return this.shaderMaterialMap.get(h);let l=`
|
|
1
|
+
"use strict";var vt=Object.defineProperty,Ee=Object.defineProperties,Ce=Object.getOwnPropertyDescriptor,Le=Object.getOwnPropertyDescriptors,Ge=Object.getOwnPropertyNames,te=Object.getOwnPropertySymbols;var ee=Object.prototype.hasOwnProperty,Se=Object.prototype.propertyIsEnumerable;var L=Math.pow,zt=(s,n,t)=>n in s?vt(s,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[n]=t,M=(s,n)=>{for(var t in n||(n={}))ee.call(n,t)&&zt(s,t,n[t]);if(te)for(var t of te(n))Se.call(n,t)&&zt(s,t,n[t]);return s},yt=(s,n)=>Ee(s,Le(n));var Oe=(s,n)=>{for(var t in n)vt(s,t,{get:n[t],enumerable:!0})},De=(s,n,t,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of Ge(n))!ee.call(s,i)&&i!==t&&vt(s,i,{get:()=>n[i],enumerable:!(e=Ce(n,i))||e.enumerable});return s};var ze=s=>De(vt({},"__esModule",{value:!0}),s);var a=(s,n,t)=>(zt(s,typeof n!="symbol"?n+"":n,t),t);var T=(s,n,t)=>new Promise((e,i)=>{var o=h=>{try{c(t.next(h))}catch(l){i(l)}},r=h=>{try{c(t.throw(h))}catch(l){i(l)}},c=h=>h.done?e(h.value):Promise.resolve(h.value).then(o,r);c((t=t.apply(s,n)).next())});var $e={};Oe($e,{BMap:()=>Yt,BaseSvg:()=>k,Context:()=>ft,Floor:()=>pt,Graphic:()=>B,GraphicLayer:()=>at,HeatmapElement:()=>ht,HoverHelper:()=>gt,Layer:()=>K,MapTypePolar:()=>xe,Model:()=>lt,Overlay:()=>st,Poi:()=>Q,PoiLayer:()=>ct,SelectBox:()=>Xt,Selection:()=>ut,Shadow:()=>rt,SvgLine:()=>mt,SvgPolygon:()=>dt,Timer:()=>_,addAlphaToHexColor:()=>Fe,clearCanvas:()=>It,clearTextTexture:()=>$t,createCanvas:()=>ne,createCircle:()=>N,createLine:()=>it,createRect:()=>j,createSvg:()=>Ut,createSvgElement:()=>et,darkenColor:()=>ot,defaultConfig:()=>fe,dispose:()=>R,disposeLoader:()=>Zt,getCenter:()=>Pt,getConfig:()=>Wt,getLongestSideDir:()=>Ae,getTextureByText:()=>Be,hasChinese:()=>_t,initCamera:()=>Tt,initCanvas:()=>oe,initControl:()=>Ft,initDirectionalLight:()=>Ht,initLight:()=>kt,initRenderer:()=>At,initScene:()=>Bt,initShape:()=>Rt,isContain:()=>J,isControl:()=>Et,isMac:()=>nt,loadModel:()=>Kt,proxyOptions:()=>tt,setCirclePosition:()=>V,setLineStartEnd:()=>D,setRectPosition:()=>z,sleepOnePromise:()=>jt,sleepOneRf:()=>Te,strToNumber:()=>ke,timeoutPromise:()=>q,vector3ToDevice:()=>y});module.exports=ze($e);var ve=require("three");var _=class{constructor(){a(this,"tasks",{requestAnimation:new Set,timeout:new Set,interval:new Set})}requestAnimationFrame(n){let t=window.requestAnimationFrame(()=>{this.tasks.requestAnimation.delete(t),n()});return this.tasks.requestAnimation.add(t),t}cancelAnimationFrame(n){this.tasks.requestAnimation.delete(n),window.cancelAnimationFrame(n)}setTimeout(n,t){let e=window.setTimeout(()=>{this.tasks.timeout.delete(e),n()},t);return this.tasks.timeout.add(e),e}clearTimeout(n){this.tasks.timeout.delete(n),window.clearTimeout(n)}setInterval(n,t){let e=window.setInterval(()=>{this.tasks.interval.delete(e),n()},t);return this.tasks.interval.add(e),e}clearInterval(n){this.tasks.interval.delete(n),window.clearInterval(n)}dispose(){this.tasks.requestAnimation.forEach(n=>{window.cancelAnimationFrame(n)}),this.tasks.requestAnimation.clear(),this.tasks.timeout.forEach(n=>{window.clearTimeout(n)}),this.tasks.timeout.clear(),this.tasks.interval.forEach(n=>{window.clearInterval(n)}),this.tasks.interval.clear()}};var w=require("three"),ie=require("three/examples/jsm/controls/MapControls");function Bt(){let s=new w.Scene;return s.background=new w.Color(16777215),s}function At(){let s=new w.WebGLRenderer({antialias:!0});return s.autoClear=!0,s.setClearAlpha(1),s.setClearColor(16777215),s.setPixelRatio(window.devicePixelRatio),s.shadowMap.enabled=!0,s.shadowMap.autoUpdate=!0,s.shadowMap.type=w.PCFSoftShadowMap,s}function Tt(s,n){let t=new w.OrthographicCamera(-s/2,s/2,n/2,-n/2,-1e3,5e3);return t.up.set(0,0,1),t.position.set(0,0,100),t.lookAt(0,0,0),t}function kt(){let s=new w.Group,n=new w.AmbientLight(16777215,2.6);return s.add(n),s}function Ft(s,n){let t=new ie.MapControls(s,n);return t.enableDamping=!1,t.zoomSpeed=2,t}function Rt(s,n=[]){let t=new w.Shape(s.map(e=>new w.Vector2(...e)));return n.length&&n.forEach(e=>{var i=new w.Path(e.map(o=>new w.Vector2(...o)));t.holes.push(i)}),t}function Ht(s=16777215,n=1){let t=new w.DirectionalLight(s,n);return t.castShadow=!0,t.shadow.radius=8,t.shadow.bias=-.001,t.shadow.mapSize.set(256,256),t.shadow.camera.left=-200,t.shadow.camera.right=200,t.shadow.camera.top=200,t.shadow.camera.bottom=-200,t}function R(s,n){var t;if(n&&s.children&&s.children.length&&s.children.forEach(e=>{R(e,n)}),s.isMesh){let e=s;e.geometry&&e.geometry.dispose(),e.material&&(Array.isArray(e.material)?e.material.forEach(i=>{i.dispose()}):e.material.dispose())}s.isLight&&((t=s.dispose)==null||t.call(s))}function _t(s){return/[\u4E00-\u9FA5]+/g.test(s)}var U=require("three");var xt=new Map;function oe(){let s=document.createElement("canvas");s.width=1024,s.height=64;let n=s.getContext("2d",{willReadFrequently:!0});return n.font="54px sans-serif",n.textBaseline="hanging",n.lineWidth=12,n.fillStyle="rgba(0,0,0,1)",n.strokeStyle="white",{canvas:s,ctx:n}}var Vt,I;function ne(){if(!Vt){let{canvas:s,ctx:n}=oe();Vt=s,I=n}}function Be(s){if(xt.has(s))return xt.get(s);ne(),I.clearRect(0,0,1024,64);let n=_t(s)?4:8;I.strokeText(s,2,n),I.fillText(s,2,n);let t=Math.ceil(I.measureText(s).width);t=t%2===0?t:t+1,t+=2;let e=I.getImageData(0,0,t,64),i=new U.DataTexture(Uint8Array.from(e.data),t,64,U.RGBAFormat);return i.flipY=!0,i.minFilter=U.LinearFilter,i.magFilter=U.LinearFilter,xt.set(s,i),i}function $t(){xt.clear()}function It(){I=null,Vt=null}var bt=require("three"),Y=require("@turf/turf");function y(s,n,t,e){let i=s.clone().project(n),o=t/2,r=e/2,c=Math.round(i.x*o+o),h=Math.round(-i.y*r+r);return{x:c,y:h}}function Pt(s){let n=(0,Y.featureCollection)(s.map(e=>(0,Y.point)(e)));return(0,Y.center)(n).geometry.coordinates}function J(s,n,t){return s.x>=n.x&&s.x<=t.x&&s.y>=n.y&&s.y<=t.y}function Ae(s){let n=0,t=new bt.Vector3;for(let e=1;e<s.length;e++){let i=new bt.Vector3(s[e-1][0],s[e-1][1],0),o=new bt.Vector3(s[e][0],s[e][1],0),r=o.distanceTo(i);r>n&&(n=r,t=o.clone().sub(i).normalize())}return t}function tt(s,n){return new Proxy(s,{get:(t,e,i)=>Reflect.get(t,e,i),set:(t,e,i,o)=>{let r=Reflect.get(t,e,o),c=Reflect.set(t,e,i,o);return r!==i&&n.dispatchEvent({type:`change-${e}`,value:i}),c}})}function q(s,n){return Promise.race([s,new Promise((t,e)=>{setTimeout(()=>e(new Error("Promise timeout")),n)})])}function et(s){return document.createElementNS("http://www.w3.org/2000/svg",s)}function Ut(s,n){let t=et("svg");return t.setAttribute("width",s),t.setAttribute("height",n),t.style.cssText="position: absolute; left: 0; top: 0; pointer-events: none;",t}function N(s="2",n){let t=et("circle");return t.setAttribute("r",s),t.setAttribute("fill",n),t}function it(s){let n=et("line");return n.setAttribute("stroke",s),n}function j(s,n){let t=et("rect");return t.setAttribute("stroke",s),t.setAttribute("fill",n),t}function V(s,n,t){s.setAttribute("cx",`${n}`),s.setAttribute("cy",`${t}`)}function D(s,n,t){n&&(s.setAttribute("x1",`${n.x}`),s.setAttribute("y1",`${n.y}`)),t&&(s.setAttribute("x2",`${t.x}`),s.setAttribute("y2",`${t.y}`))}function z(s,n,t,e,i){s.setAttribute("x",`${n}`),s.setAttribute("y",`${t}`),s.setAttribute("width",`${e}`),s.setAttribute("height",`${i}`)}function jt(){return Promise.resolve()}function Te(){return new Promise(s=>{requestAnimationFrame(s)})}function ke(s){return parseInt(s.replace("#","0x"),16)}function Fe(s,n){let t=parseInt(s.substring(1,3),16),e=parseInt(s.substring(3,5),16),i=parseInt(s.substring(5,7),16),o=Math.round(t*n),r=Math.round(e*n),c=Math.round(i*n);return`#${(1<<24|o<<16|r<<8|c).toString(16).slice(1)}`}function ot(s,n=.85){let t,e,i;if(s.startsWith("#"))t=parseInt(s.substring(1,3),16),e=parseInt(s.substring(3,5),16),i=parseInt(s.substring(5,7),16);else{let r=s.slice(4,-1).split(",");t=parseInt(r[0].trim()),e=parseInt(r[1].trim()),i=parseInt(r[2].trim())}return t=Math.min(Math.floor(t*n),255),e=Math.min(Math.floor(e*n),255),i=Math.min(Math.floor(i*n),255),"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)}var re=require("three/examples/jsm/loaders/GLTFLoader");function Re(){return new re.GLTFLoader}var wt=null,Mt=new Map;function Kt(s){if(Mt.has(s)){let t=Mt.get(s).then(e=>(e.scene=e.scene.clone(),e))}wt||(wt=Re());let n=new Promise((t,e)=>{wt.load(s,i=>{t(i)},void 0,e)});return Mt.set(s,n),n.then(t=>(t.scene=t.scene.clone(),t))}function Zt(){wt=null,Mt.clear()}var nt=navigator.userAgent.toUpperCase().indexOf("MAC")>=0;function Et(s){return nt?s==="Meta":s==="Control"}var x=require("three"),W=require("@tweenjs/tween.js");var me=require("three");var v=require("three");var He={id:"",height:.1,airHeight:0,area:0,group:"",fillColor:"#EFF4FB",strokeColor:"#ffffff",fillOpacity:1,strokeOpacity:1,strokeWidth:1,doors:[],locked:!1,visible:!0,geometry:{type:"polygon",cds:[],coords:[],curveCpt:[],curveIndex:[]},layerType:"",zIndex:0,stroke:!0,deltaHeight:0,userData:{},gradualColor:[],renderType:"single",colorFactor:.9},B=class extends v.Object3D{constructor(t,e){super();this.context=t;a(this,"geometry");a(this,"material");a(this,"mesh");a(this,"line");a(this,"lineMaterial");a(this,"lineGeometry");a(this,"options");if(this.options=tt(M(M({},He),e),this),this.options.geometry.type==="point"){let[i,o]=this.options.geometry.coords;return this.position.set(i,o,this.options.height+this.options.airHeight),this}this.init(),this.visible=this.options.visible,this.addEventListener("change-fillColor",({value:i})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-fillOpacity",({value:i})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-height",({value:i})=>{this.dispose(),this.init()}),this.addEventListener("change-strokeColor",({value:i})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-strokeOpacity",({value:i})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-airHeight",({value:i})=>{this.position.z=i}),this.addEventListener("change-visible",({value:i})=>{this.visible=i}),this.addEventListener("change-stroke",({value:i})=>{var o;if(i){if(this.line)return;this.initLineGeometry(),this.initLineMaterial(),this.createBorder()}else this.line&&(this.remove(this.line),(o=this.lineGeometry)==null||o.dispose())}),this.addEventListener("change-renderType",()=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-gradualColor",()=>{this.initMaterial(),this.initMesh()})}getCenter(){if(this.options.geometry.type==="point")return this.position.clone();let t=new v.Vector3,e=new v.Box3;return e.setFromObject(this),e.getCenter(t),t}getSize(){if(this.options.geometry.type==="point")return new v.Vector3(0,0,0);let t=new v.Box3,e=new v.Vector3;return t.setFromObject(this),t.getSize(e),e}getPosition(){let t=this.getCenter();return t.setZ(t.z+this.options.height/2),t}init(){this.geometry=this.initGeometry(),this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options.airHeight+this.options.deltaHeight,this.options.stroke&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())}initGeometry(){let t=Rt(this.options.geometry.coords[0],this.options.geometry.coords.slice(1));return new v.ExtrudeGeometry(t,{steps:1,bevelEnabled:!1,depth:this.options.height,curveSegments:4})}initSingleMaterial(){let t=this.context.materialFactory.createMeshBasicMaterial({color:this.options.fillColor,opacity:this.options.fillOpacity});if(this.options.height<=.1)return this.material=t,t;let e=this.context.materialFactory.createMeshBasicMaterial({color:ot(this.options.fillColor),opacity:this.options.fillOpacity});return this.material=[t,e],[t,e]}getMaxAndMin(t,e){let i=new v.Box3().setFromObject(this),o=t.clone().add(e.clone().multiplyScalar(1e3)),r=new v.Ray(o,e.clone().multiplyScalar(-1)),c=new v.Vector3;r.intersectBox(i,c);let h=t.clone().add(e.clone().multiplyScalar(-1e3)),l=new v.Ray(h,e.clone()),p=new v.Vector3;return l.intersectBox(i,p),{max:p,min:c}}initGradualMaterial(){let{max:t,min:e}=new v.Box3().setFromObject(this),i=t.clone().sub(e),o=Math.max(i.x,i.y,i.z)/2,r=this.getPosition(),c=new v.Vector3(-1,.2,0).normalize(),{max:h,min:l}=this.getMaxAndMin(r,c),p=this.context.materialFactory.createShaderMaterial({gradualColor:this.options.gradualColor,center:this.getPosition(),maxValue:o,opacity:this.options.fillOpacity,direction:new v.Vector3(-1,.2,0),max:h,min:l});if(this.options.height<=.1)return this.material=p,p;let m=this.getCenter(),g=new v.Vector3(-1,.2,1).normalize(),{max:f,min:d}=this.getMaxAndMin(m,g),b=this.context.materialFactory.createShaderMaterial({gradualColor:[ot(this.options.gradualColor[0],this.options.colorFactor),ot(this.options.gradualColor[1],this.options.colorFactor)],center:this.getCenter(),maxValue:o,opacity:this.options.fillOpacity,direction:new v.Vector3(-1,.2,1),max:f,min:d});return this.material=[p,b],[p,b]}initMaterial(){return this.options.renderType==="gradual"?this.initGradualMaterial():this.initSingleMaterial()}initLineMaterial(){let t=this.context.materialFactory.createLineMaterial({color:this.options.strokeColor,opacity:this.options.strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new v.Mesh(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],e=this.options.height+this.options.deltaHeight,{coords:i}=this.options.geometry;for(let o=0;o<i.length;o++){let r=i[o];for(let c=0;c<r.length;c++){let h=r[c],l=c+1===r.length?r[0]:r[c+1];t.push(new v.Vector3(h[0],h[1],e)),t.push(new v.Vector3(l[0],l[1],e))}}return t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),e=new v.BufferGeometry().setFromPoints(t);this.lineGeometry=e}createBorder(){this.line&&this.remove(this.line);let t=new v.LineSegments(this.lineGeometry,this.lineMaterial);return t.position.z=this.options.airHeight+.01,this.line=t,this.add(t),t}raycast(t){if(!this.visible||this.options.geometry.type==="point")return!1;let e=t.intersectObject(this.mesh);if(e[0]){let{point:i,distance:o}=e[0];return{position:i,distance:o}}return!1}dispose(){var t;this.geometry.dispose(),(t=this.line)==null||t.geometry.dispose(),this.clear()}};var A=require("three");var rt=class extends A.Object3D{constructor(){super();a(this,"directionalLight");a(this,"plane");a(this,"basicOpacity",.07);this.directionalLight=this.initLight(),this.initPlane()}initLight(){let t=Ht(16777215,.5);return t.position.set(0,0,100),this.add(t),t}changeLightCamera(t){let e=t.x,i=t.y;this.directionalLight.shadow.camera.left=-e,this.directionalLight.shadow.camera.right=e,this.directionalLight.shadow.camera.top=i,this.directionalLight.shadow.camera.bottom=-i,this.directionalLight.shadow.camera.near=.5,this.directionalLight.shadow.camera.far=Math.max(e,i)}changeLightColor(t){this.directionalLight.color=new A.Color(t)}setPosition(t){this.position.copy(t),this.directionalLight.position.set(-t.x/2,-t.y/2,100)}initPlane(t=1e3,e=1e3){let i=new A.PlaneGeometry(t,e),o=new A.ShadowMaterial({transparent:!0,opacity:0,side:A.DoubleSide}),r=new A.Mesh(i,o);return r.receiveShadow=!0,r.position.z=-10,this.add(r),this.plane=r,r}setTarget(t){this.directionalLight.target=t}transformOpacity(t){return t*this.basicOpacity}setOpacity(t){this.plane.material.opacity=this.transformOpacity(t)}dispose(){R(this,!0)}};var Ct=require("three");var E=require("three");var se=require("lodash");var _e={autoUpdate:!0,appendToBody:!1,autoChangePlacement:!1},st=class extends E.EventDispatcher{constructor(t,e={}){super();this.context=t;a(this,"div");a(this,"element");a(this,"position",new E.Vector3);a(this,"clientPos",{x:0,y:0});a(this,"visible",!0);a(this,"options");a(this,"placement","top");a(this,"observer",null);a(this,"onUpdate",()=>{this.options.autoChangePlacement?this.usePlacement():this.updatePosition()});this.options=M(M({},_e),e),this.registryEvent(),this.div=this.initDiv(),this.options.appendToBody?document.body.appendChild(this.div):this.context.container.appendChild(this.div)}initObserver(){let t=new MutationObserver((0,se.debounce)(()=>{this.usePlacement()},100));t.observe(this.div,{childList:!0,subtree:!0,attributes:!0}),this.observer=t}getPlacementPosition(){let{max:t,min:e}=new E.Box3().setFromObject(this.element),i=(t.x+e.x)/2,o=(t.y+e.y)/2;return{left:new E.Vector3(e.x,o,t.z),leftTop:new E.Vector3(e.x,t.y,t.z),top:new E.Vector3(i,t.y,t.z),rightTop:new E.Vector3(t.x,t.y,t.z),right:new E.Vector3(t.x,o,t.z),rightBottom:new E.Vector3(t.x,e.y,t.z),bottom:new E.Vector3(i,e.y,t.z),leftBottom:new E.Vector3(e.x,e.y,t.z),center:new E.Vector3(i,o,t.z)}}getPlacementScreenPosition(){let{width:t,height:e}=this.context.clientSize,i=this.getPlacementPosition();return Object.keys(i).reduce((o,r)=>{let{x:c,y:h}=y(i[r],this.context.camera,t,e);return o[r]={x:c,y:h},o},{})}checkOverflow(t,e){let{width:i,height:o}=this.context.clientSize;return e.x>0&&t.x<i&&e.y<o&&t.y>0}getPlacement(){let{clientWidth:t,clientHeight:e}=this.div,i=this.getPlacementScreenPosition(),o=t/2,r=e/2,c=[{type:"center",getBox(h,l){return{max:{x:o+h,y:l-e},min:{x:h-o,y:l}}}},{type:"left",getBox(h,l){return{max:{x:h,y:l-r},min:{x:h-t,y:l+r}}}},{type:"leftTop",getBox(h,l){return{max:{x:h,y:l-e},min:{x:h-t,y:l}}}},{type:"top",getBox(h,l){return{max:{x:h+o,y:l-e},min:{x:h-o,y:l}}}},{type:"rightTop",getBox(h,l){return{max:{x:h+t,y:l-e},min:{x:h,y:l}}}},{type:"right",getBox(h,l){return{max:{x:h+t,y:l-r},min:{x:h,y:l+r}}}},{type:"rightBottom",getBox(h,l){return{max:{x:h+t,y:l},min:{x:h,y:l+e}}}},{type:"bottom",getBox(h,l){return{max:{x:h+o,y:l},min:{x:h-o,y:l+e}}}},{type:"leftBottom",getBox(h,l){return{max:{x:h,y:l},min:{x:h-t,y:l+r}}}}];for(let h=0;h<c.length;h++){let l=c[h],p=i[l.type],{max:m,min:g}=l.getBox(p.x,p.y);if(this.checkOverflow(m,g))return{type:l.type,position:p}}return{type:"center",position:i.center}}initDiv(){let t=document.createElement("div");return t.style.position="absolute",t}usePlacement(){let t=this.getPlacement();this.div.className=`overlay_${t.type}`,this._updatePosition(t.position.x,t.position.y)}bindElement(t){this.element=t,this.options.autoChangePlacement&&this.initObserver(),this.onUpdate()}unBindElement(){this.element=void 0}setVisible(t,e="block"){t!==this.visible&&(this.div.style.display=t?e:"none",this.visible=t)}setOpacity(t){this.div.style.opacity=`${t}`}getPosition(){return this.element?typeof this.element.getPosition=="function"?this.element.getPosition():new E.Box3().setFromObject(this.element).getCenter(new E.Vector3):this.position}get withinDisplayRange(){let{x:t,y:e}=this.clientPos,{width:i,height:o}=this.context.clientSize;return t>=0&&t<=i&&e>=0&&e<=o}_updatePosition(t,e){this.clientPos={x:t,y:e};let{width:i,height:o,x:r,y:c}=this.context.clientSize;this.options.appendToBody&&(this.div.style.left=`${r}px`,this.div.style.top=`${c+o}px`),this.options.autoUpdate?this.div.style.transform=`translate3d(${t}px, ${-o+e}px, 0)`:this.dispatchEvent({type:"update-position",x:t,y:e,width:i,height:o})}updatePosition(t=!1){let e=this.getPosition(),{width:i,height:o,x:r,y:c}=this.context.clientSize,{x:h,y:l}=y(e,this.context.camera,i,o);this.clientPos.x===h&&this.clientPos.y===l&&!t||this._updatePosition(h,l)}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){var t,e;this.unRegistryEvent(),this.unBindElement(),(t=this.observer)==null||t.disconnect(),(e=this.div)==null||e.remove(),this.div=null}};var Ve={texts:[{text:""}],level:1,icon_position:"bottom",collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},icon_opacity:1,icon_border:{color:"#586EE0",width:0},background:"",collision_hide_icon:!0,built_in:!1,box_only_icon:!1},Q=class extends Ct.EventDispatcher{constructor(t,e){var i,o,r;super();this.context=t;a(this,"div");a(this,"textDiv");a(this,"img");a(this,"overlay");a(this,"options");a(this,"visible",!0);a(this,"size",{width:0,height:0});a(this,"position",new Ct.Vector3);a(this,"userData",{});a(this,"showTextStatus",!0);a(this,"_changePosition",()=>{this.overlay.updatePosition(!0)});this.options=tt(M(M({},Ve),e),this),this.position.set(((i=e.position)==null?void 0:i.x)||0,((o=e.position)==null?void 0:o.y)||0,((r=e.position)==null?void 0:r.z)||0),this.overlay=new st(this.context,{autoUpdate:!1}),this.overlay.addEventListener("update-position",({x:c,y:h,height:l})=>{this.overlay.div.style.transform=`translate3d(calc(${c}px - 50%), calc(${-l+h}px - ${this.options.icon?"100%":"50%"}), 0)`}),this.overlay.bindElement(this),this.registryEvent(),this.initDiv(),this.addEventListener("change-icon",({value:c})=>{c?this.img?this.img.setAttribute("src",c):(this.addIcon(),this._changePosition()):(this.img&&this.div.removeChild(this.img),this.img=void 0,this._changePosition(),this.resetSize())}),this.addEventListener("change-texts",({value:c})=>{this.div.removeChild(this.textDiv),this.addText(),this.resetSize()}),this.addEventListener("change-opacity",({value:c})=>{this.overlay.setOpacity(c)}),this.addEventListener("change-icon_size",({value:c})=>{this.img&&(this.img.style.width=`${(c==null?void 0:c[0])||32}px`,this.img.style.height=`${(c==null?void 0:c[1])||32}px`,this.resetSize())}),this.addEventListener("change-icon_opacity",({value:c})=>{this.img&&(this.img.style.opacity=`${c}`)}),this.addEventListener("change-icon_border",({value:c})=>{this.img&&(this.img.style.border=`${c.width}px solid ${c.color}`)}),this.addEventListener("change-background",({value:c})=>{this.div.style.background=c})}get withinDisplayRange(){return this.overlay.withinDisplayRange}resetSize(){return T(this,null,function*(){if(yield jt(),this.options.box_only_icon){if(!this.img)return;let{width:t,height:e}=this.img.getBoundingClientRect();this.size={width:t+2,height:e+2}}else{let{width:t,height:e}=this.div.getBoundingClientRect();this.size={width:t+2,height:e+2}}})}renderHelperBox(){}get clientPos(){return this.overlay.clientPos}initDiv(){let t=document.createElement("div");return this.div=t,this.addText(),this.options.icon&&this.addIcon(),t.style.fontSize="12px",t.style.textShadow="#fff 1px 0 0, #fff 0 1px 0, #fff -1px 0 0, #fff 0 -1px 0",t.style.display="flex",t.style.flexDirection="column",t.style.justifyContent="center",t.style.alignItems="center",t.style.padding="4px",this.overlay.setOpacity(this.options.opacity),this.overlay.div.style.pointerEvents="none",this.overlay.div.style.userSelect="none",this.overlay.div.appendChild(t),this.resetSize(),t}addIcon(){if(!this.img){let t=this.initIcon();this.options.icon_position==="top"?this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t):this.div.appendChild(t)}}addText(){let t=this.initText();this.options.icon_position==="top"?this.div.appendChild(t):this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t)}getPosition(){return this.position}initText(){let t=document.createElement("div");return t.appendChild(this.createTextFragment()),t.style.textAlign="center",this.textDiv=t,t}createTextFragment(){let t=document.createDocumentFragment();return this.options.texts.forEach(e=>{let i=document.createElement("div");if(i.style.whiteSpace="nowrap",e.styles)for(let[o,r]of Object.entries(e.styles))i.style[o]=r;i.textContent=e.text,t.appendChild(i)}),t}initIcon(){var e,i;let t=document.createElement("img");return t.setAttribute("src",this.options.icon),t.style.width=`${((e=this.options.icon_size)==null?void 0:e[0])||32}px`,t.style.height=`${((i=this.options.icon_size)==null?void 0:i[1])||32}px`,t.style.opacity=`${this.options.icon_opacity}px`,t.style.borderRadius="50%",this.options.icon_border.width&&(t.style.border=`${this.options.icon_border.width}px solid ${this.options.icon_border.color}`),t.onload=()=>{this.resetSize()},this.img=t,t}registryEvent(){}unRegistryEvent(){}setVisible(t){t!==this.visible&&(this.visible=t,this.changeOverlayVisible(t))}changeOverlayVisible(t){if(!(t===this.overlay.visible&&this.options.collision_hide_icon))if(this.options.collision_hide_icon)this.overlay.visible=t,this.overlay.div.style.visibility=t?"visible":"hidden";else{if(this.showTextStatus===t)return;this.textDiv.style.visibility=t?"visible":"hidden",this.showTextStatus=t}}parentSetVisible(t){this.visible&&this.changeOverlayVisible(t)}getBox(t=this.context.config.poi.boxScale){let{width:e,height:i}=this.size,o=e*t,r=i*t,{x:c,y:h}=this.overlay.clientPos;return{left:c-o/2,right:c+o/2,top:this.options.icon?h-r:h-r/2,bottom:this.options.icon?h:h+r/2}}getOriginBox(){return this.getBox(1)}isContain(t,e){if(!this.overlay.visible||!this.visible)return!1;let i=this.getOriginBox();return t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom}dispose(){this.unRegistryEvent(),this.div=null,this.textDiv=null,this.img=void 0,this.overlay.dispose()}};var O=require("three");var Lt=require("three");var ae=require("three");var K=class extends ae.Object3D{constructor(t){super();this.context=t}dispose(){R(this),this.clear()}};var at=class extends K{constructor(t){super(t);a(this,"graphicMap",new Map)}getCenter(){return new Lt.Box3().setFromObject(this).getCenter(new Lt.Vector3)}createGraphic(t){let e=new B(this.context,t);return this.add(e),this.graphicMap.set(t.id,e),e}removeGraphic(t){this.remove(t),this.graphicMap.delete(t.options.id),t.dispose()}removeGraphicById(t){this.graphicMap.has(t)&&this.removeGraphic(this.graphicMap.get(t))}getGraphicByNodeId(t){return this.graphicMap.get(t)||null}getGraphicByRaycaster(t){let e={distance:1e4,graphic:null,position:null},i=this.children.reduce((o,r)=>{if(r instanceof B){let c=r.raycast(t);if(c){let{distance:h}=c;if(h<o.distance)return{distance:o.distance,position:o.position,graphic:r}}return o}else return o},e);return i===e?{graphics:[],position:null}:{graphics:[i.graphic],position:i.position}}};var ce=require("lodash");var ct=class extends K{constructor(t){super(t);a(this,"pois",[]);a(this,"debounceCollisionDetection");a(this,"timer",new _);a(this,"onUpdate",()=>{this.timer.requestAnimationFrame(()=>{this.collisionDetection()})});this.registryEvent(),this.debounceCollisionDetection=(0,ce.debounce)(this.collisionDetection,10)}clear(t=!1){return this.pois.forEach(e=>{e.options.built_in&&!t||e.dispose()}),this.pois=t?[]:this.pois.filter(e=>e.options.built_in),this}createPoi(t){let e=new Q(this.context,t);return this.pushPoi(e),e.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(e)),e.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(e)),Promise.resolve().then(()=>{this.debounceCollisionDetection()}),e}changePoiLevelOrCollisionEnable(t){let e=this.pois.findIndex(i=>i===t);e!==-1&&(this.pois.splice(e,1),this.pushPoi(t))}removePoi(t){let e=this.pois.findIndex(i=>i===t);e!==-1&&(this.pois.splice(e,1),t.dispose())}removePoiById(t){let e=this.pois.find(i=>i.options.id===t);e&&this.removePoi(e)}getPoiById(t){return this.pois.find(i=>i.options.id===t)||null}pushPoi(t){if(!t.options.collision_enable){this.pois.unshift(t);return}if(t.options.level===0){this.pois.push(t);return}for(let e=0;e<this.pois.length;e++){let i=this.pois[e];if(i.options.collision_enable&&i.options.level<=t.options.level){this.pois.splice(e,0,t);return}}this.pois.push(t)}getPoiByDeviceXy(t,e){return this.pois.filter(o=>o instanceof Q&&o.isContain(t,e))}collisionDetection(){let t=[];this.pois.filter(i=>i.visible&&i.withinDisplayRange).forEach((i,o)=>{let{left:r,right:c,top:h,bottom:l}=i.getBox();if(o===0||!i.options.collision_enable){t.push({left:r,right:c,top:h,bottom:l}),i.parentSetVisible(!0);return}let p=t.some(m=>m.left<c&&m.right>r&&m.top<l&&m.bottom>h);i.parentSetVisible(!p),p||t.push({left:r,right:c,top:h,bottom:l})})}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){this.timer.dispose(),this.pois.forEach(t=>t.dispose()),this.pois.length=0,this.debounceCollisionDetection=()=>{},super.dispose(),this.unRegistryEvent()}};var C=require("three"),he=require("@mars3d/heatmap.js"),$=require("@turf/turf");var ht=class extends C.Object3D{constructor(t){super();this.context=t;a(this,"heatmap");a(this,"div");a(this,"plane");this.div=document.createElement("div")}clearHeatmap(){this.div.firstChild&&this.div.removeChild(this.div.firstChild),this.heatmap=void 0}loadData(t){this.clearHeatmap();let{width:e,height:i,leftTop:o,center:r}=this.getBox(t);this.heatmap=(0,he.create)(M({width:e,height:i,container:this.div},this.context.config.heatMap)),this.heatmap.setData(this.transformData(t,o)),this.initPlane(e,i),this.position.set(r[0],r[1],this.position.z)}initPlane(t,e){this.plane&&this.remove(this.plane);let i=new C.PlaneGeometry(t,e),o=new C.Texture(this.div.firstChild);o.needsUpdate=!0;let r=new C.MeshBasicMaterial({transparent:!0,side:C.DoubleSide,map:o});r.needsUpdate=!0,this.plane=new C.Mesh(i,r),this.add(this.plane)}getTransMatrix({x:t,y:e}){return new C.Matrix3().makeScale(1,-1).multiply(new C.Matrix3().makeTranslation(0-t,0-e))}transformData(t,e){let i=this.getTransMatrix(e);return{data:t.data.map(r=>{let c=new C.Vector2(r.x,r.y).applyMatrix3(i);return{x:c.x,y:c.y,value:r.value}}),max:t.max,min:t.min}}getBox(t){let e=(0,$.featureCollection)(t.data.map(l=>(0,$.point)([l.x,l.y]))),i=(0,$.bbox)(e),o=i[2]-i[0],r=i[3]-i[1],c={x:i[0],y:i[3]},h=(0,$.center)(e);return{width:o,height:r,leftTop:c,center:h.geometry.coordinates}}dispose(){this.div=null,this.heatmap=void 0}};var Z=require("three");var lt=class extends Z.Object3D{constructor(t,e){super();this.context=t;this.options=e;a(this,"poi",null);a(this,"model",null);this.position.copy(e.position||new Z.Vector3(0,0,0)),this.loadModel()}loadModel(){return T(this,null,function*(){let t=yield Kt(this.options.modelUrl);t.scene.rotation.set(Math.PI/2,Math.PI/2,0),this.add(t.scene),this.model=t,this.initPoi()})}initPoi(){var e;if(!this.options.icon)return;let t=(e=this.context.currentFloor)==null?void 0:e.addPoi({icon:this.options.icon,icon_size:this.options.icon_size,built_in:!0,level:0});this.poi=t||null,this.model&&t&&(t.position=new Z.Box3().setFromObject(this).getCenter(new Z.Vector3))}dispose(){var t;R(this),this.model=null,this.poi&&((t=this.context.currentFloor)==null||t.poiLayer.removePoi(this.poi),this.poi=null)}};var pt=class extends O.Object3D{constructor(t){super();this.context=t;a(this,"graphicLayer");a(this,"poiLayer");a(this,"grounds",new Set);a(this,"shadow",new rt);a(this,"heatmap");a(this,"groundUpper",new O.Object3D);a(this,"models",new O.Object3D);a(this,"modelMap",new Map);a(this,"groundMaxHeight",0);this.graphicLayer=new at(this.context),this.poiLayer=new ct(this.context),this.groundUpper.add(this.graphicLayer),this.groundUpper.add(this.poiLayer),this.add(this.groundUpper),this.add(this.models)}getPosition(){return new O.Box3().setFromObject(this.groundUpper).getCenter(new O.Vector3)}createGround(t){let e=new B(this.context,t);this.addGrounds([e])}addGrounds(t){t.forEach(e=>{this.grounds.has(e)||(e.mesh.castShadow=!0,this.grounds.add(e),this.groundUpper.add(e))}),this.changeGroundMaxHeight()}changeGroundMaxHeight(){let t=Array.from(this.grounds);this.groundMaxHeight=this.grounds.size>0?Math.max(...t.map(e=>e.options.height+e.options.airHeight+e.options.deltaHeight)):0,this.graphicLayer.position.z=this.groundMaxHeight,this.models.position.z=this.groundMaxHeight}get hasElement(){return!!(this.grounds.size||this.graphicLayer.children.length)}getCenter(){return new O.Box3().setFromObject(this.groundUpper).getCenter(new O.Vector3)}addModel(t){let e=new lt(this.context,t);return this.models.add(e),this.modelMap.set(t.id,e),e}addShadow(){let t=new O.Box3().setFromObject(this.groundUpper),e=t.getCenter(new O.Vector3),i=t.getSize(new O.Vector3);this.shadow.setPosition(e),this.shadow.changeLightCamera(i)}addGraphic(t){return this.graphicLayer.createGraphic(t)}addPoi(t){return this.poiLayer.createPoi(t)}addHeatmap(t){this.heatmap||(this.heatmap=new ht(this.context),this.add(this.heatmap)),this.heatmap.loadData(t);let e=new O.Box3().setFromObject(this.graphicLayer);return this.heatmap.position.setZ(e.max.z),this.heatmap}removeHeatMap(){this.heatmap&&(this.remove(this.heatmap),this.heatmap.dispose(),this.heatmap=void 0)}setShadowOpacity(t){this.shadow.setOpacity(t)}setShadowVisible(t){this.shadow.visible=t}dispose(){var t;this.shadow.dispose(),this.graphicLayer.dispose(),this.poiLayer.dispose(),this.grounds.forEach(e=>e.dispose()),(t=this.heatmap)==null||t.dispose(),this.groundUpper.clear(),this.models.children.forEach(e=>e.dispose()),this.models.clear(),this.modelMap.clear(),this.clear()}};var Gt=require("three");var k=class extends Gt.EventDispatcher{constructor(t){super();this.context=t;a(this,"points",[]);a(this,"svg");a(this,"enable",!0);a(this,"_onResize",({width:t,height:e})=>{this.svg&&(this.svg.setAttribute("width",`${t}`),this.svg.setAttribute("height",`${e}`))});this.svg=Ut(`${t.container.clientWidth}`,`${t.container.clientHeight}`),t.container.appendChild(this.svg),this._registryEvent()}_registryEvent(){this.context.addEventListener("resize",this._onResize)}_unRegistryEvent(){this.context.removeEventListener("resize",this._onResize)}setEnable(t){this.enable=t,t?this.svg.style.display="block":this.svg.style.display="none"}getIntersectByPointerEvent(t){let{camera:e,renderer:i}=this.context,{offsetX:o,offsetY:r}=t,{clientWidth:c,clientHeight:h}=i.domElement,l=o/c*2-1,p=1-r/h*2;return new Gt.Vector3(l,p,0).unproject(e)}getSvgCoordinate(t){let{camera:e,container:i}=this.context;return y(t,e,i.clientWidth,i.clientHeight)}dispose(){this._unRegistryEvent(),this.context.container.removeChild(this.svg),this.svg=null}};var mt=class extends k{constructor(t){super(t);this.context=t;a(this,"circles");a(this,"line");a(this,"onUpdate",()=>{if(this.points[0]){let t=this.getSvgCoordinate(this.points[0]);V(this.circles[0],t.x,t.y),D(this.line,t)}if(this.points[1]){let t=this.getSvgCoordinate(this.points[1]);V(this.circles[1],t.x,t.y),D(this.line,void 0,t)}});a(this,"onPointermove",t=>{this.points.length===1&&(this.line.style.display="block",D(this.line,void 0,{x:t.offsetX,y:t.offsetY}))});a(this,"onPointerleave",()=>{this.points[1]||(this.line.style.display="none")});a(this,"onPointerdown",t=>{if(this.points[1])return;let e=this.getIntersectByPointerEvent(t);if(e){let{offsetX:i,offsetY:o}=t,r=this.circles[this.points.length];V(r,i,o),this.points.length||D(this.line,{x:i,y:o},{x:i,y:o}),this.addPoint(e)}});let{config:{svg:{circle:e,line:i}}}=t;this.circles=[N(e.radius,e.fill),N(e.radius,e.fill)],this.line=it(i.stroke),this.svg.appendChild(this.circles[0]),this.svg.appendChild(this.circles[1]),this.svg.appendChild(this.line),this.registryEvent()}setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}addPoint(t){if(this.points.push(t),this.points.length>=2){let e=this.calculatedDistance();this.dispatchEvent({type:"distance",distance:e})}}calculatedDistance(){let[{x:t,y:e},{x:i,y:o}]=this.points;return Math.sqrt(L(i-t,2)+L(o-e,2))}dispose(){super.dispose(),this.unRegistryEvent(),this.line=null,this.circles=[]}};var dt=class extends k{constructor(t){super(t);a(this,"circles",[]);a(this,"lines",[]);a(this,"isClose",!1);a(this,"onUpdate",()=>{this.points.length&&this.points.forEach((t,e)=>{let i=this.getSvgCoordinate(t);this.circles[e]&&V(this.circles[e],i.x,i.y),e!==0&&D(this.lines[e-1],void 0,i),this.lines[e]&&D(this.lines[e],i)})});a(this,"onPointermove",t=>{!this.lastLine||this.isClose||(this.lastLine.style.display="block",D(this.lastLine,void 0,{x:t.offsetX,y:t.offsetY}))});a(this,"onPointerleave",()=>{this.isClose||(this.lastLine.style.display="none")});a(this,"onPointerdown",t=>{if(this.isClose)return;let e=this.getIntersectByPointerEvent(t);if(e){let{offsetX:i,offsetY:o}=t;this.checkAdsorb(i,o)?(this.isClose=!0,this.addPoint(this.points[0])):this.addPoint(e);let{circle:{fill:r,radius:c},line:{stroke:h}}=this.context.config.svg;if(!this.isClose){let l=N(c,r);V(l,i,o),this.addCircle(l)}if(this.lines.length&&D(this.lastLine,void 0,{x:i,y:o}),!this.isClose){let l=it(h);D(l,{x:i,y:o},{x:i,y:o}),this.addLine(l)}}});this.registryEvent()}setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}get lastLine(){return this.lines.slice(-1)[0]}addCircle(t){this.circles.push(t),this.svg.appendChild(t)}addLine(t){this.lines.push(t),this.svg.appendChild(t)}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}checkAdsorb(t,e){if(this.points.length<3)return!1;let i=this.circles[0],o=+i.getAttribute("cx"),r=+i.getAttribute("cy");return Math.sqrt(L(t-o,2)+L(e-r,2))<=5}addPoint(t){if(this.points.push(t),this.isClose){let e=this.calculatedArea();this.dispatchEvent({type:"area",area:e})}}calculatedArea(){let t=this.points.map(o=>[o.x,o.y]),e=0,i=t.length;for(let o=0;o<i;o++){let r=(o+1)%i;e+=t[o][0]*t[r][1]-t[r][0]*t[o][1]}return Math.abs(e/2)}dispose(){super.dispose(),this.unRegistryEvent(),this.lines=[],this.circles=[]}};var le=require("three");var Xt=class extends k{constructor(t){super(t);this.context=t;a(this,"rect");a(this,"cornerRect",[]);a(this,"centerRect",[]);a(this,"graphic");a(this,"onUpdate",()=>{if(this.graphic){let t=new le.Box3().setFromObject(this.graphic),{camera:e,container:{clientWidth:i,clientHeight:o}}=this.context,{min:r,max:c}=t,h=y(r,e,i,o),l=y(c,e,i,o);z(this.rect,h.x,l.y,Math.abs(l.x-h.x),Math.abs(l.y-h.y));let{x:p,y:m}=h,{x:g,y:f}=l,d=5,b=[{x:p-d,y:f-d},{x:g-d,y:f-d},{x:p-d,y:m-d},{x:g-d,y:m-d}];for(let S=0;S<b.length;S++)z(this.cornerRect[S],b[S].x,b[S].y,d*2,d*2);let P=4,u=(p+g)/2,H=(m+f)/2,F=[{x:u-P,y:f-P},{x:p-P,y:H-P},{x:g-P,y:H-P},{x:u-P,y:m-P}];for(let S=0;S<F.length;S++)z(this.centerRect[S],F[S].x,F[S].y,P*2,P*2)}else{z(this.rect,0,0,0,0);for(let t=0;t<this.cornerRect.length;t++)z(this.cornerRect[t],0,0,0,0),z(this.centerRect[t],0,0,0,0)}});let{config:{svg:{line:e}}}=t;this.rect=j(e.stroke,"transparent"),this.svg.appendChild(this.rect);for(let i=0;i<4;i++)this.cornerRect[i]=j(e.stroke,"#ffffff"),this.centerRect[i]=j(e.stroke,"#ffffff"),this.svg.appendChild(this.cornerRect[i]),this.svg.appendChild(this.centerRect[i]);this.registryEvent()}setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}selectGraphic(t){this.graphic=t}dispose(){super.dispose(),this.unRegistryEvent(),this.rect=null,this.cornerRect=[],this.centerRect=[]}};var pe=require("three");var St=class extends k{constructor(t){super(t);a(this,"startPoint");a(this,"endPoint");a(this,"rect");a(this,"frustum",new pe.Frustum);a(this,"onPointerDown",t=>{if(!this.enable)return;let e=this.getIntersectByPointerEvent(t);e&&(this.startPoint=e),this.endPoint=void 0});a(this,"onPointerMove",t=>{if(!this.enable||!this.startPoint)return;let e=this.getIntersectByPointerEvent(t);e&&(this.endPoint=e)});a(this,"onPointerUp",t=>{if(!this.enable)return;let e=this.getIntersectByPointerEvent(t);e&&(this.endPoint=e),this.doSelect(),this.startPoint=void 0});a(this,"onUpdate",()=>{if(this.startPoint){let t=this.getSvgCoordinate(this.startPoint),e=M({},t);this.endPoint&&(e=this.getSvgCoordinate(this.endPoint));let i={x:Math.min(t.x,e.x),y:Math.min(t.y,e.y)},o=Math.abs(e.x-t.x),r=Math.abs(e.y-t.y);z(this.rect,i.x,i.y,o,r)}else z(this.rect,0,0,0,0)});let{config:{selectBox:{fill:e,stroke:i}}}=t;this.rect=j(i,e),this.svg.appendChild(this.rect),this.registryEvent()}setEnable(t){super.setEnable(t),z(this.rect,0,0,0,0),t?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:e,container:{clientWidth:i,clientHeight:o}}}=this,r=y(this.startPoint,e,i,o),c=y(this.endPoint,e,i,o),h={x:Math.min(r.x,c.x),y:Math.min(r.y,c.y)},l={x:Math.max(r.x,c.x),y:Math.max(r.y,c.y)},p=this.searchMapInFrustum(h,l);this.dispatchEvent({type:"selected",list:p})}}searchMapInFrustum(t,e){var o;let{context:i}=this;return((o=i.currentFloor)==null?void 0:o.graphicLayer.children.filter(r=>r instanceof B&&this.searchChildInFrustum(r,t,e)))||[]}searchChildInFrustum(t,e,i){let{context:{camera:o,container:{clientWidth:r,clientHeight:c}}}=this;if(!t)return!1;if(!t.mesh){let f=t.getPosition();if(f){let d=y(f,o,r,c);return J(d,e,i)}return!1}t.mesh.geometry.boundingBox||t.mesh.geometry.computeBoundingBox();let h=t.mesh.geometry.boundingBox;if(!h)return!1;let{min:l,max:p}=h,m=y(l,o,r,c),g=y(p,o,r,c);return!(!J(m,e,i)||!J(g,e,i))}dispose(){this.unRegistryEvent()}};var ut=class extends me.EventDispatcher{constructor(t){super();this.context=t;a(this,"_list",new Set);a(this,"boxSelection");a(this,"prevPanStatus");a(this,"prevRotateStatus");a(this,"downPoint",null);a(this,"isMultipleSelect",!1);a(this,"onPointerDown",t=>{this.downPoint={x:t.offsetX,y:t.offsetY}});a(this,"onPointerUp",t=>{if(!this.downPoint)return;let{offsetX:e,offsetY:i}=t,{x:o,y:r}=this.downPoint;if(Math.sqrt(L(o-e,2)+L(r-i,2))>3)return;let{graphics:c}=this.context.getGraphicsByDeviceXy(e,i),h=new Set(c.map(p=>p.options.id));this.context.getPoisByDeviceXy(e,i).forEach(p=>{var m;if(!h.has(p.options.id)){let g=((m=this.context.currentFloor)==null?void 0:m.graphicLayer.graphicMap.get(p.options.id))||null;g&&g.options.geometry.type==="point"&&(c.push(g),h.add(p.options.id))}}),(nt?t.metaKey:t.ctrlKey)||this._list.clear(),c.forEach(p=>this._list.add(p)),this.selectEnd(),this.downPoint=null});a(this,"onPointerOut",t=>{this.disableBoxSelection()});a(this,"onKeyDown",t=>{Et(t.key)&&this.enableBoxSelection()});a(this,"onKeyUp",t=>{Et(t.key)&&this.disableBoxSelection()});a(this,"onBoxSelected",({list:t})=>{this._list.clear(),t.forEach(e=>{this._list.add(e)}),this.selectEnd()});this.boxSelection=new St(t),this.boxSelection.setEnable(!1),this.registryEvent()}get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||(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()}};var de=require("three");var gt=class extends de.EventDispatcher{constructor(t){super();this.context=t;a(this,"curGraphics",new Set);a(this,"timer",new _);a(this,"graphicTimerMap",new Map);a(this,"onPointerMove",({graphics:t,pois:e,e:i})=>{let o=e.map(l=>{var p;return(p=this.context.currentFloor)==null?void 0:p.graphicLayer.graphicMap.get(l.options.id)}).filter(l=>l&&l.options.geometry.type==="point");if(!t.length&&!o.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:r}=this.context.config.hover,c=new Set;if(o.length){let l,p=1e4;o.forEach(m=>{let g=e.find(P=>P.options.id===m.options.id),{x:f,y:d}=g.clientPos,b=Math.sqrt(L(f-i.offsetX,2)+L(d-i.offsetY,2));b<p&&(p=b,l=m)}),c.add(l)}c.size||t.forEach(l=>c.add(l)),c.forEach(l=>{if(this.graphicTimerMap.get(l)||this.curGraphics.has(l))return;let p=this.timer.setTimeout(()=>{this.curGraphics.add(l),this.graphicTimerMap.delete(l),this.timer.clearTimeout(p),this.handleHoverGraphicsChange()},r);this.graphicTimerMap.set(l,p)}),this.graphicTimerMap.forEach((l,p)=>{c.has(p)||(this.timer.clearTimeout(l),this.graphicTimerMap.delete(p))});let h=this.curGraphics.size;this.curGraphics.forEach(l=>{c.has(l)||this.curGraphics.delete(l)}),h!==this.curGraphics.size&&this.handleHoverGraphicsChange()});a(this,"onPointerLevel",()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()});this.registryEvent()}handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel)}dispose(){this.unRegistryEvent(),this.timer.dispose()}};var G=require("three");function ue(s){return`${s.x}-${s.y}-${s.z}`}var Ot=class{constructor(n){this.context=n;a(this,"lineMaterialMap",new Map);a(this,"meshStandardMaterialMap",new Map);a(this,"meshBasicMaterialMap",new Map);a(this,"shaderMaterialMap",new Map)}generateLineMaterialKey({color:n,opacity:t}){return`${n}-${t}`}createLineMaterial({color:n,opacity:t}){let e=this.generateLineMaterialKey({color:n,opacity:t});if(this.lineMaterialMap.has(e))return this.lineMaterialMap.get(e);let i=new G.LineBasicMaterial({color:new G.Color(n).convertLinearToSRGB(),transparent:!0,opacity:t});return this.lineMaterialMap.set(e,i),i}createMeshStandardMaterial({color:n,opacity:t}){let e=`${n}-${t}`;if(this.meshStandardMaterialMap.has(e))return this.meshStandardMaterialMap.get(e);let i=new G.MeshStandardMaterial({color:new G.Color(n).convertLinearToSRGB(),roughness:1,transparent:!0,opacity:t,depthWrite:!0});return this.meshStandardMaterialMap.set(e,i),i}createMeshBasicMaterial({color:n,opacity:t}){let e=`${n}-${t}`;if(this.meshBasicMaterialMap.has(e))return this.meshBasicMaterialMap.get(e);let i=new G.MeshBasicMaterial({color:n,transparent:!0,opacity:t,depthWrite:!0});return this.meshBasicMaterialMap.set(e,i),i}createShaderMaterial({gradualColor:n,center:t,maxValue:e,opacity:i,direction:o,max:r,min:c}){let h=`${n.toString()}-${ue(t)}-${e}-${i}-${ue(o)}`;if(this.shaderMaterialMap.has(h))return this.shaderMaterialMap.get(h);let l=`
|
|
2
2
|
uniform vec3 uColor;
|
|
3
3
|
uniform vec3 uGradualColor;
|
|
4
4
|
uniform vec3 center;
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
void main() {
|
|
36
36
|
gl_FragColor = vec4(vColor.x, vColor.y, vColor.z, opacity);
|
|
37
37
|
}
|
|
38
|
-
`,d=new L.ShaderMaterial({uniforms:{uColor:{value:new L.Color(n[0]).convertLinearToSRGB()},uGradualColor:{value:new L.Color(n[1]).convertLinearToSRGB()},center:{value:t},maxValue:{value:e},opacity:{value:i},uDirection:{value:o},uMax:{value:a},uMin:{value:c}},vertexShader:l,fragmentShader:p,side:L.DoubleSide});return this.shaderMaterialMap.set(h,d),d}dispose(){this.lineMaterialMap.forEach((n,t)=>{n.dispose()}),this.lineMaterialMap.clear(),this.meshStandardMaterialMap.forEach((n,t)=>{n.dispose()}),this.meshStandardMaterialMap.clear(),this.meshBasicMaterialMap.forEach((n,t)=>{n.dispose()}),this.meshBasicMaterialMap.clear(),this.shaderMaterialMap.forEach((n,t)=>{n.dispose()}),this.shaderMaterialMap.clear()}};var X=require("three");var Ot=class{constructor(n){this.context=n;s(this,"prevCamera",{position:new X.Vector3,zoom:1,target:new X.Vector3});s(this,"enable",!0);s(this,"onCameraChange",()=>{});this.registryEvent(),this.changePrevCamera()}setEnable(n){this.enable=n,n?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.currentFloor)return null;let n=new X.Box3().setFromObject(this.context.currentFloor.groundUpper),{camera:t,container:{clientWidth:e,clientHeight:i}}=this.context,{min:o,max:a}=n,c=y(o,t,e,i),h=y(a,t,e,i),l=y(new X.Vector3(o.x,a.y,a.z),t,e,i),p=y(new X.Vector3(a.x,o.y,o.z),t,e,i),d=Math.min(c.x,h.x,l.x,p.x),v=Math.max(c.x,h.x,l.x,p.x),g=Math.min(c.y,h.y,l.y,p.y),m=Math.max(c.y,h.y,l.y,p.y);return{left:d,right:v,top:g,bottom:m}}checkDistanceToScreenEdge({left:n,right:t,top:e,bottom:i}){let{width:o,height:a}=this.context.clientSize,[c,h,l,p]=this.context.config.cameraBound.padding;return n<=p&&o-t<=h&&e<=c&&a-i<=l}dispose(){this.unRegistryEvent()}};var ft=class extends x.EventDispatcher{constructor(t,e){super();this.container=t;this.config=e;s(this,"scene",At());s(this,"renderer",Bt());s(this,"camera");s(this,"control");s(this,"lights",Tt());s(this,"timer",new H);s(this,"tweenGroup",new W.Group);s(this,"currentFloor");s(this,"selection");s(this,"hoverHelper");s(this,"basicRatio");s(this,"materialFactory");s(this,"cameraBound");s(this,"clientSize",{width:0,height:0,x:0,y:0});s(this,"onWindowResize",()=>{let{container:t,camera:e,renderer:i}=this,{clientWidth:o,clientHeight:a}=t;o=Math.max(1,o),a=Math.max(1,a),e.left=-o/2,e.right=o/2,e.top=a/2,e.bottom=-a/2,e.updateProjectionMatrix(),i.setSize(o,a),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:o,height:a})});s(this,"onClick",t=>{let{graphics:e,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY);e.length&&this.dispatchEvent({type:"graphic-click",graphics:e,position:i});let o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);o.length&&this.dispatchEvent({type:"poi-click",pois:o})});s(this,"onPointerover",t=>{let{graphics:e,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY),o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);this.dispatchEvent({type:"pointer-over",e:t,graphics:e,pois:o,position:i})});s(this,"onPointermove",t=>{let{graphics:e,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY),o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);this.dispatchEvent({type:"pointer-move",e:t,graphics:e,pois:o,position:i})});s(this,"onPointerleave",()=>{this.dispatchEvent({type:"pointer-level"})});s(this,"onSelectionSelect",({graphics:t,isMultipleSelect:e})=>{this.dispatchEvent({type:"select-graphic",graphics:t,isMultipleSelect:e})});s(this,"onHoverChange",({graphics:t})=>{this.dispatchEvent({type:"hover",graphics:t})});this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new ut(this),this.hoverHelper=new gt(this),this.materialFactory=new Dt(this),this.resizeClientSize(),this.registryEvent()}resizeClientSize(){let{x:t,y:e,width:i,height:o}=this.container.getBoundingClientRect();this.clientSize={width:i||this.container.clientWidth,height:o||this.container.clientHeight,x:t,y:e}}init(){let{clientWidth:t,clientHeight:e}=this.container;this.camera=kt(t,e),this.renderer.setSize(t,e),this.control=Ft(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",()=>{var o;let i=this.control.getPolarAngle();(o=this.currentFloor)==null||o.setShadowOpacity(i/this.config.control.maxPolar),this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})}),this.cameraBound=new Ot(this)}getRatio(t=new x.Vector3(0,0,0),e=new x.Vector3(100,0,0)){let{clientWidth:i,clientHeight:o}=this.container,a=y(t,this.camera,i,o),c=y(e,this.camera,i,o);return Math.ceil(Math.sqrt(C(c.x-a.x,2)+C(c.y-a.y,2)))}changeAmbientLightColor(t){this.lights.children.forEach(e=>{e instanceof x.AmbientLight&&(e.color=new x.Color(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)}getGraphicsByDeviceXy(t,e){var c;let i=new x.Vector2;i.x=t/this.clientSize.width*2-1,i.y=e/this.clientSize.height*-2+1;let o=new x.Raycaster;return o.setFromCamera(i,this.camera),((c=this.currentFloor)==null?void 0:c.graphicLayer.getGraphicByRaycaster(o))||{graphics:[],position:null}}getPoisByDeviceXy(t,e){var o;return((o=this.currentFloor)==null?void 0:o.poiLayer.getPoiByDeviceXy(t,e))||[]}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.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.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange)}setPolarAngle(t,e=500){return e===0?(this.control.maxPolarAngle=t,this.control.minPolarAngle=t,this.control.update(),this.control.maxPolarAngle=this.config.control.maxPolar,this.control.minPolarAngle=0,Promise.resolve()):q(new Promise(i=>{let o={polar:this.control.getPolarAngle()},a={polar:t},c=new W.Tween(o,this.tweenGroup).to(a,e).onUpdate(()=>{this.control.maxPolarAngle=o.polar,this.control.minPolarAngle=o.polar,this.control.update()}).onComplete(()=>{this.control.enabled=!0,this.control.maxPolarAngle=this.config.control.maxPolar,this.control.minPolarAngle=0,this.tweenGroup.remove(c),i(!0)}).onStart(()=>{this.control.enabled=!1}).start()}),e+500)}setAzimuthalAngle(t,e=500){if(e===0){this.control.maxAzimuthAngle=t,this.control.minAzimuthAngle=t,this.control.update(),this.control.maxAzimuthAngle=1/0,this.control.minAzimuthAngle=1/0;return}return q(new Promise(i=>{let o={azimuthal:this.control.getAzimuthalAngle()},a={azimuthal:t},c=new W.Tween(o,this.tweenGroup).to(a,e).onUpdate(()=>{this.control.maxAzimuthAngle=o.azimuthal,this.control.minAzimuthAngle=o.azimuthal,this.control.update()}).onComplete(()=>{this.control.enabled=!0,this.control.maxAzimuthAngle=1/0,this.control.minAzimuthAngle=1/0,this.tweenGroup.remove(c),i(!0)}).onStart(()=>{this.control.enabled=!1}).start()}),e+500)}getCameraLookAt(){return new x.Vector3().subVectors(this.control.target,this.camera.position)}setZoom(t,e,i=500){let o=this.getCameraLookAt(),a={zoom:this.camera.zoom,target:this.control.target.clone()};if(!i){this.camera.position.copy(e.clone().sub(o)),this.control.target.copy(e),this.camera.zoom=t,this.control.update();return}return q(new Promise(c=>{let h=new W.Tween(a,this.tweenGroup).to({zoom:t,target:e},i).onUpdate(()=>{this.camera.position.copy(a.target.clone().sub(o)),this.control.target.copy(a.target),this.camera.zoom=a.zoom,this.control.update()}).onComplete(()=>{this.tweenGroup.remove(h),this.control.enabled=!0,c(!0)}).onStart(()=>{this.control.enabled=!1}).start()}),i+500)}getFitCameraToObjectZoom(t,e=[20,20,20,20],i=500,o=!0){let[a,c,h,l]=e,{clientSize:{width:p,height:d}}=this,v=this.control.getPolarAngle();o&&this.setPolarAngle(0,0);let g=new x.Box3().setFromObject(t);this.setPolarAngle(v,0);let{max:m,min:b}=g,w=new x.Vector3(b.x,m.y,b.z),u=new x.Vector3(m.x,m.y,b.z),R=new x.Vector3(m.x,b.y,m.z),T=new x.Vector3(b.x,b.y,m.z),G=y(w,this.camera,p,d),qt=y(u,this.camera,p,d),Nt=y(T,this.camera,p,d),Qt=y(R,this.camera,p,d),Jt=new x.Box2().setFromPoints([new x.Vector2(G.x,G.y),new x.Vector2(qt.x,qt.y),new x.Vector2(Nt.x,Nt.y),new x.Vector2(Qt.x,Qt.y)]).getSize(new x.Vector2),xe=(p-c-l)/Jt.x,be=(d-a-h)/Jt.y,we=Math.min(xe,be),Pe=new x.Vector3((m.x+b.x)/2,(m.y+b.y)/2,0);return{zoom:we*this.camera.zoom,center:Pe}}fitCameraToObject(t,e=[20,20,20,20],i=500,o=!0){let{zoom:a,center:c}=this.getFitCameraToObjectZoom(t,e,i,o);return this.setZoom(a,c,i)}getFitCameraToGroundZoom(t=[20,20,20,20],e=500,i=!0){if(this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,e,i).zoom}fitCameraToGround(t=[20,20,20,20],e=500,i=!0){return this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundUpper,t,e,i):Promise.resolve(!1)}setCameraPosition(t,e){return q(new Promise(i=>{let o=this.camera.position.clone(),a=this.getCameraLookAt(),c=new W.Tween(o,this.tweenGroup).to(t,e).onUpdate(()=>{this.camera.position.copy(o.clone().sub(a)),this.control.target.copy(o.clone()),this.control.update()}).onComplete(()=>{this.tweenGroup.remove(c),this.camera.position.copy(o.clone().sub(a)),this.control.target.copy(t.clone()),this.control.update(),this.control.enabled=!0,i(!0)}).onStart(()=>{this.control.enabled=!1}).start()}),e+500)}render(){this.renderer.render(this.scene,this.camera),this.dispatchEvent({type:"update"}),this.timer.requestAnimationFrame(()=>{this.render()}),this.tweenGroup.update()}dispose(){this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll(),this.unRegistryEvent(),this.container.removeChild(this.renderer.domElement),this.timer.dispose(),this.renderer.dispose(),this.lights.children.forEach(t=>t.dispose()),this.materialFactory.dispose(),F(this.scene)}};var ue=require("lodash"),ge={apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get"},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 Wt(r){return(0,ue.merge)({},ge,r)}var ve=require("lodash");var ye=(t=>(t[t.D2=0]="D2",t[t.D3=1.1]="D3",t))(ye||{}),Yt=class extends fe.EventDispatcher{constructor(t,e={}){super();this.container=t;s(this,"config");s(this,"context");s(this,"polarKeys",[]);s(this,"azimuthalKeys",[]);s(this,"svgLine");s(this,"svgPolygon");s(this,"basicZoom",1);s(this,"prevCameraZoom",1);s(this,"type","2d");s(this,"floorDataMap",new Map);s(this,"buildingGroundMap",new Map);s(this,"currentBuildGround",null);s(this,"observe",null);s(this,"onControlChange",()=>{let{camera:{zoom:t}}=this.context;t!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=t)});s(this,"onKeydown",t=>{this.polarKeys.includes(t.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(t.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)});s(this,"onKeyUp",t=>{if(this.polarKeys.includes(t.code)){let e=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=e,this.context.control.minPolarAngle=e}if(this.azimuthalKeys.includes(t.code)){let e=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=e,this.context.control.minAzimuthAngle=e}});s(this,"resize",()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let t=this.context.control.getAzimuthalAngle(),e=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 i=this.context.getFitCameraToGroundZoom(void 0,0);this.basicZoom=i||0,this.context.control.minZoom=this.basicZoom,this.context.control.maxZoom=this.basicZoom*25,this.context.camera.zoom=e,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(t,0),this.context.cameraBound.setEnable(!0)});this.config=Wt(e),this.context=new ft(t,this.config),this.registryEvent(),this.context.render()}loadGraphics(l){return B(this,arguments,function*({brand:t,project:e,phase:i,building:o,floor:a,ts:c,resource_type_list:h}){let{apiDomain:p,apiPath:{floorGraphic:d},apiInfo:v}=this.config,g=`${p}${d}?brand=${t}&project=${e}&phase=${i}&building=${o}&floor=${a}&ts=${c}&resource_type_list=${h}`;return yield fetch(g,v).then(b=>b.json()).then(b=>b.data).then(b=>((b||[]).map(w=>w.info=JSON.parse(w.info)),b||[]))})}getBuildingKey({brand:t,project:e,phase:i,building:o}){return`${t}-${e}-${i}-${o}`}loadBuildingGround(a){return B(this,arguments,function*({brand:t,project:e,phase:i,building:o}){let c=this.getBuildingKey({brand:t,project:e,phase:i,building:o});if(this.buildingGroundMap.get(c))return this.buildingGroundMap.get(c)||null;let{apiDomain:h,apiPath:{floorRange:l},apiInfo:p}=this.config,d=`${h}${l}?brand=${t}&project=${e}&phase=${i}&building=${o}`,v=yield fetch(d,p).then(g=>g.json()).then(g=>g.data).then(g=>{let m=(g||[])[0];return m&&(m.info=JSON.parse(m.info)),m});return this.buildingGroundMap.set(c,v),v})}getFloorKey({brand:t,project:e,phase:i,building:o,floor:a,ts:c,resource_type_list:h}){return`${t}-${e}-${i}-${o}-${a}-${c}-${h}`}load(l){return B(this,arguments,function*({brand:t,project:e,phase:i,building:o,floor:a,ts:c,resource_type_list:h}){let p=this.getFloorKey({brand:t,project:e,phase:i,building:o,floor:a,ts:c,resource_type_list:h});if(this.floorDataMap.get(p))return;let[d,v]=yield Promise.all([this.loadGraphics({brand:t,project:e,phase:i,building:o,floor:a,ts:c,resource_type_list:h}),this.loadBuildingGround({brand:t,project:e,phase:i,building:o})]);if(v){let w=wt(v.info.geometry.cds[0]);d.forEach(u=>{if(u.info.geometry.coords=JSON.parse(JSON.stringify(u.info.geometry.cds)),u.info.geometry.type==="polygon")u.info.geometry.coords.map(R=>{Array.isArray(R)&&R.forEach(T=>{T[0]-=w[0],T[1]-=w[1]})});else{let[R,T]=u.info.geometry.cds;u.info.geometry.coords=[R-w[0],T-w[1]]}u.info.transformToBuildingGround=!0})}let{ground:g,markGraphic:m,graphic:b}=this.config;for(let w=0;w<d.length;w++){let u=d[w];u.info.deltaHeight=1e-5*(w+1),u.info.group==="ground"?(u.info.fillColor=g.color,u.info.fillOpacity=g.opacity,u.info.height=g.height,u.info.stroke=g.stroke,u.info.strokeColor=g.strokeColor,u.info.strokeOpacity=g.strokeOpacity):u.info.userData.mark?(u.info.height=m.height,u.info.fillColor=m.color,u.info.fillOpacity=m.opacity,u.info.stroke=m.stroke,u.info.strokeColor=m.strokeColor,u.info.strokeOpacity=m.strokeOpacity):(u.info.fillOpacity=b.fillOpacity,this.config.initTransToMark&&(u.info.height=m.height,u.info.fillColor=m.color,u.info.stroke=m.stroke,u.info.strokeColor=m.strokeColor,u.info.strokeOpacity=m.strokeOpacity))}return this.config.useFloorCache||this.floorDataMap.clear(),this.floorDataMap.set(p,d),d})}createFloor(t){let e=new pt(this.context);if(!t.length)return{curFloor:e,graphics:[]};let i=new Map,o=[];for(let a of t)if(a.info.group==="ground")e.createGround(a.info);else{let c=e.addGraphic(a.info);c.userData.data=a,i.set(a.legacy_id,c),o.push(c)}return e.userData.legacyToGraphicMap=i,{curFloor:e,graphics:o}}switchFloor({brand:t,project:e,phase:i,building:o,floor:a,ts:c,resource_type_list:h}){let l=this.getFloorKey({brand:t,project:e,phase:i,building:o,floor:a,ts:c,resource_type_list:h}),p=this.floorDataMap.get(l);if(this.context.control.removeEventListener("change",this.onControlChange),p){let d=this.getBuildingKey({brand:t,project:e,phase:i,building:o});this.currentBuildGround=this.buildingGroundMap.get(d)||null;let v=this.createFloor(p);v?(this.context.cameraBound.setEnable(!1),this.context.switchFloor(v.curFloor),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.fitCameraToGround(void 0,0),this.basicZoom=this.context.camera.zoom,this.context.control.minZoom=this.basicZoom,this.context.control.maxZoom=this.basicZoom*25,this.context.control.addEventListener("change",this.onControlChange),this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.onControlChange(),this.context.cameraBound.setEnable(!0)):console.warn("[switchFloor error] ["+a+"] \u697C\u5C42\u6CA1\u6709\u6570\u636E")}else console.warn("[switchFloor error] \u6CA1\u6709\u8FD9\u4E2A\u697C\u5C42\uFF0C\u8BF7\u5148\u8C03\u7528load\u65B9\u6CD5\u52A0\u8F7D\u697C\u5C42")}addModel(t,e){var i;if(t.options.geometry.type==="polygon"){let o=(i=this.context.currentFloor)==null?void 0:i.addModel(yt(E({},e),{position:t.getPosition().setZ(.1),id:t.options.id}));if(o){let{facilityAngle:a=0,facilityXScale:c=1,facilityYScale:h=1}=t.options.userData;o.rotateZ((180-a)/180*Math.PI),o.scale.set(c,h,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 z))||[]}createGraphicPoi(t,e){if(this.context.currentFloor){e.id===void 0&&(e.id=t.options.id);let i=t.getCenter();return this.context.currentFloor.addPoi(yt(E({},e),{position:yt(E({},i),{z:i.z+t.options.height/2})}))}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,e=500){let i=t.getPosition();return this.context.setCameraPosition(i,e)}translateElementToCenterX(t,e=500){return B(this,null,function*(){let{y:i,z:o}=this.context.control.target,a=t.getPosition();a.setY(i),a.setZ(o),yield this.context.setCameraPosition(a,e)})}getElementDeviceCoordinate(t){let e=t.position.clone(),{clientWidth:i,clientHeight:o}=this.container;return y(e,this.context.camera,i,o)}changeMapType(t,e=500){return this.type=t,t==="2d"?this.context.setPolarAngle(0,e):this.context.setPolarAngle(1.1,e)}resetView(t=300){return B(this,null,function*(){let e=t/3;yield this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,e),yield this.changeMapType(this.type,e),yield this.context.fitCameraToGround(this.config.defaultPadding,e,!1)})}reduceMap(t=.5,e=500){let i=this.context.camera.zoom;return this.context.setZoom(i-t,this.context.control.target,e)}enlargeMap(t=.5,e=500){let i=this.context.camera.zoom;return this.context.setZoom(i+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((0,ve.debounce)(this.resize,5));t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t=.1){let e=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=e+t,this.context.control.minAzimuthAngle=e+t,this.context.control.update()}measureDistance(){return B(this,null,function*(){return this.cancelDistance(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgLine=new mt(this.context);let i=this.svgLine.dispose.bind(this.svgLine);this.svgLine.dispose=function(){i(),e("cancel")},this.svgLine.addEventListener("distance",({distance:o})=>{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 dt(this.context);let i=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){i(),e("cancel")},this.svgPolygon.addEventListener("area",({area:o})=>{t(o)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){var e;return((e=this.context.currentFloor)==null?void 0:e.graphicLayer.getGraphicByNodeId(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 i=wt(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(o=>{Array.isArray(o)&&o.forEach(a=>{a[0]-=i[0],a[1]-=i[1]})});else{let[o,a]=t.geometry.cds;t.geometry.coords=[o-i[0],a-i[1]]}}return(e=this.context.currentFloor)==null?void 0:e.graphicLayer.createGraphic(t)}removePoiById(t){var e;return(e=this.context.currentFloor)==null?void 0:e.poiLayer.removePoiById(t)}getPoiById(t){var e;return(e=this.context.currentFloor)==null?void 0:e.poiLayer.getPoiById(t)}getPois(){var t;return(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(e=>!e.options.built_in)}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.context.dispose(),this.floorDataMap.clear(),this.buildingGroundMap.clear(),$t(),It(),Zt(),this.unRegistryEvent()}};
|
|
38
|
+
`,m=new G.ShaderMaterial({uniforms:{uColor:{value:new G.Color(n[0]).convertLinearToSRGB()},uGradualColor:{value:new G.Color(n[1]).convertLinearToSRGB()},center:{value:t},maxValue:{value:e},opacity:{value:i},uDirection:{value:o},uMax:{value:r},uMin:{value:c}},vertexShader:l,fragmentShader:p,side:G.DoubleSide});return this.shaderMaterialMap.set(h,m),m}dispose(){this.lineMaterialMap.forEach((n,t)=>{n.dispose()}),this.lineMaterialMap.clear(),this.meshStandardMaterialMap.forEach((n,t)=>{n.dispose()}),this.meshStandardMaterialMap.clear(),this.meshBasicMaterialMap.forEach((n,t)=>{n.dispose()}),this.meshBasicMaterialMap.clear(),this.shaderMaterialMap.forEach((n,t)=>{n.dispose()}),this.shaderMaterialMap.clear()}};var X=require("three");var Dt=class{constructor(n){this.context=n;a(this,"prevCamera",{position:new X.Vector3,zoom:1,target:new X.Vector3});a(this,"enable",!0);a(this,"onCameraChange",()=>{});this.registryEvent(),this.changePrevCamera()}setEnable(n){this.enable=n,n?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.currentFloor)return null;let n=new X.Box3().setFromObject(this.context.currentFloor.groundUpper),{camera:t,container:{clientWidth:e,clientHeight:i}}=this.context,{min:o,max:r}=n,c=y(o,t,e,i),h=y(r,t,e,i),l=y(new X.Vector3(o.x,r.y,r.z),t,e,i),p=y(new X.Vector3(r.x,o.y,o.z),t,e,i),m=Math.min(c.x,h.x,l.x,p.x),g=Math.max(c.x,h.x,l.x,p.x),f=Math.min(c.y,h.y,l.y,p.y),d=Math.max(c.y,h.y,l.y,p.y);return{left:m,right:g,top:f,bottom:d}}checkDistanceToScreenEdge({left:n,right:t,top:e,bottom:i}){let{width:o,height:r}=this.context.clientSize,[c,h,l,p]=this.context.config.cameraBound.padding;return n<=p&&o-t<=h&&e<=c&&r-i<=l}dispose(){this.unRegistryEvent()}};var ft=class extends x.EventDispatcher{constructor(t,e){super();this.container=t;this.config=e;a(this,"scene",Bt());a(this,"renderer",At());a(this,"camera");a(this,"control");a(this,"lights",kt());a(this,"timer",new _);a(this,"tweenGroup",new W.Group);a(this,"currentFloor");a(this,"selection");a(this,"hoverHelper");a(this,"basicRatio");a(this,"materialFactory");a(this,"cameraBound");a(this,"clientSize",{width:0,height:0,x:0,y:0});a(this,"onWindowResize",()=>{let{container:t,camera:e,renderer:i}=this,{clientWidth:o,clientHeight:r}=t;o=Math.max(1,o),r=Math.max(1,r),e.left=-o/2,e.right=o/2,e.top=r/2,e.bottom=-r/2,e.updateProjectionMatrix(),i.setSize(o,r),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:o,height:r})});a(this,"onClick",t=>{let{graphics:e,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY);e.length&&this.dispatchEvent({type:"graphic-click",graphics:e,position:i});let o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);o.length&&this.dispatchEvent({type:"poi-click",pois:o})});a(this,"onPointerover",t=>{let{graphics:e,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY),o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);this.dispatchEvent({type:"pointer-over",e:t,graphics:e,pois:o,position:i})});a(this,"onPointermove",t=>{let{graphics:e,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY),o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);this.dispatchEvent({type:"pointer-move",e:t,graphics:e,pois:o,position:i})});a(this,"onPointerleave",()=>{this.dispatchEvent({type:"pointer-level"})});a(this,"onSelectionSelect",({graphics:t,isMultipleSelect:e})=>{this.dispatchEvent({type:"select-graphic",graphics:t,isMultipleSelect:e})});a(this,"onHoverChange",({graphics:t})=>{this.dispatchEvent({type:"hover",graphics:t})});this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new ut(this),this.hoverHelper=new gt(this),this.materialFactory=new Ot(this),this.resizeClientSize(),this.registryEvent()}resizeClientSize(){let{x:t,y:e,width:i,height:o}=this.container.getBoundingClientRect();this.clientSize={width:i||this.container.clientWidth,height:o||this.container.clientHeight,x:t,y:e}}init(){let{clientWidth:t,clientHeight:e}=this.container;this.camera=Tt(t,e),this.renderer.setSize(t,e),this.control=Ft(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",()=>{var o;let i=this.control.getPolarAngle();(o=this.currentFloor)==null||o.setShadowOpacity(i/this.config.control.maxPolar),this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})}),this.cameraBound=new Dt(this)}getRatio(t=new x.Vector3(0,0,0),e=new x.Vector3(100,0,0)){let{clientWidth:i,clientHeight:o}=this.container,r=y(t,this.camera,i,o),c=y(e,this.camera,i,o);return Math.ceil(Math.sqrt(L(c.x-r.x,2)+L(c.y-r.y,2)))}changeAmbientLightColor(t){this.lights.children.forEach(e=>{e instanceof x.AmbientLight&&(e.color=new x.Color(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)}getGraphicsByDeviceXy(t,e){var c;let i=new x.Vector2;i.x=t/this.clientSize.width*2-1,i.y=e/this.clientSize.height*-2+1;let o=new x.Raycaster;return o.setFromCamera(i,this.camera),((c=this.currentFloor)==null?void 0:c.graphicLayer.getGraphicByRaycaster(o))||{graphics:[],position:null}}getPoisByDeviceXy(t,e){var o;return((o=this.currentFloor)==null?void 0:o.poiLayer.getPoiByDeviceXy(t,e))||[]}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.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.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange)}setPolarAngle(t,e=500){return e===0?(this.control.maxPolarAngle=t,this.control.minPolarAngle=t,this.control.update(),this.control.maxPolarAngle=this.config.control.maxPolar,this.control.minPolarAngle=0,Promise.resolve()):q(new Promise(i=>{let o={polar:this.control.getPolarAngle()},r={polar:t},c=new W.Tween(o,this.tweenGroup).to(r,e).onUpdate(()=>{this.control.maxPolarAngle=o.polar,this.control.minPolarAngle=o.polar,this.control.update()}).onComplete(()=>{this.control.enabled=!0,this.control.maxPolarAngle=this.config.control.maxPolar,this.control.minPolarAngle=0,this.tweenGroup.remove(c),i(!0)}).onStart(()=>{this.control.enabled=!1}).start()}),e+500)}setAzimuthalAngle(t,e=500){if(e===0){this.control.maxAzimuthAngle=t,this.control.minAzimuthAngle=t,this.control.update(),this.control.maxAzimuthAngle=1/0,this.control.minAzimuthAngle=1/0;return}return q(new Promise(i=>{let o={azimuthal:this.control.getAzimuthalAngle()},r={azimuthal:t},c=new W.Tween(o,this.tweenGroup).to(r,e).onUpdate(()=>{this.control.maxAzimuthAngle=o.azimuthal,this.control.minAzimuthAngle=o.azimuthal,this.control.update()}).onComplete(()=>{this.control.enabled=!0,this.control.maxAzimuthAngle=1/0,this.control.minAzimuthAngle=1/0,this.tweenGroup.remove(c),i(!0)}).onStart(()=>{this.control.enabled=!1}).start()}),e+500)}getCameraLookAt(){return new x.Vector3().subVectors(this.control.target,this.camera.position)}setZoom(t,e,i=500){let o=this.getCameraLookAt(),r={zoom:this.camera.zoom,target:this.control.target.clone()};if(!i){this.camera.position.copy(e.clone().sub(o)),this.control.target.copy(e),this.camera.zoom=t,this.control.update();return}return q(new Promise(c=>{let h=new W.Tween(r,this.tweenGroup).to({zoom:t,target:e},i).onUpdate(()=>{this.camera.position.copy(r.target.clone().sub(o)),this.control.target.copy(r.target),this.camera.zoom=r.zoom,this.control.update()}).onComplete(()=>{this.tweenGroup.remove(h),this.control.enabled=!0,c(!0)}).onStart(()=>{this.control.enabled=!1}).start()}),i+500)}getFitCameraToObjectZoom(t,e=[20,20,20,20],i=500,o=!0){let[r,c,h,l]=e,{clientSize:{width:p,height:m}}=this,g=this.control.getPolarAngle();o&&this.setPolarAngle(0,0);let f=new x.Box3().setFromObject(t);this.setPolarAngle(g,0);let{max:d,min:b}=f,P=new x.Vector3(b.x,d.y,b.z),u=new x.Vector3(d.x,d.y,b.z),H=new x.Vector3(d.x,b.y,d.z),F=new x.Vector3(b.x,b.y,d.z),S=y(P,this.camera,p,m),qt=y(u,this.camera,p,m),Nt=y(F,this.camera,p,m),Qt=y(H,this.camera,p,m),Jt=new x.Box2().setFromPoints([new x.Vector2(S.x,S.y),new x.Vector2(qt.x,qt.y),new x.Vector2(Nt.x,Nt.y),new x.Vector2(Qt.x,Qt.y)]).getSize(new x.Vector2),be=(p-c-l)/Jt.x,Pe=(m-r-h)/Jt.y,we=Math.min(be,Pe),Me=new x.Vector3((d.x+b.x)/2,(d.y+b.y)/2,0);return{zoom:we*this.camera.zoom,center:Me}}fitCameraToObject(t,e=[20,20,20,20],i=500,o=!0){let{zoom:r,center:c}=this.getFitCameraToObjectZoom(t,e,i,o);return this.setZoom(r,c,i)}getFitCameraToGroundZoom(t=[20,20,20,20],e=500,i=!0){if(this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,e,i).zoom}fitCameraToGround(t=[20,20,20,20],e=500,i=!0){return this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundUpper,t,e,i):Promise.resolve(!1)}setCameraPosition(t,e){return q(new Promise(i=>{let o=this.camera.position.clone(),r=this.getCameraLookAt(),c=new W.Tween(o,this.tweenGroup).to(t,e).onUpdate(()=>{this.camera.position.copy(o.clone().sub(r)),this.control.target.copy(o.clone()),this.control.update()}).onComplete(()=>{this.tweenGroup.remove(c),this.camera.position.copy(o.clone().sub(r)),this.control.target.copy(t.clone()),this.control.update(),this.control.enabled=!0,i(!0)}).onStart(()=>{this.control.enabled=!1}).start()}),e+500)}render(){this.renderer.render(this.scene,this.camera),this.dispatchEvent({type:"update"}),this.timer.requestAnimationFrame(()=>{this.render()}),this.tweenGroup.update()}dispose(){this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll(),this.unRegistryEvent(),this.container.removeChild(this.renderer.domElement),this.timer.dispose(),this.renderer.dispose(),this.lights.children.forEach(t=>t.dispose()),this.materialFactory.dispose(),R(this.scene)}};var ge=require("lodash"),fe={apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get"},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 Wt(s){return(0,ge.merge)({},fe,s)}var ye=require("lodash");var xe=(t=>(t[t.D2=0]="D2",t[t.D3=1.1]="D3",t))(xe||{}),Yt=class extends ve.EventDispatcher{constructor(t,e={}){super();this.container=t;a(this,"config");a(this,"context");a(this,"polarKeys",[]);a(this,"azimuthalKeys",[]);a(this,"svgLine");a(this,"svgPolygon");a(this,"basicZoom",1);a(this,"prevCameraZoom",1);a(this,"type","2d");a(this,"floorDataMap",new Map);a(this,"buildingGroundMap",new Map);a(this,"currentBuildGround",null);a(this,"observe",null);a(this,"onControlChange",()=>{let{camera:{zoom:t}}=this.context;t!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=t)});a(this,"onKeydown",t=>{this.polarKeys.includes(t.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(t.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)});a(this,"onKeyUp",t=>{if(this.polarKeys.includes(t.code)){let e=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=e,this.context.control.minPolarAngle=e}if(this.azimuthalKeys.includes(t.code)){let e=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=e,this.context.control.minAzimuthAngle=e}});a(this,"resize",()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let t=this.context.control.getAzimuthalAngle(),e=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 i=this.context.getFitCameraToGroundZoom(void 0,0);this.basicZoom=i||0,this.context.control.minZoom=this.basicZoom,this.context.control.maxZoom=this.basicZoom*25,this.context.camera.zoom=e,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(t,0),this.context.cameraBound.setEnable(!0)});this.config=Wt(e),this.context=new ft(t,this.config),this.registryEvent(),this.context.render()}loadGraphics(l){return T(this,arguments,function*({brand:t,project:e,phase:i,building:o,floor:r,ts:c,resource_type_list:h}){let{apiDomain:p,apiPath:{floorGraphic:m},apiInfo:g}=this.config,f=`${p}${m}?brand=${t}&project=${e}&phase=${i}&building=${o}&floor=${r}&ts=${c}&resource_type_list=${h}`;return yield fetch(f,g).then(b=>b.json()).then(b=>b.data).then(b=>((b||[]).map(P=>P.info=JSON.parse(P.info)),b||[]))})}getBuildingKey({brand:t,project:e,phase:i,building:o}){return`${t}-${e}-${i}-${o}`}loadBuildingGround(r){return T(this,arguments,function*({brand:t,project:e,phase:i,building:o}){let c=this.getBuildingKey({brand:t,project:e,phase:i,building:o});if(this.buildingGroundMap.get(c))return this.buildingGroundMap.get(c)||null;let{apiDomain:h,apiPath:{floorRange:l},apiInfo:p}=this.config,m=`${h}${l}?brand=${t}&project=${e}&phase=${i}&building=${o}`,g=yield fetch(m,p).then(f=>f.json()).then(f=>f.data).then(f=>{let d=(f||[])[0];return d&&(d.info=JSON.parse(d.info)),d});return this.buildingGroundMap.set(c,g),g})}getFloorKey({brand:t,project:e,phase:i,building:o,floor:r,ts:c,resource_type_list:h}){return`${t}-${e}-${i}-${o}-${r}-${c}-${h}`}load(l){return T(this,arguments,function*({brand:t,project:e,phase:i,building:o,floor:r,ts:c,resource_type_list:h}){let p=this.getFloorKey({brand:t,project:e,phase:i,building:o,floor:r,ts:c,resource_type_list:h});if(this.floorDataMap.get(p))return;let[m,g]=yield Promise.all([this.loadGraphics({brand:t,project:e,phase:i,building:o,floor:r,ts:c,resource_type_list:h}),this.loadBuildingGround({brand:t,project:e,phase:i,building:o})]);if(g){let P=Pt(g.info.geometry.cds[0]);m.forEach(u=>{if(u.info.geometry.coords=JSON.parse(JSON.stringify(u.info.geometry.cds)),u.info.geometry.type==="polygon")u.info.geometry.coords.map(H=>{Array.isArray(H)&&H.forEach(F=>{F[0]-=P[0],F[1]-=P[1]})});else{let[H,F]=u.info.geometry.cds;u.info.geometry.coords=[H-P[0],F-P[1]]}u.info.transformToBuildingGround=!0})}let{ground:f,markGraphic:d,graphic:b}=this.config;for(let P=0;P<m.length;P++){let u=m[P];u.info.deltaHeight=1e-5*(P+1),u.info.group==="ground"?(u.info.fillColor=f.color,u.info.fillOpacity=f.opacity,u.info.height=f.height,u.info.stroke=f.stroke,u.info.strokeColor=f.strokeColor,u.info.strokeOpacity=f.strokeOpacity):u.info.userData.mark?(u.info.height=d.height,u.info.fillColor=d.color,u.info.fillOpacity=d.opacity,u.info.stroke=d.stroke,u.info.strokeColor=d.strokeColor,u.info.strokeOpacity=d.strokeOpacity):(u.info.fillOpacity=b.fillOpacity,this.config.initTransToMark&&(u.info.height=d.height,u.info.fillColor=d.color,u.info.stroke=d.stroke,u.info.strokeColor=d.strokeColor,u.info.strokeOpacity=d.strokeOpacity))}return this.config.useFloorCache||this.floorDataMap.clear(),this.floorDataMap.set(p,m),m})}createFloor(t){let e=new pt(this.context);if(!t.length)return{curFloor:e,graphics:[]};let i=new Map,o=[];for(let r of t)if(r.info.group==="ground")e.createGround(r.info);else{let c=e.addGraphic(r.info);c.userData.data=r,i.set(r.legacy_id,c),o.push(c)}return e.userData.legacyToGraphicMap=i,{curFloor:e,graphics:o}}switchFloor({brand:t,project:e,phase:i,building:o,floor:r,ts:c,resource_type_list:h}){let l=this.getFloorKey({brand:t,project:e,phase:i,building:o,floor:r,ts:c,resource_type_list:h}),p=this.floorDataMap.get(l);if(this.context.control.removeEventListener("change",this.onControlChange),p){let m=this.getBuildingKey({brand:t,project:e,phase:i,building:o});this.currentBuildGround=this.buildingGroundMap.get(m)||null;let g=this.createFloor(p);g?(this.context.cameraBound.setEnable(!1),this.context.switchFloor(g.curFloor),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.fitCameraToGround(void 0,0),this.basicZoom=this.context.camera.zoom,this.context.control.minZoom=this.basicZoom,this.context.control.maxZoom=this.basicZoom*25,this.context.control.addEventListener("change",this.onControlChange),this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.onControlChange(),this.context.cameraBound.setEnable(!0)):console.warn("[switchFloor error] ["+r+"] \u697C\u5C42\u6CA1\u6709\u6570\u636E")}else console.warn("[switchFloor error] \u6CA1\u6709\u8FD9\u4E2A\u697C\u5C42\uFF0C\u8BF7\u5148\u8C03\u7528load\u65B9\u6CD5\u52A0\u8F7D\u697C\u5C42")}addModel(t,e){var i;if(t.options.geometry.type==="polygon"){let o=(i=this.context.currentFloor)==null?void 0:i.addModel(yt(M({},e),{position:t.getPosition().setZ(.1),id:t.options.id}));if(o){let{facilityAngle:r=0,facilityXScale:c=1,facilityYScale:h=1}=t.options.userData;o.rotateZ((180-r)/180*Math.PI),o.scale.set(c,h,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 B))||[]}createGraphicPoi(t,e){if(this.context.currentFloor){e.id===void 0&&(e.id=t.options.id);let i=t.getCenter();return this.context.currentFloor.addPoi(yt(M({},e),{position:yt(M({},i),{z:i.z+t.options.height/2})}))}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,e=500){let i=t.getPosition();return this.context.setCameraPosition(i,e)}translateElementToCenterX(t,e=500){return T(this,null,function*(){let{y:i,z:o}=this.context.control.target,r=t.getPosition();r.setY(i),r.setZ(o),yield this.context.setCameraPosition(r,e)})}getElementDeviceCoordinate(t){let e=t.position.clone(),{clientWidth:i,clientHeight:o}=this.container;return y(e,this.context.camera,i,o)}changeMapType(t,e=500){return this.type=t,t==="2d"?this.context.setPolarAngle(0,e):this.context.setPolarAngle(1.1,e)}resetView(t=300){return T(this,null,function*(){let e=t/3;yield this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,e),yield this.changeMapType(this.type,e),yield this.context.fitCameraToGround(this.config.defaultPadding,e,!1)})}reduceMap(t=.5,e=500){let i=this.context.camera.zoom;return this.context.setZoom(i-t,this.context.control.target,e)}enlargeMap(t=.5,e=500){let i=this.context.camera.zoom;return this.context.setZoom(i+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((0,ye.debounce)(this.resize,5));t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t=.1){let e=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=e+t,this.context.control.minAzimuthAngle=e+t,this.context.control.update()}measureDistance(){return T(this,null,function*(){return this.cancelDistance(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgLine=new mt(this.context);let i=this.svgLine.dispose.bind(this.svgLine);this.svgLine.dispose=function(){i(),e("cancel")},this.svgLine.addEventListener("distance",({distance:o})=>{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 dt(this.context);let i=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){i(),e("cancel")},this.svgPolygon.addEventListener("area",({area:o})=>{t(o)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){var e;return((e=this.context.currentFloor)==null?void 0:e.graphicLayer.getGraphicByNodeId(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 i=Pt(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(o=>{Array.isArray(o)&&o.forEach(r=>{r[0]-=i[0],r[1]-=i[1]})});else{let[o,r]=t.geometry.cds;t.geometry.coords=[o-i[0],r-i[1]]}}return(e=this.context.currentFloor)==null?void 0:e.graphicLayer.createGraphic(t)}removePoiById(t){var e;return(e=this.context.currentFloor)==null?void 0:e.poiLayer.removePoiById(t)}getPoiById(t){var e;return(e=this.context.currentFloor)==null?void 0:e.poiLayer.getPoiById(t)}getPois(){var t;return(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(e=>!e.options.built_in)}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.context.dispose(),this.floorDataMap.clear(),this.buildingGroundMap.clear(),$t(),It(),Zt(),this.unRegistryEvent()}};
|
|
39
39
|
//# sourceMappingURL=bmap.cjs.min.js.map
|