leiting-bim 2.1.124 → 2.1.125
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/leiting-bim.es.js +1 -1
- package/leiting-bim.umd.js +1 -1
- package/leitingbim.css +1 -1
- package/package.json +1 -1
package/leiting-bim.umd.js
CHANGED
|
@@ -115,4 +115,4 @@
|
|
|
115
115
|
// 通常不需要 clamp,除非开启 HDR 后期望超亮,但负值需要避免
|
|
116
116
|
material.diffuse = max(material.diffuse, vec3(0.0));
|
|
117
117
|
}
|
|
118
|
-
`});f.isModelAdjustment=!0,p.customShader=f}else e.brightness!==void 0&&e.brightness!==1&&!p.style&&(p.style=new n.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 n=t.postProcessStages.ambientOcclusion;n.enabled=e,e&&(n.uniforms.ambientOcclusionOnly=!1,n.uniforms.intensity=3,n.uniforms.bias=.1,n.uniforms.lengthCap=.03,n.uniforms.stepSize=1,n.uniforms.blurStepSize=.86)}setCollisionDetection(e){if(this.is2d){this.viewer.scene.screenSpaceCameraController.enableCollisionDetection=!1;return}const t=this.viewer.scene.screenSpaceCameraController;t.enableCollisionDetection=e,e||t.minimumZoomDistance<1&&(t.minimumZoomDistance=1)}_customZoomHandler=null;_zoomInertiaListener=null;setHeightBasedZoom(e){const t=this.viewer.scene.screenSpaceCameraController,n=this.cesium;if(this.viewer.camera.frustum.near=1e-5,this.viewer.camera.frustum.far=1e8,e||(this.viewer.camera.frustum.near=.1),this._customZoomHandler&&(this._customZoomHandler.destroy(),this._customZoomHandler=null),this._zoomInertiaListener&&(this._zoomInertiaListener(),this._zoomInertiaListener=null),!e){t.zoomEventTypes.includes(n.CameraEventType.WHEEL)||t.zoomEventTypes.push(n.CameraEventType.WHEEL);return}t.zoomEventTypes=t.zoomEventTypes.filter(l=>l!==n.CameraEventType.WHEEL),this._customZoomHandler=new n.ScreenSpaceEventHandler(this.viewer.scene.canvas);let s=null;this._customZoomHandler.setInputAction(l=>{s=l.endPosition},n.ScreenSpaceEventType.MOUSE_MOVE);let o=0,r=null;this._zoomInertiaListener=this.viewer.scene.preUpdate.addEventListener(()=>{if(Math.abs(o)<.001||!r){o=0;return}const l=this.viewer.camera,a=o*.2;if(s){const h=l.getPickRay(s);if(h){let p=this.viewer.scene.pickPosition(s);if(!p){const f=n.IntersectionTests.rayEllipsoid(h,this.viewer.scene.globe.ellipsoid);f&&(p=n.Ray.getPoint(h,f.start))}if(p){const f=n.Cartesian3.distance(l.position,p);if(a>0&&a>f-.01){if(o=0,f>.01){const u=n.Cartesian3.multiplyByScalar(r,f-.01,new n.Cartesian3);l.position=n.Cartesian3.add(l.position,u,new n.Cartesian3)}return}}}}const d=n.Cartesian3.multiplyByScalar(r,a,new n.Cartesian3);l.position=n.Cartesian3.add(l.position,d,new n.Cartesian3),o-=a}),this._customZoomHandler.setInputAction(l=>{const a=this.viewer.camera,d=a.positionCartographic.height;let h=.1;d<4?h=.08+d/4*.08:d>1e3&&(h=.1+Math.min((d-1e3)/1e3,1)*.1);let p=d*h;p=Math.max(.001,p);const f=Math.sign(l);if(d<.2&&f>0){pe.warning("无法继续放大");return}if(!s)r=a.direction;else{const u=a.getPickRay(s);if(u){let m=this.viewer.scene.pickPosition(s);if(!m){const E=n.IntersectionTests.rayEllipsoid(u,this.viewer.scene.globe.ellipsoid);E&&(m=n.Ray.getPoint(u,E.start))}if(m){const E=n.Cartesian3.subtract(m,a.position,new n.Cartesian3);r=n.Cartesian3.normalize(E,new n.Cartesian3)}else r=a.direction}else r=a.direction}o+=f>0?p:-p},n.ScreenSpaceEventType.WHEEL)}setMouseHabit(e){if(this.is2d)return;const t=this.viewer.scene.screenSpaceCameraController;t.enableTranslate=!0,t.enableRotate=!0,t.enableZoom=!0,t.enableTilt=!0,t.enableLook=!1,t.lookEventTypes=[],e===1?(t.rotateEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.MIDDLE_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.LEFT_DRAG]):(t.rotateEventTypes=[this.cesium.CameraEventType.LEFT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.MIDDLE_DRAG])}}class hy{cesium;viewer;constructor(e){this.cesium=e.cesium,this.viewer=e.viewer}getCameraView(){const e=this.viewer.camera;return{position:{x:e.position.x,y:e.position.y,z:e.position.z},destination:{x:e.position.x,y:e.position.y,z:e.position.z},orientation:{heading:e.heading,pitch:e.pitch,roll:e.roll},duration:1}}flyToCameraView(e){const{position:t,orientation:n,duration:s}=e,o=new this.cesium.Cartesian3(t.x,t.y,t.z),r=new this.cesium.HeadingPitchRoll(n.heading,n.pitch,n.roll);!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}getCurrentCameraPositionAndTarget(){const e=this.getCameraView();return{position:e.position,target:{heading:e.orientation.heading,pitch:e.orientation.pitch,roll:e.orientation.roll},duration:e.duration}}setCameraView(e){const t=e.target||e.orientation||{},n=e.destination||e.position||{};this.flyToCameraView({position:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},destination:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},orientation:{heading:Number(t.heading||0),pitch:Number(t.pitch||0),roll:Number(t.roll||0)},duration:e.duration})}flyToLonLatHeight(e,t,n,s=1){const o=this.cesium.Cartesian3.fromDegrees(e,t,n),r={heading:this.cesium.Math.toRadians(0),pitch:this.cesium.Math.toRadians(-90),roll:0};!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}}function uy(i){const{container:e,appContext:t,methods:n,viewerOptions:s,options:o,callbacks:r}=i,l=new Gi,a=window.Cesium;if(!a)throw new Error("Cesium is not loaded");e.id=`cesium-container-${op()}`;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,p={...d,...h?.viewerOptions??{},...s??{}},f=new a.Viewer(e,p);f.camera.setView({destination:a.Cartesian3.fromDegrees(108,32,1e7),orientation:{heading:a.Math.toRadians(0),pitch:a.Math.toRadians(-90),roll:0}});let u=n;if(!u&&h&&(h.methods||(h.methods={}),u=h.methods),u){const m=new yp({cesium:a,viewer:f,options:o,callbacks:r}),E=new Dr({cesium:a,viewer:f}),A=new dy({cesium:a,viewer:f}),C=new Cp({cesium:a,viewer:f}),v=new hy({cesium:a,viewer:f});let S;const D=new tl({cesium:a,viewer:f});o&&(o.globe!==void 0&&A.setGlobeEnvironmentVisible(o.globe),o.terrain!==void 0&&A.setTerrainEnable(o.terrain),o.depthTest!==void 0&&A.setDepthTestEnable(o.depthTest),o.mapProvider&&o.mode!=="2d"&&A.changeBaseMap(o.mapProvider,{token:o.tiandituToken,layerType:o.tiandituLayerType,showAnnotation:o.tiandituShowLabel,url:o.arcgisUrl}),o.shadows!==void 0&&A.setShadowsEnable(o.shadows),o.environmentMap!==void 0&&A.setEnvironmentMapEnable(o.environmentMap),o.ambientOcclusion!==void 0&&A.setAmbientOcclusion(o.ambientOcclusion),o.time!==void 0&&A.setTime(o.time),o.brightness!==void 0&&A.setModelBrightness(o.brightness),o.backgroundColor!==void 0&&A.setBackgroundColor(o.backgroundColor),o.collision!==void 0&&A.setCollisionDetection(o.collision),o.mouseHabit!==void 0&&A.setMouseHabit(o.mouseHabit),o.heightBasedZoom!==void 0&&A.setHeightBasedZoom(o.heightBasedZoom)),o&&o.mode==="2d"&&(console.log("InitMap: Setting CAD Mode 2D"),A.setCadMode("2d"),S=new el({cesium:a,viewer:f})),E.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)}),E.events.on("loadingStatus",g=>{u&&u.onLoadingStatus&&u.onLoadingStatus(g)}),E.events.on("mountAll3Dtiles",({modelList:g})=>{o?.mountAll3Dtiles&&o.mountAll3Dtiles(g),u?.mountAll3Dtiles&&u.mountAll3Dtiles(g)}),E.events.on("updateModels",({modelList:g})=>{o?.updateModels&&o.updateModels(g),u?.updateModels&&u.updateModels(g)}),C.events.on("mountAllCad",g=>{o?.mountAllCad&&o.mountAllCad(g),u?.mountAllCad&&u.mountAllCad(g)}),m.baseCompt.loadNodeDetailsForModel=g=>E.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 O=u.saveRegion;u.saveRegion=g=>{o?.saveRegion&&o.saveRegion(g),O&&O!==o?.saveRegion&&O(g)};const I=u.saveCadCalibration;u.saveCadCalibration=g=>{o?.saveCadCalibration&&o.saveCadCalibration(g),I&&I!==o?.saveCadCalibration&&I(g)};const B=u.saveCadRegion;u.saveCadRegion=g=>{o?.saveCadRegion&&o.saveCadRegion(g),B&&B!==o?.saveCadRegion&&B(g)},u.getCesium=()=>a,u.getViewer=()=>f,u.getAnnotationInstance=()=>S,u.getMeasureInstance=()=>D,u.flyToCamera=g=>{v.setCameraView(g)},u.flyToLonLatHeight=(g,P,x,F=1)=>{v.flyToLonLatHeight(g,P,x,F)},u.flyTo=u.flyToCamera,u.getCameraState=()=>v.getCameraView(),u.getCameraInfo=u.getCameraState,u.restoreCameraState=g=>v.flyToCameraView(g),u.flyToCameraView=u.restoreCameraState,u.getCameraPositionTarget=()=>v.getCurrentCameraPositionAndTarget(),u.getCurrentCameraPositionAndTarget=u.getCameraPositionTarget,u.setCameraLookAt=g=>v.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,P,x=0)=>{f.entities.add({position:a.Cartesian3.fromDegrees(g,P,x),point:{pixelSize:10,color:a.Color.RED}})},u.addPoint=u.addDebugPoint,u.toggleDebugLabels=()=>m.enableTestLabel(),u.enableTestLabel=u.toggleDebugLabels,u.captureScreenshot=()=>{const g=f.scene.canvas;return f.render(),g.toDataURL("image/png")},u.getImageBase64=u.captureScreenshot,u.captureDomScreenshot=(g,P)=>m.getSnapDomSImageBase64(g,P),u.getSnapDomSImageBase64=u.captureDomScreenshot,u.addModels=g=>E.addModels(g),u.add3DtilesModel=u.addModels,u.addObliquePhotography=g=>E.addOSGB(g),u.addOSGB=u.addObliquePhotography,u.adjustOSGBModelMatrix=g=>E.updateOSGBMatrix(g),u.updateOSGBMatrix=u.adjustOSGBModelMatrix,u.setModelVisibility=g=>E.showModels(g),u.showModels=u.setModelVisibility,u.showTileset=u.setModelVisibility,u.removeModels=g=>E.deleteModels(g),u.deleteModels=u.removeModels,u.clearAllModels=()=>{E.deleteAllModels(),l.emit("deleteAllModels")},u.deleteAllModelList=u.clearAllModels,u.deleteAllModels=u.clearAllModels,u.flyToModel=g=>E.flyToTileset(g),u.flyToTileset=u.flyToModel,u.flyToByModelId=u.flyToModel,u.setModelBrightness=g=>m.updateModelEffect(g),u.updateModelEffect=u.setModelBrightness,u.getAllTilesets=()=>E.getMapTileset(),u.getMapTileset=u.getAllTilesets,u.getCurrentModelId=()=>E.getBIMmodelId(),u.getBIMmodelId=u.getCurrentModelId,u.getLoadedModels=()=>E.getModelList(),u.getModelList=u.getLoadedModels,u.loadModelStructure=async g=>{const P=typeof g=="string"?g:g?.modelId;if(!P){console.warn("loadModelStructure: modelId is required");return}return await E.loadTreeForModel(P)},u.loadTreeForModel=u.loadModelStructure,u.loadModelDetails=async g=>{const P=typeof g=="string"?g:g?.modelId;if(!P){console.warn("loadModelDetails: modelId is required");return}return await E.loadNodeDetailsForModel(P)},u.loadNodeDetailsForModel=u.loadModelDetails,u.setMapTileset=g=>E.setMapTileset(g),u.setCurrentModelId=g=>E.setBIMmodelId(g),u.setBIMmodelId=u.setCurrentModelId,u.setModelList=g=>E.setModelList(g),u.highlightComponents=(g,P={})=>m.baseCompt.setSelectColorUserModelCpt(g,P),u.setSelectColorUserModelCpt=u.highlightComponents,m.baseCompt.setLoadNodeDetailsCallback(g=>E.loadNodeDetailsForModel(g)),u.highlightAllComponents=g=>m.baseCompt.setAllSelectColorUserModelCpt(g),u.setAllSelectColorUserModelCpt=u.highlightAllComponents,u.setSelectColorUserModelCptByClear=(g,P)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(g.selectCpts,P??{rank:0})},u.clearSelectColorUserModelCpt=()=>m.baseCompt.clearAllHaveSelected(),u.selectComponents=(g,P)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(g,P??{rank:0})},u.setSelecteds=u.selectComponents,u.setSelectionColor=(g,P,x,F)=>m.baseCompt.setSelectedColorRgba(g,P,x,F),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 P=new Set;g.forEach(x=>{x.mergeCpts&&Array.isArray(x.mergeCpts)&&x.mergeCpts.forEach(F=>{F.modelId&&P.add(F.modelId)})}),P.size>0&&await Promise.all(Array.from(P).map(x=>u.loadNodeDetailsForModel(x)))}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.getComponentsByVisibility=g=>m.baseCompt.getComponentsByVisibility(g),u.getShowCpts=g=>m.baseCompt.getComponentsByVisibility(g),u.getElementsVisible=u.getComponentsByVisibility,u.setComponentVisibility=u.setComponentsVisibility,u.enableSectioning=(g,P)=>m.baseSection.open(g,P),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.stopFirstPersonMode=()=>{m.basePlayer.closePlayer(),m.baseCompt.enableSelection()},u.closePlayer=u.stopFirstPersonMode,u.setPlayerPosition=g=>m.basePlayer.setPersonPosition(g),u.setPersonPosition=u.setPlayerPosition,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,P)=>m.basePlayer.setMoveState(g,P),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,P)=>A.changeBaseMap(g,P),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 P=g?"2d":"3d";await A.setCadMode(P),g&&!S&&(S=new el({cesium:a,viewer:f}),u.setGlobeVisibility(!0)),l.emit("setMode",P)},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,P)=>A.searchLocation(g,P),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 P={...g};return P.files&&!P.fileNames&&(P.fileNames=P.files),P.fileNames||(P.fileNames=[]),C.addDxfModel(P)},u.addDxfModel=u.addCadModel,u.deleteCad=g=>C.deleteCad(g),u.deleteAllCad=()=>C.deleteAllCad(),u.showCadModel=g=>C.showJson(g),u.showGeoJson=g=>C.showJson(g),u.showDxfModel=u.showCadModel,u.showCadLayer=g=>C.showJsonByLayer(g),u.showDxfLayer=u.showCadLayer,u.flyToCadModel=(g={})=>C.flyToCadModel(g),u.getCadModels=g=>C.getDxfModels(g),u.getDxfModels=u.getCadModels,u.getCadLayers=g=>C.getMapLayers(g),u.getDxfLayers=u.getCadLayers,u.getCadModelId=()=>C.getModelId(),u.setCadOpen=g=>C.setDxfOpen(g),u.setDxfOpen=u.setCadOpen,u.getCadOpen=()=>C.getDxfOpen(),u.getDxfOpen=u.getCadOpen,u.adjustCadModel=g=>C.adjustingModelByCad(g),u.adjustingModelByCad=u.adjustCadModel,u.saveAnnotations=()=>{let g=null;return S&&(g=S.saveAnnotations()),o?.saveAnnotations&&o.saveAnnotations(g),g},u.loadAnnotations=g=>S?S.loadAnnotations(g):!1,u.flyToTopView=()=>{C.flyToCadModel()},u.menuEvents=l,u.addMenuItems=g=>{l.emit("insertMenu",g)},u.insertMenu=u.addMenuItems,u.filterMenuItems=g=>{l.emit("setMenuListFilter",g)},u.setMenuListFilter=u.filterMenuItems,u.setMenuVisibility=g=>{l.emit("showMenu",g)},u.showMenu=u.setMenuVisibility,u.setPanelVisibility=(g,P)=>{l.emit("setMenuActive",g,P)},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=[],P=E.getMapTileset();return Object.keys(P).forEach(x=>{const F=P[x];if(F&&F.leiting&&F.leiting.tree){const _=F.leiting.tree;Array.isArray(_)?g.push(..._):g.push(_)}}),g},u.getTree=u.getModelTree,u.getAllComponentDetails=()=>{const g=E.getMapTileset(),P={},x=[];try{Object.keys(g).forEach(F=>{const _=g[F];if(!_||!_.leiting)return;const H=_.leiting,L=H.node,w=H.model.formData,y=H.box;if(!L||!L.nodeExtras)return;const b=H.model.modelId;P[b]=L.nodeExtras;const M=L.nodeExtras.element;if(!M)return;const k=y?y.center:{x:0,y:0,z:0};Object.values(M).forEach(Q=>{if(Q.box3)try{const R=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(w.totalRotation||0)),T=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(R),new a.Cartesian3(0,0,0)),U=a.Cartesian3.fromDegrees(w.longitude,w.latitude,w.height),V=a.Transforms.eastNorthUpToFixedFrame(U);a.Matrix4.multiply(V,T,V);const W=new a.Cartesian3(k.x,k.y,0),X=new a.Cartesian3;a.Matrix4.multiplyByPoint(V,W,X);const ee=a.Cartographic.fromCartesian(X),oe=Q.box3?.Center?.x||0,ne=Q.box3?.Center?.y||0,Y=Q.box3?.Center?.z||0,j=new a.Cartesian3(-k.x+oe,-k.y+ne,0+Y),te=a.Matrix4.fromTranslation(j),le=a.Matrix4.clone(te);a.Matrix4.multiply(T,le,le);const re=a.Cartesian3.fromDegrees(ee.longitude/Math.PI*180,ee.latitude/Math.PI*180,w.height),ce=a.Transforms.eastNorthUpToFixedFrame(re);a.Matrix4.multiply(ce,le,ce);const ve=a.Cartographic.fromCartesian(new a.Cartesian3(ce[12],ce[13],ce[14]));Q.box3.cartographic={longitude:ve.longitude/Math.PI*180,latitude:ve.latitude/Math.PI*180,height:ve.height};const Te={id:Q.uniqueId,billboard:[{theme:"Tag9999",position:[Q.box3.cartographic.longitude,Q.box3.cartographic.latitude,Q.box3.cartographic.height],options:{text:Q.name}}]};x.push(Te)}catch(R){console.warn("Error calculating component position:",R)}})})}catch(F){console.error("getAllComponents error:",F)}return P},u.getAllComponents=u.getAllComponentDetails,u.getComponentInfoList=g=>{if(!Array.isArray(g))return[];const P=E.getMapTileset(),x=[],F={};g.forEach(_=>{!_.modelId||!_.elementId||(F[_.modelId]||(F[_.modelId]=[]),F[_.modelId]?.push(_.elementId))});try{Object.keys(F).forEach(_=>{const H=P[_];if(!H||!H.leiting)return;const L=H.leiting,w=L.node,y=L.model.formData,b=L.box;if(!w||!w.nodeExtras)return;const M=w.nodeExtras.element;if(!M)return;const k=b?b.center:{x:0,y:0,z:0};F[_]?.forEach(Q=>{const R=M[Q];if(R&&R.box3)try{const T=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(y.totalRotation||0)),U=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(T),new a.Cartesian3(0,0,0)),V=a.Cartesian3.fromDegrees(y.longitude,y.latitude,y.height),W=a.Transforms.eastNorthUpToFixedFrame(V);a.Matrix4.multiply(W,U,W);const X=new a.Cartesian3(k.x,k.y,0),ee=new a.Cartesian3;a.Matrix4.multiplyByPoint(W,X,ee);const oe=a.Cartographic.fromCartesian(ee),ne=R.box3?.Center?.x||0,Y=R.box3?.Center?.y||0,j=R.box3?.Center?.z||0,te=new a.Cartesian3(-k.x+ne,-k.y+Y,0+j),le=a.Matrix4.fromTranslation(te),re=a.Matrix4.clone(le);a.Matrix4.multiply(U,re,re);const ce=a.Cartesian3.fromDegrees(oe.longitude/Math.PI*180,oe.latitude/Math.PI*180,y.height),ve=a.Transforms.eastNorthUpToFixedFrame(ce);a.Matrix4.multiply(ve,re,ve);const Te=a.Cartographic.fromCartesian(new a.Cartesian3(ve[12],ve[13],ve[14]));R.box3.cartographic={longitude:Te.longitude/Math.PI*180,latitude:Te.latitude/Math.PI*180,height:Te.height},R.elementId=Q,R.modelId=_,x.push(R)}catch(T){console.warn("Error calculating component position:",T)}})})}catch(_){console.error("getCptInfos error:",_)}return x},u.getCptInfos=u.getComponentInfoList,u.baseCompt=m.baseCompt,window.Methods=u}return console.log("methods",u),{Cesium:a,viewer:f,methods:u,menuEvents:l}}function Ms(i){return c.getCurrentScope()?(c.onScopeDispose(i),!0):!1}function Ds(i){return typeof i=="function"?i():c.unref(i)}const fy=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const py=Object.prototype.toString,gy=i=>py.call(i)==="[object Object]",my=()=>{};function Ay(i){return c.getCurrentInstance()}function sl(i,e=!0,t){Ay()?c.onMounted(i,t):e?i():c.nextTick(i)}function Bt(i){var e;const t=Ds(i);return(e=t?.$el)!=null?e:t}const mi=fy?window:void 0;function yy(...i){let e,t,n,s;if(typeof i[0]=="string"||Array.isArray(i[0])?([t,n,s]=i,e=mi):[e,t,n,s]=i,!e)return my;Array.isArray(t)||(t=[t]),Array.isArray(n)||(n=[n]);const o=[],r=()=>{o.forEach(h=>h()),o.length=0},l=(h,p,f,u)=>(h.addEventListener(p,f,u),()=>h.removeEventListener(p,f,u)),a=c.watch(()=>[Bt(e),Ds(s)],([h,p])=>{if(r(),!h)return;const f=gy(p)?{...p}:p;o.push(...t.flatMap(u=>n.map(m=>l(h,u,m,f))))},{immediate:!0,flush:"post"}),d=()=>{a(),r()};return Ms(d),d}function Cy(){const i=c.ref(!1),e=c.getCurrentInstance();return e&&c.onMounted(()=>{i.value=!0},e),i}function ol(i){const e=Cy();return c.computed(()=>(e.value,!!i()))}function Ey(i,e={}){const{window:t=mi}=e,n=ol(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const o=c.ref(!1),r=d=>{o.value=d.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",r):s.removeListener(r))},a=c.watchEffect(()=>{n.value&&(l(),s=t.matchMedia(Ds(i)),"addEventListener"in s?s.addEventListener("change",r):s.addListener(r),o.value=s.matches)});return Ms(()=>{a(),l(),s=void 0}),o}function wy(i,e,t={}){const{window:n=mi,...s}=t;let o;const r=ol(()=>n&&"ResizeObserver"in n),l=()=>{o&&(o.disconnect(),o=void 0)},a=c.computed(()=>Array.isArray(i)?i.map(p=>Bt(p)):[Bt(i)]),d=c.watch(a,p=>{if(l(),r.value&&n){o=new ResizeObserver(e);for(const f of p)f&&o.observe(f,s)}},{immediate:!0,flush:"post"}),h=()=>{l(),d()};return Ms(h),{isSupported:r,stop:h}}function by(i,e={width:0,height:0},t={}){const{window:n=mi,box:s="content-box"}=t,o=c.computed(()=>{var p,f;return(f=(p=Bt(i))==null?void 0:p.namespaceURI)==null?void 0:f.includes("svg")}),r=c.ref(e.width),l=c.ref(e.height),{stop:a}=wy(i,([p])=>{const f=s==="border-box"?p.borderBoxSize:s==="content-box"?p.contentBoxSize:p.devicePixelContentBoxSize;if(n&&o.value){const u=Bt(i);if(u){const m=u.getBoundingClientRect();r.value=m.width,l.value=m.height}}else if(f){const u=Array.isArray(f)?f:[f];r.value=u.reduce((m,{inlineSize:E})=>m+E,0),l.value=u.reduce((m,{blockSize:E})=>m+E,0)}else r.value=p.contentRect.width,l.value=p.contentRect.height},t);sl(()=>{const p=Bt(i);p&&(r.value="offsetWidth"in p?p.offsetWidth:e.width,l.value="offsetHeight"in p?p.offsetHeight:e.height)});const d=c.watch(()=>Bt(i),p=>{r.value=p?e.width:0,l.value=p?e.height:0});function h(){a(),d()}return{width:r,height:l,stop:h}}function vy(i={}){const{window:e=mi,initialWidth:t=Number.POSITIVE_INFINITY,initialHeight:n=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=i,r=c.ref(t),l=c.ref(n),a=()=>{e&&(o?(r.value=e.innerWidth,l.value=e.innerHeight):(r.value=e.document.documentElement.clientWidth,l.value=e.document.documentElement.clientHeight))};if(a(),sl(a),yy("resize",a,{passive:!0}),s){const d=Ey("(orientation: portrait)");c.watch(d,()=>a())}return{width:r,height:l}}const Iy={class:"title"},By={class:"actions"},xy={class:"card-body"},Sy=c.defineComponent({__name:"LeitingDraggableCard",props:{visible:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},title:{type:String,default:"Title"},initialPosition:{type:Object,default:()=>({x:0,y:0})},width:{type:[Number,String],default:300},minWidth:{type:Number,default:200},fullHeight:{type:Boolean,default:!1},align:{type:String,default:""}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=c.inject("leiting-theme",c.ref("dark")),s=e,o=c.computed({get:()=>t.open!==void 0?t.open:t.visible,set:D=>{s("update:visible",D),s("update:open",D)}}),r=c.ref(null),l=c.ref(t.initialPosition?.x||0),a=c.ref(t.initialPosition?.y||0),d=c.ref(t.width),h=c.ref(t.fullHeight?"100%":"600px");c.watch(()=>t.fullHeight,D=>{D?h.value="100%":h.value==="100%"&&(h.value="600px")});const{height:p}=vy();c.watch(p,()=>{t.fullHeight&&(h.value="100%")});const f=c.ref(!1),u=D=>{f.value=!0,D.preventDefault(),D.stopPropagation();const O=D.clientX,I=D.clientY,B=typeof d.value=="number"?d.value:r.value?.offsetWidth||0,g=typeof h.value=="number"?h.value:r.value?.offsetHeight||0,P=F=>{if(!f.value)return;F.preventDefault();const _=F.clientX-O,H=F.clientY-I,L=B+_,w=g+H;L>100&&(d.value=L),w>100&&(h.value=w)},x=()=>{f.value=!1,document.removeEventListener("mousemove",P),document.removeEventListener("mouseup",x)};document.addEventListener("mousemove",P),document.addEventListener("mouseup",x)},m=c.computed(()=>({left:`${l.value}px`,top:`${a.value}px`,width:typeof d.value=="number"?`${d.value}px`:d.value,height:typeof h.value=="number"?`${h.value}px`:h.value,position:"absolute",zIndex:2e3})),E=()=>{c.nextTick(()=>{if(r.value){const D=r.value.offsetParent||document.body,O=D.clientWidth,I=D.clientHeight,B=typeof d.value=="number"?d.value:r.value.offsetWidth||350,g=typeof h.value=="number"?h.value:r.value.offsetHeight||600;l.value+B>O&&(l.value=Math.max(0,O-B-20)),a.value+g>I&&(a.value=Math.max(0,I-g-20)),l.value<0&&(l.value=0),a.value<0&&(a.value=0)}})},A=c.ref(!1),C=D=>{if(D.target.closest(".close-btn")||D.target.closest(".actions"))return;A.value=!0,D.preventDefault(),D.stopPropagation();const O=D.clientX,I=D.clientY,B=l.value,g=a.value,P=F=>{if(!A.value)return;F.preventDefault();const _=F.clientX-O,H=F.clientY-I;l.value=B+_,a.value=g+H},x=()=>{A.value=!1,document.removeEventListener("mousemove",P),document.removeEventListener("mouseup",x),E()};document.addEventListener("mousemove",P),document.addEventListener("mouseup",x)},v=()=>{c.nextTick(()=>{if(t.align&&r.value){const D=r.value.offsetParent||document.body,O=typeof d.value=="number"?d.value:r.value.offsetWidth||350;t.align==="right"?l.value=Math.max(0,D.clientWidth-O-20):t.align==="center"&&(l.value=Math.max(0,(D.clientWidth-O)/2))}E()})};c.onMounted(()=>{t.align?v():E()}),c.watch(o,D=>{D&&(t.align?v():E())});const S=()=>{o.value=!1,s("close")};return(D,O)=>c.withDirectives((c.openBlock(),c.createElementBlock("div",{ref_key:"cardRef",ref:r,class:c.normalizeClass(["draggable-card leiting-scroll",["leiting-theme-"+c.unref(n)]]),style:c.normalizeStyle(m.value)},[c.createElementVNode("div",{ref:"headerRef",class:"card-header",onMousedown:C},[c.createElementVNode("span",Iy,c.toDisplayString(i.title),1),c.createElementVNode("div",By,[c.renderSlot(D.$slots,"header-extra",{},void 0,!0),c.createElementVNode("span",{class:"close-btn",onClick:S},"×")])],544),c.createElementVNode("div",xy,[c.renderSlot(D.$slots,"default",{},void 0,!0)]),c.createElementVNode("div",{class:"resize-handle",onMousedown:u},[...O[0]||(O[0]=[c.createElementVNode("svg",{viewBox:"0 0 10 10",width:"10",height:"10",fill:"currentColor"},[c.createElementVNode("path",{d:"M10 10 L10 2 L2 10 Z"})],-1)])],32)],6)),[[c.vShow,o.value]])}}),Re=(i,e)=>{const t=i.__vccOpts||i;for(const[n,s]of e)t[n]=s;return t},ke=Re(Sy,[["__scopeId","data-v-50bf6126"]]);function Ty(i){const e=c.ref([]),t=c.ref([]),n=c.ref([]),s=c.ref(""),o=c.ref(!0);c.watch(()=>c.unref(i),p=>{if(!p||p.length===0)return;const f=[],u=(A,C)=>{A.forEach(v=>{const S=v.id||v.key||v.$id,D=v.modelId||C;D&&(v.modelId=D),S&&f.push(S),v.children&&v.children.length>0&&u(v.children,D)})};u(p);const m=new Set(n.value);let E=!1;f.forEach(A=>{m.has(A)||(m.add(A),E=!0)}),E&&(n.value=Array.from(m))},{immediate:!0,deep:!0});const r=c.computed(()=>{const p=c.unref(i);if(!p)return[];const f=[],u=(m,E)=>{m.forEach(A=>{const C=A.id||A.key||A.$id,v=A.name||A.title;f.push({key:C,title:v,parentKey:E}),A.children&&A.children.length>0&&u(A.children,C)})};return u(p),f}),l=p=>{e.value=p,o.value=!1},a=p=>{n.value=p},d=p=>{t.value=p},h=p=>r.value.find(u=>u.key===p)?.parentKey;return c.watch(s,p=>{if(!p)return;const u=r.value.filter(E=>E.title&&E.title.toLowerCase().includes(p.toLowerCase())).map(E=>E.parentKey),m=new Set;u.forEach(E=>{let A=E;for(;A;)m.add(A),A=h(A)}),e.value=[...m],o.value=!0}),{expandedKeys:e,selectedKeys:t,checkedKeys:n,searchValue:s,autoExpandParent:o,onExpand:l,onCheck:a,onSelect:d}}const My={class:"search-box"},Dy={key:0},ky={style:{color:"#f50"}},Py={key:1},Fy={key:1,class:"empty-tip"},rn=Re(c.defineComponent({__name:"LeitingTree",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"构件树"},width:{type:[Number,String],default:320},treeData:{type:Array,default:()=>[]},initialPosition:{type:Object,default:()=>({x:0,y:0})},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close","select","check"],setup(i,{emit:e}){const t=me.Input.Search,n=me.Tree,s=i,o=e,r=c.inject("leiting-theme",c.ref("dark")),l=c.inject("leitingMethods"),a=g=>{l?.value?.onSearchComponent&&l.value.onSearchComponent(g)},d=c.computed({get:()=>s.open!==void 0?s.open:s.visible,set:g=>{o("update:visible",g),o("update:open",g)}}),h=c.ref(null),{height:p}=by(h),f=c.computed(()=>p.value||300),u=c.ref({children:"children",title:"name",key:"id"}),{expandedKeys:m,selectedKeys:E,checkedKeys:A,searchValue:C,autoExpandParent:v}=Ty(c.toRef(s,"treeData")),S=g=>{m.value=g,v.value=!1},D=g=>{const P=[],x=F=>{if(!F.children||F.children.length===0){const H=F.element_Id;F.modelId&&H&&P.push({modelId:F.modelId,elementId:H})}else F.children.forEach(x)};return x(g),P},O=(g,P)=>{A.value=g,o("check",g,P);const x=[],F=new Set(g.map(H=>String(H))),_=H=>{for(let L=0;L<H.length;L++){const w=H[L];if(!w.children||w.children.length===0){if(!F.has(String(w.id))){const M=w.element_Id;w.modelId&&M&&x.push({modelId:w.modelId,elementId:M,show:!1})}}else w.children&&_(w.children)}};s.treeData&&_(s.treeData),l?.value?.setComponentVisibility&&l.value.setComponentVisibility(x),l?.value?.onTreeCheck&&l.value.onTreeCheck(g,P)},I=(g,P)=>{if(E.value=g,o("select",g,P),P.selected){const x=D(P.node);x.length>0&&l?.value?.flyToObjects&&l.value.flyToObjects({selectCpts:x})}l?.value?.onTreeSelect&&l.value.onTreeSelect(g,P)},B=()=>{o("update:visible",!1),o("close")};return(g,P)=>(c.openBlock(),c.createBlock(ke,{visible:d.value,"onUpdate:visible":P[1]||(P[1]=x=>d.value=x),title:i.title,"initial-position":i.initialPosition,"full-height":i.fullHeight,onClose:B},{default:c.withCtx(()=>[c.createElementVNode("div",{class:c.normalizeClass(["leiting-tree-container",[`theme-${c.unref(r)}`]])},[c.createElementVNode("div",My,[c.createVNode(c.unref(t),{value:c.unref(C),"onUpdate:value":P[0]||(P[0]=x=>c.isRef(C)?C.value=x:null),placeholder:"搜索构件","allow-clear":"","enter-button":"",onSearch:a},null,8,["value"])]),c.createElementVNode("div",{class:"tree-wrapper",ref_key:"treeWrapperRef",ref:h},[i.treeData&&i.treeData.length?(c.openBlock(),c.createBlock(c.unref(n),{key:0,"tree-data":i.treeData,"field-names":u.value,height:f.value,"expanded-keys":c.unref(m),"auto-expand-parent":c.unref(v),"selected-keys":c.unref(E),"checked-keys":c.unref(A),checkable:"","block-node":"",onExpand:S,onSelect:I,onCheck:O},{title:c.withCtx(({name:x,title:F})=>[(x||F)&&c.unref(C)&&(x||F).toLowerCase().indexOf(c.unref(C).toLowerCase())>-1?(c.openBlock(),c.createElementBlock("span",Dy,[c.createTextVNode(c.toDisplayString((x||F).substr(0,(x||F).toLowerCase().indexOf(c.unref(C).toLowerCase())))+" ",1),c.createElementVNode("span",ky,c.toDisplayString(c.unref(C)),1),c.createTextVNode(" "+c.toDisplayString((x||F).substr((x||F).toLowerCase().indexOf(c.unref(C).toLowerCase())+c.unref(C).length)),1)])):(c.openBlock(),c.createElementBlock("span",Py,c.toDisplayString(x||F),1))]),_:1},8,["tree-data","field-names","height","expanded-keys","auto-expand-parent","selected-keys","checked-keys"])):(c.openBlock(),c.createElementBlock("div",Fy,"暂无数据"))],512)],2)]),_:1},8,["visible","title","initial-position","full-height"]))}}),[["__scopeId","data-v-8a468895"]]),Ry="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",rl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAERSURBVDhPvZTrEYIwEISTCrQD6EA7gA60AylBK1Aq0A7ECrQDoQPsADrACuLuTMJkIiHxjzezgyR7H3d5KJVSqRAigcaQUjYYX2JgZY/P/O4lEgYYFo7pgPcc2kSCBoIUzDeo0klPPEsNYlX7AKzA/M6ASrRzYoIGG5DAOCvzBvzMOxqQazSgLLI1QdAW5jWpUAPV0AVKIc7FRCuNy7RkWozJtj1BED7ANbpDXHhffFXUwUnZwRYp7qw7Rx8/lLkV9R4QD2w1A8pjW3sA4h5au+pXEBS76P8D6Ut9/nXXaiRQdnBXqBfEC+4GdzSxW5v6F7CTeHnbCVCBsWIE+RYVrdF4DSz6OwgiADDexbmT3X0A4fSDfDjUugcAAAAASUVORK5CYII=",Oy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAFESURBVDhPlZMNEcIwDIVXBQwFgAJAAcMBDgAFIGE4wAHgABSwOdgcIAEUjPd6aS/rfhi7y12bJl9f0sxEf3xVVV0RPoetjTFvnWqGcgSylfgihA0CKcgJgBfsAqMiKiM0+gkKlCyZCN8uhPWCFOSBxARWORU4W2CdeV9XjxSEJcwkjokTqBpzjxjCn7CyVRECzjg8wHLYCmabK7CplBcLhMr2DZCqP0dCovYZ9hYGXx1izLUGUkkfxI/sTQiCf4N1zLWAWCKV2nP6PEhB2Ngd7B4GC4SJnCcP8SAFoc/Ph/TqjVvTPogFKUiJ/VGU+GdmUAA5ObA7cyC+iPt/MjUfKRL4emyuK+cGH8tufFRUHywZ+RYlnRDdIwfzLzVUibtQv1oNhoAExtfpVdIAiQIOWiY9o2sQxJemOydTS1jR1di2Zn8B8f27apou9kMAAAAASUVORK5CYII=",Ly="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAHDSURBVDhPlZOxL0NRFIe9ECubhehoIIjJ1HYwCkIiJpUQEkN1YZBobU0kFKNI3iTGYrDRv0BIhLXCYpCwiO35fs25zWva98JNvpz37j33d8+551yvLWIEQXDG0izMe55XjvJz816MUJG1LVuvYJcQrEb5xwkV2JSHGfAhgBJiu63E4oSUzpRtusa+wBooKkWnKOujQYh7SbCShQx0m9cpds4iOseOw7BFmUPwU341IQT2MaOQgi9QND+wiqNnBxT4X7SIbrAqhNI9wiUvJ+W8A99wDEWdwrw25iVkkenAEb5LkIQPuIMJWJGQoriFd+iBCkhc8zUhfJSm7mva5l3aadubDgtpMgGKpB/eoBfuQZFoPNhBj9gTaC3kKkEEGXPswF7Y5rLro1AW8UI6GmelmAzfkUWlNaWt6/iT0DOOA5bqoSuzHfIvofATqSJQb8KoiJbtPi6x2dA9FPjXE1F/uZKrv3IwCFcNqVmoPlal7QJ9q/wZCbk7Ioo9/tehE9q1r0nIxNQbG4YEXdkVjQ5J2OZXbB88gVrgQIJNj9aaT4LboPK7J6O0Ktb1KYtc/aYxGff6h3AYY6Nvzk2GQ1WQTVj4BST70jYaqceXAAAAAElFTkSuQmCC",Ny="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADhSURBVHgBvVOBEYIwDEw9B2ADO4IjuIEjwAa6Aa7ABMAEuIIjOIFsUDao37vgxVZbBI+/+0tI0+fJBaIIrLUFaMAHmNNcsMAIE+vdJLQykQ+0wFHBrsyiT/sL2I1DDTac/+4Klzobov7WHxt29qGmaYaQnlhLCmUTa2l4C2ljvamFlEvY0xpCW/kA924GblfGWciZaJyXQvSmlOoDITSdXQBbcA8eKfy/nHDFeY470FIX8tzUIu84FmLWuTzz7yhRLPm54dKJ4+A5uoJ3HgHBUfUmxGIa4QDuKA4n3kLk9ZInw0qu5b1R1aYAAAAASUVORK5CYII=",Uy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADFSURBVDhPxVPBDYMwDIwnKJu0G9ANYJMyQrsBbNIRGAE2gEnSO6mpIMJxkBC1lEds52zfOeK9b51zV5wte4lIr8RWbgGQh2fGmaIHJe4EetKPtDpRcA5AvwcB7FtgCcTOH0p3YzaQNd75QBiVXJG3LRtCRyQ6Jvsekd3gTsJVoDcihZLQQjXGTRMzIzPhOCCQyNYvSuEue7Qdm02yK0u1nM2m/FQyKb8JZHH+l81Ofdpdm82tvikjThyNlbSEBvIPFj+MfwA76qSYUG3g9QAAAABJRU5ErkJggg==",_y="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEcSURBVDhPrZSNDYIwEIXpBOIGjMAIOIE4AbgBGwAbOIJu4Aa4gW4gI+gE9b3mjjSmibSR5ALX3H33W4y1Ns+yrIe0EH7HPC8YnyGjAegkEB5cYyiwrdWXIEc1xnSREGcuiTQEWeg7gG4+CMcl9ALnLkvogwScv+wq6FMQJJCJDgBtBcSAI3QClwe2YZAHcY2Ho4kGAVLA6U5/CEvdp4KYhesFhBPpCZIAz6jStHhproJcHyAHbb5nF+6RZ8CsGslIQaHp/gSxRzlApU4GugPxNuDN/eNarAJxapUPgm8rQ9C1SAI9AOGiHhGApSdnRN8FshbEiLwiLI1rMUM6zSQ0tX9c2lp/Iw0iMIPU38iFIN1mTmOjKa98vyWB4QM5XQnvsbFsyAAAAABJRU5ErkJggg==",Qy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAGPSURBVDhPrZT9UQIxEMUvFSgViBUoFQgVABV4VqBW4FmBUIFQgZRwVqBU4HUAVHC+X2aXycQw/sPOvLncZvdlv5JQFaTv+1upp8IyhLDHRLpLfe6FrXRt7hZShYyH+n8RauGAv/AkQNYIHICshFcRdu6fE/kGRN/mQGTIpzAzMoh6EV2fIsJ5IwNOj2IpVZ6i6difSecRVnlELZHIgHROisgXRCa78Z+IrMBf2pjLYJNENGSd1kO2pPghjKQniyqY8lFr2NfaqC18wn7nZCMlWg7xLq70TxfRLyHqtABN2lbp40mSSCzBcSebif1TPyKjDBcQ0eJJRkIUpHkMPUlnkBU+pnlWItL6ERgw8o1iqRHtgzAUGNRD2qmkvgMvNnneUQcZ4ggR6VGXG+OOA1koNvrFcY7+af++VJe0hucfyKQu+RWJc+SDZ3aNvlPpRl7T0qXdafNZYPDehLEZt/rOBR9U8QSaEKX0jHAaE4tshVrgLeJ+Xdl6rS8D3BWJXKnCEwWXEuco9grQ3bb0sP0Cn8/nPm/SMRQAAAAASUVORK5CYII=",Gy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACDSURBVHgB1ZFhDYAgEIWfzgBGIIINpIEViGAkG2gEbWADjWADfMw/iDgUfji/7e3gxt3uHsDXZFrrlrFBHJNpsPAgEEmORArn3lFroEZQCjcTbAhzepPsgbuCgn8FBWvsUAMfFR5OIPGS5G80JkrG2sopHKbO1BCoHy8ZNhRUT5X4BTu6qyNSwwCiMAAAAABJRU5ErkJggg==",Hy={class:"menu-container"},Yy=["onClick","title"],Vy={class:"menu-icon"},zy=["src","alt"],Wy={key:3,style:{"font-size":"12px"}},jy={key:0,class:"sub-menu"},Ky=["onClick"],Ai=c.defineComponent({__name:"LeitingMenu",props:{visible:{type:Boolean,default:!0},activeIds:{type:Array,default:()=>[]},is2d:{type:Boolean,default:!1},customItems:{type:Array,default:()=>[]}},emits:["action"],setup(i,{emit:e}){const t=i,n=c.inject("leiting-theme",c.ref("dark")),s=c.inject("leiting-menu-size",c.ref("medium")),o=c.inject("leitingMethods",c.ref({})),r=c.computed(()=>n.value||n),l=c.computed(()=>s.value||s),a=c.ref([{ID:"home",title:"主视角",src:Ry,key:"homeView"},{ID:"tree",title:"目录树",src:rl,key:"componentTree"},{ID:"cadLayer",title:"图层",src:rl,key:"cadLayer"},{ID:"measure",title:"量算",src:Oy,key:"measurement"},{ID:"section",title:"剖切",src:Ly,key:"section"},{ID:"roam",title:"人物漫游",src:Ny,key:"roam"},{ID:"info",title:"构件信息",src:Uy,key:"componentInfo"},{ID:"cadPosition",title:"调整位置",src:_y,key:"cadPosition"},{ID:"annotation",title:"标注",src:Gy,key:"annotation"},{ID:"setting",title:"设置",src:Qy,key:"setting"}]),d=c.ref([]),h=c.ref([...t.activeIds]);c.watch(()=>t.activeIds,D=>{h.value=[...D]},{deep:!0});const p=c.computed(()=>t.visible);o.value&&o.value.menuEvents&&(o.value.menuEvents.on("setMenuListFilter",D=>{d.value=D}),o.value.menuEvents.on("setMenuActive",(D,O)=>{O?h.value.includes(D)||h.value.push(D):h.value=h.value.filter(I=>I!==D)}));const f=c.computed(()=>{let D=a.value;if(t.is2d){const O=["homeView","measurement","cadLayer","annotation"];D=D.filter(I=>I.key&&O.includes(I.key))}else{const O=["cadLayer","cadPosition","annotation"];D=D.filter(I=>!I.key||!O.includes(I.key))}if(d.value.length>0&&(D=D.filter(O=>!O.key||!d.value.includes(O.key))),t.customItems&&t.customItems.length>0){const O=t.customItems.map(I=>({...I,key:I.ID,src:I.src||I.icon}));return[...D,...O]}return D}),u=e,m=D=>{const O=["homeView"];if(D.key&&O.includes(D.key))h.value.includes(D.ID)||(h.value.push(D.ID),setTimeout(()=>{const B=h.value.indexOf(D.ID);B>-1&&h.value.splice(B,1)},1e3));else{const B=h.value.indexOf(D.ID);B>-1?h.value.splice(B,1):h.value.push(D.ID)}const I=h.value.includes(D.ID);D.func&&D.func(D),D.key&&u("action",D.key,I)},E=D=>{d.value=D},A=D=>{console.log("LeitingMenu received showMenu event:",D)},C=(D,O)=>{const I=f.value.find(B=>B.ID===D||B.key===D);if(I){const B=h.value.indexOf(I.ID);O&&B===-1?h.value.push(I.ID):!O&&B>-1&&h.value.splice(B,1)}};let v=null;const S=()=>{o.value?.menuEvents&&(v&&(v.off("setMenuListFilter",E),v.off("showMenu",A),v.off("setMenuActive",C)),v=o.value.menuEvents,v.on("setMenuListFilter",E),v.on("showMenu",A),v.on("setMenuActive",C))};return c.onMounted(()=>{S()}),c.onUnmounted(()=>{v&&(v.off("setMenuListFilter",E),v.off("showMenu",A),v.off("setMenuActive",C))}),c.watch(o,()=>{S()},{deep:!0}),(D,O)=>c.withDirectives((c.openBlock(),c.createElementBlock("div",{class:c.normalizeClass(["leiting-menu-wrapper",["leiting-theme-"+r.value,"size-"+l.value]])},[c.createElementVNode("div",Hy,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(f.value,I=>(c.openBlock(),c.createElementBlock("div",{key:I.ID,class:c.normalizeClass(["menu-item",{active:h.value.includes(I.ID)}]),onClick:B=>m(I),title:I.title},[c.createElementVNode("div",Vy,[I.src?(c.openBlock(),c.createElementBlock("img",{key:0,src:I.src,alt:I.title},null,8,zy)):typeof I.icon=="object"?(c.openBlock(),c.createBlock(c.resolveDynamicComponent(I.icon),{key:1})):typeof I.icon=="string"?(c.openBlock(),c.createElementBlock("i",{key:2,class:c.normalizeClass(["iconfont",`icon-${I.icon}`])},null,2)):(c.openBlock(),c.createElementBlock("span",Wy,c.toDisplayString(I.title.substring(0,2)),1))]),I.children&&I.children.length>0?(c.openBlock(),c.createElementBlock("div",jy,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(I.children,B=>(c.openBlock(),c.createElementBlock("div",{key:B.ID,class:c.normalizeClass(["sub-menu-item",{active:h.value.includes(B.ID)}]),onClick:c.withModifiers(g=>m(B),["stop"])},c.toDisplayString(B.title),11,Ky))),128))])):c.createCommentVNode("",!0)],10,Yy))),128))])],2)),[[c.vShow,p.value]])}}),$y={class:"leiting-section-content"},Xy={class:"section-form-item"},qy={class:"radio-group"},Jy={class:"section-form-item"},Zy={class:"switch-container"},e0={class:"switch"},t0={class:"status-text"},i0={class:"section-form-item slider-item"},n0={class:"slider-wrapper"},s0={class:"section-form-item slider-item"},o0={class:"slider-wrapper"},r0={class:"section-form-item slider-item"},a0={class:"slider-wrapper"},l0={class:"section-form-item table-item"},c0={class:"model-table-container"},d0={class:"model-table"},h0={width:"40"},u0=["checked"],f0=["onClick"],p0=["value"],g0={class:"model-name"},yi=Re(c.defineComponent({__name:"LeitingSection",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"剖切控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods"),o=c.computed({get:()=>t.open!==void 0?t.open:t.visible,set:L=>{n("update:visible",L),n("update:open",L)}}),r=c.ref("Box"),l=c.ref(!1),a=c.ref([]),d=c.ref([]),h=c.computed(()=>d.value.length===0?!1:d.value.every(L=>a.value.includes(L.modelId))),p=L=>{L.target.checked?a.value=d.value.map(y=>y.modelId):a.value=[],P()},f=c.ref([-10,10]),u=c.ref([-10,10]),m=c.ref([-10,10]),E=c.ref([-100,100]),A=c.ref([-100,100]),C=c.ref([-100,100]);let v=!1;const S=L=>{v=!0;const{targetZPlus:w,targetZMinus:y,targetXPlus:b,targetXMinus:M,targetYPlus:k,targetYMinus:Q}=L;m.value=[-y,w],f.value=[-M,b],u.value=[-Q,k],setTimeout(()=>{v=!1},100)},D=()=>{v||a.value.length===0||!s?.value?.updateSectionRange||s.value.updateSectionRange({targetZPlus:m.value[1],targetZMinus:-m.value[0],targetXPlus:f.value[1],targetXMinus:-f.value[0],targetYPlus:u.value[1],targetYMinus:-u.value[0]})},O=()=>{s?.value?.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(l.value)},I=L=>{if(!s?.value?.getMapTileset||!s?.value?.openSection)return;const y=s.value.getMapTileset()[L];if(y&&y.leiting?.box){const{min:b,max:M}=y.leiting.box,k=(M.x-b.x)/2,Q=(M.y-b.y)/2,R=(M.z-b.z)/2;a.value.length<=1&&(E.value=[-k*2,k*2],A.value=[-Q*2,Q*2],C.value=[-R*2,R*2],f.value=[-k,k],u.value=[-Q,Q],m.value=[-R,R],s.value.updateSectionRange&&s.value.updateSectionRange({targetZPlus:R,targetZMinus:R,targetXPlus:k,targetXMinus:k,targetYPlus:Q,targetYMinus:Q})),s.value.openSection(L,{moveCallBack:S}),s.value.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(l.value)}},B=L=>{const w=a.value.indexOf(L);w>-1?a.value.splice(w,1):a.value.push(L),P()};let g=[];const P=()=>{const L=a.value.filter(y=>!g.includes(y)),w=g.filter(y=>!a.value.includes(y));L.forEach(y=>I(y)),w.forEach(y=>{s?.value?.closeSection&&s.value.closeSection(y)}),g=[...a.value]},x=()=>{},F=()=>{o.value=!1,n("close")},_=()=>{l.value=!1,a.value=[],g=[],f.value=[-10,10],u.value=[-10,10],m.value=[-10,10],E.value=[-100,100],A.value=[-100,100],C.value=[-100,100]};c.watch(()=>t.visible,L=>{L?H():(s?.value?.closeSection&&s.value.closeSection(),_())});const H=()=>{s?.value&&typeof s.value.getModelList=="function"&&(d.value=s.value.getModelList()||[],d.value.length>0&&a.value.length===0&&(a.value=[d.value[0].modelId],g=[...a.value]),t.visible&&a.value.length>0&&(l.value=!0,a.value.forEach(L=>I(L))))};return c.watch(()=>s?.value,()=>{H()},{immediate:!0,deep:!0}),c.onMounted(()=>{H()}),(L,w)=>(c.openBlock(),c.createBlock(ke,{visible:o.value,title:"剖切分析","full-height":i.fullHeight,"onUpdate:visible":F},{default:c.withCtx(()=>[c.createElementVNode("div",$y,[c.createElementVNode("div",Xy,[w[8]||(w[8]=c.createElementVNode("span",{class:"label"},"模式",-1)),c.createElementVNode("div",qy,[c.createElementVNode("label",{class:c.normalizeClass(["radio-item",{active:r.value==="Box"}])},[c.withDirectives(c.createElementVNode("input",{type:"radio",value:"Box","onUpdate:modelValue":w[0]||(w[0]=y=>r.value=y),onChange:x},null,544),[[c.vModelRadio,r.value]]),w[7]||(w[7]=c.createTextVNode(" 剖切盒 ",-1))],2)])]),c.createElementVNode("div",Jy,[w[10]||(w[10]=c.createElementVNode("span",{class:"label"},"显示",-1)),c.createElementVNode("div",Zy,[c.createElementVNode("label",e0,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":w[1]||(w[1]=y=>l.value=y),onChange:O},null,544),[[c.vModelCheckbox,l.value]]),w[9]||(w[9]=c.createElementVNode("span",{class:"slider round"},null,-1))]),c.createElementVNode("span",t0,c.toDisplayString(l.value?"显示":"隐藏"),1)])]),c.createElementVNode("div",i0,[w[11]||(w[11]=c.createElementVNode("span",{class:"label"},"X 轴",-1)),c.createElementVNode("div",n0,[c.createVNode(c.unref(me.Slider),{value:f.value,"onUpdate:value":w[2]||(w[2]=y=>f.value=y),range:"",min:E.value[0],max:E.value[1],step:.1,onChange:D},null,8,["value","min","max"])])]),c.createElementVNode("div",s0,[w[12]||(w[12]=c.createElementVNode("span",{class:"label"},"Y 轴",-1)),c.createElementVNode("div",o0,[c.createVNode(c.unref(me.Slider),{value:u.value,"onUpdate:value":w[3]||(w[3]=y=>u.value=y),range:"",min:A.value[0],max:A.value[1],step:.1,onChange:D},null,8,["value","min","max"])])]),c.createElementVNode("div",r0,[w[13]||(w[13]=c.createElementVNode("span",{class:"label"},"Z 轴",-1)),c.createElementVNode("div",a0,[c.createVNode(c.unref(me.Slider),{value:m.value,"onUpdate:value":w[4]||(w[4]=y=>m.value=y),range:"",min:C.value[0],max:C.value[1],step:.1,onChange:D},null,8,["value","min","max"])])]),c.createElementVNode("div",l0,[w[15]||(w[15]=c.createElementVNode("span",{class:"label"},"模型",-1)),c.createElementVNode("div",c0,[c.createElementVNode("table",d0,[c.createElementVNode("thead",null,[c.createElementVNode("tr",null,[c.createElementVNode("th",h0,[c.createElementVNode("input",{type:"checkbox",checked:h.value,onChange:p},null,40,u0)]),w[14]||(w[14]=c.createElementVNode("th",null,"名称",-1))])]),c.createElementVNode("tbody",null,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(d.value,y=>(c.openBlock(),c.createElementBlock("tr",{key:y.modelId,class:c.normalizeClass({selected:a.value.includes(y.modelId)}),onClick:b=>B(y.modelId)},[c.createElementVNode("td",null,[c.withDirectives(c.createElementVNode("input",{type:"checkbox",value:y.modelId,"onUpdate:modelValue":w[5]||(w[5]=b=>a.value=b),onClick:w[6]||(w[6]=c.withModifiers(()=>{},["stop"])),onChange:P},null,40,p0),[[c.vModelCheckbox,a.value]])]),c.createElementVNode("td",g0,c.toDisplayString(y.modelName),1)],10,f0))),128))])])])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-ee4d9a12"]]),m0={class:"leiting-player-content"},A0={class:"player-form-item"},y0={class:"switch-container"},C0={class:"switch"},E0={class:"status-text"},w0={class:"player-form-item"},b0={class:"switch-container"},v0={class:"switch"},I0={class:"status-text"},B0={class:"player-form-item"},x0={class:"switch-container"},S0={class:"switch"},T0={class:"status-text"},M0={class:"player-form-item slider-item"},D0={class:"slider-wrapper"},k0={class:"value-text"},P0={class:"instructions"},F0={class:"key-map"},R0={class:"key-row"},O0={class:"key-row"},L0={class:"key-row"},N0={class:"key-row"},U0={class:"key-row"},_0={class:"key-row"},Ci=Re(c.defineComponent({__name:"LeitingPlayer",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"漫游控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods"),o=c.ref(!1),r=c.ref(!1),l=c.ref(!0),a=c.ref(5),d=c.computed({get:()=>t.open!==void 0?t.open:t.visible,set:I=>{n("update:visible",I),n("update:open",I)}}),h=c.ref(null),p=c.ref(null),f=c.ref(null),u=c.ref(null),m=c.ref(null),E=c.ref(null),A=()=>{o.value?v():S()},C=()=>{s?.value?.setPlayerParams&&s.value.setPlayerParams({gravityTest:r.value,collisionTest:l.value})},v=async()=>{s?.value?.openPlayer&&(await s.value.openPlayer(),s.value.setPlayerSpeed&&s.value.setPlayerSpeed(a.value),C(),s.value.bindPlayerUiKeys&&(await c.nextTick(),s.value.bindPlayerUiKeys({moveFront:h.value,moveBack:p.value,moveLeft:f.value,moveRight:u.value,moveUp:m.value,moveDown:E.value})))},S=()=>{s?.value?.closePlayer&&s.value.closePlayer()},D=()=>{s?.value?.setPlayerSpeed&&s.value.setPlayerSpeed(a.value)},O=()=>{d.value=!1,n("close")};return c.watch(()=>t.visible,I=>{I?(o.value=!0,s?.value?v():setTimeout(()=>{s?.value&&v()},100)):o.value&&(o.value=!1,S())},{immediate:!0}),(I,B)=>(c.openBlock(),c.createBlock(ke,{title:i.title,visible:d.value,"full-height":i.fullHeight,"onUpdate:visible":O},{default:c.withCtx(()=>[c.createElementVNode("div",m0,[c.createElementVNode("div",A0,[B[5]||(B[5]=c.createElementVNode("span",{class:"label"},"启用",-1)),c.createElementVNode("div",y0,[c.createElementVNode("label",C0,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[0]||(B[0]=g=>o.value=g),onChange:A},null,544),[[c.vModelCheckbox,o.value]]),B[4]||(B[4]=c.createElementVNode("span",{class:"slider round"},null,-1))]),c.createElementVNode("span",E0,c.toDisplayString(o.value?"开启":"关闭"),1)])]),c.createElementVNode("div",w0,[B[7]||(B[7]=c.createElementVNode("span",{class:"label"},"重力",-1)),c.createElementVNode("div",b0,[c.createElementVNode("label",v0,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[1]||(B[1]=g=>r.value=g),onChange:C},null,544),[[c.vModelCheckbox,r.value]]),B[6]||(B[6]=c.createElementVNode("span",{class:"slider round"},null,-1))]),c.createElementVNode("span",I0,c.toDisplayString(r.value?"开启":"关闭"),1)])]),c.createElementVNode("div",B0,[B[9]||(B[9]=c.createElementVNode("span",{class:"label"},"碰撞",-1)),c.createElementVNode("div",x0,[c.createElementVNode("label",S0,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[2]||(B[2]=g=>l.value=g),onChange:C},null,544),[[c.vModelCheckbox,l.value]]),B[8]||(B[8]=c.createElementVNode("span",{class:"slider round"},null,-1))]),c.createElementVNode("span",T0,c.toDisplayString(l.value?"开启":"关闭"),1)])]),c.createElementVNode("div",M0,[B[10]||(B[10]=c.createElementVNode("span",{class:"label"},"速度",-1)),c.createElementVNode("div",D0,[c.createVNode(c.unref(me.Slider),{value:a.value,"onUpdate:value":B[3]||(B[3]=g=>a.value=g),min:1,max:10,step:1,onChange:D},null,8,["value"])]),c.createElementVNode("span",k0,c.toDisplayString(a.value),1)]),B[19]||(B[19]=c.createElementVNode("div",{class:"divider"},null,-1)),c.createElementVNode("div",P0,[B[18]||(B[18]=c.createElementVNode("div",{class:"instruction-title"},"操作说明",-1)),c.createElementVNode("div",F0,[c.createElementVNode("div",R0,[c.createElementVNode("span",{class:"key",ref_key:"btnFront",ref:h},"W",512),B[11]||(B[11]=c.createTextVNode(" 前进 ",-1))]),c.createElementVNode("div",O0,[c.createElementVNode("span",{class:"key",ref_key:"btnBack",ref:p},"S",512),B[12]||(B[12]=c.createTextVNode(" 后退 ",-1))]),c.createElementVNode("div",L0,[c.createElementVNode("span",{class:"key",ref_key:"btnLeft",ref:f},"A",512),B[13]||(B[13]=c.createTextVNode(" 左移 ",-1))]),c.createElementVNode("div",N0,[c.createElementVNode("span",{class:"key",ref_key:"btnRight",ref:u},"D",512),B[14]||(B[14]=c.createTextVNode(" 右移 ",-1))]),c.createElementVNode("div",U0,[c.createElementVNode("span",{class:"key",ref_key:"btnUp",ref:m},"Q",512),B[15]||(B[15]=c.createTextVNode(" 上升 ",-1))]),c.createElementVNode("div",_0,[c.createElementVNode("span",{class:"key",ref_key:"btnDown",ref:E},"E",512),B[16]||(B[16]=c.createTextVNode(" 下降 ",-1))]),B[17]||(B[17]=c.createElementVNode("div",{class:"key-row"},[c.createElementVNode("span",{class:"mouse-icon"},"🖱️"),c.createTextVNode(" 按住左键拖拽旋转视角 ")],-1))])])])]),_:1},8,["title","visible","full-height"]))}}),[["__scopeId","data-v-ff3f266e"]]),Q0={class:"info-content"},G0={key:0,class:"component-title"},Ei=Re(c.defineComponent({__name:"LeitingInfo",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods"),o=c.ref([]),r=c.ref(!1),l=c.ref([]),a=c.ref([]),d=c.ref(0),h=c.computed({get:()=>t.open!==void 0?t.open:t.visible,set:C=>{n("update:visible",C),n("update:open",C)}}),p=()=>{h.value=!1},f=C=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[C]||C,u=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],m=async C=>{const v=++d.value;if(a.value=C,!C||C.length===0){o.value=[];return}if(!h.value)return;let S=C;C.length>10&&(pe.warning(`选中构件数量过多(${C.length}个),仅显示前10个`),S=C.slice(0,10));const D=s?.value;let O=D?.getMapTileset?D.getMapTileset():{};r.value=!0;const I=[],B={};if(S.forEach(x=>{const _=O[x.modelId]?.leiting?.model?.dbName;_&&x.elementId&&I.push({dbName:_,elementId:x.elementId,modelId:x.modelId})}),I.length>0){try{const x=I.map(_=>({dbName:_.dbName,elementId:_.elementId})),F=await sp(x);F&&Array.isArray(F)&&F.forEach(_=>{const H=I.find(L=>L.dbName===_.dbName&&L.elementId===_.elementId);if(H){const L=`${H.modelId}_${_.elementId}`;B[L]=_}})}catch(x){console.warn("API fetch component details failed, falling back to local data",x)}console.log("123")}const g=new Set;if(S.forEach(x=>{const F=O[x.modelId],_=`${x.modelId}_${x.elementId}`;B[_]||F&&F.leiting&&!F.leiting?.node?.nodeExtras&&F.leiting.model?.nodeUrl&&g.add(x.modelId)}),g.size>0&&D?.loadNodeDetailsForModel)try{const x=Array.from(g).map(F=>D.loadNodeDetailsForModel(F));await Promise.all(x)}catch(x){console.error("Failed to load node details",x)}if(v!==d.value)return;O=D?.getMapTileset?D.getMapTileset():{};const P=[];S.forEach((x,F)=>{const H=O[x.modelId]?.leiting||{},L=B[`${x.modelId}_${x.elementId}`];let w={modelName:H.model?.modelId||x.modelId};w.elementID||(w.elementID=x.elementId);let y=null;if(L)y=L;else{const k=H.node?.nodeExtras?.element||H.node?.nodeExtras;if(k){const Q=w.elementID;k[Q]&&(y=k[Q])}}y&&y.box3&&(w.length=`${y.box3.length?.toFixed(2)||0}米`,w.width=`${y.box3.width?.toFixed(2)||0}米`,w.height=`${y.box3.height?.toFixed(2)||0}米`);const b=[];y&&(y.name&&(w.elementName=y.name),y.categoryName&&(w.categoryName=y.categoryName),y.familySymbolName&&(w.familySymbolName=y.familySymbolName),y.levelName&&(w.levelName=y.levelName));const M={};if(u.forEach(k=>{w[k]!==void 0&&(M[k]=w[k])}),b.push({name:"基础信息",params:M}),y){const k=Array.isArray(y)?y:Array.isArray(y?.parameters)?y.parameters:null;if(k){if(k.flat().forEach(R=>{if(R&&R.GroupName&&Array.isArray(R.Parameters)){const T={};R.Parameters.forEach(U=>{U.name&&(T[U.name]=U.value??"")}),Object.keys(T).length>0&&b.push({name:R.GroupName,params:T})}}),!Array.isArray(y)){const{parameters:R,...T}=y,U={};Object.keys(T).forEach(V=>{!u.includes(V)&&V!=="uniqueId"&&typeof T[V]!="object"&&(U[V]=T[V])}),Object.keys(U).length>0&&b.push({name:"其他属性",params:U})}}else{let Q=!1;if(Object.keys(y).forEach(R=>{y[R]&&typeof y[R]=="object"&&!Array.isArray(y[R])&&(Q=!0,b.push({name:R,params:y[R]}))}),!Q){const R={};Object.keys(y).forEach(T=>{if(!u.includes(T)&&T!=="batchId"){const U=y[T];typeof U=="string"&&U.length>500?R[T]=U.substring(0,500)+"...":R[T]=U}}),Object.keys(R).length>0&&b.push({name:"属性",params:R})}}}P.push({id:F,title:`${w.modelName}${w.elementName?` - ${w.elementName}`:""}`,groups:b})}),o.value=P,v===d.value&&(r.value=!1),P.length>0?l.value=[`${P[0].id}-基础信息`]:l.value=[]};let E=!1;const A=()=>{if(E)return;const C=s?.value;C&&C.selectionChange&&(C.selectionChange(m),E=!0)};return c.watch(()=>s?.value,()=>{A()},{deep:!0,immediate:!0}),c.watch(h,C=>{C&&a.value.length>0&&m(a.value)}),c.onMounted(()=>{A()}),(C,v)=>(c.openBlock(),c.createBlock(ke,{visible:h.value,title:"构件详情",width:350,align:"right","initial-position":{x:0,y:0},"full-height":i.fullHeight,onClose:p,"onUpdate:visible":v[1]||(v[1]=S=>h.value=S),class:"base-info-card"},{default:c.withCtx(()=>[c.createElementVNode("div",Q0,[c.createVNode(c.unref(me.Spin),{spinning:r.value},{default:c.withCtx(()=>[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(o.value,S=>(c.openBlock(),c.createElementBlock("div",{key:S.id,class:"component-block"},[o.value.length>1?(c.openBlock(),c.createElementBlock("div",G0,c.toDisplayString(S.title),1)):c.createCommentVNode("",!0),c.createVNode(c.unref(me.Collapse),{activeKey:l.value,"onUpdate:activeKey":v[0]||(v[0]=D=>l.value=D),ghost:"","expand-icon-position":"end"},{default:c.withCtx(()=>[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(S.groups,D=>(c.openBlock(),c.createBlock(c.unref(me.CollapsePanel),{key:`${S.id}-${D.name}`,header:D.name},{default:c.withCtx(()=>[c.createVNode(c.unref(me.Descriptions),{size:"small",bordered:"",column:1,labelStyle:{width:"100px",background:"rgba(255,255,255,0.05)",color:"#aaa"},contentStyle:{color:"#fff"}},{default:c.withCtx(()=>[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(D.params,(O,I)=>(c.openBlock(),c.createBlock(c.unref(me.DescriptionsItem),{key:I,label:f(String(I))},{default:c.withCtx(()=>[c.createTextVNode(c.toDisplayString(O),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-cd881bde"]]);class al{viewer;Cesium;pickHandler=null;bimEntityId="";mapEntityId="";constructor(e,t){this.viewer=e,this.Cesium=t}removeMarker(e){if(!this.viewer)return;const t=e==="BIM"?this.bimEntityId:this.mapEntityId;t&&(this.viewer.entities.removeById(t),e==="BIM"?this.bimEntityId="":this.mapEntityId="")}clearMarkers(){this.removeMarker("BIM"),this.removeMarker("MAP")}addMarker(e,t){if(!this.viewer||!this.Cesium)return;this.removeMarker(e);const n=`adjust-marker-${e}-${Date.now()}`;e==="BIM"?this.bimEntityId=n:this.mapEntityId=n,this.viewer.entities.add({id:n,position:this.Cesium.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),point:{pixelSize:10,color:e==="BIM"?this.Cesium.Color.RED:this.Cesium.Color.ORANGE,outlineColor:this.Cesium.Color.WHITE,outlineWidth:2,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:{text:`${e==="BIM"?"BIM":"地图"}标记点`,font:"14pt sans-serif",style:this.Cesium.LabelStyle.FILL_AND_OUTLINE,outlineWidth:2,verticalOrigin:this.Cesium.VerticalOrigin.BOTTOM,pixelOffset:new this.Cesium.Cartesian2(0,-10),fillColor:this.Cesium.Color.WHITE,outlineColor:this.Cesium.Color.BLACK,backgroundColor:new this.Cesium.Color(.1,.1,.1,.8),showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY}})}registerPickHandler(e){this.destroyPickHandler(),!(!this.Cesium||!this.viewer)&&(this.pickHandler=new this.Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas),this.pickHandler.setInputAction(t=>{let n;try{n=this.viewer.scene.pickPosition(t.position)}catch(s){console.warn("pickPosition failed:",s)}if(!n){const s=this.viewer.camera.getPickRay(t.position);n=this.viewer.scene.globe.pick(s,this.viewer.scene)}if(n||(n=this.viewer.camera.pickEllipsoid(t.position,this.viewer.scene.globe.ellipsoid)),n){const s=this.Cesium.Cartographic.fromCartesian(n),o=this.Cesium.Math.toDegrees(s.longitude),r=this.Cesium.Math.toDegrees(s.latitude),l=s.height;e({longitude:o,latitude:r,height:l})}},this.Cesium.ScreenSpaceEventType.LEFT_CLICK,this.Cesium.KeyboardEventModifier.SHIFT))}destroyPickHandler(){this.pickHandler&&(this.pickHandler.destroy(),this.pickHandler=null)}calculateOffset(e,t){return{dLon:t.longitude-e.longitude,dLat:t.latitude-e.latitude,dHeight:t.height-e.height}}}const H0={class:"adjust-panel"},Y0={class:"control-panel"},V0={class:"form-item"},z0={class:"radio-group"},W0={class:"form-item"},j0={class:"radio-group"},K0={class:"form-item"},$0={class:"value"},X0={class:"param-row"},q0={class:"param-row"},J0={class:"param-row"},Z0={class:"param-row"},eC={class:"param-row"},tC={class:"param-row"},iC={class:"param-row"},nC={class:"button-grid"},sC={key:1,class:"pick-mode-ui"},oC={class:"form-item",style:{display:"block","margin-bottom":"15px"}},rC={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},aC=["checked"],lC={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},cC={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},dC={class:"form-item",style:{display:"block","margin-bottom":"15px"}},hC={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},uC=["checked"],fC={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},pC={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},gC={class:"list-panel"},mC={class:"list-header"},AC={class:"col-check"},yC=["checked"],CC={class:"list-body"},EC={class:"col-check"},wC=["onUpdate:modelValue"],bC={class:"col-index"},vC=["title"],IC={class:"col-main"},BC=["checked","onChange"],wi=Re(c.defineComponent({__name:"LeitingPosition",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close","save"],setup(i,{expose:e,emit:t}){const n=i,s=t,o=c.computed({get:()=>n.open!==void 0?n.open:n.visible,set:R=>{s("update:visible",R),s("update:open",R)}}),r=c.inject("leitingMethods"),l=c.ref("BIM"),a=c.ref("param"),d=c.ref(""),h=c.ref([]),p=c.ref("BIM"),f=c.ref(null),u=c.ref(null),m=c.ref(null),E=()=>(!m.value&&r?.value?.getViewer&&r?.value?.getCesium&&(m.value=new al(r.value.getViewer(),r.value.getCesium())),m.value),A=()=>{E()?.clearMarkers(),f.value=null,u.value=null},C=(R,T)=>{R==="BIM"?f.value=T:u.value=T,E()?.addMarker(R,T),pe.success(`${R==="BIM"?"BIM":"地图"}标记点已添加`)},v=()=>{E()?.registerPickHandler(R=>{C(p.value,R)})},S=()=>{E()?.destroyPickHandler()},D=()=>{if(!f.value||!u.value){pe.warning("请先选择BIM标记点和地图标记点");return}if(!d.value){pe.warning("请先选择主模型");return}const R=E();let T=0,U=0,V=0;if(R){const{dLon:W,dLat:X,dHeight:ee}=R.calculateOffset(f.value,u.value);T=W,U=X,V=ee}else T=u.value.longitude-f.value.longitude,U=u.value.latitude-f.value.latitude,V=u.value.height-f.value.height;I.value.longitude+=T,I.value.latitude+=U,I.value.height+=V,y(d.value,{longitude:I.value.longitude,latitude:I.value.latitude,height:I.value.height}),pe.success("位置已调整")};c.watch(()=>a.value,R=>{R==="pick"?v():S()}),e({addMarker:C,setModelType:R=>{(R==="BIM"||R==="OSGB")&&(l.value=R)}});const I=c.ref({longitude:0,latitude:0,lonlat:1e-6,heightDistance:1,rotation:30,totalRotation:0,height:0,X:0,Y:0,Z:0}),B=c.computed(()=>{const R=h.value.find(T=>T.modelId===d.value);return R?R.modelName:""}),g=c.computed(()=>x.value.length>0&&x.value.every(R=>R.selected)),P=()=>{o.value=!1,s("close")},x=c.computed(()=>h.value.filter(R=>R.type===l.value)),F=R=>{const T=R.target.checked;x.value.forEach(U=>U.selected=T)},_=()=>{if(!r?.value)return;const R=r.value,T=R.getMapTileset?R.getMapTileset():{},U=[];if(Object.keys(T).forEach(V=>{const X=T[V].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 V=R.getBIMmodelId?R.getBIMmodelId():"";V&&U.find(W=>W.modelId===V)?L(V):L(U[0].modelId),U.forEach(W=>W.selected=!0)}},H=()=>{pe.info("拖动右下角标,可显示模型列表",void 0,2)},L=R=>{d.value=R;const T=h.value.find(U=>U.modelId===R);T&&T.formData&&Object.keys(I.value).forEach(U=>{T.formData[U]!==void 0&&(I.value[U]=T.formData[U])})},w=R=>r?.value?.getMapTileset?r.value.getMapTileset()[R]:null,y=(R,T)=>{const U=w(R),V=r.value.getCesium();if(U&&V){if(U.leiting?.model){U.leiting.model.formData={...U.leiting.model.formData,...T};const W=h.value.find(X=>X.modelId===R);W&&(W.formData=U.leiting.model.formData)}Rn({Cesium:V,tileset:U})}},b=R=>{if(!d.value)return;const U=h.value.find(X=>X.modelId===d.value)?.formData?.[R]??0,V=I.value[R],W=V-U;y(d.value,{[R]:V}),W!==0&&x.value.filter(ee=>ee.selected&&ee.modelId!==d.value).forEach(ee=>{const ne=(ee.formData?.[R]??0)+W;y(ee.modelId,{[R]:ne})})},M=R=>{const T=x.value.filter(X=>X.selected);if(T.length===0){pe.warning("请先选择要调整的模型");return}const{lonlat:U,heightDistance:V,rotation:W}=I.value;T.forEach(X=>{const ee={...X.formData};switch(R){case"north":ee.latitude+=U;break;case"south":ee.latitude-=U;break;case"east":ee.longitude+=U;break;case"west":ee.longitude-=U;break;case"up":ee.height+=V;break;case"down":ee.height-=V;break;case"rotateLeft":ee.totalRotation=(ee.totalRotation||0)+W;break;case"rotateRight":ee.totalRotation=(ee.totalRotation||0)-W;break}X.modelId===d.value&&(ee.lonlat=U,ee.heightDistance=V,ee.rotation=W,Object.assign(I.value,ee)),y(X.modelId,ee)})},k=()=>{if(!d.value){pe.warning("请先选择主模型");return}const R=w(d.value);if(!R||!r?.value?.getViewer)return;const T=r.value.getViewer(),U=r.value.getCesium(),V=R.boundingSphere;T.camera.flyToBoundingSphere(V,{offset:new U.HeadingPitchRange(0,U.Math.toRadians(-90),V.radius*2),duration:1.5})},Q=()=>{r?.value?.saveRegion?(r.value.saveRegion(h.value),s("save",c.unref(h))):(console.log("Save models:",h.value),pe.warning("未找到保存接口,数据已打印控制台"))};return c.watch(()=>n.visible,R=>{R?(_(),H(),a.value==="pick"&&v()):(S(),A())}),c.onMounted(()=>{n.visible&&(_(),H(),a.value==="pick"&&v())}),(R,T)=>(c.openBlock(),c.createBlock(ke,{visible:o.value,title:"调整位置(调整前可选择正北俯视)","full-height":i.fullHeight,width:274,"onUpdate:visible":T[25]||(T[25]=U=>o.value=U),onClose:P,onSave:Q},{default:c.withCtx(()=>[c.createElementVNode("div",H0,[c.createElementVNode("div",Y0,[c.createElementVNode("div",V0,[T[26]||(T[26]=c.createElementVNode("label",null,"模型类型:",-1)),c.createElementVNode("div",z0,[c.createElementVNode("span",{class:c.normalizeClass({active:l.value==="BIM"}),onClick:T[0]||(T[0]=U=>l.value="BIM")},"BIM模型",2),c.createElementVNode("span",{class:c.normalizeClass({active:l.value==="OSGB"}),onClick:T[1]||(T[1]=U=>l.value="OSGB")},"倾斜摄影",2)])]),c.createElementVNode("div",W0,[T[27]||(T[27]=c.createElementVNode("label",null,"调整操作:",-1)),c.createElementVNode("div",j0,[c.createElementVNode("span",{class:c.normalizeClass({active:a.value==="param"}),onClick:T[2]||(T[2]=U=>a.value="param")},"参数模式",2),c.createElementVNode("span",{class:c.normalizeClass({active:a.value==="pick"}),onClick:T[3]||(T[3]=U=>a.value="pick")},"地图点选",2)])]),c.createElementVNode("div",K0,[T[28]||(T[28]=c.createElementVNode("label",null,"当前主模型:",-1)),c.createElementVNode("span",$0,c.toDisplayString(B.value||"未选择"),1)]),T[42]||(T[42]=c.createElementVNode("div",{class:"separator"},null,-1)),a.value==="param"?(c.openBlock(),c.createElementBlock(c.Fragment,{key:0},[T[36]||(T[36]=c.createElementVNode("div",{class:"group-header"},"当前状态",-1)),c.createElementVNode("div",X0,[T[29]||(T[29]=c.createElementVNode("label",null,"经度(东西):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[4]||(T[4]=U=>I.value.longitude=U),onChange:T[5]||(T[5]=U=>b("longitude")),step:"0.000001"},null,544),[[c.vModelText,I.value.longitude,void 0,{number:!0}]])]),c.createElementVNode("div",q0,[T[30]||(T[30]=c.createElementVNode("label",null,"纬度(南北):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[6]||(T[6]=U=>I.value.latitude=U),onChange:T[7]||(T[7]=U=>b("latitude")),step:"0.000001"},null,544),[[c.vModelText,I.value.latitude,void 0,{number:!0}]])]),c.createElementVNode("div",J0,[T[31]||(T[31]=c.createElementVNode("label",null,"高度(m):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[8]||(T[8]=U=>I.value.height=U),onChange:T[9]||(T[9]=U=>b("height")),step:"0.1"},null,544),[[c.vModelText,I.value.height,void 0,{number:!0}]])]),c.createElementVNode("div",Z0,[T[32]||(T[32]=c.createElementVNode("label",null,"累计旋转(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[10]||(T[10]=U=>I.value.totalRotation=U),onChange:T[11]||(T[11]=U=>b("totalRotation")),step:"1"},null,544),[[c.vModelText,I.value.totalRotation,void 0,{number:!0}]])]),T[37]||(T[37]=c.createElementVNode("div",{class:"separator"},null,-1)),T[38]||(T[38]=c.createElementVNode("div",{class:"group-header"},"调整步长",-1)),c.createElementVNode("div",eC,[T[33]||(T[33]=c.createElementVNode("label",null,"经纬步长(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[12]||(T[12]=U=>I.value.lonlat=U),step:"0.000001"},null,512),[[c.vModelText,I.value.lonlat,void 0,{number:!0}]])]),c.createElementVNode("div",tC,[T[34]||(T[34]=c.createElementVNode("label",null,"高度步长(m):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[13]||(T[13]=U=>I.value.heightDistance=U),step:"0.1"},null,512),[[c.vModelText,I.value.heightDistance,void 0,{number:!0}]])]),c.createElementVNode("div",iC,[T[35]||(T[35]=c.createElementVNode("label",null,"旋转步长(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[14]||(T[14]=U=>I.value.rotation=U),step:"1"},null,512),[[c.vModelText,I.value.rotation,void 0,{number:!0}]])]),c.createElementVNode("div",nC,[c.createElementVNode("button",{onClick:T[15]||(T[15]=U=>M("rotateLeft"))},"左转"),c.createElementVNode("button",{onClick:T[16]||(T[16]=U=>M("north"))},"北移"),c.createElementVNode("button",{onClick:T[17]||(T[17]=U=>M("rotateRight"))},"右转"),c.createElementVNode("button",{onClick:T[18]||(T[18]=U=>M("west"))},"西移"),c.createElementVNode("button",{onClick:T[19]||(T[19]=U=>M("south"))},"南移"),c.createElementVNode("button",{onClick:T[20]||(T[20]=U=>M("east"))},"东移"),c.createElementVNode("button",{onClick:T[21]||(T[21]=U=>M("up"))},"上移"),c.createElementVNode("button",{onClick:T[22]||(T[22]=U=>M("down"))},"下移"),c.createElementVNode("button",{onClick:k,class:"primary-btn"},"正北俯视"),c.createElementVNode("button",{onClick:Q,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):a.value==="pick"?(c.openBlock(),c.createElementBlock("div",sC,[c.createElementVNode("div",oC,[c.createElementVNode("div",rC,[c.createElementVNode("div",{onClick:T[23]||(T[23]=U=>p.value="BIM"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[c.createElementVNode("input",{type:"radio",checked:p.value==="BIM",style:{"margin-right":"5px"}},null,8,aC),T[39]||(T[39]=c.createElementVNode("span",{style:{"font-weight":"bold"}},"BIM标记点:",-1))]),f.value?(c.openBlock(),c.createElementBlock("div",lC,[c.createElementVNode("div",null,"经度:"+c.toDisplayString(f.value.longitude.toFixed(10)),1),c.createElementVNode("div",null,"纬度:"+c.toDisplayString(f.value.latitude.toFixed(10)),1)])):(c.openBlock(),c.createElementBlock("div",cC,"未选择"))])]),c.createElementVNode("div",dC,[c.createElementVNode("div",hC,[c.createElementVNode("div",{onClick:T[24]||(T[24]=U=>p.value="MAP"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[c.createElementVNode("input",{type:"radio",checked:p.value==="MAP",style:{"margin-right":"5px"}},null,8,uC),T[40]||(T[40]=c.createElementVNode("span",{style:{"font-weight":"bold"}},"地图标记点:",-1))]),u.value?(c.openBlock(),c.createElementBlock("div",fC,[c.createElementVNode("div",null,"经度:"+c.toDisplayString(u.value.longitude.toFixed(10)),1),c.createElementVNode("div",null,"纬度:"+c.toDisplayString(u.value.latitude.toFixed(10)),1)])):(c.openBlock(),c.createElementBlock("div",pC,"未选择"))])]),c.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[c.createElementVNode("button",{onClick:D},"调整位置"),c.createElementVNode("button",{onClick:Q},"保存")]),T[41]||(T[41]=c.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[c.createElementVNode("div",null,"操作指南:"),c.createElementVNode("div",null,"1. 勾选上方 BIM 或 地图 标记点选项。"),c.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),c.createElementVNode("div",null,"3. 采集两点后,点击“调整位置”进行校准。")],-1))])):c.createCommentVNode("",!0)]),c.createElementVNode("div",gC,[c.createElementVNode("div",mC,[c.createElementVNode("div",AC,[c.createElementVNode("input",{type:"checkbox",checked:g.value,onChange:F},null,40,yC)]),T[43]||(T[43]=c.createElementVNode("div",{class:"col-index"},"序号",-1)),T[44]||(T[44]=c.createElementVNode("div",{class:"col-name"},"名称",-1)),T[45]||(T[45]=c.createElementVNode("div",{class:"col-main"},"主模型",-1))]),c.createElementVNode("div",CC,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(x.value,(U,V)=>(c.openBlock(),c.createElementBlock("div",{key:U.modelId,class:c.normalizeClass(["list-item",{active:U.modelId===d.value}])},[c.createElementVNode("div",EC,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":W=>U.selected=W},null,8,wC),[[c.vModelCheckbox,U.selected]])]),c.createElementVNode("div",bC,c.toDisplayString(V+1),1),c.createElementVNode("div",{class:"col-name",title:U.modelName},c.toDisplayString(U.modelName),9,vC),c.createElementVNode("div",IC,[c.createElementVNode("input",{type:"radio",name:"mainModel",checked:U.modelId===d.value,onChange:W=>L(U.modelId)},null,40,BC)])],2))),128))])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-3489beaa"]]);function an(){return an=Object.assign?Object.assign.bind():function(i){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)({}).hasOwnProperty.call(t,n)&&(i[n]=t[n])}return i},an.apply(null,arguments)}const xC={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:"下一世纪"},SC={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},ll={lang:an({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},xC),timePickerLocale:an({},SC)};ll.lang.ok="确定";var ln={exports:{}},TC=ln.exports,cl;function dl(){return cl||(cl=1,(function(i,e){(function(t,n){i.exports=n()})(TC,(function(){var t=1e3,n=6e4,s=36e5,o="millisecond",r="second",l="minute",a="hour",d="day",h="week",p="month",f="quarter",u="year",m="date",E="Invalid Date",A=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,C=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(L){var w=["th","st","nd","rd"],y=L%100;return"["+L+(w[(y-20)%10]||w[y]||w[0])+"]"}},S=function(L,w,y){var b=String(L);return!b||b.length>=w?L:""+Array(w+1-b.length).join(y)+L},D={s:S,z:function(L){var w=-L.utcOffset(),y=Math.abs(w),b=Math.floor(y/60),M=y%60;return(w<=0?"+":"-")+S(b,2,"0")+":"+S(M,2,"0")},m:function L(w,y){if(w.date()<y.date())return-L(y,w);var b=12*(y.year()-w.year())+(y.month()-w.month()),M=w.clone().add(b,p),k=y-M<0,Q=w.clone().add(b+(k?-1:1),p);return+(-(b+(y-M)/(k?M-Q:Q-M))||0)},a:function(L){return L<0?Math.ceil(L)||0:Math.floor(L)},p:function(L){return{M:p,y:u,w:h,d,D:m,h:a,m:l,s:r,ms:o,Q:f}[L]||String(L||"").toLowerCase().replace(/s$/,"")},u:function(L){return L===void 0}},O="en",I={};I[O]=v;var B="$isDayjsObject",g=function(L){return L instanceof _||!(!L||!L[B])},P=function L(w,y,b){var M;if(!w)return O;if(typeof w=="string"){var k=w.toLowerCase();I[k]&&(M=k),y&&(I[k]=y,M=k);var Q=w.split("-");if(!M&&Q.length>1)return L(Q[0])}else{var R=w.name;I[R]=w,M=R}return!b&&M&&(O=M),M||!b&&O},x=function(L,w){if(g(L))return L.clone();var y=typeof w=="object"?w:{};return y.date=L,y.args=arguments,new _(y)},F=D;F.l=P,F.i=g,F.w=function(L,w){return x(L,{locale:w.$L,utc:w.$u,x:w.$x,$offset:w.$offset})};var _=(function(){function L(y){this.$L=P(y.locale,null,!0),this.parse(y),this.$x=this.$x||y.x||{},this[B]=!0}var w=L.prototype;return w.parse=function(y){this.$d=(function(b){var M=b.date,k=b.utc;if(M===null)return new Date(NaN);if(F.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var Q=M.match(A);if(Q){var R=Q[2]-1||0,T=(Q[7]||"0").substring(0,3);return k?new Date(Date.UTC(Q[1],R,Q[3]||1,Q[4]||0,Q[5]||0,Q[6]||0,T)):new Date(Q[1],R,Q[3]||1,Q[4]||0,Q[5]||0,Q[6]||0,T)}}return new Date(M)})(y),this.init()},w.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()},w.$utils=function(){return F},w.isValid=function(){return this.$d.toString()!==E},w.isSame=function(y,b){var M=x(y);return this.startOf(b)<=M&&M<=this.endOf(b)},w.isAfter=function(y,b){return x(y)<this.startOf(b)},w.isBefore=function(y,b){return this.endOf(b)<x(y)},w.$g=function(y,b,M){return F.u(y)?this[b]:this.set(M,y)},w.unix=function(){return Math.floor(this.valueOf()/1e3)},w.valueOf=function(){return this.$d.getTime()},w.startOf=function(y,b){var M=this,k=!!F.u(b)||b,Q=F.p(y),R=function(ne,Y){var j=F.w(M.$u?Date.UTC(M.$y,Y,ne):new Date(M.$y,Y,ne),M);return k?j:j.endOf(d)},T=function(ne,Y){return F.w(M.toDate()[ne].apply(M.toDate("s"),(k?[0,0,0,0]:[23,59,59,999]).slice(Y)),M)},U=this.$W,V=this.$M,W=this.$D,X="set"+(this.$u?"UTC":"");switch(Q){case u:return k?R(1,0):R(31,11);case p:return k?R(1,V):R(0,V+1);case h:var ee=this.$locale().weekStart||0,oe=(U<ee?U+7:U)-ee;return R(k?W-oe:W+(6-oe),V);case d:case m:return T(X+"Hours",0);case a:return T(X+"Minutes",1);case l:return T(X+"Seconds",2);case r:return T(X+"Milliseconds",3);default:return this.clone()}},w.endOf=function(y){return this.startOf(y,!1)},w.$set=function(y,b){var M,k=F.p(y),Q="set"+(this.$u?"UTC":""),R=(M={},M[d]=Q+"Date",M[m]=Q+"Date",M[p]=Q+"Month",M[u]=Q+"FullYear",M[a]=Q+"Hours",M[l]=Q+"Minutes",M[r]=Q+"Seconds",M[o]=Q+"Milliseconds",M)[k],T=k===d?this.$D+(b-this.$W):b;if(k===p||k===u){var U=this.clone().set(m,1);U.$d[R](T),U.init(),this.$d=U.set(m,Math.min(this.$D,U.daysInMonth())).$d}else R&&this.$d[R](T);return this.init(),this},w.set=function(y,b){return this.clone().$set(y,b)},w.get=function(y){return this[F.p(y)]()},w.add=function(y,b){var M,k=this;y=Number(y);var Q=F.p(b),R=function(V){var W=x(k);return F.w(W.date(W.date()+Math.round(V*y)),k)};if(Q===p)return this.set(p,this.$M+y);if(Q===u)return this.set(u,this.$y+y);if(Q===d)return R(1);if(Q===h)return R(7);var T=(M={},M[l]=n,M[a]=s,M[r]=t,M)[Q]||1,U=this.$d.getTime()+y*T;return F.w(U,this)},w.subtract=function(y,b){return this.add(-1*y,b)},w.format=function(y){var b=this,M=this.$locale();if(!this.isValid())return M.invalidDate||E;var k=y||"YYYY-MM-DDTHH:mm:ssZ",Q=F.z(this),R=this.$H,T=this.$m,U=this.$M,V=M.weekdays,W=M.months,X=M.meridiem,ee=function(Y,j,te,le){return Y&&(Y[j]||Y(b,k))||te[j].slice(0,le)},oe=function(Y){return F.s(R%12||12,Y,"0")},ne=X||function(Y,j,te){var le=Y<12?"AM":"PM";return te?le.toLowerCase():le};return k.replace(C,(function(Y,j){return j||(function(te){switch(te){case"YY":return String(b.$y).slice(-2);case"YYYY":return F.s(b.$y,4,"0");case"M":return U+1;case"MM":return F.s(U+1,2,"0");case"MMM":return ee(M.monthsShort,U,W,3);case"MMMM":return ee(W,U);case"D":return b.$D;case"DD":return F.s(b.$D,2,"0");case"d":return String(b.$W);case"dd":return ee(M.weekdaysMin,b.$W,V,2);case"ddd":return ee(M.weekdaysShort,b.$W,V,3);case"dddd":return V[b.$W];case"H":return String(R);case"HH":return F.s(R,2,"0");case"h":return oe(1);case"hh":return oe(2);case"a":return ne(R,T,!0);case"A":return ne(R,T,!1);case"m":return String(T);case"mm":return F.s(T,2,"0");case"s":return String(b.$s);case"ss":return F.s(b.$s,2,"0");case"SSS":return F.s(b.$ms,3,"0");case"Z":return Q}return null})(Y)||Q.replace(":","")}))},w.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},w.diff=function(y,b,M){var k,Q=this,R=F.p(b),T=x(y),U=(T.utcOffset()-this.utcOffset())*n,V=this-T,W=function(){return F.m(Q,T)};switch(R){case u:k=W()/12;break;case p:k=W();break;case f:k=W()/3;break;case h:k=(V-U)/6048e5;break;case d:k=(V-U)/864e5;break;case a:k=V/s;break;case l:k=V/n;break;case r:k=V/t;break;default:k=V}return M?k:F.a(k)},w.daysInMonth=function(){return this.endOf(p).$D},w.$locale=function(){return I[this.$L]},w.locale=function(y,b){if(!y)return this.$L;var M=this.clone(),k=P(y,b,!0);return k&&(M.$L=k),M},w.clone=function(){return F.w(this.$d,this)},w.toDate=function(){return new Date(this.valueOf())},w.toJSON=function(){return this.isValid()?this.toISOString():null},w.toISOString=function(){return this.$d.toISOString()},w.toString=function(){return this.$d.toUTCString()},L})(),H=_.prototype;return x.prototype=H,[["$ms",o],["$s",r],["$m",l],["$H",a],["$W",d],["$M",p],["$y",u],["$D",m]].forEach((function(L){H[L[1]]=function(w){return this.$g(w,L[0],L[1])}})),x.extend=function(L,w){return L.$i||(L(w,_,x),L.$i=!0),x},x.locale=P,x.isDayjs=g,x.unix=function(L){return x(1e3*L)},x.en=I[O],x.Ls=I,x.p={},x}))})(ln)),ln.exports}var MC=dl();const He=Qt(MC);var cn={exports:{}},DC=cn.exports,hl;function kC(){return hl||(hl=1,(function(i,e){(function(t,n){i.exports=n(dl())})(DC,(function(t){function n(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var s=n(t),o={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(r,l){return l==="W"?r+"周":r+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(r,l){var a=100*r+l;return a<600?"凌晨":a<900?"早上":a<1100?"上午":a<1300?"中午":a<1800?"下午":"晚上"}};return s.default.locale(o,null,!0),o}))})(cn)),cn.exports}kC();var dn={exports:{}},PC=dn.exports,ul;function FC(){return ul||(ul=1,(function(i,e){(function(t,n){i.exports=n()})(PC,(function(){return function(t,n,s){var o=n.prototype,r=function(p){return p&&(p.indexOf?p:p.s)},l=function(p,f,u,m,E){var A=p.name?p:p.$locale(),C=r(A[f]),v=r(A[u]),S=C||v.map((function(O){return O.slice(0,m)}));if(!E)return S;var D=A.weekStart;return S.map((function(O,I){return S[(I+(D||0))%7]}))},a=function(){return s.Ls[s.locale()]},d=function(p,f){return p.formats[f]||(function(u){return u.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(m,E,A){return E||A.slice(1)}))})(p.formats[f.toUpperCase()])},h=function(){var p=this;return{months:function(f){return f?f.format("MMMM"):l(p,"months")},monthsShort:function(f){return f?f.format("MMM"):l(p,"monthsShort","months",3)},firstDayOfWeek:function(){return p.$locale().weekStart||0},weekdays:function(f){return f?f.format("dddd"):l(p,"weekdays")},weekdaysMin:function(f){return f?f.format("dd"):l(p,"weekdaysMin","weekdays",2)},weekdaysShort:function(f){return f?f.format("ddd"):l(p,"weekdaysShort","weekdays",3)},longDateFormat:function(f){return d(p.$locale(),f)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};o.localeData=function(){return h.bind(this)()},s.localeData=function(){var p=a();return{firstDayOfWeek:function(){return p.weekStart||0},weekdays:function(){return s.weekdays()},weekdaysShort:function(){return s.weekdaysShort()},weekdaysMin:function(){return s.weekdaysMin()},months:function(){return s.months()},monthsShort:function(){return s.monthsShort()},longDateFormat:function(f){return d(p,f)},meridiem:p.meridiem,ordinal:p.ordinal}},s.months=function(){return l(a(),"months")},s.monthsShort=function(){return l(a(),"monthsShort","months",3)},s.weekdays=function(p){return l(a(),"weekdays",null,null,p)},s.weekdaysShort=function(p){return l(a(),"weekdaysShort","weekdays",3,p)},s.weekdaysMin=function(p){return l(a(),"weekdaysMin","weekdays",2,p)}}}))})(dn)),dn.exports}var RC=FC();const OC=Qt(RC);var hn={exports:{}},LC=hn.exports,fl;function NC(){return fl||(fl=1,(function(i,e){(function(t,n){i.exports=n()})(LC,(function(){return function(t,n){n.prototype.weekday=function(s){var o=this.$locale().weekStart||0,r=this.$W,l=(r<o?r+7:r)-o;return this.$utils().u(s)?l:this.subtract(l,"day").add(s,"day")}}}))})(hn)),hn.exports}var UC=NC();const _C=Qt(UC);var un={exports:{}},QC=un.exports,pl;function GC(){return pl||(pl=1,(function(i,e){(function(t,n){i.exports=n()})(QC,(function(){var t="week",n="year";return function(s,o,r){var l=o.prototype;l.week=function(a){if(a===void 0&&(a=null),a!==null)return this.add(7*(a-this.week()),"day");var d=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var h=r(this).startOf(n).add(1,n).date(d),p=r(this).endOf(t);if(h.isBefore(p))return 1}var f=r(this).startOf(n).date(d).startOf(t).subtract(1,"millisecond"),u=this.diff(f,t,!0);return u<0?r(this).startOf("week").week():Math.ceil(u)},l.weeks=function(a){return a===void 0&&(a=null),this.week(a)}}}))})(un)),un.exports}var HC=GC();const YC=Qt(HC);var fn={exports:{}},VC=fn.exports,gl;function zC(){return gl||(gl=1,(function(i,e){(function(t,n){i.exports=n()})(VC,(function(){var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},n=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,s=/\d/,o=/\d\d/,r=/\d\d?/,l=/\d*[^-_:/,()\s\d]+/,a={},d=function(A){return(A=+A)+(A>68?1900:2e3)},h=function(A){return function(C){this[A]=+C}},p=[/[+-]\d\d:?(\d\d)?|Z/,function(A){(this.zone||(this.zone={})).offset=(function(C){if(!C||C==="Z")return 0;var v=C.match(/([+-]|\d\d)/g),S=60*v[1]+(+v[2]||0);return S===0?0:v[0]==="+"?-S:S})(A)}],f=function(A){var C=a[A];return C&&(C.indexOf?C:C.s.concat(C.f))},u=function(A,C){var v,S=a.meridiem;if(S){for(var D=1;D<=24;D+=1)if(A.indexOf(S(D,0,C))>-1){v=D>12;break}}else v=A===(C?"pm":"PM");return v},m={A:[l,function(A){this.afternoon=u(A,!1)}],a:[l,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:[r,h("seconds")],ss:[r,h("seconds")],m:[r,h("minutes")],mm:[r,h("minutes")],H:[r,h("hours")],h:[r,h("hours")],HH:[r,h("hours")],hh:[r,h("hours")],D:[r,h("day")],DD:[o,h("day")],Do:[l,function(A){var C=a.ordinal,v=A.match(/\d+/);if(this.day=v[0],C)for(var S=1;S<=31;S+=1)C(S).replace(/\[|\]/g,"")===A&&(this.day=S)}],w:[r,h("week")],ww:[o,h("week")],M:[r,h("month")],MM:[o,h("month")],MMM:[l,function(A){var C=f("months"),v=(f("monthsShort")||C.map((function(S){return S.slice(0,3)}))).indexOf(A)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[l,function(A){var C=f("months").indexOf(A)+1;if(C<1)throw new Error;this.month=C%12||C}],Y:[/[+-]?\d+/,h("year")],YY:[o,function(A){this.year=d(A)}],YYYY:[/\d{4}/,h("year")],Z:p,ZZ:p};function E(A){var C,v;C=A,v=a&&a.formats;for(var S=(A=C.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(x,F,_){var H=_&&_.toUpperCase();return F||v[_]||t[_]||v[H].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(L,w,y){return w||y.slice(1)}))}))).match(n),D=S.length,O=0;O<D;O+=1){var I=S[O],B=m[I],g=B&&B[0],P=B&&B[1];S[O]=P?{regex:g,parser:P}:I.replace(/^\[|\]$/g,"")}return function(x){for(var F={},_=0,H=0;_<D;_+=1){var L=S[_];if(typeof L=="string")H+=L.length;else{var w=L.regex,y=L.parser,b=x.slice(H),M=w.exec(b)[0];y.call(F,M),x=x.replace(M,"")}}return(function(k){var Q=k.afternoon;if(Q!==void 0){var R=k.hours;Q?R<12&&(k.hours+=12):R===12&&(k.hours=0),delete k.afternoon}})(F),F}}return function(A,C,v){v.p.customParseFormat=!0,A&&A.parseTwoDigitYear&&(d=A.parseTwoDigitYear);var S=C.prototype,D=S.parse;S.parse=function(O){var I=O.date,B=O.utc,g=O.args;this.$u=B;var P=g[1];if(typeof P=="string"){var x=g[2]===!0,F=g[3]===!0,_=x||F,H=g[2];F&&(H=g[2]),a=this.$locale(),!x&&H&&(a=v.Ls[H]),this.$d=(function(b,M,k,Q){try{if(["x","X"].indexOf(M)>-1)return new Date((M==="X"?1e3:1)*b);var R=E(M)(b),T=R.year,U=R.month,V=R.day,W=R.hours,X=R.minutes,ee=R.seconds,oe=R.milliseconds,ne=R.zone,Y=R.week,j=new Date,te=V||(T||U?1:j.getDate()),le=T||j.getFullYear(),re=0;T&&!U||(re=U>0?U-1:j.getMonth());var ce,ve=W||0,Te=X||0,et=ee||0,xt=oe||0;return ne?new Date(Date.UTC(le,re,te,ve,Te,et,xt+60*ne.offset*1e3)):k?new Date(Date.UTC(le,re,te,ve,Te,et,xt)):(ce=new Date(le,re,te,ve,Te,et,xt),Y&&(ce=Q(ce).week(Y).toDate()),ce)}catch{return new Date("")}})(I,P,B,v),this.init(),H&&H!==!0&&(this.$L=this.locale(H).$L),_&&I!=this.format(P)&&(this.$d=new Date("")),a={}}else if(P instanceof Array)for(var L=P.length,w=1;w<=L;w+=1){g[1]=P[w-1];var y=v.apply(this,g);if(y.isValid()){this.$d=y.$d,this.$L=y.$L,this.init();break}w===L&&(this.$d=new Date(""))}else D.call(this,O)}}}))})(fn)),fn.exports}var WC=zC();const jC=Qt(WC),KC={class:"setting-panel"},$C={class:"tabs-header"},XC={class:"tab-content"},qC={key:0,class:"section"},JC={class:"setting-item"},ZC={class:"setting-item"},eE={class:"setting-item"},tE={key:1,class:"section"},iE={class:"tabs-header",style:{"margin-bottom":"8px"}},nE={key:0},sE={class:"setting-item column"},oE={class:"setting-item column"},rE={class:"setting-item"},aE={key:1},lE={class:"setting-item column"},cE={class:"setting-item column",style:{"margin-top":"12px","border-top":"1px solid rgba(255,255,255,0.1)","padding-top":"8px"}},dE={class:"search-box"},hE={key:2,class:"section"},uE={class:"setting-item"},fE={key:0,class:"setting-item column"},pE={class:"sub-label"},gE={class:"setting-item"},mE={class:"setting-item"},AE={class:"setting-item column"},yE={class:"setting-item column"},CE={class:"sub-label"},EE={class:"setting-item column"},wE={class:"sub-label"},bE={class:"setting-item column"},vE={class:"sub-label"},IE={class:"setting-item column"},BE={style:{display:"flex",gap:"8px","margin-bottom":"8px"}},xE=["onClick","title"],SE={style:{display:"flex",gap:"8px","align-items":"center"}},TE={key:3,class:"section"},ME={class:"setting-item"},DE={class:"setting-item column"},bi=Re(c.defineComponent({__name:"LeitingSetting",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean,default:!1},tiandituToken:{type:String,default:""},initialConfig:{type:Object,default:()=>({})}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){He.locale("zh-cn"),He.extend(OC),He.extend(_C),He.extend(YC),He.extend(jC);const t=me.Switch,n=me.Radio.Group,s=me.Radio,o=me.Input,r=me.Slider,l=me.Select,a=me.Select.Option,d=me.DatePicker,h=i,p=e,f=c.inject("leitingMethods"),u=c.computed({get:()=>h.open!==void 0?h.open:h.visible,set:w=>{p("update:visible",w),p("update:open",w)}}),m=c.ref("GIS"),E=c.reactive({globe:!1,terrain:!1,depthTest:!1}),A=c.reactive({provider:"tianditu",tianditu:{token:"c25f14fb6bd4397cf8fe45144ff768d6",layerType:"img_w",showLabel:!1},arcgis:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"},baseMap:"tianditu"}),C=c.reactive({shadows:!1,shadowDarkness:.7,environmentMap:!1,ambientOcclusion:!1,time:He("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%)"}),v=c.reactive({collision:!1,habit:0}),S=w=>{w&&(w.globe!==void 0&&(E.globe=w.globe),w.terrain!==void 0&&(E.terrain=w.terrain),w.depthTest!==void 0&&(E.depthTest=w.depthTest),w.mapProvider!==void 0&&(A.provider=w.mapProvider),w.tiandituLayerType!==void 0&&(A.tianditu.layerType=w.tiandituLayerType),w.tiandituShowLabel!==void 0&&(A.tianditu.showLabel=w.tiandituShowLabel),w.arcgisUrl!==void 0&&(A.arcgis.url=w.arcgisUrl),w.shadows!==void 0&&(C.shadows=w.shadows),w.shadowDarkness!==void 0&&(C.shadowDarkness=w.shadowDarkness),w.environmentMap!==void 0&&(C.environmentMap=w.environmentMap),w.ambientOcclusion!==void 0&&(C.ambientOcclusion=w.ambientOcclusion),w.time!==void 0&&(typeof w.time=="number"?C.time=He().startOf("day").add(w.time,"hour"):C.time=He(w.time)),w.brightness!==void 0&&(C.brightness=w.brightness),w.contrast!==void 0&&(C.contrast=w.contrast),w.saturation!==void 0&&(C.saturation=w.saturation),w.backgroundColor!==void 0&&(C.backgroundColor=w.backgroundColor),w.collision!==void 0&&(v.collision=w.collision),w.mouseHabit!==void 0&&(v.habit=w.mouseHabit))};c.watch(()=>h.initialConfig,w=>{S(w)},{deep:!0,immediate:!0});const D=["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%)"],O=[{label:"全球影像地图服务(墨卡托)",value:"img_w"},{label:"全球影像地图服务(经纬度)",value:"img_c"},{label:"全球矢量地图服务(墨卡托)",value:"vec_w"},{label:"全球矢量地图服务(经纬度)",value:"vec_c"},{label:"全球地形晕渲服务(墨卡托)",value:"ter_w"},{label:"全球地形晕渲服务(经纬度)",value:"ter_c"}],I=()=>{const w=A.provider,y={};w==="tianditu"?(y.token=A.tianditu.token,y.layerType=A.tianditu.layerType,y.showAnnotation=A.tianditu.showLabel):w==="arcgis"&&(y.url=A.arcgis.url),f.value?.changeBaseMap?.(w,y)};c.watch(()=>A.provider,I),c.watch(()=>A.tianditu.layerType,I),c.watch(()=>A.tianditu.showLabel,I),c.watch(()=>A.tianditu.token,kn(I,1e3)),c.watch(()=>A.arcgis.url,kn(I,1e3)),c.onMounted(()=>{h.tiandituToken&&(A.tianditu.token=h.tiandituToken)}),c.watch(()=>E.globe,w=>f.value?.setGlobeEnvironmentVisible?.(w)),c.watch(()=>E.terrain,w=>f.value?.setTerrainEnable?.(w)),c.watch(()=>E.depthTest,w=>f.value?.setDepthTestEnable?.(w)),c.watch(()=>f?.value,w=>{if(w){if(w.getConfigure=()=>({globe:E.globe,terrain:E.terrain,depthTest:E.depthTest,mapProvider:A.provider,tiandituLayerType:A.tianditu.layerType,tiandituShowLabel:A.tianditu.showLabel,arcgisUrl:A.arcgis.url,shadows:C.shadows,shadowDarkness:C.shadowDarkness,environmentMap:C.environmentMap,ambientOcclusion:C.ambientOcclusion,time:He.isDayjs(C.time)?C.time.format("YYYY-MM-DD HH:mm"):C.time,brightness:C.brightness,contrast:C.contrast,saturation:C.saturation,backgroundColor:C.backgroundColor,collision:v.collision,mouseHabit:v.habit}),w.setConfigure=y=>{S(y)},w.setBackgroundColor&&C.backgroundColor&&w.setBackgroundColor(C.backgroundColor),w.setGlobeEnvironmentVisible&&w.setGlobeEnvironmentVisible(E.globe),w.setShadowsEnable&&w.setShadowsEnable(C.shadows),w.setShadowDarkness&&w.setShadowDarkness(C.shadowDarkness),w.setEnvironmentMapEnable&&w.setEnvironmentMapEnable(C.environmentMap),w.setAmbientOcclusion&&w.setAmbientOcclusion(C.ambientOcclusion),w.setTime){const y=He.isDayjs(C.time)?C.time.toDate():new Date;w.setTime(y)}w.setModelBrightness&&w.setModelBrightness(C.brightness),w.setCollisionDetection&&w.setCollisionDetection(v.collision),w.setMouseHabit&&w.setMouseHabit(v.habit),w.changeBaseMap&&A.baseMap&&w.changeBaseMap(A.baseMap,{token:A.tianditu.token,layerType:A.tianditu.layerType,showAnnotation:A.tianditu.showLabel,url:A.arcgis.url})}},{immediate:!0});const B=c.computed({get:()=>{const w=C.backgroundColor;return/^#[0-9A-Fa-f]{6}$/.test(w)?w:"#ffffff"},set:w=>{C.backgroundColor=w}}),g=c.ref(""),P=c.ref(!1),x=c.ref([]);c.watch(()=>E.globe,w=>f.value?.setGlobeEnvironmentVisible?.(w)),c.watch(()=>E.terrain,w=>f.value?.setTerrainEnable?.(w)),c.watch(()=>A.baseMap,w=>{f.value?.changeBaseMap?.(w,{token:h.tiandituToken})}),c.watch(()=>C.shadows,w=>f.value?.setShadowsEnable?.(w)),c.watch(()=>C.shadowDarkness,w=>f.value?.setShadowDarkness?.(w)),c.watch(()=>C.environmentMap,w=>f.value?.setEnvironmentMapEnable?.(w)),c.watch(()=>C.ambientOcclusion,w=>f.value?.setAmbientOcclusion?.(w)),c.watch(()=>C.time,w=>{const y=He.isDayjs(w)?w.toDate():new Date;f.value?.setTime?.(y)}),c.watch(()=>[C.brightness,C.contrast,C.saturation],([w,y,b])=>{const M=f.value;M?.setModelColorAdjustment?M.setModelColorAdjustment({brightness:w,contrast:y,saturation:b}):M?.setModelBrightness?.(w)}),c.watch(()=>C.backgroundColor,w=>{if(f.value?.setBackgroundColor)f.value.setBackgroundColor(w);else{const y=document.querySelector(".cesium-viewer");y&&(y.style.background=w)}}),c.watch(()=>v.collision,w=>f.value?.setCollisionDetection?.(w)),c.watch(()=>v.habit,w=>f.value?.setMouseHabit?.(w));const F=w=>{if(w?.pois&&Array.isArray(w.pois)&&w.pois.length>0){const y=w.pois[0],b=y.lonlat.split(/[, ]/).map(Number);if(b.length>=2&&!isNaN(b[0])&&!isNaN(b[1]))return{name:y.name,lon:b[0],lat:b[1],raw:y}}if(w?.area&&w.area.lonlat){const y=w.area,b=y.lonlat.split(/[, ]/).map(Number);if(b.length>=2&&!isNaN(b[0])&&!isNaN(b[1]))return{name:y.name,lon:b[0],lat:b[1],raw:y}}return null},H=kn(async()=>{const w=(g.value||"").trim();if(!w)return;const y=h.tiandituToken||"c25f14fb6bd4397cf8fe45144ff768d6";P.value=!0,x.value=[];try{if(f.value?.searchLocation){const b=await f.value.searchLocation(w,y),M=F(b);M&&(x.value=[M],pe.success(`找到:${M.name||""}`),f.value.flyToLonLatHeight(M.lon,M.lat,5e3))}else{const M=`https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(JSON.stringify({keyWord:w,level:12,mapBound:"-180,-90,180,90",queryType:1,start:0,count:10}))}&type=query&tk=${encodeURIComponent(y)}`,k=await fetch(M);if(!k.ok)throw new Error(`HTTP ${k.status}`);const Q=await k.json(),R=F(Q);R&&(x.value=[R],pe.success(`找到:${R.name||""}`),f.value?.flyToLonLatHeight?.(R.lon,R.lat,5e3))}}catch(b){console.error("tianditu search error",b)}finally{P.value=!1}},800);c.watch(g,()=>{H()});const L=()=>{u.value=!1,p("close")};return c.onMounted(()=>{}),(w,y)=>(c.openBlock(),c.createBlock(ke,{visible:u.value,title:"设置","full-height":i.fullHeight,onClose:L,"onUpdate:visible":y[26]||(y[26]=b=>u.value=b)},{default:c.withCtx(()=>[c.createElementVNode("div",KC,[c.createElementVNode("div",$C,[c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:m.value==="GIS"}]),onClick:y[0]||(y[0]=b=>m.value="GIS")},"GIS",2),c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:m.value==="MAP"}]),onClick:y[1]||(y[1]=b=>m.value="MAP")},"地图",2),c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:m.value==="RENDER"}]),onClick:y[2]||(y[2]=b=>m.value="RENDER")},"渲染",2),c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:m.value==="MOUSE"}]),onClick:y[3]||(y[3]=b=>m.value="MOUSE")},"鼠标",2)]),c.createElementVNode("div",XC,[m.value==="GIS"?(c.openBlock(),c.createElementBlock("div",qC,[c.createElementVNode("div",JC,[y[27]||(y[27]=c.createElementVNode("span",null,"地球 (含大气/日月/星空)",-1)),c.createVNode(c.unref(t),{checked:E.globe,"onUpdate:checked":y[4]||(y[4]=b=>E.globe=b),size:"small"},null,8,["checked"])]),c.createElementVNode("div",ZC,[y[28]||(y[28]=c.createElementVNode("span",null,"地形 (高程)",-1)),c.createVNode(c.unref(t),{checked:E.terrain,"onUpdate:checked":y[5]||(y[5]=b=>E.terrain=b),size:"small"},null,8,["checked"])]),c.createElementVNode("div",eE,[y[29]||(y[29]=c.createElementVNode("span",null,"地形遮挡",-1)),c.createVNode(c.unref(t),{checked:E.depthTest,"onUpdate:checked":y[6]||(y[6]=b=>E.depthTest=b),size:"small"},null,8,["checked"])])])):c.createCommentVNode("",!0),m.value==="MAP"?(c.openBlock(),c.createElementBlock("div",tE,[c.createElementVNode("div",iE,[c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:A.provider==="tianditu"}]),onClick:y[7]||(y[7]=b=>A.provider="tianditu")},"天地图",2),c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:A.provider==="arcgis"}]),onClick:y[8]||(y[8]=b=>A.provider="arcgis")},"ArcGIS",2)]),A.provider==="tianditu"?(c.openBlock(),c.createElementBlock("div",nE,[c.createElementVNode("div",sE,[y[30]||(y[30]=c.createElementVNode("div",{class:"sub-label"},"Token",-1)),c.createVNode(c.unref(o),{value:A.tianditu.token,"onUpdate:value":y[9]||(y[9]=b=>A.tianditu.token=b),size:"small",placeholder:"输入天地图Token"},null,8,["value"])]),c.createElementVNode("div",oE,[y[31]||(y[31]=c.createElementVNode("div",{class:"sub-label"},"地图风格",-1)),c.createVNode(c.unref(l),{value:A.tianditu.layerType,"onUpdate:value":y[10]||(y[10]=b=>A.tianditu.layerType=b),size:"small",style:{width:"100%"}},{default:c.withCtx(()=>[(c.openBlock(),c.createElementBlock(c.Fragment,null,c.renderList(O,b=>c.createVNode(c.unref(a),{key:b.value,value:b.value},{default:c.withCtx(()=>[c.createTextVNode(c.toDisplayString(b.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"])]),c.createElementVNode("div",rE,[y[32]||(y[32]=c.createElementVNode("span",null,"叠加注记",-1)),c.createVNode(c.unref(t),{checked:A.tianditu.showLabel,"onUpdate:checked":y[11]||(y[11]=b=>A.tianditu.showLabel=b),size:"small"},null,8,["checked"])])])):c.createCommentVNode("",!0),A.provider==="arcgis"?(c.openBlock(),c.createElementBlock("div",aE,[c.createElementVNode("div",lE,[y[33]||(y[33]=c.createElementVNode("div",{class:"sub-label"},"服务地址",-1)),c.createVNode(c.unref(o),{value:A.arcgis.url,"onUpdate:value":y[12]||(y[12]=b=>A.arcgis.url=b),size:"small",placeholder:"输入ArcGIS MapServer地址"},null,8,["value"])])])):c.createCommentVNode("",!0),c.createElementVNode("div",cE,[y[34]||(y[34]=c.createElementVNode("div",{class:"sub-label"},"位置搜索 (天地图)",-1)),c.createElementVNode("div",dE,[c.createVNode(c.unref(o),{value:g.value,"onUpdate:value":y[13]||(y[13]=b=>g.value=b),placeholder:"输入地名搜索",size:"small","allow-clear":""},null,8,["value"])])])])):c.createCommentVNode("",!0),m.value==="RENDER"?(c.openBlock(),c.createElementBlock("div",hE,[c.createElementVNode("div",uE,[y[35]||(y[35]=c.createElementVNode("span",null,"阴影",-1)),c.createVNode(c.unref(t),{checked:C.shadows,"onUpdate:checked":y[14]||(y[14]=b=>C.shadows=b),size:"small"},null,8,["checked"])]),C.shadows?(c.openBlock(),c.createElementBlock("div",fE,[c.createElementVNode("div",pE,"阴影暗度 ("+c.toDisplayString(C.shadowDarkness.toFixed(2))+")",1),c.createVNode(c.unref(r),{value:C.shadowDarkness,"onUpdate:value":y[15]||(y[15]=b=>C.shadowDarkness=b),min:0,max:1,step:.05,size:"small"},null,8,["value"])])):c.createCommentVNode("",!0),c.createElementVNode("div",gE,[y[36]||(y[36]=c.createElementVNode("span",null,"环境贴图 (HDR)",-1)),c.createVNode(c.unref(t),{checked:C.environmentMap,"onUpdate:checked":y[16]||(y[16]=b=>C.environmentMap=b),size:"small"},null,8,["checked"])]),c.createElementVNode("div",mE,[y[37]||(y[37]=c.createElementVNode("span",null,"环境光遮蔽 (AO)",-1)),c.createVNode(c.unref(t),{checked:C.ambientOcclusion,"onUpdate:checked":y[17]||(y[17]=b=>C.ambientOcclusion=b),size:"small"},null,8,["checked"])]),c.createElementVNode("div",AE,[y[38]||(y[38]=c.createElementVNode("div",{class:"sub-label"},"日期时间",-1)),c.createVNode(c.unref(d),{value:C.time,"onUpdate:value":y[18]||(y[18]=b=>C.time=b),"show-time":"",locale:c.unref(ll),format:"YYYY-MM-DD HH:mm",size:"small",style:{width:"100%"}},null,8,["value","locale"])]),c.createElementVNode("div",yE,[c.createElementVNode("div",CE,"模型亮度 ("+c.toDisplayString(C.brightness.toFixed(1))+")",1),c.createVNode(c.unref(r),{value:C.brightness,"onUpdate:value":y[19]||(y[19]=b=>C.brightness=b),min:0,max:5,step:.1,size:"small"},null,8,["value"])]),c.createElementVNode("div",EE,[c.createElementVNode("div",wE,"模型对比度 ("+c.toDisplayString(C.contrast.toFixed(1))+")",1),c.createVNode(c.unref(r),{value:C.contrast,"onUpdate:value":y[20]||(y[20]=b=>C.contrast=b),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),c.createElementVNode("div",bE,[c.createElementVNode("div",vE,"模型饱和度 ("+c.toDisplayString(C.saturation.toFixed(1))+")",1),c.createVNode(c.unref(r),{value:C.saturation,"onUpdate:value":y[21]||(y[21]=b=>C.saturation=b),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),c.createElementVNode("div",IE,[y[39]||(y[39]=c.createElementVNode("div",{class:"sub-label"},"背景颜色",-1)),c.createElementVNode("div",BE,[(c.openBlock(),c.createElementBlock(c.Fragment,null,c.renderList(D,(b,M)=>c.createElementVNode("div",{key:M,style:c.normalizeStyle({background:b,width:"32px",height:"24px",borderRadius:"2px",cursor:"pointer",border:"1px solid #d9d9d9",flexShrink:0}),onClick:k=>C.backgroundColor=b,title:"预设 "+(M+1)},null,12,xE)),64))]),c.createElementVNode("div",SE,[c.withDirectives(c.createElementVNode("input",{type:"color","onUpdate:modelValue":y[22]||(y[22]=b=>B.value=b),style:{width:"40px",height:"24px",padding:"0",border:"1px solid #d9d9d9"}},null,512),[[c.vModelText,B.value]]),c.createVNode(c.unref(o),{value:C.backgroundColor,"onUpdate:value":y[23]||(y[23]=b=>C.backgroundColor=b),size:"small",style:{flex:"1"},placeholder:"CSS 颜色值"},null,8,["value"])])])])):c.createCommentVNode("",!0),m.value==="MOUSE"?(c.openBlock(),c.createElementBlock("div",TE,[c.createElementVNode("div",ME,[y[40]||(y[40]=c.createElementVNode("span",null,"碰撞检测",-1)),c.createVNode(c.unref(t),{checked:v.collision,"onUpdate:checked":y[24]||(y[24]=b=>v.collision=b),size:"small"},null,8,["checked"])]),c.createElementVNode("div",DE,[y[43]||(y[43]=c.createElementVNode("div",{class:"sub-label"},"操作习惯",-1)),c.createVNode(c.unref(n),{value:v.habit,"onUpdate:value":y[25]||(y[25]=b=>v.habit=b),size:"small"},{default:c.withCtx(()=>[c.createVNode(c.unref(s),{value:0},{default:c.withCtx(()=>[...y[41]||(y[41]=[c.createTextVNode("默认 (中键旋转)",-1)])]),_:1}),c.createVNode(c.unref(s),{value:1},{default:c.withCtx(()=>[...y[42]||(y[42]=[c.createTextVNode("习惯1 (左键旋转)",-1)])]),_:1})]),_:1},8,["value"])])])):c.createCommentVNode("",!0)])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-79494025"]]),kE={class:"cad-layer-panel"},PE={class:"layer-list-container"},FE={class:"list-header"},RE={class:"col-check"},OE=["checked"],LE={class:"list-body"},NE={class:"col-check"},UE=["checked","onChange"],_E={class:"col-index"},QE=["title"],GE={class:"col-color"},HE=["value"],YE={key:0,class:"empty-text"},VE=Re(c.defineComponent({__name:"LeitingCadLayer",props:{visible:{type:Boolean,default:!1},currentModelId:{type:String,default:""}},emits:["update:visible","handleCloseCardByCadCard"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods",c.ref({})),o=c.ref(""),r=c.ref([]),l=()=>{s.value&&s.value.getDxfModels&&(r.value=s.value.getDxfModels().map(v=>({modelId:v.modelId,modelName:v.modelName}))||[])},a=c.computed(()=>r.value.map(v=>({value:v.modelId,label:v.modelName}))),d=c.ref([]),h=c.ref([]),p=c.computed(()=>d.value.length>0&&h.value.length===d.value.length),f=({modelId:v})=>{if(d.value=[],h.value=[],s.value&&s.value.getDxfLayers){const S=s.value.getDxfLayers({modelId:v});S&&Object.keys(S).forEach((D,O)=>{S[D].length&&(d.value.push({index:O+1,layerName:D,layerColor:S[D][0].color||"#ffffff",key:D}),h.value.push(D))})}},u=v=>{o.value=v,f({modelId:v})},m=v=>{v.target.checked?h.value=d.value.map(D=>D.key):h.value=[],A()},E=(v,S)=>{S.target.checked?h.value.includes(v)||h.value.push(v):h.value=h.value.filter(O=>O!==v),A()},A=()=>{if(s.value&&s.value.showDxfLayer&&(s.value.showDxfLayer({modelId:o.value,show:!0,layers:h.value}),s.value.getDxfLayers)){const v=s.value.getDxfLayers({modelId:o.value});if(v){const S=Object.keys(v).filter(D=>!h.value.includes(D));s.value.showDxfLayer({modelId:o.value,show:!1,layers:S})}}},C=()=>{n("update:visible",!1),n("handleCloseCardByCadCard")};return c.watch(()=>t.visible,v=>{v&&(l(),t.currentModelId?(o.value=t.currentModelId,f({modelId:t.currentModelId})):a.value.length>0&&(o.value=a.value[0]?.value,f({modelId:o.value})))}),c.watch(()=>t.currentModelId,v=>{v&&t.visible&&(o.value=v,f({modelId:v}))}),(v,S)=>(c.openBlock(),c.createBlock(ke,{visible:i.visible,title:"CAD图层","onUpdate:visible":S[3]||(S[3]=D=>v.$emit("update:visible",D)),onClose:C,width:360,align:"right","initial-position":{x:0,y:60}},{"header-extra":c.withCtx(()=>[c.createElementVNode("div",{class:"header-select-container",onMousedown:S[2]||(S[2]=c.withModifiers(()=>{},["stop"]))},[S[4]||(S[4]=c.createElementVNode("span",{class:"header-label"},"图纸:",-1)),c.createVNode(c.unref(me.Select),{value:o.value,"onUpdate:value":S[0]||(S[0]=D=>o.value=D),options:a.value,onChange:S[1]||(S[1]=D=>u(D)),placeholder:"选择模型",style:{width:"140px"},bordered:!1,class:"custom-header-select",popupClassName:"leiting-select-dropdown",size:"small"},null,8,["value","options"])],32)]),default:c.withCtx(()=>[c.createElementVNode("div",kE,[c.createElementVNode("div",PE,[c.createElementVNode("div",FE,[c.createElementVNode("div",RE,[c.createElementVNode("input",{type:"checkbox",checked:p.value,onChange:m},null,40,OE)]),S[5]||(S[5]=c.createElementVNode("div",{class:"col-index"},"序号",-1)),S[6]||(S[6]=c.createElementVNode("div",{class:"col-name"},"图层名称",-1)),S[7]||(S[7]=c.createElementVNode("div",{class:"col-color"},"颜色",-1))]),c.createElementVNode("div",LE,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(d.value,D=>(c.openBlock(),c.createElementBlock("div",{key:D.key,class:"list-item"},[c.createElementVNode("div",NE,[c.createElementVNode("input",{type:"checkbox",checked:h.value.includes(D.key),onChange:O=>E(D.key,O)},null,40,UE)]),c.createElementVNode("div",_E,c.toDisplayString(D.index),1),c.createElementVNode("div",{class:"col-name",title:D.layerName},c.toDisplayString(D.layerName),9,QE),c.createElementVNode("div",GE,[c.createElementVNode("input",{type:"color",value:D.layerColor,disabled:""},null,8,HE)])]))),128)),d.value.length===0?(c.openBlock(),c.createElementBlock("div",YE,"暂无数据")):c.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-a4db4977"]]),zE={class:"adjust-panel"},WE={class:"control-panel"},jE={class:"form-item"},KE={class:"radio-group"},$E={class:"form-item"},XE=["title"],qE={class:"param-row"},JE=["step"],ZE={class:"param-row"},ew=["step"],tw={class:"param-row"},iw=["step"],nw={class:"param-row"},sw=["step"],ow={class:"param-row"},rw=["step"],aw={class:"param-row"},lw=["step"],cw={class:"param-row"},dw=["step"],hw={class:"button-grid"},uw={key:1,class:"pick-mode-ui"},fw=["onClick"],pw=["checked"],gw={style:{"font-size":"12px",color:"#aaa","padding-left":"10px"}},mw={class:"param-row"},Aw={style:{width:"40px"}},yw=["onUpdate:modelValue"],Cw={class:"param-row"},Ew={style:{width:"40px"}},ww=["onUpdate:modelValue"],bw={class:"param-row"},vw={style:{width:"40px"}},Iw=["onUpdate:modelValue"],Bw={class:"list-panel"},xw={class:"list-header"},Sw={class:"col-check"},Tw=["checked"],Mw={class:"list-body"},Dw={class:"col-check"},kw=["onUpdate:modelValue"],Pw={class:"col-index"},Fw=["title"],Rw={class:"col-main"},Ow=["checked","onChange"],Lw={key:0,style:{padding:"10px","text-align":"center",color:"#999"}},Nw=Re(c.defineComponent({__name:"LeitingCadPosition",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","handleSavingByCadCard","clearBimPointList","save"],setup(i,{expose:e,emit:t}){const n=i,s=t,o=c.inject("leitingMethods"),r=c.ref([]),l=c.ref(""),a=c.computed(()=>r.value.length>0&&r.value.every(y=>y.selected)),d=c.ref("param"),h=c.ref("bimPoint1"),p=c.ref(null),f=c.ref("bimPoint1"),u=c.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=c.ref(1e-6),E=c.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=c.computed(()=>{const y=r.value.find(b=>b.modelId===l.value);return y?y.modelName:""}),C=()=>{s("update:visible",!1)},v=()=>(!p.value&&o?.value?.getViewer&&o?.value?.getCesium&&(p.value=new al(o.value.getViewer(),o.value.getCesium())),p.value),S=()=>{v()?.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},D=y=>{const b=h.value,M=u[b];if(M){M.longitude=y.longitude,M.latitude=y.latitude,M.height=y.height;const k=b==="bimPoint1"?"BIM":"MAP";v()?.addMarker(k,y),pe.success(`${M.type}已添加`)}},O=()=>{v()?.registerPickHandler(y=>{D(y)})},I=()=>{v()?.destroyPickHandler()},B=y=>{d.value=y,y!=="pick"&&s("clearBimPointList")};c.watch(()=>d.value,y=>{y==="pick"?O():I()}),c.onUnmounted(()=>{I()});const g=()=>{if(!o?.value?.getDxfModels)return;const y=o.value.getDxfModels();if(Array.isArray(y)?r.value=y.map(b=>({modelId:b.modelId,modelName:b.modelName,formData:b.formData||{},selected:!1,tileset:b})):r.value=[],r.value.length>0){const b=o.value.getCadModelId?o.value.getCadModelId():"";b&&r.value.find(M=>M.modelId===b)?P(b):P(r.value[0].modelId),r.value.forEach(M=>M.selected=!0)}},P=y=>{l.value=y;const b=r.value.find(M=>M.modelId===y);b&&b.formData&&Object.keys(E).forEach(M=>{b.formData[M]!==void 0&&(E[M]=b.formData[M])})},x=(y,b)=>{if(!o?.value?.adjustingModelByCad)return;const M=r.value.find(k=>k.modelId===y);M&&M.tileset&&(M.formData={...M.formData,...b},M.tileset.formData=M.formData,o.value.adjustingModelByCad({...M.formData,tileset:M.tileset}))},F=y=>{if(!l.value)return;const b=E[y];x(l.value,{[y]:b})},_=y=>{const b=r.value.filter(R=>R.selected);if(b.length===0){pe.warning("请先选择要调整的模型");return}const{distance:M,heightDistance:k,rotation:Q}=E;b.forEach(R=>{const T={...R.formData};switch(y){case"north":T.latitude+=M;break;case"south":T.latitude-=M;break;case"east":T.longitude+=M;break;case"west":T.longitude-=M;break;case"up":T.height+=k;break;case"down":T.height-=k;break;case"rotateLeft":T.totalRotation=(T.totalRotation||0)-Q;break;case"rotateRight":T.totalRotation=(T.totalRotation||0)+Q;break}R.modelId===l.value&&Object.assign(E,T),x(R.modelId,T)})},H=y=>{const b=y.target.checked;r.value.forEach(M=>M.selected=b)},L=()=>{s("handleSavingByCadCard",r.value),s("save",r.value)},w=()=>{const y=u.bimPoint1,b=u.bimPoint2;if(y.longitude===void 0||b.longitude===void 0){pe.warning("请先完成点选操作");return}const M=r.value.filter(U=>U.selected);if(M.length===0){pe.warning("请先选择要调整的模型");return}let k=0,Q=0,R=0;const T=v();if(T){const{dLon:U,dLat:V,dHeight:W}=T.calculateOffset(y,b);k=U,Q=V,R=W}else k=b.longitude-y.longitude,Q=b.latitude-y.latitude,R=b.height-y.height;M.forEach(U=>{const V={...U.formData};V.longitude+=k,V.latitude+=Q,V.height+=R,U.modelId===l.value&&Object.assign(E,V),x(U.modelId,V)}),pe.success("位置已调整")};return c.watch(()=>n.visible,y=>{y?g():(I(),S())}),c.onMounted(()=>{n.visible&&g()}),e({setBIMPointsList:({longitude:y,latitude:b,height:M})=>{u[f.value].longitude=y,u[f.value].latitude=b,u[f.value].height=M},addGltfOr3dTilesModelList:y=>{console.warn("addGltfOr3dTilesModelList is deprecated, use internal loading")}}),(y,b)=>(c.openBlock(),c.createBlock(ke,{visible:n.visible,title:"Cad校准",width:282,height:600,"onUpdate:visible":b[21]||(b[21]=M=>s("update:visible",M)),onClose:C},{default:c.withCtx(()=>[c.createElementVNode("div",zE,[c.createElementVNode("div",WE,[c.createElementVNode("div",jE,[b[22]||(b[22]=c.createElementVNode("label",null,"调整操作:",-1)),c.createElementVNode("div",KE,[c.createElementVNode("span",{class:c.normalizeClass({active:d.value==="param"}),onClick:b[0]||(b[0]=M=>B("param"))},"参数模式",2),c.createElementVNode("span",{class:c.normalizeClass({active:d.value==="pick"}),onClick:b[1]||(b[1]=M=>B("pick"))},"地图点选",2)])]),c.createElementVNode("div",$E,[b[23]||(b[23]=c.createElementVNode("label",null,"当前主模型:",-1)),c.createElementVNode("span",{class:"value",title:A.value},c.toDisplayString(A.value||"未选择"),9,XE)]),b[35]||(b[35]=c.createElementVNode("div",{class:"separator"},null,-1)),d.value==="param"?(c.openBlock(),c.createElementBlock(c.Fragment,{key:0},[b[31]||(b[31]=c.createElementVNode("div",{class:"group-header"},"当前状态",-1)),c.createElementVNode("div",qE,[b[24]||(b[24]=c.createElementVNode("label",null,"经度(东西):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[2]||(b[2]=M=>E.longitude=M),onChange:b[3]||(b[3]=M=>F("longitude")),step:m.value},null,40,JE),[[c.vModelText,E.longitude,void 0,{number:!0}]])]),c.createElementVNode("div",ZE,[b[25]||(b[25]=c.createElementVNode("label",null,"纬度(南北):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[4]||(b[4]=M=>E.latitude=M),onChange:b[5]||(b[5]=M=>F("latitude")),step:m.value},null,40,ew),[[c.vModelText,E.latitude,void 0,{number:!0}]])]),c.createElementVNode("div",tw,[b[26]||(b[26]=c.createElementVNode("label",null,"高度(m):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[6]||(b[6]=M=>E.height=M),onChange:b[7]||(b[7]=M=>F("height")),step:m.value},null,40,iw),[[c.vModelText,E.height,void 0,{number:!0}]])]),c.createElementVNode("div",nw,[b[27]||(b[27]=c.createElementVNode("label",null,"累计旋转(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[8]||(b[8]=M=>E.totalRotation=M),onChange:b[9]||(b[9]=M=>F("totalRotation")),step:m.value},null,40,sw),[[c.vModelText,E.totalRotation,void 0,{number:!0}]])]),b[32]||(b[32]=c.createElementVNode("div",{class:"separator"},null,-1)),b[33]||(b[33]=c.createElementVNode("div",{class:"group-header"},"调整步长",-1)),c.createElementVNode("div",ow,[b[28]||(b[28]=c.createElementVNode("label",null,"经纬步长(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[10]||(b[10]=M=>E.distance=M),step:m.value},null,8,rw),[[c.vModelText,E.distance,void 0,{number:!0}]])]),c.createElementVNode("div",aw,[b[29]||(b[29]=c.createElementVNode("label",null,"高度步长(m):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[11]||(b[11]=M=>E.heightDistance=M),step:m.value},null,8,lw),[[c.vModelText,E.heightDistance,void 0,{number:!0}]])]),c.createElementVNode("div",cw,[b[30]||(b[30]=c.createElementVNode("label",null,"旋转步长(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[12]||(b[12]=M=>E.rotation=M),step:m.value},null,8,dw),[[c.vModelText,E.rotation,void 0,{number:!0}]])]),c.createElementVNode("div",hw,[c.createElementVNode("button",{onClick:b[13]||(b[13]=M=>_("rotateLeft"))},"左转"),c.createElementVNode("button",{onClick:b[14]||(b[14]=M=>_("north"))},"北移"),c.createElementVNode("button",{onClick:b[15]||(b[15]=M=>_("rotateRight"))},"右转"),c.createElementVNode("button",{onClick:b[16]||(b[16]=M=>_("west"))},"西移"),c.createElementVNode("button",{onClick:b[17]||(b[17]=M=>_("south"))},"南移"),c.createElementVNode("button",{onClick:b[18]||(b[18]=M=>_("east"))},"东移"),c.createElementVNode("button",{onClick:b[19]||(b[19]=M=>_("up"))},"上移"),c.createElementVNode("button",{onClick:b[20]||(b[20]=M=>_("down"))},"下移"),c.createElementVNode("button",{onClick:L,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):(c.openBlock(),c.createElementBlock("div",uw,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(u,(M,k)=>(c.openBlock(),c.createElementBlock("div",{key:k,class:"form-item",style:{display:"block","margin-bottom":"15px"}},[c.createElementVNode("div",{style:{"font-weight":"bold","margin-bottom":"5px",cursor:"pointer",display:"flex","align-items":"center"},onClick:Q=>h.value=k},[c.createElementVNode("input",{type:"radio",checked:h.value===k,style:{"margin-right":"5px"}},null,8,pw),c.createTextVNode(" "+c.toDisplayString(M.type)+": ",1)],8,fw),c.createElementVNode("div",gw,[c.createElementVNode("div",mw,[c.createElementVNode("label",Aw,c.toDisplayString(M.longitudeText),1),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>M.longitude=Q,readonly:"",style:{width:"100px"}},null,8,yw),[[c.vModelText,M.longitude,void 0,{number:!0}]])]),c.createElementVNode("div",Cw,[c.createElementVNode("label",Ew,c.toDisplayString(M.latitudeText),1),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>M.latitude=Q,readonly:"",style:{width:"100px"}},null,8,ww),[[c.vModelText,M.latitude,void 0,{number:!0}]])]),c.createElementVNode("div",bw,[c.createElementVNode("label",vw,c.toDisplayString(M.heightText),1),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>M.height=Q,readonly:"",style:{width:"100px"}},null,8,Iw),[[c.vModelText,M.height,void 0,{number:!0}]])])])]))),128)),c.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[c.createElementVNode("button",{onClick:w,class:"primary-btn"},"应用校准"),c.createElementVNode("button",{onClick:L},"保存")]),b[34]||(b[34]=c.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[c.createElementVNode("div",null,"操作指南:"),c.createElementVNode("div",null,"1. 勾选上方 CAD 或 地图 标记点选项。"),c.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),c.createElementVNode("div",null,"3. 采集两点后,点击“应用校准”进行校准。")],-1))]))]),c.createElementVNode("div",Bw,[c.createElementVNode("div",xw,[c.createElementVNode("div",Sw,[c.createElementVNode("input",{type:"checkbox",checked:a.value,onChange:H},null,40,Tw)]),b[36]||(b[36]=c.createElementVNode("div",{class:"col-index"},"序号",-1)),b[37]||(b[37]=c.createElementVNode("div",{class:"col-name"},"名称",-1)),b[38]||(b[38]=c.createElementVNode("div",{class:"col-main"},"主模型",-1))]),c.createElementVNode("div",Mw,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(r.value,(M,k)=>(c.openBlock(),c.createElementBlock("div",{key:M.modelId,class:c.normalizeClass(["list-item",{active:M.modelId===l.value}])},[c.createElementVNode("div",Dw,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":Q=>M.selected=Q},null,8,kw),[[c.vModelCheckbox,M.selected]])]),c.createElementVNode("div",Pw,c.toDisplayString(k+1),1),c.createElementVNode("div",{class:"col-name",title:M.modelName},c.toDisplayString(M.modelName),9,Fw),c.createElementVNode("div",Rw,[c.createElementVNode("input",{type:"radio",name:"mainModel",checked:M.modelId===l.value,onChange:Q=>P(M.modelId)},null,40,Ow)])],2))),128)),r.value.length===0?(c.openBlock(),c.createElementBlock("div",Lw,"暂无数据")):c.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-e8abd49d"]]),Uw={class:"annotation-content"},_w={class:"annotation-tools"},Qw={class:"annotation-controls"},Gw={class:"control-group",title:"颜色"},Hw={class:"tool-item color-tool"},Yw={class:"control-group line-width-container",title:"线宽"},Vw=["onClick"],zw={class:"option-label"},Ww=Re(c.defineComponent({__name:"LeitingAnnotationCard",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods"),o=c.ref(""),r=c.ref("#ff0000"),l=c.ref(1),a=c.ref(!1),d=c.ref(null),h=c.ref(null),p=c.ref({top:"0px",left:"0px"}),f=[{value:6,label:"粗"},{value:3,label:"中"},{value:1,label:"细"}],u=()=>s?.value?.getAnnotationInstance?s.value.getAnnotationInstance():null,m=()=>{n("update:visible",!1)},E=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(r.value),B.changeColor(r.value))},C=()=>{if(!a.value&&d.value){const B=d.value.getBoundingClientRect();p.value={top:`${B.top}px`,left:`${B.right+8}px`}}a.value=!a.value},v=B=>{l.value=B,a.value=!1;const g=u();g&&(g.setCurrentWidth(B),g.changeWidth(B))},S=()=>{const B=u();B&&B.deleteSelectedEntity()},D=()=>{const B=u();B&&B.clearAll()},O=()=>{if(s?.value?.saveAnnotations){s.value.saveAnnotations();return}const B=u();B&&B.saveAnnotations()},I=B=>{const g=B.target,P=d.value&&d.value.contains(g),x=h.value&&h.value.contains(g);!P&&!x&&(a.value=!1)};return c.onMounted(()=>{document.addEventListener("click",I)}),c.onUnmounted(()=>{document.removeEventListener("click",I)}),(B,g)=>(c.openBlock(),c.createBlock(ke,{visible:t.visible,title:"标注",width:70,"min-width":70,height:480,"onUpdate:visible":g[6]||(g[6]=P=>n("update:visible",P)),onClose:m},{default:c.withCtx(()=>[c.createElementVNode("div",Uw,[c.createElementVNode("div",_w,[c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:o.value==="freehandLine"}]),onClick:g[0]||(g[0]=P=>E("freehandLine")),title:"手绘线"},[...g[7]||(g[7]=[c.createElementVNode("div",{class:"tool-icon"},"✏️",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:o.value==="arrow"}]),onClick:g[1]||(g[1]=P=>E("arrow")),title:"箭头"},[...g[8]||(g[8]=[c.createElementVNode("div",{class:"tool-icon"},"↗️",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:o.value==="straightLine"}]),onClick:g[2]||(g[2]=P=>E("straightLine")),title:"直线"},[...g[9]||(g[9]=[c.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:o.value==="rectangle"}]),onClick:g[3]||(g[3]=P=>E("rectangle")),title:"矩形"},[...g[10]||(g[10]=[c.createElementVNode("div",{class:"tool-icon"},"▭",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:o.value==="ellipse"}]),onClick:g[4]||(g[4]=P=>E("ellipse")),title:"椭圆"},[...g[11]||(g[11]=[c.createElementVNode("div",{class:"tool-icon"},"⭕",-1)])],2)]),g[13]||(g[13]=c.createElementVNode("div",{class:"separator"},null,-1)),c.createElementVNode("div",Qw,[c.createElementVNode("div",Gw,[c.createElementVNode("div",Hw,[c.createElementVNode("div",{class:"color-swatch",style:c.normalizeStyle({backgroundColor:r.value})},null,4),c.withDirectives(c.createElementVNode("input",{type:"color","onUpdate:modelValue":g[5]||(g[5]=P=>r.value=P),onChange:A,class:"color-input-overlay"},null,544),[[c.vModelText,r.value]])])]),c.createElementVNode("div",Yw,[c.createElementVNode("div",{ref_key:"lineWidthBtnRef",ref:d,class:"tool-item",onClick:c.withModifiers(C,["stop"])},[c.createElementVNode("div",{class:"current-width-preview",style:c.normalizeStyle({height:l.value+"px",backgroundColor:"#fff"})},null,4)],512),(c.openBlock(),c.createBlock(c.Teleport,{to:"body"},[a.value?(c.openBlock(),c.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:h,class:"line-width-dropdown",style:c.normalizeStyle(p.value)},[(c.openBlock(),c.createElementBlock(c.Fragment,null,c.renderList(f,P=>c.createElementVNode("div",{key:P.value,class:c.normalizeClass(["line-width-option",{selected:l.value===P.value}]),onClick:c.withModifiers(x=>v(P.value),["stop"])},[c.createElementVNode("span",zw,c.toDisplayString(P.label),1),c.createElementVNode("div",{class:"line-preview",style:c.normalizeStyle({height:P.value+"px",backgroundColor:l.value===P.value?"#1890ff":"#ddd"})},null,4)],10,Vw)),64))],4)):c.createCommentVNode("",!0)]))]),g[12]||(g[12]=c.createElementVNode("div",{class:"separator"},null,-1)),c.createElementVNode("div",{class:"action-buttons"},[c.createElementVNode("button",{class:"control-btn",onClick:S,title:"删除选中"}," 🗑️ "),c.createElementVNode("button",{class:"control-btn",onClick:D,title:"清空"}," ❌ "),c.createElementVNode("button",{class:"control-btn",onClick:O,title:"保存"}," 💾 ")])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-3cfc8415"]]),jw={class:"measure-content"},Kw={class:"measure-tools"},$w={key:0,class:"measure-results"},Xw={class:"result-row"},qw={class:"result-value"},Jw={class:"result-row"},Zw={class:"result-value"},eb={class:"result-row"},tb={class:"result-value"},ib={class:"result-row"},nb={class:"result-value"},sb={key:1,class:"result-row"},ob={class:"result-value"},rb={key:2,class:"result-row"},ab={class:"result-value"},lb={class:"measure-controls"},cb={class:"control-group",title:"单位"},db={class:"unit-display"},hb=["onClick"],ub=Re(c.defineComponent({__name:"LeitingMeasurement",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods",c.ref({})),o=c.ref(null),r=c.ref(null),l=c.ref("m"),a=c.ref(!1),d=c.ref(null),h=c.ref(!1),p=c.ref({}),f=c.ref(null),u=[{label:"米 (m)",value:"m"},{label:"厘米 (cm)",value:"cm"},{label:"毫米 (mm)",value:"mm"}],m=B=>{const g=l.value;return g==="mm"?`${(B*1e3).toFixed(0)}mm`:g==="cm"?`${(B*100).toFixed(1)}cm`:`${B.toFixed(2)}m`},E=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 tl({viewer:B,cesium:g}),o.value.setUnit(l.value),o.value.setSnapping(a.value),o.value.onMeasure=P=>{d.value=P})}},C=B=>{o.value||A(),r.value===B?(r.value=null,o.value?.stop()):(r.value=B,o.value?.start(B))},v=B=>{l.value=B,h.value=!1},S=()=>{o.value&&(o.value.clearAll(),r.value=null,o.value.stop())},D=()=>{n("update:visible",!1)},O=B=>{if(h.value){h.value=!1;return}const P=B.currentTarget.getBoundingClientRect();p.value={position:"fixed",top:`${P.top}px`,left:`${P.right+5}px`,zIndex:3e3},h.value=!0},I=B=>{h.value&&f.value&&!f.value.contains(B.target)&&(h.value=!1)};return c.onMounted(()=>{document.addEventListener("click",I),t.visible&&c.nextTick(()=>A())}),c.onUnmounted(()=>{document.removeEventListener("click",I),o.value&&o.value.destroy()}),c.watch(()=>t.visible,B=>{B?c.nextTick(()=>A()):o.value&&(o.value.stop(),r.value=null)}),c.watch(s,B=>{B&&B.getViewer&&!o.value&&t.visible&&A()}),c.watch(l,B=>{o.value&&o.value.setUnit(B)}),(B,g)=>(c.openBlock(),c.createBlock(ke,{visible:t.visible,title:"量算",width:70,"min-width":70,height:480,"onUpdate:visible":g[3]||(g[3]=P=>n("update:visible",P)),onClose:D},{default:c.withCtx(()=>[c.createElementVNode("div",jw,[c.createElementVNode("div",Kw,[c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:r.value==="distance"}]),onClick:g[0]||(g[0]=P=>C("distance")),title:"距离测量"},[...g[4]||(g[4]=[c.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:r.value==="angle"}]),onClick:g[1]||(g[1]=P=>C("angle")),title:"角度测量"},[...g[5]||(g[5]=[c.createElementVNode("div",{class:"tool-icon"},"📐",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:r.value==="area"}]),onClick:g[2]||(g[2]=P=>C("area")),title:"面积测量"},[...g[6]||(g[6]=[c.createElementVNode("div",{class:"tool-icon"},"🔳",-1)])],2)]),g[15]||(g[15]=c.createElementVNode("div",{class:"separator"},null,-1)),d.value?(c.openBlock(),c.createElementBlock("div",$w,[d.value.type==="distance"?(c.openBlock(),c.createElementBlock(c.Fragment,{key:0},[c.createElementVNode("div",Xw,[g[7]||(g[7]=c.createElementVNode("span",{class:"result-label"},"总长:",-1)),c.createElementVNode("span",qw,c.toDisplayString(m(d.value.dist)),1)]),c.createElementVNode("div",Jw,[g[8]||(g[8]=c.createElementVNode("span",{class:"result-label",style:{color:"#ff4d4f"}},"ΔX:",-1)),c.createElementVNode("span",Zw,c.toDisplayString(m(d.value.dx)),1)]),c.createElementVNode("div",eb,[g[9]||(g[9]=c.createElementVNode("span",{class:"result-label",style:{color:"#52c41a"}},"ΔY:",-1)),c.createElementVNode("span",tb,c.toDisplayString(m(d.value.dy)),1)]),c.createElementVNode("div",ib,[g[10]||(g[10]=c.createElementVNode("span",{class:"result-label",style:{color:"#1890ff"}},"ΔZ:",-1)),c.createElementVNode("span",nb,c.toDisplayString(m(d.value.dz)),1)])],64)):c.createCommentVNode("",!0),d.value.type==="angle"?(c.openBlock(),c.createElementBlock("div",sb,[g[11]||(g[11]=c.createElementVNode("span",{class:"result-label"},"角度:",-1)),c.createElementVNode("span",ob,c.toDisplayString(d.value.angle.toFixed(1))+"°",1)])):c.createCommentVNode("",!0),d.value.type==="area"?(c.openBlock(),c.createElementBlock("div",rb,[g[12]||(g[12]=c.createElementVNode("span",{class:"result-label"},"面积:",-1)),c.createElementVNode("span",ab,c.toDisplayString(E(d.value.area)),1)])):c.createCommentVNode("",!0)])):c.createCommentVNode("",!0),c.createElementVNode("div",lb,[c.createElementVNode("div",cb,[c.createElementVNode("div",{class:"tool-item",onClick:c.withModifiers(O,["stop"])},[c.createElementVNode("div",db,c.toDisplayString(l.value),1)]),(c.openBlock(),c.createBlock(c.Teleport,{to:"body"},[h.value?(c.openBlock(),c.createElementBlock("div",{key:0,ref_key:"unitDropdownRef",ref:f,class:"unit-dropdown",style:c.normalizeStyle(p.value)},[(c.openBlock(),c.createElementBlock(c.Fragment,null,c.renderList(u,P=>c.createElementVNode("div",{key:P.value,class:c.normalizeClass(["unit-option",{selected:l.value===P.value}]),onClick:c.withModifiers(x=>v(P.value),["stop"])},c.toDisplayString(P.label),11,hb)),64))],4)):c.createCommentVNode("",!0)]))]),g[14]||(g[14]=c.createElementVNode("div",{class:"separator"},null,-1)),c.createElementVNode("div",{class:"action-buttons"},[c.createElementVNode("div",{class:"tool-item control-btn",onClick:S,title:"清空"},[...g[13]||(g[13]=[c.createElementVNode("div",{class:"tool-icon"},"🗑️",-1)])])])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-b766acb4"]]);function fb(){const i=c.ref(!1),e=c.reactive({x:0,y:0}),t=c.ref([]),n=c.ref(null);return{visible:i,position:e,items:t,contextData:n,show:(a,d,h)=>{a instanceof MouseEvent?(a.preventDefault(),e.x=a.clientX,e.y=a.clientY):(e.x=a.x,e.y=a.y),t.value=d,n.value=h,i.value=!0},hide:()=>{i.value=!1},addItem:a=>{t.value.push(a)},removeItem:a=>{t.value=t.value.filter(d=>d.id!==a)}}}const pb=["onClick"],gb={class:"menu-label"},mb={key:0,class:"menu-arrow"},Ab=Re(c.defineComponent({__name:"LeitingContextMenu",props:{visible:{type:Boolean},position:{},items:{}},emits:["update:visible","action"],setup(i,{emit:e}){const t=i,n=e,s=r=>{r.disabled||(r.action&&r.action(),n("action",r),n("update:visible",!1))},o=()=>{t.visible&&n("update:visible",!1)};return c.onMounted(()=>{document.addEventListener("click",o),document.addEventListener("contextmenu",r=>{r.target.closest(".leiting-context-menu")||o()})}),c.onUnmounted(()=>{document.removeEventListener("click",o)}),(r,l)=>c.withDirectives((c.openBlock(),c.createElementBlock("div",{class:"leiting-context-menu",style:c.normalizeStyle({left:i.position.x+"px",top:i.position.y+"px"}),onContextmenu:l[0]||(l[0]=c.withModifiers(()=>{},["prevent"]))},[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(i.items,a=>(c.openBlock(),c.createElementBlock("div",{key:a.id,class:c.normalizeClass(["menu-item",{"menu-divided":a.divided,"menu-disabled":a.disabled}]),onClick:d=>s(a)},[c.createElementVNode("span",gb,c.toDisplayString(a.label),1),a.children?(c.openBlock(),c.createElementBlock("span",mb,"▶")):c.createCommentVNode("",!0)],10,pb))),128))],36)),[[c.vShow,i.visible]])}}),[["__scopeId","data-v-f288753b"]]),pn=Re(c.defineComponent({__name:"LeitingBIM",props:{accessToken:{},cesiumUrl:{},cesiumCssUrl:{},methods:{},viewerOptions:{},treeProps:{},showTree:{type:Boolean,default:!0},showMenu:{type:Boolean,default:!1},playerUrl:{default:"https://leiting.chenxisoft.com/resource/person/person.glb"},playerModelName:{default:"Person"},playerModelId:{default:"player_111"},playerScale:{default:.0032},tiandituToken:{default:"c25f14fb6bd4397cf8fe45144ff768d6"},globe:{type:Boolean,default:void 0},terrain:{type:Boolean,default:void 0},depthTest:{type:Boolean,default:void 0},mapProvider:{},tiandituLayerType:{},tiandituShowLabel:{type:Boolean,default:void 0},arcgisUrl:{},shadows:{type:Boolean,default:void 0},environmentMap:{type:Boolean,default:void 0},ambientOcclusion:{type:Boolean,default:void 0},time:{},brightness:{},backgroundColor:{},collision:{type:Boolean,default:void 0},mouseHabit:{},mode:{default:"3d"},mountAll3Dtiles:{},mountAllCad:{},saveRegion:{},saveCadRegion:{},saveCadCalibration:{},selectionChange:{},searchComponent:{}},emits:["register","init","ready"],setup(i,{emit:e}){const t=c.ref(),n=c.ref(),s=c.getCurrentInstance(),o=c.ref(!1),r=c.ref(""),l=c.ref({}),a=c.ref("3d"),d=i,h={title:"构件树",treeData:[]},p=c.ref(!1),f=c.ref(!1),u=c.ref(!1),m=c.ref(!1),E=c.ref(!1),A=c.ref(!1),C=c.ref(!1),v=c.ref(!1),S=c.ref(!1),D=c.ref(!1),{visible:O,position:I,items:B,show:g,hide:P}=fb(),x=c.ref([]),F=Y=>{x.value.push(Y)},_=Y=>{x.value=x.value.filter(j=>j.id!==Y)},H=c.ref([]),L=c.ref(""),w=c.ref(null),y=c.ref([]),b=c.reactive({tree:!1,section:!1,roam:!1,info:!1,adjustModel:!1,setting:!1,cadLayer:!1,cadPosition:!1,annotation:!1}),M=(Y,j)=>{Y==="componentTree"&&(Y="tree"),Y==="componentInfo"&&(Y="info"),Y in b&&(b[Y]=j)},k=c.shallowRef({});c.provide("leitingMethods",k);const Q=c.ref(d.showMenu),R=c.ref([]);c.watch(()=>d.showMenu,Y=>{Q.value=Y},{immediate:!0}),c.watch(()=>d.mode,Y=>{Y&&k.value?.set2d&&k.value.set2d(Y==="2d")});const T=c.ref("dark");c.provide("leiting-theme",T);const U=c.ref([]),V=c.computed(()=>{const Y=[];return p.value&&(Y.push("tree"),Y.push("componentTree")),f.value&&Y.push("section"),u.value&&Y.push("roam"),m.value&&(Y.push("info"),Y.push("componentInfo")),E.value&&Y.push("adjust"),A.value&&Y.push("setting"),C.value&&Y.push("cadLayer"),v.value&&Y.push("cadPosition"),S.value&&Y.push("annotation"),D.value&&(Y.push("measure"),Y.push("measurement")),Y.push(...U.value),Y}),W=c.ref(null),X=(Y,j)=>{Y==="componentTree"||Y==="tree"?p.value=j:Y==="section"?f.value=j:Y==="roam"?u.value=j:Y==="componentInfo"||Y==="info"?m.value=j:Y==="homeView"?k.value?.is2dMode?.()?k.value?.flyToTopView?.({}):k.value?.flyToTileset?.({}):Y==="adjustModel"?(E.value=j,j&&W.value&&W.value.setModelType("BIM")):Y==="osgbAdjust"?(E.value=j,j&&W.value&&W.value.setModelType("OSGB")):Y==="setting"?A.value=j:Y==="cadLayer"?C.value=j:Y==="cadPosition"?v.value=j:Y==="annotation"?S.value=j:Y==="measurement"?D.value=j:j?U.value.includes(Y)||U.value.push(Y):U.value=U.value.filter(te=>te!==Y)};c.watch(p,async Y=>{if(Y&&k.value?.loadTreeForModel&&k.value?.getMapTileset){const j=k.value.getMapTileset(),te=Object.values(j).map(async le=>{if(le.leiting&&le.leiting.model?.treeUrl){const re=le.leiting.model.modelId;try{le.leiting?.node?.batchIdEIDInfos||await k.value.loadNodeDetailsForModel(re);const ce=await k.value.loadTreeForModel(re);ce&&(Array.isArray(ce)?ce:[ce]).forEach(Te=>{Te&&!y.value.find(et=>et.id===Te.id)&&(Te.modelId=re,y.value=[...y.value,Te])})}catch(ce){console.warn(`Failed to lazy load tree for ${re}`,ce)}}});await Promise.all(te)}});const ee=()=>{k.value&&(k.value.getDxfModels&&(H.value=k.value.getDxfModels()||[]),k.value.getCadModelId&&(L.value=k.value.getCadModelId()||""))};c.watch(C,Y=>{Y&&ee()}),c.watch(v,Y=>{Y&&(ee(),w.value&&H.value.length&&w.value.addGltfOr3dTilesModelList(H.value))});const oe=e,ne=Y=>{k.value&&k.value.saveCadCalibration&&k.value.saveCadCalibration(Y),k.value&&k.value.saveCadRegion&&k.value.saveCadRegion(Y)};return c.onMounted(async()=>{if(n.value&&pe.setContainer(n.value),!!t.value)try{const Y={...ft,cesiumUrl:d.cesiumUrl||ft.cesiumUrl,cesiumCssUrl:d.cesiumCssUrl||ft.cesiumCssUrl,accessToken:d.accessToken||wn()||ft.accessToken};await En(Y);const j=d.accessToken||wn()||ft.accessToken;j&&(Cesium.Ion.defaultAccessToken=j),o.value=!0;const te=async(re={},ce)=>{if(t.value){const{showMenu:ve,showTree:Te,globe:et,terrain:xt,depthTest:gn,mapProvider:St,tiandituLayerType:mn,tiandituShowLabel:vi,arcgisUrl:Wt,shadows:ks,environmentMap:Eb,ambientOcclusion:wb,time:bb,brightness:vb,backgroundColor:Ib,collision:Bb,mouseHabit:xb,heightBasedZoom:Sb,mode:Al,...Xe}=re||{},Tb=d.showMenu!==void 0?d.showMenu:ve!==void 0?ve:!0;Q.value=Tb;const Me=(q,Ce,Ye)=>q!==void 0?q:Ce!==void 0?Ce:Ye,yl=Me(d.globe,et,!1),Cl=Me(d.terrain,xt,!1),El=Me(d.depthTest,gn,!1),wl=Me(d.mapProvider,St,"tianditu"),bl=Me(d.tiandituLayerType,mn,"img_w"),vl=Me(d.tiandituShowLabel,vi,!1),Il=Me(d.arcgisUrl,Wt,"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"),Bl=Me(d.shadows,ks,!1),xl=Me(d.environmentMap,Eb,!1),Sl=Me(d.ambientOcclusion,wb,!1),Tl=Me(d.time,bb,void 0),Ml=Me(d.brightness,vb,1),An=d.mode||Al||"3d";console.log("LeitingBIM Mode:",An,"Props:",d.mode,"Options:",Al),a.value=An;const Mb=An==="2d"?"#000000":"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)",Dl=Me(d.backgroundColor,Ib,Mb),kl=Me(d.collision,Bb,!1),Pl=Me(d.mouseHabit,xb,0),Fl=Me(d.heightBasedZoom,Sb,!1);l.value={globe:yl,terrain:Cl,depthTest:El,mapProvider:wl,tiandituLayerType:bl,tiandituShowLabel:vl,arcgisUrl:Il,shadows:Bl,environmentMap:xl,ambientOcclusion:Sl,time:Tl,brightness:Ml,backgroundColor:Dl,collision:kl,mouseHabit:Pl,heightBasedZoom:Fl};const Ii=uy({container:t.value,appContext:s?.appContext,methods:{...k.value,handleMenuAction:X,setCardFullHeight:M,onLoadingStatus:q=>{q?pe.loading(q,"",n.value):pe.close()},...Xe,tilesLoad3dTiles:async q=>{let Ce=q.leiting?.tree;const Ye=q.leiting?.model?.modelId;if(!Ce&&p.value&&k.value?.loadTreeForModel)try{Ce=await k.value.loadTreeForModel(Ye)}catch(xi){console.warn("Failed to lazy load tree",xi)}Ce&&(Array.isArray(Ce)?Ce:[Ce]).forEach(Mt=>{Mt&&!y.value.find(Ol=>Ol.id===Mt.id)&&(Mt.modelId=Ye,y.value=[...y.value,Mt])});const{brightness:Ps,contrast:Fs,saturation:tt}=Ii.methods.getConfigure();Ii.methods.setModelColorAdjustment({brightness:Ps,contrast:Fs,saturation:tt}),Xe.tilesLoad3dTiles?.(q)},mountAll3Dtiles:q=>{d.mountAll3Dtiles&&d.mountAll3Dtiles(q),Xe.mountAll3Dtiles?.(q)},updateModels:q=>{if(Array.isArray(q))if(q.length===0)y.value=[];else{const Ce=q.map(Ye=>Ye.modelId);y.value=y.value.filter(Ye=>Ce.includes(Ye.modelId))}},mountAllCad:q=>{if(Ii.methods.setModelBrightness){const Ce=d.brightness!==void 0?d.brightness:l.value.brightness;Ce!==void 0&&Ii.methods.setModelBrightness(Ce)}d.mountAllCad&&d.mountAllCad(q),Xe.mountAllCad?.(q)},saveRegion:q=>{d.saveRegion&&d.saveRegion(q),Xe.saveRegion?.(q)},saveCadRegion:q=>{d.saveCadRegion&&d.saveCadRegion(q),Xe.saveCadRegion?.(q)},saveCadCalibration:q=>{d.saveCadCalibration&&d.saveCadCalibration(q),Xe.saveCadCalibration?.(q)},selectionChange:q=>{d.selectionChange&&d.selectionChange(q),Xe.selectionChange?.(q)},onSearchComponent:q=>{d.searchComponent&&d.searchComponent(q),Xe.searchComponent?.(q)}},viewerOptions:d.viewerOptions,options:{...Xe,mode:An,playerUrl:d.playerUrl,playerModelName:d.playerModelName,playerModelId:d.playerModelId,playerScale:d.playerScale,globe:yl,terrain:Cl,depthTest:El,mapProvider:wl,tiandituLayerType:bl,tiandituShowLabel:vl,tiandituToken:d.tiandituToken,arcgisUrl:Il,shadows:Bl,environmentMap:xl,ambientOcclusion:Sl,time:Tl,brightness:Ml,backgroundColor:Dl,collision:kl,mouseHabit:Pl,heightBasedZoom:Fl},callbacks:{onLoading:q=>q?pe.loading(q,"",n.value):pe.close(),onSuccess:q=>pe.success(q,"",void 0,n.value),onError:q=>pe.error(q,"",void 0,n.value)}}),{Cesium:Tt,viewer:jt,methods:yn,menuEvents:Bi}=Ii,ge=yn;Bi.on("showMenu",q=>{Q.value=q}),Bi.on("insertMenu",q=>{R.value=[...R.value,...q]}),Bi.on("setMenuActive",(q,Ce)=>{X(q,Ce)}),k.value=ge,ce&&(ce.value=ge),Bi.on("setMode",q=>{a.value=q}),Bi.on("deleteAllModels",()=>{y.value=[]}),new Tt.ScreenSpaceEventHandler(jt.scene.canvas).setInputAction(async q=>{if(P(),a.value==="2d")return;const Ce=jt.scene.pick(q.position),Ye=jt.container.getBoundingClientRect(),Ps=Ye.left+q.position.x,Fs=Ye.top+q.position.y,tt=[];if(Tt.defined(Ce)&&Ce instanceof Tt.Cesium3DTileFeature){const xi=ge.baseCompt.getFeatureId(Ce),Mt=ri(Ce.tileset);ge.baseCompt.hasSelectedFeaturesMap[Mt]?.some(Si=>Si.batchId===xi&&Si.rank===0)||(await ge.baseCompt.clearSelection(),await ge.baseCompt.toggleMultiSelect(Mt,xi,ge.baseCompt.selectedColor)),tt.push({id:"details",label:"构件详情",action:()=>{m.value=!0}}),tt.push({id:"hide",label:"隐藏选中构件",action:async()=>{const Ti=(await ge.baseCompt.getSelected()).map(it=>({elementId:it.elementId,modelId:it.modelId,show:!1}));ge.baseCompt.setComponentVisibility(Ti)}}),tt.push({id:"translucent",label:"半透明选中构件",action:async()=>{const Ti=(await ge.baseCompt.getSelected()).map(it=>({elementId:it.elementId,modelId:it.modelId,rgba:{...it.rgba,a:.3}}));await ge.baseCompt.setSelectColorUserModelCpt(Ti,{rank:0})}}),tt.push({id:"isolate",label:"隔离选中构件",divided:!0,action:async()=>{await ge.baseCompt.loadAllNodeDetailsForModel();const Ti=(await ge.baseCompt.getSelected()).map(it=>({elementId:it.elementId,modelId:it.modelId,show:!0}));ge.baseCompt.isolateComponentVisibility(Ti)}})}tt.push({id:"showAll",label:"显示所有",action:async()=>{ge.baseCompt.setAllComponentsVisibility(!0),await ge.baseCompt.clearSelection()}}),tt.push(...x.value),g({x:Ps,y:Fs},tt)},Tt.ScreenSpaceEventType.RIGHT_CLICK),ge.addContextMenuItems=F,ge.insertContextMenu=ge.addContextMenuItems,ge.removeContextMenuItems=_,ge.deleteContextMenu=ge.removeContextMenuItems,ge.closeContextMenu=P,ge.hideContextMenu=ge.closeContextMenu,await c.nextTick();const Rl=re?.onLoaded||re?.onloaded;Rl&&Rl({Cesium:Tt,viewer:jt,methods:yn}),oe("init",{Cesium:Tt,viewer:jt,methods:yn}),oe("ready",{Cesium:Tt,viewer:jt,methods:yn})}};let le=!1;oe("register",(re,ce)=>{le=!0,te(re,ce)}),le||setTimeout(()=>{k.value.getViewer||te()},0)}catch(Y){r.value="Failed to load Cesium: "+(Y.message||Y),console.error(Y)}}),c.onUnmounted(()=>{pe.setContainer(null)}),(Y,j)=>(c.openBlock(),c.createElementBlock("div",{class:c.normalizeClass(["leiting-bim-container",[`theme-${T.value}`]]),onContextmenu:j[11]||(j[11]=c.withModifiers(()=>{},["prevent","stop"]))},[!o.value&&!r.value?(c.openBlock(),c.createBlock(c.unref(me.Spin),{key:0,class:"loading",size:"large",tip:"加载基础组件中..."})):c.createCommentVNode("",!0),r.value?(c.openBlock(),c.createBlock(c.unref(me.Alert),{key:1,class:"error",type:"error",message:r.value,"show-icon":""},null,8,["message"])):c.createCommentVNode("",!0),c.createElementVNode("div",{ref_key:"containerRef",ref:t,class:"cesium-viewer"},[c.createElementVNode("div",{ref_key:"uiOverlayRef",ref:n,class:"leiting-ui-overlay"},[c.createVNode(Ei,{visible:m.value,"full-height":b.info,"onUpdate:visible":j[0]||(j[0]=te=>m.value=te)},null,8,["visible","full-height"]),c.createVNode(wi,{ref_key:"LeitingPositionRef",ref:W,visible:E.value,"full-height":b.adjustModel,"onUpdate:visible":j[1]||(j[1]=te=>E.value=te)},null,8,["visible","full-height"]),c.createVNode(bi,{visible:A.value,"full-height":b.setting,"tianditu-token":d.tiandituToken,"initial-config":l.value,"onUpdate:visible":j[2]||(j[2]=te=>A.value=te)},null,8,["visible","full-height","tianditu-token","initial-config"]),i.showTree!==!1?(c.openBlock(),c.createBlock(rn,c.mergeProps({key:0},{...h,...i.treeProps},{visible:p.value,"full-height":b.tree,"tree-data":y.value.length>0?y.value:i.treeProps?.treeData||[],"onUpdate:visible":j[3]||(j[3]=te=>{p.value=te})}),null,16,["visible","full-height","tree-data"])):c.createCommentVNode("",!0),c.createVNode(Ww,{visible:S.value,"onUpdate:visible":j[4]||(j[4]=te=>S.value=te)},null,8,["visible"]),c.createVNode(ub,{visible:D.value,"onUpdate:visible":j[5]||(j[5]=te=>D.value=te)},null,8,["visible"]),c.createVNode(yi,{visible:f.value,"full-height":b.section,"onUpdate:visible":j[6]||(j[6]=te=>f.value=te)},null,8,["visible","full-height"]),c.createVNode(Ci,{visible:u.value,"full-height":b.roam,"onUpdate:visible":j[7]||(j[7]=te=>u.value=te)},null,8,["visible","full-height"]),c.createVNode(Ai,{visible:Q.value,"active-ids":V.value,"custom-items":R.value,onAction:X,"is-2d":a.value==="2d"},null,8,["visible","active-ids","custom-items","is-2d"]),c.createVNode(VE,{visible:C.value,"current-model-id":L.value,"onUpdate:visible":j[8]||(j[8]=te=>C.value=te)},null,8,["visible","current-model-id"]),c.createVNode(Nw,{ref_key:"cadPositionRef",ref:w,visible:v.value,"onUpdate:visible":j[9]||(j[9]=te=>v.value=te),onSave:ne},null,8,["visible"]),c.createVNode(Ab,{visible:c.unref(O),position:c.unref(I),items:c.unref(B),"onUpdate:visible":j[10]||(j[10]=te=>O.value=te)},null,8,["visible","position","items"]),c.renderSlot(Y.$slots,"default",c.normalizeProps(c.guardReactiveProps({methods:k.value,isReady:o.value})),void 0,!0)],512)],512)],34))}}),[["__scopeId","data-v-3ac9f73e"]]);function ml(i){const e=c.ref(),t=c.ref(i.theme||"dark"),n=c.ref(i.menuSize||"medium");c.provide("leiting-theme",t),c.provide("leiting-menu-size",n);function s(l){c.onUnmounted(()=>{e.value=null}),l(i,e)}function o(){const l=c.unref(e);return l||console.error("未获取到leiting实例!"),l}const r=new Proxy({},{get(l,a){const d=o();if(!d)return;const h=d[a];return typeof h=="function"?h.bind(d):h},set(l,a,d){const h=o();return h?(h[a]=d,!0):!1}});return[s,r]}const yb=ft,Cb={install:(i,e)=>{if(i.component("LeitingBIM",pn),i.component("LeitingTree",rn),i.component("LeitingDraggableCard",ke),i.component("leiting-draggable-card",ke),i.component("LeitingMenu",Ai),i.component("leiting-menu",Ai),i.component("LeitingSection",yi),i.component("leiting-section",yi),i.component("LeitingPlayer",Ci),i.component("leiting-player",Ci),i.component("LeitingInfo",Ei),i.component("leiting-info",Ei),i.component("LeitingPosition",wi),i.component("leiting-position",wi),i.component("LeitingSetting",bi),i.component("leiting-setting",bi),!e)return;const t={...yb,...e};t.cesiumUrl&&En(t).catch(n=>{console.error("[LeitingBim] Failed to load Cesium resources:",n)}),i.config.globalProperties.$leitingBimOptions=t}};N.DEFAULT_CESIUM_CONFIG=ft,N.LeiTingBIM=pn,N.LeiTingDraggableCard=ke,N.LeiTingInfo=Ei,N.LeiTingMenu=Ai,N.LeiTingPlayer=Ci,N.LeiTingPosition=wi,N.LeiTingSection=yi,N.LeiTingSetting=bi,N.LeiTingTree=rn,N.LeitingBIM=pn,N.LeitingDraggableCard=ke,N.LeitingInfo=Ei,N.LeitingMenu=Ai,N.LeitingPlayer=Ci,N.LeitingPosition=wi,N.LeitingSection=yi,N.LeitingSetting=bi,N.LeitingTree=rn,N.default=Cb,N.getAccessToken=wn,N.leitingBim=pn,N.loadCesium=En,N.useLeiTing=ml,N.useLeiting=ml,N.waitForCesium=_l,Object.defineProperties(N,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
118
|
+
`});f.isModelAdjustment=!0,p.customShader=f}else e.brightness!==void 0&&e.brightness!==1&&!p.style&&(p.style=new n.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 n=t.postProcessStages.ambientOcclusion;n.enabled=e,e&&(n.uniforms.ambientOcclusionOnly=!1,n.uniforms.intensity=3,n.uniforms.bias=.1,n.uniforms.lengthCap=.03,n.uniforms.stepSize=1,n.uniforms.blurStepSize=.86)}setCollisionDetection(e){if(this.is2d){this.viewer.scene.screenSpaceCameraController.enableCollisionDetection=!1;return}const t=this.viewer.scene.screenSpaceCameraController;t.enableCollisionDetection=e,e||t.minimumZoomDistance<1&&(t.minimumZoomDistance=1)}_customZoomHandler=null;_zoomInertiaListener=null;setHeightBasedZoom(e){const t=this.viewer.scene.screenSpaceCameraController,n=this.cesium;if(this.viewer.camera.frustum.near=1e-5,this.viewer.camera.frustum.far=1e8,e||(this.viewer.camera.frustum.near=.1),this._customZoomHandler&&(this._customZoomHandler.destroy(),this._customZoomHandler=null),this._zoomInertiaListener&&(this._zoomInertiaListener(),this._zoomInertiaListener=null),!e){t.zoomEventTypes.includes(n.CameraEventType.WHEEL)||t.zoomEventTypes.push(n.CameraEventType.WHEEL);return}t.zoomEventTypes=t.zoomEventTypes.filter(l=>l!==n.CameraEventType.WHEEL),this._customZoomHandler=new n.ScreenSpaceEventHandler(this.viewer.scene.canvas);let s=null;this._customZoomHandler.setInputAction(l=>{s=l.endPosition},n.ScreenSpaceEventType.MOUSE_MOVE);let o=0,r=null;this._zoomInertiaListener=this.viewer.scene.preUpdate.addEventListener(()=>{if(Math.abs(o)<.001||!r){o=0;return}const l=this.viewer.camera,a=o*.2;if(s){const h=l.getPickRay(s);if(h){let p=this.viewer.scene.pickPosition(s);if(!p){const f=n.IntersectionTests.rayEllipsoid(h,this.viewer.scene.globe.ellipsoid);f&&(p=n.Ray.getPoint(h,f.start))}if(p){const f=n.Cartesian3.distance(l.position,p);if(a>0&&a>f-.01){if(o=0,f>.01){const u=n.Cartesian3.multiplyByScalar(r,f-.01,new n.Cartesian3);l.position=n.Cartesian3.add(l.position,u,new n.Cartesian3)}return}}}}const d=n.Cartesian3.multiplyByScalar(r,a,new n.Cartesian3);l.position=n.Cartesian3.add(l.position,d,new n.Cartesian3),o-=a}),this._customZoomHandler.setInputAction(l=>{const a=this.viewer.camera,d=a.positionCartographic.height;let h=.1;d<4?h=.08+d/4*.08:d>1e3&&(h=.1+Math.min((d-1e3)/1e3,1)*.1);let p=d*h;p=Math.max(.001,p);const f=Math.sign(l);if(d<.2&&f>0){pe.warning("无法继续放大");return}if(!s)r=a.direction;else{const u=a.getPickRay(s);if(u){let m=this.viewer.scene.pickPosition(s);if(!m){const E=n.IntersectionTests.rayEllipsoid(u,this.viewer.scene.globe.ellipsoid);E&&(m=n.Ray.getPoint(u,E.start))}if(m){const E=n.Cartesian3.subtract(m,a.position,new n.Cartesian3);r=n.Cartesian3.normalize(E,new n.Cartesian3)}else r=a.direction}else r=a.direction}o+=f>0?p:-p},n.ScreenSpaceEventType.WHEEL)}setMouseHabit(e){if(this.is2d)return;const t=this.viewer.scene.screenSpaceCameraController;t.enableTranslate=!0,t.enableRotate=!0,t.enableZoom=!0,t.enableTilt=!0,t.enableLook=!1,t.lookEventTypes=[],e===1?(t.rotateEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.MIDDLE_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.LEFT_DRAG]):(t.rotateEventTypes=[this.cesium.CameraEventType.LEFT_DRAG],t.zoomEventTypes=[this.cesium.CameraEventType.RIGHT_DRAG,this.cesium.CameraEventType.WHEEL,this.cesium.CameraEventType.PINCH],t.tiltEventTypes=[this.cesium.CameraEventType.PINCH,this.cesium.CameraEventType.MIDDLE_DRAG])}}class hy{cesium;viewer;constructor(e){this.cesium=e.cesium,this.viewer=e.viewer}getCameraView(){const e=this.viewer.camera;return{position:{x:e.position.x,y:e.position.y,z:e.position.z},destination:{x:e.position.x,y:e.position.y,z:e.position.z},orientation:{heading:e.heading,pitch:e.pitch,roll:e.roll},duration:1}}flyToCameraView(e){const{position:t,orientation:n,duration:s}=e,o=new this.cesium.Cartesian3(t.x,t.y,t.z),r=new this.cesium.HeadingPitchRoll(n.heading,n.pitch,n.roll);!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}getCurrentCameraPositionAndTarget(){const e=this.getCameraView();return{position:e.position,target:{heading:e.orientation.heading,pitch:e.orientation.pitch,roll:e.orientation.roll},duration:e.duration}}setCameraView(e){const t=e.target||e.orientation||{},n=e.destination||e.position||{};this.flyToCameraView({position:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},destination:{x:Number(n.x),y:Number(n.y),z:Number(n.z)},orientation:{heading:Number(t.heading||0),pitch:Number(t.pitch||0),roll:Number(t.roll||0)},duration:e.duration})}flyToLonLatHeight(e,t,n,s=1){const o=this.cesium.Cartesian3.fromDegrees(e,t,n),r={heading:this.cesium.Math.toRadians(0),pitch:this.cesium.Math.toRadians(-90),roll:0};!s||s<=0?this.viewer.camera.setView({destination:o,orientation:r}):this.viewer.camera.flyTo({destination:o,orientation:r,duration:s})}}function uy(i){const{container:e,appContext:t,methods:n,viewerOptions:s,options:o,callbacks:r}=i,l=new Gi,a=window.Cesium;if(!a)throw new Error("Cesium is not loaded");e.id=`cesium-container-${op()}`;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,p={...d,...h?.viewerOptions??{},...s??{}},f=new a.Viewer(e,p);f.camera.setView({destination:a.Cartesian3.fromDegrees(108,32,1e7),orientation:{heading:a.Math.toRadians(0),pitch:a.Math.toRadians(-90),roll:0}});let u=n;if(!u&&h&&(h.methods||(h.methods={}),u=h.methods),u){const m=new yp({cesium:a,viewer:f,options:o,callbacks:r}),E=new Dr({cesium:a,viewer:f}),A=new dy({cesium:a,viewer:f}),C=new Cp({cesium:a,viewer:f}),v=new hy({cesium:a,viewer:f});let S;const D=new tl({cesium:a,viewer:f});o&&(o.globe!==void 0&&A.setGlobeEnvironmentVisible(o.globe),o.terrain!==void 0&&A.setTerrainEnable(o.terrain),o.depthTest!==void 0&&A.setDepthTestEnable(o.depthTest),o.mapProvider&&o.mode!=="2d"&&A.changeBaseMap(o.mapProvider,{token:o.tiandituToken,layerType:o.tiandituLayerType,showAnnotation:o.tiandituShowLabel,url:o.arcgisUrl}),o.shadows!==void 0&&A.setShadowsEnable(o.shadows),o.environmentMap!==void 0&&A.setEnvironmentMapEnable(o.environmentMap),o.ambientOcclusion!==void 0&&A.setAmbientOcclusion(o.ambientOcclusion),o.time!==void 0&&A.setTime(o.time),o.brightness!==void 0&&A.setModelBrightness(o.brightness),o.backgroundColor!==void 0&&A.setBackgroundColor(o.backgroundColor),o.collision!==void 0&&A.setCollisionDetection(o.collision),o.mouseHabit!==void 0&&A.setMouseHabit(o.mouseHabit),o.heightBasedZoom!==void 0&&A.setHeightBasedZoom(o.heightBasedZoom)),o&&o.mode==="2d"&&(console.log("InitMap: Setting CAD Mode 2D"),A.setCadMode("2d"),S=new el({cesium:a,viewer:f})),E.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)}),E.events.on("loadingStatus",g=>{u&&u.onLoadingStatus&&u.onLoadingStatus(g)}),E.events.on("mountAll3Dtiles",({modelList:g})=>{o?.mountAll3Dtiles&&o.mountAll3Dtiles(g),u?.mountAll3Dtiles&&u.mountAll3Dtiles(g)}),E.events.on("updateModels",({modelList:g})=>{o?.updateModels&&o.updateModels(g),u?.updateModels&&u.updateModels(g)}),C.events.on("mountAllCad",g=>{o?.mountAllCad&&o.mountAllCad(g),u?.mountAllCad&&u.mountAllCad(g)}),m.baseCompt.loadNodeDetailsForModel=g=>E.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 O=u.saveRegion;u.saveRegion=g=>{o?.saveRegion&&o.saveRegion(g),O&&O!==o?.saveRegion&&O(g)};const I=u.saveCadCalibration;u.saveCadCalibration=g=>{o?.saveCadCalibration&&o.saveCadCalibration(g),I&&I!==o?.saveCadCalibration&&I(g)};const B=u.saveCadRegion;u.saveCadRegion=g=>{o?.saveCadRegion&&o.saveCadRegion(g),B&&B!==o?.saveCadRegion&&B(g)},u.getCesium=()=>a,u.getViewer=()=>f,u.getAnnotationInstance=()=>S,u.getMeasureInstance=()=>D,u.flyToCamera=g=>{v.setCameraView(g)},u.flyToLonLatHeight=(g,P,x,F=1)=>{v.flyToLonLatHeight(g,P,x,F)},u.flyTo=u.flyToCamera,u.getCameraState=()=>v.getCameraView(),u.getCameraInfo=u.getCameraState,u.restoreCameraState=g=>v.flyToCameraView(g),u.flyToCameraView=u.restoreCameraState,u.getCameraPositionTarget=()=>v.getCurrentCameraPositionAndTarget(),u.getCurrentCameraPositionAndTarget=u.getCameraPositionTarget,u.setCameraLookAt=g=>v.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,P,x=0)=>{f.entities.add({position:a.Cartesian3.fromDegrees(g,P,x),point:{pixelSize:10,color:a.Color.RED}})},u.addPoint=u.addDebugPoint,u.toggleDebugLabels=()=>m.enableTestLabel(),u.enableTestLabel=u.toggleDebugLabels,u.captureScreenshot=()=>{const g=f.scene.canvas;return f.render(),g.toDataURL("image/png")},u.getImageBase64=u.captureScreenshot,u.captureDomScreenshot=(g,P)=>m.getSnapDomSImageBase64(g,P),u.getSnapDomSImageBase64=u.captureDomScreenshot,u.addModels=g=>E.addModels(g),u.add3DtilesModel=u.addModels,u.addObliquePhotography=g=>E.addOSGB(g),u.addOSGB=u.addObliquePhotography,u.adjustOSGBModelMatrix=g=>E.updateOSGBMatrix(g),u.updateOSGBMatrix=u.adjustOSGBModelMatrix,u.setModelVisibility=g=>E.showModels(g),u.showModels=u.setModelVisibility,u.showTileset=u.setModelVisibility,u.removeModels=g=>E.deleteModels(g),u.deleteModels=u.removeModels,u.clearAllModels=()=>{E.deleteAllModels(),l.emit("deleteAllModels")},u.deleteAllModelList=u.clearAllModels,u.deleteAllModels=u.clearAllModels,u.flyToModel=g=>E.flyToTileset(g),u.flyToTileset=u.flyToModel,u.flyToByModelId=u.flyToModel,u.setModelBrightness=g=>m.updateModelEffect(g),u.updateModelEffect=u.setModelBrightness,u.getAllTilesets=()=>E.getMapTileset(),u.getMapTileset=u.getAllTilesets,u.getCurrentModelId=()=>E.getBIMmodelId(),u.getBIMmodelId=u.getCurrentModelId,u.getLoadedModels=()=>E.getModelList(),u.getModelList=u.getLoadedModels,u.loadModelStructure=async g=>{const P=typeof g=="string"?g:g?.modelId;if(!P){console.warn("loadModelStructure: modelId is required");return}return await E.loadTreeForModel(P)},u.loadTreeForModel=u.loadModelStructure,u.loadModelDetails=async g=>{const P=typeof g=="string"?g:g?.modelId;if(!P){console.warn("loadModelDetails: modelId is required");return}return await E.loadNodeDetailsForModel(P)},u.loadNodeDetailsForModel=u.loadModelDetails,u.setMapTileset=g=>E.setMapTileset(g),u.setCurrentModelId=g=>E.setBIMmodelId(g),u.setBIMmodelId=u.setCurrentModelId,u.setModelList=g=>E.setModelList(g),u.highlightComponents=(g,P={})=>m.baseCompt.setSelectColorUserModelCpt(g,P),u.setSelectColorUserModelCpt=u.highlightComponents,m.baseCompt.setLoadNodeDetailsCallback(g=>E.loadNodeDetailsForModel(g)),u.highlightAllComponents=g=>m.baseCompt.setAllSelectColorUserModelCpt(g),u.setAllSelectColorUserModelCpt=u.highlightAllComponents,u.setSelectColorUserModelCptByClear=(g,P)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(g.selectCpts,P??{rank:0})},u.clearSelectColorUserModelCpt=()=>m.baseCompt.clearAllHaveSelected(),u.selectComponents=(g,P)=>{m.baseCompt.clearAllHaveSelected(),m.baseCompt.setSelectColorUserModelCpt(g,P??{rank:0})},u.setSelecteds=u.selectComponents,u.setSelectionColor=(g,P,x,F)=>m.baseCompt.setSelectedColorRgba(g,P,x,F),u.setSelectedColor=u.setSelectionColor,u.clearSelection=()=>m.baseCompt.clearAllHaveSelected(),u.isolateComponents=g=>m.baseCompt.isolateComponentVisibility(g),u.isolateComponentVisibility=u.isolateComponents,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 P=new Set;g.forEach(x=>{x.mergeCpts&&Array.isArray(x.mergeCpts)&&x.mergeCpts.forEach(F=>{F.modelId&&P.add(F.modelId)})}),P.size>0&&await Promise.all(Array.from(P).map(x=>u.loadNodeDetailsForModel(x)))}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.getComponentsByVisibility=g=>m.baseCompt.getComponentsByVisibility(g),u.getShowCpts=g=>m.baseCompt.getComponentsByVisibility(g),u.getElementsVisible=u.getComponentsByVisibility,u.setComponentVisibility=u.setComponentsVisibility,u.enableSectioning=(g,P)=>m.baseSection.open(g,P),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.stopFirstPersonMode=()=>{m.basePlayer.closePlayer(),m.baseCompt.enableSelection()},u.closePlayer=u.stopFirstPersonMode,u.setPlayerPosition=g=>m.basePlayer.setPersonPosition(g),u.setPersonPosition=u.setPlayerPosition,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,P)=>m.basePlayer.setMoveState(g,P),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,P)=>A.changeBaseMap(g,P),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 P=g?"2d":"3d";await A.setCadMode(P),g&&!S&&(S=new el({cesium:a,viewer:f}),u.setGlobeVisibility(!0)),l.emit("setMode",P)},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,P)=>A.searchLocation(g,P),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 P={...g};return P.files&&!P.fileNames&&(P.fileNames=P.files),P.fileNames||(P.fileNames=[]),C.addDxfModel(P)},u.addDxfModel=u.addCadModel,u.deleteCad=g=>C.deleteCad(g),u.deleteAllCad=()=>C.deleteAllCad(),u.showCadModel=g=>C.showJson(g),u.showGeoJson=g=>C.showJson(g),u.showDxfModel=u.showCadModel,u.showCadLayer=g=>C.showJsonByLayer(g),u.showDxfLayer=u.showCadLayer,u.flyToCadModel=(g={})=>C.flyToCadModel(g),u.getCadModels=g=>C.getDxfModels(g),u.getDxfModels=u.getCadModels,u.getCadLayers=g=>C.getMapLayers(g),u.getDxfLayers=u.getCadLayers,u.getCadModelId=()=>C.getModelId(),u.setCadOpen=g=>C.setDxfOpen(g),u.setDxfOpen=u.setCadOpen,u.getCadOpen=()=>C.getDxfOpen(),u.getDxfOpen=u.getCadOpen,u.adjustCadModel=g=>C.adjustingModelByCad(g),u.adjustingModelByCad=u.adjustCadModel,u.saveAnnotations=()=>{let g=null;return S&&(g=S.saveAnnotations()),o?.saveAnnotations&&o.saveAnnotations(g),g},u.loadAnnotations=g=>S?S.loadAnnotations(g):!1,u.flyToTopView=()=>{C.flyToCadModel()},u.menuEvents=l,u.addMenuItems=g=>{l.emit("insertMenu",g)},u.insertMenu=u.addMenuItems,u.filterMenuItems=g=>{l.emit("setMenuListFilter",g)},u.setMenuListFilter=u.filterMenuItems,u.setMenuVisibility=g=>{l.emit("showMenu",g)},u.showMenu=u.setMenuVisibility,u.setPanelVisibility=(g,P)=>{l.emit("setMenuActive",g,P)},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=[],P=E.getMapTileset();return Object.keys(P).forEach(x=>{const F=P[x];if(F&&F.leiting&&F.leiting.tree){const _=F.leiting.tree;Array.isArray(_)?g.push(..._):g.push(_)}}),g},u.getTree=u.getModelTree,u.getAllComponentDetails=()=>{const g=E.getMapTileset(),P={},x=[];try{Object.keys(g).forEach(F=>{const _=g[F];if(!_||!_.leiting)return;const H=_.leiting,L=H.node,w=H.model.formData,y=H.box;if(!L||!L.nodeExtras)return;const b=H.model.modelId;P[b]=L.nodeExtras;const M=L.nodeExtras.element;if(!M)return;const k=y?y.center:{x:0,y:0,z:0};Object.values(M).forEach(Q=>{if(Q.box3)try{const R=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(w.totalRotation||0)),T=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(R),new a.Cartesian3(0,0,0)),U=a.Cartesian3.fromDegrees(w.longitude,w.latitude,w.height),V=a.Transforms.eastNorthUpToFixedFrame(U);a.Matrix4.multiply(V,T,V);const W=new a.Cartesian3(k.x,k.y,0),X=new a.Cartesian3;a.Matrix4.multiplyByPoint(V,W,X);const ee=a.Cartographic.fromCartesian(X),oe=Q.box3?.Center?.x||0,ne=Q.box3?.Center?.y||0,Y=Q.box3?.Center?.z||0,j=new a.Cartesian3(-k.x+oe,-k.y+ne,0+Y),te=a.Matrix4.fromTranslation(j),le=a.Matrix4.clone(te);a.Matrix4.multiply(T,le,le);const re=a.Cartesian3.fromDegrees(ee.longitude/Math.PI*180,ee.latitude/Math.PI*180,w.height),ce=a.Transforms.eastNorthUpToFixedFrame(re);a.Matrix4.multiply(ce,le,ce);const ve=a.Cartographic.fromCartesian(new a.Cartesian3(ce[12],ce[13],ce[14]));Q.box3.cartographic={longitude:ve.longitude/Math.PI*180,latitude:ve.latitude/Math.PI*180,height:ve.height};const Te={id:Q.uniqueId,billboard:[{theme:"Tag9999",position:[Q.box3.cartographic.longitude,Q.box3.cartographic.latitude,Q.box3.cartographic.height],options:{text:Q.name}}]};x.push(Te)}catch(R){console.warn("Error calculating component position:",R)}})})}catch(F){console.error("getAllComponents error:",F)}return P},u.getAllComponents=u.getAllComponentDetails,u.getComponentInfoList=g=>{if(!Array.isArray(g))return[];const P=E.getMapTileset(),x=[],F={};g.forEach(_=>{!_.modelId||!_.elementId||(F[_.modelId]||(F[_.modelId]=[]),F[_.modelId]?.push(_.elementId))});try{Object.keys(F).forEach(_=>{const H=P[_];if(!H||!H.leiting)return;const L=H.leiting,w=L.node,y=L.model.formData,b=L.box;if(!w||!w.nodeExtras)return;const M=w.nodeExtras.element;if(!M)return;const k=b?b.center:{x:0,y:0,z:0};F[_]?.forEach(Q=>{const R=M[Q];if(R&&R.box3)try{const T=a.Quaternion.fromAxisAngle(a.Cartesian3.UNIT_Z,a.Math.toRadians(y.totalRotation||0)),U=a.Matrix4.fromRotationTranslation(a.Matrix3.fromQuaternion(T),new a.Cartesian3(0,0,0)),V=a.Cartesian3.fromDegrees(y.longitude,y.latitude,y.height),W=a.Transforms.eastNorthUpToFixedFrame(V);a.Matrix4.multiply(W,U,W);const X=new a.Cartesian3(k.x,k.y,0),ee=new a.Cartesian3;a.Matrix4.multiplyByPoint(W,X,ee);const oe=a.Cartographic.fromCartesian(ee),ne=R.box3?.Center?.x||0,Y=R.box3?.Center?.y||0,j=R.box3?.Center?.z||0,te=new a.Cartesian3(-k.x+ne,-k.y+Y,0+j),le=a.Matrix4.fromTranslation(te),re=a.Matrix4.clone(le);a.Matrix4.multiply(U,re,re);const ce=a.Cartesian3.fromDegrees(oe.longitude/Math.PI*180,oe.latitude/Math.PI*180,y.height),ve=a.Transforms.eastNorthUpToFixedFrame(ce);a.Matrix4.multiply(ve,re,ve);const Te=a.Cartographic.fromCartesian(new a.Cartesian3(ve[12],ve[13],ve[14]));R.box3.cartographic={longitude:Te.longitude/Math.PI*180,latitude:Te.latitude/Math.PI*180,height:Te.height},R.elementId=Q,R.modelId=_,x.push(R)}catch(T){console.warn("Error calculating component position:",T)}})})}catch(_){console.error("getCptInfos error:",_)}return x},u.getCptInfos=u.getComponentInfoList,u.baseCompt=m.baseCompt,window.Methods=u}return console.log("methods",u),{Cesium:a,viewer:f,methods:u,menuEvents:l}}function Ms(i){return c.getCurrentScope()?(c.onScopeDispose(i),!0):!1}function Ds(i){return typeof i=="function"?i():c.unref(i)}const fy=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const py=Object.prototype.toString,gy=i=>py.call(i)==="[object Object]",my=()=>{};function Ay(i){return c.getCurrentInstance()}function sl(i,e=!0,t){Ay()?c.onMounted(i,t):e?i():c.nextTick(i)}function Bt(i){var e;const t=Ds(i);return(e=t?.$el)!=null?e:t}const mi=fy?window:void 0;function yy(...i){let e,t,n,s;if(typeof i[0]=="string"||Array.isArray(i[0])?([t,n,s]=i,e=mi):[e,t,n,s]=i,!e)return my;Array.isArray(t)||(t=[t]),Array.isArray(n)||(n=[n]);const o=[],r=()=>{o.forEach(h=>h()),o.length=0},l=(h,p,f,u)=>(h.addEventListener(p,f,u),()=>h.removeEventListener(p,f,u)),a=c.watch(()=>[Bt(e),Ds(s)],([h,p])=>{if(r(),!h)return;const f=gy(p)?{...p}:p;o.push(...t.flatMap(u=>n.map(m=>l(h,u,m,f))))},{immediate:!0,flush:"post"}),d=()=>{a(),r()};return Ms(d),d}function Cy(){const i=c.ref(!1),e=c.getCurrentInstance();return e&&c.onMounted(()=>{i.value=!0},e),i}function ol(i){const e=Cy();return c.computed(()=>(e.value,!!i()))}function Ey(i,e={}){const{window:t=mi}=e,n=ol(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const o=c.ref(!1),r=d=>{o.value=d.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",r):s.removeListener(r))},a=c.watchEffect(()=>{n.value&&(l(),s=t.matchMedia(Ds(i)),"addEventListener"in s?s.addEventListener("change",r):s.addListener(r),o.value=s.matches)});return Ms(()=>{a(),l(),s=void 0}),o}function wy(i,e,t={}){const{window:n=mi,...s}=t;let o;const r=ol(()=>n&&"ResizeObserver"in n),l=()=>{o&&(o.disconnect(),o=void 0)},a=c.computed(()=>Array.isArray(i)?i.map(p=>Bt(p)):[Bt(i)]),d=c.watch(a,p=>{if(l(),r.value&&n){o=new ResizeObserver(e);for(const f of p)f&&o.observe(f,s)}},{immediate:!0,flush:"post"}),h=()=>{l(),d()};return Ms(h),{isSupported:r,stop:h}}function by(i,e={width:0,height:0},t={}){const{window:n=mi,box:s="content-box"}=t,o=c.computed(()=>{var p,f;return(f=(p=Bt(i))==null?void 0:p.namespaceURI)==null?void 0:f.includes("svg")}),r=c.ref(e.width),l=c.ref(e.height),{stop:a}=wy(i,([p])=>{const f=s==="border-box"?p.borderBoxSize:s==="content-box"?p.contentBoxSize:p.devicePixelContentBoxSize;if(n&&o.value){const u=Bt(i);if(u){const m=u.getBoundingClientRect();r.value=m.width,l.value=m.height}}else if(f){const u=Array.isArray(f)?f:[f];r.value=u.reduce((m,{inlineSize:E})=>m+E,0),l.value=u.reduce((m,{blockSize:E})=>m+E,0)}else r.value=p.contentRect.width,l.value=p.contentRect.height},t);sl(()=>{const p=Bt(i);p&&(r.value="offsetWidth"in p?p.offsetWidth:e.width,l.value="offsetHeight"in p?p.offsetHeight:e.height)});const d=c.watch(()=>Bt(i),p=>{r.value=p?e.width:0,l.value=p?e.height:0});function h(){a(),d()}return{width:r,height:l,stop:h}}function vy(i={}){const{window:e=mi,initialWidth:t=Number.POSITIVE_INFINITY,initialHeight:n=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=i,r=c.ref(t),l=c.ref(n),a=()=>{e&&(o?(r.value=e.innerWidth,l.value=e.innerHeight):(r.value=e.document.documentElement.clientWidth,l.value=e.document.documentElement.clientHeight))};if(a(),sl(a),yy("resize",a,{passive:!0}),s){const d=Ey("(orientation: portrait)");c.watch(d,()=>a())}return{width:r,height:l}}const Iy={class:"title"},By={class:"actions"},xy={class:"card-body"},Sy=c.defineComponent({__name:"LeitingDraggableCard",props:{visible:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},title:{type:String,default:"Title"},initialPosition:{type:Object,default:()=>({x:0,y:0})},width:{type:[Number,String],default:300},minWidth:{type:Number,default:200},fullHeight:{type:Boolean,default:!1},align:{type:String,default:""}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=c.inject("leiting-theme",c.ref("dark")),s=e,o=c.computed({get:()=>t.open!==void 0?t.open:t.visible,set:D=>{s("update:visible",D),s("update:open",D)}}),r=c.ref(null),l=c.ref(t.initialPosition?.x||0),a=c.ref(t.initialPosition?.y||0),d=c.ref(t.width),h=c.ref(t.fullHeight?"100%":"600px");c.watch(()=>t.fullHeight,D=>{D?h.value="100%":h.value==="100%"&&(h.value="600px")});const{height:p}=vy();c.watch(p,()=>{t.fullHeight&&(h.value="100%")});const f=c.ref(!1),u=D=>{f.value=!0,D.preventDefault(),D.stopPropagation();const O=D.clientX,I=D.clientY,B=typeof d.value=="number"?d.value:r.value?.offsetWidth||0,g=typeof h.value=="number"?h.value:r.value?.offsetHeight||0,P=F=>{if(!f.value)return;F.preventDefault();const _=F.clientX-O,H=F.clientY-I,L=B+_,w=g+H;L>100&&(d.value=L),w>100&&(h.value=w)},x=()=>{f.value=!1,document.removeEventListener("mousemove",P),document.removeEventListener("mouseup",x)};document.addEventListener("mousemove",P),document.addEventListener("mouseup",x)},m=c.computed(()=>({left:`${l.value}px`,top:`${a.value}px`,width:typeof d.value=="number"?`${d.value}px`:d.value,height:typeof h.value=="number"?`${h.value}px`:h.value,position:"absolute",zIndex:2e3})),E=()=>{c.nextTick(()=>{if(r.value){const D=r.value.offsetParent||document.body,O=D.clientWidth,I=D.clientHeight,B=typeof d.value=="number"?d.value:r.value.offsetWidth||350,g=typeof h.value=="number"?h.value:r.value.offsetHeight||600;l.value+B>O&&(l.value=Math.max(0,O-B-20)),a.value+g>I&&(a.value=Math.max(0,I-g-20)),l.value<0&&(l.value=0),a.value<0&&(a.value=0)}})},A=c.ref(!1),C=D=>{if(D.target.closest(".close-btn")||D.target.closest(".actions"))return;A.value=!0,D.preventDefault(),D.stopPropagation();const O=D.clientX,I=D.clientY,B=l.value,g=a.value,P=F=>{if(!A.value)return;F.preventDefault();const _=F.clientX-O,H=F.clientY-I;l.value=B+_,a.value=g+H},x=()=>{A.value=!1,document.removeEventListener("mousemove",P),document.removeEventListener("mouseup",x),E()};document.addEventListener("mousemove",P),document.addEventListener("mouseup",x)},v=()=>{c.nextTick(()=>{if(t.align&&r.value){const D=r.value.offsetParent||document.body,O=typeof d.value=="number"?d.value:r.value.offsetWidth||350;t.align==="right"?l.value=Math.max(0,D.clientWidth-O-20):t.align==="center"&&(l.value=Math.max(0,(D.clientWidth-O)/2))}E()})};c.onMounted(()=>{t.align?v():E()}),c.watch(o,D=>{D&&(t.align?v():E())});const S=()=>{o.value=!1,s("close")};return(D,O)=>c.withDirectives((c.openBlock(),c.createElementBlock("div",{ref_key:"cardRef",ref:r,class:c.normalizeClass(["draggable-card leiting-scroll",["leiting-theme-"+c.unref(n)]]),style:c.normalizeStyle(m.value)},[c.createElementVNode("div",{ref:"headerRef",class:"card-header",onMousedown:C},[c.createElementVNode("span",Iy,c.toDisplayString(i.title),1),c.createElementVNode("div",By,[c.renderSlot(D.$slots,"header-extra",{},void 0,!0),c.createElementVNode("span",{class:"close-btn",onClick:S},"×")])],544),c.createElementVNode("div",xy,[c.renderSlot(D.$slots,"default",{},void 0,!0)]),c.createElementVNode("div",{class:"resize-handle",onMousedown:u},[...O[0]||(O[0]=[c.createElementVNode("svg",{viewBox:"0 0 10 10",width:"10",height:"10",fill:"currentColor"},[c.createElementVNode("path",{d:"M10 10 L10 2 L2 10 Z"})],-1)])],32)],6)),[[c.vShow,o.value]])}}),Re=(i,e)=>{const t=i.__vccOpts||i;for(const[n,s]of e)t[n]=s;return t},ke=Re(Sy,[["__scopeId","data-v-50bf6126"]]);function Ty(i){const e=c.ref([]),t=c.ref([]),n=c.ref([]),s=c.ref(""),o=c.ref(!0);c.watch(()=>c.unref(i),p=>{if(!p||p.length===0)return;const f=[],u=(A,C)=>{A.forEach(v=>{const S=v.id||v.key||v.$id,D=v.modelId||C;D&&(v.modelId=D),S&&f.push(S),v.children&&v.children.length>0&&u(v.children,D)})};u(p);const m=new Set(n.value);let E=!1;f.forEach(A=>{m.has(A)||(m.add(A),E=!0)}),E&&(n.value=Array.from(m))},{immediate:!0,deep:!0});const r=c.computed(()=>{const p=c.unref(i);if(!p)return[];const f=[],u=(m,E)=>{m.forEach(A=>{const C=A.id||A.key||A.$id,v=A.name||A.title;f.push({key:C,title:v,parentKey:E}),A.children&&A.children.length>0&&u(A.children,C)})};return u(p),f}),l=p=>{e.value=p,o.value=!1},a=p=>{n.value=p},d=p=>{t.value=p},h=p=>r.value.find(u=>u.key===p)?.parentKey;return c.watch(s,p=>{if(!p)return;const u=r.value.filter(E=>E.title&&E.title.toLowerCase().includes(p.toLowerCase())).map(E=>E.parentKey),m=new Set;u.forEach(E=>{let A=E;for(;A;)m.add(A),A=h(A)}),e.value=[...m],o.value=!0}),{expandedKeys:e,selectedKeys:t,checkedKeys:n,searchValue:s,autoExpandParent:o,onExpand:l,onCheck:a,onSelect:d}}const My={class:"search-box"},Dy={key:0},ky={style:{color:"#f50"}},Py={key:1},Fy={key:1,class:"empty-tip"},rn=Re(c.defineComponent({__name:"LeitingTree",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"构件树"},width:{type:[Number,String],default:320},treeData:{type:Array,default:()=>[]},initialPosition:{type:Object,default:()=>({x:0,y:0})},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close","select","check"],setup(i,{emit:e}){const t=me.Input.Search,n=me.Tree,s=i,o=e,r=c.inject("leiting-theme",c.ref("dark")),l=c.inject("leitingMethods"),a=g=>{l?.value?.onSearchComponent&&l.value.onSearchComponent(g)},d=c.computed({get:()=>s.open!==void 0?s.open:s.visible,set:g=>{o("update:visible",g),o("update:open",g)}}),h=c.ref(null),{height:p}=by(h),f=c.computed(()=>p.value||300),u=c.ref({children:"children",title:"name",key:"id"}),{expandedKeys:m,selectedKeys:E,checkedKeys:A,searchValue:C,autoExpandParent:v}=Ty(c.toRef(s,"treeData")),S=g=>{m.value=g,v.value=!1},D=g=>{const P=[],x=F=>{if(!F.children||F.children.length===0){const H=F.element_Id;F.modelId&&H&&P.push({modelId:F.modelId,elementId:H})}else F.children.forEach(x)};return x(g),P},O=(g,P)=>{A.value=g,o("check",g,P);const x=[],F=new Set(g.map(H=>String(H))),_=H=>{for(let L=0;L<H.length;L++){const w=H[L];if(!w.children||w.children.length===0){if(!F.has(String(w.id))){const M=w.element_Id;w.modelId&&M&&x.push({modelId:w.modelId,elementId:M,show:!1})}}else w.children&&_(w.children)}};s.treeData&&_(s.treeData),l?.value?.setComponentVisibility&&l.value.setComponentVisibility(x),l?.value?.onTreeCheck&&l.value.onTreeCheck(g,P)},I=(g,P)=>{if(E.value=g,o("select",g,P),P.selected){const x=D(P.node);x.length>0&&l?.value?.flyToObjects&&l.value.flyToObjects({selectCpts:x})}l?.value?.onTreeSelect&&l.value.onTreeSelect(g,P)},B=()=>{o("update:visible",!1),o("close")};return(g,P)=>(c.openBlock(),c.createBlock(ke,{visible:d.value,"onUpdate:visible":P[1]||(P[1]=x=>d.value=x),title:i.title,"initial-position":i.initialPosition,"full-height":i.fullHeight,onClose:B},{default:c.withCtx(()=>[c.createElementVNode("div",{class:c.normalizeClass(["leiting-tree-container",[`theme-${c.unref(r)}`]])},[c.createElementVNode("div",My,[c.createVNode(c.unref(t),{value:c.unref(C),"onUpdate:value":P[0]||(P[0]=x=>c.isRef(C)?C.value=x:null),placeholder:"搜索构件","allow-clear":"","enter-button":"",onSearch:a},null,8,["value"])]),c.createElementVNode("div",{class:"tree-wrapper",ref_key:"treeWrapperRef",ref:h},[i.treeData&&i.treeData.length?(c.openBlock(),c.createBlock(c.unref(n),{key:0,"tree-data":i.treeData,"field-names":u.value,height:f.value,"expanded-keys":c.unref(m),"auto-expand-parent":c.unref(v),"selected-keys":c.unref(E),"checked-keys":c.unref(A),checkable:"","block-node":"",onExpand:S,onSelect:I,onCheck:O},{title:c.withCtx(({name:x,title:F})=>[(x||F)&&c.unref(C)&&(x||F).toLowerCase().indexOf(c.unref(C).toLowerCase())>-1?(c.openBlock(),c.createElementBlock("span",Dy,[c.createTextVNode(c.toDisplayString((x||F).substr(0,(x||F).toLowerCase().indexOf(c.unref(C).toLowerCase())))+" ",1),c.createElementVNode("span",ky,c.toDisplayString(c.unref(C)),1),c.createTextVNode(" "+c.toDisplayString((x||F).substr((x||F).toLowerCase().indexOf(c.unref(C).toLowerCase())+c.unref(C).length)),1)])):(c.openBlock(),c.createElementBlock("span",Py,c.toDisplayString(x||F),1))]),_:1},8,["tree-data","field-names","height","expanded-keys","auto-expand-parent","selected-keys","checked-keys"])):(c.openBlock(),c.createElementBlock("div",Fy,"暂无数据"))],512)],2)]),_:1},8,["visible","title","initial-position","full-height"]))}}),[["__scopeId","data-v-8a468895"]]),Ry="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEhSURBVDhP1ZRhkcIwEIWJAsDBOTgkgAJAAYcCQAFFAUgoDjgFh4Q7B+cAUFC+19kyS0hL+Ulm3nS6+/ZLNkkbOk9GURRDWUIIxyZraEoCWZLfmmcOLK/z14KAqGiGvq14zDMHNk/BHkAAehh/0ABtKMxUSFzPNfpFI+JnD7wDYVaxIIov41bIfxHfoROakhe0HDeQmbQfFzTxJj+zTXYg1kWrarISRFKzLNAfGsbL9iDzq/0j+kQZ/k1wm7onoKW3Hq42F0jLVK//Tcebott2fJAbVK1lvKwBNd6rRIsFsfJka0G2qdpQPy7+EPC0AumexKAzoH5FbgvSbHuUW6EOYubbfwX0cLPfFJS4K6mPNrbdHb+uvP498dhVn4v9FWo9V3RZzFxAv8L9AAAAAElFTkSuQmCC",rl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAERSURBVDhPvZTrEYIwEISTCrQD6EA7gA60AylBK1Aq0A7ECrQDoQPsADrACuLuTMJkIiHxjzezgyR7H3d5KJVSqRAigcaQUjYYX2JgZY/P/O4lEgYYFo7pgPcc2kSCBoIUzDeo0klPPEsNYlX7AKzA/M6ASrRzYoIGG5DAOCvzBvzMOxqQazSgLLI1QdAW5jWpUAPV0AVKIc7FRCuNy7RkWozJtj1BED7ANbpDXHhffFXUwUnZwRYp7qw7Rx8/lLkV9R4QD2w1A8pjW3sA4h5au+pXEBS76P8D6Ut9/nXXaiRQdnBXqBfEC+4GdzSxW5v6F7CTeHnbCVCBsWIE+RYVrdF4DSz6OwgiADDexbmT3X0A4fSDfDjUugcAAAAASUVORK5CYII=",Oy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAFESURBVDhPlZMNEcIwDIVXBQwFgAJAAcMBDgAFIGE4wAHgABSwOdgcIAEUjPd6aS/rfhi7y12bJl9f0sxEf3xVVV0RPoetjTFvnWqGcgSylfgihA0CKcgJgBfsAqMiKiM0+gkKlCyZCN8uhPWCFOSBxARWORU4W2CdeV9XjxSEJcwkjokTqBpzjxjCn7CyVRECzjg8wHLYCmabK7CplBcLhMr2DZCqP0dCovYZ9hYGXx1izLUGUkkfxI/sTQiCf4N1zLWAWCKV2nP6PEhB2Ngd7B4GC4SJnCcP8SAFoc/Ph/TqjVvTPogFKUiJ/VGU+GdmUAA5ObA7cyC+iPt/MjUfKRL4emyuK+cGH8tufFRUHywZ+RYlnRDdIwfzLzVUibtQv1oNhoAExtfpVdIAiQIOWiY9o2sQxJemOydTS1jR1di2Zn8B8f27apou9kMAAAAASUVORK5CYII=",Ly="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAHDSURBVDhPlZOxL0NRFIe9ECubhehoIIjJ1HYwCkIiJpUQEkN1YZBobU0kFKNI3iTGYrDRv0BIhLXCYpCwiO35fs25zWva98JNvpz37j33d8+551yvLWIEQXDG0izMe55XjvJz816MUJG1LVuvYJcQrEb5xwkV2JSHGfAhgBJiu63E4oSUzpRtusa+wBooKkWnKOujQYh7SbCShQx0m9cpds4iOseOw7BFmUPwU341IQT2MaOQgi9QND+wiqNnBxT4X7SIbrAqhNI9wiUvJ+W8A99wDEWdwrw25iVkkenAEb5LkIQPuIMJWJGQoriFd+iBCkhc8zUhfJSm7mva5l3aadubDgtpMgGKpB/eoBfuQZFoPNhBj9gTaC3kKkEEGXPswF7Y5rLro1AW8UI6GmelmAzfkUWlNaWt6/iT0DOOA5bqoSuzHfIvofATqSJQb8KoiJbtPi6x2dA9FPjXE1F/uZKrv3IwCFcNqVmoPlal7QJ9q/wZCbk7Ioo9/tehE9q1r0nIxNQbG4YEXdkVjQ5J2OZXbB88gVrgQIJNj9aaT4LboPK7J6O0Ktb1KYtc/aYxGff6h3AYY6Nvzk2GQ1WQTVj4BST70jYaqceXAAAAAElFTkSuQmCC",Ny="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADhSURBVHgBvVOBEYIwDEw9B2ADO4IjuIEjwAa6Aa7ABMAEuIIjOIFsUDao37vgxVZbBI+/+0tI0+fJBaIIrLUFaMAHmNNcsMAIE+vdJLQykQ+0wFHBrsyiT/sL2I1DDTac/+4Klzobov7WHxt29qGmaYaQnlhLCmUTa2l4C2ljvamFlEvY0xpCW/kA924GblfGWciZaJyXQvSmlOoDITSdXQBbcA8eKfy/nHDFeY470FIX8tzUIu84FmLWuTzz7yhRLPm54dKJ4+A5uoJ3HgHBUfUmxGIa4QDuKA4n3kLk9ZInw0qu5b1R1aYAAAAASUVORK5CYII=",Uy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAADFSURBVDhPxVPBDYMwDIwnKJu0G9ANYJMyQrsBbNIRGAE2gEnSO6mpIMJxkBC1lEds52zfOeK9b51zV5wte4lIr8RWbgGQh2fGmaIHJe4EetKPtDpRcA5AvwcB7FtgCcTOH0p3YzaQNd75QBiVXJG3LRtCRyQ6Jvsekd3gTsJVoDcihZLQQjXGTRMzIzPhOCCQyNYvSuEue7Qdm02yK0u1nM2m/FQyKb8JZHH+l81Ofdpdm82tvikjThyNlbSEBvIPFj+MfwA76qSYUG3g9QAAAABJRU5ErkJggg==",_y="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAEcSURBVDhPrZSNDYIwEIXpBOIGjMAIOIE4AbgBGwAbOIJu4Aa4gW4gI+gE9b3mjjSmibSR5ALX3H33W4y1Ns+yrIe0EH7HPC8YnyGjAegkEB5cYyiwrdWXIEc1xnSREGcuiTQEWeg7gG4+CMcl9ALnLkvogwScv+wq6FMQJJCJDgBtBcSAI3QClwe2YZAHcY2Ho4kGAVLA6U5/CEvdp4KYhesFhBPpCZIAz6jStHhproJcHyAHbb5nF+6RZ8CsGslIQaHp/gSxRzlApU4GugPxNuDN/eNarAJxapUPgm8rQ9C1SAI9AOGiHhGApSdnRN8FshbEiLwiLI1rMUM6zSQ0tX9c2lp/Iw0iMIPU38iFIN1mTmOjKa98vyWB4QM5XQnvsbFsyAAAAABJRU5ErkJggg==",Qy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAGPSURBVDhPrZT9UQIxEMUvFSgViBUoFQgVABV4VqBW4FmBUIFQgZRwVqBU4HUAVHC+X2aXycQw/sPOvLncZvdlv5JQFaTv+1upp8IyhLDHRLpLfe6FrXRt7hZShYyH+n8RauGAv/AkQNYIHICshFcRdu6fE/kGRN/mQGTIpzAzMoh6EV2fIsJ5IwNOj2IpVZ6i6difSecRVnlELZHIgHROisgXRCa78Z+IrMBf2pjLYJNENGSd1kO2pPghjKQniyqY8lFr2NfaqC18wn7nZCMlWg7xLq70TxfRLyHqtABN2lbp40mSSCzBcSebif1TPyKjDBcQ0eJJRkIUpHkMPUlnkBU+pnlWItL6ERgw8o1iqRHtgzAUGNRD2qmkvgMvNnneUQcZ4ggR6VGXG+OOA1koNvrFcY7+af++VJe0hucfyKQu+RWJc+SDZ3aNvlPpRl7T0qXdafNZYPDehLEZt/rOBR9U8QSaEKX0jHAaE4tshVrgLeJ+Xdl6rS8D3BWJXKnCEwWXEuco9grQ3bb0sP0Cn8/nPm/SMRQAAAAASUVORK5CYII=",Gy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACDSURBVHgB1ZFhDYAgEIWfzgBGIIINpIEViGAkG2gEbWADjWADfMw/iDgUfji/7e3gxt3uHsDXZFrrlrFBHJNpsPAgEEmORArn3lFroEZQCjcTbAhzepPsgbuCgn8FBWvsUAMfFR5OIPGS5G80JkrG2sopHKbO1BCoHy8ZNhRUT5X4BTu6qyNSwwCiMAAAAABJRU5ErkJggg==",Hy={class:"menu-container"},Yy=["onClick","title"],Vy={class:"menu-icon"},zy=["src","alt"],Wy={key:3,style:{"font-size":"12px"}},jy={key:0,class:"sub-menu"},Ky=["onClick"],Ai=c.defineComponent({__name:"LeitingMenu",props:{visible:{type:Boolean,default:!0},activeIds:{type:Array,default:()=>[]},is2d:{type:Boolean,default:!1},customItems:{type:Array,default:()=>[]}},emits:["action"],setup(i,{emit:e}){const t=i,n=c.inject("leiting-theme",c.ref("dark")),s=c.inject("leiting-menu-size",c.ref("medium")),o=c.inject("leitingMethods",c.ref({})),r=c.computed(()=>n.value||n),l=c.computed(()=>s.value||s),a=c.ref([{ID:"home",title:"主视角",src:Ry,key:"homeView"},{ID:"tree",title:"目录树",src:rl,key:"componentTree"},{ID:"cadLayer",title:"图层",src:rl,key:"cadLayer"},{ID:"measure",title:"量算",src:Oy,key:"measurement"},{ID:"section",title:"剖切",src:Ly,key:"section"},{ID:"roam",title:"人物漫游",src:Ny,key:"roam"},{ID:"info",title:"构件信息",src:Uy,key:"componentInfo"},{ID:"cadPosition",title:"调整位置",src:_y,key:"cadPosition"},{ID:"annotation",title:"标注",src:Gy,key:"annotation"},{ID:"setting",title:"设置",src:Qy,key:"setting"}]),d=c.ref([]),h=c.ref([...t.activeIds]);c.watch(()=>t.activeIds,D=>{h.value=[...D]},{deep:!0});const p=c.computed(()=>t.visible);o.value&&o.value.menuEvents&&(o.value.menuEvents.on("setMenuListFilter",D=>{d.value=D}),o.value.menuEvents.on("setMenuActive",(D,O)=>{O?h.value.includes(D)||h.value.push(D):h.value=h.value.filter(I=>I!==D)}));const f=c.computed(()=>{let D=a.value;if(t.is2d){const O=["homeView","measurement","cadLayer","annotation"];D=D.filter(I=>I.key&&O.includes(I.key))}else{const O=["cadLayer","cadPosition","annotation"];D=D.filter(I=>!I.key||!O.includes(I.key))}if(d.value.length>0&&(D=D.filter(O=>!O.key||!d.value.includes(O.key))),t.customItems&&t.customItems.length>0){const O=t.customItems.map(I=>({...I,key:I.ID,src:I.src||I.icon}));return[...D,...O]}return D}),u=e,m=D=>{const O=["homeView"];if(D.key&&O.includes(D.key))h.value.includes(D.ID)||(h.value.push(D.ID),setTimeout(()=>{const B=h.value.indexOf(D.ID);B>-1&&h.value.splice(B,1)},1e3));else{const B=h.value.indexOf(D.ID);B>-1?h.value.splice(B,1):h.value.push(D.ID)}const I=h.value.includes(D.ID);D.func&&D.func(D),D.key&&u("action",D.key,I)},E=D=>{d.value=D},A=D=>{console.log("LeitingMenu received showMenu event:",D)},C=(D,O)=>{const I=f.value.find(B=>B.ID===D||B.key===D);if(I){const B=h.value.indexOf(I.ID);O&&B===-1?h.value.push(I.ID):!O&&B>-1&&h.value.splice(B,1)}};let v=null;const S=()=>{o.value?.menuEvents&&(v&&(v.off("setMenuListFilter",E),v.off("showMenu",A),v.off("setMenuActive",C)),v=o.value.menuEvents,v.on("setMenuListFilter",E),v.on("showMenu",A),v.on("setMenuActive",C))};return c.onMounted(()=>{S()}),c.onUnmounted(()=>{v&&(v.off("setMenuListFilter",E),v.off("showMenu",A),v.off("setMenuActive",C))}),c.watch(o,()=>{S()},{deep:!0}),(D,O)=>c.withDirectives((c.openBlock(),c.createElementBlock("div",{class:c.normalizeClass(["leiting-menu-wrapper",["leiting-theme-"+r.value,"size-"+l.value]])},[c.createElementVNode("div",Hy,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(f.value,I=>(c.openBlock(),c.createElementBlock("div",{key:I.ID,class:c.normalizeClass(["menu-item",{active:h.value.includes(I.ID)}]),onClick:B=>m(I),title:I.title},[c.createElementVNode("div",Vy,[I.src?(c.openBlock(),c.createElementBlock("img",{key:0,src:I.src,alt:I.title},null,8,zy)):typeof I.icon=="object"?(c.openBlock(),c.createBlock(c.resolveDynamicComponent(I.icon),{key:1})):typeof I.icon=="string"?(c.openBlock(),c.createElementBlock("i",{key:2,class:c.normalizeClass(["iconfont",`icon-${I.icon}`])},null,2)):(c.openBlock(),c.createElementBlock("span",Wy,c.toDisplayString(I.title.substring(0,2)),1))]),I.children&&I.children.length>0?(c.openBlock(),c.createElementBlock("div",jy,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(I.children,B=>(c.openBlock(),c.createElementBlock("div",{key:B.ID,class:c.normalizeClass(["sub-menu-item",{active:h.value.includes(B.ID)}]),onClick:c.withModifiers(g=>m(B),["stop"])},c.toDisplayString(B.title),11,Ky))),128))])):c.createCommentVNode("",!0)],10,Yy))),128))])],2)),[[c.vShow,p.value]])}}),$y={class:"leiting-section-content"},Xy={class:"section-form-item"},qy={class:"radio-group"},Jy={class:"section-form-item"},Zy={class:"switch-container"},e0={class:"switch"},t0={class:"status-text"},i0={class:"section-form-item slider-item"},n0={class:"slider-wrapper"},s0={class:"section-form-item slider-item"},o0={class:"slider-wrapper"},r0={class:"section-form-item slider-item"},a0={class:"slider-wrapper"},l0={class:"section-form-item table-item"},c0={class:"model-table-container"},d0={class:"model-table"},h0={width:"40"},u0=["checked"],f0=["onClick"],p0=["value"],g0={class:"model-name"},yi=Re(c.defineComponent({__name:"LeitingSection",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"剖切控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods"),o=c.computed({get:()=>t.open!==void 0?t.open:t.visible,set:L=>{n("update:visible",L),n("update:open",L)}}),r=c.ref("Box"),l=c.ref(!1),a=c.ref([]),d=c.ref([]),h=c.computed(()=>d.value.length===0?!1:d.value.every(L=>a.value.includes(L.modelId))),p=L=>{L.target.checked?a.value=d.value.map(y=>y.modelId):a.value=[],P()},f=c.ref([-10,10]),u=c.ref([-10,10]),m=c.ref([-10,10]),E=c.ref([-100,100]),A=c.ref([-100,100]),C=c.ref([-100,100]);let v=!1;const S=L=>{v=!0;const{targetZPlus:w,targetZMinus:y,targetXPlus:b,targetXMinus:M,targetYPlus:k,targetYMinus:Q}=L;m.value=[-y,w],f.value=[-M,b],u.value=[-Q,k],setTimeout(()=>{v=!1},100)},D=()=>{v||a.value.length===0||!s?.value?.updateSectionRange||s.value.updateSectionRange({targetZPlus:m.value[1],targetZMinus:-m.value[0],targetXPlus:f.value[1],targetXMinus:-f.value[0],targetYPlus:u.value[1],targetYMinus:-u.value[0]})},O=()=>{s?.value?.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(l.value)},I=L=>{if(!s?.value?.getMapTileset||!s?.value?.openSection)return;const y=s.value.getMapTileset()[L];if(y&&y.leiting?.box){const{min:b,max:M}=y.leiting.box,k=(M.x-b.x)/2,Q=(M.y-b.y)/2,R=(M.z-b.z)/2;a.value.length<=1&&(E.value=[-k*2,k*2],A.value=[-Q*2,Q*2],C.value=[-R*2,R*2],f.value=[-k,k],u.value=[-Q,Q],m.value=[-R,R],s.value.updateSectionRange&&s.value.updateSectionRange({targetZPlus:R,targetZMinus:R,targetXPlus:k,targetXMinus:k,targetYPlus:Q,targetYMinus:Q})),s.value.openSection(L,{moveCallBack:S}),s.value.setSectionBoxVisibility&&s.value.setSectionBoxVisibility(l.value)}},B=L=>{const w=a.value.indexOf(L);w>-1?a.value.splice(w,1):a.value.push(L),P()};let g=[];const P=()=>{const L=a.value.filter(y=>!g.includes(y)),w=g.filter(y=>!a.value.includes(y));L.forEach(y=>I(y)),w.forEach(y=>{s?.value?.closeSection&&s.value.closeSection(y)}),g=[...a.value]},x=()=>{},F=()=>{o.value=!1,n("close")},_=()=>{l.value=!1,a.value=[],g=[],f.value=[-10,10],u.value=[-10,10],m.value=[-10,10],E.value=[-100,100],A.value=[-100,100],C.value=[-100,100]};c.watch(()=>t.visible,L=>{L?H():(s?.value?.closeSection&&s.value.closeSection(),_())});const H=()=>{s?.value&&typeof s.value.getModelList=="function"&&(d.value=s.value.getModelList()||[],d.value.length>0&&a.value.length===0&&(a.value=[d.value[0].modelId],g=[...a.value]),t.visible&&a.value.length>0&&(l.value=!0,a.value.forEach(L=>I(L))))};return c.watch(()=>s?.value,()=>{H()},{immediate:!0,deep:!0}),c.onMounted(()=>{H()}),(L,w)=>(c.openBlock(),c.createBlock(ke,{visible:o.value,title:"剖切分析","full-height":i.fullHeight,"onUpdate:visible":F},{default:c.withCtx(()=>[c.createElementVNode("div",$y,[c.createElementVNode("div",Xy,[w[8]||(w[8]=c.createElementVNode("span",{class:"label"},"模式",-1)),c.createElementVNode("div",qy,[c.createElementVNode("label",{class:c.normalizeClass(["radio-item",{active:r.value==="Box"}])},[c.withDirectives(c.createElementVNode("input",{type:"radio",value:"Box","onUpdate:modelValue":w[0]||(w[0]=y=>r.value=y),onChange:x},null,544),[[c.vModelRadio,r.value]]),w[7]||(w[7]=c.createTextVNode(" 剖切盒 ",-1))],2)])]),c.createElementVNode("div",Jy,[w[10]||(w[10]=c.createElementVNode("span",{class:"label"},"显示",-1)),c.createElementVNode("div",Zy,[c.createElementVNode("label",e0,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":w[1]||(w[1]=y=>l.value=y),onChange:O},null,544),[[c.vModelCheckbox,l.value]]),w[9]||(w[9]=c.createElementVNode("span",{class:"slider round"},null,-1))]),c.createElementVNode("span",t0,c.toDisplayString(l.value?"显示":"隐藏"),1)])]),c.createElementVNode("div",i0,[w[11]||(w[11]=c.createElementVNode("span",{class:"label"},"X 轴",-1)),c.createElementVNode("div",n0,[c.createVNode(c.unref(me.Slider),{value:f.value,"onUpdate:value":w[2]||(w[2]=y=>f.value=y),range:"",min:E.value[0],max:E.value[1],step:.1,onChange:D},null,8,["value","min","max"])])]),c.createElementVNode("div",s0,[w[12]||(w[12]=c.createElementVNode("span",{class:"label"},"Y 轴",-1)),c.createElementVNode("div",o0,[c.createVNode(c.unref(me.Slider),{value:u.value,"onUpdate:value":w[3]||(w[3]=y=>u.value=y),range:"",min:A.value[0],max:A.value[1],step:.1,onChange:D},null,8,["value","min","max"])])]),c.createElementVNode("div",r0,[w[13]||(w[13]=c.createElementVNode("span",{class:"label"},"Z 轴",-1)),c.createElementVNode("div",a0,[c.createVNode(c.unref(me.Slider),{value:m.value,"onUpdate:value":w[4]||(w[4]=y=>m.value=y),range:"",min:C.value[0],max:C.value[1],step:.1,onChange:D},null,8,["value","min","max"])])]),c.createElementVNode("div",l0,[w[15]||(w[15]=c.createElementVNode("span",{class:"label"},"模型",-1)),c.createElementVNode("div",c0,[c.createElementVNode("table",d0,[c.createElementVNode("thead",null,[c.createElementVNode("tr",null,[c.createElementVNode("th",h0,[c.createElementVNode("input",{type:"checkbox",checked:h.value,onChange:p},null,40,u0)]),w[14]||(w[14]=c.createElementVNode("th",null,"名称",-1))])]),c.createElementVNode("tbody",null,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(d.value,y=>(c.openBlock(),c.createElementBlock("tr",{key:y.modelId,class:c.normalizeClass({selected:a.value.includes(y.modelId)}),onClick:b=>B(y.modelId)},[c.createElementVNode("td",null,[c.withDirectives(c.createElementVNode("input",{type:"checkbox",value:y.modelId,"onUpdate:modelValue":w[5]||(w[5]=b=>a.value=b),onClick:w[6]||(w[6]=c.withModifiers(()=>{},["stop"])),onChange:P},null,40,p0),[[c.vModelCheckbox,a.value]])]),c.createElementVNode("td",g0,c.toDisplayString(y.modelName),1)],10,f0))),128))])])])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-ee4d9a12"]]),m0={class:"leiting-player-content"},A0={class:"player-form-item"},y0={class:"switch-container"},C0={class:"switch"},E0={class:"status-text"},w0={class:"player-form-item"},b0={class:"switch-container"},v0={class:"switch"},I0={class:"status-text"},B0={class:"player-form-item"},x0={class:"switch-container"},S0={class:"switch"},T0={class:"status-text"},M0={class:"player-form-item slider-item"},D0={class:"slider-wrapper"},k0={class:"value-text"},P0={class:"instructions"},F0={class:"key-map"},R0={class:"key-row"},O0={class:"key-row"},L0={class:"key-row"},N0={class:"key-row"},U0={class:"key-row"},_0={class:"key-row"},Ci=Re(c.defineComponent({__name:"LeitingPlayer",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},title:{type:String,default:"漫游控制"},fullHeight:{type:Boolean,default:!1}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods"),o=c.ref(!1),r=c.ref(!1),l=c.ref(!0),a=c.ref(5),d=c.computed({get:()=>t.open!==void 0?t.open:t.visible,set:I=>{n("update:visible",I),n("update:open",I)}}),h=c.ref(null),p=c.ref(null),f=c.ref(null),u=c.ref(null),m=c.ref(null),E=c.ref(null),A=()=>{o.value?v():S()},C=()=>{s?.value?.setPlayerParams&&s.value.setPlayerParams({gravityTest:r.value,collisionTest:l.value})},v=async()=>{s?.value?.openPlayer&&(await s.value.openPlayer(),s.value.setPlayerSpeed&&s.value.setPlayerSpeed(a.value),C(),s.value.bindPlayerUiKeys&&(await c.nextTick(),s.value.bindPlayerUiKeys({moveFront:h.value,moveBack:p.value,moveLeft:f.value,moveRight:u.value,moveUp:m.value,moveDown:E.value})))},S=()=>{s?.value?.closePlayer&&s.value.closePlayer()},D=()=>{s?.value?.setPlayerSpeed&&s.value.setPlayerSpeed(a.value)},O=()=>{d.value=!1,n("close")};return c.watch(()=>t.visible,I=>{I?(o.value=!0,s?.value?v():setTimeout(()=>{s?.value&&v()},100)):o.value&&(o.value=!1,S())},{immediate:!0}),(I,B)=>(c.openBlock(),c.createBlock(ke,{title:i.title,visible:d.value,"full-height":i.fullHeight,"onUpdate:visible":O},{default:c.withCtx(()=>[c.createElementVNode("div",m0,[c.createElementVNode("div",A0,[B[5]||(B[5]=c.createElementVNode("span",{class:"label"},"启用",-1)),c.createElementVNode("div",y0,[c.createElementVNode("label",C0,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[0]||(B[0]=g=>o.value=g),onChange:A},null,544),[[c.vModelCheckbox,o.value]]),B[4]||(B[4]=c.createElementVNode("span",{class:"slider round"},null,-1))]),c.createElementVNode("span",E0,c.toDisplayString(o.value?"开启":"关闭"),1)])]),c.createElementVNode("div",w0,[B[7]||(B[7]=c.createElementVNode("span",{class:"label"},"重力",-1)),c.createElementVNode("div",b0,[c.createElementVNode("label",v0,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[1]||(B[1]=g=>r.value=g),onChange:C},null,544),[[c.vModelCheckbox,r.value]]),B[6]||(B[6]=c.createElementVNode("span",{class:"slider round"},null,-1))]),c.createElementVNode("span",I0,c.toDisplayString(r.value?"开启":"关闭"),1)])]),c.createElementVNode("div",B0,[B[9]||(B[9]=c.createElementVNode("span",{class:"label"},"碰撞",-1)),c.createElementVNode("div",x0,[c.createElementVNode("label",S0,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":B[2]||(B[2]=g=>l.value=g),onChange:C},null,544),[[c.vModelCheckbox,l.value]]),B[8]||(B[8]=c.createElementVNode("span",{class:"slider round"},null,-1))]),c.createElementVNode("span",T0,c.toDisplayString(l.value?"开启":"关闭"),1)])]),c.createElementVNode("div",M0,[B[10]||(B[10]=c.createElementVNode("span",{class:"label"},"速度",-1)),c.createElementVNode("div",D0,[c.createVNode(c.unref(me.Slider),{value:a.value,"onUpdate:value":B[3]||(B[3]=g=>a.value=g),min:1,max:10,step:1,onChange:D},null,8,["value"])]),c.createElementVNode("span",k0,c.toDisplayString(a.value),1)]),B[19]||(B[19]=c.createElementVNode("div",{class:"divider"},null,-1)),c.createElementVNode("div",P0,[B[18]||(B[18]=c.createElementVNode("div",{class:"instruction-title"},"操作说明",-1)),c.createElementVNode("div",F0,[c.createElementVNode("div",R0,[c.createElementVNode("span",{class:"key",ref_key:"btnFront",ref:h},"W",512),B[11]||(B[11]=c.createTextVNode(" 前进 ",-1))]),c.createElementVNode("div",O0,[c.createElementVNode("span",{class:"key",ref_key:"btnBack",ref:p},"S",512),B[12]||(B[12]=c.createTextVNode(" 后退 ",-1))]),c.createElementVNode("div",L0,[c.createElementVNode("span",{class:"key",ref_key:"btnLeft",ref:f},"A",512),B[13]||(B[13]=c.createTextVNode(" 左移 ",-1))]),c.createElementVNode("div",N0,[c.createElementVNode("span",{class:"key",ref_key:"btnRight",ref:u},"D",512),B[14]||(B[14]=c.createTextVNode(" 右移 ",-1))]),c.createElementVNode("div",U0,[c.createElementVNode("span",{class:"key",ref_key:"btnUp",ref:m},"Q",512),B[15]||(B[15]=c.createTextVNode(" 上升 ",-1))]),c.createElementVNode("div",_0,[c.createElementVNode("span",{class:"key",ref_key:"btnDown",ref:E},"E",512),B[16]||(B[16]=c.createTextVNode(" 下降 ",-1))]),B[17]||(B[17]=c.createElementVNode("div",{class:"key-row"},[c.createElementVNode("span",{class:"mouse-icon"},"🖱️"),c.createTextVNode(" 按住左键拖拽旋转视角 ")],-1))])])])]),_:1},8,["title","visible","full-height"]))}}),[["__scopeId","data-v-ff3f266e"]]),Q0={class:"info-content"},G0={key:0,class:"component-title"},Ei=Re(c.defineComponent({__name:"LeitingInfo",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods"),o=c.ref([]),r=c.ref(!1),l=c.ref([]),a=c.ref([]),d=c.ref(0),h=c.computed({get:()=>t.open!==void 0?t.open:t.visible,set:C=>{n("update:visible",C),n("update:open",C)}}),p=()=>{h.value=!1},f=C=>({elementID:"构件ID",elementName:"构件名",categoryName:"类别",familySymbolName:"族类型",levelName:"标高",modelName:"文件名",length:"长",width:"宽",height:"高"})[C]||C,u=["elementName","elementID","modelName","length","width","height","levelName","categoryName","familySymbolName"],m=async C=>{const v=++d.value;if(a.value=C,!C||C.length===0){o.value=[];return}if(!h.value)return;let S=C;C.length>10&&(pe.warning(`选中构件数量过多(${C.length}个),仅显示前10个`),S=C.slice(0,10));const D=s?.value;let O=D?.getMapTileset?D.getMapTileset():{};r.value=!0;const I=[],B={};if(S.forEach(x=>{const _=O[x.modelId]?.leiting?.model?.dbName;_&&x.elementId&&I.push({dbName:_,elementId:x.elementId,modelId:x.modelId})}),I.length>0){try{const x=I.map(_=>({dbName:_.dbName,elementId:_.elementId})),F=await sp(x);F&&Array.isArray(F)&&F.forEach(_=>{const H=I.find(L=>L.dbName===_.dbName&&L.elementId===_.elementId);if(H){const L=`${H.modelId}_${_.elementId}`;B[L]=_}})}catch(x){console.warn("API fetch component details failed, falling back to local data",x)}console.log("123")}const g=new Set;if(S.forEach(x=>{const F=O[x.modelId],_=`${x.modelId}_${x.elementId}`;B[_]||F&&F.leiting&&!F.leiting?.node?.nodeExtras&&F.leiting.model?.nodeUrl&&g.add(x.modelId)}),g.size>0&&D?.loadNodeDetailsForModel)try{const x=Array.from(g).map(F=>D.loadNodeDetailsForModel(F));await Promise.all(x)}catch(x){console.error("Failed to load node details",x)}if(v!==d.value)return;O=D?.getMapTileset?D.getMapTileset():{};const P=[];S.forEach((x,F)=>{const H=O[x.modelId]?.leiting||{},L=B[`${x.modelId}_${x.elementId}`];let w={modelName:H.model?.modelId||x.modelId};w.elementID||(w.elementID=x.elementId);let y=null;if(L)y=L;else{const k=H.node?.nodeExtras?.element||H.node?.nodeExtras;if(k){const Q=w.elementID;k[Q]&&(y=k[Q])}}y&&y.box3&&(w.length=`${y.box3.length?.toFixed(2)||0}米`,w.width=`${y.box3.width?.toFixed(2)||0}米`,w.height=`${y.box3.height?.toFixed(2)||0}米`);const b=[];y&&(y.name&&(w.elementName=y.name),y.categoryName&&(w.categoryName=y.categoryName),y.familySymbolName&&(w.familySymbolName=y.familySymbolName),y.levelName&&(w.levelName=y.levelName));const M={};if(u.forEach(k=>{w[k]!==void 0&&(M[k]=w[k])}),b.push({name:"基础信息",params:M}),y){const k=Array.isArray(y)?y:Array.isArray(y?.parameters)?y.parameters:null;if(k){if(k.flat().forEach(R=>{if(R&&R.GroupName&&Array.isArray(R.Parameters)){const T={};R.Parameters.forEach(U=>{U.name&&(T[U.name]=U.value??"")}),Object.keys(T).length>0&&b.push({name:R.GroupName,params:T})}}),!Array.isArray(y)){const{parameters:R,...T}=y,U={};Object.keys(T).forEach(V=>{!u.includes(V)&&V!=="uniqueId"&&typeof T[V]!="object"&&(U[V]=T[V])}),Object.keys(U).length>0&&b.push({name:"其他属性",params:U})}}else{let Q=!1;if(Object.keys(y).forEach(R=>{y[R]&&typeof y[R]=="object"&&!Array.isArray(y[R])&&(Q=!0,b.push({name:R,params:y[R]}))}),!Q){const R={};Object.keys(y).forEach(T=>{if(!u.includes(T)&&T!=="batchId"){const U=y[T];typeof U=="string"&&U.length>500?R[T]=U.substring(0,500)+"...":R[T]=U}}),Object.keys(R).length>0&&b.push({name:"属性",params:R})}}}P.push({id:F,title:`${w.modelName}${w.elementName?` - ${w.elementName}`:""}`,groups:b})}),o.value=P,v===d.value&&(r.value=!1),P.length>0?l.value=[`${P[0].id}-基础信息`]:l.value=[]};let E=!1;const A=()=>{if(E)return;const C=s?.value;C&&C.selectionChange&&(C.selectionChange(m),E=!0)};return c.watch(()=>s?.value,()=>{A()},{deep:!0,immediate:!0}),c.watch(h,C=>{C&&a.value.length>0&&m(a.value)}),c.onMounted(()=>{A()}),(C,v)=>(c.openBlock(),c.createBlock(ke,{visible:h.value,title:"构件详情",width:350,align:"right","initial-position":{x:0,y:0},"full-height":i.fullHeight,onClose:p,"onUpdate:visible":v[1]||(v[1]=S=>h.value=S),class:"base-info-card"},{default:c.withCtx(()=>[c.createElementVNode("div",Q0,[c.createVNode(c.unref(me.Spin),{spinning:r.value},{default:c.withCtx(()=>[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(o.value,S=>(c.openBlock(),c.createElementBlock("div",{key:S.id,class:"component-block"},[o.value.length>1?(c.openBlock(),c.createElementBlock("div",G0,c.toDisplayString(S.title),1)):c.createCommentVNode("",!0),c.createVNode(c.unref(me.Collapse),{activeKey:l.value,"onUpdate:activeKey":v[0]||(v[0]=D=>l.value=D),ghost:"","expand-icon-position":"end"},{default:c.withCtx(()=>[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(S.groups,D=>(c.openBlock(),c.createBlock(c.unref(me.CollapsePanel),{key:`${S.id}-${D.name}`,header:D.name},{default:c.withCtx(()=>[c.createVNode(c.unref(me.Descriptions),{size:"small",bordered:"",column:1,labelStyle:{width:"100px",background:"rgba(255,255,255,0.05)",color:"#aaa"},contentStyle:{color:"#fff"}},{default:c.withCtx(()=>[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(D.params,(O,I)=>(c.openBlock(),c.createBlock(c.unref(me.DescriptionsItem),{key:I,label:f(String(I))},{default:c.withCtx(()=>[c.createTextVNode(c.toDisplayString(O),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-cd881bde"]]);class al{viewer;Cesium;pickHandler=null;bimEntityId="";mapEntityId="";constructor(e,t){this.viewer=e,this.Cesium=t}removeMarker(e){if(!this.viewer)return;const t=e==="BIM"?this.bimEntityId:this.mapEntityId;t&&(this.viewer.entities.removeById(t),e==="BIM"?this.bimEntityId="":this.mapEntityId="")}clearMarkers(){this.removeMarker("BIM"),this.removeMarker("MAP")}addMarker(e,t){if(!this.viewer||!this.Cesium)return;this.removeMarker(e);const n=`adjust-marker-${e}-${Date.now()}`;e==="BIM"?this.bimEntityId=n:this.mapEntityId=n,this.viewer.entities.add({id:n,position:this.Cesium.Cartesian3.fromDegrees(t.longitude,t.latitude,t.height),point:{pixelSize:10,color:e==="BIM"?this.Cesium.Color.RED:this.Cesium.Color.ORANGE,outlineColor:this.Cesium.Color.WHITE,outlineWidth:2,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:{text:`${e==="BIM"?"BIM":"地图"}标记点`,font:"14pt sans-serif",style:this.Cesium.LabelStyle.FILL_AND_OUTLINE,outlineWidth:2,verticalOrigin:this.Cesium.VerticalOrigin.BOTTOM,pixelOffset:new this.Cesium.Cartesian2(0,-10),fillColor:this.Cesium.Color.WHITE,outlineColor:this.Cesium.Color.BLACK,backgroundColor:new this.Cesium.Color(.1,.1,.1,.8),showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY}})}registerPickHandler(e){this.destroyPickHandler(),!(!this.Cesium||!this.viewer)&&(this.pickHandler=new this.Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas),this.pickHandler.setInputAction(t=>{let n;try{n=this.viewer.scene.pickPosition(t.position)}catch(s){console.warn("pickPosition failed:",s)}if(!n){const s=this.viewer.camera.getPickRay(t.position);n=this.viewer.scene.globe.pick(s,this.viewer.scene)}if(n||(n=this.viewer.camera.pickEllipsoid(t.position,this.viewer.scene.globe.ellipsoid)),n){const s=this.Cesium.Cartographic.fromCartesian(n),o=this.Cesium.Math.toDegrees(s.longitude),r=this.Cesium.Math.toDegrees(s.latitude),l=s.height;e({longitude:o,latitude:r,height:l})}},this.Cesium.ScreenSpaceEventType.LEFT_CLICK,this.Cesium.KeyboardEventModifier.SHIFT))}destroyPickHandler(){this.pickHandler&&(this.pickHandler.destroy(),this.pickHandler=null)}calculateOffset(e,t){return{dLon:t.longitude-e.longitude,dLat:t.latitude-e.latitude,dHeight:t.height-e.height}}}const H0={class:"adjust-panel"},Y0={class:"control-panel"},V0={class:"form-item"},z0={class:"radio-group"},W0={class:"form-item"},j0={class:"radio-group"},K0={class:"form-item"},$0={class:"value"},X0={class:"param-row"},q0={class:"param-row"},J0={class:"param-row"},Z0={class:"param-row"},eC={class:"param-row"},tC={class:"param-row"},iC={class:"param-row"},nC={class:"button-grid"},sC={key:1,class:"pick-mode-ui"},oC={class:"form-item",style:{display:"block","margin-bottom":"15px"}},rC={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},aC=["checked"],lC={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},cC={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},dC={class:"form-item",style:{display:"block","margin-bottom":"15px"}},hC={class:"radio-group",style:{width:"100%",display:"flex","align-items":"flex-start","flex-direction":"column"}},uC=["checked"],fC={key:0,style:{"font-size":"12px",color:"#aaa","margin-left":"20px"}},pC={key:1,style:{"font-size":"12px",color:"#666","margin-left":"20px"}},gC={class:"list-panel"},mC={class:"list-header"},AC={class:"col-check"},yC=["checked"],CC={class:"list-body"},EC={class:"col-check"},wC=["onUpdate:modelValue"],bC={class:"col-index"},vC=["title"],IC={class:"col-main"},BC=["checked","onChange"],wi=Re(c.defineComponent({__name:"LeitingPosition",props:{visible:{type:Boolean},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean}},emits:["update:visible","update:open","close","save"],setup(i,{expose:e,emit:t}){const n=i,s=t,o=c.computed({get:()=>n.open!==void 0?n.open:n.visible,set:R=>{s("update:visible",R),s("update:open",R)}}),r=c.inject("leitingMethods"),l=c.ref("BIM"),a=c.ref("param"),d=c.ref(""),h=c.ref([]),p=c.ref("BIM"),f=c.ref(null),u=c.ref(null),m=c.ref(null),E=()=>(!m.value&&r?.value?.getViewer&&r?.value?.getCesium&&(m.value=new al(r.value.getViewer(),r.value.getCesium())),m.value),A=()=>{E()?.clearMarkers(),f.value=null,u.value=null},C=(R,T)=>{R==="BIM"?f.value=T:u.value=T,E()?.addMarker(R,T),pe.success(`${R==="BIM"?"BIM":"地图"}标记点已添加`)},v=()=>{E()?.registerPickHandler(R=>{C(p.value,R)})},S=()=>{E()?.destroyPickHandler()},D=()=>{if(!f.value||!u.value){pe.warning("请先选择BIM标记点和地图标记点");return}if(!d.value){pe.warning("请先选择主模型");return}const R=E();let T=0,U=0,V=0;if(R){const{dLon:W,dLat:X,dHeight:ee}=R.calculateOffset(f.value,u.value);T=W,U=X,V=ee}else T=u.value.longitude-f.value.longitude,U=u.value.latitude-f.value.latitude,V=u.value.height-f.value.height;I.value.longitude+=T,I.value.latitude+=U,I.value.height+=V,y(d.value,{longitude:I.value.longitude,latitude:I.value.latitude,height:I.value.height}),pe.success("位置已调整")};c.watch(()=>a.value,R=>{R==="pick"?v():S()}),e({addMarker:C,setModelType:R=>{(R==="BIM"||R==="OSGB")&&(l.value=R)}});const I=c.ref({longitude:0,latitude:0,lonlat:1e-6,heightDistance:1,rotation:30,totalRotation:0,height:0,X:0,Y:0,Z:0}),B=c.computed(()=>{const R=h.value.find(T=>T.modelId===d.value);return R?R.modelName:""}),g=c.computed(()=>x.value.length>0&&x.value.every(R=>R.selected)),P=()=>{o.value=!1,s("close")},x=c.computed(()=>h.value.filter(R=>R.type===l.value)),F=R=>{const T=R.target.checked;x.value.forEach(U=>U.selected=T)},_=()=>{if(!r?.value)return;const R=r.value,T=R.getMapTileset?R.getMapTileset():{},U=[];if(Object.keys(T).forEach(V=>{const X=T[V].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 V=R.getBIMmodelId?R.getBIMmodelId():"";V&&U.find(W=>W.modelId===V)?L(V):L(U[0].modelId),U.forEach(W=>W.selected=!0)}},H=()=>{pe.info("拖动右下角标,可显示模型列表",void 0,2)},L=R=>{d.value=R;const T=h.value.find(U=>U.modelId===R);T&&T.formData&&Object.keys(I.value).forEach(U=>{T.formData[U]!==void 0&&(I.value[U]=T.formData[U])})},w=R=>r?.value?.getMapTileset?r.value.getMapTileset()[R]:null,y=(R,T)=>{const U=w(R),V=r.value.getCesium();if(U&&V){if(U.leiting?.model){U.leiting.model.formData={...U.leiting.model.formData,...T};const W=h.value.find(X=>X.modelId===R);W&&(W.formData=U.leiting.model.formData)}Rn({Cesium:V,tileset:U})}},b=R=>{if(!d.value)return;const U=h.value.find(X=>X.modelId===d.value)?.formData?.[R]??0,V=I.value[R],W=V-U;y(d.value,{[R]:V}),W!==0&&x.value.filter(ee=>ee.selected&&ee.modelId!==d.value).forEach(ee=>{const ne=(ee.formData?.[R]??0)+W;y(ee.modelId,{[R]:ne})})},M=R=>{const T=x.value.filter(X=>X.selected);if(T.length===0){pe.warning("请先选择要调整的模型");return}const{lonlat:U,heightDistance:V,rotation:W}=I.value;T.forEach(X=>{const ee={...X.formData};switch(R){case"north":ee.latitude+=U;break;case"south":ee.latitude-=U;break;case"east":ee.longitude+=U;break;case"west":ee.longitude-=U;break;case"up":ee.height+=V;break;case"down":ee.height-=V;break;case"rotateLeft":ee.totalRotation=(ee.totalRotation||0)+W;break;case"rotateRight":ee.totalRotation=(ee.totalRotation||0)-W;break}X.modelId===d.value&&(ee.lonlat=U,ee.heightDistance=V,ee.rotation=W,Object.assign(I.value,ee)),y(X.modelId,ee)})},k=()=>{if(!d.value){pe.warning("请先选择主模型");return}const R=w(d.value);if(!R||!r?.value?.getViewer)return;const T=r.value.getViewer(),U=r.value.getCesium(),V=R.boundingSphere;T.camera.flyToBoundingSphere(V,{offset:new U.HeadingPitchRange(0,U.Math.toRadians(-90),V.radius*2),duration:1.5})},Q=()=>{r?.value?.saveRegion?(r.value.saveRegion(h.value),s("save",c.unref(h))):(console.log("Save models:",h.value),pe.warning("未找到保存接口,数据已打印控制台"))};return c.watch(()=>n.visible,R=>{R?(_(),H(),a.value==="pick"&&v()):(S(),A())}),c.onMounted(()=>{n.visible&&(_(),H(),a.value==="pick"&&v())}),(R,T)=>(c.openBlock(),c.createBlock(ke,{visible:o.value,title:"调整位置(调整前可选择正北俯视)","full-height":i.fullHeight,width:274,"onUpdate:visible":T[25]||(T[25]=U=>o.value=U),onClose:P,onSave:Q},{default:c.withCtx(()=>[c.createElementVNode("div",H0,[c.createElementVNode("div",Y0,[c.createElementVNode("div",V0,[T[26]||(T[26]=c.createElementVNode("label",null,"模型类型:",-1)),c.createElementVNode("div",z0,[c.createElementVNode("span",{class:c.normalizeClass({active:l.value==="BIM"}),onClick:T[0]||(T[0]=U=>l.value="BIM")},"BIM模型",2),c.createElementVNode("span",{class:c.normalizeClass({active:l.value==="OSGB"}),onClick:T[1]||(T[1]=U=>l.value="OSGB")},"倾斜摄影",2)])]),c.createElementVNode("div",W0,[T[27]||(T[27]=c.createElementVNode("label",null,"调整操作:",-1)),c.createElementVNode("div",j0,[c.createElementVNode("span",{class:c.normalizeClass({active:a.value==="param"}),onClick:T[2]||(T[2]=U=>a.value="param")},"参数模式",2),c.createElementVNode("span",{class:c.normalizeClass({active:a.value==="pick"}),onClick:T[3]||(T[3]=U=>a.value="pick")},"地图点选",2)])]),c.createElementVNode("div",K0,[T[28]||(T[28]=c.createElementVNode("label",null,"当前主模型:",-1)),c.createElementVNode("span",$0,c.toDisplayString(B.value||"未选择"),1)]),T[42]||(T[42]=c.createElementVNode("div",{class:"separator"},null,-1)),a.value==="param"?(c.openBlock(),c.createElementBlock(c.Fragment,{key:0},[T[36]||(T[36]=c.createElementVNode("div",{class:"group-header"},"当前状态",-1)),c.createElementVNode("div",X0,[T[29]||(T[29]=c.createElementVNode("label",null,"经度(东西):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[4]||(T[4]=U=>I.value.longitude=U),onChange:T[5]||(T[5]=U=>b("longitude")),step:"0.000001"},null,544),[[c.vModelText,I.value.longitude,void 0,{number:!0}]])]),c.createElementVNode("div",q0,[T[30]||(T[30]=c.createElementVNode("label",null,"纬度(南北):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[6]||(T[6]=U=>I.value.latitude=U),onChange:T[7]||(T[7]=U=>b("latitude")),step:"0.000001"},null,544),[[c.vModelText,I.value.latitude,void 0,{number:!0}]])]),c.createElementVNode("div",J0,[T[31]||(T[31]=c.createElementVNode("label",null,"高度(m):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[8]||(T[8]=U=>I.value.height=U),onChange:T[9]||(T[9]=U=>b("height")),step:"0.1"},null,544),[[c.vModelText,I.value.height,void 0,{number:!0}]])]),c.createElementVNode("div",Z0,[T[32]||(T[32]=c.createElementVNode("label",null,"累计旋转(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[10]||(T[10]=U=>I.value.totalRotation=U),onChange:T[11]||(T[11]=U=>b("totalRotation")),step:"1"},null,544),[[c.vModelText,I.value.totalRotation,void 0,{number:!0}]])]),T[37]||(T[37]=c.createElementVNode("div",{class:"separator"},null,-1)),T[38]||(T[38]=c.createElementVNode("div",{class:"group-header"},"调整步长",-1)),c.createElementVNode("div",eC,[T[33]||(T[33]=c.createElementVNode("label",null,"经纬步长(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[12]||(T[12]=U=>I.value.lonlat=U),step:"0.000001"},null,512),[[c.vModelText,I.value.lonlat,void 0,{number:!0}]])]),c.createElementVNode("div",tC,[T[34]||(T[34]=c.createElementVNode("label",null,"高度步长(m):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[13]||(T[13]=U=>I.value.heightDistance=U),step:"0.1"},null,512),[[c.vModelText,I.value.heightDistance,void 0,{number:!0}]])]),c.createElementVNode("div",iC,[T[35]||(T[35]=c.createElementVNode("label",null,"旋转步长(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":T[14]||(T[14]=U=>I.value.rotation=U),step:"1"},null,512),[[c.vModelText,I.value.rotation,void 0,{number:!0}]])]),c.createElementVNode("div",nC,[c.createElementVNode("button",{onClick:T[15]||(T[15]=U=>M("rotateLeft"))},"左转"),c.createElementVNode("button",{onClick:T[16]||(T[16]=U=>M("north"))},"北移"),c.createElementVNode("button",{onClick:T[17]||(T[17]=U=>M("rotateRight"))},"右转"),c.createElementVNode("button",{onClick:T[18]||(T[18]=U=>M("west"))},"西移"),c.createElementVNode("button",{onClick:T[19]||(T[19]=U=>M("south"))},"南移"),c.createElementVNode("button",{onClick:T[20]||(T[20]=U=>M("east"))},"东移"),c.createElementVNode("button",{onClick:T[21]||(T[21]=U=>M("up"))},"上移"),c.createElementVNode("button",{onClick:T[22]||(T[22]=U=>M("down"))},"下移"),c.createElementVNode("button",{onClick:k,class:"primary-btn"},"正北俯视"),c.createElementVNode("button",{onClick:Q,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):a.value==="pick"?(c.openBlock(),c.createElementBlock("div",sC,[c.createElementVNode("div",oC,[c.createElementVNode("div",rC,[c.createElementVNode("div",{onClick:T[23]||(T[23]=U=>p.value="BIM"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[c.createElementVNode("input",{type:"radio",checked:p.value==="BIM",style:{"margin-right":"5px"}},null,8,aC),T[39]||(T[39]=c.createElementVNode("span",{style:{"font-weight":"bold"}},"BIM标记点:",-1))]),f.value?(c.openBlock(),c.createElementBlock("div",lC,[c.createElementVNode("div",null,"经度:"+c.toDisplayString(f.value.longitude.toFixed(10)),1),c.createElementVNode("div",null,"纬度:"+c.toDisplayString(f.value.latitude.toFixed(10)),1)])):(c.openBlock(),c.createElementBlock("div",cC,"未选择"))])]),c.createElementVNode("div",dC,[c.createElementVNode("div",hC,[c.createElementVNode("div",{onClick:T[24]||(T[24]=U=>p.value="MAP"),style:{cursor:"pointer",display:"flex","align-items":"center","margin-bottom":"5px"}},[c.createElementVNode("input",{type:"radio",checked:p.value==="MAP",style:{"margin-right":"5px"}},null,8,uC),T[40]||(T[40]=c.createElementVNode("span",{style:{"font-weight":"bold"}},"地图标记点:",-1))]),u.value?(c.openBlock(),c.createElementBlock("div",fC,[c.createElementVNode("div",null,"经度:"+c.toDisplayString(u.value.longitude.toFixed(10)),1),c.createElementVNode("div",null,"纬度:"+c.toDisplayString(u.value.latitude.toFixed(10)),1)])):(c.openBlock(),c.createElementBlock("div",pC,"未选择"))])]),c.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[c.createElementVNode("button",{onClick:D},"调整位置"),c.createElementVNode("button",{onClick:Q},"保存")]),T[41]||(T[41]=c.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[c.createElementVNode("div",null,"操作指南:"),c.createElementVNode("div",null,"1. 勾选上方 BIM 或 地图 标记点选项。"),c.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),c.createElementVNode("div",null,"3. 采集两点后,点击“调整位置”进行校准。")],-1))])):c.createCommentVNode("",!0)]),c.createElementVNode("div",gC,[c.createElementVNode("div",mC,[c.createElementVNode("div",AC,[c.createElementVNode("input",{type:"checkbox",checked:g.value,onChange:F},null,40,yC)]),T[43]||(T[43]=c.createElementVNode("div",{class:"col-index"},"序号",-1)),T[44]||(T[44]=c.createElementVNode("div",{class:"col-name"},"名称",-1)),T[45]||(T[45]=c.createElementVNode("div",{class:"col-main"},"主模型",-1))]),c.createElementVNode("div",CC,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(x.value,(U,V)=>(c.openBlock(),c.createElementBlock("div",{key:U.modelId,class:c.normalizeClass(["list-item",{active:U.modelId===d.value}])},[c.createElementVNode("div",EC,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":W=>U.selected=W},null,8,wC),[[c.vModelCheckbox,U.selected]])]),c.createElementVNode("div",bC,c.toDisplayString(V+1),1),c.createElementVNode("div",{class:"col-name",title:U.modelName},c.toDisplayString(U.modelName),9,vC),c.createElementVNode("div",IC,[c.createElementVNode("input",{type:"radio",name:"mainModel",checked:U.modelId===d.value,onChange:W=>L(U.modelId)},null,40,BC)])],2))),128))])])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-3489beaa"]]);function an(){return an=Object.assign?Object.assign.bind():function(i){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)({}).hasOwnProperty.call(t,n)&&(i[n]=t[n])}return i},an.apply(null,arguments)}const xC={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:"下一世纪"},SC={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},ll={lang:an({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},xC),timePickerLocale:an({},SC)};ll.lang.ok="确定";var ln={exports:{}},TC=ln.exports,cl;function dl(){return cl||(cl=1,(function(i,e){(function(t,n){i.exports=n()})(TC,(function(){var t=1e3,n=6e4,s=36e5,o="millisecond",r="second",l="minute",a="hour",d="day",h="week",p="month",f="quarter",u="year",m="date",E="Invalid Date",A=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,C=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(L){var w=["th","st","nd","rd"],y=L%100;return"["+L+(w[(y-20)%10]||w[y]||w[0])+"]"}},S=function(L,w,y){var b=String(L);return!b||b.length>=w?L:""+Array(w+1-b.length).join(y)+L},D={s:S,z:function(L){var w=-L.utcOffset(),y=Math.abs(w),b=Math.floor(y/60),M=y%60;return(w<=0?"+":"-")+S(b,2,"0")+":"+S(M,2,"0")},m:function L(w,y){if(w.date()<y.date())return-L(y,w);var b=12*(y.year()-w.year())+(y.month()-w.month()),M=w.clone().add(b,p),k=y-M<0,Q=w.clone().add(b+(k?-1:1),p);return+(-(b+(y-M)/(k?M-Q:Q-M))||0)},a:function(L){return L<0?Math.ceil(L)||0:Math.floor(L)},p:function(L){return{M:p,y:u,w:h,d,D:m,h:a,m:l,s:r,ms:o,Q:f}[L]||String(L||"").toLowerCase().replace(/s$/,"")},u:function(L){return L===void 0}},O="en",I={};I[O]=v;var B="$isDayjsObject",g=function(L){return L instanceof _||!(!L||!L[B])},P=function L(w,y,b){var M;if(!w)return O;if(typeof w=="string"){var k=w.toLowerCase();I[k]&&(M=k),y&&(I[k]=y,M=k);var Q=w.split("-");if(!M&&Q.length>1)return L(Q[0])}else{var R=w.name;I[R]=w,M=R}return!b&&M&&(O=M),M||!b&&O},x=function(L,w){if(g(L))return L.clone();var y=typeof w=="object"?w:{};return y.date=L,y.args=arguments,new _(y)},F=D;F.l=P,F.i=g,F.w=function(L,w){return x(L,{locale:w.$L,utc:w.$u,x:w.$x,$offset:w.$offset})};var _=(function(){function L(y){this.$L=P(y.locale,null,!0),this.parse(y),this.$x=this.$x||y.x||{},this[B]=!0}var w=L.prototype;return w.parse=function(y){this.$d=(function(b){var M=b.date,k=b.utc;if(M===null)return new Date(NaN);if(F.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var Q=M.match(A);if(Q){var R=Q[2]-1||0,T=(Q[7]||"0").substring(0,3);return k?new Date(Date.UTC(Q[1],R,Q[3]||1,Q[4]||0,Q[5]||0,Q[6]||0,T)):new Date(Q[1],R,Q[3]||1,Q[4]||0,Q[5]||0,Q[6]||0,T)}}return new Date(M)})(y),this.init()},w.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()},w.$utils=function(){return F},w.isValid=function(){return this.$d.toString()!==E},w.isSame=function(y,b){var M=x(y);return this.startOf(b)<=M&&M<=this.endOf(b)},w.isAfter=function(y,b){return x(y)<this.startOf(b)},w.isBefore=function(y,b){return this.endOf(b)<x(y)},w.$g=function(y,b,M){return F.u(y)?this[b]:this.set(M,y)},w.unix=function(){return Math.floor(this.valueOf()/1e3)},w.valueOf=function(){return this.$d.getTime()},w.startOf=function(y,b){var M=this,k=!!F.u(b)||b,Q=F.p(y),R=function(ne,Y){var j=F.w(M.$u?Date.UTC(M.$y,Y,ne):new Date(M.$y,Y,ne),M);return k?j:j.endOf(d)},T=function(ne,Y){return F.w(M.toDate()[ne].apply(M.toDate("s"),(k?[0,0,0,0]:[23,59,59,999]).slice(Y)),M)},U=this.$W,V=this.$M,W=this.$D,X="set"+(this.$u?"UTC":"");switch(Q){case u:return k?R(1,0):R(31,11);case p:return k?R(1,V):R(0,V+1);case h:var ee=this.$locale().weekStart||0,oe=(U<ee?U+7:U)-ee;return R(k?W-oe:W+(6-oe),V);case d:case m:return T(X+"Hours",0);case a:return T(X+"Minutes",1);case l:return T(X+"Seconds",2);case r:return T(X+"Milliseconds",3);default:return this.clone()}},w.endOf=function(y){return this.startOf(y,!1)},w.$set=function(y,b){var M,k=F.p(y),Q="set"+(this.$u?"UTC":""),R=(M={},M[d]=Q+"Date",M[m]=Q+"Date",M[p]=Q+"Month",M[u]=Q+"FullYear",M[a]=Q+"Hours",M[l]=Q+"Minutes",M[r]=Q+"Seconds",M[o]=Q+"Milliseconds",M)[k],T=k===d?this.$D+(b-this.$W):b;if(k===p||k===u){var U=this.clone().set(m,1);U.$d[R](T),U.init(),this.$d=U.set(m,Math.min(this.$D,U.daysInMonth())).$d}else R&&this.$d[R](T);return this.init(),this},w.set=function(y,b){return this.clone().$set(y,b)},w.get=function(y){return this[F.p(y)]()},w.add=function(y,b){var M,k=this;y=Number(y);var Q=F.p(b),R=function(V){var W=x(k);return F.w(W.date(W.date()+Math.round(V*y)),k)};if(Q===p)return this.set(p,this.$M+y);if(Q===u)return this.set(u,this.$y+y);if(Q===d)return R(1);if(Q===h)return R(7);var T=(M={},M[l]=n,M[a]=s,M[r]=t,M)[Q]||1,U=this.$d.getTime()+y*T;return F.w(U,this)},w.subtract=function(y,b){return this.add(-1*y,b)},w.format=function(y){var b=this,M=this.$locale();if(!this.isValid())return M.invalidDate||E;var k=y||"YYYY-MM-DDTHH:mm:ssZ",Q=F.z(this),R=this.$H,T=this.$m,U=this.$M,V=M.weekdays,W=M.months,X=M.meridiem,ee=function(Y,j,te,le){return Y&&(Y[j]||Y(b,k))||te[j].slice(0,le)},oe=function(Y){return F.s(R%12||12,Y,"0")},ne=X||function(Y,j,te){var le=Y<12?"AM":"PM";return te?le.toLowerCase():le};return k.replace(C,(function(Y,j){return j||(function(te){switch(te){case"YY":return String(b.$y).slice(-2);case"YYYY":return F.s(b.$y,4,"0");case"M":return U+1;case"MM":return F.s(U+1,2,"0");case"MMM":return ee(M.monthsShort,U,W,3);case"MMMM":return ee(W,U);case"D":return b.$D;case"DD":return F.s(b.$D,2,"0");case"d":return String(b.$W);case"dd":return ee(M.weekdaysMin,b.$W,V,2);case"ddd":return ee(M.weekdaysShort,b.$W,V,3);case"dddd":return V[b.$W];case"H":return String(R);case"HH":return F.s(R,2,"0");case"h":return oe(1);case"hh":return oe(2);case"a":return ne(R,T,!0);case"A":return ne(R,T,!1);case"m":return String(T);case"mm":return F.s(T,2,"0");case"s":return String(b.$s);case"ss":return F.s(b.$s,2,"0");case"SSS":return F.s(b.$ms,3,"0");case"Z":return Q}return null})(Y)||Q.replace(":","")}))},w.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},w.diff=function(y,b,M){var k,Q=this,R=F.p(b),T=x(y),U=(T.utcOffset()-this.utcOffset())*n,V=this-T,W=function(){return F.m(Q,T)};switch(R){case u:k=W()/12;break;case p:k=W();break;case f:k=W()/3;break;case h:k=(V-U)/6048e5;break;case d:k=(V-U)/864e5;break;case a:k=V/s;break;case l:k=V/n;break;case r:k=V/t;break;default:k=V}return M?k:F.a(k)},w.daysInMonth=function(){return this.endOf(p).$D},w.$locale=function(){return I[this.$L]},w.locale=function(y,b){if(!y)return this.$L;var M=this.clone(),k=P(y,b,!0);return k&&(M.$L=k),M},w.clone=function(){return F.w(this.$d,this)},w.toDate=function(){return new Date(this.valueOf())},w.toJSON=function(){return this.isValid()?this.toISOString():null},w.toISOString=function(){return this.$d.toISOString()},w.toString=function(){return this.$d.toUTCString()},L})(),H=_.prototype;return x.prototype=H,[["$ms",o],["$s",r],["$m",l],["$H",a],["$W",d],["$M",p],["$y",u],["$D",m]].forEach((function(L){H[L[1]]=function(w){return this.$g(w,L[0],L[1])}})),x.extend=function(L,w){return L.$i||(L(w,_,x),L.$i=!0),x},x.locale=P,x.isDayjs=g,x.unix=function(L){return x(1e3*L)},x.en=I[O],x.Ls=I,x.p={},x}))})(ln)),ln.exports}var MC=dl();const He=Qt(MC);var cn={exports:{}},DC=cn.exports,hl;function kC(){return hl||(hl=1,(function(i,e){(function(t,n){i.exports=n(dl())})(DC,(function(t){function n(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var s=n(t),o={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(r,l){return l==="W"?r+"周":r+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(r,l){var a=100*r+l;return a<600?"凌晨":a<900?"早上":a<1100?"上午":a<1300?"中午":a<1800?"下午":"晚上"}};return s.default.locale(o,null,!0),o}))})(cn)),cn.exports}kC();var dn={exports:{}},PC=dn.exports,ul;function FC(){return ul||(ul=1,(function(i,e){(function(t,n){i.exports=n()})(PC,(function(){return function(t,n,s){var o=n.prototype,r=function(p){return p&&(p.indexOf?p:p.s)},l=function(p,f,u,m,E){var A=p.name?p:p.$locale(),C=r(A[f]),v=r(A[u]),S=C||v.map((function(O){return O.slice(0,m)}));if(!E)return S;var D=A.weekStart;return S.map((function(O,I){return S[(I+(D||0))%7]}))},a=function(){return s.Ls[s.locale()]},d=function(p,f){return p.formats[f]||(function(u){return u.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(m,E,A){return E||A.slice(1)}))})(p.formats[f.toUpperCase()])},h=function(){var p=this;return{months:function(f){return f?f.format("MMMM"):l(p,"months")},monthsShort:function(f){return f?f.format("MMM"):l(p,"monthsShort","months",3)},firstDayOfWeek:function(){return p.$locale().weekStart||0},weekdays:function(f){return f?f.format("dddd"):l(p,"weekdays")},weekdaysMin:function(f){return f?f.format("dd"):l(p,"weekdaysMin","weekdays",2)},weekdaysShort:function(f){return f?f.format("ddd"):l(p,"weekdaysShort","weekdays",3)},longDateFormat:function(f){return d(p.$locale(),f)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};o.localeData=function(){return h.bind(this)()},s.localeData=function(){var p=a();return{firstDayOfWeek:function(){return p.weekStart||0},weekdays:function(){return s.weekdays()},weekdaysShort:function(){return s.weekdaysShort()},weekdaysMin:function(){return s.weekdaysMin()},months:function(){return s.months()},monthsShort:function(){return s.monthsShort()},longDateFormat:function(f){return d(p,f)},meridiem:p.meridiem,ordinal:p.ordinal}},s.months=function(){return l(a(),"months")},s.monthsShort=function(){return l(a(),"monthsShort","months",3)},s.weekdays=function(p){return l(a(),"weekdays",null,null,p)},s.weekdaysShort=function(p){return l(a(),"weekdaysShort","weekdays",3,p)},s.weekdaysMin=function(p){return l(a(),"weekdaysMin","weekdays",2,p)}}}))})(dn)),dn.exports}var RC=FC();const OC=Qt(RC);var hn={exports:{}},LC=hn.exports,fl;function NC(){return fl||(fl=1,(function(i,e){(function(t,n){i.exports=n()})(LC,(function(){return function(t,n){n.prototype.weekday=function(s){var o=this.$locale().weekStart||0,r=this.$W,l=(r<o?r+7:r)-o;return this.$utils().u(s)?l:this.subtract(l,"day").add(s,"day")}}}))})(hn)),hn.exports}var UC=NC();const _C=Qt(UC);var un={exports:{}},QC=un.exports,pl;function GC(){return pl||(pl=1,(function(i,e){(function(t,n){i.exports=n()})(QC,(function(){var t="week",n="year";return function(s,o,r){var l=o.prototype;l.week=function(a){if(a===void 0&&(a=null),a!==null)return this.add(7*(a-this.week()),"day");var d=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var h=r(this).startOf(n).add(1,n).date(d),p=r(this).endOf(t);if(h.isBefore(p))return 1}var f=r(this).startOf(n).date(d).startOf(t).subtract(1,"millisecond"),u=this.diff(f,t,!0);return u<0?r(this).startOf("week").week():Math.ceil(u)},l.weeks=function(a){return a===void 0&&(a=null),this.week(a)}}}))})(un)),un.exports}var HC=GC();const YC=Qt(HC);var fn={exports:{}},VC=fn.exports,gl;function zC(){return gl||(gl=1,(function(i,e){(function(t,n){i.exports=n()})(VC,(function(){var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},n=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,s=/\d/,o=/\d\d/,r=/\d\d?/,l=/\d*[^-_:/,()\s\d]+/,a={},d=function(A){return(A=+A)+(A>68?1900:2e3)},h=function(A){return function(C){this[A]=+C}},p=[/[+-]\d\d:?(\d\d)?|Z/,function(A){(this.zone||(this.zone={})).offset=(function(C){if(!C||C==="Z")return 0;var v=C.match(/([+-]|\d\d)/g),S=60*v[1]+(+v[2]||0);return S===0?0:v[0]==="+"?-S:S})(A)}],f=function(A){var C=a[A];return C&&(C.indexOf?C:C.s.concat(C.f))},u=function(A,C){var v,S=a.meridiem;if(S){for(var D=1;D<=24;D+=1)if(A.indexOf(S(D,0,C))>-1){v=D>12;break}}else v=A===(C?"pm":"PM");return v},m={A:[l,function(A){this.afternoon=u(A,!1)}],a:[l,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:[r,h("seconds")],ss:[r,h("seconds")],m:[r,h("minutes")],mm:[r,h("minutes")],H:[r,h("hours")],h:[r,h("hours")],HH:[r,h("hours")],hh:[r,h("hours")],D:[r,h("day")],DD:[o,h("day")],Do:[l,function(A){var C=a.ordinal,v=A.match(/\d+/);if(this.day=v[0],C)for(var S=1;S<=31;S+=1)C(S).replace(/\[|\]/g,"")===A&&(this.day=S)}],w:[r,h("week")],ww:[o,h("week")],M:[r,h("month")],MM:[o,h("month")],MMM:[l,function(A){var C=f("months"),v=(f("monthsShort")||C.map((function(S){return S.slice(0,3)}))).indexOf(A)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[l,function(A){var C=f("months").indexOf(A)+1;if(C<1)throw new Error;this.month=C%12||C}],Y:[/[+-]?\d+/,h("year")],YY:[o,function(A){this.year=d(A)}],YYYY:[/\d{4}/,h("year")],Z:p,ZZ:p};function E(A){var C,v;C=A,v=a&&a.formats;for(var S=(A=C.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(x,F,_){var H=_&&_.toUpperCase();return F||v[_]||t[_]||v[H].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(L,w,y){return w||y.slice(1)}))}))).match(n),D=S.length,O=0;O<D;O+=1){var I=S[O],B=m[I],g=B&&B[0],P=B&&B[1];S[O]=P?{regex:g,parser:P}:I.replace(/^\[|\]$/g,"")}return function(x){for(var F={},_=0,H=0;_<D;_+=1){var L=S[_];if(typeof L=="string")H+=L.length;else{var w=L.regex,y=L.parser,b=x.slice(H),M=w.exec(b)[0];y.call(F,M),x=x.replace(M,"")}}return(function(k){var Q=k.afternoon;if(Q!==void 0){var R=k.hours;Q?R<12&&(k.hours+=12):R===12&&(k.hours=0),delete k.afternoon}})(F),F}}return function(A,C,v){v.p.customParseFormat=!0,A&&A.parseTwoDigitYear&&(d=A.parseTwoDigitYear);var S=C.prototype,D=S.parse;S.parse=function(O){var I=O.date,B=O.utc,g=O.args;this.$u=B;var P=g[1];if(typeof P=="string"){var x=g[2]===!0,F=g[3]===!0,_=x||F,H=g[2];F&&(H=g[2]),a=this.$locale(),!x&&H&&(a=v.Ls[H]),this.$d=(function(b,M,k,Q){try{if(["x","X"].indexOf(M)>-1)return new Date((M==="X"?1e3:1)*b);var R=E(M)(b),T=R.year,U=R.month,V=R.day,W=R.hours,X=R.minutes,ee=R.seconds,oe=R.milliseconds,ne=R.zone,Y=R.week,j=new Date,te=V||(T||U?1:j.getDate()),le=T||j.getFullYear(),re=0;T&&!U||(re=U>0?U-1:j.getMonth());var ce,ve=W||0,Te=X||0,et=ee||0,xt=oe||0;return ne?new Date(Date.UTC(le,re,te,ve,Te,et,xt+60*ne.offset*1e3)):k?new Date(Date.UTC(le,re,te,ve,Te,et,xt)):(ce=new Date(le,re,te,ve,Te,et,xt),Y&&(ce=Q(ce).week(Y).toDate()),ce)}catch{return new Date("")}})(I,P,B,v),this.init(),H&&H!==!0&&(this.$L=this.locale(H).$L),_&&I!=this.format(P)&&(this.$d=new Date("")),a={}}else if(P instanceof Array)for(var L=P.length,w=1;w<=L;w+=1){g[1]=P[w-1];var y=v.apply(this,g);if(y.isValid()){this.$d=y.$d,this.$L=y.$L,this.init();break}w===L&&(this.$d=new Date(""))}else D.call(this,O)}}}))})(fn)),fn.exports}var WC=zC();const jC=Qt(WC),KC={class:"setting-panel"},$C={class:"tabs-header"},XC={class:"tab-content"},qC={key:0,class:"section"},JC={class:"setting-item"},ZC={class:"setting-item"},eE={class:"setting-item"},tE={key:1,class:"section"},iE={class:"tabs-header",style:{"margin-bottom":"8px"}},nE={key:0},sE={class:"setting-item column"},oE={class:"setting-item column"},rE={class:"setting-item"},aE={key:1},lE={class:"setting-item column"},cE={class:"setting-item column",style:{"margin-top":"12px","border-top":"1px solid rgba(255,255,255,0.1)","padding-top":"8px"}},dE={class:"search-box"},hE={key:2,class:"section"},uE={class:"setting-item"},fE={key:0,class:"setting-item column"},pE={class:"sub-label"},gE={class:"setting-item"},mE={class:"setting-item"},AE={class:"setting-item column"},yE={class:"setting-item column"},CE={class:"sub-label"},EE={class:"setting-item column"},wE={class:"sub-label"},bE={class:"setting-item column"},vE={class:"sub-label"},IE={class:"setting-item column"},BE={style:{display:"flex",gap:"8px","margin-bottom":"8px"}},xE=["onClick","title"],SE={style:{display:"flex",gap:"8px","align-items":"center"}},TE={key:3,class:"section"},ME={class:"setting-item"},DE={class:"setting-item column"},bi=Re(c.defineComponent({__name:"LeitingSetting",props:{visible:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},fullHeight:{type:Boolean,default:!1},tiandituToken:{type:String,default:""},initialConfig:{type:Object,default:()=>({})}},emits:["update:visible","update:open","close"],setup(i,{emit:e}){He.locale("zh-cn"),He.extend(OC),He.extend(_C),He.extend(YC),He.extend(jC);const t=me.Switch,n=me.Radio.Group,s=me.Radio,o=me.Input,r=me.Slider,l=me.Select,a=me.Select.Option,d=me.DatePicker,h=i,p=e,f=c.inject("leitingMethods"),u=c.computed({get:()=>h.open!==void 0?h.open:h.visible,set:w=>{p("update:visible",w),p("update:open",w)}}),m=c.ref("GIS"),E=c.reactive({globe:!1,terrain:!1,depthTest:!1}),A=c.reactive({provider:"tianditu",tianditu:{token:"c25f14fb6bd4397cf8fe45144ff768d6",layerType:"img_w",showLabel:!1},arcgis:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"},baseMap:"tianditu"}),C=c.reactive({shadows:!1,shadowDarkness:.7,environmentMap:!1,ambientOcclusion:!1,time:He("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%)"}),v=c.reactive({collision:!1,habit:0}),S=w=>{w&&(w.globe!==void 0&&(E.globe=w.globe),w.terrain!==void 0&&(E.terrain=w.terrain),w.depthTest!==void 0&&(E.depthTest=w.depthTest),w.mapProvider!==void 0&&(A.provider=w.mapProvider),w.tiandituLayerType!==void 0&&(A.tianditu.layerType=w.tiandituLayerType),w.tiandituShowLabel!==void 0&&(A.tianditu.showLabel=w.tiandituShowLabel),w.arcgisUrl!==void 0&&(A.arcgis.url=w.arcgisUrl),w.shadows!==void 0&&(C.shadows=w.shadows),w.shadowDarkness!==void 0&&(C.shadowDarkness=w.shadowDarkness),w.environmentMap!==void 0&&(C.environmentMap=w.environmentMap),w.ambientOcclusion!==void 0&&(C.ambientOcclusion=w.ambientOcclusion),w.time!==void 0&&(typeof w.time=="number"?C.time=He().startOf("day").add(w.time,"hour"):C.time=He(w.time)),w.brightness!==void 0&&(C.brightness=w.brightness),w.contrast!==void 0&&(C.contrast=w.contrast),w.saturation!==void 0&&(C.saturation=w.saturation),w.backgroundColor!==void 0&&(C.backgroundColor=w.backgroundColor),w.collision!==void 0&&(v.collision=w.collision),w.mouseHabit!==void 0&&(v.habit=w.mouseHabit))};c.watch(()=>h.initialConfig,w=>{S(w)},{deep:!0,immediate:!0});const D=["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%)"],O=[{label:"全球影像地图服务(墨卡托)",value:"img_w"},{label:"全球影像地图服务(经纬度)",value:"img_c"},{label:"全球矢量地图服务(墨卡托)",value:"vec_w"},{label:"全球矢量地图服务(经纬度)",value:"vec_c"},{label:"全球地形晕渲服务(墨卡托)",value:"ter_w"},{label:"全球地形晕渲服务(经纬度)",value:"ter_c"}],I=()=>{const w=A.provider,y={};w==="tianditu"?(y.token=A.tianditu.token,y.layerType=A.tianditu.layerType,y.showAnnotation=A.tianditu.showLabel):w==="arcgis"&&(y.url=A.arcgis.url),f.value?.changeBaseMap?.(w,y)};c.watch(()=>A.provider,I),c.watch(()=>A.tianditu.layerType,I),c.watch(()=>A.tianditu.showLabel,I),c.watch(()=>A.tianditu.token,kn(I,1e3)),c.watch(()=>A.arcgis.url,kn(I,1e3)),c.onMounted(()=>{h.tiandituToken&&(A.tianditu.token=h.tiandituToken)}),c.watch(()=>E.globe,w=>f.value?.setGlobeEnvironmentVisible?.(w)),c.watch(()=>E.terrain,w=>f.value?.setTerrainEnable?.(w)),c.watch(()=>E.depthTest,w=>f.value?.setDepthTestEnable?.(w)),c.watch(()=>f?.value,w=>{if(w){if(w.getConfigure=()=>({globe:E.globe,terrain:E.terrain,depthTest:E.depthTest,mapProvider:A.provider,tiandituLayerType:A.tianditu.layerType,tiandituShowLabel:A.tianditu.showLabel,arcgisUrl:A.arcgis.url,shadows:C.shadows,shadowDarkness:C.shadowDarkness,environmentMap:C.environmentMap,ambientOcclusion:C.ambientOcclusion,time:He.isDayjs(C.time)?C.time.format("YYYY-MM-DD HH:mm"):C.time,brightness:C.brightness,contrast:C.contrast,saturation:C.saturation,backgroundColor:C.backgroundColor,collision:v.collision,mouseHabit:v.habit}),w.setConfigure=y=>{S(y)},w.setBackgroundColor&&C.backgroundColor&&w.setBackgroundColor(C.backgroundColor),w.setGlobeEnvironmentVisible&&w.setGlobeEnvironmentVisible(E.globe),w.setShadowsEnable&&w.setShadowsEnable(C.shadows),w.setShadowDarkness&&w.setShadowDarkness(C.shadowDarkness),w.setEnvironmentMapEnable&&w.setEnvironmentMapEnable(C.environmentMap),w.setAmbientOcclusion&&w.setAmbientOcclusion(C.ambientOcclusion),w.setTime){const y=He.isDayjs(C.time)?C.time.toDate():new Date;w.setTime(y)}w.setModelBrightness&&w.setModelBrightness(C.brightness),w.setCollisionDetection&&w.setCollisionDetection(v.collision),w.setMouseHabit&&w.setMouseHabit(v.habit),w.changeBaseMap&&A.baseMap&&w.changeBaseMap(A.baseMap,{token:A.tianditu.token,layerType:A.tianditu.layerType,showAnnotation:A.tianditu.showLabel,url:A.arcgis.url})}},{immediate:!0});const B=c.computed({get:()=>{const w=C.backgroundColor;return/^#[0-9A-Fa-f]{6}$/.test(w)?w:"#ffffff"},set:w=>{C.backgroundColor=w}}),g=c.ref(""),P=c.ref(!1),x=c.ref([]);c.watch(()=>E.globe,w=>f.value?.setGlobeEnvironmentVisible?.(w)),c.watch(()=>E.terrain,w=>f.value?.setTerrainEnable?.(w)),c.watch(()=>A.baseMap,w=>{f.value?.changeBaseMap?.(w,{token:h.tiandituToken})}),c.watch(()=>C.shadows,w=>f.value?.setShadowsEnable?.(w)),c.watch(()=>C.shadowDarkness,w=>f.value?.setShadowDarkness?.(w)),c.watch(()=>C.environmentMap,w=>f.value?.setEnvironmentMapEnable?.(w)),c.watch(()=>C.ambientOcclusion,w=>f.value?.setAmbientOcclusion?.(w)),c.watch(()=>C.time,w=>{const y=He.isDayjs(w)?w.toDate():new Date;f.value?.setTime?.(y)}),c.watch(()=>[C.brightness,C.contrast,C.saturation],([w,y,b])=>{const M=f.value;M?.setModelColorAdjustment?M.setModelColorAdjustment({brightness:w,contrast:y,saturation:b}):M?.setModelBrightness?.(w)}),c.watch(()=>C.backgroundColor,w=>{if(f.value?.setBackgroundColor)f.value.setBackgroundColor(w);else{const y=document.querySelector(".cesium-viewer");y&&(y.style.background=w)}}),c.watch(()=>v.collision,w=>f.value?.setCollisionDetection?.(w)),c.watch(()=>v.habit,w=>f.value?.setMouseHabit?.(w));const F=w=>{if(w?.pois&&Array.isArray(w.pois)&&w.pois.length>0){const y=w.pois[0],b=y.lonlat.split(/[, ]/).map(Number);if(b.length>=2&&!isNaN(b[0])&&!isNaN(b[1]))return{name:y.name,lon:b[0],lat:b[1],raw:y}}if(w?.area&&w.area.lonlat){const y=w.area,b=y.lonlat.split(/[, ]/).map(Number);if(b.length>=2&&!isNaN(b[0])&&!isNaN(b[1]))return{name:y.name,lon:b[0],lat:b[1],raw:y}}return null},H=kn(async()=>{const w=(g.value||"").trim();if(!w)return;const y=h.tiandituToken||"c25f14fb6bd4397cf8fe45144ff768d6";P.value=!0,x.value=[];try{if(f.value?.searchLocation){const b=await f.value.searchLocation(w,y),M=F(b);M&&(x.value=[M],pe.success(`找到:${M.name||""}`),f.value.flyToLonLatHeight(M.lon,M.lat,5e3))}else{const M=`https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(JSON.stringify({keyWord:w,level:12,mapBound:"-180,-90,180,90",queryType:1,start:0,count:10}))}&type=query&tk=${encodeURIComponent(y)}`,k=await fetch(M);if(!k.ok)throw new Error(`HTTP ${k.status}`);const Q=await k.json(),R=F(Q);R&&(x.value=[R],pe.success(`找到:${R.name||""}`),f.value?.flyToLonLatHeight?.(R.lon,R.lat,5e3))}}catch(b){console.error("tianditu search error",b)}finally{P.value=!1}},800);c.watch(g,()=>{H()});const L=()=>{u.value=!1,p("close")};return c.onMounted(()=>{}),(w,y)=>(c.openBlock(),c.createBlock(ke,{visible:u.value,title:"设置","full-height":i.fullHeight,onClose:L,"onUpdate:visible":y[26]||(y[26]=b=>u.value=b)},{default:c.withCtx(()=>[c.createElementVNode("div",KC,[c.createElementVNode("div",$C,[c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:m.value==="GIS"}]),onClick:y[0]||(y[0]=b=>m.value="GIS")},"GIS",2),c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:m.value==="MAP"}]),onClick:y[1]||(y[1]=b=>m.value="MAP")},"地图",2),c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:m.value==="RENDER"}]),onClick:y[2]||(y[2]=b=>m.value="RENDER")},"渲染",2),c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:m.value==="MOUSE"}]),onClick:y[3]||(y[3]=b=>m.value="MOUSE")},"鼠标",2)]),c.createElementVNode("div",XC,[m.value==="GIS"?(c.openBlock(),c.createElementBlock("div",qC,[c.createElementVNode("div",JC,[y[27]||(y[27]=c.createElementVNode("span",null,"地球 (含大气/日月/星空)",-1)),c.createVNode(c.unref(t),{checked:E.globe,"onUpdate:checked":y[4]||(y[4]=b=>E.globe=b),size:"small"},null,8,["checked"])]),c.createElementVNode("div",ZC,[y[28]||(y[28]=c.createElementVNode("span",null,"地形 (高程)",-1)),c.createVNode(c.unref(t),{checked:E.terrain,"onUpdate:checked":y[5]||(y[5]=b=>E.terrain=b),size:"small"},null,8,["checked"])]),c.createElementVNode("div",eE,[y[29]||(y[29]=c.createElementVNode("span",null,"地形遮挡",-1)),c.createVNode(c.unref(t),{checked:E.depthTest,"onUpdate:checked":y[6]||(y[6]=b=>E.depthTest=b),size:"small"},null,8,["checked"])])])):c.createCommentVNode("",!0),m.value==="MAP"?(c.openBlock(),c.createElementBlock("div",tE,[c.createElementVNode("div",iE,[c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:A.provider==="tianditu"}]),onClick:y[7]||(y[7]=b=>A.provider="tianditu")},"天地图",2),c.createElementVNode("div",{class:c.normalizeClass(["tab-item",{active:A.provider==="arcgis"}]),onClick:y[8]||(y[8]=b=>A.provider="arcgis")},"ArcGIS",2)]),A.provider==="tianditu"?(c.openBlock(),c.createElementBlock("div",nE,[c.createElementVNode("div",sE,[y[30]||(y[30]=c.createElementVNode("div",{class:"sub-label"},"Token",-1)),c.createVNode(c.unref(o),{value:A.tianditu.token,"onUpdate:value":y[9]||(y[9]=b=>A.tianditu.token=b),size:"small",placeholder:"输入天地图Token"},null,8,["value"])]),c.createElementVNode("div",oE,[y[31]||(y[31]=c.createElementVNode("div",{class:"sub-label"},"地图风格",-1)),c.createVNode(c.unref(l),{value:A.tianditu.layerType,"onUpdate:value":y[10]||(y[10]=b=>A.tianditu.layerType=b),size:"small",style:{width:"100%"}},{default:c.withCtx(()=>[(c.openBlock(),c.createElementBlock(c.Fragment,null,c.renderList(O,b=>c.createVNode(c.unref(a),{key:b.value,value:b.value},{default:c.withCtx(()=>[c.createTextVNode(c.toDisplayString(b.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"])]),c.createElementVNode("div",rE,[y[32]||(y[32]=c.createElementVNode("span",null,"叠加注记",-1)),c.createVNode(c.unref(t),{checked:A.tianditu.showLabel,"onUpdate:checked":y[11]||(y[11]=b=>A.tianditu.showLabel=b),size:"small"},null,8,["checked"])])])):c.createCommentVNode("",!0),A.provider==="arcgis"?(c.openBlock(),c.createElementBlock("div",aE,[c.createElementVNode("div",lE,[y[33]||(y[33]=c.createElementVNode("div",{class:"sub-label"},"服务地址",-1)),c.createVNode(c.unref(o),{value:A.arcgis.url,"onUpdate:value":y[12]||(y[12]=b=>A.arcgis.url=b),size:"small",placeholder:"输入ArcGIS MapServer地址"},null,8,["value"])])])):c.createCommentVNode("",!0),c.createElementVNode("div",cE,[y[34]||(y[34]=c.createElementVNode("div",{class:"sub-label"},"位置搜索 (天地图)",-1)),c.createElementVNode("div",dE,[c.createVNode(c.unref(o),{value:g.value,"onUpdate:value":y[13]||(y[13]=b=>g.value=b),placeholder:"输入地名搜索",size:"small","allow-clear":""},null,8,["value"])])])])):c.createCommentVNode("",!0),m.value==="RENDER"?(c.openBlock(),c.createElementBlock("div",hE,[c.createElementVNode("div",uE,[y[35]||(y[35]=c.createElementVNode("span",null,"阴影",-1)),c.createVNode(c.unref(t),{checked:C.shadows,"onUpdate:checked":y[14]||(y[14]=b=>C.shadows=b),size:"small"},null,8,["checked"])]),C.shadows?(c.openBlock(),c.createElementBlock("div",fE,[c.createElementVNode("div",pE,"阴影暗度 ("+c.toDisplayString(C.shadowDarkness.toFixed(2))+")",1),c.createVNode(c.unref(r),{value:C.shadowDarkness,"onUpdate:value":y[15]||(y[15]=b=>C.shadowDarkness=b),min:0,max:1,step:.05,size:"small"},null,8,["value"])])):c.createCommentVNode("",!0),c.createElementVNode("div",gE,[y[36]||(y[36]=c.createElementVNode("span",null,"环境贴图 (HDR)",-1)),c.createVNode(c.unref(t),{checked:C.environmentMap,"onUpdate:checked":y[16]||(y[16]=b=>C.environmentMap=b),size:"small"},null,8,["checked"])]),c.createElementVNode("div",mE,[y[37]||(y[37]=c.createElementVNode("span",null,"环境光遮蔽 (AO)",-1)),c.createVNode(c.unref(t),{checked:C.ambientOcclusion,"onUpdate:checked":y[17]||(y[17]=b=>C.ambientOcclusion=b),size:"small"},null,8,["checked"])]),c.createElementVNode("div",AE,[y[38]||(y[38]=c.createElementVNode("div",{class:"sub-label"},"日期时间",-1)),c.createVNode(c.unref(d),{value:C.time,"onUpdate:value":y[18]||(y[18]=b=>C.time=b),"show-time":"",locale:c.unref(ll),format:"YYYY-MM-DD HH:mm",size:"small",style:{width:"100%"}},null,8,["value","locale"])]),c.createElementVNode("div",yE,[c.createElementVNode("div",CE,"模型亮度 ("+c.toDisplayString(C.brightness.toFixed(1))+")",1),c.createVNode(c.unref(r),{value:C.brightness,"onUpdate:value":y[19]||(y[19]=b=>C.brightness=b),min:0,max:5,step:.1,size:"small"},null,8,["value"])]),c.createElementVNode("div",EE,[c.createElementVNode("div",wE,"模型对比度 ("+c.toDisplayString(C.contrast.toFixed(1))+")",1),c.createVNode(c.unref(r),{value:C.contrast,"onUpdate:value":y[20]||(y[20]=b=>C.contrast=b),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),c.createElementVNode("div",bE,[c.createElementVNode("div",vE,"模型饱和度 ("+c.toDisplayString(C.saturation.toFixed(1))+")",1),c.createVNode(c.unref(r),{value:C.saturation,"onUpdate:value":y[21]||(y[21]=b=>C.saturation=b),min:0,max:3,step:.1,size:"small"},null,8,["value"])]),c.createElementVNode("div",IE,[y[39]||(y[39]=c.createElementVNode("div",{class:"sub-label"},"背景颜色",-1)),c.createElementVNode("div",BE,[(c.openBlock(),c.createElementBlock(c.Fragment,null,c.renderList(D,(b,M)=>c.createElementVNode("div",{key:M,style:c.normalizeStyle({background:b,width:"32px",height:"24px",borderRadius:"2px",cursor:"pointer",border:"1px solid #d9d9d9",flexShrink:0}),onClick:k=>C.backgroundColor=b,title:"预设 "+(M+1)},null,12,xE)),64))]),c.createElementVNode("div",SE,[c.withDirectives(c.createElementVNode("input",{type:"color","onUpdate:modelValue":y[22]||(y[22]=b=>B.value=b),style:{width:"40px",height:"24px",padding:"0",border:"1px solid #d9d9d9"}},null,512),[[c.vModelText,B.value]]),c.createVNode(c.unref(o),{value:C.backgroundColor,"onUpdate:value":y[23]||(y[23]=b=>C.backgroundColor=b),size:"small",style:{flex:"1"},placeholder:"CSS 颜色值"},null,8,["value"])])])])):c.createCommentVNode("",!0),m.value==="MOUSE"?(c.openBlock(),c.createElementBlock("div",TE,[c.createElementVNode("div",ME,[y[40]||(y[40]=c.createElementVNode("span",null,"碰撞检测",-1)),c.createVNode(c.unref(t),{checked:v.collision,"onUpdate:checked":y[24]||(y[24]=b=>v.collision=b),size:"small"},null,8,["checked"])]),c.createElementVNode("div",DE,[y[43]||(y[43]=c.createElementVNode("div",{class:"sub-label"},"操作习惯",-1)),c.createVNode(c.unref(n),{value:v.habit,"onUpdate:value":y[25]||(y[25]=b=>v.habit=b),size:"small"},{default:c.withCtx(()=>[c.createVNode(c.unref(s),{value:0},{default:c.withCtx(()=>[...y[41]||(y[41]=[c.createTextVNode("默认 (中键旋转)",-1)])]),_:1}),c.createVNode(c.unref(s),{value:1},{default:c.withCtx(()=>[...y[42]||(y[42]=[c.createTextVNode("习惯1 (左键旋转)",-1)])]),_:1})]),_:1},8,["value"])])])):c.createCommentVNode("",!0)])])]),_:1},8,["visible","full-height"]))}}),[["__scopeId","data-v-79494025"]]),kE={class:"cad-layer-panel"},PE={class:"layer-list-container"},FE={class:"list-header"},RE={class:"col-check"},OE=["checked"],LE={class:"list-body"},NE={class:"col-check"},UE=["checked","onChange"],_E={class:"col-index"},QE=["title"],GE={class:"col-color"},HE=["value"],YE={key:0,class:"empty-text"},VE=Re(c.defineComponent({__name:"LeitingCadLayer",props:{visible:{type:Boolean,default:!1},currentModelId:{type:String,default:""}},emits:["update:visible","handleCloseCardByCadCard"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods",c.ref({})),o=c.ref(""),r=c.ref([]),l=()=>{s.value&&s.value.getDxfModels&&(r.value=s.value.getDxfModels().map(v=>({modelId:v.modelId,modelName:v.modelName}))||[])},a=c.computed(()=>r.value.map(v=>({value:v.modelId,label:v.modelName}))),d=c.ref([]),h=c.ref([]),p=c.computed(()=>d.value.length>0&&h.value.length===d.value.length),f=({modelId:v})=>{if(d.value=[],h.value=[],s.value&&s.value.getDxfLayers){const S=s.value.getDxfLayers({modelId:v});S&&Object.keys(S).forEach((D,O)=>{S[D].length&&(d.value.push({index:O+1,layerName:D,layerColor:S[D][0].color||"#ffffff",key:D}),h.value.push(D))})}},u=v=>{o.value=v,f({modelId:v})},m=v=>{v.target.checked?h.value=d.value.map(D=>D.key):h.value=[],A()},E=(v,S)=>{S.target.checked?h.value.includes(v)||h.value.push(v):h.value=h.value.filter(O=>O!==v),A()},A=()=>{if(s.value&&s.value.showDxfLayer&&(s.value.showDxfLayer({modelId:o.value,show:!0,layers:h.value}),s.value.getDxfLayers)){const v=s.value.getDxfLayers({modelId:o.value});if(v){const S=Object.keys(v).filter(D=>!h.value.includes(D));s.value.showDxfLayer({modelId:o.value,show:!1,layers:S})}}},C=()=>{n("update:visible",!1),n("handleCloseCardByCadCard")};return c.watch(()=>t.visible,v=>{v&&(l(),t.currentModelId?(o.value=t.currentModelId,f({modelId:t.currentModelId})):a.value.length>0&&(o.value=a.value[0]?.value,f({modelId:o.value})))}),c.watch(()=>t.currentModelId,v=>{v&&t.visible&&(o.value=v,f({modelId:v}))}),(v,S)=>(c.openBlock(),c.createBlock(ke,{visible:i.visible,title:"CAD图层","onUpdate:visible":S[3]||(S[3]=D=>v.$emit("update:visible",D)),onClose:C,width:360,align:"right","initial-position":{x:0,y:60}},{"header-extra":c.withCtx(()=>[c.createElementVNode("div",{class:"header-select-container",onMousedown:S[2]||(S[2]=c.withModifiers(()=>{},["stop"]))},[S[4]||(S[4]=c.createElementVNode("span",{class:"header-label"},"图纸:",-1)),c.createVNode(c.unref(me.Select),{value:o.value,"onUpdate:value":S[0]||(S[0]=D=>o.value=D),options:a.value,onChange:S[1]||(S[1]=D=>u(D)),placeholder:"选择模型",style:{width:"140px"},bordered:!1,class:"custom-header-select",popupClassName:"leiting-select-dropdown",size:"small"},null,8,["value","options"])],32)]),default:c.withCtx(()=>[c.createElementVNode("div",kE,[c.createElementVNode("div",PE,[c.createElementVNode("div",FE,[c.createElementVNode("div",RE,[c.createElementVNode("input",{type:"checkbox",checked:p.value,onChange:m},null,40,OE)]),S[5]||(S[5]=c.createElementVNode("div",{class:"col-index"},"序号",-1)),S[6]||(S[6]=c.createElementVNode("div",{class:"col-name"},"图层名称",-1)),S[7]||(S[7]=c.createElementVNode("div",{class:"col-color"},"颜色",-1))]),c.createElementVNode("div",LE,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(d.value,D=>(c.openBlock(),c.createElementBlock("div",{key:D.key,class:"list-item"},[c.createElementVNode("div",NE,[c.createElementVNode("input",{type:"checkbox",checked:h.value.includes(D.key),onChange:O=>E(D.key,O)},null,40,UE)]),c.createElementVNode("div",_E,c.toDisplayString(D.index),1),c.createElementVNode("div",{class:"col-name",title:D.layerName},c.toDisplayString(D.layerName),9,QE),c.createElementVNode("div",GE,[c.createElementVNode("input",{type:"color",value:D.layerColor,disabled:""},null,8,HE)])]))),128)),d.value.length===0?(c.openBlock(),c.createElementBlock("div",YE,"暂无数据")):c.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-a4db4977"]]),zE={class:"adjust-panel"},WE={class:"control-panel"},jE={class:"form-item"},KE={class:"radio-group"},$E={class:"form-item"},XE=["title"],qE={class:"param-row"},JE=["step"],ZE={class:"param-row"},ew=["step"],tw={class:"param-row"},iw=["step"],nw={class:"param-row"},sw=["step"],ow={class:"param-row"},rw=["step"],aw={class:"param-row"},lw=["step"],cw={class:"param-row"},dw=["step"],hw={class:"button-grid"},uw={key:1,class:"pick-mode-ui"},fw=["onClick"],pw=["checked"],gw={style:{"font-size":"12px",color:"#aaa","padding-left":"10px"}},mw={class:"param-row"},Aw={style:{width:"40px"}},yw=["onUpdate:modelValue"],Cw={class:"param-row"},Ew={style:{width:"40px"}},ww=["onUpdate:modelValue"],bw={class:"param-row"},vw={style:{width:"40px"}},Iw=["onUpdate:modelValue"],Bw={class:"list-panel"},xw={class:"list-header"},Sw={class:"col-check"},Tw=["checked"],Mw={class:"list-body"},Dw={class:"col-check"},kw=["onUpdate:modelValue"],Pw={class:"col-index"},Fw=["title"],Rw={class:"col-main"},Ow=["checked","onChange"],Lw={key:0,style:{padding:"10px","text-align":"center",color:"#999"}},Nw=Re(c.defineComponent({__name:"LeitingCadPosition",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","handleSavingByCadCard","clearBimPointList","save"],setup(i,{expose:e,emit:t}){const n=i,s=t,o=c.inject("leitingMethods"),r=c.ref([]),l=c.ref(""),a=c.computed(()=>r.value.length>0&&r.value.every(y=>y.selected)),d=c.ref("param"),h=c.ref("bimPoint1"),p=c.ref(null),f=c.ref("bimPoint1"),u=c.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=c.ref(1e-6),E=c.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=c.computed(()=>{const y=r.value.find(b=>b.modelId===l.value);return y?y.modelName:""}),C=()=>{s("update:visible",!1)},v=()=>(!p.value&&o?.value?.getViewer&&o?.value?.getCesium&&(p.value=new al(o.value.getViewer(),o.value.getCesium())),p.value),S=()=>{v()?.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},D=y=>{const b=h.value,M=u[b];if(M){M.longitude=y.longitude,M.latitude=y.latitude,M.height=y.height;const k=b==="bimPoint1"?"BIM":"MAP";v()?.addMarker(k,y),pe.success(`${M.type}已添加`)}},O=()=>{v()?.registerPickHandler(y=>{D(y)})},I=()=>{v()?.destroyPickHandler()},B=y=>{d.value=y,y!=="pick"&&s("clearBimPointList")};c.watch(()=>d.value,y=>{y==="pick"?O():I()}),c.onUnmounted(()=>{I()});const g=()=>{if(!o?.value?.getDxfModels)return;const y=o.value.getDxfModels();if(Array.isArray(y)?r.value=y.map(b=>({modelId:b.modelId,modelName:b.modelName,formData:b.formData||{},selected:!1,tileset:b})):r.value=[],r.value.length>0){const b=o.value.getCadModelId?o.value.getCadModelId():"";b&&r.value.find(M=>M.modelId===b)?P(b):P(r.value[0].modelId),r.value.forEach(M=>M.selected=!0)}},P=y=>{l.value=y;const b=r.value.find(M=>M.modelId===y);b&&b.formData&&Object.keys(E).forEach(M=>{b.formData[M]!==void 0&&(E[M]=b.formData[M])})},x=(y,b)=>{if(!o?.value?.adjustingModelByCad)return;const M=r.value.find(k=>k.modelId===y);M&&M.tileset&&(M.formData={...M.formData,...b},M.tileset.formData=M.formData,o.value.adjustingModelByCad({...M.formData,tileset:M.tileset}))},F=y=>{if(!l.value)return;const b=E[y];x(l.value,{[y]:b})},_=y=>{const b=r.value.filter(R=>R.selected);if(b.length===0){pe.warning("请先选择要调整的模型");return}const{distance:M,heightDistance:k,rotation:Q}=E;b.forEach(R=>{const T={...R.formData};switch(y){case"north":T.latitude+=M;break;case"south":T.latitude-=M;break;case"east":T.longitude+=M;break;case"west":T.longitude-=M;break;case"up":T.height+=k;break;case"down":T.height-=k;break;case"rotateLeft":T.totalRotation=(T.totalRotation||0)-Q;break;case"rotateRight":T.totalRotation=(T.totalRotation||0)+Q;break}R.modelId===l.value&&Object.assign(E,T),x(R.modelId,T)})},H=y=>{const b=y.target.checked;r.value.forEach(M=>M.selected=b)},L=()=>{s("handleSavingByCadCard",r.value),s("save",r.value)},w=()=>{const y=u.bimPoint1,b=u.bimPoint2;if(y.longitude===void 0||b.longitude===void 0){pe.warning("请先完成点选操作");return}const M=r.value.filter(U=>U.selected);if(M.length===0){pe.warning("请先选择要调整的模型");return}let k=0,Q=0,R=0;const T=v();if(T){const{dLon:U,dLat:V,dHeight:W}=T.calculateOffset(y,b);k=U,Q=V,R=W}else k=b.longitude-y.longitude,Q=b.latitude-y.latitude,R=b.height-y.height;M.forEach(U=>{const V={...U.formData};V.longitude+=k,V.latitude+=Q,V.height+=R,U.modelId===l.value&&Object.assign(E,V),x(U.modelId,V)}),pe.success("位置已调整")};return c.watch(()=>n.visible,y=>{y?g():(I(),S())}),c.onMounted(()=>{n.visible&&g()}),e({setBIMPointsList:({longitude:y,latitude:b,height:M})=>{u[f.value].longitude=y,u[f.value].latitude=b,u[f.value].height=M},addGltfOr3dTilesModelList:y=>{console.warn("addGltfOr3dTilesModelList is deprecated, use internal loading")}}),(y,b)=>(c.openBlock(),c.createBlock(ke,{visible:n.visible,title:"Cad校准",width:282,height:600,"onUpdate:visible":b[21]||(b[21]=M=>s("update:visible",M)),onClose:C},{default:c.withCtx(()=>[c.createElementVNode("div",zE,[c.createElementVNode("div",WE,[c.createElementVNode("div",jE,[b[22]||(b[22]=c.createElementVNode("label",null,"调整操作:",-1)),c.createElementVNode("div",KE,[c.createElementVNode("span",{class:c.normalizeClass({active:d.value==="param"}),onClick:b[0]||(b[0]=M=>B("param"))},"参数模式",2),c.createElementVNode("span",{class:c.normalizeClass({active:d.value==="pick"}),onClick:b[1]||(b[1]=M=>B("pick"))},"地图点选",2)])]),c.createElementVNode("div",$E,[b[23]||(b[23]=c.createElementVNode("label",null,"当前主模型:",-1)),c.createElementVNode("span",{class:"value",title:A.value},c.toDisplayString(A.value||"未选择"),9,XE)]),b[35]||(b[35]=c.createElementVNode("div",{class:"separator"},null,-1)),d.value==="param"?(c.openBlock(),c.createElementBlock(c.Fragment,{key:0},[b[31]||(b[31]=c.createElementVNode("div",{class:"group-header"},"当前状态",-1)),c.createElementVNode("div",qE,[b[24]||(b[24]=c.createElementVNode("label",null,"经度(东西):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[2]||(b[2]=M=>E.longitude=M),onChange:b[3]||(b[3]=M=>F("longitude")),step:m.value},null,40,JE),[[c.vModelText,E.longitude,void 0,{number:!0}]])]),c.createElementVNode("div",ZE,[b[25]||(b[25]=c.createElementVNode("label",null,"纬度(南北):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[4]||(b[4]=M=>E.latitude=M),onChange:b[5]||(b[5]=M=>F("latitude")),step:m.value},null,40,ew),[[c.vModelText,E.latitude,void 0,{number:!0}]])]),c.createElementVNode("div",tw,[b[26]||(b[26]=c.createElementVNode("label",null,"高度(m):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[6]||(b[6]=M=>E.height=M),onChange:b[7]||(b[7]=M=>F("height")),step:m.value},null,40,iw),[[c.vModelText,E.height,void 0,{number:!0}]])]),c.createElementVNode("div",nw,[b[27]||(b[27]=c.createElementVNode("label",null,"累计旋转(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[8]||(b[8]=M=>E.totalRotation=M),onChange:b[9]||(b[9]=M=>F("totalRotation")),step:m.value},null,40,sw),[[c.vModelText,E.totalRotation,void 0,{number:!0}]])]),b[32]||(b[32]=c.createElementVNode("div",{class:"separator"},null,-1)),b[33]||(b[33]=c.createElementVNode("div",{class:"group-header"},"调整步长",-1)),c.createElementVNode("div",ow,[b[28]||(b[28]=c.createElementVNode("label",null,"经纬步长(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[10]||(b[10]=M=>E.distance=M),step:m.value},null,8,rw),[[c.vModelText,E.distance,void 0,{number:!0}]])]),c.createElementVNode("div",aw,[b[29]||(b[29]=c.createElementVNode("label",null,"高度步长(m):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[11]||(b[11]=M=>E.heightDistance=M),step:m.value},null,8,lw),[[c.vModelText,E.heightDistance,void 0,{number:!0}]])]),c.createElementVNode("div",cw,[b[30]||(b[30]=c.createElementVNode("label",null,"旋转步长(°):",-1)),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":b[12]||(b[12]=M=>E.rotation=M),step:m.value},null,8,dw),[[c.vModelText,E.rotation,void 0,{number:!0}]])]),c.createElementVNode("div",hw,[c.createElementVNode("button",{onClick:b[13]||(b[13]=M=>_("rotateLeft"))},"左转"),c.createElementVNode("button",{onClick:b[14]||(b[14]=M=>_("north"))},"北移"),c.createElementVNode("button",{onClick:b[15]||(b[15]=M=>_("rotateRight"))},"右转"),c.createElementVNode("button",{onClick:b[16]||(b[16]=M=>_("west"))},"西移"),c.createElementVNode("button",{onClick:b[17]||(b[17]=M=>_("south"))},"南移"),c.createElementVNode("button",{onClick:b[18]||(b[18]=M=>_("east"))},"东移"),c.createElementVNode("button",{onClick:b[19]||(b[19]=M=>_("up"))},"上移"),c.createElementVNode("button",{onClick:b[20]||(b[20]=M=>_("down"))},"下移"),c.createElementVNode("button",{onClick:L,class:"primary-btn",style:{"grid-column":"span 3","margin-top":"5px"}},"保存当前位置")])],64)):(c.openBlock(),c.createElementBlock("div",uw,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(u,(M,k)=>(c.openBlock(),c.createElementBlock("div",{key:k,class:"form-item",style:{display:"block","margin-bottom":"15px"}},[c.createElementVNode("div",{style:{"font-weight":"bold","margin-bottom":"5px",cursor:"pointer",display:"flex","align-items":"center"},onClick:Q=>h.value=k},[c.createElementVNode("input",{type:"radio",checked:h.value===k,style:{"margin-right":"5px"}},null,8,pw),c.createTextVNode(" "+c.toDisplayString(M.type)+": ",1)],8,fw),c.createElementVNode("div",gw,[c.createElementVNode("div",mw,[c.createElementVNode("label",Aw,c.toDisplayString(M.longitudeText),1),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>M.longitude=Q,readonly:"",style:{width:"100px"}},null,8,yw),[[c.vModelText,M.longitude,void 0,{number:!0}]])]),c.createElementVNode("div",Cw,[c.createElementVNode("label",Ew,c.toDisplayString(M.latitudeText),1),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>M.latitude=Q,readonly:"",style:{width:"100px"}},null,8,ww),[[c.vModelText,M.latitude,void 0,{number:!0}]])]),c.createElementVNode("div",bw,[c.createElementVNode("label",vw,c.toDisplayString(M.heightText),1),c.withDirectives(c.createElementVNode("input",{type:"number","onUpdate:modelValue":Q=>M.height=Q,readonly:"",style:{width:"100px"}},null,8,Iw),[[c.vModelText,M.height,void 0,{number:!0}]])])])]))),128)),c.createElementVNode("div",{class:"button-grid",style:{"grid-template-columns":"1fr"}},[c.createElementVNode("button",{onClick:w,class:"primary-btn"},"应用校准"),c.createElementVNode("button",{onClick:L},"保存")]),b[34]||(b[34]=c.createElementVNode("div",{class:"instructions",style:{"margin-top":"15px",color:"#999","font-size":"12px","line-height":"1.5"}},[c.createElementVNode("div",null,"操作指南:"),c.createElementVNode("div",null,"1. 勾选上方 CAD 或 地图 标记点选项。"),c.createElementVNode("div",null,"2. Shift + 左键 点击场景拾取对应坐标。"),c.createElementVNode("div",null,"3. 采集两点后,点击“应用校准”进行校准。")],-1))]))]),c.createElementVNode("div",Bw,[c.createElementVNode("div",xw,[c.createElementVNode("div",Sw,[c.createElementVNode("input",{type:"checkbox",checked:a.value,onChange:H},null,40,Tw)]),b[36]||(b[36]=c.createElementVNode("div",{class:"col-index"},"序号",-1)),b[37]||(b[37]=c.createElementVNode("div",{class:"col-name"},"名称",-1)),b[38]||(b[38]=c.createElementVNode("div",{class:"col-main"},"主模型",-1))]),c.createElementVNode("div",Mw,[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(r.value,(M,k)=>(c.openBlock(),c.createElementBlock("div",{key:M.modelId,class:c.normalizeClass(["list-item",{active:M.modelId===l.value}])},[c.createElementVNode("div",Dw,[c.withDirectives(c.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":Q=>M.selected=Q},null,8,kw),[[c.vModelCheckbox,M.selected]])]),c.createElementVNode("div",Pw,c.toDisplayString(k+1),1),c.createElementVNode("div",{class:"col-name",title:M.modelName},c.toDisplayString(M.modelName),9,Fw),c.createElementVNode("div",Rw,[c.createElementVNode("input",{type:"radio",name:"mainModel",checked:M.modelId===l.value,onChange:Q=>P(M.modelId)},null,40,Ow)])],2))),128)),r.value.length===0?(c.openBlock(),c.createElementBlock("div",Lw,"暂无数据")):c.createCommentVNode("",!0)])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-e8abd49d"]]),Uw={class:"annotation-content"},_w={class:"annotation-tools"},Qw={class:"annotation-controls"},Gw={class:"control-group",title:"颜色"},Hw={class:"tool-item color-tool"},Yw={class:"control-group line-width-container",title:"线宽"},Vw=["onClick"],zw={class:"option-label"},Ww=Re(c.defineComponent({__name:"LeitingAnnotationCard",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods"),o=c.ref(""),r=c.ref("#ff0000"),l=c.ref(1),a=c.ref(!1),d=c.ref(null),h=c.ref(null),p=c.ref({top:"0px",left:"0px"}),f=[{value:6,label:"粗"},{value:3,label:"中"},{value:1,label:"细"}],u=()=>s?.value?.getAnnotationInstance?s.value.getAnnotationInstance():null,m=()=>{n("update:visible",!1)},E=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(r.value),B.changeColor(r.value))},C=()=>{if(!a.value&&d.value){const B=d.value.getBoundingClientRect();p.value={top:`${B.top}px`,left:`${B.right+8}px`}}a.value=!a.value},v=B=>{l.value=B,a.value=!1;const g=u();g&&(g.setCurrentWidth(B),g.changeWidth(B))},S=()=>{const B=u();B&&B.deleteSelectedEntity()},D=()=>{const B=u();B&&B.clearAll()},O=()=>{if(s?.value?.saveAnnotations){s.value.saveAnnotations();return}const B=u();B&&B.saveAnnotations()},I=B=>{const g=B.target,P=d.value&&d.value.contains(g),x=h.value&&h.value.contains(g);!P&&!x&&(a.value=!1)};return c.onMounted(()=>{document.addEventListener("click",I)}),c.onUnmounted(()=>{document.removeEventListener("click",I)}),(B,g)=>(c.openBlock(),c.createBlock(ke,{visible:t.visible,title:"标注",width:70,"min-width":70,height:480,"onUpdate:visible":g[6]||(g[6]=P=>n("update:visible",P)),onClose:m},{default:c.withCtx(()=>[c.createElementVNode("div",Uw,[c.createElementVNode("div",_w,[c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:o.value==="freehandLine"}]),onClick:g[0]||(g[0]=P=>E("freehandLine")),title:"手绘线"},[...g[7]||(g[7]=[c.createElementVNode("div",{class:"tool-icon"},"✏️",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:o.value==="arrow"}]),onClick:g[1]||(g[1]=P=>E("arrow")),title:"箭头"},[...g[8]||(g[8]=[c.createElementVNode("div",{class:"tool-icon"},"↗️",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:o.value==="straightLine"}]),onClick:g[2]||(g[2]=P=>E("straightLine")),title:"直线"},[...g[9]||(g[9]=[c.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:o.value==="rectangle"}]),onClick:g[3]||(g[3]=P=>E("rectangle")),title:"矩形"},[...g[10]||(g[10]=[c.createElementVNode("div",{class:"tool-icon"},"▭",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:o.value==="ellipse"}]),onClick:g[4]||(g[4]=P=>E("ellipse")),title:"椭圆"},[...g[11]||(g[11]=[c.createElementVNode("div",{class:"tool-icon"},"⭕",-1)])],2)]),g[13]||(g[13]=c.createElementVNode("div",{class:"separator"},null,-1)),c.createElementVNode("div",Qw,[c.createElementVNode("div",Gw,[c.createElementVNode("div",Hw,[c.createElementVNode("div",{class:"color-swatch",style:c.normalizeStyle({backgroundColor:r.value})},null,4),c.withDirectives(c.createElementVNode("input",{type:"color","onUpdate:modelValue":g[5]||(g[5]=P=>r.value=P),onChange:A,class:"color-input-overlay"},null,544),[[c.vModelText,r.value]])])]),c.createElementVNode("div",Yw,[c.createElementVNode("div",{ref_key:"lineWidthBtnRef",ref:d,class:"tool-item",onClick:c.withModifiers(C,["stop"])},[c.createElementVNode("div",{class:"current-width-preview",style:c.normalizeStyle({height:l.value+"px",backgroundColor:"#fff"})},null,4)],512),(c.openBlock(),c.createBlock(c.Teleport,{to:"body"},[a.value?(c.openBlock(),c.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:h,class:"line-width-dropdown",style:c.normalizeStyle(p.value)},[(c.openBlock(),c.createElementBlock(c.Fragment,null,c.renderList(f,P=>c.createElementVNode("div",{key:P.value,class:c.normalizeClass(["line-width-option",{selected:l.value===P.value}]),onClick:c.withModifiers(x=>v(P.value),["stop"])},[c.createElementVNode("span",zw,c.toDisplayString(P.label),1),c.createElementVNode("div",{class:"line-preview",style:c.normalizeStyle({height:P.value+"px",backgroundColor:l.value===P.value?"#1890ff":"#ddd"})},null,4)],10,Vw)),64))],4)):c.createCommentVNode("",!0)]))]),g[12]||(g[12]=c.createElementVNode("div",{class:"separator"},null,-1)),c.createElementVNode("div",{class:"action-buttons"},[c.createElementVNode("button",{class:"control-btn",onClick:S,title:"删除选中"}," 🗑️ "),c.createElementVNode("button",{class:"control-btn",onClick:D,title:"清空"}," ❌ "),c.createElementVNode("button",{class:"control-btn",onClick:O,title:"保存"}," 💾 ")])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-3cfc8415"]]),jw={class:"measure-content"},Kw={class:"measure-tools"},$w={key:0,class:"measure-results"},Xw={class:"result-row"},qw={class:"result-value"},Jw={class:"result-row"},Zw={class:"result-value"},eb={class:"result-row"},tb={class:"result-value"},ib={class:"result-row"},nb={class:"result-value"},sb={key:1,class:"result-row"},ob={class:"result-value"},rb={key:2,class:"result-row"},ab={class:"result-value"},lb={class:"measure-controls"},cb={class:"control-group",title:"单位"},db={class:"unit-display"},hb=["onClick"],ub=Re(c.defineComponent({__name:"LeitingMeasurement",props:{visible:{type:Boolean,default:!1}},emits:["update:visible","close"],setup(i,{emit:e}){const t=i,n=e,s=c.inject("leitingMethods",c.ref({})),o=c.ref(null),r=c.ref(null),l=c.ref("m"),a=c.ref(!1),d=c.ref(null),h=c.ref(!1),p=c.ref({}),f=c.ref(null),u=[{label:"米 (m)",value:"m"},{label:"厘米 (cm)",value:"cm"},{label:"毫米 (mm)",value:"mm"}],m=B=>{const g=l.value;return g==="mm"?`${(B*1e3).toFixed(0)}mm`:g==="cm"?`${(B*100).toFixed(1)}cm`:`${B.toFixed(2)}m`},E=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 tl({viewer:B,cesium:g}),o.value.setUnit(l.value),o.value.setSnapping(a.value),o.value.onMeasure=P=>{d.value=P})}},C=B=>{o.value||A(),r.value===B?(r.value=null,o.value?.stop()):(r.value=B,o.value?.start(B))},v=B=>{l.value=B,h.value=!1},S=()=>{o.value&&(o.value.clearAll(),r.value=null,o.value.stop())},D=()=>{n("update:visible",!1)},O=B=>{if(h.value){h.value=!1;return}const P=B.currentTarget.getBoundingClientRect();p.value={position:"fixed",top:`${P.top}px`,left:`${P.right+5}px`,zIndex:3e3},h.value=!0},I=B=>{h.value&&f.value&&!f.value.contains(B.target)&&(h.value=!1)};return c.onMounted(()=>{document.addEventListener("click",I),t.visible&&c.nextTick(()=>A())}),c.onUnmounted(()=>{document.removeEventListener("click",I),o.value&&o.value.destroy()}),c.watch(()=>t.visible,B=>{B?c.nextTick(()=>A()):o.value&&(o.value.stop(),r.value=null)}),c.watch(s,B=>{B&&B.getViewer&&!o.value&&t.visible&&A()}),c.watch(l,B=>{o.value&&o.value.setUnit(B)}),(B,g)=>(c.openBlock(),c.createBlock(ke,{visible:t.visible,title:"量算",width:70,"min-width":70,height:480,"onUpdate:visible":g[3]||(g[3]=P=>n("update:visible",P)),onClose:D},{default:c.withCtx(()=>[c.createElementVNode("div",jw,[c.createElementVNode("div",Kw,[c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:r.value==="distance"}]),onClick:g[0]||(g[0]=P=>C("distance")),title:"距离测量"},[...g[4]||(g[4]=[c.createElementVNode("div",{class:"tool-icon"},"📏",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:r.value==="angle"}]),onClick:g[1]||(g[1]=P=>C("angle")),title:"角度测量"},[...g[5]||(g[5]=[c.createElementVNode("div",{class:"tool-icon"},"📐",-1)])],2),c.createElementVNode("div",{class:c.normalizeClass(["tool-item",{active:r.value==="area"}]),onClick:g[2]||(g[2]=P=>C("area")),title:"面积测量"},[...g[6]||(g[6]=[c.createElementVNode("div",{class:"tool-icon"},"🔳",-1)])],2)]),g[15]||(g[15]=c.createElementVNode("div",{class:"separator"},null,-1)),d.value?(c.openBlock(),c.createElementBlock("div",$w,[d.value.type==="distance"?(c.openBlock(),c.createElementBlock(c.Fragment,{key:0},[c.createElementVNode("div",Xw,[g[7]||(g[7]=c.createElementVNode("span",{class:"result-label"},"总长:",-1)),c.createElementVNode("span",qw,c.toDisplayString(m(d.value.dist)),1)]),c.createElementVNode("div",Jw,[g[8]||(g[8]=c.createElementVNode("span",{class:"result-label",style:{color:"#ff4d4f"}},"ΔX:",-1)),c.createElementVNode("span",Zw,c.toDisplayString(m(d.value.dx)),1)]),c.createElementVNode("div",eb,[g[9]||(g[9]=c.createElementVNode("span",{class:"result-label",style:{color:"#52c41a"}},"ΔY:",-1)),c.createElementVNode("span",tb,c.toDisplayString(m(d.value.dy)),1)]),c.createElementVNode("div",ib,[g[10]||(g[10]=c.createElementVNode("span",{class:"result-label",style:{color:"#1890ff"}},"ΔZ:",-1)),c.createElementVNode("span",nb,c.toDisplayString(m(d.value.dz)),1)])],64)):c.createCommentVNode("",!0),d.value.type==="angle"?(c.openBlock(),c.createElementBlock("div",sb,[g[11]||(g[11]=c.createElementVNode("span",{class:"result-label"},"角度:",-1)),c.createElementVNode("span",ob,c.toDisplayString(d.value.angle.toFixed(1))+"°",1)])):c.createCommentVNode("",!0),d.value.type==="area"?(c.openBlock(),c.createElementBlock("div",rb,[g[12]||(g[12]=c.createElementVNode("span",{class:"result-label"},"面积:",-1)),c.createElementVNode("span",ab,c.toDisplayString(E(d.value.area)),1)])):c.createCommentVNode("",!0)])):c.createCommentVNode("",!0),c.createElementVNode("div",lb,[c.createElementVNode("div",cb,[c.createElementVNode("div",{class:"tool-item",onClick:c.withModifiers(O,["stop"])},[c.createElementVNode("div",db,c.toDisplayString(l.value),1)]),(c.openBlock(),c.createBlock(c.Teleport,{to:"body"},[h.value?(c.openBlock(),c.createElementBlock("div",{key:0,ref_key:"unitDropdownRef",ref:f,class:"unit-dropdown",style:c.normalizeStyle(p.value)},[(c.openBlock(),c.createElementBlock(c.Fragment,null,c.renderList(u,P=>c.createElementVNode("div",{key:P.value,class:c.normalizeClass(["unit-option",{selected:l.value===P.value}]),onClick:c.withModifiers(x=>v(P.value),["stop"])},c.toDisplayString(P.label),11,hb)),64))],4)):c.createCommentVNode("",!0)]))]),g[14]||(g[14]=c.createElementVNode("div",{class:"separator"},null,-1)),c.createElementVNode("div",{class:"action-buttons"},[c.createElementVNode("div",{class:"tool-item control-btn",onClick:S,title:"清空"},[...g[13]||(g[13]=[c.createElementVNode("div",{class:"tool-icon"},"🗑️",-1)])])])])])]),_:1},8,["visible"]))}}),[["__scopeId","data-v-b766acb4"]]);function fb(){const i=c.ref(!1),e=c.reactive({x:0,y:0}),t=c.ref([]),n=c.ref(null);return{visible:i,position:e,items:t,contextData:n,show:(a,d,h)=>{a instanceof MouseEvent?(a.preventDefault(),e.x=a.clientX,e.y=a.clientY):(e.x=a.x,e.y=a.y),t.value=d,n.value=h,i.value=!0},hide:()=>{i.value=!1},addItem:a=>{t.value.push(a)},removeItem:a=>{t.value=t.value.filter(d=>d.id!==a)}}}const pb=["onClick"],gb={class:"menu-label"},mb={key:0,class:"menu-arrow"},Ab=Re(c.defineComponent({__name:"LeitingContextMenu",props:{visible:{type:Boolean},position:{},items:{}},emits:["update:visible","action"],setup(i,{emit:e}){const t=i,n=e,s=r=>{r.disabled||(r.action&&r.action(),n("action",r),n("update:visible",!1))},o=()=>{t.visible&&n("update:visible",!1)};return c.onMounted(()=>{document.addEventListener("click",o),document.addEventListener("contextmenu",r=>{r.target.closest(".leiting-context-menu")||o()})}),c.onUnmounted(()=>{document.removeEventListener("click",o)}),(r,l)=>c.withDirectives((c.openBlock(),c.createElementBlock("div",{class:"leiting-context-menu",style:c.normalizeStyle({left:i.position.x+"px",top:i.position.y+"px"}),onContextmenu:l[0]||(l[0]=c.withModifiers(()=>{},["prevent"]))},[(c.openBlock(!0),c.createElementBlock(c.Fragment,null,c.renderList(i.items,a=>(c.openBlock(),c.createElementBlock("div",{key:a.id,class:c.normalizeClass(["menu-item",{"menu-divided":a.divided,"menu-disabled":a.disabled}]),onClick:d=>s(a)},[c.createElementVNode("span",gb,c.toDisplayString(a.label),1),a.children?(c.openBlock(),c.createElementBlock("span",mb,"▶")):c.createCommentVNode("",!0)],10,pb))),128))],36)),[[c.vShow,i.visible]])}}),[["__scopeId","data-v-f288753b"]]),pn=Re(c.defineComponent({__name:"LeitingBIM",props:{accessToken:{},cesiumUrl:{},cesiumCssUrl:{},methods:{},viewerOptions:{},treeProps:{},showTree:{type:Boolean,default:!0},showMenu:{type:Boolean,default:!1},playerUrl:{default:"https://leiting.chenxisoft.com/resource/person/person.glb"},playerModelName:{default:"Person"},playerModelId:{default:"player_111"},playerScale:{default:.0032},tiandituToken:{default:"c25f14fb6bd4397cf8fe45144ff768d6"},globe:{type:Boolean,default:void 0},terrain:{type:Boolean,default:void 0},depthTest:{type:Boolean,default:void 0},mapProvider:{},tiandituLayerType:{},tiandituShowLabel:{type:Boolean,default:void 0},arcgisUrl:{},shadows:{type:Boolean,default:void 0},environmentMap:{type:Boolean,default:void 0},ambientOcclusion:{type:Boolean,default:void 0},time:{},brightness:{},backgroundColor:{},collision:{type:Boolean,default:void 0},mouseHabit:{},mode:{default:"3d"},mountAll3Dtiles:{},mountAllCad:{},saveRegion:{},saveCadRegion:{},saveCadCalibration:{},selectionChange:{},searchComponent:{}},emits:["register","init","ready"],setup(i,{emit:e}){const t=c.ref(),n=c.ref(),s=c.getCurrentInstance(),o=c.ref(!1),r=c.ref(""),l=c.ref({}),a=c.ref("3d"),d=i,h={title:"构件树",treeData:[]},p=c.ref(!1),f=c.ref(!1),u=c.ref(!1),m=c.ref(!1),E=c.ref(!1),A=c.ref(!1),C=c.ref(!1),v=c.ref(!1),S=c.ref(!1),D=c.ref(!1),{visible:O,position:I,items:B,show:g,hide:P}=fb(),x=c.ref([]),F=Y=>{x.value.push(Y)},_=Y=>{x.value=x.value.filter(j=>j.id!==Y)},H=c.ref([]),L=c.ref(""),w=c.ref(null),y=c.ref([]),b=c.reactive({tree:!1,section:!1,roam:!1,info:!1,adjustModel:!1,setting:!1,cadLayer:!1,cadPosition:!1,annotation:!1}),M=(Y,j)=>{Y==="componentTree"&&(Y="tree"),Y==="componentInfo"&&(Y="info"),Y in b&&(b[Y]=j)},k=c.shallowRef({});c.provide("leitingMethods",k);const Q=c.ref(d.showMenu),R=c.ref([]);c.watch(()=>d.showMenu,Y=>{Q.value=Y},{immediate:!0}),c.watch(()=>d.mode,Y=>{Y&&k.value?.set2d&&k.value.set2d(Y==="2d")});const T=c.ref("dark");c.provide("leiting-theme",T);const U=c.ref([]),V=c.computed(()=>{const Y=[];return p.value&&(Y.push("tree"),Y.push("componentTree")),f.value&&Y.push("section"),u.value&&Y.push("roam"),m.value&&(Y.push("info"),Y.push("componentInfo")),E.value&&Y.push("adjust"),A.value&&Y.push("setting"),C.value&&Y.push("cadLayer"),v.value&&Y.push("cadPosition"),S.value&&Y.push("annotation"),D.value&&(Y.push("measure"),Y.push("measurement")),Y.push(...U.value),Y}),W=c.ref(null),X=(Y,j)=>{Y==="componentTree"||Y==="tree"?p.value=j:Y==="section"?f.value=j:Y==="roam"?u.value=j:Y==="componentInfo"||Y==="info"?m.value=j:Y==="homeView"?k.value?.is2dMode?.()?k.value?.flyToTopView?.({}):k.value?.flyToTileset?.({}):Y==="adjustModel"?(E.value=j,j&&W.value&&W.value.setModelType("BIM")):Y==="osgbAdjust"?(E.value=j,j&&W.value&&W.value.setModelType("OSGB")):Y==="setting"?A.value=j:Y==="cadLayer"?C.value=j:Y==="cadPosition"?v.value=j:Y==="annotation"?S.value=j:Y==="measurement"?D.value=j:j?U.value.includes(Y)||U.value.push(Y):U.value=U.value.filter(te=>te!==Y)};c.watch(p,async Y=>{if(Y&&k.value?.loadTreeForModel&&k.value?.getMapTileset){const j=k.value.getMapTileset(),te=Object.values(j).map(async le=>{if(le.leiting&&le.leiting.model?.treeUrl){const re=le.leiting.model.modelId;try{le.leiting?.node?.batchIdEIDInfos||await k.value.loadNodeDetailsForModel(re);const ce=await k.value.loadTreeForModel(re);ce&&(Array.isArray(ce)?ce:[ce]).forEach(Te=>{Te&&!y.value.find(et=>et.id===Te.id)&&(Te.modelId=re,y.value=[...y.value,Te])})}catch(ce){console.warn(`Failed to lazy load tree for ${re}`,ce)}}});await Promise.all(te)}});const ee=()=>{k.value&&(k.value.getDxfModels&&(H.value=k.value.getDxfModels()||[]),k.value.getCadModelId&&(L.value=k.value.getCadModelId()||""))};c.watch(C,Y=>{Y&&ee()}),c.watch(v,Y=>{Y&&(ee(),w.value&&H.value.length&&w.value.addGltfOr3dTilesModelList(H.value))});const oe=e,ne=Y=>{k.value&&k.value.saveCadCalibration&&k.value.saveCadCalibration(Y),k.value&&k.value.saveCadRegion&&k.value.saveCadRegion(Y)};return c.onMounted(async()=>{if(n.value&&pe.setContainer(n.value),!!t.value)try{const Y={...ft,cesiumUrl:d.cesiumUrl||ft.cesiumUrl,cesiumCssUrl:d.cesiumCssUrl||ft.cesiumCssUrl,accessToken:d.accessToken||wn()||ft.accessToken};await En(Y);const j=d.accessToken||wn()||ft.accessToken;j&&(Cesium.Ion.defaultAccessToken=j),o.value=!0;const te=async(re={},ce)=>{if(t.value){const{showMenu:ve,showTree:Te,globe:et,terrain:xt,depthTest:gn,mapProvider:St,tiandituLayerType:mn,tiandituShowLabel:vi,arcgisUrl:Wt,shadows:ks,environmentMap:Eb,ambientOcclusion:wb,time:bb,brightness:vb,backgroundColor:Ib,collision:Bb,mouseHabit:xb,heightBasedZoom:Sb,mode:Al,...Xe}=re||{},Tb=d.showMenu!==void 0?d.showMenu:ve!==void 0?ve:!0;Q.value=Tb;const Me=(q,Ce,Ye)=>q!==void 0?q:Ce!==void 0?Ce:Ye,yl=Me(d.globe,et,!1),Cl=Me(d.terrain,xt,!1),El=Me(d.depthTest,gn,!1),wl=Me(d.mapProvider,St,"tianditu"),bl=Me(d.tiandituLayerType,mn,"img_w"),vl=Me(d.tiandituShowLabel,vi,!1),Il=Me(d.arcgisUrl,Wt,"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"),Bl=Me(d.shadows,ks,!1),xl=Me(d.environmentMap,Eb,!1),Sl=Me(d.ambientOcclusion,wb,!1),Tl=Me(d.time,bb,void 0),Ml=Me(d.brightness,vb,1),An=d.mode||Al||"3d";console.log("LeitingBIM Mode:",An,"Props:",d.mode,"Options:",Al),a.value=An;const Mb=An==="2d"?"#000000":"linear-gradient(0deg, rgb(238, 247, 255) 0%, rgb(178, 218, 244) 70%, rgb(141, 190, 221) 100%)",Dl=Me(d.backgroundColor,Ib,Mb),kl=Me(d.collision,Bb,!1),Pl=Me(d.mouseHabit,xb,0),Fl=Me(d.heightBasedZoom,Sb,!1);l.value={globe:yl,terrain:Cl,depthTest:El,mapProvider:wl,tiandituLayerType:bl,tiandituShowLabel:vl,arcgisUrl:Il,shadows:Bl,environmentMap:xl,ambientOcclusion:Sl,time:Tl,brightness:Ml,backgroundColor:Dl,collision:kl,mouseHabit:Pl,heightBasedZoom:Fl};const Ii=uy({container:t.value,appContext:s?.appContext,methods:{...k.value,handleMenuAction:X,setCardFullHeight:M,onLoadingStatus:q=>{q?pe.loading(q,"",n.value):pe.close()},...Xe,tilesLoad3dTiles:async q=>{let Ce=q.leiting?.tree;const Ye=q.leiting?.model?.modelId;if(!Ce&&p.value&&k.value?.loadTreeForModel)try{Ce=await k.value.loadTreeForModel(Ye)}catch(xi){console.warn("Failed to lazy load tree",xi)}Ce&&(Array.isArray(Ce)?Ce:[Ce]).forEach(Mt=>{Mt&&!y.value.find(Ol=>Ol.id===Mt.id)&&(Mt.modelId=Ye,y.value=[...y.value,Mt])});const{brightness:Ps,contrast:Fs,saturation:tt}=Ii.methods.getConfigure();Ii.methods.setModelColorAdjustment({brightness:Ps,contrast:Fs,saturation:tt}),Xe.tilesLoad3dTiles?.(q)},mountAll3Dtiles:q=>{d.mountAll3Dtiles&&d.mountAll3Dtiles(q),Xe.mountAll3Dtiles?.(q)},updateModels:q=>{if(Array.isArray(q))if(q.length===0)y.value=[];else{const Ce=q.map(Ye=>Ye.modelId);y.value=y.value.filter(Ye=>Ce.includes(Ye.modelId))}},mountAllCad:q=>{if(Ii.methods.setModelBrightness){const Ce=d.brightness!==void 0?d.brightness:l.value.brightness;Ce!==void 0&&Ii.methods.setModelBrightness(Ce)}d.mountAllCad&&d.mountAllCad(q),Xe.mountAllCad?.(q)},saveRegion:q=>{d.saveRegion&&d.saveRegion(q),Xe.saveRegion?.(q)},saveCadRegion:q=>{d.saveCadRegion&&d.saveCadRegion(q),Xe.saveCadRegion?.(q)},saveCadCalibration:q=>{d.saveCadCalibration&&d.saveCadCalibration(q),Xe.saveCadCalibration?.(q)},selectionChange:q=>{d.selectionChange&&d.selectionChange(q),Xe.selectionChange?.(q)},onSearchComponent:q=>{d.searchComponent&&d.searchComponent(q),Xe.searchComponent?.(q)}},viewerOptions:d.viewerOptions,options:{...Xe,mode:An,playerUrl:d.playerUrl,playerModelName:d.playerModelName,playerModelId:d.playerModelId,playerScale:d.playerScale,globe:yl,terrain:Cl,depthTest:El,mapProvider:wl,tiandituLayerType:bl,tiandituShowLabel:vl,tiandituToken:d.tiandituToken,arcgisUrl:Il,shadows:Bl,environmentMap:xl,ambientOcclusion:Sl,time:Tl,brightness:Ml,backgroundColor:Dl,collision:kl,mouseHabit:Pl,heightBasedZoom:Fl},callbacks:{onLoading:q=>q?pe.loading(q,"",n.value):pe.close(),onSuccess:q=>pe.success(q,"",void 0,n.value),onError:q=>pe.error(q,"",void 0,n.value)}}),{Cesium:Tt,viewer:jt,methods:yn,menuEvents:Bi}=Ii,ge=yn;Bi.on("showMenu",q=>{Q.value=q}),Bi.on("insertMenu",q=>{R.value=[...R.value,...q]}),Bi.on("setMenuActive",(q,Ce)=>{X(q,Ce)}),k.value=ge,ce&&(ce.value=ge),Bi.on("setMode",q=>{a.value=q}),Bi.on("deleteAllModels",()=>{y.value=[]}),new Tt.ScreenSpaceEventHandler(jt.scene.canvas).setInputAction(async q=>{if(P(),a.value==="2d")return;const Ce=jt.scene.pick(q.position),Ye=jt.container.getBoundingClientRect(),Ps=Ye.left+q.position.x,Fs=Ye.top+q.position.y,tt=[];if(Tt.defined(Ce)&&Ce instanceof Tt.Cesium3DTileFeature){const xi=ge.baseCompt.getFeatureId(Ce),Mt=ri(Ce.tileset);ge.baseCompt.hasSelectedFeaturesMap[Mt]?.some(Si=>Si.batchId===xi&&Si.rank===0)||(await ge.baseCompt.clearSelection(),await ge.baseCompt.toggleMultiSelect(Mt,xi,ge.baseCompt.selectedColor)),tt.push({id:"details",label:"构件详情",action:()=>{m.value=!0}}),tt.push({id:"hide",label:"隐藏选中构件",action:async()=>{const Ti=(await ge.baseCompt.getSelected()).map(it=>({elementId:it.elementId,modelId:it.modelId,show:!1}));ge.baseCompt.setComponentVisibility(Ti)}}),tt.push({id:"translucent",label:"半透明选中构件",action:async()=>{const Ti=(await ge.baseCompt.getSelected()).map(it=>({elementId:it.elementId,modelId:it.modelId,rgba:{...it.rgba,a:.3}}));await ge.baseCompt.setSelectColorUserModelCpt(Ti,{rank:0})}}),tt.push({id:"isolate",label:"隔离选中构件",divided:!0,action:async()=>{await ge.baseCompt.loadAllNodeDetailsForModel();const Ti=(await ge.baseCompt.getSelected()).map(it=>({elementId:it.elementId,modelId:it.modelId,show:!0}));ge.isolateComponents(Ti)}})}tt.push({id:"showAll",label:"显示所有",action:async()=>{ge.baseCompt.setAllComponentsVisibility(!0),await ge.baseCompt.clearSelection()}}),tt.push(...x.value),g({x:Ps,y:Fs},tt)},Tt.ScreenSpaceEventType.RIGHT_CLICK),ge.addContextMenuItems=F,ge.insertContextMenu=ge.addContextMenuItems,ge.removeContextMenuItems=_,ge.deleteContextMenu=ge.removeContextMenuItems,ge.closeContextMenu=P,ge.hideContextMenu=ge.closeContextMenu,await c.nextTick();const Rl=re?.onLoaded||re?.onloaded;Rl&&Rl({Cesium:Tt,viewer:jt,methods:yn}),oe("init",{Cesium:Tt,viewer:jt,methods:yn}),oe("ready",{Cesium:Tt,viewer:jt,methods:yn})}};let le=!1;oe("register",(re,ce)=>{le=!0,te(re,ce)}),le||setTimeout(()=>{k.value.getViewer||te()},0)}catch(Y){r.value="Failed to load Cesium: "+(Y.message||Y),console.error(Y)}}),c.onUnmounted(()=>{pe.setContainer(null)}),(Y,j)=>(c.openBlock(),c.createElementBlock("div",{class:c.normalizeClass(["leiting-bim-container",[`theme-${T.value}`]]),onContextmenu:j[11]||(j[11]=c.withModifiers(()=>{},["prevent","stop"]))},[!o.value&&!r.value?(c.openBlock(),c.createBlock(c.unref(me.Spin),{key:0,class:"loading",size:"large",tip:"加载基础组件中..."})):c.createCommentVNode("",!0),r.value?(c.openBlock(),c.createBlock(c.unref(me.Alert),{key:1,class:"error",type:"error",message:r.value,"show-icon":""},null,8,["message"])):c.createCommentVNode("",!0),c.createElementVNode("div",{ref_key:"containerRef",ref:t,class:"cesium-viewer"},[c.createElementVNode("div",{ref_key:"uiOverlayRef",ref:n,class:"leiting-ui-overlay"},[c.createVNode(Ei,{visible:m.value,"full-height":b.info,"onUpdate:visible":j[0]||(j[0]=te=>m.value=te)},null,8,["visible","full-height"]),c.createVNode(wi,{ref_key:"LeitingPositionRef",ref:W,visible:E.value,"full-height":b.adjustModel,"onUpdate:visible":j[1]||(j[1]=te=>E.value=te)},null,8,["visible","full-height"]),c.createVNode(bi,{visible:A.value,"full-height":b.setting,"tianditu-token":d.tiandituToken,"initial-config":l.value,"onUpdate:visible":j[2]||(j[2]=te=>A.value=te)},null,8,["visible","full-height","tianditu-token","initial-config"]),i.showTree!==!1?(c.openBlock(),c.createBlock(rn,c.mergeProps({key:0},{...h,...i.treeProps},{visible:p.value,"full-height":b.tree,"tree-data":y.value.length>0?y.value:i.treeProps?.treeData||[],"onUpdate:visible":j[3]||(j[3]=te=>{p.value=te})}),null,16,["visible","full-height","tree-data"])):c.createCommentVNode("",!0),c.createVNode(Ww,{visible:S.value,"onUpdate:visible":j[4]||(j[4]=te=>S.value=te)},null,8,["visible"]),c.createVNode(ub,{visible:D.value,"onUpdate:visible":j[5]||(j[5]=te=>D.value=te)},null,8,["visible"]),c.createVNode(yi,{visible:f.value,"full-height":b.section,"onUpdate:visible":j[6]||(j[6]=te=>f.value=te)},null,8,["visible","full-height"]),c.createVNode(Ci,{visible:u.value,"full-height":b.roam,"onUpdate:visible":j[7]||(j[7]=te=>u.value=te)},null,8,["visible","full-height"]),c.createVNode(Ai,{visible:Q.value,"active-ids":V.value,"custom-items":R.value,onAction:X,"is-2d":a.value==="2d"},null,8,["visible","active-ids","custom-items","is-2d"]),c.createVNode(VE,{visible:C.value,"current-model-id":L.value,"onUpdate:visible":j[8]||(j[8]=te=>C.value=te)},null,8,["visible","current-model-id"]),c.createVNode(Nw,{ref_key:"cadPositionRef",ref:w,visible:v.value,"onUpdate:visible":j[9]||(j[9]=te=>v.value=te),onSave:ne},null,8,["visible"]),c.createVNode(Ab,{visible:c.unref(O),position:c.unref(I),items:c.unref(B),"onUpdate:visible":j[10]||(j[10]=te=>O.value=te)},null,8,["visible","position","items"]),c.renderSlot(Y.$slots,"default",c.normalizeProps(c.guardReactiveProps({methods:k.value,isReady:o.value})),void 0,!0)],512)],512)],34))}}),[["__scopeId","data-v-5bebcbc7"]]);function ml(i){const e=c.ref(),t=c.ref(i.theme||"dark"),n=c.ref(i.menuSize||"medium");c.provide("leiting-theme",t),c.provide("leiting-menu-size",n);function s(l){c.onUnmounted(()=>{e.value=null}),l(i,e)}function o(){const l=c.unref(e);return l||console.error("未获取到leiting实例!"),l}const r=new Proxy({},{get(l,a){const d=o();if(!d)return;const h=d[a];return typeof h=="function"?h.bind(d):h},set(l,a,d){const h=o();return h?(h[a]=d,!0):!1}});return[s,r]}const yb=ft,Cb={install:(i,e)=>{if(i.component("LeitingBIM",pn),i.component("LeitingTree",rn),i.component("LeitingDraggableCard",ke),i.component("leiting-draggable-card",ke),i.component("LeitingMenu",Ai),i.component("leiting-menu",Ai),i.component("LeitingSection",yi),i.component("leiting-section",yi),i.component("LeitingPlayer",Ci),i.component("leiting-player",Ci),i.component("LeitingInfo",Ei),i.component("leiting-info",Ei),i.component("LeitingPosition",wi),i.component("leiting-position",wi),i.component("LeitingSetting",bi),i.component("leiting-setting",bi),!e)return;const t={...yb,...e};t.cesiumUrl&&En(t).catch(n=>{console.error("[LeitingBim] Failed to load Cesium resources:",n)}),i.config.globalProperties.$leitingBimOptions=t}};N.DEFAULT_CESIUM_CONFIG=ft,N.LeiTingBIM=pn,N.LeiTingDraggableCard=ke,N.LeiTingInfo=Ei,N.LeiTingMenu=Ai,N.LeiTingPlayer=Ci,N.LeiTingPosition=wi,N.LeiTingSection=yi,N.LeiTingSetting=bi,N.LeiTingTree=rn,N.LeitingBIM=pn,N.LeitingDraggableCard=ke,N.LeitingInfo=Ei,N.LeitingMenu=Ai,N.LeitingPlayer=Ci,N.LeitingPosition=wi,N.LeitingSection=yi,N.LeitingSetting=bi,N.LeitingTree=rn,N.default=Cb,N.getAccessToken=wn,N.leitingBim=pn,N.loadCesium=En,N.useLeiTing=ml,N.useLeiting=ml,N.waitForCesium=_l,Object.defineProperties(N,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|