leiting-bim 2.2.14 → 2.2.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/leiting-bim.umd.js
CHANGED
|
@@ -118,7 +118,7 @@ northing meters`+i;var p=u/2,f=0,m=0,y,g,A,v,b;return p>0&&(y=1e5/Math.pow(10,p)
|
|
|
118
118
|
// 通常不需要 clamp,除非开启 HDR 后期望超亮,但负值需要避免
|
|
119
119
|
material.diffuse = max(material.diffuse, vec3(0.0));
|
|
120
120
|
}
|
|
121
|
-
`});p.isModelAdjustment=!0,u.customShader=p}else e.brightness!==void 0&&e.brightness!==1&&!u.style&&(u.style=new n.Cesium3DTileStyle({color:`color('white') * ${e.brightness}`}))}}setModelBrightness(e){this.setModelColorAdjustment({brightness:e})}_defaultSkyBox=null;_skyBoxPreUpdateListener=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 n=t.postProcessStages.ambientOcclusion;n.enabled=e,e&&(n.uniforms.ambientOcclusionOnly=!1,n.uniforms.intensity=3,n.uniforms.bias=.1,n.uniforms.lengthCap=.03,n.uniforms.stepSize=1,n.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)}_customZoomHandler=null;setHeightBasedZoom(e){const t=this.viewer.scene.screenSpaceCameraController,n=this.cesium;if(this.viewer.camera.frustum.near=1e-4,this.viewer.camera.frustum.far=1e8,e||(this.viewer.camera.frustum.near=.1),this._customZoomHandler&&(this._customZoomHandler.destroy(),this._customZoomHandler=null),!e){t.zoomEventTypes.includes(n.CameraEventType.WHEEL)||t.zoomEventTypes.push(n.CameraEventType.WHEEL);return}t.zoomEventTypes=t.zoomEventTypes.filter(o=>o!==n.CameraEventType.WHEEL),this._customZoomHandler=new n.ScreenSpaceEventHandler(this.viewer.scene.canvas);let s=null;this._customZoomHandler.setInputAction(o=>{s=o.endPosition},n.ScreenSpaceEventType.MOUSE_MOVE),this._customZoomHandler.setInputAction(o=>{const r=this.viewer.camera,a=r.positionCartographic.height,l=Math.sign(o);if(a<.15&&l>0){me.info("无法继续放大");return}const c=.3;let h=0;if(l>0){const m=a-1;h=m>0?m*c:0}else h=a*c;h=Math.max(.1,h);let u=null;if(!s)u=r.direction;else{const m=r.getPickRay(s);if(m){let y=this.viewer.scene.pickPosition(s);if(!y){const g=n.IntersectionTests.rayEllipsoid(m,this.viewer.scene.globe.ellipsoid);g&&(y=n.Ray.getPoint(m,g.start))}if(y){const g=n.Cartesian3.subtract(y,r.position,new n.Cartesian3);u=n.Cartesian3.normalize(g,new n.Cartesian3)}else u=r.direction}else u=r.direction}const p=l>0?h:-h*2,f=n.Cartesian3.multiplyByScalar(u,p,new n.Cartesian3);r.position=n.Cartesian3.add(r.position,f,new n.Cartesian3)},n.ScreenSpaceEventType.WHEEL)}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 wB{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},destination:{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:n,duration:s}=e,o=new this.cesium.Cartesian3(t.x,t.y,t.z),r=new this.cesium.HeadingPitchRoll(n.heading,n.pitch,n.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||{},n=e.destination||e.position||{};this.flyToCameraView({position:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},destination:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},orientation:{heading:Number(t.heading||0),pitch:Number(t.pitch||0),roll:Number(t.roll||0)},duration:e.duration})}flyToLonLatHeight(e,t,n,s=1){const o=this.cesium.Cartesian3.fromDegrees(e,t,n),r={heading:this.cesium.Math.toRadians(0),pitch:this.cesium.Math.toRadians(-90),roll:0};!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}}function CB(i){const{container:e,appContext:t,methods:n,viewerOptions:s,options:o,callbacks:r}=i,a=new _s,l=window.Cesium;if(!l)throw new Error("Cesium is not loaded");e.id=`cesium-container-${hC()}`;const c={animation:!1,timeline:!1,infoBox:!1,homeButton:!1,fullscreenButton:!1,sceneModePicker:!1,navigationHelpButton:!1,geocoder:!1,baseLayerPicker:!1,selectionIndicator:!1,heightBasedZoom:!0,creditContainer:document.createElement("div"),contextOptions:{webgl:{alpha:!0,preserveDrawingBuffer:!0}}},h=t?.config?.globalProperties?.$leitingBimOptions,u={...c,...h?.viewerOptions??{},...s??{}},p=new l.Viewer(e,u);p.camera.setView({destination:l.Cartesian3.fromDegrees(108,32,1e7),orientation:{heading:l.Math.toRadians(0),pitch:l.Math.toRadians(-90),roll:0}});let f=n;if(!f&&h&&(h.methods||(h.methods={}),f=h.methods),f){const m=new xC({cesium:l,viewer:p,options:o,callbacks:r}),y=new qu({cesium:l,viewer:p}),g=new bB({cesium:l,viewer:p}),A=new IC({cesium:l,viewer:p}),v=new BS({cesium:l,viewer:p}),b=new wB({cesium:l,viewer:p});let C;const x=new pc({cesium:l,viewer:p});o&&(o.globe!==void 0&&g.setGlobeEnvironmentVisible(o.globe),o.terrain!==void 0&&g.setTerrainEnable(o.terrain),o.depthTest!==void 0&&g.setDepthTestEnable(o.depthTest),o.mapProvider&&o.mode!=="2d"&&g.changeBaseMap(o.mapProvider,{token:o.tiandituToken,layerType:o.tiandituLayerType,showAnnotation:o.tiandituShowLabel,url:o.arcgisUrl}),o.shadows!==void 0&&g.setShadowsEnable(o.shadows),o.environmentMap!==void 0&&g.setEnvironmentMapEnable(o.environmentMap),o.ambientOcclusion!==void 0&&g.setAmbientOcclusion(o.ambientOcclusion),o.time!==void 0&&g.setTime(o.time),o.brightness!==void 0&&g.setModelBrightness(o.brightness),o.backgroundColor!==void 0&&g.setBackgroundColor(o.backgroundColor),o.collision!==void 0&&g.setCollisionDetection(o.collision),o.mouseHabit!==void 0&&g.setMouseHabit(o.mouseHabit),o.heightBasedZoom!==void 0&&g.setHeightBasedZoom(o.heightBasedZoom)),o&&o.mode==="2d"&&(g.setCadMode("2d"),C=new um({cesium:l,viewer:p})),y.events.on("tilesetLoaded",w=>{m.baseCompt.attachTileset(w,m.baseCompt.selectedColor),m.baseSection.attachTileset(w,w.leiting?.model?.modelId),f&&f.tilesLoad3dTiles&&f.tilesLoad3dTiles(w),o?.tilesLoad3dTiles&&o.tilesLoad3dTiles(w.leiting)}),y.events.on("loadingStatus",w=>{f&&f.onLoadingStatus&&f.onLoadingStatus(w)}),y.events.on("mountAll3Dtiles",({modelList:w})=>{o?.mountAll3Dtiles&&o.mountAll3Dtiles(w),f?.mountAll3Dtiles&&f.mountAll3Dtiles(w)}),y.events.on("configureLoaded",w=>{f.setConfigure(w)}),y.events.on("updateModels",({modelList:w})=>{o?.updateModels&&o.updateModels(w),f?.updateModels&&f.updateModels(w)}),A.events.on("mountAllCad",w=>{o?.mountAllCad&&o.mountAllCad(w),f?.mountAllCad&&f.mountAllCad(w)}),v.events.on("mountAllGISCad",w=>{o?.mountAllGISCad&&o.mountAllGISCad(w),f?.mountAllGISCad&&f.mountAllGISCad(w)}),m.baseCompt.loadNodeDetailsForModel=w=>y.loadNodeDetailsForModel(w),m.baseCompt.selectionChange(w=>{w.length!==0&&(o?.selectionChange&&o.selectionChange(w),f?.selectionChange&&f.selectionChange(w))}),f.onSearchComponent=w=>{o?.searchComponent&&o.searchComponent(w),f?.searchComponent&&f.searchComponent(w)};const I=f.saveRegion;f.saveRegion=w=>{I?I(w):o?.saveRegion&&o.saveRegion(w)};const E=f.saveCadCalibration;f.saveCadCalibration=w=>{E?E(w):o?.saveCadCalibration&&o.saveCadCalibration(w)};const S=f.saveCadRegion;f.saveCadRegion=w=>{S?S(w):o?.saveCadRegion&&o.saveCadRegion(w)},f.getCesium=()=>l,f.getViewer=()=>p,f.getAnnotationInstance=()=>C,f.getMeasureInstance=()=>x,f.flyToCamera=w=>{b.setCameraView(w)},f.flyToLonLatHeight=(w,T,_,F=1)=>{b.flyToLonLatHeight(w,T,_,F)},f.flyTo=f.flyToCamera,f.getCameraState=()=>b.getCameraView(),f.getCameraInfo=f.getCameraState,f.restoreCameraState=w=>b.flyToCameraView(w),f.flyToCameraView=f.restoreCameraState,f.getCameraPositionTarget=()=>b.getCurrentCameraPositionAndTarget(),f.getCurrentCameraPositionAndTarget=f.getCameraPositionTarget,f.setCameraLookAt=w=>b.setCameraView(w),f.setCameraView=f.setCameraLookAt,f.setCanvasBackground=w=>g.setBackgroundColor(w),f.setBackgroundColor=f.setCanvasBackground,f.setAntiAliasing=w=>m.enableCesiumFXAA(w),f.enableCesiumFXAA=f.setAntiAliasing,f.setSceneVisibility=w=>m.setSceneOptions(w),f.setSceneOptions=f.setSceneVisibility,f.addDebugPoint=(w,T,_=0)=>{p.entities.add({position:l.Cartesian3.fromDegrees(w,T,_),point:{pixelSize:10,color:l.Color.RED}})},f.addPoint=f.addDebugPoint,f.toggleDebugLabels=()=>m.enableTestLabel(),f.enableTestLabel=f.toggleDebugLabels,f.captureScreenshot=()=>{const w=p.scene.canvas;return p.render(),w.toDataURL("image/png")},f.getImageBase64=f.captureScreenshot,f.captureDomScreenshot=(w,T)=>m.getSnapDomSImageBase64(w,T),f.getSnapDomSImageBase64=f.captureDomScreenshot,f.addModels=w=>y.addModels(w),f.add3DtilesModel=f.addModels,f.addObliquePhotography=w=>y.addOSGB(w),f.addOSGB=f.addObliquePhotography,f.adjustOSGBModelMatrix=w=>y.updateOSGBMatrix(w),f.updateOSGBMatrix=f.adjustOSGBModelMatrix,f.setModelVisibility=w=>y.showModels(w),f.showModels=f.setModelVisibility,f.showTileset=f.setModelVisibility,f.removeModels=w=>y.deleteModels(w),f.deleteModels=f.removeModels,f.clearAllModels=()=>{y.deleteAllModels(),a.emit("deleteAllModels")},f.deleteAllModelList=f.clearAllModels,f.deleteAllModels=f.clearAllModels,f.flyToModel=w=>y.flyToTileset(w),f.flyToTileset=f.flyToModel,f.flyToByModelId=f.flyToModel,f.setModelBrightness=w=>m.updateModelEffect(w),f.updateModelEffect=f.setModelBrightness,f.getAllTilesets=()=>y.getMapTileset(),f.getMapTileset=f.getAllTilesets,f.getCurrentModelId=()=>y.getBIMmodelId(),f.getBIMmodelId=f.getCurrentModelId,f.getLoadedModels=()=>y.getModelList(),f.getModelList=f.getLoadedModels,f.loadModelStructure=async w=>{const T=typeof w=="string"?w:w?.modelId;if(!T){console.warn("loadModelStructure: modelId is required");return}return await y.loadTreeForModel(T)},f.loadTreeForModel=f.loadModelStructure,f.loadModelDetails=async w=>{const T=typeof w=="string"?w:w?.modelId;if(!T){console.warn("loadModelDetails: modelId is required");return}return await y.loadNodeDetailsForModel(T)},f.loadNodeDetailsForModel=f.loadModelDetails,f._loadNodeDetailsForModel=async w=>{const T=typeof w=="string"?w:w?.modelId;if(!T){console.warn("loadModelDetails: modelId is required");return}return await y._loadNodeDetailsForModel(T)},f.setMapTileset=w=>y.setMapTileset(w),f.setCurrentModelId=w=>y.setBIMmodelId(w),f.setBIMmodelId=f.setCurrentModelId,f.setModelList=w=>y.setModelList(w),f.setWatermarkEnabled=w=>{y.setWatermarkEnabled(w),v.setWatermarkEnabled(w)},f.applyWatermark=async(w=!0)=>{await wl(w,p.container)},f.highlightComponents=(w,T={})=>m.baseCompt.setSelectColorUserModelCpt(w,T),f.setSelectColorUserModelCpt=f.highlightComponents,m.baseCompt.setLoadNodeDetailsCallback(w=>y.loadNodeDetailsForModel(w)),f.highlightAllComponents=(w,T)=>m.baseCompt.setAllSelectColorUserModelCpt(w,T),f.setAllSelectColorUserModelCpt=f.highlightAllComponents,f.setSelectColorUserModelCptByClear=(w,T)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(w.selectCpts,T??{rank:0})},f.clearSelectColorUserModelCpt=()=>m.baseCompt.clearAllHaveSelected(),f.selectComponents=(w,T)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(w,T??{rank:0})},f.setSelecteds=f.selectComponents,f.setSelectionColor=(w,T,_,F)=>m.baseCompt.setSelectedColorRgba(w,T,_,F),f.setSelectedColor=f.setSelectionColor,f.clearSelection=()=>m.baseCompt.clearAllHaveSelected(),f.clearAllHaveSelected=f.clearSelection,f.getSelectedComponents=w=>m.baseCompt.getSelected(w),f.getSelected=f.getSelectedComponents,f.setClickToHighlightEnabled=w=>{m.baseCompt.clickToHighlightEnabled=w},f.getClickToHighlightEnabled=()=>m.baseCompt.clickToHighlightEnabled,f.onSelectionChange=w=>{m.baseCompt.selectionChange(w)},f.selectionChange=f.onSelectionChange,f.flyToComponents=w=>m.baseCompt.flyToObjects(w),f.flyToObjects=f.flyToComponents,f.setConstructionData=async w=>{if(w&&Array.isArray(w)){const T=new Set;w.forEach(_=>{_.mergeCpts&&Array.isArray(_.mergeCpts)&&_.mergeCpts.forEach(F=>{F.modelId&&T.add(F.modelId)})}),T.size>0&&await Promise.all(Array.from(T).map(_=>f.loadNodeDetailsForModel(_)))}m.baseCompt.setAllConstructionProgressTracking(w)},f.setAllConstructionProgressTracking=f.setConstructionData,f.startConstructionSimulation=()=>m.baseCompt.enableConstructionProgressTracking(),f.enableAllConstructionProgressTracking=f.startConstructionSimulation,f.stopConstructionSimulation=()=>m.baseCompt.disableConstructionProgressTracking(),f.disableConstructionProgressTracking=f.stopConstructionSimulation,f.disableAllConstructionProgressTracking=f.stopConstructionSimulation,f.resetConstructionSimulation=()=>m.baseCompt.freshConstructionProgressTracking(),f.freshConstructionProgressTracking=f.resetConstructionSimulation,f.restartConstructionSimulation=()=>m.baseCompt.reStartAnimation(),f.reStartAnimation=f.restartConstructionSimulation,f.resumeFlyTo=()=>m.baseCompt.resumeFlyTo(),f.pauseConstructionSimulation=()=>m.baseCompt.pauseFlyTo(),f.pauseFlyTo=f.pauseConstructionSimulation,f.pauseAnimation=f.pauseConstructionSimulation,f.resumeConstructionSimulation=()=>m.baseCompt.resumeFlyTo(),f.resumeAnimation=f.resumeConstructionSimulation,f.setComponentsVisibility=async w=>await m.baseCompt.setComponentVisibility(w),f.setElementsListVisible=f.setComponentsVisibility,f.setAllComponentsVisibility=async w=>await m.baseCompt.setAllComponentsVisibility(w),f.setAllElementsVisible=f.setAllComponentsVisibility,f.isolateComponents=w=>m.baseCompt.isolateComponentVisibility(w),f.isolateComponentVisibility=f.isolateComponents,f.getComponentsByVisibility=w=>m.baseCompt._getComponentsByVisibility(w),f.getShowCpts=w=>m.baseCompt.getComponentsByVisibility(w),f.getElementsVisible=w=>m.baseCompt.getComponentsByVisibility(w),f.setComponentVisibility=f.setComponentsVisibility,f.enableSectioning=(w,T)=>m.baseSection.open(w,T),f.openSection=f.enableSectioning,f.disableSectioning=w=>m.baseSection.close(w),f.closeSection=f.disableSectioning,f.updateSectionBox=w=>m.baseSection.updateRange(w),f.updateSectionRange=f.updateSectionBox,f.getSectionBox=()=>m.baseSection.getRange(),f.getSectionRange=f.getSectionBox,f.fitSectionToModel=()=>m.baseSection.fitToModels(),f.fitToModels=f.fitSectionToModel,f.setSectionBoxVisibility=w=>m.baseSection.setBoxVisibility(w),f.startFirstPersonMode=()=>{m.baseCompt.disableSelection(),m.basePlayer.openPlayer()},f.openPlayer=f.startFirstPersonMode,f.startCameraRoam=()=>{m.baseCompt.disableSelection(),m.basePlayer.openCameraRoam()},f.stopFirstPersonMode=()=>{m.basePlayer.closePlayer(),m.baseCompt.enableSelection()},f.closePlayer=f.stopFirstPersonMode,f.setPlayerPosition=w=>m.basePlayer.setPersonPosition(w),f.setPersonPosition=f.setPlayerPosition,f.setPlayerDefaultPosition=()=>m.basePlayer.setDefaultPosition(),f.setWalkSpeed=w=>m.basePlayer.setSpeed({speed:w}),f.setPlayerSpeed=f.setWalkSpeed,f.setPlayerConfig=w=>m.basePlayer.setParams(w),f.setPlayerParams=f.setPlayerConfig,f.setModelInfo=w=>m.basePlayer.setModelInfo(w),f.setPlayerAction=(w,T)=>m.basePlayer.setMoveState(w,T),f.setPlayerMoveState=f.setPlayerAction,f.bindPlayerControls=w=>m.basePlayer.bindUiKeys(w),f.bindPlayerUiKeys=f.bindPlayerControls,f.setGlobeVisibility=w=>g.setGlobeEnvironmentVisible(w),f.setGlobeEnvironmentVisible=f.setGlobeVisibility,f.setSkyBoxVisible=w=>g.setSkyBoxVisible(w),f.setTerrainVisibility=w=>g.setTerrainEnable(w),f.setTerrainEnable=f.setTerrainVisibility,f.setDepthTest=w=>g.setDepthTestEnable(w),f.setDepthTestEnable=f.setDepthTest,f.setBaseMap=(w,T)=>g.changeBaseMap(w,T),f.changeBaseMap=f.setBaseMap,f.setWorldTime=w=>g.setTime(w),f.setTime=f.setWorldTime,f.setGisOptions=w=>{w.globe!==void 0&&g.setGlobeEnvironmentVisible(w.globe),w.elevation!==void 0&&g.setTerrainEnable(w.elevation),w.depthTestAgainstTerrain!==void 0&&g.setDepthTestEnable(w.depthTestAgainstTerrain),w.rendering!==void 0&&g.setAmbientOcclusion(w.rendering)},f.setShadowVisibility=w=>g.setShadowsEnable(w),f.setShadowsEnable=f.setShadowVisibility,f.setEnvironmentMapVisibility=w=>g.setEnvironmentMapEnable(w),f.setEnvironmentMapEnable=f.setEnvironmentMapVisibility,f.setAOVisibility=w=>g.setAmbientOcclusion(w),f.setAmbientOcclusion=f.setAOVisibility,f.setBackgroundColor=w=>g.setBackgroundColor(w),f.setGlobeColor=f.setBackgroundColor,f.setSkyBox=w=>g.setSkyBox(w),f.setModelBrightness=w=>g.setModelBrightness(w),f.adjustModelColor=w=>g.setModelColorAdjustment(w),f.setModelColorAdjustment=f.adjustModelColor,f.setShadowIntensity=w=>{g.setShadowDarkness?g.setShadowDarkness(w):console.warn("baseSetting.setShadowDarkness is not available. Please reload the page.")},f.setShadowDarkness=f.setShadowIntensity,f.switchSceneMode=async w=>{const T=w?"2d":"3d";await g.setCadMode(T),w&&!C&&(C=new um({cesium:l,viewer:p}),f.setGlobeVisibility(!0)),a.emit("setMode",T)},f.setSceneMode=f.switchSceneMode,f.set2d=w=>f.switchSceneMode(w),f.is2dMode=()=>g.is2d,f.setMouseControlMode=w=>g.setMouseHabit(w),f.setMouseHabit=f.setMouseControlMode,f.setCollisionEnabled=w=>g.setCollisionDetection(w),f.setCollisionDetection=f.setCollisionEnabled,f.searchAndLocate=(w,T)=>g.searchLocation(w,T),f.searchLocation=f.searchAndLocate,f.getConfigure=()=>(console.warn("getConfigure is not initialized. Please ensure LeitingSetting component is mounted."),{}),f.setConfigure=w=>{console.warn("setConfigure is not initialized. Please ensure LeitingSetting component is mounted.",w)},f.addCadModel=w=>{const T={...w};return T.files&&!T.fileNames&&(T.fileNames=T.files),T.fileNames||(T.fileNames=[]),A.addDxfModel(T)},f.addDxfModel=f.addCadModel,f.addGISCadModel=w=>{const T={...w};return T.files&&!T.fileNames&&(T.fileNames=T.files),T.fileNames||(T.fileNames=[]),v.addGISCadModel(T)},f.addVectorTileByUrlTemplate=w=>v.addVectorTileByUrlTemplate(w),f.addVectorTileByTilesManifest=w=>v.addVectorTileByTilesManifest(w),f.showGISCadModel=w=>v.showJson(w),f.addGeoJsonLayer=w=>v.addGeoJsonLayer(w),f.showGISCadLayer=w=>v.showJsonByLayer(w),f.deleteGISCad=w=>v.deleteCad(w),f.deleteAllGISCad=()=>v.deleteAllCad(),f.flyToGISCadModel=(w={})=>v.flyToCadModel(w),f.flyGisCadModel=w=>v.flyToCadModel({modelId:w}),f.getGISCadModels=w=>v.getDxfModels(w),f.getGISCadModelsList=()=>v.getDxfModelsList(),f.getGISCadLayers=w=>v.getMapLayers(w),f.getGISCadModelId=()=>v.getModelId(),f.getDefaultGISCadTransformConfig=()=>v.getDefaultCoordinateTransformConfig(),f.transformGISCadCoordinate=w=>v.transformCoordinate(w),f.beginEditGISCad=w=>v.beginEditGISCad(w),f.adjustGISCadModel=w=>v.adjustGISCadModel(w),f.commitEditGISCad=w=>v.commitEditGISCad(w),f.cancelEditGISCad=w=>v.cancelEditGISCad(w),f.deleteCad=w=>A.deleteCad(w),f.deleteAllCad=()=>A.deleteAllCad(),f.showCadModel=w=>A.showJson(w),f.showGeoJson=w=>A.showJson(w),f.showDxfModel=f.showCadModel,f.showCadLayer=w=>A.showJsonByLayer(w),f.showDxfLayer=f.showCadLayer,f.flyToCadModel=(w={})=>A.flyToCadModel(w),f.getCadModels=w=>A.getDxfModels(w),f.getDxfModels=f.getCadModels,f.getCadLayers=w=>A.getMapLayers(w),f.getDxfLayers=f.getCadLayers,f.getCadModelId=()=>A.getModelId(),f.setCadOpen=w=>A.setDxfOpen(w),f.setDxfOpen=f.setCadOpen,f.getCadOpen=()=>A.getDxfOpen(),f.getDxfOpen=f.getCadOpen,f.adjustCadModel=w=>A.adjustingModelByCad(w),f.adjustingModelByCad=f.adjustCadModel,f.saveAnnotations=()=>{let w=null;return C&&(w=C.saveAnnotations()),o?.saveAnnotations&&o.saveAnnotations(w),w},f.loadAnnotations=w=>C?C.loadAnnotations(w):!1,f.flyToTopView=()=>{A.flyToCadModel()},f.menuEvents=a,f.addMenuItems=w=>{a.emit("insertMenu",w)},f.insertMenu=f.addMenuItems,f.filterMenuItems=w=>{a.emit("setMenuListFilter",w)},f.setMenuListFilter=f.filterMenuItems,f.setMenuVisibility=w=>{a.emit("showMenu",w)},f.showMenu=f.setMenuVisibility,f.setPanelVisibility=(w,T)=>{a.emit("setMenuActive",w,T)},f.setMenuActive=f.setPanelVisibility,f.addContextMenuItems=w=>{console.warn("addContextMenuItems is not initialized yet. Please wait for LeitingBIM component to mount.",w)},f.insertContextMenu=f.addContextMenuItems,f.removeContextMenuItems=w=>{console.warn("removeContextMenuItems is not initialized yet.",w)},f.deleteContextMenu=f.removeContextMenuItems,f.closeContextMenu=()=>{console.warn("closeContextMenu is not initialized yet.")},f.hideContextMenu=f.closeContextMenu,f.getModelTree=()=>{const w=[],T=y.getMapTileset();return Object.keys(T).forEach(_=>{const F=T[_];if(F&&F.leiting&&F.leiting.tree){const U=F.leiting.tree;Array.isArray(U)?w.push(...U):w.push(U)}}),w},f.getTree=f.getModelTree,f.getAllComponentDetails=()=>{const w=y.getMapTileset(),T={},_=[];try{Object.keys(w).forEach(F=>{const U=w[F];if(!U||!U.leiting)return;const L=U.leiting,D=L.node,M=L.model.formData,k=L.box;if(!D||!D.nodeExtras)return;const B=L.model.modelId;T[B]=D.nodeExtras;const P=D.nodeExtras.element;if(!P)return;const V=k?k.center:{x:0,y:0,z:0};Object.values(P).forEach(G=>{if(G.box3)try{const R=l.Quaternion.fromAxisAngle(l.Cartesian3.UNIT_Z,l.Math.toRadians(M.totalRotation||0)),N=l.Matrix4.fromRotationTranslation(l.Matrix3.fromQuaternion(R),new l.Cartesian3(0,0,0)),O=l.Cartesian3.fromDegrees(M.longitude,M.latitude,M.height),z=l.Transforms.eastNorthUpToFixedFrame(O);l.Matrix4.multiply(z,N,z);const j=new l.Cartesian3(V.x,V.y,0),Z=new l.Cartesian3;l.Matrix4.multiplyByPoint(z,j,Z);const te=l.Cartographic.fromCartesian(Z),de=G.box3?.Center?.x||0,pe=G.box3?.Center?.y||0,Ae=G.box3?.Center?.z||0,Pe=new l.Cartesian3(-V.x+de,-V.y+pe,0+Ae),Ge=l.Matrix4.fromTranslation(Pe),Je=l.Matrix4.clone(Ge);l.Matrix4.multiply(N,Je,Je);const vt=l.Cartesian3.fromDegrees(te.longitude/Math.PI*180,te.latitude/Math.PI*180,M.height),ct=l.Transforms.eastNorthUpToFixedFrame(vt);l.Matrix4.multiply(ct,Je,ct);const Bt=l.Cartographic.fromCartesian(new l.Cartesian3(ct[12],ct[13],ct[14]));G.box3.cartographic={longitude:Bt.longitude/Math.PI*180,latitude:Bt.latitude/Math.PI*180,height:Bt.height};const W={id:G.uniqueId,billboard:[{theme:"Tag9999",position:[G.box3.cartographic.longitude,G.box3.cartographic.latitude,G.box3.cartographic.height],options:{text:G.name}}]};_.push(W)}catch(R){console.warn("Error calculating component position:",R)}})})}catch(F){console.error("getAllComponents error:",F)}return T},f.getAllComponents=f.getAllComponentDetails,f.getComponentInfoList=async w=>{if(!Array.isArray(w))return[];const T=y.getMapTileset(),_=[],F=[],U={};w.forEach(D=>{const k=T[D.modelId]?.leiting?.model?.dbName;k&&D.elementId&&F.push({dbName:k,elementId:D.elementId,modelId:D.modelId})});const L=new Set;if(w.forEach(D=>{const M=T[D.modelId],k=`${D.modelId}_${D.elementId}`;U[k]||M&&M.leiting&&!M.leiting?.node?.nodeExtras&&M.leiting.model?.nodeUrl&&L.add(D.modelId)}),L.size>0&&y._loadNodeDetailsForModel)try{const D=Array.from(L).map(M=>y._loadNodeDetailsForModel(M));await Promise.all(D)}catch(D){console.error("Failed to load node details in getComponentInfoList",D)}try{w.forEach(D=>{const M=D.modelId,k=D.elementId,B=T[M];if(!B||!B.leiting)return;const P=`${M}_${k}`,V=U[P];let G=null;if(V)G=V;else{const R=B.leiting.node?.nodeExtras?.element||B.leiting.node?.nodeExtras;R&&R[k]&&(G=JSON.parse(JSON.stringify(R[k])))}if(G){if(G.elementId=k,G.modelId=M,G.box3&&!G.box3.cartographic)try{const R=B.leiting,N=R.model.formData,O=R.box,z=O?O.center:{x:0,y:0,z:0},j=l.Quaternion.fromAxisAngle(l.Cartesian3.UNIT_Z,l.Math.toRadians(N.totalRotation||0)),Z=l.Matrix4.fromRotationTranslation(l.Matrix3.fromQuaternion(j),new l.Cartesian3(0,0,0)),te=l.Cartesian3.fromDegrees(N.longitude,N.latitude,N.height),de=l.Transforms.eastNorthUpToFixedFrame(te);l.Matrix4.multiply(de,Z,de);const pe=new l.Cartesian3(z.x,z.y,0),Ae=new l.Cartesian3;l.Matrix4.multiplyByPoint(de,pe,Ae);const Pe=l.Cartographic.fromCartesian(Ae),Ge=G.box3?.Center?.x||0,Je=G.box3?.Center?.y||0,vt=G.box3?.Center?.z||0,ct=new l.Cartesian3(-z.x+Ge,-z.y+Je,0+vt),Bt=l.Matrix4.fromTranslation(ct),W=l.Matrix4.clone(Bt);l.Matrix4.multiply(Z,W,W);const Y=l.Cartesian3.fromDegrees(Pe.longitude/Math.PI*180,Pe.latitude/Math.PI*180,N.height),ee=l.Transforms.eastNorthUpToFixedFrame(Y);l.Matrix4.multiply(ee,W,ee);const Ze=l.Cartographic.fromCartesian(new l.Cartesian3(ee[12],ee[13],ee[14]));G.box3.cartographic={longitude:Ze.longitude/Math.PI*180,latitude:Ze.latitude/Math.PI*180,height:Ze.height}}catch(R){console.warn("Error calculating component position:",R)}_.push(G)}})}catch(D){console.error("getComponentInfoList processing error:",D)}return _},f.getCptInfos=f.getComponentInfoList,f.baseCompt=m.baseCompt,f.setTeleportTarget=w=>{f.onSetTeleportTarget&&f.onSetTeleportTarget(w)},window.Methods=f}return{Cesium:l,viewer:p,methods:f,menuEvents:a}}function yc(i){return d.getCurrentScope()?(d.onScopeDispose(i),!0):!1}function Ac(i){return typeof i=="function"?i():d.unref(i)}const EB=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const xB=Object.prototype.toString,IB=i=>xB.call(i)==="[object Object]",SB=()=>{};function MB(i){return d.getCurrentInstance()}function mm(i,e=!0,t){MB()?d.onMounted(i,t):e?i():d.nextTick(i)}function ln(i){var e;const t=Ac(i);return(e=t?.$el)!=null?e:t}const ro=EB?window:void 0;function TB(...i){let e,t,n,s;if(typeof i[0]=="string"||Array.isArray(i[0])?([t,n,s]=i,e=ro):[e,t,n,s]=i,!e)return SB;Array.isArray(t)||(t=[t]),Array.isArray(n)||(n=[n]);const o=[],r=()=>{o.forEach(h=>h()),o.length=0},a=(h,u,p,f)=>(h.addEventListener(u,p,f),()=>h.removeEventListener(u,p,f)),l=d.watch(()=>[ln(e),Ac(s)],([h,u])=>{if(r(),!h)return;const p=IB(u)?{...u}:u;o.push(...t.flatMap(f=>n.map(m=>a(h,f,m,p))))},{immediate:!0,flush:"post"}),c=()=>{l(),r()};return yc(c),c}function BB(){const i=d.ref(!1),e=d.getCurrentInstance();return e&&d.onMounted(()=>{i.value=!0},e),i}function gm(i){const e=BB();return d.computed(()=>(e.value,!!i()))}function ym(i,e={}){const{window:t=ro}=e,n=gm(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const o=d.ref(!1),r=c=>{o.value=c.matches},a=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",r):s.removeListener(r))},l=d.watchEffect(()=>{n.value&&(a(),s=t.matchMedia(Ac(i)),"addEventListener"in s?s.addEventListener("change",r):s.addListener(r),o.value=s.matches)});return yc(()=>{l(),a(),s=void 0}),o}function _B(i,e,t={}){const{window:n=ro,...s}=t;let o;const r=gm(()=>n&&"ResizeObserver"in n),a=()=>{o&&(o.disconnect(),o=void 0)},l=d.computed(()=>Array.isArray(i)?i.map(u=>ln(u)):[ln(i)]),c=d.watch(l,u=>{if(a(),r.value&&n){o=new ResizeObserver(e);for(const p of u)p&&o.observe(p,s)}},{immediate:!0,flush:"post"}),h=()=>{a(),c()};return yc(h),{isSupported:r,stop:h}}function kB(i,e={width:0,height:0},t={}){const{window:n=ro,box:s="content-box"}=t,o=d.computed(()=>{var u,p;return(p=(u=ln(i))==null?void 0:u.namespaceURI)==null?void 0:p.includes("svg")}),r=d.ref(e.width),a=d.ref(e.height),{stop:l}=_B(i,([u])=>{const p=s==="border-box"?u.borderBoxSize:s==="content-box"?u.contentBoxSize:u.devicePixelContentBoxSize;if(n&&o.value){const f=ln(i);if(f){const m=f.getBoundingClientRect();r.value=m.width,a.value=m.height}}else if(p){const f=Array.isArray(p)?p:[p];r.value=f.reduce((m,{inlineSize:y})=>m+y,0),a.value=f.reduce((m,{blockSize:y})=>m+y,0)}else r.value=u.contentRect.width,a.value=u.contentRect.height},t);mm(()=>{const u=ln(i);u&&(r.value="offsetWidth"in u?u.offsetWidth:e.width,a.value="offsetHeight"in u?u.offsetHeight:e.height)});const c=d.watch(()=>ln(i),u=>{r.value=u?e.width:0,a.value=u?e.height:0});function h(){l(),c()}return{width:r,height:a,stop:h}}function Am(i={}){const{window:e=ro,initialWidth:t=Number.POSITIVE_INFINITY,initialHeight:n=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=i,r=d.ref(t),a=d.ref(n),l=()=>{e&&(o?(r.value=e.innerWidth,a.value=e.innerHeight):(r.value=e.document.documentElement.clientWidth,a.value=e.document.documentElement.clientHeight))};if(l(),mm(l),TB("resize",l,{passive:!0}),s){const c=ym("(orientation: portrait)");d.watch(c,()=>l())}return{width:r,height:a}}function Or(){const{width:i,height:e}=Am(),t=ym("(pointer: coarse)"),n=d.ref(!1),s=d.ref(!1),o=d.ref(!0),r=d.ref("other"),a=d.ref("other"),l=d.ref("medium"),c=d.ref("portrait"),h=()=>{const m=navigator.userAgent.toLowerCase(),y=/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i,g=navigator;if("userAgentData"in navigator&&g.userAgentData?.mobile!==void 0)return g.userAgentData.mobile||y.test(m);if(y.test(m))return!0;const A=/windows nt/i.test(m),v=/macintosh|mac os x/i.test(m)&&!/mobile/i.test(m),b=/linux/i.test(m)&&!/android/i.test(m);return!1},u=()=>{const m=navigator.userAgent.toLowerCase();n.value=h(),s.value=i.value>=768&&i.value<1024&&t.value,o.value=!n.value,/iphone|ipad|ipod/i.test(m)?r.value="ios":/android/i.test(m)?r.value="android":/win/i.test(m)?r.value="windows":/mac/i.test(m)?r.value="macos":/linux/i.test(m)&&(r.value="linux"),/safari/i.test(m)&&!/chrome/i.test(m)?a.value="safari":/chrome/i.test(m)?a.value="chrome":/firefox/i.test(m)?a.value="firefox":/edge/i.test(m)&&(a.value="edge"),i.value<576?l.value="small":i.value<1024?l.value="medium":l.value="large",c.value=i.value>e.value?"landscape":"portrait"},p=()=>{u()};d.onMounted(()=>{u(),window.addEventListener("resize",p),window.addEventListener("orientationchange",p)}),d.onUnmounted(()=>{window.removeEventListener("resize",p),window.removeEventListener("orientationchange",p)});const f=()=>({isMobile:n.value,isTablet:s.value,isDesktop:o.value,isTouchDevice:t.value,os:r.value,browser:a.value,screenSize:l.value,orientation:c.value});return{isMobile:d.readonly(n),isTablet:d.readonly(s),isDesktop:d.readonly(o),isTouchDevice:d.readonly(t),os:d.readonly(r),browser:d.readonly(a),screenSize:d.readonly(l),orientation:d.readonly(c),width:i,height:e,info:f}}const PB={class:"title"},DB={class:"actions"},NB={class:"card-body"},LB=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:300},minWidth:{type:Number,default:200},fullHeight:{type:Boolean,default:!1},align:{type:String,default:""}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=d.inject("leiting-theme",d.ref("dark")),{isMobile:s}=Or(),o=e,r=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:E=>{o("update:visible",E),o("update:open",E)}}),a=d.ref(null),l=d.ref(t.initialPosition?.x||0),c=d.ref(t.initialPosition?.y||0),h=d.ref(t.width);d.watch(()=>t.width,E=>{h.value=E});const u=d.ref(t.fullHeight?"100%":"600px");d.watch(()=>t.fullHeight,E=>{E?u.value="100%":u.value==="100%"&&(u.value="600px")});const{height:p}=Am();d.watch(p,()=>{t.fullHeight&&(u.value="100%")});const f=d.ref(!1),m=E=>{f.value=!0,E.preventDefault(),E.stopPropagation();const S=E.clientX,w=E.clientY,T=typeof h.value=="number"?h.value:a.value?.offsetWidth||0,_=typeof u.value=="number"?u.value:a.value?.offsetHeight||0,F=L=>{if(!f.value)return;L.preventDefault();const D=L.clientX-S,M=L.clientY-w,k=T+D,B=_+M;k>100&&(h.value=k),B>100&&(u.value=B)},U=()=>{f.value=!1,document.removeEventListener("mousemove",F),document.removeEventListener("mouseup",U)};document.addEventListener("mousemove",F),document.addEventListener("mouseup",U)},y=d.computed(()=>({left:`${l.value}px`,top:`${c.value}px`,width:typeof h.value=="number"?`${h.value}px`:h.value,height:typeof u.value=="number"?`${u.value}px`:u.value,position:"absolute",zIndex:2e3})),g=()=>{d.nextTick(()=>{if(a.value){const E=a.value.offsetParent||document.body,S=E.clientWidth,w=E.clientHeight,T=typeof h.value=="number"?h.value:a.value.offsetWidth||350,_=typeof u.value=="number"?u.value:a.value.offsetHeight||600;l.value+T>S&&(l.value=Math.max(0,S-T-20)),c.value+_>w&&(c.value=Math.max(0,w-_-20)),l.value<0&&(l.value=0),c.value<0&&(c.value=0)}})},A=d.ref(!1),v=E=>{if(E.target.closest(".close-btn")||E.target.closest(".actions"))return;A.value=!0,E.preventDefault(),E.stopPropagation();const S=E.clientX,w=E.clientY,T=l.value,_=c.value,F=L=>{if(!A.value)return;L.preventDefault();const D=L.clientX-S,M=L.clientY-w;l.value=T+D,c.value=_+M},U=()=>{A.value=!1,document.removeEventListener("mousemove",F),document.removeEventListener("mouseup",U),g()};document.addEventListener("mousemove",F),document.addEventListener("mouseup",U)},b=()=>{d.nextTick(()=>{if(t.align&&a.value){const E=a.value.offsetParent||document.body,S=typeof h.value=="number"?h.value:a.value.offsetWidth||350;t.align==="right"?l.value=Math.max(0,E.clientWidth-S-20):t.align==="center"&&(l.value=Math.max(0,(E.clientWidth-S)/2))}g()})};d.onMounted(()=>{t.align?b():g()}),d.watch(r,E=>{E&&(t.align?b():g())});const C=()=>{r.value=!1,o("close")},x=E=>{if(E.target.closest(".close-btn")||E.target.closest(".actions")||E.touches.length!==1)return;A.value=!0,E.preventDefault(),E.stopPropagation();const S=E.touches[0],w=S?.clientX??0,T=S?.clientY??0,_=l.value,F=c.value,U=D=>{if(!A.value||D.touches.length!==1)return;D.preventDefault();const M=D.touches[0],k=(M?.clientX??0)-w,B=(M?.clientY??0)-T;l.value=_+k,c.value=F+B},L=()=>{A.value=!1,document.removeEventListener("touchmove",U),document.removeEventListener("touchend",L),g()};document.addEventListener("touchmove",U,{passive:!1}),document.addEventListener("touchend",L)},I=E=>{if(E.touches.length!==1)return;f.value=!0,E.preventDefault(),E.stopPropagation();const S=E.touches[0],w=S?.clientX??0,T=S?.clientY??0,_=typeof h.value=="number"?h.value:a.value?.offsetWidth||0,F=typeof u.value=="number"?u.value:a.value?.offsetHeight||0,U=D=>{if(!f.value||D.touches.length!==1)return;D.preventDefault();const M=D.touches[0],k=(M?.clientX??0)-w,B=(M?.clientY??0)-T,P=_+k,V=F+B;P>100&&(h.value=P),V>100&&(u.value=V)},L=()=>{f.value=!1,document.removeEventListener("touchmove",U),document.removeEventListener("touchend",L)};document.addEventListener("touchmove",U,{passive:!1}),document.addEventListener("touchend",L)};return(E,S)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{ref_key:"cardRef",ref:a,class:d.normalizeClass(["draggable-card leiting-scroll",["leiting-theme-"+d.unref(n)]]),style:d.normalizeStyle(y.value)},[d.createElementVNode("div",{ref:"headerRef",class:"card-header",onMousedown:v,onTouchstart:x},[d.createElementVNode("span",PB,d.toDisplayString(i.title),1),d.createElementVNode("div",DB,[d.renderSlot(E.$slots,"header-extra",{},void 0,!0),d.createElementVNode("span",{class:"close-btn",onClick:C},"×")])],544),d.createElementVNode("div",NB,[d.renderSlot(E.$slots,"default",{},void 0,!0)]),d.unref(s)?d.createCommentVNode("",!0):(d.openBlock(),d.createElementBlock("div",{key:0,class:"resize-handle",onMousedown:m,onTouchstart:I},[...S[0]||(S[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,r.value]])}}),Be=(i,e)=>{const t=i.__vccOpts||i;for(const[n,s]of e)t[n]=s;return t},gt=Be(LB,[["__scopeId","data-v-b158afe1"]]);function vm(i){const e=d.ref([]),t=d.ref([]),n=d.ref([]),s=d.ref(""),o=d.ref(!0);d.watch(()=>d.unref(i),u=>{if(!u||u.length===0)return;const p=[],f=(g,A)=>{g.forEach(v=>{const b=v.id||v.key||v.$id,C=v.modelId||A;C&&(v.modelId=C),b&&p.push(b),v.children&&v.children.length>0&&f(v.children,C)})};f(u);const m=new Set(n.value);let y=!1;p.forEach(g=>{m.has(g)||(m.add(g),y=!0)}),y&&(n.value=Array.from(m))},{immediate:!0,deep:!0});const r=d.computed(()=>{const u=d.unref(i);if(!u)return[];const p=[],f=(m,y)=>{m.forEach(g=>{const A=g.id||g.key||g.$id,v=g.name||g.title;p.push({key:A,title:v,parentKey:y}),g.children&&g.children.length>0&&f(g.children,A)})};return f(u),p}),a=u=>{e.value=u,o.value=!1},l=u=>{n.value=u},c=u=>{t.value=u},h=u=>r.value.find(f=>f.key===u)?.parentKey;return d.watch(s,u=>{if(!u)return;const f=r.value.filter(y=>y.title&&y.title.toLowerCase().includes(u.toLowerCase())).map(y=>y.parentKey),m=new Set;f.forEach(y=>{let g=y;for(;g;)m.add(g),g=h(g)}),e.value=[...m],o.value=!0}),{expandedKeys:e,selectedKeys:t,checkedKeys:n,searchValue:s,autoExpandParent:o,onExpand:a,onCheck:l,onSelect:c}}const RB={class:"search-box"},FB={key:0},OB={style:{color:"#f50"}},GB={key:1},UB={key:1,class:"empty-tip"},Gr=Be(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(i,{emit:e}){const t=re.Input.Search,n=re.Tree,s=i,o=e,r=d.inject("leiting-theme",d.ref("dark")),a=d.inject("leitingMethods"),l=T=>{a?.value?.onSearchComponent&&a.value.onSearchComponent(T)},c=d.computed({get:()=>s.open!==void 0?s.open:s.visible,set:T=>{o("update:visible",T),o("update:open",T)}}),h=d.ref(null),{height:u}=kB(h),p=d.computed(()=>u.value||300),f=d.ref({children:"children",title:"name",key:"id"}),m=d.ref([]),{expandedKeys:y,selectedKeys:g,checkedKeys:A,searchValue:v,autoExpandParent:b}=vm(d.toRef(s,"treeData")),C=(T,_)=>{if(!_)return T;const F=_.toLowerCase();return T.reduce((U,L)=>{const M=(L.name||L.title||"").toLowerCase().includes(F);if(L.children&&L.children.length>0){const k=C(L.children,_);(k.length>0||M)&&U.push({...L,children:k})}else M&&U.push({...L});return U},[])};d.watch([()=>s.treeData,v],([T,_])=>{T?m.value=C(T,_||""):m.value=[]},{immediate:!0,deep:!0});const x=T=>{y.value=T,b.value=!1},I=T=>{const _=[],F=U=>{if(!U.children||U.children.length===0){const D=U.element_Id;U.modelId&&D&&_.push({modelId:U.modelId,elementId:D})}else U.children.forEach(F)};return F(T),_},E=(T,_)=>{A.value=T,o("check",T,_);const F=[],U=new Set(T.map(D=>String(D))),L=D=>{for(let M=0;M<D.length;M++){const k=D[M];if(!k.children||k.children.length===0){if(!U.has(String(k.id))){const V=k.element_Id;k.modelId&&V&&F.push({modelId:k.modelId,elementId:V,show:!1})}}else k.children&&L(k.children)}};s.treeData&&L(s.treeData),a?.value?.setComponentVisibility&&a.value.setComponentVisibility(F),a?.value?.onTreeCheck&&a.value.onTreeCheck(T,_)},S=(T,_)=>{if(g.value=T,o("select",T,_),_.selected){const F=I(_.node);F.length>0&&a?.value?.flyToObjects&&a.value.flyToObjects({selectCpts:F})}a?.value?.onTreeSelect&&a.value.onTreeSelect(T,_)},w=()=>{o("update:visible",!1),o("close")};return(T,_)=>(d.openBlock(),d.createBlock(gt,{visible:c.value,"onUpdate:visible":_[1]||(_[1]=F=>c.value=F),title:i.title,"initial-position":i.initialPosition,"full-height":i.fullHeight,onClose:w},{default:d.withCtx(()=>[d.createElementVNode("div",{class:d.normalizeClass(["leiting-tree-container",[`theme-${d.unref(r)}`]])},[d.createElementVNode("div",RB,[d.createVNode(d.unref(t),{value:d.unref(v),"onUpdate:value":_[0]||(_[0]=F=>d.isRef(v)?v.value=F:null),placeholder:"搜索构件","allow-clear":"","enter-button":"",onSearch:l},null,8,["value"])]),d.createElementVNode("div",{class:"tree-wrapper",ref_key:"treeWrapperRef",ref:h},[m.value&&m.value.length?(d.openBlock(),d.createBlock(d.unref(n),{key:0,"tree-data":m.value,"field-names":f.value,height:p.value,"expanded-keys":d.unref(y),"auto-expand-parent":d.unref(b),"selected-keys":d.unref(g),"checked-keys":d.unref(A),checkable:"","block-node":"",onExpand:x,onSelect:S,onCheck:E},{title:d.withCtx(({name:F,title:U})=>[(F||U)&&d.unref(v)&&(F||U).toLowerCase().indexOf(d.unref(v).toLowerCase())>-1?(d.openBlock(),d.createElementBlock("span",FB,[d.createTextVNode(d.toDisplayString((F||U).substr(0,(F||U).toLowerCase().indexOf(d.unref(v).toLowerCase())))+" ",1),d.createElementVNode("span",OB,d.toDisplayString(d.unref(v)),1),d.createTextVNode(" "+d.toDisplayString((F||U).substr((F||U).toLowerCase().indexOf(d.unref(v).toLowerCase())+d.unref(v).length)),1)])):(d.openBlock(),d.createElementBlock("span",GB,d.toDisplayString(F||U),1))]),_:1},8,["tree-data","field-names","height","expanded-keys","auto-expand-parent","selected-keys","checked-keys"])):(d.openBlock(),d.createElementBlock("div",UB,"暂无数据"))],512)],2)]),_:1},8,["visible","title","initial-position","full-height"]))}}),[["__scopeId","data-v-3748c20d"]]),VB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",Ur="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAERSURBVDhPvZTrEYIwEISTCrQD6EA7gA60AylBK1Aq0A7ECrQDoQPsADrACuLuTMJkIiHxjzezgyR7H3d5KJVSqRAigcaQUjYYX2JgZY/P/O4lEgYYFo7pgPcc2kSCBoIUzDeo0klPPEsNYlX7AKzA/M6ASrRzYoIGG5DAOCvzBvzMOxqQazSgLLI1QdAW5jWpUAPV0AVKIc7FRCuNy7RkWozJtj1BED7ANbpDXHhffFXUwUnZwRYp7qw7Rx8/lLkV9R4QD2w1A8pjW3sA4h5au+pXEBS76P8D6Ut9/nXXaiRQdnBXqBfEC+4GdzSxW5v6F7CTeHnbCVCBsWIE+RYVrdF4DSz6OwgiADDexbmT3X0A4fSDfDjUugcAAAAASUVORK5CYII=",QB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAFESURBVDhPlZMNEcIwDIVXBQwFgAJAAcMBDgAFIGE4wAHgABSwOdgcIAEUjPd6aS/rfhi7y12bJl9f0sxEf3xVVV0RPoetjTFvnWqGcgSylfgihA0CKcgJgBfsAqMiKiM0+gkKlCyZCN8uhPWCFOSBxARWORU4W2CdeV9XjxSEJcwkjokTqBpzjxjCn7CyVRECzjg8wHLYCmabK7CplBcLhMr2DZCqP0dCovYZ9hYGXx1izLUGUkkfxI/sTQiCf4N1zLWAWCKV2nP6PEhB2Ngd7B4GC4SJnCcP8SAFoc/Ph/TqjVvTPogFKUiJ/VGU+GdmUAA5ObA7cyC+iPt/MjUfKRL4emyuK+cGH8tufFRUHywZ+RYlnRDdIwfzLzVUibtQv1oNhoAExtfpVdIAiQIOWiY9o2sQxJemOydTS1jR1di2Zn8B8f27apou9kMAAAAASUVORK5CYII=",zB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAHDSURBVDhPlZOxL0NRFIe9ECubhehoIIjJ1HYwCkIiJpUQEkN1YZBobU0kFKNI3iTGYrDRv0BIhLXCYpCwiO35fs25zWva98JNvpz37j33d8+551yvLWIEQXDG0izMe55XjvJz816MUJG1LVuvYJcQrEb5xwkV2JSHGfAhgBJiu63E4oSUzpRtusa+wBooKkWnKOujQYh7SbCShQx0m9cpds4iOseOw7BFmUPwU341IQT2MaOQgi9QND+wiqNnBxT4X7SIbrAqhNI9wiUvJ+W8A99wDEWdwrw25iVkkenAEb5LkIQPuIMJWJGQoriFd+iBCkhc8zUhfJSm7mva5l3aadubDgtpMgGKpB/eoBfuQZFoPNhBj9gTaC3kKkEEGXPswF7Y5rLro1AW8UI6GmelmAzfkUWlNaWt6/iT0DOOA5bqoSuzHfIvofATqSJQb8KoiJbtPi6x2dA9FPjXE1F/uZKrv3IwCFcNqVmoPlal7QJ9q/wZCbk7Ioo9/tehE9q1r0nIxNQbG4YEXdkVjQ5J2OZXbB88gVrgQIJNj9aaT4LboPK7J6O0Ktb1KYtc/aYxGff6h3AYY6Nvzk2GQ1WQTVj4BST70jYaqceXAAAAAElFTkSuQmCC",HB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADhSURBVHgBvVOBEYIwDEw9B2ADO4IjuIEjwAa6Aa7ABMAEuIIjOIFsUDao37vgxVZbBI+/+0tI0+fJBaIIrLUFaMAHmNNcsMAIE+vdJLQykQ+0wFHBrsyiT/sL2I1DDTac/+4Klzobov7WHxt29qGmaYaQnlhLCmUTa2l4C2ljvamFlEvY0xpCW/kA924GblfGWciZaJyXQvSmlOoDITSdXQBbcA8eKfy/nHDFeY470FIX8tzUIu84FmLWuTzz7yhRLPm54dKJ4+A5uoJ3HgHBUfUmxGIa4QDuKA4n3kLk9ZInw0qu5b1R1aYAAAAASUVORK5CYII=",YB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADFSURBVDhPxVPBDYMwDIwnKJu0G9ANYJMyQrsBbNIRGAE2gEnSO6mpIMJxkBC1lEds52zfOeK9b51zV5wte4lIr8RWbgGQh2fGmaIHJe4EetKPtDpRcA5AvwcB7FtgCcTOH0p3YzaQNd75QBiVXJG3LRtCRyQ6Jvsekd3gTsJVoDcihZLQQjXGTRMzIzPhOCCQyNYvSuEue7Qdm02yK0u1nM2m/FQyKb8JZHH+l81Ofdpdm82tvikjThyNlbSEBvIPFj+MfwA76qSYUG3g9QAAAABJRU5ErkJggg==",bm="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEcSURBVDhPrZSNDYIwEIXpBOIGjMAIOIE4AbgBGwAbOIJu4Aa4gW4gI+gE9b3mjjSmibSR5ALX3H33W4y1Ns+yrIe0EH7HPC8YnyGjAegkEB5cYyiwrdWXIEc1xnSREGcuiTQEWeg7gG4+CMcl9ALnLkvogwScv+wq6FMQJJCJDgBtBcSAI3QClwe2YZAHcY2Ho4kGAVLA6U5/CEvdp4KYhesFhBPpCZIAz6jStHhproJcHyAHbb5nF+6RZ8CsGslIQaHp/gSxRzlApU4GugPxNuDN/eNarAJxapUPgm8rQ9C1SAI9AOGiHhGApSdnRN8FshbEiLwiLI1rMUM6zSQ0tX9c2lp/Iw0iMIPU38iFIN1mTmOjKa98vyWB4QM5XQnvsbFsyAAAAABJRU5ErkJggg==",$B="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAGPSURBVDhPrZT9UQIxEMUvFSgViBUoFQgVABV4VqBW4FmBUIFQgZRwVqBU4HUAVHC+X2aXycQw/sPOvLncZvdlv5JQFaTv+1upp8IyhLDHRLpLfe6FrXRt7hZShYyH+n8RauGAv/AkQNYIHICshFcRdu6fE/kGRN/mQGTIpzAzMoh6EV2fIsJ5IwNOj2IpVZ6i6difSecRVnlELZHIgHROisgXRCa78Z+IrMBf2pjLYJNENGSd1kO2pPghjKQniyqY8lFr2NfaqC18wn7nZCMlWg7xLq70TxfRLyHqtABN2lbp40mSSCzBcSebif1TPyKjDBcQ0eJJRkIUpHkMPUlnkBU+pnlWItL6ERgw8o1iqRHtgzAUGNRD2qmkvgMvNnneUQcZ4ggR6VGXG+OOA1koNvrFcY7+af++VJe0hucfyKQu+RWJc+SDZ3aNvlPpRl7T0qXdafNZYPDehLEZt/rOBR9U8QSaEKX0jHAaE4tshVrgLeJ+Xdl6rS8D3BWJXKnCEwWXEuco9grQ3bb0sP0Cn8/nPm/SMRQAAAAASUVORK5CYII=",jB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACDSURBVHgB1ZFhDYAgEIWfzgBGIIINpIEViGAkG2gEbWADjWADfMw/iDgUfji/7e3gxt3uHsDXZFrrlrFBHJNpsPAgEEmORArn3lFroEZQCjcTbAhzepPsgbuCgn8FBWvsUAMfFR5OIPGS5G80JkrG2sopHKbO1BCoHy8ZNhRUT5X4BTu6qyNSwwCiMAAAAABJRU5ErkJggg==",WB={class:"menu-container"},qB=["onClick","title"],KB={class:"menu-icon"},XB=["src","alt"],JB={key:3,style:{"font-size":"12px"}},ZB={key:0,class:"sub-menu"},e3=["onClick"],ao=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(i,{emit:e}){const t=i,n=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(()=>n.value||n),a=d.computed(()=>s.value||s),l=d.ref([{ID:"home",title:"主视角",src:VB,key:"homeView"},{ID:"tree",title:"目录树",src:Ur,key:"componentTree"},{ID:"cadLayer",title:"图层",src:Ur,key:"cadLayer"},{ID:"gisCadPosition",title:"GIS调整",src:bm,key:"gisCadPosition"},{ID:"measure",title:"量算",src:QB,key:"measurement"},{ID:"section",title:"剖切",src:zB,key:"section"},{ID:"roam",title:"人物漫游",src:HB,key:"roam"},{ID:"info",title:"构件信息",src:YB,key:"componentInfo"},{ID:"cadPosition",title:"调整位置",src:bm,key:"cadPosition"},{ID:"annotation",title:"标注",src:jB,key:"annotation"},{ID:"setting",title:"场景配置",src:$B,key:"setting"}]),c=d.ref([]),h=d.ref([...t.activeIds]);d.watch(()=>t.activeIds,C=>{h.value=[...C]},{deep:!0});const u=d.computed(()=>t.visible);o.value&&o.value.menuEvents&&(o.value.menuEvents.on("setMenuListFilter",C=>{c.value=C}),o.value.menuEvents.on("setMenuActive",(C,x)=>{x?h.value.includes(C)||h.value.push(C):h.value=h.value.filter(I=>I!==C)}));const p=d.computed(()=>{let C=l.value;if(t.is2d){const x=["homeView","measurement","cadLayer","gisCadPosition","annotation"];C=C.filter(I=>I.key&&x.includes(I.key))}else{const x=["cadLayer","cadPosition","gisCadPosition","annotation"];C=C.filter(I=>!I.key||!x.includes(I.key))}if(c.value.length>0&&(C=C.filter(x=>!x.key||!c.value.includes(x.key))),t.customItems&&t.customItems.length>0){const x=t.customItems.map(I=>({...I,key:I.ID,src:I.src||I.icon}));return[...C,...x]}return C}),f=e,m=C=>{const x=["homeView"];if(C.key&&x.includes(C.key))h.value.includes(C.ID)||(h.value.push(C.ID),setTimeout(()=>{const E=h.value.indexOf(C.ID);E>-1&&h.value.splice(E,1)},1e3));else{const E=h.value.indexOf(C.ID);E>-1?h.value.splice(E,1):h.value.push(C.ID)}const I=h.value.includes(C.ID);C.func&&C.func(C),C.key&&f("action",C.key,I)},y=C=>{c.value=C},g=C=>{},A=(C,x)=>{const I=p.value.find(E=>E.ID===C||E.key===C);if(I){const E=h.value.indexOf(I.ID);x&&E===-1?h.value.push(I.ID):!x&&E>-1&&h.value.splice(E,1)}};let v=null;const b=()=>{o.value?.menuEvents&&(v&&(v.off("setMenuListFilter",y),v.off("showMenu",g),v.off("setMenuActive",A)),v=o.value.menuEvents,v.on("setMenuListFilter",y),v.on("showMenu",g),v.on("setMenuActive",A))};return d.onMounted(()=>{b()}),d.onUnmounted(()=>{v&&(v.off("setMenuListFilter",y),v.off("showMenu",g),v.off("setMenuActive",A))}),d.watch(o,()=>{b()},{deep:!0}),(C,x)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{class:d.normalizeClass(["leiting-menu-wrapper",["leiting-theme-"+r.value,"size-"+a.value]])},[d.createElementVNode("div",WB,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(p.value,I=>(d.openBlock(),d.createElementBlock("div",{key:I.ID,class:d.normalizeClass(["menu-item",{active:h.value.includes(I.ID)}]),onClick:E=>m(I),title:I.title},[d.createElementVNode("div",KB,[I.src?(d.openBlock(),d.createElementBlock("img",{key:0,src:I.src,alt:I.title},null,8,XB)):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",JB,d.toDisplayString(I.title.substring(0,2)),1))]),I.children&&I.children.length>0?(d.openBlock(),d.createElementBlock("div",ZB,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(I.children,E=>(d.openBlock(),d.createElementBlock("div",{key:E.ID,class:d.normalizeClass(["sub-menu-item",{active:h.value.includes(E.ID)}]),onClick:d.withModifiers(S=>m(E),["stop"])},d.toDisplayString(E.title),11,e3))),128))])):d.createCommentVNode("",!0)],10,qB))),128))])],2)),[[d.vShow,u.value]])}}),t3={class:"leiting-section-content"},i3={class:"section-form-item"},n3={class:"radio-group"},s3={class:"section-form-item"},o3={class:"switch-container"},r3={class:"switch"},a3={class:"status-text"},l3={class:"section-form-item slider-item"},c3={class:"slider-wrapper"},d3={class:"section-form-item slider-item"},h3={class:"slider-wrapper"},u3={class:"section-form-item slider-item"},f3={class:"slider-wrapper"},p3={class:"section-form-item table-item"},m3={class:"model-table-container"},g3={class:"model-table"},y3={width:"40"},A3=["checked"],v3=["onClick"],b3=["value"],w3={class:"model-name"},lo=Be(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(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:L=>{n("update:visible",L),n("update:open",L)}}),r=d.ref("Box"),a=d.ref(!1),l=d.ref([]),c=d.ref([]),h=d.computed(()=>c.value.length===0?!1:c.value.every(L=>l.value.includes(L.modelId))),u=L=>{L.target.checked?l.value=c.value.map(M=>M.modelId):l.value=[],w()},p=d.ref([-10,10]),f=d.ref([-10,10]),m=d.ref([-10,10]),y=d.ref([-100,100]),g=d.ref([-100,100]),A=d.ref([-100,100]);let v=!1;const b=L=>{v=!0;const{targetZPlus:D,targetZMinus:M,targetXPlus:k,targetXMinus:B,targetYPlus:P,targetYMinus:V}=L;m.value=[-M,D],p.value=[-B,k],f.value=[-V,P],setTimeout(()=>{v=!1},100)},C=()=>{v||l.value.length===0||!s?.value?.updateSectionRange||s.value.updateSectionRange({targetZPlus:m.value[1],targetZMinus:-m.value[0],targetXPlus:p.value[1],targetXMinus:-p.value[0],targetYPlus:f.value[1],targetYMinus:-f.value[0]})},x=()=>{s?.value?.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(a.value)},I=L=>{if(!s?.value?.getMapTileset||!s?.value?.openSection)return;const M=s.value.getMapTileset()[L];if(M&&M.leiting?.box){const{min:k,max:B}=M.leiting.box,P=(B.x-k.x)/2,V=(B.y-k.y)/2,G=(B.z-k.z)/2;l.value.length<=1&&(y.value=[-P*2,P*2],g.value=[-V*2,V*2],A.value=[-G*2,G*2],p.value=[-P,P],f.value=[-V,V],m.value=[-G,G],s.value.updateSectionRange&&s.value.updateSectionRange({targetZPlus:G,targetZMinus:G,targetXPlus:P,targetXMinus:P,targetYPlus:V,targetYMinus:V})),s.value.openSection(L,{moveCallBack:b}),s.value.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(a.value)}},E=L=>{const D=l.value.indexOf(L);D>-1?l.value.splice(D,1):l.value.push(L),w()};let S=[];const w=()=>{const L=l.value.filter(M=>!S.includes(M)),D=S.filter(M=>!l.value.includes(M));L.forEach(M=>I(M)),D.forEach(M=>{s?.value?.closeSection&&s.value.closeSection(M)}),S=[...l.value]},T=()=>{},_=()=>{o.value=!1,n("close")},F=()=>{a.value=!1,l.value=[],S=[],p.value=[-10,10],f.value=[-10,10],m.value=[-10,10],y.value=[-100,100],g.value=[-100,100],A.value=[-100,100]};d.watch(()=>t.visible,L=>{L?U():(s?.value?.closeSection&&s.value.closeSection(),F())});const U=()=>{s?.value&&typeof s.value.getModelList=="function"&&(c.value=s.value.getModelList()||[],c.value.length>0&&l.value.length===0&&(l.value=[c.value[0].modelId],S=[...l.value]),t.visible&&l.value.length>0&&(a.value=!0,l.value.forEach(L=>I(L))))};return d.watch(()=>s?.value,()=>{U()},{immediate:!0,deep:!0}),d.onMounted(()=>{U()}),(L,D)=>(d.openBlock(),d.createBlock(gt,{visible:o.value,title:"剖切分析","full-height":i.fullHeight,"onUpdate:visible":_},{default:d.withCtx(()=>[d.createElementVNode("div",t3,[d.createElementVNode("div",i3,[D[8]||(D[8]=d.createElementVNode("span",{class:"label"},"模式",-1)),d.createElementVNode("div",n3,[d.createElementVNode("label",{class:d.normalizeClass(["radio-item",{active:r.value==="Box"}])},[d.withDirectives(d.createElementVNode("input",{type:"radio",value:"Box","onUpdate:modelValue":D[0]||(D[0]=M=>r.value=M),onChange:T},null,544),[[d.vModelRadio,r.value]]),D[7]||(D[7]=d.createTextVNode(" 剖切盒 ",-1))],2)])]),d.createElementVNode("div",s3,[D[10]||(D[10]=d.createElementVNode("span",{class:"label"},"显示",-1)),d.createElementVNode("div",o3,[d.createElementVNode("label",r3,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":D[1]||(D[1]=M=>a.value=M),onChange:x},null,544),[[d.vModelCheckbox,a.value]]),D[9]||(D[9]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",a3,d.toDisplayString(a.value?"显示":"隐藏"),1)])]),d.createElementVNode("div",l3,[D[11]||(D[11]=d.createElementVNode("span",{class:"label"},"X 轴",-1)),d.createElementVNode("div",c3,[d.createVNode(d.unref(re.Slider),{value:p.value,"onUpdate:value":D[2]||(D[2]=M=>p.value=M),range:"",min:y.value[0],max:y.value[1],step:.1,onChange:C},null,8,["value","min","max"])])]),d.createElementVNode("div",d3,[D[12]||(D[12]=d.createElementVNode("span",{class:"label"},"Y 轴",-1)),d.createElementVNode("div",h3,[d.createVNode(d.unref(re.Slider),{value:f.value,"onUpdate:value":D[3]||(D[3]=M=>f.value=M),range:"",min:g.value[0],max:g.value[1],step:.1,onChange:C},null,8,["value","min","max"])])]),d.createElementVNode("div",u3,[D[13]||(D[13]=d.createElementVNode("span",{class:"label"},"Z 轴",-1)),d.createElementVNode("div",f3,[d.createVNode(d.unref(re.Slider),{value:m.value,"onUpdate:value":D[4]||(D[4]=M=>m.value=M),range:"",min:A.value[0],max:A.value[1],step:.1,onChange:C},null,8,["value","min","max"])])]),d.createElementVNode("div",p3,[D[15]||(D[15]=d.createElementVNode("span",{class:"label"},"模型",-1)),d.createElementVNode("div",m3,[d.createElementVNode("table",g3,[d.createElementVNode("thead",null,[d.createElementVNode("tr",null,[d.createElementVNode("th",y3,[d.createElementVNode("input",{type:"checkbox",checked:h.value,onChange:u},null,40,A3)]),D[14]||(D[14]=d.createElementVNode("th",null,"名称",-1))])]),d.createElementVNode("tbody",null,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(c.value,M=>(d.openBlock(),d.createElementBlock("tr",{key:M.modelId,class:d.normalizeClass({selected:l.value.includes(M.modelId)}),onClick:k=>E(M.modelId)},[d.createElementVNode("td",null,[d.withDirectives(d.createElementVNode("input",{type:"checkbox",value:M.modelId,"onUpdate:modelValue":D[5]||(D[5]=k=>l.value=k),onClick:D[6]||(D[6]=d.withModifiers(()=>{},["stop"])),onChange:w},null,40,b3),[[d.vModelCheckbox,l.value]])]),d.createElementVNode("td",w3,d.toDisplayString(M.modelName),1)],10,v3))),128))])])])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-ee4d9a12"]]),C3={class:"leiting-player-content"},E3={class:"player-form-item"},x3={class:"switch-container"},I3={class:"switch"},S3={class:"status-text"},M3={class:"player-form-item"},T3={class:"switch-container"},B3={class:"switch"},_3={class:"status-text"},k3={class:"player-form-item"},P3={class:"switch-container"},D3={class:"switch"},N3={class:"status-text"},L3={class:"player-form-item slider-item"},R3={class:"slider-wrapper"},F3={class:"value-text"},O3={class:"instructions"},G3={class:"key-map"},U3={class:"key-row"},V3={class:"key-row"},Q3={class:"key-row"},z3={class:"key-row"},H3={class:"key-row"},Y3={class:"key-row"},co=Be(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(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref(!1),r=d.ref(!1),a=d.ref(!0),l=d.ref(5),c=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:I=>{n("update:visible",I),n("update:open",I)}}),h=d.ref(null),u=d.ref(null),p=d.ref(null),f=d.ref(null),m=d.ref(null),y=d.ref(null),g=()=>{o.value?v():b()},A=()=>{s?.value?.setPlayerParams&&s.value.setPlayerParams({gravityTest:r.value,collisionTest:a.value})},v=async()=>{s?.value?.openPlayer&&(await s.value.openPlayer(),s.value.setPlayerSpeed&&s.value.setPlayerSpeed(l.value),A(),s.value.bindPlayerUiKeys&&(await d.nextTick(),s.value.bindPlayerUiKeys({moveFront:h.value,moveBack:u.value,moveLeft:p.value,moveRight:f.value,moveUp:m.value,moveDown:y.value})))},b=()=>{s?.value?.closePlayer&&s.value.closePlayer()},C=()=>{s?.value?.setPlayerSpeed&&s.value.setPlayerSpeed(l.value)},x=()=>{c.value=!1,n("close")};return d.watch(()=>t.visible,I=>{I?(o.value=!0,s?.value?v():setTimeout(()=>{s?.value&&v()},100)):o.value&&(o.value=!1,b())},{immediate:!0}),(I,E)=>(d.openBlock(),d.createBlock(gt,{title:i.title,visible:c.value,"full-height":i.fullHeight,"onUpdate:visible":x},{default:d.withCtx(()=>[d.createElementVNode("div",C3,[d.createElementVNode("div",E3,[E[5]||(E[5]=d.createElementVNode("span",{class:"label"},"启用",-1)),d.createElementVNode("div",x3,[d.createElementVNode("label",I3,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":E[0]||(E[0]=S=>o.value=S),onChange:g},null,544),[[d.vModelCheckbox,o.value]]),E[4]||(E[4]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",S3,d.toDisplayString(o.value?"开启":"关闭"),1)])]),d.createElementVNode("div",M3,[E[7]||(E[7]=d.createElementVNode("span",{class:"label"},"重力",-1)),d.createElementVNode("div",T3,[d.createElementVNode("label",B3,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":E[1]||(E[1]=S=>r.value=S),onChange:A},null,544),[[d.vModelCheckbox,r.value]]),E[6]||(E[6]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",_3,d.toDisplayString(r.value?"开启":"关闭"),1)])]),d.createElementVNode("div",k3,[E[9]||(E[9]=d.createElementVNode("span",{class:"label"},"碰撞",-1)),d.createElementVNode("div",P3,[d.createElementVNode("label",D3,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":E[2]||(E[2]=S=>a.value=S),onChange:A},null,544),[[d.vModelCheckbox,a.value]]),E[8]||(E[8]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",N3,d.toDisplayString(a.value?"开启":"关闭"),1)])]),d.createElementVNode("div",L3,[E[10]||(E[10]=d.createElementVNode("span",{class:"label"},"速度",-1)),d.createElementVNode("div",R3,[d.createVNode(d.unref(re.Slider),{value:l.value,"onUpdate:value":E[3]||(E[3]=S=>l.value=S),min:1,max:10,step:1,onChange:C},null,8,["value"])]),d.createElementVNode("span",F3,d.toDisplayString(l.value),1)]),E[19]||(E[19]=d.createElementVNode("div",{class:"divider"},null,-1)),d.createElementVNode("div",O3,[E[18]||(E[18]=d.createElementVNode("div",{class:"instruction-title"},"操作说明",-1)),d.createElementVNode("div",G3,[d.createElementVNode("div",U3,[d.createElementVNode("span",{class:"key",ref_key:"btnFront",ref:h},"W",512),E[11]||(E[11]=d.createTextVNode(" 前进 ",-1))]),d.createElementVNode("div",V3,[d.createElementVNode("span",{class:"key",ref_key:"btnBack",ref:u},"S",512),E[12]||(E[12]=d.createTextVNode(" 后退 ",-1))]),d.createElementVNode("div",Q3,[d.createElementVNode("span",{class:"key",ref_key:"btnLeft",ref:p},"A",512),E[13]||(E[13]=d.createTextVNode(" 左移 ",-1))]),d.createElementVNode("div",z3,[d.createElementVNode("span",{class:"key",ref_key:"btnRight",ref:f},"D",512),E[14]||(E[14]=d.createTextVNode(" 右移 ",-1))]),d.createElementVNode("div",H3,[d.createElementVNode("span",{class:"key",ref_key:"btnUp",ref:m},"Q",512),E[15]||(E[15]=d.createTextVNode(" 上升 ",-1))]),d.createElementVNode("div",Y3,[d.createElementVNode("span",{class:"key",ref_key:"btnDown",ref:y},"E",512),E[16]||(E[16]=d.createTextVNode(" 下降 ",-1))]),E[17]||(E[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-ff3f266e"]]),$3={class:"info-content"},j3={key:0,class:"component-title"},ho=Be(d.defineComponent({__name:"LeitingInfo",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref([]),r=d.ref(!1),a=d.ref([]),l=d.ref([]),c=d.ref(0),h=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:A=>{n("update:visible",A),n("update:open",A)}}),u=()=>{h.value=!1},p=A=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[A]||A,f=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],m=async A=>{const v=++c.value;if(l.value=A,!A||A.length===0){o.value=[];return}if(!h.value)return;let b=A;A.length>10&&(me.warning(`选中构件数量过多(${A.length}个),仅显示前10个`),b=A.slice(0,10));const C=s?.value;let x=C?.getMapTileset?C.getMapTileset():{};r.value=!0;const I=[],E={};b.forEach(T=>{const F=x[T.modelId]?.leiting?.model?.dbName;F&&T.elementId&&I.push({dbName:F,elementId:T.elementId,modelId:T.modelId})});const S=new Set;if(b.forEach(T=>{const _=x[T.modelId],F=`${T.modelId}_${T.elementId}`;E[F]||_&&_.leiting&&!_.leiting?.node?.nodeExtras&&_.leiting.model?.nodeUrl&&S.add(T.modelId)}),S.size>0&&C?._loadNodeDetailsForModel)try{const T=Array.from(S).map(_=>C._loadNodeDetailsForModel(_));await Promise.all(T)}catch(T){console.error("Failed to load node details",T)}if(v!==c.value)return;x=C?.getMapTileset?C.getMapTileset():{};const w=[];b.forEach((T,_)=>{const U=x[T.modelId]?.leiting||{},L=E[`${T.modelId}_${T.elementId}`];let D={modelName:U.model?.modelId||T.modelId};D.elementID||(D.elementID=T.elementId);let M=null;if(L)M=L;else{const P=U.node?.nodeExtras?.element||U.node?.nodeExtras;if(P){const V=D.elementID;P[V]&&(M=P[V])}}M&&M.box3&&(D.length=`${M.box3.length?.toFixed(2)||0}米`,D.width=`${M.box3.width?.toFixed(2)||0}米`,D.height=`${M.box3.height?.toFixed(2)||0}米`);const k=[];M&&(M.name&&(D.elementName=M.name),M.categoryName&&(D.categoryName=M.categoryName),M.familySymbolName&&(D.familySymbolName=M.familySymbolName),M.levelName&&(D.levelName=M.levelName));const B={};if(f.forEach(P=>{D[P]!==void 0&&(B[P]=D[P])}),k.push({name:"基础信息",params:B}),M){const P=Array.isArray(M)?M:Array.isArray(M?.parameters)?M.parameters:null;if(P){if(P.flat().forEach(G=>{if(G&&G.GroupName&&Array.isArray(G.Parameters)){const R={};G.Parameters.forEach(N=>{N.name&&(R[N.name]=N.value??"")}),Object.keys(R).length>0&&k.push({name:G.GroupName,params:R})}}),!Array.isArray(M)){const{parameters:G,...R}=M,N={};Object.keys(R).forEach(O=>{!f.includes(O)&&O!=="uniqueId"&&typeof R[O]!="object"&&(N[O]=R[O])}),Object.keys(N).length>0&&k.push({name:"其他属性",params:N})}}else{let V=!1;if(Object.keys(M).forEach(G=>{M[G]&&typeof M[G]=="object"&&!Array.isArray(M[G])&&(V=!0,k.push({name:G,params:M[G]}))}),!V){const G={};Object.keys(M).forEach(R=>{if(!f.includes(R)&&R!=="batchId"){const N=M[R];typeof N=="string"&&N.length>500?G[R]=N.substring(0,500)+"...":G[R]=N}}),Object.keys(G).length>0&&k.push({name:"属性",params:G})}}}w.push({id:_,title:`${D.modelName}${D.elementName?` - ${D.elementName}`:""}`,groups:k})}),o.value=w,v===c.value&&(r.value=!1),w.length>0?a.value=[`${w[0].id}-基础信息`]:a.value=[]};let y=!1;const g=()=>{if(y)return;const A=s?.value;A&&A.selectionChange&&(A.selectionChange(m),y=!0)};return d.watch(()=>s?.value,()=>{g()},{deep:!0,immediate:!0}),d.watch(h,A=>{A&&l.value.length>0&&m(l.value)}),d.onMounted(()=>{g()}),(A,v)=>(d.openBlock(),d.createBlock(gt,{visible:h.value,title:"构件详情",width:350,align:"right","initial-position":{x:0,y:0},"full-height":i.fullHeight,onClose:u,"onUpdate:visible":v[1]||(v[1]=b=>h.value=b),class:"base-info-card"},{default:d.withCtx(()=>[d.createElementVNode("div",$3,[d.createVNode(d.unref(re.Spin),{spinning:r.value},{default:d.withCtx(()=>[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(o.value,b=>(d.openBlock(),d.createElementBlock("div",{key:b.id,class:"component-block"},[o.value.length>1?(d.openBlock(),d.createElementBlock("div",j3,d.toDisplayString(b.title),1)):d.createCommentVNode("",!0),d.createVNode(d.unref(re.Collapse),{activeKey:a.value,"onUpdate:activeKey":v[0]||(v[0]=C=>a.value=C),ghost:"","expand-icon-position":"end"},{default:d.withCtx(()=>[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(b.groups,C=>(d.openBlock(),d.createBlock(d.unref(re.CollapsePanel),{key:`${b.id}-${C.name}`,header:C.name},{default:d.withCtx(()=>[d.createVNode(d.unref(re.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,(x,I)=>(d.openBlock(),d.createBlock(d.unref(re.DescriptionsItem),{key:I,label:p(String(I))},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(x),1)]),_:2},1032,["label"]))),128))]),_:2},1024)]),_:2},1032,["header"]))),128))]),_:2},1032,["activeKey"])]))),128))]),_:1},8,["spinning"])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-375a1f55"]]);class vc{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 n=`adjust-marker-${e}-${Date.now()}`;e==="BIM"?this.bimEntityId=n:this.mapEntityId=n,this.viewer.entities.add({id:n,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 n;try{n=this.viewer.scene.pickPosition(t.position)}catch(s){console.warn("pickPosition failed:",s)}if(!n){const s=this.viewer.camera.getPickRay(t.position);n=this.viewer.scene.globe.pick(s,this.viewer.scene)}if(n||(n=this.viewer.camera.pickEllipsoid(t.position,this.viewer.scene.globe.ellipsoid)),n){const s=this.Cesium.Cartographic.fromCartesian(n),o=this.Cesium.Math.toDegrees(s.longitude),r=this.Cesium.Math.toDegrees(s.latitude),a=s.height;e({longitude:o,latitude:r,height:a})}},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 W3={class:"leitingbim-model-adjust-panel"},q3={class:"leitingbim-control-panel"},K3={class:"form-item"},X3={class:"radio-group"},J3={class:"form-item"},Z3={class:"radio-group"},e_={class:"form-item"},t_={class:"value"},i_={class:"param-row"},n_={class:"param-row"},s_={class:"param-row"},o_={class:"param-row"},r_={class:"param-row"},a_={class:"param-row"},l_={class:"param-row"},c_={class:"button-grid"},d_={key:1,class:"pick-mode-ui"},h_={class:"form-item",style:{display:"block","margin-bottom":"15px"}},u_={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},f_=["checked"],p_={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},m_={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},g_={class:"form-item",style:{display:"block","margin-bottom":"15px"}},y_={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},A_=["checked"],v_={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},b_={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},w_={class:"list-panel"},C_={class:"list-header"},E_={class:"col-check"},x_=["checked"],I_={class:"list-body"},S_={class:"col-check"},M_=["onUpdate:modelValue"],T_={class:"col-index"},B_=["title"],__={class:"col-main"},k_=["checked","onChange"],uo=Be(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(i,{expose:e,emit:t}){const n=i,s=t,o=d.computed({get:()=>n.open!==void 0?n.open:n.visible,set:G=>{s("update:visible",G),s("update:open",G)}}),r=d.inject("leitingMethods"),a=d.ref("BIM"),l=d.ref("param"),c=d.ref(!1),h=d.ref(""),u=d.ref([]),p=d.ref("BIM"),f=d.ref(null),m=d.ref(null),y=d.ref(null),g=()=>(!y.value&&r?.value?.getViewer&&r?.value?.getCesium&&(y.value=new vc(r.value.getViewer(),r.value.getCesium())),y.value),A=()=>{g()?.clearMarkers(),f.value=null,m.value=null},v=(G,R)=>{G==="BIM"?f.value=R:m.value=R,g()?.addMarker(G,R),me.success(`${G==="BIM"?"BIM":"地图"}标记点已添加`)},b=()=>{g()?.registerPickHandler(G=>{v(p.value,G)})},C=()=>{g()?.destroyPickHandler()},x=()=>{if(!f.value||!m.value){me.warning("请先选择BIM标记点和地图标记点");return}if(!h.value){me.warning("请先选择主模型");return}const G=g();let R=0,N=0,O=0;if(G){const{dLon:z,dLat:j,dHeight:Z}=G.calculateOffset(f.value,m.value);R=z,N=j,O=Z}else R=m.value.longitude-f.value.longitude,N=m.value.latitude-f.value.latitude,O=m.value.height-f.value.height;E.value.longitude+=R,E.value.latitude+=N,E.value.height+=O,M(h.value,{longitude:E.value.longitude,latitude:E.value.latitude,height:E.value.height}),me.success("位置已调整")};d.watch(()=>l.value,G=>{G==="pick"?b():C()}),e({addMarker:v,setModelType:G=>{(G==="BIM"||G==="OSGB")&&(a.value=G)}});const E=d.ref({longitude:0,latitude:0,lonlat:1e-6,heightDistance:1,rotation:30,totalRotation:0,height:0,X:0,Y:0,Z:0}),S=d.computed(()=>{const G=u.value.find(R=>R.modelId===h.value);return G?G.modelName:""}),w=d.computed(()=>_.value.length>0&&_.value.every(G=>G.selected)),T=()=>{o.value=!1,s("close")},_=d.computed(()=>u.value.filter(G=>G.type===a.value)),F=G=>{const R=G.target.checked;_.value.forEach(N=>N.selected=R)},U=()=>{if(!r?.value)return;const G=r.value,R=G.getMapTileset?G.getMapTileset():{},N=[];if(Object.keys(R).forEach(O=>{const j=R[O].leiting||{};j.model&&N.push({modelId:j.model.modelId,modelName:j.model.modelName,selected:!1,formData:j.model.formData||{},dbName:j.model.dbName,url:j.model.url,type:j.model.type||"BIM"})}),u.value=N,N.length>0){const O=G.getBIMmodelId?G.getBIMmodelId():"";O&&N.find(z=>z.modelId===O)?L(O):L(N[0].modelId),N.forEach(z=>z.selected=!0)}},L=G=>{h.value=G;const R=u.value.find(N=>N.modelId===G);R&&R.formData&&Object.keys(E.value).forEach(N=>{R.formData[N]!==void 0&&(E.value[N]=R.formData[N])})},D=G=>r?.value?.getMapTileset?r.value.getMapTileset()[G]:null,M=(G,R)=>{const N=D(G),O=r.value.getCesium();if(N&&O){if(N.leiting?.model){N.leiting.model.formData={...N.leiting.model.formData,...R};const z=u.value.find(j=>j.modelId===G);z&&(z.formData=N.leiting.model.formData)}Ja({Cesium:O,tileset:N})}},k=G=>{if(!h.value)return;const N=u.value.find(j=>j.modelId===h.value)?.formData?.[G]??0,O=E.value[G],z=O-N;M(h.value,{[G]:O}),z!==0&&_.value.filter(Z=>Z.selected&&Z.modelId!==h.value).forEach(Z=>{const de=(Z.formData?.[G]??0)+z;M(Z.modelId,{[G]:de})})},B=G=>{const R=_.value.filter(j=>j.selected);if(R.length===0){me.warning("请先选择要调整的模型");return}const{lonlat:N,heightDistance:O,rotation:z}=E.value;R.forEach(j=>{const Z={...j.formData};switch(G){case"north":Z.latitude+=N;break;case"south":Z.latitude-=N;break;case"east":Z.longitude+=N;break;case"west":Z.longitude-=N;break;case"up":Z.height+=O;break;case"down":Z.height-=O;break;case"rotateLeft":Z.totalRotation=(Z.totalRotation||0)+z;break;case"rotateRight":Z.totalRotation=(Z.totalRotation||0)-z;break}j.modelId===h.value&&(Z.lonlat=N,Z.heightDistance=O,Z.rotation=z,Object.assign(E.value,Z)),M(j.modelId,Z)})},P=()=>{if(!h.value){me.warning("请先选择主模型");return}const G=D(h.value);if(!G||!r?.value?.getViewer)return;const R=r.value.getViewer(),N=r.value.getCesium(),O=G.boundingSphere;R.camera.flyToBoundingSphere(O,{offset:new N.HeadingPitchRange(0,N.Math.toRadians(-90),O.radius*2),duration:1.5})},V=()=>{r?.value?.saveRegion?(r.value.saveRegion(u.value),s("save",d.unref(u))):(u.value,me.warning("未找到保存接口,数据已打印控制台"))};return d.watch(()=>n.visible,G=>{G?(U(),l.value==="pick"&&b()):(C(),A())}),d.onMounted(()=>{n.visible&&(U(),l.value==="pick"&&b())}),(G,R)=>(d.openBlock(),d.createBlock(gt,{visible:o.value,title:"调整位置(调整前可选择正北俯视)","full-height":i.fullHeight,width:c.value?500:300,"onUpdate:visible":R[26]||(R[26]=N=>o.value=N),onClose:T,onSave:V,class:"base-position-card"},{default:d.withCtx(()=>[d.createElementVNode("div",W3,[d.createElementVNode("div",q3,[d.createElementVNode("div",K3,[R[27]||(R[27]=d.createElementVNode("label",null,"模型类型:",-1)),d.createElementVNode("div",X3,[d.createElementVNode("span",{class:d.normalizeClass({active:a.value==="BIM"}),onClick:R[0]||(R[0]=N=>a.value="BIM")},"BIM模型",2),d.createElementVNode("span",{class:d.normalizeClass({active:a.value==="OSGB"}),onClick:R[1]||(R[1]=N=>a.value="OSGB")},"倾斜摄影",2)])]),d.createElementVNode("div",J3,[R[28]||(R[28]=d.createElementVNode("label",null,"调整操作:",-1)),d.createElementVNode("div",Z3,[d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="param"}),onClick:R[2]||(R[2]=N=>l.value="param")},"参数模式",2),d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="pick"}),onClick:R[3]||(R[3]=N=>l.value="pick")},"地图点选",2)])]),d.createElementVNode("div",e_,[R[29]||(R[29]=d.createElementVNode("label",null,"主模型:",-1)),d.createElementVNode("span",t_,d.toDisplayString(S.value||"未选择"),1),d.createElementVNode("button",{class:"toggle-list-btn",onClick:R[4]||(R[4]=N=>c.value=!c.value)},d.toDisplayString(c.value?"收起":"查看详情"),1)]),R[43]||(R[43]=d.createElementVNode("div",{class:"separator"},null,-1)),l.value==="param"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[R[37]||(R[37]=d.createElementVNode("div",{class:"group-header"},"当前状态",-1)),d.createElementVNode("div",i_,[R[30]||(R[30]=d.createElementVNode("label",null,"经度(东西):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[5]||(R[5]=N=>E.value.longitude=N),onChange:R[6]||(R[6]=N=>k("longitude")),step:"0.000001"},null,544),[[d.vModelText,E.value.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",n_,[R[31]||(R[31]=d.createElementVNode("label",null,"纬度(南北):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[7]||(R[7]=N=>E.value.latitude=N),onChange:R[8]||(R[8]=N=>k("latitude")),step:"0.000001"},null,544),[[d.vModelText,E.value.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",s_,[R[32]||(R[32]=d.createElementVNode("label",null,"高度(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[9]||(R[9]=N=>E.value.height=N),onChange:R[10]||(R[10]=N=>k("height")),step:"0.1"},null,544),[[d.vModelText,E.value.height,void 0,{number:!0}]])]),d.createElementVNode("div",o_,[R[33]||(R[33]=d.createElementVNode("label",null,"累计旋转(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[11]||(R[11]=N=>E.value.totalRotation=N),onChange:R[12]||(R[12]=N=>k("totalRotation")),step:"1"},null,544),[[d.vModelText,E.value.totalRotation,void 0,{number:!0}]])]),R[38]||(R[38]=d.createElementVNode("div",{class:"separator"},null,-1)),R[39]||(R[39]=d.createElementVNode("div",{class:"group-header"},"调整步长",-1)),d.createElementVNode("div",r_,[R[34]||(R[34]=d.createElementVNode("label",null,"经纬步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[13]||(R[13]=N=>E.value.lonlat=N),step:"0.000001"},null,512),[[d.vModelText,E.value.lonlat,void 0,{number:!0}]])]),d.createElementVNode("div",a_,[R[35]||(R[35]=d.createElementVNode("label",null,"高度步长(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[14]||(R[14]=N=>E.value.heightDistance=N),step:"0.1"},null,512),[[d.vModelText,E.value.heightDistance,void 0,{number:!0}]])]),d.createElementVNode("div",l_,[R[36]||(R[36]=d.createElementVNode("label",null,"旋转步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[15]||(R[15]=N=>E.value.rotation=N),step:"1"},null,512),[[d.vModelText,E.value.rotation,void 0,{number:!0}]])]),d.createElementVNode("div",c_,[d.createElementVNode("button",{onClick:R[16]||(R[16]=N=>B("rotateLeft"))},"左转"),d.createElementVNode("button",{onClick:R[17]||(R[17]=N=>B("north"))},"北移"),d.createElementVNode("button",{onClick:R[18]||(R[18]=N=>B("rotateRight"))},"右转"),d.createElementVNode("button",{onClick:R[19]||(R[19]=N=>B("west"))},"西移"),d.createElementVNode("button",{onClick:R[20]||(R[20]=N=>B("south"))},"南移"),d.createElementVNode("button",{onClick:R[21]||(R[21]=N=>B("east"))},"东移"),d.createElementVNode("button",{onClick:R[22]||(R[22]=N=>B("up"))},"上移"),d.createElementVNode("button",{onClick:R[23]||(R[23]=N=>B("down"))},"下移"),d.createElementVNode("button",{onClick:P,class:"primary-btn"},"正北俯视"),d.createElementVNode("button",{onClick:V,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):l.value==="pick"?(d.openBlock(),d.createElementBlock("div",d_,[d.createElementVNode("div",h_,[d.createElementVNode("div",u_,[d.createElementVNode("div",{onClick:R[24]||(R[24]=N=>p.value="BIM"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[d.createElementVNode("input",{type:"radio",checked:p.value==="BIM",style:{"margin-right":"5px"}},null,8,f_),R[40]||(R[40]=d.createElementVNode("span",{style:{"font-weight":"bold"}},"BIM标记点:",-1))]),f.value?(d.openBlock(),d.createElementBlock("div",p_,[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",m_,"未选择"))])]),d.createElementVNode("div",g_,[d.createElementVNode("div",y_,[d.createElementVNode("div",{onClick:R[25]||(R[25]=N=>p.value="MAP"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[d.createElementVNode("input",{type:"radio",checked:p.value==="MAP",style:{"margin-right":"5px"}},null,8,A_),R[41]||(R[41]=d.createElementVNode("span",{style:{"font-weight":"bold"}},"地图标记点:",-1))]),m.value?(d.openBlock(),d.createElementBlock("div",v_,[d.createElementVNode("div",null,"经度:"+d.toDisplayString(m.value.longitude.toFixed(10)),1),d.createElementVNode("div",null,"纬度:"+d.toDisplayString(m.value.latitude.toFixed(10)),1)])):(d.openBlock(),d.createElementBlock("div",b_,"未选择"))])]),d.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[d.createElementVNode("button",{onClick:x},"调整位置"),d.createElementVNode("button",{onClick:V},"保存")]),R[42]||(R[42]=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.withDirectives(d.createElementVNode("div",w_,[d.createElementVNode("div",C_,[d.createElementVNode("div",E_,[d.createElementVNode("input",{type:"checkbox",checked:w.value,onChange:F},null,40,x_)]),R[44]||(R[44]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),R[45]||(R[45]=d.createElementVNode("div",{class:"col-name"},"名称",-1)),R[46]||(R[46]=d.createElementVNode("div",{class:"col-main"},"主模型",-1))]),d.createElementVNode("div",I_,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(_.value,(N,O)=>(d.openBlock(),d.createElementBlock("div",{key:N.modelId,class:d.normalizeClass(["list-item",{active:N.modelId===h.value}])},[d.createElementVNode("div",S_,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":z=>N.selected=z},null,8,M_),[[d.vModelCheckbox,N.selected]])]),d.createElementVNode("div",T_,d.toDisplayString(O+1),1),d.createElementVNode("div",{class:"col-name",title:N.modelName},d.toDisplayString(N.modelName),9,B_),d.createElementVNode("div",__,[d.createElementVNode("input",{type:"radio",name:"mainModel",checked:N.modelId===h.value,onChange:z=>L(N.modelId)},null,40,k_)])],2))),128))])],512),[[d.vShow,c.value]])])]),_:1},8,["visible","full-height","width"]))}}),[["__scopeId","data-v-29b5a2c0"]]);function Vr(){return Vr=Object.assign?Object.assign.bind():function(i){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)({}).hasOwnProperty.call(t,n)&&(i[n]=t[n])}return i},Vr.apply(null,arguments)}const P_={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:"下一世纪"},D_={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},wm={lang:Vr({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},P_),timePickerLocale:Vr({},D_)};wm.lang.ok="确定";var Qr={exports:{}},N_=Qr.exports,Cm;function Em(){return Cm||(Cm=1,(function(i,e){(function(t,n){i.exports=n()})(N_,(function(){var t=1e3,n=6e4,s=36e5,o="millisecond",r="second",a="minute",l="hour",c="day",h="week",u="month",p="quarter",f="year",m="date",y="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,A=/\[([^\]]+)]|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,v={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(L){var D=["th","st","nd","rd"],M=L%100;return"["+L+(D[(M-20)%10]||D[M]||D[0])+"]"}},b=function(L,D,M){var k=String(L);return!k||k.length>=D?L:""+Array(D+1-k.length).join(M)+L},C={s:b,z:function(L){var D=-L.utcOffset(),M=Math.abs(D),k=Math.floor(M/60),B=M%60;return(D<=0?"+":"-")+b(k,2,"0")+":"+b(B,2,"0")},m:function L(D,M){if(D.date()<M.date())return-L(M,D);var k=12*(M.year()-D.year())+(M.month()-D.month()),B=D.clone().add(k,u),P=M-B<0,V=D.clone().add(k+(P?-1:1),u);return+(-(k+(M-B)/(P?B-V:V-B))||0)},a:function(L){return L<0?Math.ceil(L)||0:Math.floor(L)},p:function(L){return{M:u,y:f,w:h,d:c,D:m,h:l,m:a,s:r,ms:o,Q:p}[L]||String(L||"").toLowerCase().replace(/s$/,"")},u:function(L){return L===void 0}},x="en",I={};I[x]=v;var E="$isDayjsObject",S=function(L){return L instanceof F||!(!L||!L[E])},w=function L(D,M,k){var B;if(!D)return x;if(typeof D=="string"){var P=D.toLowerCase();I[P]&&(B=P),M&&(I[P]=M,B=P);var V=D.split("-");if(!B&&V.length>1)return L(V[0])}else{var G=D.name;I[G]=D,B=G}return!k&&B&&(x=B),B||!k&&x},T=function(L,D){if(S(L))return L.clone();var M=typeof D=="object"?D:{};return M.date=L,M.args=arguments,new F(M)},_=C;_.l=w,_.i=S,_.w=function(L,D){return T(L,{locale:D.$L,utc:D.$u,x:D.$x,$offset:D.$offset})};var F=(function(){function L(M){this.$L=w(M.locale,null,!0),this.parse(M),this.$x=this.$x||M.x||{},this[E]=!0}var D=L.prototype;return D.parse=function(M){this.$d=(function(k){var B=k.date,P=k.utc;if(B===null)return new Date(NaN);if(_.u(B))return new Date;if(B instanceof Date)return new Date(B);if(typeof B=="string"&&!/Z$/i.test(B)){var V=B.match(g);if(V){var G=V[2]-1||0,R=(V[7]||"0").substring(0,3);return P?new Date(Date.UTC(V[1],G,V[3]||1,V[4]||0,V[5]||0,V[6]||0,R)):new Date(V[1],G,V[3]||1,V[4]||0,V[5]||0,V[6]||0,R)}}return new Date(B)})(M),this.init()},D.init=function(){var M=this.$d;this.$y=M.getFullYear(),this.$M=M.getMonth(),this.$D=M.getDate(),this.$W=M.getDay(),this.$H=M.getHours(),this.$m=M.getMinutes(),this.$s=M.getSeconds(),this.$ms=M.getMilliseconds()},D.$utils=function(){return _},D.isValid=function(){return this.$d.toString()!==y},D.isSame=function(M,k){var B=T(M);return this.startOf(k)<=B&&B<=this.endOf(k)},D.isAfter=function(M,k){return T(M)<this.startOf(k)},D.isBefore=function(M,k){return this.endOf(k)<T(M)},D.$g=function(M,k,B){return _.u(M)?this[k]:this.set(B,M)},D.unix=function(){return Math.floor(this.valueOf()/1e3)},D.valueOf=function(){return this.$d.getTime()},D.startOf=function(M,k){var B=this,P=!!_.u(k)||k,V=_.p(M),G=function(de,pe){var Ae=_.w(B.$u?Date.UTC(B.$y,pe,de):new Date(B.$y,pe,de),B);return P?Ae:Ae.endOf(c)},R=function(de,pe){return _.w(B.toDate()[de].apply(B.toDate("s"),(P?[0,0,0,0]:[23,59,59,999]).slice(pe)),B)},N=this.$W,O=this.$M,z=this.$D,j="set"+(this.$u?"UTC":"");switch(V){case f:return P?G(1,0):G(31,11);case u:return P?G(1,O):G(0,O+1);case h:var Z=this.$locale().weekStart||0,te=(N<Z?N+7:N)-Z;return G(P?z-te:z+(6-te),O);case c:case m:return R(j+"Hours",0);case l:return R(j+"Minutes",1);case a:return R(j+"Seconds",2);case r:return R(j+"Milliseconds",3);default:return this.clone()}},D.endOf=function(M){return this.startOf(M,!1)},D.$set=function(M,k){var B,P=_.p(M),V="set"+(this.$u?"UTC":""),G=(B={},B[c]=V+"Date",B[m]=V+"Date",B[u]=V+"Month",B[f]=V+"FullYear",B[l]=V+"Hours",B[a]=V+"Minutes",B[r]=V+"Seconds",B[o]=V+"Milliseconds",B)[P],R=P===c?this.$D+(k-this.$W):k;if(P===u||P===f){var N=this.clone().set(m,1);N.$d[G](R),N.init(),this.$d=N.set(m,Math.min(this.$D,N.daysInMonth())).$d}else G&&this.$d[G](R);return this.init(),this},D.set=function(M,k){return this.clone().$set(M,k)},D.get=function(M){return this[_.p(M)]()},D.add=function(M,k){var B,P=this;M=Number(M);var V=_.p(k),G=function(O){var z=T(P);return _.w(z.date(z.date()+Math.round(O*M)),P)};if(V===u)return this.set(u,this.$M+M);if(V===f)return this.set(f,this.$y+M);if(V===c)return G(1);if(V===h)return G(7);var R=(B={},B[a]=n,B[l]=s,B[r]=t,B)[V]||1,N=this.$d.getTime()+M*R;return _.w(N,this)},D.subtract=function(M,k){return this.add(-1*M,k)},D.format=function(M){var k=this,B=this.$locale();if(!this.isValid())return B.invalidDate||y;var P=M||"YYYY-MM-DDTHH:mm:ssZ",V=_.z(this),G=this.$H,R=this.$m,N=this.$M,O=B.weekdays,z=B.months,j=B.meridiem,Z=function(pe,Ae,Pe,Ge){return pe&&(pe[Ae]||pe(k,P))||Pe[Ae].slice(0,Ge)},te=function(pe){return _.s(G%12||12,pe,"0")},de=j||function(pe,Ae,Pe){var Ge=pe<12?"AM":"PM";return Pe?Ge.toLowerCase():Ge};return P.replace(A,(function(pe,Ae){return Ae||(function(Pe){switch(Pe){case"YY":return String(k.$y).slice(-2);case"YYYY":return _.s(k.$y,4,"0");case"M":return N+1;case"MM":return _.s(N+1,2,"0");case"MMM":return Z(B.monthsShort,N,z,3);case"MMMM":return Z(z,N);case"D":return k.$D;case"DD":return _.s(k.$D,2,"0");case"d":return String(k.$W);case"dd":return Z(B.weekdaysMin,k.$W,O,2);case"ddd":return Z(B.weekdaysShort,k.$W,O,3);case"dddd":return O[k.$W];case"H":return String(G);case"HH":return _.s(G,2,"0");case"h":return te(1);case"hh":return te(2);case"a":return de(G,R,!0);case"A":return de(G,R,!1);case"m":return String(R);case"mm":return _.s(R,2,"0");case"s":return String(k.$s);case"ss":return _.s(k.$s,2,"0");case"SSS":return _.s(k.$ms,3,"0");case"Z":return V}return null})(pe)||V.replace(":","")}))},D.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},D.diff=function(M,k,B){var P,V=this,G=_.p(k),R=T(M),N=(R.utcOffset()-this.utcOffset())*n,O=this-R,z=function(){return _.m(V,R)};switch(G){case f:P=z()/12;break;case u:P=z();break;case p:P=z()/3;break;case h:P=(O-N)/6048e5;break;case c:P=(O-N)/864e5;break;case l:P=O/s;break;case a:P=O/n;break;case r:P=O/t;break;default:P=O}return B?P:_.a(P)},D.daysInMonth=function(){return this.endOf(u).$D},D.$locale=function(){return I[this.$L]},D.locale=function(M,k){if(!M)return this.$L;var B=this.clone(),P=w(M,k,!0);return P&&(B.$L=P),B},D.clone=function(){return _.w(this.$d,this)},D.toDate=function(){return new Date(this.valueOf())},D.toJSON=function(){return this.isValid()?this.toISOString():null},D.toISOString=function(){return this.$d.toISOString()},D.toString=function(){return this.$d.toUTCString()},L})(),U=F.prototype;return T.prototype=U,[["$ms",o],["$s",r],["$m",a],["$H",l],["$W",c],["$M",u],["$y",f],["$D",m]].forEach((function(L){U[L[1]]=function(D){return this.$g(D,L[0],L[1])}})),T.extend=function(L,D){return L.$i||(L(D,F,T),L.$i=!0),T},T.locale=w,T.isDayjs=S,T.unix=function(L){return T(1e3*L)},T.en=I[x],T.Ls=I,T.p={},T}))})(Qr)),Qr.exports}var L_=Em();const Qt=nn(L_);var zr={exports:{}},R_=zr.exports,xm;function F_(){return xm||(xm=1,(function(i,e){(function(t,n){i.exports=n(Em())})(R_,(function(t){function n(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var s=n(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,a){return a==="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,a){var l=100*r+a;return l<600?"凌晨":l<900?"早上":l<1100?"上午":l<1300?"中午":l<1800?"下午":"晚上"}};return s.default.locale(o,null,!0),o}))})(zr)),zr.exports}F_();var Hr={exports:{}},O_=Hr.exports,Im;function G_(){return Im||(Im=1,(function(i,e){(function(t,n){i.exports=n()})(O_,(function(){return function(t,n,s){var o=n.prototype,r=function(u){return u&&(u.indexOf?u:u.s)},a=function(u,p,f,m,y){var g=u.name?u:u.$locale(),A=r(g[p]),v=r(g[f]),b=A||v.map((function(x){return x.slice(0,m)}));if(!y)return b;var C=g.weekStart;return b.map((function(x,I){return b[(I+(C||0))%7]}))},l=function(){return s.Ls[s.locale()]},c=function(u,p){return u.formats[p]||(function(f){return f.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(m,y,g){return y||g.slice(1)}))})(u.formats[p.toUpperCase()])},h=function(){var u=this;return{months:function(p){return p?p.format("MMMM"):a(u,"months")},monthsShort:function(p){return p?p.format("MMM"):a(u,"monthsShort","months",3)},firstDayOfWeek:function(){return u.$locale().weekStart||0},weekdays:function(p){return p?p.format("dddd"):a(u,"weekdays")},weekdaysMin:function(p){return p?p.format("dd"):a(u,"weekdaysMin","weekdays",2)},weekdaysShort:function(p){return p?p.format("ddd"):a(u,"weekdaysShort","weekdays",3)},longDateFormat:function(p){return c(u.$locale(),p)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};o.localeData=function(){return h.bind(this)()},s.localeData=function(){var u=l();return{firstDayOfWeek:function(){return u.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(p){return c(u,p)},meridiem:u.meridiem,ordinal:u.ordinal}},s.months=function(){return a(l(),"months")},s.monthsShort=function(){return a(l(),"monthsShort","months",3)},s.weekdays=function(u){return a(l(),"weekdays",null,null,u)},s.weekdaysShort=function(u){return a(l(),"weekdaysShort","weekdays",3,u)},s.weekdaysMin=function(u){return a(l(),"weekdaysMin","weekdays",2,u)}}}))})(Hr)),Hr.exports}var U_=G_();const V_=nn(U_);var Yr={exports:{}},Q_=Yr.exports,Sm;function z_(){return Sm||(Sm=1,(function(i,e){(function(t,n){i.exports=n()})(Q_,(function(){return function(t,n){n.prototype.weekday=function(s){var o=this.$locale().weekStart||0,r=this.$W,a=(r<o?r+7:r)-o;return this.$utils().u(s)?a:this.subtract(a,"day").add(s,"day")}}}))})(Yr)),Yr.exports}var H_=z_();const Y_=nn(H_);var $r={exports:{}},$_=$r.exports,Mm;function j_(){return Mm||(Mm=1,(function(i,e){(function(t,n){i.exports=n()})($_,(function(){var t="week",n="year";return function(s,o,r){var a=o.prototype;a.week=function(l){if(l===void 0&&(l=null),l!==null)return this.add(7*(l-this.week()),"day");var c=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var h=r(this).startOf(n).add(1,n).date(c),u=r(this).endOf(t);if(h.isBefore(u))return 1}var p=r(this).startOf(n).date(c).startOf(t).subtract(1,"millisecond"),f=this.diff(p,t,!0);return f<0?r(this).startOf("week").week():Math.ceil(f)},a.weeks=function(l){return l===void 0&&(l=null),this.week(l)}}}))})($r)),$r.exports}var W_=j_();const q_=nn(W_);var jr={exports:{}},K_=jr.exports,Tm;function X_(){return Tm||(Tm=1,(function(i,e){(function(t,n){i.exports=n()})(K_,(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"},n=/(\[[^[]*\])|([-_:/.,()\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?/,a=/\d*[^-_:/,()\s\d]+/,l={},c=function(g){return(g=+g)+(g>68?1900:2e3)},h=function(g){return function(A){this[g]=+A}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=(function(A){if(!A||A==="Z")return 0;var v=A.match(/([+-]|\d\d)/g),b=60*v[1]+(+v[2]||0);return b===0?0:v[0]==="+"?-b:b})(g)}],p=function(g){var A=l[g];return A&&(A.indexOf?A:A.s.concat(A.f))},f=function(g,A){var v,b=l.meridiem;if(b){for(var C=1;C<=24;C+=1)if(g.indexOf(b(C,0,A))>-1){v=C>12;break}}else v=g===(A?"pm":"PM");return v},m={A:[a,function(g){this.afternoon=f(g,!1)}],a:[a,function(g){this.afternoon=f(g,!0)}],Q:[s,function(g){this.month=3*(g-1)+1}],S:[s,function(g){this.milliseconds=100*+g}],SS:[o,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[r,h("seconds")],ss:[r,h("seconds")],m:[r,h("minutes")],mm:[r,h("minutes")],H:[r,h("hours")],h:[r,h("hours")],HH:[r,h("hours")],hh:[r,h("hours")],D:[r,h("day")],DD:[o,h("day")],Do:[a,function(g){var A=l.ordinal,v=g.match(/\d+/);if(this.day=v[0],A)for(var b=1;b<=31;b+=1)A(b).replace(/\[|\]/g,"")===g&&(this.day=b)}],w:[r,h("week")],ww:[o,h("week")],M:[r,h("month")],MM:[o,h("month")],MMM:[a,function(g){var A=p("months"),v=(p("monthsShort")||A.map((function(b){return b.slice(0,3)}))).indexOf(g)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(g){var A=p("months").indexOf(g)+1;if(A<1)throw new Error;this.month=A%12||A}],Y:[/[+-]?\d+/,h("year")],YY:[o,function(g){this.year=c(g)}],YYYY:[/\d{4}/,h("year")],Z:u,ZZ:u};function y(g){var A,v;A=g,v=l&&l.formats;for(var b=(g=A.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(T,_,F){var U=F&&F.toUpperCase();return _||v[F]||t[F]||v[U].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(L,D,M){return D||M.slice(1)}))}))).match(n),C=b.length,x=0;x<C;x+=1){var I=b[x],E=m[I],S=E&&E[0],w=E&&E[1];b[x]=w?{regex:S,parser:w}:I.replace(/^\[|\]$/g,"")}return function(T){for(var _={},F=0,U=0;F<C;F+=1){var L=b[F];if(typeof L=="string")U+=L.length;else{var D=L.regex,M=L.parser,k=T.slice(U),B=D.exec(k)[0];M.call(_,B),T=T.replace(B,"")}}return(function(P){var V=P.afternoon;if(V!==void 0){var G=P.hours;V?G<12&&(P.hours+=12):G===12&&(P.hours=0),delete P.afternoon}})(_),_}}return function(g,A,v){v.p.customParseFormat=!0,g&&g.parseTwoDigitYear&&(c=g.parseTwoDigitYear);var b=A.prototype,C=b.parse;b.parse=function(x){var I=x.date,E=x.utc,S=x.args;this.$u=E;var w=S[1];if(typeof w=="string"){var T=S[2]===!0,_=S[3]===!0,F=T||_,U=S[2];_&&(U=S[2]),l=this.$locale(),!T&&U&&(l=v.Ls[U]),this.$d=(function(k,B,P,V){try{if(["x","X"].indexOf(B)>-1)return new Date((B==="X"?1e3:1)*k);var G=y(B)(k),R=G.year,N=G.month,O=G.day,z=G.hours,j=G.minutes,Z=G.seconds,te=G.milliseconds,de=G.zone,pe=G.week,Ae=new Date,Pe=O||(R||N?1:Ae.getDate()),Ge=R||Ae.getFullYear(),Je=0;R&&!N||(Je=N>0?N-1:Ae.getMonth());var vt,ct=z||0,Bt=j||0,W=Z||0,Y=te||0;return de?new Date(Date.UTC(Ge,Je,Pe,ct,Bt,W,Y+60*de.offset*1e3)):P?new Date(Date.UTC(Ge,Je,Pe,ct,Bt,W,Y)):(vt=new Date(Ge,Je,Pe,ct,Bt,W,Y),pe&&(vt=V(vt).week(pe).toDate()),vt)}catch{return new Date("")}})(I,w,E,v),this.init(),U&&U!==!0&&(this.$L=this.locale(U).$L),F&&I!=this.format(w)&&(this.$d=new Date("")),l={}}else if(w instanceof Array)for(var L=w.length,D=1;D<=L;D+=1){S[1]=w[D-1];var M=v.apply(this,S);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}D===L&&(this.$d=new Date(""))}else C.call(this,x)}}}))})(jr)),jr.exports}var J_=X_();const Z_=nn(J_),ek={class:"setting-panel"},tk={class:"tabs-header"},ik={class:"tab-content"},nk={key:0,class:"section"},sk={class:"setting-item"},ok={class:"setting-item"},rk={class:"setting-item"},ak={key:1,class:"section"},lk={class:"tabs-header",style:{"margin-bottom":"8px"}},ck={key:0},dk={class:"setting-item column"},hk={class:"setting-item"},uk={key:1},fk={class:"setting-item column"},pk={class:"setting-item column",style:{"margin-top":"12px","border-top":"1px solid rgba(255,255,255,0.1)","padding-top":"8px"}},mk={class:"search-box",style:{position:"relative"}},gk={key:0,class:"search-dropdown"},yk=["onClick"],Ak={class:"result-name"},vk={class:"result-coord"},bk={key:2,class:"section"},wk={class:"setting-item"},Ck={key:0,class:"setting-item column"},Ek={class:"sub-label"},xk={class:"setting-item"},Ik={class:"setting-item"},Sk={class:"setting-item column"},Mk={class:"setting-item column"},Tk={class:"sub-label"},Bk={class:"setting-item column"},_k={class:"sub-label"},kk={class:"setting-item column"},Pk={class:"sub-label"},Dk={class:"setting-item column"},Nk={style:{display:"flex",gap:"8px","margin-bottom":"8px"}},Lk=["onClick","title"],Rk={style:{display:"flex",gap:"8px","align-items":"center"}},Fk={key:3,class:"section"},Ok={class:"setting-item"},Gk={class:"setting-item column"},fo=Be(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(i,{emit:e}){Qt.locale("zh-cn"),Qt.extend(V_),Qt.extend(Y_),Qt.extend(q_),Qt.extend(Z_);const t=re.Switch,n=re.Radio.Group,s=re.Radio,o=re.Input,r=re.Slider,a=re.Select,l=re.Select.Option,c=re.DatePicker,h=i,u=e,p=d.inject("leitingMethods"),f=d.computed({get:()=>h.open!==void 0?h.open:h.visible,set:M=>{u("update:visible",M),u("update:open",M)}}),m=d.ref("GIS"),y=d.reactive({globe:!1,terrain:!1,depthTest:!1}),g=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"}),A=d.reactive({shadows:!1,shadowDarkness:.7,environmentMap:!1,ambientOcclusion:!1,time:Qt("2025-06-22 10:00"),brightness:1,contrast:1,saturation:1,backgroundColor:"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)",skyBox:"",skyBoxVisible:!1}),v=d.reactive({collision:!1,habit:0}),b=M=>{M&&(M.globe!==void 0&&(y.globe=M.globe),M.terrain!==void 0&&(y.terrain=M.terrain),M.depthTest!==void 0&&(y.depthTest=M.depthTest),M.mapProvider!==void 0&&(g.provider=M.mapProvider),M.tiandituLayerType!==void 0&&(g.tianditu.layerType=M.tiandituLayerType),M.tiandituShowLabel!==void 0&&(g.tianditu.showLabel=M.tiandituShowLabel),M.arcgisUrl!==void 0&&(g.arcgis.url=M.arcgisUrl),M.shadows!==void 0&&(A.shadows=M.shadows),M.shadowDarkness!==void 0&&(A.shadowDarkness=M.shadowDarkness),M.environmentMap!==void 0&&(A.environmentMap=M.environmentMap),M.ambientOcclusion!==void 0&&(A.ambientOcclusion=M.ambientOcclusion),M.time!==void 0&&(typeof M.time=="number"?A.time=Qt().startOf("day").add(M.time,"hour"):A.time=Qt(M.time)),M.brightness!==void 0&&(A.brightness=M.brightness),M.contrast!==void 0&&(A.contrast=M.contrast),M.saturation!==void 0&&(A.saturation=M.saturation),M.backgroundColor!==void 0&&(A.backgroundColor=M.backgroundColor),M.skyBox!==void 0&&(A.skyBox=M.skyBox),M.skyBoxVisible!==void 0&&(A.skyBoxVisible=M.skyBoxVisible),M.collision!==void 0&&(v.collision=M.collision),M.mouseHabit!==void 0&&(v.habit=M.mouseHabit))};d.watch(()=>h.initialConfig,M=>{b(M)},{deep:!0,immediate:!0});const C=["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%)"],x=[{label:"全球影像地图服务(墨卡托)",value:"img_w"},{label:"全球影像地图服务(经纬度)",value:"img_c"},{label:"全球矢量地图服务(墨卡托)",value:"vec_w"},{label:"全球矢量地图服务(经纬度)",value:"vec_c"},{label:"全球地形晕渲服务(墨卡托)",value:"ter_w"},{label:"全球地形晕渲服务(经纬度)",value:"ter_c"}],I=()=>{const M=g.provider,k={};M==="tianditu"?(k.token=g.tianditu.token,k.layerType=g.tianditu.layerType,k.showAnnotation=g.tianditu.showLabel):M==="arcgis"&&(k.url=g.arcgis.url),p.value?.changeBaseMap?.(M,k)};d.watch(()=>g.provider,I),d.watch(()=>g.tianditu.layerType,I),d.watch(()=>g.tianditu.showLabel,I),d.watch(()=>g.tianditu.token,qo(I,1e3)),d.watch(()=>g.arcgis.url,qo(I,1e3)),d.onMounted(()=>{h.tiandituToken&&(g.tianditu.token=h.tiandituToken)}),d.watch(()=>y.globe,M=>p.value?.setGlobeEnvironmentVisible?.(M)),d.watch(()=>y.terrain,M=>p.value?.setTerrainEnable?.(M)),d.watch(()=>y.depthTest,M=>p.value?.setDepthTestEnable?.(M)),d.watch(()=>p?.value,M=>{if(M){if(M.getConfigure=()=>({globe:y.globe,terrain:y.terrain,depthTest:y.depthTest,mapProvider:g.provider,tiandituLayerType:g.tianditu.layerType,tiandituShowLabel:g.tianditu.showLabel,arcgisUrl:g.arcgis.url,shadows:A.shadows,shadowDarkness:A.shadowDarkness,environmentMap:A.environmentMap,ambientOcclusion:A.ambientOcclusion,time:Qt.isDayjs(A.time)?A.time.format("YYYY-MM-DD HH:mm"):A.time,brightness:A.brightness,contrast:A.contrast,saturation:A.saturation,backgroundColor:A.backgroundColor,skyBox:A.skyBox,skyBoxVisible:A.skyBoxVisible,collision:v.collision,mouseHabit:v.habit}),M.setConfigure=k=>{b(k)},M.setBackgroundColor&&A.backgroundColor&&M.setBackgroundColor(A.backgroundColor),M.setSkyBox&&M.setSkyBox(A.skyBox||null),M.setSkyBoxVisible&&M.setSkyBoxVisible(A.skyBoxVisible),M.setGlobeEnvironmentVisible&&M.setGlobeEnvironmentVisible(y.globe),M.setShadowsEnable&&M.setShadowsEnable(A.shadows),M.setShadowDarkness&&M.setShadowDarkness(A.shadowDarkness),M.setEnvironmentMapEnable&&M.setEnvironmentMapEnable(A.environmentMap),M.setAmbientOcclusion&&M.setAmbientOcclusion(A.ambientOcclusion),M.setTime){const k=Qt.isDayjs(A.time)?A.time.toDate():new Date;M.setTime(k)}M.setModelBrightness&&M.setModelBrightness(A.brightness),M.setCollisionDetection&&M.setCollisionDetection(v.collision),M.setMouseHabit&&M.setMouseHabit(v.habit),M.changeBaseMap&&g.baseMap&&M.changeBaseMap(g.baseMap,{token:g.tianditu.token,layerType:g.tianditu.layerType,showAnnotation:g.tianditu.showLabel,url:g.arcgis.url})}},{immediate:!0});const E=d.computed({get:()=>{const M=A.backgroundColor;return/^#[0-9A-Fa-f]{6}$/.test(M)?M:"#ffffff"},set:M=>{A.backgroundColor=M}}),S=d.ref(""),w=d.ref(!1),T=d.ref([]);d.watch(()=>y.globe,M=>p.value?.setGlobeEnvironmentVisible?.(M)),d.watch(()=>y.terrain,M=>p.value?.setTerrainEnable?.(M)),d.watch(()=>g.baseMap,M=>{p.value?.changeBaseMap?.(M,{token:h.tiandituToken})}),d.watch(()=>A.shadows,M=>p.value?.setShadowsEnable?.(M)),d.watch(()=>A.shadowDarkness,M=>p.value?.setShadowDarkness?.(M)),d.watch(()=>A.environmentMap,M=>p.value?.setEnvironmentMapEnable?.(M)),d.watch(()=>A.ambientOcclusion,M=>p.value?.setAmbientOcclusion?.(M)),d.watch(()=>A.time,M=>{const k=Qt.isDayjs(M)?M.toDate():new Date;p.value?.setTime?.(k)}),d.watch(()=>[A.brightness,A.contrast,A.saturation],([M,k,B])=>{const P=p.value;P?.setModelColorAdjustment?P.setModelColorAdjustment({brightness:M,contrast:k,saturation:B}):P?.setModelBrightness?.(M)}),d.watch(()=>A.backgroundColor,M=>{if(p.value?.setBackgroundColor)p.value.setBackgroundColor(M);else{const k=document.querySelector(".cesium-viewer");k&&(k.style.background=M)}}),d.watch(()=>A.skyBox,M=>{p.value?.setSkyBox?.(M||null),p.value?.setSkyBoxVisible?.(A.skyBoxVisible)}),d.watch(()=>A.skyBoxVisible,M=>{M&&p.value?.setSkyBox?.(A.skyBox||null),p.value?.setSkyBoxVisible?.(M)}),d.watch(()=>v.collision,M=>p.value?.setCollisionDetection?.(M)),d.watch(()=>v.habit,M=>p.value?.setMouseHabit?.(M));const _=M=>{const k=[];if(M?.pois&&Array.isArray(M.pois)){for(const B of M.pois)if(B.lonlat){const P=B.lonlat.split(/[, ]/).map(Number);P.length>=2&&!isNaN(P[0])&&!isNaN(P[1])&&k.push({name:B.name||"未命名",lon:P[0],lat:P[1],raw:B})}}if(M?.area&&M.area.lonlat){const B=M.area,P=B.lonlat.split(/[, ]/).map(Number);P.length>=2&&!isNaN(P[0])&&!isNaN(P[1])&&k.push({name:B.name||"未命名",lon:P[0],lat:P[1],raw:B})}if(M?.prompt&&Array.isArray(M.prompt)){for(const B of M.prompt)if(B.admins&&Array.isArray(B.admins)){for(const P of B.admins)if(P.lonlat){const V=P.lonlat.split(/[, ]/).map(Number);V.length>=2&&!isNaN(V[0])&&!isNaN(V[1])&&k.push({name:P.adminName||P.name||"未命名",lon:V[0],lat:V[1],raw:P})}}}return k},U=qo(async()=>{const M=(S.value||"").trim();if(!M){T.value=[];return}const k=h.tiandituToken||"c25f14fb6bd4397cf8fe45144ff768d6";w.value=!0,T.value=[];try{const P=`https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(JSON.stringify({keyWord:M,level:12,mapBound:"-180,-90,180,90",queryType:1,start:0,count:10}))}&type=query&tk=${encodeURIComponent(k)}`,V=await fetch(P);if(!V.ok)throw new Error(`HTTP ${V.status}`);const G=await V.json();T.value=_(G)}catch(B){console.error("tianditu search error",B)}finally{w.value=!1}},800);d.watch(S,()=>{U()});const L=M=>{p.value?.flyToLonLatHeight?.(M.lon,M.lat,5e3),S.value=M.name,T.value=[]},D=()=>{f.value=!1,u("close")};return d.onMounted(()=>{}),(M,k)=>(d.openBlock(),d.createBlock(gt,{visible:f.value,title:"设置","full-height":i.fullHeight,onClose:D,"onUpdate:visible":k[25]||(k[25]=B=>f.value=B)},{default:d.withCtx(()=>[d.createElementVNode("div",ek,[d.createElementVNode("div",tk,[d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="GIS"}]),onClick:k[0]||(k[0]=B=>m.value="GIS")},"GIS",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="MAP"}]),onClick:k[1]||(k[1]=B=>m.value="MAP")},"地图",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="RENDER"}]),onClick:k[2]||(k[2]=B=>m.value="RENDER")},"渲染",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="MOUSE"}]),onClick:k[3]||(k[3]=B=>m.value="MOUSE")},"鼠标",2)]),d.createElementVNode("div",ik,[m.value==="GIS"?(d.openBlock(),d.createElementBlock("div",nk,[d.createElementVNode("div",sk,[k[26]||(k[26]=d.createElementVNode("span",null,"地球 (含大气/日月/星空)",-1)),d.createVNode(d.unref(t),{checked:y.globe,"onUpdate:checked":k[4]||(k[4]=B=>y.globe=B),size:"small"},null,8,["checked"])]),d.createElementVNode("div",ok,[k[27]||(k[27]=d.createElementVNode("span",null,"地形 (高程)",-1)),d.createVNode(d.unref(t),{checked:y.terrain,"onUpdate:checked":k[5]||(k[5]=B=>y.terrain=B),size:"small"},null,8,["checked"])]),d.createElementVNode("div",rk,[k[28]||(k[28]=d.createElementVNode("span",null,"地形遮挡",-1)),d.createVNode(d.unref(t),{checked:y.depthTest,"onUpdate:checked":k[6]||(k[6]=B=>y.depthTest=B),size:"small"},null,8,["checked"])])])):d.createCommentVNode("",!0),m.value==="MAP"?(d.openBlock(),d.createElementBlock("div",ak,[d.createElementVNode("div",lk,[d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:g.provider==="tianditu"}]),onClick:k[7]||(k[7]=B=>g.provider="tianditu")},"天地图",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:g.provider==="arcgis"}]),onClick:k[8]||(k[8]=B=>g.provider="arcgis")},"ArcGIS",2)]),g.provider==="tianditu"?(d.openBlock(),d.createElementBlock("div",ck,[d.createElementVNode("div",dk,[k[29]||(k[29]=d.createElementVNode("div",{class:"sub-label"},"地图风格",-1)),d.createVNode(d.unref(a),{value:g.tianditu.layerType,"onUpdate:value":k[9]||(k[9]=B=>g.tianditu.layerType=B),size:"small",style:{width:"100%"}},{default:d.withCtx(()=>[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(x,B=>d.createVNode(d.unref(l),{key:B.value,value:B.value},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(B.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"])]),d.createElementVNode("div",hk,[k[30]||(k[30]=d.createElementVNode("span",null,"路网注记",-1)),d.createVNode(d.unref(t),{checked:g.tianditu.showLabel,"onUpdate:checked":k[10]||(k[10]=B=>g.tianditu.showLabel=B),size:"small"},null,8,["checked"])])])):d.createCommentVNode("",!0),g.provider==="arcgis"?(d.openBlock(),d.createElementBlock("div",uk,[d.createElementVNode("div",fk,[k[31]||(k[31]=d.createElementVNode("div",{class:"sub-label"},"服务地址",-1)),d.createVNode(d.unref(o),{value:g.arcgis.url,"onUpdate:value":k[11]||(k[11]=B=>g.arcgis.url=B),size:"small",placeholder:"输入ArcGIS MapServer地址"},null,8,["value"])])])):d.createCommentVNode("",!0),d.createElementVNode("div",pk,[k[32]||(k[32]=d.createElementVNode("div",{class:"sub-label"},"位置搜索 (天地图)",-1)),d.createElementVNode("div",mk,[d.createVNode(d.unref(o),{value:S.value,"onUpdate:value":k[12]||(k[12]=B=>S.value=B),placeholder:"输入地名搜索",size:"small","allow-clear":"",loading:w.value},null,8,["value","loading"]),T.value.length>0?(d.openBlock(),d.createElementBlock("div",gk,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(T.value,(B,P)=>(d.openBlock(),d.createElementBlock("div",{key:P,class:"search-result-item",onClick:V=>L(B)},[d.createElementVNode("span",Ak,d.toDisplayString(B.name),1),d.createElementVNode("span",vk,d.toDisplayString(B.lon.toFixed(4))+", "+d.toDisplayString(B.lat.toFixed(4)),1)],8,yk))),128))])):d.createCommentVNode("",!0)])])])):d.createCommentVNode("",!0),m.value==="RENDER"?(d.openBlock(),d.createElementBlock("div",bk,[d.createElementVNode("div",wk,[k[33]||(k[33]=d.createElementVNode("span",null,"阴影",-1)),d.createVNode(d.unref(t),{checked:A.shadows,"onUpdate:checked":k[13]||(k[13]=B=>A.shadows=B),size:"small"},null,8,["checked"])]),A.shadows?(d.openBlock(),d.createElementBlock("div",Ck,[d.createElementVNode("div",Ek,"阴影暗度 ("+d.toDisplayString(A.shadowDarkness.toFixed(2))+")",1),d.createVNode(d.unref(r),{value:A.shadowDarkness,"onUpdate:value":k[14]||(k[14]=B=>A.shadowDarkness=B),min:0,max:1,step:.05,size:"small"},null,8,["value"])])):d.createCommentVNode("",!0),d.createElementVNode("div",xk,[k[34]||(k[34]=d.createElementVNode("span",null,"环境贴图 (HDR)",-1)),d.createVNode(d.unref(t),{checked:A.environmentMap,"onUpdate:checked":k[15]||(k[15]=B=>A.environmentMap=B),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Ik,[k[35]||(k[35]=d.createElementVNode("span",null,"环境光遮蔽 (AO)",-1)),d.createVNode(d.unref(t),{checked:A.ambientOcclusion,"onUpdate:checked":k[16]||(k[16]=B=>A.ambientOcclusion=B),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Sk,[k[36]||(k[36]=d.createElementVNode("div",{class:"sub-label"},"日期时间",-1)),d.createVNode(d.unref(c),{value:A.time,"onUpdate:value":k[17]||(k[17]=B=>A.time=B),"show-time":"",locale:d.unref(wm),format:"YYYY-MM-DD HH:mm",size:"small",style:{width:"100%"}},null,8,["value","locale"])]),d.createElementVNode("div",Mk,[d.createElementVNode("div",Tk,"模型亮度 ("+d.toDisplayString(A.brightness.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:A.brightness,"onUpdate:value":k[18]||(k[18]=B=>A.brightness=B),min:0,max:5,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",Bk,[d.createElementVNode("div",_k,"模型对比度 ("+d.toDisplayString(A.contrast.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:A.contrast,"onUpdate:value":k[19]||(k[19]=B=>A.contrast=B),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",kk,[d.createElementVNode("div",Pk,"模型饱和度 ("+d.toDisplayString(A.saturation.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:A.saturation,"onUpdate:value":k[20]||(k[20]=B=>A.saturation=B),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",Dk,[k[37]||(k[37]=d.createElementVNode("div",{class:"sub-label"},"背景颜色",-1)),d.createElementVNode("div",Nk,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(C,(B,P)=>d.createElementVNode("div",{key:P,style:d.normalizeStyle({background:B,width:"32px",height:"24px",borderRadius:"2px",cursor:"pointer",border:"1px solid #d9d9d9",flexShrink:0}),onClick:V=>A.backgroundColor=B,title:"预设 "+(P+1)},null,12,Lk)),64))]),d.createElementVNode("div",Rk,[d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":k[21]||(k[21]=B=>E.value=B),style:{width:"40px",height:"24px",padding:"0",border:"1px solid #d9d9d9"}},null,512),[[d.vModelText,E.value]]),d.createVNode(d.unref(o),{value:A.backgroundColor,"onUpdate:value":k[22]||(k[22]=B=>A.backgroundColor=B),size:"small",style:{flex:"1"},placeholder:"CSS 颜色值"},null,8,["value"])])])])):d.createCommentVNode("",!0),m.value==="MOUSE"?(d.openBlock(),d.createElementBlock("div",Fk,[d.createElementVNode("div",Ok,[k[38]||(k[38]=d.createElementVNode("span",null,"碰撞检测",-1)),d.createVNode(d.unref(t),{checked:v.collision,"onUpdate:checked":k[23]||(k[23]=B=>v.collision=B),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Gk,[k[41]||(k[41]=d.createElementVNode("div",{class:"sub-label"},"操作习惯",-1)),d.createVNode(d.unref(n),{value:v.habit,"onUpdate:value":k[24]||(k[24]=B=>v.habit=B),size:"small"},{default:d.withCtx(()=>[d.createVNode(d.unref(s),{value:0},{default:d.withCtx(()=>[...k[39]||(k[39]=[d.createTextVNode("默认 (中键旋转)",-1)])]),_:1}),d.createVNode(d.unref(s),{value:1},{default:d.withCtx(()=>[...k[40]||(k[40]=[d.createTextVNode("习惯1 (左键旋转)",-1)])]),_:1})]),_:1},8,["value"])])])):d.createCommentVNode("",!0)])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-b69becf5"]]),Uk={class:"cad-layer-panel"},Vk={class:"layer-list-container"},Qk={class:"list-header"},zk={class:"col-check"},Hk=["checked"],Yk={class:"list-body"},$k={class:"col-check"},jk=["checked","onChange"],Wk={class:"col-index"},qk=["title"],Kk={class:"col-color"},Xk=["value"],Jk={key:0,class:"empty-text"},Zk=Be(d.defineComponent({__name:"LeitingCadLayer",props:{visible:{type:Boolean,default:!1},currentModelId:{type:String,default:""}},emits:["update:visible","handleCloseCardByCadCard"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods",d.ref({})),o=d.ref(""),r=d.ref([]),a=()=>{s.value&&s.value.getDxfModels&&(r.value=s.value.getDxfModels().map(v=>({modelId:v.modelId,modelName:v.modelName}))||[])},l=d.computed(()=>r.value.map(v=>({value:v.modelId,label:v.modelName}))),c=d.ref([]),h=d.ref([]),u=d.computed(()=>c.value.length>0&&h.value.length===c.value.length),p=({modelId:v})=>{if(c.value=[],h.value=[],s.value&&s.value.getDxfLayers){const b=s.value.getDxfLayers({modelId:v});b&&Object.keys(b).forEach((C,x)=>{b[C].length&&(c.value.push({index:x+1,layerName:C,layerColor:b[C][0].color||"#ffffff",key:C}),h.value.push(C))})}},f=v=>{o.value=v,p({modelId:v})},m=v=>{v.target.checked?h.value=c.value.map(C=>C.key):h.value=[],g()},y=(v,b)=>{b.target.checked?h.value.includes(v)||h.value.push(v):h.value=h.value.filter(x=>x!==v),g()},g=()=>{if(s.value&&s.value.showDxfLayer&&(s.value.showDxfLayer({modelId:o.value,show:!0,layers:h.value}),s.value.getDxfLayers)){const v=s.value.getDxfLayers({modelId:o.value});if(v){const b=Object.keys(v).filter(C=>!h.value.includes(C));s.value.showDxfLayer({modelId:o.value,show:!1,layers:b})}}},A=()=>{n("update:visible",!1),n("handleCloseCardByCadCard")};return d.watch(()=>t.visible,v=>{v&&(a(),t.currentModelId?(o.value=t.currentModelId,p({modelId:t.currentModelId})):l.value.length>0&&(o.value=l.value[0]?.value,p({modelId:o.value})))}),d.watch(()=>t.currentModelId,v=>{v&&t.visible&&(o.value=v,p({modelId:v}))}),(v,b)=>(d.openBlock(),d.createBlock(gt,{visible:i.visible,title:"CAD图层","onUpdate:visible":b[3]||(b[3]=C=>v.$emit("update:visible",C)),onClose:A,width:360,align:"right","initial-position":{x:0,y:60}},{"header-extra":d.withCtx(()=>[d.createElementVNode("div",{class:"header-select-container",onMousedown:b[2]||(b[2]=d.withModifiers(()=>{},["stop"]))},[b[4]||(b[4]=d.createElementVNode("span",{class:"header-label"},"图纸:",-1)),d.createVNode(d.unref(re.Select),{value:o.value,"onUpdate:value":b[0]||(b[0]=C=>o.value=C),options:l.value,onChange:b[1]||(b[1]=C=>f(C)),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",Uk,[d.createElementVNode("div",Vk,[d.createElementVNode("div",Qk,[d.createElementVNode("div",zk,[d.createElementVNode("input",{type:"checkbox",checked:u.value,onChange:m},null,40,Hk)]),b[5]||(b[5]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),b[6]||(b[6]=d.createElementVNode("div",{class:"col-name"},"图层名称",-1)),b[7]||(b[7]=d.createElementVNode("div",{class:"col-color"},"颜色",-1))]),d.createElementVNode("div",Yk,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(c.value,C=>(d.openBlock(),d.createElementBlock("div",{key:C.key,class:"list-item"},[d.createElementVNode("div",$k,[d.createElementVNode("input",{type:"checkbox",checked:h.value.includes(C.key),onChange:x=>y(C.key,x)},null,40,jk)]),d.createElementVNode("div",Wk,d.toDisplayString(C.index),1),d.createElementVNode("div",{class:"col-name",title:C.layerName},d.toDisplayString(C.layerName),9,qk),d.createElementVNode("div",Kk,[d.createElementVNode("input",{type:"color",value:C.layerColor,disabled:""},null,8,Xk)])]))),128)),c.value.length===0?(d.openBlock(),d.createElementBlock("div",Jk,"暂无数据")):d.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-a4db4977"]]),eP={class:"leiting-cad-adjust-panel"},tP={class:"leitingbim-control-panel"},iP={class:"form-item"},nP={class:"radio-group"},sP={class:"form-item"},oP=["title"],rP={class:"param-row"},aP=["step"],lP={class:"param-row"},cP=["step"],dP={class:"param-row"},hP=["step"],uP={class:"param-row"},fP=["step"],pP={class:"param-row"},mP=["step"],gP={class:"param-row"},yP=["step"],AP={class:"param-row"},vP=["step"],bP={class:"button-grid"},wP={key:1,class:"pick-mode-ui"},CP=["onClick"],EP=["checked"],xP={style:{"font-size":"12px",color:"#aaa","padding-left":"10px"}},IP={class:"param-row"},SP={style:{width:"40px"}},MP=["onUpdate:modelValue"],TP={class:"param-row"},BP={style:{width:"40px"}},_P=["onUpdate:modelValue"],kP={class:"param-row"},PP={style:{width:"40px"}},DP=["onUpdate:modelValue"],NP={class:"list-panel"},LP={class:"list-header"},RP={class:"col-check"},FP=["checked"],OP={class:"list-body"},GP={class:"col-check"},UP=["onUpdate:modelValue"],VP={class:"col-index"},QP=["title"],zP={class:"col-main"},HP=["checked","onChange"],YP={key:0,style:{padding:"10px","text-align":"center",color:"#999"}},$P=Be(d.defineComponent({__name:"LeitingCadPosition",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","handleSavingByCadCard","clearBimPointList","save"],setup(i,{expose:e,emit:t}){const n=i,s=t,o=d.inject("leitingMethods"),r=d.ref([]),a=d.ref(""),l=d.computed(()=>r.value.length>0&&r.value.every(k=>k.selected)),c=d.ref("param"),h=d.ref(!1),u=d.ref("bimPoint1"),p=d.ref(null),f=d.ref("bimPoint1"),m=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}}),y=d.ref(1e-6),g=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 k=r.value.find(B=>B.modelId===a.value);return k?k.modelName:""}),v=()=>{s("update:visible",!1)},b=()=>(!p.value&&o?.value?.getViewer&&o?.value?.getCesium&&(p.value=new vc(o.value.getViewer(),o.value.getCesium())),p.value),C=()=>{b()?.clearMarkers(),m.bimPoint1.longitude=void 0,m.bimPoint1.latitude=void 0,m.bimPoint1.height=void 0,m.bimPoint2.longitude=void 0,m.bimPoint2.latitude=void 0,m.bimPoint2.height=void 0},x=k=>{const B=u.value,P=m[B];if(P){P.longitude=k.longitude,P.latitude=k.latitude,P.height=k.height;const V=B==="bimPoint1"?"BIM":"MAP";b()?.addMarker(V,k),me.success(`${P.type}已添加`)}},I=()=>{b()?.registerPickHandler(k=>{x(k)})},E=()=>{b()?.destroyPickHandler()},S=k=>{c.value=k,k!=="pick"&&s("clearBimPointList")};d.watch(()=>c.value,k=>{k==="pick"?I():E()}),d.onUnmounted(()=>{E()});const w=()=>{if(!o?.value?.getDxfModels)return;const k=o.value.getDxfModels();if(Array.isArray(k)?r.value=k.map(B=>({modelId:B.modelId,modelName:B.modelName,formData:B.formData||{},selected:!1,tileset:B})):r.value=[],r.value.length>0){const B=o.value.getCadModelId?o.value.getCadModelId():"";B&&r.value.find(P=>P.modelId===B)?T(B):T(r.value[0].modelId),r.value.forEach(P=>P.selected=!0)}},T=k=>{a.value=k;const B=r.value.find(P=>P.modelId===k);B&&B.formData&&Object.keys(g).forEach(P=>{B.formData[P]!==void 0&&(g[P]=B.formData[P])})},_=(k,B)=>{if(!o?.value?.adjustingModelByCad)return;const P=r.value.find(V=>V.modelId===k);P&&P.tileset&&(P.formData={...P.formData,...B},P.tileset.formData=P.formData,o.value.adjustingModelByCad({...P.formData,tileset:P.tileset}))},F=k=>{if(!a.value)return;const B=g[k];_(a.value,{[k]:B})},U=k=>{const B=r.value.filter(R=>R.selected);if(B.length===0){me.warning("请先选择要调整的模型");return}const{distance:P,heightDistance:V,rotation:G}=g;B.forEach(R=>{const N={...R.formData};switch(k){case"north":N.latitude+=P;break;case"south":N.latitude-=P;break;case"east":N.longitude+=P;break;case"west":N.longitude-=P;break;case"up":N.height+=V;break;case"down":N.height-=V;break;case"rotateLeft":N.totalRotation=(N.totalRotation||0)-G;break;case"rotateRight":N.totalRotation=(N.totalRotation||0)+G;break}R.modelId===a.value&&Object.assign(g,N),_(R.modelId,N)})},L=k=>{const B=k.target.checked;r.value.forEach(P=>P.selected=B)},D=()=>{s("handleSavingByCadCard",r.value),s("save",r.value)},M=()=>{const k=m.bimPoint1,B=m.bimPoint2;if(k.longitude===void 0||B.longitude===void 0){me.warning("请先完成点选操作");return}const P=r.value.filter(O=>O.selected);if(P.length===0){me.warning("请先选择要调整的模型");return}let V=0,G=0,R=0;const N=b();if(N){const{dLon:O,dLat:z,dHeight:j}=N.calculateOffset(k,B);V=O,G=z,R=j}else V=B.longitude-k.longitude,G=B.latitude-k.latitude,R=B.height-k.height;P.forEach(O=>{const z={...O.formData};z.longitude+=V,z.latitude+=G,z.height+=R,O.modelId===a.value&&Object.assign(g,z),_(O.modelId,z)}),me.success("位置已调整")};return d.watch(()=>n.visible,k=>{k?w():(E(),C())}),d.onMounted(()=>{n.visible&&w()}),e({setBIMPointsList:({longitude:k,latitude:B,height:P})=>{m[f.value].longitude=k,m[f.value].latitude=B,m[f.value].height=P},addGltfOr3dTilesModelList:k=>{console.warn("addGltfOr3dTilesModelList is deprecated, use internal loading")}}),(k,B)=>(d.openBlock(),d.createBlock(gt,{visible:n.visible,title:"Cad校准",width:h.value?520:320,height:600,"onUpdate:visible":B[22]||(B[22]=P=>s("update:visible",P)),onClose:v},{default:d.withCtx(()=>[d.createElementVNode("div",eP,[d.createElementVNode("div",tP,[d.createElementVNode("div",iP,[B[23]||(B[23]=d.createElementVNode("label",null,"调整操作:",-1)),d.createElementVNode("div",nP,[d.createElementVNode("span",{class:d.normalizeClass({active:c.value==="param"}),onClick:B[0]||(B[0]=P=>S("param"))},"参数模式",2),d.createElementVNode("span",{class:d.normalizeClass({active:c.value==="pick"}),onClick:B[1]||(B[1]=P=>S("pick"))},"地图点选",2)])]),d.createElementVNode("div",sP,[B[24]||(B[24]=d.createElementVNode("label",null,"主模型:",-1)),d.createElementVNode("span",{class:"value",title:A.value},d.toDisplayString(A.value||"未选择"),9,oP),d.createElementVNode("button",{class:"toggle-list-btn",onClick:B[2]||(B[2]=P=>h.value=!h.value)},d.toDisplayString(h.value?"收起":"查看详情"),1)]),B[36]||(B[36]=d.createElementVNode("div",{class:"separator"},null,-1)),c.value==="param"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[B[32]||(B[32]=d.createElementVNode("div",{class:"group-header"},"当前状态",-1)),d.createElementVNode("div",rP,[B[25]||(B[25]=d.createElementVNode("label",null,"经度(东西):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[3]||(B[3]=P=>g.longitude=P),onChange:B[4]||(B[4]=P=>F("longitude")),step:y.value},null,40,aP),[[d.vModelText,g.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",lP,[B[26]||(B[26]=d.createElementVNode("label",null,"纬度(南北):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[5]||(B[5]=P=>g.latitude=P),onChange:B[6]||(B[6]=P=>F("latitude")),step:y.value},null,40,cP),[[d.vModelText,g.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",dP,[B[27]||(B[27]=d.createElementVNode("label",null,"高度(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[7]||(B[7]=P=>g.height=P),onChange:B[8]||(B[8]=P=>F("height")),step:y.value},null,40,hP),[[d.vModelText,g.height,void 0,{number:!0}]])]),d.createElementVNode("div",uP,[B[28]||(B[28]=d.createElementVNode("label",null,"累计旋转(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[9]||(B[9]=P=>g.totalRotation=P),onChange:B[10]||(B[10]=P=>F("totalRotation")),step:y.value},null,40,fP),[[d.vModelText,g.totalRotation,void 0,{number:!0}]])]),B[33]||(B[33]=d.createElementVNode("div",{class:"separator"},null,-1)),B[34]||(B[34]=d.createElementVNode("div",{class:"group-header"},"调整步长",-1)),d.createElementVNode("div",pP,[B[29]||(B[29]=d.createElementVNode("label",null,"经纬步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[11]||(B[11]=P=>g.distance=P),step:y.value},null,8,mP),[[d.vModelText,g.distance,void 0,{number:!0}]])]),d.createElementVNode("div",gP,[B[30]||(B[30]=d.createElementVNode("label",null,"高度步长(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[12]||(B[12]=P=>g.heightDistance=P),step:y.value},null,8,yP),[[d.vModelText,g.heightDistance,void 0,{number:!0}]])]),d.createElementVNode("div",AP,[B[31]||(B[31]=d.createElementVNode("label",null,"旋转步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[13]||(B[13]=P=>g.rotation=P),step:y.value},null,8,vP),[[d.vModelText,g.rotation,void 0,{number:!0}]])]),d.createElementVNode("div",bP,[d.createElementVNode("button",{onClick:B[14]||(B[14]=P=>U("rotateLeft"))},"左转"),d.createElementVNode("button",{onClick:B[15]||(B[15]=P=>U("north"))},"北移"),d.createElementVNode("button",{onClick:B[16]||(B[16]=P=>U("rotateRight"))},"右转"),d.createElementVNode("button",{onClick:B[17]||(B[17]=P=>U("west"))},"西移"),d.createElementVNode("button",{onClick:B[18]||(B[18]=P=>U("south"))},"南移"),d.createElementVNode("button",{onClick:B[19]||(B[19]=P=>U("east"))},"东移"),d.createElementVNode("button",{onClick:B[20]||(B[20]=P=>U("up"))},"上移"),d.createElementVNode("button",{onClick:B[21]||(B[21]=P=>U("down"))},"下移"),d.createElementVNode("button",{onClick:D,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):(d.openBlock(),d.createElementBlock("div",wP,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(m,(P,V)=>(d.openBlock(),d.createElementBlock("div",{key:V,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:G=>u.value=V},[d.createElementVNode("input",{type:"radio",checked:u.value===V,style:{"margin-right":"5px"}},null,8,EP),d.createTextVNode(" "+d.toDisplayString(P.type)+": ",1)],8,CP),d.createElementVNode("div",xP,[d.createElementVNode("div",IP,[d.createElementVNode("label",SP,d.toDisplayString(P.longitudeText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":G=>P.longitude=G,readonly:"",style:{width:"100px"}},null,8,MP),[[d.vModelText,P.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",TP,[d.createElementVNode("label",BP,d.toDisplayString(P.latitudeText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":G=>P.latitude=G,readonly:"",style:{width:"100px"}},null,8,_P),[[d.vModelText,P.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",kP,[d.createElementVNode("label",PP,d.toDisplayString(P.heightText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":G=>P.height=G,readonly:"",style:{width:"100px"}},null,8,DP),[[d.vModelText,P.height,void 0,{number:!0}]])])])]))),128)),d.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[d.createElementVNode("button",{onClick:M,class:"primary-btn"},"应用校准"),d.createElementVNode("button",{onClick:D},"保存")]),B[35]||(B[35]=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.withDirectives(d.createElementVNode("div",NP,[d.createElementVNode("div",LP,[d.createElementVNode("div",RP,[d.createElementVNode("input",{type:"checkbox",checked:l.value,onChange:L},null,40,FP)]),B[37]||(B[37]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),B[38]||(B[38]=d.createElementVNode("div",{class:"col-name"},"名称",-1)),B[39]||(B[39]=d.createElementVNode("div",{class:"col-main"},"主模型",-1))]),d.createElementVNode("div",OP,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(r.value,(P,V)=>(d.openBlock(),d.createElementBlock("div",{key:P.modelId,class:d.normalizeClass(["list-item",{active:P.modelId===a.value}])},[d.createElementVNode("div",GP,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":G=>P.selected=G},null,8,UP),[[d.vModelCheckbox,P.selected]])]),d.createElementVNode("div",VP,d.toDisplayString(V+1),1),d.createElementVNode("div",{class:"col-name",title:P.modelName},d.toDisplayString(P.modelName),9,QP),d.createElementVNode("div",zP,[d.createElementVNode("input",{type:"radio",name:"mainModel",checked:P.modelId===a.value,onChange:G=>T(P.modelId)},null,40,HP)])],2))),128)),r.value.length===0?(d.openBlock(),d.createElementBlock("div",YP,"暂无数据")):d.createCommentVNode("",!0)])],512),[[d.vShow,h.value]])])]),_:1},8,["visible","width"]))}}),[["__scopeId","data-v-a0968a77"]]),jP={class:"coord-transform-card"},WP={class:"param-row"},qP={class:"param-row"},KP={class:"param-row"},XP={class:"param-row"},JP={class:"param-row"},ZP={class:"param-row"},eD={class:"param-row"},tD={class:"button-grid transform-actions"},iD=Be(d.defineComponent({__name:"LeitingGISCadCoordTransform",emits:["apply-transform","save-position"],setup(i,{emit:e}){const t=e,n=d.inject("leitingMethods"),s=d.ref("projectedToLonlat"),o=d.reactive({centralMeridian:117,latOrigin:0,scaleFactor:1,falseEasting:5e5,falseNorthing:0,ellipsoid:"GRS80"}),r=()=>{const l=n?.value?.getDefaultGISCadTransformConfig?.()||{centralMeridian:117,latOrigin:0,scaleFactor:1,falseEasting:5e5,falseNorthing:0,ellipsoid:"GRS80"};Object.assign(o,l)},a=()=>{t("apply-transform",{direction:s.value,config:{...o}})};return r(),(l,c)=>(d.openBlock(),d.createElementBlock("div",jP,[d.createElementVNode("div",WP,[c[10]||(c[10]=d.createElementVNode("label",null,"转换方向:",-1)),d.createVNode(d.unref(re.Select),{value:s.value,"onUpdate:value":c[0]||(c[0]=h=>s.value=h),class:"custom-select",popupClassName:"leiting-select-dropdown",size:"small"},{default:d.withCtx(()=>[d.createVNode(d.unref(re.SelectOption),{value:"projectedToLonlat"},{default:d.withCtx(()=>[...c[8]||(c[8]=[d.createTextVNode("投影转经纬 (根据模型局部坐标)",-1)])]),_:1}),d.createVNode(d.unref(re.SelectOption),{value:"lonlatToProjected"},{default:d.withCtx(()=>[...c[9]||(c[9]=[d.createTextVNode("经纬转投影 (根据模型经纬度)",-1)])]),_:1})]),_:1},8,["value"])]),d.createElementVNode("div",qP,[c[11]||(c[11]=d.createElementVNode("label",null,"中央经线:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":c[1]||(c[1]=h=>o.centralMeridian=h),type:"number"},null,512),[[d.vModelText,o.centralMeridian,void 0,{number:!0}]])]),d.createElementVNode("div",KP,[c[12]||(c[12]=d.createElementVNode("label",null,"纬度基线:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":c[2]||(c[2]=h=>o.latOrigin=h),type:"number"},null,512),[[d.vModelText,o.latOrigin,void 0,{number:!0}]])]),d.createElementVNode("div",XP,[c[13]||(c[13]=d.createElementVNode("label",null,"投影比例:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":c[3]||(c[3]=h=>o.scaleFactor=h),type:"number",step:"0.000001"},null,512),[[d.vModelText,o.scaleFactor,void 0,{number:!0}]])]),d.createElementVNode("div",JP,[c[14]||(c[14]=d.createElementVNode("label",null,"东偏移:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":c[4]||(c[4]=h=>o.falseEasting=h),type:"number"},null,512),[[d.vModelText,o.falseEasting,void 0,{number:!0}]])]),d.createElementVNode("div",ZP,[c[15]||(c[15]=d.createElementVNode("label",null,"北偏移:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":c[5]||(c[5]=h=>o.falseNorthing=h),type:"number"},null,512),[[d.vModelText,o.falseNorthing,void 0,{number:!0}]])]),d.createElementVNode("div",eD,[c[20]||(c[20]=d.createElementVNode("label",null,"椭球体:",-1)),d.createVNode(d.unref(re.Select),{value:o.ellipsoid,"onUpdate:value":c[6]||(c[6]=h=>o.ellipsoid=h),class:"custom-select",popupClassName:"leiting-select-dropdown",size:"small"},{default:d.withCtx(()=>[d.createVNode(d.unref(re.SelectOption),{value:"GRS80"},{default:d.withCtx(()=>[...c[16]||(c[16]=[d.createTextVNode("CGCS2000 (GRS80)",-1)])]),_:1}),d.createVNode(d.unref(re.SelectOption),{value:"WGS84"},{default:d.withCtx(()=>[...c[17]||(c[17]=[d.createTextVNode("WGS84",-1)])]),_:1}),d.createVNode(d.unref(re.SelectOption),{value:"krass"},{default:d.withCtx(()=>[...c[18]||(c[18]=[d.createTextVNode("北京54 (Krassovsky)",-1)])]),_:1}),d.createVNode(d.unref(re.SelectOption),{value:"IAU76"},{default:d.withCtx(()=>[...c[19]||(c[19]=[d.createTextVNode("西安80 (IAU76)",-1)])]),_:1})]),_:1},8,["value"])]),d.createElementVNode("div",tD,[d.createElementVNode("button",{class:"primary-btn",onClick:a,style:{"grid-column":"span 2"}},"应用到选中模型"),d.createElementVNode("button",{onClick:c[7]||(c[7]=h=>t("save-position"))},"保存位置")]),c[21]||(c[21]=d.createElementVNode("div",{class:"instructions"},[d.createElementVNode("div",null,"操作指南:"),d.createElementVNode("div",null,"1. 在列表中勾选需要转换的模型。"),d.createElementVNode("div",null,"2. 配置对应坐标系的转换参数。"),d.createElementVNode("div",null,"3. 点击“应用到选中模型”进行批量转换预览。")],-1))]))}}),[["__scopeId","data-v-f069993f"]]),nD={class:"adjust-panel"},sD={class:"leitingbim-control-panel"},oD={class:"form-item"},rD={class:"radio-group"},aD={class:"form-item"},lD=["title"],cD={class:"param-row"},dD=["step"],hD={class:"param-row"},uD=["step"],fD={class:"param-row"},pD=["step"],mD={class:"param-row"},gD=["step"],yD={class:"param-row"},AD=["step"],vD={class:"param-row"},bD=["step"],wD={class:"param-row"},CD=["step"],ED={class:"param-row"},xD=["step"],ID={class:"param-row"},SD=["step"],MD={class:"button-grid"},TD={class:"action-buttons"},BD={key:1,class:"pick-mode-ui"},_D=["onClick"],kD=["checked","onChange"],PD={class:"pick-point-body"},DD={class:"param-row"},ND={class:"pick-label"},LD=["onUpdate:modelValue"],RD={class:"param-row"},FD={class:"pick-label"},OD=["onUpdate:modelValue"],GD={class:"param-row"},UD={class:"pick-label"},VD=["onUpdate:modelValue"],QD={class:"button-grid pick-button-grid"},zD={class:"list-panel"},HD={class:"list-header"},YD={class:"col-check"},$D=["checked"],jD={class:"list-body"},WD={class:"col-check"},qD=["onUpdate:modelValue"],KD={class:"col-index"},XD=["title"],JD={class:"col-main"},ZD=["checked","onChange"],eN={key:0,class:"empty-text"},tN=Be(d.defineComponent({__name:"LeitingGISCadPosition",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref(1e-6),r=d.ref([]),a=d.ref(""),l=d.ref("param"),c=d.ref(!1),h=d.ref("cadPoint"),u=d.ref(null),p=d.reactive({cadPoint:{longitude:void 0,latitude:void 0,height:void 0,type:"CAD标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程"},mapPoint:{longitude:void 0,latitude:void 0,height:void 0,type:"地图标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程"}}),f=d.reactive({modelId:"",longitude:0,latitude:0,height:0,totalRotation:0,scale:1,distance:1e-4,heightDistance:1,rotation:1,scaleStep:.1,localOriginX:0,localOriginY:0,clampToGround:!1}),m=d.computed(()=>r.value.length>0&&r.value.every(N=>N.selected)),y=d.computed(()=>r.value.find(N=>N.modelId===a.value)?.modelName||""),g=()=>(!u.value&&s?.value?.getViewer&&s?.value?.getCesium&&(u.value=new vc(s.value.getViewer(),s.value.getCesium())),u.value),A=()=>{p.cadPoint.longitude=void 0,p.cadPoint.latitude=void 0,p.cadPoint.height=void 0,p.mapPoint.longitude=void 0,p.mapPoint.latitude=void 0,p.mapPoint.height=void 0},v=()=>{u.value?.clearMarkers(),A()},b=N=>{const O=h.value,z=p[O];z&&(z.longitude=N.longitude,z.latitude=N.latitude,z.height=N.height,g()?.addMarker(O==="cadPoint"?"BIM":"MAP",N),me.success(`${z.type}已添加`))},C=()=>{g()?.registerPickHandler(O=>{b(O)})},x=()=>{u.value?.destroyPickHandler()},I=N=>{l.value=N},E=N=>{(N==="cadPoint"||N==="mapPoint")&&(h.value=N)},S=N=>{const O=N?.editingFormData||N?.formData||{};return{modelId:N?.modelId||"",longitude:Number(O.longitude??0),latitude:Number(O.latitude??0),height:Number(O.height??0),totalRotation:Number(O.totalRotation??0),scale:Math.max(1e-6,Number(O.scale??1)),distance:Number(O.distance??1e-6),heightDistance:Number(O.heightDistance??1),rotation:Number(O.rotation??1),scaleStep:Number(O.scaleStep??.1),localOriginX:Number(O.localOriginX??0),localOriginY:Number(O.localOriginY??0),transformConfig:O.transformConfig||void 0,transformDirection:O.transformDirection||void 0,clampToGround:O.clampToGround??!1}},w=()=>{const N=r.value.find(O=>O.modelId===a.value);N&&Object.assign(f,N.formData,{modelId:N.modelId})},T=()=>{if(!s?.value?.getGISCadModels){r.value=[];return}const N=new Map(r.value.map(te=>[te.modelId,te.selected])),O=s.value.getGISCadModels()||[];if(r.value=Array.isArray(O)?O.map(te=>({modelId:te.modelId,modelName:te.modelName,selected:N.get(te.modelId)??!0,runtimeModel:te,formData:S(te)})):[],!r.value.length){a.value="";return}const z=r.value[0];if(!z)return;const j=s.value.getGISCadModelId?.()||a.value||z.modelId,Z=r.value.find(te=>te.modelId===j);a.value=Z?.modelId||z.modelId,w()},_=N=>{a.value=N,w()},F=(N,O)=>{if(!s?.value?.adjustGISCadModel)return null;s.value.beginEditGISCad?.({modelId:N});const z=s.value.adjustGISCadModel({modelId:N,...O}),j=r.value.find(Z=>Z.modelId===N);return j&&z&&(j.formData={...j.formData,...z,modelId:N},j.runtimeModel={...j.runtimeModel,editingFormData:z,isEditing:!0}),N===a.value&&Object.assign(f,j?.formData||f,{modelId:N}),z},U=N=>{if(!a.value)return;const O=r.value.find(te=>te.modelId===a.value);if(!O)return;if(N==="clampToGround"){const te=!!f[N];F(a.value,{[N]:te}),r.value.filter(de=>de.selected&&de.modelId!==a.value).forEach(de=>{F(de.modelId,{[N]:te})});return}const z=Number(f[N]),j=Number(O.formData[N]),Z=z-j;F(a.value,{[N]:N==="scale"?Math.max(1e-6,z):z}),!(Z===0||N==="scale")&&r.value.filter(te=>te.selected&&te.modelId!==a.value).forEach(te=>{F(te.modelId,{[N]:Number(te.formData[N])+Z})})},L=N=>{const O=r.value.filter(z=>z.selected);if(!O.length){me.warning("请先选择要调整的模型");return}O.forEach(z=>{const j={...z.formData};switch(N){case"north":j.latitude+=f.distance;break;case"south":j.latitude-=f.distance;break;case"east":j.longitude+=f.distance;break;case"west":j.longitude-=f.distance;break;case"up":j.height+=f.heightDistance;break;case"down":j.height-=f.heightDistance;break;case"rotateLeft":j.totalRotation-=f.rotation;break;case"rotateRight":j.totalRotation+=f.rotation;break;case"scaleUp":j.scale=Math.max(1e-6,j.scale+f.scaleStep);break;case"scaleDown":j.scale=Math.max(1e-6,j.scale-f.scaleStep);break;default:return}j.distance=f.distance,j.heightDistance=f.heightDistance,j.rotation=f.rotation,j.scaleStep=f.scaleStep,F(z.modelId,j)})},D=({direction:N,config:O})=>{const z=r.value.filter(te=>te.selected);if(!z.length){me.warning("请先选择要转换的模型");return}if(!s?.value?.transformGISCadCoordinate){me.warning("未找到 GIS CAD 坐标转换方法");return}let Z=0;z.forEach(te=>{try{const de=Number(te.formData.localOriginX),pe=Number(te.formData.localOriginY);let Ae={longitude:te.formData.longitude,latitude:te.formData.latitude};const Pe=s?.value?.transformGISCadCoordinate;if(Pe){const Ge=Pe({direction:N,...N==="projectedToLonlat"?{x:de,y:pe}:{longitude:te.formData.longitude,latitude:te.formData.latitude},config:{...O}});N==="projectedToLonlat"&&Ge.longitude&&(Ae.longitude=Ge.longitude,Ae.latitude=Ge.latitude)}F(te.modelId,{transformConfig:{...O},transformDirection:N,longitude:Ae.longitude,latitude:Ae.latitude}),Z++}catch(de){console.warn("Transform failed for model",te.modelId,de)}}),Z>0?me.success(`已成功转换 ${Z} 个模型的坐标并重新加载,请预览后提交贴地`):me.error("坐标转换失败,请检查参数或模型状态")},M=()=>{f.clampToGround=!f.clampToGround,U("clampToGround")},k=()=>{const N=p.cadPoint,O=p.mapPoint;if(N.longitude===void 0||N.latitude===void 0||N.height===void 0||O.longitude===void 0||O.latitude===void 0||O.height===void 0){me.warning("请先完成 CAD 和地图点位采集");return}const j=r.value.filter(pe=>pe.selected);if(!j.length){me.warning("请先选择要调整的模型");return}const{dLon:Z,dLat:te,dHeight:de}=g()?.calculateOffset(N,O)||{dLon:O.longitude-N.longitude,dLat:O.latitude-N.latitude,dHeight:O.height-N.height};j.forEach(pe=>{F(pe.modelId,{longitude:Number(pe.formData.longitude)+Z,latitude:Number(pe.formData.latitude)+te,height:Number(pe.formData.height)+de})}),me.success("点选校准预览已更新")},B=()=>{const N=r.value.filter(z=>z.selected);if(!N.length){me.warning("请先选择要提交的模型");return}const O=[];N.forEach(z=>{const j=s?.value?.commitEditGISCad?.({modelId:z.modelId});j&&j.formData&&O.push({modelId:j.modelId,formData:j.formData})}),T(),O.length>0&&s?.value?.onGISCadPositionChange&&s.value.onGISCadPositionChange(O),me.success("GIS CAD 已提交为贴地结果")},P=()=>{r.value.forEach(N=>{s?.value?.cancelEditGISCad?.({modelId:N.modelId})})},V=()=>{if(!a.value){me.warning("请先选择主模型");return}if(!s?.value?.flyToGISCadModel){me.warning("飞转方法不可用");return}s.value.flyToGISCadModel({modelId:a.value,duration:1.5})},G=N=>{const O=N.target.checked;r.value.forEach(z=>{z.selected=O})},R=()=>{P(),x(),v(),n("update:visible",!1)};return d.watch(l,N=>{t.visible&&(N==="pick"?C():x())}),d.watch(()=>t.visible,N=>{N?(T(),l.value==="pick"&&C()):(x(),v(),P(),T())}),d.onMounted(()=>{t.visible&&(T(),l.value==="pick"&&C())}),d.onUnmounted(()=>{x(),v(),P()}),(N,O)=>(d.openBlock(),d.createBlock(gt,{visible:t.visible,title:"GIS CAD调整",width:c.value?580:340,"onUpdate:visible":O[28]||(O[28]=z=>n("update:visible",z)),onClose:R},{default:d.withCtx(()=>[d.createElementVNode("div",nD,[d.createElementVNode("div",sD,[d.createElementVNode("div",oD,[O[29]||(O[29]=d.createElementVNode("label",null,"调整操作:",-1)),d.createElementVNode("div",rD,[d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="param"}),onClick:O[0]||(O[0]=z=>I("param"))}," 参数模式 ",2),d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="pick"}),onClick:O[1]||(O[1]=z=>I("pick"))}," 地图点选 ",2),d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="transform"}),onClick:O[2]||(O[2]=z=>I("transform"))}," 坐标转换 ",2)])]),d.createElementVNode("div",aD,[O[30]||(O[30]=d.createElementVNode("label",null,"主模型:",-1)),d.createElementVNode("span",{class:"value",title:y.value},d.toDisplayString(y.value||"未选择"),9,lD),d.createElementVNode("button",{class:"toggle-list-btn",onClick:O[3]||(O[3]=z=>c.value=!c.value)},d.toDisplayString(c.value?"收起":"查看详情"),1)]),O[44]||(O[44]=d.createElementVNode("div",{class:"separator"},null,-1)),l.value==="param"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[O[40]||(O[40]=d.createElementVNode("div",{class:"group-header"},"当前状态",-1)),d.createElementVNode("div",cD,[O[31]||(O[31]=d.createElementVNode("label",null,"经度(东西):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[4]||(O[4]=z=>f.longitude=z),type:"number",step:o.value,onChange:O[5]||(O[5]=z=>U("longitude"))},null,40,dD),[[d.vModelText,f.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",hD,[O[32]||(O[32]=d.createElementVNode("label",null,"纬度(南北):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[6]||(O[6]=z=>f.latitude=z),type:"number",step:o.value,onChange:O[7]||(O[7]=z=>U("latitude"))},null,40,uD),[[d.vModelText,f.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",fD,[O[33]||(O[33]=d.createElementVNode("label",null,"高度(m):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[8]||(O[8]=z=>f.height=z),type:"number",step:o.value,onChange:O[9]||(O[9]=z=>U("height"))},null,40,pD),[[d.vModelText,f.height,void 0,{number:!0}]])]),d.createElementVNode("div",mD,[O[34]||(O[34]=d.createElementVNode("label",null,"累计旋转(°):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[10]||(O[10]=z=>f.totalRotation=z),type:"number",step:o.value,onChange:O[11]||(O[11]=z=>U("totalRotation"))},null,40,gD),[[d.vModelText,f.totalRotation,void 0,{number:!0}]])]),d.createElementVNode("div",yD,[O[35]||(O[35]=d.createElementVNode("label",null,"缩放比例:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[12]||(O[12]=z=>f.scale=z),type:"number",min:"0.000001",step:o.value,onChange:O[13]||(O[13]=z=>U("scale"))},null,40,AD),[[d.vModelText,f.scale,void 0,{number:!0}]])]),O[41]||(O[41]=d.createElementVNode("div",{class:"separator"},null,-1)),O[42]||(O[42]=d.createElementVNode("div",{class:"group-header"},"调整步长",-1)),d.createElementVNode("div",vD,[O[36]||(O[36]=d.createElementVNode("label",null,"经纬步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[14]||(O[14]=z=>f.distance=z),type:"number",step:o.value},null,8,bD),[[d.vModelText,f.distance,void 0,{number:!0}]])]),d.createElementVNode("div",wD,[O[37]||(O[37]=d.createElementVNode("label",null,"高度步长(m):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[15]||(O[15]=z=>f.heightDistance=z),type:"number",step:o.value},null,8,CD),[[d.vModelText,f.heightDistance,void 0,{number:!0}]])]),d.createElementVNode("div",ED,[O[38]||(O[38]=d.createElementVNode("label",null,"旋转步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[16]||(O[16]=z=>f.rotation=z),type:"number",step:o.value},null,8,xD),[[d.vModelText,f.rotation,void 0,{number:!0}]])]),d.createElementVNode("div",ID,[O[39]||(O[39]=d.createElementVNode("label",null,"缩放步长:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[17]||(O[17]=z=>f.scaleStep=z),type:"number",step:o.value},null,8,SD),[[d.vModelText,f.scaleStep,void 0,{number:!0}]])]),d.createElementVNode("div",MD,[d.createElementVNode("button",{onClick:O[18]||(O[18]=z=>L("rotateLeft"))},"左转"),d.createElementVNode("button",{onClick:O[19]||(O[19]=z=>L("north"))},"北移"),d.createElementVNode("button",{onClick:O[20]||(O[20]=z=>L("rotateRight"))},"右转"),d.createElementVNode("button",{onClick:O[21]||(O[21]=z=>L("west"))},"西移"),d.createElementVNode("button",{onClick:O[22]||(O[22]=z=>L("south"))},"南移"),d.createElementVNode("button",{onClick:O[23]||(O[23]=z=>L("east"))},"东移"),d.createElementVNode("button",{onClick:O[24]||(O[24]=z=>L("up"))},"上移"),d.createElementVNode("button",{onClick:O[25]||(O[25]=z=>L("scaleDown"))},"缩小"),d.createElementVNode("button",{onClick:O[26]||(O[26]=z=>L("scaleUp"))},"放大"),d.createElementVNode("button",{onClick:O[27]||(O[27]=z=>L("down"))},"下移")]),d.createElementVNode("div",TD,[d.createElementVNode("button",{class:d.normalizeClass({"primary-btn":f.clampToGround}),onClick:M}," 贴地 ",2),d.createElementVNode("button",{onClick:B},"保存位置"),d.createElementVNode("button",{onClick:V},"正北俯视")])],64)):l.value==="pick"?(d.openBlock(),d.createElementBlock("div",BD,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(p,(z,j)=>(d.openBlock(),d.createElementBlock("div",{key:j,class:"pick-point-item"},[d.createElementVNode("div",{class:"pick-point-title",onClick:Z=>E(j)},[d.createElementVNode("input",{type:"radio",name:"gisCadPickPoint",checked:h.value===j,onChange:Z=>E(j)},null,40,kD),d.createElementVNode("span",null,d.toDisplayString(z.type)+":",1)],8,_D),d.createElementVNode("div",PD,[d.createElementVNode("div",DD,[d.createElementVNode("label",ND,d.toDisplayString(z.longitudeText),1),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":Z=>z.longitude=Z,type:"number",readonly:""},null,8,LD),[[d.vModelText,z.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",RD,[d.createElementVNode("label",FD,d.toDisplayString(z.latitudeText),1),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":Z=>z.latitude=Z,type:"number",readonly:""},null,8,OD),[[d.vModelText,z.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",GD,[d.createElementVNode("label",UD,d.toDisplayString(z.heightText),1),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":Z=>z.height=Z,type:"number",readonly:""},null,8,VD),[[d.vModelText,z.height,void 0,{number:!0}]])])])]))),128)),d.createElementVNode("div",QD,[d.createElementVNode("button",{class:"primary-btn",onClick:k},"应用校准"),d.createElementVNode("button",{class:d.normalizeClass({"primary-btn":f.clampToGround}),onClick:M}," 贴地 ",2),d.createElementVNode("button",{onClick:B},"保存位置"),d.createElementVNode("button",{onClick:V},"正北俯视")]),O[43]||(O[43]=d.createElementVNode("div",{class:"instructions"},[d.createElementVNode("div",null,"操作指南:"),d.createElementVNode("div",null,"1. 先选择上方 CAD 标记点或地图标记点。"),d.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),d.createElementVNode("div",null,"3. 采集两点后,点击“应用校准”进行预览。"),d.createElementVNode("div",null,"4. 确认结果后,点击“提交贴地”生效。")],-1))])):l.value==="transform"?(d.openBlock(),d.createBlock(iD,{key:2,onApplyTransform:D,onSavePosition:B})):d.createCommentVNode("",!0)]),d.withDirectives(d.createElementVNode("div",zD,[d.createElementVNode("div",HD,[d.createElementVNode("div",YD,[d.createElementVNode("input",{type:"checkbox",checked:m.value,onChange:G},null,40,$D)]),O[45]||(O[45]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),O[46]||(O[46]=d.createElementVNode("div",{class:"col-name"},"名称",-1)),O[47]||(O[47]=d.createElementVNode("div",{class:"col-main"},"主模型",-1))]),d.createElementVNode("div",jD,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(r.value,(z,j)=>(d.openBlock(),d.createElementBlock("div",{key:z.modelId,class:d.normalizeClass(["list-item",{active:z.modelId===a.value}])},[d.createElementVNode("div",WD,[d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":Z=>z.selected=Z,type:"checkbox"},null,8,qD),[[d.vModelCheckbox,z.selected]])]),d.createElementVNode("div",KD,d.toDisplayString(j+1),1),d.createElementVNode("div",{class:"col-name",title:z.modelName},d.toDisplayString(z.modelName),9,XD),d.createElementVNode("div",JD,[d.createElementVNode("input",{checked:z.modelId===a.value,type:"radio",name:"gisCadMainModel",onChange:Z=>_(z.modelId)},null,40,ZD)])],2))),128)),r.value.length===0?(d.openBlock(),d.createElementBlock("div",eN,"暂无 GIS CAD 数据")):d.createCommentVNode("",!0)])],512),[[d.vShow,c.value]])])]),_:1},8,["visible","width"]))}}),[["__scopeId","data-v-9ab9e524"]]),iN={class:"annotation-content"},nN={class:"annotation-tools"},sN={class:"annotation-controls"},oN={class:"control-group",title:"颜色"},rN={class:"tool-item color-tool"},aN={class:"control-group line-width-container",title:"线宽"},lN=["onClick"],cN={class:"option-label"},dN=Be(d.defineComponent({__name:"LeitingAnnotationCard",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref(""),r=d.ref("#ff0000"),a=d.ref(1),l=d.ref(!1),c=d.ref(null),h=d.ref(null),u=d.ref({top:"0px",left:"0px"}),p=[{value:6,label:"粗"},{value:3,label:"中"},{value:1,label:"细"}],f=()=>s?.value?.getAnnotationInstance?s.value.getAnnotationInstance():null,m=()=>{n("update:visible",!1)},y=E=>{o.value=E;const S=f();if(S)switch(E){case"freehandLine":S.startFreehandLine();break;case"arrow":S.startArrow();break;case"straightLine":S.startStraightLine();break;case"rectangle":S.startRectangle();break;case"ellipse":S.startEllipse();break}},g=()=>{const E=f();E&&(E.setCurrentColor(r.value),E.changeColor(r.value))},A=()=>{if(!l.value&&c.value){const E=c.value.getBoundingClientRect();u.value={top:`${E.top}px`,left:`${E.right+8}px`}}l.value=!l.value},v=E=>{a.value=E,l.value=!1;const S=f();S&&(S.setCurrentWidth(E),S.changeWidth(E))},b=()=>{const E=f();E&&E.deleteSelectedEntity()},C=()=>{const E=f();E&&E.clearAll()},x=()=>{if(s?.value?.saveAnnotations){s.value.saveAnnotations();return}const E=f();E&&E.saveAnnotations()},I=E=>{const S=E.target,w=c.value&&c.value.contains(S),T=h.value&&h.value.contains(S);!w&&!T&&(l.value=!1)};return d.onMounted(()=>{document.addEventListener("click",I)}),d.onUnmounted(()=>{document.removeEventListener("click",I)}),(E,S)=>(d.openBlock(),d.createBlock(gt,{visible:t.visible,title:"标注",width:70,"min-width":70,height:480,"onUpdate:visible":S[6]||(S[6]=w=>n("update:visible",w)),onClose:m},{default:d.withCtx(()=>[d.createElementVNode("div",iN,[d.createElementVNode("div",nN,[d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="freehandLine"}]),onClick:S[0]||(S[0]=w=>y("freehandLine")),title:"手绘线"},[...S[7]||(S[7]=[d.createElementVNode("div",{class:"tool-icon"},"✏️",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="arrow"}]),onClick:S[1]||(S[1]=w=>y("arrow")),title:"箭头"},[...S[8]||(S[8]=[d.createElementVNode("div",{class:"tool-icon"},"↗️",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="straightLine"}]),onClick:S[2]||(S[2]=w=>y("straightLine")),title:"直线"},[...S[9]||(S[9]=[d.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="rectangle"}]),onClick:S[3]||(S[3]=w=>y("rectangle")),title:"矩形"},[...S[10]||(S[10]=[d.createElementVNode("div",{class:"tool-icon"},"▭",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="ellipse"}]),onClick:S[4]||(S[4]=w=>y("ellipse")),title:"椭圆"},[...S[11]||(S[11]=[d.createElementVNode("div",{class:"tool-icon"},"⭕",-1)])],2)]),S[13]||(S[13]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",sN,[d.createElementVNode("div",oN,[d.createElementVNode("div",rN,[d.createElementVNode("div",{class:"color-swatch",style:d.normalizeStyle({backgroundColor:r.value})},null,4),d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":S[5]||(S[5]=w=>r.value=w),onChange:g,class:"color-input-overlay"},null,544),[[d.vModelText,r.value]])])]),d.createElementVNode("div",aN,[d.createElementVNode("div",{ref_key:"lineWidthBtnRef",ref:c,class:"tool-item",onClick:d.withModifiers(A,["stop"])},[d.createElementVNode("div",{class:"current-width-preview",style:d.normalizeStyle({height:a.value+"px",backgroundColor:"#fff"})},null,4)],512),(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[l.value?(d.openBlock(),d.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:h,class:"line-width-dropdown",style:d.normalizeStyle(u.value)},[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(p,w=>d.createElementVNode("div",{key:w.value,class:d.normalizeClass(["line-width-option",{selected:a.value===w.value}]),onClick:d.withModifiers(T=>v(w.value),["stop"])},[d.createElementVNode("span",cN,d.toDisplayString(w.label),1),d.createElementVNode("div",{class:"line-preview",style:d.normalizeStyle({height:w.value+"px",backgroundColor:a.value===w.value?"#1890ff":"#ddd"})},null,4)],10,lN)),64))],4)):d.createCommentVNode("",!0)]))]),S[12]||(S[12]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",{class:"action-buttons"},[d.createElementVNode("button",{class:"control-btn",onClick:b,title:"删除选中"}," 🗑️ "),d.createElementVNode("button",{class:"control-btn",onClick:C,title:"清空"}," ❌ "),d.createElementVNode("button",{class:"control-btn",onClick:x,title:"保存"}," 💾 ")])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-3cfc8415"]]),hN={class:"measure-content"},uN={class:"measure-tools"},fN={key:0,class:"measure-results"},pN={class:"result-row"},mN={class:"result-value"},gN={class:"result-row"},yN={class:"result-value"},AN={class:"result-row"},vN={class:"result-value"},bN={class:"result-row"},wN={class:"result-value"},CN={key:1,class:"result-row"},EN={class:"result-value"},xN={key:2,class:"result-row"},IN={class:"result-value"},SN={class:"measure-controls"},MN={class:"control-group",title:"单位"},TN={class:"unit-display"},BN=["onClick"],_N=Be(d.defineComponent({__name:"LeitingMeasurement",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods",d.ref({})),o=d.ref(null),r=d.ref(null),a=d.ref("m"),l=d.ref(!1),c=d.ref(null),h=d.ref(!1),u=d.ref({}),p=d.ref(null),f=[{label:"米 (m)",value:"m"},{label:"厘米 (cm)",value:"cm"},{label:"毫米 (mm)",value:"mm"}],m=E=>{const S=a.value;return S==="mm"?`${(E*1e3).toFixed(0)}mm`:S==="cm"?`${(E*100).toFixed(1)}cm`:`${E.toFixed(2)}m`},y=E=>E>1e6?`${(E/1e6).toFixed(2)} km²`:`${E.toFixed(2)} m²`,g=()=>{if(!o.value&&s.value?.getViewer){const E=s.value.getViewer(),S=s.value.getCesium();E&&S&&(o.value=new pc({viewer:E,cesium:S}),o.value.setUnit(a.value),o.value.setSnapping(l.value),o.value.onMeasure=w=>{c.value=w})}},A=E=>{o.value||g(),r.value===E?(r.value=null,o.value?.stop(),s.value?.baseCompt?.enableSelection()):(r.value=E,o.value?.start(E),s.value?.baseCompt?.disableSelection())},v=E=>{a.value=E,h.value=!1},b=()=>{o.value&&(o.value.clearAll(),r.value=null,o.value.stop()),s.value?.baseCompt?.enableSelection()},C=()=>{n("update:visible",!1)},x=E=>{if(h.value){h.value=!1;return}const w=E.currentTarget.getBoundingClientRect();u.value={position:"fixed",top:`${w.top}px`,left:`${w.right+5}px`,zIndex:3e3},h.value=!0},I=E=>{h.value&&p.value&&!p.value.contains(E.target)&&(h.value=!1)};return d.onMounted(()=>{document.addEventListener("click",I),t.visible&&d.nextTick(()=>g())}),d.onUnmounted(()=>{document.removeEventListener("click",I),o.value&&o.value.destroy()}),d.watch(()=>t.visible,E=>{E?d.nextTick(()=>g()):o.value&&(o.value.stop(),r.value=null)}),d.watch(s,E=>{E&&E.getViewer&&!o.value&&t.visible&&g()}),d.watch(a,E=>{o.value&&o.value.setUnit(E)}),(E,S)=>(d.openBlock(),d.createBlock(gt,{visible:t.visible,title:"量算",width:70,"min-width":70,height:480,"onUpdate:visible":S[3]||(S[3]=w=>n("update:visible",w)),onClose:C},{default:d.withCtx(()=>[d.createElementVNode("div",hN,[d.createElementVNode("div",uN,[d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="distance"}]),onClick:S[0]||(S[0]=w=>A("distance")),title:"距离测量"},[...S[4]||(S[4]=[d.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="angle"}]),onClick:S[1]||(S[1]=w=>A("angle")),title:"角度测量"},[...S[5]||(S[5]=[d.createElementVNode("div",{class:"tool-icon"},"📐",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="area"}]),onClick:S[2]||(S[2]=w=>A("area")),title:"面积测量"},[...S[6]||(S[6]=[d.createElementVNode("div",{class:"tool-icon"},"🔳",-1)])],2)]),S[15]||(S[15]=d.createElementVNode("div",{class:"separator"},null,-1)),c.value?(d.openBlock(),d.createElementBlock("div",fN,[c.value.type==="distance"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[d.createElementVNode("div",pN,[S[7]||(S[7]=d.createElementVNode("span",{class:"result-label"},"总长:",-1)),d.createElementVNode("span",mN,d.toDisplayString(m(c.value.dist)),1)]),d.createElementVNode("div",gN,[S[8]||(S[8]=d.createElementVNode("span",{class:"result-label",style:{color:"#ff4d4f"}},"ΔX:",-1)),d.createElementVNode("span",yN,d.toDisplayString(m(c.value.dx)),1)]),d.createElementVNode("div",AN,[S[9]||(S[9]=d.createElementVNode("span",{class:"result-label",style:{color:"#52c41a"}},"ΔY:",-1)),d.createElementVNode("span",vN,d.toDisplayString(m(c.value.dy)),1)]),d.createElementVNode("div",bN,[S[10]||(S[10]=d.createElementVNode("span",{class:"result-label",style:{color:"#1890ff"}},"ΔZ:",-1)),d.createElementVNode("span",wN,d.toDisplayString(m(c.value.dz)),1)])],64)):d.createCommentVNode("",!0),c.value.type==="angle"?(d.openBlock(),d.createElementBlock("div",CN,[S[11]||(S[11]=d.createElementVNode("span",{class:"result-label"},"角度:",-1)),d.createElementVNode("span",EN,d.toDisplayString(c.value.angle.toFixed(1))+"°",1)])):d.createCommentVNode("",!0),c.value.type==="area"?(d.openBlock(),d.createElementBlock("div",xN,[S[12]||(S[12]=d.createElementVNode("span",{class:"result-label"},"面积:",-1)),d.createElementVNode("span",IN,d.toDisplayString(y(c.value.area)),1)])):d.createCommentVNode("",!0)])):d.createCommentVNode("",!0),d.createElementVNode("div",SN,[d.createElementVNode("div",MN,[d.createElementVNode("div",{class:"tool-item",onClick:d.withModifiers(x,["stop"])},[d.createElementVNode("div",TN,d.toDisplayString(a.value),1)]),(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[h.value?(d.openBlock(),d.createElementBlock("div",{key:0,ref_key:"unitDropdownRef",ref:p,class:"unit-dropdown",style:d.normalizeStyle(u.value)},[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(f,w=>d.createElementVNode("div",{key:w.value,class:d.normalizeClass(["unit-option",{selected:a.value===w.value}]),onClick:d.withModifiers(T=>v(w.value),["stop"])},d.toDisplayString(w.label),11,BN)),64))],4)):d.createCommentVNode("",!0)]))]),S[14]||(S[14]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",{class:"action-buttons"},[d.createElementVNode("div",{class:"tool-item control-btn",onClick:b,title:"清空"},[...S[13]||(S[13]=[d.createElementVNode("div",{class:"tool-icon"},"🗑️",-1)])])])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-8b1e070f"]]);function Bm(){const i=d.ref(!1),e=d.reactive({x:0,y:0}),t=d.ref([]),n=d.ref(null);return{visible:i,position:e,items:t,contextData:n,show:(l,c,h)=>{l instanceof MouseEvent?(l.preventDefault(),e.x=l.clientX,e.y=l.clientY):(e.x=l.x,e.y=l.y),t.value=c,n.value=h,i.value=!0},hide:()=>{i.value=!1},addItem:l=>{t.value.push(l)},removeItem:l=>{t.value=t.value.filter(c=>c.id!==l)}}}const kN=["onClick","onTouchend"],PN={class:"menu-label"},DN={key:0,class:"menu-arrow"},NN=Be(d.defineComponent({__name:"LeitingContextMenu",props:{visible:{type:Boolean},position:{},items:{}},emits:["update:visible","action"],setup(i,{emit:e}){const t=i,n=e,{isMobile:s}=Or(),o=d.computed(()=>{let l=t.position.x,c=t.position.y;if(s.value){const u=t.items.length*48;l+200>window.innerWidth-16&&(l=window.innerWidth-200-16),c+u>window.innerHeight-16&&(c=window.innerHeight-u-16),c<16&&(c=16)}return{left:l+"px",top:c+"px"}}),r=l=>{l.disabled||(l.action&&l.action(),n("action",l),n("update:visible",!1))},a=()=>{t.visible&&n("update:visible",!1)};return d.onMounted(()=>{document.addEventListener("click",a),document.addEventListener("contextmenu",l=>{l.target.closest(".leiting-context-menu")||a()})}),d.onUnmounted(()=>{document.removeEventListener("click",a)}),(l,c)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{class:d.normalizeClass(["leiting-context-menu",{"mobile-style":d.unref(s)}]),style:d.normalizeStyle(o.value),onContextmenu:c[0]||(c[0]=d.withModifiers(()=>{},["prevent"]))},[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(i.items,h=>(d.openBlock(),d.createElementBlock("div",{key:h.id,class:d.normalizeClass(["menu-item",{"menu-divided":h.divided,"menu-disabled":h.disabled}]),onClick:u=>r(h),onTouchend:d.withModifiers(u=>r(h),["prevent"])},[d.createElementVNode("span",PN,d.toDisplayString(h.label),1),h.children?(d.openBlock(),d.createElementBlock("span",DN,"▶")):d.createCommentVNode("",!0)],42,kN))),128))],38)),[[d.vShow,i.visible]])}}),[["__scopeId","data-v-62c220a6"]]),LN={class:"mobile-nav-root"},RN={class:"nav-bar-container"},FN={key:"sub-mode",class:"nav-inner sub-menu-wrapper"},ON={class:"sub-icons-list"},GN=["onClick"],UN=["innerHTML"],VN={key:"main-mode",class:"nav-inner main-menu-wrapper"},QN=["onClick"],zN=["src","alt"],_m=Be(d.defineComponent({__name:"MobileBottomNav",props:{activeIds:{},is2d:{type:Boolean},customItems:{}},emits:["item-click","sub-item-click","clear-measure"],setup(i,{emit:e}){const t=i,n=e,s=d.ref(null),o=d.ref(null),r={measure:[{id:"distance",label:"距离",parentId:"measure",parentKey:"measurement"},{id:"angle",label:"角度",parentId:"measure",parentKey:"measurement"},{id:"area",label:"面积",parentId:"measure",parentKey:"measurement"},{id:"coordinate",label:"坐标",parentId:"measure",parentKey:"measurement"}],section:[{id:"box",label:"剖切盒",parentId:"section",parentKey:"section"},{id:"plane-x",label:"X轴",parentId:"section",parentKey:"section"},{id:"plane-y",label:"Y轴",parentId:"section",parentKey:"section"}]},a={distance:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 17l6-6 4 4 8-8"/><path d="M17 7h4v4"/></svg>',angle:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 20H4L14 4"/></svg>',area:'<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/></svg>',coordinate:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M2 12h20"/></svg>',box:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/></svg>'},l=g=>a[g]||a.box,c=d.ref([{ID:"home",title:"主视角",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"homeView"},{ID:"measure",title:"量算",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAFESURBVDhPlZMNEcIwDIVXBQwFgAJAAcMBDgAFIGE4wAHgABSwOdgcIAEUjPd6aS/rfhi7y12bJl9f0sxEf3xVVV0RPoetjTFvnWqGcgSylfgihA0CKcgJgBfsAqMiKiM0+gkKlCyZCN8uhPWCFOSBxARWORU4W2CdeV9XjxSEJcwkjokTqBpzjxjCn7CyVRECzjg8wHLYCmabK7CplBcLhMr2DZCqP0dCovYZ9hYGXx1izLUGUkkfxI/sTQiCf4N1zLWAWCKV2nP6PEhB2Ngd7B4GC4SJnCcP8SAFoc/Ph/TqjVvTPogFKUiJ/VGU+GdmUAA5ObA7cyC+iPt/MjUfKRL4emyuK+cGH8tufFRUHywZ+RYlnRDdIwfzLzVUibtQv1oNhoAExtfpVdIAiQIOWiY9o2sQxJemOydTS1jR1di2Zn8B8f27apou9kMAAAAASUVORK5CYII=",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"measurement"},{ID:"roam",title:"漫游",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADhSURBVHgBvVOBEYIwDEw9B2ADO4IjuIEjwAa6Aa7ABMAEuIIjOIFsUDao37vgxVZbBI+/+0tI0+fJBaIIrLUFaMAHmNNcsMAIE+vdJLQykQ+0wFHBrsyiT/sL2I1DDTac/+4Klzobov7WHxt29qGmaYaQnlhLCmUTa2l4C2ljvamFlEvY0xpCW/kA924GblfGWciZaJyXQvSmlOoDITSdXQBbcA8eKfy/nHDFeY470FIX8tzUIu84FmLWuTzz7yhRLPm54dKJ4+A5uoJ3HgHBUfUmxGIa4QDuKA4n3kLk9ZInw0qu5b1R1aYAAAAASUVORK5CYII=",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"roam"},{ID:"info",title:"信息",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADFSURBVDhPxVPBDYMwDIwnKJu0G9ANYJMyQrsBbNIRGAE2gEnSO6mpIMJxkBC1lEds52zfOeK9b51zV5wte4lIr8RWbgGQh2fGmaIHJe4EetKPtDpRcA5AvwcB7FtgCcTOH0p3YzaQNd75QBiVXJG3LRtCRyQ6Jvsekd3gTsJVoDcihZLQQjXGTRMzIzPhOCCQyNYvSuEue7Qdm02yK0u1nM2m/FQyKb8JZHH+l81Ofdpdm82tvikjThyNlbSEBvIPFj+MfwA76qSYUG3g9QAAAABJRU5ErkJggg==",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"componentInfo"},{ID:"setting",title:"设置",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAGPSURBVDhPrZT9UQIxEMUvFSgViBUoFQgVABV4VqBW4FmBUIFQgZRwVqBU4HUAVHC+X2aXycQw/sPOvLncZvdlv5JQFaTv+1upp8IyhLDHRLpLfe6FrXRt7hZShYyH+n8RauGAv/AkQNYIHICshFcRdu6fE/kGRN/mQGTIpzAzMoh6EV2fIsJ5IwNOj2IpVZ6i6difSecRVnlELZHIgHROisgXRCa78Z+IrMBf2pjLYJNENGSd1kO2pPghjKQniyqY8lFr2NfaqC18wn7nZCMlWg7xLq70TxfRLyHqtABN2lbp40mSSCzBcSebif1TPyKjDBcQ0eJJRkIUpHkMPUlnkBU+pnlWItL6ERgw8o1iqRHtgzAUGNRD2qmkvgMvNnneUQcZ4ggR6VGXG+OOA1koNvrFcY7+af++VJe0hucfyKQu+RWJc+SDZ3aNvlPpRl7T0qXdafNZYPDehLEZt/rOBR9U8QSaEKX0jHAaE4tshVrgLeJ+Xdl6rS8D3BWJXKnCEwWXEuco9grQ3bb0sP0Cn8/nPm/SMRQAAAAASUVORK5CYII=",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"setting"}]),h=d.ref([{ID:"home",title:"主视角",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"homeView"},{ID:"cadLayer",title:"CAD图层",src:Ur,key:"cadLayer"},{ID:"annotation",title:"标注",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACDSURBVHgB1ZFhDYAgEIWfzgBGIIINpIEViGAkG2gEbWADjWADfMw/iDgUfji/7e3gxt3uHsDXZFrrlrFBHJNpsPAgEEmORArn3lFroEZQCjcTbAhzepPsgbuCgn8FBWvsUAMfFR5OIPGS5G80JkrG2sopHKbO1BCoHy8ZNhRUT5X4BTu6qyNSwwCiMAAAAABJRU5ErkJggg==",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"annotation"}]),u=d.computed(()=>{let A=[...t.is2d?h.value:c.value];return t.customItems&&(A=[...A,...t.customItems]),A}),p=d.computed(()=>s.value?r[s.value.ID]||[]:[]),f=g=>{if(r[g.ID]){if(g.ID==="measure"){n("item-click",g);return}if(s.value?.ID===g.ID)y();else{s.value=g,o.value=null;const A=r[g.ID];A&&A.length>0&&(o.value=A[0]?.id??null,setTimeout(()=>{n("sub-item-click",{parent:g,sub:A[0]})},50))}}else n("item-click",g)},m=g=>{o.value=g.id,n("sub-item-click",{parent:s.value,sub:g})},y=()=>{s.value=null,o.value=null};return(g,A)=>(d.openBlock(),d.createElementBlock("div",LN,[d.createElementVNode("nav",RN,[d.createVNode(d.Transition,{name:"nav-mode-switch",mode:"out-in"},{default:d.withCtx(()=>[s.value?(d.openBlock(),d.createElementBlock("div",FN,[d.createElementVNode("button",{class:"nav-back-icon",onClick:y},[...A[0]||(A[0]=[d.createElementVNode("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3"},[d.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)])]),d.createElementVNode("div",ON,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(p.value,v=>(d.openBlock(),d.createElementBlock("button",{key:v.id,class:d.normalizeClass(["sub-icon-box",{active:o.value===v.id}]),onClick:b=>m(v)},[d.createElementVNode("div",{class:"icon-svg",innerHTML:l(v.id)},null,8,UN)],10,GN))),128))])])):(d.openBlock(),d.createElementBlock("div",VN,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(u.value,v=>(d.openBlock(),d.createElementBlock("div",{key:v.ID,class:d.normalizeClass(["main-tab-item",{active:i.activeIds?.includes(v.ID)}]),onClick:b=>f(v)},[d.createElementVNode("img",{src:v.src,class:"tab-img",alt:v.title},null,8,zN)],10,QN))),128))]))]),_:1})])]))}}),[["__scopeId","data-v-2e30753b"]]),HN={key:1,class:"drawer-header"},YN={class:"drawer-title"},$N={class:"drawer-content"},jN={key:2,class:"drawer-footer"},Wr=Be(d.defineComponent({__name:"MobileDrawer",props:{visible:{type:Boolean},title:{},direction:{default:"bottom"},width:{default:"100%"},height:{default:"50vh"},showHandle:{type:Boolean,default:!1},closeOnOverlay:{type:Boolean,default:!0},maxHeight:{default:"60vh"}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=d.ref(null);let o=0,r=0;const a=d.computed(()=>{const f={};return t.direction==="right"||t.direction==="left"?(f.width=t.width,f.height="100%"):(f.width=t.width,f.height=t.height,f.maxHeight=t.maxHeight),f}),l=f=>{o=f.touches[0]?.clientY??0,s.value&&(s.value.style.transition="none")},c=f=>{if(!s.value)return;r=(f.touches[0]?.clientY??0)-o,r>0&&(s.value.style.transform=`translateY(${r}px)`)},h=()=>{s.value&&(s.value.style.transition="transform 300ms cubic-bezier(0.4, 0, 0.2, 1)",r>100?u():s.value.style.transform="",r=0)},u=()=>{n("update:visible",!1),n("close")},p=()=>{t.closeOnOverlay&&u()};return d.watch(()=>t.visible,f=>{f?document.body.style.overflow="hidden":document.body.style.overflow=""}),(f,m)=>(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[d.createVNode(d.Transition,{name:"drawer-fade"},{default:d.withCtx(()=>[i.visible?(d.openBlock(),d.createElementBlock("div",{key:0,class:"mobile-drawer-overlay",onClick:d.withModifiers(p,["self"])},[d.createElementVNode("div",{class:d.normalizeClass(["mobile-drawer-panel",[`direction-${i.direction}`]]),style:d.normalizeStyle(a.value),onClick:m[0]||(m[0]=d.withModifiers(()=>{},["stop"])),ref_key:"panelRef",ref:s},[i.direction==="bottom"&&i.showHandle?(d.openBlock(),d.createElementBlock("div",{key:0,class:"drawer-handle",onTouchstart:l,onTouchmove:c,onTouchend:h},[...m[1]||(m[1]=[d.createElementVNode("div",{class:"handle-bar"},null,-1)])],32)):d.createCommentVNode("",!0),i.title||f.$slots.title?(d.openBlock(),d.createElementBlock("div",HN,[d.renderSlot(f.$slots,"title",{},()=>[d.createElementVNode("span",YN,d.toDisplayString(i.title),1)],!0),d.createElementVNode("button",{class:"drawer-close-btn",onClick:u},[...m[2]||(m[2]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[d.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),d.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])])):d.createCommentVNode("",!0),d.createElementVNode("div",$N,[d.renderSlot(f.$slots,"default",{},void 0,!0)]),f.$slots.footer?(d.openBlock(),d.createElementBlock("div",jN,[d.renderSlot(f.$slots,"footer",{},void 0,!0)])):d.createCommentVNode("",!0)],6)])):d.createCommentVNode("",!0)]),_:3})]))}}),[["__scopeId","data-v-66d9d696"]]),WN={class:"mobile-tree-container"},qN={class:"search-section"},KN={class:"search-inner"},XN=["innerHTML"],km=Be(d.defineComponent({__name:"MobileTree",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},treeData:{default:()=>[]},initialCheckedKeys:{default:()=>[]}},emits:["update:visible","update:open","close","select","check","search"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:_=>{n("update:visible",_),n("update:open",_)}}),r={key:"id",title:"name",children:"children"},a=d.ref(""),l=d.ref([]),c=d.ref([]),h=d.ref(null),u=d.ref(300),p=d.ref(!1);let f=null;d.watch(()=>t.initialCheckedKeys,_=>{_&&_.length>0&&(c.value=[..._])},{immediate:!0}),d.watch(()=>t.treeData,_=>{if(!_||_.length===0)return;const F=[],U=(M,k)=>{for(let B=0;B<M.length;B++){const P=M[B],V=P.id||P.key||P.$id,G=P.modelId||k;G&&(P.modelId=G),V&&F.push(String(V)),P.children&&P.children.length>0&&U(P.children,G)}};U(_);const L=new Set(c.value);let D=!1;F.forEach(M=>{L.has(M)||(L.add(M),D=!0)}),D&&(c.value=Array.from(L),n("check",c.value))},{immediate:!0,deep:!0});const m=(_,F)=>{const U=[],L=D=>{for(let M=0;M<D.length;M++){const k=D[M],B=k.id||k.key;!k.children||k.children.length===0?!(B&&F.has(String(B)))&&k.modelId&&k.element_Id&&U.push({modelId:k.modelId,elementId:k.element_Id,show:!1}):k.children&&L(k.children)}};return L(_),U},y=d.computed(()=>{if(!a.value)return t.treeData;p.value=!0;const _=a.value.toLowerCase(),F=U=>{const L=[];for(let D=0;D<U.length;D++){const M=U[D],k=M.name||M.title||"",B=M.id||M.key,P=k.toLowerCase().includes(_);let V;M.children&&M.children.length>0&&(V=F(M.children)),(P||V&&V.length>0)&&L.push({key:String(B),title:k,children:V&&V.length>0?V:M.children?M.children:void 0,_raw:M,_searchMatched:P})}return L};return F(t.treeData)}),g=d.computed(()=>{if(!a.value)return[];const _=[],F=U=>{for(let L=0;L<U.length;L++){const D=U[L]?.children;D&&D.length>0&&(_.push(U[L]?.key),F(D))}};return F(y.value),_}),A=(_,F)=>a.value?(_||F||"").toLowerCase().includes(a.value.toLowerCase()):!1,v=_=>{if(!a.value)return _;const F=new RegExp(`(${a.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");return _.replace(F,'<mark class="search-highlight">$1</mark>')},b=qo(_=>{const F=typeof _=="object"?_.target?.value??"":_;x(F)},200),C=_=>{x(_)},x=_=>{a.value=_||"",n("search",a.value),_&&d.nextTick(()=>{l.value=[...g.value]})},I=_=>{l.value=_},E=(_,F)=>{c.value=_,n("check",c.value);const U=new Set(_.map(D=>String(D))),L=m(t.treeData,U);s?.value?.setComponentVisibility&&s.value.setComponentVisibility(L),s?.value?.onTreeCheck&&s.value.onTreeCheck(_,F)},S=_=>{o.value=_},w=()=>{n("close")},T=()=>{h.value&&(u.value=h.value.clientHeight)};return d.onMounted(()=>{h.value&&(T(),f=new ResizeObserver(()=>{T()}),f.observe(h.value))}),d.onUnmounted(()=>{f&&(f.disconnect(),f=null)}),(_,F)=>(d.openBlock(),d.createBlock(Wr,{visible:o.value,title:"目录树",direction:"bottom","show-handle":!1,class:"mobile-bim-drawer","onUpdate:visible":S,onClose:w},{title:d.withCtx(()=>[...F[1]||(F[1]=[d.createElementVNode("div",{class:"custom-drawer-header"},[d.createElementVNode("span",null,"目录树")],-1)])]),default:d.withCtx(()=>[d.createElementVNode("div",WN,[F[3]||(F[3]=d.createElementVNode("div",{class:"nav-tabs"},[d.createElementVNode("div",{class:"nav-tab-item active"},"构件")],-1)),d.createElementVNode("div",qN,[d.createElementVNode("div",KN,[d.createVNode(d.unref(re.Input),{value:a.value,"onUpdate:value":F[0]||(F[0]=U=>a.value=U),placeholder:"搜索构件","allow-clear":"",class:"custom-search",onSearch:C,onChange:d.unref(b)},null,8,["value","onChange"])])]),d.createElementVNode("div",{class:"tree-content-wrapper",ref_key:"treeContentRef",ref:h},[y.value.length>0?(d.openBlock(),d.createBlock(d.unref(re.Tree),{key:0,"tree-data":y.value,"field-names":r,"expanded-keys":l.value,"checked-keys":c.value,checkable:"","block-node":"",class:"bim-dark-tree",onExpand:I,onCheck:E},{switcherIcon:d.withCtx(({expanded:U})=>[d.createElementVNode("span",{class:d.normalizeClass(["switcher-icon",{"is-open":U}])},[...F[2]||(F[2]=[d.createElementVNode("svg",{viewBox:"0 0 1024 1024",width:"12",height:"12"},[d.createElementVNode("path",{d:"M340.864 149.312l405.376 362.688-405.376 362.688z",fill:"currentColor"})],-1)])],2)]),title:d.withCtx(({name:U,title:L})=>[d.createElementVNode("span",{class:d.normalizeClass(["node-title",{"is-matched":A(U,L)}])},[d.createElementVNode("span",{innerHTML:v(U||L)},null,8,XN)],2)]),_:1},8,["tree-data","expanded-keys","checked-keys","onExpand","onCheck"])):d.createCommentVNode("",!0)],512)])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-c2e8ecbe"]]),JN={class:"tabs-header"},ZN=["onClick"],eL={class:"modal-content"},tL={key:0,class:"setting-section"},iL={class:"setting-item"},nL={class:"mobile-switch"},sL={class:"setting-item"},oL={class:"mobile-switch"},rL={class:"setting-item"},aL={class:"mobile-switch"},lL={key:1,class:"setting-section"},cL={class:"setting-item"},dL={class:"mobile-switch"},hL={key:0,class:"setting-item column"},uL={class:"setting-label-row"},fL={class:"setting-value"},pL={class:"setting-item"},mL={class:"mobile-switch"},gL={class:"setting-item"},yL={class:"mobile-switch"},AL={class:"setting-item column"},vL={class:"setting-label-row"},bL={class:"setting-value"},wL={class:"setting-item column"},CL={class:"setting-label-row"},EL={class:"setting-value"},xL={class:"setting-item column"},IL={class:"setting-label-row"},SL={class:"setting-value"},ML={class:"setting-item column"},TL={style:{display:"flex",gap:"8px","margin-bottom":"8px","flex-wrap":"wrap"}},BL=["onClick","title"],_L={style:{display:"flex",gap:"8px","align-items":"center"}},Pm=Be(d.defineComponent({__name:"MobileSetting",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0}},emits:["update:visible","update:open","close","change"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:f=>{n("update:visible",f),n("update:open",f)}}),r=[{id:"GIS",label:"GIS"},{id:"RENDER",label:"渲染"}],a=d.ref("GIS"),l=d.ref({globe:!1,terrain:!1,depthTest:!1}),c=d.ref({shadows:!1,shadowDarkness:.5,environmentMap:!0,ambientOcclusion:!1,brightness:1,contrast:1,saturation:1,backgroundColor:"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)"}),h=["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%)"],u=()=>{p()},p=()=>{n("close"),n("change",{gis:l.value,render:c.value})};return d.watch(()=>l.value.globe,f=>{s?.value&&s.value.setGlobeEnvironmentVisible?.(f)}),d.watch(()=>l.value.terrain,f=>{s?.value&&s.value.setTerrainEnable?.(f)}),d.watch(()=>l.value.depthTest,f=>{s?.value&&s.value.setDepthTestEnable?.(f)}),d.watch(()=>c.value.shadows,f=>{s?.value&&s.value.setShadowsEnable?.(f)}),d.watch(()=>c.value.shadowDarkness,f=>{s?.value&&s.value.setShadowDarkness?.(f)}),d.watch(()=>c.value.environmentMap,f=>{s?.value&&s.value.setEnvironmentMapEnable?.(f)}),d.watch(()=>c.value.ambientOcclusion,f=>{s?.value&&s.value.setAmbientOcclusion?.(f)}),d.watch(()=>[c.value.brightness,c.value.contrast,c.value.saturation],([f,m,y])=>{const g=s?.value;g&&(g.setModelColorAdjustment?g.setModelColorAdjustment({brightness:f,contrast:m,saturation:y}):g.setModelBrightness?.(f))}),d.watch(()=>c.value.backgroundColor,f=>{s?.value&&s.value.setBackgroundColor?.(f)}),d.watch(()=>o.value,f=>{f?document.body.style.overflow="hidden":document.body.style.overflow=""}),(f,m)=>(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[d.createVNode(d.Transition,{name:"setting-modal"},{default:d.withCtx(()=>[o.value?(d.openBlock(),d.createElementBlock("div",{key:0,class:"mobile-setting-overlay",onClick:u,onTouchmove:m[13]||(m[13]=d.withModifiers(()=>{},["prevent"]))},[d.createElementVNode("div",{class:"mobile-setting-modal",onClick:m[12]||(m[12]=d.withModifiers(()=>{},["stop"]))},[d.createElementVNode("div",{class:"modal-header"},[m[15]||(m[15]=d.createElementVNode("span",{class:"modal-title"},"设置",-1)),d.createElementVNode("button",{class:"modal-close-btn",onClick:p},[...m[14]||(m[14]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[d.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),d.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),d.createElementVNode("div",JN,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(r,y=>d.createElementVNode("button",{key:y.id,class:d.normalizeClass(["tab-btn",{active:a.value===y.id}]),onClick:g=>a.value=y.id},d.toDisplayString(y.label),11,ZN)),64))]),d.createElementVNode("div",eL,[a.value==="GIS"?(d.openBlock(),d.createElementBlock("div",tL,[d.createElementVNode("div",iL,[m[17]||(m[17]=d.createElementVNode("span",{class:"setting-label"},"地球(含大气/日月/星空)",-1)),d.createElementVNode("label",nL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[0]||(m[0]=y=>l.value.globe=y)},null,512),[[d.vModelCheckbox,l.value.globe]]),m[16]||(m[16]=d.createElementVNode("span",{class:"slider"},null,-1))])]),d.createElementVNode("div",sL,[m[19]||(m[19]=d.createElementVNode("span",{class:"setting-label"},"地形",-1)),d.createElementVNode("label",oL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[1]||(m[1]=y=>l.value.terrain=y)},null,512),[[d.vModelCheckbox,l.value.terrain]]),m[18]||(m[18]=d.createElementVNode("span",{class:"slider"},null,-1))])]),d.createElementVNode("div",rL,[m[21]||(m[21]=d.createElementVNode("span",{class:"setting-label"},"地形遮挡",-1)),d.createElementVNode("label",aL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[2]||(m[2]=y=>l.value.depthTest=y)},null,512),[[d.vModelCheckbox,l.value.depthTest]]),m[20]||(m[20]=d.createElementVNode("span",{class:"slider"},null,-1))])])])):d.createCommentVNode("",!0),a.value==="RENDER"?(d.openBlock(),d.createElementBlock("div",lL,[d.createElementVNode("div",cL,[m[23]||(m[23]=d.createElementVNode("span",{class:"setting-label"},"阴影",-1)),d.createElementVNode("label",dL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[3]||(m[3]=y=>c.value.shadows=y)},null,512),[[d.vModelCheckbox,c.value.shadows]]),m[22]||(m[22]=d.createElementVNode("span",{class:"slider"},null,-1))])]),c.value.shadows?(d.openBlock(),d.createElementBlock("div",hL,[d.createElementVNode("div",uL,[m[24]||(m[24]=d.createElementVNode("span",{class:"setting-label"},"阴影暗度",-1)),d.createElementVNode("span",fL,d.toDisplayString(c.value.shadowDarkness.toFixed(2)),1)]),d.withDirectives(d.createElementVNode("input",{type:"range","onUpdate:modelValue":m[4]||(m[4]=y=>c.value.shadowDarkness=y),min:"0",max:"1",step:"0.05",class:"mobile-slider"},null,512),[[d.vModelText,c.value.shadowDarkness,void 0,{number:!0}]])])):d.createCommentVNode("",!0),d.createElementVNode("div",pL,[m[26]||(m[26]=d.createElementVNode("span",{class:"setting-label"},"环境贴图",-1)),d.createElementVNode("label",mL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[5]||(m[5]=y=>c.value.environmentMap=y)},null,512),[[d.vModelCheckbox,c.value.environmentMap]]),m[25]||(m[25]=d.createElementVNode("span",{class:"slider"},null,-1))])]),d.createElementVNode("div",gL,[m[28]||(m[28]=d.createElementVNode("span",{class:"setting-label"},"环境光遮蔽",-1)),d.createElementVNode("label",yL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[6]||(m[6]=y=>c.value.ambientOcclusion=y)},null,512),[[d.vModelCheckbox,c.value.ambientOcclusion]]),m[27]||(m[27]=d.createElementVNode("span",{class:"slider"},null,-1))])]),d.createElementVNode("div",AL,[d.createElementVNode("div",vL,[m[29]||(m[29]=d.createElementVNode("span",{class:"setting-label"},"模型亮度",-1)),d.createElementVNode("span",bL,d.toDisplayString(c.value.brightness.toFixed(1)),1)]),d.withDirectives(d.createElementVNode("input",{type:"range","onUpdate:modelValue":m[7]||(m[7]=y=>c.value.brightness=y),min:"0",max:"5",step:"0.1",class:"mobile-slider"},null,512),[[d.vModelText,c.value.brightness,void 0,{number:!0}]])]),d.createElementVNode("div",wL,[d.createElementVNode("div",CL,[m[30]||(m[30]=d.createElementVNode("span",{class:"setting-label"},"模型对比度",-1)),d.createElementVNode("span",EL,d.toDisplayString(c.value.contrast.toFixed(1)),1)]),d.withDirectives(d.createElementVNode("input",{type:"range","onUpdate:modelValue":m[8]||(m[8]=y=>c.value.contrast=y),min:"0.5",max:"2",step:"0.1",class:"mobile-slider"},null,512),[[d.vModelText,c.value.contrast,void 0,{number:!0}]])]),d.createElementVNode("div",xL,[d.createElementVNode("div",IL,[m[31]||(m[31]=d.createElementVNode("span",{class:"setting-label"},"模型饱和度",-1)),d.createElementVNode("span",SL,d.toDisplayString(c.value.saturation.toFixed(1)),1)]),d.withDirectives(d.createElementVNode("input",{type:"range","onUpdate:modelValue":m[9]||(m[9]=y=>c.value.saturation=y),min:"0",max:"3",step:"0.1",class:"mobile-slider"},null,512),[[d.vModelText,c.value.saturation,void 0,{number:!0}]])]),d.createElementVNode("div",ML,[m[32]||(m[32]=d.createElementVNode("span",{class:"setting-label"},"背景颜色",-1)),d.createElementVNode("div",TL,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(h,(y,g)=>d.createElementVNode("div",{key:g,style:d.normalizeStyle({background:y,width:"60px",height:"40px",borderRadius:"6px",cursor:"pointer",border:"2px solid rgba(255,255,255,0.2)",flexShrink:0}),onClick:A=>c.value.backgroundColor=y,title:"预设 "+(g+1)},null,12,BL)),64))]),d.createElementVNode("div",_L,[d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":m[10]||(m[10]=y=>c.value.backgroundColor=y),style:{width:"50px",height:"36px",padding:"0",border:"1px solid rgba(255,255,255,0.3)","border-radius":"6px",cursor:"pointer"}},null,512),[[d.vModelText,c.value.backgroundColor]]),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":m[11]||(m[11]=y=>c.value.backgroundColor=y),type:"text",class:"mobile-input",placeholder:"CSS 颜色值",style:{flex:"1"}},null,512),[[d.vModelText,c.value.backgroundColor]])])])])):d.createCommentVNode("",!0)])])],32)):d.createCommentVNode("",!0)]),_:1})]))}}),[["__scopeId","data-v-dcec8ca4"]]),kL={class:"mobile-section-container"},PL={class:"section-main"},DL={class:"toggle-row"},NL={class:"slider-section"},LL={class:"slider-header"},RL={class:"slider-label"},FL={class:"slider-value"},OL={class:"quick-btns"},GL={class:"section-models"},UL={class:"models-header"},VL={class:"models-count"},Dm=Be(d.defineComponent({__name:"MobileSection",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},modelList:{default:()=>[]}},emits:["update:visible","update:open","close","visibility-change","mode-change","axis-change","model-change"],setup(i,{emit:e}){const t=i,n=e,s=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:T=>{n("update:visible",T),n("update:open",T)}}),o=d.ref(!0),r=d.ref("Box"),a=d.ref("X"),l=d.ref([]),c=d.ref([0,100]),h=d.ref([0,100]),u=d.ref([0,100]),p=[{key:"X",label:"X轴"},{key:"Y",label:"Y轴"},{key:"Z",label:"Z轴"}],f=d.computed(()=>p.find(_=>_.key===a.value)?.label||""),m=d.computed({get:()=>{switch(a.value){case"X":return c.value[1];case"Y":return h.value[1];case"Z":return u.value[1];default:return 50}},set:T=>{switch(a.value){case"X":c.value[1]=T??0;break;case"Y":h.value[1]=T??0;break;case"Z":u.value[1]=T??0;break}}}),y=d.computed(()=>{switch(a.value){case"X":return[-50,50];case"Y":return[-50,50];case"Z":return[0,100];default:return[0,100]}}),g=d.computed(()=>m.value?.toFixed(1)??"0.0"),A=d.computed(()=>l.value.length===t.modelList.length),v=T=>{s.value=T},b=()=>{n("close")},C=()=>{n("visibility-change",o.value)},x=T=>{r.value=T,n("mode-change",T)},I=()=>{m.value=50,n("axis-change",a.value,50)},E=()=>{const T=y.value;m.value=T&&T.length>=2?(T[0]+T[1])/2:50,n("axis-change",a.value,m.value)},S=()=>{n("model-change",l.value)},w=()=>{A.value?l.value=[]:l.value=t.modelList.map(T=>T.modelId),n("model-change",l.value)};return(T,_)=>(d.openBlock(),d.createBlock(Wr,{visible:s.value,title:"剖切分析",direction:"bottom","show-handle":!0,"onUpdate:visible":v,onClose:b},{default:d.withCtx(()=>[d.createElementVNode("div",kL,[d.createElementVNode("div",PL,[d.createElementVNode("div",DL,[_[6]||(_[6]=d.createElementVNode("span",{class:"toggle-label"},"显示剖切盒",-1)),d.createVNode(d.unref(re.Switch),{checked:o.value,"onUpdate:checked":_[0]||(_[0]=F=>o.value=F),onChange:C},null,8,["checked"])]),d.createVNode(d.unref(re.RadioGroup),{value:r.value,"onUpdate:value":_[1]||(_[1]=F=>r.value=F),"button-style":"solid",class:"mode-selector",onChange:_[2]||(_[2]=F=>x(F.target.value))},{default:d.withCtx(()=>[d.createVNode(d.unref(re.RadioButton),{value:"Box"},{default:d.withCtx(()=>[..._[7]||(_[7]=[d.createTextVNode("剖切盒",-1)])]),_:1})]),_:1},8,["value"]),d.createVNode(d.unref(re.RadioGroup),{value:a.value,"onUpdate:value":_[3]||(_[3]=F=>a.value=F),"button-style":"solid",class:"axis-selector"},{default:d.withCtx(()=>[d.createVNode(d.unref(re.RadioButton),{value:"X"},{default:d.withCtx(()=>[..._[8]||(_[8]=[d.createTextVNode("X轴",-1)])]),_:1}),d.createVNode(d.unref(re.RadioButton),{value:"Y"},{default:d.withCtx(()=>[..._[9]||(_[9]=[d.createTextVNode("Y轴",-1)])]),_:1}),d.createVNode(d.unref(re.RadioButton),{value:"Z"},{default:d.withCtx(()=>[..._[10]||(_[10]=[d.createTextVNode("Z轴",-1)])]),_:1})]),_:1},8,["value"]),d.createElementVNode("div",NL,[d.createElementVNode("div",LL,[d.createElementVNode("span",RL,d.toDisplayString(f.value)+" 轴范围",1),d.createElementVNode("span",FL,d.toDisplayString(g.value),1)]),d.createVNode(d.unref(re.Slider),{Value:m.value,"onUpdate:Value":_[4]||(_[4]=F=>m.value=F),min:y.value[0],max:y.value[1],step:.5,class:"section-slider"},null,8,["Value","min","max"]),d.createElementVNode("div",OL,[d.createVNode(d.unref(re.Button),{size:"small",onClick:I},{default:d.withCtx(()=>[..._[11]||(_[11]=[d.createTextVNode("重置",-1)])]),_:1}),d.createVNode(d.unref(re.Button),{size:"small",onClick:E},{default:d.withCtx(()=>[..._[12]||(_[12]=[d.createTextVNode("居中",-1)])]),_:1})])])]),d.createElementVNode("div",GL,[d.createElementVNode("div",UL,[_[13]||(_[13]=d.createElementVNode("span",{class:"models-title"},"选择模型",-1)),d.createElementVNode("span",VL,d.toDisplayString(l.value.length)+"/"+d.toDisplayString(i.modelList.length),1)]),d.createVNode(d.unref(re.CheckboxGroup),{value:l.value,"onUpdate:value":_[5]||(_[5]=F=>l.value=F),class:"models-list",onChange:S},{default:d.withCtx(()=>[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(i.modelList,F=>(d.openBlock(),d.createBlock(d.unref(re.Checkbox),{key:F.modelId,value:F.modelId,class:"model-item"},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(F.modelName),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),i.modelList.length>1?(d.openBlock(),d.createBlock(d.unref(re.Button),{key:0,size:"small",type:"link",onClick:w},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(A.value?"取消全选":"全选"),1)]),_:1})):d.createCommentVNode("",!0)])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-cdacec58"]]),QL={key:0,class:"mobile-measure-root"},zL={key:0,class:"result-card"},HL={class:"card-header-row"},YL={class:"result-main"},$L={class:"type-label"},jL={class:"value-highlight"},WL={key:0,class:"coords-grid"},qL={class:"coord-item"},KL={class:"coord-item"},XL={class:"coord-item"},JL={class:"measure-toolbar-container"},ZL={class:"tools-inner-row"},e8=["onClick"],t8=["innerHTML"],Nm=Be(d.defineComponent({__name:"MobileMeasurement",props:{visible:{type:Boolean},defaultTool:{}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods");let o=null,r=!1;const a=d.ref(null),l=d.ref(null),c=d.computed(()=>t.visible&&a.value!==null),h=[{id:"distance",svg:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 17l6-6 4 4 8-8"/></svg>'},{id:"angle",svg:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 20H4L14 4"/></svg>'},{id:"area",svg:'<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"/></svg>'}],u={distance:"距离",angle:"角度",area:"面积"},p=d.computed(()=>a.value?u[a.value]||"":l.value&&u[l.value.type]||""),f=d.computed(()=>{if(!l.value)return a.value==="distance"?"-- m":a.value==="angle"?"--°":a.value==="area"?"-- m²":"";const C=l.value;return C.type==="distance"?`${(C.dist??0).toFixed(3)} m`:C.type==="angle"?`${(C.angle??0).toFixed(2)}°`:C.type==="area"?`${(C.area??0).toFixed(2)} m²`:""}),m=d.computed(()=>l.value?.type||a.value),y=C=>C===void 0?"--":C.toFixed(3),g=()=>{if(o)return;const C=s?.value;C?.getViewer&&(o=new pc({viewer:C.getViewer(),cesium:C.getCesium()}),o.onMeasure=x=>{r||(l.value=x)})},A=C=>{g(),a.value===C?(a.value=null,o?.stop(),s?.value?.baseCompt?.enableSelection()):(a.value=C,l.value=null,o?.start(C),s?.value?.baseCompt?.disableSelection())},v=()=>{o?.clearAll(),o?.stop(),a.value=null,l.value=null,s?.value?.baseCompt?.enableSelection()},b=()=>{v(),n("update:visible",!1),n("close")};return d.watch(()=>t.visible,C=>{C?(g(),t.defaultTool&&A(t.defaultTool)):v()}),d.onUnmounted(()=>{r=!0,o?.destroy()}),(C,x)=>(d.openBlock(),d.createBlock(d.Transition,{name:"measure-fade"},{default:d.withCtx(()=>[i.visible?(d.openBlock(),d.createElementBlock("div",QL,[d.createVNode(d.Transition,{name:"card-slide"},{default:d.withCtx(()=>[c.value?(d.openBlock(),d.createElementBlock("div",zL,[d.createElementVNode("div",HL,[d.createElementVNode("div",YL,[d.createElementVNode("span",$L,d.toDisplayString(p.value)+":",1),d.createElementVNode("span",jL,d.toDisplayString(f.value),1)]),d.createElementVNode("button",{class:"clear-action-btn",onClick:v,title:"清空"},[...x[0]||(x[0]=[d.createElementVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"currentColor","stroke-width":"2"},[d.createElementVNode("polyline",{points:"3 6 5 6 21 6"}),d.createElementVNode("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)])])]),m.value==="distance"?(d.openBlock(),d.createElementBlock("div",WL,[d.createElementVNode("div",qL,[x[1]||(x[1]=d.createElementVNode("span",{class:"label-x"},"X:",-1)),d.createTextVNode(" "+d.toDisplayString(y(l.value?.dx)),1)]),d.createElementVNode("div",KL,[x[2]||(x[2]=d.createElementVNode("span",{class:"label-y"},"Y:",-1)),d.createTextVNode(" "+d.toDisplayString(y(l.value?.dy)),1)]),d.createElementVNode("div",XL,[x[3]||(x[3]=d.createElementVNode("span",{class:"label-z"},"Z:",-1)),d.createTextVNode(" "+d.toDisplayString(y(l.value?.dz)),1)])])):d.createCommentVNode("",!0)])):d.createCommentVNode("",!0)]),_:1}),d.createElementVNode("div",JL,[d.createElementVNode("button",{class:"nav-back-icon",onClick:b},[...x[4]||(x[4]=[d.createElementVNode("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"currentColor","stroke-width":"3"},[d.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)])]),d.createElementVNode("div",ZL,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(h,I=>d.createElementVNode("button",{key:I.id,class:d.normalizeClass(["sub-icon-box",{active:a.value===I.id}]),onClick:E=>A(I.id)},[d.createElementVNode("span",{class:"icon-svg",innerHTML:I.svg},null,8,t8)],10,e8)),64))])])])):d.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-7ff442b7"]]),i8={class:"joystick-base"},n8={class:"leitingbim-control-panel"},s8={class:"ctrl-row zoom-row"},o8={class:"zoom-label"},r8={class:"ctrl-grid"},a8={class:"gravity-toggle"},l8={class:"arrow-col"},bc=40,Lm=Be(d.defineComponent({__name:"MobilePlayer",props:{visible:{type:Boolean}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods");let o=!1;const r=d.ref(null),a=d.ref(0),l=d.ref(0),c=d.ref(!1),h=d.ref({x:0,y:0}),u=[.25,.5,1,2,4,8,16],p=d.ref(2),f=d.ref(!0);let m=null;const y=d.computed(()=>({transform:`translate(${a.value}px, ${l.value}px)`})),g=d.computed(()=>`${u[p.value]}X`),A=(G,R)=>{const N=[];return(Math.abs(G)>10||Math.abs(R)>10)&&(R<-10&&N.push("moveFront"),R>10&&N.push("moveBack"),G<-10&&N.push("moveLeft"),G>10&&N.push("moveRight")),N},v=()=>{o||["moveFront","moveBack","moveLeft","moveRight"].forEach(G=>{s?.value?.setPlayerAction?.(G,!1)})},b=G=>{if(o)return;["moveFront","moveBack","moveLeft","moveRight"].forEach(N=>{const O=G.includes(N);s?.value?.setPlayerAction?.(N,O)})},C=G=>{const R=G.touches[0],N=r.value.getBoundingClientRect();h.value={x:N.left+N.width/2,y:N.top+N.height/2},c.value=!0,R&&I(R.clientX,R.clientY)},x=G=>{if(!c.value)return;const R=G.touches[0];R&&I(R.clientX,R.clientY)},I=(G,R)=>{if(o)return;let N=G-h.value.x,O=R-h.value.y;const z=Math.sqrt(N*N+O*O);z>bc&&(N=N/z*bc,O=O/z*bc),a.value=N,l.value=O;const j=A(N,O);b(j)},E=()=>{c.value=!1,a.value=0,l.value=0,v()},S=()=>{_(),m=setInterval(()=>{p.value<u.length-1&&(p.value++,F())},150)},w=()=>{_(),m=setInterval(()=>{p.value>0&&(p.value--,F())},150)},T=()=>{_()},_=()=>{m&&(clearInterval(m),m=null)},F=()=>{o||s?.value?.setPlayerSpeed?.(u[p.value])},U=()=>{s?.value?.setPlayerAction?.("moveUp",!0)},L=()=>{s?.value?.setPlayerAction?.("moveUp",!1)},D=()=>{s?.value?.setPlayerAction?.("moveDown",!0)},M=()=>{s?.value?.setPlayerAction?.("moveDown",!1)},k=()=>{s?.value?.setPlayerParams?.({gravityTest:f.value,collisionTest:!0})},B=()=>{V(),n("update:visible",!1),n("close")},P=async()=>{if(!o)try{if(!s?.value){setTimeout(()=>P(),150);return}s.value.startCameraRoam&&s.value.startCameraRoam(),s.value.setPlayerSpeed?.(u[p.value])}catch(G){console.error("MobilePlayer startPlayer error:",G)}},V=()=>{v(),o||s?.value?.closePlayer?.(),_()};return d.watch(()=>t.visible,G=>{o||(G?P():V())},{immediate:!0}),d.onUnmounted(()=>{o=!0,V()}),(G,R)=>i.visible?(d.openBlock(),d.createElementBlock("div",{key:0,class:"mobile-player-overlay",onTouchmove:R[1]||(R[1]=d.withModifiers(()=>{},["prevent"]))},[d.createElementVNode("button",{class:"player-exit-btn",onClick:B}," 退出 "),d.createElementVNode("div",{class:"joystick-zone",ref_key:"joystickRef",ref:r,onTouchstart:d.withModifiers(C,["prevent"]),onTouchmove:d.withModifiers(x,["prevent"]),onTouchend:d.withModifiers(E,["prevent"]),onTouchcancel:d.withModifiers(E,["prevent"])},[d.createElementVNode("div",i8,[d.createElementVNode("div",{class:"joystick-knob",style:d.normalizeStyle(y.value)},null,4)])],544),d.createElementVNode("div",n8,[d.createElementVNode("div",s8,[d.createElementVNode("button",{class:"ctrl-btn ctrl-btn-sm",onTouchstart:d.withModifiers(w,["prevent"]),onTouchend:d.withModifiers(T,["prevent"])},"−",32),d.createElementVNode("span",o8,d.toDisplayString(g.value),1),d.createElementVNode("button",{class:"ctrl-btn ctrl-btn-sm",onTouchstart:d.withModifiers(S,["prevent"]),onTouchend:d.withModifiers(T,["prevent"])},"+",32)]),d.createElementVNode("div",r8,[d.createElementVNode("label",a8,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":R[0]||(R[0]=N=>f.value=N),onChange:k},null,544),[[d.vModelCheckbox,f.value]]),R[2]||(R[2]=d.createElementVNode("span",{class:"toggle-checkbox"},null,-1)),R[3]||(R[3]=d.createElementVNode("span",{class:"toggle-label"},"重力",-1))]),d.createElementVNode("div",l8,[d.createElementVNode("button",{class:"ctrl-btn ctrl-btn-arrow",onTouchstart:d.withModifiers(U,["prevent"]),onTouchend:d.withModifiers(L,["prevent"])},[...R[4]||(R[4]=[d.createElementVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[d.createElementVNode("polyline",{points:"18 15 12 9 6 15"})],-1)])],32),d.createElementVNode("button",{class:"ctrl-btn ctrl-btn-arrow",onTouchstart:d.withModifiers(D,["prevent"]),onTouchend:d.withModifiers(M,["prevent"])},[...R[5]||(R[5]=[d.createElementVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[d.createElementVNode("polyline",{points:"6 9 12 15 18 9"})],-1)])],32)])])])],32)):d.createCommentVNode("",!0)}}),[["__scopeId","data-v-d80a8120"]]),c8={key:0,class:"mobile-info-sheet-wrapper"},d8={class:"info-body"},h8={key:0,class:"empty-hint"},u8={key:0,class:"component-title"},f8={class:"group-list"},p8=["onClick"],m8={class:"group-name"},g8={key:0,class:"group-content"},y8={class:"kv-key"},A8={class:"kv-value"},Rm=Be(d.defineComponent({__name:"MobileInfo",props:{visible:{type:Boolean}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref([]),r=d.ref(!1),a=d.ref(new Set),l=d.ref([]);let c=!1;const h=d.computed({get:()=>!!t.visible,set:x=>{n("update:visible",x)}}),u=x=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[x]||x,p=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],f=(x,I)=>`${x}__${I}`,m=(x,I)=>a.value.has(f(x,I)),y=(x,I)=>{const E=f(x,I);a.value.has(E)?a.value.delete(E):a.value.add(E)},g=()=>{const x=new Set;o.value.forEach(I=>{I.groups.forEach(E=>{x.add(f(I.id,E.name))})}),a.value=x},A=()=>{h.value=!1,n("close")},v=async x=>{if(c)return;if(l.value=x||[],!x||x.length===0){o.value=[];return}let I=x;x.length>10&&(me.warning(`选中构件数量过多(${x.length}个),仅显示前10个`),I=x.slice(0,10));const E=s?.value;let S=E?.getMapTileset?E.getMapTileset():{};r.value=!0;const w=new Set;if(I.forEach(_=>{const F=S[_.modelId];F&&F.leiting&&!F.leiting?.node?.nodeExtras&&F.leiting.model?.nodeUrl&&w.add(_.modelId)}),w.size>0&&E?._loadNodeDetailsForModel)try{await Promise.all(Array.from(w).map(_=>E._loadNodeDetailsForModel(_)))}catch(_){console.error("Failed to load node details",_)}if(c)return;S=E?.getMapTileset?E.getMapTileset():{};const T=[];I.forEach((_,F)=>{const L=S[_.modelId]?.leiting||{};let D={modelName:L.model?.modelId||_.modelId};D.elementID||(D.elementID=_.elementId);let M=null;const k=L.node?.nodeExtras?.element||L.node?.nodeExtras;if(k){const V=D.elementID;k[V]&&(M=k[V])}M&&M.box3&&(D.length=`${M.box3.length?.toFixed(2)||0}米`,D.width=`${M.box3.width?.toFixed(2)||0}米`,D.height=`${M.box3.height?.toFixed(2)||0}米`);const B=[];M&&(M.name&&(D.elementName=M.name),M.categoryName&&(D.categoryName=M.categoryName),M.familySymbolName&&(D.familySymbolName=M.familySymbolName),M.levelName&&(D.levelName=M.levelName));const P={};if(p.forEach(V=>{D[V]!==void 0&&(P[V]=D[V])}),B.push({name:"基本属性",params:P}),M){const V=Array.isArray(M)?M:Array.isArray(M?.parameters)?M.parameters:null;if(V)V.flat().forEach(R=>{if(R&&R.GroupName&&Array.isArray(R.Parameters)){const N={};R.Parameters.forEach(O=>{O.name&&(N[O.name]=O.value??"")}),Object.keys(N).length>0&&B.push({name:R.GroupName,params:N})}});else{let G=!1;if(Object.keys(M).forEach(R=>{M[R]&&typeof M[R]=="object"&&!Array.isArray(M[R])&&(G=!0,B.push({name:R,params:M[R]}))}),!G){const R={};Object.keys(M).forEach(N=>{if(!p.includes(N)&&N!=="batchId"){const O=M[N];R[N]=typeof O=="string"&&O.length>500?O.substring(0,500)+"...":O}}),Object.keys(R).length>0&&B.push({name:"其他属性",params:R})}}}T.push({id:F,title:`${D.modelName}${D.elementName?` - ${D.elementName}`:""}`,groups:B})}),o.value=T,r.value=!1,!c&&T.length>0&&g()};let b=!1;const C=()=>{if(b)return;const x=s?.value;x&&x.selectionChange&&(x.selectionChange(v),b=!0)};return d.watch(()=>s?.value,()=>C(),{deep:!0,immediate:!0}),d.watch(h,x=>{x&&(C(),l.value.length>0&&v(l.value))}),d.onUnmounted(()=>{c=!0}),(x,I)=>(d.openBlock(),d.createBlock(d.Transition,{name:"info-slide"},{default:d.withCtx(()=>[i.visible?(d.openBlock(),d.createElementBlock("div",c8,[d.createElementVNode("div",{class:"mobile-info-sheet",onTouchmove:I[0]||(I[0]=d.withModifiers(()=>{},["stop"])),onClick:I[1]||(I[1]=d.withModifiers(()=>{},["stop"]))},[d.createElementVNode("div",{class:"info-header"},[I[3]||(I[3]=d.createElementVNode("span",{class:"info-title"},"构件详情",-1)),d.createElementVNode("button",{class:"info-close-btn",onClick:A},[...I[2]||(I[2]=[d.createElementVNode("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[d.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),d.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),I[5]||(I[5]=d.createElementVNode("div",{class:"info-tabs"},[d.createElementVNode("span",{class:"tab-item active"},"属性")],-1)),d.createElementVNode("div",d8,[d.createVNode(d.unref(re.Spin),{spinning:r.value},{default:d.withCtx(()=>[o.value.length===0&&!r.value?(d.openBlock(),d.createElementBlock("div",h8," 暂无数据 ")):d.createCommentVNode("",!0),(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(o.value,E=>(d.openBlock(),d.createElementBlock("div",{key:E.id,class:"component-block"},[o.value.length>1?(d.openBlock(),d.createElementBlock("div",u8,d.toDisplayString(E.title),1)):d.createCommentVNode("",!0),d.createElementVNode("div",f8,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(E.groups,(S,w)=>(d.openBlock(),d.createElementBlock("div",{key:`${E.id}-${w}`,class:"group-item"},[d.createElementVNode("button",{class:d.normalizeClass(["group-header",{expanded:m(E.id,S.name)}]),onClick:T=>y(E.id,S.name)},[I[4]||(I[4]=d.createElementVNode("svg",{class:"arrow-icon",viewBox:"0 0 16 16",width:"12",height:"12",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[d.createElementVNode("polyline",{points:"4 6 8 10 12 6"})],-1)),d.createElementVNode("span",m8,d.toDisplayString(S.name),1)],10,p8),d.createVNode(d.Transition,{name:"group-expand"},{default:d.withCtx(()=>[m(E.id,S.name)?(d.openBlock(),d.createElementBlock("div",g8,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(S.params,(T,_)=>(d.openBlock(),d.createElementBlock("div",{key:_,class:"kv-row"},[d.createElementVNode("span",y8,d.toDisplayString(u(String(_))),1),d.createElementVNode("span",A8,d.toDisplayString(T),1)]))),128))])):d.createCommentVNode("",!0)]),_:2},1024)]))),128))])]))),128))]),_:1},8,["spinning"])])],32)])):d.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-c4855585"]]),v8={class:"mobile-cad-layer-container"},b8={class:"model-selector"},w8={class:"layer-list-container"},C8={class:"list-header"},E8={class:"col-check"},x8=["checked"],I8={class:"list-body"},S8=["onClick"],M8=["checked","onChange"],T8={class:"col-index"},B8=["title"],_8={class:"col-color"},k8={key:0,class:"empty-state"},P8=Be(d.defineComponent({__name:"MobileCadLayer",props:{visible:{type:Boolean,default:!1},currentModelId:{type:String,default:""}},emits:["update:visible","handleCloseCardByCadCard"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods",d.ref({})),o=d.ref(""),r=d.ref([]),a=d.computed({get:()=>t.visible,set:C=>n("update:visible",C)}),l=()=>{s.value&&s.value.getDxfModels&&(r.value=s.value.getDxfModels().map(C=>({modelId:C.modelId,modelName:C.modelName}))||[])},c=d.computed(()=>r.value.map(C=>({value:C.modelId,label:C.modelName}))),h=d.ref([]),u=d.ref([]),p=d.computed(()=>h.value.length>0&&u.value.length===h.value.length),f=({modelId:C})=>{if(h.value=[],u.value=[],s.value&&s.value.getDxfLayers){const x=s.value.getDxfLayers({modelId:C});x&&Object.keys(x).forEach((I,E)=>{x[I].length&&(h.value.push({index:E+1,layerName:I,layerColor:x[I][0].color||"#ffffff",key:I}),u.value.push(I))})}},m=C=>{o.value=C,f({modelId:C})},y=C=>{C.target.checked?u.value=h.value.map(I=>I.key):u.value=[],A()},g=(C,x)=>{x.target.checked?u.value.includes(C)||u.value.push(C):u.value=u.value.filter(E=>E!==C),A()},A=()=>{if(s.value&&s.value.showDxfLayer&&(s.value.showDxfLayer({modelId:o.value,show:!0,layers:u.value}),s.value.getDxfLayers)){const C=s.value.getDxfLayers({modelId:o.value});if(C){const x=Object.keys(C).filter(I=>!u.value.includes(I));s.value.showDxfLayer({modelId:o.value,show:!1,layers:x})}}},v=C=>{a.value=C},b=()=>{n("update:visible",!1),n("handleCloseCardByCadCard")};return d.watch(()=>t.visible,C=>{C&&(l(),t.currentModelId?(o.value=t.currentModelId,f({modelId:t.currentModelId})):c.value.length>0&&(o.value=c.value[0]?.value,f({modelId:o.value})))}),d.watch(()=>t.currentModelId,C=>{C&&t.visible&&(o.value=C,f({modelId:C}))}),(C,x)=>(d.openBlock(),d.createBlock(Wr,{visible:a.value,title:"CAD图层",direction:"bottom","show-handle":!0,height:"70vh",class:"mobile-cad-layer-drawer","onUpdate:visible":v,onClose:b},{default:d.withCtx(()=>[d.createElementVNode("div",v8,[d.createElementVNode("div",b8,[x[3]||(x[3]=d.createElementVNode("span",{class:"selector-label"},"图纸:",-1)),d.createVNode(d.unref(re.Select),{value:o.value,"onUpdate:value":x[0]||(x[0]=I=>o.value=I),options:c.value,onChange:x[1]||(x[1]=I=>m(I)),placeholder:"选择模型",class:"mobile-model-select",popupClassName:"mobile-cad-select-dropdown",size:"large"},null,8,["value","options"])]),d.createElementVNode("div",w8,[d.createElementVNode("div",C8,[d.createElementVNode("div",E8,[d.createElementVNode("input",{type:"checkbox",checked:p.value,onChange:y,class:"mobile-checkbox"},null,40,x8)]),x[4]||(x[4]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),x[5]||(x[5]=d.createElementVNode("div",{class:"col-name"},"图层名称",-1)),x[6]||(x[6]=d.createElementVNode("div",{class:"col-color"},"颜色",-1))]),d.createElementVNode("div",I8,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(h.value,I=>(d.openBlock(),d.createElementBlock("div",{key:I.key,class:"list-item",onClick:E=>g(I.key,{target:{checked:!u.value.includes(I.key)}})},[d.createElementVNode("div",{class:"col-check",onClick:x[2]||(x[2]=d.withModifiers(()=>{},["stop"]))},[d.createElementVNode("input",{type:"checkbox",checked:u.value.includes(I.key),onChange:E=>g(I.key,E),class:"mobile-checkbox"},null,40,M8)]),d.createElementVNode("div",T8,d.toDisplayString(I.index),1),d.createElementVNode("div",{class:"col-name",title:I.layerName},d.toDisplayString(I.layerName),9,B8),d.createElementVNode("div",_8,[d.createElementVNode("div",{class:"color-swatch",style:d.normalizeStyle({backgroundColor:I.layerColor})},null,4)])],8,S8))),128)),h.value.length===0?(d.openBlock(),d.createElementBlock("div",k8,[...x[7]||(x[7]=[d.createElementVNode("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[d.createElementVNode("path",{d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})],-1),d.createElementVNode("p",null,"暂无图层信息",-1)])])):d.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-63da9a15"]]),D8={class:"mobile-annotation-panel"},N8={class:"tools-section"},L8={class:"tools-grid"},R8={class:"style-section"},F8={class:"style-item"},O8={class:"color-picker-wrapper"},G8={class:"style-item"},U8={class:"line-width-options"},V8=["onClick"],Q8={class:"width-label"},z8=Be(d.defineComponent({__name:"MobileAnnotationCard",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref(""),r=d.ref("#ff0000"),a=d.ref(3),l=d.computed({get:()=>t.visible,set:v=>n("update:visible",v)}),c=[{value:6,label:"粗"},{value:3,label:"中"},{value:1,label:"细"}],h=()=>s?.value?.getAnnotationInstance?s.value.getAnnotationInstance():null,u=()=>{const v=h();if(v&&(typeof v.hideEntityOutline=="function"&&v.hideEntityOutline(),v.selectedEntityObj=null,v.drawTool&&typeof v.drawTool.deactivate=="function"))try{v.drawTool.deactivate()}catch(b){console.warn("Failed to deactivate drawTool:",b)}o.value="",n("update:visible",!1)},p=v=>{if(o.value===v){o.value="";return}o.value=v;const b=h();if(b)switch(v){case"freehandLine":b.startFreehandLine();break;case"arrow":b.startArrow();break;case"straightLine":b.startStraightLine();break;case"rectangle":b.startRectangle();break;case"ellipse":b.startEllipse();break}},f=()=>{const v=h();v&&(v.setCurrentColor(r.value),v.changeColor(r.value))},m=v=>{a.value=v;const b=h();b&&(b.setCurrentWidth(v),b.changeWidth(v))},y=()=>{const v=h();v&&v.deleteSelectedEntity()},g=()=>{const v=h();v&&v.clearAll()},A=()=>{if(s?.value?.saveAnnotations){s.value.saveAnnotations();return}const v=h();v&&v.saveAnnotations()};return(v,b)=>(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[d.createVNode(d.Transition,{name:"annotation-slide"},{default:d.withCtx(()=>[l.value?(d.openBlock(),d.createElementBlock("div",{key:0,class:"mobile-annotation-overlay",onClick:d.withModifiers(u,["self"])},[d.createElementVNode("div",D8,[d.createElementVNode("div",{class:"panel-header"},[b[7]||(b[7]=d.createElementVNode("span",{class:"panel-title"},"标注",-1)),d.createElementVNode("button",{class:"panel-close-btn",onClick:u},[...b[6]||(b[6]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round"},[d.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),d.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),d.createElementVNode("div",N8,[b[13]||(b[13]=d.createElementVNode("div",{class:"section-label"},"绘图工具",-1)),d.createElementVNode("div",L8,[d.createElementVNode("button",{class:d.normalizeClass(["tool-btn",{active:o.value==="freehandLine"}]),onClick:b[0]||(b[0]=C=>p("freehandLine"))},[...b[8]||(b[8]=[d.createElementVNode("div",{class:"tool-icon"},"✏️",-1),d.createElementVNode("span",{class:"tool-label"},"手绘线",-1)])],2),d.createElementVNode("button",{class:d.normalizeClass(["tool-btn",{active:o.value==="arrow"}]),onClick:b[1]||(b[1]=C=>p("arrow"))},[...b[9]||(b[9]=[d.createElementVNode("div",{class:"tool-icon"},"↗️",-1),d.createElementVNode("span",{class:"tool-label"},"箭头",-1)])],2),d.createElementVNode("button",{class:d.normalizeClass(["tool-btn",{active:o.value==="straightLine"}]),onClick:b[2]||(b[2]=C=>p("straightLine"))},[...b[10]||(b[10]=[d.createElementVNode("div",{class:"tool-icon"},"📏",-1),d.createElementVNode("span",{class:"tool-label"},"直线",-1)])],2),d.createElementVNode("button",{class:d.normalizeClass(["tool-btn",{active:o.value==="rectangle"}]),onClick:b[3]||(b[3]=C=>p("rectangle"))},[...b[11]||(b[11]=[d.createElementVNode("div",{class:"tool-icon"},"▭",-1),d.createElementVNode("span",{class:"tool-label"},"矩形",-1)])],2),d.createElementVNode("button",{class:d.normalizeClass(["tool-btn",{active:o.value==="ellipse"}]),onClick:b[4]||(b[4]=C=>p("ellipse"))},[...b[12]||(b[12]=[d.createElementVNode("div",{class:"tool-icon"},"⭕",-1),d.createElementVNode("span",{class:"tool-label"},"椭圆",-1)])],2)])]),b[21]||(b[21]=d.createElementVNode("div",{class:"divider"},null,-1)),d.createElementVNode("div",R8,[b[16]||(b[16]=d.createElementVNode("div",{class:"section-label"},"样式设置",-1)),d.createElementVNode("div",F8,[b[14]||(b[14]=d.createElementVNode("span",{class:"style-label"},"颜色",-1)),d.createElementVNode("div",O8,[d.createElementVNode("div",{class:"color-preview",style:d.normalizeStyle({backgroundColor:r.value})},null,4),d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":b[5]||(b[5]=C=>r.value=C),onChange:f,class:"color-input"},null,544),[[d.vModelText,r.value]])])]),d.createElementVNode("div",G8,[b[15]||(b[15]=d.createElementVNode("span",{class:"style-label"},"线宽",-1)),d.createElementVNode("div",U8,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(c,C=>d.createElementVNode("button",{key:C.value,class:d.normalizeClass(["width-btn",{active:a.value===C.value}]),onClick:x=>m(C.value)},[d.createElementVNode("div",{class:"width-line",style:d.normalizeStyle({height:C.value+"px",backgroundColor:a.value===C.value?"#00e5d1":"#fff"})},null,4),d.createElementVNode("span",Q8,d.toDisplayString(C.label),1)],10,V8)),64))])])]),b[22]||(b[22]=d.createElementVNode("div",{class:"divider"},null,-1)),d.createElementVNode("div",{class:"action-section"},[b[20]||(b[20]=d.createElementVNode("div",{class:"section-label"},"操作",-1)),d.createElementVNode("div",{class:"action-grid"},[d.createElementVNode("button",{class:"action-btn delete-btn",onClick:y},[...b[17]||(b[17]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[d.createElementVNode("polyline",{points:"3 6 5 6 21 6"}),d.createElementVNode("path",{d:"M19 6v14a2 2 0 01-2 2H7a2 2 0 01-2-2V6m3 0V4a2 2 0 012-2h4a2 2 0 012 2v2"})],-1),d.createElementVNode("span",null,"删除",-1)])]),d.createElementVNode("button",{class:"action-btn clear-btn",onClick:g},[...b[18]||(b[18]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[d.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),d.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1),d.createElementVNode("span",null,"清空",-1)])]),d.createElementVNode("button",{class:"action-btn save-btn",onClick:A},[...b[19]||(b[19]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[d.createElementVNode("path",{d:"M19 21H5a2 2 0 01-2-2V5a2 2 0 012-2h11l5 5v11a2 2 0 01-2 2z"}),d.createElementVNode("polyline",{points:"17 21 17 13 7 13 7 21"}),d.createElementVNode("polyline",{points:"7 3 7 8 15 8"})],-1),d.createElementVNode("span",null,"保存",-1)])])])])])])):d.createCommentVNode("",!0)]),_:1})]))}}),[["__scopeId","data-v-9b4979c4"]]),H8=["src"],qr=Be(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:{},teleportTarget:{},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(i,{expose:e,emit:t}){const n=d.ref(),s=d.ref(),o=d.getCurrentInstance(),r=d.ref(!1),a=d.ref(""),l=d.ref({}),c=d.ref("3d"),{isMobile:h}=Or(),u=i,p={title:"构件树",treeData:[]},f=d.ref(!1),m=d.ref(!1),y=d.ref(!1),g=d.ref(!1),A=d.ref(!1),v=d.ref(!1),b=d.ref(!1),C=d.ref(!1),x=d.ref(!1),I=d.ref(!1),E=d.ref(!1),S=d.ref(null),{visible:w,position:T,items:_,show:F,hide:U}=Bm(),L=d.ref([]),D=W=>{L.value.push(W)},M=W=>{L.value=L.value.filter(Y=>Y.id!==W)},k=d.ref([]),B=d.ref(""),P=d.ref(null),V=d.ref([]),G=d.reactive({tree:!1,section:!1,roam:!1,info:!1,adjustModel:!1,setting:!1,cadLayer:!1,cadPosition:!1,gisCadPosition:!1,annotation:!1}),R=(W,Y)=>{W==="componentTree"&&(W="tree"),W==="componentInfo"&&(W="info"),W in G&&(G[W]=Y)},N=d.shallowRef({});d.provide("leitingMethods",N);const O=d.ref(u.showMenu),z=d.ref([]);d.watch(()=>u.showMenu,W=>{O.value=W},{immediate:!0}),d.watch(()=>u.mode,W=>{W&&N.value?.set2d&&N.value.set2d(W==="2d")});const j=d.ref("dark");d.provide("leiting-theme",j);const Z=d.ref(u.teleportTarget);d.watch(()=>u.teleportTarget,W=>{Z.value=W});const te=d.ref([]),de=d.computed(()=>{const W=[];return f.value&&(W.push("tree"),W.push("componentTree")),m.value&&W.push("section"),y.value&&W.push("roam"),g.value&&(W.push("info"),W.push("componentInfo")),A.value&&W.push("adjust"),v.value&&W.push("setting"),b.value&&W.push("cadLayer"),C.value&&W.push("cadPosition"),x.value&&W.push("gisCadPosition"),I.value&&W.push("annotation"),E.value&&(W.push("measure"),W.push("measurement")),W.push(...te.value),W}),pe=d.ref(null),Ae=(W,Y)=>{W==="componentTree"||W==="tree"?f.value=Y:W==="section"?m.value=Y:W==="roam"?y.value=Y:W==="componentInfo"||W==="info"?g.value=Y:W==="homeView"?N.value?.is2dMode?.()?N.value?.flyToTopView?.({}):N.value?.getBIMmodelId()?N.value?.flyToTileset?.({}):N.value?.getCadModelId()&&N.value?.flyToTopView?.({}):W==="adjustModel"?(A.value=Y,Y&&pe.value&&pe.value.setModelType("BIM")):W==="osgbAdjust"?(A.value=Y,Y&&pe.value&&pe.value.setModelType("OSGB")):W==="setting"?v.value=Y:W==="cadLayer"?b.value=Y:W==="cadPosition"?C.value=Y:W==="gisCadPosition"?x.value=Y:W==="annotation"?I.value=Y:W==="measurement"?E.value=Y:Y?te.value.includes(W)||te.value.push(W):te.value=te.value.filter(ee=>ee!==W)},Pe=W=>{const Y=W.key||W.ID;if(!Y)return;if(Y==="homeView"||Y==="home"){Ae(Y,!0);return}if(Y==="measurement"){S.value="distance",E.value=!0;return}const ee=!de.value.includes(W.ID);Ae(Y,ee)},Ge=W=>{const Y=W.sub;if(!Y)return;const ee=Y.parentKey||W.parent?.key;ee==="measurement"?(S.value=Y.id.replace("measure-",""),E.value=!0):ee==="section"&&(m.value=!0)};d.watch(f,async W=>{if(W&&N.value?.loadTreeForModel&&N.value?.getMapTileset){const Y=N.value.getMapTileset(),ee=Object.values(Y).map(async Ze=>{if(Ze.leiting&&Ze.leiting.model?.treeUrl){const li=Ze.leiting.model.modelId;try{Ze.leiting?.node?.batchIdEIDInfos||await N.value.loadNodeDetailsForModel(li);const Yt=await N.value.loadTreeForModel(li);Yt&&(Array.isArray(Yt)?Yt:[Yt]).forEach(Yi=>{Yi&&!V.value.find(Yd=>Yd.id===Yi.id)&&(Yi.modelId=li,V.value=[...V.value,Yi])})}catch(Yt){console.warn(`Failed to lazy load tree for ${li}`,Yt)}}});await Promise.all(ee)}});const Je=()=>{N.value&&(N.value.getDxfModels&&(k.value=N.value.getDxfModels()||[]),N.value.getCadModelId&&(B.value=N.value.getCadModelId()||""))};let vt;d.watch(b,W=>{W&&Je()}),d.watch(C,W=>{W&&(Je(),P.value&&k.value.length&&P.value.addGltfOr3dTilesModelList(k.value))});const ct=t,Bt=W=>{N.value&&N.value.saveCadCalibration&&N.value.saveCadCalibration(W),N.value&&N.value.saveCadRegion&&N.value.saveCadRegion(W)};return d.onMounted(async()=>{if(s.value&&me.setContainer(s.value),!!n.value)try{const W={...bn,cesiumUrl:u.cesiumUrl||bn.cesiumUrl,cesiumCssUrl:u.cesiumCssUrl||bn.cesiumCssUrl,accessToken:u.accessToken||Jd()||bn.accessToken};await Va(W),r.value=!0,vt=async(ee={},Ze)=>{if(n.value){const{showMenu:li,showTree:Yt,globe:yn,terrain:Yi,depthTest:Yd,mapProvider:sU,tiandituLayerType:oU,tiandituShowLabel:rU,arcgisUrl:aU,shadows:lU,environmentMap:cU,ambientOcclusion:dU,time:hU,brightness:uU,backgroundColor:fU,collision:pU,mouseHabit:mU,heightBasedZoom:gU,mode:ry,...ci}=ee||{},yU=u.showMenu!==void 0?u.showMenu:li!==void 0?li:!0;O.value=yU;const ft=(se,He,$t)=>se!==void 0?se:He!==void 0?He:$t,ay=ft(u.globe,yn,!1),ly=ft(u.terrain,Yi,!1),cy=ft(u.depthTest,Yd,!1),dy=ft(u.mapProvider,sU,"tianditu"),hy=ft(u.tiandituLayerType,oU,"img_w"),uy=ft(u.tiandituShowLabel,rU,!1),fy=ft(u.arcgisUrl,aU,"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"),py=ft(u.shadows,lU,!1),my=ft(u.environmentMap,cU,!1),gy=ft(u.ambientOcclusion,dU,!1),yy=ft(u.time,hU,void 0),Ay=ft(u.brightness,uU,1),La=u.mode||ry||"3d";u.mode,c.value=La;const AU=La==="2d"?"#000000":"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)",vy=ft(u.backgroundColor,fU,AU),by=ft(u.collision,pU,!1),wy=ft(u.mouseHabit,mU,0),Cy=ft(u.heightBasedZoom,gU,!1);l.value={globe:ay,terrain:ly,depthTest:cy,mapProvider:dy,tiandituLayerType:hy,tiandituShowLabel:uy,arcgisUrl:fy,shadows:py,environmentMap:my,ambientOcclusion:gy,time:yy,brightness:Ay,backgroundColor:vy,collision:by,mouseHabit:wy,heightBasedZoom:Cy,useBrowserRecommendedResolution:!0};const No=CB({container:n.value,appContext:o?.appContext,methods:{...N.value,handleMenuAction:Ae,setCardFullHeight:R,onLoadingStatus:se=>{se?me.loading(se,"",s.value):me.close()},...ci,tilesLoad3dTiles:async se=>{let He=se.leiting?.tree;const $t=se.leiting?.model?.modelId;if(!He&&f.value&&N.value?.loadTreeForModel)try{He=await N.value.loadTreeForModel($t)}catch(Ro){console.warn("Failed to lazy load tree",Ro)}He&&(Array.isArray(He)?He:[He]).forEach(vn=>{vn&&!V.value.find(xy=>xy.id===vn.id)&&(vn.modelId=$t,V.value=[...V.value,vn])});const{brightness:$d,contrast:jd,saturation:wi}=No.methods.getConfigure();No.methods.setModelColorAdjustment({brightness:$d,contrast:jd,saturation:wi}),ci.tilesLoad3dTiles?.(se)},mountAll3Dtiles:se=>{u.mountAll3Dtiles&&u.mountAll3Dtiles(se),ci.mountAll3Dtiles?.(se)},updateModels:se=>{if(Array.isArray(se))if(se.length===0)V.value=[];else{const He=se.map($t=>$t.modelId);V.value=V.value.filter($t=>He.includes($t.modelId))}},mountAllCad:se=>{if(No.methods.setModelBrightness){const He=u.brightness!==void 0?u.brightness:l.value.brightness;He!==void 0&&No.methods.setModelBrightness(He)}u.mountAllCad&&u.mountAllCad(se),ci.mountAllCad?.(se)},saveRegion:se=>{u.saveRegion&&u.saveRegion(se),ci.saveRegion?.(se)},saveCadRegion:se=>{u.saveCadRegion&&u.saveCadRegion(se),ci.saveCadRegion?.(se)},saveCadCalibration:se=>{u.saveCadCalibration&&u.saveCadCalibration(se),ci.saveCadCalibration?.(se)},selectionChange:se=>{u.selectionChange&&u.selectionChange(se),ci.selectionChange?.(se)},onSearchComponent:se=>{u.searchComponent&&u.searchComponent(se),ci.searchComponent?.(se)}},viewerOptions:u.viewerOptions,options:{...ci,mode:La,playerUrl:u.playerUrl,playerModelName:u.playerModelName,playerModelId:u.playerModelId,playerScale:u.playerScale,globe:ay,terrain:ly,depthTest:cy,mapProvider:dy,tiandituLayerType:hy,tiandituShowLabel:uy,tiandituToken:u.tiandituToken,arcgisUrl:fy,shadows:py,environmentMap:my,ambientOcclusion:gy,time:yy,brightness:Ay,backgroundColor:vy,collision:by,mouseHabit:wy,heightBasedZoom:Cy},callbacks:{onLoading:se=>se?me.loading(se,"",s.value):me.close(),onSuccess:se=>me.success(se,"",void 0,s.value),onError:se=>me.error(se,"",void 0,s.value)}}),{Cesium:An,viewer:gs,methods:Ra,menuEvents:Lo}=No,xe=Ra;Lo.on("showMenu",se=>{O.value=se}),Lo.on("insertMenu",se=>{z.value=[...z.value,...se]}),Lo.on("setMenuActive",(se,He)=>{Ae(se,He)}),N.value=xe,Ze&&(Ze.value=xe),Lo.on("setMode",se=>{c.value=se}),Lo.on("deleteAllModels",()=>{V.value=[]}),new An.ScreenSpaceEventHandler(gs.scene.canvas).setInputAction(async se=>{if(U(),c.value==="2d")return;const He=gs.scene.pick(se.position),$t=gs.container.getBoundingClientRect(),$d=$t.left+se.position.x,jd=$t.top+se.position.y,wi=[];if(An.defined(He)&&He instanceof An.Cesium3DTileFeature){const Ro=xe.baseCompt.getFeatureId(He),vn=ks(He.tileset);xe.baseCompt.hasSelectedFeaturesMap[vn]?.some(Fo=>Fo.batchId===Ro&&Fo.rank===0)||(await xe.baseCompt.clearSelection(),await xe.baseCompt.toggleMultiSelect(vn,Ro,xe.baseCompt.selectedColor)),wi.push({id:"details",label:"构件详情",action:()=>{g.value=!0}}),wi.push({id:"hide",label:"隐藏选中构件",action:async()=>{const Oo=(await xe.baseCompt.getSelected()).map(Ci=>({elementId:Ci.elementId,modelId:Ci.modelId,show:!1}));xe.baseCompt.setComponentVisibility(Oo)}}),wi.push({id:"translucent",label:"半透明选中构件",action:async()=>{const Oo=(await xe.baseCompt.getSelected()).map(Ci=>({elementId:Ci.elementId,modelId:Ci.modelId,rgba:{...Ci.rgba,a:.3}}));await xe.baseCompt.setSelectColorUserModelCpt(Oo,{rank:0})}}),wi.push({id:"isolate",label:"隔离选中构件",divided:!0,action:async()=>{await xe.baseCompt.loadAllNodeDetailsForModel();const Oo=(await xe.baseCompt.getSelected()).map(Ci=>({elementId:Ci.elementId,modelId:Ci.modelId,show:!0}));xe.isolateComponents(Oo)}})}wi.push({id:"showAll",label:"显示所有",action:async()=>{xe.baseCompt.setAllComponentsVisibility(!0),await xe.baseCompt.clearSelection()}}),wi.push(...L.value),F({x:$d,y:jd},wi)},An.ScreenSpaceEventType.RIGHT_CLICK),xe.addContextMenuItems=D,xe.insertContextMenu=xe.addContextMenuItems,xe.removeContextMenuItems=M,xe.deleteContextMenu=xe.removeContextMenuItems,xe.closeContextMenu=U,xe.hideContextMenu=xe.closeContextMenu,xe.onSetTeleportTarget=se=>{Z.value=se},await d.nextTick();const Ey=ee?.onLoaded||ee?.onloaded;Ey&&Ey({Cesium:An,viewer:gs,methods:Ra}),ct("init",{Cesium:An,viewer:gs,methods:Ra}),ct("ready",{Cesium:An,viewer:gs,methods:Ra})}};let Y=!1;ct("register",(ee,Ze)=>{Y=!0,vt(ee,Ze)}),Y||setTimeout(()=>{N.value.getViewer||vt()},0)}catch(W){a.value="Failed to load Cesium: "+(W.message||W),console.error(W)}}),d.onUnmounted(()=>{me.setContainer(null)}),e({initMap:()=>N.value,initializeViewer:(W,Y)=>vt(W,Y)}),(W,Y)=>(d.openBlock(),d.createElementBlock("div",{class:d.normalizeClass(["leiting-bim-container",[`theme-${j.value}`]]),onContextmenu:Y[29]||(Y[29]=d.withModifiers(()=>{},["prevent","stop"]))},[!r.value&&!a.value?(d.openBlock(),d.createBlock(d.unref(re.Spin),{key:0,class:"loading",size:"large",tip:"加载基础组件中..."})):d.createCommentVNode("",!0),a.value?(d.openBlock(),d.createBlock(d.unref(re.Alert),{key:1,class:"error",type:"error",message:a.value,"show-icon":""},null,8,["message"])):d.createCommentVNode("",!0),d.createElementVNode("div",{ref_key:"containerRef",ref:n,class:"cesium-viewer"},[d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(ao,{key:0,visible:O.value,"active-ids":de.value,"custom-items":z.value,onAction:Ae,"is-2d":c.value==="2d"},null,8,["visible","active-ids","custom-items","is-2d"])),d.unref(h)&&!y.value&&!E.value?(d.openBlock(),d.createBlock(_m,{key:1,"active-ids":de.value,"is-2d":c.value==="2d",onItemClick:Pe,onSubItemClick:Ge},null,8,["active-ids","is-2d"])):d.createCommentVNode("",!0),d.unref(h)&&i.showTree!==!1&&!y.value&&c.value!=="2d"?(d.openBlock(),d.createElementBlock("button",{key:2,class:d.normalizeClass(["mobile-float-tree-btn",{active:f.value}]),onClick:Y[0]||(Y[0]=ee=>f.value=!f.value)},[d.createElementVNode("img",{src:d.unref(Ur),class:"mobile-float-tree-icon",alt:"目录树"},null,8,H8)],2)):d.createCommentVNode("",!0),(d.openBlock(),d.createBlock(d.Teleport,{to:Z.value||"body",disabled:!Z.value},[d.createElementVNode("div",{ref_key:"uiOverlayRef",ref:s,class:"leiting-ui-overlay"},[d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(ho,{key:0,visible:g.value,"full-height":G.info,"onUpdate:visible":Y[1]||(Y[1]=ee=>g.value=ee)},null,8,["visible","full-height"])),d.unref(h)?(d.openBlock(),d.createBlock(Rm,{key:1,visible:g.value,"onUpdate:visible":Y[2]||(Y[2]=ee=>g.value=ee),onClose:Y[3]||(Y[3]=()=>{g.value=!1})},null,8,["visible"])):d.createCommentVNode("",!0),d.createVNode(uo,{ref_key:"LeitingPositionRef",ref:pe,visible:A.value,"full-height":G.adjustModel,"onUpdate:visible":Y[4]||(Y[4]=ee=>A.value=ee)},null,8,["visible","full-height"]),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(fo,{key:2,visible:v.value,"full-height":G.setting,"tianditu-token":u.tiandituToken,"initial-config":l.value,"onUpdate:visible":Y[5]||(Y[5]=ee=>v.value=ee)},null,8,["visible","full-height","tianditu-token","initial-config"])),d.unref(h)?(d.openBlock(),d.createBlock(Pm,{key:3,visible:v.value,"onUpdate:visible":Y[6]||(Y[6]=ee=>v.value=ee),onClose:Y[7]||(Y[7]=()=>{v.value=!1,te.value=te.value.filter(ee=>ee!=="setting")})},null,8,["visible"])):d.createCommentVNode("",!0),i.showTree!==!1&&!d.unref(h)?(d.openBlock(),d.createBlock(Gr,d.mergeProps({key:4},{...p,...i.treeProps},{visible:f.value,"full-height":G.tree,"tree-data":V.value.length>0?V.value:i.treeProps?.treeData||[],"onUpdate:visible":Y[8]||(Y[8]=ee=>{f.value=ee})}),null,16,["visible","full-height","tree-data"])):d.createCommentVNode("",!0),i.showTree!==!1&&d.unref(h)?(d.openBlock(),d.createBlock(km,{key:5,visible:f.value,"tree-data":V.value.length>0?V.value:i.treeProps?.treeData||[],"onUpdate:visible":Y[9]||(Y[9]=ee=>{f.value=ee}),onClose:Y[10]||(Y[10]=()=>{f.value=!1})},null,8,["visible","tree-data"])):d.createCommentVNode("",!0),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(dN,{key:6,visible:I.value,"onUpdate:visible":Y[11]||(Y[11]=ee=>I.value=ee)},null,8,["visible"])),d.unref(h)?(d.openBlock(),d.createBlock(z8,{key:7,visible:I.value,"onUpdate:visible":Y[12]||(Y[12]=ee=>I.value=ee)},null,8,["visible"])):d.createCommentVNode("",!0),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(_N,{key:8,visible:E.value,"onUpdate:visible":Y[13]||(Y[13]=ee=>E.value=ee)},null,8,["visible"])),d.unref(h)?(d.openBlock(),d.createBlock(Nm,{key:9,visible:E.value,"default-tool":S.value,"onUpdate:visible":Y[14]||(Y[14]=ee=>{E.value=ee,ee||(S.value=null)}),onClose:Y[15]||(Y[15]=()=>{E.value=!1,S.value=null})},null,8,["visible","default-tool"])):d.createCommentVNode("",!0),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(lo,{key:10,visible:m.value,"full-height":G.section,"onUpdate:visible":Y[16]||(Y[16]=ee=>m.value=ee)},null,8,["visible","full-height"])),d.unref(h)?(d.openBlock(),d.createBlock(Dm,{key:11,visible:m.value,"onUpdate:visible":Y[17]||(Y[17]=ee=>m.value=ee),onClose:Y[18]||(Y[18]=()=>{m.value=!1})},null,8,["visible"])):d.createCommentVNode("",!0),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(co,{key:12,visible:y.value,"full-height":G.roam,"onUpdate:visible":Y[19]||(Y[19]=ee=>y.value=ee)},null,8,["visible","full-height"])),d.unref(h)?(d.openBlock(),d.createBlock(Lm,{key:13,visible:y.value,"onUpdate:visible":Y[20]||(Y[20]=ee=>y.value=ee),onClose:Y[21]||(Y[21]=()=>{y.value=!1})},null,8,["visible"])):d.createCommentVNode("",!0),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(Zk,{key:14,visible:b.value,"current-model-id":B.value,"onUpdate:visible":Y[22]||(Y[22]=ee=>b.value=ee),onHandleCloseCardByCadCard:Y[23]||(Y[23]=()=>{b.value=!1})},null,8,["visible","current-model-id"])),d.unref(h)?(d.openBlock(),d.createBlock(P8,{key:15,visible:b.value,"current-model-id":B.value,"onUpdate:visible":Y[24]||(Y[24]=ee=>b.value=ee),onHandleCloseCardByCadCard:Y[25]||(Y[25]=()=>{b.value=!1})},null,8,["visible","current-model-id"])):d.createCommentVNode("",!0),d.createVNode($P,{ref_key:"cadPositionRef",ref:P,visible:C.value,"onUpdate:visible":Y[26]||(Y[26]=ee=>C.value=ee),onSave:Bt},null,8,["visible"]),d.createVNode(tN,{visible:x.value,"onUpdate:visible":Y[27]||(Y[27]=ee=>x.value=ee)},null,8,["visible"]),d.createVNode(NN,{visible:d.unref(w),position:d.unref(T),items:d.unref(_),"onUpdate:visible":Y[28]||(Y[28]=ee=>w.value=ee)},null,8,["visible","position","items"]),d.renderSlot(W.$slots,"default",d.normalizeProps(d.guardReactiveProps({methods:N.value,isReady:r.value})),void 0,!0)],512)],8,["to","disabled"]))],512)],34))}}),[["__scopeId","data-v-23352a4a"]]);function Y8(i,e={}){const{tapDelay:t=300,doubleTapDelay:n=300,moveThreshold:s=10}=e;let o=0,r={x:0,y:0},a=0,l=0,c=null;const h=[],u=[],p=[],f={},m=T=>{const _=T.touches[0]||T.changedTouches[0];return{x:_?.clientX??0,y:_?.clientY??0}},y=T=>{const _=m(T);o=Date.now(),r=_,a=0,p.forEach(({handler:F,delay:U})=>{c=window.setTimeout(()=>{F(T),c=null},U)})},g=T=>{const _=m(T),F=_.x-r.x,U=_.y-r.y;a=Math.sqrt(F*F+U*U),c&&a>s&&(clearTimeout(c),c=null)},A=T=>{const _=Date.now()-o,F=m(T),U=F.x-r.x,L=F.y-r.y;c&&(clearTimeout(c),c=null);const D=_<t&&a<s;if(D&&Date.now()-l<n&&a<s?(u.forEach(B=>B(T)),l=0):D&&(h.forEach(B=>B(T)),l=Date.now()),a>50){const B=Math.abs(U),P=Math.abs(L);B>P?U>0&&f.right?f.right(T):U<0&&f.left&&f.left(T):L>0&&f.down?f.down(T):L<0&&f.up&&f.up(T)}},v=T=>{h.push(T)},b=T=>{u.push(T)},C=(T,_=500)=>{p.push({handler:T,delay:_})},x=T=>{f.left=T},I=T=>{f.right=T},E=T=>{f.up=T},S=T=>{f.down=T},w=()=>{c&&(clearTimeout(c),c=null),h.length=0,u.length=0,p.length=0,Object.keys(f).forEach(T=>{delete f[T]})};return d.onMounted(()=>{const T=i.value;T&&(T.addEventListener("touchstart",y,{passive:!1}),T.addEventListener("touchmove",g,{passive:!1}),T.addEventListener("touchend",A,{passive:!1}))}),d.onUnmounted(()=>{w();const T=i.value;T&&(T.removeEventListener("touchstart",y),T.removeEventListener("touchmove",g),T.removeEventListener("touchend",A))}),{onTap:v,onDoubleTap:b,onLongPress:C,onSwipeLeft:x,onSwipeRight:I,onSwipeUp:E,onSwipeDown:S,destroy:w}}function $8(i){const e=t=>{t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement||t.target instanceof HTMLSelectElement||t.preventDefault()};return i.addEventListener("touchmove",e,{passive:!1}),()=>{i.removeEventListener("touchmove",e)}}function j8(){let i=0;const e=t=>{const n=Date.now();n-i<=300&&t.preventDefault(),i=n};return document.addEventListener("touchend",e,{passive:!1}),document.addEventListener("gesturestart",t=>t.preventDefault()),document.addEventListener("gesturechange",t=>t.preventDefault()),()=>{document.removeEventListener("touchend",e)}}function W8(i,e={}){const{delay:t=500,moveThreshold:n=10}=e,s=d.ref(!1);let o=null,r={x:0,y:0},a=!1;const l=f=>{if(f.touches.length!==1)return;f.preventDefault(),a=!0,s.value=!1;const m=f.touches[0];r={x:m?.clientX??0,y:m?.clientY??0},o=window.setTimeout(()=>{a&&(s.value=!0,i())},t)},c=f=>{if(!a||o===null)return;const m=f.touches[0],y=(m?.clientX??0)-r.x,g=(m?.clientY??0)-r.y;Math.sqrt(y*y+g*g)>n&&u()},h=()=>{a=!1,s.value=!1,o!==null&&(clearTimeout(o),o=null)},u=()=>{a=!1,s.value=!1,o!==null&&(clearTimeout(o),o=null)};return{isLongPressing:s,handlers:{onTouchStart:l,onTouchMove:c,onTouchEnd:h},start:l,end:h,cancel:u}}function q8(i,e,t={}){const{delay:n=500,moveThreshold:s=10}=t;let o=null,r={x:0,y:0};const a=h=>{if(h.touches.length!==1)return;h.preventDefault();const u=h.touches[0];r={x:u?.clientX??0,y:u?.clientY??0},o=window.setTimeout(()=>{e()},n)},l=h=>{if(o===null)return;const u=h.touches[0],p=(u?.clientX??0)-r.x,f=(u?.clientY??0)-r.y;Math.sqrt(p*p+f*f)>s&&(clearTimeout(o),o=null)},c=()=>{o!==null&&(clearTimeout(o),o=null)};return i.addEventListener("touchstart",a,{passive:!1}),i.addEventListener("touchmove",l,{passive:!1}),i.addEventListener("touchend",c),i.addEventListener("touchcancel",c),()=>{o!==null&&(clearTimeout(o),o=null),i.removeEventListener("touchstart",a),i.removeEventListener("touchmove",l),i.removeEventListener("touchend",c),i.removeEventListener("touchcancel",c)}}const K8={tapThreshold:10,doubleTapInterval:300,longPressDelay:500,panThreshold:20,pinchThreshold:.02};function X8(i={}){const e={...K8,...i},t=d.reactive({type:"none",startX:0,startY:0,currentX:0,currentY:0,deltaX:0,deltaY:0,scale:1,rotation:0,velocityX:0,velocityY:0,duration:0}),n=d.ref(!1),s=d.ref(!1),o=d.ref(!1);let r=0,a=0,l=null,c=0,h=1,u=0,p=null;const f={onTap:[],onDoubleTap:[],onLongPress:[],onPanStart:[],onPanMove:[],onPanEnd:[],onPinchStart:[],onPinchMove:[],onPinchEnd:[],onRotate:[]},m=L=>{if(L.length<2)return 0;const D=L[1].clientX-L[0].clientX,M=L[1].clientY-L[0].clientY;return Math.sqrt(D*D+M*M)},y=L=>L.length<2?0:Math.atan2(L[1].clientY-L[0].clientY,L[1].clientX-L[0].clientX)*(180/Math.PI);return{state:t,isActive:n,isPanning:s,isPinching:o,handlers:{onTouchStart:L=>{if(L.touches.length===1){const D=L.touches[0];p=D.identifier,r=Date.now(),t.startX=D.clientX,t.startY=D.clientY,t.currentX=D.clientX,t.currentY=D.clientY,t.deltaX=0,t.deltaY=0,n.value=!0,l=window.setTimeout(()=>{t.type="long-press",f.onLongPress.forEach(M=>M(L))},e.longPressDelay)}else L.touches.length===2&&(l&&(clearTimeout(l),l=null),o.value=!0,c=m(L.touches),h=1,u=y(L.touches),f.onPinchStart.forEach(D=>D(L)))},onTouchMove:L=>{if(L.touches.length===1&&p!==null){let D=null;for(let P=0;P<L.touches.length;P++)if(L.touches[P].identifier===p){D=L.touches[P];break}if(!D)return;const M=D.clientX-t.startX,k=D.clientY-t.startY;Math.sqrt(M*M+k*k)>e.panThreshold&&!s.value&&(s.value=!0,t.type="pan",l&&(clearTimeout(l),l=null),f.onPanStart.forEach(P=>P(L))),s.value&&(L.preventDefault(),t.deltaX=D.clientX-t.currentX,t.deltaY=D.clientY-t.currentY,t.currentX=D.clientX,t.currentY=D.clientY,t.velocityX=t.deltaX,t.velocityY=t.deltaY,f.onPanMove.forEach(P=>P(L)))}else if(L.touches.length===2&&o.value){L.preventDefault();const D=m(L.touches),M=y(L.touches),k=D/c;t.scale=h*k,t.rotation=M-u,f.onPinchMove.forEach(B=>B(L)),f.onRotate.forEach(B=>B(L))}},onTouchEnd:L=>{if(t.duration=Date.now()-r,l&&(clearTimeout(l),l=null),L.touches.length===0){if(s.value)t.type="pan",f.onPanEnd.forEach(D=>D(L));else if(o.value)f.onPinchEnd.forEach(D=>D(L));else if(t.type==="none"&&t.duration<300){const D=Date.now();D-a<e.doubleTapInterval?(t.type="double-tap",f.onDoubleTap.forEach(M=>M(L)),a=0):(t.type="tap",f.onTap.forEach(M=>M(L)),a=D)}s.value=!1,o.value=!1,n.value=!1,p=null,setTimeout(()=>{t.type="none",t.deltaX=0,t.deltaY=0,t.scale=1,t.rotation=0},50)}}},onTap:L=>{f.onTap.push(L)},onDoubleTap:L=>{f.onDoubleTap.push(L)},onLongPress:L=>{f.onLongPress.push(L)},onPanStart:L=>{f.onPanStart.push(L)},onPanMove:L=>{f.onPanMove.push(L)},onPanEnd:L=>{f.onPanEnd.push(L)},onPinchStart:L=>{f.onPinchStart.push(L)},onPinchMove:L=>{f.onPinchMove.push(L)},onPinchEnd:L=>{f.onPinchEnd.push(L)},onRotate:L=>{f.onRotate.push(L)}}}const Kr={enableFpsLimit:!0,targetFps:30,enableResolutionScale:!0,resolutionScale:.75,enableLazyLoad:!0,lazyLoadDelay:200,enableModelLod:!0,modelQualityLevel:"medium",enablePostProcessing:!1,enableFxaa:!1,enableAmbientOcclusion:!1,enableShadows:!1,maxTextureSize:1024,enableDebounce:!0,debounceDelay:100};function J8(i={}){const e={...Kr,...i};return{requestRenderMode:e.enableFpsLimit,maximumRenderTimeChange:e.enableFpsLimit?1e3/e.targetFps:void 0,scene3DOnly:!0,shouldAnimate:!0}}function Z8(i={}){const e={...Kr,...i};return{resolutionScale:e.enableResolutionScale?e.resolutionScale:1,targetFrameRate:e.enableFpsLimit?e.targetFps:void 0,sceneModePicker:!1,navigationHelpButton:!1,animation:!1,timeline:!1,fullscreenButton:!1,vrButton:!1,infoBox:!1,selectionIndicator:!1,shadows:e.enableShadows,skyAtmosphere:e.enablePostProcessing,fog:e.enablePostProcessing}}function eR(i={}){const e={...Kr,...i},n={low:{maximumScreenSpaceError:64,skipScreenSpaceErrorFactor:256,skipLevels:8,baseScreenSpaceError:2048},medium:{maximumScreenSpaceError:48,skipScreenSpaceErrorFactor:128,skipLevels:5,baseScreenSpaceError:1024},high:{maximumScreenSpaceError:32,skipScreenSpaceErrorFactor:64,skipLevels:3,baseScreenSpaceError:512}}[e.modelQualityLevel];return{cullWithChildrenBounds:!0,cullRequestsWhileMoving:!0,cullRequestsWhileMovingMultiplier:10,backFaceCulling:!0,colorBlendAmount:0,minimumPixelSize:128,maximumScreenSpaceError:n.maximumScreenSpaceError,skipLevelOfDetail:e.enableModelLod,baseScreenSpaceError:n.baseScreenSpaceError,skipScreenSpaceErrorFactor:n.skipScreenSpaceErrorFactor,skipLevels:n.skipLevels,immediatelyLoadDesiredLevelOfDetail:!1,loadSiblings:!1,maximumMemoryUsage:4096*5,preloadWhenHidden:!0,preferLeaves:e.enableModelLod,progressiveResolutionHeightFraction:.5,dynamicScreenSpaceErrorDensity:.002,dynamicScreenSpaceErrorFactor:4,dynamicScreenSpaceError:!0,dynamicScreenSpaceErrorHeightFalloff:.25,foveatedConeSize:0,foveatedTimeDelay:10,foveatedMinimumScreenSpaceErrorRelaxation:0}}function tR(i=30){const e=d.ref(60),t=d.ref(!1);let n=0,s=0,o=0;const r=1e3/i,a=()=>{t.value=!0,n=performance.now(),o=n,s=0},l=()=>{if(!t.value)return!0;const h=performance.now(),u=h-n;return s++,h-o>=1e3&&(e.value=Math.round(s*1e3/(h-o)),s=0,o=h),u>=r?(n=h-u%r,!0):!1},c=()=>{t.value=!1};return d.onUnmounted(()=>{c()}),{fps:e,isControlling:t,startControl:a,stopControl:c,tick:l}}function iR(i,e){let t=null;const n=((...s)=>{t!==null&&clearTimeout(t),t=window.setTimeout(()=>{i(...s),t=null},e)});return n.cancel=()=>{t!==null&&(clearTimeout(t),t=null)},n}function nR(i,e){let t=!1;return((...s)=>{t||(i(...s),t=!0,setTimeout(()=>{t=!1},e))})}function sR(i,e=200){let t=null;const n=()=>{t!==null&&clearTimeout(t),t=window.setTimeout(()=>{i(),t=null},e)},s=()=>{t!==null&&(clearTimeout(t),t=null)};return d.onUnmounted(()=>{s()}),{load:n,cancel:s}}function Fm(i){const e=d.ref(),t=d.ref(i.theme||"dark"),n=d.ref(i.menuSize||"medium");d.provide("leiting-theme",t),d.provide("leiting-menu-size",n);function s(a){d.onUnmounted(()=>{e.value=null}),a(i,e)}function o(){const a=d.unref(e);return a||console.error("未获取到leiting实例!"),a}const r=new Proxy({},{get(a,l){const c=o();if(!c)return;const h=c[l];return typeof h=="function"?h.bind(c):h},set(a,l,c){const h=o();return h?(h[l]=c,!0):!1}});return[s,r]}const oR=bn,rR={install:(i,e)=>{if(i.component("LeitingBIM",qr),i.component("LeitingTree",Gr),i.component("LeitingDraggableCard",gt),i.component("leiting-draggable-card",gt),i.component("LeitingMenu",ao),i.component("leiting-menu",ao),i.component("LeitingSection",lo),i.component("leiting-section",lo),i.component("LeitingPlayer",co),i.component("leiting-player",co),i.component("LeitingInfo",ho),i.component("leiting-info",ho),i.component("LeitingPosition",uo),i.component("leiting-position",uo),i.component("LeitingSetting",fo),i.component("leiting-setting",fo),!e)return;const t={...oR,...e};t.cesiumUrl&&Va(t).catch(n=>{console.error("[LeitingBim] Failed to load Cesium resources:",n)}),i.config.globalProperties.$leitingBimOptions=t}};function aR(i,e){e===void 0&&(e={});var t=e.insertAt;if(!(typeof document>"u")){var n=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",t==="top"&&n.firstChild?n.insertBefore(s,n.firstChild):n.appendChild(s),s.styleSheet?s.styleSheet.cssText=i:s.appendChild(document.createTextNode(i))}}var lR="@keyframes watermark{0%{background-position:0 0}25%{background-position:100% 100%}50%{background-position:100% 0}75%{background-position:0 100%}to{background-position:0 0}}@keyframes watermark-horizontal{0%{background-position-x:0}to{background-position-x:100%}}@keyframes watermark-vertical{0%{background-position-y:0}to{background-position-y:100%}}";aR(lR);var wc=function(i,e){return wc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])},wc(i,e)};function cR(i,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");wc(i,e);function t(){this.constructor=i}i.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var Fi=function(){return Fi=Object.assign||function(e){for(var t,n=1,s=arguments.length;n<s;n++){t=arguments[n];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},Fi.apply(this,arguments)};function pi(i,e,t,n){function s(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(n.next(h))}catch(u){r(u)}}function l(h){try{c(n.throw(h))}catch(u){r(u)}}function c(h){h.done?o(h.value):s(h.value).then(a,l)}c((n=n.apply(i,e||[])).next())})}function ei(i,e){var t={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,s,o,r=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return r.next=a(0),r.throw=a(1),r.return=a(2),typeof Symbol=="function"&&(r[Symbol.iterator]=function(){return this}),r;function a(c){return function(h){return l([c,h])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;r&&(r=0,c[0]&&(t=0)),t;)try{if(n=1,s&&(o=c[0]&2?s.return:c[0]?s.throw||((o=s.return)&&o.call(s),0):s.next)&&!(o=o.call(s,c[1])).done)return o;switch(s=0,o&&(c=[c[0]&2,o.value]),c[0]){case 0:case 1:o=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,s=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(o=t.trys,!(o=o.length>0&&o[o.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]<o[3])){t.label=c[1];break}if(c[0]===6&&t.label<o[1]){t.label=o[1],o=c;break}if(o&&t.label<o[2]){t.label=o[2],t.ops.push(c);break}o[2]&&t.ops.pop(),t.trys.pop();continue}c=e.call(i,t)}catch(h){c=[6,h],s=0}finally{n=o=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}typeof SuppressedError=="function"&&SuppressedError;var Om=function(i){return i.toDataURL("image/png",1)},Gm=function(i){return typeof i=="function"},zt=function(i){return i===void 0},dR=function(i){return typeof i=="string"},Um=function(i,e,t){e===void 0&&(e={}),t===void 0&&(t="http://www.w3.org/2000/svg");var n=document.createElementNS(t,i);for(var s in e)n.setAttribute(s,e[s]);return n},hR=function(i,e,t){for(var n=[],s="",o="",r=0,a=e.length;r<a;r++){if(o=e.charAt(r),o===`
|
|
121
|
+
`});p.isModelAdjustment=!0,u.customShader=p}else e.brightness!==void 0&&e.brightness!==1&&!u.style&&(u.style=new n.Cesium3DTileStyle({color:`color('white') * ${e.brightness}`}))}}setModelBrightness(e){this.setModelColorAdjustment({brightness:e})}_defaultSkyBox=null;_skyBoxPreUpdateListener=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 n=t.postProcessStages.ambientOcclusion;n.enabled=e,e&&(n.uniforms.ambientOcclusionOnly=!1,n.uniforms.intensity=3,n.uniforms.bias=.1,n.uniforms.lengthCap=.03,n.uniforms.stepSize=1,n.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)}_customZoomHandler=null;setHeightBasedZoom(e){const t=this.viewer.scene.screenSpaceCameraController,n=this.cesium;if(this.viewer.camera.frustum.near=1e-4,this.viewer.camera.frustum.far=1e8,e||(this.viewer.camera.frustum.near=.1),this._customZoomHandler&&(this._customZoomHandler.destroy(),this._customZoomHandler=null),!e){t.zoomEventTypes.includes(n.CameraEventType.WHEEL)||t.zoomEventTypes.push(n.CameraEventType.WHEEL);return}t.zoomEventTypes=t.zoomEventTypes.filter(o=>o!==n.CameraEventType.WHEEL),this._customZoomHandler=new n.ScreenSpaceEventHandler(this.viewer.scene.canvas);let s=null;this._customZoomHandler.setInputAction(o=>{s=o.endPosition},n.ScreenSpaceEventType.MOUSE_MOVE),this._customZoomHandler.setInputAction(o=>{const r=this.viewer.camera,a=r.positionCartographic.height,l=Math.sign(o);if(a<.15&&l>0){me.info("无法继续放大");return}const c=.3;let h=0;if(l>0){const m=a-1;h=m>0?m*c:0}else h=a*c;h=Math.max(.1,h);let u=null;if(!s)u=r.direction;else{const m=r.getPickRay(s);if(m){let y=this.viewer.scene.pickPosition(s);if(!y){const g=n.IntersectionTests.rayEllipsoid(m,this.viewer.scene.globe.ellipsoid);g&&(y=n.Ray.getPoint(m,g.start))}if(y){const g=n.Cartesian3.subtract(y,r.position,new n.Cartesian3);u=n.Cartesian3.normalize(g,new n.Cartesian3)}else u=r.direction}else u=r.direction}const p=l>0?h:-h*2,f=n.Cartesian3.multiplyByScalar(u,p,new n.Cartesian3);r.position=n.Cartesian3.add(r.position,f,new n.Cartesian3)},n.ScreenSpaceEventType.WHEEL)}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 wB{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},destination:{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:n,duration:s}=e,o=new this.cesium.Cartesian3(t.x,t.y,t.z),r=new this.cesium.HeadingPitchRoll(n.heading,n.pitch,n.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||{},n=e.destination||e.position||{};this.flyToCameraView({position:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},destination:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},orientation:{heading:Number(t.heading||0),pitch:Number(t.pitch||0),roll:Number(t.roll||0)},duration:e.duration})}flyToLonLatHeight(e,t,n,s=1){const o=this.cesium.Cartesian3.fromDegrees(e,t,n),r={heading:this.cesium.Math.toRadians(0),pitch:this.cesium.Math.toRadians(-90),roll:0};!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}}function CB(i){const{container:e,appContext:t,methods:n,viewerOptions:s,options:o,callbacks:r}=i,a=new _s,l=window.Cesium;if(!l)throw new Error("Cesium is not loaded");e.id=`cesium-container-${hC()}`;const c={animation:!1,timeline:!1,infoBox:!1,homeButton:!1,fullscreenButton:!1,sceneModePicker:!1,navigationHelpButton:!1,geocoder:!1,baseLayerPicker:!1,selectionIndicator:!1,heightBasedZoom:!0,creditContainer:document.createElement("div"),contextOptions:{webgl:{alpha:!0,preserveDrawingBuffer:!0}}},h=t?.config?.globalProperties?.$leitingBimOptions,u={...c,...h?.viewerOptions??{},...s??{}},p=new l.Viewer(e,u);p.camera.setView({destination:l.Cartesian3.fromDegrees(108,32,1e7),orientation:{heading:l.Math.toRadians(0),pitch:l.Math.toRadians(-90),roll:0}});let f=n;if(!f&&h&&(h.methods||(h.methods={}),f=h.methods),f){const m=new xC({cesium:l,viewer:p,options:o,callbacks:r}),y=new qu({cesium:l,viewer:p}),g=new bB({cesium:l,viewer:p}),A=new IC({cesium:l,viewer:p}),v=new BS({cesium:l,viewer:p}),b=new wB({cesium:l,viewer:p});let C;const x=new pc({cesium:l,viewer:p});o&&(o.globe!==void 0&&g.setGlobeEnvironmentVisible(o.globe),o.terrain!==void 0&&g.setTerrainEnable(o.terrain),o.depthTest!==void 0&&g.setDepthTestEnable(o.depthTest),o.mapProvider&&o.mode!=="2d"&&g.changeBaseMap(o.mapProvider,{token:o.tiandituToken,layerType:o.tiandituLayerType,showAnnotation:o.tiandituShowLabel,url:o.arcgisUrl}),o.shadows!==void 0&&g.setShadowsEnable(o.shadows),o.environmentMap!==void 0&&g.setEnvironmentMapEnable(o.environmentMap),o.ambientOcclusion!==void 0&&g.setAmbientOcclusion(o.ambientOcclusion),o.time!==void 0&&g.setTime(o.time),o.brightness!==void 0&&g.setModelBrightness(o.brightness),o.backgroundColor!==void 0&&g.setBackgroundColor(o.backgroundColor),o.collision!==void 0&&g.setCollisionDetection(o.collision),o.mouseHabit!==void 0&&g.setMouseHabit(o.mouseHabit),o.heightBasedZoom!==void 0&&g.setHeightBasedZoom(o.heightBasedZoom)),o&&o.mode==="2d"&&(g.setCadMode("2d"),C=new um({cesium:l,viewer:p})),y.events.on("tilesetLoaded",w=>{m.baseCompt.attachTileset(w,m.baseCompt.selectedColor),m.baseSection.attachTileset(w,w.leiting?.model?.modelId),f&&f.tilesLoad3dTiles&&f.tilesLoad3dTiles(w),o?.tilesLoad3dTiles&&o.tilesLoad3dTiles(w.leiting)}),y.events.on("loadingStatus",w=>{f&&f.onLoadingStatus&&f.onLoadingStatus(w)}),y.events.on("mountAll3Dtiles",({modelList:w})=>{o?.mountAll3Dtiles&&o.mountAll3Dtiles(w),f?.mountAll3Dtiles&&f.mountAll3Dtiles(w)}),y.events.on("configureLoaded",w=>{f.setConfigure(w)}),y.events.on("updateModels",({modelList:w})=>{o?.updateModels&&o.updateModels(w),f?.updateModels&&f.updateModels(w)}),A.events.on("mountAllCad",w=>{o?.mountAllCad&&o.mountAllCad(w),f?.mountAllCad&&f.mountAllCad(w)}),v.events.on("mountAllGISCad",w=>{o?.mountAllGISCad&&o.mountAllGISCad(w),f?.mountAllGISCad&&f.mountAllGISCad(w)}),m.baseCompt.loadNodeDetailsForModel=w=>y.loadNodeDetailsForModel(w),m.baseCompt.selectionChange(w=>{w.length!==0&&(o?.selectionChange&&o.selectionChange(w),f?.selectionChange&&f.selectionChange(w))}),f.onSearchComponent=w=>{o?.searchComponent&&o.searchComponent(w),f?.searchComponent&&f.searchComponent(w)};const I=f.saveRegion;f.saveRegion=w=>{I?I(w):o?.saveRegion&&o.saveRegion(w)};const E=f.saveCadCalibration;f.saveCadCalibration=w=>{E?E(w):o?.saveCadCalibration&&o.saveCadCalibration(w)};const S=f.saveCadRegion;f.saveCadRegion=w=>{S?S(w):o?.saveCadRegion&&o.saveCadRegion(w)},f.getCesium=()=>l,f.getViewer=()=>p,f.getAnnotationInstance=()=>C,f.getMeasureInstance=()=>x,f.flyToCamera=w=>{b.setCameraView(w)},f.flyToLonLatHeight=(w,T,_,F=1)=>{b.flyToLonLatHeight(w,T,_,F)},f.flyTo=f.flyToCamera,f.getCameraState=()=>b.getCameraView(),f.getCameraInfo=f.getCameraState,f.restoreCameraState=w=>b.flyToCameraView(w),f.flyToCameraView=f.restoreCameraState,f.getCameraPositionTarget=()=>b.getCurrentCameraPositionAndTarget(),f.getCurrentCameraPositionAndTarget=f.getCameraPositionTarget,f.setCameraLookAt=w=>b.setCameraView(w),f.setCameraView=f.setCameraLookAt,f.setCanvasBackground=w=>g.setBackgroundColor(w),f.setBackgroundColor=f.setCanvasBackground,f.setAntiAliasing=w=>m.enableCesiumFXAA(w),f.enableCesiumFXAA=f.setAntiAliasing,f.setSceneVisibility=w=>m.setSceneOptions(w),f.setSceneOptions=f.setSceneVisibility,f.addDebugPoint=(w,T,_=0)=>{p.entities.add({position:l.Cartesian3.fromDegrees(w,T,_),point:{pixelSize:10,color:l.Color.RED}})},f.addPoint=f.addDebugPoint,f.toggleDebugLabels=()=>m.enableTestLabel(),f.enableTestLabel=f.toggleDebugLabels,f.captureScreenshot=()=>{const w=p.scene.canvas;return p.render(),w.toDataURL("image/png")},f.getImageBase64=f.captureScreenshot,f.captureDomScreenshot=(w,T)=>m.getSnapDomSImageBase64(w,T),f.getSnapDomSImageBase64=f.captureDomScreenshot,f.addModels=w=>y.addModels(w),f.add3DtilesModel=f.addModels,f.addObliquePhotography=w=>y.addOSGB(w),f.addOSGB=f.addObliquePhotography,f.adjustOSGBModelMatrix=w=>y.updateOSGBMatrix(w),f.updateOSGBMatrix=f.adjustOSGBModelMatrix,f.setModelVisibility=w=>y.showModels(w),f.showModels=f.setModelVisibility,f.showTileset=f.setModelVisibility,f.removeModels=w=>y.deleteModels(w),f.deleteModels=f.removeModels,f.clearAllModels=()=>{y.deleteAllModels(),a.emit("deleteAllModels")},f.deleteAllModelList=f.clearAllModels,f.deleteAllModels=f.clearAllModels,f.flyToModel=w=>y.flyToTileset(w),f.flyToTileset=f.flyToModel,f.flyToByModelId=f.flyToModel,f.setModelBrightness=w=>m.updateModelEffect(w),f.updateModelEffect=f.setModelBrightness,f.getAllTilesets=()=>y.getMapTileset(),f.getMapTileset=f.getAllTilesets,f.getCurrentModelId=()=>y.getBIMmodelId(),f.getBIMmodelId=f.getCurrentModelId,f.getLoadedModels=()=>y.getModelList(),f.getModelList=f.getLoadedModels,f.loadModelStructure=async w=>{const T=typeof w=="string"?w:w?.modelId;if(!T){console.warn("loadModelStructure: modelId is required");return}return await y.loadTreeForModel(T)},f.loadTreeForModel=f.loadModelStructure,f.loadModelDetails=async w=>{const T=typeof w=="string"?w:w?.modelId;if(!T){console.warn("loadModelDetails: modelId is required");return}return await y.loadNodeDetailsForModel(T)},f.loadNodeDetailsForModel=f.loadModelDetails,f._loadNodeDetailsForModel=async w=>{const T=typeof w=="string"?w:w?.modelId;if(!T){console.warn("loadModelDetails: modelId is required");return}return await y._loadNodeDetailsForModel(T)},f.setMapTileset=w=>y.setMapTileset(w),f.setCurrentModelId=w=>y.setBIMmodelId(w),f.setBIMmodelId=f.setCurrentModelId,f.setModelList=w=>y.setModelList(w),f.setWatermarkEnabled=w=>{y.setWatermarkEnabled(w),v.setWatermarkEnabled(w)},f.applyWatermark=async(w=!0)=>{await wl(w,p.container)},f.highlightComponents=(w,T={})=>m.baseCompt.setSelectColorUserModelCpt(w,T),f.setSelectColorUserModelCpt=f.highlightComponents,m.baseCompt.setLoadNodeDetailsCallback(w=>y.loadNodeDetailsForModel(w)),f.highlightAllComponents=(w,T)=>m.baseCompt.setAllSelectColorUserModelCpt(w,T),f.setAllSelectColorUserModelCpt=f.highlightAllComponents,f.setSelectColorUserModelCptByClear=(w,T)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(w.selectCpts,T??{rank:0})},f.clearSelectColorUserModelCpt=()=>m.baseCompt.clearAllHaveSelected(),f.selectComponents=(w,T)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(w,T??{rank:0})},f.setSelecteds=f.selectComponents,f.setSelectionColor=(w,T,_,F)=>m.baseCompt.setSelectedColorRgba(w,T,_,F),f.setSelectedColor=f.setSelectionColor,f.clearSelection=()=>m.baseCompt.clearAllHaveSelected(),f.clearAllHaveSelected=f.clearSelection,f.getSelectedComponents=w=>m.baseCompt.getSelected(w),f.getSelected=f.getSelectedComponents,f.setClickToHighlightEnabled=w=>{m.baseCompt.clickToHighlightEnabled=w},f.getClickToHighlightEnabled=()=>m.baseCompt.clickToHighlightEnabled,f.onSelectionChange=w=>{m.baseCompt.selectionChange(w)},f.selectionChange=f.onSelectionChange,f.flyToComponents=w=>m.baseCompt.flyToObjects(w),f.flyToObjects=f.flyToComponents,f.setConstructionData=async w=>{if(w&&Array.isArray(w)){const T=new Set;w.forEach(_=>{_.mergeCpts&&Array.isArray(_.mergeCpts)&&_.mergeCpts.forEach(F=>{F.modelId&&T.add(F.modelId)})}),T.size>0&&await Promise.all(Array.from(T).map(_=>f.loadNodeDetailsForModel(_)))}m.baseCompt.setAllConstructionProgressTracking(w)},f.setAllConstructionProgressTracking=f.setConstructionData,f.startConstructionSimulation=()=>m.baseCompt.enableConstructionProgressTracking(),f.enableAllConstructionProgressTracking=f.startConstructionSimulation,f.stopConstructionSimulation=()=>m.baseCompt.disableConstructionProgressTracking(),f.disableConstructionProgressTracking=f.stopConstructionSimulation,f.disableAllConstructionProgressTracking=f.stopConstructionSimulation,f.resetConstructionSimulation=()=>m.baseCompt.freshConstructionProgressTracking(),f.freshConstructionProgressTracking=f.resetConstructionSimulation,f.restartConstructionSimulation=()=>m.baseCompt.reStartAnimation(),f.reStartAnimation=f.restartConstructionSimulation,f.resumeFlyTo=()=>m.baseCompt.resumeFlyTo(),f.pauseConstructionSimulation=()=>m.baseCompt.pauseFlyTo(),f.pauseFlyTo=f.pauseConstructionSimulation,f.pauseAnimation=f.pauseConstructionSimulation,f.resumeConstructionSimulation=()=>m.baseCompt.resumeFlyTo(),f.resumeAnimation=f.resumeConstructionSimulation,f.setComponentsVisibility=async w=>await m.baseCompt.setComponentVisibility(w),f.setElementsListVisible=f.setComponentsVisibility,f.setAllComponentsVisibility=async w=>await m.baseCompt.setAllComponentsVisibility(w),f.setAllElementsVisible=f.setAllComponentsVisibility,f.isolateComponents=w=>m.baseCompt.isolateComponentVisibility(w),f.isolateComponentVisibility=f.isolateComponents,f.getComponentsByVisibility=w=>m.baseCompt._getComponentsByVisibility(w),f.getShowCpts=w=>m.baseCompt.getComponentsByVisibility(w),f.getElementsVisible=w=>m.baseCompt.getComponentsByVisibility(w),f.setComponentVisibility=f.setComponentsVisibility,f.enableSectioning=(w,T)=>m.baseSection.open(w,T),f.openSection=f.enableSectioning,f.disableSectioning=w=>m.baseSection.close(w),f.closeSection=f.disableSectioning,f.updateSectionBox=w=>m.baseSection.updateRange(w),f.updateSectionRange=f.updateSectionBox,f.getSectionBox=()=>m.baseSection.getRange(),f.getSectionRange=f.getSectionBox,f.fitSectionToModel=()=>m.baseSection.fitToModels(),f.fitToModels=f.fitSectionToModel,f.setSectionBoxVisibility=w=>m.baseSection.setBoxVisibility(w),f.startFirstPersonMode=()=>{m.baseCompt.disableSelection(),m.basePlayer.openPlayer()},f.openPlayer=f.startFirstPersonMode,f.startCameraRoam=()=>{m.baseCompt.disableSelection(),m.basePlayer.openCameraRoam()},f.stopFirstPersonMode=()=>{m.basePlayer.closePlayer(),m.baseCompt.enableSelection()},f.closePlayer=f.stopFirstPersonMode,f.setPlayerPosition=w=>m.basePlayer.setPersonPosition(w),f.setPersonPosition=f.setPlayerPosition,f.setPlayerDefaultPosition=()=>m.basePlayer.setDefaultPosition(),f.setWalkSpeed=w=>m.basePlayer.setSpeed({speed:w}),f.setPlayerSpeed=f.setWalkSpeed,f.setPlayerConfig=w=>m.basePlayer.setParams(w),f.setPlayerParams=f.setPlayerConfig,f.setModelInfo=w=>m.basePlayer.setModelInfo(w),f.setPlayerAction=(w,T)=>m.basePlayer.setMoveState(w,T),f.setPlayerMoveState=f.setPlayerAction,f.bindPlayerControls=w=>m.basePlayer.bindUiKeys(w),f.bindPlayerUiKeys=f.bindPlayerControls,f.setGlobeVisibility=w=>g.setGlobeEnvironmentVisible(w),f.setGlobeEnvironmentVisible=f.setGlobeVisibility,f.setSkyBoxVisible=w=>g.setSkyBoxVisible(w),f.setTerrainVisibility=w=>g.setTerrainEnable(w),f.setTerrainEnable=f.setTerrainVisibility,f.setDepthTest=w=>g.setDepthTestEnable(w),f.setDepthTestEnable=f.setDepthTest,f.setBaseMap=(w,T)=>g.changeBaseMap(w,T),f.changeBaseMap=f.setBaseMap,f.setWorldTime=w=>g.setTime(w),f.setTime=f.setWorldTime,f.setGisOptions=w=>{w.globe!==void 0&&g.setGlobeEnvironmentVisible(w.globe),w.elevation!==void 0&&g.setTerrainEnable(w.elevation),w.depthTestAgainstTerrain!==void 0&&g.setDepthTestEnable(w.depthTestAgainstTerrain),w.rendering!==void 0&&g.setAmbientOcclusion(w.rendering)},f.setShadowVisibility=w=>g.setShadowsEnable(w),f.setShadowsEnable=f.setShadowVisibility,f.setEnvironmentMapVisibility=w=>g.setEnvironmentMapEnable(w),f.setEnvironmentMapEnable=f.setEnvironmentMapVisibility,f.setAOVisibility=w=>g.setAmbientOcclusion(w),f.setAmbientOcclusion=f.setAOVisibility,f.setBackgroundColor=w=>g.setBackgroundColor(w),f.setGlobeColor=f.setBackgroundColor,f.setSkyBox=w=>g.setSkyBox(w),f.setModelBrightness=w=>g.setModelBrightness(w),f.adjustModelColor=w=>g.setModelColorAdjustment(w),f.setModelColorAdjustment=f.adjustModelColor,f.setShadowIntensity=w=>{g.setShadowDarkness?g.setShadowDarkness(w):console.warn("baseSetting.setShadowDarkness is not available. Please reload the page.")},f.setShadowDarkness=f.setShadowIntensity,f.switchSceneMode=async w=>{const T=w?"2d":"3d";await g.setCadMode(T),w&&!C&&(C=new um({cesium:l,viewer:p}),f.setGlobeVisibility(!0)),a.emit("setMode",T)},f.setSceneMode=f.switchSceneMode,f.set2d=w=>f.switchSceneMode(w),f.is2dMode=()=>g.is2d,f.setMouseControlMode=w=>g.setMouseHabit(w),f.setMouseHabit=f.setMouseControlMode,f.setCollisionEnabled=w=>g.setCollisionDetection(w),f.setCollisionDetection=f.setCollisionEnabled,f.searchAndLocate=(w,T)=>g.searchLocation(w,T),f.searchLocation=f.searchAndLocate,f.getConfigure=()=>(console.warn("getConfigure is not initialized. Please ensure LeitingSetting component is mounted."),{}),f.setConfigure=w=>{console.warn("setConfigure is not initialized. Please ensure LeitingSetting component is mounted.",w)},f.addCadModel=w=>{const T={...w};return T.files&&!T.fileNames&&(T.fileNames=T.files),T.fileNames||(T.fileNames=[]),A.addDxfModel(T)},f.addDxfModel=f.addCadModel,f.addGISCadModel=w=>{const T={...w};return T.files&&!T.fileNames&&(T.fileNames=T.files),T.fileNames||(T.fileNames=[]),v.addGISCadModel(T)},f.addVectorTileByUrlTemplate=w=>v.addVectorTileByUrlTemplate(w),f.addVectorTileByTilesManifest=w=>v.addVectorTileByTilesManifest(w),f.showGISCadModel=w=>v.showJson(w),f.addGeoJsonLayer=w=>v.addGeoJsonLayer(w),f.showGISCadLayer=w=>v.showJsonByLayer(w),f.deleteGISCad=w=>v.deleteCad(w),f.deleteAllGISCad=()=>v.deleteAllCad(),f.flyToGISCadModel=(w={})=>v.flyToCadModel(w),f.flyGisCadModel=w=>v.flyToCadModel({modelId:w}),f.getGISCadModels=w=>v.getDxfModels(w),f.getGISCadModelsList=()=>v.getDxfModelsList(),f.getGISCadLayers=w=>v.getMapLayers(w),f.getGISCadModelId=()=>v.getModelId(),f.getDefaultGISCadTransformConfig=()=>v.getDefaultCoordinateTransformConfig(),f.transformGISCadCoordinate=w=>v.transformCoordinate(w),f.beginEditGISCad=w=>v.beginEditGISCad(w),f.adjustGISCadModel=w=>v.adjustGISCadModel(w),f.commitEditGISCad=w=>v.commitEditGISCad(w),f.cancelEditGISCad=w=>v.cancelEditGISCad(w),f.deleteCad=w=>A.deleteCad(w),f.deleteAllCad=()=>A.deleteAllCad(),f.showCadModel=w=>A.showJson(w),f.showGeoJson=w=>A.showJson(w),f.showDxfModel=f.showCadModel,f.showCadLayer=w=>A.showJsonByLayer(w),f.showDxfLayer=f.showCadLayer,f.flyToCadModel=(w={})=>A.flyToCadModel(w),f.getCadModels=w=>A.getDxfModels(w),f.getDxfModels=f.getCadModels,f.getCadLayers=w=>A.getMapLayers(w),f.getDxfLayers=f.getCadLayers,f.getCadModelId=()=>A.getModelId(),f.setCadOpen=w=>A.setDxfOpen(w),f.setDxfOpen=f.setCadOpen,f.getCadOpen=()=>A.getDxfOpen(),f.getDxfOpen=f.getCadOpen,f.adjustCadModel=w=>A.adjustingModelByCad(w),f.adjustingModelByCad=f.adjustCadModel,f.saveAnnotations=()=>{let w=null;return C&&(w=C.saveAnnotations()),o?.saveAnnotations&&o.saveAnnotations(w),w},f.loadAnnotations=w=>C?C.loadAnnotations(w):!1,f.flyToTopView=()=>{A.flyToCadModel()},f.menuEvents=a,f.addMenuItems=w=>{a.emit("insertMenu",w)},f.insertMenu=f.addMenuItems,f.filterMenuItems=w=>{a.emit("setMenuListFilter",w)},f.setMenuListFilter=f.filterMenuItems,f.setMenuVisibility=w=>{a.emit("showMenu",w)},f.showMenu=f.setMenuVisibility,f.setPanelVisibility=(w,T)=>{a.emit("setMenuActive",w,T)},f.setMenuActive=f.setPanelVisibility,f.addContextMenuItems=w=>{console.warn("addContextMenuItems is not initialized yet. Please wait for LeitingBIM component to mount.",w)},f.insertContextMenu=f.addContextMenuItems,f.removeContextMenuItems=w=>{console.warn("removeContextMenuItems is not initialized yet.",w)},f.deleteContextMenu=f.removeContextMenuItems,f.closeContextMenu=()=>{console.warn("closeContextMenu is not initialized yet.")},f.hideContextMenu=f.closeContextMenu,f.getModelTree=()=>{const w=[],T=y.getMapTileset();return Object.keys(T).forEach(_=>{const F=T[_];if(F&&F.leiting&&F.leiting.tree){const U=F.leiting.tree;Array.isArray(U)?w.push(...U):w.push(U)}}),w},f.getTree=f.getModelTree,f.getAllComponentDetails=()=>{const w=y.getMapTileset(),T={},_=[];try{Object.keys(w).forEach(F=>{const U=w[F];if(!U||!U.leiting)return;const L=U.leiting,D=L.node,M=L.model.formData,k=L.box;if(!D||!D.nodeExtras)return;const B=L.model.modelId;T[B]=D.nodeExtras;const P=D.nodeExtras.element;if(!P)return;const V=k?k.center:{x:0,y:0,z:0};Object.values(P).forEach(G=>{if(G.box3)try{const R=l.Quaternion.fromAxisAngle(l.Cartesian3.UNIT_Z,l.Math.toRadians(M.totalRotation||0)),N=l.Matrix4.fromRotationTranslation(l.Matrix3.fromQuaternion(R),new l.Cartesian3(0,0,0)),O=l.Cartesian3.fromDegrees(M.longitude,M.latitude,M.height),z=l.Transforms.eastNorthUpToFixedFrame(O);l.Matrix4.multiply(z,N,z);const j=new l.Cartesian3(V.x,V.y,0),Z=new l.Cartesian3;l.Matrix4.multiplyByPoint(z,j,Z);const te=l.Cartographic.fromCartesian(Z),de=G.box3?.Center?.x||0,pe=G.box3?.Center?.y||0,Ae=G.box3?.Center?.z||0,Pe=new l.Cartesian3(-V.x+de,-V.y+pe,0+Ae),Ge=l.Matrix4.fromTranslation(Pe),Je=l.Matrix4.clone(Ge);l.Matrix4.multiply(N,Je,Je);const vt=l.Cartesian3.fromDegrees(te.longitude/Math.PI*180,te.latitude/Math.PI*180,M.height),ct=l.Transforms.eastNorthUpToFixedFrame(vt);l.Matrix4.multiply(ct,Je,ct);const Bt=l.Cartographic.fromCartesian(new l.Cartesian3(ct[12],ct[13],ct[14]));G.box3.cartographic={longitude:Bt.longitude/Math.PI*180,latitude:Bt.latitude/Math.PI*180,height:Bt.height};const W={id:G.uniqueId,billboard:[{theme:"Tag9999",position:[G.box3.cartographic.longitude,G.box3.cartographic.latitude,G.box3.cartographic.height],options:{text:G.name}}]};_.push(W)}catch(R){console.warn("Error calculating component position:",R)}})})}catch(F){console.error("getAllComponents error:",F)}return T},f.getAllComponents=f.getAllComponentDetails,f.getComponentInfoList=async w=>{if(!Array.isArray(w))return[];const T=y.getMapTileset(),_=[],F=[],U={};w.forEach(D=>{const k=T[D.modelId]?.leiting?.model?.dbName;k&&D.elementId&&F.push({dbName:k,elementId:D.elementId,modelId:D.modelId})});const L=new Set;if(w.forEach(D=>{const M=T[D.modelId],k=`${D.modelId}_${D.elementId}`;U[k]||M&&M.leiting&&!M.leiting?.node?.nodeExtras&&M.leiting.model?.nodeUrl&&L.add(D.modelId)}),L.size>0&&y._loadNodeDetailsForModel)try{const D=Array.from(L).map(M=>y._loadNodeDetailsForModel(M));await Promise.all(D)}catch(D){console.error("Failed to load node details in getComponentInfoList",D)}try{w.forEach(D=>{const M=D.modelId,k=D.elementId,B=T[M];if(!B||!B.leiting)return;const P=`${M}_${k}`,V=U[P];let G=null;if(V)G=V;else{const R=B.leiting.node?.nodeExtras?.element||B.leiting.node?.nodeExtras;R&&R[k]&&(G=JSON.parse(JSON.stringify(R[k])))}if(G){if(G.elementId=k,G.modelId=M,G.box3&&!G.box3.cartographic)try{const R=B.leiting,N=R.model.formData,O=R.box,z=O?O.center:{x:0,y:0,z:0},j=l.Quaternion.fromAxisAngle(l.Cartesian3.UNIT_Z,l.Math.toRadians(N.totalRotation||0)),Z=l.Matrix4.fromRotationTranslation(l.Matrix3.fromQuaternion(j),new l.Cartesian3(0,0,0)),te=l.Cartesian3.fromDegrees(N.longitude,N.latitude,N.height),de=l.Transforms.eastNorthUpToFixedFrame(te);l.Matrix4.multiply(de,Z,de);const pe=new l.Cartesian3(z.x,z.y,0),Ae=new l.Cartesian3;l.Matrix4.multiplyByPoint(de,pe,Ae);const Pe=l.Cartographic.fromCartesian(Ae),Ge=G.box3?.Center?.x||0,Je=G.box3?.Center?.y||0,vt=G.box3?.Center?.z||0,ct=new l.Cartesian3(-z.x+Ge,-z.y+Je,0+vt),Bt=l.Matrix4.fromTranslation(ct),W=l.Matrix4.clone(Bt);l.Matrix4.multiply(Z,W,W);const Y=l.Cartesian3.fromDegrees(Pe.longitude/Math.PI*180,Pe.latitude/Math.PI*180,N.height),ee=l.Transforms.eastNorthUpToFixedFrame(Y);l.Matrix4.multiply(ee,W,ee);const Ze=l.Cartographic.fromCartesian(new l.Cartesian3(ee[12],ee[13],ee[14]));G.box3.cartographic={longitude:Ze.longitude/Math.PI*180,latitude:Ze.latitude/Math.PI*180,height:Ze.height}}catch(R){console.warn("Error calculating component position:",R)}_.push(G)}})}catch(D){console.error("getComponentInfoList processing error:",D)}return _},f.getCptInfos=f.getComponentInfoList,f.baseCompt=m.baseCompt,f.setTeleportTarget=w=>{f.onSetTeleportTarget&&f.onSetTeleportTarget(w)},window.Methods=f}return{Cesium:l,viewer:p,methods:f,menuEvents:a}}function yc(i){return d.getCurrentScope()?(d.onScopeDispose(i),!0):!1}function Ac(i){return typeof i=="function"?i():d.unref(i)}const EB=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const xB=Object.prototype.toString,IB=i=>xB.call(i)==="[object Object]",SB=()=>{};function MB(i){return d.getCurrentInstance()}function mm(i,e=!0,t){MB()?d.onMounted(i,t):e?i():d.nextTick(i)}function ln(i){var e;const t=Ac(i);return(e=t?.$el)!=null?e:t}const ro=EB?window:void 0;function TB(...i){let e,t,n,s;if(typeof i[0]=="string"||Array.isArray(i[0])?([t,n,s]=i,e=ro):[e,t,n,s]=i,!e)return SB;Array.isArray(t)||(t=[t]),Array.isArray(n)||(n=[n]);const o=[],r=()=>{o.forEach(h=>h()),o.length=0},a=(h,u,p,f)=>(h.addEventListener(u,p,f),()=>h.removeEventListener(u,p,f)),l=d.watch(()=>[ln(e),Ac(s)],([h,u])=>{if(r(),!h)return;const p=IB(u)?{...u}:u;o.push(...t.flatMap(f=>n.map(m=>a(h,f,m,p))))},{immediate:!0,flush:"post"}),c=()=>{l(),r()};return yc(c),c}function BB(){const i=d.ref(!1),e=d.getCurrentInstance();return e&&d.onMounted(()=>{i.value=!0},e),i}function gm(i){const e=BB();return d.computed(()=>(e.value,!!i()))}function ym(i,e={}){const{window:t=ro}=e,n=gm(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const o=d.ref(!1),r=c=>{o.value=c.matches},a=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",r):s.removeListener(r))},l=d.watchEffect(()=>{n.value&&(a(),s=t.matchMedia(Ac(i)),"addEventListener"in s?s.addEventListener("change",r):s.addListener(r),o.value=s.matches)});return yc(()=>{l(),a(),s=void 0}),o}function _B(i,e,t={}){const{window:n=ro,...s}=t;let o;const r=gm(()=>n&&"ResizeObserver"in n),a=()=>{o&&(o.disconnect(),o=void 0)},l=d.computed(()=>Array.isArray(i)?i.map(u=>ln(u)):[ln(i)]),c=d.watch(l,u=>{if(a(),r.value&&n){o=new ResizeObserver(e);for(const p of u)p&&o.observe(p,s)}},{immediate:!0,flush:"post"}),h=()=>{a(),c()};return yc(h),{isSupported:r,stop:h}}function kB(i,e={width:0,height:0},t={}){const{window:n=ro,box:s="content-box"}=t,o=d.computed(()=>{var u,p;return(p=(u=ln(i))==null?void 0:u.namespaceURI)==null?void 0:p.includes("svg")}),r=d.ref(e.width),a=d.ref(e.height),{stop:l}=_B(i,([u])=>{const p=s==="border-box"?u.borderBoxSize:s==="content-box"?u.contentBoxSize:u.devicePixelContentBoxSize;if(n&&o.value){const f=ln(i);if(f){const m=f.getBoundingClientRect();r.value=m.width,a.value=m.height}}else if(p){const f=Array.isArray(p)?p:[p];r.value=f.reduce((m,{inlineSize:y})=>m+y,0),a.value=f.reduce((m,{blockSize:y})=>m+y,0)}else r.value=u.contentRect.width,a.value=u.contentRect.height},t);mm(()=>{const u=ln(i);u&&(r.value="offsetWidth"in u?u.offsetWidth:e.width,a.value="offsetHeight"in u?u.offsetHeight:e.height)});const c=d.watch(()=>ln(i),u=>{r.value=u?e.width:0,a.value=u?e.height:0});function h(){l(),c()}return{width:r,height:a,stop:h}}function Am(i={}){const{window:e=ro,initialWidth:t=Number.POSITIVE_INFINITY,initialHeight:n=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=i,r=d.ref(t),a=d.ref(n),l=()=>{e&&(o?(r.value=e.innerWidth,a.value=e.innerHeight):(r.value=e.document.documentElement.clientWidth,a.value=e.document.documentElement.clientHeight))};if(l(),mm(l),TB("resize",l,{passive:!0}),s){const c=ym("(orientation: portrait)");d.watch(c,()=>l())}return{width:r,height:a}}function Or(){const{width:i,height:e}=Am(),t=ym("(pointer: coarse)"),n=d.ref(!1),s=d.ref(!1),o=d.ref(!0),r=d.ref("other"),a=d.ref("other"),l=d.ref("medium"),c=d.ref("portrait"),h=()=>{const m=navigator.userAgent.toLowerCase(),y=/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i,g=navigator;if("userAgentData"in navigator&&g.userAgentData?.mobile!==void 0)return g.userAgentData.mobile||y.test(m);if(y.test(m))return!0;const A=/windows nt/i.test(m),v=/macintosh|mac os x/i.test(m)&&!/mobile/i.test(m),b=/linux/i.test(m)&&!/android/i.test(m);return!1},u=()=>{const m=navigator.userAgent.toLowerCase();n.value=h(),s.value=i.value>=768&&i.value<1024&&t.value,o.value=!n.value,/iphone|ipad|ipod/i.test(m)?r.value="ios":/android/i.test(m)?r.value="android":/win/i.test(m)?r.value="windows":/mac/i.test(m)?r.value="macos":/linux/i.test(m)&&(r.value="linux"),/safari/i.test(m)&&!/chrome/i.test(m)?a.value="safari":/chrome/i.test(m)?a.value="chrome":/firefox/i.test(m)?a.value="firefox":/edge/i.test(m)&&(a.value="edge"),i.value<576?l.value="small":i.value<1024?l.value="medium":l.value="large",c.value=i.value>e.value?"landscape":"portrait"},p=()=>{u()};d.onMounted(()=>{u(),window.addEventListener("resize",p),window.addEventListener("orientationchange",p)}),d.onUnmounted(()=>{window.removeEventListener("resize",p),window.removeEventListener("orientationchange",p)});const f=()=>({isMobile:n.value,isTablet:s.value,isDesktop:o.value,isTouchDevice:t.value,os:r.value,browser:a.value,screenSize:l.value,orientation:c.value});return{isMobile:d.readonly(n),isTablet:d.readonly(s),isDesktop:d.readonly(o),isTouchDevice:d.readonly(t),os:d.readonly(r),browser:d.readonly(a),screenSize:d.readonly(l),orientation:d.readonly(c),width:i,height:e,info:f}}const PB={class:"title"},DB={class:"actions"},NB={class:"card-body"},LB=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:300},minWidth:{type:Number,default:200},fullHeight:{type:Boolean,default:!1},align:{type:String,default:""}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=d.inject("leiting-theme",d.ref("dark")),{isMobile:s}=Or(),o=e,r=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:E=>{o("update:visible",E),o("update:open",E)}}),a=d.ref(null),l=d.ref(t.initialPosition?.x||0),c=d.ref(t.initialPosition?.y||0),h=d.ref(t.width);d.watch(()=>t.width,E=>{h.value=E});const u=d.ref(t.fullHeight?"100%":"600px");d.watch(()=>t.fullHeight,E=>{E?u.value="100%":u.value==="100%"&&(u.value="600px")});const{height:p}=Am();d.watch(p,()=>{t.fullHeight&&(u.value="100%")});const f=d.ref(!1),m=E=>{f.value=!0,E.preventDefault(),E.stopPropagation();const S=E.clientX,w=E.clientY,T=typeof h.value=="number"?h.value:a.value?.offsetWidth||0,_=typeof u.value=="number"?u.value:a.value?.offsetHeight||0,F=L=>{if(!f.value)return;L.preventDefault();const D=L.clientX-S,M=L.clientY-w,k=T+D,B=_+M;k>100&&(h.value=k),B>100&&(u.value=B)},U=()=>{f.value=!1,document.removeEventListener("mousemove",F),document.removeEventListener("mouseup",U)};document.addEventListener("mousemove",F),document.addEventListener("mouseup",U)},y=d.computed(()=>({left:`${l.value}px`,top:`${c.value}px`,width:typeof h.value=="number"?`${h.value}px`:h.value,height:typeof u.value=="number"?`${u.value}px`:u.value,position:"absolute",zIndex:2e3})),g=()=>{d.nextTick(()=>{if(a.value){const E=a.value.offsetParent||document.body,S=E.clientWidth,w=E.clientHeight,T=typeof h.value=="number"?h.value:a.value.offsetWidth||350,_=typeof u.value=="number"?u.value:a.value.offsetHeight||600;l.value+T>S&&(l.value=Math.max(0,S-T-20)),c.value+_>w&&(c.value=Math.max(0,w-_-20)),l.value<0&&(l.value=0),c.value<0&&(c.value=0)}})},A=d.ref(!1),v=E=>{if(E.target.closest(".close-btn")||E.target.closest(".actions"))return;A.value=!0,E.preventDefault(),E.stopPropagation();const S=E.clientX,w=E.clientY,T=l.value,_=c.value,F=L=>{if(!A.value)return;L.preventDefault();const D=L.clientX-S,M=L.clientY-w;l.value=T+D,c.value=_+M},U=()=>{A.value=!1,document.removeEventListener("mousemove",F),document.removeEventListener("mouseup",U),g()};document.addEventListener("mousemove",F),document.addEventListener("mouseup",U)},b=()=>{d.nextTick(()=>{if(t.align&&a.value){const E=a.value.offsetParent||document.body,S=typeof h.value=="number"?h.value:a.value.offsetWidth||350;t.align==="right"?l.value=Math.max(0,E.clientWidth-S-20):t.align==="center"&&(l.value=Math.max(0,(E.clientWidth-S)/2))}g()})};d.onMounted(()=>{t.align?b():g()}),d.watch(r,E=>{E&&(t.align?b():g())});const C=()=>{r.value=!1,o("close")},x=E=>{if(E.target.closest(".close-btn")||E.target.closest(".actions")||E.touches.length!==1)return;A.value=!0,E.preventDefault(),E.stopPropagation();const S=E.touches[0],w=S?.clientX??0,T=S?.clientY??0,_=l.value,F=c.value,U=D=>{if(!A.value||D.touches.length!==1)return;D.preventDefault();const M=D.touches[0],k=(M?.clientX??0)-w,B=(M?.clientY??0)-T;l.value=_+k,c.value=F+B},L=()=>{A.value=!1,document.removeEventListener("touchmove",U),document.removeEventListener("touchend",L),g()};document.addEventListener("touchmove",U,{passive:!1}),document.addEventListener("touchend",L)},I=E=>{if(E.touches.length!==1)return;f.value=!0,E.preventDefault(),E.stopPropagation();const S=E.touches[0],w=S?.clientX??0,T=S?.clientY??0,_=typeof h.value=="number"?h.value:a.value?.offsetWidth||0,F=typeof u.value=="number"?u.value:a.value?.offsetHeight||0,U=D=>{if(!f.value||D.touches.length!==1)return;D.preventDefault();const M=D.touches[0],k=(M?.clientX??0)-w,B=(M?.clientY??0)-T,P=_+k,V=F+B;P>100&&(h.value=P),V>100&&(u.value=V)},L=()=>{f.value=!1,document.removeEventListener("touchmove",U),document.removeEventListener("touchend",L)};document.addEventListener("touchmove",U,{passive:!1}),document.addEventListener("touchend",L)};return(E,S)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{ref_key:"cardRef",ref:a,class:d.normalizeClass(["draggable-card leiting-scroll",["leiting-theme-"+d.unref(n)]]),style:d.normalizeStyle(y.value)},[d.createElementVNode("div",{ref:"headerRef",class:"card-header",onMousedown:v,onTouchstart:x},[d.createElementVNode("span",PB,d.toDisplayString(i.title),1),d.createElementVNode("div",DB,[d.renderSlot(E.$slots,"header-extra",{},void 0,!0),d.createElementVNode("span",{class:"close-btn",onClick:C},"×")])],544),d.createElementVNode("div",NB,[d.renderSlot(E.$slots,"default",{},void 0,!0)]),d.unref(s)?d.createCommentVNode("",!0):(d.openBlock(),d.createElementBlock("div",{key:0,class:"resize-handle",onMousedown:m,onTouchstart:I},[...S[0]||(S[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,r.value]])}}),Be=(i,e)=>{const t=i.__vccOpts||i;for(const[n,s]of e)t[n]=s;return t},gt=Be(LB,[["__scopeId","data-v-b158afe1"]]);function vm(i){const e=d.ref([]),t=d.ref([]),n=d.ref([]),s=d.ref(""),o=d.ref(!0);d.watch(()=>d.unref(i),u=>{if(!u||u.length===0)return;const p=[],f=(g,A)=>{g.forEach(v=>{const b=v.id||v.key||v.$id,C=v.modelId||A;C&&(v.modelId=C),b&&p.push(b),v.children&&v.children.length>0&&f(v.children,C)})};f(u);const m=new Set(n.value);let y=!1;p.forEach(g=>{m.has(g)||(m.add(g),y=!0)}),y&&(n.value=Array.from(m))},{immediate:!0,deep:!0});const r=d.computed(()=>{const u=d.unref(i);if(!u)return[];const p=[],f=(m,y)=>{m.forEach(g=>{const A=g.id||g.key||g.$id,v=g.name||g.title;p.push({key:A,title:v,parentKey:y}),g.children&&g.children.length>0&&f(g.children,A)})};return f(u),p}),a=u=>{e.value=u,o.value=!1},l=u=>{n.value=u},c=u=>{t.value=u},h=u=>r.value.find(f=>f.key===u)?.parentKey;return d.watch(s,u=>{if(!u)return;const f=r.value.filter(y=>y.title&&y.title.toLowerCase().includes(u.toLowerCase())).map(y=>y.parentKey),m=new Set;f.forEach(y=>{let g=y;for(;g;)m.add(g),g=h(g)}),e.value=[...m],o.value=!0}),{expandedKeys:e,selectedKeys:t,checkedKeys:n,searchValue:s,autoExpandParent:o,onExpand:a,onCheck:l,onSelect:c}}const RB={class:"search-box"},FB={key:0},OB={style:{color:"#f50"}},GB={key:1},UB={key:1,class:"empty-tip"},Gr=Be(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(i,{emit:e}){const t=re.Input.Search,n=re.Tree,s=i,o=e,r=d.inject("leiting-theme",d.ref("dark")),a=d.inject("leitingMethods"),l=T=>{a?.value?.onSearchComponent&&a.value.onSearchComponent(T)},c=d.computed({get:()=>s.open!==void 0?s.open:s.visible,set:T=>{o("update:visible",T),o("update:open",T)}}),h=d.ref(null),{height:u}=kB(h),p=d.computed(()=>u.value||300),f=d.ref({children:"children",title:"name",key:"id"}),m=d.ref([]),{expandedKeys:y,selectedKeys:g,checkedKeys:A,searchValue:v,autoExpandParent:b}=vm(d.toRef(s,"treeData")),C=(T,_)=>{if(!_)return T;const F=_.toLowerCase();return T.reduce((U,L)=>{const M=(L.name||L.title||"").toLowerCase().includes(F);if(L.children&&L.children.length>0){const k=C(L.children,_);(k.length>0||M)&&U.push({...L,children:k})}else M&&U.push({...L});return U},[])};d.watch([()=>s.treeData,v],([T,_])=>{T?m.value=C(T,_||""):m.value=[]},{immediate:!0,deep:!0});const x=T=>{y.value=T,b.value=!1},I=T=>{const _=[],F=U=>{if(!U.children||U.children.length===0){const D=U.element_Id;U.modelId&&D&&_.push({modelId:U.modelId,elementId:D})}else U.children.forEach(F)};return F(T),_},E=(T,_)=>{A.value=T,o("check",T,_);const F=[],U=new Set(T.map(D=>String(D))),L=D=>{for(let M=0;M<D.length;M++){const k=D[M];if(!k.children||k.children.length===0){if(!U.has(String(k.id))){const V=k.element_Id;k.modelId&&V&&F.push({modelId:k.modelId,elementId:V,show:!1})}}else k.children&&L(k.children)}};s.treeData&&L(s.treeData),a?.value?.setComponentVisibility&&a.value.setComponentVisibility(F),a?.value?.onTreeCheck&&a.value.onTreeCheck(T,_)},S=(T,_)=>{if(g.value=T,o("select",T,_),_.selected){const F=I(_.node);F.length>0&&a?.value?.flyToObjects&&a.value.flyToObjects({selectCpts:F})}a?.value?.onTreeSelect&&a.value.onTreeSelect(T,_)},w=()=>{o("update:visible",!1),o("close")};return(T,_)=>(d.openBlock(),d.createBlock(gt,{visible:c.value,"onUpdate:visible":_[1]||(_[1]=F=>c.value=F),title:i.title,"initial-position":i.initialPosition,"full-height":i.fullHeight,onClose:w},{default:d.withCtx(()=>[d.createElementVNode("div",{class:d.normalizeClass(["leiting-tree-container",[`theme-${d.unref(r)}`]])},[d.createElementVNode("div",RB,[d.createVNode(d.unref(t),{value:d.unref(v),"onUpdate:value":_[0]||(_[0]=F=>d.isRef(v)?v.value=F:null),placeholder:"搜索构件","allow-clear":"","enter-button":"",onSearch:l},null,8,["value"])]),d.createElementVNode("div",{class:"tree-wrapper",ref_key:"treeWrapperRef",ref:h},[m.value&&m.value.length?(d.openBlock(),d.createBlock(d.unref(n),{key:0,"tree-data":m.value,"field-names":f.value,height:p.value,"expanded-keys":d.unref(y),"auto-expand-parent":d.unref(b),"selected-keys":d.unref(g),"checked-keys":d.unref(A),checkable:"","block-node":"",onExpand:x,onSelect:S,onCheck:E},{title:d.withCtx(({name:F,title:U})=>[(F||U)&&d.unref(v)&&(F||U).toLowerCase().indexOf(d.unref(v).toLowerCase())>-1?(d.openBlock(),d.createElementBlock("span",FB,[d.createTextVNode(d.toDisplayString((F||U).substr(0,(F||U).toLowerCase().indexOf(d.unref(v).toLowerCase())))+" ",1),d.createElementVNode("span",OB,d.toDisplayString(d.unref(v)),1),d.createTextVNode(" "+d.toDisplayString((F||U).substr((F||U).toLowerCase().indexOf(d.unref(v).toLowerCase())+d.unref(v).length)),1)])):(d.openBlock(),d.createElementBlock("span",GB,d.toDisplayString(F||U),1))]),_:1},8,["tree-data","field-names","height","expanded-keys","auto-expand-parent","selected-keys","checked-keys"])):(d.openBlock(),d.createElementBlock("div",UB,"暂无数据"))],512)],2)]),_:1},8,["visible","title","initial-position","full-height"]))}}),[["__scopeId","data-v-3748c20d"]]),VB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",Ur="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAERSURBVDhPvZTrEYIwEISTCrQD6EA7gA60AylBK1Aq0A7ECrQDoQPsADrACuLuTMJkIiHxjzezgyR7H3d5KJVSqRAigcaQUjYYX2JgZY/P/O4lEgYYFo7pgPcc2kSCBoIUzDeo0klPPEsNYlX7AKzA/M6ASrRzYoIGG5DAOCvzBvzMOxqQazSgLLI1QdAW5jWpUAPV0AVKIc7FRCuNy7RkWozJtj1BED7ANbpDXHhffFXUwUnZwRYp7qw7Rx8/lLkV9R4QD2w1A8pjW3sA4h5au+pXEBS76P8D6Ut9/nXXaiRQdnBXqBfEC+4GdzSxW5v6F7CTeHnbCVCBsWIE+RYVrdF4DSz6OwgiADDexbmT3X0A4fSDfDjUugcAAAAASUVORK5CYII=",QB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAFESURBVDhPlZMNEcIwDIVXBQwFgAJAAcMBDgAFIGE4wAHgABSwOdgcIAEUjPd6aS/rfhi7y12bJl9f0sxEf3xVVV0RPoetjTFvnWqGcgSylfgihA0CKcgJgBfsAqMiKiM0+gkKlCyZCN8uhPWCFOSBxARWORU4W2CdeV9XjxSEJcwkjokTqBpzjxjCn7CyVRECzjg8wHLYCmabK7CplBcLhMr2DZCqP0dCovYZ9hYGXx1izLUGUkkfxI/sTQiCf4N1zLWAWCKV2nP6PEhB2Ngd7B4GC4SJnCcP8SAFoc/Ph/TqjVvTPogFKUiJ/VGU+GdmUAA5ObA7cyC+iPt/MjUfKRL4emyuK+cGH8tufFRUHywZ+RYlnRDdIwfzLzVUibtQv1oNhoAExtfpVdIAiQIOWiY9o2sQxJemOydTS1jR1di2Zn8B8f27apou9kMAAAAASUVORK5CYII=",zB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAHDSURBVDhPlZOxL0NRFIe9ECubhehoIIjJ1HYwCkIiJpUQEkN1YZBobU0kFKNI3iTGYrDRv0BIhLXCYpCwiO35fs25zWva98JNvpz37j33d8+551yvLWIEQXDG0izMe55XjvJz816MUJG1LVuvYJcQrEb5xwkV2JSHGfAhgBJiu63E4oSUzpRtusa+wBooKkWnKOujQYh7SbCShQx0m9cpds4iOseOw7BFmUPwU341IQT2MaOQgi9QND+wiqNnBxT4X7SIbrAqhNI9wiUvJ+W8A99wDEWdwrw25iVkkenAEb5LkIQPuIMJWJGQoriFd+iBCkhc8zUhfJSm7mva5l3aadubDgtpMgGKpB/eoBfuQZFoPNhBj9gTaC3kKkEEGXPswF7Y5rLro1AW8UI6GmelmAzfkUWlNaWt6/iT0DOOA5bqoSuzHfIvofATqSJQb8KoiJbtPi6x2dA9FPjXE1F/uZKrv3IwCFcNqVmoPlal7QJ9q/wZCbk7Ioo9/tehE9q1r0nIxNQbG4YEXdkVjQ5J2OZXbB88gVrgQIJNj9aaT4LboPK7J6O0Ktb1KYtc/aYxGff6h3AYY6Nvzk2GQ1WQTVj4BST70jYaqceXAAAAAElFTkSuQmCC",HB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADhSURBVHgBvVOBEYIwDEw9B2ADO4IjuIEjwAa6Aa7ABMAEuIIjOIFsUDao37vgxVZbBI+/+0tI0+fJBaIIrLUFaMAHmNNcsMAIE+vdJLQykQ+0wFHBrsyiT/sL2I1DDTac/+4Klzobov7WHxt29qGmaYaQnlhLCmUTa2l4C2ljvamFlEvY0xpCW/kA924GblfGWciZaJyXQvSmlOoDITSdXQBbcA8eKfy/nHDFeY470FIX8tzUIu84FmLWuTzz7yhRLPm54dKJ4+A5uoJ3HgHBUfUmxGIa4QDuKA4n3kLk9ZInw0qu5b1R1aYAAAAASUVORK5CYII=",YB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADFSURBVDhPxVPBDYMwDIwnKJu0G9ANYJMyQrsBbNIRGAE2gEnSO6mpIMJxkBC1lEds52zfOeK9b51zV5wte4lIr8RWbgGQh2fGmaIHJe4EetKPtDpRcA5AvwcB7FtgCcTOH0p3YzaQNd75QBiVXJG3LRtCRyQ6Jvsekd3gTsJVoDcihZLQQjXGTRMzIzPhOCCQyNYvSuEue7Qdm02yK0u1nM2m/FQyKb8JZHH+l81Ofdpdm82tvikjThyNlbSEBvIPFj+MfwA76qSYUG3g9QAAAABJRU5ErkJggg==",bm="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEcSURBVDhPrZSNDYIwEIXpBOIGjMAIOIE4AbgBGwAbOIJu4Aa4gW4gI+gE9b3mjjSmibSR5ALX3H33W4y1Ns+yrIe0EH7HPC8YnyGjAegkEB5cYyiwrdWXIEc1xnSREGcuiTQEWeg7gG4+CMcl9ALnLkvogwScv+wq6FMQJJCJDgBtBcSAI3QClwe2YZAHcY2Ho4kGAVLA6U5/CEvdp4KYhesFhBPpCZIAz6jStHhproJcHyAHbb5nF+6RZ8CsGslIQaHp/gSxRzlApU4GugPxNuDN/eNarAJxapUPgm8rQ9C1SAI9AOGiHhGApSdnRN8FshbEiLwiLI1rMUM6zSQ0tX9c2lp/Iw0iMIPU38iFIN1mTmOjKa98vyWB4QM5XQnvsbFsyAAAAABJRU5ErkJggg==",$B="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAGPSURBVDhPrZT9UQIxEMUvFSgViBUoFQgVABV4VqBW4FmBUIFQgZRwVqBU4HUAVHC+X2aXycQw/sPOvLncZvdlv5JQFaTv+1upp8IyhLDHRLpLfe6FrXRt7hZShYyH+n8RauGAv/AkQNYIHICshFcRdu6fE/kGRN/mQGTIpzAzMoh6EV2fIsJ5IwNOj2IpVZ6i6difSecRVnlELZHIgHROisgXRCa78Z+IrMBf2pjLYJNENGSd1kO2pPghjKQniyqY8lFr2NfaqC18wn7nZCMlWg7xLq70TxfRLyHqtABN2lbp40mSSCzBcSebif1TPyKjDBcQ0eJJRkIUpHkMPUlnkBU+pnlWItL6ERgw8o1iqRHtgzAUGNRD2qmkvgMvNnneUQcZ4ggR6VGXG+OOA1koNvrFcY7+af++VJe0hucfyKQu+RWJc+SDZ3aNvlPpRl7T0qXdafNZYPDehLEZt/rOBR9U8QSaEKX0jHAaE4tshVrgLeJ+Xdl6rS8D3BWJXKnCEwWXEuco9grQ3bb0sP0Cn8/nPm/SMRQAAAAASUVORK5CYII=",jB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACDSURBVHgB1ZFhDYAgEIWfzgBGIIINpIEViGAkG2gEbWADjWADfMw/iDgUfji/7e3gxt3uHsDXZFrrlrFBHJNpsPAgEEmORArn3lFroEZQCjcTbAhzepPsgbuCgn8FBWvsUAMfFR5OIPGS5G80JkrG2sopHKbO1BCoHy8ZNhRUT5X4BTu6qyNSwwCiMAAAAABJRU5ErkJggg==",WB={class:"menu-container"},qB=["onClick","title"],KB={class:"menu-icon"},XB=["src","alt"],JB={key:3,style:{"font-size":"12px"}},ZB={key:0,class:"sub-menu"},e3=["onClick"],ao=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(i,{emit:e}){const t=i,n=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(()=>n.value||n),a=d.computed(()=>s.value||s),l=d.ref([{ID:"home",title:"主视角",src:VB,key:"homeView"},{ID:"tree",title:"目录树",src:Ur,key:"componentTree"},{ID:"cadLayer",title:"图层",src:Ur,key:"cadLayer"},{ID:"gisCadPosition",title:"GIS调整",src:bm,key:"gisCadPosition"},{ID:"measure",title:"量算",src:QB,key:"measurement"},{ID:"section",title:"剖切",src:zB,key:"section"},{ID:"roam",title:"人物漫游",src:HB,key:"roam"},{ID:"info",title:"构件信息",src:YB,key:"componentInfo"},{ID:"cadPosition",title:"调整位置",src:bm,key:"cadPosition"},{ID:"annotation",title:"标注",src:jB,key:"annotation"},{ID:"setting",title:"场景配置",src:$B,key:"setting"}]),c=d.ref([]),h=d.ref([...t.activeIds]);d.watch(()=>t.activeIds,C=>{h.value=[...C]},{deep:!0});const u=d.computed(()=>t.visible);o.value&&o.value.menuEvents&&(o.value.menuEvents.on("setMenuListFilter",C=>{c.value=C}),o.value.menuEvents.on("setMenuActive",(C,x)=>{x?h.value.includes(C)||h.value.push(C):h.value=h.value.filter(I=>I!==C)}));const p=d.computed(()=>{let C=l.value;if(t.is2d){const x=["homeView","measurement","cadLayer","gisCadPosition","annotation"];C=C.filter(I=>I.key&&x.includes(I.key))}else{const x=["cadLayer","cadPosition","gisCadPosition","annotation"];C=C.filter(I=>!I.key||!x.includes(I.key))}if(c.value.length>0&&(C=C.filter(x=>!x.key||!c.value.includes(x.key))),t.customItems&&t.customItems.length>0){const x=t.customItems.map(I=>({...I,key:I.ID,src:I.src||I.icon}));return[...C,...x]}return C}),f=e,m=C=>{const x=["homeView"];if(C.key&&x.includes(C.key))h.value.includes(C.ID)||(h.value.push(C.ID),setTimeout(()=>{const E=h.value.indexOf(C.ID);E>-1&&h.value.splice(E,1)},1e3));else{const E=h.value.indexOf(C.ID);E>-1?h.value.splice(E,1):h.value.push(C.ID)}const I=h.value.includes(C.ID);C.func&&C.func(C),C.key&&f("action",C.key,I)},y=C=>{c.value=C},g=C=>{},A=(C,x)=>{const I=p.value.find(E=>E.ID===C||E.key===C);if(I){const E=h.value.indexOf(I.ID);x&&E===-1?h.value.push(I.ID):!x&&E>-1&&h.value.splice(E,1)}};let v=null;const b=()=>{o.value?.menuEvents&&(v&&(v.off("setMenuListFilter",y),v.off("showMenu",g),v.off("setMenuActive",A)),v=o.value.menuEvents,v.on("setMenuListFilter",y),v.on("showMenu",g),v.on("setMenuActive",A))};return d.onMounted(()=>{b()}),d.onUnmounted(()=>{v&&(v.off("setMenuListFilter",y),v.off("showMenu",g),v.off("setMenuActive",A))}),d.watch(o,()=>{b()},{deep:!0}),(C,x)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{class:d.normalizeClass(["leiting-menu-wrapper",["leiting-theme-"+r.value,"size-"+a.value]])},[d.createElementVNode("div",WB,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(p.value,I=>(d.openBlock(),d.createElementBlock("div",{key:I.ID,class:d.normalizeClass(["menu-item",{active:h.value.includes(I.ID)}]),onClick:E=>m(I),title:I.title},[d.createElementVNode("div",KB,[I.src?(d.openBlock(),d.createElementBlock("img",{key:0,src:I.src,alt:I.title},null,8,XB)):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",JB,d.toDisplayString(I.title.substring(0,2)),1))]),I.children&&I.children.length>0?(d.openBlock(),d.createElementBlock("div",ZB,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(I.children,E=>(d.openBlock(),d.createElementBlock("div",{key:E.ID,class:d.normalizeClass(["sub-menu-item",{active:h.value.includes(E.ID)}]),onClick:d.withModifiers(S=>m(E),["stop"])},d.toDisplayString(E.title),11,e3))),128))])):d.createCommentVNode("",!0)],10,qB))),128))])],2)),[[d.vShow,u.value]])}}),t3={class:"leiting-section-content"},i3={class:"section-form-item"},n3={class:"radio-group"},s3={class:"section-form-item"},o3={class:"switch-container"},r3={class:"switch"},a3={class:"status-text"},l3={class:"section-form-item slider-item"},c3={class:"slider-wrapper"},d3={class:"section-form-item slider-item"},h3={class:"slider-wrapper"},u3={class:"section-form-item slider-item"},f3={class:"slider-wrapper"},p3={class:"section-form-item table-item"},m3={class:"model-table-container"},g3={class:"model-table"},y3={width:"40"},A3=["checked"],v3=["onClick"],b3=["value"],w3={class:"model-name"},lo=Be(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(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:L=>{n("update:visible",L),n("update:open",L)}}),r=d.ref("Box"),a=d.ref(!1),l=d.ref([]),c=d.ref([]),h=d.computed(()=>c.value.length===0?!1:c.value.every(L=>l.value.includes(L.modelId))),u=L=>{L.target.checked?l.value=c.value.map(M=>M.modelId):l.value=[],w()},p=d.ref([-10,10]),f=d.ref([-10,10]),m=d.ref([-10,10]),y=d.ref([-100,100]),g=d.ref([-100,100]),A=d.ref([-100,100]);let v=!1;const b=L=>{v=!0;const{targetZPlus:D,targetZMinus:M,targetXPlus:k,targetXMinus:B,targetYPlus:P,targetYMinus:V}=L;m.value=[-M,D],p.value=[-B,k],f.value=[-V,P],setTimeout(()=>{v=!1},100)},C=()=>{v||l.value.length===0||!s?.value?.updateSectionRange||s.value.updateSectionRange({targetZPlus:m.value[1],targetZMinus:-m.value[0],targetXPlus:p.value[1],targetXMinus:-p.value[0],targetYPlus:f.value[1],targetYMinus:-f.value[0]})},x=()=>{s?.value?.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(a.value)},I=L=>{if(!s?.value?.getMapTileset||!s?.value?.openSection)return;const M=s.value.getMapTileset()[L];if(M&&M.leiting?.box){const{min:k,max:B}=M.leiting.box,P=(B.x-k.x)/2,V=(B.y-k.y)/2,G=(B.z-k.z)/2;l.value.length<=1&&(y.value=[-P*2,P*2],g.value=[-V*2,V*2],A.value=[-G*2,G*2],p.value=[-P,P],f.value=[-V,V],m.value=[-G,G],s.value.updateSectionRange&&s.value.updateSectionRange({targetZPlus:G,targetZMinus:G,targetXPlus:P,targetXMinus:P,targetYPlus:V,targetYMinus:V})),s.value.openSection(L,{moveCallBack:b}),s.value.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(a.value)}},E=L=>{const D=l.value.indexOf(L);D>-1?l.value.splice(D,1):l.value.push(L),w()};let S=[];const w=()=>{const L=l.value.filter(M=>!S.includes(M)),D=S.filter(M=>!l.value.includes(M));L.forEach(M=>I(M)),D.forEach(M=>{s?.value?.closeSection&&s.value.closeSection(M)}),S=[...l.value]},T=()=>{},_=()=>{o.value=!1,n("close")},F=()=>{a.value=!1,l.value=[],S=[],p.value=[-10,10],f.value=[-10,10],m.value=[-10,10],y.value=[-100,100],g.value=[-100,100],A.value=[-100,100]};d.watch(()=>t.visible,L=>{L?U():(s?.value?.closeSection&&s.value.closeSection(),F())});const U=()=>{s?.value&&typeof s.value.getModelList=="function"&&(c.value=s.value.getModelList()||[],c.value.length>0&&l.value.length===0&&(l.value=[c.value[0].modelId],S=[...l.value]),t.visible&&l.value.length>0&&(a.value=!0,l.value.forEach(L=>I(L))))};return d.watch(()=>s?.value,()=>{U()},{immediate:!0,deep:!0}),d.onMounted(()=>{U()}),(L,D)=>(d.openBlock(),d.createBlock(gt,{visible:o.value,title:"剖切分析","full-height":i.fullHeight,"onUpdate:visible":_},{default:d.withCtx(()=>[d.createElementVNode("div",t3,[d.createElementVNode("div",i3,[D[8]||(D[8]=d.createElementVNode("span",{class:"label"},"模式",-1)),d.createElementVNode("div",n3,[d.createElementVNode("label",{class:d.normalizeClass(["radio-item",{active:r.value==="Box"}])},[d.withDirectives(d.createElementVNode("input",{type:"radio",value:"Box","onUpdate:modelValue":D[0]||(D[0]=M=>r.value=M),onChange:T},null,544),[[d.vModelRadio,r.value]]),D[7]||(D[7]=d.createTextVNode(" 剖切盒 ",-1))],2)])]),d.createElementVNode("div",s3,[D[10]||(D[10]=d.createElementVNode("span",{class:"label"},"显示",-1)),d.createElementVNode("div",o3,[d.createElementVNode("label",r3,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":D[1]||(D[1]=M=>a.value=M),onChange:x},null,544),[[d.vModelCheckbox,a.value]]),D[9]||(D[9]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",a3,d.toDisplayString(a.value?"显示":"隐藏"),1)])]),d.createElementVNode("div",l3,[D[11]||(D[11]=d.createElementVNode("span",{class:"label"},"X 轴",-1)),d.createElementVNode("div",c3,[d.createVNode(d.unref(re.Slider),{value:p.value,"onUpdate:value":D[2]||(D[2]=M=>p.value=M),range:"",min:y.value[0],max:y.value[1],step:.1,onChange:C},null,8,["value","min","max"])])]),d.createElementVNode("div",d3,[D[12]||(D[12]=d.createElementVNode("span",{class:"label"},"Y 轴",-1)),d.createElementVNode("div",h3,[d.createVNode(d.unref(re.Slider),{value:f.value,"onUpdate:value":D[3]||(D[3]=M=>f.value=M),range:"",min:g.value[0],max:g.value[1],step:.1,onChange:C},null,8,["value","min","max"])])]),d.createElementVNode("div",u3,[D[13]||(D[13]=d.createElementVNode("span",{class:"label"},"Z 轴",-1)),d.createElementVNode("div",f3,[d.createVNode(d.unref(re.Slider),{value:m.value,"onUpdate:value":D[4]||(D[4]=M=>m.value=M),range:"",min:A.value[0],max:A.value[1],step:.1,onChange:C},null,8,["value","min","max"])])]),d.createElementVNode("div",p3,[D[15]||(D[15]=d.createElementVNode("span",{class:"label"},"模型",-1)),d.createElementVNode("div",m3,[d.createElementVNode("table",g3,[d.createElementVNode("thead",null,[d.createElementVNode("tr",null,[d.createElementVNode("th",y3,[d.createElementVNode("input",{type:"checkbox",checked:h.value,onChange:u},null,40,A3)]),D[14]||(D[14]=d.createElementVNode("th",null,"名称",-1))])]),d.createElementVNode("tbody",null,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(c.value,M=>(d.openBlock(),d.createElementBlock("tr",{key:M.modelId,class:d.normalizeClass({selected:l.value.includes(M.modelId)}),onClick:k=>E(M.modelId)},[d.createElementVNode("td",null,[d.withDirectives(d.createElementVNode("input",{type:"checkbox",value:M.modelId,"onUpdate:modelValue":D[5]||(D[5]=k=>l.value=k),onClick:D[6]||(D[6]=d.withModifiers(()=>{},["stop"])),onChange:w},null,40,b3),[[d.vModelCheckbox,l.value]])]),d.createElementVNode("td",w3,d.toDisplayString(M.modelName),1)],10,v3))),128))])])])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-ee4d9a12"]]),C3={class:"leiting-player-content"},E3={class:"player-form-item"},x3={class:"switch-container"},I3={class:"switch"},S3={class:"status-text"},M3={class:"player-form-item"},T3={class:"switch-container"},B3={class:"switch"},_3={class:"status-text"},k3={class:"player-form-item"},P3={class:"switch-container"},D3={class:"switch"},N3={class:"status-text"},L3={class:"player-form-item slider-item"},R3={class:"slider-wrapper"},F3={class:"value-text"},O3={class:"instructions"},G3={class:"key-map"},U3={class:"key-row"},V3={class:"key-row"},Q3={class:"key-row"},z3={class:"key-row"},H3={class:"key-row"},Y3={class:"key-row"},co=Be(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(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref(!1),r=d.ref(!1),a=d.ref(!0),l=d.ref(5),c=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:I=>{n("update:visible",I),n("update:open",I)}}),h=d.ref(null),u=d.ref(null),p=d.ref(null),f=d.ref(null),m=d.ref(null),y=d.ref(null),g=()=>{o.value?v():b()},A=()=>{s?.value?.setPlayerParams&&s.value.setPlayerParams({gravityTest:r.value,collisionTest:a.value})},v=async()=>{s?.value?.openPlayer&&(await s.value.openPlayer(),s.value.setPlayerSpeed&&s.value.setPlayerSpeed(l.value),A(),s.value.bindPlayerUiKeys&&(await d.nextTick(),s.value.bindPlayerUiKeys({moveFront:h.value,moveBack:u.value,moveLeft:p.value,moveRight:f.value,moveUp:m.value,moveDown:y.value})))},b=()=>{s?.value?.closePlayer&&s.value.closePlayer()},C=()=>{s?.value?.setPlayerSpeed&&s.value.setPlayerSpeed(l.value)},x=()=>{c.value=!1,n("close")};return d.watch(()=>t.visible,I=>{I?(o.value=!0,s?.value?v():setTimeout(()=>{s?.value&&v()},100)):o.value&&(o.value=!1,b())},{immediate:!0}),(I,E)=>(d.openBlock(),d.createBlock(gt,{title:i.title,visible:c.value,"full-height":i.fullHeight,"onUpdate:visible":x},{default:d.withCtx(()=>[d.createElementVNode("div",C3,[d.createElementVNode("div",E3,[E[5]||(E[5]=d.createElementVNode("span",{class:"label"},"启用",-1)),d.createElementVNode("div",x3,[d.createElementVNode("label",I3,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":E[0]||(E[0]=S=>o.value=S),onChange:g},null,544),[[d.vModelCheckbox,o.value]]),E[4]||(E[4]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",S3,d.toDisplayString(o.value?"开启":"关闭"),1)])]),d.createElementVNode("div",M3,[E[7]||(E[7]=d.createElementVNode("span",{class:"label"},"重力",-1)),d.createElementVNode("div",T3,[d.createElementVNode("label",B3,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":E[1]||(E[1]=S=>r.value=S),onChange:A},null,544),[[d.vModelCheckbox,r.value]]),E[6]||(E[6]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",_3,d.toDisplayString(r.value?"开启":"关闭"),1)])]),d.createElementVNode("div",k3,[E[9]||(E[9]=d.createElementVNode("span",{class:"label"},"碰撞",-1)),d.createElementVNode("div",P3,[d.createElementVNode("label",D3,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":E[2]||(E[2]=S=>a.value=S),onChange:A},null,544),[[d.vModelCheckbox,a.value]]),E[8]||(E[8]=d.createElementVNode("span",{class:"slider round"},null,-1))]),d.createElementVNode("span",N3,d.toDisplayString(a.value?"开启":"关闭"),1)])]),d.createElementVNode("div",L3,[E[10]||(E[10]=d.createElementVNode("span",{class:"label"},"速度",-1)),d.createElementVNode("div",R3,[d.createVNode(d.unref(re.Slider),{value:l.value,"onUpdate:value":E[3]||(E[3]=S=>l.value=S),min:1,max:10,step:1,onChange:C},null,8,["value"])]),d.createElementVNode("span",F3,d.toDisplayString(l.value),1)]),E[19]||(E[19]=d.createElementVNode("div",{class:"divider"},null,-1)),d.createElementVNode("div",O3,[E[18]||(E[18]=d.createElementVNode("div",{class:"instruction-title"},"操作说明",-1)),d.createElementVNode("div",G3,[d.createElementVNode("div",U3,[d.createElementVNode("span",{class:"key",ref_key:"btnFront",ref:h},"W",512),E[11]||(E[11]=d.createTextVNode(" 前进 ",-1))]),d.createElementVNode("div",V3,[d.createElementVNode("span",{class:"key",ref_key:"btnBack",ref:u},"S",512),E[12]||(E[12]=d.createTextVNode(" 后退 ",-1))]),d.createElementVNode("div",Q3,[d.createElementVNode("span",{class:"key",ref_key:"btnLeft",ref:p},"A",512),E[13]||(E[13]=d.createTextVNode(" 左移 ",-1))]),d.createElementVNode("div",z3,[d.createElementVNode("span",{class:"key",ref_key:"btnRight",ref:f},"D",512),E[14]||(E[14]=d.createTextVNode(" 右移 ",-1))]),d.createElementVNode("div",H3,[d.createElementVNode("span",{class:"key",ref_key:"btnUp",ref:m},"Q",512),E[15]||(E[15]=d.createTextVNode(" 上升 ",-1))]),d.createElementVNode("div",Y3,[d.createElementVNode("span",{class:"key",ref_key:"btnDown",ref:y},"E",512),E[16]||(E[16]=d.createTextVNode(" 下降 ",-1))]),E[17]||(E[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-ff3f266e"]]),$3={class:"info-content"},j3={key:0,class:"component-title"},ho=Be(d.defineComponent({__name:"LeitingInfo",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref([]),r=d.ref(!1),a=d.ref([]),l=d.ref([]),c=d.ref(0),h=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:A=>{n("update:visible",A),n("update:open",A)}}),u=()=>{h.value=!1},p=A=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[A]||A,f=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],m=async A=>{const v=++c.value;if(l.value=A,!A||A.length===0){o.value=[];return}if(!h.value)return;let b=A;A.length>10&&(me.warning(`选中构件数量过多(${A.length}个),仅显示前10个`),b=A.slice(0,10));const C=s?.value;let x=C?.getMapTileset?C.getMapTileset():{};r.value=!0;const I=[],E={};b.forEach(T=>{const F=x[T.modelId]?.leiting?.model?.dbName;F&&T.elementId&&I.push({dbName:F,elementId:T.elementId,modelId:T.modelId})});const S=new Set;if(b.forEach(T=>{const _=x[T.modelId],F=`${T.modelId}_${T.elementId}`;E[F]||_&&_.leiting&&!_.leiting?.node?.nodeExtras&&_.leiting.model?.nodeUrl&&S.add(T.modelId)}),S.size>0&&C?._loadNodeDetailsForModel)try{const T=Array.from(S).map(_=>C._loadNodeDetailsForModel(_));await Promise.all(T)}catch(T){console.error("Failed to load node details",T)}if(v!==c.value)return;x=C?.getMapTileset?C.getMapTileset():{};const w=[];b.forEach((T,_)=>{const U=x[T.modelId]?.leiting||{},L=E[`${T.modelId}_${T.elementId}`];let D={modelName:U.model?.modelId||T.modelId};D.elementID||(D.elementID=T.elementId);let M=null;if(L)M=L;else{const P=U.node?.nodeExtras?.element||U.node?.nodeExtras;if(P){const V=D.elementID;P[V]&&(M=P[V])}}M&&M.box3&&(D.length=`${M.box3.length?.toFixed(2)||0}米`,D.width=`${M.box3.width?.toFixed(2)||0}米`,D.height=`${M.box3.height?.toFixed(2)||0}米`);const k=[];M&&(M.name&&(D.elementName=M.name),M.categoryName&&(D.categoryName=M.categoryName),M.familySymbolName&&(D.familySymbolName=M.familySymbolName),M.levelName&&(D.levelName=M.levelName));const B={};if(f.forEach(P=>{D[P]!==void 0&&(B[P]=D[P])}),k.push({name:"基础信息",params:B}),M){const P=Array.isArray(M)?M:Array.isArray(M?.parameters)?M.parameters:null;if(P){if(P.flat().forEach(G=>{if(G&&G.GroupName&&Array.isArray(G.Parameters)){const R={};G.Parameters.forEach(N=>{N.name&&(R[N.name]=N.value??"")}),Object.keys(R).length>0&&k.push({name:G.GroupName,params:R})}}),!Array.isArray(M)){const{parameters:G,...R}=M,N={};Object.keys(R).forEach(O=>{!f.includes(O)&&O!=="uniqueId"&&typeof R[O]!="object"&&(N[O]=R[O])}),Object.keys(N).length>0&&k.push({name:"其他属性",params:N})}}else{let V=!1;if(Object.keys(M).forEach(G=>{M[G]&&typeof M[G]=="object"&&!Array.isArray(M[G])&&(V=!0,k.push({name:G,params:M[G]}))}),!V){const G={};Object.keys(M).forEach(R=>{if(!f.includes(R)&&R!=="batchId"){const N=M[R];typeof N=="string"&&N.length>500?G[R]=N.substring(0,500)+"...":G[R]=N}}),Object.keys(G).length>0&&k.push({name:"属性",params:G})}}}w.push({id:_,title:`${D.modelName}${D.elementName?` - ${D.elementName}`:""}`,groups:k})}),o.value=w,v===c.value&&(r.value=!1),w.length>0?a.value=[`${w[0].id}-基础信息`]:a.value=[]};let y=!1;const g=()=>{if(y)return;const A=s?.value;A&&A.selectionChange&&(A.selectionChange(m),y=!0)};return d.watch(()=>s?.value,()=>{g()},{deep:!0,immediate:!0}),d.watch(h,A=>{A&&l.value.length>0&&m(l.value)}),d.onMounted(()=>{g()}),(A,v)=>(d.openBlock(),d.createBlock(gt,{visible:h.value,title:"构件详情",width:350,align:"right","initial-position":{x:0,y:0},"full-height":i.fullHeight,onClose:u,"onUpdate:visible":v[1]||(v[1]=b=>h.value=b),class:"base-info-card"},{default:d.withCtx(()=>[d.createElementVNode("div",$3,[d.createVNode(d.unref(re.Spin),{spinning:r.value},{default:d.withCtx(()=>[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(o.value,b=>(d.openBlock(),d.createElementBlock("div",{key:b.id,class:"component-block"},[o.value.length>1?(d.openBlock(),d.createElementBlock("div",j3,d.toDisplayString(b.title),1)):d.createCommentVNode("",!0),d.createVNode(d.unref(re.Collapse),{activeKey:a.value,"onUpdate:activeKey":v[0]||(v[0]=C=>a.value=C),ghost:"","expand-icon-position":"end"},{default:d.withCtx(()=>[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(b.groups,C=>(d.openBlock(),d.createBlock(d.unref(re.CollapsePanel),{key:`${b.id}-${C.name}`,header:C.name},{default:d.withCtx(()=>[d.createVNode(d.unref(re.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,(x,I)=>(d.openBlock(),d.createBlock(d.unref(re.DescriptionsItem),{key:I,label:p(String(I))},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(x),1)]),_:2},1032,["label"]))),128))]),_:2},1024)]),_:2},1032,["header"]))),128))]),_:2},1032,["activeKey"])]))),128))]),_:1},8,["spinning"])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-375a1f55"]]);class vc{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 n=`adjust-marker-${e}-${Date.now()}`;e==="BIM"?this.bimEntityId=n:this.mapEntityId=n,this.viewer.entities.add({id:n,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 n;try{n=this.viewer.scene.pickPosition(t.position)}catch(s){console.warn("pickPosition failed:",s)}if(!n){const s=this.viewer.camera.getPickRay(t.position);n=this.viewer.scene.globe.pick(s,this.viewer.scene)}if(n||(n=this.viewer.camera.pickEllipsoid(t.position,this.viewer.scene.globe.ellipsoid)),n){const s=this.Cesium.Cartographic.fromCartesian(n),o=this.Cesium.Math.toDegrees(s.longitude),r=this.Cesium.Math.toDegrees(s.latitude),a=s.height;e({longitude:o,latitude:r,height:a})}},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 W3={class:"leitingbim-model-adjust-panel"},q3={class:"leitingbim-control-panel"},K3={class:"form-item"},X3={class:"radio-group"},J3={class:"form-item"},Z3={class:"radio-group"},e_={class:"form-item"},t_={class:"value"},i_={class:"param-row"},n_={class:"param-row"},s_={class:"param-row"},o_={class:"param-row"},r_={class:"param-row"},a_={class:"param-row"},l_={class:"param-row"},c_={class:"button-grid"},d_={key:1,class:"pick-mode-ui"},h_={class:"form-item",style:{display:"block","margin-bottom":"15px"}},u_={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},f_=["checked"],p_={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},m_={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},g_={class:"form-item",style:{display:"block","margin-bottom":"15px"}},y_={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},A_=["checked"],v_={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},b_={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},w_={class:"list-panel"},C_={class:"list-header"},E_={class:"col-check"},x_=["checked"],I_={class:"list-body"},S_={class:"col-check"},M_=["onUpdate:modelValue"],T_={class:"col-index"},B_=["title"],__={class:"col-main"},k_=["checked","onChange"],uo=Be(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(i,{expose:e,emit:t}){const n=i,s=t,o=d.computed({get:()=>n.open!==void 0?n.open:n.visible,set:G=>{s("update:visible",G),s("update:open",G)}}),r=d.inject("leitingMethods"),a=d.ref("BIM"),l=d.ref("param"),c=d.ref(!1),h=d.ref(""),u=d.ref([]),p=d.ref("BIM"),f=d.ref(null),m=d.ref(null),y=d.ref(null),g=()=>(!y.value&&r?.value?.getViewer&&r?.value?.getCesium&&(y.value=new vc(r.value.getViewer(),r.value.getCesium())),y.value),A=()=>{g()?.clearMarkers(),f.value=null,m.value=null},v=(G,R)=>{G==="BIM"?f.value=R:m.value=R,g()?.addMarker(G,R),me.success(`${G==="BIM"?"BIM":"地图"}标记点已添加`)},b=()=>{g()?.registerPickHandler(G=>{v(p.value,G)})},C=()=>{g()?.destroyPickHandler()},x=()=>{if(!f.value||!m.value){me.warning("请先选择BIM标记点和地图标记点");return}if(!h.value){me.warning("请先选择主模型");return}const G=g();let R=0,N=0,O=0;if(G){const{dLon:z,dLat:j,dHeight:Z}=G.calculateOffset(f.value,m.value);R=z,N=j,O=Z}else R=m.value.longitude-f.value.longitude,N=m.value.latitude-f.value.latitude,O=m.value.height-f.value.height;E.value.longitude+=R,E.value.latitude+=N,E.value.height+=O,M(h.value,{longitude:E.value.longitude,latitude:E.value.latitude,height:E.value.height}),me.success("位置已调整")};d.watch(()=>l.value,G=>{G==="pick"?b():C()}),e({addMarker:v,setModelType:G=>{(G==="BIM"||G==="OSGB")&&(a.value=G)}});const E=d.ref({longitude:0,latitude:0,lonlat:1e-6,heightDistance:1,rotation:30,totalRotation:0,height:0,X:0,Y:0,Z:0}),S=d.computed(()=>{const G=u.value.find(R=>R.modelId===h.value);return G?G.modelName:""}),w=d.computed(()=>_.value.length>0&&_.value.every(G=>G.selected)),T=()=>{o.value=!1,s("close")},_=d.computed(()=>u.value.filter(G=>G.type===a.value)),F=G=>{const R=G.target.checked;_.value.forEach(N=>N.selected=R)},U=()=>{if(!r?.value)return;const G=r.value,R=G.getMapTileset?G.getMapTileset():{},N=[];if(Object.keys(R).forEach(O=>{const j=R[O].leiting||{};j.model&&N.push({modelId:j.model.modelId,modelName:j.model.modelName,selected:!1,formData:j.model.formData||{},dbName:j.model.dbName,url:j.model.url,type:j.model.type||"BIM"})}),u.value=N,N.length>0){const O=G.getBIMmodelId?G.getBIMmodelId():"";O&&N.find(z=>z.modelId===O)?L(O):L(N[0].modelId),N.forEach(z=>z.selected=!0)}},L=G=>{h.value=G;const R=u.value.find(N=>N.modelId===G);R&&R.formData&&Object.keys(E.value).forEach(N=>{R.formData[N]!==void 0&&(E.value[N]=R.formData[N])})},D=G=>r?.value?.getMapTileset?r.value.getMapTileset()[G]:null,M=(G,R)=>{const N=D(G),O=r.value.getCesium();if(N&&O){if(N.leiting?.model){N.leiting.model.formData={...N.leiting.model.formData,...R};const z=u.value.find(j=>j.modelId===G);z&&(z.formData=N.leiting.model.formData)}Ja({Cesium:O,tileset:N})}},k=G=>{if(!h.value)return;const N=u.value.find(j=>j.modelId===h.value)?.formData?.[G]??0,O=E.value[G],z=O-N;M(h.value,{[G]:O}),z!==0&&_.value.filter(Z=>Z.selected&&Z.modelId!==h.value).forEach(Z=>{const de=(Z.formData?.[G]??0)+z;M(Z.modelId,{[G]:de})})},B=G=>{const R=_.value.filter(j=>j.selected);if(R.length===0){me.warning("请先选择要调整的模型");return}const{lonlat:N,heightDistance:O,rotation:z}=E.value;R.forEach(j=>{const Z={...j.formData};switch(G){case"north":Z.latitude+=N;break;case"south":Z.latitude-=N;break;case"east":Z.longitude+=N;break;case"west":Z.longitude-=N;break;case"up":Z.height+=O;break;case"down":Z.height-=O;break;case"rotateLeft":Z.totalRotation=(Z.totalRotation||0)+z;break;case"rotateRight":Z.totalRotation=(Z.totalRotation||0)-z;break}j.modelId===h.value&&(Z.lonlat=N,Z.heightDistance=O,Z.rotation=z,Object.assign(E.value,Z)),M(j.modelId,Z)})},P=()=>{if(!h.value){me.warning("请先选择主模型");return}const G=D(h.value);if(!G||!r?.value?.getViewer)return;const R=r.value.getViewer(),N=r.value.getCesium(),O=G.boundingSphere;R.camera.flyToBoundingSphere(O,{offset:new N.HeadingPitchRange(0,N.Math.toRadians(-90),O.radius*2),duration:1.5})},V=()=>{r?.value?.saveRegion?(r.value.saveRegion(u.value),s("save",d.unref(u))):(u.value,me.warning("未找到保存接口,数据已打印控制台"))};return d.watch(()=>n.visible,G=>{G?(U(),l.value==="pick"&&b()):(C(),A())}),d.onMounted(()=>{n.visible&&(U(),l.value==="pick"&&b())}),(G,R)=>(d.openBlock(),d.createBlock(gt,{visible:o.value,title:"调整位置(调整前可选择正北俯视)","full-height":i.fullHeight,width:c.value?500:void 0,"onUpdate:visible":R[26]||(R[26]=N=>o.value=N),onClose:T,onSave:V,class:"base-position-card"},{default:d.withCtx(()=>[d.createElementVNode("div",W3,[d.createElementVNode("div",q3,[d.createElementVNode("div",K3,[R[27]||(R[27]=d.createElementVNode("label",null,"模型类型:",-1)),d.createElementVNode("div",X3,[d.createElementVNode("span",{class:d.normalizeClass({active:a.value==="BIM"}),onClick:R[0]||(R[0]=N=>a.value="BIM")},"BIM模型",2),d.createElementVNode("span",{class:d.normalizeClass({active:a.value==="OSGB"}),onClick:R[1]||(R[1]=N=>a.value="OSGB")},"倾斜摄影",2)])]),d.createElementVNode("div",J3,[R[28]||(R[28]=d.createElementVNode("label",null,"调整操作:",-1)),d.createElementVNode("div",Z3,[d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="param"}),onClick:R[2]||(R[2]=N=>l.value="param")},"参数模式",2),d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="pick"}),onClick:R[3]||(R[3]=N=>l.value="pick")},"地图点选",2)])]),d.createElementVNode("div",e_,[R[29]||(R[29]=d.createElementVNode("label",null,"主模型:",-1)),d.createElementVNode("span",t_,d.toDisplayString(S.value||"未选择"),1),d.createElementVNode("button",{class:"toggle-list-btn",onClick:R[4]||(R[4]=N=>c.value=!c.value)},d.toDisplayString(c.value?"收起":"查看详情"),1)]),R[43]||(R[43]=d.createElementVNode("div",{class:"separator"},null,-1)),l.value==="param"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[R[37]||(R[37]=d.createElementVNode("div",{class:"group-header"},"当前状态",-1)),d.createElementVNode("div",i_,[R[30]||(R[30]=d.createElementVNode("label",null,"经度(东西):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[5]||(R[5]=N=>E.value.longitude=N),onChange:R[6]||(R[6]=N=>k("longitude")),step:"0.000001"},null,544),[[d.vModelText,E.value.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",n_,[R[31]||(R[31]=d.createElementVNode("label",null,"纬度(南北):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[7]||(R[7]=N=>E.value.latitude=N),onChange:R[8]||(R[8]=N=>k("latitude")),step:"0.000001"},null,544),[[d.vModelText,E.value.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",s_,[R[32]||(R[32]=d.createElementVNode("label",null,"高度(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[9]||(R[9]=N=>E.value.height=N),onChange:R[10]||(R[10]=N=>k("height")),step:"0.1"},null,544),[[d.vModelText,E.value.height,void 0,{number:!0}]])]),d.createElementVNode("div",o_,[R[33]||(R[33]=d.createElementVNode("label",null,"累计旋转(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[11]||(R[11]=N=>E.value.totalRotation=N),onChange:R[12]||(R[12]=N=>k("totalRotation")),step:"1"},null,544),[[d.vModelText,E.value.totalRotation,void 0,{number:!0}]])]),R[38]||(R[38]=d.createElementVNode("div",{class:"separator"},null,-1)),R[39]||(R[39]=d.createElementVNode("div",{class:"group-header"},"调整步长",-1)),d.createElementVNode("div",r_,[R[34]||(R[34]=d.createElementVNode("label",null,"经纬步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[13]||(R[13]=N=>E.value.lonlat=N),step:"0.000001"},null,512),[[d.vModelText,E.value.lonlat,void 0,{number:!0}]])]),d.createElementVNode("div",a_,[R[35]||(R[35]=d.createElementVNode("label",null,"高度步长(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[14]||(R[14]=N=>E.value.heightDistance=N),step:"0.1"},null,512),[[d.vModelText,E.value.heightDistance,void 0,{number:!0}]])]),d.createElementVNode("div",l_,[R[36]||(R[36]=d.createElementVNode("label",null,"旋转步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":R[15]||(R[15]=N=>E.value.rotation=N),step:"1"},null,512),[[d.vModelText,E.value.rotation,void 0,{number:!0}]])]),d.createElementVNode("div",c_,[d.createElementVNode("button",{onClick:R[16]||(R[16]=N=>B("rotateLeft"))},"左转"),d.createElementVNode("button",{onClick:R[17]||(R[17]=N=>B("north"))},"北移"),d.createElementVNode("button",{onClick:R[18]||(R[18]=N=>B("rotateRight"))},"右转"),d.createElementVNode("button",{onClick:R[19]||(R[19]=N=>B("west"))},"西移"),d.createElementVNode("button",{onClick:R[20]||(R[20]=N=>B("south"))},"南移"),d.createElementVNode("button",{onClick:R[21]||(R[21]=N=>B("east"))},"东移"),d.createElementVNode("button",{onClick:R[22]||(R[22]=N=>B("up"))},"上移"),d.createElementVNode("button",{onClick:R[23]||(R[23]=N=>B("down"))},"下移"),d.createElementVNode("button",{onClick:P,class:"primary-btn"},"正北俯视"),d.createElementVNode("button",{onClick:V,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):l.value==="pick"?(d.openBlock(),d.createElementBlock("div",d_,[d.createElementVNode("div",h_,[d.createElementVNode("div",u_,[d.createElementVNode("div",{onClick:R[24]||(R[24]=N=>p.value="BIM"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[d.createElementVNode("input",{type:"radio",checked:p.value==="BIM",style:{"margin-right":"5px"}},null,8,f_),R[40]||(R[40]=d.createElementVNode("span",{style:{"font-weight":"bold"}},"BIM标记点:",-1))]),f.value?(d.openBlock(),d.createElementBlock("div",p_,[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",m_,"未选择"))])]),d.createElementVNode("div",g_,[d.createElementVNode("div",y_,[d.createElementVNode("div",{onClick:R[25]||(R[25]=N=>p.value="MAP"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[d.createElementVNode("input",{type:"radio",checked:p.value==="MAP",style:{"margin-right":"5px"}},null,8,A_),R[41]||(R[41]=d.createElementVNode("span",{style:{"font-weight":"bold"}},"地图标记点:",-1))]),m.value?(d.openBlock(),d.createElementBlock("div",v_,[d.createElementVNode("div",null,"经度:"+d.toDisplayString(m.value.longitude.toFixed(10)),1),d.createElementVNode("div",null,"纬度:"+d.toDisplayString(m.value.latitude.toFixed(10)),1)])):(d.openBlock(),d.createElementBlock("div",b_,"未选择"))])]),d.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[d.createElementVNode("button",{onClick:x},"调整位置"),d.createElementVNode("button",{onClick:V},"保存")]),R[42]||(R[42]=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.withDirectives(d.createElementVNode("div",w_,[d.createElementVNode("div",C_,[d.createElementVNode("div",E_,[d.createElementVNode("input",{type:"checkbox",checked:w.value,onChange:F},null,40,x_)]),R[44]||(R[44]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),R[45]||(R[45]=d.createElementVNode("div",{class:"col-name"},"名称",-1)),R[46]||(R[46]=d.createElementVNode("div",{class:"col-main"},"主模型",-1))]),d.createElementVNode("div",I_,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(_.value,(N,O)=>(d.openBlock(),d.createElementBlock("div",{key:N.modelId,class:d.normalizeClass(["list-item",{active:N.modelId===h.value}])},[d.createElementVNode("div",S_,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":z=>N.selected=z},null,8,M_),[[d.vModelCheckbox,N.selected]])]),d.createElementVNode("div",T_,d.toDisplayString(O+1),1),d.createElementVNode("div",{class:"col-name",title:N.modelName},d.toDisplayString(N.modelName),9,B_),d.createElementVNode("div",__,[d.createElementVNode("input",{type:"radio",name:"mainModel",checked:N.modelId===h.value,onChange:z=>L(N.modelId)},null,40,k_)])],2))),128))])],512),[[d.vShow,c.value]])])]),_:1},8,["visible","full-height","width"]))}}),[["__scopeId","data-v-7384e1ce"]]);function Vr(){return Vr=Object.assign?Object.assign.bind():function(i){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)({}).hasOwnProperty.call(t,n)&&(i[n]=t[n])}return i},Vr.apply(null,arguments)}const P_={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:"下一世纪"},D_={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},wm={lang:Vr({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},P_),timePickerLocale:Vr({},D_)};wm.lang.ok="确定";var Qr={exports:{}},N_=Qr.exports,Cm;function Em(){return Cm||(Cm=1,(function(i,e){(function(t,n){i.exports=n()})(N_,(function(){var t=1e3,n=6e4,s=36e5,o="millisecond",r="second",a="minute",l="hour",c="day",h="week",u="month",p="quarter",f="year",m="date",y="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,A=/\[([^\]]+)]|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,v={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(L){var D=["th","st","nd","rd"],M=L%100;return"["+L+(D[(M-20)%10]||D[M]||D[0])+"]"}},b=function(L,D,M){var k=String(L);return!k||k.length>=D?L:""+Array(D+1-k.length).join(M)+L},C={s:b,z:function(L){var D=-L.utcOffset(),M=Math.abs(D),k=Math.floor(M/60),B=M%60;return(D<=0?"+":"-")+b(k,2,"0")+":"+b(B,2,"0")},m:function L(D,M){if(D.date()<M.date())return-L(M,D);var k=12*(M.year()-D.year())+(M.month()-D.month()),B=D.clone().add(k,u),P=M-B<0,V=D.clone().add(k+(P?-1:1),u);return+(-(k+(M-B)/(P?B-V:V-B))||0)},a:function(L){return L<0?Math.ceil(L)||0:Math.floor(L)},p:function(L){return{M:u,y:f,w:h,d:c,D:m,h:l,m:a,s:r,ms:o,Q:p}[L]||String(L||"").toLowerCase().replace(/s$/,"")},u:function(L){return L===void 0}},x="en",I={};I[x]=v;var E="$isDayjsObject",S=function(L){return L instanceof F||!(!L||!L[E])},w=function L(D,M,k){var B;if(!D)return x;if(typeof D=="string"){var P=D.toLowerCase();I[P]&&(B=P),M&&(I[P]=M,B=P);var V=D.split("-");if(!B&&V.length>1)return L(V[0])}else{var G=D.name;I[G]=D,B=G}return!k&&B&&(x=B),B||!k&&x},T=function(L,D){if(S(L))return L.clone();var M=typeof D=="object"?D:{};return M.date=L,M.args=arguments,new F(M)},_=C;_.l=w,_.i=S,_.w=function(L,D){return T(L,{locale:D.$L,utc:D.$u,x:D.$x,$offset:D.$offset})};var F=(function(){function L(M){this.$L=w(M.locale,null,!0),this.parse(M),this.$x=this.$x||M.x||{},this[E]=!0}var D=L.prototype;return D.parse=function(M){this.$d=(function(k){var B=k.date,P=k.utc;if(B===null)return new Date(NaN);if(_.u(B))return new Date;if(B instanceof Date)return new Date(B);if(typeof B=="string"&&!/Z$/i.test(B)){var V=B.match(g);if(V){var G=V[2]-1||0,R=(V[7]||"0").substring(0,3);return P?new Date(Date.UTC(V[1],G,V[3]||1,V[4]||0,V[5]||0,V[6]||0,R)):new Date(V[1],G,V[3]||1,V[4]||0,V[5]||0,V[6]||0,R)}}return new Date(B)})(M),this.init()},D.init=function(){var M=this.$d;this.$y=M.getFullYear(),this.$M=M.getMonth(),this.$D=M.getDate(),this.$W=M.getDay(),this.$H=M.getHours(),this.$m=M.getMinutes(),this.$s=M.getSeconds(),this.$ms=M.getMilliseconds()},D.$utils=function(){return _},D.isValid=function(){return this.$d.toString()!==y},D.isSame=function(M,k){var B=T(M);return this.startOf(k)<=B&&B<=this.endOf(k)},D.isAfter=function(M,k){return T(M)<this.startOf(k)},D.isBefore=function(M,k){return this.endOf(k)<T(M)},D.$g=function(M,k,B){return _.u(M)?this[k]:this.set(B,M)},D.unix=function(){return Math.floor(this.valueOf()/1e3)},D.valueOf=function(){return this.$d.getTime()},D.startOf=function(M,k){var B=this,P=!!_.u(k)||k,V=_.p(M),G=function(de,pe){var Ae=_.w(B.$u?Date.UTC(B.$y,pe,de):new Date(B.$y,pe,de),B);return P?Ae:Ae.endOf(c)},R=function(de,pe){return _.w(B.toDate()[de].apply(B.toDate("s"),(P?[0,0,0,0]:[23,59,59,999]).slice(pe)),B)},N=this.$W,O=this.$M,z=this.$D,j="set"+(this.$u?"UTC":"");switch(V){case f:return P?G(1,0):G(31,11);case u:return P?G(1,O):G(0,O+1);case h:var Z=this.$locale().weekStart||0,te=(N<Z?N+7:N)-Z;return G(P?z-te:z+(6-te),O);case c:case m:return R(j+"Hours",0);case l:return R(j+"Minutes",1);case a:return R(j+"Seconds",2);case r:return R(j+"Milliseconds",3);default:return this.clone()}},D.endOf=function(M){return this.startOf(M,!1)},D.$set=function(M,k){var B,P=_.p(M),V="set"+(this.$u?"UTC":""),G=(B={},B[c]=V+"Date",B[m]=V+"Date",B[u]=V+"Month",B[f]=V+"FullYear",B[l]=V+"Hours",B[a]=V+"Minutes",B[r]=V+"Seconds",B[o]=V+"Milliseconds",B)[P],R=P===c?this.$D+(k-this.$W):k;if(P===u||P===f){var N=this.clone().set(m,1);N.$d[G](R),N.init(),this.$d=N.set(m,Math.min(this.$D,N.daysInMonth())).$d}else G&&this.$d[G](R);return this.init(),this},D.set=function(M,k){return this.clone().$set(M,k)},D.get=function(M){return this[_.p(M)]()},D.add=function(M,k){var B,P=this;M=Number(M);var V=_.p(k),G=function(O){var z=T(P);return _.w(z.date(z.date()+Math.round(O*M)),P)};if(V===u)return this.set(u,this.$M+M);if(V===f)return this.set(f,this.$y+M);if(V===c)return G(1);if(V===h)return G(7);var R=(B={},B[a]=n,B[l]=s,B[r]=t,B)[V]||1,N=this.$d.getTime()+M*R;return _.w(N,this)},D.subtract=function(M,k){return this.add(-1*M,k)},D.format=function(M){var k=this,B=this.$locale();if(!this.isValid())return B.invalidDate||y;var P=M||"YYYY-MM-DDTHH:mm:ssZ",V=_.z(this),G=this.$H,R=this.$m,N=this.$M,O=B.weekdays,z=B.months,j=B.meridiem,Z=function(pe,Ae,Pe,Ge){return pe&&(pe[Ae]||pe(k,P))||Pe[Ae].slice(0,Ge)},te=function(pe){return _.s(G%12||12,pe,"0")},de=j||function(pe,Ae,Pe){var Ge=pe<12?"AM":"PM";return Pe?Ge.toLowerCase():Ge};return P.replace(A,(function(pe,Ae){return Ae||(function(Pe){switch(Pe){case"YY":return String(k.$y).slice(-2);case"YYYY":return _.s(k.$y,4,"0");case"M":return N+1;case"MM":return _.s(N+1,2,"0");case"MMM":return Z(B.monthsShort,N,z,3);case"MMMM":return Z(z,N);case"D":return k.$D;case"DD":return _.s(k.$D,2,"0");case"d":return String(k.$W);case"dd":return Z(B.weekdaysMin,k.$W,O,2);case"ddd":return Z(B.weekdaysShort,k.$W,O,3);case"dddd":return O[k.$W];case"H":return String(G);case"HH":return _.s(G,2,"0");case"h":return te(1);case"hh":return te(2);case"a":return de(G,R,!0);case"A":return de(G,R,!1);case"m":return String(R);case"mm":return _.s(R,2,"0");case"s":return String(k.$s);case"ss":return _.s(k.$s,2,"0");case"SSS":return _.s(k.$ms,3,"0");case"Z":return V}return null})(pe)||V.replace(":","")}))},D.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},D.diff=function(M,k,B){var P,V=this,G=_.p(k),R=T(M),N=(R.utcOffset()-this.utcOffset())*n,O=this-R,z=function(){return _.m(V,R)};switch(G){case f:P=z()/12;break;case u:P=z();break;case p:P=z()/3;break;case h:P=(O-N)/6048e5;break;case c:P=(O-N)/864e5;break;case l:P=O/s;break;case a:P=O/n;break;case r:P=O/t;break;default:P=O}return B?P:_.a(P)},D.daysInMonth=function(){return this.endOf(u).$D},D.$locale=function(){return I[this.$L]},D.locale=function(M,k){if(!M)return this.$L;var B=this.clone(),P=w(M,k,!0);return P&&(B.$L=P),B},D.clone=function(){return _.w(this.$d,this)},D.toDate=function(){return new Date(this.valueOf())},D.toJSON=function(){return this.isValid()?this.toISOString():null},D.toISOString=function(){return this.$d.toISOString()},D.toString=function(){return this.$d.toUTCString()},L})(),U=F.prototype;return T.prototype=U,[["$ms",o],["$s",r],["$m",a],["$H",l],["$W",c],["$M",u],["$y",f],["$D",m]].forEach((function(L){U[L[1]]=function(D){return this.$g(D,L[0],L[1])}})),T.extend=function(L,D){return L.$i||(L(D,F,T),L.$i=!0),T},T.locale=w,T.isDayjs=S,T.unix=function(L){return T(1e3*L)},T.en=I[x],T.Ls=I,T.p={},T}))})(Qr)),Qr.exports}var L_=Em();const Qt=nn(L_);var zr={exports:{}},R_=zr.exports,xm;function F_(){return xm||(xm=1,(function(i,e){(function(t,n){i.exports=n(Em())})(R_,(function(t){function n(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var s=n(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,a){return a==="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,a){var l=100*r+a;return l<600?"凌晨":l<900?"早上":l<1100?"上午":l<1300?"中午":l<1800?"下午":"晚上"}};return s.default.locale(o,null,!0),o}))})(zr)),zr.exports}F_();var Hr={exports:{}},O_=Hr.exports,Im;function G_(){return Im||(Im=1,(function(i,e){(function(t,n){i.exports=n()})(O_,(function(){return function(t,n,s){var o=n.prototype,r=function(u){return u&&(u.indexOf?u:u.s)},a=function(u,p,f,m,y){var g=u.name?u:u.$locale(),A=r(g[p]),v=r(g[f]),b=A||v.map((function(x){return x.slice(0,m)}));if(!y)return b;var C=g.weekStart;return b.map((function(x,I){return b[(I+(C||0))%7]}))},l=function(){return s.Ls[s.locale()]},c=function(u,p){return u.formats[p]||(function(f){return f.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(m,y,g){return y||g.slice(1)}))})(u.formats[p.toUpperCase()])},h=function(){var u=this;return{months:function(p){return p?p.format("MMMM"):a(u,"months")},monthsShort:function(p){return p?p.format("MMM"):a(u,"monthsShort","months",3)},firstDayOfWeek:function(){return u.$locale().weekStart||0},weekdays:function(p){return p?p.format("dddd"):a(u,"weekdays")},weekdaysMin:function(p){return p?p.format("dd"):a(u,"weekdaysMin","weekdays",2)},weekdaysShort:function(p){return p?p.format("ddd"):a(u,"weekdaysShort","weekdays",3)},longDateFormat:function(p){return c(u.$locale(),p)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};o.localeData=function(){return h.bind(this)()},s.localeData=function(){var u=l();return{firstDayOfWeek:function(){return u.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(p){return c(u,p)},meridiem:u.meridiem,ordinal:u.ordinal}},s.months=function(){return a(l(),"months")},s.monthsShort=function(){return a(l(),"monthsShort","months",3)},s.weekdays=function(u){return a(l(),"weekdays",null,null,u)},s.weekdaysShort=function(u){return a(l(),"weekdaysShort","weekdays",3,u)},s.weekdaysMin=function(u){return a(l(),"weekdaysMin","weekdays",2,u)}}}))})(Hr)),Hr.exports}var U_=G_();const V_=nn(U_);var Yr={exports:{}},Q_=Yr.exports,Sm;function z_(){return Sm||(Sm=1,(function(i,e){(function(t,n){i.exports=n()})(Q_,(function(){return function(t,n){n.prototype.weekday=function(s){var o=this.$locale().weekStart||0,r=this.$W,a=(r<o?r+7:r)-o;return this.$utils().u(s)?a:this.subtract(a,"day").add(s,"day")}}}))})(Yr)),Yr.exports}var H_=z_();const Y_=nn(H_);var $r={exports:{}},$_=$r.exports,Mm;function j_(){return Mm||(Mm=1,(function(i,e){(function(t,n){i.exports=n()})($_,(function(){var t="week",n="year";return function(s,o,r){var a=o.prototype;a.week=function(l){if(l===void 0&&(l=null),l!==null)return this.add(7*(l-this.week()),"day");var c=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var h=r(this).startOf(n).add(1,n).date(c),u=r(this).endOf(t);if(h.isBefore(u))return 1}var p=r(this).startOf(n).date(c).startOf(t).subtract(1,"millisecond"),f=this.diff(p,t,!0);return f<0?r(this).startOf("week").week():Math.ceil(f)},a.weeks=function(l){return l===void 0&&(l=null),this.week(l)}}}))})($r)),$r.exports}var W_=j_();const q_=nn(W_);var jr={exports:{}},K_=jr.exports,Tm;function X_(){return Tm||(Tm=1,(function(i,e){(function(t,n){i.exports=n()})(K_,(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"},n=/(\[[^[]*\])|([-_:/.,()\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?/,a=/\d*[^-_:/,()\s\d]+/,l={},c=function(g){return(g=+g)+(g>68?1900:2e3)},h=function(g){return function(A){this[g]=+A}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=(function(A){if(!A||A==="Z")return 0;var v=A.match(/([+-]|\d\d)/g),b=60*v[1]+(+v[2]||0);return b===0?0:v[0]==="+"?-b:b})(g)}],p=function(g){var A=l[g];return A&&(A.indexOf?A:A.s.concat(A.f))},f=function(g,A){var v,b=l.meridiem;if(b){for(var C=1;C<=24;C+=1)if(g.indexOf(b(C,0,A))>-1){v=C>12;break}}else v=g===(A?"pm":"PM");return v},m={A:[a,function(g){this.afternoon=f(g,!1)}],a:[a,function(g){this.afternoon=f(g,!0)}],Q:[s,function(g){this.month=3*(g-1)+1}],S:[s,function(g){this.milliseconds=100*+g}],SS:[o,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[r,h("seconds")],ss:[r,h("seconds")],m:[r,h("minutes")],mm:[r,h("minutes")],H:[r,h("hours")],h:[r,h("hours")],HH:[r,h("hours")],hh:[r,h("hours")],D:[r,h("day")],DD:[o,h("day")],Do:[a,function(g){var A=l.ordinal,v=g.match(/\d+/);if(this.day=v[0],A)for(var b=1;b<=31;b+=1)A(b).replace(/\[|\]/g,"")===g&&(this.day=b)}],w:[r,h("week")],ww:[o,h("week")],M:[r,h("month")],MM:[o,h("month")],MMM:[a,function(g){var A=p("months"),v=(p("monthsShort")||A.map((function(b){return b.slice(0,3)}))).indexOf(g)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(g){var A=p("months").indexOf(g)+1;if(A<1)throw new Error;this.month=A%12||A}],Y:[/[+-]?\d+/,h("year")],YY:[o,function(g){this.year=c(g)}],YYYY:[/\d{4}/,h("year")],Z:u,ZZ:u};function y(g){var A,v;A=g,v=l&&l.formats;for(var b=(g=A.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(T,_,F){var U=F&&F.toUpperCase();return _||v[F]||t[F]||v[U].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(L,D,M){return D||M.slice(1)}))}))).match(n),C=b.length,x=0;x<C;x+=1){var I=b[x],E=m[I],S=E&&E[0],w=E&&E[1];b[x]=w?{regex:S,parser:w}:I.replace(/^\[|\]$/g,"")}return function(T){for(var _={},F=0,U=0;F<C;F+=1){var L=b[F];if(typeof L=="string")U+=L.length;else{var D=L.regex,M=L.parser,k=T.slice(U),B=D.exec(k)[0];M.call(_,B),T=T.replace(B,"")}}return(function(P){var V=P.afternoon;if(V!==void 0){var G=P.hours;V?G<12&&(P.hours+=12):G===12&&(P.hours=0),delete P.afternoon}})(_),_}}return function(g,A,v){v.p.customParseFormat=!0,g&&g.parseTwoDigitYear&&(c=g.parseTwoDigitYear);var b=A.prototype,C=b.parse;b.parse=function(x){var I=x.date,E=x.utc,S=x.args;this.$u=E;var w=S[1];if(typeof w=="string"){var T=S[2]===!0,_=S[3]===!0,F=T||_,U=S[2];_&&(U=S[2]),l=this.$locale(),!T&&U&&(l=v.Ls[U]),this.$d=(function(k,B,P,V){try{if(["x","X"].indexOf(B)>-1)return new Date((B==="X"?1e3:1)*k);var G=y(B)(k),R=G.year,N=G.month,O=G.day,z=G.hours,j=G.minutes,Z=G.seconds,te=G.milliseconds,de=G.zone,pe=G.week,Ae=new Date,Pe=O||(R||N?1:Ae.getDate()),Ge=R||Ae.getFullYear(),Je=0;R&&!N||(Je=N>0?N-1:Ae.getMonth());var vt,ct=z||0,Bt=j||0,W=Z||0,Y=te||0;return de?new Date(Date.UTC(Ge,Je,Pe,ct,Bt,W,Y+60*de.offset*1e3)):P?new Date(Date.UTC(Ge,Je,Pe,ct,Bt,W,Y)):(vt=new Date(Ge,Je,Pe,ct,Bt,W,Y),pe&&(vt=V(vt).week(pe).toDate()),vt)}catch{return new Date("")}})(I,w,E,v),this.init(),U&&U!==!0&&(this.$L=this.locale(U).$L),F&&I!=this.format(w)&&(this.$d=new Date("")),l={}}else if(w instanceof Array)for(var L=w.length,D=1;D<=L;D+=1){S[1]=w[D-1];var M=v.apply(this,S);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}D===L&&(this.$d=new Date(""))}else C.call(this,x)}}}))})(jr)),jr.exports}var J_=X_();const Z_=nn(J_),ek={class:"setting-panel"},tk={class:"tabs-header"},ik={class:"tab-content"},nk={key:0,class:"section"},sk={class:"setting-item"},ok={class:"setting-item"},rk={class:"setting-item"},ak={key:1,class:"section"},lk={class:"tabs-header",style:{"margin-bottom":"8px"}},ck={key:0},dk={class:"setting-item column"},hk={class:"setting-item"},uk={key:1},fk={class:"setting-item column"},pk={class:"setting-item column",style:{"margin-top":"12px","border-top":"1px solid rgba(255,255,255,0.1)","padding-top":"8px"}},mk={class:"search-box",style:{position:"relative"}},gk={key:0,class:"search-dropdown"},yk=["onClick"],Ak={class:"result-name"},vk={class:"result-coord"},bk={key:2,class:"section"},wk={class:"setting-item"},Ck={key:0,class:"setting-item column"},Ek={class:"sub-label"},xk={class:"setting-item"},Ik={class:"setting-item"},Sk={class:"setting-item column"},Mk={class:"setting-item column"},Tk={class:"sub-label"},Bk={class:"setting-item column"},_k={class:"sub-label"},kk={class:"setting-item column"},Pk={class:"sub-label"},Dk={class:"setting-item column"},Nk={style:{display:"flex",gap:"8px","margin-bottom":"8px"}},Lk=["onClick","title"],Rk={style:{display:"flex",gap:"8px","align-items":"center"}},Fk={key:3,class:"section"},Ok={class:"setting-item"},Gk={class:"setting-item column"},fo=Be(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(i,{emit:e}){Qt.locale("zh-cn"),Qt.extend(V_),Qt.extend(Y_),Qt.extend(q_),Qt.extend(Z_);const t=re.Switch,n=re.Radio.Group,s=re.Radio,o=re.Input,r=re.Slider,a=re.Select,l=re.Select.Option,c=re.DatePicker,h=i,u=e,p=d.inject("leitingMethods"),f=d.computed({get:()=>h.open!==void 0?h.open:h.visible,set:M=>{u("update:visible",M),u("update:open",M)}}),m=d.ref("GIS"),y=d.reactive({globe:!1,terrain:!1,depthTest:!1}),g=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"}),A=d.reactive({shadows:!1,shadowDarkness:.7,environmentMap:!1,ambientOcclusion:!1,time:Qt("2025-06-22 10:00"),brightness:1,contrast:1,saturation:1,backgroundColor:"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)",skyBox:"",skyBoxVisible:!1}),v=d.reactive({collision:!1,habit:0}),b=M=>{M&&(M.globe!==void 0&&(y.globe=M.globe),M.terrain!==void 0&&(y.terrain=M.terrain),M.depthTest!==void 0&&(y.depthTest=M.depthTest),M.mapProvider!==void 0&&(g.provider=M.mapProvider),M.tiandituLayerType!==void 0&&(g.tianditu.layerType=M.tiandituLayerType),M.tiandituShowLabel!==void 0&&(g.tianditu.showLabel=M.tiandituShowLabel),M.arcgisUrl!==void 0&&(g.arcgis.url=M.arcgisUrl),M.shadows!==void 0&&(A.shadows=M.shadows),M.shadowDarkness!==void 0&&(A.shadowDarkness=M.shadowDarkness),M.environmentMap!==void 0&&(A.environmentMap=M.environmentMap),M.ambientOcclusion!==void 0&&(A.ambientOcclusion=M.ambientOcclusion),M.time!==void 0&&(typeof M.time=="number"?A.time=Qt().startOf("day").add(M.time,"hour"):A.time=Qt(M.time)),M.brightness!==void 0&&(A.brightness=M.brightness),M.contrast!==void 0&&(A.contrast=M.contrast),M.saturation!==void 0&&(A.saturation=M.saturation),M.backgroundColor!==void 0&&(A.backgroundColor=M.backgroundColor),M.skyBox!==void 0&&(A.skyBox=M.skyBox),M.skyBoxVisible!==void 0&&(A.skyBoxVisible=M.skyBoxVisible),M.collision!==void 0&&(v.collision=M.collision),M.mouseHabit!==void 0&&(v.habit=M.mouseHabit))};d.watch(()=>h.initialConfig,M=>{b(M)},{deep:!0,immediate:!0});const C=["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%)"],x=[{label:"全球影像地图服务(墨卡托)",value:"img_w"},{label:"全球影像地图服务(经纬度)",value:"img_c"},{label:"全球矢量地图服务(墨卡托)",value:"vec_w"},{label:"全球矢量地图服务(经纬度)",value:"vec_c"},{label:"全球地形晕渲服务(墨卡托)",value:"ter_w"},{label:"全球地形晕渲服务(经纬度)",value:"ter_c"}],I=()=>{const M=g.provider,k={};M==="tianditu"?(k.token=g.tianditu.token,k.layerType=g.tianditu.layerType,k.showAnnotation=g.tianditu.showLabel):M==="arcgis"&&(k.url=g.arcgis.url),p.value?.changeBaseMap?.(M,k)};d.watch(()=>g.provider,I),d.watch(()=>g.tianditu.layerType,I),d.watch(()=>g.tianditu.showLabel,I),d.watch(()=>g.tianditu.token,qo(I,1e3)),d.watch(()=>g.arcgis.url,qo(I,1e3)),d.onMounted(()=>{h.tiandituToken&&(g.tianditu.token=h.tiandituToken)}),d.watch(()=>y.globe,M=>p.value?.setGlobeEnvironmentVisible?.(M)),d.watch(()=>y.terrain,M=>p.value?.setTerrainEnable?.(M)),d.watch(()=>y.depthTest,M=>p.value?.setDepthTestEnable?.(M)),d.watch(()=>p?.value,M=>{if(M){if(M.getConfigure=()=>({globe:y.globe,terrain:y.terrain,depthTest:y.depthTest,mapProvider:g.provider,tiandituLayerType:g.tianditu.layerType,tiandituShowLabel:g.tianditu.showLabel,arcgisUrl:g.arcgis.url,shadows:A.shadows,shadowDarkness:A.shadowDarkness,environmentMap:A.environmentMap,ambientOcclusion:A.ambientOcclusion,time:Qt.isDayjs(A.time)?A.time.format("YYYY-MM-DD HH:mm"):A.time,brightness:A.brightness,contrast:A.contrast,saturation:A.saturation,backgroundColor:A.backgroundColor,skyBox:A.skyBox,skyBoxVisible:A.skyBoxVisible,collision:v.collision,mouseHabit:v.habit}),M.setConfigure=k=>{b(k)},M.setBackgroundColor&&A.backgroundColor&&M.setBackgroundColor(A.backgroundColor),M.setSkyBox&&M.setSkyBox(A.skyBox||null),M.setSkyBoxVisible&&M.setSkyBoxVisible(A.skyBoxVisible),M.setGlobeEnvironmentVisible&&M.setGlobeEnvironmentVisible(y.globe),M.setShadowsEnable&&M.setShadowsEnable(A.shadows),M.setShadowDarkness&&M.setShadowDarkness(A.shadowDarkness),M.setEnvironmentMapEnable&&M.setEnvironmentMapEnable(A.environmentMap),M.setAmbientOcclusion&&M.setAmbientOcclusion(A.ambientOcclusion),M.setTime){const k=Qt.isDayjs(A.time)?A.time.toDate():new Date;M.setTime(k)}M.setModelBrightness&&M.setModelBrightness(A.brightness),M.setCollisionDetection&&M.setCollisionDetection(v.collision),M.setMouseHabit&&M.setMouseHabit(v.habit),M.changeBaseMap&&g.baseMap&&M.changeBaseMap(g.baseMap,{token:g.tianditu.token,layerType:g.tianditu.layerType,showAnnotation:g.tianditu.showLabel,url:g.arcgis.url})}},{immediate:!0});const E=d.computed({get:()=>{const M=A.backgroundColor;return/^#[0-9A-Fa-f]{6}$/.test(M)?M:"#ffffff"},set:M=>{A.backgroundColor=M}}),S=d.ref(""),w=d.ref(!1),T=d.ref([]);d.watch(()=>y.globe,M=>p.value?.setGlobeEnvironmentVisible?.(M)),d.watch(()=>y.terrain,M=>p.value?.setTerrainEnable?.(M)),d.watch(()=>g.baseMap,M=>{p.value?.changeBaseMap?.(M,{token:h.tiandituToken})}),d.watch(()=>A.shadows,M=>p.value?.setShadowsEnable?.(M)),d.watch(()=>A.shadowDarkness,M=>p.value?.setShadowDarkness?.(M)),d.watch(()=>A.environmentMap,M=>p.value?.setEnvironmentMapEnable?.(M)),d.watch(()=>A.ambientOcclusion,M=>p.value?.setAmbientOcclusion?.(M)),d.watch(()=>A.time,M=>{const k=Qt.isDayjs(M)?M.toDate():new Date;p.value?.setTime?.(k)}),d.watch(()=>[A.brightness,A.contrast,A.saturation],([M,k,B])=>{const P=p.value;P?.setModelColorAdjustment?P.setModelColorAdjustment({brightness:M,contrast:k,saturation:B}):P?.setModelBrightness?.(M)}),d.watch(()=>A.backgroundColor,M=>{if(p.value?.setBackgroundColor)p.value.setBackgroundColor(M);else{const k=document.querySelector(".cesium-viewer");k&&(k.style.background=M)}}),d.watch(()=>A.skyBox,M=>{p.value?.setSkyBox?.(M||null),p.value?.setSkyBoxVisible?.(A.skyBoxVisible)}),d.watch(()=>A.skyBoxVisible,M=>{M&&p.value?.setSkyBox?.(A.skyBox||null),p.value?.setSkyBoxVisible?.(M)}),d.watch(()=>v.collision,M=>p.value?.setCollisionDetection?.(M)),d.watch(()=>v.habit,M=>p.value?.setMouseHabit?.(M));const _=M=>{const k=[];if(M?.pois&&Array.isArray(M.pois)){for(const B of M.pois)if(B.lonlat){const P=B.lonlat.split(/[, ]/).map(Number);P.length>=2&&!isNaN(P[0])&&!isNaN(P[1])&&k.push({name:B.name||"未命名",lon:P[0],lat:P[1],raw:B})}}if(M?.area&&M.area.lonlat){const B=M.area,P=B.lonlat.split(/[, ]/).map(Number);P.length>=2&&!isNaN(P[0])&&!isNaN(P[1])&&k.push({name:B.name||"未命名",lon:P[0],lat:P[1],raw:B})}if(M?.prompt&&Array.isArray(M.prompt)){for(const B of M.prompt)if(B.admins&&Array.isArray(B.admins)){for(const P of B.admins)if(P.lonlat){const V=P.lonlat.split(/[, ]/).map(Number);V.length>=2&&!isNaN(V[0])&&!isNaN(V[1])&&k.push({name:P.adminName||P.name||"未命名",lon:V[0],lat:V[1],raw:P})}}}return k},U=qo(async()=>{const M=(S.value||"").trim();if(!M){T.value=[];return}const k=h.tiandituToken||"c25f14fb6bd4397cf8fe45144ff768d6";w.value=!0,T.value=[];try{const P=`https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(JSON.stringify({keyWord:M,level:12,mapBound:"-180,-90,180,90",queryType:1,start:0,count:10}))}&type=query&tk=${encodeURIComponent(k)}`,V=await fetch(P);if(!V.ok)throw new Error(`HTTP ${V.status}`);const G=await V.json();T.value=_(G)}catch(B){console.error("tianditu search error",B)}finally{w.value=!1}},800);d.watch(S,()=>{U()});const L=M=>{p.value?.flyToLonLatHeight?.(M.lon,M.lat,5e3),S.value=M.name,T.value=[]},D=()=>{f.value=!1,u("close")};return d.onMounted(()=>{}),(M,k)=>(d.openBlock(),d.createBlock(gt,{visible:f.value,title:"设置","full-height":i.fullHeight,onClose:D,"onUpdate:visible":k[25]||(k[25]=B=>f.value=B)},{default:d.withCtx(()=>[d.createElementVNode("div",ek,[d.createElementVNode("div",tk,[d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="GIS"}]),onClick:k[0]||(k[0]=B=>m.value="GIS")},"GIS",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="MAP"}]),onClick:k[1]||(k[1]=B=>m.value="MAP")},"地图",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="RENDER"}]),onClick:k[2]||(k[2]=B=>m.value="RENDER")},"渲染",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:m.value==="MOUSE"}]),onClick:k[3]||(k[3]=B=>m.value="MOUSE")},"鼠标",2)]),d.createElementVNode("div",ik,[m.value==="GIS"?(d.openBlock(),d.createElementBlock("div",nk,[d.createElementVNode("div",sk,[k[26]||(k[26]=d.createElementVNode("span",null,"地球 (含大气/日月/星空)",-1)),d.createVNode(d.unref(t),{checked:y.globe,"onUpdate:checked":k[4]||(k[4]=B=>y.globe=B),size:"small"},null,8,["checked"])]),d.createElementVNode("div",ok,[k[27]||(k[27]=d.createElementVNode("span",null,"地形 (高程)",-1)),d.createVNode(d.unref(t),{checked:y.terrain,"onUpdate:checked":k[5]||(k[5]=B=>y.terrain=B),size:"small"},null,8,["checked"])]),d.createElementVNode("div",rk,[k[28]||(k[28]=d.createElementVNode("span",null,"地形遮挡",-1)),d.createVNode(d.unref(t),{checked:y.depthTest,"onUpdate:checked":k[6]||(k[6]=B=>y.depthTest=B),size:"small"},null,8,["checked"])])])):d.createCommentVNode("",!0),m.value==="MAP"?(d.openBlock(),d.createElementBlock("div",ak,[d.createElementVNode("div",lk,[d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:g.provider==="tianditu"}]),onClick:k[7]||(k[7]=B=>g.provider="tianditu")},"天地图",2),d.createElementVNode("div",{class:d.normalizeClass(["tab-item",{active:g.provider==="arcgis"}]),onClick:k[8]||(k[8]=B=>g.provider="arcgis")},"ArcGIS",2)]),g.provider==="tianditu"?(d.openBlock(),d.createElementBlock("div",ck,[d.createElementVNode("div",dk,[k[29]||(k[29]=d.createElementVNode("div",{class:"sub-label"},"地图风格",-1)),d.createVNode(d.unref(a),{value:g.tianditu.layerType,"onUpdate:value":k[9]||(k[9]=B=>g.tianditu.layerType=B),size:"small",style:{width:"100%"}},{default:d.withCtx(()=>[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(x,B=>d.createVNode(d.unref(l),{key:B.value,value:B.value},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(B.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"])]),d.createElementVNode("div",hk,[k[30]||(k[30]=d.createElementVNode("span",null,"路网注记",-1)),d.createVNode(d.unref(t),{checked:g.tianditu.showLabel,"onUpdate:checked":k[10]||(k[10]=B=>g.tianditu.showLabel=B),size:"small"},null,8,["checked"])])])):d.createCommentVNode("",!0),g.provider==="arcgis"?(d.openBlock(),d.createElementBlock("div",uk,[d.createElementVNode("div",fk,[k[31]||(k[31]=d.createElementVNode("div",{class:"sub-label"},"服务地址",-1)),d.createVNode(d.unref(o),{value:g.arcgis.url,"onUpdate:value":k[11]||(k[11]=B=>g.arcgis.url=B),size:"small",placeholder:"输入ArcGIS MapServer地址"},null,8,["value"])])])):d.createCommentVNode("",!0),d.createElementVNode("div",pk,[k[32]||(k[32]=d.createElementVNode("div",{class:"sub-label"},"位置搜索 (天地图)",-1)),d.createElementVNode("div",mk,[d.createVNode(d.unref(o),{value:S.value,"onUpdate:value":k[12]||(k[12]=B=>S.value=B),placeholder:"输入地名搜索",size:"small","allow-clear":"",loading:w.value},null,8,["value","loading"]),T.value.length>0?(d.openBlock(),d.createElementBlock("div",gk,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(T.value,(B,P)=>(d.openBlock(),d.createElementBlock("div",{key:P,class:"search-result-item",onClick:V=>L(B)},[d.createElementVNode("span",Ak,d.toDisplayString(B.name),1),d.createElementVNode("span",vk,d.toDisplayString(B.lon.toFixed(4))+", "+d.toDisplayString(B.lat.toFixed(4)),1)],8,yk))),128))])):d.createCommentVNode("",!0)])])])):d.createCommentVNode("",!0),m.value==="RENDER"?(d.openBlock(),d.createElementBlock("div",bk,[d.createElementVNode("div",wk,[k[33]||(k[33]=d.createElementVNode("span",null,"阴影",-1)),d.createVNode(d.unref(t),{checked:A.shadows,"onUpdate:checked":k[13]||(k[13]=B=>A.shadows=B),size:"small"},null,8,["checked"])]),A.shadows?(d.openBlock(),d.createElementBlock("div",Ck,[d.createElementVNode("div",Ek,"阴影暗度 ("+d.toDisplayString(A.shadowDarkness.toFixed(2))+")",1),d.createVNode(d.unref(r),{value:A.shadowDarkness,"onUpdate:value":k[14]||(k[14]=B=>A.shadowDarkness=B),min:0,max:1,step:.05,size:"small"},null,8,["value"])])):d.createCommentVNode("",!0),d.createElementVNode("div",xk,[k[34]||(k[34]=d.createElementVNode("span",null,"环境贴图 (HDR)",-1)),d.createVNode(d.unref(t),{checked:A.environmentMap,"onUpdate:checked":k[15]||(k[15]=B=>A.environmentMap=B),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Ik,[k[35]||(k[35]=d.createElementVNode("span",null,"环境光遮蔽 (AO)",-1)),d.createVNode(d.unref(t),{checked:A.ambientOcclusion,"onUpdate:checked":k[16]||(k[16]=B=>A.ambientOcclusion=B),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Sk,[k[36]||(k[36]=d.createElementVNode("div",{class:"sub-label"},"日期时间",-1)),d.createVNode(d.unref(c),{value:A.time,"onUpdate:value":k[17]||(k[17]=B=>A.time=B),"show-time":"",locale:d.unref(wm),format:"YYYY-MM-DD HH:mm",size:"small",style:{width:"100%"}},null,8,["value","locale"])]),d.createElementVNode("div",Mk,[d.createElementVNode("div",Tk,"模型亮度 ("+d.toDisplayString(A.brightness.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:A.brightness,"onUpdate:value":k[18]||(k[18]=B=>A.brightness=B),min:0,max:5,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",Bk,[d.createElementVNode("div",_k,"模型对比度 ("+d.toDisplayString(A.contrast.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:A.contrast,"onUpdate:value":k[19]||(k[19]=B=>A.contrast=B),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",kk,[d.createElementVNode("div",Pk,"模型饱和度 ("+d.toDisplayString(A.saturation.toFixed(1))+")",1),d.createVNode(d.unref(r),{value:A.saturation,"onUpdate:value":k[20]||(k[20]=B=>A.saturation=B),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),d.createElementVNode("div",Dk,[k[37]||(k[37]=d.createElementVNode("div",{class:"sub-label"},"背景颜色",-1)),d.createElementVNode("div",Nk,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(C,(B,P)=>d.createElementVNode("div",{key:P,style:d.normalizeStyle({background:B,width:"32px",height:"24px",borderRadius:"2px",cursor:"pointer",border:"1px solid #d9d9d9",flexShrink:0}),onClick:V=>A.backgroundColor=B,title:"预设 "+(P+1)},null,12,Lk)),64))]),d.createElementVNode("div",Rk,[d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":k[21]||(k[21]=B=>E.value=B),style:{width:"40px",height:"24px",padding:"0",border:"1px solid #d9d9d9"}},null,512),[[d.vModelText,E.value]]),d.createVNode(d.unref(o),{value:A.backgroundColor,"onUpdate:value":k[22]||(k[22]=B=>A.backgroundColor=B),size:"small",style:{flex:"1"},placeholder:"CSS 颜色值"},null,8,["value"])])])])):d.createCommentVNode("",!0),m.value==="MOUSE"?(d.openBlock(),d.createElementBlock("div",Fk,[d.createElementVNode("div",Ok,[k[38]||(k[38]=d.createElementVNode("span",null,"碰撞检测",-1)),d.createVNode(d.unref(t),{checked:v.collision,"onUpdate:checked":k[23]||(k[23]=B=>v.collision=B),size:"small"},null,8,["checked"])]),d.createElementVNode("div",Gk,[k[41]||(k[41]=d.createElementVNode("div",{class:"sub-label"},"操作习惯",-1)),d.createVNode(d.unref(n),{value:v.habit,"onUpdate:value":k[24]||(k[24]=B=>v.habit=B),size:"small"},{default:d.withCtx(()=>[d.createVNode(d.unref(s),{value:0},{default:d.withCtx(()=>[...k[39]||(k[39]=[d.createTextVNode("默认 (中键旋转)",-1)])]),_:1}),d.createVNode(d.unref(s),{value:1},{default:d.withCtx(()=>[...k[40]||(k[40]=[d.createTextVNode("习惯1 (左键旋转)",-1)])]),_:1})]),_:1},8,["value"])])])):d.createCommentVNode("",!0)])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-b69becf5"]]),Uk={class:"cad-layer-panel"},Vk={class:"layer-list-container"},Qk={class:"list-header"},zk={class:"col-check"},Hk=["checked"],Yk={class:"list-body"},$k={class:"col-check"},jk=["checked","onChange"],Wk={class:"col-index"},qk=["title"],Kk={class:"col-color"},Xk=["value"],Jk={key:0,class:"empty-text"},Zk=Be(d.defineComponent({__name:"LeitingCadLayer",props:{visible:{type:Boolean,default:!1},currentModelId:{type:String,default:""}},emits:["update:visible","handleCloseCardByCadCard"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods",d.ref({})),o=d.ref(""),r=d.ref([]),a=()=>{s.value&&s.value.getDxfModels&&(r.value=s.value.getDxfModels().map(v=>({modelId:v.modelId,modelName:v.modelName}))||[])},l=d.computed(()=>r.value.map(v=>({value:v.modelId,label:v.modelName}))),c=d.ref([]),h=d.ref([]),u=d.computed(()=>c.value.length>0&&h.value.length===c.value.length),p=({modelId:v})=>{if(c.value=[],h.value=[],s.value&&s.value.getDxfLayers){const b=s.value.getDxfLayers({modelId:v});b&&Object.keys(b).forEach((C,x)=>{b[C].length&&(c.value.push({index:x+1,layerName:C,layerColor:b[C][0].color||"#ffffff",key:C}),h.value.push(C))})}},f=v=>{o.value=v,p({modelId:v})},m=v=>{v.target.checked?h.value=c.value.map(C=>C.key):h.value=[],g()},y=(v,b)=>{b.target.checked?h.value.includes(v)||h.value.push(v):h.value=h.value.filter(x=>x!==v),g()},g=()=>{if(s.value&&s.value.showDxfLayer&&(s.value.showDxfLayer({modelId:o.value,show:!0,layers:h.value}),s.value.getDxfLayers)){const v=s.value.getDxfLayers({modelId:o.value});if(v){const b=Object.keys(v).filter(C=>!h.value.includes(C));s.value.showDxfLayer({modelId:o.value,show:!1,layers:b})}}},A=()=>{n("update:visible",!1),n("handleCloseCardByCadCard")};return d.watch(()=>t.visible,v=>{v&&(a(),t.currentModelId?(o.value=t.currentModelId,p({modelId:t.currentModelId})):l.value.length>0&&(o.value=l.value[0]?.value,p({modelId:o.value})))}),d.watch(()=>t.currentModelId,v=>{v&&t.visible&&(o.value=v,p({modelId:v}))}),(v,b)=>(d.openBlock(),d.createBlock(gt,{visible:i.visible,title:"CAD图层","onUpdate:visible":b[3]||(b[3]=C=>v.$emit("update:visible",C)),onClose:A,width:360,align:"right","initial-position":{x:0,y:60}},{"header-extra":d.withCtx(()=>[d.createElementVNode("div",{class:"header-select-container",onMousedown:b[2]||(b[2]=d.withModifiers(()=>{},["stop"]))},[b[4]||(b[4]=d.createElementVNode("span",{class:"header-label"},"图纸:",-1)),d.createVNode(d.unref(re.Select),{value:o.value,"onUpdate:value":b[0]||(b[0]=C=>o.value=C),options:l.value,onChange:b[1]||(b[1]=C=>f(C)),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",Uk,[d.createElementVNode("div",Vk,[d.createElementVNode("div",Qk,[d.createElementVNode("div",zk,[d.createElementVNode("input",{type:"checkbox",checked:u.value,onChange:m},null,40,Hk)]),b[5]||(b[5]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),b[6]||(b[6]=d.createElementVNode("div",{class:"col-name"},"图层名称",-1)),b[7]||(b[7]=d.createElementVNode("div",{class:"col-color"},"颜色",-1))]),d.createElementVNode("div",Yk,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(c.value,C=>(d.openBlock(),d.createElementBlock("div",{key:C.key,class:"list-item"},[d.createElementVNode("div",$k,[d.createElementVNode("input",{type:"checkbox",checked:h.value.includes(C.key),onChange:x=>y(C.key,x)},null,40,jk)]),d.createElementVNode("div",Wk,d.toDisplayString(C.index),1),d.createElementVNode("div",{class:"col-name",title:C.layerName},d.toDisplayString(C.layerName),9,qk),d.createElementVNode("div",Kk,[d.createElementVNode("input",{type:"color",value:C.layerColor,disabled:""},null,8,Xk)])]))),128)),c.value.length===0?(d.openBlock(),d.createElementBlock("div",Jk,"暂无数据")):d.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-a4db4977"]]),eP={class:"leiting-cad-adjust-panel"},tP={class:"leitingbim-control-panel"},iP={class:"form-item"},nP={class:"radio-group"},sP={class:"form-item"},oP=["title"],rP={class:"param-row"},aP=["step"],lP={class:"param-row"},cP=["step"],dP={class:"param-row"},hP=["step"],uP={class:"param-row"},fP=["step"],pP={class:"param-row"},mP=["step"],gP={class:"param-row"},yP=["step"],AP={class:"param-row"},vP=["step"],bP={class:"button-grid"},wP={key:1,class:"pick-mode-ui"},CP=["onClick"],EP=["checked"],xP={style:{"font-size":"12px",color:"#aaa","padding-left":"10px"}},IP={class:"param-row"},SP={style:{width:"40px"}},MP=["onUpdate:modelValue"],TP={class:"param-row"},BP={style:{width:"40px"}},_P=["onUpdate:modelValue"],kP={class:"param-row"},PP={style:{width:"40px"}},DP=["onUpdate:modelValue"],NP={class:"list-panel"},LP={class:"list-header"},RP={class:"col-check"},FP=["checked"],OP={class:"list-body"},GP={class:"col-check"},UP=["onUpdate:modelValue"],VP={class:"col-index"},QP=["title"],zP={class:"col-main"},HP=["checked","onChange"],YP={key:0,style:{padding:"10px","text-align":"center",color:"#999"}},$P=Be(d.defineComponent({__name:"LeitingCadPosition",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","handleSavingByCadCard","clearBimPointList","save"],setup(i,{expose:e,emit:t}){const n=i,s=t,o=d.inject("leitingMethods"),r=d.ref([]),a=d.ref(""),l=d.computed(()=>r.value.length>0&&r.value.every(k=>k.selected)),c=d.ref("param"),h=d.ref(!1),u=d.ref("bimPoint1"),p=d.ref(null),f=d.ref("bimPoint1"),m=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}}),y=d.ref(1e-6),g=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 k=r.value.find(B=>B.modelId===a.value);return k?k.modelName:""}),v=()=>{s("update:visible",!1)},b=()=>(!p.value&&o?.value?.getViewer&&o?.value?.getCesium&&(p.value=new vc(o.value.getViewer(),o.value.getCesium())),p.value),C=()=>{b()?.clearMarkers(),m.bimPoint1.longitude=void 0,m.bimPoint1.latitude=void 0,m.bimPoint1.height=void 0,m.bimPoint2.longitude=void 0,m.bimPoint2.latitude=void 0,m.bimPoint2.height=void 0},x=k=>{const B=u.value,P=m[B];if(P){P.longitude=k.longitude,P.latitude=k.latitude,P.height=k.height;const V=B==="bimPoint1"?"BIM":"MAP";b()?.addMarker(V,k),me.success(`${P.type}已添加`)}},I=()=>{b()?.registerPickHandler(k=>{x(k)})},E=()=>{b()?.destroyPickHandler()},S=k=>{c.value=k,k!=="pick"&&s("clearBimPointList")};d.watch(()=>c.value,k=>{k==="pick"?I():E()}),d.onUnmounted(()=>{E()});const w=()=>{if(!o?.value?.getDxfModels)return;const k=o.value.getDxfModels();if(Array.isArray(k)?r.value=k.map(B=>({modelId:B.modelId,modelName:B.modelName,formData:B.formData||{},selected:!1,tileset:B})):r.value=[],r.value.length>0){const B=o.value.getCadModelId?o.value.getCadModelId():"";B&&r.value.find(P=>P.modelId===B)?T(B):T(r.value[0].modelId),r.value.forEach(P=>P.selected=!0)}},T=k=>{a.value=k;const B=r.value.find(P=>P.modelId===k);B&&B.formData&&Object.keys(g).forEach(P=>{B.formData[P]!==void 0&&(g[P]=B.formData[P])})},_=(k,B)=>{if(!o?.value?.adjustingModelByCad)return;const P=r.value.find(V=>V.modelId===k);P&&P.tileset&&(P.formData={...P.formData,...B},P.tileset.formData=P.formData,o.value.adjustingModelByCad({...P.formData,tileset:P.tileset}))},F=k=>{if(!a.value)return;const B=g[k];_(a.value,{[k]:B})},U=k=>{const B=r.value.filter(R=>R.selected);if(B.length===0){me.warning("请先选择要调整的模型");return}const{distance:P,heightDistance:V,rotation:G}=g;B.forEach(R=>{const N={...R.formData};switch(k){case"north":N.latitude+=P;break;case"south":N.latitude-=P;break;case"east":N.longitude+=P;break;case"west":N.longitude-=P;break;case"up":N.height+=V;break;case"down":N.height-=V;break;case"rotateLeft":N.totalRotation=(N.totalRotation||0)-G;break;case"rotateRight":N.totalRotation=(N.totalRotation||0)+G;break}R.modelId===a.value&&Object.assign(g,N),_(R.modelId,N)})},L=k=>{const B=k.target.checked;r.value.forEach(P=>P.selected=B)},D=()=>{s("handleSavingByCadCard",r.value),s("save",r.value)},M=()=>{const k=m.bimPoint1,B=m.bimPoint2;if(k.longitude===void 0||B.longitude===void 0){me.warning("请先完成点选操作");return}const P=r.value.filter(O=>O.selected);if(P.length===0){me.warning("请先选择要调整的模型");return}let V=0,G=0,R=0;const N=b();if(N){const{dLon:O,dLat:z,dHeight:j}=N.calculateOffset(k,B);V=O,G=z,R=j}else V=B.longitude-k.longitude,G=B.latitude-k.latitude,R=B.height-k.height;P.forEach(O=>{const z={...O.formData};z.longitude+=V,z.latitude+=G,z.height+=R,O.modelId===a.value&&Object.assign(g,z),_(O.modelId,z)}),me.success("位置已调整")};return d.watch(()=>n.visible,k=>{k?w():(E(),C())}),d.onMounted(()=>{n.visible&&w()}),e({setBIMPointsList:({longitude:k,latitude:B,height:P})=>{m[f.value].longitude=k,m[f.value].latitude=B,m[f.value].height=P},addGltfOr3dTilesModelList:k=>{console.warn("addGltfOr3dTilesModelList is deprecated, use internal loading")}}),(k,B)=>(d.openBlock(),d.createBlock(gt,{visible:n.visible,title:"Cad校准",width:h.value?520:void 0,height:600,"onUpdate:visible":B[22]||(B[22]=P=>s("update:visible",P)),onClose:v},{default:d.withCtx(()=>[d.createElementVNode("div",eP,[d.createElementVNode("div",tP,[d.createElementVNode("div",iP,[B[23]||(B[23]=d.createElementVNode("label",null,"调整操作:",-1)),d.createElementVNode("div",nP,[d.createElementVNode("span",{class:d.normalizeClass({active:c.value==="param"}),onClick:B[0]||(B[0]=P=>S("param"))},"参数模式",2),d.createElementVNode("span",{class:d.normalizeClass({active:c.value==="pick"}),onClick:B[1]||(B[1]=P=>S("pick"))},"地图点选",2)])]),d.createElementVNode("div",sP,[B[24]||(B[24]=d.createElementVNode("label",null,"主模型:",-1)),d.createElementVNode("span",{class:"value",title:A.value},d.toDisplayString(A.value||"未选择"),9,oP),d.createElementVNode("button",{class:"toggle-list-btn",onClick:B[2]||(B[2]=P=>h.value=!h.value)},d.toDisplayString(h.value?"收起":"查看详情"),1)]),B[36]||(B[36]=d.createElementVNode("div",{class:"separator"},null,-1)),c.value==="param"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[B[32]||(B[32]=d.createElementVNode("div",{class:"group-header"},"当前状态",-1)),d.createElementVNode("div",rP,[B[25]||(B[25]=d.createElementVNode("label",null,"经度(东西):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[3]||(B[3]=P=>g.longitude=P),onChange:B[4]||(B[4]=P=>F("longitude")),step:y.value},null,40,aP),[[d.vModelText,g.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",lP,[B[26]||(B[26]=d.createElementVNode("label",null,"纬度(南北):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[5]||(B[5]=P=>g.latitude=P),onChange:B[6]||(B[6]=P=>F("latitude")),step:y.value},null,40,cP),[[d.vModelText,g.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",dP,[B[27]||(B[27]=d.createElementVNode("label",null,"高度(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[7]||(B[7]=P=>g.height=P),onChange:B[8]||(B[8]=P=>F("height")),step:y.value},null,40,hP),[[d.vModelText,g.height,void 0,{number:!0}]])]),d.createElementVNode("div",uP,[B[28]||(B[28]=d.createElementVNode("label",null,"累计旋转(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[9]||(B[9]=P=>g.totalRotation=P),onChange:B[10]||(B[10]=P=>F("totalRotation")),step:y.value},null,40,fP),[[d.vModelText,g.totalRotation,void 0,{number:!0}]])]),B[33]||(B[33]=d.createElementVNode("div",{class:"separator"},null,-1)),B[34]||(B[34]=d.createElementVNode("div",{class:"group-header"},"调整步长",-1)),d.createElementVNode("div",pP,[B[29]||(B[29]=d.createElementVNode("label",null,"经纬步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[11]||(B[11]=P=>g.distance=P),step:y.value},null,8,mP),[[d.vModelText,g.distance,void 0,{number:!0}]])]),d.createElementVNode("div",gP,[B[30]||(B[30]=d.createElementVNode("label",null,"高度步长(m):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[12]||(B[12]=P=>g.heightDistance=P),step:y.value},null,8,yP),[[d.vModelText,g.heightDistance,void 0,{number:!0}]])]),d.createElementVNode("div",AP,[B[31]||(B[31]=d.createElementVNode("label",null,"旋转步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":B[13]||(B[13]=P=>g.rotation=P),step:y.value},null,8,vP),[[d.vModelText,g.rotation,void 0,{number:!0}]])]),d.createElementVNode("div",bP,[d.createElementVNode("button",{onClick:B[14]||(B[14]=P=>U("rotateLeft"))},"左转"),d.createElementVNode("button",{onClick:B[15]||(B[15]=P=>U("north"))},"北移"),d.createElementVNode("button",{onClick:B[16]||(B[16]=P=>U("rotateRight"))},"右转"),d.createElementVNode("button",{onClick:B[17]||(B[17]=P=>U("west"))},"西移"),d.createElementVNode("button",{onClick:B[18]||(B[18]=P=>U("south"))},"南移"),d.createElementVNode("button",{onClick:B[19]||(B[19]=P=>U("east"))},"东移"),d.createElementVNode("button",{onClick:B[20]||(B[20]=P=>U("up"))},"上移"),d.createElementVNode("button",{onClick:B[21]||(B[21]=P=>U("down"))},"下移"),d.createElementVNode("button",{onClick:D,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):(d.openBlock(),d.createElementBlock("div",wP,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(m,(P,V)=>(d.openBlock(),d.createElementBlock("div",{key:V,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:G=>u.value=V},[d.createElementVNode("input",{type:"radio",checked:u.value===V,style:{"margin-right":"5px"}},null,8,EP),d.createTextVNode(" "+d.toDisplayString(P.type)+": ",1)],8,CP),d.createElementVNode("div",xP,[d.createElementVNode("div",IP,[d.createElementVNode("label",SP,d.toDisplayString(P.longitudeText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":G=>P.longitude=G,readonly:"",style:{width:"100px"}},null,8,MP),[[d.vModelText,P.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",TP,[d.createElementVNode("label",BP,d.toDisplayString(P.latitudeText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":G=>P.latitude=G,readonly:"",style:{width:"100px"}},null,8,_P),[[d.vModelText,P.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",kP,[d.createElementVNode("label",PP,d.toDisplayString(P.heightText),1),d.withDirectives(d.createElementVNode("input",{type:"number","onUpdate:modelValue":G=>P.height=G,readonly:"",style:{width:"100px"}},null,8,DP),[[d.vModelText,P.height,void 0,{number:!0}]])])])]))),128)),d.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[d.createElementVNode("button",{onClick:M,class:"primary-btn"},"应用校准"),d.createElementVNode("button",{onClick:D},"保存")]),B[35]||(B[35]=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.withDirectives(d.createElementVNode("div",NP,[d.createElementVNode("div",LP,[d.createElementVNode("div",RP,[d.createElementVNode("input",{type:"checkbox",checked:l.value,onChange:L},null,40,FP)]),B[37]||(B[37]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),B[38]||(B[38]=d.createElementVNode("div",{class:"col-name"},"名称",-1)),B[39]||(B[39]=d.createElementVNode("div",{class:"col-main"},"主模型",-1))]),d.createElementVNode("div",OP,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(r.value,(P,V)=>(d.openBlock(),d.createElementBlock("div",{key:P.modelId,class:d.normalizeClass(["list-item",{active:P.modelId===a.value}])},[d.createElementVNode("div",GP,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":G=>P.selected=G},null,8,UP),[[d.vModelCheckbox,P.selected]])]),d.createElementVNode("div",VP,d.toDisplayString(V+1),1),d.createElementVNode("div",{class:"col-name",title:P.modelName},d.toDisplayString(P.modelName),9,QP),d.createElementVNode("div",zP,[d.createElementVNode("input",{type:"radio",name:"mainModel",checked:P.modelId===a.value,onChange:G=>T(P.modelId)},null,40,HP)])],2))),128)),r.value.length===0?(d.openBlock(),d.createElementBlock("div",YP,"暂无数据")):d.createCommentVNode("",!0)])],512),[[d.vShow,h.value]])])]),_:1},8,["visible","width"]))}}),[["__scopeId","data-v-db1aee6f"]]),jP={class:"coord-transform-card"},WP={class:"param-row"},qP={class:"param-row"},KP={class:"param-row"},XP={class:"param-row"},JP={class:"param-row"},ZP={class:"param-row"},eD={class:"param-row"},tD={class:"button-grid transform-actions"},iD=Be(d.defineComponent({__name:"LeitingGISCadCoordTransform",emits:["apply-transform","save-position"],setup(i,{emit:e}){const t=e,n=d.inject("leitingMethods"),s=d.ref("projectedToLonlat"),o=d.reactive({centralMeridian:117,latOrigin:0,scaleFactor:1,falseEasting:5e5,falseNorthing:0,ellipsoid:"GRS80"}),r=()=>{const l=n?.value?.getDefaultGISCadTransformConfig?.()||{centralMeridian:117,latOrigin:0,scaleFactor:1,falseEasting:5e5,falseNorthing:0,ellipsoid:"GRS80"};Object.assign(o,l)},a=()=>{t("apply-transform",{direction:s.value,config:{...o}})};return r(),(l,c)=>(d.openBlock(),d.createElementBlock("div",jP,[d.createElementVNode("div",WP,[c[10]||(c[10]=d.createElementVNode("label",null,"转换方向:",-1)),d.createVNode(d.unref(re.Select),{value:s.value,"onUpdate:value":c[0]||(c[0]=h=>s.value=h),class:"custom-select",popupClassName:"leiting-select-dropdown",size:"small"},{default:d.withCtx(()=>[d.createVNode(d.unref(re.SelectOption),{value:"projectedToLonlat"},{default:d.withCtx(()=>[...c[8]||(c[8]=[d.createTextVNode("投影转经纬 (根据模型局部坐标)",-1)])]),_:1}),d.createVNode(d.unref(re.SelectOption),{value:"lonlatToProjected"},{default:d.withCtx(()=>[...c[9]||(c[9]=[d.createTextVNode("经纬转投影 (根据模型经纬度)",-1)])]),_:1})]),_:1},8,["value"])]),d.createElementVNode("div",qP,[c[11]||(c[11]=d.createElementVNode("label",null,"中央经线:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":c[1]||(c[1]=h=>o.centralMeridian=h),type:"number"},null,512),[[d.vModelText,o.centralMeridian,void 0,{number:!0}]])]),d.createElementVNode("div",KP,[c[12]||(c[12]=d.createElementVNode("label",null,"纬度基线:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":c[2]||(c[2]=h=>o.latOrigin=h),type:"number"},null,512),[[d.vModelText,o.latOrigin,void 0,{number:!0}]])]),d.createElementVNode("div",XP,[c[13]||(c[13]=d.createElementVNode("label",null,"投影比例:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":c[3]||(c[3]=h=>o.scaleFactor=h),type:"number",step:"0.000001"},null,512),[[d.vModelText,o.scaleFactor,void 0,{number:!0}]])]),d.createElementVNode("div",JP,[c[14]||(c[14]=d.createElementVNode("label",null,"东偏移:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":c[4]||(c[4]=h=>o.falseEasting=h),type:"number"},null,512),[[d.vModelText,o.falseEasting,void 0,{number:!0}]])]),d.createElementVNode("div",ZP,[c[15]||(c[15]=d.createElementVNode("label",null,"北偏移:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":c[5]||(c[5]=h=>o.falseNorthing=h),type:"number"},null,512),[[d.vModelText,o.falseNorthing,void 0,{number:!0}]])]),d.createElementVNode("div",eD,[c[20]||(c[20]=d.createElementVNode("label",null,"椭球体:",-1)),d.createVNode(d.unref(re.Select),{value:o.ellipsoid,"onUpdate:value":c[6]||(c[6]=h=>o.ellipsoid=h),class:"custom-select",popupClassName:"leiting-select-dropdown",size:"small"},{default:d.withCtx(()=>[d.createVNode(d.unref(re.SelectOption),{value:"GRS80"},{default:d.withCtx(()=>[...c[16]||(c[16]=[d.createTextVNode("CGCS2000 (GRS80)",-1)])]),_:1}),d.createVNode(d.unref(re.SelectOption),{value:"WGS84"},{default:d.withCtx(()=>[...c[17]||(c[17]=[d.createTextVNode("WGS84",-1)])]),_:1}),d.createVNode(d.unref(re.SelectOption),{value:"krass"},{default:d.withCtx(()=>[...c[18]||(c[18]=[d.createTextVNode("北京54 (Krassovsky)",-1)])]),_:1}),d.createVNode(d.unref(re.SelectOption),{value:"IAU76"},{default:d.withCtx(()=>[...c[19]||(c[19]=[d.createTextVNode("西安80 (IAU76)",-1)])]),_:1})]),_:1},8,["value"])]),d.createElementVNode("div",tD,[d.createElementVNode("button",{class:"primary-btn",onClick:a,style:{"grid-column":"span 2"}},"应用到选中模型"),d.createElementVNode("button",{onClick:c[7]||(c[7]=h=>t("save-position"))},"保存位置")]),c[21]||(c[21]=d.createElementVNode("div",{class:"instructions"},[d.createElementVNode("div",null,"操作指南:"),d.createElementVNode("div",null,"1. 在列表中勾选需要转换的模型。"),d.createElementVNode("div",null,"2. 配置对应坐标系的转换参数。"),d.createElementVNode("div",null,"3. 点击“应用到选中模型”进行批量转换预览。")],-1))]))}}),[["__scopeId","data-v-f069993f"]]),nD={class:"leiting-giscad-adjustment-panel"},sD={class:"leitingbim-control-panel"},oD={class:"form-item"},rD={class:"radio-group"},aD={class:"form-item"},lD=["title"],cD={class:"param-row"},dD=["step"],hD={class:"param-row"},uD=["step"],fD={class:"param-row"},pD=["step"],mD={class:"param-row"},gD=["step"],yD={class:"param-row"},AD=["step"],vD={class:"param-row"},bD=["step"],wD={class:"param-row"},CD=["step"],ED={class:"param-row"},xD=["step"],ID={class:"param-row"},SD=["step"],MD={class:"button-grid"},TD={class:"action-buttons"},BD={key:1,class:"pick-mode-ui"},_D=["onClick"],kD=["checked","onChange"],PD={class:"pick-point-body"},DD={class:"param-row"},ND={class:"pick-label"},LD=["onUpdate:modelValue"],RD={class:"param-row"},FD={class:"pick-label"},OD=["onUpdate:modelValue"],GD={class:"param-row"},UD={class:"pick-label"},VD=["onUpdate:modelValue"],QD={class:"button-grid pick-button-grid"},zD={class:"list-panel"},HD={class:"list-header"},YD={class:"col-check"},$D=["checked"],jD={class:"list-body"},WD={class:"col-check"},qD=["onUpdate:modelValue"],KD={class:"col-index"},XD=["title"],JD={class:"col-main"},ZD=["checked","onChange"],eN={key:0,class:"empty-text"},tN=Be(d.defineComponent({__name:"LeitingGISCadPosition",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref(1e-6),r=d.ref([]),a=d.ref(""),l=d.ref("param"),c=d.ref(!1),h=d.ref("cadPoint"),u=d.ref(null),p=d.reactive({cadPoint:{longitude:void 0,latitude:void 0,height:void 0,type:"CAD标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程"},mapPoint:{longitude:void 0,latitude:void 0,height:void 0,type:"地图标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程"}}),f=d.reactive({modelId:"",longitude:0,latitude:0,height:0,totalRotation:0,scale:1,distance:1e-4,heightDistance:1,rotation:1,scaleStep:.1,localOriginX:0,localOriginY:0,clampToGround:!1}),m=d.computed(()=>r.value.length>0&&r.value.every(N=>N.selected)),y=d.computed(()=>r.value.find(N=>N.modelId===a.value)?.modelName||""),g=()=>(!u.value&&s?.value?.getViewer&&s?.value?.getCesium&&(u.value=new vc(s.value.getViewer(),s.value.getCesium())),u.value),A=()=>{p.cadPoint.longitude=void 0,p.cadPoint.latitude=void 0,p.cadPoint.height=void 0,p.mapPoint.longitude=void 0,p.mapPoint.latitude=void 0,p.mapPoint.height=void 0},v=()=>{u.value?.clearMarkers(),A()},b=N=>{const O=h.value,z=p[O];z&&(z.longitude=N.longitude,z.latitude=N.latitude,z.height=N.height,g()?.addMarker(O==="cadPoint"?"BIM":"MAP",N),me.success(`${z.type}已添加`))},C=()=>{g()?.registerPickHandler(O=>{b(O)})},x=()=>{u.value?.destroyPickHandler()},I=N=>{l.value=N},E=N=>{(N==="cadPoint"||N==="mapPoint")&&(h.value=N)},S=N=>{const O=N?.editingFormData||N?.formData||{};return{modelId:N?.modelId||"",longitude:Number(O.longitude??0),latitude:Number(O.latitude??0),height:Number(O.height??0),totalRotation:Number(O.totalRotation??0),scale:Math.max(1e-6,Number(O.scale??1)),distance:Number(O.distance??1e-6),heightDistance:Number(O.heightDistance??1),rotation:Number(O.rotation??1),scaleStep:Number(O.scaleStep??.1),localOriginX:Number(O.localOriginX??0),localOriginY:Number(O.localOriginY??0),transformConfig:O.transformConfig||void 0,transformDirection:O.transformDirection||void 0,clampToGround:O.clampToGround??!1}},w=()=>{const N=r.value.find(O=>O.modelId===a.value);N&&Object.assign(f,N.formData,{modelId:N.modelId})},T=()=>{if(!s?.value?.getGISCadModels){r.value=[];return}const N=new Map(r.value.map(te=>[te.modelId,te.selected])),O=s.value.getGISCadModels()||[];if(r.value=Array.isArray(O)?O.map(te=>({modelId:te.modelId,modelName:te.modelName,selected:N.get(te.modelId)??!0,runtimeModel:te,formData:S(te)})):[],!r.value.length){a.value="";return}const z=r.value[0];if(!z)return;const j=s.value.getGISCadModelId?.()||a.value||z.modelId,Z=r.value.find(te=>te.modelId===j);a.value=Z?.modelId||z.modelId,w()},_=N=>{a.value=N,w()},F=(N,O)=>{if(!s?.value?.adjustGISCadModel)return null;s.value.beginEditGISCad?.({modelId:N});const z=s.value.adjustGISCadModel({modelId:N,...O}),j=r.value.find(Z=>Z.modelId===N);return j&&z&&(j.formData={...j.formData,...z,modelId:N},j.runtimeModel={...j.runtimeModel,editingFormData:z,isEditing:!0}),N===a.value&&Object.assign(f,j?.formData||f,{modelId:N}),z},U=N=>{if(!a.value)return;const O=r.value.find(te=>te.modelId===a.value);if(!O)return;if(N==="clampToGround"){const te=!!f[N];F(a.value,{[N]:te}),r.value.filter(de=>de.selected&&de.modelId!==a.value).forEach(de=>{F(de.modelId,{[N]:te})});return}const z=Number(f[N]),j=Number(O.formData[N]),Z=z-j;F(a.value,{[N]:N==="scale"?Math.max(1e-6,z):z}),!(Z===0||N==="scale")&&r.value.filter(te=>te.selected&&te.modelId!==a.value).forEach(te=>{F(te.modelId,{[N]:Number(te.formData[N])+Z})})},L=N=>{const O=r.value.filter(z=>z.selected);if(!O.length){me.warning("请先选择要调整的模型");return}O.forEach(z=>{const j={...z.formData};switch(N){case"north":j.latitude+=f.distance;break;case"south":j.latitude-=f.distance;break;case"east":j.longitude+=f.distance;break;case"west":j.longitude-=f.distance;break;case"up":j.height+=f.heightDistance;break;case"down":j.height-=f.heightDistance;break;case"rotateLeft":j.totalRotation-=f.rotation;break;case"rotateRight":j.totalRotation+=f.rotation;break;case"scaleUp":j.scale=Math.max(1e-6,j.scale+f.scaleStep);break;case"scaleDown":j.scale=Math.max(1e-6,j.scale-f.scaleStep);break;default:return}j.distance=f.distance,j.heightDistance=f.heightDistance,j.rotation=f.rotation,j.scaleStep=f.scaleStep,F(z.modelId,j)})},D=({direction:N,config:O})=>{const z=r.value.filter(te=>te.selected);if(!z.length){me.warning("请先选择要转换的模型");return}if(!s?.value?.transformGISCadCoordinate){me.warning("未找到 GIS CAD 坐标转换方法");return}let Z=0;z.forEach(te=>{try{const de=Number(te.formData.localOriginX),pe=Number(te.formData.localOriginY);let Ae={longitude:te.formData.longitude,latitude:te.formData.latitude};const Pe=s?.value?.transformGISCadCoordinate;if(Pe){const Ge=Pe({direction:N,...N==="projectedToLonlat"?{x:de,y:pe}:{longitude:te.formData.longitude,latitude:te.formData.latitude},config:{...O}});N==="projectedToLonlat"&&Ge.longitude&&(Ae.longitude=Ge.longitude,Ae.latitude=Ge.latitude)}F(te.modelId,{transformConfig:{...O},transformDirection:N,longitude:Ae.longitude,latitude:Ae.latitude}),Z++}catch(de){console.warn("Transform failed for model",te.modelId,de)}}),Z>0?me.success(`已成功转换 ${Z} 个模型的坐标并重新加载,请预览后提交贴地`):me.error("坐标转换失败,请检查参数或模型状态")},M=()=>{f.clampToGround=!f.clampToGround,U("clampToGround")},k=()=>{const N=p.cadPoint,O=p.mapPoint;if(N.longitude===void 0||N.latitude===void 0||N.height===void 0||O.longitude===void 0||O.latitude===void 0||O.height===void 0){me.warning("请先完成 CAD 和地图点位采集");return}const j=r.value.filter(pe=>pe.selected);if(!j.length){me.warning("请先选择要调整的模型");return}const{dLon:Z,dLat:te,dHeight:de}=g()?.calculateOffset(N,O)||{dLon:O.longitude-N.longitude,dLat:O.latitude-N.latitude,dHeight:O.height-N.height};j.forEach(pe=>{F(pe.modelId,{longitude:Number(pe.formData.longitude)+Z,latitude:Number(pe.formData.latitude)+te,height:Number(pe.formData.height)+de})}),me.success("点选校准预览已更新")},B=()=>{const N=r.value.filter(z=>z.selected);if(!N.length){me.warning("请先选择要提交的模型");return}const O=[];N.forEach(z=>{const j=s?.value?.commitEditGISCad?.({modelId:z.modelId});j&&j.formData&&O.push({modelId:j.modelId,formData:j.formData})}),T(),O.length>0&&s?.value?.onGISCadPositionChange&&s.value.onGISCadPositionChange(O),me.success("GIS CAD 保存成功")},P=()=>{r.value.forEach(N=>{s?.value?.cancelEditGISCad?.({modelId:N.modelId})})},V=()=>{if(!a.value){me.warning("请先选择主模型");return}if(!s?.value?.flyToGISCadModel){me.warning("飞转方法不可用");return}s.value.flyToGISCadModel({modelId:a.value,duration:1.5})},G=N=>{const O=N.target.checked;r.value.forEach(z=>{z.selected=O})},R=()=>{P(),x(),v(),n("update:visible",!1)};return d.watch(l,N=>{t.visible&&(N==="pick"?C():x())}),d.watch(()=>t.visible,N=>{N?(T(),l.value==="pick"&&C()):(x(),v(),P(),T())}),d.onMounted(()=>{t.visible&&(T(),l.value==="pick"&&C())}),d.onUnmounted(()=>{x(),v(),P()}),(N,O)=>(d.openBlock(),d.createBlock(gt,{visible:t.visible,title:"GIS CAD调整",width:c.value?580:340,"onUpdate:visible":O[28]||(O[28]=z=>n("update:visible",z)),onClose:R},{default:d.withCtx(()=>[d.createElementVNode("div",nD,[d.createElementVNode("div",sD,[d.createElementVNode("div",oD,[O[29]||(O[29]=d.createElementVNode("label",null,"调整操作:",-1)),d.createElementVNode("div",rD,[d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="param"}),onClick:O[0]||(O[0]=z=>I("param"))}," 参数模式 ",2),d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="pick"}),onClick:O[1]||(O[1]=z=>I("pick"))}," 地图点选 ",2),d.createElementVNode("span",{class:d.normalizeClass({active:l.value==="transform"}),onClick:O[2]||(O[2]=z=>I("transform"))}," 坐标转换 ",2)])]),d.createElementVNode("div",aD,[O[30]||(O[30]=d.createElementVNode("label",null,"主模型:",-1)),d.createElementVNode("span",{class:"value",title:y.value},d.toDisplayString(y.value||"未选择"),9,lD),d.createElementVNode("button",{class:"toggle-list-btn",onClick:O[3]||(O[3]=z=>c.value=!c.value)},d.toDisplayString(c.value?"收起":"查看详情"),1)]),O[44]||(O[44]=d.createElementVNode("div",{class:"separator"},null,-1)),l.value==="param"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[O[40]||(O[40]=d.createElementVNode("div",{class:"group-header"},"当前状态",-1)),d.createElementVNode("div",cD,[O[31]||(O[31]=d.createElementVNode("label",null,"经度(东西):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[4]||(O[4]=z=>f.longitude=z),type:"number",step:o.value,onChange:O[5]||(O[5]=z=>U("longitude"))},null,40,dD),[[d.vModelText,f.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",hD,[O[32]||(O[32]=d.createElementVNode("label",null,"纬度(南北):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[6]||(O[6]=z=>f.latitude=z),type:"number",step:o.value,onChange:O[7]||(O[7]=z=>U("latitude"))},null,40,uD),[[d.vModelText,f.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",fD,[O[33]||(O[33]=d.createElementVNode("label",null,"高度(m):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[8]||(O[8]=z=>f.height=z),type:"number",step:o.value,onChange:O[9]||(O[9]=z=>U("height"))},null,40,pD),[[d.vModelText,f.height,void 0,{number:!0}]])]),d.createElementVNode("div",mD,[O[34]||(O[34]=d.createElementVNode("label",null,"累计旋转(°):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[10]||(O[10]=z=>f.totalRotation=z),type:"number",step:o.value,onChange:O[11]||(O[11]=z=>U("totalRotation"))},null,40,gD),[[d.vModelText,f.totalRotation,void 0,{number:!0}]])]),d.createElementVNode("div",yD,[O[35]||(O[35]=d.createElementVNode("label",null,"缩放比例:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[12]||(O[12]=z=>f.scale=z),type:"number",min:"0.000001",step:o.value,onChange:O[13]||(O[13]=z=>U("scale"))},null,40,AD),[[d.vModelText,f.scale,void 0,{number:!0}]])]),O[41]||(O[41]=d.createElementVNode("div",{class:"separator"},null,-1)),O[42]||(O[42]=d.createElementVNode("div",{class:"group-header"},"调整步长",-1)),d.createElementVNode("div",vD,[O[36]||(O[36]=d.createElementVNode("label",null,"经纬步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[14]||(O[14]=z=>f.distance=z),type:"number",step:o.value},null,8,bD),[[d.vModelText,f.distance,void 0,{number:!0}]])]),d.createElementVNode("div",wD,[O[37]||(O[37]=d.createElementVNode("label",null,"高度步长(m):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[15]||(O[15]=z=>f.heightDistance=z),type:"number",step:o.value},null,8,CD),[[d.vModelText,f.heightDistance,void 0,{number:!0}]])]),d.createElementVNode("div",ED,[O[38]||(O[38]=d.createElementVNode("label",null,"旋转步长(°):",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[16]||(O[16]=z=>f.rotation=z),type:"number",step:o.value},null,8,xD),[[d.vModelText,f.rotation,void 0,{number:!0}]])]),d.createElementVNode("div",ID,[O[39]||(O[39]=d.createElementVNode("label",null,"缩放步长:",-1)),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":O[17]||(O[17]=z=>f.scaleStep=z),type:"number",step:o.value},null,8,SD),[[d.vModelText,f.scaleStep,void 0,{number:!0}]])]),d.createElementVNode("div",MD,[d.createElementVNode("button",{onClick:O[18]||(O[18]=z=>L("rotateLeft"))},"左转"),d.createElementVNode("button",{onClick:O[19]||(O[19]=z=>L("north"))},"北移"),d.createElementVNode("button",{onClick:O[20]||(O[20]=z=>L("rotateRight"))},"右转"),d.createElementVNode("button",{onClick:O[21]||(O[21]=z=>L("west"))},"西移"),d.createElementVNode("button",{onClick:O[22]||(O[22]=z=>L("south"))},"南移"),d.createElementVNode("button",{onClick:O[23]||(O[23]=z=>L("east"))},"东移"),d.createElementVNode("button",{onClick:O[24]||(O[24]=z=>L("up"))},"上移"),d.createElementVNode("button",{onClick:O[25]||(O[25]=z=>L("scaleDown"))},"缩小"),d.createElementVNode("button",{onClick:O[26]||(O[26]=z=>L("scaleUp"))},"放大"),d.createElementVNode("button",{onClick:O[27]||(O[27]=z=>L("down"))},"下移")]),d.createElementVNode("div",TD,[d.createElementVNode("button",{class:d.normalizeClass({"primary-btn":f.clampToGround}),onClick:M}," 贴地 ",2),d.createElementVNode("button",{onClick:B},"保存位置"),d.createElementVNode("button",{onClick:V},"正北俯视")])],64)):l.value==="pick"?(d.openBlock(),d.createElementBlock("div",BD,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(p,(z,j)=>(d.openBlock(),d.createElementBlock("div",{key:j,class:"pick-point-item"},[d.createElementVNode("div",{class:"pick-point-title",onClick:Z=>E(j)},[d.createElementVNode("input",{type:"radio",name:"gisCadPickPoint",checked:h.value===j,onChange:Z=>E(j)},null,40,kD),d.createElementVNode("span",null,d.toDisplayString(z.type)+":",1)],8,_D),d.createElementVNode("div",PD,[d.createElementVNode("div",DD,[d.createElementVNode("label",ND,d.toDisplayString(z.longitudeText),1),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":Z=>z.longitude=Z,type:"number",readonly:""},null,8,LD),[[d.vModelText,z.longitude,void 0,{number:!0}]])]),d.createElementVNode("div",RD,[d.createElementVNode("label",FD,d.toDisplayString(z.latitudeText),1),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":Z=>z.latitude=Z,type:"number",readonly:""},null,8,OD),[[d.vModelText,z.latitude,void 0,{number:!0}]])]),d.createElementVNode("div",GD,[d.createElementVNode("label",UD,d.toDisplayString(z.heightText),1),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":Z=>z.height=Z,type:"number",readonly:""},null,8,VD),[[d.vModelText,z.height,void 0,{number:!0}]])])])]))),128)),d.createElementVNode("div",QD,[d.createElementVNode("button",{class:"primary-btn",onClick:k},"应用校准"),d.createElementVNode("button",{class:d.normalizeClass({"primary-btn":f.clampToGround}),onClick:M}," 贴地 ",2),d.createElementVNode("button",{onClick:B},"保存位置"),d.createElementVNode("button",{onClick:V},"正北俯视")]),O[43]||(O[43]=d.createElementVNode("div",{class:"instructions"},[d.createElementVNode("div",null,"操作指南:"),d.createElementVNode("div",null,"1. 先选择上方 CAD 标记点或地图标记点。"),d.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),d.createElementVNode("div",null,"3. 采集两点后,点击“应用校准”进行预览。"),d.createElementVNode("div",null,"4. 确认结果后,点击“提交贴地”生效。")],-1))])):l.value==="transform"?(d.openBlock(),d.createBlock(iD,{key:2,onApplyTransform:D,onSavePosition:B})):d.createCommentVNode("",!0)]),d.withDirectives(d.createElementVNode("div",zD,[d.createElementVNode("div",HD,[d.createElementVNode("div",YD,[d.createElementVNode("input",{type:"checkbox",checked:m.value,onChange:G},null,40,$D)]),O[45]||(O[45]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),O[46]||(O[46]=d.createElementVNode("div",{class:"col-name"},"名称",-1)),O[47]||(O[47]=d.createElementVNode("div",{class:"col-main"},"主模型",-1))]),d.createElementVNode("div",jD,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(r.value,(z,j)=>(d.openBlock(),d.createElementBlock("div",{key:z.modelId,class:d.normalizeClass(["list-item",{active:z.modelId===a.value}])},[d.createElementVNode("div",WD,[d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":Z=>z.selected=Z,type:"checkbox"},null,8,qD),[[d.vModelCheckbox,z.selected]])]),d.createElementVNode("div",KD,d.toDisplayString(j+1),1),d.createElementVNode("div",{class:"col-name",title:z.modelName},d.toDisplayString(z.modelName),9,XD),d.createElementVNode("div",JD,[d.createElementVNode("input",{checked:z.modelId===a.value,type:"radio",name:"gisCadMainModel",onChange:Z=>_(z.modelId)},null,40,ZD)])],2))),128)),r.value.length===0?(d.openBlock(),d.createElementBlock("div",eN,"暂无 GIS CAD 数据")):d.createCommentVNode("",!0)])],512),[[d.vShow,c.value]])])]),_:1},8,["visible","width"]))}}),[["__scopeId","data-v-0380ba06"]]),iN={class:"annotation-content"},nN={class:"annotation-tools"},sN={class:"annotation-controls"},oN={class:"control-group",title:"颜色"},rN={class:"tool-item color-tool"},aN={class:"control-group line-width-container",title:"线宽"},lN=["onClick"],cN={class:"option-label"},dN=Be(d.defineComponent({__name:"LeitingAnnotationCard",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref(""),r=d.ref("#ff0000"),a=d.ref(1),l=d.ref(!1),c=d.ref(null),h=d.ref(null),u=d.ref({top:"0px",left:"0px"}),p=[{value:6,label:"粗"},{value:3,label:"中"},{value:1,label:"细"}],f=()=>s?.value?.getAnnotationInstance?s.value.getAnnotationInstance():null,m=()=>{n("update:visible",!1)},y=E=>{o.value=E;const S=f();if(S)switch(E){case"freehandLine":S.startFreehandLine();break;case"arrow":S.startArrow();break;case"straightLine":S.startStraightLine();break;case"rectangle":S.startRectangle();break;case"ellipse":S.startEllipse();break}},g=()=>{const E=f();E&&(E.setCurrentColor(r.value),E.changeColor(r.value))},A=()=>{if(!l.value&&c.value){const E=c.value.getBoundingClientRect();u.value={top:`${E.top}px`,left:`${E.right+8}px`}}l.value=!l.value},v=E=>{a.value=E,l.value=!1;const S=f();S&&(S.setCurrentWidth(E),S.changeWidth(E))},b=()=>{const E=f();E&&E.deleteSelectedEntity()},C=()=>{const E=f();E&&E.clearAll()},x=()=>{if(s?.value?.saveAnnotations){s.value.saveAnnotations();return}const E=f();E&&E.saveAnnotations()},I=E=>{const S=E.target,w=c.value&&c.value.contains(S),T=h.value&&h.value.contains(S);!w&&!T&&(l.value=!1)};return d.onMounted(()=>{document.addEventListener("click",I)}),d.onUnmounted(()=>{document.removeEventListener("click",I)}),(E,S)=>(d.openBlock(),d.createBlock(gt,{visible:t.visible,title:"标注",width:70,"min-width":70,height:480,"onUpdate:visible":S[6]||(S[6]=w=>n("update:visible",w)),onClose:m},{default:d.withCtx(()=>[d.createElementVNode("div",iN,[d.createElementVNode("div",nN,[d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="freehandLine"}]),onClick:S[0]||(S[0]=w=>y("freehandLine")),title:"手绘线"},[...S[7]||(S[7]=[d.createElementVNode("div",{class:"tool-icon"},"✏️",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="arrow"}]),onClick:S[1]||(S[1]=w=>y("arrow")),title:"箭头"},[...S[8]||(S[8]=[d.createElementVNode("div",{class:"tool-icon"},"↗️",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="straightLine"}]),onClick:S[2]||(S[2]=w=>y("straightLine")),title:"直线"},[...S[9]||(S[9]=[d.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="rectangle"}]),onClick:S[3]||(S[3]=w=>y("rectangle")),title:"矩形"},[...S[10]||(S[10]=[d.createElementVNode("div",{class:"tool-icon"},"▭",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:o.value==="ellipse"}]),onClick:S[4]||(S[4]=w=>y("ellipse")),title:"椭圆"},[...S[11]||(S[11]=[d.createElementVNode("div",{class:"tool-icon"},"⭕",-1)])],2)]),S[13]||(S[13]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",sN,[d.createElementVNode("div",oN,[d.createElementVNode("div",rN,[d.createElementVNode("div",{class:"color-swatch",style:d.normalizeStyle({backgroundColor:r.value})},null,4),d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":S[5]||(S[5]=w=>r.value=w),onChange:g,class:"color-input-overlay"},null,544),[[d.vModelText,r.value]])])]),d.createElementVNode("div",aN,[d.createElementVNode("div",{ref_key:"lineWidthBtnRef",ref:c,class:"tool-item",onClick:d.withModifiers(A,["stop"])},[d.createElementVNode("div",{class:"current-width-preview",style:d.normalizeStyle({height:a.value+"px",backgroundColor:"#fff"})},null,4)],512),(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[l.value?(d.openBlock(),d.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:h,class:"line-width-dropdown",style:d.normalizeStyle(u.value)},[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(p,w=>d.createElementVNode("div",{key:w.value,class:d.normalizeClass(["line-width-option",{selected:a.value===w.value}]),onClick:d.withModifiers(T=>v(w.value),["stop"])},[d.createElementVNode("span",cN,d.toDisplayString(w.label),1),d.createElementVNode("div",{class:"line-preview",style:d.normalizeStyle({height:w.value+"px",backgroundColor:a.value===w.value?"#1890ff":"#ddd"})},null,4)],10,lN)),64))],4)):d.createCommentVNode("",!0)]))]),S[12]||(S[12]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",{class:"action-buttons"},[d.createElementVNode("button",{class:"control-btn",onClick:b,title:"删除选中"}," 🗑️ "),d.createElementVNode("button",{class:"control-btn",onClick:C,title:"清空"}," ❌ "),d.createElementVNode("button",{class:"control-btn",onClick:x,title:"保存"}," 💾 ")])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-3cfc8415"]]),hN={class:"measure-content"},uN={class:"measure-tools"},fN={key:0,class:"measure-results"},pN={class:"result-row"},mN={class:"result-value"},gN={class:"result-row"},yN={class:"result-value"},AN={class:"result-row"},vN={class:"result-value"},bN={class:"result-row"},wN={class:"result-value"},CN={key:1,class:"result-row"},EN={class:"result-value"},xN={key:2,class:"result-row"},IN={class:"result-value"},SN={class:"measure-controls"},MN={class:"control-group",title:"单位"},TN={class:"unit-display"},BN=["onClick"],_N=Be(d.defineComponent({__name:"LeitingMeasurement",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods",d.ref({})),o=d.ref(null),r=d.ref(null),a=d.ref("m"),l=d.ref(!1),c=d.ref(null),h=d.ref(!1),u=d.ref({}),p=d.ref(null),f=[{label:"米 (m)",value:"m"},{label:"厘米 (cm)",value:"cm"},{label:"毫米 (mm)",value:"mm"}],m=E=>{const S=a.value;return S==="mm"?`${(E*1e3).toFixed(0)}mm`:S==="cm"?`${(E*100).toFixed(1)}cm`:`${E.toFixed(2)}m`},y=E=>E>1e6?`${(E/1e6).toFixed(2)} km²`:`${E.toFixed(2)} m²`,g=()=>{if(!o.value&&s.value?.getViewer){const E=s.value.getViewer(),S=s.value.getCesium();E&&S&&(o.value=new pc({viewer:E,cesium:S}),o.value.setUnit(a.value),o.value.setSnapping(l.value),o.value.onMeasure=w=>{c.value=w})}},A=E=>{o.value||g(),r.value===E?(r.value=null,o.value?.stop(),s.value?.baseCompt?.enableSelection()):(r.value=E,o.value?.start(E),s.value?.baseCompt?.disableSelection())},v=E=>{a.value=E,h.value=!1},b=()=>{o.value&&(o.value.clearAll(),r.value=null,o.value.stop()),s.value?.baseCompt?.enableSelection()},C=()=>{n("update:visible",!1)},x=E=>{if(h.value){h.value=!1;return}const w=E.currentTarget.getBoundingClientRect();u.value={position:"fixed",top:`${w.top}px`,left:`${w.right+5}px`,zIndex:3e3},h.value=!0},I=E=>{h.value&&p.value&&!p.value.contains(E.target)&&(h.value=!1)};return d.onMounted(()=>{document.addEventListener("click",I),t.visible&&d.nextTick(()=>g())}),d.onUnmounted(()=>{document.removeEventListener("click",I),o.value&&o.value.destroy()}),d.watch(()=>t.visible,E=>{E?d.nextTick(()=>g()):o.value&&(o.value.stop(),r.value=null)}),d.watch(s,E=>{E&&E.getViewer&&!o.value&&t.visible&&g()}),d.watch(a,E=>{o.value&&o.value.setUnit(E)}),(E,S)=>(d.openBlock(),d.createBlock(gt,{visible:t.visible,title:"量算",width:70,"min-width":70,height:480,"onUpdate:visible":S[3]||(S[3]=w=>n("update:visible",w)),onClose:C},{default:d.withCtx(()=>[d.createElementVNode("div",hN,[d.createElementVNode("div",uN,[d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="distance"}]),onClick:S[0]||(S[0]=w=>A("distance")),title:"距离测量"},[...S[4]||(S[4]=[d.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="angle"}]),onClick:S[1]||(S[1]=w=>A("angle")),title:"角度测量"},[...S[5]||(S[5]=[d.createElementVNode("div",{class:"tool-icon"},"📐",-1)])],2),d.createElementVNode("div",{class:d.normalizeClass(["tool-item",{active:r.value==="area"}]),onClick:S[2]||(S[2]=w=>A("area")),title:"面积测量"},[...S[6]||(S[6]=[d.createElementVNode("div",{class:"tool-icon"},"🔳",-1)])],2)]),S[15]||(S[15]=d.createElementVNode("div",{class:"separator"},null,-1)),c.value?(d.openBlock(),d.createElementBlock("div",fN,[c.value.type==="distance"?(d.openBlock(),d.createElementBlock(d.Fragment,{key:0},[d.createElementVNode("div",pN,[S[7]||(S[7]=d.createElementVNode("span",{class:"result-label"},"总长:",-1)),d.createElementVNode("span",mN,d.toDisplayString(m(c.value.dist)),1)]),d.createElementVNode("div",gN,[S[8]||(S[8]=d.createElementVNode("span",{class:"result-label",style:{color:"#ff4d4f"}},"ΔX:",-1)),d.createElementVNode("span",yN,d.toDisplayString(m(c.value.dx)),1)]),d.createElementVNode("div",AN,[S[9]||(S[9]=d.createElementVNode("span",{class:"result-label",style:{color:"#52c41a"}},"ΔY:",-1)),d.createElementVNode("span",vN,d.toDisplayString(m(c.value.dy)),1)]),d.createElementVNode("div",bN,[S[10]||(S[10]=d.createElementVNode("span",{class:"result-label",style:{color:"#1890ff"}},"ΔZ:",-1)),d.createElementVNode("span",wN,d.toDisplayString(m(c.value.dz)),1)])],64)):d.createCommentVNode("",!0),c.value.type==="angle"?(d.openBlock(),d.createElementBlock("div",CN,[S[11]||(S[11]=d.createElementVNode("span",{class:"result-label"},"角度:",-1)),d.createElementVNode("span",EN,d.toDisplayString(c.value.angle.toFixed(1))+"°",1)])):d.createCommentVNode("",!0),c.value.type==="area"?(d.openBlock(),d.createElementBlock("div",xN,[S[12]||(S[12]=d.createElementVNode("span",{class:"result-label"},"面积:",-1)),d.createElementVNode("span",IN,d.toDisplayString(y(c.value.area)),1)])):d.createCommentVNode("",!0)])):d.createCommentVNode("",!0),d.createElementVNode("div",SN,[d.createElementVNode("div",MN,[d.createElementVNode("div",{class:"tool-item",onClick:d.withModifiers(x,["stop"])},[d.createElementVNode("div",TN,d.toDisplayString(a.value),1)]),(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[h.value?(d.openBlock(),d.createElementBlock("div",{key:0,ref_key:"unitDropdownRef",ref:p,class:"unit-dropdown",style:d.normalizeStyle(u.value)},[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(f,w=>d.createElementVNode("div",{key:w.value,class:d.normalizeClass(["unit-option",{selected:a.value===w.value}]),onClick:d.withModifiers(T=>v(w.value),["stop"])},d.toDisplayString(w.label),11,BN)),64))],4)):d.createCommentVNode("",!0)]))]),S[14]||(S[14]=d.createElementVNode("div",{class:"separator"},null,-1)),d.createElementVNode("div",{class:"action-buttons"},[d.createElementVNode("div",{class:"tool-item control-btn",onClick:b,title:"清空"},[...S[13]||(S[13]=[d.createElementVNode("div",{class:"tool-icon"},"🗑️",-1)])])])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-8b1e070f"]]);function Bm(){const i=d.ref(!1),e=d.reactive({x:0,y:0}),t=d.ref([]),n=d.ref(null);return{visible:i,position:e,items:t,contextData:n,show:(l,c,h)=>{l instanceof MouseEvent?(l.preventDefault(),e.x=l.clientX,e.y=l.clientY):(e.x=l.x,e.y=l.y),t.value=c,n.value=h,i.value=!0},hide:()=>{i.value=!1},addItem:l=>{t.value.push(l)},removeItem:l=>{t.value=t.value.filter(c=>c.id!==l)}}}const kN=["onClick","onTouchend"],PN={class:"menu-label"},DN={key:0,class:"menu-arrow"},NN=Be(d.defineComponent({__name:"LeitingContextMenu",props:{visible:{type:Boolean},position:{},items:{}},emits:["update:visible","action"],setup(i,{emit:e}){const t=i,n=e,{isMobile:s}=Or(),o=d.computed(()=>{let l=t.position.x,c=t.position.y;if(s.value){const u=t.items.length*48;l+200>window.innerWidth-16&&(l=window.innerWidth-200-16),c+u>window.innerHeight-16&&(c=window.innerHeight-u-16),c<16&&(c=16)}return{left:l+"px",top:c+"px"}}),r=l=>{l.disabled||(l.action&&l.action(),n("action",l),n("update:visible",!1))},a=()=>{t.visible&&n("update:visible",!1)};return d.onMounted(()=>{document.addEventListener("click",a),document.addEventListener("contextmenu",l=>{l.target.closest(".leiting-context-menu")||a()})}),d.onUnmounted(()=>{document.removeEventListener("click",a)}),(l,c)=>d.withDirectives((d.openBlock(),d.createElementBlock("div",{class:d.normalizeClass(["leiting-context-menu",{"mobile-style":d.unref(s)}]),style:d.normalizeStyle(o.value),onContextmenu:c[0]||(c[0]=d.withModifiers(()=>{},["prevent"]))},[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(i.items,h=>(d.openBlock(),d.createElementBlock("div",{key:h.id,class:d.normalizeClass(["menu-item",{"menu-divided":h.divided,"menu-disabled":h.disabled}]),onClick:u=>r(h),onTouchend:d.withModifiers(u=>r(h),["prevent"])},[d.createElementVNode("span",PN,d.toDisplayString(h.label),1),h.children?(d.openBlock(),d.createElementBlock("span",DN,"▶")):d.createCommentVNode("",!0)],42,kN))),128))],38)),[[d.vShow,i.visible]])}}),[["__scopeId","data-v-62c220a6"]]),LN={class:"mobile-nav-root"},RN={class:"nav-bar-container"},FN={key:"sub-mode",class:"nav-inner sub-menu-wrapper"},ON={class:"sub-icons-list"},GN=["onClick"],UN=["innerHTML"],VN={key:"main-mode",class:"nav-inner main-menu-wrapper"},QN=["onClick"],zN=["src","alt"],_m=Be(d.defineComponent({__name:"MobileBottomNav",props:{activeIds:{},is2d:{type:Boolean},customItems:{}},emits:["item-click","sub-item-click","clear-measure"],setup(i,{emit:e}){const t=i,n=e,s=d.ref(null),o=d.ref(null),r={measure:[{id:"distance",label:"距离",parentId:"measure",parentKey:"measurement"},{id:"angle",label:"角度",parentId:"measure",parentKey:"measurement"},{id:"area",label:"面积",parentId:"measure",parentKey:"measurement"},{id:"coordinate",label:"坐标",parentId:"measure",parentKey:"measurement"}],section:[{id:"box",label:"剖切盒",parentId:"section",parentKey:"section"},{id:"plane-x",label:"X轴",parentId:"section",parentKey:"section"},{id:"plane-y",label:"Y轴",parentId:"section",parentKey:"section"}]},a={distance:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 17l6-6 4 4 8-8"/><path d="M17 7h4v4"/></svg>',angle:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 20H4L14 4"/></svg>',area:'<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/></svg>',coordinate:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M2 12h20"/></svg>',box:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/></svg>'},l=g=>a[g]||a.box,c=d.ref([{ID:"home",title:"主视角",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"homeView"},{ID:"measure",title:"量算",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAFESURBVDhPlZMNEcIwDIVXBQwFgAJAAcMBDgAFIGE4wAHgABSwOdgcIAEUjPd6aS/rfhi7y12bJl9f0sxEf3xVVV0RPoetjTFvnWqGcgSylfgihA0CKcgJgBfsAqMiKiM0+gkKlCyZCN8uhPWCFOSBxARWORU4W2CdeV9XjxSEJcwkjokTqBpzjxjCn7CyVRECzjg8wHLYCmabK7CplBcLhMr2DZCqP0dCovYZ9hYGXx1izLUGUkkfxI/sTQiCf4N1zLWAWCKV2nP6PEhB2Ngd7B4GC4SJnCcP8SAFoc/Ph/TqjVvTPogFKUiJ/VGU+GdmUAA5ObA7cyC+iPt/MjUfKRL4emyuK+cGH8tufFRUHywZ+RYlnRDdIwfzLzVUibtQv1oNhoAExtfpVdIAiQIOWiY9o2sQxJemOydTS1jR1di2Zn8B8f27apou9kMAAAAASUVORK5CYII=",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"measurement"},{ID:"roam",title:"漫游",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADhSURBVHgBvVOBEYIwDEw9B2ADO4IjuIEjwAa6Aa7ABMAEuIIjOIFsUDao37vgxVZbBI+/+0tI0+fJBaIIrLUFaMAHmNNcsMAIE+vdJLQykQ+0wFHBrsyiT/sL2I1DDTac/+4Klzobov7WHxt29qGmaYaQnlhLCmUTa2l4C2ljvamFlEvY0xpCW/kA924GblfGWciZaJyXQvSmlOoDITSdXQBbcA8eKfy/nHDFeY470FIX8tzUIu84FmLWuTzz7yhRLPm54dKJ4+A5uoJ3HgHBUfUmxGIa4QDuKA4n3kLk9ZInw0qu5b1R1aYAAAAASUVORK5CYII=",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"roam"},{ID:"info",title:"信息",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADFSURBVDhPxVPBDYMwDIwnKJu0G9ANYJMyQrsBbNIRGAE2gEnSO6mpIMJxkBC1lEds52zfOeK9b51zV5wte4lIr8RWbgGQh2fGmaIHJe4EetKPtDpRcA5AvwcB7FtgCcTOH0p3YzaQNd75QBiVXJG3LRtCRyQ6Jvsekd3gTsJVoDcihZLQQjXGTRMzIzPhOCCQyNYvSuEue7Qdm02yK0u1nM2m/FQyKb8JZHH+l81Ofdpdm82tvikjThyNlbSEBvIPFj+MfwA76qSYUG3g9QAAAABJRU5ErkJggg==",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"componentInfo"},{ID:"setting",title:"设置",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAGPSURBVDhPrZT9UQIxEMUvFSgViBUoFQgVABV4VqBW4FmBUIFQgZRwVqBU4HUAVHC+X2aXycQw/sPOvLncZvdlv5JQFaTv+1upp8IyhLDHRLpLfe6FrXRt7hZShYyH+n8RauGAv/AkQNYIHICshFcRdu6fE/kGRN/mQGTIpzAzMoh6EV2fIsJ5IwNOj2IpVZ6i6difSecRVnlELZHIgHROisgXRCa78Z+IrMBf2pjLYJNENGSd1kO2pPghjKQniyqY8lFr2NfaqC18wn7nZCMlWg7xLq70TxfRLyHqtABN2lbp40mSSCzBcSebif1TPyKjDBcQ0eJJRkIUpHkMPUlnkBU+pnlWItL6ERgw8o1iqRHtgzAUGNRD2qmkvgMvNnneUQcZ4ggR6VGXG+OOA1koNvrFcY7+af++VJe0hucfyKQu+RWJc+SDZ3aNvlPpRl7T0qXdafNZYPDehLEZt/rOBR9U8QSaEKX0jHAaE4tshVrgLeJ+Xdl6rS8D3BWJXKnCEwWXEuco9grQ3bb0sP0Cn8/nPm/SMRQAAAAASUVORK5CYII=",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"setting"}]),h=d.ref([{ID:"home",title:"主视角",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"homeView"},{ID:"cadLayer",title:"CAD图层",src:Ur,key:"cadLayer"},{ID:"annotation",title:"标注",src:new URL("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACDSURBVHgB1ZFhDYAgEIWfzgBGIIINpIEViGAkG2gEbWADjWADfMw/iDgUfji/7e3gxt3uHsDXZFrrlrFBHJNpsPAgEEmORArn3lFroEZQCjcTbAhzepPsgbuCgn8FBWvsUAMfFR5OIPGS5G80JkrG2sopHKbO1BCoHy8ZNhRUT5X4BTu6qyNSwwCiMAAAAABJRU5ErkJggg==",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:_e&&_e.tagName.toUpperCase()==="SCRIPT"&&_e.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"annotation"}]),u=d.computed(()=>{let A=[...t.is2d?h.value:c.value];return t.customItems&&(A=[...A,...t.customItems]),A}),p=d.computed(()=>s.value?r[s.value.ID]||[]:[]),f=g=>{if(r[g.ID]){if(g.ID==="measure"){n("item-click",g);return}if(s.value?.ID===g.ID)y();else{s.value=g,o.value=null;const A=r[g.ID];A&&A.length>0&&(o.value=A[0]?.id??null,setTimeout(()=>{n("sub-item-click",{parent:g,sub:A[0]})},50))}}else n("item-click",g)},m=g=>{o.value=g.id,n("sub-item-click",{parent:s.value,sub:g})},y=()=>{s.value=null,o.value=null};return(g,A)=>(d.openBlock(),d.createElementBlock("div",LN,[d.createElementVNode("nav",RN,[d.createVNode(d.Transition,{name:"nav-mode-switch",mode:"out-in"},{default:d.withCtx(()=>[s.value?(d.openBlock(),d.createElementBlock("div",FN,[d.createElementVNode("button",{class:"nav-back-icon",onClick:y},[...A[0]||(A[0]=[d.createElementVNode("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3"},[d.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)])]),d.createElementVNode("div",ON,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(p.value,v=>(d.openBlock(),d.createElementBlock("button",{key:v.id,class:d.normalizeClass(["sub-icon-box",{active:o.value===v.id}]),onClick:b=>m(v)},[d.createElementVNode("div",{class:"icon-svg",innerHTML:l(v.id)},null,8,UN)],10,GN))),128))])])):(d.openBlock(),d.createElementBlock("div",VN,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(u.value,v=>(d.openBlock(),d.createElementBlock("div",{key:v.ID,class:d.normalizeClass(["main-tab-item",{active:i.activeIds?.includes(v.ID)}]),onClick:b=>f(v)},[d.createElementVNode("img",{src:v.src,class:"tab-img",alt:v.title},null,8,zN)],10,QN))),128))]))]),_:1})])]))}}),[["__scopeId","data-v-2e30753b"]]),HN={key:1,class:"drawer-header"},YN={class:"drawer-title"},$N={class:"drawer-content"},jN={key:2,class:"drawer-footer"},Wr=Be(d.defineComponent({__name:"MobileDrawer",props:{visible:{type:Boolean},title:{},direction:{default:"bottom"},width:{default:"100%"},height:{default:"50vh"},showHandle:{type:Boolean,default:!1},closeOnOverlay:{type:Boolean,default:!0},maxHeight:{default:"60vh"}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=d.ref(null);let o=0,r=0;const a=d.computed(()=>{const f={};return t.direction==="right"||t.direction==="left"?(f.width=t.width,f.height="100%"):(f.width=t.width,f.height=t.height,f.maxHeight=t.maxHeight),f}),l=f=>{o=f.touches[0]?.clientY??0,s.value&&(s.value.style.transition="none")},c=f=>{if(!s.value)return;r=(f.touches[0]?.clientY??0)-o,r>0&&(s.value.style.transform=`translateY(${r}px)`)},h=()=>{s.value&&(s.value.style.transition="transform 300ms cubic-bezier(0.4, 0, 0.2, 1)",r>100?u():s.value.style.transform="",r=0)},u=()=>{n("update:visible",!1),n("close")},p=()=>{t.closeOnOverlay&&u()};return d.watch(()=>t.visible,f=>{f?document.body.style.overflow="hidden":document.body.style.overflow=""}),(f,m)=>(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[d.createVNode(d.Transition,{name:"drawer-fade"},{default:d.withCtx(()=>[i.visible?(d.openBlock(),d.createElementBlock("div",{key:0,class:"mobile-drawer-overlay",onClick:d.withModifiers(p,["self"])},[d.createElementVNode("div",{class:d.normalizeClass(["mobile-drawer-panel",[`direction-${i.direction}`]]),style:d.normalizeStyle(a.value),onClick:m[0]||(m[0]=d.withModifiers(()=>{},["stop"])),ref_key:"panelRef",ref:s},[i.direction==="bottom"&&i.showHandle?(d.openBlock(),d.createElementBlock("div",{key:0,class:"drawer-handle",onTouchstart:l,onTouchmove:c,onTouchend:h},[...m[1]||(m[1]=[d.createElementVNode("div",{class:"handle-bar"},null,-1)])],32)):d.createCommentVNode("",!0),i.title||f.$slots.title?(d.openBlock(),d.createElementBlock("div",HN,[d.renderSlot(f.$slots,"title",{},()=>[d.createElementVNode("span",YN,d.toDisplayString(i.title),1)],!0),d.createElementVNode("button",{class:"drawer-close-btn",onClick:u},[...m[2]||(m[2]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[d.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),d.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])])):d.createCommentVNode("",!0),d.createElementVNode("div",$N,[d.renderSlot(f.$slots,"default",{},void 0,!0)]),f.$slots.footer?(d.openBlock(),d.createElementBlock("div",jN,[d.renderSlot(f.$slots,"footer",{},void 0,!0)])):d.createCommentVNode("",!0)],6)])):d.createCommentVNode("",!0)]),_:3})]))}}),[["__scopeId","data-v-66d9d696"]]),WN={class:"mobile-tree-container"},qN={class:"search-section"},KN={class:"search-inner"},XN=["innerHTML"],km=Be(d.defineComponent({__name:"MobileTree",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},treeData:{default:()=>[]},initialCheckedKeys:{default:()=>[]}},emits:["update:visible","update:open","close","select","check","search"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:_=>{n("update:visible",_),n("update:open",_)}}),r={key:"id",title:"name",children:"children"},a=d.ref(""),l=d.ref([]),c=d.ref([]),h=d.ref(null),u=d.ref(300),p=d.ref(!1);let f=null;d.watch(()=>t.initialCheckedKeys,_=>{_&&_.length>0&&(c.value=[..._])},{immediate:!0}),d.watch(()=>t.treeData,_=>{if(!_||_.length===0)return;const F=[],U=(M,k)=>{for(let B=0;B<M.length;B++){const P=M[B],V=P.id||P.key||P.$id,G=P.modelId||k;G&&(P.modelId=G),V&&F.push(String(V)),P.children&&P.children.length>0&&U(P.children,G)}};U(_);const L=new Set(c.value);let D=!1;F.forEach(M=>{L.has(M)||(L.add(M),D=!0)}),D&&(c.value=Array.from(L),n("check",c.value))},{immediate:!0,deep:!0});const m=(_,F)=>{const U=[],L=D=>{for(let M=0;M<D.length;M++){const k=D[M],B=k.id||k.key;!k.children||k.children.length===0?!(B&&F.has(String(B)))&&k.modelId&&k.element_Id&&U.push({modelId:k.modelId,elementId:k.element_Id,show:!1}):k.children&&L(k.children)}};return L(_),U},y=d.computed(()=>{if(!a.value)return t.treeData;p.value=!0;const _=a.value.toLowerCase(),F=U=>{const L=[];for(let D=0;D<U.length;D++){const M=U[D],k=M.name||M.title||"",B=M.id||M.key,P=k.toLowerCase().includes(_);let V;M.children&&M.children.length>0&&(V=F(M.children)),(P||V&&V.length>0)&&L.push({key:String(B),title:k,children:V&&V.length>0?V:M.children?M.children:void 0,_raw:M,_searchMatched:P})}return L};return F(t.treeData)}),g=d.computed(()=>{if(!a.value)return[];const _=[],F=U=>{for(let L=0;L<U.length;L++){const D=U[L]?.children;D&&D.length>0&&(_.push(U[L]?.key),F(D))}};return F(y.value),_}),A=(_,F)=>a.value?(_||F||"").toLowerCase().includes(a.value.toLowerCase()):!1,v=_=>{if(!a.value)return _;const F=new RegExp(`(${a.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");return _.replace(F,'<mark class="search-highlight">$1</mark>')},b=qo(_=>{const F=typeof _=="object"?_.target?.value??"":_;x(F)},200),C=_=>{x(_)},x=_=>{a.value=_||"",n("search",a.value),_&&d.nextTick(()=>{l.value=[...g.value]})},I=_=>{l.value=_},E=(_,F)=>{c.value=_,n("check",c.value);const U=new Set(_.map(D=>String(D))),L=m(t.treeData,U);s?.value?.setComponentVisibility&&s.value.setComponentVisibility(L),s?.value?.onTreeCheck&&s.value.onTreeCheck(_,F)},S=_=>{o.value=_},w=()=>{n("close")},T=()=>{h.value&&(u.value=h.value.clientHeight)};return d.onMounted(()=>{h.value&&(T(),f=new ResizeObserver(()=>{T()}),f.observe(h.value))}),d.onUnmounted(()=>{f&&(f.disconnect(),f=null)}),(_,F)=>(d.openBlock(),d.createBlock(Wr,{visible:o.value,title:"目录树",direction:"bottom","show-handle":!1,class:"mobile-bim-drawer","onUpdate:visible":S,onClose:w},{title:d.withCtx(()=>[...F[1]||(F[1]=[d.createElementVNode("div",{class:"custom-drawer-header"},[d.createElementVNode("span",null,"目录树")],-1)])]),default:d.withCtx(()=>[d.createElementVNode("div",WN,[F[3]||(F[3]=d.createElementVNode("div",{class:"nav-tabs"},[d.createElementVNode("div",{class:"nav-tab-item active"},"构件")],-1)),d.createElementVNode("div",qN,[d.createElementVNode("div",KN,[d.createVNode(d.unref(re.Input),{value:a.value,"onUpdate:value":F[0]||(F[0]=U=>a.value=U),placeholder:"搜索构件","allow-clear":"",class:"custom-search",onSearch:C,onChange:d.unref(b)},null,8,["value","onChange"])])]),d.createElementVNode("div",{class:"tree-content-wrapper",ref_key:"treeContentRef",ref:h},[y.value.length>0?(d.openBlock(),d.createBlock(d.unref(re.Tree),{key:0,"tree-data":y.value,"field-names":r,"expanded-keys":l.value,"checked-keys":c.value,checkable:"","block-node":"",class:"bim-dark-tree",onExpand:I,onCheck:E},{switcherIcon:d.withCtx(({expanded:U})=>[d.createElementVNode("span",{class:d.normalizeClass(["switcher-icon",{"is-open":U}])},[...F[2]||(F[2]=[d.createElementVNode("svg",{viewBox:"0 0 1024 1024",width:"12",height:"12"},[d.createElementVNode("path",{d:"M340.864 149.312l405.376 362.688-405.376 362.688z",fill:"currentColor"})],-1)])],2)]),title:d.withCtx(({name:U,title:L})=>[d.createElementVNode("span",{class:d.normalizeClass(["node-title",{"is-matched":A(U,L)}])},[d.createElementVNode("span",{innerHTML:v(U||L)},null,8,XN)],2)]),_:1},8,["tree-data","expanded-keys","checked-keys","onExpand","onCheck"])):d.createCommentVNode("",!0)],512)])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-c2e8ecbe"]]),JN={class:"tabs-header"},ZN=["onClick"],eL={class:"modal-content"},tL={key:0,class:"setting-section"},iL={class:"setting-item"},nL={class:"mobile-switch"},sL={class:"setting-item"},oL={class:"mobile-switch"},rL={class:"setting-item"},aL={class:"mobile-switch"},lL={key:1,class:"setting-section"},cL={class:"setting-item"},dL={class:"mobile-switch"},hL={key:0,class:"setting-item column"},uL={class:"setting-label-row"},fL={class:"setting-value"},pL={class:"setting-item"},mL={class:"mobile-switch"},gL={class:"setting-item"},yL={class:"mobile-switch"},AL={class:"setting-item column"},vL={class:"setting-label-row"},bL={class:"setting-value"},wL={class:"setting-item column"},CL={class:"setting-label-row"},EL={class:"setting-value"},xL={class:"setting-item column"},IL={class:"setting-label-row"},SL={class:"setting-value"},ML={class:"setting-item column"},TL={style:{display:"flex",gap:"8px","margin-bottom":"8px","flex-wrap":"wrap"}},BL=["onClick","title"],_L={style:{display:"flex",gap:"8px","align-items":"center"}},Pm=Be(d.defineComponent({__name:"MobileSetting",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0}},emits:["update:visible","update:open","close","change"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:f=>{n("update:visible",f),n("update:open",f)}}),r=[{id:"GIS",label:"GIS"},{id:"RENDER",label:"渲染"}],a=d.ref("GIS"),l=d.ref({globe:!1,terrain:!1,depthTest:!1}),c=d.ref({shadows:!1,shadowDarkness:.5,environmentMap:!0,ambientOcclusion:!1,brightness:1,contrast:1,saturation:1,backgroundColor:"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)"}),h=["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%)"],u=()=>{p()},p=()=>{n("close"),n("change",{gis:l.value,render:c.value})};return d.watch(()=>l.value.globe,f=>{s?.value&&s.value.setGlobeEnvironmentVisible?.(f)}),d.watch(()=>l.value.terrain,f=>{s?.value&&s.value.setTerrainEnable?.(f)}),d.watch(()=>l.value.depthTest,f=>{s?.value&&s.value.setDepthTestEnable?.(f)}),d.watch(()=>c.value.shadows,f=>{s?.value&&s.value.setShadowsEnable?.(f)}),d.watch(()=>c.value.shadowDarkness,f=>{s?.value&&s.value.setShadowDarkness?.(f)}),d.watch(()=>c.value.environmentMap,f=>{s?.value&&s.value.setEnvironmentMapEnable?.(f)}),d.watch(()=>c.value.ambientOcclusion,f=>{s?.value&&s.value.setAmbientOcclusion?.(f)}),d.watch(()=>[c.value.brightness,c.value.contrast,c.value.saturation],([f,m,y])=>{const g=s?.value;g&&(g.setModelColorAdjustment?g.setModelColorAdjustment({brightness:f,contrast:m,saturation:y}):g.setModelBrightness?.(f))}),d.watch(()=>c.value.backgroundColor,f=>{s?.value&&s.value.setBackgroundColor?.(f)}),d.watch(()=>o.value,f=>{f?document.body.style.overflow="hidden":document.body.style.overflow=""}),(f,m)=>(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[d.createVNode(d.Transition,{name:"setting-modal"},{default:d.withCtx(()=>[o.value?(d.openBlock(),d.createElementBlock("div",{key:0,class:"mobile-setting-overlay",onClick:u,onTouchmove:m[13]||(m[13]=d.withModifiers(()=>{},["prevent"]))},[d.createElementVNode("div",{class:"mobile-setting-modal",onClick:m[12]||(m[12]=d.withModifiers(()=>{},["stop"]))},[d.createElementVNode("div",{class:"modal-header"},[m[15]||(m[15]=d.createElementVNode("span",{class:"modal-title"},"设置",-1)),d.createElementVNode("button",{class:"modal-close-btn",onClick:p},[...m[14]||(m[14]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[d.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),d.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),d.createElementVNode("div",JN,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(r,y=>d.createElementVNode("button",{key:y.id,class:d.normalizeClass(["tab-btn",{active:a.value===y.id}]),onClick:g=>a.value=y.id},d.toDisplayString(y.label),11,ZN)),64))]),d.createElementVNode("div",eL,[a.value==="GIS"?(d.openBlock(),d.createElementBlock("div",tL,[d.createElementVNode("div",iL,[m[17]||(m[17]=d.createElementVNode("span",{class:"setting-label"},"地球(含大气/日月/星空)",-1)),d.createElementVNode("label",nL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[0]||(m[0]=y=>l.value.globe=y)},null,512),[[d.vModelCheckbox,l.value.globe]]),m[16]||(m[16]=d.createElementVNode("span",{class:"slider"},null,-1))])]),d.createElementVNode("div",sL,[m[19]||(m[19]=d.createElementVNode("span",{class:"setting-label"},"地形",-1)),d.createElementVNode("label",oL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[1]||(m[1]=y=>l.value.terrain=y)},null,512),[[d.vModelCheckbox,l.value.terrain]]),m[18]||(m[18]=d.createElementVNode("span",{class:"slider"},null,-1))])]),d.createElementVNode("div",rL,[m[21]||(m[21]=d.createElementVNode("span",{class:"setting-label"},"地形遮挡",-1)),d.createElementVNode("label",aL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[2]||(m[2]=y=>l.value.depthTest=y)},null,512),[[d.vModelCheckbox,l.value.depthTest]]),m[20]||(m[20]=d.createElementVNode("span",{class:"slider"},null,-1))])])])):d.createCommentVNode("",!0),a.value==="RENDER"?(d.openBlock(),d.createElementBlock("div",lL,[d.createElementVNode("div",cL,[m[23]||(m[23]=d.createElementVNode("span",{class:"setting-label"},"阴影",-1)),d.createElementVNode("label",dL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[3]||(m[3]=y=>c.value.shadows=y)},null,512),[[d.vModelCheckbox,c.value.shadows]]),m[22]||(m[22]=d.createElementVNode("span",{class:"slider"},null,-1))])]),c.value.shadows?(d.openBlock(),d.createElementBlock("div",hL,[d.createElementVNode("div",uL,[m[24]||(m[24]=d.createElementVNode("span",{class:"setting-label"},"阴影暗度",-1)),d.createElementVNode("span",fL,d.toDisplayString(c.value.shadowDarkness.toFixed(2)),1)]),d.withDirectives(d.createElementVNode("input",{type:"range","onUpdate:modelValue":m[4]||(m[4]=y=>c.value.shadowDarkness=y),min:"0",max:"1",step:"0.05",class:"mobile-slider"},null,512),[[d.vModelText,c.value.shadowDarkness,void 0,{number:!0}]])])):d.createCommentVNode("",!0),d.createElementVNode("div",pL,[m[26]||(m[26]=d.createElementVNode("span",{class:"setting-label"},"环境贴图",-1)),d.createElementVNode("label",mL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[5]||(m[5]=y=>c.value.environmentMap=y)},null,512),[[d.vModelCheckbox,c.value.environmentMap]]),m[25]||(m[25]=d.createElementVNode("span",{class:"slider"},null,-1))])]),d.createElementVNode("div",gL,[m[28]||(m[28]=d.createElementVNode("span",{class:"setting-label"},"环境光遮蔽",-1)),d.createElementVNode("label",yL,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[6]||(m[6]=y=>c.value.ambientOcclusion=y)},null,512),[[d.vModelCheckbox,c.value.ambientOcclusion]]),m[27]||(m[27]=d.createElementVNode("span",{class:"slider"},null,-1))])]),d.createElementVNode("div",AL,[d.createElementVNode("div",vL,[m[29]||(m[29]=d.createElementVNode("span",{class:"setting-label"},"模型亮度",-1)),d.createElementVNode("span",bL,d.toDisplayString(c.value.brightness.toFixed(1)),1)]),d.withDirectives(d.createElementVNode("input",{type:"range","onUpdate:modelValue":m[7]||(m[7]=y=>c.value.brightness=y),min:"0",max:"5",step:"0.1",class:"mobile-slider"},null,512),[[d.vModelText,c.value.brightness,void 0,{number:!0}]])]),d.createElementVNode("div",wL,[d.createElementVNode("div",CL,[m[30]||(m[30]=d.createElementVNode("span",{class:"setting-label"},"模型对比度",-1)),d.createElementVNode("span",EL,d.toDisplayString(c.value.contrast.toFixed(1)),1)]),d.withDirectives(d.createElementVNode("input",{type:"range","onUpdate:modelValue":m[8]||(m[8]=y=>c.value.contrast=y),min:"0.5",max:"2",step:"0.1",class:"mobile-slider"},null,512),[[d.vModelText,c.value.contrast,void 0,{number:!0}]])]),d.createElementVNode("div",xL,[d.createElementVNode("div",IL,[m[31]||(m[31]=d.createElementVNode("span",{class:"setting-label"},"模型饱和度",-1)),d.createElementVNode("span",SL,d.toDisplayString(c.value.saturation.toFixed(1)),1)]),d.withDirectives(d.createElementVNode("input",{type:"range","onUpdate:modelValue":m[9]||(m[9]=y=>c.value.saturation=y),min:"0",max:"3",step:"0.1",class:"mobile-slider"},null,512),[[d.vModelText,c.value.saturation,void 0,{number:!0}]])]),d.createElementVNode("div",ML,[m[32]||(m[32]=d.createElementVNode("span",{class:"setting-label"},"背景颜色",-1)),d.createElementVNode("div",TL,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(h,(y,g)=>d.createElementVNode("div",{key:g,style:d.normalizeStyle({background:y,width:"60px",height:"40px",borderRadius:"6px",cursor:"pointer",border:"2px solid rgba(255,255,255,0.2)",flexShrink:0}),onClick:A=>c.value.backgroundColor=y,title:"预设 "+(g+1)},null,12,BL)),64))]),d.createElementVNode("div",_L,[d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":m[10]||(m[10]=y=>c.value.backgroundColor=y),style:{width:"50px",height:"36px",padding:"0",border:"1px solid rgba(255,255,255,0.3)","border-radius":"6px",cursor:"pointer"}},null,512),[[d.vModelText,c.value.backgroundColor]]),d.withDirectives(d.createElementVNode("input",{"onUpdate:modelValue":m[11]||(m[11]=y=>c.value.backgroundColor=y),type:"text",class:"mobile-input",placeholder:"CSS 颜色值",style:{flex:"1"}},null,512),[[d.vModelText,c.value.backgroundColor]])])])])):d.createCommentVNode("",!0)])])],32)):d.createCommentVNode("",!0)]),_:1})]))}}),[["__scopeId","data-v-dcec8ca4"]]),kL={class:"mobile-section-container"},PL={class:"section-main"},DL={class:"toggle-row"},NL={class:"slider-section"},LL={class:"slider-header"},RL={class:"slider-label"},FL={class:"slider-value"},OL={class:"quick-btns"},GL={class:"section-models"},UL={class:"models-header"},VL={class:"models-count"},Dm=Be(d.defineComponent({__name:"MobileSection",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},modelList:{default:()=>[]}},emits:["update:visible","update:open","close","visibility-change","mode-change","axis-change","model-change"],setup(i,{emit:e}){const t=i,n=e,s=d.computed({get:()=>t.open!==void 0?t.open:t.visible,set:T=>{n("update:visible",T),n("update:open",T)}}),o=d.ref(!0),r=d.ref("Box"),a=d.ref("X"),l=d.ref([]),c=d.ref([0,100]),h=d.ref([0,100]),u=d.ref([0,100]),p=[{key:"X",label:"X轴"},{key:"Y",label:"Y轴"},{key:"Z",label:"Z轴"}],f=d.computed(()=>p.find(_=>_.key===a.value)?.label||""),m=d.computed({get:()=>{switch(a.value){case"X":return c.value[1];case"Y":return h.value[1];case"Z":return u.value[1];default:return 50}},set:T=>{switch(a.value){case"X":c.value[1]=T??0;break;case"Y":h.value[1]=T??0;break;case"Z":u.value[1]=T??0;break}}}),y=d.computed(()=>{switch(a.value){case"X":return[-50,50];case"Y":return[-50,50];case"Z":return[0,100];default:return[0,100]}}),g=d.computed(()=>m.value?.toFixed(1)??"0.0"),A=d.computed(()=>l.value.length===t.modelList.length),v=T=>{s.value=T},b=()=>{n("close")},C=()=>{n("visibility-change",o.value)},x=T=>{r.value=T,n("mode-change",T)},I=()=>{m.value=50,n("axis-change",a.value,50)},E=()=>{const T=y.value;m.value=T&&T.length>=2?(T[0]+T[1])/2:50,n("axis-change",a.value,m.value)},S=()=>{n("model-change",l.value)},w=()=>{A.value?l.value=[]:l.value=t.modelList.map(T=>T.modelId),n("model-change",l.value)};return(T,_)=>(d.openBlock(),d.createBlock(Wr,{visible:s.value,title:"剖切分析",direction:"bottom","show-handle":!0,"onUpdate:visible":v,onClose:b},{default:d.withCtx(()=>[d.createElementVNode("div",kL,[d.createElementVNode("div",PL,[d.createElementVNode("div",DL,[_[6]||(_[6]=d.createElementVNode("span",{class:"toggle-label"},"显示剖切盒",-1)),d.createVNode(d.unref(re.Switch),{checked:o.value,"onUpdate:checked":_[0]||(_[0]=F=>o.value=F),onChange:C},null,8,["checked"])]),d.createVNode(d.unref(re.RadioGroup),{value:r.value,"onUpdate:value":_[1]||(_[1]=F=>r.value=F),"button-style":"solid",class:"mode-selector",onChange:_[2]||(_[2]=F=>x(F.target.value))},{default:d.withCtx(()=>[d.createVNode(d.unref(re.RadioButton),{value:"Box"},{default:d.withCtx(()=>[..._[7]||(_[7]=[d.createTextVNode("剖切盒",-1)])]),_:1})]),_:1},8,["value"]),d.createVNode(d.unref(re.RadioGroup),{value:a.value,"onUpdate:value":_[3]||(_[3]=F=>a.value=F),"button-style":"solid",class:"axis-selector"},{default:d.withCtx(()=>[d.createVNode(d.unref(re.RadioButton),{value:"X"},{default:d.withCtx(()=>[..._[8]||(_[8]=[d.createTextVNode("X轴",-1)])]),_:1}),d.createVNode(d.unref(re.RadioButton),{value:"Y"},{default:d.withCtx(()=>[..._[9]||(_[9]=[d.createTextVNode("Y轴",-1)])]),_:1}),d.createVNode(d.unref(re.RadioButton),{value:"Z"},{default:d.withCtx(()=>[..._[10]||(_[10]=[d.createTextVNode("Z轴",-1)])]),_:1})]),_:1},8,["value"]),d.createElementVNode("div",NL,[d.createElementVNode("div",LL,[d.createElementVNode("span",RL,d.toDisplayString(f.value)+" 轴范围",1),d.createElementVNode("span",FL,d.toDisplayString(g.value),1)]),d.createVNode(d.unref(re.Slider),{Value:m.value,"onUpdate:Value":_[4]||(_[4]=F=>m.value=F),min:y.value[0],max:y.value[1],step:.5,class:"section-slider"},null,8,["Value","min","max"]),d.createElementVNode("div",OL,[d.createVNode(d.unref(re.Button),{size:"small",onClick:I},{default:d.withCtx(()=>[..._[11]||(_[11]=[d.createTextVNode("重置",-1)])]),_:1}),d.createVNode(d.unref(re.Button),{size:"small",onClick:E},{default:d.withCtx(()=>[..._[12]||(_[12]=[d.createTextVNode("居中",-1)])]),_:1})])])]),d.createElementVNode("div",GL,[d.createElementVNode("div",UL,[_[13]||(_[13]=d.createElementVNode("span",{class:"models-title"},"选择模型",-1)),d.createElementVNode("span",VL,d.toDisplayString(l.value.length)+"/"+d.toDisplayString(i.modelList.length),1)]),d.createVNode(d.unref(re.CheckboxGroup),{value:l.value,"onUpdate:value":_[5]||(_[5]=F=>l.value=F),class:"models-list",onChange:S},{default:d.withCtx(()=>[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(i.modelList,F=>(d.openBlock(),d.createBlock(d.unref(re.Checkbox),{key:F.modelId,value:F.modelId,class:"model-item"},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(F.modelName),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),i.modelList.length>1?(d.openBlock(),d.createBlock(d.unref(re.Button),{key:0,size:"small",type:"link",onClick:w},{default:d.withCtx(()=>[d.createTextVNode(d.toDisplayString(A.value?"取消全选":"全选"),1)]),_:1})):d.createCommentVNode("",!0)])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-cdacec58"]]),QL={key:0,class:"mobile-measure-root"},zL={key:0,class:"result-card"},HL={class:"card-header-row"},YL={class:"result-main"},$L={class:"type-label"},jL={class:"value-highlight"},WL={key:0,class:"coords-grid"},qL={class:"coord-item"},KL={class:"coord-item"},XL={class:"coord-item"},JL={class:"measure-toolbar-container"},ZL={class:"tools-inner-row"},e8=["onClick"],t8=["innerHTML"],Nm=Be(d.defineComponent({__name:"MobileMeasurement",props:{visible:{type:Boolean},defaultTool:{}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods");let o=null,r=!1;const a=d.ref(null),l=d.ref(null),c=d.computed(()=>t.visible&&a.value!==null),h=[{id:"distance",svg:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 17l6-6 4 4 8-8"/></svg>'},{id:"angle",svg:'<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 20H4L14 4"/></svg>'},{id:"area",svg:'<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"/></svg>'}],u={distance:"距离",angle:"角度",area:"面积"},p=d.computed(()=>a.value?u[a.value]||"":l.value&&u[l.value.type]||""),f=d.computed(()=>{if(!l.value)return a.value==="distance"?"-- m":a.value==="angle"?"--°":a.value==="area"?"-- m²":"";const C=l.value;return C.type==="distance"?`${(C.dist??0).toFixed(3)} m`:C.type==="angle"?`${(C.angle??0).toFixed(2)}°`:C.type==="area"?`${(C.area??0).toFixed(2)} m²`:""}),m=d.computed(()=>l.value?.type||a.value),y=C=>C===void 0?"--":C.toFixed(3),g=()=>{if(o)return;const C=s?.value;C?.getViewer&&(o=new pc({viewer:C.getViewer(),cesium:C.getCesium()}),o.onMeasure=x=>{r||(l.value=x)})},A=C=>{g(),a.value===C?(a.value=null,o?.stop(),s?.value?.baseCompt?.enableSelection()):(a.value=C,l.value=null,o?.start(C),s?.value?.baseCompt?.disableSelection())},v=()=>{o?.clearAll(),o?.stop(),a.value=null,l.value=null,s?.value?.baseCompt?.enableSelection()},b=()=>{v(),n("update:visible",!1),n("close")};return d.watch(()=>t.visible,C=>{C?(g(),t.defaultTool&&A(t.defaultTool)):v()}),d.onUnmounted(()=>{r=!0,o?.destroy()}),(C,x)=>(d.openBlock(),d.createBlock(d.Transition,{name:"measure-fade"},{default:d.withCtx(()=>[i.visible?(d.openBlock(),d.createElementBlock("div",QL,[d.createVNode(d.Transition,{name:"card-slide"},{default:d.withCtx(()=>[c.value?(d.openBlock(),d.createElementBlock("div",zL,[d.createElementVNode("div",HL,[d.createElementVNode("div",YL,[d.createElementVNode("span",$L,d.toDisplayString(p.value)+":",1),d.createElementVNode("span",jL,d.toDisplayString(f.value),1)]),d.createElementVNode("button",{class:"clear-action-btn",onClick:v,title:"清空"},[...x[0]||(x[0]=[d.createElementVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"currentColor","stroke-width":"2"},[d.createElementVNode("polyline",{points:"3 6 5 6 21 6"}),d.createElementVNode("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)])])]),m.value==="distance"?(d.openBlock(),d.createElementBlock("div",WL,[d.createElementVNode("div",qL,[x[1]||(x[1]=d.createElementVNode("span",{class:"label-x"},"X:",-1)),d.createTextVNode(" "+d.toDisplayString(y(l.value?.dx)),1)]),d.createElementVNode("div",KL,[x[2]||(x[2]=d.createElementVNode("span",{class:"label-y"},"Y:",-1)),d.createTextVNode(" "+d.toDisplayString(y(l.value?.dy)),1)]),d.createElementVNode("div",XL,[x[3]||(x[3]=d.createElementVNode("span",{class:"label-z"},"Z:",-1)),d.createTextVNode(" "+d.toDisplayString(y(l.value?.dz)),1)])])):d.createCommentVNode("",!0)])):d.createCommentVNode("",!0)]),_:1}),d.createElementVNode("div",JL,[d.createElementVNode("button",{class:"nav-back-icon",onClick:b},[...x[4]||(x[4]=[d.createElementVNode("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"currentColor","stroke-width":"3"},[d.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)])]),d.createElementVNode("div",ZL,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(h,I=>d.createElementVNode("button",{key:I.id,class:d.normalizeClass(["sub-icon-box",{active:a.value===I.id}]),onClick:E=>A(I.id)},[d.createElementVNode("span",{class:"icon-svg",innerHTML:I.svg},null,8,t8)],10,e8)),64))])])])):d.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-7ff442b7"]]),i8={class:"joystick-base"},n8={class:"leitingbim-control-panel"},s8={class:"ctrl-row zoom-row"},o8={class:"zoom-label"},r8={class:"ctrl-grid"},a8={class:"gravity-toggle"},l8={class:"arrow-col"},bc=40,Lm=Be(d.defineComponent({__name:"MobilePlayer",props:{visible:{type:Boolean}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods");let o=!1;const r=d.ref(null),a=d.ref(0),l=d.ref(0),c=d.ref(!1),h=d.ref({x:0,y:0}),u=[.25,.5,1,2,4,8,16],p=d.ref(2),f=d.ref(!0);let m=null;const y=d.computed(()=>({transform:`translate(${a.value}px, ${l.value}px)`})),g=d.computed(()=>`${u[p.value]}X`),A=(G,R)=>{const N=[];return(Math.abs(G)>10||Math.abs(R)>10)&&(R<-10&&N.push("moveFront"),R>10&&N.push("moveBack"),G<-10&&N.push("moveLeft"),G>10&&N.push("moveRight")),N},v=()=>{o||["moveFront","moveBack","moveLeft","moveRight"].forEach(G=>{s?.value?.setPlayerAction?.(G,!1)})},b=G=>{if(o)return;["moveFront","moveBack","moveLeft","moveRight"].forEach(N=>{const O=G.includes(N);s?.value?.setPlayerAction?.(N,O)})},C=G=>{const R=G.touches[0],N=r.value.getBoundingClientRect();h.value={x:N.left+N.width/2,y:N.top+N.height/2},c.value=!0,R&&I(R.clientX,R.clientY)},x=G=>{if(!c.value)return;const R=G.touches[0];R&&I(R.clientX,R.clientY)},I=(G,R)=>{if(o)return;let N=G-h.value.x,O=R-h.value.y;const z=Math.sqrt(N*N+O*O);z>bc&&(N=N/z*bc,O=O/z*bc),a.value=N,l.value=O;const j=A(N,O);b(j)},E=()=>{c.value=!1,a.value=0,l.value=0,v()},S=()=>{_(),m=setInterval(()=>{p.value<u.length-1&&(p.value++,F())},150)},w=()=>{_(),m=setInterval(()=>{p.value>0&&(p.value--,F())},150)},T=()=>{_()},_=()=>{m&&(clearInterval(m),m=null)},F=()=>{o||s?.value?.setPlayerSpeed?.(u[p.value])},U=()=>{s?.value?.setPlayerAction?.("moveUp",!0)},L=()=>{s?.value?.setPlayerAction?.("moveUp",!1)},D=()=>{s?.value?.setPlayerAction?.("moveDown",!0)},M=()=>{s?.value?.setPlayerAction?.("moveDown",!1)},k=()=>{s?.value?.setPlayerParams?.({gravityTest:f.value,collisionTest:!0})},B=()=>{V(),n("update:visible",!1),n("close")},P=async()=>{if(!o)try{if(!s?.value){setTimeout(()=>P(),150);return}s.value.startCameraRoam&&s.value.startCameraRoam(),s.value.setPlayerSpeed?.(u[p.value])}catch(G){console.error("MobilePlayer startPlayer error:",G)}},V=()=>{v(),o||s?.value?.closePlayer?.(),_()};return d.watch(()=>t.visible,G=>{o||(G?P():V())},{immediate:!0}),d.onUnmounted(()=>{o=!0,V()}),(G,R)=>i.visible?(d.openBlock(),d.createElementBlock("div",{key:0,class:"mobile-player-overlay",onTouchmove:R[1]||(R[1]=d.withModifiers(()=>{},["prevent"]))},[d.createElementVNode("button",{class:"player-exit-btn",onClick:B}," 退出 "),d.createElementVNode("div",{class:"joystick-zone",ref_key:"joystickRef",ref:r,onTouchstart:d.withModifiers(C,["prevent"]),onTouchmove:d.withModifiers(x,["prevent"]),onTouchend:d.withModifiers(E,["prevent"]),onTouchcancel:d.withModifiers(E,["prevent"])},[d.createElementVNode("div",i8,[d.createElementVNode("div",{class:"joystick-knob",style:d.normalizeStyle(y.value)},null,4)])],544),d.createElementVNode("div",n8,[d.createElementVNode("div",s8,[d.createElementVNode("button",{class:"ctrl-btn ctrl-btn-sm",onTouchstart:d.withModifiers(w,["prevent"]),onTouchend:d.withModifiers(T,["prevent"])},"−",32),d.createElementVNode("span",o8,d.toDisplayString(g.value),1),d.createElementVNode("button",{class:"ctrl-btn ctrl-btn-sm",onTouchstart:d.withModifiers(S,["prevent"]),onTouchend:d.withModifiers(T,["prevent"])},"+",32)]),d.createElementVNode("div",r8,[d.createElementVNode("label",a8,[d.withDirectives(d.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":R[0]||(R[0]=N=>f.value=N),onChange:k},null,544),[[d.vModelCheckbox,f.value]]),R[2]||(R[2]=d.createElementVNode("span",{class:"toggle-checkbox"},null,-1)),R[3]||(R[3]=d.createElementVNode("span",{class:"toggle-label"},"重力",-1))]),d.createElementVNode("div",l8,[d.createElementVNode("button",{class:"ctrl-btn ctrl-btn-arrow",onTouchstart:d.withModifiers(U,["prevent"]),onTouchend:d.withModifiers(L,["prevent"])},[...R[4]||(R[4]=[d.createElementVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[d.createElementVNode("polyline",{points:"18 15 12 9 6 15"})],-1)])],32),d.createElementVNode("button",{class:"ctrl-btn ctrl-btn-arrow",onTouchstart:d.withModifiers(D,["prevent"]),onTouchend:d.withModifiers(M,["prevent"])},[...R[5]||(R[5]=[d.createElementVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[d.createElementVNode("polyline",{points:"6 9 12 15 18 9"})],-1)])],32)])])])],32)):d.createCommentVNode("",!0)}}),[["__scopeId","data-v-d80a8120"]]),c8={key:0,class:"mobile-info-sheet-wrapper"},d8={class:"info-body"},h8={key:0,class:"empty-hint"},u8={key:0,class:"component-title"},f8={class:"group-list"},p8=["onClick"],m8={class:"group-name"},g8={key:0,class:"group-content"},y8={class:"kv-key"},A8={class:"kv-value"},Rm=Be(d.defineComponent({__name:"MobileInfo",props:{visible:{type:Boolean}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref([]),r=d.ref(!1),a=d.ref(new Set),l=d.ref([]);let c=!1;const h=d.computed({get:()=>!!t.visible,set:x=>{n("update:visible",x)}}),u=x=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[x]||x,p=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],f=(x,I)=>`${x}__${I}`,m=(x,I)=>a.value.has(f(x,I)),y=(x,I)=>{const E=f(x,I);a.value.has(E)?a.value.delete(E):a.value.add(E)},g=()=>{const x=new Set;o.value.forEach(I=>{I.groups.forEach(E=>{x.add(f(I.id,E.name))})}),a.value=x},A=()=>{h.value=!1,n("close")},v=async x=>{if(c)return;if(l.value=x||[],!x||x.length===0){o.value=[];return}let I=x;x.length>10&&(me.warning(`选中构件数量过多(${x.length}个),仅显示前10个`),I=x.slice(0,10));const E=s?.value;let S=E?.getMapTileset?E.getMapTileset():{};r.value=!0;const w=new Set;if(I.forEach(_=>{const F=S[_.modelId];F&&F.leiting&&!F.leiting?.node?.nodeExtras&&F.leiting.model?.nodeUrl&&w.add(_.modelId)}),w.size>0&&E?._loadNodeDetailsForModel)try{await Promise.all(Array.from(w).map(_=>E._loadNodeDetailsForModel(_)))}catch(_){console.error("Failed to load node details",_)}if(c)return;S=E?.getMapTileset?E.getMapTileset():{};const T=[];I.forEach((_,F)=>{const L=S[_.modelId]?.leiting||{};let D={modelName:L.model?.modelId||_.modelId};D.elementID||(D.elementID=_.elementId);let M=null;const k=L.node?.nodeExtras?.element||L.node?.nodeExtras;if(k){const V=D.elementID;k[V]&&(M=k[V])}M&&M.box3&&(D.length=`${M.box3.length?.toFixed(2)||0}米`,D.width=`${M.box3.width?.toFixed(2)||0}米`,D.height=`${M.box3.height?.toFixed(2)||0}米`);const B=[];M&&(M.name&&(D.elementName=M.name),M.categoryName&&(D.categoryName=M.categoryName),M.familySymbolName&&(D.familySymbolName=M.familySymbolName),M.levelName&&(D.levelName=M.levelName));const P={};if(p.forEach(V=>{D[V]!==void 0&&(P[V]=D[V])}),B.push({name:"基本属性",params:P}),M){const V=Array.isArray(M)?M:Array.isArray(M?.parameters)?M.parameters:null;if(V)V.flat().forEach(R=>{if(R&&R.GroupName&&Array.isArray(R.Parameters)){const N={};R.Parameters.forEach(O=>{O.name&&(N[O.name]=O.value??"")}),Object.keys(N).length>0&&B.push({name:R.GroupName,params:N})}});else{let G=!1;if(Object.keys(M).forEach(R=>{M[R]&&typeof M[R]=="object"&&!Array.isArray(M[R])&&(G=!0,B.push({name:R,params:M[R]}))}),!G){const R={};Object.keys(M).forEach(N=>{if(!p.includes(N)&&N!=="batchId"){const O=M[N];R[N]=typeof O=="string"&&O.length>500?O.substring(0,500)+"...":O}}),Object.keys(R).length>0&&B.push({name:"其他属性",params:R})}}}T.push({id:F,title:`${D.modelName}${D.elementName?` - ${D.elementName}`:""}`,groups:B})}),o.value=T,r.value=!1,!c&&T.length>0&&g()};let b=!1;const C=()=>{if(b)return;const x=s?.value;x&&x.selectionChange&&(x.selectionChange(v),b=!0)};return d.watch(()=>s?.value,()=>C(),{deep:!0,immediate:!0}),d.watch(h,x=>{x&&(C(),l.value.length>0&&v(l.value))}),d.onUnmounted(()=>{c=!0}),(x,I)=>(d.openBlock(),d.createBlock(d.Transition,{name:"info-slide"},{default:d.withCtx(()=>[i.visible?(d.openBlock(),d.createElementBlock("div",c8,[d.createElementVNode("div",{class:"mobile-info-sheet",onTouchmove:I[0]||(I[0]=d.withModifiers(()=>{},["stop"])),onClick:I[1]||(I[1]=d.withModifiers(()=>{},["stop"]))},[d.createElementVNode("div",{class:"info-header"},[I[3]||(I[3]=d.createElementVNode("span",{class:"info-title"},"构件详情",-1)),d.createElementVNode("button",{class:"info-close-btn",onClick:A},[...I[2]||(I[2]=[d.createElementVNode("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[d.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),d.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),I[5]||(I[5]=d.createElementVNode("div",{class:"info-tabs"},[d.createElementVNode("span",{class:"tab-item active"},"属性")],-1)),d.createElementVNode("div",d8,[d.createVNode(d.unref(re.Spin),{spinning:r.value},{default:d.withCtx(()=>[o.value.length===0&&!r.value?(d.openBlock(),d.createElementBlock("div",h8," 暂无数据 ")):d.createCommentVNode("",!0),(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(o.value,E=>(d.openBlock(),d.createElementBlock("div",{key:E.id,class:"component-block"},[o.value.length>1?(d.openBlock(),d.createElementBlock("div",u8,d.toDisplayString(E.title),1)):d.createCommentVNode("",!0),d.createElementVNode("div",f8,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(E.groups,(S,w)=>(d.openBlock(),d.createElementBlock("div",{key:`${E.id}-${w}`,class:"group-item"},[d.createElementVNode("button",{class:d.normalizeClass(["group-header",{expanded:m(E.id,S.name)}]),onClick:T=>y(E.id,S.name)},[I[4]||(I[4]=d.createElementVNode("svg",{class:"arrow-icon",viewBox:"0 0 16 16",width:"12",height:"12",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[d.createElementVNode("polyline",{points:"4 6 8 10 12 6"})],-1)),d.createElementVNode("span",m8,d.toDisplayString(S.name),1)],10,p8),d.createVNode(d.Transition,{name:"group-expand"},{default:d.withCtx(()=>[m(E.id,S.name)?(d.openBlock(),d.createElementBlock("div",g8,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(S.params,(T,_)=>(d.openBlock(),d.createElementBlock("div",{key:_,class:"kv-row"},[d.createElementVNode("span",y8,d.toDisplayString(u(String(_))),1),d.createElementVNode("span",A8,d.toDisplayString(T),1)]))),128))])):d.createCommentVNode("",!0)]),_:2},1024)]))),128))])]))),128))]),_:1},8,["spinning"])])],32)])):d.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-c4855585"]]),v8={class:"mobile-cad-layer-container"},b8={class:"model-selector"},w8={class:"layer-list-container"},C8={class:"list-header"},E8={class:"col-check"},x8=["checked"],I8={class:"list-body"},S8=["onClick"],M8=["checked","onChange"],T8={class:"col-index"},B8=["title"],_8={class:"col-color"},k8={key:0,class:"empty-state"},P8=Be(d.defineComponent({__name:"MobileCadLayer",props:{visible:{type:Boolean,default:!1},currentModelId:{type:String,default:""}},emits:["update:visible","handleCloseCardByCadCard"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods",d.ref({})),o=d.ref(""),r=d.ref([]),a=d.computed({get:()=>t.visible,set:C=>n("update:visible",C)}),l=()=>{s.value&&s.value.getDxfModels&&(r.value=s.value.getDxfModels().map(C=>({modelId:C.modelId,modelName:C.modelName}))||[])},c=d.computed(()=>r.value.map(C=>({value:C.modelId,label:C.modelName}))),h=d.ref([]),u=d.ref([]),p=d.computed(()=>h.value.length>0&&u.value.length===h.value.length),f=({modelId:C})=>{if(h.value=[],u.value=[],s.value&&s.value.getDxfLayers){const x=s.value.getDxfLayers({modelId:C});x&&Object.keys(x).forEach((I,E)=>{x[I].length&&(h.value.push({index:E+1,layerName:I,layerColor:x[I][0].color||"#ffffff",key:I}),u.value.push(I))})}},m=C=>{o.value=C,f({modelId:C})},y=C=>{C.target.checked?u.value=h.value.map(I=>I.key):u.value=[],A()},g=(C,x)=>{x.target.checked?u.value.includes(C)||u.value.push(C):u.value=u.value.filter(E=>E!==C),A()},A=()=>{if(s.value&&s.value.showDxfLayer&&(s.value.showDxfLayer({modelId:o.value,show:!0,layers:u.value}),s.value.getDxfLayers)){const C=s.value.getDxfLayers({modelId:o.value});if(C){const x=Object.keys(C).filter(I=>!u.value.includes(I));s.value.showDxfLayer({modelId:o.value,show:!1,layers:x})}}},v=C=>{a.value=C},b=()=>{n("update:visible",!1),n("handleCloseCardByCadCard")};return d.watch(()=>t.visible,C=>{C&&(l(),t.currentModelId?(o.value=t.currentModelId,f({modelId:t.currentModelId})):c.value.length>0&&(o.value=c.value[0]?.value,f({modelId:o.value})))}),d.watch(()=>t.currentModelId,C=>{C&&t.visible&&(o.value=C,f({modelId:C}))}),(C,x)=>(d.openBlock(),d.createBlock(Wr,{visible:a.value,title:"CAD图层",direction:"bottom","show-handle":!0,height:"70vh",class:"mobile-cad-layer-drawer","onUpdate:visible":v,onClose:b},{default:d.withCtx(()=>[d.createElementVNode("div",v8,[d.createElementVNode("div",b8,[x[3]||(x[3]=d.createElementVNode("span",{class:"selector-label"},"图纸:",-1)),d.createVNode(d.unref(re.Select),{value:o.value,"onUpdate:value":x[0]||(x[0]=I=>o.value=I),options:c.value,onChange:x[1]||(x[1]=I=>m(I)),placeholder:"选择模型",class:"mobile-model-select",popupClassName:"mobile-cad-select-dropdown",size:"large"},null,8,["value","options"])]),d.createElementVNode("div",w8,[d.createElementVNode("div",C8,[d.createElementVNode("div",E8,[d.createElementVNode("input",{type:"checkbox",checked:p.value,onChange:y,class:"mobile-checkbox"},null,40,x8)]),x[4]||(x[4]=d.createElementVNode("div",{class:"col-index"},"序号",-1)),x[5]||(x[5]=d.createElementVNode("div",{class:"col-name"},"图层名称",-1)),x[6]||(x[6]=d.createElementVNode("div",{class:"col-color"},"颜色",-1))]),d.createElementVNode("div",I8,[(d.openBlock(!0),d.createElementBlock(d.Fragment,null,d.renderList(h.value,I=>(d.openBlock(),d.createElementBlock("div",{key:I.key,class:"list-item",onClick:E=>g(I.key,{target:{checked:!u.value.includes(I.key)}})},[d.createElementVNode("div",{class:"col-check",onClick:x[2]||(x[2]=d.withModifiers(()=>{},["stop"]))},[d.createElementVNode("input",{type:"checkbox",checked:u.value.includes(I.key),onChange:E=>g(I.key,E),class:"mobile-checkbox"},null,40,M8)]),d.createElementVNode("div",T8,d.toDisplayString(I.index),1),d.createElementVNode("div",{class:"col-name",title:I.layerName},d.toDisplayString(I.layerName),9,B8),d.createElementVNode("div",_8,[d.createElementVNode("div",{class:"color-swatch",style:d.normalizeStyle({backgroundColor:I.layerColor})},null,4)])],8,S8))),128)),h.value.length===0?(d.openBlock(),d.createElementBlock("div",k8,[...x[7]||(x[7]=[d.createElementVNode("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[d.createElementVNode("path",{d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})],-1),d.createElementVNode("p",null,"暂无图层信息",-1)])])):d.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-63da9a15"]]),D8={class:"mobile-annotation-panel"},N8={class:"tools-section"},L8={class:"tools-grid"},R8={class:"style-section"},F8={class:"style-item"},O8={class:"color-picker-wrapper"},G8={class:"style-item"},U8={class:"line-width-options"},V8=["onClick"],Q8={class:"width-label"},z8=Be(d.defineComponent({__name:"MobileAnnotationCard",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(i,{emit:e}){const t=i,n=e,s=d.inject("leitingMethods"),o=d.ref(""),r=d.ref("#ff0000"),a=d.ref(3),l=d.computed({get:()=>t.visible,set:v=>n("update:visible",v)}),c=[{value:6,label:"粗"},{value:3,label:"中"},{value:1,label:"细"}],h=()=>s?.value?.getAnnotationInstance?s.value.getAnnotationInstance():null,u=()=>{const v=h();if(v&&(typeof v.hideEntityOutline=="function"&&v.hideEntityOutline(),v.selectedEntityObj=null,v.drawTool&&typeof v.drawTool.deactivate=="function"))try{v.drawTool.deactivate()}catch(b){console.warn("Failed to deactivate drawTool:",b)}o.value="",n("update:visible",!1)},p=v=>{if(o.value===v){o.value="";return}o.value=v;const b=h();if(b)switch(v){case"freehandLine":b.startFreehandLine();break;case"arrow":b.startArrow();break;case"straightLine":b.startStraightLine();break;case"rectangle":b.startRectangle();break;case"ellipse":b.startEllipse();break}},f=()=>{const v=h();v&&(v.setCurrentColor(r.value),v.changeColor(r.value))},m=v=>{a.value=v;const b=h();b&&(b.setCurrentWidth(v),b.changeWidth(v))},y=()=>{const v=h();v&&v.deleteSelectedEntity()},g=()=>{const v=h();v&&v.clearAll()},A=()=>{if(s?.value?.saveAnnotations){s.value.saveAnnotations();return}const v=h();v&&v.saveAnnotations()};return(v,b)=>(d.openBlock(),d.createBlock(d.Teleport,{to:"body"},[d.createVNode(d.Transition,{name:"annotation-slide"},{default:d.withCtx(()=>[l.value?(d.openBlock(),d.createElementBlock("div",{key:0,class:"mobile-annotation-overlay",onClick:d.withModifiers(u,["self"])},[d.createElementVNode("div",D8,[d.createElementVNode("div",{class:"panel-header"},[b[7]||(b[7]=d.createElementVNode("span",{class:"panel-title"},"标注",-1)),d.createElementVNode("button",{class:"panel-close-btn",onClick:u},[...b[6]||(b[6]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round"},[d.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),d.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),d.createElementVNode("div",N8,[b[13]||(b[13]=d.createElementVNode("div",{class:"section-label"},"绘图工具",-1)),d.createElementVNode("div",L8,[d.createElementVNode("button",{class:d.normalizeClass(["tool-btn",{active:o.value==="freehandLine"}]),onClick:b[0]||(b[0]=C=>p("freehandLine"))},[...b[8]||(b[8]=[d.createElementVNode("div",{class:"tool-icon"},"✏️",-1),d.createElementVNode("span",{class:"tool-label"},"手绘线",-1)])],2),d.createElementVNode("button",{class:d.normalizeClass(["tool-btn",{active:o.value==="arrow"}]),onClick:b[1]||(b[1]=C=>p("arrow"))},[...b[9]||(b[9]=[d.createElementVNode("div",{class:"tool-icon"},"↗️",-1),d.createElementVNode("span",{class:"tool-label"},"箭头",-1)])],2),d.createElementVNode("button",{class:d.normalizeClass(["tool-btn",{active:o.value==="straightLine"}]),onClick:b[2]||(b[2]=C=>p("straightLine"))},[...b[10]||(b[10]=[d.createElementVNode("div",{class:"tool-icon"},"📏",-1),d.createElementVNode("span",{class:"tool-label"},"直线",-1)])],2),d.createElementVNode("button",{class:d.normalizeClass(["tool-btn",{active:o.value==="rectangle"}]),onClick:b[3]||(b[3]=C=>p("rectangle"))},[...b[11]||(b[11]=[d.createElementVNode("div",{class:"tool-icon"},"▭",-1),d.createElementVNode("span",{class:"tool-label"},"矩形",-1)])],2),d.createElementVNode("button",{class:d.normalizeClass(["tool-btn",{active:o.value==="ellipse"}]),onClick:b[4]||(b[4]=C=>p("ellipse"))},[...b[12]||(b[12]=[d.createElementVNode("div",{class:"tool-icon"},"⭕",-1),d.createElementVNode("span",{class:"tool-label"},"椭圆",-1)])],2)])]),b[21]||(b[21]=d.createElementVNode("div",{class:"divider"},null,-1)),d.createElementVNode("div",R8,[b[16]||(b[16]=d.createElementVNode("div",{class:"section-label"},"样式设置",-1)),d.createElementVNode("div",F8,[b[14]||(b[14]=d.createElementVNode("span",{class:"style-label"},"颜色",-1)),d.createElementVNode("div",O8,[d.createElementVNode("div",{class:"color-preview",style:d.normalizeStyle({backgroundColor:r.value})},null,4),d.withDirectives(d.createElementVNode("input",{type:"color","onUpdate:modelValue":b[5]||(b[5]=C=>r.value=C),onChange:f,class:"color-input"},null,544),[[d.vModelText,r.value]])])]),d.createElementVNode("div",G8,[b[15]||(b[15]=d.createElementVNode("span",{class:"style-label"},"线宽",-1)),d.createElementVNode("div",U8,[(d.openBlock(),d.createElementBlock(d.Fragment,null,d.renderList(c,C=>d.createElementVNode("button",{key:C.value,class:d.normalizeClass(["width-btn",{active:a.value===C.value}]),onClick:x=>m(C.value)},[d.createElementVNode("div",{class:"width-line",style:d.normalizeStyle({height:C.value+"px",backgroundColor:a.value===C.value?"#00e5d1":"#fff"})},null,4),d.createElementVNode("span",Q8,d.toDisplayString(C.label),1)],10,V8)),64))])])]),b[22]||(b[22]=d.createElementVNode("div",{class:"divider"},null,-1)),d.createElementVNode("div",{class:"action-section"},[b[20]||(b[20]=d.createElementVNode("div",{class:"section-label"},"操作",-1)),d.createElementVNode("div",{class:"action-grid"},[d.createElementVNode("button",{class:"action-btn delete-btn",onClick:y},[...b[17]||(b[17]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[d.createElementVNode("polyline",{points:"3 6 5 6 21 6"}),d.createElementVNode("path",{d:"M19 6v14a2 2 0 01-2 2H7a2 2 0 01-2-2V6m3 0V4a2 2 0 012-2h4a2 2 0 012 2v2"})],-1),d.createElementVNode("span",null,"删除",-1)])]),d.createElementVNode("button",{class:"action-btn clear-btn",onClick:g},[...b[18]||(b[18]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[d.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),d.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1),d.createElementVNode("span",null,"清空",-1)])]),d.createElementVNode("button",{class:"action-btn save-btn",onClick:A},[...b[19]||(b[19]=[d.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[d.createElementVNode("path",{d:"M19 21H5a2 2 0 01-2-2V5a2 2 0 012-2h11l5 5v11a2 2 0 01-2 2z"}),d.createElementVNode("polyline",{points:"17 21 17 13 7 13 7 21"}),d.createElementVNode("polyline",{points:"7 3 7 8 15 8"})],-1),d.createElementVNode("span",null,"保存",-1)])])])])])])):d.createCommentVNode("",!0)]),_:1})]))}}),[["__scopeId","data-v-9b4979c4"]]),H8=["src"],qr=Be(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:{},teleportTarget:{},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(i,{expose:e,emit:t}){const n=d.ref(),s=d.ref(),o=d.getCurrentInstance(),r=d.ref(!1),a=d.ref(""),l=d.ref({}),c=d.ref("3d"),{isMobile:h}=Or(),u=i,p={title:"构件树",treeData:[]},f=d.ref(!1),m=d.ref(!1),y=d.ref(!1),g=d.ref(!1),A=d.ref(!1),v=d.ref(!1),b=d.ref(!1),C=d.ref(!1),x=d.ref(!1),I=d.ref(!1),E=d.ref(!1),S=d.ref(null),{visible:w,position:T,items:_,show:F,hide:U}=Bm(),L=d.ref([]),D=W=>{L.value.push(W)},M=W=>{L.value=L.value.filter(Y=>Y.id!==W)},k=d.ref([]),B=d.ref(""),P=d.ref(null),V=d.ref([]),G=d.reactive({tree:!1,section:!1,roam:!1,info:!1,adjustModel:!1,setting:!1,cadLayer:!1,cadPosition:!1,gisCadPosition:!1,annotation:!1}),R=(W,Y)=>{W==="componentTree"&&(W="tree"),W==="componentInfo"&&(W="info"),W in G&&(G[W]=Y)},N=d.shallowRef({});d.provide("leitingMethods",N);const O=d.ref(u.showMenu),z=d.ref([]);d.watch(()=>u.showMenu,W=>{O.value=W},{immediate:!0}),d.watch(()=>u.mode,W=>{W&&N.value?.set2d&&N.value.set2d(W==="2d")});const j=d.ref("dark");d.provide("leiting-theme",j);const Z=d.ref(u.teleportTarget);d.watch(()=>u.teleportTarget,W=>{Z.value=W});const te=d.ref([]),de=d.computed(()=>{const W=[];return f.value&&(W.push("tree"),W.push("componentTree")),m.value&&W.push("section"),y.value&&W.push("roam"),g.value&&(W.push("info"),W.push("componentInfo")),A.value&&W.push("adjust"),v.value&&W.push("setting"),b.value&&W.push("cadLayer"),C.value&&W.push("cadPosition"),x.value&&W.push("gisCadPosition"),I.value&&W.push("annotation"),E.value&&(W.push("measure"),W.push("measurement")),W.push(...te.value),W}),pe=d.ref(null),Ae=(W,Y)=>{W==="componentTree"||W==="tree"?f.value=Y:W==="section"?m.value=Y:W==="roam"?y.value=Y:W==="componentInfo"||W==="info"?g.value=Y:W==="homeView"?N.value?.is2dMode?.()?N.value?.flyToTopView?.({}):N.value?.getBIMmodelId()?N.value?.flyToTileset?.({}):N.value?.getCadModelId()&&N.value?.flyToTopView?.({}):W==="adjustModel"?(A.value=Y,Y&&pe.value&&pe.value.setModelType("BIM")):W==="osgbAdjust"?(A.value=Y,Y&&pe.value&&pe.value.setModelType("OSGB")):W==="setting"?v.value=Y:W==="cadLayer"?b.value=Y:W==="cadPosition"?C.value=Y:W==="gisCadPosition"?x.value=Y:W==="annotation"?I.value=Y:W==="measurement"?E.value=Y:Y?te.value.includes(W)||te.value.push(W):te.value=te.value.filter(ee=>ee!==W)},Pe=W=>{const Y=W.key||W.ID;if(!Y)return;if(Y==="homeView"||Y==="home"){Ae(Y,!0);return}if(Y==="measurement"){S.value="distance",E.value=!0;return}const ee=!de.value.includes(W.ID);Ae(Y,ee)},Ge=W=>{const Y=W.sub;if(!Y)return;const ee=Y.parentKey||W.parent?.key;ee==="measurement"?(S.value=Y.id.replace("measure-",""),E.value=!0):ee==="section"&&(m.value=!0)};d.watch(f,async W=>{if(W&&N.value?.loadTreeForModel&&N.value?.getMapTileset){const Y=N.value.getMapTileset(),ee=Object.values(Y).map(async Ze=>{if(Ze.leiting&&Ze.leiting.model?.treeUrl){const li=Ze.leiting.model.modelId;try{Ze.leiting?.node?.batchIdEIDInfos||await N.value.loadNodeDetailsForModel(li);const Yt=await N.value.loadTreeForModel(li);Yt&&(Array.isArray(Yt)?Yt:[Yt]).forEach(Yi=>{Yi&&!V.value.find(Yd=>Yd.id===Yi.id)&&(Yi.modelId=li,V.value=[...V.value,Yi])})}catch(Yt){console.warn(`Failed to lazy load tree for ${li}`,Yt)}}});await Promise.all(ee)}});const Je=()=>{N.value&&(N.value.getDxfModels&&(k.value=N.value.getDxfModels()||[]),N.value.getCadModelId&&(B.value=N.value.getCadModelId()||""))};let vt;d.watch(b,W=>{W&&Je()}),d.watch(C,W=>{W&&(Je(),P.value&&k.value.length&&P.value.addGltfOr3dTilesModelList(k.value))});const ct=t,Bt=W=>{N.value&&N.value.saveCadCalibration&&N.value.saveCadCalibration(W),N.value&&N.value.saveCadRegion&&N.value.saveCadRegion(W)};return d.onMounted(async()=>{if(s.value&&me.setContainer(s.value),!!n.value)try{const W={...bn,cesiumUrl:u.cesiumUrl||bn.cesiumUrl,cesiumCssUrl:u.cesiumCssUrl||bn.cesiumCssUrl,accessToken:u.accessToken||Jd()||bn.accessToken};await Va(W),r.value=!0,vt=async(ee={},Ze)=>{if(n.value){const{showMenu:li,showTree:Yt,globe:yn,terrain:Yi,depthTest:Yd,mapProvider:sU,tiandituLayerType:oU,tiandituShowLabel:rU,arcgisUrl:aU,shadows:lU,environmentMap:cU,ambientOcclusion:dU,time:hU,brightness:uU,backgroundColor:fU,collision:pU,mouseHabit:mU,heightBasedZoom:gU,mode:ry,...ci}=ee||{},yU=u.showMenu!==void 0?u.showMenu:li!==void 0?li:!0;O.value=yU;const ft=(se,He,$t)=>se!==void 0?se:He!==void 0?He:$t,ay=ft(u.globe,yn,!1),ly=ft(u.terrain,Yi,!1),cy=ft(u.depthTest,Yd,!1),dy=ft(u.mapProvider,sU,"tianditu"),hy=ft(u.tiandituLayerType,oU,"img_w"),uy=ft(u.tiandituShowLabel,rU,!1),fy=ft(u.arcgisUrl,aU,"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"),py=ft(u.shadows,lU,!1),my=ft(u.environmentMap,cU,!1),gy=ft(u.ambientOcclusion,dU,!1),yy=ft(u.time,hU,void 0),Ay=ft(u.brightness,uU,1),La=u.mode||ry||"3d";u.mode,c.value=La;const AU=La==="2d"?"#000000":"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)",vy=ft(u.backgroundColor,fU,AU),by=ft(u.collision,pU,!1),wy=ft(u.mouseHabit,mU,0),Cy=ft(u.heightBasedZoom,gU,!1);l.value={globe:ay,terrain:ly,depthTest:cy,mapProvider:dy,tiandituLayerType:hy,tiandituShowLabel:uy,arcgisUrl:fy,shadows:py,environmentMap:my,ambientOcclusion:gy,time:yy,brightness:Ay,backgroundColor:vy,collision:by,mouseHabit:wy,heightBasedZoom:Cy,useBrowserRecommendedResolution:!0};const No=CB({container:n.value,appContext:o?.appContext,methods:{...N.value,handleMenuAction:Ae,setCardFullHeight:R,onLoadingStatus:se=>{se?me.loading(se,"",s.value):me.close()},...ci,tilesLoad3dTiles:async se=>{let He=se.leiting?.tree;const $t=se.leiting?.model?.modelId;if(!He&&f.value&&N.value?.loadTreeForModel)try{He=await N.value.loadTreeForModel($t)}catch(Ro){console.warn("Failed to lazy load tree",Ro)}He&&(Array.isArray(He)?He:[He]).forEach(vn=>{vn&&!V.value.find(xy=>xy.id===vn.id)&&(vn.modelId=$t,V.value=[...V.value,vn])});const{brightness:$d,contrast:jd,saturation:wi}=No.methods.getConfigure();No.methods.setModelColorAdjustment({brightness:$d,contrast:jd,saturation:wi}),ci.tilesLoad3dTiles?.(se)},mountAll3Dtiles:se=>{u.mountAll3Dtiles&&u.mountAll3Dtiles(se),ci.mountAll3Dtiles?.(se)},updateModels:se=>{if(Array.isArray(se))if(se.length===0)V.value=[];else{const He=se.map($t=>$t.modelId);V.value=V.value.filter($t=>He.includes($t.modelId))}},mountAllCad:se=>{if(No.methods.setModelBrightness){const He=u.brightness!==void 0?u.brightness:l.value.brightness;He!==void 0&&No.methods.setModelBrightness(He)}u.mountAllCad&&u.mountAllCad(se),ci.mountAllCad?.(se)},saveRegion:se=>{u.saveRegion&&u.saveRegion(se),ci.saveRegion?.(se)},saveCadRegion:se=>{u.saveCadRegion&&u.saveCadRegion(se),ci.saveCadRegion?.(se)},saveCadCalibration:se=>{u.saveCadCalibration&&u.saveCadCalibration(se),ci.saveCadCalibration?.(se)},selectionChange:se=>{u.selectionChange&&u.selectionChange(se),ci.selectionChange?.(se)},onSearchComponent:se=>{u.searchComponent&&u.searchComponent(se),ci.searchComponent?.(se)}},viewerOptions:u.viewerOptions,options:{...ci,mode:La,playerUrl:u.playerUrl,playerModelName:u.playerModelName,playerModelId:u.playerModelId,playerScale:u.playerScale,globe:ay,terrain:ly,depthTest:cy,mapProvider:dy,tiandituLayerType:hy,tiandituShowLabel:uy,tiandituToken:u.tiandituToken,arcgisUrl:fy,shadows:py,environmentMap:my,ambientOcclusion:gy,time:yy,brightness:Ay,backgroundColor:vy,collision:by,mouseHabit:wy,heightBasedZoom:Cy},callbacks:{onLoading:se=>se?me.loading(se,"",s.value):me.close(),onSuccess:se=>me.success(se,"",void 0,s.value),onError:se=>me.error(se,"",void 0,s.value)}}),{Cesium:An,viewer:gs,methods:Ra,menuEvents:Lo}=No,xe=Ra;Lo.on("showMenu",se=>{O.value=se}),Lo.on("insertMenu",se=>{z.value=[...z.value,...se]}),Lo.on("setMenuActive",(se,He)=>{Ae(se,He)}),N.value=xe,Ze&&(Ze.value=xe),Lo.on("setMode",se=>{c.value=se}),Lo.on("deleteAllModels",()=>{V.value=[]}),new An.ScreenSpaceEventHandler(gs.scene.canvas).setInputAction(async se=>{if(U(),c.value==="2d")return;const He=gs.scene.pick(se.position),$t=gs.container.getBoundingClientRect(),$d=$t.left+se.position.x,jd=$t.top+se.position.y,wi=[];if(An.defined(He)&&He instanceof An.Cesium3DTileFeature){const Ro=xe.baseCompt.getFeatureId(He),vn=ks(He.tileset);xe.baseCompt.hasSelectedFeaturesMap[vn]?.some(Fo=>Fo.batchId===Ro&&Fo.rank===0)||(await xe.baseCompt.clearSelection(),await xe.baseCompt.toggleMultiSelect(vn,Ro,xe.baseCompt.selectedColor)),wi.push({id:"details",label:"构件详情",action:()=>{g.value=!0}}),wi.push({id:"hide",label:"隐藏选中构件",action:async()=>{const Oo=(await xe.baseCompt.getSelected()).map(Ci=>({elementId:Ci.elementId,modelId:Ci.modelId,show:!1}));xe.baseCompt.setComponentVisibility(Oo)}}),wi.push({id:"translucent",label:"半透明选中构件",action:async()=>{const Oo=(await xe.baseCompt.getSelected()).map(Ci=>({elementId:Ci.elementId,modelId:Ci.modelId,rgba:{...Ci.rgba,a:.3}}));await xe.baseCompt.setSelectColorUserModelCpt(Oo,{rank:0})}}),wi.push({id:"isolate",label:"隔离选中构件",divided:!0,action:async()=>{await xe.baseCompt.loadAllNodeDetailsForModel();const Oo=(await xe.baseCompt.getSelected()).map(Ci=>({elementId:Ci.elementId,modelId:Ci.modelId,show:!0}));xe.isolateComponents(Oo)}})}wi.push({id:"showAll",label:"显示所有",action:async()=>{xe.baseCompt.setAllComponentsVisibility(!0),await xe.baseCompt.clearSelection()}}),wi.push(...L.value),F({x:$d,y:jd},wi)},An.ScreenSpaceEventType.RIGHT_CLICK),xe.addContextMenuItems=D,xe.insertContextMenu=xe.addContextMenuItems,xe.removeContextMenuItems=M,xe.deleteContextMenu=xe.removeContextMenuItems,xe.closeContextMenu=U,xe.hideContextMenu=xe.closeContextMenu,xe.onSetTeleportTarget=se=>{Z.value=se},await d.nextTick();const Ey=ee?.onLoaded||ee?.onloaded;Ey&&Ey({Cesium:An,viewer:gs,methods:Ra}),ct("init",{Cesium:An,viewer:gs,methods:Ra}),ct("ready",{Cesium:An,viewer:gs,methods:Ra})}};let Y=!1;ct("register",(ee,Ze)=>{Y=!0,vt(ee,Ze)}),Y||setTimeout(()=>{N.value.getViewer||vt()},0)}catch(W){a.value="Failed to load Cesium: "+(W.message||W),console.error(W)}}),d.onUnmounted(()=>{me.setContainer(null)}),e({initMap:()=>N.value,initializeViewer:(W,Y)=>vt(W,Y)}),(W,Y)=>(d.openBlock(),d.createElementBlock("div",{class:d.normalizeClass(["leiting-bim-container",[`theme-${j.value}`]]),onContextmenu:Y[29]||(Y[29]=d.withModifiers(()=>{},["prevent","stop"]))},[!r.value&&!a.value?(d.openBlock(),d.createBlock(d.unref(re.Spin),{key:0,class:"loading",size:"large",tip:"加载基础组件中..."})):d.createCommentVNode("",!0),a.value?(d.openBlock(),d.createBlock(d.unref(re.Alert),{key:1,class:"error",type:"error",message:a.value,"show-icon":""},null,8,["message"])):d.createCommentVNode("",!0),d.createElementVNode("div",{ref_key:"containerRef",ref:n,class:"cesium-viewer"},[d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(ao,{key:0,visible:O.value,"active-ids":de.value,"custom-items":z.value,onAction:Ae,"is-2d":c.value==="2d"},null,8,["visible","active-ids","custom-items","is-2d"])),d.unref(h)&&!y.value&&!E.value?(d.openBlock(),d.createBlock(_m,{key:1,"active-ids":de.value,"is-2d":c.value==="2d",onItemClick:Pe,onSubItemClick:Ge},null,8,["active-ids","is-2d"])):d.createCommentVNode("",!0),d.unref(h)&&i.showTree!==!1&&!y.value&&c.value!=="2d"?(d.openBlock(),d.createElementBlock("button",{key:2,class:d.normalizeClass(["mobile-float-tree-btn",{active:f.value}]),onClick:Y[0]||(Y[0]=ee=>f.value=!f.value)},[d.createElementVNode("img",{src:d.unref(Ur),class:"mobile-float-tree-icon",alt:"目录树"},null,8,H8)],2)):d.createCommentVNode("",!0),(d.openBlock(),d.createBlock(d.Teleport,{to:Z.value||"body",disabled:!Z.value},[d.createElementVNode("div",{ref_key:"uiOverlayRef",ref:s,class:"leiting-ui-overlay"},[d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(ho,{key:0,visible:g.value,"full-height":G.info,"onUpdate:visible":Y[1]||(Y[1]=ee=>g.value=ee)},null,8,["visible","full-height"])),d.unref(h)?(d.openBlock(),d.createBlock(Rm,{key:1,visible:g.value,"onUpdate:visible":Y[2]||(Y[2]=ee=>g.value=ee),onClose:Y[3]||(Y[3]=()=>{g.value=!1})},null,8,["visible"])):d.createCommentVNode("",!0),d.createVNode(uo,{ref_key:"LeitingPositionRef",ref:pe,visible:A.value,"full-height":G.adjustModel,"onUpdate:visible":Y[4]||(Y[4]=ee=>A.value=ee)},null,8,["visible","full-height"]),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(fo,{key:2,visible:v.value,"full-height":G.setting,"tianditu-token":u.tiandituToken,"initial-config":l.value,"onUpdate:visible":Y[5]||(Y[5]=ee=>v.value=ee)},null,8,["visible","full-height","tianditu-token","initial-config"])),d.unref(h)?(d.openBlock(),d.createBlock(Pm,{key:3,visible:v.value,"onUpdate:visible":Y[6]||(Y[6]=ee=>v.value=ee),onClose:Y[7]||(Y[7]=()=>{v.value=!1,te.value=te.value.filter(ee=>ee!=="setting")})},null,8,["visible"])):d.createCommentVNode("",!0),i.showTree!==!1&&!d.unref(h)?(d.openBlock(),d.createBlock(Gr,d.mergeProps({key:4},{...p,...i.treeProps},{visible:f.value,"full-height":G.tree,"tree-data":V.value.length>0?V.value:i.treeProps?.treeData||[],"onUpdate:visible":Y[8]||(Y[8]=ee=>{f.value=ee})}),null,16,["visible","full-height","tree-data"])):d.createCommentVNode("",!0),i.showTree!==!1&&d.unref(h)?(d.openBlock(),d.createBlock(km,{key:5,visible:f.value,"tree-data":V.value.length>0?V.value:i.treeProps?.treeData||[],"onUpdate:visible":Y[9]||(Y[9]=ee=>{f.value=ee}),onClose:Y[10]||(Y[10]=()=>{f.value=!1})},null,8,["visible","tree-data"])):d.createCommentVNode("",!0),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(dN,{key:6,visible:I.value,"onUpdate:visible":Y[11]||(Y[11]=ee=>I.value=ee)},null,8,["visible"])),d.unref(h)?(d.openBlock(),d.createBlock(z8,{key:7,visible:I.value,"onUpdate:visible":Y[12]||(Y[12]=ee=>I.value=ee)},null,8,["visible"])):d.createCommentVNode("",!0),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(_N,{key:8,visible:E.value,"onUpdate:visible":Y[13]||(Y[13]=ee=>E.value=ee)},null,8,["visible"])),d.unref(h)?(d.openBlock(),d.createBlock(Nm,{key:9,visible:E.value,"default-tool":S.value,"onUpdate:visible":Y[14]||(Y[14]=ee=>{E.value=ee,ee||(S.value=null)}),onClose:Y[15]||(Y[15]=()=>{E.value=!1,S.value=null})},null,8,["visible","default-tool"])):d.createCommentVNode("",!0),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(lo,{key:10,visible:m.value,"full-height":G.section,"onUpdate:visible":Y[16]||(Y[16]=ee=>m.value=ee)},null,8,["visible","full-height"])),d.unref(h)?(d.openBlock(),d.createBlock(Dm,{key:11,visible:m.value,"onUpdate:visible":Y[17]||(Y[17]=ee=>m.value=ee),onClose:Y[18]||(Y[18]=()=>{m.value=!1})},null,8,["visible"])):d.createCommentVNode("",!0),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(co,{key:12,visible:y.value,"full-height":G.roam,"onUpdate:visible":Y[19]||(Y[19]=ee=>y.value=ee)},null,8,["visible","full-height"])),d.unref(h)?(d.openBlock(),d.createBlock(Lm,{key:13,visible:y.value,"onUpdate:visible":Y[20]||(Y[20]=ee=>y.value=ee),onClose:Y[21]||(Y[21]=()=>{y.value=!1})},null,8,["visible"])):d.createCommentVNode("",!0),d.unref(h)?d.createCommentVNode("",!0):(d.openBlock(),d.createBlock(Zk,{key:14,visible:b.value,"current-model-id":B.value,"onUpdate:visible":Y[22]||(Y[22]=ee=>b.value=ee),onHandleCloseCardByCadCard:Y[23]||(Y[23]=()=>{b.value=!1})},null,8,["visible","current-model-id"])),d.unref(h)?(d.openBlock(),d.createBlock(P8,{key:15,visible:b.value,"current-model-id":B.value,"onUpdate:visible":Y[24]||(Y[24]=ee=>b.value=ee),onHandleCloseCardByCadCard:Y[25]||(Y[25]=()=>{b.value=!1})},null,8,["visible","current-model-id"])):d.createCommentVNode("",!0),d.createVNode($P,{ref_key:"cadPositionRef",ref:P,visible:C.value,"onUpdate:visible":Y[26]||(Y[26]=ee=>C.value=ee),onSave:Bt},null,8,["visible"]),d.createVNode(tN,{visible:x.value,"onUpdate:visible":Y[27]||(Y[27]=ee=>x.value=ee)},null,8,["visible"]),d.createVNode(NN,{visible:d.unref(w),position:d.unref(T),items:d.unref(_),"onUpdate:visible":Y[28]||(Y[28]=ee=>w.value=ee)},null,8,["visible","position","items"]),d.renderSlot(W.$slots,"default",d.normalizeProps(d.guardReactiveProps({methods:N.value,isReady:r.value})),void 0,!0)],512)],8,["to","disabled"]))],512)],34))}}),[["__scopeId","data-v-23352a4a"]]);function Y8(i,e={}){const{tapDelay:t=300,doubleTapDelay:n=300,moveThreshold:s=10}=e;let o=0,r={x:0,y:0},a=0,l=0,c=null;const h=[],u=[],p=[],f={},m=T=>{const _=T.touches[0]||T.changedTouches[0];return{x:_?.clientX??0,y:_?.clientY??0}},y=T=>{const _=m(T);o=Date.now(),r=_,a=0,p.forEach(({handler:F,delay:U})=>{c=window.setTimeout(()=>{F(T),c=null},U)})},g=T=>{const _=m(T),F=_.x-r.x,U=_.y-r.y;a=Math.sqrt(F*F+U*U),c&&a>s&&(clearTimeout(c),c=null)},A=T=>{const _=Date.now()-o,F=m(T),U=F.x-r.x,L=F.y-r.y;c&&(clearTimeout(c),c=null);const D=_<t&&a<s;if(D&&Date.now()-l<n&&a<s?(u.forEach(B=>B(T)),l=0):D&&(h.forEach(B=>B(T)),l=Date.now()),a>50){const B=Math.abs(U),P=Math.abs(L);B>P?U>0&&f.right?f.right(T):U<0&&f.left&&f.left(T):L>0&&f.down?f.down(T):L<0&&f.up&&f.up(T)}},v=T=>{h.push(T)},b=T=>{u.push(T)},C=(T,_=500)=>{p.push({handler:T,delay:_})},x=T=>{f.left=T},I=T=>{f.right=T},E=T=>{f.up=T},S=T=>{f.down=T},w=()=>{c&&(clearTimeout(c),c=null),h.length=0,u.length=0,p.length=0,Object.keys(f).forEach(T=>{delete f[T]})};return d.onMounted(()=>{const T=i.value;T&&(T.addEventListener("touchstart",y,{passive:!1}),T.addEventListener("touchmove",g,{passive:!1}),T.addEventListener("touchend",A,{passive:!1}))}),d.onUnmounted(()=>{w();const T=i.value;T&&(T.removeEventListener("touchstart",y),T.removeEventListener("touchmove",g),T.removeEventListener("touchend",A))}),{onTap:v,onDoubleTap:b,onLongPress:C,onSwipeLeft:x,onSwipeRight:I,onSwipeUp:E,onSwipeDown:S,destroy:w}}function $8(i){const e=t=>{t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement||t.target instanceof HTMLSelectElement||t.preventDefault()};return i.addEventListener("touchmove",e,{passive:!1}),()=>{i.removeEventListener("touchmove",e)}}function j8(){let i=0;const e=t=>{const n=Date.now();n-i<=300&&t.preventDefault(),i=n};return document.addEventListener("touchend",e,{passive:!1}),document.addEventListener("gesturestart",t=>t.preventDefault()),document.addEventListener("gesturechange",t=>t.preventDefault()),()=>{document.removeEventListener("touchend",e)}}function W8(i,e={}){const{delay:t=500,moveThreshold:n=10}=e,s=d.ref(!1);let o=null,r={x:0,y:0},a=!1;const l=f=>{if(f.touches.length!==1)return;f.preventDefault(),a=!0,s.value=!1;const m=f.touches[0];r={x:m?.clientX??0,y:m?.clientY??0},o=window.setTimeout(()=>{a&&(s.value=!0,i())},t)},c=f=>{if(!a||o===null)return;const m=f.touches[0],y=(m?.clientX??0)-r.x,g=(m?.clientY??0)-r.y;Math.sqrt(y*y+g*g)>n&&u()},h=()=>{a=!1,s.value=!1,o!==null&&(clearTimeout(o),o=null)},u=()=>{a=!1,s.value=!1,o!==null&&(clearTimeout(o),o=null)};return{isLongPressing:s,handlers:{onTouchStart:l,onTouchMove:c,onTouchEnd:h},start:l,end:h,cancel:u}}function q8(i,e,t={}){const{delay:n=500,moveThreshold:s=10}=t;let o=null,r={x:0,y:0};const a=h=>{if(h.touches.length!==1)return;h.preventDefault();const u=h.touches[0];r={x:u?.clientX??0,y:u?.clientY??0},o=window.setTimeout(()=>{e()},n)},l=h=>{if(o===null)return;const u=h.touches[0],p=(u?.clientX??0)-r.x,f=(u?.clientY??0)-r.y;Math.sqrt(p*p+f*f)>s&&(clearTimeout(o),o=null)},c=()=>{o!==null&&(clearTimeout(o),o=null)};return i.addEventListener("touchstart",a,{passive:!1}),i.addEventListener("touchmove",l,{passive:!1}),i.addEventListener("touchend",c),i.addEventListener("touchcancel",c),()=>{o!==null&&(clearTimeout(o),o=null),i.removeEventListener("touchstart",a),i.removeEventListener("touchmove",l),i.removeEventListener("touchend",c),i.removeEventListener("touchcancel",c)}}const K8={tapThreshold:10,doubleTapInterval:300,longPressDelay:500,panThreshold:20,pinchThreshold:.02};function X8(i={}){const e={...K8,...i},t=d.reactive({type:"none",startX:0,startY:0,currentX:0,currentY:0,deltaX:0,deltaY:0,scale:1,rotation:0,velocityX:0,velocityY:0,duration:0}),n=d.ref(!1),s=d.ref(!1),o=d.ref(!1);let r=0,a=0,l=null,c=0,h=1,u=0,p=null;const f={onTap:[],onDoubleTap:[],onLongPress:[],onPanStart:[],onPanMove:[],onPanEnd:[],onPinchStart:[],onPinchMove:[],onPinchEnd:[],onRotate:[]},m=L=>{if(L.length<2)return 0;const D=L[1].clientX-L[0].clientX,M=L[1].clientY-L[0].clientY;return Math.sqrt(D*D+M*M)},y=L=>L.length<2?0:Math.atan2(L[1].clientY-L[0].clientY,L[1].clientX-L[0].clientX)*(180/Math.PI);return{state:t,isActive:n,isPanning:s,isPinching:o,handlers:{onTouchStart:L=>{if(L.touches.length===1){const D=L.touches[0];p=D.identifier,r=Date.now(),t.startX=D.clientX,t.startY=D.clientY,t.currentX=D.clientX,t.currentY=D.clientY,t.deltaX=0,t.deltaY=0,n.value=!0,l=window.setTimeout(()=>{t.type="long-press",f.onLongPress.forEach(M=>M(L))},e.longPressDelay)}else L.touches.length===2&&(l&&(clearTimeout(l),l=null),o.value=!0,c=m(L.touches),h=1,u=y(L.touches),f.onPinchStart.forEach(D=>D(L)))},onTouchMove:L=>{if(L.touches.length===1&&p!==null){let D=null;for(let P=0;P<L.touches.length;P++)if(L.touches[P].identifier===p){D=L.touches[P];break}if(!D)return;const M=D.clientX-t.startX,k=D.clientY-t.startY;Math.sqrt(M*M+k*k)>e.panThreshold&&!s.value&&(s.value=!0,t.type="pan",l&&(clearTimeout(l),l=null),f.onPanStart.forEach(P=>P(L))),s.value&&(L.preventDefault(),t.deltaX=D.clientX-t.currentX,t.deltaY=D.clientY-t.currentY,t.currentX=D.clientX,t.currentY=D.clientY,t.velocityX=t.deltaX,t.velocityY=t.deltaY,f.onPanMove.forEach(P=>P(L)))}else if(L.touches.length===2&&o.value){L.preventDefault();const D=m(L.touches),M=y(L.touches),k=D/c;t.scale=h*k,t.rotation=M-u,f.onPinchMove.forEach(B=>B(L)),f.onRotate.forEach(B=>B(L))}},onTouchEnd:L=>{if(t.duration=Date.now()-r,l&&(clearTimeout(l),l=null),L.touches.length===0){if(s.value)t.type="pan",f.onPanEnd.forEach(D=>D(L));else if(o.value)f.onPinchEnd.forEach(D=>D(L));else if(t.type==="none"&&t.duration<300){const D=Date.now();D-a<e.doubleTapInterval?(t.type="double-tap",f.onDoubleTap.forEach(M=>M(L)),a=0):(t.type="tap",f.onTap.forEach(M=>M(L)),a=D)}s.value=!1,o.value=!1,n.value=!1,p=null,setTimeout(()=>{t.type="none",t.deltaX=0,t.deltaY=0,t.scale=1,t.rotation=0},50)}}},onTap:L=>{f.onTap.push(L)},onDoubleTap:L=>{f.onDoubleTap.push(L)},onLongPress:L=>{f.onLongPress.push(L)},onPanStart:L=>{f.onPanStart.push(L)},onPanMove:L=>{f.onPanMove.push(L)},onPanEnd:L=>{f.onPanEnd.push(L)},onPinchStart:L=>{f.onPinchStart.push(L)},onPinchMove:L=>{f.onPinchMove.push(L)},onPinchEnd:L=>{f.onPinchEnd.push(L)},onRotate:L=>{f.onRotate.push(L)}}}const Kr={enableFpsLimit:!0,targetFps:30,enableResolutionScale:!0,resolutionScale:.75,enableLazyLoad:!0,lazyLoadDelay:200,enableModelLod:!0,modelQualityLevel:"medium",enablePostProcessing:!1,enableFxaa:!1,enableAmbientOcclusion:!1,enableShadows:!1,maxTextureSize:1024,enableDebounce:!0,debounceDelay:100};function J8(i={}){const e={...Kr,...i};return{requestRenderMode:e.enableFpsLimit,maximumRenderTimeChange:e.enableFpsLimit?1e3/e.targetFps:void 0,scene3DOnly:!0,shouldAnimate:!0}}function Z8(i={}){const e={...Kr,...i};return{resolutionScale:e.enableResolutionScale?e.resolutionScale:1,targetFrameRate:e.enableFpsLimit?e.targetFps:void 0,sceneModePicker:!1,navigationHelpButton:!1,animation:!1,timeline:!1,fullscreenButton:!1,vrButton:!1,infoBox:!1,selectionIndicator:!1,shadows:e.enableShadows,skyAtmosphere:e.enablePostProcessing,fog:e.enablePostProcessing}}function eR(i={}){const e={...Kr,...i},n={low:{maximumScreenSpaceError:64,skipScreenSpaceErrorFactor:256,skipLevels:8,baseScreenSpaceError:2048},medium:{maximumScreenSpaceError:48,skipScreenSpaceErrorFactor:128,skipLevels:5,baseScreenSpaceError:1024},high:{maximumScreenSpaceError:32,skipScreenSpaceErrorFactor:64,skipLevels:3,baseScreenSpaceError:512}}[e.modelQualityLevel];return{cullWithChildrenBounds:!0,cullRequestsWhileMoving:!0,cullRequestsWhileMovingMultiplier:10,backFaceCulling:!0,colorBlendAmount:0,minimumPixelSize:128,maximumScreenSpaceError:n.maximumScreenSpaceError,skipLevelOfDetail:e.enableModelLod,baseScreenSpaceError:n.baseScreenSpaceError,skipScreenSpaceErrorFactor:n.skipScreenSpaceErrorFactor,skipLevels:n.skipLevels,immediatelyLoadDesiredLevelOfDetail:!1,loadSiblings:!1,maximumMemoryUsage:4096*5,preloadWhenHidden:!0,preferLeaves:e.enableModelLod,progressiveResolutionHeightFraction:.5,dynamicScreenSpaceErrorDensity:.002,dynamicScreenSpaceErrorFactor:4,dynamicScreenSpaceError:!0,dynamicScreenSpaceErrorHeightFalloff:.25,foveatedConeSize:0,foveatedTimeDelay:10,foveatedMinimumScreenSpaceErrorRelaxation:0}}function tR(i=30){const e=d.ref(60),t=d.ref(!1);let n=0,s=0,o=0;const r=1e3/i,a=()=>{t.value=!0,n=performance.now(),o=n,s=0},l=()=>{if(!t.value)return!0;const h=performance.now(),u=h-n;return s++,h-o>=1e3&&(e.value=Math.round(s*1e3/(h-o)),s=0,o=h),u>=r?(n=h-u%r,!0):!1},c=()=>{t.value=!1};return d.onUnmounted(()=>{c()}),{fps:e,isControlling:t,startControl:a,stopControl:c,tick:l}}function iR(i,e){let t=null;const n=((...s)=>{t!==null&&clearTimeout(t),t=window.setTimeout(()=>{i(...s),t=null},e)});return n.cancel=()=>{t!==null&&(clearTimeout(t),t=null)},n}function nR(i,e){let t=!1;return((...s)=>{t||(i(...s),t=!0,setTimeout(()=>{t=!1},e))})}function sR(i,e=200){let t=null;const n=()=>{t!==null&&clearTimeout(t),t=window.setTimeout(()=>{i(),t=null},e)},s=()=>{t!==null&&(clearTimeout(t),t=null)};return d.onUnmounted(()=>{s()}),{load:n,cancel:s}}function Fm(i){const e=d.ref(),t=d.ref(i.theme||"dark"),n=d.ref(i.menuSize||"medium");d.provide("leiting-theme",t),d.provide("leiting-menu-size",n);function s(a){d.onUnmounted(()=>{e.value=null}),a(i,e)}function o(){const a=d.unref(e);return a||console.error("未获取到leiting实例!"),a}const r=new Proxy({},{get(a,l){const c=o();if(!c)return;const h=c[l];return typeof h=="function"?h.bind(c):h},set(a,l,c){const h=o();return h?(h[l]=c,!0):!1}});return[s,r]}const oR=bn,rR={install:(i,e)=>{if(i.component("LeitingBIM",qr),i.component("LeitingTree",Gr),i.component("LeitingDraggableCard",gt),i.component("leiting-draggable-card",gt),i.component("LeitingMenu",ao),i.component("leiting-menu",ao),i.component("LeitingSection",lo),i.component("leiting-section",lo),i.component("LeitingPlayer",co),i.component("leiting-player",co),i.component("LeitingInfo",ho),i.component("leiting-info",ho),i.component("LeitingPosition",uo),i.component("leiting-position",uo),i.component("LeitingSetting",fo),i.component("leiting-setting",fo),!e)return;const t={...oR,...e};t.cesiumUrl&&Va(t).catch(n=>{console.error("[LeitingBim] Failed to load Cesium resources:",n)}),i.config.globalProperties.$leitingBimOptions=t}};function aR(i,e){e===void 0&&(e={});var t=e.insertAt;if(!(typeof document>"u")){var n=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",t==="top"&&n.firstChild?n.insertBefore(s,n.firstChild):n.appendChild(s),s.styleSheet?s.styleSheet.cssText=i:s.appendChild(document.createTextNode(i))}}var lR="@keyframes watermark{0%{background-position:0 0}25%{background-position:100% 100%}50%{background-position:100% 0}75%{background-position:0 100%}to{background-position:0 0}}@keyframes watermark-horizontal{0%{background-position-x:0}to{background-position-x:100%}}@keyframes watermark-vertical{0%{background-position-y:0}to{background-position-y:100%}}";aR(lR);var wc=function(i,e){return wc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])},wc(i,e)};function cR(i,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");wc(i,e);function t(){this.constructor=i}i.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var Fi=function(){return Fi=Object.assign||function(e){for(var t,n=1,s=arguments.length;n<s;n++){t=arguments[n];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},Fi.apply(this,arguments)};function pi(i,e,t,n){function s(o){return o instanceof t?o:new t(function(r){r(o)})}return new(t||(t=Promise))(function(o,r){function a(h){try{c(n.next(h))}catch(u){r(u)}}function l(h){try{c(n.throw(h))}catch(u){r(u)}}function c(h){h.done?o(h.value):s(h.value).then(a,l)}c((n=n.apply(i,e||[])).next())})}function ei(i,e){var t={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,s,o,r=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return r.next=a(0),r.throw=a(1),r.return=a(2),typeof Symbol=="function"&&(r[Symbol.iterator]=function(){return this}),r;function a(c){return function(h){return l([c,h])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;r&&(r=0,c[0]&&(t=0)),t;)try{if(n=1,s&&(o=c[0]&2?s.return:c[0]?s.throw||((o=s.return)&&o.call(s),0):s.next)&&!(o=o.call(s,c[1])).done)return o;switch(s=0,o&&(c=[c[0]&2,o.value]),c[0]){case 0:case 1:o=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,s=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(o=t.trys,!(o=o.length>0&&o[o.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!o||c[1]>o[0]&&c[1]<o[3])){t.label=c[1];break}if(c[0]===6&&t.label<o[1]){t.label=o[1],o=c;break}if(o&&t.label<o[2]){t.label=o[2],t.ops.push(c);break}o[2]&&t.ops.pop(),t.trys.pop();continue}c=e.call(i,t)}catch(h){c=[6,h],s=0}finally{n=o=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}typeof SuppressedError=="function"&&SuppressedError;var Om=function(i){return i.toDataURL("image/png",1)},Gm=function(i){return typeof i=="function"},zt=function(i){return i===void 0},dR=function(i){return typeof i=="string"},Um=function(i,e,t){e===void 0&&(e={}),t===void 0&&(t="http://www.w3.org/2000/svg");var n=document.createElementNS(t,i);for(var s in e)n.setAttribute(s,e[s]);return n},hR=function(i,e,t){for(var n=[],s="",o="",r=0,a=e.length;r<a;r++){if(o=e.charAt(r),o===`
|
|
122
122
|
`){n.push(s),s="";continue}s+=o,i.measureText(s).width>t&&(n.push(s.substring(0,s.length-1)),s="",r--)}return n.push(s),n},uR=function(i,e){return pi(void 0,void 0,void 0,function(){var t,n,s,o,r,a,l,c,h;return ei(this,function(u){switch(u.label){case 0:return t=Um("svg",{xmlns:"http://www.w3.org/2000/svg"}),n=document.createElement("div"),n.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),n.style.cssText=`
|
|
123
123
|
text-align: center;
|
|
124
124
|
display: flex;
|