@aibee/crc-bmap 0.13.15 → 0.13.16

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.
@@ -216,7 +216,7 @@ var oa=Object.create;var Fs=Object.defineProperty;var na=Object.getOwnPropertyDe
216
216
  }
217
217
  }
218
218
  `;return this.instancedWallMaterial=new Pe({vertexShader:t,fragmentShader:e,transparent:!0})}static dispose(){this.lineMaterialMap.forEach((t,e)=>{t.dispose()}),this.lineMaterialMap.clear(),this.meshStandardMaterialMap.forEach((t,e)=>{t.dispose()}),this.meshStandardMaterialMap.clear(),this.meshBasicMaterialMap.forEach((t,e)=>{t.dispose()}),this.meshBasicMaterialMap.clear(),this.shaderMaterialMap.forEach((t,e)=>{t.dispose()}),this.shaderMaterialMap.clear(),this.line2MaterialMap.forEach((t,e)=>{t.dispose()}),this.line2MaterialMap.clear(),this.lineDashedMaterialMap.forEach(t=>{t.dispose()}),this.lineDashedMaterialMap.clear(),this.mergeAttributeGraphicMaterial&&(this.mergeAttributeGraphicMaterial.dispose(),this.mergeAttributeGraphicMaterial=null),this.mergeAttributeWallMaterial&&(this.mergeAttributeWallMaterial.dispose(),this.mergeAttributeWallMaterial=null),this.mergeAttributeGraphicLineMaterial&&(this.mergeAttributeGraphicLineMaterial.dispose(),this.mergeAttributeGraphicLineMaterial=null),this.instancedGraphicMaterial&&(this.instancedGraphicMaterial.dispose(),this.instancedGraphicMaterial=null),this.instancedWallMaterial&&(this.instancedWallMaterial.dispose(),this.instancedWallMaterial=null)}};S.lineMaterialMap=new Map;S.meshStandardMaterialMap=new Map;S.meshBasicMaterialMap=new Map;S.shaderMaterialMap=new Map;S.line2MaterialMap=new Map;S.mergeAttributeGraphicMaterial=null;S.mergeAttributeWallMaterial=null;S.mergeAttributeGraphicLineMaterial=null;S.instancedGraphicMaterial=null;S.instancedWallMaterial=null;S.lineDashedMaterialMap=new Map;import"core-js/modules/es.typed-array.uint8-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import"core-js/modules/es.array.push.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.regexp.exec.js";import"core-js/modules/es.set.difference.v2.js";import"core-js/modules/es.set.intersection.v2.js";import"core-js/modules/es.set.is-disjoint-from.v2.js";import"core-js/modules/es.set.is-subset-of.v2.js";import"core-js/modules/es.set.is-superset-of.v2.js";import"core-js/modules/es.set.symmetric-difference.v2.js";import"core-js/modules/es.set.union.v2.js";import"core-js/modules/es.typed-array.from.js";import{DataTexture as re,LinearFilter as dt,RGBAFormat as ae}from"three";function Xs(){return new Worker(new URL("./worker/text-texture.worker-R5BSUG6A.js",import.meta.url))}function qs(){return new Worker(new URL("./worker/lazy-indexdb-text-texture.worker-SA6GQYIP.js",import.meta.url))}var Dt,ct=function(a){return a.MAP_VERSION="map_version",a.ROUTE_VERSION="route_version",a.FACILITY_VERSION="facility_version",a.MAP_DATA="map_data",a.ROAD_NETWORK_DATA="road_network_data",a.FACILITY_DATA="facility_data",a.POI_TEXT="poi_text",a.LAZY_TEXTURE="lazy_texture",a.LAZY_POI="lazy_poi",a}({});function xi(a,t){return a===void 0&&(a="aibee_map"),t===void 0&&(t=6),new Promise((e,i)=>{if(Dt)return e({db:Dt,type:"success"});let s=indexedDB.open(a,t);s.onupgradeneeded=function(o){Dt=o.target.result,console.log("[open db is onupgradeneeded]"),Zt("map_version"),Zt("route_version"),Zt("facility_version"),Zt("map_data"),Zt("road_network_data"),Zt("facility_data"),Zt("poi_text"),Zt("lazy_texture"),Zt("lazy_poi")},s.onsuccess=o=>{Dt=o.target.result,e({db:Dt,type:"success"})},s.onerror=o=>{console.log("[open db is onerror]"),i(o)}})}function je(a,t,e){return e===void 0&&(e=Dt),new Promise((i,s)=>{e||s("\u6CA1\u6709db");let n=e.transaction([a],"readonly").objectStore(a).get(t);n.onsuccess=()=>{n.result?i(n.result.value):i(null)},n.onerror=r=>{console.log("[getVersionByKey]",r),i(null)}})}function wi(a,t,e,i,s){return i===void 0&&(i=Dt),s===void 0&&(s=!1),new Promise((o,n)=>f(this,null,function*(){if(!i){n("\u6CA1\u6709db");return}let r=s;s||(r=!!(yield je(a,t)));let h=i.transaction([a],"readwrite").objectStore(a),c=r?h.put({key:t,value:e}):h.add({key:t,value:e});c.onsuccess=function(l){o(l)},c.onerror=function(l){n(l)}}))}function Zt(a,t){t===void 0&&(t=Dt),t&&(t.objectStoreNames.contains(a)||t.createObjectStore(a,{keyPath:"key"}))}function Mn(a){a===void 0&&(a=Dt),a==null||a.close(),Dt=null}var bt=Math.max(window.devicePixelRatio,2);Ht&&(bt=1);var et=class{static InitDb(){return xi()}static getCanvas(){if(this.canvas)return this.canvas;{let t=document.createElement("canvas");return this.canvas=t,t}}static getCtx(){if(this.ctx)return this.ctx;let e=this.getCanvas().getContext("2d",{willReadFrequently:!0});return this.ctx=e,e}static getIdleCanvas(){if(this.idleCanvas)return this.idleCanvas;{let t=document.createElement("canvas");return this.idleCanvas=t,t}}static getIdleCtx(){if(this.idleCtx)return this.idleCtx;let e=this.getIdleCanvas().getContext("2d",{willReadFrequently:!0});return this.idleCtx=e,e}static getMergedOptions(t){return x({},this.options,t)}static setCtxStyle(t,e,i){e===void 0&&(e=this.getCanvas()),i===void 0&&(i=this.getCtx()),e.style.width=""+t.width+"px",e.style.height=""+t.height+"px",e.width=t.width*bt,e.height=t.height*bt,i.font=t.font,i.textBaseline=t.textBaseline,i.lineWidth=t.lineWidth,i.fillStyle=t.fillStyle,i.strokeStyle=t.strokeStyle,i.scale(bt,bt)}static getLazyIndexDbTextTextureWorker(){if(this.lazyIndexDbTextTextureWorker)return this.lazyIndexDbTextTextureWorker;{let t=qs();return this.lazyIndexDbTextTextureWorker=t,t}}static getTextureByText(t,e){return f(this,null,function*(){let i=this.getMergedOptions(e),s=(e==null?void 0:e.maxWidth)||600,o=ve(x({},i,{text:t,maxWidth:s}));if(this.cacheMap.has(o))return this.cacheMap.get(o);let n=new Promise((r,h)=>f(this,null,function*(){var c;yield this.InitDb();let l=yield je(ct.POI_TEXT,o);if(l){let T=new re(new Uint8Array(l.data),l.width,l.height,ae);T.flipY=!0,T.minFilter=dt,T.magFilter=dt;let k={texture:T,lines:l.lines};this.cacheMap.set(o,k),r(k);return}let p=this.getCanvas(),d=this.getCtx();d.clearRect(0,0,p.width,p.height),this.setCtxStyle(i);let u=[],m="",g=[],y="",w=0;for(let T=0;T<t.length;T++){let k=t[T];if(k==="("||k==="\uFF08"){if(w===0&&y){let E=M(y);g.push(...E),y=""}w++}else if((k===")"||k==="\uFF09")&&(w--,w===0)){y+=k,g.push(y),y="";continue}y+=k}if(y){let T=M(y);g.push(...T)}function M(T){let k=[],E="",G=!1,V="";for(let B=0;B<T.length;B++){let R=T[B];(R==='"'||R==="'")&&(!G||R===V)?(G?(E+=R,k.push(E),E=""):(E&&k.push(E),E=R),G=!G,V=R):E+=R}return E&&k.push(E),k}for(let T of g)if(T.startsWith("(")||T.startsWith("\uFF08")||T.startsWith('"')||T.startsWith("'"))if(d.measureText(T).width>s){m&&(u.push(m),m="");let E="",G=T.split("");for(let V of G){let B=E+V;d.measureText(B).width>s&&E?(u.push(E),E=V):E=B}E&&(m=E)}else{let E=m?m+" "+T:T;d.measureText(E).width>s&&m?(u.push(m),m=T):m=E}else{let k=T.split(" ");for(let E of k){let G=m?m+" "+E:E,V=d.measureText(G);if(V.width>s)if(m&&u.push(m),V.width>s||Wo(E)){let B="",R=E.split("");for(let It of R){let Xt=B+It;d.measureText(Xt).width>s&&B?(u.push(B),B=It):B=Xt}B&&(m=B)}else m=E;else m=G}}m&&u.push(m);let P=+(((c=i.font.match(/(\d+)px/))==null?void 0:c[1])||54),L=Math.ceil(P+i.lineWidth+2),C=L*u.length,H=Math.max(...u.map(T=>{let k=Math.ceil(d.measureText(T).width);return k%2===0?k:k+1}))+2;u.forEach((T,k)=>{let E=d.measureText(T),G=Math.ceil(E.width),V=Math.floor((H-G)/2),B=k*(2+L);i.lineWidth&&d.strokeText(T,V,B),d.fillText(T,V,B)});let b=d.getImageData(0,0,H*bt,C*bt),Z=new re(b.data,H*bt,C*bt,ae);Z.flipY=!0,Z.minFilter=dt,Z.magFilter=dt,this.cacheMap.set(o,{texture:Z,lines:u.length}),wi(ct.POI_TEXT,o,{data:Array.from(b.data),width:H*bt,height:C*bt,lines:u.length},void 0,!0),r({texture:Z,lines:u.length})}));return this.cacheMap.set(o,n),n})}static lazyGetTextureByTexts(t,e){return f(this,null,function*(){let i=this.getMergedOptions(e),s=i.height;i.height=Math.min(s*t.length,2048);let o={},n=new Set;if(t.map(c=>{if(this.lazyPoiMap.has(c)){let l=this.lazyPoiMap.get(c),p=this.lazyTextureCacheMap.get(l.textureKey);if(p){o[c]={width:l.width,height:s,x:l.x,y:l.y,texture:p};return}}n.add(c)}),!n.size)return o;let r=Array.from(n);return new Promise((c,l)=>f(this,null,function*(){let p;window.OffscreenCanvas?(console.log("use webworker"),p=this.getTextsByWorker(r,i,s)):typeof window.requestIdleCallback=="function"?(console.log("use browser idle"),p=this.getTextsByBrowserIdle(r,i,s)):(console.log("use requestAnimation text textures"),p=Promise.resolve().then(()=>this.getTextsSync(r,i,s))),c(p)}))})}static getTextsByWorker(t,e,i){return f(this,null,function*(){return this.textTextureWorker||(this.textTextureWorker=Xs()),(yield N(this.textTextureWorker,"get_texture_by_texts",{texts:t,options:e,originHeight:i})).data.map(o=>{let n=new re(o.data,e.width,o.height,ae);return n.flipY=!0,n.minFilter=dt,n.magFilter=dt,{texture:n,offsetMap:o.offsetMap}}).reduce((o,n)=>(Object.keys(n.offsetMap).forEach(r=>{o[r]=n.offsetMap[r],o[r].texture=n.texture}),o),{})})}static getTextsByBrowserIdle(t,e,i){return f(this,null,function*(){let s=0,o=t.length;return new Promise(n=>{let r=this.getIdleCanvas(),h=this.getIdleCtx();h.clearRect(0,0,r.width,r.height),this.setCtxStyle(e,r,h);let c=[],l=0,p=0,d={},u=()=>f(this,null,function*(){let g=h.getImageData(0,0,e.width,i+p);c.push({imageData:g,offsetMap:d,height:i+p});let y=c.reduce((w,M)=>{let P=new re(M.imageData.data,e.width,M.height,ae);return P.flipY=!0,P.minFilter=dt,P.magFilter=dt,Object.keys(M.offsetMap).forEach(L=>{w[L]=x({},M.offsetMap[L],{texture:P})}),w},{});n(y)}),m=g=>{if(s>=o)return u();if(g.timeRemaining()>0){let y=t[s],w=Math.ceil(h.measureText(y).width);if(w=w%2===0?w:w+1,w+=2,w+l>e.width&&(l=0,p+=i,i+p>e.height)){let P=h.getImageData(0,0,e.width,p);c.push({imageData:P,offsetMap:d,height:p}),p=0,h.clearRect(0,0,e.width,e.height),d={}}let M=8;if(e.lineWidth&&h.strokeText(y,2+l,M+p),h.fillText(y,2+l,M+p),d[y]={width:w,height:i,x:l,y:p},l+=w,++s>=o)return u();g.timeRemaining()>0?m(g):this.timer.requestIdleCallback(m)}else this.timer.requestIdleCallback(m)};this.timer.requestIdleCallback(m),this.timer.setTimeout(()=>{s===0&&(console.log("idle \u4E0D\u6267\u884C \u56DE\u9000\u5230\u540C\u6B65"),n(this.getTextsSync(t,e,i)))},1e3)})})}static getTextsByReqAniFrame(t,e,i){return f(this,null,function*(){let s=0,o=t.length;return new Promise(n=>{let r=this.getIdleCanvas(),h=this.getIdleCtx();h.clearRect(0,0,r.width,r.height),this.setCtxStyle(e,r,h);let c=[],l=0,p=0,d={},u=()=>f(this,null,function*(){let g=h.getImageData(0,0,e.width,i+p);c.push({imageData:g,offsetMap:d,height:i+p});let y=c.reduce((w,M)=>{let P=new re(M.imageData.data,e.width,M.height,ae);return P.flipY=!0,P.minFilter=dt,P.magFilter=dt,Object.keys(M.offsetMap).forEach(L=>{w[L]=x({},M.offsetMap[L],{texture:P})}),w},{});n(y)}),m=()=>{if(s>=o)return u();let g=0;for(;g<30;){let y=t[s],w=Math.ceil(h.measureText(y).width);if(w=w%2===0?w:w+1,w+=2,w+l>e.width&&(l=0,p+=i,i+p>e.height)){let P=h.getImageData(0,0,e.width,p);c.push({imageData:P,offsetMap:d,height:p}),p=0,h.clearRect(0,0,e.width,e.height),d={}}let M=8;if(e.lineWidth&&h.strokeText(y,2+l,M+p),h.fillText(y,2+l,M+p),d[y]={width:w,height:i,x:l,y:p},l+=w,++s>=o)return u();g++}this.timer.requestAnimationFrame(m)};this.timer.requestAnimationFrame(m)})})}static getTextsSync(t,e,i){let s=this.getCanvas(),o=this.getCtx();o.clearRect(0,0,s.width,s.height),this.setCtxStyle(e);let n=[],r=0,h=0,c={};t.forEach(d=>{let u=Math.ceil(o.measureText(d).width);if(u=u%2===0?u:u+1,u+=2,u+r>e.width&&(r=0,h+=i,i+h>e.height)){let g=o.getImageData(0,0,e.width,h);n.push({data:g.data,offsetMap:c,height:h}),h=0,o.clearRect(0,0,e.width,e.height),c={}}let m=8;e.lineWidth&&o.strokeText(d,2+r,m+h),o.fillText(d,2+r,m+h),c[d]={width:u,height:i,x:r,y:h},r+=u});let l=o.getImageData(0,0,e.width,i+h);return n.push({data:l.data,offsetMap:c,height:h+i}),n.reduce((d,u)=>{let m=new re(u.data,e.width,u.height,ae);return m.flipY=!0,m.minFilter=dt,m.magFilter=dt,Object.keys(u.offsetMap).forEach(g=>{d[g]=x({},u.offsetMap[g],{texture:m})}),d},{})}static getTextureByTexts(t,e){let i=this.getMergedOptions(e),s=i.height;i.height=Math.min(s*t.length,1e4);let o=this.getCanvas(),n=this.getCtx();n.clearRect(0,0,o.width,o.height),this.setCtxStyle(i);let r=0,h=0,c={};t.forEach(d=>{let u=Math.ceil(n.measureText(d).width);u=u%2===0?u:u+1,u+=2,u+r>i.width&&(r=0,h+=s);let m=8;i.lineWidth&&n.strokeText(d,2+r,m+h),n.fillText(d,2+r,m+h),c[d]={width:u,height:s,x:r,y:h},r+=u});let l=n.getImageData(0,0,i.width,s+h),p=new re(Uint8Array.from(l.data),i.width,s+h,ae);return p.flipY=!0,p.minFilter=dt,p.magFilter=dt,{texture:p,offsetMap:c}}static dispose(){var t,e;this.ctx=null,this.canvas=null,this.idleCtx=null,this.idleCanvas=null,this.timer.dispose(),this.cacheMap.forEach(i=>{i instanceof Promise?i.then(s=>{s.texture.dispose()}):i.texture.dispose()}),this.cacheMap.clear(),(t=this.textTextureWorker)==null||t.terminate(),(e=this.lazyIndexDbTextTextureWorker)==null||e.terminate(),this.textTextureWorker=null}};et.canvas=document.createElement("canvas");et.ctx=et.canvas.getContext("2d",{willReadFrequently:!0});et.cacheMap=new Map;et.lazyTextureCacheMap=new Map;et.lazyPoiMap=new Map;et.textTextureWorker=null;et.lazyIndexDbTextTextureWorker=null;et.idleCanvas=null;et.idleCtx=null;et.timer=new j;et.options={width:2048,height:512,font:"28px sans-serif",textBaseline:"top",lineWidth:2,fillStyle:"rgba(0,0,0,1)",strokeStyle:"white"};import"core-js/modules/web.dom-collections.iterator.js";import{LinearFilter as Mi,RGBAFormat as _n,Texture as $a,TextureLoader as Ja}from"three";var st=class{static getTextureByUrl(t){if(this.urlTextureMap.has(t))return Promise.resolve(this.urlTextureMap.get(t));let e=this.textureLoader.loadAsync(t);return e.then(i=>{i.format=_n,i.magFilter=Mi,i.minFilter=Mi,i.colorSpace="srgb",this.urlTextureMap.set(t,i)}),this.urlTextureMap.set(t,e),e}static getUrlTextureBorder(t,e,i){let s=t+"-"+i.width+"-"+i.color;if(this.borderUrlTextureMap.has(s))return Promise.resolve(this.borderUrlTextureMap.get(s));let o=this.textureLoader.loadAsync(t).then(n=>{let r=this.ctx,h=this.canvas,c=e+i.width*2;h.width=c,h.height=c;let l=c/2;r.clearRect(0,0,c,c),r.beginPath(),r.arc(l,l,e/2+i.width,0,2*Math.PI),r.fillStyle=i.color,r.fill(),r.beginPath(),r.arc(l,l,e/2,0,2*Math.PI),r.closePath(),r.clip(),r.drawImage(n.image,i.width,i.width,e,e);let p=new $a(h);return p.format=_n,p.magFilter=Mi,p.minFilter=Mi,p.colorSpace="srgb",p.needsUpdate=!0,this.borderUrlTextureMap.set(s,p),p});return this.borderUrlTextureMap.set(s,o),o}static dispose(){this.urlTextureMap.forEach(t=>{t instanceof Promise?t.then(e=>e.dispose()):t.dispose()}),this.borderUrlTextureMap.forEach(t=>{t instanceof Promise?t.then(e=>e.dispose()):t.dispose()}),this.urlTextureMap.clear(),this.borderUrlTextureMap.clear(),this.ctx=null,this.canvas=null}};st.textureLoader=new Ja;st.urlTextureMap=new Map;st.borderUrlTextureMap=new Map;st.canvas=document.createElement("canvas");st.ctx=st.canvas.getContext("2d",{willReadFrequently:!0});import"core-js/modules/web.dom-collections.iterator.js";import{GLTFLoader as oh}from"three/examples/jsm/loaders/GLTFLoader.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.json.stringify.js";import"core-js/modules/es.error.cause.js";import"core-js/modules/es.typed-array.float32-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import"core-js/modules/es.array.push.js";import"core-js/modules/web.url.js";import"core-js/modules/web.url.to-json.js";import"core-js/modules/web.url-search-params.js";import"core-js/modules/web.url-search-params.delete.js";import"core-js/modules/web.url-search-params.has.js";import"core-js/modules/web.url-search-params.size.js";import"core-js/modules/es.array.sort.js";import"core-js/modules/es.typed-array.int8-array.js";import"core-js/modules/es.typed-array.uint32-array.js";import"core-js/modules/es.typed-array.int16-array.js";import"core-js/modules/es.typed-array.int32-array.js";import"core-js/modules/es.typed-array.uint8-array.js";import"core-js/modules/es.typed-array.uint16-array.js";var Pn=new URL("./icon/parkingSpace/half.svg",import.meta.url).href;var bn=new URL("./icon/parkingSpace/power.svg",import.meta.url).href;var Sn=new URL("./icon/parkingSpace/mechanical.svg",import.meta.url).href;var En=new URL("./icon/parkingSpace/vip.svg",import.meta.url).href;var Ln=new URL("./glb/locate.glb",import.meta.url).href;var Cn=new URL("./icon/path/arrow.png",import.meta.url).href;var $s=new URL("./draco/draco_decoder.js",import.meta.url).href;var Js=new URL("./draco/draco_decoder.wasm",import.meta.url).href;var Qs=new URL("./draco/draco_wasm_wrapper.js",import.meta.url).href;var _i={half:Pn,power:bn,mechanical:Sn,vip:En},Tn=Ln,Pi=Cn;import{BufferAttribute as kn,BufferGeometry as Qa,Color as th,FileLoader as Dn,Loader as eh,LinearSRGBColorSpace as ih,SRGBColorSpace as An}from"three";var to=new WeakMap,bi=class extends eh{setDecoderPath(t){return this.decoderPath=t,this}setDecoderConfig(t){return this.decoderConfig=t,this}setWorkerLimit(t){return this.workerLimit=t,this}load(t,e,i,s){let o=new Dn(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,n=>{this.parse(n,e,s)},i,s)}parse(t,e,i){i===void 0&&(i=()=>{}),this.decodeDracoFile(t,e,null,null,An).catch(i)}decodeDracoFile(t,e,i,s,o,n){o===void 0&&(o=ih),n===void 0&&(n=()=>{});let r={attributeIDs:i||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!i,vertexColorSpace:o};return this.decodeGeometry(t,r).then(e).catch(n)}decodeGeometry(t,e){let i=JSON.stringify(e);if(to.has(t)){let h=to.get(t);if(h.key===i)return h.promise;if(t.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s,o=this.workerNextTaskID++,n=t.byteLength,r=this._getWorker(o,n).then(h=>(s=h,new Promise((c,l)=>{s._callbacks[o]={resolve:c,reject:l},s.postMessage({type:"decode",id:o,taskConfig:e,buffer:t},[t])}))).then(h=>this._createGeometry(h.geometry));return r.catch(()=>!0).then(()=>{s&&o&&this._releaseTask(s,o)}),to.set(t,{key:i,promise:r}),r}_createGeometry(t){let e=new Qa;t.index&&e.setIndex(new kn(t.index.array,1));for(let i=0;i<t.attributes.length;i++){let s=t.attributes[i],o=s.name,n=s.array,r=s.itemSize,h=new kn(n,r);o==="color"&&(this._assignVertexColorSpace(h,s.vertexColorSpace),h.normalized=!(n instanceof Float32Array)),e.setAttribute(o,h)}return e}_assignVertexColorSpace(t,e){if(e!==An)return;let i=new th;for(let s=0,o=t.count;s<o;s++)i.fromBufferAttribute(t,s).convertSRGBToLinear(),t.setXYZ(s,i.r,i.g,i.b)}_loadLibrary(t,e){let i=new Dn(this.manager);return i.setPath(this.decoderPath),i.setResponseType(e),i.setWithCredentials(this.withCredentials),new Promise((s,o)=>{i.load(t,s,void 0,o)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;let t=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return t?e.push(this._loadLibrary($s,"text")):(e.push(this._loadLibrary(Qs,"text")),e.push(this._loadLibrary(Js,"arraybuffer"))),this.decoderPending=Promise.all(e).then(i=>{let s=i[0];t||(this.decoderConfig.wasmBinary=i[1]);let o=sh.toString(),n=["/* draco decoder */",s,"","/* worker */",o.substring(o.indexOf("{")+1,o.lastIndexOf("}"))].join(`
219
- `);this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(t,e){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){let s=new Worker(this.workerSourceURL);s._callbacks={},s._taskCosts={},s._taskLoad=0,s.postMessage({type:"init",decoderConfig:this.decoderConfig}),s.onmessage=function(o){let n=o.data;switch(n.type){case"decode":s._callbacks[n.id].resolve(n);break;case"error":s._callbacks[n.id].reject(n);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+n.type+'"')}},this.workerPool.push(s)}else this.workerPool.sort(function(s,o){return s._taskLoad>o._taskLoad?-1:1});let i=this.workerPool[this.workerPool.length-1];return i._taskCosts[t]=e,i._taskLoad+=e,i})}_releaseTask(t,e){t._taskLoad-=t._taskCosts[e],delete t._callbacks[e],delete t._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(t=>t._taskLoad))}dispose(){for(let t=0;t<this.workerPool.length;++t)this.workerPool[t].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}constructor(t){super(t),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}};function sh(){let a,t;onmessage=function(n){let r=n.data;switch(r.type){case"init":a=r.decoderConfig,t=new Promise(function(l){a.onModuleLoaded=function(p){l({draco:p})},DracoDecoderModule(a)});break;case"decode":let h=r.buffer,c=r.taskConfig;t.then(l=>{let p=l.draco,d=new p.Decoder;try{let u=e(p,d,new Int8Array(h),c),m=u.attributes.map(g=>g.array.buffer);u.index&&m.push(u.index.array.buffer),self.postMessage({type:"decode",id:r.id,geometry:u},m)}catch(u){console.error(u),self.postMessage({type:"error",id:r.id,error:u.message})}finally{p.destroy(d)}});break}};function e(n,r,h,c){let l=c.attributeIDs,p=c.attributeTypes,d,u,m=r.GetEncodedGeometryType(h);if(m===n.TRIANGULAR_MESH)d=new n.Mesh,u=r.DecodeArrayToMesh(h,h.byteLength,d);else if(m===n.POINT_CLOUD)d=new n.PointCloud,u=r.DecodeArrayToPointCloud(h,h.byteLength,d);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!u.ok()||d.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+u.error_msg());let g={index:null,attributes:[]};for(let y in l){let w=self[p[y]],M,P;if(c.useUniqueIDs)P=l[y],M=r.GetAttributeByUniqueId(d,P);else{if(P=r.GetAttributeId(d,n[l[y]]),P===-1)continue;M=r.GetAttribute(d,P)}let L=s(n,r,d,y,w,M);y==="color"&&(L.vertexColorSpace=c.vertexColorSpace),g.attributes.push(L)}return m===n.TRIANGULAR_MESH&&(g.index=i(n,r,d)),n.destroy(d),g}function i(n,r,h){let l=h.num_faces()*3,p=l*4,d=n._malloc(p);r.GetTrianglesUInt32Array(h,p,d);let u=new Uint32Array(n.HEAPF32.buffer,d,l).slice();return n._free(d),{array:u,itemSize:1}}function s(n,r,h,c,l,p){let d=p.num_components(),m=h.num_points()*d,g=m*l.BYTES_PER_ELEMENT,y=o(n,l),w=n._malloc(g);r.GetAttributeDataArrayForAllPoints(h,p,y,g,w);let M=new l(n.HEAPF32.buffer,w,m).slice();return n._free(w),{name:c,array:M,itemSize:d}}function o(n,r){switch(r){case Float32Array:return n.DT_FLOAT32;case Int8Array:return n.DT_INT8;case Int16Array:return n.DT_INT16;case Int32Array:return n.DT_INT32;case Uint8Array:return n.DT_UINT8;case Uint16Array:return n.DT_UINT16;case Uint32Array:return n.DT_UINT32}}}var at=class{static loadModel(t,e){return f(this,null,function*(){if(e===void 0&&(e=!0),e){if(this.modelMap.has(t)){let s=this.modelMap.get(t);if(s instanceof Promise)s.then(o=>x({},o,{scene:o.scene.clone()}));else return x({},s,{scene:s.scene.clone()})}let i=new Promise((s,o)=>{this.loader.load(t,n=>{this.modelMap.set(t,n),s(n)},void 0,o)});return this.modelMap.set(t,i),i.then(s=>x({},s,{scene:s.scene.clone()}))}else return new Promise((i,s)=>{this.loader.load(t,i,void 0,s)})})}static dispose(){this.modelMap.forEach(t=>{t instanceof Promise?t.then(e=>I(e.scene)):I(t.scene)}),this.modelMap.clear()}};at.dracoLoader=new bi;at.loader=new oh().setDRACOLoader(at.dracoLoader);at.modelMap=new Map;function eo(){return new Worker(new URL("./worker/merge-geometry.worker-67ZM4O2E.js",import.meta.url))}import{BufferGeometry as nh,BufferAttribute as On}from"three";var St=class{static GetMergeGeometry(t){return f(this,null,function*(){let e=yield this.WorkerPool.getWorker(),i=yield N(e,"get_merged_geometry_attributes",{data:t}),s=this.GetBufferGeometryByData(i);return this.WorkerPool.releaseWorker(e),s})}static GetMergedShapeGeometry(t){return f(this,null,function*(){let e=yield this.WorkerPool.getWorker(),i=yield N(e,"get_merged_shape_geometry_attributes",{data:t}),s=this.GetBufferGeometryByData(i);return this.WorkerPool.releaseWorker(e),s})}static GetMergedTexture2dGeometry(t){return f(this,null,function*(){let e=yield this.WorkerPool.getWorker(),i=yield N(e,"get_merged_texture2d_shape_geometry_attributes",{data:t}),s=this.GetBufferGeometryByData(i);return this.WorkerPool.releaseWorker(e),s})}static GetBufferGeometryByData(t){let e=new nh;return Object.keys(t.attributes).forEach(i=>{e.setAttribute(i,new On(t.attributes[i].array,t.attributes[i].itemSize))}),t.index&&e.setIndex(new On(t.index.array,t.index.itemSize)),e.morphAttributes=t.morphAttributes,e.morphTargetsRelative=t.morphTargetsRelative,e.groups=t.groups,e.boundingSphere=t.boundingSphere,e}static GetMergedGeometry(t){return f(this,null,function*(){let e=yield this.WorkerPool.getWorker(),i=yield N(e,"get_merged_geometries_json",{data:t});return this.WorkerPool.releaseWorker(e),i?x({},t[0],i):null})}static GetMergedGeometryLine(t){return f(this,null,function*(){let e=yield this.WorkerPool.getWorker(),i=yield N(e,"get_merged_geometries_line_json",{data:t});return this.WorkerPool.releaseWorker(e),i?x({},t[0],i):null})}static dispose(){this.WorkerPool.dispose()}};St.WorkerPool=new yi(10,eo);import{cloneDeep as dh}from"lodash";var Vt={id:"",height:.1,airHeight:0,area:0,group:"",fillColor:"#EFF4FB",strokeColor:"#ffffff",fillOpacity:1,strokeOpacity:1,strokeWidth:1,doors:[],visible:!0,geometry:{type:"polygon",cds:[],coords:[],curveCpt:[],curveIndex:[]},layerType:"",zIndex:0,stroke:!0,deltaHeight:0,userData:{},gradualColor:[],renderType:"single",colorFactor:.9,center_x:0,center_y:0,center_coord_x:0,center_coord_y:0,dashed:!1},ot=class extends rh{getCenter(){if(this.options.geometry.type==="point")return this.position.clone();let t=new xt,e=new Si;return e.setFromObject(this),e.getCenter(t),t}getSize(){if(this.options.geometry.type==="point")return new xt(0,0,0);let t=new Si,e=new xt;return t.setFromObject(this),t.getSize(e),e}getPosition(){let{center_coord_x:t,center_coord_y:e}=this.options,i=this.getCenter();return i.setZ(i.z+this.options.height/2),new xt(t,e,i.z+this.options.height/2)}init(){this.geometry=this.initGeometry(),this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options.airHeight+this.options.deltaHeight,this.options.stroke&&this.options.strokeOpacity!==0&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())}initDoor(){var t;if((t=this.options.doors)!=null&&t.length&&this.options.geometry.type==="polygon"){let e=this.options.geometry.coords[0];this.options.doors.forEach(i=>{let s=i.type==="single"?.5:1,o=.5,n=Wt(e,i.coord),r=new jt(...i.coord),h=new jt(...e[n]).sub(new jt(...i.coord)).normalize(),c=new jt().addVectors(r,h.clone().multiplyScalar(s)),l=new jt().addVectors(r,h.clone().multiplyScalar(-s)),p=new jt(-h.y,h.x),d=new jt().addVectors(c,p.clone().multiplyScalar(o));Uo([d.x,d.y],e)||(p.multiplyScalar(-1),d=new jt().addVectors(c,p.clone().multiplyScalar(o)));let u=new jt().addVectors(l,p.clone().multiplyScalar(o)),m=[[c.x,c.y],[d.x,d.y],[u.x,u.y],[l.x,l.y]];e=this.options.geometry.coords[0]=[...e.slice(0,n+1),...m,...e.slice(n+1)]})}}initGeometry(){let t=ai(this.options.geometry.coords[0],this.options.geometry.coords.slice(1));return new ah(t,{steps:1,bevelEnabled:!1,depth:this.options.height,curveSegments:4})}initSingleMaterial(){let t=S.createMeshBasicMaterial({color:this.options.fillColor,opacity:this.options.fillOpacity});if(this.options.secondUrl&&st.getTextureByUrl(this.options.secondUrl).then(i=>{i.wrapS=Rn,i.wrapT=Rn,i.needsUpdate=!0,t.map=i,t.side=ph}),this.options.height<=.1)return this.material=t,t;let e=S.createMeshBasicMaterial({color:Ut(this.options.fillColor),opacity:this.options.fillOpacity});return this.material=[t,e],[t,e]}getMaxAndMin(t,e){let i=new Si().setFromObject(this),s=t.clone().add(e.clone().multiplyScalar(1e3)),o=new In(s,e.clone().multiplyScalar(-1)),n=new xt;o.intersectBox(i,n);let r=t.clone().add(e.clone().multiplyScalar(-1e3)),h=new In(r,e.clone()),c=new xt;return h.intersectBox(i,c),{max:c,min:n}}initGradualMaterial(){let{max:t,min:e}=new Si().setFromObject(this),i=t.clone().sub(e),s=Math.max(i.x,i.y,i.z)/2,o=this.getPosition(),n=new xt(-1,.2,0).normalize(),{max:r,min:h}=this.getMaxAndMin(o,n),c=S.createShaderMaterial({gradualColor:this.options.gradualColor,center:this.getPosition(),maxValue:s,opacity:this.options.fillOpacity,direction:new xt(-1,.2,0),max:r,min:h});if(this.options.height<=.1)return this.material=c,c;let l=this.getCenter(),p=new xt(-1,.2,1).normalize(),{max:d,min:u}=this.getMaxAndMin(l,p),m=S.createShaderMaterial({gradualColor:[Ut(this.options.gradualColor[0],this.options.colorFactor),Ut(this.options.gradualColor[1],this.options.colorFactor)],center:this.getCenter(),maxValue:s,opacity:this.options.fillOpacity,direction:new xt(-1,.2,1),max:d,min:u});return this.material=[c,m],[c,m]}initMaterial(){return this.options.renderType==="gradual"?this.initGradualMaterial():this.initSingleMaterial()}initLineMaterial(){if(this.options.dashed){let t=S.createLineDashedMaterial({color:this.options.strokeColor,opacity:this.options.strokeOpacity});return this.lineMaterial=t,t}else{let t=S.createLineMaterial({color:this.options.strokeColor,opacity:this.options.strokeOpacity});return this.lineMaterial=t,t}}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new hh(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 s=0;s<i.length;s++){let o=i[s];for(let n=0;n<o.length;n++){let r=o[n],h=n+1===o.length?o[0]:o[n+1];t.push(new xt(r[0],r[1],e)),t.push(new xt(h[0],h[1],e))}}return t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),e=new ch().setFromPoints(t);this.lineGeometry=e}createBorder(){this.line&&this.remove(this.line);let t=new lh(this.lineGeometry,this.lineMaterial);return t.position.z=this.options.airHeight+.01,this.options.dashed&&t.computeLineDistances(),this.line=t,this.add(t),t}setOpacity(t,e){if(e===void 0&&(e=!1),e)this.options.fillOpacity=t,this.options.strokeOpacity=t;else{let{fillOpacity:i,strokeOpacity:s}=this.originOptions;this.options.fillOpacity=Math.min(i,t),this.options.strokeOpacity=Math.min(s,t)}}raycast(t){if(!this.visible||this.options.geometry.type==="point")return!1;this.mesh.updateMatrixWorld(!0);let e=t.intersectObject(this.mesh);if(e[0]){let{point:i,distance:s}=e[0];return{position:i,distance:s}}return!1}dispose(){var t,e;(t=this.geometry)==null||t.dispose(),(e=this.line)==null||e.geometry.dispose(),this.clear()}constructor(t,e){if(super(),this.context=t,this.line=null,this.options=fe(dh(x({},Vt,e)),this),this.originOptions={fillOpacity:this.options.fillOpacity,strokeOpacity:this.options.strokeOpacity},this.options.geometry.type==="point"){let[i,s]=this.options.geometry.coords;return this.position.set(i,s,this.options.height+this.options.airHeight),this}this.initDoor(),this.init(),this.visible=this.options.visible,this.addEventListener("change-fillColor",i=>{let{value:s}=i;this.initMaterial(),this.initMesh()}),this.addEventListener("change-fillOpacity",i=>{let{value:s}=i;this.initMaterial(),this.initMesh()}),this.addEventListener("change-height",i=>{let{value:s}=i;this.dispose(),this.init()}),this.addEventListener("change-strokeColor",i=>{let{value:s}=i;!this.options.stroke||!this.options.strokeOpacity||(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-strokeOpacity",i=>{let{value:s}=i;if(this.options.stroke)if(s)this.lineGeometry||this.initLineGeometry(),this.initLineMaterial(),this.createBorder();else{var o;this.line&&(this.remove(this.line),this.line=null),(o=this.lineGeometry)==null||o.dispose(),this.lineGeometry=void 0}}),this.addEventListener("change-airHeight",i=>{let{value:s}=i;this.position.z=s}),this.addEventListener("change-visible",i=>{let{value:s}=i;this.visible=s}),this.addEventListener("change-stroke",i=>{let{value:s}=i;if(s){if(this.line)return;this.initLineGeometry(),this.initLineMaterial(),this.createBorder()}else if(this.line){var o;this.remove(this.line),(o=this.lineGeometry)==null||o.dispose()}}),this.addEventListener("change-dashed",()=>{!this.options.stroke||!this.options.strokeOpacity||(this.lineGeometry||this.initLineGeometry(),this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-renderType",()=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-gradualColor",()=>{this.initMaterial(),this.initMesh()})}};import{Object3D as uh,PlaneGeometry as mh,Mesh as fh,ShadowMaterial as gh,Color as yh,DoubleSide as vh}from"three";var Ei=class extends uh{initLight(){let t=Bo(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 yh(t)}setPosition(t){this.position.copy(t),this.directionalLight.position.set(-t.x/2,-t.y/2,100)}initPlane(t,e){t===void 0&&(t=1e3),e===void 0&&(e=1e3);let i=new mh(t,e),s=new gh({transparent:!0,opacity:0,side:vh}),o=new fh(i,s);return o.receiveShadow=!0,o.position.z=-10,this.add(o),this.plane=o,o}setTarget(t){this.directionalLight.target=t}transformOpacity(t){return t*this.basicOpacity}setOpacity(t){this.plane.material.opacity=this.transformOpacity(t)}dispose(){I(this,!0)}constructor(){super(),this.basicOpacity=.07,this.directionalLight=this.initLight(),this.initPlane()}};import"core-js/modules/web.dom-collections.iterator.js";import{EventDispatcher as Mh,Vector3 as _h}from"three";import{Box3 as Fn,Vector3 as it}from"three";import{debounce as xh}from"lodash";var wh={autoUpdate:!0,appendToBody:!1,autoChangePlacement:!1},be=class extends tt{initObserver(){let t=new MutationObserver(xh(()=>{this.div&&this.usePlacement()},100));t.observe(this.div,{childList:!0,subtree:!0,attributes:!0}),this.observer=t}getPlacementPosition(){var t,e;if(this.element instanceof ot&&this.element.options.geometry.type==="polygon"){let{max:n,min:r}=new Fn().setFromObject(this.element),h=(n.x+r.x)/2,c=(n.y+r.y)/2;return{left:new it(r.x,c,n.z),leftTop:new it(r.x,n.y,n.z),top:new it(h,n.y,n.z),rightTop:new it(n.x,n.y,n.z),right:new it(n.x,c,n.z),rightBottom:new it(n.x,r.y,n.z),bottom:new it(h,r.y,n.z),leftBottom:new it(r.x,r.y,n.z),center:new it(h,c,n.z)}}let{x:i,y:s,z:o}=((e=this.element)==null||(t=e.getPosition)==null?void 0:t.call(e))||this.position;return{left:new it(i,s,o),leftTop:new it(i,s,o),top:new it(i,s,o),rightTop:new it(i,s,o),right:new it(i,s,o),rightBottom:new it(i,s,o),bottom:new it(i,s,o),leftBottom:new it(i,s,o),center:new it(i,s,o)}}getPlacementScreenPosition(){let{width:t,height:e}=this.context.clientSize,i=this.getPlacementPosition();return Object.keys(i).reduce((s,o)=>{let{x:n,y:r}=D(i[o],this.context.camera,t,e);return s[o]={x:n,y:r},s},{})}checkOverflow(t,e){let{width:i,height:s}=this.context.clientSize;return e.x>0&&t.x<i&&e.y<s&&t.y>0}getPlacement(){let{clientWidth:t,clientHeight:e}=this.div,i=this.getPlacementScreenPosition(),s=t/2,o=e/2,n=[{type:"center",getBox(r,h){return{max:{x:s+r,y:h-e},min:{x:r-s,y:h}}}},{type:"left",getBox(r,h){return{max:{x:r,y:h-o},min:{x:r-t,y:h+o}}}},{type:"leftTop",getBox(r,h){return{max:{x:r,y:h-e},min:{x:r-t,y:h}}}},{type:"top",getBox(r,h){return{max:{x:r+s,y:h-e},min:{x:r-s,y:h}}}},{type:"rightTop",getBox(r,h){return{max:{x:r+t,y:h-e},min:{x:r,y:h}}}},{type:"right",getBox(r,h){return{max:{x:r+t,y:h-o},min:{x:r,y:h+o}}}},{type:"rightBottom",getBox(r,h){return{max:{x:r+t,y:h},min:{x:r,y:h+e}}}},{type:"bottom",getBox(r,h){return{max:{x:r+s,y:h},min:{x:r-s,y:h+e}}}},{type:"leftBottom",getBox(r,h){return{max:{x:r,y:h},min:{x:r-t,y:h+o}}}}];for(let r=0;r<n.length;r++){let h=n[r],c=i[h.type],{max:l,min:p}=h.getBox(c.x,c.y);if(this.checkOverflow(l,p))return{type:h.type,position:c}}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){e===void 0&&(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 Fn().setFromObject(this.element).getCenter(new it):this.position}get withinDisplayRange(){let{x:t,y:e}=this.clientPos,{width:i,height:s}=this.context.clientSize;return t>=0&&t<=i&&e>=0&&e<=s}_updatePosition(t,e){this.clientPos={x:t,y:e};let{width:i,height:s,x:o,y:n}=this.context.clientSize;if(this.div){if(this.options.appendToBody){this.div.style.left=""+o+"px",this.div.style.top=""+(n+s)+"px";return}this.options.autoUpdate?(this.div.style.left=""+t+"px",this.div.style.bottom=""+(s-e)+"px"):this.dispatchEvent({type:"update-position",x:t,y:e,width:i,height:s})}}updatePosition(t){t===void 0&&(t=!1);let e=this.getPosition(),{width:i,height:s}=this.context.clientSize,{x:o,y:n}=D(e,this.context.camera,i,s);this.clientPos.x===o&&this.clientPos.y===n&&!t||this._updatePosition(o,n)}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){var t,e;super.dispose(),this.unRegistryEvent(),this.unBindElement(),(t=this.observer)==null||t.disconnect(),(e=this.div)==null||e.remove(),this.div=null}constructor(t,e={}){super(),this.context=t,this.position=new it,this.clientPos={x:0,y:0},this.visible=!0,this.placement="top",this.observer=null,this.onUpdate=()=>{this.options.autoChangePlacement?this.usePlacement():this.updatePosition()},this.options=x({},wh,e),this.registryEvent(),this.div=this.initDiv(),this.options.appendToBody?document.body.appendChild(this.div):this.context.container.appendChild(this.div)}};var Ph={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},he=class extends Mh{get withinDisplayRange(){return this.overlay.withinDisplayRange}resetSize(){return f(this,null,function*(){if(yield No(),!this.disposed)if(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[s,o]of Object.entries(e.styles))i.style[s]=o;i.textContent=e.text,t.appendChild(i)}),t}initIcon(){var t,e;let i=document.createElement("img");return i.setAttribute("src",this.options.icon),i.style.width=""+(((t=this.options.icon_size)==null?void 0:t[0])||32)+"px",i.style.height=""+(((e=this.options.icon_size)==null?void 0:e[1])||32)+"px",i.style.opacity=""+this.options.icon_opacity+"px",i.style.borderRadius="50%",this.options.icon_border.width&&(i.style.border=this.options.icon_border.width+"px solid "+this.options.icon_border.color),i.onload=()=>{this.resetSize()},this.img=i,i}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){t===void 0&&(t=this.context.config.poi.boxScale);let{width:e,height:i}=this.size,s=e*t,o=i*t,{x:n,y:r}=this.overlay.clientPos;return{left:n-s/2,right:n+s/2,top:this.options.icon?r-o:r-o/2,bottom:this.options.icon?r:r+o/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(),this.disposed=!0}constructor(t,e){var i,s,o;super(),this.context=t,this.visible=!0,this.size={width:0,height:0},this.position=new _h,this.userData={},this.showTextStatus=!0,this.disposed=!1,this._changePosition=()=>{this.overlay.updatePosition(!0)},this.options=fe(x({},Ph,e),this),this.position.set(((i=e.position)==null?void 0:i.x)||0,((s=e.position)==null?void 0:s.y)||0,((o=e.position)==null?void 0:o.z)||0),this.overlay=new be(this.context,{autoUpdate:!1}),this.overlay.addEventListener("update-position",n=>{let{x:r,y:h,height:c}=n;this.overlay.div.style.transform="translate3d(calc("+r+"px - 50%), calc("+(-c+h)+"px - "+(this.options.icon&&this.options.icon_position!=="center"?"100%":"50%")+"), 0)"}),this.overlay.bindElement(this),this.registryEvent(),this.initDiv(),this.addEventListener("change-icon",n=>{let{value:r}=n;r?this.img?this.img.setAttribute("src",r):(this.addIcon(),this._changePosition()):(this.img&&this.div.removeChild(this.img),this.img=void 0,this._changePosition(),this.resetSize())}),this.addEventListener("change-texts",n=>{let{value:r}=n,h=this.textDiv;if(h){let c=this.initText();this.div.replaceChild(c,h)}else this.addText();this.resetSize()}),this.addEventListener("change-opacity",n=>{let{value:r}=n;this.overlay.setOpacity(r)}),this.addEventListener("change-icon_size",n=>{let{value:r}=n;this.img&&(this.img.style.width=""+((r==null?void 0:r[0])||32)+"px",this.img.style.height=""+((r==null?void 0:r[1])||32)+"px",this.resetSize())}),this.addEventListener("change-icon_opacity",n=>{let{value:r}=n;this.img&&(this.img.style.opacity=""+r)}),this.addEventListener("change-icon_border",n=>{let{value:r}=n;this.img&&(this.img.style.border=r.width+"px solid "+r.color)}),this.addEventListener("change-background",n=>{let{value:r}=n;this.div.style.background=r})}};import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.set.difference.v2.js";import"core-js/modules/es.set.intersection.v2.js";import"core-js/modules/es.set.is-disjoint-from.v2.js";import"core-js/modules/es.set.is-subset-of.v2.js";import"core-js/modules/es.set.is-superset-of.v2.js";import"core-js/modules/es.set.symmetric-difference.v2.js";import"core-js/modules/es.set.union.v2.js";import{Box3 as Bi,Object3D as ao,Vector3 as Wi}from"three";import{MeshBasicMaterial as bh,Object3D as Sh,PlaneGeometry as Eh,Texture as Lh,Mesh as Ch,Matrix3 as Gn,Vector2 as Th,FrontSide as kh}from"three";import{create as Dh}from"@mars3d/heatmap.js";import{bbox as Ah,center as Oh}from"@turf/turf";var Li=class extends Sh{clearHeatmap(){this.div.firstChild&&this.div.removeChild(this.div.firstChild),this.heatmap=void 0}loadData(t){var e;this.clearHeatmap();let{width:i,height:s,leftTop:o,center:n,scale:r}=this.box,h=((e=this.context.config.heatMap)==null?void 0:e.radius)||1,c=x({width:i,height:s,container:this.div},this.context.config.heatMap,{radius:h});this.heatmap=Dh(c);let l=this.transformData(t,o,r);t.maxValue!==void 0&&(l.max=t.maxValue),t.minValue!==void 0&&(l.min=t.minValue),this.heatmap.setData(l),this.initPlane(i/r,s/r);let p=this.context.center;this.position.set(n[0]-p[0],n[1]-p[1],this.position.z)}initPlane(t,e){this.plane&&this.remove(this.plane);let i=new Eh(t,e),s=new Lh(this.div.firstChild);s.needsUpdate=!0;let o=new bh({transparent:!0,side:kh,map:s});o.needsUpdate=!0,this.plane=new Ch(i,o),this.plane.renderOrder=1e5,this.add(this.plane)}getTransMatrix(t){let{x:e,y:i}=t;return new Gn().makeScale(this.box.scale,-this.box.scale).multiply(new Gn().makeTranslation(-e,-i))}transformData(t,e,i){var s,o;let n=this.getTransMatrix(e);var r;let h=(r=(s=t.data[0])==null?void 0:s.value)!=null?r:0;var c;let l=(c=(o=t.data[0])==null?void 0:o.value)!=null?c:0;return{data:t.data.map(d=>{let u=new Th(d.x,d.y).applyMatrix3(n);return d.value>h&&(h=d.value),d.value<l&&(l=d.value),{x:Math.ceil(u.x),y:Math.ceil(u.y),value:d.value}}),max:h,min:l}}getBox(){let t=this.context.range,e=Ah(t),i=Math.ceil(e[2]-e[0]),s=Math.ceil(e[3]-e[1]),o=4e3,n=4e3,r=o/i,h=n/s,c=Math.min(r,h);this.scaleRatio=c;let l=i*c,p=s*c,d={x:Math.ceil(e[0]),y:Math.ceil(e[3])},u=Oh(t).geometry.coordinates;return{width:l,height:p,leftTop:d,center:u,scale:c}}dispose(){this.clearHeatmap(),this.div.remove(),this.div=null,this.plane&&(this.remove(this.plane),I(this.plane))}constructor(t){super(),this.context=t,this.scaleRatio=1,this.div=document.createElement("div"),this.box=this.getBox()}};import{Object3D as Ih,Vector3 as Rh}from"three";var Ci=class extends Ih{loadModel(){return f(this,null,function*(){let t=yield at.loadModel(this.options.modelUrl);t.scene.rotation.set(Math.PI/2,Math.PI/2,0),this.add(t.scene),this.model=t})}dispose(){I(this),this.model=null}constructor(t,e){super(),this.context=t,this.options=e,this.model=null,this.position.copy(e.position||new Rh(0,0,0)),this.loadModel()}};import"core-js/modules/web.dom-collections.iterator.js";import{Box3 as Gh,Vector3 as zh}from"three";import{Object3D as Fh}from"three";var Y=class extends Fh{setOpacity(t,e){e===void 0&&(e=!1),this.children.forEach(i=>{i.setOpacity==null||i.setOpacity.call(i,t,e)})}onAddToScene(t){this.active=!0,this.sceneType=t}onRemoveFromScene(){this.active=!1}dispose(){I(this),this.children.forEach(t=>t.dispose==null?void 0:t.dispose.call(t)),this.clear()}constructor(t){super(),this.context=t,this.active=!1,this.sceneType="scene"}};var Ti=class extends Y{getCenter(){return new Gh().setFromObject(this).getCenter(new zh)}createGraphic(t){let e=new ot(this.context,t);return e.userData.data=t,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((s,o)=>{if(o instanceof ot){let n=o.raycast(t);if(n){let{distance:r}=n;if(r<s.distance)return{distance:n.distance,position:n.position,graphic:o}}return s}else return s},e);return i===e?{graphics:[],position:null}:{graphics:[i.graphic],position:i.position}}setGraphicOptions(t,e){let i,s=this.graphicMap.get(t);s&&(typeof e=="function"?i=e(s.options):i=x({},s.options,e),Object.keys(i).forEach(o=>{s.options[o]=i[o]}))}getGraphicPosition(t){let e=this.graphicMap.get(t);return e?[e.options.center_x,e.options.center_y]:null}setOpacity(t,e){e===void 0&&(e=!1),this.graphicMap.forEach(i=>{i.setOpacity(t,e)})}constructor(t){super(t),this.graphicMap=new Map}};import"core-js/modules/es.array.unshift.js";import"core-js/modules/es.array.push.js";import{debounce as Bh}from"lodash";var ki=class extends Y{clear(t){return t===void 0&&(t=!1),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 he(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(s=>s instanceof he&&s.isContain(t,e))}collisionDetection(){let t=[];this.pois.filter(i=>i.visible&&i.withinDisplayRange).forEach((i,s)=>{let{left:o,right:n,top:r,bottom:h}=i.getBox();if(s===0||!i.options.collision_enable){t.push({left:o,right:n,top:r,bottom:h}),i.parentSetVisible(!0);return}let c=t.some(l=>l.left<n&&l.right>o&&l.top<h&&l.bottom>r);i.parentSetVisible(!c),c||t.push({left:o,right:n,top:r,bottom:h})})}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()}constructor(t){super(t),this.pois=[],this.timer=new j,this.onUpdate=()=>{this.timer.requestAnimationFrame(()=>{this.collisionDetection()})},this.registryEvent(),this.debounceCollisionDetection=Bh(this.collisionDetection,10)}};import"core-js/modules/es.array.push.js";import{Vector2 as Wh}from"three";var Di=class extends Y{clear(){return this.context.collisionSystem.removeObjects(this.pois),this.pois.forEach(t=>{t.dispose()}),this.pois=[],this}createPoi(t){let e=new J(this.context,t);return this.pushPoi(e),e}removePoi(t){let e=this.pois.findIndex(i=>i===t);e!==-1&&(this.remove(t),this.pois.splice(e,1),this.context.collisionSystem.removeObject(t),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){this.pois.includes(t)||(t.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("text-texture-inited",()=>{this.active&&this.context.forceUpdate()}),t.parentSetVisible(!1),this.add(t),this.pois.push(t),this.sceneType==="mulFloors"&&(t.options.depth_test=!0),this.active&&this.context.collisionSystem.addObject(t))}changePoiLevelOrCollisionEnable(t){this.active&&(this.context.collisionSystem.removeObject(t),this.context.collisionSystem.addObject(t))}getPoiByDeviceXy(t,e){let i=new Wh(t,e);return this.pois.filter(o=>o instanceof J&&o.canSelect&&o.box.containsPoint(i))}setOpacity(t){this.pois.forEach(e=>{e.options.icon_opacity=t,e.options.text_opacity=t})}onAddToScene(t){super.onAddToScene(t);let e=t==="mulFloors";this.pois.forEach(i=>{i.options.depth_test=e,this.context.collisionSystem.addObject(i)})}onRemoveFromScene(){super.onRemoveFromScene(),this.context.collisionSystem.removeObjects(this.pois)}dispose(){this.timer.dispose(),this.clear(),super.dispose()}constructor(t){super(t),this.pois=[],this.timer=new j}};import"core-js/modules/es.regexp.exec.js";import"core-js/modules/web.dom-collections.iterator.js";import{Vector2 as io}from"three";import{isNil as Uh}from"lodash";var Ai=class extends Y{createParkings(t,e,i){e===void 0&&(e=!0),this.parkingOptions=t,this.merged=e,e?(i?this.createMergedParkingByMergedElements(i):this.createMergedParking(t),t.map((s,o)=>{var n;(n=s.texts[0])==null||n.split(/[,,]/).map(r=>{this.parkingNoIndexMap.set(r,o)}),this.nodeIdIndexMap.set(s.id,o)})):this.createIndependentParking(t)}load(t,e){e===void 0&&(e=!0);var i;this.createParkings(t.elements,e,t.mergedElements),(i=t.mergedParkingTexture)!=null&&i.length?this.createMergedParkingTexture(t.mergedParkingTexture):this.createParkingTexture(t.elements)}createMergedParking(t){return f(this,null,function*(){let e=new Ve(this.context,t);this.mergedParkingSpace=e,this.add(e)})}createMergedParkingByMergedElements(t){let e=new Se(this.context,t);if(this.mergedParkingSpace=e,t.lineGeometry){let i=new pe(this.context,t.lineGeometry);this.add(i)}this.add(e)}createIndependentParking(t){t.forEach(e=>{var i;let s=new ot(this.context,e);this.add(s),(i=e.texts[0])==null||i.split(/[,,]/).map(o=>{this.parkingNoGraphicMap.set(o,s)}),this.graphicMap.set(s.options.id,s)})}createParkingTexture(t){let e=t.filter(i=>_i[i.parkingType]).map(i=>{let s=new io(...i.geometry.coords[0][0]),o=new io(...i.geometry.coords[0][1]),n=new io(...i.geometry.coords[0][2]),r=Math.min(s.distanceTo(o),o.distanceTo(n)),h=0;return r===s.distanceTo(o)?h=o.sub(s).angle()-Math.PI/2:h=n.sub(o).angle()-Math.PI/2,{uuid:i.id,iconUrl:_i[i.parkingType],name:i.texts[0],deltaHeight:(i.deltaHeight||0)+.001,airHeight:i.airHeight,height:i.height,geometry:i.geometry,opacity:i.fillOpacity,visible:!0,secondWidth:r-1,secondHeight:r-1,secondRotate:h,centerCoords:[i.center_coord_x,i.center_coord_y]}});if(e.length){let i=new ce(this.context,e);this.add(i)}}createMergedParkingTexture(t){t.map(e=>{e.iconUrl=_i[e.iconUrl];let i=new le(this.context,e);this.add(i)})}changeParkingColor(t){this.merged?Object.keys(t).map(e=>{let i=this.parkingNoIndexMap.get(e);if(!Uh(i)){var s;(s=this.mergedParkingSpace)==null||s.setColorByIndex(i,t[e])}}):Object.keys(t).map(e=>{let i=this.parkingNoGraphicMap.get(e);i&&(i.options.fillColor=t[e])})}setOpacity(t,e){if(e===void 0&&(e=!1),this.parkingOptions.forEach(s=>{if(e)s.fillOpacity=t,s.strokeOpacity=t;else{let r=this.parkingOriginOptions.get(s.id);var o;s.fillOpacity=Math.min(t,(o=r==null?void 0:r.fillOpacity)!=null?o:1);var n;s.strokeOpacity=Math.min(t,(n=r==null?void 0:r.strokeOpacity)!=null?n:1)}}),this.merged)if(this.mergedParkingSpace instanceof Ve)this.mergedParkingSpace.setOpacity(t,e);else{var i;(i=this.mergedParkingSpace)==null||i.setOpacity(t,e)}else this.graphicMap.forEach(s=>{s.setOpacity(t,e)});this.children.filter(s=>s instanceof ce||s instanceof le).map(s=>s.setOpacity(t))}getParkingOptionsByParkingNo(t){return this.parkingOptions.find(i=>i.texts[0]===t)||null}getGraphicPosition(t){if(this.merged){let e=this.parkingOptions.find(i=>i.id===t);return e?[e.center_x,e.center_y]:null}}dispose(){var t;(t=this.mergedParkingSpace)==null||t.dispose(),this.mergedParkingSpace=null,I(this),this.graphicMap.clear(),this.parkingNoGraphicMap.clear(),this.parkingNoIndexMap.clear(),this.nodeIdIndexMap.clear(),this.parkingOptions=[],super.dispose()}constructor(t){super(t),this.graphicMap=new Map,this.parkingNoGraphicMap=new Map,this.parkingOriginOptions=new Map,this.parkingOptions=[],this.merged=!1,this.parkingNoIndexMap=new Map,this.nodeIdIndexMap=new Map,this.mergedParkingSpace=null}};import"core-js/modules/es.array.push.js";var Oi=class extends Y{addModels(t){let e=t.reduce((i,s)=>{let{url:o}=s;return i[o]?i[o].push(s):i[o]=[s],i},{});Object.values(e).forEach(i=>{let s=new Ii(this.context,i);this.add(s)})}constructor(t){super(t)}};import"core-js/modules/web.dom-collections.iterator.js";import{Box3 as qh,Group as Wn,Matrix4 as $h,Quaternion as Jh,Vector3 as oo}from"three";import{LineMaterial as Hh}from"three/examples/jsm/lines/LineMaterial.js";import{Color as Ke,LineBasicMaterial as Nh,MeshStandardMaterial as Zh,MeshBasicMaterial as jh,ShaderMaterial as Ee,DoubleSide as Vh,LineDashedMaterial as Kh}from"three";function zn(a){return`${a.x}-${a.y}-${a.z}`}var lt=class{static generateLineMaterialKey({color:t,opacity:e}){return`${t}-${e}`}static createLineMaterial({color:t,opacity:e,vertexColors:i}){let s=this.generateLineMaterialKey({color:t,opacity:e,vertexColors:i});if(this.lineMaterialMap.has(s))return this.lineMaterialMap.get(s);let o=new Nh({color:new Ke(t).convertLinearToSRGB(),transparent:!0,opacity:e,vertexColors:i!=null?i:!1});return this.lineMaterialMap.set(s,o),o}static createMeshStandardMaterial({color:t,opacity:e}){let i=`${t}-${e}`;if(this.meshStandardMaterialMap.has(i))return this.meshStandardMaterialMap.get(i);let s=new Zh({color:new Ke(t).convertLinearToSRGB(),roughness:1,transparent:!0,opacity:e,depthWrite:!0});return this.meshStandardMaterialMap.set(i,s),s}static createMeshBasicMaterial({color:t,opacity:e,vertexColors:i}){let s=`${t}-${e}-${i}`;if(this.meshBasicMaterialMap.has(s))return this.meshBasicMaterialMap.get(s);let o=new jh({color:t,transparent:!0,opacity:e,depthWrite:!0,vertexColors:i!=null?i:!1});return this.meshBasicMaterialMap.set(s,o),o}static createShaderMaterial({gradualColor:t,center:e,maxValue:i,opacity:s,direction:o,max:n,min:r}){let h=`${t.toString()}-${zn(e)}-${i}-${s}-${zn(o)}`;if(this.shaderMaterialMap.has(h))return this.shaderMaterialMap.get(h);let c=`
219
+ `);this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(t,e){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){let s=new Worker(this.workerSourceURL);s._callbacks={},s._taskCosts={},s._taskLoad=0,s.postMessage({type:"init",decoderConfig:this.decoderConfig}),s.onmessage=function(o){let n=o.data;switch(n.type){case"decode":s._callbacks[n.id].resolve(n);break;case"error":s._callbacks[n.id].reject(n);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+n.type+'"')}},this.workerPool.push(s)}else this.workerPool.sort(function(s,o){return s._taskLoad>o._taskLoad?-1:1});let i=this.workerPool[this.workerPool.length-1];return i._taskCosts[t]=e,i._taskLoad+=e,i})}_releaseTask(t,e){t._taskLoad-=t._taskCosts[e],delete t._callbacks[e],delete t._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(t=>t._taskLoad))}dispose(){for(let t=0;t<this.workerPool.length;++t)this.workerPool[t].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}constructor(t){super(t),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}};function sh(){let a,t;onmessage=function(n){let r=n.data;switch(r.type){case"init":a=r.decoderConfig,t=new Promise(function(l){a.onModuleLoaded=function(p){l({draco:p})},DracoDecoderModule(a)});break;case"decode":let h=r.buffer,c=r.taskConfig;t.then(l=>{let p=l.draco,d=new p.Decoder;try{let u=e(p,d,new Int8Array(h),c),m=u.attributes.map(g=>g.array.buffer);u.index&&m.push(u.index.array.buffer),self.postMessage({type:"decode",id:r.id,geometry:u},m)}catch(u){console.error(u),self.postMessage({type:"error",id:r.id,error:u.message})}finally{p.destroy(d)}});break}};function e(n,r,h,c){let l=c.attributeIDs,p=c.attributeTypes,d,u,m=r.GetEncodedGeometryType(h);if(m===n.TRIANGULAR_MESH)d=new n.Mesh,u=r.DecodeArrayToMesh(h,h.byteLength,d);else if(m===n.POINT_CLOUD)d=new n.PointCloud,u=r.DecodeArrayToPointCloud(h,h.byteLength,d);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!u.ok()||d.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+u.error_msg());let g={index:null,attributes:[]};for(let y in l){let w=self[p[y]],M,P;if(c.useUniqueIDs)P=l[y],M=r.GetAttributeByUniqueId(d,P);else{if(P=r.GetAttributeId(d,n[l[y]]),P===-1)continue;M=r.GetAttribute(d,P)}let L=s(n,r,d,y,w,M);y==="color"&&(L.vertexColorSpace=c.vertexColorSpace),g.attributes.push(L)}return m===n.TRIANGULAR_MESH&&(g.index=i(n,r,d)),n.destroy(d),g}function i(n,r,h){let l=h.num_faces()*3,p=l*4,d=n._malloc(p);r.GetTrianglesUInt32Array(h,p,d);let u=new Uint32Array(n.HEAPF32.buffer,d,l).slice();return n._free(d),{array:u,itemSize:1}}function s(n,r,h,c,l,p){let d=p.num_components(),m=h.num_points()*d,g=m*l.BYTES_PER_ELEMENT,y=o(n,l),w=n._malloc(g);r.GetAttributeDataArrayForAllPoints(h,p,y,g,w);let M=new l(n.HEAPF32.buffer,w,m).slice();return n._free(w),{name:c,array:M,itemSize:d}}function o(n,r){switch(r){case Float32Array:return n.DT_FLOAT32;case Int8Array:return n.DT_INT8;case Int16Array:return n.DT_INT16;case Int32Array:return n.DT_INT32;case Uint8Array:return n.DT_UINT8;case Uint16Array:return n.DT_UINT16;case Uint32Array:return n.DT_UINT32}}}var at=class{static loadModel(t,e){return f(this,null,function*(){if(e===void 0&&(e=!0),e){if(this.modelMap.has(t)){let s=this.modelMap.get(t);if(s instanceof Promise)s.then(o=>x({},o,{scene:o.scene.clone()}));else return x({},s,{scene:s.scene.clone()})}let i=new Promise((s,o)=>{this.loader.load(t,n=>{this.modelMap.set(t,n),s(n)},void 0,o)});return this.modelMap.set(t,i),i.then(s=>x({},s,{scene:s.scene.clone()}))}else return new Promise((i,s)=>{this.loader.load(t,i,void 0,s)})})}static dispose(){this.modelMap.forEach(t=>{t instanceof Promise?t.then(e=>I(e.scene)):I(t.scene)}),this.modelMap.clear()}};at.dracoLoader=new bi;at.loader=new oh().setDRACOLoader(at.dracoLoader);at.modelMap=new Map;function eo(){return new Worker(new URL("./worker/merge-geometry.worker-67ZM4O2E.js",import.meta.url))}import{BufferGeometry as nh,BufferAttribute as On}from"three";var St=class{static GetMergeGeometry(t){return f(this,null,function*(){let e=yield this.WorkerPool.getWorker(),i=yield N(e,"get_merged_geometry_attributes",{data:t}),s=this.GetBufferGeometryByData(i);return this.WorkerPool.releaseWorker(e),s})}static GetMergedShapeGeometry(t){return f(this,null,function*(){let e=yield this.WorkerPool.getWorker(),i=yield N(e,"get_merged_shape_geometry_attributes",{data:t}),s=this.GetBufferGeometryByData(i);return this.WorkerPool.releaseWorker(e),s})}static GetMergedTexture2dGeometry(t){return f(this,null,function*(){let e=yield this.WorkerPool.getWorker(),i=yield N(e,"get_merged_texture2d_shape_geometry_attributes",{data:t}),s=this.GetBufferGeometryByData(i);return this.WorkerPool.releaseWorker(e),s})}static GetBufferGeometryByData(t){let e=new nh;return Object.keys(t.attributes).forEach(i=>{e.setAttribute(i,new On(t.attributes[i].array,t.attributes[i].itemSize))}),t.index&&e.setIndex(new On(t.index.array,t.index.itemSize)),e.morphAttributes=t.morphAttributes,e.morphTargetsRelative=t.morphTargetsRelative,e.groups=t.groups,e.boundingSphere=t.boundingSphere,e}static GetMergedGeometry(t){return f(this,null,function*(){let e=yield this.WorkerPool.getWorker(),i=yield N(e,"get_merged_geometries_json",{data:t});return this.WorkerPool.releaseWorker(e),i?x({},t[0],i):null})}static GetMergedGeometryLine(t){return f(this,null,function*(){let e=yield this.WorkerPool.getWorker(),i=yield N(e,"get_merged_geometries_line_json",{data:t});return this.WorkerPool.releaseWorker(e),i?x({},t[0],i):null})}static dispose(){this.WorkerPool.dispose()}};St.WorkerPool=new yi(10,eo);import{cloneDeep as dh}from"lodash";var Vt={id:"",height:.1,airHeight:0,area:0,group:"",fillColor:"#EFF4FB",strokeColor:"#ffffff",fillOpacity:1,strokeOpacity:1,strokeWidth:1,doors:[],visible:!0,geometry:{type:"polygon",cds:[],coords:[],curveCpt:[],curveIndex:[]},layerType:"",zIndex:0,stroke:!0,deltaHeight:0,userData:{},gradualColor:[],renderType:"single",colorFactor:.9,center_x:0,center_y:0,center_coord_x:0,center_coord_y:0,dashed:!1},ot=class extends rh{getCenter(){if(this.options.geometry.type==="point")return this.position.clone();let t=new xt,e=new Si;return e.setFromObject(this),e.getCenter(t),t}getSize(){if(this.options.geometry.type==="point")return new xt(0,0,0);let t=new Si,e=new xt;return t.setFromObject(this),t.getSize(e),e}getPosition(){let{center_coord_x:t,center_coord_y:e}=this.options,i=this.getCenter();return i.setZ(i.z+this.options.height/2),!t||!e?i:new xt(t,e,i.z+this.options.height/2)}init(){this.geometry=this.initGeometry(),this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options.airHeight+this.options.deltaHeight,this.options.stroke&&this.options.strokeOpacity!==0&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())}initDoor(){var t;if((t=this.options.doors)!=null&&t.length&&this.options.geometry.type==="polygon"){let e=this.options.geometry.coords[0];this.options.doors.forEach(i=>{let s=i.type==="single"?.5:1,o=.5,n=Wt(e,i.coord),r=new jt(...i.coord),h=new jt(...e[n]).sub(new jt(...i.coord)).normalize(),c=new jt().addVectors(r,h.clone().multiplyScalar(s)),l=new jt().addVectors(r,h.clone().multiplyScalar(-s)),p=new jt(-h.y,h.x),d=new jt().addVectors(c,p.clone().multiplyScalar(o));Uo([d.x,d.y],e)||(p.multiplyScalar(-1),d=new jt().addVectors(c,p.clone().multiplyScalar(o)));let u=new jt().addVectors(l,p.clone().multiplyScalar(o)),m=[[c.x,c.y],[d.x,d.y],[u.x,u.y],[l.x,l.y]];e=this.options.geometry.coords[0]=[...e.slice(0,n+1),...m,...e.slice(n+1)]})}}initGeometry(){let t=ai(this.options.geometry.coords[0],this.options.geometry.coords.slice(1));return new ah(t,{steps:1,bevelEnabled:!1,depth:this.options.height,curveSegments:4})}initSingleMaterial(){let t=S.createMeshBasicMaterial({color:this.options.fillColor,opacity:this.options.fillOpacity});if(this.options.secondUrl&&st.getTextureByUrl(this.options.secondUrl).then(i=>{i.wrapS=Rn,i.wrapT=Rn,i.needsUpdate=!0,t.map=i,t.side=ph}),this.options.height<=.1)return this.material=t,t;let e=S.createMeshBasicMaterial({color:Ut(this.options.fillColor),opacity:this.options.fillOpacity});return this.material=[t,e],[t,e]}getMaxAndMin(t,e){let i=new Si().setFromObject(this),s=t.clone().add(e.clone().multiplyScalar(1e3)),o=new In(s,e.clone().multiplyScalar(-1)),n=new xt;o.intersectBox(i,n);let r=t.clone().add(e.clone().multiplyScalar(-1e3)),h=new In(r,e.clone()),c=new xt;return h.intersectBox(i,c),{max:c,min:n}}initGradualMaterial(){let{max:t,min:e}=new Si().setFromObject(this),i=t.clone().sub(e),s=Math.max(i.x,i.y,i.z)/2,o=this.getPosition(),n=new xt(-1,.2,0).normalize(),{max:r,min:h}=this.getMaxAndMin(o,n),c=S.createShaderMaterial({gradualColor:this.options.gradualColor,center:this.getPosition(),maxValue:s,opacity:this.options.fillOpacity,direction:new xt(-1,.2,0),max:r,min:h});if(this.options.height<=.1)return this.material=c,c;let l=this.getCenter(),p=new xt(-1,.2,1).normalize(),{max:d,min:u}=this.getMaxAndMin(l,p),m=S.createShaderMaterial({gradualColor:[Ut(this.options.gradualColor[0],this.options.colorFactor),Ut(this.options.gradualColor[1],this.options.colorFactor)],center:this.getCenter(),maxValue:s,opacity:this.options.fillOpacity,direction:new xt(-1,.2,1),max:d,min:u});return this.material=[c,m],[c,m]}initMaterial(){return this.options.renderType==="gradual"?this.initGradualMaterial():this.initSingleMaterial()}initLineMaterial(){if(this.options.dashed){let t=S.createLineDashedMaterial({color:this.options.strokeColor,opacity:this.options.strokeOpacity});return this.lineMaterial=t,t}else{let t=S.createLineMaterial({color:this.options.strokeColor,opacity:this.options.strokeOpacity});return this.lineMaterial=t,t}}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new hh(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 s=0;s<i.length;s++){let o=i[s];for(let n=0;n<o.length;n++){let r=o[n],h=n+1===o.length?o[0]:o[n+1];t.push(new xt(r[0],r[1],e)),t.push(new xt(h[0],h[1],e))}}return t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),e=new ch().setFromPoints(t);this.lineGeometry=e}createBorder(){this.line&&this.remove(this.line);let t=new lh(this.lineGeometry,this.lineMaterial);return t.position.z=this.options.airHeight+.01,this.options.dashed&&t.computeLineDistances(),this.line=t,this.add(t),t}setOpacity(t,e){if(e===void 0&&(e=!1),e)this.options.fillOpacity=t,this.options.strokeOpacity=t;else{let{fillOpacity:i,strokeOpacity:s}=this.originOptions;this.options.fillOpacity=Math.min(i,t),this.options.strokeOpacity=Math.min(s,t)}}raycast(t){if(!this.visible||this.options.geometry.type==="point")return!1;this.mesh.updateMatrixWorld(!0);let e=t.intersectObject(this.mesh);if(e[0]){let{point:i,distance:s}=e[0];return{position:i,distance:s}}return!1}dispose(){var t,e;(t=this.geometry)==null||t.dispose(),(e=this.line)==null||e.geometry.dispose(),this.clear()}constructor(t,e){if(super(),this.context=t,this.line=null,this.options=fe(dh(x({},Vt,e)),this),this.originOptions={fillOpacity:this.options.fillOpacity,strokeOpacity:this.options.strokeOpacity},this.options.geometry.type==="point"){let[i,s]=this.options.geometry.coords;return this.position.set(i,s,this.options.height+this.options.airHeight),this}this.initDoor(),this.init(),this.visible=this.options.visible,this.addEventListener("change-fillColor",i=>{let{value:s}=i;this.initMaterial(),this.initMesh()}),this.addEventListener("change-fillOpacity",i=>{let{value:s}=i;this.initMaterial(),this.initMesh()}),this.addEventListener("change-height",i=>{let{value:s}=i;this.dispose(),this.init()}),this.addEventListener("change-strokeColor",i=>{let{value:s}=i;!this.options.stroke||!this.options.strokeOpacity||(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-strokeOpacity",i=>{let{value:s}=i;if(this.options.stroke)if(s)this.lineGeometry||this.initLineGeometry(),this.initLineMaterial(),this.createBorder();else{var o;this.line&&(this.remove(this.line),this.line=null),(o=this.lineGeometry)==null||o.dispose(),this.lineGeometry=void 0}}),this.addEventListener("change-airHeight",i=>{let{value:s}=i;this.position.z=s}),this.addEventListener("change-visible",i=>{let{value:s}=i;this.visible=s}),this.addEventListener("change-stroke",i=>{let{value:s}=i;if(s){if(this.line)return;this.initLineGeometry(),this.initLineMaterial(),this.createBorder()}else if(this.line){var o;this.remove(this.line),(o=this.lineGeometry)==null||o.dispose()}}),this.addEventListener("change-dashed",()=>{!this.options.stroke||!this.options.strokeOpacity||(this.lineGeometry||this.initLineGeometry(),this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-renderType",()=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-gradualColor",()=>{this.initMaterial(),this.initMesh()})}};import{Object3D as uh,PlaneGeometry as mh,Mesh as fh,ShadowMaterial as gh,Color as yh,DoubleSide as vh}from"three";var Ei=class extends uh{initLight(){let t=Bo(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 yh(t)}setPosition(t){this.position.copy(t),this.directionalLight.position.set(-t.x/2,-t.y/2,100)}initPlane(t,e){t===void 0&&(t=1e3),e===void 0&&(e=1e3);let i=new mh(t,e),s=new gh({transparent:!0,opacity:0,side:vh}),o=new fh(i,s);return o.receiveShadow=!0,o.position.z=-10,this.add(o),this.plane=o,o}setTarget(t){this.directionalLight.target=t}transformOpacity(t){return t*this.basicOpacity}setOpacity(t){this.plane.material.opacity=this.transformOpacity(t)}dispose(){I(this,!0)}constructor(){super(),this.basicOpacity=.07,this.directionalLight=this.initLight(),this.initPlane()}};import"core-js/modules/web.dom-collections.iterator.js";import{EventDispatcher as Mh,Vector3 as _h}from"three";import{Box3 as Fn,Vector3 as it}from"three";import{debounce as xh}from"lodash";var wh={autoUpdate:!0,appendToBody:!1,autoChangePlacement:!1},be=class extends tt{initObserver(){let t=new MutationObserver(xh(()=>{this.div&&this.usePlacement()},100));t.observe(this.div,{childList:!0,subtree:!0,attributes:!0}),this.observer=t}getPlacementPosition(){var t,e;if(this.element instanceof ot&&this.element.options.geometry.type==="polygon"){let{max:n,min:r}=new Fn().setFromObject(this.element),h=(n.x+r.x)/2,c=(n.y+r.y)/2;return{left:new it(r.x,c,n.z),leftTop:new it(r.x,n.y,n.z),top:new it(h,n.y,n.z),rightTop:new it(n.x,n.y,n.z),right:new it(n.x,c,n.z),rightBottom:new it(n.x,r.y,n.z),bottom:new it(h,r.y,n.z),leftBottom:new it(r.x,r.y,n.z),center:new it(h,c,n.z)}}let{x:i,y:s,z:o}=((e=this.element)==null||(t=e.getPosition)==null?void 0:t.call(e))||this.position;return{left:new it(i,s,o),leftTop:new it(i,s,o),top:new it(i,s,o),rightTop:new it(i,s,o),right:new it(i,s,o),rightBottom:new it(i,s,o),bottom:new it(i,s,o),leftBottom:new it(i,s,o),center:new it(i,s,o)}}getPlacementScreenPosition(){let{width:t,height:e}=this.context.clientSize,i=this.getPlacementPosition();return Object.keys(i).reduce((s,o)=>{let{x:n,y:r}=D(i[o],this.context.camera,t,e);return s[o]={x:n,y:r},s},{})}checkOverflow(t,e){let{width:i,height:s}=this.context.clientSize;return e.x>0&&t.x<i&&e.y<s&&t.y>0}getPlacement(){let{clientWidth:t,clientHeight:e}=this.div,i=this.getPlacementScreenPosition(),s=t/2,o=e/2,n=[{type:"center",getBox(r,h){return{max:{x:s+r,y:h-e},min:{x:r-s,y:h}}}},{type:"left",getBox(r,h){return{max:{x:r,y:h-o},min:{x:r-t,y:h+o}}}},{type:"leftTop",getBox(r,h){return{max:{x:r,y:h-e},min:{x:r-t,y:h}}}},{type:"top",getBox(r,h){return{max:{x:r+s,y:h-e},min:{x:r-s,y:h}}}},{type:"rightTop",getBox(r,h){return{max:{x:r+t,y:h-e},min:{x:r,y:h}}}},{type:"right",getBox(r,h){return{max:{x:r+t,y:h-o},min:{x:r,y:h+o}}}},{type:"rightBottom",getBox(r,h){return{max:{x:r+t,y:h},min:{x:r,y:h+e}}}},{type:"bottom",getBox(r,h){return{max:{x:r+s,y:h},min:{x:r-s,y:h+e}}}},{type:"leftBottom",getBox(r,h){return{max:{x:r,y:h},min:{x:r-t,y:h+o}}}}];for(let r=0;r<n.length;r++){let h=n[r],c=i[h.type],{max:l,min:p}=h.getBox(c.x,c.y);if(this.checkOverflow(l,p))return{type:h.type,position:c}}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){e===void 0&&(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 Fn().setFromObject(this.element).getCenter(new it):this.position}get withinDisplayRange(){let{x:t,y:e}=this.clientPos,{width:i,height:s}=this.context.clientSize;return t>=0&&t<=i&&e>=0&&e<=s}_updatePosition(t,e){this.clientPos={x:t,y:e};let{width:i,height:s,x:o,y:n}=this.context.clientSize;if(this.div){if(this.options.appendToBody){this.div.style.left=""+o+"px",this.div.style.top=""+(n+s)+"px";return}this.options.autoUpdate?(this.div.style.left=""+t+"px",this.div.style.bottom=""+(s-e)+"px"):this.dispatchEvent({type:"update-position",x:t,y:e,width:i,height:s})}}updatePosition(t){t===void 0&&(t=!1);let e=this.getPosition(),{width:i,height:s}=this.context.clientSize,{x:o,y:n}=D(e,this.context.camera,i,s);this.clientPos.x===o&&this.clientPos.y===n&&!t||this._updatePosition(o,n)}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){var t,e;super.dispose(),this.unRegistryEvent(),this.unBindElement(),(t=this.observer)==null||t.disconnect(),(e=this.div)==null||e.remove(),this.div=null}constructor(t,e={}){super(),this.context=t,this.position=new it,this.clientPos={x:0,y:0},this.visible=!0,this.placement="top",this.observer=null,this.onUpdate=()=>{this.options.autoChangePlacement?this.usePlacement():this.updatePosition()},this.options=x({},wh,e),this.registryEvent(),this.div=this.initDiv(),this.options.appendToBody?document.body.appendChild(this.div):this.context.container.appendChild(this.div)}};var Ph={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},he=class extends Mh{get withinDisplayRange(){return this.overlay.withinDisplayRange}resetSize(){return f(this,null,function*(){if(yield No(),!this.disposed)if(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[s,o]of Object.entries(e.styles))i.style[s]=o;i.textContent=e.text,t.appendChild(i)}),t}initIcon(){var t,e;let i=document.createElement("img");return i.setAttribute("src",this.options.icon),i.style.width=""+(((t=this.options.icon_size)==null?void 0:t[0])||32)+"px",i.style.height=""+(((e=this.options.icon_size)==null?void 0:e[1])||32)+"px",i.style.opacity=""+this.options.icon_opacity+"px",i.style.borderRadius="50%",this.options.icon_border.width&&(i.style.border=this.options.icon_border.width+"px solid "+this.options.icon_border.color),i.onload=()=>{this.resetSize()},this.img=i,i}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){t===void 0&&(t=this.context.config.poi.boxScale);let{width:e,height:i}=this.size,s=e*t,o=i*t,{x:n,y:r}=this.overlay.clientPos;return{left:n-s/2,right:n+s/2,top:this.options.icon?r-o:r-o/2,bottom:this.options.icon?r:r+o/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(),this.disposed=!0}constructor(t,e){var i,s,o;super(),this.context=t,this.visible=!0,this.size={width:0,height:0},this.position=new _h,this.userData={},this.showTextStatus=!0,this.disposed=!1,this._changePosition=()=>{this.overlay.updatePosition(!0)},this.options=fe(x({},Ph,e),this),this.position.set(((i=e.position)==null?void 0:i.x)||0,((s=e.position)==null?void 0:s.y)||0,((o=e.position)==null?void 0:o.z)||0),this.overlay=new be(this.context,{autoUpdate:!1}),this.overlay.addEventListener("update-position",n=>{let{x:r,y:h,height:c}=n;this.overlay.div.style.transform="translate3d(calc("+r+"px - 50%), calc("+(-c+h)+"px - "+(this.options.icon&&this.options.icon_position!=="center"?"100%":"50%")+"), 0)"}),this.overlay.bindElement(this),this.registryEvent(),this.initDiv(),this.addEventListener("change-icon",n=>{let{value:r}=n;r?this.img?this.img.setAttribute("src",r):(this.addIcon(),this._changePosition()):(this.img&&this.div.removeChild(this.img),this.img=void 0,this._changePosition(),this.resetSize())}),this.addEventListener("change-texts",n=>{let{value:r}=n,h=this.textDiv;if(h){let c=this.initText();this.div.replaceChild(c,h)}else this.addText();this.resetSize()}),this.addEventListener("change-opacity",n=>{let{value:r}=n;this.overlay.setOpacity(r)}),this.addEventListener("change-icon_size",n=>{let{value:r}=n;this.img&&(this.img.style.width=""+((r==null?void 0:r[0])||32)+"px",this.img.style.height=""+((r==null?void 0:r[1])||32)+"px",this.resetSize())}),this.addEventListener("change-icon_opacity",n=>{let{value:r}=n;this.img&&(this.img.style.opacity=""+r)}),this.addEventListener("change-icon_border",n=>{let{value:r}=n;this.img&&(this.img.style.border=r.width+"px solid "+r.color)}),this.addEventListener("change-background",n=>{let{value:r}=n;this.div.style.background=r})}};import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.set.difference.v2.js";import"core-js/modules/es.set.intersection.v2.js";import"core-js/modules/es.set.is-disjoint-from.v2.js";import"core-js/modules/es.set.is-subset-of.v2.js";import"core-js/modules/es.set.is-superset-of.v2.js";import"core-js/modules/es.set.symmetric-difference.v2.js";import"core-js/modules/es.set.union.v2.js";import{Box3 as Bi,Object3D as ao,Vector3 as Wi}from"three";import{MeshBasicMaterial as bh,Object3D as Sh,PlaneGeometry as Eh,Texture as Lh,Mesh as Ch,Matrix3 as Gn,Vector2 as Th,FrontSide as kh}from"three";import{create as Dh}from"@mars3d/heatmap.js";import{bbox as Ah,center as Oh}from"@turf/turf";var Li=class extends Sh{clearHeatmap(){this.div.firstChild&&this.div.removeChild(this.div.firstChild),this.heatmap=void 0}loadData(t){var e;this.clearHeatmap();let{width:i,height:s,leftTop:o,center:n,scale:r}=this.box,h=((e=this.context.config.heatMap)==null?void 0:e.radius)||1,c=x({width:i,height:s,container:this.div},this.context.config.heatMap,{radius:h});this.heatmap=Dh(c);let l=this.transformData(t,o,r);t.maxValue!==void 0&&(l.max=t.maxValue),t.minValue!==void 0&&(l.min=t.minValue),this.heatmap.setData(l),this.initPlane(i/r,s/r);let p=this.context.center;this.position.set(n[0]-p[0],n[1]-p[1],this.position.z)}initPlane(t,e){this.plane&&this.remove(this.plane);let i=new Eh(t,e),s=new Lh(this.div.firstChild);s.needsUpdate=!0;let o=new bh({transparent:!0,side:kh,map:s});o.needsUpdate=!0,this.plane=new Ch(i,o),this.plane.renderOrder=1e5,this.add(this.plane)}getTransMatrix(t){let{x:e,y:i}=t;return new Gn().makeScale(this.box.scale,-this.box.scale).multiply(new Gn().makeTranslation(-e,-i))}transformData(t,e,i){var s,o;let n=this.getTransMatrix(e);var r;let h=(r=(s=t.data[0])==null?void 0:s.value)!=null?r:0;var c;let l=(c=(o=t.data[0])==null?void 0:o.value)!=null?c:0;return{data:t.data.map(d=>{let u=new Th(d.x,d.y).applyMatrix3(n);return d.value>h&&(h=d.value),d.value<l&&(l=d.value),{x:Math.ceil(u.x),y:Math.ceil(u.y),value:d.value}}),max:h,min:l}}getBox(){let t=this.context.range,e=Ah(t),i=Math.ceil(e[2]-e[0]),s=Math.ceil(e[3]-e[1]),o=4e3,n=4e3,r=o/i,h=n/s,c=Math.min(r,h);this.scaleRatio=c;let l=i*c,p=s*c,d={x:Math.ceil(e[0]),y:Math.ceil(e[3])},u=Oh(t).geometry.coordinates;return{width:l,height:p,leftTop:d,center:u,scale:c}}dispose(){this.clearHeatmap(),this.div.remove(),this.div=null,this.plane&&(this.remove(this.plane),I(this.plane))}constructor(t){super(),this.context=t,this.scaleRatio=1,this.div=document.createElement("div"),this.box=this.getBox()}};import{Object3D as Ih,Vector3 as Rh}from"three";var Ci=class extends Ih{loadModel(){return f(this,null,function*(){let t=yield at.loadModel(this.options.modelUrl);t.scene.rotation.set(Math.PI/2,Math.PI/2,0),this.add(t.scene),this.model=t})}dispose(){I(this),this.model=null}constructor(t,e){super(),this.context=t,this.options=e,this.model=null,this.position.copy(e.position||new Rh(0,0,0)),this.loadModel()}};import"core-js/modules/web.dom-collections.iterator.js";import{Box3 as Gh,Vector3 as zh}from"three";import{Object3D as Fh}from"three";var Y=class extends Fh{setOpacity(t,e){e===void 0&&(e=!1),this.children.forEach(i=>{i.setOpacity==null||i.setOpacity.call(i,t,e)})}onAddToScene(t){this.active=!0,this.sceneType=t}onRemoveFromScene(){this.active=!1}dispose(){I(this),this.children.forEach(t=>t.dispose==null?void 0:t.dispose.call(t)),this.clear()}constructor(t){super(),this.context=t,this.active=!1,this.sceneType="scene"}};var Ti=class extends Y{getCenter(){return new Gh().setFromObject(this).getCenter(new zh)}createGraphic(t){let e=new ot(this.context,t);return e.userData.data=t,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((s,o)=>{if(o instanceof ot){let n=o.raycast(t);if(n){let{distance:r}=n;if(r<s.distance)return{distance:n.distance,position:n.position,graphic:o}}return s}else return s},e);return i===e?{graphics:[],position:null}:{graphics:[i.graphic],position:i.position}}setGraphicOptions(t,e){let i,s=this.graphicMap.get(t);s&&(typeof e=="function"?i=e(s.options):i=x({},s.options,e),Object.keys(i).forEach(o=>{s.options[o]=i[o]}))}getGraphicPosition(t){let e=this.graphicMap.get(t);return e?[e.options.center_x,e.options.center_y]:null}setOpacity(t,e){e===void 0&&(e=!1),this.graphicMap.forEach(i=>{i.setOpacity(t,e)})}constructor(t){super(t),this.graphicMap=new Map}};import"core-js/modules/es.array.unshift.js";import"core-js/modules/es.array.push.js";import{debounce as Bh}from"lodash";var ki=class extends Y{clear(t){return t===void 0&&(t=!1),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 he(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(s=>s instanceof he&&s.isContain(t,e))}collisionDetection(){let t=[];this.pois.filter(i=>i.visible&&i.withinDisplayRange).forEach((i,s)=>{let{left:o,right:n,top:r,bottom:h}=i.getBox();if(s===0||!i.options.collision_enable){t.push({left:o,right:n,top:r,bottom:h}),i.parentSetVisible(!0);return}let c=t.some(l=>l.left<n&&l.right>o&&l.top<h&&l.bottom>r);i.parentSetVisible(!c),c||t.push({left:o,right:n,top:r,bottom:h})})}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()}constructor(t){super(t),this.pois=[],this.timer=new j,this.onUpdate=()=>{this.timer.requestAnimationFrame(()=>{this.collisionDetection()})},this.registryEvent(),this.debounceCollisionDetection=Bh(this.collisionDetection,10)}};import"core-js/modules/es.array.push.js";import{Vector2 as Wh}from"three";var Di=class extends Y{clear(){return this.context.collisionSystem.removeObjects(this.pois),this.pois.forEach(t=>{t.dispose()}),this.pois=[],this}createPoi(t){let e=new J(this.context,t);return this.pushPoi(e),e}removePoi(t){let e=this.pois.findIndex(i=>i===t);e!==-1&&(this.remove(t),this.pois.splice(e,1),this.context.collisionSystem.removeObject(t),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){this.pois.includes(t)||(t.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("text-texture-inited",()=>{this.active&&this.context.forceUpdate()}),t.parentSetVisible(!1),this.add(t),this.pois.push(t),this.sceneType==="mulFloors"&&(t.options.depth_test=!0),this.active&&this.context.collisionSystem.addObject(t))}changePoiLevelOrCollisionEnable(t){this.active&&(this.context.collisionSystem.removeObject(t),this.context.collisionSystem.addObject(t))}getPoiByDeviceXy(t,e){let i=new Wh(t,e);return this.pois.filter(o=>o instanceof J&&o.canSelect&&o.box.containsPoint(i))}setOpacity(t){this.pois.forEach(e=>{e.options.icon_opacity=t,e.options.text_opacity=t})}onAddToScene(t){super.onAddToScene(t);let e=t==="mulFloors";this.pois.forEach(i=>{i.options.depth_test=e,this.context.collisionSystem.addObject(i)})}onRemoveFromScene(){super.onRemoveFromScene(),this.context.collisionSystem.removeObjects(this.pois)}dispose(){this.timer.dispose(),this.clear(),super.dispose()}constructor(t){super(t),this.pois=[],this.timer=new j}};import"core-js/modules/es.regexp.exec.js";import"core-js/modules/web.dom-collections.iterator.js";import{Vector2 as io}from"three";import{isNil as Uh}from"lodash";var Ai=class extends Y{createParkings(t,e,i){e===void 0&&(e=!0),this.parkingOptions=t,this.merged=e,e?(i?this.createMergedParkingByMergedElements(i):this.createMergedParking(t),t.map((s,o)=>{var n;(n=s.texts[0])==null||n.split(/[,,]/).map(r=>{this.parkingNoIndexMap.set(r,o)}),this.nodeIdIndexMap.set(s.id,o)})):this.createIndependentParking(t)}load(t,e){e===void 0&&(e=!0);var i;this.createParkings(t.elements,e,t.mergedElements),(i=t.mergedParkingTexture)!=null&&i.length?this.createMergedParkingTexture(t.mergedParkingTexture):this.createParkingTexture(t.elements)}createMergedParking(t){return f(this,null,function*(){let e=new Ve(this.context,t);this.mergedParkingSpace=e,this.add(e)})}createMergedParkingByMergedElements(t){let e=new Se(this.context,t);if(this.mergedParkingSpace=e,t.lineGeometry){let i=new pe(this.context,t.lineGeometry);this.add(i)}this.add(e)}createIndependentParking(t){t.forEach(e=>{var i;let s=new ot(this.context,e);this.add(s),(i=e.texts[0])==null||i.split(/[,,]/).map(o=>{this.parkingNoGraphicMap.set(o,s)}),this.graphicMap.set(s.options.id,s)})}createParkingTexture(t){let e=t.filter(i=>_i[i.parkingType]).map(i=>{let s=new io(...i.geometry.coords[0][0]),o=new io(...i.geometry.coords[0][1]),n=new io(...i.geometry.coords[0][2]),r=Math.min(s.distanceTo(o),o.distanceTo(n)),h=0;return r===s.distanceTo(o)?h=o.sub(s).angle()-Math.PI/2:h=n.sub(o).angle()-Math.PI/2,{uuid:i.id,iconUrl:_i[i.parkingType],name:i.texts[0],deltaHeight:(i.deltaHeight||0)+.001,airHeight:i.airHeight,height:i.height,geometry:i.geometry,opacity:i.fillOpacity,visible:!0,secondWidth:r-1,secondHeight:r-1,secondRotate:h,centerCoords:[i.center_coord_x,i.center_coord_y]}});if(e.length){let i=new ce(this.context,e);this.add(i)}}createMergedParkingTexture(t){t.map(e=>{e.iconUrl=_i[e.iconUrl];let i=new le(this.context,e);this.add(i)})}changeParkingColor(t){this.merged?Object.keys(t).map(e=>{let i=this.parkingNoIndexMap.get(e);if(!Uh(i)){var s;(s=this.mergedParkingSpace)==null||s.setColorByIndex(i,t[e])}}):Object.keys(t).map(e=>{let i=this.parkingNoGraphicMap.get(e);i&&(i.options.fillColor=t[e])})}setOpacity(t,e){if(e===void 0&&(e=!1),this.parkingOptions.forEach(s=>{if(e)s.fillOpacity=t,s.strokeOpacity=t;else{let r=this.parkingOriginOptions.get(s.id);var o;s.fillOpacity=Math.min(t,(o=r==null?void 0:r.fillOpacity)!=null?o:1);var n;s.strokeOpacity=Math.min(t,(n=r==null?void 0:r.strokeOpacity)!=null?n:1)}}),this.merged)if(this.mergedParkingSpace instanceof Ve)this.mergedParkingSpace.setOpacity(t,e);else{var i;(i=this.mergedParkingSpace)==null||i.setOpacity(t,e)}else this.graphicMap.forEach(s=>{s.setOpacity(t,e)});this.children.filter(s=>s instanceof ce||s instanceof le).map(s=>s.setOpacity(t))}getParkingOptionsByParkingNo(t){return this.parkingOptions.find(i=>i.texts[0]===t)||null}getGraphicPosition(t){if(this.merged){let e=this.parkingOptions.find(i=>i.id===t);return e?[e.center_x,e.center_y]:null}}dispose(){var t;(t=this.mergedParkingSpace)==null||t.dispose(),this.mergedParkingSpace=null,I(this),this.graphicMap.clear(),this.parkingNoGraphicMap.clear(),this.parkingNoIndexMap.clear(),this.nodeIdIndexMap.clear(),this.parkingOptions=[],super.dispose()}constructor(t){super(t),this.graphicMap=new Map,this.parkingNoGraphicMap=new Map,this.parkingOriginOptions=new Map,this.parkingOptions=[],this.merged=!1,this.parkingNoIndexMap=new Map,this.nodeIdIndexMap=new Map,this.mergedParkingSpace=null}};import"core-js/modules/es.array.push.js";var Oi=class extends Y{addModels(t){let e=t.reduce((i,s)=>{let{url:o}=s;return i[o]?i[o].push(s):i[o]=[s],i},{});Object.values(e).forEach(i=>{let s=new Ii(this.context,i);this.add(s)})}constructor(t){super(t)}};import"core-js/modules/web.dom-collections.iterator.js";import{Box3 as qh,Group as Wn,Matrix4 as $h,Quaternion as Jh,Vector3 as oo}from"three";import{LineMaterial as Hh}from"three/examples/jsm/lines/LineMaterial.js";import{Color as Ke,LineBasicMaterial as Nh,MeshStandardMaterial as Zh,MeshBasicMaterial as jh,ShaderMaterial as Ee,DoubleSide as Vh,LineDashedMaterial as Kh}from"three";function zn(a){return`${a.x}-${a.y}-${a.z}`}var lt=class{static generateLineMaterialKey({color:t,opacity:e}){return`${t}-${e}`}static createLineMaterial({color:t,opacity:e,vertexColors:i}){let s=this.generateLineMaterialKey({color:t,opacity:e,vertexColors:i});if(this.lineMaterialMap.has(s))return this.lineMaterialMap.get(s);let o=new Nh({color:new Ke(t).convertLinearToSRGB(),transparent:!0,opacity:e,vertexColors:i!=null?i:!1});return this.lineMaterialMap.set(s,o),o}static createMeshStandardMaterial({color:t,opacity:e}){let i=`${t}-${e}`;if(this.meshStandardMaterialMap.has(i))return this.meshStandardMaterialMap.get(i);let s=new Zh({color:new Ke(t).convertLinearToSRGB(),roughness:1,transparent:!0,opacity:e,depthWrite:!0});return this.meshStandardMaterialMap.set(i,s),s}static createMeshBasicMaterial({color:t,opacity:e,vertexColors:i}){let s=`${t}-${e}-${i}`;if(this.meshBasicMaterialMap.has(s))return this.meshBasicMaterialMap.get(s);let o=new jh({color:t,transparent:!0,opacity:e,depthWrite:!0,vertexColors:i!=null?i:!1});return this.meshBasicMaterialMap.set(s,o),o}static createShaderMaterial({gradualColor:t,center:e,maxValue:i,opacity:s,direction:o,max:n,min:r}){let h=`${t.toString()}-${zn(e)}-${i}-${s}-${zn(o)}`;if(this.shaderMaterialMap.has(h))return this.shaderMaterialMap.get(h);let c=`
220
220
  uniform vec3 uColor;
221
221
  uniform vec3 uGradualColor;
222
222
  uniform vec3 center;
@@ -498,7 +498,7 @@ var oa=Object.create;var Fs=Object.defineProperty;var na=Object.getOwnPropertyDe
498
498
  gl_FragColor = vec4(uColor2, uOpacity); // \u5176\u4ED6\u9762\u989C\u8272\uFF09
499
499
  }
500
500
  }
501
- `,i=-1/0,s=this.geometry.getAttribute("position");if(s)for(let n=0;n<s.count;n++){let r=s.getZ(n);r>i&&(i=r)}let o=new Kc({uniforms:{maxZ:{value:i},uColor:{value:new qn(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new qn(Ut(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:e,transparent:!0});this.material=o}initLineMaterial(){let t=S.createLineMaterial({color:this.options[0].strokeColor,opacity:this.options[0].strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new Zc(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],e=this.options[0].height+this.options[0].deltaHeight;return this.options.map(i=>{let{coords:s}=i.geometry;for(let o=0;o<s.length;o++){let n=s[o];for(let r=0;r<n.length;r++){let h=n[r],c=r+1===n.length?n[0]:n[r+1];t.push(new Xn(h[0],h[1],e)),t.push(new Xn(c[0],c[1],e))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),e=new jc().setFromPoints(t);this.lineGeometry=e}createBorder(){this.line&&this.remove(this.line);let t=new Vc(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t,e;this.geometry?(this.geometry.dispose(),this._listeners={}):this.addEventListener("init-geometry",()=>{var i;(i=this.geometry)==null||i.dispose(),this._listeners={}}),(t=this.material)==null||t.dispose(),(e=this.line)==null||e.geometry.dispose(),this.clear()}constructor(t,e,i){super(),this.context=t,this.mergedElement=i,this.options=[],i?(this.options=[i],this.initMergedElement()):(this.options=e.map(s=>x({},Vt,s)),this.init())}};import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.string.trim.js";import{DoubleSide as Xc,Matrix4 as Jn,Mesh as qc,MeshBasicMaterial as $c,Object3D as Jc,PlaneGeometry as Qc}from"three";import{mergeGeometries as tl}from"three/examples/jsm/utils/BufferGeometryUtils.js";var el={airHeight:0,deltaHeight:0,height:0,geometry:{cds:[],type:"polygon",coords:[],curveCpt:[],curveIndex:[]},texts:[],fillColor:"#ffffff",fillOpacity:0,strokeColor:"#ffffff",strokeOpacity:0,secondHeight:0,secondRotate:0,center_x:0,center_y:0},Vi=class extends Jc{init(){return f(this,null,function*(){let t=yield Promise.all(this.options.map(n=>et.getTextureByText(n.texts[0],{fillStyle:Bs(n.fillColor,n.fillOpacity),strokeStyle:Bs(n.strokeColor,n.strokeOpacity),lineWidth:6,font:"bold 54px sans-serif",maxWidth:2048}))),e=t.map((n,r)=>{let h=this.options[r],{width:c,height:l}=n.texture.image,p=c/l,d=h.secondHeight*p,u=new Qc(d,h.secondHeight),m=new Jn().makeTranslation(h.center_x,h.center_y,h.airHeight+h.deltaHeight+h.height).multiply(new Jn().makeRotationZ(h.secondRotate));return u.applyMatrix4(m),u}),i=tl(e,!0);e.forEach(n=>n.dispose());let s=t.map(n=>{let{texture:r}=n,h=new $c({map:r,alphaTest:1,side:Xc});return r.needsUpdate=!0,h}),o=new qc(i,s);this.mesh=o,this.position.z+=.04,this.add(o)})}setOpacity(t){var e,i;(i=this.mesh)==null||(e=i.material)==null||e.forEach(s=>{s.opacity=t,s.needsUpdate=!0})}dispose(){var t,e,i;(t=this.mesh)==null||t.geometry.dispose(),(i=this.mesh)==null||(e=i.material)==null||e.forEach(s=>s.dispose()),this.clear()}constructor(t,e){super(),this.context=t,this.options=e.map(i=>x({},el,i)).filter(i=>i.texts[0].trim()),this.options.length&&this.init()}};import{Object3D as il}from"three";import{Line2 as sl}from"three/examples/jsm/lines/Line2.js";import{LineGeometry as ol}from"three/examples/jsm/lines/LineGeometry.js";import{LineMaterial as nl}from"three/examples/jsm/lines/LineMaterial.js";var qe=class extends il{registryEvent(){this.context.addEventListener("resize",this.onResize)}unRegistryEvent(){this.context.removeEventListener("resize",this.onResize)}setPosition(t,e){this.lineGeometry.setPositions([t.x,t.y,t.z,e.x,e.y,e.z]),this.line||this.createLine()}createLine(){this.line=new sl(this.lineGeometry,this.lineMaterial),this.line.renderOrder=100003,this.add(this.line)}dispose(){var t;this.unRegistryEvent(),this.line&&I(this.line),this.lineGeometry=null,this.lineMaterial=null,this.clear(),(t=this.line)==null||t.clear(),this.line=null}constructor(t,e,i){super(),this.context=t,this.lineGeometry=new ol,this.lineMaterial=new nl({color:0,transparent:!0,depthTest:!1,linewidth:2}),this.line=null,this.onResize=()=>{let{width:s,height:o}=this.context.clientSize;this.lineMaterial.resolution.set(s,o)},this.onResize(),this.registryEvent(),e&&i&&this.setPosition(e,i)}};import"core-js/modules/es.array.push.js";import"core-js/modules/web.dom-collections.iterator.js";import{Box3 as rl,InstancedMesh as al,Object3D as hl,Vector3 as cl}from"three";import{Matrix4 as $e}from"three";var Ii=class extends hl{loadModel(){return f(this,null,function*(){let t=yield at.loadModel(this.options[0].url);t.scene.updateMatrixWorld(!0);let e=t.scene.matrixWorld.clone().invert();t.scene.traverse(h=>{if(h.isMesh){let c=e.clone().multiply(h.matrixWorld),l=h.material;this.subMeshes.push({geometry:h.geometry,material:h.material,initialMatrix:c}),Array.isArray(l)?l.forEach(p=>{p.transparent=!0,this.materialOriginParams.set(p,{opacity:p.opacity})}):(l.transparent=!0,this.materialOriginParams.set(l,{opacity:l.opacity}))}});let i=this.subMeshes.map(h=>{let{geometry:c,material:l}=h;return new al(c,l,this.options.length)});t.scene.rotation.set(Math.PI/2,0,0);let o=new rl().setFromObject(t.scene).getSize(new cl),n=Math.max(o.x,o.y);this.options.map(h=>{let c=new $e,l=h.width/n;return c.multiply(new $e().makeTranslation(h.center_x,h.center_y,h.airHeight+h.deltaHeight)).multiply(new $e().makeScale(l,l,l)).multiply(new $e().makeRotationZ(h.rotate)).multiply(new $e().makeRotationX(Math.PI/2)),h.url==="https://robot-vr-public.cdn.bcebos.com/ai-map-resource/757/1865371442288267264/smzsdrc.glb"&&console.log(h,c),c}).forEach((h,c)=>{i.forEach((l,p)=>{let d=h.clone().multiply(this.subMeshes[p].initialMatrix);l.setMatrixAt(c,d)})}),i.forEach(h=>{h.instanceMatrix.needsUpdate=!0,this.meshSetMaterial(h),this.add(h)})})}meshSetMaterial(t){t.isMesh&&(t.frustumCulled=!1,t.castShadow=!0,Array.isArray(t.material)?t.material.map(e=>{e.emissiveIntensity*=.95}):(t.material.emissiveIntensity*=.95,t.material.emissive=t.material.color,t.material.emissiveMap=t.material.map))}setOpacity(t,e){e===void 0&&(e=!1),this.subMeshes.forEach(i=>{let{material:s}=i;if(Array.isArray(s))s.forEach(o=>{if(e)o.opacity=t;else{let n=this.materialOriginParams.get(o)||{opacity:1};t>n.opacity?o.opacity=n.opacity:o.opacity=t}o.needsUpdate=!0});else{let o=this.materialOriginParams.get(s)||{opacity:1};t>o.opacity?s.opacity=o.opacity:s.opacity=t,s.needsUpdate=!0}}),this.children.forEach(i=>{i.instanceMatrix.needsUpdate=!0})}dispose(){this.children.forEach(t=>t.dispose()),I(this),this.clear()}constructor(t,e){super(),this.context=t,this.options=e,this.subMeshes=[],this.materialOriginParams=new Map,this.loadModel()}};import{Object3D as ll,Mesh as pl,LineSegments as dl,ObjectLoader as ul}from"three";var Ye=class extends ll{init(){return f(this,null,function*(){this.geometry=this.initGeometry(),this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options.deltaHeight+this.options.airHeight,this.options.lineGeometry&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())})}initGeometry(){return this.loader.parseGeometries([this.options.mergedGeometry])[this.options.mergedGeometry.uuid]}initMaterial(){this.material=S.GetMergeAttributeGraphicMaterial()}initLineMaterial(){return this.lineMaterial=S.GetMergeAttributeGraphicLineMaterial()}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new pl(this.geometry,this.material),this.add(this.mesh)}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.loader.parseGeometries([this.options.lineGeometry]);this.lineGeometry=t[this.options.lineGeometry.uuid]}createBorder(){this.line&&this.remove(this.line);let t=new dl(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t;this.geometry&&this.geometry.dispose(),(t=this.line)==null||t.geometry.dispose(),this.clear()}constructor(t,e){super(),this.context=t,this.loader=new ul,this.options=x({},Vt,e),this.init()}};import{Mesh as ml,Object3D as fl,ObjectLoader as gl}from"three";var Ki=class extends fl{initGeometry(){return f(this,null,function*(){let t=new gl().parseGeometries([this.options.mergedGeometry]);this.geometry=t[this.options.mergedGeometry.uuid]})}init(){return f(this,null,function*(){var t;yield this.initGeometry();let e=new ml(this.geometry,lt.GetMergeAttributeWallMaterial());this.add(e);let i=(t=this.geometry)==null?void 0:t.getAttribute("opacity");i&&(this.originOpacities=Array.from(i.array))})}setOpacity(t,e){e===void 0&&(e=!1);var i;let s=(i=this.geometry)==null?void 0:i.getAttribute("opacity");if(s){for(let n=0;n<s.count;n++)if(e)s.setX(n,t);else{var o;s.setX(n,Math.min(t,(o=this.originOpacities[n])!=null?o:1))}s.needsUpdate=!0}}dispose(){var t;(t=this.geometry)==null||t.dispose(),this.clear()}constructor(t,e){super(),this.context=t,this.options=e,this.originOpacities=[],this.init()}};import"core-js/modules/es.typed-array.float32-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import{Float32BufferAttribute as yl,FrontSide as vl,InstancedBufferAttribute as xl,InstancedMesh as wl,MeshBasicMaterial as Ml,Object3D as _l,Shape as Pl,ShapeGeometry as bl,Vector2 as Yi}from"three";var le=class extends _l{init(){return f(this,null,function*(){let t=this.options.iconUrl,e=yield st.getTextureByUrl(t),i=new Ml({map:e,transparent:!0,alphaTest:.2,side:vl}),s=new wl(this.geometry,i,this.options.mergedMatrixes.size);s.instanceMatrix=new xl(new Float32Array(this.options.mergedMatrixes.array),16),this.add(s),this.mesh=s,this.position.z+=.004})}setOpacity(t){this.mesh&&(this.mesh.material.opacity=t,this.mesh.material.needsUpdate=!0,this.mesh.instanceMatrix.needsUpdate=!0)}dispose(){var t;this.mesh&&I(this.mesh),(t=this.mesh)==null||t.dispose(),this.clear()}constructor(t,e){super(),this.context=t,this.geometry=new bl(new Pl([new Yi(-.5,-.5),new Yi(-.5,.5),new Yi(.5,.5),new Yi(.5,-.5)])),this.options=x({},lo,e);let i=new yl([0,0,0,1,1,1,1,0],2);this.geometry.setAttribute("uv",i),this.init()}};import"core-js/modules/es.array.push.js";import{Mesh as Sl,Object3D as El,ObjectLoader as Ll,Vector2 as Qn}from"three";import{LineSegments2 as tr}from"three/examples/jsm/lines/LineSegments2.js";import{LineSegmentsGeometry as er}from"three/examples/jsm/lines/LineSegmentsGeometry.js";var Xi=class extends El{initGeometry(){return f(this,null,function*(){let t=this.loader.parseGeometries([this.options.mergedGeometry]);this.geometry=t[this.options.mergedGeometry.uuid]})}initMaterial(){let t=S.createMeshBasicMaterial({color:"#ffffff",opacity:1,vertexColors:!0});return this.material=t,t}initDoubleLine(){if(this.options.dashedLineGeometry){let t=S.createLine2MaterialMap({color:"#ffffff",width:.2,dashed:!0,resolution:new Qn(this.context.clientSize.width,this.context.clientSize.height),vertexColors:!0});t.transparent=!0,t.needsUpdate=!0;let e=new er;e.setPositions(this.options.dashedLineGeometry.positions),e.setColors(this.options.dashedLineGeometry.colors);let i=new tr(e,t);i.computeLineDistances(),i.position.z+=.01,this.add(i),this.doubleLines.push(i)}if(this.options.lineGeometry){let t=S.createLine2MaterialMap({color:"#ffffff",width:.2,dashed:!1,resolution:new Qn(this.context.clientSize.width,this.context.clientSize.height),vertexColors:!0}),e=new er;e.setPositions(this.options.lineGeometry.positions),e.setColors(this.options.lineGeometry.colors);let i=new tr(e,t);i.position.z+=.01,this.add(i),this.doubleLines.push(i)}}init(){return f(this,null,function*(){yield this.initGeometry(),this.initMaterial();let t=new Sl(this.geometry,this.material);this.add(t),this.initDoubleLine(),this.position.z+=.02})}setOpacity(t){this.material.opacity=t,this.material.needsUpdate=!0,this.doubleLines.forEach(e=>{e.material.opacity=t,e.material.needsUpdate=!0})}dispose(){var t,e;(t=this.geometry)==null||t.dispose(),(e=this.lineGeometry)==null||e.dispose(),this.doubleLines.map(i=>i.geometry.dispose()),this.clear()}constructor(t,e){super(),this.context=t,this.options=e,this.doubleLines=[],this.loader=new Ll,this.init()}};import"core-js/modules/es.typed-array.float32-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import"core-js/modules/web.dom-collections.iterator.js";import{Object3D as Cl,Vector3 as po,BufferGeometry as Tl,LineSegments as kl,Color as ir,BoxGeometry as Dl,InstancedMesh as Al,Matrix4 as Ol,Quaternion as Il,InstancedBufferAttribute as sr,BufferAttribute as or}from"three";var Ve=class extends Cl{setColorByIndex(t,e){this.mesh&&(this.mesh.setColorAt(t,new ir(e).convertLinearToSRGB()),this.mesh.instanceColor.needsUpdate=!0)}init(){return f(this,null,function*(){this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options[0].deltaHeight+this.options[0].airHeight,this.options[0].strokeOpacity!==0&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())})}initMaterial(){this.material=S.GetInstancedGraphicMaterial()}initLineMaterial(){let t=S.GetMergeAttributeGraphicLineMaterial();this.lineMaterial=t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new Al(this.geometry,this.material,this.options.length);let t=new sr(new Float32Array(this.options.length),1),e=new sr(new Float32Array(this.options.length),1);this.options.forEach((i,s)=>{let o=i.geometry.coords[0],[n,r,h]=o.slice(0,3),c=Math.sqrt((r[0]-n[0])**2+(r[1]-n[1])**2),l=Math.sqrt((h[0]-r[0])**2+(h[1]-r[1])**2),p=[c,l],d=Math.max(...p),u=Math.min(...p),m;d===c?m=[r[0]-n[0],r[1]-n[1]]:m=[h[0]-r[0],h[1]-r[1]];let[g,y]=m,w=Math.atan2(y,g)-Math.PI/2,M=new Ol().compose(new po(i.center_coord_x,i.center_coord_y,(i.deltaHeight||0)+i.airHeight+i.height/2),new Il().setFromAxisAngle(new po(0,0,1),w),new po(u,d,i.height));this.mesh.setMatrixAt(s,M),this.mesh.setColorAt(s,new ir(i.fillColor).convertLinearToSRGB()),t.array[s]=i.fillOpacity||1,e.array[s]=(i.deltaHeight||0)+i.airHeight+i.height}),this.originOpacity=[...t.array],this.geometry.setAttribute("opacity",t),this.geometry.setAttribute("maxZ",e),this.add(this.mesh),this.mesh.instanceMatrix.needsUpdate=!0}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let{points:t,colors:e,opacities:i}=Ys(this.options),s=new Tl().setFromPoints(t);s.setAttribute("color",new or(new Float32Array(e),3)),s.setAttribute("opacity",new or(new Float32Array(i),1)),this.lineOriginOpacity=[...i],this.lineGeometry=s}createBorder(){this.line&&this.remove(this.line);let t=new kl(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}setOpacity(t,e){e===void 0&&(e=!1);let i=this.geometry.getAttribute("opacity");for(let n=0;n<i.count;n++)if(e)i.array[n]=t;else{var s;i.array[n]=Math.min(t,(s=this.originOpacity[n])!=null?s:1)}if(i.needsUpdate=!0,this.lineGeometry){let n=this.lineGeometry.getAttribute("opacity");for(let r=0;r<n.count;r++)if(e)n.array[r]=t;else{var o;n.array[r]=Math.min(t,(o=this.lineOriginOpacity[r])!=null?o:1)}n.needsUpdate=!0}}dispose(){var t,e;this.geometry.dispose(),(t=this.mesh)==null||t.dispose(),(e=this.line)==null||e.geometry.dispose(),this.clear()}constructor(t,e){super(),this.context=t,this.geometry=new Dl(1,1,1),this.options=[],this.originOpacity=[],this.lineOriginOpacity=[],this.options=e.map(i=>x({},Vt,i)),this.init()}};import"core-js/modules/es.typed-array.float32-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import"core-js/modules/web.dom-collections.iterator.js";import{Object3D as Rl,Color as Fl,BoxGeometry as Gl,InstancedMesh as zl,InstancedBufferAttribute as uo}from"three";var Se=class extends Rl{init(){return f(this,null,function*(){this.initMaterial(),this.initMesh()})}initMaterial(){this.material=S.GetInstancedGraphicMaterial()}initMesh(){if(this.mesh&&this.remove(this.mesh),!this.elements)return;this.mesh=new zl(this.geometry,this.material,this.elements.size);let t=new uo(new Float32Array(this.elements.opacities),1),e=new uo(new Float32Array(this.elements.maxZs),1);this.originOpacities=[...t.array],this.geometry.setAttribute("opacity",t),this.geometry.setAttribute("maxZ",e),this.mesh.instanceMatrix.set(this.elements.matrixes),this.mesh.instanceColor=new uo(new Float32Array(this.elements.colors),3),this.add(this.mesh),this.mesh.instanceMatrix.needsUpdate=!0}setColorByIndex(t,e){this.mesh&&(this.mesh.setColorAt(t,new Fl(e).convertLinearToSRGB()),this.mesh.instanceColor.needsUpdate=!0)}setOpacityByIndex(t,e){if(this.mesh){let i=this.geometry.getAttribute("opacity");i.setX(t,e),i.needsUpdate=!0}}setMatrixByIndex(t,e){this.mesh&&(this.mesh.setMatrixAt(t,e),this.mesh.instanceMatrix.needsUpdate=!0)}setMaxZByIndex(t,e){if(this.mesh){let i=this.geometry.getAttribute("maxZ");i.setX(t,e),i.needsUpdate=!0}}setColorById(t,e){if(!this.elements)return;let i=this.elements.ids.findIndex(s=>s===t);i!==-1&&this.setColorByIndex(i,e)}setOpacityById(t,e){if(!this.elements)return;let i=this.elements.ids.findIndex(s=>s===t);i!==-1&&this.setOpacityByIndex(i,e)}setMatrixById(t,e){if(!this.elements)return;let i=this.elements.ids.findIndex(s=>s===t);i!==-1&&this.setMatrixByIndex(i,e)}setMaxZById(t,e){if(!this.elements)return;let i=this.elements.ids.findIndex(s=>s===t);i!==-1&&this.setMaxZByIndex(i,e)}setOpacity(t,e){if(e===void 0&&(e=!1),!this.geometry)return;let i=this.geometry.getAttribute("opacity");for(let o=0;o<i.count;o++)if(e)i.array[o]=t;else{var s;i.array[o]=Math.min(t,(s=this.originOpacities[o])!=null?s:1)}i.needsUpdate=!0}pushElements(t){this.elements?(this.elements.size+=t.size,this.elements.colors=[...this.elements.colors,...t.colors],this.elements.matrixes=[...this.elements.matrixes,...t.matrixes],this.elements.opacities=[...this.elements.opacities,...t.opacities],this.elements.maxZs=[...this.elements.maxZs,...t.maxZs],this.elements.ids=[...this.elements.ids,...t.ids],this.originOpacities=[...this.originOpacities,...t.opacities]):this.elements=t,this.refesh()}removeInstanceById(t){if(this.elements){if(this.mesh){let e=this.elements.ids.indexOf(t);e!==-1&&(this.elements.size--,this.elements.colors.splice(e*3,3),this.elements.matrixes.splice(e*16,16),this.elements.opacities.splice(e,1),this.elements.maxZs.splice(e,1),this.elements.ids.splice(e,1),this.originOpacities.splice(e,1))}this.refesh()}}refesh(){this.mesh&&(this.mesh.dispose(),this.remove(this.mesh)),this.init()}dispose(){var t;this.material=null,this.originOpacities.length=0,this.geometry.dispose(),(t=this.mesh)==null||t.dispose(),this.clear()}constructor(t,e){super(),this.geometry=new Gl(1,1,1),this.material=null,this.elements=null,this.originOpacities=[],this.elements=e,this.init()}};import"core-js/modules/es.typed-array.float32-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import"core-js/modules/web.dom-collections.iterator.js";import{Object3D as Bl,BoxGeometry as Wl,InstancedMesh as Ul,InstancedBufferAttribute as qi}from"three";var $i=class extends Bl{init(){return f(this,null,function*(){this.initMaterial(),this.initMesh()})}initMaterial(){this.material=S.GetInstancedWallMaterial()}initMesh(){if(this.mesh&&this.remove(this.mesh),!this.elements)return;this.mesh=new Ul(this.geometry,this.material,this.elements.size);let t=new qi(new Float32Array(this.elements.opacities),1),e=new qi(new Float32Array(this.elements.maxZs),1),i=new qi(new Float32Array(this.elements.minZs),1);this.originOpacities=[...t.array],this.geometry.setAttribute("opacity",t),this.geometry.setAttribute("maxZ",e),this.geometry.setAttribute("minZ",i),this.mesh.instanceMatrix.set(this.elements.matrixes),this.mesh.instanceColor=new qi(new Float32Array(this.elements.colors),3),this.add(this.mesh),this.mesh.instanceMatrix.needsUpdate=!0}setOpacityByIndex(t,e){if(this.mesh){let i=this.geometry.getAttribute("opacity");i.setX(t,e),i.needsUpdate=!0}}setOpacity(t,e){e===void 0&&(e=!1),this.elements&&this.elements.opacities.forEach((i,s)=>{let o=e?t:Math.min(t,this.originOpacities[s]);this.setOpacityByIndex(s,o)})}dispose(){this.mesh&&(this.mesh.dispose(),this.remove(this.mesh)),this.material=null,this.geometry&&this.geometry.dispose(),this.elements=null}constructor(t,e){super(),this.geometry=new Wl(1,1,1),this.material=null,this.elements=null,this.originOpacities=[],this.elements=e,this.init()}};import{Object3D as Hl,LineSegments as Nl,ObjectLoader as Zl}from"three";var pe=class extends Hl{init(){return f(this,null,function*(){this.initLineGeometry(),this.initLineMaterial(),this.createBorder()})}initLineMaterial(){return this.lineMaterial=S.GetMergeAttributeGraphicLineMaterial()}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.loader.parseGeometries([this.options]);this.lineGeometry=t[this.options.uuid]}createBorder(){this.line&&this.remove(this.line);let t=new Nl(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t;(t=this.lineGeometry)==null||t.dispose(),this.lineMaterial=null,this.clear()}constructor(t,e){super(),this.context=t,this.lineMaterial=null,this.loader=new Zl,this.options=x({},Vt,e),this.init()}};import{Frustum as jl}from"three";var Ji=class extends wt{setEnable(t){super.setEnable(t),ht(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:s}}}=this,o=D(this.startPoint,e,i,s),n=D(this.endPoint,e,i,s),r={x:Math.min(o.x,n.x),y:Math.min(o.y,n.y)},h={x:Math.max(o.x,n.x),y:Math.max(o.y,n.y)},c=this.searchMapInFrustum(r,h);this.dispatchEvent({type:"selected",list:c})}}searchMapInFrustum(t,e){var i;let{context:s}=this;return((i=s.currentFloor)==null?void 0:i.graphicLayer.children.filter(o=>o instanceof ot&&this.searchChildInFrustum(o,t,e)))||[]}searchChildInFrustum(t,e,i){let{context:{camera:s,container:{clientWidth:o,clientHeight:n}}}=this;if(!t)return!1;if(!t.mesh){let d=t.getPosition();if(d){let u=D(d,s,o,n);return $t(u,e,i)}return!1}t.mesh.geometry.boundingBox||t.mesh.geometry.computeBoundingBox();let r=t.mesh.geometry.boundingBox;if(!r)return!1;let{min:h,max:c}=r,l=D(h,s,o,n),p=D(c,s,o,n);return!(!$t(l,e,i)||!$t(p,e,i))}dispose(){super.dispose(),this.rect=null,this.unRegistryEvent()}constructor(t){super(t),this.frustum=new jl,this.onPointerDown=s=>{if(!this.enable)return;let o=this.getIntersectByPointerEvent(s);o&&(this.startPoint=o),this.endPoint=void 0},this.onPointerMove=s=>{if(!this.enable||!this.startPoint)return;let o=this.getIntersectByPointerEvent(s);o&&(this.endPoint=o)},this.onPointerUp=s=>{if(!this.enable)return;let o=this.getIntersectByPointerEvent(s);o&&(this.endPoint=o),this.doSelect(),this.startPoint=void 0},this.onUpdate=()=>{if(this.startPoint){let s=this.getSvgCoordinate(this.startPoint),o=x({},s);this.endPoint&&(o=this.getSvgCoordinate(this.endPoint));let n={x:Math.min(s.x,o.x),y:Math.min(s.y,o.y)},r=Math.abs(o.x-s.x),h=Math.abs(o.y-s.y);ht(this.rect,n.x,n.y,r,h)}else ht(this.rect,0,0,0,0)};let{config:{selectBox:{fill:e,stroke:i}}}=t;this.rect=Jt(i,e),this.svg.appendChild(this.rect),this.registryEvent()}};var Qi=class extends Vl{get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.context.config.enableBoxSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}constructor(t){super(),this.context=t,this._list=new Set,this.downPoint=null,this.downTime=0,this.isMultipleSelect=!1,this.onPointerDown=e=>{Date.now()-this.downTime<200||(this.downPoint={x:e.offsetX,y:e.offsetY},this.downTime=Date.now())},this.onPointerUp=e=>{if(!this.downPoint)return;let{offsetX:i,offsetY:s}=e,{x:o,y:n}=this.downPoint;if(Math.sqrt((o-i)**2+(n-s)**2)>3)return;let{graphics:r}=this.context.getGraphicsByDeviceXy(i,s),h=new Set(r.map(l=>l.options.id));this.context.getPoisByDeviceXy(i,s).forEach(l=>{if(!h.has(l.options.id)){var p;let d=((p=this.context.currentFloor)==null?void 0:p.graphicLayer.graphicMap.get(l.options.id))||null;d&&d.options.geometry.type==="point"&&(r.push(d),h.add(l.options.id))}}),(ge?e.metaKey:e.ctrlKey)||this._list.clear(),r.forEach(l=>this._list.add(l)),this.selectEnd(),this.downPoint=null},this.onPointerOut=e=>{this.disableBoxSelection()},this.onKeyDown=e=>{ye(e.key)&&this.enableBoxSelection()},this.onKeyUp=e=>{ye(e.key)&&this.disableBoxSelection()},this.onBoxSelected=e=>{let{list:i}=e;this._list.clear(),i.forEach(s=>{this._list.add(s)}),this.selectEnd()},this.boxSelection=new Ji(t),this.boxSelection.setEnable(!1),this.registryEvent()}};import"core-js/modules/es.set.difference.v2.js";import"core-js/modules/es.set.intersection.v2.js";import"core-js/modules/es.set.is-disjoint-from.v2.js";import"core-js/modules/es.set.is-subset-of.v2.js";import"core-js/modules/es.set.is-superset-of.v2.js";import"core-js/modules/es.set.symmetric-difference.v2.js";import"core-js/modules/es.set.union.v2.js";import"core-js/modules/web.dom-collections.iterator.js";import{EventDispatcher as Kl,Vector2 as Yl}from"three";var ts=class extends Kl{handleHoverGraphicsChange(t){t===void 0&&(t=this.curGraphics),this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel),document.body.addEventListener("pointermove",this.onBodyPointerMove)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel),document.body.removeEventListener("pointermove",this.onBodyPointerMove)}dispose(){this.unRegistryEvent(),this.timer.dispose()}constructor(t){super(),this.context=t,this.curGraphics=new Set,this.timer=new j,this.graphicTimerMap=new Map,this.onPointerMove=e=>{let{graphics:i,pois:s,e:o}=e,n=s.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(!i.length&&!n.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:r}=this.context.config.hover,h=new Set;if(n.length){let l,p=1e4;n.forEach(d=>{let u=s.find(m=>m.options.id===d.options.id);if(u instanceof he){let{x:m,y:g}=u.clientPos,y=Math.sqrt((m-o.offsetX)**2+(g-o.offsetY)**2);y<p&&(p=y,l=d)}else if(u instanceof J){let{x:m,y:g}=u.box.getCenter(new Yl),y=Math.sqrt((m-o.offsetX)**2+(g-o.offsetY)**2);y<p&&(p=y,l=d)}}),h.add(l)}h.size||i.forEach(l=>h.add(l)),h.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)=>{h.has(p)||(this.timer.clearTimeout(l),this.graphicTimerMap.delete(p))});let c=this.curGraphics.size;this.curGraphics.forEach(l=>{h.has(l)||this.curGraphics.delete(l)}),c!==this.curGraphics.size&&this.handleHoverGraphicsChange()},this.onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()},this.onBodyPointerMove=e=>{if(this.curGraphics.size){let i=this.context.container.getBoundingClientRect();(e.clientX<i.left||e.clientX>i.right||e.clientY<i.top||e.clientY>i.bottom)&&this.onPointerLevel()}},this.registryEvent()}};import"core-js/modules/web.dom-collections.iterator.js";import{Box3 as Xl,Vector3 as Ot}from"three";import{polygon as nr,intersect as ql}from"@turf/turf";var es=class{updateBox(){this.box.setFromObject(this.context.scene)}setEnable(t){this.enable=t,t?this.registryEvent():this.unRegistryEvent()}changePrevCamera(){this.prevCamera={position:this.context.camera.position.clone(),zoom:this.context.camera.zoom,target:this.context.control.target.clone()}}backToPrevCamera(){this.setEnable(!1),this.context.camera.position.copy(this.prevCamera.position),this.context.camera.zoom=this.prevCamera.zoom,this.context.control.target.copy(this.prevCamera.target),this.context.control.update(),this.setEnable(!0)}registryEvent(){this.context.addEventListener("control-change",this.onCameraChange)}unRegistryEvent(){this.context.removeEventListener("control-change",this.onCameraChange)}getCurFloorScreenPosition(){if(!this.context.scene.children.filter(m=>m instanceof At).length)return null;let e=this.box,{camera:i,clientSize:{width:s,height:o}}=this.context,{min:n,max:r}=e,c=[new Ot(n.x,n.y,n.z),new Ot(r.x,n.y,n.z),new Ot(n.x,r.y,n.z),new Ot(r.x,r.y,n.z),new Ot(n.x,n.y,r.z),new Ot(r.x,n.y,r.z),new Ot(n.x,r.y,r.z),new Ot(r.x,r.y,r.z)].map(m=>D(m,i,s,o)),l=Math.min(...c.map(m=>m.x)),p=Math.max(...c.map(m=>m.x)),d=Math.min(...c.map(m=>m.y)),u=Math.max(...c.map(m=>m.y));return{left:l,right:p,top:d,bottom:u}}checkDistanceToScreenEdge(t){let{left:e,right:i,top:s,bottom:o}=t,{width:n,height:r}=this.context.clientSize,[h,c,l,p]=this.context.config.cameraBound.padding,d=nr([[[e,s],[i,s],[i,o],[e,o],[e,s]]]),u=nr([[[p,h],[n-c,h],[n-c,r-l],[p,r-l],[p,h]]]);try{return ql(d,u)!==null}catch(m){return console.warn("\u8BA1\u7B97\u4EA4\u96C6\u51FA\u9519:",m),!1}}dispose(){this.unRegistryEvent()}constructor(t){this.context=t,this.prevCamera={position:new Ot,zoom:1,target:new Ot},this.enable=!0,this.box=new Xl,this.onCameraChange=()=>{let e=this.getCurFloorScreenPosition();if(e){let{left:i,right:s,top:o,bottom:n}=e;this.checkDistanceToScreenEdge({left:i,right:s,top:o,bottom:n})?this.changePrevCamera():this.backToPrevCamera()}},this.registryEvent(),this.changePrevCamera()}};import"core-js/modules/es.promise.finally.js";import{Vector3 as hr}from"three";import{Tween as ns,Group as ip}from"@tweenjs/tween.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.array.push.js";import{EventDispatcher as $l,MOUSE as ke,Quaternion as rr,Spherical as is,TOUCH as De,Vector2 as mt,Vector3 as Mt,Plane as Jl,Ray as Ql,MathUtils as tp}from"three";var ss=new Ql,ar=new Jl,ep=Math.cos(70*tp.DEG2RAD),os=class extends $l{dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerUp),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null)}constructor(t,e){super(),this.rotateLineStart=new mt,this.rotateLineEnd=new mt,this.spherical=new is,this.sphericalDelta=new is,this.object=t,this.domElement=e,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new Mt,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.screenSpacePanning=!1,this.mouseButtons={LEFT:ke.PAN,MIDDLE:ke.DOLLY,RIGHT:ke.ROTATE},this.touches={ONE:De.PAN,TWO:De.DOLLY_ROTATE},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return r.phi},this.getAzimuthalAngle=function(){return r.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(v){v.addEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=v},this.stopListenToKeyEvents=function(){var v;(v=this._domElementKeyEvents)==null||v.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null},this.saveState=function(){i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=function(){i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent({type:"change"}),i.update(),o=s.NONE},this.update=function(){let v=new Mt,_=new rr().setFromUnitVectors(t.up,new Mt(0,1,0)),U=_.clone().invert(),$=new Mt,ut=new rr,Tt=new Mt,_t=2*Math.PI;return function(Ge){Ge===void 0&&(Ge=null);let Ft=i.object.position;v.copy(Ft).sub(i.target),v.applyQuaternion(_),r.setFromVector3(v),i.autoRotate&&o===s.NONE&&E(T(Ge)),i.enableDamping?(r.theta+=h.theta*i.dampingFactor,r.phi+=h.phi*i.dampingFactor):(r.theta+=h.theta,r.phi+=h.phi);let Gt=i.minAzimuthAngle,zt=i.maxAzimuthAngle;isFinite(Gt)&&isFinite(zt)&&(Gt<-Math.PI?Gt+=_t:Gt>Math.PI&&(Gt-=_t),zt<-Math.PI?zt+=_t:zt>Math.PI&&(zt-=_t),Gt<=zt?r.theta=Math.max(Gt,Math.min(zt,r.theta)):r.theta=r.theta>(Gt+zt)/2?Math.max(Gt,r.theta):Math.min(zt,r.theta)),r.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,r.phi)),r.makeSafe(),i.enableDamping===!0?i.target.addScaledVector(l,i.dampingFactor):i.target.add(l),i.zoomToCursor&&H||i.object.isOrthographicCamera?r.radius=W(r.radius):r.radius=W(r.radius*c),v.setFromSpherical(r),v.applyQuaternion(U),Ft.copy(i.target).add(v),i.object.lookAt(i.target),i.enableDamping===!0?(h.theta*=1-i.dampingFactor,h.phi*=1-i.dampingFactor,l.multiplyScalar(1-i.dampingFactor)):(h.set(0,0,0),l.set(0,0,0));let ni=!1;if(i.zoomToCursor&&H){let ze=null;if(i.object.isPerspectiveCamera){let Be=v.length();ze=W(Be*c);let ri=Be-ze;i.object.position.addScaledVector(L,ri),i.object.updateMatrixWorld()}else if(i.object.isOrthographicCamera){let Be=new Mt(C.x,C.y,0);Be.unproject(i.object),i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/c)),i.object.updateProjectionMatrix(),ni=!0;let ri=new Mt(C.x,C.y,0);ri.unproject(i.object),i.object.position.sub(ri).add(Be),i.object.updateMatrixWorld(),ze=v.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),i.zoomToCursor=!1;ze!==null&&(i.screenSpacePanning?i.target.set(0,0,-1).transformDirection(i.object.matrix).multiplyScalar(ze).add(i.object.position):(ss.origin.copy(i.object.position),ss.direction.set(0,0,-1).transformDirection(i.object.matrix),Math.abs(i.object.up.dot(ss.direction))<ep?t.lookAt(i.target):(ar.setFromNormalAndCoplanarPoint(i.object.up,i.target),ss.intersectPlane(ar,i.target))))}else i.object.isOrthographicCamera&&(i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/c)),i.object.updateProjectionMatrix(),ni=!0);return c=1,H=!1,ni||$.distanceToSquared(i.object.position)>n||8*(1-ut.dot(i.object.quaternion))>n||Tt.distanceToSquared(i.target)>0?(i.dispatchEvent({type:"change"}),$.copy(i.object.position),ut.copy(i.object.quaternion),Tt.copy(i.target),ni=!1,!0):!1}}();let i=this,s={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},o=s.NONE,n=1e-6,r=new is,h=new is,c=1,l=new Mt,p=new mt,d=new mt,u=new mt,m=new mt,g=new mt,y=new mt,w=new mt,M=new mt,P=new mt,L=new Mt,C=new mt,H=!1,b=[],Z={};function T(v){return v!==null?2*Math.PI/60*i.autoRotateSpeed*v:2*Math.PI/60/60*i.autoRotateSpeed}function k(){return Math.pow(.95,i.zoomSpeed)}function E(v){h.theta-=v}function G(v){h.phi-=v}let V=function(){let v=new Mt;return function(U,$){v.setFromMatrixColumn($,0),v.multiplyScalar(-U),l.add(v)}}(),B=function(){let v=new Mt;return function(U,$){i.screenSpacePanning===!0?v.setFromMatrixColumn($,1):(v.setFromMatrixColumn($,0),v.crossVectors(i.object.up,v)),v.multiplyScalar(U),l.add(v)}}(),R=function(){let v=new Mt;return function(U,$){let ut=i.domElement;if(i.object.isPerspectiveCamera){let Tt=i.object.position;v.copy(Tt).sub(i.target);let _t=v.length();_t*=Math.tan(i.object.fov/2*Math.PI/180),V(2*U*_t/ut.clientHeight,i.object.matrix),B(2*$*_t/ut.clientHeight,i.object.matrix)}else i.object.isOrthographicCamera?(V(U*(i.object.right-i.object.left)/i.object.zoom/ut.clientWidth,i.object.matrix),B($*(i.object.top-i.object.bottom)/i.object.zoom/ut.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}}();function It(v){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c/=v:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function Xt(v){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c*=v:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function z(v){if(!i.zoomToCursor)return;H=!0;let _=i.domElement.getBoundingClientRect(),U=v.clientX-_.left,$=v.clientY-_.top,ut=_.width,Tt=_.height;C.x=U/ut*2-1,C.y=-($/Tt)*2+1,L.set(C.x,C.y,1).unproject(i.object).sub(i.object.position).normalize()}function W(v){return Math.max(i.minDistance,Math.min(i.maxDistance,v))}function q(v){p.set(v.clientX,v.clientY)}function K(v){z(v),w.set(v.clientX,v.clientY)}function Lt(v){m.set(v.clientX,v.clientY)}function Ct(v){d.set(v.clientX,v.clientY),u.subVectors(d,p).multiplyScalar(i.rotateSpeed);let _=i.domElement;E(2*Math.PI*u.x/_.clientHeight),G(2*Math.PI*u.y/_.clientHeight),p.copy(d),i.update()}function qt(v){M.set(v.clientX,v.clientY),P.subVectors(M,w),P.y>0?It(k()):P.y<0&&Xt(k()),w.copy(M),i.update()}function Rt(v){g.set(v.clientX,v.clientY),y.subVectors(g,m).multiplyScalar(i.panSpeed),R(y.x,y.y),m.copy(g),i.update()}function Fe(v){z(v),v.deltaY<0?Xt(k()):v.deltaY>0&&It(k()),i.update()}function Kr(v){let _=!1;switch(v.code){case i.keys.UP:v.ctrlKey||v.metaKey||v.shiftKey?G(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):R(0,i.keyPanSpeed),_=!0;break;case i.keys.BOTTOM:v.ctrlKey||v.metaKey||v.shiftKey?G(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):R(0,-i.keyPanSpeed),_=!0;break;case i.keys.LEFT:v.ctrlKey||v.metaKey||v.shiftKey?E(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):R(i.keyPanSpeed,0),_=!0;break;case i.keys.RIGHT:v.ctrlKey||v.metaKey||v.shiftKey?E(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):R(-i.keyPanSpeed,0),_=!0;break}_&&(v.preventDefault(),i.update())}function Co(){if(b.length===1)p.set(b[0].pageX,b[0].pageY);else{let v=(b[0].pageX-b[0].pageY)/(b[1].pageX-b[1].pageY),_=b[0].pageY-v*b[0].pageX;i.rotateLineStart.set(v,_);let U=.5*(b[0].pageX+b[1].pageX),$=.5*(b[0].pageY+b[1].pageY);p.set(U,$)}}function To(){if(b.length===1)m.set(b[0].pageX,b[0].pageY);else{let v=.5*(b[0].pageX+b[1].pageX),_=.5*(b[0].pageY+b[1].pageY);m.set(v,_)}}function ko(){let v=b[0].pageX-b[1].pageX,_=b[0].pageY-b[1].pageY,U=Math.sqrt(v*v+_*_);w.set(0,U)}function Yr(){i.enableZoom&&ko(),i.enablePan&&To()}function Xr(){i.enableZoom&&ko(),i.enableRotate&&Co()}function Do(v){if(b.length==1)d.set(v.pageX,v.pageY);else{let U=Os(v),$=.5*(v.pageX+U.x),ut=.5*(v.pageY+U.y);d.set($,ut);let Tt=(v.pageY-U.y)/(v.pageX-U.x),_t=U.y-Tt*U.x;if(i.rotateLineEnd.set(Tt,_t),Number.isFinite(i.rotateLineEnd.x)&&Number.isFinite(i.rotateLineStart.x)){let Is=(i.rotateLineStart.y-i.rotateLineEnd.y)/(i.rotateLineEnd.x-i.rotateLineStart.x),Ge=Tt*Is+_t;if(Number.isFinite(Is)&&Number.isFinite(Ge)){let Ft=Math.atan(i.rotateLineEnd.x)-Math.atan(i.rotateLineStart.x);Math.PI-Math.abs(Ft)<.5&&(Ft=-Math.sign(Ft)*(Math.PI-Math.abs(Ft))),Math.abs(Ft)<.1&&(h.theta+=Ft)}}i.rotateLineStart.copy(i.rotateLineEnd)}u.subVectors(d,p).multiplyScalar(i.rotateSpeed);let _=i.domElement;G(2*Math.PI*u.y/_.clientHeight),p.copy(d)}function Ao(v){if(b.length===1)g.set(v.pageX,v.pageY);else{let _=Os(v),U=.5*(v.pageX+_.x),$=.5*(v.pageY+_.y);g.set(U,$)}y.subVectors(g,m).multiplyScalar(i.panSpeed),R(y.x,y.y),m.copy(g)}function Oo(v){let _=Os(v),U=v.pageX-_.x,$=v.pageY-_.y,ut=Math.sqrt(U*U+$*$);M.set(0,ut),P.set(0,Math.pow(M.y/w.y,i.zoomSpeed)),It(P.y),w.copy(M)}function qr(v){i.enableZoom&&Oo(v),i.enablePan&&Ao(v)}function $r(v){i.enableZoom&&Oo(v),i.enableRotate&&Do(v)}this.onPointerDown=function(_){i.enabled!==!1&&(b.length===0&&(i.domElement.setPointerCapture(_.pointerId),i.domElement.addEventListener("pointermove",i.onPointerMove),i.domElement.addEventListener("pointerup",i.onPointerUp)),ia(_),_.pointerType==="touch"?ta(_):Jr(_))},this.onPointerMove=function(_){i.enabled!==!1&&(_.pointerType==="touch"?ea(_):Qr(_))},this.onPointerUp=function(_){sa(_),b.length===0&&(i.domElement.releasePointerCapture(_.pointerId),i.domElement.removeEventListener("pointermove",i.onPointerMove),i.domElement.removeEventListener("pointerup",i.onPointerUp)),i.dispatchEvent({type:"end"}),o=s.NONE};function Jr(v){let _;switch(v.button){case 0:_=i.mouseButtons.LEFT;break;case 1:_=i.mouseButtons.MIDDLE;break;case 2:_=i.mouseButtons.RIGHT;break;default:_=-1}switch(_){case ke.DOLLY:if(i.enableZoom===!1)return;K(v),o=s.DOLLY;break;case ke.ROTATE:if(v.ctrlKey||v.metaKey||v.shiftKey){if(i.enablePan===!1)return;Lt(v),o=s.PAN}else{if(i.enableRotate===!1)return;q(v),o=s.ROTATE}break;case ke.PAN:if(v.ctrlKey||v.metaKey||v.shiftKey){if(i.enableRotate===!1)return;q(v),o=s.ROTATE}else{if(i.enablePan===!1)return;Lt(v),o=s.PAN}break;default:o=s.NONE}o!==s.NONE&&i.dispatchEvent({type:"start"})}function Qr(v){switch(o){case s.ROTATE:if(i.enableRotate===!1)return;Ct(v);break;case s.DOLLY:if(i.enableZoom===!1)return;qt(v);break;case s.PAN:if(i.enablePan===!1)return;Rt(v);break}}this.onMouseWheel=function(_){i.enabled===!1||i.enableZoom===!1||o!==s.NONE||(_.preventDefault(),i.dispatchEvent({type:"start"}),Fe(_),i.dispatchEvent({type:"end"}))},this.onKeyDown=function(_){i.enabled===!1||i.enablePan===!1||Kr(_)};function ta(v){switch(Io(v),b.length){case 1:switch(i.touches.ONE){case De.ROTATE:if(i.enableRotate===!1)return;Co(),o=s.TOUCH_ROTATE;break;case De.PAN:if(i.enablePan===!1)return;To(),o=s.TOUCH_PAN;break;default:o=s.NONE}break;case 2:switch(i.touches.TWO){case De.DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;Yr(),o=s.TOUCH_DOLLY_PAN;break;case De.DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;Xr(),o=s.TOUCH_DOLLY_ROTATE;break;default:o=s.NONE}break;default:o=s.NONE}o!==s.NONE&&i.dispatchEvent({type:"start"})}function ea(v){switch(Io(v),o){case s.TOUCH_ROTATE:if(i.enableRotate===!1)return;Do(v),i.update();break;case s.TOUCH_PAN:if(i.enablePan===!1)return;Ao(v),i.update();break;case s.TOUCH_DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;qr(v),i.update();break;case s.TOUCH_DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;$r(v),i.update();break;default:o=s.NONE}}this.onContextMenu=function(_){i.enabled!==!1&&_.preventDefault()};function ia(v){b.push(v)}function sa(v){delete Z[v.pointerId];for(let _=0;_<b.length;_++)if(b[_].pointerId==v.pointerId){b.splice(_,1);return}}function Io(v){let _=Z[v.pointerId];_===void 0&&(_=new mt,Z[v.pointerId]=_),_.set(v.pageX,v.pageY)}function Os(v){let _=v.pointerId===b[0].pointerId?b[1]:b[0];return Z[_.pointerId]}i.domElement.addEventListener("contextmenu",this.onContextMenu),i.domElement.addEventListener("pointerdown",this.onPointerDown),i.domElement.addEventListener("pointercancel",this.onPointerUp),i.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}};var rs=class extends os{registryEvent(){this.addEventListener("change",this.onChange),this.context.addEventListener("update",this.tweenUpdate)}unRegistryEvent(){this.removeEventListener("change",this.onChange),this.context.removeEventListener("update",this.tweenUpdate)}setPolarAngle(t,e){e===void 0&&(e=!1);let{maxPolarAngle:i,minPolarAngle:s}=this,o=i===s;(e||t<=i&&t>=s)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),o||(this.maxPolarAngle=i,this.minPolarAngle=s)}setPolarAngleByDuration(t,e,i){return f(this,null,function*(){return e===void 0&&(e=!1),i===void 0&&(i=500),i<=0?this.setPolarAngle(t,e):yt(new Promise(s=>{let o={polar:this.getPolarAngle()},n={polar:t},r=new ns(o,this.tweenGroup).to(n,i).onUpdate(()=>{this.setPolarAngle(o.polar,e)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(r),s(!0)}).onStart(()=>{this.enabled=!1}).start()}),i+500)})}setAzimuthalAngle(t,e){let{maxAzimuthAngle:i,minAzimuthAngle:s}=this,o=i===s;(e||t<=i&&t>=s)&&(this.maxAzimuthAngle=t,this.minAzimuthAngle=t,this.update()),o||(this.maxAzimuthAngle=i,this.minAzimuthAngle=s)}setAzimuthalAngleDuration(t,e,i){return e===void 0&&(e=!1),i===void 0&&(i=500),i<=0?this.setAzimuthalAngle(t,e):yt(new Promise(s=>{let o={azimuthal:this.getAzimuthalAngle()},n={azimuthal:t},r=new ns(o,this.tweenGroup).to(n,i).onUpdate(()=>{this.setAzimuthalAngle(o.azimuthal,e)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(r),s(!0)}).onStart(()=>{this.enabled=!1}).start()}),i+500)}getCameraLookAt(){return new hr().subVectors(this.target,this.camera.position)}setCameraPositionByTarget(t,e){return f(this,null,function*(){let i=this.target.clone(),s=this.getCameraLookAt();if(!e){this.camera.position.copy(t.clone().sub(s)),this.target.copy(t.clone()),this.update();return}return yt(new Promise(o=>{let n=new ns(i,this.tweenGroup).to(t,e).onUpdate(()=>{this.camera.position.copy(i.clone().sub(s)),this.target.copy(i.clone()),this.update()}).onComplete(()=>{this.tweenGroup.remove(n),this.enabled=!0,o(!0)}).onStart(()=>{this.enabled=!1}).start()}),e+500)})}setZoom(t,e,i){i===void 0&&(i=!1);let{minZoom:s,maxZoom:o}=this;(i||t>=s&&t<=o)&&(this.camera.position.copy(e.clone().sub(this.getCameraLookAt())),this.target.copy(e),this.camera.zoom=t,this.update())}setZoomByDuration(t,e,i,s){return f(this,null,function*(){i===void 0&&(i=!1),s===void 0&&(s=500);let o={zoom:this.camera.zoom,target:this.target.clone()};if(t!==this.camera.zoom)return s?yt(new Promise(n=>{let r=new ns(o,this.tweenGroup).to({zoom:t,target:e},s).onUpdate(()=>{this.setZoom(o.zoom,o.target,i)}).onComplete(()=>{this.tweenGroup.remove(r),this.enabled=!0,n(!0)}).onStart(()=>{this.enabled=!1}).start()}),s+500).finally(()=>{this.enabled=!0}):this.setZoom(t,e,i)})}setTargetByOffset(t,e){if(e===void 0&&(e=this.target.clone()),this.camera.updateMatrix(),t){let i=new hr;i.setFromMatrixColumn(this.camera.matrix,1),i.normalize(),i.multiplyScalar(t/this.camera.zoom),e.add(i)}this.setCameraPositionByTarget(e,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){super.dispose(),this.unRegistryEvent(),this.clearTween()}constructor(t,e,i){super(e,i),this.context=t,this.camera=e,this.domElement=i,this.prevCameraZoom=1,this.tweenGroup=new ip,this.offsetY=0,this.onChange=()=>{let s=this.camera.zoom;s!==this.prevCameraZoom&&(this.prevCameraZoom=s,this.dispatchEvent({type:"change-zoom",zoom:s}))},this.tweenUpdate=()=>{this.tweenGroup.update()},this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=e.zoom,this.registryEvent()}};import{EventDispatcher as sp,WebGLRenderer as op,LinearToneMapping as np}from"three";var as=class extends op{setCameraAndScene(t,e){this.scene=t,this.camera=e}autoRender(){if(this.scene&&this.camera&&this.enable&&(this.event.dispatchEvent({type:"update"}),this.render(this.scene,this.camera)),this.context.config.renderAnimation==="requestAnimationFrame")this.timer.requestAnimationFrame(()=>{this.autoRender()});else{let t=1e3/this.context.config.fps;this.timer.setTimeout(()=>{this.autoRender()},t)}}pauseRender(){this.enable=!1}continueRender(){this.enable=!0}addEventListener(t,e){this.event.addEventListener(t,e)}removeEventListener(t,e){this.event.removeEventListener(t,e)}constructor(t,e){super(x({antialias:!0,alpha:!0},e)),this.context=t,this.event=new sp,this.enable=!0,this.timer=new j,this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.toneMapping=np,this.toneMappingExposure=1;let i=this.dispose;this.dispose=()=>{this.timer.dispose(),this.enable=!1,i.call(this),this.domElement.remove(),this.domElement=null,this.shadowMap=null,this.info.programs&&(this.info.programs.length=0),this.info=null}}};import{Scene as hp}from"three";import{PMREMGenerator as rp}from"three";import{RoomEnvironment as ap}from"three/examples/jsm/environments/RoomEnvironment.js";function cr(a,t){t===void 0&&(t=.85);let e=new rp(a);return e.compileEquirectangularShader(),e.fromScene(new ap).texture}var hs=class extends hp{dispose(){var t;(t=this.environment)==null||t.dispose(),this.environment=null,I(this),this.clear()}constructor(t){super(),this.environment=cr(t)}};import{OrthographicCamera as cp}from"three";var cs=class extends cp{constructor(t,e){super(-t/2,t/2,e/2,-e/2,-1e4,5e4),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};import{polygon as lr}from"@turf/turf";import"core-js/modules/es.array.unshift.js";import"core-js/modules/es.array.push.js";import{Vector3 as lp}from"three";var ls=class{registryEvent(){this.context.addEventListener("update",this.onUpdate),this.context.addEventListener("control-change",this.onControlChange),this.context.addEventListener("resize",this.onControlChange)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate),this.context.removeEventListener("control-change",this.onControlChange),this.context.removeEventListener("resize",this.onControlChange)}changePoiLevelOrCollisionEnable(t){let e=this.objects.findIndex(i=>i===t);e!==-1&&(this.objects.splice(e,1),this.addObject(t))}addObject(t){if(!this.objects.includes(t)){if(this.needsUpdate=!0,!t.options.collision_enable){this.objects.unshift(t);return}if(t.options.level===0){this.objects.push(t);return}for(let e=0;e<this.objects.length;e++){let i=this.objects[e];if(i.options.collision_enable&&i.options.level<=t.options.level){this.objects.splice(e,0,t);return}}this.objects.push(t)}}removeObject(t){let e=this.objects.indexOf(t);e!==-1&&(this.objects.splice(e,1),this.needsUpdate=!0)}removeObjects(t){this.objects=this.objects.filter(e=>!t.includes(e)),this.needsUpdate=!0}getObjectById(t){return this.objects.find(e=>e.options.id===t)||null}validShowParkingSpace(t){t===void 0&&(t=60);let{clientSize:{width:e,height:i},control:s,camera:o}=this.context,n=Math.min(e/t,i/t,s.maxZoom-1);return o.zoom>=n}detectCollisions(){if(!this.needsUpdate)return;let t=[],{camera:e}=this.context;e.updateMatrixWorld();let i=l=>l<=1&&l>=-1,s=e.projectionMatrix.clone();s.multiply(e.matrixWorldInverse);let o=e.zoom/this.context.basicZoom,n=25/30,r=Math.min(25,Math.max(1,o*n)),h=this.validShowParkingSpace();this.objects.filter(l=>{if(l.visible){if(!(r<=l.options.maxWeight&&r>=l.options.minWeight)||!h&&l.userData.type==="parkingSpace")return l.parentSetVisible(!1),!1;let p=l.getWorldPosition(new lp);return p.applyMatrix4(s),l.screenPosition=p,i(p.x)&&i(p.y)&&i(p.z)?!0:(l.parentSetVisible(!1),!1)}return!1}).forEach((l,p)=>{let d=l.getBox(l.screenPosition);if(d===null){l.parentSetVisible(!1);return}if(p===0||!l.options.collision_enable){t.push(d),l.parentSetVisible(!0);return}let u=t.some(m=>m.intersectsBox(d));l.parentSetVisible(!u),u||t.push(d)}),this.needsUpdate=!1}markForUpdate(){this.needsUpdate=!0}clear(){this.objects=[],this.needsUpdate=!0}dispose(){this.objects=[],this.unRegistryEvent()}constructor(t){this.context=t,this.objects=[],this.needsUpdate=!0,this.onUpdate=()=>{this.detectCollisions()},this.onControlChange=()=>{this.needsUpdate=!0},this.registryEvent()}};var ps=class extends pp{get config(){return this.bmap.config}get center(){return this.bmap.buildingCenter}setRange(t){this.range=lr([t])}resizeClientSize(){let{x:t,y:e,width:i,height:s}=this.container.getBoundingClientRect();this.clientSize={width:i||this.container.clientWidth,height:s||this.container.clientHeight,x:t,y:e}}init(){let{clientWidth:t,clientHeight:e}=this.container;this.camera=new cs(t,e),this.renderer.setSize(t,e),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new rs(this,this.camera,this.renderer.domElement),this.control.maxPolarAngle=this.config.control.maxPolar,this.container.appendChild(this.renderer.domElement),this.scene.add(this.lights),this.basicRatio=this.getRatio(),this.control.addEventListener("change",this.onControlChange),this.control.addEventListener("change-zoom",this.onControlChangeZoom),this.renderer.addEventListener("update",this.onRendererUpdate),this.cameraBound=new es(this)}getRatio(t,e){t===void 0&&(t=new Kt(0,0,0)),e===void 0&&(e=new Kt(100,0,0));let{clientWidth:i,clientHeight:s}=this.container,o=D(t,this.camera,i,s),n=D(e,this.camera,i,s);return Math.ceil(Math.sqrt((n.x-o.x)**2+(n.y-o.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(e=>{e instanceof gp&&(e.color=new fp(t))})}switchFloor(t,e){e===void 0&&(e=!0),console.log("switchFloor",e),this.currentFloor&&(this.scene.remove(this.currentFloor),e?this.currentFloor.dispose():this.currentFloor.onRemoveFromScene()),this.currentFloor=t,this.setRange(t.userData.range||[]),this.scene.add(t),t.onAddToScene("scene"),this.cameraBound.updateBox()}getGraphicsByDeviceXy(t,e){var i;let s=new Ae;s.x=t/this.clientSize.width*2-1,s.y=e/this.clientSize.height*-2+1;let o=new up;return o.setFromCamera(s,this.camera),o.ray.origin.sub(o.ray.direction.clone().multiplyScalar(100)),((i=this.currentFloor)==null?void 0:i.graphicLayer.getGraphicByRaycaster(o))||{graphics:[],position:null}}getPoisByDeviceXy(t,e){var i,s;let o=(i=this.currentFloor)==null?void 0:i.poiLayer.getPoiByDeviceXy(t,e),n=(s=this.currentFloor)==null?void 0:s.poiLayer2.getPoiByDeviceXy(t,e);return(o||[]).concat(n||[])}registryEvent(){window.addEventListener("resize",this.onWindowResize),this.container.addEventListener("click",this.onClick),this.container.addEventListener("pointerover",this.onPointerover),this.container.addEventListener("pointermove",this.onPointermove),this.container.addEventListener("pointerleave",this.onPointerleave),this.container.addEventListener("pointercancel",this.onPointerleave),this.container.addEventListener("pointerout",this.onPointerleave),this.selection.addEventListener("select",this.onSelectionSelect),this.hoverHelper.addEventListener("hover-change",this.onHoverChange)}unRegistryEvent(){window.removeEventListener("resize",this.onWindowResize),this.container.removeEventListener("click",this.onClick),this.container.removeEventListener("pointerover",this.onPointerover),this.container.removeEventListener("pointermove",this.onPointermove),this.container.removeEventListener("pointerleave",this.onPointerleave),this.container.removeEventListener("pointercancel",this.onPointerleave),this.container.removeEventListener("pointerout",this.onPointerleave),this.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange),this.control.removeEventListener("change",this.onControlChange),this.control.removeEventListener("change-zoom",this.onControlChangeZoom),this.renderer.removeEventListener("update",this.onRendererUpdate)}setPolarAngle(t,e){return e===void 0&&(e=500),this.control.setPolarAngleByDuration(t,!0,e)}setAzimuthalAngle(t,e){return e===void 0&&(e=500),this.control.setAzimuthalAngleDuration(t,!0,e)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,e,i){return i===void 0&&(i=500),this.control.setZoomByDuration(t,e,!0,i)}getFitCameraToObjectZoom(t,e,i){return e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=!0),this.getFitCameraToBoxZoom(new mp().setFromObject(t),e,i)}getFitCameraToBoxZoom(t,e,i){e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=!0);let[s,o,n,r]=e,{clientSize:{width:h,height:c}}=this,l=this.control.getPolarAngle();i&&this.setPolarAngle(0,0),this.setPolarAngle(l,0);let{max:p,min:d}=t,u=new Kt(d.x,p.y,p.z),m=new Kt(p.x,p.y,p.z),g=new Kt(p.x,d.y,d.z),y=new Kt(d.x,d.y,d.z),w=D(u,this.camera,h,c),M=D(m,this.camera,h,c),P=D(y,this.camera,h,c),L=D(g,this.camera,h,c),H=new dp().setFromPoints([new Ae(w.x,w.y),new Ae(M.x,M.y),new Ae(P.x,P.y),new Ae(L.x,L.y)]).getSize(new Ae),b=(h-o-r)/H.x,Z=(c-s-n)/H.y,T=Math.min(b,Z),k=new Kt((p.x+d.x)/2,(p.y+d.y)/2,(p.z+d.z)/2),E=T*this.camera.zoom,G=this.camera.clone();G.zoom=E,G.updateMatrix();let V=(o-r)/2,B=(s-n)/2;if(V){let R=new Kt;R.setFromMatrixColumn(G.matrix,0),R.normalize(),R.multiplyScalar(V/E),k.add(R)}if(B){let R=new Kt;R.setFromMatrixColumn(G.matrix,1),R.normalize(),R.multiplyScalar(B/E),k.add(R)}return{zoom:T*this.camera.zoom,center:k}}fitCameraToObject(t,e,i,s){e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=500),s===void 0&&(s=!0);let{zoom:o,center:n}=this.getFitCameraToObjectZoom(t,e,s);return this.setZoom(o,n,i)}fitCameraToBox(t,e,i,s){e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=500),s===void 0&&(s=!0);let{zoom:o,center:n}=this.getFitCameraToBoxZoom(t,e,s);return this.setZoom(o,n,i)}getFitCameraToGroundZoom(t,e,i){if(t===void 0&&(t=[20,20,20,20]),e===void 0&&(e=500),i===void 0&&(i=!0),this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,i).zoom}fitCameraToGround(t,e,i){return t===void 0&&(t=[20,20,20,20]),e===void 0&&(e=500),i===void 0&&(i=!0),this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundLayer,t,e,i):Promise.resolve(!1)}setCameraPosition(t,e){return f(this,null,function*(){return this.control.setCameraPositionByTarget(t,e)})}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}forceUpdate(){this.collisionSystem.needsUpdate=!0}dispose(){var t;this.collisionSystem.dispose(),(t=this.currentFloor)==null||t.dispose(),this.control.dispose(),this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.unRegistryEvent(),this.renderer.dispose(),this.lights.children.forEach(e=>e.dispose()),this.scene.dispose(),this.container=null,this.renderer=null}constructor(t,e){super(),this.container=t,this.lights=zo(),this.range=lr([]),this.clientSize={width:0,height:0,x:0,y:0},this.renderRf=0,this.basicZoom=1,this.onControlChange=()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})},this.onControlChangeZoom=i=>{let{zoom:s}=i;this.dispatchEvent({type:"control-zoom-change",zoom:s})},this.onRendererUpdate=()=>{this.dispatchEvent({type:"update"})},this.onWindowResize=()=>{let{container:i,camera:s,renderer:o}=this,{clientWidth:n,clientHeight:r}=i;n=Math.max(1,n),r=Math.max(1,r),s.left=-n/2,s.right=n/2,s.top=r/2,s.bottom=-r/2,s.updateProjectionMatrix(),o.setSize(n,r),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:n,height:r})},this.onClick=i=>{let{graphics:s,position:o}=this.getGraphicsByDeviceXy(i.offsetX,i.offsetY);s.length&&this.dispatchEvent({type:"graphic-click",graphics:s,position:o});let n=this.getPoisByDeviceXy(i.offsetX,i.offsetY);n.length&&this.dispatchEvent({type:"poi-click",pois:n})},this.onPointerover=i=>{let{graphics:s,position:o}=this.getGraphicsByDeviceXy(i.offsetX,i.offsetY),n=this.getPoisByDeviceXy(i.offsetX,i.offsetY);this.dispatchEvent({type:"pointer-over",e:i,graphics:s,pois:n,position:o})},this.onPointermove=i=>{let{graphics:s,position:o}=this.getGraphicsByDeviceXy(i.offsetX,i.offsetY),n=this.getPoisByDeviceXy(i.offsetX,i.offsetY);this.dispatchEvent({type:"pointer-move",e:i,graphics:s,pois:n,position:o})},this.onPointerleave=i=>{this.dispatchEvent({type:"pointer-level"})},this.onSelectionSelect=i=>{let{graphics:s,isMultipleSelect:o}=i;this.dispatchEvent({type:"select-graphic",graphics:s,isMultipleSelect:o})},this.onHoverChange=i=>{let{graphics:s}=i;this.dispatchEvent({type:"hover",graphics:s})},this.bmap=e,this.container.style.position="relative",this.container.style.overflow="hidden",this.renderer=new as(this),this.scene=new hs(this.renderer),this.collisionSystem=new ls(this),this.init(),this.selection=new Qi(this),this.hoverHelper=new ts(this),this.resizeClientSize(),this.registryEvent()}};import{merge as yp}from"lodash";var vp={placeId:0,fps:30,apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get",equipmentList:"/api/inception-map/equipment/get",roadNetwork:"/api/inception-map/road_network/get",loadPlaceInfo:"https://screen.aibee.cn/ai-map/map/get-floor-map"},enableBoxSelect:!0,resizeObserver:{enable:!1,debounceTime:5},initTransToMark:!1,heatMap:{radius:50,minOpacity:.1,gradient:{0:"#8F9FCD",.5:"#6284FF",1:"#F95D5D"}},useFloorCache:!0,control:{maxPolar:1.2,defaultPolar:1.1,defaultAzimuthal:0,maxZoomScale:30},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},loaderPlaceConfig:{textFontSize:14},renderAnimation:"setTimeout"};function pr(a){return typeof a.resizeObserver=="boolean"&&(a.resizeObserver={enable:a.resizeObserver}),yp({},vp,a)}import{debounce as Bp}from"lodash";import"core-js/modules/web.dom-collections.iterator.js";import{Vector3 as Op,Color as Ip}from"three";import"core-js/modules/es.array.push.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.array.sort.js";var Je=function(a){return a.LAYERED_RENDER_VERSION="layeredRender",a.MERGED_RENDER_VERSION="mergedRender",a}({});function ds(a,t){let e=a.poi_info.showName||a.store_name||a.poi_info.text;switch(t){case"zh-cn":return e;case"en":var i;return((i=a.store_info_ext)==null?void 0:i.poi_name)||e;case"zh-hk":var s;return((s=a.store_info_ext)==null?void 0:s.traditional_name)||e}}function us(a,t){let e=a.poi_info.showName||a.store_name||a.poi_info.text;switch(t){case"zh-cn":return e;case"en":var i;return((i=a.infra_info_ext)==null?void 0:i.poi_name)||e;case"zh-hk":var s;return((s=a.infra_info_ext)==null?void 0:s.traditional_name)||e}}var mo=["range","ground","store","facility","parkingSpace"];function dr(a){return mo.indexOf(a.l_type)===-1?mo.length:mo.indexOf(a.l_type)}function xp(a){a.layers.sort((t,e)=>dr(t)-dr(e))}function wp(a){let t=a.layers.find(i=>i.l_type==="range"),e=[t.elements[0].center_x,t.elements[0].center_y];a.layers.map(i=>{if(i.l_type!=="range")return fi(i.elements,e)})}function Qe(a){xp(a),wp(a)}function Oe(a,t){return t===void 0&&(t=5),a.floor_id+"_"+a.version_id+(t?"_"+t:"")}function ur(a,t,e){switch(a.l_type){case"ground":return fo(a,t);case"graph":return Mp(a,t);case"wall":return _p(a,t);case"lane":return Pp(a,t);case"texture2d":case"texture3d":return bp(a,t);case"glb":return Sp(a,t);case"store":return Ep(a,t,e);case"facility":return Cp(a,t,e);case"parkingSpace":return kp(a,t,e);case"text":return Ap(a,t)}}function mr(a,t,e,i,s){switch(a.l_type){case"store":return Lp(a,t,e,i,s);case"facility":return Tp(a,t,e,i,s);case"parkingSpace":return Dp(a,t,i,s)}}function Mp(a,t){t.mergeGraphicLayer.addGraphics(a.elements,a.mergedElements)}function fo(a,t){let e=a.elements.map(i=>new ot(t.context,x({},i,{dashed:!1})));t.addGrounds(e)}function _p(a,t){if(a.mergedElements)a.mergedElements.map(e=>{if(e.instancedGeometry){let i=new $i(t.context,e.instancedGeometry);t.wallLayer.add(i)}if(e.mergedGeometry){let i=new Ki(t.context,e);t.wallLayer.add(i)}});else{let e=a.elements.reduce((i,s)=>{let{fillColor:o,fillOpacity:n,strokeColor:r,strokeOpacity:h,height:c}=s,l=o.toLowerCase()+"-"+n+"-"+r.toLowerCase()+"-"+h+"-"+c;return h===0&&(l=o.toLowerCase()+"-"+n+"-"+c),i[l]?i[l].push(s):i[l]=[s],i},{});Object.values(e).forEach(i=>{let s=new Ni(t.context,i);t.wallLayer.add(s)})}}function Pp(a,t){if(a.mergedElements){let e=new Xi(t.context,a.mergedElements);t.laneLayer.add(e)}else{let e=new ji(t.context,a.elements);t.laneLayer.add(e)}}function bp(a,t){if(a.mergedMatrixes)a.mergedMatrixes.map(e=>{let i=new le(t.context,e);t.textureLayer.add(i)});else if(a.elements.length){let e=new ce(t.context,a.elements);t.textureLayer.add(e)}}function Sp(a,t){t.glbModelLayer.addModels(a.elements.map(e=>x({},e,{url:e.secondUrl,rotate:e.secondRotate,width:e.secondWidth,center_x:e.center_coord_x,center_y:e.center_coord_y,deltaHeight:0})))}function Ep(a,t,e){e.mergeGraphic?t.mergeGraphicLayer.addGraphics(a.elements,a.mergedElements):a.elements.map(i=>{let s=t.addGraphic(x({},i,{dashed:!1}));t.userData.graphics.push(s),t.userData.graphicMap.set(i.id,s)})}function Lp(a,t,e,i,s){a.elements.filter(o=>s.filterPoi(o)).map(o=>{try{let n=ds(o,e),r=new J(t.context,{id:o.id,icon:o.poi_info.showImageUrl||o.poi_info.icon,text:n,position:{x:o.center_coord_x,y:o.center_coord_y,z:o.airHeight+o.height},icon_size:[24,24],level:o.poi_info.level||0,hide_text:!i.showStoreName,maxWeight:o.poi_info.maxWeight||25,minWeight:o.poi_info.minWeight||1,text_font_size:i.textFontSize});t.poiLayer2.pushPoi(r),r&&(r.userData.type="store",r.userData.data=o,r.userData.floor=t.name)}catch(n){console.log("\u521B\u5EFA\u5E97\u94FApoi\u5931\u8D25",n,o)}})}function Cp(a,t,e){e.mergeGraphic?t.mergeGraphicLayer.addGraphics(a.elements,a.mergedElements):a.elements.map(i=>{let s=t.addGraphic(x({},i,{dashed:!1}));t.userData.graphics.push(s),t.userData.graphicMap.set(i.id,s)})}function Tp(a,t,e,i,s){a.elements.filter(o=>o.poi_info).filter(o=>s.filterPoi(o)).map(o=>{try{let n=us(o,e),r=new J(t.context,{id:o.id,icon:o.poi_info.showImageUrl||o.poi_info.icon,text:n,position:{x:o.center_coord_x,y:o.center_coord_y,z:o.airHeight+o.height},icon_size:[24,24],level:o.poi_info.level||0,hide_text:!i.showFacilityName,maxWeight:o.poi_info.maxWeight||25,minWeight:o.poi_info.minWeight||1,text_font_size:i.textFontSize});t.poiLayer2.pushPoi(r),r.userData.type="facility",r.userData.data=o,r.userData.floor=t.name}catch(n){console.log("\u6DFB\u52A0facility\u5931\u8D25",n,o)}})}function kp(a,t,e){t.parkingSpaceLayer.load(a,e.mergeParkingSpace),t.userData.parkingSpaces=t.parkingSpaceLayer.graphicMap.values(),t.userData.parkingSpacesGraphicMap=t.parkingSpaceLayer.graphicMap}function Dp(a,t,e,i){return f(this,null,function*(){a.elements.filter(o=>o.texts[0]).filter(o=>i.filterPoi(o)).forEach(o=>{try{let n=o.displayName||o.texts[0],r=new J(t.context,{id:o.id,text:n,position:{x:o.center_coord_x,y:o.center_coord_y,z:o.airHeight+o.height},text_font_size:e.textFontSize});r&&(r.userData.type="parkingSpace",r.userData.data=o,r.userData.floor=t.name),t.poiLayer2.pushPoi(r)}catch(n){console.log("\u6DFB\u52A0\u8F66\u4F4Dpoi\u5931\u8D25",n,o)}})})}function Ap(a,t){let e=new Vi(t.context,a.elements.map(i=>x({},i,{center_x:i.center_coord_x,center_y:i.center_coord_y})));t.textTextureLayer.add(e)}function go(){return new Worker(new URL("./worker/loader.worker-IS25OEA2.js",import.meta.url))}var Rp={mergeParkingSpace:!0,mergeGraphic:!0,renderVersion:Je.MERGED_RENDER_VERSION,layers:["graph","wall","lane","texture2d","texture3d","glb","store","facility","parkingSpace","text"],filterPoi:()=>!0},Ie=class extends tt{initDb(){return f(this,null,function*(){try{let{db:t}=yield xi();this.db=t}catch(t){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",t)}})}load(t,e){return f(this,null,function*(){if(Array.isArray(t))this.floors=t,e&&(this.placeConfig=x({},this.placeConfig,e));else if(typeof t=="string"){let i=yield fetch(t).then(s=>s.json());i.code===200&&(this.floors=i.data.list,this.placeConfig=x({},this.placeConfig,JSON.parse(i.data.config||"{}")))}else return this.load("https://screen.aibee.cn/ai-map/map/get-floor-map?place_id="+t);this.getOtherDataByFreeTime()})}setCacheData(t,e,i){return f(this,null,function*(){return this.initDbPromise.then(()=>wi(t,""+e,i))})}getCacheData(t,e){return f(this,null,function*(){return this.initDbPromise.then(()=>je(t,""+e))})}getFloorData(t){return f(this,null,function*(){let e=yield this.getFloorJsonData(t);return e?this.getDataByJson(e):null})}getFloorDataByFloorInfo(t){return f(this,null,function*(){let e=yield this.getFloorJsonDataByFloorInfo(t);return this.getDataByJson(e)})}setLocale(t){this.locale=t,this.bmap.context.currentFloor&&this.bmap.context.currentFloor.poiLayer2.pois.forEach(e=>{e.userData.type==="store"&&(e.options.text=ds(e.userData.data,t)),e.userData.type==="facility"&&(e.options.text=us(e.userData.data,t))})}getFloorJsonDataByFloorInfo(t){return f(this,null,function*(){if(this.getFloorDataPromise.has(t.floor))return this.getFloorDataPromise.get(t.floor);let e=new Promise(i=>f(this,null,function*(){let s=Oe(t),o=yield fetch(t.map_url).then(n=>n.json());o.floor=t.floor,Qe(o),this.setCacheData(ct.MAP_DATA,s,o),this.setCacheData(ct.MAP_VERSION,s,t.version_id),i(o)}));return this.getFloorDataPromise.set(t.floor,e),e})}getFloorJsonData(t){return f(this,null,function*(){let e=this.floors.find(i=>i.floor===t);return e?new Promise(i=>f(this,null,function*(){let s=Oe(e,this.options.renderVersion===Je.LAYERED_RENDER_VERSION?1:void 0);try{let o=Oe(e),n=yield this.getCacheData(ct.MAP_DATA,o);if(n&&n.transformed){console.log("\u4ECE\u7F13\u5B58\u4E2D\u53D6\u5230\u4E86\u5408\u5E76\u540E\u7684\u6570\u636E"),i(n);return}if(this.options.renderVersion===Je.LAYERED_RENDER_VERSION){let r=yield this.getCacheData(ct.MAP_DATA,s);if(r){console.log("\u4ECE\u7F13\u5B58\u4E2D\u53D6\u5230\u4E86\u6570\u636E"),i(r);return}}if(console.log("\u7F13\u5B58\u4E2D\u6CA1\u6709\u6570\u636E"),this.loadWorker){N(this.loadWorker,"adjust_floor_priority",{floor:t});let r=h=>{if(h.data.type==="floor_success"&&h.data.data.floor===t){var c;(c=this.loadWorker)==null||c.removeEventListener("message",r),i(this.getFloorJsonData(t))}};this.loadWorker.addEventListener("message",r)}else i(this.getFloorJsonDataByFloorInfo(e))}catch(o){console.log("[get floor data error]",o),i(this.getFloorJsonDataByFloorInfo(e))}})):null})}getRoadNetworkData(){return f(this,null,function*(){return(yield Promise.all(this.floors.map(e=>f(this,null,function*(){let i=Oe(e,0);try{let s=yield this.getCacheData(ct.ROAD_NETWORK_DATA,i);if(s)return s;let o=yield fetch(e.route_url).then(n=>n.json());return this.setCacheData(ct.ROAD_NETWORK_DATA,i,o),this.setCacheData(ct.ROUTE_VERSION,i,e.version_id),o}catch(s){let o=yield fetch(e.route_url).then(n=>n.json());return this.setCacheData(ct.ROAD_NETWORK_DATA,i,o),o}})))).filter(e=>e.points)})}getFacilitiesData(){return f(this,null,function*(){let t=this.floors.reduce((s,o)=>s.updated_at>o.updated_at?s:o,this.floors[0]);if(!t)return null;let e=Oe(t,0),i=()=>f(this,null,function*(){let s=yield fetch(t.entry_infra_url).then(o=>o.json());return s&&(this.setCacheData(ct.FACILITY_DATA,e,s),this.setCacheData(ct.FACILITY_VERSION,e,t.version_id)),s});try{let s=yield this.getCacheData(ct.FACILITY_DATA,e);return s||i()}catch(s){return console.log("[get facility error]",s),i()}})}getOtherDataByFreeTime(){return f(this,null,function*(){yield this.initDbPromise,yield N(this.loadWorker,"load",{floors:this.floors,version:this.options.renderVersion}),this.closeWorker()})}getMulFloorsData(t){return f(this,null,function*(){return Promise.all(t.map(e=>this.getFloorData(e))).then(e=>e.filter(i=>i))})}getDataByUrl(t){return f(this,null,function*(){let e=yield fetch(t).then(i=>i.json());return this.getDataByJson(e)})}getDataByJson(t,e,i){return f(this,null,function*(){Qe(t),e=this.getFloorBaseLayer(t,e);let s=x({},this.placeConfig,i);return yield this.getFloorContentLayer(t,e),yield this.getFloorPoi(t,e,s),this.changeFloorBox(t,e),e})}getDataByJsonStep(t,e,i){return f(this,null,function*(){Qe(t),e=this.getFloorBaseLayer(t,e);let s=x({},this.placeConfig,i);return this.changeFloorBox(t,e),requestAnimationFrame(()=>f(this,null,function*(){yield this.getFloorContentLayer(t,e),this.changeFloorBox(t,e),requestAnimationFrame(()=>f(this,null,function*(){yield this.getFloorPoi(t,e,s),this.changeFloorBox(t,e)}))})),e})}changeFloorBox(t,e){e.updateBox();let i=e.box.getSize(new Op),s=Math.max(i.x,i.y,i.z);e.userData.height=s/4+t.floorHeight}switchFloor(t,e){return f(this,null,function*(){return new Promise(i=>{let s={run:()=>this._switchFloor(t,e),meta:{type:"switchFloor"}},o=this.taskQueue.replaceByMetaType(s),n=r=>{let{task:h,res:c}=r;h.tid===o&&(this.taskQueue.removeEventListener("active-task-end",n),i(c))};this.taskQueue.addEventListener("active-task-end",n)})})}_switchFloor(t,e){return f(this,null,function*(){var i;let s=t;if(typeof t=="string"){let l=yield this.getFloorJsonData(t);if(l)s=l;else return null}else Qe(t);let o=x({},this.placeConfig,e),n=new At(this.bmap.context);n.userData.data=t;let r=this.floors.find(l=>l.floor===s.floor);var h;let c=(h=r==null?void 0:r.map_angle)!=null?h:0;return this.bmap.dispatchEvent({type:rt.SWITCH_FLOOR_BEFORE,data:{curFloor:n,graphics:[]}}),this.dispatchEvent({type:"switch-floor-before",data:{curFloor:n,graphics:[],floorData:s}}),this.bmap.context.scene.background=new Ip(o.backgroundColor),this.getFloorBaseLayer(s,n),this.changeFloorBox(s,n),this.bmap.buildingCenter=n.userData.center,this.bmap.currentBuildGround=(i=n.userData.data.layers.find(l=>l.l_type==="range"))==null?void 0:i.elements[0],this.bmap.context.switchFloor(n),this.bmap.initialFloorCamera(),this.bmap.context.control.setAzimuthalAngle(c/180*Math.PI,!0),this.bmap.context.cameraBound.updateBox(),this.dispatchEvent({type:"switch-floor-ground",data:{curFloor:n,graphics:[]}}),this.bmap.dispatchEvent({type:rt.SWITCH_FLOOR_GROUND,data:{curFloor:n}}),yield zs(),yield this.getFloorContentLayer(s,n),this.changeFloorBox(s,n),this.bmap.context.cameraBound.updateBox(),this.dispatchEvent({type:"switch-floor-content",data:{curFloor:n,graphics:[]}}),yield Zo(2),yield this.getFloorPoi(s,n,o),this.dispatchEvent({type:"switch-floor-after",data:{curFloor:n,graphics:n.graphicLayer.children}}),this.bmap.dispatchEvent({type:rt.SWITCH_FLOOR_AFTER,data:{curFloor:n,graphics:n.graphicLayer.children}}),n})}getFloorBaseLayer(t,e){e||(e=new At(this.bmap.context));let i=[0,0];return t.layers.forEach(s=>{switch(s.l_type){case"range":let o=s.elements[0];i=[o.center_x,o.center_y],e.userData.range=o.geometry.cds[0],e.userData.rangeGraphic=o;break;case"ground":fo(s,e);break;default:break}}),e.userData.center=i,e.name=t.floor,e.userData.data=t,e}getFloorContentLayer(t,e){return f(this,null,function*(){e||(e=new At(this.bmap.context)),e.userData.graphics=[],e.userData.graphicMap=new Map;let i=Date.now();for(let s=0;s<t.layers.length;s++){let o=t.layers[s];["range","ground"].includes(o.l_type)||this.options.layers.includes(o.l_type)&&(ur(o,e,this.options),console.log("time",Date.now()-i,o.l_type),i=Date.now())}return e})}getFloorPoi(t,e,i){return f(this,null,function*(){i===void 0&&(i=this.placeConfig);let s=Date.now();yield Promise.all(t.layers.map(n=>{if(this.options.layers.includes(n.l_type))return mr(n,e,this.locale,i,this.options)})),console.log("poi time",Date.now()-s);let o=Date.now();zs().then(()=>{console.log("poi render time",Date.now()-o)})})}clear(){return f(this,null,function*(){Mn(),this.db=null})}closeWorker(){this.loadWorker&&(this.loadWorker.terminate(),this.loadWorker=null)}dispose(){super.dispose(),this.clear(),this.closeWorker(),this.getFloorDataPromise.clear()}constructor(t,e={}){super(),this.bmap=t,this.floors=[],this.initDbPromise=Promise.resolve(),this.db=null,this.taskQueue=new Me,this.loadWorker=go(),this.locale="zh-cn",this.placeConfig={backgroundColor:"#f1f7f6",showFacilityName:!0,showStoreName:!0,textFontSize:14},this.getFloorDataPromise=new Map,this.options=x({},Rp,e),this.placeConfig=x({},this.placeConfig,t.config.loaderPlaceConfig),this.initDbPromise=this.initDb()}};import"core-js/modules/web.dom-collections.iterator.js";function fr(a,t){return f(this,null,function*(){let{brand:e,project:i}=a,{apiDomain:s,apiPath:{floorRange:o},apiInfo:n}=t,r=""+s+o+"?brand="+e+"&project="+i+"&phase="+i+"&building="+i;return yield fetch(r,n).then(c=>c.json()).then(c=>c.data).then(c=>{let l=(c||[])[0];return l&&(l.info=JSON.parse(l.info)),l})})}function gr(a,t){return f(this,null,function*(){let{brand:e,project:i,floor:s,ts:o,resource_type_list:n}=a,{apiDomain:r,apiPath:{floorGraphic:h},apiInfo:c}=t,l=""+r+h+"?brand="+e+"&project="+i+"&phase="+i+"&building="+i+"&floor="+s+"&ts="+o+"&resource_type_list="+n;return yield fetch(l,c).then(d=>d.json()).then(d=>d.data).then(d=>((d||[]).map(u=>u.info=JSON.parse(u.info)),d||[]))})}function oS(a,t){return f(this,null,function*(){let{project:e,floor:i}=a,{apiDomain:s,apiInfo:o}=t,n=s+"/api/inception-map/external_street/get?projectCode="+e+"&floorCode="+i;return yield fetch(n,o).then(h=>h.json()).then(h=>h.data).then(h=>JSON.parse(h[0].streetInfo||"{}")).then(h=>h.fileId?Fp(h.fileId,t):null)})}function Fp(a,t){return f(this,null,function*(){let{apiDomain:e,apiInfo:i}=t;return fetch(e+"/api/inception-map/file/getFileStream?fileId="+a,i).then(s=>s.arrayBuffer()).then(s=>{let n=new TextDecoder("utf-8").decode(s);return n?JSON.parse(n):null})})}var yr=class{load(t){return f(this,null,function*(){let e=ve(t);if(this.cacheData.has(e))return this.cacheData.get(e);let[,i]=yield Promise.all([this.loadBuildGround(t),gr(t,this.bmap.config)]),s=ve({floor:t.floor,ts:t.ts});fi(i.map(n=>n.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(s)||0),i.forEach(n=>n.info.transformToBuildingGround=!1),this.cacheData.set(e,i);let o=this.floorDataLengthMap.get(s)||0;return this.floorDataLengthMap.set(s,o+i.length),this.loadExternalStreet(t),i})}loadExternalStreet(t){return f(this,null,function*(){})}switchFloorByData(t,e){if(!t.length)return;let i=e.userData.legacyToGraphicMap||new Map,s=e.userData.graphicMap||new Map,{ground:o,markGraphic:n,graphic:r}=this.bmap.config;for(let h=0;h<t.length;h++){let c=t[h];c.info.group==="ground"?(c.info.fillColor=o.color,c.info.fillOpacity=o.opacity,c.info.height=o.height,c.info.stroke=o.stroke,c.info.strokeColor=o.strokeColor,c.info.strokeOpacity=o.strokeOpacity):c.info.userData.mark?(c.info.height=n.height,c.info.fillColor=n.color,c.info.fillOpacity=n.opacity,c.info.stroke=n.stroke,c.info.strokeColor=n.strokeColor,c.info.strokeOpacity=n.strokeOpacity):(c.info.fillOpacity=r.fillOpacity,this.bmap.config.initTransToMark&&(c.info.height=n.height,c.info.fillColor=n.color,c.info.stroke=n.stroke,c.info.strokeColor=n.strokeColor,c.info.strokeOpacity=n.strokeOpacity))}for(let h of t){if(h.info.group==="ground")e.createGround(h.info);else{let c=e.addGraphic(h.info);c.userData.data=h,i.set(h.legacy_id,c)}s.set(h.element_uuid,h)}e.userData.legacyToGraphicMap=i,e.userData.graphicMap=s,e.userData.rangeGraphic=this.bmap.currentBuildGround,e.userData.range=this.bmap.currentBuildGround.geometry.cds[0],e.userData.center=this.bmap.buildingCenter,e.updateBox(),e===this.bmap.context.currentFloor?(this.bmap.triggerHooks(rt.SWITCH_FLOOR_BEFORE,{curFloor:e,graphics:e.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks(rt.SWITCH_FLOOR_AFTER,{curFloor:e,graphics:e.graphicLayer.children})):this.bmap.switchFloorByFloor(e)}filterData(t,e){let i=e.userData.graphicMap||new Map;return t.filter(s=>!i.has(s.element_uuid))}switchFloorByStoreData(t,e){return f(this,null,function*(){let i=yield this.load(x({},t,{resource_type_list:"6"})),s=this.filterData(i,e);this.switchFloorByData(s,e)})}switchFloorByOtherData(t,e){return f(this,null,function*(){let i=yield this.load(x({},t,{resource_type_list:"1,2,3,4"})),s=this.filterData(i,e);this.switchFloorByData(s,e)})}loadBuildGround(t){return f(this,null,function*(){let{brand:e,project:i}=t,s=yield this.loadBuildingGround({brand:e,project:i});var o;return this.bmap.currentBuildGround=(o=s==null?void 0:s.info)!=null?o:null,this.bmap.changeBuildingCenter(s,{brand:e,project:i}),this.bmap.currentBuildGround})}loadBuildingGround(t){return f(this,null,function*(){let{brand:e,project:i}=t,s=ve({brand:e,project:i});if(this.buildingGroundMap.has(s))return this.buildingGroundMap.get(s);let o=fr({brand:e,project:i},this.bmap.config).then(n=>(this.buildingGroundMap.set(s,n),n));return this.buildingGroundMap.set(s,o),o})}switchFloor(t){return f(this,null,function*(){let e=new At(this.bmap.context);e.userData.graphicMap=new Map,e.name=t.floor;try{yield Promise.all([this.switchFloorByStoreData(t,e),this.switchFloorByOtherData(t,e)])}catch(i){console.log(i)}return e})}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}constructor(t){this.bmap=t,this.cacheData=new Map,this.floorDataLengthMap=new Map,this.buildingGroundMap=new Map,this.externalStreetMap=new Map}};var LS=function(a){return a[a.D2=0]="D2",a[a.D3=1.1]="D3",a}({}),vr=class extends zp{get basicZoom(){return this.context.basicZoom}set basicZoom(t){this.context.basicZoom=t}changeBuildingCenter(t,e){let{brand:i,project:s}=e,o=t?li(t.info.geometry.cds[0]):[0,0];this.buildingCenter=o,this.dispatchEvent({type:"center-change",center:o,project:s,brand:i})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(e=>e!==t)}triggerHooks(t,e){this.dispatchEvent({type:t,data:e})}switchFloor(t){return f(this,null,function*(){return this.loader||(this.loader=new Ie(this),this.loader.placeConfig=x({},this.loader.placeConfig,this.config.loaderPlaceConfig),yield this.loader.load(this.config.apiPath.loadPlaceInfo+"?place_id="+this.config.placeId+"&env=prod")),this.loader.switchFloor(t)})}switchFloorByFloor(t,e,i){e===void 0&&(e=!0),i===void 0&&(i=t.graphicLayer.children),this.triggerHooks(rt.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:i}),this.buildingCenter=t.userData.center,this.currentBuildGround=t.userData.rangeGraphic,this.context.switchFloor(t,e),this.initialFloorCamera(),this.triggerHooks(rt.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:i})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(this.config.defaultPadding,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*this.config.control.maxZoomScale,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}addModel(t,e){if(t.options.geometry.type==="polygon"){var i;let s=(i=this.context.currentFloor)==null?void 0:i.addModel(x({},e,{position:t.getPosition().setZ(.1),id:t.options.id}));if(s){let{facilityAngle:o=0,facilityXScale:n=1,facilityYScale:r=1}=t.options.userData;s.rotateZ((180-o)/180*Math.PI),s.scale.set(n,r,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.getGraphics())||[]}createGraphicPoi(t,e){if(this.context.currentFloor){e.id===void 0&&(e.id=t.options.id);let i=t.options.center,s=t.getCenter(),o=(i==null?void 0:i[0])||s.x,n=(i==null?void 0:i[1])||s.y;return console.log(o,n,i,s),this.context.currentFloor.addPoi(x({},e,{position:{x:o,y:n,z:s.z+t.options.height/2}}))}return null}createPoi2ByPosition(t,e){if(this.context.currentFloor){let i=this.mercatorToWorld([t.x,t.y]),s=new J(this.context,x({},e,{position:{x:i.x,y:i.y,z:t.z}}));return this.context.currentFloor.poiLayer2.pushPoi(s),s}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,e,i,s){e===void 0&&(e=500),i===void 0&&(i=0),s===void 0&&(s=0);let o=t.getPosition().clone(),{context:{camera:n}}=this;if(n.updateMatrix(),s){let r=new ms;r.setFromMatrixColumn(n.matrix,1),r.normalize(),r.multiplyScalar(s/n.zoom),o.add(r)}if(i){let r=new ms;r.setFromMatrixColumn(n.matrix,0),r.normalize(),r.multiplyScalar(i/n.zoom),o.add(r)}return this.context.setCameraPosition(o,e)}translateElementToCenterX(t,e){return f(this,null,function*(){return e===void 0&&(e=500),yt(new Promise(i=>{let s=this.context.control.target.clone(),o=t.getPosition();this.timer.requestAnimationFrame(()=>{let{clientSize:{width:n,height:r},camera:h}=this.context,l=D(o,h,n,r).x-n/2,p=new ms;p.setFromMatrixColumn(this.context.camera.matrix,0),p.normalize(),p.multiplyScalar(l/this.context.camera.zoom),s.add(p),this.context.setCameraPosition(s,e).then(i)})}),e+500)})}getElementDeviceCoordinate(t){let e=t.position.clone(),{clientWidth:i,clientHeight:s}=this.container;return D(e,this.context.camera,i,s)}changeMapType(t,e){return e===void 0&&(e=500),this.type=t,t==="2d"?this.context.setPolarAngle(0,e):this.context.setPolarAngle(1.1,e)}resetView(t){return f(this,null,function*(){t===void 0&&(t=300);let e=t/3;yield this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,e),yield this.context.setPolarAngle(this.config.control.defaultPolar,e),yield this.context.fitCameraToGround(this.config.defaultPadding,e,!1)})}reduceMap(t,e){t===void 0&&(t=.5),e===void 0&&(e=500);let i=this.context.camera.zoom;return this.context.setZoom(i-t,this.context.control.target,e)}enlargeMap(t,e){t===void 0&&(t=.5),e===void 0&&(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.enable){let t=new ResizeObserver(this.debounceResize);t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;this.context.control.removeEventListener("change",this.onControlChange),window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t,e){t===void 0&&(t=.1),e===void 0&&(e=500);let i=this.context.control.getAzimuthalAngle();return this.context.setAzimuthalAngle(i+t,e)}measureDistance(){return f(this,null,function*(){return this.cancelDistance(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgLine=new Ui(this.context);let i=this.svgLine.dispose.bind(this.svgLine);this.svgLine.dispose=function(){i(),e("cancel")},this.svgLine.addEventListener("distance",s=>{let{distance:o}=s;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 Hi(this.context);let i=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){i(),e("cancel")},this.svgPolygon.addEventListener("area",s=>{let{area:o}=s;t(o)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}fitCameraByPois(t,e,i){return f(this,null,function*(){if(e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=500),!t.length)return;let s=new Gp;return t.forEach(o=>{let{position:n}=o;s.expandByPoint(n)}),this.context.fitCameraToBox(s,e,i,!1)})}fitCameraByPoiNodeIds(t,e,i){return f(this,null,function*(){e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=500);let s=t.map(o=>this.getPoiById(o)).filter(o=>!!o);if(s.length)return this.fitCameraByPois(s,e,i)})}getGraphicByNodeId(t){var e,i;return((e=this.context.currentFloor)==null?void 0:e.graphicLayer.getGraphicByNodeId(t))||((i=this.context.currentFloor)==null?void 0:i.parkingSpaceLayer.graphicMap.get(t))||null}deleteGraphic(t){var e;(e=this.context.currentFloor)==null||e.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var e;if(!t.transformToBuildingGround&&this.currentBuildGround){let i=li(this.currentBuildGround.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(s=>{Array.isArray(s)&&s.forEach(o=>{o[0]-=i[0],o[1]-=i[1]})});else{let[s,o]=t.geometry.cds;t.geometry.coords=[s-i[0],o-i[1]]}}return(e=this.context.currentFloor)==null?void 0:e.graphicLayer.createGraphic(t)}mercatorToWorld(t){let e=this.buildingCenter;return new ms(t[0]-e[0],t[1]-e[1],0)}removePoiById(t){var e,i;(e=this.context.currentFloor)==null||e.poiLayer.removePoiById(t),(i=this.context.currentFloor)==null||i.poiLayer2.removePoiById(t)}getPoiById(t){var e;let i=this.context.collisionSystem.objects;return((e=this.context.currentFloor)==null?void 0:e.poiLayer.getPoiById(t))||i.find(s=>s.options.id===t)}getPois(){var t;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(e=>!e.options.built_in),...this.context.collisionSystem.objects||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.loader&&(this.loader.dispose(),this.loader=null),this.unRegistryEvent(),this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.plugins=[],this.context.dispose(),this.context=null,this.container=null,et.dispose(),st.dispose(),te.dispose(),at.dispose(),S.dispose(),St.dispose(),this.debounceResize=null,yo.Dispose==null||yo.Dispose.call(yo)}constructor(t,e={}){super(),this.container=t,this.polarKeys=[],this.azimuthalKeys=[],this.prevCameraZoom=1,this.type="2d",this.currentBuildGround=null,this.observe=null,this.buildingCenter=[0,0],this.timer=new j,this.plugins=[],this.loader=null,this.onControlChange=()=>{let{camera:{zoom:i}}=this.context;i!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=i)},this.onKeydown=i=>{this.polarKeys.includes(i.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(i.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=i=>{if(this.polarKeys.includes(i.code)){let s=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=s,this.context.control.minPolarAngle=s}if(this.azimuthalKeys.includes(i.code)){let s=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=s,this.context.control.minAzimuthAngle=s}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let i=this.context.control.getAzimuthalAngle(),s=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let o=this.context.getFitCameraToGroundZoom(this.config.defaultPadding,0)||1;this.context.camera.zoom=s,this.context.control.minZoom=o,this.context.control.maxZoom=o*this.config.control.maxZoomScale,this.basicZoom=s,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(i,0),this.context.cameraBound.setEnable(!0)},this.config=pr(e),this.context=new ps(t,this),this.debounceResize=Bp(this.resize,this.config.resizeObserver.debounceTime),this.registryEvent()}};var kS=function(a){return a.HALF="half",a.POWER="power",a.MECHANICAL="mechanical",a.NORMAL="normal",a.VIP="vip",a}({});import"core-js/modules/web.dom-collections.iterator.js";var X=class extends tt{dispose(){let t=this.bmap.plugins.findIndex(e=>e===this);t!==-1&&this.bmap.plugins.splice(t,1),this.bmap=null,super.dispose()}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};var xr=class extends X{fetchEquipment(){return f(this,null,function*(){let{apiDomain:t,apiPath:{equipmentList:e},apiInfo:i}=this.bmap.config,s=""+t+e;yield fetch(s,i).then(o=>o.json()).then(o=>o.data).then(o=>{this.equipmentList=o,this.equipmentMap=new Map(o.map(n=>[n.equipment_id,n]))}),this.dispatchEvent({type:"change-equipment-list",data:this.equipmentList}),this.bmap.context.currentFloor&&this.changeGraphicToEquipment(this.bmap.context.currentFloor.graphicLayer.children)})}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(e=>{let i=this.getGraphicEquipment(e);return i&&this.equipmentMap.has(i)}).forEach(e=>{let i=this.equipmentMap.get(this.getGraphicEquipment(e)),s=this.bmap.createGraphicPoi(e,{icon:i==null?void 0:i.equipment_icon,built_in:!0,icon_size:[14,14]});s&&(s.userData.data=i,s.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(rt.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(e=>{if(e.userData.type==="equipment"){var i;(i=this.bmap.context.currentFloor)==null||i.poiLayer.removePoi(e)}}),super.dispose()}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=e=>{let{data:{graphics:i}}=e;this.equipmentList.length&&this.changeGraphicToEquipment(i)},this.fetchEquipment(),this.bmap.addEventListener(rt.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};import"core-js/modules/es.string.replace.js";import"core-js/modules/es.regexp.exec.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.promise.finally.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.array.push.js";import{Mesh as Kp,Object3D as Yp,TextureLoader as Xp,Color as qp,Vector2 as xo,Vector3 as $p,NormalBlending as Jp,RepeatWrapping as Qp}from"three";import"core-js/modules/es.typed-array.float32-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import"core-js/modules/es.array.push.js";import"core-js/modules/es.typed-array.uint16-array.js";import{BufferGeometry as Wp,Matrix4 as Mr,Vector3 as ue,Ray as Up,Sphere as Hp,LineSegments as Np,BufferAttribute as ie,ShaderChunk as ft,ShaderMaterial as _r,UniformsLib as Zp,Color as jp,Vector2 as wr}from"three";var gt=class extends Wp{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new Mr,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(t){this.setGeometry(t,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(t){this.setPoints(t,this.widthCallback)}}})}};gt.prototype.setMatrixWorld=function(a){this.matrixWorld=a};gt.prototype.setGeometry=function(a,t){this._geometry=a,this.setPoints(a.getAttribute("position").array,t)};gt.prototype.setPoints=function(a,t){if(!(a instanceof Float32Array)&&!(a instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=a,this.widthCallback=t,this.positions=[],this.counters=[],a.length&&a[0]instanceof ue)for(var e=0;e<a.length;e++){var i=a[e],s=e/a.length;this.positions.push(i.x,i.y,i.z),this.positions.push(i.x,i.y,i.z),this.counters.push(s),this.counters.push(s)}else for(var e=0;e<a.length;e+=3){var s=e/a.length;this.positions.push(a[e],a[e+1],a[e+2]),this.positions.push(a[e],a[e+1],a[e+2]),this.counters.push(s),this.counters.push(s)}this.process()};function Vp(a,t){var e=new Mr,i=new Up,s=new Hp,o=new ue,n=this.geometry;if(n.boundingSphere||n.computeBoundingSphere(),s.copy(n.boundingSphere),s.applyMatrix4(this.matrixWorld),a.ray.intersectSphere(s,o)!==!1){e.copy(this.matrixWorld).invert(),i.copy(a.ray).applyMatrix4(e);var r=new ue,h=new ue,c=new ue,l=this instanceof Np?2:1,p=n.index,d=n.attributes;if(p!==null)for(var u=p.array,m=d.position.array,g=d.width.array,y=0,w=u.length-1;y<w;y+=l){var M=u[y],P=u[y+1];r.fromArray(m,M*3),h.fromArray(m,P*3);var L=g[Math.floor(y/3)]!==void 0?g[Math.floor(y/3)]:1,C=a.params.Line.threshold+this.material.lineWidth*L/2,H=C*C,b=i.distanceSqToSegment(r,h,o,c);if(!(b>H)){o.applyMatrix4(this.matrixWorld);var Z=a.ray.origin.distanceTo(o);Z<a.near||Z>a.far||(t.push({distance:Z,point:c.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this}),y=w)}}}}gt.prototype.raycast=Vp;gt.prototype.compareV3=function(a,t){var e=a*6,i=t*6;return this.positions[e]===this.positions[i]&&this.positions[e+1]===this.positions[i+1]&&this.positions[e+2]===this.positions[i+2]};gt.prototype.copyV3=function(a){var t=a*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};gt.prototype.getDistance=function(a){let t=0;for(let e=0;e<a;e++){let i=6*e,s=new ue(this.positions[i],this.positions[i+1],this.positions[i+2]),o=new ue(this.positions[i+6],this.positions[i+7],this.positions[i+8]),n=s.distanceTo(o);t+=n}return t};gt.prototype.process=function(){var a=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let e=this.getDistance(a-1);var i;this.compareV3(0,a-1)?i=this.copyV3(a-2):i=this.copyV3(0),this.previous.push(i[0],i[1],i[2]),this.previous.push(i[0],i[1],i[2]);for(var s=0;s<a;s++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(s/(a-1)):t=1,this.width.push(t),this.width.push(t),s===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(s===a-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let n=this.getDistance(s)/e;this.uvs.push(n,0),this.uvs.push(n,1)}if(s<a-1){i=this.copyV3(s),this.previous.push(i[0],i[1],i[2]),this.previous.push(i[0],i[1],i[2]);var o=s*2;this.indices_array.push(o,o+1,o+2),this.indices_array.push(o+2,o+1,o+3)}s>0&&(i=this.copyV3(s),this.next.push(i[0],i[1],i[2]),this.next.push(i[0],i[1],i[2]))}this.compareV3(a-1,0)?i=this.copyV3(1):i=this.copyV3(a-1),this.next.push(i[0],i[1],i[2]),this.next.push(i[0],i[1],i[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new ie(new Float32Array(this.positions),3),previous:new ie(new Float32Array(this.previous),3),next:new ie(new Float32Array(this.next),3),side:new ie(new Float32Array(this.side),1),width:new ie(new Float32Array(this.width),1),uv:new ie(new Float32Array(this.uvs),2),index:new ie(new Uint16Array(this.indices_array),1),counters:new ie(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function vo(a,t,e,i,s){var o;if(a=a.subarray||a.slice?a:a.buffer,e=e.subarray||e.slice?e:e.buffer,a=t?a.subarray?a.subarray(t,s&&t+s):a.slice(t,s&&t+s):a,e.set)e.set(a,i);else for(o=0;o<a.length;o++)e[o+i]=a[o];return e}gt.prototype.advance=function(a){var t=this._attributes.position.array,e=this._attributes.previous.array,i=this._attributes.next.array,s=t.length;vo(t,0,e,0,s),vo(t,6,t,0,s-6),t[s-6]=a.x,t[s-5]=a.y,t[s-4]=a.z,t[s-3]=a.x,t[s-2]=a.y,t[s-1]=a.z,vo(t,6,i,0,s-6),i[s-6]=a.x,i[s-5]=a.y,i[s-4]=a.z,i[s-3]=a.x,i[s-2]=a.y,i[s-1]=a.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};ft.meshline_vert=["",ft.logdepthbuf_pars_vertex,ft.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",ft.logdepthbuf_vertex,ft.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",ft.fog_vertex,"}"].join(`
501
+ `,i=-1/0,s=this.geometry.getAttribute("position");if(s)for(let n=0;n<s.count;n++){let r=s.getZ(n);r>i&&(i=r)}let o=new Kc({uniforms:{maxZ:{value:i},uColor:{value:new qn(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new qn(Ut(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:e,transparent:!0});this.material=o}initLineMaterial(){let t=S.createLineMaterial({color:this.options[0].strokeColor,opacity:this.options[0].strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new Zc(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],e=this.options[0].height+this.options[0].deltaHeight;return this.options.map(i=>{let{coords:s}=i.geometry;for(let o=0;o<s.length;o++){let n=s[o];for(let r=0;r<n.length;r++){let h=n[r],c=r+1===n.length?n[0]:n[r+1];t.push(new Xn(h[0],h[1],e)),t.push(new Xn(c[0],c[1],e))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),e=new jc().setFromPoints(t);this.lineGeometry=e}createBorder(){this.line&&this.remove(this.line);let t=new Vc(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t,e;this.geometry?(this.geometry.dispose(),this._listeners={}):this.addEventListener("init-geometry",()=>{var i;(i=this.geometry)==null||i.dispose(),this._listeners={}}),(t=this.material)==null||t.dispose(),(e=this.line)==null||e.geometry.dispose(),this.clear()}constructor(t,e,i){super(),this.context=t,this.mergedElement=i,this.options=[],i?(this.options=[i],this.initMergedElement()):(this.options=e.map(s=>x({},Vt,s)),this.init())}};import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.string.trim.js";import{DoubleSide as Xc,Matrix4 as Jn,Mesh as qc,MeshBasicMaterial as $c,Object3D as Jc,PlaneGeometry as Qc}from"three";import{mergeGeometries as tl}from"three/examples/jsm/utils/BufferGeometryUtils.js";var el={airHeight:0,deltaHeight:0,height:0,geometry:{cds:[],type:"polygon",coords:[],curveCpt:[],curveIndex:[]},texts:[],fillColor:"#ffffff",fillOpacity:0,strokeColor:"#ffffff",strokeOpacity:0,secondHeight:0,secondRotate:0,center_x:0,center_y:0},Vi=class extends Jc{init(){return f(this,null,function*(){let t=yield Promise.all(this.options.map(n=>et.getTextureByText(n.texts[0],{fillStyle:Bs(n.fillColor,n.fillOpacity),strokeStyle:Bs(n.strokeColor,n.strokeOpacity),lineWidth:6,font:"bold 54px sans-serif",maxWidth:2048}))),e=t.map((n,r)=>{let h=this.options[r],{width:c,height:l}=n.texture.image,p=c/l,d=h.secondHeight*p,u=new Qc(d,h.secondHeight),m=new Jn().makeTranslation(h.center_x,h.center_y,h.airHeight+h.deltaHeight+h.height).multiply(new Jn().makeRotationZ(h.secondRotate));return u.applyMatrix4(m),u}),i=tl(e,!0);e.forEach(n=>n.dispose());let s=t.map(n=>{let{texture:r}=n,h=new $c({map:r,alphaTest:1,side:Xc});return r.needsUpdate=!0,h}),o=new qc(i,s);this.mesh=o,this.position.z+=.04,this.add(o)})}setOpacity(t){var e,i;(i=this.mesh)==null||(e=i.material)==null||e.forEach(s=>{s.opacity=t,s.needsUpdate=!0})}dispose(){var t,e,i;(t=this.mesh)==null||t.geometry.dispose(),(i=this.mesh)==null||(e=i.material)==null||e.forEach(s=>s.dispose()),this.clear()}constructor(t,e){super(),this.context=t,this.options=e.map(i=>x({},el,i)).filter(i=>i.texts[0].trim()),this.options.length&&this.init()}};import{Object3D as il}from"three";import{Line2 as sl}from"three/examples/jsm/lines/Line2.js";import{LineGeometry as ol}from"three/examples/jsm/lines/LineGeometry.js";import{LineMaterial as nl}from"three/examples/jsm/lines/LineMaterial.js";var qe=class extends il{registryEvent(){this.context.addEventListener("resize",this.onResize)}unRegistryEvent(){this.context.removeEventListener("resize",this.onResize)}setPosition(t,e){this.lineGeometry.setPositions([t.x,t.y,t.z,e.x,e.y,e.z]),this.line||this.createLine()}createLine(){this.line=new sl(this.lineGeometry,this.lineMaterial),this.line.renderOrder=100003,this.add(this.line)}dispose(){var t;this.unRegistryEvent(),this.line&&I(this.line),this.lineGeometry=null,this.lineMaterial=null,this.clear(),(t=this.line)==null||t.clear(),this.line=null}constructor(t,e,i){super(),this.context=t,this.lineGeometry=new ol,this.lineMaterial=new nl({color:0,transparent:!0,depthTest:!1,linewidth:2}),this.line=null,this.onResize=()=>{let{width:s,height:o}=this.context.clientSize;this.lineMaterial.resolution.set(s,o)},this.onResize(),this.registryEvent(),e&&i&&this.setPosition(e,i)}};import"core-js/modules/es.array.push.js";import"core-js/modules/web.dom-collections.iterator.js";import{Box3 as rl,InstancedMesh as al,Object3D as hl,Vector3 as cl}from"three";import{Matrix4 as $e}from"three";var Ii=class extends hl{loadModel(){return f(this,null,function*(){let t=yield at.loadModel(this.options[0].url);t.scene.updateMatrixWorld(!0);let e=t.scene.matrixWorld.clone().invert();t.scene.traverse(h=>{if(h.isMesh){let c=e.clone().multiply(h.matrixWorld),l=h.material;this.subMeshes.push({geometry:h.geometry,material:h.material,initialMatrix:c}),Array.isArray(l)?l.forEach(p=>{p.transparent=!0,this.materialOriginParams.set(p,{opacity:p.opacity})}):(l.transparent=!0,this.materialOriginParams.set(l,{opacity:l.opacity}))}});let i=this.subMeshes.map(h=>{let{geometry:c,material:l}=h;return new al(c,l,this.options.length)});t.scene.rotation.set(Math.PI/2,0,0);let o=new rl().setFromObject(t.scene).getSize(new cl),n=Math.max(o.x,o.y);this.options.map(h=>{let c=new $e,l=h.width/n;return c.multiply(new $e().makeTranslation(h.center_x,h.center_y,h.airHeight+h.deltaHeight)).multiply(new $e().makeScale(l,l,l)).multiply(new $e().makeRotationZ(h.rotate)).multiply(new $e().makeRotationX(Math.PI/2)),h.url==="https://robot-vr-public.cdn.bcebos.com/ai-map-resource/757/1865371442288267264/smzsdrc.glb"&&console.log(h,c),c}).forEach((h,c)=>{i.forEach((l,p)=>{let d=h.clone().multiply(this.subMeshes[p].initialMatrix);l.setMatrixAt(c,d)})}),i.forEach(h=>{h.instanceMatrix.needsUpdate=!0,this.meshSetMaterial(h),this.add(h)})})}meshSetMaterial(t){t.isMesh&&(t.frustumCulled=!1,t.castShadow=!0,Array.isArray(t.material)?t.material.map(e=>{e.emissiveIntensity*=.95}):(t.material.emissiveIntensity*=.95,t.material.emissive=t.material.color,t.material.emissiveMap=t.material.map))}setOpacity(t,e){e===void 0&&(e=!1),this.subMeshes.forEach(i=>{let{material:s}=i;if(Array.isArray(s))s.forEach(o=>{if(e)o.opacity=t;else{let n=this.materialOriginParams.get(o)||{opacity:1};t>n.opacity?o.opacity=n.opacity:o.opacity=t}o.needsUpdate=!0});else{let o=this.materialOriginParams.get(s)||{opacity:1};t>o.opacity?s.opacity=o.opacity:s.opacity=t,s.needsUpdate=!0}}),this.children.forEach(i=>{i.instanceMatrix.needsUpdate=!0})}dispose(){this.children.forEach(t=>t.dispose()),I(this),this.clear()}constructor(t,e){super(),this.context=t,this.options=e,this.subMeshes=[],this.materialOriginParams=new Map,this.loadModel()}};import{Object3D as ll,Mesh as pl,LineSegments as dl,ObjectLoader as ul}from"three";var Ye=class extends ll{init(){return f(this,null,function*(){this.geometry=this.initGeometry(),this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options.deltaHeight+this.options.airHeight,this.options.lineGeometry&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())})}initGeometry(){return this.loader.parseGeometries([this.options.mergedGeometry])[this.options.mergedGeometry.uuid]}initMaterial(){this.material=S.GetMergeAttributeGraphicMaterial()}initLineMaterial(){return this.lineMaterial=S.GetMergeAttributeGraphicLineMaterial()}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new pl(this.geometry,this.material),this.add(this.mesh)}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.loader.parseGeometries([this.options.lineGeometry]);this.lineGeometry=t[this.options.lineGeometry.uuid]}createBorder(){this.line&&this.remove(this.line);let t=new dl(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t;this.geometry&&this.geometry.dispose(),(t=this.line)==null||t.geometry.dispose(),this.clear()}constructor(t,e){super(),this.context=t,this.loader=new ul,this.options=x({},Vt,e),this.init()}};import{Mesh as ml,Object3D as fl,ObjectLoader as gl}from"three";var Ki=class extends fl{initGeometry(){return f(this,null,function*(){let t=new gl().parseGeometries([this.options.mergedGeometry]);this.geometry=t[this.options.mergedGeometry.uuid]})}init(){return f(this,null,function*(){var t;yield this.initGeometry();let e=new ml(this.geometry,lt.GetMergeAttributeWallMaterial());this.add(e);let i=(t=this.geometry)==null?void 0:t.getAttribute("opacity");i&&(this.originOpacities=Array.from(i.array))})}setOpacity(t,e){e===void 0&&(e=!1);var i;let s=(i=this.geometry)==null?void 0:i.getAttribute("opacity");if(s){for(let n=0;n<s.count;n++)if(e)s.setX(n,t);else{var o;s.setX(n,Math.min(t,(o=this.originOpacities[n])!=null?o:1))}s.needsUpdate=!0}}dispose(){var t;(t=this.geometry)==null||t.dispose(),this.clear()}constructor(t,e){super(),this.context=t,this.options=e,this.originOpacities=[],this.init()}};import"core-js/modules/es.typed-array.float32-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import{Float32BufferAttribute as yl,FrontSide as vl,InstancedBufferAttribute as xl,InstancedMesh as wl,MeshBasicMaterial as Ml,Object3D as _l,Shape as Pl,ShapeGeometry as bl,Vector2 as Yi}from"three";var le=class extends _l{init(){return f(this,null,function*(){let t=this.options.iconUrl,e=yield st.getTextureByUrl(t),i=new Ml({map:e,transparent:!0,alphaTest:.2,side:vl}),s=new wl(this.geometry,i,this.options.mergedMatrixes.size);s.instanceMatrix=new xl(new Float32Array(this.options.mergedMatrixes.array),16),this.add(s),this.mesh=s,this.position.z+=.004})}setOpacity(t){this.mesh&&(this.mesh.material.opacity=t,this.mesh.material.needsUpdate=!0,this.mesh.instanceMatrix.needsUpdate=!0)}dispose(){var t;this.mesh&&I(this.mesh),(t=this.mesh)==null||t.dispose(),this.clear()}constructor(t,e){super(),this.context=t,this.geometry=new bl(new Pl([new Yi(-.5,-.5),new Yi(-.5,.5),new Yi(.5,.5),new Yi(.5,-.5)])),this.options=x({},lo,e);let i=new yl([0,0,0,1,1,1,1,0],2);this.geometry.setAttribute("uv",i),this.init()}};import"core-js/modules/es.array.push.js";import{Mesh as Sl,Object3D as El,ObjectLoader as Ll,Vector2 as Qn}from"three";import{LineSegments2 as tr}from"three/examples/jsm/lines/LineSegments2.js";import{LineSegmentsGeometry as er}from"three/examples/jsm/lines/LineSegmentsGeometry.js";var Xi=class extends El{initGeometry(){return f(this,null,function*(){let t=this.loader.parseGeometries([this.options.mergedGeometry]);this.geometry=t[this.options.mergedGeometry.uuid]})}initMaterial(){let t=S.createMeshBasicMaterial({color:"#ffffff",opacity:1,vertexColors:!0});return this.material=t,t}initDoubleLine(){if(this.options.dashedLineGeometry){let t=S.createLine2MaterialMap({color:"#ffffff",width:.2,dashed:!0,resolution:new Qn(this.context.clientSize.width,this.context.clientSize.height),vertexColors:!0});t.transparent=!0,t.needsUpdate=!0;let e=new er;e.setPositions(this.options.dashedLineGeometry.positions),e.setColors(this.options.dashedLineGeometry.colors);let i=new tr(e,t);i.computeLineDistances(),i.position.z+=.01,this.add(i),this.doubleLines.push(i)}if(this.options.lineGeometry){let t=S.createLine2MaterialMap({color:"#ffffff",width:.2,dashed:!1,resolution:new Qn(this.context.clientSize.width,this.context.clientSize.height),vertexColors:!0}),e=new er;e.setPositions(this.options.lineGeometry.positions),e.setColors(this.options.lineGeometry.colors);let i=new tr(e,t);i.position.z+=.01,this.add(i),this.doubleLines.push(i)}}init(){return f(this,null,function*(){yield this.initGeometry(),this.initMaterial();let t=new Sl(this.geometry,this.material);this.add(t),this.initDoubleLine(),this.position.z+=.02})}setOpacity(t){this.material.opacity=t,this.material.needsUpdate=!0,this.doubleLines.forEach(e=>{e.material.opacity=t,e.material.needsUpdate=!0})}dispose(){var t,e;(t=this.geometry)==null||t.dispose(),(e=this.lineGeometry)==null||e.dispose(),this.doubleLines.map(i=>i.geometry.dispose()),this.clear()}constructor(t,e){super(),this.context=t,this.options=e,this.doubleLines=[],this.loader=new Ll,this.init()}};import"core-js/modules/es.typed-array.float32-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import"core-js/modules/web.dom-collections.iterator.js";import{Object3D as Cl,Vector3 as po,BufferGeometry as Tl,LineSegments as kl,Color as ir,BoxGeometry as Dl,InstancedMesh as Al,Matrix4 as Ol,Quaternion as Il,InstancedBufferAttribute as sr,BufferAttribute as or}from"three";var Ve=class extends Cl{setColorByIndex(t,e){this.mesh&&(this.mesh.setColorAt(t,new ir(e).convertLinearToSRGB()),this.mesh.instanceColor.needsUpdate=!0)}init(){return f(this,null,function*(){this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options[0].deltaHeight+this.options[0].airHeight,this.options[0].strokeOpacity!==0&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())})}initMaterial(){this.material=S.GetInstancedGraphicMaterial()}initLineMaterial(){let t=S.GetMergeAttributeGraphicLineMaterial();this.lineMaterial=t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new Al(this.geometry,this.material,this.options.length);let t=new sr(new Float32Array(this.options.length),1),e=new sr(new Float32Array(this.options.length),1);this.options.forEach((i,s)=>{let o=i.geometry.coords[0],[n,r,h]=o.slice(0,3),c=Math.sqrt((r[0]-n[0])**2+(r[1]-n[1])**2),l=Math.sqrt((h[0]-r[0])**2+(h[1]-r[1])**2),p=[c,l],d=Math.max(...p),u=Math.min(...p),m;d===c?m=[r[0]-n[0],r[1]-n[1]]:m=[h[0]-r[0],h[1]-r[1]];let[g,y]=m,w=Math.atan2(y,g)-Math.PI/2,M=new Ol().compose(new po(i.center_coord_x,i.center_coord_y,(i.deltaHeight||0)+i.airHeight+i.height/2),new Il().setFromAxisAngle(new po(0,0,1),w),new po(u,d,i.height));this.mesh.setMatrixAt(s,M),this.mesh.setColorAt(s,new ir(i.fillColor).convertLinearToSRGB()),t.array[s]=i.fillOpacity||1,e.array[s]=(i.deltaHeight||0)+i.airHeight+i.height}),this.originOpacity=[...t.array],this.geometry.setAttribute("opacity",t),this.geometry.setAttribute("maxZ",e),this.add(this.mesh),this.mesh.instanceMatrix.needsUpdate=!0}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let{points:t,colors:e,opacities:i}=Ys(this.options),s=new Tl().setFromPoints(t);s.setAttribute("color",new or(new Float32Array(e),3)),s.setAttribute("opacity",new or(new Float32Array(i),1)),this.lineOriginOpacity=[...i],this.lineGeometry=s}createBorder(){this.line&&this.remove(this.line);let t=new kl(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}setOpacity(t,e){e===void 0&&(e=!1);let i=this.geometry.getAttribute("opacity");for(let n=0;n<i.count;n++)if(e)i.array[n]=t;else{var s;i.array[n]=Math.min(t,(s=this.originOpacity[n])!=null?s:1)}if(i.needsUpdate=!0,this.lineGeometry){let n=this.lineGeometry.getAttribute("opacity");for(let r=0;r<n.count;r++)if(e)n.array[r]=t;else{var o;n.array[r]=Math.min(t,(o=this.lineOriginOpacity[r])!=null?o:1)}n.needsUpdate=!0}}dispose(){var t,e;this.geometry.dispose(),(t=this.mesh)==null||t.dispose(),(e=this.line)==null||e.geometry.dispose(),this.clear()}constructor(t,e){super(),this.context=t,this.geometry=new Dl(1,1,1),this.options=[],this.originOpacity=[],this.lineOriginOpacity=[],this.options=e.map(i=>x({},Vt,i)),this.init()}};import"core-js/modules/es.typed-array.float32-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import"core-js/modules/web.dom-collections.iterator.js";import{Object3D as Rl,Color as Fl,BoxGeometry as Gl,InstancedMesh as zl,InstancedBufferAttribute as uo}from"three";var Se=class extends Rl{init(){return f(this,null,function*(){this.initMaterial(),this.initMesh()})}initMaterial(){this.material=S.GetInstancedGraphicMaterial()}initMesh(){if(this.mesh&&this.remove(this.mesh),!this.elements)return;this.mesh=new zl(this.geometry,this.material,this.elements.size);let t=new uo(new Float32Array(this.elements.opacities),1),e=new uo(new Float32Array(this.elements.maxZs),1);this.originOpacities=[...t.array],this.geometry.setAttribute("opacity",t),this.geometry.setAttribute("maxZ",e),this.mesh.instanceMatrix.set(this.elements.matrixes),this.mesh.instanceColor=new uo(new Float32Array(this.elements.colors),3),this.add(this.mesh),this.mesh.instanceMatrix.needsUpdate=!0}setColorByIndex(t,e){this.mesh&&(this.mesh.setColorAt(t,new Fl(e).convertLinearToSRGB()),this.mesh.instanceColor.needsUpdate=!0)}setOpacityByIndex(t,e){if(this.mesh){let i=this.geometry.getAttribute("opacity");i.setX(t,e),i.needsUpdate=!0}}setMatrixByIndex(t,e){this.mesh&&(this.mesh.setMatrixAt(t,e),this.mesh.instanceMatrix.needsUpdate=!0)}setMaxZByIndex(t,e){if(this.mesh){let i=this.geometry.getAttribute("maxZ");i.setX(t,e),i.needsUpdate=!0}}setColorById(t,e){if(!this.elements)return;let i=this.elements.ids.findIndex(s=>s===t);i!==-1&&this.setColorByIndex(i,e)}setOpacityById(t,e){if(!this.elements)return;let i=this.elements.ids.findIndex(s=>s===t);i!==-1&&this.setOpacityByIndex(i,e)}setMatrixById(t,e){if(!this.elements)return;let i=this.elements.ids.findIndex(s=>s===t);i!==-1&&this.setMatrixByIndex(i,e)}setMaxZById(t,e){if(!this.elements)return;let i=this.elements.ids.findIndex(s=>s===t);i!==-1&&this.setMaxZByIndex(i,e)}setOpacity(t,e){if(e===void 0&&(e=!1),!this.geometry)return;let i=this.geometry.getAttribute("opacity");for(let o=0;o<i.count;o++)if(e)i.array[o]=t;else{var s;i.array[o]=Math.min(t,(s=this.originOpacities[o])!=null?s:1)}i.needsUpdate=!0}pushElements(t){this.elements?(this.elements.size+=t.size,this.elements.colors=[...this.elements.colors,...t.colors],this.elements.matrixes=[...this.elements.matrixes,...t.matrixes],this.elements.opacities=[...this.elements.opacities,...t.opacities],this.elements.maxZs=[...this.elements.maxZs,...t.maxZs],this.elements.ids=[...this.elements.ids,...t.ids],this.originOpacities=[...this.originOpacities,...t.opacities]):this.elements=t,this.refesh()}removeInstanceById(t){if(this.elements){if(this.mesh){let e=this.elements.ids.indexOf(t);e!==-1&&(this.elements.size--,this.elements.colors.splice(e*3,3),this.elements.matrixes.splice(e*16,16),this.elements.opacities.splice(e,1),this.elements.maxZs.splice(e,1),this.elements.ids.splice(e,1),this.originOpacities.splice(e,1))}this.refesh()}}refesh(){this.mesh&&(this.mesh.dispose(),this.remove(this.mesh)),this.init()}dispose(){var t;this.material=null,this.originOpacities.length=0,this.geometry.dispose(),(t=this.mesh)==null||t.dispose(),this.clear()}constructor(t,e){super(),this.geometry=new Gl(1,1,1),this.material=null,this.elements=null,this.originOpacities=[],this.elements=e,this.init()}};import"core-js/modules/es.typed-array.float32-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import"core-js/modules/web.dom-collections.iterator.js";import{Object3D as Bl,BoxGeometry as Wl,InstancedMesh as Ul,InstancedBufferAttribute as qi}from"three";var $i=class extends Bl{init(){return f(this,null,function*(){this.initMaterial(),this.initMesh()})}initMaterial(){this.material=S.GetInstancedWallMaterial()}initMesh(){if(this.mesh&&this.remove(this.mesh),!this.elements)return;this.mesh=new Ul(this.geometry,this.material,this.elements.size);let t=new qi(new Float32Array(this.elements.opacities),1),e=new qi(new Float32Array(this.elements.maxZs),1),i=new qi(new Float32Array(this.elements.minZs),1);this.originOpacities=[...t.array],this.geometry.setAttribute("opacity",t),this.geometry.setAttribute("maxZ",e),this.geometry.setAttribute("minZ",i),this.mesh.instanceMatrix.set(this.elements.matrixes),this.mesh.instanceColor=new qi(new Float32Array(this.elements.colors),3),this.add(this.mesh),this.mesh.instanceMatrix.needsUpdate=!0}setOpacityByIndex(t,e){if(this.mesh){let i=this.geometry.getAttribute("opacity");i.setX(t,e),i.needsUpdate=!0}}setOpacity(t,e){e===void 0&&(e=!1),this.elements&&this.elements.opacities.forEach((i,s)=>{let o=e?t:Math.min(t,this.originOpacities[s]);this.setOpacityByIndex(s,o)})}dispose(){this.mesh&&(this.mesh.dispose(),this.remove(this.mesh)),this.material=null,this.geometry&&this.geometry.dispose(),this.elements=null}constructor(t,e){super(),this.geometry=new Wl(1,1,1),this.material=null,this.elements=null,this.originOpacities=[],this.elements=e,this.init()}};import{Object3D as Hl,LineSegments as Nl,ObjectLoader as Zl}from"three";var pe=class extends Hl{init(){return f(this,null,function*(){this.initLineGeometry(),this.initLineMaterial(),this.createBorder()})}initLineMaterial(){return this.lineMaterial=S.GetMergeAttributeGraphicLineMaterial()}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.loader.parseGeometries([this.options]);this.lineGeometry=t[this.options.uuid]}createBorder(){this.line&&this.remove(this.line);let t=new Nl(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){var t;(t=this.lineGeometry)==null||t.dispose(),this.lineMaterial=null,this.clear()}constructor(t,e){super(),this.context=t,this.lineMaterial=null,this.loader=new Zl,this.options=x({},Vt,e),this.init()}};import{Frustum as jl}from"three";var Ji=class extends wt{setEnable(t){super.setEnable(t),ht(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:s}}}=this,o=D(this.startPoint,e,i,s),n=D(this.endPoint,e,i,s),r={x:Math.min(o.x,n.x),y:Math.min(o.y,n.y)},h={x:Math.max(o.x,n.x),y:Math.max(o.y,n.y)},c=this.searchMapInFrustum(r,h);this.dispatchEvent({type:"selected",list:c})}}searchMapInFrustum(t,e){var i;let{context:s}=this;return((i=s.currentFloor)==null?void 0:i.graphicLayer.children.filter(o=>o instanceof ot&&this.searchChildInFrustum(o,t,e)))||[]}searchChildInFrustum(t,e,i){let{context:{camera:s,container:{clientWidth:o,clientHeight:n}}}=this;if(!t)return!1;if(!t.mesh){let d=t.getPosition();if(d){let u=D(d,s,o,n);return $t(u,e,i)}return!1}t.mesh.geometry.boundingBox||t.mesh.geometry.computeBoundingBox();let r=t.mesh.geometry.boundingBox;if(!r)return!1;let{min:h,max:c}=r,l=D(h,s,o,n),p=D(c,s,o,n);return!(!$t(l,e,i)||!$t(p,e,i))}dispose(){super.dispose(),this.rect=null,this.unRegistryEvent()}constructor(t){super(t),this.frustum=new jl,this.onPointerDown=s=>{if(!this.enable)return;let o=this.getIntersectByPointerEvent(s);o&&(this.startPoint=o),this.endPoint=void 0},this.onPointerMove=s=>{if(!this.enable||!this.startPoint)return;let o=this.getIntersectByPointerEvent(s);o&&(this.endPoint=o)},this.onPointerUp=s=>{if(!this.enable)return;let o=this.getIntersectByPointerEvent(s);o&&(this.endPoint=o),this.doSelect(),this.startPoint=void 0},this.onUpdate=()=>{if(this.startPoint){let s=this.getSvgCoordinate(this.startPoint),o=x({},s);this.endPoint&&(o=this.getSvgCoordinate(this.endPoint));let n={x:Math.min(s.x,o.x),y:Math.min(s.y,o.y)},r=Math.abs(o.x-s.x),h=Math.abs(o.y-s.y);ht(this.rect,n.x,n.y,r,h)}else ht(this.rect,0,0,0,0)};let{config:{selectBox:{fill:e,stroke:i}}}=t;this.rect=Jt(i,e),this.svg.appendChild(this.rect),this.registryEvent()}};var Qi=class extends Vl{get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.context.config.enableBoxSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}constructor(t){super(),this.context=t,this._list=new Set,this.downPoint=null,this.downTime=0,this.isMultipleSelect=!1,this.onPointerDown=e=>{Date.now()-this.downTime<200||(this.downPoint={x:e.offsetX,y:e.offsetY},this.downTime=Date.now())},this.onPointerUp=e=>{if(!this.downPoint)return;let{offsetX:i,offsetY:s}=e,{x:o,y:n}=this.downPoint;if(Math.sqrt((o-i)**2+(n-s)**2)>3)return;let{graphics:r}=this.context.getGraphicsByDeviceXy(i,s),h=new Set(r.map(l=>l.options.id));this.context.getPoisByDeviceXy(i,s).forEach(l=>{if(!h.has(l.options.id)){var p;let d=((p=this.context.currentFloor)==null?void 0:p.graphicLayer.graphicMap.get(l.options.id))||null;d&&d.options.geometry.type==="point"&&(r.push(d),h.add(l.options.id))}}),(ge?e.metaKey:e.ctrlKey)||this._list.clear(),r.forEach(l=>this._list.add(l)),this.selectEnd(),this.downPoint=null},this.onPointerOut=e=>{this.disableBoxSelection()},this.onKeyDown=e=>{ye(e.key)&&this.enableBoxSelection()},this.onKeyUp=e=>{ye(e.key)&&this.disableBoxSelection()},this.onBoxSelected=e=>{let{list:i}=e;this._list.clear(),i.forEach(s=>{this._list.add(s)}),this.selectEnd()},this.boxSelection=new Ji(t),this.boxSelection.setEnable(!1),this.registryEvent()}};import"core-js/modules/es.set.difference.v2.js";import"core-js/modules/es.set.intersection.v2.js";import"core-js/modules/es.set.is-disjoint-from.v2.js";import"core-js/modules/es.set.is-subset-of.v2.js";import"core-js/modules/es.set.is-superset-of.v2.js";import"core-js/modules/es.set.symmetric-difference.v2.js";import"core-js/modules/es.set.union.v2.js";import"core-js/modules/web.dom-collections.iterator.js";import{EventDispatcher as Kl,Vector2 as Yl}from"three";var ts=class extends Kl{handleHoverGraphicsChange(t){t===void 0&&(t=this.curGraphics),this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel),document.body.addEventListener("pointermove",this.onBodyPointerMove)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel),document.body.removeEventListener("pointermove",this.onBodyPointerMove)}dispose(){this.unRegistryEvent(),this.timer.dispose()}constructor(t){super(),this.context=t,this.curGraphics=new Set,this.timer=new j,this.graphicTimerMap=new Map,this.onPointerMove=e=>{let{graphics:i,pois:s,e:o}=e,n=s.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(!i.length&&!n.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:r}=this.context.config.hover,h=new Set;if(n.length){let l,p=1e4;n.forEach(d=>{let u=s.find(m=>m.options.id===d.options.id);if(u instanceof he){let{x:m,y:g}=u.clientPos,y=Math.sqrt((m-o.offsetX)**2+(g-o.offsetY)**2);y<p&&(p=y,l=d)}else if(u instanceof J){let{x:m,y:g}=u.box.getCenter(new Yl),y=Math.sqrt((m-o.offsetX)**2+(g-o.offsetY)**2);y<p&&(p=y,l=d)}}),h.add(l)}h.size||i.forEach(l=>h.add(l)),h.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)=>{h.has(p)||(this.timer.clearTimeout(l),this.graphicTimerMap.delete(p))});let c=this.curGraphics.size;this.curGraphics.forEach(l=>{h.has(l)||this.curGraphics.delete(l)}),c!==this.curGraphics.size&&this.handleHoverGraphicsChange()},this.onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()},this.onBodyPointerMove=e=>{if(this.curGraphics.size){let i=this.context.container.getBoundingClientRect();(e.clientX<i.left||e.clientX>i.right||e.clientY<i.top||e.clientY>i.bottom)&&this.onPointerLevel()}},this.registryEvent()}};import"core-js/modules/web.dom-collections.iterator.js";import{Box3 as Xl,Vector3 as Ot}from"three";import{polygon as nr,intersect as ql}from"@turf/turf";var es=class{updateBox(){this.box.setFromObject(this.context.scene)}setEnable(t){this.enable=t,t?this.registryEvent():this.unRegistryEvent()}changePrevCamera(){this.prevCamera={position:this.context.camera.position.clone(),zoom:this.context.camera.zoom,target:this.context.control.target.clone()}}backToPrevCamera(){this.setEnable(!1),this.context.camera.position.copy(this.prevCamera.position),this.context.camera.zoom=this.prevCamera.zoom,this.context.control.target.copy(this.prevCamera.target),this.context.control.update(),this.setEnable(!0)}registryEvent(){this.context.addEventListener("control-change",this.onCameraChange)}unRegistryEvent(){this.context.removeEventListener("control-change",this.onCameraChange)}getCurFloorScreenPosition(){if(!this.context.scene.children.filter(m=>m instanceof At).length)return null;let e=this.box,{camera:i,clientSize:{width:s,height:o}}=this.context,{min:n,max:r}=e,c=[new Ot(n.x,n.y,n.z),new Ot(r.x,n.y,n.z),new Ot(n.x,r.y,n.z),new Ot(r.x,r.y,n.z),new Ot(n.x,n.y,r.z),new Ot(r.x,n.y,r.z),new Ot(n.x,r.y,r.z),new Ot(r.x,r.y,r.z)].map(m=>D(m,i,s,o)),l=Math.min(...c.map(m=>m.x)),p=Math.max(...c.map(m=>m.x)),d=Math.min(...c.map(m=>m.y)),u=Math.max(...c.map(m=>m.y));return{left:l,right:p,top:d,bottom:u}}checkDistanceToScreenEdge(t){let{left:e,right:i,top:s,bottom:o}=t,{width:n,height:r}=this.context.clientSize,[h,c,l,p]=this.context.config.cameraBound.padding,d=nr([[[e,s],[i,s],[i,o],[e,o],[e,s]]]),u=nr([[[p,h],[n-c,h],[n-c,r-l],[p,r-l],[p,h]]]);try{return ql(d,u)!==null}catch(m){return console.warn("\u8BA1\u7B97\u4EA4\u96C6\u51FA\u9519:",m),!1}}dispose(){this.unRegistryEvent()}constructor(t){this.context=t,this.prevCamera={position:new Ot,zoom:1,target:new Ot},this.enable=!0,this.box=new Xl,this.onCameraChange=()=>{let e=this.getCurFloorScreenPosition();if(e){let{left:i,right:s,top:o,bottom:n}=e;this.checkDistanceToScreenEdge({left:i,right:s,top:o,bottom:n})?this.changePrevCamera():this.backToPrevCamera()}},this.registryEvent(),this.changePrevCamera()}};import"core-js/modules/es.promise.finally.js";import{Vector3 as hr}from"three";import{Tween as ns,Group as ip}from"@tweenjs/tween.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.array.push.js";import{EventDispatcher as $l,MOUSE as ke,Quaternion as rr,Spherical as is,TOUCH as De,Vector2 as mt,Vector3 as Mt,Plane as Jl,Ray as Ql,MathUtils as tp}from"three";var ss=new Ql,ar=new Jl,ep=Math.cos(70*tp.DEG2RAD),os=class extends $l{dispose(){this.domElement.removeEventListener("contextmenu",this.onContextMenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("pointercancel",this.onPointerUp),this.domElement.removeEventListener("wheel",this.onMouseWheel),this.domElement.removeEventListener("pointermove",this.onPointerMove),this.domElement.removeEventListener("pointerup",this.onPointerUp),this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null)}constructor(t,e){super(),this.rotateLineStart=new mt,this.rotateLineEnd=new mt,this.spherical=new is,this.sphericalDelta=new is,this.object=t,this.domElement=e,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new Mt,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.screenSpacePanning=!1,this.mouseButtons={LEFT:ke.PAN,MIDDLE:ke.DOLLY,RIGHT:ke.ROTATE},this.touches={ONE:De.PAN,TWO:De.DOLLY_ROTATE},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return r.phi},this.getAzimuthalAngle=function(){return r.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(v){v.addEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=v},this.stopListenToKeyEvents=function(){var v;(v=this._domElementKeyEvents)==null||v.removeEventListener("keydown",this.onKeyDown),this._domElementKeyEvents=null},this.saveState=function(){i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=function(){i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent({type:"change"}),i.update(),o=s.NONE},this.update=function(){let v=new Mt,_=new rr().setFromUnitVectors(t.up,new Mt(0,1,0)),U=_.clone().invert(),$=new Mt,ut=new rr,Tt=new Mt,_t=2*Math.PI;return function(Ge){Ge===void 0&&(Ge=null);let Ft=i.object.position;v.copy(Ft).sub(i.target),v.applyQuaternion(_),r.setFromVector3(v),i.autoRotate&&o===s.NONE&&E(T(Ge)),i.enableDamping?(r.theta+=h.theta*i.dampingFactor,r.phi+=h.phi*i.dampingFactor):(r.theta+=h.theta,r.phi+=h.phi);let Gt=i.minAzimuthAngle,zt=i.maxAzimuthAngle;isFinite(Gt)&&isFinite(zt)&&(Gt<-Math.PI?Gt+=_t:Gt>Math.PI&&(Gt-=_t),zt<-Math.PI?zt+=_t:zt>Math.PI&&(zt-=_t),Gt<=zt?r.theta=Math.max(Gt,Math.min(zt,r.theta)):r.theta=r.theta>(Gt+zt)/2?Math.max(Gt,r.theta):Math.min(zt,r.theta)),r.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,r.phi)),r.makeSafe(),i.enableDamping===!0?i.target.addScaledVector(l,i.dampingFactor):i.target.add(l),i.zoomToCursor&&H||i.object.isOrthographicCamera?r.radius=W(r.radius):r.radius=W(r.radius*c),v.setFromSpherical(r),v.applyQuaternion(U),Ft.copy(i.target).add(v),i.object.lookAt(i.target),i.enableDamping===!0?(h.theta*=1-i.dampingFactor,h.phi*=1-i.dampingFactor,l.multiplyScalar(1-i.dampingFactor)):(h.set(0,0,0),l.set(0,0,0));let ni=!1;if(i.zoomToCursor&&H){let ze=null;if(i.object.isPerspectiveCamera){let Be=v.length();ze=W(Be*c);let ri=Be-ze;i.object.position.addScaledVector(L,ri),i.object.updateMatrixWorld()}else if(i.object.isOrthographicCamera){let Be=new Mt(C.x,C.y,0);Be.unproject(i.object),i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/c)),i.object.updateProjectionMatrix(),ni=!0;let ri=new Mt(C.x,C.y,0);ri.unproject(i.object),i.object.position.sub(ri).add(Be),i.object.updateMatrixWorld(),ze=v.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),i.zoomToCursor=!1;ze!==null&&(i.screenSpacePanning?i.target.set(0,0,-1).transformDirection(i.object.matrix).multiplyScalar(ze).add(i.object.position):(ss.origin.copy(i.object.position),ss.direction.set(0,0,-1).transformDirection(i.object.matrix),Math.abs(i.object.up.dot(ss.direction))<ep?t.lookAt(i.target):(ar.setFromNormalAndCoplanarPoint(i.object.up,i.target),ss.intersectPlane(ar,i.target))))}else i.object.isOrthographicCamera&&(i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/c)),i.object.updateProjectionMatrix(),ni=!0);return c=1,H=!1,ni||$.distanceToSquared(i.object.position)>n||8*(1-ut.dot(i.object.quaternion))>n||Tt.distanceToSquared(i.target)>0?(i.dispatchEvent({type:"change"}),$.copy(i.object.position),ut.copy(i.object.quaternion),Tt.copy(i.target),ni=!1,!0):!1}}();let i=this,s={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},o=s.NONE,n=1e-6,r=new is,h=new is,c=1,l=new Mt,p=new mt,d=new mt,u=new mt,m=new mt,g=new mt,y=new mt,w=new mt,M=new mt,P=new mt,L=new Mt,C=new mt,H=!1,b=[],Z={};function T(v){return v!==null?2*Math.PI/60*i.autoRotateSpeed*v:2*Math.PI/60/60*i.autoRotateSpeed}function k(){return Math.pow(.95,i.zoomSpeed)}function E(v){h.theta-=v}function G(v){h.phi-=v}let V=function(){let v=new Mt;return function(U,$){v.setFromMatrixColumn($,0),v.multiplyScalar(-U),l.add(v)}}(),B=function(){let v=new Mt;return function(U,$){i.screenSpacePanning===!0?v.setFromMatrixColumn($,1):(v.setFromMatrixColumn($,0),v.crossVectors(i.object.up,v)),v.multiplyScalar(U),l.add(v)}}(),R=function(){let v=new Mt;return function(U,$){let ut=i.domElement;if(i.object.isPerspectiveCamera){let Tt=i.object.position;v.copy(Tt).sub(i.target);let _t=v.length();_t*=Math.tan(i.object.fov/2*Math.PI/180),V(2*U*_t/ut.clientHeight,i.object.matrix),B(2*$*_t/ut.clientHeight,i.object.matrix)}else i.object.isOrthographicCamera?(V(U*(i.object.right-i.object.left)/i.object.zoom/ut.clientWidth,i.object.matrix),B($*(i.object.top-i.object.bottom)/i.object.zoom/ut.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}}();function It(v){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c/=v:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function Xt(v){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c*=v:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function z(v){if(!i.zoomToCursor)return;H=!0;let _=i.domElement.getBoundingClientRect(),U=v.clientX-_.left,$=v.clientY-_.top,ut=_.width,Tt=_.height;C.x=U/ut*2-1,C.y=-($/Tt)*2+1,L.set(C.x,C.y,1).unproject(i.object).sub(i.object.position).normalize()}function W(v){return Math.max(i.minDistance,Math.min(i.maxDistance,v))}function q(v){p.set(v.clientX,v.clientY)}function K(v){z(v),w.set(v.clientX,v.clientY)}function Lt(v){m.set(v.clientX,v.clientY)}function Ct(v){d.set(v.clientX,v.clientY),u.subVectors(d,p).multiplyScalar(i.rotateSpeed);let _=i.domElement;E(2*Math.PI*u.x/_.clientHeight),G(2*Math.PI*u.y/_.clientHeight),p.copy(d),i.update()}function qt(v){M.set(v.clientX,v.clientY),P.subVectors(M,w),P.y>0?It(k()):P.y<0&&Xt(k()),w.copy(M),i.update()}function Rt(v){g.set(v.clientX,v.clientY),y.subVectors(g,m).multiplyScalar(i.panSpeed),R(y.x,y.y),m.copy(g),i.update()}function Fe(v){z(v),v.deltaY<0?Xt(k()):v.deltaY>0&&It(k()),i.update()}function Kr(v){let _=!1;switch(v.code){case i.keys.UP:v.ctrlKey||v.metaKey||v.shiftKey?G(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):R(0,i.keyPanSpeed),_=!0;break;case i.keys.BOTTOM:v.ctrlKey||v.metaKey||v.shiftKey?G(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):R(0,-i.keyPanSpeed),_=!0;break;case i.keys.LEFT:v.ctrlKey||v.metaKey||v.shiftKey?E(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):R(i.keyPanSpeed,0),_=!0;break;case i.keys.RIGHT:v.ctrlKey||v.metaKey||v.shiftKey?E(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):R(-i.keyPanSpeed,0),_=!0;break}_&&(v.preventDefault(),i.update())}function Co(){if(b.length===1)p.set(b[0].pageX,b[0].pageY);else{let v=(b[0].pageX-b[0].pageY)/(b[1].pageX-b[1].pageY),_=b[0].pageY-v*b[0].pageX;i.rotateLineStart.set(v,_);let U=.5*(b[0].pageX+b[1].pageX),$=.5*(b[0].pageY+b[1].pageY);p.set(U,$)}}function To(){if(b.length===1)m.set(b[0].pageX,b[0].pageY);else{let v=.5*(b[0].pageX+b[1].pageX),_=.5*(b[0].pageY+b[1].pageY);m.set(v,_)}}function ko(){let v=b[0].pageX-b[1].pageX,_=b[0].pageY-b[1].pageY,U=Math.sqrt(v*v+_*_);w.set(0,U)}function Yr(){i.enableZoom&&ko(),i.enablePan&&To()}function Xr(){i.enableZoom&&ko(),i.enableRotate&&Co()}function Do(v){if(b.length==1)d.set(v.pageX,v.pageY);else{let U=Os(v),$=.5*(v.pageX+U.x),ut=.5*(v.pageY+U.y);d.set($,ut);let Tt=(v.pageY-U.y)/(v.pageX-U.x),_t=U.y-Tt*U.x;if(i.rotateLineEnd.set(Tt,_t),Number.isFinite(i.rotateLineEnd.x)&&Number.isFinite(i.rotateLineStart.x)){let Is=(i.rotateLineStart.y-i.rotateLineEnd.y)/(i.rotateLineEnd.x-i.rotateLineStart.x),Ge=Tt*Is+_t;if(Number.isFinite(Is)&&Number.isFinite(Ge)){let Ft=Math.atan(i.rotateLineEnd.x)-Math.atan(i.rotateLineStart.x);Math.PI-Math.abs(Ft)<.5&&(Ft=-Math.sign(Ft)*(Math.PI-Math.abs(Ft))),Math.abs(Ft)<.1&&(h.theta+=Ft)}}i.rotateLineStart.copy(i.rotateLineEnd)}u.subVectors(d,p).multiplyScalar(i.rotateSpeed);let _=i.domElement;G(2*Math.PI*u.y/_.clientHeight),p.copy(d)}function Ao(v){if(b.length===1)g.set(v.pageX,v.pageY);else{let _=Os(v),U=.5*(v.pageX+_.x),$=.5*(v.pageY+_.y);g.set(U,$)}y.subVectors(g,m).multiplyScalar(i.panSpeed),R(y.x,y.y),m.copy(g)}function Oo(v){let _=Os(v),U=v.pageX-_.x,$=v.pageY-_.y,ut=Math.sqrt(U*U+$*$);M.set(0,ut),P.set(0,Math.pow(M.y/w.y,i.zoomSpeed)),It(P.y),w.copy(M)}function qr(v){i.enableZoom&&Oo(v),i.enablePan&&Ao(v)}function $r(v){i.enableZoom&&Oo(v),i.enableRotate&&Do(v)}this.onPointerDown=function(_){i.enabled!==!1&&(b.length===0&&(i.domElement.setPointerCapture(_.pointerId),i.domElement.addEventListener("pointermove",i.onPointerMove),i.domElement.addEventListener("pointerup",i.onPointerUp)),ia(_),_.pointerType==="touch"?ta(_):Jr(_))},this.onPointerMove=function(_){i.enabled!==!1&&(_.pointerType==="touch"?ea(_):Qr(_))},this.onPointerUp=function(_){sa(_),b.length===0&&(i.domElement.releasePointerCapture(_.pointerId),i.domElement.removeEventListener("pointermove",i.onPointerMove),i.domElement.removeEventListener("pointerup",i.onPointerUp)),i.dispatchEvent({type:"end"}),o=s.NONE};function Jr(v){let _;switch(v.button){case 0:_=i.mouseButtons.LEFT;break;case 1:_=i.mouseButtons.MIDDLE;break;case 2:_=i.mouseButtons.RIGHT;break;default:_=-1}switch(_){case ke.DOLLY:if(i.enableZoom===!1)return;K(v),o=s.DOLLY;break;case ke.ROTATE:if(v.ctrlKey||v.metaKey||v.shiftKey){if(i.enablePan===!1)return;Lt(v),o=s.PAN}else{if(i.enableRotate===!1)return;q(v),o=s.ROTATE}break;case ke.PAN:if(v.ctrlKey||v.metaKey||v.shiftKey){if(i.enableRotate===!1)return;q(v),o=s.ROTATE}else{if(i.enablePan===!1)return;Lt(v),o=s.PAN}break;default:o=s.NONE}o!==s.NONE&&i.dispatchEvent({type:"start"})}function Qr(v){switch(o){case s.ROTATE:if(i.enableRotate===!1)return;Ct(v);break;case s.DOLLY:if(i.enableZoom===!1)return;qt(v);break;case s.PAN:if(i.enablePan===!1)return;Rt(v);break}}this.onMouseWheel=function(_){i.enabled===!1||i.enableZoom===!1||o!==s.NONE||(_.preventDefault(),i.dispatchEvent({type:"start"}),Fe(_),i.dispatchEvent({type:"end"}))},this.onKeyDown=function(_){i.enabled===!1||i.enablePan===!1||Kr(_)};function ta(v){switch(Io(v),b.length){case 1:switch(i.touches.ONE){case De.ROTATE:if(i.enableRotate===!1)return;Co(),o=s.TOUCH_ROTATE;break;case De.PAN:if(i.enablePan===!1)return;To(),o=s.TOUCH_PAN;break;default:o=s.NONE}break;case 2:switch(i.touches.TWO){case De.DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;Yr(),o=s.TOUCH_DOLLY_PAN;break;case De.DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;Xr(),o=s.TOUCH_DOLLY_ROTATE;break;default:o=s.NONE}break;default:o=s.NONE}o!==s.NONE&&i.dispatchEvent({type:"start"})}function ea(v){switch(Io(v),o){case s.TOUCH_ROTATE:if(i.enableRotate===!1)return;Do(v),i.update();break;case s.TOUCH_PAN:if(i.enablePan===!1)return;Ao(v),i.update();break;case s.TOUCH_DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;qr(v),i.update();break;case s.TOUCH_DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;$r(v),i.update();break;default:o=s.NONE}}this.onContextMenu=function(_){i.enabled!==!1&&_.preventDefault()};function ia(v){b.push(v)}function sa(v){delete Z[v.pointerId];for(let _=0;_<b.length;_++)if(b[_].pointerId==v.pointerId){b.splice(_,1);return}}function Io(v){let _=Z[v.pointerId];_===void 0&&(_=new mt,Z[v.pointerId]=_),_.set(v.pageX,v.pageY)}function Os(v){let _=v.pointerId===b[0].pointerId?b[1]:b[0];return Z[_.pointerId]}i.domElement.addEventListener("contextmenu",this.onContextMenu),i.domElement.addEventListener("pointerdown",this.onPointerDown),i.domElement.addEventListener("pointercancel",this.onPointerUp),i.domElement.addEventListener("wheel",this.onMouseWheel,{passive:!1}),this.update()}};var rs=class extends os{registryEvent(){this.addEventListener("change",this.onChange),this.context.addEventListener("update",this.tweenUpdate)}unRegistryEvent(){this.removeEventListener("change",this.onChange),this.context.removeEventListener("update",this.tweenUpdate)}setPolarAngle(t,e){e===void 0&&(e=!1);let{maxPolarAngle:i,minPolarAngle:s}=this,o=i===s;(e||t<=i&&t>=s)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),o||(this.maxPolarAngle=i,this.minPolarAngle=s)}setPolarAngleByDuration(t,e,i){return f(this,null,function*(){return e===void 0&&(e=!1),i===void 0&&(i=500),i<=0?this.setPolarAngle(t,e):yt(new Promise(s=>{let o={polar:this.getPolarAngle()},n={polar:t},r=new ns(o,this.tweenGroup).to(n,i).onUpdate(()=>{this.setPolarAngle(o.polar,e)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(r),s(!0)}).onStart(()=>{this.enabled=!1}).start()}),i+500)})}setAzimuthalAngle(t,e){let{maxAzimuthAngle:i,minAzimuthAngle:s}=this,o=i===s;(e||t<=i&&t>=s)&&(this.maxAzimuthAngle=t,this.minAzimuthAngle=t,this.update()),o||(this.maxAzimuthAngle=i,this.minAzimuthAngle=s)}setAzimuthalAngleDuration(t,e,i){return e===void 0&&(e=!1),i===void 0&&(i=500),i<=0?this.setAzimuthalAngle(t,e):yt(new Promise(s=>{let o={azimuthal:this.getAzimuthalAngle()},n={azimuthal:t},r=new ns(o,this.tweenGroup).to(n,i).onUpdate(()=>{this.setAzimuthalAngle(o.azimuthal,e)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(r),s(!0)}).onStart(()=>{this.enabled=!1}).start()}),i+500)}getCameraLookAt(){return new hr().subVectors(this.target,this.camera.position)}setCameraPositionByTarget(t,e){return f(this,null,function*(){let i=this.target.clone(),s=this.getCameraLookAt();if(!e){this.camera.position.copy(t.clone().sub(s)),this.target.copy(t.clone()),this.update();return}return yt(new Promise(o=>{let n=new ns(i,this.tweenGroup).to(t,e).onUpdate(()=>{this.camera.position.copy(i.clone().sub(s)),this.target.copy(i.clone()),this.update()}).onComplete(()=>{this.tweenGroup.remove(n),this.enabled=!0,o(!0)}).onStart(()=>{this.enabled=!1}).start()}),e+500)})}setZoom(t,e,i){i===void 0&&(i=!1);let{minZoom:s,maxZoom:o}=this;(i||t>=s&&t<=o)&&(this.camera.position.copy(e.clone().sub(this.getCameraLookAt())),this.target.copy(e),this.camera.zoom=t,this.update())}setZoomByDuration(t,e,i,s){return f(this,null,function*(){i===void 0&&(i=!1),s===void 0&&(s=500);let o={zoom:this.camera.zoom,target:this.target.clone()};if(t!==this.camera.zoom)return s?yt(new Promise(n=>{let r=new ns(o,this.tweenGroup).to({zoom:t,target:e},s).onUpdate(()=>{this.setZoom(o.zoom,o.target,i)}).onComplete(()=>{this.tweenGroup.remove(r),this.enabled=!0,n(!0)}).onStart(()=>{this.enabled=!1}).start()}),s+500).finally(()=>{this.enabled=!0}):this.setZoom(t,e,i)})}setTargetByOffset(t,e){if(e===void 0&&(e=this.target.clone()),this.camera.updateMatrix(),t){let i=new hr;i.setFromMatrixColumn(this.camera.matrix,1),i.normalize(),i.multiplyScalar(t/this.camera.zoom),e.add(i)}this.setCameraPositionByTarget(e,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){super.dispose(),this.unRegistryEvent(),this.clearTween()}constructor(t,e,i){super(e,i),this.context=t,this.camera=e,this.domElement=i,this.prevCameraZoom=1,this.tweenGroup=new ip,this.offsetY=0,this.onChange=()=>{let s=this.camera.zoom;s!==this.prevCameraZoom&&(this.prevCameraZoom=s,this.dispatchEvent({type:"change-zoom",zoom:s}))},this.tweenUpdate=()=>{this.tweenGroup.update()},this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=e.zoom,this.registryEvent()}};import{EventDispatcher as sp,WebGLRenderer as op,LinearToneMapping as np}from"three";var as=class extends op{setCameraAndScene(t,e){this.scene=t,this.camera=e}autoRender(){if(this.scene&&this.camera&&this.enable&&(this.event.dispatchEvent({type:"update"}),this.render(this.scene,this.camera)),this.context.config.renderAnimation==="requestAnimationFrame")this.timer.requestAnimationFrame(()=>{this.autoRender()});else{let t=1e3/this.context.config.fps;this.timer.setTimeout(()=>{this.autoRender()},t)}}pauseRender(){this.enable=!1}continueRender(){this.enable=!0}addEventListener(t,e){this.event.addEventListener(t,e)}removeEventListener(t,e){this.event.removeEventListener(t,e)}constructor(t,e){super(x({antialias:!0,alpha:!0},e)),this.context=t,this.event=new sp,this.enable=!0,this.timer=new j,this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.toneMapping=np,this.toneMappingExposure=1;let i=this.dispose;this.dispose=()=>{this.timer.dispose(),this.enable=!1,i.call(this),this.domElement.remove(),this.domElement=null,this.shadowMap=null,this.info.programs&&(this.info.programs.length=0),this.info=null}}};import{Scene as hp}from"three";import{PMREMGenerator as rp}from"three";import{RoomEnvironment as ap}from"three/examples/jsm/environments/RoomEnvironment.js";function cr(a,t){t===void 0&&(t=.85);let e=new rp(a);return e.compileEquirectangularShader(),e.fromScene(new ap).texture}var hs=class extends hp{dispose(){var t;(t=this.environment)==null||t.dispose(),this.environment=null,I(this),this.clear()}constructor(t){super(),this.environment=cr(t)}};import{OrthographicCamera as cp}from"three";var cs=class extends cp{constructor(t,e){super(-t/2,t/2,e/2,-e/2,-1e4,5e4),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};import{polygon as lr}from"@turf/turf";import"core-js/modules/es.array.unshift.js";import"core-js/modules/es.array.push.js";import{Vector3 as lp}from"three";var ls=class{registryEvent(){this.context.addEventListener("update",this.onUpdate),this.context.addEventListener("control-change",this.onControlChange),this.context.addEventListener("resize",this.onControlChange)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate),this.context.removeEventListener("control-change",this.onControlChange),this.context.removeEventListener("resize",this.onControlChange)}changePoiLevelOrCollisionEnable(t){let e=this.objects.findIndex(i=>i===t);e!==-1&&(this.objects.splice(e,1),this.addObject(t))}addObject(t){if(!this.objects.includes(t)){if(this.needsUpdate=!0,!t.options.collision_enable){this.objects.unshift(t);return}if(t.options.level===0){this.objects.push(t);return}for(let e=0;e<this.objects.length;e++){let i=this.objects[e];if(i.options.collision_enable&&i.options.level<=t.options.level){this.objects.splice(e,0,t);return}}this.objects.push(t)}}removeObject(t){let e=this.objects.indexOf(t);e!==-1&&(this.objects.splice(e,1),this.needsUpdate=!0)}removeObjects(t){this.objects=this.objects.filter(e=>!t.includes(e)),this.needsUpdate=!0}getObjectById(t){return this.objects.find(e=>e.options.id===t)||null}validShowParkingSpace(t){t===void 0&&(t=60);let{clientSize:{width:e,height:i},control:s,camera:o}=this.context,n=Math.min(e/t,i/t,s.maxZoom-1);return o.zoom>=n}detectCollisions(){if(!this.needsUpdate)return;let t=[],{camera:e}=this.context;e.updateMatrixWorld();let i=l=>l<=1&&l>=-1,s=e.projectionMatrix.clone();s.multiply(e.matrixWorldInverse);let o=e.zoom/this.context.basicZoom,n=25/30,r=Math.min(25,Math.max(1,o*n)),h=this.validShowParkingSpace();this.objects.filter(l=>{if(l.visible){if(!(r<=l.options.maxWeight&&r>=l.options.minWeight)||!h&&l.userData.type==="parkingSpace")return l.parentSetVisible(!1),!1;let p=l.getWorldPosition(new lp);return p.applyMatrix4(s),l.screenPosition=p,i(p.x)&&i(p.y)&&i(p.z)?!0:(l.parentSetVisible(!1),!1)}return!1}).forEach((l,p)=>{let d=l.getBox(l.screenPosition);if(d===null){l.parentSetVisible(!1);return}if(p===0||!l.options.collision_enable){t.push(d),l.parentSetVisible(!0);return}let u=t.some(m=>m.intersectsBox(d));l.parentSetVisible(!u),u||t.push(d)}),this.needsUpdate=!1}markForUpdate(){this.needsUpdate=!0}clear(){this.objects=[],this.needsUpdate=!0}dispose(){this.objects=[],this.unRegistryEvent()}constructor(t){this.context=t,this.objects=[],this.needsUpdate=!0,this.onUpdate=()=>{this.detectCollisions()},this.onControlChange=()=>{this.needsUpdate=!0},this.registryEvent()}};var ps=class extends pp{get config(){return this.bmap.config}get center(){return this.bmap.buildingCenter}setRange(t){this.range=lr([t])}resizeClientSize(){let{x:t,y:e,width:i,height:s}=this.container.getBoundingClientRect();this.clientSize={width:i||this.container.clientWidth,height:s||this.container.clientHeight,x:t,y:e}}init(){let{clientWidth:t,clientHeight:e}=this.container;this.camera=new cs(t,e),this.renderer.setSize(t,e),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new rs(this,this.camera,this.renderer.domElement),this.control.maxPolarAngle=this.config.control.maxPolar,this.container.appendChild(this.renderer.domElement),this.scene.add(this.lights),this.basicRatio=this.getRatio(),this.control.addEventListener("change",this.onControlChange),this.control.addEventListener("change-zoom",this.onControlChangeZoom),this.renderer.addEventListener("update",this.onRendererUpdate),this.cameraBound=new es(this)}getRatio(t,e){t===void 0&&(t=new Kt(0,0,0)),e===void 0&&(e=new Kt(100,0,0));let{clientWidth:i,clientHeight:s}=this.container,o=D(t,this.camera,i,s),n=D(e,this.camera,i,s);return Math.ceil(Math.sqrt((n.x-o.x)**2+(n.y-o.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(e=>{e instanceof gp&&(e.color=new fp(t))})}switchFloor(t,e){e===void 0&&(e=!0),console.log("switchFloor",e),this.currentFloor&&(this.scene.remove(this.currentFloor),e?this.currentFloor.dispose():this.currentFloor.onRemoveFromScene()),this.currentFloor=t,this.setRange(t.userData.range||[]),this.scene.add(t),t.onAddToScene("scene"),this.cameraBound.updateBox()}getGraphicsByDeviceXy(t,e){var i;let s=new Ae;s.x=t/this.clientSize.width*2-1,s.y=e/this.clientSize.height*-2+1;let o=new up;return o.setFromCamera(s,this.camera),o.ray.origin.sub(o.ray.direction.clone().multiplyScalar(100)),((i=this.currentFloor)==null?void 0:i.graphicLayer.getGraphicByRaycaster(o))||{graphics:[],position:null}}getPoisByDeviceXy(t,e){var i,s;let o=(i=this.currentFloor)==null?void 0:i.poiLayer.getPoiByDeviceXy(t,e),n=(s=this.currentFloor)==null?void 0:s.poiLayer2.getPoiByDeviceXy(t,e);return(o||[]).concat(n||[])}registryEvent(){window.addEventListener("resize",this.onWindowResize),this.container.addEventListener("click",this.onClick),this.container.addEventListener("pointerover",this.onPointerover),this.container.addEventListener("pointermove",this.onPointermove),this.container.addEventListener("pointerleave",this.onPointerleave),this.container.addEventListener("pointercancel",this.onPointerleave),this.container.addEventListener("pointerout",this.onPointerleave),this.selection.addEventListener("select",this.onSelectionSelect),this.hoverHelper.addEventListener("hover-change",this.onHoverChange)}unRegistryEvent(){window.removeEventListener("resize",this.onWindowResize),this.container.removeEventListener("click",this.onClick),this.container.removeEventListener("pointerover",this.onPointerover),this.container.removeEventListener("pointermove",this.onPointermove),this.container.removeEventListener("pointerleave",this.onPointerleave),this.container.removeEventListener("pointercancel",this.onPointerleave),this.container.removeEventListener("pointerout",this.onPointerleave),this.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange),this.control.removeEventListener("change",this.onControlChange),this.control.removeEventListener("change-zoom",this.onControlChangeZoom),this.renderer.removeEventListener("update",this.onRendererUpdate)}setPolarAngle(t,e){return e===void 0&&(e=500),this.control.setPolarAngleByDuration(t,!0,e)}setAzimuthalAngle(t,e){return e===void 0&&(e=500),this.control.setAzimuthalAngleDuration(t,!0,e)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,e,i){return i===void 0&&(i=500),this.control.setZoomByDuration(t,e,!0,i)}getFitCameraToObjectZoom(t,e,i){return e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=!0),this.getFitCameraToBoxZoom(new mp().setFromObject(t),e,i)}getFitCameraToBoxZoom(t,e,i){e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=!0);let[s,o,n,r]=e,{clientSize:{width:h,height:c}}=this,l=this.control.getPolarAngle();i&&this.setPolarAngle(0,0),this.setPolarAngle(l,0);let{max:p,min:d}=t,u=new Kt(d.x,p.y,p.z),m=new Kt(p.x,p.y,p.z),g=new Kt(p.x,d.y,d.z),y=new Kt(d.x,d.y,d.z),w=D(u,this.camera,h,c),M=D(m,this.camera,h,c),P=D(y,this.camera,h,c),L=D(g,this.camera,h,c),H=new dp().setFromPoints([new Ae(w.x,w.y),new Ae(M.x,M.y),new Ae(P.x,P.y),new Ae(L.x,L.y)]).getSize(new Ae),b=(h-o-r)/H.x,Z=(c-s-n)/H.y,T=Math.min(b,Z),k=new Kt((p.x+d.x)/2,(p.y+d.y)/2,(p.z+d.z)/2),E=T*this.camera.zoom,G=this.camera.clone();G.zoom=E,G.updateMatrix();let V=(o-r)/2,B=(s-n)/2;if(V){let R=new Kt;R.setFromMatrixColumn(G.matrix,0),R.normalize(),R.multiplyScalar(V/E),k.add(R)}if(B){let R=new Kt;R.setFromMatrixColumn(G.matrix,1),R.normalize(),R.multiplyScalar(B/E),k.add(R)}return{zoom:T*this.camera.zoom,center:k}}fitCameraToObject(t,e,i,s){e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=500),s===void 0&&(s=!0);let{zoom:o,center:n}=this.getFitCameraToObjectZoom(t,e,s);return this.setZoom(o,n,i)}fitCameraToBox(t,e,i,s){e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=500),s===void 0&&(s=!0);let{zoom:o,center:n}=this.getFitCameraToBoxZoom(t,e,s);return this.setZoom(o,n,i)}getFitCameraToGroundZoom(t,e,i){if(t===void 0&&(t=[20,20,20,20]),e===void 0&&(e=500),i===void 0&&(i=!0),this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,i).zoom}fitCameraToGround(t,e,i){return t===void 0&&(t=[20,20,20,20]),e===void 0&&(e=500),i===void 0&&(i=!0),this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundLayer,t,e,i):Promise.resolve(!1)}setCameraPosition(t,e){return f(this,null,function*(){return this.control.setCameraPositionByTarget(t,e)})}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}forceUpdate(){this.collisionSystem.needsUpdate=!0}dispose(){var t;this.collisionSystem.dispose(),(t=this.currentFloor)==null||t.dispose(),this.control.dispose(),this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.unRegistryEvent(),this.renderer.dispose(),this.lights.children.forEach(e=>e.dispose()),this.scene.dispose(),this.container=null,this.renderer=null}constructor(t,e){super(),this.container=t,this.lights=zo(),this.range=lr([]),this.clientSize={width:0,height:0,x:0,y:0},this.renderRf=0,this.basicZoom=1,this.onControlChange=()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})},this.onControlChangeZoom=i=>{let{zoom:s}=i;this.dispatchEvent({type:"control-zoom-change",zoom:s})},this.onRendererUpdate=()=>{this.dispatchEvent({type:"update"})},this.onWindowResize=()=>{let{container:i,camera:s,renderer:o}=this,{clientWidth:n,clientHeight:r}=i;n=Math.max(1,n),r=Math.max(1,r),s.left=-n/2,s.right=n/2,s.top=r/2,s.bottom=-r/2,s.updateProjectionMatrix(),o.setSize(n,r),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:n,height:r})},this.onClick=i=>{let{graphics:s,position:o}=this.getGraphicsByDeviceXy(i.offsetX,i.offsetY);s.length&&this.dispatchEvent({type:"graphic-click",graphics:s,position:o});let n=this.getPoisByDeviceXy(i.offsetX,i.offsetY);n.length&&this.dispatchEvent({type:"poi-click",pois:n})},this.onPointerover=i=>{let{graphics:s,position:o}=this.getGraphicsByDeviceXy(i.offsetX,i.offsetY),n=this.getPoisByDeviceXy(i.offsetX,i.offsetY);this.dispatchEvent({type:"pointer-over",e:i,graphics:s,pois:n,position:o})},this.onPointermove=i=>{let{graphics:s,position:o}=this.getGraphicsByDeviceXy(i.offsetX,i.offsetY),n=this.getPoisByDeviceXy(i.offsetX,i.offsetY);this.dispatchEvent({type:"pointer-move",e:i,graphics:s,pois:n,position:o})},this.onPointerleave=i=>{this.dispatchEvent({type:"pointer-level"})},this.onSelectionSelect=i=>{let{graphics:s,isMultipleSelect:o}=i;this.dispatchEvent({type:"select-graphic",graphics:s,isMultipleSelect:o})},this.onHoverChange=i=>{let{graphics:s}=i;this.dispatchEvent({type:"hover",graphics:s})},this.bmap=e,this.container.style.position="relative",this.container.style.overflow="hidden",this.renderer=new as(this),this.scene=new hs(this.renderer),this.collisionSystem=new ls(this),this.init(),this.selection=new Qi(this),this.hoverHelper=new ts(this),this.resizeClientSize(),this.registryEvent()}};import{merge as yp}from"lodash";var vp={placeId:0,fps:30,apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get",equipmentList:"/api/inception-map/equipment/get",roadNetwork:"/api/inception-map/road_network/get",loadPlaceInfo:"https://screen.aibee.cn/ai-map/map/get-floor-map"},enableBoxSelect:!0,resizeObserver:{enable:!1,debounceTime:5},initTransToMark:!1,heatMap:{radius:50,minOpacity:.1,gradient:{0:"#8F9FCD",.5:"#6284FF",1:"#F95D5D"}},useFloorCache:!0,control:{maxPolar:1.2,defaultPolar:1.1,defaultAzimuthal:0,maxZoomScale:30},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},loaderPlaceConfig:{textFontSize:14},renderAnimation:"setTimeout"};function pr(a){return typeof a.resizeObserver=="boolean"&&(a.resizeObserver={enable:a.resizeObserver}),yp({},vp,a)}import{debounce as Bp}from"lodash";import"core-js/modules/web.dom-collections.iterator.js";import{Vector3 as Op,Color as Ip}from"three";import"core-js/modules/es.array.push.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.array.sort.js";var Je=function(a){return a.LAYERED_RENDER_VERSION="layeredRender",a.MERGED_RENDER_VERSION="mergedRender",a}({});function ds(a,t){let e=a.poi_info.showName||a.store_name||a.poi_info.text;switch(t){case"zh-cn":return e;case"en":var i;return((i=a.store_info_ext)==null?void 0:i.poi_name)||e;case"zh-hk":var s;return((s=a.store_info_ext)==null?void 0:s.traditional_name)||e}}function us(a,t){let e=a.poi_info.showName||a.store_name||a.poi_info.text;switch(t){case"zh-cn":return e;case"en":var i;return((i=a.infra_info_ext)==null?void 0:i.poi_name)||e;case"zh-hk":var s;return((s=a.infra_info_ext)==null?void 0:s.traditional_name)||e}}var mo=["range","ground","store","facility","parkingSpace"];function dr(a){return mo.indexOf(a.l_type)===-1?mo.length:mo.indexOf(a.l_type)}function xp(a){a.layers.sort((t,e)=>dr(t)-dr(e))}function wp(a){let t=a.layers.find(i=>i.l_type==="range"),e=[t.elements[0].center_x,t.elements[0].center_y];a.layers.map(i=>{if(i.l_type!=="range")return fi(i.elements,e)})}function Qe(a){xp(a),wp(a)}function Oe(a,t){return t===void 0&&(t=5),a.floor_id+"_"+a.version_id+(t?"_"+t:"")}function ur(a,t,e){switch(a.l_type){case"ground":return fo(a,t);case"graph":return Mp(a,t);case"wall":return _p(a,t);case"lane":return Pp(a,t);case"texture2d":case"texture3d":return bp(a,t);case"glb":return Sp(a,t);case"store":return Ep(a,t,e);case"facility":return Cp(a,t,e);case"parkingSpace":return kp(a,t,e);case"text":return Ap(a,t)}}function mr(a,t,e,i,s){switch(a.l_type){case"store":return Lp(a,t,e,i,s);case"facility":return Tp(a,t,e,i,s);case"parkingSpace":return Dp(a,t,i,s)}}function Mp(a,t){t.mergeGraphicLayer.addGraphics(a.elements,a.mergedElements)}function fo(a,t){let e=a.elements.map(i=>new ot(t.context,x({},i,{dashed:!1})));t.addGrounds(e)}function _p(a,t){if(a.mergedElements)a.mergedElements.map(e=>{if(e.instancedGeometry){let i=new $i(t.context,e.instancedGeometry);t.wallLayer.add(i)}if(e.mergedGeometry){let i=new Ki(t.context,e);t.wallLayer.add(i)}});else{let e=a.elements.reduce((i,s)=>{let{fillColor:o,fillOpacity:n,strokeColor:r,strokeOpacity:h,height:c}=s,l=o.toLowerCase()+"-"+n+"-"+r.toLowerCase()+"-"+h+"-"+c;return h===0&&(l=o.toLowerCase()+"-"+n+"-"+c),i[l]?i[l].push(s):i[l]=[s],i},{});Object.values(e).forEach(i=>{let s=new Ni(t.context,i);t.wallLayer.add(s)})}}function Pp(a,t){if(a.mergedElements){let e=new Xi(t.context,a.mergedElements);t.laneLayer.add(e)}else{let e=new ji(t.context,a.elements);t.laneLayer.add(e)}}function bp(a,t){if(a.mergedMatrixes)a.mergedMatrixes.map(e=>{let i=new le(t.context,e);t.textureLayer.add(i)});else if(a.elements.length){let e=new ce(t.context,a.elements);t.textureLayer.add(e)}}function Sp(a,t){t.glbModelLayer.addModels(a.elements.map(e=>x({},e,{url:e.secondUrl,rotate:e.secondRotate,width:e.secondWidth,center_x:e.center_coord_x,center_y:e.center_coord_y,deltaHeight:0})))}function Ep(a,t,e){e.mergeGraphic?t.mergeGraphicLayer.addGraphics(a.elements,a.mergedElements):a.elements.map(i=>{let s=t.addGraphic(x({},i,{dashed:!1}));t.userData.graphics.push(s),t.userData.graphicMap.set(i.id,s)})}function Lp(a,t,e,i,s){a.elements.filter(o=>s.filterPoi(o)).map(o=>{try{let n=ds(o,e),r=new J(t.context,{id:o.id,icon:o.poi_info.showImageUrl||o.poi_info.icon,text:n,position:{x:o.center_coord_x,y:o.center_coord_y,z:o.airHeight+o.height},icon_size:[24,24],level:o.poi_info.level||0,hide_text:!i.showStoreName,maxWeight:o.poi_info.maxWeight||25,minWeight:o.poi_info.minWeight||1,text_font_size:i.textFontSize});t.poiLayer2.pushPoi(r),r&&(r.userData.type="store",r.userData.data=o,r.userData.floor=t.name)}catch(n){console.log("\u521B\u5EFA\u5E97\u94FApoi\u5931\u8D25",n,o)}})}function Cp(a,t,e){e.mergeGraphic?t.mergeGraphicLayer.addGraphics(a.elements,a.mergedElements):a.elements.map(i=>{let s=t.addGraphic(x({},i,{dashed:!1}));t.userData.graphics.push(s),t.userData.graphicMap.set(i.id,s)})}function Tp(a,t,e,i,s){a.elements.filter(o=>o.poi_info).filter(o=>s.filterPoi(o)).map(o=>{try{let n=us(o,e),r=new J(t.context,{id:o.id,icon:o.poi_info.showImageUrl||o.poi_info.icon,text:n,position:{x:o.center_coord_x,y:o.center_coord_y,z:o.airHeight+o.height},icon_size:[24,24],level:o.poi_info.level||0,hide_text:!i.showFacilityName,maxWeight:o.poi_info.maxWeight||25,minWeight:o.poi_info.minWeight||1,text_font_size:i.textFontSize});t.poiLayer2.pushPoi(r),r.userData.type="facility",r.userData.data=o,r.userData.floor=t.name}catch(n){console.log("\u6DFB\u52A0facility\u5931\u8D25",n,o)}})}function kp(a,t,e){t.parkingSpaceLayer.load(a,e.mergeParkingSpace),t.userData.parkingSpaces=t.parkingSpaceLayer.graphicMap.values(),t.userData.parkingSpacesGraphicMap=t.parkingSpaceLayer.graphicMap}function Dp(a,t,e,i){return f(this,null,function*(){a.elements.filter(o=>o.texts[0]).filter(o=>i.filterPoi(o)).forEach(o=>{try{let n=o.displayName||o.texts[0],r=new J(t.context,{id:o.id,text:n,position:{x:o.center_coord_x,y:o.center_coord_y,z:o.airHeight+o.height},text_font_size:e.textFontSize});r&&(r.userData.type="parkingSpace",r.userData.data=o,r.userData.floor=t.name),t.poiLayer2.pushPoi(r)}catch(n){console.log("\u6DFB\u52A0\u8F66\u4F4Dpoi\u5931\u8D25",n,o)}})})}function Ap(a,t){let e=new Vi(t.context,a.elements.map(i=>x({},i,{center_x:i.center_coord_x,center_y:i.center_coord_y})));t.textTextureLayer.add(e)}function go(){return new Worker(new URL("./worker/loader.worker-IS25OEA2.js",import.meta.url))}var Rp={mergeParkingSpace:!0,mergeGraphic:!0,renderVersion:Je.MERGED_RENDER_VERSION,layers:["graph","wall","lane","texture2d","texture3d","glb","store","facility","parkingSpace","text"],filterPoi:()=>!0},Ie=class extends tt{initDb(){return f(this,null,function*(){try{let{db:t}=yield xi();this.db=t}catch(t){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",t)}})}load(t,e){return f(this,null,function*(){if(Array.isArray(t))this.floors=t,e&&(this.placeConfig=x({},this.placeConfig,e));else if(typeof t=="string"){let i=yield fetch(t).then(s=>s.json());i.code===200&&(this.floors=i.data.list,this.placeConfig=x({},this.placeConfig,JSON.parse(i.data.config||"{}")))}else return this.load("https://screen.aibee.cn/ai-map/map/get-floor-map?place_id="+t);this.getOtherDataByFreeTime()})}setCacheData(t,e,i){return f(this,null,function*(){return this.initDbPromise.then(()=>wi(t,""+e,i))})}getCacheData(t,e){return f(this,null,function*(){return this.initDbPromise.then(()=>je(t,""+e))})}getFloorData(t){return f(this,null,function*(){let e=yield this.getFloorJsonData(t);return e?this.getDataByJson(e):null})}getFloorDataByFloorInfo(t){return f(this,null,function*(){let e=yield this.getFloorJsonDataByFloorInfo(t);return this.getDataByJson(e)})}setLocale(t){this.locale=t,this.bmap.context.currentFloor&&this.bmap.context.currentFloor.poiLayer2.pois.forEach(e=>{e.userData.type==="store"&&(e.options.text=ds(e.userData.data,t)),e.userData.type==="facility"&&(e.options.text=us(e.userData.data,t))})}getFloorJsonDataByFloorInfo(t){return f(this,null,function*(){if(this.getFloorDataPromise.has(t.floor))return this.getFloorDataPromise.get(t.floor);let e=new Promise(i=>f(this,null,function*(){let s=Oe(t),o=yield fetch(t.map_url).then(n=>n.json());o.floor=t.floor,Qe(o),this.setCacheData(ct.MAP_DATA,s,o),this.setCacheData(ct.MAP_VERSION,s,t.version_id),i(o)}));return this.getFloorDataPromise.set(t.floor,e),e})}getFloorJsonData(t){return f(this,null,function*(){let e=this.floors.find(i=>i.floor===t);return e?new Promise(i=>f(this,null,function*(){let s=Oe(e,this.options.renderVersion===Je.LAYERED_RENDER_VERSION?1:void 0);try{let o=Oe(e),n=yield this.getCacheData(ct.MAP_DATA,o);if(n&&n.transformed){console.log("\u4ECE\u7F13\u5B58\u4E2D\u53D6\u5230\u4E86\u5408\u5E76\u540E\u7684\u6570\u636E"),i(n);return}if(this.options.renderVersion===Je.LAYERED_RENDER_VERSION){let r=yield this.getCacheData(ct.MAP_DATA,s);if(r){console.log("\u4ECE\u7F13\u5B58\u4E2D\u53D6\u5230\u4E86\u6570\u636E"),i(r);return}}if(console.log("\u7F13\u5B58\u4E2D\u6CA1\u6709\u6570\u636E"),this.loadWorker){N(this.loadWorker,"adjust_floor_priority",{floor:t});let r=h=>{if(h.data.type==="floor_success"&&h.data.data.floor===t){var c;(c=this.loadWorker)==null||c.removeEventListener("message",r),i(this.getFloorJsonData(t))}};this.loadWorker.addEventListener("message",r)}else i(this.getFloorJsonDataByFloorInfo(e))}catch(o){console.log("[get floor data error]",o),i(this.getFloorJsonDataByFloorInfo(e))}})):null})}getRoadNetworkData(){return f(this,null,function*(){return(yield Promise.all(this.floors.map(e=>f(this,null,function*(){let i=Oe(e,0);try{let s=yield this.getCacheData(ct.ROAD_NETWORK_DATA,i);if(s)return s;let o=yield fetch(e.route_url).then(n=>n.json());return this.setCacheData(ct.ROAD_NETWORK_DATA,i,o),this.setCacheData(ct.ROUTE_VERSION,i,e.version_id),o}catch(s){let o=yield fetch(e.route_url).then(n=>n.json());return this.setCacheData(ct.ROAD_NETWORK_DATA,i,o),o}})))).filter(e=>e.points)})}getFacilitiesData(){return f(this,null,function*(){let t=this.floors.reduce((s,o)=>s.updated_at>o.updated_at?s:o,this.floors[0]);if(!t)return null;let e=Oe(t,0),i=()=>f(this,null,function*(){let s=yield fetch(t.entry_infra_url).then(o=>o.json());return s&&(this.setCacheData(ct.FACILITY_DATA,e,s),this.setCacheData(ct.FACILITY_VERSION,e,t.version_id)),s});try{let s=yield this.getCacheData(ct.FACILITY_DATA,e);return s||i()}catch(s){return console.log("[get facility error]",s),i()}})}getOtherDataByFreeTime(){return f(this,null,function*(){yield this.initDbPromise,yield N(this.loadWorker,"load",{floors:this.floors,version:this.options.renderVersion}),this.closeWorker()})}getMulFloorsData(t){return f(this,null,function*(){return Promise.all(t.map(e=>this.getFloorData(e))).then(e=>e.filter(i=>i))})}getDataByUrl(t){return f(this,null,function*(){let e=yield fetch(t).then(i=>i.json());return this.getDataByJson(e)})}getDataByJson(t,e,i){return f(this,null,function*(){Qe(t),e=this.getFloorBaseLayer(t,e);let s=x({},this.placeConfig,i);return yield this.getFloorContentLayer(t,e),yield this.getFloorPoi(t,e,s),this.changeFloorBox(t,e),e})}getDataByJsonStep(t,e,i){return f(this,null,function*(){Qe(t),e=this.getFloorBaseLayer(t,e);let s=x({},this.placeConfig,i);return this.changeFloorBox(t,e),requestAnimationFrame(()=>f(this,null,function*(){yield this.getFloorContentLayer(t,e),this.changeFloorBox(t,e),requestAnimationFrame(()=>f(this,null,function*(){yield this.getFloorPoi(t,e,s),this.changeFloorBox(t,e)}))})),e})}changeFloorBox(t,e){e.updateBox();let i=e.box.getSize(new Op),s=Math.max(i.x,i.y,i.z);e.userData.height=s/4+t.floorHeight}switchFloor(t,e){return f(this,null,function*(){return new Promise(i=>{let s={run:()=>this._switchFloor(t,e),meta:{type:"switchFloor"}},o=this.taskQueue.replaceByMetaType(s),n=r=>{let{task:h,res:c}=r;h.tid===o&&(this.taskQueue.removeEventListener("active-task-end",n),i(c))};this.taskQueue.addEventListener("active-task-end",n)})})}_switchFloor(t,e){return f(this,null,function*(){var i;let s=t;if(typeof t=="string"){let l=yield this.getFloorJsonData(t);if(l)s=l;else return null}else Qe(t);let o=x({},this.placeConfig,e),n=new At(this.bmap.context);n.userData.data=t;let r=this.floors.find(l=>l.floor===s.floor);var h;let c=(h=r==null?void 0:r.map_angle)!=null?h:0;return this.bmap.dispatchEvent({type:rt.SWITCH_FLOOR_BEFORE,data:{curFloor:n,graphics:[]}}),this.dispatchEvent({type:"switch-floor-before",data:{curFloor:n,graphics:[],floorData:s}}),this.bmap.context.scene.background=new Ip(o.backgroundColor),this.getFloorBaseLayer(s,n),this.changeFloorBox(s,n),this.bmap.buildingCenter=n.userData.center,this.bmap.currentBuildGround=(i=n.userData.data.layers.find(l=>l.l_type==="range"))==null?void 0:i.elements[0],this.bmap.context.switchFloor(n),this.bmap.initialFloorCamera(),this.bmap.context.control.setAzimuthalAngle(c/180*Math.PI,!0),this.bmap.context.cameraBound.updateBox(),this.dispatchEvent({type:"switch-floor-ground",data:{curFloor:n,graphics:[]}}),this.bmap.dispatchEvent({type:rt.SWITCH_FLOOR_GROUND,data:{curFloor:n}}),yield zs(),yield this.getFloorContentLayer(s,n),this.changeFloorBox(s,n),this.bmap.context.cameraBound.updateBox(),this.dispatchEvent({type:"switch-floor-content",data:{curFloor:n,graphics:[]}}),yield Zo(2),yield this.getFloorPoi(s,n,o),this.dispatchEvent({type:"switch-floor-after",data:{curFloor:n,graphics:n.graphicLayer.children}}),this.bmap.dispatchEvent({type:rt.SWITCH_FLOOR_AFTER,data:{curFloor:n,graphics:n.graphicLayer.children}}),n})}getFloorBaseLayer(t,e){e||(e=new At(this.bmap.context));let i=[0,0];return t.layers.forEach(s=>{switch(s.l_type){case"range":let o=s.elements[0];i=[o.center_x,o.center_y],e.userData.range=o.geometry.cds[0],e.userData.rangeGraphic=o;break;case"ground":fo(s,e);break;default:break}}),e.userData.center=i,e.name=t.floor,e.userData.data=t,e}getFloorContentLayer(t,e){return f(this,null,function*(){e||(e=new At(this.bmap.context)),e.userData.graphics=[],e.userData.graphicMap=new Map;let i=Date.now();for(let s=0;s<t.layers.length;s++){let o=t.layers[s];["range","ground"].includes(o.l_type)||this.options.layers.includes(o.l_type)&&(ur(o,e,this.options),console.log("time",Date.now()-i,o.l_type),i=Date.now())}return e})}getFloorPoi(t,e,i){return f(this,null,function*(){i===void 0&&(i=this.placeConfig);let s=Date.now();yield Promise.all(t.layers.map(n=>{if(this.options.layers.includes(n.l_type))return mr(n,e,this.locale,i,this.options)})),console.log("poi time",Date.now()-s);let o=Date.now();zs().then(()=>{console.log("poi render time",Date.now()-o)})})}clear(){return f(this,null,function*(){Mn(),this.db=null})}closeWorker(){this.loadWorker&&(this.loadWorker.terminate(),this.loadWorker=null)}dispose(){super.dispose(),this.clear(),this.closeWorker(),this.getFloorDataPromise.clear()}constructor(t,e={}){super(),this.bmap=t,this.floors=[],this.initDbPromise=Promise.resolve(),this.db=null,this.taskQueue=new Me,this.loadWorker=go(),this.locale="zh-cn",this.placeConfig={backgroundColor:"#f1f7f6",showFacilityName:!0,showStoreName:!0,textFontSize:14},this.getFloorDataPromise=new Map,this.options=x({},Rp,e),this.placeConfig=x({},this.placeConfig,t.config.loaderPlaceConfig),this.initDbPromise=this.initDb()}};import"core-js/modules/web.dom-collections.iterator.js";function fr(a,t){return f(this,null,function*(){let{brand:e,project:i}=a,{apiDomain:s,apiPath:{floorRange:o},apiInfo:n}=t,r=""+s+o+"?brand="+e+"&project="+i+"&phase="+i+"&building="+i;return yield fetch(r,n).then(c=>c.json()).then(c=>c.data).then(c=>{let l=(c||[])[0];return l&&(l.info=JSON.parse(l.info)),l})})}function gr(a,t){return f(this,null,function*(){let{brand:e,project:i,floor:s,ts:o,resource_type_list:n}=a,{apiDomain:r,apiPath:{floorGraphic:h},apiInfo:c}=t,l=""+r+h+"?brand="+e+"&project="+i+"&phase="+i+"&building="+i+"&floor="+s+"&ts="+o+"&resource_type_list="+n;return yield fetch(l,c).then(d=>d.json()).then(d=>d.data).then(d=>((d||[]).map(u=>u.info=JSON.parse(u.info)),d||[]))})}function oS(a,t){return f(this,null,function*(){let{project:e,floor:i}=a,{apiDomain:s,apiInfo:o}=t,n=s+"/api/inception-map/external_street/get?projectCode="+e+"&floorCode="+i;return yield fetch(n,o).then(h=>h.json()).then(h=>h.data).then(h=>JSON.parse(h[0].streetInfo||"{}")).then(h=>h.fileId?Fp(h.fileId,t):null)})}function Fp(a,t){return f(this,null,function*(){let{apiDomain:e,apiInfo:i}=t;return fetch(e+"/api/inception-map/file/getFileStream?fileId="+a,i).then(s=>s.arrayBuffer()).then(s=>{let n=new TextDecoder("utf-8").decode(s);return n?JSON.parse(n):null})})}var yr=class{load(t){return f(this,null,function*(){let e=ve(t);if(this.cacheData.has(e))return this.cacheData.get(e);let[,i]=yield Promise.all([this.loadBuildGround(t),gr(t,this.bmap.config)]),s=ve({floor:t.floor,ts:t.ts});fi(i.map(n=>n.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(s)||0),i.forEach(n=>n.info.transformToBuildingGround=!1),this.cacheData.set(e,i);let o=this.floorDataLengthMap.get(s)||0;return this.floorDataLengthMap.set(s,o+i.length),this.loadExternalStreet(t),i})}loadExternalStreet(t){return f(this,null,function*(){})}switchFloorByData(t,e){if(!t.length)return;let i=e.userData.legacyToGraphicMap||new Map,s=e.userData.graphicMap||new Map,{ground:o,markGraphic:n,graphic:r}=this.bmap.config;for(let h=0;h<t.length;h++){let c=t[h],l=x({},c,{info:x({},c.info)});if(c.info.group==="ground"){c.info.fillColor=o.color,c.info.fillOpacity=o.opacity,c.info.height=o.height,c.info.stroke=o.stroke,c.info.strokeColor=o.strokeColor,c.info.strokeOpacity=o.strokeOpacity,e.createGround(c.info);break}else c.info.userData.mark?(c.info.height=n.height,c.info.fillColor=n.color,c.info.fillOpacity=n.opacity,c.info.stroke=n.stroke,c.info.strokeColor=n.strokeColor,c.info.strokeOpacity=n.strokeOpacity):(c.info.fillOpacity=r.fillOpacity,this.bmap.config.initTransToMark&&(c.info.height=n.height,c.info.fillColor=n.color,c.info.stroke=n.stroke,c.info.strokeColor=n.strokeColor,c.info.strokeOpacity=n.strokeOpacity));let p=e.addGraphic(c.info);p.userData.data=l,i.set(c.legacy_id,p),s.set(c.element_uuid,l)}e.userData.legacyToGraphicMap=i,e.userData.graphicMap=s,e.userData.rangeGraphic=this.bmap.currentBuildGround,e.userData.range=this.bmap.currentBuildGround.geometry.cds[0],e.userData.center=this.bmap.buildingCenter,e.updateBox(),e===this.bmap.context.currentFloor?(this.bmap.triggerHooks(rt.SWITCH_FLOOR_BEFORE,{curFloor:e,graphics:e.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks(rt.SWITCH_FLOOR_AFTER,{curFloor:e,graphics:e.graphicLayer.children})):this.bmap.switchFloorByFloor(e)}filterData(t,e){let i=e.userData.graphicMap||new Map;return t.filter(s=>!i.has(s.element_uuid))}switchFloorByStoreData(t,e){return f(this,null,function*(){let i=yield this.load(x({},t,{resource_type_list:"6"})),s=this.filterData(i,e);this.switchFloorByData(s,e)})}switchFloorByOtherData(t,e){return f(this,null,function*(){let i=yield this.load(x({},t,{resource_type_list:"1,2,3,4"})),s=this.filterData(i,e);this.switchFloorByData(s,e)})}loadBuildGround(t){return f(this,null,function*(){let{brand:e,project:i}=t,s=yield this.loadBuildingGround({brand:e,project:i});var o;return this.bmap.currentBuildGround=(o=s==null?void 0:s.info)!=null?o:null,this.bmap.changeBuildingCenter(s,{brand:e,project:i}),this.bmap.currentBuildGround})}loadBuildingGround(t){return f(this,null,function*(){let{brand:e,project:i}=t,s=ve({brand:e,project:i});if(this.buildingGroundMap.has(s))return this.buildingGroundMap.get(s);let o=fr({brand:e,project:i},this.bmap.config).then(n=>(this.buildingGroundMap.set(s,n),n));return this.buildingGroundMap.set(s,o),o})}switchFloor(t){return f(this,null,function*(){let e=new At(this.bmap.context);e.userData.graphicMap=new Map,e.name=t.floor;try{yield Promise.all([this.switchFloorByStoreData(t,e),this.switchFloorByOtherData(t,e)])}catch(i){console.log(i)}return e})}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}constructor(t){this.bmap=t,this.cacheData=new Map,this.floorDataLengthMap=new Map,this.buildingGroundMap=new Map,this.externalStreetMap=new Map}};var LS=function(a){return a[a.D2=0]="D2",a[a.D3=1.1]="D3",a}({}),vr=class extends zp{get basicZoom(){return this.context.basicZoom}set basicZoom(t){this.context.basicZoom=t}changeBuildingCenter(t,e){let{brand:i,project:s}=e,o=t?li(t.info.geometry.cds[0]):[0,0];this.buildingCenter=o,this.dispatchEvent({type:"center-change",center:o,project:s,brand:i})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(e=>e!==t)}triggerHooks(t,e){this.dispatchEvent({type:t,data:e})}switchFloor(t){return f(this,null,function*(){return this.loader||(this.loader=new Ie(this),this.loader.placeConfig=x({},this.loader.placeConfig,this.config.loaderPlaceConfig),yield this.loader.load(this.config.apiPath.loadPlaceInfo+"?place_id="+this.config.placeId+"&env=prod")),this.loader.switchFloor(t)})}switchFloorByFloor(t,e,i){e===void 0&&(e=!0),i===void 0&&(i=t.graphicLayer.children),this.triggerHooks(rt.SWITCH_FLOOR_BEFORE,{curFloor:t,graphics:i}),this.buildingCenter=t.userData.center,this.currentBuildGround=t.userData.rangeGraphic,this.context.switchFloor(t,e),this.initialFloorCamera(),this.triggerHooks(rt.SWITCH_FLOOR_AFTER,{curFloor:t,graphics:i})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(this.config.defaultPadding,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*this.config.control.maxZoomScale,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}addModel(t,e){if(t.options.geometry.type==="polygon"){var i;let s=(i=this.context.currentFloor)==null?void 0:i.addModel(x({},e,{position:t.getPosition().setZ(.1),id:t.options.id}));if(s){let{facilityAngle:o=0,facilityXScale:n=1,facilityYScale:r=1}=t.options.userData;s.rotateZ((180-o)/180*Math.PI),s.scale.set(n,r,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.getGraphics())||[]}createGraphicPoi(t,e){if(this.context.currentFloor){e.id===void 0&&(e.id=t.options.id);let i=t.options.center,s=t.getCenter(),o=(i==null?void 0:i[0])||s.x,n=(i==null?void 0:i[1])||s.y;return console.log(o,n,i,s),this.context.currentFloor.addPoi(x({},e,{position:{x:o,y:n,z:s.z+t.options.height/2}}))}return null}createPoi2ByPosition(t,e){if(this.context.currentFloor){let i=this.mercatorToWorld([t.x,t.y]),s=new J(this.context,x({},e,{position:{x:i.x,y:i.y,z:t.z}}));return this.context.currentFloor.poiLayer2.pushPoi(s),s}return null}removeHeatMap(){var t;(t=this.context.currentFloor)==null||t.removeHeatMap()}translateElementToCenter(t,e,i,s){e===void 0&&(e=500),i===void 0&&(i=0),s===void 0&&(s=0);let o=t.getPosition().clone(),{context:{camera:n}}=this;if(n.updateMatrix(),s){let r=new ms;r.setFromMatrixColumn(n.matrix,1),r.normalize(),r.multiplyScalar(s/n.zoom),o.add(r)}if(i){let r=new ms;r.setFromMatrixColumn(n.matrix,0),r.normalize(),r.multiplyScalar(i/n.zoom),o.add(r)}return this.context.setCameraPosition(o,e)}translateElementToCenterX(t,e){return f(this,null,function*(){return e===void 0&&(e=500),yt(new Promise(i=>{let s=this.context.control.target.clone(),o=t.getPosition();this.timer.requestAnimationFrame(()=>{let{clientSize:{width:n,height:r},camera:h}=this.context,l=D(o,h,n,r).x-n/2,p=new ms;p.setFromMatrixColumn(this.context.camera.matrix,0),p.normalize(),p.multiplyScalar(l/this.context.camera.zoom),s.add(p),this.context.setCameraPosition(s,e).then(i)})}),e+500)})}getElementDeviceCoordinate(t){let e=t.position.clone(),{clientWidth:i,clientHeight:s}=this.container;return D(e,this.context.camera,i,s)}changeMapType(t,e){return e===void 0&&(e=500),this.type=t,t==="2d"?this.context.setPolarAngle(0,e):this.context.setPolarAngle(1.1,e)}resetView(t){return f(this,null,function*(){t===void 0&&(t=300);let e=t/3;yield this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,e),yield this.context.setPolarAngle(this.config.control.defaultPolar,e),yield this.context.fitCameraToGround(this.config.defaultPadding,e,!1)})}reduceMap(t,e){t===void 0&&(t=.5),e===void 0&&(e=500);let i=this.context.camera.zoom;return this.context.setZoom(i-t,this.context.control.target,e)}enlargeMap(t,e){t===void 0&&(t=.5),e===void 0&&(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.enable){let t=new ResizeObserver(this.debounceResize);t.observe(this.container),this.observe=t}}unRegistryEvent(){var t;this.context.control.removeEventListener("change",this.onControlChange),window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),(t=this.observe)==null||t.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t,e){t===void 0&&(t=.1),e===void 0&&(e=500);let i=this.context.control.getAzimuthalAngle();return this.context.setAzimuthalAngle(i+t,e)}measureDistance(){return f(this,null,function*(){return this.cancelDistance(),new Promise((t,e)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgLine=new Ui(this.context);let i=this.svgLine.dispose.bind(this.svgLine);this.svgLine.dispose=function(){i(),e("cancel")},this.svgLine.addEventListener("distance",s=>{let{distance:o}=s;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 Hi(this.context);let i=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){i(),e("cancel")},this.svgPolygon.addEventListener("area",s=>{let{area:o}=s;t(o)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}fitCameraByPois(t,e,i){return f(this,null,function*(){if(e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=500),!t.length)return;let s=new Gp;return t.forEach(o=>{let{position:n}=o;s.expandByPoint(n)}),this.context.fitCameraToBox(s,e,i,!1)})}fitCameraByPoiNodeIds(t,e,i){return f(this,null,function*(){e===void 0&&(e=[20,20,20,20]),i===void 0&&(i=500);let s=t.map(o=>this.getPoiById(o)).filter(o=>!!o);if(s.length)return this.fitCameraByPois(s,e,i)})}getGraphicByNodeId(t){var e,i;return((e=this.context.currentFloor)==null?void 0:e.graphicLayer.getGraphicByNodeId(t))||((i=this.context.currentFloor)==null?void 0:i.parkingSpaceLayer.graphicMap.get(t))||null}deleteGraphic(t){var e;(e=this.context.currentFloor)==null||e.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){var e;if(!t.transformToBuildingGround&&this.currentBuildGround){let i=li(this.currentBuildGround.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(s=>{Array.isArray(s)&&s.forEach(o=>{o[0]-=i[0],o[1]-=i[1]})});else{let[s,o]=t.geometry.cds;t.geometry.coords=[s-i[0],o-i[1]]}}return(e=this.context.currentFloor)==null?void 0:e.graphicLayer.createGraphic(t)}mercatorToWorld(t){let e=this.buildingCenter;return new ms(t[0]-e[0],t[1]-e[1],0)}removePoiById(t){var e,i;(e=this.context.currentFloor)==null||e.poiLayer.removePoiById(t),(i=this.context.currentFloor)==null||i.poiLayer2.removePoiById(t)}getPoiById(t){var e;let i=this.context.collisionSystem.objects;return((e=this.context.currentFloor)==null?void 0:e.poiLayer.getPoiById(t))||i.find(s=>s.options.id===t)}getPois(){var t;return[...(((t=this.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).filter(e=>!e.options.built_in),...this.context.collisionSystem.objects||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}dispose(){this.loader&&(this.loader.dispose(),this.loader=null),this.unRegistryEvent(),this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.plugins=[],this.context.dispose(),this.context=null,this.container=null,et.dispose(),st.dispose(),te.dispose(),at.dispose(),S.dispose(),St.dispose(),this.debounceResize=null,yo.Dispose==null||yo.Dispose.call(yo)}constructor(t,e={}){super(),this.container=t,this.polarKeys=[],this.azimuthalKeys=[],this.prevCameraZoom=1,this.type="2d",this.currentBuildGround=null,this.observe=null,this.buildingCenter=[0,0],this.timer=new j,this.plugins=[],this.loader=null,this.onControlChange=()=>{let{camera:{zoom:i}}=this.context;i!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=i)},this.onKeydown=i=>{this.polarKeys.includes(i.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(i.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)},this.onKeyUp=i=>{if(this.polarKeys.includes(i.code)){let s=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=s,this.context.control.minPolarAngle=s}if(this.azimuthalKeys.includes(i.code)){let s=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=s,this.context.control.minAzimuthAngle=s}},this.resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let i=this.context.control.getAzimuthalAngle(),s=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let o=this.context.getFitCameraToGroundZoom(this.config.defaultPadding,0)||1;this.context.camera.zoom=s,this.context.control.minZoom=o,this.context.control.maxZoom=o*this.config.control.maxZoomScale,this.basicZoom=s,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(i,0),this.context.cameraBound.setEnable(!0)},this.config=pr(e),this.context=new ps(t,this),this.debounceResize=Bp(this.resize,this.config.resizeObserver.debounceTime),this.registryEvent()}};var kS=function(a){return a.HALF="half",a.POWER="power",a.MECHANICAL="mechanical",a.NORMAL="normal",a.VIP="vip",a}({});import"core-js/modules/web.dom-collections.iterator.js";var X=class extends tt{dispose(){let t=this.bmap.plugins.findIndex(e=>e===this);t!==-1&&this.bmap.plugins.splice(t,1),this.bmap=null,super.dispose()}constructor(t){super(),this.bmap=t,this.bmap.use(this)}};var xr=class extends X{fetchEquipment(){return f(this,null,function*(){let{apiDomain:t,apiPath:{equipmentList:e},apiInfo:i}=this.bmap.config,s=""+t+e;yield fetch(s,i).then(o=>o.json()).then(o=>o.data).then(o=>{this.equipmentList=o,this.equipmentMap=new Map(o.map(n=>[n.equipment_id,n]))}),this.dispatchEvent({type:"change-equipment-list",data:this.equipmentList}),this.bmap.context.currentFloor&&this.changeGraphicToEquipment(this.bmap.context.currentFloor.graphicLayer.children)})}getGraphicEquipment(t){return t.userData.data.info.userData.equipment}changeGraphicToEquipment(t){t.filter(e=>{let i=this.getGraphicEquipment(e);return i&&this.equipmentMap.has(i)}).forEach(e=>{let i=this.equipmentMap.get(this.getGraphicEquipment(e)),s=this.bmap.createGraphicPoi(e,{icon:i==null?void 0:i.equipment_icon,built_in:!0,icon_size:[14,14]});s&&(s.userData.data=i,s.userData.type="equipment")})}dispose(){var t;this.bmap.removeEventListener(rt.SWITCH_FLOOR_AFTER,this.onSwitchFloor),Array.from(((t=this.bmap.context.currentFloor)==null?void 0:t.poiLayer.pois)||[]).forEach(e=>{if(e.userData.type==="equipment"){var i;(i=this.bmap.context.currentFloor)==null||i.poiLayer.removePoi(e)}}),super.dispose()}constructor(t){super(t),this.equipmentList=[],this.equipmentMap=new Map,this.onSwitchFloor=e=>{let{data:{graphics:i}}=e;this.equipmentList.length&&this.changeGraphicToEquipment(i)},this.fetchEquipment(),this.bmap.addEventListener(rt.SWITCH_FLOOR_AFTER,this.onSwitchFloor)}};import"core-js/modules/es.string.replace.js";import"core-js/modules/es.regexp.exec.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.promise.finally.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.array.push.js";import{Mesh as Kp,Object3D as Yp,TextureLoader as Xp,Color as qp,Vector2 as xo,Vector3 as $p,NormalBlending as Jp,RepeatWrapping as Qp}from"three";import"core-js/modules/es.typed-array.float32-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import"core-js/modules/es.array.push.js";import"core-js/modules/es.typed-array.uint16-array.js";import{BufferGeometry as Wp,Matrix4 as Mr,Vector3 as ue,Ray as Up,Sphere as Hp,LineSegments as Np,BufferAttribute as ie,ShaderChunk as ft,ShaderMaterial as _r,UniformsLib as Zp,Color as jp,Vector2 as wr}from"three";var gt=class extends Wp{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new Mr,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(t){this.setGeometry(t,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(t){this.setPoints(t,this.widthCallback)}}})}};gt.prototype.setMatrixWorld=function(a){this.matrixWorld=a};gt.prototype.setGeometry=function(a,t){this._geometry=a,this.setPoints(a.getAttribute("position").array,t)};gt.prototype.setPoints=function(a,t){if(!(a instanceof Float32Array)&&!(a instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=a,this.widthCallback=t,this.positions=[],this.counters=[],a.length&&a[0]instanceof ue)for(var e=0;e<a.length;e++){var i=a[e],s=e/a.length;this.positions.push(i.x,i.y,i.z),this.positions.push(i.x,i.y,i.z),this.counters.push(s),this.counters.push(s)}else for(var e=0;e<a.length;e+=3){var s=e/a.length;this.positions.push(a[e],a[e+1],a[e+2]),this.positions.push(a[e],a[e+1],a[e+2]),this.counters.push(s),this.counters.push(s)}this.process()};function Vp(a,t){var e=new Mr,i=new Up,s=new Hp,o=new ue,n=this.geometry;if(n.boundingSphere||n.computeBoundingSphere(),s.copy(n.boundingSphere),s.applyMatrix4(this.matrixWorld),a.ray.intersectSphere(s,o)!==!1){e.copy(this.matrixWorld).invert(),i.copy(a.ray).applyMatrix4(e);var r=new ue,h=new ue,c=new ue,l=this instanceof Np?2:1,p=n.index,d=n.attributes;if(p!==null)for(var u=p.array,m=d.position.array,g=d.width.array,y=0,w=u.length-1;y<w;y+=l){var M=u[y],P=u[y+1];r.fromArray(m,M*3),h.fromArray(m,P*3);var L=g[Math.floor(y/3)]!==void 0?g[Math.floor(y/3)]:1,C=a.params.Line.threshold+this.material.lineWidth*L/2,H=C*C,b=i.distanceSqToSegment(r,h,o,c);if(!(b>H)){o.applyMatrix4(this.matrixWorld);var Z=a.ray.origin.distanceTo(o);Z<a.near||Z>a.far||(t.push({distance:Z,point:c.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this}),y=w)}}}}gt.prototype.raycast=Vp;gt.prototype.compareV3=function(a,t){var e=a*6,i=t*6;return this.positions[e]===this.positions[i]&&this.positions[e+1]===this.positions[i+1]&&this.positions[e+2]===this.positions[i+2]};gt.prototype.copyV3=function(a){var t=a*6;return[this.positions[t],this.positions[t+1],this.positions[t+2]]};gt.prototype.getDistance=function(a){let t=0;for(let e=0;e<a;e++){let i=6*e,s=new ue(this.positions[i],this.positions[i+1],this.positions[i+2]),o=new ue(this.positions[i+6],this.positions[i+7],this.positions[i+8]),n=s.distanceTo(o);t+=n}return t};gt.prototype.process=function(){var a=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var t;let e=this.getDistance(a-1);var i;this.compareV3(0,a-1)?i=this.copyV3(a-2):i=this.copyV3(0),this.previous.push(i[0],i[1],i[2]),this.previous.push(i[0],i[1],i[2]);for(var s=0;s<a;s++){if(this.side.push(1),this.side.push(-1),this.widthCallback?t=this.widthCallback(s/(a-1)):t=1,this.width.push(t),this.width.push(t),s===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(s===a-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let n=this.getDistance(s)/e;this.uvs.push(n,0),this.uvs.push(n,1)}if(s<a-1){i=this.copyV3(s),this.previous.push(i[0],i[1],i[2]),this.previous.push(i[0],i[1],i[2]);var o=s*2;this.indices_array.push(o,o+1,o+2),this.indices_array.push(o+2,o+1,o+3)}s>0&&(i=this.copyV3(s),this.next.push(i[0],i[1],i[2]),this.next.push(i[0],i[1],i[2]))}this.compareV3(a-1,0)?i=this.copyV3(1):i=this.copyV3(a-1),this.next.push(i[0],i[1],i[2]),this.next.push(i[0],i[1],i[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new ie(new Float32Array(this.positions),3),previous:new ie(new Float32Array(this.previous),3),next:new ie(new Float32Array(this.next),3),side:new ie(new Float32Array(this.side),1),width:new ie(new Float32Array(this.width),1),uv:new ie(new Float32Array(this.uvs),2),index:new ie(new Uint16Array(this.indices_array),1),counters:new ie(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function vo(a,t,e,i,s){var o;if(a=a.subarray||a.slice?a:a.buffer,e=e.subarray||e.slice?e:e.buffer,a=t?a.subarray?a.subarray(t,s&&t+s):a.slice(t,s&&t+s):a,e.set)e.set(a,i);else for(o=0;o<a.length;o++)e[o+i]=a[o];return e}gt.prototype.advance=function(a){var t=this._attributes.position.array,e=this._attributes.previous.array,i=this._attributes.next.array,s=t.length;vo(t,0,e,0,s),vo(t,6,t,0,s-6),t[s-6]=a.x,t[s-5]=a.y,t[s-4]=a.z,t[s-3]=a.x,t[s-2]=a.y,t[s-1]=a.z,vo(t,6,i,0,s-6),i[s-6]=a.x,i[s-5]=a.y,i[s-4]=a.z,i[s-3]=a.x,i[s-2]=a.y,i[s-1]=a.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};ft.meshline_vert=["",ft.logdepthbuf_pars_vertex,ft.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",ft.logdepthbuf_vertex,ft.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",ft.fog_vertex,"}"].join(`
502
502
  `);ft.meshline_frag=["",ft.fog_pars_fragment,ft.logdepthbuf_pars_fragment,"","uniform sampler2D map;","uniform sampler2D alphaMap;","uniform float useMap;","uniform float useAlphaMap;","uniform float useDash;","uniform float dashArray;","uniform float dashOffset;","uniform float dashRatio;","uniform float visibility;","uniform float alphaTest;","uniform vec2 repeat;","uniform float thresholdRatio;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","void main() {",""," if (vUV.x <= thresholdRatio) {"," discard;"," }",ft.logdepthbuf_fragment,""," vec4 c = vColor;"," if( useMap == 1. ) c *= texture2D( map, vUV * repeat );"," if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUV * repeat ).a;"," if( c.a < alphaTest ) discard;"," if( useDash == 1. ){"," c.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio));"," }"," gl_FragColor = c;"," gl_FragColor.a *= step(vCounters, visibility);","",ft.fog_fragment,"}"].join(`
503
503
  `);var ti=class extends _r{constructor(t){super({uniforms:Object.assign({},Zp.fog,{lineWidth:{value:1},map:{value:null},useMap:{value:0},alphaMap:{value:null},useAlphaMap:{value:0},color:{value:new jp(16777215)},opacity:{value:1},resolution:{value:new wr(1,1)},sizeAttenuation:{value:1},dashArray:{value:0},dashOffset:{value:0},dashRatio:{value:.5},useDash:{value:0},visibility:{value:1},alphaTest:{value:0},repeat:{value:new wr(1,1)},thresholdRatio:{value:0},transparent:{value:!0},depthTest:{vale:!1},depthWrite:{value:!1}}),vertexShader:ft.meshline_vert,fragmentShader:ft.meshline_frag}),this.isMeshLineMaterial=!0,this.type="MeshLineMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get:function(){return this.uniforms.lineWidth.value},set:function(e){this.uniforms.lineWidth.value=e}},map:{enumerable:!0,get:function(){return this.uniforms.map.value},set:function(e){this.uniforms.map.value=e}},useMap:{enumerable:!0,get:function(){return this.uniforms.useMap.value},set:function(e){this.uniforms.useMap.value=e}},alphaMap:{enumerable:!0,get:function(){return this.uniforms.alphaMap.value},set:function(e){this.uniforms.alphaMap.value=e}},useAlphaMap:{enumerable:!0,get:function(){return this.uniforms.useAlphaMap.value},set:function(e){this.uniforms.useAlphaMap.value=e}},color:{enumerable:!0,get:function(){return this.uniforms.color.value},set:function(e){this.uniforms.color.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}},sizeAttenuation:{enumerable:!0,get:function(){return this.uniforms.sizeAttenuation.value},set:function(e){this.uniforms.sizeAttenuation.value=e}},dashArray:{enumerable:!0,get:function(){return this.uniforms.dashArray.value},set:function(e){this.uniforms.dashArray.value=e,this.useDash=e!==0?1:0}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(e){this.uniforms.dashOffset.value=e}},dashRatio:{enumerable:!0,get:function(){return this.uniforms.dashRatio.value},set:function(e){this.uniforms.dashRatio.value=e}},useDash:{enumerable:!0,get:function(){return this.uniforms.useDash.value},set:function(e){this.uniforms.useDash.value=e}},visibility:{enumerable:!0,get:function(){return this.uniforms.visibility.value},set:function(e){this.uniforms.visibility.value=e}},alphaTest:{enumerable:!0,get:function(){return this.uniforms.alphaTest.value},set:function(e){this.uniforms.alphaTest.value=e}},repeat:{enumerable:!0,get:function(){return this.uniforms.repeat.value},set:function(e){this.uniforms.repeat.value.copy(e)}},thresholdRatio:{enumerable:!0,get:function(){return this.uniforms.thresholdRatio.value},set:function(e){this.uniforms.thresholdRatio.value=e}}}),this.setValues(t)}};ti.prototype.copy=function(a){return _r.prototype.copy.call(this,a),this.lineWidth=a.lineWidth,this.map=a.map,this.useMap=a.useMap,this.alphaMap=a.alphaMap,this.useAlphaMap=a.useAlphaMap,this.color.copy(a.color),this.opacity=a.opacity,this.resolution.copy(a.resolution),this.sizeAttenuation=a.sizeAttenuation,this.dashArray.copy(a.dashArray),this.dashOffset.copy(a.dashOffset),this.dashRatio.copy(a.dashRatio),this.useDash=a.useDash,this.visibility=a.visibility,this.alphaTest=a.alphaTest,this.repeat.copy(a.repeat),this};var Pr={texture_url:Pi,lineWidth:10,color:16777215},fs=class extends Yp{registryEvent(){this.navigation.bmap.context.addEventListener("control-change",this.onControlChange),this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.bmap.context.addEventListener("resize",this.onResize)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("control-change",this.onControlChange),this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.bmap.context.removeEventListener("resize",this.onResize)}getRepeat(){let{points:t,navigation:{bmap:{context:{camera:e,clientSize:{width:i,height:s}}}}}=this,o=t.map(r=>{let[h,c]=r;return D(new $p(h,c,0),e,i,s)}).map(r=>{let{x:h,y:c}=r;return[h,c]});return pt(o)/32}changeRepeat(){if(!this.material)return;let t=this.getRepeat();this.material.repeat=new xo(t,1)}loadTexture(t){return new Promise((e,i)=>{new Xp().load(t,e,void 0,i)})}transformPoints(t){let e=[];for(let i=0;i<t.length;i++)e.push(...t[i],0);return e}updatePoints(t){this.points=t,this.changeRepeat();let e=this.transformPoints(t);this.geometry&&this.geometry.setPoints(e)}movePath(t){this.material&&(this.material.thresholdRatio=t)}create(t){return f(this,null,function*(){let e=this.geometry=new gt;if(this.updatePoints(t),!this.texture){let o=this.texture=yield this.loadTexture(this.config.texture_url);o.wrapS=o.wrapT=Qp}let i=this.material=new ti({useMap:!0,color:new qp(this.config.color),transparent:!0,resolution:new xo(this.navigation.bmap.context.clientSize.width,this.navigation.bmap.context.clientSize.height),depthTest:!1,sizeAttenuation:!1,lineWidth:this.config.lineWidth*2,map:this.texture,blending:Jp,repeat:new xo(this.getRepeat(),1)}),s=this.mesh=new Kp(e,i);return s.renderOrder=99999,this.add(s),s})}dispose(){var t,e,i;this.unRegistryEvent(),this.clear(),(t=this.geometry)==null||t.dispose(),(e=this.material)==null||e.dispose(),(i=this.texture)==null||i.dispose(),this.navigation=null}constructor(t,e){super(),this.navigation=t,this.mesh=null,this.geometry=null,this.material=null,this.texture=null,this.config=Pr,this.points=[],this.basicRepeat=1,this.prevCameraZoom=0,this.onControlChange=()=>{let i=this.navigation.bmap.context.camera.zoom;i!==this.prevCameraZoom&&(this.prevCameraZoom=i,this.changeRepeat())},this.onUpdate=()=>{this.texture},this.onResize=()=>{if(this.material){let{width:i,height:s}=this.navigation.bmap.context.clientSize;this.material.resolution.set(i,s)}},this.config=Object.assign({},Pr,e),this.registryEvent(),this.prevCameraZoom=this.navigation.bmap.context.camera.zoom}};import{Tween as wo,Easing as ld}from"@tweenjs/tween.js";import{Vector2 as pd,Vector3 as Et}from"three";import"core-js/modules/es.array.unshift.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.array.push.js";import{Vector2 as td}from"three";import{Tween as ed}from"@tweenjs/tween.js";import{throttle as id}from"lodash";import{booleanPointInPolygon as sd,point as od,polygon as nd}from"@turf/turf";var rd={offsetDistance:15,offsetToResetTime:3e3,directionEmitThreshold:5,simulationSpeed:1,destinationDistanceThreshold:10},gs=class extends tt{get curRoutePath(){return this.paths[this.routeIndex]||null}get curRoutePathPoints(){var t;return((t=this.curRoutePath)==null?void 0:t.points)||[]}registryEvent(){this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.addEventListener("add-path",this.onAddPaths)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.removeEventListener("add-path",this.onAddPaths)}setRoadData(t){this.roadData=t}resetStatus(t){this.offset=!1,this.reset=!1,this.routeIndex=0,this.pointIndex=0,this.offsetDistance=0,this.resetTimer&&(this.timer.clearTimeout(this.resetTimer),this.resetTimer=null),t.length&&(this.position=t[0].points[0])}emitNavigationStatus(){let t=this.getNavigationInfo();t&&this.dispatchEvent({type:"navigation-info",info:t})}adsorb(t,e){let{curRoutePathPoints:i,position:s,curRoutePath:o,paths:n,routeIndex:r}=this;if(!i.length)return null;let h=i,c=this.paths[this.routeIndex].floor,l=this.getCurRouteRemainDistance();if(s){let y=Wt(i,s);h=h.slice(y+1),h.unshift(s)}let p=[{floor:o==null?void 0:o.floor,points:h},...n.slice(r+1)],{distance:d,closestPoint:u,index:m,i:g}=p.reduce((y,w,M)=>{if(w.floor!==t)return y;let{distance:P,closestPoint:L,index:C}=w.points.reduce((H,b,Z,T)=>{if(!T[Z+1])return x({},H,{distance:H.distance===1/0?O(b,e):H.distance});let{distance:k,closestPoint:E}=tn(e,b,T[Z+1]);if(!this.navigation.options.canBack&&c===t){let G=[e,...T.slice(Z+1)],V=pt(G);if(l-V>10)return H}return k<H.distance?{distance:k,closestPoint:E,index:Z}:H},{distance:1/0,closestPoint:w.points[0],index:0});return P<y.distance?{distance:P,closestPoint:L,index:M,i:C}:y},{distance:1/0,closestPoint:h[0],index:0,i:0});return{distance:d,closestPoint:u,routeIndex:m+r,pointIndex:m===0?g+this.pointIndex:g}}toPosition(t,e){let i=this.adsorb(t,e);if(!i)return;let{distance:s,closestPoint:o,routeIndex:n,pointIndex:r}=i;this.offsetDistance=s,s>this.options.offsetDistance?(this.offset=!0,this.resetTimer||(this.resetTimer=this.timer.setTimeout(()=>{this.reset=!0,this.resetTimer=null},this.options.offsetToResetTime))):(this.offset=!1,this.reset=!1,this.resetTimer&&(this.timer.clearTimeout(this.resetTimer),this.resetTimer=null)),this.routeIndex=n,this.pointIndex=r,this.position=o,this.emitNavigationStatus()}startSimulation(){this.resetStatus(this.paths),this.emitNavigationStatus(),this.startCurRouteSimulation()}pause(){var t;this.tweenUtil.clear(),(t=this.throttleUpdatePosition)==null||t.cancel(),this.paused=!0}continue(){this.paused=!1,this.startCurRouteSimulation()}startCurRouteSimulation(){return f(this,null,function*(){let{curRoutePath:t}=this;if(!t)return;this.simulationTween&&this.tweenUtil.remove(this.simulationTween);let e=[];return new Promise(i=>{let s=[this.position,...this.curRoutePathPoints.slice(this.pointIndex+1)],o=this.getCurRouteRemainDistance(),n=o/this.options.simulationSpeed,r=this.throttleUpdatePosition=id(c=>{let l=xe(s,c.distance);l&&(e.push({floor:t.floor,pos:l}),this.toPosition(t.floor,l))},100),h=this.simulationTween=new ed({distance:0},this.tweenUtil.group).to({distance:o},n*1e3).onUpdate(r).onComplete(()=>{this.tweenUtil.remove(h),r.flush(),r.cancel(),this.routeIndex+1<this.paths.length?(this.routeIndex++,this.position=this.paths[this.routeIndex].points[0],this.pointIndex=0,setTimeout(()=>{i(this.startCurRouteSimulation())},3e3)):(i(!0),console.log(e,this.routeIndex,this.paths))}).start()})})}changeSimulationSpeed(t){this.options.simulationSpeed=t,this.paused||this.startCurRouteSimulation()}getCurRouteRemainDistance(){let{curRoutePathPoints:t,pointIndex:e,position:i}=this;if(!t.length)return 0;let s=[i,...t.slice(e+1)];return pt(s)}getCurRouteToStartDistance(){let{curRoutePathPoints:t,pointIndex:e,position:i}=this;if(!t.length)return 0;let s=[...t.slice(0,e+1),i];return pt(s)}getRemainDistance(){let t=this.getCurRouteRemainDistance();return{total:this.paths.slice(this.routeIndex+1).reduce((s,o)=>s+o.distance,0)+t,curRoute:t}}getNextDirDistance(){var t;if(!this.position)return null;let{pointIndex:e,curRoutePathPoints:i,position:s,curRoutePath:o}=this,n=e,r=Nt.FRONT,h=(o==null||(t=o.pointInfos[n])==null?void 0:t.crossName)||"",c=0,l=0,p=0;for(;r===Nt.FRONT&&n<=i.length;){let g=i[n],y=i[n+1],w=i[n+2];if(!g||!y)r=Nt.END;else if(c+=O(g,y),!w)r=Nt.END;else{r=Us(g,y,w),l=me(g,y,w),p=(new td(w[0]-y[0],w[1]-y[1]).angle()*180/Math.PI-90+360)%360;var d;h=(d=o==null?void 0:o.pointInfos[n+1].crossName)!=null?d:"",n+=1}}i[n]&&(c=O(s,i[n]));let u=Hs(l);if(r===Nt.END&&c<=this.options.directionEmitThreshold)return{dir:r,distance:c,crossName:h,angle:l,nextAngle:p,nextDir:u};let m=this.getCurRouteToStartDistance();return e===0&&m<=5?{dir:Nt.START,distance:c,crossName:h,angle:l,nextAngle:p,nextDir:u}:(c>=this.options.directionEmitThreshold&&(r=Nt.FRONT),{dir:r,distance:c,crossName:h,angle:l,nextAngle:p,nextDir:u})}getCurPointAreaInfo(){let t=this.roadData.find(e=>e.floor===this.paths[this.routeIndex].floor);if(t){let e=(t.areas||[]).find(i=>{let s=nd(i.cds),o=od(this.position);return sd(o,s)});if(e)return e}return{imageUrl:null}}getNavigationInfo(){let{total:t,curRoute:e}=this.getRemainDistance(),i=this.getNextDirDistance();if(!i)return null;let{dir:s,distance:o,crossName:n,angle:r,nextAngle:h,nextDir:c}=i;e<=this.options.destinationDistanceThreshold&&(s=Nt.END);let{imageUrl:l}=this.getCurPointAreaInfo();return{distance:t,curRouteDistance:e,nextDirDistance:o,dir:s,angle:r,nextAngle:h,pos:this.position,routeIndex:this.routeIndex,crossName:n,offset:this.offset,reset:this.reset,imageUrl:l,nextDir:c,offsetDistance:this.offsetDistance}}dispose(){this.timer.dispose(),this.unRegistryEvent(),this.tweenUtil.clear(),this.navigation=null}constructor(t,e,i){super(),this.navigation=t,this.offset=!1,this.reset=!1,this.position=[0,0],this.routeIndex=0,this.pointIndex=0,this.paths=[],this.timer=new j,this.resetTimer=null,this.tweenUtil=new ee,this.paused=!1,this.offsetDistance=0,this.onAddPaths=s=>{let{paths:o}=s;this.paths=o,this.resetStatus(o),this.simulationTween&&!this.paused&&this.startSimulation()},this.onUpdate=()=>{this.tweenUtil.update()},this.options=Object.assign({},rd,e),this.roadData=i,this.registryEvent()}};import"core-js/modules/es.typed-array.uint8-array.js";import"core-js/modules/es.typed-array.at.js";import"core-js/modules/es.typed-array.fill.js";import"core-js/modules/es.typed-array.find-last.js";import"core-js/modules/es.typed-array.find-last-index.js";import"core-js/modules/es.typed-array.set.js";import"core-js/modules/es.typed-array.sort.js";import"core-js/modules/es.typed-array.to-reversed.js";import"core-js/modules/es.typed-array.to-sorted.js";import"core-js/modules/es.typed-array.with.js";import"core-js/modules/es.array-buffer.constructor.js";import"core-js/modules/es.array-buffer.slice.js";import"core-js/modules/es.array-buffer.detached.js";import"core-js/modules/es.array-buffer.transfer.js";import"core-js/modules/es.array-buffer.transfer-to-fixed-length.js";import"core-js/modules/es.typed-array.from.js";import"core-js/modules/web.dom-collections.iterator.js";import{DataTexture as ad,LinearFilter as br,RGBAFormat as Sr,Sprite as hd,SpriteMaterial as cd}from"three";var Yt=class a extends J{addDebug(){a.canvas.style.cssText=`
504
504
  position: fixed;