leiting-bim 2.1.35 → 2.1.36

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.
@@ -114,7 +114,7 @@
114
114
  // 通常不需要 clamp,除非开启 HDR 后期望超亮,但负值需要避免
115
115
  material.diffuse = max(material.diffuse, vec3(0.0));
116
116
  }
117
- `});f.isModelAdjustment=!0,h.customShader=f}else e.brightness!==void 0&&e.brightness!==1&&!h.style&&(h.style=new i.Cesium3DTileStyle({color:`color('white') * ${e.brightness}`}))}}setModelBrightness(e){this.setModelColorAdjustment({brightness:e})}_defaultSkyBox=null;_updateLightDirection=e=>{e.light instanceof this.cesium.DirectionalLight&&(e.light.direction=e.camera.directionWC)};setEnvironmentMapEnable(e){this.is2d||(e?(this.viewer.scene.light=new this.cesium.DirectionalLight({direction:this.viewer.scene.camera.directionWC}),this.viewer.scene.preRender.addEventListener(this._updateLightDirection)):(this._defaultSkyBox&&(this.viewer.scene.skyBox=this._defaultSkyBox),this.viewer.scene.preRender.removeEventListener(this._updateLightDirection),this.viewer.scene.light=new this.cesium.SunLight),this.viewer.scene.imageBasedLighting&&(this.viewer.scene.imageBasedLighting.imageBasedLightingFactor=e?new this.cesium.Cartesian2(2,2):new this.cesium.Cartesian2(1,1)))}setAmbientOcclusion(e){if(this.is2d)return;const t=this.viewer.scene;if(!t||!t.postProcessStages||!t.postProcessStages.ambientOcclusion)return;const i=t.postProcessStages.ambientOcclusion;i.enabled=e,e&&(i.uniforms.ambientOcclusionOnly=!1,i.uniforms.intensity=3,i.uniforms.bias=.1,i.uniforms.lengthCap=.03,i.uniforms.stepSize=1,i.uniforms.blurStepSize=.86)}setCollisionDetection(e){if(this.is2d){this.viewer.scene.screenSpaceCameraController.enableCollisionDetection=!1;return}const t=this.viewer.scene.screenSpaceCameraController;t.enableCollisionDetection=e,e||t.minimumZoomDistance<1&&(t.minimumZoomDistance=1)}setMouseHabit(e){if(this.is2d)return;const t=this.viewer.scene.screenSpaceCameraController;t.enableTranslate=!0,t.enableRotate=!0,t.enableZoom=!0,t.enableTilt=!0,t.enableLook=!1,t.lookEventTypes=[],e===1?(t.rotateEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.MIDDLE_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.LEFT_DRAG]):(t.rotateEventTypes=[this.cesium.CameraEventType.LEFT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.MIDDLE_DRAG])}}class k0{cesium;viewer;constructor(e){this.cesium=e.cesium,this.viewer=e.viewer}getCameraView(){const e=this.viewer.camera;return{position:{x:e.position.x,y:e.position.y,z:e.position.z},orientation:{heading:e.heading,pitch:e.pitch,roll:e.roll},duration:1}}flyToCameraView(e){const{position:t,orientation:i,duration:s}=e,o=new this.cesium.Cartesian3(t.x,t.y,t.z),r=new this.cesium.HeadingPitchRoll(i.heading,i.pitch,i.roll);!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}getCurrentCameraPositionAndTarget(){const e=this.getCameraView();return{position:e.position,target:{heading:e.orientation.heading,pitch:e.orientation.pitch,roll:e.orientation.roll},duration:e.duration}}setCameraView(e){const t=e.target||e.orientation||{};this.flyToCameraView({position:{x:Number(e.position.x),y:Number(e.position.y),z:Number(e.position.z)},orientation:{heading:Number(t.heading||0),pitch:Number(t.pitch||0),roll:Number(t.roll||0)},duration:e.duration})}}function P0(n){const{container:e,appContext:t,methods:i,viewerOptions:s,options:o,callbacks:r}=n,l=new pi,a=window.Cesium;if(!a)throw new Error("Cesium is not loaded");e.id=`cesium-container-${Sg()}`;const c={animation:!1,timeline:!1,infoBox:!1,homeButton:!1,fullscreenButton:!1,sceneModePicker:!1,navigationHelpButton:!1,geocoder:!1,baseLayerPicker:!1,selectionIndicator:!1,creditContainer:document.createElement("div"),contextOptions:{webgl:{alpha:!0}}},u=t?.config?.globalProperties?.$leitingBimOptions,h={...c,...u?.viewerOptions??{},...s??{}},f=new a.Viewer(e,h);f.camera.setView({destination:a.Cartesian3.fromDegrees(108,32,1e7),orientation:{heading:a.Math.toRadians(0),pitch:a.Math.toRadians(-90),roll:0}});let p=i;if(!p&&u&&(u.methods||(u.methods={}),p=u.methods),p){const m=new Qg({cesium:a,viewer:f,options:o,callbacks:r}),y=new ka({cesium:a,viewer:f}),A=new D0({cesium:a,viewer:f}),C=new Hg({cesium:a,viewer:f}),E=new k0({cesium:a,viewer:f});let x;const M=new tc({cesium:a,viewer:f});o&&(o.globe!==void 0&&A.setGlobeEnvironmentVisible(o.globe),o.terrain!==void 0&&A.setTerrainEnable(o.terrain),o.depthTest!==void 0&&A.setDepthTestEnable(o.depthTest),o.mapProvider&&o.mode!=="2d"&&A.changeBaseMap(o.mapProvider,{token:o.tiandituToken,layerType:o.tiandituLayerType,showAnnotation:o.tiandituShowLabel,url:o.arcgisUrl}),o.shadows!==void 0&&A.setShadowsEnable(o.shadows),o.environmentMap!==void 0&&A.setEnvironmentMapEnable(o.environmentMap),o.ambientOcclusion!==void 0&&A.setAmbientOcclusion(o.ambientOcclusion),o.time!==void 0&&A.setTime(o.time),o.brightness!==void 0&&A.setModelBrightness(o.brightness),o.backgroundColor!==void 0&&A.setBackgroundColor(o.backgroundColor),o.collision!==void 0&&A.setCollisionDetection(o.collision),o.mouseHabit!==void 0&&A.setMouseHabit(o.mouseHabit)),o&&o.mode==="2d"&&(console.log("InitMap: Setting CAD Mode 2D"),A.setCadMode("2d"),x=new ao({cesium:a,viewer:f})),y.events.on("tilesetLoaded",g=>{m.baseCompt.attachTileset(g,m.baseCompt.selectedColor),m.baseSection.attachTileset(g,g.leiting?.model?.modelId),p&&p.tilesLoad3dTiles&&p.tilesLoad3dTiles(g),o?.tilesLoad3dTiles&&o.tilesLoad3dTiles(g.leiting)}),y.events.on("loadingStatus",g=>{p&&p.onLoadingStatus&&p.onLoadingStatus(g)}),y.events.on("mountAll3Dtiles",({modelList:g,mapTileset:k})=>{o?.mountAll3Dtiles&&o.mountAll3Dtiles(g),p?.mountAll3Dtiles&&p.mountAll3Dtiles(k)}),C.events.on("mountAllCad",g=>{o?.mountAllCad&&o.mountAllCad(g),p?.mountAllCad&&p.mountAllCad(g)}),m.baseCompt.selectionChange(g=>{g.length!==0&&(o?.selectionChange&&o.selectionChange(g),p?.selectionChange&&p.selectionChange(g))}),p.onSearchComponent=g=>{o?.searchComponent&&o.searchComponent(g),p?.searchComponent&&p.searchComponent(g)};const T=p.saveRegion;p.saveRegion=g=>{o?.saveRegion&&o.saveRegion(g),T&&T!==o?.saveRegion&&T(g)};const B=p.saveCadCalibration;p.saveCadCalibration=g=>{o?.saveCadCalibration&&o.saveCadCalibration(g),B&&B!==o?.saveCadCalibration&&B(g)};const I=p.saveCadRegion;p.saveCadRegion=g=>{o?.saveCadRegion&&o.saveCadRegion(g),I&&I!==o?.saveCadRegion&&I(g)},p.getCesium=()=>a,p.getViewer=()=>f,p.getAnnotationInstance=()=>x,p.getMeasureInstance=()=>M,p.flyTo=g=>{E.setCameraView(g)},p.addPoint=(g,k,P=0)=>{f.entities.add({position:a.Cartesian3.fromDegrees(g,k,P),point:{pixelSize:10,color:a.Color.RED}})},p.enableTestLabel=()=>m.enableTestLabel(),p.setBackgroundColor=g=>A.setBackgroundColor(g),p.enableCesiumFXAA=g=>m.enableCesiumFXAA(g),p.setSceneOptions=g=>m.setSceneOptions(g),p.getCameraInfo=()=>E.getCameraView(),p.flyToCameraView=g=>E.flyToCameraView(g),p.getCurrentCameraPositionAndTarget=()=>E.getCurrentCameraPositionAndTarget(),p.setCameraView=g=>E.setCameraView(g),p.getImageBase64=()=>{const g=f.scene.canvas;return f.render(),g.toDataURL("image/png")},p.getSnapDomSImageBase64=(g,k)=>m.getSnapDomSImageBase64(g,k),p.addModels=g=>y.addModels(g),p.add3DtilesModel=g=>y.addModels(g),p.addOSGB=g=>y.addOSGB(g),p.updateOSGBMatrix=g=>y.updateOSGBMatrix(g),p.showModels=g=>y.showModels(g),p.showTileset=g=>y.showModels(g),p.deleteModels=g=>y.deleteModels(g),p.deleteAllModelList=()=>{y.deleteAllModels(),l.emit("deleteAllModels")},p.deleteAllModels=()=>{y.deleteAllModels(),l.emit("deleteAllModels")},p.flyToTileset=g=>y.flyToTileset(g),p.flyToByModelId=g=>y.flyToTileset(g),p.updateModelEffect=g=>m.updateModelEffect(g),p.getMapTileset=()=>y.getMapTileset(),p.getBIMmodelId=()=>y.getBIMmodelId(),p.getModelList=()=>y.getModelList(),p.setMapTileset=g=>y.setMapTileset(g),p.setBIMmodelId=g=>y.setBIMmodelId(g),p.setModelList=g=>y.setModelList(g),p.setSelectColorUserModelCpt=(g,k)=>m.baseCompt.setSelectColorUserModelCpt(g,k),p.setAllSelectColorUserModelCpt=g=>m.baseCompt.setAllSelectColorUserModelCpt(g),p.setSelectColorUserModelCptByClear=()=>m.baseCompt.clearAllHaveSelected(),p.clearSelectColorUserModelCpt=()=>m.baseCompt.clearAllHaveSelected(),p.setSelecteds=(g,k)=>m.baseCompt.setSelectColorUserModelCpt(g,k??{rank:0}),p.setSelectedColor=(g,k,P,F)=>m.baseCompt.setSelectedColorRgba(g,k,P,F),p.clearAllHaveSelected=()=>m.baseCompt.clearAllHaveSelected(),p.getSelected=g=>m.baseCompt.getSelected(g),p.selectionChange=g=>{m.baseCompt.selectionChange(g)},p.flyToObjects=g=>m.baseCompt.flyToObjects(g),p.setAllConstructionProgressTracking=g=>m.baseCompt.setAllConstructionProgressTracking(g),p.enableAllConstructionProgressTracking=()=>m.baseCompt.enableConstructionProgressTracking(),p.disableConstructionProgressTracking=()=>m.baseCompt.disableConstructionProgressTracking(),p.freshConstructionProgressTracking=()=>m.baseCompt.freshConstructionProgressTracking(),p.reStartAnimation=()=>m.baseCompt.reStartAnimation(),p.resumeFlyTo=()=>m.baseCompt.resumeFlyTo(),p.pauseFlyTo=()=>m.baseCompt.pauseFlyTo(),p.pauseAnimation=()=>m.baseCompt.pauseFlyTo(),p.resumeAnimation=()=>m.baseCompt.resumeFlyTo(),p.setElementsListVisible=g=>m.baseCompt.setComponentVisibility(g),p.setAllElementsVisible=g=>m.baseCompt.setAllComponentsVisibility(g),p.getElementsVisible=g=>m.baseCompt.getComponentsByVisibility(g),p.setComponentVisibility=g=>m.baseCompt.setComponentVisibility(g),p.setAllComponentsVisibility=g=>m.baseCompt.setAllComponentsVisibility(g),p.getComponentsByVisibility=g=>m.baseCompt.getComponentsByVisibility(g),p.openSection=(g,k)=>m.baseSection.open(g,k),p.closeSection=g=>m.baseSection.close(g),p.updateSectionRange=g=>m.baseSection.updateRange(g),p.getSectionRange=()=>m.baseSection.getRange(),p.fitToModels=()=>m.baseSection.fitToModels(),p.setSectionBoxVisibility=g=>m.baseSection.setBoxVisibility(g),p.openPlayer=()=>{m.baseCompt.disableSelection(),m.basePlayer.openPlayer()},p.closePlayer=()=>{m.basePlayer.closePlayer(),m.baseCompt.enableSelection()},p.setPersonPosition=g=>m.basePlayer.setPersonPosition(g),p.setPlayerSpeed=g=>m.basePlayer.setSpeed({speed:g}),p.setPlayerParams=g=>m.basePlayer.setParams(g),p.setPlayerMoveState=(g,k)=>m.basePlayer.setMoveState(g,k),p.bindPlayerUiKeys=g=>m.basePlayer.bindUiKeys(g),p.setGlobeEnvironmentVisible=g=>A.setGlobeEnvironmentVisible(g),p.setGlobeColor=g=>A.setGlobeColor(g),p.setCadMode=g=>A.setCadMode(g),p.setTerrainEnable=g=>A.setTerrainEnable(g),p.setDepthTestEnable=g=>A.setDepthTestEnable(g),p.changeBaseMap=(g,k)=>A.changeBaseMap(g,k),p.searchLocation=(g,k)=>A.searchLocation(g,k),p.setShadowsEnable=g=>A.setShadowsEnable(g),p.setShadowDarkness=g=>{A.setShadowDarkness?A.setShadowDarkness(g):console.warn("baseSetting.setShadowDarkness is not available. Please reload the page.")},p.setTime=g=>A.setTime(g),p.setModelBrightness=g=>A.setModelBrightness(g),p.setModelColorAdjustment=g=>A.setModelColorAdjustment(g),p.setEnvironmentMapEnable=g=>A.setEnvironmentMapEnable(g),p.setAmbientOcclusion=g=>A.setAmbientOcclusion(g),p.setCollisionDetection=g=>A.setCollisionDetection(g),p.setMouseHabit=g=>A.setMouseHabit(g),p.is2dMode=()=>A.is2d,p.setSceneMode=g=>{const k=g?"2d":"3d";A.setCadMode(k),g&&!x&&(x=new ao({cesium:a,viewer:f})),l.emit("setMode",k)},p.setGisOptions=g=>{g.globe!==void 0&&A.setGlobeEnvironmentVisible(g.globe),g.elevation!==void 0&&A.setTerrainEnable(g.elevation),g.depthTestAgainstTerrain!==void 0&&A.setDepthTestEnable(g.depthTestAgainstTerrain),g.rendering!==void 0&&A.setAmbientOcclusion(g.rendering)},p.getConfigure=()=>(console.warn("getConfigure is not initialized. Please ensure LeitingSetting component is mounted."),{}),p.setConfigure=g=>{console.warn("setConfigure is not initialized. Please ensure LeitingSetting component is mounted.",g)},p.addDxfModel=g=>{const k={...g};return k.files&&!k.fileNames&&(k.fileNames=k.files),k.fileNames||(k.fileNames=[]),C.addDxfModel(k)},p.deleteCad=g=>C.deleteCad(g),p.deleteAllCad=()=>C.deleteAllCad(),p.showDxfModel=g=>C.showJson(g),p.showDxfLayer=g=>C.showJsonByLayer(g),p.flyToCadModel=(g={})=>C.flyToCadModel(g),p.getDxfModels=g=>C.getDxfModels(g),p.getDxfLayers=g=>C.getMapLayers(g),p.getCadModelId=()=>C.getModelId(),p.setDxfOpen=g=>C.setDxfOpen(g),p.getDxfOpen=()=>C.getDxfOpen(),p.adjustingModelByCad=g=>C.adjustingModelByCad(g),p.saveAnnotations=()=>{let g=null;return x&&(g=x.saveAnnotations()),o?.saveAnnotations&&o.saveAnnotations(g),g},p.loadAnnotations=g=>x?x.loadAnnotations(g):!1,p.set2d=g=>{const k=g?"2d":"3d";A.setCadMode(k),g&&!x&&(x=new ao({cesium:a,viewer:f})),l.emit("setMode",k)},p.flyToTopView=()=>{C.flyToCadModel()},p.menuEvents=l,p.insertMenu=g=>{l.emit("insertMenu",g)},p.setMenuListFilter=g=>{l.emit("setMenuListFilter",g)},p.showMenu=g=>{l.emit("showMenu",g)},p.setMenuActive=(g,k)=>{l.emit("setMenuActive",g,k)},p.insertContextMenu=g=>{console.warn("insertContextMenu is not initialized yet. Please wait for LeitingBIM component to mount.",g)},p.deleteContextMenu=g=>{console.warn("deleteContextMenu is not initialized yet.",g)},p.hideContextMenu=()=>{console.warn("hideContextMenu is not initialized yet.")},p.baseCompt=m.baseCompt,p.getTree=()=>{const g=[],k=y.getMapTileset();return Object.keys(k).forEach(P=>{const F=k[P];if(F&&F.leiting&&F.leiting.tree){const L=F.leiting.tree;Array.isArray(L)?g.push(...L):g.push(L)}}),g},p.getAllComponents=()=>{const g=y.getMapTileset(),k={},P=[];try{Object.keys(g).forEach(F=>{const L=g[F];if(!L||!L.leiting)return;const H=L.leiting,O=H.node,b=H.model.formData,w=H.box;if(!O||!O.nodeExtras)return;const v=H.model.modelId;k[v]=O.nodeExtras;const S=O.nodeExtras.element;if(!S)return;const R=w?w.center:{x:0,y:0,z:0};Object.values(S).forEach(_=>{if(_.box3)try{const N=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(b.totalRotation||0)),D=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(N),new a.Cartesian3(0,0,0)),Q=a.Cartesian3.fromDegrees(b.longitude,b.latitude,b.height),V=a.Transforms.eastNorthUpToFixedFrame(Q);a.Matrix4.multiply(V,D,V);const $=new a.Cartesian3(R.x,R.y,0),q=new a.Cartesian3;a.Matrix4.multiplyByPoint(V,$,q);const ne=a.Cartographic.fromCartesian(q),se=_.box3?.Center?.x||0,Y=_.box3?.Center?.y||0,j=_.box3?.Center?.z||0,J=new a.Cartesian3(-R.x+se,-R.y+Y,0+j),oe=a.Matrix4.fromTranslation(J),le=a.Matrix4.clone(oe);a.Matrix4.multiply(D,le,le);const ge=a.Cartesian3.fromDegrees(ne.longitude/Math.PI*180,ne.latitude/Math.PI*180,b.height),we=a.Transforms.eastNorthUpToFixedFrame(ge);a.Matrix4.multiply(we,le,we);const me=a.Cartographic.fromCartesian(new a.Cartesian3(we[12],we[13],we[14]));_.box3.cartographic={longitude:me.longitude/Math.PI*180,latitude:me.latitude/Math.PI*180,height:me.height};const Re={id:_.uniqueId,billboard:[{theme:"Tag9999",position:[_.box3.cartographic.longitude,_.box3.cartographic.latitude,_.box3.cartographic.height],options:{text:_.name}}]};P.push(Re)}catch(N){console.warn("Error calculating component position:",N)}})})}catch(F){console.error("getAllComponents error:",F)}return k},p.getCptInfos=g=>{if(!Array.isArray(g))return[];const k=y.getMapTileset(),P=[],F={};g.forEach(L=>{!L.modelId||!L.elementId||(F[L.modelId]||(F[L.modelId]=[]),F[L.modelId]?.push(L.elementId))});try{Object.keys(F).forEach(L=>{const H=k[L];if(!H||!H.leiting)return;const O=H.leiting,b=O.node,w=O.model.formData,v=O.box;if(!b||!b.nodeExtras)return;const S=b.nodeExtras.element;if(!S)return;const R=v?v.center:{x:0,y:0,z:0};F[L]?.forEach(_=>{const N=S[_];if(N&&N.box3)try{const D=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(w.totalRotation||0)),Q=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(D),new a.Cartesian3(0,0,0)),V=a.Cartesian3.fromDegrees(w.longitude,w.latitude,w.height),$=a.Transforms.eastNorthUpToFixedFrame(V);a.Matrix4.multiply($,Q,$);const q=new a.Cartesian3(R.x,R.y,0),ne=new a.Cartesian3;a.Matrix4.multiplyByPoint($,q,ne);const se=a.Cartographic.fromCartesian(ne),Y=N.box3?.Center?.x||0,j=N.box3?.Center?.y||0,J=N.box3?.Center?.z||0,oe=new a.Cartesian3(-R.x+Y,-R.y+j,0+J),le=a.Matrix4.fromTranslation(oe),ge=a.Matrix4.clone(le);a.Matrix4.multiply(Q,ge,ge);const we=a.Cartesian3.fromDegrees(se.longitude/Math.PI*180,se.latitude/Math.PI*180,w.height),me=a.Transforms.eastNorthUpToFixedFrame(we);a.Matrix4.multiply(me,ge,me);const Re=a.Cartographic.fromCartesian(new a.Cartesian3(me[12],me[13],me[14]));N.box3.cartographic={longitude:Re.longitude/Math.PI*180,latitude:Re.latitude/Math.PI*180,height:Re.height},P.push(N)}catch(D){console.warn("Error calculating component position:",D)}})})}catch(L){console.error("getCptInfos error:",L)}return P},window.Methods=p}return console.log("methods",p),{Cesium:a,viewer:f,methods:p,menuEvents:l}}function lo(n){return d.getCurrentScope()?(d.onScopeDispose(n),!0):!1}function co(n){return typeof n=="function"?n():d.unref(n)}const F0=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const R0=Object.prototype.toString,O0=n=>R0.call(n)==="[object Object]",L0=()=>{};function N0(n){return d.getCurrentInstance()}function nc(n,e=!0,t){N0()?d.onMounted(n,t):e?n():d.nextTick(n)}function Lt(n){var e;const t=co(n);return(e=t?.$el)!=null?e:t}const Ln=F0?window:void 0;function U0(...n){let e,t,i,s;if(typeof n[0]=="string"||Array.isArray(n[0])?([t,i,s]=n,e=Ln):[e,t,i,s]=n,!e)return L0;Array.isArray(t)||(t=[t]),Array.isArray(i)||(i=[i]);const o=[],r=()=>{o.forEach(u=>u()),o.length=0},l=(u,h,f,p)=>(u.addEventListener(h,f,p),()=>u.removeEventListener(h,f,p)),a=d.watch(()=>[Lt(e),co(s)],([u,h])=>{if(r(),!u)return;const f=O0(h)?{...h}:h;o.push(...t.flatMap(p=>i.map(m=>l(u,p,m,f))))},{immediate:!0,flush:"post"}),c=()=>{a(),r()};return lo(c),c}function _0(){const n=d.ref(!1),e=d.getCurrentInstance();return e&&d.onMounted(()=>{n.value=!0},e),n}function ic(n){const e=_0();return d.computed(()=>(e.value,!!n()))}function Q0(n,e={}){const{window:t=Ln}=e,i=ic(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const o=d.ref(!1),r=c=>{o.value=c.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",r):s.removeListener(r))},a=d.watchEffect(()=>{i.value&&(l(),s=t.matchMedia(co(n)),"addEventListener"in s?s.addEventListener("change",r):s.addListener(r),o.value=s.matches)});return lo(()=>{a(),l(),s=void 0}),o}function H0(n,e,t={}){const{window:i=Ln,...s}=t;let o;const r=ic(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},a=d.computed(()=>Array.isArray(n)?n.map(h=>Lt(h)):[Lt(n)]),c=d.watch(a,h=>{if(l(),r.value&&i){o=new ResizeObserver(e);for(const f of h)f&&o.observe(f,s)}},{immediate:!0,flush:"post"}),u=()=>{l(),c()};return lo(u),{isSupported:r,stop:u}}function G0(n,e={width:0,height:0},t={}){const{window:i=Ln,box:s="content-box"}=t,o=d.computed(()=>{var h,f;return(f=(h=Lt(n))==null?void 0:h.namespaceURI)==null?void 0:f.includes("svg")}),r=d.ref(e.width),l=d.ref(e.height),{stop:a}=H0(n,([h])=>{const f=s==="border-box"?h.borderBoxSize:s==="content-box"?h.contentBoxSize:h.devicePixelContentBoxSize;if(i&&o.value){const p=Lt(n);if(p){const m=p.getBoundingClientRect();r.value=m.width,l.value=m.height}}else if(f){const p=Array.isArray(f)?f:[f];r.value=p.reduce((m,{inlineSize:y})=>m+y,0),l.value=p.reduce((m,{blockSize:y})=>m+y,0)}else r.value=h.contentRect.width,l.value=h.contentRect.height},t);nc(()=>{const h=Lt(n);h&&(r.value="offsetWidth"in h?h.offsetWidth:e.width,l.value="offsetHeight"in h?h.offsetHeight:e.height)});const c=d.watch(()=>Lt(n),h=>{r.value=h?e.width:0,l.value=h?e.height:0});function u(){a(),c()}return{width:r,height:l,stop:u}}function Y0(n={}){const{window:e=Ln,initialWidth:t=Number.POSITIVE_INFINITY,initialHeight:i=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=n,r=d.ref(t),l=d.ref(i),a=()=>{e&&(o?(r.value=e.innerWidth,l.value=e.innerHeight):(r.value=e.document.documentElement.clientWidth,l.value=e.document.documentElement.clientHeight))};if(a(),nc(a),U0("resize",a,{passive:!0}),s){const c=Q0("(orientation: portrait)");d.watch(c,()=>a())}return{width:r,height:l}}const V0={class:"title"},W0={class:"actions"},z0={class:"card-body"},j0=d.defineComponent({__name:"LeitingDraggableCard",props:{visible:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},title:{type:String,default:"Title"},initialPosition:{type:Object,default:()=>({x:0,y:0})},width:{type:[Number,String],default:200},minWidth:{type:Number,default:200},fullHeight:{type:Boolean,default:!1},align:{type:String,default:""}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=d.inject("leiting-theme",d.ref("dark")),s=e,o=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:M=>{s("update:visible",M),s("update:open",M)}}),r=d.ref(null),l=d.ref(t.initialPosition?.x||0),a=d.ref(t.initialPosition?.y||0),c=d.ref(t.width),u=d.ref(t.fullHeight?"100%":"600px");d.watch(()=>t.fullHeight,M=>{M?u.value="100%":u.value==="100%"&&(u.value="600px")});const{height:h}=Y0();d.watch(h,()=>{t.fullHeight&&(u.value="100%")});const f=d.ref(!1),p=M=>{f.value=!0,M.preventDefault(),M.stopPropagation();const T=M.clientX,B=M.clientY,I=typeof c.value=="number"?c.value:r.value?.offsetWidth||0,g=typeof u.value=="number"?u.value:r.value?.offsetHeight||0,k=F=>{if(!f.value)return;F.preventDefault();const L=F.clientX-T,H=F.clientY-B,O=I+L,b=g+H;O>100&&(c.value=O),b>100&&(u.value=b)},P=()=>{f.value=!1,document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",P)};document.addEventListener("mousemove",k),document.addEventListener("mouseup",P)},m=d.computed(()=>({left:`${l.value}px`,top:`${a.value}px`,width:typeof c.value=="number"?`${c.value}px`:c.value,height:typeof u.value=="number"?`${u.value}px`:u.value,position:"absolute",zIndex:2e3})),y=()=>{d.nextTick(()=>{if(r.value){const M=r.value.offsetParent||document.body,T=M.clientWidth,B=M.clientHeight,I=typeof c.value=="number"?c.value:r.value.offsetWidth||350,g=typeof u.value=="number"?u.value:r.value.offsetHeight||600;l.value+I>T&&(l.value=Math.max(0,T-I-20)),a.value+g>B&&(a.value=Math.max(0,B-g-20)),l.value<0&&(l.value=0),a.value<0&&(a.value=0)}})},A=d.ref(!1),C=M=>{if(M.target.closest(".close-btn")||M.target.closest(".actions"))return;A.value=!0,M.preventDefault(),M.stopPropagation();const T=M.clientX,B=M.clientY,I=l.value,g=a.value,k=F=>{if(!A.value)return;F.preventDefault();const L=F.clientX-T,H=F.clientY-B;l.value=I+L,a.value=g+H},P=()=>{A.value=!1,document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",P),y()};document.addEventListener("mousemove",k),document.addEventListener("mouseup",P)},E=()=>{d.nextTick(()=>{if(t.align&&r.value){const M=r.value.offsetParent||document.body,T=typeof c.value=="number"?c.value:r.value.offsetWidth||350;t.align==="right"?l.value=Math.max(0,M.clientWidth-T-20):t.align==="center"&&(l.value=Math.max(0,(M.clientWidth-T)/2))}y()})};d.onMounted(()=>{t.align?E():y()}),d.watch(o,M=>{M&&(t.align?E():y())});const x=()=>{o.value=!1,s("close")};return(M,T)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{ref_key:"cardRef",ref:r,class:d.normalizeClass(["draggable-card leiting-scroll",["leiting-theme-"+d.unref(i)]]),style:d.normalizeStyle(m.value)},[d.createElementVNode("div",{ref:"headerRef",class:"card-header",onMousedown:C},[d.createElementVNode("span",V0,d.toDisplayString(n.title),1),d.createElementVNode("div",W0,[d.renderSlot(M.$slots,"header-extra",{},void 0,!0),d.createElementVNode("span",{class:"close-btn",onClick:x},"×")])],544),d.createElementVNode("div",z0,[d.renderSlot(M.$slots,"default",{},void 0,!0)]),d.createElementVNode("div",{class:"resize-handle",onMousedown:p},[...T[0]||(T[0]=[d.createElementVNode("svg",{viewBox:"0 0 10 10",width:"10",height:"10",fill:"currentColor"},[d.createElementVNode("path",{d:"M10 10 L10 2 L2 10 Z"})],-1)])],32)],6)),[[d.vShow,o.value]])}}),Ue=(n,e)=>{const t=n.__vccOpts||n;for(const[i,s]of e)t[i]=s;return t},Fe=Ue(j0,[["__scopeId","data-v-4db89eda"]]);function $0(n){const e=d.ref([]),t=d.ref([]),i=d.ref([]),s=d.ref(""),o=d.ref(!0);d.watch(()=>d.unref(n),h=>{if(!h||h.length===0)return;const f=[],p=(A,C)=>{A.forEach(E=>{const x=E.id||E.key||E.$id,M=E.modelId||C;M&&(E.modelId=M),x&&f.push(x),E.children&&E.children.length>0&&p(E.children,M)})};p(h);const m=new Set(i.value);let y=!1;f.forEach(A=>{m.has(A)||(m.add(A),y=!0)}),y&&(i.value=Array.from(m))},{immediate:!0,deep:!0});const r=d.computed(()=>{const h=d.unref(n);if(!h)return[];const f=[],p=(m,y)=>{m.forEach(A=>{const C=A.id||A.key||A.$id,E=A.name||A.title;f.push({key:C,title:E,parentKey:y}),A.children&&A.children.length>0&&p(A.children,C)})};return p(h),f}),l=h=>{e.value=h,o.value=!1},a=h=>{i.value=h},c=h=>{t.value=h},u=h=>r.value.find(p=>p.key===h)?.parentKey;return d.watch(s,h=>{if(!h)return;const p=r.value.filter(y=>y.title&&y.title.toLowerCase().includes(h.toLowerCase())).map(y=>y.parentKey),m=new Set;p.forEach(y=>{let A=y;for(;A;)m.add(A),A=u(A)}),e.value=[...m],o.value=!0}),{expandedKeys:e,selectedKeys:t,checkedKeys:i,searchValue:s,autoExpandParent:o,onExpand:l,onCheck:a,onSelect:c}}const K0={class:"search-box"},X0={key:0},q0={style:{color:"#f50"}},J0={key:1},Z0={key:1,class:"empty-tip"},ki=Ue(d.defineComponent({__name:"LeitingTree",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"构件树"},width:{type:[Number,String],default:320},treeData:{type:Array,default:()=>[]},initialPosition:{type:Object,default:()=>({x:0,y:0})},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close","select","check"],setup(n,{emit:e}){const t=Ae.Input.Search,i=Ae.Tree,s=n,o=e,r=d.inject("leiting-theme",d.ref("dark")),l=d.inject("leitingMethods"),a=g=>{l?.value?.onSearchComponent&&l.value.onSearchComponent(g)},c=d.computed({get:()=>s.open!==void 0?s.open:s.visible,set:g=>{o("update:visible",g),o("update:open",g)}}),u=d.ref(null),{height:h}=G0(u),f=d.computed(()=>h.value||300),p={children:"children",title:"name",key:"id"},{expandedKeys:m,selectedKeys:y,checkedKeys:A,searchValue:C,autoExpandParent:E}=$0(d.toRef(s,"treeData")),x=g=>{m.value=g,E.value=!1},M=g=>{const k=[],P=F=>{if(!F.children||F.children.length===0){const H=F.element_Id;F.modelId&&H&&k.push({modelId:F.modelId,elementId:H})}else F.children.forEach(P)};return P(g),k},T=(g,k)=>{A.value=g,o("check",g,k);const P=M(k.node).map(F=>({...F,show:k.checked}));l?.value?.setComponentVisibility&&l.value.setComponentVisibility(P),l?.value?.onTreeCheck&&l.value.onTreeCheck(g,k)},B=(g,k)=>{if(y.value=g,o("select",g,k),k.selected){const P=M(k.node);P.length>0&&l?.value?.flyToObjects&&l.value.flyToObjects({selectCpts:P})}l?.value?.onTreeSelect&&l.value.onTreeSelect(g,k)},I=()=>{o("update:visible",!1),o("close")};return(g,k)=>(d.openBlock(),d.createBlock(Fe,{visible:c.value,"onUpdate:visible":k[1]||(k[1]=P=>c.value=P),title:n.title,"initial-position":n.initialPosition,"full-height":n.fullHeight,onClose:I},{default:d.withCtx(()=>[d.createElementVNode("div",{class:d.normalizeClass(["leiting-tree-container",[`theme-${d.unref(r)}`]])},[d.createElementVNode("div",K0,[d.createVNode(d.unref(t),{value:d.unref(C),"onUpdate:value":k[0]||(k[0]=P=>d.isRef(C)?C.value=P:null),placeholder:"搜索构件","allow-clear":"","enter-button":"",onSearch:a},null,8,["value"])]),d.createElementVNode("div",{class:"tree-wrapper",ref_key:"treeWrapperRef",ref:u},[n.treeData&&n.treeData.length?(d.openBlock(),d.createBlock(d.unref(i),{key:0,"tree-data":n.treeData,"field-names":p,height:f.value,"expanded-keys":d.unref(m),"auto-expand-parent":d.unref(E),"selected-keys":d.unref(y),"checked-keys":d.unref(A),checkable:"",virtual:"","block-node":"",onExpand:x,onSelect:B,onCheck:T},{title:d.withCtx(({title:P})=>[P&&d.unref(C)&&P.toLowerCase().indexOf(d.unref(C).toLowerCase())>-1?(d.openBlock(),d.createElementBlock("span",X0,[d.createTextVNode(d.toDisplayString(P.substr(0,P.toLowerCase().indexOf(d.unref(C).toLowerCase())))+" ",1),d.createElementVNode("span",q0,d.toDisplayString(d.unref(C)),1),d.createTextVNode(" "+d.toDisplayString(P.substr(P.toLowerCase().indexOf(d.unref(C).toLowerCase())+d.unref(C).length)),1)])):(d.openBlock(),d.createElementBlock("span",J0,d.toDisplayString(P),1))]),_:1},8,["tree-data","height","expanded-keys","auto-expand-parent","selected-keys","checked-keys"])):(d.openBlock(),d.createElementBlock("div",Z0,"暂无数据"))],512)],2)]),_:1},8,["visible","title","initial-position","full-height"]))}}),[["__scopeId","data-v-4cd53c55"]]),eC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",sc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAERSURBVDhPvZTrEYIwEISTCrQD6EA7gA60AylBK1Aq0A7ECrQDoQPsADrACuLuTMJkIiHxjzezgyR7H3d5KJVSqRAigcaQUjYYX2JgZY/P/O4lEgYYFo7pgPcc2kSCBoIUzDeo0klPPEsNYlX7AKzA/M6ASrRzYoIGG5DAOCvzBvzMOxqQazSgLLI1QdAW5jWpUAPV0AVKIc7FRCuNy7RkWozJtj1BED7ANbpDXHhffFXUwUnZwRYp7qw7Rx8/lLkV9R4QD2w1A8pjW3sA4h5au+pXEBS76P8D6Ut9/nXXaiRQdnBXqBfEC+4GdzSxW5v6F7CTeHnbCVCBsWIE+RYVrdF4DSz6OwgiADDexbmT3X0A4fSDfDjUugcAAAAASUVORK5CYII=",tC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAFESURBVDhPlZMNEcIwDIVXBQwFgAJAAcMBDgAFIGE4wAHgABSwOdgcIAEUjPd6aS/rfhi7y12bJl9f0sxEf3xVVV0RPoetjTFvnWqGcgSylfgihA0CKcgJgBfsAqMiKiM0+gkKlCyZCN8uhPWCFOSBxARWORU4W2CdeV9XjxSEJcwkjokTqBpzjxjCn7CyVRECzjg8wHLYCmabK7CplBcLhMr2DZCqP0dCovYZ9hYGXx1izLUGUkkfxI/sTQiCf4N1zLWAWCKV2nP6PEhB2Ngd7B4GC4SJnCcP8SAFoc/Ph/TqjVvTPogFKUiJ/VGU+GdmUAA5ObA7cyC+iPt/MjUfKRL4emyuK+cGH8tufFRUHywZ+RYlnRDdIwfzLzVUibtQv1oNhoAExtfpVdIAiQIOWiY9o2sQxJemOydTS1jR1di2Zn8B8f27apou9kMAAAAASUVORK5CYII=",nC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAHDSURBVDhPlZOxL0NRFIe9ECubhehoIIjJ1HYwCkIiJpUQEkN1YZBobU0kFKNI3iTGYrDRv0BIhLXCYpCwiO35fs25zWva98JNvpz37j33d8+551yvLWIEQXDG0izMe55XjvJz816MUJG1LVuvYJcQrEb5xwkV2JSHGfAhgBJiu63E4oSUzpRtusa+wBooKkWnKOujQYh7SbCShQx0m9cpds4iOseOw7BFmUPwU341IQT2MaOQgi9QND+wiqNnBxT4X7SIbrAqhNI9wiUvJ+W8A99wDEWdwrw25iVkkenAEb5LkIQPuIMJWJGQoriFd+iBCkhc8zUhfJSm7mva5l3aadubDgtpMgGKpB/eoBfuQZFoPNhBj9gTaC3kKkEEGXPswF7Y5rLro1AW8UI6GmelmAzfkUWlNaWt6/iT0DOOA5bqoSuzHfIvofATqSJQb8KoiJbtPi6x2dA9FPjXE1F/uZKrv3IwCFcNqVmoPlal7QJ9q/wZCbk7Ioo9/tehE9q1r0nIxNQbG4YEXdkVjQ5J2OZXbB88gVrgQIJNj9aaT4LboPK7J6O0Ktb1KYtc/aYxGff6h3AYY6Nvzk2GQ1WQTVj4BST70jYaqceXAAAAAElFTkSuQmCC",iC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADhSURBVHgBvVOBEYIwDEw9B2ADO4IjuIEjwAa6Aa7ABMAEuIIjOIFsUDao37vgxVZbBI+/+0tI0+fJBaIIrLUFaMAHmNNcsMAIE+vdJLQykQ+0wFHBrsyiT/sL2I1DDTac/+4Klzobov7WHxt29qGmaYaQnlhLCmUTa2l4C2ljvamFlEvY0xpCW/kA924GblfGWciZaJyXQvSmlOoDITSdXQBbcA8eKfy/nHDFeY470FIX8tzUIu84FmLWuTzz7yhRLPm54dKJ4+A5uoJ3HgHBUfUmxGIa4QDuKA4n3kLk9ZInw0qu5b1R1aYAAAAASUVORK5CYII=",sC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADFSURBVDhPxVPBDYMwDIwnKJu0G9ANYJMyQrsBbNIRGAE2gEnSO6mpIMJxkBC1lEds52zfOeK9b51zV5wte4lIr8RWbgGQh2fGmaIHJe4EetKPtDpRcA5AvwcB7FtgCcTOH0p3YzaQNd75QBiVXJG3LRtCRyQ6Jvsekd3gTsJVoDcihZLQQjXGTRMzIzPhOCCQyNYvSuEue7Qdm02yK0u1nM2m/FQyKb8JZHH+l81Ofdpdm82tvikjThyNlbSEBvIPFj+MfwA76qSYUG3g9QAAAABJRU5ErkJggg==",oC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEcSURBVDhPrZSNDYIwEIXpBOIGjMAIOIE4AbgBGwAbOIJu4Aa4gW4gI+gE9b3mjjSmibSR5ALX3H33W4y1Ns+yrIe0EH7HPC8YnyGjAegkEB5cYyiwrdWXIEc1xnSREGcuiTQEWeg7gG4+CMcl9ALnLkvogwScv+wq6FMQJJCJDgBtBcSAI3QClwe2YZAHcY2Ho4kGAVLA6U5/CEvdp4KYhesFhBPpCZIAz6jStHhproJcHyAHbb5nF+6RZ8CsGslIQaHp/gSxRzlApU4GugPxNuDN/eNarAJxapUPgm8rQ9C1SAI9AOGiHhGApSdnRN8FshbEiLwiLI1rMUM6zSQ0tX9c2lp/Iw0iMIPU38iFIN1mTmOjKa98vyWB4QM5XQnvsbFsyAAAAABJRU5ErkJggg==",rC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAGPSURBVDhPrZT9UQIxEMUvFSgViBUoFQgVABV4VqBW4FmBUIFQgZRwVqBU4HUAVHC+X2aXycQw/sPOvLncZvdlv5JQFaTv+1upp8IyhLDHRLpLfe6FrXRt7hZShYyH+n8RauGAv/AkQNYIHICshFcRdu6fE/kGRN/mQGTIpzAzMoh6EV2fIsJ5IwNOj2IpVZ6i6difSecRVnlELZHIgHROisgXRCa78Z+IrMBf2pjLYJNENGSd1kO2pPghjKQniyqY8lFr2NfaqC18wn7nZCMlWg7xLq70TxfRLyHqtABN2lbp40mSSCzBcSebif1TPyKjDBcQ0eJJRkIUpHkMPUlnkBU+pnlWItL6ERgw8o1iqRHtgzAUGNRD2qmkvgMvNnneUQcZ4ggR6VGXG+OOA1koNvrFcY7+af++VJe0hucfyKQu+RWJc+SDZ3aNvlPpRl7T0qXdafNZYPDehLEZt/rOBR9U8QSaEKX0jHAaE4tshVrgLeJ+Xdl6rS8D3BWJXKnCEwWXEuco9grQ3bb0sP0Cn8/nPm/SMRQAAAAASUVORK5CYII=",aC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACDSURBVHgB1ZFhDYAgEIWfzgBGIIINpIEViGAkG2gEbWADjWADfMw/iDgUfji/7e3gxt3uHsDXZFrrlrFBHJNpsPAgEEmORArn3lFroEZQCjcTbAhzepPsgbuCgn8FBWvsUAMfFR5OIPGS5G80JkrG2sopHKbO1BCoHy8ZNhRUT5X4BTu6qyNSwwCiMAAAAABJRU5ErkJggg==",lC={class:"menu-container"},cC=["onClick","title"],dC={class:"menu-icon"},uC=["src","alt"],hC={key:3,style:{"font-size":"12px"}},fC={key:0,class:"sub-menu"},pC=["onClick"],Nn=d.defineComponent({__name:"LeitingMenu",props:{visible:{type:Boolean,default:!0},activeIds:{type:Array,default:()=>[]},is2d:{type:Boolean,default:!1},customItems:{type:Array,default:()=>[]}},emits:["action"],setup(n,{emit:e}){const t=n,i=d.inject("leiting-theme",d.ref("dark")),s=d.inject("leiting-menu-size",d.ref("medium")),o=d.inject("leitingMethods",d.ref({})),r=d.computed(()=>i.value||i),l=d.computed(()=>s.value||s),a=d.ref([{ID:"home",title:"主视角",src:eC,key:"homeView"},{ID:"tree",title:"目录树",src:sc,key:"componentTree"},{ID:"cadLayer",title:"图层",src:sc,key:"cadLayer"},{ID:"measure",title:"量算",src:tC,key:"measurement"},{ID:"section",title:"剖切",src:nC,key:"section"},{ID:"roam",title:"人物漫游",src:iC,key:"roam"},{ID:"info",title:"构件信息",src:sC,key:"componentInfo"},{ID:"cadPosition",title:"调整位置",src:oC,key:"cadPosition"},{ID:"annotation",title:"标注",src:aC,key:"annotation"},{ID:"setting",title:"设置",src:rC,key:"setting"}]),c=d.ref([]),u=d.ref([...t.activeIds]);d.watch(()=>t.activeIds,T=>{u.value=[...T]},{deep:!0});const h=d.computed(()=>t.visible);o.value&&o.value.menuEvents&&(o.value.menuEvents.on("setMenuListFilter",T=>{c.value=T}),o.value.menuEvents.on("setMenuActive",(T,B)=>{B?u.value.includes(T)||u.value.push(T):u.value=u.value.filter(I=>I!==T)}));const f=d.computed(()=>{let T=a.value;if(t.is2d){const B=["homeView","measurement","cadLayer","annotation"];T=T.filter(I=>I.key&&B.includes(I.key))}else{const B=["cadLayer","cadPosition","annotation"];T=T.filter(I=>!I.key||!B.includes(I.key))}if(c.value.length>0&&(T=T.filter(B=>!B.key||!c.value.includes(B.key))),t.customItems&&t.customItems.length>0){const B=t.customItems.map(I=>({...I,key:I.ID,src:I.src||I.icon}));return[...T,...B]}return T}),p=e,m=T=>{const B=["homeView"];if(T.key&&B.includes(T.key))u.value.includes(T.ID)||(u.value.push(T.ID),setTimeout(()=>{const g=u.value.indexOf(T.ID);g>-1&&u.value.splice(g,1)},1e3));else{const g=u.value.indexOf(T.ID);g>-1?u.value.splice(g,1):u.value.push(T.ID)}const I=u.value.includes(T.ID);T.func&&T.func(T),T.key&&p("action",T.key,I)},y=T=>{a.value=[...a.value,...T]},A=T=>{c.value=T},C=T=>{console.log("LeitingMenu received showMenu event:",T)},E=(T,B)=>{const I=a.value.find(g=>g.ID===T||g.key===T);if(I){const g=u.value.indexOf(I.ID);B&&g===-1?u.value.push(I.ID):!B&&g>-1&&u.value.splice(g,1)}};let x=null;const M=()=>{o.value?.menuEvents&&(x&&(x.off("insertMenu",y),x.off("setMenuListFilter",A),x.off("showMenu",C),x.off("setMenuActive",E)),x=o.value.menuEvents,x.on("insertMenu",y),x.on("setMenuListFilter",A),x.on("showMenu",C),x.on("setMenuActive",E))};return d.onMounted(()=>{M()}),d.onUnmounted(()=>{x&&(x.off("insertMenu",y),x.off("setMenuListFilter",A),x.off("showMenu",C),x.off("setMenuActive",E))}),d.watch(o,()=>{M()},{deep:!0}),(T,B)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{class:d.normalizeClass(["leiting-menu-wrapper",["leiting-theme-"+r.value,"size-"+l.value]])},[d.createElementVNode("div",lC,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(f.value,I=>(d.openBlock(),d.createElementBlock("div",{key:I.ID,class:d.normalizeClass(["menu-item",{active:u.value.includes(I.ID)}]),onClick:g=>m(I),title:I.title},[d.createElementVNode("div",dC,[I.src?(d.openBlock(),d.createElementBlock("img",{key:0,src:I.src,alt:I.title},null,8,uC)):typeof I.icon=="object"?(d.openBlock(),d.createBlock(d.resolveDynamicComponent(I.icon),{key:1})):typeof I.icon=="string"?(d.openBlock(),d.createElementBlock("i",{key:2,class:d.normalizeClass(["iconfont",`icon-${I.icon}`])},null,2)):(d.openBlock(),d.createElementBlock("span",hC,d.toDisplayString(I.title.substring(0,2)),1))]),I.children&&I.children.length>0?(d.openBlock(),d.createElementBlock("div",fC,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(I.children,g=>(d.openBlock(),d.createElementBlock("div",{key:g.ID,class:d.normalizeClass(["sub-menu-item",{active:u.value.includes(g.ID)}]),onClick:d.withModifiers(k=>m(g),["stop"])},d.toDisplayString(g.title),11,pC))),128))])):d.createCommentVNode("",!0)],10,cC))),128))])],2)),[[d.vShow,h.value]])}}),gC={class:"leiting-section-content"},mC={class:"section-form-item"},AC={class:"radio-group"},yC={class:"section-form-item"},CC={class:"switch-container"},EC={class:"switch"},wC={class:"status-text"},bC={class:"section-form-item slider-item"},vC={class:"slider-wrapper"},xC={class:"section-form-item slider-item"},IC={class:"slider-wrapper"},BC={class:"section-form-item slider-item"},SC={class:"slider-wrapper"},MC={class:"section-form-item table-item"},TC={class:"model-table-container"},DC={class:"model-table"},kC={width:"40"},PC=["checked"],FC=["onClick"],RC=["value"],OC={class:"model-name"},Un=Ue(d.defineComponent({__name:"LeitingSection",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"剖切控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods"),o=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:O=>{i("update:visible",O),i("update:open",O)}}),r=d.ref("Box"),l=d.ref(!1),a=d.ref([]),c=d.ref([]),u=d.computed(()=>c.value.length===0?!1:c.value.every(O=>a.value.includes(O.modelId))),h=O=>{O.target.checked?a.value=c.value.map(w=>w.modelId):a.value=[],k()},f=d.ref([-10,10]),p=d.ref([-10,10]),m=d.ref([-10,10]),y=d.ref([-100,100]),A=d.ref([-100,100]),C=d.ref([-100,100]);let E=!1;const x=O=>{E=!0;const{targetZPlus:b,targetZMinus:w,targetXPlus:v,targetXMinus:S,targetYPlus:R,targetYMinus:_}=O;m.value=[-w,b],f.value=[-S,v],p.value=[-_,R],setTimeout(()=>{E=!1},100)},M=()=>{E||a.value.length===0||!s?.value?.updateSectionRange||s.value.updateSectionRange({targetZPlus:m.value[1],targetZMinus:-m.value[0],targetXPlus:f.value[1],targetXMinus:-f.value[0],targetYPlus:p.value[1],targetYMinus:-p.value[0]})},T=()=>{s?.value?.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(l.value)},B=O=>{if(!s?.value?.getMapTileset||!s?.value?.openSection)return;const w=s.value.getMapTileset()[O];if(w&&w.leiting?.box){const{min:v,max:S}=w.leiting.box,R=(S.x-v.x)/2,_=(S.y-v.y)/2,N=(S.z-v.z)/2;a.value.length<=1&&(y.value=[-R*2,R*2],A.value=[-_*2,_*2],C.value=[-N*2,N*2],f.value=[-R,R],p.value=[-_,_],m.value=[-N,N],s.value.updateSectionRange&&s.value.updateSectionRange({targetZPlus:N,targetZMinus:N,targetXPlus:R,targetXMinus:R,targetYPlus:_,targetYMinus:_})),s.value.openSection(O,{moveCallBack:x}),s.value.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(l.value)}},I=O=>{const b=a.value.indexOf(O);b>-1?a.value.splice(b,1):a.value.push(O),k()};let g=[];const k=()=>{const O=a.value.filter(w=>!g.includes(w)),b=g.filter(w=>!a.value.includes(w));O.forEach(w=>B(w)),b.forEach(w=>{s?.value?.closeSection&&s.value.closeSection(w)}),g=[...a.value]},P=()=>{},F=()=>{o.value=!1,i("close")},L=()=>{l.value=!1,a.value=[],g=[],f.value=[-10,10],p.value=[-10,10],m.value=[-10,10],y.value=[-100,100],A.value=[-100,100],C.value=[-100,100]};d.watch(()=>t.visible,O=>{O?H():(s?.value?.closeSection&&s.value.closeSection(),L())});const H=()=>{s?.value&&typeof s.value.getModelList=="function"&&(c.value=s.value.getModelList()||[],c.value.length>0&&a.value.length===0&&(a.value=[c.value[0].modelId],g=[...a.value]),t.visible&&a.value.length>0&&(l.value=!0,a.value.forEach(O=>B(O))))};return d.watch(()=>s?.value,()=>{H()},{immediate:!0,deep:!0}),d.onMounted(()=>{H()}),(O,b)=>(d.openBlock(),d.createBlock(Fe,{visible:o.value,title:"剖切分析",width:300,"full-height":n.fullHeight,"onUpdate:visible":F},{default:d.withCtx(()=>[d.createElementVNode("div",gC,[d.createElementVNode("div",mC,[b[8]||(b[8]=d.createElementVNode("span",{class:"label"},"模式",-1)),d.createElementVNode("div",AC,[d.createElementVNode("label",{class:d.normalizeClass(["radio-item",{active:r.value==="Box"}])},[d.withDirectives(d.createElementVNode("input",{type:"radio",value:"Box","onUpdate:modelValue":b[0]||(b[0]=w=>r.value=w),onChange:P},null,544),[[d.vModelRadio,r.value]]),b[7]||(b[7]=d.createTextVNode(" 剖切盒 ",-1))],2)])]),d.createElementVNode("div",yC,[b[10]||(b[10]=d.createElementVNode("span",{class:"label"},"显示",-1)),d.createElementVNode("div",CC,[d.createElementVNode("label",EC,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":b[1]||(b[1]=w=>l.value=w),onChange:T},null,544),[[d.vModelCheckbox,l.value]]),b[9]||(b[9]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",wC,d.toDisplayString(l.value?"显示":"隐藏"),1)])]),d.createElementVNode("div",bC,[b[11]||(b[11]=d.createElementVNode("span",{class:"label"},"X 轴",-1)),d.createElementVNode("div",vC,[d.createVNode(d.unref(Ae.Slider),{value:f.value,"onUpdate:value":b[2]||(b[2]=w=>f.value=w),range:"",min:y.value[0],max:y.value[1],step:.1,onChange:M},null,8,["value","min","max"])])]),d.createElementVNode("div",xC,[b[12]||(b[12]=d.createElementVNode("span",{class:"label"},"Y 轴",-1)),d.createElementVNode("div",IC,[d.createVNode(d.unref(Ae.Slider),{value:p.value,"onUpdate:value":b[3]||(b[3]=w=>p.value=w),range:"",min:A.value[0],max:A.value[1],step:.1,onChange:M},null,8,["value","min","max"])])]),d.createElementVNode("div",BC,[b[13]||(b[13]=d.createElementVNode("span",{class:"label"},"Z 轴",-1)),d.createElementVNode("div",SC,[d.createVNode(d.unref(Ae.Slider),{value:m.value,"onUpdate:value":b[4]||(b[4]=w=>m.value=w),range:"",min:C.value[0],max:C.value[1],step:.1,onChange:M},null,8,["value","min","max"])])]),d.createElementVNode("div",MC,[b[15]||(b[15]=d.createElementVNode("span",{class:"label"},"模型",-1)),d.createElementVNode("div",TC,[d.createElementVNode("table",DC,[d.createElementVNode("thead",null,[d.createElementVNode("tr",null,[d.createElementVNode("th",kC,[d.createElementVNode("input",{type:"checkbox",checked:u.value,onChange:h},null,40,PC)]),b[14]||(b[14]=d.createElementVNode("th",null,"名称",-1))])]),d.createElementVNode("tbody",null,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(c.value,w=>(d.openBlock(),d.createElementBlock("tr",{key:w.modelId,class:d.normalizeClass({selected:a.value.includes(w.modelId)}),onClick:v=>I(w.modelId)},[d.createElementVNode("td",null,[d.withDirectives(d.createElementVNode("input",{type:"checkbox",value:w.modelId,"onUpdate:modelValue":b[5]||(b[5]=v=>a.value=v),onClick:b[6]||(b[6]=d.withModifiers(()=>{},["stop"])),onChange:k},null,40,RC),[[d.vModelCheckbox,a.value]])]),d.createElementVNode("td",OC,d.toDisplayString(w.modelName),1)],10,FC))),128))])])])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-519b564b"]]),LC={class:"leiting-player-content"},NC={class:"player-form-item"},UC={class:"switch-container"},_C={class:"switch"},QC={class:"status-text"},HC={class:"player-form-item"},GC={class:"switch-container"},YC={class:"switch"},VC={class:"status-text"},WC={class:"player-form-item"},zC={class:"switch-container"},jC={class:"switch"},$C={class:"status-text"},KC={class:"player-form-item slider-item"},XC={class:"slider-wrapper"},qC={class:"value-text"},JC={class:"instructions"},ZC={class:"key-map"},eE={class:"key-row"},tE={class:"key-row"},nE={class:"key-row"},iE={class:"key-row"},sE={class:"key-row"},oE={class:"key-row"},_n=Ue(d.defineComponent({__name:"LeitingPlayer",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"漫游控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods"),o=d.ref(!1),r=d.ref(!1),l=d.ref(!0),a=d.ref(.5),c=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:B=>{i("update:visible",B),i("update:open",B)}}),u=d.ref(null),h=d.ref(null),f=d.ref(null),p=d.ref(null),m=d.ref(null),y=d.ref(null),A=()=>{o.value?E():x()},C=()=>{s?.value?.setPlayerParams&&s.value.setPlayerParams({gravityTest:r.value,collisionTest:l.value})},E=async()=>{s?.value?.openPlayer&&(await s.value.openPlayer(),s.value.setPlayerSpeed&&s.value.setPlayerSpeed(a.value),C(),s.value.bindPlayerUiKeys&&(await d.nextTick(),s.value.bindPlayerUiKeys({moveFront:u.value,moveBack:h.value,moveLeft:f.value,moveRight:p.value,moveUp:m.value,moveDown:y.value})))},x=()=>{s?.value?.closePlayer&&s.value.closePlayer()},M=()=>{s?.value?.setPlayerSpeed&&s.value.setPlayerSpeed(a.value)},T=()=>{c.value=!1,i("close")};return d.watch(()=>t.visible,B=>{B?(o.value=!0,s?.value?E():setTimeout(()=>{s?.value&&E()},100)):o.value&&(o.value=!1,x())},{immediate:!0}),(B,I)=>(d.openBlock(),d.createBlock(Fe,{title:n.title,visible:c.value,width:200,"full-height":n.fullHeight,"onUpdate:visible":T},{default:d.withCtx(()=>[d.createElementVNode("div",LC,[d.createElementVNode("div",NC,[I[5]||(I[5]=d.createElementVNode("span",{class:"label"},"启用",-1)),d.createElementVNode("div",UC,[d.createElementVNode("label",_C,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":I[0]||(I[0]=g=>o.value=g),onChange:A},null,544),[[d.vModelCheckbox,o.value]]),I[4]||(I[4]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",QC,d.toDisplayString(o.value?"开启":"关闭"),1)])]),d.createElementVNode("div",HC,[I[7]||(I[7]=d.createElementVNode("span",{class:"label"},"重力",-1)),d.createElementVNode("div",GC,[d.createElementVNode("label",YC,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":I[1]||(I[1]=g=>r.value=g),onChange:C},null,544),[[d.vModelCheckbox,r.value]]),I[6]||(I[6]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",VC,d.toDisplayString(r.value?"开启":"关闭"),1)])]),d.createElementVNode("div",WC,[I[9]||(I[9]=d.createElementVNode("span",{class:"label"},"碰撞",-1)),d.createElementVNode("div",zC,[d.createElementVNode("label",jC,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":I[2]||(I[2]=g=>l.value=g),onChange:C},null,544),[[d.vModelCheckbox,l.value]]),I[8]||(I[8]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",$C,d.toDisplayString(l.value?"开启":"关闭"),1)])]),d.createElementVNode("div",KC,[I[10]||(I[10]=d.createElementVNode("span",{class:"label"},"速度",-1)),d.createElementVNode("div",XC,[d.createVNode(d.unref(Ae.Slider),{value:a.value,"onUpdate:value":I[3]||(I[3]=g=>a.value=g),min:.1,max:4,step:.1,onChange:M},null,8,["value"])]),d.createElementVNode("span",qC,d.toDisplayString(a.value),1)]),I[19]||(I[19]=d.createElementVNode("div",{class:"divider"},null,-1)),d.createElementVNode("div",JC,[I[18]||(I[18]=d.createElementVNode("div",{class:"instruction-title"},"操作说明",-1)),d.createElementVNode("div",ZC,[d.createElementVNode("div",eE,[d.createElementVNode("span",{class:"key",ref_key:"btnFront",ref:u},"W",512),I[11]||(I[11]=d.createTextVNode(" 前进 ",-1))]),d.createElementVNode("div",tE,[d.createElementVNode("span",{class:"key",ref_key:"btnBack",ref:h},"S",512),I[12]||(I[12]=d.createTextVNode(" 后退 ",-1))]),d.createElementVNode("div",nE,[d.createElementVNode("span",{class:"key",ref_key:"btnLeft",ref:f},"A",512),I[13]||(I[13]=d.createTextVNode(" 左移 ",-1))]),d.createElementVNode("div",iE,[d.createElementVNode("span",{class:"key",ref_key:"btnRight",ref:p},"D",512),I[14]||(I[14]=d.createTextVNode(" 右移 ",-1))]),d.createElementVNode("div",sE,[d.createElementVNode("span",{class:"key",ref_key:"btnUp",ref:m},"Q",512),I[15]||(I[15]=d.createTextVNode(" 上升 ",-1))]),d.createElementVNode("div",oE,[d.createElementVNode("span",{class:"key",ref_key:"btnDown",ref:y},"E",512),I[16]||(I[16]=d.createTextVNode(" 下降 ",-1))]),I[17]||(I[17]=d.createElementVNode("div",{class:"key-row"},[d.createElementVNode("span",{class:"mouse-icon"},"🖱️"),d.createTextVNode(" 按住左键拖拽旋转视角 ")],-1))])])])]),_:1},8,["title","visible","full-height"]))}}),[["__scopeId","data-v-cb96e806"]]),rE={class:"info-content"},aE={key:0,class:"component-title"},Qn=Ue(d.defineComponent({__name:"LeitingInfo",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods"),o=d.ref([]),r=d.ref([]),l=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:m=>{i("update:visible",m),i("update:open",m)}}),a=()=>{l.value=!1},c=m=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[m]||m,u=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],h=m=>{if(!m||m.length===0){o.value=[];return}const y=s?.value,A=y?.getMapTileset?y.getMapTileset():{},C=[];m.forEach((E,x)=>{const T=A[E.modelId]?.leiting||{};let B={modelName:T.model?.modelId||E.modelId};B.elementID||(B.elementID=E.elementId);const I=T.node?.nodeExtras?.element||T.node?.nodeExtras;let g=null;if(I){const F=B.elementID;I[F]&&(g=I[F])}g&&g.box3&&(B.length=`${g.box3.length?.toFixed(2)||0}米`,B.width=`${g.box3.width?.toFixed(2)||0}米`,B.height=`${g.box3.height?.toFixed(2)||0}米`);const k=[];g&&(g.name&&(B.elementName=g.name),g.categoryName&&(B.categoryName=g.categoryName),g.familySymbolName&&(B.familySymbolName=g.familySymbolName),g.levelName&&(B.levelName=g.levelName));const P={};if(u.forEach(F=>{B[F]!==void 0&&(P[F]=B[F])}),k.push({name:"基础信息",params:P}),g){const F=Array.isArray(g)?g:Array.isArray(g?.parameters)?g.parameters:null;if(F){if(F.flat().forEach(H=>{if(H&&H.GroupName&&Array.isArray(H.Parameters)){const O={};H.Parameters.forEach(b=>{b.name&&(O[b.name]=b.value??"")}),Object.keys(O).length>0&&k.push({name:H.GroupName,params:O})}}),!Array.isArray(g)){const{parameters:H,...O}=g,b={};Object.keys(O).forEach(w=>{!u.includes(w)&&w!=="uniqueId"&&typeof O[w]!="object"&&(b[w]=O[w])}),Object.keys(b).length>0&&k.push({name:"其他属性",params:b})}}else{let L=!1;if(Object.keys(g).forEach(H=>{g[H]&&typeof g[H]=="object"&&!Array.isArray(g[H])&&(L=!0,k.push({name:H,params:g[H]}))}),!L){const H={};Object.keys(g).forEach(O=>{if(!u.includes(O)&&O!=="batchId"){const b=g[O];typeof b=="string"&&b.length>500?H[O]=b.substring(0,500)+"...":H[O]=b}}),Object.keys(H).length>0&&k.push({name:"属性",params:H})}}}C.push({id:x,title:`${B.modelName}${B.elementName?` - ${B.elementName}`:""}`,groups:k})}),o.value=C,C.length>0?r.value=[`${C[0].id}-基础信息`]:r.value=[]};let f=!1;const p=()=>{if(f)return;const m=s?.value;m&&m.selectionChange&&(m.selectionChange(h),f=!0)};return d.watch(()=>s?.value,()=>{p()},{deep:!0,immediate:!0}),d.onMounted(()=>{p()}),(m,y)=>(d.openBlock(),d.createBlock(Fe,{visible:l.value,title:"构件详情",width:350,align:"right","initial-position":{x:0,y:0},"full-height":n.fullHeight,onClose:a,"onUpdate:visible":y[1]||(y[1]=A=>l.value=A),class:"base-info-card"},{default:d.withCtx(()=>[d.createElementVNode("div",rE,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(o.value,A=>(d.openBlock(),d.createElementBlock("div",{key:A.id,class:"component-block"},[o.value.length>1?(d.openBlock(),d.createElementBlock("div",aE,d.toDisplayString(A.title),1)):d.createCommentVNode("",!0),d.createVNode(d.unref(Ae.Collapse),{activeKey:r.value,"onUpdate:activeKey":y[0]||(y[0]=C=>r.value=C),ghost:"","expand-icon-position":"end"},{default:d.withCtx(()=>[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(A.groups,C=>(d.openBlock(),d.createBlock(d.unref(Ae.CollapsePanel),{key:`${A.id}-${C.name}`,header:C.name},{default:d.withCtx(()=>[d.createVNode(d.unref(Ae.Descriptions),{size:"small",bordered:"",column:1,labelStyle:{width:"100px",background:"rgba(255,255,255,0.05)",color:"#aaa"},contentStyle:{color:"#fff"}},{default:d.withCtx(()=>[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(C.params,(E,x)=>(d.openBlock(),d.createBlock(d.unref(Ae.DescriptionsItem),{key:x,label:c(String(x))},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(E),1)]),_:2},1032,["label"]))),128))]),_:2},1024)]),_:2},1032,["header"]))),128))]),_:2},1032,["activeKey"])]))),128))])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-ee93ac19"]]);class oc{viewer;Cesium;pickHandler=null;bimEntityId="";mapEntityId="";constructor(e,t){this.viewer=e,this.Cesium=t}removeMarker(e){if(!this.viewer)return;const t=e==="BIM"?this.bimEntityId:this.mapEntityId;t&&(this.viewer.entities.removeById(t),e==="BIM"?this.bimEntityId="":this.mapEntityId="")}clearMarkers(){this.removeMarker("BIM"),this.removeMarker("MAP")}addMarker(e,t){if(!this.viewer||!this.Cesium)return;this.removeMarker(e);const i=`adjust-marker-${e}-${Date.now()}`;e==="BIM"?this.bimEntityId=i:this.mapEntityId=i,this.viewer.entities.add({id:i,position:this.Cesium.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),point:{pixelSize:10,color:e==="BIM"?this.Cesium.Color.RED:this.Cesium.Color.ORANGE,outlineColor:this.Cesium.Color.WHITE,outlineWidth:2,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:{text:`${e==="BIM"?"BIM":"地图"}标记点`,font:"14pt sans-serif",style:this.Cesium.LabelStyle.FILL_AND_OUTLINE,outlineWidth:2,verticalOrigin:this.Cesium.VerticalOrigin.BOTTOM,pixelOffset:new this.Cesium.Cartesian2(0,-10),fillColor:this.Cesium.Color.WHITE,outlineColor:this.Cesium.Color.BLACK,backgroundColor:new this.Cesium.Color(.1,.1,.1,.8),showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY}})}registerPickHandler(e){this.destroyPickHandler(),!(!this.Cesium||!this.viewer)&&(this.pickHandler=new this.Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas),this.pickHandler.setInputAction(t=>{let i;try{i=this.viewer.scene.pickPosition(t.position)}catch(s){console.warn("pickPosition failed:",s)}if(!i){const s=this.viewer.camera.getPickRay(t.position);i=this.viewer.scene.globe.pick(s,this.viewer.scene)}if(i||(i=this.viewer.camera.pickEllipsoid(t.position,this.viewer.scene.globe.ellipsoid)),i){const s=this.Cesium.Cartographic.fromCartesian(i),o=this.Cesium.Math.toDegrees(s.longitude),r=this.Cesium.Math.toDegrees(s.latitude),l=s.height;e({longitude:o,latitude:r,height:l})}},this.Cesium.ScreenSpaceEventType.LEFT_CLICK,this.Cesium.KeyboardEventModifier.SHIFT))}destroyPickHandler(){this.pickHandler&&(this.pickHandler.destroy(),this.pickHandler=null)}calculateOffset(e,t){return{dLon:t.longitude-e.longitude,dLat:t.latitude-e.latitude,dHeight:t.height-e.height}}}const lE={class:"adjust-panel"},cE={class:"control-panel"},dE={class:"form-item"},uE={class:"radio-group"},hE={class:"form-item"},fE={class:"radio-group"},pE={class:"form-item"},gE={class:"value"},mE={class:"param-row"},AE={class:"param-row"},yE={class:"param-row"},CE={class:"param-row"},EE={class:"param-row"},wE={class:"param-row"},bE={class:"param-row"},vE={class:"button-grid"},xE={key:1,class:"pick-mode-ui"},IE={class:"form-item",style:{display:"block","margin-bottom":"15px"}},BE={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},SE=["checked"],ME={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},TE={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},DE={class:"form-item",style:{display:"block","margin-bottom":"15px"}},kE={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},PE=["checked"],FE={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},RE={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},OE={class:"list-panel"},LE={class:"list-header"},NE={class:"col-check"},UE=["checked"],_E={class:"list-body"},QE={class:"col-check"},HE=["onUpdate:modelValue"],GE={class:"col-index"},YE=["title"],VE={class:"col-main"},WE=["checked","onChange"],Hn=Ue(d.defineComponent({__name:"LeitingPosition",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close","save"],setup(n,{expose:e,emit:t}){const i=n,s=t,o=d.computed({get:()=>i.open!==void 0?i.open:i.visible,set:N=>{s("update:visible",N),s("update:open",N)}}),r=d.inject("leitingMethods"),l=d.ref("BIM"),a=d.ref("param"),c=d.ref(""),u=d.ref([]),h=d.ref("BIM"),f=d.ref(null),p=d.ref(null),m=d.ref(null),y=()=>(!m.value&&r?.value?.getViewer&&r?.value?.getCesium&&(m.value=new oc(r.value.getViewer(),r.value.getCesium())),m.value),A=()=>{y()?.clearMarkers(),f.value=null,p.value=null},C=(N,D)=>{N==="BIM"?f.value=D:p.value=D,y()?.addMarker(N,D),fe.success(`${N==="BIM"?"BIM":"地图"}标记点已添加`)},E=()=>{y()?.registerPickHandler(N=>{C(h.value,N)})},x=()=>{y()?.destroyPickHandler()},M=()=>{if(!f.value||!p.value){fe.warning("请先选择BIM标记点和地图标记点");return}if(!c.value){fe.warning("请先选择主模型");return}const N=y();let D=0,Q=0,V=0;if(N){const{dLon:$,dLat:q,dHeight:ne}=N.calculateOffset(f.value,p.value);D=$,Q=q,V=ne}else D=p.value.longitude-f.value.longitude,Q=p.value.latitude-f.value.latitude,V=p.value.height-f.value.height;B.value.longitude+=D,B.value.latitude+=Q,B.value.height+=V,w(c.value,{longitude:B.value.longitude,latitude:B.value.latitude,height:B.value.height}),fe.success("位置已调整")};d.watch(()=>a.value,N=>{N==="pick"?E():x()}),e({addMarker:C,setModelType:N=>{(N==="BIM"||N==="OSGB")&&(l.value=N)}});const B=d.ref({longitude:0,latitude:0,lonlat:1e-6,heightDistance:1,rotation:30,totalRotation:0,height:0,X:0,Y:0,Z:0}),I=d.computed(()=>{const N=u.value.find(D=>D.modelId===c.value);return N?N.modelName:""}),g=d.computed(()=>P.value.length>0&&P.value.every(N=>N.selected)),k=()=>{o.value=!1,s("close")},P=d.computed(()=>u.value.filter(N=>N.type===l.value)),F=N=>{const D=N.target.checked;P.value.forEach(Q=>Q.selected=D)},L=()=>{if(!r?.value)return;const N=r.value,D=N.getMapTileset?N.getMapTileset():{},Q=[];if(Object.keys(D).forEach(V=>{const q=D[V].leiting||{};q.model&&Q.push({modelId:q.model.modelId,modelName:q.model.modelName,selected:!1,formData:q.model.formData||{},dbName:q.model.dbName,url:q.model.url,type:q.model.type||"BIM"})}),u.value=Q,Q.length>0){const V=N.getBIMmodelId?N.getBIMmodelId():"";V&&Q.find($=>$.modelId===V)?O(V):O(Q[0].modelId),Q.forEach($=>$.selected=!0)}},H=()=>{fe.info("拖动右下角标,可显示模型列表",void 0,2)},O=N=>{c.value=N;const D=u.value.find(Q=>Q.modelId===N);D&&D.formData&&Object.keys(B.value).forEach(Q=>{D.formData[Q]!==void 0&&(B.value[Q]=D.formData[Q])})},b=N=>r?.value?.getMapTileset?r.value.getMapTileset()[N]:null,w=(N,D)=>{const Q=b(N),V=r.value.getCesium();if(Q&&V){if(Q.leiting?.model){Q.leiting.model.formData={...Q.leiting.model.formData,...D};const $=u.value.find(q=>q.modelId===N);$&&($.formData=Q.leiting.model.formData)}dr({Cesium:V,tileset:Q})}},v=N=>{if(!c.value)return;const D=B.value[N];w(c.value,{[N]:D})},S=N=>{const D=P.value.filter(q=>q.selected);if(D.length===0){fe.warning("请先选择要调整的模型");return}const{lonlat:Q,heightDistance:V,rotation:$}=B.value;D.forEach(q=>{const ne={...q.formData};switch(N){case"north":ne.latitude+=Q;break;case"south":ne.latitude-=Q;break;case"east":ne.longitude+=Q;break;case"west":ne.longitude-=Q;break;case"up":ne.height+=V;break;case"down":ne.height-=V;break;case"rotateLeft":ne.totalRotation=(ne.totalRotation||0)-$;break;case"rotateRight":ne.totalRotation=(ne.totalRotation||0)+$;break}q.modelId===c.value&&Object.assign(B.value,ne),w(q.modelId,ne)})},R=()=>{if(!c.value){fe.warning("请先选择主模型");return}const N=b(c.value);if(!N||!r?.value?.getViewer)return;const D=r.value.getViewer(),Q=r.value.getCesium(),V=N.boundingSphere;D.camera.flyToBoundingSphere(V,{offset:new Q.HeadingPitchRange(0,Q.Math.toRadians(-90),V.radius*2),duration:1.5})},_=()=>{r?.value?.saveRegion?(r.value.saveRegion(u.value),s("save",d.unref(u))):(console.log("Save models:",u.value),fe.warning("未找到保存接口,数据已打印控制台"))};return d.watch(()=>i.visible,N=>{N?(L(),H(),a.value==="pick"&&E()):(x(),A())}),d.onMounted(()=>{i.visible&&(L(),H(),a.value==="pick"&&E())}),(N,D)=>(d.openBlock(),d.createBlock(Fe,{visible:o.value,title:"调整位置(调整前可选择正北俯视)",width:282,"full-height":n.fullHeight,"onUpdate:visible":D[25]||(D[25]=Q=>o.value=Q),onClose:k,onSave:_},{default:d.withCtx(()=>[d.createElementVNode("div",lE,[d.createElementVNode("div",cE,[d.createElementVNode("div",dE,[D[26]||(D[26]=d.createElementVNode("label",null,"模型类型:",-1)),d.createElementVNode("div",uE,[d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="BIM"}),onClick:D[0]||(D[0]=Q=>l.value="BIM")},"BIM模型",2),d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="OSGB"}),onClick:D[1]||(D[1]=Q=>l.value="OSGB")},"倾斜摄影",2)])]),d.createElementVNode("div",hE,[D[27]||(D[27]=d.createElementVNode("label",null,"调整操作:",-1)),d.createElementVNode("div",fE,[d.createElementVNode("span",{class:d.normalizeClass({active:a.value==="param"}),onClick:D[2]||(D[2]=Q=>a.value="param")},"参数模式",2),d.createElementVNode("span",{class:d.normalizeClass({active:a.value==="pick"}),onClick:D[3]||(D[3]=Q=>a.value="pick")},"地图点选",2)])]),d.createElementVNode("div",pE,[D[28]||(D[28]=d.createElementVNode("label",null,"当前主模型:",-1)),d.createElementVNode("span",gE,d.toDisplayString(I.value||"未选择"),1)]),D[42]||(D[42]=d.createElementVNode("div",{class:"separator"},null,-1)),a.value==="param"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[D[36]||(D[36]=d.createElementVNode("div",{class:"group-header"},"当前状态",-1)),d.createElementVNode("div",mE,[D[29]||(D[29]=d.createElementVNode("label",null,"经度(东西):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[4]||(D[4]=Q=>B.value.longitude=Q),onChange:D[5]||(D[5]=Q=>v("longitude")),step:"0.000001"},null,544),[[d.vModelText,B.value.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",AE,[D[30]||(D[30]=d.createElementVNode("label",null,"纬度(南北):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[6]||(D[6]=Q=>B.value.latitude=Q),onChange:D[7]||(D[7]=Q=>v("latitude")),step:"0.000001"},null,544),[[d.vModelText,B.value.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",yE,[D[31]||(D[31]=d.createElementVNode("label",null,"高度(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[8]||(D[8]=Q=>B.value.height=Q),onChange:D[9]||(D[9]=Q=>v("height")),step:"0.1"},null,544),[[d.vModelText,B.value.height,void 0,{number:!0}]])]),d.createElementVNode("div",CE,[D[32]||(D[32]=d.createElementVNode("label",null,"累计旋转(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[10]||(D[10]=Q=>B.value.totalRotation=Q),onChange:D[11]||(D[11]=Q=>v("totalRotation")),step:"1"},null,544),[[d.vModelText,B.value.totalRotation,void 0,{number:!0}]])]),D[37]||(D[37]=d.createElementVNode("div",{class:"separator"},null,-1)),D[38]||(D[38]=d.createElementVNode("div",{class:"group-header"},"调整步长",-1)),d.createElementVNode("div",EE,[D[33]||(D[33]=d.createElementVNode("label",null,"经纬步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[12]||(D[12]=Q=>B.value.lonlat=Q),step:"0.000001"},null,512),[[d.vModelText,B.value.lonlat,void 0,{number:!0}]])]),d.createElementVNode("div",wE,[D[34]||(D[34]=d.createElementVNode("label",null,"高度步长(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[13]||(D[13]=Q=>B.value.heightDistance=Q),step:"0.1"},null,512),[[d.vModelText,B.value.heightDistance,void 0,{number:!0}]])]),d.createElementVNode("div",bE,[D[35]||(D[35]=d.createElementVNode("label",null,"旋转步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[14]||(D[14]=Q=>B.value.rotation=Q),step:"1"},null,512),[[d.vModelText,B.value.rotation,void 0,{number:!0}]])]),d.createElementVNode("div",vE,[d.createElementVNode("button",{onClick:D[15]||(D[15]=Q=>S("rotateLeft"))},"左转"),d.createElementVNode("button",{onClick:D[16]||(D[16]=Q=>S("north"))},"北移"),d.createElementVNode("button",{onClick:D[17]||(D[17]=Q=>S("rotateRight"))},"右转"),d.createElementVNode("button",{onClick:D[18]||(D[18]=Q=>S("west"))},"西移"),d.createElementVNode("button",{onClick:D[19]||(D[19]=Q=>S("south"))},"南移"),d.createElementVNode("button",{onClick:D[20]||(D[20]=Q=>S("east"))},"东移"),d.createElementVNode("button",{onClick:D[21]||(D[21]=Q=>S("up"))},"上移"),d.createElementVNode("button",{onClick:D[22]||(D[22]=Q=>S("down"))},"下移"),d.createElementVNode("button",{onClick:R,class:"primary-btn"},"正北俯视"),d.createElementVNode("button",{onClick:_,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):a.value==="pick"?(d.openBlock(),d.createElementBlock("div",xE,[d.createElementVNode("div",IE,[d.createElementVNode("div",BE,[d.createElementVNode("div",{onClick:D[23]||(D[23]=Q=>h.value="BIM"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[d.createElementVNode("input",{type:"radio",checked:h.value==="BIM",style:{"margin-right":"5px"}},null,8,SE),D[39]||(D[39]=d.createElementVNode("span",{style:{"font-weight":"bold"}},"BIM标记点:",-1))]),f.value?(d.openBlock(),d.createElementBlock("div",ME,[d.createElementVNode("div",null,"经度:"+d.toDisplayString(f.value.longitude.toFixed(10)),1),d.createElementVNode("div",null,"纬度:"+d.toDisplayString(f.value.latitude.toFixed(10)),1)])):(d.openBlock(),d.createElementBlock("div",TE,"未选择"))])]),d.createElementVNode("div",DE,[d.createElementVNode("div",kE,[d.createElementVNode("div",{onClick:D[24]||(D[24]=Q=>h.value="MAP"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[d.createElementVNode("input",{type:"radio",checked:h.value==="MAP",style:{"margin-right":"5px"}},null,8,PE),D[40]||(D[40]=d.createElementVNode("span",{style:{"font-weight":"bold"}},"地图标记点:",-1))]),p.value?(d.openBlock(),d.createElementBlock("div",FE,[d.createElementVNode("div",null,"经度:"+d.toDisplayString(p.value.longitude.toFixed(10)),1),d.createElementVNode("div",null,"纬度:"+d.toDisplayString(p.value.latitude.toFixed(10)),1)])):(d.openBlock(),d.createElementBlock("div",RE,"未选择"))])]),d.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[d.createElementVNode("button",{onClick:M},"调整位置"),d.createElementVNode("button",{onClick:_},"保存")]),D[41]||(D[41]=d.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[d.createElementVNode("div",null,"操作指南:"),d.createElementVNode("div",null,"1. 勾选上方 BIM 或 地图 标记点选项。"),d.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),d.createElementVNode("div",null,"3. 采集两点后,点击“调整位置”进行校准。")],-1))])):d.createCommentVNode("",!0)]),d.createElementVNode("div",OE,[d.createElementVNode("div",LE,[d.createElementVNode("div",NE,[d.createElementVNode("input",{type:"checkbox",checked:g.value,onChange:F},null,40,UE)]),D[43]||(D[43]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),D[44]||(D[44]=d.createElementVNode("div",{class:"col-name"},"名称",-1)),D[45]||(D[45]=d.createElementVNode("div",{class:"col-main"},"主模型",-1))]),d.createElementVNode("div",_E,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(P.value,(Q,V)=>(d.openBlock(),d.createElementBlock("div",{key:Q.modelId,class:d.normalizeClass(["list-item",{active:Q.modelId===c.value}])},[d.createElementVNode("div",QE,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":$=>Q.selected=$},null,8,HE),[[d.vModelCheckbox,Q.selected]])]),d.createElementVNode("div",GE,d.toDisplayString(V+1),1),d.createElementVNode("div",{class:"col-name",title:Q.modelName},d.toDisplayString(Q.modelName),9,YE),d.createElementVNode("div",VE,[d.createElementVNode("input",{type:"radio",name:"mainModel",checked:Q.modelId===c.value,onChange:$=>O(Q.modelId)},null,40,WE)])],2))),128))])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-6cbc261f"]]);function Pi(){return Pi=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)({}).hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},Pi.apply(null,arguments)}const zE={locale:"zh_CN",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",yearFormat:"YYYY年",dayFormat:"D日",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH时mm分ss秒",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪"},jE={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},rc={lang:Pi({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},zE),timePickerLocale:Pi({},jE)};rc.lang.ok="确定";var Fi={exports:{}},$E=Fi.exports,ac;function lc(){return ac||(ac=1,(function(n,e){(function(t,i){n.exports=i()})($E,(function(){var t=1e3,i=6e4,s=36e5,o="millisecond",r="second",l="minute",a="hour",c="day",u="week",h="month",f="quarter",p="year",m="date",y="Invalid Date",A=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,C=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(O){var b=["th","st","nd","rd"],w=O%100;return"["+O+(b[(w-20)%10]||b[w]||b[0])+"]"}},x=function(O,b,w){var v=String(O);return!v||v.length>=b?O:""+Array(b+1-v.length).join(w)+O},M={s:x,z:function(O){var b=-O.utcOffset(),w=Math.abs(b),v=Math.floor(w/60),S=w%60;return(b<=0?"+":"-")+x(v,2,"0")+":"+x(S,2,"0")},m:function O(b,w){if(b.date()<w.date())return-O(w,b);var v=12*(w.year()-b.year())+(w.month()-b.month()),S=b.clone().add(v,h),R=w-S<0,_=b.clone().add(v+(R?-1:1),h);return+(-(v+(w-S)/(R?S-_:_-S))||0)},a:function(O){return O<0?Math.ceil(O)||0:Math.floor(O)},p:function(O){return{M:h,y:p,w:u,d:c,D:m,h:a,m:l,s:r,ms:o,Q:f}[O]||String(O||"").toLowerCase().replace(/s$/,"")},u:function(O){return O===void 0}},T="en",B={};B[T]=E;var I="$isDayjsObject",g=function(O){return O instanceof L||!(!O||!O[I])},k=function O(b,w,v){var S;if(!b)return T;if(typeof b=="string"){var R=b.toLowerCase();B[R]&&(S=R),w&&(B[R]=w,S=R);var _=b.split("-");if(!S&&_.length>1)return O(_[0])}else{var N=b.name;B[N]=b,S=N}return!v&&S&&(T=S),S||!v&&T},P=function(O,b){if(g(O))return O.clone();var w=typeof b=="object"?b:{};return w.date=O,w.args=arguments,new L(w)},F=M;F.l=k,F.i=g,F.w=function(O,b){return P(O,{locale:b.$L,utc:b.$u,x:b.$x,$offset:b.$offset})};var L=(function(){function O(w){this.$L=k(w.locale,null,!0),this.parse(w),this.$x=this.$x||w.x||{},this[I]=!0}var b=O.prototype;return b.parse=function(w){this.$d=(function(v){var S=v.date,R=v.utc;if(S===null)return new Date(NaN);if(F.u(S))return new Date;if(S instanceof Date)return new Date(S);if(typeof S=="string"&&!/Z$/i.test(S)){var _=S.match(A);if(_){var N=_[2]-1||0,D=(_[7]||"0").substring(0,3);return R?new Date(Date.UTC(_[1],N,_[3]||1,_[4]||0,_[5]||0,_[6]||0,D)):new Date(_[1],N,_[3]||1,_[4]||0,_[5]||0,_[6]||0,D)}}return new Date(S)})(w),this.init()},b.init=function(){var w=this.$d;this.$y=w.getFullYear(),this.$M=w.getMonth(),this.$D=w.getDate(),this.$W=w.getDay(),this.$H=w.getHours(),this.$m=w.getMinutes(),this.$s=w.getSeconds(),this.$ms=w.getMilliseconds()},b.$utils=function(){return F},b.isValid=function(){return this.$d.toString()!==y},b.isSame=function(w,v){var S=P(w);return this.startOf(v)<=S&&S<=this.endOf(v)},b.isAfter=function(w,v){return P(w)<this.startOf(v)},b.isBefore=function(w,v){return this.endOf(v)<P(w)},b.$g=function(w,v,S){return F.u(w)?this[v]:this.set(S,w)},b.unix=function(){return Math.floor(this.valueOf()/1e3)},b.valueOf=function(){return this.$d.getTime()},b.startOf=function(w,v){var S=this,R=!!F.u(v)||v,_=F.p(w),N=function(Y,j){var J=F.w(S.$u?Date.UTC(S.$y,j,Y):new Date(S.$y,j,Y),S);return R?J:J.endOf(c)},D=function(Y,j){return F.w(S.toDate()[Y].apply(S.toDate("s"),(R?[0,0,0,0]:[23,59,59,999]).slice(j)),S)},Q=this.$W,V=this.$M,$=this.$D,q="set"+(this.$u?"UTC":"");switch(_){case p:return R?N(1,0):N(31,11);case h:return R?N(1,V):N(0,V+1);case u:var ne=this.$locale().weekStart||0,se=(Q<ne?Q+7:Q)-ne;return N(R?$-se:$+(6-se),V);case c:case m:return D(q+"Hours",0);case a:return D(q+"Minutes",1);case l:return D(q+"Seconds",2);case r:return D(q+"Milliseconds",3);default:return this.clone()}},b.endOf=function(w){return this.startOf(w,!1)},b.$set=function(w,v){var S,R=F.p(w),_="set"+(this.$u?"UTC":""),N=(S={},S[c]=_+"Date",S[m]=_+"Date",S[h]=_+"Month",S[p]=_+"FullYear",S[a]=_+"Hours",S[l]=_+"Minutes",S[r]=_+"Seconds",S[o]=_+"Milliseconds",S)[R],D=R===c?this.$D+(v-this.$W):v;if(R===h||R===p){var Q=this.clone().set(m,1);Q.$d[N](D),Q.init(),this.$d=Q.set(m,Math.min(this.$D,Q.daysInMonth())).$d}else N&&this.$d[N](D);return this.init(),this},b.set=function(w,v){return this.clone().$set(w,v)},b.get=function(w){return this[F.p(w)]()},b.add=function(w,v){var S,R=this;w=Number(w);var _=F.p(v),N=function(V){var $=P(R);return F.w($.date($.date()+Math.round(V*w)),R)};if(_===h)return this.set(h,this.$M+w);if(_===p)return this.set(p,this.$y+w);if(_===c)return N(1);if(_===u)return N(7);var D=(S={},S[l]=i,S[a]=s,S[r]=t,S)[_]||1,Q=this.$d.getTime()+w*D;return F.w(Q,this)},b.subtract=function(w,v){return this.add(-1*w,v)},b.format=function(w){var v=this,S=this.$locale();if(!this.isValid())return S.invalidDate||y;var R=w||"YYYY-MM-DDTHH:mm:ssZ",_=F.z(this),N=this.$H,D=this.$m,Q=this.$M,V=S.weekdays,$=S.months,q=S.meridiem,ne=function(j,J,oe,le){return j&&(j[J]||j(v,R))||oe[J].slice(0,le)},se=function(j){return F.s(N%12||12,j,"0")},Y=q||function(j,J,oe){var le=j<12?"AM":"PM";return oe?le.toLowerCase():le};return R.replace(C,(function(j,J){return J||(function(oe){switch(oe){case"YY":return String(v.$y).slice(-2);case"YYYY":return F.s(v.$y,4,"0");case"M":return Q+1;case"MM":return F.s(Q+1,2,"0");case"MMM":return ne(S.monthsShort,Q,$,3);case"MMMM":return ne($,Q);case"D":return v.$D;case"DD":return F.s(v.$D,2,"0");case"d":return String(v.$W);case"dd":return ne(S.weekdaysMin,v.$W,V,2);case"ddd":return ne(S.weekdaysShort,v.$W,V,3);case"dddd":return V[v.$W];case"H":return String(N);case"HH":return F.s(N,2,"0");case"h":return se(1);case"hh":return se(2);case"a":return Y(N,D,!0);case"A":return Y(N,D,!1);case"m":return String(D);case"mm":return F.s(D,2,"0");case"s":return String(v.$s);case"ss":return F.s(v.$s,2,"0");case"SSS":return F.s(v.$ms,3,"0");case"Z":return _}return null})(j)||_.replace(":","")}))},b.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},b.diff=function(w,v,S){var R,_=this,N=F.p(v),D=P(w),Q=(D.utcOffset()-this.utcOffset())*i,V=this-D,$=function(){return F.m(_,D)};switch(N){case p:R=$()/12;break;case h:R=$();break;case f:R=$()/3;break;case u:R=(V-Q)/6048e5;break;case c:R=(V-Q)/864e5;break;case a:R=V/s;break;case l:R=V/i;break;case r:R=V/t;break;default:R=V}return S?R:F.a(R)},b.daysInMonth=function(){return this.endOf(h).$D},b.$locale=function(){return B[this.$L]},b.locale=function(w,v){if(!w)return this.$L;var S=this.clone(),R=k(w,v,!0);return R&&(S.$L=R),S},b.clone=function(){return F.w(this.$d,this)},b.toDate=function(){return new Date(this.valueOf())},b.toJSON=function(){return this.isValid()?this.toISOString():null},b.toISOString=function(){return this.$d.toISOString()},b.toString=function(){return this.$d.toUTCString()},O})(),H=L.prototype;return P.prototype=H,[["$ms",o],["$s",r],["$m",l],["$H",a],["$W",c],["$M",h],["$y",p],["$D",m]].forEach((function(O){H[O[1]]=function(b){return this.$g(b,O[0],O[1])}})),P.extend=function(O,b){return O.$i||(O(b,L,P),O.$i=!0),P},P.locale=k,P.isDayjs=g,P.unix=function(O){return P(1e3*O)},P.en=B[T],P.Ls=B,P.p={},P}))})(Fi)),Fi.exports}var KE=lc();const ze=Zt(KE);var Ri={exports:{}},XE=Ri.exports,cc;function qE(){return cc||(cc=1,(function(n,e){(function(t,i){n.exports=i(lc())})(XE,(function(t){function i(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var s=i(t),o={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(r,l){return l==="W"?r+"周":r+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(r,l){var a=100*r+l;return a<600?"凌晨":a<900?"早上":a<1100?"上午":a<1300?"中午":a<1800?"下午":"晚上"}};return s.default.locale(o,null,!0),o}))})(Ri)),Ri.exports}qE();var Oi={exports:{}},JE=Oi.exports,dc;function ZE(){return dc||(dc=1,(function(n,e){(function(t,i){n.exports=i()})(JE,(function(){return function(t,i,s){var o=i.prototype,r=function(h){return h&&(h.indexOf?h:h.s)},l=function(h,f,p,m,y){var A=h.name?h:h.$locale(),C=r(A[f]),E=r(A[p]),x=C||E.map((function(T){return T.slice(0,m)}));if(!y)return x;var M=A.weekStart;return x.map((function(T,B){return x[(B+(M||0))%7]}))},a=function(){return s.Ls[s.locale()]},c=function(h,f){return h.formats[f]||(function(p){return p.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(m,y,A){return y||A.slice(1)}))})(h.formats[f.toUpperCase()])},u=function(){var h=this;return{months:function(f){return f?f.format("MMMM"):l(h,"months")},monthsShort:function(f){return f?f.format("MMM"):l(h,"monthsShort","months",3)},firstDayOfWeek:function(){return h.$locale().weekStart||0},weekdays:function(f){return f?f.format("dddd"):l(h,"weekdays")},weekdaysMin:function(f){return f?f.format("dd"):l(h,"weekdaysMin","weekdays",2)},weekdaysShort:function(f){return f?f.format("ddd"):l(h,"weekdaysShort","weekdays",3)},longDateFormat:function(f){return c(h.$locale(),f)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};o.localeData=function(){return u.bind(this)()},s.localeData=function(){var h=a();return{firstDayOfWeek:function(){return h.weekStart||0},weekdays:function(){return s.weekdays()},weekdaysShort:function(){return s.weekdaysShort()},weekdaysMin:function(){return s.weekdaysMin()},months:function(){return s.months()},monthsShort:function(){return s.monthsShort()},longDateFormat:function(f){return c(h,f)},meridiem:h.meridiem,ordinal:h.ordinal}},s.months=function(){return l(a(),"months")},s.monthsShort=function(){return l(a(),"monthsShort","months",3)},s.weekdays=function(h){return l(a(),"weekdays",null,null,h)},s.weekdaysShort=function(h){return l(a(),"weekdaysShort","weekdays",3,h)},s.weekdaysMin=function(h){return l(a(),"weekdaysMin","weekdays",2,h)}}}))})(Oi)),Oi.exports}var ew=ZE();const tw=Zt(ew);var Li={exports:{}},nw=Li.exports,uc;function iw(){return uc||(uc=1,(function(n,e){(function(t,i){n.exports=i()})(nw,(function(){return function(t,i){i.prototype.weekday=function(s){var o=this.$locale().weekStart||0,r=this.$W,l=(r<o?r+7:r)-o;return this.$utils().u(s)?l:this.subtract(l,"day").add(s,"day")}}}))})(Li)),Li.exports}var sw=iw();const ow=Zt(sw);var Ni={exports:{}},rw=Ni.exports,hc;function aw(){return hc||(hc=1,(function(n,e){(function(t,i){n.exports=i()})(rw,(function(){var t="week",i="year";return function(s,o,r){var l=o.prototype;l.week=function(a){if(a===void 0&&(a=null),a!==null)return this.add(7*(a-this.week()),"day");var c=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var u=r(this).startOf(i).add(1,i).date(c),h=r(this).endOf(t);if(u.isBefore(h))return 1}var f=r(this).startOf(i).date(c).startOf(t).subtract(1,"millisecond"),p=this.diff(f,t,!0);return p<0?r(this).startOf("week").week():Math.ceil(p)},l.weeks=function(a){return a===void 0&&(a=null),this.week(a)}}}))})(Ni)),Ni.exports}var lw=aw();const cw=Zt(lw);var Ui={exports:{}},dw=Ui.exports,fc;function uw(){return fc||(fc=1,(function(n,e){(function(t,i){n.exports=i()})(dw,(function(){var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},i=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,s=/\d/,o=/\d\d/,r=/\d\d?/,l=/\d*[^-_:/,()\s\d]+/,a={},c=function(A){return(A=+A)+(A>68?1900:2e3)},u=function(A){return function(C){this[A]=+C}},h=[/[+-]\d\d:?(\d\d)?|Z/,function(A){(this.zone||(this.zone={})).offset=(function(C){if(!C||C==="Z")return 0;var E=C.match(/([+-]|\d\d)/g),x=60*E[1]+(+E[2]||0);return x===0?0:E[0]==="+"?-x:x})(A)}],f=function(A){var C=a[A];return C&&(C.indexOf?C:C.s.concat(C.f))},p=function(A,C){var E,x=a.meridiem;if(x){for(var M=1;M<=24;M+=1)if(A.indexOf(x(M,0,C))>-1){E=M>12;break}}else E=A===(C?"pm":"PM");return E},m={A:[l,function(A){this.afternoon=p(A,!1)}],a:[l,function(A){this.afternoon=p(A,!0)}],Q:[s,function(A){this.month=3*(A-1)+1}],S:[s,function(A){this.milliseconds=100*+A}],SS:[o,function(A){this.milliseconds=10*+A}],SSS:[/\d{3}/,function(A){this.milliseconds=+A}],s:[r,u("seconds")],ss:[r,u("seconds")],m:[r,u("minutes")],mm:[r,u("minutes")],H:[r,u("hours")],h:[r,u("hours")],HH:[r,u("hours")],hh:[r,u("hours")],D:[r,u("day")],DD:[o,u("day")],Do:[l,function(A){var C=a.ordinal,E=A.match(/\d+/);if(this.day=E[0],C)for(var x=1;x<=31;x+=1)C(x).replace(/\[|\]/g,"")===A&&(this.day=x)}],w:[r,u("week")],ww:[o,u("week")],M:[r,u("month")],MM:[o,u("month")],MMM:[l,function(A){var C=f("months"),E=(f("monthsShort")||C.map((function(x){return x.slice(0,3)}))).indexOf(A)+1;if(E<1)throw new Error;this.month=E%12||E}],MMMM:[l,function(A){var C=f("months").indexOf(A)+1;if(C<1)throw new Error;this.month=C%12||C}],Y:[/[+-]?\d+/,u("year")],YY:[o,function(A){this.year=c(A)}],YYYY:[/\d{4}/,u("year")],Z:h,ZZ:h};function y(A){var C,E;C=A,E=a&&a.formats;for(var x=(A=C.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(P,F,L){var H=L&&L.toUpperCase();return F||E[L]||t[L]||E[H].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(O,b,w){return b||w.slice(1)}))}))).match(i),M=x.length,T=0;T<M;T+=1){var B=x[T],I=m[B],g=I&&I[0],k=I&&I[1];x[T]=k?{regex:g,parser:k}:B.replace(/^\[|\]$/g,"")}return function(P){for(var F={},L=0,H=0;L<M;L+=1){var O=x[L];if(typeof O=="string")H+=O.length;else{var b=O.regex,w=O.parser,v=P.slice(H),S=b.exec(v)[0];w.call(F,S),P=P.replace(S,"")}}return(function(R){var _=R.afternoon;if(_!==void 0){var N=R.hours;_?N<12&&(R.hours+=12):N===12&&(R.hours=0),delete R.afternoon}})(F),F}}return function(A,C,E){E.p.customParseFormat=!0,A&&A.parseTwoDigitYear&&(c=A.parseTwoDigitYear);var x=C.prototype,M=x.parse;x.parse=function(T){var B=T.date,I=T.utc,g=T.args;this.$u=I;var k=g[1];if(typeof k=="string"){var P=g[2]===!0,F=g[3]===!0,L=P||F,H=g[2];F&&(H=g[2]),a=this.$locale(),!P&&H&&(a=E.Ls[H]),this.$d=(function(v,S,R,_){try{if(["x","X"].indexOf(S)>-1)return new Date((S==="X"?1e3:1)*v);var N=y(S)(v),D=N.year,Q=N.month,V=N.day,$=N.hours,q=N.minutes,ne=N.seconds,se=N.milliseconds,Y=N.zone,j=N.week,J=new Date,oe=V||(D||Q?1:J.getDate()),le=D||J.getFullYear(),ge=0;D&&!Q||(ge=Q>0?Q-1:J.getMonth());var we,me=$||0,Re=q||0,ct=ne||0,$e=se||0;return Y?new Date(Date.UTC(le,ge,oe,me,Re,ct,$e+60*Y.offset*1e3)):R?new Date(Date.UTC(le,ge,oe,me,Re,ct,$e)):(we=new Date(le,ge,oe,me,Re,ct,$e),j&&(we=_(we).week(j).toDate()),we)}catch{return new Date("")}})(B,k,I,E),this.init(),H&&H!==!0&&(this.$L=this.locale(H).$L),L&&B!=this.format(k)&&(this.$d=new Date("")),a={}}else if(k instanceof Array)for(var O=k.length,b=1;b<=O;b+=1){g[1]=k[b-1];var w=E.apply(this,g);if(w.isValid()){this.$d=w.$d,this.$L=w.$L,this.init();break}b===O&&(this.$d=new Date(""))}else M.call(this,T)}}}))})(Ui)),Ui.exports}var hw=uw();const fw=Zt(hw),pw={class:"setting-panel"},gw={class:"tabs-header"},mw={class:"tab-content"},Aw={key:0,class:"section"},yw={class:"setting-item"},Cw={class:"setting-item"},Ew={class:"setting-item"},ww={key:1,class:"section"},bw={class:"tabs-header",style:{"margin-bottom":"8px"}},vw={key:0},xw={class:"setting-item column"},Iw={class:"setting-item column"},Bw={class:"setting-item"},Sw={key:1},Mw={class:"setting-item column"},Tw={class:"setting-item column",style:{"margin-top":"12px","border-top":"1px solid rgba(255,255,255,0.1)","padding-top":"8px"}},Dw={class:"search-box"},kw={key:2,class:"section"},Pw={class:"setting-item"},Fw={key:0,class:"setting-item column"},Rw={class:"sub-label"},Ow={class:"setting-item"},Lw={class:"setting-item"},Nw={class:"setting-item column"},Uw={class:"setting-item column"},_w={class:"sub-label"},Qw={class:"setting-item column"},Hw={class:"sub-label"},Gw={class:"setting-item column"},Yw={class:"sub-label"},Vw={class:"setting-item column"},Ww={style:{display:"flex",gap:"8px","margin-bottom":"8px"}},zw=["onClick","title"],jw={style:{display:"flex",gap:"8px","align-items":"center"}},$w={key:3,class:"section"},Kw={class:"setting-item"},Xw={class:"setting-item column"},Gn=Ue(d.defineComponent({__name:"LeitingSetting",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean,default:!1},tiandituToken:{type:String,default:""},initialConfig:{type:Object,default:()=>({})}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){ze.locale("zh-cn"),ze.extend(tw),ze.extend(ow),ze.extend(cw),ze.extend(fw);const t=Ae.Switch,i=Ae.Radio.Group,s=Ae.Radio,o=Ae.Input,r=Ae.Slider,l=Ae.Select,a=Ae.Select.Option,c=Ae.DatePicker,u=n,h=e,f=d.inject("leitingMethods"),p=d.computed({get:()=>u.open!==void 0?u.open:u.visible,set:b=>{h("update:visible",b),h("update:open",b)}}),m=d.ref("GIS"),y=d.reactive({globe:!1,terrain:!1,depthTest:!1}),A=d.reactive({provider:"tianditu",tianditu:{token:"c25f14fb6bd4397cf8fe45144ff768d6",layerType:"img_w",showLabel:!1},arcgis:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"},baseMap:"tianditu"}),C=d.reactive({shadows:!1,shadowDarkness:.7,environmentMap:!1,ambientOcclusion:!1,time:ze("2025-06-22 10:00"),brightness:1.5,contrast:1,saturation:1,backgroundColor:"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)"}),E=d.reactive({collision:!1,habit:0}),x=b=>{b&&(b.globe!==void 0&&(y.globe=b.globe),b.terrain!==void 0&&(y.terrain=b.terrain),b.depthTest!==void 0&&(y.depthTest=b.depthTest),b.mapProvider!==void 0&&(A.provider=b.mapProvider),b.tiandituLayerType!==void 0&&(A.tianditu.layerType=b.tiandituLayerType),b.tiandituShowLabel!==void 0&&(A.tianditu.showLabel=b.tiandituShowLabel),b.arcgisUrl!==void 0&&(A.arcgis.url=b.arcgisUrl),b.shadows!==void 0&&(C.shadows=b.shadows),b.shadowDarkness!==void 0&&(C.shadowDarkness=b.shadowDarkness),b.environmentMap!==void 0&&(C.environmentMap=b.environmentMap),b.ambientOcclusion!==void 0&&(C.ambientOcclusion=b.ambientOcclusion),b.time!==void 0&&(typeof b.time=="number"?C.time=ze().startOf("day").add(b.time,"hour"):C.time=ze(b.time)),b.brightness!==void 0&&(C.brightness=b.brightness),b.contrast!==void 0&&(C.contrast=b.contrast),b.saturation!==void 0&&(C.saturation=b.saturation),b.backgroundColor!==void 0&&(C.backgroundColor=b.backgroundColor),b.collision!==void 0&&(E.collision=b.collision),b.mouseHabit!==void 0&&(E.habit=b.mouseHabit))};d.watch(()=>u.initialConfig,b=>{x(b)},{deep:!0,immediate:!0});const M=["linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)","linear-gradient(0deg, #0f2027 0%, #203a43 50%, #2c5364 100%)","linear-gradient(0deg, #cfd9df 0%, #e2ebf0 100%)"],T=[{label:"全球影像地图服务(墨卡托)",value:"img_w"},{label:"全球影像地图服务(经纬度)",value:"img_c"},{label:"全球矢量地图服务(墨卡托)",value:"vec_w"},{label:"全球矢量地图服务(经纬度)",value:"vec_c"},{label:"全球地形晕渲服务(墨卡托)",value:"ter_w"},{label:"全球地形晕渲服务(经纬度)",value:"ter_c"}],B=()=>{const b=A.provider,w={};b==="tianditu"?(w.token=A.tianditu.token,w.layerType=A.tianditu.layerType,w.showAnnotation=A.tianditu.showLabel):b==="arcgis"&&(w.url=A.arcgis.url),f.value?.changeBaseMap?.(b,w)};d.watch(()=>A.provider,B),d.watch(()=>A.tianditu.layerType,B),d.watch(()=>A.tianditu.showLabel,B),d.watch(()=>A.tianditu.token,us(B,1e3)),d.watch(()=>A.arcgis.url,us(B,1e3)),d.onMounted(()=>{u.tiandituToken&&(A.tianditu.token=u.tiandituToken)}),d.watch(()=>y.globe,b=>f.value?.setGlobeEnvironmentVisible?.(b)),d.watch(()=>y.terrain,b=>f.value?.setTerrainEnable?.(b)),d.watch(()=>y.depthTest,b=>f.value?.setDepthTestEnable?.(b)),d.watch(()=>f?.value,b=>{if(b){if(b.getConfigure=()=>({globe:y.globe,terrain:y.terrain,depthTest:y.depthTest,mapProvider:A.provider,tiandituLayerType:A.tianditu.layerType,tiandituShowLabel:A.tianditu.showLabel,arcgisUrl:A.arcgis.url,shadows:C.shadows,shadowDarkness:C.shadowDarkness,environmentMap:C.environmentMap,ambientOcclusion:C.ambientOcclusion,time:ze.isDayjs(C.time)?C.time.format("YYYY-MM-DD HH:mm"):C.time,brightness:C.brightness,contrast:C.contrast,saturation:C.saturation,backgroundColor:C.backgroundColor,collision:E.collision,mouseHabit:E.habit}),b.setConfigure=w=>{x(w)},b.setBackgroundColor&&C.backgroundColor&&b.setBackgroundColor(C.backgroundColor),b.setGlobeEnvironmentVisible&&b.setGlobeEnvironmentVisible(y.globe),b.setShadowsEnable&&b.setShadowsEnable(C.shadows),b.setShadowDarkness&&b.setShadowDarkness(C.shadowDarkness),b.setEnvironmentMapEnable&&b.setEnvironmentMapEnable(C.environmentMap),b.setAmbientOcclusion&&b.setAmbientOcclusion(C.ambientOcclusion),b.setTime){const w=ze.isDayjs(C.time)?C.time.toDate():new Date;b.setTime(w)}b.setModelBrightness&&b.setModelBrightness(C.brightness),b.setCollisionDetection&&b.setCollisionDetection(E.collision),b.setMouseHabit&&b.setMouseHabit(E.habit),b.changeBaseMap&&A.baseMap&&b.changeBaseMap(A.baseMap,{token:A.tianditu.token,layerType:A.tianditu.layerType,showAnnotation:A.tianditu.showLabel,url:A.arcgis.url})}},{immediate:!0});const I=d.computed({get:()=>{const b=C.backgroundColor;return/^#[0-9A-Fa-f]{6}$/.test(b)?b:"#ffffff"},set:b=>{C.backgroundColor=b}}),g=d.ref(""),k=d.ref(!1),P=d.ref([]);d.watch(()=>y.globe,b=>f.value?.setGlobeEnvironmentVisible?.(b)),d.watch(()=>y.terrain,b=>f.value?.setTerrainEnable?.(b)),d.watch(()=>A.baseMap,b=>{f.value?.changeBaseMap?.(b,{token:u.tiandituToken})}),d.watch(()=>C.shadows,b=>f.value?.setShadowsEnable?.(b)),d.watch(()=>C.shadowDarkness,b=>f.value?.setShadowDarkness?.(b)),d.watch(()=>C.environmentMap,b=>f.value?.setEnvironmentMapEnable?.(b)),d.watch(()=>C.ambientOcclusion,b=>f.value?.setAmbientOcclusion?.(b)),d.watch(()=>C.time,b=>{const w=ze.isDayjs(b)?b.toDate():new Date;f.value?.setTime?.(w)}),d.watch(()=>[C.brightness,C.contrast,C.saturation],([b,w,v])=>{const S=f.value;S?.setModelColorAdjustment?S.setModelColorAdjustment({brightness:b,contrast:w,saturation:v}):S?.setModelBrightness?.(b)}),d.watch(()=>C.backgroundColor,b=>{if(f.value?.setBackgroundColor)f.value.setBackgroundColor(b);else{const w=document.querySelector(".cesium-viewer");w&&(w.style.background=b)}}),d.watch(()=>E.collision,b=>f.value?.setCollisionDetection?.(b)),d.watch(()=>E.habit,b=>f.value?.setMouseHabit?.(b));const F=b=>{if(b?.pois&&Array.isArray(b.pois)&&b.pois.length>0){const w=b.pois[0],v=w.lonlat.split(/[, ]/).map(Number);if(v.length>=2&&!isNaN(v[0])&&!isNaN(v[1]))return{name:w.name,lon:v[0],lat:v[1],raw:w}}if(b?.area&&b.area.lonlat){const w=b.area,v=w.lonlat.split(/[, ]/).map(Number);if(v.length>=2&&!isNaN(v[0])&&!isNaN(v[1]))return{name:w.name,lon:v[0],lat:v[1],raw:w}}return null},H=us(async()=>{const b=(g.value||"").trim();if(!b)return;const w=u.tiandituToken||"c25f14fb6bd4397cf8fe45144ff768d6";k.value=!0,P.value=[];try{if(f.value?.searchLocation){const v=await f.value.searchLocation(b,w),S=F(v);S&&(P.value=[S],fe.success(`找到:${S.name||""}`),f.value.flyTo(S.lon,S.lat,5e3))}else{const S=`https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(JSON.stringify({keyWord:b,level:12,mapBound:"-180,-90,180,90",queryType:1,start:0,count:10}))}&type=query&tk=${encodeURIComponent(w)}`,R=await fetch(S);if(!R.ok)throw new Error(`HTTP ${R.status}`);const _=await R.json(),N=F(_);N&&(P.value=[N],fe.success(`找到:${N.name||""}`),f.value?.flyTo?.(N.lon,N.lat,5e3))}}catch(v){console.error("tianditu search error",v)}finally{k.value=!1}},800);d.watch(g,()=>{H()});const O=()=>{p.value=!1,h("close")};return d.onMounted(()=>{}),(b,w)=>(d.openBlock(),d.createBlock(Fe,{visible:p.value,title:"设置",width:320,"full-height":n.fullHeight,onClose:O,"onUpdate:visible":w[26]||(w[26]=v=>p.value=v)},{default:d.withCtx(()=>[d.createElementVNode("div",pw,[d.createElementVNode("div",gw,[d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="GIS"}]),onClick:w[0]||(w[0]=v=>m.value="GIS")},"GIS",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="MAP"}]),onClick:w[1]||(w[1]=v=>m.value="MAP")},"地图",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="RENDER"}]),onClick:w[2]||(w[2]=v=>m.value="RENDER")},"渲染",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="MOUSE"}]),onClick:w[3]||(w[3]=v=>m.value="MOUSE")},"鼠标",2)]),d.createElementVNode("div",mw,[m.value==="GIS"?(d.openBlock(),d.createElementBlock("div",Aw,[d.createElementVNode("div",yw,[w[27]||(w[27]=d.createElementVNode("span",null,"地球 (含大气/日月/星空)",-1)),d.createVNode(d.unref(t),{checked:y.globe,"onUpdate:checked":w[4]||(w[4]=v=>y.globe=v),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Cw,[w[28]||(w[28]=d.createElementVNode("span",null,"地形 (高程)",-1)),d.createVNode(d.unref(t),{checked:y.terrain,"onUpdate:checked":w[5]||(w[5]=v=>y.terrain=v),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Ew,[w[29]||(w[29]=d.createElementVNode("span",null,"地形遮挡",-1)),d.createVNode(d.unref(t),{checked:y.depthTest,"onUpdate:checked":w[6]||(w[6]=v=>y.depthTest=v),size:"small"},null,8,["checked"])])])):d.createCommentVNode("",!0),m.value==="MAP"?(d.openBlock(),d.createElementBlock("div",ww,[d.createElementVNode("div",bw,[d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:A.provider==="tianditu"}]),onClick:w[7]||(w[7]=v=>A.provider="tianditu")},"天地图",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:A.provider==="arcgis"}]),onClick:w[8]||(w[8]=v=>A.provider="arcgis")},"ArcGIS",2)]),A.provider==="tianditu"?(d.openBlock(),d.createElementBlock("div",vw,[d.createElementVNode("div",xw,[w[30]||(w[30]=d.createElementVNode("div",{class:"sub-label"},"Token",-1)),d.createVNode(d.unref(o),{value:A.tianditu.token,"onUpdate:value":w[9]||(w[9]=v=>A.tianditu.token=v),size:"small",placeholder:"输入天地图Token"},null,8,["value"])]),d.createElementVNode("div",Iw,[w[31]||(w[31]=d.createElementVNode("div",{class:"sub-label"},"地图风格",-1)),d.createVNode(d.unref(l),{value:A.tianditu.layerType,"onUpdate:value":w[10]||(w[10]=v=>A.tianditu.layerType=v),size:"small",style:{width:"100%"}},{default:d.withCtx(()=>[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(T,v=>d.createVNode(d.unref(a),{key:v.value,value:v.value},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(v.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"])]),d.createElementVNode("div",Bw,[w[32]||(w[32]=d.createElementVNode("span",null,"叠加注记",-1)),d.createVNode(d.unref(t),{checked:A.tianditu.showLabel,"onUpdate:checked":w[11]||(w[11]=v=>A.tianditu.showLabel=v),size:"small"},null,8,["checked"])])])):d.createCommentVNode("",!0),A.provider==="arcgis"?(d.openBlock(),d.createElementBlock("div",Sw,[d.createElementVNode("div",Mw,[w[33]||(w[33]=d.createElementVNode("div",{class:"sub-label"},"服务地址",-1)),d.createVNode(d.unref(o),{value:A.arcgis.url,"onUpdate:value":w[12]||(w[12]=v=>A.arcgis.url=v),size:"small",placeholder:"输入ArcGIS MapServer地址"},null,8,["value"])])])):d.createCommentVNode("",!0),d.createElementVNode("div",Tw,[w[34]||(w[34]=d.createElementVNode("div",{class:"sub-label"},"位置搜索 (天地图)",-1)),d.createElementVNode("div",Dw,[d.createVNode(d.unref(o),{value:g.value,"onUpdate:value":w[13]||(w[13]=v=>g.value=v),placeholder:"输入地名搜索",size:"small","allow-clear":""},null,8,["value"])])])])):d.createCommentVNode("",!0),m.value==="RENDER"?(d.openBlock(),d.createElementBlock("div",kw,[d.createElementVNode("div",Pw,[w[35]||(w[35]=d.createElementVNode("span",null,"阴影",-1)),d.createVNode(d.unref(t),{checked:C.shadows,"onUpdate:checked":w[14]||(w[14]=v=>C.shadows=v),size:"small"},null,8,["checked"])]),C.shadows?(d.openBlock(),d.createElementBlock("div",Fw,[d.createElementVNode("div",Rw,"阴影暗度 ("+d.toDisplayString(C.shadowDarkness.toFixed(2))+")",1),d.createVNode(d.unref(r),{value:C.shadowDarkness,"onUpdate:value":w[15]||(w[15]=v=>C.shadowDarkness=v),min:0,max:1,step:.05,size:"small"},null,8,["value"])])):d.createCommentVNode("",!0),d.createElementVNode("div",Ow,[w[36]||(w[36]=d.createElementVNode("span",null,"环境贴图 (HDR)",-1)),d.createVNode(d.unref(t),{checked:C.environmentMap,"onUpdate:checked":w[16]||(w[16]=v=>C.environmentMap=v),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Lw,[w[37]||(w[37]=d.createElementVNode("span",null,"环境光遮蔽 (AO)",-1)),d.createVNode(d.unref(t),{checked:C.ambientOcclusion,"onUpdate:checked":w[17]||(w[17]=v=>C.ambientOcclusion=v),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Nw,[w[38]||(w[38]=d.createElementVNode("div",{class:"sub-label"},"日期时间",-1)),d.createVNode(d.unref(c),{value:C.time,"onUpdate:value":w[18]||(w[18]=v=>C.time=v),"show-time":"",locale:d.unref(rc),format:"YYYY-MM-DD HH:mm",size:"small",style:{width:"100%"}},null,8,["value","locale"])]),d.createElementVNode("div",Uw,[d.createElementVNode("div",_w,"模型亮度 ("+d.toDisplayString(C.brightness.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:C.brightness,"onUpdate:value":w[19]||(w[19]=v=>C.brightness=v),min:0,max:5,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",Qw,[d.createElementVNode("div",Hw,"模型对比度 ("+d.toDisplayString(C.contrast.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:C.contrast,"onUpdate:value":w[20]||(w[20]=v=>C.contrast=v),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",Gw,[d.createElementVNode("div",Yw,"模型饱和度 ("+d.toDisplayString(C.saturation.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:C.saturation,"onUpdate:value":w[21]||(w[21]=v=>C.saturation=v),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",Vw,[w[39]||(w[39]=d.createElementVNode("div",{class:"sub-label"},"背景颜色",-1)),d.createElementVNode("div",Ww,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(M,(v,S)=>d.createElementVNode("div",{key:S,style:d.normalizeStyle({background:v,width:"32px",height:"24px",borderRadius:"2px",cursor:"pointer",border:"1px solid #d9d9d9",flexShrink:0}),onClick:R=>C.backgroundColor=v,title:"预设 "+(S+1)},null,12,zw)),64))]),d.createElementVNode("div",jw,[d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":w[22]||(w[22]=v=>I.value=v),style:{width:"40px",height:"24px",padding:"0",border:"1px solid #d9d9d9"}},null,512),[[d.vModelText,I.value]]),d.createVNode(d.unref(o),{value:C.backgroundColor,"onUpdate:value":w[23]||(w[23]=v=>C.backgroundColor=v),size:"small",style:{flex:"1"},placeholder:"CSS 颜色值"},null,8,["value"])])])])):d.createCommentVNode("",!0),m.value==="MOUSE"?(d.openBlock(),d.createElementBlock("div",$w,[d.createElementVNode("div",Kw,[w[40]||(w[40]=d.createElementVNode("span",null,"碰撞检测",-1)),d.createVNode(d.unref(t),{checked:E.collision,"onUpdate:checked":w[24]||(w[24]=v=>E.collision=v),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Xw,[w[43]||(w[43]=d.createElementVNode("div",{class:"sub-label"},"操作习惯",-1)),d.createVNode(d.unref(i),{value:E.habit,"onUpdate:value":w[25]||(w[25]=v=>E.habit=v),size:"small"},{default:d.withCtx(()=>[d.createVNode(d.unref(s),{value:0},{default:d.withCtx(()=>[...w[41]||(w[41]=[d.createTextVNode("默认 (中键旋转)",-1)])]),_:1}),d.createVNode(d.unref(s),{value:1},{default:d.withCtx(()=>[...w[42]||(w[42]=[d.createTextVNode("习惯1 (左键旋转)",-1)])]),_:1})]),_:1},8,["value"])])])):d.createCommentVNode("",!0)])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-a768b286"]]),qw={class:"cad-layer-panel"},Jw={class:"layer-list-container"},Zw={class:"list-header"},eb={class:"col-check"},tb=["checked"],nb={class:"list-body"},ib={class:"col-check"},sb=["checked","onChange"],ob={class:"col-index"},rb=["title"],ab={class:"col-color"},lb=["value"],cb={key:0,class:"empty-text"},db=Ue(d.defineComponent({__name:"LeitingCadLayer",props:{visible:{type:Boolean,default:!1},currentModelId:{type:String,default:""}},emits:["update:visible","handleCloseCardByCadCard"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods",d.ref({})),o=d.ref(""),r=d.ref([]),l=()=>{s.value&&s.value.getDxfModels&&(r.value=s.value.getDxfModels().map(E=>({modelId:E.modelId,modelName:E.modelName}))||[])},a=d.computed(()=>r.value.map(E=>({value:E.modelId,label:E.modelName}))),c=d.ref([]),u=d.ref([]),h=d.computed(()=>c.value.length>0&&u.value.length===c.value.length),f=({modelId:E})=>{if(c.value=[],u.value=[],s.value&&s.value.getDxfLayers){const x=s.value.getDxfLayers({modelId:E});x&&Object.keys(x).forEach((M,T)=>{x[M].length&&(c.value.push({index:T+1,layerName:M,layerColor:x[M][0].color||"#ffffff",key:M}),u.value.push(M))})}},p=E=>{o.value=E,f({modelId:E})},m=E=>{E.target.checked?u.value=c.value.map(M=>M.key):u.value=[],A()},y=(E,x)=>{x.target.checked?u.value.includes(E)||u.value.push(E):u.value=u.value.filter(T=>T!==E),A()},A=()=>{if(s.value&&s.value.showDxfLayer&&(s.value.showDxfLayer({modelId:o.value,show:!0,layers:u.value}),s.value.getDxfLayers)){const E=s.value.getDxfLayers({modelId:o.value});if(E){const x=Object.keys(E).filter(M=>!u.value.includes(M));s.value.showDxfLayer({modelId:o.value,show:!1,layers:x})}}},C=()=>{i("update:visible",!1),i("handleCloseCardByCadCard")};return d.watch(()=>t.visible,E=>{E&&(l(),t.currentModelId?(o.value=t.currentModelId,f({modelId:t.currentModelId})):a.value.length>0&&(o.value=a.value[0]?.value,f({modelId:o.value})))}),d.watch(()=>t.currentModelId,E=>{E&&t.visible&&(o.value=E,f({modelId:E}))}),(E,x)=>(d.openBlock(),d.createBlock(Fe,{visible:n.visible,title:"CAD图层","onUpdate:visible":x[3]||(x[3]=M=>E.$emit("update:visible",M)),onClose:C,width:360,align:"right","initial-position":{x:0,y:60}},{"header-extra":d.withCtx(()=>[d.createElementVNode("div",{class:"header-select-container",onMousedown:x[2]||(x[2]=d.withModifiers(()=>{},["stop"]))},[x[4]||(x[4]=d.createElementVNode("span",{class:"header-label"},"图纸:",-1)),d.createVNode(d.unref(Ae.Select),{value:o.value,"onUpdate:value":x[0]||(x[0]=M=>o.value=M),options:a.value,onChange:x[1]||(x[1]=M=>p(M)),placeholder:"选择模型",style:{width:"140px"},bordered:!1,class:"custom-header-select",popupClassName:"leiting-select-dropdown",size:"small"},null,8,["value","options"])],32)]),default:d.withCtx(()=>[d.createElementVNode("div",qw,[d.createElementVNode("div",Jw,[d.createElementVNode("div",Zw,[d.createElementVNode("div",eb,[d.createElementVNode("input",{type:"checkbox",checked:h.value,onChange:m},null,40,tb)]),x[5]||(x[5]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),x[6]||(x[6]=d.createElementVNode("div",{class:"col-name"},"图层名称",-1)),x[7]||(x[7]=d.createElementVNode("div",{class:"col-color"},"颜色",-1))]),d.createElementVNode("div",nb,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(c.value,M=>(d.openBlock(),d.createElementBlock("div",{key:M.key,class:"list-item"},[d.createElementVNode("div",ib,[d.createElementVNode("input",{type:"checkbox",checked:u.value.includes(M.key),onChange:T=>y(M.key,T)},null,40,sb)]),d.createElementVNode("div",ob,d.toDisplayString(M.index),1),d.createElementVNode("div",{class:"col-name",title:M.layerName},d.toDisplayString(M.layerName),9,rb),d.createElementVNode("div",ab,[d.createElementVNode("input",{type:"color",value:M.layerColor,disabled:""},null,8,lb)])]))),128)),c.value.length===0?(d.openBlock(),d.createElementBlock("div",cb,"暂无数据")):d.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-a4db4977"]]),ub={class:"adjust-panel"},hb={class:"control-panel"},fb={class:"form-item"},pb={class:"radio-group"},gb={class:"form-item"},mb=["title"],Ab={class:"param-row"},yb=["step"],Cb={class:"param-row"},Eb=["step"],wb={class:"param-row"},bb=["step"],vb={class:"param-row"},xb=["step"],Ib={class:"param-row"},Bb=["step"],Sb={class:"param-row"},Mb=["step"],Tb={class:"param-row"},Db=["step"],kb={class:"button-grid"},Pb={key:1,class:"pick-mode-ui"},Fb=["onClick"],Rb=["checked"],Ob={style:{"font-size":"12px",color:"#aaa","padding-left":"10px"}},Lb={class:"param-row"},Nb={style:{width:"40px"}},Ub=["onUpdate:modelValue"],_b={class:"param-row"},Qb={style:{width:"40px"}},Hb=["onUpdate:modelValue"],Gb={class:"param-row"},Yb={style:{width:"40px"}},Vb=["onUpdate:modelValue"],Wb={class:"list-panel"},zb={class:"list-header"},jb={class:"col-check"},$b=["checked"],Kb={class:"list-body"},Xb={class:"col-check"},qb=["onUpdate:modelValue"],Jb={class:"col-index"},Zb=["title"],ev={class:"col-main"},tv=["checked","onChange"],nv={key:0,style:{padding:"10px","text-align":"center",color:"#999"}},iv=Ue(d.defineComponent({__name:"LeitingCadPosition",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","handleSavingByCadCard","clearBimPointList","save"],setup(n,{expose:e,emit:t}){const i=n,s=t,o=d.inject("leitingMethods"),r=d.ref([]),l=d.ref(""),a=d.computed(()=>r.value.length>0&&r.value.every(w=>w.selected)),c=d.ref("param"),u=d.ref("bimPoint1"),h=d.ref(null),f=d.ref("bimPoint1"),p=d.reactive({bimPoint1:{longitude:void 0,latitude:void 0,type:"CAD标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程",height:void 0},bimPoint2:{longitude:void 0,latitude:void 0,type:"地图标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程",height:void 0}}),m=d.ref(1e-6),y=d.reactive({modelId:"",longitude:0,latitude:0,distance:1e-6,rotation:1,totalRotation:0,heightDistance:1,height:0,lonlat:1e-6,modelOptions:[],selectPoint:{longitude:0,latitude:0,height:0},selectedMode:!1,X:0,Y:0,Z:0}),A=d.computed(()=>{const w=r.value.find(v=>v.modelId===l.value);return w?w.modelName:""}),C=()=>{s("update:visible",!1)},E=()=>(!h.value&&o?.value?.getViewer&&o?.value?.getCesium&&(h.value=new oc(o.value.getViewer(),o.value.getCesium())),h.value),x=()=>{E()?.clearMarkers(),p.bimPoint1.longitude=void 0,p.bimPoint1.latitude=void 0,p.bimPoint1.height=void 0,p.bimPoint2.longitude=void 0,p.bimPoint2.latitude=void 0,p.bimPoint2.height=void 0},M=w=>{const v=u.value,S=p[v];if(S){S.longitude=w.longitude,S.latitude=w.latitude,S.height=w.height;const R=v==="bimPoint1"?"BIM":"MAP";E()?.addMarker(R,w),fe.success(`${S.type}已添加`)}},T=()=>{E()?.registerPickHandler(w=>{M(w)})},B=()=>{E()?.destroyPickHandler()},I=w=>{c.value=w,w!=="pick"&&s("clearBimPointList")};d.watch(()=>c.value,w=>{w==="pick"?T():B()}),d.onUnmounted(()=>{B()});const g=()=>{if(!o?.value?.getDxfModels)return;const w=o.value.getDxfModels();if(Array.isArray(w)?r.value=w.map(v=>({modelId:v.modelId,modelName:v.modelName,formData:v.formData||{},selected:!1,tileset:v})):r.value=[],r.value.length>0){const v=o.value.getCadModelId?o.value.getCadModelId():"";v&&r.value.find(S=>S.modelId===v)?k(v):k(r.value[0].modelId),r.value.forEach(S=>S.selected=!0)}},k=w=>{l.value=w;const v=r.value.find(S=>S.modelId===w);v&&v.formData&&Object.keys(y).forEach(S=>{v.formData[S]!==void 0&&(y[S]=v.formData[S])})},P=(w,v)=>{if(!o?.value?.adjustingModelByCad)return;const S=r.value.find(R=>R.modelId===w);S&&S.tileset&&(S.formData={...S.formData,...v},S.tileset.formData=S.formData,o.value.adjustingModelByCad({...S.formData,tileset:S.tileset}))},F=w=>{if(!l.value)return;const v=y[w];P(l.value,{[w]:v})},L=w=>{const v=r.value.filter(N=>N.selected);if(v.length===0){fe.warning("请先选择要调整的模型");return}const{distance:S,heightDistance:R,rotation:_}=y;v.forEach(N=>{const D={...N.formData};switch(w){case"north":D.latitude+=S;break;case"south":D.latitude-=S;break;case"east":D.longitude+=S;break;case"west":D.longitude-=S;break;case"up":D.height+=R;break;case"down":D.height-=R;break;case"rotateLeft":D.totalRotation=(D.totalRotation||0)-_;break;case"rotateRight":D.totalRotation=(D.totalRotation||0)+_;break}N.modelId===l.value&&Object.assign(y,D),P(N.modelId,D)})},H=w=>{const v=w.target.checked;r.value.forEach(S=>S.selected=v)},O=()=>{s("handleSavingByCadCard",r.value),s("save",r.value)},b=()=>{const w=p.bimPoint1,v=p.bimPoint2;if(w.longitude===void 0||v.longitude===void 0){fe.warning("请先完成点选操作");return}const S=r.value.filter(Q=>Q.selected);if(S.length===0){fe.warning("请先选择要调整的模型");return}let R=0,_=0,N=0;const D=E();if(D){const{dLon:Q,dLat:V,dHeight:$}=D.calculateOffset(w,v);R=Q,_=V,N=$}else R=v.longitude-w.longitude,_=v.latitude-w.latitude,N=v.height-w.height;S.forEach(Q=>{const V={...Q.formData};V.longitude+=R,V.latitude+=_,V.height+=N,Q.modelId===l.value&&Object.assign(y,V),P(Q.modelId,V)}),fe.success("位置已调整")};return d.watch(()=>i.visible,w=>{w?g():(B(),x())}),d.onMounted(()=>{i.visible&&g()}),e({setBIMPointsList:({longitude:w,latitude:v,height:S})=>{p[f.value].longitude=w,p[f.value].latitude=v,p[f.value].height=S},addGltfOr3dTilesModelList:w=>{console.warn("addGltfOr3dTilesModelList is deprecated, use internal loading")}}),(w,v)=>(d.openBlock(),d.createBlock(Fe,{visible:i.visible,title:"Cad校准",width:282,height:600,"onUpdate:visible":v[21]||(v[21]=S=>s("update:visible",S)),onClose:C},{default:d.withCtx(()=>[d.createElementVNode("div",ub,[d.createElementVNode("div",hb,[d.createElementVNode("div",fb,[v[22]||(v[22]=d.createElementVNode("label",null,"调整操作:",-1)),d.createElementVNode("div",pb,[d.createElementVNode("span",{class:d.normalizeClass({active:c.value==="param"}),onClick:v[0]||(v[0]=S=>I("param"))},"参数模式",2),d.createElementVNode("span",{class:d.normalizeClass({active:c.value==="pick"}),onClick:v[1]||(v[1]=S=>I("pick"))},"地图点选",2)])]),d.createElementVNode("div",gb,[v[23]||(v[23]=d.createElementVNode("label",null,"当前主模型:",-1)),d.createElementVNode("span",{class:"value",title:A.value},d.toDisplayString(A.value||"未选择"),9,mb)]),v[35]||(v[35]=d.createElementVNode("div",{class:"separator"},null,-1)),c.value==="param"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[v[31]||(v[31]=d.createElementVNode("div",{class:"group-header"},"当前状态",-1)),d.createElementVNode("div",Ab,[v[24]||(v[24]=d.createElementVNode("label",null,"经度(东西):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[2]||(v[2]=S=>y.longitude=S),onChange:v[3]||(v[3]=S=>F("longitude")),step:m.value},null,40,yb),[[d.vModelText,y.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",Cb,[v[25]||(v[25]=d.createElementVNode("label",null,"纬度(南北):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[4]||(v[4]=S=>y.latitude=S),onChange:v[5]||(v[5]=S=>F("latitude")),step:m.value},null,40,Eb),[[d.vModelText,y.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",wb,[v[26]||(v[26]=d.createElementVNode("label",null,"高度(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[6]||(v[6]=S=>y.height=S),onChange:v[7]||(v[7]=S=>F("height")),step:m.value},null,40,bb),[[d.vModelText,y.height,void 0,{number:!0}]])]),d.createElementVNode("div",vb,[v[27]||(v[27]=d.createElementVNode("label",null,"累计旋转(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[8]||(v[8]=S=>y.totalRotation=S),onChange:v[9]||(v[9]=S=>F("totalRotation")),step:m.value},null,40,xb),[[d.vModelText,y.totalRotation,void 0,{number:!0}]])]),v[32]||(v[32]=d.createElementVNode("div",{class:"separator"},null,-1)),v[33]||(v[33]=d.createElementVNode("div",{class:"group-header"},"调整步长",-1)),d.createElementVNode("div",Ib,[v[28]||(v[28]=d.createElementVNode("label",null,"经纬步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[10]||(v[10]=S=>y.distance=S),step:m.value},null,8,Bb),[[d.vModelText,y.distance,void 0,{number:!0}]])]),d.createElementVNode("div",Sb,[v[29]||(v[29]=d.createElementVNode("label",null,"高度步长(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[11]||(v[11]=S=>y.heightDistance=S),step:m.value},null,8,Mb),[[d.vModelText,y.heightDistance,void 0,{number:!0}]])]),d.createElementVNode("div",Tb,[v[30]||(v[30]=d.createElementVNode("label",null,"旋转步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[12]||(v[12]=S=>y.rotation=S),step:m.value},null,8,Db),[[d.vModelText,y.rotation,void 0,{number:!0}]])]),d.createElementVNode("div",kb,[d.createElementVNode("button",{onClick:v[13]||(v[13]=S=>L("rotateLeft"))},"左转"),d.createElementVNode("button",{onClick:v[14]||(v[14]=S=>L("north"))},"北移"),d.createElementVNode("button",{onClick:v[15]||(v[15]=S=>L("rotateRight"))},"右转"),d.createElementVNode("button",{onClick:v[16]||(v[16]=S=>L("west"))},"西移"),d.createElementVNode("button",{onClick:v[17]||(v[17]=S=>L("south"))},"南移"),d.createElementVNode("button",{onClick:v[18]||(v[18]=S=>L("east"))},"东移"),d.createElementVNode("button",{onClick:v[19]||(v[19]=S=>L("up"))},"上移"),d.createElementVNode("button",{onClick:v[20]||(v[20]=S=>L("down"))},"下移"),d.createElementVNode("button",{onClick:O,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):(d.openBlock(),d.createElementBlock("div",Pb,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(p,(S,R)=>(d.openBlock(),d.createElementBlock("div",{key:R,class:"form-item",style:{display:"block","margin-bottom":"15px"}},[d.createElementVNode("div",{style:{"font-weight":"bold","margin-bottom":"5px",cursor:"pointer",display:"flex","align-items":"center"},onClick:_=>u.value=R},[d.createElementVNode("input",{type:"radio",checked:u.value===R,style:{"margin-right":"5px"}},null,8,Rb),d.createTextVNode(" "+d.toDisplayString(S.type)+": ",1)],8,Fb),d.createElementVNode("div",Ob,[d.createElementVNode("div",Lb,[d.createElementVNode("label",Nb,d.toDisplayString(S.longitudeText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":_=>S.longitude=_,readonly:"",style:{width:"100px"}},null,8,Ub),[[d.vModelText,S.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",_b,[d.createElementVNode("label",Qb,d.toDisplayString(S.latitudeText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":_=>S.latitude=_,readonly:"",style:{width:"100px"}},null,8,Hb),[[d.vModelText,S.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",Gb,[d.createElementVNode("label",Yb,d.toDisplayString(S.heightText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":_=>S.height=_,readonly:"",style:{width:"100px"}},null,8,Vb),[[d.vModelText,S.height,void 0,{number:!0}]])])])]))),128)),d.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[d.createElementVNode("button",{onClick:b,class:"primary-btn"},"应用校准"),d.createElementVNode("button",{onClick:O},"保存")]),v[34]||(v[34]=d.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[d.createElementVNode("div",null,"操作指南:"),d.createElementVNode("div",null,"1. 勾选上方 CAD 或 地图 标记点选项。"),d.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),d.createElementVNode("div",null,"3. 采集两点后,点击“应用校准”进行校准。")],-1))]))]),d.createElementVNode("div",Wb,[d.createElementVNode("div",zb,[d.createElementVNode("div",jb,[d.createElementVNode("input",{type:"checkbox",checked:a.value,onChange:H},null,40,$b)]),v[36]||(v[36]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),v[37]||(v[37]=d.createElementVNode("div",{class:"col-name"},"名称",-1)),v[38]||(v[38]=d.createElementVNode("div",{class:"col-main"},"主模型",-1))]),d.createElementVNode("div",Kb,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(r.value,(S,R)=>(d.openBlock(),d.createElementBlock("div",{key:S.modelId,class:d.normalizeClass(["list-item",{active:S.modelId===l.value}])},[d.createElementVNode("div",Xb,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":_=>S.selected=_},null,8,qb),[[d.vModelCheckbox,S.selected]])]),d.createElementVNode("div",Jb,d.toDisplayString(R+1),1),d.createElementVNode("div",{class:"col-name",title:S.modelName},d.toDisplayString(S.modelName),9,Zb),d.createElementVNode("div",ev,[d.createElementVNode("input",{type:"radio",name:"mainModel",checked:S.modelId===l.value,onChange:_=>k(S.modelId)},null,40,tv)])],2))),128)),r.value.length===0?(d.openBlock(),d.createElementBlock("div",nv,"暂无数据")):d.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-e8abd49d"]]),sv={class:"annotation-content"},ov={class:"annotation-tools"},rv={class:"annotation-controls"},av={class:"control-group",title:"颜色"},lv={class:"tool-item color-tool"},cv={class:"control-group line-width-container",title:"线宽"},dv=["onClick"],uv={class:"option-label"},hv=Ue(d.defineComponent({__name:"LeitingAnnotationCard",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods"),o=d.ref(""),r=d.ref("#ff0000"),l=d.ref(1),a=d.ref(!1),c=d.ref(null),u=d.ref(null),h=d.ref({top:"0px",left:"0px"}),f=[{value:6,label:"粗"},{value:3,label:"中"},{value:1,label:"细"}],p=()=>s?.value?.getAnnotationInstance?s.value.getAnnotationInstance():null,m=()=>{i("update:visible",!1)},y=I=>{o.value=I;const g=p();if(g)switch(I){case"freehandLine":g.startFreehandLine();break;case"arrow":g.startArrow();break;case"straightLine":g.startStraightLine();break;case"rectangle":g.startRectangle();break;case"ellipse":g.startEllipse();break}},A=()=>{const I=p();I&&(I.setCurrentColor(r.value),I.changeColor(r.value))},C=()=>{if(!a.value&&c.value){const I=c.value.getBoundingClientRect();h.value={top:`${I.top}px`,left:`${I.right+8}px`}}a.value=!a.value},E=I=>{l.value=I,a.value=!1;const g=p();g&&(g.setCurrentWidth(I),g.changeWidth(I))},x=()=>{const I=p();I&&I.deleteSelectedEntity()},M=()=>{const I=p();I&&I.clearAll()},T=()=>{if(s?.value?.saveAnnotations){s.value.saveAnnotations();return}const I=p();I&&I.saveAnnotations()},B=I=>{const g=I.target,k=c.value&&c.value.contains(g),P=u.value&&u.value.contains(g);!k&&!P&&(a.value=!1)};return d.onMounted(()=>{document.addEventListener("click",B)}),d.onUnmounted(()=>{document.removeEventListener("click",B)}),(I,g)=>(d.openBlock(),d.createBlock(Fe,{visible:t.visible,title:"标注",width:70,"min-width":70,height:480,"onUpdate:visible":g[6]||(g[6]=k=>i("update:visible",k)),onClose:m},{default:d.withCtx(()=>[d.createElementVNode("div",sv,[d.createElementVNode("div",ov,[d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="freehandLine"}]),onClick:g[0]||(g[0]=k=>y("freehandLine")),title:"手绘线"},[...g[7]||(g[7]=[d.createElementVNode("div",{class:"tool-icon"},"✏️",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="arrow"}]),onClick:g[1]||(g[1]=k=>y("arrow")),title:"箭头"},[...g[8]||(g[8]=[d.createElementVNode("div",{class:"tool-icon"},"↗️",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="straightLine"}]),onClick:g[2]||(g[2]=k=>y("straightLine")),title:"直线"},[...g[9]||(g[9]=[d.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="rectangle"}]),onClick:g[3]||(g[3]=k=>y("rectangle")),title:"矩形"},[...g[10]||(g[10]=[d.createElementVNode("div",{class:"tool-icon"},"▭",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="ellipse"}]),onClick:g[4]||(g[4]=k=>y("ellipse")),title:"椭圆"},[...g[11]||(g[11]=[d.createElementVNode("div",{class:"tool-icon"},"⭕",-1)])],2)]),g[13]||(g[13]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",rv,[d.createElementVNode("div",av,[d.createElementVNode("div",lv,[d.createElementVNode("div",{class:"color-swatch",style:d.normalizeStyle({backgroundColor:r.value})},null,4),d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":g[5]||(g[5]=k=>r.value=k),onChange:A,class:"color-input-overlay"},null,544),[[d.vModelText,r.value]])])]),d.createElementVNode("div",cv,[d.createElementVNode("div",{ref_key:"lineWidthBtnRef",ref:c,class:"tool-item",onClick:d.withModifiers(C,["stop"])},[d.createElementVNode("div",{class:"current-width-preview",style:d.normalizeStyle({height:l.value+"px",backgroundColor:"#fff"})},null,4)],512),(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[a.value?(d.openBlock(),d.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:u,class:"line-width-dropdown",style:d.normalizeStyle(h.value)},[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(f,k=>d.createElementVNode("div",{key:k.value,class:d.normalizeClass(["line-width-option",{selected:l.value===k.value}]),onClick:d.withModifiers(P=>E(k.value),["stop"])},[d.createElementVNode("span",uv,d.toDisplayString(k.label),1),d.createElementVNode("div",{class:"line-preview",style:d.normalizeStyle({height:k.value+"px",backgroundColor:l.value===k.value?"#1890ff":"#ddd"})},null,4)],10,dv)),64))],4)):d.createCommentVNode("",!0)]))]),g[12]||(g[12]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",{class:"action-buttons"},[d.createElementVNode("button",{class:"control-btn",onClick:x,title:"删除选中"}," 🗑️ "),d.createElementVNode("button",{class:"control-btn",onClick:M,title:"清空"}," ❌ "),d.createElementVNode("button",{class:"control-btn",onClick:T,title:"保存"}," 💾 ")])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-3cfc8415"]]),fv={class:"measure-content"},pv={class:"measure-tools"},gv={key:0,class:"measure-results"},mv={class:"result-row"},Av={class:"result-value"},yv={class:"result-row"},Cv={class:"result-value"},Ev={class:"result-row"},wv={class:"result-value"},bv={class:"result-row"},vv={class:"result-value"},xv={key:1,class:"result-row"},Iv={class:"result-value"},Bv={key:2,class:"result-row"},Sv={class:"result-value"},Mv={class:"measure-controls"},Tv={class:"control-group",title:"单位"},Dv={class:"unit-display"},kv=["onClick"],Pv=Ue(d.defineComponent({__name:"LeitingMeasurement",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","close"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods",d.ref({})),o=d.ref(null),r=d.ref(null),l=d.ref("m"),a=d.ref(!1),c=d.ref(null),u=d.ref(!1),h=d.ref({}),f=d.ref(null),p=[{label:"米 (m)",value:"m"},{label:"厘米 (cm)",value:"cm"},{label:"毫米 (mm)",value:"mm"}],m=I=>{const g=l.value;return g==="mm"?`${(I*1e3).toFixed(0)}mm`:g==="cm"?`${(I*100).toFixed(1)}cm`:`${I.toFixed(2)}m`},y=I=>I>1e6?`${(I/1e6).toFixed(2)} km²`:`${I.toFixed(2)} m²`,A=()=>{if(!o.value&&s.value?.getViewer){const I=s.value.getViewer(),g=s.value.getCesium();I&&g&&(o.value=new tc({viewer:I,cesium:g}),o.value.setUnit(l.value),o.value.setSnapping(a.value),o.value.onMeasure=k=>{c.value=k})}},C=I=>{o.value||A(),r.value===I?(r.value=null,o.value?.stop()):(r.value=I,o.value?.start(I))},E=I=>{l.value=I,u.value=!1},x=()=>{o.value&&(o.value.clearAll(),r.value=null,o.value.stop())},M=()=>{i("update:visible",!1)},T=I=>{if(u.value){u.value=!1;return}const k=I.currentTarget.getBoundingClientRect();h.value={position:"fixed",top:`${k.top}px`,left:`${k.right+5}px`,zIndex:3e3},u.value=!0},B=I=>{u.value&&f.value&&!f.value.contains(I.target)&&(u.value=!1)};return d.onMounted(()=>{document.addEventListener("click",B),t.visible&&d.nextTick(()=>A())}),d.onUnmounted(()=>{document.removeEventListener("click",B),o.value&&o.value.destroy()}),d.watch(()=>t.visible,I=>{I?d.nextTick(()=>A()):o.value&&(o.value.stop(),r.value=null)}),d.watch(s,I=>{I&&I.getViewer&&!o.value&&t.visible&&A()}),d.watch(l,I=>{o.value&&o.value.setUnit(I)}),(I,g)=>(d.openBlock(),d.createBlock(Fe,{visible:t.visible,title:"量算",width:70,"min-width":70,height:480,"onUpdate:visible":g[3]||(g[3]=k=>i("update:visible",k)),onClose:M},{default:d.withCtx(()=>[d.createElementVNode("div",fv,[d.createElementVNode("div",pv,[d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="distance"}]),onClick:g[0]||(g[0]=k=>C("distance")),title:"距离测量"},[...g[4]||(g[4]=[d.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="angle"}]),onClick:g[1]||(g[1]=k=>C("angle")),title:"角度测量"},[...g[5]||(g[5]=[d.createElementVNode("div",{class:"tool-icon"},"📐",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="area"}]),onClick:g[2]||(g[2]=k=>C("area")),title:"面积测量"},[...g[6]||(g[6]=[d.createElementVNode("div",{class:"tool-icon"},"🔳",-1)])],2)]),g[15]||(g[15]=d.createElementVNode("div",{class:"separator"},null,-1)),c.value?(d.openBlock(),d.createElementBlock("div",gv,[c.value.type==="distance"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[d.createElementVNode("div",mv,[g[7]||(g[7]=d.createElementVNode("span",{class:"result-label"},"总长:",-1)),d.createElementVNode("span",Av,d.toDisplayString(m(c.value.dist)),1)]),d.createElementVNode("div",yv,[g[8]||(g[8]=d.createElementVNode("span",{class:"result-label",style:{color:"#ff4d4f"}},"ΔX:",-1)),d.createElementVNode("span",Cv,d.toDisplayString(m(c.value.dx)),1)]),d.createElementVNode("div",Ev,[g[9]||(g[9]=d.createElementVNode("span",{class:"result-label",style:{color:"#52c41a"}},"ΔY:",-1)),d.createElementVNode("span",wv,d.toDisplayString(m(c.value.dy)),1)]),d.createElementVNode("div",bv,[g[10]||(g[10]=d.createElementVNode("span",{class:"result-label",style:{color:"#1890ff"}},"ΔZ:",-1)),d.createElementVNode("span",vv,d.toDisplayString(m(c.value.dz)),1)])],64)):d.createCommentVNode("",!0),c.value.type==="angle"?(d.openBlock(),d.createElementBlock("div",xv,[g[11]||(g[11]=d.createElementVNode("span",{class:"result-label"},"角度:",-1)),d.createElementVNode("span",Iv,d.toDisplayString(c.value.angle.toFixed(1))+"°",1)])):d.createCommentVNode("",!0),c.value.type==="area"?(d.openBlock(),d.createElementBlock("div",Bv,[g[12]||(g[12]=d.createElementVNode("span",{class:"result-label"},"面积:",-1)),d.createElementVNode("span",Sv,d.toDisplayString(y(c.value.area)),1)])):d.createCommentVNode("",!0)])):d.createCommentVNode("",!0),d.createElementVNode("div",Mv,[d.createElementVNode("div",Tv,[d.createElementVNode("div",{class:"tool-item",onClick:d.withModifiers(T,["stop"])},[d.createElementVNode("div",Dv,d.toDisplayString(l.value),1)]),(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[u.value?(d.openBlock(),d.createElementBlock("div",{key:0,ref_key:"unitDropdownRef",ref:f,class:"unit-dropdown",style:d.normalizeStyle(h.value)},[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(p,k=>d.createElementVNode("div",{key:k.value,class:d.normalizeClass(["unit-option",{selected:l.value===k.value}]),onClick:d.withModifiers(P=>E(k.value),["stop"])},d.toDisplayString(k.label),11,kv)),64))],4)):d.createCommentVNode("",!0)]))]),g[14]||(g[14]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",{class:"action-buttons"},[d.createElementVNode("div",{class:"tool-item control-btn",onClick:x,title:"清空"},[...g[13]||(g[13]=[d.createElementVNode("div",{class:"tool-icon"},"🗑️",-1)])])])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-b766acb4"]]);function Fv(){const n=d.ref(!1),e=d.reactive({x:0,y:0}),t=d.ref([]),i=d.ref(null);return{visible:n,position:e,items:t,contextData:i,show:(a,c,u)=>{a instanceof MouseEvent?(a.preventDefault(),e.x=a.clientX,e.y=a.clientY):(e.x=a.x,e.y=a.y),t.value=c,i.value=u,n.value=!0},hide:()=>{n.value=!1},addItem:a=>{t.value.push(a)},removeItem:a=>{t.value=t.value.filter(c=>c.id!==a)}}}const Rv=["onClick"],Ov={class:"menu-label"},Lv={key:0,class:"menu-arrow"},Nv=Ue(d.defineComponent({__name:"LeitingContextMenu",props:{visible:{type:Boolean},position:{},items:{}},emits:["update:visible","action"],setup(n,{emit:e}){const t=n,i=e,s=r=>{r.disabled||(r.action&&r.action(),i("action",r),i("update:visible",!1))},o=()=>{t.visible&&i("update:visible",!1)};return d.onMounted(()=>{document.addEventListener("click",o),document.addEventListener("contextmenu",r=>{r.target.closest(".leiting-context-menu")||o()})}),d.onUnmounted(()=>{document.removeEventListener("click",o)}),(r,l)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{class:"leiting-context-menu",style:d.normalizeStyle({left:n.position.x+"px",top:n.position.y+"px"}),onContextmenu:l[0]||(l[0]=d.withModifiers(()=>{},["prevent"]))},[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(n.items,a=>(d.openBlock(),d.createElementBlock("div",{key:a.id,class:d.normalizeClass(["menu-item",{"menu-divided":a.divided,"menu-disabled":a.disabled}]),onClick:c=>s(a)},[d.createElementVNode("span",Ov,d.toDisplayString(a.label),1),a.children?(d.openBlock(),d.createElementBlock("span",Lv,"▶")):d.createCommentVNode("",!0)],10,Rv))),128))],36)),[[d.vShow,n.visible]])}}),[["__scopeId","data-v-f288753b"]]),Uv={class:"leiting-ui-overlay"},_i=Ue(d.defineComponent({__name:"LeitingBIM",props:{accessToken:{},cesiumUrl:{},cesiumCssUrl:{},methods:{},viewerOptions:{},treeProps:{},showTree:{type:Boolean,default:!0},showMenu:{type:Boolean,default:!1},playerUrl:{default:"https://leiting.chenxisoft.com/resource/person/person.glb"},playerModelName:{default:"Person"},playerModelId:{default:"player_111"},playerScale:{default:.0032},tiandituToken:{default:"c25f14fb6bd4397cf8fe45144ff768d6"},globe:{type:Boolean,default:void 0},terrain:{type:Boolean,default:void 0},depthTest:{type:Boolean,default:void 0},mapProvider:{},tiandituLayerType:{},tiandituShowLabel:{type:Boolean,default:void 0},arcgisUrl:{},shadows:{type:Boolean,default:void 0},environmentMap:{type:Boolean,default:void 0},ambientOcclusion:{type:Boolean,default:void 0},time:{},brightness:{},backgroundColor:{},collision:{type:Boolean,default:void 0},mouseHabit:{},mode:{default:"3d"},mountAll3Dtiles:{},mountAllCad:{},saveRegion:{},saveCadRegion:{},saveCadCalibration:{},selectionChange:{},searchComponent:{}},emits:["register","init","ready"],setup(n,{emit:e}){const t=d.ref(),i=d.getCurrentInstance(),s=d.ref(!1),o=d.ref(""),r=d.ref({}),l=d.ref("3d"),a=n,c={title:"构件树",treeData:[]},u=d.ref(!1),h=d.ref(!1),f=d.ref(!1),p=d.ref(!1),m=d.ref(!1),y=d.ref(!1),A=d.ref(!1),C=d.ref(!1),E=d.ref(!1),x=d.ref(!1),{visible:M,position:T,items:B,show:I,hide:g}=Fv(),k=d.ref([]),P=Y=>{k.value.push(Y)},F=Y=>{k.value=k.value.filter(j=>j.id!==Y)},L=d.ref([]),H=d.ref(""),O=d.ref(null),b=d.ref([]),w=d.reactive({tree:!1,section:!1,roam:!1,info:!1,adjustModel:!1,setting:!1,cadLayer:!1,cadPosition:!1,annotation:!1}),v=(Y,j)=>{Y==="componentTree"&&(Y="tree"),Y==="componentInfo"&&(Y="info"),Y in w&&(w[Y]=j)},S=d.shallowRef({});d.provide("leitingMethods",S);const R=d.ref(a.showMenu),_=d.ref([]);d.watch(()=>a.showMenu,Y=>{R.value=Y},{immediate:!0}),d.watch(()=>a.mode,Y=>{Y&&S.value?.set2d&&S.value.set2d(Y==="2d")});const N=d.ref("dark");d.provide("leiting-theme",N);const D=d.ref([]),Q=d.computed(()=>{const Y=[];return u.value&&(Y.push("tree"),Y.push("componentTree")),h.value&&Y.push("section"),f.value&&Y.push("roam"),p.value&&(Y.push("info"),Y.push("componentInfo")),m.value&&Y.push("adjust"),y.value&&Y.push("setting"),A.value&&Y.push("cadLayer"),C.value&&Y.push("cadPosition"),E.value&&Y.push("annotation"),x.value&&(Y.push("measure"),Y.push("measurement")),Y.push(...D.value),Y}),V=d.ref(null),$=(Y,j)=>{Y==="componentTree"||Y==="tree"?u.value=j:Y==="section"?h.value=j:Y==="roam"?f.value=j:Y==="componentInfo"||Y==="info"?p.value=j:Y==="homeView"?S.value?.is2dMode?.()?S.value?.flyToTopView?.({}):S.value?.flyToTileset?.({}):Y==="adjustModel"?(m.value=j,j&&V.value&&V.value.setModelType("BIM")):Y==="osgbAdjust"?(m.value=j,j&&V.value&&V.value.setModelType("OSGB")):Y==="setting"?y.value=j:Y==="cadLayer"?A.value=j:Y==="cadPosition"?C.value=j:Y==="annotation"?E.value=j:Y==="measurement"?x.value=j:j?D.value.includes(Y)||D.value.push(Y):D.value=D.value.filter(J=>J!==Y)},q=()=>{S.value&&(S.value.getDxfModels&&(L.value=S.value.getDxfModels()||[]),S.value.getCadModelId&&(H.value=S.value.getCadModelId()||""))};d.watch(A,Y=>{Y&&q()}),d.watch(C,Y=>{Y&&(q(),O.value&&L.value.length&&O.value.addGltfOr3dTilesModelList(L.value))});const ne=e,se=Y=>{S.value&&S.value.saveCadCalibration&&S.value.saveCadCalibration(Y),S.value&&S.value.saveCadRegion&&S.value.saveCadRegion(Y)};return d.onMounted(async()=>{if(t.value)try{const Y={...xt,cesiumUrl:a.cesiumUrl||xt.cesiumUrl,cesiumCssUrl:a.cesiumCssUrl||xt.cesiumCssUrl,accessToken:a.accessToken||ts()||xt.accessToken};await es(Y);const j=a.accessToken||ts()||xt.accessToken;j&&(Cesium.Ion.defaultAccessToken=j),s.value=!0;const J=(le={},ge)=>{if(t.value){const{showMenu:we,showTree:me,globe:Re,terrain:ct,depthTest:$e,mapProvider:bt,tiandituLayerType:it,tiandituShowLabel:ln,arcgisUrl:Nt,shadows:Ut,environmentMap:Ki,ambientOcclusion:Ke,time:Oe,brightness:st,backgroundColor:dt,collision:_t,mouseHabit:Qt,mode:vt,...Ie}=le||{},To=a.showMenu!==void 0?a.showMenu:we!==void 0?we:!0;R.value=To;const De=(ee,ke,hn)=>ee!==void 0?ee:ke!==void 0?ke:hn,cn=De(a.globe,Re,!1),dn=De(a.terrain,ct,!1),$n=De(a.depthTest,$e,!1),Kn=De(a.mapProvider,bt,"tianditu"),Xn=De(a.tiandituLayerType,it,"img_w"),Xi=De(a.tiandituShowLabel,ln,!1),qc=De(a.arcgisUrl,Nt,"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"),Jc=De(a.shadows,Ut,!1),Zc=De(a.environmentMap,Ki,!1),ed=De(a.ambientOcclusion,Ke,!1),td=De(a.time,Oe,void 0),nd=De(a.brightness,st,1),qi=a.mode||vt||"3d";console.log("LeitingBIM Mode:",qi,"Props:",a.mode,"Options:",vt),l.value=qi;const _I=qi==="2d"?"#000000":"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)",id=De(a.backgroundColor,dt,_I),sd=De(a.collision,_t,!1),od=De(a.mouseHabit,Qt,0);r.value={globe:cn,terrain:dn,depthTest:$n,mapProvider:Kn,tiandituLayerType:Xn,tiandituShowLabel:Xi,arcgisUrl:qc,shadows:Jc,environmentMap:Zc,ambientOcclusion:ed,time:td,brightness:nd,backgroundColor:id,collision:sd,mouseHabit:od};const qn=P0({container:t.value,appContext:i?.appContext,methods:{...S.value,handleMenuAction:$,setCardFullHeight:v,onLoadingStatus:ee=>{ee?fe.loading(ee,"",t.value):fe.close()},...Ie,tilesLoad3dTiles:ee=>{const ke=ee.leiting?.tree,hn=ee.leiting?.model?.modelId;ke&&(Array.isArray(ke)?ke:[ke]).forEach(Gt=>{Gt&&!b.value.find(ad=>ad.id===Gt.id)&&(Gt.modelId=hn,b.value=[...b.value,Gt])});const{brightness:Do,contrast:ko,saturation:ut}=qn.methods.getConfigure();qn.methods.setModelColorAdjustment({brightness:Do,contrast:ko,saturation:ut}),Ie.tilesLoad3dTiles?.(ee)},mountAll3Dtiles:ee=>{a.mountAll3Dtiles&&a.mountAll3Dtiles(ee),Ie.mountAll3Dtiles?.(ee)},mountAllCad:ee=>{if(qn.methods.setModelBrightness){const ke=a.brightness!==void 0?a.brightness:r.value.brightness;ke!==void 0&&qn.methods.setModelBrightness(ke)}a.mountAllCad&&a.mountAllCad(ee),Ie.mountAllCad?.(ee)},saveRegion:ee=>{a.saveRegion&&a.saveRegion(ee),Ie.saveRegion?.(ee)},saveCadRegion:ee=>{a.saveCadRegion&&a.saveCadRegion(ee),Ie.saveCadRegion?.(ee)},saveCadCalibration:ee=>{a.saveCadCalibration&&a.saveCadCalibration(ee),Ie.saveCadCalibration?.(ee)},selectionChange:ee=>{a.selectionChange&&a.selectionChange(ee),Ie.selectionChange?.(ee)},onSearchComponent:ee=>{a.searchComponent&&a.searchComponent(ee),Ie.searchComponent?.(ee)}},viewerOptions:a.viewerOptions,options:{...Ie,mode:qi,playerUrl:a.playerUrl,playerModelName:a.playerModelName,playerModelId:a.playerModelId,playerScale:a.playerScale,globe:cn,terrain:dn,depthTest:$n,mapProvider:Kn,tiandituLayerType:Xn,tiandituShowLabel:Xi,tiandituToken:a.tiandituToken,arcgisUrl:qc,shadows:Jc,environmentMap:Zc,ambientOcclusion:ed,time:td,brightness:nd,backgroundColor:id,collision:sd,mouseHabit:od},callbacks:{onLoading:ee=>ee?fe.loading(ee,"",t.value):fe.close(),onSuccess:ee=>fe.success(ee,"",void 0,t.value),onError:ee=>fe.error(ee,"",void 0,t.value)}}),{Cesium:Ht,viewer:un,methods:Ji,menuEvents:Jn}=qn,ve=Ji;Jn.on("showMenu",ee=>{R.value=ee}),Jn.on("insertMenu",ee=>{_.value=ee}),Jn.on("setMenuActive",(ee,ke)=>{$(ee,ke)}),S.value=ve,ge&&(ge.value=ve),Jn.on("setMode",ee=>{l.value=ee}),Jn.on("deleteAllModels",()=>{b.value=[]}),new Ht.ScreenSpaceEventHandler(un.scene.canvas).setInputAction(ee=>{if(g(),l.value==="2d")return;const ke=un.scene.pick(ee.position),hn=un.container.getBoundingClientRect(),Do=hn.left+ee.position.x,ko=hn.top+ee.position.y,ut=[];if(Ht.defined(ke)&&ke instanceof Ht.Cesium3DTileFeature){const Po=ve.baseCompt.getFeatureId(ke),Gt=Sn(ke.tileset);ve.baseCompt.hasSelectedFeaturesMap[Gt]?.some(Zn=>Zn.batchId===Po&&Zn.rank===0)||(ve.baseCompt.clearSelection(),ve.baseCompt.toggleMultiSelect(Gt,Po,ve.baseCompt.selectedColor)),ut.push({id:"details",label:"构件详情",action:()=>{p.value=!0}}),ut.push({id:"hide",label:"隐藏选中构件",action:()=>{const ei=ve.baseCompt.getSelected().map(ht=>({elementId:ht.elementId,modelId:ht.modelId,show:!1}));ve.baseCompt.setComponentVisibility(ei)}}),ut.push({id:"translucent",label:"半透明选中构件",action:()=>{const ei=ve.baseCompt.getSelected().map(ht=>({elementId:ht.elementId,modelId:ht.modelId,rgba:{...ht.rgba,a:.3}}));ve.baseCompt.setSelectColorUserModelCpt(ei,{rank:0})}}),ut.push({id:"isolate",label:"隔离选中构件",divided:!0,action:()=>{ve.baseCompt.setAllComponentsVisibility(!1);const ei=ve.baseCompt.getSelected().map(ht=>({elementId:ht.elementId,modelId:ht.modelId,show:!0}));ve.baseCompt.setComponentVisibility(ei)}})}ut.push({id:"showAll",label:"显示所有",action:()=>{ve.baseCompt.setAllComponentsVisibility(!0),ve.baseCompt.clearSelection()}}),ut.push(...k.value),I({x:Do,y:ko},ut)},Ht.ScreenSpaceEventType.RIGHT_CLICK),ve.insertContextMenu=P,ve.deleteContextMenu=F,ve.hideContextMenu=g;const rd=le?.onLoaded||le?.onloaded;rd&&rd({Cesium:Ht,viewer:un,methods:Ji}),ne("init",{Cesium:Ht,viewer:un,methods:Ji}),ne("ready",{Cesium:Ht,viewer:un,methods:Ji})}};let oe=!1;ne("register",(le,ge)=>{oe=!0,J(le,ge)}),oe||setTimeout(()=>{S.value.getViewer||J()},0)}catch(Y){o.value="Failed to load Cesium: "+(Y.message||Y),console.error(Y)}}),(Y,j)=>(d.openBlock(),d.createElementBlock("div",{class:d.normalizeClass(["leiting-bim-container",[`theme-${N.value}`]]),onContextmenu:j[11]||(j[11]=d.withModifiers(()=>{},["prevent","stop"]))},[!s.value&&!o.value?(d.openBlock(),d.createBlock(d.unref(Ae.Spin),{key:0,class:"loading",size:"large",tip:"加载基础组件中..."})):d.createCommentVNode("",!0),o.value?(d.openBlock(),d.createBlock(d.unref(Ae.Alert),{key:1,class:"error",type:"error",message:o.value,"show-icon":""},null,8,["message"])):d.createCommentVNode("",!0),d.createElementVNode("div",{ref_key:"containerRef",ref:t,class:"cesium-viewer"},[d.createElementVNode("div",Uv,[d.createVNode(Qn,{visible:p.value,"full-height":w.info,"onUpdate:visible":j[0]||(j[0]=J=>p.value=J)},null,8,["visible","full-height"]),d.createVNode(Hn,{ref_key:"LeitingPositionRef",ref:V,visible:m.value,"full-height":w.adjustModel,"onUpdate:visible":j[1]||(j[1]=J=>m.value=J)},null,8,["visible","full-height"]),d.createVNode(Gn,{visible:y.value,"full-height":w.setting,"tianditu-token":a.tiandituToken,"initial-config":r.value,"onUpdate:visible":j[2]||(j[2]=J=>y.value=J)},null,8,["visible","full-height","tianditu-token","initial-config"]),n.showTree!==!1?(d.openBlock(),d.createBlock(ki,d.mergeProps({key:0},{...c,...n.treeProps},{visible:u.value,"full-height":w.tree,"tree-data":b.value.length>0?b.value:n.treeProps?.treeData||[],"onUpdate:visible":j[3]||(j[3]=J=>{u.value=J})}),null,16,["visible","full-height","tree-data"])):d.createCommentVNode("",!0),d.createVNode(hv,{visible:E.value,"onUpdate:visible":j[4]||(j[4]=J=>E.value=J)},null,8,["visible"]),d.createVNode(Pv,{visible:x.value,"onUpdate:visible":j[5]||(j[5]=J=>x.value=J)},null,8,["visible"]),d.createVNode(Un,{visible:h.value,"full-height":w.section,"onUpdate:visible":j[6]||(j[6]=J=>h.value=J)},null,8,["visible","full-height"]),d.createVNode(_n,{visible:f.value,"full-height":w.roam,"onUpdate:visible":j[7]||(j[7]=J=>f.value=J)},null,8,["visible","full-height"]),d.createVNode(Nn,{visible:R.value,"active-ids":Q.value,"custom-items":_.value,onAction:$,"is-2d":l.value==="2d"},null,8,["visible","active-ids","custom-items","is-2d"]),d.createVNode(db,{visible:A.value,"current-model-id":H.value,"onUpdate:visible":j[8]||(j[8]=J=>A.value=J)},null,8,["visible","current-model-id"]),d.createVNode(iv,{ref_key:"cadPositionRef",ref:O,visible:C.value,"onUpdate:visible":j[9]||(j[9]=J=>C.value=J),onSave:se},null,8,["visible"]),d.createVNode(Nv,{visible:d.unref(M),position:d.unref(T),items:d.unref(B),"onUpdate:visible":j[10]||(j[10]=J=>M.value=J)},null,8,["visible","position","items"]),d.renderSlot(Y.$slots,"default",d.normalizeProps(d.guardReactiveProps({methods:S.value,isReady:s.value})),void 0,!0)])],512)],34))}}),[["__scopeId","data-v-1308f92b"]]);function pc(n){const e=d.ref(),t=d.ref(n.theme||"dark"),i=d.ref(n.menuSize||"medium");d.provide("leiting-theme",t),d.provide("leiting-menu-size",i);function s(l){d.onUnmounted(()=>{e.value=null}),l(n,e)}function o(){const l=d.unref(e);return l||console.error("未获取到leiting实例!"),l}const r=new Proxy({},{get(l,a){const c=o();if(!c)return;const u=c[a];return typeof u=="function"?u.bind(c):u},set(l,a,c){const u=o();return u?(u[a]=c,!0):!1}});return[s,r]}const _v=xt,Qv={install:(n,e)=>{if(n.component("LeitingBIM",_i),n.component("LeitingTree",ki),n.component("LeitingDraggableCard",Fe),n.component("leiting-draggable-card",Fe),n.component("LeitingMenu",Nn),n.component("leiting-menu",Nn),n.component("LeitingSection",Un),n.component("leiting-section",Un),n.component("LeitingPlayer",_n),n.component("leiting-player",_n),n.component("LeitingInfo",Qn),n.component("leiting-info",Qn),n.component("LeitingPosition",Hn),n.component("leiting-position",Hn),n.component("LeitingSetting",Gn),n.component("leiting-setting",Gn),!e)return;const t={..._v,...e};t.cesiumUrl&&es(t).catch(i=>{console.error("[LeitingBim] Failed to load Cesium resources:",i)}),n.config.globalProperties.$leitingBimOptions=t}};var W={image:new Map,background:new Map,resource:new Map,defaultStyle:new Map,baseStyle:new Map,computedStyle:new WeakMap,font:new Set,session:{styleMap:new Map,styleCache:new WeakMap,nodeMap:new Map}};function gc(n="soft"){switch(n){case"auto":{W.session.styleMap=new Map,W.session.nodeMap=new Map;return}case"soft":{W.session.styleMap=new Map,W.session.nodeMap=new Map,W.session.styleCache=new WeakMap;return}case"full":return;case"disabled":{W.session.styleMap=new Map,W.session.nodeMap=new Map,W.session.styleCache=new WeakMap,W.computedStyle=new WeakMap,W.baseStyle=new Map,W.defaultStyle=new Map,W.image=new Map,W.background=new Map,W.resource=new Map,W.font=new Set;return}default:{W.session.styleMap=new Map,W.session.nodeMap=new Map,W.session.styleCache=new WeakMap;return}}}function uo(n){const e=n.match(/url\((['"]?)(.*?)(\1)\)/);if(!e)return null;const t=e[2].trim();return t.startsWith("#")?null:t}function Hv(n){if(!n||n==="none")return"";let e=n.replace(/translate[XY]?\([^)]*\)/g,"");return e=e.replace(/matrix\(([^)]+)\)/g,(t,i)=>{const s=i.split(",").map(o=>o.trim());return s.length!==6?`matrix(${i})`:(s[4]="0",s[5]="0",`matrix(${s.join(", ")})`)}),e=e.replace(/matrix3d\(([^)]+)\)/g,(t,i)=>{const s=i.split(",").map(o=>o.trim());return s.length!==16?`matrix3d(${i})`:(s[12]="0",s[13]="0",`matrix3d(${s.join(", ")})`)}),e.trim().replace(/\s{2,}/g," ")}function Qi(n){if(/%[0-9A-Fa-f]{2}/.test(n))return n;try{return encodeURI(n)}catch{return n}}function Gv(n="[snapDOM]",{ttlMs:e=5*6e4,maxEntries:t=12}={}){const i=new Map;let s=0;function o(r,l,a){if(s>=t)return;const c=Date.now();(i.get(l)||0)>c||(i.set(l,c+e),s++,r==="warn"&&console&&console.warn?console.warn(`${n} ${a}`):console&&console.error&&console.error(`${n} ${a}`))}return{warnOnce(r,l){o("warn",r,l)},errorOnce(r,l){o("error",r,l)},reset(){i.clear(),s=0}}}var mc=Gv("[snapDOM]",{ttlMs:3*6e4,maxEntries:10}),ho=new Map,Hi=new Map;function Yv(n){return/^data:|^blob:|^about:blank$/i.test(n)}function Vv(n,e){try{const t=typeof location<"u"&&location.href?location.href:"http://localhost/",i=e.includes("{url}")?e.split("{url}")[0]:e,s=new URL(i||".",t),o=new URL(n,t);if(o.origin===s.origin)return!0;const r=o.searchParams;if(r&&(r.has("url")||r.has("target")))return!0}catch{}return!1}function Wv(n,e){if(!e||Yv(n)||Vv(n,e))return!1;try{const t=typeof location<"u"&&location.href?location.href:"http://localhost/",i=new URL(n,t);return typeof location<"u"?i.origin!==location.origin:!0}catch{return!!e}}function zv(n,e){if(!e)return n;if(e.includes("{url}"))return e.replace("{urlRaw}",Qi(n)).replace("{url}",encodeURIComponent(n));if(/[?&]url=?$/.test(e))return`${e}${encodeURIComponent(n)}`;if(e.endsWith("?"))return`${e}url=${encodeURIComponent(n)}`;if(e.endsWith("/"))return`${e}${Qi(n)}`;const t=e.includes("?")?"&":"?";return`${e}${t}url=${encodeURIComponent(n)}`}function Ac(n){return new Promise((e,t)=>{const i=new FileReader;i.onload=()=>e(String(i.result||"")),i.onerror=()=>t(new Error("read_failed")),i.readAsDataURL(n)})}function jv(n,e){return[e.as||"blob",e.timeout??3e3,e.useProxy||"",e.errorTTL??8e3,n].join("|")}async function je(n,e={}){const t=e.as??"blob",i=e.timeout??3e3,s=e.useProxy||"",o=e.errorTTL??8e3,r=e.headers||{},l=!!e.silent;if(/^data:/i.test(n))try{if(t==="text")return{ok:!0,data:String(n),status:200,url:n,fromCache:!1};if(t==="dataURL")return{ok:!0,data:String(n),status:200,url:n,fromCache:!1,mime:String(n).slice(5).split(";")[0]||""};const[,A="",C=""]=String(n).match(/^data:([^,]*),(.*)$/)||[],x=/;base64/i.test(A)?atob(C):decodeURIComponent(C),M=new Uint8Array([...x].map(B=>B.charCodeAt(0))),T=new Blob([M],{type:(A||"").split(";")[0]||""});return{ok:!0,data:T,status:200,url:n,fromCache:!1,mime:T.type||""}}catch{return{ok:!1,data:null,status:0,url:n,fromCache:!1,reason:"special_url_error"}}if(/^blob:/i.test(n))try{const A=await fetch(n);if(!A.ok)return{ok:!1,data:null,status:A.status,url:n,fromCache:!1,reason:"http_error"};const C=await A.blob(),E=C.type||A.headers.get("content-type")||"";return t==="dataURL"?{ok:!0,data:await Ac(C),status:A.status,url:n,fromCache:!1,mime:E}:t==="text"?{ok:!0,data:await C.text(),status:A.status,url:n,fromCache:!1,mime:E}:{ok:!0,data:C,status:A.status,url:n,fromCache:!1,mime:E}}catch{return{ok:!1,data:null,status:0,url:n,fromCache:!1,reason:"network"}}if(/^about:blank$/i.test(n))return t==="dataURL"?{ok:!0,data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==",status:200,url:n,fromCache:!1,mime:"image/png"}:{ok:!0,data:t==="text"?"":new Blob([]),status:200,url:n,fromCache:!1};const a=jv(n,{as:t,timeout:i,useProxy:s,errorTTL:o}),c=Hi.get(a);if(c&&c.until>Date.now())return{...c.result,fromCache:!0};c&&Hi.delete(a);const u=ho.get(a);if(u)return u;const h=Wv(n,s)?zv(n,s):n;let f=e.credentials;if(!f)try{const A=typeof location<"u"&&location.href?location.href:"http://localhost/",C=new URL(n,A);f=typeof location<"u"&&C.origin===location.origin?"include":"omit"}catch{f="omit"}const p=new AbortController,m=setTimeout(()=>p.abort("timeout"),i),y=(async()=>{try{const A=await fetch(h,{signal:p.signal,credentials:f,headers:r});if(!A.ok){const x={ok:!1,data:null,status:A.status,url:h,fromCache:!1,reason:"http_error"};if(o>0&&Hi.set(a,{until:Date.now()+o,result:x}),!l){const M=`${A.status} ${A.statusText||""}`.trim();mc.warnOnce(`http:${A.status}:${t}:${new URL(n,location?.href??"http://localhost/").origin}`,`HTTP error ${M} while fetching ${t} ${n}`)}return e.onError&&e.onError(x),x}if(t==="text")return{ok:!0,data:await A.text(),status:A.status,url:h,fromCache:!1};const C=await A.blob(),E=C.type||A.headers.get("content-type")||"";return t==="dataURL"?{ok:!0,data:await Ac(C),status:A.status,url:h,fromCache:!1,mime:E}:{ok:!0,data:C,status:A.status,url:h,fromCache:!1,mime:E}}catch(A){const C=A&&typeof A=="object"&&"name"in A&&A.name==="AbortError"?String(A.message||"").includes("timeout")?"timeout":"abort":"network",E={ok:!1,data:null,status:0,url:h,fromCache:!1,reason:C};if(!/^blob:/i.test(n)&&o>0&&Hi.set(a,{until:Date.now()+o,result:E}),!l){const x=`${C}:${t}:${new URL(n,location?.href??"http://localhost/").origin}`,M=C==="timeout"?`Timeout after ${i}ms. Consider increasing timeout or using a proxy for ${n}`:C==="abort"?`Request aborted while fetching ${t} ${n}`:`Network/CORS issue while fetching ${t} ${n}. A proxy may be required`;mc.errorOnce(x,M)}return e.onError&&e.onError(E),E}finally{clearTimeout(m),ho.delete(a)}})();return ho.set(a,y),y}function fo(n,e){if(!e||!n.width||!n.height)return n;const t=document.createElement("canvas");t.width=n.width,t.height=n.height;const i=t.getContext("2d");return i.fillStyle=e,i.fillRect(0,0,t.width,t.height),i.drawImage(n,0,0),t}async function po(n,e={}){if(/^((repeating-)?(linear|radial|conic)-gradient)\(/i.test(n)||n.trim()==="none")return n;const i=uo(n);if(!i)return n;const s=Qi(i);if(W.background.has(s)){const o=W.background.get(s);return o?`url("${o}")`:"none"}try{const o=await je(s,{as:"dataURL",useProxy:e.useProxy});return o.ok?(W.background.set(s,o.data),`url("${o.data}")`):(W.background.set(s,null),"none")}catch{return W.background.set(s,null),"none"}}var yc=new Set(["meta","script","noscript","title","link","template"]),Gi=new Set(["meta","link","style","title","noscript","script","template","g","defs","use","marker","mask","clipPath","pattern","path","polygon","polyline","line","circle","ellipse","rect","filter","lineargradient","radialgradient","stop"]),$v=["div","span","p","a","img","ul","li","button","input","select","textarea","label","section","article","header","footer","nav","main","aside","h1","h2","h3","h4","h5","h6","table","thead","tbody","tr","td","th"];function Kv(){for(let n of $v){const e=String(n).toLowerCase();yc.has(e)||Gi.has(e)||Cc(e)}}function Cc(n){if(n=String(n).toLowerCase(),Gi.has(n)){const o={};return W.defaultStyle.set(n,o),o}if(W.defaultStyle.has(n))return W.defaultStyle.get(n);let e=document.getElementById("snapdom-sandbox");e||(e=document.createElement("div"),e.id="snapdom-sandbox",e.setAttribute("data-snapdom-sandbox","true"),e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.left="-9999px",e.style.top="-9999px",e.style.width="0px",e.style.height="0px",e.style.overflow="hidden",document.body.appendChild(e));const t=document.createElement(n);t.style.all="initial",e.appendChild(t);const i=getComputedStyle(t),s={};for(let o of i){if(Ec(o))continue;const r=i.getPropertyValue(o);s[o]=r}return e.removeChild(t),W.defaultStyle.set(n,s),s}var Xv=/(?:^|-)(animation|transition)(?:-|$)/i,qv=/^(--|view-timeline|scroll-timeline|animation-trigger|offset-|position-try|app-region|interactivity|overlay|view-transition|-webkit-locale|-webkit-user-(?:drag|modify)|-webkit-tap-highlight-color|-webkit-text-security)$/i,Jv=new Set(["cursor","pointer-events","touch-action","user-select","print-color-adjust","speak","reading-flow","reading-order","anchor-name","anchor-scope","container-name","container-type","timeline-scope"]);function Ec(n){const e=String(n).toLowerCase();return!!(Jv.has(e)||qv.test(e)||Xv.test(e))}function go(n,e){if(e=String(e||"").toLowerCase(),Gi.has(e))return"";const t=[],i=Cc(e);for(let[s,o]of Object.entries(n)){if(Ec(s))continue;const r=i[s];o&&o!==r&&t.push(`${s}:${o}`)}return t.sort(),t.join(";")}function Zv(n){const e=new Set;return n.nodeType!==Node.ELEMENT_NODE&&n.nodeType!==Node.DOCUMENT_FRAGMENT_NODE?[]:(n.tagName&&e.add(n.tagName.toLowerCase()),typeof n.querySelectorAll=="function"&&n.querySelectorAll("*").forEach(t=>e.add(t.tagName.toLowerCase())),Array.from(e))}function ex(n){const e=new Map;for(let i of n){const s=W.defaultStyle.get(i);if(!s)continue;const o=Object.entries(s).map(([r,l])=>`${r}:${l};`).sort().join("");o&&(e.has(o)||e.set(o,[]),e.get(o).push(i))}let t="";for(let[i,s]of e.entries())t+=`${s.join(",")} { ${i} }
117
+ `});f.isModelAdjustment=!0,h.customShader=f}else e.brightness!==void 0&&e.brightness!==1&&!h.style&&(h.style=new i.Cesium3DTileStyle({color:`color('white') * ${e.brightness}`}))}}setModelBrightness(e){this.setModelColorAdjustment({brightness:e})}_defaultSkyBox=null;_updateLightDirection=e=>{e.light instanceof this.cesium.DirectionalLight&&(e.light.direction=e.camera.directionWC)};setEnvironmentMapEnable(e){this.is2d||(e?(this.viewer.scene.light=new this.cesium.DirectionalLight({direction:this.viewer.scene.camera.directionWC}),this.viewer.scene.preRender.addEventListener(this._updateLightDirection)):(this._defaultSkyBox&&(this.viewer.scene.skyBox=this._defaultSkyBox),this.viewer.scene.preRender.removeEventListener(this._updateLightDirection),this.viewer.scene.light=new this.cesium.SunLight),this.viewer.scene.imageBasedLighting&&(this.viewer.scene.imageBasedLighting.imageBasedLightingFactor=e?new this.cesium.Cartesian2(2,2):new this.cesium.Cartesian2(1,1)))}setAmbientOcclusion(e){if(this.is2d)return;const t=this.viewer.scene;if(!t||!t.postProcessStages||!t.postProcessStages.ambientOcclusion)return;const i=t.postProcessStages.ambientOcclusion;i.enabled=e,e&&(i.uniforms.ambientOcclusionOnly=!1,i.uniforms.intensity=3,i.uniforms.bias=.1,i.uniforms.lengthCap=.03,i.uniforms.stepSize=1,i.uniforms.blurStepSize=.86)}setCollisionDetection(e){if(this.is2d){this.viewer.scene.screenSpaceCameraController.enableCollisionDetection=!1;return}const t=this.viewer.scene.screenSpaceCameraController;t.enableCollisionDetection=e,e||t.minimumZoomDistance<1&&(t.minimumZoomDistance=1)}setMouseHabit(e){if(this.is2d)return;const t=this.viewer.scene.screenSpaceCameraController;t.enableTranslate=!0,t.enableRotate=!0,t.enableZoom=!0,t.enableTilt=!0,t.enableLook=!1,t.lookEventTypes=[],e===1?(t.rotateEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.MIDDLE_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.LEFT_DRAG]):(t.rotateEventTypes=[this.cesium.CameraEventType.LEFT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.MIDDLE_DRAG])}}class k0{cesium;viewer;constructor(e){this.cesium=e.cesium,this.viewer=e.viewer}getCameraView(){const e=this.viewer.camera;return{position:{x:e.position.x,y:e.position.y,z:e.position.z},orientation:{heading:e.heading,pitch:e.pitch,roll:e.roll},duration:1}}flyToCameraView(e){const{position:t,orientation:i,duration:s}=e,o=new this.cesium.Cartesian3(t.x,t.y,t.z),r=new this.cesium.HeadingPitchRoll(i.heading,i.pitch,i.roll);!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}getCurrentCameraPositionAndTarget(){const e=this.getCameraView();return{position:e.position,target:{heading:e.orientation.heading,pitch:e.orientation.pitch,roll:e.orientation.roll},duration:e.duration}}setCameraView(e){const t=e.target||e.orientation||{};this.flyToCameraView({position:{x:Number(e.position.x),y:Number(e.position.y),z:Number(e.position.z)},orientation:{heading:Number(t.heading||0),pitch:Number(t.pitch||0),roll:Number(t.roll||0)},duration:e.duration})}}function P0(n){const{container:e,appContext:t,methods:i,viewerOptions:s,options:o,callbacks:r}=n,l=new pi,a=window.Cesium;if(!a)throw new Error("Cesium is not loaded");e.id=`cesium-container-${Sg()}`;const c={animation:!1,timeline:!1,infoBox:!1,homeButton:!1,fullscreenButton:!1,sceneModePicker:!1,navigationHelpButton:!1,geocoder:!1,baseLayerPicker:!1,selectionIndicator:!1,creditContainer:document.createElement("div"),contextOptions:{webgl:{alpha:!0}}},u=t?.config?.globalProperties?.$leitingBimOptions,h={...c,...u?.viewerOptions??{},...s??{}},f=new a.Viewer(e,h);f.camera.setView({destination:a.Cartesian3.fromDegrees(108,32,1e7),orientation:{heading:a.Math.toRadians(0),pitch:a.Math.toRadians(-90),roll:0}});let p=i;if(!p&&u&&(u.methods||(u.methods={}),p=u.methods),p){const m=new Qg({cesium:a,viewer:f,options:o,callbacks:r}),y=new ka({cesium:a,viewer:f}),A=new D0({cesium:a,viewer:f}),C=new Hg({cesium:a,viewer:f}),E=new k0({cesium:a,viewer:f});let x;const M=new tc({cesium:a,viewer:f});o&&(o.globe!==void 0&&A.setGlobeEnvironmentVisible(o.globe),o.terrain!==void 0&&A.setTerrainEnable(o.terrain),o.depthTest!==void 0&&A.setDepthTestEnable(o.depthTest),o.mapProvider&&o.mode!=="2d"&&A.changeBaseMap(o.mapProvider,{token:o.tiandituToken,layerType:o.tiandituLayerType,showAnnotation:o.tiandituShowLabel,url:o.arcgisUrl}),o.shadows!==void 0&&A.setShadowsEnable(o.shadows),o.environmentMap!==void 0&&A.setEnvironmentMapEnable(o.environmentMap),o.ambientOcclusion!==void 0&&A.setAmbientOcclusion(o.ambientOcclusion),o.time!==void 0&&A.setTime(o.time),o.brightness!==void 0&&A.setModelBrightness(o.brightness),o.backgroundColor!==void 0&&A.setBackgroundColor(o.backgroundColor),o.collision!==void 0&&A.setCollisionDetection(o.collision),o.mouseHabit!==void 0&&A.setMouseHabit(o.mouseHabit)),o&&o.mode==="2d"&&(console.log("InitMap: Setting CAD Mode 2D"),A.setCadMode("2d"),x=new ao({cesium:a,viewer:f})),y.events.on("tilesetLoaded",g=>{m.baseCompt.attachTileset(g,m.baseCompt.selectedColor),m.baseSection.attachTileset(g,g.leiting?.model?.modelId),p&&p.tilesLoad3dTiles&&p.tilesLoad3dTiles(g),o?.tilesLoad3dTiles&&o.tilesLoad3dTiles(g.leiting)}),y.events.on("loadingStatus",g=>{p&&p.onLoadingStatus&&p.onLoadingStatus(g)}),y.events.on("mountAll3Dtiles",({modelList:g,mapTileset:k})=>{o?.mountAll3Dtiles&&o.mountAll3Dtiles(g),p?.mountAll3Dtiles&&p.mountAll3Dtiles(k)}),C.events.on("mountAllCad",g=>{o?.mountAllCad&&o.mountAllCad(g),p?.mountAllCad&&p.mountAllCad(g)}),m.baseCompt.selectionChange(g=>{g.length!==0&&(o?.selectionChange&&o.selectionChange(g),p?.selectionChange&&p.selectionChange(g))}),p.onSearchComponent=g=>{o?.searchComponent&&o.searchComponent(g),p?.searchComponent&&p.searchComponent(g)};const T=p.saveRegion;p.saveRegion=g=>{o?.saveRegion&&o.saveRegion(g),T&&T!==o?.saveRegion&&T(g)};const B=p.saveCadCalibration;p.saveCadCalibration=g=>{o?.saveCadCalibration&&o.saveCadCalibration(g),B&&B!==o?.saveCadCalibration&&B(g)};const I=p.saveCadRegion;p.saveCadRegion=g=>{o?.saveCadRegion&&o.saveCadRegion(g),I&&I!==o?.saveCadRegion&&I(g)},p.getCesium=()=>a,p.getViewer=()=>f,p.getAnnotationInstance=()=>x,p.getMeasureInstance=()=>M,p.flyTo=g=>{E.setCameraView(g)},p.addPoint=(g,k,P=0)=>{f.entities.add({position:a.Cartesian3.fromDegrees(g,k,P),point:{pixelSize:10,color:a.Color.RED}})},p.enableTestLabel=()=>m.enableTestLabel(),p.setBackgroundColor=g=>A.setBackgroundColor(g),p.enableCesiumFXAA=g=>m.enableCesiumFXAA(g),p.setSceneOptions=g=>m.setSceneOptions(g),p.getCameraInfo=()=>E.getCameraView(),p.flyToCameraView=g=>E.flyToCameraView(g),p.getCurrentCameraPositionAndTarget=()=>E.getCurrentCameraPositionAndTarget(),p.setCameraView=g=>E.setCameraView(g),p.getImageBase64=()=>{const g=f.scene.canvas;return f.render(),g.toDataURL("image/png")},p.getSnapDomSImageBase64=(g,k)=>m.getSnapDomSImageBase64(g,k),p.addModels=g=>y.addModels(g),p.add3DtilesModel=g=>y.addModels(g),p.addOSGB=g=>y.addOSGB(g),p.updateOSGBMatrix=g=>y.updateOSGBMatrix(g),p.showModels=g=>y.showModels(g),p.showTileset=g=>y.showModels(g),p.deleteModels=g=>y.deleteModels(g),p.deleteAllModelList=()=>{y.deleteAllModels(),l.emit("deleteAllModels")},p.deleteAllModels=()=>{y.deleteAllModels(),l.emit("deleteAllModels")},p.flyToTileset=g=>y.flyToTileset(g),p.flyToByModelId=g=>y.flyToTileset(g),p.updateModelEffect=g=>m.updateModelEffect(g),p.getMapTileset=()=>y.getMapTileset(),p.getBIMmodelId=()=>y.getBIMmodelId(),p.getModelList=()=>y.getModelList(),p.setMapTileset=g=>y.setMapTileset(g),p.setBIMmodelId=g=>y.setBIMmodelId(g),p.setModelList=g=>y.setModelList(g),p.setSelectColorUserModelCpt=(g,k)=>m.baseCompt.setSelectColorUserModelCpt(g,k),p.setAllSelectColorUserModelCpt=g=>m.baseCompt.setAllSelectColorUserModelCpt(g),p.setSelectColorUserModelCptByClear=()=>m.baseCompt.clearAllHaveSelected(),p.clearSelectColorUserModelCpt=()=>m.baseCompt.clearAllHaveSelected(),p.setSelecteds=(g,k)=>m.baseCompt.setSelectColorUserModelCpt(g,k??{rank:0}),p.setSelectedColor=(g,k,P,F)=>m.baseCompt.setSelectedColorRgba(g,k,P,F),p.clearAllHaveSelected=()=>m.baseCompt.clearAllHaveSelected(),p.getSelected=g=>m.baseCompt.getSelected(g),p.selectionChange=g=>{m.baseCompt.selectionChange(g)},p.flyToObjects=g=>m.baseCompt.flyToObjects(g),p.setAllConstructionProgressTracking=g=>m.baseCompt.setAllConstructionProgressTracking(g),p.enableAllConstructionProgressTracking=()=>m.baseCompt.enableConstructionProgressTracking(),p.disableConstructionProgressTracking=()=>m.baseCompt.disableConstructionProgressTracking(),p.disableAllConstructionProgressTracking=()=>m.baseCompt.disableConstructionProgressTracking(),p.freshConstructionProgressTracking=()=>m.baseCompt.freshConstructionProgressTracking(),p.reStartAnimation=()=>m.baseCompt.reStartAnimation(),p.resumeFlyTo=()=>m.baseCompt.resumeFlyTo(),p.pauseFlyTo=()=>m.baseCompt.pauseFlyTo(),p.pauseAnimation=()=>m.baseCompt.pauseFlyTo(),p.resumeAnimation=()=>m.baseCompt.resumeFlyTo(),p.setElementsListVisible=g=>m.baseCompt.setComponentVisibility(g),p.setAllElementsVisible=g=>m.baseCompt.setAllComponentsVisibility(g),p.getElementsVisible=g=>m.baseCompt.getComponentsByVisibility(g),p.setComponentVisibility=g=>m.baseCompt.setComponentVisibility(g),p.setAllComponentsVisibility=g=>m.baseCompt.setAllComponentsVisibility(g),p.getComponentsByVisibility=g=>m.baseCompt.getComponentsByVisibility(g),p.openSection=(g,k)=>m.baseSection.open(g,k),p.closeSection=g=>m.baseSection.close(g),p.updateSectionRange=g=>m.baseSection.updateRange(g),p.getSectionRange=()=>m.baseSection.getRange(),p.fitToModels=()=>m.baseSection.fitToModels(),p.setSectionBoxVisibility=g=>m.baseSection.setBoxVisibility(g),p.openPlayer=()=>{m.baseCompt.disableSelection(),m.basePlayer.openPlayer()},p.closePlayer=()=>{m.basePlayer.closePlayer(),m.baseCompt.enableSelection()},p.setPersonPosition=g=>m.basePlayer.setPersonPosition(g),p.setPlayerSpeed=g=>m.basePlayer.setSpeed({speed:g}),p.setPlayerParams=g=>m.basePlayer.setParams(g),p.setPlayerMoveState=(g,k)=>m.basePlayer.setMoveState(g,k),p.bindPlayerUiKeys=g=>m.basePlayer.bindUiKeys(g),p.setGlobeEnvironmentVisible=g=>A.setGlobeEnvironmentVisible(g),p.setGlobeColor=g=>A.setGlobeColor(g),p.setCadMode=g=>A.setCadMode(g),p.setTerrainEnable=g=>A.setTerrainEnable(g),p.setDepthTestEnable=g=>A.setDepthTestEnable(g),p.changeBaseMap=(g,k)=>A.changeBaseMap(g,k),p.searchLocation=(g,k)=>A.searchLocation(g,k),p.setShadowsEnable=g=>A.setShadowsEnable(g),p.setShadowDarkness=g=>{A.setShadowDarkness?A.setShadowDarkness(g):console.warn("baseSetting.setShadowDarkness is not available. Please reload the page.")},p.setTime=g=>A.setTime(g),p.setModelBrightness=g=>A.setModelBrightness(g),p.setModelColorAdjustment=g=>A.setModelColorAdjustment(g),p.setEnvironmentMapEnable=g=>A.setEnvironmentMapEnable(g),p.setAmbientOcclusion=g=>A.setAmbientOcclusion(g),p.setCollisionDetection=g=>A.setCollisionDetection(g),p.setMouseHabit=g=>A.setMouseHabit(g),p.is2dMode=()=>A.is2d,p.setSceneMode=g=>{const k=g?"2d":"3d";A.setCadMode(k),g&&!x&&(x=new ao({cesium:a,viewer:f})),l.emit("setMode",k)},p.setGisOptions=g=>{g.globe!==void 0&&A.setGlobeEnvironmentVisible(g.globe),g.elevation!==void 0&&A.setTerrainEnable(g.elevation),g.depthTestAgainstTerrain!==void 0&&A.setDepthTestEnable(g.depthTestAgainstTerrain),g.rendering!==void 0&&A.setAmbientOcclusion(g.rendering)},p.getConfigure=()=>(console.warn("getConfigure is not initialized. Please ensure LeitingSetting component is mounted."),{}),p.setConfigure=g=>{console.warn("setConfigure is not initialized. Please ensure LeitingSetting component is mounted.",g)},p.addDxfModel=g=>{const k={...g};return k.files&&!k.fileNames&&(k.fileNames=k.files),k.fileNames||(k.fileNames=[]),C.addDxfModel(k)},p.deleteCad=g=>C.deleteCad(g),p.deleteAllCad=()=>C.deleteAllCad(),p.showDxfModel=g=>C.showJson(g),p.showDxfLayer=g=>C.showJsonByLayer(g),p.flyToCadModel=(g={})=>C.flyToCadModel(g),p.getDxfModels=g=>C.getDxfModels(g),p.getDxfLayers=g=>C.getMapLayers(g),p.getCadModelId=()=>C.getModelId(),p.setDxfOpen=g=>C.setDxfOpen(g),p.getDxfOpen=()=>C.getDxfOpen(),p.adjustingModelByCad=g=>C.adjustingModelByCad(g),p.saveAnnotations=()=>{let g=null;return x&&(g=x.saveAnnotations()),o?.saveAnnotations&&o.saveAnnotations(g),g},p.loadAnnotations=g=>x?x.loadAnnotations(g):!1,p.set2d=g=>{const k=g?"2d":"3d";A.setCadMode(k),g&&!x&&(x=new ao({cesium:a,viewer:f})),l.emit("setMode",k)},p.flyToTopView=()=>{C.flyToCadModel()},p.menuEvents=l,p.insertMenu=g=>{l.emit("insertMenu",g)},p.setMenuListFilter=g=>{l.emit("setMenuListFilter",g)},p.showMenu=g=>{l.emit("showMenu",g)},p.setMenuActive=(g,k)=>{l.emit("setMenuActive",g,k)},p.insertContextMenu=g=>{console.warn("insertContextMenu is not initialized yet. Please wait for LeitingBIM component to mount.",g)},p.deleteContextMenu=g=>{console.warn("deleteContextMenu is not initialized yet.",g)},p.hideContextMenu=()=>{console.warn("hideContextMenu is not initialized yet.")},p.baseCompt=m.baseCompt,p.getTree=()=>{const g=[],k=y.getMapTileset();return Object.keys(k).forEach(P=>{const F=k[P];if(F&&F.leiting&&F.leiting.tree){const L=F.leiting.tree;Array.isArray(L)?g.push(...L):g.push(L)}}),g},p.getAllComponents=()=>{const g=y.getMapTileset(),k={},P=[];try{Object.keys(g).forEach(F=>{const L=g[F];if(!L||!L.leiting)return;const H=L.leiting,O=H.node,b=H.model.formData,w=H.box;if(!O||!O.nodeExtras)return;const v=H.model.modelId;k[v]=O.nodeExtras;const S=O.nodeExtras.element;if(!S)return;const R=w?w.center:{x:0,y:0,z:0};Object.values(S).forEach(_=>{if(_.box3)try{const N=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(b.totalRotation||0)),D=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(N),new a.Cartesian3(0,0,0)),Q=a.Cartesian3.fromDegrees(b.longitude,b.latitude,b.height),V=a.Transforms.eastNorthUpToFixedFrame(Q);a.Matrix4.multiply(V,D,V);const $=new a.Cartesian3(R.x,R.y,0),q=new a.Cartesian3;a.Matrix4.multiplyByPoint(V,$,q);const ne=a.Cartographic.fromCartesian(q),se=_.box3?.Center?.x||0,Y=_.box3?.Center?.y||0,j=_.box3?.Center?.z||0,J=new a.Cartesian3(-R.x+se,-R.y+Y,0+j),oe=a.Matrix4.fromTranslation(J),le=a.Matrix4.clone(oe);a.Matrix4.multiply(D,le,le);const ge=a.Cartesian3.fromDegrees(ne.longitude/Math.PI*180,ne.latitude/Math.PI*180,b.height),we=a.Transforms.eastNorthUpToFixedFrame(ge);a.Matrix4.multiply(we,le,we);const me=a.Cartographic.fromCartesian(new a.Cartesian3(we[12],we[13],we[14]));_.box3.cartographic={longitude:me.longitude/Math.PI*180,latitude:me.latitude/Math.PI*180,height:me.height};const Re={id:_.uniqueId,billboard:[{theme:"Tag9999",position:[_.box3.cartographic.longitude,_.box3.cartographic.latitude,_.box3.cartographic.height],options:{text:_.name}}]};P.push(Re)}catch(N){console.warn("Error calculating component position:",N)}})})}catch(F){console.error("getAllComponents error:",F)}return k},p.getCptInfos=g=>{if(!Array.isArray(g))return[];const k=y.getMapTileset(),P=[],F={};g.forEach(L=>{!L.modelId||!L.elementId||(F[L.modelId]||(F[L.modelId]=[]),F[L.modelId]?.push(L.elementId))});try{Object.keys(F).forEach(L=>{const H=k[L];if(!H||!H.leiting)return;const O=H.leiting,b=O.node,w=O.model.formData,v=O.box;if(!b||!b.nodeExtras)return;const S=b.nodeExtras.element;if(!S)return;const R=v?v.center:{x:0,y:0,z:0};F[L]?.forEach(_=>{const N=S[_];if(N&&N.box3)try{const D=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(w.totalRotation||0)),Q=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(D),new a.Cartesian3(0,0,0)),V=a.Cartesian3.fromDegrees(w.longitude,w.latitude,w.height),$=a.Transforms.eastNorthUpToFixedFrame(V);a.Matrix4.multiply($,Q,$);const q=new a.Cartesian3(R.x,R.y,0),ne=new a.Cartesian3;a.Matrix4.multiplyByPoint($,q,ne);const se=a.Cartographic.fromCartesian(ne),Y=N.box3?.Center?.x||0,j=N.box3?.Center?.y||0,J=N.box3?.Center?.z||0,oe=new a.Cartesian3(-R.x+Y,-R.y+j,0+J),le=a.Matrix4.fromTranslation(oe),ge=a.Matrix4.clone(le);a.Matrix4.multiply(Q,ge,ge);const we=a.Cartesian3.fromDegrees(se.longitude/Math.PI*180,se.latitude/Math.PI*180,w.height),me=a.Transforms.eastNorthUpToFixedFrame(we);a.Matrix4.multiply(me,ge,me);const Re=a.Cartographic.fromCartesian(new a.Cartesian3(me[12],me[13],me[14]));N.box3.cartographic={longitude:Re.longitude/Math.PI*180,latitude:Re.latitude/Math.PI*180,height:Re.height},P.push(N)}catch(D){console.warn("Error calculating component position:",D)}})})}catch(L){console.error("getCptInfos error:",L)}return P},window.Methods=p}return console.log("methods",p),{Cesium:a,viewer:f,methods:p,menuEvents:l}}function lo(n){return d.getCurrentScope()?(d.onScopeDispose(n),!0):!1}function co(n){return typeof n=="function"?n():d.unref(n)}const F0=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const R0=Object.prototype.toString,O0=n=>R0.call(n)==="[object Object]",L0=()=>{};function N0(n){return d.getCurrentInstance()}function nc(n,e=!0,t){N0()?d.onMounted(n,t):e?n():d.nextTick(n)}function Lt(n){var e;const t=co(n);return(e=t?.$el)!=null?e:t}const Ln=F0?window:void 0;function U0(...n){let e,t,i,s;if(typeof n[0]=="string"||Array.isArray(n[0])?([t,i,s]=n,e=Ln):[e,t,i,s]=n,!e)return L0;Array.isArray(t)||(t=[t]),Array.isArray(i)||(i=[i]);const o=[],r=()=>{o.forEach(u=>u()),o.length=0},l=(u,h,f,p)=>(u.addEventListener(h,f,p),()=>u.removeEventListener(h,f,p)),a=d.watch(()=>[Lt(e),co(s)],([u,h])=>{if(r(),!u)return;const f=O0(h)?{...h}:h;o.push(...t.flatMap(p=>i.map(m=>l(u,p,m,f))))},{immediate:!0,flush:"post"}),c=()=>{a(),r()};return lo(c),c}function _0(){const n=d.ref(!1),e=d.getCurrentInstance();return e&&d.onMounted(()=>{n.value=!0},e),n}function ic(n){const e=_0();return d.computed(()=>(e.value,!!n()))}function Q0(n,e={}){const{window:t=Ln}=e,i=ic(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const o=d.ref(!1),r=c=>{o.value=c.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",r):s.removeListener(r))},a=d.watchEffect(()=>{i.value&&(l(),s=t.matchMedia(co(n)),"addEventListener"in s?s.addEventListener("change",r):s.addListener(r),o.value=s.matches)});return lo(()=>{a(),l(),s=void 0}),o}function H0(n,e,t={}){const{window:i=Ln,...s}=t;let o;const r=ic(()=>i&&"ResizeObserver"in i),l=()=>{o&&(o.disconnect(),o=void 0)},a=d.computed(()=>Array.isArray(n)?n.map(h=>Lt(h)):[Lt(n)]),c=d.watch(a,h=>{if(l(),r.value&&i){o=new ResizeObserver(e);for(const f of h)f&&o.observe(f,s)}},{immediate:!0,flush:"post"}),u=()=>{l(),c()};return lo(u),{isSupported:r,stop:u}}function G0(n,e={width:0,height:0},t={}){const{window:i=Ln,box:s="content-box"}=t,o=d.computed(()=>{var h,f;return(f=(h=Lt(n))==null?void 0:h.namespaceURI)==null?void 0:f.includes("svg")}),r=d.ref(e.width),l=d.ref(e.height),{stop:a}=H0(n,([h])=>{const f=s==="border-box"?h.borderBoxSize:s==="content-box"?h.contentBoxSize:h.devicePixelContentBoxSize;if(i&&o.value){const p=Lt(n);if(p){const m=p.getBoundingClientRect();r.value=m.width,l.value=m.height}}else if(f){const p=Array.isArray(f)?f:[f];r.value=p.reduce((m,{inlineSize:y})=>m+y,0),l.value=p.reduce((m,{blockSize:y})=>m+y,0)}else r.value=h.contentRect.width,l.value=h.contentRect.height},t);nc(()=>{const h=Lt(n);h&&(r.value="offsetWidth"in h?h.offsetWidth:e.width,l.value="offsetHeight"in h?h.offsetHeight:e.height)});const c=d.watch(()=>Lt(n),h=>{r.value=h?e.width:0,l.value=h?e.height:0});function u(){a(),c()}return{width:r,height:l,stop:u}}function Y0(n={}){const{window:e=Ln,initialWidth:t=Number.POSITIVE_INFINITY,initialHeight:i=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=n,r=d.ref(t),l=d.ref(i),a=()=>{e&&(o?(r.value=e.innerWidth,l.value=e.innerHeight):(r.value=e.document.documentElement.clientWidth,l.value=e.document.documentElement.clientHeight))};if(a(),nc(a),U0("resize",a,{passive:!0}),s){const c=Q0("(orientation: portrait)");d.watch(c,()=>a())}return{width:r,height:l}}const V0={class:"title"},W0={class:"actions"},z0={class:"card-body"},j0=d.defineComponent({__name:"LeitingDraggableCard",props:{visible:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},title:{type:String,default:"Title"},initialPosition:{type:Object,default:()=>({x:0,y:0})},width:{type:[Number,String],default:200},minWidth:{type:Number,default:200},fullHeight:{type:Boolean,default:!1},align:{type:String,default:""}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=d.inject("leiting-theme",d.ref("dark")),s=e,o=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:M=>{s("update:visible",M),s("update:open",M)}}),r=d.ref(null),l=d.ref(t.initialPosition?.x||0),a=d.ref(t.initialPosition?.y||0),c=d.ref(t.width),u=d.ref(t.fullHeight?"100%":"600px");d.watch(()=>t.fullHeight,M=>{M?u.value="100%":u.value==="100%"&&(u.value="600px")});const{height:h}=Y0();d.watch(h,()=>{t.fullHeight&&(u.value="100%")});const f=d.ref(!1),p=M=>{f.value=!0,M.preventDefault(),M.stopPropagation();const T=M.clientX,B=M.clientY,I=typeof c.value=="number"?c.value:r.value?.offsetWidth||0,g=typeof u.value=="number"?u.value:r.value?.offsetHeight||0,k=F=>{if(!f.value)return;F.preventDefault();const L=F.clientX-T,H=F.clientY-B,O=I+L,b=g+H;O>100&&(c.value=O),b>100&&(u.value=b)},P=()=>{f.value=!1,document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",P)};document.addEventListener("mousemove",k),document.addEventListener("mouseup",P)},m=d.computed(()=>({left:`${l.value}px`,top:`${a.value}px`,width:typeof c.value=="number"?`${c.value}px`:c.value,height:typeof u.value=="number"?`${u.value}px`:u.value,position:"absolute",zIndex:2e3})),y=()=>{d.nextTick(()=>{if(r.value){const M=r.value.offsetParent||document.body,T=M.clientWidth,B=M.clientHeight,I=typeof c.value=="number"?c.value:r.value.offsetWidth||350,g=typeof u.value=="number"?u.value:r.value.offsetHeight||600;l.value+I>T&&(l.value=Math.max(0,T-I-20)),a.value+g>B&&(a.value=Math.max(0,B-g-20)),l.value<0&&(l.value=0),a.value<0&&(a.value=0)}})},A=d.ref(!1),C=M=>{if(M.target.closest(".close-btn")||M.target.closest(".actions"))return;A.value=!0,M.preventDefault(),M.stopPropagation();const T=M.clientX,B=M.clientY,I=l.value,g=a.value,k=F=>{if(!A.value)return;F.preventDefault();const L=F.clientX-T,H=F.clientY-B;l.value=I+L,a.value=g+H},P=()=>{A.value=!1,document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",P),y()};document.addEventListener("mousemove",k),document.addEventListener("mouseup",P)},E=()=>{d.nextTick(()=>{if(t.align&&r.value){const M=r.value.offsetParent||document.body,T=typeof c.value=="number"?c.value:r.value.offsetWidth||350;t.align==="right"?l.value=Math.max(0,M.clientWidth-T-20):t.align==="center"&&(l.value=Math.max(0,(M.clientWidth-T)/2))}y()})};d.onMounted(()=>{t.align?E():y()}),d.watch(o,M=>{M&&(t.align?E():y())});const x=()=>{o.value=!1,s("close")};return(M,T)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{ref_key:"cardRef",ref:r,class:d.normalizeClass(["draggable-card leiting-scroll",["leiting-theme-"+d.unref(i)]]),style:d.normalizeStyle(m.value)},[d.createElementVNode("div",{ref:"headerRef",class:"card-header",onMousedown:C},[d.createElementVNode("span",V0,d.toDisplayString(n.title),1),d.createElementVNode("div",W0,[d.renderSlot(M.$slots,"header-extra",{},void 0,!0),d.createElementVNode("span",{class:"close-btn",onClick:x},"×")])],544),d.createElementVNode("div",z0,[d.renderSlot(M.$slots,"default",{},void 0,!0)]),d.createElementVNode("div",{class:"resize-handle",onMousedown:p},[...T[0]||(T[0]=[d.createElementVNode("svg",{viewBox:"0 0 10 10",width:"10",height:"10",fill:"currentColor"},[d.createElementVNode("path",{d:"M10 10 L10 2 L2 10 Z"})],-1)])],32)],6)),[[d.vShow,o.value]])}}),Ue=(n,e)=>{const t=n.__vccOpts||n;for(const[i,s]of e)t[i]=s;return t},Fe=Ue(j0,[["__scopeId","data-v-4db89eda"]]);function $0(n){const e=d.ref([]),t=d.ref([]),i=d.ref([]),s=d.ref(""),o=d.ref(!0);d.watch(()=>d.unref(n),h=>{if(!h||h.length===0)return;const f=[],p=(A,C)=>{A.forEach(E=>{const x=E.id||E.key||E.$id,M=E.modelId||C;M&&(E.modelId=M),x&&f.push(x),E.children&&E.children.length>0&&p(E.children,M)})};p(h);const m=new Set(i.value);let y=!1;f.forEach(A=>{m.has(A)||(m.add(A),y=!0)}),y&&(i.value=Array.from(m))},{immediate:!0,deep:!0});const r=d.computed(()=>{const h=d.unref(n);if(!h)return[];const f=[],p=(m,y)=>{m.forEach(A=>{const C=A.id||A.key||A.$id,E=A.name||A.title;f.push({key:C,title:E,parentKey:y}),A.children&&A.children.length>0&&p(A.children,C)})};return p(h),f}),l=h=>{e.value=h,o.value=!1},a=h=>{i.value=h},c=h=>{t.value=h},u=h=>r.value.find(p=>p.key===h)?.parentKey;return d.watch(s,h=>{if(!h)return;const p=r.value.filter(y=>y.title&&y.title.toLowerCase().includes(h.toLowerCase())).map(y=>y.parentKey),m=new Set;p.forEach(y=>{let A=y;for(;A;)m.add(A),A=u(A)}),e.value=[...m],o.value=!0}),{expandedKeys:e,selectedKeys:t,checkedKeys:i,searchValue:s,autoExpandParent:o,onExpand:l,onCheck:a,onSelect:c}}const K0={class:"search-box"},X0={key:0},q0={style:{color:"#f50"}},J0={key:1},Z0={key:1,class:"empty-tip"},ki=Ue(d.defineComponent({__name:"LeitingTree",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"构件树"},width:{type:[Number,String],default:320},treeData:{type:Array,default:()=>[]},initialPosition:{type:Object,default:()=>({x:0,y:0})},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close","select","check"],setup(n,{emit:e}){const t=Ae.Input.Search,i=Ae.Tree,s=n,o=e,r=d.inject("leiting-theme",d.ref("dark")),l=d.inject("leitingMethods"),a=g=>{l?.value?.onSearchComponent&&l.value.onSearchComponent(g)},c=d.computed({get:()=>s.open!==void 0?s.open:s.visible,set:g=>{o("update:visible",g),o("update:open",g)}}),u=d.ref(null),{height:h}=G0(u),f=d.computed(()=>h.value||300),p={children:"children",title:"name",key:"id"},{expandedKeys:m,selectedKeys:y,checkedKeys:A,searchValue:C,autoExpandParent:E}=$0(d.toRef(s,"treeData")),x=g=>{m.value=g,E.value=!1},M=g=>{const k=[],P=F=>{if(!F.children||F.children.length===0){const H=F.element_Id;F.modelId&&H&&k.push({modelId:F.modelId,elementId:H})}else F.children.forEach(P)};return P(g),k},T=(g,k)=>{A.value=g,o("check",g,k);const P=M(k.node).map(F=>({...F,show:k.checked}));l?.value?.setComponentVisibility&&l.value.setComponentVisibility(P),l?.value?.onTreeCheck&&l.value.onTreeCheck(g,k)},B=(g,k)=>{if(y.value=g,o("select",g,k),k.selected){const P=M(k.node);P.length>0&&l?.value?.flyToObjects&&l.value.flyToObjects({selectCpts:P})}l?.value?.onTreeSelect&&l.value.onTreeSelect(g,k)},I=()=>{o("update:visible",!1),o("close")};return(g,k)=>(d.openBlock(),d.createBlock(Fe,{visible:c.value,"onUpdate:visible":k[1]||(k[1]=P=>c.value=P),title:n.title,"initial-position":n.initialPosition,"full-height":n.fullHeight,onClose:I},{default:d.withCtx(()=>[d.createElementVNode("div",{class:d.normalizeClass(["leiting-tree-container",[`theme-${d.unref(r)}`]])},[d.createElementVNode("div",K0,[d.createVNode(d.unref(t),{value:d.unref(C),"onUpdate:value":k[0]||(k[0]=P=>d.isRef(C)?C.value=P:null),placeholder:"搜索构件","allow-clear":"","enter-button":"",onSearch:a},null,8,["value"])]),d.createElementVNode("div",{class:"tree-wrapper",ref_key:"treeWrapperRef",ref:u},[n.treeData&&n.treeData.length?(d.openBlock(),d.createBlock(d.unref(i),{key:0,"tree-data":n.treeData,"field-names":p,height:f.value,"expanded-keys":d.unref(m),"auto-expand-parent":d.unref(E),"selected-keys":d.unref(y),"checked-keys":d.unref(A),checkable:"",virtual:"","block-node":"",onExpand:x,onSelect:B,onCheck:T},{title:d.withCtx(({title:P})=>[P&&d.unref(C)&&P.toLowerCase().indexOf(d.unref(C).toLowerCase())>-1?(d.openBlock(),d.createElementBlock("span",X0,[d.createTextVNode(d.toDisplayString(P.substr(0,P.toLowerCase().indexOf(d.unref(C).toLowerCase())))+" ",1),d.createElementVNode("span",q0,d.toDisplayString(d.unref(C)),1),d.createTextVNode(" "+d.toDisplayString(P.substr(P.toLowerCase().indexOf(d.unref(C).toLowerCase())+d.unref(C).length)),1)])):(d.openBlock(),d.createElementBlock("span",J0,d.toDisplayString(P),1))]),_:1},8,["tree-data","height","expanded-keys","auto-expand-parent","selected-keys","checked-keys"])):(d.openBlock(),d.createElementBlock("div",Z0,"暂无数据"))],512)],2)]),_:1},8,["visible","title","initial-position","full-height"]))}}),[["__scopeId","data-v-4cd53c55"]]),eC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",sc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAERSURBVDhPvZTrEYIwEISTCrQD6EA7gA60AylBK1Aq0A7ECrQDoQPsADrACuLuTMJkIiHxjzezgyR7H3d5KJVSqRAigcaQUjYYX2JgZY/P/O4lEgYYFo7pgPcc2kSCBoIUzDeo0klPPEsNYlX7AKzA/M6ASrRzYoIGG5DAOCvzBvzMOxqQazSgLLI1QdAW5jWpUAPV0AVKIc7FRCuNy7RkWozJtj1BED7ANbpDXHhffFXUwUnZwRYp7qw7Rx8/lLkV9R4QD2w1A8pjW3sA4h5au+pXEBS76P8D6Ut9/nXXaiRQdnBXqBfEC+4GdzSxW5v6F7CTeHnbCVCBsWIE+RYVrdF4DSz6OwgiADDexbmT3X0A4fSDfDjUugcAAAAASUVORK5CYII=",tC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAFESURBVDhPlZMNEcIwDIVXBQwFgAJAAcMBDgAFIGE4wAHgABSwOdgcIAEUjPd6aS/rfhi7y12bJl9f0sxEf3xVVV0RPoetjTFvnWqGcgSylfgihA0CKcgJgBfsAqMiKiM0+gkKlCyZCN8uhPWCFOSBxARWORU4W2CdeV9XjxSEJcwkjokTqBpzjxjCn7CyVRECzjg8wHLYCmabK7CplBcLhMr2DZCqP0dCovYZ9hYGXx1izLUGUkkfxI/sTQiCf4N1zLWAWCKV2nP6PEhB2Ngd7B4GC4SJnCcP8SAFoc/Ph/TqjVvTPogFKUiJ/VGU+GdmUAA5ObA7cyC+iPt/MjUfKRL4emyuK+cGH8tufFRUHywZ+RYlnRDdIwfzLzVUibtQv1oNhoAExtfpVdIAiQIOWiY9o2sQxJemOydTS1jR1di2Zn8B8f27apou9kMAAAAASUVORK5CYII=",nC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAHDSURBVDhPlZOxL0NRFIe9ECubhehoIIjJ1HYwCkIiJpUQEkN1YZBobU0kFKNI3iTGYrDRv0BIhLXCYpCwiO35fs25zWva98JNvpz37j33d8+551yvLWIEQXDG0izMe55XjvJz816MUJG1LVuvYJcQrEb5xwkV2JSHGfAhgBJiu63E4oSUzpRtusa+wBooKkWnKOujQYh7SbCShQx0m9cpds4iOseOw7BFmUPwU341IQT2MaOQgi9QND+wiqNnBxT4X7SIbrAqhNI9wiUvJ+W8A99wDEWdwrw25iVkkenAEb5LkIQPuIMJWJGQoriFd+iBCkhc8zUhfJSm7mva5l3aadubDgtpMgGKpB/eoBfuQZFoPNhBj9gTaC3kKkEEGXPswF7Y5rLro1AW8UI6GmelmAzfkUWlNaWt6/iT0DOOA5bqoSuzHfIvofATqSJQb8KoiJbtPi6x2dA9FPjXE1F/uZKrv3IwCFcNqVmoPlal7QJ9q/wZCbk7Ioo9/tehE9q1r0nIxNQbG4YEXdkVjQ5J2OZXbB88gVrgQIJNj9aaT4LboPK7J6O0Ktb1KYtc/aYxGff6h3AYY6Nvzk2GQ1WQTVj4BST70jYaqceXAAAAAElFTkSuQmCC",iC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADhSURBVHgBvVOBEYIwDEw9B2ADO4IjuIEjwAa6Aa7ABMAEuIIjOIFsUDao37vgxVZbBI+/+0tI0+fJBaIIrLUFaMAHmNNcsMAIE+vdJLQykQ+0wFHBrsyiT/sL2I1DDTac/+4Klzobov7WHxt29qGmaYaQnlhLCmUTa2l4C2ljvamFlEvY0xpCW/kA924GblfGWciZaJyXQvSmlOoDITSdXQBbcA8eKfy/nHDFeY470FIX8tzUIu84FmLWuTzz7yhRLPm54dKJ4+A5uoJ3HgHBUfUmxGIa4QDuKA4n3kLk9ZInw0qu5b1R1aYAAAAASUVORK5CYII=",sC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADFSURBVDhPxVPBDYMwDIwnKJu0G9ANYJMyQrsBbNIRGAE2gEnSO6mpIMJxkBC1lEds52zfOeK9b51zV5wte4lIr8RWbgGQh2fGmaIHJe4EetKPtDpRcA5AvwcB7FtgCcTOH0p3YzaQNd75QBiVXJG3LRtCRyQ6Jvsekd3gTsJVoDcihZLQQjXGTRMzIzPhOCCQyNYvSuEue7Qdm02yK0u1nM2m/FQyKb8JZHH+l81Ofdpdm82tvikjThyNlbSEBvIPFj+MfwA76qSYUG3g9QAAAABJRU5ErkJggg==",oC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEcSURBVDhPrZSNDYIwEIXpBOIGjMAIOIE4AbgBGwAbOIJu4Aa4gW4gI+gE9b3mjjSmibSR5ALX3H33W4y1Ns+yrIe0EH7HPC8YnyGjAegkEB5cYyiwrdWXIEc1xnSREGcuiTQEWeg7gG4+CMcl9ALnLkvogwScv+wq6FMQJJCJDgBtBcSAI3QClwe2YZAHcY2Ho4kGAVLA6U5/CEvdp4KYhesFhBPpCZIAz6jStHhproJcHyAHbb5nF+6RZ8CsGslIQaHp/gSxRzlApU4GugPxNuDN/eNarAJxapUPgm8rQ9C1SAI9AOGiHhGApSdnRN8FshbEiLwiLI1rMUM6zSQ0tX9c2lp/Iw0iMIPU38iFIN1mTmOjKa98vyWB4QM5XQnvsbFsyAAAAABJRU5ErkJggg==",rC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAGPSURBVDhPrZT9UQIxEMUvFSgViBUoFQgVABV4VqBW4FmBUIFQgZRwVqBU4HUAVHC+X2aXycQw/sPOvLncZvdlv5JQFaTv+1upp8IyhLDHRLpLfe6FrXRt7hZShYyH+n8RauGAv/AkQNYIHICshFcRdu6fE/kGRN/mQGTIpzAzMoh6EV2fIsJ5IwNOj2IpVZ6i6difSecRVnlELZHIgHROisgXRCa78Z+IrMBf2pjLYJNENGSd1kO2pPghjKQniyqY8lFr2NfaqC18wn7nZCMlWg7xLq70TxfRLyHqtABN2lbp40mSSCzBcSebif1TPyKjDBcQ0eJJRkIUpHkMPUlnkBU+pnlWItL6ERgw8o1iqRHtgzAUGNRD2qmkvgMvNnneUQcZ4ggR6VGXG+OOA1koNvrFcY7+af++VJe0hucfyKQu+RWJc+SDZ3aNvlPpRl7T0qXdafNZYPDehLEZt/rOBR9U8QSaEKX0jHAaE4tshVrgLeJ+Xdl6rS8D3BWJXKnCEwWXEuco9grQ3bb0sP0Cn8/nPm/SMRQAAAAASUVORK5CYII=",aC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACDSURBVHgB1ZFhDYAgEIWfzgBGIIINpIEViGAkG2gEbWADjWADfMw/iDgUfji/7e3gxt3uHsDXZFrrlrFBHJNpsPAgEEmORArn3lFroEZQCjcTbAhzepPsgbuCgn8FBWvsUAMfFR5OIPGS5G80JkrG2sopHKbO1BCoHy8ZNhRUT5X4BTu6qyNSwwCiMAAAAABJRU5ErkJggg==",lC={class:"menu-container"},cC=["onClick","title"],dC={class:"menu-icon"},uC=["src","alt"],hC={key:3,style:{"font-size":"12px"}},fC={key:0,class:"sub-menu"},pC=["onClick"],Nn=d.defineComponent({__name:"LeitingMenu",props:{visible:{type:Boolean,default:!0},activeIds:{type:Array,default:()=>[]},is2d:{type:Boolean,default:!1},customItems:{type:Array,default:()=>[]}},emits:["action"],setup(n,{emit:e}){const t=n,i=d.inject("leiting-theme",d.ref("dark")),s=d.inject("leiting-menu-size",d.ref("medium")),o=d.inject("leitingMethods",d.ref({})),r=d.computed(()=>i.value||i),l=d.computed(()=>s.value||s),a=d.ref([{ID:"home",title:"主视角",src:eC,key:"homeView"},{ID:"tree",title:"目录树",src:sc,key:"componentTree"},{ID:"cadLayer",title:"图层",src:sc,key:"cadLayer"},{ID:"measure",title:"量算",src:tC,key:"measurement"},{ID:"section",title:"剖切",src:nC,key:"section"},{ID:"roam",title:"人物漫游",src:iC,key:"roam"},{ID:"info",title:"构件信息",src:sC,key:"componentInfo"},{ID:"cadPosition",title:"调整位置",src:oC,key:"cadPosition"},{ID:"annotation",title:"标注",src:aC,key:"annotation"},{ID:"setting",title:"设置",src:rC,key:"setting"}]),c=d.ref([]),u=d.ref([...t.activeIds]);d.watch(()=>t.activeIds,T=>{u.value=[...T]},{deep:!0});const h=d.computed(()=>t.visible);o.value&&o.value.menuEvents&&(o.value.menuEvents.on("setMenuListFilter",T=>{c.value=T}),o.value.menuEvents.on("setMenuActive",(T,B)=>{B?u.value.includes(T)||u.value.push(T):u.value=u.value.filter(I=>I!==T)}));const f=d.computed(()=>{let T=a.value;if(t.is2d){const B=["homeView","measurement","cadLayer","annotation"];T=T.filter(I=>I.key&&B.includes(I.key))}else{const B=["cadLayer","cadPosition","annotation"];T=T.filter(I=>!I.key||!B.includes(I.key))}if(c.value.length>0&&(T=T.filter(B=>!B.key||!c.value.includes(B.key))),t.customItems&&t.customItems.length>0){const B=t.customItems.map(I=>({...I,key:I.ID,src:I.src||I.icon}));return[...T,...B]}return T}),p=e,m=T=>{const B=["homeView"];if(T.key&&B.includes(T.key))u.value.includes(T.ID)||(u.value.push(T.ID),setTimeout(()=>{const g=u.value.indexOf(T.ID);g>-1&&u.value.splice(g,1)},1e3));else{const g=u.value.indexOf(T.ID);g>-1?u.value.splice(g,1):u.value.push(T.ID)}const I=u.value.includes(T.ID);T.func&&T.func(T),T.key&&p("action",T.key,I)},y=T=>{a.value=[...a.value,...T]},A=T=>{c.value=T},C=T=>{console.log("LeitingMenu received showMenu event:",T)},E=(T,B)=>{const I=a.value.find(g=>g.ID===T||g.key===T);if(I){const g=u.value.indexOf(I.ID);B&&g===-1?u.value.push(I.ID):!B&&g>-1&&u.value.splice(g,1)}};let x=null;const M=()=>{o.value?.menuEvents&&(x&&(x.off("insertMenu",y),x.off("setMenuListFilter",A),x.off("showMenu",C),x.off("setMenuActive",E)),x=o.value.menuEvents,x.on("insertMenu",y),x.on("setMenuListFilter",A),x.on("showMenu",C),x.on("setMenuActive",E))};return d.onMounted(()=>{M()}),d.onUnmounted(()=>{x&&(x.off("insertMenu",y),x.off("setMenuListFilter",A),x.off("showMenu",C),x.off("setMenuActive",E))}),d.watch(o,()=>{M()},{deep:!0}),(T,B)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{class:d.normalizeClass(["leiting-menu-wrapper",["leiting-theme-"+r.value,"size-"+l.value]])},[d.createElementVNode("div",lC,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(f.value,I=>(d.openBlock(),d.createElementBlock("div",{key:I.ID,class:d.normalizeClass(["menu-item",{active:u.value.includes(I.ID)}]),onClick:g=>m(I),title:I.title},[d.createElementVNode("div",dC,[I.src?(d.openBlock(),d.createElementBlock("img",{key:0,src:I.src,alt:I.title},null,8,uC)):typeof I.icon=="object"?(d.openBlock(),d.createBlock(d.resolveDynamicComponent(I.icon),{key:1})):typeof I.icon=="string"?(d.openBlock(),d.createElementBlock("i",{key:2,class:d.normalizeClass(["iconfont",`icon-${I.icon}`])},null,2)):(d.openBlock(),d.createElementBlock("span",hC,d.toDisplayString(I.title.substring(0,2)),1))]),I.children&&I.children.length>0?(d.openBlock(),d.createElementBlock("div",fC,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(I.children,g=>(d.openBlock(),d.createElementBlock("div",{key:g.ID,class:d.normalizeClass(["sub-menu-item",{active:u.value.includes(g.ID)}]),onClick:d.withModifiers(k=>m(g),["stop"])},d.toDisplayString(g.title),11,pC))),128))])):d.createCommentVNode("",!0)],10,cC))),128))])],2)),[[d.vShow,h.value]])}}),gC={class:"leiting-section-content"},mC={class:"section-form-item"},AC={class:"radio-group"},yC={class:"section-form-item"},CC={class:"switch-container"},EC={class:"switch"},wC={class:"status-text"},bC={class:"section-form-item slider-item"},vC={class:"slider-wrapper"},xC={class:"section-form-item slider-item"},IC={class:"slider-wrapper"},BC={class:"section-form-item slider-item"},SC={class:"slider-wrapper"},MC={class:"section-form-item table-item"},TC={class:"model-table-container"},DC={class:"model-table"},kC={width:"40"},PC=["checked"],FC=["onClick"],RC=["value"],OC={class:"model-name"},Un=Ue(d.defineComponent({__name:"LeitingSection",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"剖切控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods"),o=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:O=>{i("update:visible",O),i("update:open",O)}}),r=d.ref("Box"),l=d.ref(!1),a=d.ref([]),c=d.ref([]),u=d.computed(()=>c.value.length===0?!1:c.value.every(O=>a.value.includes(O.modelId))),h=O=>{O.target.checked?a.value=c.value.map(w=>w.modelId):a.value=[],k()},f=d.ref([-10,10]),p=d.ref([-10,10]),m=d.ref([-10,10]),y=d.ref([-100,100]),A=d.ref([-100,100]),C=d.ref([-100,100]);let E=!1;const x=O=>{E=!0;const{targetZPlus:b,targetZMinus:w,targetXPlus:v,targetXMinus:S,targetYPlus:R,targetYMinus:_}=O;m.value=[-w,b],f.value=[-S,v],p.value=[-_,R],setTimeout(()=>{E=!1},100)},M=()=>{E||a.value.length===0||!s?.value?.updateSectionRange||s.value.updateSectionRange({targetZPlus:m.value[1],targetZMinus:-m.value[0],targetXPlus:f.value[1],targetXMinus:-f.value[0],targetYPlus:p.value[1],targetYMinus:-p.value[0]})},T=()=>{s?.value?.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(l.value)},B=O=>{if(!s?.value?.getMapTileset||!s?.value?.openSection)return;const w=s.value.getMapTileset()[O];if(w&&w.leiting?.box){const{min:v,max:S}=w.leiting.box,R=(S.x-v.x)/2,_=(S.y-v.y)/2,N=(S.z-v.z)/2;a.value.length<=1&&(y.value=[-R*2,R*2],A.value=[-_*2,_*2],C.value=[-N*2,N*2],f.value=[-R,R],p.value=[-_,_],m.value=[-N,N],s.value.updateSectionRange&&s.value.updateSectionRange({targetZPlus:N,targetZMinus:N,targetXPlus:R,targetXMinus:R,targetYPlus:_,targetYMinus:_})),s.value.openSection(O,{moveCallBack:x}),s.value.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(l.value)}},I=O=>{const b=a.value.indexOf(O);b>-1?a.value.splice(b,1):a.value.push(O),k()};let g=[];const k=()=>{const O=a.value.filter(w=>!g.includes(w)),b=g.filter(w=>!a.value.includes(w));O.forEach(w=>B(w)),b.forEach(w=>{s?.value?.closeSection&&s.value.closeSection(w)}),g=[...a.value]},P=()=>{},F=()=>{o.value=!1,i("close")},L=()=>{l.value=!1,a.value=[],g=[],f.value=[-10,10],p.value=[-10,10],m.value=[-10,10],y.value=[-100,100],A.value=[-100,100],C.value=[-100,100]};d.watch(()=>t.visible,O=>{O?H():(s?.value?.closeSection&&s.value.closeSection(),L())});const H=()=>{s?.value&&typeof s.value.getModelList=="function"&&(c.value=s.value.getModelList()||[],c.value.length>0&&a.value.length===0&&(a.value=[c.value[0].modelId],g=[...a.value]),t.visible&&a.value.length>0&&(l.value=!0,a.value.forEach(O=>B(O))))};return d.watch(()=>s?.value,()=>{H()},{immediate:!0,deep:!0}),d.onMounted(()=>{H()}),(O,b)=>(d.openBlock(),d.createBlock(Fe,{visible:o.value,title:"剖切分析",width:300,"full-height":n.fullHeight,"onUpdate:visible":F},{default:d.withCtx(()=>[d.createElementVNode("div",gC,[d.createElementVNode("div",mC,[b[8]||(b[8]=d.createElementVNode("span",{class:"label"},"模式",-1)),d.createElementVNode("div",AC,[d.createElementVNode("label",{class:d.normalizeClass(["radio-item",{active:r.value==="Box"}])},[d.withDirectives(d.createElementVNode("input",{type:"radio",value:"Box","onUpdate:modelValue":b[0]||(b[0]=w=>r.value=w),onChange:P},null,544),[[d.vModelRadio,r.value]]),b[7]||(b[7]=d.createTextVNode(" 剖切盒 ",-1))],2)])]),d.createElementVNode("div",yC,[b[10]||(b[10]=d.createElementVNode("span",{class:"label"},"显示",-1)),d.createElementVNode("div",CC,[d.createElementVNode("label",EC,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":b[1]||(b[1]=w=>l.value=w),onChange:T},null,544),[[d.vModelCheckbox,l.value]]),b[9]||(b[9]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",wC,d.toDisplayString(l.value?"显示":"隐藏"),1)])]),d.createElementVNode("div",bC,[b[11]||(b[11]=d.createElementVNode("span",{class:"label"},"X 轴",-1)),d.createElementVNode("div",vC,[d.createVNode(d.unref(Ae.Slider),{value:f.value,"onUpdate:value":b[2]||(b[2]=w=>f.value=w),range:"",min:y.value[0],max:y.value[1],step:.1,onChange:M},null,8,["value","min","max"])])]),d.createElementVNode("div",xC,[b[12]||(b[12]=d.createElementVNode("span",{class:"label"},"Y 轴",-1)),d.createElementVNode("div",IC,[d.createVNode(d.unref(Ae.Slider),{value:p.value,"onUpdate:value":b[3]||(b[3]=w=>p.value=w),range:"",min:A.value[0],max:A.value[1],step:.1,onChange:M},null,8,["value","min","max"])])]),d.createElementVNode("div",BC,[b[13]||(b[13]=d.createElementVNode("span",{class:"label"},"Z 轴",-1)),d.createElementVNode("div",SC,[d.createVNode(d.unref(Ae.Slider),{value:m.value,"onUpdate:value":b[4]||(b[4]=w=>m.value=w),range:"",min:C.value[0],max:C.value[1],step:.1,onChange:M},null,8,["value","min","max"])])]),d.createElementVNode("div",MC,[b[15]||(b[15]=d.createElementVNode("span",{class:"label"},"模型",-1)),d.createElementVNode("div",TC,[d.createElementVNode("table",DC,[d.createElementVNode("thead",null,[d.createElementVNode("tr",null,[d.createElementVNode("th",kC,[d.createElementVNode("input",{type:"checkbox",checked:u.value,onChange:h},null,40,PC)]),b[14]||(b[14]=d.createElementVNode("th",null,"名称",-1))])]),d.createElementVNode("tbody",null,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(c.value,w=>(d.openBlock(),d.createElementBlock("tr",{key:w.modelId,class:d.normalizeClass({selected:a.value.includes(w.modelId)}),onClick:v=>I(w.modelId)},[d.createElementVNode("td",null,[d.withDirectives(d.createElementVNode("input",{type:"checkbox",value:w.modelId,"onUpdate:modelValue":b[5]||(b[5]=v=>a.value=v),onClick:b[6]||(b[6]=d.withModifiers(()=>{},["stop"])),onChange:k},null,40,RC),[[d.vModelCheckbox,a.value]])]),d.createElementVNode("td",OC,d.toDisplayString(w.modelName),1)],10,FC))),128))])])])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-519b564b"]]),LC={class:"leiting-player-content"},NC={class:"player-form-item"},UC={class:"switch-container"},_C={class:"switch"},QC={class:"status-text"},HC={class:"player-form-item"},GC={class:"switch-container"},YC={class:"switch"},VC={class:"status-text"},WC={class:"player-form-item"},zC={class:"switch-container"},jC={class:"switch"},$C={class:"status-text"},KC={class:"player-form-item slider-item"},XC={class:"slider-wrapper"},qC={class:"value-text"},JC={class:"instructions"},ZC={class:"key-map"},eE={class:"key-row"},tE={class:"key-row"},nE={class:"key-row"},iE={class:"key-row"},sE={class:"key-row"},oE={class:"key-row"},_n=Ue(d.defineComponent({__name:"LeitingPlayer",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"漫游控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods"),o=d.ref(!1),r=d.ref(!1),l=d.ref(!0),a=d.ref(.5),c=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:B=>{i("update:visible",B),i("update:open",B)}}),u=d.ref(null),h=d.ref(null),f=d.ref(null),p=d.ref(null),m=d.ref(null),y=d.ref(null),A=()=>{o.value?E():x()},C=()=>{s?.value?.setPlayerParams&&s.value.setPlayerParams({gravityTest:r.value,collisionTest:l.value})},E=async()=>{s?.value?.openPlayer&&(await s.value.openPlayer(),s.value.setPlayerSpeed&&s.value.setPlayerSpeed(a.value),C(),s.value.bindPlayerUiKeys&&(await d.nextTick(),s.value.bindPlayerUiKeys({moveFront:u.value,moveBack:h.value,moveLeft:f.value,moveRight:p.value,moveUp:m.value,moveDown:y.value})))},x=()=>{s?.value?.closePlayer&&s.value.closePlayer()},M=()=>{s?.value?.setPlayerSpeed&&s.value.setPlayerSpeed(a.value)},T=()=>{c.value=!1,i("close")};return d.watch(()=>t.visible,B=>{B?(o.value=!0,s?.value?E():setTimeout(()=>{s?.value&&E()},100)):o.value&&(o.value=!1,x())},{immediate:!0}),(B,I)=>(d.openBlock(),d.createBlock(Fe,{title:n.title,visible:c.value,width:200,"full-height":n.fullHeight,"onUpdate:visible":T},{default:d.withCtx(()=>[d.createElementVNode("div",LC,[d.createElementVNode("div",NC,[I[5]||(I[5]=d.createElementVNode("span",{class:"label"},"启用",-1)),d.createElementVNode("div",UC,[d.createElementVNode("label",_C,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":I[0]||(I[0]=g=>o.value=g),onChange:A},null,544),[[d.vModelCheckbox,o.value]]),I[4]||(I[4]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",QC,d.toDisplayString(o.value?"开启":"关闭"),1)])]),d.createElementVNode("div",HC,[I[7]||(I[7]=d.createElementVNode("span",{class:"label"},"重力",-1)),d.createElementVNode("div",GC,[d.createElementVNode("label",YC,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":I[1]||(I[1]=g=>r.value=g),onChange:C},null,544),[[d.vModelCheckbox,r.value]]),I[6]||(I[6]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",VC,d.toDisplayString(r.value?"开启":"关闭"),1)])]),d.createElementVNode("div",WC,[I[9]||(I[9]=d.createElementVNode("span",{class:"label"},"碰撞",-1)),d.createElementVNode("div",zC,[d.createElementVNode("label",jC,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":I[2]||(I[2]=g=>l.value=g),onChange:C},null,544),[[d.vModelCheckbox,l.value]]),I[8]||(I[8]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",$C,d.toDisplayString(l.value?"开启":"关闭"),1)])]),d.createElementVNode("div",KC,[I[10]||(I[10]=d.createElementVNode("span",{class:"label"},"速度",-1)),d.createElementVNode("div",XC,[d.createVNode(d.unref(Ae.Slider),{value:a.value,"onUpdate:value":I[3]||(I[3]=g=>a.value=g),min:.1,max:4,step:.1,onChange:M},null,8,["value"])]),d.createElementVNode("span",qC,d.toDisplayString(a.value),1)]),I[19]||(I[19]=d.createElementVNode("div",{class:"divider"},null,-1)),d.createElementVNode("div",JC,[I[18]||(I[18]=d.createElementVNode("div",{class:"instruction-title"},"操作说明",-1)),d.createElementVNode("div",ZC,[d.createElementVNode("div",eE,[d.createElementVNode("span",{class:"key",ref_key:"btnFront",ref:u},"W",512),I[11]||(I[11]=d.createTextVNode(" 前进 ",-1))]),d.createElementVNode("div",tE,[d.createElementVNode("span",{class:"key",ref_key:"btnBack",ref:h},"S",512),I[12]||(I[12]=d.createTextVNode(" 后退 ",-1))]),d.createElementVNode("div",nE,[d.createElementVNode("span",{class:"key",ref_key:"btnLeft",ref:f},"A",512),I[13]||(I[13]=d.createTextVNode(" 左移 ",-1))]),d.createElementVNode("div",iE,[d.createElementVNode("span",{class:"key",ref_key:"btnRight",ref:p},"D",512),I[14]||(I[14]=d.createTextVNode(" 右移 ",-1))]),d.createElementVNode("div",sE,[d.createElementVNode("span",{class:"key",ref_key:"btnUp",ref:m},"Q",512),I[15]||(I[15]=d.createTextVNode(" 上升 ",-1))]),d.createElementVNode("div",oE,[d.createElementVNode("span",{class:"key",ref_key:"btnDown",ref:y},"E",512),I[16]||(I[16]=d.createTextVNode(" 下降 ",-1))]),I[17]||(I[17]=d.createElementVNode("div",{class:"key-row"},[d.createElementVNode("span",{class:"mouse-icon"},"🖱️"),d.createTextVNode(" 按住左键拖拽旋转视角 ")],-1))])])])]),_:1},8,["title","visible","full-height"]))}}),[["__scopeId","data-v-cb96e806"]]),rE={class:"info-content"},aE={key:0,class:"component-title"},Qn=Ue(d.defineComponent({__name:"LeitingInfo",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods"),o=d.ref([]),r=d.ref([]),l=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:m=>{i("update:visible",m),i("update:open",m)}}),a=()=>{l.value=!1},c=m=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[m]||m,u=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],h=m=>{if(!m||m.length===0){o.value=[];return}const y=s?.value,A=y?.getMapTileset?y.getMapTileset():{},C=[];m.forEach((E,x)=>{const T=A[E.modelId]?.leiting||{};let B={modelName:T.model?.modelId||E.modelId};B.elementID||(B.elementID=E.elementId);const I=T.node?.nodeExtras?.element||T.node?.nodeExtras;let g=null;if(I){const F=B.elementID;I[F]&&(g=I[F])}g&&g.box3&&(B.length=`${g.box3.length?.toFixed(2)||0}米`,B.width=`${g.box3.width?.toFixed(2)||0}米`,B.height=`${g.box3.height?.toFixed(2)||0}米`);const k=[];g&&(g.name&&(B.elementName=g.name),g.categoryName&&(B.categoryName=g.categoryName),g.familySymbolName&&(B.familySymbolName=g.familySymbolName),g.levelName&&(B.levelName=g.levelName));const P={};if(u.forEach(F=>{B[F]!==void 0&&(P[F]=B[F])}),k.push({name:"基础信息",params:P}),g){const F=Array.isArray(g)?g:Array.isArray(g?.parameters)?g.parameters:null;if(F){if(F.flat().forEach(H=>{if(H&&H.GroupName&&Array.isArray(H.Parameters)){const O={};H.Parameters.forEach(b=>{b.name&&(O[b.name]=b.value??"")}),Object.keys(O).length>0&&k.push({name:H.GroupName,params:O})}}),!Array.isArray(g)){const{parameters:H,...O}=g,b={};Object.keys(O).forEach(w=>{!u.includes(w)&&w!=="uniqueId"&&typeof O[w]!="object"&&(b[w]=O[w])}),Object.keys(b).length>0&&k.push({name:"其他属性",params:b})}}else{let L=!1;if(Object.keys(g).forEach(H=>{g[H]&&typeof g[H]=="object"&&!Array.isArray(g[H])&&(L=!0,k.push({name:H,params:g[H]}))}),!L){const H={};Object.keys(g).forEach(O=>{if(!u.includes(O)&&O!=="batchId"){const b=g[O];typeof b=="string"&&b.length>500?H[O]=b.substring(0,500)+"...":H[O]=b}}),Object.keys(H).length>0&&k.push({name:"属性",params:H})}}}C.push({id:x,title:`${B.modelName}${B.elementName?` - ${B.elementName}`:""}`,groups:k})}),o.value=C,C.length>0?r.value=[`${C[0].id}-基础信息`]:r.value=[]};let f=!1;const p=()=>{if(f)return;const m=s?.value;m&&m.selectionChange&&(m.selectionChange(h),f=!0)};return d.watch(()=>s?.value,()=>{p()},{deep:!0,immediate:!0}),d.onMounted(()=>{p()}),(m,y)=>(d.openBlock(),d.createBlock(Fe,{visible:l.value,title:"构件详情",width:350,align:"right","initial-position":{x:0,y:0},"full-height":n.fullHeight,onClose:a,"onUpdate:visible":y[1]||(y[1]=A=>l.value=A),class:"base-info-card"},{default:d.withCtx(()=>[d.createElementVNode("div",rE,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(o.value,A=>(d.openBlock(),d.createElementBlock("div",{key:A.id,class:"component-block"},[o.value.length>1?(d.openBlock(),d.createElementBlock("div",aE,d.toDisplayString(A.title),1)):d.createCommentVNode("",!0),d.createVNode(d.unref(Ae.Collapse),{activeKey:r.value,"onUpdate:activeKey":y[0]||(y[0]=C=>r.value=C),ghost:"","expand-icon-position":"end"},{default:d.withCtx(()=>[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(A.groups,C=>(d.openBlock(),d.createBlock(d.unref(Ae.CollapsePanel),{key:`${A.id}-${C.name}`,header:C.name},{default:d.withCtx(()=>[d.createVNode(d.unref(Ae.Descriptions),{size:"small",bordered:"",column:1,labelStyle:{width:"100px",background:"rgba(255,255,255,0.05)",color:"#aaa"},contentStyle:{color:"#fff"}},{default:d.withCtx(()=>[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(C.params,(E,x)=>(d.openBlock(),d.createBlock(d.unref(Ae.DescriptionsItem),{key:x,label:c(String(x))},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(E),1)]),_:2},1032,["label"]))),128))]),_:2},1024)]),_:2},1032,["header"]))),128))]),_:2},1032,["activeKey"])]))),128))])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-ee93ac19"]]);class oc{viewer;Cesium;pickHandler=null;bimEntityId="";mapEntityId="";constructor(e,t){this.viewer=e,this.Cesium=t}removeMarker(e){if(!this.viewer)return;const t=e==="BIM"?this.bimEntityId:this.mapEntityId;t&&(this.viewer.entities.removeById(t),e==="BIM"?this.bimEntityId="":this.mapEntityId="")}clearMarkers(){this.removeMarker("BIM"),this.removeMarker("MAP")}addMarker(e,t){if(!this.viewer||!this.Cesium)return;this.removeMarker(e);const i=`adjust-marker-${e}-${Date.now()}`;e==="BIM"?this.bimEntityId=i:this.mapEntityId=i,this.viewer.entities.add({id:i,position:this.Cesium.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),point:{pixelSize:10,color:e==="BIM"?this.Cesium.Color.RED:this.Cesium.Color.ORANGE,outlineColor:this.Cesium.Color.WHITE,outlineWidth:2,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:{text:`${e==="BIM"?"BIM":"地图"}标记点`,font:"14pt sans-serif",style:this.Cesium.LabelStyle.FILL_AND_OUTLINE,outlineWidth:2,verticalOrigin:this.Cesium.VerticalOrigin.BOTTOM,pixelOffset:new this.Cesium.Cartesian2(0,-10),fillColor:this.Cesium.Color.WHITE,outlineColor:this.Cesium.Color.BLACK,backgroundColor:new this.Cesium.Color(.1,.1,.1,.8),showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY}})}registerPickHandler(e){this.destroyPickHandler(),!(!this.Cesium||!this.viewer)&&(this.pickHandler=new this.Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas),this.pickHandler.setInputAction(t=>{let i;try{i=this.viewer.scene.pickPosition(t.position)}catch(s){console.warn("pickPosition failed:",s)}if(!i){const s=this.viewer.camera.getPickRay(t.position);i=this.viewer.scene.globe.pick(s,this.viewer.scene)}if(i||(i=this.viewer.camera.pickEllipsoid(t.position,this.viewer.scene.globe.ellipsoid)),i){const s=this.Cesium.Cartographic.fromCartesian(i),o=this.Cesium.Math.toDegrees(s.longitude),r=this.Cesium.Math.toDegrees(s.latitude),l=s.height;e({longitude:o,latitude:r,height:l})}},this.Cesium.ScreenSpaceEventType.LEFT_CLICK,this.Cesium.KeyboardEventModifier.SHIFT))}destroyPickHandler(){this.pickHandler&&(this.pickHandler.destroy(),this.pickHandler=null)}calculateOffset(e,t){return{dLon:t.longitude-e.longitude,dLat:t.latitude-e.latitude,dHeight:t.height-e.height}}}const lE={class:"adjust-panel"},cE={class:"control-panel"},dE={class:"form-item"},uE={class:"radio-group"},hE={class:"form-item"},fE={class:"radio-group"},pE={class:"form-item"},gE={class:"value"},mE={class:"param-row"},AE={class:"param-row"},yE={class:"param-row"},CE={class:"param-row"},EE={class:"param-row"},wE={class:"param-row"},bE={class:"param-row"},vE={class:"button-grid"},xE={key:1,class:"pick-mode-ui"},IE={class:"form-item",style:{display:"block","margin-bottom":"15px"}},BE={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},SE=["checked"],ME={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},TE={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},DE={class:"form-item",style:{display:"block","margin-bottom":"15px"}},kE={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},PE=["checked"],FE={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},RE={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},OE={class:"list-panel"},LE={class:"list-header"},NE={class:"col-check"},UE=["checked"],_E={class:"list-body"},QE={class:"col-check"},HE=["onUpdate:modelValue"],GE={class:"col-index"},YE=["title"],VE={class:"col-main"},WE=["checked","onChange"],Hn=Ue(d.defineComponent({__name:"LeitingPosition",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close","save"],setup(n,{expose:e,emit:t}){const i=n,s=t,o=d.computed({get:()=>i.open!==void 0?i.open:i.visible,set:N=>{s("update:visible",N),s("update:open",N)}}),r=d.inject("leitingMethods"),l=d.ref("BIM"),a=d.ref("param"),c=d.ref(""),u=d.ref([]),h=d.ref("BIM"),f=d.ref(null),p=d.ref(null),m=d.ref(null),y=()=>(!m.value&&r?.value?.getViewer&&r?.value?.getCesium&&(m.value=new oc(r.value.getViewer(),r.value.getCesium())),m.value),A=()=>{y()?.clearMarkers(),f.value=null,p.value=null},C=(N,D)=>{N==="BIM"?f.value=D:p.value=D,y()?.addMarker(N,D),fe.success(`${N==="BIM"?"BIM":"地图"}标记点已添加`)},E=()=>{y()?.registerPickHandler(N=>{C(h.value,N)})},x=()=>{y()?.destroyPickHandler()},M=()=>{if(!f.value||!p.value){fe.warning("请先选择BIM标记点和地图标记点");return}if(!c.value){fe.warning("请先选择主模型");return}const N=y();let D=0,Q=0,V=0;if(N){const{dLon:$,dLat:q,dHeight:ne}=N.calculateOffset(f.value,p.value);D=$,Q=q,V=ne}else D=p.value.longitude-f.value.longitude,Q=p.value.latitude-f.value.latitude,V=p.value.height-f.value.height;B.value.longitude+=D,B.value.latitude+=Q,B.value.height+=V,w(c.value,{longitude:B.value.longitude,latitude:B.value.latitude,height:B.value.height}),fe.success("位置已调整")};d.watch(()=>a.value,N=>{N==="pick"?E():x()}),e({addMarker:C,setModelType:N=>{(N==="BIM"||N==="OSGB")&&(l.value=N)}});const B=d.ref({longitude:0,latitude:0,lonlat:1e-6,heightDistance:1,rotation:30,totalRotation:0,height:0,X:0,Y:0,Z:0}),I=d.computed(()=>{const N=u.value.find(D=>D.modelId===c.value);return N?N.modelName:""}),g=d.computed(()=>P.value.length>0&&P.value.every(N=>N.selected)),k=()=>{o.value=!1,s("close")},P=d.computed(()=>u.value.filter(N=>N.type===l.value)),F=N=>{const D=N.target.checked;P.value.forEach(Q=>Q.selected=D)},L=()=>{if(!r?.value)return;const N=r.value,D=N.getMapTileset?N.getMapTileset():{},Q=[];if(Object.keys(D).forEach(V=>{const q=D[V].leiting||{};q.model&&Q.push({modelId:q.model.modelId,modelName:q.model.modelName,selected:!1,formData:q.model.formData||{},dbName:q.model.dbName,url:q.model.url,type:q.model.type||"BIM"})}),u.value=Q,Q.length>0){const V=N.getBIMmodelId?N.getBIMmodelId():"";V&&Q.find($=>$.modelId===V)?O(V):O(Q[0].modelId),Q.forEach($=>$.selected=!0)}},H=()=>{fe.info("拖动右下角标,可显示模型列表",void 0,2)},O=N=>{c.value=N;const D=u.value.find(Q=>Q.modelId===N);D&&D.formData&&Object.keys(B.value).forEach(Q=>{D.formData[Q]!==void 0&&(B.value[Q]=D.formData[Q])})},b=N=>r?.value?.getMapTileset?r.value.getMapTileset()[N]:null,w=(N,D)=>{const Q=b(N),V=r.value.getCesium();if(Q&&V){if(Q.leiting?.model){Q.leiting.model.formData={...Q.leiting.model.formData,...D};const $=u.value.find(q=>q.modelId===N);$&&($.formData=Q.leiting.model.formData)}dr({Cesium:V,tileset:Q})}},v=N=>{if(!c.value)return;const D=B.value[N];w(c.value,{[N]:D})},S=N=>{const D=P.value.filter(q=>q.selected);if(D.length===0){fe.warning("请先选择要调整的模型");return}const{lonlat:Q,heightDistance:V,rotation:$}=B.value;D.forEach(q=>{const ne={...q.formData};switch(N){case"north":ne.latitude+=Q;break;case"south":ne.latitude-=Q;break;case"east":ne.longitude+=Q;break;case"west":ne.longitude-=Q;break;case"up":ne.height+=V;break;case"down":ne.height-=V;break;case"rotateLeft":ne.totalRotation=(ne.totalRotation||0)-$;break;case"rotateRight":ne.totalRotation=(ne.totalRotation||0)+$;break}q.modelId===c.value&&Object.assign(B.value,ne),w(q.modelId,ne)})},R=()=>{if(!c.value){fe.warning("请先选择主模型");return}const N=b(c.value);if(!N||!r?.value?.getViewer)return;const D=r.value.getViewer(),Q=r.value.getCesium(),V=N.boundingSphere;D.camera.flyToBoundingSphere(V,{offset:new Q.HeadingPitchRange(0,Q.Math.toRadians(-90),V.radius*2),duration:1.5})},_=()=>{r?.value?.saveRegion?(r.value.saveRegion(u.value),s("save",d.unref(u))):(console.log("Save models:",u.value),fe.warning("未找到保存接口,数据已打印控制台"))};return d.watch(()=>i.visible,N=>{N?(L(),H(),a.value==="pick"&&E()):(x(),A())}),d.onMounted(()=>{i.visible&&(L(),H(),a.value==="pick"&&E())}),(N,D)=>(d.openBlock(),d.createBlock(Fe,{visible:o.value,title:"调整位置(调整前可选择正北俯视)",width:282,"full-height":n.fullHeight,"onUpdate:visible":D[25]||(D[25]=Q=>o.value=Q),onClose:k,onSave:_},{default:d.withCtx(()=>[d.createElementVNode("div",lE,[d.createElementVNode("div",cE,[d.createElementVNode("div",dE,[D[26]||(D[26]=d.createElementVNode("label",null,"模型类型:",-1)),d.createElementVNode("div",uE,[d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="BIM"}),onClick:D[0]||(D[0]=Q=>l.value="BIM")},"BIM模型",2),d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="OSGB"}),onClick:D[1]||(D[1]=Q=>l.value="OSGB")},"倾斜摄影",2)])]),d.createElementVNode("div",hE,[D[27]||(D[27]=d.createElementVNode("label",null,"调整操作:",-1)),d.createElementVNode("div",fE,[d.createElementVNode("span",{class:d.normalizeClass({active:a.value==="param"}),onClick:D[2]||(D[2]=Q=>a.value="param")},"参数模式",2),d.createElementVNode("span",{class:d.normalizeClass({active:a.value==="pick"}),onClick:D[3]||(D[3]=Q=>a.value="pick")},"地图点选",2)])]),d.createElementVNode("div",pE,[D[28]||(D[28]=d.createElementVNode("label",null,"当前主模型:",-1)),d.createElementVNode("span",gE,d.toDisplayString(I.value||"未选择"),1)]),D[42]||(D[42]=d.createElementVNode("div",{class:"separator"},null,-1)),a.value==="param"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[D[36]||(D[36]=d.createElementVNode("div",{class:"group-header"},"当前状态",-1)),d.createElementVNode("div",mE,[D[29]||(D[29]=d.createElementVNode("label",null,"经度(东西):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[4]||(D[4]=Q=>B.value.longitude=Q),onChange:D[5]||(D[5]=Q=>v("longitude")),step:"0.000001"},null,544),[[d.vModelText,B.value.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",AE,[D[30]||(D[30]=d.createElementVNode("label",null,"纬度(南北):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[6]||(D[6]=Q=>B.value.latitude=Q),onChange:D[7]||(D[7]=Q=>v("latitude")),step:"0.000001"},null,544),[[d.vModelText,B.value.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",yE,[D[31]||(D[31]=d.createElementVNode("label",null,"高度(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[8]||(D[8]=Q=>B.value.height=Q),onChange:D[9]||(D[9]=Q=>v("height")),step:"0.1"},null,544),[[d.vModelText,B.value.height,void 0,{number:!0}]])]),d.createElementVNode("div",CE,[D[32]||(D[32]=d.createElementVNode("label",null,"累计旋转(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[10]||(D[10]=Q=>B.value.totalRotation=Q),onChange:D[11]||(D[11]=Q=>v("totalRotation")),step:"1"},null,544),[[d.vModelText,B.value.totalRotation,void 0,{number:!0}]])]),D[37]||(D[37]=d.createElementVNode("div",{class:"separator"},null,-1)),D[38]||(D[38]=d.createElementVNode("div",{class:"group-header"},"调整步长",-1)),d.createElementVNode("div",EE,[D[33]||(D[33]=d.createElementVNode("label",null,"经纬步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[12]||(D[12]=Q=>B.value.lonlat=Q),step:"0.000001"},null,512),[[d.vModelText,B.value.lonlat,void 0,{number:!0}]])]),d.createElementVNode("div",wE,[D[34]||(D[34]=d.createElementVNode("label",null,"高度步长(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[13]||(D[13]=Q=>B.value.heightDistance=Q),step:"0.1"},null,512),[[d.vModelText,B.value.heightDistance,void 0,{number:!0}]])]),d.createElementVNode("div",bE,[D[35]||(D[35]=d.createElementVNode("label",null,"旋转步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":D[14]||(D[14]=Q=>B.value.rotation=Q),step:"1"},null,512),[[d.vModelText,B.value.rotation,void 0,{number:!0}]])]),d.createElementVNode("div",vE,[d.createElementVNode("button",{onClick:D[15]||(D[15]=Q=>S("rotateLeft"))},"左转"),d.createElementVNode("button",{onClick:D[16]||(D[16]=Q=>S("north"))},"北移"),d.createElementVNode("button",{onClick:D[17]||(D[17]=Q=>S("rotateRight"))},"右转"),d.createElementVNode("button",{onClick:D[18]||(D[18]=Q=>S("west"))},"西移"),d.createElementVNode("button",{onClick:D[19]||(D[19]=Q=>S("south"))},"南移"),d.createElementVNode("button",{onClick:D[20]||(D[20]=Q=>S("east"))},"东移"),d.createElementVNode("button",{onClick:D[21]||(D[21]=Q=>S("up"))},"上移"),d.createElementVNode("button",{onClick:D[22]||(D[22]=Q=>S("down"))},"下移"),d.createElementVNode("button",{onClick:R,class:"primary-btn"},"正北俯视"),d.createElementVNode("button",{onClick:_,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):a.value==="pick"?(d.openBlock(),d.createElementBlock("div",xE,[d.createElementVNode("div",IE,[d.createElementVNode("div",BE,[d.createElementVNode("div",{onClick:D[23]||(D[23]=Q=>h.value="BIM"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[d.createElementVNode("input",{type:"radio",checked:h.value==="BIM",style:{"margin-right":"5px"}},null,8,SE),D[39]||(D[39]=d.createElementVNode("span",{style:{"font-weight":"bold"}},"BIM标记点:",-1))]),f.value?(d.openBlock(),d.createElementBlock("div",ME,[d.createElementVNode("div",null,"经度:"+d.toDisplayString(f.value.longitude.toFixed(10)),1),d.createElementVNode("div",null,"纬度:"+d.toDisplayString(f.value.latitude.toFixed(10)),1)])):(d.openBlock(),d.createElementBlock("div",TE,"未选择"))])]),d.createElementVNode("div",DE,[d.createElementVNode("div",kE,[d.createElementVNode("div",{onClick:D[24]||(D[24]=Q=>h.value="MAP"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[d.createElementVNode("input",{type:"radio",checked:h.value==="MAP",style:{"margin-right":"5px"}},null,8,PE),D[40]||(D[40]=d.createElementVNode("span",{style:{"font-weight":"bold"}},"地图标记点:",-1))]),p.value?(d.openBlock(),d.createElementBlock("div",FE,[d.createElementVNode("div",null,"经度:"+d.toDisplayString(p.value.longitude.toFixed(10)),1),d.createElementVNode("div",null,"纬度:"+d.toDisplayString(p.value.latitude.toFixed(10)),1)])):(d.openBlock(),d.createElementBlock("div",RE,"未选择"))])]),d.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[d.createElementVNode("button",{onClick:M},"调整位置"),d.createElementVNode("button",{onClick:_},"保存")]),D[41]||(D[41]=d.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[d.createElementVNode("div",null,"操作指南:"),d.createElementVNode("div",null,"1. 勾选上方 BIM 或 地图 标记点选项。"),d.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),d.createElementVNode("div",null,"3. 采集两点后,点击“调整位置”进行校准。")],-1))])):d.createCommentVNode("",!0)]),d.createElementVNode("div",OE,[d.createElementVNode("div",LE,[d.createElementVNode("div",NE,[d.createElementVNode("input",{type:"checkbox",checked:g.value,onChange:F},null,40,UE)]),D[43]||(D[43]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),D[44]||(D[44]=d.createElementVNode("div",{class:"col-name"},"名称",-1)),D[45]||(D[45]=d.createElementVNode("div",{class:"col-main"},"主模型",-1))]),d.createElementVNode("div",_E,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(P.value,(Q,V)=>(d.openBlock(),d.createElementBlock("div",{key:Q.modelId,class:d.normalizeClass(["list-item",{active:Q.modelId===c.value}])},[d.createElementVNode("div",QE,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":$=>Q.selected=$},null,8,HE),[[d.vModelCheckbox,Q.selected]])]),d.createElementVNode("div",GE,d.toDisplayString(V+1),1),d.createElementVNode("div",{class:"col-name",title:Q.modelName},d.toDisplayString(Q.modelName),9,YE),d.createElementVNode("div",VE,[d.createElementVNode("input",{type:"radio",name:"mainModel",checked:Q.modelId===c.value,onChange:$=>O(Q.modelId)},null,40,WE)])],2))),128))])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-6cbc261f"]]);function Pi(){return Pi=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)({}).hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},Pi.apply(null,arguments)}const zE={locale:"zh_CN",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",yearFormat:"YYYY年",dayFormat:"D日",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH时mm分ss秒",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪"},jE={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},rc={lang:Pi({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},zE),timePickerLocale:Pi({},jE)};rc.lang.ok="确定";var Fi={exports:{}},$E=Fi.exports,ac;function lc(){return ac||(ac=1,(function(n,e){(function(t,i){n.exports=i()})($E,(function(){var t=1e3,i=6e4,s=36e5,o="millisecond",r="second",l="minute",a="hour",c="day",u="week",h="month",f="quarter",p="year",m="date",y="Invalid Date",A=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,C=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(O){var b=["th","st","nd","rd"],w=O%100;return"["+O+(b[(w-20)%10]||b[w]||b[0])+"]"}},x=function(O,b,w){var v=String(O);return!v||v.length>=b?O:""+Array(b+1-v.length).join(w)+O},M={s:x,z:function(O){var b=-O.utcOffset(),w=Math.abs(b),v=Math.floor(w/60),S=w%60;return(b<=0?"+":"-")+x(v,2,"0")+":"+x(S,2,"0")},m:function O(b,w){if(b.date()<w.date())return-O(w,b);var v=12*(w.year()-b.year())+(w.month()-b.month()),S=b.clone().add(v,h),R=w-S<0,_=b.clone().add(v+(R?-1:1),h);return+(-(v+(w-S)/(R?S-_:_-S))||0)},a:function(O){return O<0?Math.ceil(O)||0:Math.floor(O)},p:function(O){return{M:h,y:p,w:u,d:c,D:m,h:a,m:l,s:r,ms:o,Q:f}[O]||String(O||"").toLowerCase().replace(/s$/,"")},u:function(O){return O===void 0}},T="en",B={};B[T]=E;var I="$isDayjsObject",g=function(O){return O instanceof L||!(!O||!O[I])},k=function O(b,w,v){var S;if(!b)return T;if(typeof b=="string"){var R=b.toLowerCase();B[R]&&(S=R),w&&(B[R]=w,S=R);var _=b.split("-");if(!S&&_.length>1)return O(_[0])}else{var N=b.name;B[N]=b,S=N}return!v&&S&&(T=S),S||!v&&T},P=function(O,b){if(g(O))return O.clone();var w=typeof b=="object"?b:{};return w.date=O,w.args=arguments,new L(w)},F=M;F.l=k,F.i=g,F.w=function(O,b){return P(O,{locale:b.$L,utc:b.$u,x:b.$x,$offset:b.$offset})};var L=(function(){function O(w){this.$L=k(w.locale,null,!0),this.parse(w),this.$x=this.$x||w.x||{},this[I]=!0}var b=O.prototype;return b.parse=function(w){this.$d=(function(v){var S=v.date,R=v.utc;if(S===null)return new Date(NaN);if(F.u(S))return new Date;if(S instanceof Date)return new Date(S);if(typeof S=="string"&&!/Z$/i.test(S)){var _=S.match(A);if(_){var N=_[2]-1||0,D=(_[7]||"0").substring(0,3);return R?new Date(Date.UTC(_[1],N,_[3]||1,_[4]||0,_[5]||0,_[6]||0,D)):new Date(_[1],N,_[3]||1,_[4]||0,_[5]||0,_[6]||0,D)}}return new Date(S)})(w),this.init()},b.init=function(){var w=this.$d;this.$y=w.getFullYear(),this.$M=w.getMonth(),this.$D=w.getDate(),this.$W=w.getDay(),this.$H=w.getHours(),this.$m=w.getMinutes(),this.$s=w.getSeconds(),this.$ms=w.getMilliseconds()},b.$utils=function(){return F},b.isValid=function(){return this.$d.toString()!==y},b.isSame=function(w,v){var S=P(w);return this.startOf(v)<=S&&S<=this.endOf(v)},b.isAfter=function(w,v){return P(w)<this.startOf(v)},b.isBefore=function(w,v){return this.endOf(v)<P(w)},b.$g=function(w,v,S){return F.u(w)?this[v]:this.set(S,w)},b.unix=function(){return Math.floor(this.valueOf()/1e3)},b.valueOf=function(){return this.$d.getTime()},b.startOf=function(w,v){var S=this,R=!!F.u(v)||v,_=F.p(w),N=function(Y,j){var J=F.w(S.$u?Date.UTC(S.$y,j,Y):new Date(S.$y,j,Y),S);return R?J:J.endOf(c)},D=function(Y,j){return F.w(S.toDate()[Y].apply(S.toDate("s"),(R?[0,0,0,0]:[23,59,59,999]).slice(j)),S)},Q=this.$W,V=this.$M,$=this.$D,q="set"+(this.$u?"UTC":"");switch(_){case p:return R?N(1,0):N(31,11);case h:return R?N(1,V):N(0,V+1);case u:var ne=this.$locale().weekStart||0,se=(Q<ne?Q+7:Q)-ne;return N(R?$-se:$+(6-se),V);case c:case m:return D(q+"Hours",0);case a:return D(q+"Minutes",1);case l:return D(q+"Seconds",2);case r:return D(q+"Milliseconds",3);default:return this.clone()}},b.endOf=function(w){return this.startOf(w,!1)},b.$set=function(w,v){var S,R=F.p(w),_="set"+(this.$u?"UTC":""),N=(S={},S[c]=_+"Date",S[m]=_+"Date",S[h]=_+"Month",S[p]=_+"FullYear",S[a]=_+"Hours",S[l]=_+"Minutes",S[r]=_+"Seconds",S[o]=_+"Milliseconds",S)[R],D=R===c?this.$D+(v-this.$W):v;if(R===h||R===p){var Q=this.clone().set(m,1);Q.$d[N](D),Q.init(),this.$d=Q.set(m,Math.min(this.$D,Q.daysInMonth())).$d}else N&&this.$d[N](D);return this.init(),this},b.set=function(w,v){return this.clone().$set(w,v)},b.get=function(w){return this[F.p(w)]()},b.add=function(w,v){var S,R=this;w=Number(w);var _=F.p(v),N=function(V){var $=P(R);return F.w($.date($.date()+Math.round(V*w)),R)};if(_===h)return this.set(h,this.$M+w);if(_===p)return this.set(p,this.$y+w);if(_===c)return N(1);if(_===u)return N(7);var D=(S={},S[l]=i,S[a]=s,S[r]=t,S)[_]||1,Q=this.$d.getTime()+w*D;return F.w(Q,this)},b.subtract=function(w,v){return this.add(-1*w,v)},b.format=function(w){var v=this,S=this.$locale();if(!this.isValid())return S.invalidDate||y;var R=w||"YYYY-MM-DDTHH:mm:ssZ",_=F.z(this),N=this.$H,D=this.$m,Q=this.$M,V=S.weekdays,$=S.months,q=S.meridiem,ne=function(j,J,oe,le){return j&&(j[J]||j(v,R))||oe[J].slice(0,le)},se=function(j){return F.s(N%12||12,j,"0")},Y=q||function(j,J,oe){var le=j<12?"AM":"PM";return oe?le.toLowerCase():le};return R.replace(C,(function(j,J){return J||(function(oe){switch(oe){case"YY":return String(v.$y).slice(-2);case"YYYY":return F.s(v.$y,4,"0");case"M":return Q+1;case"MM":return F.s(Q+1,2,"0");case"MMM":return ne(S.monthsShort,Q,$,3);case"MMMM":return ne($,Q);case"D":return v.$D;case"DD":return F.s(v.$D,2,"0");case"d":return String(v.$W);case"dd":return ne(S.weekdaysMin,v.$W,V,2);case"ddd":return ne(S.weekdaysShort,v.$W,V,3);case"dddd":return V[v.$W];case"H":return String(N);case"HH":return F.s(N,2,"0");case"h":return se(1);case"hh":return se(2);case"a":return Y(N,D,!0);case"A":return Y(N,D,!1);case"m":return String(D);case"mm":return F.s(D,2,"0");case"s":return String(v.$s);case"ss":return F.s(v.$s,2,"0");case"SSS":return F.s(v.$ms,3,"0");case"Z":return _}return null})(j)||_.replace(":","")}))},b.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},b.diff=function(w,v,S){var R,_=this,N=F.p(v),D=P(w),Q=(D.utcOffset()-this.utcOffset())*i,V=this-D,$=function(){return F.m(_,D)};switch(N){case p:R=$()/12;break;case h:R=$();break;case f:R=$()/3;break;case u:R=(V-Q)/6048e5;break;case c:R=(V-Q)/864e5;break;case a:R=V/s;break;case l:R=V/i;break;case r:R=V/t;break;default:R=V}return S?R:F.a(R)},b.daysInMonth=function(){return this.endOf(h).$D},b.$locale=function(){return B[this.$L]},b.locale=function(w,v){if(!w)return this.$L;var S=this.clone(),R=k(w,v,!0);return R&&(S.$L=R),S},b.clone=function(){return F.w(this.$d,this)},b.toDate=function(){return new Date(this.valueOf())},b.toJSON=function(){return this.isValid()?this.toISOString():null},b.toISOString=function(){return this.$d.toISOString()},b.toString=function(){return this.$d.toUTCString()},O})(),H=L.prototype;return P.prototype=H,[["$ms",o],["$s",r],["$m",l],["$H",a],["$W",c],["$M",h],["$y",p],["$D",m]].forEach((function(O){H[O[1]]=function(b){return this.$g(b,O[0],O[1])}})),P.extend=function(O,b){return O.$i||(O(b,L,P),O.$i=!0),P},P.locale=k,P.isDayjs=g,P.unix=function(O){return P(1e3*O)},P.en=B[T],P.Ls=B,P.p={},P}))})(Fi)),Fi.exports}var KE=lc();const ze=Zt(KE);var Ri={exports:{}},XE=Ri.exports,cc;function qE(){return cc||(cc=1,(function(n,e){(function(t,i){n.exports=i(lc())})(XE,(function(t){function i(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var s=i(t),o={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(r,l){return l==="W"?r+"周":r+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(r,l){var a=100*r+l;return a<600?"凌晨":a<900?"早上":a<1100?"上午":a<1300?"中午":a<1800?"下午":"晚上"}};return s.default.locale(o,null,!0),o}))})(Ri)),Ri.exports}qE();var Oi={exports:{}},JE=Oi.exports,dc;function ZE(){return dc||(dc=1,(function(n,e){(function(t,i){n.exports=i()})(JE,(function(){return function(t,i,s){var o=i.prototype,r=function(h){return h&&(h.indexOf?h:h.s)},l=function(h,f,p,m,y){var A=h.name?h:h.$locale(),C=r(A[f]),E=r(A[p]),x=C||E.map((function(T){return T.slice(0,m)}));if(!y)return x;var M=A.weekStart;return x.map((function(T,B){return x[(B+(M||0))%7]}))},a=function(){return s.Ls[s.locale()]},c=function(h,f){return h.formats[f]||(function(p){return p.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(m,y,A){return y||A.slice(1)}))})(h.formats[f.toUpperCase()])},u=function(){var h=this;return{months:function(f){return f?f.format("MMMM"):l(h,"months")},monthsShort:function(f){return f?f.format("MMM"):l(h,"monthsShort","months",3)},firstDayOfWeek:function(){return h.$locale().weekStart||0},weekdays:function(f){return f?f.format("dddd"):l(h,"weekdays")},weekdaysMin:function(f){return f?f.format("dd"):l(h,"weekdaysMin","weekdays",2)},weekdaysShort:function(f){return f?f.format("ddd"):l(h,"weekdaysShort","weekdays",3)},longDateFormat:function(f){return c(h.$locale(),f)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};o.localeData=function(){return u.bind(this)()},s.localeData=function(){var h=a();return{firstDayOfWeek:function(){return h.weekStart||0},weekdays:function(){return s.weekdays()},weekdaysShort:function(){return s.weekdaysShort()},weekdaysMin:function(){return s.weekdaysMin()},months:function(){return s.months()},monthsShort:function(){return s.monthsShort()},longDateFormat:function(f){return c(h,f)},meridiem:h.meridiem,ordinal:h.ordinal}},s.months=function(){return l(a(),"months")},s.monthsShort=function(){return l(a(),"monthsShort","months",3)},s.weekdays=function(h){return l(a(),"weekdays",null,null,h)},s.weekdaysShort=function(h){return l(a(),"weekdaysShort","weekdays",3,h)},s.weekdaysMin=function(h){return l(a(),"weekdaysMin","weekdays",2,h)}}}))})(Oi)),Oi.exports}var ew=ZE();const tw=Zt(ew);var Li={exports:{}},nw=Li.exports,uc;function iw(){return uc||(uc=1,(function(n,e){(function(t,i){n.exports=i()})(nw,(function(){return function(t,i){i.prototype.weekday=function(s){var o=this.$locale().weekStart||0,r=this.$W,l=(r<o?r+7:r)-o;return this.$utils().u(s)?l:this.subtract(l,"day").add(s,"day")}}}))})(Li)),Li.exports}var sw=iw();const ow=Zt(sw);var Ni={exports:{}},rw=Ni.exports,hc;function aw(){return hc||(hc=1,(function(n,e){(function(t,i){n.exports=i()})(rw,(function(){var t="week",i="year";return function(s,o,r){var l=o.prototype;l.week=function(a){if(a===void 0&&(a=null),a!==null)return this.add(7*(a-this.week()),"day");var c=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var u=r(this).startOf(i).add(1,i).date(c),h=r(this).endOf(t);if(u.isBefore(h))return 1}var f=r(this).startOf(i).date(c).startOf(t).subtract(1,"millisecond"),p=this.diff(f,t,!0);return p<0?r(this).startOf("week").week():Math.ceil(p)},l.weeks=function(a){return a===void 0&&(a=null),this.week(a)}}}))})(Ni)),Ni.exports}var lw=aw();const cw=Zt(lw);var Ui={exports:{}},dw=Ui.exports,fc;function uw(){return fc||(fc=1,(function(n,e){(function(t,i){n.exports=i()})(dw,(function(){var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},i=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,s=/\d/,o=/\d\d/,r=/\d\d?/,l=/\d*[^-_:/,()\s\d]+/,a={},c=function(A){return(A=+A)+(A>68?1900:2e3)},u=function(A){return function(C){this[A]=+C}},h=[/[+-]\d\d:?(\d\d)?|Z/,function(A){(this.zone||(this.zone={})).offset=(function(C){if(!C||C==="Z")return 0;var E=C.match(/([+-]|\d\d)/g),x=60*E[1]+(+E[2]||0);return x===0?0:E[0]==="+"?-x:x})(A)}],f=function(A){var C=a[A];return C&&(C.indexOf?C:C.s.concat(C.f))},p=function(A,C){var E,x=a.meridiem;if(x){for(var M=1;M<=24;M+=1)if(A.indexOf(x(M,0,C))>-1){E=M>12;break}}else E=A===(C?"pm":"PM");return E},m={A:[l,function(A){this.afternoon=p(A,!1)}],a:[l,function(A){this.afternoon=p(A,!0)}],Q:[s,function(A){this.month=3*(A-1)+1}],S:[s,function(A){this.milliseconds=100*+A}],SS:[o,function(A){this.milliseconds=10*+A}],SSS:[/\d{3}/,function(A){this.milliseconds=+A}],s:[r,u("seconds")],ss:[r,u("seconds")],m:[r,u("minutes")],mm:[r,u("minutes")],H:[r,u("hours")],h:[r,u("hours")],HH:[r,u("hours")],hh:[r,u("hours")],D:[r,u("day")],DD:[o,u("day")],Do:[l,function(A){var C=a.ordinal,E=A.match(/\d+/);if(this.day=E[0],C)for(var x=1;x<=31;x+=1)C(x).replace(/\[|\]/g,"")===A&&(this.day=x)}],w:[r,u("week")],ww:[o,u("week")],M:[r,u("month")],MM:[o,u("month")],MMM:[l,function(A){var C=f("months"),E=(f("monthsShort")||C.map((function(x){return x.slice(0,3)}))).indexOf(A)+1;if(E<1)throw new Error;this.month=E%12||E}],MMMM:[l,function(A){var C=f("months").indexOf(A)+1;if(C<1)throw new Error;this.month=C%12||C}],Y:[/[+-]?\d+/,u("year")],YY:[o,function(A){this.year=c(A)}],YYYY:[/\d{4}/,u("year")],Z:h,ZZ:h};function y(A){var C,E;C=A,E=a&&a.formats;for(var x=(A=C.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(P,F,L){var H=L&&L.toUpperCase();return F||E[L]||t[L]||E[H].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(O,b,w){return b||w.slice(1)}))}))).match(i),M=x.length,T=0;T<M;T+=1){var B=x[T],I=m[B],g=I&&I[0],k=I&&I[1];x[T]=k?{regex:g,parser:k}:B.replace(/^\[|\]$/g,"")}return function(P){for(var F={},L=0,H=0;L<M;L+=1){var O=x[L];if(typeof O=="string")H+=O.length;else{var b=O.regex,w=O.parser,v=P.slice(H),S=b.exec(v)[0];w.call(F,S),P=P.replace(S,"")}}return(function(R){var _=R.afternoon;if(_!==void 0){var N=R.hours;_?N<12&&(R.hours+=12):N===12&&(R.hours=0),delete R.afternoon}})(F),F}}return function(A,C,E){E.p.customParseFormat=!0,A&&A.parseTwoDigitYear&&(c=A.parseTwoDigitYear);var x=C.prototype,M=x.parse;x.parse=function(T){var B=T.date,I=T.utc,g=T.args;this.$u=I;var k=g[1];if(typeof k=="string"){var P=g[2]===!0,F=g[3]===!0,L=P||F,H=g[2];F&&(H=g[2]),a=this.$locale(),!P&&H&&(a=E.Ls[H]),this.$d=(function(v,S,R,_){try{if(["x","X"].indexOf(S)>-1)return new Date((S==="X"?1e3:1)*v);var N=y(S)(v),D=N.year,Q=N.month,V=N.day,$=N.hours,q=N.minutes,ne=N.seconds,se=N.milliseconds,Y=N.zone,j=N.week,J=new Date,oe=V||(D||Q?1:J.getDate()),le=D||J.getFullYear(),ge=0;D&&!Q||(ge=Q>0?Q-1:J.getMonth());var we,me=$||0,Re=q||0,ct=ne||0,$e=se||0;return Y?new Date(Date.UTC(le,ge,oe,me,Re,ct,$e+60*Y.offset*1e3)):R?new Date(Date.UTC(le,ge,oe,me,Re,ct,$e)):(we=new Date(le,ge,oe,me,Re,ct,$e),j&&(we=_(we).week(j).toDate()),we)}catch{return new Date("")}})(B,k,I,E),this.init(),H&&H!==!0&&(this.$L=this.locale(H).$L),L&&B!=this.format(k)&&(this.$d=new Date("")),a={}}else if(k instanceof Array)for(var O=k.length,b=1;b<=O;b+=1){g[1]=k[b-1];var w=E.apply(this,g);if(w.isValid()){this.$d=w.$d,this.$L=w.$L,this.init();break}b===O&&(this.$d=new Date(""))}else M.call(this,T)}}}))})(Ui)),Ui.exports}var hw=uw();const fw=Zt(hw),pw={class:"setting-panel"},gw={class:"tabs-header"},mw={class:"tab-content"},Aw={key:0,class:"section"},yw={class:"setting-item"},Cw={class:"setting-item"},Ew={class:"setting-item"},ww={key:1,class:"section"},bw={class:"tabs-header",style:{"margin-bottom":"8px"}},vw={key:0},xw={class:"setting-item column"},Iw={class:"setting-item column"},Bw={class:"setting-item"},Sw={key:1},Mw={class:"setting-item column"},Tw={class:"setting-item column",style:{"margin-top":"12px","border-top":"1px solid rgba(255,255,255,0.1)","padding-top":"8px"}},Dw={class:"search-box"},kw={key:2,class:"section"},Pw={class:"setting-item"},Fw={key:0,class:"setting-item column"},Rw={class:"sub-label"},Ow={class:"setting-item"},Lw={class:"setting-item"},Nw={class:"setting-item column"},Uw={class:"setting-item column"},_w={class:"sub-label"},Qw={class:"setting-item column"},Hw={class:"sub-label"},Gw={class:"setting-item column"},Yw={class:"sub-label"},Vw={class:"setting-item column"},Ww={style:{display:"flex",gap:"8px","margin-bottom":"8px"}},zw=["onClick","title"],jw={style:{display:"flex",gap:"8px","align-items":"center"}},$w={key:3,class:"section"},Kw={class:"setting-item"},Xw={class:"setting-item column"},Gn=Ue(d.defineComponent({__name:"LeitingSetting",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean,default:!1},tiandituToken:{type:String,default:""},initialConfig:{type:Object,default:()=>({})}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){ze.locale("zh-cn"),ze.extend(tw),ze.extend(ow),ze.extend(cw),ze.extend(fw);const t=Ae.Switch,i=Ae.Radio.Group,s=Ae.Radio,o=Ae.Input,r=Ae.Slider,l=Ae.Select,a=Ae.Select.Option,c=Ae.DatePicker,u=n,h=e,f=d.inject("leitingMethods"),p=d.computed({get:()=>u.open!==void 0?u.open:u.visible,set:b=>{h("update:visible",b),h("update:open",b)}}),m=d.ref("GIS"),y=d.reactive({globe:!1,terrain:!1,depthTest:!1}),A=d.reactive({provider:"tianditu",tianditu:{token:"c25f14fb6bd4397cf8fe45144ff768d6",layerType:"img_w",showLabel:!1},arcgis:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"},baseMap:"tianditu"}),C=d.reactive({shadows:!1,shadowDarkness:.7,environmentMap:!1,ambientOcclusion:!1,time:ze("2025-06-22 10:00"),brightness:1.5,contrast:1,saturation:1,backgroundColor:"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)"}),E=d.reactive({collision:!1,habit:0}),x=b=>{b&&(b.globe!==void 0&&(y.globe=b.globe),b.terrain!==void 0&&(y.terrain=b.terrain),b.depthTest!==void 0&&(y.depthTest=b.depthTest),b.mapProvider!==void 0&&(A.provider=b.mapProvider),b.tiandituLayerType!==void 0&&(A.tianditu.layerType=b.tiandituLayerType),b.tiandituShowLabel!==void 0&&(A.tianditu.showLabel=b.tiandituShowLabel),b.arcgisUrl!==void 0&&(A.arcgis.url=b.arcgisUrl),b.shadows!==void 0&&(C.shadows=b.shadows),b.shadowDarkness!==void 0&&(C.shadowDarkness=b.shadowDarkness),b.environmentMap!==void 0&&(C.environmentMap=b.environmentMap),b.ambientOcclusion!==void 0&&(C.ambientOcclusion=b.ambientOcclusion),b.time!==void 0&&(typeof b.time=="number"?C.time=ze().startOf("day").add(b.time,"hour"):C.time=ze(b.time)),b.brightness!==void 0&&(C.brightness=b.brightness),b.contrast!==void 0&&(C.contrast=b.contrast),b.saturation!==void 0&&(C.saturation=b.saturation),b.backgroundColor!==void 0&&(C.backgroundColor=b.backgroundColor),b.collision!==void 0&&(E.collision=b.collision),b.mouseHabit!==void 0&&(E.habit=b.mouseHabit))};d.watch(()=>u.initialConfig,b=>{x(b)},{deep:!0,immediate:!0});const M=["linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)","linear-gradient(0deg, #0f2027 0%, #203a43 50%, #2c5364 100%)","linear-gradient(0deg, #cfd9df 0%, #e2ebf0 100%)"],T=[{label:"全球影像地图服务(墨卡托)",value:"img_w"},{label:"全球影像地图服务(经纬度)",value:"img_c"},{label:"全球矢量地图服务(墨卡托)",value:"vec_w"},{label:"全球矢量地图服务(经纬度)",value:"vec_c"},{label:"全球地形晕渲服务(墨卡托)",value:"ter_w"},{label:"全球地形晕渲服务(经纬度)",value:"ter_c"}],B=()=>{const b=A.provider,w={};b==="tianditu"?(w.token=A.tianditu.token,w.layerType=A.tianditu.layerType,w.showAnnotation=A.tianditu.showLabel):b==="arcgis"&&(w.url=A.arcgis.url),f.value?.changeBaseMap?.(b,w)};d.watch(()=>A.provider,B),d.watch(()=>A.tianditu.layerType,B),d.watch(()=>A.tianditu.showLabel,B),d.watch(()=>A.tianditu.token,us(B,1e3)),d.watch(()=>A.arcgis.url,us(B,1e3)),d.onMounted(()=>{u.tiandituToken&&(A.tianditu.token=u.tiandituToken)}),d.watch(()=>y.globe,b=>f.value?.setGlobeEnvironmentVisible?.(b)),d.watch(()=>y.terrain,b=>f.value?.setTerrainEnable?.(b)),d.watch(()=>y.depthTest,b=>f.value?.setDepthTestEnable?.(b)),d.watch(()=>f?.value,b=>{if(b){if(b.getConfigure=()=>({globe:y.globe,terrain:y.terrain,depthTest:y.depthTest,mapProvider:A.provider,tiandituLayerType:A.tianditu.layerType,tiandituShowLabel:A.tianditu.showLabel,arcgisUrl:A.arcgis.url,shadows:C.shadows,shadowDarkness:C.shadowDarkness,environmentMap:C.environmentMap,ambientOcclusion:C.ambientOcclusion,time:ze.isDayjs(C.time)?C.time.format("YYYY-MM-DD HH:mm"):C.time,brightness:C.brightness,contrast:C.contrast,saturation:C.saturation,backgroundColor:C.backgroundColor,collision:E.collision,mouseHabit:E.habit}),b.setConfigure=w=>{x(w)},b.setBackgroundColor&&C.backgroundColor&&b.setBackgroundColor(C.backgroundColor),b.setGlobeEnvironmentVisible&&b.setGlobeEnvironmentVisible(y.globe),b.setShadowsEnable&&b.setShadowsEnable(C.shadows),b.setShadowDarkness&&b.setShadowDarkness(C.shadowDarkness),b.setEnvironmentMapEnable&&b.setEnvironmentMapEnable(C.environmentMap),b.setAmbientOcclusion&&b.setAmbientOcclusion(C.ambientOcclusion),b.setTime){const w=ze.isDayjs(C.time)?C.time.toDate():new Date;b.setTime(w)}b.setModelBrightness&&b.setModelBrightness(C.brightness),b.setCollisionDetection&&b.setCollisionDetection(E.collision),b.setMouseHabit&&b.setMouseHabit(E.habit),b.changeBaseMap&&A.baseMap&&b.changeBaseMap(A.baseMap,{token:A.tianditu.token,layerType:A.tianditu.layerType,showAnnotation:A.tianditu.showLabel,url:A.arcgis.url})}},{immediate:!0});const I=d.computed({get:()=>{const b=C.backgroundColor;return/^#[0-9A-Fa-f]{6}$/.test(b)?b:"#ffffff"},set:b=>{C.backgroundColor=b}}),g=d.ref(""),k=d.ref(!1),P=d.ref([]);d.watch(()=>y.globe,b=>f.value?.setGlobeEnvironmentVisible?.(b)),d.watch(()=>y.terrain,b=>f.value?.setTerrainEnable?.(b)),d.watch(()=>A.baseMap,b=>{f.value?.changeBaseMap?.(b,{token:u.tiandituToken})}),d.watch(()=>C.shadows,b=>f.value?.setShadowsEnable?.(b)),d.watch(()=>C.shadowDarkness,b=>f.value?.setShadowDarkness?.(b)),d.watch(()=>C.environmentMap,b=>f.value?.setEnvironmentMapEnable?.(b)),d.watch(()=>C.ambientOcclusion,b=>f.value?.setAmbientOcclusion?.(b)),d.watch(()=>C.time,b=>{const w=ze.isDayjs(b)?b.toDate():new Date;f.value?.setTime?.(w)}),d.watch(()=>[C.brightness,C.contrast,C.saturation],([b,w,v])=>{const S=f.value;S?.setModelColorAdjustment?S.setModelColorAdjustment({brightness:b,contrast:w,saturation:v}):S?.setModelBrightness?.(b)}),d.watch(()=>C.backgroundColor,b=>{if(f.value?.setBackgroundColor)f.value.setBackgroundColor(b);else{const w=document.querySelector(".cesium-viewer");w&&(w.style.background=b)}}),d.watch(()=>E.collision,b=>f.value?.setCollisionDetection?.(b)),d.watch(()=>E.habit,b=>f.value?.setMouseHabit?.(b));const F=b=>{if(b?.pois&&Array.isArray(b.pois)&&b.pois.length>0){const w=b.pois[0],v=w.lonlat.split(/[, ]/).map(Number);if(v.length>=2&&!isNaN(v[0])&&!isNaN(v[1]))return{name:w.name,lon:v[0],lat:v[1],raw:w}}if(b?.area&&b.area.lonlat){const w=b.area,v=w.lonlat.split(/[, ]/).map(Number);if(v.length>=2&&!isNaN(v[0])&&!isNaN(v[1]))return{name:w.name,lon:v[0],lat:v[1],raw:w}}return null},H=us(async()=>{const b=(g.value||"").trim();if(!b)return;const w=u.tiandituToken||"c25f14fb6bd4397cf8fe45144ff768d6";k.value=!0,P.value=[];try{if(f.value?.searchLocation){const v=await f.value.searchLocation(b,w),S=F(v);S&&(P.value=[S],fe.success(`找到:${S.name||""}`),f.value.flyTo(S.lon,S.lat,5e3))}else{const S=`https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(JSON.stringify({keyWord:b,level:12,mapBound:"-180,-90,180,90",queryType:1,start:0,count:10}))}&type=query&tk=${encodeURIComponent(w)}`,R=await fetch(S);if(!R.ok)throw new Error(`HTTP ${R.status}`);const _=await R.json(),N=F(_);N&&(P.value=[N],fe.success(`找到:${N.name||""}`),f.value?.flyTo?.(N.lon,N.lat,5e3))}}catch(v){console.error("tianditu search error",v)}finally{k.value=!1}},800);d.watch(g,()=>{H()});const O=()=>{p.value=!1,h("close")};return d.onMounted(()=>{}),(b,w)=>(d.openBlock(),d.createBlock(Fe,{visible:p.value,title:"设置",width:320,"full-height":n.fullHeight,onClose:O,"onUpdate:visible":w[26]||(w[26]=v=>p.value=v)},{default:d.withCtx(()=>[d.createElementVNode("div",pw,[d.createElementVNode("div",gw,[d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="GIS"}]),onClick:w[0]||(w[0]=v=>m.value="GIS")},"GIS",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="MAP"}]),onClick:w[1]||(w[1]=v=>m.value="MAP")},"地图",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="RENDER"}]),onClick:w[2]||(w[2]=v=>m.value="RENDER")},"渲染",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="MOUSE"}]),onClick:w[3]||(w[3]=v=>m.value="MOUSE")},"鼠标",2)]),d.createElementVNode("div",mw,[m.value==="GIS"?(d.openBlock(),d.createElementBlock("div",Aw,[d.createElementVNode("div",yw,[w[27]||(w[27]=d.createElementVNode("span",null,"地球 (含大气/日月/星空)",-1)),d.createVNode(d.unref(t),{checked:y.globe,"onUpdate:checked":w[4]||(w[4]=v=>y.globe=v),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Cw,[w[28]||(w[28]=d.createElementVNode("span",null,"地形 (高程)",-1)),d.createVNode(d.unref(t),{checked:y.terrain,"onUpdate:checked":w[5]||(w[5]=v=>y.terrain=v),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Ew,[w[29]||(w[29]=d.createElementVNode("span",null,"地形遮挡",-1)),d.createVNode(d.unref(t),{checked:y.depthTest,"onUpdate:checked":w[6]||(w[6]=v=>y.depthTest=v),size:"small"},null,8,["checked"])])])):d.createCommentVNode("",!0),m.value==="MAP"?(d.openBlock(),d.createElementBlock("div",ww,[d.createElementVNode("div",bw,[d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:A.provider==="tianditu"}]),onClick:w[7]||(w[7]=v=>A.provider="tianditu")},"天地图",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:A.provider==="arcgis"}]),onClick:w[8]||(w[8]=v=>A.provider="arcgis")},"ArcGIS",2)]),A.provider==="tianditu"?(d.openBlock(),d.createElementBlock("div",vw,[d.createElementVNode("div",xw,[w[30]||(w[30]=d.createElementVNode("div",{class:"sub-label"},"Token",-1)),d.createVNode(d.unref(o),{value:A.tianditu.token,"onUpdate:value":w[9]||(w[9]=v=>A.tianditu.token=v),size:"small",placeholder:"输入天地图Token"},null,8,["value"])]),d.createElementVNode("div",Iw,[w[31]||(w[31]=d.createElementVNode("div",{class:"sub-label"},"地图风格",-1)),d.createVNode(d.unref(l),{value:A.tianditu.layerType,"onUpdate:value":w[10]||(w[10]=v=>A.tianditu.layerType=v),size:"small",style:{width:"100%"}},{default:d.withCtx(()=>[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(T,v=>d.createVNode(d.unref(a),{key:v.value,value:v.value},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(v.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"])]),d.createElementVNode("div",Bw,[w[32]||(w[32]=d.createElementVNode("span",null,"叠加注记",-1)),d.createVNode(d.unref(t),{checked:A.tianditu.showLabel,"onUpdate:checked":w[11]||(w[11]=v=>A.tianditu.showLabel=v),size:"small"},null,8,["checked"])])])):d.createCommentVNode("",!0),A.provider==="arcgis"?(d.openBlock(),d.createElementBlock("div",Sw,[d.createElementVNode("div",Mw,[w[33]||(w[33]=d.createElementVNode("div",{class:"sub-label"},"服务地址",-1)),d.createVNode(d.unref(o),{value:A.arcgis.url,"onUpdate:value":w[12]||(w[12]=v=>A.arcgis.url=v),size:"small",placeholder:"输入ArcGIS MapServer地址"},null,8,["value"])])])):d.createCommentVNode("",!0),d.createElementVNode("div",Tw,[w[34]||(w[34]=d.createElementVNode("div",{class:"sub-label"},"位置搜索 (天地图)",-1)),d.createElementVNode("div",Dw,[d.createVNode(d.unref(o),{value:g.value,"onUpdate:value":w[13]||(w[13]=v=>g.value=v),placeholder:"输入地名搜索",size:"small","allow-clear":""},null,8,["value"])])])])):d.createCommentVNode("",!0),m.value==="RENDER"?(d.openBlock(),d.createElementBlock("div",kw,[d.createElementVNode("div",Pw,[w[35]||(w[35]=d.createElementVNode("span",null,"阴影",-1)),d.createVNode(d.unref(t),{checked:C.shadows,"onUpdate:checked":w[14]||(w[14]=v=>C.shadows=v),size:"small"},null,8,["checked"])]),C.shadows?(d.openBlock(),d.createElementBlock("div",Fw,[d.createElementVNode("div",Rw,"阴影暗度 ("+d.toDisplayString(C.shadowDarkness.toFixed(2))+")",1),d.createVNode(d.unref(r),{value:C.shadowDarkness,"onUpdate:value":w[15]||(w[15]=v=>C.shadowDarkness=v),min:0,max:1,step:.05,size:"small"},null,8,["value"])])):d.createCommentVNode("",!0),d.createElementVNode("div",Ow,[w[36]||(w[36]=d.createElementVNode("span",null,"环境贴图 (HDR)",-1)),d.createVNode(d.unref(t),{checked:C.environmentMap,"onUpdate:checked":w[16]||(w[16]=v=>C.environmentMap=v),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Lw,[w[37]||(w[37]=d.createElementVNode("span",null,"环境光遮蔽 (AO)",-1)),d.createVNode(d.unref(t),{checked:C.ambientOcclusion,"onUpdate:checked":w[17]||(w[17]=v=>C.ambientOcclusion=v),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Nw,[w[38]||(w[38]=d.createElementVNode("div",{class:"sub-label"},"日期时间",-1)),d.createVNode(d.unref(c),{value:C.time,"onUpdate:value":w[18]||(w[18]=v=>C.time=v),"show-time":"",locale:d.unref(rc),format:"YYYY-MM-DD HH:mm",size:"small",style:{width:"100%"}},null,8,["value","locale"])]),d.createElementVNode("div",Uw,[d.createElementVNode("div",_w,"模型亮度 ("+d.toDisplayString(C.brightness.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:C.brightness,"onUpdate:value":w[19]||(w[19]=v=>C.brightness=v),min:0,max:5,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",Qw,[d.createElementVNode("div",Hw,"模型对比度 ("+d.toDisplayString(C.contrast.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:C.contrast,"onUpdate:value":w[20]||(w[20]=v=>C.contrast=v),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",Gw,[d.createElementVNode("div",Yw,"模型饱和度 ("+d.toDisplayString(C.saturation.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:C.saturation,"onUpdate:value":w[21]||(w[21]=v=>C.saturation=v),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",Vw,[w[39]||(w[39]=d.createElementVNode("div",{class:"sub-label"},"背景颜色",-1)),d.createElementVNode("div",Ww,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(M,(v,S)=>d.createElementVNode("div",{key:S,style:d.normalizeStyle({background:v,width:"32px",height:"24px",borderRadius:"2px",cursor:"pointer",border:"1px solid #d9d9d9",flexShrink:0}),onClick:R=>C.backgroundColor=v,title:"预设 "+(S+1)},null,12,zw)),64))]),d.createElementVNode("div",jw,[d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":w[22]||(w[22]=v=>I.value=v),style:{width:"40px",height:"24px",padding:"0",border:"1px solid #d9d9d9"}},null,512),[[d.vModelText,I.value]]),d.createVNode(d.unref(o),{value:C.backgroundColor,"onUpdate:value":w[23]||(w[23]=v=>C.backgroundColor=v),size:"small",style:{flex:"1"},placeholder:"CSS 颜色值"},null,8,["value"])])])])):d.createCommentVNode("",!0),m.value==="MOUSE"?(d.openBlock(),d.createElementBlock("div",$w,[d.createElementVNode("div",Kw,[w[40]||(w[40]=d.createElementVNode("span",null,"碰撞检测",-1)),d.createVNode(d.unref(t),{checked:E.collision,"onUpdate:checked":w[24]||(w[24]=v=>E.collision=v),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Xw,[w[43]||(w[43]=d.createElementVNode("div",{class:"sub-label"},"操作习惯",-1)),d.createVNode(d.unref(i),{value:E.habit,"onUpdate:value":w[25]||(w[25]=v=>E.habit=v),size:"small"},{default:d.withCtx(()=>[d.createVNode(d.unref(s),{value:0},{default:d.withCtx(()=>[...w[41]||(w[41]=[d.createTextVNode("默认 (中键旋转)",-1)])]),_:1}),d.createVNode(d.unref(s),{value:1},{default:d.withCtx(()=>[...w[42]||(w[42]=[d.createTextVNode("习惯1 (左键旋转)",-1)])]),_:1})]),_:1},8,["value"])])])):d.createCommentVNode("",!0)])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-a768b286"]]),qw={class:"cad-layer-panel"},Jw={class:"layer-list-container"},Zw={class:"list-header"},eb={class:"col-check"},tb=["checked"],nb={class:"list-body"},ib={class:"col-check"},sb=["checked","onChange"],ob={class:"col-index"},rb=["title"],ab={class:"col-color"},lb=["value"],cb={key:0,class:"empty-text"},db=Ue(d.defineComponent({__name:"LeitingCadLayer",props:{visible:{type:Boolean,default:!1},currentModelId:{type:String,default:""}},emits:["update:visible","handleCloseCardByCadCard"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods",d.ref({})),o=d.ref(""),r=d.ref([]),l=()=>{s.value&&s.value.getDxfModels&&(r.value=s.value.getDxfModels().map(E=>({modelId:E.modelId,modelName:E.modelName}))||[])},a=d.computed(()=>r.value.map(E=>({value:E.modelId,label:E.modelName}))),c=d.ref([]),u=d.ref([]),h=d.computed(()=>c.value.length>0&&u.value.length===c.value.length),f=({modelId:E})=>{if(c.value=[],u.value=[],s.value&&s.value.getDxfLayers){const x=s.value.getDxfLayers({modelId:E});x&&Object.keys(x).forEach((M,T)=>{x[M].length&&(c.value.push({index:T+1,layerName:M,layerColor:x[M][0].color||"#ffffff",key:M}),u.value.push(M))})}},p=E=>{o.value=E,f({modelId:E})},m=E=>{E.target.checked?u.value=c.value.map(M=>M.key):u.value=[],A()},y=(E,x)=>{x.target.checked?u.value.includes(E)||u.value.push(E):u.value=u.value.filter(T=>T!==E),A()},A=()=>{if(s.value&&s.value.showDxfLayer&&(s.value.showDxfLayer({modelId:o.value,show:!0,layers:u.value}),s.value.getDxfLayers)){const E=s.value.getDxfLayers({modelId:o.value});if(E){const x=Object.keys(E).filter(M=>!u.value.includes(M));s.value.showDxfLayer({modelId:o.value,show:!1,layers:x})}}},C=()=>{i("update:visible",!1),i("handleCloseCardByCadCard")};return d.watch(()=>t.visible,E=>{E&&(l(),t.currentModelId?(o.value=t.currentModelId,f({modelId:t.currentModelId})):a.value.length>0&&(o.value=a.value[0]?.value,f({modelId:o.value})))}),d.watch(()=>t.currentModelId,E=>{E&&t.visible&&(o.value=E,f({modelId:E}))}),(E,x)=>(d.openBlock(),d.createBlock(Fe,{visible:n.visible,title:"CAD图层","onUpdate:visible":x[3]||(x[3]=M=>E.$emit("update:visible",M)),onClose:C,width:360,align:"right","initial-position":{x:0,y:60}},{"header-extra":d.withCtx(()=>[d.createElementVNode("div",{class:"header-select-container",onMousedown:x[2]||(x[2]=d.withModifiers(()=>{},["stop"]))},[x[4]||(x[4]=d.createElementVNode("span",{class:"header-label"},"图纸:",-1)),d.createVNode(d.unref(Ae.Select),{value:o.value,"onUpdate:value":x[0]||(x[0]=M=>o.value=M),options:a.value,onChange:x[1]||(x[1]=M=>p(M)),placeholder:"选择模型",style:{width:"140px"},bordered:!1,class:"custom-header-select",popupClassName:"leiting-select-dropdown",size:"small"},null,8,["value","options"])],32)]),default:d.withCtx(()=>[d.createElementVNode("div",qw,[d.createElementVNode("div",Jw,[d.createElementVNode("div",Zw,[d.createElementVNode("div",eb,[d.createElementVNode("input",{type:"checkbox",checked:h.value,onChange:m},null,40,tb)]),x[5]||(x[5]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),x[6]||(x[6]=d.createElementVNode("div",{class:"col-name"},"图层名称",-1)),x[7]||(x[7]=d.createElementVNode("div",{class:"col-color"},"颜色",-1))]),d.createElementVNode("div",nb,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(c.value,M=>(d.openBlock(),d.createElementBlock("div",{key:M.key,class:"list-item"},[d.createElementVNode("div",ib,[d.createElementVNode("input",{type:"checkbox",checked:u.value.includes(M.key),onChange:T=>y(M.key,T)},null,40,sb)]),d.createElementVNode("div",ob,d.toDisplayString(M.index),1),d.createElementVNode("div",{class:"col-name",title:M.layerName},d.toDisplayString(M.layerName),9,rb),d.createElementVNode("div",ab,[d.createElementVNode("input",{type:"color",value:M.layerColor,disabled:""},null,8,lb)])]))),128)),c.value.length===0?(d.openBlock(),d.createElementBlock("div",cb,"暂无数据")):d.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-a4db4977"]]),ub={class:"adjust-panel"},hb={class:"control-panel"},fb={class:"form-item"},pb={class:"radio-group"},gb={class:"form-item"},mb=["title"],Ab={class:"param-row"},yb=["step"],Cb={class:"param-row"},Eb=["step"],wb={class:"param-row"},bb=["step"],vb={class:"param-row"},xb=["step"],Ib={class:"param-row"},Bb=["step"],Sb={class:"param-row"},Mb=["step"],Tb={class:"param-row"},Db=["step"],kb={class:"button-grid"},Pb={key:1,class:"pick-mode-ui"},Fb=["onClick"],Rb=["checked"],Ob={style:{"font-size":"12px",color:"#aaa","padding-left":"10px"}},Lb={class:"param-row"},Nb={style:{width:"40px"}},Ub=["onUpdate:modelValue"],_b={class:"param-row"},Qb={style:{width:"40px"}},Hb=["onUpdate:modelValue"],Gb={class:"param-row"},Yb={style:{width:"40px"}},Vb=["onUpdate:modelValue"],Wb={class:"list-panel"},zb={class:"list-header"},jb={class:"col-check"},$b=["checked"],Kb={class:"list-body"},Xb={class:"col-check"},qb=["onUpdate:modelValue"],Jb={class:"col-index"},Zb=["title"],ev={class:"col-main"},tv=["checked","onChange"],nv={key:0,style:{padding:"10px","text-align":"center",color:"#999"}},iv=Ue(d.defineComponent({__name:"LeitingCadPosition",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","handleSavingByCadCard","clearBimPointList","save"],setup(n,{expose:e,emit:t}){const i=n,s=t,o=d.inject("leitingMethods"),r=d.ref([]),l=d.ref(""),a=d.computed(()=>r.value.length>0&&r.value.every(w=>w.selected)),c=d.ref("param"),u=d.ref("bimPoint1"),h=d.ref(null),f=d.ref("bimPoint1"),p=d.reactive({bimPoint1:{longitude:void 0,latitude:void 0,type:"CAD标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程",height:void 0},bimPoint2:{longitude:void 0,latitude:void 0,type:"地图标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程",height:void 0}}),m=d.ref(1e-6),y=d.reactive({modelId:"",longitude:0,latitude:0,distance:1e-6,rotation:1,totalRotation:0,heightDistance:1,height:0,lonlat:1e-6,modelOptions:[],selectPoint:{longitude:0,latitude:0,height:0},selectedMode:!1,X:0,Y:0,Z:0}),A=d.computed(()=>{const w=r.value.find(v=>v.modelId===l.value);return w?w.modelName:""}),C=()=>{s("update:visible",!1)},E=()=>(!h.value&&o?.value?.getViewer&&o?.value?.getCesium&&(h.value=new oc(o.value.getViewer(),o.value.getCesium())),h.value),x=()=>{E()?.clearMarkers(),p.bimPoint1.longitude=void 0,p.bimPoint1.latitude=void 0,p.bimPoint1.height=void 0,p.bimPoint2.longitude=void 0,p.bimPoint2.latitude=void 0,p.bimPoint2.height=void 0},M=w=>{const v=u.value,S=p[v];if(S){S.longitude=w.longitude,S.latitude=w.latitude,S.height=w.height;const R=v==="bimPoint1"?"BIM":"MAP";E()?.addMarker(R,w),fe.success(`${S.type}已添加`)}},T=()=>{E()?.registerPickHandler(w=>{M(w)})},B=()=>{E()?.destroyPickHandler()},I=w=>{c.value=w,w!=="pick"&&s("clearBimPointList")};d.watch(()=>c.value,w=>{w==="pick"?T():B()}),d.onUnmounted(()=>{B()});const g=()=>{if(!o?.value?.getDxfModels)return;const w=o.value.getDxfModels();if(Array.isArray(w)?r.value=w.map(v=>({modelId:v.modelId,modelName:v.modelName,formData:v.formData||{},selected:!1,tileset:v})):r.value=[],r.value.length>0){const v=o.value.getCadModelId?o.value.getCadModelId():"";v&&r.value.find(S=>S.modelId===v)?k(v):k(r.value[0].modelId),r.value.forEach(S=>S.selected=!0)}},k=w=>{l.value=w;const v=r.value.find(S=>S.modelId===w);v&&v.formData&&Object.keys(y).forEach(S=>{v.formData[S]!==void 0&&(y[S]=v.formData[S])})},P=(w,v)=>{if(!o?.value?.adjustingModelByCad)return;const S=r.value.find(R=>R.modelId===w);S&&S.tileset&&(S.formData={...S.formData,...v},S.tileset.formData=S.formData,o.value.adjustingModelByCad({...S.formData,tileset:S.tileset}))},F=w=>{if(!l.value)return;const v=y[w];P(l.value,{[w]:v})},L=w=>{const v=r.value.filter(N=>N.selected);if(v.length===0){fe.warning("请先选择要调整的模型");return}const{distance:S,heightDistance:R,rotation:_}=y;v.forEach(N=>{const D={...N.formData};switch(w){case"north":D.latitude+=S;break;case"south":D.latitude-=S;break;case"east":D.longitude+=S;break;case"west":D.longitude-=S;break;case"up":D.height+=R;break;case"down":D.height-=R;break;case"rotateLeft":D.totalRotation=(D.totalRotation||0)-_;break;case"rotateRight":D.totalRotation=(D.totalRotation||0)+_;break}N.modelId===l.value&&Object.assign(y,D),P(N.modelId,D)})},H=w=>{const v=w.target.checked;r.value.forEach(S=>S.selected=v)},O=()=>{s("handleSavingByCadCard",r.value),s("save",r.value)},b=()=>{const w=p.bimPoint1,v=p.bimPoint2;if(w.longitude===void 0||v.longitude===void 0){fe.warning("请先完成点选操作");return}const S=r.value.filter(Q=>Q.selected);if(S.length===0){fe.warning("请先选择要调整的模型");return}let R=0,_=0,N=0;const D=E();if(D){const{dLon:Q,dLat:V,dHeight:$}=D.calculateOffset(w,v);R=Q,_=V,N=$}else R=v.longitude-w.longitude,_=v.latitude-w.latitude,N=v.height-w.height;S.forEach(Q=>{const V={...Q.formData};V.longitude+=R,V.latitude+=_,V.height+=N,Q.modelId===l.value&&Object.assign(y,V),P(Q.modelId,V)}),fe.success("位置已调整")};return d.watch(()=>i.visible,w=>{w?g():(B(),x())}),d.onMounted(()=>{i.visible&&g()}),e({setBIMPointsList:({longitude:w,latitude:v,height:S})=>{p[f.value].longitude=w,p[f.value].latitude=v,p[f.value].height=S},addGltfOr3dTilesModelList:w=>{console.warn("addGltfOr3dTilesModelList is deprecated, use internal loading")}}),(w,v)=>(d.openBlock(),d.createBlock(Fe,{visible:i.visible,title:"Cad校准",width:282,height:600,"onUpdate:visible":v[21]||(v[21]=S=>s("update:visible",S)),onClose:C},{default:d.withCtx(()=>[d.createElementVNode("div",ub,[d.createElementVNode("div",hb,[d.createElementVNode("div",fb,[v[22]||(v[22]=d.createElementVNode("label",null,"调整操作:",-1)),d.createElementVNode("div",pb,[d.createElementVNode("span",{class:d.normalizeClass({active:c.value==="param"}),onClick:v[0]||(v[0]=S=>I("param"))},"参数模式",2),d.createElementVNode("span",{class:d.normalizeClass({active:c.value==="pick"}),onClick:v[1]||(v[1]=S=>I("pick"))},"地图点选",2)])]),d.createElementVNode("div",gb,[v[23]||(v[23]=d.createElementVNode("label",null,"当前主模型:",-1)),d.createElementVNode("span",{class:"value",title:A.value},d.toDisplayString(A.value||"未选择"),9,mb)]),v[35]||(v[35]=d.createElementVNode("div",{class:"separator"},null,-1)),c.value==="param"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[v[31]||(v[31]=d.createElementVNode("div",{class:"group-header"},"当前状态",-1)),d.createElementVNode("div",Ab,[v[24]||(v[24]=d.createElementVNode("label",null,"经度(东西):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[2]||(v[2]=S=>y.longitude=S),onChange:v[3]||(v[3]=S=>F("longitude")),step:m.value},null,40,yb),[[d.vModelText,y.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",Cb,[v[25]||(v[25]=d.createElementVNode("label",null,"纬度(南北):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[4]||(v[4]=S=>y.latitude=S),onChange:v[5]||(v[5]=S=>F("latitude")),step:m.value},null,40,Eb),[[d.vModelText,y.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",wb,[v[26]||(v[26]=d.createElementVNode("label",null,"高度(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[6]||(v[6]=S=>y.height=S),onChange:v[7]||(v[7]=S=>F("height")),step:m.value},null,40,bb),[[d.vModelText,y.height,void 0,{number:!0}]])]),d.createElementVNode("div",vb,[v[27]||(v[27]=d.createElementVNode("label",null,"累计旋转(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[8]||(v[8]=S=>y.totalRotation=S),onChange:v[9]||(v[9]=S=>F("totalRotation")),step:m.value},null,40,xb),[[d.vModelText,y.totalRotation,void 0,{number:!0}]])]),v[32]||(v[32]=d.createElementVNode("div",{class:"separator"},null,-1)),v[33]||(v[33]=d.createElementVNode("div",{class:"group-header"},"调整步长",-1)),d.createElementVNode("div",Ib,[v[28]||(v[28]=d.createElementVNode("label",null,"经纬步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[10]||(v[10]=S=>y.distance=S),step:m.value},null,8,Bb),[[d.vModelText,y.distance,void 0,{number:!0}]])]),d.createElementVNode("div",Sb,[v[29]||(v[29]=d.createElementVNode("label",null,"高度步长(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[11]||(v[11]=S=>y.heightDistance=S),step:m.value},null,8,Mb),[[d.vModelText,y.heightDistance,void 0,{number:!0}]])]),d.createElementVNode("div",Tb,[v[30]||(v[30]=d.createElementVNode("label",null,"旋转步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":v[12]||(v[12]=S=>y.rotation=S),step:m.value},null,8,Db),[[d.vModelText,y.rotation,void 0,{number:!0}]])]),d.createElementVNode("div",kb,[d.createElementVNode("button",{onClick:v[13]||(v[13]=S=>L("rotateLeft"))},"左转"),d.createElementVNode("button",{onClick:v[14]||(v[14]=S=>L("north"))},"北移"),d.createElementVNode("button",{onClick:v[15]||(v[15]=S=>L("rotateRight"))},"右转"),d.createElementVNode("button",{onClick:v[16]||(v[16]=S=>L("west"))},"西移"),d.createElementVNode("button",{onClick:v[17]||(v[17]=S=>L("south"))},"南移"),d.createElementVNode("button",{onClick:v[18]||(v[18]=S=>L("east"))},"东移"),d.createElementVNode("button",{onClick:v[19]||(v[19]=S=>L("up"))},"上移"),d.createElementVNode("button",{onClick:v[20]||(v[20]=S=>L("down"))},"下移"),d.createElementVNode("button",{onClick:O,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):(d.openBlock(),d.createElementBlock("div",Pb,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(p,(S,R)=>(d.openBlock(),d.createElementBlock("div",{key:R,class:"form-item",style:{display:"block","margin-bottom":"15px"}},[d.createElementVNode("div",{style:{"font-weight":"bold","margin-bottom":"5px",cursor:"pointer",display:"flex","align-items":"center"},onClick:_=>u.value=R},[d.createElementVNode("input",{type:"radio",checked:u.value===R,style:{"margin-right":"5px"}},null,8,Rb),d.createTextVNode(" "+d.toDisplayString(S.type)+": ",1)],8,Fb),d.createElementVNode("div",Ob,[d.createElementVNode("div",Lb,[d.createElementVNode("label",Nb,d.toDisplayString(S.longitudeText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":_=>S.longitude=_,readonly:"",style:{width:"100px"}},null,8,Ub),[[d.vModelText,S.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",_b,[d.createElementVNode("label",Qb,d.toDisplayString(S.latitudeText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":_=>S.latitude=_,readonly:"",style:{width:"100px"}},null,8,Hb),[[d.vModelText,S.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",Gb,[d.createElementVNode("label",Yb,d.toDisplayString(S.heightText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":_=>S.height=_,readonly:"",style:{width:"100px"}},null,8,Vb),[[d.vModelText,S.height,void 0,{number:!0}]])])])]))),128)),d.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[d.createElementVNode("button",{onClick:b,class:"primary-btn"},"应用校准"),d.createElementVNode("button",{onClick:O},"保存")]),v[34]||(v[34]=d.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[d.createElementVNode("div",null,"操作指南:"),d.createElementVNode("div",null,"1. 勾选上方 CAD 或 地图 标记点选项。"),d.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),d.createElementVNode("div",null,"3. 采集两点后,点击“应用校准”进行校准。")],-1))]))]),d.createElementVNode("div",Wb,[d.createElementVNode("div",zb,[d.createElementVNode("div",jb,[d.createElementVNode("input",{type:"checkbox",checked:a.value,onChange:H},null,40,$b)]),v[36]||(v[36]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),v[37]||(v[37]=d.createElementVNode("div",{class:"col-name"},"名称",-1)),v[38]||(v[38]=d.createElementVNode("div",{class:"col-main"},"主模型",-1))]),d.createElementVNode("div",Kb,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(r.value,(S,R)=>(d.openBlock(),d.createElementBlock("div",{key:S.modelId,class:d.normalizeClass(["list-item",{active:S.modelId===l.value}])},[d.createElementVNode("div",Xb,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":_=>S.selected=_},null,8,qb),[[d.vModelCheckbox,S.selected]])]),d.createElementVNode("div",Jb,d.toDisplayString(R+1),1),d.createElementVNode("div",{class:"col-name",title:S.modelName},d.toDisplayString(S.modelName),9,Zb),d.createElementVNode("div",ev,[d.createElementVNode("input",{type:"radio",name:"mainModel",checked:S.modelId===l.value,onChange:_=>k(S.modelId)},null,40,tv)])],2))),128)),r.value.length===0?(d.openBlock(),d.createElementBlock("div",nv,"暂无数据")):d.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-e8abd49d"]]),sv={class:"annotation-content"},ov={class:"annotation-tools"},rv={class:"annotation-controls"},av={class:"control-group",title:"颜色"},lv={class:"tool-item color-tool"},cv={class:"control-group line-width-container",title:"线宽"},dv=["onClick"],uv={class:"option-label"},hv=Ue(d.defineComponent({__name:"LeitingAnnotationCard",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods"),o=d.ref(""),r=d.ref("#ff0000"),l=d.ref(1),a=d.ref(!1),c=d.ref(null),u=d.ref(null),h=d.ref({top:"0px",left:"0px"}),f=[{value:6,label:"粗"},{value:3,label:"中"},{value:1,label:"细"}],p=()=>s?.value?.getAnnotationInstance?s.value.getAnnotationInstance():null,m=()=>{i("update:visible",!1)},y=I=>{o.value=I;const g=p();if(g)switch(I){case"freehandLine":g.startFreehandLine();break;case"arrow":g.startArrow();break;case"straightLine":g.startStraightLine();break;case"rectangle":g.startRectangle();break;case"ellipse":g.startEllipse();break}},A=()=>{const I=p();I&&(I.setCurrentColor(r.value),I.changeColor(r.value))},C=()=>{if(!a.value&&c.value){const I=c.value.getBoundingClientRect();h.value={top:`${I.top}px`,left:`${I.right+8}px`}}a.value=!a.value},E=I=>{l.value=I,a.value=!1;const g=p();g&&(g.setCurrentWidth(I),g.changeWidth(I))},x=()=>{const I=p();I&&I.deleteSelectedEntity()},M=()=>{const I=p();I&&I.clearAll()},T=()=>{if(s?.value?.saveAnnotations){s.value.saveAnnotations();return}const I=p();I&&I.saveAnnotations()},B=I=>{const g=I.target,k=c.value&&c.value.contains(g),P=u.value&&u.value.contains(g);!k&&!P&&(a.value=!1)};return d.onMounted(()=>{document.addEventListener("click",B)}),d.onUnmounted(()=>{document.removeEventListener("click",B)}),(I,g)=>(d.openBlock(),d.createBlock(Fe,{visible:t.visible,title:"标注",width:70,"min-width":70,height:480,"onUpdate:visible":g[6]||(g[6]=k=>i("update:visible",k)),onClose:m},{default:d.withCtx(()=>[d.createElementVNode("div",sv,[d.createElementVNode("div",ov,[d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="freehandLine"}]),onClick:g[0]||(g[0]=k=>y("freehandLine")),title:"手绘线"},[...g[7]||(g[7]=[d.createElementVNode("div",{class:"tool-icon"},"✏️",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="arrow"}]),onClick:g[1]||(g[1]=k=>y("arrow")),title:"箭头"},[...g[8]||(g[8]=[d.createElementVNode("div",{class:"tool-icon"},"↗️",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="straightLine"}]),onClick:g[2]||(g[2]=k=>y("straightLine")),title:"直线"},[...g[9]||(g[9]=[d.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="rectangle"}]),onClick:g[3]||(g[3]=k=>y("rectangle")),title:"矩形"},[...g[10]||(g[10]=[d.createElementVNode("div",{class:"tool-icon"},"▭",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="ellipse"}]),onClick:g[4]||(g[4]=k=>y("ellipse")),title:"椭圆"},[...g[11]||(g[11]=[d.createElementVNode("div",{class:"tool-icon"},"⭕",-1)])],2)]),g[13]||(g[13]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",rv,[d.createElementVNode("div",av,[d.createElementVNode("div",lv,[d.createElementVNode("div",{class:"color-swatch",style:d.normalizeStyle({backgroundColor:r.value})},null,4),d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":g[5]||(g[5]=k=>r.value=k),onChange:A,class:"color-input-overlay"},null,544),[[d.vModelText,r.value]])])]),d.createElementVNode("div",cv,[d.createElementVNode("div",{ref_key:"lineWidthBtnRef",ref:c,class:"tool-item",onClick:d.withModifiers(C,["stop"])},[d.createElementVNode("div",{class:"current-width-preview",style:d.normalizeStyle({height:l.value+"px",backgroundColor:"#fff"})},null,4)],512),(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[a.value?(d.openBlock(),d.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:u,class:"line-width-dropdown",style:d.normalizeStyle(h.value)},[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(f,k=>d.createElementVNode("div",{key:k.value,class:d.normalizeClass(["line-width-option",{selected:l.value===k.value}]),onClick:d.withModifiers(P=>E(k.value),["stop"])},[d.createElementVNode("span",uv,d.toDisplayString(k.label),1),d.createElementVNode("div",{class:"line-preview",style:d.normalizeStyle({height:k.value+"px",backgroundColor:l.value===k.value?"#1890ff":"#ddd"})},null,4)],10,dv)),64))],4)):d.createCommentVNode("",!0)]))]),g[12]||(g[12]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",{class:"action-buttons"},[d.createElementVNode("button",{class:"control-btn",onClick:x,title:"删除选中"}," 🗑️ "),d.createElementVNode("button",{class:"control-btn",onClick:M,title:"清空"}," ❌ "),d.createElementVNode("button",{class:"control-btn",onClick:T,title:"保存"}," 💾 ")])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-3cfc8415"]]),fv={class:"measure-content"},pv={class:"measure-tools"},gv={key:0,class:"measure-results"},mv={class:"result-row"},Av={class:"result-value"},yv={class:"result-row"},Cv={class:"result-value"},Ev={class:"result-row"},wv={class:"result-value"},bv={class:"result-row"},vv={class:"result-value"},xv={key:1,class:"result-row"},Iv={class:"result-value"},Bv={key:2,class:"result-row"},Sv={class:"result-value"},Mv={class:"measure-controls"},Tv={class:"control-group",title:"单位"},Dv={class:"unit-display"},kv=["onClick"],Pv=Ue(d.defineComponent({__name:"LeitingMeasurement",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","close"],setup(n,{emit:e}){const t=n,i=e,s=d.inject("leitingMethods",d.ref({})),o=d.ref(null),r=d.ref(null),l=d.ref("m"),a=d.ref(!1),c=d.ref(null),u=d.ref(!1),h=d.ref({}),f=d.ref(null),p=[{label:"米 (m)",value:"m"},{label:"厘米 (cm)",value:"cm"},{label:"毫米 (mm)",value:"mm"}],m=I=>{const g=l.value;return g==="mm"?`${(I*1e3).toFixed(0)}mm`:g==="cm"?`${(I*100).toFixed(1)}cm`:`${I.toFixed(2)}m`},y=I=>I>1e6?`${(I/1e6).toFixed(2)} km²`:`${I.toFixed(2)} m²`,A=()=>{if(!o.value&&s.value?.getViewer){const I=s.value.getViewer(),g=s.value.getCesium();I&&g&&(o.value=new tc({viewer:I,cesium:g}),o.value.setUnit(l.value),o.value.setSnapping(a.value),o.value.onMeasure=k=>{c.value=k})}},C=I=>{o.value||A(),r.value===I?(r.value=null,o.value?.stop()):(r.value=I,o.value?.start(I))},E=I=>{l.value=I,u.value=!1},x=()=>{o.value&&(o.value.clearAll(),r.value=null,o.value.stop())},M=()=>{i("update:visible",!1)},T=I=>{if(u.value){u.value=!1;return}const k=I.currentTarget.getBoundingClientRect();h.value={position:"fixed",top:`${k.top}px`,left:`${k.right+5}px`,zIndex:3e3},u.value=!0},B=I=>{u.value&&f.value&&!f.value.contains(I.target)&&(u.value=!1)};return d.onMounted(()=>{document.addEventListener("click",B),t.visible&&d.nextTick(()=>A())}),d.onUnmounted(()=>{document.removeEventListener("click",B),o.value&&o.value.destroy()}),d.watch(()=>t.visible,I=>{I?d.nextTick(()=>A()):o.value&&(o.value.stop(),r.value=null)}),d.watch(s,I=>{I&&I.getViewer&&!o.value&&t.visible&&A()}),d.watch(l,I=>{o.value&&o.value.setUnit(I)}),(I,g)=>(d.openBlock(),d.createBlock(Fe,{visible:t.visible,title:"量算",width:70,"min-width":70,height:480,"onUpdate:visible":g[3]||(g[3]=k=>i("update:visible",k)),onClose:M},{default:d.withCtx(()=>[d.createElementVNode("div",fv,[d.createElementVNode("div",pv,[d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="distance"}]),onClick:g[0]||(g[0]=k=>C("distance")),title:"距离测量"},[...g[4]||(g[4]=[d.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="angle"}]),onClick:g[1]||(g[1]=k=>C("angle")),title:"角度测量"},[...g[5]||(g[5]=[d.createElementVNode("div",{class:"tool-icon"},"📐",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="area"}]),onClick:g[2]||(g[2]=k=>C("area")),title:"面积测量"},[...g[6]||(g[6]=[d.createElementVNode("div",{class:"tool-icon"},"🔳",-1)])],2)]),g[15]||(g[15]=d.createElementVNode("div",{class:"separator"},null,-1)),c.value?(d.openBlock(),d.createElementBlock("div",gv,[c.value.type==="distance"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[d.createElementVNode("div",mv,[g[7]||(g[7]=d.createElementVNode("span",{class:"result-label"},"总长:",-1)),d.createElementVNode("span",Av,d.toDisplayString(m(c.value.dist)),1)]),d.createElementVNode("div",yv,[g[8]||(g[8]=d.createElementVNode("span",{class:"result-label",style:{color:"#ff4d4f"}},"ΔX:",-1)),d.createElementVNode("span",Cv,d.toDisplayString(m(c.value.dx)),1)]),d.createElementVNode("div",Ev,[g[9]||(g[9]=d.createElementVNode("span",{class:"result-label",style:{color:"#52c41a"}},"ΔY:",-1)),d.createElementVNode("span",wv,d.toDisplayString(m(c.value.dy)),1)]),d.createElementVNode("div",bv,[g[10]||(g[10]=d.createElementVNode("span",{class:"result-label",style:{color:"#1890ff"}},"ΔZ:",-1)),d.createElementVNode("span",vv,d.toDisplayString(m(c.value.dz)),1)])],64)):d.createCommentVNode("",!0),c.value.type==="angle"?(d.openBlock(),d.createElementBlock("div",xv,[g[11]||(g[11]=d.createElementVNode("span",{class:"result-label"},"角度:",-1)),d.createElementVNode("span",Iv,d.toDisplayString(c.value.angle.toFixed(1))+"°",1)])):d.createCommentVNode("",!0),c.value.type==="area"?(d.openBlock(),d.createElementBlock("div",Bv,[g[12]||(g[12]=d.createElementVNode("span",{class:"result-label"},"面积:",-1)),d.createElementVNode("span",Sv,d.toDisplayString(y(c.value.area)),1)])):d.createCommentVNode("",!0)])):d.createCommentVNode("",!0),d.createElementVNode("div",Mv,[d.createElementVNode("div",Tv,[d.createElementVNode("div",{class:"tool-item",onClick:d.withModifiers(T,["stop"])},[d.createElementVNode("div",Dv,d.toDisplayString(l.value),1)]),(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[u.value?(d.openBlock(),d.createElementBlock("div",{key:0,ref_key:"unitDropdownRef",ref:f,class:"unit-dropdown",style:d.normalizeStyle(h.value)},[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(p,k=>d.createElementVNode("div",{key:k.value,class:d.normalizeClass(["unit-option",{selected:l.value===k.value}]),onClick:d.withModifiers(P=>E(k.value),["stop"])},d.toDisplayString(k.label),11,kv)),64))],4)):d.createCommentVNode("",!0)]))]),g[14]||(g[14]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",{class:"action-buttons"},[d.createElementVNode("div",{class:"tool-item control-btn",onClick:x,title:"清空"},[...g[13]||(g[13]=[d.createElementVNode("div",{class:"tool-icon"},"🗑️",-1)])])])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-b766acb4"]]);function Fv(){const n=d.ref(!1),e=d.reactive({x:0,y:0}),t=d.ref([]),i=d.ref(null);return{visible:n,position:e,items:t,contextData:i,show:(a,c,u)=>{a instanceof MouseEvent?(a.preventDefault(),e.x=a.clientX,e.y=a.clientY):(e.x=a.x,e.y=a.y),t.value=c,i.value=u,n.value=!0},hide:()=>{n.value=!1},addItem:a=>{t.value.push(a)},removeItem:a=>{t.value=t.value.filter(c=>c.id!==a)}}}const Rv=["onClick"],Ov={class:"menu-label"},Lv={key:0,class:"menu-arrow"},Nv=Ue(d.defineComponent({__name:"LeitingContextMenu",props:{visible:{type:Boolean},position:{},items:{}},emits:["update:visible","action"],setup(n,{emit:e}){const t=n,i=e,s=r=>{r.disabled||(r.action&&r.action(),i("action",r),i("update:visible",!1))},o=()=>{t.visible&&i("update:visible",!1)};return d.onMounted(()=>{document.addEventListener("click",o),document.addEventListener("contextmenu",r=>{r.target.closest(".leiting-context-menu")||o()})}),d.onUnmounted(()=>{document.removeEventListener("click",o)}),(r,l)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{class:"leiting-context-menu",style:d.normalizeStyle({left:n.position.x+"px",top:n.position.y+"px"}),onContextmenu:l[0]||(l[0]=d.withModifiers(()=>{},["prevent"]))},[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(n.items,a=>(d.openBlock(),d.createElementBlock("div",{key:a.id,class:d.normalizeClass(["menu-item",{"menu-divided":a.divided,"menu-disabled":a.disabled}]),onClick:c=>s(a)},[d.createElementVNode("span",Ov,d.toDisplayString(a.label),1),a.children?(d.openBlock(),d.createElementBlock("span",Lv,"▶")):d.createCommentVNode("",!0)],10,Rv))),128))],36)),[[d.vShow,n.visible]])}}),[["__scopeId","data-v-f288753b"]]),Uv={class:"leiting-ui-overlay"},_i=Ue(d.defineComponent({__name:"LeitingBIM",props:{accessToken:{},cesiumUrl:{},cesiumCssUrl:{},methods:{},viewerOptions:{},treeProps:{},showTree:{type:Boolean,default:!0},showMenu:{type:Boolean,default:!1},playerUrl:{default:"https://leiting.chenxisoft.com/resource/person/person.glb"},playerModelName:{default:"Person"},playerModelId:{default:"player_111"},playerScale:{default:.0032},tiandituToken:{default:"c25f14fb6bd4397cf8fe45144ff768d6"},globe:{type:Boolean,default:void 0},terrain:{type:Boolean,default:void 0},depthTest:{type:Boolean,default:void 0},mapProvider:{},tiandituLayerType:{},tiandituShowLabel:{type:Boolean,default:void 0},arcgisUrl:{},shadows:{type:Boolean,default:void 0},environmentMap:{type:Boolean,default:void 0},ambientOcclusion:{type:Boolean,default:void 0},time:{},brightness:{},backgroundColor:{},collision:{type:Boolean,default:void 0},mouseHabit:{},mode:{default:"3d"},mountAll3Dtiles:{},mountAllCad:{},saveRegion:{},saveCadRegion:{},saveCadCalibration:{},selectionChange:{},searchComponent:{}},emits:["register","init","ready"],setup(n,{emit:e}){const t=d.ref(),i=d.getCurrentInstance(),s=d.ref(!1),o=d.ref(""),r=d.ref({}),l=d.ref("3d"),a=n,c={title:"构件树",treeData:[]},u=d.ref(!1),h=d.ref(!1),f=d.ref(!1),p=d.ref(!1),m=d.ref(!1),y=d.ref(!1),A=d.ref(!1),C=d.ref(!1),E=d.ref(!1),x=d.ref(!1),{visible:M,position:T,items:B,show:I,hide:g}=Fv(),k=d.ref([]),P=Y=>{k.value.push(Y)},F=Y=>{k.value=k.value.filter(j=>j.id!==Y)},L=d.ref([]),H=d.ref(""),O=d.ref(null),b=d.ref([]),w=d.reactive({tree:!1,section:!1,roam:!1,info:!1,adjustModel:!1,setting:!1,cadLayer:!1,cadPosition:!1,annotation:!1}),v=(Y,j)=>{Y==="componentTree"&&(Y="tree"),Y==="componentInfo"&&(Y="info"),Y in w&&(w[Y]=j)},S=d.shallowRef({});d.provide("leitingMethods",S);const R=d.ref(a.showMenu),_=d.ref([]);d.watch(()=>a.showMenu,Y=>{R.value=Y},{immediate:!0}),d.watch(()=>a.mode,Y=>{Y&&S.value?.set2d&&S.value.set2d(Y==="2d")});const N=d.ref("dark");d.provide("leiting-theme",N);const D=d.ref([]),Q=d.computed(()=>{const Y=[];return u.value&&(Y.push("tree"),Y.push("componentTree")),h.value&&Y.push("section"),f.value&&Y.push("roam"),p.value&&(Y.push("info"),Y.push("componentInfo")),m.value&&Y.push("adjust"),y.value&&Y.push("setting"),A.value&&Y.push("cadLayer"),C.value&&Y.push("cadPosition"),E.value&&Y.push("annotation"),x.value&&(Y.push("measure"),Y.push("measurement")),Y.push(...D.value),Y}),V=d.ref(null),$=(Y,j)=>{Y==="componentTree"||Y==="tree"?u.value=j:Y==="section"?h.value=j:Y==="roam"?f.value=j:Y==="componentInfo"||Y==="info"?p.value=j:Y==="homeView"?S.value?.is2dMode?.()?S.value?.flyToTopView?.({}):S.value?.flyToTileset?.({}):Y==="adjustModel"?(m.value=j,j&&V.value&&V.value.setModelType("BIM")):Y==="osgbAdjust"?(m.value=j,j&&V.value&&V.value.setModelType("OSGB")):Y==="setting"?y.value=j:Y==="cadLayer"?A.value=j:Y==="cadPosition"?C.value=j:Y==="annotation"?E.value=j:Y==="measurement"?x.value=j:j?D.value.includes(Y)||D.value.push(Y):D.value=D.value.filter(J=>J!==Y)},q=()=>{S.value&&(S.value.getDxfModels&&(L.value=S.value.getDxfModels()||[]),S.value.getCadModelId&&(H.value=S.value.getCadModelId()||""))};d.watch(A,Y=>{Y&&q()}),d.watch(C,Y=>{Y&&(q(),O.value&&L.value.length&&O.value.addGltfOr3dTilesModelList(L.value))});const ne=e,se=Y=>{S.value&&S.value.saveCadCalibration&&S.value.saveCadCalibration(Y),S.value&&S.value.saveCadRegion&&S.value.saveCadRegion(Y)};return d.onMounted(async()=>{if(t.value)try{const Y={...xt,cesiumUrl:a.cesiumUrl||xt.cesiumUrl,cesiumCssUrl:a.cesiumCssUrl||xt.cesiumCssUrl,accessToken:a.accessToken||ts()||xt.accessToken};await es(Y);const j=a.accessToken||ts()||xt.accessToken;j&&(Cesium.Ion.defaultAccessToken=j),s.value=!0;const J=(le={},ge)=>{if(t.value){const{showMenu:we,showTree:me,globe:Re,terrain:ct,depthTest:$e,mapProvider:bt,tiandituLayerType:it,tiandituShowLabel:ln,arcgisUrl:Nt,shadows:Ut,environmentMap:Ki,ambientOcclusion:Ke,time:Oe,brightness:st,backgroundColor:dt,collision:_t,mouseHabit:Qt,mode:vt,...Ie}=le||{},To=a.showMenu!==void 0?a.showMenu:we!==void 0?we:!0;R.value=To;const De=(ee,ke,hn)=>ee!==void 0?ee:ke!==void 0?ke:hn,cn=De(a.globe,Re,!1),dn=De(a.terrain,ct,!1),$n=De(a.depthTest,$e,!1),Kn=De(a.mapProvider,bt,"tianditu"),Xn=De(a.tiandituLayerType,it,"img_w"),Xi=De(a.tiandituShowLabel,ln,!1),qc=De(a.arcgisUrl,Nt,"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"),Jc=De(a.shadows,Ut,!1),Zc=De(a.environmentMap,Ki,!1),ed=De(a.ambientOcclusion,Ke,!1),td=De(a.time,Oe,void 0),nd=De(a.brightness,st,1),qi=a.mode||vt||"3d";console.log("LeitingBIM Mode:",qi,"Props:",a.mode,"Options:",vt),l.value=qi;const _I=qi==="2d"?"#000000":"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)",id=De(a.backgroundColor,dt,_I),sd=De(a.collision,_t,!1),od=De(a.mouseHabit,Qt,0);r.value={globe:cn,terrain:dn,depthTest:$n,mapProvider:Kn,tiandituLayerType:Xn,tiandituShowLabel:Xi,arcgisUrl:qc,shadows:Jc,environmentMap:Zc,ambientOcclusion:ed,time:td,brightness:nd,backgroundColor:id,collision:sd,mouseHabit:od};const qn=P0({container:t.value,appContext:i?.appContext,methods:{...S.value,handleMenuAction:$,setCardFullHeight:v,onLoadingStatus:ee=>{ee?fe.loading(ee,"",t.value):fe.close()},...Ie,tilesLoad3dTiles:ee=>{const ke=ee.leiting?.tree,hn=ee.leiting?.model?.modelId;ke&&(Array.isArray(ke)?ke:[ke]).forEach(Gt=>{Gt&&!b.value.find(ad=>ad.id===Gt.id)&&(Gt.modelId=hn,b.value=[...b.value,Gt])});const{brightness:Do,contrast:ko,saturation:ut}=qn.methods.getConfigure();qn.methods.setModelColorAdjustment({brightness:Do,contrast:ko,saturation:ut}),Ie.tilesLoad3dTiles?.(ee)},mountAll3Dtiles:ee=>{a.mountAll3Dtiles&&a.mountAll3Dtiles(ee),Ie.mountAll3Dtiles?.(ee)},mountAllCad:ee=>{if(qn.methods.setModelBrightness){const ke=a.brightness!==void 0?a.brightness:r.value.brightness;ke!==void 0&&qn.methods.setModelBrightness(ke)}a.mountAllCad&&a.mountAllCad(ee),Ie.mountAllCad?.(ee)},saveRegion:ee=>{a.saveRegion&&a.saveRegion(ee),Ie.saveRegion?.(ee)},saveCadRegion:ee=>{a.saveCadRegion&&a.saveCadRegion(ee),Ie.saveCadRegion?.(ee)},saveCadCalibration:ee=>{a.saveCadCalibration&&a.saveCadCalibration(ee),Ie.saveCadCalibration?.(ee)},selectionChange:ee=>{a.selectionChange&&a.selectionChange(ee),Ie.selectionChange?.(ee)},onSearchComponent:ee=>{a.searchComponent&&a.searchComponent(ee),Ie.searchComponent?.(ee)}},viewerOptions:a.viewerOptions,options:{...Ie,mode:qi,playerUrl:a.playerUrl,playerModelName:a.playerModelName,playerModelId:a.playerModelId,playerScale:a.playerScale,globe:cn,terrain:dn,depthTest:$n,mapProvider:Kn,tiandituLayerType:Xn,tiandituShowLabel:Xi,tiandituToken:a.tiandituToken,arcgisUrl:qc,shadows:Jc,environmentMap:Zc,ambientOcclusion:ed,time:td,brightness:nd,backgroundColor:id,collision:sd,mouseHabit:od},callbacks:{onLoading:ee=>ee?fe.loading(ee,"",t.value):fe.close(),onSuccess:ee=>fe.success(ee,"",void 0,t.value),onError:ee=>fe.error(ee,"",void 0,t.value)}}),{Cesium:Ht,viewer:un,methods:Ji,menuEvents:Jn}=qn,ve=Ji;Jn.on("showMenu",ee=>{R.value=ee}),Jn.on("insertMenu",ee=>{_.value=ee}),Jn.on("setMenuActive",(ee,ke)=>{$(ee,ke)}),S.value=ve,ge&&(ge.value=ve),Jn.on("setMode",ee=>{l.value=ee}),Jn.on("deleteAllModels",()=>{b.value=[]}),new Ht.ScreenSpaceEventHandler(un.scene.canvas).setInputAction(ee=>{if(g(),l.value==="2d")return;const ke=un.scene.pick(ee.position),hn=un.container.getBoundingClientRect(),Do=hn.left+ee.position.x,ko=hn.top+ee.position.y,ut=[];if(Ht.defined(ke)&&ke instanceof Ht.Cesium3DTileFeature){const Po=ve.baseCompt.getFeatureId(ke),Gt=Sn(ke.tileset);ve.baseCompt.hasSelectedFeaturesMap[Gt]?.some(Zn=>Zn.batchId===Po&&Zn.rank===0)||(ve.baseCompt.clearSelection(),ve.baseCompt.toggleMultiSelect(Gt,Po,ve.baseCompt.selectedColor)),ut.push({id:"details",label:"构件详情",action:()=>{p.value=!0}}),ut.push({id:"hide",label:"隐藏选中构件",action:()=>{const ei=ve.baseCompt.getSelected().map(ht=>({elementId:ht.elementId,modelId:ht.modelId,show:!1}));ve.baseCompt.setComponentVisibility(ei)}}),ut.push({id:"translucent",label:"半透明选中构件",action:()=>{const ei=ve.baseCompt.getSelected().map(ht=>({elementId:ht.elementId,modelId:ht.modelId,rgba:{...ht.rgba,a:.3}}));ve.baseCompt.setSelectColorUserModelCpt(ei,{rank:0})}}),ut.push({id:"isolate",label:"隔离选中构件",divided:!0,action:()=>{ve.baseCompt.setAllComponentsVisibility(!1);const ei=ve.baseCompt.getSelected().map(ht=>({elementId:ht.elementId,modelId:ht.modelId,show:!0}));ve.baseCompt.setComponentVisibility(ei)}})}ut.push({id:"showAll",label:"显示所有",action:()=>{ve.baseCompt.setAllComponentsVisibility(!0),ve.baseCompt.clearSelection()}}),ut.push(...k.value),I({x:Do,y:ko},ut)},Ht.ScreenSpaceEventType.RIGHT_CLICK),ve.insertContextMenu=P,ve.deleteContextMenu=F,ve.hideContextMenu=g;const rd=le?.onLoaded||le?.onloaded;rd&&rd({Cesium:Ht,viewer:un,methods:Ji}),ne("init",{Cesium:Ht,viewer:un,methods:Ji}),ne("ready",{Cesium:Ht,viewer:un,methods:Ji})}};let oe=!1;ne("register",(le,ge)=>{oe=!0,J(le,ge)}),oe||setTimeout(()=>{S.value.getViewer||J()},0)}catch(Y){o.value="Failed to load Cesium: "+(Y.message||Y),console.error(Y)}}),(Y,j)=>(d.openBlock(),d.createElementBlock("div",{class:d.normalizeClass(["leiting-bim-container",[`theme-${N.value}`]]),onContextmenu:j[11]||(j[11]=d.withModifiers(()=>{},["prevent","stop"]))},[!s.value&&!o.value?(d.openBlock(),d.createBlock(d.unref(Ae.Spin),{key:0,class:"loading",size:"large",tip:"加载基础组件中..."})):d.createCommentVNode("",!0),o.value?(d.openBlock(),d.createBlock(d.unref(Ae.Alert),{key:1,class:"error",type:"error",message:o.value,"show-icon":""},null,8,["message"])):d.createCommentVNode("",!0),d.createElementVNode("div",{ref_key:"containerRef",ref:t,class:"cesium-viewer"},[d.createElementVNode("div",Uv,[d.createVNode(Qn,{visible:p.value,"full-height":w.info,"onUpdate:visible":j[0]||(j[0]=J=>p.value=J)},null,8,["visible","full-height"]),d.createVNode(Hn,{ref_key:"LeitingPositionRef",ref:V,visible:m.value,"full-height":w.adjustModel,"onUpdate:visible":j[1]||(j[1]=J=>m.value=J)},null,8,["visible","full-height"]),d.createVNode(Gn,{visible:y.value,"full-height":w.setting,"tianditu-token":a.tiandituToken,"initial-config":r.value,"onUpdate:visible":j[2]||(j[2]=J=>y.value=J)},null,8,["visible","full-height","tianditu-token","initial-config"]),n.showTree!==!1?(d.openBlock(),d.createBlock(ki,d.mergeProps({key:0},{...c,...n.treeProps},{visible:u.value,"full-height":w.tree,"tree-data":b.value.length>0?b.value:n.treeProps?.treeData||[],"onUpdate:visible":j[3]||(j[3]=J=>{u.value=J})}),null,16,["visible","full-height","tree-data"])):d.createCommentVNode("",!0),d.createVNode(hv,{visible:E.value,"onUpdate:visible":j[4]||(j[4]=J=>E.value=J)},null,8,["visible"]),d.createVNode(Pv,{visible:x.value,"onUpdate:visible":j[5]||(j[5]=J=>x.value=J)},null,8,["visible"]),d.createVNode(Un,{visible:h.value,"full-height":w.section,"onUpdate:visible":j[6]||(j[6]=J=>h.value=J)},null,8,["visible","full-height"]),d.createVNode(_n,{visible:f.value,"full-height":w.roam,"onUpdate:visible":j[7]||(j[7]=J=>f.value=J)},null,8,["visible","full-height"]),d.createVNode(Nn,{visible:R.value,"active-ids":Q.value,"custom-items":_.value,onAction:$,"is-2d":l.value==="2d"},null,8,["visible","active-ids","custom-items","is-2d"]),d.createVNode(db,{visible:A.value,"current-model-id":H.value,"onUpdate:visible":j[8]||(j[8]=J=>A.value=J)},null,8,["visible","current-model-id"]),d.createVNode(iv,{ref_key:"cadPositionRef",ref:O,visible:C.value,"onUpdate:visible":j[9]||(j[9]=J=>C.value=J),onSave:se},null,8,["visible"]),d.createVNode(Nv,{visible:d.unref(M),position:d.unref(T),items:d.unref(B),"onUpdate:visible":j[10]||(j[10]=J=>M.value=J)},null,8,["visible","position","items"]),d.renderSlot(Y.$slots,"default",d.normalizeProps(d.guardReactiveProps({methods:S.value,isReady:s.value})),void 0,!0)])],512)],34))}}),[["__scopeId","data-v-1308f92b"]]);function pc(n){const e=d.ref(),t=d.ref(n.theme||"dark"),i=d.ref(n.menuSize||"medium");d.provide("leiting-theme",t),d.provide("leiting-menu-size",i);function s(l){d.onUnmounted(()=>{e.value=null}),l(n,e)}function o(){const l=d.unref(e);return l||console.error("未获取到leiting实例!"),l}const r=new Proxy({},{get(l,a){const c=o();if(!c)return;const u=c[a];return typeof u=="function"?u.bind(c):u},set(l,a,c){const u=o();return u?(u[a]=c,!0):!1}});return[s,r]}const _v=xt,Qv={install:(n,e)=>{if(n.component("LeitingBIM",_i),n.component("LeitingTree",ki),n.component("LeitingDraggableCard",Fe),n.component("leiting-draggable-card",Fe),n.component("LeitingMenu",Nn),n.component("leiting-menu",Nn),n.component("LeitingSection",Un),n.component("leiting-section",Un),n.component("LeitingPlayer",_n),n.component("leiting-player",_n),n.component("LeitingInfo",Qn),n.component("leiting-info",Qn),n.component("LeitingPosition",Hn),n.component("leiting-position",Hn),n.component("LeitingSetting",Gn),n.component("leiting-setting",Gn),!e)return;const t={..._v,...e};t.cesiumUrl&&es(t).catch(i=>{console.error("[LeitingBim] Failed to load Cesium resources:",i)}),n.config.globalProperties.$leitingBimOptions=t}};var W={image:new Map,background:new Map,resource:new Map,defaultStyle:new Map,baseStyle:new Map,computedStyle:new WeakMap,font:new Set,session:{styleMap:new Map,styleCache:new WeakMap,nodeMap:new Map}};function gc(n="soft"){switch(n){case"auto":{W.session.styleMap=new Map,W.session.nodeMap=new Map;return}case"soft":{W.session.styleMap=new Map,W.session.nodeMap=new Map,W.session.styleCache=new WeakMap;return}case"full":return;case"disabled":{W.session.styleMap=new Map,W.session.nodeMap=new Map,W.session.styleCache=new WeakMap,W.computedStyle=new WeakMap,W.baseStyle=new Map,W.defaultStyle=new Map,W.image=new Map,W.background=new Map,W.resource=new Map,W.font=new Set;return}default:{W.session.styleMap=new Map,W.session.nodeMap=new Map,W.session.styleCache=new WeakMap;return}}}function uo(n){const e=n.match(/url\((['"]?)(.*?)(\1)\)/);if(!e)return null;const t=e[2].trim();return t.startsWith("#")?null:t}function Hv(n){if(!n||n==="none")return"";let e=n.replace(/translate[XY]?\([^)]*\)/g,"");return e=e.replace(/matrix\(([^)]+)\)/g,(t,i)=>{const s=i.split(",").map(o=>o.trim());return s.length!==6?`matrix(${i})`:(s[4]="0",s[5]="0",`matrix(${s.join(", ")})`)}),e=e.replace(/matrix3d\(([^)]+)\)/g,(t,i)=>{const s=i.split(",").map(o=>o.trim());return s.length!==16?`matrix3d(${i})`:(s[12]="0",s[13]="0",`matrix3d(${s.join(", ")})`)}),e.trim().replace(/\s{2,}/g," ")}function Qi(n){if(/%[0-9A-Fa-f]{2}/.test(n))return n;try{return encodeURI(n)}catch{return n}}function Gv(n="[snapDOM]",{ttlMs:e=5*6e4,maxEntries:t=12}={}){const i=new Map;let s=0;function o(r,l,a){if(s>=t)return;const c=Date.now();(i.get(l)||0)>c||(i.set(l,c+e),s++,r==="warn"&&console&&console.warn?console.warn(`${n} ${a}`):console&&console.error&&console.error(`${n} ${a}`))}return{warnOnce(r,l){o("warn",r,l)},errorOnce(r,l){o("error",r,l)},reset(){i.clear(),s=0}}}var mc=Gv("[snapDOM]",{ttlMs:3*6e4,maxEntries:10}),ho=new Map,Hi=new Map;function Yv(n){return/^data:|^blob:|^about:blank$/i.test(n)}function Vv(n,e){try{const t=typeof location<"u"&&location.href?location.href:"http://localhost/",i=e.includes("{url}")?e.split("{url}")[0]:e,s=new URL(i||".",t),o=new URL(n,t);if(o.origin===s.origin)return!0;const r=o.searchParams;if(r&&(r.has("url")||r.has("target")))return!0}catch{}return!1}function Wv(n,e){if(!e||Yv(n)||Vv(n,e))return!1;try{const t=typeof location<"u"&&location.href?location.href:"http://localhost/",i=new URL(n,t);return typeof location<"u"?i.origin!==location.origin:!0}catch{return!!e}}function zv(n,e){if(!e)return n;if(e.includes("{url}"))return e.replace("{urlRaw}",Qi(n)).replace("{url}",encodeURIComponent(n));if(/[?&]url=?$/.test(e))return`${e}${encodeURIComponent(n)}`;if(e.endsWith("?"))return`${e}url=${encodeURIComponent(n)}`;if(e.endsWith("/"))return`${e}${Qi(n)}`;const t=e.includes("?")?"&":"?";return`${e}${t}url=${encodeURIComponent(n)}`}function Ac(n){return new Promise((e,t)=>{const i=new FileReader;i.onload=()=>e(String(i.result||"")),i.onerror=()=>t(new Error("read_failed")),i.readAsDataURL(n)})}function jv(n,e){return[e.as||"blob",e.timeout??3e3,e.useProxy||"",e.errorTTL??8e3,n].join("|")}async function je(n,e={}){const t=e.as??"blob",i=e.timeout??3e3,s=e.useProxy||"",o=e.errorTTL??8e3,r=e.headers||{},l=!!e.silent;if(/^data:/i.test(n))try{if(t==="text")return{ok:!0,data:String(n),status:200,url:n,fromCache:!1};if(t==="dataURL")return{ok:!0,data:String(n),status:200,url:n,fromCache:!1,mime:String(n).slice(5).split(";")[0]||""};const[,A="",C=""]=String(n).match(/^data:([^,]*),(.*)$/)||[],x=/;base64/i.test(A)?atob(C):decodeURIComponent(C),M=new Uint8Array([...x].map(B=>B.charCodeAt(0))),T=new Blob([M],{type:(A||"").split(";")[0]||""});return{ok:!0,data:T,status:200,url:n,fromCache:!1,mime:T.type||""}}catch{return{ok:!1,data:null,status:0,url:n,fromCache:!1,reason:"special_url_error"}}if(/^blob:/i.test(n))try{const A=await fetch(n);if(!A.ok)return{ok:!1,data:null,status:A.status,url:n,fromCache:!1,reason:"http_error"};const C=await A.blob(),E=C.type||A.headers.get("content-type")||"";return t==="dataURL"?{ok:!0,data:await Ac(C),status:A.status,url:n,fromCache:!1,mime:E}:t==="text"?{ok:!0,data:await C.text(),status:A.status,url:n,fromCache:!1,mime:E}:{ok:!0,data:C,status:A.status,url:n,fromCache:!1,mime:E}}catch{return{ok:!1,data:null,status:0,url:n,fromCache:!1,reason:"network"}}if(/^about:blank$/i.test(n))return t==="dataURL"?{ok:!0,data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==",status:200,url:n,fromCache:!1,mime:"image/png"}:{ok:!0,data:t==="text"?"":new Blob([]),status:200,url:n,fromCache:!1};const a=jv(n,{as:t,timeout:i,useProxy:s,errorTTL:o}),c=Hi.get(a);if(c&&c.until>Date.now())return{...c.result,fromCache:!0};c&&Hi.delete(a);const u=ho.get(a);if(u)return u;const h=Wv(n,s)?zv(n,s):n;let f=e.credentials;if(!f)try{const A=typeof location<"u"&&location.href?location.href:"http://localhost/",C=new URL(n,A);f=typeof location<"u"&&C.origin===location.origin?"include":"omit"}catch{f="omit"}const p=new AbortController,m=setTimeout(()=>p.abort("timeout"),i),y=(async()=>{try{const A=await fetch(h,{signal:p.signal,credentials:f,headers:r});if(!A.ok){const x={ok:!1,data:null,status:A.status,url:h,fromCache:!1,reason:"http_error"};if(o>0&&Hi.set(a,{until:Date.now()+o,result:x}),!l){const M=`${A.status} ${A.statusText||""}`.trim();mc.warnOnce(`http:${A.status}:${t}:${new URL(n,location?.href??"http://localhost/").origin}`,`HTTP error ${M} while fetching ${t} ${n}`)}return e.onError&&e.onError(x),x}if(t==="text")return{ok:!0,data:await A.text(),status:A.status,url:h,fromCache:!1};const C=await A.blob(),E=C.type||A.headers.get("content-type")||"";return t==="dataURL"?{ok:!0,data:await Ac(C),status:A.status,url:h,fromCache:!1,mime:E}:{ok:!0,data:C,status:A.status,url:h,fromCache:!1,mime:E}}catch(A){const C=A&&typeof A=="object"&&"name"in A&&A.name==="AbortError"?String(A.message||"").includes("timeout")?"timeout":"abort":"network",E={ok:!1,data:null,status:0,url:h,fromCache:!1,reason:C};if(!/^blob:/i.test(n)&&o>0&&Hi.set(a,{until:Date.now()+o,result:E}),!l){const x=`${C}:${t}:${new URL(n,location?.href??"http://localhost/").origin}`,M=C==="timeout"?`Timeout after ${i}ms. Consider increasing timeout or using a proxy for ${n}`:C==="abort"?`Request aborted while fetching ${t} ${n}`:`Network/CORS issue while fetching ${t} ${n}. A proxy may be required`;mc.errorOnce(x,M)}return e.onError&&e.onError(E),E}finally{clearTimeout(m),ho.delete(a)}})();return ho.set(a,y),y}function fo(n,e){if(!e||!n.width||!n.height)return n;const t=document.createElement("canvas");t.width=n.width,t.height=n.height;const i=t.getContext("2d");return i.fillStyle=e,i.fillRect(0,0,t.width,t.height),i.drawImage(n,0,0),t}async function po(n,e={}){if(/^((repeating-)?(linear|radial|conic)-gradient)\(/i.test(n)||n.trim()==="none")return n;const i=uo(n);if(!i)return n;const s=Qi(i);if(W.background.has(s)){const o=W.background.get(s);return o?`url("${o}")`:"none"}try{const o=await je(s,{as:"dataURL",useProxy:e.useProxy});return o.ok?(W.background.set(s,o.data),`url("${o.data}")`):(W.background.set(s,null),"none")}catch{return W.background.set(s,null),"none"}}var yc=new Set(["meta","script","noscript","title","link","template"]),Gi=new Set(["meta","link","style","title","noscript","script","template","g","defs","use","marker","mask","clipPath","pattern","path","polygon","polyline","line","circle","ellipse","rect","filter","lineargradient","radialgradient","stop"]),$v=["div","span","p","a","img","ul","li","button","input","select","textarea","label","section","article","header","footer","nav","main","aside","h1","h2","h3","h4","h5","h6","table","thead","tbody","tr","td","th"];function Kv(){for(let n of $v){const e=String(n).toLowerCase();yc.has(e)||Gi.has(e)||Cc(e)}}function Cc(n){if(n=String(n).toLowerCase(),Gi.has(n)){const o={};return W.defaultStyle.set(n,o),o}if(W.defaultStyle.has(n))return W.defaultStyle.get(n);let e=document.getElementById("snapdom-sandbox");e||(e=document.createElement("div"),e.id="snapdom-sandbox",e.setAttribute("data-snapdom-sandbox","true"),e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.left="-9999px",e.style.top="-9999px",e.style.width="0px",e.style.height="0px",e.style.overflow="hidden",document.body.appendChild(e));const t=document.createElement(n);t.style.all="initial",e.appendChild(t);const i=getComputedStyle(t),s={};for(let o of i){if(Ec(o))continue;const r=i.getPropertyValue(o);s[o]=r}return e.removeChild(t),W.defaultStyle.set(n,s),s}var Xv=/(?:^|-)(animation|transition)(?:-|$)/i,qv=/^(--|view-timeline|scroll-timeline|animation-trigger|offset-|position-try|app-region|interactivity|overlay|view-transition|-webkit-locale|-webkit-user-(?:drag|modify)|-webkit-tap-highlight-color|-webkit-text-security)$/i,Jv=new Set(["cursor","pointer-events","touch-action","user-select","print-color-adjust","speak","reading-flow","reading-order","anchor-name","anchor-scope","container-name","container-type","timeline-scope"]);function Ec(n){const e=String(n).toLowerCase();return!!(Jv.has(e)||qv.test(e)||Xv.test(e))}function go(n,e){if(e=String(e||"").toLowerCase(),Gi.has(e))return"";const t=[],i=Cc(e);for(let[s,o]of Object.entries(n)){if(Ec(s))continue;const r=i[s];o&&o!==r&&t.push(`${s}:${o}`)}return t.sort(),t.join(";")}function Zv(n){const e=new Set;return n.nodeType!==Node.ELEMENT_NODE&&n.nodeType!==Node.DOCUMENT_FRAGMENT_NODE?[]:(n.tagName&&e.add(n.tagName.toLowerCase()),typeof n.querySelectorAll=="function"&&n.querySelectorAll("*").forEach(t=>e.add(t.tagName.toLowerCase())),Array.from(e))}function ex(n){const e=new Map;for(let i of n){const s=W.defaultStyle.get(i);if(!s)continue;const o=Object.entries(s).map(([r,l])=>`${r}:${l};`).sort().join("");o&&(e.has(o)||e.set(o,[]),e.get(o).push(i))}let t="";for(let[i,s]of e.entries())t+=`${s.join(",")} { ${i} }
118
118
  `;return t}function tx(n){const e=Array.from(new Set(n.values())).filter(Boolean).sort(),t=new Map;let i=1;for(const s of e)t.set(s,`c${i++}`);return t}function mo(n,e=null){if(!(n instanceof Element))return window.getComputedStyle(n,e);let t=W.computedStyle.get(n);if(t||(t=new Map,W.computedStyle.set(n,t)),!t.has(e)){const i=window.getComputedStyle(n,e);t.set(e,i)}return t.get(e)}function wc(n){const e={};for(let t of n)e[t]=n.getPropertyValue(t);return e}function Ao(n){const e=[];let t=0,i=0;for(let s=0;s<n.length;s++){const o=n[s];o==="("&&t++,o===")"&&t--,o===","&&t===0&&(e.push(n.slice(i,s).trim()),i=s+1)}return e.push(n.slice(i).trim()),e}function rn(n,{fast:e=!1}={}){if(e)return n();"requestIdleCallback"in window?requestIdleCallback(n,{timeout:50}):setTimeout(n,1)}function nt(){const n=typeof navigator<"u"&&navigator.userAgent?navigator.userAgent:"",e=/^((?!chrome|android).)*safari/i.test(n),t=/AppleWebKit/i.test(n)&&/Mobile/i.test(n)&&!/Safari/i.test(n),i=/(MicroMessenger|wxwork|WeCom|WindowsWechat|MacWechat)/i.test(n);return e||t||i}var bc=new WeakMap,yo=new Map,Co=0;function Yn(){Co++}var vc=!1;function nx(n=document.documentElement){if(!vc){vc=!0;try{new MutationObserver(()=>Yn()).observe(n,{subtree:!0,childList:!0,characterData:!0,attributes:!0})}catch{}try{new MutationObserver(()=>Yn()).observe(document.head,{subtree:!0,childList:!0,characterData:!0,attributes:!0})}catch{}try{const e=document.fonts;e&&(e.addEventListener?.("loadingdone",Yn),e.ready?.then(()=>Yn()).catch(()=>{}))}catch{}}}function ix(n,e={}){const t={},i=n.getPropertyValue("visibility");for(let s=0;s<n.length;s++){const o=n[s];let r=n.getPropertyValue(o);(o==="background-image"||o==="content")&&r.includes("url(")&&!r.includes("data:")&&(r="none"),t[o]=r}if(e.embedFonts){const s=["font-feature-settings","font-variation-settings","font-kerning","font-variant","font-variant-ligatures","font-optical-sizing"];for(const o of s)if(!t[o])try{const r=n.getPropertyValue(o);r&&(t[o]=r)}catch{}}return i==="hidden"&&(t.opacity="0"),t}var xc=new WeakMap;function sx(n){let e=xc.get(n);return e||(e=Object.entries(n).sort((i,s)=>i[0]<s[0]?-1:i[0]>s[0]?1:0).map(([i,s])=>`${i}:${s}`).join(";"),xc.set(n,e),e)}function ox(n,e=null,t={}){const i=bc.get(n);if(i&&i.epoch===Co)return i.snapshot;const s=e||getComputedStyle(n),o=ix(s,t);return ux(n,s,o),bc.set(n,{epoch:Co,snapshot:o}),o}function rx(n,e){return n&&n.session&&n.persist?n:n&&(n.styleMap||n.styleCache||n.nodeMap)?{session:n,persist:{snapshotKeyCache:yo,defaultStyle:W.defaultStyle,baseStyle:W.baseStyle,image:W.image,resource:W.resource,background:W.background,font:W.font},options:e||{}}:{session:W.session,persist:{snapshotKeyCache:yo,defaultStyle:W.defaultStyle,baseStyle:W.baseStyle,image:W.image,resource:W.resource,background:W.background,font:W.font},options:n||e||{}}}async function an(n,e,t,i){if(n.tagName==="STYLE")return;const s=rx(t,i),o=s.options&&s.options.cache||"auto";if(o!=="disabled"&&nx(document.documentElement),o==="disabled"&&!s.session.__bumpedForDisabled&&(Yn(),yo.clear(),s.session.__bumpedForDisabled=!0),Gi.has(n.tagName?.toLowerCase())){const f=n.getAttribute?.("style");f&&e.setAttribute("style",f)}const{session:r,persist:l}=s;r.styleCache.has(n)||r.styleCache.set(n,getComputedStyle(n));const a=r.styleCache.get(n),c=ox(n,a,s.options),u=sx(c);let h=l.snapshotKeyCache.get(u);if(!h){const f=n.tagName?.toLowerCase()||"div";h=go(c,f),l.snapshotKeyCache.set(u,h)}r.styleMap.set(e,h)}function ax(n){return n instanceof HTMLImageElement||n instanceof HTMLCanvasElement||n instanceof HTMLVideoElement||n instanceof HTMLIFrameElement||n instanceof SVGElement||n instanceof HTMLObjectElement||n instanceof HTMLEmbedElement}function lx(n){return n.backgroundImage&&n.backgroundImage!=="none"||n.backgroundColor&&n.backgroundColor!=="rgba(0, 0, 0, 0)"&&n.backgroundColor!=="transparent"||(parseFloat(n.borderTopWidth)||0)>0||(parseFloat(n.borderBottomWidth)||0)>0||(parseFloat(n.paddingTop)||0)>0||(parseFloat(n.paddingBottom)||0)>0?!0:(n.overflowBlock||n.overflowY||"visible")!=="visible"}function cx(n){const e=n.parentElement;if(!e)return!1;const t=getComputedStyle(e).display||"";return t.includes("flex")||t.includes("grid")}function dx(n,e){if(n.textContent&&/\S/.test(n.textContent))return!0;const t=n.firstElementChild,i=n.lastElementChild;if(t&&t.tagName==="BR"||i&&i.tagName==="BR")return!0;const s=n.scrollHeight;if(s===0)return!1;const o=parseFloat(e.paddingTop)||0,r=parseFloat(e.paddingBottom)||0;return s>o+r}function ux(n,e,t){if(n instanceof HTMLElement&&n.style&&n.style.height)return;const i=e.display||"";if(i.includes("flex")||i.includes("grid")||ax(n))return;const s=e.position;s==="absolute"||s==="fixed"||s==="sticky"||e.transform==="none"&&(lx(e)||cx(n)||dx(n,e)&&(delete t.height,delete t["block-size"]))}function hx(n,e){if(!(n instanceof Element)||!(e instanceof Element))return;const t=n.getAttribute?.("style");let i=!!(t&&t.includes("var("));if(!i&&n.attributes?.length){const r=n.attributes;for(let l=0;l<r.length;l++){const a=r[l];if(a&&typeof a.value=="string"&&a.value.includes("var(")){i=!0;break}}}if(!i)return;let s;try{s=getComputedStyle(n)}catch{return}const o=n.style;if(o&&o.length)for(let r=0;r<o.length;r++){const l=o[r],a=o.getPropertyValue(l);if(!a||!a.includes("var("))continue;const c=s.getPropertyValue(l);if(c)try{e.style.setProperty(l,c.trim(),o.getPropertyPriority(l))}catch{}}if(n.attributes?.length){const r=n.attributes;for(let l=0;l<r.length;l++){const a=r[l];if(!a||typeof a.value!="string"||!a.value.includes("var("))continue;const c=a.name;let u="";try{u=s.getPropertyValue(c)}catch{}if(u)try{e.style.setProperty(c,u.trim())}catch{}}}}function Eo(n,e,t){return Promise.all(n.map(i=>new Promise(s=>{function o(){rn(r=>{(r&&typeof r.timeRemaining=="function"?r.timeRemaining()>0:!0)?e(i,s):o()},{fast:t})}o()})))}function fx(n){return n=n.trim(),!n||/:not\(\s*\[data-sd-slotted\]\s*\)\s*$/.test(n)?n:`${n}:not([data-sd-slotted])`}function px(n,e,t=!0){return n.split(",").map(i=>i.trim()).filter(Boolean).map(i=>{if(i.startsWith(":where(")||i.startsWith("@"))return i;const s=t?fx(i):i;return`:where(${e} ${s})`}).join(", ")}function gx(n,e){return n?(n=n.replace(/:host\(([^)]+)\)/g,(t,i)=>`:where(${e}:is(${i.trim()}))`),n=n.replace(/:host\b/g,`:where(${e})`),n=n.replace(/:host-context\(([^)]+)\)/g,(t,i)=>`:where(:where(${i.trim()}) ${e})`),n=n.replace(/::slotted\(([^)]+)\)/g,(t,i)=>`:where(${e} ${i.trim()})`),n=n.replace(/(^|})(\s*)([^@}{]+){/g,(t,i,s,o)=>{const r=px(o,e,!0);return`${i}${s}${r}{`}),n):""}function mx(n){return n.shadowScopeSeq=(n.shadowScopeSeq||0)+1,`s${n.shadowScopeSeq}`}function Ax(n){let e="";try{n.querySelectorAll("style").forEach(i=>{e+=(i.textContent||"")+`
119
119
  `});const t=n.adoptedStyleSheets||[];for(const i of t)try{if(i&&i.cssRules)for(const s of i.cssRules)e+=s.cssText+`
120
120
  `}catch{}}catch{}return e}function yx(n,e,t){if(!e)return;const i=document.createElement("style");i.setAttribute("data-sd",t),i.textContent=e,n.insertBefore(i,n.firstChild||null)}function Cx(n,e){try{const t=n.currentSrc||n.src||"";if(!t)return;e.setAttribute("src",t),e.removeAttribute("srcset"),e.removeAttribute("sizes"),e.loading="eager",e.decoding="sync"}catch{}}function Ex(n){const e=new Set;if(!n)return e;const t=/var\(\s*(--[A-Za-z0-9_-]+)\b/g;let i;for(;i=t.exec(n);)e.add(i[1]);return e}function wx(n,e){try{let i=getComputedStyle(n).getPropertyValue(e).trim();if(i)return i}catch{}try{let i=getComputedStyle(document.documentElement).getPropertyValue(e).trim();if(i)return i}catch{}return""}function bx(n,e,t){const i=[];for(const s of e){const o=wx(n,s);o&&i.push(`${s}: ${o};`)}return i.length?`${t}{${i.join("")}}