earthsdk3 3.0.8-beta.3 → 3.0.8-beta.4

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.
@@ -770,10 +770,10 @@ ${Ky}
770
770
  `,Qy=Date.now();new Date(Qy).toISOString(),new Date(Qy+864e5).toISOString();const kt=class kt extends we{constructor(t){super(t);D(this,"_flyToEvent",this.disposeVar(new M.Event));D(this,"_resetClockEvent",this.disposeVar(new M.Event))}get typeName(){return"ESCzml"}get defaultProps(){return kt.createDefaultProps()}get flyToEvent(){return this._flyToEvent}flyTo(t){this._flyToEvent.emit(t)}get resetClockEvent(){return this._resetClockEvent}resetClock(){this._resetClockEvent.emit()}getESProperties(){const t={...super.getESProperties()};return{...t,defaultMenu:"basic",basic:[...t.basic,new ne("数据","数据",!0,!1,[this,"data"],kt.defaults.data,kt.defaults.dataMd),new ne("路径","路径",!1,!1,[this,"uri"],""),new $("启用","启用",!1,!1,[this,"clockEnabled"],!1),new q("倍速","倍速.",!1,!1,[this,"multiplier"],kt.defaults.multiplier),new $("自动设置时钟","自动设置时钟",!1,!1,[this,"autoResetClock"],!0),new Bi("开始时间","开始时间",!0,!1,[this,"startTime"],kt.defaults.startTime),new Bi("结束时间","结束时间",!0,!1,[this,"stopTime"],kt.defaults.stopTime),new Bi("当前时间","当前时间",!0,!1,[this,"currentTime"],kt.defaults.currentTime),new ce("clockStep","clockStep",!1,!1,[this,"clockStep"],[["TICK_DEPENDENT","TICK_DEPENDENT"],["SYSTEM_CLOCK_MULTIPLIER","SYSTEM_CLOCK_MULTIPLIER"],["SYSTEM_CLOCK","SYSTEM_CLOCK"]],"SYSTEM_CLOCK_MULTIPLIER"),new ce("clockRange","clockRange",!1,!1,[this,"clockRange"],[["UNBOUNDED","UNBOUNDED"],["CLAMPED","CLAMPED"],["LOOP_STOP","LOOP_STOP"]],"UNBOUNDED"),new $("是否启用动画","是否启用动画",!1,!1,[this,"shouldAnimate"],!1)],general:[...t.general,new de("唯一标识","id",!1,!0,[this,"id"]),new de("名称","name",!0,!1,[this,"name"]),new $("是否显示","show",!1,!1,[this,"show"],!0),new $("开启碰撞","collision",!1,!1,[this,"collision"],!1),new $("允许拾取","allowPicking",!1,!1,[this,"allowPicking"],!1)]}}getProperties(t){return[...super.getProperties(t),new ee("通用","通用",[new $("是否显示","A boolean Property specifying the visibility .",!1,!1,[this,"show"]),new $("允许拾取","是否允许拾取",!1,!1,[this,"allowPicking"]),new Se("飞入","飞入",["number"],n=>this.flyTo(n),[1e3]),new ne("数据","数据",!0,!1,[this,"data"],kt.defaults.data,kt.defaults.dataMd),new ne("路径","路径",!1,!1,[this,"uri"]),new $("自动设置时钟","自动设置时钟",!1,!1,[this,"autoResetClock"]),new Se("重设时钟","根据当前加载的数据重设始终",[],()=>this.resetClock(),[]),new Vi("loadFnStr","loadFnStr",!0,!1,[this,"loadFuncStr"],kt.defaults.defaultLoadFuncStr,kt.defaults.defaultLoadFuncDocStr)]),new ee("时钟","时钟",[new $("启用","启用",!1,!1,[this,"clockEnabled"]),new Bi("开始时间","开始时间",!0,!1,[this,"startTime"],kt.defaults.startTime),new Bi("结束时间","结束时间",!0,!1,[this,"stopTime"],kt.defaults.stopTime),new Bi("当前时间","当前时间",!0,!1,[this,"currentTime"],kt.defaults.currentTime),new q("倍速","倍速.",!1,!1,[this,"multiplier"],kt.defaults.multiplier),new ce("clockStep","clockStep",!1,!1,[this,"clockStep"],[["TICK_DEPENDENT","TICK_DEPENDENT"],["SYSTEM_CLOCK_MULTIPLIER","SYSTEM_CLOCK_MULTIPLIER"],["SYSTEM_CLOCK","SYSTEM_CLOCK"]]),new ce("clockRange","clockRange",!1,!1,[this,"clockRange"],[["UNBOUNDED","UNBOUNDED"],["CLAMPED","CLAMPED"],["LOOP_STOP","LOOP_STOP"]]),new $("是否启用动画","是否启用动画",!1,!1,[this,"shouldAnimate"])])]}};D(kt,"type",kt.register("ESCzml",kt,{chsName:"ESCzml",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"Czml数据加载"})),D(kt,"defaults",{...we.defaults,show:!0,allowPicking:!0,data:yC,dataMd:mC,autoResetClock:!0,clockEnabled:!1,startTime:()=>Date.now(),stopTime:()=>Date.now()+864e5,currentTime:()=>Date.now(),multiplier:1,clockStep:"SYSTEM_CLOCK_MULTIPLIER",clockRange:"UNBOUNDED",shouldAnimate:!1,uri:"${earthsdk3-assets-script-dir}/assets/misc/simple.czml",defaultLoadFuncStr:Ky,defaultLoadFuncDocStr:_C});let yu=kt;(r=>{r.createDefaultProps=()=>({show:!0,uri:"",allowPicking:!1,data:M.reactJsonWithUndefined(void 0),autoResetClock:!0,clockEnabled:!1,startTime:void 0,stopTime:void 0,currentTime:void 0,multiplier:1,clockStep:"SYSTEM_CLOCK_MULTIPLIER",clockRange:"UNBOUNDED",shouldAnimate:!1,loadFuncStr:void 0,...we.createDefaultProps()})})(yu||(yu={})),M.extendClassProps(yu.prototype,yu.createDefaultProps);const Hu=class Hu extends we{get typeName(){return"ESNavigator"}get defaultProps(){return Hu.createDefaultProps()}getProperties(e){return[...super.getProperties(e),new ee("通用","通用",[new $("是否显示","A boolean Property specifying the visibility .",!1,!1,[this,"show"]),new q("尺寸","尺寸",!1,!1,[this,"cssSize"]),new lt("位置","位置(top,right)",!1,!1,[this,"cssPosition"]),new Xl("图片地址","图片地址",!1,!1,[this,"imgUrl"])])]}};D(Hu,"type",Hu.register("ESNavigator",Hu,{chsName:"导航控件",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"导航控件"})),D(Hu,"defaults",{...we.defaults,show:!0,cssPosition:[170,30],cssSize:100,imgUrl:we.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/zhinanzhen.png")});let mu=Hu;(r=>{r.createDefaultProps=()=>({...we.createDefaultProps(),show:!0,cssSize:100,cssPosition:[170,30],imgUrl:r.defaults.imgUrl})})(mu||(mu={})),M.extendClassProps(mu.prototype,mu.createDefaultProps);const Li=class Li extends we{get typeName(){return"ESViewerStatusBar"}get defaultProps(){return Li.createDefaultProps()}constructor(e){super(e)}getProperties(e){return[...super.getProperties(e),new ee("通用","通用",[new $("是否显示","A boolean Property specifying the visibility .",!1,!1,[this,"show"],Li.defaults.show),new q("高度","height",!0,!1,[this,"height"],Li.defaults.height),new q("文字大小","fontSize",!0,!1,[this,"fontSize"],Li.defaults.fontSize),new pe("背景颜色"," 背景颜色",!0,!1,[this,"bgColor"],Li.defaults.bgColor)])]}};D(Li,"type",Li.register("ESViewerStatusBar",Li,{chsName:"状态栏",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"状态栏"})),D(Li,"defaults",{...we.defaults,show:!0,height:30,fontSize:14,bgColor:[71,71,71,.8]});let _u=Li;(r=>{r.createDefaultProps=()=>({...we.createDefaultProps(),show:!0,height:30,fontSize:14,bgColor:[.2784313725490196,.2784313725490196,.2784313725490196,.8]})})(_u||(_u={})),M.extendClassProps(_u.prototype,_u.createDefaultProps);const Fi=class Fi extends we{get typeName(){return"ESViewerStatusBarScale"}get defaultProps(){return Fi.createDefaultProps()}constructor(e){super(e)}getProperties(e){return[...super.getProperties(e),new ee("通用","通用",[new $("是否显示","A boolean Property specifying the visibility .",!1,!1,[this,"show"],Fi.defaults.show),new q("高度","height",!0,!1,[this,"height"],Fi.defaults.height),new q("文字大小","fontSize",!0,!1,[this,"fontSize"],Fi.defaults.fontSize),new pe("背景颜色"," 背景颜色",!0,!1,[this,"bgColor"],Fi.defaults.bgColor)])]}};D(Fi,"type",Fi.register("ESViewerStatusBarScale",Fi,{chsName:"比例尺状态栏",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"状态栏"})),D(Fi,"defaults",{...we.defaults,show:!0,height:30,fontSize:14,bgColor:[71,71,71,.8]});let bu=Fi;(r=>{r.createDefaultProps=()=>({...we.createDefaultProps(),show:!0,height:30,fontSize:14,bgColor:[.2784313725490196,.2784313725490196,.2784313725490196,.8]})})(bu||(bu={})),M.extendClassProps(bu.prototype,bu.createDefaultProps);const Xu=class Xu extends le{get typeName(){return"ESGaussianSplatting"}get defaultProps(){return Xu.createDefaultProps()}constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new de("路径","url",!0,!1,[this,"url"]),new q("进度","progress",!1,!0,[this,"progress"],0)]}}getProperties(e){return[...super.getProperties(e),new ee("通用","通用",[new de("路径","url",!0,!1,[this,"url"]),new q("进度","progress",!1,!0,[this,"progress"],0)])]}};D(Xu,"type",Xu.register("ESGaussianSplatting",Xu,{chsName:"高斯溅射模型",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"用于加载高斯溅射模型的 ES 对象"})),D(Xu,"defaults",{...le.defaults});let wu=Xu;(r=>{r.createDefaultProps=()=>({...le.createDefaultProps(),url:"",progress:0})})(wu||(wu={})),M.extendClassProps(wu.prototype,wu.createDefaultProps);const Ks=class Ks extends le{get typeName(){return"ESStaticMesh"}get defaultProps(){return Ks.createDefaultProps()}constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()},t=[new de("mesh地址","mesh地址",!1,!1,[this,"mesh"],Ks.defaults.mesh)];return e.basic.push(...t),e}getProperties(e){return[...super.getProperties(e),new ee("ESStaticMesh","ESStaticMesh",[new de("mesh地址","mesh地址",!1,!1,[this,"mesh"],Ks.defaults.mesh)])]}};D(Ks,"type",Ks.register("ESStaticMesh",Ks,{chsName:"静态网格",tags:["ESObjects","_ES_Impl_UE"],description:"Unreal的Mesh对象"})),D(Ks,"defaults",{...le.defaults,mesh:"StaticMesh'/Engine/BasicShapes/Sphere.Sphere'"});let Eu=Ks;(r=>{r.createDefaultProps=()=>({...le.createDefaultProps(),mesh:""})})(Eu||(Eu={})),M.extendClassProps(Eu.prototype,Eu.createDefaultProps);const Yu=class Yu extends Ae{constructor(t){super(t);D(this,"_startEvent",this.dv(new M.Event));D(this,"_clearEvent",this.dv(new M.Event));D(this,"_eSGeoExtrudedPolygon");this._eSGeoExtrudedPolygon=this.disposeVar(new js(`${this.id}_ESGeoExtrudedPolygon`)),this.ad(this.components.disposableAdd(this._eSGeoExtrudedPolygon)),this.eSGeoExtrudedPolygon.perPositionHeight=!0,this.eSGeoExtrudedPolygon.extrudedHeight=0,this.stroked=!0,this.strokeWidth=2,this.strokeColor=[1,0,0,1],this.ad(M.track([this.eSGeoExtrudedPolygon,"show"],[this,"show"])),this.ad(M.track([this.eSGeoExtrudedPolygon,"stroked"],[this,"stroked"])),this.ad(M.track([this.eSGeoExtrudedPolygon,"strokeWidth"],[this,"strokeWidth"])),this.ad(M.track([this.eSGeoExtrudedPolygon,"strokeColor"],[this,"strokeColor"])),this.ad(M.track([this.eSGeoExtrudedPolygon,"filled"],[this,"filled"])),this.ad(M.track([this.eSGeoExtrudedPolygon,"fillColor"],[this,"fillColor"])),this.ad(M.track([this.eSGeoExtrudedPolygon,"points"],[this,"points"])),this.ad(this.clearEvent.don(()=>{this.points=void 0,this.depths=void 0,this.windowPositions=void 0}))}get typeName(){return"ESSkylineAnalysis"}get defaultProps(){return Yu.createDefaultProps()}get startEvent(){return this._startEvent}start(){this._startEvent.emit()}get clearEvent(){return this._clearEvent}clear(){this._clearEvent.emit()}get eSGeoExtrudedPolygon(){return this._eSGeoExtrudedPolygon}getESProperties(){const t={...super.getESProperties()};return{...t,basic:[...t.basic,new Se("开始分析","开始分析",[],()=>this.start(),[]),new Se("清除分析","清除分析",[],()=>this.clear(),[]),new ne("屏幕坐标","windowPositions",!1,!0,[this,"windowPositions"]),new ne("深度值","depths",!1,!0,[this,"depths"]),new q("半径","半径",!0,!1,[this,"radius"],1e4)]}}getProperties(t){return[...super.getProperties(t),new ee("通用","通用",[new Se("开始分析","开始分析",[],()=>this.start(),[]),new Se("清除分析","清除分析",[],()=>this.clear(),[]),new ne("屏幕坐标","windowPositions",!1,!0,[this,"windowPositions"]),new ne("深度值","depths",!1,!0,[this,"depths"]),new q("半径","半径",!0,!1,[this,"radius"],1e4)])]}};D(Yu,"type",Yu.register("ESSkylineAnalysis",Yu,{chsName:"天际线分析",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"分析类"})),D(Yu,"defaults",{...Ae.defaults,windowPositions:[],depths:[],radius:1e4});let Pu=Yu;(r=>{r.createDefaultProps=()=>({...Ae.createDefaultProps(),windowPositions:yf(void 0),depths:M.reactArrayWithUndefined(void 0),radius:M.react(void 0)})})(Pu||(Pu={})),M.extendClassProps(Pu.prototype,Pu.createDefaultProps);const Gn=class Gn extends Be{get typeName(){return"ESHeatMap"}get defaultProps(){return Gn.createDefaultProps()}constructor(e){super(e)}getESProperties(){const e=super.getESProperties();return{...e,basic:[...e.basic,new ne("data","数据",!0,!1,[this,"data"]),new ne("gradient","渐变",!0,!1,[this,"gradient"],Gn.defaults.gradient),new q("radius","半径",!0,!1,[this,"radius"],Gn.defaults.radius),new q("blur","模糊",!0,!1,[this,"blur"],Gn.defaults.blur),new $("is3D","3D",!0,!1,[this,"is3D"])]}}getProperties(e){return[...super.getProperties(e),new ee("通用","通用",[new ne("data","数据",!0,!1,[this,"data"]),new ne("gradient","渐变",!0,!1,[this,"gradient"],Gn.defaults.gradient),new q("radius","半径",!0,!1,[this,"radius"],Gn.defaults.radius),new q("blur","模糊",!0,!1,[this,"blur"],Gn.defaults.blur),new $("is3D","3D",!0,!1,[this,"is3D"])])]}};D(Gn,"type",Gn.register("ESHeatMap",Gn,{chsName:"热力图",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"用于热力图的显示"})),D(Gn,"defaults",{...Be.defaults,is3D:!1,data:[],radius:10,gradient:{".5":"green",".7":"yellow",".95":"red"},blur:.85});let Su=Gn;(r=>{r.createDefaultProps=()=>({...Be.createDefaultProps(),is3D:M.react(void 0),data:M.reactPositions(void 0),gradient:M.reactJsonWithUndefined(void 0),radius:M.react(void 0),blur:M.react(void 0)})})(Su||(Su={})),M.extendClassProps(Su.prototype,Su.createDefaultProps);function $y(r){return typeof r=="string"?document.getElementById(r):r}function zd(r){if(!r)throw new Error("container is not defined");r.innerHTML="";const e=document.createElement("div");return e.style.cssText="width: 100%; height: 100%; margin: 0px; padding: 0px; border: none; overflow: hidden; position: relative; z-index: 0; background: rgba(0,0,0,0);",r.appendChild(e),e}class Zy extends M.Destroyable{constructor(t,n){super();D(this,"_listeningSceneObjects",new Map);this._sceneObjectsMananger=t,this._createSceneObjectListeningFunc=n;const i=this._listeningSceneObjects,o=(s,a)=>{if(s)for(let c of s){const f=i.get(c);f&&(f.destroy(),i.delete(c))}if(a)for(let c of a){if(i.get(c)){console.warn(`listeningSceneObjects已存在某对象:${c.name}`,c);debugger}const m=this.createSceneObjectListeningFunc(c);m&&i.set(c,m)}};o(void 0,this._sceneObjectsMananger.sceneObjects),this.dispose(this._sceneObjectsMananger.sceneObjectsToChange.disposableOn(o)),this.dispose(()=>{for(let s of this._listeningSceneObjects.values())s.destroy();this._listeningSceneObjects.clear()})}get listeningSceneObjects(){return this._listeningSceneObjects}get createSceneObjectListeningFunc(){return this._createSceneObjectListeningFunc}}class bC extends M.Destroyable{constructor(e){super(),this._esObjectsManager=e;{const t=this._esObjectsManager;class n extends M.Destroyable{constructor(o){super(),this._esPath=o,this.dv(new M.ObjResettingWithEvent(t.activeViewerChanged,()=>{const s=t.activeViewer;if(!s)return;class a extends M.Destroyable{constructor(f){if(super(),this._esPath=f,!s)throw new Error("!viewer");const m=()=>{const p=t.activeViewer;p&&(this._esPath.path.currentTime=p.simulationTime)};m(),this.d(s.simulationTimeChanged.don(m))}}return new a(this._esPath)}))}}this.dv(new Zy(t.sceneObjectsManager,i=>{if(i instanceof Gs)return new n(i)}))}{const t=this._esObjectsManager;class n extends M.Destroyable{constructor(o){super();const s=()=>{const a=t.activeViewer;a&&(a.simulationTime=o.currentTime??0)};s(),this.d(o.currentTimeChanged.don(s))}}this.dv(new Zy(t.sceneObjectsManager,i=>{if(i instanceof ks)return new n(i)}))}}}class wC extends M.Destroyable{constructor(e){super(),e.forEach(t=>{this.d(t.path.currentPositionChanged.don(n=>{n&&t.sceneObjects.forEach(i=>{Reflect.has(i,"position")&&(i.position=[...n])})})),this.d(t.path.currentRotationChanged.don(n=>{n&&t.sceneObjects.forEach(i=>{Reflect.has(i,"rotation")&&(i.rotation=[...n])})}))})}}class EC extends M.Destroyable{constructor(t){super();D(this,"_player");D(this,"_channels",this.dv(M.reactArray([])));this._objectManager=t,this._player=this._objectManager.player,this.dv(new M.ObjResettingWithEvent(this.channelsChanged,()=>{if(this.channels.length===0)return;const n=[];for(let i=0;i<this.channels.length;i++){const o=this.channels[i],s=we.getSceneObjById(o.pathId);if(!s||!(s instanceof Gs))continue;const c=o.sceneObjectIds.map(f=>we.getSceneObjById(f)).filter(f=>f!==void 0);c.length!==0&&n.push({path:s,sceneObjects:c})}if(n.length!==0)return new wC(n)}))}get player(){return this._player}get channels(){return this._channels.value}get channelsChanged(){return this._channels.changed}set channels(t){this._channels.value=t}}function rf(r){if(r.data){const{type:e,value:t}=r.data;if(e==="UITreeA"&&t instanceof jr){const{sceneObject:n}=t;if(n)return n.id}}}function PC(r,e){const{property:t,customEventName:n,otherParams:i}=e,{dragstartDataMananger:o}=r;if(!(t instanceof hi)){if(!(t instanceof ap)){if(t instanceof de){const[s,a]=M.getReactFuncs(t.reactVar);if(n==="ondragover"){if(console.log("ondragover"),!i)throw new Error("!otherParams");const c=i[0];if(c.preventDefault(),!c.dataTransfer)return;rf(o)?c.dataTransfer.dropEffect="move":c.dataTransfer.dropEffect="none"}else if(n==="ondrop"){if(!i)throw new Error("!otherParams");i[0].preventDefault();const f=rf(o);f!==void 0&&a(f)}}else if(t instanceof rp){const[s,a]=M.getReactFuncs(t.reactVar);if(n==="ondragover"){if(console.log("ondragover"),!i)throw new Error("!otherParams");const c=i[0];if(c.preventDefault(),!c.dataTransfer)return;rf(o)?c.dataTransfer.dropEffect="move":c.dataTransfer.dropEffect="none"}else if(n==="ondrop"){if(!i)throw new Error("!otherParams");const c=i[0].$event,f=i[0].strinsPropDom,m=i[0].index;c.preventDefault();const p=rf(o);if(p!==void 0){f[m].firstChild.value=p;const g=new Event("input",{bubbles:!0,cancelable:!0});f[m].firstChild.dispatchEvent(g)}}}else if(t instanceof np){const[s,a]=M.getReactFuncs(t.reactVar)}}}}function e0(r,e,t,n){if(t)n.currentActiveEditing=[r,e];else if(n.currentActiveEditing){const[i,o]=n.currentActiveEditing;i===r&&o===e&&(t||(n.currentActiveEditing=void 0))}}const SC=["editing","positionEditing","locationEditing","pointEditing","rotationEditing"];class CC extends M.Destroyable{constructor(e,t){super(),this._sceneObject=e;const n=this._sceneObject;for(let i of SC){const o=i+"Changed",s=n[o];if(s){{const a=n[i];e0(n,i,a,t)}this.dispose(s.disposableOn(a=>e0(n,i,a,t)))}}}get sceneObject(){return this._sceneObject}}class xC extends M.Destroyable{constructor(){super();D(this,"_currentActiveEditing",this.disposeVar(M.reactArrayWithUndefined(void 0)));D(this,"_currentActiveEditingLastChangedTime",0);this.dispose(this._currentActiveEditing.changed.disposableOn((t,n)=>{if(this._currentActiveEditingLastChangedTime=Date.now(),n){const[i,o]=n;i[o]===!0&&(i[o]=!1)}if(t){const[i,o]=t;i[o]=!0}})),we.context.sceneObjCreatedEvent.don(t=>{t.dv(new CC(t,this))})}get currentActiveEditing(){return this._currentActiveEditing.value}set currentActiveEditing(t){this._currentActiveEditing.value=t}get currentActiveEditingChanged(){return this._currentActiveEditing.changed}get currentActiveEditingLastChangedTime(){return this._currentActiveEditingLastChangedTime}}class OC extends M.Destroyable{constructor(){super();D(this,"_sceneObjects",new Set);D(this,"_sceneObjectsToChange",this.dv(new M.Event));this.d(()=>{const t=M.length(this._sceneObjects);t!==0&&console.warn(`场景对象管理器销毁时仍然管理着${t}个场景对象!`)})}get sceneObjects(){return this._sceneObjects}get sceneObjectsToChange(){return this._sceneObjectsToChange}addSceneObject(t){if(this._sceneObjects.has(t))return console.warn(`创建失败:对象${t.typeName+":"+t.id}已经存在于场景对象管理器中!}`),!1;do this._sceneObjectsToChange.emit([],[t]),this._sceneObjects.add(t);while(!1);return!0}deleteSceneObject(t){if(!this._sceneObjects.has(t))return console.warn(`删除失败:对象${t.typeName+":"+t.id}不存在于场景对象管理器中!}`),!1;do this._sceneObjectsToChange.emit([t],[]),this._sceneObjects.delete(t);while(!1);return!0}createSceneObject(t,n){const i=we.context.createSceneObject(t,n);return i&&this.addSceneObject(i),i}createSceneObjectFromClass(t,n){const i=we.context.createSceneObjectFromClass(t,n);return i&&this.addSceneObject(i),i}createSceneObjectFromJson(t){const n=we.context.createSceneObjectFromJson(t);return n&&this.addSceneObject(n),n}}function t0(r,e){return r.length===e.length&&r.every((t,n)=>t===e[n])}class MC extends M.Destroyable{constructor(e){super(),this._viewer=e,this.d(M.track([this._viewer,"currentTime"],[this._viewer,"simulationTime"]))}}class IC extends M.Destroyable{constructor(e,t){super(),this._viewer=e,this._activeViewer=t;const n=Ai.createCommonProps(),i=[];Object.keys(n).forEach(c=>{const f=this._activeViewer[c+"Changed"];i.push(f)});const o=this.dv(M.createNextAnimateFrameEvent(...i)),s=()=>{this._viewer.status!=="Created"||this._activeViewer.status!=="Created"||Object.keys(n).forEach(c=>{this._viewer[c]=this._activeViewer[c]})};this.d(o.don(s));const a=this.dv(M.createAnimateFrame());a.restart(void 0,async()=>{if(this._viewer.status!=="Created"||this._activeViewer.status!=="Created")return;const c=this._activeViewer.getCurrentCameraInfo(),f=this._viewer.getCurrentCameraInfo();if(!c)return;const{position:m,rotation:p}=c;f&&t0(m,f.position)&&t0(p,f.rotation)||this._viewer.flyIn(m,p,0)}),this.d(()=>a.cancel())}}const TC=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" width="40" height="40" style="shape-rendering: auto; display: block; background: rgba(255, 255, 255, 0);" xmlns:xlink="http://www.w3.org/1999/xlink"><g><circle stroke-linecap="round" fill="none" stroke-dasharray="50.26548245743669 50.26548245743669" stroke="#ffffff" stroke-width="8" r="32" cy="50" cx="50">
771
771
  <animateTransform values="0 50 50;360 50 50" keyTimes="0;1" dur="1s" repeatCount="indefinite" type="rotate" attributeName="transform"></animateTransform>
772
772
  </circle><g></g></g></svg>
773
- `,NC='<svg t="1747028305766" class="icon" viewBox="0 0 1032 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3881" width="40" height="40"><path d="M0.1536 547.700736c-0.205824-0.187392-0.205824-0.49152 0.008192-0.68608l80.672768-73.590784a0.63488 0.63488 0 0 1 0.7936-0.029696l263.043072 203.0336c0.667648 0.515072 1.738752 0.498688 2.393088-0.038912l609.191936-500.133888a0.605184 0.605184 0 0 1 0.768 0.022528l74.84928 67.229696a0.454656 0.454656 0 0 1-0.002048 0.685056l-685.234176 618.19904a1.14688 1.14688 0 0 1-1.518592-0.012288L0.1536 547.700736z" fill="#ffffff" p-id="3882"></path></svg>',DC='<svg t="1747028398107" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1146" width="40" height="40"><path d="M415.744006 1.033277A0.992256 0.992256 0 0 1 416.747526 0.000061h189.5045c0.569344 0 1.017856 0.45056 1.001472 1.033216l-21.227518 754.803667a1.062912 1.062912 0 0 1-1.05984 1.032192h-146.933752c-0.569344 0-1.04448-0.45056-1.059839-1.032192L415.744006 1.033277zM511.510528 1024c-52.595709 0-95.231994-39.866366-95.231994-89.043963 0-49.176573 42.636285-89.042939 95.231994-89.042938 52.594685 0 95.231994 39.866366 95.231994 89.042938 0 49.177597-42.637309 89.043963-95.231994 89.043963z" fill="#ffffff" p-id="1147"></path></svg>',Ju=class Ju extends M.Destroyable{constructor(e){super();const t=()=>{const n=this.dv(new Oo);this.d(M.track([n,"show"],[e,"useDefaultStatusDiv"]));{const i=()=>{n.show=(e.useDefaultStatusDiv??!0)&&e.status!=="Created"};i(),this.d(e.useDefaultStatusDivChanged.don(i)),this.d(e.statusChanged.don(i)),n.cssText="width:100%;height:100%;position:absolute;left:0px;top:0px;"}e.add(n),this.d(()=>e.delete(n)),n.instanceClass=class extends M.Destroyable{constructor(s,a,c){super();D(this,"_div",document.createElement("div"));if(this._subContainer=s,!c)return;this._subContainer.appendChild(this._div),this.d(()=>this._subContainer.removeChild(this._div));{const _=()=>{a.show?this._div.style.opacity="1":this._div.style.opacity="0"};_(),this.d(a.showChanged.don(_))}let f,m,p,g,w;this._div.style.pointerEvents="none",this._div.style.position="absolute",this._div.style.width="100%",this._div.style.height="100%",this._div.style.backgroundColor="rgba(0, 0, 0, 0.4)",this._div.style.zIndex="100",this._div.style.transition="opacity 2s",f=document.createElement("div"),this._div.appendChild(f),f.style.width="auto",f.style.position="absolute",f.style.left="50%",f.style.top="50%",f.style.transform="translate(-50%,-50%)",f.style.background="rgba(120, 120, 0, 0.7)",f.style.color="white",f.style.fontSize="10px",f.style.background="none",f.style.display="flex",f.style.justifyContent="center",f.style.alignItems="center",m=document.createElement("div"),f.appendChild(m),m.style.pointerEvents="none",m.style.display="block",m.style.width="40px",m.innerHTML=Ju.defaultsSvg.loadingSvg,m.style.filter="drop-shadow(0px 0px 1px black)",p=document.createElement("div"),f.appendChild(p),p.style.pointerEvents="none",p.style.marginLeft="10px",p.style.display="flex",p.style.flexFlow="column",p.style.maxWidth="300px",g=document.createElement("div"),p.appendChild(g),g.style.fontSize="14px",g.style.fontWeight="800",g.style.marginBottom="5px",g.style.textShadow="0 0 2px black",w=document.createElement("div"),p.appendChild(w),w.style.fontWeight="400",w.style.textShadow="0 0 2px black";{const _=()=>{let h="Raw";c.status==="Raw"?h="初始状态":c.status==="Creating"?h="正在创建":c.status==="Created"?h="创建完成":c.status==="Error"?h="创建失败":c.status==="Reconnecting"&&(h="重新连接"),g.innerText=`${h}(${c.status})`,w.innerText=`${c.statusLog}`,(c.status==="Creating"||c.status==="Reconnecting")&&(m.innerHTML=Ju.defaultsSvg.loadingSvg),c.status==="Created"&&(m.innerHTML=Ju.defaultsSvg.successSvg),c.status==="Error"&&(m.innerHTML=Ju.defaultsSvg.warnSvg)};_();const y=this.dv(M.createNextAnimateFrameEvent(c.statusLogChanged,c.statusChanged));this.d(y.don(_))}}update(){const s=255*Math.random()|0,a=255*Math.random()|0,c=255*Math.random()|0;this._div.style.background=`rgba(${s}, ${a}, ${c}, 0.8)`}}};this.d(e.containerChanged.don(()=>{t()}))}};D(Ju,"defaultsSvg",{loadingSvg:TC,successSvg:NC,warnSvg:DC});let Ud=Ju;class AC extends M.Destroyable{constructor(e,t,n){super(),this._subContainer=e,this._overlayContainer=t,this._viewer=n;const i=this._subContainer,o=this._overlayContainer,s=this._viewer,a=()=>{const m=s.zIndex??"";i.style.zIndex=m,o.style.zIndex=m};a(),this.d(s.zIndexChanged.don(a));const c=()=>{i.style.display=s.show??!0?"block":"none"};c(),this.d(s.showChanged.don(c));const f=()=>{i.style.opacity=`${s.opacity??1}`};f(),this.d(s.opacityChanged.don(f))}}function nf(r){let e=M.getExtProp(r,"_relativeContainer");return e||(e=document.createElement("div"),e.style.position="relative",e.style.width="100%",e.style.height="100%",e.style.padding="0",e.style.margin="0",r.appendChild(e),M.setExtProp(r,"_relativeContainer",e)),e}class RC extends M.Destroyable{constructor(t,n){super();D(this,"_subContainer",document.createElement("div"));D(this,"_overlayContainer",document.createElement("div"));D(this,"_containerStyleController");this._container=t,this._viewer=n,this._containerStyleController=this.dv(new AC(this._subContainer,this._overlayContainer,this._viewer));const{subContainer:i,overlayContainer:o}=this;i.tabIndex=-1,i.style.outline="none",i.style.width="100%",i.style.height="100%",i.onpointerdown=()=>i.focus(),o.style.position="relative",o.setAttribute("earthsdk3","earthsdk3-overlayContainer"),i.setAttribute("earthsdk3","earthsdk3-subContainer"),nf(this._container).appendChild(i),this.d(()=>nf(this._container).removeChild(i)),nf(this._container).appendChild(o),this.d(()=>nf(this._container).removeChild(o))}get subContainer(){return this._subContainer}get overlayContainer(){return this._overlayContainer}get containerStyleController(){return this._containerStyleController}get container(){return this._container}}class LC extends M.Destroyable{constructor(){super(...arguments);D(this,"registerObjsMap",new Map)}register(t,n){return this.registerObjsMap.has(t)&&console.warn(`register warn:${t}已经被注册,再次注册会覆盖。`),this.registerObjsMap.set(t,n),t}getViewerConstructor(t){const n=this.registerObjsMap.get(t);if(!n){console.warn(`未找到${t}类!`);return}return n}createViewer(t){const n=t.type,i=this.getViewerConstructor(n);if(!i)throw new Error(`没有找到类型为${n}的Viewer构造器!`);return new i(t)}}class r0 extends M.Destroyable{constructor(e,t,n=!1,i=!1){if(super(),this._viewer=e,!t)throw new Error("ViewerCustomInteraction: container is null");const o=this.dv(M.DomElementEvent.create(t,"pointerdown")),s=this.dv(M.DomElementEvent.create(t,"pointermove")),a=this.dv(M.DomElementEvent.create(t,"pointerup")),c=this.dv(M.DomElementEvent.create(t,"pointerout")),f=this.dv(M.DomElementEvent.create(t,"pointerover")),m=this.dv(new M.PointerClick),p=this.dv(new M.PointerHover),g=()=>{const v=this._viewer.hoverTime*1e3;p.delayTime=v};this.d(this._viewer.hoverTimeChanged.don(()=>{g()})),this.d(o.don(v=>m.pointerDown(v))),this.d(s.don(v=>m.pointerMove(v))),this.d(a.don(v=>m.pointerUp(v))),this.d(c.don(v=>m.pointerOut(v))),this.d(o.don(v=>p.pointerDown(v))),this.d(s.don(v=>p.pointerMove(v))),this.d(a.don(v=>p.pointerUp(v))),this.d(c.don(v=>p.pointerOut(v)));const{x:w,y:_}=t.getBoundingClientRect(),y=i?w:0,h=i?_:0;this.d(p.hoverEvent.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);this._viewer.hoverEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(m.clickEvent.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);this._viewer.clickEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(m.dbclickEvent.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);v.button===0&&this._viewer.dblclickEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(o.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);v.button===0&&this._viewer.pointerDownEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(a.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);v.button===0&&this._viewer.pointerUpEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(s.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);this._viewer.pointerMoveEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(f.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);this._viewer.pointerOverEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(c.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);this._viewer.pointerOutEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})}));const d=this.dv(M.DomElementEvent.create(t,"keydown"));this.d(d.don(v=>this._viewer.keyDownEvent.emit(v)));const u=this.dv(M.DomElementEvent.create(t,"keyup"));this.d(u.don(v=>this._viewer.keyUpEvent.emit(v)));const l=this.dv(M.DomElementEvent.create(t,"wheel"));this.d(l.don(v=>this._viewer.wheelEvent.emit(v)))}}const ys=class ys extends M.Destroyable{constructor(t){super();D(this,"_forceRecreateEvent",this.dv(new M.Event));D(this,"_container",this.dv(M.react(void 0)));D(this,"_containerSize",this.dv(M.react(void 0)));D(this,"_editingEvent",this.disposeVar(new M.Event));D(this,"_status",this.dv(M.react("Raw")));D(this,"_statusLog",this.dv(M.react("")));D(this,"_statusContainer",this.dv(new Ud(this)));D(this,"_useCustomInteraction",this.dv(M.react(!0)));D(this,"_resetInteractionEvent",this.dv(M.createNextAnimateFrameEvent(this.containerChanged,this._useCustomInteraction.changed,this._forceRecreateEvent)));D(this,"_interactionResetting",this.dv(new M.ObjResettingWithEvent(this._resetInteractionEvent,()=>{if(!(!this.container||!this._useCustomInteraction.value))return new r0(this,this.container)})));D(this,"_viewerChanged",this.dv(new M.Event));D(this,"_containerResetEvent",this.dv(M.createNextAnimateFrameEvent(this.containerChanged,this._forceRecreateEvent)));D(this,"_containerResetting",this.dv(new M.ObjResettingWithEvent(this._containerResetEvent,()=>{if(this.container)return new RC(this.container,this)})));D(this,"_sceneObjectsMap",new Map);D(this,"_id");D(this,"_typeName");D(this,"_updateFuncReact",this.dv(M.react(void 0)));D(this,"_toDestroyFuncReact",this.dv(M.react(void 0)));D(this,"_statusInfo",ys.defaults.statusInfo);D(this,"_navigationMode",this.dv(M.react("Map")));D(this,"_syncViewer",this.dv(M.react(void 0)));D(this,"_syncEventDon",this.dv(new M.ObjResettingWithEvent(this.syncViewerChanged,()=>{const t=this.syncViewer;if(t)return new IC(this,t)})));D(this,"_timeSyncdon",this.dv(new M.ObjResettingWithEvent(this.timeSyncChanged,()=>{if(this.timeSync)return new MC(this)})));D(this,"_hoverEvent",this.dv(new M.Event));D(this,"_pointerOverEvent",this.dv(new M.Event));D(this,"_pointerMoveEvent",this.dv(new M.Event));D(this,"_pointerDownEvent",this.dv(new M.Event));D(this,"_pointerUpEvent",this.dv(new M.Event));D(this,"_pointerOutEvent",this.dv(new M.Event));D(this,"_clickEvent",this.dv(new M.Event));D(this,"_dblclickEvent",this.dv(new M.Event));D(this,"_keyDownEvent",this.dv(new M.Event));D(this,"_keyUpEvent",this.dv(new M.Event));D(this,"_wheelEvent",this.dv(new M.Event));D(this,"_actived",this.dv(M.react(!1)));this._id=t.id??M.createGuid();const n=$y(t.container);if(n)this._container.value=zd(n),this._typeName=t.type,this._initName();else throw new Error("container is not defined");{const i=()=>{n&&(this.show??!0?n.style.display="block":n.style.display="none")};i(),this.d(this.showChanged.don(i))}{const i=this._sceneObjectsMap,o=()=>{for(let[a,c]of i.entries())if(!c&&a){const f=Vo.context.createEngineObject(a,this);f&&i.set(a,f)}},s=()=>{for(let[a,c]of i.entries())c&&!c.isDestroyed()&&c.destroy(),i.set(a,void 0)};this.d(s),this.d(this.viewerChanged.don(a=>{s(),a&&o()}))}{const i=()=>{if(this.execOnceFuncStr)try{Function(`"use strict";return (${this.execOnceFuncStr})`)()(this)}catch(o){console.warn(`execOnceFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${o}`)}};i(),this.d(this.execOnceFuncStrChanged.don(i))}{const i=()=>{if(this.updateFuncStr)try{this.updateFunc=Function(`"use strict";return (${this.updateFuncStr})`)()}catch(s){console.warn(`updateFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${s}`)}};i(),this.d(this.updateFuncStrChanged.don(i));let o;this.d(()=>o&&o.destroy()),this.d(this.updateFuncChanged.don(()=>{o&&o.cancel(),this.updateFunc&&(o=o||M.createAnimateFrame(),o.restart(void 0,s=>{this.updateFunc&&this.updateFunc(this,s)}))}))}{const i=()=>{try{this.toDestroyFunc=this.toDestroyFuncStr&&Function(`"use strict";return (${this.toDestroyFuncStr})`)()||void 0}catch(o){console.warn(`toDestroyFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${o}`),this.toDestroyFunc=void 0}};i(),this.d(this.toDestroyFuncStrChanged.don(i)),this.d(this.toDestroyEvent.don(()=>{this.toDestroyFunc&&this.toDestroyFunc(this)}))}}forceRecreate(){this._forceRecreateEvent.emit()}get container(){return this._container.value}set container(t){this._container.value=t}set containerOrId(t){if(typeof t=="string"){const n=document.getElementById(t);n&&n instanceof HTMLDivElement?this._container.value=zd(n):console.warn("containerOrId warn: !(container instanceof HTMLDivElement)")}else t instanceof HTMLDivElement?this._container.value=zd(t):console.warn("containerOrId warn: setting container failed!")}get containerChanged(){return this._container.changed}get containerSize(){return this._containerSize.value}set containerSize(t){this._containerSize.value=t}get containerSizeChanged(){return this._containerSize.changed}get editingEvent(){return this._editingEvent}get status(){return this._status.value}get statusChanged(){return this._status.changed}setStatus(t){this._status.value=t}get statusLog(){return this._statusLog.value}get statusLogChanged(){return this._statusLog.changed}setStatusLog(t){this._statusLog.value=t}get useCustomInteraction(){return this._useCustomInteraction.value}set useCustomInteraction(t){this._useCustomInteraction.value=t}get viewerChanged(){return this._viewerChanged}get containerResetEvent(){return this._containerResetEvent}get subContainer(){var t;return(t=this._containerResetting.obj)==null?void 0:t.subContainer}get subContainerChanged(){return this._containerResetting.objChanged}get overlayContainer(){var t;return(t=this._containerResetting.obj)==null?void 0:t.overlayContainer}get overlayContainerChanged(){return this._containerResetting.objChanged}get sceneObjectsMap(){return this._sceneObjectsMap}get sceneObjects(){return this._sceneObjectsMap.keys()}getEngineObject(t){return this.sceneObjectsMap.get(t)}add(...t){for(let n of t)if(!this.has(n)){const i=Vo.context.createEngineObject(n,this);i&&this._sceneObjectsMap.set(n,i),n.viewerAttached.emit(this)}}delete(...t){for(let n of t)if(this.has(n)){const i=this._sceneObjectsMap.get(n);i&&i.destroy(),this._sceneObjectsMap.delete(n),n.viewerDetached.emit(this)}}disposableAdd(...t){return this.add(...t),()=>this.delete(...t)}disAdd(...t){return this.disposableAdd(...t)}has(t){return this._sceneObjectsMap.has(t)}clearAllSceneObjects(){for(let t of this.sceneObjects)this.delete(t)}get id(){return this._id}set id(t){console.warn("ESViewer id is readonly")}get typeName(){return this._typeName}_initName(){this.name=`${this.typeName}_${(""+this.id).slice(-4)}`}get defaultProps(){return ys.createDefaultProps()}_getJson(t=!0){const n={id:this.id,type:this.typeName};for(let i of Object.keys(this.defaultProps))if(t){let o,s=this.defaultProps[i];s instanceof M.ReactiveVariable?o=s.equals(this[i]):o=s===this[i],o||(n[i]=this[i])}else n[i]=this[i];return n}_setJson(t,n,i){if(!(t instanceof Object)||t.type&&t.type!==this.typeName){console.error(`value.type && value.type${t.type} !== this.typeName${this.typeName}`);return}t.id&&t.id!==this.id&&console.warn(`value.id === undefined || value.id${t.id} !== this.id(${this.id})`);const o=n||[];o.push("id","type");const s=Object.keys(this.defaultProps).filter(a=>!o.includes(a));for(let a of s)if(a in t)this[a]=t[a]===null?void 0:t[a];else if(!(i??!1)){let c=this.defaultProps[a];c instanceof M.ReactiveVariable&&(c=c.value),this[a]=c}}get json(){return this._getJson()}set json(t){this._setJson(t,["devTags"])}get updateFunc(){return this._updateFuncReact.value}set updateFunc(t){this._updateFuncReact.value=t}get updateFuncChanged(){return this._updateFuncReact.changed}get toDestroyFunc(){return this._toDestroyFuncReact.value}set toDestroyFunc(t){this._toDestroyFuncReact.value=t}get toDestroyFuncChanged(){return this._toDestroyFuncReact.changed}get navigationMode(){return this._navigationMode.value}get navigationModeChanged(){return this._navigationMode.changed}getNavigationMode(){return this._navigationMode.value}getEngineType(){return this._typeName}get syncViewer(){return this._syncViewer.value}set syncViewer(t){this._syncViewer.value=t}get syncViewerChanged(){return this._syncViewer.changed}syncOtherViewer(t){t&&t.syncViewer&&(t.syncViewer=void 0),t===this?this._syncViewer.value=void 0:this._syncViewer.value=t}setCurrentTime(t){try{this.currentTime=typeof t=="string"?Date.parse(t):t}catch(n){console.warn(`时间格式不正确! value: ${t} error: ${n}`)}}async getVersion(){return window.g_XE3CopyRights??{}}get hoverEvent(){return this._hoverEvent}get pointerOverEvent(){return this._pointerOverEvent}get pointerMoveEvent(){return this._pointerMoveEvent}get pointerDownEvent(){return this._pointerDownEvent}get pointerUpEvent(){return this._pointerUpEvent}get pointerOutEvent(){return this._pointerOutEvent}get clickEvent(){return this._clickEvent}get dblclickEvent(){return this._dblclickEvent}get keyDownEvent(){return this._keyDownEvent}get keyUpEvent(){return this._keyUpEvent}get wheelEvent(){return this._wheelEvent}getProperties(t){return[new ee("ESViewer","ESViewer",[new Se("强制刷新","重载",[],()=>this.forceRecreate(),[]),new $("debug","debug",!0,!1,[this,"debug"],ys.defaults.debug),new $("是否可见","是否可见",!0,!1,[this,"show"]),new ce("位置点单位","lonLatFormat",!0,!1,[this,"lonLatFormat"],[["度","DECIMAL_DEGREE"],["度分","DEGREES_DECIMAL_MINUTES"],["度分秒","SEXAGESIMAL_DEGREE"]]),new $("是否开启文字避让","textAvoidance",!0,!1,[this,"textAvoidance"],!1),new de("ionAccessToken","ionAccessToken",!1,!1,[this,"ionAccessToken"]),new q("时钟","时钟",!1,!1,[this,"currentTime"]),new $("globeShow","globeShow",!0,!1,[this,"globeShow"]),new $("atmosphere","atmosphere",!1,!1,[this,"atmosphere"])]),new q("飞行像素范围","默认飞行定位时对象包围球所占的屏幕像素大小",!1,!1,[this,"flyToBoundingSize"]),new q("编辑高度偏移","编辑时默认的高度偏移",!1,!1,[this,"editingHeightOffset"]),new ee("Globe","Globe",[new ne("地形着色器","可以设置地形全局坡度,坡向,高程带,等高线等",!1,!1,[this,"terrainShader"])])]}get actived(){return this._actived.value}set actived(t){this._actived.value=t}get activedChanged(){return this._actived.changed}};D(ys,"context",new LC),D(ys,"register",ys.context.register.bind(ys.context)),D(ys,"defaults",{show:!0,debug:!1,statusInfo:{fps:0,position:[0,0,0],rotation:[0,0,0],length:0},terrainShader:{slope:{show:!1},aspect:{show:!1},elevationRamp:{show:!1,minHeight:-414,maxHeight:8777,color:[]},elevationContour:{show:!1,color:[1,0,0,1],spacing:150,width:2}},globeShow:!0});let Ai=ys;(r=>{r.createBaseProps=()=>({name:"未命名场景对象",extras:M.reactJson(void 0),devTags:M.reactArrayWithUndefined(void 0),debug:void 0,show:void 0,opacity:void 0,zIndex:void 0,useDefaultStatusDiv:!0,execOnceFuncStr:void 0,updateFuncStr:void 0,toDestroyFuncStr:void 0}),r.createCommonProps=()=>({globeShow:!0,ionAccessToken:"",lonLatFormat:"DECIMAL_DEGREE",fov:60,textAvoidance:!1,flyToBoundingSize:256,hoverTime:2,currentTime:Date.now(),simulationTime:Date.now(),timeSync:!1,rain:0,snow:0,cloud:0,fog:0,depthOfField:0,atmosphere:!0,editingPointSize:void 0,editingPointColor:M.reactArrayWithUndefined(void 0),editingAuxiliaryPointColor:M.reactArrayWithUndefined(void 0),editingLineWidth:void 0,editingLineColor:M.reactArrayWithUndefined(void 0),editingAxisSize:void 0,editingAuxiliaryPointSize:void 0,editingHeightOffset:0,editingLineShow:!0,editingEventListening:!0,terrainShader:r.defaults.terrainShader}),r.createDefaultProps=()=>({...(0,r.createBaseProps)(),...(0,r.createCommonProps)()})})(Ai||(Ai={})),M.extendClassProps(Ai.prototype,Ai.createDefaultProps);function n0(r,e){const t=r._lastCameraInfo;if(t){const n=e.viewerChanged.don(i=>{if(!i||!t)return;const{position:o,rotation:s}=t;e.flyIn(o,s,0),r._lastCameraInfo=void 0,n()})}}const FC=r=>{const e=Ai.createCommonProps(),t={};try{Object.keys(e).forEach(n=>{t[n]=r[n]})}catch(n){console.warn(n)}return t},i0=(r,e)=>{const t=Ai.createCommonProps();try{Object.keys(t).forEach(n=>{r[n]=e[n]})}catch(n){console.warn(n)}};class jC extends M.Destroyable{constructor(t){super();D(this,"_viewersChanged",this.disposeVar(new M.Event));D(this,"_viewers",new Set);D(this,"_viewersToChange",this.dv(new M.Event));this._sceneObjectsManager=t,this.d(()=>{for(const n of this._viewers)this.destroyViewer(n);this._viewers.clear()}),this.viewers.forEach(n=>{const i=this._sceneObjectsManager.sceneObjects;n.add(...i)}),this.d(()=>{const n=this._sceneObjectsManager.sceneObjects;this.viewers.forEach(i=>{i.delete(...n)})}),this.d(this._sceneObjectsManager.sceneObjectsToChange.don((n,i)=>{this.viewers.forEach(o=>{i.forEach(s=>{Ls(o.devTags,s.devTags)&&(o.has(s)?console.warn(`${o.typeName}中已存${s.typeName},检查逻辑是否有问题!`):o.add(s))}),n.forEach(s=>{Ls(o.devTags,s.devTags)&&(o.has(s)?o.delete(s):console.warn(`${o.typeName}中不存在${s.typeName},检查逻辑是否有问题!`))})}),i.length>0&&i.forEach(o=>{o.d(o.devTagsChanged.don(()=>{this.viewers.forEach(s=>{s.has(o)&&s.delete(o),console.log("sceneObjectsToChange",s.devTags,o.devTags,Ls(s.devTags,o.devTags)),Ls(s.devTags,o.devTags)&&(s.has(o)?console.warn(`${s.typeName}中已存${o.typeName},检查逻辑是否有问题!`):s.add(o))})}))})})),this.d(this.viewersChanged.don((n,i)=>{const o=this._sceneObjectsManager.sceneObjects;i.forEach(s=>{for(let a of o)Ls(s.devTags,a.devTags)&&(s.has(a)?console.warn(`${s.typeName}中已存${a.typeName},检查逻辑是否有问题!`):s.add(a))}),n.forEach(s=>{for(let a of o)Ls(s.devTags,a.devTags)&&(s.has(a)?s.delete(a):console.warn(`${s.typeName}中不存在${a.typeName},检查逻辑是否有问题!`))}),i.length>0&&i.forEach(s=>{s.d(s.devTagsChanged.don(()=>{s.clearAllSceneObjects();const a=this._sceneObjectsManager.sceneObjects;for(let c of a)console.log("viewersChanged",s.devTags,c.devTags,Ls(s.devTags,c.devTags)),Ls(s.devTags,c.devTags)&&(s.has(c)?console.warn(`${s.typeName}中已存${c.typeName},检查逻辑是否有问题!`):s.add(c))}))})}))}get viewersChanged(){return this._viewersChanged}get viewers(){return this._viewers}getViewers(){return[...this._viewers]}get viewersToChange(){return this._viewersToChange}createViewer(t){const n=Ai.context.createViewer(t);return this._viewers.add(n),this._viewersChanged.emit([],[n]),n}destroyViewer(t){return t.isDestroyed()?!0:(this._viewers.delete(t),this._viewersChanged.emit([t],[]),t.destroy(),t.isDestroyed())}}class Io extends M.Destroyable{constructor(...t){super();D(this,"_drgm",this.dv(new py));D(this,"_sobjm",this.dv(new OC));D(this,"_vrm",this.dv(new jC(this._sobjm)));D(this,"_sceneObjectEditingManager",this.disposeVar(new xC));D(this,"_activeViewer",this.dv(M.react(void 0)));D(this,"_syncOtherViewersToActived",this.dv(M.react(!1)));D(this,"_cmrvm",this.createSceneObjectFromClass(Co));D(this,"_cmrvmdon",this.d(()=>this._cmrvm&&this.destroySceneObject(this._cmrvm)));D(this,"_asset",{type:"ESObjectsManager",version:"0.1.0",createdTime:"",modifiedTime:"",name:"未命名项目"});D(this,"_sceneTree",this.dv(new zc("default",this.dragstartDataMananger,24,this)));D(this,"_propUiTreeManager",this.dv(new Vl(24)));D(this,"_sceneTreeMap",new Map);D(this,"_viewerCreatedEvent",this.dv(new M.Event));D(this,"_lastCameraInfo");D(this,"_lastActiveViewerJson");D(this,"syncEvent",this.dv(M.createNextAnimateFrameEvent(this.activeViewerChanged,this.syncOtherViewersToActivedChanged)));D(this,"_syncEventDon",this.d(this.syncEvent.don(()=>{const t=this.syncOtherViewersToActived;this.viewers.forEach(n=>{t?n.syncOtherViewer(this.activeViewer):n.syncOtherViewer(void 0)})})));D(this,"_player",this.createSceneObjectFromClass(ks));D(this,"_playerdon",this.d(()=>this._player&&this.destroySceneObject(this._player)));D(this,"_esPlyarAndPathTime",this.dv(new bC(this)));D(this,"_pathAnimationManager",this.dv(new EC(this)))}static get envs(){return we.context.environmentVariables}getSceneObjectById(t){return we.getSceneObjectById(t)}getSceneObject(t){return we.getSceneObject(t)}get $refs(){return we.$refs}get dragstartDataMananger(){return this._drgm}get sceneObjectsManager(){return this._sobjm}get viewers(){return this._vrm.viewers}getViewers(){return this._vrm.getViewers()}get sceneObjectEditingManager(){return this._sceneObjectEditingManager}get activeViewer(){return this._activeViewer.value}set activeViewer(t){this._activeViewer.value=t}get activeViewerChanged(){return this._activeViewer.changed}get syncOtherViewersToActived(){return this._syncOtherViewersToActived.value}set syncOtherViewersToActived(t){this._syncOtherViewersToActived.value=t}get syncOtherViewersToActivedChanged(){return this._syncOtherViewersToActived.changed}get cameraViewsManager(){return this._cmrvm}get json(){var p;const t=this._asset.createdTime||new Date().toISOString(),n=new Date().toISOString(),i=this._asset.name||"未命名项目",s={type:"ESObjectsManager",version:this._asset.version||"0.1.0",createdTime:t,modifiedTime:n,name:i},a=this.sceneTree.json,c=this._cmrvm.views,f=[...this._vrm.viewers].map(g=>g.json),m=(p=this.activeViewer)==null?void 0:p.getCurrentCameraInfo();return{asset:s,viewers:f,sceneTree:a,viewCollection:c,lastView:m}}set json(t){try{if(!t.asset)return;if(!t.asset.type||t.asset.type!=="ESObjectsManager"){console.warn("json装配失败! asset.type 不存在或者不是'ESObjectsManager'");return}if(this._asset.createdTime=t.asset&&t.asset.createdTime||new Date().toISOString(),this._asset.modifiedTime=t.asset&&t.asset.modifiedTime||"",this._asset.name=t.asset&&t.asset.name||"未命名项目",this._asset.version=t.asset&&t.asset.version||"0.1.0",t.sceneTree&&(this.sceneTree.json=t.sceneTree),t.viewCollection&&(this._cmrvm.views=t.viewCollection),!t.viewers||!Array.isArray(t.viewers)){console.warn("viewers is not an array or does not exist !");return}if(this._vrm.viewers.size===0||t.viewers.length===0){console.warn("viewers is empty !");return}this._vrm.viewers.forEach(n=>{const i=t.viewers.find(o=>o.id===n.id);i&&(n.json=i)})}catch(n){console.error(`ESObjectsManager解析json数据时发生错误! error: ${n}`)}}get sceneTree(){return this._sceneTree}get jsonLoadingEvent(){return this._sceneTree.jsonLoadingEvent}get propUiTreeManager(){return this._propUiTreeManager}propTreeCallback(t){return PC(this,t)}getSceneTrees(){return[...this._sceneTreeMap.values()]}getSceneTree(t="default"){if(t==="default")return this._sceneTree;if(!this._sceneTreeMap.has(t)){console.warn(`id为${t}的SceneTree不存在!`);return}return this._sceneTreeMap.get(t)}createSceneTree(t,n=24){if(this._sceneTreeMap.has(t)||t==="default")console.warn(`id为${t}的SceneTree已存在!`);else{const i=this.dv(new zc(t,this.dragstartDataMananger,n,this));this._sceneTreeMap.set(t,i)}return this.getSceneTree(t)}get viewerCreatedEvent(){return this._viewerCreatedEvent}createViewer(t){const n=this._vrm.createViewer(t);this.activeViewer||(this.activeViewer=n);const i=this.d(n.viewerChanged.don(o=>{o&&(this._viewerCreatedEvent.emit(n),i())}));return n}destroyViewer(t){return this._activeViewer.value===t&&(this._activeViewer.value=void 0),this._vrm.destroyViewer(t)}switchViewer(t,n=!0,i=!0,o=!0){var f;this.activeViewer&&this.activeViewer.getNavigationMode()!=="Map"&&this.activeViewer.changeToMap(),!this._lastCameraInfo&&n&&(this._lastCameraInfo=(f=this.activeViewer)==null?void 0:f.getCurrentCameraInfo()),!this._lastActiveViewerJson&&i&&(this._lastActiveViewerJson=this.activeViewer?FC(this.activeViewer):void 0),o&&this.activeViewer&&this.destroyViewer(this.activeViewer);const s=t.id,a=s?[...this.getViewers()].find(m=>m.id===s):[...this.getViewers()].find(m=>m.typeName===t.type);if(a)if(s&&a.typeName!==t.type)console.warn(`id为${s}的viewer的typeName和option.type${t.type}不相同!,虽然id一致但是typeName不同,所以会销毁并创建新的viewer`),this.destroyViewer(a);else return console.log("ESViewer exists, will be used"),n&&n0(this,a),i&&this._lastActiveViewerJson&&(i0(a,this._lastActiveViewerJson),this._lastActiveViewerJson=void 0),a.container===$y(t.container)?(a.containerOrId=t.container,a.forceRecreate()):a.containerOrId=t.container,this.activeViewer=a,a;console.log("No ESViewer exists, will be created");const c=this.createViewer(t);return n&&n0(this,c),i&&this._lastActiveViewerJson&&(i0(c,this._lastActiveViewerJson),this._lastActiveViewerJson=void 0),this.activeViewer=c,c}switchToCesiumViewer(...t){if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)){const{container:n,viewSync:i,attributeSync:o,destroy:s,id:a}=t[0];return this.switchViewer({type:"ESCesiumViewer",container:n,id:a},i??!0,o??!0,s??!0)}else if(typeof t[0]=="string"||t[0]instanceof HTMLDivElement){const n={container:t[0],viewSync:t[1]??!0,attributeSync:t[2]??!0,destroy:t[3]??!0,id:t[4]},{container:i,viewSync:o,attributeSync:s,destroy:a,id:c}=n;return this.switchViewer({type:"ESCesiumViewer",container:i,id:c},o,s,a)}}switchToUEViewer(...t){let n,i={viewSync:!0,attributeSync:!0,destroy:!0};if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("uri")){const{container:c,uri:f,app:m,token:p,viewSync:g,attributeSync:w,destroy:_,id:y}=t[0];n={type:"ESUeViewer",container:c,id:y,options:{uri:f,app:m,token:p}},i={viewSync:g??!0,attributeSync:w??!0,destroy:_??!0}}else if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("ws")){const{container:c,ws:f,esmsg:m,viewSync:p,attributeSync:g,id:w,destroy:_}=t[0];n={type:"ESUeViewer",container:c,id:w,options:{ws:f,esmsg:m}},i={viewSync:p??!0,attributeSync:g??!0,destroy:_??!0}}else if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("project")){const{container:c,project:f,baseUrl:m,viewSync:p,attributeSync:g,id:w,destroy:_}=t[0];n={type:"ESUeViewer",container:c,id:w,options:{project:f,baseUrl:m}},i={viewSync:p??!0,attributeSync:g??!0,destroy:_??!0}}else(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(typeof t[1]=="string"&&t[1].startsWith("ws")?(n={type:"ESUeViewer",container:t[0],id:t[6],options:{ws:t[1],esmsg:t[2]??void 0}},i={viewSync:t[3]??!0,attributeSync:t[4]??!0,destroy:t[5]??!0}):typeof t[1]=="string"&&t[1].startsWith("http")?(n={type:"ESUeViewer",container:t[0],id:t[7],options:{uri:t[1],app:t[2],token:t[3]??void 0}},i={viewSync:t[4]??!0,attributeSync:t[5]??!0,destroy:t[6]??!0}):(n={type:"ESUeViewer",container:t[0],id:t[6],options:{project:t[1],baseUrl:t[2]??void 0}},i={viewSync:t[3]??!0,attributeSync:t[4]??!0,destroy:t[5]??!0}));if(!n)throw new Error("参数错误");const{viewSync:o,attributeSync:s,destroy:a}=i;return this.switchViewer(n,o,s,a)}createCesiumViewer(...t){let n;if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)?n={...t[0],type:"ESCesiumViewer"}:(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(n={container:t[0],options:t[1]??void 0,id:t[2]??void 0,type:"ESCesiumViewer"}),!n)throw new Error("参数错误");return this.createViewer(n)}createUeViewer(...t){let n;if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)?n={...t[0],type:"ESUeViewer"}:(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(typeof t[1]=="string"&&t[1].startsWith("ws")?n={type:"ESUeViewer",container:t[0],id:t[3]??void 0,options:{ws:t[1],esmsg:t[2]??void 0}}:typeof t[1]=="string"&&t[1].startsWith("http")?n={type:"ESUeViewer",container:t[0],id:t[4]??void 0,options:{uri:t[1],app:t[2],token:t[3]??void 0}}:n={type:"ESUeViewer",container:t[0],id:t[3]??void 0,options:{project:t[1],baseUrl:t[2]??void 0}}),!n)throw new Error("参数错误");return this.createViewer(n)}createSceneObject(t,n){return this._sobjm.createSceneObject(t,n)}createSceneObjectFromClass(t,n){return this._sobjm.createSceneObjectFromClass(t,n)}createSceneObjectFromJson(t){return this._sobjm.createSceneObjectFromJson(t)}destroySceneObject(t){const n=this._sobjm.deleteSceneObject(t);return t.destroy(),n}destroyAllSceneObjects(){const t=[...this._sobjm.sceneObjects];for(let n of t)n!=this._player&&n!=this._cmrvm&&this.destroySceneObject(n)}get player(){return this._player}get esPlyarAndPathTime(){return this._esPlyarAndPathTime}get pathAnimationManager(){return this._pathAnimationManager}}D(Io,"getSceneObjById",we.context.getSceneObjectById.bind(we.context)),D(Io,"getEnv",we.context.getEnv.bind(we.context)),D(Io,"setEnv",we.context.setEnv.bind(we.context)),(r=>{r.createDefaultProps=()=>({})})(Io||(Io={})),M.extendClassProps(Io.prototype,Io.createDefaultProps);function kC(){const r=navigator.userAgent;let e="Unknown";/Windows/.test(r)?e="Windows":/Macintosh/.test(r)?e="MacOS":/Linux/.test(r)?e="Linux":/Android/.test(r)?e="Android":/iOS|iPhone|iPad|iPod/.test(r)&&(e="iOS");let t="Unknown";return/x64|x86_64|Win64|WOW64/.test(r)?t="x64":/x86|i686|Win32/.test(r)?t="x86":/arm64|aarch64/.test(r)?t="arm64":/arm/.test(r)&&(t="arm"),{os:e.toLocaleLowerCase(),arch:t.toLocaleLowerCase()}}const GC=Date.now();function s0(r){const{os:e,arch:t}=kC(),n={version:r.version,commitdate:r.date,commitId:r.commitId,runningTime:(Date.now()-GC)/1e3/60|0,date:new Date().toLocaleString(),href:window.location.href,os:e,arch:t},o={method:"GET",headers:new Headers,redirect:"follow"},s=window.encodeURIComponent(JSON.stringify(n));fetch(`https://account.bjxbsj.cn/api/product/record?product=EarthSDKJS&content=${s}`,o).then(a=>a.text()).then(a=>console.log(a)).catch(a=>console.log("error",a))}X.copyright=void 0;try{const r="earthsdk3",e="3.0.8-beta.3",t="2025-06-16T06:22:16.000Z",n="北京西部世界科技有限公司",i="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",o="c546b340bd43a9828bac1d6f5ed71d75634f83eb",a=((Date.now()-1750054936e3)/36e5).toFixed(1),c=`%c🌏 ${r}%c ${e}.${o.slice(0,8)}.${t} (距今${a}个小时)
773
+ `,NC='<svg t="1747028305766" class="icon" viewBox="0 0 1032 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3881" width="40" height="40"><path d="M0.1536 547.700736c-0.205824-0.187392-0.205824-0.49152 0.008192-0.68608l80.672768-73.590784a0.63488 0.63488 0 0 1 0.7936-0.029696l263.043072 203.0336c0.667648 0.515072 1.738752 0.498688 2.393088-0.038912l609.191936-500.133888a0.605184 0.605184 0 0 1 0.768 0.022528l74.84928 67.229696a0.454656 0.454656 0 0 1-0.002048 0.685056l-685.234176 618.19904a1.14688 1.14688 0 0 1-1.518592-0.012288L0.1536 547.700736z" fill="#ffffff" p-id="3882"></path></svg>',DC='<svg t="1747028398107" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1146" width="40" height="40"><path d="M415.744006 1.033277A0.992256 0.992256 0 0 1 416.747526 0.000061h189.5045c0.569344 0 1.017856 0.45056 1.001472 1.033216l-21.227518 754.803667a1.062912 1.062912 0 0 1-1.05984 1.032192h-146.933752c-0.569344 0-1.04448-0.45056-1.059839-1.032192L415.744006 1.033277zM511.510528 1024c-52.595709 0-95.231994-39.866366-95.231994-89.043963 0-49.176573 42.636285-89.042939 95.231994-89.042938 52.594685 0 95.231994 39.866366 95.231994 89.042938 0 49.177597-42.637309 89.043963-95.231994 89.043963z" fill="#ffffff" p-id="1147"></path></svg>',Ju=class Ju extends M.Destroyable{constructor(e){super();const t=()=>{const n=this.dv(new Oo);this.d(M.track([n,"show"],[e,"useDefaultStatusDiv"]));{const i=()=>{n.show=(e.useDefaultStatusDiv??!0)&&e.status!=="Created"};i(),this.d(e.useDefaultStatusDivChanged.don(i)),this.d(e.statusChanged.don(i)),n.cssText="width:100%;height:100%;position:absolute;left:0px;top:0px;"}e.add(n),this.d(()=>e.delete(n)),n.instanceClass=class extends M.Destroyable{constructor(s,a,c){super();D(this,"_div",document.createElement("div"));if(this._subContainer=s,!c)return;this._subContainer.appendChild(this._div),this.d(()=>this._subContainer.removeChild(this._div));{const _=()=>{a.show?this._div.style.opacity="1":this._div.style.opacity="0"};_(),this.d(a.showChanged.don(_))}let f,m,p,g,w;this._div.style.pointerEvents="none",this._div.style.position="absolute",this._div.style.width="100%",this._div.style.height="100%",this._div.style.backgroundColor="rgba(0, 0, 0, 0.4)",this._div.style.zIndex="100",this._div.style.transition="opacity 2s",f=document.createElement("div"),this._div.appendChild(f),f.style.width="auto",f.style.position="absolute",f.style.left="50%",f.style.top="50%",f.style.transform="translate(-50%,-50%)",f.style.background="rgba(120, 120, 0, 0.7)",f.style.color="white",f.style.fontSize="10px",f.style.background="none",f.style.display="flex",f.style.justifyContent="center",f.style.alignItems="center",m=document.createElement("div"),f.appendChild(m),m.style.pointerEvents="none",m.style.display="block",m.style.width="40px",m.innerHTML=Ju.defaultsSvg.loadingSvg,m.style.filter="drop-shadow(0px 0px 1px black)",p=document.createElement("div"),f.appendChild(p),p.style.pointerEvents="none",p.style.marginLeft="10px",p.style.display="flex",p.style.flexFlow="column",p.style.maxWidth="300px",g=document.createElement("div"),p.appendChild(g),g.style.fontSize="14px",g.style.fontWeight="800",g.style.marginBottom="5px",g.style.textShadow="0 0 2px black",w=document.createElement("div"),p.appendChild(w),w.style.fontWeight="400",w.style.textShadow="0 0 2px black";{const _=()=>{let h="Raw";c.status==="Raw"?h="初始状态":c.status==="Creating"?h="正在创建":c.status==="Created"?h="创建完成":c.status==="Error"?h="创建失败":c.status==="Reconnecting"&&(h="重新连接"),g.innerText=`${h}(${c.status})`,w.innerText=`${c.statusLog}`,(c.status==="Creating"||c.status==="Reconnecting")&&(m.innerHTML=Ju.defaultsSvg.loadingSvg),c.status==="Created"&&(m.innerHTML=Ju.defaultsSvg.successSvg),c.status==="Error"&&(m.innerHTML=Ju.defaultsSvg.warnSvg)};_();const y=this.dv(M.createNextAnimateFrameEvent(c.statusLogChanged,c.statusChanged));this.d(y.don(_))}}update(){const s=255*Math.random()|0,a=255*Math.random()|0,c=255*Math.random()|0;this._div.style.background=`rgba(${s}, ${a}, ${c}, 0.8)`}}};this.d(e.containerChanged.don(()=>{t()}))}};D(Ju,"defaultsSvg",{loadingSvg:TC,successSvg:NC,warnSvg:DC});let Ud=Ju;class AC extends M.Destroyable{constructor(e,t,n){super(),this._subContainer=e,this._overlayContainer=t,this._viewer=n;const i=this._subContainer,o=this._overlayContainer,s=this._viewer,a=()=>{const m=s.zIndex??"";i.style.zIndex=m,o.style.zIndex=m};a(),this.d(s.zIndexChanged.don(a));const c=()=>{i.style.display=s.show??!0?"block":"none"};c(),this.d(s.showChanged.don(c));const f=()=>{i.style.opacity=`${s.opacity??1}`};f(),this.d(s.opacityChanged.don(f))}}function nf(r){let e=M.getExtProp(r,"_relativeContainer");return e||(e=document.createElement("div"),e.style.position="relative",e.style.width="100%",e.style.height="100%",e.style.padding="0",e.style.margin="0",r.appendChild(e),M.setExtProp(r,"_relativeContainer",e)),e}class RC extends M.Destroyable{constructor(t,n){super();D(this,"_subContainer",document.createElement("div"));D(this,"_overlayContainer",document.createElement("div"));D(this,"_containerStyleController");this._container=t,this._viewer=n,this._containerStyleController=this.dv(new AC(this._subContainer,this._overlayContainer,this._viewer));const{subContainer:i,overlayContainer:o}=this;i.tabIndex=-1,i.style.outline="none",i.style.width="100%",i.style.height="100%",i.onpointerdown=()=>i.focus(),o.style.position="relative",o.setAttribute("earthsdk3","earthsdk3-overlayContainer"),i.setAttribute("earthsdk3","earthsdk3-subContainer"),nf(this._container).appendChild(i),this.d(()=>nf(this._container).removeChild(i)),nf(this._container).appendChild(o),this.d(()=>nf(this._container).removeChild(o))}get subContainer(){return this._subContainer}get overlayContainer(){return this._overlayContainer}get containerStyleController(){return this._containerStyleController}get container(){return this._container}}class LC extends M.Destroyable{constructor(){super(...arguments);D(this,"registerObjsMap",new Map)}register(t,n){return this.registerObjsMap.has(t)&&console.warn(`register warn:${t}已经被注册,再次注册会覆盖。`),this.registerObjsMap.set(t,n),t}getViewerConstructor(t){const n=this.registerObjsMap.get(t);if(!n){console.warn(`未找到${t}类!`);return}return n}createViewer(t){const n=t.type,i=this.getViewerConstructor(n);if(!i)throw new Error(`没有找到类型为${n}的Viewer构造器!`);return new i(t)}}class r0 extends M.Destroyable{constructor(e,t,n=!1,i=!1){if(super(),this._viewer=e,!t)throw new Error("ViewerCustomInteraction: container is null");const o=this.dv(M.DomElementEvent.create(t,"pointerdown")),s=this.dv(M.DomElementEvent.create(t,"pointermove")),a=this.dv(M.DomElementEvent.create(t,"pointerup")),c=this.dv(M.DomElementEvent.create(t,"pointerout")),f=this.dv(M.DomElementEvent.create(t,"pointerover")),m=this.dv(new M.PointerClick),p=this.dv(new M.PointerHover),g=()=>{const v=this._viewer.hoverTime*1e3;p.delayTime=v};this.d(this._viewer.hoverTimeChanged.don(()=>{g()})),this.d(o.don(v=>m.pointerDown(v))),this.d(s.don(v=>m.pointerMove(v))),this.d(a.don(v=>m.pointerUp(v))),this.d(c.don(v=>m.pointerOut(v))),this.d(o.don(v=>p.pointerDown(v))),this.d(s.don(v=>p.pointerMove(v))),this.d(a.don(v=>p.pointerUp(v))),this.d(c.don(v=>p.pointerOut(v)));const{x:w,y:_}=t.getBoundingClientRect(),y=i?w:0,h=i?_:0;this.d(p.hoverEvent.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);this._viewer.hoverEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(m.clickEvent.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);this._viewer.clickEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(m.dbclickEvent.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);v.button===0&&this._viewer.dblclickEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(o.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);v.button===0&&this._viewer.pointerDownEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(a.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);v.button===0&&this._viewer.pointerUpEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(s.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);this._viewer.pointerMoveEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(f.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);this._viewer.pointerOverEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})})),this.d(c.don(v=>{const[b,E]=M.getDomEventCurrentTargetPos(v,n);this._viewer.pointerOutEvent.emit({screenPosition:[b+y,E+h],pointerEvent:v})}));const d=this.dv(M.DomElementEvent.create(t,"keydown"));this.d(d.don(v=>this._viewer.keyDownEvent.emit(v)));const u=this.dv(M.DomElementEvent.create(t,"keyup"));this.d(u.don(v=>this._viewer.keyUpEvent.emit(v)));const l=this.dv(M.DomElementEvent.create(t,"wheel"));this.d(l.don(v=>this._viewer.wheelEvent.emit(v)))}}const ys=class ys extends M.Destroyable{constructor(t){super();D(this,"_forceRecreateEvent",this.dv(new M.Event));D(this,"_container",this.dv(M.react(void 0)));D(this,"_containerSize",this.dv(M.react(void 0)));D(this,"_editingEvent",this.disposeVar(new M.Event));D(this,"_status",this.dv(M.react("Raw")));D(this,"_statusLog",this.dv(M.react("")));D(this,"_statusContainer",this.dv(new Ud(this)));D(this,"_useCustomInteraction",this.dv(M.react(!0)));D(this,"_resetInteractionEvent",this.dv(M.createNextAnimateFrameEvent(this.containerChanged,this._useCustomInteraction.changed,this._forceRecreateEvent)));D(this,"_interactionResetting",this.dv(new M.ObjResettingWithEvent(this._resetInteractionEvent,()=>{if(!(!this.container||!this._useCustomInteraction.value))return new r0(this,this.container)})));D(this,"_viewerChanged",this.dv(new M.Event));D(this,"_containerResetEvent",this.dv(M.createNextAnimateFrameEvent(this.containerChanged,this._forceRecreateEvent)));D(this,"_containerResetting",this.dv(new M.ObjResettingWithEvent(this._containerResetEvent,()=>{if(this.container)return new RC(this.container,this)})));D(this,"_sceneObjectsMap",new Map);D(this,"_id");D(this,"_typeName");D(this,"_updateFuncReact",this.dv(M.react(void 0)));D(this,"_toDestroyFuncReact",this.dv(M.react(void 0)));D(this,"_statusInfo",ys.defaults.statusInfo);D(this,"_navigationMode",this.dv(M.react("Map")));D(this,"_syncViewer",this.dv(M.react(void 0)));D(this,"_syncEventDon",this.dv(new M.ObjResettingWithEvent(this.syncViewerChanged,()=>{const t=this.syncViewer;if(t)return new IC(this,t)})));D(this,"_timeSyncdon",this.dv(new M.ObjResettingWithEvent(this.timeSyncChanged,()=>{if(this.timeSync)return new MC(this)})));D(this,"_hoverEvent",this.dv(new M.Event));D(this,"_pointerOverEvent",this.dv(new M.Event));D(this,"_pointerMoveEvent",this.dv(new M.Event));D(this,"_pointerDownEvent",this.dv(new M.Event));D(this,"_pointerUpEvent",this.dv(new M.Event));D(this,"_pointerOutEvent",this.dv(new M.Event));D(this,"_clickEvent",this.dv(new M.Event));D(this,"_dblclickEvent",this.dv(new M.Event));D(this,"_keyDownEvent",this.dv(new M.Event));D(this,"_keyUpEvent",this.dv(new M.Event));D(this,"_wheelEvent",this.dv(new M.Event));D(this,"_actived",this.dv(M.react(!1)));this._id=t.id??M.createGuid();const n=$y(t.container);if(n)this._container.value=zd(n),this._typeName=t.type,this._initName();else throw new Error("container is not defined");{const i=()=>{n&&(this.show??!0?n.style.display="block":n.style.display="none")};i(),this.d(this.showChanged.don(i))}{const i=this._sceneObjectsMap,o=()=>{for(let[a,c]of i.entries())if(!c&&a){const f=Vo.context.createEngineObject(a,this);f&&i.set(a,f)}},s=()=>{for(let[a,c]of i.entries())c&&!c.isDestroyed()&&c.destroy(),i.set(a,void 0)};this.d(s),this.d(this.viewerChanged.don(a=>{s(),a&&o()}))}{const i=()=>{if(this.execOnceFuncStr)try{Function(`"use strict";return (${this.execOnceFuncStr})`)()(this)}catch(o){console.warn(`execOnceFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${o}`)}};i(),this.d(this.execOnceFuncStrChanged.don(i))}{const i=()=>{if(this.updateFuncStr)try{this.updateFunc=Function(`"use strict";return (${this.updateFuncStr})`)()}catch(s){console.warn(`updateFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${s}`)}};i(),this.d(this.updateFuncStrChanged.don(i));let o;this.d(()=>o&&o.destroy()),this.d(this.updateFuncChanged.don(()=>{o&&o.cancel(),this.updateFunc&&(o=o||M.createAnimateFrame(),o.restart(void 0,s=>{this.updateFunc&&this.updateFunc(this,s)}))}))}{const i=()=>{try{this.toDestroyFunc=this.toDestroyFuncStr&&Function(`"use strict";return (${this.toDestroyFuncStr})`)()||void 0}catch(o){console.warn(`toDestroyFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${o}`),this.toDestroyFunc=void 0}};i(),this.d(this.toDestroyFuncStrChanged.don(i)),this.d(this.toDestroyEvent.don(()=>{this.toDestroyFunc&&this.toDestroyFunc(this)}))}}forceRecreate(){this._forceRecreateEvent.emit()}get container(){return this._container.value}set container(t){this._container.value=t}set containerOrId(t){if(typeof t=="string"){const n=document.getElementById(t);n&&n instanceof HTMLDivElement?this._container.value=zd(n):console.warn("containerOrId warn: !(container instanceof HTMLDivElement)")}else t instanceof HTMLDivElement?this._container.value=zd(t):console.warn("containerOrId warn: setting container failed!")}get containerChanged(){return this._container.changed}get containerSize(){return this._containerSize.value}set containerSize(t){this._containerSize.value=t}get containerSizeChanged(){return this._containerSize.changed}get editingEvent(){return this._editingEvent}get status(){return this._status.value}get statusChanged(){return this._status.changed}setStatus(t){this._status.value=t}get statusLog(){return this._statusLog.value}get statusLogChanged(){return this._statusLog.changed}setStatusLog(t){this._statusLog.value=t}get useCustomInteraction(){return this._useCustomInteraction.value}set useCustomInteraction(t){this._useCustomInteraction.value=t}get viewerChanged(){return this._viewerChanged}get containerResetEvent(){return this._containerResetEvent}get subContainer(){var t;return(t=this._containerResetting.obj)==null?void 0:t.subContainer}get subContainerChanged(){return this._containerResetting.objChanged}get overlayContainer(){var t;return(t=this._containerResetting.obj)==null?void 0:t.overlayContainer}get overlayContainerChanged(){return this._containerResetting.objChanged}get sceneObjectsMap(){return this._sceneObjectsMap}get sceneObjects(){return this._sceneObjectsMap.keys()}getEngineObject(t){return this.sceneObjectsMap.get(t)}add(...t){for(let n of t)if(!this.has(n)){const i=Vo.context.createEngineObject(n,this);i&&this._sceneObjectsMap.set(n,i),n.viewerAttached.emit(this)}}delete(...t){for(let n of t)if(this.has(n)){const i=this._sceneObjectsMap.get(n);i&&i.destroy(),this._sceneObjectsMap.delete(n),n.viewerDetached.emit(this)}}disposableAdd(...t){return this.add(...t),()=>this.delete(...t)}disAdd(...t){return this.disposableAdd(...t)}has(t){return this._sceneObjectsMap.has(t)}clearAllSceneObjects(){for(let t of this.sceneObjects)this.delete(t)}get id(){return this._id}set id(t){console.warn("ESViewer id is readonly")}get typeName(){return this._typeName}_initName(){this.name=`${this.typeName}_${(""+this.id).slice(-4)}`}get defaultProps(){return ys.createDefaultProps()}_getJson(t=!0){const n={id:this.id,type:this.typeName};for(let i of Object.keys(this.defaultProps))if(t){let o,s=this.defaultProps[i];s instanceof M.ReactiveVariable?o=s.equals(this[i]):o=s===this[i],o||(n[i]=this[i])}else n[i]=this[i];return n}_setJson(t,n,i){if(!(t instanceof Object)||t.type&&t.type!==this.typeName){console.error(`value.type && value.type${t.type} !== this.typeName${this.typeName}`);return}t.id&&t.id!==this.id&&console.warn(`value.id === undefined || value.id${t.id} !== this.id(${this.id})`);const o=n||[];o.push("id","type");const s=Object.keys(this.defaultProps).filter(a=>!o.includes(a));for(let a of s)if(a in t)this[a]=t[a]===null?void 0:t[a];else if(!(i??!1)){let c=this.defaultProps[a];c instanceof M.ReactiveVariable&&(c=c.value),this[a]=c}}get json(){return this._getJson()}set json(t){this._setJson(t,["devTags"])}get updateFunc(){return this._updateFuncReact.value}set updateFunc(t){this._updateFuncReact.value=t}get updateFuncChanged(){return this._updateFuncReact.changed}get toDestroyFunc(){return this._toDestroyFuncReact.value}set toDestroyFunc(t){this._toDestroyFuncReact.value=t}get toDestroyFuncChanged(){return this._toDestroyFuncReact.changed}get navigationMode(){return this._navigationMode.value}get navigationModeChanged(){return this._navigationMode.changed}getNavigationMode(){return this._navigationMode.value}getEngineType(){return this._typeName}get syncViewer(){return this._syncViewer.value}set syncViewer(t){this._syncViewer.value=t}get syncViewerChanged(){return this._syncViewer.changed}syncOtherViewer(t){t&&t.syncViewer&&(t.syncViewer=void 0),t===this?this._syncViewer.value=void 0:this._syncViewer.value=t}setCurrentTime(t){try{this.currentTime=typeof t=="string"?Date.parse(t):t}catch(n){console.warn(`时间格式不正确! value: ${t} error: ${n}`)}}async getVersion(){return window.g_XE3CopyRights??{}}get hoverEvent(){return this._hoverEvent}get pointerOverEvent(){return this._pointerOverEvent}get pointerMoveEvent(){return this._pointerMoveEvent}get pointerDownEvent(){return this._pointerDownEvent}get pointerUpEvent(){return this._pointerUpEvent}get pointerOutEvent(){return this._pointerOutEvent}get clickEvent(){return this._clickEvent}get dblclickEvent(){return this._dblclickEvent}get keyDownEvent(){return this._keyDownEvent}get keyUpEvent(){return this._keyUpEvent}get wheelEvent(){return this._wheelEvent}getProperties(t){return[new ee("ESViewer","ESViewer",[new Se("强制刷新","重载",[],()=>this.forceRecreate(),[]),new $("debug","debug",!0,!1,[this,"debug"],ys.defaults.debug),new $("是否可见","是否可见",!0,!1,[this,"show"]),new ce("位置点单位","lonLatFormat",!0,!1,[this,"lonLatFormat"],[["度","DECIMAL_DEGREE"],["度分","DEGREES_DECIMAL_MINUTES"],["度分秒","SEXAGESIMAL_DEGREE"]]),new $("是否开启文字避让","textAvoidance",!0,!1,[this,"textAvoidance"],!1),new de("ionAccessToken","ionAccessToken",!1,!1,[this,"ionAccessToken"]),new q("时钟","时钟",!1,!1,[this,"currentTime"]),new $("globeShow","globeShow",!0,!1,[this,"globeShow"]),new $("atmosphere","atmosphere",!1,!1,[this,"atmosphere"])]),new q("飞行像素范围","默认飞行定位时对象包围球所占的屏幕像素大小",!1,!1,[this,"flyToBoundingSize"]),new q("编辑高度偏移","编辑时默认的高度偏移",!1,!1,[this,"editingHeightOffset"]),new ee("Globe","Globe",[new ne("地形着色器","可以设置地形全局坡度,坡向,高程带,等高线等",!1,!1,[this,"terrainShader"])])]}get actived(){return this._actived.value}set actived(t){this._actived.value=t}get activedChanged(){return this._actived.changed}};D(ys,"context",new LC),D(ys,"register",ys.context.register.bind(ys.context)),D(ys,"defaults",{show:!0,debug:!1,statusInfo:{fps:0,position:[0,0,0],rotation:[0,0,0],length:0},terrainShader:{slope:{show:!1},aspect:{show:!1},elevationRamp:{show:!1,minHeight:-414,maxHeight:8777,color:[]},elevationContour:{show:!1,color:[1,0,0,1],spacing:150,width:2}},globeShow:!0});let Ai=ys;(r=>{r.createBaseProps=()=>({name:"未命名场景对象",extras:M.reactJson(void 0),devTags:M.reactArrayWithUndefined(void 0),debug:void 0,show:void 0,opacity:void 0,zIndex:void 0,useDefaultStatusDiv:!0,execOnceFuncStr:void 0,updateFuncStr:void 0,toDestroyFuncStr:void 0}),r.createCommonProps=()=>({globeShow:!0,ionAccessToken:"",lonLatFormat:"DECIMAL_DEGREE",fov:60,textAvoidance:!1,flyToBoundingSize:256,hoverTime:2,currentTime:Date.now(),simulationTime:Date.now(),timeSync:!1,rain:0,snow:0,cloud:0,fog:0,depthOfField:0,atmosphere:!0,editingPointSize:void 0,editingPointColor:M.reactArrayWithUndefined(void 0),editingAuxiliaryPointColor:M.reactArrayWithUndefined(void 0),editingLineWidth:void 0,editingLineColor:M.reactArrayWithUndefined(void 0),editingAxisSize:void 0,editingAuxiliaryPointSize:void 0,editingHeightOffset:0,editingLineShow:!0,editingEventListening:!0,terrainShader:r.defaults.terrainShader}),r.createDefaultProps=()=>({...(0,r.createBaseProps)(),...(0,r.createCommonProps)()})})(Ai||(Ai={})),M.extendClassProps(Ai.prototype,Ai.createDefaultProps);function n0(r,e){const t=r._lastCameraInfo;if(t){const n=e.viewerChanged.don(i=>{if(!i||!t)return;const{position:o,rotation:s}=t;e.flyIn(o,s,0),r._lastCameraInfo=void 0,n()})}}const FC=r=>{const e=Ai.createCommonProps(),t={};try{Object.keys(e).forEach(n=>{t[n]=r[n]})}catch(n){console.warn(n)}return t},i0=(r,e)=>{const t=Ai.createCommonProps();try{Object.keys(t).forEach(n=>{r[n]=e[n]})}catch(n){console.warn(n)}};class jC extends M.Destroyable{constructor(t){super();D(this,"_viewersChanged",this.disposeVar(new M.Event));D(this,"_viewers",new Set);D(this,"_viewersToChange",this.dv(new M.Event));this._sceneObjectsManager=t,this.d(()=>{for(const n of this._viewers)this.destroyViewer(n);this._viewers.clear()}),this.viewers.forEach(n=>{const i=this._sceneObjectsManager.sceneObjects;n.add(...i)}),this.d(()=>{const n=this._sceneObjectsManager.sceneObjects;this.viewers.forEach(i=>{i.delete(...n)})}),this.d(this._sceneObjectsManager.sceneObjectsToChange.don((n,i)=>{this.viewers.forEach(o=>{i.forEach(s=>{Ls(o.devTags,s.devTags)&&(o.has(s)?console.warn(`${o.typeName}中已存${s.typeName},检查逻辑是否有问题!`):o.add(s))}),n.forEach(s=>{Ls(o.devTags,s.devTags)&&(o.has(s)?o.delete(s):console.warn(`${o.typeName}中不存在${s.typeName},检查逻辑是否有问题!`))})}),i.length>0&&i.forEach(o=>{o.d(o.devTagsChanged.don(()=>{this.viewers.forEach(s=>{s.has(o)&&s.delete(o),console.log("sceneObjectsToChange",s.devTags,o.devTags,Ls(s.devTags,o.devTags)),Ls(s.devTags,o.devTags)&&(s.has(o)?console.warn(`${s.typeName}中已存${o.typeName},检查逻辑是否有问题!`):s.add(o))})}))})})),this.d(this.viewersChanged.don((n,i)=>{const o=this._sceneObjectsManager.sceneObjects;i.forEach(s=>{for(let a of o)Ls(s.devTags,a.devTags)&&(s.has(a)?console.warn(`${s.typeName}中已存${a.typeName},检查逻辑是否有问题!`):s.add(a))}),n.forEach(s=>{for(let a of o)Ls(s.devTags,a.devTags)&&(s.has(a)?s.delete(a):console.warn(`${s.typeName}中不存在${a.typeName},检查逻辑是否有问题!`))}),i.length>0&&i.forEach(s=>{s.d(s.devTagsChanged.don(()=>{s.clearAllSceneObjects();const a=this._sceneObjectsManager.sceneObjects;for(let c of a)console.log("viewersChanged",s.devTags,c.devTags,Ls(s.devTags,c.devTags)),Ls(s.devTags,c.devTags)&&(s.has(c)?console.warn(`${s.typeName}中已存${c.typeName},检查逻辑是否有问题!`):s.add(c))}))})}))}get viewersChanged(){return this._viewersChanged}get viewers(){return this._viewers}getViewers(){return[...this._viewers]}get viewersToChange(){return this._viewersToChange}createViewer(t){const n=Ai.context.createViewer(t);return this._viewers.add(n),this._viewersChanged.emit([],[n]),n}destroyViewer(t){return t.isDestroyed()?!0:(this._viewers.delete(t),this._viewersChanged.emit([t],[]),t.destroy(),t.isDestroyed())}}class Io extends M.Destroyable{constructor(...t){super();D(this,"_drgm",this.dv(new py));D(this,"_sobjm",this.dv(new OC));D(this,"_vrm",this.dv(new jC(this._sobjm)));D(this,"_sceneObjectEditingManager",this.disposeVar(new xC));D(this,"_activeViewer",this.dv(M.react(void 0)));D(this,"_syncOtherViewersToActived",this.dv(M.react(!1)));D(this,"_cmrvm",this.createSceneObjectFromClass(Co));D(this,"_cmrvmdon",this.d(()=>this._cmrvm&&this.destroySceneObject(this._cmrvm)));D(this,"_asset",{type:"ESObjectsManager",version:"0.1.0",createdTime:"",modifiedTime:"",name:"未命名项目"});D(this,"_sceneTree",this.dv(new zc("default",this.dragstartDataMananger,24,this)));D(this,"_propUiTreeManager",this.dv(new Vl(24)));D(this,"_sceneTreeMap",new Map);D(this,"_viewerCreatedEvent",this.dv(new M.Event));D(this,"_lastCameraInfo");D(this,"_lastActiveViewerJson");D(this,"syncEvent",this.dv(M.createNextAnimateFrameEvent(this.activeViewerChanged,this.syncOtherViewersToActivedChanged)));D(this,"_syncEventDon",this.d(this.syncEvent.don(()=>{const t=this.syncOtherViewersToActived;this.viewers.forEach(n=>{t?n.syncOtherViewer(this.activeViewer):n.syncOtherViewer(void 0)})})));D(this,"_player",this.createSceneObjectFromClass(ks));D(this,"_playerdon",this.d(()=>this._player&&this.destroySceneObject(this._player)));D(this,"_esPlyarAndPathTime",this.dv(new bC(this)));D(this,"_pathAnimationManager",this.dv(new EC(this)))}static get envs(){return we.context.environmentVariables}getSceneObjectById(t){return we.getSceneObjectById(t)}getSceneObject(t){return we.getSceneObject(t)}get $refs(){return we.$refs}get dragstartDataMananger(){return this._drgm}get sceneObjectsManager(){return this._sobjm}get viewers(){return this._vrm.viewers}getViewers(){return this._vrm.getViewers()}get sceneObjectEditingManager(){return this._sceneObjectEditingManager}get activeViewer(){return this._activeViewer.value}set activeViewer(t){this._activeViewer.value=t}get activeViewerChanged(){return this._activeViewer.changed}get syncOtherViewersToActived(){return this._syncOtherViewersToActived.value}set syncOtherViewersToActived(t){this._syncOtherViewersToActived.value=t}get syncOtherViewersToActivedChanged(){return this._syncOtherViewersToActived.changed}get cameraViewsManager(){return this._cmrvm}get json(){var p;const t=this._asset.createdTime||new Date().toISOString(),n=new Date().toISOString(),i=this._asset.name||"未命名项目",s={type:"ESObjectsManager",version:this._asset.version||"0.1.0",createdTime:t,modifiedTime:n,name:i},a=this.sceneTree.json,c=this._cmrvm.views,f=[...this._vrm.viewers].map(g=>g.json),m=(p=this.activeViewer)==null?void 0:p.getCurrentCameraInfo();return{asset:s,viewers:f,sceneTree:a,viewCollection:c,lastView:m}}set json(t){try{if(!t.asset)return;if(!t.asset.type||t.asset.type!=="ESObjectsManager"){console.warn("json装配失败! asset.type 不存在或者不是'ESObjectsManager'");return}if(this._asset.createdTime=t.asset&&t.asset.createdTime||new Date().toISOString(),this._asset.modifiedTime=t.asset&&t.asset.modifiedTime||"",this._asset.name=t.asset&&t.asset.name||"未命名项目",this._asset.version=t.asset&&t.asset.version||"0.1.0",t.sceneTree&&(this.sceneTree.json=t.sceneTree),t.viewCollection&&(this._cmrvm.views=t.viewCollection),!t.viewers||!Array.isArray(t.viewers)){console.warn("viewers is not an array or does not exist !");return}if(this._vrm.viewers.size===0||t.viewers.length===0){console.warn("viewers is empty !");return}this._vrm.viewers.forEach(n=>{const i=t.viewers.find(o=>o.id===n.id);i&&(n.json=i)})}catch(n){console.error(`ESObjectsManager解析json数据时发生错误! error: ${n}`)}}get sceneTree(){return this._sceneTree}get jsonLoadingEvent(){return this._sceneTree.jsonLoadingEvent}get propUiTreeManager(){return this._propUiTreeManager}propTreeCallback(t){return PC(this,t)}getSceneTrees(){return[...this._sceneTreeMap.values()]}getSceneTree(t="default"){if(t==="default")return this._sceneTree;if(!this._sceneTreeMap.has(t)){console.warn(`id为${t}的SceneTree不存在!`);return}return this._sceneTreeMap.get(t)}createSceneTree(t,n=24){if(this._sceneTreeMap.has(t)||t==="default")console.warn(`id为${t}的SceneTree已存在!`);else{const i=this.dv(new zc(t,this.dragstartDataMananger,n,this));this._sceneTreeMap.set(t,i)}return this.getSceneTree(t)}get viewerCreatedEvent(){return this._viewerCreatedEvent}createViewer(t){const n=this._vrm.createViewer(t);this.activeViewer||(this.activeViewer=n);const i=this.d(n.viewerChanged.don(o=>{o&&(this._viewerCreatedEvent.emit(n),i())}));return n}destroyViewer(t){return this._activeViewer.value===t&&(this._activeViewer.value=void 0),this._vrm.destroyViewer(t)}switchViewer(t,n=!0,i=!0,o=!0){var f;this.activeViewer&&this.activeViewer.getNavigationMode()!=="Map"&&this.activeViewer.changeToMap(),!this._lastCameraInfo&&n&&(this._lastCameraInfo=(f=this.activeViewer)==null?void 0:f.getCurrentCameraInfo()),!this._lastActiveViewerJson&&i&&(this._lastActiveViewerJson=this.activeViewer?FC(this.activeViewer):void 0),o&&this.activeViewer&&this.destroyViewer(this.activeViewer);const s=t.id,a=s?[...this.getViewers()].find(m=>m.id===s):[...this.getViewers()].find(m=>m.typeName===t.type);if(a)if(s&&a.typeName!==t.type)console.warn(`id为${s}的viewer的typeName和option.type${t.type}不相同!,虽然id一致但是typeName不同,所以会销毁并创建新的viewer`),this.destroyViewer(a);else return console.log("ESViewer exists, will be used"),n&&n0(this,a),i&&this._lastActiveViewerJson&&(i0(a,this._lastActiveViewerJson),this._lastActiveViewerJson=void 0),a.container===$y(t.container)?(a.containerOrId=t.container,a.forceRecreate()):a.containerOrId=t.container,this.activeViewer=a,a;console.log("No ESViewer exists, will be created");const c=this.createViewer(t);return n&&n0(this,c),i&&this._lastActiveViewerJson&&(i0(c,this._lastActiveViewerJson),this._lastActiveViewerJson=void 0),this.activeViewer=c,c}switchToCesiumViewer(...t){if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)){const{container:n,viewSync:i,attributeSync:o,destroy:s,id:a}=t[0];return this.switchViewer({type:"ESCesiumViewer",container:n,id:a},i??!0,o??!0,s??!0)}else if(typeof t[0]=="string"||t[0]instanceof HTMLDivElement){const n={container:t[0],viewSync:t[1]??!0,attributeSync:t[2]??!0,destroy:t[3]??!0,id:t[4]},{container:i,viewSync:o,attributeSync:s,destroy:a,id:c}=n;return this.switchViewer({type:"ESCesiumViewer",container:i,id:c},o,s,a)}}switchToUEViewer(...t){let n,i={viewSync:!0,attributeSync:!0,destroy:!0};if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("uri")){const{container:c,uri:f,app:m,token:p,viewSync:g,attributeSync:w,destroy:_,id:y}=t[0];n={type:"ESUeViewer",container:c,id:y,options:{uri:f,app:m,token:p}},i={viewSync:g??!0,attributeSync:w??!0,destroy:_??!0}}else if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("ws")){const{container:c,ws:f,esmsg:m,viewSync:p,attributeSync:g,id:w,destroy:_}=t[0];n={type:"ESUeViewer",container:c,id:w,options:{ws:f,esmsg:m}},i={viewSync:p??!0,attributeSync:g??!0,destroy:_??!0}}else if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("project")){const{container:c,project:f,baseUrl:m,viewSync:p,attributeSync:g,id:w,destroy:_}=t[0];n={type:"ESUeViewer",container:c,id:w,options:{project:f,baseUrl:m}},i={viewSync:p??!0,attributeSync:g??!0,destroy:_??!0}}else(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(typeof t[1]=="string"&&t[1].startsWith("ws")?(n={type:"ESUeViewer",container:t[0],id:t[6],options:{ws:t[1],esmsg:t[2]??void 0}},i={viewSync:t[3]??!0,attributeSync:t[4]??!0,destroy:t[5]??!0}):typeof t[1]=="string"&&t[1].startsWith("http")?(n={type:"ESUeViewer",container:t[0],id:t[7],options:{uri:t[1],app:t[2],token:t[3]??void 0}},i={viewSync:t[4]??!0,attributeSync:t[5]??!0,destroy:t[6]??!0}):(n={type:"ESUeViewer",container:t[0],id:t[6],options:{project:t[1],baseUrl:t[2]??void 0}},i={viewSync:t[3]??!0,attributeSync:t[4]??!0,destroy:t[5]??!0}));if(!n)throw new Error("参数错误");const{viewSync:o,attributeSync:s,destroy:a}=i;return this.switchViewer(n,o,s,a)}createCesiumViewer(...t){let n;if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)?n={...t[0],type:"ESCesiumViewer"}:(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(n={container:t[0],options:t[1]??void 0,id:t[2]??void 0,type:"ESCesiumViewer"}),!n)throw new Error("参数错误");return this.createViewer(n)}createUeViewer(...t){let n;if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)?n={...t[0],type:"ESUeViewer"}:(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(typeof t[1]=="string"&&t[1].startsWith("ws")?n={type:"ESUeViewer",container:t[0],id:t[3]??void 0,options:{ws:t[1],esmsg:t[2]??void 0}}:typeof t[1]=="string"&&t[1].startsWith("http")?n={type:"ESUeViewer",container:t[0],id:t[4]??void 0,options:{uri:t[1],app:t[2],token:t[3]??void 0}}:n={type:"ESUeViewer",container:t[0],id:t[3]??void 0,options:{project:t[1],baseUrl:t[2]??void 0}}),!n)throw new Error("参数错误");return this.createViewer(n)}createSceneObject(t,n){return this._sobjm.createSceneObject(t,n)}createSceneObjectFromClass(t,n){return this._sobjm.createSceneObjectFromClass(t,n)}createSceneObjectFromJson(t){return this._sobjm.createSceneObjectFromJson(t)}destroySceneObject(t){const n=this._sobjm.deleteSceneObject(t);return t.destroy(),n}destroyAllSceneObjects(){const t=[...this._sobjm.sceneObjects];for(let n of t)n!=this._player&&n!=this._cmrvm&&this.destroySceneObject(n)}get player(){return this._player}get esPlyarAndPathTime(){return this._esPlyarAndPathTime}get pathAnimationManager(){return this._pathAnimationManager}}D(Io,"getSceneObjById",we.context.getSceneObjectById.bind(we.context)),D(Io,"getEnv",we.context.getEnv.bind(we.context)),D(Io,"setEnv",we.context.setEnv.bind(we.context)),(r=>{r.createDefaultProps=()=>({})})(Io||(Io={})),M.extendClassProps(Io.prototype,Io.createDefaultProps);function kC(){const r=navigator.userAgent;let e="Unknown";/Windows/.test(r)?e="Windows":/Macintosh/.test(r)?e="MacOS":/Linux/.test(r)?e="Linux":/Android/.test(r)?e="Android":/iOS|iPhone|iPad|iPod/.test(r)&&(e="iOS");let t="Unknown";return/x64|x86_64|Win64|WOW64/.test(r)?t="x64":/x86|i686|Win32/.test(r)?t="x86":/arm64|aarch64/.test(r)?t="arm64":/arm/.test(r)&&(t="arm"),{os:e.toLocaleLowerCase(),arch:t.toLocaleLowerCase()}}const GC=Date.now();function s0(r){const{os:e,arch:t}=kC(),n={version:r.version,commitdate:r.date,commitId:r.commitId,runningTime:(Date.now()-GC)/1e3/60|0,date:new Date().toLocaleString(),href:window.location.href,os:e,arch:t},o={method:"GET",headers:new Headers,redirect:"follow"},s=window.encodeURIComponent(JSON.stringify(n));fetch(`https://account.bjxbsj.cn/api/product/record?product=EarthSDKJS&content=${s}`,o).then(a=>a.text()).then(a=>console.log(a)).catch(a=>console.log("error",a))}X.copyright=void 0;try{const r="earthsdk3",e="3.0.8-beta.4",t="2025-06-16T06:42:12.000Z",n="北京西部世界科技有限公司",i="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",o="a5faeca49934cd291c0ac4be79130537ab818aff",a=((Date.now()-1750056132e3)/36e5).toFixed(1),c=`%c🌏 ${r}%c ${e}.${o.slice(0,8)}.${t} (距今${a}个小时)
774
774
  %c${i?i+`
775
775
  `:""}当前网站正在使用${r},此软件版权归${n}所有
776
- `;X.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","c546b340bd43a9828bac1d6f5ed71d75634f83eb")},get info(){return c},get date(){return"2025-06-16T06:22:16.000Z"},get author(){return"suplyang"},get version(){return"3.0.8-beta.3"},get name(){return"earthsdk3"},get commitId(){return"c546b340bd43a9828bac1d6f5ed71d75634f83eb"},print(){console.info(this.info,`
776
+ `;X.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","a5faeca49934cd291c0ac4be79130537ab818aff")},get info(){return c},get date(){return"2025-06-16T06:42:12.000Z"},get author(){return"suplyang"},get version(){return"3.0.8-beta.4"},get name(){return"earthsdk3"},get commitId(){return"a5faeca49934cd291c0ac4be79130537ab818aff"},print(){console.info(this.info,`
777
777
  font-size: 18px;
778
778
  font-weight: 1000;
779
779
  line-height: 1;
package/dist/earthsdk3.js CHANGED
@@ -36604,7 +36604,7 @@ function cp(n) {
36604
36604
  }
36605
36605
  let $l;
36606
36606
  try {
36607
- const n = "earthsdk3", e = "3.0.8-beta.3", t = "2025-06-16T06:22:16.000Z", r = "北京西部世界科技有限公司", i = "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn", s = "c546b340bd43a9828bac1d6f5ed71d75634f83eb", a = ((Date.now() - 1750054936e3) / 36e5).toFixed(1), l = `%c🌏 ${n}%c ${e}.${s.slice(0, 8)}.${t} (距今${a}个小时)
36607
+ const n = "earthsdk3", e = "3.0.8-beta.4", t = "2025-06-16T06:42:12.000Z", r = "北京西部世界科技有限公司", i = "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn", s = "a5faeca49934cd291c0ac4be79130537ab818aff", a = ((Date.now() - 1750056132e3) / 36e5).toFixed(1), l = `%c🌏 ${n}%c ${e}.${s.slice(0, 8)}.${t} (距今${a}个小时)
36608
36608
  %c${i ? i + `
36609
36609
  ` : ""}当前网站正在使用${n},此软件版权归${r}所有
36610
36610
  `;
@@ -36618,7 +36618,7 @@ try {
36618
36618
  },
36619
36619
  // @ts-ignore
36620
36620
  get gituri() {
36621
- return GITURI_ && GITURI_.replace("${commitId}", "c546b340bd43a9828bac1d6f5ed71d75634f83eb");
36621
+ return GITURI_ && GITURI_.replace("${commitId}", "a5faeca49934cd291c0ac4be79130537ab818aff");
36622
36622
  },
36623
36623
  // @ts-ignore
36624
36624
  get info() {
@@ -36626,7 +36626,7 @@ try {
36626
36626
  },
36627
36627
  // @ts-ignore
36628
36628
  get date() {
36629
- return "2025-06-16T06:22:16.000Z";
36629
+ return "2025-06-16T06:42:12.000Z";
36630
36630
  },
36631
36631
  // @ts-ignore
36632
36632
  get author() {
@@ -36634,7 +36634,7 @@ try {
36634
36634
  },
36635
36635
  // @ts-ignore
36636
36636
  get version() {
36637
- return "3.0.8-beta.3";
36637
+ return "3.0.8-beta.4";
36638
36638
  },
36639
36639
  // @ts-ignore
36640
36640
  get name() {
@@ -36642,7 +36642,7 @@ try {
36642
36642
  },
36643
36643
  // @ts-ignore
36644
36644
  get commitId() {
36645
- return "c546b340bd43a9828bac1d6f5ed71d75634f83eb";
36645
+ return "a5faeca49934cd291c0ac4be79130537ab818aff";
36646
36646
  },
36647
36647
  /**
36648
36648
  * 打印版权信息到控制台