earthsdk3-cesium 3.2.0-beta.8 → 3.2.0-beta.9

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.
Files changed (23) hide show
  1. package/dist/earthsdk3-cesium.iife.js +4 -4
  2. package/dist/earthsdk3-cesium.js +212 -214
  3. package/dist/earthsdk3-cesium.umd.cjs +4 -4
  4. package/dist/types/CzmObjects/base/InnerClass/CzmPois/GeoCanvasImagePoi/impl/CanvasImagePoi.d.ts +3 -3
  5. package/dist/types/CzmObjects/base/InnerClass/CzmPois/GeoCanvasImagePoi/impl/CanvasImagePoi.d.ts.map +1 -1
  6. package/dist/types/CzmObjects/base/InnerClass/CzmPois/GeoCanvasImagePoi/index.d.ts +1 -1
  7. package/dist/types/CzmObjects/base/InnerClass/CzmPois/GeoCanvasImagePoi/index.d.ts.map +1 -1
  8. package/dist/types/CzmObjects/general/CzmESImageLabel/index.d.ts.map +1 -1
  9. package/package.json +2 -2
  10. package/dist/types/CzmObjects/base/InnerClass/XbsjGroundPolylinePrimitive/GroundPolylinePrimitive.d.ts +0 -148
  11. package/dist/types/CzmObjects/general/CzmESSignalTransmission/XbsjPolyline/XbsjPolylineGeometry.d.ts +0 -3
  12. package/dist/types/CzmObjects/general/CzmESSignalTransmission/XbsjPolyline/xbsjCreateODLinesPrimitive.d.ts +0 -29
  13. package/dist/types/CzmObjects/general/CzmESVideoFusion/XbsjCameraVideo/XbsjCameraVideo.d.ts +0 -18
  14. package/dist/types/CzmObjects/general/CzmESViewShed/XbsjViewshed/XbsjViewshed.d.ts +0 -16
  15. package/dist/types/ESCesiumViewer/BackGroundImage/BackGroundImage.d.ts +0 -5
  16. package/dist/types/ESCesiumViewer/LocalSkyBox/SkyAtmosphere.d.ts +0 -14
  17. package/dist/types/ESCesiumViewer/initCesiumViewer/GaussianSplattingExtend/GaussianSplatPipelineStage.d.ts +0 -12
  18. package/dist/types/ESCesiumViewer/initCesiumViewer/GaussianSplattingExtend/GaussianSplatTexturePipelineStage.d.ts +0 -11
  19. package/dist/types/ESCesiumViewer/initCesiumViewer/fixGoogleEarth/cesiumFixGoogleEarth.d.ts +0 -1
  20. package/dist/types/__declares/cesium.d.ts +0 -405
  21. package/dist/types/utils/czmUtils/todo/generateCartesianArc/czm/generateCartesianArc.d.ts +0 -8
  22. package/dist/types/utils/generalUtils/geoPolylineToBezierSpline/bezierSpline/index.d.ts +0 -37
  23. package/dist/types/utils/generalUtils/geoPolylineToBezierSpline/bezierSpline/lib/spline.d.ts +0 -62
@@ -532,7 +532,7 @@ void main()
532
532
  out_FragColor = imageColor * u_color;
533
533
  }
534
534
  `,iI={type:"LocalAxisedBoundingBox",data:{min:[0,-1,0],max:[1,0,0]}},rI={depthTest:{enabled:!0},cull:{enabled:!0,face:1029},depthMask:!1,blending:{enabled:!0,equationRgb:32774,equationAlpha:32774,functionSourceRgb:770,functionSourceAlpha:1,functionDestinationRgb:771,functionDestinationAlpha:771}},oI={u_image:{type:"image",uri:""},u_color:[1,1,0,1]},aI={position:{typedArray:new Float32Array([0,0,0,0,-1,0,1,-1,0,0,0,0,1,-1,0,1,0,0]),componentsPerAttribute:3},normal:{typedArray:new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1]),componentsPerAttribute:3},textureCoordinates:{typedArray:new Float32Array([0,1,0,0,1,0,0,1,1,0,1,1]),componentsPerAttribute:2}},sI=new Uint16Array([0,1,2,3,4,5]),lI={position:{typedArray:new Float32Array([0,0,0,0,-1,0,1,-1,0,0,0,0,1,-1,0,1,0,0,0,0,0,0,-1,0,1,-1,0,0,0,0,1,-1,0,1,0,0]),componentsPerAttribute:3},normal:{typedArray:new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1]),componentsPerAttribute:3},textureCoordinates:{typedArray:new Float32Array([0,1,0,0,1,0,0,1,1,0,1,1,1,1,1,0,0,0,1,1,0,0,0,1]),componentsPerAttribute:2}},uI=new Uint16Array([0,1,2,3,4,5,8,7,6,11,10,9]);function cI(t){const n={};for(let e of Object.keys(t)){const{typedArray:i,componentsPerAttribute:o,usage:r,normalize:s}=t[e];n[e]={typedArray:{type:i.constructor.name,array:[...i.values()]},componentsPerAttribute:o,usage:r,normalize:s}}return n}function hI(t){const n={};for(let e of Object.keys(t)){const{typedArray:{type:i,array:o},componentsPerAttribute:r,usage:s,normalize:a}=t[e];n[e]={typedArray:new global[i](o),componentsPerAttribute:r,usage:s,normalize:a}}return n}function AI(t){return{type:t.constructor.name,array:[...t.values()]}}function fI(t){const{type:n,array:e}=t;return new global[n](e)}function dI(t){t.length%3===0&&console.warn("当前传入的索引不是3的倍数,可能不是三角片的索引!");const n=t.length/3|0,e=new Array(n*6);for(let i=0;i<n;++i)e[i*6+0]=t[i*3+0],e[i*6+1]=t[i*3+1],e[i*6+2]=t[i*3+2],e[i*6+3]=t[i*3+1],e[i*6+4]=t[i*3+2],e[i*6+5]=t[i*3+0];return e}class pI extends p.Destroyable{constructor(){super(...arguments);L(this,"_show",this.disposeVar(p.react(!0)))}get show(){return this._show.value}set show(e){this._show.value=e}get showChanged(){return this._show.changed}}function mI(t){if(t instanceof Float32Array)return C.ComponentDatatype.FLOAT;if(t instanceof Int8Array)return C.ComponentDatatype.BYTE;if(t instanceof Uint8Array)return C.ComponentDatatype.UNSIGNED_BYTE;if(t instanceof Int16Array)return C.ComponentDatatype.SHORT;if(t instanceof Uint16Array)return C.ComponentDatatype.UNSIGNED_SHORT;if(t instanceof Int32Array)return C.ComponentDatatype.INT;if(t instanceof Uint32Array)return C.ComponentDatatype.UNSIGNED_INT;throw t instanceof Float64Array?(console.error("暂不支持Float64Array"),new Error("暂不支持Float64Array")):(console.error("不支持的TypedArray!"),new Error("不支持的TypedArray!"))}function gI(t){if(t instanceof Uint8Array)return C.IndexDatatype.UNSIGNED_BYTE;if(t instanceof Uint16Array)return C.IndexDatatype.UNSIGNED_SHORT;if(t instanceof Uint32Array)return C.IndexDatatype.UNSIGNED_INT;throw console.error("不支持的TypedArray!"),new Error("不支持的TypedArray!")}function yI(t,n){if(t===n)return!0;const e=Object.keys(t),i=Object.keys(n);return!(e.length!==i.length||e.some((o,r)=>i[r]!==o)||e.some((o,r)=>t[o]!==n[o]))}function vI(t,n){return t.componentDatatype!==n.componentDatatype||t.componentsPerAttribute!==n.componentsPerAttribute||t.index!==n.index||t.normalize!==n.normalize?!1:t.vertexBuffer===n.vertexBuffer}function wI(t,n){if(t===n)return!0;if(t.usage!==n.usage||t.componentsPerAttribute!==n.componentsPerAttribute||t.normalize!==n.normalize)return!1;if(t.typedArray===n.typedArray)return!0;if(t.typedArray.byteLength!==n.typedArray.byteLength)return!1;const e=n.typedArray;return!!t.typedArray.every((i,o)=>i===e[o])}class Js extends pI{constructor(e,i){super();L(this,"_updateEvent",this.disposeVar(new p.Event));L(this,"_drawCommand");L(this,"_ESSceneObjectID",this.disposeVar(p.react(p.createGuid())));this._scene=e,i&&(this.ESSceneObjectID=i);const o=this._scene,{context:r}=o;let s=!1,a=!1,l=!1,c=!1,h=!1,u,A,f,d,g,v,y;this.dispose(()=>{d&&(d.destroy(),d=void 0),v&&(v.destroy(),v=void 0),g&&(g.destroy(),g=void 0),y&&(y=void 0,this._drawCommand=y)}),this.dispose(this.passChanged.disposableOn(()=>y&&(y.pass=this.pass))),this.dispose(this.attributesChanged.disposableOn(()=>s=!0)),this.dispose(this.uniformMapChanged.disposableOn(()=>y&&(y.uniformMap=this.uniformMap))),this.dispose(this.modelMatrixChanged.disposableOn(()=>y&&(y.modelMatrix=this.modelMatrix))),this.dispose(this.renderStateChanged.disposableOn(()=>{y&&(y=void 0,h=!0)})),this.dispose(this.primitiveTypeChanged.disposableOn(()=>y&&(y.primitiveType=this.primitiveType))),this.dispose(this.indexTypedArrayChanged.disposableOn(()=>a=!0)),this.dispose(this.vertexShaderSourceChanged.disposableOn(()=>c=!0)),this.dispose(this.fragmentShaderSourceChanged.disposableOn(()=>c=!0)),this.dispose(this.occludeChanged.disposableOn(()=>y&&(y.occlude=this.occlude))),this.dispose(this.countChanged.disposableOn(()=>y&&(y.count=this.count))),this.dispose(this.offsetChanged.disposableOn(()=>y&&(y.offset=this.offset))),this.dispose(this.instanceCountChanged.disposableOn(()=>y&&(y.instanceCount=this.instanceCount))),this.dispose(this.castShadowsChanged.disposableOn(()=>y&&(y.castShadows=this.castShadows))),this.dispose(this.receiveShadowsChanged.disposableOn(()=>y&&(y.receiveShadows=this.receiveShadows))),this.dispose(this.executeInClosestFrustumChanged.disposableOn(()=>y&&(y.executeInClosestFrustum=this.executeInClosestFrustum))),this.dispose(this.debugShowBoundingVolumeChanged.disposableOn(()=>y&&(y.debugShowBoundingVolume=this.debugShowBoundingVolume))),this.dispose(this.debugOverlappingFrustumsChanged.disposableOn(()=>y&&(y.debugOverlappingFrustums=this.debugOverlappingFrustums))),this.dispose(this.pickOnlyChanged.disposableOn(()=>y&&(y.pickOnly=this.pickOnly))),this.dispose(this.depthForTranslucentClassificationChanged.disposableOn(()=>y&&(y.depthForTranslucentClassification=this.depthForTranslucentClassification)));const m=()=>{y&&(y.boundingVolume?y.cull=this.cull??!0:y.cull=!1)};m(),this.dispose(this.cullChanged.disposableOn(m)),this.dispose(this.boundingVolumeChanged.disposableOn(()=>{y&&(y.boundingVolume=this.boundingVolume),m()}));const w=this.disposeVar(new p.ObjResettingWithEvent(this.allowPickingChanged,()=>r.createPickId({primitive:this})));this.dispose(this.allowPickingChanged.disposableOn(()=>{c=!0,y&&(y.pickId=this.allowPicking?"xbsjPickColor220823":void 0)}));const _=E=>{const{attributes:T,indexTypedArray:P}=this;if(s&&T){s=!1;const F={},D={},B=[];let S=0;for(let[I,b]of Object.entries(T)){const x=S++,{typedArray:U,componentsPerAttribute:k,usage:M=C.BufferUsage.STATIC_DRAW,normalize:R=!1}=b;if(!U){console.warn(`CzmCustomPrimitive attribute[${I}] typedeArray is undefined!`);continue}F[I]=x;let O;do{if(A&&A[I]){const z=p.getExtProp(A[I],"_originAttribute");if(z&&wI(z,b)){O=A[I],delete A[I],D[I]=O;break}else if(z&&z.typedArray!==b.typedArray&&z.typedArray.byteLength===b.typedArray.byteLength&&z.usage===b.usage){O=A[I],O.copyFromArrayView(b.typedArray),delete A[I],D[I]=O,p.setExtProp(D[I],"_originAttribute",b);break}}O=C.Buffer.createVertexBuffer({context:r,typedArray:U,usage:M}),O.vertexArrayDestroyable=!1,D[I]=O,p.setExtProp(D[I],"_originAttribute",b)}while(!1);B.push({index:x,vertexBuffer:O,componentsPerAttribute:k,normalize:R,componentDatatype:mI(U)})}if(A)for(let I of Object.values(A))I.destroy();do{if(!f||f.length!==B.length){l=!0;break}if(f.some((I,b)=>!vI(I,B[b]))){l=!0;break}}while(!1);A=D,f=B,F&&(!u||!yI(F,u))&&(u=F,c=!0,l=!0)}if(a&&(a=!1,d&&(d.destroy(),d=void 0),d=P?C.Buffer.createIndexBuffer({context:r,typedArray:P,usage:C.BufferUsage.STATIC_DRAW,indexDatatype:gI(P)}):void 0,d&&(d.vertexArrayDestroyable=!1),l=!0),l&&(l=!1,g&&(g.destroy(),g=void 0),f&&u&&(g=new C.VertexArray({context:r,attributes:f,attributeLocations:u,bufferUsage:C.BufferUsage.STATIC_DRAW,indexBuffer:d}),y?y.vertexArray=g:h=!0)),c){c=!1;const F=w.obj;let D;if(F){const{red:B,green:S,blue:I,alpha:b}=F.color;D=`const vec4 xbsjPickColor220823 = ${`vec4(${B.toFixed(6)}, ${S.toFixed(6)}, ${I.toFixed(6)}, ${b.toFixed(6)})`};
535
- `}else D="";u&&(v=C.ShaderProgram.fromCache({context:r,vertexShaderSource:new C.ShaderSource({sources:[this.vertexShaderSource]}),fragmentShaderSource:new C.ShaderSource({sources:[D,this.fragmentShaderSource]}),attributeLocations:u}),y?y.shaderProgram=v:h=!0)}h&&(h=!1,y||g&&v&&(y=new C.DrawCommand({vertexArray:g,primitiveType:this.primitiveType,renderState:C.RenderState.fromCache(this.renderState),shaderProgram:v,owner:this,uniformMap:this.uniformMap,pass:this.pass,modelMatrix:this.modelMatrix,boundingVolume:this.boundingVolume,cull:this.cull,occlude:this.occlude,count:this.count,offset:this.offset,instanceCount:this.instanceCount,castShadows:this.castShadows,receiveShadows:this.receiveShadows,pickId:this.allowPicking?"xbsjPickColor220823":void 0,pickOnly:this.pickOnly,debugShowBoundingVolume:this.debugShowBoundingVolume,depthForTranslucentClassification:this.depthForTranslucentClassification}),this._drawCommand=y,y.debugOverlappingFrustums=this.debugOverlappingFrustums,y.executeInClosestFrustum=this.executeInClosestFrustum)),y&&E.commandList.push(y)};this.dispose(this._updateEvent.disposableOn(_))}get drawCommand(){return this._drawCommand}get ESSceneObjectID(){return this._ESSceneObjectID.value}set ESSceneObjectID(e){this._ESSceneObjectID.value=e}get ESSceneObjectIDChanged(){return this._ESSceneObjectID.changed}update(e){this.show&&this._updateEvent.emit(e)}}(t=>{t.createDefaultProps=()=>({modelMatrix:p.react(new C.Matrix4,C.Matrix4.equals,C.Matrix4.clone),boundingVolume:void 0,pass:C.Pass.OPAQUE,attributes:{},cull:!0,occlude:!0,count:void 0,offset:0,indexTypedArray:void 0,instanceCount:0,vertexShaderSource:"",fragmentShaderSource:"",castShadows:!1,receiveShadows:!1,uniformMap:{},renderState:{},primitiveType:C.PrimitiveType.TRIANGLES,executeInClosestFrustum:!1,owner:void 0,debugShowBoundingVolume:!1,debugOverlappingFrustums:0,allowPicking:void 0,pickOnly:!1,depthForTranslucentClassification:!1})})(Js||(Js={})),p.extendClassProps(Js.prototype,Js.createDefaultProps);function bI(t){let n,e;if(t instanceof C.BoundingSphere)e=Ue(t.center),n=t.radius*5;else if(t instanceof C.BoundingRectangle){const{x:i,y:o,width:r,height:s}=t,a=C.Rectangle.fromRadians(i,o,i+r,o+s),l=C.BoundingSphere.fromRectangle2D(a);e=Ue(l.center),n=l.radius*5}else if(t instanceof C.OrientedBoundingBox){e=Ue(t.center);const i=t.halfAxes,o=p.Vector.magnitude([i[0],i[1],i[2]]),r=p.Vector.magnitude([i[3],i[4],i[5]]),s=p.Vector.magnitude([i[6],i[7],i[8]]);n=Math.max(o,r,s)*5}if(!(!e||n===void 0))return[e,n]}const yt=class yt extends p.Destroyable{constructor(e,i){super();L(this,"_attributes",this.disposeVar(p.react(void 0)));L(this,"_indexTypedArray",this.disposeVar(p.react(void 0)));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_sceneScaleEvent",this.disposeVar(new p.Event));L(this,"_nativePrimitive");L(this,"_lastCzmPickResult");L(this,"_czmViewVisibleDistanceRangeControl");L(this,"_id",this.disposeVar(p.react(p.createGuid())));this._czmViewer=e,i&&(this.id=i),this._czmViewVisibleDistanceRangeControl=this.disposeVar(new Ao(this.czmViewer,[this,"viewDistanceRange"],[this,"position"]));const o=e.viewer;if(!o)return;this.dispose(p.track([this._czmViewVisibleDistanceRangeControl,"debug"],[this,"viewDistanceDebug"]));const{scene:r}=o,{context:s}=r,a=o.scene.primitives.add(new Js(o.scene,i));this._nativePrimitive=a,this.dispose(()=>o.scene.primitives.remove(a));{const h=this.disposeVar(p.createNextAnimateFrameEvent(this.allowPickingDepthChanged));this.disposeVar(new p.ObjResettingWithEvent(h,()=>{if(!this.allowPickingDepth)return this.allowPickingDepth?void 0:new Ye.ObjectsToExcludeWrapper(this.czmViewer,[a])}))}const l=p.react(void 0);{const h=()=>{let u;do{if(!this.position||!this.pixelSize)break;const A=C.Cartesian3.fromDegrees(...this.position);if(!A||(u=Di(o.scene,A,this.pixelSize),u===void 0))break;this.maximumScale!==void 0&&u>this.maximumScale&&(u=this.maximumScale),this.minimumScale!==void 0&&u<this.minimumScale&&(u=this.minimumScale)}while(!1);l.value=u};h(),this.dispose(o.scene.preUpdate.addEventListener(h))}{const h=()=>{this.sceneScaleEvent.emit(l.value,this.czmViewer)};h(),this.dispose(l.changed.disposableOn(h))}this.disposeVar(new v0(e,[this,"showSceneScale"],[this,"position"],l));{const h=()=>{a.show=(this.show??!0)&&this.visibleAlpha>0};h(),this.dispose(this.showChanged.disposableOn(h)),this.dispose(this.visibleAlphaChanged.disposableOn(h))}const c=this.disposeVar(p.react(void 0));{const h=()=>{const A=at({localScale:this.localScale,initialRotation:"yForwardzUp",localRotation:this.localRotation,localPosition:this.localPosition,localModelMatrix:this.localModelMatrix,sceneScaleFromPixelSize:l.value,scale:this.scale,rotation:this.rotation,position:this.position,modelMatrix:this.modelMatrix});if(!A){console.warn("computeCzmModelMatrix error!");return}c.value=A,a.modelMatrix=A};h();let u=!0;this.dispose(this.showChanged.disposableOn(()=>u=!0)),this.dispose(this.localPositionChanged.disposableOn(()=>u=!0)),this.dispose(this.localRotationChanged.disposableOn(()=>u=!0)),this.dispose(this.localScaleChanged.disposableOn(()=>u=!0)),this.dispose(this.localModelMatrixChanged.disposableOn(()=>u=!0)),this.dispose(this.positionChanged.disposableOn(()=>u=!0)),this.dispose(this.rotationChanged.disposableOn(()=>u=!0)),this.dispose(this.scaleChanged.disposableOn(()=>u=!0)),this.dispose(this.modelMatrixChanged.disposableOn(()=>u=!0)),this.dispose(l.changed.disposableOn(()=>u=!0)),this.dispose(o.scene.preUpdate.addEventListener(()=>{u&&(u&&(u=!1),h())}))}{const h=()=>{const{boundingVolume:f=yt.defaultBoundingVolume}=this;if(!f){a.boundingVolume=void 0;return}if(f.type==="BoundingRectangle"){a.boundingVolume=C.BoundingRectangle.fromRectangle(C.Rectangle.fromDegrees(...f.data));return}if(f.type==="BoundingSphere"){a.boundingVolume=new C.BoundingSphere(C.Cartesian3.fromDegrees(...f.data.center),f.data.radius);return}},u=()=>{const{boundingVolume:f=yt.defaultBoundingVolume}=this;if(!f){a.boundingVolume=void 0;return}if(f.type==="LocalBoundingSphere"){const d=c.value??C.Matrix4.IDENTITY,g=C.Matrix4.multiplyByPoint(d,C.Cartesian3.fromArray(f.data.center),new C.Cartesian3);a.boundingVolume=new C.BoundingSphere(g,f.data.radius);return}if(f.type==="LocalAxisedBoundingBox"){const d=c.value??C.Matrix4.IDENTITY,{min:g,max:v}=f.data,y=new C.Cartesian3(.5*(g[0]+v[0]),.5*(g[1]+v[1]),.5*(g[2]+v[2])),m=C.Matrix4.multiplyByPoint(d,y,y),w=new C.Cartesian3(.5*(v[0]-g[0]),.5*(v[1]-g[1]),.5*(v[2]-g[2]));w.x=w.x===0?1:w.x,w.y=w.y===0?1:w.y,w.z=w.z===0?1:w.z;const _=new C.Matrix3(w.x,0,0,0,w.y,0,0,0,w.z),E=C.Matrix4.getMatrix3(d,new C.Matrix3),T=C.Matrix3.multiply(E,_,E);a.boundingVolume=new C.OrientedBoundingBox(m,T);return}},A=()=>{h(),u()};A(),this.dispose(this.boundingVolumeChanged.disposableOn(A)),this.dispose(c.changed.disposableOn(u))}this.dispose(p.track([a,"allowPicking"],[this,"allowPicking"]));{const h=()=>{a.indexTypedArray=this.indexTypedArray??yt.defaultIndexTypedArray};h(),this.dispose(this.indexTypedArrayChanged.disposableOn(h))}{const h=()=>{a.attributes=this.attributes??yt.defaultAttribute};h(),this.dispose(this.attributesChanged.disposableOn(h))}{const h=()=>{a.renderState=this.renderState??yt.defaultRenderState};h(),this.dispose(this.renderStateChanged.disposableOn(h))}{const h=()=>{a.vertexShaderSource=this.vertexShaderSource??yt.defaultVertexShaderSource};h(),this.dispose(this.vertexShaderSourceChanged.disposableOn(h))}{const h=()=>{a.fragmentShaderSource=this.fragmentShaderSource??yt.defaultFragmentShaderSource};h(),this.dispose(this.fragmentShaderSourceChanged.disposableOn(h))}{const h=()=>a.cull=this.cull??!0;h(),this.dispose(this.cullChanged.disposableOn(h))}{const h=()=>a.pass=C.Pass[this.pass??"TRANSLUCENT"];h(),this.dispose(this.passChanged.disposableOn(h))}{const h=()=>a.primitiveType=C.PrimitiveType[this.primitiveType??"TRIANGLES"];h(),this.dispose(this.primitiveTypeChanged.disposableOn(h))}{const h=()=>a.occlude=this.occlude??!0,u=()=>a.count=this.count,A=()=>a.offset=this.offset??0,f=()=>a.instanceCount=this.instanceCount??0,d=()=>a.castShadows=this.castShadows??!1,g=()=>a.receiveShadows=this.receiveShadows??!1;h(),u(),A(),f(),d(),g(),this.dispose(this.occludeChanged.disposableOn(h)),this.dispose(this.countChanged.disposableOn(u)),this.dispose(this.offsetChanged.disposableOn(A)),this.dispose(this.instanceCountChanged.disposableOn(f)),this.dispose(this.castShadowsChanged.disposableOn(d)),this.dispose(this.receiveShadowsChanged.disposableOn(g))}{const h=()=>a.executeInClosestFrustum=this.executeInClosestFrustum??!1,u=()=>a.debugShowBoundingVolume=this.debugShowBoundingVolume??!1,A=()=>a.debugOverlappingFrustums=this.debugOverlappingFrustums??0,f=()=>a.pickOnly=this.pickOnly??!1,d=()=>a.depthForTranslucentClassification=this.depthForTranslucentClassification??!1;h(),u(),A(),f(),d(),this.dispose(this.executeInClosestFrustumChanged.disposableOn(h)),this.dispose(this.debugShowBoundingVolumeChanged.disposableOn(u)),this.dispose(this.debugOverlappingFrustumsChanged.disposableOn(A)),this.dispose(this.pickOnlyChanged.disposableOn(f)),this.dispose(this.depthForTranslucentClassificationChanged.disposableOn(d))}{const h=new Map;this.dispose(()=>{for(let g of h.values())g&&g.destroy();h.clear()});const u=new Map;this.dispose(()=>{for(let g of u.values())g.destroy();u.clear()});let A;const f=()=>{if(A){for(let g of Object.values(A))g.destroy();A=void 0}};this.dispose(f);const d=()=>{const g={},v=this.uniformMap??yt.defaultUniformMap;f(),A={};let y=[];for(let m of Object.keys(v)){const w=v[m];if(w==null){console.error(`updateUniformMap [${m}] error: !uniformValue`);continue}if(Array.isArray(w)){const _=w.length,T=(_===2?C.Cartesian2:_===3?C.Cartesian3:C.Cartesian4).fromArray(w);g[m]=()=>T}else if(typeof w=="number")g[m]=()=>w;else if("type"in w&&w.type==="image"){const _=new At(e);_.enabled=!0,_.uri=w.uri,_.uriType="img",A[m]=_,g[m]=()=>{do{if(!_.texture)break;return _.texture}while(!1);return s.defaultTexture}}else"type"in w&&w.type==="texture"&&(w.id||console.warn(`uniform变量设置错误:${m} 的配置中id未设置或者无效!id为${w.id}`),g[m]=()=>{do{const _=window.czmTexture[w.id];if(!_)break;return _.texture}while(!1);return s.defaultTexture})}g.u_xe2VisibleAlpha=()=>this.visibleAlpha,a.uniformMap=g;for(let m of h.keys())if(!y.includes(m)){const w=h.get(m);w==null||w.destroy(),h.delete(m)}for(let m of u.keys())if(!y.includes(m)){const w=u.get(m);w==null||w.destroy(),u.delete(m)}};d(),this.dispose(this.uniformMapChanged.disposableOn(d))}this.dispose(this.flyToEvent.disposableOn(h=>{if(!a.boundingVolume){console.warn("CzmCustomPrimitive没有设置boundingVolume属性,无法飞入(flyTo)!");return}const u=bI(a.boundingVolume);if(!u){console.warn("无法计算viewDistance!");return}const[A,f]=u;Be(o,A,f,void 0,h)}))}get attributesJson(){return this.attributes&&cI(this.attributes)}set attributesJson(e){const i=JSON.stringify(this.attributesJson),o=JSON.stringify(e);i!==o&&(this.attributes=e&&hI(e))}get attributesJsonChanged(){return this.attributesChanged}get indexTypedArrayJson(){return this.indexTypedArray&&AI(this.indexTypedArray)}set indexTypedArrayJson(e){const i=JSON.stringify(this.indexTypedArrayJson),o=JSON.stringify(e);i!==o&&(this.indexTypedArray=e&&fI(e))}get indexTypedArrayJsonChanged(){return this.indexTypedArrayChanged}get attributes(){return this._attributes.value}set attributes(e){this._attributes.value=e}get attributesChanged(){return this._attributes.changed}get indexTypedArray(){return this._indexTypedArray.value}set indexTypedArray(e){this._indexTypedArray.value=e}get indexTypedArrayChanged(){return this._indexTypedArray.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get sceneScaleEvent(){return this._sceneScaleEvent}get czmViewer(){return this._czmViewer}get nativePrimitive(){return this._nativePrimitive}get czmViewerVisibleDistanceRangeControl(){return this._czmViewVisibleDistanceRangeControl}get visibleAlpha(){return this._czmViewVisibleDistanceRangeControl.visibleAlpha}get visibleAlphaChanged(){return this._czmViewVisibleDistanceRangeControl.visibleAlphaChanged}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}setUniformMap(e){if(Object.entries(e).some(([o,r])=>(console.warn(`setUniformMap error: key: ${o} value: ${r}`),r===null)))return;const i={...this.uniformMap??{},...e};this.uniformMap=i}setLocalBoundingSphere(e,i=[0,0,0]){if(!Number.isFinite(e)||e<=0){console.warn(`!Number.isFinite(radius) || radius <= 0 radius: ${e}`);return}this.boundingVolume={type:"LocalBoundingSphere",data:{center:i,radius:e}}}setLocalAxisedBoundingBox(e,i){if(e.some(o=>!Number.isFinite(o))||i.some(o=>!Number.isFinite(o))){console.warn(`setLocalAxisedBoundingBox error, min: ${e.toString()}, max: ${i.toString()}`);return}this.boundingVolume={type:"LocalAxisedBoundingBox",data:{min:e,max:i}}}computeLocalAxisedBoundingBoxFromAttribute(e="a_position"){if(!this.attributes||!this.attributes[e]){console.warn(`attributes[${e}]不存在!无法获取!`);return}const i=this.attributes[e];if(!("typedArray"in i)||!(i.typedArray instanceof Float32Array)){console.warn(`!('typedArray' in posAttribute) || !(posAttribute.typedArray instanceof Float32Array) attributeName: ${e}`);return}if(!("componentsPerAttribute"in i)||i.componentsPerAttribute!==3){console.warn(`!('componentsPerAttribute' in posAttribute) || posAttribute.componentsPerAttribute !== 3 attributeName: ${e}`);return}const{min:o,max:r}=yt.getMinMaxPosition(i.typedArray);if(!o.some(s=>!Number.isFinite(s)||r.some(a=>!Number.isFinite(a))))return{min:o,max:r}}};L(yt,"defaultRenderState",rI),L(yt,"defaultVertexShaderSource",tI),L(yt,"defaultFragmentShaderSource",nI),L(yt,"defaultUniformMap",oI),L(yt,"defaultBoundingVolume",iI),L(yt,"defaultAttribute",aI),L(yt,"defaultIndexTypedArray",sI),L(yt,"defaultDsAttribute",lI),L(yt,"defaultDsIndexTypedArray",uI),L(yt,"triangleIndicesToLine",dI),L(yt,"defaults",{position:[116.39,39.9,0],rotation:[0,0,0],scale:[1,1,1],modelMatrix:[-.8957893500750183,-.4444788412198901,0,0,.28511078894078473,-.5746037485691958,.7671651518152995,0,-.3409886777031455,.68721837274483,.6414496315691579,0,-2.1778739967047274e6,4389222053178148e-9,4.0694736755001387e6,1],viewDistanceRange:[1e3,1e4,3e4,6e4]}),L(yt,"getMinMaxPosition",p.getMinMaxPosition);let st=yt;(t=>{t.createDefaultProps=()=>({show:void 0,allowPicking:!1,allowPickingDepth:!0,position:p.reactArrayWithUndefined(void 0),rotation:p.reactArrayWithUndefined(void 0),scale:p.reactArrayWithUndefined(void 0),maximumScale:void 0,minimumScale:void 0,pixelSize:void 0,showSceneScale:void 0,modelMatrix:p.reactArrayWithUndefined(void 0),cull:p.react(void 0),boundingVolume:p.reactJson(void 0),renderState:p.reactJson(void 0),primitiveType:void 0,pass:void 0,vertexShaderSource:void 0,fragmentShaderSource:void 0,uniformMap:p.reactJson(void 0),localPosition:p.reactArrayWithUndefined(void 0),localRotation:p.reactArrayWithUndefined(void 0),localScale:p.reactArrayWithUndefined(void 0),localModelMatrix:p.reactArrayWithUndefined(void 0),occlude:void 0,count:void 0,offset:void 0,instanceCount:void 0,castShadows:void 0,receiveShadows:void 0,executeInClosestFrustum:void 0,debugShowBoundingVolume:void 0,debugOverlappingFrustums:void 0,pickOnly:void 0,depthForTranslucentClassification:void 0,viewDistanceRange:p.reactArrayWithUndefined(void 0),viewDistanceDebug:!1})})(st||(st={})),p.extendClassProps(st.prototype,st.createDefaultProps);class _I extends p.PosFloatDiv{constructor(){super(),this.contentDiv.style.backgroundColor="rgba(0, 0, 0, 0.8)",this.contentDiv.style.borderRadius="3px",this.contentDiv.style.color="rgb(255, 255, 255)",this.contentDiv.style.padding="1px 5px 1px 5px",this.contentDiv.style.fontSize="12px",this.contentDiv.style.whiteSpace="nowrap",this.contentDiv.innerText="未定义光标信息!",this.originRatioX=0,this.originRatioY=0,this.originOffsetX=-16}}class CI extends p.Destroyable{constructor(e,i){super();L(this,"_cursorDiv");L(this,"_pointerOut",this.disposeVar(p.react(!0)));L(this,"_show",this.disposeVar(p.react(!0)));this._cursorDiv=new p.DivPoi(i,e),this.dispose(()=>this._cursorDiv.destroy());const o=a=>{const[l,c]=p.getDomEventCurrentTargetPos(a);this._cursorDiv.floatDiv.winPos=[l,c],this._pointerOut.value=!1};e.addEventListener("pointermove",o),this.dispose(()=>e.removeEventListener("pointermove",o));const r=a=>{this._pointerOut.value=!0};e.addEventListener("pointerout",r),this.dispose(()=>e.removeEventListener("pointerout",r)),e.addEventListener("pointerleave",r),this.dispose(()=>e.removeEventListener("pointerleave",r)),e.addEventListener("pointercancel",r),this.dispose(()=>e.removeEventListener("pointercancel",r));const s=()=>{this._cursorDiv.show=this.show&&!this._pointerOut.value};s(),this.dispose(this.showChanged.disposableOn(s)),this.dispose(this._pointerOut.changed.disposableOn(s))}set show(e){this._show.value=e}get show(){return this._show.value}get showChanged(){return this._show.changed}reset(){this._pointerOut.value=!0}get cursorDiv(){return this._cursorDiv}set text(e){this._cursorDiv.floatDiv.contentDiv.innerText=e}get text(){return this._cursorDiv.floatDiv.contentDiv.innerText}}class xI extends p.Destroyable{constructor(e,i){super();L(this,"_show",this.disposeVar(p.react(!0)));L(this,"_winPosFromCartesian");L(this,"_near",this.disposeVar(p.react(0)));L(this,"_far",this.disposeVar(p.react(Number.POSITIVE_INFINITY)));L(this,"_actualShow",this.disposeVar(p.react(!1)));this._czmPoisContext=e;const{viewer:o,cameraChanged:r}=this._czmPoisContext;this._winPosFromCartesian=i||this.disposeVar(new eh(o,!0,r));let s=0,a=Number.POSITIVE_INFINITY;this.dispose(this._near.changed.disposableOn(c=>s=c*c)),this.dispose(this._far.changed.disposableOn(c=>a=c*c));const l=this.disposeVar(p.createNextMicroTaskEvent(this._near.changed,this._far.changed,this._show.changed,this._winPosFromCartesian.changed,r.changed));this.dispose(l.disposableOn(()=>{if(!this.show){this._actualShow.value=!1;return}const c=C.Cartesian3.distanceSquared(o.camera.positionWC,this._winPosFromCartesian.cartesian),h=c>=s&&c<=a;this._actualShow.value=h&&this._winPosFromCartesian.winPosValid&&!this._czmPoisContext.isPointOccludedByEarth(this._winPosFromCartesian.cartesian)}))}get actualShowChanged(){return this._actualShow.changed}get actualShow(){return this._actualShow.value}set cartesian(e){this._winPosFromCartesian.cartesian=e}get cartesian(){return this._winPosFromCartesian.cartesian}get winPosFromCartesian(){return this._winPosFromCartesian}set show(e){this._show.value=e}get show(){return this._show.value}set near(e){this._near.value=e}get near(){return this._near.value}set far(e){this._far.value=e}get far(){return this._far.value}}class dd extends xI{constructor(e,i,o){super(i,o);L(this,"_canvasPoi");L(this,"_zOrderChanged");L(this,"_zOrder");L(this,"depth",0);const{canvasPrimitivesContext:r}=this._czmPoisContext;this._canvasPoi=this.disposeVar(new e(r));const s=()=>{if(this.actualShow&&this.winPosFromCartesian.winPosValid){const{left:a,top:l,depth:c}=this.winPosFromCartesian.winPos;this._canvasPoi.winPos=[a,l],this.depth=c,this._canvasPoi.depth=this.zOrder??c,this._canvasPoi.show=!0}else this._canvasPoi.show=!1};this.d(this.zOrderChanged.don(()=>{s()})),this.dispose(this.winPosFromCartesian.changed.disposableOn(()=>{s()})),this.dispose(this.actualShowChanged.disposableOn(a=>{this._canvasPoi.show=a,s()}))}get canvasPoi(){return this._canvasPoi}set zOrder(e){this._zOrder!==e&&(this._zOrder=e,this.zOrderChanged.emit())}get zOrder(){return this._zOrder}get zOrderChanged(){return this._zOrderChanged||(this._zOrderChanged=new p.Event),this._zOrderChanged}}class pd extends p.Destroyable{constructor(e,i,o){super();L(this,"_divPoi");L(this,"_show",!0);L(this,"_occludedByEarth",!0);L(this,"_winPosFromCartesian");L(this,"_zOrderChanged");L(this,"_zOrder");L(this,"depth",0);this._czmPoisContext=i;const{viewer:r,divContainer:s,cameraChanged:a}=this._czmPoisContext;this._winPosFromCartesian=o||this.disposeVar(new eh(r,!0,a)),this._divPoi=new p.DivPoi(e,s),this.dispose(()=>this._divPoi.destroy()),this.dispose(this._winPosFromCartesian.changed.disposableOn((l,c)=>{this._occludedByEarth=!l||this._czmPoisContext.isPointOccludedByEarth(this._winPosFromCartesian.cartesian);const{left:h,top:u,depth:A}=c,{floatDiv:f}=this._divPoi;f.winPos=[h,u],this.depth=Math.round((1-A)*1e11),f.element.style.zIndex=`${this.zOrder||this.depth}`,this._updateShow()})),this.d(this.zOrderChanged.don(()=>{const{floatDiv:l}=this._divPoi;l.element.style.zIndex=`${this.zOrder||this.depth}`,this._updateShow()}))}get divPoi(){return this._divPoi}_updateShow(){this._divPoi.show=this._show&&!this._occludedByEarth&&this._winPosFromCartesian.winPosValid}set cartesian(e){this._winPosFromCartesian.cartesian=e}get cartesian(){return this._winPosFromCartesian.cartesian}get winPosFromCartesian(){return this._winPosFromCartesian}set show(e){this._show!==e&&(this._show=e,this._updateShow())}get show(){return this._show}set zOrder(e){this._zOrder!==e&&(this._zOrder=e,this.zOrderChanged.emit())}get zOrder(){return this._zOrder}get zOrderChanged(){return this._zOrderChanged||(this._zOrderChanged=new p.Event),this._zOrderChanged}}class SI extends p.Destroyable{constructor(e,i,o,r){super();L(this,"_czmCanvasPoi");L(this,"_czmDivPoi");L(this,"_show",!0);L(this,"_winPosFromCartesian");L(this,"_switchTransition");L(this,"_status","Canvas");L(this,"_statusChanged");this._czmPoisContext=o;const{viewer:s,cameraChanged:a}=this._czmPoisContext;this._winPosFromCartesian=r||this.disposeVar(new eh(s,!0,a)),this._czmCanvasPoi=new dd(e,this._czmPoisContext,this._winPosFromCartesian),this.dispose(()=>this._czmCanvasPoi.destroy()),this._czmDivPoi=new pd(i,this._czmPoisContext,this._winPosFromCartesian),this.dispose(()=>this._czmDivPoi.destroy()),this._switchTransition=new p.Transition(300),this.dispose(this._switchTransition.currentChanged.disposableOn((l,c)=>{this._updateShow(),this._czmCanvasPoi.canvasPoi.opacity=1-c,this._czmDivPoi.divPoi.floatDiv.opacity=c})),this._updateShow()}_updateShow(){this._czmCanvasPoi.show=this._show&&this._switchTransition.current<1,this._czmDivPoi.show=this._show&&this._switchTransition.current>0}set show(e){this._show!==e&&(this._show=e,this._updateShow())}get show(){return this._show}set cartesian(e){this._winPosFromCartesian.cartesian=e}get cartesian(){return this._winPosFromCartesian.cartesian}get winPosFromCartesian(){return this._winPosFromCartesian}set status(e){this._status!==e&&(this._status=e,this._switchTransition.target=this._status==="Canvas"?0:1,this._statusChanged&&this._statusChanged.emit(this._status))}get status(){return this._status}get statusChanged(){return this._statusChanged||(this._statusChanged=new p.Event),this._statusChanged}get czmCanvasPoi(){return this._czmCanvasPoi}get czmDivPoi(){return this._czmDivPoi}}class rw extends p.Destroyable{constructor(e,i=!0){super();L(this,"_divContainer");L(this,"_canvasPrimitivesContext");L(this,"_isPointOccludedByEarth");L(this,"_poiClickedEvent");L(this,"_clickEvent",this.disposeVar(new p.Event));L(this,"_dbclickEvent",this.disposeVar(new p.Event));L(this,"_downEvent",this.disposeVar(new p.Event));L(this,"_upEvent",this.disposeVar(new p.Event));L(this,"_moveEvent",this.disposeVar(new p.Event));L(this,"_outEvent",this.disposeVar(new p.Event));L(this,"_cameraChanged");this._viewer=e,this._useInnerInteraction=i,this._cameraChanged=new Hs(this._viewer.scene);const o=this._viewer.canvas.parentElement;this._divContainer=o;const r=document.createElement("div");r.style.position="absolute",r.style.left="0px",r.style.top="0px",r.style.width="100%",r.style.height="100%",r.style.pointerEvents="none",o.appendChild(r),this.dispose(()=>{o.removeChild(r)});const s=new p.CanvasPrimitivesContext;this._canvasPrimitivesContext=s,this.dispose(()=>{this._canvasPrimitivesContext.destroy()}),r.appendChild(s.element);{const u=new C.EllipsoidalOccluder(C.Ellipsoid.WGS84,new C.Cartesian3),A=new Hs(this._viewer.scene);this.dispose(()=>A.destroy());const f=()=>u.cameraPosition=this._viewer.camera.positionWC;this.dispose(A.changed.disposableOn(f)),f();const d=g=>!u.isPointVisible(g);this._isPointOccludedByEarth=d}this.dispose(this._clickEvent.disposableOn((u,A,f)=>{const d=s.pick(u,A,1,1);if(d.length>0){this._poiClickedEvent&&this._poiClickedEvent.emit(!0);const{poi:g,tag:v}=d[0];for(let y of s.pois)y===g?y.hasClickEvent()&&y.clickEvent.emit(u,A,v,y,f):y.hasClickOutEvent()&&y.clickOutEvent.emit(u,A,"",y,f)}else{this._poiClickedEvent&&this._poiClickedEvent.emit(!1);for(let g of s.pois)g.hasClickOutEvent()&&g.clickOutEvent.emit(u,A,"",g,f)}})),this.dispose(this._dbclickEvent.disposableOn((u,A,f)=>{const d=s.pick(u,A,1,1);if(d.length>0){this._poiClickedEvent&&this._poiClickedEvent.emit(!0);const{poi:g,tag:v}=d[0];for(let y of s.pois)y===g?y.hasDbclickEvent()&&y.dbclickEvent.emit(u,A,v,y,f):y.hasDbclickOutEvent()&&y.dbclickOutEvent.emit(u,A,"",y,f)}else{this._poiClickedEvent&&this._poiClickedEvent.emit(!1);for(let g of s.pois)g.hasDbclickOutEvent()&&g.dbclickOutEvent.emit(u,A,"",g,f)}}));let a;this.dispose(this._downEvent.disposableOn((u,A)=>{a&&(a.actived=!1);const f=s.pick(u,A,1,1);if(f.length>0){const{poi:d,tag:g}=f[0];d instanceof p.CanvasPoi&&(d.actived=!0,a=d)}})),this.dispose(this._upEvent.disposableOn(()=>{a&&(a.actived=!1,a=void 0)}));let l;function c(u){l!==u&&(l&&(l.hovered=!1),l=u,l&&(l.hovered=!0))}const h=this._moveEvent.disposableOn((u,A)=>{let f;const d=s.pick(u,A,1,1);if(d.length>0){const g=d[0].poi;g instanceof p.CanvasPrimitive&&(f=g)}c(f)});if(this.dispose(h),this.dispose(this._outEvent.disposableOn((u,A,f)=>{c(void 0)})),this._useInnerInteraction){const u=this._viewer.canvas.parentElement,A=this.disposeVar(p.DomElementEvent.create(u,"pointerdown")),f=this.disposeVar(p.DomElementEvent.create(u,"pointermove")),d=this.disposeVar(p.DomElementEvent.create(u,"pointerup")),g=this.disposeVar(p.DomElementEvent.create(u,"pointerout")),v=this.disposeVar(new p.PointerClick),y=this.disposeVar(new p.PointerHover);this.dispose(A.disposableOn(m=>v.pointerDown(m))),this.dispose(f.disposableOn(m=>v.pointerMove(m))),this.dispose(d.disposableOn(m=>v.pointerUp(m))),this.dispose(g.disposableOn(m=>v.pointerOut(m))),this.dispose(A.disposableOn(m=>y.pointerDown(m))),this.dispose(f.disposableOn(m=>y.pointerMove(m))),this.dispose(d.disposableOn(m=>y.pointerUp(m))),this.dispose(g.disposableOn(m=>y.pointerOut(m))),this.dispose(v.clickEvent.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);m.button===0?this._clickEvent.emit(w,_,m):m.button===2&&this._clickEvent.emit(w,_,m)})),this.dispose(v.dbclickEvent.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);m.button===0&&this._dbclickEvent.emit(w,_,m)})),this.dispose(A.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);m.button===0&&this._downEvent.emit(w,_,m)})),this.dispose(d.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);m.button===0&&this._upEvent.emit(w,_,m)})),this.dispose(f.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);this._moveEvent.emit(w,_,m)})),this.dispose(g.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);this._outEvent.emit(w,_,m)}))}}get useInnerInteraction(){return this._useInnerInteraction}get divContainer(){return this._divContainer}get canvasPrimitivesContext(){return this._canvasPrimitivesContext}get viewer(){return this._viewer}get cameraChanged(){return this._cameraChanged}isPointOccludedByEarth(e){return this._isPointOccludedByEarth(e)}get poiClickedEvent(){return this._poiClickedEvent||(this._poiClickedEvent=new p.Event),this._poiClickedEvent}pointerClick(...e){this._useInnerInteraction?console.warn("当前使用内置交互(useInnerInteraction为true),此函数无效!"):this._clickEvent.emit(...e)}pointerDbclick(...e){this._useInnerInteraction?console.warn("当前使用内置交互(useInnerInteraction为true),此函数无效!"):this._dbclickEvent.emit(...e)}pointerDown(...e){this._useInnerInteraction?console.warn("当前使用内置交互(useInnerInteraction为true),此函数无效!"):this._downEvent.emit(...e)}pointerUp(...e){this._useInnerInteraction?console.warn("当前使用内置交互(useInnerInteraction为true),此函数无效!"):this._upEvent.emit(...e)}pointerMove(...e){this._useInnerInteraction?console.warn("当前使用内置交互(useInnerInteraction为true),此函数无效!"):this._moveEvent.emit(...e)}}class Qi extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_clickEvent",this.disposeVar(new p.Event));L(this,"_clickOutEvent",this.disposeVar(new p.Event));L(this,"_dblclickEvent",this.disposeVar(new p.Event));L(this,"_dblclickOutEvent",this.disposeVar(new p.Event));L(this,"_canvasPoiClassAndCreateFunc",p.react(void 0));L(this,"_czmViewVisibleDistanceRangeControl");L(this,"_canvasObj");L(this,"_id",this.disposeVar(p.react(p.createGuid())));i&&(this.id=i),this._czmViewVisibleDistanceRangeControl=this.disposeVar(new Ao(e,[this,"viewDistanceRange"],[this,"position"])),this.dispose(p.track([this._czmViewVisibleDistanceRangeControl,"debug"],[this,"viewDistanceDebug"]));const o=e.viewer;if(!o)return;const r=Sn(o);if(!r)return;const{poiContext:s,labelManager:a}=r;a.add(this),this.d(()=>{a.delete(this)}),s&&(this._canvasObj=this.disposeVar(new p.ObjResettingWithEvent(this.canvasPoiClassAndCreateFuncChanged,()=>{if(!this.canvasPoiClassAndCreateFunc)return;const[l,c]=this.canvasPoiClassAndCreateFunc;return new EI(this,l,s,o,c)})))}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get clickEvent(){return this._clickEvent}get clickOutEvent(){return this._clickOutEvent}get dblclickEvent(){return this._dblclickEvent}get dblclickOutEvent(){return this._dblclickOutEvent}get canvasPoiClassAndCreateFunc(){return this._canvasPoiClassAndCreateFunc.value}set canvasPoiClassAndCreateFunc(e){this._canvasPoiClassAndCreateFunc.value=e}get canvasPoiClassAndCreateFuncChanged(){return this._canvasPoiClassAndCreateFunc.changed}get czmViewerVisibleDistanceRangeControl(){return this._czmViewVisibleDistanceRangeControl}get visibleAlpha(){return this._czmViewVisibleDistanceRangeControl.visibleAlpha}get visibleAlphaChanged(){return this._czmViewVisibleDistanceRangeControl.visibleAlphaChanged}get canvasObj(){var e;return(e=this._canvasObj)==null?void 0:e.obj}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}}L(Qi,"defaults",{viewDistanceRange:[1e3,1e4,3e4,6e4]}),(t=>{t.createDefaultProps=()=>({show:!0,enabled:!0,position:p.reactArrayWithUndefined(void 0),positionEditing:!1,viewDistanceRange:p.reactArrayWithUndefined(void 0),viewDistanceDebug:!1,zOrder:0})})(Qi||(Qi={})),p.extendClassProps(Qi.prototype,Qi.createDefaultProps);class EI extends p.Destroyable{constructor(e,i,o,r,s){super();L(this,"czmCanvasPoi");const a=this.czmCanvasPoi=this.disposeVar(new dd(i,o));this.disposeVar(s(a.canvasPoi,e.visibleAlphaChanged));{const l=()=>{e.position&&(a.cartesian=vt(e.position))};l(),this.dispose(e.positionChanged.disposableOn(l))}{const l=()=>{a.show=(e.show??!0)&&!!e.position&&e.visibleAlpha>0};l();const c=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.positionChanged,e.visibleAlphaChanged));this.dispose(c.disposableOn(l))}this.dispose(e.flyToEvent.disposableOn(()=>{if(!e.position){console.warn("GeoPoint当前没有位置信息,无法飞入!");return}let l=1e3;if(e.viewDistanceRange){const[c,h,u,A]=e.viewDistanceRange;l=(h+u)*.5}Be(r,e.position,l,void 0,1e3)}))}}class PI extends p.Destroyable{constructor(n,e){super();const i=this.disposeVar(p.createNextAnimateFrameEvent(n.showChanged,n.positionChanged,n.fgColorChanged,n.bgColorChanged,n.tooltipChanged,n.tooltipShowChanged,n.titleChanged,n.sizeChanged,n.originRatioAndOffsetChanged,n.opacityChanged,n.scaleChanged)),o=()=>{e.fgColor=n.fgColor??[1,1,1,1],e.bgColor=n.bgColor??[.3,.3,.3,.8],e.tooltip=n.tooltip??"",e.tooltipShow=n.tooltipShow??!0,e.title=n.title??"",e.size=n.size??[32,32],e.originRatioAndOffset=n.originRatioAndOffset??[.5,1,0,0],e.hovered=n.hovered??!1,e.opacity=n.opacity??1,e._scale=n.scale??1};o(),this.dispose(i.disposableOn(o));const r=this.disposeVar(Q.ESSceneObject.context.createEnvStrReact([n,"imageUri"],"${earthsdk3-assets-script-dir}/assets/img/location.png")),s=this.disposeVar(p.createProcessingFromAsyncFunc(async(c,h)=>{const u=await c.promise(p.fetchImage(h));e.image=u})),a=()=>{if(!r.value)return;const c=r.value.trim();c!==""&&s.restart(void 0,c)};a(),this.dispose(r.changed.disposableOn(a));const l=this.disposeVar(new p.Event);this.dispose(e.clickEvent.disposableOn((c,h,u,A,f)=>{(n.enabled??!0)&&l.emit(f)})),this.dispose(l.don(c=>{n.clickEvent.emit(c)})),this.dispose(e.clickOutEvent.disposableOn((c,h,u,A,f)=>{(n.enabled??!0)&&n.clickOutEvent.emit(f)})),this.dispose(e.dbclickEvent.disposableOn((c,h,u,A,f)=>{(n.enabled??!0)&&n.dbclickEvent.emit(f)})),this.dispose(e.dbclickOutEvent.disposableOn((c,h,u,A,f)=>{(n.enabled??!0)&&n.dbclickOutEvent.emit(f)})),this.dispose(p.bind([n,"hovered"],[e,"hovered"])),this.ad(p.bind([e,"isHoverZoom"],[n,"isHoverZoom"]))}}function fh(t,n,e,i){const[o,r]=t,[s,a,l,c]=i,h=n[0]*e[0],u=n[1]*e[1],A=o-(h*s+l),f=r-(u*a+c);return{left:A,top:f,right:A+h,bottom:f+u}}function TI(t,n,e,i,o,r){t.beginPath(),t.moveTo(n+r,e),t.lineTo(n+i-r,e),t.arcTo(n+i,e,n+i,e+r,r),t.lineTo(n+i,e+o-r),t.arcTo(n+i,e+o,n+i-r,e+o,r),t.lineTo(n+r,e+o),t.arcTo(n,e+o,n,e+o-r,r),t.lineTo(n,e+r),t.arcTo(n,e,n+r,e,r)}function II(t){const{width:n,height:e}=t,i=n instanceof SVGAnimatedLength?n.baseVal.SVG_LENGTHTYPE_PX:n,o=e instanceof SVGAnimatedLength?e.baseVal.SVG_LENGTHTYPE_PX:e,r=document.createElement("canvas");r.width=i,r.height=o;const s=r.getContext("2d");if(!s)throw new Error("!cavnasCtx");return s.drawImage(t,0,0,i,o),r}function kI(t,n){const{width:e,height:i}=t,o=t.getContext("2d");if(!o)throw new Error("!cavnasCtx");const[r,s,a]=n.map(u=>u*255|0),l=o.getImageData(0,0,e,i),c=l.data;for(var h=0;h<c.length;h+=4)c[h]=r,c[h+1]=s,c[h+2]=a;o.putImageData(l,0,0)}function ow(t,n,e,i=[.5,1,0,0],o,r="12px Arial",s=2,a="#FFF",l="#000A"){t.font=r;const c=t.measureText(o),h=c.actualBoundingBoxLeft+c.actualBoundingBoxRight,u=c.fontBoundingBoxAscent+c.fontBoundingBoxDescent,A=n,f=e,d=h+s*2,g=u+s*2,{left:v,top:y,bottom:m}=fh([A,f],[d,g],[1,1],i);t.fillStyle=l,TI(t,v,y,d,g,s),t.fill(),t.fillStyle=a,t.fillText(o,v+s,m-s-c.fontBoundingBoxDescent)}function dh(t){return("00"+t.toString(16).toUpperCase()).substr(-2)}function ph(t){const[n,e,i,o]=t.map(r=>r*255|0);return`#${dh(n)}${dh(e)}${dh(i)}${dh(o)}`}function FI(t,n){const[e,i,o]=n,r=`${e}-${i}-${o}`;let s=p.getExtProp(t,r);return s||(s=II(t),kI(s,n),p.setExtProp(t,r,s)),s}class BI extends p.CanvasPoi{constructor(e,i,o=[32,32],r=[.5,1,0,0],s="#F00F"){super(e);L(this,"_tooltip","");L(this,"_title","");L(this,"__scale",[1,1]);L(this,"_tooltipAlpha",0);L(this,"_bgColor",[.3,.3,.3,.8]);L(this,"_bgColorHexStr",ph(this._bgColor));L(this,"_fgColor",[1,1,1,1]);L(this,"_fgColorHexStr",ph(this._fgColor));L(this,"_tooltipShow",this.disposeVar(p.react(!0)));L(this,"_isHoverZoom",this.disposeVar(p.react(void 0)));this._image=i,this._size=o,this._originRatioAndOffset=r,this._defaultColorStr=s;const a=new p.Transition(100),l=new p.Transition(100);this.dispose(()=>{a.destroy(),l.destroy()});const c=()=>{this._clickEvent&&!this._clickEvent.empty&&((this.isHoverZoom??!0)&&(this.hovered?(this._scale[0]*=1.5,this._scale[1]*=1.5):(this._scale[0]/=1.5,this._scale[1]/=1.5)),this._tooltipAlpha=a.current)};this.dispose(this.activedChanged.disposableOn(u=>{l.target=u?1:0,this.needRedraw()}));const h=()=>{const u=this.tooltipShow&&this.hovered;a.target=u?1:0,c(),this.needRedraw()};this.dispose(this.hoveredChanged.disposableOn(h)),this.dispose(this.tooltipShowChanged.disposableOn(h)),this.dispose(this.selectedChanged.disposableOn(()=>{this.needRedraw()}))}get tooltipShow(){return this._tooltipShow.value}set tooltipShow(e){this._tooltipShow.value=e}get tooltipShowChanged(){return this._tooltipShow.changed}get isHoverZoom(){return this._isHoverZoom.value}set isHoverZoom(e){this._isHoverZoom.value=e}get isHoverZoomChanged(){return this._isHoverZoom.changed}set size(e){const[i,o]=e,[r,s]=this._size;(r!==i||s!==o)&&(this._size[0]=i,this._size[1]=o,this.needRedraw(),this.needPickRedraw())}get size(){return this._size}set _scale(e){const[i,o]=e,[r,s]=this.__scale;(r!==i||s!==o)&&(this.__scale[0]=i,this.__scale[1]=o,this.needRedraw(),this.needPickRedraw())}get _scale(){return this.__scale}set fgColor(e){if(!this._fgColor.every((i,o)=>e[o]===i)){const[i,o,r,s]=e;this._fgColor.splice(0,4,i,o,r,s),this._fgColorHexStr=ph(this._fgColor),this.needRedraw()}}get fgColor(){return this._fgColor}set bgColor(e){if(!this._bgColor.every((i,o)=>e[o]===i)){const[i,o,r,s]=e;this._bgColor.splice(0,4,i,o,r,s),this._bgColorHexStr=ph(this._bgColor),this.needRedraw()}}get bgColor(){return this._bgColor}set originRatioAndOffset(e){const[i,o,r,s]=this._originRatioAndOffset,[a,l,c,h]=e;(i!==a||o!==l||r!==c||s!==h)&&(this._originRatioAndOffset.splice(0,4,a,l,c,h),this.needRedraw(),this.needPickRedraw())}get originRatioAndOffset(){return this._originRatioAndOffset}set image(e){this._image!==e&&(this._image=e,this.needRedraw())}get image(){return this._image}set defaultColorStr(e){this._defaultColorStr!==e&&(this._defaultColorStr=e,this.needRedraw())}get defaultColorStr(){return this._defaultColorStr}set tooltip(e){this._tooltip!==e&&(this._tooltip=e,this.needRedraw())}get tooltip(){return this._tooltip}set title(e){this._title!==e&&(this._title=e,this.needRedraw())}get title(){return this._title}draw(e){if(!this._show)return;const[i,o]=this._winPos,r=this._size[0]*this.__scale[0],s=this._size[1]*this.__scale[1],{left:a,top:l,right:c}=fh([i,o],this._size,this.__scale,this._originRatioAndOffset),h=e.globalAlpha;if(e.globalAlpha=this.opacity,this._image){if(this.selected){const u=FI(this._image,[1,0,0]),{left:A,top:f}=fh([i,o],[r+6,s+6],[1,1],this._originRatioAndOffset);e.drawImage(u,A,f,r+6,s+6)}e.drawImage(this._image,a,l,r,s)}else e.fillStyle=this._fgColorHexStr,e.fillRect(a,l,r,s);if(this._title!==""&&ow(e,i+20,o-16,[0,.5,0,0],this._title,"14px Arial",4,this._fgColorHexStr,this._bgColorHexStr),e.globalAlpha=h,this._hovered&&this._tooltip!==""){const u=e.globalAlpha;e.globalAlpha=this._tooltipAlpha,ow(e,(a+c)*.5,l-5,[.5,1,0,0],this._tooltip,"12px Arial",4,this._fgColorHexStr,this._bgColorHexStr),e.globalAlpha=u}}drawForPick(e,i){if(!this._show)return;const[o,r]=this._winPos,s=i("default"),a=this._size[0]*this.__scale[0],l=this._size[1]*this.__scale[1],{left:c,top:h}=fh([o,r],this._size,this.__scale,this._originRatioAndOffset);e.fillStyle=s,e.fillRect(c,h,a,l)}}class ui extends p.Destroyable{constructor(e){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_clickEvent",this.disposeVar(new p.Event));L(this,"_clickOutEvent",this.disposeVar(new p.Event));L(this,"_dbclickEvent",this.disposeVar(new p.Event));L(this,"_dbclickOutEvent",this.disposeVar(new p.Event));L(this,"_clickFunc",this.disposeVar(p.react(void 0)));L(this,"_clickFuncInit",(()=>{this.dispose(this.clickEvent.disposableOn(e=>this.clickFunc&&this.clickFunc(e)))})());L(this,"_geoCanvasPoi");if(this._geoCanvasPoi=this.disposeVar(new Qi(e)),!e.viewer)return;const{geoCanvasPoi:o}=this;o.canvasPoiClassAndCreateFunc=[BI,r=>new PI(this,r)],this.dispose(p.bind([o,"show"],[this,"show"])),this.dispose(p.bind([o,"enabled"],[this,"enabled"])),this.dispose(p.bind([o,"position"],[this,"position"])),this.dispose(p.bind([o,"positionEditing"],[this,"positionEditing"])),this.dispose(p.track([o,"viewDistanceRange"],[this,"viewDistanceRange"])),this.dispose(p.track([o,"viewDistanceDebug"],[this,"viewDistanceDebug"])),this.dispose(p.track([o,"zOrder"],[this,"zOrder"])),this.dispose(this.flyToEvent.disposableOn(r=>{o.flyTo(r)})),this.dispose(this._clickEvent.disposableOn(r=>{this.pickOnClick&&this.pickedEvent.emit(new Q.ESJPickedResult({type:"viewerPicking",pointerEvent:r}))}));{const r=()=>{const s=Zf(this.clickFuncStr,["event"]);s&&(this.clickFunc=s)};r(),this.dispose(this.clickFuncStrChanged.disposableOn(r))}}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get clickEvent(){return this._clickEvent}get clickOutEvent(){return this._clickOutEvent}get dbclickEvent(){return this._dbclickEvent}get dbclickOutEvent(){return this._dbclickOutEvent}get clickFunc(){return this._clickFunc.value}set clickFunc(e){this._clickFunc.value=e}get clickFuncChanged(){return this._clickFunc.changed}get geoCanvasPoi(){return this._geoCanvasPoi}}L(ui,"defaults",{viewDistanceRange:[1e3,1e4,3e4,6e4],scale:[1,1]}),(t=>{t.createDefaultProps=()=>({show:!0,enabled:!0,position:p.reactArrayWithUndefined(void 0),positionEditing:!1,fgColor:p.reactArray([1,1,1,1]),bgColor:p.reactArray([0,0,0,0]),tooltip:"",tooltipShow:!0,title:"",size:p.reactArray([32,32]),scale:p.reactArray([1,1]),originRatioAndOffset:p.reactArray([.5,1,0,0]),hovered:!1,imageUri:"${earthsdk3-assets-script-dir}/assets/img/location.png",opacity:1,viewDistanceRange:p.reactArrayWithUndefined(void 0),viewDistanceDebug:!1,pickOnClick:!1,clickFuncStr:"",zOrder:0,isHoverZoom:void 0})})(ui||(ui={})),p.extendClassProps(ui.prototype,ui.createDefaultProps);class _a extends p.Destroyable{constructor(e){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_commandEvent",this.disposeVar(new p.Event));L(this,"_dbclickEvent",this.disposeVar(new p.Event));const i=this;let o=Number.POSITIVE_INFINITY;this.dispose(this.enabledChanged.disposableOn(d=>{o=d??!1?Date.now():Number.POSITIVE_INFINITY}));const r=this.disposeVar(new p.Transition(100));r.reset(0);const s=this.disposeVar(p.createTimeoutWithStartValues(()=>r.target=0,1e3)),a=this.disposeVar(p.createTimeoutWithStartValues(()=>r.target=1,1e3)),l=this.disposeVar(new ui(e));l.originRatioAndOffset=[.5,.5,0,0],this.dispose(p.track([l,"tooltip"],[i,"title"]));{const d=()=>{l.size=this.mainPoiSize??[12,12]};d(),this.dispose(this.mainPoiSizeChanged.disposableOn(d))}{const d=()=>{l.fgColor=this.mainPoiFgColor??[1,1,1,1]};d(),this.dispose(this.mainPoiFgColorChanged.disposableOn(d))}{const d=()=>{l.bgColor=this.mainPoiBgColor??[0,0,0,.6]};d(),this.dispose(this.mainPoiBgColorChanged.disposableOn(d))}const c=this.disposeVar(p.createNextAnimateFrameEvent(i.showChanged,i.positionChanged,i.descriptionChanged,i.titleChanged,i.imageUriChanged)),h=()=>{l.show=i.show??!0,l.imageUri=i.imageUri??"${earthsdk3-assets-script-dir}/assets/img/point-yellow.png",l.position=i.position};h(),this.dispose(c.disposableOn(h)),this.dispose(p.bind([l,"position"],[this,"position"])),this.dispose(p.bind([l,"positionEditing"],[this,"positionEditing"])),this.dispose(this._flyToEvent.disposableOn(d=>l.flyTo(d)));const u=[],A=()=>{u.forEach(d=>{d.destroy()}),u.length=0};this.dispose(A);const f=()=>{A();const{commands:d}=i;if(!d)return;const g=d.length,v=50,y=0,m=-(g*v*Math.PI/180)*.5;for(let w=0;w<g;++w){const[_,E,T,P]=d[w],F=m+v*(w+.5)*Math.PI/180,D=Math.sin(F)*y,B=Math.cos(F)*y,S=new ui(e);S.imageUri=P,S.tooltip=E,S.bgColor=[0,0,0,.6],S.fgColor=[1,1,1,1],S.size=[24,24],S.dispose(p.track([S,"position"],[i,"position"])),S.originRatioAndOffset=[.5,.5,-D,B],S.show=!1,S.opacity=0,S.dispose(S.opacityChanged.disposableOn(I=>S.show=(I??1)>0)),S.dispose(S.clickEvent.disposableOn(I=>i.commandEvent.emit(_,I))),S.dispose(S.hoveredChanged.disposableOn(I=>I?s.cancel():s.restart())),S.dispose(r.currentChanged.disposableOn(I=>S.enabled=I===1)),u.push(S)}};f(),this.dispose(i.commandsChanged.disposableOn(f)),this.dispose(l.hoveredChanged.disposableOn(d=>d?s.cancel():s.restart())),this.dispose(l.hoveredChanged.disposableOn(d=>d?i.enabled&&a.restart():a.cancel())),this.dispose(r.currentChanged.disposableOn(d=>{const g=u.length,v=50,y=d*35,m=-(g*v*Math.PI/180)*.5;for(let w=0;w<g;++w){const _=m+v*(w+.5)*Math.PI/180,E=Math.sin(_)*y,T=Math.cos(_)*y;u[w].originRatioAndOffset=[.5,.5,-E,T],u[w].opacity=d}})),this.dispose(l.clickEvent.disposableOn(d=>{if(!i.enabled)return;const g=d.__xbsj_listenerTime__;if(!(g!==void 0&&o>g))if(d.button===0)if(i.clickCommandName)i.commandEvent.emit(i.clickCommandName,d);else{if(r.current>0&&r.current<1)return;r.target=r.target===1?0:1}else d.button===2&&i.rightClickCommandName&&i.commandEvent.emit(i.rightClickCommandName,d)})),this.dispose(l.clickOutEvent.disposableOn(()=>{i.enabled&&(r.target=0)})),this.dispose(i.commandEvent.disposableOn(()=>r.target=0)),this.dispose(l.dbclickEvent.disposableOn(d=>{if(!i.enabled)return;const g=d.__xbsj_listenerTime__;g!==void 0&&o>g||(i.dbclickEvent.emit(d),a.isRunning&&s.cancel(),r.target=0)})),this.dispose(r.targetChanged.disposableOn(d=>d===1?s.restart():s.cancel())),this.dispose(r.targetChanged.disposableOn(d=>d===1&&a.cancel())),this.dispose(r.targetChanged.disposableOn(d=>l.tooltipShow=d===0))}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get commandEvent(){return this._commandEvent}get dbclickEvent(){return this._dbclickEvent}}(t=>{t.createDefaultProps=()=>({show:!0,enabled:!0,position:p.reactArrayWithUndefined(void 0),positionEditing:!1,title:"",description:"",imageUri:"${earthsdk3-assets-script-dir}/assets/img/point-yellow.png",commands:p.reactDeepArrayWithUndefined(void 0,(n,e)=>n.every((i,o)=>i===e[o]),n=>[...n]),clickCommandName:"",rightClickCommandName:"",mainPoiSize:p.reactArrayWithUndefined(void 0),mainPoiBgColor:p.reactArrayWithUndefined(void 0),mainPoiFgColor:p.reactArrayWithUndefined(void 0)})})(_a||(_a={})),p.extendClassProps(_a.prototype,_a.createDefaultProps);const md=`class MyDiv {
535
+ `}else D="";u&&(v=C.ShaderProgram.fromCache({context:r,vertexShaderSource:new C.ShaderSource({sources:[this.vertexShaderSource]}),fragmentShaderSource:new C.ShaderSource({sources:[D,this.fragmentShaderSource]}),attributeLocations:u}),y?y.shaderProgram=v:h=!0)}h&&(h=!1,y||g&&v&&(y=new C.DrawCommand({vertexArray:g,primitiveType:this.primitiveType,renderState:C.RenderState.fromCache(this.renderState),shaderProgram:v,owner:this,uniformMap:this.uniformMap,pass:this.pass,modelMatrix:this.modelMatrix,boundingVolume:this.boundingVolume,cull:this.cull,occlude:this.occlude,count:this.count,offset:this.offset,instanceCount:this.instanceCount,castShadows:this.castShadows,receiveShadows:this.receiveShadows,pickId:this.allowPicking?"xbsjPickColor220823":void 0,pickOnly:this.pickOnly,debugShowBoundingVolume:this.debugShowBoundingVolume,depthForTranslucentClassification:this.depthForTranslucentClassification}),this._drawCommand=y,y.debugOverlappingFrustums=this.debugOverlappingFrustums,y.executeInClosestFrustum=this.executeInClosestFrustum)),y&&E.commandList.push(y)};this.dispose(this._updateEvent.disposableOn(_))}get drawCommand(){return this._drawCommand}get ESSceneObjectID(){return this._ESSceneObjectID.value}set ESSceneObjectID(e){this._ESSceneObjectID.value=e}get ESSceneObjectIDChanged(){return this._ESSceneObjectID.changed}update(e){this.show&&this._updateEvent.emit(e)}}(t=>{t.createDefaultProps=()=>({modelMatrix:p.react(new C.Matrix4,C.Matrix4.equals,C.Matrix4.clone),boundingVolume:void 0,pass:C.Pass.OPAQUE,attributes:{},cull:!0,occlude:!0,count:void 0,offset:0,indexTypedArray:void 0,instanceCount:0,vertexShaderSource:"",fragmentShaderSource:"",castShadows:!1,receiveShadows:!1,uniformMap:{},renderState:{},primitiveType:C.PrimitiveType.TRIANGLES,executeInClosestFrustum:!1,owner:void 0,debugShowBoundingVolume:!1,debugOverlappingFrustums:0,allowPicking:void 0,pickOnly:!1,depthForTranslucentClassification:!1})})(Js||(Js={})),p.extendClassProps(Js.prototype,Js.createDefaultProps);function bI(t){let n,e;if(t instanceof C.BoundingSphere)e=Ue(t.center),n=t.radius*5;else if(t instanceof C.BoundingRectangle){const{x:i,y:o,width:r,height:s}=t,a=C.Rectangle.fromRadians(i,o,i+r,o+s),l=C.BoundingSphere.fromRectangle2D(a);e=Ue(l.center),n=l.radius*5}else if(t instanceof C.OrientedBoundingBox){e=Ue(t.center);const i=t.halfAxes,o=p.Vector.magnitude([i[0],i[1],i[2]]),r=p.Vector.magnitude([i[3],i[4],i[5]]),s=p.Vector.magnitude([i[6],i[7],i[8]]);n=Math.max(o,r,s)*5}if(!(!e||n===void 0))return[e,n]}const yt=class yt extends p.Destroyable{constructor(e,i){super();L(this,"_attributes",this.disposeVar(p.react(void 0)));L(this,"_indexTypedArray",this.disposeVar(p.react(void 0)));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_sceneScaleEvent",this.disposeVar(new p.Event));L(this,"_nativePrimitive");L(this,"_lastCzmPickResult");L(this,"_czmViewVisibleDistanceRangeControl");L(this,"_id",this.disposeVar(p.react(p.createGuid())));this._czmViewer=e,i&&(this.id=i),this._czmViewVisibleDistanceRangeControl=this.disposeVar(new Ao(this.czmViewer,[this,"viewDistanceRange"],[this,"position"]));const o=e.viewer;if(!o)return;this.dispose(p.track([this._czmViewVisibleDistanceRangeControl,"debug"],[this,"viewDistanceDebug"]));const{scene:r}=o,{context:s}=r,a=o.scene.primitives.add(new Js(o.scene,i));this._nativePrimitive=a,this.dispose(()=>o.scene.primitives.remove(a));{const h=this.disposeVar(p.createNextAnimateFrameEvent(this.allowPickingDepthChanged));this.disposeVar(new p.ObjResettingWithEvent(h,()=>{if(!this.allowPickingDepth)return this.allowPickingDepth?void 0:new Ye.ObjectsToExcludeWrapper(this.czmViewer,[a])}))}const l=p.react(void 0);{const h=()=>{let u;do{if(!this.position||!this.pixelSize)break;const A=C.Cartesian3.fromDegrees(...this.position);if(!A||(u=Di(o.scene,A,this.pixelSize),u===void 0))break;this.maximumScale!==void 0&&u>this.maximumScale&&(u=this.maximumScale),this.minimumScale!==void 0&&u<this.minimumScale&&(u=this.minimumScale)}while(!1);l.value=u};h(),this.dispose(o.scene.preUpdate.addEventListener(h))}{const h=()=>{this.sceneScaleEvent.emit(l.value,this.czmViewer)};h(),this.dispose(l.changed.disposableOn(h))}this.disposeVar(new v0(e,[this,"showSceneScale"],[this,"position"],l));{const h=()=>{a.show=(this.show??!0)&&this.visibleAlpha>0};h(),this.dispose(this.showChanged.disposableOn(h)),this.dispose(this.visibleAlphaChanged.disposableOn(h))}const c=this.disposeVar(p.react(void 0));{const h=()=>{const A=at({localScale:this.localScale,initialRotation:"yForwardzUp",localRotation:this.localRotation,localPosition:this.localPosition,localModelMatrix:this.localModelMatrix,sceneScaleFromPixelSize:l.value,scale:this.scale,rotation:this.rotation,position:this.position,modelMatrix:this.modelMatrix});if(!A){console.warn("computeCzmModelMatrix error!");return}c.value=A,a.modelMatrix=A};h();let u=!0;this.dispose(this.showChanged.disposableOn(()=>u=!0)),this.dispose(this.localPositionChanged.disposableOn(()=>u=!0)),this.dispose(this.localRotationChanged.disposableOn(()=>u=!0)),this.dispose(this.localScaleChanged.disposableOn(()=>u=!0)),this.dispose(this.localModelMatrixChanged.disposableOn(()=>u=!0)),this.dispose(this.positionChanged.disposableOn(()=>u=!0)),this.dispose(this.rotationChanged.disposableOn(()=>u=!0)),this.dispose(this.scaleChanged.disposableOn(()=>u=!0)),this.dispose(this.modelMatrixChanged.disposableOn(()=>u=!0)),this.dispose(l.changed.disposableOn(()=>u=!0)),this.dispose(o.scene.preUpdate.addEventListener(()=>{u&&(u&&(u=!1),h())}))}{const h=()=>{const{boundingVolume:f=yt.defaultBoundingVolume}=this;if(!f){a.boundingVolume=void 0;return}if(f.type==="BoundingRectangle"){a.boundingVolume=C.BoundingRectangle.fromRectangle(C.Rectangle.fromDegrees(...f.data));return}if(f.type==="BoundingSphere"){a.boundingVolume=new C.BoundingSphere(C.Cartesian3.fromDegrees(...f.data.center),f.data.radius);return}},u=()=>{const{boundingVolume:f=yt.defaultBoundingVolume}=this;if(!f){a.boundingVolume=void 0;return}if(f.type==="LocalBoundingSphere"){const d=c.value??C.Matrix4.IDENTITY,g=C.Matrix4.multiplyByPoint(d,C.Cartesian3.fromArray(f.data.center),new C.Cartesian3);a.boundingVolume=new C.BoundingSphere(g,f.data.radius);return}if(f.type==="LocalAxisedBoundingBox"){const d=c.value??C.Matrix4.IDENTITY,{min:g,max:v}=f.data,y=new C.Cartesian3(.5*(g[0]+v[0]),.5*(g[1]+v[1]),.5*(g[2]+v[2])),m=C.Matrix4.multiplyByPoint(d,y,y),w=new C.Cartesian3(.5*(v[0]-g[0]),.5*(v[1]-g[1]),.5*(v[2]-g[2]));w.x=w.x===0?1:w.x,w.y=w.y===0?1:w.y,w.z=w.z===0?1:w.z;const _=new C.Matrix3(w.x,0,0,0,w.y,0,0,0,w.z),E=C.Matrix4.getMatrix3(d,new C.Matrix3),T=C.Matrix3.multiply(E,_,E);a.boundingVolume=new C.OrientedBoundingBox(m,T);return}},A=()=>{h(),u()};A(),this.dispose(this.boundingVolumeChanged.disposableOn(A)),this.dispose(c.changed.disposableOn(u))}this.dispose(p.track([a,"allowPicking"],[this,"allowPicking"]));{const h=()=>{a.indexTypedArray=this.indexTypedArray??yt.defaultIndexTypedArray};h(),this.dispose(this.indexTypedArrayChanged.disposableOn(h))}{const h=()=>{a.attributes=this.attributes??yt.defaultAttribute};h(),this.dispose(this.attributesChanged.disposableOn(h))}{const h=()=>{a.renderState=this.renderState??yt.defaultRenderState};h(),this.dispose(this.renderStateChanged.disposableOn(h))}{const h=()=>{a.vertexShaderSource=this.vertexShaderSource??yt.defaultVertexShaderSource};h(),this.dispose(this.vertexShaderSourceChanged.disposableOn(h))}{const h=()=>{a.fragmentShaderSource=this.fragmentShaderSource??yt.defaultFragmentShaderSource};h(),this.dispose(this.fragmentShaderSourceChanged.disposableOn(h))}{const h=()=>a.cull=this.cull??!0;h(),this.dispose(this.cullChanged.disposableOn(h))}{const h=()=>a.pass=C.Pass[this.pass??"TRANSLUCENT"];h(),this.dispose(this.passChanged.disposableOn(h))}{const h=()=>a.primitiveType=C.PrimitiveType[this.primitiveType??"TRIANGLES"];h(),this.dispose(this.primitiveTypeChanged.disposableOn(h))}{const h=()=>a.occlude=this.occlude??!0,u=()=>a.count=this.count,A=()=>a.offset=this.offset??0,f=()=>a.instanceCount=this.instanceCount??0,d=()=>a.castShadows=this.castShadows??!1,g=()=>a.receiveShadows=this.receiveShadows??!1;h(),u(),A(),f(),d(),g(),this.dispose(this.occludeChanged.disposableOn(h)),this.dispose(this.countChanged.disposableOn(u)),this.dispose(this.offsetChanged.disposableOn(A)),this.dispose(this.instanceCountChanged.disposableOn(f)),this.dispose(this.castShadowsChanged.disposableOn(d)),this.dispose(this.receiveShadowsChanged.disposableOn(g))}{const h=()=>a.executeInClosestFrustum=this.executeInClosestFrustum??!1,u=()=>a.debugShowBoundingVolume=this.debugShowBoundingVolume??!1,A=()=>a.debugOverlappingFrustums=this.debugOverlappingFrustums??0,f=()=>a.pickOnly=this.pickOnly??!1,d=()=>a.depthForTranslucentClassification=this.depthForTranslucentClassification??!1;h(),u(),A(),f(),d(),this.dispose(this.executeInClosestFrustumChanged.disposableOn(h)),this.dispose(this.debugShowBoundingVolumeChanged.disposableOn(u)),this.dispose(this.debugOverlappingFrustumsChanged.disposableOn(A)),this.dispose(this.pickOnlyChanged.disposableOn(f)),this.dispose(this.depthForTranslucentClassificationChanged.disposableOn(d))}{const h=new Map;this.dispose(()=>{for(let g of h.values())g&&g.destroy();h.clear()});const u=new Map;this.dispose(()=>{for(let g of u.values())g.destroy();u.clear()});let A;const f=()=>{if(A){for(let g of Object.values(A))g.destroy();A=void 0}};this.dispose(f);const d=()=>{const g={},v=this.uniformMap??yt.defaultUniformMap;f(),A={};let y=[];for(let m of Object.keys(v)){const w=v[m];if(w==null){console.error(`updateUniformMap [${m}] error: !uniformValue`);continue}if(Array.isArray(w)){const _=w.length,T=(_===2?C.Cartesian2:_===3?C.Cartesian3:C.Cartesian4).fromArray(w);g[m]=()=>T}else if(typeof w=="number")g[m]=()=>w;else if("type"in w&&w.type==="image"){const _=new At(e);_.enabled=!0,_.uri=w.uri,_.uriType="img",A[m]=_,g[m]=()=>{do{if(!_.texture)break;return _.texture}while(!1);return s.defaultTexture}}else"type"in w&&w.type==="texture"&&(w.id||console.warn(`uniform变量设置错误:${m} 的配置中id未设置或者无效!id为${w.id}`),g[m]=()=>{do{const _=window.czmTexture[w.id];if(!_)break;return _.texture}while(!1);return s.defaultTexture})}g.u_xe2VisibleAlpha=()=>this.visibleAlpha,a.uniformMap=g;for(let m of h.keys())if(!y.includes(m)){const w=h.get(m);w==null||w.destroy(),h.delete(m)}for(let m of u.keys())if(!y.includes(m)){const w=u.get(m);w==null||w.destroy(),u.delete(m)}};d(),this.dispose(this.uniformMapChanged.disposableOn(d))}this.dispose(this.flyToEvent.disposableOn(h=>{if(!a.boundingVolume){console.warn("CzmCustomPrimitive没有设置boundingVolume属性,无法飞入(flyTo)!");return}const u=bI(a.boundingVolume);if(!u){console.warn("无法计算viewDistance!");return}const[A,f]=u;Be(o,A,f,void 0,h)}))}get attributesJson(){return this.attributes&&cI(this.attributes)}set attributesJson(e){const i=JSON.stringify(this.attributesJson),o=JSON.stringify(e);i!==o&&(this.attributes=e&&hI(e))}get attributesJsonChanged(){return this.attributesChanged}get indexTypedArrayJson(){return this.indexTypedArray&&AI(this.indexTypedArray)}set indexTypedArrayJson(e){const i=JSON.stringify(this.indexTypedArrayJson),o=JSON.stringify(e);i!==o&&(this.indexTypedArray=e&&fI(e))}get indexTypedArrayJsonChanged(){return this.indexTypedArrayChanged}get attributes(){return this._attributes.value}set attributes(e){this._attributes.value=e}get attributesChanged(){return this._attributes.changed}get indexTypedArray(){return this._indexTypedArray.value}set indexTypedArray(e){this._indexTypedArray.value=e}get indexTypedArrayChanged(){return this._indexTypedArray.changed}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get sceneScaleEvent(){return this._sceneScaleEvent}get czmViewer(){return this._czmViewer}get nativePrimitive(){return this._nativePrimitive}get czmViewerVisibleDistanceRangeControl(){return this._czmViewVisibleDistanceRangeControl}get visibleAlpha(){return this._czmViewVisibleDistanceRangeControl.visibleAlpha}get visibleAlphaChanged(){return this._czmViewVisibleDistanceRangeControl.visibleAlphaChanged}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}setUniformMap(e){if(Object.entries(e).some(([o,r])=>(console.warn(`setUniformMap error: key: ${o} value: ${r}`),r===null)))return;const i={...this.uniformMap??{},...e};this.uniformMap=i}setLocalBoundingSphere(e,i=[0,0,0]){if(!Number.isFinite(e)||e<=0){console.warn(`!Number.isFinite(radius) || radius <= 0 radius: ${e}`);return}this.boundingVolume={type:"LocalBoundingSphere",data:{center:i,radius:e}}}setLocalAxisedBoundingBox(e,i){if(e.some(o=>!Number.isFinite(o))||i.some(o=>!Number.isFinite(o))){console.warn(`setLocalAxisedBoundingBox error, min: ${e.toString()}, max: ${i.toString()}`);return}this.boundingVolume={type:"LocalAxisedBoundingBox",data:{min:e,max:i}}}computeLocalAxisedBoundingBoxFromAttribute(e="a_position"){if(!this.attributes||!this.attributes[e]){console.warn(`attributes[${e}]不存在!无法获取!`);return}const i=this.attributes[e];if(!("typedArray"in i)||!(i.typedArray instanceof Float32Array)){console.warn(`!('typedArray' in posAttribute) || !(posAttribute.typedArray instanceof Float32Array) attributeName: ${e}`);return}if(!("componentsPerAttribute"in i)||i.componentsPerAttribute!==3){console.warn(`!('componentsPerAttribute' in posAttribute) || posAttribute.componentsPerAttribute !== 3 attributeName: ${e}`);return}const{min:o,max:r}=yt.getMinMaxPosition(i.typedArray);if(!o.some(s=>!Number.isFinite(s)||r.some(a=>!Number.isFinite(a))))return{min:o,max:r}}};L(yt,"defaultRenderState",rI),L(yt,"defaultVertexShaderSource",tI),L(yt,"defaultFragmentShaderSource",nI),L(yt,"defaultUniformMap",oI),L(yt,"defaultBoundingVolume",iI),L(yt,"defaultAttribute",aI),L(yt,"defaultIndexTypedArray",sI),L(yt,"defaultDsAttribute",lI),L(yt,"defaultDsIndexTypedArray",uI),L(yt,"triangleIndicesToLine",dI),L(yt,"defaults",{position:[116.39,39.9,0],rotation:[0,0,0],scale:[1,1,1],modelMatrix:[-.8957893500750183,-.4444788412198901,0,0,.28511078894078473,-.5746037485691958,.7671651518152995,0,-.3409886777031455,.68721837274483,.6414496315691579,0,-2.1778739967047274e6,4389222053178148e-9,4.0694736755001387e6,1],viewDistanceRange:[1e3,1e4,3e4,6e4]}),L(yt,"getMinMaxPosition",p.getMinMaxPosition);let st=yt;(t=>{t.createDefaultProps=()=>({show:void 0,allowPicking:!1,allowPickingDepth:!0,position:p.reactArrayWithUndefined(void 0),rotation:p.reactArrayWithUndefined(void 0),scale:p.reactArrayWithUndefined(void 0),maximumScale:void 0,minimumScale:void 0,pixelSize:void 0,showSceneScale:void 0,modelMatrix:p.reactArrayWithUndefined(void 0),cull:p.react(void 0),boundingVolume:p.reactJson(void 0),renderState:p.reactJson(void 0),primitiveType:void 0,pass:void 0,vertexShaderSource:void 0,fragmentShaderSource:void 0,uniformMap:p.reactJson(void 0),localPosition:p.reactArrayWithUndefined(void 0),localRotation:p.reactArrayWithUndefined(void 0),localScale:p.reactArrayWithUndefined(void 0),localModelMatrix:p.reactArrayWithUndefined(void 0),occlude:void 0,count:void 0,offset:void 0,instanceCount:void 0,castShadows:void 0,receiveShadows:void 0,executeInClosestFrustum:void 0,debugShowBoundingVolume:void 0,debugOverlappingFrustums:void 0,pickOnly:void 0,depthForTranslucentClassification:void 0,viewDistanceRange:p.reactArrayWithUndefined(void 0),viewDistanceDebug:!1})})(st||(st={})),p.extendClassProps(st.prototype,st.createDefaultProps);class _I extends p.PosFloatDiv{constructor(){super(),this.contentDiv.style.backgroundColor="rgba(0, 0, 0, 0.8)",this.contentDiv.style.borderRadius="3px",this.contentDiv.style.color="rgb(255, 255, 255)",this.contentDiv.style.padding="1px 5px 1px 5px",this.contentDiv.style.fontSize="12px",this.contentDiv.style.whiteSpace="nowrap",this.contentDiv.innerText="未定义光标信息!",this.originRatioX=0,this.originRatioY=0,this.originOffsetX=-16}}class CI extends p.Destroyable{constructor(e,i){super();L(this,"_cursorDiv");L(this,"_pointerOut",this.disposeVar(p.react(!0)));L(this,"_show",this.disposeVar(p.react(!0)));this._cursorDiv=new p.DivPoi(i,e),this.dispose(()=>this._cursorDiv.destroy());const o=a=>{const[l,c]=p.getDomEventCurrentTargetPos(a);this._cursorDiv.floatDiv.winPos=[l,c],this._pointerOut.value=!1};e.addEventListener("pointermove",o),this.dispose(()=>e.removeEventListener("pointermove",o));const r=a=>{this._pointerOut.value=!0};e.addEventListener("pointerout",r),this.dispose(()=>e.removeEventListener("pointerout",r)),e.addEventListener("pointerleave",r),this.dispose(()=>e.removeEventListener("pointerleave",r)),e.addEventListener("pointercancel",r),this.dispose(()=>e.removeEventListener("pointercancel",r));const s=()=>{this._cursorDiv.show=this.show&&!this._pointerOut.value};s(),this.dispose(this.showChanged.disposableOn(s)),this.dispose(this._pointerOut.changed.disposableOn(s))}set show(e){this._show.value=e}get show(){return this._show.value}get showChanged(){return this._show.changed}reset(){this._pointerOut.value=!0}get cursorDiv(){return this._cursorDiv}set text(e){this._cursorDiv.floatDiv.contentDiv.innerText=e}get text(){return this._cursorDiv.floatDiv.contentDiv.innerText}}class xI extends p.Destroyable{constructor(e,i){super();L(this,"_show",this.disposeVar(p.react(!0)));L(this,"_winPosFromCartesian");L(this,"_near",this.disposeVar(p.react(0)));L(this,"_far",this.disposeVar(p.react(Number.POSITIVE_INFINITY)));L(this,"_actualShow",this.disposeVar(p.react(!1)));this._czmPoisContext=e;const{viewer:o,cameraChanged:r}=this._czmPoisContext;this._winPosFromCartesian=i||this.disposeVar(new eh(o,!0,r));let s=0,a=Number.POSITIVE_INFINITY;this.dispose(this._near.changed.disposableOn(c=>s=c*c)),this.dispose(this._far.changed.disposableOn(c=>a=c*c));const l=this.disposeVar(p.createNextMicroTaskEvent(this._near.changed,this._far.changed,this._show.changed,this._winPosFromCartesian.changed,r.changed));this.dispose(l.disposableOn(()=>{if(!this.show){this._actualShow.value=!1;return}const c=C.Cartesian3.distanceSquared(o.camera.positionWC,this._winPosFromCartesian.cartesian),h=c>=s&&c<=a;this._actualShow.value=h&&this._winPosFromCartesian.winPosValid&&!this._czmPoisContext.isPointOccludedByEarth(this._winPosFromCartesian.cartesian)}))}get actualShowChanged(){return this._actualShow.changed}get actualShow(){return this._actualShow.value}set cartesian(e){this._winPosFromCartesian.cartesian=e}get cartesian(){return this._winPosFromCartesian.cartesian}get winPosFromCartesian(){return this._winPosFromCartesian}set show(e){this._show.value=e}get show(){return this._show.value}set near(e){this._near.value=e}get near(){return this._near.value}set far(e){this._far.value=e}get far(){return this._far.value}}class dd extends xI{constructor(e,i,o){super(i,o);L(this,"_canvasPoi");L(this,"_zOrderChanged");L(this,"_zOrder");L(this,"depth",0);const{canvasPrimitivesContext:r}=this._czmPoisContext;this._canvasPoi=this.disposeVar(new e(r));const s=()=>{if(this.actualShow&&this.winPosFromCartesian.winPosValid){const{left:a,top:l,depth:c}=this.winPosFromCartesian.winPos;this._canvasPoi.winPos=[a,l],this.depth=c,this._canvasPoi.depth=this.zOrder??c,this._canvasPoi.show=!0}else this._canvasPoi.show=!1};this.d(this.zOrderChanged.don(()=>{s()})),this.dispose(this.winPosFromCartesian.changed.disposableOn(()=>{s()})),this.dispose(this.actualShowChanged.disposableOn(a=>{this._canvasPoi.show=a,s()}))}get canvasPoi(){return this._canvasPoi}set zOrder(e){this._zOrder!==e&&(this._zOrder=e,this.zOrderChanged.emit())}get zOrder(){return this._zOrder}get zOrderChanged(){return this._zOrderChanged||(this._zOrderChanged=new p.Event),this._zOrderChanged}}class pd extends p.Destroyable{constructor(e,i,o){super();L(this,"_divPoi");L(this,"_show",!0);L(this,"_occludedByEarth",!0);L(this,"_winPosFromCartesian");L(this,"_zOrderChanged");L(this,"_zOrder");L(this,"depth",0);this._czmPoisContext=i;const{viewer:r,divContainer:s,cameraChanged:a}=this._czmPoisContext;this._winPosFromCartesian=o||this.disposeVar(new eh(r,!0,a)),this._divPoi=new p.DivPoi(e,s),this.dispose(()=>this._divPoi.destroy()),this.dispose(this._winPosFromCartesian.changed.disposableOn((l,c)=>{this._occludedByEarth=!l||this._czmPoisContext.isPointOccludedByEarth(this._winPosFromCartesian.cartesian);const{left:h,top:u,depth:A}=c,{floatDiv:f}=this._divPoi;f.winPos=[h,u],this.depth=Math.round((1-A)*1e11),f.element.style.zIndex=`${this.zOrder||this.depth}`,this._updateShow()})),this.d(this.zOrderChanged.don(()=>{const{floatDiv:l}=this._divPoi;l.element.style.zIndex=`${this.zOrder||this.depth}`,this._updateShow()}))}get divPoi(){return this._divPoi}_updateShow(){this._divPoi.show=this._show&&!this._occludedByEarth&&this._winPosFromCartesian.winPosValid}set cartesian(e){this._winPosFromCartesian.cartesian=e}get cartesian(){return this._winPosFromCartesian.cartesian}get winPosFromCartesian(){return this._winPosFromCartesian}set show(e){this._show!==e&&(this._show=e,this._updateShow())}get show(){return this._show}set zOrder(e){this._zOrder!==e&&(this._zOrder=e,this.zOrderChanged.emit())}get zOrder(){return this._zOrder}get zOrderChanged(){return this._zOrderChanged||(this._zOrderChanged=new p.Event),this._zOrderChanged}}class SI extends p.Destroyable{constructor(e,i,o,r){super();L(this,"_czmCanvasPoi");L(this,"_czmDivPoi");L(this,"_show",!0);L(this,"_winPosFromCartesian");L(this,"_switchTransition");L(this,"_status","Canvas");L(this,"_statusChanged");this._czmPoisContext=o;const{viewer:s,cameraChanged:a}=this._czmPoisContext;this._winPosFromCartesian=r||this.disposeVar(new eh(s,!0,a)),this._czmCanvasPoi=new dd(e,this._czmPoisContext,this._winPosFromCartesian),this.dispose(()=>this._czmCanvasPoi.destroy()),this._czmDivPoi=new pd(i,this._czmPoisContext,this._winPosFromCartesian),this.dispose(()=>this._czmDivPoi.destroy()),this._switchTransition=new p.Transition(300),this.dispose(this._switchTransition.currentChanged.disposableOn((l,c)=>{this._updateShow(),this._czmCanvasPoi.canvasPoi.opacity=1-c,this._czmDivPoi.divPoi.floatDiv.opacity=c})),this._updateShow()}_updateShow(){this._czmCanvasPoi.show=this._show&&this._switchTransition.current<1,this._czmDivPoi.show=this._show&&this._switchTransition.current>0}set show(e){this._show!==e&&(this._show=e,this._updateShow())}get show(){return this._show}set cartesian(e){this._winPosFromCartesian.cartesian=e}get cartesian(){return this._winPosFromCartesian.cartesian}get winPosFromCartesian(){return this._winPosFromCartesian}set status(e){this._status!==e&&(this._status=e,this._switchTransition.target=this._status==="Canvas"?0:1,this._statusChanged&&this._statusChanged.emit(this._status))}get status(){return this._status}get statusChanged(){return this._statusChanged||(this._statusChanged=new p.Event),this._statusChanged}get czmCanvasPoi(){return this._czmCanvasPoi}get czmDivPoi(){return this._czmDivPoi}}class rw extends p.Destroyable{constructor(e,i=!0){super();L(this,"_divContainer");L(this,"_canvasPrimitivesContext");L(this,"_isPointOccludedByEarth");L(this,"_poiClickedEvent");L(this,"_clickEvent",this.disposeVar(new p.Event));L(this,"_dbclickEvent",this.disposeVar(new p.Event));L(this,"_downEvent",this.disposeVar(new p.Event));L(this,"_upEvent",this.disposeVar(new p.Event));L(this,"_moveEvent",this.disposeVar(new p.Event));L(this,"_outEvent",this.disposeVar(new p.Event));L(this,"_cameraChanged");this._viewer=e,this._useInnerInteraction=i,this._cameraChanged=new Hs(this._viewer.scene);const o=this._viewer.canvas.parentElement;this._divContainer=o;const r=document.createElement("div");r.style.position="absolute",r.style.left="0px",r.style.top="0px",r.style.width="100%",r.style.height="100%",r.style.pointerEvents="none",o.appendChild(r),this.dispose(()=>{o.removeChild(r)});const s=new p.CanvasPrimitivesContext;this._canvasPrimitivesContext=s,this.dispose(()=>{this._canvasPrimitivesContext.destroy()}),r.appendChild(s.element);{const u=new C.EllipsoidalOccluder(C.Ellipsoid.WGS84,new C.Cartesian3),A=new Hs(this._viewer.scene);this.dispose(()=>A.destroy());const f=()=>u.cameraPosition=this._viewer.camera.positionWC;this.dispose(A.changed.disposableOn(f)),f();const d=g=>!u.isPointVisible(g);this._isPointOccludedByEarth=d}this.dispose(this._clickEvent.disposableOn((u,A,f)=>{const d=s.pick(u,A,1,1);if(d.length>0){this._poiClickedEvent&&this._poiClickedEvent.emit(!0);const{poi:g,tag:v}=d[0];for(let y of s.pois)y===g?y.hasClickEvent()&&y.clickEvent.emit(u,A,v,y,f):y.hasClickOutEvent()&&y.clickOutEvent.emit(u,A,"",y,f)}else{this._poiClickedEvent&&this._poiClickedEvent.emit(!1);for(let g of s.pois)g.hasClickOutEvent()&&g.clickOutEvent.emit(u,A,"",g,f)}})),this.dispose(this._dbclickEvent.disposableOn((u,A,f)=>{const d=s.pick(u,A,1,1);if(d.length>0){this._poiClickedEvent&&this._poiClickedEvent.emit(!0);const{poi:g,tag:v}=d[0];for(let y of s.pois)y===g?y.hasDbclickEvent()&&y.dbclickEvent.emit(u,A,v,y,f):y.hasDbclickOutEvent()&&y.dbclickOutEvent.emit(u,A,"",y,f)}else{this._poiClickedEvent&&this._poiClickedEvent.emit(!1);for(let g of s.pois)g.hasDbclickOutEvent()&&g.dbclickOutEvent.emit(u,A,"",g,f)}}));let a;this.dispose(this._downEvent.disposableOn((u,A)=>{a&&(a.actived=!1);const f=s.pick(u,A,1,1);if(f.length>0){const{poi:d,tag:g}=f[0];d instanceof p.CanvasPoi&&(d.actived=!0,a=d)}})),this.dispose(this._upEvent.disposableOn(()=>{a&&(a.actived=!1,a=void 0)}));let l;function c(u){l!==u&&(l&&(l.hovered=!1),l=u,l&&(l.hovered=!0))}const h=this._moveEvent.disposableOn((u,A)=>{let f;const d=s.pick(u,A,1,1);if(d.length>0){const g=d[0].poi;g instanceof p.CanvasPrimitive&&(f=g)}c(f)});if(this.dispose(h),this.dispose(this._outEvent.disposableOn((u,A,f)=>{c(void 0)})),this._useInnerInteraction){const u=this._viewer.canvas.parentElement,A=this.disposeVar(p.DomElementEvent.create(u,"pointerdown")),f=this.disposeVar(p.DomElementEvent.create(u,"pointermove")),d=this.disposeVar(p.DomElementEvent.create(u,"pointerup")),g=this.disposeVar(p.DomElementEvent.create(u,"pointerout")),v=this.disposeVar(new p.PointerClick),y=this.disposeVar(new p.PointerHover);this.dispose(A.disposableOn(m=>v.pointerDown(m))),this.dispose(f.disposableOn(m=>v.pointerMove(m))),this.dispose(d.disposableOn(m=>v.pointerUp(m))),this.dispose(g.disposableOn(m=>v.pointerOut(m))),this.dispose(A.disposableOn(m=>y.pointerDown(m))),this.dispose(f.disposableOn(m=>y.pointerMove(m))),this.dispose(d.disposableOn(m=>y.pointerUp(m))),this.dispose(g.disposableOn(m=>y.pointerOut(m))),this.dispose(v.clickEvent.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);m.button===0?this._clickEvent.emit(w,_,m):m.button===2&&this._clickEvent.emit(w,_,m)})),this.dispose(v.dbclickEvent.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);m.button===0&&this._dbclickEvent.emit(w,_,m)})),this.dispose(A.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);m.button===0&&this._downEvent.emit(w,_,m)})),this.dispose(d.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);m.button===0&&this._upEvent.emit(w,_,m)})),this.dispose(f.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);this._moveEvent.emit(w,_,m)})),this.dispose(g.disposableOn(m=>{const[w,_]=p.getDomEventCurrentTargetPos(m);this._outEvent.emit(w,_,m)}))}}get useInnerInteraction(){return this._useInnerInteraction}get divContainer(){return this._divContainer}get canvasPrimitivesContext(){return this._canvasPrimitivesContext}get viewer(){return this._viewer}get cameraChanged(){return this._cameraChanged}isPointOccludedByEarth(e){return this._isPointOccludedByEarth(e)}get poiClickedEvent(){return this._poiClickedEvent||(this._poiClickedEvent=new p.Event),this._poiClickedEvent}pointerClick(...e){this._useInnerInteraction?console.warn("当前使用内置交互(useInnerInteraction为true),此函数无效!"):this._clickEvent.emit(...e)}pointerDbclick(...e){this._useInnerInteraction?console.warn("当前使用内置交互(useInnerInteraction为true),此函数无效!"):this._dbclickEvent.emit(...e)}pointerDown(...e){this._useInnerInteraction?console.warn("当前使用内置交互(useInnerInteraction为true),此函数无效!"):this._downEvent.emit(...e)}pointerUp(...e){this._useInnerInteraction?console.warn("当前使用内置交互(useInnerInteraction为true),此函数无效!"):this._upEvent.emit(...e)}pointerMove(...e){this._useInnerInteraction?console.warn("当前使用内置交互(useInnerInteraction为true),此函数无效!"):this._moveEvent.emit(...e)}}class Qi extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_clickEvent",this.disposeVar(new p.Event));L(this,"_clickOutEvent",this.disposeVar(new p.Event));L(this,"_dblclickEvent",this.disposeVar(new p.Event));L(this,"_dblclickOutEvent",this.disposeVar(new p.Event));L(this,"_canvasPoiClassAndCreateFunc",p.react(void 0));L(this,"_czmViewVisibleDistanceRangeControl");L(this,"_canvasObj");L(this,"_id",this.disposeVar(p.react(p.createGuid())));i&&(this.id=i),this._czmViewVisibleDistanceRangeControl=this.disposeVar(new Ao(e,[this,"viewDistanceRange"],[this,"position"])),this.dispose(p.track([this._czmViewVisibleDistanceRangeControl,"debug"],[this,"viewDistanceDebug"]));const o=e.viewer;if(!o)return;const r=Sn(o);if(!r)return;const{poiContext:s,labelManager:a}=r;a.add(this),this.d(()=>{a.delete(this)}),s&&(this._canvasObj=this.disposeVar(new p.ObjResettingWithEvent(this.canvasPoiClassAndCreateFuncChanged,()=>{if(!this.canvasPoiClassAndCreateFunc)return;const[l,c]=this.canvasPoiClassAndCreateFunc;return new EI(this,l,s,o,c)})))}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get clickEvent(){return this._clickEvent}get clickOutEvent(){return this._clickOutEvent}get dblclickEvent(){return this._dblclickEvent}get dblclickOutEvent(){return this._dblclickOutEvent}get canvasPoiClassAndCreateFunc(){return this._canvasPoiClassAndCreateFunc.value}set canvasPoiClassAndCreateFunc(e){this._canvasPoiClassAndCreateFunc.value=e}get canvasPoiClassAndCreateFuncChanged(){return this._canvasPoiClassAndCreateFunc.changed}get czmViewerVisibleDistanceRangeControl(){return this._czmViewVisibleDistanceRangeControl}get visibleAlpha(){return this._czmViewVisibleDistanceRangeControl.visibleAlpha}get visibleAlphaChanged(){return this._czmViewVisibleDistanceRangeControl.visibleAlphaChanged}get canvasObj(){var e;return(e=this._canvasObj)==null?void 0:e.obj}get id(){return this._id.value}set id(e){this._id.value=e}get idChanged(){return this._id.changed}}L(Qi,"defaults",{viewDistanceRange:[1e3,1e4,3e4,6e4]}),(t=>{t.createDefaultProps=()=>({show:!0,enabled:!0,position:p.reactArrayWithUndefined(void 0),positionEditing:!1,viewDistanceRange:p.reactArrayWithUndefined(void 0),viewDistanceDebug:!1,zOrder:0})})(Qi||(Qi={})),p.extendClassProps(Qi.prototype,Qi.createDefaultProps);class EI extends p.Destroyable{constructor(e,i,o,r,s){super();L(this,"czmCanvasPoi");const a=this.czmCanvasPoi=this.disposeVar(new dd(i,o));this.disposeVar(s(a.canvasPoi,e.visibleAlphaChanged));{const l=()=>{e.position&&(a.cartesian=vt(e.position))};l(),this.dispose(e.positionChanged.disposableOn(l))}{const l=()=>{a.show=(e.show??!0)&&!!e.position&&e.visibleAlpha>0};l();const c=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.positionChanged,e.visibleAlphaChanged));this.dispose(c.disposableOn(l))}this.dispose(e.flyToEvent.disposableOn(()=>{if(!e.position){console.warn("GeoPoint当前没有位置信息,无法飞入!");return}let l=1e3;if(e.viewDistanceRange){const[c,h,u,A]=e.viewDistanceRange;l=(h+u)*.5}Be(r,e.position,l,void 0,1e3)}))}}class PI extends p.Destroyable{constructor(n,e){super();const i=this.disposeVar(p.createNextAnimateFrameEvent(n.showChanged,n.positionChanged,n.fgColorChanged,n.bgColorChanged,n.tooltipChanged,n.tooltipShowChanged,n.titleChanged,n.sizeChanged,n.originRatioAndOffsetChanged,n.opacityChanged,n.scaleChanged)),o=()=>{e.fgColor=n.fgColor??[1,1,1,1],e.bgColor=n.bgColor??[.3,.3,.3,.8],e.tooltip=n.tooltip??"",e.tooltipShow=n.tooltipShow??!0,e.title=n.title??"",e.size=n.size??[32,32],e.originRatioAndOffset=n.originRatioAndOffset??[.5,1,0,0],e.hovered=n.hovered??!1,e.opacity=n.opacity??1,e._scale=n.scale??1};o(),this.dispose(i.disposableOn(o));const r=this.disposeVar(Q.ESSceneObject.context.createEnvStrReact([n,"imageUri"],"${earthsdk3-assets-script-dir}/assets/img/location.png")),s=this.disposeVar(p.createProcessingFromAsyncFunc(async(c,h)=>{const u=await c.promise(p.fetchImage(h));e.image=u})),a=()=>{if(!r.value)return;const c=r.value.trim();c!==""&&s.restart(void 0,c)};a(),this.dispose(r.changed.disposableOn(a));const l=this.disposeVar(new p.Event);this.dispose(e.clickEvent.disposableOn((c,h,u,A,f)=>{(n.enabled??!0)&&l.emit(f)})),this.dispose(l.don(c=>{n.clickEvent.emit(c)})),this.dispose(e.clickOutEvent.disposableOn((c,h,u,A,f)=>{(n.enabled??!0)&&n.clickOutEvent.emit(f)})),this.dispose(e.dbclickEvent.disposableOn((c,h,u,A,f)=>{(n.enabled??!0)&&n.dbclickEvent.emit(f)})),this.dispose(e.dbclickOutEvent.disposableOn((c,h,u,A,f)=>{(n.enabled??!0)&&n.dbclickOutEvent.emit(f)})),this.dispose(p.bind([n,"hovered"],[e,"hovered"])),this.ad(p.bind([e,"isHoverZoom"],[n,"isHoverZoom"]))}}function fh(t,n,e,i){const[o,r]=t,[s,a,l,c]=i,h=n[0]*e[0],u=n[1]*e[1],A=o-(h*s+l),f=r-(u*a+c);return{left:A,top:f,right:A+h,bottom:f+u}}function TI(t,n,e,i,o,r){t.beginPath(),t.moveTo(n+r,e),t.lineTo(n+i-r,e),t.arcTo(n+i,e,n+i,e+r,r),t.lineTo(n+i,e+o-r),t.arcTo(n+i,e+o,n+i-r,e+o,r),t.lineTo(n+r,e+o),t.arcTo(n,e+o,n,e+o-r,r),t.lineTo(n,e+r),t.arcTo(n,e,n+r,e,r)}function II(t){const{width:n,height:e}=t,i=n instanceof SVGAnimatedLength?n.baseVal.SVG_LENGTHTYPE_PX:n,o=e instanceof SVGAnimatedLength?e.baseVal.SVG_LENGTHTYPE_PX:e,r=document.createElement("canvas");r.width=i,r.height=o;const s=r.getContext("2d");if(!s)throw new Error("!cavnasCtx");return s.drawImage(t,0,0,i,o),r}function kI(t,n){const{width:e,height:i}=t,o=t.getContext("2d");if(!o)throw new Error("!cavnasCtx");const[r,s,a]=n.map(u=>u*255|0),l=o.getImageData(0,0,e,i),c=l.data;for(var h=0;h<c.length;h+=4)c[h]=r,c[h+1]=s,c[h+2]=a;o.putImageData(l,0,0)}function ow(t,n,e,i=[.5,1,0,0],o,r="12px Arial",s=2,a="#FFF",l="#000A"){t.font=r;const c=t.measureText(o),h=c.actualBoundingBoxLeft+c.actualBoundingBoxRight,u=c.fontBoundingBoxAscent+c.fontBoundingBoxDescent,A=n,f=e,d=h+s*2,g=u+s*2,{left:v,top:y,bottom:m}=fh([A,f],[d,g],[1,1],i);t.fillStyle=l,TI(t,v,y,d,g,s),t.fill(),t.fillStyle=a,t.fillText(o,v+s,m-s-c.fontBoundingBoxDescent)}function dh(t){return("00"+t.toString(16).toUpperCase()).substr(-2)}function ph(t){const[n,e,i,o]=t.map(r=>r*255|0);return`#${dh(n)}${dh(e)}${dh(i)}${dh(o)}`}function FI(t,n){const[e,i,o]=n,r=`${e}-${i}-${o}`;let s=p.getExtProp(t,r);return s||(s=II(t),kI(s,n),p.setExtProp(t,r,s)),s}class BI extends p.CanvasPoi{constructor(e,i,o=[32,32],r=[.5,1,0,0],s="#F00F"){super(e);L(this,"_tooltip","");L(this,"_title","");L(this,"__scale",[1,1]);L(this,"_tooltipAlpha",0);L(this,"_bgColor",[.3,.3,.3,.8]);L(this,"_bgColorHexStr",ph(this._bgColor));L(this,"_fgColor",[1,1,1,1]);L(this,"_fgColorHexStr",ph(this._fgColor));L(this,"_tooltipShow",this.disposeVar(p.react(!0)));L(this,"_isHoverZoom",this.disposeVar(p.react(!1)));this._image=i,this._size=o,this._originRatioAndOffset=r,this._defaultColorStr=s;const a=new p.Transition(100),l=new p.Transition(100);this.dispose(()=>{a.destroy(),l.destroy()});const c=()=>{this._clickEvent&&!this._clickEvent.empty&&(this.isHoverZoom&&(this.hovered?(this._scale[0]*=1.5,this._scale[1]*=1.5):(this._scale[0]/=1.5,this._scale[1]/=1.5)),this._tooltipAlpha=a.current)};this.dispose(this.activedChanged.disposableOn(u=>{l.target=u?1:0,this.needRedraw()}));const h=()=>{const u=this.tooltipShow&&this.hovered;a.target=u?1:0,c(),this.needRedraw()};this.dispose(this.hoveredChanged.disposableOn(h)),this.dispose(this.tooltipShowChanged.disposableOn(h)),this.dispose(this.selectedChanged.disposableOn(()=>{this.needRedraw()}))}get tooltipShow(){return this._tooltipShow.value}set tooltipShow(e){this._tooltipShow.value=e}get tooltipShowChanged(){return this._tooltipShow.changed}get isHoverZoom(){return this._isHoverZoom.value}set isHoverZoom(e){this._isHoverZoom.value=e}get isHoverZoomChanged(){return this._isHoverZoom.changed}set size(e){const[i,o]=e,[r,s]=this._size;(r!==i||s!==o)&&(this._size[0]=i,this._size[1]=o,this.needRedraw(),this.needPickRedraw())}get size(){return this._size}set _scale(e){const[i,o]=e,[r,s]=this.__scale;(r!==i||s!==o)&&(this.__scale[0]=i,this.__scale[1]=o,this.needRedraw(),this.needPickRedraw())}get _scale(){return this.__scale}set fgColor(e){if(!this._fgColor.every((i,o)=>e[o]===i)){const[i,o,r,s]=e;this._fgColor.splice(0,4,i,o,r,s),this._fgColorHexStr=ph(this._fgColor),this.needRedraw()}}get fgColor(){return this._fgColor}set bgColor(e){if(!this._bgColor.every((i,o)=>e[o]===i)){const[i,o,r,s]=e;this._bgColor.splice(0,4,i,o,r,s),this._bgColorHexStr=ph(this._bgColor),this.needRedraw()}}get bgColor(){return this._bgColor}set originRatioAndOffset(e){const[i,o,r,s]=this._originRatioAndOffset,[a,l,c,h]=e;(i!==a||o!==l||r!==c||s!==h)&&(this._originRatioAndOffset.splice(0,4,a,l,c,h),this.needRedraw(),this.needPickRedraw())}get originRatioAndOffset(){return this._originRatioAndOffset}set image(e){this._image!==e&&(this._image=e,this.needRedraw())}get image(){return this._image}set defaultColorStr(e){this._defaultColorStr!==e&&(this._defaultColorStr=e,this.needRedraw())}get defaultColorStr(){return this._defaultColorStr}set tooltip(e){this._tooltip!==e&&(this._tooltip=e,this.needRedraw())}get tooltip(){return this._tooltip}set title(e){this._title!==e&&(this._title=e,this.needRedraw())}get title(){return this._title}draw(e){if(!this._show)return;const[i,o]=this._winPos,r=this._size[0]*this.__scale[0],s=this._size[1]*this.__scale[1],{left:a,top:l,right:c}=fh([i,o],this._size,this.__scale,this._originRatioAndOffset),h=e.globalAlpha;if(e.globalAlpha=this.opacity,this._image){if(this.selected){const u=FI(this._image,[1,0,0]),{left:A,top:f}=fh([i,o],[r+6,s+6],[1,1],this._originRatioAndOffset);e.drawImage(u,A,f,r+6,s+6)}e.drawImage(this._image,a,l,r,s)}else e.fillStyle=this._fgColorHexStr,e.fillRect(a,l,r,s);if(this._title!==""&&ow(e,i+20,o-16,[0,.5,0,0],this._title,"14px Arial",4,this._fgColorHexStr,this._bgColorHexStr),e.globalAlpha=h,this._hovered&&this._tooltip!==""){const u=e.globalAlpha;e.globalAlpha=this._tooltipAlpha,ow(e,(a+c)*.5,l-5,[.5,1,0,0],this._tooltip,"12px Arial",4,this._fgColorHexStr,this._bgColorHexStr),e.globalAlpha=u}}drawForPick(e,i){if(!this._show)return;const[o,r]=this._winPos,s=i("default"),a=this._size[0]*this.__scale[0],l=this._size[1]*this.__scale[1],{left:c,top:h}=fh([o,r],this._size,this.__scale,this._originRatioAndOffset);e.fillStyle=s,e.fillRect(c,h,a,l)}}class ui extends p.Destroyable{constructor(e){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_clickEvent",this.disposeVar(new p.Event));L(this,"_clickOutEvent",this.disposeVar(new p.Event));L(this,"_dbclickEvent",this.disposeVar(new p.Event));L(this,"_dbclickOutEvent",this.disposeVar(new p.Event));L(this,"_clickFunc",this.disposeVar(p.react(void 0)));L(this,"_clickFuncInit",(()=>{this.dispose(this.clickEvent.disposableOn(e=>this.clickFunc&&this.clickFunc(e)))})());L(this,"_geoCanvasPoi");if(this._geoCanvasPoi=this.disposeVar(new Qi(e)),!e.viewer)return;const{geoCanvasPoi:o}=this;o.canvasPoiClassAndCreateFunc=[BI,r=>new PI(this,r)],this.dispose(p.bind([o,"show"],[this,"show"])),this.dispose(p.bind([o,"enabled"],[this,"enabled"])),this.dispose(p.bind([o,"position"],[this,"position"])),this.dispose(p.bind([o,"positionEditing"],[this,"positionEditing"])),this.dispose(p.track([o,"viewDistanceRange"],[this,"viewDistanceRange"])),this.dispose(p.track([o,"viewDistanceDebug"],[this,"viewDistanceDebug"])),this.dispose(p.track([o,"zOrder"],[this,"zOrder"])),this.dispose(this.flyToEvent.disposableOn(r=>{o.flyTo(r)})),this.dispose(this._clickEvent.disposableOn(r=>{this.pickOnClick&&this.pickedEvent.emit(new Q.ESJPickedResult({type:"viewerPicking",pointerEvent:r}))}));{const r=()=>{const s=Zf(this.clickFuncStr,["event"]);s&&(this.clickFunc=s)};r(),this.dispose(this.clickFuncStrChanged.disposableOn(r))}}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get clickEvent(){return this._clickEvent}get clickOutEvent(){return this._clickOutEvent}get dbclickEvent(){return this._dbclickEvent}get dbclickOutEvent(){return this._dbclickOutEvent}get clickFunc(){return this._clickFunc.value}set clickFunc(e){this._clickFunc.value=e}get clickFuncChanged(){return this._clickFunc.changed}get geoCanvasPoi(){return this._geoCanvasPoi}}L(ui,"defaults",{viewDistanceRange:[1e3,1e4,3e4,6e4],scale:[1,1]}),(t=>{t.createDefaultProps=()=>({show:!0,enabled:!0,position:p.reactArrayWithUndefined(void 0),positionEditing:!1,fgColor:p.reactArray([1,1,1,1]),bgColor:p.reactArray([0,0,0,0]),tooltip:"",tooltipShow:!0,title:"",size:p.reactArray([32,32]),scale:p.reactArray([1,1]),originRatioAndOffset:p.reactArray([.5,1,0,0]),hovered:!1,imageUri:"${earthsdk3-assets-script-dir}/assets/img/location.png",opacity:1,viewDistanceRange:p.reactArrayWithUndefined(void 0),viewDistanceDebug:!1,pickOnClick:!1,clickFuncStr:"",zOrder:0,isHoverZoom:!1})})(ui||(ui={})),p.extendClassProps(ui.prototype,ui.createDefaultProps);class _a extends p.Destroyable{constructor(e){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_commandEvent",this.disposeVar(new p.Event));L(this,"_dbclickEvent",this.disposeVar(new p.Event));const i=this;let o=Number.POSITIVE_INFINITY;this.dispose(this.enabledChanged.disposableOn(d=>{o=d??!1?Date.now():Number.POSITIVE_INFINITY}));const r=this.disposeVar(new p.Transition(100));r.reset(0);const s=this.disposeVar(p.createTimeoutWithStartValues(()=>r.target=0,1e3)),a=this.disposeVar(p.createTimeoutWithStartValues(()=>r.target=1,1e3)),l=this.disposeVar(new ui(e));l.originRatioAndOffset=[.5,.5,0,0],this.dispose(p.track([l,"tooltip"],[i,"title"]));{const d=()=>{l.size=this.mainPoiSize??[12,12]};d(),this.dispose(this.mainPoiSizeChanged.disposableOn(d))}{const d=()=>{l.fgColor=this.mainPoiFgColor??[1,1,1,1]};d(),this.dispose(this.mainPoiFgColorChanged.disposableOn(d))}{const d=()=>{l.bgColor=this.mainPoiBgColor??[0,0,0,.6]};d(),this.dispose(this.mainPoiBgColorChanged.disposableOn(d))}const c=this.disposeVar(p.createNextAnimateFrameEvent(i.showChanged,i.positionChanged,i.descriptionChanged,i.titleChanged,i.imageUriChanged)),h=()=>{l.show=i.show??!0,l.imageUri=i.imageUri??"${earthsdk3-assets-script-dir}/assets/img/point-yellow.png",l.position=i.position};h(),this.dispose(c.disposableOn(h)),this.dispose(p.bind([l,"position"],[this,"position"])),this.dispose(p.bind([l,"positionEditing"],[this,"positionEditing"])),this.dispose(this._flyToEvent.disposableOn(d=>l.flyTo(d)));const u=[],A=()=>{u.forEach(d=>{d.destroy()}),u.length=0};this.dispose(A);const f=()=>{A();const{commands:d}=i;if(!d)return;const g=d.length,v=50,y=0,m=-(g*v*Math.PI/180)*.5;for(let w=0;w<g;++w){const[_,E,T,P]=d[w],F=m+v*(w+.5)*Math.PI/180,D=Math.sin(F)*y,B=Math.cos(F)*y,S=new ui(e);S.imageUri=P,S.tooltip=E,S.bgColor=[0,0,0,.6],S.fgColor=[1,1,1,1],S.size=[24,24],S.dispose(p.track([S,"position"],[i,"position"])),S.originRatioAndOffset=[.5,.5,-D,B],S.show=!1,S.opacity=0,S.dispose(S.opacityChanged.disposableOn(I=>S.show=(I??1)>0)),S.dispose(S.clickEvent.disposableOn(I=>i.commandEvent.emit(_,I))),S.dispose(S.hoveredChanged.disposableOn(I=>I?s.cancel():s.restart())),S.dispose(r.currentChanged.disposableOn(I=>S.enabled=I===1)),u.push(S)}};f(),this.dispose(i.commandsChanged.disposableOn(f)),this.dispose(l.hoveredChanged.disposableOn(d=>d?s.cancel():s.restart())),this.dispose(l.hoveredChanged.disposableOn(d=>d?i.enabled&&a.restart():a.cancel())),this.dispose(r.currentChanged.disposableOn(d=>{const g=u.length,v=50,y=d*35,m=-(g*v*Math.PI/180)*.5;for(let w=0;w<g;++w){const _=m+v*(w+.5)*Math.PI/180,E=Math.sin(_)*y,T=Math.cos(_)*y;u[w].originRatioAndOffset=[.5,.5,-E,T],u[w].opacity=d}})),this.dispose(l.clickEvent.disposableOn(d=>{if(!i.enabled)return;const g=d.__xbsj_listenerTime__;if(!(g!==void 0&&o>g))if(d.button===0)if(i.clickCommandName)i.commandEvent.emit(i.clickCommandName,d);else{if(r.current>0&&r.current<1)return;r.target=r.target===1?0:1}else d.button===2&&i.rightClickCommandName&&i.commandEvent.emit(i.rightClickCommandName,d)})),this.dispose(l.clickOutEvent.disposableOn(()=>{i.enabled&&(r.target=0)})),this.dispose(i.commandEvent.disposableOn(()=>r.target=0)),this.dispose(l.dbclickEvent.disposableOn(d=>{if(!i.enabled)return;const g=d.__xbsj_listenerTime__;g!==void 0&&o>g||(i.dbclickEvent.emit(d),a.isRunning&&s.cancel(),r.target=0)})),this.dispose(r.targetChanged.disposableOn(d=>d===1?s.restart():s.cancel())),this.dispose(r.targetChanged.disposableOn(d=>d===1&&a.cancel())),this.dispose(r.targetChanged.disposableOn(d=>l.tooltipShow=d===0))}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get commandEvent(){return this._commandEvent}get dbclickEvent(){return this._dbclickEvent}}(t=>{t.createDefaultProps=()=>({show:!0,enabled:!0,position:p.reactArrayWithUndefined(void 0),positionEditing:!1,title:"",description:"",imageUri:"${earthsdk3-assets-script-dir}/assets/img/point-yellow.png",commands:p.reactDeepArrayWithUndefined(void 0,(n,e)=>n.every((i,o)=>i===e[o]),n=>[...n]),clickCommandName:"",rightClickCommandName:"",mainPoiSize:p.reactArrayWithUndefined(void 0),mainPoiBgColor:p.reactArrayWithUndefined(void 0),mainPoiFgColor:p.reactArrayWithUndefined(void 0)})})(_a||(_a={})),p.extendClassProps(_a.prototype,_a.createDefaultProps);const md=`class MyDiv {
536
536
  // container是Poi的div
537
537
  // geoCustomDivPoi指向当前的GeoCustomDivPoi场景对象
538
538
  // viewer指定当前的视口
@@ -3488,7 +3488,7 @@ export type IndexJsonType = {
3488
3488
  \`\`\`
3489
3489
  ${fC}
3490
3490
  \`\`\`
3491
- `,Ct=class Ct extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_loadFuncReact",this.disposeVar(p.react(void 0)));L(this,"_dataSource",this.disposeVar(p.react(void 0)));L(this,"_data");L(this,"_defaultHeight",{});L(this,"_defaultBoundingSphere",new C.BoundingSphere);const o=e.viewer;if(!o){console.warn("viewer is undefined!");return}let r=()=>{this.dataSource&&o.dataSources.remove(this.dataSource,!0),this.dataSource=void 0,this._data=void 0};this.dispose(()=>{r()});{const s=this.dv(p.createProcessingFromAsyncFunc(async c=>{if(this.dataSource&&r(),!!this.url){do{if(typeof this.url=="object"){this._data=this.url;break}if(this._isJSONString(this.url)){this._data=JSON.parse(this.url);break}await fetch(Q.ESSceneObject.context.getStrFromEnv(this.url)).then(h=>h.json()).then(h=>{this._data=h}).catch(h=>{console.warn("ESGeoJson数据加载失败",h)})}while(!1);this.dataSource=await C.GeoJsonDataSource.load(this._data),o.dataSources.add(this.dataSource).then(h=>{var A,f;const u=[];for(const d of h.entities.values)if(C.Entity.prototype&&(d.ESSceneObjectID=i),this._isEntityShow(d,e),d.polygon&&u.push(...(A=d.polygon.hierarchy)==null?void 0:A.getValue(C.JulianDate.now()).positions),d.polyline&&u.push(...(f=d.polyline.positions)==null?void 0:f.getValue(C.JulianDate.now())),d.position){const g=d.position.getValue(C.JulianDate.now());g&&u.push(g)}this._defaultBoundingSphere=C.BoundingSphere.fromPoints(u)})}})),a=()=>{s.isRunning&&s.cancel(),s.restart()};a();const l=this.dv(p.createNextAnimateFrameEvent(this.loadFunChanged,this.urlChanged));this.dispose(l.don(a))}{const s=()=>{var l,c;if(this.dataSource)if(this.dataSource.show=this.show,this.loadFun)try{this.loadFun(this.dataSource)}catch(h){console.error(h)}else{const h=this.dataSource.entities.values;for(let u=0;u<h.length;u++){const A=h[u];if(A.polygon){this._defaultHeight[A.id]||(this._defaultHeight[A.id]=(l=A.polygon.height)==null?void 0:l.getValue(C.JulianDate.now())),A.polygon.height=this.fillGround?void 0:new C.ConstantProperty(this._defaultHeight[A.id]),A.polygon.perPositionHeight=new C.ConstantProperty(!this.fillGround),A.polygon.heightReference=new C.ConstantProperty(this.heightReference.toUpperCase()=="NONE"?C.HeightReference.NONE:this.heightReference.toUpperCase()=="CLAMP_TO_GROUND"?C.HeightReference.CLAMP_TO_GROUND:C.HeightReference.RELATIVE_TO_GROUND),A.polygon.show=new C.ConstantProperty(this.filled??Ct.defaults.filled),A.polygon.material=new C.ColorMaterialProperty(new C.Color(...this.fillColor??Ct.defaults.fillColor)),A.polygon.outline=new C.ConstantProperty(!1),A.polyline=new C.PolylineGraphics;const f=JSON.parse(JSON.stringify((c=A.polygon.hierarchy)==null?void 0:c.getValue(C.JulianDate.now()).positions));C.Cartesian3.equals(f[0],f[f.length-1])||f.push(f[0]),A.polyline.positions=f}if(A.polyline&&(A.polyline.show=new C.ConstantProperty(this.stroked??Ct.defaults.stroked),A.polyline.width=new C.ConstantProperty(this.strokeWidth??Ct.defaults.strokeWidth),A.polyline.material=new C.ColorMaterialProperty(new C.Color(...this.strokeColor??Ct.defaults.strokeColor)),A.polyline.clampToGround=new C.ConstantProperty(this.strokeGround)),A.billboard){A.billboard.show=new C.ConstantProperty(this.imageShow??Ct.defaults.imageShow),A.billboard.width=new C.ConstantProperty(this.imageSize?this.imageSize[0]:Ct.defaults.imageSize[0]),A.billboard.height=new C.ConstantProperty(this.imageSize?this.imageSize[1]:Ct.defaults.imageSize[1]);const f=this.imageUrl?typeof this.imageUrl=="string"?this.imageUrl:this.imageUrl.url:Ct.defaults.imageUrl;A.billboard.image=new C.ConstantProperty(Q.ESSceneObject.context.getStrFromEnv(f)),A.billboard.horizontalOrigin=new C.ConstantProperty(C.HorizontalOrigin.LEFT),A.billboard.verticalOrigin=new C.ConstantProperty(C.VerticalOrigin.TOP),A.billboard.heightReference=new C.ConstantProperty(this.heightReference.toUpperCase()=="NONE"?C.HeightReference.NONE:this.heightReference.toUpperCase()=="CLAMP_TO_GROUND"?C.HeightReference.CLAMP_TO_GROUND:C.HeightReference.RELATIVE_TO_GROUND);const d=this.imageAnchor??Ct.defaults.imageAnchor,g=this.imageOffset??Ct.defaults.imageOffset;if(A.billboard.pixelOffset=new C.ConstantProperty(C.Cartesian2.fromArray([-d[0]*A.billboard.width.getValue(C.JulianDate.now())+g[0],-d[1]*A.billboard.height.getValue(C.JulianDate.now())+g[1]])),A.label=new C.LabelGraphics,!A.label)return;A.label.show=new C.ConstantProperty(this.textShow??Ct.defaults.textShow),A.label.heightReference=new C.ConstantProperty(this.heightReference.toUpperCase()=="NONE"?C.HeightReference.NONE:this.heightReference.toUpperCase()=="CLAMP_TO_GROUND"?C.HeightReference.CLAMP_TO_GROUND:C.HeightReference.RELATIVE_TO_GROUND),A.label.text=new C.ConstantProperty(this.textProperty&&this.textProperty!==""&&A.properties&&A.properties[this.textProperty]?A.properties[this.textProperty].getValue():this.textDefaultText??Ct.defaults.textDefaultText),A.label.fillColor=new C.ConstantProperty(new C.Color(...this.textColor??Ct.defaults.textColor)),A.label.showBackground=new C.ConstantProperty(this.textBackgroundColor!=null);const v=this.textFontSize&&this.textFontSize!=0?this.textFontSize:Ct.defaults.textFontSize,y=this.textOffset??Ct.defaults.textOffset;A.label.backgroundColor=new C.ConstantProperty(new C.Color(...this.textBackgroundColor??Ct.defaults.textBackgroundColor)),A.label.font=new C.ConstantProperty(`${this.textFontStyle} ${this.textFontWeight} ${v}px ${this.textFontFamily??Ct.defaults.textFontFamily}`),A.label.horizontalOrigin=new C.ConstantProperty(C.HorizontalOrigin.LEFT),A.label.verticalOrigin=new C.ConstantProperty(C.VerticalOrigin.TOP),A.label.eyeOffset=new C.ConstantProperty(C.Cartesian3.fromArray([0,0,-1]));const m=this.textAnchor??Ct.defaults.textAnchor;A.label.pixelOffset=new C.ConstantProperty(C.Cartesian2.fromArray([-m[0]*((this.textBackgroundColor?-14:-v*2)+this._countBytes(A.label.text.getValue(C.JulianDate.now()))/2*v)+y[0],-m[1]*((this.textBackgroundColor?10:0)+v)+y[1]]))}}}};s();const a=this.dv(p.createNextAnimateFrameEvent(this._dataSource.changed,this.showChanged,this.strokedChanged,this.strokeWidthChanged,this.strokeWidthTypeChanged,this.strokeColorChanged,this.strokeMaterialChanged,this.strokeMaterialParamsChanged,this.strokeGroundChanged,this.filledChanged,this.fillColorChanged,this.fillMaterialChanged,this.fillMaterialParamsChanged,this.fillGroundChanged,this.imageShowChanged,this.imageUrlChanged,this.imageSizeChanged,this.imageAnchorChanged,this.imageOffsetChanged,this.textShowChanged,this.textPropertyChanged,this.textDefaultTextChanged,this.textColorChanged,this.textBackgroundColorChanged,this.textFontFamilyChanged,this.textFontSizeChanged,this.textFontStyleChanged,this.textFontWeightChanged,this.textAnchorChanged,this.textOffsetChanged,this.heightReferenceChanged));this.dispose(a.don(s))}{const s=()=>{if(!this.dataSource)return;const l=this.dataSource.entities.values;for(let c=0;c<l.length;c++){const h=l[c];this._isEntityShow(h,e)}};s();const a=this.ad(p.createNextAnimateFrameEvent(this.minFeatureVisibleDistanceChanged,this.maxFeatureVisibleDistanceChanged,e.cameraChanged,this.showChanged));this.ad(a.don(s))}{const s=()=>{if(this.loadFuncStr)try{const a=Function(`"use strict";return (${this.loadFuncStr})`)();this.loadFun=a}catch(a){console.error(a),this.loadFun=void 0}else this.loadFun=void 0};s(),this.dispose(this.loadFuncStrChanged.disposableOn(s))}this.dispose(this.flyToEvent.disposableOn(s=>{e.actived&&this.dataSource&&(s!==void 0?o.flyTo(this.dataSource,{duration:s/1e3}).then(a=>{a||o.camera.flyToBoundingSphere(this._defaultBoundingSphere,{duration:s/1e3})}):o.flyTo(this.dataSource).then(a=>{a||o.camera.flyToBoundingSphere(this._defaultBoundingSphere)}))}))}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get loadFun(){return this._loadFuncReact.value}set loadFun(e){this._loadFuncReact.value=e}get loadFunChanged(){return this._loadFuncReact.changed}get dataSource(){return this._dataSource.value}set dataSource(e){this._dataSource.value=e}_isJSONString(e){try{return JSON.parse(e),!0}catch{return!1}}_countBytes(e){let i=0;for(let o=0;o<e.length;o++){const r=e.charCodeAt(o);r<=127?i+=1:r<=2047?i+=2:r<=65535?i+=3:i+=4}return i}_isEntityShow(e,i){var o;if(this.minFeatureVisibleDistance==0&&this.maxFeatureVisibleDistance==0){e.show=this.show;return}if((o=i.viewer)!=null&&o.camera&&this.show){let r;do{if(e.polygon&&e.polygon.hierarchy){r=Q.getMinMaxCorner(e.polygon.hierarchy.getValue(C.JulianDate.now()).positions.map(l=>Ue(l))).center;break}if(e.polyline&&e.polyline.positions&&(r=Q.getMinMaxCorner(e.polyline.positions.getValue(C.JulianDate.now()).map(l=>Ue(l))).center),e.position){const l=e.position.getValue(C.JulianDate.now());l&&(r=Ue(l))}}while(!1);if(!r||isNaN(r[0]))return;const s=Q.getDistancesFromPositions([r,_n(i.viewer.camera)],"NONE")[0];let a=!1;this.minFeatureVisibleDistance<this.maxFeatureVisibleDistance?a=this.minFeatureVisibleDistance<s&&s<this.maxFeatureVisibleDistance:this.maxFeatureVisibleDistance==0?a=s>this.minFeatureVisibleDistance:this.minFeatureVisibleDistance==0&&(a=s<this.maxFeatureVisibleDistance),e.show=this.show&&a}}};L(Ct,"defaults",{show:!0,allowPicking:!0,url:dC,defaultLoadFuncStr:fC,defaultLoadFuncDocStr:AO,data:cO,dataMd:hO,stroked:!0,strokeWidth:1,strokeWidthType:"world",strokeColor:[.79,.91,.06,1],strokeMaterial:"",strokeMaterialParams:{},strokeGround:!1,filled:!0,fillColor:[.79,.91,.06,.2],fillMaterial:"",fillMaterialParams:{},fillGround:!1,imageShow:!0,imageUrl:"${earthsdk3-assets-script-dir}/assets/misc/location.png",imageSize:[64,64],imageAnchor:[.5,1],imageOffset:[0,0],textShow:!0,textProperty:"",textDefaultText:"默认标注",textColor:[1,1,1,1],textBackgroundColor:[.79,.91,.06,1],textFontFamily:"Arial",textFontSize:16,textFontWeight:"normal",textFontStyle:"normal",textAnchor:[.5,1],textOffset:[0,0],strokeWidthTypes:[["screen","screen"],["world","world"]],minFeatureVisibleDistance:0,maxFeatureVisibleDistance:0,heightReferences:[["NONE","NONE"],["CLAMP_TO_GROUND","CLAMP_TO_GROUND"],["RELATIVE_TO_GROUND","RELATIVE_TO_GROUND"]]});let Wo=Ct;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:void 0,loadFuncStr:void 0,url:void 0,stroked:void 0,strokeWidth:void 0,strokeWidthType:"world",strokeColor:p.reactArrayWithUndefined(void 0),strokeMaterial:void 0,strokeMaterialParams:p.reactJsonWithUndefined(void 0),strokeGround:void 0,filled:void 0,fillColor:p.reactArrayWithUndefined(void 0),fillMaterial:void 0,fillMaterialParams:p.reactJsonWithUndefined(void 0),fillGround:void 0,imageShow:void 0,imageUrl:void 0,imageSize:p.reactArrayWithUndefined(void 0),imageAnchor:p.reactArrayWithUndefined(void 0),imageOffset:p.reactArrayWithUndefined(void 0),textShow:void 0,textProperty:void 0,textDefaultText:void 0,textColor:p.reactArrayWithUndefined(void 0),textBackgroundColor:p.reactArrayWithUndefined(void 0),textFontFamily:void 0,textFontSize:void 0,textFontStyle:void 0,textFontWeight:void 0,textAnchor:p.reactArrayWithUndefined(void 0),textOffset:p.reactArrayWithUndefined(void 0),minFeatureVisibleDistance:0,maxFeatureVisibleDistance:0,heightReference:"NONE"})})(Wo||(Wo={})),p.extendClassProps(Wo.prototype,Wo.createDefaultProps);const Bu=class Bu extends Bn{constructor(n,e){if(super(n,e),!e.viewer){console.warn("viewer is undefined!");return}const o=this.disposeVar(new Wo(e,n.id));this.dispose(p.track([o,"show"],[n,"show"])),this.dispose(p.track([o,"allowPicking"],[n,"allowPicking"])),this.dispose(p.track([o,"loadFuncStr"],[n,"loadFuncStr"])),this.dispose(p.track([o,"url"],[n,"features"])),this.dispose(p.track([o,"stroked"],[n,"stroked"])),this.dispose(p.track([o,"strokeWidth"],[n,"strokeWidth"])),this.dispose(p.track([o,"strokeWidthType"],[n,"strokeWidthType"])),this.dispose(p.track([o,"strokeColor"],[n,"strokeColor"])),this.dispose(p.track([o,"strokeMaterial"],[n,"strokeMaterial"])),this.dispose(p.track([o,"strokeMaterialParams"],[n,"strokeMaterialParams"])),this.dispose(p.track([o,"strokeGround"],[n,"strokeGround"])),this.dispose(p.track([o,"filled"],[n,"filled"])),this.dispose(p.track([o,"fillColor"],[n,"fillColor"])),this.dispose(p.track([o,"fillMaterial"],[n,"fillMaterial"])),this.dispose(p.track([o,"fillMaterialParams"],[n,"fillMaterialParams"])),this.dispose(p.track([o,"fillGround"],[n,"fillGround"])),this.dispose(p.track([o,"imageShow"],[n,"imageShow"])),this.dispose(p.track([o,"imageUrl"],[n,"imageUrl"])),this.dispose(p.track([o,"imageSize"],[n,"imageSize"])),this.dispose(p.track([o,"imageAnchor"],[n,"imageAnchor"])),this.dispose(p.track([o,"imageOffset"],[n,"imageOffset"])),this.dispose(p.track([o,"textShow"],[n,"textShow"])),this.dispose(p.track([o,"textProperty"],[n,"textProperty"])),this.dispose(p.track([o,"textDefaultText"],[n,"textDefaultText"])),this.dispose(p.track([o,"textColor"],[n,"textColor"])),this.dispose(p.track([o,"textBackgroundColor"],[n,"textBackgroundColor"])),this.dispose(p.track([o,"textFontFamily"],[n,"textFontFamily"])),this.dispose(p.track([o,"textFontSize"],[n,"textFontSize"])),this.dispose(p.track([o,"textFontStyle"],[n,"textFontStyle"])),this.dispose(p.track([o,"textFontWeight"],[n,"textFontWeight"])),this.dispose(p.track([o,"textAnchor"],[n,"textAnchor"])),this.dispose(p.track([o,"textOffset"],[n,"textOffset"])),this.dispose(p.track([o,"minFeatureVisibleDistance"],[n,"minFeatureVisibleDistance"])),this.dispose(p.track([o,"maxFeatureVisibleDistance"],[n,"maxFeatureVisibleDistance"])),this.dispose(p.track([o,"heightReference"],[n,"heightReference"])),this.dispose(n.flyToEvent.disposableOn(r=>{if(e.actived){if(n.flyInParam){const{position:s,rotation:a,flyDuration:l}=n.flyInParam;return Be(e.viewer,s,void 0,a,l),!0}o.flyTo(r&&r*1e3)}}));{const r=(s,a,l)=>{if(!e.actived)return;const c=JSON.parse(JSON.stringify(this._getFeatureByIndexOrProperties(s,a)));if(!(!c||!(c!=null&&c.positions)))if(c.type=="Point"||c.type=="MultiPoint")Rn(e,n,this.id,this._calculateFeatureHeight(c.type=="MultiPoint"?c.positions.flat():c.positions,n.heightReference,e),1e3,l);else{const h=c.type=="Polygon"||c.type=="MultiPolygon"||c.type=="MultiLineString";let u=[];h?u=c.positions.flat(c.type=="MultiPolygon"?2:1).map(g=>this._calculateFeatureHeight(g,n.fillGround?"CLAMP_TO_GROUND":"NONE",e)):u=c.positions.map(g=>this._calculateFeatureHeight(g,n.strokeGround?"CLAMP_TO_GROUND":"NONE",e));const{minPos:A,maxPos:f,center:d}=Q.getMinMaxCorner(u);Rn(e,n,this.id,d,Q.getDistancesFromPositions([A,f],"NONE")[0],l)}};this.d(n.flyToFeatureEvent.don((s,a,l)=>r(s,a,l))),this.d(n.flyToFeatureIndexEvent.don((s,a)=>r(s,void 0,a)))}}_getFeatureByIndexOrProperties(n,e){var s,a,l,c,h,u,A,f;const{sceneObject:i}=this,o=i.features;if(!o)return;const r=Reflect.get(o,"features")||Reflect.get(o,"geometries");if(r){if(e){let d=r.find(g=>(g==null?void 0:g.properties[n])==e);return{type:d!=null&&d.coordinates?d.type:(s=d==null?void 0:d.geometry)==null?void 0:s.type,positions:(d==null?void 0:d.coordinates)||((a=d==null?void 0:d.geometry)==null?void 0:a.coordinates)}}else if(typeof n=="number")return{type:(l=r[n])!=null&&l.coordinates?r[n].type:(h=(c=r[n])==null?void 0:c.geometry)==null?void 0:h.type,positions:((u=r[n])==null?void 0:u.coordinates)||((f=(A=r[n])==null?void 0:A.geometry)==null?void 0:f.coordinates)}}}_calculateFeatureHeight(n,e,i){const{sceneObject:o}=this,r=[...n];do{if(e=="NONE"){r[2]=r[2]??0;break}if(e=="CLAMP_TO_GROUND"||!r[2]){r[2]=i.getTerrainHeight(r)??0;break}r[2]+=i.getTerrainHeight(r)??0}while(!1);return r}};L(Bu,"type",Bu.register("ESCesiumViewer",Q.ESGeoJson.type,Bu));let Om=Bu;const Mu=class Mu extends an{constructor(e,i){super(e,i);L(this,"_czmGeoESRectangle");L(this,"_geoPolyline");if(this._geoPolyline=this.disposeVar(new Je(i,e.id)),this._czmGeoESRectangle=this.disposeVar(new pi(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmGeoESRectangle,s=this._geoPolyline;s.arcType="RHUMB",this.dispose(p.track([s,"color"],[e,"strokeColor"])),this.dispose(p.track([s,"width"],[e,"strokeWidth"])),this.dispose(p.track([s,"ground"],[e,"strokeGround"])),this.dispose(p.track([r,"ground"],[e,"fillGround"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"]));{const a=()=>{s.show=e.show&&e.stroked,r.show=e.show&&e.filled};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged,e.filledChanged));this.dispose(l.disposableOn(a))}{const a=()=>{e.filled?r.material={type:"Color",color:e.fillColor}:r.material=void 0};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(e.fillStyleChanged,e.filledChanged));this.dispose(l.disposableOn(a))}{const a=()=>{const l=e.points;if(l&&l.length>=2){const{minPos:c,maxPos:h}=Q.getMinMaxCorner(l);r.rectangle=[c[0],c[1],h[0],h[1]],r.height=l[0][2],r.extrudedHeight=l[0][2];const u=l.map(g=>(l&&(g[2]=l[0][2]),g)),A=u[0],f=u[1],d=[A,[A[0],f[1],A[2]],f,[f[0],A[1],f[2]]];s.positions=[...d,A]}else r.rectangle=void 0,s.positions=void 0,r.height=0,r.extrudedHeight=0};a(),this.dispose(e.pointsChanged.disposableOn(()=>a()))}}get czmGeoESRectangle(){return this._czmGeoESRectangle}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):o.points?(Me(r,o,i,o.points,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmGeoESRectangle:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):o.points?(Me(r,o,i,o.points,e),!0):!1:!1}};L(Mu,"type",Mu.register("ESCesiumViewer",Q.ESGeoRectangle.type,Mu));let Lm=Mu;class Ql extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_geoPolygon");this._geoPolygon=this.disposeVar(new Br(e,i));const{geoPolygon:o}=this;this.dispose(p.bind([o,"allowPicking"],[this,"allowPicking"])),this.dispose(this.flyToEvent.disposableOn(s=>{o.flyTo(s)})),this.dispose(p.bind([o,"show"],[this,"show"])),this.dispose(p.bind([o,"fill"],[this,"filled"])),this.dispose(p.bind([o,"strokeGround"],[this,"strokeGround"])),this.dispose(p.bind([o,"ground"],[this,"ground"])),this.dispose(p.bind([o,"outline"],[this,"outline"])),this.dispose(p.bind([o,"outlineColor"],[this,"outlineColor"])),this.dispose(p.bind([o,"outlineWidth"],[this,"outlineWidth"])),this.dispose(p.bind([o,"color"],[this,"color"])),this.dispose(p.bind([o,"depth"],[this,"depth"]));const r=()=>{if(this.positions&&this.positions.length>=2){const s=Jf([...this.positions,this.positions[0]]);o.positions=s}else o.positions=void 0};r(),this.dispose(this.positionsChanged.disposableOn(r))}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get geoPolygon(){return this._geoPolygon}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,strokeGround:!1,ground:!1,outline:!1,filled:!0,outlineColor:p.reactArray([1,1,1,1]),outlineWidth:1,color:p.reactArrayWithUndefined([1,1,1,.5]),positions:p.reactPositions(void 0),depth:0})})(Ql||(Ql={})),p.extendClassProps(Ql.prototype,Ql.createDefaultProps);const Du=class Du extends an{constructor(e,i){super(e,i);L(this,"_geoSmoothPolygon");if(this._geoSmoothPolygon=this.disposeVar(new Ql(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._geoSmoothPolygon;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"strokeGround"],[e,"strokeGround"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.track([r,"outline"],[e,"stroked"])),this.dispose(p.track([r,"outlineColor"],[e,"strokeColor"])),this.dispose(p.track([r,"outlineWidth"],[e,"strokeWidth"])),this.dispose(p.track([r,"strokeGround"],[e,"strokeGround"])),this.dispose(p.track([r,"filled"],[e,"filled"])),this.dispose(p.track([r,"color"],[e,"fillColor"])),this.dispose(p.track([r,"ground"],[e,"ground"]));{const s=()=>{r.ground=e.ground||e.fillGround};s();const a=this.dv(p.createNextAnimateFrameEvent(e.groundChanged,e.fillGroundChanged));this.d(a.don(s))}{const s=()=>{r.color=e.filled?e.fillColor:Ji.defaults.fillStyle.color};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.fillStyleChanged,e.filledChanged));this.dispose(a.disposableOn(s))}this.dispose(p.track([r,"depth"],[e,"depth"]))}get geoSmoothPolygon(){return this._geoSmoothPolygon}flyTo(e,i){const{sceneObject:o,czmViewer:r,geoSmoothPolygon:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,geoSmoothPolygon:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Du,"type",Du.register("ESCesiumViewer",Ji.type,Du));let zm=Du;const Ru=class Ru extends Ge{constructor(e,i){super(e,i);L(this,"_czmModel");const o=i.viewer;if(!o){console.warn("viewer is undefined!");return}this._czmModel=this.dv(new Ht(i,e.id));const r=this._czmModel;this.d(r.readyEvent.don(a=>{r.gltf.animations&&(r.activeAnimationsJson=r.gltf.animations.map((l,c)=>({index:c,loop:"REPEAT",animationTime:"(duration) => Date.now() / 1000 / duration * 2"})),r.activeAnimationsAnimateWhilePaused=!0),e.czmModelReadyEvent.emit(a)})),this.ad(new Wf(o,this._czmModel)),this.d(p.track([r,"show"],[e,"show"])),this.d(p.track([r,"color"],[e,"czmColor"])),this.d(p.track([r,"nativeMaximumScale"],[e,"czmMaximumScale"])),this.d(p.track([r,"nativeMinimumPixelSize"],[e,"czmMinimumPixelSize"])),this.d(p.bind([r,"position"],[e,"position"])),this.d(p.track([r,"nativeScale"],[e,"czmNativeScale"])),this.d(p.track([r,"scale"],[e,"scale"])),this.ad(p.track([r,"imageBasedLightingFactor"],[e,"czmImageBasedLightingFactor"])),this.d(p.track([r,"environmentMapManager"],[e,"czmEnvironmentMapManager"]));{const a=l=>{e.czmEnvironmentMapManager=e.czmEnvironmentMapManager?{...e.czmEnvironmentMapManager,atmosphereScatteringIntensity:l}:{atmosphereScatteringIntensity:l}};a(e.czmAtmosphereScatteringIntensity),this.ad(e.czmAtmosphereScatteringIntensityChanged.don(l=>a(l)))}{const a=()=>{var l,c;(l=e.czmEnvironmentMapManager)!=null&&l.atmosphereScatteringIntensity&&(e.czmAtmosphereScatteringIntensity=(c=e.czmEnvironmentMapManager)==null?void 0:c.atmosphereScatteringIntensity)};a(),this.ad(e.czmEnvironmentMapManagerChanged.don(a))}{const a=()=>{const l=[...e.rotation??[0,0,0]];l[0]+=e.instances?0:90,r.rotation=l};a(),this.d(e.rotationChanged.don(a));{const l=()=>{if(a(),!e.instances){r.instances=e.instances;return}r.instances=e.instances.map(c=>{const h=JSON.parse(JSON.stringify(c));return!h.rotation&&(h.rotation=[0,0,0]),h.rotation[0]+=90,h})};l(),this.ad(e.instancesChanged.don(l))}}this.ad(e.setMaterialEvent.don(a=>{r.setMaterial(a)}));{const a=()=>{const l=[...r.rotation];l[0]-=e.instances?0:90,e.rotation=l};a(),this.d(r.rotationChanged.don(a))}{const a=this.dv(p.createNextAnimateFrameEvent(e.allowPickingChanged,e.editingChanged)),l=()=>{e.allowPicking&&!e.editing?r.allowPicking=!0:r.allowPicking=!1};l(),this.d(a.don(l))}const s=()=>{r.url=Q.ESSceneObject.context.getStrFromEnv(rh(typeof e.url=="string"?e.url:e.url.url))};s(),this.d(e.urlChanged.don(s)),this.d(e.setNodePositionEvent.don((a,l)=>{r.setNodeTranslation(a,l)})),this.d(e.setNodeRotationEvent.don((a,l)=>{r.setNodeRotation(a,l)})),this.d(e.setNodeScaleEvent.don((a,l)=>{r.setNodeScale(a,l)})),this.d(e.printDebugInfoEvent.don(()=>{r.printDebugInfo()}))}get model(){return this._czmModel}flyTo(e,i){const{sceneObject:o,czmViewer:r,model:s}=this;return r.actived?o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):(s&&dn(r,o,i,e,s,!0),!!s):!1}};L(Ru,"type",Ru.register("ESCesiumViewer",Q.ESGltfModel.type,Ru));let Qm=Ru;function pC(t,n){const e=t[0]-n[0],i=t[1]-n[1],o=t[2]-n[2];return Math.sqrt(e*e+i*i+o*o)}class Vl extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_distance",this.disposeVar(p.react(0)));L(this,"_surfaceDistance",this.disposeVar(p.react(0)));L(this,"_height",this.disposeVar(p.react(0)));L(this,"_middlePosition",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_heightPosition",this.disposeVar(p.reactArrayWithUndefined(void 0)));const o=()=>{if(this.positions)if(this.positions.length>=2)if(this._middlePosition.value=[this.positions[0][0],this.positions[0][1],this.positions[1][2]],this._heightPosition.value=[this.positions[0][0],this.positions[0][1],.5*(this.positions[1][2]+this.positions[0][2])],this.arcType===void 0||this.arcType==="GEODESIC"){const s=this._surfaceDistance.value=Q.geoDistance(this.positions[0],this.positions[1]),a=this._height.value=this.positions[1][2]-this.positions[0][2];this._distance.value=Math.sqrt(s*s+a*a)}else if(this.arcType==="RHUMB"){const s=this._surfaceDistance.value=Q.geoRhumbDistance(this.positions[0],this.positions[1]),a=this._height.value=this.positions[1][2]-this.positions[0][2];this._distance.value=Math.sqrt(s*s+a*a)}else if(this.arcType==="NONE"){const s=Q.lbhToXyz(this.positions[0]),a=Q.lbhToXyz(this.positions[1]);this._distance.value=pC(s,a),this._surfaceDistance.value=pC(Q.lbhToXyz(this._middlePosition.value),a),this._height.value=this.positions[1][2]-this.positions[0][2]}else console.warn(`未知的arcType: ${this.arcType},导致距离无法计算!`);else this._heightPosition.value=void 0,this._distance.value=0,this._surfaceDistance.value=0,this._height.value=0};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged));this.dispose(r.disposableOn(o));{const s=this.disposeVar(new Je(e,i));s.ground=!1,s.loop=!1,this.dispose(p.track([s,"allowPicking"],[this,"allowPicking"])),this.dispose(p.bind([s,"arcType"],[this,"arcType"])),this.dispose(p.bind([s,"color"],[this,"color"])),this.dispose(p.bind([s,"dashLength"],[this,"dashLength"])),this.dispose(p.bind([s,"dashPattern"],[this,"dashPattern"])),this.dispose(p.bind([s,"gapColor"],[this,"gapColor"])),this.dispose(p.bind([s,"hasArrow"],[this,"hasArrow"])),this.dispose(p.bind([s,"hasDash"],[this,"hasDash"])),this.dispose(p.bind([s,"show"],[this,"show"])),this.dispose(p.bind([s,"width"],[this,"width"])),this.dispose(p.bind([s,"depthTest"],[this,"depthTest"]));{s.loop=!0;const l=()=>{if(this.positions&&this.positions.length===2){const[c,h]=this.positions;s.positions=[c,h,[c[0],c[1],h[2]]]}else s.positions=void 0};l(),this.dispose(this.positionsChanged.disposableOn(l))}this.dispose(this.flyToEvent.disposableOn(l=>{e.actived&&s.flyTo(l)}));const a=this.disposeVar(new wt(e,i));this.dispose(p.track([a,"shadowDom"],[this,"shadowDom"])),this.dispose(p.track([a,"cssAllInitial"],[this,"cssAllInitial"])),this.dispose(p.track([a,"show"],[this,"show"]));{const l=()=>{a.position=this.heightPosition};l(),this.dispose(this.heightPositionChanged.disposableOn(l))}{const l=()=>{a.innerHTML=bo(`高度: ${oh(this.height)}`,0)};l(),this.dispose(this.heightChanged.disposableOn(l))}this.ad(a.pickedEvent.don(l=>{Ui(l)===0&&this.pickedEvent.emit(l)}))}}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get distance(){return this._distance.value}get distanceChanged(){return this._distance.changed}get surfaceDistance(){return this._surfaceDistance.value}get surfaceDistanceChanged(){return this._surfaceDistance.changed}get height(){return this._height.value}get heightChanged(){return this._height.changed}get middlePosition(){return this._middlePosition.value}get middlePositionChanged(){return this._middlePosition.changed}get heightPosition(){return this._heightPosition.value}get heightPositionChanged(){return this._heightPosition.changed}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(void 0),width:1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArrayWithUndefined([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",depthTest:!1,shadowDom:!1,cssAllInitial:!1})})(Vl||(Vl={})),p.extendClassProps(Vl.prototype,Vl.createDefaultProps);const Uu=class Uu extends an{constructor(e,i){super(e,i);L(this,"_geoHeightMeasurement");if(this._geoHeightMeasurement=this.disposeVar(new Vl(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const{czmHeightMeasurement:r}=this;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"]));{const s=()=>{if(e.stroked)r.width=e.strokeWidth;else{r.width=0;return}r.width=e.strokeWidth,r.color=e.strokeColor;const c=e.strokeMaterial??"normal";c==="hasDash"?(r.hasDash=!0,r.hasArrow=!1):c==="hasArrow"?(r.hasDash=!1,r.hasArrow=!0):(r.hasDash=!1,r.hasArrow=!1);const h=e.strokeStyle;if(h.material==="hasDash"&&h.materialParams)try{const u=h.materialParams;Reflect.has(u,"gapColor")&&(r.gapColor=u.gapColor??[0,0,0,0]),Reflect.has(u,"dashLength")&&(r.dashLength=u.dashLength),Reflect.has(u,"dashPattern")&&(r.dashPattern=u.dashPattern)}catch(u){console.error(u)}else r.gapColor=[0,0,0,0],r.dashLength=0,r.dashPattern=0};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}this.dispose(r.pickedEvent.disposableOn(s=>{Ui(s)===0&&(e.allowPicking??!1)&&e.pickedEvent.emit(s)}))}get czmHeightMeasurement(){return this._geoHeightMeasurement}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmHeightMeasurement:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmHeightMeasurement:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Uu,"type",Uu.register("ESCesiumViewer",Q.ESHeightMeasurement.type,Uu));let Vm=Uu;const Ou=class Ou extends Ge{constructor(e,i){super(e,i);L(this,"_czmModelPrimitive");const o=i.viewer;if(!o){console.warn("viewer is undefined!");return}this._czmModelPrimitive=this.disposeVar(new Ht(i,this.sceneObject.id));const r=this._czmModelPrimitive;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(Dt([r,"rotation"],[e,"rotation"])),this.dispose(p.bind([r,"scale"],[e,"scale"]));{const g=this.dv(p.createNextAnimateFrameEvent(e.allowPickingChanged,e.editingChanged)),v=()=>{e.allowPicking&&!e.editing?r.allowPicking=!0:r.allowPicking=!1};v(),this.d(g.don(v))}const s=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/worker.glb"),a=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/police.glb"),l=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/pedestrian.glb"),c=Q.ESSceneObject.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/Stranger.glb"),h=Q.ESSceneObject.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/SuitsMan.glb"),u=Q.ESSceneObject.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/SuitsWoman.glb"),A=()=>{switch(e.mode){case"worker":r.url=s;break;case"police":r.url=a;break;case"pedestrian":r.url=l;break;case"stranger":r.url=c;break;case"suitMan":r.url=h;break;case"suitWoman":r.url=u;break;default:r.url=s;break}};this.dispose(e.modeChanged.disposableOn(()=>{A()})),A();const f=()=>{const g=e.animation??Q.ESHuman.defaults.animation;if(!e.show){r.activeAnimationsJson=void 0;return}g==="walking"?r.activeAnimationsJson=Q.ESHuman.defaults.czmAnimationsWalk:g==="standing"?r.activeAnimationsJson=Q.ESHuman.defaults.czmAnimationsStand:g==="running"&&(r.activeAnimationsJson=Q.ESHuman.defaults.czmAnimationsRun)};f();const d=this.ad(p.createNextAnimateFrameEvent(e.showChanged,e.animationChanged));this.dispose(d.disposableOn(()=>f())),this.ad(new Wf(o,r))}get czmModelPrimitive(){return this._czmModelPrimitive}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmModelPrimitive:s}=this;return!r.actived||!r.viewer?!1:o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):(s&&dn(r,o,i,e,s,!0),!!s)}};L(Ou,"type",Ou.register("ESCesiumViewer",Q.ESHuman.type,Ou));let Hm=Ou;class mC extends p.Destroyable{constructor(e,i){super();L(this,"_czmGeoCanvasImagePoi");L(this,"flyTo",(e,i)=>{if(this.czmGeoCanvasImagePoi.position){Be(this.czmViewer.viewer,this.czmGeoCanvasImagePoi.position,1e3,Dn,e);return}this.czmGeoCanvasImagePoi.flyTo(e&&e*1e3)});this.sceneObject=e,this.czmViewer=i,this._czmGeoCanvasImagePoi=this.disposeVar(new ui(i));const o=this._czmGeoCanvasImagePoi;o.pickOnClick=!0,this.d(o.pickedEvent.don(r=>{(e.allowPicking??!1)&&e.pickedEvent.emit(r)}));{const r=h=>{let u=h;return h.includes("inner://")&&(u="${earthsdk3-assets-script-dir}/assets/img/points/"+h.split("inner://")[1]),Q.ESSceneObject.context.getStrFromEnv(rh(u))},s=()=>{const h=r(typeof e.url=="string"?e.url:e.url.url);if(o.imageUri=h,e.sizeByContent){const A=new Image;A.src=h,A.onload=()=>{o.size=[A.width,A.height]}}else{const A=e.size;o.size=[...A]}},a=this.disposeVar(p.createNextAnimateFrameEvent(e.urlChanged,e.sizeByContentChanged,e.sizeChanged));this.dispose(a.disposableOn(()=>s())),s(),this.d(p.track([o,"zOrder"],[e,"zOrder"])),this.dispose(p.track([o,"show"],[e,"show"])),this.dispose(p.bind([o,"position"],[e,"position"])),this.ad(p.bind([o,"isHoverZoom"],[e,"isHoverZoom"]));{const h=()=>{o.scale=[e.scale[1],e.scale[2]]};h(),this.dispose(e.scaleChanged.don(h))}const l=()=>{const h=e.anchor,u=e.offset;h?o.originRatioAndOffset=[...h,-u[0],-u[1]]:o.originRatioAndOffset=[0,0,0,0]},c=this.ad(p.createNextAnimateFrameEvent(e.anchorChanged,e.offsetChanged));this.dispose(c.disposableOn(()=>l())),l(),this.dispose(o.clickEvent.disposableOn(h=>{const{offsetX:u,offsetY:A}=h,d={type:h.button===0?"leftClick":h.button===2?"rightClick":void 0,add:{mousePos:[u,A]}};e.widgetEvent.emit(d)})),this.dispose(o.hoveredChanged.disposableOn(h=>{if(h===void 0)return;const u={type:h?"mouseEnter":"mouseLeave"};e.widgetEvent.emit(u)}))}}get czmGeoCanvasImagePoi(){return this._czmGeoCanvasImagePoi}}class gC extends p.Destroyable{constructor(e,i,o){super();L(this,"_czmGeoImageModel");L(this,"_eventInfo",{type:"leftClick",add:{mousePos:[0,0]}});L(this,"_isPointEvent",!1);L(this,"flyTo",(e,i)=>{if(this.czmGeoImageModel.position)return Rn(this.czmViewer,this.sceneObject,i,this.sceneObject.position,Math.max(...this.czmGeoImageModel.size),e,!0);this.czmGeoImageModel.flyTo(e&&e*1e3)});this.sceneObject=e,this.czmViewer=i,this._czmGeoImageModel=this.disposeVar(new Wi(i,e.id));const r=this._czmGeoImageModel;this.ad(i.clickEvent.don(A=>{const f=A==null?void 0:A.pointerEvent;f&&(this._isPointEvent=!0,this._eventInfo={type:f.button==0?"leftClick":f.button==2?"rightClick":"leftClick",add:{mousePos:[f.offsetX,f.offsetY]}})})),this.d(e.pickedEvent.don(A=>{var f,d,g;A.screenPosition&&this._isPointEvent&&A.attachedInfo!="innerHoverEvent"&&((f=this._eventInfo.add)!=null&&f.mousePos)&&Math.abs(A.screenPosition[0]-((d=this._eventInfo.add)==null?void 0:d.mousePos[0]))<1&&Math.abs(A.screenPosition[1]-((g=this._eventInfo.add)==null?void 0:g.mousePos[1]))<1&&(e.widgetEvent.emit(this._eventInfo),this._isPointEvent=!1)})),Q.registerCreatedEventUpdate(this,e,()=>{const A=i.getEngineObject(e);this.ad(A.lastHoverResultChanged.don((f,d)=>{(f==null?void 0:f.sceneObject)==(d==null?void 0:d.sceneObject)||(f==null?void 0:f.sceneObject)!=e&&(d==null?void 0:d.sceneObject)!=e||(f!=null&&f.sceneObject&&(this._eventInfo={type:"mouseEnter",add:{mousePos:f==null?void 0:f.screenPosition}},f.sceneObject.widgetEvent.emit(this._eventInfo)),d!=null&&d.sceneObject&&(this._eventInfo={type:"mouseLeave",add:{mousePos:f==null?void 0:f.screenPosition}},d.sceneObject.widgetEvent.emit(this._eventInfo)))}))});const s=e.sizeByContent,l=(A=>{let f=A;return A.includes("inner://")&&(f="${earthsdk3-assets-script-dir}/assets/img/points/"+A.split("inner://")[1]),Q.ESSceneObject.context.getStrFromEnv(rh(f))})(typeof o.sceneObject.url=="string"?o.sceneObject.url:o.sceneObject.url.url),c=new Image;c.src=l,c.onload=()=>{if(s)r.size=[c.width/100,c.height/100];else{const A=e.size;r.size=[A[0]/100,A[1]/100]}},r.uri=l,this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),r.pixelSize=void 0,r.useAxis="XZ";{const A=()=>{r.scale=[e.scale[1],e.scale[2]]};A(),this.d(e.scaleChanged.don(A))}{const A=()=>{e.rotationType===0&&(r.rotationMode="WithProp",this.d(Dt([r,"rotation"],[e,"rotation"]))),e.rotationType===1&&(r.rotationMode="WithCamera"),e.rotationType===2&&(r.rotationMode="WithCameraOnlyZ")};A(),this.dispose(e.rotationTypeChanged.disposableOn(A))}const h=()=>{const A=e.anchor,f=e.offset;A?r.originRatioAndOffset=[...A,-f[0]/100,-f[1]/100]:r.originRatioAndOffset=[0,0,0,0]},u=this.ad(p.createNextAnimateFrameEvent(e.anchorChanged,e.offsetChanged));this.dispose(u.disposableOn(()=>h())),h()}get czmGeoImageModel(){return this._czmGeoImageModel}}const Lu=class Lu extends Ol{constructor(e,i){super(e,i);L(this,"_resetting");if(!i.viewer){console.warn("viewer is undefined!");return}const r=this.disposeVar(p.createNextAnimateFrameEvent(this.sceneObject.urlChanged,this.sceneObject.screenRenderChanged,this.sceneObject.sizeByContentChanged,this.sceneObject.sizeChanged));this._resetting=this.disposeVar(new p.ObjResettingWithEvent(r,()=>this.sceneObject.screenRender?new mC(this.sceneObject,this.czmViewer):new gC(this.sceneObject,this.czmViewer,this)))}get resetting(){return this._resetting}flyTo(e,i){const{sceneObject:o,czmViewer:r,resetting:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(s&&s.obj&&s.obj.flyTo(e,i),o.flyOverEvent.emit(i,"over",r),!0):!1}};L(Lu,"type",Lu.register("ESCesiumViewer",Q.ESImageLabel.type,Lu));let Nm=Lu;function fO(t){switch(t){case"wms":return"WebMapServiceImageryProvider";case"tms":return"TileMapServiceImageryProvider";case"wmts":return"WebMapTileServiceImageryProvider";case"xyz":return"UrlTemplateImageryProvider";case"ion":return"IonImageryProvider"}}const zu=class zu extends Bn{constructor(e,i){super(e,i);L(this,"_czmImagery");if(this._czmImagery=this.dv(new Nr(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmImagery;{const s=this.ad(p.reactJson(""));{const c=()=>{if(typeof e.url=="string")s.value=Q.ESSceneObject.context.getStrFromEnv(e.url);else{const h=e.url;h.url=Q.ESSceneObject.context.getStrFromEnv(h.url),s.value=h}};c(),this.ad(e.urlChanged.don(c))}const a=()=>{var d;if(!s.value)return;const c=(((d=e.options)==null?void 0:d.type)??"auto").toLowerCase(),h=e.options??{};let u={type:"UrlTemplateImageryProvider",url:s.value,rectangle:e.rectangle,maximumLevel:e.maximumLevel,minimumLevel:e.minimumLevel,...h},A=s.value,f=typeof A=="string"?A:A.url;if(c==="auto"){const g=f.toLowerCase();if(g.startsWith("ion://")){const y=+g.substring(6);u={...h,assetId:y,type:"IonImageryProvider"}}else if(g.includes("{x}")||g.includes("{y}")||g.includes("{z}"))u.type="UrlTemplateImageryProvider";else if(g.includes("wmts"))u.type="WebMapTileServiceImageryProvider";else if(g.includes("wms"))u.type="WebMapServiceImageryProvider";else{if(f.includes("/tilemapresource.xml")){const v=f.split("/tilemapresource.xml").join("");typeof A=="string"?A=v:A.url=v,u.url=A}u.type="TileMapServiceImageryProvider"}}else{if(c==="tms"&&f.includes("/tilemapresource.xml")){const g=f.split("/tilemapresource.xml").join("");typeof A=="string"?A=g:A.url=g,u.url=A}else if(c==="ion"&&f.startsWith("ion://")){const v=+f.substring(6);u={...h,assetId:v,type:"IonImageryProvider"}}u.type=fO(c)}console.log("imageryProvider",u),r.imageryProvider=u};a();const l=this.dv(p.createNextAnimateFrameEvent(s.changed,e.maximumLevelChanged,e.minimumLevelChanged,e.optionsChanged,e.rectangleChanged));this.d(l.don(a))}this.d(p.track([r,"show"],[e,"show"])),this.d(p.bind([r,"alpha"],[e,"opacity"])),this.d(p.bind([r,"alpha"],[e,"czmAlpha"])),this.d(p.track([r,"splitDirection"],[e,"splitDirection"])),this.d(p.track([r,"brightness"],[e,"czmBrightness"])),this.d(p.track([r,"contrast"],[e,"czmContrast"])),this.d(p.track([r,"hue"],[e,"czmHue"])),this.d(p.track([r,"saturation"],[e,"czmSaturation"])),this.d(p.track([r,"gamma"],[e,"czmGamma"])),this.d(p.track([r,"rectangle"],[e,"rectangle"])),this.d(p.track([r,"zIndex"],[e,"zIndex"]))}get czmImagery(){return this._czmImagery}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmImagery:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(s.flyTo(e&&e),o.flyOverEvent.emit(i,"over",r),!0):!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmImagery:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):(s.flyTo(e&&e),o.flyOverEvent.emit(i,"over",r),!0):!1}};L(zu,"type",zu.register("ESCesiumViewer",Q.ESImageryLayer.type,zu));let Gm=zu;class dO extends p.Destroyable{constructor(e,i,o,r){super();L(this,"_show");L(this,"_czmESCustomPrimitive");L(this,"_czmTexture");this._sceneObject=e,this._show=this.disposeVar(p.react(this._sceneObject.show)),this._czmESCustomPrimitive=this.dv(new st(i,this._sceneObject.id)),this._czmTexture=this.dv(new At(i));const s=e,a=this._czmESCustomPrimitive,l=this._czmTexture;this.dispose(p.track([a,"show"],[this,"show"])),this.dispose(p.track([a,"show"],[s,"show"])),this.dispose(p.track([a,"allowPicking"],[s,"allowPicking"])),this.dispose(p.track([a,"rotation"],[s,"rotation"])),this.dispose(p.track([a,"position"],[s,"position"])),this.dispose(p.track([a,"scale"],[s,"scale"])),this.ad(s.allowPickingChanged.don(()=>{a.allowPicking=s.allowPicking,a.pass=s.allowPicking?"TRANSLUCENT":"OVERLAY"}));{const c=()=>{const u=s.size/2,A=r[0].map(S=>S*u),f=r[1].map(S=>S*u),d=r[2].map(S=>S*u),g=r[3].map(S=>S*u),v=[...A,...f,...d,...g];let y=[0,3,2,0,2,1];(o=="north"||o=="west"||o=="bottom")&&(y=y.reverse());const m=[0,0],w=[1,0],_=[1,1],E=[0,1];let T=[];o=="east"||o=="south"?T=[...w,...m,...E,..._]:o=="west"?T=[...w,..._,...E,...m]:o=="top"?T=[...E,..._,...w,...m]:T=[...m,...w,..._,...E],a.indexTypedArray=new Uint16Array(y),a.attributes={position:{typedArray:new Float32Array(v),componentsPerAttribute:3},st:{typedArray:new Float32Array(T),componentsPerAttribute:2}},l.uri=Q.ESSceneObject.context.getStrFromEnv(`\${earthsdk3-assets-script-dir}/assets/img/skybox/${s.mode}/${o}.${s.mode!="blueSky"?"png":"jpg"}`);const P=i.getCameraInfo();if(P!=null){const I=Q.getDistancesFromPositions([s.position,P.position],"NONE")[0]/(s.size/2*s.autoOpacityFactor);this.changeOpacity(s.autoFollow?1:I)}const F=a.computeLocalAxisedBoundingBoxFromAttribute("position");if(!F)return;const{min:D,max:B}=F;a.setLocalAxisedBoundingBox(D,B)};c();const h=this.disposeVar(p.createNextAnimateFrameEvent(s.sizeChanged,s.modeChanged));this.dispose(h.disposableOn(c))}}get show(){return this._show.value}set show(e){this._show.value=e}get showChanged(){return this._show.changed}get czmESCustomPrimitive(){return this._czmESCustomPrimitive}get czmTexture(){return this._czmTexture}changeOpacity(e){this._czmESCustomPrimitive.uniformMap={u_image:{type:"texture",id:this._czmTexture.id},u_color:[1,1,1,1-e>=0?1-e:0]}}}class pO extends p.Destroyable{constructor(n,e,i){if(super(),!e.viewer)return;let o=!0,r;this.dispose(e.viewer.scene.preUpdate.addEventListener(()=>{s()}));function s(){var l;if(!((l=e.viewer)!=null&&l.camera))return;const a=e.getCameraInfo();if(a!=null&&(r==null||r.position[0]!=a.position[0]||r.position[1]!=a.position[1]||r.position[2]!=a.position[2]||r.rotation[0]!=a.rotation[0]||r.rotation[1]!=a.rotation[1]||r.rotation[2]!=a.rotation[2])){r=a;const h=Q.getDistancesFromPositions([n.position,r.position],"NONE")[0]/(n.size/2*n.autoOpacityFactor);n.autoFollow?(n.position=r.position,o&&(o=!1,i.forEach(u=>{u.changeOpacity(1)}))):i.forEach(u=>{u.changeOpacity(h)})}}s()}}const Tt=class Tt extends Ge{constructor(e,i){super(e,i);L(this,"_czmSkyBoxComponents",[]);if(!i.viewer){console.warn("viewer is undefined!");return}!Tt._defaultLocalBox&&Tt._firstLoad&&(Tt._firstLoad=!1,Tt._defaultLocalBox=i.xbsjLocalBoxSources),Tt._eSLocalSkyBoxArr.push(e),this.d(()=>{Tt._eSLocalSkyBoxArr.includes(e)&&Tt._eSLocalSkyBoxArr.splice(Tt._eSLocalSkyBoxArr.indexOf(e),1),this.ChangeAutoFollow()});const r={bottom:[[-1,-1,-1],[1,-1,-1],[1,1,-1],[-1,1,-1]],top:[[-1,-1,1],[1,-1,1],[1,1,1],[-1,1,1]],south:[[-1,-1,-1],[1,-1,-1],[1,-1,1],[-1,-1,1]],north:[[-1,1,-1],[1,1,-1],[1,1,1],[-1,1,1]],east:[[1,-1,-1],[1,1,-1],[1,1,1],[1,-1,1]],west:[[-1,1,-1],[-1,1,1],[-1,-1,1],[-1,-1,-1]]};for(const s in r)if(Object.prototype.hasOwnProperty.call(r,s)){const a=r[s];this._czmSkyBoxComponents.push(this.dv(new dO(e,i,s,a)))}{const s=this.disposeVar(p.createNextAnimateFrameEvent(e.autoFollowChanged,e.autoOpacityFactorChanged));this.disposeVar(new p.ObjResettingWithEvent(s,()=>(this.ChangeAutoFollow(),new pO(e,i,this._czmSkyBoxComponents))))}{const s=()=>{this.ChangeAutoFollow()},a=this.disposeVar(p.createNextAnimateFrameEvent(e.sizeChanged,e.modeChanged,e.showChanged));this.dispose(a.disposableOn(s))}}ChangeAutoFollow(){const{czmViewer:e}=this;for(let i=Tt._eSLocalSkyBoxArr.length-1;i>=0;i--){const o=Tt._eSLocalSkyBoxArr[i];if(o.autoFollow&&o.show){e.xbsjLocalBoxSources={positiveX:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/east.${o.mode!="blueSky"?"png":"jpg"}`,negativeX:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/west.${o.mode!="blueSky"?"png":"jpg"}`,positiveY:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/bottom.${o.mode!="blueSky"?"png":"jpg"}`,negativeY:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/top.${o.mode!="blueSky"?"png":"jpg"}`,positiveZ:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/north.${o.mode!="blueSky"?"png":"jpg"}`,negativeZ:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/south.${o.mode!="blueSky"?"png":"jpg"}`};break}i==0&&(e.xbsjLocalBoxSources=Tt._defaultLocalBox)}Tt._eSLocalSkyBoxArr.length==0&&(e.xbsjLocalBoxSources=Tt._defaultLocalBox)}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i);{const s=o.size??Q.ESLocalSkyBox.defaults.size;return o.position?(Rn(r,o,i,o.position,s,e,!0),!0):!1}}};L(Tt,"type",Tt.register("ESCesiumViewer",Q.ESLocalSkyBox.type,Tt)),L(Tt,"_defaultLocalBox"),L(Tt,"_firstLoad",!0),L(Tt,"_eSLocalSkyBoxArr",[]);let Wm=Tt;const qn=class qn extends Ge{constructor(e,i){super(e,i);L(this,"_geoCustomDivPoi");L(this,"_textFunc",this.disposeVar(p.react(void 0)));if(this._geoCustomDivPoi=this.disposeVar(new wt(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this.geoCustomDivPoi;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"]));{this.dispose(r.pickedEvent.disposableOn(s=>{(e.allowPicking??Q.ESLocationMeasurement.defaults.allowPicking)&&e.pickedEvent.emit(s)})),this.dispose(r.innerHtmlMounted.disposableOn(s=>{const a=s.firstElementChild;a&&(a.style.pointerEvents="auto",a.style.cursor="default",a.onclick=l=>r.pickFromDiv(a,{type:"viewerPicking",pointerEvent:l}))}));{const s=()=>{if(!e.position)return;const l=(this.textFunc??qn.defaultTextFunc_度格式)(e.position);r.innerHTML=bo(l)};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.positionChanged,this.textFuncChanged));this.dispose(a.disposableOn(s))}{const s=()=>{i.lonLatFormat??(i.lonLatFormat="DECIMAL_DEGREE"),this.textFunc=i.lonLatFormat=="DECIMAL_DEGREE"?qn.defaultTextFunc_度格式:i.lonLatFormat=="DEGREES_DECIMAL_MINUTES"?qn.defaultTextFunc_度分格式:qn.defaultTextFunc_度分秒格式};s(),this.d(i.lonLatFormatChanged.don(()=>{s()}))}}}get geoCustomDivPoi(){return this._geoCustomDivPoi}get textFunc(){return this._textFunc.value}set textFunc(e){this._textFunc.value=e}get textFuncChanged(){return this._textFunc.changed}flyTo(e,i){const{sceneObject:o,czmViewer:r,geoCustomDivPoi:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(s.flyTo(e),o.flyOverEvent.emit(i,"over",r),!0):!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,geoCustomDivPoi:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):(s.flyTo(e),o.flyOverEvent.emit(i,"over",r),!0):!1}};L(qn,"type",qn.register("ESCesiumViewer",Q.ESLocationMeasurement.type,qn)),L(qn,"defaultTextFunc_度格式",e=>{if(!e)return"";const[i=0,o=0,r=0]=e;return`经度: ${i.toFixed(5)}°
3491
+ `,Ct=class Ct extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_loadFuncReact",this.disposeVar(p.react(void 0)));L(this,"_dataSource",this.disposeVar(p.react(void 0)));L(this,"_data");L(this,"_defaultHeight",{});L(this,"_defaultBoundingSphere",new C.BoundingSphere);const o=e.viewer;if(!o){console.warn("viewer is undefined!");return}let r=()=>{this.dataSource&&o.dataSources.remove(this.dataSource,!0),this.dataSource=void 0,this._data=void 0};this.dispose(()=>{r()});{const s=this.dv(p.createProcessingFromAsyncFunc(async c=>{if(this.dataSource&&r(),!!this.url){do{if(typeof this.url=="object"){this._data=this.url;break}if(this._isJSONString(this.url)){this._data=JSON.parse(this.url);break}await fetch(Q.ESSceneObject.context.getStrFromEnv(this.url)).then(h=>h.json()).then(h=>{this._data=h}).catch(h=>{console.warn("ESGeoJson数据加载失败",h)})}while(!1);this.dataSource=await C.GeoJsonDataSource.load(this._data),o.dataSources.add(this.dataSource).then(h=>{var A,f;const u=[];for(const d of h.entities.values)if(C.Entity.prototype&&(d.ESSceneObjectID=i),this._isEntityShow(d,e),d.polygon&&u.push(...(A=d.polygon.hierarchy)==null?void 0:A.getValue(C.JulianDate.now()).positions),d.polyline&&u.push(...(f=d.polyline.positions)==null?void 0:f.getValue(C.JulianDate.now())),d.position){const g=d.position.getValue(C.JulianDate.now());g&&u.push(g)}this._defaultBoundingSphere=C.BoundingSphere.fromPoints(u)})}})),a=()=>{s.isRunning&&s.cancel(),s.restart()};a();const l=this.dv(p.createNextAnimateFrameEvent(this.loadFunChanged,this.urlChanged));this.dispose(l.don(a))}{const s=()=>{var l,c;if(this.dataSource)if(this.dataSource.show=this.show,this.loadFun)try{this.loadFun(this.dataSource)}catch(h){console.error(h)}else{const h=this.dataSource.entities.values;for(let u=0;u<h.length;u++){const A=h[u];if(A.polygon){this._defaultHeight[A.id]||(this._defaultHeight[A.id]=(l=A.polygon.height)==null?void 0:l.getValue(C.JulianDate.now())),A.polygon.height=this.fillGround?void 0:new C.ConstantProperty(this._defaultHeight[A.id]),A.polygon.perPositionHeight=new C.ConstantProperty(!this.fillGround),A.polygon.heightReference=new C.ConstantProperty(this.heightReference.toUpperCase()=="NONE"?C.HeightReference.NONE:this.heightReference.toUpperCase()=="CLAMP_TO_GROUND"?C.HeightReference.CLAMP_TO_GROUND:C.HeightReference.RELATIVE_TO_GROUND),A.polygon.show=new C.ConstantProperty(this.filled??Ct.defaults.filled),A.polygon.material=new C.ColorMaterialProperty(new C.Color(...this.fillColor??Ct.defaults.fillColor)),A.polygon.outline=new C.ConstantProperty(!1),A.polyline=new C.PolylineGraphics;const f=JSON.parse(JSON.stringify((c=A.polygon.hierarchy)==null?void 0:c.getValue(C.JulianDate.now()).positions));C.Cartesian3.equals(f[0],f[f.length-1])||f.push(f[0]),A.polyline.positions=f}if(A.polyline&&(A.polyline.show=new C.ConstantProperty(this.stroked??Ct.defaults.stroked),A.polyline.width=new C.ConstantProperty(this.strokeWidth??Ct.defaults.strokeWidth),A.polyline.material=new C.ColorMaterialProperty(new C.Color(...this.strokeColor??Ct.defaults.strokeColor)),A.polyline.clampToGround=new C.ConstantProperty(this.strokeGround)),A.billboard){A.billboard.show=new C.ConstantProperty(this.imageShow??Ct.defaults.imageShow),A.billboard.width=new C.ConstantProperty(this.imageSize?this.imageSize[0]:Ct.defaults.imageSize[0]),A.billboard.height=new C.ConstantProperty(this.imageSize?this.imageSize[1]:Ct.defaults.imageSize[1]);const f=this.imageUrl?typeof this.imageUrl=="string"?this.imageUrl:this.imageUrl.url:Ct.defaults.imageUrl;A.billboard.image=new C.ConstantProperty(Q.ESSceneObject.context.getStrFromEnv(f)),A.billboard.horizontalOrigin=new C.ConstantProperty(C.HorizontalOrigin.LEFT),A.billboard.verticalOrigin=new C.ConstantProperty(C.VerticalOrigin.TOP),A.billboard.heightReference=new C.ConstantProperty(this.heightReference.toUpperCase()=="NONE"?C.HeightReference.NONE:this.heightReference.toUpperCase()=="CLAMP_TO_GROUND"?C.HeightReference.CLAMP_TO_GROUND:C.HeightReference.RELATIVE_TO_GROUND);const d=this.imageAnchor??Ct.defaults.imageAnchor,g=this.imageOffset??Ct.defaults.imageOffset;if(A.billboard.pixelOffset=new C.ConstantProperty(C.Cartesian2.fromArray([-d[0]*A.billboard.width.getValue(C.JulianDate.now())+g[0],-d[1]*A.billboard.height.getValue(C.JulianDate.now())+g[1]])),A.label=new C.LabelGraphics,!A.label)return;A.label.show=new C.ConstantProperty(this.textShow??Ct.defaults.textShow),A.label.heightReference=new C.ConstantProperty(this.heightReference.toUpperCase()=="NONE"?C.HeightReference.NONE:this.heightReference.toUpperCase()=="CLAMP_TO_GROUND"?C.HeightReference.CLAMP_TO_GROUND:C.HeightReference.RELATIVE_TO_GROUND),A.label.text=new C.ConstantProperty(this.textProperty&&this.textProperty!==""&&A.properties&&A.properties[this.textProperty]?A.properties[this.textProperty].getValue():this.textDefaultText??Ct.defaults.textDefaultText),A.label.fillColor=new C.ConstantProperty(new C.Color(...this.textColor??Ct.defaults.textColor)),A.label.showBackground=new C.ConstantProperty(this.textBackgroundColor!=null);const v=this.textFontSize&&this.textFontSize!=0?this.textFontSize:Ct.defaults.textFontSize,y=this.textOffset??Ct.defaults.textOffset;A.label.backgroundColor=new C.ConstantProperty(new C.Color(...this.textBackgroundColor??Ct.defaults.textBackgroundColor)),A.label.font=new C.ConstantProperty(`${this.textFontStyle} ${this.textFontWeight} ${v}px ${this.textFontFamily??Ct.defaults.textFontFamily}`),A.label.horizontalOrigin=new C.ConstantProperty(C.HorizontalOrigin.LEFT),A.label.verticalOrigin=new C.ConstantProperty(C.VerticalOrigin.TOP),A.label.eyeOffset=new C.ConstantProperty(C.Cartesian3.fromArray([0,0,-1]));const m=this.textAnchor??Ct.defaults.textAnchor;A.label.pixelOffset=new C.ConstantProperty(C.Cartesian2.fromArray([-m[0]*((this.textBackgroundColor?-14:-v*2)+this._countBytes(A.label.text.getValue(C.JulianDate.now()))/2*v)+y[0],-m[1]*((this.textBackgroundColor?10:0)+v)+y[1]]))}}}};s();const a=this.dv(p.createNextAnimateFrameEvent(this._dataSource.changed,this.showChanged,this.strokedChanged,this.strokeWidthChanged,this.strokeWidthTypeChanged,this.strokeColorChanged,this.strokeMaterialChanged,this.strokeMaterialParamsChanged,this.strokeGroundChanged,this.filledChanged,this.fillColorChanged,this.fillMaterialChanged,this.fillMaterialParamsChanged,this.fillGroundChanged,this.imageShowChanged,this.imageUrlChanged,this.imageSizeChanged,this.imageAnchorChanged,this.imageOffsetChanged,this.textShowChanged,this.textPropertyChanged,this.textDefaultTextChanged,this.textColorChanged,this.textBackgroundColorChanged,this.textFontFamilyChanged,this.textFontSizeChanged,this.textFontStyleChanged,this.textFontWeightChanged,this.textAnchorChanged,this.textOffsetChanged,this.heightReferenceChanged));this.dispose(a.don(s))}{const s=()=>{if(!this.dataSource)return;const l=this.dataSource.entities.values;for(let c=0;c<l.length;c++){const h=l[c];this._isEntityShow(h,e)}};s();const a=this.ad(p.createNextAnimateFrameEvent(this.minFeatureVisibleDistanceChanged,this.maxFeatureVisibleDistanceChanged,e.cameraChanged,this.showChanged));this.ad(a.don(s))}{const s=()=>{if(this.loadFuncStr)try{const a=Function(`"use strict";return (${this.loadFuncStr})`)();this.loadFun=a}catch(a){console.error(a),this.loadFun=void 0}else this.loadFun=void 0};s(),this.dispose(this.loadFuncStrChanged.disposableOn(s))}this.dispose(this.flyToEvent.disposableOn(s=>{e.actived&&this.dataSource&&(s!==void 0?o.flyTo(this.dataSource,{duration:s/1e3}).then(a=>{a||o.camera.flyToBoundingSphere(this._defaultBoundingSphere,{duration:s/1e3})}):o.flyTo(this.dataSource).then(a=>{a||o.camera.flyToBoundingSphere(this._defaultBoundingSphere)}))}))}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get loadFun(){return this._loadFuncReact.value}set loadFun(e){this._loadFuncReact.value=e}get loadFunChanged(){return this._loadFuncReact.changed}get dataSource(){return this._dataSource.value}set dataSource(e){this._dataSource.value=e}_isJSONString(e){try{return JSON.parse(e),!0}catch{return!1}}_countBytes(e){let i=0;for(let o=0;o<e.length;o++){const r=e.charCodeAt(o);r<=127?i+=1:r<=2047?i+=2:r<=65535?i+=3:i+=4}return i}_isEntityShow(e,i){var o;if(this.minFeatureVisibleDistance==0&&this.maxFeatureVisibleDistance==0){e.show=this.show;return}if((o=i.viewer)!=null&&o.camera&&this.show){let r;do{if(e.polygon&&e.polygon.hierarchy){r=Q.getMinMaxCorner(e.polygon.hierarchy.getValue(C.JulianDate.now()).positions.map(l=>Ue(l))).center;break}if(e.polyline&&e.polyline.positions&&(r=Q.getMinMaxCorner(e.polyline.positions.getValue(C.JulianDate.now()).map(l=>Ue(l))).center),e.position){const l=e.position.getValue(C.JulianDate.now());l&&(r=Ue(l))}}while(!1);if(!r||isNaN(r[0]))return;const s=Q.getDistancesFromPositions([r,_n(i.viewer.camera)],"NONE")[0];let a=!1;this.minFeatureVisibleDistance<this.maxFeatureVisibleDistance?a=this.minFeatureVisibleDistance<s&&s<this.maxFeatureVisibleDistance:this.maxFeatureVisibleDistance==0?a=s>this.minFeatureVisibleDistance:this.minFeatureVisibleDistance==0&&(a=s<this.maxFeatureVisibleDistance),e.show=this.show&&a}}};L(Ct,"defaults",{show:!0,allowPicking:!0,url:dC,defaultLoadFuncStr:fC,defaultLoadFuncDocStr:AO,data:cO,dataMd:hO,stroked:!0,strokeWidth:1,strokeWidthType:"world",strokeColor:[.79,.91,.06,1],strokeMaterial:"",strokeMaterialParams:{},strokeGround:!1,filled:!0,fillColor:[.79,.91,.06,.2],fillMaterial:"",fillMaterialParams:{},fillGround:!1,imageShow:!0,imageUrl:"${earthsdk3-assets-script-dir}/assets/misc/location.png",imageSize:[64,64],imageAnchor:[.5,1],imageOffset:[0,0],textShow:!0,textProperty:"",textDefaultText:"默认标注",textColor:[1,1,1,1],textBackgroundColor:[.79,.91,.06,1],textFontFamily:"Arial",textFontSize:16,textFontWeight:"normal",textFontStyle:"normal",textAnchor:[.5,1],textOffset:[0,0],strokeWidthTypes:[["screen","screen"],["world","world"]],minFeatureVisibleDistance:0,maxFeatureVisibleDistance:0,heightReferences:[["NONE","NONE"],["CLAMP_TO_GROUND","CLAMP_TO_GROUND"],["RELATIVE_TO_GROUND","RELATIVE_TO_GROUND"]]});let Wo=Ct;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:void 0,loadFuncStr:void 0,url:void 0,stroked:void 0,strokeWidth:void 0,strokeWidthType:"world",strokeColor:p.reactArrayWithUndefined(void 0),strokeMaterial:void 0,strokeMaterialParams:p.reactJsonWithUndefined(void 0),strokeGround:void 0,filled:void 0,fillColor:p.reactArrayWithUndefined(void 0),fillMaterial:void 0,fillMaterialParams:p.reactJsonWithUndefined(void 0),fillGround:void 0,imageShow:void 0,imageUrl:void 0,imageSize:p.reactArrayWithUndefined(void 0),imageAnchor:p.reactArrayWithUndefined(void 0),imageOffset:p.reactArrayWithUndefined(void 0),textShow:void 0,textProperty:void 0,textDefaultText:void 0,textColor:p.reactArrayWithUndefined(void 0),textBackgroundColor:p.reactArrayWithUndefined(void 0),textFontFamily:void 0,textFontSize:void 0,textFontStyle:void 0,textFontWeight:void 0,textAnchor:p.reactArrayWithUndefined(void 0),textOffset:p.reactArrayWithUndefined(void 0),minFeatureVisibleDistance:0,maxFeatureVisibleDistance:0,heightReference:"NONE"})})(Wo||(Wo={})),p.extendClassProps(Wo.prototype,Wo.createDefaultProps);const Bu=class Bu extends Bn{constructor(n,e){if(super(n,e),!e.viewer){console.warn("viewer is undefined!");return}const o=this.disposeVar(new Wo(e,n.id));this.dispose(p.track([o,"show"],[n,"show"])),this.dispose(p.track([o,"allowPicking"],[n,"allowPicking"])),this.dispose(p.track([o,"loadFuncStr"],[n,"loadFuncStr"])),this.dispose(p.track([o,"url"],[n,"features"])),this.dispose(p.track([o,"stroked"],[n,"stroked"])),this.dispose(p.track([o,"strokeWidth"],[n,"strokeWidth"])),this.dispose(p.track([o,"strokeWidthType"],[n,"strokeWidthType"])),this.dispose(p.track([o,"strokeColor"],[n,"strokeColor"])),this.dispose(p.track([o,"strokeMaterial"],[n,"strokeMaterial"])),this.dispose(p.track([o,"strokeMaterialParams"],[n,"strokeMaterialParams"])),this.dispose(p.track([o,"strokeGround"],[n,"strokeGround"])),this.dispose(p.track([o,"filled"],[n,"filled"])),this.dispose(p.track([o,"fillColor"],[n,"fillColor"])),this.dispose(p.track([o,"fillMaterial"],[n,"fillMaterial"])),this.dispose(p.track([o,"fillMaterialParams"],[n,"fillMaterialParams"])),this.dispose(p.track([o,"fillGround"],[n,"fillGround"])),this.dispose(p.track([o,"imageShow"],[n,"imageShow"])),this.dispose(p.track([o,"imageUrl"],[n,"imageUrl"])),this.dispose(p.track([o,"imageSize"],[n,"imageSize"])),this.dispose(p.track([o,"imageAnchor"],[n,"imageAnchor"])),this.dispose(p.track([o,"imageOffset"],[n,"imageOffset"])),this.dispose(p.track([o,"textShow"],[n,"textShow"])),this.dispose(p.track([o,"textProperty"],[n,"textProperty"])),this.dispose(p.track([o,"textDefaultText"],[n,"textDefaultText"])),this.dispose(p.track([o,"textColor"],[n,"textColor"])),this.dispose(p.track([o,"textBackgroundColor"],[n,"textBackgroundColor"])),this.dispose(p.track([o,"textFontFamily"],[n,"textFontFamily"])),this.dispose(p.track([o,"textFontSize"],[n,"textFontSize"])),this.dispose(p.track([o,"textFontStyle"],[n,"textFontStyle"])),this.dispose(p.track([o,"textFontWeight"],[n,"textFontWeight"])),this.dispose(p.track([o,"textAnchor"],[n,"textAnchor"])),this.dispose(p.track([o,"textOffset"],[n,"textOffset"])),this.dispose(p.track([o,"minFeatureVisibleDistance"],[n,"minFeatureVisibleDistance"])),this.dispose(p.track([o,"maxFeatureVisibleDistance"],[n,"maxFeatureVisibleDistance"])),this.dispose(p.track([o,"heightReference"],[n,"heightReference"])),this.dispose(n.flyToEvent.disposableOn(r=>{if(e.actived){if(n.flyInParam){const{position:s,rotation:a,flyDuration:l}=n.flyInParam;return Be(e.viewer,s,void 0,a,l),!0}o.flyTo(r&&r*1e3)}}));{const r=(s,a,l)=>{if(!e.actived)return;const c=JSON.parse(JSON.stringify(this._getFeatureByIndexOrProperties(s,a)));if(!(!c||!(c!=null&&c.positions)))if(c.type=="Point"||c.type=="MultiPoint")Rn(e,n,this.id,this._calculateFeatureHeight(c.type=="MultiPoint"?c.positions.flat():c.positions,n.heightReference,e),1e3,l);else{const h=c.type=="Polygon"||c.type=="MultiPolygon"||c.type=="MultiLineString";let u=[];h?u=c.positions.flat(c.type=="MultiPolygon"?2:1).map(g=>this._calculateFeatureHeight(g,n.fillGround?"CLAMP_TO_GROUND":"NONE",e)):u=c.positions.map(g=>this._calculateFeatureHeight(g,n.strokeGround?"CLAMP_TO_GROUND":"NONE",e));const{minPos:A,maxPos:f,center:d}=Q.getMinMaxCorner(u);Rn(e,n,this.id,d,Q.getDistancesFromPositions([A,f],"NONE")[0],l)}};this.d(n.flyToFeatureEvent.don((s,a,l)=>r(s,a,l))),this.d(n.flyToFeatureIndexEvent.don((s,a)=>r(s,void 0,a)))}}_getFeatureByIndexOrProperties(n,e){var s,a,l,c,h,u,A,f;const{sceneObject:i}=this,o=i.features;if(!o)return;const r=Reflect.get(o,"features")||Reflect.get(o,"geometries");if(r){if(e){let d=r.find(g=>(g==null?void 0:g.properties[n])==e);return{type:d!=null&&d.coordinates?d.type:(s=d==null?void 0:d.geometry)==null?void 0:s.type,positions:(d==null?void 0:d.coordinates)||((a=d==null?void 0:d.geometry)==null?void 0:a.coordinates)}}else if(typeof n=="number")return{type:(l=r[n])!=null&&l.coordinates?r[n].type:(h=(c=r[n])==null?void 0:c.geometry)==null?void 0:h.type,positions:((u=r[n])==null?void 0:u.coordinates)||((f=(A=r[n])==null?void 0:A.geometry)==null?void 0:f.coordinates)}}}_calculateFeatureHeight(n,e,i){const{sceneObject:o}=this,r=[...n];do{if(e=="NONE"){r[2]=r[2]??0;break}if(e=="CLAMP_TO_GROUND"||!r[2]){r[2]=i.getTerrainHeight(r)??0;break}r[2]+=i.getTerrainHeight(r)??0}while(!1);return r}};L(Bu,"type",Bu.register("ESCesiumViewer",Q.ESGeoJson.type,Bu));let Om=Bu;const Mu=class Mu extends an{constructor(e,i){super(e,i);L(this,"_czmGeoESRectangle");L(this,"_geoPolyline");if(this._geoPolyline=this.disposeVar(new Je(i,e.id)),this._czmGeoESRectangle=this.disposeVar(new pi(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmGeoESRectangle,s=this._geoPolyline;s.arcType="RHUMB",this.dispose(p.track([s,"color"],[e,"strokeColor"])),this.dispose(p.track([s,"width"],[e,"strokeWidth"])),this.dispose(p.track([s,"ground"],[e,"strokeGround"])),this.dispose(p.track([r,"ground"],[e,"fillGround"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"]));{const a=()=>{s.show=e.show&&e.stroked,r.show=e.show&&e.filled};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(e.showChanged,e.strokedChanged,e.filledChanged));this.dispose(l.disposableOn(a))}{const a=()=>{e.filled?r.material={type:"Color",color:e.fillColor}:r.material=void 0};a();const l=this.disposeVar(p.createNextAnimateFrameEvent(e.fillStyleChanged,e.filledChanged));this.dispose(l.disposableOn(a))}{const a=()=>{const l=e.points;if(l&&l.length>=2){const{minPos:c,maxPos:h}=Q.getMinMaxCorner(l);r.rectangle=[c[0],c[1],h[0],h[1]],r.height=l[0][2],r.extrudedHeight=l[0][2];const u=l.map(g=>(l&&(g[2]=l[0][2]),g)),A=u[0],f=u[1],d=[A,[A[0],f[1],A[2]],f,[f[0],A[1],f[2]]];s.positions=[...d,A]}else r.rectangle=void 0,s.positions=void 0,r.height=0,r.extrudedHeight=0};a(),this.dispose(e.pointsChanged.disposableOn(()=>a()))}}get czmGeoESRectangle(){return this._czmGeoESRectangle}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):o.points?(Me(r,o,i,o.points,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmGeoESRectangle:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):o.points?(Me(r,o,i,o.points,e),!0):!1:!1}};L(Mu,"type",Mu.register("ESCesiumViewer",Q.ESGeoRectangle.type,Mu));let Lm=Mu;class Ql extends p.Destroyable{constructor(e,i){super();L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_geoPolygon");this._geoPolygon=this.disposeVar(new Br(e,i));const{geoPolygon:o}=this;this.dispose(p.bind([o,"allowPicking"],[this,"allowPicking"])),this.dispose(this.flyToEvent.disposableOn(s=>{o.flyTo(s)})),this.dispose(p.bind([o,"show"],[this,"show"])),this.dispose(p.bind([o,"fill"],[this,"filled"])),this.dispose(p.bind([o,"strokeGround"],[this,"strokeGround"])),this.dispose(p.bind([o,"ground"],[this,"ground"])),this.dispose(p.bind([o,"outline"],[this,"outline"])),this.dispose(p.bind([o,"outlineColor"],[this,"outlineColor"])),this.dispose(p.bind([o,"outlineWidth"],[this,"outlineWidth"])),this.dispose(p.bind([o,"color"],[this,"color"])),this.dispose(p.bind([o,"depth"],[this,"depth"]));const r=()=>{if(this.positions&&this.positions.length>=2){const s=Jf([...this.positions,this.positions[0]]);o.positions=s}else o.positions=void 0};r(),this.dispose(this.positionsChanged.disposableOn(r))}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get geoPolygon(){return this._geoPolygon}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,strokeGround:!1,ground:!1,outline:!1,filled:!0,outlineColor:p.reactArray([1,1,1,1]),outlineWidth:1,color:p.reactArrayWithUndefined([1,1,1,.5]),positions:p.reactPositions(void 0),depth:0})})(Ql||(Ql={})),p.extendClassProps(Ql.prototype,Ql.createDefaultProps);const Du=class Du extends an{constructor(e,i){super(e,i);L(this,"_geoSmoothPolygon");if(this._geoSmoothPolygon=this.disposeVar(new Ql(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._geoSmoothPolygon;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"positions"],[e,"points"])),this.dispose(p.track([r,"strokeGround"],[e,"strokeGround"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.track([r,"outline"],[e,"stroked"])),this.dispose(p.track([r,"outlineColor"],[e,"strokeColor"])),this.dispose(p.track([r,"outlineWidth"],[e,"strokeWidth"])),this.dispose(p.track([r,"strokeGround"],[e,"strokeGround"])),this.dispose(p.track([r,"filled"],[e,"filled"])),this.dispose(p.track([r,"color"],[e,"fillColor"])),this.dispose(p.track([r,"ground"],[e,"ground"]));{const s=()=>{r.ground=e.ground||e.fillGround};s();const a=this.dv(p.createNextAnimateFrameEvent(e.groundChanged,e.fillGroundChanged));this.d(a.don(s))}{const s=()=>{r.color=e.filled?e.fillColor:Ji.defaults.fillStyle.color};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.fillStyleChanged,e.filledChanged));this.dispose(a.disposableOn(s))}this.dispose(p.track([r,"depth"],[e,"depth"]))}get geoSmoothPolygon(){return this._geoSmoothPolygon}flyTo(e,i){const{sceneObject:o,czmViewer:r,geoSmoothPolygon:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,geoSmoothPolygon:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Du,"type",Du.register("ESCesiumViewer",Ji.type,Du));let zm=Du;const Ru=class Ru extends Ge{constructor(e,i){super(e,i);L(this,"_czmModel");const o=i.viewer;if(!o){console.warn("viewer is undefined!");return}this._czmModel=this.dv(new Ht(i,e.id));const r=this._czmModel;this.d(r.readyEvent.don(a=>{r.gltf.animations&&(r.activeAnimationsJson=r.gltf.animations.map((l,c)=>({index:c,loop:"REPEAT",animationTime:"(duration) => Date.now() / 1000 / duration * 2"})),r.activeAnimationsAnimateWhilePaused=!0),e.czmModelReadyEvent.emit(a)})),this.ad(new Wf(o,this._czmModel)),this.d(p.track([r,"show"],[e,"show"])),this.d(p.track([r,"color"],[e,"czmColor"])),this.d(p.track([r,"nativeMaximumScale"],[e,"czmMaximumScale"])),this.d(p.track([r,"nativeMinimumPixelSize"],[e,"czmMinimumPixelSize"])),this.d(p.bind([r,"position"],[e,"position"])),this.d(p.track([r,"nativeScale"],[e,"czmNativeScale"])),this.d(p.track([r,"scale"],[e,"scale"])),this.ad(p.track([r,"imageBasedLightingFactor"],[e,"czmImageBasedLightingFactor"])),this.d(p.track([r,"environmentMapManager"],[e,"czmEnvironmentMapManager"]));{const a=l=>{e.czmEnvironmentMapManager=e.czmEnvironmentMapManager?{...e.czmEnvironmentMapManager,atmosphereScatteringIntensity:l}:{atmosphereScatteringIntensity:l}};a(e.czmAtmosphereScatteringIntensity),this.ad(e.czmAtmosphereScatteringIntensityChanged.don(l=>a(l)))}{const a=()=>{var l,c;(l=e.czmEnvironmentMapManager)!=null&&l.atmosphereScatteringIntensity&&(e.czmAtmosphereScatteringIntensity=(c=e.czmEnvironmentMapManager)==null?void 0:c.atmosphereScatteringIntensity)};a(),this.ad(e.czmEnvironmentMapManagerChanged.don(a))}{const a=()=>{const l=[...e.rotation??[0,0,0]];l[0]+=e.instances?0:90,r.rotation=l};a(),this.d(e.rotationChanged.don(a));{const l=()=>{if(a(),!e.instances){r.instances=e.instances;return}r.instances=e.instances.map(c=>{const h=JSON.parse(JSON.stringify(c));return!h.rotation&&(h.rotation=[0,0,0]),h.rotation[0]+=90,h})};l(),this.ad(e.instancesChanged.don(l))}}this.ad(e.setMaterialEvent.don(a=>{r.setMaterial(a)}));{const a=()=>{const l=[...r.rotation];l[0]-=e.instances?0:90,e.rotation=l};a(),this.d(r.rotationChanged.don(a))}{const a=this.dv(p.createNextAnimateFrameEvent(e.allowPickingChanged,e.editingChanged)),l=()=>{e.allowPicking&&!e.editing?r.allowPicking=!0:r.allowPicking=!1};l(),this.d(a.don(l))}const s=()=>{r.url=Q.ESSceneObject.context.getStrFromEnv(rh(typeof e.url=="string"?e.url:e.url.url))};s(),this.d(e.urlChanged.don(s)),this.d(e.setNodePositionEvent.don((a,l)=>{r.setNodeTranslation(a,l)})),this.d(e.setNodeRotationEvent.don((a,l)=>{r.setNodeRotation(a,l)})),this.d(e.setNodeScaleEvent.don((a,l)=>{r.setNodeScale(a,l)})),this.d(e.printDebugInfoEvent.don(()=>{r.printDebugInfo()}))}get model(){return this._czmModel}flyTo(e,i){const{sceneObject:o,czmViewer:r,model:s}=this;return r.actived?o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):(s&&dn(r,o,i,e,s,!0),!!s):!1}};L(Ru,"type",Ru.register("ESCesiumViewer",Q.ESGltfModel.type,Ru));let Qm=Ru;function pC(t,n){const e=t[0]-n[0],i=t[1]-n[1],o=t[2]-n[2];return Math.sqrt(e*e+i*i+o*o)}class Vl extends p.Destroyable{constructor(e,i){super();L(this,"_pickedEvent",this.disposeVar(new p.Event));L(this,"_flyToEvent",this.disposeVar(new p.Event));L(this,"_distance",this.disposeVar(p.react(0)));L(this,"_surfaceDistance",this.disposeVar(p.react(0)));L(this,"_height",this.disposeVar(p.react(0)));L(this,"_middlePosition",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_heightPosition",this.disposeVar(p.reactArrayWithUndefined(void 0)));const o=()=>{if(this.positions)if(this.positions.length>=2)if(this._middlePosition.value=[this.positions[0][0],this.positions[0][1],this.positions[1][2]],this._heightPosition.value=[this.positions[0][0],this.positions[0][1],.5*(this.positions[1][2]+this.positions[0][2])],this.arcType===void 0||this.arcType==="GEODESIC"){const s=this._surfaceDistance.value=Q.geoDistance(this.positions[0],this.positions[1]),a=this._height.value=this.positions[1][2]-this.positions[0][2];this._distance.value=Math.sqrt(s*s+a*a)}else if(this.arcType==="RHUMB"){const s=this._surfaceDistance.value=Q.geoRhumbDistance(this.positions[0],this.positions[1]),a=this._height.value=this.positions[1][2]-this.positions[0][2];this._distance.value=Math.sqrt(s*s+a*a)}else if(this.arcType==="NONE"){const s=Q.lbhToXyz(this.positions[0]),a=Q.lbhToXyz(this.positions[1]);this._distance.value=pC(s,a),this._surfaceDistance.value=pC(Q.lbhToXyz(this._middlePosition.value),a),this._height.value=this.positions[1][2]-this.positions[0][2]}else console.warn(`未知的arcType: ${this.arcType},导致距离无法计算!`);else this._heightPosition.value=void 0,this._distance.value=0,this._surfaceDistance.value=0,this._height.value=0};o();const r=this.disposeVar(p.createNextAnimateFrameEvent(this.positionsChanged,this.arcTypeChanged));this.dispose(r.disposableOn(o));{const s=this.disposeVar(new Je(e,i));s.ground=!1,s.loop=!1,this.dispose(p.track([s,"allowPicking"],[this,"allowPicking"])),this.dispose(p.bind([s,"arcType"],[this,"arcType"])),this.dispose(p.bind([s,"color"],[this,"color"])),this.dispose(p.bind([s,"dashLength"],[this,"dashLength"])),this.dispose(p.bind([s,"dashPattern"],[this,"dashPattern"])),this.dispose(p.bind([s,"gapColor"],[this,"gapColor"])),this.dispose(p.bind([s,"hasArrow"],[this,"hasArrow"])),this.dispose(p.bind([s,"hasDash"],[this,"hasDash"])),this.dispose(p.bind([s,"show"],[this,"show"])),this.dispose(p.bind([s,"width"],[this,"width"])),this.dispose(p.bind([s,"depthTest"],[this,"depthTest"]));{s.loop=!0;const l=()=>{if(this.positions&&this.positions.length===2){const[c,h]=this.positions;s.positions=[c,h,[c[0],c[1],h[2]]]}else s.positions=void 0};l(),this.dispose(this.positionsChanged.disposableOn(l))}this.dispose(this.flyToEvent.disposableOn(l=>{e.actived&&s.flyTo(l)}));const a=this.disposeVar(new wt(e,i));this.dispose(p.track([a,"shadowDom"],[this,"shadowDom"])),this.dispose(p.track([a,"cssAllInitial"],[this,"cssAllInitial"])),this.dispose(p.track([a,"show"],[this,"show"]));{const l=()=>{a.position=this.heightPosition};l(),this.dispose(this.heightPositionChanged.disposableOn(l))}{const l=()=>{a.innerHTML=bo(`高度: ${oh(this.height)}`,0)};l(),this.dispose(this.heightChanged.disposableOn(l))}this.ad(a.pickedEvent.don(l=>{Ui(l)===0&&this.pickedEvent.emit(l)}))}}get pickedEvent(){return this._pickedEvent}get flyToEvent(){return this._flyToEvent}flyTo(e){this._flyToEvent.emit(e)}get distance(){return this._distance.value}get distanceChanged(){return this._distance.changed}get surfaceDistance(){return this._surfaceDistance.value}get surfaceDistanceChanged(){return this._surfaceDistance.changed}get height(){return this._height.value}get heightChanged(){return this._height.changed}get middlePosition(){return this._middlePosition.value}get middlePositionChanged(){return this._middlePosition.changed}get heightPosition(){return this._heightPosition.value}get heightPositionChanged(){return this._heightPosition.changed}}(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(void 0),width:1,color:p.reactArray([1,1,1,1]),hasDash:!1,gapColor:p.reactArrayWithUndefined([0,0,0,0]),dashLength:16,dashPattern:255,hasArrow:!1,arcType:"GEODESIC",depthTest:!1,shadowDom:!1,cssAllInitial:!1})})(Vl||(Vl={})),p.extendClassProps(Vl.prototype,Vl.createDefaultProps);const Uu=class Uu extends an{constructor(e,i){super(e,i);L(this,"_geoHeightMeasurement");if(this._geoHeightMeasurement=this.disposeVar(new Vl(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const{czmHeightMeasurement:r}=this;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),this.dispose(p.bind([r,"positions"],[e,"points"]));{const s=()=>{if(e.stroked)r.width=e.strokeWidth;else{r.width=0;return}r.width=e.strokeWidth,r.color=e.strokeColor;const c=e.strokeMaterial??"normal";c==="hasDash"?(r.hasDash=!0,r.hasArrow=!1):c==="hasArrow"?(r.hasDash=!1,r.hasArrow=!0):(r.hasDash=!1,r.hasArrow=!1);const h=e.strokeStyle;if(h.material==="hasDash"&&h.materialParams)try{const u=h.materialParams;Reflect.has(u,"gapColor")&&(r.gapColor=u.gapColor??[0,0,0,0]),Reflect.has(u,"dashLength")&&(r.dashLength=u.dashLength),Reflect.has(u,"dashPattern")&&(r.dashPattern=u.dashPattern)}catch(u){console.error(u)}else r.gapColor=[0,0,0,0],r.dashLength=0,r.dashPattern=0};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.strokeStyleChanged,e.strokedChanged));this.dispose(a.disposableOn(s))}this.dispose(r.pickedEvent.disposableOn(s=>{Ui(s)===0&&(e.allowPicking??!1)&&e.pickedEvent.emit(s)}))}get czmHeightMeasurement(){return this._geoHeightMeasurement}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmHeightMeasurement:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmHeightMeasurement:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):s.positions?(Me(r,o,i,s.positions,e),!0):!1:!1}};L(Uu,"type",Uu.register("ESCesiumViewer",Q.ESHeightMeasurement.type,Uu));let Vm=Uu;const Ou=class Ou extends Ge{constructor(e,i){super(e,i);L(this,"_czmModelPrimitive");const o=i.viewer;if(!o){console.warn("viewer is undefined!");return}this._czmModelPrimitive=this.disposeVar(new Ht(i,this.sceneObject.id));const r=this._czmModelPrimitive;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(Dt([r,"rotation"],[e,"rotation"])),this.dispose(p.bind([r,"scale"],[e,"scale"]));{const g=this.dv(p.createNextAnimateFrameEvent(e.allowPickingChanged,e.editingChanged)),v=()=>{e.allowPicking&&!e.editing?r.allowPicking=!0:r.allowPicking=!1};v(),this.d(g.don(v))}const s=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/worker.glb"),a=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/police.glb"),l=Q.ESSceneObject.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/pedestrian.glb"),c=Q.ESSceneObject.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/Stranger.glb"),h=Q.ESSceneObject.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/SuitsMan.glb"),u=Q.ESSceneObject.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/glb/human/SuitsWoman.glb"),A=()=>{switch(e.mode){case"worker":r.url=s;break;case"police":r.url=a;break;case"pedestrian":r.url=l;break;case"stranger":r.url=c;break;case"suitMan":r.url=h;break;case"suitWoman":r.url=u;break;default:r.url=s;break}};this.dispose(e.modeChanged.disposableOn(()=>{A()})),A();const f=()=>{const g=e.animation??Q.ESHuman.defaults.animation;if(!e.show){r.activeAnimationsJson=void 0;return}g==="walking"?r.activeAnimationsJson=Q.ESHuman.defaults.czmAnimationsWalk:g==="standing"?r.activeAnimationsJson=Q.ESHuman.defaults.czmAnimationsStand:g==="running"&&(r.activeAnimationsJson=Q.ESHuman.defaults.czmAnimationsRun)};f();const d=this.ad(p.createNextAnimateFrameEvent(e.showChanged,e.animationChanged));this.dispose(d.disposableOn(()=>f())),this.ad(new Wf(o,r))}get czmModelPrimitive(){return this._czmModelPrimitive}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmModelPrimitive:s}=this;return!r.actived||!r.viewer?!1:o.flyToParam||o.flyInParam?(super.flyTo(e,i),!0):(s&&dn(r,o,i,e,s,!0),!!s)}};L(Ou,"type",Ou.register("ESCesiumViewer",Q.ESHuman.type,Ou));let Hm=Ou;class mC extends p.Destroyable{constructor(e,i){super();L(this,"_czmGeoCanvasImagePoi");L(this,"flyTo",(e,i)=>{if(this.czmGeoCanvasImagePoi.position){Be(this.czmViewer.viewer,this.czmGeoCanvasImagePoi.position,1e3,Dn,e);return}this.czmGeoCanvasImagePoi.flyTo(e&&e*1e3)});this.sceneObject=e,this.czmViewer=i,this._czmGeoCanvasImagePoi=this.disposeVar(new ui(i));const o=this._czmGeoCanvasImagePoi;o.pickOnClick=!0,this.d(o.pickedEvent.don(r=>{(e.allowPicking??!1)&&e.pickedEvent.emit(r)}));{const r=h=>{let u=h;return h.includes("inner://")&&(u="${earthsdk3-assets-script-dir}/assets/img/points/"+h.split("inner://")[1]),Q.ESSceneObject.context.getStrFromEnv(rh(u))},s=()=>{const h=r(typeof e.url=="string"?e.url:e.url.url);if(o.imageUri=h,e.sizeByContent){const A=new Image;A.src=h,A.onload=()=>{o.size=[A.width,A.height]}}else{const A=e.size;o.size=[...A]}},a=this.disposeVar(p.createNextAnimateFrameEvent(e.urlChanged,e.sizeByContentChanged,e.sizeChanged));this.dispose(a.disposableOn(()=>s())),s(),this.d(p.track([o,"zOrder"],[e,"zOrder"])),this.dispose(p.track([o,"show"],[e,"show"])),this.dispose(p.bind([o,"position"],[e,"position"])),this.ad(p.bind([o,"isHoverZoom"],[e,"isHoverZoom"]));{const h=()=>{o.scale=[e.scale[1],e.scale[2]]};h(),this.dispose(e.scaleChanged.don(h))}const l=()=>{const h=e.anchor,u=e.offset;h?o.originRatioAndOffset=[...h,-u[0],-u[1]]:o.originRatioAndOffset=[0,0,0,0]},c=this.ad(p.createNextAnimateFrameEvent(e.anchorChanged,e.offsetChanged));this.dispose(c.disposableOn(()=>l())),l(),this.dispose(o.clickEvent.disposableOn(h=>{const{offsetX:u,offsetY:A}=h,d={type:h.button===0?"leftClick":h.button===2?"rightClick":void 0,add:{mousePos:[u,A]}};e.widgetEvent.emit(d)})),this.dispose(o.hoveredChanged.disposableOn(h=>{if(h===void 0)return;const u={type:h?"mouseEnter":"mouseLeave"};e.widgetEvent.emit(u)}))}}get czmGeoCanvasImagePoi(){return this._czmGeoCanvasImagePoi}}class gC extends p.Destroyable{constructor(e,i,o){super();L(this,"_czmGeoImageModel");L(this,"_eventInfo",{type:"leftClick",add:{mousePos:[0,0]}});L(this,"_isPointEvent",!1);L(this,"flyTo",(e,i)=>{if(this.czmGeoImageModel.position)return Rn(this.czmViewer,this.sceneObject,i,this.sceneObject.position,Math.max(...this.czmGeoImageModel.size),e,!0);this.czmGeoImageModel.flyTo(e&&e*1e3)});this.sceneObject=e,this.czmViewer=i,this._czmGeoImageModel=this.disposeVar(new Wi(i,e.id));const r=this._czmGeoImageModel;this.ad(i.clickEvent.don(A=>{const f=A==null?void 0:A.pointerEvent;f&&(this._isPointEvent=!0,this._eventInfo={type:f.button==0?"leftClick":f.button==2?"rightClick":"leftClick",add:{mousePos:[f.offsetX,f.offsetY]}})})),this.d(e.pickedEvent.don(A=>{var f,d,g;A.screenPosition&&this._isPointEvent&&A.attachedInfo!="innerHoverEvent"&&((f=this._eventInfo.add)!=null&&f.mousePos)&&Math.abs(A.screenPosition[0]-((d=this._eventInfo.add)==null?void 0:d.mousePos[0]))<1&&Math.abs(A.screenPosition[1]-((g=this._eventInfo.add)==null?void 0:g.mousePos[1]))<1&&(e.widgetEvent.emit(this._eventInfo),this._isPointEvent=!1)})),Q.registerCreatedEventUpdate(this,e,()=>{const A=i.getEngineObject(e);this.ad(A.lastHoverResultChanged.don((f,d)=>{(f==null?void 0:f.sceneObject)==(d==null?void 0:d.sceneObject)||(f==null?void 0:f.sceneObject)!=e&&(d==null?void 0:d.sceneObject)!=e||(f!=null&&f.sceneObject&&(this._eventInfo={type:"mouseEnter",add:{mousePos:f==null?void 0:f.screenPosition}},f.sceneObject.widgetEvent.emit(this._eventInfo),e.isHoverZoom&&f.sceneObject.id==e.id&&(r.scale=[r.scale[0]*1.5,r.scale[1]*1.5])),d!=null&&d.sceneObject&&(this._eventInfo={type:"mouseLeave",add:{mousePos:f==null?void 0:f.screenPosition}},d.sceneObject.widgetEvent.emit(this._eventInfo),e.isHoverZoom&&d.sceneObject.id==e.id&&(r.scale=[r.scale[0]/1.5,r.scale[1]/1.5])))}))});const s=e.sizeByContent,l=(A=>{let f=A;return A.includes("inner://")&&(f="${earthsdk3-assets-script-dir}/assets/img/points/"+A.split("inner://")[1]),Q.ESSceneObject.context.getStrFromEnv(rh(f))})(typeof o.sceneObject.url=="string"?o.sceneObject.url:o.sceneObject.url.url),c=new Image;c.src=l,c.onload=()=>{if(s)r.size=[c.width/100,c.height/100];else{const A=e.size;r.size=[A[0]/100,A[1]/100]}},r.uri=l,this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"])),r.pixelSize=void 0,r.useAxis="XZ";{const A=()=>{r.scale=[e.scale[1],e.scale[2]]};A(),this.d(e.scaleChanged.don(A))}{const A=()=>{e.rotationType===0&&(r.rotationMode="WithProp",this.d(Dt([r,"rotation"],[e,"rotation"]))),e.rotationType===1&&(r.rotationMode="WithCamera"),e.rotationType===2&&(r.rotationMode="WithCameraOnlyZ")};A(),this.dispose(e.rotationTypeChanged.disposableOn(A))}const h=()=>{const A=e.anchor,f=e.offset;A?r.originRatioAndOffset=[...A,-f[0]/100,-f[1]/100]:r.originRatioAndOffset=[0,0,0,0]},u=this.ad(p.createNextAnimateFrameEvent(e.anchorChanged,e.offsetChanged));this.dispose(u.disposableOn(()=>h())),h()}get czmGeoImageModel(){return this._czmGeoImageModel}}const Lu=class Lu extends Ol{constructor(e,i){super(e,i);L(this,"_resetting");if(!i.viewer){console.warn("viewer is undefined!");return}const r=this.disposeVar(p.createNextAnimateFrameEvent(this.sceneObject.urlChanged,this.sceneObject.screenRenderChanged,this.sceneObject.sizeByContentChanged,this.sceneObject.sizeChanged));this._resetting=this.disposeVar(new p.ObjResettingWithEvent(r,()=>this.sceneObject.screenRender?new mC(this.sceneObject,this.czmViewer):new gC(this.sceneObject,this.czmViewer,this)))}get resetting(){return this._resetting}flyTo(e,i){const{sceneObject:o,czmViewer:r,resetting:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(s&&s.obj&&s.obj.flyTo(e,i),o.flyOverEvent.emit(i,"over",r),!0):!1}};L(Lu,"type",Lu.register("ESCesiumViewer",Q.ESImageLabel.type,Lu));let Nm=Lu;function fO(t){switch(t){case"wms":return"WebMapServiceImageryProvider";case"tms":return"TileMapServiceImageryProvider";case"wmts":return"WebMapTileServiceImageryProvider";case"xyz":return"UrlTemplateImageryProvider";case"ion":return"IonImageryProvider"}}const zu=class zu extends Bn{constructor(e,i){super(e,i);L(this,"_czmImagery");if(this._czmImagery=this.dv(new Nr(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this._czmImagery;{const s=this.ad(p.reactJson(""));{const c=()=>{if(typeof e.url=="string")s.value=Q.ESSceneObject.context.getStrFromEnv(e.url);else{const h=e.url;h.url=Q.ESSceneObject.context.getStrFromEnv(h.url),s.value=h}};c(),this.ad(e.urlChanged.don(c))}const a=()=>{var d;if(!s.value)return;const c=(((d=e.options)==null?void 0:d.type)??"auto").toLowerCase(),h=e.options??{};let u={type:"UrlTemplateImageryProvider",url:s.value,rectangle:e.rectangle,maximumLevel:e.maximumLevel,minimumLevel:e.minimumLevel,...h},A=s.value,f=typeof A=="string"?A:A.url;if(c==="auto"){const g=f.toLowerCase();if(g.startsWith("ion://")){const y=+g.substring(6);u={...h,assetId:y,type:"IonImageryProvider"}}else if(g.includes("{x}")||g.includes("{y}")||g.includes("{z}"))u.type="UrlTemplateImageryProvider";else if(g.includes("wmts"))u.type="WebMapTileServiceImageryProvider";else if(g.includes("wms"))u.type="WebMapServiceImageryProvider";else{if(f.includes("/tilemapresource.xml")){const v=f.split("/tilemapresource.xml").join("");typeof A=="string"?A=v:A.url=v,u.url=A}u.type="TileMapServiceImageryProvider"}}else{if(c==="tms"&&f.includes("/tilemapresource.xml")){const g=f.split("/tilemapresource.xml").join("");typeof A=="string"?A=g:A.url=g,u.url=A}else if(c==="ion"&&f.startsWith("ion://")){const v=+f.substring(6);u={...h,assetId:v,type:"IonImageryProvider"}}u.type=fO(c)}console.log("imageryProvider",u),r.imageryProvider=u};a();const l=this.dv(p.createNextAnimateFrameEvent(s.changed,e.maximumLevelChanged,e.minimumLevelChanged,e.optionsChanged,e.rectangleChanged));this.d(l.don(a))}this.d(p.track([r,"show"],[e,"show"])),this.d(p.bind([r,"alpha"],[e,"opacity"])),this.d(p.bind([r,"alpha"],[e,"czmAlpha"])),this.d(p.track([r,"splitDirection"],[e,"splitDirection"])),this.d(p.track([r,"brightness"],[e,"czmBrightness"])),this.d(p.track([r,"contrast"],[e,"czmContrast"])),this.d(p.track([r,"hue"],[e,"czmHue"])),this.d(p.track([r,"saturation"],[e,"czmSaturation"])),this.d(p.track([r,"gamma"],[e,"czmGamma"])),this.d(p.track([r,"rectangle"],[e,"rectangle"])),this.d(p.track([r,"zIndex"],[e,"zIndex"]))}get czmImagery(){return this._czmImagery}flyTo(e,i){const{sceneObject:o,czmViewer:r,czmImagery:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(s.flyTo(e&&e),o.flyOverEvent.emit(i,"over",r),!0):!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,czmImagery:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):(s.flyTo(e&&e),o.flyOverEvent.emit(i,"over",r),!0):!1}};L(zu,"type",zu.register("ESCesiumViewer",Q.ESImageryLayer.type,zu));let Gm=zu;class dO extends p.Destroyable{constructor(e,i,o,r){super();L(this,"_show");L(this,"_czmESCustomPrimitive");L(this,"_czmTexture");this._sceneObject=e,this._show=this.disposeVar(p.react(this._sceneObject.show)),this._czmESCustomPrimitive=this.dv(new st(i,this._sceneObject.id)),this._czmTexture=this.dv(new At(i));const s=e,a=this._czmESCustomPrimitive,l=this._czmTexture;this.dispose(p.track([a,"show"],[this,"show"])),this.dispose(p.track([a,"show"],[s,"show"])),this.dispose(p.track([a,"allowPicking"],[s,"allowPicking"])),this.dispose(p.track([a,"rotation"],[s,"rotation"])),this.dispose(p.track([a,"position"],[s,"position"])),this.dispose(p.track([a,"scale"],[s,"scale"])),this.ad(s.allowPickingChanged.don(()=>{a.allowPicking=s.allowPicking,a.pass=s.allowPicking?"TRANSLUCENT":"OVERLAY"}));{const c=()=>{const u=s.size/2,A=r[0].map(S=>S*u),f=r[1].map(S=>S*u),d=r[2].map(S=>S*u),g=r[3].map(S=>S*u),v=[...A,...f,...d,...g];let y=[0,3,2,0,2,1];(o=="north"||o=="west"||o=="bottom")&&(y=y.reverse());const m=[0,0],w=[1,0],_=[1,1],E=[0,1];let T=[];o=="east"||o=="south"?T=[...w,...m,...E,..._]:o=="west"?T=[...w,..._,...E,...m]:o=="top"?T=[...E,..._,...w,...m]:T=[...m,...w,..._,...E],a.indexTypedArray=new Uint16Array(y),a.attributes={position:{typedArray:new Float32Array(v),componentsPerAttribute:3},st:{typedArray:new Float32Array(T),componentsPerAttribute:2}},l.uri=Q.ESSceneObject.context.getStrFromEnv(`\${earthsdk3-assets-script-dir}/assets/img/skybox/${s.mode}/${o}.${s.mode!="blueSky"?"png":"jpg"}`);const P=i.getCameraInfo();if(P!=null){const I=Q.getDistancesFromPositions([s.position,P.position],"NONE")[0]/(s.size/2*s.autoOpacityFactor);this.changeOpacity(s.autoFollow?1:I)}const F=a.computeLocalAxisedBoundingBoxFromAttribute("position");if(!F)return;const{min:D,max:B}=F;a.setLocalAxisedBoundingBox(D,B)};c();const h=this.disposeVar(p.createNextAnimateFrameEvent(s.sizeChanged,s.modeChanged));this.dispose(h.disposableOn(c))}}get show(){return this._show.value}set show(e){this._show.value=e}get showChanged(){return this._show.changed}get czmESCustomPrimitive(){return this._czmESCustomPrimitive}get czmTexture(){return this._czmTexture}changeOpacity(e){this._czmESCustomPrimitive.uniformMap={u_image:{type:"texture",id:this._czmTexture.id},u_color:[1,1,1,1-e>=0?1-e:0]}}}class pO extends p.Destroyable{constructor(n,e,i){if(super(),!e.viewer)return;let o=!0,r;this.dispose(e.viewer.scene.preUpdate.addEventListener(()=>{s()}));function s(){var l;if(!((l=e.viewer)!=null&&l.camera))return;const a=e.getCameraInfo();if(a!=null&&(r==null||r.position[0]!=a.position[0]||r.position[1]!=a.position[1]||r.position[2]!=a.position[2]||r.rotation[0]!=a.rotation[0]||r.rotation[1]!=a.rotation[1]||r.rotation[2]!=a.rotation[2])){r=a;const h=Q.getDistancesFromPositions([n.position,r.position],"NONE")[0]/(n.size/2*n.autoOpacityFactor);n.autoFollow?(n.position=r.position,o&&(o=!1,i.forEach(u=>{u.changeOpacity(1)}))):i.forEach(u=>{u.changeOpacity(h)})}}s()}}const Tt=class Tt extends Ge{constructor(e,i){super(e,i);L(this,"_czmSkyBoxComponents",[]);if(!i.viewer){console.warn("viewer is undefined!");return}!Tt._defaultLocalBox&&Tt._firstLoad&&(Tt._firstLoad=!1,Tt._defaultLocalBox=i.xbsjLocalBoxSources),Tt._eSLocalSkyBoxArr.push(e),this.d(()=>{Tt._eSLocalSkyBoxArr.includes(e)&&Tt._eSLocalSkyBoxArr.splice(Tt._eSLocalSkyBoxArr.indexOf(e),1),this.ChangeAutoFollow()});const r={bottom:[[-1,-1,-1],[1,-1,-1],[1,1,-1],[-1,1,-1]],top:[[-1,-1,1],[1,-1,1],[1,1,1],[-1,1,1]],south:[[-1,-1,-1],[1,-1,-1],[1,-1,1],[-1,-1,1]],north:[[-1,1,-1],[1,1,-1],[1,1,1],[-1,1,1]],east:[[1,-1,-1],[1,1,-1],[1,1,1],[1,-1,1]],west:[[-1,1,-1],[-1,1,1],[-1,-1,1],[-1,-1,-1]]};for(const s in r)if(Object.prototype.hasOwnProperty.call(r,s)){const a=r[s];this._czmSkyBoxComponents.push(this.dv(new dO(e,i,s,a)))}{const s=this.disposeVar(p.createNextAnimateFrameEvent(e.autoFollowChanged,e.autoOpacityFactorChanged));this.disposeVar(new p.ObjResettingWithEvent(s,()=>(this.ChangeAutoFollow(),new pO(e,i,this._czmSkyBoxComponents))))}{const s=()=>{this.ChangeAutoFollow()},a=this.disposeVar(p.createNextAnimateFrameEvent(e.sizeChanged,e.modeChanged,e.showChanged));this.dispose(a.disposableOn(s))}}ChangeAutoFollow(){const{czmViewer:e}=this;for(let i=Tt._eSLocalSkyBoxArr.length-1;i>=0;i--){const o=Tt._eSLocalSkyBoxArr[i];if(o.autoFollow&&o.show){e.xbsjLocalBoxSources={positiveX:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/east.${o.mode!="blueSky"?"png":"jpg"}`,negativeX:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/west.${o.mode!="blueSky"?"png":"jpg"}`,positiveY:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/bottom.${o.mode!="blueSky"?"png":"jpg"}`,negativeY:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/top.${o.mode!="blueSky"?"png":"jpg"}`,positiveZ:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/north.${o.mode!="blueSky"?"png":"jpg"}`,negativeZ:`\${earthsdk3-assets-script-dir}/assets/img/skybox/${o.mode}/south.${o.mode!="blueSky"?"png":"jpg"}`};break}i==0&&(e.xbsjLocalBoxSources=Tt._defaultLocalBox)}Tt._eSLocalSkyBoxArr.length==0&&(e.xbsjLocalBoxSources=Tt._defaultLocalBox)}flyTo(e,i){const{sceneObject:o,czmViewer:r}=this;if(!r.actived)return!1;if(o.flyToParam||o.flyInParam)return super.flyTo(e,i);{const s=o.size??Q.ESLocalSkyBox.defaults.size;return o.position?(Rn(r,o,i,o.position,s,e,!0),!0):!1}}};L(Tt,"type",Tt.register("ESCesiumViewer",Q.ESLocalSkyBox.type,Tt)),L(Tt,"_defaultLocalBox"),L(Tt,"_firstLoad",!0),L(Tt,"_eSLocalSkyBoxArr",[]);let Wm=Tt;const qn=class qn extends Ge{constructor(e,i){super(e,i);L(this,"_geoCustomDivPoi");L(this,"_textFunc",this.disposeVar(p.react(void 0)));if(this._geoCustomDivPoi=this.disposeVar(new wt(i,e.id)),!i.viewer){console.warn("viewer is undefined!");return}const r=this.geoCustomDivPoi;this.dispose(p.track([r,"show"],[e,"show"])),this.dispose(p.bind([r,"position"],[e,"position"])),this.dispose(p.track([r,"allowPicking"],[e,"allowPicking"]));{this.dispose(r.pickedEvent.disposableOn(s=>{(e.allowPicking??Q.ESLocationMeasurement.defaults.allowPicking)&&e.pickedEvent.emit(s)})),this.dispose(r.innerHtmlMounted.disposableOn(s=>{const a=s.firstElementChild;a&&(a.style.pointerEvents="auto",a.style.cursor="default",a.onclick=l=>r.pickFromDiv(a,{type:"viewerPicking",pointerEvent:l}))}));{const s=()=>{if(!e.position)return;const l=(this.textFunc??qn.defaultTextFunc_度格式)(e.position);r.innerHTML=bo(l)};s();const a=this.disposeVar(p.createNextAnimateFrameEvent(e.positionChanged,this.textFuncChanged));this.dispose(a.disposableOn(s))}{const s=()=>{i.lonLatFormat??(i.lonLatFormat="DECIMAL_DEGREE"),this.textFunc=i.lonLatFormat=="DECIMAL_DEGREE"?qn.defaultTextFunc_度格式:i.lonLatFormat=="DEGREES_DECIMAL_MINUTES"?qn.defaultTextFunc_度分格式:qn.defaultTextFunc_度分秒格式};s(),this.d(i.lonLatFormatChanged.don(()=>{s()}))}}}get geoCustomDivPoi(){return this._geoCustomDivPoi}get textFunc(){return this._textFunc.value}set textFunc(e){this._textFunc.value=e}get textFuncChanged(){return this._textFunc.changed}flyTo(e,i){const{sceneObject:o,czmViewer:r,geoCustomDivPoi:s}=this;return r.actived?o.flyToParam||o.flyInParam?super.flyTo(e,i):(s.flyTo(e),o.flyOverEvent.emit(i,"over",r),!0):!1}flyIn(e,i){const{sceneObject:o,czmViewer:r,geoCustomDivPoi:s}=this;return r.actived?o.flyInParam?super.flyIn(e,i):(s.flyTo(e),o.flyOverEvent.emit(i,"over",r),!0):!1}};L(qn,"type",qn.register("ESCesiumViewer",Q.ESLocationMeasurement.type,qn)),L(qn,"defaultTextFunc_度格式",e=>{if(!e)return"";const[i=0,o=0,r=0]=e;return`经度: ${i.toFixed(5)}°
3492
3492
  纬度: ${o.toFixed(5)}°
3493
3493
  高度: ${r.toFixed(2)}m`}),L(qn,"defaultTextFunc_度分格式",e=>{if(!e)return"";const[i,o,r]=Xf(e,!0);return`经度: ${i}
3494
3494
  纬度: ${o}
@@ -4142,10 +4142,10 @@ void main()
4142
4142
  {
4143
4143
  out_FragColor = u_color;
4144
4144
  }
4145
- `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},st,t)}class dQ extends p.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const o=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const s=i=this._getStartInfo(r.pointerEvent);s&&(this.owner.hoveredPlaneType=s.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(o.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{do{const s=this._getStartInfo(r.pointerEvent);if(!s||s.currentPlaneType==="none")break;const{currentPlaneType:a}=s,l=[...this.owner.selfRotation];l[ri.rotationNum[a]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(p.createProcessingFromAsyncFunc(async(n,e,i)=>{const o=this.owner.circles[i.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(r=>{if(i&&r.pointerEvent){const{offsetX:s,offsetY:a}=r.pointerEvent,l=[s,a],{currentPlaneType:c}=i;if(c==="none")return;const h=this.owner.getPlane(c);if(!i.currentV)return;const u=h.pick(l);if(!u||!this.owner.cartesian)return;const A=C.Cartesian3.subtract(i.currentV,this.owner.cartesian,new C.Cartesian3);C.Cartesian3.normalize(A,A);const f=C.Cartesian3.subtract(u,this.owner.cartesian,new C.Cartesian3);if(C.Cartesian3.normalize(f,f),!h.normal||!h.origin)return;const d=_v(A,f,h.normal),g=_v(h.origin,A,h.normal),v=_v(h.origin,f,h.normal);{const y=[...this.owner.selfRotation];y[ri.rotationNum[c]]=i.startRotation+d,this.owner.selfRotation=y,o.circleStartRotation=g,o.circleEndRotation=v}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{o.circleStartRotation=0,o.circleEndRotation=0}),await p.step(n,r=>new Promise((s,a)=>{r.disposer.dispose(a),r.disposer.dispose(e.pointerUpEvent.don(()=>{s()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{s()}))}))}))}_pickPlane(n,e,i,o,r){const s=this.owner.cartesian;if(!s)return;const{selfRotation:a}=this.owner,l=this.owner.getPlane(i).pick(o);if(!l)return;const c=C.Cartesian3.distance(s,l),h=r/4,u=h*3/128;if(!(c>=h-u&&c<=h+u))return;const f=C.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=f||(n.currentPlaneType=i,n.currentD2c=f,n.currentV=l,n.startRotation=a[ri.rotationNum[i]])}_getStartInfo(n){var h;const{czmViewer:e}=this.owner,i=(h=e.viewer)==null?void 0:h.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=Di(i,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:r,offsetY:s}=n,a=[r,s],l=n.pointerId,c={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(c,i,"heading",a,o),this._pickPlane(c,i,"pitch",a,o),this._pickPlane(c,i,"roll",a,o),c}}function _v(t,n,e){const i=C.Cartesian3.cross(n,t,new C.Cartesian3);if(i.equals(C.Cartesian3.ZERO))return 0;C.Cartesian3.normalize(i,i);const o=C.Cartesian3.dot(i,e);let r=Math.acos(C.Cartesian3.dot(t,n))*180/Math.PI;return r=o>0?r:-r,r}const aa=class aa extends kn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(p.react("none")));L(this,"_movingPlaneType",this.disposeVar(p.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new uQ(this)),pitch:this.disposeVar(new cQ(this)),roll:this.disposeVar(new hQ(this))});L(this,"_rotatorRunningResetting");this._czmViewer=e;const i=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new p.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new dQ(this)})),this._circles={heading:this._createRotatorCircle(i,"heading"),pitch:this._createRotatorCircle(i,"pitch"),roll:this._createRotatorCircle(i,"roll")},!!i.viewer){{const r=()=>{this._cartesian=this.position&&vt(this.position)||void 0};r(),this.dispose(this.positionChanged.disposableOn(r))}this._createCameraModel(i)}}get hoveredPlaneType(){return this._hoveredPlaneType.value}set hoveredPlaneType(e){this._hoveredPlaneType.value=e}get hoveredPlaneTypeChanged(){return this._hoveredPlaneType.changed}get movingPlaneType(){return this._movingPlaneType.value}set movingPlaneType(e){this._movingPlaneType.value=e}get movingPlaneTypeChanged(){return this._movingPlaneType.changed}get circles(){return this._circles}get czmCameraModel(){return this._czmCameraModel}get cartesian(){return this._cartesian}get czmViewer(){return this._czmViewer}getPlane(e){return this._planes[e]}get rotatorRunningResetting(){return this._rotatorRunningResetting}_createCameraModel(e){this._czmCameraModel=new Ht(e),this._czmCameraModel.url="${earthsdk3-assets-script-dir}/assets/glb/camera1/camera1.gltf",this._czmCameraModel.localRotation=[90,0,0],this._czmCameraModel.allowPicking=!1,this._czmCameraModel.opaquePass="OVERLAY",this.dispose(p.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(p.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(p.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const o=at({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=C.Matrix4.toArray(o))};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.circles.heading.show=this.enabled,this.circles.pitch.show=this.enabled,this.circles.roll.show=this.enabled,this._czmCameraModel&&(this._czmCameraModel.show=this.enabled&&this.showHelper)};i(),this.dispose(this.enabledChanged.disposableOn(i)),this.dispose(this.showHelperChanged.disposableOn(i))}}_createRotatorCircle(e,i){const o=this.ad(new Es(e));this.dispose(p.track([o,"position"],[this,"position"])),this.dispose(p.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(p.track([o,"debug"],[this,"debug"])),this.dispose(p.track([o,"rotation"],[this,"rotation"]));{const r=()=>{o.selfRotation=aa.rotationFuncs[i](this.selfRotation),o.circleRotation=this.selfRotation[aa.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const s=this.movingPlaneType===i,a=this.hoveredPlaneType===i,c=[0,0,0,s||a?1:.8];c[aa.rotationNum[i]]=1,o.color=c};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return o}};L(aa,"rotationNum",{heading:0,pitch:1,roll:2}),L(aa,"rotationFuncs",{heading:([e,i,o])=>[0,0,0],pitch:([e,i,o])=>[e,0,-90],roll:([e,i,o])=>[e,i+90,0]});let ri=aa;(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),rotation:p.reactArray([0,0,0]),selfRotation:p.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(ri||(ri={})),p.extendClassProps(ri.prototype,ri.createDefaultProps);const sa=class sa extends p.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??sa.defaults.positions[0],this.stopPosition??sa.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??sa.defaults.positions[0],n??sa.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new Je(n,e));o.arcType="RHUMB";const r=this.ad(new On(n,e));this.ad(p.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(p.track([r,"allowPicking"],[this,"allowPicking"]));{const s=()=>{o.show=r.show=this.show};s(),this.ad(this.showChanged.don(s))}{const s=()=>{o.width=this.width/2,r.pixelSize=this.width};s(),this.ad(this.widthChanged.don(s))}{const s=()=>{o.color=r.color=this.color};s(),this.ad(this.colorChanged.don(s))}{const s=()=>{o.positions=this.positions,r.position=this.stopPosition};s(),this.dispose(this.startPositionChanged.disposableOn(s)),this.dispose(this.stopPositionChanged.disposableOn(s))}}};L(sa,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Jo=sa;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(t.defaults.positions),width:10,color:p.reactArray([1,0,0,1])})})(Jo||(Jo={})),p.extendClassProps(Jo.prototype,Jo.createDefaultProps);class rr extends kn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(p.react(!1)),moved:this.ad(p.react(!1)),constraintMode:this.disposeVar(p.react("none")),originPosition:this.disposeVar(p.reactArray([0,0,0])),originHeading:this.disposeVar(p.react(0)),originDimensions:this.disposeVar(p.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(p.reactArray([0,0,0])),movingPosition:this.disposeVar(p.reactArray([0,0,0])),targetPosition:this.disposeVar(p.reactArray([0,0,0])),targetHeading:this.disposeVar(p.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new p.Processing((i,o,r)=>{const s=[0,0,0],a=new C.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const c=Zn(p.getDomEventCurrentTargetPos(l.pointerEvent));if(!ha(e.viewer.scene,c,this._opInfo.originPosition.value[2],a))return;ua(a,s),this._opInfo.constraintMode.value==="x"?fo(this._opInfo.originPosition.value,this._opInfo.originHeading.value,s,s):this._opInfo.constraintMode.value==="y"?fo(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,s,s):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=s,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const h=[0,0,0];Q.geoRhumbDestination(s,r,o,h),this._opInfo.targetPosition.value=h;let u=this.scale[0],A=this.scale[1];const f=Q.geoDistance(h,this._opInfo.originPosition.value)-Q.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...h];const d=this._opInfo.originDimensions.value[0]/100;f!=0&&this._opInfo.constraintMode.value==="y"&&(f>0?u+=d:u-=d),f!=0&&this._opInfo.constraintMode.value==="x"&&(f>0?A+=d:A-=d),u<=0&&(u+=d),A<=0&&(A+=d),this.scale=[u??1,A??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new p.Processing(()=>{const i=new C.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const s=Zn(p.getDomEventCurrentTargetPos(r.pointerEvent));if(!jc(e.viewer.scene,vt(this._opInfo.originPosition.value),s,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const a=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ue(i,o)){this._opInfo.movingPosition.value=o;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],o[2]+a];let c=this.scale[2];const h=o[2]-this._lastPosition[2];this._lastPosition=[...o];const u=this._opInfo.originDimensions.value[0]/100;h!=0&&(h>0?c+=u:c-=u),c<=0&&(c+=u),this.scale=[this.scale[0]??1,this.scale[1]??1,c??1]}})})));const i=e.viewer;if(!i)return;const{scene:o}=i;this.ad(new Vf(e,this.positionReact,this._opInfo.originDimensions,this.axisPixelSize)),this.ad(e.dblclickEvent.don(()=>{this.enabled=!1})),this._scaleAxis={zAxis:this._createScaleAxis(e,"zAxis"),yAxis:this._createScaleAxis(e,"yAxis"),xAxis:this._createScaleAxis(e,"xAxis")};{const c=()=>{if(!this._scaleAxis)return;const{zAxis:h,yAxis:u,xAxis:A}=this._scaleAxis,f=this._opInfo.constraintMode.value,d=this._opInfo.step;h.color=[0,0,1,.99],u.color=[0,1,0,.99],A.color=[1,0,0,.99],f==="x"?A.color=d?[1,1,0,.8]:[1,1,0,.99]:f==="y"?u.color=d?[1,1,0,.8]:[1,1,0,.99]:f==="z"&&(h.color=d?[1,1,0,.8]:[1,1,0,.99])};c(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(c)),this.dispose(this._opInfo.step.changed.disposableOn(c))}{const c=()=>{if(!this._scaleAxis)return;const{position:u=rr.defaults.position}=this,{zAxis:A,yAxis:f,xAxis:d}=this._scaleAxis;A.startPosition=f.startPosition=d.startPosition=u;const[g,v,y]=u;A.stopPosition=[g,v,y+this._opInfo.originDimensions.value[2]];const m=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[0],90);m&&(d.stopPosition=m);const w=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[1],0);w&&(f.stopPosition=w)};c();const h=this.ad(p.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(h.don(c))}{const c=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((h,u)=>h===this._opInfo.targetPosition.value[u])){this._opInfo.moved.value=!0;return}};c(),this.dispose(this._opInfo.originHeading.changed.disposableOn(c)),this.dispose(this._opInfo.originPosition.changed.disposableOn(c)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(c)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(c))}const r=this._pickingXYProcessing(e),s=this._pickingZProcessing(e),a=this.disposeVar(p.createProcessingFromAsyncFunc(async c=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",c.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await p.step(c,async h=>{const u=()=>{const d=[...this.position??rr.defaults.position];e.editingHeightOffset&&(d[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=d};h.disposer.dispose((u(),this.positionChanged.disposableOn(u)));const A={constraintMode:"none",startDragPos:[0,0,0]},f=d=>{if(!this.position)return;const g={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};If(d,o,g,this.axisSnapPixelSize,A),this._opInfo.constraintMode.value=A.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=A.startDragPos};h.disposer.dispose(e.pointerMoveEvent.disposableOn(d=>{d.pointerEvent&&f(d.pointerEvent)})),await p.step(h,d=>new Promise((g,v)=>{d.disposer.dispose(v),d.disposer.dispose(e.pointerDownEvent.don(y=>{y.pointerEvent&&f(y.pointerEvent),y.pointerEvent&&y.pointerEvent.button===0&&A.constraintMode!=="none"&&g()}))}))}),this._opInfo.step.value=!1,await p.step(c,async h=>{if(e.incrementDisabledInputStack(),h.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const u=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),A=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,u,A),h.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(s.restart(),h.disposer.dispose(()=>s.cancel()));await p.step(h,u=>new Promise((A,f)=>{u.disposer.dispose(f),u.disposer.dispose(e.pointerUpEvent.don(()=>{A()})),u.disposer.dispose(e.pointerOutEvent.don(()=>{A()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?a.restart():a.isRunning&&a.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const o=this.ad(new Jo(e));return o.width=10,this.ad(p.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),scale:p.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(rr||(rr={})),p.extendClassProps(rr.prototype,rr.createDefaultProps);const ho=class ho extends hn{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new p.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(p.react(!1)));L(this,"_status",this.disposeVar(p.react("None")));L(this,"_positionsChanged",this.ad(new p.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:o,deleteCount:r,items:s}of i){for(const a of s)a.menuPoi.enabled=this.menuPoiEnabled??!1;for(let a=o;a<o+r;++a)this.editingPoints.get(a).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(p.nextAnimateFrame(()=>{var o;((o=i.pointerEvent)==null?void 0:o.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(i=>{this._currentProcess&&(i?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const i=()=>{this.polylineShow=this.czmViewer.editingLineShow};i(),this.ad(this.czmViewer.editingLineShowChanged.don(i))}}get editingPoints(){return this._editingPoints}get cancelEvent(){return this._cancelEvent}cancel(){this._cancelEvent.emit()}get currentProcess(){return this._currentProcess}set currentProcess(e){this._currentProcess=e}get menuPoiEnabled(){return this._menuPoiEnabled.value}set menuPoiEnabled(e){this._menuPoiEnabled.value=e}get menuPoiEnabledChanged(){return this._menuPoiEnabled.changed}get status(){return this._status.value}get statusChanged(){return this._status.changed}set status(e){this._status.value=e}getPositions(){const e=[];for(let i of this._editingPoints)i.position&&e.push([...i.position]);return e}resetPositions(e){if(this.enabled??ho.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((o,r)=>o.every((s,a)=>{const l=this.editingPoints.get(r);return l.position&&l.position[a]===s})))}forceResetPositions(e){(this.enabled??ho.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new Je(e));this.ad(p.track([i,"color"],[this,"polylineColor"])),this.ad(p.track([i,"width"],[this,"polylineWidth"])),this.ad(p.track([i,"show"],[this,"polylineShow"])),this.ad(p.track([i,"arcType"],[this,"polylineArcType"])),this.ad(p.track([i,"loop"],[this,"loop"]));{const o=()=>{const r=[];for(const s of this.getPositions())s[2]-=e.editingHeightOffset??0,r.push(s);i.positions=r};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new p.CursorInfo(e.container,p.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const o=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}o==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):o==="Modifying"||o==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):o==="None"&&(i.text="",i.show=!1)}}))}};L(ho,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(ho,"defaults",{...hn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:ho.baseImageUrl+"point-green.png",otherControlPointImageUrl:ho.baseImageUrl+"point-yellow.png"});let Wn=ho;(t=>{t.createDefaultProps=()=>({...hn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:p.reactArray([1,1,1,1]),polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,firstControlPointImageUrl:t.baseImageUrl+"point-green.png",otherControlPointImageUrl:t.baseImageUrl+"point-yellow.png",hideCursorInfo:!1,middlePointShow:!0})})(Wn||(Wn={})),p.extendClassProps(Wn.prototype,Wn.createDefaultProps);let pQ=0;class XS extends p.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_id",pQ++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const o=this._menuPoi=this.ad(new _a(e.czmViewer));o.enabled=!1,this.ad(p.track([o,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){o.position=void 0;return}const s=[...this.position];s[2]-=e.czmViewer.editingHeightOffset??0,o.position=s,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const s=e.editingPoints.indexOf(this)+1;s!==0&&(o.title=`控制点${s}`,s===1?o.imageUri=e.firstControlPointImageUrl??Wn.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??Wn.defaults.otherControlPointImageUrl)};r(),this.dispose(e.editingPoints.changedEvent.disposableOn(r))}}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get id(){return this._id}get menuPoi(){return this._menuPoi}}class $S extends XS{constructor(n,e){super(n,e)}}class Pt extends Wn{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new p.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new ii(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Pt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Pt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await o.promise(p.step(o,async r=>{const s=r.disposer,a=s.ad(this._addingEditingProcessing());s.dispose(()=>"adding canceled!"),s.dispose(this.cancelEvent.disposableOn(()=>a.cancel())),await r.promise(new Promise(l=>{s.dispose(a.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new $S(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Pt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=p.createProcessingFromAsyncFunc(async o=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await o.promise(p.step(o,async a=>{let l;!e()&&(l=a.disposer.disposeVar(new mQ(this,r)));const h=a.disposer.disposeVar(new yQ(this,r));return a.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>h.do())),await a.promise(new Promise(u=>{l&&a.disposer.dispose(l.overEvent.disposableOnce(A=>{A?(r++,u(!0)):u(!1)})),a.disposer.dispose(h.overEvent.disposableOnce(A=>{A?(r--,u(!0)):u(!1)})),a.disposer.dispose(this.cancelEvent.disposableOn(()=>u(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...Wn.createDefaultProps()})})(Pt||(Pt={})),p.extendClassProps(Pt.prototype,Pt.createDefaultProps);class mQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));const{placeEditing:o}=e;let r=new $S(e,void 0);e.editingPoints.splice(i,0,r);const s=()=>{(e.debug??Pt.defaults.debug)&&console.log("delete currentPosEditor");const c=e.editingPoints.indexOf(r);if(c===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(c,1)};if(o.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(p.track([r,"position"],[o,"position"])),o.enabled=!0;let a=!1;const l=()=>{s(),this._overEvent.emit(!1)};this.dispose(()=>{o.enabled=!1,!a&&l()}),this.dispose(o.overEvent.disposableOnce(()=>{a=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Pt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function gQ(t,n){const e=t.editingPoints,i=n-1;return i<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(i,1),!0)}class yQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_doEvent",this.disposeVar(new p.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(gQ(e,i)))),(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class YS extends Pt{constructor(n){super(n),this.loop=!1}}class JS extends Pt{constructor(n){super(n),this.loop=!0}}class gf extends XS{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(o=>{n.menuPoiCommand(this,o)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new ui(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??tt.defaults.firstControlPointImageUrl,i.tooltip="点击增加一个控制点",i.bgColor=[0,0,0,.6],i.fgColor=[1,1,1,1],i.size=[8,8],i.originRatioAndOffset=[.5,.5,0,0];{const o=()=>{if(!(n.enabled??tt.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const s=n.editingPoints.indexOf(this);if(s===-1)break;const a=n.editingPoints.length;if(a===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??tt.defaults.loop)&&s+1>=a)break;const c=this.position;if(!c)break;let h=(s+1)%a;const A=n.editingPoints.get(h).position;if(!A)break;const f=Mf(c,A);if(!f)break;f[2]-=n.czmViewer.editingHeightOffset??0,i.position=f;const d=n.editingPoints.length<(n.maxPointsNum??tt.defaults.maxPointsNum);i.enabled=d,i.show=d;return}while(!1);i.enabled=!1,i.show=!1};o(),this.dispose(n.positionsChanged.disposableOn(o)),this.dispose(n.loopChanged.disposableOn(o)),this.dispose(n.enabledChanged.disposableOn(o))}this.dispose(i.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??tt.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const s=i.position?[...i.position]:void 0;s&&(s[2]+=n.czmViewer.editingHeightOffset??0);let a=new gf(n,s);n.editingPoints.splice(r+1,0,a),n.modify(a)}))}}}}class tt extends Wn{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"translationEditing");{const o=this.ad(p.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new p.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new vQ(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new ir(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??tt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??tt.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await o.promise(p.step(o,async s=>{const a=s.disposer,l=a.ad(new wQ(this));return a.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),a.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),a.dispose(this._forceModifyPosEditorEvent.disposableOn(h=>l.modify(h))),await s.promise(new Promise(h=>{a.dispose(l.overEvent.disposableOnce(u=>{h(u)}))}))})),r===-1){(this.debug??tt.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??tt.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??tt.defaults.loop;const a=this.editingPoints.get(r-1).position;if(!a)return;let l=r%this.editingPoints.length;const h=this.editingPoints.get(l).position;if(!h)return;const u=Mf(a,h);if(!u)return;u&&(u[2]+=this.czmViewer.editingHeightOffset??0);let A=new gf(this,u);this.editingPoints.splice(r,0,A)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new gf(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...Wn.createDefaultProps(),moveWithFirstPosition:!1})})(tt||(tt={})),p.extendClassProps(tt.prototype,tt.createDefaultProps);class vQ extends p.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,o)=>{if(i===void 0||o===void 0)return;var r=[i[0]-o[0],i[1]-o[1],i[2]-o[2]];const s=this.multiPointsModifyEditing.editingPoints.length;for(let a=1;a<s;a++){const l=this.multiPointsModifyEditing.editingPoints.get(a),c=l.position;c!==void 0&&(l.position=[c[0]+r[0],c[1]+r[1],c[2]+r[2]])}})}}class wQ extends p.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const o=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(o);const r=s=>{o(),e.status="Modifying_Point",i=new bQ(e,s),i.dispose(i.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((s,a)=>{if(a==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(a==="modify")r(s);else if(a==="add"){const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else a==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${a})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class bQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:o}=this._modifying;if(o.enabled=!0,o.heading=0,this.dispose(()=>{o.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");o.position=this._posEditor.position,this.dispose(p.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class jS extends tt{constructor(n){super(n),this.loop=!1}}class eE extends tt{constructor(n){super(n),this.loop=!0}}class Ps extends Pt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2;{const e=()=>{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];return}if(this.positions.length==1){this.distance=1,this.rotation=[90,0,0];return}this.startPosition=this.positions[0],this.endPosition=this.positions[1];const i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(o<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([90,0,0]),distance:p.react(1)})})(Ps||(Ps={})),p.extendClassProps(Ps.prototype,Ps.createDefaultProps);class jo extends tt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]];const i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(Math.abs(o)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),distance:p.react(0)})})(jo||(jo={})),p.extendClassProps(jo.prototype,jo.createDefaultProps);class tE extends Pt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class nE extends tt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class Ts extends Pt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(Ts||(Ts={})),p.extendClassProps(Ts.prototype,Ts.createDefaultProps);class Is extends tt{constructor(n){if(super(n),!!n.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(Is||(Is={})),p.extendClassProps(Is.prototype,Is.createDefaultProps);class iE extends jo{constructor(n){super(n),this.firstControlPointImageUrl=this.otherControlPointImageUrl,this.translationEditing.xAxisShow=!1,this.translationEditing.yAxisShow=!1,this.translationEditing.zAxisShow=!0,this.translationEditing.showCircle=!1,this.rotation=[0,90,0]}}class rn extends Q.EngineObject{constructor(e,i,o){super(e,i,o??!0);L(this,"_supportEditing",this.disposeVar(p.react(!0)));L(this,"_currentEditing",this.disposeVar(p.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Pt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof ii&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const Rc=class Rc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ii(e));this.ad(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"])),i.enabled=!i.position||Q.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(Rc,"type",Rc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Place,Rc));let Cv=Rc;const Uc=class Uc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ri(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(Uc,"type",Uc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Rotation,Uc));let xv=Uc;const Oc=class Oc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new rr(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(Oc,"type",Oc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Scale,Oc));let Sv=Oc;const Lc=class Lc extends rn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new ir(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const o=[];for(let r=0;r<n.length;r++){const s=n[r];Reflect.has(s,"position")?o.push(s.position):s.points&&o.push(...s.points)}i.position=Q.getMinMaxCorner(o).center,this.ad(i.positionChanged.disposableOn((r,s)=>{if(!(!r||!s)){var a=fn({originPosition:s},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const c=fn({originPosition:s},[l.position])[0][0];l.position=pr({originPosition:s},[[c[0]+a[0],c[1]+a[1],c[2]+a[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const c=fn({originPosition:s},l.points)[0];l.points=pr({originPosition:s},c.map(h=>[h[0]+a[0],h[1]+a[1],h[2]+a[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"]));break}if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=Q.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((o,r)=>{if(o===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var s=fn({originPosition:r},[o])[0][0];const a=fn({originPosition:r},n.points)[0];n.points=pr({originPosition:r},a.map(l=>[l[0]+s[0],l[1]+s[1],l[2]+s[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(Lc,"type",Lc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Translation,Lc));let yf=Lc;const zc=class zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ps(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const o=vt(n.position);if(C.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=Di(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1);i.startPosition&&!Q.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};L(zc,"type",zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsAppend,zc));let Ev=zc;const Qc=class Qc extends rn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new jo(e));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const s=vt(n.position);if(C.Cartesian3.ZERO.equals(s)||!e.viewer)return;i.distance=Di(e.viewer.scene,s,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const s=()=>i.positions=n.points??[];s(),this.ad(n.pointsChanged.don(()=>!i.enabled&&s())),this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Qc,"type",Qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsModify,Qc));let Pv=Qc;const Vc=class Vc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new JS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Vc,"type",Vc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularAppend,Vc));let Tv=Vc;const Hc=class Hc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new eE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Hc,"type",Hc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularInsert,Hc));let Iv=Hc;const Nc=class Nc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new YS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Nc,"type",Nc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringAppend,Nc));let kv=Nc;const Gc=class Gc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new jS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Gc,"type",Gc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringInsert,Gc));let Fv=Gc;const Wc=class Wc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new tE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Wc,"type",Wc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterAppend,Wc));let Bv=Wc;const qc=class qc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new nE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(qc,"type",qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterModify,qc));let Mv=qc;const Kc=class Kc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ts(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Kc,"type",Kc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityAppend,Kc));let Dv=Kc;const Zc=class Zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Is(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Zc,"type",Zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityModify,Zc));let Rv=Zc;const Xc=class Xc extends rn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new iE(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),s=Reflect.has(n,"height"),a=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof Q.ESClassification||n instanceof Q.ESPolygonFence;let c=Q.getMinMaxCorner(n.points).center,h=[...c],u=l?n.points[0][2]:0;a?r?h[2]=n.extrudedHeight:h[2]=n.height+u:(s&&(c[2]=n.height),r&&(h[2]=n.extrudedHeight)),i.startPosition=c,i.distance=h[2]-c[2],i.moveWithFirstPosition=!1;let A=[...c];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(a?(n.points=n.points.map(f=>[f[0],f[1],f[2]+i.positions[0][2]-A[2]]),r?n.extrudedHeight=i.positions[1][2]:s&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(s&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),A=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Xc,"type",Xc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.HeightModify,Xc));let Uv=Xc;function rE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o,r=!0)=>{const s=Array.isArray(o)?[...o]:[o],a=i.editingID;e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"start",add:{modes:s}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"end",add:{modes:s}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l));const c=u=>{u.code=="Escape"&&l()};document.body.addEventListener("keydown",c),n.disposer.ad(()=>document.body.removeEventListener("keydown",c));let h=0;do{const u=s[h%s.length],A=await p.step(n,async f=>{const d=f.disposer,g=Q.EngineObject.contextEditing.getEngineObjConstructor(u,e.typeName);if(!g||!i.supportEditingModes().includes(u))return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;const v=new g(i,e);if(d.ad(()=>{!v.isDestroyed()&&v.destroy()}),v.supportEditing)e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;return await f.promise(new Promise(m=>{if(v.isDestroyed()&&m(!1),d.ad(v.toDestroyEvent.don(()=>{console.log(`编辑模式${u}结束`),m(!1)})),r){const w=_=>{_.code=="Space"&&(console.log(`编辑模式${u}结束`),m(!1))};document.body.addEventListener("keydown",w),d.ad(()=>document.body.removeEventListener("keydown",w)),d.ad(e.dblclickEvent.don(()=>m(!0)))}}))});if(r&&A||!r&&h==s.length-1||e.notSupportEditingCount==s.length)break;h++}while(!0)});return t}function oE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o)=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r);const s=l=>{l.code=="Escape"&&r()};document.body.addEventListener("keydown",s),n.disposer.ad(()=>document.body.removeEventListener("keydown",s));const a=new yf(i,e);n.disposer.ad(()=>{!a.isDestroyed()&&a.destroy()}),await n.promise(new Promise(l=>{a.isDestroyed()&&l(),n.disposer.ad(a.toDestroyEvent.don(()=>{console.log("移动结束"),l()})),n.disposer.ad(e.dblclickEvent.don(()=>l()))}))});return t}ae.copyright=void 0;try{const t="earthsdk3-cesium",n="3.2.0-beta.8",e="2025-07-08T09:18:44.000Z",i="北京西部世界科技有限公司",o="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="798c9f9e364c0e89c5611fb7689e92715ba748df",a=((Date.now()-1751966324e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${a}个小时)
4145
+ `,uniformMap:{u_color:[1,1,0,1]},name:"CzmCustomPrimitive_47fd",attributes:{position:{typedArray:{type:"Float32Array",array:[0,0,0,0,0,1]},componentsPerAttribute:3}}},st,t)}class dQ extends p.HasOwner{constructor(n){super(n);const{czmViewer:e}=this.owner;let i;this.dispose(()=>this.owner.hoveredPlaneType="none");const o=this._createRotatorMoveProcessing();this.dispose(e.pointerMoveEvent.disposableOn(r=>{const s=i=this._getStartInfo(r.pointerEvent);s&&(this.owner.hoveredPlaneType=s.currentPlaneType)})),this.dispose(e.pointerDownEvent.disposableOn(r=>{i&&i.currentPlaneType!=="none"&&(o.restart(void 0,e,i),i=void 0)})),this.dispose(e.dblclickEvent.disposableOn(r=>{do{const s=this._getStartInfo(r.pointerEvent);if(!s||s.currentPlaneType==="none")break;const{currentPlaneType:a}=s,l=[...this.owner.selfRotation];l[ri.rotationNum[a]]=0,this.owner.selfRotation=l;return}while(!1);this.owner.enabled=!1}))}_createRotatorMoveProcessing(){return this.ad(p.createProcessingFromAsyncFunc(async(n,e,i)=>{const o=this.owner.circles[i.currentPlaneType];e.incrementDisabledInputStack(),n.disposer.dispose(()=>e.decrementDisabledInputStack()),n.disposer.dispose(e.pointerMoveEvent.don(r=>{if(i&&r.pointerEvent){const{offsetX:s,offsetY:a}=r.pointerEvent,l=[s,a],{currentPlaneType:c}=i;if(c==="none")return;const h=this.owner.getPlane(c);if(!i.currentV)return;const u=h.pick(l);if(!u||!this.owner.cartesian)return;const A=C.Cartesian3.subtract(i.currentV,this.owner.cartesian,new C.Cartesian3);C.Cartesian3.normalize(A,A);const f=C.Cartesian3.subtract(u,this.owner.cartesian,new C.Cartesian3);if(C.Cartesian3.normalize(f,f),!h.normal||!h.origin)return;const d=_v(A,f,h.normal),g=_v(h.origin,A,h.normal),v=_v(h.origin,f,h.normal);{const y=[...this.owner.selfRotation];y[ri.rotationNum[c]]=i.startRotation+d,this.owner.selfRotation=y,o.circleStartRotation=g,o.circleEndRotation=v}}})),this.owner.movingPlaneType=i.currentPlaneType,n.disposer.dispose(()=>{this.owner.movingPlaneType="none"}),n.disposer.dispose(()=>{o.circleStartRotation=0,o.circleEndRotation=0}),await p.step(n,r=>new Promise((s,a)=>{r.disposer.dispose(a),r.disposer.dispose(e.pointerUpEvent.don(()=>{s()})),r.disposer.dispose(e.pointerOutEvent.don(()=>{s()}))}))}))}_pickPlane(n,e,i,o,r){const s=this.owner.cartesian;if(!s)return;const{selfRotation:a}=this.owner,l=this.owner.getPlane(i).pick(o);if(!l)return;const c=C.Cartesian3.distance(s,l),h=r/4,u=h*3/128;if(!(c>=h-u&&c<=h+u))return;const f=C.Cartesian3.distance(e.camera.positionWC,l);n.currentD2c<=f||(n.currentPlaneType=i,n.currentD2c=f,n.currentV=l,n.startRotation=a[ri.rotationNum[i]])}_getStartInfo(n){var h;const{czmViewer:e}=this.owner,i=(h=e.viewer)==null?void 0:h.scene;if(!this.owner.position||!this.owner.cartesian)return;const o=Di(i,this.owner.cartesian,this.owner.pixelSize);if(!o)return;const{offsetX:r,offsetY:s}=n,a=[r,s],l=n.pointerId,c={currentPlaneType:"none",currentD2c:Number.POSITIVE_INFINITY,currentV:void 0,startRotation:0,pointerId:l};return this._pickPlane(c,i,"heading",a,o),this._pickPlane(c,i,"pitch",a,o),this._pickPlane(c,i,"roll",a,o),c}}function _v(t,n,e){const i=C.Cartesian3.cross(n,t,new C.Cartesian3);if(i.equals(C.Cartesian3.ZERO))return 0;C.Cartesian3.normalize(i,i);const o=C.Cartesian3.dot(i,e);let r=Math.acos(C.Cartesian3.dot(t,n))*180/Math.PI;return r=o>0?r:-r,r}const aa=class aa extends kn{constructor(e){super();L(this,"_hoveredPlaneType",this.disposeVar(p.react("none")));L(this,"_movingPlaneType",this.disposeVar(p.react("none")));L(this,"_circles");L(this,"_czmCameraModel");L(this,"_cartesian");L(this,"_planes",{heading:this.disposeVar(new uQ(this)),pitch:this.disposeVar(new cQ(this)),roll:this.disposeVar(new hQ(this))});L(this,"_rotatorRunningResetting");this._czmViewer=e;const i=this._czmViewer;if(this._rotatorRunningResetting=this.disposeVar(new p.ObjResettingWithEvent(this.enabledChanged,()=>{if(this.enabled)return new dQ(this)})),this._circles={heading:this._createRotatorCircle(i,"heading"),pitch:this._createRotatorCircle(i,"pitch"),roll:this._createRotatorCircle(i,"roll")},!!i.viewer){{const r=()=>{this._cartesian=this.position&&vt(this.position)||void 0};r(),this.dispose(this.positionChanged.disposableOn(r))}this._createCameraModel(i)}}get hoveredPlaneType(){return this._hoveredPlaneType.value}set hoveredPlaneType(e){this._hoveredPlaneType.value=e}get hoveredPlaneTypeChanged(){return this._hoveredPlaneType.changed}get movingPlaneType(){return this._movingPlaneType.value}set movingPlaneType(e){this._movingPlaneType.value=e}get movingPlaneTypeChanged(){return this._movingPlaneType.changed}get circles(){return this._circles}get czmCameraModel(){return this._czmCameraModel}get cartesian(){return this._cartesian}get czmViewer(){return this._czmViewer}getPlane(e){return this._planes[e]}get rotatorRunningResetting(){return this._rotatorRunningResetting}_createCameraModel(e){this._czmCameraModel=new Ht(e),this._czmCameraModel.url="${earthsdk3-assets-script-dir}/assets/glb/camera1/camera1.gltf",this._czmCameraModel.localRotation=[90,0,0],this._czmCameraModel.allowPicking=!1,this._czmCameraModel.opaquePass="OVERLAY",this.dispose(p.track([this._czmCameraModel,"pixelSize"],[this,"pixelSize"],i=>i*.1)),this.dispose(p.track([this._czmCameraModel,"position"],[this,"position"])),this.dispose(p.track([this._czmCameraModel,"rotation"],[this,"rotation"]));{const i=()=>{const o=at({rotation:this.selfRotation});if(!o)throw new Error("!rm");this._czmCameraModel&&(this._czmCameraModel.localModelMatrix=C.Matrix4.toArray(o))};i(),this.dispose(this.selfRotationChanged.disposableOn(i))}{const i=()=>{this.circles.heading.show=this.enabled,this.circles.pitch.show=this.enabled,this.circles.roll.show=this.enabled,this._czmCameraModel&&(this._czmCameraModel.show=this.enabled&&this.showHelper)};i(),this.dispose(this.enabledChanged.disposableOn(i)),this.dispose(this.showHelperChanged.disposableOn(i))}}_createRotatorCircle(e,i){const o=this.ad(new Es(e));this.dispose(p.track([o,"position"],[this,"position"])),this.dispose(p.track([o,"pixelSize"],[this,"pixelSize"])),this.dispose(p.track([o,"debug"],[this,"debug"])),this.dispose(p.track([o,"rotation"],[this,"rotation"]));{const r=()=>{o.selfRotation=aa.rotationFuncs[i](this.selfRotation),o.circleRotation=this.selfRotation[aa.rotationNum[i]]};r(),this.dispose(this.selfRotationChanged.disposableOn(r))}{const r=()=>{const s=this.movingPlaneType===i,a=this.hoveredPlaneType===i,c=[0,0,0,s||a?1:.8];c[aa.rotationNum[i]]=1,o.color=c};r(),this.dispose(this.movingPlaneTypeChanged.disposableOn(r)),this.dispose(this.hoveredPlaneTypeChanged.disposableOn(r))}return o}};L(aa,"rotationNum",{heading:0,pitch:1,roll:2}),L(aa,"rotationFuncs",{heading:([e,i,o])=>[0,0,0],pitch:([e,i,o])=>[e,0,-90],roll:([e,i,o])=>[e,i+90,0]});let ri=aa;(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),rotation:p.reactArray([0,0,0]),selfRotation:p.reactArray([0,0,0]),pixelSize:300,showHelper:!1,debug:!1})})(ri||(ri={})),p.extendClassProps(ri.prototype,ri.createDefaultProps);const sa=class sa extends p.Destroyable{get startPosition(){return this.positions&&this.positions[0]}set startPosition(n){this.positions=[n??sa.defaults.positions[0],this.stopPosition??sa.defaults.positions[1]]}get startPositionChanged(){return this.positionsChanged}get stopPosition(){return this.positions&&this.positions[1]}set stopPosition(n){this.positions=[this.startPosition??sa.defaults.positions[0],n??sa.defaults.positions[1]]}get stopPositionChanged(){return this.positionsChanged}constructor(n,e){if(super(),!n.viewer)return;const o=this.ad(new Je(n,e));o.arcType="RHUMB";const r=this.ad(new On(n,e));this.ad(p.track([o,"allowPicking"],[this,"allowPicking"])),this.ad(p.track([r,"allowPicking"],[this,"allowPicking"]));{const s=()=>{o.show=r.show=this.show};s(),this.ad(this.showChanged.don(s))}{const s=()=>{o.width=this.width/2,r.pixelSize=this.width};s(),this.ad(this.widthChanged.don(s))}{const s=()=>{o.color=r.color=this.color};s(),this.ad(this.colorChanged.don(s))}{const s=()=>{o.positions=this.positions,r.position=this.stopPosition};s(),this.dispose(this.startPositionChanged.disposableOn(s)),this.dispose(this.stopPositionChanged.disposableOn(s))}}};L(sa,"defaults",{positions:[[0,0,0],[0,0,1e6]]});let Jo=sa;(t=>{t.createDefaultProps=()=>({show:!0,allowPicking:!1,positions:p.reactPositions(t.defaults.positions),width:10,color:p.reactArray([1,0,0,1])})})(Jo||(Jo={})),p.extendClassProps(Jo.prototype,Jo.createDefaultProps);class rr extends kn{constructor(e){super();L(this,"_lastPosition");L(this,"_opInfo",{step:this.ad(p.react(!1)),moved:this.ad(p.react(!1)),constraintMode:this.disposeVar(p.react("none")),originPosition:this.disposeVar(p.reactArray([0,0,0])),originHeading:this.disposeVar(p.react(0)),originDimensions:this.disposeVar(p.reactArray([1,1,1])),draggingStartPosition:this.disposeVar(p.reactArray([0,0,0])),movingPosition:this.disposeVar(p.reactArray([0,0,0])),targetPosition:this.disposeVar(p.reactArray([0,0,0])),targetHeading:this.disposeVar(p.react(0))});L(this,"_scaleAxis");L(this,"_pickingXYProcessing",e=>this.disposeVar(new p.Processing((i,o,r)=>{const s=[0,0,0],a=new C.Cartographic;return e.pointerMoveEvent.disposableOn(l=>{if(!l.pointerEvent||!e.viewer)return;const c=Zn(p.getDomEventCurrentTargetPos(l.pointerEvent));if(!ha(e.viewer.scene,c,this._opInfo.originPosition.value[2],a))return;ua(a,s),this._opInfo.constraintMode.value==="x"?fo(this._opInfo.originPosition.value,this._opInfo.originHeading.value,s,s):this._opInfo.constraintMode.value==="y"?fo(this._opInfo.originPosition.value,this._opInfo.originHeading.value+90,s,s):this._opInfo.constraintMode.value==="xy"||console.warn("should not be here!"),this._opInfo.movingPosition.value=s,this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const h=[0,0,0];Q.geoRhumbDestination(s,r,o,h),this._opInfo.targetPosition.value=h;let u=this.scale[0],A=this.scale[1];const f=Q.geoDistance(h,this._opInfo.originPosition.value)-Q.geoDistance(this._lastPosition,this._opInfo.originPosition.value);this._lastPosition=[...h];const d=this._opInfo.originDimensions.value[0]/100;f!=0&&this._opInfo.constraintMode.value==="y"&&(f>0?u+=d:u-=d),f!=0&&this._opInfo.constraintMode.value==="x"&&(f>0?A+=d:A-=d),u<=0&&(u+=d),A<=0&&(A+=d),this.scale=[u??1,A??1,this.scale[2]??1]})})));L(this,"_pickingZProcessing",e=>this.disposeVar(new p.Processing(()=>{const i=new C.Cartesian3,o=[0,0,0];return e.pointerMoveEvent.disposableOn(r=>{if(!r.pointerEvent||!e.viewer)return;const s=Zn(p.getDomEventCurrentTargetPos(r.pointerEvent));if(!jc(e.viewer.scene,vt(this._opInfo.originPosition.value),s,i))return;this._lastPosition||(this._lastPosition=[...this._opInfo.draggingStartPosition.value]);const a=this._opInfo.originPosition.value[2]-this._opInfo.draggingStartPosition.value[2];if(Ue(i,o)){this._opInfo.movingPosition.value=o;const l=this._opInfo.originPosition.value;this._opInfo.targetPosition.value=[l[0],l[1],o[2]+a];let c=this.scale[2];const h=o[2]-this._lastPosition[2];this._lastPosition=[...o];const u=this._opInfo.originDimensions.value[0]/100;h!=0&&(h>0?c+=u:c-=u),c<=0&&(c+=u),this.scale=[this.scale[0]??1,this.scale[1]??1,c??1]}})})));const i=e.viewer;if(!i)return;const{scene:o}=i;this.ad(new Vf(e,this.positionReact,this._opInfo.originDimensions,this.axisPixelSize)),this.ad(e.dblclickEvent.don(()=>{this.enabled=!1})),this._scaleAxis={zAxis:this._createScaleAxis(e,"zAxis"),yAxis:this._createScaleAxis(e,"yAxis"),xAxis:this._createScaleAxis(e,"xAxis")};{const c=()=>{if(!this._scaleAxis)return;const{zAxis:h,yAxis:u,xAxis:A}=this._scaleAxis,f=this._opInfo.constraintMode.value,d=this._opInfo.step;h.color=[0,0,1,.99],u.color=[0,1,0,.99],A.color=[1,0,0,.99],f==="x"?A.color=d?[1,1,0,.8]:[1,1,0,.99]:f==="y"?u.color=d?[1,1,0,.8]:[1,1,0,.99]:f==="z"&&(h.color=d?[1,1,0,.8]:[1,1,0,.99])};c(),this.dispose(this._opInfo.constraintMode.changed.disposableOn(c)),this.dispose(this._opInfo.step.changed.disposableOn(c))}{const c=()=>{if(!this._scaleAxis)return;const{position:u=rr.defaults.position}=this,{zAxis:A,yAxis:f,xAxis:d}=this._scaleAxis;A.startPosition=f.startPosition=d.startPosition=u;const[g,v,y]=u;A.stopPosition=[g,v,y+this._opInfo.originDimensions.value[2]];const m=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[0],90);m&&(d.stopPosition=m);const w=Q.geoRhumbDestination(u,this._opInfo.originDimensions.value[1],0);w&&(f.stopPosition=w)};c();const h=this.ad(p.createNextAnimateFrameEvent(this.positionChanged,this._opInfo.originDimensions.changed));this.ad(h.don(c))}{const c=()=>{if(this._opInfo.constraintMode.value==="none"){this._opInfo.moved.value=!1;return}if(this._opInfo.originHeading.value!==this._opInfo.targetHeading.value){this._opInfo.moved.value=!0;return}if(!this._opInfo.originPosition.value.every((h,u)=>h===this._opInfo.targetPosition.value[u])){this._opInfo.moved.value=!0;return}};c(),this.dispose(this._opInfo.originHeading.changed.disposableOn(c)),this.dispose(this._opInfo.originPosition.changed.disposableOn(c)),this.dispose(this._opInfo.targetHeading.changed.disposableOn(c)),this.dispose(this._opInfo.targetPosition.changed.disposableOn(c))}const r=this._pickingXYProcessing(e),s=this._pickingZProcessing(e),a=this.disposeVar(p.createProcessingFromAsyncFunc(async c=>{do this._opInfo.step.value=!0,this._opInfo.constraintMode.value="none",c.disposer.dispose(()=>{this._opInfo.constraintMode.value="none"}),await p.step(c,async h=>{const u=()=>{const d=[...this.position??rr.defaults.position];e.editingHeightOffset&&(d[2]-=e.editingHeightOffset),this._opInfo.targetPosition.value=this._opInfo.originPosition.value=d};h.disposer.dispose((u(),this.positionChanged.disposableOn(u)));const A={constraintMode:"none",startDragPos:[0,0,0]},f=d=>{if(!this.position)return;const g={position:this.position,dimensions:this._opInfo.originDimensions.value,heading:0};If(d,o,g,this.axisSnapPixelSize,A),this._opInfo.constraintMode.value=A.constraintMode,this._opInfo.movingPosition.value=this._opInfo.draggingStartPosition.value=A.startDragPos};h.disposer.dispose(e.pointerMoveEvent.disposableOn(d=>{d.pointerEvent&&f(d.pointerEvent)})),await p.step(h,d=>new Promise((g,v)=>{d.disposer.dispose(v),d.disposer.dispose(e.pointerDownEvent.don(y=>{y.pointerEvent&&f(y.pointerEvent),y.pointerEvent&&y.pointerEvent.button===0&&A.constraintMode!=="none"&&g()}))}))}),this._opInfo.step.value=!1,await p.step(c,async h=>{if(e.incrementDisabledInputStack(),h.disposer.dispose(()=>e.decrementDisabledInputStack()),["x","y"].includes(this._opInfo.constraintMode.value)){const u=Q.geoRhumbHeading(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value),A=Q.geoRhumbDistance(this._opInfo.draggingStartPosition.value,this._opInfo.originPosition.value);r.restart(void 0,u,A),h.disposer.dispose(()=>r.cancel())}else this._opInfo.constraintMode.value==="z"&&(s.restart(),h.disposer.dispose(()=>s.cancel()));await p.step(h,u=>new Promise((A,f)=>{u.disposer.dispose(f),u.disposer.dispose(e.pointerUpEvent.don(()=>{A()})),u.disposer.dispose(e.pointerOutEvent.don(()=>{A()}))})),this._lastPosition=void 0});while(!0)})),l=()=>{this.enabled?a.restart():a.isRunning&&a.cancel()};l(),this.dispose(this.enabledChanged.disposableOn(l))}get scaleAxis(){return this._scaleAxis}_createScaleAxis(e,i){const o=this.ad(new Jo(e));return o.width=10,this.ad(p.track([o,"show"],[this,"enabled"])),o}}(t=>{t.createDefaultProps=()=>({...kn.createDefaultProps(),scale:p.reactArray([1,1,1]),axisPixelSize:100,axisSnapPixelSize:5})})(rr||(rr={})),p.extendClassProps(rr.prototype,rr.createDefaultProps);const ho=class ho extends hn{constructor(e){super();L(this,"_editingPoints",this.disposeVar(new p.ObservableArray));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_currentProcess");L(this,"_menuPoiEnabled",this.disposeVar(p.react(!1)));L(this,"_status",this.disposeVar(p.react("None")));L(this,"_positionsChanged",this.ad(new p.Event));L(this,"_cursorInfo");this._czmViewer=e,this.enabled=!1,this.createPolyline(e),this._createCursorInfo(e),this.dispose(()=>this.resetPositions()),this.dispose(()=>this.editingPoints.length=0),this.dispose(this.editingPoints.changedEvent.disposableOn(()=>this.positionsChanged.emit())),this.dispose(this.editingPoints.toChangeEvent.disposableOn(i=>{for(let{start:o,deleteCount:r,items:s}of i){for(const a of s)a.menuPoi.enabled=this.menuPoiEnabled??!1;for(let a=o;a<o+r;++a)this.editingPoints.get(a).destroy()}})),this.dispose(this.menuPoiEnabledChanged.disposableOn(()=>{for(let i of this.editingPoints)i.menuPoi.enabled=this.menuPoiEnabled??!1})),this.dispose(e.dblclickEvent.don(i=>{this.ad(p.nextAnimateFrame(()=>{var o;((o=i.pointerEvent)==null?void 0:o.button)===0&&this.enabled&&this.currentProcess&&this.currentProcess.cancel()}))})),this.dispose(this.enabledChanged.disposableOn(i=>{this._currentProcess&&(i?this._currentProcess.restart():this._currentProcess.isRunning&&this._currentProcess.cancel())}));{const i=()=>{this.polylineShow=this.czmViewer.editingLineShow};i(),this.ad(this.czmViewer.editingLineShowChanged.don(i))}}get editingPoints(){return this._editingPoints}get cancelEvent(){return this._cancelEvent}cancel(){this._cancelEvent.emit()}get currentProcess(){return this._currentProcess}set currentProcess(e){this._currentProcess=e}get menuPoiEnabled(){return this._menuPoiEnabled.value}set menuPoiEnabled(e){this._menuPoiEnabled.value=e}get menuPoiEnabledChanged(){return this._menuPoiEnabled.changed}get status(){return this._status.value}get statusChanged(){return this._status.changed}set status(e){this._status.value=e}getPositions(){const e=[];for(let i of this._editingPoints)i.position&&e.push([...i.position]);return e}resetPositions(e){if(this.enabled??ho.defaults.enabled)return console.warn("MultiPointsEditing.resetPositions error: this.enabled === true"),!1;const i=e||[];return!(i.length===this.editingPoints.length&&i.every((o,r)=>o.every((s,a)=>{const l=this.editingPoints.get(r);return l.position&&l.position[a]===s})))}forceResetPositions(e){(this.enabled??ho.defaults.enabled)&&(this.enabled=!1),this.resetPositions(e)}get positions(){return this.getPositions()}set positions(e){this.resetPositions(e)}get positionsChanged(){return this._positionsChanged}get czmViewer(){return this._czmViewer}get cursorInfo(){return this._cursorInfo}createPolyline(e){const i=this.ad(new Je(e));this.ad(p.track([i,"color"],[this,"polylineColor"])),this.ad(p.track([i,"width"],[this,"polylineWidth"])),this.ad(p.track([i,"show"],[this,"polylineShow"])),this.ad(p.track([i,"arcType"],[this,"polylineArcType"])),this.ad(p.track([i,"loop"],[this,"loop"]));{const o=()=>{const r=[];for(const s of this.getPositions())s[2]-=e.editingHeightOffset??0,r.push(s);i.positions=r};o(),this.ad(this.positionsChanged.don(o))}}_createCursorInfo(e){const i=this._cursorInfo=this.ad(new p.CursorInfo(e.container,p.CursorFloatDiv));this.dispose(this.statusChanged.disposableOn(()=>{const o=this.status;if(i){if(!this.hideCursorInfo){i.show=!1;return}o==="Adding"?(i.text="右键/BackSpace键:删除上一个控制点;Esc键或左键双击:退出添加状态,进入修改状态",i.show=!0):o==="Modifying"||o==="Modifying_Point"?(i.text="Esc键或左键双击:退出编辑状态",i.show=!0):o==="None"&&(i.text="",i.show=!1)}}))}};L(ho,"baseImageUrl","${earthsdk3-assets-script-dir}/assets/img/"),L(ho,"defaults",{...hn.defaults,debug:!1,polylineShow:!1,polylineWidth:1,polylineColor:[1,1,1,1],polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,loop:!1,firstControlPointImageUrl:ho.baseImageUrl+"point-green.png",otherControlPointImageUrl:ho.baseImageUrl+"point-yellow.png"});let Wn=ho;(t=>{t.createDefaultProps=()=>({...hn.createDefaultProps(),loop:!1,debug:!1,polylineShow:!0,polylineWidth:1,polylineColor:p.reactArray([1,1,1,1]),polylineArcType:"GEODESIC",maxPointsNum:Number.MAX_SAFE_INTEGER,firstControlPointImageUrl:t.baseImageUrl+"point-green.png",otherControlPointImageUrl:t.baseImageUrl+"point-yellow.png",hideCursorInfo:!1,middlePointShow:!0})})(Wn||(Wn={})),p.extendClassProps(Wn.prototype,Wn.createDefaultProps);let pQ=0;class XS extends p.Destroyable{constructor(e,i){super();L(this,"_position",this.disposeVar(p.reactArrayWithUndefined(void 0)));L(this,"_id",pQ++);L(this,"_menuPoi");i&&(this.position=i),e.debug&&console.log(`PolylinePositionEditor creating! ${this.id}`),this.dispose(()=>{e.debug&&console.log(`PolylinePositionEditor destroying! ${this.id}`)});const o=this._menuPoi=this.ad(new _a(e.czmViewer));o.enabled=!1,this.ad(p.track([o,"show"],[e,"enabled"]));{const r=()=>{if(this.position===void 0){o.position=void 0;return}const s=[...this.position];s[2]-=e.czmViewer.editingHeightOffset??0,o.position=s,e.positionsChanged.emit()};r(),this.d(this.positionChanged.don(r))}{const r=()=>{const s=e.editingPoints.indexOf(this)+1;s!==0&&(o.title=`控制点${s}`,s===1?o.imageUri=e.firstControlPointImageUrl??Wn.defaults.firstControlPointImageUrl:o.imageUri=e.otherControlPointImageUrl??Wn.defaults.otherControlPointImageUrl)};r(),this.dispose(e.editingPoints.changedEvent.disposableOn(r))}}get position(){return this._position.value}set position(e){this._position.value=e}get positionChanged(){return this._position.changed}get id(){return this._id}get menuPoi(){return this._menuPoi}}class $S extends XS{constructor(n,e){super(n,e)}}class Pt extends Wn{constructor(e){super(e);L(this,"_deletePreviousPointWhileAddingEvent",this.disposeVar(new p.Event));L(this,"placeEditing");if(!e.viewer)return;const i=this.placeEditing=this.ad(new ii(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??Pt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1}),(this.debug??Pt.defaults.debug)&&console.log("直接进入Adding状态"),this.status="Adding",await o.promise(p.step(o,async r=>{const s=r.disposer,a=s.ad(this._addingEditingProcessing());s.dispose(()=>"adding canceled!"),s.dispose(this.cancelEvent.disposableOn(()=>a.cancel())),await r.promise(new Promise(l=>{s.dispose(a.completeEvent.disposableOnce(l))}))}))})),this.dispose(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)===2&&this.deletePreviousPointWhileAdding()}))}deletePreviousPointWhileAdding(){this._deletePreviousPointWhileAddingEvent.emit()}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new $S(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}_addingEditingProcessing(){const e=()=>{if(this.maxPointsNum!==void 0)return this.editingPoints.length>=this.maxPointsNum&&(this.debug??Pt.defaults.debug)&&console.log("impl.positionEditors.length >= impl.maxPointsNum"),this.editingPoints.length>=this.maxPointsNum},i=p.createProcessingFromAsyncFunc(async o=>{let r=this.editingPoints.length;this.menuPoiEnabled=!1;do if(!await o.promise(p.step(o,async a=>{let l;!e()&&(l=a.disposer.disposeVar(new mQ(this,r)));const h=a.disposer.disposeVar(new yQ(this,r));return a.disposer.dispose(this._deletePreviousPointWhileAddingEvent.disposableOn(()=>h.do())),await a.promise(new Promise(u=>{l&&a.disposer.dispose(l.overEvent.disposableOnce(A=>{A?(r++,u(!0)):u(!1)})),a.disposer.dispose(h.overEvent.disposableOnce(A=>{A?(r--,u(!0)):u(!1)})),a.disposer.dispose(this.cancelEvent.disposableOn(()=>u(!1)))}))})))break;while(!0)});return i.start(),i}}(t=>{t.createDefaultProps=()=>({...Wn.createDefaultProps()})})(Pt||(Pt={})),p.extendClassProps(Pt.prototype,Pt.createDefaultProps);class mQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));const{placeEditing:o}=e;let r=new $S(e,void 0);e.editingPoints.splice(i,0,r);const s=()=>{(e.debug??Pt.defaults.debug)&&console.log("delete currentPosEditor");const c=e.editingPoints.indexOf(r);if(c===-1)throw new Error("currentPosEditor not found");e.editingPoints.splice(c,1)};if(o.enabled??!1)throw console.error("placeEditing.enabled is true!"),new Error("placeEditing.enabled is true!");this.dispose(p.track([r,"position"],[o,"position"])),o.enabled=!0;let a=!1;const l=()=>{s(),this._overEvent.emit(!1)};this.dispose(()=>{o.enabled=!1,!a&&l()}),this.dispose(o.overEvent.disposableOnce(()=>{a=!0,r.position===void 0?l():this._overEvent.emit(!0)})),(e.debug??Pt.defaults.debug)&&console.log(`PointAdding creating! index(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PointAdding destroying! index(${i})`)})}get overEvent(){return this._overEvent}}function gQ(t,n){const e=t.editingPoints,i=n-1;return i<0?(console.warn("previousIndex < 0, cannot delete the point!"),!1):(e.splice(i,1),!0)}class yQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_doEvent",this.disposeVar(new p.Event));this.dispose(this._doEvent.disposableOn(()=>this._overEvent.emit(gQ(e,i)))),(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting creating! currentIndex(${i})`),this.dispose(()=>{(e.debug??Pt.defaults.debug)&&console.log(`PreviousPointDeleting destroying! currentIndex(${i})`)})}get overEvent(){return this._overEvent}do(){return this._doEvent.emit()}}class YS extends Pt{constructor(n){super(n),this.loop=!1}}class JS extends Pt{constructor(n){super(n),this.loop=!0}}class gf extends XS{constructor(n,e){super(n,e);{const{menuPoi:i}=this;i.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],i.clickCommandName="modify",i.rightClickCommandName="delete",this.dispose(i.commandEvent.disposableOn(o=>{n.menuPoiCommand(this,o)})),this.dispose(i.dbclickEvent.disposableOn(()=>{n.menuPoiCommand(this,"dbClick")}))}if(n.middlePointShow){const i=this.ad(new ui(n.czmViewer));{i.imageUri=n.firstControlPointImageUrl??tt.defaults.firstControlPointImageUrl,i.tooltip="点击增加一个控制点",i.bgColor=[0,0,0,.6],i.fgColor=[1,1,1,1],i.size=[8,8],i.originRatioAndOffset=[.5,.5,0,0];{const o=()=>{if(!(n.enabled??tt.defaults.enabled)){i.enabled=!1,i.show=!1;return}do{const s=n.editingPoints.indexOf(this);if(s===-1)break;const a=n.editingPoints.length;if(a===0){console.error("impl.positionEditors.length === 0!");break}if(!(n.loop??tt.defaults.loop)&&s+1>=a)break;const c=this.position;if(!c)break;let h=(s+1)%a;const A=n.editingPoints.get(h).position;if(!A)break;const f=Mf(c,A);if(!f)break;f[2]-=n.czmViewer.editingHeightOffset??0,i.position=f;const d=n.editingPoints.length<(n.maxPointsNum??tt.defaults.maxPointsNum);i.enabled=d,i.show=d;return}while(!1);i.enabled=!1,i.show=!1};o(),this.dispose(n.positionsChanged.disposableOn(o)),this.dispose(n.loopChanged.disposableOn(o)),this.dispose(n.enabledChanged.disposableOn(o))}this.dispose(i.clickEvent.disposableOn(o=>{if(o.button!==0||n.editingPoints.length>=(n.maxPointsNum??tt.defaults.maxPointsNum))return;const r=n.editingPoints.indexOf(this);if(r===-1)return;const s=i.position?[...i.position]:void 0;s&&(s[2]+=n.czmViewer.editingHeightOffset??0);let a=new gf(n,s);n.editingPoints.splice(r+1,0,a),n.modify(a)}))}}}}class tt extends Wn{constructor(e){super(e);L(this,"_menuPoiCommand",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"translationEditing");{const o=this.ad(p.createNextAnimateFrameEvent(this.moveWithFirstPositionChanged,this.editingPoints.changedEvent));this.ad(new p.ObjResettingWithEvent(o,()=>{if(!(!this.moveWithFirstPosition||this.editingPoints.length<=1))return new vQ(this.editingPoints.get(0),this)}))}const i=this.translationEditing=this.disposeVar(new ir(e));i.enabled=!1,this.currentProcess=this.disposeVar(p.createProcessingFromAsyncFunc(async o=>{o.disposer.dispose(()=>{(this.debug??tt.defaults.debug)&&console.log("---editing canceled~~~"),this.status="None",this.enabled=!1});let r=-1;do if((this.debug??tt.defaults.debug)&&console.log("进入Modifying修改状态"),this.status="Modifying",r=await o.promise(p.step(o,async s=>{const a=s.disposer,l=a.ad(new wQ(this));return a.dispose(()=>"modifying canceled!"),this.editingPoints.length>0&&l.modify(this.editingPoints.get(r===-1||r>=this.editingPoints.length?0:r)),a.dispose(this.cancelEvent.disposableOn(()=>l.cancel())),a.dispose(this._forceModifyPosEditorEvent.disposableOn(h=>l.modify(h))),await s.promise(new Promise(h=>{a.dispose(l.overEvent.disposableOnce(u=>{h(u)}))}))})),r===-1){(this.debug??tt.defaults.debug)&&console.log("退出编辑状态");break}else{if(this.editingPoints.length>=(this.maxPointsNum??tt.defaults.maxPointsNum))return;if(this.editingPoints.length===0){console.error("impl.positionEditors.length === 0!");return}this.loop??tt.defaults.loop;const a=this.editingPoints.get(r-1).position;if(!a)return;let l=r%this.editingPoints.length;const h=this.editingPoints.get(l).position;if(!h)return;const u=Mf(a,h);if(!u)return;u&&(u[2]+=this.czmViewer.editingHeightOffset??0);let A=new gf(this,u);this.editingPoints.splice(r,0,A)}while(!0);this.status="None",this.enabled=!1}))}menuPoiCommand(e,i){this._menuPoiCommand.emit(e,i)}modify(e){this._forceModifyPosEditorEvent.emit(e)}resetPositions(e){if(!super.resetPositions(e))return!0;const i=e?e.map(o=>new gf(this,o)):[];return this.editingPoints.splice(0,this.editingPoints.length,...i),!0}get overEvent(){return this._overEvent}}(t=>{t.createDefaultProps=()=>({...Wn.createDefaultProps(),moveWithFirstPosition:!1})})(tt||(tt={})),p.extendClassProps(tt.prototype,tt.createDefaultProps);class vQ extends p.Destroyable{constructor(n,e){super(),this._firstPositionEditor=n,this.multiPointsModifyEditing=e,this._firstPositionEditor.positionChanged.disposableOn((i,o)=>{if(i===void 0||o===void 0)return;var r=[i[0]-o[0],i[1]-o[1],i[2]-o[2]];const s=this.multiPointsModifyEditing.editingPoints.length;for(let a=1;a<s;a++){const l=this.multiPointsModifyEditing.editingPoints.get(a),c=l.position;c!==void 0&&(l.position=[c[0]+r[0],c[1]+r[1],c[2]+r[2]])}})}}class wQ extends p.Destroyable{constructor(e){super();L(this,"_overEvent",this.disposeVar(new p.Event));L(this,"_cancelEvent",this.disposeVar(new p.Event));L(this,"_forceModifyPosEditorEvent",this.disposeVar(new p.Event));e.menuPoiEnabled=!0,this.dispose(()=>e.menuPoiEnabled=!1);let i;const o=()=>{i==null||i.destroy(),i=void 0,e.status="Modifying"};this.dispose(o);const r=s=>{o(),e.status="Modifying_Point",i=new bQ(e,s),i.dispose(i.overEvent.disposableOn(()=>{o()}))};this.dispose(this._forceModifyPosEditorEvent.disposableOn(r)),this.dispose(e._menuPoiCommand.disposableOn((s,a)=>{if(a==="delete"){if(e.editingPoints.length<=2)return;const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");e.editingPoints.splice(l,1)}else if(a==="modify")r(s);else if(a==="add"){const l=e.editingPoints.indexOf(s);if(l===-1)throw console.error("posEditor not found"),new Error("posEditor not found");this._overEvent.emit(l+1)}else a==="dbClick"?this._overEvent.emit(-1):alert(`未知的commandName(${a})`)})),this.dispose(this._cancelEvent.disposableOn(()=>{this._overEvent.emit(-1)}))}get overEvent(){return this._overEvent}cancel(){this._cancelEvent.emit()}modify(e){this._forceModifyPosEditorEvent.emit(e)}}class bQ extends p.Destroyable{constructor(e,i){super();L(this,"_overEvent",this.disposeVar(new p.Event));this._modifying=e,this._posEditor=i,this.dispose(this._posEditor.toDestroyEvent.disposableOn(()=>{this._overEvent.emit()}));const{translationEditing:o}=this._modifying;if(o.enabled=!0,o.heading=0,this.dispose(()=>{o.enabled=!1}),!this._posEditor.position)throw console.error("!this._posEditor.position"),new Error("!this._posEditor.position");o.position=this._posEditor.position,this.dispose(p.track([this._posEditor,"position"],[o,"position"])),this.dispose(o.enabledChanged.disposableOnce(r=>{r||this._overEvent.emit()}))}get overEvent(){return this._overEvent}}class jS extends tt{constructor(n){super(n),this.loop=!1}}class eE extends tt{constructor(n){super(n),this.loop=!0}}class Ps extends Pt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2;{const e=()=>{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];return}if(this.positions.length==1){this.distance=1,this.rotation=[90,0,0];return}this.startPosition=this.positions[0],this.endPosition=this.positions[1];const i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(o<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a};e(),this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([90,0,0]),distance:p.react(1)})})(Ps||(Ps={})),p.extendClassProps(Ps.prototype,Ps.createDefaultProps);class jo extends tt{init(){const n=this.startPosition;if(!n)return;const e=this.distance,i=this.rotation,o=e*Math.cos(i[1]*Math.PI/180),r=Q.geoDestination(n,o,i[0]);if(!r){this.positions=[n];return}const s=e*Math.sin(i[1]*Math.PI/180);r[2]+=s,this.positions=[n,r],this.editingPoints.length==2&&(this.editingPoints.get(0).position=n,this.editingPoints.get(1).position=r)}constructor(n){super(n),this.loop=!0,this.maxPointsNum=2,this.middlePointShow=!1,this.moveWithFirstPosition=!0;{const e=()=>{do{if(!this.positions||this.positions.length==0){this.distance=1,this.rotation=[90,0,0],this.startPosition=[0,0,0];break}if(this.startPosition=this.positions[0],this.positions.length==1){this.editingPoints.get(0).menuPoi.commands=[["add","增加控制点","",tt.baseImageUrl+"add.png"],["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]],this.rotation=[90,0,0],this.distance=1;break}this.endPosition=this.positions[1];for(let l of this.editingPoints)l.menuPoi.commands=[["delete","删除当前控制点","",tt.baseImageUrl+"delete.png"],["modify","修改当前控制点","",tt.baseImageUrl+"modify.png"]];const i=Q.geoHeading(this.startPosition,this.endPosition),o=Q.geoDistance(this.startPosition,this.endPosition);if(Math.abs(o)<=0){this.rotation=[90,0,0],this.distance=1;return}const r=this.endPosition[2]-this.startPosition[2],s=Math.atan(r/o)*180/Math.PI,a=Math.sqrt(o*o+r*r);this.rotation=[i,s,0],this.distance=a}while(!1)};this.ad(this.positionsChanged.don(e))}}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),startPosition:p.reactArrayWithUndefined(void 0),endPosition:p.reactArrayWithUndefined(void 0),rotation:p.reactArray([0,0,0]),distance:p.react(0)})})(jo||(jo={})),p.extendClassProps(jo.prototype,jo.createDefaultProps);class tE extends Pt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1}}class nE extends tt{constructor(n){super(n),this.loop=!1,this.polylineShow=!1,this.middlePointShow=!1}}class Ts extends Pt{constructor(n){super(n),n.viewer||(this.loop=!1);{const e=()=>{if(!this.positions||this.positions.length<2){this.visibilityPositions=void 0;return}const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...Pt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(Ts||(Ts={})),p.extendClassProps(Ts.prototype,Ts.createDefaultProps);class Is extends tt{constructor(n){if(super(n),!!n.viewer){this.loop=!1,this.middlePointShow=!1;{const e=()=>{if(!this.positions||this.positions.length<2)return;const i=[...this.positions[0]];i[2]-=n.editingHeightOffset??0,this.visibilityPositions=this.positions.map(o=>(o[2]-=n.editingHeightOffset??0,[i,o]))};e(),this.ad(this.positionsChanged.don(e))}}}createPolyline(n){const e=this.ad(new $n(n));e.topOrBottom="bottom",this.ad(p.track([e,"color"],[this,"polylineColor"])),this.ad(p.track([e,"width"],[this,"polylineWidth"])),this.ad(p.track([e,"show"],[this,"polylineShow"])),this.ad(p.track([e,"arcType"],[this,"polylineArcType"])),this.ad(p.track([e,"loop"],[this,"loop"])),this.ad(p.track([e,"positions"],[this,"visibilityPositions"]))}}(t=>{t.createDefaultProps=()=>({...tt.createDefaultProps(),visibilityPositions:p.reactPositionsSet(void 0)})})(Is||(Is={})),p.extendClassProps(Is.prototype,Is.createDefaultProps);class iE extends jo{constructor(n){super(n),this.firstControlPointImageUrl=this.otherControlPointImageUrl,this.translationEditing.xAxisShow=!1,this.translationEditing.yAxisShow=!1,this.translationEditing.zAxisShow=!0,this.translationEditing.showCircle=!1,this.rotation=[0,90,0]}}class rn extends Q.EngineObject{constructor(e,i,o){super(e,i,o??!0);L(this,"_supportEditing",this.disposeVar(p.react(!0)));L(this,"_currentEditing",this.disposeVar(p.react(void 0)));this.ad(this.supportEditingChanged.don(()=>{this.destroy()})),this.ad(this.toDestroyEvent.don(()=>{var r;if(this.currentEditing){if(this.currentEditing instanceof Pt&&((r=this.currentEditing.currentProcess)!=null&&r.isRunning))if(this.currentEditing.currentProcess.cancel(),e!=null&&e.position){if(this.currentEditing.positions.length>1)return;e.position=this.currentEditing.positions[0]??[0,0,0],e!=null&&e.rotation&&(e.rotation=[0,0,0]),e!=null&&e.far&&(e.far=1),e!=null&&e.radius&&(e.radius=1),e!=null&&e.distance&&(e.distance=1)}else e.points=this.currentEditing.positions;this.currentEditing instanceof ii&&this.currentEditing.enabled&&(e.position=[0,0,0])}}))}get supportEditing(){return this._supportEditing.value}set supportEditing(e){this._supportEditing.value=e}get supportEditingChanged(){return this._supportEditing.changed}get currentEditing(){return this._currentEditing.value}set currentEditing(e){this._currentEditing.value=e}get currentEditingChanged(){return this._currentEditing.changed}}const Rc=class Rc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ii(e));this.ad(e.clickEvent.don(o=>{var r;((r=o.pointerEvent)==null?void 0:r.button)==2&&(i.enabled=!0)}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"])),i.enabled=!i.position||Q.equalsN3(i.position,[0,0,0]);break}this.supportEditing=!1}while(!1)}};L(Rc,"type",Rc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Place,Rc));let Cv=Rc;const Uc=class Uc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new ri(e));i.rotation=[90,0,0],this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);o&&(this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"])))});break}if(Reflect.has(n,"position")&&Reflect.has(n,"rotation")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"selfRotation"],[n,"rotation"]));break}this.supportEditing=!1}while(!1)}};L(Uc,"type",Uc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Rotation,Uc));let xv=Uc;const Oc=class Oc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new rr(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")&&Reflect.has(n,"scale")){this.ad(p.bind([i,"position"],[n,"position"])),this.ad(p.bind([i,"scale"],[n,"scale"]));break}this.supportEditing=!1}while(!1)}};L(Oc,"type",Oc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Scale,Oc));let Sv=Oc;const Lc=class Lc extends rn{constructor(n,e){super(Array.isArray(n)?n[0]:n,e,!0);const i=this.currentEditing=this.ad(new ir(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Array.isArray(n)){const o=[];for(let r=0;r<n.length;r++){const s=n[r];Reflect.has(s,"position")?o.push(s.position):s.points&&o.push(...s.points)}i.position=Q.getMinMaxCorner(o).center,this.ad(i.positionChanged.disposableOn((r,s)=>{if(!(!r||!s)){var a=fn({originPosition:s},[r])[0][0];n.forEach(l=>{if(Reflect.has(l,"position")){const c=fn({originPosition:s},[l.position])[0][0];l.position=pr({originPosition:s},[[c[0]+a[0],c[1]+a[1],c[2]+a[2]]])[0][0]}else if(Reflect.has(l,"points")&&l.points){const c=fn({originPosition:s},l.points)[0];l.points=pr({originPosition:s},c.map(h=>[h[0]+a[0],h[1]+a[1],h[2]+a[2]]))[0]}})}}));break}if(Reflect.has(n,"position")){this.ad(p.bind([i,"position"],[n,"position"]));break}if(n instanceof Q.ES3DTileset){Q.registerCreatedEventUpdate(this,n,()=>{const o=e.getEngineObject(n);this.ad(p.bind([i,"position"],[o.czm3DTiles,"position"]))});break}if(Reflect.has(n,"points")){if(n.points===void 0||n.points.length===0){this.destroy();break}i.position=Q.getMinMaxCorner(n.points).center,this.ad(i.positionChanged.disposableOn((o,r)=>{if(o===void 0||r===void 0||n.points===void 0||n.points.length===0){this.destroy();return}var s=fn({originPosition:r},[o])[0][0];const a=fn({originPosition:r},n.points)[0];n.points=pr({originPosition:r},a.map(l=>[l[0]+s[0],l[1]+s[1],l[2]+s[2]]))[0]}));break}this.supportEditing=!1}while(!1)}};L(Lc,"type",Lc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.Translation,Lc));let yf=Lc;const zc=class zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ps(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const o=vt(n.position);if(C.Cartesian3.ZERO.equals(o)||!e.viewer)return;i.distance=Di(e.viewer.scene,o,100)??1}while(!1);break}if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1);i.startPosition&&!Q.equalsN3(i.startPosition,[0,0,0])&&i.init(),i.enabled=!0}};L(zc,"type",zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsAppend,zc));let Ev=zc;const Qc=class Qc extends rn{constructor(n,e){var r;if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new jo(e));do{if(Reflect.has(n,"position")){this.ad(p.bind([i,"startPosition"],[n,"position"])),this.ad(Dt([i,"rotation"],[n,"rotation"]));do{if(Reflect.has(n,"far")){this.ad(p.bind([i,"distance"],[n,"far"]));break}if(Reflect.has(n,"radius")){this.ad(p.bind([i,"distance"],[n,"radius"]));break}if(Reflect.has(n,"distance")){this.ad(p.bind([i,"distance"],[n,"distance"]));break}const s=vt(n.position);if(C.Cartesian3.ZERO.equals(s)||!e.viewer)return;i.distance=Di(e.viewer.scene,s,100)??1}while(!1);break}if(Reflect.has(n,"points")&&((r=n.points)==null?void 0:r.length)==2){i.moveWithFirstPosition=!1;const s=()=>i.positions=n.points??[];s(),this.ad(n.pointsChanged.don(()=>!i.enabled&&s())),this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Qc,"type",Qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.DoublePointsModify,Qc));let Pv=Qc;const Vc=class Vc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new JS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Vc,"type",Vc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularAppend,Vc));let Tv=Vc;const Hc=class Hc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new eE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Hc,"type",Hc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.CircularInsert,Hc));let Iv=Hc;const Nc=class Nc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new YS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Nc,"type",Nc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringAppend,Nc));let kv=Nc;const Gc=class Gc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new jS(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Gc,"type",Gc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.LineStringInsert,Gc));let Fv=Gc;const Wc=class Wc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new tE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Wc,"type",Wc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterAppend,Wc));let Bv=Wc;const qc=class qc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new nE(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(qc,"type",qc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.ScatterModify,qc));let Mv=qc;const Kc=class Kc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Ts(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Kc,"type",Kc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityAppend,Kc));let Dv=Kc;const Zc=class Zc extends rn{constructor(n,e){super(n,e,!0);const i=this.currentEditing=this.ad(new Is(e));this.ad(i.enabledChanged.don(o=>{!o&&this.ad(p.nextAnimateFrame(()=>{this.destroy()}))}));do{if(Reflect.has(n,"points")){const o=()=>i.positions=n.points??[];o(),this.ad(n.pointsChanged.don(()=>!i.enabled&&o())),i.enabled=!0,this.ad(p.track([n,"points"],[i,"positions"]));break}this.supportEditing=!1}while(!1)}};L(Zc,"type",Zc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.VisibilityModify,Zc));let Rv=Zc;const Xc=class Xc extends rn{constructor(n,e){if(super(n,e,!0),!e.viewer)return;const i=this.currentEditing=this.ad(new iE(e));do{if(Reflect.has(n,"points")){const r=Reflect.has(n,"extrudedHeight"),s=Reflect.has(n,"height"),a=Reflect.has(n,"perPositionHeight")?n.perPositionHeight:!r,l=n instanceof Q.ESClassification||n instanceof Q.ESPolygonFence;let c=Q.getMinMaxCorner(n.points).center,h=[...c],u=l?n.points[0][2]:0;a?r?h[2]=n.extrudedHeight:h[2]=n.height+u:(s&&(c[2]=n.height),r&&(h[2]=n.extrudedHeight)),i.startPosition=c,i.distance=h[2]-c[2],i.moveWithFirstPosition=!1;let A=[...c];this.ad(i.positionsChanged.don(()=>{i.positions.length===2&&(a?(n.points=n.points.map(f=>[f[0],f[1],f[2]+i.positions[0][2]-A[2]]),r?n.extrudedHeight=i.positions[1][2]:s&&(n.height=i.positions[1][2]-(l?i.positions[0][2]:0))):(s&&(n.height=i.positions[0][2]),r&&(n.extrudedHeight=i.positions[1][2])),A=[...i.positions[0]])}));break}this.supportEditing=!1;return}while(!1);i.init(),i.enabled=!0;const o=this.ad(p.createNextAnimateFrameEvent(i.enabledChanged,i.startPositionChanged));this.ad(o.don(()=>{(!i.enabled||!i.startPosition||Q.equalsN3(i.startPosition,[0,0,0]))&&this.destroy()}))}};L(Xc,"type",Xc.registerEditing("ESCesiumViewer",Q.ESJEditingMode.HeightModify,Xc));let Uv=Xc;function rE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o,r=!0)=>{const s=Array.isArray(o)?[...o]:[o],a=i.editingID;e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"start",add:{modes:s}});const l=()=>{e.notSupportEditingCount=0,e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"end",add:{modes:s}}),t.isRunning&&t.cancel()};n.disposer.ad(l),n.disposer.ad(i.toDestroyEvent.don(l));const c=u=>{u.code=="Escape"&&l()};document.body.addEventListener("keydown",c),n.disposer.ad(()=>document.body.removeEventListener("keydown",c));let h=0;do{const u=s[h%s.length],A=await p.step(n,async f=>{const d=f.disposer,g=Q.EngineObject.contextEditing.getEngineObjConstructor(u,e.typeName);if(!g||!i.supportEditingModes().includes(u))return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;const v=new g(i,e);if(d.ad(()=>{!v.isDestroyed()&&v.destroy()}),v.supportEditing)e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount=0;else return console.log(`未找到编辑模式或不支持当前编辑模式${u},已跳过当前编辑模式,请检查输入`),e.editingEvent.emit({objectIDs:[i.parentID??i.id],editingID:a,type:"changedFailed",add:{cMode:u,cIndex:h}}),e.notSupportEditingCount++,!1;return await f.promise(new Promise(m=>{if(v.isDestroyed()&&m(!1),d.ad(v.toDestroyEvent.don(()=>{console.log(`编辑模式${u}结束`),m(!1)})),r){const w=_=>{_.code=="Space"&&(console.log(`编辑模式${u}结束`),m(!1))};document.body.addEventListener("keydown",w),d.ad(()=>document.body.removeEventListener("keydown",w)),d.ad(e.dblclickEvent.don(()=>m(!0)))}}))});if(r&&A||!r&&h==s.length-1||e.notSupportEditingCount==s.length)break;h++}while(!0)});return t}function oE(){const t=p.createProcessingFromAsyncFunc(async(n,e,i,o)=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"start"});const r=()=>{e.editingEvent.emit({objectIDs:i.map(l=>l.parentID??l.id),editingID:o,type:"end"}),t.isRunning&&t.cancel()};n.disposer.ad(r);const s=l=>{l.code=="Escape"&&r()};document.body.addEventListener("keydown",s),n.disposer.ad(()=>document.body.removeEventListener("keydown",s));const a=new yf(i,e);n.disposer.ad(()=>{!a.isDestroyed()&&a.destroy()}),await n.promise(new Promise(l=>{a.isDestroyed()&&l(),n.disposer.ad(a.toDestroyEvent.don(()=>{console.log("移动结束"),l()})),n.disposer.ad(e.dblclickEvent.don(()=>l()))}))});return t}ae.copyright=void 0;try{const t="earthsdk3-cesium",n="3.2.0-beta.9",e="2025-07-09T00:49:51.000Z",i="北京西部世界科技有限公司",o="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="86cd78d39a95619b7116ef4bdb191f0d2e005181",a=((Date.now()-1752022191e3)/36e5).toFixed(1),l=`%c🌏 ${t}%c ${n}.${r.slice(0,8)}.${e} (距今${a}个小时)
4146
4146
  %c${o?o+`
4147
4147
  `:""}当前网站正在使用${t},此软件版权归${i}所有
4148
- `;ae.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","798c9f9e364c0e89c5611fb7689e92715ba748df")},get info(){return l},get date(){return"2025-07-08T09:18:44.000Z"},get author(){return"suplyang"},get version(){return"3.2.0-beta.8"},get name(){return"earthsdk3-cesium"},get commitId(){return"798c9f9e364c0e89c5611fb7689e92715ba748df"},print(){console.info(this.info,`
4148
+ `;ae.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","86cd78d39a95619b7116ef4bdb191f0d2e005181")},get info(){return l},get date(){return"2025-07-09T00:49:51.000Z"},get author(){return"suplyang"},get version(){return"3.2.0-beta.9"},get name(){return"earthsdk3-cesium"},get commitId(){return"86cd78d39a95619b7116ef4bdb191f0d2e005181"},print(){console.info(this.info,`
4149
4149
  font-size: 18px;
4150
4150
  font-weight: 1000;
4151
4151
  line-height: 1;