leiting-bim 2.1.157 → 2.1.160

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.
@@ -115,4 +115,4 @@
115
115
  // 通常不需要 clamp,除非开启 HDR 后期望超亮,但负值需要避免
116
116
  material.diffuse = max(material.diffuse, vec3(0.0));
117
117
  }
118
- `});p.isModelAdjustment=!0,f.customShader=p}else e.brightness!==void 0&&e.brightness!==1&&!f.style&&(f.style=new i.Cesium3DTileStyle({color:`color('white') * ${e.brightness}`}))}}setModelBrightness(e){this.setModelColorAdjustment({brightness:e})}_defaultSkyBox=null;_updateLightDirection=e=>{e.light instanceof this.cesium.DirectionalLight&&(e.light.direction=e.camera.directionWC)};setEnvironmentMapEnable(e){this.is2d||(e?(this.viewer.scene.light=new this.cesium.DirectionalLight({direction:this.viewer.scene.camera.directionWC}),this.viewer.scene.preRender.addEventListener(this._updateLightDirection)):(this._defaultSkyBox&&(this.viewer.scene.skyBox=this._defaultSkyBox),this.viewer.scene.preRender.removeEventListener(this._updateLightDirection),this.viewer.scene.light=new this.cesium.SunLight),this.viewer.scene.imageBasedLighting&&(this.viewer.scene.imageBasedLighting.imageBasedLightingFactor=e?new this.cesium.Cartesian2(2,2):new this.cesium.Cartesian2(1,1)))}setAmbientOcclusion(e){if(this.is2d)return;const t=this.viewer.scene;if(!t||!t.postProcessStages||!t.postProcessStages.ambientOcclusion)return;const i=t.postProcessStages.ambientOcclusion;i.enabled=e,e&&(i.uniforms.ambientOcclusionOnly=!1,i.uniforms.intensity=3,i.uniforms.bias=.1,i.uniforms.lengthCap=.03,i.uniforms.stepSize=1,i.uniforms.blurStepSize=.86)}setCollisionDetection(e){if(this.is2d){this.viewer.scene.screenSpaceCameraController.enableCollisionDetection=!1;return}const t=this.viewer.scene.screenSpaceCameraController;t.enableCollisionDetection=e,e||t.minimumZoomDistance<1&&(t.minimumZoomDistance=1)}_customZoomHandler=null;setHeightBasedZoom(e){const t=this.viewer.scene.screenSpaceCameraController,i=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(i.CameraEventType.WHEEL)||t.zoomEventTypes.push(i.CameraEventType.WHEEL);return}t.zoomEventTypes=t.zoomEventTypes.filter(o=>o!==i.CameraEventType.WHEEL),this._customZoomHandler=new i.ScreenSpaceEventHandler(this.viewer.scene.canvas);let s=null;this._customZoomHandler.setInputAction(o=>{s=o.endPosition},i.ScreenSpaceEventType.MOUSE_MOVE),this._customZoomHandler.setInputAction(o=>{const a=this.viewer.camera,c=a.positionCartographic.height,l=Math.sign(o);if(c<.15&&l>0){ce.info("无法继续放大");return}const d=.3;let h=0;if(l>0){const m=c-1;h=m>0?m*d:0}else h=c*d;h=Math.max(.1,h),console.log(c);let f=null;if(!s)f=a.direction;else{const m=a.getPickRay(s);if(m){let C=this.viewer.scene.pickPosition(s);if(!C){const A=i.IntersectionTests.rayEllipsoid(m,this.viewer.scene.globe.ellipsoid);A&&(C=i.Ray.getPoint(m,A.start))}if(C){const A=i.Cartesian3.subtract(C,a.position,new i.Cartesian3);f=i.Cartesian3.normalize(A,new i.Cartesian3)}else f=a.direction}else f=a.direction}const p=l>0?h:-h*2,u=i.Cartesian3.multiplyByScalar(f,p,new i.Cartesian3);a.position=i.Cartesian3.add(a.position,u,new i.Cartesian3)},i.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 vy{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:i,duration:s}=e,o=new this.cesium.Cartesian3(t.x,t.y,t.z),a=new this.cesium.HeadingPitchRoll(i.heading,i.pitch,i.roll);!s||s<=0?this.viewer.camera.setView({destination:o,orientation:a}):this.viewer.camera.flyTo({destination:o,orientation:a,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||{},i=e.destination||e.position||{};this.flyToCameraView({position:{x:Number(i.x),y:Number(i.y),z:Number(i.z)},destination:{x:Number(i.x),y:Number(i.y),z:Number(i.z)},orientation:{heading:Number(t.heading||0),pitch:Number(t.pitch||0),roll:Number(t.roll||0)},duration:e.duration})}flyToLonLatHeight(e,t,i,s=1){const o=this.cesium.Cartesian3.fromDegrees(e,t,i),a={heading:this.cesium.Math.toRadians(0),pitch:this.cesium.Math.toRadians(-90),roll:0};!s||s<=0?this.viewer.camera.setView({destination:o,orientation:a}):this.viewer.camera.flyTo({destination:o,orientation:a,duration:s})}}function Iy(n){const{container:e,appContext:t,methods:i,viewerOptions:s,options:o,callbacks:a}=n,c=new jn,l=window.Cesium;if(!l)throw new Error("Cesium is not loaded");e.id=`cesium-container-${Ap()}`;const d={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}}},h=t?.config?.globalProperties?.$leitingBimOptions,f={...d,...h?.viewerOptions??{},...s??{}},p=new l.Viewer(e,f);p.camera.setView({destination:l.Cartesian3.fromDegrees(108,32,1e7),orientation:{heading:l.Math.toRadians(0),pitch:l.Math.toRadians(-90),roll:0}});let u=i;if(!u&&h&&(h.methods||(h.methods={}),u=h.methods),u){const m=new Dp({cesium:l,viewer:p,options:o,callbacks:a}),C=new Lr({cesium:l,viewer:p}),A=new wy({cesium:l,viewer:p}),b=new kp({cesium:l,viewer:p}),I=new vy({cesium:l,viewer:p});let k;const P=new Ds({cesium:l,viewer:p});o&&(o.globe!==void 0&&A.setGlobeEnvironmentVisible(o.globe),o.terrain!==void 0&&A.setTerrainEnable(o.terrain),o.depthTest!==void 0&&A.setDepthTestEnable(o.depthTest),o.mapProvider&&o.mode!=="2d"&&A.changeBaseMap(o.mapProvider,{token:o.tiandituToken,layerType:o.tiandituLayerType,showAnnotation:o.tiandituShowLabel,url:o.arcgisUrl}),o.shadows!==void 0&&A.setShadowsEnable(o.shadows),o.environmentMap!==void 0&&A.setEnvironmentMapEnable(o.environmentMap),o.ambientOcclusion!==void 0&&A.setAmbientOcclusion(o.ambientOcclusion),o.time!==void 0&&A.setTime(o.time),o.brightness!==void 0&&A.setModelBrightness(o.brightness),o.backgroundColor!==void 0&&A.setBackgroundColor(o.backgroundColor),o.collision!==void 0&&A.setCollisionDetection(o.collision),o.mouseHabit!==void 0&&A.setMouseHabit(o.mouseHabit),o.heightBasedZoom!==void 0&&A.setHeightBasedZoom(o.heightBasedZoom)),o&&o.mode==="2d"&&(console.log("InitMap: Setting CAD Mode 2D"),A.setCadMode("2d"),k=new rl({cesium:l,viewer:p})),C.events.on("tilesetLoaded",g=>{m.baseCompt.attachTileset(g,m.baseCompt.selectedColor),m.baseSection.attachTileset(g,g.leiting?.model?.modelId),u&&u.tilesLoad3dTiles&&u.tilesLoad3dTiles(g),o?.tilesLoad3dTiles&&o.tilesLoad3dTiles(g.leiting)}),C.events.on("loadingStatus",g=>{u&&u.onLoadingStatus&&u.onLoadingStatus(g)}),C.events.on("mountAll3Dtiles",({modelList:g})=>{o?.mountAll3Dtiles&&o.mountAll3Dtiles(g),u?.mountAll3Dtiles&&u.mountAll3Dtiles(g)}),C.events.on("updateModels",({modelList:g})=>{o?.updateModels&&o.updateModels(g),u?.updateModels&&u.updateModels(g)}),b.events.on("mountAllCad",g=>{o?.mountAllCad&&o.mountAllCad(g),u?.mountAllCad&&u.mountAllCad(g)}),m.baseCompt.loadNodeDetailsForModel=g=>C.loadNodeDetailsForModel(g),m.baseCompt.selectionChange(g=>{g.length!==0&&(o?.selectionChange&&o.selectionChange(g),u?.selectionChange&&u.selectionChange(g))}),u.onSearchComponent=g=>{o?.searchComponent&&o.searchComponent(g),u?.searchComponent&&u.searchComponent(g)};const R=u.saveRegion;u.saveRegion=g=>{o?.saveRegion&&o.saveRegion(g),R&&R!==o?.saveRegion&&R(g)};const T=u.saveCadCalibration;u.saveCadCalibration=g=>{o?.saveCadCalibration&&o.saveCadCalibration(g),T&&T!==o?.saveCadCalibration&&T(g)};const B=u.saveCadRegion;u.saveCadRegion=g=>{o?.saveCadRegion&&o.saveCadRegion(g),B&&B!==o?.saveCadRegion&&B(g)},u.getCesium=()=>l,u.getViewer=()=>p,u.getAnnotationInstance=()=>k,u.getMeasureInstance=()=>P,u.flyToCamera=g=>{I.setCameraView(g)},u.flyToLonLatHeight=(g,N,w,S=1)=>{I.flyToLonLatHeight(g,N,w,S)},u.flyTo=u.flyToCamera,u.getCameraState=()=>I.getCameraView(),u.getCameraInfo=u.getCameraState,u.restoreCameraState=g=>I.flyToCameraView(g),u.flyToCameraView=u.restoreCameraState,u.getCameraPositionTarget=()=>I.getCurrentCameraPositionAndTarget(),u.getCurrentCameraPositionAndTarget=u.getCameraPositionTarget,u.setCameraLookAt=g=>I.setCameraView(g),u.setCameraView=u.setCameraLookAt,u.setCanvasBackground=g=>A.setBackgroundColor(g),u.setBackgroundColor=u.setCanvasBackground,u.setAntiAliasing=g=>m.enableCesiumFXAA(g),u.enableCesiumFXAA=u.setAntiAliasing,u.setSceneVisibility=g=>m.setSceneOptions(g),u.setSceneOptions=u.setSceneVisibility,u.addDebugPoint=(g,N,w=0)=>{p.entities.add({position:l.Cartesian3.fromDegrees(g,N,w),point:{pixelSize:10,color:l.Color.RED}})},u.addPoint=u.addDebugPoint,u.toggleDebugLabels=()=>m.enableTestLabel(),u.enableTestLabel=u.toggleDebugLabels,u.captureScreenshot=()=>{const g=p.scene.canvas;return p.render(),g.toDataURL("image/png")},u.getImageBase64=u.captureScreenshot,u.captureDomScreenshot=(g,N)=>m.getSnapDomSImageBase64(g,N),u.getSnapDomSImageBase64=u.captureDomScreenshot,u.addModels=g=>C.addModels(g),u.add3DtilesModel=u.addModels,u.addObliquePhotography=g=>C.addOSGB(g),u.addOSGB=u.addObliquePhotography,u.adjustOSGBModelMatrix=g=>C.updateOSGBMatrix(g),u.updateOSGBMatrix=u.adjustOSGBModelMatrix,u.setModelVisibility=g=>C.showModels(g),u.showModels=u.setModelVisibility,u.showTileset=u.setModelVisibility,u.removeModels=g=>C.deleteModels(g),u.deleteModels=u.removeModels,u.clearAllModels=()=>{C.deleteAllModels(),c.emit("deleteAllModels")},u.deleteAllModelList=u.clearAllModels,u.deleteAllModels=u.clearAllModels,u.flyToModel=g=>C.flyToTileset(g),u.flyToTileset=u.flyToModel,u.flyToByModelId=u.flyToModel,u.setModelBrightness=g=>m.updateModelEffect(g),u.updateModelEffect=u.setModelBrightness,u.getAllTilesets=()=>C.getMapTileset(),u.getMapTileset=u.getAllTilesets,u.getCurrentModelId=()=>C.getBIMmodelId(),u.getBIMmodelId=u.getCurrentModelId,u.getLoadedModels=()=>C.getModelList(),u.getModelList=u.getLoadedModels,u.loadModelStructure=async g=>{const N=typeof g=="string"?g:g?.modelId;if(!N){console.warn("loadModelStructure: modelId is required");return}return await C.loadTreeForModel(N)},u.loadTreeForModel=u.loadModelStructure,u.loadModelDetails=async g=>{const N=typeof g=="string"?g:g?.modelId;if(!N){console.warn("loadModelDetails: modelId is required");return}return await C.loadNodeDetailsForModel(N)},u.loadNodeDetailsForModel=u.loadModelDetails,u._loadNodeDetailsForModel=async g=>{const N=typeof g=="string"?g:g?.modelId;if(!N){console.warn("loadModelDetails: modelId is required");return}return await C._loadNodeDetailsForModel(N)},u.setMapTileset=g=>C.setMapTileset(g),u.setCurrentModelId=g=>C.setBIMmodelId(g),u.setBIMmodelId=u.setCurrentModelId,u.setModelList=g=>C.setModelList(g),u.highlightComponents=(g,N={})=>m.baseCompt.setSelectColorUserModelCpt(g,N),u.setSelectColorUserModelCpt=u.highlightComponents,m.baseCompt.setLoadNodeDetailsCallback(g=>C.loadNodeDetailsForModel(g)),u.highlightAllComponents=(g,N)=>m.baseCompt.setAllSelectColorUserModelCpt(g,N),u.setAllSelectColorUserModelCpt=u.highlightAllComponents,u.setSelectColorUserModelCptByClear=(g,N)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(g.selectCpts,N??{rank:0})},u.clearSelectColorUserModelCpt=()=>m.baseCompt.clearAllHaveSelected(),u.selectComponents=(g,N)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(g,N??{rank:0})},u.setSelecteds=u.selectComponents,u.setSelectionColor=(g,N,w,S)=>m.baseCompt.setSelectedColorRgba(g,N,w,S),u.setSelectedColor=u.setSelectionColor,u.clearSelection=()=>m.baseCompt.clearAllHaveSelected(),u.clearAllHaveSelected=u.clearSelection,u.getSelectedComponents=g=>m.baseCompt.getSelected(g),u.getSelected=u.getSelectedComponents,u.onSelectionChange=g=>{m.baseCompt.selectionChange(g)},u.selectionChange=u.onSelectionChange,u.flyToComponents=g=>m.baseCompt.flyToObjects(g),u.flyToObjects=u.flyToComponents,u.setConstructionData=async g=>{if(g&&Array.isArray(g)){const N=new Set;g.forEach(w=>{w.mergeCpts&&Array.isArray(w.mergeCpts)&&w.mergeCpts.forEach(S=>{S.modelId&&N.add(S.modelId)})}),N.size>0&&await Promise.all(Array.from(N).map(w=>u.loadNodeDetailsForModel(w)))}m.baseCompt.setAllConstructionProgressTracking(g)},u.setAllConstructionProgressTracking=u.setConstructionData,u.startConstructionSimulation=()=>m.baseCompt.enableConstructionProgressTracking(),u.enableAllConstructionProgressTracking=u.startConstructionSimulation,u.stopConstructionSimulation=()=>m.baseCompt.disableConstructionProgressTracking(),u.disableConstructionProgressTracking=u.stopConstructionSimulation,u.disableAllConstructionProgressTracking=u.stopConstructionSimulation,u.resetConstructionSimulation=()=>m.baseCompt.freshConstructionProgressTracking(),u.freshConstructionProgressTracking=u.resetConstructionSimulation,u.restartConstructionSimulation=()=>m.baseCompt.reStartAnimation(),u.reStartAnimation=u.restartConstructionSimulation,u.resumeFlyTo=()=>m.baseCompt.resumeFlyTo(),u.pauseConstructionSimulation=()=>m.baseCompt.pauseFlyTo(),u.pauseFlyTo=u.pauseConstructionSimulation,u.pauseAnimation=u.pauseConstructionSimulation,u.resumeConstructionSimulation=()=>m.baseCompt.resumeFlyTo(),u.resumeAnimation=u.resumeConstructionSimulation,u.setComponentsVisibility=async g=>await m.baseCompt.setComponentVisibility(g),u.setElementsListVisible=u.setComponentsVisibility,u.setAllComponentsVisibility=async g=>await m.baseCompt.setAllComponentsVisibility(g),u.setAllElementsVisible=u.setAllComponentsVisibility,u.isolateComponents=g=>m.baseCompt.isolateComponentVisibility(g),u.isolateComponentVisibility=u.isolateComponents,u.getComponentsByVisibility=g=>m.baseCompt._getComponentsByVisibility(g),u.getShowCpts=g=>m.baseCompt.getComponentsByVisibility(g),u.getElementsVisible=g=>m.baseCompt.getComponentsByVisibility(g),u.setComponentVisibility=u.setComponentsVisibility,u.enableSectioning=(g,N)=>m.baseSection.open(g,N),u.openSection=u.enableSectioning,u.disableSectioning=g=>m.baseSection.close(g),u.closeSection=u.disableSectioning,u.updateSectionBox=g=>m.baseSection.updateRange(g),u.updateSectionRange=u.updateSectionBox,u.getSectionBox=()=>m.baseSection.getRange(),u.getSectionRange=u.getSectionBox,u.fitSectionToModel=()=>m.baseSection.fitToModels(),u.fitToModels=u.fitSectionToModel,u.setSectionBoxVisibility=g=>m.baseSection.setBoxVisibility(g),u.startFirstPersonMode=()=>{m.baseCompt.disableSelection(),m.basePlayer.openPlayer()},u.openPlayer=u.startFirstPersonMode,u.startCameraRoam=()=>{m.baseCompt.disableSelection(),m.basePlayer.openCameraRoam()},u.stopFirstPersonMode=()=>{m.basePlayer.closePlayer(),m.baseCompt.enableSelection()},u.closePlayer=u.stopFirstPersonMode,u.setPlayerPosition=g=>m.basePlayer.setPersonPosition(g),u.setPersonPosition=u.setPlayerPosition,u.setPlayerDefaultPosition=()=>m.basePlayer.setDefaultPosition(),u.setWalkSpeed=g=>m.basePlayer.setSpeed({speed:g}),u.setPlayerSpeed=u.setWalkSpeed,u.setPlayerConfig=g=>m.basePlayer.setParams(g),u.setPlayerParams=u.setPlayerConfig,u.setPlayerAction=(g,N)=>m.basePlayer.setMoveState(g,N),u.setPlayerMoveState=u.setPlayerAction,u.bindPlayerControls=g=>m.basePlayer.bindUiKeys(g),u.bindPlayerUiKeys=u.bindPlayerControls,u.setGlobeVisibility=g=>A.setGlobeEnvironmentVisible(g),u.setGlobeEnvironmentVisible=u.setGlobeVisibility,u.setTerrainVisibility=g=>A.setTerrainEnable(g),u.setTerrainEnable=u.setTerrainVisibility,u.setDepthTest=g=>A.setDepthTestEnable(g),u.setDepthTestEnable=u.setDepthTest,u.setBaseMap=(g,N)=>A.changeBaseMap(g,N),u.changeBaseMap=u.setBaseMap,u.setWorldTime=g=>A.setTime(g),u.setTime=u.setWorldTime,u.setGisOptions=g=>{g.globe!==void 0&&A.setGlobeEnvironmentVisible(g.globe),g.elevation!==void 0&&A.setTerrainEnable(g.elevation),g.depthTestAgainstTerrain!==void 0&&A.setDepthTestEnable(g.depthTestAgainstTerrain),g.rendering!==void 0&&A.setAmbientOcclusion(g.rendering)},u.setShadowVisibility=g=>A.setShadowsEnable(g),u.setShadowsEnable=u.setShadowVisibility,u.setEnvironmentMapVisibility=g=>A.setEnvironmentMapEnable(g),u.setEnvironmentMapEnable=u.setEnvironmentMapVisibility,u.setAOVisibility=g=>A.setAmbientOcclusion(g),u.setAmbientOcclusion=u.setAOVisibility,u.setBackgroundColor=g=>A.setGlobeColor(g),u.setGlobeColor=u.setBackgroundColor,u.setModelBrightness=g=>A.setModelBrightness(g),u.adjustModelColor=g=>A.setModelColorAdjustment(g),u.setModelColorAdjustment=u.adjustModelColor,u.setShadowIntensity=g=>{A.setShadowDarkness?A.setShadowDarkness(g):console.warn("baseSetting.setShadowDarkness is not available. Please reload the page.")},u.setShadowDarkness=u.setShadowIntensity,u.switchSceneMode=async g=>{const N=g?"2d":"3d";await A.setCadMode(N),g&&!k&&(k=new rl({cesium:l,viewer:p}),u.setGlobeVisibility(!0)),c.emit("setMode",N)},u.setSceneMode=u.switchSceneMode,u.set2d=g=>u.switchSceneMode(g),u.is2dMode=()=>A.is2d,u.setMouseControlMode=g=>A.setMouseHabit(g),u.setMouseHabit=u.setMouseControlMode,u.setCollisionEnabled=g=>A.setCollisionDetection(g),u.setCollisionDetection=u.setCollisionEnabled,u.searchAndLocate=(g,N)=>A.searchLocation(g,N),u.searchLocation=u.searchAndLocate,u.getConfigure=()=>(console.warn("getConfigure is not initialized. Please ensure LeitingSetting component is mounted."),{}),u.setConfigure=g=>{console.warn("setConfigure is not initialized. Please ensure LeitingSetting component is mounted.",g)},u.addCadModel=g=>{const N={...g};return N.files&&!N.fileNames&&(N.fileNames=N.files),N.fileNames||(N.fileNames=[]),b.addDxfModel(N)},u.addDxfModel=u.addCadModel,u.deleteCad=g=>b.deleteCad(g),u.deleteAllCad=()=>b.deleteAllCad(),u.showCadModel=g=>b.showJson(g),u.showGeoJson=g=>b.showJson(g),u.showDxfModel=u.showCadModel,u.showCadLayer=g=>b.showJsonByLayer(g),u.showDxfLayer=u.showCadLayer,u.flyToCadModel=(g={})=>b.flyToCadModel(g),u.getCadModels=g=>b.getDxfModels(g),u.getDxfModels=u.getCadModels,u.getCadLayers=g=>b.getMapLayers(g),u.getDxfLayers=u.getCadLayers,u.getCadModelId=()=>b.getModelId(),u.setCadOpen=g=>b.setDxfOpen(g),u.setDxfOpen=u.setCadOpen,u.getCadOpen=()=>b.getDxfOpen(),u.getDxfOpen=u.getCadOpen,u.adjustCadModel=g=>b.adjustingModelByCad(g),u.adjustingModelByCad=u.adjustCadModel,u.saveAnnotations=()=>{let g=null;return k&&(g=k.saveAnnotations()),o?.saveAnnotations&&o.saveAnnotations(g),g},u.loadAnnotations=g=>k?k.loadAnnotations(g):!1,u.flyToTopView=()=>{b.flyToCadModel()},u.menuEvents=c,u.addMenuItems=g=>{c.emit("insertMenu",g)},u.insertMenu=u.addMenuItems,u.filterMenuItems=g=>{c.emit("setMenuListFilter",g)},u.setMenuListFilter=u.filterMenuItems,u.setMenuVisibility=g=>{c.emit("showMenu",g)},u.showMenu=u.setMenuVisibility,u.setPanelVisibility=(g,N)=>{c.emit("setMenuActive",g,N)},u.setMenuActive=u.setPanelVisibility,u.addContextMenuItems=g=>{console.warn("addContextMenuItems is not initialized yet. Please wait for LeitingBIM component to mount.",g)},u.insertContextMenu=u.addContextMenuItems,u.removeContextMenuItems=g=>{console.warn("removeContextMenuItems is not initialized yet.",g)},u.deleteContextMenu=u.removeContextMenuItems,u.closeContextMenu=()=>{console.warn("closeContextMenu is not initialized yet.")},u.hideContextMenu=u.closeContextMenu,u.getModelTree=()=>{const g=[],N=C.getMapTileset();return Object.keys(N).forEach(w=>{const S=N[w];if(S&&S.leiting&&S.leiting.tree){const L=S.leiting.tree;Array.isArray(L)?g.push(...L):g.push(L)}}),g},u.getTree=u.getModelTree,u.getAllComponentDetails=()=>{const g=C.getMapTileset(),N={},w=[];try{Object.keys(g).forEach(S=>{const L=g[S];if(!L||!L.leiting)return;const V=L.leiting,M=V.node,E=V.model.formData,y=V.box;if(!M||!M.nodeExtras)return;const v=V.model.modelId;N[v]=M.nodeExtras;const D=M.nodeExtras.element;if(!D)return;const F=y?y.center:{x:0,y:0,z:0};Object.values(D).forEach(Q=>{if(Q.box3)try{const O=l.Quaternion.fromAxisAngle(l.Cartesian3.UNIT_Z,l.Math.toRadians(E.totalRotation||0)),x=l.Matrix4.fromRotationTranslation(l.Matrix3.fromQuaternion(O),new l.Cartesian3(0,0,0)),U=l.Cartesian3.fromDegrees(E.longitude,E.latitude,E.height),H=l.Transforms.eastNorthUpToFixedFrame(U);l.Matrix4.multiply(H,x,H);const j=new l.Cartesian3(F.x,F.y,0),X=new l.Cartesian3;l.Matrix4.multiplyByPoint(H,j,X);const Z=l.Cartographic.fromCartesian(X),re=Q.box3?.Center?.x||0,se=Q.box3?.Center?.y||0,oe=Q.box3?.Center?.z||0,ge=new l.Cartesian3(-F.x+re,-F.y+se,0+oe),ve=l.Matrix4.fromTranslation(ge),Ce=l.Matrix4.clone(ve);l.Matrix4.multiply(x,Ce,Ce);const Be=l.Cartesian3.fromDegrees(Z.longitude/Math.PI*180,Z.latitude/Math.PI*180,E.height),Te=l.Transforms.eastNorthUpToFixedFrame(Be);l.Matrix4.multiply(Te,Ce,Te);const _e=l.Cartographic.fromCartesian(new l.Cartesian3(Te[12],Te[13],Te[14]));Q.box3.cartographic={longitude:_e.longitude/Math.PI*180,latitude:_e.latitude/Math.PI*180,height:_e.height};const z={id:Q.uniqueId,billboard:[{theme:"Tag9999",position:[Q.box3.cartographic.longitude,Q.box3.cartographic.latitude,Q.box3.cartographic.height],options:{text:Q.name}}]};w.push(z)}catch(O){console.warn("Error calculating component position:",O)}})})}catch(S){console.error("getAllComponents error:",S)}return N},u.getAllComponents=u.getAllComponentDetails,u.getComponentInfoList=async g=>{if(!Array.isArray(g))return[];const N=C.getMapTileset(),w=[],S=[],L={};g.forEach(M=>{const y=N[M.modelId]?.leiting?.model?.dbName;y&&M.elementId&&S.push({dbName:y,elementId:M.elementId,modelId:M.modelId})});const V=new Set;if(g.forEach(M=>{const E=N[M.modelId],y=`${M.modelId}_${M.elementId}`;L[y]||E&&E.leiting&&!E.leiting?.node?.nodeExtras&&E.leiting.model?.nodeUrl&&V.add(M.modelId)}),V.size>0&&C._loadNodeDetailsForModel)try{const M=Array.from(V).map(E=>C._loadNodeDetailsForModel(E));await Promise.all(M)}catch(M){console.error("Failed to load node details in getComponentInfoList",M)}try{g.forEach(M=>{const E=M.modelId,y=M.elementId,v=N[E];if(!v||!v.leiting)return;const D=`${E}_${y}`,F=L[D];let Q=null;if(F)Q=F;else{const O=v.leiting.node?.nodeExtras?.element||v.leiting.node?.nodeExtras;O&&O[y]&&(Q=JSON.parse(JSON.stringify(O[y])))}if(Q){if(Q.elementId=y,Q.modelId=E,Q.box3&&!Q.box3.cartographic)try{const O=v.leiting,x=O.model.formData,U=O.box,H=U?U.center:{x:0,y:0,z:0},j=l.Quaternion.fromAxisAngle(l.Cartesian3.UNIT_Z,l.Math.toRadians(x.totalRotation||0)),X=l.Matrix4.fromRotationTranslation(l.Matrix3.fromQuaternion(j),new l.Cartesian3(0,0,0)),Z=l.Cartesian3.fromDegrees(x.longitude,x.latitude,x.height),re=l.Transforms.eastNorthUpToFixedFrame(Z);l.Matrix4.multiply(re,X,re);const se=new l.Cartesian3(H.x,H.y,0),oe=new l.Cartesian3;l.Matrix4.multiplyByPoint(re,se,oe);const ge=l.Cartographic.fromCartesian(oe),ve=Q.box3?.Center?.x||0,Ce=Q.box3?.Center?.y||0,Be=Q.box3?.Center?.z||0,Te=new l.Cartesian3(-H.x+ve,-H.y+Ce,0+Be),_e=l.Matrix4.fromTranslation(Te),z=l.Matrix4.clone(_e);l.Matrix4.multiply(X,z,z);const Y=l.Cartesian3.fromDegrees(ge.longitude/Math.PI*180,ge.latitude/Math.PI*180,x.height),$=l.Transforms.eastNorthUpToFixedFrame(Y);l.Matrix4.multiply($,z,$);const Pe=l.Cartographic.fromCartesian(new l.Cartesian3($[12],$[13],$[14]));Q.box3.cartographic={longitude:Pe.longitude/Math.PI*180,latitude:Pe.latitude/Math.PI*180,height:Pe.height}}catch(O){console.warn("Error calculating component position:",O)}w.push(Q)}})}catch(M){console.error("getComponentInfoList processing error:",M)}return w},u.getCptInfos=u.getComponentInfoList,u.baseCompt=m.baseCompt,u.setTeleportTarget=g=>{u.onSetTeleportTarget&&u.onSetTeleportTarget(g)},window.Methods=u}return console.log("methods",u),{Cesium:l,viewer:p,methods:u,menuEvents:c}}function Fs(n){return r.getCurrentScope()?(r.onScopeDispose(n),!0):!1}function Ns(n){return typeof n=="function"?n():r.unref(n)}const By=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const xy=Object.prototype.toString,Sy=n=>xy.call(n)==="[object Object]",Ty=()=>{};function My(n){return r.getCurrentInstance()}function cl(n,e=!0,t){My()?r.onMounted(n,t):e?n():r.nextTick(n)}function kt(n){var e;const t=Ns(n);return(e=t?.$el)!=null?e:t}const En=By?window:void 0;function Dy(...n){let e,t,i,s;if(typeof n[0]=="string"||Array.isArray(n[0])?([t,i,s]=n,e=En):[e,t,i,s]=n,!e)return Ty;Array.isArray(t)||(t=[t]),Array.isArray(i)||(i=[i]);const o=[],a=()=>{o.forEach(h=>h()),o.length=0},c=(h,f,p,u)=>(h.addEventListener(f,p,u),()=>h.removeEventListener(f,p,u)),l=r.watch(()=>[kt(e),Ns(s)],([h,f])=>{if(a(),!h)return;const p=Sy(f)?{...f}:f;o.push(...t.flatMap(u=>i.map(m=>c(h,u,m,p))))},{immediate:!0,flush:"post"}),d=()=>{l(),a()};return Fs(d),d}function ky(){const n=r.ref(!1),e=r.getCurrentInstance();return e&&r.onMounted(()=>{n.value=!0},e),n}function dl(n){const e=ky();return r.computed(()=>(e.value,!!n()))}function ui(n,e={}){const{window:t=En}=e,i=dl(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const o=r.ref(!1),a=d=>{o.value=d.matches},c=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",a):s.removeListener(a))},l=r.watchEffect(()=>{i.value&&(c(),s=t.matchMedia(Ns(n)),"addEventListener"in s?s.addEventListener("change",a):s.addListener(a),o.value=s.matches)});return Fs(()=>{l(),c(),s=void 0}),o}function Py(n,e,t={}){const{window:i=En,...s}=t;let o;const a=dl(()=>i&&"ResizeObserver"in i),c=()=>{o&&(o.disconnect(),o=void 0)},l=r.computed(()=>Array.isArray(n)?n.map(f=>kt(f)):[kt(n)]),d=r.watch(l,f=>{if(c(),a.value&&i){o=new ResizeObserver(e);for(const p of f)p&&o.observe(p,s)}},{immediate:!0,flush:"post"}),h=()=>{c(),d()};return Fs(h),{isSupported:a,stop:h}}function Fy(n,e={width:0,height:0},t={}){const{window:i=En,box:s="content-box"}=t,o=r.computed(()=>{var f,p;return(p=(f=kt(n))==null?void 0:f.namespaceURI)==null?void 0:p.includes("svg")}),a=r.ref(e.width),c=r.ref(e.height),{stop:l}=Py(n,([f])=>{const p=s==="border-box"?f.borderBoxSize:s==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(i&&o.value){const u=kt(n);if(u){const m=u.getBoundingClientRect();a.value=m.width,c.value=m.height}}else if(p){const u=Array.isArray(p)?p:[p];a.value=u.reduce((m,{inlineSize:C})=>m+C,0),c.value=u.reduce((m,{blockSize:C})=>m+C,0)}else a.value=f.contentRect.width,c.value=f.contentRect.height},t);cl(()=>{const f=kt(n);f&&(a.value="offsetWidth"in f?f.offsetWidth:e.width,c.value="offsetHeight"in f?f.offsetHeight:e.height)});const d=r.watch(()=>kt(n),f=>{a.value=f?e.width:0,c.value=f?e.height:0});function h(){l(),d()}return{width:a,height:c,stop:h}}function ul(n={}){const{window:e=En,initialWidth:t=Number.POSITIVE_INFINITY,initialHeight:i=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=n,a=r.ref(t),c=r.ref(i),l=()=>{e&&(o?(a.value=e.innerWidth,c.value=e.innerHeight):(a.value=e.document.documentElement.clientWidth,c.value=e.document.documentElement.clientHeight))};if(l(),cl(l),Dy("resize",l,{passive:!0}),s){const d=ui("(orientation: portrait)");r.watch(d,()=>l())}return{width:a,height:c}}const Ny={class:"title"},Ry={class:"actions"},Ly={class:"card-body"},Oy=r.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(n,{emit:e}){const t=n,i=r.inject("leiting-theme",r.ref("dark")),s=ui("(max-width: 767.98px), (pointer: coarse)"),o=e,a=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:B=>{o("update:visible",B),o("update:open",B)}}),c=r.ref(null),l=r.ref(t.initialPosition?.x||0),d=r.ref(t.initialPosition?.y||0),h=r.ref(t.width),f=r.ref(t.fullHeight?"100%":"600px");r.watch(()=>t.fullHeight,B=>{B?f.value="100%":f.value==="100%"&&(f.value="600px")});const{height:p}=ul();r.watch(p,()=>{t.fullHeight&&(f.value="100%")});const u=r.ref(!1),m=B=>{u.value=!0,B.preventDefault(),B.stopPropagation();const g=B.clientX,N=B.clientY,w=typeof h.value=="number"?h.value:c.value?.offsetWidth||0,S=typeof f.value=="number"?f.value:c.value?.offsetHeight||0,L=M=>{if(!u.value)return;M.preventDefault();const E=M.clientX-g,y=M.clientY-N,v=w+E,D=S+y;v>100&&(h.value=v),D>100&&(f.value=D)},V=()=>{u.value=!1,document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",V)};document.addEventListener("mousemove",L),document.addEventListener("mouseup",V)},C=r.computed(()=>({left:`${l.value}px`,top:`${d.value}px`,width:typeof h.value=="number"?`${h.value}px`:h.value,height:typeof f.value=="number"?`${f.value}px`:f.value,position:"absolute",zIndex:2e3})),A=()=>{r.nextTick(()=>{if(c.value){const B=c.value.offsetParent||document.body,g=B.clientWidth,N=B.clientHeight,w=typeof h.value=="number"?h.value:c.value.offsetWidth||350,S=typeof f.value=="number"?f.value:c.value.offsetHeight||600;l.value+w>g&&(l.value=Math.max(0,g-w-20)),d.value+S>N&&(d.value=Math.max(0,N-S-20)),l.value<0&&(l.value=0),d.value<0&&(d.value=0)}})},b=r.ref(!1),I=B=>{if(B.target.closest(".close-btn")||B.target.closest(".actions"))return;b.value=!0,B.preventDefault(),B.stopPropagation();const g=B.clientX,N=B.clientY,w=l.value,S=d.value,L=M=>{if(!b.value)return;M.preventDefault();const E=M.clientX-g,y=M.clientY-N;l.value=w+E,d.value=S+y},V=()=>{b.value=!1,document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",V),A()};document.addEventListener("mousemove",L),document.addEventListener("mouseup",V)},k=()=>{r.nextTick(()=>{if(t.align&&c.value){const B=c.value.offsetParent||document.body,g=typeof h.value=="number"?h.value:c.value.offsetWidth||350;t.align==="right"?l.value=Math.max(0,B.clientWidth-g-20):t.align==="center"&&(l.value=Math.max(0,(B.clientWidth-g)/2))}A()})};r.onMounted(()=>{t.align?k():A()}),r.watch(a,B=>{B&&(t.align?k():A())});const P=()=>{a.value=!1,o("close")},R=B=>{if(B.target.closest(".close-btn")||B.target.closest(".actions")||B.touches.length!==1)return;b.value=!0,B.preventDefault(),B.stopPropagation();const g=B.touches[0],N=g?.clientX??0,w=g?.clientY??0,S=l.value,L=d.value,V=E=>{if(!b.value||E.touches.length!==1)return;E.preventDefault();const y=E.touches[0],v=(y?.clientX??0)-N,D=(y?.clientY??0)-w;l.value=S+v,d.value=L+D},M=()=>{b.value=!1,document.removeEventListener("touchmove",V),document.removeEventListener("touchend",M),A()};document.addEventListener("touchmove",V,{passive:!1}),document.addEventListener("touchend",M)},T=B=>{if(B.touches.length!==1)return;u.value=!0,B.preventDefault(),B.stopPropagation();const g=B.touches[0],N=g?.clientX??0,w=g?.clientY??0,S=typeof h.value=="number"?h.value:c.value?.offsetWidth||0,L=typeof f.value=="number"?f.value:c.value?.offsetHeight||0,V=E=>{if(!u.value||E.touches.length!==1)return;E.preventDefault();const y=E.touches[0],v=(y?.clientX??0)-N,D=(y?.clientY??0)-w,F=S+v,Q=L+D;F>100&&(h.value=F),Q>100&&(f.value=Q)},M=()=>{u.value=!1,document.removeEventListener("touchmove",V),document.removeEventListener("touchend",M)};document.addEventListener("touchmove",V,{passive:!1}),document.addEventListener("touchend",M)};return(B,g)=>r.withDirectives((r.openBlock(),r.createElementBlock("div",{ref_key:"cardRef",ref:c,class:r.normalizeClass(["draggable-card leiting-scroll",["leiting-theme-"+r.unref(i)]]),style:r.normalizeStyle(C.value)},[r.createElementVNode("div",{ref:"headerRef",class:"card-header",onMousedown:I,onTouchstart:R},[r.createElementVNode("span",Ny,r.toDisplayString(n.title),1),r.createElementVNode("div",Ry,[r.renderSlot(B.$slots,"header-extra",{},void 0,!0),r.createElementVNode("span",{class:"close-btn",onClick:P},"×")])],544),r.createElementVNode("div",Ly,[r.renderSlot(B.$slots,"default",{},void 0,!0)]),r.unref(s)?r.createCommentVNode("",!0):(r.openBlock(),r.createElementBlock("div",{key:0,class:"resize-handle",onMousedown:m,onTouchstart:T},[...g[0]||(g[0]=[r.createElementVNode("svg",{viewBox:"0 0 10 10",width:"10",height:"10",fill:"currentColor"},[r.createElementVNode("path",{d:"M10 10 L10 2 L2 10 Z"})],-1)])],32))],6)),[[r.vShow,a.value]])}}),ye=(n,e)=>{const t=n.__vccOpts||n;for(const[i,s]of e)t[i]=s;return t},Le=ye(Oy,[["__scopeId","data-v-d1736023"]]);function hl(n){const e=r.ref([]),t=r.ref([]),i=r.ref([]),s=r.ref(""),o=r.ref(!0);r.watch(()=>r.unref(n),f=>{if(!f||f.length===0)return;const p=[],u=(A,b)=>{A.forEach(I=>{const k=I.id||I.key||I.$id,P=I.modelId||b;P&&(I.modelId=P),k&&p.push(k),I.children&&I.children.length>0&&u(I.children,P)})};u(f);const m=new Set(i.value);let C=!1;p.forEach(A=>{m.has(A)||(m.add(A),C=!0)}),C&&(i.value=Array.from(m))},{immediate:!0,deep:!0});const a=r.computed(()=>{const f=r.unref(n);if(!f)return[];const p=[],u=(m,C)=>{m.forEach(A=>{const b=A.id||A.key||A.$id,I=A.name||A.title;p.push({key:b,title:I,parentKey:C}),A.children&&A.children.length>0&&u(A.children,b)})};return u(f),p}),c=f=>{e.value=f,o.value=!1},l=f=>{i.value=f},d=f=>{t.value=f},h=f=>a.value.find(u=>u.key===f)?.parentKey;return r.watch(s,f=>{if(!f)return;const u=a.value.filter(C=>C.title&&C.title.toLowerCase().includes(f.toLowerCase())).map(C=>C.parentKey),m=new Set;u.forEach(C=>{let A=C;for(;A;)m.add(A),A=h(A)}),e.value=[...m],o.value=!0}),{expandedKeys:e,selectedKeys:t,checkedKeys:i,searchValue:s,autoExpandParent:o,onExpand:c,onCheck:l,onSelect:d}}const Uy={class:"search-box"},_y={key:0},Qy={style:{color:"#f50"}},Vy={key:1},Gy={key:1,class:"empty-tip"},hi=ye(r.defineComponent({__name:"LeitingTree",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"构件树"},width:{type:[Number,String],default:320},treeData:{type:Array,default:()=>[]},initialPosition:{type:Object,default:()=>({x:0,y:0})},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close","select","check"],setup(n,{emit:e}){const t=ie.Input.Search,i=ie.Tree,s=n,o=e,a=r.inject("leiting-theme",r.ref("dark")),c=r.inject("leitingMethods"),l=w=>{c?.value?.onSearchComponent&&c.value.onSearchComponent(w)},d=r.computed({get:()=>s.open!==void 0?s.open:s.visible,set:w=>{o("update:visible",w),o("update:open",w)}}),h=r.ref(null),{height:f}=Fy(h),p=r.computed(()=>f.value||300),u=r.ref({children:"children",title:"name",key:"id"}),m=r.ref([]),{expandedKeys:C,selectedKeys:A,checkedKeys:b,searchValue:I,autoExpandParent:k}=hl(r.toRef(s,"treeData")),P=(w,S)=>{if(!S)return w;const L=S.toLowerCase();return w.reduce((V,M)=>{const y=(M.name||M.title||"").toLowerCase().includes(L);if(M.children&&M.children.length>0){const v=P(M.children,S);(v.length>0||y)&&V.push({...M,children:v})}else y&&V.push({...M});return V},[])};r.watch([()=>s.treeData,I],([w,S])=>{w?m.value=P(w,S||""):m.value=[]},{immediate:!0,deep:!0});const R=w=>{C.value=w,k.value=!1},T=w=>{const S=[],L=V=>{if(!V.children||V.children.length===0){const E=V.element_Id;V.modelId&&E&&S.push({modelId:V.modelId,elementId:E})}else V.children.forEach(L)};return L(w),S},B=(w,S)=>{b.value=w,o("check",w,S);const L=[],V=new Set(w.map(E=>String(E))),M=E=>{for(let y=0;y<E.length;y++){const v=E[y];if(!v.children||v.children.length===0){if(!V.has(String(v.id))){const Q=v.element_Id;v.modelId&&Q&&L.push({modelId:v.modelId,elementId:Q,show:!1})}}else v.children&&M(v.children)}};s.treeData&&M(s.treeData),c?.value?.setComponentVisibility&&c.value.setComponentVisibility(L),c?.value?.onTreeCheck&&c.value.onTreeCheck(w,S)},g=(w,S)=>{if(A.value=w,o("select",w,S),S.selected){const L=T(S.node);L.length>0&&c?.value?.flyToObjects&&c.value.flyToObjects({selectCpts:L})}c?.value?.onTreeSelect&&c.value.onTreeSelect(w,S)},N=()=>{o("update:visible",!1),o("close")};return(w,S)=>(r.openBlock(),r.createBlock(Le,{visible:d.value,"onUpdate:visible":S[1]||(S[1]=L=>d.value=L),title:n.title,"initial-position":n.initialPosition,"full-height":n.fullHeight,onClose:N},{default:r.withCtx(()=>[r.createElementVNode("div",{class:r.normalizeClass(["leiting-tree-container",[`theme-${r.unref(a)}`]])},[r.createElementVNode("div",Uy,[r.createVNode(r.unref(t),{value:r.unref(I),"onUpdate:value":S[0]||(S[0]=L=>r.isRef(I)?I.value=L:null),placeholder:"搜索构件","allow-clear":"","enter-button":"",onSearch:l},null,8,["value"])]),r.createElementVNode("div",{class:"tree-wrapper",ref_key:"treeWrapperRef",ref:h},[m.value&&m.value.length?(r.openBlock(),r.createBlock(r.unref(i),{key:0,"tree-data":m.value,"field-names":u.value,height:p.value,"expanded-keys":r.unref(C),"auto-expand-parent":r.unref(k),"selected-keys":r.unref(A),"checked-keys":r.unref(b),checkable:"","block-node":"",onExpand:R,onSelect:g,onCheck:B},{title:r.withCtx(({name:L,title:V})=>[(L||V)&&r.unref(I)&&(L||V).toLowerCase().indexOf(r.unref(I).toLowerCase())>-1?(r.openBlock(),r.createElementBlock("span",_y,[r.createTextVNode(r.toDisplayString((L||V).substr(0,(L||V).toLowerCase().indexOf(r.unref(I).toLowerCase())))+" ",1),r.createElementVNode("span",Qy,r.toDisplayString(r.unref(I)),1),r.createTextVNode(" "+r.toDisplayString((L||V).substr((L||V).toLowerCase().indexOf(r.unref(I).toLowerCase())+r.unref(I).length)),1)])):(r.openBlock(),r.createElementBlock("span",Vy,r.toDisplayString(L||V),1))]),_:1},8,["tree-data","field-names","height","expanded-keys","auto-expand-parent","selected-keys","checked-keys"])):(r.openBlock(),r.createElementBlock("div",Gy,"暂无数据"))],512)],2)]),_:1},8,["visible","title","initial-position","full-height"]))}}),[["__scopeId","data-v-3748c20d"]]),Hy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",Rs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAERSURBVDhPvZTrEYIwEISTCrQD6EA7gA60AylBK1Aq0A7ECrQDoQPsADrACuLuTMJkIiHxjzezgyR7H3d5KJVSqRAigcaQUjYYX2JgZY/P/O4lEgYYFo7pgPcc2kSCBoIUzDeo0klPPEsNYlX7AKzA/M6ASrRzYoIGG5DAOCvzBvzMOxqQazSgLLI1QdAW5jWpUAPV0AVKIc7FRCuNy7RkWozJtj1BED7ANbpDXHhffFXUwUnZwRYp7qw7Rx8/lLkV9R4QD2w1A8pjW3sA4h5au+pXEBS76P8D6Ut9/nXXaiRQdnBXqBfEC+4GdzSxW5v6F7CTeHnbCVCBsWIE+RYVrdF4DSz6OwgiADDexbmT3X0A4fSDfDjUugcAAAAASUVORK5CYII=",Yy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAFESURBVDhPlZMNEcIwDIVXBQwFgAJAAcMBDgAFIGE4wAHgABSwOdgcIAEUjPd6aS/rfhi7y12bJl9f0sxEf3xVVV0RPoetjTFvnWqGcgSylfgihA0CKcgJgBfsAqMiKiM0+gkKlCyZCN8uhPWCFOSBxARWORU4W2CdeV9XjxSEJcwkjokTqBpzjxjCn7CyVRECzjg8wHLYCmabK7CplBcLhMr2DZCqP0dCovYZ9hYGXx1izLUGUkkfxI/sTQiCf4N1zLWAWCKV2nP6PEhB2Ngd7B4GC4SJnCcP8SAFoc/Ph/TqjVvTPogFKUiJ/VGU+GdmUAA5ObA7cyC+iPt/MjUfKRL4emyuK+cGH8tufFRUHywZ+RYlnRDdIwfzLzVUibtQv1oNhoAExtfpVdIAiQIOWiY9o2sQxJemOydTS1jR1di2Zn8B8f27apou9kMAAAAASUVORK5CYII=",zy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAHDSURBVDhPlZOxL0NRFIe9ECubhehoIIjJ1HYwCkIiJpUQEkN1YZBobU0kFKNI3iTGYrDRv0BIhLXCYpCwiO35fs25zWva98JNvpz37j33d8+551yvLWIEQXDG0izMe55XjvJz816MUJG1LVuvYJcQrEb5xwkV2JSHGfAhgBJiu63E4oSUzpRtusa+wBooKkWnKOujQYh7SbCShQx0m9cpds4iOseOw7BFmUPwU341IQT2MaOQgi9QND+wiqNnBxT4X7SIbrAqhNI9wiUvJ+W8A99wDEWdwrw25iVkkenAEb5LkIQPuIMJWJGQoriFd+iBCkhc8zUhfJSm7mva5l3aadubDgtpMgGKpB/eoBfuQZFoPNhBj9gTaC3kKkEEGXPswF7Y5rLro1AW8UI6GmelmAzfkUWlNaWt6/iT0DOOA5bqoSuzHfIvofATqSJQb8KoiJbtPi6x2dA9FPjXE1F/uZKrv3IwCFcNqVmoPlal7QJ9q/wZCbk7Ioo9/tehE9q1r0nIxNQbG4YEXdkVjQ5J2OZXbB88gVrgQIJNj9aaT4LboPK7J6O0Ktb1KYtc/aYxGff6h3AYY6Nvzk2GQ1WQTVj4BST70jYaqceXAAAAAElFTkSuQmCC",Wy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADhSURBVHgBvVOBEYIwDEw9B2ADO4IjuIEjwAa6Aa7ABMAEuIIjOIFsUDao37vgxVZbBI+/+0tI0+fJBaIIrLUFaMAHmNNcsMAIE+vdJLQykQ+0wFHBrsyiT/sL2I1DDTac/+4Klzobov7WHxt29qGmaYaQnlhLCmUTa2l4C2ljvamFlEvY0xpCW/kA924GblfGWciZaJyXQvSmlOoDITSdXQBbcA8eKfy/nHDFeY470FIX8tzUIu84FmLWuTzz7yhRLPm54dKJ4+A5uoJ3HgHBUfUmxGIa4QDuKA4n3kLk9ZInw0qu5b1R1aYAAAAASUVORK5CYII=",jy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADFSURBVDhPxVPBDYMwDIwnKJu0G9ANYJMyQrsBbNIRGAE2gEnSO6mpIMJxkBC1lEds52zfOeK9b51zV5wte4lIr8RWbgGQh2fGmaIHJe4EetKPtDpRcA5AvwcB7FtgCcTOH0p3YzaQNd75QBiVXJG3LRtCRyQ6Jvsekd3gTsJVoDcihZLQQjXGTRMzIzPhOCCQyNYvSuEue7Qdm02yK0u1nM2m/FQyKb8JZHH+l81Ofdpdm82tvikjThyNlbSEBvIPFj+MfwA76qSYUG3g9QAAAABJRU5ErkJggg==",Ky="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEcSURBVDhPrZSNDYIwEIXpBOIGjMAIOIE4AbgBGwAbOIJu4Aa4gW4gI+gE9b3mjjSmibSR5ALX3H33W4y1Ns+yrIe0EH7HPC8YnyGjAegkEB5cYyiwrdWXIEc1xnSREGcuiTQEWeg7gG4+CMcl9ALnLkvogwScv+wq6FMQJJCJDgBtBcSAI3QClwe2YZAHcY2Ho4kGAVLA6U5/CEvdp4KYhesFhBPpCZIAz6jStHhproJcHyAHbb5nF+6RZ8CsGslIQaHp/gSxRzlApU4GugPxNuDN/eNarAJxapUPgm8rQ9C1SAI9AOGiHhGApSdnRN8FshbEiLwiLI1rMUM6zSQ0tX9c2lp/Iw0iMIPU38iFIN1mTmOjKa98vyWB4QM5XQnvsbFsyAAAAABJRU5ErkJggg==",$y="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAGPSURBVDhPrZT9UQIxEMUvFSgViBUoFQgVABV4VqBW4FmBUIFQgZRwVqBU4HUAVHC+X2aXycQw/sPOvLncZvdlv5JQFaTv+1upp8IyhLDHRLpLfe6FrXRt7hZShYyH+n8RauGAv/AkQNYIHICshFcRdu6fE/kGRN/mQGTIpzAzMoh6EV2fIsJ5IwNOj2IpVZ6i6difSecRVnlELZHIgHROisgXRCa78Z+IrMBf2pjLYJNENGSd1kO2pPghjKQniyqY8lFr2NfaqC18wn7nZCMlWg7xLq70TxfRLyHqtABN2lbp40mSSCzBcSebif1TPyKjDBcQ0eJJRkIUpHkMPUlnkBU+pnlWItL6ERgw8o1iqRHtgzAUGNRD2qmkvgMvNnneUQcZ4ggR6VGXG+OOA1koNvrFcY7+af++VJe0hucfyKQu+RWJc+SDZ3aNvlPpRl7T0qXdafNZYPDehLEZt/rOBR9U8QSaEKX0jHAaE4tshVrgLeJ+Xdl6rS8D3BWJXKnCEwWXEuco9grQ3bb0sP0Cn8/nPm/SMRQAAAAASUVORK5CYII=",Xy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACDSURBVHgB1ZFhDYAgEIWfzgBGIIINpIEViGAkG2gEbWADjWADfMw/iDgUfji/7e3gxt3uHsDXZFrrlrFBHJNpsPAgEEmORArn3lFroEZQCjcTbAhzepPsgbuCgn8FBWvsUAMfFR5OIPGS5G80JkrG2sopHKbO1BCoHy8ZNhRUT5X4BTu6qyNSwwCiMAAAAABJRU5ErkJggg==",qy={class:"menu-container"},Jy=["onClick","title"],Zy={class:"menu-icon"},e0=["src","alt"],t0={key:3,style:{"font-size":"12px"}},n0={key:0,class:"sub-menu"},i0=["onClick"],bn=r.defineComponent({__name:"LeitingMenu",props:{visible:{type:Boolean,default:!0},activeIds:{type:Array,default:()=>[]},is2d:{type:Boolean,default:!1},customItems:{type:Array,default:()=>[]}},emits:["action"],setup(n,{emit:e}){const t=n,i=r.inject("leiting-theme",r.ref("dark")),s=r.inject("leiting-menu-size",r.ref("medium")),o=r.inject("leitingMethods",r.ref({})),a=r.computed(()=>i.value||i),c=r.computed(()=>s.value||s),l=r.ref([{ID:"home",title:"主视角",src:Hy,key:"homeView"},{ID:"tree",title:"目录树",src:Rs,key:"componentTree"},{ID:"cadLayer",title:"图层",src:Rs,key:"cadLayer"},{ID:"measure",title:"量算",src:Yy,key:"measurement"},{ID:"section",title:"剖切",src:zy,key:"section"},{ID:"roam",title:"人物漫游",src:Wy,key:"roam"},{ID:"info",title:"构件信息",src:jy,key:"componentInfo"},{ID:"cadPosition",title:"调整位置",src:Ky,key:"cadPosition"},{ID:"annotation",title:"标注",src:Xy,key:"annotation"},{ID:"setting",title:"设置",src:$y,key:"setting"}]),d=r.ref([]),h=r.ref([...t.activeIds]);r.watch(()=>t.activeIds,P=>{h.value=[...P]},{deep:!0});const f=r.computed(()=>t.visible);o.value&&o.value.menuEvents&&(o.value.menuEvents.on("setMenuListFilter",P=>{d.value=P}),o.value.menuEvents.on("setMenuActive",(P,R)=>{R?h.value.includes(P)||h.value.push(P):h.value=h.value.filter(T=>T!==P)}));const p=r.computed(()=>{let P=l.value;if(t.is2d){const R=["homeView","measurement","cadLayer","annotation"];P=P.filter(T=>T.key&&R.includes(T.key))}else{const R=["cadLayer","cadPosition","annotation"];P=P.filter(T=>!T.key||!R.includes(T.key))}if(d.value.length>0&&(P=P.filter(R=>!R.key||!d.value.includes(R.key))),t.customItems&&t.customItems.length>0){const R=t.customItems.map(T=>({...T,key:T.ID,src:T.src||T.icon}));return[...P,...R]}return P}),u=e,m=P=>{const R=["homeView"];if(P.key&&R.includes(P.key))h.value.includes(P.ID)||(h.value.push(P.ID),setTimeout(()=>{const B=h.value.indexOf(P.ID);B>-1&&h.value.splice(B,1)},1e3));else{const B=h.value.indexOf(P.ID);B>-1?h.value.splice(B,1):h.value.push(P.ID)}const T=h.value.includes(P.ID);P.func&&P.func(P),P.key&&u("action",P.key,T)},C=P=>{d.value=P},A=P=>{console.log("LeitingMenu received showMenu event:",P)},b=(P,R)=>{const T=p.value.find(B=>B.ID===P||B.key===P);if(T){const B=h.value.indexOf(T.ID);R&&B===-1?h.value.push(T.ID):!R&&B>-1&&h.value.splice(B,1)}};let I=null;const k=()=>{o.value?.menuEvents&&(I&&(I.off("setMenuListFilter",C),I.off("showMenu",A),I.off("setMenuActive",b)),I=o.value.menuEvents,I.on("setMenuListFilter",C),I.on("showMenu",A),I.on("setMenuActive",b))};return r.onMounted(()=>{k()}),r.onUnmounted(()=>{I&&(I.off("setMenuListFilter",C),I.off("showMenu",A),I.off("setMenuActive",b))}),r.watch(o,()=>{k()},{deep:!0}),(P,R)=>r.withDirectives((r.openBlock(),r.createElementBlock("div",{class:r.normalizeClass(["leiting-menu-wrapper",["leiting-theme-"+a.value,"size-"+c.value]])},[r.createElementVNode("div",qy,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(p.value,T=>(r.openBlock(),r.createElementBlock("div",{key:T.ID,class:r.normalizeClass(["menu-item",{active:h.value.includes(T.ID)}]),onClick:B=>m(T),title:T.title},[r.createElementVNode("div",Zy,[T.src?(r.openBlock(),r.createElementBlock("img",{key:0,src:T.src,alt:T.title},null,8,e0)):typeof T.icon=="object"?(r.openBlock(),r.createBlock(r.resolveDynamicComponent(T.icon),{key:1})):typeof T.icon=="string"?(r.openBlock(),r.createElementBlock("i",{key:2,class:r.normalizeClass(["iconfont",`icon-${T.icon}`])},null,2)):(r.openBlock(),r.createElementBlock("span",t0,r.toDisplayString(T.title.substring(0,2)),1))]),T.children&&T.children.length>0?(r.openBlock(),r.createElementBlock("div",n0,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(T.children,B=>(r.openBlock(),r.createElementBlock("div",{key:B.ID,class:r.normalizeClass(["sub-menu-item",{active:h.value.includes(B.ID)}]),onClick:r.withModifiers(g=>m(B),["stop"])},r.toDisplayString(B.title),11,i0))),128))])):r.createCommentVNode("",!0)],10,Jy))),128))])],2)),[[r.vShow,f.value]])}}),s0={class:"leiting-section-content"},o0={class:"section-form-item"},r0={class:"radio-group"},a0={class:"section-form-item"},l0={class:"switch-container"},c0={class:"switch"},d0={class:"status-text"},u0={class:"section-form-item slider-item"},h0={class:"slider-wrapper"},f0={class:"section-form-item slider-item"},p0={class:"slider-wrapper"},m0={class:"section-form-item slider-item"},g0={class:"slider-wrapper"},A0={class:"section-form-item table-item"},y0={class:"model-table-container"},C0={class:"model-table"},E0={width:"40"},b0=["checked"],w0=["onClick"],v0=["value"],I0={class:"model-name"},wn=ye(r.defineComponent({__name:"LeitingSection",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"剖切控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:M=>{i("update:visible",M),i("update:open",M)}}),a=r.ref("Box"),c=r.ref(!1),l=r.ref([]),d=r.ref([]),h=r.computed(()=>d.value.length===0?!1:d.value.every(M=>l.value.includes(M.modelId))),f=M=>{M.target.checked?l.value=d.value.map(y=>y.modelId):l.value=[],N()},p=r.ref([-10,10]),u=r.ref([-10,10]),m=r.ref([-10,10]),C=r.ref([-100,100]),A=r.ref([-100,100]),b=r.ref([-100,100]);let I=!1;const k=M=>{I=!0;const{targetZPlus:E,targetZMinus:y,targetXPlus:v,targetXMinus:D,targetYPlus:F,targetYMinus:Q}=M;m.value=[-y,E],p.value=[-D,v],u.value=[-Q,F],setTimeout(()=>{I=!1},100)},P=()=>{I||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:u.value[1],targetYMinus:-u.value[0]})},R=()=>{s?.value?.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(c.value)},T=M=>{if(!s?.value?.getMapTileset||!s?.value?.openSection)return;const y=s.value.getMapTileset()[M];if(y&&y.leiting?.box){const{min:v,max:D}=y.leiting.box,F=(D.x-v.x)/2,Q=(D.y-v.y)/2,O=(D.z-v.z)/2;l.value.length<=1&&(C.value=[-F*2,F*2],A.value=[-Q*2,Q*2],b.value=[-O*2,O*2],p.value=[-F,F],u.value=[-Q,Q],m.value=[-O,O],s.value.updateSectionRange&&s.value.updateSectionRange({targetZPlus:O,targetZMinus:O,targetXPlus:F,targetXMinus:F,targetYPlus:Q,targetYMinus:Q})),s.value.openSection(M,{moveCallBack:k}),s.value.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(c.value)}},B=M=>{const E=l.value.indexOf(M);E>-1?l.value.splice(E,1):l.value.push(M),N()};let g=[];const N=()=>{const M=l.value.filter(y=>!g.includes(y)),E=g.filter(y=>!l.value.includes(y));M.forEach(y=>T(y)),E.forEach(y=>{s?.value?.closeSection&&s.value.closeSection(y)}),g=[...l.value]},w=()=>{},S=()=>{o.value=!1,i("close")},L=()=>{c.value=!1,l.value=[],g=[],p.value=[-10,10],u.value=[-10,10],m.value=[-10,10],C.value=[-100,100],A.value=[-100,100],b.value=[-100,100]};r.watch(()=>t.visible,M=>{M?V():(s?.value?.closeSection&&s.value.closeSection(),L())});const V=()=>{s?.value&&typeof s.value.getModelList=="function"&&(d.value=s.value.getModelList()||[],d.value.length>0&&l.value.length===0&&(l.value=[d.value[0].modelId],g=[...l.value]),t.visible&&l.value.length>0&&(c.value=!0,l.value.forEach(M=>T(M))))};return r.watch(()=>s?.value,()=>{V()},{immediate:!0,deep:!0}),r.onMounted(()=>{V()}),(M,E)=>(r.openBlock(),r.createBlock(Le,{visible:o.value,title:"剖切分析","full-height":n.fullHeight,"onUpdate:visible":S},{default:r.withCtx(()=>[r.createElementVNode("div",s0,[r.createElementVNode("div",o0,[E[8]||(E[8]=r.createElementVNode("span",{class:"label"},"模式",-1)),r.createElementVNode("div",r0,[r.createElementVNode("label",{class:r.normalizeClass(["radio-item",{active:a.value==="Box"}])},[r.withDirectives(r.createElementVNode("input",{type:"radio",value:"Box","onUpdate:modelValue":E[0]||(E[0]=y=>a.value=y),onChange:w},null,544),[[r.vModelRadio,a.value]]),E[7]||(E[7]=r.createTextVNode(" 剖切盒 ",-1))],2)])]),r.createElementVNode("div",a0,[E[10]||(E[10]=r.createElementVNode("span",{class:"label"},"显示",-1)),r.createElementVNode("div",l0,[r.createElementVNode("label",c0,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":E[1]||(E[1]=y=>c.value=y),onChange:R},null,544),[[r.vModelCheckbox,c.value]]),E[9]||(E[9]=r.createElementVNode("span",{class:"slider round"},null,-1))]),r.createElementVNode("span",d0,r.toDisplayString(c.value?"显示":"隐藏"),1)])]),r.createElementVNode("div",u0,[E[11]||(E[11]=r.createElementVNode("span",{class:"label"},"X 轴",-1)),r.createElementVNode("div",h0,[r.createVNode(r.unref(ie.Slider),{value:p.value,"onUpdate:value":E[2]||(E[2]=y=>p.value=y),range:"",min:C.value[0],max:C.value[1],step:.1,onChange:P},null,8,["value","min","max"])])]),r.createElementVNode("div",f0,[E[12]||(E[12]=r.createElementVNode("span",{class:"label"},"Y 轴",-1)),r.createElementVNode("div",p0,[r.createVNode(r.unref(ie.Slider),{value:u.value,"onUpdate:value":E[3]||(E[3]=y=>u.value=y),range:"",min:A.value[0],max:A.value[1],step:.1,onChange:P},null,8,["value","min","max"])])]),r.createElementVNode("div",m0,[E[13]||(E[13]=r.createElementVNode("span",{class:"label"},"Z 轴",-1)),r.createElementVNode("div",g0,[r.createVNode(r.unref(ie.Slider),{value:m.value,"onUpdate:value":E[4]||(E[4]=y=>m.value=y),range:"",min:b.value[0],max:b.value[1],step:.1,onChange:P},null,8,["value","min","max"])])]),r.createElementVNode("div",A0,[E[15]||(E[15]=r.createElementVNode("span",{class:"label"},"模型",-1)),r.createElementVNode("div",y0,[r.createElementVNode("table",C0,[r.createElementVNode("thead",null,[r.createElementVNode("tr",null,[r.createElementVNode("th",E0,[r.createElementVNode("input",{type:"checkbox",checked:h.value,onChange:f},null,40,b0)]),E[14]||(E[14]=r.createElementVNode("th",null,"名称",-1))])]),r.createElementVNode("tbody",null,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(d.value,y=>(r.openBlock(),r.createElementBlock("tr",{key:y.modelId,class:r.normalizeClass({selected:l.value.includes(y.modelId)}),onClick:v=>B(y.modelId)},[r.createElementVNode("td",null,[r.withDirectives(r.createElementVNode("input",{type:"checkbox",value:y.modelId,"onUpdate:modelValue":E[5]||(E[5]=v=>l.value=v),onClick:E[6]||(E[6]=r.withModifiers(()=>{},["stop"])),onChange:N},null,40,v0),[[r.vModelCheckbox,l.value]])]),r.createElementVNode("td",I0,r.toDisplayString(y.modelName),1)],10,w0))),128))])])])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-ee4d9a12"]]),B0={class:"leiting-player-content"},x0={class:"player-form-item"},S0={class:"switch-container"},T0={class:"switch"},M0={class:"status-text"},D0={class:"player-form-item"},k0={class:"switch-container"},P0={class:"switch"},F0={class:"status-text"},N0={class:"player-form-item"},R0={class:"switch-container"},L0={class:"switch"},O0={class:"status-text"},U0={class:"player-form-item slider-item"},_0={class:"slider-wrapper"},Q0={class:"value-text"},V0={class:"instructions"},G0={class:"key-map"},H0={class:"key-row"},Y0={class:"key-row"},z0={class:"key-row"},W0={class:"key-row"},j0={class:"key-row"},K0={class:"key-row"},vn=ye(r.defineComponent({__name:"LeitingPlayer",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"漫游控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.ref(!1),a=r.ref(!1),c=r.ref(!0),l=r.ref(5),d=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:T=>{i("update:visible",T),i("update:open",T)}}),h=r.ref(null),f=r.ref(null),p=r.ref(null),u=r.ref(null),m=r.ref(null),C=r.ref(null),A=()=>{o.value?I():k()},b=()=>{s?.value?.setPlayerParams&&s.value.setPlayerParams({gravityTest:a.value,collisionTest:c.value})},I=async()=>{s?.value?.openPlayer&&(await s.value.openPlayer(),s.value.setPlayerSpeed&&s.value.setPlayerSpeed(l.value),b(),s.value.bindPlayerUiKeys&&(await r.nextTick(),s.value.bindPlayerUiKeys({moveFront:h.value,moveBack:f.value,moveLeft:p.value,moveRight:u.value,moveUp:m.value,moveDown:C.value})))},k=()=>{s?.value?.closePlayer&&s.value.closePlayer()},P=()=>{s?.value?.setPlayerSpeed&&s.value.setPlayerSpeed(l.value)},R=()=>{d.value=!1,i("close")};return r.watch(()=>t.visible,T=>{T?(o.value=!0,s?.value?I():setTimeout(()=>{s?.value&&I()},100)):o.value&&(o.value=!1,k())},{immediate:!0}),(T,B)=>(r.openBlock(),r.createBlock(Le,{title:n.title,visible:d.value,"full-height":n.fullHeight,"onUpdate:visible":R},{default:r.withCtx(()=>[r.createElementVNode("div",B0,[r.createElementVNode("div",x0,[B[5]||(B[5]=r.createElementVNode("span",{class:"label"},"启用",-1)),r.createElementVNode("div",S0,[r.createElementVNode("label",T0,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[0]||(B[0]=g=>o.value=g),onChange:A},null,544),[[r.vModelCheckbox,o.value]]),B[4]||(B[4]=r.createElementVNode("span",{class:"slider round"},null,-1))]),r.createElementVNode("span",M0,r.toDisplayString(o.value?"开启":"关闭"),1)])]),r.createElementVNode("div",D0,[B[7]||(B[7]=r.createElementVNode("span",{class:"label"},"重力",-1)),r.createElementVNode("div",k0,[r.createElementVNode("label",P0,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[1]||(B[1]=g=>a.value=g),onChange:b},null,544),[[r.vModelCheckbox,a.value]]),B[6]||(B[6]=r.createElementVNode("span",{class:"slider round"},null,-1))]),r.createElementVNode("span",F0,r.toDisplayString(a.value?"开启":"关闭"),1)])]),r.createElementVNode("div",N0,[B[9]||(B[9]=r.createElementVNode("span",{class:"label"},"碰撞",-1)),r.createElementVNode("div",R0,[r.createElementVNode("label",L0,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[2]||(B[2]=g=>c.value=g),onChange:b},null,544),[[r.vModelCheckbox,c.value]]),B[8]||(B[8]=r.createElementVNode("span",{class:"slider round"},null,-1))]),r.createElementVNode("span",O0,r.toDisplayString(c.value?"开启":"关闭"),1)])]),r.createElementVNode("div",U0,[B[10]||(B[10]=r.createElementVNode("span",{class:"label"},"速度",-1)),r.createElementVNode("div",_0,[r.createVNode(r.unref(ie.Slider),{value:l.value,"onUpdate:value":B[3]||(B[3]=g=>l.value=g),min:1,max:10,step:1,onChange:P},null,8,["value"])]),r.createElementVNode("span",Q0,r.toDisplayString(l.value),1)]),B[19]||(B[19]=r.createElementVNode("div",{class:"divider"},null,-1)),r.createElementVNode("div",V0,[B[18]||(B[18]=r.createElementVNode("div",{class:"instruction-title"},"操作说明",-1)),r.createElementVNode("div",G0,[r.createElementVNode("div",H0,[r.createElementVNode("span",{class:"key",ref_key:"btnFront",ref:h},"W",512),B[11]||(B[11]=r.createTextVNode(" 前进 ",-1))]),r.createElementVNode("div",Y0,[r.createElementVNode("span",{class:"key",ref_key:"btnBack",ref:f},"S",512),B[12]||(B[12]=r.createTextVNode(" 后退 ",-1))]),r.createElementVNode("div",z0,[r.createElementVNode("span",{class:"key",ref_key:"btnLeft",ref:p},"A",512),B[13]||(B[13]=r.createTextVNode(" 左移 ",-1))]),r.createElementVNode("div",W0,[r.createElementVNode("span",{class:"key",ref_key:"btnRight",ref:u},"D",512),B[14]||(B[14]=r.createTextVNode(" 右移 ",-1))]),r.createElementVNode("div",j0,[r.createElementVNode("span",{class:"key",ref_key:"btnUp",ref:m},"Q",512),B[15]||(B[15]=r.createTextVNode(" 上升 ",-1))]),r.createElementVNode("div",K0,[r.createElementVNode("span",{class:"key",ref_key:"btnDown",ref:C},"E",512),B[16]||(B[16]=r.createTextVNode(" 下降 ",-1))]),B[17]||(B[17]=r.createElementVNode("div",{class:"key-row"},[r.createElementVNode("span",{class:"mouse-icon"},"🖱️"),r.createTextVNode(" 按住左键拖拽旋转视角 ")],-1))])])])]),_:1},8,["title","visible","full-height"]))}}),[["__scopeId","data-v-ff3f266e"]]),$0={class:"info-content"},X0={key:0,class:"component-title"},In=ye(r.defineComponent({__name:"LeitingInfo",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.ref([]),a=r.ref(!1),c=r.ref([]),l=r.ref([]),d=r.ref(0),h=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:b=>{i("update:visible",b),i("update:open",b)}}),f=()=>{h.value=!1},p=b=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[b]||b,u=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],m=async b=>{const I=++d.value;if(l.value=b,!b||b.length===0){o.value=[];return}if(!h.value)return;let k=b;b.length>10&&(ce.warning(`选中构件数量过多(${b.length}个),仅显示前10个`),k=b.slice(0,10));const P=s?.value;let R=P?.getMapTileset?P.getMapTileset():{};a.value=!0;const T=[],B={};k.forEach(w=>{const L=R[w.modelId]?.leiting?.model?.dbName;L&&w.elementId&&T.push({dbName:L,elementId:w.elementId,modelId:w.modelId})});const g=new Set;if(k.forEach(w=>{const S=R[w.modelId],L=`${w.modelId}_${w.elementId}`;B[L]||S&&S.leiting&&!S.leiting?.node?.nodeExtras&&S.leiting.model?.nodeUrl&&g.add(w.modelId)}),g.size>0&&P?._loadNodeDetailsForModel)try{const w=Array.from(g).map(S=>P._loadNodeDetailsForModel(S));await Promise.all(w)}catch(w){console.error("Failed to load node details",w)}if(I!==d.value)return;R=P?.getMapTileset?P.getMapTileset():{};const N=[];k.forEach((w,S)=>{const V=R[w.modelId]?.leiting||{},M=B[`${w.modelId}_${w.elementId}`];let E={modelName:V.model?.modelId||w.modelId};E.elementID||(E.elementID=w.elementId);let y=null;if(M)y=M;else{const F=V.node?.nodeExtras?.element||V.node?.nodeExtras;if(F){const Q=E.elementID;F[Q]&&(y=F[Q])}}y&&y.box3&&(E.length=`${y.box3.length?.toFixed(2)||0}米`,E.width=`${y.box3.width?.toFixed(2)||0}米`,E.height=`${y.box3.height?.toFixed(2)||0}米`);const v=[];y&&(y.name&&(E.elementName=y.name),y.categoryName&&(E.categoryName=y.categoryName),y.familySymbolName&&(E.familySymbolName=y.familySymbolName),y.levelName&&(E.levelName=y.levelName));const D={};if(u.forEach(F=>{E[F]!==void 0&&(D[F]=E[F])}),v.push({name:"基础信息",params:D}),y){const F=Array.isArray(y)?y:Array.isArray(y?.parameters)?y.parameters:null;if(F){if(F.flat().forEach(O=>{if(O&&O.GroupName&&Array.isArray(O.Parameters)){const x={};O.Parameters.forEach(U=>{U.name&&(x[U.name]=U.value??"")}),Object.keys(x).length>0&&v.push({name:O.GroupName,params:x})}}),!Array.isArray(y)){const{parameters:O,...x}=y,U={};Object.keys(x).forEach(H=>{!u.includes(H)&&H!=="uniqueId"&&typeof x[H]!="object"&&(U[H]=x[H])}),Object.keys(U).length>0&&v.push({name:"其他属性",params:U})}}else{let Q=!1;if(Object.keys(y).forEach(O=>{y[O]&&typeof y[O]=="object"&&!Array.isArray(y[O])&&(Q=!0,v.push({name:O,params:y[O]}))}),!Q){const O={};Object.keys(y).forEach(x=>{if(!u.includes(x)&&x!=="batchId"){const U=y[x];typeof U=="string"&&U.length>500?O[x]=U.substring(0,500)+"...":O[x]=U}}),Object.keys(O).length>0&&v.push({name:"属性",params:O})}}}N.push({id:S,title:`${E.modelName}${E.elementName?` - ${E.elementName}`:""}`,groups:v})}),o.value=N,I===d.value&&(a.value=!1),N.length>0?c.value=[`${N[0].id}-基础信息`]:c.value=[]};let C=!1;const A=()=>{if(C)return;const b=s?.value;b&&b.selectionChange&&(b.selectionChange(m),C=!0)};return r.watch(()=>s?.value,()=>{A()},{deep:!0,immediate:!0}),r.watch(h,b=>{b&&l.value.length>0&&m(l.value)}),r.onMounted(()=>{A()}),(b,I)=>(r.openBlock(),r.createBlock(Le,{visible:h.value,title:"构件详情",width:350,align:"right","initial-position":{x:0,y:0},"full-height":n.fullHeight,onClose:f,"onUpdate:visible":I[1]||(I[1]=k=>h.value=k),class:"base-info-card"},{default:r.withCtx(()=>[r.createElementVNode("div",$0,[r.createVNode(r.unref(ie.Spin),{spinning:a.value},{default:r.withCtx(()=>[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(o.value,k=>(r.openBlock(),r.createElementBlock("div",{key:k.id,class:"component-block"},[o.value.length>1?(r.openBlock(),r.createElementBlock("div",X0,r.toDisplayString(k.title),1)):r.createCommentVNode("",!0),r.createVNode(r.unref(ie.Collapse),{activeKey:c.value,"onUpdate:activeKey":I[0]||(I[0]=P=>c.value=P),ghost:"","expand-icon-position":"end"},{default:r.withCtx(()=>[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(k.groups,P=>(r.openBlock(),r.createBlock(r.unref(ie.CollapsePanel),{key:`${k.id}-${P.name}`,header:P.name},{default:r.withCtx(()=>[r.createVNode(r.unref(ie.Descriptions),{size:"small",bordered:"",column:1,labelStyle:{width:"100px",background:"rgba(255,255,255,0.05)",color:"#aaa"},contentStyle:{color:"#fff"}},{default:r.withCtx(()=>[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(P.params,(R,T)=>(r.openBlock(),r.createBlock(r.unref(ie.DescriptionsItem),{key:T,label:p(String(T))},{default:r.withCtx(()=>[r.createTextVNode(r.toDisplayString(R),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 fl{viewer;Cesium;pickHandler=null;bimEntityId="";mapEntityId="";constructor(e,t){this.viewer=e,this.Cesium=t}removeMarker(e){if(!this.viewer)return;const t=e==="BIM"?this.bimEntityId:this.mapEntityId;t&&(this.viewer.entities.removeById(t),e==="BIM"?this.bimEntityId="":this.mapEntityId="")}clearMarkers(){this.removeMarker("BIM"),this.removeMarker("MAP")}addMarker(e,t){if(!this.viewer||!this.Cesium)return;this.removeMarker(e);const i=`adjust-marker-${e}-${Date.now()}`;e==="BIM"?this.bimEntityId=i:this.mapEntityId=i,this.viewer.entities.add({id:i,position:this.Cesium.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),point:{pixelSize:10,color:e==="BIM"?this.Cesium.Color.RED:this.Cesium.Color.ORANGE,outlineColor:this.Cesium.Color.WHITE,outlineWidth:2,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:{text:`${e==="BIM"?"BIM":"地图"}标记点`,font:"14pt sans-serif",style:this.Cesium.LabelStyle.FILL_AND_OUTLINE,outlineWidth:2,verticalOrigin:this.Cesium.VerticalOrigin.BOTTOM,pixelOffset:new this.Cesium.Cartesian2(0,-10),fillColor:this.Cesium.Color.WHITE,outlineColor:this.Cesium.Color.BLACK,backgroundColor:new this.Cesium.Color(.1,.1,.1,.8),showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY}})}registerPickHandler(e){this.destroyPickHandler(),!(!this.Cesium||!this.viewer)&&(this.pickHandler=new this.Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas),this.pickHandler.setInputAction(t=>{let i;try{i=this.viewer.scene.pickPosition(t.position)}catch(s){console.warn("pickPosition failed:",s)}if(!i){const s=this.viewer.camera.getPickRay(t.position);i=this.viewer.scene.globe.pick(s,this.viewer.scene)}if(i||(i=this.viewer.camera.pickEllipsoid(t.position,this.viewer.scene.globe.ellipsoid)),i){const s=this.Cesium.Cartographic.fromCartesian(i),o=this.Cesium.Math.toDegrees(s.longitude),a=this.Cesium.Math.toDegrees(s.latitude),c=s.height;e({longitude:o,latitude:a,height:c})}},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 q0={class:"adjust-panel"},J0={class:"control-panel"},Z0={class:"form-item"},eC={class:"radio-group"},tC={class:"form-item"},nC={class:"radio-group"},iC={class:"form-item"},sC={class:"value"},oC={class:"param-row"},rC={class:"param-row"},aC={class:"param-row"},lC={class:"param-row"},cC={class:"param-row"},dC={class:"param-row"},uC={class:"param-row"},hC={class:"button-grid"},fC={key:1,class:"pick-mode-ui"},pC={class:"form-item",style:{display:"block","margin-bottom":"15px"}},mC={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},gC=["checked"],AC={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},yC={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},CC={class:"form-item",style:{display:"block","margin-bottom":"15px"}},EC={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},bC=["checked"],wC={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},vC={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},IC={class:"list-panel"},BC={class:"list-header"},xC={class:"col-check"},SC=["checked"],TC={class:"list-body"},MC={class:"col-check"},DC=["onUpdate:modelValue"],kC={class:"col-index"},PC=["title"],FC={class:"col-main"},NC=["checked","onChange"],Bn=ye(r.defineComponent({__name:"LeitingPosition",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close","save"],setup(n,{expose:e,emit:t}){const i=n,s=t,o=r.computed({get:()=>i.open!==void 0?i.open:i.visible,set:O=>{s("update:visible",O),s("update:open",O)}}),a=r.inject("leitingMethods"),c=r.ref("BIM"),l=r.ref("param"),d=r.ref(""),h=r.ref([]),f=r.ref("BIM"),p=r.ref(null),u=r.ref(null),m=r.ref(null),C=()=>(!m.value&&a?.value?.getViewer&&a?.value?.getCesium&&(m.value=new fl(a.value.getViewer(),a.value.getCesium())),m.value),A=()=>{C()?.clearMarkers(),p.value=null,u.value=null},b=(O,x)=>{O==="BIM"?p.value=x:u.value=x,C()?.addMarker(O,x),ce.success(`${O==="BIM"?"BIM":"地图"}标记点已添加`)},I=()=>{C()?.registerPickHandler(O=>{b(f.value,O)})},k=()=>{C()?.destroyPickHandler()},P=()=>{if(!p.value||!u.value){ce.warning("请先选择BIM标记点和地图标记点");return}if(!d.value){ce.warning("请先选择主模型");return}const O=C();let x=0,U=0,H=0;if(O){const{dLon:j,dLat:X,dHeight:Z}=O.calculateOffset(p.value,u.value);x=j,U=X,H=Z}else x=u.value.longitude-p.value.longitude,U=u.value.latitude-p.value.latitude,H=u.value.height-p.value.height;T.value.longitude+=x,T.value.latitude+=U,T.value.height+=H,y(d.value,{longitude:T.value.longitude,latitude:T.value.latitude,height:T.value.height}),ce.success("位置已调整")};r.watch(()=>l.value,O=>{O==="pick"?I():k()}),e({addMarker:b,setModelType:O=>{(O==="BIM"||O==="OSGB")&&(c.value=O)}});const T=r.ref({longitude:0,latitude:0,lonlat:1e-6,heightDistance:1,rotation:30,totalRotation:0,height:0,X:0,Y:0,Z:0}),B=r.computed(()=>{const O=h.value.find(x=>x.modelId===d.value);return O?O.modelName:""}),g=r.computed(()=>w.value.length>0&&w.value.every(O=>O.selected)),N=()=>{o.value=!1,s("close")},w=r.computed(()=>h.value.filter(O=>O.type===c.value)),S=O=>{const x=O.target.checked;w.value.forEach(U=>U.selected=x)},L=()=>{if(!a?.value)return;const O=a.value,x=O.getMapTileset?O.getMapTileset():{},U=[];if(Object.keys(x).forEach(H=>{const X=x[H].leiting||{};X.model&&U.push({modelId:X.model.modelId,modelName:X.model.modelName,selected:!1,formData:X.model.formData||{},dbName:X.model.dbName,url:X.model.url,type:X.model.type||"BIM"})}),h.value=U,U.length>0){const H=O.getBIMmodelId?O.getBIMmodelId():"";H&&U.find(j=>j.modelId===H)?M(H):M(U[0].modelId),U.forEach(j=>j.selected=!0)}},V=()=>{ce.info("拖动右下角标,可显示模型列表",void 0,2)},M=O=>{d.value=O;const x=h.value.find(U=>U.modelId===O);x&&x.formData&&Object.keys(T.value).forEach(U=>{x.formData[U]!==void 0&&(T.value[U]=x.formData[U])})},E=O=>a?.value?.getMapTileset?a.value.getMapTileset()[O]:null,y=(O,x)=>{const U=E(O),H=a.value.getCesium();if(U&&H){if(U.leiting?.model){U.leiting.model.formData={...U.leiting.model.formData,...x};const j=h.value.find(X=>X.modelId===O);j&&(j.formData=U.leiting.model.formData)}Oi({Cesium:H,tileset:U})}},v=O=>{if(!d.value)return;const U=h.value.find(X=>X.modelId===d.value)?.formData?.[O]??0,H=T.value[O],j=H-U;y(d.value,{[O]:H}),j!==0&&w.value.filter(Z=>Z.selected&&Z.modelId!==d.value).forEach(Z=>{const se=(Z.formData?.[O]??0)+j;y(Z.modelId,{[O]:se})})},D=O=>{const x=w.value.filter(X=>X.selected);if(x.length===0){ce.warning("请先选择要调整的模型");return}const{lonlat:U,heightDistance:H,rotation:j}=T.value;x.forEach(X=>{const Z={...X.formData};switch(O){case"north":Z.latitude+=U;break;case"south":Z.latitude-=U;break;case"east":Z.longitude+=U;break;case"west":Z.longitude-=U;break;case"up":Z.height+=H;break;case"down":Z.height-=H;break;case"rotateLeft":Z.totalRotation=(Z.totalRotation||0)+j;break;case"rotateRight":Z.totalRotation=(Z.totalRotation||0)-j;break}X.modelId===d.value&&(Z.lonlat=U,Z.heightDistance=H,Z.rotation=j,Object.assign(T.value,Z)),y(X.modelId,Z)})},F=()=>{if(!d.value){ce.warning("请先选择主模型");return}const O=E(d.value);if(!O||!a?.value?.getViewer)return;const x=a.value.getViewer(),U=a.value.getCesium(),H=O.boundingSphere;x.camera.flyToBoundingSphere(H,{offset:new U.HeadingPitchRange(0,U.Math.toRadians(-90),H.radius*2),duration:1.5})},Q=()=>{a?.value?.saveRegion?(a.value.saveRegion(h.value),s("save",r.unref(h))):(console.log("Save models:",h.value),ce.warning("未找到保存接口,数据已打印控制台"))};return r.watch(()=>i.visible,O=>{O?(L(),V(),l.value==="pick"&&I()):(k(),A())}),r.onMounted(()=>{i.visible&&(L(),V(),l.value==="pick"&&I())}),(O,x)=>(r.openBlock(),r.createBlock(Le,{visible:o.value,title:"调整位置(调整前可选择正北俯视)","full-height":n.fullHeight,width:260,"onUpdate:visible":x[25]||(x[25]=U=>o.value=U),onClose:N,onSave:Q,class:"base-position-card"},{default:r.withCtx(()=>[r.createElementVNode("div",q0,[r.createElementVNode("div",J0,[r.createElementVNode("div",Z0,[x[26]||(x[26]=r.createElementVNode("label",null,"模型类型:",-1)),r.createElementVNode("div",eC,[r.createElementVNode("span",{class:r.normalizeClass({active:c.value==="BIM"}),onClick:x[0]||(x[0]=U=>c.value="BIM")},"BIM模型",2),r.createElementVNode("span",{class:r.normalizeClass({active:c.value==="OSGB"}),onClick:x[1]||(x[1]=U=>c.value="OSGB")},"倾斜摄影",2)])]),r.createElementVNode("div",tC,[x[27]||(x[27]=r.createElementVNode("label",null,"调整操作:",-1)),r.createElementVNode("div",nC,[r.createElementVNode("span",{class:r.normalizeClass({active:l.value==="param"}),onClick:x[2]||(x[2]=U=>l.value="param")},"参数模式",2),r.createElementVNode("span",{class:r.normalizeClass({active:l.value==="pick"}),onClick:x[3]||(x[3]=U=>l.value="pick")},"地图点选",2)])]),r.createElementVNode("div",iC,[x[28]||(x[28]=r.createElementVNode("label",null,"当前主模型:",-1)),r.createElementVNode("span",sC,r.toDisplayString(B.value||"未选择"),1)]),x[42]||(x[42]=r.createElementVNode("div",{class:"separator"},null,-1)),l.value==="param"?(r.openBlock(),r.createElementBlock(r.Fragment,{key:0},[x[36]||(x[36]=r.createElementVNode("div",{class:"group-header"},"当前状态",-1)),r.createElementVNode("div",oC,[x[29]||(x[29]=r.createElementVNode("label",null,"经度(东西):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[4]||(x[4]=U=>T.value.longitude=U),onChange:x[5]||(x[5]=U=>v("longitude")),step:"0.000001"},null,544),[[r.vModelText,T.value.longitude,void 0,{number:!0}]])]),r.createElementVNode("div",rC,[x[30]||(x[30]=r.createElementVNode("label",null,"纬度(南北):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[6]||(x[6]=U=>T.value.latitude=U),onChange:x[7]||(x[7]=U=>v("latitude")),step:"0.000001"},null,544),[[r.vModelText,T.value.latitude,void 0,{number:!0}]])]),r.createElementVNode("div",aC,[x[31]||(x[31]=r.createElementVNode("label",null,"高度(m):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[8]||(x[8]=U=>T.value.height=U),onChange:x[9]||(x[9]=U=>v("height")),step:"0.1"},null,544),[[r.vModelText,T.value.height,void 0,{number:!0}]])]),r.createElementVNode("div",lC,[x[32]||(x[32]=r.createElementVNode("label",null,"累计旋转(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[10]||(x[10]=U=>T.value.totalRotation=U),onChange:x[11]||(x[11]=U=>v("totalRotation")),step:"1"},null,544),[[r.vModelText,T.value.totalRotation,void 0,{number:!0}]])]),x[37]||(x[37]=r.createElementVNode("div",{class:"separator"},null,-1)),x[38]||(x[38]=r.createElementVNode("div",{class:"group-header"},"调整步长",-1)),r.createElementVNode("div",cC,[x[33]||(x[33]=r.createElementVNode("label",null,"经纬步长(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[12]||(x[12]=U=>T.value.lonlat=U),step:"0.000001"},null,512),[[r.vModelText,T.value.lonlat,void 0,{number:!0}]])]),r.createElementVNode("div",dC,[x[34]||(x[34]=r.createElementVNode("label",null,"高度步长(m):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[13]||(x[13]=U=>T.value.heightDistance=U),step:"0.1"},null,512),[[r.vModelText,T.value.heightDistance,void 0,{number:!0}]])]),r.createElementVNode("div",uC,[x[35]||(x[35]=r.createElementVNode("label",null,"旋转步长(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[14]||(x[14]=U=>T.value.rotation=U),step:"1"},null,512),[[r.vModelText,T.value.rotation,void 0,{number:!0}]])]),r.createElementVNode("div",hC,[r.createElementVNode("button",{onClick:x[15]||(x[15]=U=>D("rotateLeft"))},"左转"),r.createElementVNode("button",{onClick:x[16]||(x[16]=U=>D("north"))},"北移"),r.createElementVNode("button",{onClick:x[17]||(x[17]=U=>D("rotateRight"))},"右转"),r.createElementVNode("button",{onClick:x[18]||(x[18]=U=>D("west"))},"西移"),r.createElementVNode("button",{onClick:x[19]||(x[19]=U=>D("south"))},"南移"),r.createElementVNode("button",{onClick:x[20]||(x[20]=U=>D("east"))},"东移"),r.createElementVNode("button",{onClick:x[21]||(x[21]=U=>D("up"))},"上移"),r.createElementVNode("button",{onClick:x[22]||(x[22]=U=>D("down"))},"下移"),r.createElementVNode("button",{onClick:F,class:"primary-btn"},"正北俯视"),r.createElementVNode("button",{onClick:Q,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):l.value==="pick"?(r.openBlock(),r.createElementBlock("div",fC,[r.createElementVNode("div",pC,[r.createElementVNode("div",mC,[r.createElementVNode("div",{onClick:x[23]||(x[23]=U=>f.value="BIM"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[r.createElementVNode("input",{type:"radio",checked:f.value==="BIM",style:{"margin-right":"5px"}},null,8,gC),x[39]||(x[39]=r.createElementVNode("span",{style:{"font-weight":"bold"}},"BIM标记点:",-1))]),p.value?(r.openBlock(),r.createElementBlock("div",AC,[r.createElementVNode("div",null,"经度:"+r.toDisplayString(p.value.longitude.toFixed(10)),1),r.createElementVNode("div",null,"纬度:"+r.toDisplayString(p.value.latitude.toFixed(10)),1)])):(r.openBlock(),r.createElementBlock("div",yC,"未选择"))])]),r.createElementVNode("div",CC,[r.createElementVNode("div",EC,[r.createElementVNode("div",{onClick:x[24]||(x[24]=U=>f.value="MAP"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[r.createElementVNode("input",{type:"radio",checked:f.value==="MAP",style:{"margin-right":"5px"}},null,8,bC),x[40]||(x[40]=r.createElementVNode("span",{style:{"font-weight":"bold"}},"地图标记点:",-1))]),u.value?(r.openBlock(),r.createElementBlock("div",wC,[r.createElementVNode("div",null,"经度:"+r.toDisplayString(u.value.longitude.toFixed(10)),1),r.createElementVNode("div",null,"纬度:"+r.toDisplayString(u.value.latitude.toFixed(10)),1)])):(r.openBlock(),r.createElementBlock("div",vC,"未选择"))])]),r.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[r.createElementVNode("button",{onClick:P},"调整位置"),r.createElementVNode("button",{onClick:Q},"保存")]),x[41]||(x[41]=r.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[r.createElementVNode("div",null,"操作指南:"),r.createElementVNode("div",null,"1. 勾选上方 BIM 或 地图 标记点选项。"),r.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),r.createElementVNode("div",null,"3. 采集两点后,点击“调整位置”进行校准。")],-1))])):r.createCommentVNode("",!0)]),r.createElementVNode("div",IC,[r.createElementVNode("div",BC,[r.createElementVNode("div",xC,[r.createElementVNode("input",{type:"checkbox",checked:g.value,onChange:S},null,40,SC)]),x[43]||(x[43]=r.createElementVNode("div",{class:"col-index"},"序号",-1)),x[44]||(x[44]=r.createElementVNode("div",{class:"col-name"},"名称",-1)),x[45]||(x[45]=r.createElementVNode("div",{class:"col-main"},"主模型",-1))]),r.createElementVNode("div",TC,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(w.value,(U,H)=>(r.openBlock(),r.createElementBlock("div",{key:U.modelId,class:r.normalizeClass(["list-item",{active:U.modelId===d.value}])},[r.createElementVNode("div",MC,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":j=>U.selected=j},null,8,DC),[[r.vModelCheckbox,U.selected]])]),r.createElementVNode("div",kC,r.toDisplayString(H+1),1),r.createElementVNode("div",{class:"col-name",title:U.modelName},r.toDisplayString(U.modelName),9,PC),r.createElementVNode("div",FC,[r.createElementVNode("input",{type:"radio",name:"mainModel",checked:U.modelId===d.value,onChange:j=>M(U.modelId)},null,40,NC)])],2))),128))])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-9737215c"]]);function fi(){return fi=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)({}).hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},fi.apply(null,arguments)}const RC={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:"下一世纪"},LC={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},pl={lang:fi({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},RC),timePickerLocale:fi({},LC)};pl.lang.ok="确定";var pi={exports:{}},OC=pi.exports,ml;function gl(){return ml||(ml=1,(function(n,e){(function(t,i){n.exports=i()})(OC,(function(){var t=1e3,i=6e4,s=36e5,o="millisecond",a="second",c="minute",l="hour",d="day",h="week",f="month",p="quarter",u="year",m="date",C="Invalid Date",A=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,b=/\[([^\]]+)]|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,I={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(M){var E=["th","st","nd","rd"],y=M%100;return"["+M+(E[(y-20)%10]||E[y]||E[0])+"]"}},k=function(M,E,y){var v=String(M);return!v||v.length>=E?M:""+Array(E+1-v.length).join(y)+M},P={s:k,z:function(M){var E=-M.utcOffset(),y=Math.abs(E),v=Math.floor(y/60),D=y%60;return(E<=0?"+":"-")+k(v,2,"0")+":"+k(D,2,"0")},m:function M(E,y){if(E.date()<y.date())return-M(y,E);var v=12*(y.year()-E.year())+(y.month()-E.month()),D=E.clone().add(v,f),F=y-D<0,Q=E.clone().add(v+(F?-1:1),f);return+(-(v+(y-D)/(F?D-Q:Q-D))||0)},a:function(M){return M<0?Math.ceil(M)||0:Math.floor(M)},p:function(M){return{M:f,y:u,w:h,d,D:m,h:l,m:c,s:a,ms:o,Q:p}[M]||String(M||"").toLowerCase().replace(/s$/,"")},u:function(M){return M===void 0}},R="en",T={};T[R]=I;var B="$isDayjsObject",g=function(M){return M instanceof L||!(!M||!M[B])},N=function M(E,y,v){var D;if(!E)return R;if(typeof E=="string"){var F=E.toLowerCase();T[F]&&(D=F),y&&(T[F]=y,D=F);var Q=E.split("-");if(!D&&Q.length>1)return M(Q[0])}else{var O=E.name;T[O]=E,D=O}return!v&&D&&(R=D),D||!v&&R},w=function(M,E){if(g(M))return M.clone();var y=typeof E=="object"?E:{};return y.date=M,y.args=arguments,new L(y)},S=P;S.l=N,S.i=g,S.w=function(M,E){return w(M,{locale:E.$L,utc:E.$u,x:E.$x,$offset:E.$offset})};var L=(function(){function M(y){this.$L=N(y.locale,null,!0),this.parse(y),this.$x=this.$x||y.x||{},this[B]=!0}var E=M.prototype;return E.parse=function(y){this.$d=(function(v){var D=v.date,F=v.utc;if(D===null)return new Date(NaN);if(S.u(D))return new Date;if(D instanceof Date)return new Date(D);if(typeof D=="string"&&!/Z$/i.test(D)){var Q=D.match(A);if(Q){var O=Q[2]-1||0,x=(Q[7]||"0").substring(0,3);return F?new Date(Date.UTC(Q[1],O,Q[3]||1,Q[4]||0,Q[5]||0,Q[6]||0,x)):new Date(Q[1],O,Q[3]||1,Q[4]||0,Q[5]||0,Q[6]||0,x)}}return new Date(D)})(y),this.init()},E.init=function(){var y=this.$d;this.$y=y.getFullYear(),this.$M=y.getMonth(),this.$D=y.getDate(),this.$W=y.getDay(),this.$H=y.getHours(),this.$m=y.getMinutes(),this.$s=y.getSeconds(),this.$ms=y.getMilliseconds()},E.$utils=function(){return S},E.isValid=function(){return this.$d.toString()!==C},E.isSame=function(y,v){var D=w(y);return this.startOf(v)<=D&&D<=this.endOf(v)},E.isAfter=function(y,v){return w(y)<this.startOf(v)},E.isBefore=function(y,v){return this.endOf(v)<w(y)},E.$g=function(y,v,D){return S.u(y)?this[v]:this.set(D,y)},E.unix=function(){return Math.floor(this.valueOf()/1e3)},E.valueOf=function(){return this.$d.getTime()},E.startOf=function(y,v){var D=this,F=!!S.u(v)||v,Q=S.p(y),O=function(se,oe){var ge=S.w(D.$u?Date.UTC(D.$y,oe,se):new Date(D.$y,oe,se),D);return F?ge:ge.endOf(d)},x=function(se,oe){return S.w(D.toDate()[se].apply(D.toDate("s"),(F?[0,0,0,0]:[23,59,59,999]).slice(oe)),D)},U=this.$W,H=this.$M,j=this.$D,X="set"+(this.$u?"UTC":"");switch(Q){case u:return F?O(1,0):O(31,11);case f:return F?O(1,H):O(0,H+1);case h:var Z=this.$locale().weekStart||0,re=(U<Z?U+7:U)-Z;return O(F?j-re:j+(6-re),H);case d:case m:return x(X+"Hours",0);case l:return x(X+"Minutes",1);case c:return x(X+"Seconds",2);case a:return x(X+"Milliseconds",3);default:return this.clone()}},E.endOf=function(y){return this.startOf(y,!1)},E.$set=function(y,v){var D,F=S.p(y),Q="set"+(this.$u?"UTC":""),O=(D={},D[d]=Q+"Date",D[m]=Q+"Date",D[f]=Q+"Month",D[u]=Q+"FullYear",D[l]=Q+"Hours",D[c]=Q+"Minutes",D[a]=Q+"Seconds",D[o]=Q+"Milliseconds",D)[F],x=F===d?this.$D+(v-this.$W):v;if(F===f||F===u){var U=this.clone().set(m,1);U.$d[O](x),U.init(),this.$d=U.set(m,Math.min(this.$D,U.daysInMonth())).$d}else O&&this.$d[O](x);return this.init(),this},E.set=function(y,v){return this.clone().$set(y,v)},E.get=function(y){return this[S.p(y)]()},E.add=function(y,v){var D,F=this;y=Number(y);var Q=S.p(v),O=function(H){var j=w(F);return S.w(j.date(j.date()+Math.round(H*y)),F)};if(Q===f)return this.set(f,this.$M+y);if(Q===u)return this.set(u,this.$y+y);if(Q===d)return O(1);if(Q===h)return O(7);var x=(D={},D[c]=i,D[l]=s,D[a]=t,D)[Q]||1,U=this.$d.getTime()+y*x;return S.w(U,this)},E.subtract=function(y,v){return this.add(-1*y,v)},E.format=function(y){var v=this,D=this.$locale();if(!this.isValid())return D.invalidDate||C;var F=y||"YYYY-MM-DDTHH:mm:ssZ",Q=S.z(this),O=this.$H,x=this.$m,U=this.$M,H=D.weekdays,j=D.months,X=D.meridiem,Z=function(oe,ge,ve,Ce){return oe&&(oe[ge]||oe(v,F))||ve[ge].slice(0,Ce)},re=function(oe){return S.s(O%12||12,oe,"0")},se=X||function(oe,ge,ve){var Ce=oe<12?"AM":"PM";return ve?Ce.toLowerCase():Ce};return F.replace(b,(function(oe,ge){return ge||(function(ve){switch(ve){case"YY":return String(v.$y).slice(-2);case"YYYY":return S.s(v.$y,4,"0");case"M":return U+1;case"MM":return S.s(U+1,2,"0");case"MMM":return Z(D.monthsShort,U,j,3);case"MMMM":return Z(j,U);case"D":return v.$D;case"DD":return S.s(v.$D,2,"0");case"d":return String(v.$W);case"dd":return Z(D.weekdaysMin,v.$W,H,2);case"ddd":return Z(D.weekdaysShort,v.$W,H,3);case"dddd":return H[v.$W];case"H":return String(O);case"HH":return S.s(O,2,"0");case"h":return re(1);case"hh":return re(2);case"a":return se(O,x,!0);case"A":return se(O,x,!1);case"m":return String(x);case"mm":return S.s(x,2,"0");case"s":return String(v.$s);case"ss":return S.s(v.$s,2,"0");case"SSS":return S.s(v.$ms,3,"0");case"Z":return Q}return null})(oe)||Q.replace(":","")}))},E.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},E.diff=function(y,v,D){var F,Q=this,O=S.p(v),x=w(y),U=(x.utcOffset()-this.utcOffset())*i,H=this-x,j=function(){return S.m(Q,x)};switch(O){case u:F=j()/12;break;case f:F=j();break;case p:F=j()/3;break;case h:F=(H-U)/6048e5;break;case d:F=(H-U)/864e5;break;case l:F=H/s;break;case c:F=H/i;break;case a:F=H/t;break;default:F=H}return D?F:S.a(F)},E.daysInMonth=function(){return this.endOf(f).$D},E.$locale=function(){return T[this.$L]},E.locale=function(y,v){if(!y)return this.$L;var D=this.clone(),F=N(y,v,!0);return F&&(D.$L=F),D},E.clone=function(){return S.w(this.$d,this)},E.toDate=function(){return new Date(this.valueOf())},E.toJSON=function(){return this.isValid()?this.toISOString():null},E.toISOString=function(){return this.$d.toISOString()},E.toString=function(){return this.$d.toUTCString()},M})(),V=L.prototype;return w.prototype=V,[["$ms",o],["$s",a],["$m",c],["$H",l],["$W",d],["$M",f],["$y",u],["$D",m]].forEach((function(M){V[M[1]]=function(E){return this.$g(E,M[0],M[1])}})),w.extend=function(M,E){return M.$i||(M(E,L,w),M.$i=!0),w},w.locale=N,w.isDayjs=g,w.unix=function(M){return w(1e3*M)},w.en=T[R],w.Ls=T,w.p={},w}))})(pi)),pi.exports}var UC=gl();const Ke=Yt(UC);var mi={exports:{}},_C=mi.exports,Al;function QC(){return Al||(Al=1,(function(n,e){(function(t,i){n.exports=i(gl())})(_C,(function(t){function i(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var s=i(t),o={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(a,c){return c==="W"?a+"周":a+"日"},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(a,c){var l=100*a+c;return l<600?"凌晨":l<900?"早上":l<1100?"上午":l<1300?"中午":l<1800?"下午":"晚上"}};return s.default.locale(o,null,!0),o}))})(mi)),mi.exports}QC();var gi={exports:{}},VC=gi.exports,yl;function GC(){return yl||(yl=1,(function(n,e){(function(t,i){n.exports=i()})(VC,(function(){return function(t,i,s){var o=i.prototype,a=function(f){return f&&(f.indexOf?f:f.s)},c=function(f,p,u,m,C){var A=f.name?f:f.$locale(),b=a(A[p]),I=a(A[u]),k=b||I.map((function(R){return R.slice(0,m)}));if(!C)return k;var P=A.weekStart;return k.map((function(R,T){return k[(T+(P||0))%7]}))},l=function(){return s.Ls[s.locale()]},d=function(f,p){return f.formats[p]||(function(u){return u.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(m,C,A){return C||A.slice(1)}))})(f.formats[p.toUpperCase()])},h=function(){var f=this;return{months:function(p){return p?p.format("MMMM"):c(f,"months")},monthsShort:function(p){return p?p.format("MMM"):c(f,"monthsShort","months",3)},firstDayOfWeek:function(){return f.$locale().weekStart||0},weekdays:function(p){return p?p.format("dddd"):c(f,"weekdays")},weekdaysMin:function(p){return p?p.format("dd"):c(f,"weekdaysMin","weekdays",2)},weekdaysShort:function(p){return p?p.format("ddd"):c(f,"weekdaysShort","weekdays",3)},longDateFormat:function(p){return d(f.$locale(),p)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};o.localeData=function(){return h.bind(this)()},s.localeData=function(){var f=l();return{firstDayOfWeek:function(){return f.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 d(f,p)},meridiem:f.meridiem,ordinal:f.ordinal}},s.months=function(){return c(l(),"months")},s.monthsShort=function(){return c(l(),"monthsShort","months",3)},s.weekdays=function(f){return c(l(),"weekdays",null,null,f)},s.weekdaysShort=function(f){return c(l(),"weekdaysShort","weekdays",3,f)},s.weekdaysMin=function(f){return c(l(),"weekdaysMin","weekdays",2,f)}}}))})(gi)),gi.exports}var HC=GC();const YC=Yt(HC);var Ai={exports:{}},zC=Ai.exports,Cl;function WC(){return Cl||(Cl=1,(function(n,e){(function(t,i){n.exports=i()})(zC,(function(){return function(t,i){i.prototype.weekday=function(s){var o=this.$locale().weekStart||0,a=this.$W,c=(a<o?a+7:a)-o;return this.$utils().u(s)?c:this.subtract(c,"day").add(s,"day")}}}))})(Ai)),Ai.exports}var jC=WC();const KC=Yt(jC);var yi={exports:{}},$C=yi.exports,El;function XC(){return El||(El=1,(function(n,e){(function(t,i){n.exports=i()})($C,(function(){var t="week",i="year";return function(s,o,a){var c=o.prototype;c.week=function(l){if(l===void 0&&(l=null),l!==null)return this.add(7*(l-this.week()),"day");var d=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var h=a(this).startOf(i).add(1,i).date(d),f=a(this).endOf(t);if(h.isBefore(f))return 1}var p=a(this).startOf(i).date(d).startOf(t).subtract(1,"millisecond"),u=this.diff(p,t,!0);return u<0?a(this).startOf("week").week():Math.ceil(u)},c.weeks=function(l){return l===void 0&&(l=null),this.week(l)}}}))})(yi)),yi.exports}var qC=XC();const JC=Yt(qC);var Ci={exports:{}},ZC=Ci.exports,bl;function eE(){return bl||(bl=1,(function(n,e){(function(t,i){n.exports=i()})(ZC,(function(){var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},i=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,s=/\d/,o=/\d\d/,a=/\d\d?/,c=/\d*[^-_:/,()\s\d]+/,l={},d=function(A){return(A=+A)+(A>68?1900:2e3)},h=function(A){return function(b){this[A]=+b}},f=[/[+-]\d\d:?(\d\d)?|Z/,function(A){(this.zone||(this.zone={})).offset=(function(b){if(!b||b==="Z")return 0;var I=b.match(/([+-]|\d\d)/g),k=60*I[1]+(+I[2]||0);return k===0?0:I[0]==="+"?-k:k})(A)}],p=function(A){var b=l[A];return b&&(b.indexOf?b:b.s.concat(b.f))},u=function(A,b){var I,k=l.meridiem;if(k){for(var P=1;P<=24;P+=1)if(A.indexOf(k(P,0,b))>-1){I=P>12;break}}else I=A===(b?"pm":"PM");return I},m={A:[c,function(A){this.afternoon=u(A,!1)}],a:[c,function(A){this.afternoon=u(A,!0)}],Q:[s,function(A){this.month=3*(A-1)+1}],S:[s,function(A){this.milliseconds=100*+A}],SS:[o,function(A){this.milliseconds=10*+A}],SSS:[/\d{3}/,function(A){this.milliseconds=+A}],s:[a,h("seconds")],ss:[a,h("seconds")],m:[a,h("minutes")],mm:[a,h("minutes")],H:[a,h("hours")],h:[a,h("hours")],HH:[a,h("hours")],hh:[a,h("hours")],D:[a,h("day")],DD:[o,h("day")],Do:[c,function(A){var b=l.ordinal,I=A.match(/\d+/);if(this.day=I[0],b)for(var k=1;k<=31;k+=1)b(k).replace(/\[|\]/g,"")===A&&(this.day=k)}],w:[a,h("week")],ww:[o,h("week")],M:[a,h("month")],MM:[o,h("month")],MMM:[c,function(A){var b=p("months"),I=(p("monthsShort")||b.map((function(k){return k.slice(0,3)}))).indexOf(A)+1;if(I<1)throw new Error;this.month=I%12||I}],MMMM:[c,function(A){var b=p("months").indexOf(A)+1;if(b<1)throw new Error;this.month=b%12||b}],Y:[/[+-]?\d+/,h("year")],YY:[o,function(A){this.year=d(A)}],YYYY:[/\d{4}/,h("year")],Z:f,ZZ:f};function C(A){var b,I;b=A,I=l&&l.formats;for(var k=(A=b.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(w,S,L){var V=L&&L.toUpperCase();return S||I[L]||t[L]||I[V].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(M,E,y){return E||y.slice(1)}))}))).match(i),P=k.length,R=0;R<P;R+=1){var T=k[R],B=m[T],g=B&&B[0],N=B&&B[1];k[R]=N?{regex:g,parser:N}:T.replace(/^\[|\]$/g,"")}return function(w){for(var S={},L=0,V=0;L<P;L+=1){var M=k[L];if(typeof M=="string")V+=M.length;else{var E=M.regex,y=M.parser,v=w.slice(V),D=E.exec(v)[0];y.call(S,D),w=w.replace(D,"")}}return(function(F){var Q=F.afternoon;if(Q!==void 0){var O=F.hours;Q?O<12&&(F.hours+=12):O===12&&(F.hours=0),delete F.afternoon}})(S),S}}return function(A,b,I){I.p.customParseFormat=!0,A&&A.parseTwoDigitYear&&(d=A.parseTwoDigitYear);var k=b.prototype,P=k.parse;k.parse=function(R){var T=R.date,B=R.utc,g=R.args;this.$u=B;var N=g[1];if(typeof N=="string"){var w=g[2]===!0,S=g[3]===!0,L=w||S,V=g[2];S&&(V=g[2]),l=this.$locale(),!w&&V&&(l=I.Ls[V]),this.$d=(function(v,D,F,Q){try{if(["x","X"].indexOf(D)>-1)return new Date((D==="X"?1e3:1)*v);var O=C(D)(v),x=O.year,U=O.month,H=O.day,j=O.hours,X=O.minutes,Z=O.seconds,re=O.milliseconds,se=O.zone,oe=O.week,ge=new Date,ve=H||(x||U?1:ge.getDate()),Ce=x||ge.getFullYear(),Be=0;x&&!U||(Be=U>0?U-1:ge.getMonth());var Te,_e=j||0,z=X||0,Y=Z||0,$=re||0;return se?new Date(Date.UTC(Ce,Be,ve,_e,z,Y,$+60*se.offset*1e3)):F?new Date(Date.UTC(Ce,Be,ve,_e,z,Y,$)):(Te=new Date(Ce,Be,ve,_e,z,Y,$),oe&&(Te=Q(Te).week(oe).toDate()),Te)}catch{return new Date("")}})(T,N,B,I),this.init(),V&&V!==!0&&(this.$L=this.locale(V).$L),L&&T!=this.format(N)&&(this.$d=new Date("")),l={}}else if(N instanceof Array)for(var M=N.length,E=1;E<=M;E+=1){g[1]=N[E-1];var y=I.apply(this,g);if(y.isValid()){this.$d=y.$d,this.$L=y.$L,this.init();break}E===M&&(this.$d=new Date(""))}else P.call(this,R)}}}))})(Ci)),Ci.exports}var tE=eE();const nE=Yt(tE),iE={class:"setting-panel"},sE={class:"tabs-header"},oE={class:"tab-content"},rE={key:0,class:"section"},aE={class:"setting-item"},lE={class:"setting-item"},cE={class:"setting-item"},dE={key:1,class:"section"},uE={class:"tabs-header",style:{"margin-bottom":"8px"}},hE={key:0},fE={class:"setting-item column"},pE={class:"setting-item column"},mE={class:"setting-item"},gE={key:1},AE={class:"setting-item column"},yE={class:"setting-item column",style:{"margin-top":"12px","border-top":"1px solid rgba(255,255,255,0.1)","padding-top":"8px"}},CE={class:"search-box"},EE={key:2,class:"section"},bE={class:"setting-item"},wE={key:0,class:"setting-item column"},vE={class:"sub-label"},IE={class:"setting-item"},BE={class:"setting-item"},xE={class:"setting-item column"},SE={class:"setting-item column"},TE={class:"sub-label"},ME={class:"setting-item column"},DE={class:"sub-label"},kE={class:"setting-item column"},PE={class:"sub-label"},FE={class:"setting-item column"},NE={style:{display:"flex",gap:"8px","margin-bottom":"8px"}},RE=["onClick","title"],LE={style:{display:"flex",gap:"8px","align-items":"center"}},OE={key:3,class:"section"},UE={class:"setting-item"},_E={class:"setting-item column"},xn=ye(r.defineComponent({__name:"LeitingSetting",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean,default:!1},tiandituToken:{type:String,default:""},initialConfig:{type:Object,default:()=>({})}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){Ke.locale("zh-cn"),Ke.extend(YC),Ke.extend(KC),Ke.extend(JC),Ke.extend(nE);const t=ie.Switch,i=ie.Radio.Group,s=ie.Radio,o=ie.Input,a=ie.Slider,c=ie.Select,l=ie.Select.Option,d=ie.DatePicker,h=n,f=e,p=r.inject("leitingMethods"),u=r.computed({get:()=>h.open!==void 0?h.open:h.visible,set:E=>{f("update:visible",E),f("update:open",E)}}),m=r.ref("GIS"),C=r.reactive({globe:!1,terrain:!1,depthTest:!1}),A=r.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"}),b=r.reactive({shadows:!1,shadowDarkness:.7,environmentMap:!1,ambientOcclusion:!1,time:Ke("2025-06-22 10:00"),brightness:1.5,contrast:1,saturation:1,backgroundColor:"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)"}),I=r.reactive({collision:!1,habit:0}),k=E=>{E&&(E.globe!==void 0&&(C.globe=E.globe),E.terrain!==void 0&&(C.terrain=E.terrain),E.depthTest!==void 0&&(C.depthTest=E.depthTest),E.mapProvider!==void 0&&(A.provider=E.mapProvider),E.tiandituLayerType!==void 0&&(A.tianditu.layerType=E.tiandituLayerType),E.tiandituShowLabel!==void 0&&(A.tianditu.showLabel=E.tiandituShowLabel),E.arcgisUrl!==void 0&&(A.arcgis.url=E.arcgisUrl),E.shadows!==void 0&&(b.shadows=E.shadows),E.shadowDarkness!==void 0&&(b.shadowDarkness=E.shadowDarkness),E.environmentMap!==void 0&&(b.environmentMap=E.environmentMap),E.ambientOcclusion!==void 0&&(b.ambientOcclusion=E.ambientOcclusion),E.time!==void 0&&(typeof E.time=="number"?b.time=Ke().startOf("day").add(E.time,"hour"):b.time=Ke(E.time)),E.brightness!==void 0&&(b.brightness=E.brightness),E.contrast!==void 0&&(b.contrast=E.contrast),E.saturation!==void 0&&(b.saturation=E.saturation),E.backgroundColor!==void 0&&(b.backgroundColor=E.backgroundColor),E.collision!==void 0&&(I.collision=E.collision),E.mouseHabit!==void 0&&(I.habit=E.mouseHabit))};r.watch(()=>h.initialConfig,E=>{k(E)},{deep:!0,immediate:!0});const P=["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%)"],R=[{label:"全球影像地图服务(墨卡托)",value:"img_w"},{label:"全球影像地图服务(经纬度)",value:"img_c"},{label:"全球矢量地图服务(墨卡托)",value:"vec_w"},{label:"全球矢量地图服务(经纬度)",value:"vec_c"},{label:"全球地形晕渲服务(墨卡托)",value:"ter_w"},{label:"全球地形晕渲服务(经纬度)",value:"ter_c"}],T=()=>{const E=A.provider,y={};E==="tianditu"?(y.token=A.tianditu.token,y.layerType=A.tianditu.layerType,y.showAnnotation=A.tianditu.showLabel):E==="arcgis"&&(y.url=A.arcgis.url),p.value?.changeBaseMap?.(E,y)};r.watch(()=>A.provider,T),r.watch(()=>A.tianditu.layerType,T),r.watch(()=>A.tianditu.showLabel,T),r.watch(()=>A.tianditu.token,_n(T,1e3)),r.watch(()=>A.arcgis.url,_n(T,1e3)),r.onMounted(()=>{h.tiandituToken&&(A.tianditu.token=h.tiandituToken)}),r.watch(()=>C.globe,E=>p.value?.setGlobeEnvironmentVisible?.(E)),r.watch(()=>C.terrain,E=>p.value?.setTerrainEnable?.(E)),r.watch(()=>C.depthTest,E=>p.value?.setDepthTestEnable?.(E)),r.watch(()=>p?.value,E=>{if(E){if(E.getConfigure=()=>({globe:C.globe,terrain:C.terrain,depthTest:C.depthTest,mapProvider:A.provider,tiandituLayerType:A.tianditu.layerType,tiandituShowLabel:A.tianditu.showLabel,arcgisUrl:A.arcgis.url,shadows:b.shadows,shadowDarkness:b.shadowDarkness,environmentMap:b.environmentMap,ambientOcclusion:b.ambientOcclusion,time:Ke.isDayjs(b.time)?b.time.format("YYYY-MM-DD HH:mm"):b.time,brightness:b.brightness,contrast:b.contrast,saturation:b.saturation,backgroundColor:b.backgroundColor,collision:I.collision,mouseHabit:I.habit}),E.setConfigure=y=>{k(y)},E.setBackgroundColor&&b.backgroundColor&&E.setBackgroundColor(b.backgroundColor),E.setGlobeEnvironmentVisible&&E.setGlobeEnvironmentVisible(C.globe),E.setShadowsEnable&&E.setShadowsEnable(b.shadows),E.setShadowDarkness&&E.setShadowDarkness(b.shadowDarkness),E.setEnvironmentMapEnable&&E.setEnvironmentMapEnable(b.environmentMap),E.setAmbientOcclusion&&E.setAmbientOcclusion(b.ambientOcclusion),E.setTime){const y=Ke.isDayjs(b.time)?b.time.toDate():new Date;E.setTime(y)}E.setModelBrightness&&E.setModelBrightness(b.brightness),E.setCollisionDetection&&E.setCollisionDetection(I.collision),E.setMouseHabit&&E.setMouseHabit(I.habit),E.changeBaseMap&&A.baseMap&&E.changeBaseMap(A.baseMap,{token:A.tianditu.token,layerType:A.tianditu.layerType,showAnnotation:A.tianditu.showLabel,url:A.arcgis.url})}},{immediate:!0});const B=r.computed({get:()=>{const E=b.backgroundColor;return/^#[0-9A-Fa-f]{6}$/.test(E)?E:"#ffffff"},set:E=>{b.backgroundColor=E}}),g=r.ref(""),N=r.ref(!1),w=r.ref([]);r.watch(()=>C.globe,E=>p.value?.setGlobeEnvironmentVisible?.(E)),r.watch(()=>C.terrain,E=>p.value?.setTerrainEnable?.(E)),r.watch(()=>A.baseMap,E=>{p.value?.changeBaseMap?.(E,{token:h.tiandituToken})}),r.watch(()=>b.shadows,E=>p.value?.setShadowsEnable?.(E)),r.watch(()=>b.shadowDarkness,E=>p.value?.setShadowDarkness?.(E)),r.watch(()=>b.environmentMap,E=>p.value?.setEnvironmentMapEnable?.(E)),r.watch(()=>b.ambientOcclusion,E=>p.value?.setAmbientOcclusion?.(E)),r.watch(()=>b.time,E=>{const y=Ke.isDayjs(E)?E.toDate():new Date;p.value?.setTime?.(y)}),r.watch(()=>[b.brightness,b.contrast,b.saturation],([E,y,v])=>{const D=p.value;D?.setModelColorAdjustment?D.setModelColorAdjustment({brightness:E,contrast:y,saturation:v}):D?.setModelBrightness?.(E)}),r.watch(()=>b.backgroundColor,E=>{if(p.value?.setBackgroundColor)p.value.setBackgroundColor(E);else{const y=document.querySelector(".cesium-viewer");y&&(y.style.background=E)}}),r.watch(()=>I.collision,E=>p.value?.setCollisionDetection?.(E)),r.watch(()=>I.habit,E=>p.value?.setMouseHabit?.(E));const S=E=>{if(E?.pois&&Array.isArray(E.pois)&&E.pois.length>0){const y=E.pois[0],v=y.lonlat.split(/[, ]/).map(Number);if(v.length>=2&&!isNaN(v[0])&&!isNaN(v[1]))return{name:y.name,lon:v[0],lat:v[1],raw:y}}if(E?.area&&E.area.lonlat){const y=E.area,v=y.lonlat.split(/[, ]/).map(Number);if(v.length>=2&&!isNaN(v[0])&&!isNaN(v[1]))return{name:y.name,lon:v[0],lat:v[1],raw:y}}return null},V=_n(async()=>{const E=(g.value||"").trim();if(!E)return;const y=h.tiandituToken||"c25f14fb6bd4397cf8fe45144ff768d6";N.value=!0,w.value=[];try{if(p.value?.searchLocation){const v=await p.value.searchLocation(E,y),D=S(v);D&&(w.value=[D],ce.success(`找到:${D.name||""}`),p.value.flyToLonLatHeight(D.lon,D.lat,5e3))}else{const D=`https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(JSON.stringify({keyWord:E,level:12,mapBound:"-180,-90,180,90",queryType:1,start:0,count:10}))}&type=query&tk=${encodeURIComponent(y)}`,F=await fetch(D);if(!F.ok)throw new Error(`HTTP ${F.status}`);const Q=await F.json(),O=S(Q);O&&(w.value=[O],ce.success(`找到:${O.name||""}`),p.value?.flyToLonLatHeight?.(O.lon,O.lat,5e3))}}catch(v){console.error("tianditu search error",v)}finally{N.value=!1}},800);r.watch(g,()=>{V()});const M=()=>{u.value=!1,f("close")};return r.onMounted(()=>{}),(E,y)=>(r.openBlock(),r.createBlock(Le,{visible:u.value,title:"设置","full-height":n.fullHeight,onClose:M,"onUpdate:visible":y[26]||(y[26]=v=>u.value=v)},{default:r.withCtx(()=>[r.createElementVNode("div",iE,[r.createElementVNode("div",sE,[r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:m.value==="GIS"}]),onClick:y[0]||(y[0]=v=>m.value="GIS")},"GIS",2),r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:m.value==="MAP"}]),onClick:y[1]||(y[1]=v=>m.value="MAP")},"地图",2),r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:m.value==="RENDER"}]),onClick:y[2]||(y[2]=v=>m.value="RENDER")},"渲染",2),r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:m.value==="MOUSE"}]),onClick:y[3]||(y[3]=v=>m.value="MOUSE")},"鼠标",2)]),r.createElementVNode("div",oE,[m.value==="GIS"?(r.openBlock(),r.createElementBlock("div",rE,[r.createElementVNode("div",aE,[y[27]||(y[27]=r.createElementVNode("span",null,"地球 (含大气/日月/星空)",-1)),r.createVNode(r.unref(t),{checked:C.globe,"onUpdate:checked":y[4]||(y[4]=v=>C.globe=v),size:"small"},null,8,["checked"])]),r.createElementVNode("div",lE,[y[28]||(y[28]=r.createElementVNode("span",null,"地形 (高程)",-1)),r.createVNode(r.unref(t),{checked:C.terrain,"onUpdate:checked":y[5]||(y[5]=v=>C.terrain=v),size:"small"},null,8,["checked"])]),r.createElementVNode("div",cE,[y[29]||(y[29]=r.createElementVNode("span",null,"地形遮挡",-1)),r.createVNode(r.unref(t),{checked:C.depthTest,"onUpdate:checked":y[6]||(y[6]=v=>C.depthTest=v),size:"small"},null,8,["checked"])])])):r.createCommentVNode("",!0),m.value==="MAP"?(r.openBlock(),r.createElementBlock("div",dE,[r.createElementVNode("div",uE,[r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:A.provider==="tianditu"}]),onClick:y[7]||(y[7]=v=>A.provider="tianditu")},"天地图",2),r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:A.provider==="arcgis"}]),onClick:y[8]||(y[8]=v=>A.provider="arcgis")},"ArcGIS",2)]),A.provider==="tianditu"?(r.openBlock(),r.createElementBlock("div",hE,[r.createElementVNode("div",fE,[y[30]||(y[30]=r.createElementVNode("div",{class:"sub-label"},"Token",-1)),r.createVNode(r.unref(o),{value:A.tianditu.token,"onUpdate:value":y[9]||(y[9]=v=>A.tianditu.token=v),size:"small",placeholder:"输入天地图Token"},null,8,["value"])]),r.createElementVNode("div",pE,[y[31]||(y[31]=r.createElementVNode("div",{class:"sub-label"},"地图风格",-1)),r.createVNode(r.unref(c),{value:A.tianditu.layerType,"onUpdate:value":y[10]||(y[10]=v=>A.tianditu.layerType=v),size:"small",style:{width:"100%"}},{default:r.withCtx(()=>[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(R,v=>r.createVNode(r.unref(l),{key:v.value,value:v.value},{default:r.withCtx(()=>[r.createTextVNode(r.toDisplayString(v.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"])]),r.createElementVNode("div",mE,[y[32]||(y[32]=r.createElementVNode("span",null,"叠加注记",-1)),r.createVNode(r.unref(t),{checked:A.tianditu.showLabel,"onUpdate:checked":y[11]||(y[11]=v=>A.tianditu.showLabel=v),size:"small"},null,8,["checked"])])])):r.createCommentVNode("",!0),A.provider==="arcgis"?(r.openBlock(),r.createElementBlock("div",gE,[r.createElementVNode("div",AE,[y[33]||(y[33]=r.createElementVNode("div",{class:"sub-label"},"服务地址",-1)),r.createVNode(r.unref(o),{value:A.arcgis.url,"onUpdate:value":y[12]||(y[12]=v=>A.arcgis.url=v),size:"small",placeholder:"输入ArcGIS MapServer地址"},null,8,["value"])])])):r.createCommentVNode("",!0),r.createElementVNode("div",yE,[y[34]||(y[34]=r.createElementVNode("div",{class:"sub-label"},"位置搜索 (天地图)",-1)),r.createElementVNode("div",CE,[r.createVNode(r.unref(o),{value:g.value,"onUpdate:value":y[13]||(y[13]=v=>g.value=v),placeholder:"输入地名搜索",size:"small","allow-clear":""},null,8,["value"])])])])):r.createCommentVNode("",!0),m.value==="RENDER"?(r.openBlock(),r.createElementBlock("div",EE,[r.createElementVNode("div",bE,[y[35]||(y[35]=r.createElementVNode("span",null,"阴影",-1)),r.createVNode(r.unref(t),{checked:b.shadows,"onUpdate:checked":y[14]||(y[14]=v=>b.shadows=v),size:"small"},null,8,["checked"])]),b.shadows?(r.openBlock(),r.createElementBlock("div",wE,[r.createElementVNode("div",vE,"阴影暗度 ("+r.toDisplayString(b.shadowDarkness.toFixed(2))+")",1),r.createVNode(r.unref(a),{value:b.shadowDarkness,"onUpdate:value":y[15]||(y[15]=v=>b.shadowDarkness=v),min:0,max:1,step:.05,size:"small"},null,8,["value"])])):r.createCommentVNode("",!0),r.createElementVNode("div",IE,[y[36]||(y[36]=r.createElementVNode("span",null,"环境贴图 (HDR)",-1)),r.createVNode(r.unref(t),{checked:b.environmentMap,"onUpdate:checked":y[16]||(y[16]=v=>b.environmentMap=v),size:"small"},null,8,["checked"])]),r.createElementVNode("div",BE,[y[37]||(y[37]=r.createElementVNode("span",null,"环境光遮蔽 (AO)",-1)),r.createVNode(r.unref(t),{checked:b.ambientOcclusion,"onUpdate:checked":y[17]||(y[17]=v=>b.ambientOcclusion=v),size:"small"},null,8,["checked"])]),r.createElementVNode("div",xE,[y[38]||(y[38]=r.createElementVNode("div",{class:"sub-label"},"日期时间",-1)),r.createVNode(r.unref(d),{value:b.time,"onUpdate:value":y[18]||(y[18]=v=>b.time=v),"show-time":"",locale:r.unref(pl),format:"YYYY-MM-DD HH:mm",size:"small",style:{width:"100%"}},null,8,["value","locale"])]),r.createElementVNode("div",SE,[r.createElementVNode("div",TE,"模型亮度 ("+r.toDisplayString(b.brightness.toFixed(1))+")",1),r.createVNode(r.unref(a),{value:b.brightness,"onUpdate:value":y[19]||(y[19]=v=>b.brightness=v),min:0,max:5,step:.1,size:"small"},null,8,["value"])]),r.createElementVNode("div",ME,[r.createElementVNode("div",DE,"模型对比度 ("+r.toDisplayString(b.contrast.toFixed(1))+")",1),r.createVNode(r.unref(a),{value:b.contrast,"onUpdate:value":y[20]||(y[20]=v=>b.contrast=v),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),r.createElementVNode("div",kE,[r.createElementVNode("div",PE,"模型饱和度 ("+r.toDisplayString(b.saturation.toFixed(1))+")",1),r.createVNode(r.unref(a),{value:b.saturation,"onUpdate:value":y[21]||(y[21]=v=>b.saturation=v),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),r.createElementVNode("div",FE,[y[39]||(y[39]=r.createElementVNode("div",{class:"sub-label"},"背景颜色",-1)),r.createElementVNode("div",NE,[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(P,(v,D)=>r.createElementVNode("div",{key:D,style:r.normalizeStyle({background:v,width:"32px",height:"24px",borderRadius:"2px",cursor:"pointer",border:"1px solid #d9d9d9",flexShrink:0}),onClick:F=>b.backgroundColor=v,title:"预设 "+(D+1)},null,12,RE)),64))]),r.createElementVNode("div",LE,[r.withDirectives(r.createElementVNode("input",{type:"color","onUpdate:modelValue":y[22]||(y[22]=v=>B.value=v),style:{width:"40px",height:"24px",padding:"0",border:"1px solid #d9d9d9"}},null,512),[[r.vModelText,B.value]]),r.createVNode(r.unref(o),{value:b.backgroundColor,"onUpdate:value":y[23]||(y[23]=v=>b.backgroundColor=v),size:"small",style:{flex:"1"},placeholder:"CSS 颜色值"},null,8,["value"])])])])):r.createCommentVNode("",!0),m.value==="MOUSE"?(r.openBlock(),r.createElementBlock("div",OE,[r.createElementVNode("div",UE,[y[40]||(y[40]=r.createElementVNode("span",null,"碰撞检测",-1)),r.createVNode(r.unref(t),{checked:I.collision,"onUpdate:checked":y[24]||(y[24]=v=>I.collision=v),size:"small"},null,8,["checked"])]),r.createElementVNode("div",_E,[y[43]||(y[43]=r.createElementVNode("div",{class:"sub-label"},"操作习惯",-1)),r.createVNode(r.unref(i),{value:I.habit,"onUpdate:value":y[25]||(y[25]=v=>I.habit=v),size:"small"},{default:r.withCtx(()=>[r.createVNode(r.unref(s),{value:0},{default:r.withCtx(()=>[...y[41]||(y[41]=[r.createTextVNode("默认 (中键旋转)",-1)])]),_:1}),r.createVNode(r.unref(s),{value:1},{default:r.withCtx(()=>[...y[42]||(y[42]=[r.createTextVNode("习惯1 (左键旋转)",-1)])]),_:1})]),_:1},8,["value"])])])):r.createCommentVNode("",!0)])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-79494025"]]),QE={class:"cad-layer-panel"},VE={class:"layer-list-container"},GE={class:"list-header"},HE={class:"col-check"},YE=["checked"],zE={class:"list-body"},WE={class:"col-check"},jE=["checked","onChange"],KE={class:"col-index"},$E=["title"],XE={class:"col-color"},qE=["value"],JE={key:0,class:"empty-text"},ZE=ye(r.defineComponent({__name:"LeitingCadLayer",props:{visible:{type:Boolean,default:!1},currentModelId:{type:String,default:""}},emits:["update:visible","handleCloseCardByCadCard"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods",r.ref({})),o=r.ref(""),a=r.ref([]),c=()=>{s.value&&s.value.getDxfModels&&(a.value=s.value.getDxfModels().map(I=>({modelId:I.modelId,modelName:I.modelName}))||[])},l=r.computed(()=>a.value.map(I=>({value:I.modelId,label:I.modelName}))),d=r.ref([]),h=r.ref([]),f=r.computed(()=>d.value.length>0&&h.value.length===d.value.length),p=({modelId:I})=>{if(d.value=[],h.value=[],s.value&&s.value.getDxfLayers){const k=s.value.getDxfLayers({modelId:I});k&&Object.keys(k).forEach((P,R)=>{k[P].length&&(d.value.push({index:R+1,layerName:P,layerColor:k[P][0].color||"#ffffff",key:P}),h.value.push(P))})}},u=I=>{o.value=I,p({modelId:I})},m=I=>{I.target.checked?h.value=d.value.map(P=>P.key):h.value=[],A()},C=(I,k)=>{k.target.checked?h.value.includes(I)||h.value.push(I):h.value=h.value.filter(R=>R!==I),A()},A=()=>{if(s.value&&s.value.showDxfLayer&&(s.value.showDxfLayer({modelId:o.value,show:!0,layers:h.value}),s.value.getDxfLayers)){const I=s.value.getDxfLayers({modelId:o.value});if(I){const k=Object.keys(I).filter(P=>!h.value.includes(P));s.value.showDxfLayer({modelId:o.value,show:!1,layers:k})}}},b=()=>{i("update:visible",!1),i("handleCloseCardByCadCard")};return r.watch(()=>t.visible,I=>{I&&(c(),t.currentModelId?(o.value=t.currentModelId,p({modelId:t.currentModelId})):l.value.length>0&&(o.value=l.value[0]?.value,p({modelId:o.value})))}),r.watch(()=>t.currentModelId,I=>{I&&t.visible&&(o.value=I,p({modelId:I}))}),(I,k)=>(r.openBlock(),r.createBlock(Le,{visible:n.visible,title:"CAD图层","onUpdate:visible":k[3]||(k[3]=P=>I.$emit("update:visible",P)),onClose:b,width:360,align:"right","initial-position":{x:0,y:60}},{"header-extra":r.withCtx(()=>[r.createElementVNode("div",{class:"header-select-container",onMousedown:k[2]||(k[2]=r.withModifiers(()=>{},["stop"]))},[k[4]||(k[4]=r.createElementVNode("span",{class:"header-label"},"图纸:",-1)),r.createVNode(r.unref(ie.Select),{value:o.value,"onUpdate:value":k[0]||(k[0]=P=>o.value=P),options:l.value,onChange:k[1]||(k[1]=P=>u(P)),placeholder:"选择模型",style:{width:"140px"},bordered:!1,class:"custom-header-select",popupClassName:"leiting-select-dropdown",size:"small"},null,8,["value","options"])],32)]),default:r.withCtx(()=>[r.createElementVNode("div",QE,[r.createElementVNode("div",VE,[r.createElementVNode("div",GE,[r.createElementVNode("div",HE,[r.createElementVNode("input",{type:"checkbox",checked:f.value,onChange:m},null,40,YE)]),k[5]||(k[5]=r.createElementVNode("div",{class:"col-index"},"序号",-1)),k[6]||(k[6]=r.createElementVNode("div",{class:"col-name"},"图层名称",-1)),k[7]||(k[7]=r.createElementVNode("div",{class:"col-color"},"颜色",-1))]),r.createElementVNode("div",zE,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(d.value,P=>(r.openBlock(),r.createElementBlock("div",{key:P.key,class:"list-item"},[r.createElementVNode("div",WE,[r.createElementVNode("input",{type:"checkbox",checked:h.value.includes(P.key),onChange:R=>C(P.key,R)},null,40,jE)]),r.createElementVNode("div",KE,r.toDisplayString(P.index),1),r.createElementVNode("div",{class:"col-name",title:P.layerName},r.toDisplayString(P.layerName),9,$E),r.createElementVNode("div",XE,[r.createElementVNode("input",{type:"color",value:P.layerColor,disabled:""},null,8,qE)])]))),128)),d.value.length===0?(r.openBlock(),r.createElementBlock("div",JE,"暂无数据")):r.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-a4db4977"]]),eb={class:"adjust-panel"},tb={class:"control-panel"},nb={class:"form-item"},ib={class:"radio-group"},sb={class:"form-item"},ob=["title"],rb={class:"param-row"},ab=["step"],lb={class:"param-row"},cb=["step"],db={class:"param-row"},ub=["step"],hb={class:"param-row"},fb=["step"],pb={class:"param-row"},mb=["step"],gb={class:"param-row"},Ab=["step"],yb={class:"param-row"},Cb=["step"],Eb={class:"button-grid"},bb={key:1,class:"pick-mode-ui"},wb=["onClick"],vb=["checked"],Ib={style:{"font-size":"12px",color:"#aaa","padding-left":"10px"}},Bb={class:"param-row"},xb={style:{width:"40px"}},Sb=["onUpdate:modelValue"],Tb={class:"param-row"},Mb={style:{width:"40px"}},Db=["onUpdate:modelValue"],kb={class:"param-row"},Pb={style:{width:"40px"}},Fb=["onUpdate:modelValue"],Nb={class:"list-panel"},Rb={class:"list-header"},Lb={class:"col-check"},Ob=["checked"],Ub={class:"list-body"},_b={class:"col-check"},Qb=["onUpdate:modelValue"],Vb={class:"col-index"},Gb=["title"],Hb={class:"col-main"},Yb=["checked","onChange"],zb={key:0,style:{padding:"10px","text-align":"center",color:"#999"}},Wb=ye(r.defineComponent({__name:"LeitingCadPosition",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","handleSavingByCadCard","clearBimPointList","save"],setup(n,{expose:e,emit:t}){const i=n,s=t,o=r.inject("leitingMethods"),a=r.ref([]),c=r.ref(""),l=r.computed(()=>a.value.length>0&&a.value.every(y=>y.selected)),d=r.ref("param"),h=r.ref("bimPoint1"),f=r.ref(null),p=r.ref("bimPoint1"),u=r.reactive({bimPoint1:{longitude:void 0,latitude:void 0,type:"CAD标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程",height:void 0},bimPoint2:{longitude:void 0,latitude:void 0,type:"地图标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程",height:void 0}}),m=r.ref(1e-6),C=r.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=r.computed(()=>{const y=a.value.find(v=>v.modelId===c.value);return y?y.modelName:""}),b=()=>{s("update:visible",!1)},I=()=>(!f.value&&o?.value?.getViewer&&o?.value?.getCesium&&(f.value=new fl(o.value.getViewer(),o.value.getCesium())),f.value),k=()=>{I()?.clearMarkers(),u.bimPoint1.longitude=void 0,u.bimPoint1.latitude=void 0,u.bimPoint1.height=void 0,u.bimPoint2.longitude=void 0,u.bimPoint2.latitude=void 0,u.bimPoint2.height=void 0},P=y=>{const v=h.value,D=u[v];if(D){D.longitude=y.longitude,D.latitude=y.latitude,D.height=y.height;const F=v==="bimPoint1"?"BIM":"MAP";I()?.addMarker(F,y),ce.success(`${D.type}已添加`)}},R=()=>{I()?.registerPickHandler(y=>{P(y)})},T=()=>{I()?.destroyPickHandler()},B=y=>{d.value=y,y!=="pick"&&s("clearBimPointList")};r.watch(()=>d.value,y=>{y==="pick"?R():T()}),r.onUnmounted(()=>{T()});const g=()=>{if(!o?.value?.getDxfModels)return;const y=o.value.getDxfModels();if(Array.isArray(y)?a.value=y.map(v=>({modelId:v.modelId,modelName:v.modelName,formData:v.formData||{},selected:!1,tileset:v})):a.value=[],a.value.length>0){const v=o.value.getCadModelId?o.value.getCadModelId():"";v&&a.value.find(D=>D.modelId===v)?N(v):N(a.value[0].modelId),a.value.forEach(D=>D.selected=!0)}},N=y=>{c.value=y;const v=a.value.find(D=>D.modelId===y);v&&v.formData&&Object.keys(C).forEach(D=>{v.formData[D]!==void 0&&(C[D]=v.formData[D])})},w=(y,v)=>{if(!o?.value?.adjustingModelByCad)return;const D=a.value.find(F=>F.modelId===y);D&&D.tileset&&(D.formData={...D.formData,...v},D.tileset.formData=D.formData,o.value.adjustingModelByCad({...D.formData,tileset:D.tileset}))},S=y=>{if(!c.value)return;const v=C[y];w(c.value,{[y]:v})},L=y=>{const v=a.value.filter(O=>O.selected);if(v.length===0){ce.warning("请先选择要调整的模型");return}const{distance:D,heightDistance:F,rotation:Q}=C;v.forEach(O=>{const x={...O.formData};switch(y){case"north":x.latitude+=D;break;case"south":x.latitude-=D;break;case"east":x.longitude+=D;break;case"west":x.longitude-=D;break;case"up":x.height+=F;break;case"down":x.height-=F;break;case"rotateLeft":x.totalRotation=(x.totalRotation||0)-Q;break;case"rotateRight":x.totalRotation=(x.totalRotation||0)+Q;break}O.modelId===c.value&&Object.assign(C,x),w(O.modelId,x)})},V=y=>{const v=y.target.checked;a.value.forEach(D=>D.selected=v)},M=()=>{s("handleSavingByCadCard",a.value),s("save",a.value)},E=()=>{const y=u.bimPoint1,v=u.bimPoint2;if(y.longitude===void 0||v.longitude===void 0){ce.warning("请先完成点选操作");return}const D=a.value.filter(U=>U.selected);if(D.length===0){ce.warning("请先选择要调整的模型");return}let F=0,Q=0,O=0;const x=I();if(x){const{dLon:U,dLat:H,dHeight:j}=x.calculateOffset(y,v);F=U,Q=H,O=j}else F=v.longitude-y.longitude,Q=v.latitude-y.latitude,O=v.height-y.height;D.forEach(U=>{const H={...U.formData};H.longitude+=F,H.latitude+=Q,H.height+=O,U.modelId===c.value&&Object.assign(C,H),w(U.modelId,H)}),ce.success("位置已调整")};return r.watch(()=>i.visible,y=>{y?g():(T(),k())}),r.onMounted(()=>{i.visible&&g()}),e({setBIMPointsList:({longitude:y,latitude:v,height:D})=>{u[p.value].longitude=y,u[p.value].latitude=v,u[p.value].height=D},addGltfOr3dTilesModelList:y=>{console.warn("addGltfOr3dTilesModelList is deprecated, use internal loading")}}),(y,v)=>(r.openBlock(),r.createBlock(Le,{visible:i.visible,title:"Cad校准",width:282,height:600,"onUpdate:visible":v[21]||(v[21]=D=>s("update:visible",D)),onClose:b},{default:r.withCtx(()=>[r.createElementVNode("div",eb,[r.createElementVNode("div",tb,[r.createElementVNode("div",nb,[v[22]||(v[22]=r.createElementVNode("label",null,"调整操作:",-1)),r.createElementVNode("div",ib,[r.createElementVNode("span",{class:r.normalizeClass({active:d.value==="param"}),onClick:v[0]||(v[0]=D=>B("param"))},"参数模式",2),r.createElementVNode("span",{class:r.normalizeClass({active:d.value==="pick"}),onClick:v[1]||(v[1]=D=>B("pick"))},"地图点选",2)])]),r.createElementVNode("div",sb,[v[23]||(v[23]=r.createElementVNode("label",null,"当前主模型:",-1)),r.createElementVNode("span",{class:"value",title:A.value},r.toDisplayString(A.value||"未选择"),9,ob)]),v[35]||(v[35]=r.createElementVNode("div",{class:"separator"},null,-1)),d.value==="param"?(r.openBlock(),r.createElementBlock(r.Fragment,{key:0},[v[31]||(v[31]=r.createElementVNode("div",{class:"group-header"},"当前状态",-1)),r.createElementVNode("div",rb,[v[24]||(v[24]=r.createElementVNode("label",null,"经度(东西):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[2]||(v[2]=D=>C.longitude=D),onChange:v[3]||(v[3]=D=>S("longitude")),step:m.value},null,40,ab),[[r.vModelText,C.longitude,void 0,{number:!0}]])]),r.createElementVNode("div",lb,[v[25]||(v[25]=r.createElementVNode("label",null,"纬度(南北):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[4]||(v[4]=D=>C.latitude=D),onChange:v[5]||(v[5]=D=>S("latitude")),step:m.value},null,40,cb),[[r.vModelText,C.latitude,void 0,{number:!0}]])]),r.createElementVNode("div",db,[v[26]||(v[26]=r.createElementVNode("label",null,"高度(m):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[6]||(v[6]=D=>C.height=D),onChange:v[7]||(v[7]=D=>S("height")),step:m.value},null,40,ub),[[r.vModelText,C.height,void 0,{number:!0}]])]),r.createElementVNode("div",hb,[v[27]||(v[27]=r.createElementVNode("label",null,"累计旋转(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[8]||(v[8]=D=>C.totalRotation=D),onChange:v[9]||(v[9]=D=>S("totalRotation")),step:m.value},null,40,fb),[[r.vModelText,C.totalRotation,void 0,{number:!0}]])]),v[32]||(v[32]=r.createElementVNode("div",{class:"separator"},null,-1)),v[33]||(v[33]=r.createElementVNode("div",{class:"group-header"},"调整步长",-1)),r.createElementVNode("div",pb,[v[28]||(v[28]=r.createElementVNode("label",null,"经纬步长(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[10]||(v[10]=D=>C.distance=D),step:m.value},null,8,mb),[[r.vModelText,C.distance,void 0,{number:!0}]])]),r.createElementVNode("div",gb,[v[29]||(v[29]=r.createElementVNode("label",null,"高度步长(m):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[11]||(v[11]=D=>C.heightDistance=D),step:m.value},null,8,Ab),[[r.vModelText,C.heightDistance,void 0,{number:!0}]])]),r.createElementVNode("div",yb,[v[30]||(v[30]=r.createElementVNode("label",null,"旋转步长(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[12]||(v[12]=D=>C.rotation=D),step:m.value},null,8,Cb),[[r.vModelText,C.rotation,void 0,{number:!0}]])]),r.createElementVNode("div",Eb,[r.createElementVNode("button",{onClick:v[13]||(v[13]=D=>L("rotateLeft"))},"左转"),r.createElementVNode("button",{onClick:v[14]||(v[14]=D=>L("north"))},"北移"),r.createElementVNode("button",{onClick:v[15]||(v[15]=D=>L("rotateRight"))},"右转"),r.createElementVNode("button",{onClick:v[16]||(v[16]=D=>L("west"))},"西移"),r.createElementVNode("button",{onClick:v[17]||(v[17]=D=>L("south"))},"南移"),r.createElementVNode("button",{onClick:v[18]||(v[18]=D=>L("east"))},"东移"),r.createElementVNode("button",{onClick:v[19]||(v[19]=D=>L("up"))},"上移"),r.createElementVNode("button",{onClick:v[20]||(v[20]=D=>L("down"))},"下移"),r.createElementVNode("button",{onClick:M,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):(r.openBlock(),r.createElementBlock("div",bb,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(u,(D,F)=>(r.openBlock(),r.createElementBlock("div",{key:F,class:"form-item",style:{display:"block","margin-bottom":"15px"}},[r.createElementVNode("div",{style:{"font-weight":"bold","margin-bottom":"5px",cursor:"pointer",display:"flex","align-items":"center"},onClick:Q=>h.value=F},[r.createElementVNode("input",{type:"radio",checked:h.value===F,style:{"margin-right":"5px"}},null,8,vb),r.createTextVNode(" "+r.toDisplayString(D.type)+": ",1)],8,wb),r.createElementVNode("div",Ib,[r.createElementVNode("div",Bb,[r.createElementVNode("label",xb,r.toDisplayString(D.longitudeText),1),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>D.longitude=Q,readonly:"",style:{width:"100px"}},null,8,Sb),[[r.vModelText,D.longitude,void 0,{number:!0}]])]),r.createElementVNode("div",Tb,[r.createElementVNode("label",Mb,r.toDisplayString(D.latitudeText),1),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>D.latitude=Q,readonly:"",style:{width:"100px"}},null,8,Db),[[r.vModelText,D.latitude,void 0,{number:!0}]])]),r.createElementVNode("div",kb,[r.createElementVNode("label",Pb,r.toDisplayString(D.heightText),1),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>D.height=Q,readonly:"",style:{width:"100px"}},null,8,Fb),[[r.vModelText,D.height,void 0,{number:!0}]])])])]))),128)),r.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[r.createElementVNode("button",{onClick:E,class:"primary-btn"},"应用校准"),r.createElementVNode("button",{onClick:M},"保存")]),v[34]||(v[34]=r.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[r.createElementVNode("div",null,"操作指南:"),r.createElementVNode("div",null,"1. 勾选上方 CAD 或 地图 标记点选项。"),r.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),r.createElementVNode("div",null,"3. 采集两点后,点击“应用校准”进行校准。")],-1))]))]),r.createElementVNode("div",Nb,[r.createElementVNode("div",Rb,[r.createElementVNode("div",Lb,[r.createElementVNode("input",{type:"checkbox",checked:l.value,onChange:V},null,40,Ob)]),v[36]||(v[36]=r.createElementVNode("div",{class:"col-index"},"序号",-1)),v[37]||(v[37]=r.createElementVNode("div",{class:"col-name"},"名称",-1)),v[38]||(v[38]=r.createElementVNode("div",{class:"col-main"},"主模型",-1))]),r.createElementVNode("div",Ub,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(a.value,(D,F)=>(r.openBlock(),r.createElementBlock("div",{key:D.modelId,class:r.normalizeClass(["list-item",{active:D.modelId===c.value}])},[r.createElementVNode("div",_b,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":Q=>D.selected=Q},null,8,Qb),[[r.vModelCheckbox,D.selected]])]),r.createElementVNode("div",Vb,r.toDisplayString(F+1),1),r.createElementVNode("div",{class:"col-name",title:D.modelName},r.toDisplayString(D.modelName),9,Gb),r.createElementVNode("div",Hb,[r.createElementVNode("input",{type:"radio",name:"mainModel",checked:D.modelId===c.value,onChange:Q=>N(D.modelId)},null,40,Yb)])],2))),128)),a.value.length===0?(r.openBlock(),r.createElementBlock("div",zb,"暂无数据")):r.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-e8abd49d"]]),jb={class:"annotation-content"},Kb={class:"annotation-tools"},$b={class:"annotation-controls"},Xb={class:"control-group",title:"颜色"},qb={class:"tool-item color-tool"},Jb={class:"control-group line-width-container",title:"线宽"},Zb=["onClick"],ew={class:"option-label"},tw=ye(r.defineComponent({__name:"LeitingAnnotationCard",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.ref(""),a=r.ref("#ff0000"),c=r.ref(1),l=r.ref(!1),d=r.ref(null),h=r.ref(null),f=r.ref({top:"0px",left:"0px"}),p=[{value:6,label:"粗"},{value:3,label:"中"},{value:1,label:"细"}],u=()=>s?.value?.getAnnotationInstance?s.value.getAnnotationInstance():null,m=()=>{i("update:visible",!1)},C=B=>{o.value=B;const g=u();if(g)switch(B){case"freehandLine":g.startFreehandLine();break;case"arrow":g.startArrow();break;case"straightLine":g.startStraightLine();break;case"rectangle":g.startRectangle();break;case"ellipse":g.startEllipse();break}},A=()=>{const B=u();B&&(B.setCurrentColor(a.value),B.changeColor(a.value))},b=()=>{if(!l.value&&d.value){const B=d.value.getBoundingClientRect();f.value={top:`${B.top}px`,left:`${B.right+8}px`}}l.value=!l.value},I=B=>{c.value=B,l.value=!1;const g=u();g&&(g.setCurrentWidth(B),g.changeWidth(B))},k=()=>{const B=u();B&&B.deleteSelectedEntity()},P=()=>{const B=u();B&&B.clearAll()},R=()=>{if(s?.value?.saveAnnotations){s.value.saveAnnotations();return}const B=u();B&&B.saveAnnotations()},T=B=>{const g=B.target,N=d.value&&d.value.contains(g),w=h.value&&h.value.contains(g);!N&&!w&&(l.value=!1)};return r.onMounted(()=>{document.addEventListener("click",T)}),r.onUnmounted(()=>{document.removeEventListener("click",T)}),(B,g)=>(r.openBlock(),r.createBlock(Le,{visible:t.visible,title:"标注",width:70,"min-width":70,height:480,"onUpdate:visible":g[6]||(g[6]=N=>i("update:visible",N)),onClose:m},{default:r.withCtx(()=>[r.createElementVNode("div",jb,[r.createElementVNode("div",Kb,[r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:o.value==="freehandLine"}]),onClick:g[0]||(g[0]=N=>C("freehandLine")),title:"手绘线"},[...g[7]||(g[7]=[r.createElementVNode("div",{class:"tool-icon"},"✏️",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:o.value==="arrow"}]),onClick:g[1]||(g[1]=N=>C("arrow")),title:"箭头"},[...g[8]||(g[8]=[r.createElementVNode("div",{class:"tool-icon"},"↗️",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:o.value==="straightLine"}]),onClick:g[2]||(g[2]=N=>C("straightLine")),title:"直线"},[...g[9]||(g[9]=[r.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:o.value==="rectangle"}]),onClick:g[3]||(g[3]=N=>C("rectangle")),title:"矩形"},[...g[10]||(g[10]=[r.createElementVNode("div",{class:"tool-icon"},"▭",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:o.value==="ellipse"}]),onClick:g[4]||(g[4]=N=>C("ellipse")),title:"椭圆"},[...g[11]||(g[11]=[r.createElementVNode("div",{class:"tool-icon"},"⭕",-1)])],2)]),g[13]||(g[13]=r.createElementVNode("div",{class:"separator"},null,-1)),r.createElementVNode("div",$b,[r.createElementVNode("div",Xb,[r.createElementVNode("div",qb,[r.createElementVNode("div",{class:"color-swatch",style:r.normalizeStyle({backgroundColor:a.value})},null,4),r.withDirectives(r.createElementVNode("input",{type:"color","onUpdate:modelValue":g[5]||(g[5]=N=>a.value=N),onChange:A,class:"color-input-overlay"},null,544),[[r.vModelText,a.value]])])]),r.createElementVNode("div",Jb,[r.createElementVNode("div",{ref_key:"lineWidthBtnRef",ref:d,class:"tool-item",onClick:r.withModifiers(b,["stop"])},[r.createElementVNode("div",{class:"current-width-preview",style:r.normalizeStyle({height:c.value+"px",backgroundColor:"#fff"})},null,4)],512),(r.openBlock(),r.createBlock(r.Teleport,{to:"body"},[l.value?(r.openBlock(),r.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:h,class:"line-width-dropdown",style:r.normalizeStyle(f.value)},[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(p,N=>r.createElementVNode("div",{key:N.value,class:r.normalizeClass(["line-width-option",{selected:c.value===N.value}]),onClick:r.withModifiers(w=>I(N.value),["stop"])},[r.createElementVNode("span",ew,r.toDisplayString(N.label),1),r.createElementVNode("div",{class:"line-preview",style:r.normalizeStyle({height:N.value+"px",backgroundColor:c.value===N.value?"#1890ff":"#ddd"})},null,4)],10,Zb)),64))],4)):r.createCommentVNode("",!0)]))]),g[12]||(g[12]=r.createElementVNode("div",{class:"separator"},null,-1)),r.createElementVNode("div",{class:"action-buttons"},[r.createElementVNode("button",{class:"control-btn",onClick:k,title:"删除选中"}," 🗑️ "),r.createElementVNode("button",{class:"control-btn",onClick:P,title:"清空"}," ❌ "),r.createElementVNode("button",{class:"control-btn",onClick:R,title:"保存"}," 💾 ")])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-3cfc8415"]]),nw={class:"measure-content"},iw={class:"measure-tools"},sw={key:0,class:"measure-results"},ow={class:"result-row"},rw={class:"result-value"},aw={class:"result-row"},lw={class:"result-value"},cw={class:"result-row"},dw={class:"result-value"},uw={class:"result-row"},hw={class:"result-value"},fw={key:1,class:"result-row"},pw={class:"result-value"},mw={key:2,class:"result-row"},gw={class:"result-value"},Aw={class:"measure-controls"},yw={class:"control-group",title:"单位"},Cw={class:"unit-display"},Ew=["onClick"],bw=ye(r.defineComponent({__name:"LeitingMeasurement",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods",r.ref({})),o=r.ref(null),a=r.ref(null),c=r.ref("m"),l=r.ref(!1),d=r.ref(null),h=r.ref(!1),f=r.ref({}),p=r.ref(null),u=[{label:"米 (m)",value:"m"},{label:"厘米 (cm)",value:"cm"},{label:"毫米 (mm)",value:"mm"}],m=B=>{const g=c.value;return g==="mm"?`${(B*1e3).toFixed(0)}mm`:g==="cm"?`${(B*100).toFixed(1)}cm`:`${B.toFixed(2)}m`},C=B=>B>1e6?`${(B/1e6).toFixed(2)} km²`:`${B.toFixed(2)} m²`,A=()=>{if(!o.value&&s.value?.getViewer){const B=s.value.getViewer(),g=s.value.getCesium();B&&g&&(o.value=new Ds({viewer:B,cesium:g}),o.value.setUnit(c.value),o.value.setSnapping(l.value),o.value.onMeasure=N=>{d.value=N})}},b=B=>{o.value||A(),a.value===B?(a.value=null,o.value?.stop(),s.value?.baseCompt?.enableSelection()):(a.value=B,o.value?.start(B),s.value?.baseCompt?.disableSelection())},I=B=>{c.value=B,h.value=!1},k=()=>{o.value&&(o.value.clearAll(),a.value=null,o.value.stop()),s.value?.baseCompt?.enableSelection()},P=()=>{i("update:visible",!1)},R=B=>{if(h.value){h.value=!1;return}const N=B.currentTarget.getBoundingClientRect();f.value={position:"fixed",top:`${N.top}px`,left:`${N.right+5}px`,zIndex:3e3},h.value=!0},T=B=>{h.value&&p.value&&!p.value.contains(B.target)&&(h.value=!1)};return r.onMounted(()=>{document.addEventListener("click",T),t.visible&&r.nextTick(()=>A())}),r.onUnmounted(()=>{document.removeEventListener("click",T),o.value&&o.value.destroy()}),r.watch(()=>t.visible,B=>{B?r.nextTick(()=>A()):o.value&&(o.value.stop(),a.value=null)}),r.watch(s,B=>{B&&B.getViewer&&!o.value&&t.visible&&A()}),r.watch(c,B=>{o.value&&o.value.setUnit(B)}),(B,g)=>(r.openBlock(),r.createBlock(Le,{visible:t.visible,title:"量算",width:70,"min-width":70,height:480,"onUpdate:visible":g[3]||(g[3]=N=>i("update:visible",N)),onClose:P},{default:r.withCtx(()=>[r.createElementVNode("div",nw,[r.createElementVNode("div",iw,[r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:a.value==="distance"}]),onClick:g[0]||(g[0]=N=>b("distance")),title:"距离测量"},[...g[4]||(g[4]=[r.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:a.value==="angle"}]),onClick:g[1]||(g[1]=N=>b("angle")),title:"角度测量"},[...g[5]||(g[5]=[r.createElementVNode("div",{class:"tool-icon"},"📐",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:a.value==="area"}]),onClick:g[2]||(g[2]=N=>b("area")),title:"面积测量"},[...g[6]||(g[6]=[r.createElementVNode("div",{class:"tool-icon"},"🔳",-1)])],2)]),g[15]||(g[15]=r.createElementVNode("div",{class:"separator"},null,-1)),d.value?(r.openBlock(),r.createElementBlock("div",sw,[d.value.type==="distance"?(r.openBlock(),r.createElementBlock(r.Fragment,{key:0},[r.createElementVNode("div",ow,[g[7]||(g[7]=r.createElementVNode("span",{class:"result-label"},"总长:",-1)),r.createElementVNode("span",rw,r.toDisplayString(m(d.value.dist)),1)]),r.createElementVNode("div",aw,[g[8]||(g[8]=r.createElementVNode("span",{class:"result-label",style:{color:"#ff4d4f"}},"ΔX:",-1)),r.createElementVNode("span",lw,r.toDisplayString(m(d.value.dx)),1)]),r.createElementVNode("div",cw,[g[9]||(g[9]=r.createElementVNode("span",{class:"result-label",style:{color:"#52c41a"}},"ΔY:",-1)),r.createElementVNode("span",dw,r.toDisplayString(m(d.value.dy)),1)]),r.createElementVNode("div",uw,[g[10]||(g[10]=r.createElementVNode("span",{class:"result-label",style:{color:"#1890ff"}},"ΔZ:",-1)),r.createElementVNode("span",hw,r.toDisplayString(m(d.value.dz)),1)])],64)):r.createCommentVNode("",!0),d.value.type==="angle"?(r.openBlock(),r.createElementBlock("div",fw,[g[11]||(g[11]=r.createElementVNode("span",{class:"result-label"},"角度:",-1)),r.createElementVNode("span",pw,r.toDisplayString(d.value.angle.toFixed(1))+"°",1)])):r.createCommentVNode("",!0),d.value.type==="area"?(r.openBlock(),r.createElementBlock("div",mw,[g[12]||(g[12]=r.createElementVNode("span",{class:"result-label"},"面积:",-1)),r.createElementVNode("span",gw,r.toDisplayString(C(d.value.area)),1)])):r.createCommentVNode("",!0)])):r.createCommentVNode("",!0),r.createElementVNode("div",Aw,[r.createElementVNode("div",yw,[r.createElementVNode("div",{class:"tool-item",onClick:r.withModifiers(R,["stop"])},[r.createElementVNode("div",Cw,r.toDisplayString(c.value),1)]),(r.openBlock(),r.createBlock(r.Teleport,{to:"body"},[h.value?(r.openBlock(),r.createElementBlock("div",{key:0,ref_key:"unitDropdownRef",ref:p,class:"unit-dropdown",style:r.normalizeStyle(f.value)},[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(u,N=>r.createElementVNode("div",{key:N.value,class:r.normalizeClass(["unit-option",{selected:c.value===N.value}]),onClick:r.withModifiers(w=>I(N.value),["stop"])},r.toDisplayString(N.label),11,Ew)),64))],4)):r.createCommentVNode("",!0)]))]),g[14]||(g[14]=r.createElementVNode("div",{class:"separator"},null,-1)),r.createElementVNode("div",{class:"action-buttons"},[r.createElementVNode("div",{class:"tool-item control-btn",onClick:k,title:"清空"},[...g[13]||(g[13]=[r.createElementVNode("div",{class:"tool-icon"},"🗑️",-1)])])])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-8b1e070f"]]);function wl(){const n=r.ref(!1),e=r.reactive({x:0,y:0}),t=r.ref([]),i=r.ref(null);return{visible:n,position:e,items:t,contextData:i,show:(l,d,h)=>{l instanceof MouseEvent?(l.preventDefault(),e.x=l.clientX,e.y=l.clientY):(e.x=l.x,e.y=l.y),t.value=d,i.value=h,n.value=!0},hide:()=>{n.value=!1},addItem:l=>{t.value.push(l)},removeItem:l=>{t.value=t.value.filter(d=>d.id!==l)}}}const ww=["onClick","onTouchend"],vw={class:"menu-label"},Iw={key:0,class:"menu-arrow"},Bw=ye(r.defineComponent({__name:"LeitingContextMenu",props:{visible:{type:Boolean},position:{},items:{}},emits:["update:visible","action"],setup(n,{emit:e}){const t=n,i=e,s=ui("(max-width: 767.98px), (pointer: coarse)"),o=r.computed(()=>{let l=t.position.x,d=t.position.y;if(s.value){const f=t.items.length*48;l+200>window.innerWidth-16&&(l=window.innerWidth-200-16),d+f>window.innerHeight-16&&(d=window.innerHeight-f-16),d<16&&(d=16)}return{left:l+"px",top:d+"px"}}),a=l=>{l.disabled||(l.action&&l.action(),i("action",l),i("update:visible",!1))},c=()=>{t.visible&&i("update:visible",!1)};return r.onMounted(()=>{document.addEventListener("click",c),document.addEventListener("contextmenu",l=>{l.target.closest(".leiting-context-menu")||c()})}),r.onUnmounted(()=>{document.removeEventListener("click",c)}),(l,d)=>r.withDirectives((r.openBlock(),r.createElementBlock("div",{class:r.normalizeClass(["leiting-context-menu",{"mobile-style":r.unref(s)}]),style:r.normalizeStyle(o.value),onContextmenu:d[0]||(d[0]=r.withModifiers(()=>{},["prevent"]))},[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(n.items,h=>(r.openBlock(),r.createElementBlock("div",{key:h.id,class:r.normalizeClass(["menu-item",{"menu-divided":h.divided,"menu-disabled":h.disabled}]),onClick:f=>a(h),onTouchend:r.withModifiers(f=>a(h),["prevent"])},[r.createElementVNode("span",vw,r.toDisplayString(h.label),1),h.children?(r.openBlock(),r.createElementBlock("span",Iw,"▶")):r.createCommentVNode("",!0)],42,ww))),128))],38)),[[r.vShow,n.visible]])}}),[["__scopeId","data-v-76e4924d"]]);function vl(){const{width:n,height:e}=ul(),t=ui("(pointer: coarse)"),i=r.ref(!1),s=r.ref(!1),o=r.ref(!0),a=r.ref("other"),c=r.ref("other"),l=r.ref("medium"),d=r.ref("portrait"),h=()=>{const u=navigator.userAgent.toLowerCase();i.value=n.value<768||/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(u),s.value=n.value>=768&&n.value<1024,o.value=n.value>=1024,/iphone|ipad|ipod/i.test(u)?a.value="ios":/android/i.test(u)?a.value="android":/win/i.test(u)?a.value="windows":/mac/i.test(u)?a.value="macos":/linux/i.test(u)&&(a.value="linux"),/safari/i.test(u)&&!/chrome/i.test(u)?c.value="safari":/chrome/i.test(u)?c.value="chrome":/firefox/i.test(u)?c.value="firefox":/edge/i.test(u)&&(c.value="edge"),n.value<576?l.value="small":n.value<1024?l.value="medium":l.value="large",d.value=n.value>e.value?"landscape":"portrait"},f=()=>{h()};r.onMounted(()=>{h(),window.addEventListener("resize",f),window.addEventListener("orientationchange",f)}),r.onUnmounted(()=>{window.removeEventListener("resize",f),window.removeEventListener("orientationchange",f)});const p=()=>({isMobile:i.value,isTablet:s.value,isDesktop:o.value,isTouchDevice:t.value,os:a.value,browser:c.value,screenSize:l.value,orientation:d.value});return{isMobile:r.readonly(i),isTablet:r.readonly(s),isDesktop:r.readonly(o),isTouchDevice:r.readonly(t),os:r.readonly(a),browser:r.readonly(c),screenSize:r.readonly(l),orientation:r.readonly(d),width:n,height:e,info:p}}const xw={class:"mobile-nav-root"},Sw={class:"nav-bar-container"},Tw={key:"sub-mode",class:"nav-inner sub-menu-wrapper"},Mw={class:"sub-icons-list"},Dw=["onClick"],kw=["innerHTML"],Pw={key:"main-mode",class:"nav-inner main-menu-wrapper"},Fw=["onClick"],Nw=["src","alt"],Il=ye(r.defineComponent({__name:"MobileBottomNav",props:{activeIds:{},is2d:{type:Boolean},customItems:{}},emits:["item-click","sub-item-click","clear-measure"],setup(n,{emit:e}){const t=n,i=e,s=r.ref(null),o=r.ref(null),a={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"}]},c={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=C=>c[C]||c.box,d=r.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:xe&&xe.tagName.toUpperCase()==="SCRIPT"&&xe.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:xe&&xe.tagName.toUpperCase()==="SCRIPT"&&xe.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:xe&&xe.tagName.toUpperCase()==="SCRIPT"&&xe.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:xe&&xe.tagName.toUpperCase()==="SCRIPT"&&xe.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:xe&&xe.tagName.toUpperCase()==="SCRIPT"&&xe.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"setting"}]),h=r.computed(()=>{let C=[...d.value];return t.customItems&&(C=[...C,...t.customItems]),C}),f=r.computed(()=>s.value?a[s.value.ID]||[]:[]),p=C=>{if(a[C.ID]){if(C.ID==="measure"){i("item-click",C);return}if(s.value?.ID===C.ID)m();else{s.value=C,o.value=null;const A=a[C.ID];A&&A.length>0&&(o.value=A[0]?.id??null,setTimeout(()=>{i("sub-item-click",{parent:C,sub:A[0]})},50))}}else i("item-click",C)},u=C=>{o.value=C.id,i("sub-item-click",{parent:s.value,sub:C})},m=()=>{s.value=null,o.value=null};return(C,A)=>(r.openBlock(),r.createElementBlock("div",xw,[r.createElementVNode("nav",Sw,[r.createVNode(r.Transition,{name:"nav-mode-switch",mode:"out-in"},{default:r.withCtx(()=>[s.value?(r.openBlock(),r.createElementBlock("div",Tw,[r.createElementVNode("button",{class:"nav-back-icon",onClick:m},[...A[0]||(A[0]=[r.createElementVNode("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3"},[r.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)])]),r.createElementVNode("div",Mw,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(f.value,b=>(r.openBlock(),r.createElementBlock("button",{key:b.id,class:r.normalizeClass(["sub-icon-box",{active:o.value===b.id}]),onClick:I=>u(b)},[r.createElementVNode("div",{class:"icon-svg",innerHTML:l(b.id)},null,8,kw)],10,Dw))),128))])])):(r.openBlock(),r.createElementBlock("div",Pw,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(h.value,b=>(r.openBlock(),r.createElementBlock("div",{key:b.ID,class:r.normalizeClass(["main-tab-item",{active:n.activeIds?.includes(b.ID)}]),onClick:I=>p(b)},[r.createElementVNode("img",{src:b.src,class:"tab-img",alt:b.title},null,8,Nw)],10,Fw))),128))]))]),_:1})])]))}}),[["__scopeId","data-v-975dfd4b"]]),Rw={key:1,class:"drawer-header"},Lw={class:"drawer-title"},Ow={class:"drawer-content"},Uw={key:2,class:"drawer-footer"},Ls=ye(r.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(n,{emit:e}){const t=n,i=e,s=r.ref(null);let o=0,a=0;const c=r.computed(()=>{const u={};return t.direction==="right"||t.direction==="left"?(u.width=t.width,u.height="100%"):(u.width=t.width,u.height=t.height,u.maxHeight=t.maxHeight),u}),l=u=>{o=u.touches[0]?.clientY??0,s.value&&(s.value.style.transition="none")},d=u=>{if(!s.value)return;a=(u.touches[0]?.clientY??0)-o,a>0&&(s.value.style.transform=`translateY(${a}px)`)},h=()=>{s.value&&(s.value.style.transition="transform 300ms cubic-bezier(0.4, 0, 0.2, 1)",a>100?f():s.value.style.transform="",a=0)},f=()=>{i("update:visible",!1),i("close")},p=()=>{t.closeOnOverlay&&f()};return r.watch(()=>t.visible,u=>{u?document.body.style.overflow="hidden":document.body.style.overflow=""}),(u,m)=>(r.openBlock(),r.createBlock(r.Teleport,{to:"body"},[r.createVNode(r.Transition,{name:"drawer-fade"},{default:r.withCtx(()=>[n.visible?(r.openBlock(),r.createElementBlock("div",{key:0,class:"mobile-drawer-overlay",onClick:p,onTouchmove:m[1]||(m[1]=r.withModifiers(()=>{},["prevent"]))},[r.createElementVNode("div",{class:r.normalizeClass(["mobile-drawer-panel",[`direction-${n.direction}`]]),style:r.normalizeStyle(c.value),onClick:m[0]||(m[0]=r.withModifiers(()=>{},["stop"])),ref_key:"panelRef",ref:s},[n.direction==="bottom"&&n.showHandle?(r.openBlock(),r.createElementBlock("div",{key:0,class:"drawer-handle",onTouchstart:l,onTouchmove:d,onTouchend:h},[...m[2]||(m[2]=[r.createElementVNode("div",{class:"handle-bar"},null,-1)])],32)):r.createCommentVNode("",!0),n.title||u.$slots.title?(r.openBlock(),r.createElementBlock("div",Rw,[r.renderSlot(u.$slots,"title",{},()=>[r.createElementVNode("span",Lw,r.toDisplayString(n.title),1)],!0),r.createElementVNode("button",{class:"drawer-close-btn",onClick:f},[...m[3]||(m[3]=[r.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[r.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])])):r.createCommentVNode("",!0),r.createElementVNode("div",Ow,[r.renderSlot(u.$slots,"default",{},void 0,!0)]),u.$slots.footer?(r.openBlock(),r.createElementBlock("div",Uw,[r.renderSlot(u.$slots,"footer",{},void 0,!0)])):r.createCommentVNode("",!0)],6)],32)):r.createCommentVNode("",!0)]),_:3})]))}}),[["__scopeId","data-v-5b311962"]]),_w={class:"mobile-tree-container"},Qw={class:"search-section"},Vw={class:"search-inner"},Gw=["innerHTML"],Bl=ye(r.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(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:w=>{i("update:visible",w),i("update:open",w)}}),a={key:"id",title:"name",children:"children"},c=r.ref(""),l=r.ref([]),d=r.ref([]),h=r.ref(null),f=r.ref(300),p=r.ref(!1);let u=null;r.watch(()=>t.initialCheckedKeys,w=>{w&&w.length>0&&(d.value=[...w])},{immediate:!0}),r.watch(()=>t.treeData,w=>{if(!w||w.length===0)return;const S=[],L=(E,y)=>{for(let v=0;v<E.length;v++){const D=E[v],F=D.id||D.key||D.$id,Q=D.modelId||y;Q&&(D.modelId=Q),F&&S.push(String(F)),D.children&&D.children.length>0&&L(D.children,Q)}};L(w);const V=new Set(d.value);let M=!1;S.forEach(E=>{V.has(E)||(V.add(E),M=!0)}),M&&(d.value=Array.from(V),i("check",d.value))},{immediate:!0,deep:!0});const m=(w,S)=>{const L=[],V=M=>{for(let E=0;E<M.length;E++){const y=M[E],v=y.id||y.key;!y.children||y.children.length===0?!(v&&S.has(String(v)))&&y.modelId&&y.element_Id&&L.push({modelId:y.modelId,elementId:y.element_Id,show:!1}):y.children&&V(y.children)}};return V(w),L},C=r.computed(()=>{if(!c.value)return t.treeData;p.value=!0;const w=c.value.toLowerCase(),S=L=>{const V=[];for(let M=0;M<L.length;M++){const E=L[M],y=E.name||E.title||"",v=E.id||E.key,D=y.toLowerCase().includes(w);let F;E.children&&E.children.length>0&&(F=S(E.children)),(D||F&&F.length>0)&&V.push({key:String(v),title:y,children:F&&F.length>0?F:E.children?E.children:void 0,_raw:E,_searchMatched:D})}return V};return S(t.treeData)}),A=r.computed(()=>{if(!c.value)return[];const w=[],S=L=>{for(let V=0;V<L.length;V++){const M=L[V]?.children;M&&M.length>0&&(w.push(L[V]?.key),S(M))}};return S(C.value),w}),b=w=>{if(!c.value)return w;const S=new RegExp(`(${c.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");return w.replace(S,'<mark class="search-highlight">$1</mark>')},I=_n(w=>{const S=typeof w=="object"?w.target?.value??"":w;P(S)},200),k=w=>{P(w)},P=w=>{c.value=w||"",i("search",c.value),w&&r.nextTick(()=>{l.value=[...A.value]})},R=w=>{l.value=w},T=(w,S)=>{d.value=w,i("check",d.value);const L=new Set(w.map(M=>String(M))),V=m(t.treeData,L);s?.value?.setComponentVisibility&&s.value.setComponentVisibility(V),s?.value?.onTreeCheck&&s.value.onTreeCheck(w,S)},B=w=>{o.value=w},g=()=>{i("close")},N=()=>{h.value&&(f.value=h.value.clientHeight)};return r.onMounted(()=>{h.value&&(N(),u=new ResizeObserver(()=>{N()}),u.observe(h.value))}),r.onUnmounted(()=>{u&&(u.disconnect(),u=null)}),(w,S)=>(r.openBlock(),r.createBlock(Ls,{visible:o.value,title:"目录树",direction:"bottom","show-handle":!1,class:"mobile-bim-drawer","onUpdate:visible":B,onClose:g},{title:r.withCtx(()=>[...S[1]||(S[1]=[r.createElementVNode("div",{class:"custom-drawer-header"},[r.createElementVNode("span",null,"目录树")],-1)])]),default:r.withCtx(()=>[r.createElementVNode("div",_w,[S[3]||(S[3]=r.createElementVNode("div",{class:"nav-tabs"},[r.createElementVNode("div",{class:"nav-tab-item active"},"构件")],-1)),r.createElementVNode("div",Qw,[r.createElementVNode("div",Vw,[r.createVNode(r.unref(ie.Input),{value:c.value,"onUpdate:value":S[0]||(S[0]=L=>c.value=L),placeholder:"搜索构件","allow-clear":"",class:"custom-search",onSearch:k,onChange:r.unref(I)},null,8,["value","onChange"])])]),r.createElementVNode("div",{class:"tree-content-wrapper",ref_key:"treeContentRef",ref:h},[C.value.length>0?(r.openBlock(),r.createBlock(r.unref(ie.Tree),{key:0,"tree-data":C.value,"field-names":a,"expanded-keys":l.value,"checked-keys":d.value,checkable:"","block-node":"",class:"bim-dark-tree",onExpand:R,onCheck:T},{switcherIcon:r.withCtx(({expanded:L})=>[r.createElementVNode("span",{class:r.normalizeClass(["switcher-icon",{"is-open":L}])},[...S[2]||(S[2]=[r.createElementVNode("svg",{viewBox:"0 0 1024 1024",width:"12",height:"12"},[r.createElementVNode("path",{d:"M340.864 149.312l405.376 362.688-405.376 362.688z",fill:"currentColor"})],-1)])],2)]),title:r.withCtx(L=>[r.createElementVNode("span",{class:r.normalizeClass(["node-title",{"is-matched":L._searchMatched}])},[r.createElementVNode("span",{innerHTML:b(L.title)},null,8,Gw)],2)]),_:1},8,["tree-data","expanded-keys","checked-keys","onExpand","onCheck"])):r.createCommentVNode("",!0)],512)])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-3234e3c9"]]),Hw={class:"tabs-header"},Yw=["onClick"],zw={class:"modal-content"},Ww={key:0,class:"setting-section"},jw={class:"setting-item"},Kw={class:"mobile-switch"},$w={class:"setting-item"},Xw={class:"mobile-switch"},qw={class:"setting-item"},Jw={class:"mobile-switch"},Zw={key:1,class:"setting-section"},ev={class:"setting-item column"},tv={class:"provider-btns"},nv={key:0,class:"provider-config"},iv={class:"setting-item column"},sv={class:"setting-item column"},ov={class:"setting-item"},rv={class:"mobile-switch"},av={key:1,class:"provider-config"},lv={class:"setting-item column"},cv={key:2,class:"setting-section"},dv={class:"setting-item"},uv={class:"mobile-switch"},hv={key:0,class:"setting-item column"},fv={class:"setting-label-row"},pv={class:"setting-value"},mv={class:"setting-item"},gv={class:"mobile-switch"},Av={class:"setting-item"},yv={class:"mobile-switch"},Cv={class:"setting-item column"},Ev={class:"setting-label-row"},bv={class:"setting-value"},wv={class:"setting-item column"},vv={class:"setting-label-row"},Iv={class:"setting-value"},Bv={key:3,class:"setting-section"},xv={class:"setting-item column"},Sv={class:"setting-item"},Tv={class:"mobile-switch"},Mv={class:"setting-item"},Dv={class:"mobile-switch"},xl=ye(r.defineComponent({__name:"MobileSetting",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0}},emits:["update:visible","update:open","close","change"],setup(n,{emit:e}){const t=n,i=e,s=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:u=>{i("update:visible",u),i("update:open",u)}}),o=[{id:"GIS",label:"GIS"},{id:"MAP",label:"地图"},{id:"RENDER",label:"渲染"},{id:"MOUSE",label:"鼠标"}],a=r.ref("GIS"),c=r.ref({globe:!0,terrain:!1,depthTest:!0}),l=r.ref({provider:"tianditu",tianditu:{token:"",layerType:"img",showLabel:!0},arcgis:{url:""}}),d=r.ref({shadows:!1,shadowDarkness:.5,environmentMap:!0,ambientOcclusion:!1,brightness:1,contrast:1}),h=r.ref({sensitivity:5,invertRotation:!1,invertZoom:!1}),f=()=>{p()},p=()=>{i("close"),i("change",{gis:c.value,map:l.value,render:d.value,mouse:h.value})};return r.watch(()=>s.value,u=>{u?document.body.style.overflow="hidden":document.body.style.overflow=""}),(u,m)=>(r.openBlock(),r.createBlock(r.Teleport,{to:"body"},[r.createVNode(r.Transition,{name:"setting-modal"},{default:r.withCtx(()=>[s.value?(r.openBlock(),r.createElementBlock("div",{key:0,class:"mobile-setting-overlay",onClick:f,onTouchmove:m[19]||(m[19]=r.withModifiers(()=>{},["prevent"]))},[r.createElementVNode("div",{class:"mobile-setting-modal",onClick:m[18]||(m[18]=r.withModifiers(()=>{},["stop"]))},[r.createElementVNode("div",{class:"modal-header"},[m[21]||(m[21]=r.createElementVNode("span",{class:"modal-title"},"设置",-1)),r.createElementVNode("button",{class:"modal-close-btn",onClick:p},[...m[20]||(m[20]=[r.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[r.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),r.createElementVNode("div",Hw,[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(o,C=>r.createElementVNode("button",{key:C.id,class:r.normalizeClass(["tab-btn",{active:a.value===C.id}]),onClick:A=>a.value=C.id},r.toDisplayString(C.label),11,Yw)),64))]),r.createElementVNode("div",zw,[a.value==="GIS"?(r.openBlock(),r.createElementBlock("div",Ww,[r.createElementVNode("div",jw,[m[23]||(m[23]=r.createElementVNode("span",{class:"setting-label"},"地球",-1)),r.createElementVNode("label",Kw,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[0]||(m[0]=C=>c.value.globe=C)},null,512),[[r.vModelCheckbox,c.value.globe]]),m[22]||(m[22]=r.createElementVNode("span",{class:"slider"},null,-1))])]),r.createElementVNode("div",$w,[m[25]||(m[25]=r.createElementVNode("span",{class:"setting-label"},"地形",-1)),r.createElementVNode("label",Xw,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[1]||(m[1]=C=>c.value.terrain=C)},null,512),[[r.vModelCheckbox,c.value.terrain]]),m[24]||(m[24]=r.createElementVNode("span",{class:"slider"},null,-1))])]),r.createElementVNode("div",qw,[m[27]||(m[27]=r.createElementVNode("span",{class:"setting-label"},"地形遮挡",-1)),r.createElementVNode("label",Jw,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[2]||(m[2]=C=>c.value.depthTest=C)},null,512),[[r.vModelCheckbox,c.value.depthTest]]),m[26]||(m[26]=r.createElementVNode("span",{class:"slider"},null,-1))])])])):r.createCommentVNode("",!0),a.value==="MAP"?(r.openBlock(),r.createElementBlock("div",Zw,[r.createElementVNode("div",ev,[m[28]||(m[28]=r.createElementVNode("span",{class:"setting-label"},"地图提供商",-1)),r.createElementVNode("div",tv,[r.createElementVNode("button",{class:r.normalizeClass(["provider-btn",{active:l.value.provider==="tianditu"}]),onClick:m[3]||(m[3]=C=>l.value.provider="tianditu")}," 天地图 ",2),r.createElementVNode("button",{class:r.normalizeClass(["provider-btn",{active:l.value.provider==="arcgis"}]),onClick:m[4]||(m[4]=C=>l.value.provider="arcgis")}," ArcGIS ",2)])]),l.value.provider==="tianditu"?(r.openBlock(),r.createElementBlock("div",nv,[r.createElementVNode("div",iv,[m[29]||(m[29]=r.createElementVNode("span",{class:"setting-label"},"Token",-1)),r.withDirectives(r.createElementVNode("input",{"onUpdate:modelValue":m[5]||(m[5]=C=>l.value.tianditu.token=C),type:"text",class:"mobile-input",placeholder:"输入天地图Token"},null,512),[[r.vModelText,l.value.tianditu.token]])]),r.createElementVNode("div",sv,[m[31]||(m[31]=r.createElementVNode("span",{class:"setting-label"},"地图风格",-1)),r.withDirectives(r.createElementVNode("select",{"onUpdate:modelValue":m[6]||(m[6]=C=>l.value.tianditu.layerType=C),class:"mobile-select"},[...m[30]||(m[30]=[r.createElementVNode("option",{value:"img"},"影像",-1),r.createElementVNode("option",{value:"cia"},"影像注记",-1),r.createElementVNode("option",{value:"vec"},"矢量",-1),r.createElementVNode("option",{value:"cva"},"矢量注记",-1)])],512),[[r.vModelSelect,l.value.tianditu.layerType]])]),r.createElementVNode("div",ov,[m[33]||(m[33]=r.createElementVNode("span",{class:"setting-label"},"叠加注记",-1)),r.createElementVNode("label",rv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[7]||(m[7]=C=>l.value.tianditu.showLabel=C)},null,512),[[r.vModelCheckbox,l.value.tianditu.showLabel]]),m[32]||(m[32]=r.createElementVNode("span",{class:"slider"},null,-1))])])])):r.createCommentVNode("",!0),l.value.provider==="arcgis"?(r.openBlock(),r.createElementBlock("div",av,[r.createElementVNode("div",lv,[m[34]||(m[34]=r.createElementVNode("span",{class:"setting-label"},"服务地址",-1)),r.withDirectives(r.createElementVNode("input",{"onUpdate:modelValue":m[8]||(m[8]=C=>l.value.arcgis.url=C),type:"text",class:"mobile-input",placeholder:"输入ArcGIS MapServer地址"},null,512),[[r.vModelText,l.value.arcgis.url]])])])):r.createCommentVNode("",!0)])):r.createCommentVNode("",!0),a.value==="RENDER"?(r.openBlock(),r.createElementBlock("div",cv,[r.createElementVNode("div",dv,[m[36]||(m[36]=r.createElementVNode("span",{class:"setting-label"},"阴影",-1)),r.createElementVNode("label",uv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[9]||(m[9]=C=>d.value.shadows=C)},null,512),[[r.vModelCheckbox,d.value.shadows]]),m[35]||(m[35]=r.createElementVNode("span",{class:"slider"},null,-1))])]),d.value.shadows?(r.openBlock(),r.createElementBlock("div",hv,[r.createElementVNode("div",fv,[m[37]||(m[37]=r.createElementVNode("span",{class:"setting-label"},"阴影暗度",-1)),r.createElementVNode("span",pv,r.toDisplayString(d.value.shadowDarkness.toFixed(2)),1)]),r.withDirectives(r.createElementVNode("input",{type:"range","onUpdate:modelValue":m[10]||(m[10]=C=>d.value.shadowDarkness=C),min:"0",max:"1",step:"0.05",class:"mobile-slider"},null,512),[[r.vModelText,d.value.shadowDarkness,void 0,{number:!0}]])])):r.createCommentVNode("",!0),r.createElementVNode("div",mv,[m[39]||(m[39]=r.createElementVNode("span",{class:"setting-label"},"环境贴图",-1)),r.createElementVNode("label",gv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[11]||(m[11]=C=>d.value.environmentMap=C)},null,512),[[r.vModelCheckbox,d.value.environmentMap]]),m[38]||(m[38]=r.createElementVNode("span",{class:"slider"},null,-1))])]),r.createElementVNode("div",Av,[m[41]||(m[41]=r.createElementVNode("span",{class:"setting-label"},"环境光遮蔽",-1)),r.createElementVNode("label",yv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[12]||(m[12]=C=>d.value.ambientOcclusion=C)},null,512),[[r.vModelCheckbox,d.value.ambientOcclusion]]),m[40]||(m[40]=r.createElementVNode("span",{class:"slider"},null,-1))])]),r.createElementVNode("div",Cv,[r.createElementVNode("div",Ev,[m[42]||(m[42]=r.createElementVNode("span",{class:"setting-label"},"模型亮度",-1)),r.createElementVNode("span",bv,r.toDisplayString(d.value.brightness.toFixed(1)),1)]),r.withDirectives(r.createElementVNode("input",{type:"range","onUpdate:modelValue":m[13]||(m[13]=C=>d.value.brightness=C),min:"0",max:"5",step:"0.1",class:"mobile-slider"},null,512),[[r.vModelText,d.value.brightness,void 0,{number:!0}]])]),r.createElementVNode("div",wv,[r.createElementVNode("div",vv,[m[43]||(m[43]=r.createElementVNode("span",{class:"setting-label"},"模型对比度",-1)),r.createElementVNode("span",Iv,r.toDisplayString(d.value.contrast.toFixed(1)),1)]),r.withDirectives(r.createElementVNode("input",{type:"range","onUpdate:modelValue":m[14]||(m[14]=C=>d.value.contrast=C),min:"0.5",max:"2",step:"0.1",class:"mobile-slider"},null,512),[[r.vModelText,d.value.contrast,void 0,{number:!0}]])])])):r.createCommentVNode("",!0),a.value==="MOUSE"?(r.openBlock(),r.createElementBlock("div",Bv,[r.createElementVNode("div",xv,[m[44]||(m[44]=r.createElementVNode("span",{class:"setting-label"},"鼠标灵敏度",-1)),r.withDirectives(r.createElementVNode("input",{type:"range","onUpdate:modelValue":m[15]||(m[15]=C=>h.value.sensitivity=C),min:"1",max:"10",step:"1",class:"mobile-slider"},null,512),[[r.vModelText,h.value.sensitivity,void 0,{number:!0}]])]),r.createElementVNode("div",Sv,[m[46]||(m[46]=r.createElementVNode("span",{class:"setting-label"},"反转旋转",-1)),r.createElementVNode("label",Tv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[16]||(m[16]=C=>h.value.invertRotation=C)},null,512),[[r.vModelCheckbox,h.value.invertRotation]]),m[45]||(m[45]=r.createElementVNode("span",{class:"slider"},null,-1))])]),r.createElementVNode("div",Mv,[m[48]||(m[48]=r.createElementVNode("span",{class:"setting-label"},"反转缩放",-1)),r.createElementVNode("label",Dv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[17]||(m[17]=C=>h.value.invertZoom=C)},null,512),[[r.vModelCheckbox,h.value.invertZoom]]),m[47]||(m[47]=r.createElementVNode("span",{class:"slider"},null,-1))])])])):r.createCommentVNode("",!0)])])],32)):r.createCommentVNode("",!0)]),_:1})]))}}),[["__scopeId","data-v-43e37b8d"]]),kv={class:"mobile-section-container"},Pv={class:"section-main"},Fv={class:"toggle-row"},Nv={class:"slider-section"},Rv={class:"slider-header"},Lv={class:"slider-label"},Ov={class:"slider-value"},Uv={class:"quick-btns"},_v={class:"section-models"},Qv={class:"models-header"},Vv={class:"models-count"},Sl=ye(r.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(n,{emit:e}){const t=n,i=e,s=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:w=>{i("update:visible",w),i("update:open",w)}}),o=r.ref(!0),a=r.ref("Box"),c=r.ref("X"),l=r.ref([]),d=r.ref([0,100]),h=r.ref([0,100]),f=r.ref([0,100]),p=[{key:"X",label:"X轴"},{key:"Y",label:"Y轴"},{key:"Z",label:"Z轴"}],u=r.computed(()=>p.find(S=>S.key===c.value)?.label||""),m=r.computed({get:()=>{switch(c.value){case"X":return d.value[1];case"Y":return h.value[1];case"Z":return f.value[1];default:return 50}},set:w=>{switch(c.value){case"X":d.value[1]=w??0;break;case"Y":h.value[1]=w??0;break;case"Z":f.value[1]=w??0;break}}}),C=r.computed(()=>{switch(c.value){case"X":return[-50,50];case"Y":return[-50,50];case"Z":return[0,100];default:return[0,100]}}),A=r.computed(()=>m.value?.toFixed(1)??"0.0"),b=r.computed(()=>l.value.length===t.modelList.length),I=w=>{s.value=w},k=()=>{i("close")},P=()=>{i("visibility-change",o.value)},R=w=>{a.value=w,i("mode-change",w)},T=()=>{m.value=50,i("axis-change",c.value,50)},B=()=>{const w=C.value;m.value=w&&w.length>=2?(w[0]+w[1])/2:50,i("axis-change",c.value,m.value)},g=()=>{i("model-change",l.value)},N=()=>{b.value?l.value=[]:l.value=t.modelList.map(w=>w.modelId),i("model-change",l.value)};return(w,S)=>(r.openBlock(),r.createBlock(Ls,{visible:s.value,title:"剖切分析",direction:"bottom","show-handle":!0,"onUpdate:visible":I,onClose:k},{default:r.withCtx(()=>[r.createElementVNode("div",kv,[r.createElementVNode("div",Pv,[r.createElementVNode("div",Fv,[S[6]||(S[6]=r.createElementVNode("span",{class:"toggle-label"},"显示剖切盒",-1)),r.createVNode(r.unref(ie.Switch),{checked:o.value,"onUpdate:checked":S[0]||(S[0]=L=>o.value=L),onChange:P},null,8,["checked"])]),r.createVNode(r.unref(ie.RadioGroup),{value:a.value,"onUpdate:value":S[1]||(S[1]=L=>a.value=L),"button-style":"solid",class:"mode-selector",onChange:S[2]||(S[2]=L=>R(L.target.value))},{default:r.withCtx(()=>[r.createVNode(r.unref(ie.RadioButton),{value:"Box"},{default:r.withCtx(()=>[...S[7]||(S[7]=[r.createTextVNode("剖切盒",-1)])]),_:1})]),_:1},8,["value"]),r.createVNode(r.unref(ie.RadioGroup),{value:c.value,"onUpdate:value":S[3]||(S[3]=L=>c.value=L),"button-style":"solid",class:"axis-selector"},{default:r.withCtx(()=>[r.createVNode(r.unref(ie.RadioButton),{value:"X"},{default:r.withCtx(()=>[...S[8]||(S[8]=[r.createTextVNode("X轴",-1)])]),_:1}),r.createVNode(r.unref(ie.RadioButton),{value:"Y"},{default:r.withCtx(()=>[...S[9]||(S[9]=[r.createTextVNode("Y轴",-1)])]),_:1}),r.createVNode(r.unref(ie.RadioButton),{value:"Z"},{default:r.withCtx(()=>[...S[10]||(S[10]=[r.createTextVNode("Z轴",-1)])]),_:1})]),_:1},8,["value"]),r.createElementVNode("div",Nv,[r.createElementVNode("div",Rv,[r.createElementVNode("span",Lv,r.toDisplayString(u.value)+" 轴范围",1),r.createElementVNode("span",Ov,r.toDisplayString(A.value),1)]),r.createVNode(r.unref(ie.Slider),{Value:m.value,"onUpdate:Value":S[4]||(S[4]=L=>m.value=L),min:C.value[0],max:C.value[1],step:.5,class:"section-slider"},null,8,["Value","min","max"]),r.createElementVNode("div",Uv,[r.createVNode(r.unref(ie.Button),{size:"small",onClick:T},{default:r.withCtx(()=>[...S[11]||(S[11]=[r.createTextVNode("重置",-1)])]),_:1}),r.createVNode(r.unref(ie.Button),{size:"small",onClick:B},{default:r.withCtx(()=>[...S[12]||(S[12]=[r.createTextVNode("居中",-1)])]),_:1})])])]),r.createElementVNode("div",_v,[r.createElementVNode("div",Qv,[S[13]||(S[13]=r.createElementVNode("span",{class:"models-title"},"选择模型",-1)),r.createElementVNode("span",Vv,r.toDisplayString(l.value.length)+"/"+r.toDisplayString(n.modelList.length),1)]),r.createVNode(r.unref(ie.CheckboxGroup),{value:l.value,"onUpdate:value":S[5]||(S[5]=L=>l.value=L),class:"models-list",onChange:g},{default:r.withCtx(()=>[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(n.modelList,L=>(r.openBlock(),r.createBlock(r.unref(ie.Checkbox),{key:L.modelId,value:L.modelId,class:"model-item"},{default:r.withCtx(()=>[r.createTextVNode(r.toDisplayString(L.modelName),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),n.modelList.length>1?(r.openBlock(),r.createBlock(r.unref(ie.Button),{key:0,size:"small",type:"link",onClick:N},{default:r.withCtx(()=>[r.createTextVNode(r.toDisplayString(b.value?"取消全选":"全选"),1)]),_:1})):r.createCommentVNode("",!0)])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-cdacec58"]]),Gv={key:0,class:"mobile-measure-root"},Hv={key:0,class:"result-card"},Yv={class:"card-header-row"},zv={class:"result-main"},Wv={class:"type-label"},jv={class:"value-highlight"},Kv={key:0,class:"coords-grid"},$v={class:"coord-item"},Xv={class:"coord-item"},qv={class:"coord-item"},Jv={class:"measure-toolbar-container"},Zv={class:"tools-inner-row"},eI=["onClick"],tI=["innerHTML"],Tl=ye(r.defineComponent({__name:"MobileMeasurement",props:{visible:{type:Boolean},defaultTool:{}},emits:["update:visible","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods");let o=null,a=!1;const c=r.ref(null),l=r.ref(null),d=r.computed(()=>t.visible&&c.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>'}],f={distance:"距离",angle:"角度",area:"面积"},p=r.computed(()=>c.value?f[c.value]||"":l.value&&f[l.value.type]||""),u=r.computed(()=>{if(!l.value)return c.value==="distance"?"-- m":c.value==="angle"?"--°":c.value==="area"?"-- m²":"";const P=l.value;return P.type==="distance"?`${(P.dist??0).toFixed(3)} m`:P.type==="angle"?`${(P.angle??0).toFixed(2)}°`:P.type==="area"?`${(P.area??0).toFixed(2)} m²`:""}),m=r.computed(()=>l.value?.type||c.value),C=P=>P===void 0?"--":P.toFixed(3),A=()=>{if(o)return;const P=s?.value;P?.getViewer&&(o=new Ds({viewer:P.getViewer(),cesium:P.getCesium()}),o.onMeasure=R=>{a||(l.value=R)})},b=P=>{A(),c.value===P?(c.value=null,o?.stop(),s?.value?.baseCompt?.enableSelection()):(c.value=P,l.value=null,o?.start(P),s?.value?.baseCompt?.disableSelection())},I=()=>{o?.clearAll(),o?.stop(),c.value=null,l.value=null,s?.value?.baseCompt?.enableSelection()},k=()=>{I(),i("update:visible",!1),i("close")};return r.watch(()=>t.visible,P=>{P?(A(),t.defaultTool&&b(t.defaultTool)):I()}),r.onUnmounted(()=>{a=!0,o?.destroy()}),(P,R)=>(r.openBlock(),r.createBlock(r.Transition,{name:"measure-fade"},{default:r.withCtx(()=>[n.visible?(r.openBlock(),r.createElementBlock("div",Gv,[r.createVNode(r.Transition,{name:"card-slide"},{default:r.withCtx(()=>[d.value?(r.openBlock(),r.createElementBlock("div",Hv,[r.createElementVNode("div",Yv,[r.createElementVNode("div",zv,[r.createElementVNode("span",Wv,r.toDisplayString(p.value)+":",1),r.createElementVNode("span",jv,r.toDisplayString(u.value),1)]),r.createElementVNode("button",{class:"clear-action-btn",onClick:I,title:"清空"},[...R[0]||(R[0]=[r.createElementVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"currentColor","stroke-width":"2"},[r.createElementVNode("polyline",{points:"3 6 5 6 21 6"}),r.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"?(r.openBlock(),r.createElementBlock("div",Kv,[r.createElementVNode("div",$v,[R[1]||(R[1]=r.createElementVNode("span",{class:"label-x"},"X:",-1)),r.createTextVNode(" "+r.toDisplayString(C(l.value?.dx)),1)]),r.createElementVNode("div",Xv,[R[2]||(R[2]=r.createElementVNode("span",{class:"label-y"},"Y:",-1)),r.createTextVNode(" "+r.toDisplayString(C(l.value?.dy)),1)]),r.createElementVNode("div",qv,[R[3]||(R[3]=r.createElementVNode("span",{class:"label-z"},"Z:",-1)),r.createTextVNode(" "+r.toDisplayString(C(l.value?.dz)),1)])])):r.createCommentVNode("",!0)])):r.createCommentVNode("",!0)]),_:1}),r.createElementVNode("div",Jv,[r.createElementVNode("button",{class:"nav-back-icon",onClick:k},[...R[4]||(R[4]=[r.createElementVNode("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"currentColor","stroke-width":"3"},[r.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)])]),r.createElementVNode("div",Zv,[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(h,T=>r.createElementVNode("button",{key:T.id,class:r.normalizeClass(["sub-icon-box",{active:c.value===T.id}]),onClick:B=>b(T.id)},[r.createElementVNode("span",{class:"icon-svg",innerHTML:T.svg},null,8,tI)],10,eI)),64))])])])):r.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-7ff442b7"]]),nI={class:"joystick-base"},iI={class:"control-panel"},sI={class:"ctrl-row zoom-row"},oI={class:"zoom-label"},rI={class:"ctrl-grid"},aI={class:"gravity-toggle"},lI={class:"arrow-col"},Os=40,Ml=ye(r.defineComponent({__name:"MobilePlayer",props:{visible:{type:Boolean}},emits:["update:visible","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods");let o=!1;const a=r.ref(null),c=r.ref(0),l=r.ref(0),d=r.ref(!1),h=r.ref({x:0,y:0}),f=[.25,.5,1,2,4,8,16],p=r.ref(2),u=r.ref(!0);let m=null;const C=r.computed(()=>({transform:`translate(${c.value}px, ${l.value}px)`})),A=r.computed(()=>`${f[p.value]}X`),b=(O,x)=>{const U=[];return(Math.abs(O)>10||Math.abs(x)>10)&&(x<-10&&U.push("moveFront"),x>10&&U.push("moveBack"),O<-10&&U.push("moveLeft"),O>10&&U.push("moveRight")),U},I=()=>{o||["moveFront","moveBack","moveLeft","moveRight"].forEach(O=>{s?.value?.setPlayerAction?.(O,!1)})},k=O=>{if(o)return;["moveFront","moveBack","moveLeft","moveRight"].forEach(U=>{const H=O.includes(U);s?.value?.setPlayerAction?.(U,H)})},P=O=>{const x=O.touches[0],U=a.value.getBoundingClientRect();h.value={x:U.left+U.width/2,y:U.top+U.height/2},d.value=!0,x&&T(x.clientX,x.clientY)},R=O=>{if(!d.value)return;const x=O.touches[0];x&&T(x.clientX,x.clientY)},T=(O,x)=>{if(o)return;let U=O-h.value.x,H=x-h.value.y;const j=Math.sqrt(U*U+H*H);j>Os&&(U=U/j*Os,H=H/j*Os),c.value=U,l.value=H;const X=b(U,H);k(X)},B=()=>{d.value=!1,c.value=0,l.value=0,I()},g=()=>{S(),m=setInterval(()=>{p.value<f.length-1&&(p.value++,L())},150)},N=()=>{S(),m=setInterval(()=>{p.value>0&&(p.value--,L())},150)},w=()=>{S()},S=()=>{m&&(clearInterval(m),m=null)},L=()=>{o||s?.value?.setPlayerSpeed?.(f[p.value])},V=()=>{s?.value?.setPlayerAction?.("moveUp",!0)},M=()=>{s?.value?.setPlayerAction?.("moveUp",!1)},E=()=>{s?.value?.setPlayerAction?.("moveDown",!0)},y=()=>{s?.value?.setPlayerAction?.("moveDown",!1)},v=()=>{s?.value?.setPlayerParams?.({gravityTest:u.value,collisionTest:!0})},D=()=>{Q(),i("update:visible",!1),i("close")},F=async()=>{if(!o)try{if(!s?.value){setTimeout(()=>F(),150);return}s.value.startCameraRoam&&s.value.startCameraRoam(),s.value.setPlayerSpeed?.(f[p.value])}catch(O){console.error("MobilePlayer startPlayer error:",O)}},Q=()=>{I(),o||s?.value?.closePlayer?.(),S()};return r.watch(()=>t.visible,O=>{o||(O?F():Q())},{immediate:!0}),r.onUnmounted(()=>{o=!0,Q()}),(O,x)=>n.visible?(r.openBlock(),r.createElementBlock("div",{key:0,class:"mobile-player-overlay",onTouchmove:x[1]||(x[1]=r.withModifiers(()=>{},["prevent"]))},[r.createElementVNode("button",{class:"player-exit-btn",onClick:D}," 退出 "),r.createElementVNode("div",{class:"joystick-zone",ref_key:"joystickRef",ref:a,onTouchstart:r.withModifiers(P,["prevent"]),onTouchmove:r.withModifiers(R,["prevent"]),onTouchend:r.withModifiers(B,["prevent"]),onTouchcancel:r.withModifiers(B,["prevent"])},[r.createElementVNode("div",nI,[r.createElementVNode("div",{class:"joystick-knob",style:r.normalizeStyle(C.value)},null,4)])],544),r.createElementVNode("div",iI,[r.createElementVNode("div",sI,[r.createElementVNode("button",{class:"ctrl-btn ctrl-btn-sm",onTouchstart:r.withModifiers(N,["prevent"]),onTouchend:r.withModifiers(w,["prevent"])},"−",32),r.createElementVNode("span",oI,r.toDisplayString(A.value),1),r.createElementVNode("button",{class:"ctrl-btn ctrl-btn-sm",onTouchstart:r.withModifiers(g,["prevent"]),onTouchend:r.withModifiers(w,["prevent"])},"+",32)]),r.createElementVNode("div",rI,[r.createElementVNode("label",aI,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":x[0]||(x[0]=U=>u.value=U),onChange:v},null,544),[[r.vModelCheckbox,u.value]]),x[2]||(x[2]=r.createElementVNode("span",{class:"toggle-checkbox"},null,-1)),x[3]||(x[3]=r.createElementVNode("span",{class:"toggle-label"},"重力",-1))]),r.createElementVNode("div",lI,[r.createElementVNode("button",{class:"ctrl-btn ctrl-btn-arrow",onTouchstart:r.withModifiers(V,["prevent"]),onTouchend:r.withModifiers(M,["prevent"])},[...x[4]||(x[4]=[r.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"},[r.createElementVNode("polyline",{points:"18 15 12 9 6 15"})],-1)])],32),r.createElementVNode("button",{class:"ctrl-btn ctrl-btn-arrow",onTouchstart:r.withModifiers(E,["prevent"]),onTouchend:r.withModifiers(y,["prevent"])},[...x[5]||(x[5]=[r.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"},[r.createElementVNode("polyline",{points:"6 9 12 15 18 9"})],-1)])],32)])])])],32)):r.createCommentVNode("",!0)}}),[["__scopeId","data-v-bbfb84ae"]]),cI={key:0,class:"mobile-info-sheet-wrapper"},dI={class:"info-body"},uI={key:0,class:"empty-hint"},hI={key:0,class:"component-title"},fI={class:"group-list"},pI=["onClick"],mI={class:"group-name"},gI={key:0,class:"group-content"},AI={class:"kv-key"},yI={class:"kv-value"},Dl=ye(r.defineComponent({__name:"MobileInfo",props:{visible:{type:Boolean}},emits:["update:visible","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.ref([]),a=r.ref(!1),c=r.ref(new Set),l=r.ref([]);let d=!1;const h=r.computed({get:()=>!!t.visible,set:R=>{i("update:visible",R)}}),f=R=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[R]||R,p=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],u=(R,T)=>`${R}__${T}`,m=(R,T)=>c.value.has(u(R,T)),C=(R,T)=>{const B=u(R,T);c.value.has(B)?c.value.delete(B):c.value.add(B)},A=()=>{const R=new Set;o.value.forEach(T=>{T.groups.forEach(B=>{R.add(u(T.id,B.name))})}),c.value=R},b=()=>{h.value=!1,i("close")},I=async R=>{if(d)return;if(l.value=R||[],!R||R.length===0){o.value=[];return}let T=R;R.length>10&&(ce.warning(`选中构件数量过多(${R.length}个),仅显示前10个`),T=R.slice(0,10));const B=s?.value;let g=B?.getMapTileset?B.getMapTileset():{};a.value=!0;const N=new Set;if(T.forEach(S=>{const L=g[S.modelId];L&&L.leiting&&!L.leiting?.node?.nodeExtras&&L.leiting.model?.nodeUrl&&N.add(S.modelId)}),N.size>0&&B?._loadNodeDetailsForModel)try{await Promise.all(Array.from(N).map(S=>B._loadNodeDetailsForModel(S)))}catch(S){console.error("Failed to load node details",S)}if(d)return;g=B?.getMapTileset?B.getMapTileset():{};const w=[];T.forEach((S,L)=>{const M=g[S.modelId]?.leiting||{};let E={modelName:M.model?.modelId||S.modelId};E.elementID||(E.elementID=S.elementId);let y=null;const v=M.node?.nodeExtras?.element||M.node?.nodeExtras;if(v){const Q=E.elementID;v[Q]&&(y=v[Q])}y&&y.box3&&(E.length=`${y.box3.length?.toFixed(2)||0}米`,E.width=`${y.box3.width?.toFixed(2)||0}米`,E.height=`${y.box3.height?.toFixed(2)||0}米`);const D=[];y&&(y.name&&(E.elementName=y.name),y.categoryName&&(E.categoryName=y.categoryName),y.familySymbolName&&(E.familySymbolName=y.familySymbolName),y.levelName&&(E.levelName=y.levelName));const F={};if(p.forEach(Q=>{E[Q]!==void 0&&(F[Q]=E[Q])}),D.push({name:"基本属性",params:F}),y){const Q=Array.isArray(y)?y:Array.isArray(y?.parameters)?y.parameters:null;if(Q)Q.flat().forEach(x=>{if(x&&x.GroupName&&Array.isArray(x.Parameters)){const U={};x.Parameters.forEach(H=>{H.name&&(U[H.name]=H.value??"")}),Object.keys(U).length>0&&D.push({name:x.GroupName,params:U})}});else{let O=!1;if(Object.keys(y).forEach(x=>{y[x]&&typeof y[x]=="object"&&!Array.isArray(y[x])&&(O=!0,D.push({name:x,params:y[x]}))}),!O){const x={};Object.keys(y).forEach(U=>{if(!p.includes(U)&&U!=="batchId"){const H=y[U];x[U]=typeof H=="string"&&H.length>500?H.substring(0,500)+"...":H}}),Object.keys(x).length>0&&D.push({name:"其他属性",params:x})}}}w.push({id:L,title:`${E.modelName}${E.elementName?` - ${E.elementName}`:""}`,groups:D})}),o.value=w,a.value=!1,!d&&w.length>0&&A()};let k=!1;const P=()=>{if(k)return;const R=s?.value;R&&R.selectionChange&&(R.selectionChange(I),k=!0)};return r.watch(()=>s?.value,()=>P(),{deep:!0,immediate:!0}),r.watch(h,R=>{R&&(P(),l.value.length>0&&I(l.value))}),r.onUnmounted(()=>{d=!0}),(R,T)=>(r.openBlock(),r.createBlock(r.Transition,{name:"info-slide"},{default:r.withCtx(()=>[n.visible?(r.openBlock(),r.createElementBlock("div",cI,[r.createElementVNode("div",{class:"mobile-info-sheet",onTouchmove:T[0]||(T[0]=r.withModifiers(()=>{},["stop"])),onClick:T[1]||(T[1]=r.withModifiers(()=>{},["stop"]))},[r.createElementVNode("div",{class:"info-header"},[T[3]||(T[3]=r.createElementVNode("span",{class:"info-title"},"构件详情",-1)),r.createElementVNode("button",{class:"info-close-btn",onClick:b},[...T[2]||(T[2]=[r.createElementVNode("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[r.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),T[5]||(T[5]=r.createElementVNode("div",{class:"info-tabs"},[r.createElementVNode("span",{class:"tab-item active"},"属性")],-1)),r.createElementVNode("div",dI,[r.createVNode(r.unref(ie.Spin),{spinning:a.value},{default:r.withCtx(()=>[o.value.length===0&&!a.value?(r.openBlock(),r.createElementBlock("div",uI," 暂无数据 ")):r.createCommentVNode("",!0),(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(o.value,B=>(r.openBlock(),r.createElementBlock("div",{key:B.id,class:"component-block"},[o.value.length>1?(r.openBlock(),r.createElementBlock("div",hI,r.toDisplayString(B.title),1)):r.createCommentVNode("",!0),r.createElementVNode("div",fI,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(B.groups,(g,N)=>(r.openBlock(),r.createElementBlock("div",{key:`${B.id}-${N}`,class:"group-item"},[r.createElementVNode("button",{class:r.normalizeClass(["group-header",{expanded:m(B.id,g.name)}]),onClick:w=>C(B.id,g.name)},[T[4]||(T[4]=r.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"},[r.createElementVNode("polyline",{points:"4 6 8 10 12 6"})],-1)),r.createElementVNode("span",mI,r.toDisplayString(g.name),1)],10,pI),r.createVNode(r.Transition,{name:"group-expand"},{default:r.withCtx(()=>[m(B.id,g.name)?(r.openBlock(),r.createElementBlock("div",gI,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(g.params,(w,S)=>(r.openBlock(),r.createElementBlock("div",{key:S,class:"kv-row"},[r.createElementVNode("span",AI,r.toDisplayString(f(String(S))),1),r.createElementVNode("span",yI,r.toDisplayString(w),1)]))),128))])):r.createCommentVNode("",!0)]),_:2},1024)]))),128))])]))),128))]),_:1},8,["spinning"])])],32)])):r.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-c4855585"]]),CI=["src"],Ei=ye(r.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(n,{expose:e,emit:t}){const i=r.ref(),s=r.ref(),o=r.getCurrentInstance(),a=r.ref(!1),c=r.ref(""),l=r.ref({}),d=r.ref("3d"),{isMobile:h}=vl(),f=n,p={title:"构件树",treeData:[]},u=r.ref(!1),m=r.ref(!1),C=r.ref(!1),A=r.ref(!1),b=r.ref(!1),I=r.ref(!1),k=r.ref(!1),P=r.ref(!1),R=r.ref(!1),T=r.ref(!1),B=r.ref(null),{visible:g,position:N,items:w,show:S,hide:L}=wl(),V=r.ref([]),M=z=>{V.value.push(z)},E=z=>{V.value=V.value.filter(Y=>Y.id!==z)},y=r.ref([]),v=r.ref(""),D=r.ref(null),F=r.ref([]),Q=r.reactive({tree:!1,section:!1,roam:!1,info:!1,adjustModel:!1,setting:!1,cadLayer:!1,cadPosition:!1,annotation:!1}),O=(z,Y)=>{z==="componentTree"&&(z="tree"),z==="componentInfo"&&(z="info"),z in Q&&(Q[z]=Y)},x=r.shallowRef({});r.provide("leitingMethods",x);const U=r.ref(f.showMenu),H=r.ref([]);r.watch(()=>f.showMenu,z=>{U.value=z},{immediate:!0}),r.watch(()=>f.mode,z=>{z&&x.value?.set2d&&x.value.set2d(z==="2d")});const j=r.ref("dark");r.provide("leiting-theme",j);const X=r.ref(f.teleportTarget);r.watch(()=>f.teleportTarget,z=>{X.value=z});const Z=r.ref([]),re=r.computed(()=>{const z=[];return u.value&&(z.push("tree"),z.push("componentTree")),m.value&&z.push("section"),C.value&&z.push("roam"),A.value&&(z.push("info"),z.push("componentInfo")),b.value&&z.push("adjust"),I.value&&z.push("setting"),k.value&&z.push("cadLayer"),P.value&&z.push("cadPosition"),R.value&&z.push("annotation"),T.value&&(z.push("measure"),z.push("measurement")),z.push(...Z.value),z}),se=r.ref(null),oe=(z,Y)=>{z==="componentTree"||z==="tree"?u.value=Y:z==="section"?m.value=Y:z==="roam"?C.value=Y:z==="componentInfo"||z==="info"?A.value=Y:z==="homeView"?x.value?.is2dMode?.()?x.value?.flyToTopView?.({}):x.value?.getBIMmodelId()?x.value?.flyToTileset?.({}):x.value?.getCadModelId()&&x.value?.flyToTopView?.({}):z==="adjustModel"?(b.value=Y,Y&&se.value&&se.value.setModelType("BIM")):z==="osgbAdjust"?(b.value=Y,Y&&se.value&&se.value.setModelType("OSGB")):z==="setting"?I.value=Y:z==="cadLayer"?k.value=Y:z==="cadPosition"?P.value=Y:z==="annotation"?R.value=Y:z==="measurement"?T.value=Y:Y?Z.value.includes(z)||Z.value.push(z):Z.value=Z.value.filter($=>$!==z)},ge=z=>{const Y=z.key||z.ID;if(!Y)return;if(Y==="homeView"||Y==="home"){oe(Y,!0);return}if(Y==="measurement"){B.value="distance",T.value=!0;return}const $=!re.value.includes(z.ID);oe(Y,$)},ve=z=>{const Y=z.sub;if(!Y)return;const $=Y.parentKey||z.parent?.key;$==="measurement"?(B.value=Y.id.replace("measure-",""),T.value=!0):$==="section"&&(m.value=!0)};r.watch(u,async z=>{if(z&&x.value?.loadTreeForModel&&x.value?.getMapTileset){const Y=x.value.getMapTileset(),$=Object.values(Y).map(async Pe=>{if(Pe.leiting&&Pe.leiting.model?.treeUrl){const Re=Pe.leiting.model.modelId;try{Pe.leiting?.node?.batchIdEIDInfos||await x.value.loadNodeDetailsForModel(Re);const He=await x.value.loadTreeForModel(Re);He&&(Array.isArray(He)?He:[He]).forEach($e=>{$e&&!F.value.find(Tn=>Tn.id===$e.id)&&($e.modelId=Re,F.value=[...F.value,$e])})}catch(He){console.warn(`Failed to lazy load tree for ${Re}`,He)}}});await Promise.all($)}});const Ce=()=>{x.value&&(x.value.getDxfModels&&(y.value=x.value.getDxfModels()||[]),x.value.getCadModelId&&(v.value=x.value.getCadModelId()||""))};let Be;r.watch(k,z=>{z&&Ce()}),r.watch(P,z=>{z&&(Ce(),D.value&&y.value.length&&D.value.addGltfOr3dTilesModelList(y.value))});const Te=t,_e=z=>{x.value&&x.value.saveCadCalibration&&x.value.saveCadCalibration(z),x.value&&x.value.saveCadRegion&&x.value.saveCadRegion(z)};return r.onMounted(async()=>{if(s.value&&ce.setContainer(s.value),!!i.value)try{const z={...Ct,cesiumUrl:f.cesiumUrl||Ct.cesiumUrl,cesiumCssUrl:f.cesiumCssUrl||Ct.cesiumCssUrl,accessToken:f.accessToken||Bi()||Ct.accessToken};await Ii(z);const Y=f.accessToken||Bi()||Ct.accessToken;Y&&(Cesium.Ion.defaultAccessToken=Y),a.value=!0,Be=async(Pe={},Re)=>{if(i.value){const{showMenu:He,showTree:Sn,globe:$e,terrain:Tn,depthTest:LI,mapProvider:OI,tiandituLayerType:UI,tiandituShowLabel:_I,arcgisUrl:QI,shadows:VI,environmentMap:GI,ambientOcclusion:HI,time:YI,brightness:zI,backgroundColor:WI,collision:jI,mouseHabit:KI,heightBasedZoom:$I,mode:Pl,...it}=Pe||{},XI=f.showMenu!==void 0?f.showMenu:He!==void 0?He:!0;U.value=XI;const Fe=(J,Ee,Xe)=>J!==void 0?J:Ee!==void 0?Ee:Xe,Fl=Fe(f.globe,$e,!1),Nl=Fe(f.terrain,Tn,!1),Rl=Fe(f.depthTest,LI,!1),Ll=Fe(f.mapProvider,OI,"tianditu"),Ol=Fe(f.tiandituLayerType,UI,"img_w"),Ul=Fe(f.tiandituShowLabel,_I,!1),_l=Fe(f.arcgisUrl,QI,"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"),Ql=Fe(f.shadows,VI,!1),Vl=Fe(f.environmentMap,GI,!1),Gl=Fe(f.ambientOcclusion,HI,!1),Hl=Fe(f.time,YI,void 0),Yl=Fe(f.brightness,zI,1),wi=f.mode||Pl||"3d";console.log("LeitingBIM Mode:",wi,"Props:",f.mode,"Options:",Pl),d.value=wi;const qI=wi==="2d"?"#000000":"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)",zl=Fe(f.backgroundColor,WI,qI),Wl=Fe(f.collision,jI,!1),jl=Fe(f.mouseHabit,KI,0),Kl=Fe(f.heightBasedZoom,$I,!1);l.value={globe:Fl,terrain:Nl,depthTest:Rl,mapProvider:Ll,tiandituLayerType:Ol,tiandituShowLabel:Ul,arcgisUrl:_l,shadows:Ql,environmentMap:Vl,ambientOcclusion:Gl,time:Hl,brightness:Yl,backgroundColor:zl,collision:Wl,mouseHabit:jl,heightBasedZoom:Kl,useBrowserRecommendedResolution:!0};const Mn=Iy({container:i.value,appContext:o?.appContext,methods:{...x.value,handleMenuAction:oe,setCardFullHeight:O,onLoadingStatus:J=>{J?ce.loading(J,"",s.value):ce.close()},...it,tilesLoad3dTiles:async J=>{let Ee=J.leiting?.tree;const Xe=J.leiting?.model?.modelId;if(!Ee&&u.value&&x.value?.loadTreeForModel)try{Ee=await x.value.loadTreeForModel(Xe)}catch(kn){console.warn("Failed to lazy load tree",kn)}Ee&&(Array.isArray(Ee)?Ee:[Ee]).forEach(Ft=>{Ft&&!F.value.find(Xl=>Xl.id===Ft.id)&&(Ft.modelId=Xe,F.value=[...F.value,Ft])});const{brightness:Us,contrast:_s,saturation:lt}=Mn.methods.getConfigure();Mn.methods.setModelColorAdjustment({brightness:Us,contrast:_s,saturation:lt}),it.tilesLoad3dTiles?.(J)},mountAll3Dtiles:J=>{f.mountAll3Dtiles&&f.mountAll3Dtiles(J),it.mountAll3Dtiles?.(J)},updateModels:J=>{if(Array.isArray(J))if(J.length===0)F.value=[];else{const Ee=J.map(Xe=>Xe.modelId);F.value=F.value.filter(Xe=>Ee.includes(Xe.modelId))}},mountAllCad:J=>{if(Mn.methods.setModelBrightness){const Ee=f.brightness!==void 0?f.brightness:l.value.brightness;Ee!==void 0&&Mn.methods.setModelBrightness(Ee)}f.mountAllCad&&f.mountAllCad(J),it.mountAllCad?.(J)},saveRegion:J=>{f.saveRegion&&f.saveRegion(J),it.saveRegion?.(J)},saveCadRegion:J=>{f.saveCadRegion&&f.saveCadRegion(J),it.saveCadRegion?.(J)},saveCadCalibration:J=>{f.saveCadCalibration&&f.saveCadCalibration(J),it.saveCadCalibration?.(J)},selectionChange:J=>{f.selectionChange&&f.selectionChange(J),it.selectionChange?.(J)},onSearchComponent:J=>{f.searchComponent&&f.searchComponent(J),it.searchComponent?.(J)}},viewerOptions:f.viewerOptions,options:{...it,mode:wi,playerUrl:f.playerUrl,playerModelName:f.playerModelName,playerModelId:f.playerModelId,playerScale:f.playerScale,globe:Fl,terrain:Nl,depthTest:Rl,mapProvider:Ll,tiandituLayerType:Ol,tiandituShowLabel:Ul,tiandituToken:f.tiandituToken,arcgisUrl:_l,shadows:Ql,environmentMap:Vl,ambientOcclusion:Gl,time:Hl,brightness:Yl,backgroundColor:zl,collision:Wl,mouseHabit:jl,heightBasedZoom:Kl},callbacks:{onLoading:J=>J?ce.loading(J,"",s.value):ce.close(),onSuccess:J=>ce.success(J,"",void 0,s.value),onError:J=>ce.error(J,"",void 0,s.value)}}),{Cesium:Pt,viewer:Xt,methods:vi,menuEvents:Dn}=Mn,de=vi;Dn.on("showMenu",J=>{U.value=J}),Dn.on("insertMenu",J=>{H.value=[...H.value,...J]}),Dn.on("setMenuActive",(J,Ee)=>{oe(J,Ee)}),x.value=de,Re&&(Re.value=de),Dn.on("setMode",J=>{d.value=J}),Dn.on("deleteAllModels",()=>{F.value=[]}),new Pt.ScreenSpaceEventHandler(Xt.scene.canvas).setInputAction(async J=>{if(L(),d.value==="2d")return;const Ee=Xt.scene.pick(J.position),Xe=Xt.container.getBoundingClientRect(),Us=Xe.left+J.position.x,_s=Xe.top+J.position.y,lt=[];if(Pt.defined(Ee)&&Ee instanceof Pt.Cesium3DTileFeature){const kn=de.baseCompt.getFeatureId(Ee),Ft=dn(Ee.tileset);de.baseCompt.hasSelectedFeaturesMap[Ft]?.some(Pn=>Pn.batchId===kn&&Pn.rank===0)||(await de.baseCompt.clearSelection(),await de.baseCompt.toggleMultiSelect(Ft,kn,de.baseCompt.selectedColor)),lt.push({id:"details",label:"构件详情",action:()=>{A.value=!0}}),lt.push({id:"hide",label:"隐藏选中构件",action:async()=>{const Fn=(await de.baseCompt.getSelected()).map(ct=>({elementId:ct.elementId,modelId:ct.modelId,show:!1}));de.baseCompt.setComponentVisibility(Fn)}}),lt.push({id:"translucent",label:"半透明选中构件",action:async()=>{const Fn=(await de.baseCompt.getSelected()).map(ct=>({elementId:ct.elementId,modelId:ct.modelId,rgba:{...ct.rgba,a:.3}}));await de.baseCompt.setSelectColorUserModelCpt(Fn,{rank:0})}}),lt.push({id:"isolate",label:"隔离选中构件",divided:!0,action:async()=>{await de.baseCompt.loadAllNodeDetailsForModel();const Fn=(await de.baseCompt.getSelected()).map(ct=>({elementId:ct.elementId,modelId:ct.modelId,show:!0}));de.isolateComponents(Fn)}})}lt.push({id:"showAll",label:"显示所有",action:async()=>{de.baseCompt.setAllComponentsVisibility(!0),await de.baseCompt.clearSelection()}}),lt.push(...V.value),S({x:Us,y:_s},lt)},Pt.ScreenSpaceEventType.RIGHT_CLICK),de.addContextMenuItems=M,de.insertContextMenu=de.addContextMenuItems,de.removeContextMenuItems=E,de.deleteContextMenu=de.removeContextMenuItems,de.closeContextMenu=L,de.hideContextMenu=de.closeContextMenu,de.onSetTeleportTarget=J=>{X.value=J},await r.nextTick();const $l=Pe?.onLoaded||Pe?.onloaded;$l&&$l({Cesium:Pt,viewer:Xt,methods:vi}),Te("init",{Cesium:Pt,viewer:Xt,methods:vi}),Te("ready",{Cesium:Pt,viewer:Xt,methods:vi})}};let $=!1;Te("register",(Pe,Re)=>{$=!0,Be(Pe,Re)}),$||setTimeout(()=>{x.value.getViewer||Be()},0)}catch(z){c.value="Failed to load Cesium: "+(z.message||z),console.error(z)}}),r.onUnmounted(()=>{ce.setContainer(null)}),e({initMap:()=>x.value,initializeViewer:(z,Y)=>Be(z,Y)}),(z,Y)=>(r.openBlock(),r.createElementBlock("div",{class:r.normalizeClass(["leiting-bim-container",[`theme-${j.value}`]]),onContextmenu:Y[24]||(Y[24]=r.withModifiers(()=>{},["prevent","stop"]))},[!a.value&&!c.value?(r.openBlock(),r.createBlock(r.unref(ie.Spin),{key:0,class:"loading",size:"large",tip:"加载基础组件中..."})):r.createCommentVNode("",!0),c.value?(r.openBlock(),r.createBlock(r.unref(ie.Alert),{key:1,class:"error",type:"error",message:c.value,"show-icon":""},null,8,["message"])):r.createCommentVNode("",!0),r.createElementVNode("div",{ref_key:"containerRef",ref:i,class:"cesium-viewer"},[r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(bn,{key:0,visible:U.value,"active-ids":re.value,"custom-items":H.value,onAction:oe,"is-2d":d.value==="2d"},null,8,["visible","active-ids","custom-items","is-2d"])),r.unref(h)&&!C.value&&!T.value?(r.openBlock(),r.createBlock(Il,{key:1,"active-ids":re.value,onItemClick:ge,onSubItemClick:ve},null,8,["active-ids"])):r.createCommentVNode("",!0),r.unref(h)&&n.showTree!==!1&&!C.value?(r.openBlock(),r.createElementBlock("button",{key:2,class:r.normalizeClass(["mobile-float-tree-btn",{active:u.value}]),onClick:Y[0]||(Y[0]=$=>u.value=!u.value)},[r.createElementVNode("img",{src:r.unref(Rs),class:"mobile-float-tree-icon",alt:"目录树"},null,8,CI)],2)):r.createCommentVNode("",!0),(r.openBlock(),r.createBlock(r.Teleport,{to:X.value||"body",disabled:!X.value},[r.createElementVNode("div",{ref_key:"uiOverlayRef",ref:s,class:"leiting-ui-overlay"},[r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(In,{key:0,visible:A.value,"full-height":Q.info,"onUpdate:visible":Y[1]||(Y[1]=$=>A.value=$)},null,8,["visible","full-height"])),r.unref(h)?(r.openBlock(),r.createBlock(Dl,{key:1,visible:A.value,"onUpdate:visible":Y[2]||(Y[2]=$=>A.value=$),onClose:Y[3]||(Y[3]=()=>{A.value=!1})},null,8,["visible"])):r.createCommentVNode("",!0),r.createVNode(Bn,{ref_key:"LeitingPositionRef",ref:se,visible:b.value,"full-height":Q.adjustModel,"onUpdate:visible":Y[4]||(Y[4]=$=>b.value=$)},null,8,["visible","full-height"]),r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(xn,{key:2,visible:I.value,"full-height":Q.setting,"tianditu-token":f.tiandituToken,"initial-config":l.value,"onUpdate:visible":Y[5]||(Y[5]=$=>I.value=$)},null,8,["visible","full-height","tianditu-token","initial-config"])),r.unref(h)?(r.openBlock(),r.createBlock(xl,{key:3,visible:I.value,"onUpdate:visible":Y[6]||(Y[6]=$=>I.value=$),onClose:Y[7]||(Y[7]=()=>{I.value=!1,Z.value=Z.value.filter($=>$!=="setting")})},null,8,["visible"])):r.createCommentVNode("",!0),n.showTree!==!1&&!r.unref(h)?(r.openBlock(),r.createBlock(hi,r.mergeProps({key:4},{...p,...n.treeProps},{visible:u.value,"full-height":Q.tree,"tree-data":F.value.length>0?F.value:n.treeProps?.treeData||[],"onUpdate:visible":Y[8]||(Y[8]=$=>{u.value=$})}),null,16,["visible","full-height","tree-data"])):r.createCommentVNode("",!0),n.showTree!==!1&&r.unref(h)?(r.openBlock(),r.createBlock(Bl,{key:5,visible:u.value,"tree-data":F.value.length>0?F.value:n.treeProps?.treeData||[],"onUpdate:visible":Y[9]||(Y[9]=$=>{u.value=$}),onClose:Y[10]||(Y[10]=()=>{u.value=!1})},null,8,["visible","tree-data"])):r.createCommentVNode("",!0),r.createVNode(tw,{visible:R.value,"onUpdate:visible":Y[11]||(Y[11]=$=>R.value=$)},null,8,["visible"]),r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(bw,{key:6,visible:T.value,"onUpdate:visible":Y[12]||(Y[12]=$=>T.value=$)},null,8,["visible"])),r.unref(h)?(r.openBlock(),r.createBlock(Tl,{key:7,visible:T.value,"default-tool":B.value,"onUpdate:visible":Y[13]||(Y[13]=$=>{T.value=$,$||(B.value=null)}),onClose:Y[14]||(Y[14]=()=>{T.value=!1,B.value=null})},null,8,["visible","default-tool"])):r.createCommentVNode("",!0),r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(wn,{key:8,visible:m.value,"full-height":Q.section,"onUpdate:visible":Y[15]||(Y[15]=$=>m.value=$)},null,8,["visible","full-height"])),r.unref(h)?(r.openBlock(),r.createBlock(Sl,{key:9,visible:m.value,"onUpdate:visible":Y[16]||(Y[16]=$=>m.value=$),onClose:Y[17]||(Y[17]=()=>{m.value=!1})},null,8,["visible"])):r.createCommentVNode("",!0),r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(vn,{key:10,visible:C.value,"full-height":Q.roam,"onUpdate:visible":Y[18]||(Y[18]=$=>C.value=$)},null,8,["visible","full-height"])),r.unref(h)?(r.openBlock(),r.createBlock(Ml,{key:11,visible:C.value,"onUpdate:visible":Y[19]||(Y[19]=$=>C.value=$),onClose:Y[20]||(Y[20]=()=>{C.value=!1})},null,8,["visible"])):r.createCommentVNode("",!0),r.createVNode(ZE,{visible:k.value,"current-model-id":v.value,"onUpdate:visible":Y[21]||(Y[21]=$=>k.value=$)},null,8,["visible","current-model-id"]),r.createVNode(Wb,{ref_key:"cadPositionRef",ref:D,visible:P.value,"onUpdate:visible":Y[22]||(Y[22]=$=>P.value=$),onSave:_e},null,8,["visible"]),r.createVNode(Bw,{visible:r.unref(g),position:r.unref(N),items:r.unref(w),"onUpdate:visible":Y[23]||(Y[23]=$=>g.value=$)},null,8,["visible","position","items"]),r.renderSlot(z.$slots,"default",r.normalizeProps(r.guardReactiveProps({methods:x.value,isReady:a.value})),void 0,!0)],512)],8,["to","disabled"]))],512)],34))}}),[["__scopeId","data-v-a67715d1"]]);function EI(n,e={}){const{tapDelay:t=300,doubleTapDelay:i=300,moveThreshold:s=10}=e;let o=0,a={x:0,y:0},c=0,l=0,d=null;const h=[],f=[],p=[],u={},m=w=>{const S=w.touches[0]||w.changedTouches[0];return{x:S?.clientX??0,y:S?.clientY??0}},C=w=>{const S=m(w);o=Date.now(),a=S,c=0,p.forEach(({handler:L,delay:V})=>{d=window.setTimeout(()=>{L(w),d=null},V)})},A=w=>{const S=m(w),L=S.x-a.x,V=S.y-a.y;c=Math.sqrt(L*L+V*V),d&&c>s&&(clearTimeout(d),d=null)},b=w=>{const S=Date.now()-o,L=m(w),V=L.x-a.x,M=L.y-a.y;d&&(clearTimeout(d),d=null);const E=S<t&&c<s;if(E&&Date.now()-l<i&&c<s?(f.forEach(D=>D(w)),l=0):E&&(h.forEach(D=>D(w)),l=Date.now()),c>50){const D=Math.abs(V),F=Math.abs(M);D>F?V>0&&u.right?u.right(w):V<0&&u.left&&u.left(w):M>0&&u.down?u.down(w):M<0&&u.up&&u.up(w)}},I=w=>{h.push(w)},k=w=>{f.push(w)},P=(w,S=500)=>{p.push({handler:w,delay:S})},R=w=>{u.left=w},T=w=>{u.right=w},B=w=>{u.up=w},g=w=>{u.down=w},N=()=>{d&&(clearTimeout(d),d=null),h.length=0,f.length=0,p.length=0,Object.keys(u).forEach(w=>{delete u[w]})};return r.onMounted(()=>{const w=n.value;w&&(w.addEventListener("touchstart",C,{passive:!1}),w.addEventListener("touchmove",A,{passive:!1}),w.addEventListener("touchend",b,{passive:!1}))}),r.onUnmounted(()=>{N();const w=n.value;w&&(w.removeEventListener("touchstart",C),w.removeEventListener("touchmove",A),w.removeEventListener("touchend",b))}),{onTap:I,onDoubleTap:k,onLongPress:P,onSwipeLeft:R,onSwipeRight:T,onSwipeUp:B,onSwipeDown:g,destroy:N}}function bI(n){const e=t=>{t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement||t.target instanceof HTMLSelectElement||t.preventDefault()};return n.addEventListener("touchmove",e,{passive:!1}),()=>{n.removeEventListener("touchmove",e)}}function wI(){let n=0;const e=t=>{const i=Date.now();i-n<=300&&t.preventDefault(),n=i};return document.addEventListener("touchend",e,{passive:!1}),document.addEventListener("gesturestart",t=>t.preventDefault()),document.addEventListener("gesturechange",t=>t.preventDefault()),()=>{document.removeEventListener("touchend",e)}}function vI(n,e={}){const{delay:t=500,moveThreshold:i=10}=e,s=r.ref(!1);let o=null,a={x:0,y:0},c=!1;const l=u=>{if(u.touches.length!==1)return;u.preventDefault(),c=!0,s.value=!1;const m=u.touches[0];a={x:m?.clientX??0,y:m?.clientY??0},o=window.setTimeout(()=>{c&&(s.value=!0,n())},t)},d=u=>{if(!c||o===null)return;const m=u.touches[0],C=(m?.clientX??0)-a.x,A=(m?.clientY??0)-a.y;Math.sqrt(C*C+A*A)>i&&f()},h=()=>{c=!1,s.value=!1,o!==null&&(clearTimeout(o),o=null)},f=()=>{c=!1,s.value=!1,o!==null&&(clearTimeout(o),o=null)};return{isLongPressing:s,handlers:{onTouchStart:l,onTouchMove:d,onTouchEnd:h},start:l,end:h,cancel:f}}function II(n,e,t={}){const{delay:i=500,moveThreshold:s=10}=t;let o=null,a={x:0,y:0};const c=h=>{if(h.touches.length!==1)return;h.preventDefault();const f=h.touches[0];a={x:f?.clientX??0,y:f?.clientY??0},o=window.setTimeout(()=>{e()},i)},l=h=>{if(o===null)return;const f=h.touches[0],p=(f?.clientX??0)-a.x,u=(f?.clientY??0)-a.y;Math.sqrt(p*p+u*u)>s&&(clearTimeout(o),o=null)},d=()=>{o!==null&&(clearTimeout(o),o=null)};return n.addEventListener("touchstart",c,{passive:!1}),n.addEventListener("touchmove",l,{passive:!1}),n.addEventListener("touchend",d),n.addEventListener("touchcancel",d),()=>{o!==null&&(clearTimeout(o),o=null),n.removeEventListener("touchstart",c),n.removeEventListener("touchmove",l),n.removeEventListener("touchend",d),n.removeEventListener("touchcancel",d)}}const BI={tapThreshold:10,doubleTapInterval:300,longPressDelay:500,panThreshold:20,pinchThreshold:.02};function xI(n={}){const e={...BI,...n},t=r.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}),i=r.ref(!1),s=r.ref(!1),o=r.ref(!1);let a=0,c=0,l=null,d=0,h=1,f=0,p=null;const u={onTap:[],onDoubleTap:[],onLongPress:[],onPanStart:[],onPanMove:[],onPanEnd:[],onPinchStart:[],onPinchMove:[],onPinchEnd:[],onRotate:[]},m=M=>{if(M.length<2)return 0;const E=M[1].clientX-M[0].clientX,y=M[1].clientY-M[0].clientY;return Math.sqrt(E*E+y*y)},C=M=>M.length<2?0:Math.atan2(M[1].clientY-M[0].clientY,M[1].clientX-M[0].clientX)*(180/Math.PI);return{state:t,isActive:i,isPanning:s,isPinching:o,handlers:{onTouchStart:M=>{if(M.touches.length===1){const E=M.touches[0];p=E.identifier,a=Date.now(),t.startX=E.clientX,t.startY=E.clientY,t.currentX=E.clientX,t.currentY=E.clientY,t.deltaX=0,t.deltaY=0,i.value=!0,l=window.setTimeout(()=>{t.type="long-press",u.onLongPress.forEach(y=>y(M))},e.longPressDelay)}else M.touches.length===2&&(l&&(clearTimeout(l),l=null),o.value=!0,d=m(M.touches),h=1,f=C(M.touches),u.onPinchStart.forEach(E=>E(M)))},onTouchMove:M=>{if(M.touches.length===1&&p!==null){let E=null;for(let F=0;F<M.touches.length;F++)if(M.touches[F].identifier===p){E=M.touches[F];break}if(!E)return;const y=E.clientX-t.startX,v=E.clientY-t.startY;Math.sqrt(y*y+v*v)>e.panThreshold&&!s.value&&(s.value=!0,t.type="pan",l&&(clearTimeout(l),l=null),u.onPanStart.forEach(F=>F(M))),s.value&&(M.preventDefault(),t.deltaX=E.clientX-t.currentX,t.deltaY=E.clientY-t.currentY,t.currentX=E.clientX,t.currentY=E.clientY,t.velocityX=t.deltaX,t.velocityY=t.deltaY,u.onPanMove.forEach(F=>F(M)))}else if(M.touches.length===2&&o.value){M.preventDefault();const E=m(M.touches),y=C(M.touches),v=E/d;t.scale=h*v,t.rotation=y-f,u.onPinchMove.forEach(D=>D(M)),u.onRotate.forEach(D=>D(M))}},onTouchEnd:M=>{if(t.duration=Date.now()-a,l&&(clearTimeout(l),l=null),M.touches.length===0){if(s.value)t.type="pan",u.onPanEnd.forEach(E=>E(M));else if(o.value)u.onPinchEnd.forEach(E=>E(M));else if(t.type==="none"&&t.duration<300){const E=Date.now();E-c<e.doubleTapInterval?(t.type="double-tap",u.onDoubleTap.forEach(y=>y(M)),c=0):(t.type="tap",u.onTap.forEach(y=>y(M)),c=E)}s.value=!1,o.value=!1,i.value=!1,p=null,setTimeout(()=>{t.type="none",t.deltaX=0,t.deltaY=0,t.scale=1,t.rotation=0},50)}}},onTap:M=>{u.onTap.push(M)},onDoubleTap:M=>{u.onDoubleTap.push(M)},onLongPress:M=>{u.onLongPress.push(M)},onPanStart:M=>{u.onPanStart.push(M)},onPanMove:M=>{u.onPanMove.push(M)},onPanEnd:M=>{u.onPanEnd.push(M)},onPinchStart:M=>{u.onPinchStart.push(M)},onPinchMove:M=>{u.onPinchMove.push(M)},onPinchEnd:M=>{u.onPinchEnd.push(M)},onRotate:M=>{u.onRotate.push(M)}}}const bi={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 SI(n={}){const e={...bi,...n};return{requestRenderMode:e.enableFpsLimit,maximumRenderTimeChange:e.enableFpsLimit?1e3/e.targetFps:void 0,scene3DOnly:!0,shouldAnimate:!0}}function TI(n={}){const e={...bi,...n};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 MI(n={}){const e={...bi,...n},i={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:i.maximumScreenSpaceError,skipLevelOfDetail:e.enableModelLod,baseScreenSpaceError:i.baseScreenSpaceError,skipScreenSpaceErrorFactor:i.skipScreenSpaceErrorFactor,skipLevels:i.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 DI(n=30){const e=r.ref(60),t=r.ref(!1);let i=0,s=0,o=0;const a=1e3/n,c=()=>{t.value=!0,i=performance.now(),o=i,s=0},l=()=>{if(!t.value)return!0;const h=performance.now(),f=h-i;return s++,h-o>=1e3&&(e.value=Math.round(s*1e3/(h-o)),s=0,o=h),f>=a?(i=h-f%a,!0):!1},d=()=>{t.value=!1};return r.onUnmounted(()=>{d()}),{fps:e,isControlling:t,startControl:c,stopControl:d,tick:l}}function kI(n,e){let t=null;const i=((...s)=>{t!==null&&clearTimeout(t),t=window.setTimeout(()=>{n(...s),t=null},e)});return i.cancel=()=>{t!==null&&(clearTimeout(t),t=null)},i}function PI(n,e){let t=!1;return((...s)=>{t||(n(...s),t=!0,setTimeout(()=>{t=!1},e))})}function FI(n,e=200){let t=null;const i=()=>{t!==null&&clearTimeout(t),t=window.setTimeout(()=>{n(),t=null},e)},s=()=>{t!==null&&(clearTimeout(t),t=null)};return r.onUnmounted(()=>{s()}),{load:i,cancel:s}}function kl(n){const e=r.ref(),t=r.ref(n.theme||"dark"),i=r.ref(n.menuSize||"medium");r.provide("leiting-theme",t),r.provide("leiting-menu-size",i);function s(c){r.onUnmounted(()=>{e.value=null}),c(n,e)}function o(){const c=r.unref(e);return c||console.error("未获取到leiting实例!"),c}const a=new Proxy({},{get(c,l){const d=o();if(!d)return;const h=d[l];return typeof h=="function"?h.bind(d):h},set(c,l,d){const h=o();return h?(h[l]=d,!0):!1}});return[s,a]}const NI=Ct,RI={install:(n,e)=>{if(n.component("LeitingBIM",Ei),n.component("LeitingTree",hi),n.component("LeitingDraggableCard",Le),n.component("leiting-draggable-card",Le),n.component("LeitingMenu",bn),n.component("leiting-menu",bn),n.component("LeitingSection",wn),n.component("leiting-section",wn),n.component("LeitingPlayer",vn),n.component("leiting-player",vn),n.component("LeitingInfo",In),n.component("leiting-info",In),n.component("LeitingPosition",Bn),n.component("leiting-position",Bn),n.component("LeitingSetting",xn),n.component("leiting-setting",xn),!e)return;const t={...NI,...e};t.cesiumUrl&&Ii(t).catch(i=>{console.error("[LeitingBim] Failed to load Cesium resources:",i)}),n.config.globalProperties.$leitingBimOptions=t}};_.DEFAULT_CESIUM_CONFIG=Ct,_.LeiTingBIM=Ei,_.LeiTingDraggableCard=Le,_.LeiTingInfo=In,_.LeiTingMenu=bn,_.LeiTingPlayer=vn,_.LeiTingPosition=Bn,_.LeiTingSection=wn,_.LeiTingSetting=xn,_.LeiTingTree=hi,_.LeitingBIM=Ei,_.LeitingDraggableCard=Le,_.LeitingInfo=In,_.LeitingMenu=bn,_.LeitingPlayer=vn,_.LeitingPosition=Bn,_.LeitingSection=wn,_.LeitingSetting=xn,_.LeitingTree=hi,_.MobileBottomNav=Il,_.MobileDrawer=Ls,_.MobileInfo=Dl,_.MobileMeasurement=Tl,_.MobilePlayer=Ml,_.MobileSection=Sl,_.MobileSetting=xl,_.MobileTree=Bl,_.default=RI,_.defaultMobileConfig=bi,_.disableDoubleTapZoom=wI,_.getAccessToken=Bi,_.getCesiumOptionsForMobile=SI,_.getTilesetOptionsForMobile=MI,_.getViewerOptionsForMobile=TI,_.leitingBim=Ei,_.loadCesium=Ii,_.preventDefaultTouchEvents=bI,_.useDebounce=kI,_.useDevice=vl,_.useFrameRateControl=DI,_.useGestureDetection=xI,_.useLazyLoad=FI,_.useLeiTing=kl,_.useLeiting=kl,_.useLongPress=vI,_.useLongPressOnElement=II,_.useModelTree=hl,_.useRightContextMenu=wl,_.useThrottle=PI,_.useTouchEvents=EI,_.waitForCesium=ec,Object.defineProperties(_,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
118
+ `});p.isModelAdjustment=!0,f.customShader=p}else e.brightness!==void 0&&e.brightness!==1&&!f.style&&(f.style=new i.Cesium3DTileStyle({color:`color('white') * ${e.brightness}`}))}}setModelBrightness(e){this.setModelColorAdjustment({brightness:e})}_defaultSkyBox=null;_updateLightDirection=e=>{e.light instanceof this.cesium.DirectionalLight&&(e.light.direction=e.camera.directionWC)};setEnvironmentMapEnable(e){this.is2d||(e?(this.viewer.scene.light=new this.cesium.DirectionalLight({direction:this.viewer.scene.camera.directionWC}),this.viewer.scene.preRender.addEventListener(this._updateLightDirection)):(this._defaultSkyBox&&(this.viewer.scene.skyBox=this._defaultSkyBox),this.viewer.scene.preRender.removeEventListener(this._updateLightDirection),this.viewer.scene.light=new this.cesium.SunLight),this.viewer.scene.imageBasedLighting&&(this.viewer.scene.imageBasedLighting.imageBasedLightingFactor=e?new this.cesium.Cartesian2(2,2):new this.cesium.Cartesian2(1,1)))}setAmbientOcclusion(e){if(this.is2d)return;const t=this.viewer.scene;if(!t||!t.postProcessStages||!t.postProcessStages.ambientOcclusion)return;const i=t.postProcessStages.ambientOcclusion;i.enabled=e,e&&(i.uniforms.ambientOcclusionOnly=!1,i.uniforms.intensity=3,i.uniforms.bias=.1,i.uniforms.lengthCap=.03,i.uniforms.stepSize=1,i.uniforms.blurStepSize=.86)}setCollisionDetection(e){if(this.is2d){this.viewer.scene.screenSpaceCameraController.enableCollisionDetection=!1;return}const t=this.viewer.scene.screenSpaceCameraController;t.enableCollisionDetection=e,e||t.minimumZoomDistance<1&&(t.minimumZoomDistance=1)}_customZoomHandler=null;setHeightBasedZoom(e){const t=this.viewer.scene.screenSpaceCameraController,i=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(i.CameraEventType.WHEEL)||t.zoomEventTypes.push(i.CameraEventType.WHEEL);return}t.zoomEventTypes=t.zoomEventTypes.filter(o=>o!==i.CameraEventType.WHEEL),this._customZoomHandler=new i.ScreenSpaceEventHandler(this.viewer.scene.canvas);let s=null;this._customZoomHandler.setInputAction(o=>{s=o.endPosition},i.ScreenSpaceEventType.MOUSE_MOVE),this._customZoomHandler.setInputAction(o=>{const a=this.viewer.camera,c=a.positionCartographic.height,l=Math.sign(o);if(c<.15&&l>0){ce.info("无法继续放大");return}const d=.3;let h=0;if(l>0){const m=c-1;h=m>0?m*d:0}else h=c*d;h=Math.max(.1,h),console.log(c);let f=null;if(!s)f=a.direction;else{const m=a.getPickRay(s);if(m){let C=this.viewer.scene.pickPosition(s);if(!C){const A=i.IntersectionTests.rayEllipsoid(m,this.viewer.scene.globe.ellipsoid);A&&(C=i.Ray.getPoint(m,A.start))}if(C){const A=i.Cartesian3.subtract(C,a.position,new i.Cartesian3);f=i.Cartesian3.normalize(A,new i.Cartesian3)}else f=a.direction}else f=a.direction}const p=l>0?h:-h*2,u=i.Cartesian3.multiplyByScalar(f,p,new i.Cartesian3);a.position=i.Cartesian3.add(a.position,u,new i.Cartesian3)},i.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 vy{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:i,duration:s}=e,o=new this.cesium.Cartesian3(t.x,t.y,t.z),a=new this.cesium.HeadingPitchRoll(i.heading,i.pitch,i.roll);!s||s<=0?this.viewer.camera.setView({destination:o,orientation:a}):this.viewer.camera.flyTo({destination:o,orientation:a,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||{},i=e.destination||e.position||{};this.flyToCameraView({position:{x:Number(i.x),y:Number(i.y),z:Number(i.z)},destination:{x:Number(i.x),y:Number(i.y),z:Number(i.z)},orientation:{heading:Number(t.heading||0),pitch:Number(t.pitch||0),roll:Number(t.roll||0)},duration:e.duration})}flyToLonLatHeight(e,t,i,s=1){const o=this.cesium.Cartesian3.fromDegrees(e,t,i),a={heading:this.cesium.Math.toRadians(0),pitch:this.cesium.Math.toRadians(-90),roll:0};!s||s<=0?this.viewer.camera.setView({destination:o,orientation:a}):this.viewer.camera.flyTo({destination:o,orientation:a,duration:s})}}function Iy(n){const{container:e,appContext:t,methods:i,viewerOptions:s,options:o,callbacks:a}=n,c=new jn,l=window.Cesium;if(!l)throw new Error("Cesium is not loaded");e.id=`cesium-container-${Ap()}`;const d={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}}},h=t?.config?.globalProperties?.$leitingBimOptions,f={...d,...h?.viewerOptions??{},...s??{}},p=new l.Viewer(e,f);p.camera.setView({destination:l.Cartesian3.fromDegrees(108,32,1e7),orientation:{heading:l.Math.toRadians(0),pitch:l.Math.toRadians(-90),roll:0}});let u=i;if(!u&&h&&(h.methods||(h.methods={}),u=h.methods),u){const m=new Dp({cesium:l,viewer:p,options:o,callbacks:a}),C=new Lr({cesium:l,viewer:p}),A=new wy({cesium:l,viewer:p}),b=new kp({cesium:l,viewer:p}),I=new vy({cesium:l,viewer:p});let k;const P=new Ds({cesium:l,viewer:p});o&&(o.globe!==void 0&&A.setGlobeEnvironmentVisible(o.globe),o.terrain!==void 0&&A.setTerrainEnable(o.terrain),o.depthTest!==void 0&&A.setDepthTestEnable(o.depthTest),o.mapProvider&&o.mode!=="2d"&&A.changeBaseMap(o.mapProvider,{token:o.tiandituToken,layerType:o.tiandituLayerType,showAnnotation:o.tiandituShowLabel,url:o.arcgisUrl}),o.shadows!==void 0&&A.setShadowsEnable(o.shadows),o.environmentMap!==void 0&&A.setEnvironmentMapEnable(o.environmentMap),o.ambientOcclusion!==void 0&&A.setAmbientOcclusion(o.ambientOcclusion),o.time!==void 0&&A.setTime(o.time),o.brightness!==void 0&&A.setModelBrightness(o.brightness),o.backgroundColor!==void 0&&A.setBackgroundColor(o.backgroundColor),o.collision!==void 0&&A.setCollisionDetection(o.collision),o.mouseHabit!==void 0&&A.setMouseHabit(o.mouseHabit),o.heightBasedZoom!==void 0&&A.setHeightBasedZoom(o.heightBasedZoom)),o&&o.mode==="2d"&&(console.log("InitMap: Setting CAD Mode 2D"),A.setCadMode("2d"),k=new rl({cesium:l,viewer:p})),C.events.on("tilesetLoaded",g=>{m.baseCompt.attachTileset(g,m.baseCompt.selectedColor),m.baseSection.attachTileset(g,g.leiting?.model?.modelId),u&&u.tilesLoad3dTiles&&u.tilesLoad3dTiles(g),o?.tilesLoad3dTiles&&o.tilesLoad3dTiles(g.leiting)}),C.events.on("loadingStatus",g=>{u&&u.onLoadingStatus&&u.onLoadingStatus(g)}),C.events.on("mountAll3Dtiles",({modelList:g})=>{o?.mountAll3Dtiles&&o.mountAll3Dtiles(g),u?.mountAll3Dtiles&&u.mountAll3Dtiles(g)}),C.events.on("updateModels",({modelList:g})=>{o?.updateModels&&o.updateModels(g),u?.updateModels&&u.updateModels(g)}),b.events.on("mountAllCad",g=>{o?.mountAllCad&&o.mountAllCad(g),u?.mountAllCad&&u.mountAllCad(g)}),m.baseCompt.loadNodeDetailsForModel=g=>C.loadNodeDetailsForModel(g),m.baseCompt.selectionChange(g=>{g.length!==0&&(o?.selectionChange&&o.selectionChange(g),u?.selectionChange&&u.selectionChange(g))}),u.onSearchComponent=g=>{o?.searchComponent&&o.searchComponent(g),u?.searchComponent&&u.searchComponent(g)};const R=u.saveRegion;u.saveRegion=g=>{o?.saveRegion&&o.saveRegion(g),R&&R!==o?.saveRegion&&R(g)};const T=u.saveCadCalibration;u.saveCadCalibration=g=>{o?.saveCadCalibration&&o.saveCadCalibration(g),T&&T!==o?.saveCadCalibration&&T(g)};const B=u.saveCadRegion;u.saveCadRegion=g=>{o?.saveCadRegion&&o.saveCadRegion(g),B&&B!==o?.saveCadRegion&&B(g)},u.getCesium=()=>l,u.getViewer=()=>p,u.getAnnotationInstance=()=>k,u.getMeasureInstance=()=>P,u.flyToCamera=g=>{I.setCameraView(g)},u.flyToLonLatHeight=(g,N,w,S=1)=>{I.flyToLonLatHeight(g,N,w,S)},u.flyTo=u.flyToCamera,u.getCameraState=()=>I.getCameraView(),u.getCameraInfo=u.getCameraState,u.restoreCameraState=g=>I.flyToCameraView(g),u.flyToCameraView=u.restoreCameraState,u.getCameraPositionTarget=()=>I.getCurrentCameraPositionAndTarget(),u.getCurrentCameraPositionAndTarget=u.getCameraPositionTarget,u.setCameraLookAt=g=>I.setCameraView(g),u.setCameraView=u.setCameraLookAt,u.setCanvasBackground=g=>A.setBackgroundColor(g),u.setBackgroundColor=u.setCanvasBackground,u.setAntiAliasing=g=>m.enableCesiumFXAA(g),u.enableCesiumFXAA=u.setAntiAliasing,u.setSceneVisibility=g=>m.setSceneOptions(g),u.setSceneOptions=u.setSceneVisibility,u.addDebugPoint=(g,N,w=0)=>{p.entities.add({position:l.Cartesian3.fromDegrees(g,N,w),point:{pixelSize:10,color:l.Color.RED}})},u.addPoint=u.addDebugPoint,u.toggleDebugLabels=()=>m.enableTestLabel(),u.enableTestLabel=u.toggleDebugLabels,u.captureScreenshot=()=>{const g=p.scene.canvas;return p.render(),g.toDataURL("image/png")},u.getImageBase64=u.captureScreenshot,u.captureDomScreenshot=(g,N)=>m.getSnapDomSImageBase64(g,N),u.getSnapDomSImageBase64=u.captureDomScreenshot,u.addModels=g=>C.addModels(g),u.add3DtilesModel=u.addModels,u.addObliquePhotography=g=>C.addOSGB(g),u.addOSGB=u.addObliquePhotography,u.adjustOSGBModelMatrix=g=>C.updateOSGBMatrix(g),u.updateOSGBMatrix=u.adjustOSGBModelMatrix,u.setModelVisibility=g=>C.showModels(g),u.showModels=u.setModelVisibility,u.showTileset=u.setModelVisibility,u.removeModels=g=>C.deleteModels(g),u.deleteModels=u.removeModels,u.clearAllModels=()=>{C.deleteAllModels(),c.emit("deleteAllModels")},u.deleteAllModelList=u.clearAllModels,u.deleteAllModels=u.clearAllModels,u.flyToModel=g=>C.flyToTileset(g),u.flyToTileset=u.flyToModel,u.flyToByModelId=u.flyToModel,u.setModelBrightness=g=>m.updateModelEffect(g),u.updateModelEffect=u.setModelBrightness,u.getAllTilesets=()=>C.getMapTileset(),u.getMapTileset=u.getAllTilesets,u.getCurrentModelId=()=>C.getBIMmodelId(),u.getBIMmodelId=u.getCurrentModelId,u.getLoadedModels=()=>C.getModelList(),u.getModelList=u.getLoadedModels,u.loadModelStructure=async g=>{const N=typeof g=="string"?g:g?.modelId;if(!N){console.warn("loadModelStructure: modelId is required");return}return await C.loadTreeForModel(N)},u.loadTreeForModel=u.loadModelStructure,u.loadModelDetails=async g=>{const N=typeof g=="string"?g:g?.modelId;if(!N){console.warn("loadModelDetails: modelId is required");return}return await C.loadNodeDetailsForModel(N)},u.loadNodeDetailsForModel=u.loadModelDetails,u._loadNodeDetailsForModel=async g=>{const N=typeof g=="string"?g:g?.modelId;if(!N){console.warn("loadModelDetails: modelId is required");return}return await C._loadNodeDetailsForModel(N)},u.setMapTileset=g=>C.setMapTileset(g),u.setCurrentModelId=g=>C.setBIMmodelId(g),u.setBIMmodelId=u.setCurrentModelId,u.setModelList=g=>C.setModelList(g),u.highlightComponents=(g,N={})=>m.baseCompt.setSelectColorUserModelCpt(g,N),u.setSelectColorUserModelCpt=u.highlightComponents,m.baseCompt.setLoadNodeDetailsCallback(g=>C.loadNodeDetailsForModel(g)),u.highlightAllComponents=(g,N)=>m.baseCompt.setAllSelectColorUserModelCpt(g,N),u.setAllSelectColorUserModelCpt=u.highlightAllComponents,u.setSelectColorUserModelCptByClear=(g,N)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(g.selectCpts,N??{rank:0})},u.clearSelectColorUserModelCpt=()=>m.baseCompt.clearAllHaveSelected(),u.selectComponents=(g,N)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(g,N??{rank:0})},u.setSelecteds=u.selectComponents,u.setSelectionColor=(g,N,w,S)=>m.baseCompt.setSelectedColorRgba(g,N,w,S),u.setSelectedColor=u.setSelectionColor,u.clearSelection=()=>m.baseCompt.clearAllHaveSelected(),u.clearAllHaveSelected=u.clearSelection,u.getSelectedComponents=g=>m.baseCompt.getSelected(g),u.getSelected=u.getSelectedComponents,u.onSelectionChange=g=>{m.baseCompt.selectionChange(g)},u.selectionChange=u.onSelectionChange,u.flyToComponents=g=>m.baseCompt.flyToObjects(g),u.flyToObjects=u.flyToComponents,u.setConstructionData=async g=>{if(g&&Array.isArray(g)){const N=new Set;g.forEach(w=>{w.mergeCpts&&Array.isArray(w.mergeCpts)&&w.mergeCpts.forEach(S=>{S.modelId&&N.add(S.modelId)})}),N.size>0&&await Promise.all(Array.from(N).map(w=>u.loadNodeDetailsForModel(w)))}m.baseCompt.setAllConstructionProgressTracking(g)},u.setAllConstructionProgressTracking=u.setConstructionData,u.startConstructionSimulation=()=>m.baseCompt.enableConstructionProgressTracking(),u.enableAllConstructionProgressTracking=u.startConstructionSimulation,u.stopConstructionSimulation=()=>m.baseCompt.disableConstructionProgressTracking(),u.disableConstructionProgressTracking=u.stopConstructionSimulation,u.disableAllConstructionProgressTracking=u.stopConstructionSimulation,u.resetConstructionSimulation=()=>m.baseCompt.freshConstructionProgressTracking(),u.freshConstructionProgressTracking=u.resetConstructionSimulation,u.restartConstructionSimulation=()=>m.baseCompt.reStartAnimation(),u.reStartAnimation=u.restartConstructionSimulation,u.resumeFlyTo=()=>m.baseCompt.resumeFlyTo(),u.pauseConstructionSimulation=()=>m.baseCompt.pauseFlyTo(),u.pauseFlyTo=u.pauseConstructionSimulation,u.pauseAnimation=u.pauseConstructionSimulation,u.resumeConstructionSimulation=()=>m.baseCompt.resumeFlyTo(),u.resumeAnimation=u.resumeConstructionSimulation,u.setComponentsVisibility=async g=>await m.baseCompt.setComponentVisibility(g),u.setElementsListVisible=u.setComponentsVisibility,u.setAllComponentsVisibility=async g=>await m.baseCompt.setAllComponentsVisibility(g),u.setAllElementsVisible=u.setAllComponentsVisibility,u.isolateComponents=g=>m.baseCompt.isolateComponentVisibility(g),u.isolateComponentVisibility=u.isolateComponents,u.getComponentsByVisibility=g=>m.baseCompt._getComponentsByVisibility(g),u.getShowCpts=g=>m.baseCompt.getComponentsByVisibility(g),u.getElementsVisible=g=>m.baseCompt.getComponentsByVisibility(g),u.setComponentVisibility=u.setComponentsVisibility,u.enableSectioning=(g,N)=>m.baseSection.open(g,N),u.openSection=u.enableSectioning,u.disableSectioning=g=>m.baseSection.close(g),u.closeSection=u.disableSectioning,u.updateSectionBox=g=>m.baseSection.updateRange(g),u.updateSectionRange=u.updateSectionBox,u.getSectionBox=()=>m.baseSection.getRange(),u.getSectionRange=u.getSectionBox,u.fitSectionToModel=()=>m.baseSection.fitToModels(),u.fitToModels=u.fitSectionToModel,u.setSectionBoxVisibility=g=>m.baseSection.setBoxVisibility(g),u.startFirstPersonMode=()=>{m.baseCompt.disableSelection(),m.basePlayer.openPlayer()},u.openPlayer=u.startFirstPersonMode,u.startCameraRoam=()=>{m.baseCompt.disableSelection(),m.basePlayer.openCameraRoam()},u.stopFirstPersonMode=()=>{m.basePlayer.closePlayer(),m.baseCompt.enableSelection()},u.closePlayer=u.stopFirstPersonMode,u.setPlayerPosition=g=>m.basePlayer.setPersonPosition(g),u.setPersonPosition=u.setPlayerPosition,u.setPlayerDefaultPosition=()=>m.basePlayer.setDefaultPosition(),u.setWalkSpeed=g=>m.basePlayer.setSpeed({speed:g}),u.setPlayerSpeed=u.setWalkSpeed,u.setPlayerConfig=g=>m.basePlayer.setParams(g),u.setPlayerParams=u.setPlayerConfig,u.setPlayerAction=(g,N)=>m.basePlayer.setMoveState(g,N),u.setPlayerMoveState=u.setPlayerAction,u.bindPlayerControls=g=>m.basePlayer.bindUiKeys(g),u.bindPlayerUiKeys=u.bindPlayerControls,u.setGlobeVisibility=g=>A.setGlobeEnvironmentVisible(g),u.setGlobeEnvironmentVisible=u.setGlobeVisibility,u.setTerrainVisibility=g=>A.setTerrainEnable(g),u.setTerrainEnable=u.setTerrainVisibility,u.setDepthTest=g=>A.setDepthTestEnable(g),u.setDepthTestEnable=u.setDepthTest,u.setBaseMap=(g,N)=>A.changeBaseMap(g,N),u.changeBaseMap=u.setBaseMap,u.setWorldTime=g=>A.setTime(g),u.setTime=u.setWorldTime,u.setGisOptions=g=>{g.globe!==void 0&&A.setGlobeEnvironmentVisible(g.globe),g.elevation!==void 0&&A.setTerrainEnable(g.elevation),g.depthTestAgainstTerrain!==void 0&&A.setDepthTestEnable(g.depthTestAgainstTerrain),g.rendering!==void 0&&A.setAmbientOcclusion(g.rendering)},u.setShadowVisibility=g=>A.setShadowsEnable(g),u.setShadowsEnable=u.setShadowVisibility,u.setEnvironmentMapVisibility=g=>A.setEnvironmentMapEnable(g),u.setEnvironmentMapEnable=u.setEnvironmentMapVisibility,u.setAOVisibility=g=>A.setAmbientOcclusion(g),u.setAmbientOcclusion=u.setAOVisibility,u.setBackgroundColor=g=>A.setGlobeColor(g),u.setGlobeColor=u.setBackgroundColor,u.setModelBrightness=g=>A.setModelBrightness(g),u.adjustModelColor=g=>A.setModelColorAdjustment(g),u.setModelColorAdjustment=u.adjustModelColor,u.setShadowIntensity=g=>{A.setShadowDarkness?A.setShadowDarkness(g):console.warn("baseSetting.setShadowDarkness is not available. Please reload the page.")},u.setShadowDarkness=u.setShadowIntensity,u.switchSceneMode=async g=>{const N=g?"2d":"3d";await A.setCadMode(N),g&&!k&&(k=new rl({cesium:l,viewer:p}),u.setGlobeVisibility(!0)),c.emit("setMode",N)},u.setSceneMode=u.switchSceneMode,u.set2d=g=>u.switchSceneMode(g),u.is2dMode=()=>A.is2d,u.setMouseControlMode=g=>A.setMouseHabit(g),u.setMouseHabit=u.setMouseControlMode,u.setCollisionEnabled=g=>A.setCollisionDetection(g),u.setCollisionDetection=u.setCollisionEnabled,u.searchAndLocate=(g,N)=>A.searchLocation(g,N),u.searchLocation=u.searchAndLocate,u.getConfigure=()=>(console.warn("getConfigure is not initialized. Please ensure LeitingSetting component is mounted."),{}),u.setConfigure=g=>{console.warn("setConfigure is not initialized. Please ensure LeitingSetting component is mounted.",g)},u.addCadModel=g=>{const N={...g};return N.files&&!N.fileNames&&(N.fileNames=N.files),N.fileNames||(N.fileNames=[]),b.addDxfModel(N)},u.addDxfModel=u.addCadModel,u.deleteCad=g=>b.deleteCad(g),u.deleteAllCad=()=>b.deleteAllCad(),u.showCadModel=g=>b.showJson(g),u.showGeoJson=g=>b.showJson(g),u.showDxfModel=u.showCadModel,u.showCadLayer=g=>b.showJsonByLayer(g),u.showDxfLayer=u.showCadLayer,u.flyToCadModel=(g={})=>b.flyToCadModel(g),u.getCadModels=g=>b.getDxfModels(g),u.getDxfModels=u.getCadModels,u.getCadLayers=g=>b.getMapLayers(g),u.getDxfLayers=u.getCadLayers,u.getCadModelId=()=>b.getModelId(),u.setCadOpen=g=>b.setDxfOpen(g),u.setDxfOpen=u.setCadOpen,u.getCadOpen=()=>b.getDxfOpen(),u.getDxfOpen=u.getCadOpen,u.adjustCadModel=g=>b.adjustingModelByCad(g),u.adjustingModelByCad=u.adjustCadModel,u.saveAnnotations=()=>{let g=null;return k&&(g=k.saveAnnotations()),o?.saveAnnotations&&o.saveAnnotations(g),g},u.loadAnnotations=g=>k?k.loadAnnotations(g):!1,u.flyToTopView=()=>{b.flyToCadModel()},u.menuEvents=c,u.addMenuItems=g=>{c.emit("insertMenu",g)},u.insertMenu=u.addMenuItems,u.filterMenuItems=g=>{c.emit("setMenuListFilter",g)},u.setMenuListFilter=u.filterMenuItems,u.setMenuVisibility=g=>{c.emit("showMenu",g)},u.showMenu=u.setMenuVisibility,u.setPanelVisibility=(g,N)=>{c.emit("setMenuActive",g,N)},u.setMenuActive=u.setPanelVisibility,u.addContextMenuItems=g=>{console.warn("addContextMenuItems is not initialized yet. Please wait for LeitingBIM component to mount.",g)},u.insertContextMenu=u.addContextMenuItems,u.removeContextMenuItems=g=>{console.warn("removeContextMenuItems is not initialized yet.",g)},u.deleteContextMenu=u.removeContextMenuItems,u.closeContextMenu=()=>{console.warn("closeContextMenu is not initialized yet.")},u.hideContextMenu=u.closeContextMenu,u.getModelTree=()=>{const g=[],N=C.getMapTileset();return Object.keys(N).forEach(w=>{const S=N[w];if(S&&S.leiting&&S.leiting.tree){const L=S.leiting.tree;Array.isArray(L)?g.push(...L):g.push(L)}}),g},u.getTree=u.getModelTree,u.getAllComponentDetails=()=>{const g=C.getMapTileset(),N={},w=[];try{Object.keys(g).forEach(S=>{const L=g[S];if(!L||!L.leiting)return;const V=L.leiting,M=V.node,E=V.model.formData,y=V.box;if(!M||!M.nodeExtras)return;const v=V.model.modelId;N[v]=M.nodeExtras;const D=M.nodeExtras.element;if(!D)return;const F=y?y.center:{x:0,y:0,z:0};Object.values(D).forEach(Q=>{if(Q.box3)try{const O=l.Quaternion.fromAxisAngle(l.Cartesian3.UNIT_Z,l.Math.toRadians(E.totalRotation||0)),x=l.Matrix4.fromRotationTranslation(l.Matrix3.fromQuaternion(O),new l.Cartesian3(0,0,0)),U=l.Cartesian3.fromDegrees(E.longitude,E.latitude,E.height),H=l.Transforms.eastNorthUpToFixedFrame(U);l.Matrix4.multiply(H,x,H);const j=new l.Cartesian3(F.x,F.y,0),X=new l.Cartesian3;l.Matrix4.multiplyByPoint(H,j,X);const Z=l.Cartographic.fromCartesian(X),re=Q.box3?.Center?.x||0,se=Q.box3?.Center?.y||0,oe=Q.box3?.Center?.z||0,ge=new l.Cartesian3(-F.x+re,-F.y+se,0+oe),ve=l.Matrix4.fromTranslation(ge),Ce=l.Matrix4.clone(ve);l.Matrix4.multiply(x,Ce,Ce);const Be=l.Cartesian3.fromDegrees(Z.longitude/Math.PI*180,Z.latitude/Math.PI*180,E.height),Te=l.Transforms.eastNorthUpToFixedFrame(Be);l.Matrix4.multiply(Te,Ce,Te);const _e=l.Cartographic.fromCartesian(new l.Cartesian3(Te[12],Te[13],Te[14]));Q.box3.cartographic={longitude:_e.longitude/Math.PI*180,latitude:_e.latitude/Math.PI*180,height:_e.height};const z={id:Q.uniqueId,billboard:[{theme:"Tag9999",position:[Q.box3.cartographic.longitude,Q.box3.cartographic.latitude,Q.box3.cartographic.height],options:{text:Q.name}}]};w.push(z)}catch(O){console.warn("Error calculating component position:",O)}})})}catch(S){console.error("getAllComponents error:",S)}return N},u.getAllComponents=u.getAllComponentDetails,u.getComponentInfoList=async g=>{if(!Array.isArray(g))return[];const N=C.getMapTileset(),w=[],S=[],L={};g.forEach(M=>{const y=N[M.modelId]?.leiting?.model?.dbName;y&&M.elementId&&S.push({dbName:y,elementId:M.elementId,modelId:M.modelId})});const V=new Set;if(g.forEach(M=>{const E=N[M.modelId],y=`${M.modelId}_${M.elementId}`;L[y]||E&&E.leiting&&!E.leiting?.node?.nodeExtras&&E.leiting.model?.nodeUrl&&V.add(M.modelId)}),V.size>0&&C._loadNodeDetailsForModel)try{const M=Array.from(V).map(E=>C._loadNodeDetailsForModel(E));await Promise.all(M)}catch(M){console.error("Failed to load node details in getComponentInfoList",M)}try{g.forEach(M=>{const E=M.modelId,y=M.elementId,v=N[E];if(!v||!v.leiting)return;const D=`${E}_${y}`,F=L[D];let Q=null;if(F)Q=F;else{const O=v.leiting.node?.nodeExtras?.element||v.leiting.node?.nodeExtras;O&&O[y]&&(Q=JSON.parse(JSON.stringify(O[y])))}if(Q){if(Q.elementId=y,Q.modelId=E,Q.box3&&!Q.box3.cartographic)try{const O=v.leiting,x=O.model.formData,U=O.box,H=U?U.center:{x:0,y:0,z:0},j=l.Quaternion.fromAxisAngle(l.Cartesian3.UNIT_Z,l.Math.toRadians(x.totalRotation||0)),X=l.Matrix4.fromRotationTranslation(l.Matrix3.fromQuaternion(j),new l.Cartesian3(0,0,0)),Z=l.Cartesian3.fromDegrees(x.longitude,x.latitude,x.height),re=l.Transforms.eastNorthUpToFixedFrame(Z);l.Matrix4.multiply(re,X,re);const se=new l.Cartesian3(H.x,H.y,0),oe=new l.Cartesian3;l.Matrix4.multiplyByPoint(re,se,oe);const ge=l.Cartographic.fromCartesian(oe),ve=Q.box3?.Center?.x||0,Ce=Q.box3?.Center?.y||0,Be=Q.box3?.Center?.z||0,Te=new l.Cartesian3(-H.x+ve,-H.y+Ce,0+Be),_e=l.Matrix4.fromTranslation(Te),z=l.Matrix4.clone(_e);l.Matrix4.multiply(X,z,z);const Y=l.Cartesian3.fromDegrees(ge.longitude/Math.PI*180,ge.latitude/Math.PI*180,x.height),$=l.Transforms.eastNorthUpToFixedFrame(Y);l.Matrix4.multiply($,z,$);const Pe=l.Cartographic.fromCartesian(new l.Cartesian3($[12],$[13],$[14]));Q.box3.cartographic={longitude:Pe.longitude/Math.PI*180,latitude:Pe.latitude/Math.PI*180,height:Pe.height}}catch(O){console.warn("Error calculating component position:",O)}w.push(Q)}})}catch(M){console.error("getComponentInfoList processing error:",M)}return w},u.getCptInfos=u.getComponentInfoList,u.baseCompt=m.baseCompt,u.setTeleportTarget=g=>{u.onSetTeleportTarget&&u.onSetTeleportTarget(g)},window.Methods=u}return console.log("methods",u),{Cesium:l,viewer:p,methods:u,menuEvents:c}}function Fs(n){return r.getCurrentScope()?(r.onScopeDispose(n),!0):!1}function Ns(n){return typeof n=="function"?n():r.unref(n)}const By=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const xy=Object.prototype.toString,Sy=n=>xy.call(n)==="[object Object]",Ty=()=>{};function My(n){return r.getCurrentInstance()}function cl(n,e=!0,t){My()?r.onMounted(n,t):e?n():r.nextTick(n)}function kt(n){var e;const t=Ns(n);return(e=t?.$el)!=null?e:t}const En=By?window:void 0;function Dy(...n){let e,t,i,s;if(typeof n[0]=="string"||Array.isArray(n[0])?([t,i,s]=n,e=En):[e,t,i,s]=n,!e)return Ty;Array.isArray(t)||(t=[t]),Array.isArray(i)||(i=[i]);const o=[],a=()=>{o.forEach(h=>h()),o.length=0},c=(h,f,p,u)=>(h.addEventListener(f,p,u),()=>h.removeEventListener(f,p,u)),l=r.watch(()=>[kt(e),Ns(s)],([h,f])=>{if(a(),!h)return;const p=Sy(f)?{...f}:f;o.push(...t.flatMap(u=>i.map(m=>c(h,u,m,p))))},{immediate:!0,flush:"post"}),d=()=>{l(),a()};return Fs(d),d}function ky(){const n=r.ref(!1),e=r.getCurrentInstance();return e&&r.onMounted(()=>{n.value=!0},e),n}function dl(n){const e=ky();return r.computed(()=>(e.value,!!n()))}function ui(n,e={}){const{window:t=En}=e,i=dl(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const o=r.ref(!1),a=d=>{o.value=d.matches},c=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",a):s.removeListener(a))},l=r.watchEffect(()=>{i.value&&(c(),s=t.matchMedia(Ns(n)),"addEventListener"in s?s.addEventListener("change",a):s.addListener(a),o.value=s.matches)});return Fs(()=>{l(),c(),s=void 0}),o}function Py(n,e,t={}){const{window:i=En,...s}=t;let o;const a=dl(()=>i&&"ResizeObserver"in i),c=()=>{o&&(o.disconnect(),o=void 0)},l=r.computed(()=>Array.isArray(n)?n.map(f=>kt(f)):[kt(n)]),d=r.watch(l,f=>{if(c(),a.value&&i){o=new ResizeObserver(e);for(const p of f)p&&o.observe(p,s)}},{immediate:!0,flush:"post"}),h=()=>{c(),d()};return Fs(h),{isSupported:a,stop:h}}function Fy(n,e={width:0,height:0},t={}){const{window:i=En,box:s="content-box"}=t,o=r.computed(()=>{var f,p;return(p=(f=kt(n))==null?void 0:f.namespaceURI)==null?void 0:p.includes("svg")}),a=r.ref(e.width),c=r.ref(e.height),{stop:l}=Py(n,([f])=>{const p=s==="border-box"?f.borderBoxSize:s==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(i&&o.value){const u=kt(n);if(u){const m=u.getBoundingClientRect();a.value=m.width,c.value=m.height}}else if(p){const u=Array.isArray(p)?p:[p];a.value=u.reduce((m,{inlineSize:C})=>m+C,0),c.value=u.reduce((m,{blockSize:C})=>m+C,0)}else a.value=f.contentRect.width,c.value=f.contentRect.height},t);cl(()=>{const f=kt(n);f&&(a.value="offsetWidth"in f?f.offsetWidth:e.width,c.value="offsetHeight"in f?f.offsetHeight:e.height)});const d=r.watch(()=>kt(n),f=>{a.value=f?e.width:0,c.value=f?e.height:0});function h(){l(),d()}return{width:a,height:c,stop:h}}function ul(n={}){const{window:e=En,initialWidth:t=Number.POSITIVE_INFINITY,initialHeight:i=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=n,a=r.ref(t),c=r.ref(i),l=()=>{e&&(o?(a.value=e.innerWidth,c.value=e.innerHeight):(a.value=e.document.documentElement.clientWidth,c.value=e.document.documentElement.clientHeight))};if(l(),cl(l),Dy("resize",l,{passive:!0}),s){const d=ui("(orientation: portrait)");r.watch(d,()=>l())}return{width:a,height:c}}const Ny={class:"title"},Ry={class:"actions"},Ly={class:"card-body"},Oy=r.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(n,{emit:e}){const t=n,i=r.inject("leiting-theme",r.ref("dark")),s=ui("(max-width: 767.98px), (pointer: coarse)"),o=e,a=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:B=>{o("update:visible",B),o("update:open",B)}}),c=r.ref(null),l=r.ref(t.initialPosition?.x||0),d=r.ref(t.initialPosition?.y||0),h=r.ref(t.width),f=r.ref(t.fullHeight?"100%":"600px");r.watch(()=>t.fullHeight,B=>{B?f.value="100%":f.value==="100%"&&(f.value="600px")});const{height:p}=ul();r.watch(p,()=>{t.fullHeight&&(f.value="100%")});const u=r.ref(!1),m=B=>{u.value=!0,B.preventDefault(),B.stopPropagation();const g=B.clientX,N=B.clientY,w=typeof h.value=="number"?h.value:c.value?.offsetWidth||0,S=typeof f.value=="number"?f.value:c.value?.offsetHeight||0,L=M=>{if(!u.value)return;M.preventDefault();const E=M.clientX-g,y=M.clientY-N,v=w+E,D=S+y;v>100&&(h.value=v),D>100&&(f.value=D)},V=()=>{u.value=!1,document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",V)};document.addEventListener("mousemove",L),document.addEventListener("mouseup",V)},C=r.computed(()=>({left:`${l.value}px`,top:`${d.value}px`,width:typeof h.value=="number"?`${h.value}px`:h.value,height:typeof f.value=="number"?`${f.value}px`:f.value,position:"absolute",zIndex:2e3})),A=()=>{r.nextTick(()=>{if(c.value){const B=c.value.offsetParent||document.body,g=B.clientWidth,N=B.clientHeight,w=typeof h.value=="number"?h.value:c.value.offsetWidth||350,S=typeof f.value=="number"?f.value:c.value.offsetHeight||600;l.value+w>g&&(l.value=Math.max(0,g-w-20)),d.value+S>N&&(d.value=Math.max(0,N-S-20)),l.value<0&&(l.value=0),d.value<0&&(d.value=0)}})},b=r.ref(!1),I=B=>{if(B.target.closest(".close-btn")||B.target.closest(".actions"))return;b.value=!0,B.preventDefault(),B.stopPropagation();const g=B.clientX,N=B.clientY,w=l.value,S=d.value,L=M=>{if(!b.value)return;M.preventDefault();const E=M.clientX-g,y=M.clientY-N;l.value=w+E,d.value=S+y},V=()=>{b.value=!1,document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",V),A()};document.addEventListener("mousemove",L),document.addEventListener("mouseup",V)},k=()=>{r.nextTick(()=>{if(t.align&&c.value){const B=c.value.offsetParent||document.body,g=typeof h.value=="number"?h.value:c.value.offsetWidth||350;t.align==="right"?l.value=Math.max(0,B.clientWidth-g-20):t.align==="center"&&(l.value=Math.max(0,(B.clientWidth-g)/2))}A()})};r.onMounted(()=>{t.align?k():A()}),r.watch(a,B=>{B&&(t.align?k():A())});const P=()=>{a.value=!1,o("close")},R=B=>{if(B.target.closest(".close-btn")||B.target.closest(".actions")||B.touches.length!==1)return;b.value=!0,B.preventDefault(),B.stopPropagation();const g=B.touches[0],N=g?.clientX??0,w=g?.clientY??0,S=l.value,L=d.value,V=E=>{if(!b.value||E.touches.length!==1)return;E.preventDefault();const y=E.touches[0],v=(y?.clientX??0)-N,D=(y?.clientY??0)-w;l.value=S+v,d.value=L+D},M=()=>{b.value=!1,document.removeEventListener("touchmove",V),document.removeEventListener("touchend",M),A()};document.addEventListener("touchmove",V,{passive:!1}),document.addEventListener("touchend",M)},T=B=>{if(B.touches.length!==1)return;u.value=!0,B.preventDefault(),B.stopPropagation();const g=B.touches[0],N=g?.clientX??0,w=g?.clientY??0,S=typeof h.value=="number"?h.value:c.value?.offsetWidth||0,L=typeof f.value=="number"?f.value:c.value?.offsetHeight||0,V=E=>{if(!u.value||E.touches.length!==1)return;E.preventDefault();const y=E.touches[0],v=(y?.clientX??0)-N,D=(y?.clientY??0)-w,F=S+v,Q=L+D;F>100&&(h.value=F),Q>100&&(f.value=Q)},M=()=>{u.value=!1,document.removeEventListener("touchmove",V),document.removeEventListener("touchend",M)};document.addEventListener("touchmove",V,{passive:!1}),document.addEventListener("touchend",M)};return(B,g)=>r.withDirectives((r.openBlock(),r.createElementBlock("div",{ref_key:"cardRef",ref:c,class:r.normalizeClass(["draggable-card leiting-scroll",["leiting-theme-"+r.unref(i)]]),style:r.normalizeStyle(C.value)},[r.createElementVNode("div",{ref:"headerRef",class:"card-header",onMousedown:I,onTouchstart:R},[r.createElementVNode("span",Ny,r.toDisplayString(n.title),1),r.createElementVNode("div",Ry,[r.renderSlot(B.$slots,"header-extra",{},void 0,!0),r.createElementVNode("span",{class:"close-btn",onClick:P},"×")])],544),r.createElementVNode("div",Ly,[r.renderSlot(B.$slots,"default",{},void 0,!0)]),r.unref(s)?r.createCommentVNode("",!0):(r.openBlock(),r.createElementBlock("div",{key:0,class:"resize-handle",onMousedown:m,onTouchstart:T},[...g[0]||(g[0]=[r.createElementVNode("svg",{viewBox:"0 0 10 10",width:"10",height:"10",fill:"currentColor"},[r.createElementVNode("path",{d:"M10 10 L10 2 L2 10 Z"})],-1)])],32))],6)),[[r.vShow,a.value]])}}),ye=(n,e)=>{const t=n.__vccOpts||n;for(const[i,s]of e)t[i]=s;return t},Le=ye(Oy,[["__scopeId","data-v-d1736023"]]);function hl(n){const e=r.ref([]),t=r.ref([]),i=r.ref([]),s=r.ref(""),o=r.ref(!0);r.watch(()=>r.unref(n),f=>{if(!f||f.length===0)return;const p=[],u=(A,b)=>{A.forEach(I=>{const k=I.id||I.key||I.$id,P=I.modelId||b;P&&(I.modelId=P),k&&p.push(k),I.children&&I.children.length>0&&u(I.children,P)})};u(f);const m=new Set(i.value);let C=!1;p.forEach(A=>{m.has(A)||(m.add(A),C=!0)}),C&&(i.value=Array.from(m))},{immediate:!0,deep:!0});const a=r.computed(()=>{const f=r.unref(n);if(!f)return[];const p=[],u=(m,C)=>{m.forEach(A=>{const b=A.id||A.key||A.$id,I=A.name||A.title;p.push({key:b,title:I,parentKey:C}),A.children&&A.children.length>0&&u(A.children,b)})};return u(f),p}),c=f=>{e.value=f,o.value=!1},l=f=>{i.value=f},d=f=>{t.value=f},h=f=>a.value.find(u=>u.key===f)?.parentKey;return r.watch(s,f=>{if(!f)return;const u=a.value.filter(C=>C.title&&C.title.toLowerCase().includes(f.toLowerCase())).map(C=>C.parentKey),m=new Set;u.forEach(C=>{let A=C;for(;A;)m.add(A),A=h(A)}),e.value=[...m],o.value=!0}),{expandedKeys:e,selectedKeys:t,checkedKeys:i,searchValue:s,autoExpandParent:o,onExpand:c,onCheck:l,onSelect:d}}const Uy={class:"search-box"},_y={key:0},Qy={style:{color:"#f50"}},Vy={key:1},Gy={key:1,class:"empty-tip"},hi=ye(r.defineComponent({__name:"LeitingTree",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"构件树"},width:{type:[Number,String],default:320},treeData:{type:Array,default:()=>[]},initialPosition:{type:Object,default:()=>({x:0,y:0})},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close","select","check"],setup(n,{emit:e}){const t=ie.Input.Search,i=ie.Tree,s=n,o=e,a=r.inject("leiting-theme",r.ref("dark")),c=r.inject("leitingMethods"),l=w=>{c?.value?.onSearchComponent&&c.value.onSearchComponent(w)},d=r.computed({get:()=>s.open!==void 0?s.open:s.visible,set:w=>{o("update:visible",w),o("update:open",w)}}),h=r.ref(null),{height:f}=Fy(h),p=r.computed(()=>f.value||300),u=r.ref({children:"children",title:"name",key:"id"}),m=r.ref([]),{expandedKeys:C,selectedKeys:A,checkedKeys:b,searchValue:I,autoExpandParent:k}=hl(r.toRef(s,"treeData")),P=(w,S)=>{if(!S)return w;const L=S.toLowerCase();return w.reduce((V,M)=>{const y=(M.name||M.title||"").toLowerCase().includes(L);if(M.children&&M.children.length>0){const v=P(M.children,S);(v.length>0||y)&&V.push({...M,children:v})}else y&&V.push({...M});return V},[])};r.watch([()=>s.treeData,I],([w,S])=>{w?m.value=P(w,S||""):m.value=[]},{immediate:!0,deep:!0});const R=w=>{C.value=w,k.value=!1},T=w=>{const S=[],L=V=>{if(!V.children||V.children.length===0){const E=V.element_Id;V.modelId&&E&&S.push({modelId:V.modelId,elementId:E})}else V.children.forEach(L)};return L(w),S},B=(w,S)=>{b.value=w,o("check",w,S);const L=[],V=new Set(w.map(E=>String(E))),M=E=>{for(let y=0;y<E.length;y++){const v=E[y];if(!v.children||v.children.length===0){if(!V.has(String(v.id))){const Q=v.element_Id;v.modelId&&Q&&L.push({modelId:v.modelId,elementId:Q,show:!1})}}else v.children&&M(v.children)}};s.treeData&&M(s.treeData),c?.value?.setComponentVisibility&&c.value.setComponentVisibility(L),c?.value?.onTreeCheck&&c.value.onTreeCheck(w,S)},g=(w,S)=>{if(A.value=w,o("select",w,S),S.selected){const L=T(S.node);L.length>0&&c?.value?.flyToObjects&&c.value.flyToObjects({selectCpts:L})}c?.value?.onTreeSelect&&c.value.onTreeSelect(w,S)},N=()=>{o("update:visible",!1),o("close")};return(w,S)=>(r.openBlock(),r.createBlock(Le,{visible:d.value,"onUpdate:visible":S[1]||(S[1]=L=>d.value=L),title:n.title,"initial-position":n.initialPosition,"full-height":n.fullHeight,onClose:N},{default:r.withCtx(()=>[r.createElementVNode("div",{class:r.normalizeClass(["leiting-tree-container",[`theme-${r.unref(a)}`]])},[r.createElementVNode("div",Uy,[r.createVNode(r.unref(t),{value:r.unref(I),"onUpdate:value":S[0]||(S[0]=L=>r.isRef(I)?I.value=L:null),placeholder:"搜索构件","allow-clear":"","enter-button":"",onSearch:l},null,8,["value"])]),r.createElementVNode("div",{class:"tree-wrapper",ref_key:"treeWrapperRef",ref:h},[m.value&&m.value.length?(r.openBlock(),r.createBlock(r.unref(i),{key:0,"tree-data":m.value,"field-names":u.value,height:p.value,"expanded-keys":r.unref(C),"auto-expand-parent":r.unref(k),"selected-keys":r.unref(A),"checked-keys":r.unref(b),checkable:"","block-node":"",onExpand:R,onSelect:g,onCheck:B},{title:r.withCtx(({name:L,title:V})=>[(L||V)&&r.unref(I)&&(L||V).toLowerCase().indexOf(r.unref(I).toLowerCase())>-1?(r.openBlock(),r.createElementBlock("span",_y,[r.createTextVNode(r.toDisplayString((L||V).substr(0,(L||V).toLowerCase().indexOf(r.unref(I).toLowerCase())))+" ",1),r.createElementVNode("span",Qy,r.toDisplayString(r.unref(I)),1),r.createTextVNode(" "+r.toDisplayString((L||V).substr((L||V).toLowerCase().indexOf(r.unref(I).toLowerCase())+r.unref(I).length)),1)])):(r.openBlock(),r.createElementBlock("span",Vy,r.toDisplayString(L||V),1))]),_:1},8,["tree-data","field-names","height","expanded-keys","auto-expand-parent","selected-keys","checked-keys"])):(r.openBlock(),r.createElementBlock("div",Gy,"暂无数据"))],512)],2)]),_:1},8,["visible","title","initial-position","full-height"]))}}),[["__scopeId","data-v-3748c20d"]]),Hy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",Rs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAERSURBVDhPvZTrEYIwEISTCrQD6EA7gA60AylBK1Aq0A7ECrQDoQPsADrACuLuTMJkIiHxjzezgyR7H3d5KJVSqRAigcaQUjYYX2JgZY/P/O4lEgYYFo7pgPcc2kSCBoIUzDeo0klPPEsNYlX7AKzA/M6ASrRzYoIGG5DAOCvzBvzMOxqQazSgLLI1QdAW5jWpUAPV0AVKIc7FRCuNy7RkWozJtj1BED7ANbpDXHhffFXUwUnZwRYp7qw7Rx8/lLkV9R4QD2w1A8pjW3sA4h5au+pXEBS76P8D6Ut9/nXXaiRQdnBXqBfEC+4GdzSxW5v6F7CTeHnbCVCBsWIE+RYVrdF4DSz6OwgiADDexbmT3X0A4fSDfDjUugcAAAAASUVORK5CYII=",Yy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAFESURBVDhPlZMNEcIwDIVXBQwFgAJAAcMBDgAFIGE4wAHgABSwOdgcIAEUjPd6aS/rfhi7y12bJl9f0sxEf3xVVV0RPoetjTFvnWqGcgSylfgihA0CKcgJgBfsAqMiKiM0+gkKlCyZCN8uhPWCFOSBxARWORU4W2CdeV9XjxSEJcwkjokTqBpzjxjCn7CyVRECzjg8wHLYCmabK7CplBcLhMr2DZCqP0dCovYZ9hYGXx1izLUGUkkfxI/sTQiCf4N1zLWAWCKV2nP6PEhB2Ngd7B4GC4SJnCcP8SAFoc/Ph/TqjVvTPogFKUiJ/VGU+GdmUAA5ObA7cyC+iPt/MjUfKRL4emyuK+cGH8tufFRUHywZ+RYlnRDdIwfzLzVUibtQv1oNhoAExtfpVdIAiQIOWiY9o2sQxJemOydTS1jR1di2Zn8B8f27apou9kMAAAAASUVORK5CYII=",zy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAHDSURBVDhPlZOxL0NRFIe9ECubhehoIIjJ1HYwCkIiJpUQEkN1YZBobU0kFKNI3iTGYrDRv0BIhLXCYpCwiO35fs25zWva98JNvpz37j33d8+551yvLWIEQXDG0izMe55XjvJz816MUJG1LVuvYJcQrEb5xwkV2JSHGfAhgBJiu63E4oSUzpRtusa+wBooKkWnKOujQYh7SbCShQx0m9cpds4iOseOw7BFmUPwU341IQT2MaOQgi9QND+wiqNnBxT4X7SIbrAqhNI9wiUvJ+W8A99wDEWdwrw25iVkkenAEb5LkIQPuIMJWJGQoriFd+iBCkhc8zUhfJSm7mva5l3aadubDgtpMgGKpB/eoBfuQZFoPNhBj9gTaC3kKkEEGXPswF7Y5rLro1AW8UI6GmelmAzfkUWlNaWt6/iT0DOOA5bqoSuzHfIvofATqSJQb8KoiJbtPi6x2dA9FPjXE1F/uZKrv3IwCFcNqVmoPlal7QJ9q/wZCbk7Ioo9/tehE9q1r0nIxNQbG4YEXdkVjQ5J2OZXbB88gVrgQIJNj9aaT4LboPK7J6O0Ktb1KYtc/aYxGff6h3AYY6Nvzk2GQ1WQTVj4BST70jYaqceXAAAAAElFTkSuQmCC",Wy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADhSURBVHgBvVOBEYIwDEw9B2ADO4IjuIEjwAa6Aa7ABMAEuIIjOIFsUDao37vgxVZbBI+/+0tI0+fJBaIIrLUFaMAHmNNcsMAIE+vdJLQykQ+0wFHBrsyiT/sL2I1DDTac/+4Klzobov7WHxt29qGmaYaQnlhLCmUTa2l4C2ljvamFlEvY0xpCW/kA924GblfGWciZaJyXQvSmlOoDITSdXQBbcA8eKfy/nHDFeY470FIX8tzUIu84FmLWuTzz7yhRLPm54dKJ4+A5uoJ3HgHBUfUmxGIa4QDuKA4n3kLk9ZInw0qu5b1R1aYAAAAASUVORK5CYII=",jy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADFSURBVDhPxVPBDYMwDIwnKJu0G9ANYJMyQrsBbNIRGAE2gEnSO6mpIMJxkBC1lEds52zfOeK9b51zV5wte4lIr8RWbgGQh2fGmaIHJe4EetKPtDpRcA5AvwcB7FtgCcTOH0p3YzaQNd75QBiVXJG3LRtCRyQ6Jvsekd3gTsJVoDcihZLQQjXGTRMzIzPhOCCQyNYvSuEue7Qdm02yK0u1nM2m/FQyKb8JZHH+l81Ofdpdm82tvikjThyNlbSEBvIPFj+MfwA76qSYUG3g9QAAAABJRU5ErkJggg==",Ky="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEcSURBVDhPrZSNDYIwEIXpBOIGjMAIOIE4AbgBGwAbOIJu4Aa4gW4gI+gE9b3mjjSmibSR5ALX3H33W4y1Ns+yrIe0EH7HPC8YnyGjAegkEB5cYyiwrdWXIEc1xnSREGcuiTQEWeg7gG4+CMcl9ALnLkvogwScv+wq6FMQJJCJDgBtBcSAI3QClwe2YZAHcY2Ho4kGAVLA6U5/CEvdp4KYhesFhBPpCZIAz6jStHhproJcHyAHbb5nF+6RZ8CsGslIQaHp/gSxRzlApU4GugPxNuDN/eNarAJxapUPgm8rQ9C1SAI9AOGiHhGApSdnRN8FshbEiLwiLI1rMUM6zSQ0tX9c2lp/Iw0iMIPU38iFIN1mTmOjKa98vyWB4QM5XQnvsbFsyAAAAABJRU5ErkJggg==",$y="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAGPSURBVDhPrZT9UQIxEMUvFSgViBUoFQgVABV4VqBW4FmBUIFQgZRwVqBU4HUAVHC+X2aXycQw/sPOvLncZvdlv5JQFaTv+1upp8IyhLDHRLpLfe6FrXRt7hZShYyH+n8RauGAv/AkQNYIHICshFcRdu6fE/kGRN/mQGTIpzAzMoh6EV2fIsJ5IwNOj2IpVZ6i6difSecRVnlELZHIgHROisgXRCa78Z+IrMBf2pjLYJNENGSd1kO2pPghjKQniyqY8lFr2NfaqC18wn7nZCMlWg7xLq70TxfRLyHqtABN2lbp40mSSCzBcSebif1TPyKjDBcQ0eJJRkIUpHkMPUlnkBU+pnlWItL6ERgw8o1iqRHtgzAUGNRD2qmkvgMvNnneUQcZ4ggR6VGXG+OOA1koNvrFcY7+af++VJe0hucfyKQu+RWJc+SDZ3aNvlPpRl7T0qXdafNZYPDehLEZt/rOBR9U8QSaEKX0jHAaE4tshVrgLeJ+Xdl6rS8D3BWJXKnCEwWXEuco9grQ3bb0sP0Cn8/nPm/SMRQAAAAASUVORK5CYII=",Xy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACDSURBVHgB1ZFhDYAgEIWfzgBGIIINpIEViGAkG2gEbWADjWADfMw/iDgUfji/7e3gxt3uHsDXZFrrlrFBHJNpsPAgEEmORArn3lFroEZQCjcTbAhzepPsgbuCgn8FBWvsUAMfFR5OIPGS5G80JkrG2sopHKbO1BCoHy8ZNhRUT5X4BTu6qyNSwwCiMAAAAABJRU5ErkJggg==",qy={class:"menu-container"},Jy=["onClick","title"],Zy={class:"menu-icon"},e0=["src","alt"],t0={key:3,style:{"font-size":"12px"}},n0={key:0,class:"sub-menu"},i0=["onClick"],bn=r.defineComponent({__name:"LeitingMenu",props:{visible:{type:Boolean,default:!0},activeIds:{type:Array,default:()=>[]},is2d:{type:Boolean,default:!1},customItems:{type:Array,default:()=>[]}},emits:["action"],setup(n,{emit:e}){const t=n,i=r.inject("leiting-theme",r.ref("dark")),s=r.inject("leiting-menu-size",r.ref("medium")),o=r.inject("leitingMethods",r.ref({})),a=r.computed(()=>i.value||i),c=r.computed(()=>s.value||s),l=r.ref([{ID:"home",title:"主视角",src:Hy,key:"homeView"},{ID:"tree",title:"目录树",src:Rs,key:"componentTree"},{ID:"cadLayer",title:"图层",src:Rs,key:"cadLayer"},{ID:"measure",title:"量算",src:Yy,key:"measurement"},{ID:"section",title:"剖切",src:zy,key:"section"},{ID:"roam",title:"人物漫游",src:Wy,key:"roam"},{ID:"info",title:"构件信息",src:jy,key:"componentInfo"},{ID:"cadPosition",title:"调整位置",src:Ky,key:"cadPosition"},{ID:"annotation",title:"标注",src:Xy,key:"annotation"},{ID:"setting",title:"设置",src:$y,key:"setting"}]),d=r.ref([]),h=r.ref([...t.activeIds]);r.watch(()=>t.activeIds,P=>{h.value=[...P]},{deep:!0});const f=r.computed(()=>t.visible);o.value&&o.value.menuEvents&&(o.value.menuEvents.on("setMenuListFilter",P=>{d.value=P}),o.value.menuEvents.on("setMenuActive",(P,R)=>{R?h.value.includes(P)||h.value.push(P):h.value=h.value.filter(T=>T!==P)}));const p=r.computed(()=>{let P=l.value;if(t.is2d){const R=["homeView","measurement","cadLayer","annotation"];P=P.filter(T=>T.key&&R.includes(T.key))}else{const R=["cadLayer","cadPosition","annotation"];P=P.filter(T=>!T.key||!R.includes(T.key))}if(d.value.length>0&&(P=P.filter(R=>!R.key||!d.value.includes(R.key))),t.customItems&&t.customItems.length>0){const R=t.customItems.map(T=>({...T,key:T.ID,src:T.src||T.icon}));return[...P,...R]}return P}),u=e,m=P=>{const R=["homeView"];if(P.key&&R.includes(P.key))h.value.includes(P.ID)||(h.value.push(P.ID),setTimeout(()=>{const B=h.value.indexOf(P.ID);B>-1&&h.value.splice(B,1)},1e3));else{const B=h.value.indexOf(P.ID);B>-1?h.value.splice(B,1):h.value.push(P.ID)}const T=h.value.includes(P.ID);P.func&&P.func(P),P.key&&u("action",P.key,T)},C=P=>{d.value=P},A=P=>{console.log("LeitingMenu received showMenu event:",P)},b=(P,R)=>{const T=p.value.find(B=>B.ID===P||B.key===P);if(T){const B=h.value.indexOf(T.ID);R&&B===-1?h.value.push(T.ID):!R&&B>-1&&h.value.splice(B,1)}};let I=null;const k=()=>{o.value?.menuEvents&&(I&&(I.off("setMenuListFilter",C),I.off("showMenu",A),I.off("setMenuActive",b)),I=o.value.menuEvents,I.on("setMenuListFilter",C),I.on("showMenu",A),I.on("setMenuActive",b))};return r.onMounted(()=>{k()}),r.onUnmounted(()=>{I&&(I.off("setMenuListFilter",C),I.off("showMenu",A),I.off("setMenuActive",b))}),r.watch(o,()=>{k()},{deep:!0}),(P,R)=>r.withDirectives((r.openBlock(),r.createElementBlock("div",{class:r.normalizeClass(["leiting-menu-wrapper",["leiting-theme-"+a.value,"size-"+c.value]])},[r.createElementVNode("div",qy,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(p.value,T=>(r.openBlock(),r.createElementBlock("div",{key:T.ID,class:r.normalizeClass(["menu-item",{active:h.value.includes(T.ID)}]),onClick:B=>m(T),title:T.title},[r.createElementVNode("div",Zy,[T.src?(r.openBlock(),r.createElementBlock("img",{key:0,src:T.src,alt:T.title},null,8,e0)):typeof T.icon=="object"?(r.openBlock(),r.createBlock(r.resolveDynamicComponent(T.icon),{key:1})):typeof T.icon=="string"?(r.openBlock(),r.createElementBlock("i",{key:2,class:r.normalizeClass(["iconfont",`icon-${T.icon}`])},null,2)):(r.openBlock(),r.createElementBlock("span",t0,r.toDisplayString(T.title.substring(0,2)),1))]),T.children&&T.children.length>0?(r.openBlock(),r.createElementBlock("div",n0,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(T.children,B=>(r.openBlock(),r.createElementBlock("div",{key:B.ID,class:r.normalizeClass(["sub-menu-item",{active:h.value.includes(B.ID)}]),onClick:r.withModifiers(g=>m(B),["stop"])},r.toDisplayString(B.title),11,i0))),128))])):r.createCommentVNode("",!0)],10,Jy))),128))])],2)),[[r.vShow,f.value]])}}),s0={class:"leiting-section-content"},o0={class:"section-form-item"},r0={class:"radio-group"},a0={class:"section-form-item"},l0={class:"switch-container"},c0={class:"switch"},d0={class:"status-text"},u0={class:"section-form-item slider-item"},h0={class:"slider-wrapper"},f0={class:"section-form-item slider-item"},p0={class:"slider-wrapper"},m0={class:"section-form-item slider-item"},g0={class:"slider-wrapper"},A0={class:"section-form-item table-item"},y0={class:"model-table-container"},C0={class:"model-table"},E0={width:"40"},b0=["checked"],w0=["onClick"],v0=["value"],I0={class:"model-name"},wn=ye(r.defineComponent({__name:"LeitingSection",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"剖切控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:M=>{i("update:visible",M),i("update:open",M)}}),a=r.ref("Box"),c=r.ref(!1),l=r.ref([]),d=r.ref([]),h=r.computed(()=>d.value.length===0?!1:d.value.every(M=>l.value.includes(M.modelId))),f=M=>{M.target.checked?l.value=d.value.map(y=>y.modelId):l.value=[],N()},p=r.ref([-10,10]),u=r.ref([-10,10]),m=r.ref([-10,10]),C=r.ref([-100,100]),A=r.ref([-100,100]),b=r.ref([-100,100]);let I=!1;const k=M=>{I=!0;const{targetZPlus:E,targetZMinus:y,targetXPlus:v,targetXMinus:D,targetYPlus:F,targetYMinus:Q}=M;m.value=[-y,E],p.value=[-D,v],u.value=[-Q,F],setTimeout(()=>{I=!1},100)},P=()=>{I||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:u.value[1],targetYMinus:-u.value[0]})},R=()=>{s?.value?.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(c.value)},T=M=>{if(!s?.value?.getMapTileset||!s?.value?.openSection)return;const y=s.value.getMapTileset()[M];if(y&&y.leiting?.box){const{min:v,max:D}=y.leiting.box,F=(D.x-v.x)/2,Q=(D.y-v.y)/2,O=(D.z-v.z)/2;l.value.length<=1&&(C.value=[-F*2,F*2],A.value=[-Q*2,Q*2],b.value=[-O*2,O*2],p.value=[-F,F],u.value=[-Q,Q],m.value=[-O,O],s.value.updateSectionRange&&s.value.updateSectionRange({targetZPlus:O,targetZMinus:O,targetXPlus:F,targetXMinus:F,targetYPlus:Q,targetYMinus:Q})),s.value.openSection(M,{moveCallBack:k}),s.value.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(c.value)}},B=M=>{const E=l.value.indexOf(M);E>-1?l.value.splice(E,1):l.value.push(M),N()};let g=[];const N=()=>{const M=l.value.filter(y=>!g.includes(y)),E=g.filter(y=>!l.value.includes(y));M.forEach(y=>T(y)),E.forEach(y=>{s?.value?.closeSection&&s.value.closeSection(y)}),g=[...l.value]},w=()=>{},S=()=>{o.value=!1,i("close")},L=()=>{c.value=!1,l.value=[],g=[],p.value=[-10,10],u.value=[-10,10],m.value=[-10,10],C.value=[-100,100],A.value=[-100,100],b.value=[-100,100]};r.watch(()=>t.visible,M=>{M?V():(s?.value?.closeSection&&s.value.closeSection(),L())});const V=()=>{s?.value&&typeof s.value.getModelList=="function"&&(d.value=s.value.getModelList()||[],d.value.length>0&&l.value.length===0&&(l.value=[d.value[0].modelId],g=[...l.value]),t.visible&&l.value.length>0&&(c.value=!0,l.value.forEach(M=>T(M))))};return r.watch(()=>s?.value,()=>{V()},{immediate:!0,deep:!0}),r.onMounted(()=>{V()}),(M,E)=>(r.openBlock(),r.createBlock(Le,{visible:o.value,title:"剖切分析","full-height":n.fullHeight,"onUpdate:visible":S},{default:r.withCtx(()=>[r.createElementVNode("div",s0,[r.createElementVNode("div",o0,[E[8]||(E[8]=r.createElementVNode("span",{class:"label"},"模式",-1)),r.createElementVNode("div",r0,[r.createElementVNode("label",{class:r.normalizeClass(["radio-item",{active:a.value==="Box"}])},[r.withDirectives(r.createElementVNode("input",{type:"radio",value:"Box","onUpdate:modelValue":E[0]||(E[0]=y=>a.value=y),onChange:w},null,544),[[r.vModelRadio,a.value]]),E[7]||(E[7]=r.createTextVNode(" 剖切盒 ",-1))],2)])]),r.createElementVNode("div",a0,[E[10]||(E[10]=r.createElementVNode("span",{class:"label"},"显示",-1)),r.createElementVNode("div",l0,[r.createElementVNode("label",c0,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":E[1]||(E[1]=y=>c.value=y),onChange:R},null,544),[[r.vModelCheckbox,c.value]]),E[9]||(E[9]=r.createElementVNode("span",{class:"slider round"},null,-1))]),r.createElementVNode("span",d0,r.toDisplayString(c.value?"显示":"隐藏"),1)])]),r.createElementVNode("div",u0,[E[11]||(E[11]=r.createElementVNode("span",{class:"label"},"X 轴",-1)),r.createElementVNode("div",h0,[r.createVNode(r.unref(ie.Slider),{value:p.value,"onUpdate:value":E[2]||(E[2]=y=>p.value=y),range:"",min:C.value[0],max:C.value[1],step:.1,onChange:P},null,8,["value","min","max"])])]),r.createElementVNode("div",f0,[E[12]||(E[12]=r.createElementVNode("span",{class:"label"},"Y 轴",-1)),r.createElementVNode("div",p0,[r.createVNode(r.unref(ie.Slider),{value:u.value,"onUpdate:value":E[3]||(E[3]=y=>u.value=y),range:"",min:A.value[0],max:A.value[1],step:.1,onChange:P},null,8,["value","min","max"])])]),r.createElementVNode("div",m0,[E[13]||(E[13]=r.createElementVNode("span",{class:"label"},"Z 轴",-1)),r.createElementVNode("div",g0,[r.createVNode(r.unref(ie.Slider),{value:m.value,"onUpdate:value":E[4]||(E[4]=y=>m.value=y),range:"",min:b.value[0],max:b.value[1],step:.1,onChange:P},null,8,["value","min","max"])])]),r.createElementVNode("div",A0,[E[15]||(E[15]=r.createElementVNode("span",{class:"label"},"模型",-1)),r.createElementVNode("div",y0,[r.createElementVNode("table",C0,[r.createElementVNode("thead",null,[r.createElementVNode("tr",null,[r.createElementVNode("th",E0,[r.createElementVNode("input",{type:"checkbox",checked:h.value,onChange:f},null,40,b0)]),E[14]||(E[14]=r.createElementVNode("th",null,"名称",-1))])]),r.createElementVNode("tbody",null,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(d.value,y=>(r.openBlock(),r.createElementBlock("tr",{key:y.modelId,class:r.normalizeClass({selected:l.value.includes(y.modelId)}),onClick:v=>B(y.modelId)},[r.createElementVNode("td",null,[r.withDirectives(r.createElementVNode("input",{type:"checkbox",value:y.modelId,"onUpdate:modelValue":E[5]||(E[5]=v=>l.value=v),onClick:E[6]||(E[6]=r.withModifiers(()=>{},["stop"])),onChange:N},null,40,v0),[[r.vModelCheckbox,l.value]])]),r.createElementVNode("td",I0,r.toDisplayString(y.modelName),1)],10,w0))),128))])])])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-ee4d9a12"]]),B0={class:"leiting-player-content"},x0={class:"player-form-item"},S0={class:"switch-container"},T0={class:"switch"},M0={class:"status-text"},D0={class:"player-form-item"},k0={class:"switch-container"},P0={class:"switch"},F0={class:"status-text"},N0={class:"player-form-item"},R0={class:"switch-container"},L0={class:"switch"},O0={class:"status-text"},U0={class:"player-form-item slider-item"},_0={class:"slider-wrapper"},Q0={class:"value-text"},V0={class:"instructions"},G0={class:"key-map"},H0={class:"key-row"},Y0={class:"key-row"},z0={class:"key-row"},W0={class:"key-row"},j0={class:"key-row"},K0={class:"key-row"},vn=ye(r.defineComponent({__name:"LeitingPlayer",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"漫游控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.ref(!1),a=r.ref(!1),c=r.ref(!0),l=r.ref(5),d=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:T=>{i("update:visible",T),i("update:open",T)}}),h=r.ref(null),f=r.ref(null),p=r.ref(null),u=r.ref(null),m=r.ref(null),C=r.ref(null),A=()=>{o.value?I():k()},b=()=>{s?.value?.setPlayerParams&&s.value.setPlayerParams({gravityTest:a.value,collisionTest:c.value})},I=async()=>{s?.value?.openPlayer&&(await s.value.openPlayer(),s.value.setPlayerSpeed&&s.value.setPlayerSpeed(l.value),b(),s.value.bindPlayerUiKeys&&(await r.nextTick(),s.value.bindPlayerUiKeys({moveFront:h.value,moveBack:f.value,moveLeft:p.value,moveRight:u.value,moveUp:m.value,moveDown:C.value})))},k=()=>{s?.value?.closePlayer&&s.value.closePlayer()},P=()=>{s?.value?.setPlayerSpeed&&s.value.setPlayerSpeed(l.value)},R=()=>{d.value=!1,i("close")};return r.watch(()=>t.visible,T=>{T?(o.value=!0,s?.value?I():setTimeout(()=>{s?.value&&I()},100)):o.value&&(o.value=!1,k())},{immediate:!0}),(T,B)=>(r.openBlock(),r.createBlock(Le,{title:n.title,visible:d.value,"full-height":n.fullHeight,"onUpdate:visible":R},{default:r.withCtx(()=>[r.createElementVNode("div",B0,[r.createElementVNode("div",x0,[B[5]||(B[5]=r.createElementVNode("span",{class:"label"},"启用",-1)),r.createElementVNode("div",S0,[r.createElementVNode("label",T0,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[0]||(B[0]=g=>o.value=g),onChange:A},null,544),[[r.vModelCheckbox,o.value]]),B[4]||(B[4]=r.createElementVNode("span",{class:"slider round"},null,-1))]),r.createElementVNode("span",M0,r.toDisplayString(o.value?"开启":"关闭"),1)])]),r.createElementVNode("div",D0,[B[7]||(B[7]=r.createElementVNode("span",{class:"label"},"重力",-1)),r.createElementVNode("div",k0,[r.createElementVNode("label",P0,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[1]||(B[1]=g=>a.value=g),onChange:b},null,544),[[r.vModelCheckbox,a.value]]),B[6]||(B[6]=r.createElementVNode("span",{class:"slider round"},null,-1))]),r.createElementVNode("span",F0,r.toDisplayString(a.value?"开启":"关闭"),1)])]),r.createElementVNode("div",N0,[B[9]||(B[9]=r.createElementVNode("span",{class:"label"},"碰撞",-1)),r.createElementVNode("div",R0,[r.createElementVNode("label",L0,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[2]||(B[2]=g=>c.value=g),onChange:b},null,544),[[r.vModelCheckbox,c.value]]),B[8]||(B[8]=r.createElementVNode("span",{class:"slider round"},null,-1))]),r.createElementVNode("span",O0,r.toDisplayString(c.value?"开启":"关闭"),1)])]),r.createElementVNode("div",U0,[B[10]||(B[10]=r.createElementVNode("span",{class:"label"},"速度",-1)),r.createElementVNode("div",_0,[r.createVNode(r.unref(ie.Slider),{value:l.value,"onUpdate:value":B[3]||(B[3]=g=>l.value=g),min:1,max:10,step:1,onChange:P},null,8,["value"])]),r.createElementVNode("span",Q0,r.toDisplayString(l.value),1)]),B[19]||(B[19]=r.createElementVNode("div",{class:"divider"},null,-1)),r.createElementVNode("div",V0,[B[18]||(B[18]=r.createElementVNode("div",{class:"instruction-title"},"操作说明",-1)),r.createElementVNode("div",G0,[r.createElementVNode("div",H0,[r.createElementVNode("span",{class:"key",ref_key:"btnFront",ref:h},"W",512),B[11]||(B[11]=r.createTextVNode(" 前进 ",-1))]),r.createElementVNode("div",Y0,[r.createElementVNode("span",{class:"key",ref_key:"btnBack",ref:f},"S",512),B[12]||(B[12]=r.createTextVNode(" 后退 ",-1))]),r.createElementVNode("div",z0,[r.createElementVNode("span",{class:"key",ref_key:"btnLeft",ref:p},"A",512),B[13]||(B[13]=r.createTextVNode(" 左移 ",-1))]),r.createElementVNode("div",W0,[r.createElementVNode("span",{class:"key",ref_key:"btnRight",ref:u},"D",512),B[14]||(B[14]=r.createTextVNode(" 右移 ",-1))]),r.createElementVNode("div",j0,[r.createElementVNode("span",{class:"key",ref_key:"btnUp",ref:m},"Q",512),B[15]||(B[15]=r.createTextVNode(" 上升 ",-1))]),r.createElementVNode("div",K0,[r.createElementVNode("span",{class:"key",ref_key:"btnDown",ref:C},"E",512),B[16]||(B[16]=r.createTextVNode(" 下降 ",-1))]),B[17]||(B[17]=r.createElementVNode("div",{class:"key-row"},[r.createElementVNode("span",{class:"mouse-icon"},"🖱️"),r.createTextVNode(" 按住左键拖拽旋转视角 ")],-1))])])])]),_:1},8,["title","visible","full-height"]))}}),[["__scopeId","data-v-ff3f266e"]]),$0={class:"info-content"},X0={key:0,class:"component-title"},In=ye(r.defineComponent({__name:"LeitingInfo",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.ref([]),a=r.ref(!1),c=r.ref([]),l=r.ref([]),d=r.ref(0),h=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:b=>{i("update:visible",b),i("update:open",b)}}),f=()=>{h.value=!1},p=b=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[b]||b,u=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],m=async b=>{const I=++d.value;if(l.value=b,!b||b.length===0){o.value=[];return}if(!h.value)return;let k=b;b.length>10&&(ce.warning(`选中构件数量过多(${b.length}个),仅显示前10个`),k=b.slice(0,10));const P=s?.value;let R=P?.getMapTileset?P.getMapTileset():{};a.value=!0;const T=[],B={};k.forEach(w=>{const L=R[w.modelId]?.leiting?.model?.dbName;L&&w.elementId&&T.push({dbName:L,elementId:w.elementId,modelId:w.modelId})});const g=new Set;if(k.forEach(w=>{const S=R[w.modelId],L=`${w.modelId}_${w.elementId}`;B[L]||S&&S.leiting&&!S.leiting?.node?.nodeExtras&&S.leiting.model?.nodeUrl&&g.add(w.modelId)}),g.size>0&&P?._loadNodeDetailsForModel)try{const w=Array.from(g).map(S=>P._loadNodeDetailsForModel(S));await Promise.all(w)}catch(w){console.error("Failed to load node details",w)}if(I!==d.value)return;R=P?.getMapTileset?P.getMapTileset():{};const N=[];k.forEach((w,S)=>{const V=R[w.modelId]?.leiting||{},M=B[`${w.modelId}_${w.elementId}`];let E={modelName:V.model?.modelId||w.modelId};E.elementID||(E.elementID=w.elementId);let y=null;if(M)y=M;else{const F=V.node?.nodeExtras?.element||V.node?.nodeExtras;if(F){const Q=E.elementID;F[Q]&&(y=F[Q])}}y&&y.box3&&(E.length=`${y.box3.length?.toFixed(2)||0}米`,E.width=`${y.box3.width?.toFixed(2)||0}米`,E.height=`${y.box3.height?.toFixed(2)||0}米`);const v=[];y&&(y.name&&(E.elementName=y.name),y.categoryName&&(E.categoryName=y.categoryName),y.familySymbolName&&(E.familySymbolName=y.familySymbolName),y.levelName&&(E.levelName=y.levelName));const D={};if(u.forEach(F=>{E[F]!==void 0&&(D[F]=E[F])}),v.push({name:"基础信息",params:D}),y){const F=Array.isArray(y)?y:Array.isArray(y?.parameters)?y.parameters:null;if(F){if(F.flat().forEach(O=>{if(O&&O.GroupName&&Array.isArray(O.Parameters)){const x={};O.Parameters.forEach(U=>{U.name&&(x[U.name]=U.value??"")}),Object.keys(x).length>0&&v.push({name:O.GroupName,params:x})}}),!Array.isArray(y)){const{parameters:O,...x}=y,U={};Object.keys(x).forEach(H=>{!u.includes(H)&&H!=="uniqueId"&&typeof x[H]!="object"&&(U[H]=x[H])}),Object.keys(U).length>0&&v.push({name:"其他属性",params:U})}}else{let Q=!1;if(Object.keys(y).forEach(O=>{y[O]&&typeof y[O]=="object"&&!Array.isArray(y[O])&&(Q=!0,v.push({name:O,params:y[O]}))}),!Q){const O={};Object.keys(y).forEach(x=>{if(!u.includes(x)&&x!=="batchId"){const U=y[x];typeof U=="string"&&U.length>500?O[x]=U.substring(0,500)+"...":O[x]=U}}),Object.keys(O).length>0&&v.push({name:"属性",params:O})}}}N.push({id:S,title:`${E.modelName}${E.elementName?` - ${E.elementName}`:""}`,groups:v})}),o.value=N,I===d.value&&(a.value=!1),N.length>0?c.value=[`${N[0].id}-基础信息`]:c.value=[]};let C=!1;const A=()=>{if(C)return;const b=s?.value;b&&b.selectionChange&&(b.selectionChange(m),C=!0)};return r.watch(()=>s?.value,()=>{A()},{deep:!0,immediate:!0}),r.watch(h,b=>{b&&l.value.length>0&&m(l.value)}),r.onMounted(()=>{A()}),(b,I)=>(r.openBlock(),r.createBlock(Le,{visible:h.value,title:"构件详情",width:350,align:"right","initial-position":{x:0,y:0},"full-height":n.fullHeight,onClose:f,"onUpdate:visible":I[1]||(I[1]=k=>h.value=k),class:"base-info-card"},{default:r.withCtx(()=>[r.createElementVNode("div",$0,[r.createVNode(r.unref(ie.Spin),{spinning:a.value},{default:r.withCtx(()=>[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(o.value,k=>(r.openBlock(),r.createElementBlock("div",{key:k.id,class:"component-block"},[o.value.length>1?(r.openBlock(),r.createElementBlock("div",X0,r.toDisplayString(k.title),1)):r.createCommentVNode("",!0),r.createVNode(r.unref(ie.Collapse),{activeKey:c.value,"onUpdate:activeKey":I[0]||(I[0]=P=>c.value=P),ghost:"","expand-icon-position":"end"},{default:r.withCtx(()=>[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(k.groups,P=>(r.openBlock(),r.createBlock(r.unref(ie.CollapsePanel),{key:`${k.id}-${P.name}`,header:P.name},{default:r.withCtx(()=>[r.createVNode(r.unref(ie.Descriptions),{size:"small",bordered:"",column:1,labelStyle:{width:"100px",background:"rgba(255,255,255,0.05)",color:"#aaa"},contentStyle:{color:"#fff"}},{default:r.withCtx(()=>[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(P.params,(R,T)=>(r.openBlock(),r.createBlock(r.unref(ie.DescriptionsItem),{key:T,label:p(String(T))},{default:r.withCtx(()=>[r.createTextVNode(r.toDisplayString(R),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 fl{viewer;Cesium;pickHandler=null;bimEntityId="";mapEntityId="";constructor(e,t){this.viewer=e,this.Cesium=t}removeMarker(e){if(!this.viewer)return;const t=e==="BIM"?this.bimEntityId:this.mapEntityId;t&&(this.viewer.entities.removeById(t),e==="BIM"?this.bimEntityId="":this.mapEntityId="")}clearMarkers(){this.removeMarker("BIM"),this.removeMarker("MAP")}addMarker(e,t){if(!this.viewer||!this.Cesium)return;this.removeMarker(e);const i=`adjust-marker-${e}-${Date.now()}`;e==="BIM"?this.bimEntityId=i:this.mapEntityId=i,this.viewer.entities.add({id:i,position:this.Cesium.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),point:{pixelSize:10,color:e==="BIM"?this.Cesium.Color.RED:this.Cesium.Color.ORANGE,outlineColor:this.Cesium.Color.WHITE,outlineWidth:2,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:{text:`${e==="BIM"?"BIM":"地图"}标记点`,font:"14pt sans-serif",style:this.Cesium.LabelStyle.FILL_AND_OUTLINE,outlineWidth:2,verticalOrigin:this.Cesium.VerticalOrigin.BOTTOM,pixelOffset:new this.Cesium.Cartesian2(0,-10),fillColor:this.Cesium.Color.WHITE,outlineColor:this.Cesium.Color.BLACK,backgroundColor:new this.Cesium.Color(.1,.1,.1,.8),showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY}})}registerPickHandler(e){this.destroyPickHandler(),!(!this.Cesium||!this.viewer)&&(this.pickHandler=new this.Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas),this.pickHandler.setInputAction(t=>{let i;try{i=this.viewer.scene.pickPosition(t.position)}catch(s){console.warn("pickPosition failed:",s)}if(!i){const s=this.viewer.camera.getPickRay(t.position);i=this.viewer.scene.globe.pick(s,this.viewer.scene)}if(i||(i=this.viewer.camera.pickEllipsoid(t.position,this.viewer.scene.globe.ellipsoid)),i){const s=this.Cesium.Cartographic.fromCartesian(i),o=this.Cesium.Math.toDegrees(s.longitude),a=this.Cesium.Math.toDegrees(s.latitude),c=s.height;e({longitude:o,latitude:a,height:c})}},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 q0={class:"adjust-panel"},J0={class:"control-panel"},Z0={class:"form-item"},eC={class:"radio-group"},tC={class:"form-item"},nC={class:"radio-group"},iC={class:"form-item"},sC={class:"value"},oC={class:"param-row"},rC={class:"param-row"},aC={class:"param-row"},lC={class:"param-row"},cC={class:"param-row"},dC={class:"param-row"},uC={class:"param-row"},hC={class:"button-grid"},fC={key:1,class:"pick-mode-ui"},pC={class:"form-item",style:{display:"block","margin-bottom":"15px"}},mC={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},gC=["checked"],AC={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},yC={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},CC={class:"form-item",style:{display:"block","margin-bottom":"15px"}},EC={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},bC=["checked"],wC={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},vC={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},IC={class:"list-panel"},BC={class:"list-header"},xC={class:"col-check"},SC=["checked"],TC={class:"list-body"},MC={class:"col-check"},DC=["onUpdate:modelValue"],kC={class:"col-index"},PC=["title"],FC={class:"col-main"},NC=["checked","onChange"],Bn=ye(r.defineComponent({__name:"LeitingPosition",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close","save"],setup(n,{expose:e,emit:t}){const i=n,s=t,o=r.computed({get:()=>i.open!==void 0?i.open:i.visible,set:O=>{s("update:visible",O),s("update:open",O)}}),a=r.inject("leitingMethods"),c=r.ref("BIM"),l=r.ref("param"),d=r.ref(""),h=r.ref([]),f=r.ref("BIM"),p=r.ref(null),u=r.ref(null),m=r.ref(null),C=()=>(!m.value&&a?.value?.getViewer&&a?.value?.getCesium&&(m.value=new fl(a.value.getViewer(),a.value.getCesium())),m.value),A=()=>{C()?.clearMarkers(),p.value=null,u.value=null},b=(O,x)=>{O==="BIM"?p.value=x:u.value=x,C()?.addMarker(O,x),ce.success(`${O==="BIM"?"BIM":"地图"}标记点已添加`)},I=()=>{C()?.registerPickHandler(O=>{b(f.value,O)})},k=()=>{C()?.destroyPickHandler()},P=()=>{if(!p.value||!u.value){ce.warning("请先选择BIM标记点和地图标记点");return}if(!d.value){ce.warning("请先选择主模型");return}const O=C();let x=0,U=0,H=0;if(O){const{dLon:j,dLat:X,dHeight:Z}=O.calculateOffset(p.value,u.value);x=j,U=X,H=Z}else x=u.value.longitude-p.value.longitude,U=u.value.latitude-p.value.latitude,H=u.value.height-p.value.height;T.value.longitude+=x,T.value.latitude+=U,T.value.height+=H,y(d.value,{longitude:T.value.longitude,latitude:T.value.latitude,height:T.value.height}),ce.success("位置已调整")};r.watch(()=>l.value,O=>{O==="pick"?I():k()}),e({addMarker:b,setModelType:O=>{(O==="BIM"||O==="OSGB")&&(c.value=O)}});const T=r.ref({longitude:0,latitude:0,lonlat:1e-6,heightDistance:1,rotation:30,totalRotation:0,height:0,X:0,Y:0,Z:0}),B=r.computed(()=>{const O=h.value.find(x=>x.modelId===d.value);return O?O.modelName:""}),g=r.computed(()=>w.value.length>0&&w.value.every(O=>O.selected)),N=()=>{o.value=!1,s("close")},w=r.computed(()=>h.value.filter(O=>O.type===c.value)),S=O=>{const x=O.target.checked;w.value.forEach(U=>U.selected=x)},L=()=>{if(!a?.value)return;const O=a.value,x=O.getMapTileset?O.getMapTileset():{},U=[];if(Object.keys(x).forEach(H=>{const X=x[H].leiting||{};X.model&&U.push({modelId:X.model.modelId,modelName:X.model.modelName,selected:!1,formData:X.model.formData||{},dbName:X.model.dbName,url:X.model.url,type:X.model.type||"BIM"})}),h.value=U,U.length>0){const H=O.getBIMmodelId?O.getBIMmodelId():"";H&&U.find(j=>j.modelId===H)?M(H):M(U[0].modelId),U.forEach(j=>j.selected=!0)}},V=()=>{ce.info("拖动右下角标,可显示模型列表",void 0,2)},M=O=>{d.value=O;const x=h.value.find(U=>U.modelId===O);x&&x.formData&&Object.keys(T.value).forEach(U=>{x.formData[U]!==void 0&&(T.value[U]=x.formData[U])})},E=O=>a?.value?.getMapTileset?a.value.getMapTileset()[O]:null,y=(O,x)=>{const U=E(O),H=a.value.getCesium();if(U&&H){if(U.leiting?.model){U.leiting.model.formData={...U.leiting.model.formData,...x};const j=h.value.find(X=>X.modelId===O);j&&(j.formData=U.leiting.model.formData)}Oi({Cesium:H,tileset:U})}},v=O=>{if(!d.value)return;const U=h.value.find(X=>X.modelId===d.value)?.formData?.[O]??0,H=T.value[O],j=H-U;y(d.value,{[O]:H}),j!==0&&w.value.filter(Z=>Z.selected&&Z.modelId!==d.value).forEach(Z=>{const se=(Z.formData?.[O]??0)+j;y(Z.modelId,{[O]:se})})},D=O=>{const x=w.value.filter(X=>X.selected);if(x.length===0){ce.warning("请先选择要调整的模型");return}const{lonlat:U,heightDistance:H,rotation:j}=T.value;x.forEach(X=>{const Z={...X.formData};switch(O){case"north":Z.latitude+=U;break;case"south":Z.latitude-=U;break;case"east":Z.longitude+=U;break;case"west":Z.longitude-=U;break;case"up":Z.height+=H;break;case"down":Z.height-=H;break;case"rotateLeft":Z.totalRotation=(Z.totalRotation||0)+j;break;case"rotateRight":Z.totalRotation=(Z.totalRotation||0)-j;break}X.modelId===d.value&&(Z.lonlat=U,Z.heightDistance=H,Z.rotation=j,Object.assign(T.value,Z)),y(X.modelId,Z)})},F=()=>{if(!d.value){ce.warning("请先选择主模型");return}const O=E(d.value);if(!O||!a?.value?.getViewer)return;const x=a.value.getViewer(),U=a.value.getCesium(),H=O.boundingSphere;x.camera.flyToBoundingSphere(H,{offset:new U.HeadingPitchRange(0,U.Math.toRadians(-90),H.radius*2),duration:1.5})},Q=()=>{a?.value?.saveRegion?(a.value.saveRegion(h.value),s("save",r.unref(h))):(console.log("Save models:",h.value),ce.warning("未找到保存接口,数据已打印控制台"))};return r.watch(()=>i.visible,O=>{O?(L(),V(),l.value==="pick"&&I()):(k(),A())}),r.onMounted(()=>{i.visible&&(L(),V(),l.value==="pick"&&I())}),(O,x)=>(r.openBlock(),r.createBlock(Le,{visible:o.value,title:"调整位置(调整前可选择正北俯视)","full-height":n.fullHeight,width:260,"onUpdate:visible":x[25]||(x[25]=U=>o.value=U),onClose:N,onSave:Q,class:"base-position-card"},{default:r.withCtx(()=>[r.createElementVNode("div",q0,[r.createElementVNode("div",J0,[r.createElementVNode("div",Z0,[x[26]||(x[26]=r.createElementVNode("label",null,"模型类型:",-1)),r.createElementVNode("div",eC,[r.createElementVNode("span",{class:r.normalizeClass({active:c.value==="BIM"}),onClick:x[0]||(x[0]=U=>c.value="BIM")},"BIM模型",2),r.createElementVNode("span",{class:r.normalizeClass({active:c.value==="OSGB"}),onClick:x[1]||(x[1]=U=>c.value="OSGB")},"倾斜摄影",2)])]),r.createElementVNode("div",tC,[x[27]||(x[27]=r.createElementVNode("label",null,"调整操作:",-1)),r.createElementVNode("div",nC,[r.createElementVNode("span",{class:r.normalizeClass({active:l.value==="param"}),onClick:x[2]||(x[2]=U=>l.value="param")},"参数模式",2),r.createElementVNode("span",{class:r.normalizeClass({active:l.value==="pick"}),onClick:x[3]||(x[3]=U=>l.value="pick")},"地图点选",2)])]),r.createElementVNode("div",iC,[x[28]||(x[28]=r.createElementVNode("label",null,"当前主模型:",-1)),r.createElementVNode("span",sC,r.toDisplayString(B.value||"未选择"),1)]),x[42]||(x[42]=r.createElementVNode("div",{class:"separator"},null,-1)),l.value==="param"?(r.openBlock(),r.createElementBlock(r.Fragment,{key:0},[x[36]||(x[36]=r.createElementVNode("div",{class:"group-header"},"当前状态",-1)),r.createElementVNode("div",oC,[x[29]||(x[29]=r.createElementVNode("label",null,"经度(东西):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[4]||(x[4]=U=>T.value.longitude=U),onChange:x[5]||(x[5]=U=>v("longitude")),step:"0.000001"},null,544),[[r.vModelText,T.value.longitude,void 0,{number:!0}]])]),r.createElementVNode("div",rC,[x[30]||(x[30]=r.createElementVNode("label",null,"纬度(南北):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[6]||(x[6]=U=>T.value.latitude=U),onChange:x[7]||(x[7]=U=>v("latitude")),step:"0.000001"},null,544),[[r.vModelText,T.value.latitude,void 0,{number:!0}]])]),r.createElementVNode("div",aC,[x[31]||(x[31]=r.createElementVNode("label",null,"高度(m):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[8]||(x[8]=U=>T.value.height=U),onChange:x[9]||(x[9]=U=>v("height")),step:"0.1"},null,544),[[r.vModelText,T.value.height,void 0,{number:!0}]])]),r.createElementVNode("div",lC,[x[32]||(x[32]=r.createElementVNode("label",null,"累计旋转(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[10]||(x[10]=U=>T.value.totalRotation=U),onChange:x[11]||(x[11]=U=>v("totalRotation")),step:"1"},null,544),[[r.vModelText,T.value.totalRotation,void 0,{number:!0}]])]),x[37]||(x[37]=r.createElementVNode("div",{class:"separator"},null,-1)),x[38]||(x[38]=r.createElementVNode("div",{class:"group-header"},"调整步长",-1)),r.createElementVNode("div",cC,[x[33]||(x[33]=r.createElementVNode("label",null,"经纬步长(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[12]||(x[12]=U=>T.value.lonlat=U),step:"0.000001"},null,512),[[r.vModelText,T.value.lonlat,void 0,{number:!0}]])]),r.createElementVNode("div",dC,[x[34]||(x[34]=r.createElementVNode("label",null,"高度步长(m):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[13]||(x[13]=U=>T.value.heightDistance=U),step:"0.1"},null,512),[[r.vModelText,T.value.heightDistance,void 0,{number:!0}]])]),r.createElementVNode("div",uC,[x[35]||(x[35]=r.createElementVNode("label",null,"旋转步长(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":x[14]||(x[14]=U=>T.value.rotation=U),step:"1"},null,512),[[r.vModelText,T.value.rotation,void 0,{number:!0}]])]),r.createElementVNode("div",hC,[r.createElementVNode("button",{onClick:x[15]||(x[15]=U=>D("rotateLeft"))},"左转"),r.createElementVNode("button",{onClick:x[16]||(x[16]=U=>D("north"))},"北移"),r.createElementVNode("button",{onClick:x[17]||(x[17]=U=>D("rotateRight"))},"右转"),r.createElementVNode("button",{onClick:x[18]||(x[18]=U=>D("west"))},"西移"),r.createElementVNode("button",{onClick:x[19]||(x[19]=U=>D("south"))},"南移"),r.createElementVNode("button",{onClick:x[20]||(x[20]=U=>D("east"))},"东移"),r.createElementVNode("button",{onClick:x[21]||(x[21]=U=>D("up"))},"上移"),r.createElementVNode("button",{onClick:x[22]||(x[22]=U=>D("down"))},"下移"),r.createElementVNode("button",{onClick:F,class:"primary-btn"},"正北俯视"),r.createElementVNode("button",{onClick:Q,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):l.value==="pick"?(r.openBlock(),r.createElementBlock("div",fC,[r.createElementVNode("div",pC,[r.createElementVNode("div",mC,[r.createElementVNode("div",{onClick:x[23]||(x[23]=U=>f.value="BIM"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[r.createElementVNode("input",{type:"radio",checked:f.value==="BIM",style:{"margin-right":"5px"}},null,8,gC),x[39]||(x[39]=r.createElementVNode("span",{style:{"font-weight":"bold"}},"BIM标记点:",-1))]),p.value?(r.openBlock(),r.createElementBlock("div",AC,[r.createElementVNode("div",null,"经度:"+r.toDisplayString(p.value.longitude.toFixed(10)),1),r.createElementVNode("div",null,"纬度:"+r.toDisplayString(p.value.latitude.toFixed(10)),1)])):(r.openBlock(),r.createElementBlock("div",yC,"未选择"))])]),r.createElementVNode("div",CC,[r.createElementVNode("div",EC,[r.createElementVNode("div",{onClick:x[24]||(x[24]=U=>f.value="MAP"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[r.createElementVNode("input",{type:"radio",checked:f.value==="MAP",style:{"margin-right":"5px"}},null,8,bC),x[40]||(x[40]=r.createElementVNode("span",{style:{"font-weight":"bold"}},"地图标记点:",-1))]),u.value?(r.openBlock(),r.createElementBlock("div",wC,[r.createElementVNode("div",null,"经度:"+r.toDisplayString(u.value.longitude.toFixed(10)),1),r.createElementVNode("div",null,"纬度:"+r.toDisplayString(u.value.latitude.toFixed(10)),1)])):(r.openBlock(),r.createElementBlock("div",vC,"未选择"))])]),r.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[r.createElementVNode("button",{onClick:P},"调整位置"),r.createElementVNode("button",{onClick:Q},"保存")]),x[41]||(x[41]=r.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[r.createElementVNode("div",null,"操作指南:"),r.createElementVNode("div",null,"1. 勾选上方 BIM 或 地图 标记点选项。"),r.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),r.createElementVNode("div",null,"3. 采集两点后,点击“调整位置”进行校准。")],-1))])):r.createCommentVNode("",!0)]),r.createElementVNode("div",IC,[r.createElementVNode("div",BC,[r.createElementVNode("div",xC,[r.createElementVNode("input",{type:"checkbox",checked:g.value,onChange:S},null,40,SC)]),x[43]||(x[43]=r.createElementVNode("div",{class:"col-index"},"序号",-1)),x[44]||(x[44]=r.createElementVNode("div",{class:"col-name"},"名称",-1)),x[45]||(x[45]=r.createElementVNode("div",{class:"col-main"},"主模型",-1))]),r.createElementVNode("div",TC,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(w.value,(U,H)=>(r.openBlock(),r.createElementBlock("div",{key:U.modelId,class:r.normalizeClass(["list-item",{active:U.modelId===d.value}])},[r.createElementVNode("div",MC,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":j=>U.selected=j},null,8,DC),[[r.vModelCheckbox,U.selected]])]),r.createElementVNode("div",kC,r.toDisplayString(H+1),1),r.createElementVNode("div",{class:"col-name",title:U.modelName},r.toDisplayString(U.modelName),9,PC),r.createElementVNode("div",FC,[r.createElementVNode("input",{type:"radio",name:"mainModel",checked:U.modelId===d.value,onChange:j=>M(U.modelId)},null,40,NC)])],2))),128))])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-9737215c"]]);function fi(){return fi=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)({}).hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},fi.apply(null,arguments)}const RC={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:"下一世纪"},LC={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},pl={lang:fi({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},RC),timePickerLocale:fi({},LC)};pl.lang.ok="确定";var pi={exports:{}},OC=pi.exports,ml;function gl(){return ml||(ml=1,(function(n,e){(function(t,i){n.exports=i()})(OC,(function(){var t=1e3,i=6e4,s=36e5,o="millisecond",a="second",c="minute",l="hour",d="day",h="week",f="month",p="quarter",u="year",m="date",C="Invalid Date",A=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,b=/\[([^\]]+)]|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,I={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(M){var E=["th","st","nd","rd"],y=M%100;return"["+M+(E[(y-20)%10]||E[y]||E[0])+"]"}},k=function(M,E,y){var v=String(M);return!v||v.length>=E?M:""+Array(E+1-v.length).join(y)+M},P={s:k,z:function(M){var E=-M.utcOffset(),y=Math.abs(E),v=Math.floor(y/60),D=y%60;return(E<=0?"+":"-")+k(v,2,"0")+":"+k(D,2,"0")},m:function M(E,y){if(E.date()<y.date())return-M(y,E);var v=12*(y.year()-E.year())+(y.month()-E.month()),D=E.clone().add(v,f),F=y-D<0,Q=E.clone().add(v+(F?-1:1),f);return+(-(v+(y-D)/(F?D-Q:Q-D))||0)},a:function(M){return M<0?Math.ceil(M)||0:Math.floor(M)},p:function(M){return{M:f,y:u,w:h,d,D:m,h:l,m:c,s:a,ms:o,Q:p}[M]||String(M||"").toLowerCase().replace(/s$/,"")},u:function(M){return M===void 0}},R="en",T={};T[R]=I;var B="$isDayjsObject",g=function(M){return M instanceof L||!(!M||!M[B])},N=function M(E,y,v){var D;if(!E)return R;if(typeof E=="string"){var F=E.toLowerCase();T[F]&&(D=F),y&&(T[F]=y,D=F);var Q=E.split("-");if(!D&&Q.length>1)return M(Q[0])}else{var O=E.name;T[O]=E,D=O}return!v&&D&&(R=D),D||!v&&R},w=function(M,E){if(g(M))return M.clone();var y=typeof E=="object"?E:{};return y.date=M,y.args=arguments,new L(y)},S=P;S.l=N,S.i=g,S.w=function(M,E){return w(M,{locale:E.$L,utc:E.$u,x:E.$x,$offset:E.$offset})};var L=(function(){function M(y){this.$L=N(y.locale,null,!0),this.parse(y),this.$x=this.$x||y.x||{},this[B]=!0}var E=M.prototype;return E.parse=function(y){this.$d=(function(v){var D=v.date,F=v.utc;if(D===null)return new Date(NaN);if(S.u(D))return new Date;if(D instanceof Date)return new Date(D);if(typeof D=="string"&&!/Z$/i.test(D)){var Q=D.match(A);if(Q){var O=Q[2]-1||0,x=(Q[7]||"0").substring(0,3);return F?new Date(Date.UTC(Q[1],O,Q[3]||1,Q[4]||0,Q[5]||0,Q[6]||0,x)):new Date(Q[1],O,Q[3]||1,Q[4]||0,Q[5]||0,Q[6]||0,x)}}return new Date(D)})(y),this.init()},E.init=function(){var y=this.$d;this.$y=y.getFullYear(),this.$M=y.getMonth(),this.$D=y.getDate(),this.$W=y.getDay(),this.$H=y.getHours(),this.$m=y.getMinutes(),this.$s=y.getSeconds(),this.$ms=y.getMilliseconds()},E.$utils=function(){return S},E.isValid=function(){return this.$d.toString()!==C},E.isSame=function(y,v){var D=w(y);return this.startOf(v)<=D&&D<=this.endOf(v)},E.isAfter=function(y,v){return w(y)<this.startOf(v)},E.isBefore=function(y,v){return this.endOf(v)<w(y)},E.$g=function(y,v,D){return S.u(y)?this[v]:this.set(D,y)},E.unix=function(){return Math.floor(this.valueOf()/1e3)},E.valueOf=function(){return this.$d.getTime()},E.startOf=function(y,v){var D=this,F=!!S.u(v)||v,Q=S.p(y),O=function(se,oe){var ge=S.w(D.$u?Date.UTC(D.$y,oe,se):new Date(D.$y,oe,se),D);return F?ge:ge.endOf(d)},x=function(se,oe){return S.w(D.toDate()[se].apply(D.toDate("s"),(F?[0,0,0,0]:[23,59,59,999]).slice(oe)),D)},U=this.$W,H=this.$M,j=this.$D,X="set"+(this.$u?"UTC":"");switch(Q){case u:return F?O(1,0):O(31,11);case f:return F?O(1,H):O(0,H+1);case h:var Z=this.$locale().weekStart||0,re=(U<Z?U+7:U)-Z;return O(F?j-re:j+(6-re),H);case d:case m:return x(X+"Hours",0);case l:return x(X+"Minutes",1);case c:return x(X+"Seconds",2);case a:return x(X+"Milliseconds",3);default:return this.clone()}},E.endOf=function(y){return this.startOf(y,!1)},E.$set=function(y,v){var D,F=S.p(y),Q="set"+(this.$u?"UTC":""),O=(D={},D[d]=Q+"Date",D[m]=Q+"Date",D[f]=Q+"Month",D[u]=Q+"FullYear",D[l]=Q+"Hours",D[c]=Q+"Minutes",D[a]=Q+"Seconds",D[o]=Q+"Milliseconds",D)[F],x=F===d?this.$D+(v-this.$W):v;if(F===f||F===u){var U=this.clone().set(m,1);U.$d[O](x),U.init(),this.$d=U.set(m,Math.min(this.$D,U.daysInMonth())).$d}else O&&this.$d[O](x);return this.init(),this},E.set=function(y,v){return this.clone().$set(y,v)},E.get=function(y){return this[S.p(y)]()},E.add=function(y,v){var D,F=this;y=Number(y);var Q=S.p(v),O=function(H){var j=w(F);return S.w(j.date(j.date()+Math.round(H*y)),F)};if(Q===f)return this.set(f,this.$M+y);if(Q===u)return this.set(u,this.$y+y);if(Q===d)return O(1);if(Q===h)return O(7);var x=(D={},D[c]=i,D[l]=s,D[a]=t,D)[Q]||1,U=this.$d.getTime()+y*x;return S.w(U,this)},E.subtract=function(y,v){return this.add(-1*y,v)},E.format=function(y){var v=this,D=this.$locale();if(!this.isValid())return D.invalidDate||C;var F=y||"YYYY-MM-DDTHH:mm:ssZ",Q=S.z(this),O=this.$H,x=this.$m,U=this.$M,H=D.weekdays,j=D.months,X=D.meridiem,Z=function(oe,ge,ve,Ce){return oe&&(oe[ge]||oe(v,F))||ve[ge].slice(0,Ce)},re=function(oe){return S.s(O%12||12,oe,"0")},se=X||function(oe,ge,ve){var Ce=oe<12?"AM":"PM";return ve?Ce.toLowerCase():Ce};return F.replace(b,(function(oe,ge){return ge||(function(ve){switch(ve){case"YY":return String(v.$y).slice(-2);case"YYYY":return S.s(v.$y,4,"0");case"M":return U+1;case"MM":return S.s(U+1,2,"0");case"MMM":return Z(D.monthsShort,U,j,3);case"MMMM":return Z(j,U);case"D":return v.$D;case"DD":return S.s(v.$D,2,"0");case"d":return String(v.$W);case"dd":return Z(D.weekdaysMin,v.$W,H,2);case"ddd":return Z(D.weekdaysShort,v.$W,H,3);case"dddd":return H[v.$W];case"H":return String(O);case"HH":return S.s(O,2,"0");case"h":return re(1);case"hh":return re(2);case"a":return se(O,x,!0);case"A":return se(O,x,!1);case"m":return String(x);case"mm":return S.s(x,2,"0");case"s":return String(v.$s);case"ss":return S.s(v.$s,2,"0");case"SSS":return S.s(v.$ms,3,"0");case"Z":return Q}return null})(oe)||Q.replace(":","")}))},E.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},E.diff=function(y,v,D){var F,Q=this,O=S.p(v),x=w(y),U=(x.utcOffset()-this.utcOffset())*i,H=this-x,j=function(){return S.m(Q,x)};switch(O){case u:F=j()/12;break;case f:F=j();break;case p:F=j()/3;break;case h:F=(H-U)/6048e5;break;case d:F=(H-U)/864e5;break;case l:F=H/s;break;case c:F=H/i;break;case a:F=H/t;break;default:F=H}return D?F:S.a(F)},E.daysInMonth=function(){return this.endOf(f).$D},E.$locale=function(){return T[this.$L]},E.locale=function(y,v){if(!y)return this.$L;var D=this.clone(),F=N(y,v,!0);return F&&(D.$L=F),D},E.clone=function(){return S.w(this.$d,this)},E.toDate=function(){return new Date(this.valueOf())},E.toJSON=function(){return this.isValid()?this.toISOString():null},E.toISOString=function(){return this.$d.toISOString()},E.toString=function(){return this.$d.toUTCString()},M})(),V=L.prototype;return w.prototype=V,[["$ms",o],["$s",a],["$m",c],["$H",l],["$W",d],["$M",f],["$y",u],["$D",m]].forEach((function(M){V[M[1]]=function(E){return this.$g(E,M[0],M[1])}})),w.extend=function(M,E){return M.$i||(M(E,L,w),M.$i=!0),w},w.locale=N,w.isDayjs=g,w.unix=function(M){return w(1e3*M)},w.en=T[R],w.Ls=T,w.p={},w}))})(pi)),pi.exports}var UC=gl();const Ke=Yt(UC);var mi={exports:{}},_C=mi.exports,Al;function QC(){return Al||(Al=1,(function(n,e){(function(t,i){n.exports=i(gl())})(_C,(function(t){function i(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var s=i(t),o={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(a,c){return c==="W"?a+"周":a+"日"},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(a,c){var l=100*a+c;return l<600?"凌晨":l<900?"早上":l<1100?"上午":l<1300?"中午":l<1800?"下午":"晚上"}};return s.default.locale(o,null,!0),o}))})(mi)),mi.exports}QC();var gi={exports:{}},VC=gi.exports,yl;function GC(){return yl||(yl=1,(function(n,e){(function(t,i){n.exports=i()})(VC,(function(){return function(t,i,s){var o=i.prototype,a=function(f){return f&&(f.indexOf?f:f.s)},c=function(f,p,u,m,C){var A=f.name?f:f.$locale(),b=a(A[p]),I=a(A[u]),k=b||I.map((function(R){return R.slice(0,m)}));if(!C)return k;var P=A.weekStart;return k.map((function(R,T){return k[(T+(P||0))%7]}))},l=function(){return s.Ls[s.locale()]},d=function(f,p){return f.formats[p]||(function(u){return u.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(m,C,A){return C||A.slice(1)}))})(f.formats[p.toUpperCase()])},h=function(){var f=this;return{months:function(p){return p?p.format("MMMM"):c(f,"months")},monthsShort:function(p){return p?p.format("MMM"):c(f,"monthsShort","months",3)},firstDayOfWeek:function(){return f.$locale().weekStart||0},weekdays:function(p){return p?p.format("dddd"):c(f,"weekdays")},weekdaysMin:function(p){return p?p.format("dd"):c(f,"weekdaysMin","weekdays",2)},weekdaysShort:function(p){return p?p.format("ddd"):c(f,"weekdaysShort","weekdays",3)},longDateFormat:function(p){return d(f.$locale(),p)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};o.localeData=function(){return h.bind(this)()},s.localeData=function(){var f=l();return{firstDayOfWeek:function(){return f.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 d(f,p)},meridiem:f.meridiem,ordinal:f.ordinal}},s.months=function(){return c(l(),"months")},s.monthsShort=function(){return c(l(),"monthsShort","months",3)},s.weekdays=function(f){return c(l(),"weekdays",null,null,f)},s.weekdaysShort=function(f){return c(l(),"weekdaysShort","weekdays",3,f)},s.weekdaysMin=function(f){return c(l(),"weekdaysMin","weekdays",2,f)}}}))})(gi)),gi.exports}var HC=GC();const YC=Yt(HC);var Ai={exports:{}},zC=Ai.exports,Cl;function WC(){return Cl||(Cl=1,(function(n,e){(function(t,i){n.exports=i()})(zC,(function(){return function(t,i){i.prototype.weekday=function(s){var o=this.$locale().weekStart||0,a=this.$W,c=(a<o?a+7:a)-o;return this.$utils().u(s)?c:this.subtract(c,"day").add(s,"day")}}}))})(Ai)),Ai.exports}var jC=WC();const KC=Yt(jC);var yi={exports:{}},$C=yi.exports,El;function XC(){return El||(El=1,(function(n,e){(function(t,i){n.exports=i()})($C,(function(){var t="week",i="year";return function(s,o,a){var c=o.prototype;c.week=function(l){if(l===void 0&&(l=null),l!==null)return this.add(7*(l-this.week()),"day");var d=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var h=a(this).startOf(i).add(1,i).date(d),f=a(this).endOf(t);if(h.isBefore(f))return 1}var p=a(this).startOf(i).date(d).startOf(t).subtract(1,"millisecond"),u=this.diff(p,t,!0);return u<0?a(this).startOf("week").week():Math.ceil(u)},c.weeks=function(l){return l===void 0&&(l=null),this.week(l)}}}))})(yi)),yi.exports}var qC=XC();const JC=Yt(qC);var Ci={exports:{}},ZC=Ci.exports,bl;function eE(){return bl||(bl=1,(function(n,e){(function(t,i){n.exports=i()})(ZC,(function(){var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},i=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,s=/\d/,o=/\d\d/,a=/\d\d?/,c=/\d*[^-_:/,()\s\d]+/,l={},d=function(A){return(A=+A)+(A>68?1900:2e3)},h=function(A){return function(b){this[A]=+b}},f=[/[+-]\d\d:?(\d\d)?|Z/,function(A){(this.zone||(this.zone={})).offset=(function(b){if(!b||b==="Z")return 0;var I=b.match(/([+-]|\d\d)/g),k=60*I[1]+(+I[2]||0);return k===0?0:I[0]==="+"?-k:k})(A)}],p=function(A){var b=l[A];return b&&(b.indexOf?b:b.s.concat(b.f))},u=function(A,b){var I,k=l.meridiem;if(k){for(var P=1;P<=24;P+=1)if(A.indexOf(k(P,0,b))>-1){I=P>12;break}}else I=A===(b?"pm":"PM");return I},m={A:[c,function(A){this.afternoon=u(A,!1)}],a:[c,function(A){this.afternoon=u(A,!0)}],Q:[s,function(A){this.month=3*(A-1)+1}],S:[s,function(A){this.milliseconds=100*+A}],SS:[o,function(A){this.milliseconds=10*+A}],SSS:[/\d{3}/,function(A){this.milliseconds=+A}],s:[a,h("seconds")],ss:[a,h("seconds")],m:[a,h("minutes")],mm:[a,h("minutes")],H:[a,h("hours")],h:[a,h("hours")],HH:[a,h("hours")],hh:[a,h("hours")],D:[a,h("day")],DD:[o,h("day")],Do:[c,function(A){var b=l.ordinal,I=A.match(/\d+/);if(this.day=I[0],b)for(var k=1;k<=31;k+=1)b(k).replace(/\[|\]/g,"")===A&&(this.day=k)}],w:[a,h("week")],ww:[o,h("week")],M:[a,h("month")],MM:[o,h("month")],MMM:[c,function(A){var b=p("months"),I=(p("monthsShort")||b.map((function(k){return k.slice(0,3)}))).indexOf(A)+1;if(I<1)throw new Error;this.month=I%12||I}],MMMM:[c,function(A){var b=p("months").indexOf(A)+1;if(b<1)throw new Error;this.month=b%12||b}],Y:[/[+-]?\d+/,h("year")],YY:[o,function(A){this.year=d(A)}],YYYY:[/\d{4}/,h("year")],Z:f,ZZ:f};function C(A){var b,I;b=A,I=l&&l.formats;for(var k=(A=b.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(w,S,L){var V=L&&L.toUpperCase();return S||I[L]||t[L]||I[V].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(M,E,y){return E||y.slice(1)}))}))).match(i),P=k.length,R=0;R<P;R+=1){var T=k[R],B=m[T],g=B&&B[0],N=B&&B[1];k[R]=N?{regex:g,parser:N}:T.replace(/^\[|\]$/g,"")}return function(w){for(var S={},L=0,V=0;L<P;L+=1){var M=k[L];if(typeof M=="string")V+=M.length;else{var E=M.regex,y=M.parser,v=w.slice(V),D=E.exec(v)[0];y.call(S,D),w=w.replace(D,"")}}return(function(F){var Q=F.afternoon;if(Q!==void 0){var O=F.hours;Q?O<12&&(F.hours+=12):O===12&&(F.hours=0),delete F.afternoon}})(S),S}}return function(A,b,I){I.p.customParseFormat=!0,A&&A.parseTwoDigitYear&&(d=A.parseTwoDigitYear);var k=b.prototype,P=k.parse;k.parse=function(R){var T=R.date,B=R.utc,g=R.args;this.$u=B;var N=g[1];if(typeof N=="string"){var w=g[2]===!0,S=g[3]===!0,L=w||S,V=g[2];S&&(V=g[2]),l=this.$locale(),!w&&V&&(l=I.Ls[V]),this.$d=(function(v,D,F,Q){try{if(["x","X"].indexOf(D)>-1)return new Date((D==="X"?1e3:1)*v);var O=C(D)(v),x=O.year,U=O.month,H=O.day,j=O.hours,X=O.minutes,Z=O.seconds,re=O.milliseconds,se=O.zone,oe=O.week,ge=new Date,ve=H||(x||U?1:ge.getDate()),Ce=x||ge.getFullYear(),Be=0;x&&!U||(Be=U>0?U-1:ge.getMonth());var Te,_e=j||0,z=X||0,Y=Z||0,$=re||0;return se?new Date(Date.UTC(Ce,Be,ve,_e,z,Y,$+60*se.offset*1e3)):F?new Date(Date.UTC(Ce,Be,ve,_e,z,Y,$)):(Te=new Date(Ce,Be,ve,_e,z,Y,$),oe&&(Te=Q(Te).week(oe).toDate()),Te)}catch{return new Date("")}})(T,N,B,I),this.init(),V&&V!==!0&&(this.$L=this.locale(V).$L),L&&T!=this.format(N)&&(this.$d=new Date("")),l={}}else if(N instanceof Array)for(var M=N.length,E=1;E<=M;E+=1){g[1]=N[E-1];var y=I.apply(this,g);if(y.isValid()){this.$d=y.$d,this.$L=y.$L,this.init();break}E===M&&(this.$d=new Date(""))}else P.call(this,R)}}}))})(Ci)),Ci.exports}var tE=eE();const nE=Yt(tE),iE={class:"setting-panel"},sE={class:"tabs-header"},oE={class:"tab-content"},rE={key:0,class:"section"},aE={class:"setting-item"},lE={class:"setting-item"},cE={class:"setting-item"},dE={key:1,class:"section"},uE={class:"tabs-header",style:{"margin-bottom":"8px"}},hE={key:0},fE={class:"setting-item column"},pE={class:"setting-item column"},mE={class:"setting-item"},gE={key:1},AE={class:"setting-item column"},yE={class:"setting-item column",style:{"margin-top":"12px","border-top":"1px solid rgba(255,255,255,0.1)","padding-top":"8px"}},CE={class:"search-box"},EE={key:2,class:"section"},bE={class:"setting-item"},wE={key:0,class:"setting-item column"},vE={class:"sub-label"},IE={class:"setting-item"},BE={class:"setting-item"},xE={class:"setting-item column"},SE={class:"setting-item column"},TE={class:"sub-label"},ME={class:"setting-item column"},DE={class:"sub-label"},kE={class:"setting-item column"},PE={class:"sub-label"},FE={class:"setting-item column"},NE={style:{display:"flex",gap:"8px","margin-bottom":"8px"}},RE=["onClick","title"],LE={style:{display:"flex",gap:"8px","align-items":"center"}},OE={key:3,class:"section"},UE={class:"setting-item"},_E={class:"setting-item column"},xn=ye(r.defineComponent({__name:"LeitingSetting",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean,default:!1},tiandituToken:{type:String,default:""},initialConfig:{type:Object,default:()=>({})}},emits:["update:visible","update:open","close"],setup(n,{emit:e}){Ke.locale("zh-cn"),Ke.extend(YC),Ke.extend(KC),Ke.extend(JC),Ke.extend(nE);const t=ie.Switch,i=ie.Radio.Group,s=ie.Radio,o=ie.Input,a=ie.Slider,c=ie.Select,l=ie.Select.Option,d=ie.DatePicker,h=n,f=e,p=r.inject("leitingMethods"),u=r.computed({get:()=>h.open!==void 0?h.open:h.visible,set:E=>{f("update:visible",E),f("update:open",E)}}),m=r.ref("GIS"),C=r.reactive({globe:!1,terrain:!1,depthTest:!1}),A=r.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"}),b=r.reactive({shadows:!1,shadowDarkness:.7,environmentMap:!1,ambientOcclusion:!1,time:Ke("2025-06-22 10:00"),brightness:1.5,contrast:1,saturation:1,backgroundColor:"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)"}),I=r.reactive({collision:!1,habit:0}),k=E=>{E&&(E.globe!==void 0&&(C.globe=E.globe),E.terrain!==void 0&&(C.terrain=E.terrain),E.depthTest!==void 0&&(C.depthTest=E.depthTest),E.mapProvider!==void 0&&(A.provider=E.mapProvider),E.tiandituLayerType!==void 0&&(A.tianditu.layerType=E.tiandituLayerType),E.tiandituShowLabel!==void 0&&(A.tianditu.showLabel=E.tiandituShowLabel),E.arcgisUrl!==void 0&&(A.arcgis.url=E.arcgisUrl),E.shadows!==void 0&&(b.shadows=E.shadows),E.shadowDarkness!==void 0&&(b.shadowDarkness=E.shadowDarkness),E.environmentMap!==void 0&&(b.environmentMap=E.environmentMap),E.ambientOcclusion!==void 0&&(b.ambientOcclusion=E.ambientOcclusion),E.time!==void 0&&(typeof E.time=="number"?b.time=Ke().startOf("day").add(E.time,"hour"):b.time=Ke(E.time)),E.brightness!==void 0&&(b.brightness=E.brightness),E.contrast!==void 0&&(b.contrast=E.contrast),E.saturation!==void 0&&(b.saturation=E.saturation),E.backgroundColor!==void 0&&(b.backgroundColor=E.backgroundColor),E.collision!==void 0&&(I.collision=E.collision),E.mouseHabit!==void 0&&(I.habit=E.mouseHabit))};r.watch(()=>h.initialConfig,E=>{k(E)},{deep:!0,immediate:!0});const P=["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%)"],R=[{label:"全球影像地图服务(墨卡托)",value:"img_w"},{label:"全球影像地图服务(经纬度)",value:"img_c"},{label:"全球矢量地图服务(墨卡托)",value:"vec_w"},{label:"全球矢量地图服务(经纬度)",value:"vec_c"},{label:"全球地形晕渲服务(墨卡托)",value:"ter_w"},{label:"全球地形晕渲服务(经纬度)",value:"ter_c"}],T=()=>{const E=A.provider,y={};E==="tianditu"?(y.token=A.tianditu.token,y.layerType=A.tianditu.layerType,y.showAnnotation=A.tianditu.showLabel):E==="arcgis"&&(y.url=A.arcgis.url),p.value?.changeBaseMap?.(E,y)};r.watch(()=>A.provider,T),r.watch(()=>A.tianditu.layerType,T),r.watch(()=>A.tianditu.showLabel,T),r.watch(()=>A.tianditu.token,_n(T,1e3)),r.watch(()=>A.arcgis.url,_n(T,1e3)),r.onMounted(()=>{h.tiandituToken&&(A.tianditu.token=h.tiandituToken)}),r.watch(()=>C.globe,E=>p.value?.setGlobeEnvironmentVisible?.(E)),r.watch(()=>C.terrain,E=>p.value?.setTerrainEnable?.(E)),r.watch(()=>C.depthTest,E=>p.value?.setDepthTestEnable?.(E)),r.watch(()=>p?.value,E=>{if(E){if(E.getConfigure=()=>({globe:C.globe,terrain:C.terrain,depthTest:C.depthTest,mapProvider:A.provider,tiandituLayerType:A.tianditu.layerType,tiandituShowLabel:A.tianditu.showLabel,arcgisUrl:A.arcgis.url,shadows:b.shadows,shadowDarkness:b.shadowDarkness,environmentMap:b.environmentMap,ambientOcclusion:b.ambientOcclusion,time:Ke.isDayjs(b.time)?b.time.format("YYYY-MM-DD HH:mm"):b.time,brightness:b.brightness,contrast:b.contrast,saturation:b.saturation,backgroundColor:b.backgroundColor,collision:I.collision,mouseHabit:I.habit}),E.setConfigure=y=>{k(y)},E.setBackgroundColor&&b.backgroundColor&&E.setBackgroundColor(b.backgroundColor),E.setGlobeEnvironmentVisible&&E.setGlobeEnvironmentVisible(C.globe),E.setShadowsEnable&&E.setShadowsEnable(b.shadows),E.setShadowDarkness&&E.setShadowDarkness(b.shadowDarkness),E.setEnvironmentMapEnable&&E.setEnvironmentMapEnable(b.environmentMap),E.setAmbientOcclusion&&E.setAmbientOcclusion(b.ambientOcclusion),E.setTime){const y=Ke.isDayjs(b.time)?b.time.toDate():new Date;E.setTime(y)}E.setModelBrightness&&E.setModelBrightness(b.brightness),E.setCollisionDetection&&E.setCollisionDetection(I.collision),E.setMouseHabit&&E.setMouseHabit(I.habit),E.changeBaseMap&&A.baseMap&&E.changeBaseMap(A.baseMap,{token:A.tianditu.token,layerType:A.tianditu.layerType,showAnnotation:A.tianditu.showLabel,url:A.arcgis.url})}},{immediate:!0});const B=r.computed({get:()=>{const E=b.backgroundColor;return/^#[0-9A-Fa-f]{6}$/.test(E)?E:"#ffffff"},set:E=>{b.backgroundColor=E}}),g=r.ref(""),N=r.ref(!1),w=r.ref([]);r.watch(()=>C.globe,E=>p.value?.setGlobeEnvironmentVisible?.(E)),r.watch(()=>C.terrain,E=>p.value?.setTerrainEnable?.(E)),r.watch(()=>A.baseMap,E=>{p.value?.changeBaseMap?.(E,{token:h.tiandituToken})}),r.watch(()=>b.shadows,E=>p.value?.setShadowsEnable?.(E)),r.watch(()=>b.shadowDarkness,E=>p.value?.setShadowDarkness?.(E)),r.watch(()=>b.environmentMap,E=>p.value?.setEnvironmentMapEnable?.(E)),r.watch(()=>b.ambientOcclusion,E=>p.value?.setAmbientOcclusion?.(E)),r.watch(()=>b.time,E=>{const y=Ke.isDayjs(E)?E.toDate():new Date;p.value?.setTime?.(y)}),r.watch(()=>[b.brightness,b.contrast,b.saturation],([E,y,v])=>{const D=p.value;D?.setModelColorAdjustment?D.setModelColorAdjustment({brightness:E,contrast:y,saturation:v}):D?.setModelBrightness?.(E)}),r.watch(()=>b.backgroundColor,E=>{if(p.value?.setBackgroundColor)p.value.setBackgroundColor(E);else{const y=document.querySelector(".cesium-viewer");y&&(y.style.background=E)}}),r.watch(()=>I.collision,E=>p.value?.setCollisionDetection?.(E)),r.watch(()=>I.habit,E=>p.value?.setMouseHabit?.(E));const S=E=>{if(E?.pois&&Array.isArray(E.pois)&&E.pois.length>0){const y=E.pois[0],v=y.lonlat.split(/[, ]/).map(Number);if(v.length>=2&&!isNaN(v[0])&&!isNaN(v[1]))return{name:y.name,lon:v[0],lat:v[1],raw:y}}if(E?.area&&E.area.lonlat){const y=E.area,v=y.lonlat.split(/[, ]/).map(Number);if(v.length>=2&&!isNaN(v[0])&&!isNaN(v[1]))return{name:y.name,lon:v[0],lat:v[1],raw:y}}return null},V=_n(async()=>{const E=(g.value||"").trim();if(!E)return;const y=h.tiandituToken||"c25f14fb6bd4397cf8fe45144ff768d6";N.value=!0,w.value=[];try{if(p.value?.searchLocation){const v=await p.value.searchLocation(E,y),D=S(v);D&&(w.value=[D],ce.success(`找到:${D.name||""}`),p.value.flyToLonLatHeight(D.lon,D.lat,5e3))}else{const D=`https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(JSON.stringify({keyWord:E,level:12,mapBound:"-180,-90,180,90",queryType:1,start:0,count:10}))}&type=query&tk=${encodeURIComponent(y)}`,F=await fetch(D);if(!F.ok)throw new Error(`HTTP ${F.status}`);const Q=await F.json(),O=S(Q);O&&(w.value=[O],ce.success(`找到:${O.name||""}`),p.value?.flyToLonLatHeight?.(O.lon,O.lat,5e3))}}catch(v){console.error("tianditu search error",v)}finally{N.value=!1}},800);r.watch(g,()=>{V()});const M=()=>{u.value=!1,f("close")};return r.onMounted(()=>{}),(E,y)=>(r.openBlock(),r.createBlock(Le,{visible:u.value,title:"设置","full-height":n.fullHeight,onClose:M,"onUpdate:visible":y[26]||(y[26]=v=>u.value=v)},{default:r.withCtx(()=>[r.createElementVNode("div",iE,[r.createElementVNode("div",sE,[r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:m.value==="GIS"}]),onClick:y[0]||(y[0]=v=>m.value="GIS")},"GIS",2),r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:m.value==="MAP"}]),onClick:y[1]||(y[1]=v=>m.value="MAP")},"地图",2),r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:m.value==="RENDER"}]),onClick:y[2]||(y[2]=v=>m.value="RENDER")},"渲染",2),r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:m.value==="MOUSE"}]),onClick:y[3]||(y[3]=v=>m.value="MOUSE")},"鼠标",2)]),r.createElementVNode("div",oE,[m.value==="GIS"?(r.openBlock(),r.createElementBlock("div",rE,[r.createElementVNode("div",aE,[y[27]||(y[27]=r.createElementVNode("span",null,"地球 (含大气/日月/星空)",-1)),r.createVNode(r.unref(t),{checked:C.globe,"onUpdate:checked":y[4]||(y[4]=v=>C.globe=v),size:"small"},null,8,["checked"])]),r.createElementVNode("div",lE,[y[28]||(y[28]=r.createElementVNode("span",null,"地形 (高程)",-1)),r.createVNode(r.unref(t),{checked:C.terrain,"onUpdate:checked":y[5]||(y[5]=v=>C.terrain=v),size:"small"},null,8,["checked"])]),r.createElementVNode("div",cE,[y[29]||(y[29]=r.createElementVNode("span",null,"地形遮挡",-1)),r.createVNode(r.unref(t),{checked:C.depthTest,"onUpdate:checked":y[6]||(y[6]=v=>C.depthTest=v),size:"small"},null,8,["checked"])])])):r.createCommentVNode("",!0),m.value==="MAP"?(r.openBlock(),r.createElementBlock("div",dE,[r.createElementVNode("div",uE,[r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:A.provider==="tianditu"}]),onClick:y[7]||(y[7]=v=>A.provider="tianditu")},"天地图",2),r.createElementVNode("div",{class:r.normalizeClass(["tab-item",{active:A.provider==="arcgis"}]),onClick:y[8]||(y[8]=v=>A.provider="arcgis")},"ArcGIS",2)]),A.provider==="tianditu"?(r.openBlock(),r.createElementBlock("div",hE,[r.createElementVNode("div",fE,[y[30]||(y[30]=r.createElementVNode("div",{class:"sub-label"},"Token",-1)),r.createVNode(r.unref(o),{value:A.tianditu.token,"onUpdate:value":y[9]||(y[9]=v=>A.tianditu.token=v),size:"small",placeholder:"输入天地图Token"},null,8,["value"])]),r.createElementVNode("div",pE,[y[31]||(y[31]=r.createElementVNode("div",{class:"sub-label"},"地图风格",-1)),r.createVNode(r.unref(c),{value:A.tianditu.layerType,"onUpdate:value":y[10]||(y[10]=v=>A.tianditu.layerType=v),size:"small",style:{width:"100%"}},{default:r.withCtx(()=>[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(R,v=>r.createVNode(r.unref(l),{key:v.value,value:v.value},{default:r.withCtx(()=>[r.createTextVNode(r.toDisplayString(v.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"])]),r.createElementVNode("div",mE,[y[32]||(y[32]=r.createElementVNode("span",null,"叠加注记",-1)),r.createVNode(r.unref(t),{checked:A.tianditu.showLabel,"onUpdate:checked":y[11]||(y[11]=v=>A.tianditu.showLabel=v),size:"small"},null,8,["checked"])])])):r.createCommentVNode("",!0),A.provider==="arcgis"?(r.openBlock(),r.createElementBlock("div",gE,[r.createElementVNode("div",AE,[y[33]||(y[33]=r.createElementVNode("div",{class:"sub-label"},"服务地址",-1)),r.createVNode(r.unref(o),{value:A.arcgis.url,"onUpdate:value":y[12]||(y[12]=v=>A.arcgis.url=v),size:"small",placeholder:"输入ArcGIS MapServer地址"},null,8,["value"])])])):r.createCommentVNode("",!0),r.createElementVNode("div",yE,[y[34]||(y[34]=r.createElementVNode("div",{class:"sub-label"},"位置搜索 (天地图)",-1)),r.createElementVNode("div",CE,[r.createVNode(r.unref(o),{value:g.value,"onUpdate:value":y[13]||(y[13]=v=>g.value=v),placeholder:"输入地名搜索",size:"small","allow-clear":""},null,8,["value"])])])])):r.createCommentVNode("",!0),m.value==="RENDER"?(r.openBlock(),r.createElementBlock("div",EE,[r.createElementVNode("div",bE,[y[35]||(y[35]=r.createElementVNode("span",null,"阴影",-1)),r.createVNode(r.unref(t),{checked:b.shadows,"onUpdate:checked":y[14]||(y[14]=v=>b.shadows=v),size:"small"},null,8,["checked"])]),b.shadows?(r.openBlock(),r.createElementBlock("div",wE,[r.createElementVNode("div",vE,"阴影暗度 ("+r.toDisplayString(b.shadowDarkness.toFixed(2))+")",1),r.createVNode(r.unref(a),{value:b.shadowDarkness,"onUpdate:value":y[15]||(y[15]=v=>b.shadowDarkness=v),min:0,max:1,step:.05,size:"small"},null,8,["value"])])):r.createCommentVNode("",!0),r.createElementVNode("div",IE,[y[36]||(y[36]=r.createElementVNode("span",null,"环境贴图 (HDR)",-1)),r.createVNode(r.unref(t),{checked:b.environmentMap,"onUpdate:checked":y[16]||(y[16]=v=>b.environmentMap=v),size:"small"},null,8,["checked"])]),r.createElementVNode("div",BE,[y[37]||(y[37]=r.createElementVNode("span",null,"环境光遮蔽 (AO)",-1)),r.createVNode(r.unref(t),{checked:b.ambientOcclusion,"onUpdate:checked":y[17]||(y[17]=v=>b.ambientOcclusion=v),size:"small"},null,8,["checked"])]),r.createElementVNode("div",xE,[y[38]||(y[38]=r.createElementVNode("div",{class:"sub-label"},"日期时间",-1)),r.createVNode(r.unref(d),{value:b.time,"onUpdate:value":y[18]||(y[18]=v=>b.time=v),"show-time":"",locale:r.unref(pl),format:"YYYY-MM-DD HH:mm",size:"small",style:{width:"100%"}},null,8,["value","locale"])]),r.createElementVNode("div",SE,[r.createElementVNode("div",TE,"模型亮度 ("+r.toDisplayString(b.brightness.toFixed(1))+")",1),r.createVNode(r.unref(a),{value:b.brightness,"onUpdate:value":y[19]||(y[19]=v=>b.brightness=v),min:0,max:5,step:.1,size:"small"},null,8,["value"])]),r.createElementVNode("div",ME,[r.createElementVNode("div",DE,"模型对比度 ("+r.toDisplayString(b.contrast.toFixed(1))+")",1),r.createVNode(r.unref(a),{value:b.contrast,"onUpdate:value":y[20]||(y[20]=v=>b.contrast=v),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),r.createElementVNode("div",kE,[r.createElementVNode("div",PE,"模型饱和度 ("+r.toDisplayString(b.saturation.toFixed(1))+")",1),r.createVNode(r.unref(a),{value:b.saturation,"onUpdate:value":y[21]||(y[21]=v=>b.saturation=v),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),r.createElementVNode("div",FE,[y[39]||(y[39]=r.createElementVNode("div",{class:"sub-label"},"背景颜色",-1)),r.createElementVNode("div",NE,[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(P,(v,D)=>r.createElementVNode("div",{key:D,style:r.normalizeStyle({background:v,width:"32px",height:"24px",borderRadius:"2px",cursor:"pointer",border:"1px solid #d9d9d9",flexShrink:0}),onClick:F=>b.backgroundColor=v,title:"预设 "+(D+1)},null,12,RE)),64))]),r.createElementVNode("div",LE,[r.withDirectives(r.createElementVNode("input",{type:"color","onUpdate:modelValue":y[22]||(y[22]=v=>B.value=v),style:{width:"40px",height:"24px",padding:"0",border:"1px solid #d9d9d9"}},null,512),[[r.vModelText,B.value]]),r.createVNode(r.unref(o),{value:b.backgroundColor,"onUpdate:value":y[23]||(y[23]=v=>b.backgroundColor=v),size:"small",style:{flex:"1"},placeholder:"CSS 颜色值"},null,8,["value"])])])])):r.createCommentVNode("",!0),m.value==="MOUSE"?(r.openBlock(),r.createElementBlock("div",OE,[r.createElementVNode("div",UE,[y[40]||(y[40]=r.createElementVNode("span",null,"碰撞检测",-1)),r.createVNode(r.unref(t),{checked:I.collision,"onUpdate:checked":y[24]||(y[24]=v=>I.collision=v),size:"small"},null,8,["checked"])]),r.createElementVNode("div",_E,[y[43]||(y[43]=r.createElementVNode("div",{class:"sub-label"},"操作习惯",-1)),r.createVNode(r.unref(i),{value:I.habit,"onUpdate:value":y[25]||(y[25]=v=>I.habit=v),size:"small"},{default:r.withCtx(()=>[r.createVNode(r.unref(s),{value:0},{default:r.withCtx(()=>[...y[41]||(y[41]=[r.createTextVNode("默认 (中键旋转)",-1)])]),_:1}),r.createVNode(r.unref(s),{value:1},{default:r.withCtx(()=>[...y[42]||(y[42]=[r.createTextVNode("习惯1 (左键旋转)",-1)])]),_:1})]),_:1},8,["value"])])])):r.createCommentVNode("",!0)])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-79494025"]]),QE={class:"cad-layer-panel"},VE={class:"layer-list-container"},GE={class:"list-header"},HE={class:"col-check"},YE=["checked"],zE={class:"list-body"},WE={class:"col-check"},jE=["checked","onChange"],KE={class:"col-index"},$E=["title"],XE={class:"col-color"},qE=["value"],JE={key:0,class:"empty-text"},ZE=ye(r.defineComponent({__name:"LeitingCadLayer",props:{visible:{type:Boolean,default:!1},currentModelId:{type:String,default:""}},emits:["update:visible","handleCloseCardByCadCard"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods",r.ref({})),o=r.ref(""),a=r.ref([]),c=()=>{s.value&&s.value.getDxfModels&&(a.value=s.value.getDxfModels().map(I=>({modelId:I.modelId,modelName:I.modelName}))||[])},l=r.computed(()=>a.value.map(I=>({value:I.modelId,label:I.modelName}))),d=r.ref([]),h=r.ref([]),f=r.computed(()=>d.value.length>0&&h.value.length===d.value.length),p=({modelId:I})=>{if(d.value=[],h.value=[],s.value&&s.value.getDxfLayers){const k=s.value.getDxfLayers({modelId:I});k&&Object.keys(k).forEach((P,R)=>{k[P].length&&(d.value.push({index:R+1,layerName:P,layerColor:k[P][0].color||"#ffffff",key:P}),h.value.push(P))})}},u=I=>{o.value=I,p({modelId:I})},m=I=>{I.target.checked?h.value=d.value.map(P=>P.key):h.value=[],A()},C=(I,k)=>{k.target.checked?h.value.includes(I)||h.value.push(I):h.value=h.value.filter(R=>R!==I),A()},A=()=>{if(s.value&&s.value.showDxfLayer&&(s.value.showDxfLayer({modelId:o.value,show:!0,layers:h.value}),s.value.getDxfLayers)){const I=s.value.getDxfLayers({modelId:o.value});if(I){const k=Object.keys(I).filter(P=>!h.value.includes(P));s.value.showDxfLayer({modelId:o.value,show:!1,layers:k})}}},b=()=>{i("update:visible",!1),i("handleCloseCardByCadCard")};return r.watch(()=>t.visible,I=>{I&&(c(),t.currentModelId?(o.value=t.currentModelId,p({modelId:t.currentModelId})):l.value.length>0&&(o.value=l.value[0]?.value,p({modelId:o.value})))}),r.watch(()=>t.currentModelId,I=>{I&&t.visible&&(o.value=I,p({modelId:I}))}),(I,k)=>(r.openBlock(),r.createBlock(Le,{visible:n.visible,title:"CAD图层","onUpdate:visible":k[3]||(k[3]=P=>I.$emit("update:visible",P)),onClose:b,width:360,align:"right","initial-position":{x:0,y:60}},{"header-extra":r.withCtx(()=>[r.createElementVNode("div",{class:"header-select-container",onMousedown:k[2]||(k[2]=r.withModifiers(()=>{},["stop"]))},[k[4]||(k[4]=r.createElementVNode("span",{class:"header-label"},"图纸:",-1)),r.createVNode(r.unref(ie.Select),{value:o.value,"onUpdate:value":k[0]||(k[0]=P=>o.value=P),options:l.value,onChange:k[1]||(k[1]=P=>u(P)),placeholder:"选择模型",style:{width:"140px"},bordered:!1,class:"custom-header-select",popupClassName:"leiting-select-dropdown",size:"small"},null,8,["value","options"])],32)]),default:r.withCtx(()=>[r.createElementVNode("div",QE,[r.createElementVNode("div",VE,[r.createElementVNode("div",GE,[r.createElementVNode("div",HE,[r.createElementVNode("input",{type:"checkbox",checked:f.value,onChange:m},null,40,YE)]),k[5]||(k[5]=r.createElementVNode("div",{class:"col-index"},"序号",-1)),k[6]||(k[6]=r.createElementVNode("div",{class:"col-name"},"图层名称",-1)),k[7]||(k[7]=r.createElementVNode("div",{class:"col-color"},"颜色",-1))]),r.createElementVNode("div",zE,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(d.value,P=>(r.openBlock(),r.createElementBlock("div",{key:P.key,class:"list-item"},[r.createElementVNode("div",WE,[r.createElementVNode("input",{type:"checkbox",checked:h.value.includes(P.key),onChange:R=>C(P.key,R)},null,40,jE)]),r.createElementVNode("div",KE,r.toDisplayString(P.index),1),r.createElementVNode("div",{class:"col-name",title:P.layerName},r.toDisplayString(P.layerName),9,$E),r.createElementVNode("div",XE,[r.createElementVNode("input",{type:"color",value:P.layerColor,disabled:""},null,8,qE)])]))),128)),d.value.length===0?(r.openBlock(),r.createElementBlock("div",JE,"暂无数据")):r.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-a4db4977"]]),eb={class:"adjust-panel"},tb={class:"control-panel"},nb={class:"form-item"},ib={class:"radio-group"},sb={class:"form-item"},ob=["title"],rb={class:"param-row"},ab=["step"],lb={class:"param-row"},cb=["step"],db={class:"param-row"},ub=["step"],hb={class:"param-row"},fb=["step"],pb={class:"param-row"},mb=["step"],gb={class:"param-row"},Ab=["step"],yb={class:"param-row"},Cb=["step"],Eb={class:"button-grid"},bb={key:1,class:"pick-mode-ui"},wb=["onClick"],vb=["checked"],Ib={style:{"font-size":"12px",color:"#aaa","padding-left":"10px"}},Bb={class:"param-row"},xb={style:{width:"40px"}},Sb=["onUpdate:modelValue"],Tb={class:"param-row"},Mb={style:{width:"40px"}},Db=["onUpdate:modelValue"],kb={class:"param-row"},Pb={style:{width:"40px"}},Fb=["onUpdate:modelValue"],Nb={class:"list-panel"},Rb={class:"list-header"},Lb={class:"col-check"},Ob=["checked"],Ub={class:"list-body"},_b={class:"col-check"},Qb=["onUpdate:modelValue"],Vb={class:"col-index"},Gb=["title"],Hb={class:"col-main"},Yb=["checked","onChange"],zb={key:0,style:{padding:"10px","text-align":"center",color:"#999"}},Wb=ye(r.defineComponent({__name:"LeitingCadPosition",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","handleSavingByCadCard","clearBimPointList","save"],setup(n,{expose:e,emit:t}){const i=n,s=t,o=r.inject("leitingMethods"),a=r.ref([]),c=r.ref(""),l=r.computed(()=>a.value.length>0&&a.value.every(y=>y.selected)),d=r.ref("param"),h=r.ref("bimPoint1"),f=r.ref(null),p=r.ref("bimPoint1"),u=r.reactive({bimPoint1:{longitude:void 0,latitude:void 0,type:"CAD标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程",height:void 0},bimPoint2:{longitude:void 0,latitude:void 0,type:"地图标记点",longitudeText:"经度",latitudeText:"纬度",heightText:"高程",height:void 0}}),m=r.ref(1e-6),C=r.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=r.computed(()=>{const y=a.value.find(v=>v.modelId===c.value);return y?y.modelName:""}),b=()=>{s("update:visible",!1)},I=()=>(!f.value&&o?.value?.getViewer&&o?.value?.getCesium&&(f.value=new fl(o.value.getViewer(),o.value.getCesium())),f.value),k=()=>{I()?.clearMarkers(),u.bimPoint1.longitude=void 0,u.bimPoint1.latitude=void 0,u.bimPoint1.height=void 0,u.bimPoint2.longitude=void 0,u.bimPoint2.latitude=void 0,u.bimPoint2.height=void 0},P=y=>{const v=h.value,D=u[v];if(D){D.longitude=y.longitude,D.latitude=y.latitude,D.height=y.height;const F=v==="bimPoint1"?"BIM":"MAP";I()?.addMarker(F,y),ce.success(`${D.type}已添加`)}},R=()=>{I()?.registerPickHandler(y=>{P(y)})},T=()=>{I()?.destroyPickHandler()},B=y=>{d.value=y,y!=="pick"&&s("clearBimPointList")};r.watch(()=>d.value,y=>{y==="pick"?R():T()}),r.onUnmounted(()=>{T()});const g=()=>{if(!o?.value?.getDxfModels)return;const y=o.value.getDxfModels();if(Array.isArray(y)?a.value=y.map(v=>({modelId:v.modelId,modelName:v.modelName,formData:v.formData||{},selected:!1,tileset:v})):a.value=[],a.value.length>0){const v=o.value.getCadModelId?o.value.getCadModelId():"";v&&a.value.find(D=>D.modelId===v)?N(v):N(a.value[0].modelId),a.value.forEach(D=>D.selected=!0)}},N=y=>{c.value=y;const v=a.value.find(D=>D.modelId===y);v&&v.formData&&Object.keys(C).forEach(D=>{v.formData[D]!==void 0&&(C[D]=v.formData[D])})},w=(y,v)=>{if(!o?.value?.adjustingModelByCad)return;const D=a.value.find(F=>F.modelId===y);D&&D.tileset&&(D.formData={...D.formData,...v},D.tileset.formData=D.formData,o.value.adjustingModelByCad({...D.formData,tileset:D.tileset}))},S=y=>{if(!c.value)return;const v=C[y];w(c.value,{[y]:v})},L=y=>{const v=a.value.filter(O=>O.selected);if(v.length===0){ce.warning("请先选择要调整的模型");return}const{distance:D,heightDistance:F,rotation:Q}=C;v.forEach(O=>{const x={...O.formData};switch(y){case"north":x.latitude+=D;break;case"south":x.latitude-=D;break;case"east":x.longitude+=D;break;case"west":x.longitude-=D;break;case"up":x.height+=F;break;case"down":x.height-=F;break;case"rotateLeft":x.totalRotation=(x.totalRotation||0)-Q;break;case"rotateRight":x.totalRotation=(x.totalRotation||0)+Q;break}O.modelId===c.value&&Object.assign(C,x),w(O.modelId,x)})},V=y=>{const v=y.target.checked;a.value.forEach(D=>D.selected=v)},M=()=>{s("handleSavingByCadCard",a.value),s("save",a.value)},E=()=>{const y=u.bimPoint1,v=u.bimPoint2;if(y.longitude===void 0||v.longitude===void 0){ce.warning("请先完成点选操作");return}const D=a.value.filter(U=>U.selected);if(D.length===0){ce.warning("请先选择要调整的模型");return}let F=0,Q=0,O=0;const x=I();if(x){const{dLon:U,dLat:H,dHeight:j}=x.calculateOffset(y,v);F=U,Q=H,O=j}else F=v.longitude-y.longitude,Q=v.latitude-y.latitude,O=v.height-y.height;D.forEach(U=>{const H={...U.formData};H.longitude+=F,H.latitude+=Q,H.height+=O,U.modelId===c.value&&Object.assign(C,H),w(U.modelId,H)}),ce.success("位置已调整")};return r.watch(()=>i.visible,y=>{y?g():(T(),k())}),r.onMounted(()=>{i.visible&&g()}),e({setBIMPointsList:({longitude:y,latitude:v,height:D})=>{u[p.value].longitude=y,u[p.value].latitude=v,u[p.value].height=D},addGltfOr3dTilesModelList:y=>{console.warn("addGltfOr3dTilesModelList is deprecated, use internal loading")}}),(y,v)=>(r.openBlock(),r.createBlock(Le,{visible:i.visible,title:"Cad校准",width:282,height:600,"onUpdate:visible":v[21]||(v[21]=D=>s("update:visible",D)),onClose:b},{default:r.withCtx(()=>[r.createElementVNode("div",eb,[r.createElementVNode("div",tb,[r.createElementVNode("div",nb,[v[22]||(v[22]=r.createElementVNode("label",null,"调整操作:",-1)),r.createElementVNode("div",ib,[r.createElementVNode("span",{class:r.normalizeClass({active:d.value==="param"}),onClick:v[0]||(v[0]=D=>B("param"))},"参数模式",2),r.createElementVNode("span",{class:r.normalizeClass({active:d.value==="pick"}),onClick:v[1]||(v[1]=D=>B("pick"))},"地图点选",2)])]),r.createElementVNode("div",sb,[v[23]||(v[23]=r.createElementVNode("label",null,"当前主模型:",-1)),r.createElementVNode("span",{class:"value",title:A.value},r.toDisplayString(A.value||"未选择"),9,ob)]),v[35]||(v[35]=r.createElementVNode("div",{class:"separator"},null,-1)),d.value==="param"?(r.openBlock(),r.createElementBlock(r.Fragment,{key:0},[v[31]||(v[31]=r.createElementVNode("div",{class:"group-header"},"当前状态",-1)),r.createElementVNode("div",rb,[v[24]||(v[24]=r.createElementVNode("label",null,"经度(东西):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[2]||(v[2]=D=>C.longitude=D),onChange:v[3]||(v[3]=D=>S("longitude")),step:m.value},null,40,ab),[[r.vModelText,C.longitude,void 0,{number:!0}]])]),r.createElementVNode("div",lb,[v[25]||(v[25]=r.createElementVNode("label",null,"纬度(南北):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[4]||(v[4]=D=>C.latitude=D),onChange:v[5]||(v[5]=D=>S("latitude")),step:m.value},null,40,cb),[[r.vModelText,C.latitude,void 0,{number:!0}]])]),r.createElementVNode("div",db,[v[26]||(v[26]=r.createElementVNode("label",null,"高度(m):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[6]||(v[6]=D=>C.height=D),onChange:v[7]||(v[7]=D=>S("height")),step:m.value},null,40,ub),[[r.vModelText,C.height,void 0,{number:!0}]])]),r.createElementVNode("div",hb,[v[27]||(v[27]=r.createElementVNode("label",null,"累计旋转(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[8]||(v[8]=D=>C.totalRotation=D),onChange:v[9]||(v[9]=D=>S("totalRotation")),step:m.value},null,40,fb),[[r.vModelText,C.totalRotation,void 0,{number:!0}]])]),v[32]||(v[32]=r.createElementVNode("div",{class:"separator"},null,-1)),v[33]||(v[33]=r.createElementVNode("div",{class:"group-header"},"调整步长",-1)),r.createElementVNode("div",pb,[v[28]||(v[28]=r.createElementVNode("label",null,"经纬步长(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[10]||(v[10]=D=>C.distance=D),step:m.value},null,8,mb),[[r.vModelText,C.distance,void 0,{number:!0}]])]),r.createElementVNode("div",gb,[v[29]||(v[29]=r.createElementVNode("label",null,"高度步长(m):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[11]||(v[11]=D=>C.heightDistance=D),step:m.value},null,8,Ab),[[r.vModelText,C.heightDistance,void 0,{number:!0}]])]),r.createElementVNode("div",yb,[v[30]||(v[30]=r.createElementVNode("label",null,"旋转步长(°):",-1)),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":v[12]||(v[12]=D=>C.rotation=D),step:m.value},null,8,Cb),[[r.vModelText,C.rotation,void 0,{number:!0}]])]),r.createElementVNode("div",Eb,[r.createElementVNode("button",{onClick:v[13]||(v[13]=D=>L("rotateLeft"))},"左转"),r.createElementVNode("button",{onClick:v[14]||(v[14]=D=>L("north"))},"北移"),r.createElementVNode("button",{onClick:v[15]||(v[15]=D=>L("rotateRight"))},"右转"),r.createElementVNode("button",{onClick:v[16]||(v[16]=D=>L("west"))},"西移"),r.createElementVNode("button",{onClick:v[17]||(v[17]=D=>L("south"))},"南移"),r.createElementVNode("button",{onClick:v[18]||(v[18]=D=>L("east"))},"东移"),r.createElementVNode("button",{onClick:v[19]||(v[19]=D=>L("up"))},"上移"),r.createElementVNode("button",{onClick:v[20]||(v[20]=D=>L("down"))},"下移"),r.createElementVNode("button",{onClick:M,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):(r.openBlock(),r.createElementBlock("div",bb,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(u,(D,F)=>(r.openBlock(),r.createElementBlock("div",{key:F,class:"form-item",style:{display:"block","margin-bottom":"15px"}},[r.createElementVNode("div",{style:{"font-weight":"bold","margin-bottom":"5px",cursor:"pointer",display:"flex","align-items":"center"},onClick:Q=>h.value=F},[r.createElementVNode("input",{type:"radio",checked:h.value===F,style:{"margin-right":"5px"}},null,8,vb),r.createTextVNode(" "+r.toDisplayString(D.type)+": ",1)],8,wb),r.createElementVNode("div",Ib,[r.createElementVNode("div",Bb,[r.createElementVNode("label",xb,r.toDisplayString(D.longitudeText),1),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>D.longitude=Q,readonly:"",style:{width:"100px"}},null,8,Sb),[[r.vModelText,D.longitude,void 0,{number:!0}]])]),r.createElementVNode("div",Tb,[r.createElementVNode("label",Mb,r.toDisplayString(D.latitudeText),1),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>D.latitude=Q,readonly:"",style:{width:"100px"}},null,8,Db),[[r.vModelText,D.latitude,void 0,{number:!0}]])]),r.createElementVNode("div",kb,[r.createElementVNode("label",Pb,r.toDisplayString(D.heightText),1),r.withDirectives(r.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>D.height=Q,readonly:"",style:{width:"100px"}},null,8,Fb),[[r.vModelText,D.height,void 0,{number:!0}]])])])]))),128)),r.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[r.createElementVNode("button",{onClick:E,class:"primary-btn"},"应用校准"),r.createElementVNode("button",{onClick:M},"保存")]),v[34]||(v[34]=r.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[r.createElementVNode("div",null,"操作指南:"),r.createElementVNode("div",null,"1. 勾选上方 CAD 或 地图 标记点选项。"),r.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),r.createElementVNode("div",null,"3. 采集两点后,点击“应用校准”进行校准。")],-1))]))]),r.createElementVNode("div",Nb,[r.createElementVNode("div",Rb,[r.createElementVNode("div",Lb,[r.createElementVNode("input",{type:"checkbox",checked:l.value,onChange:V},null,40,Ob)]),v[36]||(v[36]=r.createElementVNode("div",{class:"col-index"},"序号",-1)),v[37]||(v[37]=r.createElementVNode("div",{class:"col-name"},"名称",-1)),v[38]||(v[38]=r.createElementVNode("div",{class:"col-main"},"主模型",-1))]),r.createElementVNode("div",Ub,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(a.value,(D,F)=>(r.openBlock(),r.createElementBlock("div",{key:D.modelId,class:r.normalizeClass(["list-item",{active:D.modelId===c.value}])},[r.createElementVNode("div",_b,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":Q=>D.selected=Q},null,8,Qb),[[r.vModelCheckbox,D.selected]])]),r.createElementVNode("div",Vb,r.toDisplayString(F+1),1),r.createElementVNode("div",{class:"col-name",title:D.modelName},r.toDisplayString(D.modelName),9,Gb),r.createElementVNode("div",Hb,[r.createElementVNode("input",{type:"radio",name:"mainModel",checked:D.modelId===c.value,onChange:Q=>N(D.modelId)},null,40,Yb)])],2))),128)),a.value.length===0?(r.openBlock(),r.createElementBlock("div",zb,"暂无数据")):r.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-e8abd49d"]]),jb={class:"annotation-content"},Kb={class:"annotation-tools"},$b={class:"annotation-controls"},Xb={class:"control-group",title:"颜色"},qb={class:"tool-item color-tool"},Jb={class:"control-group line-width-container",title:"线宽"},Zb=["onClick"],ew={class:"option-label"},tw=ye(r.defineComponent({__name:"LeitingAnnotationCard",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.ref(""),a=r.ref("#ff0000"),c=r.ref(1),l=r.ref(!1),d=r.ref(null),h=r.ref(null),f=r.ref({top:"0px",left:"0px"}),p=[{value:6,label:"粗"},{value:3,label:"中"},{value:1,label:"细"}],u=()=>s?.value?.getAnnotationInstance?s.value.getAnnotationInstance():null,m=()=>{i("update:visible",!1)},C=B=>{o.value=B;const g=u();if(g)switch(B){case"freehandLine":g.startFreehandLine();break;case"arrow":g.startArrow();break;case"straightLine":g.startStraightLine();break;case"rectangle":g.startRectangle();break;case"ellipse":g.startEllipse();break}},A=()=>{const B=u();B&&(B.setCurrentColor(a.value),B.changeColor(a.value))},b=()=>{if(!l.value&&d.value){const B=d.value.getBoundingClientRect();f.value={top:`${B.top}px`,left:`${B.right+8}px`}}l.value=!l.value},I=B=>{c.value=B,l.value=!1;const g=u();g&&(g.setCurrentWidth(B),g.changeWidth(B))},k=()=>{const B=u();B&&B.deleteSelectedEntity()},P=()=>{const B=u();B&&B.clearAll()},R=()=>{if(s?.value?.saveAnnotations){s.value.saveAnnotations();return}const B=u();B&&B.saveAnnotations()},T=B=>{const g=B.target,N=d.value&&d.value.contains(g),w=h.value&&h.value.contains(g);!N&&!w&&(l.value=!1)};return r.onMounted(()=>{document.addEventListener("click",T)}),r.onUnmounted(()=>{document.removeEventListener("click",T)}),(B,g)=>(r.openBlock(),r.createBlock(Le,{visible:t.visible,title:"标注",width:70,"min-width":70,height:480,"onUpdate:visible":g[6]||(g[6]=N=>i("update:visible",N)),onClose:m},{default:r.withCtx(()=>[r.createElementVNode("div",jb,[r.createElementVNode("div",Kb,[r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:o.value==="freehandLine"}]),onClick:g[0]||(g[0]=N=>C("freehandLine")),title:"手绘线"},[...g[7]||(g[7]=[r.createElementVNode("div",{class:"tool-icon"},"✏️",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:o.value==="arrow"}]),onClick:g[1]||(g[1]=N=>C("arrow")),title:"箭头"},[...g[8]||(g[8]=[r.createElementVNode("div",{class:"tool-icon"},"↗️",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:o.value==="straightLine"}]),onClick:g[2]||(g[2]=N=>C("straightLine")),title:"直线"},[...g[9]||(g[9]=[r.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:o.value==="rectangle"}]),onClick:g[3]||(g[3]=N=>C("rectangle")),title:"矩形"},[...g[10]||(g[10]=[r.createElementVNode("div",{class:"tool-icon"},"▭",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:o.value==="ellipse"}]),onClick:g[4]||(g[4]=N=>C("ellipse")),title:"椭圆"},[...g[11]||(g[11]=[r.createElementVNode("div",{class:"tool-icon"},"⭕",-1)])],2)]),g[13]||(g[13]=r.createElementVNode("div",{class:"separator"},null,-1)),r.createElementVNode("div",$b,[r.createElementVNode("div",Xb,[r.createElementVNode("div",qb,[r.createElementVNode("div",{class:"color-swatch",style:r.normalizeStyle({backgroundColor:a.value})},null,4),r.withDirectives(r.createElementVNode("input",{type:"color","onUpdate:modelValue":g[5]||(g[5]=N=>a.value=N),onChange:A,class:"color-input-overlay"},null,544),[[r.vModelText,a.value]])])]),r.createElementVNode("div",Jb,[r.createElementVNode("div",{ref_key:"lineWidthBtnRef",ref:d,class:"tool-item",onClick:r.withModifiers(b,["stop"])},[r.createElementVNode("div",{class:"current-width-preview",style:r.normalizeStyle({height:c.value+"px",backgroundColor:"#fff"})},null,4)],512),(r.openBlock(),r.createBlock(r.Teleport,{to:"body"},[l.value?(r.openBlock(),r.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:h,class:"line-width-dropdown",style:r.normalizeStyle(f.value)},[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(p,N=>r.createElementVNode("div",{key:N.value,class:r.normalizeClass(["line-width-option",{selected:c.value===N.value}]),onClick:r.withModifiers(w=>I(N.value),["stop"])},[r.createElementVNode("span",ew,r.toDisplayString(N.label),1),r.createElementVNode("div",{class:"line-preview",style:r.normalizeStyle({height:N.value+"px",backgroundColor:c.value===N.value?"#1890ff":"#ddd"})},null,4)],10,Zb)),64))],4)):r.createCommentVNode("",!0)]))]),g[12]||(g[12]=r.createElementVNode("div",{class:"separator"},null,-1)),r.createElementVNode("div",{class:"action-buttons"},[r.createElementVNode("button",{class:"control-btn",onClick:k,title:"删除选中"}," 🗑️ "),r.createElementVNode("button",{class:"control-btn",onClick:P,title:"清空"}," ❌ "),r.createElementVNode("button",{class:"control-btn",onClick:R,title:"保存"}," 💾 ")])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-3cfc8415"]]),nw={class:"measure-content"},iw={class:"measure-tools"},sw={key:0,class:"measure-results"},ow={class:"result-row"},rw={class:"result-value"},aw={class:"result-row"},lw={class:"result-value"},cw={class:"result-row"},dw={class:"result-value"},uw={class:"result-row"},hw={class:"result-value"},fw={key:1,class:"result-row"},pw={class:"result-value"},mw={key:2,class:"result-row"},gw={class:"result-value"},Aw={class:"measure-controls"},yw={class:"control-group",title:"单位"},Cw={class:"unit-display"},Ew=["onClick"],bw=ye(r.defineComponent({__name:"LeitingMeasurement",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods",r.ref({})),o=r.ref(null),a=r.ref(null),c=r.ref("m"),l=r.ref(!1),d=r.ref(null),h=r.ref(!1),f=r.ref({}),p=r.ref(null),u=[{label:"米 (m)",value:"m"},{label:"厘米 (cm)",value:"cm"},{label:"毫米 (mm)",value:"mm"}],m=B=>{const g=c.value;return g==="mm"?`${(B*1e3).toFixed(0)}mm`:g==="cm"?`${(B*100).toFixed(1)}cm`:`${B.toFixed(2)}m`},C=B=>B>1e6?`${(B/1e6).toFixed(2)} km²`:`${B.toFixed(2)} m²`,A=()=>{if(!o.value&&s.value?.getViewer){const B=s.value.getViewer(),g=s.value.getCesium();B&&g&&(o.value=new Ds({viewer:B,cesium:g}),o.value.setUnit(c.value),o.value.setSnapping(l.value),o.value.onMeasure=N=>{d.value=N})}},b=B=>{o.value||A(),a.value===B?(a.value=null,o.value?.stop(),s.value?.baseCompt?.enableSelection()):(a.value=B,o.value?.start(B),s.value?.baseCompt?.disableSelection())},I=B=>{c.value=B,h.value=!1},k=()=>{o.value&&(o.value.clearAll(),a.value=null,o.value.stop()),s.value?.baseCompt?.enableSelection()},P=()=>{i("update:visible",!1)},R=B=>{if(h.value){h.value=!1;return}const N=B.currentTarget.getBoundingClientRect();f.value={position:"fixed",top:`${N.top}px`,left:`${N.right+5}px`,zIndex:3e3},h.value=!0},T=B=>{h.value&&p.value&&!p.value.contains(B.target)&&(h.value=!1)};return r.onMounted(()=>{document.addEventListener("click",T),t.visible&&r.nextTick(()=>A())}),r.onUnmounted(()=>{document.removeEventListener("click",T),o.value&&o.value.destroy()}),r.watch(()=>t.visible,B=>{B?r.nextTick(()=>A()):o.value&&(o.value.stop(),a.value=null)}),r.watch(s,B=>{B&&B.getViewer&&!o.value&&t.visible&&A()}),r.watch(c,B=>{o.value&&o.value.setUnit(B)}),(B,g)=>(r.openBlock(),r.createBlock(Le,{visible:t.visible,title:"量算",width:70,"min-width":70,height:480,"onUpdate:visible":g[3]||(g[3]=N=>i("update:visible",N)),onClose:P},{default:r.withCtx(()=>[r.createElementVNode("div",nw,[r.createElementVNode("div",iw,[r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:a.value==="distance"}]),onClick:g[0]||(g[0]=N=>b("distance")),title:"距离测量"},[...g[4]||(g[4]=[r.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:a.value==="angle"}]),onClick:g[1]||(g[1]=N=>b("angle")),title:"角度测量"},[...g[5]||(g[5]=[r.createElementVNode("div",{class:"tool-icon"},"📐",-1)])],2),r.createElementVNode("div",{class:r.normalizeClass(["tool-item",{active:a.value==="area"}]),onClick:g[2]||(g[2]=N=>b("area")),title:"面积测量"},[...g[6]||(g[6]=[r.createElementVNode("div",{class:"tool-icon"},"🔳",-1)])],2)]),g[15]||(g[15]=r.createElementVNode("div",{class:"separator"},null,-1)),d.value?(r.openBlock(),r.createElementBlock("div",sw,[d.value.type==="distance"?(r.openBlock(),r.createElementBlock(r.Fragment,{key:0},[r.createElementVNode("div",ow,[g[7]||(g[7]=r.createElementVNode("span",{class:"result-label"},"总长:",-1)),r.createElementVNode("span",rw,r.toDisplayString(m(d.value.dist)),1)]),r.createElementVNode("div",aw,[g[8]||(g[8]=r.createElementVNode("span",{class:"result-label",style:{color:"#ff4d4f"}},"ΔX:",-1)),r.createElementVNode("span",lw,r.toDisplayString(m(d.value.dx)),1)]),r.createElementVNode("div",cw,[g[9]||(g[9]=r.createElementVNode("span",{class:"result-label",style:{color:"#52c41a"}},"ΔY:",-1)),r.createElementVNode("span",dw,r.toDisplayString(m(d.value.dy)),1)]),r.createElementVNode("div",uw,[g[10]||(g[10]=r.createElementVNode("span",{class:"result-label",style:{color:"#1890ff"}},"ΔZ:",-1)),r.createElementVNode("span",hw,r.toDisplayString(m(d.value.dz)),1)])],64)):r.createCommentVNode("",!0),d.value.type==="angle"?(r.openBlock(),r.createElementBlock("div",fw,[g[11]||(g[11]=r.createElementVNode("span",{class:"result-label"},"角度:",-1)),r.createElementVNode("span",pw,r.toDisplayString(d.value.angle.toFixed(1))+"°",1)])):r.createCommentVNode("",!0),d.value.type==="area"?(r.openBlock(),r.createElementBlock("div",mw,[g[12]||(g[12]=r.createElementVNode("span",{class:"result-label"},"面积:",-1)),r.createElementVNode("span",gw,r.toDisplayString(C(d.value.area)),1)])):r.createCommentVNode("",!0)])):r.createCommentVNode("",!0),r.createElementVNode("div",Aw,[r.createElementVNode("div",yw,[r.createElementVNode("div",{class:"tool-item",onClick:r.withModifiers(R,["stop"])},[r.createElementVNode("div",Cw,r.toDisplayString(c.value),1)]),(r.openBlock(),r.createBlock(r.Teleport,{to:"body"},[h.value?(r.openBlock(),r.createElementBlock("div",{key:0,ref_key:"unitDropdownRef",ref:p,class:"unit-dropdown",style:r.normalizeStyle(f.value)},[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(u,N=>r.createElementVNode("div",{key:N.value,class:r.normalizeClass(["unit-option",{selected:c.value===N.value}]),onClick:r.withModifiers(w=>I(N.value),["stop"])},r.toDisplayString(N.label),11,Ew)),64))],4)):r.createCommentVNode("",!0)]))]),g[14]||(g[14]=r.createElementVNode("div",{class:"separator"},null,-1)),r.createElementVNode("div",{class:"action-buttons"},[r.createElementVNode("div",{class:"tool-item control-btn",onClick:k,title:"清空"},[...g[13]||(g[13]=[r.createElementVNode("div",{class:"tool-icon"},"🗑️",-1)])])])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-8b1e070f"]]);function wl(){const n=r.ref(!1),e=r.reactive({x:0,y:0}),t=r.ref([]),i=r.ref(null);return{visible:n,position:e,items:t,contextData:i,show:(l,d,h)=>{l instanceof MouseEvent?(l.preventDefault(),e.x=l.clientX,e.y=l.clientY):(e.x=l.x,e.y=l.y),t.value=d,i.value=h,n.value=!0},hide:()=>{n.value=!1},addItem:l=>{t.value.push(l)},removeItem:l=>{t.value=t.value.filter(d=>d.id!==l)}}}const ww=["onClick","onTouchend"],vw={class:"menu-label"},Iw={key:0,class:"menu-arrow"},Bw=ye(r.defineComponent({__name:"LeitingContextMenu",props:{visible:{type:Boolean},position:{},items:{}},emits:["update:visible","action"],setup(n,{emit:e}){const t=n,i=e,s=ui("(max-width: 767.98px), (pointer: coarse)"),o=r.computed(()=>{let l=t.position.x,d=t.position.y;if(s.value){const f=t.items.length*48;l+200>window.innerWidth-16&&(l=window.innerWidth-200-16),d+f>window.innerHeight-16&&(d=window.innerHeight-f-16),d<16&&(d=16)}return{left:l+"px",top:d+"px"}}),a=l=>{l.disabled||(l.action&&l.action(),i("action",l),i("update:visible",!1))},c=()=>{t.visible&&i("update:visible",!1)};return r.onMounted(()=>{document.addEventListener("click",c),document.addEventListener("contextmenu",l=>{l.target.closest(".leiting-context-menu")||c()})}),r.onUnmounted(()=>{document.removeEventListener("click",c)}),(l,d)=>r.withDirectives((r.openBlock(),r.createElementBlock("div",{class:r.normalizeClass(["leiting-context-menu",{"mobile-style":r.unref(s)}]),style:r.normalizeStyle(o.value),onContextmenu:d[0]||(d[0]=r.withModifiers(()=>{},["prevent"]))},[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(n.items,h=>(r.openBlock(),r.createElementBlock("div",{key:h.id,class:r.normalizeClass(["menu-item",{"menu-divided":h.divided,"menu-disabled":h.disabled}]),onClick:f=>a(h),onTouchend:r.withModifiers(f=>a(h),["prevent"])},[r.createElementVNode("span",vw,r.toDisplayString(h.label),1),h.children?(r.openBlock(),r.createElementBlock("span",Iw,"▶")):r.createCommentVNode("",!0)],42,ww))),128))],38)),[[r.vShow,n.visible]])}}),[["__scopeId","data-v-76e4924d"]]);function vl(){const{width:n,height:e}=ul(),t=ui("(pointer: coarse)"),i=r.ref(!1),s=r.ref(!1),o=r.ref(!0),a=r.ref("other"),c=r.ref("other"),l=r.ref("medium"),d=r.ref("portrait"),h=()=>{const u=navigator.userAgent.toLowerCase();i.value=n.value<768||/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(u),s.value=n.value>=768&&n.value<1024,o.value=n.value>=1024,/iphone|ipad|ipod/i.test(u)?a.value="ios":/android/i.test(u)?a.value="android":/win/i.test(u)?a.value="windows":/mac/i.test(u)?a.value="macos":/linux/i.test(u)&&(a.value="linux"),/safari/i.test(u)&&!/chrome/i.test(u)?c.value="safari":/chrome/i.test(u)?c.value="chrome":/firefox/i.test(u)?c.value="firefox":/edge/i.test(u)&&(c.value="edge"),n.value<576?l.value="small":n.value<1024?l.value="medium":l.value="large",d.value=n.value>e.value?"landscape":"portrait"},f=()=>{h()};r.onMounted(()=>{h(),window.addEventListener("resize",f),window.addEventListener("orientationchange",f)}),r.onUnmounted(()=>{window.removeEventListener("resize",f),window.removeEventListener("orientationchange",f)});const p=()=>({isMobile:i.value,isTablet:s.value,isDesktop:o.value,isTouchDevice:t.value,os:a.value,browser:c.value,screenSize:l.value,orientation:d.value});return{isMobile:r.readonly(i),isTablet:r.readonly(s),isDesktop:r.readonly(o),isTouchDevice:r.readonly(t),os:r.readonly(a),browser:r.readonly(c),screenSize:r.readonly(l),orientation:r.readonly(d),width:n,height:e,info:p}}const xw={class:"mobile-nav-root"},Sw={class:"nav-bar-container"},Tw={key:"sub-mode",class:"nav-inner sub-menu-wrapper"},Mw={class:"sub-icons-list"},Dw=["onClick"],kw=["innerHTML"],Pw={key:"main-mode",class:"nav-inner main-menu-wrapper"},Fw=["onClick"],Nw=["src","alt"],Il=ye(r.defineComponent({__name:"MobileBottomNav",props:{activeIds:{},is2d:{type:Boolean},customItems:{}},emits:["item-click","sub-item-click","clear-measure"],setup(n,{emit:e}){const t=n,i=e,s=r.ref(null),o=r.ref(null),a={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"}]},c={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=C=>c[C]||c.box,d=r.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:xe&&xe.tagName.toUpperCase()==="SCRIPT"&&xe.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:xe&&xe.tagName.toUpperCase()==="SCRIPT"&&xe.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:xe&&xe.tagName.toUpperCase()==="SCRIPT"&&xe.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:xe&&xe.tagName.toUpperCase()==="SCRIPT"&&xe.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:xe&&xe.tagName.toUpperCase()==="SCRIPT"&&xe.src||new URL("leiting-bim.umd.js",document.baseURI).href).href,key:"setting"}]),h=r.computed(()=>{let C=[...d.value];return t.customItems&&(C=[...C,...t.customItems]),C}),f=r.computed(()=>s.value?a[s.value.ID]||[]:[]),p=C=>{if(a[C.ID]){if(C.ID==="measure"){i("item-click",C);return}if(s.value?.ID===C.ID)m();else{s.value=C,o.value=null;const A=a[C.ID];A&&A.length>0&&(o.value=A[0]?.id??null,setTimeout(()=>{i("sub-item-click",{parent:C,sub:A[0]})},50))}}else i("item-click",C)},u=C=>{o.value=C.id,i("sub-item-click",{parent:s.value,sub:C})},m=()=>{s.value=null,o.value=null};return(C,A)=>(r.openBlock(),r.createElementBlock("div",xw,[r.createElementVNode("nav",Sw,[r.createVNode(r.Transition,{name:"nav-mode-switch",mode:"out-in"},{default:r.withCtx(()=>[s.value?(r.openBlock(),r.createElementBlock("div",Tw,[r.createElementVNode("button",{class:"nav-back-icon",onClick:m},[...A[0]||(A[0]=[r.createElementVNode("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3"},[r.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)])]),r.createElementVNode("div",Mw,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(f.value,b=>(r.openBlock(),r.createElementBlock("button",{key:b.id,class:r.normalizeClass(["sub-icon-box",{active:o.value===b.id}]),onClick:I=>u(b)},[r.createElementVNode("div",{class:"icon-svg",innerHTML:l(b.id)},null,8,kw)],10,Dw))),128))])])):(r.openBlock(),r.createElementBlock("div",Pw,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(h.value,b=>(r.openBlock(),r.createElementBlock("div",{key:b.ID,class:r.normalizeClass(["main-tab-item",{active:n.activeIds?.includes(b.ID)}]),onClick:I=>p(b)},[r.createElementVNode("img",{src:b.src,class:"tab-img",alt:b.title},null,8,Nw)],10,Fw))),128))]))]),_:1})])]))}}),[["__scopeId","data-v-975dfd4b"]]),Rw={key:1,class:"drawer-header"},Lw={class:"drawer-title"},Ow={class:"drawer-content"},Uw={key:2,class:"drawer-footer"},Ls=ye(r.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(n,{emit:e}){const t=n,i=e,s=r.ref(null);let o=0,a=0;const c=r.computed(()=>{const u={};return t.direction==="right"||t.direction==="left"?(u.width=t.width,u.height="100%"):(u.width=t.width,u.height=t.height,u.maxHeight=t.maxHeight),u}),l=u=>{o=u.touches[0]?.clientY??0,s.value&&(s.value.style.transition="none")},d=u=>{if(!s.value)return;a=(u.touches[0]?.clientY??0)-o,a>0&&(s.value.style.transform=`translateY(${a}px)`)},h=()=>{s.value&&(s.value.style.transition="transform 300ms cubic-bezier(0.4, 0, 0.2, 1)",a>100?f():s.value.style.transform="",a=0)},f=()=>{i("update:visible",!1),i("close")},p=()=>{t.closeOnOverlay&&f()};return r.watch(()=>t.visible,u=>{u?document.body.style.overflow="hidden":document.body.style.overflow=""}),(u,m)=>(r.openBlock(),r.createBlock(r.Teleport,{to:"body"},[r.createVNode(r.Transition,{name:"drawer-fade"},{default:r.withCtx(()=>[n.visible?(r.openBlock(),r.createElementBlock("div",{key:0,class:"mobile-drawer-overlay",onClick:p,onTouchmove:m[1]||(m[1]=r.withModifiers(()=>{},["prevent"]))},[r.createElementVNode("div",{class:r.normalizeClass(["mobile-drawer-panel",[`direction-${n.direction}`]]),style:r.normalizeStyle(c.value),onClick:m[0]||(m[0]=r.withModifiers(()=>{},["stop"])),ref_key:"panelRef",ref:s},[n.direction==="bottom"&&n.showHandle?(r.openBlock(),r.createElementBlock("div",{key:0,class:"drawer-handle",onTouchstart:l,onTouchmove:d,onTouchend:h},[...m[2]||(m[2]=[r.createElementVNode("div",{class:"handle-bar"},null,-1)])],32)):r.createCommentVNode("",!0),n.title||u.$slots.title?(r.openBlock(),r.createElementBlock("div",Rw,[r.renderSlot(u.$slots,"title",{},()=>[r.createElementVNode("span",Lw,r.toDisplayString(n.title),1)],!0),r.createElementVNode("button",{class:"drawer-close-btn",onClick:f},[...m[3]||(m[3]=[r.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[r.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])])):r.createCommentVNode("",!0),r.createElementVNode("div",Ow,[r.renderSlot(u.$slots,"default",{},void 0,!0)]),u.$slots.footer?(r.openBlock(),r.createElementBlock("div",Uw,[r.renderSlot(u.$slots,"footer",{},void 0,!0)])):r.createCommentVNode("",!0)],6)],32)):r.createCommentVNode("",!0)]),_:3})]))}}),[["__scopeId","data-v-5b311962"]]),_w={class:"mobile-tree-container"},Qw={class:"search-section"},Vw={class:"search-inner"},Gw=["innerHTML"],Bl=ye(r.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(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:w=>{i("update:visible",w),i("update:open",w)}}),a={key:"id",title:"name",children:"children"},c=r.ref(""),l=r.ref([]),d=r.ref([]),h=r.ref(null),f=r.ref(300),p=r.ref(!1);let u=null;r.watch(()=>t.initialCheckedKeys,w=>{w&&w.length>0&&(d.value=[...w])},{immediate:!0}),r.watch(()=>t.treeData,w=>{if(!w||w.length===0)return;const S=[],L=(E,y)=>{for(let v=0;v<E.length;v++){const D=E[v],F=D.id||D.key||D.$id,Q=D.modelId||y;Q&&(D.modelId=Q),F&&S.push(String(F)),D.children&&D.children.length>0&&L(D.children,Q)}};L(w);const V=new Set(d.value);let M=!1;S.forEach(E=>{V.has(E)||(V.add(E),M=!0)}),M&&(d.value=Array.from(V),i("check",d.value))},{immediate:!0,deep:!0});const m=(w,S)=>{const L=[],V=M=>{for(let E=0;E<M.length;E++){const y=M[E],v=y.id||y.key;!y.children||y.children.length===0?!(v&&S.has(String(v)))&&y.modelId&&y.element_Id&&L.push({modelId:y.modelId,elementId:y.element_Id,show:!1}):y.children&&V(y.children)}};return V(w),L},C=r.computed(()=>{if(!c.value)return t.treeData;p.value=!0;const w=c.value.toLowerCase(),S=L=>{const V=[];for(let M=0;M<L.length;M++){const E=L[M],y=E.name||E.title||"",v=E.id||E.key,D=y.toLowerCase().includes(w);let F;E.children&&E.children.length>0&&(F=S(E.children)),(D||F&&F.length>0)&&V.push({key:String(v),title:y,children:F&&F.length>0?F:E.children?E.children:void 0,_raw:E,_searchMatched:D})}return V};return S(t.treeData)}),A=r.computed(()=>{if(!c.value)return[];const w=[],S=L=>{for(let V=0;V<L.length;V++){const M=L[V]?.children;M&&M.length>0&&(w.push(L[V]?.key),S(M))}};return S(C.value),w}),b=w=>{if(!c.value)return w;const S=new RegExp(`(${c.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");return w.replace(S,'<mark class="search-highlight">$1</mark>')},I=_n(w=>{const S=typeof w=="object"?w.target?.value??"":w;P(S)},200),k=w=>{P(w)},P=w=>{c.value=w||"",i("search",c.value),w&&r.nextTick(()=>{l.value=[...A.value]})},R=w=>{l.value=w},T=(w,S)=>{d.value=w,i("check",d.value);const L=new Set(w.map(M=>String(M))),V=m(t.treeData,L);s?.value?.setComponentVisibility&&s.value.setComponentVisibility(V),s?.value?.onTreeCheck&&s.value.onTreeCheck(w,S)},B=w=>{o.value=w},g=()=>{i("close")},N=()=>{h.value&&(f.value=h.value.clientHeight)};return r.onMounted(()=>{h.value&&(N(),u=new ResizeObserver(()=>{N()}),u.observe(h.value))}),r.onUnmounted(()=>{u&&(u.disconnect(),u=null)}),(w,S)=>(r.openBlock(),r.createBlock(Ls,{visible:o.value,title:"目录树",direction:"bottom","show-handle":!1,class:"mobile-bim-drawer","onUpdate:visible":B,onClose:g},{title:r.withCtx(()=>[...S[1]||(S[1]=[r.createElementVNode("div",{class:"custom-drawer-header"},[r.createElementVNode("span",null,"目录树")],-1)])]),default:r.withCtx(()=>[r.createElementVNode("div",_w,[S[3]||(S[3]=r.createElementVNode("div",{class:"nav-tabs"},[r.createElementVNode("div",{class:"nav-tab-item active"},"构件")],-1)),r.createElementVNode("div",Qw,[r.createElementVNode("div",Vw,[r.createVNode(r.unref(ie.Input),{value:c.value,"onUpdate:value":S[0]||(S[0]=L=>c.value=L),placeholder:"搜索构件","allow-clear":"",class:"custom-search",onSearch:k,onChange:r.unref(I)},null,8,["value","onChange"])])]),r.createElementVNode("div",{class:"tree-content-wrapper",ref_key:"treeContentRef",ref:h},[C.value.length>0?(r.openBlock(),r.createBlock(r.unref(ie.Tree),{key:0,"tree-data":C.value,"field-names":a,"expanded-keys":l.value,"checked-keys":d.value,checkable:"","block-node":"",class:"bim-dark-tree",onExpand:R,onCheck:T},{switcherIcon:r.withCtx(({expanded:L})=>[r.createElementVNode("span",{class:r.normalizeClass(["switcher-icon",{"is-open":L}])},[...S[2]||(S[2]=[r.createElementVNode("svg",{viewBox:"0 0 1024 1024",width:"12",height:"12"},[r.createElementVNode("path",{d:"M340.864 149.312l405.376 362.688-405.376 362.688z",fill:"currentColor"})],-1)])],2)]),title:r.withCtx(L=>[r.createElementVNode("span",{class:r.normalizeClass(["node-title",{"is-matched":L._searchMatched}])},[r.createElementVNode("span",{innerHTML:b(L.title)},null,8,Gw)],2)]),_:1},8,["tree-data","expanded-keys","checked-keys","onExpand","onCheck"])):r.createCommentVNode("",!0)],512)])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-3234e3c9"]]),Hw={class:"tabs-header"},Yw=["onClick"],zw={class:"modal-content"},Ww={key:0,class:"setting-section"},jw={class:"setting-item"},Kw={class:"mobile-switch"},$w={class:"setting-item"},Xw={class:"mobile-switch"},qw={class:"setting-item"},Jw={class:"mobile-switch"},Zw={key:1,class:"setting-section"},ev={class:"setting-item column"},tv={class:"provider-btns"},nv={key:0,class:"provider-config"},iv={class:"setting-item column"},sv={class:"setting-item column"},ov={class:"setting-item"},rv={class:"mobile-switch"},av={key:1,class:"provider-config"},lv={class:"setting-item column"},cv={key:2,class:"setting-section"},dv={class:"setting-item"},uv={class:"mobile-switch"},hv={key:0,class:"setting-item column"},fv={class:"setting-label-row"},pv={class:"setting-value"},mv={class:"setting-item"},gv={class:"mobile-switch"},Av={class:"setting-item"},yv={class:"mobile-switch"},Cv={class:"setting-item column"},Ev={class:"setting-label-row"},bv={class:"setting-value"},wv={class:"setting-item column"},vv={class:"setting-label-row"},Iv={class:"setting-value"},Bv={key:3,class:"setting-section"},xv={class:"setting-item column"},Sv={class:"setting-item"},Tv={class:"mobile-switch"},Mv={class:"setting-item"},Dv={class:"mobile-switch"},xl=ye(r.defineComponent({__name:"MobileSetting",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0}},emits:["update:visible","update:open","close","change"],setup(n,{emit:e}){const t=n,i=e,s=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:u=>{i("update:visible",u),i("update:open",u)}}),o=[{id:"GIS",label:"GIS"},{id:"MAP",label:"地图"},{id:"RENDER",label:"渲染"},{id:"MOUSE",label:"鼠标"}],a=r.ref("GIS"),c=r.ref({globe:!0,terrain:!1,depthTest:!0}),l=r.ref({provider:"tianditu",tianditu:{token:"",layerType:"img",showLabel:!0},arcgis:{url:""}}),d=r.ref({shadows:!1,shadowDarkness:.5,environmentMap:!0,ambientOcclusion:!1,brightness:1,contrast:1}),h=r.ref({sensitivity:5,invertRotation:!1,invertZoom:!1}),f=()=>{p()},p=()=>{i("close"),i("change",{gis:c.value,map:l.value,render:d.value,mouse:h.value})};return r.watch(()=>s.value,u=>{u?document.body.style.overflow="hidden":document.body.style.overflow=""}),(u,m)=>(r.openBlock(),r.createBlock(r.Teleport,{to:"body"},[r.createVNode(r.Transition,{name:"setting-modal"},{default:r.withCtx(()=>[s.value?(r.openBlock(),r.createElementBlock("div",{key:0,class:"mobile-setting-overlay",onClick:f,onTouchmove:m[19]||(m[19]=r.withModifiers(()=>{},["prevent"]))},[r.createElementVNode("div",{class:"mobile-setting-modal",onClick:m[18]||(m[18]=r.withModifiers(()=>{},["stop"]))},[r.createElementVNode("div",{class:"modal-header"},[m[21]||(m[21]=r.createElementVNode("span",{class:"modal-title"},"设置",-1)),r.createElementVNode("button",{class:"modal-close-btn",onClick:p},[...m[20]||(m[20]=[r.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[r.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),r.createElementVNode("div",Hw,[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(o,C=>r.createElementVNode("button",{key:C.id,class:r.normalizeClass(["tab-btn",{active:a.value===C.id}]),onClick:A=>a.value=C.id},r.toDisplayString(C.label),11,Yw)),64))]),r.createElementVNode("div",zw,[a.value==="GIS"?(r.openBlock(),r.createElementBlock("div",Ww,[r.createElementVNode("div",jw,[m[23]||(m[23]=r.createElementVNode("span",{class:"setting-label"},"地球",-1)),r.createElementVNode("label",Kw,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[0]||(m[0]=C=>c.value.globe=C)},null,512),[[r.vModelCheckbox,c.value.globe]]),m[22]||(m[22]=r.createElementVNode("span",{class:"slider"},null,-1))])]),r.createElementVNode("div",$w,[m[25]||(m[25]=r.createElementVNode("span",{class:"setting-label"},"地形",-1)),r.createElementVNode("label",Xw,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[1]||(m[1]=C=>c.value.terrain=C)},null,512),[[r.vModelCheckbox,c.value.terrain]]),m[24]||(m[24]=r.createElementVNode("span",{class:"slider"},null,-1))])]),r.createElementVNode("div",qw,[m[27]||(m[27]=r.createElementVNode("span",{class:"setting-label"},"地形遮挡",-1)),r.createElementVNode("label",Jw,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[2]||(m[2]=C=>c.value.depthTest=C)},null,512),[[r.vModelCheckbox,c.value.depthTest]]),m[26]||(m[26]=r.createElementVNode("span",{class:"slider"},null,-1))])])])):r.createCommentVNode("",!0),a.value==="MAP"?(r.openBlock(),r.createElementBlock("div",Zw,[r.createElementVNode("div",ev,[m[28]||(m[28]=r.createElementVNode("span",{class:"setting-label"},"地图提供商",-1)),r.createElementVNode("div",tv,[r.createElementVNode("button",{class:r.normalizeClass(["provider-btn",{active:l.value.provider==="tianditu"}]),onClick:m[3]||(m[3]=C=>l.value.provider="tianditu")}," 天地图 ",2),r.createElementVNode("button",{class:r.normalizeClass(["provider-btn",{active:l.value.provider==="arcgis"}]),onClick:m[4]||(m[4]=C=>l.value.provider="arcgis")}," ArcGIS ",2)])]),l.value.provider==="tianditu"?(r.openBlock(),r.createElementBlock("div",nv,[r.createElementVNode("div",iv,[m[29]||(m[29]=r.createElementVNode("span",{class:"setting-label"},"Token",-1)),r.withDirectives(r.createElementVNode("input",{"onUpdate:modelValue":m[5]||(m[5]=C=>l.value.tianditu.token=C),type:"text",class:"mobile-input",placeholder:"输入天地图Token"},null,512),[[r.vModelText,l.value.tianditu.token]])]),r.createElementVNode("div",sv,[m[31]||(m[31]=r.createElementVNode("span",{class:"setting-label"},"地图风格",-1)),r.withDirectives(r.createElementVNode("select",{"onUpdate:modelValue":m[6]||(m[6]=C=>l.value.tianditu.layerType=C),class:"mobile-select"},[...m[30]||(m[30]=[r.createElementVNode("option",{value:"img"},"影像",-1),r.createElementVNode("option",{value:"cia"},"影像注记",-1),r.createElementVNode("option",{value:"vec"},"矢量",-1),r.createElementVNode("option",{value:"cva"},"矢量注记",-1)])],512),[[r.vModelSelect,l.value.tianditu.layerType]])]),r.createElementVNode("div",ov,[m[33]||(m[33]=r.createElementVNode("span",{class:"setting-label"},"叠加注记",-1)),r.createElementVNode("label",rv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[7]||(m[7]=C=>l.value.tianditu.showLabel=C)},null,512),[[r.vModelCheckbox,l.value.tianditu.showLabel]]),m[32]||(m[32]=r.createElementVNode("span",{class:"slider"},null,-1))])])])):r.createCommentVNode("",!0),l.value.provider==="arcgis"?(r.openBlock(),r.createElementBlock("div",av,[r.createElementVNode("div",lv,[m[34]||(m[34]=r.createElementVNode("span",{class:"setting-label"},"服务地址",-1)),r.withDirectives(r.createElementVNode("input",{"onUpdate:modelValue":m[8]||(m[8]=C=>l.value.arcgis.url=C),type:"text",class:"mobile-input",placeholder:"输入ArcGIS MapServer地址"},null,512),[[r.vModelText,l.value.arcgis.url]])])])):r.createCommentVNode("",!0)])):r.createCommentVNode("",!0),a.value==="RENDER"?(r.openBlock(),r.createElementBlock("div",cv,[r.createElementVNode("div",dv,[m[36]||(m[36]=r.createElementVNode("span",{class:"setting-label"},"阴影",-1)),r.createElementVNode("label",uv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[9]||(m[9]=C=>d.value.shadows=C)},null,512),[[r.vModelCheckbox,d.value.shadows]]),m[35]||(m[35]=r.createElementVNode("span",{class:"slider"},null,-1))])]),d.value.shadows?(r.openBlock(),r.createElementBlock("div",hv,[r.createElementVNode("div",fv,[m[37]||(m[37]=r.createElementVNode("span",{class:"setting-label"},"阴影暗度",-1)),r.createElementVNode("span",pv,r.toDisplayString(d.value.shadowDarkness.toFixed(2)),1)]),r.withDirectives(r.createElementVNode("input",{type:"range","onUpdate:modelValue":m[10]||(m[10]=C=>d.value.shadowDarkness=C),min:"0",max:"1",step:"0.05",class:"mobile-slider"},null,512),[[r.vModelText,d.value.shadowDarkness,void 0,{number:!0}]])])):r.createCommentVNode("",!0),r.createElementVNode("div",mv,[m[39]||(m[39]=r.createElementVNode("span",{class:"setting-label"},"环境贴图",-1)),r.createElementVNode("label",gv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[11]||(m[11]=C=>d.value.environmentMap=C)},null,512),[[r.vModelCheckbox,d.value.environmentMap]]),m[38]||(m[38]=r.createElementVNode("span",{class:"slider"},null,-1))])]),r.createElementVNode("div",Av,[m[41]||(m[41]=r.createElementVNode("span",{class:"setting-label"},"环境光遮蔽",-1)),r.createElementVNode("label",yv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[12]||(m[12]=C=>d.value.ambientOcclusion=C)},null,512),[[r.vModelCheckbox,d.value.ambientOcclusion]]),m[40]||(m[40]=r.createElementVNode("span",{class:"slider"},null,-1))])]),r.createElementVNode("div",Cv,[r.createElementVNode("div",Ev,[m[42]||(m[42]=r.createElementVNode("span",{class:"setting-label"},"模型亮度",-1)),r.createElementVNode("span",bv,r.toDisplayString(d.value.brightness.toFixed(1)),1)]),r.withDirectives(r.createElementVNode("input",{type:"range","onUpdate:modelValue":m[13]||(m[13]=C=>d.value.brightness=C),min:"0",max:"5",step:"0.1",class:"mobile-slider"},null,512),[[r.vModelText,d.value.brightness,void 0,{number:!0}]])]),r.createElementVNode("div",wv,[r.createElementVNode("div",vv,[m[43]||(m[43]=r.createElementVNode("span",{class:"setting-label"},"模型对比度",-1)),r.createElementVNode("span",Iv,r.toDisplayString(d.value.contrast.toFixed(1)),1)]),r.withDirectives(r.createElementVNode("input",{type:"range","onUpdate:modelValue":m[14]||(m[14]=C=>d.value.contrast=C),min:"0.5",max:"2",step:"0.1",class:"mobile-slider"},null,512),[[r.vModelText,d.value.contrast,void 0,{number:!0}]])])])):r.createCommentVNode("",!0),a.value==="MOUSE"?(r.openBlock(),r.createElementBlock("div",Bv,[r.createElementVNode("div",xv,[m[44]||(m[44]=r.createElementVNode("span",{class:"setting-label"},"鼠标灵敏度",-1)),r.withDirectives(r.createElementVNode("input",{type:"range","onUpdate:modelValue":m[15]||(m[15]=C=>h.value.sensitivity=C),min:"1",max:"10",step:"1",class:"mobile-slider"},null,512),[[r.vModelText,h.value.sensitivity,void 0,{number:!0}]])]),r.createElementVNode("div",Sv,[m[46]||(m[46]=r.createElementVNode("span",{class:"setting-label"},"反转旋转",-1)),r.createElementVNode("label",Tv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[16]||(m[16]=C=>h.value.invertRotation=C)},null,512),[[r.vModelCheckbox,h.value.invertRotation]]),m[45]||(m[45]=r.createElementVNode("span",{class:"slider"},null,-1))])]),r.createElementVNode("div",Mv,[m[48]||(m[48]=r.createElementVNode("span",{class:"setting-label"},"反转缩放",-1)),r.createElementVNode("label",Dv,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":m[17]||(m[17]=C=>h.value.invertZoom=C)},null,512),[[r.vModelCheckbox,h.value.invertZoom]]),m[47]||(m[47]=r.createElementVNode("span",{class:"slider"},null,-1))])])])):r.createCommentVNode("",!0)])])],32)):r.createCommentVNode("",!0)]),_:1})]))}}),[["__scopeId","data-v-43e37b8d"]]),kv={class:"mobile-section-container"},Pv={class:"section-main"},Fv={class:"toggle-row"},Nv={class:"slider-section"},Rv={class:"slider-header"},Lv={class:"slider-label"},Ov={class:"slider-value"},Uv={class:"quick-btns"},_v={class:"section-models"},Qv={class:"models-header"},Vv={class:"models-count"},Sl=ye(r.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(n,{emit:e}){const t=n,i=e,s=r.computed({get:()=>t.open!==void 0?t.open:t.visible,set:w=>{i("update:visible",w),i("update:open",w)}}),o=r.ref(!0),a=r.ref("Box"),c=r.ref("X"),l=r.ref([]),d=r.ref([0,100]),h=r.ref([0,100]),f=r.ref([0,100]),p=[{key:"X",label:"X轴"},{key:"Y",label:"Y轴"},{key:"Z",label:"Z轴"}],u=r.computed(()=>p.find(S=>S.key===c.value)?.label||""),m=r.computed({get:()=>{switch(c.value){case"X":return d.value[1];case"Y":return h.value[1];case"Z":return f.value[1];default:return 50}},set:w=>{switch(c.value){case"X":d.value[1]=w??0;break;case"Y":h.value[1]=w??0;break;case"Z":f.value[1]=w??0;break}}}),C=r.computed(()=>{switch(c.value){case"X":return[-50,50];case"Y":return[-50,50];case"Z":return[0,100];default:return[0,100]}}),A=r.computed(()=>m.value?.toFixed(1)??"0.0"),b=r.computed(()=>l.value.length===t.modelList.length),I=w=>{s.value=w},k=()=>{i("close")},P=()=>{i("visibility-change",o.value)},R=w=>{a.value=w,i("mode-change",w)},T=()=>{m.value=50,i("axis-change",c.value,50)},B=()=>{const w=C.value;m.value=w&&w.length>=2?(w[0]+w[1])/2:50,i("axis-change",c.value,m.value)},g=()=>{i("model-change",l.value)},N=()=>{b.value?l.value=[]:l.value=t.modelList.map(w=>w.modelId),i("model-change",l.value)};return(w,S)=>(r.openBlock(),r.createBlock(Ls,{visible:s.value,title:"剖切分析",direction:"bottom","show-handle":!0,"onUpdate:visible":I,onClose:k},{default:r.withCtx(()=>[r.createElementVNode("div",kv,[r.createElementVNode("div",Pv,[r.createElementVNode("div",Fv,[S[6]||(S[6]=r.createElementVNode("span",{class:"toggle-label"},"显示剖切盒",-1)),r.createVNode(r.unref(ie.Switch),{checked:o.value,"onUpdate:checked":S[0]||(S[0]=L=>o.value=L),onChange:P},null,8,["checked"])]),r.createVNode(r.unref(ie.RadioGroup),{value:a.value,"onUpdate:value":S[1]||(S[1]=L=>a.value=L),"button-style":"solid",class:"mode-selector",onChange:S[2]||(S[2]=L=>R(L.target.value))},{default:r.withCtx(()=>[r.createVNode(r.unref(ie.RadioButton),{value:"Box"},{default:r.withCtx(()=>[...S[7]||(S[7]=[r.createTextVNode("剖切盒",-1)])]),_:1})]),_:1},8,["value"]),r.createVNode(r.unref(ie.RadioGroup),{value:c.value,"onUpdate:value":S[3]||(S[3]=L=>c.value=L),"button-style":"solid",class:"axis-selector"},{default:r.withCtx(()=>[r.createVNode(r.unref(ie.RadioButton),{value:"X"},{default:r.withCtx(()=>[...S[8]||(S[8]=[r.createTextVNode("X轴",-1)])]),_:1}),r.createVNode(r.unref(ie.RadioButton),{value:"Y"},{default:r.withCtx(()=>[...S[9]||(S[9]=[r.createTextVNode("Y轴",-1)])]),_:1}),r.createVNode(r.unref(ie.RadioButton),{value:"Z"},{default:r.withCtx(()=>[...S[10]||(S[10]=[r.createTextVNode("Z轴",-1)])]),_:1})]),_:1},8,["value"]),r.createElementVNode("div",Nv,[r.createElementVNode("div",Rv,[r.createElementVNode("span",Lv,r.toDisplayString(u.value)+" 轴范围",1),r.createElementVNode("span",Ov,r.toDisplayString(A.value),1)]),r.createVNode(r.unref(ie.Slider),{Value:m.value,"onUpdate:Value":S[4]||(S[4]=L=>m.value=L),min:C.value[0],max:C.value[1],step:.5,class:"section-slider"},null,8,["Value","min","max"]),r.createElementVNode("div",Uv,[r.createVNode(r.unref(ie.Button),{size:"small",onClick:T},{default:r.withCtx(()=>[...S[11]||(S[11]=[r.createTextVNode("重置",-1)])]),_:1}),r.createVNode(r.unref(ie.Button),{size:"small",onClick:B},{default:r.withCtx(()=>[...S[12]||(S[12]=[r.createTextVNode("居中",-1)])]),_:1})])])]),r.createElementVNode("div",_v,[r.createElementVNode("div",Qv,[S[13]||(S[13]=r.createElementVNode("span",{class:"models-title"},"选择模型",-1)),r.createElementVNode("span",Vv,r.toDisplayString(l.value.length)+"/"+r.toDisplayString(n.modelList.length),1)]),r.createVNode(r.unref(ie.CheckboxGroup),{value:l.value,"onUpdate:value":S[5]||(S[5]=L=>l.value=L),class:"models-list",onChange:g},{default:r.withCtx(()=>[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(n.modelList,L=>(r.openBlock(),r.createBlock(r.unref(ie.Checkbox),{key:L.modelId,value:L.modelId,class:"model-item"},{default:r.withCtx(()=>[r.createTextVNode(r.toDisplayString(L.modelName),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),n.modelList.length>1?(r.openBlock(),r.createBlock(r.unref(ie.Button),{key:0,size:"small",type:"link",onClick:N},{default:r.withCtx(()=>[r.createTextVNode(r.toDisplayString(b.value?"取消全选":"全选"),1)]),_:1})):r.createCommentVNode("",!0)])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-cdacec58"]]),Gv={key:0,class:"mobile-measure-root"},Hv={key:0,class:"result-card"},Yv={class:"card-header-row"},zv={class:"result-main"},Wv={class:"type-label"},jv={class:"value-highlight"},Kv={key:0,class:"coords-grid"},$v={class:"coord-item"},Xv={class:"coord-item"},qv={class:"coord-item"},Jv={class:"measure-toolbar-container"},Zv={class:"tools-inner-row"},eI=["onClick"],tI=["innerHTML"],Tl=ye(r.defineComponent({__name:"MobileMeasurement",props:{visible:{type:Boolean},defaultTool:{}},emits:["update:visible","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods");let o=null,a=!1;const c=r.ref(null),l=r.ref(null),d=r.computed(()=>t.visible&&c.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>'}],f={distance:"距离",angle:"角度",area:"面积"},p=r.computed(()=>c.value?f[c.value]||"":l.value&&f[l.value.type]||""),u=r.computed(()=>{if(!l.value)return c.value==="distance"?"-- m":c.value==="angle"?"--°":c.value==="area"?"-- m²":"";const P=l.value;return P.type==="distance"?`${(P.dist??0).toFixed(3)} m`:P.type==="angle"?`${(P.angle??0).toFixed(2)}°`:P.type==="area"?`${(P.area??0).toFixed(2)} m²`:""}),m=r.computed(()=>l.value?.type||c.value),C=P=>P===void 0?"--":P.toFixed(3),A=()=>{if(o)return;const P=s?.value;P?.getViewer&&(o=new Ds({viewer:P.getViewer(),cesium:P.getCesium()}),o.onMeasure=R=>{a||(l.value=R)})},b=P=>{A(),c.value===P?(c.value=null,o?.stop(),s?.value?.baseCompt?.enableSelection()):(c.value=P,l.value=null,o?.start(P),s?.value?.baseCompt?.disableSelection())},I=()=>{o?.clearAll(),o?.stop(),c.value=null,l.value=null,s?.value?.baseCompt?.enableSelection()},k=()=>{I(),i("update:visible",!1),i("close")};return r.watch(()=>t.visible,P=>{P?(A(),t.defaultTool&&b(t.defaultTool)):I()}),r.onUnmounted(()=>{a=!0,o?.destroy()}),(P,R)=>(r.openBlock(),r.createBlock(r.Transition,{name:"measure-fade"},{default:r.withCtx(()=>[n.visible?(r.openBlock(),r.createElementBlock("div",Gv,[r.createVNode(r.Transition,{name:"card-slide"},{default:r.withCtx(()=>[d.value?(r.openBlock(),r.createElementBlock("div",Hv,[r.createElementVNode("div",Yv,[r.createElementVNode("div",zv,[r.createElementVNode("span",Wv,r.toDisplayString(p.value)+":",1),r.createElementVNode("span",jv,r.toDisplayString(u.value),1)]),r.createElementVNode("button",{class:"clear-action-btn",onClick:I,title:"清空"},[...R[0]||(R[0]=[r.createElementVNode("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"currentColor","stroke-width":"2"},[r.createElementVNode("polyline",{points:"3 6 5 6 21 6"}),r.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"?(r.openBlock(),r.createElementBlock("div",Kv,[r.createElementVNode("div",$v,[R[1]||(R[1]=r.createElementVNode("span",{class:"label-x"},"X:",-1)),r.createTextVNode(" "+r.toDisplayString(C(l.value?.dx)),1)]),r.createElementVNode("div",Xv,[R[2]||(R[2]=r.createElementVNode("span",{class:"label-y"},"Y:",-1)),r.createTextVNode(" "+r.toDisplayString(C(l.value?.dy)),1)]),r.createElementVNode("div",qv,[R[3]||(R[3]=r.createElementVNode("span",{class:"label-z"},"Z:",-1)),r.createTextVNode(" "+r.toDisplayString(C(l.value?.dz)),1)])])):r.createCommentVNode("",!0)])):r.createCommentVNode("",!0)]),_:1}),r.createElementVNode("div",Jv,[r.createElementVNode("button",{class:"nav-back-icon",onClick:k},[...R[4]||(R[4]=[r.createElementVNode("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"currentColor","stroke-width":"3"},[r.createElementVNode("polyline",{points:"15 18 9 12 15 6"})],-1)])]),r.createElementVNode("div",Zv,[(r.openBlock(),r.createElementBlock(r.Fragment,null,r.renderList(h,T=>r.createElementVNode("button",{key:T.id,class:r.normalizeClass(["sub-icon-box",{active:c.value===T.id}]),onClick:B=>b(T.id)},[r.createElementVNode("span",{class:"icon-svg",innerHTML:T.svg},null,8,tI)],10,eI)),64))])])])):r.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-7ff442b7"]]),nI={class:"joystick-base"},iI={class:"control-panel"},sI={class:"ctrl-row zoom-row"},oI={class:"zoom-label"},rI={class:"ctrl-grid"},aI={class:"gravity-toggle"},lI={class:"arrow-col"},Os=40,Ml=ye(r.defineComponent({__name:"MobilePlayer",props:{visible:{type:Boolean}},emits:["update:visible","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods");let o=!1;const a=r.ref(null),c=r.ref(0),l=r.ref(0),d=r.ref(!1),h=r.ref({x:0,y:0}),f=[.25,.5,1,2,4,8,16],p=r.ref(2),u=r.ref(!0);let m=null;const C=r.computed(()=>({transform:`translate(${c.value}px, ${l.value}px)`})),A=r.computed(()=>`${f[p.value]}X`),b=(O,x)=>{const U=[];return(Math.abs(O)>10||Math.abs(x)>10)&&(x<-10&&U.push("moveFront"),x>10&&U.push("moveBack"),O<-10&&U.push("moveLeft"),O>10&&U.push("moveRight")),U},I=()=>{o||["moveFront","moveBack","moveLeft","moveRight"].forEach(O=>{s?.value?.setPlayerAction?.(O,!1)})},k=O=>{if(o)return;["moveFront","moveBack","moveLeft","moveRight"].forEach(U=>{const H=O.includes(U);s?.value?.setPlayerAction?.(U,H)})},P=O=>{const x=O.touches[0],U=a.value.getBoundingClientRect();h.value={x:U.left+U.width/2,y:U.top+U.height/2},d.value=!0,x&&T(x.clientX,x.clientY)},R=O=>{if(!d.value)return;const x=O.touches[0];x&&T(x.clientX,x.clientY)},T=(O,x)=>{if(o)return;let U=O-h.value.x,H=x-h.value.y;const j=Math.sqrt(U*U+H*H);j>Os&&(U=U/j*Os,H=H/j*Os),c.value=U,l.value=H;const X=b(U,H);k(X)},B=()=>{d.value=!1,c.value=0,l.value=0,I()},g=()=>{S(),m=setInterval(()=>{p.value<f.length-1&&(p.value++,L())},150)},N=()=>{S(),m=setInterval(()=>{p.value>0&&(p.value--,L())},150)},w=()=>{S()},S=()=>{m&&(clearInterval(m),m=null)},L=()=>{o||s?.value?.setPlayerSpeed?.(f[p.value])},V=()=>{s?.value?.setPlayerAction?.("moveUp",!0)},M=()=>{s?.value?.setPlayerAction?.("moveUp",!1)},E=()=>{s?.value?.setPlayerAction?.("moveDown",!0)},y=()=>{s?.value?.setPlayerAction?.("moveDown",!1)},v=()=>{s?.value?.setPlayerParams?.({gravityTest:u.value,collisionTest:!0})},D=()=>{Q(),i("update:visible",!1),i("close")},F=async()=>{if(!o)try{if(!s?.value){setTimeout(()=>F(),150);return}s.value.startCameraRoam&&s.value.startCameraRoam(),s.value.setPlayerSpeed?.(f[p.value])}catch(O){console.error("MobilePlayer startPlayer error:",O)}},Q=()=>{I(),o||s?.value?.closePlayer?.(),S()};return r.watch(()=>t.visible,O=>{o||(O?F():Q())},{immediate:!0}),r.onUnmounted(()=>{o=!0,Q()}),(O,x)=>n.visible?(r.openBlock(),r.createElementBlock("div",{key:0,class:"mobile-player-overlay",onTouchmove:x[1]||(x[1]=r.withModifiers(()=>{},["prevent"]))},[r.createElementVNode("button",{class:"player-exit-btn",onClick:D}," 退出 "),r.createElementVNode("div",{class:"joystick-zone",ref_key:"joystickRef",ref:a,onTouchstart:r.withModifiers(P,["prevent"]),onTouchmove:r.withModifiers(R,["prevent"]),onTouchend:r.withModifiers(B,["prevent"]),onTouchcancel:r.withModifiers(B,["prevent"])},[r.createElementVNode("div",nI,[r.createElementVNode("div",{class:"joystick-knob",style:r.normalizeStyle(C.value)},null,4)])],544),r.createElementVNode("div",iI,[r.createElementVNode("div",sI,[r.createElementVNode("button",{class:"ctrl-btn ctrl-btn-sm",onTouchstart:r.withModifiers(N,["prevent"]),onTouchend:r.withModifiers(w,["prevent"])},"−",32),r.createElementVNode("span",oI,r.toDisplayString(A.value),1),r.createElementVNode("button",{class:"ctrl-btn ctrl-btn-sm",onTouchstart:r.withModifiers(g,["prevent"]),onTouchend:r.withModifiers(w,["prevent"])},"+",32)]),r.createElementVNode("div",rI,[r.createElementVNode("label",aI,[r.withDirectives(r.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":x[0]||(x[0]=U=>u.value=U),onChange:v},null,544),[[r.vModelCheckbox,u.value]]),x[2]||(x[2]=r.createElementVNode("span",{class:"toggle-checkbox"},null,-1)),x[3]||(x[3]=r.createElementVNode("span",{class:"toggle-label"},"重力",-1))]),r.createElementVNode("div",lI,[r.createElementVNode("button",{class:"ctrl-btn ctrl-btn-arrow",onTouchstart:r.withModifiers(V,["prevent"]),onTouchend:r.withModifiers(M,["prevent"])},[...x[4]||(x[4]=[r.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"},[r.createElementVNode("polyline",{points:"18 15 12 9 6 15"})],-1)])],32),r.createElementVNode("button",{class:"ctrl-btn ctrl-btn-arrow",onTouchstart:r.withModifiers(E,["prevent"]),onTouchend:r.withModifiers(y,["prevent"])},[...x[5]||(x[5]=[r.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"},[r.createElementVNode("polyline",{points:"6 9 12 15 18 9"})],-1)])],32)])])])],32)):r.createCommentVNode("",!0)}}),[["__scopeId","data-v-591ba29c"]]),cI={key:0,class:"mobile-info-sheet-wrapper"},dI={class:"info-body"},uI={key:0,class:"empty-hint"},hI={key:0,class:"component-title"},fI={class:"group-list"},pI=["onClick"],mI={class:"group-name"},gI={key:0,class:"group-content"},AI={class:"kv-key"},yI={class:"kv-value"},Dl=ye(r.defineComponent({__name:"MobileInfo",props:{visible:{type:Boolean}},emits:["update:visible","close"],setup(n,{emit:e}){const t=n,i=e,s=r.inject("leitingMethods"),o=r.ref([]),a=r.ref(!1),c=r.ref(new Set),l=r.ref([]);let d=!1;const h=r.computed({get:()=>!!t.visible,set:R=>{i("update:visible",R)}}),f=R=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[R]||R,p=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],u=(R,T)=>`${R}__${T}`,m=(R,T)=>c.value.has(u(R,T)),C=(R,T)=>{const B=u(R,T);c.value.has(B)?c.value.delete(B):c.value.add(B)},A=()=>{const R=new Set;o.value.forEach(T=>{T.groups.forEach(B=>{R.add(u(T.id,B.name))})}),c.value=R},b=()=>{h.value=!1,i("close")},I=async R=>{if(d)return;if(l.value=R||[],!R||R.length===0){o.value=[];return}let T=R;R.length>10&&(ce.warning(`选中构件数量过多(${R.length}个),仅显示前10个`),T=R.slice(0,10));const B=s?.value;let g=B?.getMapTileset?B.getMapTileset():{};a.value=!0;const N=new Set;if(T.forEach(S=>{const L=g[S.modelId];L&&L.leiting&&!L.leiting?.node?.nodeExtras&&L.leiting.model?.nodeUrl&&N.add(S.modelId)}),N.size>0&&B?._loadNodeDetailsForModel)try{await Promise.all(Array.from(N).map(S=>B._loadNodeDetailsForModel(S)))}catch(S){console.error("Failed to load node details",S)}if(d)return;g=B?.getMapTileset?B.getMapTileset():{};const w=[];T.forEach((S,L)=>{const M=g[S.modelId]?.leiting||{};let E={modelName:M.model?.modelId||S.modelId};E.elementID||(E.elementID=S.elementId);let y=null;const v=M.node?.nodeExtras?.element||M.node?.nodeExtras;if(v){const Q=E.elementID;v[Q]&&(y=v[Q])}y&&y.box3&&(E.length=`${y.box3.length?.toFixed(2)||0}米`,E.width=`${y.box3.width?.toFixed(2)||0}米`,E.height=`${y.box3.height?.toFixed(2)||0}米`);const D=[];y&&(y.name&&(E.elementName=y.name),y.categoryName&&(E.categoryName=y.categoryName),y.familySymbolName&&(E.familySymbolName=y.familySymbolName),y.levelName&&(E.levelName=y.levelName));const F={};if(p.forEach(Q=>{E[Q]!==void 0&&(F[Q]=E[Q])}),D.push({name:"基本属性",params:F}),y){const Q=Array.isArray(y)?y:Array.isArray(y?.parameters)?y.parameters:null;if(Q)Q.flat().forEach(x=>{if(x&&x.GroupName&&Array.isArray(x.Parameters)){const U={};x.Parameters.forEach(H=>{H.name&&(U[H.name]=H.value??"")}),Object.keys(U).length>0&&D.push({name:x.GroupName,params:U})}});else{let O=!1;if(Object.keys(y).forEach(x=>{y[x]&&typeof y[x]=="object"&&!Array.isArray(y[x])&&(O=!0,D.push({name:x,params:y[x]}))}),!O){const x={};Object.keys(y).forEach(U=>{if(!p.includes(U)&&U!=="batchId"){const H=y[U];x[U]=typeof H=="string"&&H.length>500?H.substring(0,500)+"...":H}}),Object.keys(x).length>0&&D.push({name:"其他属性",params:x})}}}w.push({id:L,title:`${E.modelName}${E.elementName?` - ${E.elementName}`:""}`,groups:D})}),o.value=w,a.value=!1,!d&&w.length>0&&A()};let k=!1;const P=()=>{if(k)return;const R=s?.value;R&&R.selectionChange&&(R.selectionChange(I),k=!0)};return r.watch(()=>s?.value,()=>P(),{deep:!0,immediate:!0}),r.watch(h,R=>{R&&(P(),l.value.length>0&&I(l.value))}),r.onUnmounted(()=>{d=!0}),(R,T)=>(r.openBlock(),r.createBlock(r.Transition,{name:"info-slide"},{default:r.withCtx(()=>[n.visible?(r.openBlock(),r.createElementBlock("div",cI,[r.createElementVNode("div",{class:"mobile-info-sheet",onTouchmove:T[0]||(T[0]=r.withModifiers(()=>{},["stop"])),onClick:T[1]||(T[1]=r.withModifiers(()=>{},["stop"]))},[r.createElementVNode("div",{class:"info-header"},[T[3]||(T[3]=r.createElementVNode("span",{class:"info-title"},"构件详情",-1)),r.createElementVNode("button",{class:"info-close-btn",onClick:b},[...T[2]||(T[2]=[r.createElementVNode("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[r.createElementVNode("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.createElementVNode("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])]),T[5]||(T[5]=r.createElementVNode("div",{class:"info-tabs"},[r.createElementVNode("span",{class:"tab-item active"},"属性")],-1)),r.createElementVNode("div",dI,[r.createVNode(r.unref(ie.Spin),{spinning:a.value},{default:r.withCtx(()=>[o.value.length===0&&!a.value?(r.openBlock(),r.createElementBlock("div",uI," 暂无数据 ")):r.createCommentVNode("",!0),(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(o.value,B=>(r.openBlock(),r.createElementBlock("div",{key:B.id,class:"component-block"},[o.value.length>1?(r.openBlock(),r.createElementBlock("div",hI,r.toDisplayString(B.title),1)):r.createCommentVNode("",!0),r.createElementVNode("div",fI,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(B.groups,(g,N)=>(r.openBlock(),r.createElementBlock("div",{key:`${B.id}-${N}`,class:"group-item"},[r.createElementVNode("button",{class:r.normalizeClass(["group-header",{expanded:m(B.id,g.name)}]),onClick:w=>C(B.id,g.name)},[T[4]||(T[4]=r.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"},[r.createElementVNode("polyline",{points:"4 6 8 10 12 6"})],-1)),r.createElementVNode("span",mI,r.toDisplayString(g.name),1)],10,pI),r.createVNode(r.Transition,{name:"group-expand"},{default:r.withCtx(()=>[m(B.id,g.name)?(r.openBlock(),r.createElementBlock("div",gI,[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(g.params,(w,S)=>(r.openBlock(),r.createElementBlock("div",{key:S,class:"kv-row"},[r.createElementVNode("span",AI,r.toDisplayString(f(String(S))),1),r.createElementVNode("span",yI,r.toDisplayString(w),1)]))),128))])):r.createCommentVNode("",!0)]),_:2},1024)]))),128))])]))),128))]),_:1},8,["spinning"])])],32)])):r.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-c4855585"]]),CI=["src"],Ei=ye(r.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(n,{expose:e,emit:t}){const i=r.ref(),s=r.ref(),o=r.getCurrentInstance(),a=r.ref(!1),c=r.ref(""),l=r.ref({}),d=r.ref("3d"),{isMobile:h}=vl(),f=n,p={title:"构件树",treeData:[]},u=r.ref(!1),m=r.ref(!1),C=r.ref(!1),A=r.ref(!1),b=r.ref(!1),I=r.ref(!1),k=r.ref(!1),P=r.ref(!1),R=r.ref(!1),T=r.ref(!1),B=r.ref(null),{visible:g,position:N,items:w,show:S,hide:L}=wl(),V=r.ref([]),M=z=>{V.value.push(z)},E=z=>{V.value=V.value.filter(Y=>Y.id!==z)},y=r.ref([]),v=r.ref(""),D=r.ref(null),F=r.ref([]),Q=r.reactive({tree:!1,section:!1,roam:!1,info:!1,adjustModel:!1,setting:!1,cadLayer:!1,cadPosition:!1,annotation:!1}),O=(z,Y)=>{z==="componentTree"&&(z="tree"),z==="componentInfo"&&(z="info"),z in Q&&(Q[z]=Y)},x=r.shallowRef({});r.provide("leitingMethods",x);const U=r.ref(f.showMenu),H=r.ref([]);r.watch(()=>f.showMenu,z=>{U.value=z},{immediate:!0}),r.watch(()=>f.mode,z=>{z&&x.value?.set2d&&x.value.set2d(z==="2d")});const j=r.ref("dark");r.provide("leiting-theme",j);const X=r.ref(f.teleportTarget);r.watch(()=>f.teleportTarget,z=>{X.value=z});const Z=r.ref([]),re=r.computed(()=>{const z=[];return u.value&&(z.push("tree"),z.push("componentTree")),m.value&&z.push("section"),C.value&&z.push("roam"),A.value&&(z.push("info"),z.push("componentInfo")),b.value&&z.push("adjust"),I.value&&z.push("setting"),k.value&&z.push("cadLayer"),P.value&&z.push("cadPosition"),R.value&&z.push("annotation"),T.value&&(z.push("measure"),z.push("measurement")),z.push(...Z.value),z}),se=r.ref(null),oe=(z,Y)=>{z==="componentTree"||z==="tree"?u.value=Y:z==="section"?m.value=Y:z==="roam"?C.value=Y:z==="componentInfo"||z==="info"?A.value=Y:z==="homeView"?x.value?.is2dMode?.()?x.value?.flyToTopView?.({}):x.value?.getBIMmodelId()?x.value?.flyToTileset?.({}):x.value?.getCadModelId()&&x.value?.flyToTopView?.({}):z==="adjustModel"?(b.value=Y,Y&&se.value&&se.value.setModelType("BIM")):z==="osgbAdjust"?(b.value=Y,Y&&se.value&&se.value.setModelType("OSGB")):z==="setting"?I.value=Y:z==="cadLayer"?k.value=Y:z==="cadPosition"?P.value=Y:z==="annotation"?R.value=Y:z==="measurement"?T.value=Y:Y?Z.value.includes(z)||Z.value.push(z):Z.value=Z.value.filter($=>$!==z)},ge=z=>{const Y=z.key||z.ID;if(!Y)return;if(Y==="homeView"||Y==="home"){oe(Y,!0);return}if(Y==="measurement"){B.value="distance",T.value=!0;return}const $=!re.value.includes(z.ID);oe(Y,$)},ve=z=>{const Y=z.sub;if(!Y)return;const $=Y.parentKey||z.parent?.key;$==="measurement"?(B.value=Y.id.replace("measure-",""),T.value=!0):$==="section"&&(m.value=!0)};r.watch(u,async z=>{if(z&&x.value?.loadTreeForModel&&x.value?.getMapTileset){const Y=x.value.getMapTileset(),$=Object.values(Y).map(async Pe=>{if(Pe.leiting&&Pe.leiting.model?.treeUrl){const Re=Pe.leiting.model.modelId;try{Pe.leiting?.node?.batchIdEIDInfos||await x.value.loadNodeDetailsForModel(Re);const He=await x.value.loadTreeForModel(Re);He&&(Array.isArray(He)?He:[He]).forEach($e=>{$e&&!F.value.find(Tn=>Tn.id===$e.id)&&($e.modelId=Re,F.value=[...F.value,$e])})}catch(He){console.warn(`Failed to lazy load tree for ${Re}`,He)}}});await Promise.all($)}});const Ce=()=>{x.value&&(x.value.getDxfModels&&(y.value=x.value.getDxfModels()||[]),x.value.getCadModelId&&(v.value=x.value.getCadModelId()||""))};let Be;r.watch(k,z=>{z&&Ce()}),r.watch(P,z=>{z&&(Ce(),D.value&&y.value.length&&D.value.addGltfOr3dTilesModelList(y.value))});const Te=t,_e=z=>{x.value&&x.value.saveCadCalibration&&x.value.saveCadCalibration(z),x.value&&x.value.saveCadRegion&&x.value.saveCadRegion(z)};return r.onMounted(async()=>{if(s.value&&ce.setContainer(s.value),!!i.value)try{const z={...Ct,cesiumUrl:f.cesiumUrl||Ct.cesiumUrl,cesiumCssUrl:f.cesiumCssUrl||Ct.cesiumCssUrl,accessToken:f.accessToken||Bi()||Ct.accessToken};await Ii(z);const Y=f.accessToken||Bi()||Ct.accessToken;Y&&(Cesium.Ion.defaultAccessToken=Y),a.value=!0,Be=async(Pe={},Re)=>{if(i.value){const{showMenu:He,showTree:Sn,globe:$e,terrain:Tn,depthTest:LI,mapProvider:OI,tiandituLayerType:UI,tiandituShowLabel:_I,arcgisUrl:QI,shadows:VI,environmentMap:GI,ambientOcclusion:HI,time:YI,brightness:zI,backgroundColor:WI,collision:jI,mouseHabit:KI,heightBasedZoom:$I,mode:Pl,...it}=Pe||{},XI=f.showMenu!==void 0?f.showMenu:He!==void 0?He:!0;U.value=XI;const Fe=(J,Ee,Xe)=>J!==void 0?J:Ee!==void 0?Ee:Xe,Fl=Fe(f.globe,$e,!1),Nl=Fe(f.terrain,Tn,!1),Rl=Fe(f.depthTest,LI,!1),Ll=Fe(f.mapProvider,OI,"tianditu"),Ol=Fe(f.tiandituLayerType,UI,"img_w"),Ul=Fe(f.tiandituShowLabel,_I,!1),_l=Fe(f.arcgisUrl,QI,"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"),Ql=Fe(f.shadows,VI,!1),Vl=Fe(f.environmentMap,GI,!1),Gl=Fe(f.ambientOcclusion,HI,!1),Hl=Fe(f.time,YI,void 0),Yl=Fe(f.brightness,zI,1),wi=f.mode||Pl||"3d";console.log("LeitingBIM Mode:",wi,"Props:",f.mode,"Options:",Pl),d.value=wi;const qI=wi==="2d"?"#000000":"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)",zl=Fe(f.backgroundColor,WI,qI),Wl=Fe(f.collision,jI,!1),jl=Fe(f.mouseHabit,KI,0),Kl=Fe(f.heightBasedZoom,$I,!1);l.value={globe:Fl,terrain:Nl,depthTest:Rl,mapProvider:Ll,tiandituLayerType:Ol,tiandituShowLabel:Ul,arcgisUrl:_l,shadows:Ql,environmentMap:Vl,ambientOcclusion:Gl,time:Hl,brightness:Yl,backgroundColor:zl,collision:Wl,mouseHabit:jl,heightBasedZoom:Kl,useBrowserRecommendedResolution:!0};const Mn=Iy({container:i.value,appContext:o?.appContext,methods:{...x.value,handleMenuAction:oe,setCardFullHeight:O,onLoadingStatus:J=>{J?ce.loading(J,"",s.value):ce.close()},...it,tilesLoad3dTiles:async J=>{let Ee=J.leiting?.tree;const Xe=J.leiting?.model?.modelId;if(!Ee&&u.value&&x.value?.loadTreeForModel)try{Ee=await x.value.loadTreeForModel(Xe)}catch(kn){console.warn("Failed to lazy load tree",kn)}Ee&&(Array.isArray(Ee)?Ee:[Ee]).forEach(Ft=>{Ft&&!F.value.find(Xl=>Xl.id===Ft.id)&&(Ft.modelId=Xe,F.value=[...F.value,Ft])});const{brightness:Us,contrast:_s,saturation:lt}=Mn.methods.getConfigure();Mn.methods.setModelColorAdjustment({brightness:Us,contrast:_s,saturation:lt}),it.tilesLoad3dTiles?.(J)},mountAll3Dtiles:J=>{f.mountAll3Dtiles&&f.mountAll3Dtiles(J),it.mountAll3Dtiles?.(J)},updateModels:J=>{if(Array.isArray(J))if(J.length===0)F.value=[];else{const Ee=J.map(Xe=>Xe.modelId);F.value=F.value.filter(Xe=>Ee.includes(Xe.modelId))}},mountAllCad:J=>{if(Mn.methods.setModelBrightness){const Ee=f.brightness!==void 0?f.brightness:l.value.brightness;Ee!==void 0&&Mn.methods.setModelBrightness(Ee)}f.mountAllCad&&f.mountAllCad(J),it.mountAllCad?.(J)},saveRegion:J=>{f.saveRegion&&f.saveRegion(J),it.saveRegion?.(J)},saveCadRegion:J=>{f.saveCadRegion&&f.saveCadRegion(J),it.saveCadRegion?.(J)},saveCadCalibration:J=>{f.saveCadCalibration&&f.saveCadCalibration(J),it.saveCadCalibration?.(J)},selectionChange:J=>{f.selectionChange&&f.selectionChange(J),it.selectionChange?.(J)},onSearchComponent:J=>{f.searchComponent&&f.searchComponent(J),it.searchComponent?.(J)}},viewerOptions:f.viewerOptions,options:{...it,mode:wi,playerUrl:f.playerUrl,playerModelName:f.playerModelName,playerModelId:f.playerModelId,playerScale:f.playerScale,globe:Fl,terrain:Nl,depthTest:Rl,mapProvider:Ll,tiandituLayerType:Ol,tiandituShowLabel:Ul,tiandituToken:f.tiandituToken,arcgisUrl:_l,shadows:Ql,environmentMap:Vl,ambientOcclusion:Gl,time:Hl,brightness:Yl,backgroundColor:zl,collision:Wl,mouseHabit:jl,heightBasedZoom:Kl},callbacks:{onLoading:J=>J?ce.loading(J,"",s.value):ce.close(),onSuccess:J=>ce.success(J,"",void 0,s.value),onError:J=>ce.error(J,"",void 0,s.value)}}),{Cesium:Pt,viewer:Xt,methods:vi,menuEvents:Dn}=Mn,de=vi;Dn.on("showMenu",J=>{U.value=J}),Dn.on("insertMenu",J=>{H.value=[...H.value,...J]}),Dn.on("setMenuActive",(J,Ee)=>{oe(J,Ee)}),x.value=de,Re&&(Re.value=de),Dn.on("setMode",J=>{d.value=J}),Dn.on("deleteAllModels",()=>{F.value=[]}),new Pt.ScreenSpaceEventHandler(Xt.scene.canvas).setInputAction(async J=>{if(L(),d.value==="2d")return;const Ee=Xt.scene.pick(J.position),Xe=Xt.container.getBoundingClientRect(),Us=Xe.left+J.position.x,_s=Xe.top+J.position.y,lt=[];if(Pt.defined(Ee)&&Ee instanceof Pt.Cesium3DTileFeature){const kn=de.baseCompt.getFeatureId(Ee),Ft=dn(Ee.tileset);de.baseCompt.hasSelectedFeaturesMap[Ft]?.some(Pn=>Pn.batchId===kn&&Pn.rank===0)||(await de.baseCompt.clearSelection(),await de.baseCompt.toggleMultiSelect(Ft,kn,de.baseCompt.selectedColor)),lt.push({id:"details",label:"构件详情",action:()=>{A.value=!0}}),lt.push({id:"hide",label:"隐藏选中构件",action:async()=>{const Fn=(await de.baseCompt.getSelected()).map(ct=>({elementId:ct.elementId,modelId:ct.modelId,show:!1}));de.baseCompt.setComponentVisibility(Fn)}}),lt.push({id:"translucent",label:"半透明选中构件",action:async()=>{const Fn=(await de.baseCompt.getSelected()).map(ct=>({elementId:ct.elementId,modelId:ct.modelId,rgba:{...ct.rgba,a:.3}}));await de.baseCompt.setSelectColorUserModelCpt(Fn,{rank:0})}}),lt.push({id:"isolate",label:"隔离选中构件",divided:!0,action:async()=>{await de.baseCompt.loadAllNodeDetailsForModel();const Fn=(await de.baseCompt.getSelected()).map(ct=>({elementId:ct.elementId,modelId:ct.modelId,show:!0}));de.isolateComponents(Fn)}})}lt.push({id:"showAll",label:"显示所有",action:async()=>{de.baseCompt.setAllComponentsVisibility(!0),await de.baseCompt.clearSelection()}}),lt.push(...V.value),S({x:Us,y:_s},lt)},Pt.ScreenSpaceEventType.RIGHT_CLICK),de.addContextMenuItems=M,de.insertContextMenu=de.addContextMenuItems,de.removeContextMenuItems=E,de.deleteContextMenu=de.removeContextMenuItems,de.closeContextMenu=L,de.hideContextMenu=de.closeContextMenu,de.onSetTeleportTarget=J=>{X.value=J},await r.nextTick();const $l=Pe?.onLoaded||Pe?.onloaded;$l&&$l({Cesium:Pt,viewer:Xt,methods:vi}),Te("init",{Cesium:Pt,viewer:Xt,methods:vi}),Te("ready",{Cesium:Pt,viewer:Xt,methods:vi})}};let $=!1;Te("register",(Pe,Re)=>{$=!0,Be(Pe,Re)}),$||setTimeout(()=>{x.value.getViewer||Be()},0)}catch(z){c.value="Failed to load Cesium: "+(z.message||z),console.error(z)}}),r.onUnmounted(()=>{ce.setContainer(null)}),e({initMap:()=>x.value,initializeViewer:(z,Y)=>Be(z,Y)}),(z,Y)=>(r.openBlock(),r.createElementBlock("div",{class:r.normalizeClass(["leiting-bim-container",[`theme-${j.value}`]]),onContextmenu:Y[24]||(Y[24]=r.withModifiers(()=>{},["prevent","stop"]))},[!a.value&&!c.value?(r.openBlock(),r.createBlock(r.unref(ie.Spin),{key:0,class:"loading",size:"large",tip:"加载基础组件中..."})):r.createCommentVNode("",!0),c.value?(r.openBlock(),r.createBlock(r.unref(ie.Alert),{key:1,class:"error",type:"error",message:c.value,"show-icon":""},null,8,["message"])):r.createCommentVNode("",!0),r.createElementVNode("div",{ref_key:"containerRef",ref:i,class:"cesium-viewer"},[r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(bn,{key:0,visible:U.value,"active-ids":re.value,"custom-items":H.value,onAction:oe,"is-2d":d.value==="2d"},null,8,["visible","active-ids","custom-items","is-2d"])),r.unref(h)&&!C.value&&!T.value?(r.openBlock(),r.createBlock(Il,{key:1,"active-ids":re.value,onItemClick:ge,onSubItemClick:ve},null,8,["active-ids"])):r.createCommentVNode("",!0),r.unref(h)&&n.showTree!==!1&&!C.value?(r.openBlock(),r.createElementBlock("button",{key:2,class:r.normalizeClass(["mobile-float-tree-btn",{active:u.value}]),onClick:Y[0]||(Y[0]=$=>u.value=!u.value)},[r.createElementVNode("img",{src:r.unref(Rs),class:"mobile-float-tree-icon",alt:"目录树"},null,8,CI)],2)):r.createCommentVNode("",!0),(r.openBlock(),r.createBlock(r.Teleport,{to:X.value||"body",disabled:!X.value},[r.createElementVNode("div",{ref_key:"uiOverlayRef",ref:s,class:"leiting-ui-overlay"},[r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(In,{key:0,visible:A.value,"full-height":Q.info,"onUpdate:visible":Y[1]||(Y[1]=$=>A.value=$)},null,8,["visible","full-height"])),r.unref(h)?(r.openBlock(),r.createBlock(Dl,{key:1,visible:A.value,"onUpdate:visible":Y[2]||(Y[2]=$=>A.value=$),onClose:Y[3]||(Y[3]=()=>{A.value=!1})},null,8,["visible"])):r.createCommentVNode("",!0),r.createVNode(Bn,{ref_key:"LeitingPositionRef",ref:se,visible:b.value,"full-height":Q.adjustModel,"onUpdate:visible":Y[4]||(Y[4]=$=>b.value=$)},null,8,["visible","full-height"]),r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(xn,{key:2,visible:I.value,"full-height":Q.setting,"tianditu-token":f.tiandituToken,"initial-config":l.value,"onUpdate:visible":Y[5]||(Y[5]=$=>I.value=$)},null,8,["visible","full-height","tianditu-token","initial-config"])),r.unref(h)?(r.openBlock(),r.createBlock(xl,{key:3,visible:I.value,"onUpdate:visible":Y[6]||(Y[6]=$=>I.value=$),onClose:Y[7]||(Y[7]=()=>{I.value=!1,Z.value=Z.value.filter($=>$!=="setting")})},null,8,["visible"])):r.createCommentVNode("",!0),n.showTree!==!1&&!r.unref(h)?(r.openBlock(),r.createBlock(hi,r.mergeProps({key:4},{...p,...n.treeProps},{visible:u.value,"full-height":Q.tree,"tree-data":F.value.length>0?F.value:n.treeProps?.treeData||[],"onUpdate:visible":Y[8]||(Y[8]=$=>{u.value=$})}),null,16,["visible","full-height","tree-data"])):r.createCommentVNode("",!0),n.showTree!==!1&&r.unref(h)?(r.openBlock(),r.createBlock(Bl,{key:5,visible:u.value,"tree-data":F.value.length>0?F.value:n.treeProps?.treeData||[],"onUpdate:visible":Y[9]||(Y[9]=$=>{u.value=$}),onClose:Y[10]||(Y[10]=()=>{u.value=!1})},null,8,["visible","tree-data"])):r.createCommentVNode("",!0),r.createVNode(tw,{visible:R.value,"onUpdate:visible":Y[11]||(Y[11]=$=>R.value=$)},null,8,["visible"]),r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(bw,{key:6,visible:T.value,"onUpdate:visible":Y[12]||(Y[12]=$=>T.value=$)},null,8,["visible"])),r.unref(h)?(r.openBlock(),r.createBlock(Tl,{key:7,visible:T.value,"default-tool":B.value,"onUpdate:visible":Y[13]||(Y[13]=$=>{T.value=$,$||(B.value=null)}),onClose:Y[14]||(Y[14]=()=>{T.value=!1,B.value=null})},null,8,["visible","default-tool"])):r.createCommentVNode("",!0),r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(wn,{key:8,visible:m.value,"full-height":Q.section,"onUpdate:visible":Y[15]||(Y[15]=$=>m.value=$)},null,8,["visible","full-height"])),r.unref(h)?(r.openBlock(),r.createBlock(Sl,{key:9,visible:m.value,"onUpdate:visible":Y[16]||(Y[16]=$=>m.value=$),onClose:Y[17]||(Y[17]=()=>{m.value=!1})},null,8,["visible"])):r.createCommentVNode("",!0),r.unref(h)?r.createCommentVNode("",!0):(r.openBlock(),r.createBlock(vn,{key:10,visible:C.value,"full-height":Q.roam,"onUpdate:visible":Y[18]||(Y[18]=$=>C.value=$)},null,8,["visible","full-height"])),r.unref(h)?(r.openBlock(),r.createBlock(Ml,{key:11,visible:C.value,"onUpdate:visible":Y[19]||(Y[19]=$=>C.value=$),onClose:Y[20]||(Y[20]=()=>{C.value=!1})},null,8,["visible"])):r.createCommentVNode("",!0),r.createVNode(ZE,{visible:k.value,"current-model-id":v.value,"onUpdate:visible":Y[21]||(Y[21]=$=>k.value=$)},null,8,["visible","current-model-id"]),r.createVNode(Wb,{ref_key:"cadPositionRef",ref:D,visible:P.value,"onUpdate:visible":Y[22]||(Y[22]=$=>P.value=$),onSave:_e},null,8,["visible"]),r.createVNode(Bw,{visible:r.unref(g),position:r.unref(N),items:r.unref(w),"onUpdate:visible":Y[23]||(Y[23]=$=>g.value=$)},null,8,["visible","position","items"]),r.renderSlot(z.$slots,"default",r.normalizeProps(r.guardReactiveProps({methods:x.value,isReady:a.value})),void 0,!0)],512)],8,["to","disabled"]))],512)],34))}}),[["__scopeId","data-v-17d77199"]]);function EI(n,e={}){const{tapDelay:t=300,doubleTapDelay:i=300,moveThreshold:s=10}=e;let o=0,a={x:0,y:0},c=0,l=0,d=null;const h=[],f=[],p=[],u={},m=w=>{const S=w.touches[0]||w.changedTouches[0];return{x:S?.clientX??0,y:S?.clientY??0}},C=w=>{const S=m(w);o=Date.now(),a=S,c=0,p.forEach(({handler:L,delay:V})=>{d=window.setTimeout(()=>{L(w),d=null},V)})},A=w=>{const S=m(w),L=S.x-a.x,V=S.y-a.y;c=Math.sqrt(L*L+V*V),d&&c>s&&(clearTimeout(d),d=null)},b=w=>{const S=Date.now()-o,L=m(w),V=L.x-a.x,M=L.y-a.y;d&&(clearTimeout(d),d=null);const E=S<t&&c<s;if(E&&Date.now()-l<i&&c<s?(f.forEach(D=>D(w)),l=0):E&&(h.forEach(D=>D(w)),l=Date.now()),c>50){const D=Math.abs(V),F=Math.abs(M);D>F?V>0&&u.right?u.right(w):V<0&&u.left&&u.left(w):M>0&&u.down?u.down(w):M<0&&u.up&&u.up(w)}},I=w=>{h.push(w)},k=w=>{f.push(w)},P=(w,S=500)=>{p.push({handler:w,delay:S})},R=w=>{u.left=w},T=w=>{u.right=w},B=w=>{u.up=w},g=w=>{u.down=w},N=()=>{d&&(clearTimeout(d),d=null),h.length=0,f.length=0,p.length=0,Object.keys(u).forEach(w=>{delete u[w]})};return r.onMounted(()=>{const w=n.value;w&&(w.addEventListener("touchstart",C,{passive:!1}),w.addEventListener("touchmove",A,{passive:!1}),w.addEventListener("touchend",b,{passive:!1}))}),r.onUnmounted(()=>{N();const w=n.value;w&&(w.removeEventListener("touchstart",C),w.removeEventListener("touchmove",A),w.removeEventListener("touchend",b))}),{onTap:I,onDoubleTap:k,onLongPress:P,onSwipeLeft:R,onSwipeRight:T,onSwipeUp:B,onSwipeDown:g,destroy:N}}function bI(n){const e=t=>{t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement||t.target instanceof HTMLSelectElement||t.preventDefault()};return n.addEventListener("touchmove",e,{passive:!1}),()=>{n.removeEventListener("touchmove",e)}}function wI(){let n=0;const e=t=>{const i=Date.now();i-n<=300&&t.preventDefault(),n=i};return document.addEventListener("touchend",e,{passive:!1}),document.addEventListener("gesturestart",t=>t.preventDefault()),document.addEventListener("gesturechange",t=>t.preventDefault()),()=>{document.removeEventListener("touchend",e)}}function vI(n,e={}){const{delay:t=500,moveThreshold:i=10}=e,s=r.ref(!1);let o=null,a={x:0,y:0},c=!1;const l=u=>{if(u.touches.length!==1)return;u.preventDefault(),c=!0,s.value=!1;const m=u.touches[0];a={x:m?.clientX??0,y:m?.clientY??0},o=window.setTimeout(()=>{c&&(s.value=!0,n())},t)},d=u=>{if(!c||o===null)return;const m=u.touches[0],C=(m?.clientX??0)-a.x,A=(m?.clientY??0)-a.y;Math.sqrt(C*C+A*A)>i&&f()},h=()=>{c=!1,s.value=!1,o!==null&&(clearTimeout(o),o=null)},f=()=>{c=!1,s.value=!1,o!==null&&(clearTimeout(o),o=null)};return{isLongPressing:s,handlers:{onTouchStart:l,onTouchMove:d,onTouchEnd:h},start:l,end:h,cancel:f}}function II(n,e,t={}){const{delay:i=500,moveThreshold:s=10}=t;let o=null,a={x:0,y:0};const c=h=>{if(h.touches.length!==1)return;h.preventDefault();const f=h.touches[0];a={x:f?.clientX??0,y:f?.clientY??0},o=window.setTimeout(()=>{e()},i)},l=h=>{if(o===null)return;const f=h.touches[0],p=(f?.clientX??0)-a.x,u=(f?.clientY??0)-a.y;Math.sqrt(p*p+u*u)>s&&(clearTimeout(o),o=null)},d=()=>{o!==null&&(clearTimeout(o),o=null)};return n.addEventListener("touchstart",c,{passive:!1}),n.addEventListener("touchmove",l,{passive:!1}),n.addEventListener("touchend",d),n.addEventListener("touchcancel",d),()=>{o!==null&&(clearTimeout(o),o=null),n.removeEventListener("touchstart",c),n.removeEventListener("touchmove",l),n.removeEventListener("touchend",d),n.removeEventListener("touchcancel",d)}}const BI={tapThreshold:10,doubleTapInterval:300,longPressDelay:500,panThreshold:20,pinchThreshold:.02};function xI(n={}){const e={...BI,...n},t=r.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}),i=r.ref(!1),s=r.ref(!1),o=r.ref(!1);let a=0,c=0,l=null,d=0,h=1,f=0,p=null;const u={onTap:[],onDoubleTap:[],onLongPress:[],onPanStart:[],onPanMove:[],onPanEnd:[],onPinchStart:[],onPinchMove:[],onPinchEnd:[],onRotate:[]},m=M=>{if(M.length<2)return 0;const E=M[1].clientX-M[0].clientX,y=M[1].clientY-M[0].clientY;return Math.sqrt(E*E+y*y)},C=M=>M.length<2?0:Math.atan2(M[1].clientY-M[0].clientY,M[1].clientX-M[0].clientX)*(180/Math.PI);return{state:t,isActive:i,isPanning:s,isPinching:o,handlers:{onTouchStart:M=>{if(M.touches.length===1){const E=M.touches[0];p=E.identifier,a=Date.now(),t.startX=E.clientX,t.startY=E.clientY,t.currentX=E.clientX,t.currentY=E.clientY,t.deltaX=0,t.deltaY=0,i.value=!0,l=window.setTimeout(()=>{t.type="long-press",u.onLongPress.forEach(y=>y(M))},e.longPressDelay)}else M.touches.length===2&&(l&&(clearTimeout(l),l=null),o.value=!0,d=m(M.touches),h=1,f=C(M.touches),u.onPinchStart.forEach(E=>E(M)))},onTouchMove:M=>{if(M.touches.length===1&&p!==null){let E=null;for(let F=0;F<M.touches.length;F++)if(M.touches[F].identifier===p){E=M.touches[F];break}if(!E)return;const y=E.clientX-t.startX,v=E.clientY-t.startY;Math.sqrt(y*y+v*v)>e.panThreshold&&!s.value&&(s.value=!0,t.type="pan",l&&(clearTimeout(l),l=null),u.onPanStart.forEach(F=>F(M))),s.value&&(M.preventDefault(),t.deltaX=E.clientX-t.currentX,t.deltaY=E.clientY-t.currentY,t.currentX=E.clientX,t.currentY=E.clientY,t.velocityX=t.deltaX,t.velocityY=t.deltaY,u.onPanMove.forEach(F=>F(M)))}else if(M.touches.length===2&&o.value){M.preventDefault();const E=m(M.touches),y=C(M.touches),v=E/d;t.scale=h*v,t.rotation=y-f,u.onPinchMove.forEach(D=>D(M)),u.onRotate.forEach(D=>D(M))}},onTouchEnd:M=>{if(t.duration=Date.now()-a,l&&(clearTimeout(l),l=null),M.touches.length===0){if(s.value)t.type="pan",u.onPanEnd.forEach(E=>E(M));else if(o.value)u.onPinchEnd.forEach(E=>E(M));else if(t.type==="none"&&t.duration<300){const E=Date.now();E-c<e.doubleTapInterval?(t.type="double-tap",u.onDoubleTap.forEach(y=>y(M)),c=0):(t.type="tap",u.onTap.forEach(y=>y(M)),c=E)}s.value=!1,o.value=!1,i.value=!1,p=null,setTimeout(()=>{t.type="none",t.deltaX=0,t.deltaY=0,t.scale=1,t.rotation=0},50)}}},onTap:M=>{u.onTap.push(M)},onDoubleTap:M=>{u.onDoubleTap.push(M)},onLongPress:M=>{u.onLongPress.push(M)},onPanStart:M=>{u.onPanStart.push(M)},onPanMove:M=>{u.onPanMove.push(M)},onPanEnd:M=>{u.onPanEnd.push(M)},onPinchStart:M=>{u.onPinchStart.push(M)},onPinchMove:M=>{u.onPinchMove.push(M)},onPinchEnd:M=>{u.onPinchEnd.push(M)},onRotate:M=>{u.onRotate.push(M)}}}const bi={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 SI(n={}){const e={...bi,...n};return{requestRenderMode:e.enableFpsLimit,maximumRenderTimeChange:e.enableFpsLimit?1e3/e.targetFps:void 0,scene3DOnly:!0,shouldAnimate:!0}}function TI(n={}){const e={...bi,...n};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 MI(n={}){const e={...bi,...n},i={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:i.maximumScreenSpaceError,skipLevelOfDetail:e.enableModelLod,baseScreenSpaceError:i.baseScreenSpaceError,skipScreenSpaceErrorFactor:i.skipScreenSpaceErrorFactor,skipLevels:i.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 DI(n=30){const e=r.ref(60),t=r.ref(!1);let i=0,s=0,o=0;const a=1e3/n,c=()=>{t.value=!0,i=performance.now(),o=i,s=0},l=()=>{if(!t.value)return!0;const h=performance.now(),f=h-i;return s++,h-o>=1e3&&(e.value=Math.round(s*1e3/(h-o)),s=0,o=h),f>=a?(i=h-f%a,!0):!1},d=()=>{t.value=!1};return r.onUnmounted(()=>{d()}),{fps:e,isControlling:t,startControl:c,stopControl:d,tick:l}}function kI(n,e){let t=null;const i=((...s)=>{t!==null&&clearTimeout(t),t=window.setTimeout(()=>{n(...s),t=null},e)});return i.cancel=()=>{t!==null&&(clearTimeout(t),t=null)},i}function PI(n,e){let t=!1;return((...s)=>{t||(n(...s),t=!0,setTimeout(()=>{t=!1},e))})}function FI(n,e=200){let t=null;const i=()=>{t!==null&&clearTimeout(t),t=window.setTimeout(()=>{n(),t=null},e)},s=()=>{t!==null&&(clearTimeout(t),t=null)};return r.onUnmounted(()=>{s()}),{load:i,cancel:s}}function kl(n){const e=r.ref(),t=r.ref(n.theme||"dark"),i=r.ref(n.menuSize||"medium");r.provide("leiting-theme",t),r.provide("leiting-menu-size",i);function s(c){r.onUnmounted(()=>{e.value=null}),c(n,e)}function o(){const c=r.unref(e);return c||console.error("未获取到leiting实例!"),c}const a=new Proxy({},{get(c,l){const d=o();if(!d)return;const h=d[l];return typeof h=="function"?h.bind(d):h},set(c,l,d){const h=o();return h?(h[l]=d,!0):!1}});return[s,a]}const NI=Ct,RI={install:(n,e)=>{if(n.component("LeitingBIM",Ei),n.component("LeitingTree",hi),n.component("LeitingDraggableCard",Le),n.component("leiting-draggable-card",Le),n.component("LeitingMenu",bn),n.component("leiting-menu",bn),n.component("LeitingSection",wn),n.component("leiting-section",wn),n.component("LeitingPlayer",vn),n.component("leiting-player",vn),n.component("LeitingInfo",In),n.component("leiting-info",In),n.component("LeitingPosition",Bn),n.component("leiting-position",Bn),n.component("LeitingSetting",xn),n.component("leiting-setting",xn),!e)return;const t={...NI,...e};t.cesiumUrl&&Ii(t).catch(i=>{console.error("[LeitingBim] Failed to load Cesium resources:",i)}),n.config.globalProperties.$leitingBimOptions=t}};_.DEFAULT_CESIUM_CONFIG=Ct,_.LeiTingBIM=Ei,_.LeiTingDraggableCard=Le,_.LeiTingInfo=In,_.LeiTingMenu=bn,_.LeiTingPlayer=vn,_.LeiTingPosition=Bn,_.LeiTingSection=wn,_.LeiTingSetting=xn,_.LeiTingTree=hi,_.LeitingBIM=Ei,_.LeitingDraggableCard=Le,_.LeitingInfo=In,_.LeitingMenu=bn,_.LeitingPlayer=vn,_.LeitingPosition=Bn,_.LeitingSection=wn,_.LeitingSetting=xn,_.LeitingTree=hi,_.MobileBottomNav=Il,_.MobileDrawer=Ls,_.MobileInfo=Dl,_.MobileMeasurement=Tl,_.MobilePlayer=Ml,_.MobileSection=Sl,_.MobileSetting=xl,_.MobileTree=Bl,_.default=RI,_.defaultMobileConfig=bi,_.disableDoubleTapZoom=wI,_.getAccessToken=Bi,_.getCesiumOptionsForMobile=SI,_.getTilesetOptionsForMobile=MI,_.getViewerOptionsForMobile=TI,_.leitingBim=Ei,_.loadCesium=Ii,_.preventDefaultTouchEvents=bI,_.useDebounce=kI,_.useDevice=vl,_.useFrameRateControl=DI,_.useGestureDetection=xI,_.useLazyLoad=FI,_.useLeiTing=kl,_.useLeiting=kl,_.useLongPress=vI,_.useLongPressOnElement=II,_.useModelTree=hl,_.useRightContextMenu=wl,_.useThrottle=PI,_.useTouchEvents=EI,_.waitForCesium=ec,Object.defineProperties(_,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));