earthsdk3 3.7.0-beta.14 → 3.7.0-beta.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- (function(g,qn){typeof exports=="object"&&typeof module<"u"?qn(exports,require("js-binary-schema-parser"),require("topojson-client"),require("proj4"),require("@turf/turf"),require("zod"),require("zod-to-json-schema")):typeof define=="function"&&define.amd?define(["exports","js-binary-schema-parser","topojson-client","proj4","@turf/turf","zod","zod-to-json-schema"],qn):(g=typeof globalThis<"u"?globalThis:g||self,qn(g.EarthSDK3={},g.jsBinarySchemaParser,g.topojson,g.proj4,g.turf,g.z,g.zodToJsonSchema))})(this,function(g,qn,qo,gp,Jy,vt,$y){"use strict";var Hb=Object.defineProperty;var qb=(g,qn,qo)=>qn in g?Hb(g,qn,{enumerable:!0,configurable:!0,writable:!0,value:qo}):g[qn]=qo;var d=(g,qn,qo)=>qb(g,typeof qn!="symbol"?qn+"":qn,qo);var si;function mp(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const Ky=mp(qo),Qe=mp(Jy);function Zy(){var n;const r=((n=globalThis==null?void 0:globalThis.navigator)==null?void 0:n.userAgent)??"unknown";let e="Unknown";/Windows/.test(r)?e="Windows":/Macintosh/.test(r)?e="MacOS":/Linux/.test(r)?e="Linux":/Android/.test(r)?e="Android":/iOS|iPhone|iPad|iPod/.test(r)&&(e="iOS");let t="Unknown";return/x64|x86_64|Win64|WOW64/.test(r)?t="x64":/x86|i686|Win32/.test(r)?t="x86":/arm64|aarch64/.test(r)?t="arm64":/arm/.test(r)&&(t="arm"),{os:e.toLocaleLowerCase(),arch:t.toLocaleLowerCase()}}const Qy=Date.now();function vp(r){var a;const{os:e,arch:t}=Zy(),n={version:r.version,commitdate:r.date,commitId:r.commitId,runningTime:(Date.now()-Qy)/1e3/60|0,date:new Date().toLocaleString(),href:((a=globalThis==null?void 0:globalThis.location)==null?void 0:a.href)??"unknown",os:e,arch:t},s={method:"GET",headers:new Headers,redirect:"follow"},o=globalThis.encodeURIComponent(JSON.stringify(n));fetch(`https://account.bjxbsj.cn/api/product/record?product=EarthSDKJS&content=${o}`,s).then(u=>u.text()).then(u=>console.log(u)).catch(u=>console.log("error",u))}g.copyright=void 0;try{const r="earthsdk3",e="3.7.0-beta.14",t="2025-12-05T01:09:14.000Z",n="北京西部世界科技有限公司",i="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",s="c8c53546e91ee45f45a102e5f4f076c4f16e0d00",a=((Date.now()-1764896954e3)/36e5).toFixed(1),u=`%c🌏 ${r}%c ${e}.${s.slice(0,8)}.${t} (距今${a}个小时)
1
+ (function(g,qn){typeof exports=="object"&&typeof module<"u"?qn(exports,require("js-binary-schema-parser"),require("topojson-client"),require("proj4"),require("@turf/turf"),require("zod"),require("zod-to-json-schema")):typeof define=="function"&&define.amd?define(["exports","js-binary-schema-parser","topojson-client","proj4","@turf/turf","zod","zod-to-json-schema"],qn):(g=typeof globalThis<"u"?globalThis:g||self,qn(g.EarthSDK3={},g.jsBinarySchemaParser,g.topojson,g.proj4,g.turf,g.z,g.zodToJsonSchema))})(this,function(g,qn,qo,gp,Jy,vt,$y){"use strict";var Hb=Object.defineProperty;var qb=(g,qn,qo)=>qn in g?Hb(g,qn,{enumerable:!0,configurable:!0,writable:!0,value:qo}):g[qn]=qo;var d=(g,qn,qo)=>qb(g,typeof qn!="symbol"?qn+"":qn,qo);var si;function mp(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const Ky=mp(qo),Qe=mp(Jy);function Zy(){var n;const r=((n=globalThis==null?void 0:globalThis.navigator)==null?void 0:n.userAgent)??"unknown";let e="Unknown";/Windows/.test(r)?e="Windows":/Macintosh/.test(r)?e="MacOS":/Linux/.test(r)?e="Linux":/Android/.test(r)?e="Android":/iOS|iPhone|iPad|iPod/.test(r)&&(e="iOS");let t="Unknown";return/x64|x86_64|Win64|WOW64/.test(r)?t="x64":/x86|i686|Win32/.test(r)?t="x86":/arm64|aarch64/.test(r)?t="arm64":/arm/.test(r)&&(t="arm"),{os:e.toLocaleLowerCase(),arch:t.toLocaleLowerCase()}}const Qy=Date.now();function vp(r){var a;const{os:e,arch:t}=Zy(),n={version:r.version,commitdate:r.date,commitId:r.commitId,runningTime:(Date.now()-Qy)/1e3/60|0,date:new Date().toLocaleString(),href:((a=globalThis==null?void 0:globalThis.location)==null?void 0:a.href)??"unknown",os:e,arch:t},s={method:"GET",headers:new Headers,redirect:"follow"},o=globalThis.encodeURIComponent(JSON.stringify(n));fetch(`https://account.bjxbsj.cn/api/product/record?product=EarthSDKJS&content=${o}`,s).then(u=>u.text()).then(u=>console.log(u)).catch(u=>console.log("error",u))}g.copyright=void 0;try{const r="earthsdk3",e="3.7.0-beta.15",t="2025-12-18T03:39:35.000Z",n="北京西部世界科技有限公司",i="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",s="bf43a4be94d72dcbd6f2dac7f9881efa9d414a29",a=((Date.now()-1766029175e3)/36e5).toFixed(1),u=`%c🌏 ${r}%c ${e}.${s.slice(0,8)}.${t} (距今${a}个小时)
2
2
  %c${i?i+`
3
3
  `:""}当前网站正在使用${r},此软件版权归${n}所有
4
- `;g.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","c8c53546e91ee45f45a102e5f4f076c4f16e0d00")},get info(){return u},get date(){return"2025-12-05T01:09:14.000Z"},get author(){return"suplyang"},get version(){return"3.7.0-beta.14"},get name(){return"earthsdk3"},get commitId(){return"c8c53546e91ee45f45a102e5f4f076c4f16e0d00"},print(){console.info(this.info,`
4
+ `;g.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","bf43a4be94d72dcbd6f2dac7f9881efa9d414a29")},get info(){return u},get date(){return"2025-12-18T03:39:35.000Z"},get author(){return"suplyang"},get version(){return"3.7.0-beta.15"},get name(){return"earthsdk3"},get commitId(){return"bf43a4be94d72dcbd6f2dac7f9881efa9d414a29"},print(){console.info(this.info,`
5
5
  font-size: 18px;
6
6
  font-weight: 1000;
7
7
  line-height: 1;
@@ -62,7 +62,7 @@ ${u.map(c=>`${c.id} ${c.typeName}
62
62
  See the Apache Version 2.0 License for specific language governing permissions
63
63
  and limitations under the License.
64
64
  ***************************************************************************** */function MC(r,e){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(c){return u([l,c])}}function u(l){if(n)throw new TypeError("Generator is already executing.");for(;t;)try{if(n=1,i&&(s=l[0]&2?i.return:l[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,l[1])).done)return s;switch(i=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return t.label++,{value:l[1],done:!1};case 5:t.label++,i=l[1],l=[0];continue;case 7:l=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){t.label=l[1];break}if(l[0]===6&&t.label<s[1]){t.label=s[1],s=l;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(l);break}s[2]&&t.ops.pop(),t.trys.pop();continue}l=e.call(r,t)}catch(c){l=[6,c],i=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}var ks=function(){function r(e,t){this.next=null,this.key=e,this.data=t,this.left=null,this.right=null}return r}();function RC(r,e){return r>e?1:r<e?-1:0}function Vs(r,e,t){for(var n=new ks(null,null),i=n,s=n;;){var o=t(r,e.key);if(o<0){if(e.left===null)break;if(t(r,e.left.key)<0){var a=e.left;if(e.left=a.right,a.right=e,e=a,e.left===null)break}s.left=e,s=e,e=e.left}else if(o>0){if(e.right===null)break;if(t(r,e.right.key)>0){var a=e.right;if(e.right=a.left,a.left=e,e=a,e.right===null)break}i.right=e,i=e,e=e.right}else break}return i.right=e.left,s.left=e.right,e.left=n.right,e.right=n.left,e}function Dd(r,e,t,n){var i=new ks(r,e);if(t===null)return i.left=i.right=null,i;t=Vs(r,t,n);var s=n(r,t.key);return s<0?(i.left=t.left,i.right=t,t.left=null):s>=0&&(i.right=t.right,i.left=t,t.right=null),i}function Mv(r,e,t){var n=null,i=null;if(e){e=Vs(r,e,t);var s=t(e.key,r);s===0?(n=e.left,i=e.right):s<0?(i=e.right,e.right=null,n=e):(n=e.left,e.left=null,i=e)}return{left:n,right:i}}function LC(r,e,t){return e===null?r:(r===null||(e=Vs(r.key,e,t),e.left=r),e)}function Md(r,e,t,n,i){if(r){n(""+e+(t?"└── ":"├── ")+i(r)+`
65
- `);var s=e+(t?" ":"│ ");r.left&&Md(r.left,s,!1,n,i),r.right&&Md(r.right,s,!0,n,i)}}var Rd=function(){function r(e){e===void 0&&(e=RC),this._root=null,this._size=0,this._comparator=e}return r.prototype.insert=function(e,t){return this._size++,this._root=Dd(e,t,this._root,this._comparator)},r.prototype.add=function(e,t){var n=new ks(e,t);this._root===null&&(n.left=n.right=null,this._size++,this._root=n);var i=this._comparator,s=Vs(e,this._root,i),o=i(e,s.key);return o===0?this._root=s:(o<0?(n.left=s.left,n.right=s,s.left=null):o>0&&(n.right=s.right,n.left=s,s.right=null),this._size++,this._root=n),this._root},r.prototype.remove=function(e){this._root=this._remove(e,this._root,this._comparator)},r.prototype._remove=function(e,t,n){var i;if(t===null)return null;t=Vs(e,t,n);var s=n(e,t.key);return s===0?(t.left===null?i=t.right:(i=Vs(e,t.left,n),i.right=t.right),this._size--,i):t},r.prototype.pop=function(){var e=this._root;if(e){for(;e.left;)e=e.left;return this._root=Vs(e.key,this._root,this._comparator),this._root=this._remove(e.key,this._root,this._comparator),{key:e.key,data:e.data}}return null},r.prototype.findStatic=function(e){for(var t=this._root,n=this._comparator;t;){var i=n(e,t.key);if(i===0)return t;i<0?t=t.left:t=t.right}return null},r.prototype.find=function(e){return this._root&&(this._root=Vs(e,this._root,this._comparator),this._comparator(e,this._root.key)!==0)?null:this._root},r.prototype.contains=function(e){for(var t=this._root,n=this._comparator;t;){var i=n(e,t.key);if(i===0)return!0;i<0?t=t.left:t=t.right}return!1},r.prototype.forEach=function(e,t){for(var n=this._root,i=[],s=!1;!s;)n!==null?(i.push(n),n=n.left):i.length!==0?(n=i.pop(),e.call(t,n),n=n.right):s=!0;return this},r.prototype.range=function(e,t,n,i){for(var s=[],o=this._comparator,a=this._root,u;s.length!==0||a;)if(a)s.push(a),a=a.left;else{if(a=s.pop(),u=o(a.key,t),u>0)break;if(o(a.key,e)>=0&&n.call(i,a))return this;a=a.right}return this},r.prototype.keys=function(){var e=[];return this.forEach(function(t){var n=t.key;return e.push(n)}),e},r.prototype.values=function(){var e=[];return this.forEach(function(t){var n=t.data;return e.push(n)}),e},r.prototype.min=function(){return this._root?this.minNode(this._root).key:null},r.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},r.prototype.minNode=function(e){if(e===void 0&&(e=this._root),e)for(;e.left;)e=e.left;return e},r.prototype.maxNode=function(e){if(e===void 0&&(e=this._root),e)for(;e.right;)e=e.right;return e},r.prototype.at=function(e){for(var t=this._root,n=!1,i=0,s=[];!n;)if(t)s.push(t),t=t.left;else if(s.length>0){if(t=s.pop(),i===e)return t;i++,t=t.right}else n=!0;return null},r.prototype.next=function(e){var t=this._root,n=null;if(e.right){for(n=e.right;n.left;)n=n.left;return n}for(var i=this._comparator;t;){var s=i(e.key,t.key);if(s===0)break;s<0?(n=t,t=t.left):t=t.right}return n},r.prototype.prev=function(e){var t=this._root,n=null;if(e.left!==null){for(n=e.left;n.right;)n=n.right;return n}for(var i=this._comparator;t;){var s=i(e.key,t.key);if(s===0)break;s<0?t=t.left:(n=t,t=t.right)}return n},r.prototype.clear=function(){return this._root=null,this._size=0,this},r.prototype.toList=function(){return AC(this._root)},r.prototype.load=function(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!1);var i=e.length,s=this._comparator;if(n&&Ad(e,t,0,i-1,s),this._root===null)this._root=Ld(e,t,0,i),this._size=i;else{var o=kC(this.toList(),FC(e,t),s);i=this._size+i,this._root=Fd({head:o},0,i)}return this},r.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(r.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),r.prototype.toString=function(e){e===void 0&&(e=function(n){return String(n.key)});var t=[];return Md(this._root,"",!0,function(n){return t.push(n)},e),t.join("")},r.prototype.update=function(e,t,n){var i=this._comparator,s=Mv(e,this._root,i),o=s.left,a=s.right;i(e,t)<0?a=Dd(t,n,a,i):o=Dd(t,n,o,i),this._root=LC(o,a,i)},r.prototype.split=function(e){return Mv(e,this._root,this._comparator)},r.prototype[Symbol.iterator]=function(){var e,t,n;return MC(this,function(i){switch(i.label){case 0:e=this._root,t=[],n=!1,i.label=1;case 1:return n?[3,6]:e===null?[3,2]:(t.push(e),e=e.left,[3,5]);case 2:return t.length===0?[3,4]:(e=t.pop(),[4,e]);case 3:return i.sent(),e=e.right,[3,5];case 4:n=!0,i.label=5;case 5:return[3,1];case 6:return[2]}})},r}();function Ld(r,e,t,n){var i=n-t;if(i>0){var s=t+Math.floor(i/2),o=r[s],a=e[s],u=new ks(o,a);return u.left=Ld(r,e,t,s),u.right=Ld(r,e,s+1,n),u}return null}function FC(r,e){for(var t=new ks(null,null),n=t,i=0;i<r.length;i++)n=n.next=new ks(r[i],e[i]);return n.next=null,t.next}function AC(r){for(var e=r,t=[],n=!1,i=new ks(null,null),s=i;!n;)e?(t.push(e),e=e.left):t.length>0?(e=s=s.next=t.pop(),e=e.right):n=!0;return s.next=null,i.next}function Fd(r,e,t){var n=t-e;if(n>0){var i=e+Math.floor(n/2),s=Fd(r,e,i),o=r.head;return o.left=s,r.head=r.head.next,o.right=Fd(r,i+1,t),o}return null}function kC(r,e,t){for(var n=new ks(null,null),i=n,s=r,o=e;s!==null&&o!==null;)t(s.key,o.key)<0?(i.next=s,s=s.next):(i.next=o,o=o.next),i=i.next;return s!==null?i.next=s:o!==null&&(i.next=o),n.next}function Ad(r,e,t,n,i){if(!(t>=n)){for(var s=r[t+n>>1],o=t-1,a=n+1;;){do o++;while(i(r[o],s)<0);do a--;while(i(r[a],s)>0);if(o>=a)break;var u=r[o];r[o]=r[a],r[a]=u,u=e[o],e[o]=e[a],e[a]=u}Ad(r,e,t,a,i),Ad(r,e,a+1,n,i)}}const as=11102230246251565e-32,vn=134217729,VC=(3+8*as)*as;function kd(r,e,t,n,i){let s,o,a,u,l=e[0],c=n[0],h=0,f=0;c>l==c>-l?(s=l,l=e[++h]):(s=c,c=n[++f]);let p=0;if(h<r&&f<t)for(c>l==c>-l?(o=l+s,a=s-(o-l),l=e[++h]):(o=c+s,a=s-(o-c),c=n[++f]),s=o,a!==0&&(i[p++]=a);h<r&&f<t;)c>l==c>-l?(o=s+l,u=o-s,a=s-(o-u)+(l-u),l=e[++h]):(o=s+c,u=o-s,a=s-(o-u)+(c-u),c=n[++f]),s=o,a!==0&&(i[p++]=a);for(;h<r;)o=s+l,u=o-s,a=s-(o-u)+(l-u),l=e[++h],s=o,a!==0&&(i[p++]=a);for(;f<t;)o=s+c,u=o-s,a=s-(o-u)+(c-u),c=n[++f],s=o,a!==0&&(i[p++]=a);return(s!==0||p===0)&&(i[p++]=s),p}function jC(r,e){let t=e[0];for(let n=1;n<r;n++)t+=e[n];return t}function cl(r){return new Float64Array(r)}const BC=(3+16*as)*as,zC=(2+12*as)*as,UC=(9+64*as)*as*as,Aa=cl(4),Rv=cl(8),Lv=cl(12),Fv=cl(16),Ln=cl(4);function GC(r,e,t,n,i,s,o){let a,u,l,c,h,f,p,v,C,S,P,y,_,m,w,E,b,I;const T=r-i,D=t-i,x=e-s,N=n-s;m=T*N,f=vn*T,p=f-(f-T),v=T-p,f=vn*N,C=f-(f-N),S=N-C,w=v*S-(m-p*C-v*C-p*S),E=x*D,f=vn*x,p=f-(f-x),v=x-p,f=vn*D,C=f-(f-D),S=D-C,b=v*S-(E-p*C-v*C-p*S),P=w-b,h=w-P,Aa[0]=w-(P+h)+(h-b),y=m+P,h=y-m,_=m-(y-h)+(P-h),P=_-E,h=_-P,Aa[1]=_-(P+h)+(h-E),I=y+P,h=I-y,Aa[2]=y-(I-h)+(P-h),Aa[3]=I;let L=jC(4,Aa),A=zC*o;if(L>=A||-L>=A||(h=r-T,a=r-(T+h)+(h-i),h=t-D,l=t-(D+h)+(h-i),h=e-x,u=e-(x+h)+(h-s),h=n-N,c=n-(N+h)+(h-s),a===0&&u===0&&l===0&&c===0)||(A=UC*o+VC*Math.abs(L),L+=T*c+N*a-(x*l+D*u),L>=A||-L>=A))return L;m=a*N,f=vn*a,p=f-(f-a),v=a-p,f=vn*N,C=f-(f-N),S=N-C,w=v*S-(m-p*C-v*C-p*S),E=u*D,f=vn*u,p=f-(f-u),v=u-p,f=vn*D,C=f-(f-D),S=D-C,b=v*S-(E-p*C-v*C-p*S),P=w-b,h=w-P,Ln[0]=w-(P+h)+(h-b),y=m+P,h=y-m,_=m-(y-h)+(P-h),P=_-E,h=_-P,Ln[1]=_-(P+h)+(h-E),I=y+P,h=I-y,Ln[2]=y-(I-h)+(P-h),Ln[3]=I;const J=kd(4,Aa,4,Ln,Rv);m=T*c,f=vn*T,p=f-(f-T),v=T-p,f=vn*c,C=f-(f-c),S=c-C,w=v*S-(m-p*C-v*C-p*S),E=x*l,f=vn*x,p=f-(f-x),v=x-p,f=vn*l,C=f-(f-l),S=l-C,b=v*S-(E-p*C-v*C-p*S),P=w-b,h=w-P,Ln[0]=w-(P+h)+(h-b),y=m+P,h=y-m,_=m-(y-h)+(P-h),P=_-E,h=_-P,Ln[1]=_-(P+h)+(h-E),I=y+P,h=I-y,Ln[2]=y-(I-h)+(P-h),Ln[3]=I;const H=kd(J,Rv,4,Ln,Lv);m=a*c,f=vn*a,p=f-(f-a),v=a-p,f=vn*c,C=f-(f-c),S=c-C,w=v*S-(m-p*C-v*C-p*S),E=u*l,f=vn*u,p=f-(f-u),v=u-p,f=vn*l,C=f-(f-l),S=l-C,b=v*S-(E-p*C-v*C-p*S),P=w-b,h=w-P,Ln[0]=w-(P+h)+(h-b),y=m+P,h=y-m,_=m-(y-h)+(P-h),P=_-E,h=_-P,Ln[1]=_-(P+h)+(h-E),I=y+P,h=I-y,Ln[2]=y-(I-h)+(P-h),Ln[3]=I;const Z=kd(H,Lv,4,Ln,Fv);return Fv[Z-1]}function WC(r,e,t,n,i,s){const o=(e-s)*(t-i),a=(r-i)*(n-s),u=o-a,l=Math.abs(o+a);return Math.abs(u)>=BC*l?u:-GC(r,e,t,n,i,s,l)}const hl=(r,e)=>r.ll.x<=e.x&&e.x<=r.ur.x&&r.ll.y<=e.y&&e.y<=r.ur.y,Vd=(r,e)=>{if(e.ur.x<r.ll.x||r.ur.x<e.ll.x||e.ur.y<r.ll.y||r.ur.y<e.ll.y)return null;const t=r.ll.x<e.ll.x?e.ll.x:r.ll.x,n=r.ur.x<e.ur.x?r.ur.x:e.ur.x,i=r.ll.y<e.ll.y?e.ll.y:r.ll.y,s=r.ur.y<e.ur.y?r.ur.y:e.ur.y;return{ll:{x:t,y:i},ur:{x:n,y:s}}};let js=Number.EPSILON;js===void 0&&(js=Math.pow(2,-52));const HC=js*js,Av=(r,e)=>{if(-js<r&&r<js&&-js<e&&e<js)return 0;const t=r-e;return t*t<HC*r*e?0:r<e?-1:1};class qC{constructor(){this.reset()}reset(){this.xRounder=new kv,this.yRounder=new kv}round(e,t){return{x:this.xRounder.round(e),y:this.yRounder.round(t)}}}class kv{constructor(){this.tree=new Rd,this.round(0)}round(e){const t=this.tree.add(e),n=this.tree.prev(t);if(n!==null&&Av(t.key,n.key)===0)return this.tree.remove(e),n.key;const i=this.tree.next(t);return i!==null&&Av(t.key,i.key)===0?(this.tree.remove(e),i.key):e}}const dl=new qC,Mc=(r,e)=>r.x*e.y-r.y*e.x,Vv=(r,e)=>r.x*e.x+r.y*e.y,jv=(r,e,t)=>{const n=WC(r.x,r.y,e.x,e.y,t.x,t.y);return n>0?-1:n<0?1:0},Rc=r=>Math.sqrt(Vv(r,r)),XC=(r,e,t)=>{const n={x:e.x-r.x,y:e.y-r.y},i={x:t.x-r.x,y:t.y-r.y};return Mc(i,n)/Rc(i)/Rc(n)},YC=(r,e,t)=>{const n={x:e.x-r.x,y:e.y-r.y},i={x:t.x-r.x,y:t.y-r.y};return Vv(i,n)/Rc(i)/Rc(n)},Bv=(r,e,t)=>e.y===0?null:{x:r.x+e.x/e.y*(t-r.y),y:t},zv=(r,e,t)=>e.x===0?null:{x:t,y:r.y+e.y/e.x*(t-r.x)},JC=(r,e,t,n)=>{if(e.x===0)return zv(t,n,r.x);if(n.x===0)return zv(r,e,t.x);if(e.y===0)return Bv(t,n,r.y);if(n.y===0)return Bv(r,e,t.y);const i=Mc(e,n);if(i==0)return null;const s={x:t.x-r.x,y:t.y-r.y},o=Mc(s,e)/i,a=Mc(s,n)/i,u=r.x+a*e.x,l=t.x+o*n.x,c=r.y+a*e.y,h=t.y+o*n.y,f=(u+l)/2,p=(c+h)/2;return{x:f,y:p}};class xr{static compare(e,t){const n=xr.comparePoints(e.point,t.point);return n!==0?n:(e.point!==t.point&&e.link(t),e.isLeft!==t.isLeft?e.isLeft?1:-1:Bs.compare(e.segment,t.segment))}static comparePoints(e,t){return e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0}constructor(e,t){e.events===void 0?e.events=[this]:e.events.push(this),this.point=e,this.isLeft=t}link(e){if(e.point===this.point)throw new Error("Tried to link already linked events");const t=e.point.events;for(let n=0,i=t.length;n<i;n++){const s=t[n];this.point.events.push(s),s.point=this.point}this.checkForConsuming()}checkForConsuming(){const e=this.point.events.length;for(let t=0;t<e;t++){const n=this.point.events[t];if(n.segment.consumedBy===void 0)for(let i=t+1;i<e;i++){const s=this.point.events[i];s.consumedBy===void 0&&n.otherSE.point.events===s.otherSE.point.events&&n.segment.consume(s.segment)}}}getAvailableLinkedEvents(){const e=[];for(let t=0,n=this.point.events.length;t<n;t++){const i=this.point.events[t];i!==this&&!i.segment.ringOut&&i.segment.isInResult()&&e.push(i)}return e}getLeftmostComparator(e){const t=new Map,n=i=>{const s=i.otherSE;t.set(i,{sine:XC(this.point,e.point,s.point),cosine:YC(this.point,e.point,s.point)})};return(i,s)=>{t.has(i)||n(i),t.has(s)||n(s);const{sine:o,cosine:a}=t.get(i),{sine:u,cosine:l}=t.get(s);return o>=0&&u>=0?a<l?1:a>l?-1:0:o<0&&u<0?a<l?-1:a>l?1:0:u<o?-1:u>o?1:0}}}let $C=0;class Bs{static compare(e,t){const n=e.leftSE.point.x,i=t.leftSE.point.x,s=e.rightSE.point.x,o=t.rightSE.point.x;if(o<n)return 1;if(s<i)return-1;const a=e.leftSE.point.y,u=t.leftSE.point.y,l=e.rightSE.point.y,c=t.rightSE.point.y;if(n<i){if(u<a&&u<l)return 1;if(u>a&&u>l)return-1;const h=e.comparePoint(t.leftSE.point);if(h<0)return 1;if(h>0)return-1;const f=t.comparePoint(e.rightSE.point);return f!==0?f:-1}if(n>i){if(a<u&&a<c)return-1;if(a>u&&a>c)return 1;const h=t.comparePoint(e.leftSE.point);if(h!==0)return h;const f=e.comparePoint(t.rightSE.point);return f<0?1:f>0?-1:1}if(a<u)return-1;if(a>u)return 1;if(s<o){const h=t.comparePoint(e.rightSE.point);if(h!==0)return h}if(s>o){const h=e.comparePoint(t.rightSE.point);if(h<0)return 1;if(h>0)return-1}if(s!==o){const h=l-a,f=s-n,p=c-u,v=o-i;if(h>f&&p<v)return 1;if(h<f&&p>v)return-1}return s>o?1:s<o||l<c?-1:l>c?1:e.id<t.id?-1:e.id>t.id?1:0}constructor(e,t,n,i){this.id=++$C,this.leftSE=e,e.segment=this,e.otherSE=t,this.rightSE=t,t.segment=this,t.otherSE=e,this.rings=n,this.windings=i}static fromRing(e,t,n){let i,s,o;const a=xr.comparePoints(e,t);if(a<0)i=e,s=t,o=1;else if(a>0)i=t,s=e,o=-1;else throw new Error(`Tried to create degenerate segment at [${e.x}, ${e.y}]`);const u=new xr(i,!0),l=new xr(s,!1);return new Bs(u,l,[n],[o])}replaceRightSE(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const e=this.leftSE.point.y,t=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:e<t?e:t},ur:{x:this.rightSE.point.x,y:e>t?e:t}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(e){return e.x===this.leftSE.point.x&&e.y===this.leftSE.point.y||e.x===this.rightSE.point.x&&e.y===this.rightSE.point.y}comparePoint(e){if(this.isAnEndpoint(e))return 0;const t=this.leftSE.point,n=this.rightSE.point,i=this.vector();if(t.x===n.x)return e.x===t.x?0:e.x<t.x?1:-1;const s=(e.y-t.y)/i.y,o=t.x+s*i.x;if(e.x===o)return 0;const a=(e.x-t.x)/i.x,u=t.y+a*i.y;return e.y===u?0:e.y<u?-1:1}getIntersection(e){const t=this.bbox(),n=e.bbox(),i=Vd(t,n);if(i===null)return null;const s=this.leftSE.point,o=this.rightSE.point,a=e.leftSE.point,u=e.rightSE.point,l=hl(t,a)&&this.comparePoint(a)===0,c=hl(n,s)&&e.comparePoint(s)===0,h=hl(t,u)&&this.comparePoint(u)===0,f=hl(n,o)&&e.comparePoint(o)===0;if(c&&l)return f&&!h?o:!f&&h?u:null;if(c)return h&&s.x===u.x&&s.y===u.y?null:s;if(l)return f&&o.x===a.x&&o.y===a.y?null:a;if(f&&h)return null;if(f)return o;if(h)return u;const p=JC(s,this.vector(),a,e.vector());return p===null||!hl(i,p)?null:dl.round(p.x,p.y)}split(e){const t=[],n=e.events!==void 0,i=new xr(e,!0),s=new xr(e,!1),o=this.rightSE;this.replaceRightSE(s),t.push(s),t.push(i);const a=new Bs(i,o,this.rings.slice(),this.windings.slice());return xr.comparePoints(a.leftSE.point,a.rightSE.point)>0&&a.swapEvents(),xr.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),n&&(i.checkForConsuming(),s.checkForConsuming()),t}swapEvents(){const e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let t=0,n=this.windings.length;t<n;t++)this.windings[t]*=-1}consume(e){let t=this,n=e;for(;t.consumedBy;)t=t.consumedBy;for(;n.consumedBy;)n=n.consumedBy;const i=Bs.compare(t,n);if(i!==0){if(i>0){const s=t;t=n,n=s}if(t.prev===n){const s=t;t=n,n=s}for(let s=0,o=n.rings.length;s<o;s++){const a=n.rings[s],u=n.windings[s],l=t.rings.indexOf(a);l===-1?(t.rings.push(a),t.windings.push(u)):t.windings[l]+=u}n.rings=null,n.windings=null,n.consumedBy=t,n.leftSE.consumedBy=t.leftSE,n.rightSE.consumedBy=t.rightSE}}prevInResult(){return this._prevInResult!==void 0?this._prevInResult:(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null,this._prevInResult)}beforeState(){if(this._beforeState!==void 0)return this._beforeState;if(!this.prev)this._beforeState={rings:[],windings:[],multiPolys:[]};else{const e=this.prev.consumedBy||this.prev;this._beforeState=e.afterState()}return this._beforeState}afterState(){if(this._afterState!==void 0)return this._afterState;const e=this.beforeState();this._afterState={rings:e.rings.slice(0),windings:e.windings.slice(0),multiPolys:[]};const t=this._afterState.rings,n=this._afterState.windings,i=this._afterState.multiPolys;for(let a=0,u=this.rings.length;a<u;a++){const l=this.rings[a],c=this.windings[a],h=t.indexOf(l);h===-1?(t.push(l),n.push(c)):n[h]+=c}const s=[],o=[];for(let a=0,u=t.length;a<u;a++){if(n[a]===0)continue;const l=t[a],c=l.poly;if(o.indexOf(c)===-1)if(l.isExterior)s.push(c);else{o.indexOf(c)===-1&&o.push(c);const h=s.indexOf(l.poly);h!==-1&&s.splice(h,1)}}for(let a=0,u=s.length;a<u;a++){const l=s[a].multiPoly;i.indexOf(l)===-1&&i.push(l)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(this._isInResult!==void 0)return this._isInResult;const e=this.beforeState().multiPolys,t=this.afterState().multiPolys;switch(ni.type){case"union":{const n=e.length===0,i=t.length===0;this._isInResult=n!==i;break}case"intersection":{let n,i;e.length<t.length?(n=e.length,i=t.length):(n=t.length,i=e.length),this._isInResult=i===ni.numMultiPolys&&n<i;break}case"xor":{const n=Math.abs(e.length-t.length);this._isInResult=n%2===1;break}case"difference":{const n=i=>i.length===1&&i[0].isSubject;this._isInResult=n(e)!==n(t);break}default:throw new Error(`Unrecognized operation type found ${ni.type}`)}return this._isInResult}}class Uv{constructor(e,t,n){if(!Array.isArray(e)||e.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=t,this.isExterior=n,this.segments=[],typeof e[0][0]!="number"||typeof e[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const i=dl.round(e[0][0],e[0][1]);this.bbox={ll:{x:i.x,y:i.y},ur:{x:i.x,y:i.y}};let s=i;for(let o=1,a=e.length;o<a;o++){if(typeof e[o][0]!="number"||typeof e[o][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");let u=dl.round(e[o][0],e[o][1]);u.x===s.x&&u.y===s.y||(this.segments.push(Bs.fromRing(s,u,this)),u.x<this.bbox.ll.x&&(this.bbox.ll.x=u.x),u.y<this.bbox.ll.y&&(this.bbox.ll.y=u.y),u.x>this.bbox.ur.x&&(this.bbox.ur.x=u.x),u.y>this.bbox.ur.y&&(this.bbox.ur.y=u.y),s=u)}(i.x!==s.x||i.y!==s.y)&&this.segments.push(Bs.fromRing(s,i,this))}getSweepEvents(){const e=[];for(let t=0,n=this.segments.length;t<n;t++){const i=this.segments[t];e.push(i.leftSE),e.push(i.rightSE)}return e}}class KC{constructor(e,t){if(!Array.isArray(e))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new Uv(e[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(let n=1,i=e.length;n<i;n++){const s=new Uv(e[n],this,!1);s.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=s.bbox.ll.x),s.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=s.bbox.ll.y),s.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.interiorRings.push(s)}this.multiPoly=t}getSweepEvents(){const e=this.exteriorRing.getSweepEvents();for(let t=0,n=this.interiorRings.length;t<n;t++){const i=this.interiorRings[t].getSweepEvents();for(let s=0,o=i.length;s<o;s++)e.push(i[s])}return e}}class Gv{constructor(e,t){if(!Array.isArray(e))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{typeof e[0][0][0]=="number"&&(e=[e])}catch{}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(let n=0,i=e.length;n<i;n++){const s=new KC(e[n],this);s.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=s.bbox.ll.x),s.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=s.bbox.ll.y),s.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.polys.push(s)}this.isSubject=t}getSweepEvents(){const e=[];for(let t=0,n=this.polys.length;t<n;t++){const i=this.polys[t].getSweepEvents();for(let s=0,o=i.length;s<o;s++)e.push(i[s])}return e}}class Lc{static factory(e){const t=[];for(let n=0,i=e.length;n<i;n++){const s=e[n];if(!s.isInResult()||s.ringOut)continue;let o=null,a=s.leftSE,u=s.rightSE;const l=[a],c=a.point,h=[];for(;o=a,a=u,l.push(a),a.point!==c;)for(;;){const f=a.getAvailableLinkedEvents();if(f.length===0){const C=l[0].point,S=l[l.length-1].point;throw new Error(`Unable to complete output ring starting at [${C.x}, ${C.y}]. Last matching segment found ends at [${S.x}, ${S.y}].`)}if(f.length===1){u=f[0].otherSE;break}let p=null;for(let C=0,S=h.length;C<S;C++)if(h[C].point===a.point){p=C;break}if(p!==null){const C=h.splice(p)[0],S=l.splice(C.index);S.unshift(S[0].otherSE),t.push(new Lc(S.reverse()));continue}h.push({index:l.length,point:a.point});const v=a.getLeftmostComparator(o);u=f.sort(v)[0].otherSE;break}t.push(new Lc(l))}return t}constructor(e){this.events=e;for(let t=0,n=e.length;t<n;t++)e[t].segment.ringOut=this;this.poly=null}getGeom(){let e=this.events[0].point;const t=[e];for(let l=1,c=this.events.length-1;l<c;l++){const h=this.events[l].point,f=this.events[l+1].point;jv(h,e,f)!==0&&(t.push(h),e=h)}if(t.length===1)return null;const n=t[0],i=t[1];jv(n,e,i)===0&&t.shift(),t.push(t[0]);const s=this.isExteriorRing()?1:-1,o=this.isExteriorRing()?0:t.length-1,a=this.isExteriorRing()?t.length:-1,u=[];for(let l=o;l!=a;l+=s)u.push([t[l].x,t[l].y]);return u}isExteriorRing(){if(this._isExteriorRing===void 0){const e=this.enclosingRing();this._isExteriorRing=e?!e.isExteriorRing():!0}return this._isExteriorRing}enclosingRing(){return this._enclosingRing===void 0&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}_calcEnclosingRing(){let e=this.events[0];for(let i=1,s=this.events.length;i<s;i++){const o=this.events[i];xr.compare(e,o)>0&&(e=o)}let t=e.segment.prevInResult(),n=t?t.prevInResult():null;for(;;){if(!t)return null;if(!n)return t.ringOut;if(n.ringOut!==t.ringOut)return n.ringOut.enclosingRing()!==t.ringOut?t.ringOut:t.ringOut.enclosingRing();t=n.prevInResult(),n=t?t.prevInResult():null}}}class Wv{constructor(e){this.exteriorRing=e,e.poly=this,this.interiorRings=[]}addInterior(e){this.interiorRings.push(e),e.poly=this}getGeom(){const e=[this.exteriorRing.getGeom()];if(e[0]===null)return null;for(let t=0,n=this.interiorRings.length;t<n;t++){const i=this.interiorRings[t].getGeom();i!==null&&e.push(i)}return e}}class ZC{constructor(e){this.rings=e,this.polys=this._composePolys(e)}getGeom(){const e=[];for(let t=0,n=this.polys.length;t<n;t++){const i=this.polys[t].getGeom();i!==null&&e.push(i)}return e}_composePolys(e){const t=[];for(let n=0,i=e.length;n<i;n++){const s=e[n];if(!s.poly)if(s.isExteriorRing())t.push(new Wv(s));else{const o=s.enclosingRing();o.poly||t.push(new Wv(o)),o.poly.addInterior(s)}}return t}}class QC{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Bs.compare;this.queue=e,this.tree=new Rd(t),this.segments=[]}process(e){const t=e.segment,n=[];if(e.consumedBy)return e.isLeft?this.queue.remove(e.otherSE):this.tree.remove(t),n;const i=e.isLeft?this.tree.add(t):this.tree.find(t);if(!i)throw new Error(`Unable to find segment #${t.id} [${t.leftSE.point.x}, ${t.leftSE.point.y}] -> [${t.rightSE.point.x}, ${t.rightSE.point.y}] in SweepLine tree.`);let s=i,o=i,a,u;for(;a===void 0;)s=this.tree.prev(s),s===null?a=null:s.key.consumedBy===void 0&&(a=s.key);for(;u===void 0;)o=this.tree.next(o),o===null?u=null:o.key.consumedBy===void 0&&(u=o.key);if(e.isLeft){let l=null;if(a){const h=a.getIntersection(t);if(h!==null&&(t.isAnEndpoint(h)||(l=h),!a.isAnEndpoint(h))){const f=this._splitSafely(a,h);for(let p=0,v=f.length;p<v;p++)n.push(f[p])}}let c=null;if(u){const h=u.getIntersection(t);if(h!==null&&(t.isAnEndpoint(h)||(c=h),!u.isAnEndpoint(h))){const f=this._splitSafely(u,h);for(let p=0,v=f.length;p<v;p++)n.push(f[p])}}if(l!==null||c!==null){let h=null;l===null?h=c:c===null?h=l:h=xr.comparePoints(l,c)<=0?l:c,this.queue.remove(t.rightSE),n.push(t.rightSE);const f=t.split(h);for(let p=0,v=f.length;p<v;p++)n.push(f[p])}n.length>0?(this.tree.remove(t),n.push(e)):(this.segments.push(t),t.prev=a)}else{if(a&&u){const l=a.getIntersection(u);if(l!==null){if(!a.isAnEndpoint(l)){const c=this._splitSafely(a,l);for(let h=0,f=c.length;h<f;h++)n.push(c[h])}if(!u.isAnEndpoint(l)){const c=this._splitSafely(u,l);for(let h=0,f=c.length;h<f;h++)n.push(c[h])}}}this.tree.remove(t)}return n}_splitSafely(e,t){this.tree.remove(e);const n=e.rightSE;this.queue.remove(n);const i=e.split(t);return i.push(n),e.consumedBy===void 0&&this.tree.add(e),i}}const Hv=typeof process<"u"&&process.env.POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,tS=typeof process<"u"&&process.env.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6;class eS{run(e,t,n){ni.type=e,dl.reset();const i=[new Gv(t,!0)];for(let h=0,f=n.length;h<f;h++)i.push(new Gv(n[h],!1));if(ni.numMultiPolys=i.length,ni.type==="difference"){const h=i[0];let f=1;for(;f<i.length;)Vd(i[f].bbox,h.bbox)!==null?f++:i.splice(f,1)}if(ni.type==="intersection")for(let h=0,f=i.length;h<f;h++){const p=i[h];for(let v=h+1,C=i.length;v<C;v++)if(Vd(p.bbox,i[v].bbox)===null)return[]}const s=new Rd(xr.compare);for(let h=0,f=i.length;h<f;h++){const p=i[h].getSweepEvents();for(let v=0,C=p.length;v<C;v++)if(s.insert(p[v]),s.size>Hv)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const o=new QC(s);let a=s.size,u=s.pop();for(;u;){const h=u.key;if(s.size===a){const p=h.segment;throw new Error(`Unable to pop() ${h.isLeft?"left":"right"} SweepEvent [${h.point.x}, ${h.point.y}] from segment #${p.id} [${p.leftSE.point.x}, ${p.leftSE.point.y}] -> [${p.rightSE.point.x}, ${p.rightSE.point.y}] from queue.`)}if(s.size>Hv)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(o.segments.length>tS)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const f=o.process(h);for(let p=0,v=f.length;p<v;p++){const C=f[p];C.consumedBy===void 0&&s.insert(C)}a=s.size,u=s.pop()}dl.reset();const l=Lc.factory(o.segments);return new ZC(l).getGeom()}}const ni=new eS;var jd={union:function(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return ni.run("union",r,t)},intersection:function(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return ni.run("intersection",r,t)},xor:function(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return ni.run("xor",r,t)},difference:function(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return ni.run("difference",r,t)}};function nS(r,e){var t=Jn(r),n=Jn(e),i=r.properties||{},s=jd.difference(t.coordinates,n.coordinates);return s.length===0?null:s.length===1?Pn(s[0],i):Yh(s,i)}function rS(r,e,t){t===void 0&&(t={});var n=Jn(r),i=Jn(e),s=jd.intersection(n.coordinates,i.coordinates);return s.length===0?null:s.length===1?Pn(s[0],t.properties):Yh(s,t.properties)}function iS(r,e,t){t===void 0&&(t={});var n=Jn(r),i=Jn(e),s=jd.union(n.coordinates,i.coordinates);return s.length===0?null:s.length===1?Pn(s[0],t.properties):Yh(s,t.properties)}function qv(r,e){(r[0][0]!==r[r.length-1][0]||r[0][1]!==r[r.length-1][1]||r[0][2]!==r[r.length-1][2])&&r.push(r[0]),(e[0][0]!==e[e.length-1][0]||e[0][1]!==e[e.length-1][1]||e[0][2]!==e[e.length-1][2])&&e.push(e[0]);const t=rS(Pn([r]),Pn([e]));if(t)return t.geometry.coordinates}function Xv(r,e){(r[0][0]!==r[r.length-1][0]||r[0][1]!==r[r.length-1][1]||r[0][2]!==r[r.length-1][2])&&r.push(r[0]),(e[0][0]!==e[e.length-1][0]||e[0][1]!==e[e.length-1][1]||e[0][2]!==e[e.length-1][2])&&e.push(e[0]);const t=iS(Pn([r]),Pn([e]));if(t)return t.geometry.coordinates}function Yv(r,e=500,t="meters"){const n=OC(Br(r),e,{units:t});if(n)return n.geometry.coordinates}function Jv(r,e){(r[0][0]!==r[r.length-1][0]||r[0][1]!==r[r.length-1][1]||r[0][2]!==r[r.length-1][2])&&r.push(r[0]),(e[0][0]!==e[e.length-1][0]||e[0][1]!==e[e.length-1][1]||e[0][2]!==e[e.length-1][2])&&e.push(e[0]);const t=nS(Pn([r]),Pn([e]));if(t)return t.geometry.coordinates}function $v(r,e,t=10,n="meters"){return DC(r,e,{steps:t,units:n}).geometry.coordinates}function Bd(r,e){(r[0][0]!==r[r.length-1][0]||r[0][1]!==r[r.length-1][1]||r[0][2]!==r[r.length-1][2])&&r.push(r[0]),(e[0][0]!==e[e.length-1][0]||e[0][1]!==e[e.length-1][1]||e[0][2]!==e[e.length-1][2])&&e.push(e[0]);const t=Pn([r]),n=Pn([e]);return CE(t,n)?"oneBig":DE(t,n)?"twoBig":!1}function Kv(r){const e=ys(Qs(r,["0"])),t=ys(Qs(r,["1"])),n=ys(Qs(r,["2"])),i=Wi(Qs(r,["0"])),s=Wi(Qs(r,["1"])),o=Wi(Qs(r,["2"]));return{minPos:[e,t,n],maxPos:[i,s,o],center:[(e+i)*.5,(t+s)*.5,(n+o)*.5]}}function Zv(r){const{minPos:e,maxPos:t,center:n}=Kv(r);if(e.some(a=>!Number.isFinite(a)||t.some(u=>!Number.isFinite(u))||n.some(u=>!Number.isFinite(u)))){console.warn("geoCenterAndRadiusFromPositions error: minPos.some(e => !Number.isFinite(e) || maxPos.some(e => !Number.isFinite(e)) || center.some(e => !Number.isFinite(e))");return}const i=Ql(e,t);let s=i*.5;const o=Math.abs(e[2]-t[2]);return o!=0&&(s=Math.sqrt(i*i+o*o)*.5),{center:n,radius:s}}function Qv(r,e){const t=Vr(r),n=Vr(e);return g.Vector.distance(t,n)}function fl(r,e){const t=[],n=r.length;let i=0;for(let s=0;s<n-1;++s){if(e===void 0||e==="GEODESIC"){const o=Ql(r[s],r[s+1]),a=Math.abs(r[s][2]-r[s+1][2]);if(a===0)i+=o;else{const u=Math.sqrt(o*o+a*a);i+=u}}else if(e==="RHUMB"){const o=ym(r[s],r[s+1]),a=Math.abs(r[s][2]-r[s+1][2]);if(a===0)i+=o;else{const u=Math.sqrt(o*o+a*a);i+=u}}else if(e==="NONE"){const o=Qv(r[s],r[s+1]);i+=o}else console.warn(`未知的arcType: ${e},导致距离无法计算!`);t.push(i)}return t}function zd(r){const e="__getXyzFromPostion";let t=Xn(r,e);return(!t||!g.Vector.equals(t[0],r))&&(t=[[...r],Vr(r)],fi(r,e,t)),t[1]}class sS{constructor(e){this.points=e.points||[],this.duration=e.duration||1e4,this.sharpness=e.sharpness||.85,this.centers=[],this.controls=[],this.stepLength=e.stepLength||60,this.length=this.points.length,this.delay=0;for(let t=0;t<this.length;t++)this.points[t].z=this.points[t].z||0;for(let t=0;t<this.length-1;t++){const n=this.points[t],i=this.points[t+1];this.centers.push({x:(n.x+i.x)/2,y:(n.y+i.y)/2,z:(n.z+i.z)/2})}this.controls.push([this.points[0],this.points[0]]);for(let t=0;t<this.centers.length-1;t++){const n=this.points[t+1].x-(this.centers[t].x+this.centers[t+1].x)/2,i=this.points[t+1].y-(this.centers[t].y+this.centers[t+1].y)/2,s=this.points[t+1].z-(this.centers[t].z+this.centers[t+1].z)/2;this.controls.push([{x:(1-this.sharpness)*this.points[t+1].x+this.sharpness*(this.centers[t].x+n),y:(1-this.sharpness)*this.points[t+1].y+this.sharpness*(this.centers[t].y+i),z:(1-this.sharpness)*this.points[t+1].z+this.sharpness*(this.centers[t].z+s)},{x:(1-this.sharpness)*this.points[t+1].x+this.sharpness*(this.centers[t+1].x+n),y:(1-this.sharpness)*this.points[t+1].y+this.sharpness*(this.centers[t+1].y+i),z:(1-this.sharpness)*this.points[t+1].z+this.sharpness*(this.centers[t+1].z+s)}])}return this.controls.push([this.points[this.length-1],this.points[this.length-1]]),this.steps=this.cacheSteps(this.stepLength),this}cacheSteps(e){const t=[];let n=this.pos(0);t.push(0);for(let i=0;i<this.duration;i+=10){const s=this.pos(i);Math.sqrt((s.x-n.x)*(s.x-n.x)+(s.y-n.y)*(s.y-n.y)+(s.z-n.z)*(s.z-n.z))>e&&(t.push(i),n=s)}return t}vector(e){const t=this.pos(e+10),n=this.pos(e-10);return{angle:180*Math.atan2(t.y-n.y,t.x-n.x)/3.14,speed:Math.sqrt((n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y)+(n.z-t.z)*(n.z-t.z))}}pos(e){let t=e-this.delay;t<0&&(t=0),t>this.duration&&(t=this.duration-1);const n=t/this.duration;if(n>=1)return this.points[this.length-1];const i=Math.floor((this.points.length-1)*n),s=(this.length-1)*n-i;return oS(s,this.points[i],this.controls[i][1],this.controls[i+1][0],this.points[i+1])}}function oS(r,e,t,n,i){const s=aS(r);return{x:i.x*s[0]+n.x*s[1]+t.x*s[2]+e.x*s[3],y:i.y*s[0]+n.y*s[1]+t.y*s[2]+e.y*s[3],z:i.z*s[0]+n.z*s[1]+t.z*s[2]+e.z*s[3]}}function aS(r){const e=r*r;return[e*r,3*e*(1-r),3*r*(1-r)*(1-r),(1-r)*(1-r)*(1-r)]}function uS(r,e){e===void 0&&(e={});var t=e.resolution||1e3,n=e.sharpness||.85;const i=[],s=r.map(l=>{const[c,h,f]=Vr(l);return{x:c,y:h,z:f}});for(var o=new sS({duration:t,points:s,sharpness:n}),a=function(l){var c=o.pos(l);const h=Xh([c.x,c.y,c.z]);i.push(h)},u=0;u<o.duration;u+=10)a(u);return a(o.duration),i}function ty(r,e,t){return uS(r,{resolution:e,sharpness:t})}class ey extends ra{constructor(e){super(e)}get propUiTree(){return this.uiTree}}class Ud extends na{constructor(e,t,n){super(e,t),this._property=n}get property(){return this._property}}class Gd extends Ud{constructor(e,t){super(e,!1,t)}}class Wd extends Ud{constructor(e,t){super(e,!0,t)}get groupChildren(){return this.children}}function ny(r,e){const t=new ey(e),n=r.getProperties("chinese"),i=[];for(let s of n)if(s instanceof ut){const o=new Wd(t,s);o.d(()=>s.destroy()),t.children.push(o),i.push(o)}else{const o=new Gd(t,s);t.children.push(o),o.d(()=>s.destroy())}for(;i.length>0;){const s=i.pop();if(!s)throw new Error("should not be here!");const o=s;if(!(o.property instanceof ut))throw new Error("!(treeItem.property instanceof GroupProperty)");for(let a of o.property.children)if(a instanceof ut){const u=new Wd(t,a);u.d(()=>a.destroy()),o.groupChildren.push(u),i.push(u)}else{const u=new Gd(t,a);o.groupChildren.push(u),u.d(()=>a.destroy())}}return t.d(()=>{t.itemChildrenChanged.reset(),t.itemChildrenToChange.reset();const s=[...t.getDescendants()];s.forEach(o=>{o.children&&(o.children.length=0),o.destroy()}),s.length=0}),t}class ka extends V{constructor(t){super();d(this,"_propTreeReact",this.dv(j(void 0)));this.d(()=>this._propTreeReact.value=void 0),this.dv(new Ee(this.sceneObjectChanged,n=>{if(!n)return;const i=new V;return i.d(n.toDestroyEvent.don(()=>{this.sceneObject=void 0})),i})),this.d(this.sceneObjectChanged.don(n=>{this._propTreeReact.value=void 0,!(!n||!(n instanceof rt))&&(this._propTreeReact.value=ny(n,t))}))}get propTree(){return this._propTreeReact.value}get propTreeChanged(){return this._propTreeReact.changed}}(r=>{r.createDefaultProps=()=>({sceneObject:void 0})})(ka||(ka={})),Gi(ka.prototype,ka.createDefaultProps);function Hd(r){return vs(r,(e,t)=>e[0]===t[0]&&e[1]===t[1],e=>[...e])}function ry(r,e){const t=new Array;for(let n of r)t.push(e(n));return t}function qd(r,e){return r===void 0&&e===void 0?!0:!r||!e?!1:r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]}function iy(r,e,t){var i;((i=e.attachedViewers.values().toArray()[0])==null?void 0:i.getEngineObject(e))?t.call(r):requestAnimationFrame(()=>iy(r,e,t))}function lS(r,e,t,n=!0){n&&t(),r.dispose(e.disposableOn(t))}function cS(r,e){const{type:t,id:n}=r;if(t){const i=rt.create(t,n);if(i)return i.json=r,i;console.warn(`cannot create sceneObject from type(${t})`)}else console.warn(`cannot create sceneObject from type(${t})`)}function sy(r){const e=r.children&&fh(r.children,n=>{if(!(n instanceof yn))throw new Error("!(treeItem instanceof SceneTreeItem)");return!n.show})||!1,t=r.sceneTree.getSceneObjectShowFunc(r.sceneObject);return!e||t}class yn extends na{constructor(t,n=!1,i,s,o=!0){super(t,n,i);d(this,"_dragDrop");d(this,"_showChangedNotAffectChildren",!1);d(this,"_showChangedNotAffectParent",!1);d(this,"_type",this.dv(j("Unknown")));d(this,"_isExport",this.dv(j(!0)));const a=()=>this.tree&&this.tree.itemsChanged.emit([this]);this.dispose(this.nameChanged.disposableOn(a)),this.name=`未命名条目(${this.id})`,this.extras=s,this._isExport.value=o;let u;const l=()=>{u&&(u(),u=void 0)};this.dispose(l),this.dispose(this.sceneObjectChanged.disposableOn(c=>{l(),c&&(u=nt([this,"name"],[c,"name"]))})),this.dispose(this.showChanged.disposableOn(c=>{if(t.setSceneObjectShowFunc(this.sceneObject,c),this.tree&&this.tree.forceRedraw(),this.children&&!this._showChangedNotAffectChildren)for(let h of this.children)h instanceof yn&&(h._showChangedNotAffectParent=!0,h.show=c,h._showChangedNotAffectParent=!1);this.parent&&this.parent instanceof yn&&!this._showChangedNotAffectParent&&(this.parent._showChangedNotAffectChildren=!0,this.parent.show=sy(this.parent),this.parent._showChangedNotAffectChildren=!1)})),this.dv(new Ee(this.sceneObjectChanged,()=>{if(!this.sceneObject)return;const c=new V;if("show"in this.sceneObject&&"showChanged"in this.sceneObject&&this.sceneObject.showChanged instanceof O){const h=()=>{this.show=t.getSceneObjectShowFunc(this.sceneObject)};h(),c.dispose(this.sceneObject.showChanged.disposableOn(h))}else if("enabled"in this.sceneObject&&"enabledChanged"in this.sceneObject&&this.sceneObject.enabledChanged instanceof O){const h=()=>{this.show=t.getSceneObjectShowFunc(this.sceneObject)};h(),c.dispose(this.sceneObject.enabledChanged.disposableOn(h))}return c})),this.childrenChangedEvent.disposableOn(()=>{const c=sy(this);this._showChangedNotAffectChildren=!0,this.show=c,this._showChangedNotAffectChildren=!1});{const c=()=>{let h="Unknown";this.sceneObject?h=this.sceneObject.typeName:this.children&&(h="Folder"),this._type.value=h};this.dispose(this.sceneObjectChanged.disposableOn(c)),this.dispose(this.childrenResetedEvent.disposableOn(c)),c()}}get dragDrop(){return this._dragDrop||(this._dragDrop=this.dv(this.sceneTree.createTreeItemDragDropFunc(this))),this._dragDrop}get type(){return this._type.value}get typeChanged(){return this._type.changed}get isExport(){return this._isExport.value}get isExportChanged(){return this._isExport.changed}set isExport(t){this._isExport.value=t}get sceneTree(){return this.tree}get jsonStr(){return JSON.stringify(this.json,void 0," ")}set jsonStr(t){try{this.json=JSON.parse(t)}catch(n){console.error(`sceneTreeItem.jsonStr error ${n}`,n)}}get completeJson(){const t=this.children&&[...this.children].filter(n=>n.isExport).map(n=>n.completeJson);return{name:this.name,show:this.show?void 0:!1,collapsed:this.uiTreeObject.collapsed?!0:void 0,sceneObj:this.sceneObject&&this.sceneObject.completeJson,children:t,extras:this.extras}}get json(){const t=this.children&&[...this.children].filter(n=>n.isExport).map(n=>n.json);return{name:this.name,show:this.show?void 0:!1,collapsed:this.uiTreeObject.collapsed?!0:void 0,sceneObj:this.sceneObject&&this.sceneObject.json,children:t,extras:this.extras}}set json(t){if(t.name!==void 0&&(this.name=t.name),this.extras=t.extras,this._showChangedNotAffectChildren=!0,this._showChangedNotAffectParent=!0,this.show=t.show??!0,this._showChangedNotAffectChildren=!1,this._showChangedNotAffectParent=!1,this.uiTreeObject.collapsed=t.collapsed??!1,this.sceneObject=void 0,t.sceneObj&&(this.sceneObject=this.sceneTree.createSceneObjectFunc(t.sceneObj,this)),!!t.children){if(this.resetChildren(!0),!this.children)throw new Error("resetChildren(true) cannot get children!");for(let n of t.children){const i=new yn(this.tree,!0);i.json=n,this.children.push(i)}}}clone(){try{const t=new yn(this.sceneTree,!!this.children,void 0,this.extras,this.isExport);return t.json=this.json,t.name=this.sceneTree.getSceneTreeItemCloneNameFunc(this),t}catch(t){console.error(`SceneTreeItem.clone error: ${t}`,t)}}insertNewTreeItem(t,n){if(t==="FolderInnerOrAfter"||t==="FolderInnerOrBefore"||t==="FolderInner"){if(n&&n.tree!==this.tree)return console.warn("newTreeItem.tree !== this.tree"),!1;if(this.children&&!(t.includes("Or")&&this.sceneObject))return n&&this.children.push(n),!0;if(t==="FolderInner")return!1;if(t==="FolderInnerOrAfter")return super.insertNewTreeItem("After",n);if(t==="FolderInnerOrBefore")return super.insertNewTreeItem("Before",n);throw new Error("should not be here!")}else return super.insertNewTreeItem(t,n)}}(r=>{r.createDefaultProps=()=>({name:"未命名条目",nameEditing:!1,sceneObject:void 0,show:!0,extras:Qt(void 0)})})(yn||(yn={})),Gi(yn.prototype,yn.createDefaultProps);function oy(r,e,t){let{offsetY:n}=e;if(!e.target||!("clientTop"in e.target))return"none";n+=2,n+=e.target.clientTop;let i="none";return r.children?n<=t*.3?i="before":n>=t*.7?!r.uiTreeObject.collapsed&&r.children.length>0?i="inner":i="after":i="inner":n<=t*.5?i="before":i="after",i}class ay extends kg{constructor(e){super(),this._treeItem=e;const{dragStartDataManager:t}=this._treeItem.sceneTree;let n="none";const i=this.disposeVar(Vp(()=>{this._treeItem.uiTreeObject.moveToPositionMode=n,console.log(`uiTreeObject.moveToPositionMode = lastDragMode(${n});`)},200));function s(o){n!==o&&(n=o,i.restart())}this.dispose(this._dragStartEvent.disposableOn(o=>{t.data={type:"UITreeA",value:this._treeItem}})),this.dispose(this._dragOverEvent.disposableOn(o=>{if(!o.dataTransfer)return;o.preventDefault();const a=t;if(a.data&&a.data.type==="UITreeA"&&a.data.value!==void 0){const u=a.data.value,l=this._treeItem,{tree:c}=l;if(c){const h=[...c.selectedItems];~h.indexOf(u)||h.push(u);const f=oy(l,o,c.itemDivHeight);if(f!=="none"&&ra.canMoveToTreeItems(h,l,f)){o.dataTransfer.dropEffect="move",s(f);return}}}o.dataTransfer.dropEffect="none",s("none")})),this.dispose(this._dropEvent.disposableOn(o=>{const a=t;if(!(a.data&&a.data.type==="UITreeA"&&a.data.value!==void 0))return;const u=a.data.value,l=this._treeItem,{tree:c}=l;if(!c)return;const h=[...c.selectedItems];~h.indexOf(u)||h.push(u);const f=oy(l,o,c.itemDivHeight);f!=="none"&&ra.canMoveToTreeItems(h,l,f)&&(ra.moveToTreeItems(h,l,f),a.data=void 0,s("none"))})),this.dispose(this._dragLeaveEvent.disposableOn(()=>{n="none",i.restart()}))}}function hS(r){if(!(r instanceof yn))throw new Error("defaultCreateTreeItemDragDrop !(treeItem instanceof SceneTreeItem)");return new ay(r)}function dS(r){let e=!1;return r&&("show"in r?e=r.show??!0:"enabled"in r&&(e=r.enabled??!0)),e}function fS(r,e){r&&("show"in r?r.show=e:"enabled"in r&&(r.enabled=e))}const pS=["EnvironmentVariables","ScriptsLoader","SceneScript","ScriptLoader"];function gS(r){const e=[],{root:t={}}=r,n=[t];for(;n.length>0;){const i=n.pop();if(!i)throw new Error("!todo");if(i.children){for(let s of i.children)if(s.children&&n.unshift(s),s.sceneObj){const{type:o=void 0}=s.sceneObj;o||(console.warn("sceneObjJson has no type! treeItem.sceneObj: "),console.warn(s.sceneObj)),o&&pS.includes(o)&&e.push(s.sceneObj)}}}return e}async function mS(r,e){const t=gS(r);let n=0;const i=t.length;for(let s of t)if(++n,e){const o=n/i;e(o,n,i)}}class uy extends V{constructor(t,n){super();d(this,"treeItemContexMenuCallback");this._sceneTree=t,this._projectManager=n}get sceneTree(){return this._sceneTree}}class vS extends V{constructor(t){super();d(this,"_jsonLoadingEvent",this.disposeVar(new O));d(this,"_setJsonProcessing",this.disposeVar(Yn(async(t,n)=>{this._jsonLoadingEvent.emit({type:"init"}),this._jsonLoadingEvent.emit({type:"loading"}),n&&await t.promise(this._sceneTree.preloadFunc(n)),this._setJson(n),this._jsonLoadingEvent.emit({type:"loaded"})})));this._sceneTree=t,this._setJsonProcessing.errorFunc=n=>{this._jsonLoadingEvent.emit({type:"error",error:n})}}get jsonLoadingEvent(){return this._jsonLoadingEvent}_setJson(t){try{this._sceneTree.setJson(t||{})}catch(n){console.error(`json数据装配时发生错误!error: ${n}`)}}get json(){return this._sceneTree.getJson()}set json(t){this._setJsonProcessing.restart(new Fr("JSON重新赋值!"),t)}get jsonStr(){return JSON.stringify(this.json,void 0," ")}set jsonStr(t){this.json=JSON.parse(t)}}function yS(r){return r.name+"_clone"}function Xd(r,e,t){if(r instanceof yn)return r.insertNewTreeItem(e,t);{const n={FolderInnerOrAfter:"InnerOrAfter",FolderInnerOrBefore:"InnerOrBefore",FolderInner:"Inner",InnerOrAfter:"InnerOrAfter",InnerOrBefore:"InnerOrBefore",Inner:"Inner",After:"After",Before:"Before"};return r.insertNewTreeItem(n[e],t)}}function _S(r){[r,...r.getDescendants()].forEach(e=>e.destroy())}const Hn=class Hn extends ra{constructor(t,n,i,s){super(i);d(this,"_jsonLoading",this.disposeVar(new vS(this)));d(this,"createSceneObjectFunc",Hn.defaultCreateSceneObjectFunc);d(this,"createTreeItemDragDropFunc",Hn.defaultCreateTreeItemDragDropFunc);d(this,"preloadFunc",Hn.defaultPreload);d(this,"getSceneObjectShowFunc",Hn.defaultGetSceneObjectShow);d(this,"setSceneObjectShowFunc",Hn.defaultSetSceneObjectShow);d(this,"getSceneTreeItemCloneNameFunc",Hn.defaultGetSceneTreeItemCloneNameFunc);d(this,"debug",!1);d(this,"_contextMenu",this.disposeVar(new uy(this,this.projectManager)));d(this,"_showPropUiOnSelecting",this.disposeVar(j(!0)));this._name=t,this._dragStartDataManager=n,this._projectManager=s,this.dispose(this.selectedItems.changedEvent.disposableOn(()=>{var a,u;globalThis.lssn=this.lastSelectedItem,globalThis.lsso=(a=this.lastSelectedItem)==null?void 0:a.sceneObject,this.debug&&console.log(((u=this.lastSelectedItem)==null?void 0:u.sceneObject)??"select null")}));const{sceneObjectsManager:o}=this._projectManager;this.dispose(this.itemsDeleted.disposableOn(a=>{for(let u of a){const l=u,{sceneObject:c}=l;c&&o.deleteSceneObject(c)&&c.destroy()&&ql(c,void 0);for(let h of l.getDescendants()){const{sceneObject:f}=h;f&&o.deleteSceneObject(f)&&f.destroy()&&ql(f,void 0)}_S(u)}})),this.dispose(this.itemsAdded.disposableOn(a=>{for(let u of a){const l=u;l.sceneObject&&o.addSceneObject(l.sceneObject)&&ql(l.sceneObject,l)}})),this.dispose(this.selectedItems.changedEvent.disposableOn(()=>{if(!this.showPropUiOnSelecting)return;this._projectManager.propUiTreeManager.sceneObject=void 0;const{lastSelectedItem:a}=this;a&&(this._projectManager.propUiTreeManager.sceneObject=a.sceneObject)}))}get json(){return this._jsonLoading.json}set json(t){this._jsonLoading.json=t}get jsonStr(){return this._jsonLoading.jsonStr}set jsonStr(t){this._jsonLoading.jsonStr=t}get jsonLoadingEvent(){return this._jsonLoading.jsonLoadingEvent}get name(){return this._name}get projectManager(){return this._projectManager}get contextMenu(){return this._contextMenu}get showPropUiOnSelecting(){return this._showPropUiOnSelecting.value}set showPropUiOnSelecting(t){this._showPropUiOnSelecting.value=t}get showPropUiOnSelectingChanged(){return this._showPropUiOnSelecting.changed}get sceneUiTree(){return this.uiTree}getTreeItemFromSceneObjId(t){const n=this.getDescendants();let i;for(let s of n)if(s.sceneObject&&s.sceneObject.id===t){i=s;break}return i}getTreeItemsFromSceneObjType(t){const n=this.getDescendants(),i=[],s=Array.isArray(t)?t:[t];for(let o of n)o.sceneObject&&s.includes(o.sceneObject.typeName)&&i.push(o);return i}getTreeItemsFromSceneObjName(t){var s;const n=this.getDescendants(),i=[];for(let o of n)(s=o.sceneObject)!=null&&s.name.includes(t)&&i.push(o);return i}get dragStartDataManager(){return this._dragStartDataManager}get completeJson(){return{root:{children:[...this.children].filter(t=>t.isExport).map(t=>t.completeJson)}}}getJson(){return{root:{children:[...this.children].filter(t=>t.isExport).map(t=>t.json)}}}setJson(t){var i;t.root=t.root||{};const n=t.root.children??[];this.root.resetChildren(!0);for(let s of n){const o=new yn(this,!0);o.json=s,(i=this.root.children)==null||i.push(o)}}testAddNewTreeItem(t,n){const i=t||this.lastSelectedItem||this.root;return i?Xd(i,n):!1}addNewTreeItem(t,n,i,s){const o=t||this.lastSelectedItem||this.root;if(o&&Xd(o,n)){const a=new yn(this,i);if(a.sceneObject=s,!Xd(o,n,a))throw new Error("currentTreeItem.insertNewTreeItem return false!");return a}}createSceneObjectTreeItem(t,n,i,s){const o=s??"FolderInnerOrAfter";if(!this.testAddNewTreeItem(i,o)){console.warn(`cannot addNewTreeItem! currentTreeItem(${i?i.id:"root"})`);return}const a=rt.create(t,n);return a?this.addNewTreeItem(i,s??"FolderInnerOrAfter",!0,a):void 0}createGroupTreeItem(t,n,i,s){const o=s??"FolderInnerOrAfter";if(!this.testAddNewTreeItem(i,o)){console.warn(`cannot addNewTreeItem! currentTreeItem(${i?i.id:"root"})`);return}const a=this.addNewTreeItem(i,s??"FolderInnerOrAfter",!0);if(!a){console.warn("addNewTreeItem error!");return}return a.name=t??"未命名组节点",a}createSceneObjectTreeItemFromClass(t,n,i,s){const o=s??"FolderInnerOrAfter";if(!this.testAddNewTreeItem(i,o))return;const a=rt.createFromClass(t,n);return a?this.addNewTreeItem(i,o,!0,a):void 0}createSceneObjectTreeItemFromJson(t,n,i){const s=i??"FolderInnerOrAfter";if(!this.testAddNewTreeItem(n,s))return;const o=rt.createFromJson(t);return console.log(o),o?this.addNewTreeItem(n,i??"FolderInnerOrAfter",!0,o):void 0}destroySceneObjectTreeItem(t){if(t===this.root){console.warn("cannot destroy root! please use function destroyAllSceneObjectTreeItems!");return}t.detachFromParent()}destroyAllSceneObjectTreeItems(){if(!this.root.children)return;const t=[...this.root.children];for(let n of t)this.destroySceneObjectTreeItem(n)}};d(Hn,"defaultCreateSceneObjectFunc",cS),d(Hn,"defaultCreateTreeItemDragDropFunc",hS),d(Hn,"defaultPreload",mS),d(Hn,"defaultGetSceneObjectShow",dS),d(Hn,"defaultSetSceneObjectShow",fS),d(Hn,"defaultGetSceneTreeItemCloneNameFunc",yS);let pl=Hn;const Yd={saturation:.35,brightness:1.4,gamma:.8,atmosphereScatteringIntensity:5,groundColor:[0,.09411764705882353,.3137254901960784,1]};class wS extends V{constructor(t){super();d(this,"_currentPosition",this.disposeVar(re(void 0)));d(this,"_currentRotation",this.disposeVar(re(void 0)));d(this,"_currentHeading",this.disposeVar(j(void 0)));d(this,"_isRotating",this.disposeVar(j(!1)));d(this,"_isGround",this.disposeVar(j(!1)));d(this,"_startPosition",[0,0,0]);d(this,"_startRotation",[0,0,0]);d(this,"_processing",this.disposeVar(Yn(async(t,n,i,s)=>{const{currentPosition:o,currentRotation:a}=this;if(!o||s<=0||!a){this._currentPosition.value=n,this._currentRotation.value=i;return}const u=this._startPosition;u.splice(0,3,...o);const l=this._startRotation;l.splice(0,3,...a);let c=Date.now();const h=Bu(u,n);this._currentHeading.value=h;const p=Ql(u,n)/s,v=[i[0]-l[0],i[1]-l[1],i[2]-l[2]],C=n[2]-u[2];await t.promise(new Promise(S=>{t.disposer.dispose(Rl(async()=>{let P=Date.now()-c;P=P<0?0:P,P=P>s?s:P;const y=P*p,_=om(u,y,h);if(this.isGround&&_){const m=await this._esviewer.getTerrainHeight([_[0],_[1]]);this._currentPosition.value=[_[0],_[1],m??0]}else _&&(_[2]+=C*(P/s)),this._currentPosition.value=_;if(this.isRotating){const[m,w,E]=v,b=P/s;this._currentRotation.value=[l[0]+m*b,l[1]+w*b,l[2]+E*b]}P===s&&(this._currentPosition.value=n,this.isRotating&&(this._currentRotation.value=i),this.isRotating=!1,this.isGround=!1,S())}))}))})));this._esviewer=t}get currentPosition(){return this._currentPosition.value}get currentPositionChanged(){return this._currentPosition.changed}get currentRotation(){return this._currentRotation.value}get currentRotationChanged(){return this._currentRotation.changed}get currentHeading(){return this._currentHeading.value}get currentHeadingChanged(){return this._currentHeading.changed}get isRotating(){return this._isRotating.value}set isRotating(t){this._isRotating.value=t}get isRotatingChanged(){return this._isRotating.changed}get isGround(){return this._isGround.value}set isGround(t){this._isGround.value=t}get isGroundChanged(){return this._isGround.changed}get processing(){return this._processing}restart(t,n,i){this._processing.restart(void 0,t,n,i)}cancel(){this._processing.cancel()}}function ly(r){let e=0;function t(n,i){i++,e=Math.max(i,e),n.forEach(s=>{Array.isArray(s)&&t(s,i)})}return t(r,0),e}const Di=class Di extends Ht{constructor(t){super(t);d(this,"editingBindMode","lineString");d(this,"_area",this.dv(j(0)));d(this,"_perimeter",this.dv(j(0)));this.d(Ui(this.pointsChanged,()=>{this._updateArea(),this._updatePerimeter()},{immediate:!0}))}updateEditing(){var n;const t=[];this.editingBindMode=="doublePoints"?t.push(et.DoublePointsAppend,et.DoublePointsModify):this.editingBindMode=="lineString"?t.push(et.LineStringAppend,et.LineStringInsert,et.Translation):this.editingBindMode=="circular"?(t.push(et.CircularAppend,et.CircularInsert,et.Translation),this.supportEditingModes().includes(et.HeightModify)&&t.push(et.HeightModify)):this.editingBindMode=="visibility"?t.push(et.VisibilityAppend,et.VisibilityModify):this.editingBindMode=="scatter"&&t.push(et.ScatterAppend,et.ScatterModify),(n=this.activeViewer)==null||n.startEditing(this,t,{callSource:"inner"})}get area(){return this._area.value}get areaChanged(){return this._area.changed}get perimeter(){return this._perimeter.value}get perimeterChanged(){return this._perimeter.changed}_updateArea(){this._area.value=this.getArea()??0}_updatePerimeter(){this._perimeter.value=this.getPerimeter()??0}getArea(){if(this.points&&this.points.length>=3)return td([...this.points])}getDistance(){if(this.points&&this.points.length>=2){const t=fl(this.points,"GEODESIC");return t[t.length-1]}else return}getPerimeter(){if(this.points&&this.points.length>=3){const t=[...this.points,this.points[0]],n=fl(t,"GEODESIC");return n[n.length-1]}else return}getIntersect(t){if(this.points&&this.points.length>=3&&t.length>=3){const n=qv(this.points,t);if(!n)return;const i=n[0][0][0];if(Array.isArray(i)){const s=[...n],o=[];return s.forEach(a=>{const u=a[0].map(l=>[...l,0]);o.push(u)}),o}else return[[...n][0].map(a=>[...a,0])]}else return}getUnion(t){if(this.points&&this.points.length>=3&&t.length>=3){const n=Xv(this.points,t);if(!n)return;const i=n[0][0][0];if(Array.isArray(i)){const s=[...n],o=[];return s.forEach(a=>{const u=a[0].map(l=>[...l,0]);o.push(u)}),o}else return[[...n][0].map(a=>[...a,0])]}else return}getDifference(t){if(this.points&&this.points.length>=3&&t.length>=3){let n=[...t];const i=t[0],s=t[t.length-1];i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]||n.push(i);const o=Jv([...this.points,this.points[0]],[...n]);if(!o)return{status:"undefined",positions:void 0};const a=[...o];if(ly(a)===3){const u=a.map(f=>f.map(p=>[...p,0]));if(u.length<=1)return{status:"notIncluded",positions:u};const l=u[0],c=u[1];return Bd([...l],[...c])==="oneBig"?{status:"included",positions:u}:{status:"notIncluded",positions:u}}else if(ly(a)===4){const l=[...a.map(h=>h.map(f=>f.map(p=>[...p,0])))],c=[];return l.forEach(h=>{c.push(h[0])}),{status:"notIncluded",positions:c}}else return{status:"undefined",positions:void 0}}else return{status:"undefined",positions:void 0}}getBuffer(t=500,n){if(this.points&&this.points.length>=2){const i=Yv(this.points,t,n);return i?[i[0].map(s=>[...s,0])]:void 0}else return}geoPolygonOverlap(t){if(this.points&&this.points.length>=3&&t.length>=3){const n=Bd(this.points,t);return n==="oneBig"?!0:n==="twoBig"?!1:void 0}else return}getESProperties(){const t={...super.getESProperties()};return{...t,defaultMenu:"style",coordinate:[...t.coordinate,new X([this,"editing"],"编辑",!1),new it([this,"points"],"位置数组",Di.defaults.points,void 0,!0)],style:[...t.style,new ut([],"点样式"),new X([this,"pointed"],"开启",!1),new M([this,"pointSize"],"点大小",1),new Pt([this,"pointSizeType"],[["screen","screen"],["world","world"]],"点类型","screen"),new Mt([this,"pointColor"],"点颜色",[1,1,1,1]),new Mt([this,"pointOutlineColor"],"轮廓颜色",Di.defaults.pointStyle.outlineColor),new M([this,"pointOutlineWidth"],"轮廓宽度",Di.defaults.pointStyle.outlineWidth),new ut([],"线样式"),new X([this,"stroked"],"开启线样式",!0),new X([this,"strokeGround"],"贴地",!1),new M([this,"strokeWidth"],"线宽",1),new Pt([this,"strokeWidthType"],[["screen","screen"],["world","world"]],"线类型","screen"),new Mt([this,"strokeColor"],"线颜色",[1,1,1,1]),new ut([],"面样式"),new X([this,"filled"],"开启",!1),new X([this,"fillGround"],"贴地",!1),new Mt([this,"fillColor"],"填充颜色",[1,1,1,1])],more:[...t.more,new ut([],"点样式集合"),new pt([this,"pointMaterial"],"点材质"),new it([this,"pointMaterialParams"],"点材质参数"),new ut([],"线样式集合"),new pt([this,"strokeMaterial"],"线材质"),new it([this,"strokeMaterialParams"],"线材质参数"),new ut([],"面样式集合"),new pt([this,"fillMaterial"],"面材质"),new it([this,"fillMaterialParams"],"面材质参数")]}}get pointSize(){return this.pointStyle.size}set pointSize(t){this.pointStyle={...this.pointStyle,size:t}}get pointSizeChanged(){return this.pointStyleChanged}get pointSizeType(){return this.pointStyle.sizeType}set pointSizeType(t){this.pointStyle={...this.pointStyle,sizeType:t}}get pointSizeTypeChanged(){return this.pointStyleChanged}get pointColor(){return this.pointStyle.color}set pointColor(t){this.pointStyle={...this.pointStyle,color:[...t]}}get pointColorChanged(){return this.pointStyleChanged}get pointOutlineColor(){return this.pointStyle.outlineColor}set pointOutlineColor(t){this.pointStyle={...this.pointStyle,outlineColor:[...t]}}get pointOutlineColorChanged(){return this.pointStyleChanged}get pointOutlineWidth(){return this.pointStyle.outlineWidth}set pointOutlineWidth(t){this.pointStyle={...this.pointStyle,outlineWidth:t}}get pointOutlineWidthChanged(){return this.pointStyleChanged}get pointMaterial(){return this.pointStyle.material}set pointMaterial(t){this.pointStyle={...this.pointStyle,material:t}}get pointMaterialChanged(){return this.pointStyleChanged}get pointMaterialParams(){return this.pointStyle.materialParams}set pointMaterialParams(t){this.pointStyle={...this.pointStyle,materialParams:t}}get pointMaterialParamsChanged(){return this.pointStyleChanged}get strokeWidth(){return this.strokeStyle.width}set strokeWidth(t){this.strokeStyle={...this.strokeStyle,width:t}}get strokeWidthChanged(){return this.strokeStyleChanged}get strokeWidthType(){return this.strokeStyle.widthType}set strokeWidthType(t){this.strokeStyle={...this.strokeStyle,widthType:t}}get strokeWidthTypeChanged(){return this.strokeStyleChanged}get strokeColor(){return this.strokeStyle.color}set strokeColor(t){this.strokeStyle={...this.strokeStyle,color:[...t]}}get strokeColorChanged(){return this.strokeStyleChanged}get strokeMaterial(){return this.strokeStyle.material}set strokeMaterial(t){this.strokeStyle={...this.strokeStyle,material:t}}get strokeMaterialChanged(){return this.strokeStyleChanged}get strokeMaterialParams(){return this.strokeStyle.materialParams}set strokeMaterialParams(t){this.strokeStyle={...this.strokeStyle,materialParams:t}}get strokeMaterialParamsChanged(){return this.strokeStyleChanged}get strokeGround(){return this.strokeStyle.ground}set strokeGround(t){this.strokeStyle={...this.strokeStyle,ground:t}}get strokeGroundChanged(){return this.strokeStyleChanged}get fillColor(){return this.fillStyle.color}set fillColor(t){this.fillStyle={...this.fillStyle,color:[...t]}}get fillColorChanged(){return this.fillStyleChanged}get fillMaterial(){return this.fillStyle.material}set fillMaterial(t){this.fillStyle={...this.fillStyle,material:t}}get fillMaterialChanged(){return this.fillStyleChanged}get fillMaterialParams(){return this.fillStyle.materialParams}set fillMaterialParams(t){this.fillStyle={...this.fillStyle,materialParams:t}}get fillMaterialParamsChanged(){return this.fillStyleChanged}get fillGround(){return this.fillStyle.ground}set fillGround(t){this.fillStyle={...this.fillStyle,ground:t}}get fillGroundChanged(){return this.fillStyleChanged}};d(Di,"createDefaultProps",()=>({...Ht.createDefaultProps(),pointed:!1,pointStyle:wt({size:10,sizeType:"screen",color:[1,1,1,1],material:"",materialParams:{},outlineColor:[1,0,0,1],outlineWidth:2}),stroked:!1,strokeStyle:wt({width:1,widthType:"screen",color:[1,1,1,1],material:"",materialParams:{},ground:!1}),filled:!1,fillStyle:wt({color:[1,1,1,1],material:"",materialParams:{},ground:!1}),points:Nl([])})),d(Di,"type",Di.register("ESGeoVector",Di,{chsName:"地理矢量",tags:["ESObjects"],description:"地理矢量"})),d(Di,"supportEditingModes",[...Ht.supportEditingModes,et.Translation]);let It=Di;const To=class To extends Ht{constructor(){super(...arguments);d(this,"_statusDis",this.dv(j(!0)));d(this,"_smoothMoveEvent",this.dv(new O));d(this,"_smoothMoveWithRotationEvent",this.dv(new O));d(this,"_smoothMoveOnGroundEvent",this.dv(new O));d(this,"_smoothMoveWithRotationOnGroundEvent",this.dv(new O));d(this,"_automaticLandingEvent",this.dv(new O));d(this,"_smoothMoveKeepPitchEvent",this.dv(new O));d(this,"_smoothMoveRelativelyEvent",this.dv(new O));d(this,"_smoothMoveRelativelyWithRotationEvent",this.dv(new O));d(this,"useCalcFlyToParamInESObjectWithLocation",!0)}updateEditing(){var n;const t=[];this.editingBindMode=="singlePoint"?(t.push(et.Place,et.Translation),["ESLocationMeasurement"].includes(this.typeName)||t.push(et.Rotation),["ESClippingPlane","ESLocationMeasurement","ESLocalRectangle","ESBoxClipping"].includes(this.typeName)||t.push(et.Scale)):this.editingBindMode=="doublePoints"&&t.push(et.DoublePointsAppend,et.DoublePointsModify),(n=this.activeViewer)==null||n.startEditing(this,t,{callSource:"inner"})}get statusDis(){return this._statusDis.value}get statusDisChanged(){return this._statusDis.changed}get smoothMoveEvent(){return this._smoothMoveEvent}smoothMove(t,n){this._smoothMoveEvent.emit(t,n)}get smoothMoveWithRotationEvent(){return this._smoothMoveWithRotationEvent}smoothMoveWithRotation(t,n,i){this._smoothMoveWithRotationEvent.emit(t,n,i)}get smoothMoveOnGroundEvent(){return this._smoothMoveOnGroundEvent}smoothMoveOnGround(t,n,i,s){this._smoothMoveOnGroundEvent.emit(t,n,i,s)}get smoothMoveWithRotationOnGroundEvent(){return this._smoothMoveWithRotationOnGroundEvent}smoothMoveWithRotationOnGround(t,n,i,s,o){this._smoothMoveWithRotationOnGroundEvent.emit(t,n,i,s,o)}get automaticLandingEvent(){return this._automaticLandingEvent}automaticLanding(){const t=this.collision;this.collision=!1,setTimeout(()=>{this._automaticLandingEvent.emit(t)},100)}get smoothMoveKeepPitchEvent(){return this._smoothMoveKeepPitchEvent}smoothMoveKeepPitch(t,n){this._smoothMoveKeepPitchEvent.emit(t,n)}get smoothMoveRelativelyEvent(){return this._smoothMoveRelativelyEvent}smoothMoveRelatively(t,n){this._smoothMoveRelativelyEvent.emit(t,n)}get smoothMoveRelativelyWithRotationEvent(){return this._smoothMoveRelativelyWithRotationEvent}smoothMoveRelativelyWithRotation(t,n,i){this._smoothMoveRelativelyWithRotationEvent.emit(t,n,i)}getESProperties(){const t={...super.getESProperties()};return{...t,defaultMenu:"basic",location:[...t.location,new X([this,"editing"],"是否编辑"),new lt([],()=>this.automaticLanding(),[],"自动落地"),new ia([this,"position"],"位置数组",[0,0,0]),new Gh([this,"rotation"],"姿态数组",[0,0,0]),new cn([this,"scale"],"缩放",[1,1,1]),new M([this,"minVisibleDistance"],"最小可见距离",0),new M([this,"maxVisibleDistance"],"最大可见距离",0)],more:[...t.more,new lt(["numbers","number"],(n,i)=>this.smoothMove(n,i),[[0,0,0],0],"平滑移动","smoothMove"),new lt(["numbers","number"],(n,i)=>this.smoothMoveKeepPitch(n,i),[[0,0,0],0],"固定方向平滑移动","smoothMoveKeepPitch"),new lt(["numbers","numbers","number"],(n,i,s)=>this.smoothMoveWithRotation(n,i,s),[[0,0,0],[0,0,0],0],"平滑偏移","smoothMoveWithRotation"),new lt(["number","number","number","string"],(n,i,s,o)=>this.smoothMoveOnGround(n,i,s,o),[0,0,0,""],"贴地平滑移动","smoothMoveOnGround"),new lt(["numbers","number","number","number","string"],(n,i,s,o,a)=>this.smoothMoveWithRotationOnGround(n,i,s,o,a),[[0,0,0],0,0,0,""],"贴地平滑偏移","smoothMoveWithRotationOnGround"),new lt(["numbers","number"],(n,i)=>this.smoothMoveRelatively(n,i),[[0,0,0],0],"smoothMoveRelatively","smoothMoveRelatively"),new lt(["numbers","numbers","number"],(n,i,s)=>this.smoothMoveRelativelyWithRotation(n,i,s),[[0,0,0],[0,0,0],0],"smoothMoveRelativelyWithRotation","smoothMoveRelativelyWithRotation"),new X([this,"enableVisibleDistance"],"是否应用距离显隐")]}}get pointSize(){return this.pointStyle.size}set pointSize(t){this.pointStyle={...this.pointStyle,size:t}}get pointSizeChanged(){return this.pointStyleChanged}get pointSizeType(){return this.pointStyle.sizeType}set pointSizeType(t){this.pointStyle={...this.pointStyle,sizeType:t}}get pointSizeTypeChanged(){return this.pointStyleChanged}get pointColor(){return this.pointStyle.color}set pointColor(t){this.pointStyle={...this.pointStyle,color:[...t]}}get pointColorChanged(){return this.pointStyleChanged}get pointMaterial(){return this.pointStyle.material}set pointMaterial(t){this.pointStyle={...this.pointStyle,material:t}}get pointMaterialChanged(){return this.pointStyleChanged}get pointMaterialParams(){return this.pointStyle.materialParams}set pointMaterialParams(t){this.pointStyle={...this.pointStyle,materialParams:t}}get pointMaterialParamsChanged(){return this.pointStyleChanged}};d(To,"createDefaultProps",()=>({...Ht.createDefaultProps(),pointed:!1,pointStyle:wt({size:1,sizeType:"screen",color:[1,1,1,1],material:"",materialParams:{},outlineColor:[1,0,0,1],outlineWidth:2}),position:ht([0,0,0]),rotation:ht([0,0,0]),scale:ht([1,1,1]),minVisibleDistance:j(0),maxVisibleDistance:j(0)})),d(To,"type",To.register("ESObjectWithLocation",To,{chsName:"对象位置",tags:["ESObjects"],description:"对象位置"})),d(To,"supportEditingModes",[...Ht.supportEditingModes,et.Place,et.Translation,et.Rotation,et.Scale,et.DoublePointsAppend,et.DoublePointsModify]);let st=To;const Wa=class Wa extends st{getESProperties(){const e={...super.getESProperties()};return{...e,style:[...e.style,new ut([],"点样式集合"),new X([this,"pointed"],"开启点样式",!1),new M([this,"pointSize"],"点大小",1),new Pt([this,"pointSizeType"],[["screen","screen"],["world","world"]],"点类型","screen"),new Mt([this,"pointColor"],"点颜色",[1,1,1,1]),new ut([],"线样式集合"),new X([this,"stroked"],"开启线样式",!1),new X([this,"strokeGround"],"是否贴地(线)",!1),new M([this,"strokeWidth"],"线宽",1),new Pt([this,"strokeWidthType"],[["screen","screen"],["world","world"]],"线类型","screen"),new Mt([this,"strokeColor"],"线颜色",[1,1,1,1]),new ut([],"面样式集合"),new X([this,"filled"],"开启填充样式",!1),new X([this,"fillGround"],"是否贴地",!1),new Mt([this,"fillColor"],"填充颜色",[1,1,1,1])],more:[...e.more,new ut([],"点样式"),new pt([this,"pointMaterial"],"点材质",""),new it([this,"pointMaterialParams"],"点材质参数",{}),new ut([],"线样式"),new pt([this,"strokeMaterial"],"线材质",""),new it([this,"strokeMaterialParams"],"线材质参数",{}),new ut([],"填充样式"),new pt([this,"fillMaterial"],"面材质",""),new it([this,"fillMaterialParams"],"面材质参数",{})]}}get strokeWidth(){return this.strokeStyle.width}set strokeWidth(e){this.strokeStyle={...this.strokeStyle,width:e}}get strokeWidthChanged(){return this.strokeStyleChanged}get strokeWidthType(){return this.strokeStyle.widthType}set strokeWidthType(e){this.strokeStyle={...this.strokeStyle,widthType:e}}get strokeWidthTypeChanged(){return this.strokeStyleChanged}get strokeColor(){return this.strokeStyle.color}set strokeColor(e){this.strokeStyle={...this.strokeStyle,color:[...e]}}get strokeColorChanged(){return this.strokeStyleChanged}get strokeMaterial(){return this.strokeStyle.material}set strokeMaterial(e){this.strokeStyle={...this.strokeStyle,material:e}}get strokeMaterialChanged(){return this.strokeStyleChanged}get strokeMaterialParams(){return this.strokeStyle.materialParams}set strokeMaterialParams(e){this.strokeStyle={...this.strokeStyle,materialParams:e}}get strokeMaterialParamsChanged(){return this.strokeStyleChanged}get strokeGround(){return this.strokeStyle.ground}set strokeGround(e){this.strokeStyle={...this.strokeStyle,ground:e}}get strokeGroundChanged(){return this.strokeStyleChanged}get fillColor(){return this.fillStyle.color}set fillColor(e){this.fillStyle={...this.fillStyle,color:[...e]}}get fillColorChanged(){return this.fillStyleChanged}get fillMaterial(){return this.fillStyle.material}set fillMaterial(e){this.fillStyle={...this.fillStyle,material:e}}get fillMaterialChanged(){return this.fillStyleChanged}get fillMaterialParams(){return this.fillStyle.materialParams}set fillMaterialParams(e){this.fillStyle={...this.fillStyle,materialParams:e}}get fillMaterialParamsChanged(){return this.fillStyleChanged}get fillGround(){return this.fillStyle.ground}set fillGround(e){this.fillStyle={...this.fillStyle,ground:e}}get fillGroundChanged(){return this.fillStyleChanged}};d(Wa,"createDefaultProps",()=>({...st.createDefaultProps(),pointed:!1,pointStyle:wt({size:1,sizeType:"screen",color:[1,1,1,1],material:"",materialParams:{},outlineColor:[1,0,0,1],outlineWidth:1}),stroked:!1,strokeStyle:wt({width:1,widthType:"screen",color:[1,1,1,1],material:"",materialParams:{},ground:!1}),filled:!1,fillStyle:wt({color:[1,1,1,1],material:"",materialParams:{},ground:!1})})),d(Wa,"type",Wa.register("ESLocalVector",Wa,{chsName:"本地矢量",tags:["ESObjects"],description:"本地矢量对象"}));let Va=Wa;const Sl=class Sl extends Va{};d(Sl,"type",Sl.register("ESLocalVector2D",Sl,{chsName:"本地矢量2D",tags:["ESObjects"],description:"本地矢量2D对象"}));let us=Sl;const ES=[["固定朝向",0],["面向屏幕旋转",1],["绕自身Z轴旋转",2]],CS=[["单面不透明",0],["双面不透明",1],["单面遮罩",2],["双面遮罩",3],["单面透明",4],["双面透明",5],["单面未遮挡透明",6],["双面未遮挡透明",7]],Ha=class Ha extends st{constructor(){super(...arguments);d(this,"_widgetEvent",this.dv(new O))}get widgetEvent(){return this._widgetEvent}getESProperties(){const t={...super.getESProperties()};return{...t,basic:[...t.basic,new X([this,"screenRender"],"屏幕渲染",!0),new X([this,"sizeByContent"],"尺寸自适应",!0),new Ae([this,"size"],"尺寸大小",[100,100]),new Ae([this,"anchor"],"偏移比例",[.5,1]),new Ae([this,"offset"],"像素偏移",[0,0]),new Pt([this,"renderMode"],CS,"渲染模式",0),new Pt([this,"rotationType"],ES,"漫游旋转类型",1),new pt([this,"actorTag"],"绑定对象"),new pt([this,"socketName"],"插槽名称"),new cn([this,"positionOffset"],"位置偏移"),new cn([this,"rotationOffset"],"相对姿态")],more:[...t.more,new M([this,"zOrder"],"排序",0)]}}};d(Ha,"createDefaultProps",()=>({...st.createDefaultProps(),screenRender:!0,size:ht([100,100]),anchor:ht([.5,1]),offset:ht([0,0]),sizeByContent:!0,renderMode:0,rotationType:1,zOrder:0,actorTag:"",socketName:"",positionOffset:ht([0,0,0]),rotationOffset:ht([0,0,0])})),d(Ha,"type",Ha.register("ESLabel",Ha,{chsName:"标签",tags:["ESObjects"],description:"标签对象"}));let ar=Ha;const qa=class qa extends rt{constructor(e){super(e)}};d(qa,"createDefaultProps",()=>({...rt.createDefaultProps(),show:!0,fillStyle:wt({color:[1,1,1,1],material:"",materialParams:{},ground:!1})})),d(qa,"type",qa.register("ESTestObject",qa,{chsName:"测试",tags:["ESObjects"],description:""}));let Jd=qa;const Mi=class Mi extends Ht{constructor(t){super(t);d(this,"_refreshTilesetEvent",this.dv(new O));d(this,"_tilesetReadyEvent",this.dv(new O));d(this,"_supportEdit",this.dv(j(!0)));d(this,"_highlightFeatureEvent",this.dv(new O));d(this,"_highlightFeatureAndFlyToEvent",this.dv(new O));d(this,"_strokeFeatureEvent",this.disposeVar(new O));d(this,"_getFeatureTableEvent",this.dv(new O));d(this,"_featureTableResultEvent",this.dv(new O));d(this,"_getMaterialNameListEvent",this.disposeVar(new O));d(this,"_setFeatureStyleEvent",this.dv(new O));d(this,"_setFeatureColorEvent",this.dv(new O));d(this,"_setFeatureVisableEvent",this.dv(new O));d(this,"_resetFeatureStyleEvent",this.dv(new O));d(this,"setMaterialInfoEvent",this.ad(new O));d(this,"_setMaterialEvent",this.disposeVar(new O));d(this,"_clippingPlanesId",this.dv(j("")));d(this,"_clippingPlaneIds",this.dv(j([])));d(this,"_flattenedPlaneId",this.dv(j("")));d(this,"_flattenedPlaneEnabled",this.dv(j(!1)));d(this,"_clippingPlaneId",this.dv(j("")));d(this,"_excavateId",this.dv(ht([])))}updateEditing(){var t;(t=this.activeViewer)==null||t.startEditing(this,[et.Translation,et.Rotation],{callSource:"inner"})}get refreshTilesetEvent(){return this._refreshTilesetEvent}refreshTileset(){this._refreshTilesetEvent.emit()}get tilesetReady(){return this._tilesetReadyEvent}get supportEdit(){return this._supportEdit.value}set supportEdit(t){this._supportEdit.value=t}get supportEditChanged(){return this._supportEdit.changed}get highlightFeatureEvent(){return this._highlightFeatureEvent}highlightFeature(t,n){this._highlightFeatureEvent.emit(t,n)}get highlightFeatureAndFlyToEvent(){return this._highlightFeatureAndFlyToEvent}highlightFeatureAndFlyTo(t,n,i,s){this._highlightFeatureAndFlyToEvent.emit(t,n,i,s)}get strokeFeatureEvent(){return this._strokeFeatureEvent}strokeFeature(t,n=[1,0,0,1]){this._strokeFeatureEvent.emit(t,n)}get getFeatureTableEvent(){return this._getFeatureTableEvent}getFeatureTable(){return Promise.race([new Promise(t=>{const n=this.d(this._featureTableResultEvent.donce(t));this._getFeatureTableEvent.emit(),setTimeout(()=>{n(),t(void 0)},2e3)})])}get getMaterialNameListEvent(){return this._getMaterialNameListEvent}getMaterialNameList(){return new Promise(t=>{const n=new V;n.d(this.getMaterialNameListEvent.don(i=>{i!=="start"&&(n.destroy(),t(i))})),this.getMaterialNameListEvent.emit("start"),setTimeout(()=>{n.isDestroyed()||(n.destroy(),t(void 0))},2e3)})}get setFeatureStyleEvent(){return this._setFeatureStyleEvent}setFeatureStyle(t){this._setFeatureStyleEvent.emit(t)}get setFeatureColorEvent(){return this._setFeatureColorEvent}setFeatureColor(t,n){this._setFeatureColorEvent.emit(t,typeof n=="string"?JSON.parse(n):n)}get setFeatureVisableEvent(){return this._setFeatureVisableEvent}setFeatureVisable(t,n){this._setFeatureVisableEvent.emit(t,typeof n=="string"?JSON.parse(n):n)}get resetFeatureStyleEvent(){return this._resetFeatureStyleEvent}resetFeatureStyle(){this._resetFeatureStyleEvent.emit()}get setMaterialEvent(){return this._setMaterialEvent}setMaterial(t){return new Promise(n=>{const i=new V;i.ad(this.setMaterialInfoEvent.donce(s=>{i.destroy(),n(s)})),this._setMaterialEvent.emit(t)})}get clippingPlanesId(){return this._clippingPlanesId.value}set clippingPlanesId(t){this._clippingPlanesId.value=t}get clippingPlanesIdChanged(){return this._clippingPlanesId.changed}get clippingPlaneIds(){return this._clippingPlaneIds.value}set clippingPlaneIds(t){this._clippingPlaneIds.value=t}get clippingPlaneIdsChanged(){return this._clippingPlaneIds.changed}get flattenedPlaneId(){return this._flattenedPlaneId.value}set flattenedPlaneId(t){this._flattenedPlaneId.value=t}get flattenedPlaneIdChanged(){return this._flattenedPlaneId.changed}get flattenedPlaneEnabled(){return this._flattenedPlaneEnabled.value}set flattenedPlaneEnabled(t){this._flattenedPlaneEnabled.value=t}get flattenedPlaneEnabledChanged(){return this._flattenedPlaneEnabled.changed}get clippingPlaneId(){return this._clippingPlaneId.value}set clippingPlaneId(t){this._clippingPlaneId.value=t}get clippingPlaneIdChanged(){return this._clippingPlaneId.changed}get excavateId(){return this._excavateId.value}set excavateId(t){this._excavateId.value=t}get excavateIdChanged(){return this._excavateId.changed}setLight122(){this.czmEnvironmentMapManager={...Yd}}getESProperties(){const t={...super.getESProperties()};return{...t,defaultMenu:"dataSource",basic:[...t.basic,new Ue([this,"maximumScreenSpaceError"],1,[0,256],"精度",16),new Pt([this,"materialMode"],[["常规","normal"],["科技感","technology"]],"材质模式","normal",!0),new Pt([this,"colorBlendMode"],[["默认","HIGHLIGHT"],["替换","REPLACE"],["混合","MIX"]],"颜色模式","HIGHLIGHT"),new it([this,"materialOverrideMap"],"材质替换",Mi.defaults.materialOverrideMap)],dataSource:[...t.dataSource,new it([this,"url"],"服务地址",Mi.defaults.url,void 0,!0)],coordinate:[...t.coordinate,new X([this,"editing"],"编辑",!1,!0),new cn([this,"offset"],"偏移",[0,0,0],!0),new Gh([this,"rotation"],"旋转",[0,0,0])],more:[...t.more,new it([this,"materialParams"],"materialParams",Mi.defaults.materialParams),new lt(["string","string"],(n,i)=>this.highlightFeature(n,i),["","rgba(255,0,0,1)"],"highlightFeature"),new lt(["string","string"],(n,i)=>this.setFeatureColor(n,i),["",""],"setFeatureColor"),new lt(["string","string"],(n,i)=>this.setFeatureVisable(n,i),["",""],"setFeatureVisable"),new lt([],()=>this.resetFeatureStyle(),[],"resetFeatureStyle"),new ut([],"ue"),new lt([],()=>this.refreshTileset(),[],"refreshTileset"),new pt([this,"actorTag"]),new X([this,"highlight"],"是否高亮"),new Mt([this,"highlightColor"]),new M([this,"highlightID"]),new ut([],"czm"),new ut([],"可视化"),new Ae([this,"czmImageBasedLightingFactor"],"反射强度"),new M([this,"czmAtmosphereScatteringIntensity"],"大气散射强度"),new it([this,"czmEnvironmentMapManager"],"动态环境贴图管理器"),new M([this,"czmMaximumMemoryUsage"],"最大内存"),new ut([],"常用"),new Pt([this,"czmClassificationType"],[["NONE","NONE"],["TERRAIN","TERRAIN"],["CESIUM_3D_TILE","CESIUM_3D_TILE"],["BOTH","BOTH"]],"czmClassificationType","NONE",!0),new it([this,"czmStyleJson"],"czmStyle"),new X([this,"czmBackFaceCulling"]),new X([this,"czmSkipLevelOfDetail"]),new M([this,"cacheBytes"],"最大缓存",512*1024*1024),new ut([],"调试信息"),new X([this,"czmDebugShowBoundingVolume"]),new X([this,"czmDebugShowContentBoundingVolume"]),new ut([],"clippingPlanes"),new X([this,"clippingPlaneEnabled"]),new X([this,"unionClippingRegions"]),new Mt([this,"clippingPlaneEdgeColor"]),new M([this,"clippingPlaneEdgeWidth"])]}}};d(Mi,"createDefaultProps",()=>({...Ht.createDefaultProps(),url:"",actorTag:"",materialMode:"normal",highlight:!1,maximumScreenSpaceError:16,highlightID:0,highlightColor:ht([1,0,0,1]),offset:re([0,0,0]),rotation:ht([0,0,0]),czmImageBasedLightingFactor:ht([1,1]),czmEnvironmentMapManager:Qt(void 0),czmLuminanceAtZenith:2,czmAtmosphereScatteringIntensity:2,czmMaximumMemoryUsage:512,czmClassificationType:"NONE",czmStyleJson:wt({}),czmBackFaceCulling:!0,czmDebugShowBoundingVolume:!1,czmDebugShowContentBoundingVolume:!1,czmSkipLevelOfDetail:!1,cacheBytes:512*1024*1024,colorBlendMode:"HIGHLIGHT",clippingPlaneEnabled:!0,unionClippingRegions:!0,clippingPlaneEdgeColor:ht([1,1,1,1]),clippingPlaneEdgeWidth:2,materialParams:{baseColor:[0,.5,1]},allowPicking:!0,materialOverrideMap:Qt({}),featureIdLabel:0,splitDirection:"NONE"})),d(Mi,"type",Mi.register("ES3DTileset",Mi,{chsName:"3DTileset",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"3DTileset"})),d(Mi,"supportEditingModes",[...Ht.supportEditingModes,et.Translation,et.Rotation]);let Tr=Mi;const Xa=class Xa extends st{constructor(t){super(t);d(this,"_isFlyInCreated",this.dv(j(!1)));d(this,"_readyEvent",this.dv(new O));this.collision=!1,this.d(this.createdEvent.don(()=>{setTimeout(()=>{if((this.editing??!1)||!this.position)this.d(Ui([this.positionChanged,this.editingChanged],()=>{this.editing||!this.position||this.isFlyInCreated&&this.flyTo()},{time:"donce"}));else{if(!this.isFlyInCreated)return;this.flyTo()}},1e3)}))}get isFlyInCreated(){return this._isFlyInCreated.value}set isFlyInCreated(t){this._isFlyInCreated.value=t}get isFlyInCreatedChanged(){return this._isFlyInCreated.changed}get readyEvent(){return this._readyEvent}getESProperties(){const t={...super.getESProperties()};return{...t,basic:[...t.basic,new Pt([this,"mode"],[["柱状警告","cylinder"],["圆形警告","circle"]],"模式","cylinder"),new M([this,"radius"],"半径",10)]}}};d(Xa,"createDefaultProps",()=>({...st.createDefaultProps(),mode:"cylinder",radius:10})),d(Xa,"type",Xa.register("ESAlarm",Xa,{chsName:"报警",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"警告类"}));let $d=Xa;const SS=[["扫描","scan"],["扩散","diffuse"]],Gs=class Gs extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new M([this,"radius"],"半径",1),new Pt([this,"mode"],SS,"模式",Gs.defaults.mode),new Mt([this,"color"],"颜色",Gs.defaults.color)]}}};d(Gs,"createDefaultProps",()=>({...st.createDefaultProps(),radius:1,mode:"scan",color:[0,.7,1,1],collision:!1})),d(Gs,"type",Gs.register("ESApertureEffect",Gs,{chsName:"光圈特效",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"光圈特效"}));let Kd=Gs;const Oo=class Oo extends It{constructor(t){super(t);d(this,"editingBindMode","circular")}getESProperties(){const t={...super.getESProperties()};return{...t,coordinate:[...t.coordinate,new M([this,"area"],"面积",0,!1,!0),new M([this,"perimeter"],"周长",0,!1,!0)]}}};d(Oo,"createDefaultProps",()=>({...It.createDefaultProps(),fillStyle:wt({color:[1,1,1,.5],material:"",materialParams:{},ground:!1}),strokeStyle:wt({width:1,widthType:"screen",color:[1,1,1,1],material:"",materialParams:{},ground:!1}),filled:!0,stroked:!1,collision:!1})),d(Oo,"type",Oo.register("ESGeoPolygon",Oo,{chsName:"地理多边形",tags:["ESObjects"],description:"地理多边形"})),d(Oo,"supportEditingModes",[...It.supportEditingModes,et.CircularAppend,et.CircularInsert]);let Xt=Oo;const ls=class ls extends Xt{get fillMaterial(){return this.fillStyle.material}set fillMaterial(e){this.fillStyle={...this.fillStyle,material:e}}get fillMaterialParams(){return this.fillStyle?this.fillStyle.materialParams:ls.defaults.fillStyle.materialParams}set fillMaterialParams(e){this.fillStyle={...this.fillStyle??ls.defaults.fillStyle,materialParams:e??ls.defaults.fillStyle.materialParams}}constructor(e){super(e)}};d(ls,"createDefaultProps",()=>({...Xt.createDefaultProps(),stroked:!0,filled:!0,units:ht(["SquareMeter_SquareKilometer","MU_Hectare","PerimeterMeter_PerimeterKilometer"]),fillStyle:wt({color:[1,1,1,1],material:"Material'/EarthSDKForUE/M_ES_Material.M_ES_Material'",materialParams:{Opacity:.4},ground:!0}),strokeStyle:wt({width:2,widthType:"screen",color:[1,1,1,1],material:"",materialParams:{},ground:!1})})),d(ls,"type",ls.register("ESAreaMeasurement",ls,{chsName:"面积测量",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE","_ES_Impl_Ol"],description:"面积测量"}));let Zd=ls;const Ya=class Ya extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,defaultMenu:"general",more:[...e.more,new ut([],"czm"),new Fu([this,"image"],"图片"),new cn([this,"translation"],"偏移")]}}};d(Ya,"createDefaultProps",()=>({...st.createDefaultProps(),image:"${earthsdk3-assets-script-dir}/assets/img/smoke.png",translation:ht([0,0,0])})),d(Ya,"type",Ya.register("ESBlastParticleSystem",Ya,{chsName:"粒子爆炸",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"粒子爆炸"}));let Qd=Ya;const oi=class oi extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new X([this,"reverse"],"反转",oi.defaults.reverse),new cn([this,"size"],"尺寸",oi.defaults.size),new Mt([this,"edgeColor"],"边框颜色",oi.defaults.edgeColor),new M([this,"edgeWidth"],"边框宽度",oi.defaults.edgeWidth),new pt([this,"targetID"],"瓦片图层",oi.defaults.targetID)]}}};d(oi,"createDefaultProps",()=>({...st.createDefaultProps(),reverse:!1,edgeColor:ht([1,1,1,1]),edgeWidth:2,size:ht([10,10,10]),targetID:""})),d(oi,"type",oi.register("ESBoxClipping",oi,{chsName:"体剖切",tags:["ESObjects","_ES_Impl_Cesium"],description:"体剖切,体裁剪,体裁切,盒裁切"}));let tf=oi;const bl=class bl extends st{constructor(){super(...arguments);d(this,"_thumbnail",this.dv(j("")));d(this,"_duration",this.dv(j(1)));d(this,"_resetWithCurrentCameraEvent",this.dv(new O));d(this,"_captureEvent",this.dv(new O))}get thumbnail(){return this._thumbnail.value}set thumbnail(t){this._thumbnail.value=t}get thumbnailChanged(){return this._thumbnail.changed}get duration(){return this._duration.value}set duration(t){this._duration.value=t}get durationChanged(){return this._duration.changed}flyIn(t=1,n="default"){this.flyInEvent.emit(t,-1,n)}get resetWithCurrentCameraEvent(){return this._resetWithCurrentCameraEvent}resetWithCurrentCamera(){this._resetWithCurrentCameraEvent.emit()}get captureEvent(){return this._captureEvent}capture(t,n){this._captureEvent.emit(t,n)}execOnCreating(){this.resetWithCurrentCamera()}async initByCurrent(){this.resetWithCurrentCamera()}getESProperties(){const t={...super.getESProperties()};return{...t,more:[...t.more,new ut([],"ESCameraView"),new lt([],()=>this.resetWithCurrentCamera(),[],"设置为当前视角"),new lt(["number","number"],(n,i)=>this.capture(n,i),[64,64],"获取缩略图"),new pt([this,"thumbnail"],"缩略图","",!0),new M([this,"duration"],"飞行时间",1,!0)]}}};d(bl,"type",bl.register("ESCameraView",bl,{chsName:"视角",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"视角"}));let Fc=bl;class Ac extends V{constructor(t,n,i){super();d(this,"_view",this.dv(new Fc));if(this.d(t.components.disposableAdd(this._view)),this._view.name=(i==null?void 0:i.name)??`视角${t.views.length+1}`,n){const a=this._view,u=n;a.duration=u.duration??1,a.position=u.position,a.rotation=u.rotation??[0,0,0],a.thumbnail=u.thumbnail??"",a.name=u.name}else{const a=(i==null?void 0:i.size)??[64,64];this.d($o(()=>{this._view.resetWithCurrentCamera(),this._view.capture(a[0],a[1])}))}const s=this._view,o=this.dv(Ie(s.durationChanged,s.positionChanged,s.rotationChanged,s.thumbnailChanged,s.nameChanged));this.d(o.don(()=>t.emitViewsWarpper()))}get view(){return this._view}get viewInfo(){const t=this._view;return{duration:t.duration,position:t.position,rotation:t.rotation,thumbnail:t.thumbnail,name:t.name}}}const Or=class Or extends rt{constructor(t){super(t);d(this,"_currentViewIndex",this.dv(j(-1)));d(this,"_viewWrappers",this.dv(new xu));d(this,"_currentViewWrapper",this.dv(j(void 0)));d(this,"_container",this.dv(j(void 0)));this.initProcessing();{const n=()=>{if(!this._currentViewWrapper.value)return;this._viewWrappers.indexOf(this._currentViewWrapper.value)===-1&&(this._currentViewWrapper.value=void 0)};n(),this.d(this._viewWrappers.changedEvent.don(n))}{const n=()=>{const i=this._currentViewWrapper.value;this._currentViewIndex.value=i?this._getIndex(i):-1};n(),this.d(this._viewWrappers.changedEvent.don(n)),this.d(this._currentViewWrapper.changed.don(n))}this.d(()=>{this.clearAllViews()})}get json(){return{...this._innerGetJson(),views:this.views}}set json(t){this._innerSetJson(t),this.views=t.views}get currentViewIndex(){return this._currentViewIndex.value}get currentViewIndexChanged(){return this._currentViewIndex.changed}emitViewsWarpper(){this._viewWrappers.changedEvent.emit(this._viewWrappers)}get container(){return this._container.value}get containerChanged(){return this._container.changed}set container(t){this._container.value=t}get views(){return ry(this._viewWrappers,t=>t.viewInfo)}get viewsChanged(){return this._viewWrappers.changedEvent}set views(t){if(t.length===this._viewWrappers.length){const n=this._viewWrappers;if(t.every((i,s)=>{const o=n.get(s).view;return i.duration===o.duration&&qd(i.position,o.position)&&qd(i.rotation,o.rotation)&&i.thumbnail===o.thumbnail&&i.name===o.name}))return}this.clearAllViews();for(let n of t)this._viewWrappers.push(new Ac(this,n))}_getIndex(t){return this._viewWrappers.indexOf(t)}clearAllViews(){for(let t of this._viewWrappers)t.destroy();this._viewWrappers.length=0}add(t=`视角${this.views.length+1}`,n=[64,64]){this._viewWrappers.push(new Ac(this,void 0,{name:t,size:n}))}update(t,n,i=[64,64]){if(t>=this._viewWrappers.length||t<0)return console.warn("index >= this._viewWrappers.length || index < 0"),!1;const s=this._viewWrappers.get(t);return n&&(s.view.name=n),s.view.resetWithCurrentCamera(),s.view.capture(i[0],i[1]),!0}addView(){this._viewWrappers.push(new Ac(this))}insertView(t){if(this._viewWrappers.length+1<=t||t<0){console.error("this._views.length <= index || index < 0");return}this._viewWrappers.splice(t,0,new Ac(this))}setCurrentView(t){if(t>=this._viewWrappers.length||t<0)return console.warn("index >= this._viewWrappers.length || index < 0"),!1;const n=this._viewWrappers.get(t);return this._currentViewWrapper.value=n,!0}resetView(t){if(t>=this._viewWrappers.length||t<0){console.warn("index >= this._viewWrappers.length || index < 0");return}const n=this._viewWrappers.get(t);n.view.resetWithCurrentCamera(),n.view.capture()}resetViewName(t,n){if(t>=this._viewWrappers.length||t<0){console.warn("index >= this._viewWrappers.length || index < 0");return}const i=this._viewWrappers.get(t);i.view.name=n}updateView(t,n){if(t>=this._viewWrappers.length||t<0)return console.warn("index >= this._viewWrappers.length || index < 0"),!1;const i=this._viewWrappers.get(t);return i.view.position=n.position,i.view.rotation=n.rotation??[0,0,0],i.view.duration=n.duration??1,i.view.thumbnail=n.thumbnail??"",i.view.name=n.name??"",!0}flyToView(t){if(this.setCurrentView(t)){if(!this._currentViewWrapper.value)throw new Error("this._currentViewWrapper.value");const n=this._currentViewWrapper.value.view.duration;this._currentViewWrapper.value.view.flyIn(n,this.flyMode??Or.defaults.flyMode)}}flyToPrevView(){const t=this._currentViewWrapper.value;if(!t)return this.flyToView(0),!0;const n=this._getIndex(t);return this.loop??Or.defaults.loop?(this.flyToView((this._viewWrappers.length+n-1)%this._viewWrappers.length),!0):n-1<0?!1:(this.flyToView(n-1),!0)}moveToPreView(){const t=this._currentViewWrapper.value;if(!t)return;const n=this._getIndex(t);if(n===0)return;const i=this._viewWrappers.splice(n-1,1,t)[0];this._viewWrappers.set(n,i)}moveToNextView(){const t=this._currentViewWrapper.value;if(!t)return;const n=this._getIndex(t);if(n===this._viewWrappers.length-1)return;const i=this._viewWrappers.splice(n+1,1,t)[0];this._viewWrappers.set(n,i)}flyToNextView(){const t=this._currentViewWrapper.value;if(!t)return this.flyToView(0),!0;const n=this._getIndex(t);return this.loop??Or.defaults.loop?(this.flyToView((n+1)%this._viewWrappers.length),!0):n+1>this._viewWrappers.length-1?!1:(this.flyToView(n+1),!0)}stop(){this._currentViewWrapper.value=void 0,this.playing=!1}deleteView(t){if(t<0||t>=this._viewWrappers.length){console.warn("index < 0 || index >= this._viewWrappers.length");return}this._viewWrappers.get(t).destroy(),this._viewWrappers.splice(t,1)}deleteCurrentView(){const t=this._currentViewWrapper.value;if(!t){console.warn("!this._currentViewWrapper.value");return}const n=this._getIndex(t);if(n===-1){console.warn("index === -1");return}this.deleteView(n)}transitionImageUrl(t){return rt.context.getStrFromEnv(t)}_flyStep(t){var o;if(!this.flyToNextView())return this.playing=!1,Promise.resolve();const n=this.intervalTime??Or.defaults.intervalTime,s=((((o=this._currentViewWrapper.value)==null?void 0:o.viewInfo.duration)??0)+n)*1e3;return t.promise(Nu(s)).then(()=>this._flyStep(t))}initProcessing(){const t=this.dv(Yn(async i=>this._flyStep(i))),n=()=>{this.playing?t.restart():t.cancel()};n(),this.d(this.playingChanged.don(n))}getESProperties(){const t={...super.getESProperties()};return{...t,more:[...t.more,new Pt([this,"flyMode"],[["默认","default"],["直线飞行","uniform"]],"飞行模式",Or.defaults.flyMode),new lt([],()=>this.addView(),[],"添加视角"),new lt(["number"],n=>this.insertView(n),[0],"插入视角"),new lt([],()=>this.clearAllViews(),[],"清空所有视角"),new lt([],()=>this.insertView(this.currentViewIndex+1),[],"当前位置插入视角"),new lt([],()=>this.flyToPrevView(),[],"上一个视角"),new lt([],()=>this.flyToNextView(),[],"下一个视角"),new lt([],()=>this.moveToPreView(),[],"当前视角移动到上一个视角"),new lt([],()=>this.moveToNextView(),[],"当前视角移动到下一个视角"),new lt(["number"],n=>this.flyToView(n),[0],"飞入指定视角"),new lt(["number"],n=>this.setCurrentView(n),[0],"设置当前视角"),new lt([],()=>this.deleteCurrentView(),[],"删除当前视角"),new lt(["number"],n=>this.deleteView(n),[0],"删除指定视角"),new lt(["number"],n=>this.resetView(n),[0],"重置视角"),new M([this,"currentViewIndex"],"当前序号",-1,!1,!0),new Rg([this,"playing"],()=>this.stop(),[this,"loop"],"播放",Or.defaults),new X([this,"playing"],"是否播放"),new lt([],()=>this.stop(),[],"停止"),new X([this,"loop"],"是否循环"),new M([this,"intervalTime"],"间隔时间"),new it([this,"views"],"视角集合",[],void 0,!0)]}}};d(Or,"createDefaultProps",()=>({...rt.createDefaultProps(),playing:!1,loop:!0,intervalTime:5,flyMode:"default"})),d(Or,"type",Or.register("ESCameraViewCollection",Or,{chsName:"视角集合",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"视角集合"}));let kc=Or;const Ja=class Ja extends st{constructor(t){super(t);d(this,"editingBindMode","doublePoints")}getESProperties(){const t={...super.getESProperties()};return{...t,basic:[...t.basic,new M([this,"aspectRatio"],"宽高比",1.77778),new M([this,"fov"],"横向夹角",90),new M([this,"far"],"视野长度",100),new M([this,"near"],"近面距离",5)]}}};d(Ja,"createDefaultProps",()=>({...st.createDefaultProps(),fov:90,aspectRatio:1.77778,far:100,near:5,collision:!1})),d(Ja,"type",Ja.register("ESCameraVisibleRange",Ja,{chsName:"摄像头可视域",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"摄像头可视域"}));let ef=Ja;const $a=class $a extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new Pt([this,"mode"],[["警车","policeCar"]],"模式","policeCar")]}}};d($a,"createDefaultProps",()=>({...st.createDefaultProps(),mode:"policeCar",allowPicking:!0})),d($a,"type",$a.register("ESCar",$a,{chsName:"车辆",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"警车等基础车辆模型"}));let Vc=$a;const No=class No extends It{constructor(t){super(t);d(this,"editingBindMode","circular")}getESProperties(){const t={...super.getESProperties()};return{...t,basic:[...t.basic,new M([this,"height"],"高度",10)],coordinate:[...t.coordinate,new M([this,"area"],"面积",0,!1,!0),new M([this,"perimeter"],"周长",0,!1,!0)]}}};d(No,"createDefaultProps",()=>({...It.createDefaultProps(),height:10,filled:!0,fillStyle:wt({material:"",materialParams:{},ground:!0,color:[1,1,1,1]})})),d(No,"type",No.register("ESClassification",No,{chsName:"倾斜单体化",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"平尾箭头"})),d(No,"supportEditingModes",[...It.supportEditingModes,et.CircularAppend,et.CircularInsert,et.HeightModify]);let jc=No;const Ka=class Ka extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new X([this,"showArrow"],"显示箭头",!0),new Mt([this,"edgeColor"],"线框颜色",[1,1,1,1]),new M([this,"edgetWidth"],"线框宽度",2),new M([this,"width"],"裁剪宽度",200),new M([this,"height"],"裁剪高度",200),new pt([this,"targetID"],"瓦片图层","")]}}};d(Ka,"createDefaultProps",()=>({...st.createDefaultProps(),showArrow:!0,edgeColor:ht([1,1,1,1]),edgetWidth:2,width:200,height:200,targetID:""})),d(Ka,"type",Ka.register("ESClippingPlane",Ka,{chsName:"裁切",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"ESClippingPlane"}));let nf=Ka;class bS extends V{constructor(e,t,n){super();const i=document.createElement("div");i.setAttribute("xe2-div",`ESCustomDiv(${t.id})(viewer: ${n.id}) container`);{const u=()=>{const c=` ${t.cssText}
65
+ `);var s=e+(t?" ":"│ ");r.left&&Md(r.left,s,!1,n,i),r.right&&Md(r.right,s,!0,n,i)}}var Rd=function(){function r(e){e===void 0&&(e=RC),this._root=null,this._size=0,this._comparator=e}return r.prototype.insert=function(e,t){return this._size++,this._root=Dd(e,t,this._root,this._comparator)},r.prototype.add=function(e,t){var n=new ks(e,t);this._root===null&&(n.left=n.right=null,this._size++,this._root=n);var i=this._comparator,s=Vs(e,this._root,i),o=i(e,s.key);return o===0?this._root=s:(o<0?(n.left=s.left,n.right=s,s.left=null):o>0&&(n.right=s.right,n.left=s,s.right=null),this._size++,this._root=n),this._root},r.prototype.remove=function(e){this._root=this._remove(e,this._root,this._comparator)},r.prototype._remove=function(e,t,n){var i;if(t===null)return null;t=Vs(e,t,n);var s=n(e,t.key);return s===0?(t.left===null?i=t.right:(i=Vs(e,t.left,n),i.right=t.right),this._size--,i):t},r.prototype.pop=function(){var e=this._root;if(e){for(;e.left;)e=e.left;return this._root=Vs(e.key,this._root,this._comparator),this._root=this._remove(e.key,this._root,this._comparator),{key:e.key,data:e.data}}return null},r.prototype.findStatic=function(e){for(var t=this._root,n=this._comparator;t;){var i=n(e,t.key);if(i===0)return t;i<0?t=t.left:t=t.right}return null},r.prototype.find=function(e){return this._root&&(this._root=Vs(e,this._root,this._comparator),this._comparator(e,this._root.key)!==0)?null:this._root},r.prototype.contains=function(e){for(var t=this._root,n=this._comparator;t;){var i=n(e,t.key);if(i===0)return!0;i<0?t=t.left:t=t.right}return!1},r.prototype.forEach=function(e,t){for(var n=this._root,i=[],s=!1;!s;)n!==null?(i.push(n),n=n.left):i.length!==0?(n=i.pop(),e.call(t,n),n=n.right):s=!0;return this},r.prototype.range=function(e,t,n,i){for(var s=[],o=this._comparator,a=this._root,u;s.length!==0||a;)if(a)s.push(a),a=a.left;else{if(a=s.pop(),u=o(a.key,t),u>0)break;if(o(a.key,e)>=0&&n.call(i,a))return this;a=a.right}return this},r.prototype.keys=function(){var e=[];return this.forEach(function(t){var n=t.key;return e.push(n)}),e},r.prototype.values=function(){var e=[];return this.forEach(function(t){var n=t.data;return e.push(n)}),e},r.prototype.min=function(){return this._root?this.minNode(this._root).key:null},r.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},r.prototype.minNode=function(e){if(e===void 0&&(e=this._root),e)for(;e.left;)e=e.left;return e},r.prototype.maxNode=function(e){if(e===void 0&&(e=this._root),e)for(;e.right;)e=e.right;return e},r.prototype.at=function(e){for(var t=this._root,n=!1,i=0,s=[];!n;)if(t)s.push(t),t=t.left;else if(s.length>0){if(t=s.pop(),i===e)return t;i++,t=t.right}else n=!0;return null},r.prototype.next=function(e){var t=this._root,n=null;if(e.right){for(n=e.right;n.left;)n=n.left;return n}for(var i=this._comparator;t;){var s=i(e.key,t.key);if(s===0)break;s<0?(n=t,t=t.left):t=t.right}return n},r.prototype.prev=function(e){var t=this._root,n=null;if(e.left!==null){for(n=e.left;n.right;)n=n.right;return n}for(var i=this._comparator;t;){var s=i(e.key,t.key);if(s===0)break;s<0?t=t.left:(n=t,t=t.right)}return n},r.prototype.clear=function(){return this._root=null,this._size=0,this},r.prototype.toList=function(){return AC(this._root)},r.prototype.load=function(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!1);var i=e.length,s=this._comparator;if(n&&Ad(e,t,0,i-1,s),this._root===null)this._root=Ld(e,t,0,i),this._size=i;else{var o=kC(this.toList(),FC(e,t),s);i=this._size+i,this._root=Fd({head:o},0,i)}return this},r.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(r.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),r.prototype.toString=function(e){e===void 0&&(e=function(n){return String(n.key)});var t=[];return Md(this._root,"",!0,function(n){return t.push(n)},e),t.join("")},r.prototype.update=function(e,t,n){var i=this._comparator,s=Mv(e,this._root,i),o=s.left,a=s.right;i(e,t)<0?a=Dd(t,n,a,i):o=Dd(t,n,o,i),this._root=LC(o,a,i)},r.prototype.split=function(e){return Mv(e,this._root,this._comparator)},r.prototype[Symbol.iterator]=function(){var e,t,n;return MC(this,function(i){switch(i.label){case 0:e=this._root,t=[],n=!1,i.label=1;case 1:return n?[3,6]:e===null?[3,2]:(t.push(e),e=e.left,[3,5]);case 2:return t.length===0?[3,4]:(e=t.pop(),[4,e]);case 3:return i.sent(),e=e.right,[3,5];case 4:n=!0,i.label=5;case 5:return[3,1];case 6:return[2]}})},r}();function Ld(r,e,t,n){var i=n-t;if(i>0){var s=t+Math.floor(i/2),o=r[s],a=e[s],u=new ks(o,a);return u.left=Ld(r,e,t,s),u.right=Ld(r,e,s+1,n),u}return null}function FC(r,e){for(var t=new ks(null,null),n=t,i=0;i<r.length;i++)n=n.next=new ks(r[i],e[i]);return n.next=null,t.next}function AC(r){for(var e=r,t=[],n=!1,i=new ks(null,null),s=i;!n;)e?(t.push(e),e=e.left):t.length>0?(e=s=s.next=t.pop(),e=e.right):n=!0;return s.next=null,i.next}function Fd(r,e,t){var n=t-e;if(n>0){var i=e+Math.floor(n/2),s=Fd(r,e,i),o=r.head;return o.left=s,r.head=r.head.next,o.right=Fd(r,i+1,t),o}return null}function kC(r,e,t){for(var n=new ks(null,null),i=n,s=r,o=e;s!==null&&o!==null;)t(s.key,o.key)<0?(i.next=s,s=s.next):(i.next=o,o=o.next),i=i.next;return s!==null?i.next=s:o!==null&&(i.next=o),n.next}function Ad(r,e,t,n,i){if(!(t>=n)){for(var s=r[t+n>>1],o=t-1,a=n+1;;){do o++;while(i(r[o],s)<0);do a--;while(i(r[a],s)>0);if(o>=a)break;var u=r[o];r[o]=r[a],r[a]=u,u=e[o],e[o]=e[a],e[a]=u}Ad(r,e,t,a,i),Ad(r,e,a+1,n,i)}}const as=11102230246251565e-32,vn=134217729,VC=(3+8*as)*as;function kd(r,e,t,n,i){let s,o,a,u,l=e[0],c=n[0],h=0,f=0;c>l==c>-l?(s=l,l=e[++h]):(s=c,c=n[++f]);let p=0;if(h<r&&f<t)for(c>l==c>-l?(o=l+s,a=s-(o-l),l=e[++h]):(o=c+s,a=s-(o-c),c=n[++f]),s=o,a!==0&&(i[p++]=a);h<r&&f<t;)c>l==c>-l?(o=s+l,u=o-s,a=s-(o-u)+(l-u),l=e[++h]):(o=s+c,u=o-s,a=s-(o-u)+(c-u),c=n[++f]),s=o,a!==0&&(i[p++]=a);for(;h<r;)o=s+l,u=o-s,a=s-(o-u)+(l-u),l=e[++h],s=o,a!==0&&(i[p++]=a);for(;f<t;)o=s+c,u=o-s,a=s-(o-u)+(c-u),c=n[++f],s=o,a!==0&&(i[p++]=a);return(s!==0||p===0)&&(i[p++]=s),p}function jC(r,e){let t=e[0];for(let n=1;n<r;n++)t+=e[n];return t}function cl(r){return new Float64Array(r)}const BC=(3+16*as)*as,zC=(2+12*as)*as,UC=(9+64*as)*as*as,Aa=cl(4),Rv=cl(8),Lv=cl(12),Fv=cl(16),Ln=cl(4);function GC(r,e,t,n,i,s,o){let a,u,l,c,h,f,p,v,C,S,P,y,_,m,w,E,b,I;const T=r-i,D=t-i,x=e-s,N=n-s;m=T*N,f=vn*T,p=f-(f-T),v=T-p,f=vn*N,C=f-(f-N),S=N-C,w=v*S-(m-p*C-v*C-p*S),E=x*D,f=vn*x,p=f-(f-x),v=x-p,f=vn*D,C=f-(f-D),S=D-C,b=v*S-(E-p*C-v*C-p*S),P=w-b,h=w-P,Aa[0]=w-(P+h)+(h-b),y=m+P,h=y-m,_=m-(y-h)+(P-h),P=_-E,h=_-P,Aa[1]=_-(P+h)+(h-E),I=y+P,h=I-y,Aa[2]=y-(I-h)+(P-h),Aa[3]=I;let L=jC(4,Aa),A=zC*o;if(L>=A||-L>=A||(h=r-T,a=r-(T+h)+(h-i),h=t-D,l=t-(D+h)+(h-i),h=e-x,u=e-(x+h)+(h-s),h=n-N,c=n-(N+h)+(h-s),a===0&&u===0&&l===0&&c===0)||(A=UC*o+VC*Math.abs(L),L+=T*c+N*a-(x*l+D*u),L>=A||-L>=A))return L;m=a*N,f=vn*a,p=f-(f-a),v=a-p,f=vn*N,C=f-(f-N),S=N-C,w=v*S-(m-p*C-v*C-p*S),E=u*D,f=vn*u,p=f-(f-u),v=u-p,f=vn*D,C=f-(f-D),S=D-C,b=v*S-(E-p*C-v*C-p*S),P=w-b,h=w-P,Ln[0]=w-(P+h)+(h-b),y=m+P,h=y-m,_=m-(y-h)+(P-h),P=_-E,h=_-P,Ln[1]=_-(P+h)+(h-E),I=y+P,h=I-y,Ln[2]=y-(I-h)+(P-h),Ln[3]=I;const J=kd(4,Aa,4,Ln,Rv);m=T*c,f=vn*T,p=f-(f-T),v=T-p,f=vn*c,C=f-(f-c),S=c-C,w=v*S-(m-p*C-v*C-p*S),E=x*l,f=vn*x,p=f-(f-x),v=x-p,f=vn*l,C=f-(f-l),S=l-C,b=v*S-(E-p*C-v*C-p*S),P=w-b,h=w-P,Ln[0]=w-(P+h)+(h-b),y=m+P,h=y-m,_=m-(y-h)+(P-h),P=_-E,h=_-P,Ln[1]=_-(P+h)+(h-E),I=y+P,h=I-y,Ln[2]=y-(I-h)+(P-h),Ln[3]=I;const H=kd(J,Rv,4,Ln,Lv);m=a*c,f=vn*a,p=f-(f-a),v=a-p,f=vn*c,C=f-(f-c),S=c-C,w=v*S-(m-p*C-v*C-p*S),E=u*l,f=vn*u,p=f-(f-u),v=u-p,f=vn*l,C=f-(f-l),S=l-C,b=v*S-(E-p*C-v*C-p*S),P=w-b,h=w-P,Ln[0]=w-(P+h)+(h-b),y=m+P,h=y-m,_=m-(y-h)+(P-h),P=_-E,h=_-P,Ln[1]=_-(P+h)+(h-E),I=y+P,h=I-y,Ln[2]=y-(I-h)+(P-h),Ln[3]=I;const Z=kd(H,Lv,4,Ln,Fv);return Fv[Z-1]}function WC(r,e,t,n,i,s){const o=(e-s)*(t-i),a=(r-i)*(n-s),u=o-a,l=Math.abs(o+a);return Math.abs(u)>=BC*l?u:-GC(r,e,t,n,i,s,l)}const hl=(r,e)=>r.ll.x<=e.x&&e.x<=r.ur.x&&r.ll.y<=e.y&&e.y<=r.ur.y,Vd=(r,e)=>{if(e.ur.x<r.ll.x||r.ur.x<e.ll.x||e.ur.y<r.ll.y||r.ur.y<e.ll.y)return null;const t=r.ll.x<e.ll.x?e.ll.x:r.ll.x,n=r.ur.x<e.ur.x?r.ur.x:e.ur.x,i=r.ll.y<e.ll.y?e.ll.y:r.ll.y,s=r.ur.y<e.ur.y?r.ur.y:e.ur.y;return{ll:{x:t,y:i},ur:{x:n,y:s}}};let js=Number.EPSILON;js===void 0&&(js=Math.pow(2,-52));const HC=js*js,Av=(r,e)=>{if(-js<r&&r<js&&-js<e&&e<js)return 0;const t=r-e;return t*t<HC*r*e?0:r<e?-1:1};class qC{constructor(){this.reset()}reset(){this.xRounder=new kv,this.yRounder=new kv}round(e,t){return{x:this.xRounder.round(e),y:this.yRounder.round(t)}}}class kv{constructor(){this.tree=new Rd,this.round(0)}round(e){const t=this.tree.add(e),n=this.tree.prev(t);if(n!==null&&Av(t.key,n.key)===0)return this.tree.remove(e),n.key;const i=this.tree.next(t);return i!==null&&Av(t.key,i.key)===0?(this.tree.remove(e),i.key):e}}const dl=new qC,Mc=(r,e)=>r.x*e.y-r.y*e.x,Vv=(r,e)=>r.x*e.x+r.y*e.y,jv=(r,e,t)=>{const n=WC(r.x,r.y,e.x,e.y,t.x,t.y);return n>0?-1:n<0?1:0},Rc=r=>Math.sqrt(Vv(r,r)),XC=(r,e,t)=>{const n={x:e.x-r.x,y:e.y-r.y},i={x:t.x-r.x,y:t.y-r.y};return Mc(i,n)/Rc(i)/Rc(n)},YC=(r,e,t)=>{const n={x:e.x-r.x,y:e.y-r.y},i={x:t.x-r.x,y:t.y-r.y};return Vv(i,n)/Rc(i)/Rc(n)},Bv=(r,e,t)=>e.y===0?null:{x:r.x+e.x/e.y*(t-r.y),y:t},zv=(r,e,t)=>e.x===0?null:{x:t,y:r.y+e.y/e.x*(t-r.x)},JC=(r,e,t,n)=>{if(e.x===0)return zv(t,n,r.x);if(n.x===0)return zv(r,e,t.x);if(e.y===0)return Bv(t,n,r.y);if(n.y===0)return Bv(r,e,t.y);const i=Mc(e,n);if(i==0)return null;const s={x:t.x-r.x,y:t.y-r.y},o=Mc(s,e)/i,a=Mc(s,n)/i,u=r.x+a*e.x,l=t.x+o*n.x,c=r.y+a*e.y,h=t.y+o*n.y,f=(u+l)/2,p=(c+h)/2;return{x:f,y:p}};class xr{static compare(e,t){const n=xr.comparePoints(e.point,t.point);return n!==0?n:(e.point!==t.point&&e.link(t),e.isLeft!==t.isLeft?e.isLeft?1:-1:Bs.compare(e.segment,t.segment))}static comparePoints(e,t){return e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0}constructor(e,t){e.events===void 0?e.events=[this]:e.events.push(this),this.point=e,this.isLeft=t}link(e){if(e.point===this.point)throw new Error("Tried to link already linked events");const t=e.point.events;for(let n=0,i=t.length;n<i;n++){const s=t[n];this.point.events.push(s),s.point=this.point}this.checkForConsuming()}checkForConsuming(){const e=this.point.events.length;for(let t=0;t<e;t++){const n=this.point.events[t];if(n.segment.consumedBy===void 0)for(let i=t+1;i<e;i++){const s=this.point.events[i];s.consumedBy===void 0&&n.otherSE.point.events===s.otherSE.point.events&&n.segment.consume(s.segment)}}}getAvailableLinkedEvents(){const e=[];for(let t=0,n=this.point.events.length;t<n;t++){const i=this.point.events[t];i!==this&&!i.segment.ringOut&&i.segment.isInResult()&&e.push(i)}return e}getLeftmostComparator(e){const t=new Map,n=i=>{const s=i.otherSE;t.set(i,{sine:XC(this.point,e.point,s.point),cosine:YC(this.point,e.point,s.point)})};return(i,s)=>{t.has(i)||n(i),t.has(s)||n(s);const{sine:o,cosine:a}=t.get(i),{sine:u,cosine:l}=t.get(s);return o>=0&&u>=0?a<l?1:a>l?-1:0:o<0&&u<0?a<l?-1:a>l?1:0:u<o?-1:u>o?1:0}}}let $C=0;class Bs{static compare(e,t){const n=e.leftSE.point.x,i=t.leftSE.point.x,s=e.rightSE.point.x,o=t.rightSE.point.x;if(o<n)return 1;if(s<i)return-1;const a=e.leftSE.point.y,u=t.leftSE.point.y,l=e.rightSE.point.y,c=t.rightSE.point.y;if(n<i){if(u<a&&u<l)return 1;if(u>a&&u>l)return-1;const h=e.comparePoint(t.leftSE.point);if(h<0)return 1;if(h>0)return-1;const f=t.comparePoint(e.rightSE.point);return f!==0?f:-1}if(n>i){if(a<u&&a<c)return-1;if(a>u&&a>c)return 1;const h=t.comparePoint(e.leftSE.point);if(h!==0)return h;const f=e.comparePoint(t.rightSE.point);return f<0?1:f>0?-1:1}if(a<u)return-1;if(a>u)return 1;if(s<o){const h=t.comparePoint(e.rightSE.point);if(h!==0)return h}if(s>o){const h=e.comparePoint(t.rightSE.point);if(h<0)return 1;if(h>0)return-1}if(s!==o){const h=l-a,f=s-n,p=c-u,v=o-i;if(h>f&&p<v)return 1;if(h<f&&p>v)return-1}return s>o?1:s<o||l<c?-1:l>c?1:e.id<t.id?-1:e.id>t.id?1:0}constructor(e,t,n,i){this.id=++$C,this.leftSE=e,e.segment=this,e.otherSE=t,this.rightSE=t,t.segment=this,t.otherSE=e,this.rings=n,this.windings=i}static fromRing(e,t,n){let i,s,o;const a=xr.comparePoints(e,t);if(a<0)i=e,s=t,o=1;else if(a>0)i=t,s=e,o=-1;else throw new Error(`Tried to create degenerate segment at [${e.x}, ${e.y}]`);const u=new xr(i,!0),l=new xr(s,!1);return new Bs(u,l,[n],[o])}replaceRightSE(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const e=this.leftSE.point.y,t=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:e<t?e:t},ur:{x:this.rightSE.point.x,y:e>t?e:t}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(e){return e.x===this.leftSE.point.x&&e.y===this.leftSE.point.y||e.x===this.rightSE.point.x&&e.y===this.rightSE.point.y}comparePoint(e){if(this.isAnEndpoint(e))return 0;const t=this.leftSE.point,n=this.rightSE.point,i=this.vector();if(t.x===n.x)return e.x===t.x?0:e.x<t.x?1:-1;const s=(e.y-t.y)/i.y,o=t.x+s*i.x;if(e.x===o)return 0;const a=(e.x-t.x)/i.x,u=t.y+a*i.y;return e.y===u?0:e.y<u?-1:1}getIntersection(e){const t=this.bbox(),n=e.bbox(),i=Vd(t,n);if(i===null)return null;const s=this.leftSE.point,o=this.rightSE.point,a=e.leftSE.point,u=e.rightSE.point,l=hl(t,a)&&this.comparePoint(a)===0,c=hl(n,s)&&e.comparePoint(s)===0,h=hl(t,u)&&this.comparePoint(u)===0,f=hl(n,o)&&e.comparePoint(o)===0;if(c&&l)return f&&!h?o:!f&&h?u:null;if(c)return h&&s.x===u.x&&s.y===u.y?null:s;if(l)return f&&o.x===a.x&&o.y===a.y?null:a;if(f&&h)return null;if(f)return o;if(h)return u;const p=JC(s,this.vector(),a,e.vector());return p===null||!hl(i,p)?null:dl.round(p.x,p.y)}split(e){const t=[],n=e.events!==void 0,i=new xr(e,!0),s=new xr(e,!1),o=this.rightSE;this.replaceRightSE(s),t.push(s),t.push(i);const a=new Bs(i,o,this.rings.slice(),this.windings.slice());return xr.comparePoints(a.leftSE.point,a.rightSE.point)>0&&a.swapEvents(),xr.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),n&&(i.checkForConsuming(),s.checkForConsuming()),t}swapEvents(){const e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let t=0,n=this.windings.length;t<n;t++)this.windings[t]*=-1}consume(e){let t=this,n=e;for(;t.consumedBy;)t=t.consumedBy;for(;n.consumedBy;)n=n.consumedBy;const i=Bs.compare(t,n);if(i!==0){if(i>0){const s=t;t=n,n=s}if(t.prev===n){const s=t;t=n,n=s}for(let s=0,o=n.rings.length;s<o;s++){const a=n.rings[s],u=n.windings[s],l=t.rings.indexOf(a);l===-1?(t.rings.push(a),t.windings.push(u)):t.windings[l]+=u}n.rings=null,n.windings=null,n.consumedBy=t,n.leftSE.consumedBy=t.leftSE,n.rightSE.consumedBy=t.rightSE}}prevInResult(){return this._prevInResult!==void 0?this._prevInResult:(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null,this._prevInResult)}beforeState(){if(this._beforeState!==void 0)return this._beforeState;if(!this.prev)this._beforeState={rings:[],windings:[],multiPolys:[]};else{const e=this.prev.consumedBy||this.prev;this._beforeState=e.afterState()}return this._beforeState}afterState(){if(this._afterState!==void 0)return this._afterState;const e=this.beforeState();this._afterState={rings:e.rings.slice(0),windings:e.windings.slice(0),multiPolys:[]};const t=this._afterState.rings,n=this._afterState.windings,i=this._afterState.multiPolys;for(let a=0,u=this.rings.length;a<u;a++){const l=this.rings[a],c=this.windings[a],h=t.indexOf(l);h===-1?(t.push(l),n.push(c)):n[h]+=c}const s=[],o=[];for(let a=0,u=t.length;a<u;a++){if(n[a]===0)continue;const l=t[a],c=l.poly;if(o.indexOf(c)===-1)if(l.isExterior)s.push(c);else{o.indexOf(c)===-1&&o.push(c);const h=s.indexOf(l.poly);h!==-1&&s.splice(h,1)}}for(let a=0,u=s.length;a<u;a++){const l=s[a].multiPoly;i.indexOf(l)===-1&&i.push(l)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(this._isInResult!==void 0)return this._isInResult;const e=this.beforeState().multiPolys,t=this.afterState().multiPolys;switch(ni.type){case"union":{const n=e.length===0,i=t.length===0;this._isInResult=n!==i;break}case"intersection":{let n,i;e.length<t.length?(n=e.length,i=t.length):(n=t.length,i=e.length),this._isInResult=i===ni.numMultiPolys&&n<i;break}case"xor":{const n=Math.abs(e.length-t.length);this._isInResult=n%2===1;break}case"difference":{const n=i=>i.length===1&&i[0].isSubject;this._isInResult=n(e)!==n(t);break}default:throw new Error(`Unrecognized operation type found ${ni.type}`)}return this._isInResult}}class Uv{constructor(e,t,n){if(!Array.isArray(e)||e.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=t,this.isExterior=n,this.segments=[],typeof e[0][0]!="number"||typeof e[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const i=dl.round(e[0][0],e[0][1]);this.bbox={ll:{x:i.x,y:i.y},ur:{x:i.x,y:i.y}};let s=i;for(let o=1,a=e.length;o<a;o++){if(typeof e[o][0]!="number"||typeof e[o][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");let u=dl.round(e[o][0],e[o][1]);u.x===s.x&&u.y===s.y||(this.segments.push(Bs.fromRing(s,u,this)),u.x<this.bbox.ll.x&&(this.bbox.ll.x=u.x),u.y<this.bbox.ll.y&&(this.bbox.ll.y=u.y),u.x>this.bbox.ur.x&&(this.bbox.ur.x=u.x),u.y>this.bbox.ur.y&&(this.bbox.ur.y=u.y),s=u)}(i.x!==s.x||i.y!==s.y)&&this.segments.push(Bs.fromRing(s,i,this))}getSweepEvents(){const e=[];for(let t=0,n=this.segments.length;t<n;t++){const i=this.segments[t];e.push(i.leftSE),e.push(i.rightSE)}return e}}class KC{constructor(e,t){if(!Array.isArray(e))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new Uv(e[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(let n=1,i=e.length;n<i;n++){const s=new Uv(e[n],this,!1);s.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=s.bbox.ll.x),s.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=s.bbox.ll.y),s.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.interiorRings.push(s)}this.multiPoly=t}getSweepEvents(){const e=this.exteriorRing.getSweepEvents();for(let t=0,n=this.interiorRings.length;t<n;t++){const i=this.interiorRings[t].getSweepEvents();for(let s=0,o=i.length;s<o;s++)e.push(i[s])}return e}}class Gv{constructor(e,t){if(!Array.isArray(e))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{typeof e[0][0][0]=="number"&&(e=[e])}catch{}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(let n=0,i=e.length;n<i;n++){const s=new KC(e[n],this);s.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=s.bbox.ll.x),s.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=s.bbox.ll.y),s.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.polys.push(s)}this.isSubject=t}getSweepEvents(){const e=[];for(let t=0,n=this.polys.length;t<n;t++){const i=this.polys[t].getSweepEvents();for(let s=0,o=i.length;s<o;s++)e.push(i[s])}return e}}class Lc{static factory(e){const t=[];for(let n=0,i=e.length;n<i;n++){const s=e[n];if(!s.isInResult()||s.ringOut)continue;let o=null,a=s.leftSE,u=s.rightSE;const l=[a],c=a.point,h=[];for(;o=a,a=u,l.push(a),a.point!==c;)for(;;){const f=a.getAvailableLinkedEvents();if(f.length===0){const C=l[0].point,S=l[l.length-1].point;throw new Error(`Unable to complete output ring starting at [${C.x}, ${C.y}]. Last matching segment found ends at [${S.x}, ${S.y}].`)}if(f.length===1){u=f[0].otherSE;break}let p=null;for(let C=0,S=h.length;C<S;C++)if(h[C].point===a.point){p=C;break}if(p!==null){const C=h.splice(p)[0],S=l.splice(C.index);S.unshift(S[0].otherSE),t.push(new Lc(S.reverse()));continue}h.push({index:l.length,point:a.point});const v=a.getLeftmostComparator(o);u=f.sort(v)[0].otherSE;break}t.push(new Lc(l))}return t}constructor(e){this.events=e;for(let t=0,n=e.length;t<n;t++)e[t].segment.ringOut=this;this.poly=null}getGeom(){let e=this.events[0].point;const t=[e];for(let l=1,c=this.events.length-1;l<c;l++){const h=this.events[l].point,f=this.events[l+1].point;jv(h,e,f)!==0&&(t.push(h),e=h)}if(t.length===1)return null;const n=t[0],i=t[1];jv(n,e,i)===0&&t.shift(),t.push(t[0]);const s=this.isExteriorRing()?1:-1,o=this.isExteriorRing()?0:t.length-1,a=this.isExteriorRing()?t.length:-1,u=[];for(let l=o;l!=a;l+=s)u.push([t[l].x,t[l].y]);return u}isExteriorRing(){if(this._isExteriorRing===void 0){const e=this.enclosingRing();this._isExteriorRing=e?!e.isExteriorRing():!0}return this._isExteriorRing}enclosingRing(){return this._enclosingRing===void 0&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}_calcEnclosingRing(){let e=this.events[0];for(let i=1,s=this.events.length;i<s;i++){const o=this.events[i];xr.compare(e,o)>0&&(e=o)}let t=e.segment.prevInResult(),n=t?t.prevInResult():null;for(;;){if(!t)return null;if(!n)return t.ringOut;if(n.ringOut!==t.ringOut)return n.ringOut.enclosingRing()!==t.ringOut?t.ringOut:t.ringOut.enclosingRing();t=n.prevInResult(),n=t?t.prevInResult():null}}}class Wv{constructor(e){this.exteriorRing=e,e.poly=this,this.interiorRings=[]}addInterior(e){this.interiorRings.push(e),e.poly=this}getGeom(){const e=[this.exteriorRing.getGeom()];if(e[0]===null)return null;for(let t=0,n=this.interiorRings.length;t<n;t++){const i=this.interiorRings[t].getGeom();i!==null&&e.push(i)}return e}}class ZC{constructor(e){this.rings=e,this.polys=this._composePolys(e)}getGeom(){const e=[];for(let t=0,n=this.polys.length;t<n;t++){const i=this.polys[t].getGeom();i!==null&&e.push(i)}return e}_composePolys(e){const t=[];for(let n=0,i=e.length;n<i;n++){const s=e[n];if(!s.poly)if(s.isExteriorRing())t.push(new Wv(s));else{const o=s.enclosingRing();o.poly||t.push(new Wv(o)),o.poly.addInterior(s)}}return t}}class QC{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Bs.compare;this.queue=e,this.tree=new Rd(t),this.segments=[]}process(e){const t=e.segment,n=[];if(e.consumedBy)return e.isLeft?this.queue.remove(e.otherSE):this.tree.remove(t),n;const i=e.isLeft?this.tree.add(t):this.tree.find(t);if(!i)throw new Error(`Unable to find segment #${t.id} [${t.leftSE.point.x}, ${t.leftSE.point.y}] -> [${t.rightSE.point.x}, ${t.rightSE.point.y}] in SweepLine tree.`);let s=i,o=i,a,u;for(;a===void 0;)s=this.tree.prev(s),s===null?a=null:s.key.consumedBy===void 0&&(a=s.key);for(;u===void 0;)o=this.tree.next(o),o===null?u=null:o.key.consumedBy===void 0&&(u=o.key);if(e.isLeft){let l=null;if(a){const h=a.getIntersection(t);if(h!==null&&(t.isAnEndpoint(h)||(l=h),!a.isAnEndpoint(h))){const f=this._splitSafely(a,h);for(let p=0,v=f.length;p<v;p++)n.push(f[p])}}let c=null;if(u){const h=u.getIntersection(t);if(h!==null&&(t.isAnEndpoint(h)||(c=h),!u.isAnEndpoint(h))){const f=this._splitSafely(u,h);for(let p=0,v=f.length;p<v;p++)n.push(f[p])}}if(l!==null||c!==null){let h=null;l===null?h=c:c===null?h=l:h=xr.comparePoints(l,c)<=0?l:c,this.queue.remove(t.rightSE),n.push(t.rightSE);const f=t.split(h);for(let p=0,v=f.length;p<v;p++)n.push(f[p])}n.length>0?(this.tree.remove(t),n.push(e)):(this.segments.push(t),t.prev=a)}else{if(a&&u){const l=a.getIntersection(u);if(l!==null){if(!a.isAnEndpoint(l)){const c=this._splitSafely(a,l);for(let h=0,f=c.length;h<f;h++)n.push(c[h])}if(!u.isAnEndpoint(l)){const c=this._splitSafely(u,l);for(let h=0,f=c.length;h<f;h++)n.push(c[h])}}}this.tree.remove(t)}return n}_splitSafely(e,t){this.tree.remove(e);const n=e.rightSE;this.queue.remove(n);const i=e.split(t);return i.push(n),e.consumedBy===void 0&&this.tree.add(e),i}}const Hv=typeof process<"u"&&process.env.POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,tS=typeof process<"u"&&process.env.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6;class eS{run(e,t,n){ni.type=e,dl.reset();const i=[new Gv(t,!0)];for(let h=0,f=n.length;h<f;h++)i.push(new Gv(n[h],!1));if(ni.numMultiPolys=i.length,ni.type==="difference"){const h=i[0];let f=1;for(;f<i.length;)Vd(i[f].bbox,h.bbox)!==null?f++:i.splice(f,1)}if(ni.type==="intersection")for(let h=0,f=i.length;h<f;h++){const p=i[h];for(let v=h+1,C=i.length;v<C;v++)if(Vd(p.bbox,i[v].bbox)===null)return[]}const s=new Rd(xr.compare);for(let h=0,f=i.length;h<f;h++){const p=i[h].getSweepEvents();for(let v=0,C=p.length;v<C;v++)if(s.insert(p[v]),s.size>Hv)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const o=new QC(s);let a=s.size,u=s.pop();for(;u;){const h=u.key;if(s.size===a){const p=h.segment;throw new Error(`Unable to pop() ${h.isLeft?"left":"right"} SweepEvent [${h.point.x}, ${h.point.y}] from segment #${p.id} [${p.leftSE.point.x}, ${p.leftSE.point.y}] -> [${p.rightSE.point.x}, ${p.rightSE.point.y}] from queue.`)}if(s.size>Hv)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(o.segments.length>tS)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const f=o.process(h);for(let p=0,v=f.length;p<v;p++){const C=f[p];C.consumedBy===void 0&&s.insert(C)}a=s.size,u=s.pop()}dl.reset();const l=Lc.factory(o.segments);return new ZC(l).getGeom()}}const ni=new eS;var jd={union:function(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return ni.run("union",r,t)},intersection:function(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return ni.run("intersection",r,t)},xor:function(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return ni.run("xor",r,t)},difference:function(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),n=1;n<e;n++)t[n-1]=arguments[n];return ni.run("difference",r,t)}};function nS(r,e){var t=Jn(r),n=Jn(e),i=r.properties||{},s=jd.difference(t.coordinates,n.coordinates);return s.length===0?null:s.length===1?Pn(s[0],i):Yh(s,i)}function rS(r,e,t){t===void 0&&(t={});var n=Jn(r),i=Jn(e),s=jd.intersection(n.coordinates,i.coordinates);return s.length===0?null:s.length===1?Pn(s[0],t.properties):Yh(s,t.properties)}function iS(r,e,t){t===void 0&&(t={});var n=Jn(r),i=Jn(e),s=jd.union(n.coordinates,i.coordinates);return s.length===0?null:s.length===1?Pn(s[0],t.properties):Yh(s,t.properties)}function qv(r,e){(r[0][0]!==r[r.length-1][0]||r[0][1]!==r[r.length-1][1]||r[0][2]!==r[r.length-1][2])&&r.push(r[0]),(e[0][0]!==e[e.length-1][0]||e[0][1]!==e[e.length-1][1]||e[0][2]!==e[e.length-1][2])&&e.push(e[0]);const t=rS(Pn([r]),Pn([e]));if(t)return t.geometry.coordinates}function Xv(r,e){(r[0][0]!==r[r.length-1][0]||r[0][1]!==r[r.length-1][1]||r[0][2]!==r[r.length-1][2])&&r.push(r[0]),(e[0][0]!==e[e.length-1][0]||e[0][1]!==e[e.length-1][1]||e[0][2]!==e[e.length-1][2])&&e.push(e[0]);const t=iS(Pn([r]),Pn([e]));if(t)return t.geometry.coordinates}function Yv(r,e=500,t="meters"){const n=OC(Br(r),e,{units:t});if(n)return n.geometry.coordinates}function Jv(r,e){(r[0][0]!==r[r.length-1][0]||r[0][1]!==r[r.length-1][1]||r[0][2]!==r[r.length-1][2])&&r.push(r[0]),(e[0][0]!==e[e.length-1][0]||e[0][1]!==e[e.length-1][1]||e[0][2]!==e[e.length-1][2])&&e.push(e[0]);const t=nS(Pn([r]),Pn([e]));if(t)return t.geometry.coordinates}function $v(r,e,t=10,n="meters"){return DC(r,e,{steps:t,units:n}).geometry.coordinates}function Bd(r,e){(r[0][0]!==r[r.length-1][0]||r[0][1]!==r[r.length-1][1]||r[0][2]!==r[r.length-1][2])&&r.push(r[0]),(e[0][0]!==e[e.length-1][0]||e[0][1]!==e[e.length-1][1]||e[0][2]!==e[e.length-1][2])&&e.push(e[0]);const t=Pn([r]),n=Pn([e]);return CE(t,n)?"oneBig":DE(t,n)?"twoBig":!1}function Kv(r){const e=ys(Qs(r,["0"])),t=ys(Qs(r,["1"])),n=ys(Qs(r,["2"])),i=Wi(Qs(r,["0"])),s=Wi(Qs(r,["1"])),o=Wi(Qs(r,["2"]));return{minPos:[e,t,n],maxPos:[i,s,o],center:[(e+i)*.5,(t+s)*.5,(n+o)*.5]}}function Zv(r){const{minPos:e,maxPos:t,center:n}=Kv(r);if(e.some(a=>!Number.isFinite(a)||t.some(u=>!Number.isFinite(u))||n.some(u=>!Number.isFinite(u)))){console.warn("geoCenterAndRadiusFromPositions error: minPos.some(e => !Number.isFinite(e) || maxPos.some(e => !Number.isFinite(e)) || center.some(e => !Number.isFinite(e))");return}const i=Ql(e,t);let s=i*.5;const o=Math.abs(e[2]-t[2]);return o!=0&&(s=Math.sqrt(i*i+o*o)*.5),{center:n,radius:s}}function Qv(r,e){const t=Vr(r),n=Vr(e);return g.Vector.distance(t,n)}function fl(r,e){const t=[],n=r.length;let i=0;for(let s=0;s<n-1;++s){if(e===void 0||e==="GEODESIC"){const o=Ql(r[s],r[s+1]),a=Math.abs(r[s][2]-r[s+1][2]);if(a===0)i+=o;else{const u=Math.sqrt(o*o+a*a);i+=u}}else if(e==="RHUMB"){const o=ym(r[s],r[s+1]),a=Math.abs(r[s][2]-r[s+1][2]);if(a===0)i+=o;else{const u=Math.sqrt(o*o+a*a);i+=u}}else if(e==="NONE"){const o=Qv(r[s],r[s+1]);i+=o}else console.warn(`未知的arcType: ${e},导致距离无法计算!`);t.push(i)}return t}function zd(r){const e="__getXyzFromPostion";let t=Xn(r,e);return(!t||!g.Vector.equals(t[0],r))&&(t=[[...r],Vr(r)],fi(r,e,t)),t[1]}class sS{constructor(e){this.points=e.points||[],this.duration=e.duration||1e4,this.sharpness=e.sharpness||.85,this.centers=[],this.controls=[],this.stepLength=e.stepLength||60,this.length=this.points.length,this.delay=0;for(let t=0;t<this.length;t++)this.points[t].z=this.points[t].z||0;for(let t=0;t<this.length-1;t++){const n=this.points[t],i=this.points[t+1];this.centers.push({x:(n.x+i.x)/2,y:(n.y+i.y)/2,z:(n.z+i.z)/2})}this.controls.push([this.points[0],this.points[0]]);for(let t=0;t<this.centers.length-1;t++){const n=this.points[t+1].x-(this.centers[t].x+this.centers[t+1].x)/2,i=this.points[t+1].y-(this.centers[t].y+this.centers[t+1].y)/2,s=this.points[t+1].z-(this.centers[t].z+this.centers[t+1].z)/2;this.controls.push([{x:(1-this.sharpness)*this.points[t+1].x+this.sharpness*(this.centers[t].x+n),y:(1-this.sharpness)*this.points[t+1].y+this.sharpness*(this.centers[t].y+i),z:(1-this.sharpness)*this.points[t+1].z+this.sharpness*(this.centers[t].z+s)},{x:(1-this.sharpness)*this.points[t+1].x+this.sharpness*(this.centers[t+1].x+n),y:(1-this.sharpness)*this.points[t+1].y+this.sharpness*(this.centers[t+1].y+i),z:(1-this.sharpness)*this.points[t+1].z+this.sharpness*(this.centers[t+1].z+s)}])}return this.controls.push([this.points[this.length-1],this.points[this.length-1]]),this.steps=this.cacheSteps(this.stepLength),this}cacheSteps(e){const t=[];let n=this.pos(0);t.push(0);for(let i=0;i<this.duration;i+=10){const s=this.pos(i);Math.sqrt((s.x-n.x)*(s.x-n.x)+(s.y-n.y)*(s.y-n.y)+(s.z-n.z)*(s.z-n.z))>e&&(t.push(i),n=s)}return t}vector(e){const t=this.pos(e+10),n=this.pos(e-10);return{angle:180*Math.atan2(t.y-n.y,t.x-n.x)/3.14,speed:Math.sqrt((n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y)+(n.z-t.z)*(n.z-t.z))}}pos(e){let t=e-this.delay;t<0&&(t=0),t>this.duration&&(t=this.duration-1);const n=t/this.duration;if(n>=1)return this.points[this.length-1];const i=Math.floor((this.points.length-1)*n),s=(this.length-1)*n-i;return oS(s,this.points[i],this.controls[i][1],this.controls[i+1][0],this.points[i+1])}}function oS(r,e,t,n,i){const s=aS(r);return{x:i.x*s[0]+n.x*s[1]+t.x*s[2]+e.x*s[3],y:i.y*s[0]+n.y*s[1]+t.y*s[2]+e.y*s[3],z:i.z*s[0]+n.z*s[1]+t.z*s[2]+e.z*s[3]}}function aS(r){const e=r*r;return[e*r,3*e*(1-r),3*r*(1-r)*(1-r),(1-r)*(1-r)*(1-r)]}function uS(r,e){e===void 0&&(e={});var t=e.resolution||1e3,n=e.sharpness||.85;const i=[],s=r.map(l=>{const[c,h,f]=Vr(l);return{x:c,y:h,z:f}});for(var o=new sS({duration:t,points:s,sharpness:n}),a=function(l){var c=o.pos(l);const h=Xh([c.x,c.y,c.z]);i.push(h)},u=0;u<o.duration;u+=10)a(u);return a(o.duration),i}function ty(r,e,t){return uS(r,{resolution:e,sharpness:t})}class ey extends ra{constructor(e){super(e)}get propUiTree(){return this.uiTree}}class Ud extends na{constructor(e,t,n){super(e,t),this._property=n}get property(){return this._property}}class Gd extends Ud{constructor(e,t){super(e,!1,t)}}class Wd extends Ud{constructor(e,t){super(e,!0,t)}get groupChildren(){return this.children}}function ny(r,e){const t=new ey(e),n=r.getProperties("chinese"),i=[];for(let s of n)if(s instanceof ut){const o=new Wd(t,s);o.d(()=>s.destroy()),t.children.push(o),i.push(o)}else{const o=new Gd(t,s);t.children.push(o),o.d(()=>s.destroy())}for(;i.length>0;){const s=i.pop();if(!s)throw new Error("should not be here!");const o=s;if(!(o.property instanceof ut))throw new Error("!(treeItem.property instanceof GroupProperty)");for(let a of o.property.children)if(a instanceof ut){const u=new Wd(t,a);u.d(()=>a.destroy()),o.groupChildren.push(u),i.push(u)}else{const u=new Gd(t,a);o.groupChildren.push(u),u.d(()=>a.destroy())}}return t.d(()=>{t.itemChildrenChanged.reset(),t.itemChildrenToChange.reset();const s=[...t.getDescendants()];s.forEach(o=>{o.children&&(o.children.length=0),o.destroy()}),s.length=0}),t}class ka extends V{constructor(t){super();d(this,"_propTreeReact",this.dv(j(void 0)));this.d(()=>this._propTreeReact.value=void 0),this.dv(new Ee(this.sceneObjectChanged,n=>{if(!n)return;const i=new V;return i.d(n.toDestroyEvent.don(()=>{this.sceneObject=void 0})),i})),this.d(this.sceneObjectChanged.don(n=>{this._propTreeReact.value=void 0,!(!n||!(n instanceof rt))&&(this._propTreeReact.value=ny(n,t))}))}get propTree(){return this._propTreeReact.value}get propTreeChanged(){return this._propTreeReact.changed}}(r=>{r.createDefaultProps=()=>({sceneObject:void 0})})(ka||(ka={})),Gi(ka.prototype,ka.createDefaultProps);function Hd(r){return vs(r,(e,t)=>e[0]===t[0]&&e[1]===t[1],e=>[...e])}function ry(r,e){const t=new Array;for(let n of r)t.push(e(n));return t}function qd(r,e){return r===void 0&&e===void 0?!0:!r||!e?!1:r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]}function iy(r,e,t){var i;((i=e.attachedViewers.values().toArray()[0])==null?void 0:i.getEngineObject(e))?t.call(r):requestAnimationFrame(()=>iy(r,e,t))}function lS(r,e,t,n=!0){n&&t(),r.dispose(e.disposableOn(t))}function cS(r,e){const{type:t,id:n}=r;if(t){const i=rt.create(t,n);if(i)return i.json=r,i;console.warn(`cannot create sceneObject from type(${t})`)}else console.warn(`cannot create sceneObject from type(${t})`)}function sy(r){const e=r.children&&fh(r.children,n=>{if(!(n instanceof yn))throw new Error("!(treeItem instanceof SceneTreeItem)");return!n.show})||!1,t=r.sceneTree.getSceneObjectShowFunc(r.sceneObject);return!e||t}class yn extends na{constructor(t,n=!1,i,s,o=!0){super(t,n,i);d(this,"_dragDrop");d(this,"_showChangedNotAffectChildren",!1);d(this,"_showChangedNotAffectParent",!1);d(this,"_type",this.dv(j("Unknown")));d(this,"_isExport",this.dv(j(!0)));const a=()=>this.tree&&this.tree.itemsChanged.emit([this]);this.dispose(this.nameChanged.disposableOn(a)),this.name=`未命名条目(${this.id})`,this.extras=s,this._isExport.value=o;let u;const l=()=>{u&&(u(),u=void 0)};this.dispose(l),this.dispose(this.sceneObjectChanged.disposableOn(c=>{l(),c&&(u=nt([this,"name"],[c,"name"]))})),this.dispose(this.showChanged.disposableOn(c=>{if(t.setSceneObjectShowFunc(this.sceneObject,c),this.tree&&this.tree.forceRedraw(),this.children&&!this._showChangedNotAffectChildren)for(let h of this.children)h instanceof yn&&(h._showChangedNotAffectParent=!0,h.show=c,h._showChangedNotAffectParent=!1);this.parent&&this.parent instanceof yn&&!this._showChangedNotAffectParent&&(this.parent._showChangedNotAffectChildren=!0,this.parent.show=sy(this.parent),this.parent._showChangedNotAffectChildren=!1)})),this.dv(new Ee(this.sceneObjectChanged,()=>{if(!this.sceneObject)return;const c=new V;if("show"in this.sceneObject&&"showChanged"in this.sceneObject&&this.sceneObject.showChanged instanceof O){const h=()=>{this.show=t.getSceneObjectShowFunc(this.sceneObject)};h(),c.dispose(this.sceneObject.showChanged.disposableOn(h))}else if("enabled"in this.sceneObject&&"enabledChanged"in this.sceneObject&&this.sceneObject.enabledChanged instanceof O){const h=()=>{this.show=t.getSceneObjectShowFunc(this.sceneObject)};h(),c.dispose(this.sceneObject.enabledChanged.disposableOn(h))}return c})),this.childrenChangedEvent.disposableOn(()=>{const c=sy(this);this._showChangedNotAffectChildren=!0,this.show=c,this._showChangedNotAffectChildren=!1});{const c=()=>{let h="Unknown";this.sceneObject?h=this.sceneObject.typeName:this.children&&(h="Folder"),this._type.value=h};this.dispose(this.sceneObjectChanged.disposableOn(c)),this.dispose(this.childrenResetedEvent.disposableOn(c)),c()}}get dragDrop(){return this._dragDrop||(this._dragDrop=this.dv(this.sceneTree.createTreeItemDragDropFunc(this))),this._dragDrop}get type(){return this._type.value}get typeChanged(){return this._type.changed}get isExport(){return this._isExport.value}get isExportChanged(){return this._isExport.changed}set isExport(t){this._isExport.value=t}get sceneTree(){return this.tree}get jsonStr(){return JSON.stringify(this.json,void 0," ")}set jsonStr(t){try{this.json=JSON.parse(t)}catch(n){console.error(`sceneTreeItem.jsonStr error ${n}`,n)}}get completeJson(){const t=this.children&&[...this.children].filter(n=>n.isExport).map(n=>n.completeJson);return{name:this.name,show:this.show?void 0:!1,collapsed:this.uiTreeObject.collapsed?!0:void 0,sceneObj:this.sceneObject&&this.sceneObject.completeJson,children:t,extras:this.extras}}get json(){const t=this.children&&[...this.children].filter(n=>n.isExport).map(n=>n.json);return{name:this.name,show:this.show?void 0:!1,collapsed:this.uiTreeObject.collapsed?!0:void 0,sceneObj:this.sceneObject&&this.sceneObject.json,children:t,extras:this.extras}}set json(t){if(t.name!==void 0&&(this.name=t.name),this.extras=t.extras,this._showChangedNotAffectChildren=!0,this._showChangedNotAffectParent=!0,this.show=t.show??!0,this._showChangedNotAffectChildren=!1,this._showChangedNotAffectParent=!1,this.uiTreeObject.collapsed=t.collapsed??!1,this.sceneObject=void 0,t.sceneObj&&(this.sceneObject=this.sceneTree.createSceneObjectFunc(t.sceneObj,this)),!!t.children){if(this.resetChildren(!0),!this.children)throw new Error("resetChildren(true) cannot get children!");for(let n of t.children){const i=new yn(this.tree,!0);i.json=n,this.children.push(i)}}}clone(){try{const t=new yn(this.sceneTree,!!this.children,void 0,this.extras,this.isExport);return t.json=this.json,t.name=this.sceneTree.getSceneTreeItemCloneNameFunc(this),t}catch(t){console.error(`SceneTreeItem.clone error: ${t}`,t)}}insertNewTreeItem(t,n){if(t==="FolderInnerOrAfter"||t==="FolderInnerOrBefore"||t==="FolderInner"){if(n&&n.tree!==this.tree)return console.warn("newTreeItem.tree !== this.tree"),!1;if(this.children&&!(t.includes("Or")&&this.sceneObject))return n&&this.children.push(n),!0;if(t==="FolderInner")return!1;if(t==="FolderInnerOrAfter")return super.insertNewTreeItem("After",n);if(t==="FolderInnerOrBefore")return super.insertNewTreeItem("Before",n);throw new Error("should not be here!")}else return super.insertNewTreeItem(t,n)}}(r=>{r.createDefaultProps=()=>({name:"未命名条目",nameEditing:!1,sceneObject:void 0,show:!0,extras:Qt(void 0)})})(yn||(yn={})),Gi(yn.prototype,yn.createDefaultProps);function oy(r,e,t){let{offsetY:n}=e;if(!e.target||!("clientTop"in e.target))return"none";n+=2,n+=e.target.clientTop;let i="none";return r.children?n<=t*.3?i="before":n>=t*.7?!r.uiTreeObject.collapsed&&r.children.length>0?i="inner":i="after":i="inner":n<=t*.5?i="before":i="after",i}class ay extends kg{constructor(e){super(),this._treeItem=e;const{dragStartDataManager:t}=this._treeItem.sceneTree;let n="none";const i=this.disposeVar(Vp(()=>{this._treeItem.uiTreeObject.moveToPositionMode=n,console.log(`uiTreeObject.moveToPositionMode = lastDragMode(${n});`)},200));function s(o){n!==o&&(n=o,i.restart())}this.dispose(this._dragStartEvent.disposableOn(o=>{t.data={type:"UITreeA",value:this._treeItem}})),this.dispose(this._dragOverEvent.disposableOn(o=>{if(!o.dataTransfer)return;o.preventDefault();const a=t;if(a.data&&a.data.type==="UITreeA"&&a.data.value!==void 0){const u=a.data.value,l=this._treeItem,{tree:c}=l;if(c){const h=[...c.selectedItems];~h.indexOf(u)||h.push(u);const f=oy(l,o,c.itemDivHeight);if(f!=="none"&&ra.canMoveToTreeItems(h,l,f)){o.dataTransfer.dropEffect="move",s(f);return}}}o.dataTransfer.dropEffect="none",s("none")})),this.dispose(this._dropEvent.disposableOn(o=>{const a=t;if(!(a.data&&a.data.type==="UITreeA"&&a.data.value!==void 0))return;const u=a.data.value,l=this._treeItem,{tree:c}=l;if(!c)return;const h=[...c.selectedItems];~h.indexOf(u)||h.push(u);const f=oy(l,o,c.itemDivHeight);f!=="none"&&ra.canMoveToTreeItems(h,l,f)&&(ra.moveToTreeItems(h,l,f),a.data=void 0,s("none"))})),this.dispose(this._dragLeaveEvent.disposableOn(()=>{n="none",i.restart()}))}}function hS(r){if(!(r instanceof yn))throw new Error("defaultCreateTreeItemDragDrop !(treeItem instanceof SceneTreeItem)");return new ay(r)}function dS(r){let e=!1;return r&&("show"in r?e=r.show??!0:"enabled"in r&&(e=r.enabled??!0)),e}function fS(r,e){r&&("show"in r?r.show=e:"enabled"in r&&(r.enabled=e))}const pS=["EnvironmentVariables","ScriptsLoader","SceneScript","ScriptLoader"];function gS(r){const e=[],{root:t={}}=r,n=[t];for(;n.length>0;){const i=n.pop();if(!i)throw new Error("!todo");if(i.children){for(let s of i.children)if(s.children&&n.unshift(s),s.sceneObj){const{type:o=void 0}=s.sceneObj;o||(console.warn("sceneObjJson has no type! treeItem.sceneObj: "),console.warn(s.sceneObj)),o&&pS.includes(o)&&e.push(s.sceneObj)}}}return e}async function mS(r,e){const t=gS(r);let n=0;const i=t.length;for(let s of t)if(++n,e){const o=n/i;e(o,n,i)}}class uy extends V{constructor(t,n){super();d(this,"treeItemContexMenuCallback");this._sceneTree=t,this._projectManager=n}get sceneTree(){return this._sceneTree}}class vS extends V{constructor(t){super();d(this,"_jsonLoadingEvent",this.disposeVar(new O));d(this,"_setJsonProcessing",this.disposeVar(Yn(async(t,n)=>{this._jsonLoadingEvent.emit({type:"init"}),this._jsonLoadingEvent.emit({type:"loading"}),n&&await t.promise(this._sceneTree.preloadFunc(n)),this._setJson(n),this._jsonLoadingEvent.emit({type:"loaded"})})));this._sceneTree=t,this._setJsonProcessing.errorFunc=n=>{this._jsonLoadingEvent.emit({type:"error",error:n})}}get jsonLoadingEvent(){return this._jsonLoadingEvent}_setJson(t){try{this._sceneTree.setJson(t||{})}catch(n){console.error(`json数据装配时发生错误!error: ${n}`)}}get json(){return this._sceneTree.getJson()}set json(t){this._setJsonProcessing.restart(new Fr("JSON重新赋值!"),t)}get jsonStr(){return JSON.stringify(this.json,void 0," ")}set jsonStr(t){this.json=JSON.parse(t)}}function yS(r){return r.name+"_clone"}function Xd(r,e,t){if(r instanceof yn)return r.insertNewTreeItem(e,t);{const n={FolderInnerOrAfter:"InnerOrAfter",FolderInnerOrBefore:"InnerOrBefore",FolderInner:"Inner",InnerOrAfter:"InnerOrAfter",InnerOrBefore:"InnerOrBefore",Inner:"Inner",After:"After",Before:"Before"};return r.insertNewTreeItem(n[e],t)}}function _S(r){[r,...r.getDescendants()].forEach(e=>e.destroy())}const Hn=class Hn extends ra{constructor(t,n,i,s){super(i);d(this,"_jsonLoading",this.disposeVar(new vS(this)));d(this,"createSceneObjectFunc",Hn.defaultCreateSceneObjectFunc);d(this,"createTreeItemDragDropFunc",Hn.defaultCreateTreeItemDragDropFunc);d(this,"preloadFunc",Hn.defaultPreload);d(this,"getSceneObjectShowFunc",Hn.defaultGetSceneObjectShow);d(this,"setSceneObjectShowFunc",Hn.defaultSetSceneObjectShow);d(this,"getSceneTreeItemCloneNameFunc",Hn.defaultGetSceneTreeItemCloneNameFunc);d(this,"debug",!1);d(this,"_contextMenu",this.disposeVar(new uy(this,this.projectManager)));d(this,"_showPropUiOnSelecting",this.disposeVar(j(!0)));this._name=t,this._dragStartDataManager=n,this._projectManager=s,this.dispose(this.selectedItems.changedEvent.disposableOn(()=>{var a,u;globalThis.lssn=this.lastSelectedItem,globalThis.lsso=(a=this.lastSelectedItem)==null?void 0:a.sceneObject,this.debug&&console.log(((u=this.lastSelectedItem)==null?void 0:u.sceneObject)??"select null")}));const{sceneObjectsManager:o}=this._projectManager;this.dispose(this.itemsDeleted.disposableOn(a=>{for(let u of a){const l=u,{sceneObject:c}=l;c&&o.deleteSceneObject(c)&&c.destroy()&&ql(c,void 0);for(let h of l.getDescendants()){const{sceneObject:f}=h;f&&o.deleteSceneObject(f)&&f.destroy()&&ql(f,void 0)}_S(u)}})),this.dispose(this.itemsAdded.disposableOn(a=>{for(let u of a){const l=u;l.sceneObject&&o.addSceneObject(l.sceneObject)&&ql(l.sceneObject,l)}})),this.dispose(this.selectedItems.changedEvent.disposableOn(()=>{if(!this.showPropUiOnSelecting)return;this._projectManager.propUiTreeManager.sceneObject=void 0;const{lastSelectedItem:a}=this;a&&(this._projectManager.propUiTreeManager.sceneObject=a.sceneObject)}))}get json(){return this._jsonLoading.json}set json(t){this._jsonLoading.json=t}get jsonStr(){return this._jsonLoading.jsonStr}set jsonStr(t){this._jsonLoading.jsonStr=t}get jsonLoadingEvent(){return this._jsonLoading.jsonLoadingEvent}get name(){return this._name}get projectManager(){return this._projectManager}get contextMenu(){return this._contextMenu}get showPropUiOnSelecting(){return this._showPropUiOnSelecting.value}set showPropUiOnSelecting(t){this._showPropUiOnSelecting.value=t}get showPropUiOnSelectingChanged(){return this._showPropUiOnSelecting.changed}get sceneUiTree(){return this.uiTree}getTreeItemFromSceneObjId(t){const n=this.getDescendants();let i;for(let s of n)if(s.sceneObject&&s.sceneObject.id===t){i=s;break}return i}getTreeItemsFromSceneObjType(t){const n=this.getDescendants(),i=[],s=Array.isArray(t)?t:[t];for(let o of n)o.sceneObject&&s.includes(o.sceneObject.typeName)&&i.push(o);return i}getTreeItemsFromSceneObjName(t){var s;const n=this.getDescendants(),i=[];for(let o of n)(s=o.sceneObject)!=null&&s.name.includes(t)&&i.push(o);return i}get dragStartDataManager(){return this._dragStartDataManager}get completeJson(){return{root:{children:[...this.children].filter(t=>t.isExport).map(t=>t.completeJson)}}}getJson(){return{root:{children:[...this.children].filter(t=>t.isExport).map(t=>t.json)}}}setJson(t){var i;t.root=t.root||{};const n=t.root.children??[];this.root.resetChildren(!0);for(let s of n){const o=new yn(this,!0);o.json=s,(i=this.root.children)==null||i.push(o)}}testAddNewTreeItem(t,n){const i=t||this.lastSelectedItem||this.root;return i?Xd(i,n):!1}addNewTreeItem(t,n,i,s){const o=t||this.lastSelectedItem||this.root;if(o&&Xd(o,n)){const a=new yn(this,i);if(a.sceneObject=s,!Xd(o,n,a))throw new Error("currentTreeItem.insertNewTreeItem return false!");return a}}createSceneObjectTreeItem(t,n,i,s){const o=s??"FolderInnerOrAfter";if(!this.testAddNewTreeItem(i,o)){console.warn(`cannot addNewTreeItem! currentTreeItem(${i?i.id:"root"})`);return}const a=rt.create(t,n);return a?this.addNewTreeItem(i,s??"FolderInnerOrAfter",!0,a):void 0}createGroupTreeItem(t,n,i,s){const o=s??"FolderInnerOrAfter";if(!this.testAddNewTreeItem(i,o)){console.warn(`cannot addNewTreeItem! currentTreeItem(${i?i.id:"root"})`);return}const a=this.addNewTreeItem(i,s??"FolderInnerOrAfter",!0);if(!a){console.warn("addNewTreeItem error!");return}return a.name=t??"未命名组节点",a}createSceneObjectTreeItemFromClass(t,n,i,s){const o=s??"FolderInnerOrAfter";if(!this.testAddNewTreeItem(i,o))return;const a=rt.createFromClass(t,n);return a?this.addNewTreeItem(i,o,!0,a):void 0}createSceneObjectTreeItemFromJson(t,n,i){const s=i??"FolderInnerOrAfter";if(!this.testAddNewTreeItem(n,s))return;const o=rt.createFromJson(t);return console.log(o),o?this.addNewTreeItem(n,i??"FolderInnerOrAfter",!0,o):void 0}destroySceneObjectTreeItem(t){if(t===this.root){console.warn("cannot destroy root! please use function destroyAllSceneObjectTreeItems!");return}t.detachFromParent()}destroyAllSceneObjectTreeItems(){if(!this.root.children)return;const t=[...this.root.children];for(let n of t)this.destroySceneObjectTreeItem(n)}};d(Hn,"defaultCreateSceneObjectFunc",cS),d(Hn,"defaultCreateTreeItemDragDropFunc",hS),d(Hn,"defaultPreload",mS),d(Hn,"defaultGetSceneObjectShow",dS),d(Hn,"defaultSetSceneObjectShow",fS),d(Hn,"defaultGetSceneTreeItemCloneNameFunc",yS);let pl=Hn;const Yd={saturation:.35,brightness:1.4,gamma:.8,atmosphereScatteringIntensity:5,groundColor:[0,.09411764705882353,.3137254901960784,1]};class wS extends V{constructor(t){super();d(this,"_currentPosition",this.disposeVar(re(void 0)));d(this,"_currentRotation",this.disposeVar(re(void 0)));d(this,"_currentHeading",this.disposeVar(j(void 0)));d(this,"_isRotating",this.disposeVar(j(!1)));d(this,"_isGround",this.disposeVar(j(!1)));d(this,"_startPosition",[0,0,0]);d(this,"_startRotation",[0,0,0]);d(this,"_processing",this.disposeVar(Yn(async(t,n,i,s)=>{const{currentPosition:o,currentRotation:a}=this;if(!o||s<=0||!a){this._currentPosition.value=n,this._currentRotation.value=i;return}const u=this._startPosition;u.splice(0,3,...o);const l=this._startRotation;l.splice(0,3,...a);let c=Date.now();const h=Bu(u,n);this._currentHeading.value=h;const p=Ql(u,n)/s,v=[i[0]-l[0],i[1]-l[1],i[2]-l[2]],C=n[2]-u[2];await t.promise(new Promise(S=>{t.disposer.dispose(Rl(async()=>{let P=Date.now()-c;P=P<0?0:P,P=P>s?s:P;const y=P*p,_=om(u,y,h);if(this.isGround&&_){const m=await this._esviewer.getTerrainHeight([_[0],_[1]]);this._currentPosition.value=[_[0],_[1],m??0]}else _&&(_[2]+=C*(P/s)),this._currentPosition.value=_;if(this.isRotating){const[m,w,E]=v,b=P/s;this._currentRotation.value=[l[0]+m*b,l[1]+w*b,l[2]+E*b]}P===s&&(this._currentPosition.value=n,this.isRotating&&(this._currentRotation.value=i),this.isRotating=!1,this.isGround=!1,S())}))}))})));this._esviewer=t}get currentPosition(){return this._currentPosition.value}get currentPositionChanged(){return this._currentPosition.changed}get currentRotation(){return this._currentRotation.value}get currentRotationChanged(){return this._currentRotation.changed}get currentHeading(){return this._currentHeading.value}get currentHeadingChanged(){return this._currentHeading.changed}get isRotating(){return this._isRotating.value}set isRotating(t){this._isRotating.value=t}get isRotatingChanged(){return this._isRotating.changed}get isGround(){return this._isGround.value}set isGround(t){this._isGround.value=t}get isGroundChanged(){return this._isGround.changed}get processing(){return this._processing}restart(t,n,i){this._processing.restart(void 0,t,n,i)}cancel(){this._processing.cancel()}}function ly(r){let e=0;function t(n,i){i++,e=Math.max(i,e),n.forEach(s=>{Array.isArray(s)&&t(s,i)})}return t(r,0),e}const Di=class Di extends Ht{constructor(t){super(t);d(this,"editingBindMode","lineString");d(this,"_area",this.dv(j(0)));d(this,"_perimeter",this.dv(j(0)));this.d(Ui(this.pointsChanged,()=>{this._updateArea(),this._updatePerimeter()},{immediate:!0}))}updateEditing(){var n;const t=[];this.editingBindMode=="doublePoints"?t.push(et.DoublePointsAppend,et.DoublePointsModify):this.editingBindMode=="lineString"?t.push(et.LineStringAppend,et.LineStringInsert,et.Translation):this.editingBindMode=="circular"?(t.push(et.CircularAppend,et.CircularInsert,et.Translation),this.supportEditingModes().includes(et.HeightModify)&&t.push(et.HeightModify)):this.editingBindMode=="visibility"?t.push(et.VisibilityAppend,et.VisibilityModify):this.editingBindMode=="scatter"&&t.push(et.ScatterAppend,et.ScatterModify),(n=this.activeViewer)==null||n.startEditing(this,t,{callSource:"inner"})}get area(){return this._area.value}get areaChanged(){return this._area.changed}get perimeter(){return this._perimeter.value}get perimeterChanged(){return this._perimeter.changed}_updateArea(){this._area.value=this.getArea()??0}_updatePerimeter(){this._perimeter.value=this.getPerimeter()??0}getArea(){if(this.points&&this.points.length>=3)return td([...this.points])}getDistance(){if(this.points&&this.points.length>=2){const t=fl(this.points,"GEODESIC");return t[t.length-1]}else return}getPerimeter(){if(this.points&&this.points.length>=3){const t=[...this.points,this.points[0]],n=fl(t,"GEODESIC");return n[n.length-1]}else return}getIntersect(t){if(this.points&&this.points.length>=3&&t.length>=3){const n=qv(this.points,t);if(!n)return;const i=n[0][0][0];if(Array.isArray(i)){const s=[...n],o=[];return s.forEach(a=>{const u=a[0].map(l=>[...l,0]);o.push(u)}),o}else return[[...n][0].map(a=>[...a,0])]}else return}getUnion(t){if(this.points&&this.points.length>=3&&t.length>=3){const n=Xv(this.points,t);if(!n)return;const i=n[0][0][0];if(Array.isArray(i)){const s=[...n],o=[];return s.forEach(a=>{const u=a[0].map(l=>[...l,0]);o.push(u)}),o}else return[[...n][0].map(a=>[...a,0])]}else return}getDifference(t){if(this.points&&this.points.length>=3&&t.length>=3){let n=[...t];const i=t[0],s=t[t.length-1];i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]||n.push(i);const o=Jv([...this.points,this.points[0]],[...n]);if(!o)return{status:"undefined",positions:void 0};const a=[...o];if(ly(a)===3){const u=a.map(f=>f.map(p=>[...p,0]));if(u.length<=1)return{status:"notIncluded",positions:u};const l=u[0],c=u[1];return Bd([...l],[...c])==="oneBig"?{status:"included",positions:u}:{status:"notIncluded",positions:u}}else if(ly(a)===4){const l=[...a.map(h=>h.map(f=>f.map(p=>[...p,0])))],c=[];return l.forEach(h=>{c.push(h[0])}),{status:"notIncluded",positions:c}}else return{status:"undefined",positions:void 0}}else return{status:"undefined",positions:void 0}}getBuffer(t=500,n){if(this.points&&this.points.length>=2){const i=Yv(this.points,t,n);return i?[i[0].map(s=>[...s,0])]:void 0}else return}geoPolygonOverlap(t){if(this.points&&this.points.length>=3&&t.length>=3){const n=Bd(this.points,t);return n==="oneBig"?!0:n==="twoBig"?!1:void 0}else return}getESProperties(){const t={...super.getESProperties()};return{...t,defaultMenu:"style",coordinate:[...t.coordinate,new X([this,"editing"],"编辑",!1),new it([this,"points"],"位置数组",Di.defaults.points,void 0,!0)],style:[...t.style,new ut([],"点样式"),new X([this,"pointed"],"开启",!1),new M([this,"pointSize"],"点大小",1),new Pt([this,"pointSizeType"],[["screen","screen"],["world","world"]],"点类型","screen"),new Mt([this,"pointColor"],"点颜色",[1,1,1,1]),new Mt([this,"pointOutlineColor"],"轮廓颜色",Di.defaults.pointStyle.outlineColor),new M([this,"pointOutlineWidth"],"轮廓宽度",Di.defaults.pointStyle.outlineWidth),new ut([],"线样式"),new X([this,"stroked"],"开启线样式",!0),new X([this,"strokeGround"],"贴地",!1),new M([this,"strokeWidth"],"线宽",1),new Pt([this,"strokeWidthType"],[["screen","screen"],["world","world"]],"线类型","screen"),new Mt([this,"strokeColor"],"线颜色",[1,1,1,1]),new ut([],"面样式"),new X([this,"filled"],"开启",!1),new X([this,"fillGround"],"贴地",!1),new Mt([this,"fillColor"],"填充颜色",[1,1,1,1])],more:[...t.more,new ut([],"点样式集合"),new pt([this,"pointMaterial"],"点材质"),new it([this,"pointMaterialParams"],"点材质参数"),new ut([],"线样式集合"),new pt([this,"strokeMaterial"],"线材质"),new it([this,"strokeMaterialParams"],"线材质参数"),new ut([],"面样式集合"),new pt([this,"fillMaterial"],"面材质"),new it([this,"fillMaterialParams"],"面材质参数")]}}get pointSize(){return this.pointStyle.size}set pointSize(t){this.pointStyle={...this.pointStyle,size:t}}get pointSizeChanged(){return this.pointStyleChanged}get pointSizeType(){return this.pointStyle.sizeType}set pointSizeType(t){this.pointStyle={...this.pointStyle,sizeType:t}}get pointSizeTypeChanged(){return this.pointStyleChanged}get pointColor(){return this.pointStyle.color}set pointColor(t){this.pointStyle={...this.pointStyle,color:[...t]}}get pointColorChanged(){return this.pointStyleChanged}get pointOutlineColor(){return this.pointStyle.outlineColor}set pointOutlineColor(t){this.pointStyle={...this.pointStyle,outlineColor:[...t]}}get pointOutlineColorChanged(){return this.pointStyleChanged}get pointOutlineWidth(){return this.pointStyle.outlineWidth}set pointOutlineWidth(t){this.pointStyle={...this.pointStyle,outlineWidth:t}}get pointOutlineWidthChanged(){return this.pointStyleChanged}get pointMaterial(){return this.pointStyle.material}set pointMaterial(t){this.pointStyle={...this.pointStyle,material:t}}get pointMaterialChanged(){return this.pointStyleChanged}get pointMaterialParams(){return this.pointStyle.materialParams}set pointMaterialParams(t){this.pointStyle={...this.pointStyle,materialParams:t}}get pointMaterialParamsChanged(){return this.pointStyleChanged}get strokeWidth(){return this.strokeStyle.width}set strokeWidth(t){this.strokeStyle={...this.strokeStyle,width:t}}get strokeWidthChanged(){return this.strokeStyleChanged}get strokeWidthType(){return this.strokeStyle.widthType}set strokeWidthType(t){this.strokeStyle={...this.strokeStyle,widthType:t}}get strokeWidthTypeChanged(){return this.strokeStyleChanged}get strokeColor(){return this.strokeStyle.color}set strokeColor(t){this.strokeStyle={...this.strokeStyle,color:[...t]}}get strokeColorChanged(){return this.strokeStyleChanged}get strokeMaterial(){return this.strokeStyle.material}set strokeMaterial(t){this.strokeStyle={...this.strokeStyle,material:t}}get strokeMaterialChanged(){return this.strokeStyleChanged}get strokeMaterialParams(){return this.strokeStyle.materialParams}set strokeMaterialParams(t){this.strokeStyle={...this.strokeStyle,materialParams:t}}get strokeMaterialParamsChanged(){return this.strokeStyleChanged}get strokeGround(){return this.strokeStyle.ground}set strokeGround(t){this.strokeStyle={...this.strokeStyle,ground:t}}get strokeGroundChanged(){return this.strokeStyleChanged}get fillColor(){return this.fillStyle.color}set fillColor(t){this.fillStyle={...this.fillStyle,color:[...t]}}get fillColorChanged(){return this.fillStyleChanged}get fillMaterial(){return this.fillStyle.material}set fillMaterial(t){this.fillStyle={...this.fillStyle,material:t}}get fillMaterialChanged(){return this.fillStyleChanged}get fillMaterialParams(){return this.fillStyle.materialParams}set fillMaterialParams(t){this.fillStyle={...this.fillStyle,materialParams:t}}get fillMaterialParamsChanged(){return this.fillStyleChanged}get fillGround(){return this.fillStyle.ground}set fillGround(t){this.fillStyle={...this.fillStyle,ground:t}}get fillGroundChanged(){return this.fillStyleChanged}};d(Di,"createDefaultProps",()=>({...Ht.createDefaultProps(),pointed:!1,pointStyle:wt({size:10,sizeType:"screen",color:[1,1,1,1],material:"",materialParams:{},outlineColor:[1,0,0,1],outlineWidth:2}),stroked:!1,strokeStyle:wt({width:1,widthType:"screen",color:[1,1,1,1],material:"",materialParams:{},ground:!1}),filled:!1,fillStyle:wt({color:[1,1,1,1],material:"",materialParams:{},ground:!1}),points:Nl([])})),d(Di,"type",Di.register("ESGeoVector",Di,{chsName:"地理矢量",tags:["ESObjects"],description:"地理矢量"})),d(Di,"supportEditingModes",[...Ht.supportEditingModes,et.Translation]);let It=Di;const To=class To extends Ht{constructor(){super(...arguments);d(this,"_statusDis",this.dv(j(!0)));d(this,"_smoothMoveEvent",this.dv(new O));d(this,"_smoothMoveWithRotationEvent",this.dv(new O));d(this,"_smoothMoveOnGroundEvent",this.dv(new O));d(this,"_smoothMoveWithRotationOnGroundEvent",this.dv(new O));d(this,"_automaticLandingEvent",this.dv(new O));d(this,"_smoothMoveKeepPitchEvent",this.dv(new O));d(this,"_smoothMoveRelativelyEvent",this.dv(new O));d(this,"_smoothMoveRelativelyWithRotationEvent",this.dv(new O));d(this,"useCalcFlyToParamInESObjectWithLocation",!0)}updateEditing(){var n;const t=[];this.editingBindMode=="singlePoint"?(t.push(et.Place,et.Translation),["ESLocationMeasurement"].includes(this.typeName)||t.push(et.Rotation),["ESClippingPlane","ESLocationMeasurement","ESLocalRectangle","ESBoxClipping"].includes(this.typeName)||t.push(et.Scale)):this.editingBindMode=="doublePoints"&&t.push(et.DoublePointsAppend,et.DoublePointsModify),(n=this.activeViewer)==null||n.startEditing(this,t,{callSource:"inner"})}get statusDis(){return this._statusDis.value}get statusDisChanged(){return this._statusDis.changed}get smoothMoveEvent(){return this._smoothMoveEvent}smoothMove(t,n){this._smoothMoveEvent.emit(t,n)}get smoothMoveWithRotationEvent(){return this._smoothMoveWithRotationEvent}smoothMoveWithRotation(t,n,i){this._smoothMoveWithRotationEvent.emit(t,n,i)}get smoothMoveOnGroundEvent(){return this._smoothMoveOnGroundEvent}smoothMoveOnGround(t,n,i,s){this._smoothMoveOnGroundEvent.emit(t,n,i,s)}get smoothMoveWithRotationOnGroundEvent(){return this._smoothMoveWithRotationOnGroundEvent}smoothMoveWithRotationOnGround(t,n,i,s,o){this._smoothMoveWithRotationOnGroundEvent.emit(t,n,i,s,o)}get automaticLandingEvent(){return this._automaticLandingEvent}automaticLanding(){const t=this.collision;this.collision=!1,setTimeout(()=>{this._automaticLandingEvent.emit(t)},100)}get smoothMoveKeepPitchEvent(){return this._smoothMoveKeepPitchEvent}smoothMoveKeepPitch(t,n){this._smoothMoveKeepPitchEvent.emit(t,n)}get smoothMoveRelativelyEvent(){return this._smoothMoveRelativelyEvent}smoothMoveRelatively(t,n){this._smoothMoveRelativelyEvent.emit(t,n)}get smoothMoveRelativelyWithRotationEvent(){return this._smoothMoveRelativelyWithRotationEvent}smoothMoveRelativelyWithRotation(t,n,i){this._smoothMoveRelativelyWithRotationEvent.emit(t,n,i)}getESProperties(){const t={...super.getESProperties()};return{...t,defaultMenu:"basic",location:[...t.location,new X([this,"editing"],"是否编辑"),new lt([],()=>this.automaticLanding(),[],"自动落地"),new ia([this,"position"],"位置数组",[0,0,0]),new Gh([this,"rotation"],"姿态数组",[0,0,0]),new cn([this,"scale"],"缩放",[1,1,1]),new M([this,"minVisibleDistance"],"最小可见距离",0),new M([this,"maxVisibleDistance"],"最大可见距离",0)],more:[...t.more,new lt(["numbers","number"],(n,i)=>this.smoothMove(n,i),[[0,0,0],0],"平滑移动","smoothMove"),new lt(["numbers","number"],(n,i)=>this.smoothMoveKeepPitch(n,i),[[0,0,0],0],"固定方向平滑移动","smoothMoveKeepPitch"),new lt(["numbers","numbers","number"],(n,i,s)=>this.smoothMoveWithRotation(n,i,s),[[0,0,0],[0,0,0],0],"平滑偏移","smoothMoveWithRotation"),new lt(["number","number","number","string"],(n,i,s,o)=>this.smoothMoveOnGround(n,i,s,o),[0,0,0,""],"贴地平滑移动","smoothMoveOnGround"),new lt(["numbers","number","number","number","string"],(n,i,s,o,a)=>this.smoothMoveWithRotationOnGround(n,i,s,o,a),[[0,0,0],0,0,0,""],"贴地平滑偏移","smoothMoveWithRotationOnGround"),new lt(["numbers","number"],(n,i)=>this.smoothMoveRelatively(n,i),[[0,0,0],0],"smoothMoveRelatively","smoothMoveRelatively"),new lt(["numbers","numbers","number"],(n,i,s)=>this.smoothMoveRelativelyWithRotation(n,i,s),[[0,0,0],[0,0,0],0],"smoothMoveRelativelyWithRotation","smoothMoveRelativelyWithRotation"),new X([this,"enableVisibleDistance"],"是否应用距离显隐")]}}get pointSize(){return this.pointStyle.size}set pointSize(t){this.pointStyle={...this.pointStyle,size:t}}get pointSizeChanged(){return this.pointStyleChanged}get pointSizeType(){return this.pointStyle.sizeType}set pointSizeType(t){this.pointStyle={...this.pointStyle,sizeType:t}}get pointSizeTypeChanged(){return this.pointStyleChanged}get pointColor(){return this.pointStyle.color}set pointColor(t){this.pointStyle={...this.pointStyle,color:[...t]}}get pointColorChanged(){return this.pointStyleChanged}get pointMaterial(){return this.pointStyle.material}set pointMaterial(t){this.pointStyle={...this.pointStyle,material:t}}get pointMaterialChanged(){return this.pointStyleChanged}get pointMaterialParams(){return this.pointStyle.materialParams}set pointMaterialParams(t){this.pointStyle={...this.pointStyle,materialParams:t}}get pointMaterialParamsChanged(){return this.pointStyleChanged}};d(To,"createDefaultProps",()=>({...Ht.createDefaultProps(),pointed:!1,pointStyle:wt({size:1,sizeType:"screen",color:[1,1,1,1],material:"",materialParams:{},outlineColor:[1,0,0,1],outlineWidth:2}),position:ht([0,0,0]),rotation:ht([0,0,0]),scale:ht([1,1,1]),minVisibleDistance:j(0),maxVisibleDistance:j(0)})),d(To,"type",To.register("ESObjectWithLocation",To,{chsName:"对象位置",tags:["ESObjects"],description:"对象位置"})),d(To,"supportEditingModes",[...Ht.supportEditingModes,et.Place,et.Translation,et.Rotation,et.Scale,et.DoublePointsAppend,et.DoublePointsModify]);let st=To;const Wa=class Wa extends st{getESProperties(){const e={...super.getESProperties()};return{...e,style:[...e.style,new ut([],"点样式集合"),new X([this,"pointed"],"开启点样式",!1),new M([this,"pointSize"],"点大小",1),new Pt([this,"pointSizeType"],[["screen","screen"],["world","world"]],"点类型","screen"),new Mt([this,"pointColor"],"点颜色",[1,1,1,1]),new ut([],"线样式集合"),new X([this,"stroked"],"开启线样式",!1),new X([this,"strokeGround"],"是否贴地(线)",!1),new M([this,"strokeWidth"],"线宽",1),new Pt([this,"strokeWidthType"],[["screen","screen"],["world","world"]],"线类型","screen"),new Mt([this,"strokeColor"],"线颜色",[1,1,1,1]),new ut([],"面样式集合"),new X([this,"filled"],"开启填充样式",!1),new X([this,"fillGround"],"是否贴地",!1),new Mt([this,"fillColor"],"填充颜色",[1,1,1,1])],more:[...e.more,new ut([],"点样式"),new pt([this,"pointMaterial"],"点材质",""),new it([this,"pointMaterialParams"],"点材质参数",{}),new ut([],"线样式"),new pt([this,"strokeMaterial"],"线材质",""),new it([this,"strokeMaterialParams"],"线材质参数",{}),new ut([],"填充样式"),new pt([this,"fillMaterial"],"面材质",""),new it([this,"fillMaterialParams"],"面材质参数",{})]}}get strokeWidth(){return this.strokeStyle.width}set strokeWidth(e){this.strokeStyle={...this.strokeStyle,width:e}}get strokeWidthChanged(){return this.strokeStyleChanged}get strokeWidthType(){return this.strokeStyle.widthType}set strokeWidthType(e){this.strokeStyle={...this.strokeStyle,widthType:e}}get strokeWidthTypeChanged(){return this.strokeStyleChanged}get strokeColor(){return this.strokeStyle.color}set strokeColor(e){this.strokeStyle={...this.strokeStyle,color:[...e]}}get strokeColorChanged(){return this.strokeStyleChanged}get strokeMaterial(){return this.strokeStyle.material}set strokeMaterial(e){this.strokeStyle={...this.strokeStyle,material:e}}get strokeMaterialChanged(){return this.strokeStyleChanged}get strokeMaterialParams(){return this.strokeStyle.materialParams}set strokeMaterialParams(e){this.strokeStyle={...this.strokeStyle,materialParams:e}}get strokeMaterialParamsChanged(){return this.strokeStyleChanged}get strokeGround(){return this.strokeStyle.ground}set strokeGround(e){this.strokeStyle={...this.strokeStyle,ground:e}}get strokeGroundChanged(){return this.strokeStyleChanged}get fillColor(){return this.fillStyle.color}set fillColor(e){this.fillStyle={...this.fillStyle,color:[...e]}}get fillColorChanged(){return this.fillStyleChanged}get fillMaterial(){return this.fillStyle.material}set fillMaterial(e){this.fillStyle={...this.fillStyle,material:e}}get fillMaterialChanged(){return this.fillStyleChanged}get fillMaterialParams(){return this.fillStyle.materialParams}set fillMaterialParams(e){this.fillStyle={...this.fillStyle,materialParams:e}}get fillMaterialParamsChanged(){return this.fillStyleChanged}get fillGround(){return this.fillStyle.ground}set fillGround(e){this.fillStyle={...this.fillStyle,ground:e}}get fillGroundChanged(){return this.fillStyleChanged}};d(Wa,"createDefaultProps",()=>({...st.createDefaultProps(),pointed:!1,pointStyle:wt({size:1,sizeType:"screen",color:[1,1,1,1],material:"",materialParams:{},outlineColor:[1,0,0,1],outlineWidth:1}),stroked:!1,strokeStyle:wt({width:1,widthType:"screen",color:[1,1,1,1],material:"",materialParams:{},ground:!1}),filled:!1,fillStyle:wt({color:[1,1,1,1],material:"",materialParams:{},ground:!1})})),d(Wa,"type",Wa.register("ESLocalVector",Wa,{chsName:"本地矢量",tags:["ESObjects"],description:"本地矢量对象"}));let Va=Wa;const Sl=class Sl extends Va{};d(Sl,"type",Sl.register("ESLocalVector2D",Sl,{chsName:"本地矢量2D",tags:["ESObjects"],description:"本地矢量2D对象"}));let us=Sl;const ES=[["固定朝向",0],["面向屏幕旋转",1],["绕自身Z轴旋转",2]],CS=[["单面不透明",0],["双面不透明",1],["单面遮罩",2],["双面遮罩",3],["单面透明",4],["双面透明",5],["单面未遮挡透明",6],["双面未遮挡透明",7]],Ha=class Ha extends st{constructor(){super(...arguments);d(this,"_widgetEvent",this.dv(new O))}get widgetEvent(){return this._widgetEvent}getESProperties(){const t={...super.getESProperties()};return{...t,basic:[...t.basic,new X([this,"screenRender"],"屏幕渲染",!0),new X([this,"sizeByContent"],"尺寸自适应",!0),new Ae([this,"size"],"尺寸大小",[100,100]),new Ae([this,"anchor"],"偏移比例",[.5,1]),new Ae([this,"offset"],"像素偏移",[0,0]),new Pt([this,"renderMode"],CS,"渲染模式",0),new Pt([this,"rotationType"],ES,"漫游旋转类型",1),new pt([this,"actorTag"],"绑定对象"),new pt([this,"socketName"],"插槽名称"),new cn([this,"positionOffset"],"位置偏移"),new cn([this,"rotationOffset"],"相对姿态")],more:[...t.more,new M([this,"zOrder"],"排序",0)]}}};d(Ha,"createDefaultProps",()=>({...st.createDefaultProps(),screenRender:!0,size:ht([100,100]),anchor:ht([.5,1]),offset:ht([0,0]),sizeByContent:!0,renderMode:0,rotationType:1,zOrder:0,actorTag:"",socketName:"",positionOffset:ht([0,0,0]),rotationOffset:ht([0,0,0])})),d(Ha,"type",Ha.register("ESLabel",Ha,{chsName:"标签",tags:["ESObjects"],description:"标签对象"}));let ar=Ha;const qa=class qa extends rt{constructor(e){super(e)}};d(qa,"createDefaultProps",()=>({...rt.createDefaultProps(),show:!0,fillStyle:wt({color:[1,1,1,1],material:"",materialParams:{},ground:!1})})),d(qa,"type",qa.register("ESTestObject",qa,{chsName:"测试",tags:["ESObjects"],description:""}));let Jd=qa;const Mi=class Mi extends Ht{constructor(t){super(t);d(this,"_refreshTilesetEvent",this.dv(new O));d(this,"_tilesetReadyEvent",this.dv(new O));d(this,"_supportEdit",this.dv(j(!0)));d(this,"_highlightFeatureEvent",this.dv(new O));d(this,"_highlightFeatureAndFlyToEvent",this.dv(new O));d(this,"_strokeFeatureEvent",this.disposeVar(new O));d(this,"_getFeatureTableEvent",this.dv(new O));d(this,"_featureTableResultEvent",this.dv(new O));d(this,"_getMaterialNameListEvent",this.disposeVar(new O));d(this,"_setFeatureStyleEvent",this.dv(new O));d(this,"_setFeatureColorEvent",this.dv(new O));d(this,"_setFeatureVisableEvent",this.dv(new O));d(this,"_resetFeatureStyleEvent",this.dv(new O));d(this,"setMaterialInfoEvent",this.ad(new O));d(this,"_setMaterialEvent",this.disposeVar(new O));d(this,"_clippingPlanesId",this.dv(j("")));d(this,"_clippingPlaneIds",this.dv(j([])));d(this,"_flattenedPlaneId",this.dv(j("")));d(this,"_flattenedPlaneEnabled",this.dv(j(!1)));d(this,"_clippingPlaneId",this.dv(j("")));d(this,"_excavateId",this.dv(ht([])))}updateEditing(){var t;(t=this.activeViewer)==null||t.startEditing(this,[et.Translation,et.Rotation],{callSource:"inner"})}get refreshTilesetEvent(){return this._refreshTilesetEvent}refreshTileset(){this._refreshTilesetEvent.emit()}get tilesetReady(){return this._tilesetReadyEvent}get supportEdit(){return this._supportEdit.value}set supportEdit(t){this._supportEdit.value=t}get supportEditChanged(){return this._supportEdit.changed}get highlightFeatureEvent(){return this._highlightFeatureEvent}highlightFeature(t,n){this._highlightFeatureEvent.emit(t,n)}get highlightFeatureAndFlyToEvent(){return this._highlightFeatureAndFlyToEvent}highlightFeatureAndFlyTo(t,n,i,s){this._highlightFeatureAndFlyToEvent.emit(t,n,i,s)}get strokeFeatureEvent(){return this._strokeFeatureEvent}strokeFeature(t,n=[1,0,0,1]){this._strokeFeatureEvent.emit(t,n)}get getFeatureTableEvent(){return this._getFeatureTableEvent}getFeatureTable(){return Promise.race([new Promise(t=>{const n=this.d(this._featureTableResultEvent.donce(t));this._getFeatureTableEvent.emit(),setTimeout(()=>{n(),t(void 0)},2e3)})])}get getMaterialNameListEvent(){return this._getMaterialNameListEvent}getMaterialNameList(){return new Promise(t=>{const n=new V;n.d(this.getMaterialNameListEvent.don(i=>{i!=="start"&&(n.destroy(),t(i))})),this.getMaterialNameListEvent.emit("start"),setTimeout(()=>{n.isDestroyed()||(n.destroy(),t(void 0))},2e3)})}get setFeatureStyleEvent(){return this._setFeatureStyleEvent}setFeatureStyle(t){this._setFeatureStyleEvent.emit(t)}get setFeatureColorEvent(){return this._setFeatureColorEvent}setFeatureColor(t,n){this._setFeatureColorEvent.emit(t,typeof n=="string"?JSON.parse(n):n)}get setFeatureVisableEvent(){return this._setFeatureVisableEvent}setFeatureVisable(t,n){this._setFeatureVisableEvent.emit(t,typeof n=="string"?JSON.parse(n):n)}get resetFeatureStyleEvent(){return this._resetFeatureStyleEvent}resetFeatureStyle(){this._resetFeatureStyleEvent.emit()}get setMaterialEvent(){return this._setMaterialEvent}setMaterial(t){return new Promise(n=>{const i=new V;i.ad(this.setMaterialInfoEvent.donce(s=>{i.destroy(),n(s)})),this._setMaterialEvent.emit(t)})}get clippingPlanesId(){return this._clippingPlanesId.value}set clippingPlanesId(t){this._clippingPlanesId.value=t}get clippingPlanesIdChanged(){return this._clippingPlanesId.changed}get clippingPlaneIds(){return this._clippingPlaneIds.value}set clippingPlaneIds(t){this._clippingPlaneIds.value=t}get clippingPlaneIdsChanged(){return this._clippingPlaneIds.changed}get flattenedPlaneId(){return this._flattenedPlaneId.value}set flattenedPlaneId(t){this._flattenedPlaneId.value=t}get flattenedPlaneIdChanged(){return this._flattenedPlaneId.changed}get flattenedPlaneEnabled(){return this._flattenedPlaneEnabled.value}set flattenedPlaneEnabled(t){this._flattenedPlaneEnabled.value=t}get flattenedPlaneEnabledChanged(){return this._flattenedPlaneEnabled.changed}get clippingPlaneId(){return this._clippingPlaneId.value}set clippingPlaneId(t){this._clippingPlaneId.value=t}get clippingPlaneIdChanged(){return this._clippingPlaneId.changed}get excavateId(){return this._excavateId.value}set excavateId(t){this._excavateId.value=t}get excavateIdChanged(){return this._excavateId.changed}setLight122(){this.czmEnvironmentMapManager={...Yd}}getESProperties(){const t={...super.getESProperties()};return{...t,defaultMenu:"dataSource",basic:[...t.basic,new Ue([this,"maximumScreenSpaceError"],1,[0,256],"精度",16),new Pt([this,"materialMode"],[["常规","normal"],["科技感","technology"]],"材质模式","normal",!0),new Pt([this,"colorBlendMode"],[["默认","HIGHLIGHT"],["替换","REPLACE"],["混合","MIX"]],"颜色模式","HIGHLIGHT"),new it([this,"materialOverrideMap"],"材质替换",Mi.defaults.materialOverrideMap)],dataSource:[...t.dataSource,new it([this,"url"],"服务地址",Mi.defaults.url,void 0,!0)],coordinate:[...t.coordinate,new X([this,"editing"],"编辑",!1,!0),new cn([this,"offset"],"偏移",[0,0,0],!0),new Gh([this,"rotation"],"旋转",[0,0,0])],more:[...t.more,new it([this,"materialParams"],"materialParams",Mi.defaults.materialParams),new lt(["string","string"],(n,i)=>this.highlightFeature(n,i),["","rgba(255,0,0,1)"],"highlightFeature"),new lt(["string","string"],(n,i)=>this.setFeatureColor(n,i),["",""],"setFeatureColor"),new lt(["string","string"],(n,i)=>this.setFeatureVisable(n,i),["",""],"setFeatureVisable"),new lt([],()=>this.resetFeatureStyle(),[],"resetFeatureStyle"),new ut([],"ue"),new lt([],()=>this.refreshTileset(),[],"refreshTileset"),new pt([this,"actorTag"]),new X([this,"highlight"],"是否高亮"),new Mt([this,"highlightColor"]),new M([this,"highlightID"]),new ut([],"czm"),new ut([],"可视化"),new Ae([this,"czmImageBasedLightingFactor"],"反射强度"),new M([this,"czmAtmosphereScatteringIntensity"],"大气散射强度"),new it([this,"czmEnvironmentMapManager"],"动态环境贴图管理器"),new M([this,"czmMaximumMemoryUsage"],"最大内存"),new ut([],"常用"),new Pt([this,"czmClassificationType"],[["NONE","NONE"],["TERRAIN","TERRAIN"],["CESIUM_3D_TILE","CESIUM_3D_TILE"],["BOTH","BOTH"]],"czmClassificationType","NONE",!0),new it([this,"czmStyleJson"],"czmStyle"),new X([this,"czmBackFaceCulling"]),new X([this,"czmSkipLevelOfDetail"]),new X([this,"czmDebugWireframe"]),new M([this,"cacheBytes"],"最大缓存",512*1024*1024),new ut([],"调试信息"),new X([this,"czmDebugShowBoundingVolume"]),new X([this,"czmDebugShowContentBoundingVolume"]),new ut([],"clippingPlanes"),new X([this,"clippingPlaneEnabled"]),new X([this,"unionClippingRegions"]),new Mt([this,"clippingPlaneEdgeColor"]),new M([this,"clippingPlaneEdgeWidth"])]}}};d(Mi,"createDefaultProps",()=>({...Ht.createDefaultProps(),url:"",actorTag:"",materialMode:"normal",highlight:!1,maximumScreenSpaceError:16,highlightID:0,highlightColor:ht([1,0,0,1]),offset:re([0,0,0]),rotation:ht([0,0,0]),czmImageBasedLightingFactor:ht([1,1]),czmEnvironmentMapManager:Qt(void 0),czmLuminanceAtZenith:2,czmAtmosphereScatteringIntensity:2,czmMaximumMemoryUsage:512,czmClassificationType:"NONE",czmStyleJson:wt({}),czmBackFaceCulling:!0,czmDebugShowBoundingVolume:!1,czmDebugShowContentBoundingVolume:!1,czmSkipLevelOfDetail:!1,cacheBytes:512*1024*1024,colorBlendMode:"HIGHLIGHT",clippingPlaneEnabled:!0,unionClippingRegions:!0,clippingPlaneEdgeColor:ht([1,1,1,1]),clippingPlaneEdgeWidth:2,materialParams:{baseColor:[0,.5,1]},allowPicking:!0,materialOverrideMap:Qt({}),featureIdLabel:0,splitDirection:"NONE",czmDebugWireframe:!1})),d(Mi,"type",Mi.register("ES3DTileset",Mi,{chsName:"3DTileset",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"3DTileset"})),d(Mi,"supportEditingModes",[...Ht.supportEditingModes,et.Translation,et.Rotation]);let Tr=Mi;const Xa=class Xa extends st{constructor(t){super(t);d(this,"_isFlyInCreated",this.dv(j(!1)));d(this,"_readyEvent",this.dv(new O));this.collision=!1,this.d(this.createdEvent.don(()=>{setTimeout(()=>{if((this.editing??!1)||!this.position)this.d(Ui([this.positionChanged,this.editingChanged],()=>{this.editing||!this.position||this.isFlyInCreated&&this.flyTo()},{time:"donce"}));else{if(!this.isFlyInCreated)return;this.flyTo()}},1e3)}))}get isFlyInCreated(){return this._isFlyInCreated.value}set isFlyInCreated(t){this._isFlyInCreated.value=t}get isFlyInCreatedChanged(){return this._isFlyInCreated.changed}get readyEvent(){return this._readyEvent}getESProperties(){const t={...super.getESProperties()};return{...t,basic:[...t.basic,new Pt([this,"mode"],[["柱状警告","cylinder"],["圆形警告","circle"]],"模式","cylinder"),new M([this,"radius"],"半径",10)]}}};d(Xa,"createDefaultProps",()=>({...st.createDefaultProps(),mode:"cylinder",radius:10})),d(Xa,"type",Xa.register("ESAlarm",Xa,{chsName:"报警",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"警告类"}));let $d=Xa;const SS=[["扫描","scan"],["扩散","diffuse"]],Gs=class Gs extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new M([this,"radius"],"半径",1),new Pt([this,"mode"],SS,"模式",Gs.defaults.mode),new Mt([this,"color"],"颜色",Gs.defaults.color)]}}};d(Gs,"createDefaultProps",()=>({...st.createDefaultProps(),radius:1,mode:"scan",color:[0,.7,1,1],collision:!1})),d(Gs,"type",Gs.register("ESApertureEffect",Gs,{chsName:"光圈特效",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"光圈特效"}));let Kd=Gs;const Oo=class Oo extends It{constructor(t){super(t);d(this,"editingBindMode","circular")}getESProperties(){const t={...super.getESProperties()};return{...t,coordinate:[...t.coordinate,new M([this,"area"],"面积",0,!1,!0),new M([this,"perimeter"],"周长",0,!1,!0)]}}};d(Oo,"createDefaultProps",()=>({...It.createDefaultProps(),fillStyle:wt({color:[1,1,1,.5],material:"",materialParams:{},ground:!1}),strokeStyle:wt({width:1,widthType:"screen",color:[1,1,1,1],material:"",materialParams:{},ground:!1}),filled:!0,stroked:!1,collision:!1})),d(Oo,"type",Oo.register("ESGeoPolygon",Oo,{chsName:"地理多边形",tags:["ESObjects"],description:"地理多边形"})),d(Oo,"supportEditingModes",[...It.supportEditingModes,et.CircularAppend,et.CircularInsert]);let Xt=Oo;const ls=class ls extends Xt{get fillMaterial(){return this.fillStyle.material}set fillMaterial(e){this.fillStyle={...this.fillStyle,material:e}}get fillMaterialParams(){return this.fillStyle?this.fillStyle.materialParams:ls.defaults.fillStyle.materialParams}set fillMaterialParams(e){this.fillStyle={...this.fillStyle??ls.defaults.fillStyle,materialParams:e??ls.defaults.fillStyle.materialParams}}constructor(e){super(e)}};d(ls,"createDefaultProps",()=>({...Xt.createDefaultProps(),stroked:!0,filled:!0,units:ht(["SquareMeter_SquareKilometer","MU_Hectare","PerimeterMeter_PerimeterKilometer"]),fillStyle:wt({color:[1,1,1,1],material:"Material'/EarthSDKForUE/M_ES_Material.M_ES_Material'",materialParams:{Opacity:.4},ground:!0}),strokeStyle:wt({width:2,widthType:"screen",color:[1,1,1,1],material:"",materialParams:{},ground:!1})})),d(ls,"type",ls.register("ESAreaMeasurement",ls,{chsName:"面积测量",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE","_ES_Impl_Ol"],description:"面积测量"}));let Zd=ls;const Ya=class Ya extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,defaultMenu:"general",more:[...e.more,new ut([],"czm"),new Fu([this,"image"],"图片"),new cn([this,"translation"],"偏移")]}}};d(Ya,"createDefaultProps",()=>({...st.createDefaultProps(),image:"${earthsdk3-assets-script-dir}/assets/img/smoke.png",translation:ht([0,0,0])})),d(Ya,"type",Ya.register("ESBlastParticleSystem",Ya,{chsName:"粒子爆炸",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"粒子爆炸"}));let Qd=Ya;const oi=class oi extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new X([this,"reverse"],"反转",oi.defaults.reverse),new cn([this,"size"],"尺寸",oi.defaults.size),new Mt([this,"edgeColor"],"边框颜色",oi.defaults.edgeColor),new M([this,"edgeWidth"],"边框宽度",oi.defaults.edgeWidth),new pt([this,"targetID"],"瓦片图层",oi.defaults.targetID)]}}};d(oi,"createDefaultProps",()=>({...st.createDefaultProps(),reverse:!1,edgeColor:ht([1,1,1,1]),edgeWidth:2,size:ht([10,10,10]),targetID:""})),d(oi,"type",oi.register("ESBoxClipping",oi,{chsName:"体剖切",tags:["ESObjects","_ES_Impl_Cesium"],description:"体剖切,体裁剪,体裁切,盒裁切"}));let tf=oi;const bl=class bl extends st{constructor(){super(...arguments);d(this,"_thumbnail",this.dv(j("")));d(this,"_duration",this.dv(j(1)));d(this,"_resetWithCurrentCameraEvent",this.dv(new O));d(this,"_captureEvent",this.dv(new O))}get thumbnail(){return this._thumbnail.value}set thumbnail(t){this._thumbnail.value=t}get thumbnailChanged(){return this._thumbnail.changed}get duration(){return this._duration.value}set duration(t){this._duration.value=t}get durationChanged(){return this._duration.changed}flyIn(t=1,n="default"){this.flyInEvent.emit(t,-1,n)}get resetWithCurrentCameraEvent(){return this._resetWithCurrentCameraEvent}resetWithCurrentCamera(){this._resetWithCurrentCameraEvent.emit()}get captureEvent(){return this._captureEvent}capture(t,n){this._captureEvent.emit(t,n)}execOnCreating(){this.resetWithCurrentCamera()}async initByCurrent(){this.resetWithCurrentCamera()}getESProperties(){const t={...super.getESProperties()};return{...t,more:[...t.more,new ut([],"ESCameraView"),new lt([],()=>this.resetWithCurrentCamera(),[],"设置为当前视角"),new lt(["number","number"],(n,i)=>this.capture(n,i),[64,64],"获取缩略图"),new pt([this,"thumbnail"],"缩略图","",!0),new M([this,"duration"],"飞行时间",1,!0)]}}};d(bl,"type",bl.register("ESCameraView",bl,{chsName:"视角",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"视角"}));let Fc=bl;class Ac extends V{constructor(t,n,i){super();d(this,"_view",this.dv(new Fc));if(this.d(t.components.disposableAdd(this._view)),this._view.name=(i==null?void 0:i.name)??`视角${t.views.length+1}`,n){const a=this._view,u=n;a.duration=u.duration??1,a.position=u.position,a.rotation=u.rotation??[0,0,0],a.thumbnail=u.thumbnail??"",a.name=u.name}else{const a=(i==null?void 0:i.size)??[64,64];this.d($o(()=>{this._view.resetWithCurrentCamera(),this._view.capture(a[0],a[1])}))}const s=this._view,o=this.dv(Ie(s.durationChanged,s.positionChanged,s.rotationChanged,s.thumbnailChanged,s.nameChanged));this.d(o.don(()=>t.emitViewsWarpper()))}get view(){return this._view}get viewInfo(){const t=this._view;return{duration:t.duration,position:t.position,rotation:t.rotation,thumbnail:t.thumbnail,name:t.name}}}const Or=class Or extends rt{constructor(t){super(t);d(this,"_currentViewIndex",this.dv(j(-1)));d(this,"_viewWrappers",this.dv(new xu));d(this,"_currentViewWrapper",this.dv(j(void 0)));d(this,"_container",this.dv(j(void 0)));this.initProcessing();{const n=()=>{if(!this._currentViewWrapper.value)return;this._viewWrappers.indexOf(this._currentViewWrapper.value)===-1&&(this._currentViewWrapper.value=void 0)};n(),this.d(this._viewWrappers.changedEvent.don(n))}{const n=()=>{const i=this._currentViewWrapper.value;this._currentViewIndex.value=i?this._getIndex(i):-1};n(),this.d(this._viewWrappers.changedEvent.don(n)),this.d(this._currentViewWrapper.changed.don(n))}this.d(()=>{this.clearAllViews()})}get json(){return{...this._innerGetJson(),views:this.views}}set json(t){this._innerSetJson(t),this.views=t.views}get currentViewIndex(){return this._currentViewIndex.value}get currentViewIndexChanged(){return this._currentViewIndex.changed}emitViewsWarpper(){this._viewWrappers.changedEvent.emit(this._viewWrappers)}get container(){return this._container.value}get containerChanged(){return this._container.changed}set container(t){this._container.value=t}get views(){return ry(this._viewWrappers,t=>t.viewInfo)}get viewsChanged(){return this._viewWrappers.changedEvent}set views(t){if(t.length===this._viewWrappers.length){const n=this._viewWrappers;if(t.every((i,s)=>{const o=n.get(s).view;return i.duration===o.duration&&qd(i.position,o.position)&&qd(i.rotation,o.rotation)&&i.thumbnail===o.thumbnail&&i.name===o.name}))return}this.clearAllViews();for(let n of t)this._viewWrappers.push(new Ac(this,n))}_getIndex(t){return this._viewWrappers.indexOf(t)}clearAllViews(){for(let t of this._viewWrappers)t.destroy();this._viewWrappers.length=0}add(t=`视角${this.views.length+1}`,n=[64,64]){this._viewWrappers.push(new Ac(this,void 0,{name:t,size:n}))}update(t,n,i=[64,64]){if(t>=this._viewWrappers.length||t<0)return console.warn("index >= this._viewWrappers.length || index < 0"),!1;const s=this._viewWrappers.get(t);return n&&(s.view.name=n),s.view.resetWithCurrentCamera(),s.view.capture(i[0],i[1]),!0}addView(){this._viewWrappers.push(new Ac(this))}insertView(t){if(this._viewWrappers.length+1<=t||t<0){console.error("this._views.length <= index || index < 0");return}this._viewWrappers.splice(t,0,new Ac(this))}setCurrentView(t){if(t>=this._viewWrappers.length||t<0)return console.warn("index >= this._viewWrappers.length || index < 0"),!1;const n=this._viewWrappers.get(t);return this._currentViewWrapper.value=n,!0}resetView(t){if(t>=this._viewWrappers.length||t<0){console.warn("index >= this._viewWrappers.length || index < 0");return}const n=this._viewWrappers.get(t);n.view.resetWithCurrentCamera(),n.view.capture()}resetViewName(t,n){if(t>=this._viewWrappers.length||t<0){console.warn("index >= this._viewWrappers.length || index < 0");return}const i=this._viewWrappers.get(t);i.view.name=n}updateView(t,n){if(t>=this._viewWrappers.length||t<0)return console.warn("index >= this._viewWrappers.length || index < 0"),!1;const i=this._viewWrappers.get(t);return i.view.position=n.position,i.view.rotation=n.rotation??[0,0,0],i.view.duration=n.duration??1,i.view.thumbnail=n.thumbnail??"",i.view.name=n.name??"",!0}flyToView(t){if(this.setCurrentView(t)){if(!this._currentViewWrapper.value)throw new Error("this._currentViewWrapper.value");const n=this._currentViewWrapper.value.view.duration;this._currentViewWrapper.value.view.flyIn(n,this.flyMode??Or.defaults.flyMode)}}flyToPrevView(){const t=this._currentViewWrapper.value;if(!t)return this.flyToView(0),!0;const n=this._getIndex(t);return this.loop??Or.defaults.loop?(this.flyToView((this._viewWrappers.length+n-1)%this._viewWrappers.length),!0):n-1<0?!1:(this.flyToView(n-1),!0)}moveToPreView(){const t=this._currentViewWrapper.value;if(!t)return;const n=this._getIndex(t);if(n===0)return;const i=this._viewWrappers.splice(n-1,1,t)[0];this._viewWrappers.set(n,i)}moveToNextView(){const t=this._currentViewWrapper.value;if(!t)return;const n=this._getIndex(t);if(n===this._viewWrappers.length-1)return;const i=this._viewWrappers.splice(n+1,1,t)[0];this._viewWrappers.set(n,i)}flyToNextView(){const t=this._currentViewWrapper.value;if(!t)return this.flyToView(0),!0;const n=this._getIndex(t);return this.loop??Or.defaults.loop?(this.flyToView((n+1)%this._viewWrappers.length),!0):n+1>this._viewWrappers.length-1?!1:(this.flyToView(n+1),!0)}stop(){this._currentViewWrapper.value=void 0,this.playing=!1}deleteView(t){if(t<0||t>=this._viewWrappers.length){console.warn("index < 0 || index >= this._viewWrappers.length");return}this._viewWrappers.get(t).destroy(),this._viewWrappers.splice(t,1)}deleteCurrentView(){const t=this._currentViewWrapper.value;if(!t){console.warn("!this._currentViewWrapper.value");return}const n=this._getIndex(t);if(n===-1){console.warn("index === -1");return}this.deleteView(n)}transitionImageUrl(t){return rt.context.getStrFromEnv(t)}_flyStep(t){var o;if(!this.flyToNextView())return this.playing=!1,Promise.resolve();const n=this.intervalTime??Or.defaults.intervalTime,s=((((o=this._currentViewWrapper.value)==null?void 0:o.viewInfo.duration)??0)+n)*1e3;return t.promise(Nu(s)).then(()=>this._flyStep(t))}initProcessing(){const t=this.dv(Yn(async i=>this._flyStep(i))),n=()=>{this.playing?t.restart():t.cancel()};n(),this.d(this.playingChanged.don(n))}getESProperties(){const t={...super.getESProperties()};return{...t,more:[...t.more,new Pt([this,"flyMode"],[["默认","default"],["直线飞行","uniform"]],"飞行模式",Or.defaults.flyMode),new lt([],()=>this.addView(),[],"添加视角"),new lt(["number"],n=>this.insertView(n),[0],"插入视角"),new lt([],()=>this.clearAllViews(),[],"清空所有视角"),new lt([],()=>this.insertView(this.currentViewIndex+1),[],"当前位置插入视角"),new lt([],()=>this.flyToPrevView(),[],"上一个视角"),new lt([],()=>this.flyToNextView(),[],"下一个视角"),new lt([],()=>this.moveToPreView(),[],"当前视角移动到上一个视角"),new lt([],()=>this.moveToNextView(),[],"当前视角移动到下一个视角"),new lt(["number"],n=>this.flyToView(n),[0],"飞入指定视角"),new lt(["number"],n=>this.setCurrentView(n),[0],"设置当前视角"),new lt([],()=>this.deleteCurrentView(),[],"删除当前视角"),new lt(["number"],n=>this.deleteView(n),[0],"删除指定视角"),new lt(["number"],n=>this.resetView(n),[0],"重置视角"),new M([this,"currentViewIndex"],"当前序号",-1,!1,!0),new Rg([this,"playing"],()=>this.stop(),[this,"loop"],"播放",Or.defaults),new X([this,"playing"],"是否播放"),new lt([],()=>this.stop(),[],"停止"),new X([this,"loop"],"是否循环"),new M([this,"intervalTime"],"间隔时间"),new it([this,"views"],"视角集合",[],void 0,!0)]}}};d(Or,"createDefaultProps",()=>({...rt.createDefaultProps(),playing:!1,loop:!0,intervalTime:5,flyMode:"default"})),d(Or,"type",Or.register("ESCameraViewCollection",Or,{chsName:"视角集合",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"视角集合"}));let kc=Or;const Ja=class Ja extends st{constructor(t){super(t);d(this,"editingBindMode","doublePoints")}getESProperties(){const t={...super.getESProperties()};return{...t,basic:[...t.basic,new M([this,"aspectRatio"],"宽高比",1.77778),new M([this,"fov"],"横向夹角",90),new M([this,"far"],"视野长度",100),new M([this,"near"],"近面距离",5)]}}};d(Ja,"createDefaultProps",()=>({...st.createDefaultProps(),fov:90,aspectRatio:1.77778,far:100,near:5,collision:!1})),d(Ja,"type",Ja.register("ESCameraVisibleRange",Ja,{chsName:"摄像头可视域",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"摄像头可视域"}));let ef=Ja;const $a=class $a extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new Pt([this,"mode"],[["警车","policeCar"]],"模式","policeCar")]}}};d($a,"createDefaultProps",()=>({...st.createDefaultProps(),mode:"policeCar",allowPicking:!0})),d($a,"type",$a.register("ESCar",$a,{chsName:"车辆",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"警车等基础车辆模型"}));let Vc=$a;const No=class No extends It{constructor(t){super(t);d(this,"editingBindMode","circular")}getESProperties(){const t={...super.getESProperties()};return{...t,basic:[...t.basic,new M([this,"height"],"高度",10)],coordinate:[...t.coordinate,new M([this,"area"],"面积",0,!1,!0),new M([this,"perimeter"],"周长",0,!1,!0)]}}};d(No,"createDefaultProps",()=>({...It.createDefaultProps(),height:10,filled:!0,fillStyle:wt({material:"",materialParams:{},ground:!0,color:[1,1,1,1]})})),d(No,"type",No.register("ESClassification",No,{chsName:"倾斜单体化",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"平尾箭头"})),d(No,"supportEditingModes",[...It.supportEditingModes,et.CircularAppend,et.CircularInsert,et.HeightModify]);let jc=No;const Ka=class Ka extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new X([this,"showArrow"],"显示箭头",!0),new Mt([this,"edgeColor"],"线框颜色",[1,1,1,1]),new M([this,"edgetWidth"],"线框宽度",2),new M([this,"width"],"裁剪宽度",200),new M([this,"height"],"裁剪高度",200),new pt([this,"targetID"],"瓦片图层","")]}}};d(Ka,"createDefaultProps",()=>({...st.createDefaultProps(),showArrow:!0,edgeColor:ht([1,1,1,1]),edgetWidth:2,width:200,height:200,targetID:""})),d(Ka,"type",Ka.register("ESClippingPlane",Ka,{chsName:"裁切",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"ESClippingPlane"}));let nf=Ka;class bS extends V{constructor(e,t,n){super();const i=document.createElement("div");i.setAttribute("xe2-div",`ESCustomDiv(${t.id})(viewer: ${n.id}) container`);{const u=()=>{const c=` ${t.cssText}
66
66
  ${t.cssAllInitial?"all: initial;":""}
67
67
  ${t.show?"":"display: none"}
68
68
  `;i.style.cssText=c};u();const l=this.dv(Ie(t.cssAllInitialChanged,t.cssTextChanged,t.showChanged));this.d(l.don(u))}e.appendChild(i),this.d(()=>e.removeChild(i));const s=this.dv(Ie(t.instanceClassChanged,t.containerChanged,t.shadowDomChanged)),o=this.dv(new Ee(s,()=>{const{instanceClass:u,container:l}=t;if(!u||l)return;let c=i;if(i.firstElementChild&&i.removeChild(i.firstElementChild),t.shadowDom){const h=i.appendChild(document.createElement("div"));h.setAttribute("xe2-div",`ESCustomDiv(${t.id})(viewer: ${n.id}) container shadowDiv`),c=h.attachShadow({mode:"open"}).appendChild(document.createElement("div")),c.setAttribute("xe2-div",`ESCustomDiv(${t.id})(viewer: ${n.id}) container shadowDiv div`)}return new u(c,t,n)})),{_updateEvent:a}=t;this.d(a.don(u=>{if(o.obj)try{u(o.obj,t,n)}catch(l){console.error(`ESCustomDiv update error! ${l}`)}}))}}const cy=`class MyDiv {
@@ -429,7 +429,7 @@ timePosRots是一个内部包含三个元素的数组,第一个表示时间戳
429
429
  ${xy}
430
430
  \`\`\`
431
431
 
432
- `,wl=Date.now();new Date(wl).toISOString(),new Date(wl+24*60*60*1e3).toISOString();const Vi=class Vi extends rt{constructor(t){super(t);d(this,"_flyToEvent",this.disposeVar(new O));d(this,"_resetClockEvent",this.disposeVar(new O));this.ad(nt([this,"uri"],[this,"url"]))}get flyToEvent(){return this._flyToEvent}flyTo(t){this._flyToEvent.emit(t)}get resetClockEvent(){return this._resetClockEvent}resetClock(){this._resetClockEvent.emit()}getESProperties(){const t={...super.getESProperties()};return{...t,defaultMenu:"basic",basic:[...t.basic,new it([this,"url"],"路径","${earthsdk3-assets-script-dir}/assets/misc/simple.czml",void 0,!0),new X([this,"clockEnabled"],"启用",!1),new M([this,"multiplier"],"倍速",Vi.defaults.multiplier),new X([this,"autoResetClock"],"自动设置时钟",!0),new io([this,"startTime"],"开始时间",Vi.defaults.startTime,!0),new io([this,"stopTime"],"结束时间",Vi.defaults.stopTime,!0),new io([this,"currentTime"],"当前时间",Vi.defaults.currentTime,!0),new Pt([this,"clockStep"],[["TICK_DEPENDENT","TICK_DEPENDENT"],["SYSTEM_CLOCK_MULTIPLIER","SYSTEM_CLOCK_MULTIPLIER"],["SYSTEM_CLOCK","SYSTEM_CLOCK"]],"clockStep","SYSTEM_CLOCK_MULTIPLIER"),new Pt([this,"clockRange"],[["UNBOUNDED","UNBOUNDED"],["CLAMPED","CLAMPED"],["LOOP_STOP","LOOP_STOP"]],"clockRange","UNBOUNDED"),new X([this,"shouldAnimate"],"是否启用动画",!1)],general:[...t.general,new X([this,"show"],"是否显示",!0),new X([this,"collision"],"开启碰撞",!1),new X([this,"allowPicking"],"允许拾取",!1)],more:[...t.more,new lt(["number"],n=>this.flyTo(n),[1e3],"飞入"),new lt([],()=>this.resetClock(),[],"重设时钟"),new Es([this,"loadFuncStr"],"loadFnStr",xy,JS,!0)]}}};d(Vi,"createDefaultProps",()=>({show:!0,uri:void 0,url:void 0,allowPicking:!1,autoResetClock:!0,clockEnabled:!1,startTime:wl,stopTime:wl+24*60*60*1e3,currentTime:wl,multiplier:1,clockStep:"SYSTEM_CLOCK_MULTIPLIER",clockRange:"UNBOUNDED",shouldAnimate:!1,loadFuncStr:void 0,...rt.createDefaultProps()})),d(Vi,"type",Vi.register("ESCzml",Vi,{chsName:"ESCzml",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"Czml数据加载"}));let tp=Vi;const vu=class vu extends rt{getESProperties(){const e={...super.getESProperties()};return{...e,more:[...e.more,new ut([]),new X([this,"show"],"是否显示"),new M([this,"cssSize"],"尺寸"),new Ae([this,"cssPosition"],"位置"),new Fu([this,"imgUrl"],"图片地址")]}}};d(vu,"createDefaultProps",()=>({...rt.createDefaultProps(),show:!0,cssSize:100,cssPosition:[170,30],imgUrl:rt.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/zhinanzhen.png")})),d(vu,"type",vu.register("ESNavigator",vu,{chsName:"导航控件",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"导航控件"}));let ep=vu;const ji=class ji extends rt{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,more:[...e.more,new ut([],"通用","通用"),new X([this,"show"],"是否显示",ji.defaults.show),new M([this,"height"],"高度",ji.defaults.height,!0),new M([this,"fontSize"],"文字大小",ji.defaults.fontSize,!0),new Mt([this,"bgColor"],"背景颜色",ji.defaults.bgColor,!0)]}}};d(ji,"createDefaultProps",()=>({...rt.createDefaultProps(),show:!0,height:30,fontSize:14,bgColor:ht([71/255,71/255,71/255,.8])})),d(ji,"type",ji.register("ESViewerStatusBar",ji,{chsName:"状态栏",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"状态栏"}));let np=ji;const Bi=class Bi extends rt{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,more:[...e.more,new ut([],"通用","通用"),new X([this,"show"],"是否显示",Bi.defaults.show),new M([this,"height"],"高度",Bi.defaults.height,!0),new M([this,"fontSize"],"文字大小",Bi.defaults.fontSize,!0),new Mt([this,"bgColor"],"背景颜色",Bi.defaults.bgColor,!0)]}}};d(Bi,"createDefaultProps",()=>({...rt.createDefaultProps(),show:!0,height:30,fontSize:14,bgColor:ht([71/255,71/255,71/255,.8])})),d(Bi,"type",Bi.register("ESViewerStatusBarScale",Bi,{chsName:"比例尺状态栏",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"状态栏"}));let rp=Bi;const yu=class yu extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new pt([this,"url"],"路径","",!0),new M([this,"progress"],"进度",0,!1,!0)]}}};d(yu,"createDefaultProps",()=>({...st.createDefaultProps(),url:"",progress:0})),d(yu,"type",yu.register("ESGaussianSplatting",yu,{chsName:"高斯溅射模型",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"用于加载高斯溅射模型的 ES 对象"}));let ip=yu;const Go=class Go extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new pt([this,"mesh"],"mesh地址",Go.defaults.mesh)]}}};d(Go,"createDefaultProps",()=>({...st.createDefaultProps(),mesh:"StaticMesh'/Engine/BasicShapes/Sphere.Sphere'"})),d(Go,"type",Go.register("ESStaticMesh",Go,{chsName:"静态网格",tags:["ESObjects","_ES_Impl_UE"],description:"Unreal的Mesh对象"}));let sp=Go;const _u=class _u extends It{constructor(t){super(t);d(this,"_startEvent",this.dv(new O));d(this,"_clearEvent",this.dv(new O));d(this,"_eSGeoExtrudedPolygon");this._eSGeoExtrudedPolygon=this.disposeVar(new Io),this.ad(this.components.disposableAdd(this._eSGeoExtrudedPolygon)),this.eSGeoExtrudedPolygon.perPositionHeight=!0,this.eSGeoExtrudedPolygon.extrudedHeight=0,this.stroked=!0,this.strokeWidth=2,this.strokeColor=[1,0,0,1],this.ad(B([this.eSGeoExtrudedPolygon,"show"],[this,"show"])),this.ad(B([this.eSGeoExtrudedPolygon,"stroked"],[this,"stroked"])),this.ad(B([this.eSGeoExtrudedPolygon,"strokeWidth"],[this,"strokeWidth"])),this.ad(B([this.eSGeoExtrudedPolygon,"strokeColor"],[this,"strokeColor"])),this.ad(B([this.eSGeoExtrudedPolygon,"filled"],[this,"filled"])),this.ad(B([this.eSGeoExtrudedPolygon,"fillColor"],[this,"fillColor"])),this.ad(B([this.eSGeoExtrudedPolygon,"points"],[this,"points"])),this.ad(this.clearEvent.don(()=>{this.points=void 0,this.depths=void 0,this.windowPositions=void 0}))}get startEvent(){return this._startEvent}start(){this._startEvent.emit()}get clearEvent(){return this._clearEvent}clear(){this._clearEvent.emit()}get eSGeoExtrudedPolygon(){return this._eSGeoExtrudedPolygon}getESProperties(){const t={...super.getESProperties()};return{...t,basic:[...t.basic,new lt([],()=>this.start(),[],"开始分析"),new lt([],()=>this.clear(),[],"清除分析"),new it([this,"windowPositions"],"屏幕坐标",[],void 0,!1,!0),new it([this,"depths"],"深度值",[],void 0,!1,!0),new M([this,"radius"],"半径",1e4,!0)]}}};d(_u,"createDefaultProps",()=>({...It.createDefaultProps(),windowPositions:Hd([]),depths:re([]),radius:j(1e4)})),d(_u,"type",_u.register("ESSkylineAnalysis",_u,{chsName:"天际线分析",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"分析类"}));let op=_u;const fs=class fs extends Ht{constructor(e){super(e)}getESProperties(){const e=super.getESProperties();return{...e,basic:[...e.basic,new it([this,"data"],"数据",[],void 0,!0),new it([this,"gradient"],"渐变",fs.defaults.gradient,void 0,!0),new M([this,"radius"],"半径",fs.defaults.radius,void 0,!0),new M([this,"blur"],"模糊",fs.defaults.blur,!0),new X([this,"is3D"],"is3D",!1,!0)]}}};d(fs,"createDefaultProps",()=>({...Ht.createDefaultProps(),is3D:j(!1),data:Nl([]),gradient:Qt({".5":"green",".7":"yellow",".95":"red"}),radius:j(10),blur:j(.85)})),d(fs,"type",fs.register("ESHeatMap",fs,{chsName:"热力图",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"用于热力图的显示"}));let Xc=fs;const Wo=class Wo extends It{constructor(t){super(t);d(this,"editingBindMode","scatter")}};d(Wo,"createDefaultProps",()=>({...It.createDefaultProps(),pointed:!0})),d(Wo,"type",Wo.register("ESGeoPoints",Wo,{chsName:"地理点集合",tags:["ESObjects","_ES_Impl_Cesium"],description:"地图中的可视化地理点集合"})),d(Wo,"supportEditingModes",[...It.supportEditingModes,et.ScatterAppend,et.ScatterModify]);let El=Wo;const Ty=async(r,e=[],t)=>{const n=[];for(const i of e){const{coordinates:s}=i.geometry;for(const o of s){const a=await Promise.all(o.map(async u=>{let l=u[2]??0;if(t)if(t.type==="absolute")l=t.height??l;else if(t.type==="relative"){const c=await r.getTerrainHeight([u[0],u[1]])??0;l=(t.height??l)+c}else t.type==="terrain"&&(l=await r.getTerrainHeight([u[0],u[1]])??0);return[u[0],u[1],l]}));n.push({...i,points:a})}}return n},Oy=async(r,e=[],t)=>await Promise.all(e.map(async n=>{var u,l,c,h,f,p,v,C,S;const i=((u=n.geometry)==null?void 0:u.x)??((c=(l=n.geometry)==null?void 0:l.coordinates)==null?void 0:c[0]),s=((h=n.geometry)==null?void 0:h.y)??((p=(f=n.geometry)==null?void 0:f.coordinates)==null?void 0:p[1]);let a=((v=n.geometry)==null?void 0:v.z)??((S=(C=n.geometry)==null?void 0:C.coordinates)==null?void 0:S[2])??0;if(t)if(t.type==="absolute")a=t.height??a;else if(t.type==="relative"){const P=await r.getTerrainHeight([i,s])??0;a=(t.height??a)+P}else t.type==="terrain"&&(a=await r.getTerrainHeight([i,s])??0);return{...n,points:[i,s,a]}})),Ny=async(r,e=[],t)=>{const n=[];return await Promise.all(e.map(async i=>{const{coordinates:s}=i.geometry;await Promise.all(s.map(async o=>{const a=await Promise.all(o.map(async u=>{let l=u[2]??0;if(t)if(t.type==="absolute")l=t.height??l;else if(t.type==="relative"){const c=await r.getTerrainHeight([u[0],u[1]])??0;l=(t.height??l)+c}else t.type==="terrain"&&(l=await r.getTerrainHeight([u[0],u[1]])??0);return[u[0],u[1],l]}));n.push({...i,points:a})}))})),n};function $S(r){const e=Qe.lineString(r),t=Qe.length(e),n=Qe.along(e,t/2);return[n.geometry.coordinates[0],n.geometry.coordinates[1],n.geometry.coordinates[2]||0]}function KS(r,e){const t=Qe.lineString(r),n=Qe.length(t),i=Math.floor(n/e),s=[];if(s.push(r[0]),i<1)return[r[0]];for(let o=1;o<i;o+=1){const a=Qe.along(t,n*(o/i));s.push([a.geometry.coordinates[0],a.geometry.coordinates[1],a.geometry.coordinates[2]||0])}return s}function ZS(r){const e=[...r];JSON.stringify(r[0])!==JSON.stringify(r[r.length-1])&&e.push(r[0]);const t=Qe.polygon([e]),n=Qe.center(t);return[n.geometry.coordinates[0],n.geometry.coordinates[1],n.geometry.coordinates[2]||0]}function Dy(r,e,t){const n=r.dv(new ja);for(const i in t)i!=="type"&&(n[i]=t[i]);n.position=e,r.d(r.components.disposableAdd(n))}function ap(r,e,t,n){let i=n.textTemplate||n.symbol.text||"";const s=/{{(.*?)}}/;for(;s.test(i);){const c=i.match(s);if(c){const h=c[1].trim(),f=t[`${h}`]||"-";i=i.replace(c[0],f)}}let o=n.symbol;const{minVisibleDistance:a,maxVisibleDistance:u}=n;a&&u&&(o={...o,minVisibleDistance:a,maxVisibleDistance:u});const l={...o,text:i};Dy(r,e,l)}function Ga(r,e){const t={width:null,height:null,color:null,opacity:null,rotation:null};return e.forEach(n=>{n.type==="size"?n.axis==="width"?t.width=r[n.field]||null:n.axis==="height"&&(t.height=r[n.field]||null):n.type==="color"?t.color=r[n.field]||null:n.type==="opacity"?t.opacity=r[n.field]||null:n.type==="rotation"&&(t.rotation=r[n.field]||null)}),t}function up(r,e,t){const i={...e.symbol};if(t&&t.length>0){const s=Ga(r,t);for(let o in s)i[o]!==void 0&&s[o]!==null&&(i[o]=s[o])}return i}function lp(r,e,t){var l,c;const n=e,{uniqueValueInfos:i,field:s,fieldDelimiter:o,defaultSymbol:a}=n;let u={...a};if(Array.isArray(s)){const f=s.map(p=>r[p]??"").join(o);u=((l=i.find(p=>p.value==f))==null?void 0:l.symbol)||a}else u=((c=i.find(h=>h.value==r[s]))==null?void 0:c.symbol)||a;if(t&&t.length>0){const h=Ga(r,t);for(let f in h)u[f]!==void 0&&h[f]!==null&&(u[f]=h[f])}return u}function cp(r,e,t){const n=e,{classBreakInfos:i,field:s,defaultSymbol:o}=n;let a=o;const u=r[s];if(u===void 0||typeof u!="number")a=o;else{const l=i.find(c=>u<=c.maxValue&&u>=c.minValue);l?a=l.symbol:a=o}if(t&&t.length>0){const l=Ga(r,t);for(let c in l)a[c]!==void 0&&l[c]!==null&&(a[c]=l[c])}return a}function QS(r,e){function t(l,c,h,f){const p=w=>w*Math.PI/180,v=w=>w*180/Math.PI,C=p(l),S=p(h),P=p(f-c),y=Math.sin(P)*Math.cos(S),_=Math.cos(C)*Math.sin(S)-Math.sin(C)*Math.cos(S)*Math.cos(P),m=Math.atan2(y,_);return(v(m)+360)%360}function n(l,c,h,f,p){const C=b=>b*Math.PI/180,S=b=>b*180/Math.PI,P=f/6371e3,y=C(p),_=C(l),m=C(c),w=Math.asin(Math.sin(_)*Math.cos(P)+Math.cos(_)*Math.sin(P)*Math.cos(y)),E=m+Math.atan2(Math.sin(y)*Math.sin(P)*Math.cos(_),Math.cos(P)-Math.sin(_)*Math.sin(w));return{lat:S(w),lng:S(E),alt:h}}function i(l){const c=[];l.length>1&&c.push(t(l[0].lat,l[0].lng,l[1].lat,l[1].lng));for(let h=1;h<l.length-1;h++){const f=t(l[h-1].lat,l[h-1].lng,l[h].lat,l[h].lng),p=t(l[h].lat,l[h].lng,l[h+1].lat,l[h+1].lng);let v=(f+p)/2;Math.abs(f-p)>180&&(v=(v+180)%360),c.push(v)}return l.length>1&&c.push(t(l[l.length-2].lat,l[l.length-2].lng,l[l.length-1].lat,l[l.length-1].lng)),l.length===1&&c.push(0),c}if(!r||r.length<2)throw new Error("至少需要两个点才能生成路径");if(e<=0)throw new Error("宽度必须大于0");const s=e/2,o=i(r),a=[],u=[];for(let l=0;l<r.length;l++){const c=(o[l]+90)%360,h=(o[l]+270)%360,f=r[l].alt!==void 0?r[l].alt:0;a.push(n(r[l].lat,r[l].lng,f,s,c)),u.push(n(r[l].lat,r[l].lng,f,s,h))}return a.concat(u.reverse())}function tb(r,e,t,n){function i(C){return C*(Math.PI/180)}const s=6378137,o=i(r),a=i(e),u=i(t),l=i(n),c=u-o,h=l-a,f=Math.sin(c/2)**2+Math.cos(o)*Math.cos(u)*Math.sin(h/2)**2,p=2*Math.atan2(Math.sqrt(f),Math.sqrt(1-f));return s*p}const My=(r,e,t)=>Array.isArray(e)?e.map(s=>r[s]??"").join(t):r[e]??"";function Ry(r,e){const n={...e.symbol};return{points:r.map(i=>i.points),symbol:n}}function Ly(r,e){const t=e,{uniqueValueInfos:n,field:i,fieldDelimiter:s,defaultSymbol:o}=t,a=[],u=n.reduce((c,h)=>{const f=h.value.toString();return c[f]={points:[],value:h.value,symbol:h.symbol},c},{});for(let c=0;c<r.length;c++){const h=r[c],f=My(h,i,s);if(f!==void 0&&f!==""){const p=u[f.toString()];p?p.points.push(h.points):a.push(h.points)}else a.push(h.points)}const l=[];for(let c in u){const{points:h,symbol:f}=u[c];h.length>0&&l.push({points:h,symbol:f})}return a.length>0&&l.push({points:a,symbol:o}),l}function Fy(r,e){const t=e,{classBreakInfos:n,field:i,defaultSymbol:s}=t,o=[],a=n.map(l=>({...l,points:[]}));for(let l=0;l<r.length;l++){const c=r[l],h=c[i];if(h===void 0||typeof h!="number")o.push(c.points);else{const f=a.findIndex(p=>h<=p.maxValue&&h>=p.minValue);f!==-1?a[f].points.push(c.points):o.push(c.points)}}const u=[];return a.forEach(l=>{l.points.length>0&&u.push({points:l.points,symbol:l.symbol})}),o.length>0&&u.push({points:o,symbol:s}),u}function eb(r,e,t=[]){const i={...e.symbol},s=r.map(o=>{const a=Ga(o,t);return{position:o.points,rotation:a.rotation||i.rotation||[0,0,0],scale:i.scale||[1,1,1]}});return{url:i.url,locations:s}}function nb(r,e,t=[]){const n=e,{uniqueValueInfos:i,field:s,fieldDelimiter:o}=n,a=n.defaultSymbol,u=[],l=i.reduce((h,f)=>{const p=f.value.toString();return h[p]={locations:[],value:f.value,symbol:f.symbol},h},{});for(let h=0;h<r.length;h++){const f=r[h],p=My(f,s,o);if(p){const v=l[p.toString()];if(v){const C=Ga(f,t);v.locations.push({position:f.points,rotation:C.rotation||a.rotation||[0,0,0],scale:a.scale||[1,1,1]})}else u.push({position:f.points,rotation:a.rotation||[0,0,0],scale:a.scale||[1,1,1]})}else u.push({position:f.points,rotation:a.rotation||[0,0,0],scale:a.scale||[1,1,1]})}const c=[];for(let h in l){const{locations:f,symbol:p}=l[h];f.length>0&&c.push({url:p.url,locations:f})}return u.length>0&&c.push({url:a.url,locations:u}),c}function rb(r,e,t=[]){const n=e,{classBreakInfos:i,field:s}=n,o=n.defaultSymbol,a=[],u=i.map(c=>({...c,locations:[]}));for(let c=0;c<r.length;c++){const h=r[c],f=h[s];if(f===void 0||typeof f!="number")a.push({position:h.points,rotation:o.rotation||[0,0,0],scale:o.scale||[1,1,1]});else{const p=u.findIndex(v=>f<=v.maxValue&&f>=v.minValue);if(p!==-1){const v=Ga(h,t);u[p].locations.push({position:h.points,rotation:v.rotation||o.rotation||[0,0,0],scale:u[p].symbol.scale||[1,1,1]})}else a.push({position:h.points,rotation:o.rotation||[0,0,0],scale:o.scale||[1,1,1]})}}const l=[];return u.forEach(c=>{c.locations.length>0&&l.push({url:c.symbol.url,locations:c.locations})}),a.length>0&&l.push({url:o.url,locations:a}),l}class ib extends V{constructor(t,n,i,s){super();d(this,"labelingInfo");this.sceneObject=t;const o=n;if(s&&pi(o,a=>{this.renderLabel(a,s)}),i)if(i.type==="simple"){const{visualVariables:a}=i;if(i.symbol.type==="simple-point"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染!");const u=Ry(o,i);this._simplePointAllRender(u.points,u.symbol);return}if(i.symbol.type==="ESImageLabel"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染成图标!");const u=Ry(o,i);this._imageAllRender(u.points,u.symbol);return}if(i.symbol.type==="ESGltfModel"){console.log("PointLayer:大批量点渲染成gltf!");const{url:u,locations:l}=eb(o,i,a);this._modelAllRender(u,l);return}for(let u=0;u<o.length;u++){const l=up(o[u],i,a);this.render(o[u],l)}}else if(i.type==="unique-value"){const{visualVariables:a}=i;if(i.uniqueValueInfos.findIndex(h=>h.symbol.type!=="simple-point")===-1&&i.defaultSymbol.type==="simple-point"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染!"),Ly(o,i).forEach(({points:f,symbol:p})=>{this._simplePointAllRender(f,p)});return}if(i.uniqueValueInfos.findIndex(h=>h.symbol.type!=="ESImageLabel")===-1&&i.defaultSymbol.type==="ESImageLabel"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染成图标!"),Ly(o,i).forEach(({points:f,symbol:p})=>{this._imageAllRender(f,p)});return}if(i.uniqueValueInfos.findIndex(h=>h.symbol.type!=="ESGltfModel")===-1&&i.defaultSymbol.type==="ESGltfModel"){console.log("PointLayer:大批量点渲染成gltf!"),nb(o,i,a).forEach(({url:f,locations:p})=>{this._modelAllRender(f,p)});return}for(let h=0;h<o.length;h++){const f=lp(o[h],i,a);this.render(o[h],f)}}else if(i.type==="class-breaks"){const{visualVariables:a}=i;if(i.classBreakInfos.findIndex(h=>h.symbol.type!=="simple-point")===-1&&i.defaultSymbol.type==="simple-point"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染!"),Fy(o,i).forEach(({points:f,symbol:p})=>{this._simplePointAllRender(f,p)});return}if(i.classBreakInfos.findIndex(h=>h.symbol.type!=="ESImageLabel")===-1&&i.defaultSymbol.type==="ESImageLabel"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染成图标!"),Fy(o,i).forEach(({points:f,symbol:p})=>{this._imageAllRender(f,p)});return}if(i.classBreakInfos.findIndex(h=>h.symbol.type!=="ESGltfModel")===-1&&i.defaultSymbol.type==="ESGltfModel"){console.log("PointLayer:大批量点渲染成gltf!"),rb(o,i,a).forEach(({url:f,locations:p})=>{this._modelAllRender(f,p)});return}for(let h=0;h<o.length;h++){const f=cp(o[h],i,a);this.render(o[h],f)}}else if(i.type==="heatmap"){const{field:a,fieldValueMax:u,fieldValueMin:l}=i;console.time();const c=o.map(h=>{const{points:f}=h;if(a&&typeof a=="string"){let p=h[a];typeof p=="number"&&(typeof u=="number"&&p>u&&(p=u),typeof l=="number"&&p<l&&(p=l),f[2]=p)}return f});this.renderHeatmap(c,i)}else console.error("PointLayer: renderer type is not supported")}renderLabel(t,n){const{points:i}=t;ap(this.sceneObject,i,t,n)}renderHeatmap(t,n){const{is3D:i,radius:s,blur:o,gradient:a}=n,u=this.dv(new Xc);this.d(this.sceneObject.components.disposableAdd(u)),u.is3D=i,u.radius=s,u.blur=o,a&&(u.gradient={...a}),u.data=t}render(t,n){n.type==="simple-point"?this._simplePointRender(t,n):n.type==="ESImageLabel"?this._simpleImageRender(t,n):n.type==="ESGltfModel"?this._simpleModelRender(t,n):n.type==="ESTextLabel"?Dy(this.sceneObject,t.points,n):n.type==="ESParticleSystemPrimitive"?this._simpleParticleRender(t,n):console.error(" PointLayer: symbol type is not supported")}_simplePointRender(t,n){const{points:i}=t,{size:s,color:o,outlineColor:a,outlineWidth:u}=n,l=this.dv(new El);this.d(this.sceneObject.components.disposableAdd(l)),l.pointed=!0,l.pointOutlineColor=a,l.pointOutlineWidth=u,l.pointSize=s,l.pointColor=o,l.allowPicking=(n==null?void 0:n.allowPicking)??!0,l.extras={selected:!1},l.points=[i]}_simplePointAllRender(t,n){const{size:i,color:s,outlineColor:o,outlineWidth:a}=n,u=this.dv(new El);this.d(this.sceneObject.components.disposableAdd(u)),u.pointed=!0,u.pointOutlineColor=o,u.pointOutlineWidth=a,u.pointSize=i,u.pointColor=s,u.allowPicking=(n==null?void 0:n.allowPicking)??!0,u.points=[...t]}_simpleImageRender(t,n){const{points:i}=t,{rotation:s,offset:o,size:a,url:u,screenRender:l,anchor:c,renderMode:h,rotationType:f}=n,p=this.dv(new zc),v=this.dv(new ja);this.d(this.sceneObject.components.disposableAdd(p)),this.d(this.sceneObject.components.disposableAdd(v)),p.url=u,p.renderMode=h??0,s&&(p.rotation=s),o&&(p.offset=o),p.size=a||[32,32],c&&(p.anchor=c),f&&(p.rotationType=f),p.screenRender=l??!0,p.allowPicking=(n==null?void 0:n.allowPicking)??!0,p.extras={selected:!1},p.position=[...i],p.sizeByContent=!1,v.allowPicking=(n==null?void 0:n.allowPicking)??!0;const C=a?Math.max(...a)+10:Math.max(...p.size)+10;v.sizeByContent=!1,v.screenRender=!0,v.size=[C,C],v.borderRadius=[C,C,C,C],v.padding=[C/2,C/2,C/2,C/2],v.borderWidth=C/10,v.offset=[0,C/10+5],v.text="",v.backgroundColor=[0,0,0,0],v.borderColor=[0,0,0,0]}_imageAllRender(t,n){const i={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"MultiPoint",coordinates:t}}]},s=this.dv(new vl);this.d(this.sceneObject.components.disposableAdd(s));const o=this.dv(new ja);this.d(this.sceneObject.components.disposableAdd(o)),s.textDefaultText="";const{offset:a,size:u,url:l,anchor:c}=n;s.imageUrl=l,c&&(s.imageAnchor=c),a&&(s.imageOffset=a),s.imageSize=u||[32,32],s.url=i,s.allowPicking=(n==null?void 0:n.allowPicking)??!0,s.extras={selected:!1},o.allowPicking=!0;const h=u?Math.max(...u)+10:Math.max(...s.imageSize)+10;o.sizeByContent=!1,o.size=[h,h],o.borderRadius=[h,h,h,h],o.padding=[h/2,h/2,h/2,h/2],o.borderWidth=h/10,o.offset=[0,h/10+5],o.text="",o.backgroundColor=[0,0,0,0],o.borderColor=[0,0,0,0]}_simpleModelRender(t,n){const{points:i}=t,{rotation:s,scale:o,url:a}=n,u=this.dv(new zs);this.d(this.sceneObject.components.disposableAdd(u)),u.url=a,s&&(u.rotation=s),o&&(u.scale=o),u.position=[...i]}_modelAllRender(t,n){const i=this.dv(new zs);this.d(this.sceneObject.components.disposableAdd(i)),i.url=t,i.instances=n}_simpleParticleRender(t,n){const{points:i}=t,s=this.dv(new Uc);this.d(this.sceneObject.components.disposableAdd(s)),s.position=[...i],Object.keys(n).forEach(o=>{s[o]=n[o]})}}class sb extends V{constructor(e,t,n,i){super(),this.sceneObject=e;const s=t;if(i&&pi(s,o=>{this.renderLabel(o,i)}),n)if(n.type==="simple"){const{visualVariables:o}=n;pi(s,a=>{const u=up(a,n,o);this.render(a,u)})}else if(n.type==="unique-value"){const{visualVariables:o}=n;pi(s,a=>{const u=lp(a,n,o);this.render(a,u)})}else if(n.type==="class-breaks"){const{visualVariables:o}=n;pi(s,a=>{const u=cp(a,n,o);this.render(a,u)})}else console.error("PolyLineLayer: renderer type is not supported")}render(e,t){console.log("PolyLineLayer: render",e,t),t.type==="simple-line"?this._simpleLineRender(e,t):t.type==="ESPolygonFence"?this._esPolygonFenceRender(e,t):t.type==="ESPipeFence"?this._esPipeFenceRender(e,t):t.type==="ESPath"?this._esPathRender(e,t):t.type==="ESlineInterpolationModel"?this._eslineInterpolationModelRender(e,t):t.type==="ESlineWall"?this._eslineWallRender(e,t):console.error("PolyLineLayer: symbol type is not supported")}_simpleLineRender(e,t){const{points:n}=e;if(n.length<2){console.warn("PolyLineLayer: points length is less than 3");return}const i=this.dv(new Ni);this.d(this.sceneObject.components.disposableAdd(i)),i.points=[...n],i.stroked=!0,i.strokeColor=t.color,i.strokeWidth=t.width||1,i.allowPicking=(t==null?void 0:t.allowPicking)??!0,i.extras={selected:!1}}_esPolygonFenceRender(e,t){const{points:n}=e;if(n.length<3){console.warn("PolyLineLayer: points length is less than 3");return}const i=this.dv(new qc);this.d(this.sceneObject.components.disposableAdd(i)),i.points=[...n],i.height=t.height,i.materialMode=t.materialMode}_esPipeFenceRender(e,t){const{points:n}=e;if(n.length<2){console.warn("PolyLineLayer: points length is less than 3");return}const i=this.dv(new Hc);this.d(this.sceneObject.components.disposableAdd(i)),i.points=[...n],i.height=t.height,i.width=t.width,i.materialMode=t.materialMode}_esPathRender(e,t){const{points:n}=e;if(n.length<2){console.warn("PolyLineLayer: points length is less than 3");return}const i=this.dv(new Ua),s=this.dv(new za);if(this.d(this.sceneObject.components.disposableAdd(i)),this.d(this.sceneObject.components.disposableAdd(s)),i.points=[...n],i.speed=t.speed,i.strokeColor=t.color,i.materialMode=t.materialMode,i.strokeWidth=t.width||1,t!=null&&t.runModel){const a=t==null?void 0:t.runSpeed,u=t==null?void 0:t.modelSymbol;let l;switch(t==null?void 0:t.runModel){case"ESHuman":l=this.dv(new Po);break;case"ESCar":l=this.dv(new Vc);break;case"ESGltfModel":l=this.dv(new zs)}if(this.d(this.sceneObject.components.disposableAdd(l)),u)for(let h in u)l[h]=u[h];const c=[0];for(var o=0;o<n.length-1;o+=1){const h=n[o],f=n[o+1],p=tb(h[1],h[0],f[1],f[0]);c.push(c[o]+Math.ceil(p/a)*1e3)}i.timeStamps=c,t!=null&&t.runSpeed&&(i.currentPositionChanged.don(h=>{i.currentPosition&&(l.position=i.currentPosition,i.currentRotation&&(l.rotation=i.currentRotation))}),s.startTime=0,s.stopTime=c[c.length-1],s.playing=!0,s.loop=(t==null?void 0:t.runLoop)??!0,s.currentTimeChanged.don(h=>{i.path.currentTime=h}))}}_eslineInterpolationModelRender(e,t){const{points:n}=e;if(n.length<2){console.warn("PolyLineLayer: points length is less than 3");return}const i=(t==null?void 0:t.interpolationDistance)??0;if(!i)return;const s=KS(n,i/1e3),o=this.dv(new zs);this.d(this.sceneObject.components.disposableAdd(o)),o.url=t.url,o.instances=s.map(a=>({position:a,rotation:t.rotation,scale:t.scale}))}_eslineWallRender(e,t){const{points:n}=e;if(n.length<2){console.warn("PolyLineLayer: points length is less than 3");return}const i=t.height??0,s=t.width??0,o=t.extrudedHeight??0,a=n.map(c=>({lng:(c==null?void 0:c[0])??0,lat:(c==null?void 0:c[1])??0,alt:(c==null?void 0:c[2])??0})),u=QS(a,s).map(c=>[(c==null?void 0:c.lng)??0,(c==null?void 0:c.lat)??0,(c==null?void 0:c.alt)??0]),l=this.dv(new Io);this.d(this.sceneObject.components.disposableAdd(l)),l.height=i,l.extrudedHeight=o,l.filled=t.filled??!0,l.fillColor=t.fillColor,l.allowPicking=(t==null?void 0:t.allowPicking)??!0,l.extras={selected:!1},l.points=u}renderLabel(e,t){const{points:n}=e,i=$S(n);ap(this.sceneObject,i,e,t)}}function Ay(r,e){try{JSON.stringify(r[r.length-1])!==JSON.stringify(r[0])&&r.push(r[0]);const t=Qe.featureCollection(r.map(u=>Qe.point(u))),n=Qe.polygon([r]),i={gridType:"point",units:"meters"};return Qe.interpolate(t,e,i).features.map(u=>u.geometry.coordinates)[0][0].filter(u=>Qe.booleanPointInPolygon(Qe.point(u),n))}catch(t){return console.error(t),[]}}class ob extends V{constructor(e,t,n,i){super(),this.sceneObject=e;const s=t;if(i&&pi(s,o=>{this.renderLabel(o,i)}),n)if(n.type==="simple"){const{visualVariables:o}=n;pi(s,a=>{const u=up(a,n,o);this.render(a,u)})}else if(n.type==="unique-value"){const{visualVariables:o}=n;pi(s,a=>{const u=lp(a,n,o);this.render(a,u)})}else if(n.type==="class-breaks"){const{visualVariables:o}=n;pi(s,a=>{const u=cp(a,n,o);this.render(a,u)})}else console.error("PolyLineLayer: renderer type is not supported")}renderLabel(e,t){const{points:n}=e;console.log("PolygonLayer: renderLabel",n);const i=ZS(n);ap(this.sceneObject,i,e,t)}render(e,t){t.type==="simple-fill"?this._simplePolygonRender(e,t):t.type==="ESGeoExtrudedPolygon"?this._esGeoExtrudedPolygonRender(e,t):t.type==="PolygonInterpolateESGltfModel"?this._polygonInterpolateESGltfModelRender(e,t):t.type==="PolygonInterpolateESImageLabel"?this._polygonInterpolateESImageLabelRender(e,t):console.error("PolyLineLayer: symbol type is not supported")}_simplePolygonRender(e,t){const{points:n}=e;if(n.length<3){console.warn("PolygonLayer: points length is less than 3");return}const{color:i,outline:s,filled:o,ground:a}=t,{width:u,color:l,stroked:c}=s,h=this.dv(new Xt);this.d(this.sceneObject.components.disposableAdd(h)),h.stroked=c??!1,h.strokeColor=l??[1,1,1,1],h.strokeWidth=u??1,h.filled=o??!0,h.fillGround=a??!1,h.fillColor=i??[1,1,1,1],h.allowPicking=(t==null?void 0:t.allowPicking)??!0,h.extras={selected:!1},h.points=[...n]}_esGeoExtrudedPolygonRender(e,t){const{points:n}=e;if(n.length<3){console.warn("PolygonLayer: points length is less than 3");return}const{height:i,extrudedHeight:s,color:o}=t,a=this.dv(new Io);this.d(this.sceneObject.components.disposableAdd(a)),a.height=i,a.extrudedHeight=s,a.filled=!0,a.fillColor=o,a.allowPicking=(t==null?void 0:t.allowPicking)??!0,a.extras={selected:!1},a.points=[...n]}_polygonInterpolateESGltfModelRender(e,t){const{points:n}=e;if(n.length<3){console.warn("PolygonLayer: points length is less than 3");return}const{height:i,interpolateDistance:s,url:o,rotation:a,scale:u}=t,l=Ay(n,s??10),c=this.dv(new zs);this.d(this.sceneObject.components.disposableAdd(c)),c.url=o,c.instances=l.map(h=>({position:[...h,i??0],rotation:a??[0,0,0],scale:u??[1,1,1]}))}_polygonInterpolateESImageLabelRender(e,t){const{points:n}=e;if(n.length<3){console.warn("PolygonLayer: points length is less than 3");return}const{height:i,interpolateDistance:s,offset:o,size:a,url:u,anchor:l}=t,h={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"MultiPoint",coordinates:[...Ay(n,s??10).map(p=>[...p,i??0])]}}]},f=this.dv(new vl);this.d(this.sceneObject.components.disposableAdd(f)),f.textDefaultText="",f.imageUrl=u,l&&(f.imageAnchor=l),o&&(f.imageOffset=o),a&&(f.imageSize=a),f.url=h}}class ab extends V{constructor(t,n){super();d(this,"_initEvent",this.dv(new O));const i=this,s=async()=>{try{const a=t.featureProps;if(!a)return;const{heightMode:u,features:l,layerType:c,url:h}=a;let f=[];if(!l&&h){let p=await fetch(h).then(v=>v.json());return p=(p==null?void 0:p.features)??p,c==="polylineVector"?f=await Ty(n,p,u):c==="polygonVector"?f=await Ny(n,p,u):c==="pointVector"&&(f=await Oy(n,p,u)),f}else c==="polylineVector"?f=await Ty(n,l,u):c==="polygonVector"?f=await Ny(n,l,u):c==="pointVector"&&(f=await Oy(n,l,u));return f}catch(a){console.error(a);return}},o=this.dv(Ie(this._initEvent,t.featurePropsChanged));i.dv(new Ee(o,()=>{if(!t.featureProps)return;const a=t.featureProps;let u;return(async()=>{const{layerType:c,renderer:h,labelingInfo:f}=a,p=await s();!p||p.length===0||(c==="pointVector"?u=new ib(t,p,h,f):c==="polylineVector"?u=new sb(t,p,h,f):c==="polygonVector"&&(u=new ob(t,p,h,f)),console.log("polygonVectorLayer","createLayer",u))})().catch(console.error),{destroy:()=>{var c;(c=u==null?void 0:u.destroy)==null||c.call(u),u=void 0}}}));{const a=(u,l=1)=>{const c=Zv(u);if(!c)return;const{center:h,radius:f}=c;n.flyTo({distance:f*4,heading:0,pitch:-90,flyDuration:l??1,hDelta:0,pDelta:0},h)};i.d(t.flyToEvent.don(async u=>{const{featureProps:l}=t;if(!l)return;const c=await s();if(!c)return;let h=[];l.layerType==="polylineVector"?h=c.map(f=>f.points).flat():l.layerType==="polygonVector"?h=c.map(f=>f.points).flat():l.layerType==="pointVector"&&(h=c.map(f=>f.points)),h.length!==0&&a(h,u)}))}}init(){this._initEvent.emit()}}const wu=class wu extends Ht{constructor(t){super(t);d(this,"featureLayerMap",new Map);const n=this;n.d(n.viewerAttached.don(i=>{if(console.log("ESFeatureLayer","viewerAttached",i.id),n.featureLayerMap.has(i.id))return;const s=new ab(n,i);s.init(),n.featureLayerMap.set(i.id,s)})),n.d(n.viewerDetached.don(i=>{var s;console.log("ESFeatureLayer","viewerDetached",i.id),n.featureLayerMap.has(i.id)&&((s=n.featureLayerMap.get(i.id))==null||s.destroy(),n.featureLayerMap.delete(i.id))})),n.d(()=>{for(const i of n.featureLayerMap.values())i.destroy();n.featureLayerMap.clear()}),n.d(Ui(n.showChanged,()=>{for(const i of n.components.values())Reflect.has(i,"show")&&(i.show=n.show)},{immediate:!0}))}};d(wu,"createDefaultProps",()=>({...Ht.createDefaultProps(),featureProps:Qt(void 0)})),d(wu,"type",wu.register("ESFeatureLayer",wu,{chsName:"矢量图层",tags:["ESObjects"],description:"ESFeatureLayer"}));let hp=wu;const ps=class ps extends V{constructor(){super();d(this,"_loading",!1);d(this,"_loadedEvent",this.disposeVar(new O));d(this,"_loaded",!1);d(this,"_loadedPromiseResolve");d(this,"_loadedPromise",new Promise(t=>{this._loadedPromiseResolve=t}));d(this,"_processing",this.disposeVar(Yn(async t=>{if(this._loading=!0,globalThis.Hls)console.info("可能系统已经加载hlsjs,此处不再加载!");else{const n=rt.context.getStrFromEnv(ps.path);await t.promise(vh(n))}this._loading=!1,this._loaded=!0,this._loadedEvent.emit(),this._loadedPromiseResolve()})));this._processing.start()}get loading(){return this._loading}get loadedEvent(){return this._loadedEvent}get loaded(){return this._loaded}get loadedPromise(){return this._loadedPromise}get processing(){return this._processing}static instance(){return ps._instance=ps._instance||new ps,ps._instance}};d(ps,"path","${xr-utils-script-dir}/xr-static/xr-utils/hlsjs/1.4.12/hls.min.js"),d(ps,"_instance");let Yc=ps,ub=class extends V{constructor(t,n){super();d(this,"_element");this._complexImage=t,this._videoSrc=n;var i=document.createElement("video");i.src=this._videoSrc,i.style.position="absolute",i.style.top="0px",i.style.left="0px",i.style.zIndex="-100",i.style.visibility="hidden";{const s=()=>{i.crossOrigin=this._complexImage.crossOrigin};s(),this.dispose(this._complexImage.crossOriginChanged.disposableOn(s))}{const s=()=>{i.autoplay=this._complexImage.autoplay};s(),this.dispose(this._complexImage.autoplayChanged.disposableOn(s))}{const s=()=>{i.loop=this._complexImage.loop};s(),this.dispose(this._complexImage.loopChanged.disposableOn(s))}i.muted=!0,document.body.appendChild(i),this._element=i,this.dispose(()=>document.body.removeChild(i))}get element(){return this._element}};class lb extends V{constructor(t,n){super();d(this,"_videoDom");d(this,"_processing",this.disposeVar(Yn(async t=>{const{videoSrc:n}=this,i=Yc.instance();await t.promise(i.loadedPromise);const s=globalThis.Hls,o=new s,a=this.element;await to(t,()=>new Promise((u,l)=>{a.xbsjHLS=o,o.attachMedia(a),o.on(s.Events.MEDIA_ATTACHED,()=>{o.loadSource(n),o.on(s.Events.MANIFEST_PARSED,(c,h)=>{a.play(),u()})}),o.on(s.Events.ERROR,(c,h)=>{const{type:f,details:p,fatal:v}=h;v&&(o.destroy(),l(p))})}))})));d(this,"_processingStartup",this._processing.start());this._complexImage=t,this._videoSrc=n,this._videoDom=this.disposeVar(new ub(this._complexImage,""))}get videoSrc(){return this._videoSrc}get videoDom(){return this._videoDom}get element(){return this.videoDom.element}get processing(){return this._processing}}class ky extends V{constructor(t,n){super();d(this,"_videoDom");d(this,"_update",this.disposeVar(ea(()=>this.update())));d(this,"_updateStart",this._update.start());this._complexImage=t,this._imageUri=n,this._videoDom=this.disposeVar(new lb(this._complexImage,this._imageUri))}get videoDom(){return this._videoDom}get videoElement(){return this._videoDom.element}update(){if(this.videoElement.readyState<2)return;const t=this._complexImage,{videoWidth:n,videoHeight:i}=this.videoElement;t.size=[n,i],t.pixelFormat="RGBA",t.copyTexture({source:this.videoElement})}}const gs=class gs extends V{constructor(){super();d(this,"_loading",!1);d(this,"_loadedEvent",this.disposeVar(new O));d(this,"_loaded",!1);d(this,"_loadedPromiseResolve");d(this,"_loadedPromise",new Promise(t=>{this._loadedPromiseResolve=t}));d(this,"_processing",this.disposeVar(Yn(async t=>{if(this._loading=!0,globalThis.flvjs)console.info("可能系统已经加载flvjs,此处不再加载!");else{const n=rt.context.getStrFromEnv(gs.path);await t.promise(vh(n))}this._loading=!1,this._loaded=!0,this._loadedEvent.emit(),this._loadedPromiseResolve()})));this._processing.start()}get loading(){return this._loading}get loadedEvent(){return this._loadedEvent}get loaded(){return this._loaded}get loadedPromise(){return this._loadedPromise}get processing(){return this._processing}static instance(){return gs._instance=gs._instance||new gs,gs._instance}};d(gs,"path","${xr-utils-script-dir}/xr-static/xr-utils/flvjs/1.6.2/flv.min.js"),d(gs,"_instance");let Jc=gs;class cb extends V{constructor(t,n){super();d(this,"_element");this._complexImage=t,this._videoSrc=n;var i=document.createElement("video");i.src=this._videoSrc,i.style.position="absolute",i.style.top="0px",i.style.left="0px",i.style.zIndex="-100",i.style.visibility="hidden";{const s=()=>{i.crossOrigin=this._complexImage.crossOrigin};s(),this.dispose(this._complexImage.crossOriginChanged.disposableOn(s))}{const s=()=>{i.autoplay=this._complexImage.autoplay};s(),this.dispose(this._complexImage.autoplayChanged.disposableOn(s))}{const s=()=>{i.loop=this._complexImage.loop};s(),this.dispose(this._complexImage.loopChanged.disposableOn(s))}i.muted=!0,document.body.appendChild(i),this._element=i,this.dispose(()=>document.body.removeChild(i))}get element(){return this._element}}class hb extends V{constructor(t,n){super();d(this,"_videoDom");d(this,"_processing",this.disposeVar(Yn(async t=>{const{videoSrc:n}=this,i=Jc.instance();await t.promise(i.loadedPromise);const s=globalThis.flvjs,o=this.element;await to(t,()=>new Promise((a,u)=>{if(!s.isSupported()){u("flvjs不支持!");return}var l=s.createPlayer({type:"flv",url:n});l.attachMediaElement(o),l.load(),l.play(),o.xbsjFlvPlayer=l}))})));this._complexImage=t,this._videoSrc=n,this._videoDom=this.disposeVar(new cb(this._complexImage,"")),this._processing.start()}get videoSrc(){return this._videoSrc}get videoDom(){return this._videoDom}get element(){return this.videoDom.element}get processing(){return this._processing}}class Vy extends V{constructor(t,n){super();d(this,"_videoDom");d(this,"_update",this.disposeVar(ea(()=>this.update())));d(this,"_updateStart",this._update.start());this._complexImage=t,this._imageUri=n,this._videoDom=this.disposeVar(new hb(t,this._imageUri))}get videoDom(){return this._videoDom}get videoElement(){return this._videoDom.element}update(){if(this.videoElement.readyState<2)return;const t=this._complexImage,{videoWidth:n,videoHeight:i}=this.videoElement;t.size=[n,i],t.pixelFormat="RGBA",t.copyTexture({source:this.videoElement})}}function jy(r){const e=r.substring(r.lastIndexOf(".")+1);return Cl.suffixTypes[e]}class Cl extends V{constructor(){super();d(this,"_enabled",this.disposeVar(j(!1)));d(this,"_uri",this.disposeVar(j("")));d(this,"_type",this.disposeVar(j(void 0)));d(this,"_size",this.disposeVar(re(void 0)));d(this,"_pixelFormat",this.disposeVar(j("RGBA")));d(this,"_flipY",this.disposeVar(j(!0)));d(this,"_crossOriginReact",this.disposeVar(j("")));d(this,"_autoplayReact",this.disposeVar(j(!0)));d(this,"_loopReact",this.disposeVar(j(!0)));d(this,"_copyTextureEvent",this.disposeVar(new O));d(this,"_imageProcessingResettingEvent",this.disposeVar(Ie(this.enabledChanged,this.uriChanged,this.typeChanged)));d(this,"_imageProcessingResetting",this.disposeVar(new Ee(this._imageProcessingResettingEvent,()=>{do{if(!this.enabled||!this.uri)break;let{type:t}=this;if(t||(t=jy(this.uri)),!t)break;if(t==="img")return new dg(this,this.uri);if(t==="video")return new gg(this,this.uri);if(t==="gif")return new bg(this,this.uri);if(t==="hls")return new ky(this,this.uri);if(t==="flv")return new Vy(this,this.uri)}while(!1)})));d(this,"_createNativeTextureEvent",this.disposeVar(Ie(this.enabledChanged,this.sizeChanged,this.pixelFormatChanged,this.flipYChanged)))}get enabled(){return this._enabled.value}set enabled(t){this._enabled.value=t}get enabledChanged(){return this._enabled.changed}get uri(){return this._uri.value}set uri(t){this._uri.value=t}get uriChanged(){return this._uri.changed}get type(){return this._type.value}set type(t){this._type.value=t}get typeChanged(){return this._type.changed}get size(){return this._size.value}set size(t){this._size.value=t}get sizeChanged(){return this._size.changed}get pixelFormat(){return this._pixelFormat.value}set pixelFormat(t){this._pixelFormat.value=t}get pixelFormatChanged(){return this._pixelFormat.changed}get flipY(){return this._flipY.value}set flipY(t){this._flipY.value=t}get flipYChanged(){return this._flipY.changed}get crossOrigin(){return this._crossOriginReact.value}set crossOrigin(t){this._crossOriginReact.value=t}get crossOriginChanged(){return this._crossOriginReact.changed}get autoplay(){return this._autoplayReact.value}set autoplay(t){this._autoplayReact.value=t}get autoplayChanged(){return this._autoplayReact.changed}get loop(){return this._loopReact.value}set loop(t){this._loopReact.value=t}get loopChanged(){return this._loopReact.changed}get copyTextureEvent(){return this._copyTextureEvent}copyTexture(t){this._createNativeTextureEvent.flush(),this._copyTextureEvent.emit(t)}get imageProcessingResetting(){return this._imageProcessingResetting}get createNativeTextureEvent(){return this._createNativeTextureEvent}copyFromCanvas(t){if(t.width<=0||t.height<=0){console.warn("canvas.width <= 0 || canvas.height <= 0");return}this.size=[t.width,t.height],this.pixelFormat="RGBA",this.copyTexture({source:t})}}d(Cl,"types",pg),d(Cl,"czmPixelFormats",fg),d(Cl,"suffixTypes",{png:"img",jpg:"img",svg:"img",webp:"img",gif:"gif",mp4:"video",mov:"video",webm:"video",flv:"flv",m3u8:"hls"});const db=[0,0,0,0];class fb{constructor(){d(this,"_value",[]);d(this,"_valueStr","[]");d(this,"_valueChanged");this.value=[{ratio:0,rgba:[0,0,1,1]},{ratio:.2,rgba:[0,1,0,1]},{ratio:.8,rgba:[1,1,0,1]},{ratio:1,rgba:[1,0,0,1]}]}get valueChanged(){return this._valueChanged||(this._valueChanged=new O),this._valueChanged}set value(e){if(e.length===0){console.error("value.length === 0");return}let t;if(this._value.length===e.length){const i=[...e].sort((s,o)=>s.ratio-o.ratio);if(t=JSON.stringify(i),this._valueStr===t)return}t=t||JSON.stringify([...e].sort((i,s)=>i.ratio-s.ratio));const n=this._value;if(this._value=JSON.parse(t),this._value.length===0)throw console.error("this._colorStops.length === 0"),new Error("this._colorStops.length === 0");this._valueChanged&&this._valueChanged.emit(this._value,n)}get value(){return JSON.parse(JSON.stringify(this._value))}get valueStr(){return this._valueStr}get minRatio(){return this._value[0].ratio}get maxRatio(){return this._value[this._value.length-1].ratio}_getRatioIndex(e){if(e<this._value[0].ratio||e>this._value[this._value.length-1].ratio)throw console.error("ratio <= this._colorStops[0].ratio || ratio >= this._colorStops[this._colorStops.length - 1].ratio"),new Error("ratio <= this._colorStops[0].ratio || ratio >= this._colorStops[this._colorStops.length - 1].ratio");let t=this._value.length;for(let n=0;n<t-1;++n)if(e>=this._value[n].ratio&&e<=this._value[n+1].ratio)return n;throw console.error("shoud not be here!"),new Error("shoud not be here!")}getRatioColor(e,t){e=jl(e,this.minRatio,this.maxRatio);const n=this._getRatioIndex(e),i=this._value[n],s=this._value[n+1],o=(e-i.ratio)/(s.ratio-i.ratio);for(let a=0;a<4;++a)t[a]=i.rgba[a]*(1-o)+s.rgba[a]*o;if(t.some(Number.isNaN)){console.error("result NaN");return}return t}getColorsInUint8(e){if(e.length%4!==0)throw console.error("result.length % 4 !== 0"),new Error("result.length % 4 !== 0");const t=e.length/4,n=1/t;for(let i=0;i<t;++i){const s=db;this.getRatioColor((i+.5)*n,s)||s.splice(0,4,0,0,0,0);for(let o=0;o<4;++o)e[i*4+o]=255*s[o]|0}return e}}class pb extends V{constructor(){super(...arguments);d(this,"registerEngines",{})}register(t,n,i){const s=this.registerEngines[t]||new Map;return s.has(n)&&console.warn(`register warn:${t}中${n}的实现类已经被注册,再次注册会覆盖。`),s.set(n,i),this.registerEngines[t]=s,n}getEngineObjConstructor(t,n){const i=this.registerEngines[n];if(!i)return;let s=t.constructor,o=t.typeName,a=i.get(o);if(a)return a;if(t.components.main)return;const u=o;for(;o!=="ESSceneObject"&&(s=s.getParentClass(),!!s);)if(o=s.type,a=i.get(o),a)return console.warn(`未找到${u}在${n}中对应的实现类! 使用父类${o}的实现类!`),a}createEngineObject(t,n){const i=this.getEngineObjConstructor(t,n.typeName);if(i){const s=new i(t,n);return s.createdEvent.emit(),s}else{const s=new xo(t,n);return s.createdEvent.emit(),s}}}class gb extends V{constructor(){super(...arguments);d(this,"registerEngines",{})}register(t,n,i){const s=this.registerEngines[t]||new Map;s.has(n)&&console.warn(`register warn:${t}中${n}的实现类已经被注册,再次注册会覆盖。`),s.set(n,i),this.registerEngines[t]=s}getEngineObjConstructor(t,n){const s=(this.registerEngines[n]||new Map).get(t);if(s)return s;console.warn(`未找到${t}在${n}中对应的实现类!`)}createEngineObject(t,n){const i=this.getEngineObjConstructor(t.typeName,n.typeName);if(i){const s=new i(t,n);return s.createdEvent.emit(),s}else{const s=new xo(t,n);return s.createdEvent.emit(),s}}}const Lr=class Lr extends V{constructor(t,n,i=!1){super();d(this,"_createdEvent",this.dv(new O));d(this,"_id",++Lr._accumId);this._sceneObject=t,this._viewer=n;{if(i)return;const s=(o,a)=>{for(let u of o)this._viewer.delete(u);for(let u of a)u.parentID=this.sceneObject.id,this._viewer.add(u)};s([],this._sceneObject.components.values()),this.d(this._sceneObject.components.toChange.don(s)),this.d(()=>s(this._sceneObject.components.values(),[]))}}get createdEvent(){return this._createdEvent}get sceneObject(){return this._sceneObject}get viewer(){return this._viewer}get id(){return this._id}};d(Lr,"context",new pb),d(Lr,"contextEditing",new gb),d(Lr,"register",Lr.context.register.bind(Lr.context)),d(Lr,"registerEditing",Lr.contextEditing.register.bind(Lr.contextEditing)),d(Lr,"_accumId",-1);let xo=Lr;class mb extends V{constructor(){super();d(this,"_tools",new Map);this._tools.set("default",new Map)}_getMcpTool(t){const{description:n,inputSchema:i}=t.params,s=vt.object(i),o=$y(s);return{name:t.name,description:n,inputSchema:o}}listTools(){return this.groupTools().flatMap(({tools:n})=>n)}groupTools(){return Array.from(this._tools.entries()).map(([n,i])=>({group:n,tools:Array.from(i.values()).map(this._getMcpTool,this)}))}_getGroup(t){return this._tools.has(t)||(console.warn(`group "${t}" does not exist.`),this._tools.set(t,new Map)),this._tools.get(t)}_getTool(t){for(const n of this._tools.values())if(n.has(t))return n.get(t)}_registerTool(t,n="default"){const i=this._getGroup(n);for(const[s,o]of this._tools.entries())if(o.has(t.name)&&s!==n){console.warn(`Tool "${t.name}" is already registered in group "${s}". Tool names must be unique across all groups.`);return}i.has(t.name)&&console.warn(`Tool "${t.name}" is already registered in group "${n}". Now replacing it.`),i.set(t.name,t)}_registerTools(t,n="default"){t.forEach(i=>this._registerTool(i,n))}async callTool(t){try{const{name:n,arguments:i}=t;console.log(`调用工具 ${n},参数:`,i);const s=this._getTool(n);if(!s||!s.func)throw new Error(`Tool "${n}" does not exist.`);const o=await s.func(i);return console.log(`调用工具 ${n} 结果:`,o),o}catch(n){throw console.error(`调用工具 ${t.name} 失败:`,n),n}}}function Ze(r,e){return{content:[{type:"text",text:JSON.stringify({status:"error",msg:e||"执行失败",data:r},null,2)}]}}function Wn(r,e){return{content:[{type:"text",text:JSON.stringify({status:"success",msg:e||"执行成功",data:r},null,2)}]}}const vb=r=>[{name:"flyToGlobalOrChina",params:{description:"相机视角飞行定位到全球视角或中国视角(op=global/china)",inputSchema:{op:vt.enum(["global","china"])}},func:async({op:e})=>{var t;try{let n=[120.363551,28.909792,22191655],i=[.1,-90,0];return e==="china"&&(n=[106.245513,37.209745,9812382],i=[.1,-90,0]),(t=r.activeViewer)==null||t.flyIn(n,i,1),Wn()}catch(n){return Ze(n)}}},{name:"getCurrentCameraInfo",params:{description:"获取当前相机视角下的视角信息",inputSchema:{}},func:async({})=>{var e;try{const t=(e=r.activeViewer)==null?void 0:e.getCurrentCameraInfo();return t?Wn(t):Ze()}catch(t){return Ze(t)}}},{name:"saveCameraView",params:{description:"保存或记录当前相机视角信息",inputSchema:{}},func:async({})=>{try{return r.cameraViewsManager.addView(),Wn()}catch(e){return Ze(e)}}},{name:"cameraViewsManagerControl",params:{description:"播放(play)或停止(stop)视角播放器(视角控制器/视角轮播)",inputSchema:{op:vt.enum(["play","stop"])}},func:async({op:e})=>{try{return e==="play"?r.cameraViewsManager.playing=!0:r.cameraViewsManager.stop(),Wn()}catch(t){return Ze(t)}}},{name:"flyIn",params:{description:"根据提供的经度、纬度、高度信息(position:[x,y,z]) 、姿态信息(rotation:[h,p,r]) 来改变相机视角位置,实现飞行定位",inputSchema:{position:vt.object({x:vt.number(),y:vt.number(),z:vt.number().optional()}),rotation:vt.object({h:vt.number(),p:vt.number(),r:vt.number()}).optional()}},func:async({position:e,rotation:t})=>{var n;try{const i={position:[e.x,e.y,e.z||100],rotation:[t.h||0,t.p||0,t.r||0]};return(n=r.activeViewer)==null||n.flyIn(i.position,i.rotation),Wn()}catch(i){return Ze(i)}}},{name:"flyToByObjectId",params:{description:"根据提供的对象 id 来改变相机视角位置,实现对象的飞行定位",inputSchema:{id:vt.string()}},func:async({id:e})=>{try{const t=r.getSceneObjectById(e);return t?Reflect.has(t,"flyTo")?(t.flyTo(),Wn()):Ze(`对象 ${t.id} 没有方法 flyTo`):Ze("未查询到该对象")}catch(t){return Ze(t)}}},{name:"changeToMap",params:{description:"漫游模式切换为地图模式(默认方式/正常模式/常规模式/退出漫游模式)",inputSchema:{}},func:async({})=>{var e;try{return(e=r.activeViewer)==null||e.changeToMap(),Wn()}catch(t){return Ze(t)}}},{name:"changeToRotateGlobe",params:{description:"漫游模式切换为全球旋转模式(地球旋转模式), 默认参数:纬度(latitude)38度,高度(height)10000000米,旋转周期(cycleTime)60秒",inputSchema:{latitude:vt.number().optional(),height:vt.number().optional(),cycleTime:vt.number().optional()}},func:async({latitude:e,height:t,cycleTime:n})=>{var i;try{const s={latitude:e||38,height:t||1e7,cycleTime:n||60};return(i=r.activeViewer)==null||i.changeToRotateGlobe(s.latitude,s.height,s.cycleTime),Wn()}catch(s){return Ze(s)}}},{name:"changeToRotatePoint",params:{description:"根据提供的位置点position经纬度高程度坐标([x,y,z],必需),将漫游模式切换为绕点中心旋转模式(绕点旋转模式/点位观察模式),其他参数及默认值:距离(distance)50000米、旋转周期(orbitPeriod)60秒、水平角度(heading)0、俯仰角度(pitch)-30",inputSchema:{position:vt.object({x:vt.number(),y:vt.number(),z:vt.number()}),distance:vt.number().optional(),orbitPeriod:vt.number().optional(),heading:vt.number().optional(),pitch:vt.number().optional()}},func:async({position:e,distance:t,orbitPeriod:n,heading:i,pitch:s})=>{var o;try{const a={position:[e.x,e.y,e.z],distance:t||5e4,orbitPeriod:n||60,heading:i||0,pitch:s||-30};return(o=r.activeViewer)==null||o.changeToRotatePoint(a.position,a.distance,a.orbitPeriod,a.heading,a.pitch),Wn()}catch(a){return Ze(a)}}},{name:"changeToWalk",params:{description:"根据提供的位置点position经纬度高程度坐标([x,y,z],必需),将漫游模式切换为第一人称模式(步行模式/第一人称漫游模式),参数:起始位置经纬度高程(position,必需)、跳跃的 Z 轴速度(jumpZVelocity)、眼睛高度(eyeHeight)",inputSchema:{position:vt.object({x:vt.number(),y:vt.number(),z:vt.number()}),jumpZVelocity:vt.number().optional(),eyeHeight:vt.number().optional()}},func:async({position:e,jumpZVelocity:t,eyeHeight:n})=>{var i;try{const s={position:[e.x,e.y,e.z],jumpZVelocity:t||4.2,eyeHeight:n||1.6};return(i=r.activeViewer)==null||i.changeToWalk(s.position,s.jumpZVelocity,s.eyeHeight),Wn()}catch(s){return Ze(s)}}},{name:"changeToLine",params:{description:"根据提供的线对象id(必需),将漫游模式切换为沿线漫游模式(沿线运动模式), 参数:线条对象id(lineObjectId,必需)、速度(speed)、高度偏移(heightOffset)、是否循环(loop)、转弯速率(turnRateDPS)、线路模式(lineMode)",inputSchema:{lineObjectId:vt.string(),speed:vt.number().optional(),heightOffset:vt.number().optional(),loop:vt.boolean().optional(),turnRateDPS:vt.number().optional(),lineMode:vt.enum(["auto","manual"]).optional()}},func:async({lineObjectId:e,speed:t,heightOffset:n,loop:i,turnRateDPS:s,lineMode:o})=>{var a;try{const u={lineObjectId:e,speed:t||10,heightOffset:n||10,loop:i||!0,turnRateDPS:s||10,lineMode:o||"auto"};return(a=r.activeViewer)==null||a.changeToLine(u.lineObjectId,u.speed,u.heightOffset,u.loop,u.turnRateDPS,u.lineMode),Wn()}catch(u){return Ze(u)}}},{name:"changeToFollow",params:{description:"根据提供的目标对象id(positionObjectId,必需,只能是单点位对象),将漫游模式切换为跟随模式(跟踪模式), 参数: 目标对象id(positionObjectId,必需,只能是单点位对象)、距离(distance)、水平角度(heading)、俯仰角度(pitch)、是否相对旋转(relativeRotation)",inputSchema:{positionObjectId:vt.string(),distance:vt.number().optional(),heading:vt.number().optional(),pitch:vt.number().optional(),relativeRotation:vt.boolean().optional()}},func:async({positionObjectId:e,distance:t,heading:n,pitch:i,relativeRotation:s})=>{var o;try{const a={positionObjectId:e,distance:t||0,heading:n||0,pitch:i||-30,relativeRotation:s||!0};return(o=r.activeViewer)==null||o.changeToFollow(a.positionObjectId,a.distance,a.heading,a.pitch,a.relativeRotation),Wn()}catch(a){return Ze(a)}}},{name:"adjustCamera",params:{description:"相机视角微调,相机拉近(distance=near)、拉远(distance=far)、左移/左转(heading=left)、右移/右转(heading=right)、向上抬(pitch=up)、向下压(pitch=down)、顺时针旋转(roll=clockwise)、逆时针旋转(roll=counterclockwise)",inputSchema:{distance:vt.enum(["far","near"]),heading:vt.enum(["left","right"]),pitch:vt.enum(["up","down"]),roll:vt.enum(["clockwise","counterclockwise"])}},func:async({distance:e,heading:t,pitch:n,roll:i})=>{var s,o;try{const a=(s=r.activeViewer)==null?void 0:s.getCurrentCameraInfo();if(!a)return Ze("Camera info is null");const u={height:e==="near"?a.position[2]-100:a.position[2]+100,heading:t==="left"?a.rotation[0]-10:a.rotation[0]+10,pitch:n==="up"?a.rotation[1]-10:a.rotation[1]+10,roll:i==="clockwise"?a.rotation[2]-10:a.rotation[2]+10},l={position:[a.position[0],a.position[1],u.height],rotation:[u.heading,u.pitch,u.roll]};return(o=r.activeViewer)==null||o.flyIn(l.position,l.rotation),Wn()}catch(a){return Ze(a)}}}],yb=r=>[{name:"getSceneJson",params:{description:"获取整个场景的json数据",inputSchema:{}},func:async()=>({content:[{type:"text",text:JSON.stringify(r.completeJson||"未获取到场景数据",null,2)}]})},{name:"getObjectJsonByName",params:{description:"根据名称来获取某一个对象json数据,查询对象属性名以及属性值",inputSchema:{name:vt.string()}},func:async({name:e})=>{const t=r.getSceneObject();if(Array.isArray(t)){const n=t.filter(i=>i.name.includes(e)).map(i=>i.completeJson);return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}else return{content:[{type:"text",text:JSON.stringify("未查询到对象",null,2)}]}}},{name:"getObjectJsonById",params:{description:"根据id来获取对象json数据,查询对象属性名以及属性值",inputSchema:{id:vt.string()}},func:async({id:e})=>{var n;const t=((n=r.getSceneObjectById(e))==null?void 0:n.completeJson)||"未查询到对象";return{content:[{type:"text",text:JSON.stringify(t,null,2)}]}}},{name:"setObjectProperty",params:{description:"设置对象的属性值,需要对象id,对象属性名,属性值",inputSchema:{id:vt.string(),property:vt.string(),value:vt.any()}},func:async({id:e,property:t,value:n})=>{const i=r.getSceneObjectById(e);if(!i)return{content:[{type:"text",text:JSON.stringify({success:!1,message:`未查询到ID为 ${e} 的对象`},null,2)}]};if(!(t in i))return{content:[{type:"text",text:JSON.stringify({success:!1,message:`对象 ${i.name} 没有属性 ${t}`},null,2)}]};try{return i[t]=n,{content:[{type:"text",text:JSON.stringify({success:!0,message:`成功设置对象 ${i.name} 的 ${t} 属性为 ${JSON.stringify(n)}`,objectId:e,property:t,value:n},null,2)}]}}catch(s){return{content:[{type:"text",text:JSON.stringify({success:!1,message:`设置对象 ${i.name} 的 ${t} 属性时出错`,error:s.message||String(s)},null,2)}]}}}}];function By(r){return typeof r=="string"?document.getElementById(r):r}function dp(r){if(!r)throw new Error("container is not defined");r.innerHTML="";const e=document.createElement("div");return e.style.cssText="width: 100%; height: 100%; margin: 0px; padding: 0px; border: none; overflow: hidden; position: relative; z-index: 0; background: rgba(0,0,0,0);",r.appendChild(e),e}class zy extends V{constructor(t,n){super();d(this,"_listeningSceneObjects",new Map);this._sceneObjectsMananger=t,this._createSceneObjectListeningFunc=n;const i=this._listeningSceneObjects,s=(o,a)=>{if(o)for(let u of o){const l=i.get(u);l&&(l.destroy(),i.delete(u))}if(a)for(let u of a){if(i.get(u)){console.warn(`listeningSceneObjects已存在某对象:${u.name}`,u);debugger}const c=this.createSceneObjectListeningFunc(u);c&&i.set(u,c)}};s(void 0,this._sceneObjectsMananger.sceneObjects),this.dispose(this._sceneObjectsMananger.sceneObjectsToChange.disposableOn(s)),this.dispose(()=>{for(let o of this._listeningSceneObjects.values())o.destroy();this._listeningSceneObjects.clear()})}get listeningSceneObjects(){return this._listeningSceneObjects}get createSceneObjectListeningFunc(){return this._createSceneObjectListeningFunc}}class _b extends V{constructor(e){super(),this._esObjectsManager=e;{const t=this._esObjectsManager;class n extends V{constructor(s){super(),this._esPath=s,this.dv(new Ee(t.activeViewerChanged,()=>{const o=t.activeViewer;if(!o)return;class a extends V{constructor(l){if(super(),this._esPath=l,!o)throw new Error("!viewer");const c=()=>{const h=t.activeViewer;h&&(this._esPath.path.currentTime=h.simulationTime)};c(),this.d(o.simulationTimeChanged.don(c))}}return new a(this._esPath)}))}}this.dv(new zy(t.sceneObjectsManager,i=>{if(i instanceof Ua)return new n(i)}))}{const t=this._esObjectsManager;class n extends V{constructor(s){super();const o=()=>{const a=t.activeViewer;a&&(a.simulationTime=s.currentTime??0)};o(),this.d(s.currentTimeChanged.don(o))}}this.dv(new zy(t.sceneObjectsManager,i=>{if(i instanceof za)return new n(i)}))}}}class wb extends V{constructor(e){super(),e.forEach(t=>{this.d(t.path.currentPositionChanged.don(n=>{n&&t.sceneObjects.forEach(i=>{Reflect.has(i,"position")&&(i.position=[...n])})})),this.d(t.path.currentRotationChanged.don(n=>{n&&t.sceneObjects.forEach(i=>{Reflect.has(i,"rotation")&&(i.rotation=[...n])})}))})}}class Eb extends V{constructor(t){super();d(this,"_player");d(this,"_channels",this.dv(ht([])));this._objectManager=t,this._player=this._objectManager.player,this.dv(new Ee(this.channelsChanged,()=>{if(this.channels.length===0)return;const n=[];for(let i=0;i<this.channels.length;i++){const s=this.channels[i],o=rt.getSceneObjById(s.pathId);if(!o||!(o instanceof Ua))continue;const u=s.sceneObjectIds.map(l=>rt.getSceneObjById(l)).filter(l=>l!==void 0);u.length!==0&&n.push({path:o,sceneObjects:u})}if(n.length!==0)return new wb(n)}))}get player(){return this._player}get channels(){return this._channels.value}get channelsChanged(){return this._channels.changed}set channels(t){this._channels.value=t}}function $c(r){if(r.data){const{type:e,value:t}=r.data;if(e==="UITreeA"&&t instanceof yn){const{sceneObject:n}=t;if(n)return n.id}}}function Cb(r,e){const{property:t,customEventName:n,otherParams:i}=e,{dragstartDataMananger:s}=r;if(!(t instanceof ia)){if(!(t instanceof Mg)){if(t instanceof pt){const[o,a]=zi(t.reactVar);if(n==="ondragover"){if(console.log("ondragover"),!i)throw new Error("!otherParams");const u=i[0];if(u.preventDefault(),!u.dataTransfer)return;$c(s)?u.dataTransfer.dropEffect="move":u.dataTransfer.dropEffect="none"}else if(n==="ondrop"){if(!i)throw new Error("!otherParams");i[0].preventDefault();const l=$c(s);l!==void 0&&a(l)}}else if(t instanceof xg){const[o,a]=zi(t.reactVar);if(n==="ondragover"){if(console.log("ondragover"),!i)throw new Error("!otherParams");const u=i[0];if(u.preventDefault(),!u.dataTransfer)return;$c(s)?u.dataTransfer.dropEffect="move":u.dataTransfer.dropEffect="none"}else if(n==="ondrop"){if(!i)throw new Error("!otherParams");const u=i[0].$event,l=i[0].strinsPropDom,c=i[0].index;u.preventDefault();const h=$c(s);if(h!==void 0){l[c].firstChild.value=h;const f=new Event("input",{bubbles:!0,cancelable:!0});l[c].firstChild.dispatchEvent(f)}}}else if(t instanceof Tg){const[o,a]=zi(t.reactVar)}}}}function Uy(r,e,t,n){if(t)n.currentActiveEditing=[r,e];else if(n.currentActiveEditing){const[i,s]=n.currentActiveEditing;i===r&&s===e&&(t||(n.currentActiveEditing=void 0))}}const Sb=["editing","positionEditing","locationEditing","pointEditing","rotationEditing"];class bb extends V{constructor(e,t){super(),this._sceneObject=e;const n=this._sceneObject;for(let i of Sb){const s=i+"Changed",o=n[s];if(o){{const a=n[i];Uy(n,i,a,t)}this.dispose(o.disposableOn(a=>Uy(n,i,a,t)))}}}get sceneObject(){return this._sceneObject}}class Pb extends V{constructor(){super();d(this,"_currentActiveEditing",this.disposeVar(re(void 0)));d(this,"_currentActiveEditingLastChangedTime",0);this.dispose(this._currentActiveEditing.changed.disposableOn((t,n)=>{if(this._currentActiveEditingLastChangedTime=Date.now(),n){const[i,s]=n;i[s]===!0&&(i[s]=!1)}if(t){const[i,s]=t;i[s]=!0}})),rt.context.sceneObjCreatedEvent.don(t=>{t.dv(new bb(t,this))})}get currentActiveEditing(){return this._currentActiveEditing.value}set currentActiveEditing(t){this._currentActiveEditing.value=t}get currentActiveEditingChanged(){return this._currentActiveEditing.changed}get currentActiveEditingLastChangedTime(){return this._currentActiveEditingLastChangedTime}}class Ib extends V{constructor(){super();d(this,"_sceneObjects",new Set);d(this,"_sceneObjectsToChange",this.dv(new O));this.d(()=>{const t=ph(this._sceneObjects);t!==0&&console.warn(`场景对象管理器销毁时仍然管理着${t}个场景对象!`)})}get sceneObjects(){return this._sceneObjects}get sceneObjectsToChange(){return this._sceneObjectsToChange}addSceneObject(t){return this._sceneObjects.has(t)?(console.warn(`创建失败:对象${t.typeName+":"+t.id}已经存在于场景对象管理器中!}`),!1):(this._sceneObjectsToChange.emit([],[t]),this._sceneObjects.add(t),!0)}deleteSceneObject(t){return this._sceneObjects.has(t)?(this._sceneObjectsToChange.emit([t],[]),this._sceneObjects.delete(t),!0):(console.warn(`删除失败:对象${t.typeName+":"+t.id}不存在于场景对象管理器中!}`),!1)}createSceneObject(t,n){const i=rt.context.createSceneObject(t,n);return i&&this.addSceneObject(i),i}createSceneObjectFromUrl(t,n){const i=rt.context.createSceneObjectFromUrl(t,n);return i&&this.addSceneObject(i),i}createSceneObjectFromClass(t,n){const i=rt.context.createSceneObjectFromClass(t,n);return i&&this.addSceneObject(i),i}createSceneObjectFromJson(t){const n=rt.context.createSceneObjectFromJson(t);return n&&this.addSceneObject(n),n}}class xb extends V{constructor(t){super();d(this,"_enabled",this.dv(j(!1)));d(this,"_cursorPosition",j(void 0));d(this,"quickPickPosition",!0);let n=new V;const i=()=>{n&&(n.destroy(),n=void 0)};this.d(i);const s=()=>{if(i(),!t||!this._enabled.value)return;n=new V;const o=n.dv(j(void 0)),a=n.dv(Ie(o.changed));n.d(t.pointerMoveEvent.don(l=>{l.pointerEvent&&(o.value=ln(l.pointerEvent))}));const u=n.dv(Yn(async l=>{if(o.value)if(this.quickPickPosition){const c=await l.promise(ta(t.quickPickPosition(o.value)));this._cursorPosition.value=c}else{const c=await l.promise(ta(t.pickPosition(o.value)));this._cursorPosition.value=c}}));n.d(a.don(()=>{u.restart()}))};s(),this.d(this._enabled.changed.don(s))}get enabled(){return this._enabled.value}set enabled(t){this._enabled.value=t}get enabledChanged(){return this._enabled.changed}get cursorPosition(){return this._cursorPosition.value}get cursorPositionChanged(){return this._cursorPosition.changed}}class Tb extends V{constructor(t){super();d(this,"cursorPositionInfo");this.viewer=t,this.cursorPositionInfo=this.dv(new xb(this.viewer))}}class Ob extends V{constructor(t){super();d(this,"viewer");const n=this.viewer=t;this.ad(new Ee(n.rollerShutterChanged,()=>{const i=n.container;if(!i||!n.rollerShutter)return;const s=new V;this.viewer.splitPosition=.5;let o=this.getRollerShutterDIV();return i.appendChild(o),s.d(()=>{this.viewer.splitPosition=0,i.removeChild(o)}),s}))}getRollerShutterDIV(){let t=document.createElement("div");t.style.position="absolute",t.style.left="50%",t.style.top="0",t.style.backgroundColor="#d3d3d3",t.style.width="5px",t.style.height="100%",t.style.zIndex="9999";const n=i=>{if(!t.parentElement)return;i.preventDefault?i.preventDefault():i.returnValue=!1;const o=i.x/t.parentElement.offsetWidth;t.style.left=`${100*o}%`,this.viewer.splitPosition=o};return t.addEventListener("mouseenter",i=>{t.style.cursor="ew-resize"}),t.addEventListener("mouseleave",i=>{t.style.cursor="default"}),t.addEventListener("mousedown",i=>{t.style.cursor="ew-resize",document.addEventListener("mousemove",n)}),document.addEventListener("mouseup",i=>{t.style.cursor="default",document.removeEventListener("mousemove",n)}),t}}class Nb extends V{constructor(t){super();d(this,"rollerShutterAnalysis");this.rollerShutterAnalysis=this.ad(new Ob(t))}}function Gy(r,e){return r.length===e.length&&r.every((t,n)=>t===e[n])}class Db extends V{constructor(e){super(),this._viewer=e,this.d(B([this._viewer,"currentTime"],[this._viewer,"simulationTime"]))}}class Mb extends V{constructor(e,t){super(),this._viewer=e,this._activeViewer=t;const n=ri.createCommonProps(),i=[];Object.keys(n).forEach(u=>{const l=this._activeViewer[u+"Changed"];i.push(l)});const s=this.dv(Ie(...i)),o=()=>{this._viewer.status!=="Created"||this._activeViewer.status!=="Created"||Object.keys(n).forEach(u=>{this._viewer[u]=this._activeViewer[u]})};this.d(s.don(o));const a=this.dv(Ou());a.restart(void 0,async()=>{if(this._viewer.status!=="Created"||this._activeViewer.status!=="Created")return;const u=this._activeViewer.getCurrentCameraInfo(),l=this._viewer.getCurrentCameraInfo();if(!u)return;const{position:c,rotation:h}=u;l&&Gy(c,l.position)&&Gy(h,l.rotation)||this._viewer.flyIn(c,h,0)}),this.d(()=>a.cancel())}}const Rb=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" width="40" height="40" style="shape-rendering: auto; display: block; background: rgba(255, 255, 255, 0);" xmlns:xlink="http://www.w3.org/1999/xlink"><g><circle stroke-linecap="round" fill="none" stroke-dasharray="50.26548245743669 50.26548245743669" stroke="#ffffff" stroke-width="8" r="32" cy="50" cx="50">
432
+ `,wl=Date.now();new Date(wl).toISOString(),new Date(wl+24*60*60*1e3).toISOString();const Vi=class Vi extends rt{constructor(t){super(t);d(this,"_flyToEvent",this.disposeVar(new O));d(this,"_resetClockEvent",this.disposeVar(new O));this.ad(nt([this,"uri"],[this,"url"]))}get flyToEvent(){return this._flyToEvent}flyTo(t){this._flyToEvent.emit(t)}get resetClockEvent(){return this._resetClockEvent}resetClock(){this._resetClockEvent.emit()}getESProperties(){const t={...super.getESProperties()};return{...t,defaultMenu:"basic",basic:[...t.basic,new it([this,"url"],"路径","${earthsdk3-assets-script-dir}/assets/misc/simple.czml",void 0,!0),new X([this,"clockEnabled"],"启用",!1),new M([this,"multiplier"],"倍速",Vi.defaults.multiplier),new X([this,"autoResetClock"],"自动设置时钟",!0),new io([this,"startTime"],"开始时间",Vi.defaults.startTime,!0),new io([this,"stopTime"],"结束时间",Vi.defaults.stopTime,!0),new io([this,"currentTime"],"当前时间",Vi.defaults.currentTime,!0),new Pt([this,"clockStep"],[["TICK_DEPENDENT","TICK_DEPENDENT"],["SYSTEM_CLOCK_MULTIPLIER","SYSTEM_CLOCK_MULTIPLIER"],["SYSTEM_CLOCK","SYSTEM_CLOCK"]],"clockStep","SYSTEM_CLOCK_MULTIPLIER"),new Pt([this,"clockRange"],[["UNBOUNDED","UNBOUNDED"],["CLAMPED","CLAMPED"],["LOOP_STOP","LOOP_STOP"]],"clockRange","UNBOUNDED"),new X([this,"shouldAnimate"],"是否启用动画",!1)],general:[...t.general,new X([this,"show"],"是否显示",!0),new X([this,"collision"],"开启碰撞",!1),new X([this,"allowPicking"],"允许拾取",!1)],more:[...t.more,new lt(["number"],n=>this.flyTo(n),[1e3],"飞入"),new lt([],()=>this.resetClock(),[],"重设时钟"),new Es([this,"loadFuncStr"],"loadFnStr",xy,JS,!0)]}}};d(Vi,"createDefaultProps",()=>({show:!0,uri:void 0,url:void 0,allowPicking:!1,autoResetClock:!0,clockEnabled:!1,startTime:wl,stopTime:wl+24*60*60*1e3,currentTime:wl,multiplier:1,clockStep:"SYSTEM_CLOCK_MULTIPLIER",clockRange:"UNBOUNDED",shouldAnimate:!1,loadFuncStr:void 0,...rt.createDefaultProps()})),d(Vi,"type",Vi.register("ESCzml",Vi,{chsName:"ESCzml",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"Czml数据加载"}));let tp=Vi;const vu=class vu extends rt{getESProperties(){const e={...super.getESProperties()};return{...e,more:[...e.more,new ut([]),new X([this,"show"],"是否显示"),new M([this,"cssSize"],"尺寸"),new Ae([this,"cssPosition"],"位置"),new Fu([this,"imgUrl"],"图片地址")]}}};d(vu,"createDefaultProps",()=>({...rt.createDefaultProps(),show:!0,cssSize:100,cssPosition:[170,30],imgUrl:rt.context.getStrFromEnv("${earthsdk3-assets-script-dir}/assets/img/zhinanzhen.png")})),d(vu,"type",vu.register("ESNavigator",vu,{chsName:"导航控件",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"导航控件"}));let ep=vu;const ji=class ji extends rt{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,more:[...e.more,new ut([],"通用","通用"),new X([this,"show"],"是否显示",ji.defaults.show),new M([this,"height"],"高度",ji.defaults.height,!0),new M([this,"fontSize"],"文字大小",ji.defaults.fontSize,!0),new Mt([this,"bgColor"],"背景颜色",ji.defaults.bgColor,!0)]}}};d(ji,"createDefaultProps",()=>({...rt.createDefaultProps(),show:!0,height:30,fontSize:14,bgColor:ht([71/255,71/255,71/255,.8])})),d(ji,"type",ji.register("ESViewerStatusBar",ji,{chsName:"状态栏",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"状态栏"}));let np=ji;const Bi=class Bi extends rt{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,more:[...e.more,new ut([],"通用","通用"),new X([this,"show"],"是否显示",Bi.defaults.show),new M([this,"height"],"高度",Bi.defaults.height,!0),new M([this,"fontSize"],"文字大小",Bi.defaults.fontSize,!0),new Mt([this,"bgColor"],"背景颜色",Bi.defaults.bgColor,!0)]}}};d(Bi,"createDefaultProps",()=>({...rt.createDefaultProps(),show:!0,height:30,fontSize:14,bgColor:ht([71/255,71/255,71/255,.8])})),d(Bi,"type",Bi.register("ESViewerStatusBarScale",Bi,{chsName:"比例尺状态栏",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"状态栏"}));let rp=Bi;const yu=class yu extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new pt([this,"url"],"路径","",!0),new M([this,"progress"],"进度",0,!1,!0)]}}};d(yu,"createDefaultProps",()=>({...st.createDefaultProps(),url:"",progress:0})),d(yu,"type",yu.register("ESGaussianSplatting",yu,{chsName:"高斯溅射模型",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"用于加载高斯溅射模型的 ES 对象"}));let ip=yu;const Go=class Go extends st{constructor(e){super(e)}getESProperties(){const e={...super.getESProperties()};return{...e,basic:[...e.basic,new pt([this,"mesh"],"mesh地址",Go.defaults.mesh)]}}};d(Go,"createDefaultProps",()=>({...st.createDefaultProps(),mesh:"StaticMesh'/Engine/BasicShapes/Sphere.Sphere'"})),d(Go,"type",Go.register("ESStaticMesh",Go,{chsName:"静态网格",tags:["ESObjects","_ES_Impl_UE"],description:"Unreal的Mesh对象"}));let sp=Go;const _u=class _u extends It{constructor(t){super(t);d(this,"_startEvent",this.dv(new O));d(this,"_clearEvent",this.dv(new O));d(this,"_eSGeoExtrudedPolygon");this._eSGeoExtrudedPolygon=this.disposeVar(new Io),this.ad(this.components.disposableAdd(this._eSGeoExtrudedPolygon)),this.eSGeoExtrudedPolygon.perPositionHeight=!0,this.eSGeoExtrudedPolygon.extrudedHeight=0,this.stroked=!0,this.strokeWidth=2,this.strokeColor=[1,0,0,1],this.ad(B([this.eSGeoExtrudedPolygon,"show"],[this,"show"])),this.ad(B([this.eSGeoExtrudedPolygon,"stroked"],[this,"stroked"])),this.ad(B([this.eSGeoExtrudedPolygon,"strokeWidth"],[this,"strokeWidth"])),this.ad(B([this.eSGeoExtrudedPolygon,"strokeColor"],[this,"strokeColor"])),this.ad(B([this.eSGeoExtrudedPolygon,"filled"],[this,"filled"])),this.ad(B([this.eSGeoExtrudedPolygon,"fillColor"],[this,"fillColor"])),this.ad(B([this.eSGeoExtrudedPolygon,"points"],[this,"points"])),this.ad(this.clearEvent.don(()=>{this.points=void 0,this.depths=void 0,this.windowPositions=void 0}))}get startEvent(){return this._startEvent}start(){this._startEvent.emit()}get clearEvent(){return this._clearEvent}clear(){this._clearEvent.emit()}get eSGeoExtrudedPolygon(){return this._eSGeoExtrudedPolygon}getESProperties(){const t={...super.getESProperties()};return{...t,basic:[...t.basic,new lt([],()=>this.start(),[],"开始分析"),new lt([],()=>this.clear(),[],"清除分析"),new it([this,"windowPositions"],"屏幕坐标",[],void 0,!1,!0),new it([this,"depths"],"深度值",[],void 0,!1,!0),new M([this,"radius"],"半径",1e4,!0)]}}};d(_u,"createDefaultProps",()=>({...It.createDefaultProps(),windowPositions:Hd([]),depths:re([]),radius:j(1e4)})),d(_u,"type",_u.register("ESSkylineAnalysis",_u,{chsName:"天际线分析",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"分析类"}));let op=_u;const fs=class fs extends Ht{constructor(e){super(e)}getESProperties(){const e=super.getESProperties();return{...e,basic:[...e.basic,new it([this,"data"],"数据",[],void 0,!0),new it([this,"gradient"],"渐变",fs.defaults.gradient,void 0,!0),new M([this,"radius"],"半径",fs.defaults.radius,void 0,!0),new M([this,"blur"],"模糊",fs.defaults.blur,!0),new X([this,"is3D"],"is3D",!1,!0)]}}};d(fs,"createDefaultProps",()=>({...Ht.createDefaultProps(),is3D:j(!1),data:Nl([]),gradient:Qt({".5":"green",".7":"yellow",".95":"red"}),radius:j(10),blur:j(.85)})),d(fs,"type",fs.register("ESHeatMap",fs,{chsName:"热力图",tags:["ESObjects","_ES_Impl_Cesium","_ES_Impl_UE"],description:"用于热力图的显示"}));let Xc=fs;const Wo=class Wo extends It{constructor(t){super(t);d(this,"editingBindMode","scatter")}};d(Wo,"createDefaultProps",()=>({...It.createDefaultProps(),pointed:!0})),d(Wo,"type",Wo.register("ESGeoPoints",Wo,{chsName:"地理点集合",tags:["ESObjects","_ES_Impl_Cesium"],description:"地图中的可视化地理点集合"})),d(Wo,"supportEditingModes",[...It.supportEditingModes,et.ScatterAppend,et.ScatterModify]);let El=Wo;const Ty=async(r,e=[],t)=>{const n=[];for(const i of e){const{coordinates:s}=i.geometry;for(const o of s){const a=await Promise.all(o.map(async u=>{let l=u[2]??0;if(t)if(t.type==="absolute")l=t.height??l;else if(t.type==="relative"){const c=await r.getTerrainHeight([u[0],u[1]])??0;l=(t.height??l)+c}else t.type==="terrain"&&(l=await r.getTerrainHeight([u[0],u[1]])??0);return[u[0],u[1],l]}));n.push({...i,points:a})}}return n},Oy=async(r,e=[],t)=>await Promise.all(e.map(async n=>{var u,l,c,h,f,p,v,C,S;const i=((u=n.geometry)==null?void 0:u.x)??((c=(l=n.geometry)==null?void 0:l.coordinates)==null?void 0:c[0]),s=((h=n.geometry)==null?void 0:h.y)??((p=(f=n.geometry)==null?void 0:f.coordinates)==null?void 0:p[1]);let a=((v=n.geometry)==null?void 0:v.z)??((S=(C=n.geometry)==null?void 0:C.coordinates)==null?void 0:S[2])??0;if(t)if(t.type==="absolute")a=t.height??a;else if(t.type==="relative"){const P=await r.getTerrainHeight([i,s])??0;a=(t.height??a)+P}else t.type==="terrain"&&(a=await r.getTerrainHeight([i,s])??0);return{...n,points:[i,s,a]}})),Ny=async(r,e=[],t)=>{const n=[];return await Promise.all(e.map(async i=>{const{coordinates:s}=i.geometry;await Promise.all(s.map(async o=>{const a=await Promise.all(o.map(async u=>{let l=u[2]??0;if(t)if(t.type==="absolute")l=t.height??l;else if(t.type==="relative"){const c=await r.getTerrainHeight([u[0],u[1]])??0;l=(t.height??l)+c}else t.type==="terrain"&&(l=await r.getTerrainHeight([u[0],u[1]])??0);return[u[0],u[1],l]}));n.push({...i,points:a})}))})),n};function $S(r){const e=Qe.lineString(r),t=Qe.length(e),n=Qe.along(e,t/2);return[n.geometry.coordinates[0],n.geometry.coordinates[1],n.geometry.coordinates[2]||0]}function KS(r,e){const t=Qe.lineString(r),n=Qe.length(t),i=Math.floor(n/e),s=[];if(s.push(r[0]),i<1)return[r[0]];for(let o=1;o<i;o+=1){const a=Qe.along(t,n*(o/i));s.push([a.geometry.coordinates[0],a.geometry.coordinates[1],a.geometry.coordinates[2]||0])}return s}function ZS(r){const e=[...r];JSON.stringify(r[0])!==JSON.stringify(r[r.length-1])&&e.push(r[0]);const t=Qe.polygon([e]),n=Qe.center(t);return[n.geometry.coordinates[0],n.geometry.coordinates[1],n.geometry.coordinates[2]||0]}function Dy(r,e,t){const n=r.dv(new ja);for(const i in t)i!=="type"&&(n[i]=t[i]);n.position=e,r.d(r.components.disposableAdd(n))}function ap(r,e,t,n){let i=n.textTemplate||n.symbol.text||"";const s=/{{(.*?)}}/;for(;s.test(i);){const c=i.match(s);if(c){const h=c[1].trim(),f=t[`${h}`]||"-";i=i.replace(c[0],f)}}let o=n.symbol;const{minVisibleDistance:a,maxVisibleDistance:u}=n;a&&u&&(o={...o,minVisibleDistance:a,maxVisibleDistance:u});const l={...o,text:i};Dy(r,e,l)}function Ga(r,e){const t={width:null,height:null,color:null,opacity:null,rotation:null};return e.forEach(n=>{n.type==="size"?n.axis==="width"?t.width=r[n.field]||null:n.axis==="height"&&(t.height=r[n.field]||null):n.type==="color"?t.color=r[n.field]||null:n.type==="opacity"?t.opacity=r[n.field]||null:n.type==="rotation"&&(t.rotation=r[n.field]||null)}),t}function up(r,e,t){const i={...e.symbol};if(t&&t.length>0){const s=Ga(r,t);for(let o in s)i[o]!==void 0&&s[o]!==null&&(i[o]=s[o])}return i}function lp(r,e,t){var l,c;const n=e,{uniqueValueInfos:i,field:s,fieldDelimiter:o,defaultSymbol:a}=n;let u={...a};if(Array.isArray(s)){const f=s.map(p=>r[p]??"").join(o);u=((l=i.find(p=>p.value==f))==null?void 0:l.symbol)||a}else u=((c=i.find(h=>h.value==r[s]))==null?void 0:c.symbol)||a;if(t&&t.length>0){const h=Ga(r,t);for(let f in h)u[f]!==void 0&&h[f]!==null&&(u[f]=h[f])}return u}function cp(r,e,t){const n=e,{classBreakInfos:i,field:s,defaultSymbol:o}=n;let a=o;const u=r[s];if(u===void 0||typeof u!="number")a=o;else{const l=i.find(c=>u<=c.maxValue&&u>=c.minValue);l?a=l.symbol:a=o}if(t&&t.length>0){const l=Ga(r,t);for(let c in l)a[c]!==void 0&&l[c]!==null&&(a[c]=l[c])}return a}function QS(r,e){function t(l,c,h,f){const p=w=>w*Math.PI/180,v=w=>w*180/Math.PI,C=p(l),S=p(h),P=p(f-c),y=Math.sin(P)*Math.cos(S),_=Math.cos(C)*Math.sin(S)-Math.sin(C)*Math.cos(S)*Math.cos(P),m=Math.atan2(y,_);return(v(m)+360)%360}function n(l,c,h,f,p){const C=b=>b*Math.PI/180,S=b=>b*180/Math.PI,P=f/6371e3,y=C(p),_=C(l),m=C(c),w=Math.asin(Math.sin(_)*Math.cos(P)+Math.cos(_)*Math.sin(P)*Math.cos(y)),E=m+Math.atan2(Math.sin(y)*Math.sin(P)*Math.cos(_),Math.cos(P)-Math.sin(_)*Math.sin(w));return{lat:S(w),lng:S(E),alt:h}}function i(l){const c=[];l.length>1&&c.push(t(l[0].lat,l[0].lng,l[1].lat,l[1].lng));for(let h=1;h<l.length-1;h++){const f=t(l[h-1].lat,l[h-1].lng,l[h].lat,l[h].lng),p=t(l[h].lat,l[h].lng,l[h+1].lat,l[h+1].lng);let v=(f+p)/2;Math.abs(f-p)>180&&(v=(v+180)%360),c.push(v)}return l.length>1&&c.push(t(l[l.length-2].lat,l[l.length-2].lng,l[l.length-1].lat,l[l.length-1].lng)),l.length===1&&c.push(0),c}if(!r||r.length<2)throw new Error("至少需要两个点才能生成路径");if(e<=0)throw new Error("宽度必须大于0");const s=e/2,o=i(r),a=[],u=[];for(let l=0;l<r.length;l++){const c=(o[l]+90)%360,h=(o[l]+270)%360,f=r[l].alt!==void 0?r[l].alt:0;a.push(n(r[l].lat,r[l].lng,f,s,c)),u.push(n(r[l].lat,r[l].lng,f,s,h))}return a.concat(u.reverse())}function tb(r,e,t,n){function i(C){return C*(Math.PI/180)}const s=6378137,o=i(r),a=i(e),u=i(t),l=i(n),c=u-o,h=l-a,f=Math.sin(c/2)**2+Math.cos(o)*Math.cos(u)*Math.sin(h/2)**2,p=2*Math.atan2(Math.sqrt(f),Math.sqrt(1-f));return s*p}const My=(r,e,t)=>Array.isArray(e)?e.map(s=>r[s]??"").join(t):r[e]??"";function Ry(r,e){const n={...e.symbol};return{points:r.map(i=>i.points),symbol:n}}function Ly(r,e){const t=e,{uniqueValueInfos:n,field:i,fieldDelimiter:s,defaultSymbol:o}=t,a=[],u=n.reduce((c,h)=>{const f=h.value.toString();return c[f]={points:[],value:h.value,symbol:h.symbol},c},{});for(let c=0;c<r.length;c++){const h=r[c],f=My(h,i,s);if(f!==void 0&&f!==""){const p=u[f.toString()];p?p.points.push(h.points):a.push(h.points)}else a.push(h.points)}const l=[];for(let c in u){const{points:h,symbol:f}=u[c];h.length>0&&l.push({points:h,symbol:f})}return a.length>0&&l.push({points:a,symbol:o}),l}function Fy(r,e){const t=e,{classBreakInfos:n,field:i,defaultSymbol:s}=t,o=[],a=n.map(l=>({...l,points:[]}));for(let l=0;l<r.length;l++){const c=r[l],h=c[i];if(h===void 0||typeof h!="number")o.push(c.points);else{const f=a.findIndex(p=>h<=p.maxValue&&h>=p.minValue);f!==-1?a[f].points.push(c.points):o.push(c.points)}}const u=[];return a.forEach(l=>{l.points.length>0&&u.push({points:l.points,symbol:l.symbol})}),o.length>0&&u.push({points:o,symbol:s}),u}function eb(r,e,t=[]){const i={...e.symbol},s=r.map(o=>{const a=Ga(o,t);return{position:o.points,rotation:a.rotation||i.rotation||[0,0,0],scale:i.scale||[1,1,1]}});return{url:i.url,locations:s}}function nb(r,e,t=[]){const n=e,{uniqueValueInfos:i,field:s,fieldDelimiter:o}=n,a=n.defaultSymbol,u=[],l=i.reduce((h,f)=>{const p=f.value.toString();return h[p]={locations:[],value:f.value,symbol:f.symbol},h},{});for(let h=0;h<r.length;h++){const f=r[h],p=My(f,s,o);if(p){const v=l[p.toString()];if(v){const C=Ga(f,t);v.locations.push({position:f.points,rotation:C.rotation||a.rotation||[0,0,0],scale:a.scale||[1,1,1]})}else u.push({position:f.points,rotation:a.rotation||[0,0,0],scale:a.scale||[1,1,1]})}else u.push({position:f.points,rotation:a.rotation||[0,0,0],scale:a.scale||[1,1,1]})}const c=[];for(let h in l){const{locations:f,symbol:p}=l[h];f.length>0&&c.push({url:p.url,locations:f})}return u.length>0&&c.push({url:a.url,locations:u}),c}function rb(r,e,t=[]){const n=e,{classBreakInfos:i,field:s}=n,o=n.defaultSymbol,a=[],u=i.map(c=>({...c,locations:[]}));for(let c=0;c<r.length;c++){const h=r[c],f=h[s];if(f===void 0||typeof f!="number")a.push({position:h.points,rotation:o.rotation||[0,0,0],scale:o.scale||[1,1,1]});else{const p=u.findIndex(v=>f<=v.maxValue&&f>=v.minValue);if(p!==-1){const v=Ga(h,t);u[p].locations.push({position:h.points,rotation:v.rotation||o.rotation||[0,0,0],scale:u[p].symbol.scale||[1,1,1]})}else a.push({position:h.points,rotation:o.rotation||[0,0,0],scale:o.scale||[1,1,1]})}}const l=[];return u.forEach(c=>{c.locations.length>0&&l.push({url:c.symbol.url,locations:c.locations})}),a.length>0&&l.push({url:o.url,locations:a}),l}class ib extends V{constructor(t,n,i,s){super();d(this,"labelingInfo");this.sceneObject=t;const o=n;if(s&&pi(o,a=>{this.renderLabel(a,s)}),i)if(i.type==="simple"){const{visualVariables:a}=i;if(i.symbol.type==="simple-point"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染!");const u=Ry(o,i);this._simplePointAllRender(u.points,u.symbol);return}if(i.symbol.type==="ESImageLabel"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染成图标!");const u=Ry(o,i);this._imageAllRender(u.points,u.symbol);return}if(i.symbol.type==="ESGltfModel"){console.log("PointLayer:大批量点渲染成gltf!");const{url:u,locations:l}=eb(o,i,a);this._modelAllRender(u,l);return}for(let u=0;u<o.length;u++){const l=up(o[u],i,a);this.render(o[u],l)}}else if(i.type==="unique-value"){const{visualVariables:a}=i;if(i.uniqueValueInfos.findIndex(h=>h.symbol.type!=="simple-point")===-1&&i.defaultSymbol.type==="simple-point"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染!"),Ly(o,i).forEach(({points:f,symbol:p})=>{this._simplePointAllRender(f,p)});return}if(i.uniqueValueInfos.findIndex(h=>h.symbol.type!=="ESImageLabel")===-1&&i.defaultSymbol.type==="ESImageLabel"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染成图标!"),Ly(o,i).forEach(({points:f,symbol:p})=>{this._imageAllRender(f,p)});return}if(i.uniqueValueInfos.findIndex(h=>h.symbol.type!=="ESGltfModel")===-1&&i.defaultSymbol.type==="ESGltfModel"){console.log("PointLayer:大批量点渲染成gltf!"),nb(o,i,a).forEach(({url:f,locations:p})=>{this._modelAllRender(f,p)});return}for(let h=0;h<o.length;h++){const f=lp(o[h],i,a);this.render(o[h],f)}}else if(i.type==="class-breaks"){const{visualVariables:a}=i;if(i.classBreakInfos.findIndex(h=>h.symbol.type!=="simple-point")===-1&&i.defaultSymbol.type==="simple-point"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染!"),Fy(o,i).forEach(({points:f,symbol:p})=>{this._simplePointAllRender(f,p)});return}if(i.classBreakInfos.findIndex(h=>h.symbol.type!=="ESImageLabel")===-1&&i.defaultSymbol.type==="ESImageLabel"&&(!a||a.length==0)){console.log("PointLayer:大批量点渲染成图标!"),Fy(o,i).forEach(({points:f,symbol:p})=>{this._imageAllRender(f,p)});return}if(i.classBreakInfos.findIndex(h=>h.symbol.type!=="ESGltfModel")===-1&&i.defaultSymbol.type==="ESGltfModel"){console.log("PointLayer:大批量点渲染成gltf!"),rb(o,i,a).forEach(({url:f,locations:p})=>{this._modelAllRender(f,p)});return}for(let h=0;h<o.length;h++){const f=cp(o[h],i,a);this.render(o[h],f)}}else if(i.type==="heatmap"){const{field:a,fieldValueMax:u,fieldValueMin:l}=i;console.time();const c=o.map(h=>{const{points:f}=h;if(a&&typeof a=="string"){let p=h[a];typeof p=="number"&&(typeof u=="number"&&p>u&&(p=u),typeof l=="number"&&p<l&&(p=l),f[2]=p)}return f});this.renderHeatmap(c,i)}else console.error("PointLayer: renderer type is not supported")}renderLabel(t,n){const{points:i}=t;ap(this.sceneObject,i,t,n)}renderHeatmap(t,n){const{is3D:i,radius:s,blur:o,gradient:a}=n,u=this.dv(new Xc);this.d(this.sceneObject.components.disposableAdd(u)),u.is3D=i,u.radius=s,u.blur=o,a&&(u.gradient={...a}),u.data=t}render(t,n){n.type==="simple-point"?this._simplePointRender(t,n):n.type==="ESImageLabel"?this._simpleImageRender(t,n):n.type==="ESGltfModel"?this._simpleModelRender(t,n):n.type==="ESTextLabel"?Dy(this.sceneObject,t.points,n):n.type==="ESParticleSystemPrimitive"?this._simpleParticleRender(t,n):console.error(" PointLayer: symbol type is not supported")}_simplePointRender(t,n){const{points:i}=t,{size:s,color:o,outlineColor:a,outlineWidth:u}=n,l=this.dv(new El);this.d(this.sceneObject.components.disposableAdd(l)),l.pointed=!0,l.pointOutlineColor=a,l.pointOutlineWidth=u,l.pointSize=s,l.pointColor=o,l.allowPicking=(n==null?void 0:n.allowPicking)??!0,l.extras={selected:!1},l.points=[i]}_simplePointAllRender(t,n){const{size:i,color:s,outlineColor:o,outlineWidth:a}=n,u=this.dv(new El);this.d(this.sceneObject.components.disposableAdd(u)),u.pointed=!0,u.pointOutlineColor=o,u.pointOutlineWidth=a,u.pointSize=i,u.pointColor=s,u.allowPicking=(n==null?void 0:n.allowPicking)??!0,u.points=[...t]}_simpleImageRender(t,n){const{points:i}=t,{rotation:s,offset:o,size:a,url:u,screenRender:l,anchor:c,renderMode:h,rotationType:f}=n,p=this.dv(new zc),v=this.dv(new ja);this.d(this.sceneObject.components.disposableAdd(p)),this.d(this.sceneObject.components.disposableAdd(v)),p.url=u,p.renderMode=h??0,s&&(p.rotation=s),o&&(p.offset=o),p.size=a||[32,32],c&&(p.anchor=c),f&&(p.rotationType=f),p.screenRender=l??!0,p.allowPicking=(n==null?void 0:n.allowPicking)??!0,p.extras={selected:!1},p.position=[...i],p.sizeByContent=!1,v.allowPicking=(n==null?void 0:n.allowPicking)??!0;const C=a?Math.max(...a)+10:Math.max(...p.size)+10;v.sizeByContent=!1,v.screenRender=!0,v.size=[C,C],v.borderRadius=[C,C,C,C],v.padding=[C/2,C/2,C/2,C/2],v.borderWidth=C/10,v.offset=[0,C/10+5],v.text="",v.backgroundColor=[0,0,0,0],v.borderColor=[0,0,0,0]}_imageAllRender(t,n){const i={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"MultiPoint",coordinates:t}}]},s=this.dv(new vl);this.d(this.sceneObject.components.disposableAdd(s));const o=this.dv(new ja);this.d(this.sceneObject.components.disposableAdd(o)),s.textDefaultText="";const{offset:a,size:u,url:l,anchor:c}=n;s.imageUrl=l,c&&(s.imageAnchor=c),a&&(s.imageOffset=a),s.imageSize=u||[32,32],s.url=i,s.allowPicking=(n==null?void 0:n.allowPicking)??!0,s.extras={selected:!1},o.allowPicking=!0;const h=u?Math.max(...u)+10:Math.max(...s.imageSize)+10;o.sizeByContent=!1,o.size=[h,h],o.borderRadius=[h,h,h,h],o.padding=[h/2,h/2,h/2,h/2],o.borderWidth=h/10,o.offset=[0,h/10+5],o.text="",o.backgroundColor=[0,0,0,0],o.borderColor=[0,0,0,0]}_simpleModelRender(t,n){const{points:i}=t,{rotation:s,scale:o,url:a}=n,u=this.dv(new zs);this.d(this.sceneObject.components.disposableAdd(u)),u.url=a,s&&(u.rotation=s),o&&(u.scale=o),u.position=[...i]}_modelAllRender(t,n){const i=this.dv(new zs);this.d(this.sceneObject.components.disposableAdd(i)),i.url=t,i.instances=n}_simpleParticleRender(t,n){const{points:i}=t,s=this.dv(new Uc);this.d(this.sceneObject.components.disposableAdd(s)),s.position=[...i],Object.keys(n).forEach(o=>{s[o]=n[o]})}}class sb extends V{constructor(e,t,n,i){super(),this.sceneObject=e;const s=t;if(i&&pi(s,o=>{this.renderLabel(o,i)}),n)if(n.type==="simple"){const{visualVariables:o}=n;pi(s,a=>{const u=up(a,n,o);this.render(a,u)})}else if(n.type==="unique-value"){const{visualVariables:o}=n;pi(s,a=>{const u=lp(a,n,o);this.render(a,u)})}else if(n.type==="class-breaks"){const{visualVariables:o}=n;pi(s,a=>{const u=cp(a,n,o);this.render(a,u)})}else console.error("PolyLineLayer: renderer type is not supported")}render(e,t){console.log("PolyLineLayer: render",e,t),t.type==="simple-line"?this._simpleLineRender(e,t):t.type==="ESPolygonFence"?this._esPolygonFenceRender(e,t):t.type==="ESPipeFence"?this._esPipeFenceRender(e,t):t.type==="ESPath"?this._esPathRender(e,t):t.type==="ESlineInterpolationModel"?this._eslineInterpolationModelRender(e,t):t.type==="ESlineWall"?this._eslineWallRender(e,t):console.error("PolyLineLayer: symbol type is not supported")}_simpleLineRender(e,t){const{points:n}=e;if(n.length<2){console.warn("PolyLineLayer: points length is less than 3");return}const i=this.dv(new Ni);this.d(this.sceneObject.components.disposableAdd(i)),i.points=[...n],i.stroked=!0,i.strokeColor=t.color,i.strokeWidth=t.width||1,i.allowPicking=(t==null?void 0:t.allowPicking)??!0,i.extras={selected:!1}}_esPolygonFenceRender(e,t){const{points:n}=e;if(n.length<3){console.warn("PolyLineLayer: points length is less than 3");return}const i=this.dv(new qc);this.d(this.sceneObject.components.disposableAdd(i)),i.points=[...n],i.height=t.height,i.materialMode=t.materialMode}_esPipeFenceRender(e,t){const{points:n}=e;if(n.length<2){console.warn("PolyLineLayer: points length is less than 3");return}const i=this.dv(new Hc);this.d(this.sceneObject.components.disposableAdd(i)),i.points=[...n],i.height=t.height,i.width=t.width,i.materialMode=t.materialMode}_esPathRender(e,t){const{points:n}=e;if(n.length<2){console.warn("PolyLineLayer: points length is less than 3");return}const i=this.dv(new Ua),s=this.dv(new za);if(this.d(this.sceneObject.components.disposableAdd(i)),this.d(this.sceneObject.components.disposableAdd(s)),i.points=[...n],i.speed=t.speed,i.strokeColor=t.color,i.materialMode=t.materialMode,i.strokeWidth=t.width||1,t!=null&&t.runModel){const a=t==null?void 0:t.runSpeed,u=t==null?void 0:t.modelSymbol;let l;switch(t==null?void 0:t.runModel){case"ESHuman":l=this.dv(new Po);break;case"ESCar":l=this.dv(new Vc);break;case"ESGltfModel":l=this.dv(new zs)}if(this.d(this.sceneObject.components.disposableAdd(l)),u)for(let h in u)l[h]=u[h];const c=[0];for(var o=0;o<n.length-1;o+=1){const h=n[o],f=n[o+1],p=tb(h[1],h[0],f[1],f[0]);c.push(c[o]+Math.ceil(p/a)*1e3)}i.timeStamps=c,t!=null&&t.runSpeed&&(i.currentPositionChanged.don(h=>{i.currentPosition&&(l.position=i.currentPosition,i.currentRotation&&(l.rotation=i.currentRotation))}),s.startTime=0,s.stopTime=c[c.length-1],s.playing=!0,s.loop=(t==null?void 0:t.runLoop)??!0,s.currentTimeChanged.don(h=>{i.path.currentTime=h}))}}_eslineInterpolationModelRender(e,t){const{points:n}=e;if(n.length<2){console.warn("PolyLineLayer: points length is less than 3");return}const i=(t==null?void 0:t.interpolationDistance)??0;if(!i)return;const s=KS(n,i/1e3),o=this.dv(new zs);this.d(this.sceneObject.components.disposableAdd(o)),o.url=t.url,o.instances=s.map(a=>({position:a,rotation:t.rotation,scale:t.scale}))}_eslineWallRender(e,t){const{points:n}=e;if(n.length<2){console.warn("PolyLineLayer: points length is less than 3");return}const i=t.height??0,s=t.width??0,o=t.extrudedHeight??0,a=n.map(c=>({lng:(c==null?void 0:c[0])??0,lat:(c==null?void 0:c[1])??0,alt:(c==null?void 0:c[2])??0})),u=QS(a,s).map(c=>[(c==null?void 0:c.lng)??0,(c==null?void 0:c.lat)??0,(c==null?void 0:c.alt)??0]),l=this.dv(new Io);this.d(this.sceneObject.components.disposableAdd(l)),l.height=i,l.extrudedHeight=o,l.filled=t.filled??!0,l.fillColor=t.fillColor,l.allowPicking=(t==null?void 0:t.allowPicking)??!0,l.extras={selected:!1},l.points=u}renderLabel(e,t){const{points:n}=e,i=$S(n);ap(this.sceneObject,i,e,t)}}function Ay(r,e){try{JSON.stringify(r[r.length-1])!==JSON.stringify(r[0])&&r.push(r[0]);const t=Qe.featureCollection(r.map(u=>Qe.point(u))),n=Qe.polygon([r]),i={gridType:"point",units:"meters"};return Qe.interpolate(t,e,i).features.map(u=>u.geometry.coordinates)[0][0].filter(u=>Qe.booleanPointInPolygon(Qe.point(u),n))}catch(t){return console.error(t),[]}}class ob extends V{constructor(e,t,n,i){super(),this.sceneObject=e;const s=t;if(i&&pi(s,o=>{this.renderLabel(o,i)}),n)if(n.type==="simple"){const{visualVariables:o}=n;pi(s,a=>{const u=up(a,n,o);this.render(a,u)})}else if(n.type==="unique-value"){const{visualVariables:o}=n;pi(s,a=>{const u=lp(a,n,o);this.render(a,u)})}else if(n.type==="class-breaks"){const{visualVariables:o}=n;pi(s,a=>{const u=cp(a,n,o);this.render(a,u)})}else console.error("PolyLineLayer: renderer type is not supported")}renderLabel(e,t){const{points:n}=e;console.log("PolygonLayer: renderLabel",n);const i=ZS(n);ap(this.sceneObject,i,e,t)}render(e,t){t.type==="simple-fill"?this._simplePolygonRender(e,t):t.type==="ESGeoExtrudedPolygon"?this._esGeoExtrudedPolygonRender(e,t):t.type==="PolygonInterpolateESGltfModel"?this._polygonInterpolateESGltfModelRender(e,t):t.type==="PolygonInterpolateESImageLabel"?this._polygonInterpolateESImageLabelRender(e,t):console.error("PolyLineLayer: symbol type is not supported")}_simplePolygonRender(e,t){const{points:n}=e;if(n.length<3){console.warn("PolygonLayer: points length is less than 3");return}const{color:i,outline:s,filled:o,ground:a}=t,{width:u,color:l,stroked:c}=s,h=this.dv(new Xt);this.d(this.sceneObject.components.disposableAdd(h)),h.stroked=c??!1,h.strokeColor=l??[1,1,1,1],h.strokeWidth=u??1,h.filled=o??!0,h.fillGround=a??!1,h.fillColor=i??[1,1,1,1],h.allowPicking=(t==null?void 0:t.allowPicking)??!0,h.extras={selected:!1},h.points=[...n]}_esGeoExtrudedPolygonRender(e,t){const{points:n}=e;if(n.length<3){console.warn("PolygonLayer: points length is less than 3");return}const{height:i,extrudedHeight:s,color:o}=t,a=this.dv(new Io);this.d(this.sceneObject.components.disposableAdd(a)),a.height=i,a.extrudedHeight=s,a.filled=!0,a.fillColor=o,a.allowPicking=(t==null?void 0:t.allowPicking)??!0,a.extras={selected:!1},a.points=[...n]}_polygonInterpolateESGltfModelRender(e,t){const{points:n}=e;if(n.length<3){console.warn("PolygonLayer: points length is less than 3");return}const{height:i,interpolateDistance:s,url:o,rotation:a,scale:u}=t,l=Ay(n,s??10),c=this.dv(new zs);this.d(this.sceneObject.components.disposableAdd(c)),c.url=o,c.instances=l.map(h=>({position:[...h,i??0],rotation:a??[0,0,0],scale:u??[1,1,1]}))}_polygonInterpolateESImageLabelRender(e,t){const{points:n}=e;if(n.length<3){console.warn("PolygonLayer: points length is less than 3");return}const{height:i,interpolateDistance:s,offset:o,size:a,url:u,anchor:l}=t,h={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"MultiPoint",coordinates:[...Ay(n,s??10).map(p=>[...p,i??0])]}}]},f=this.dv(new vl);this.d(this.sceneObject.components.disposableAdd(f)),f.textDefaultText="",f.imageUrl=u,l&&(f.imageAnchor=l),o&&(f.imageOffset=o),a&&(f.imageSize=a),f.url=h}}class ab extends V{constructor(t,n){super();d(this,"_initEvent",this.dv(new O));const i=this,s=async()=>{try{const a=t.featureProps;if(!a)return;const{heightMode:u,features:l,layerType:c,url:h}=a;let f=[];if(!l&&h){let p=await fetch(h).then(v=>v.json());return p=(p==null?void 0:p.features)??p,c==="polylineVector"?f=await Ty(n,p,u):c==="polygonVector"?f=await Ny(n,p,u):c==="pointVector"&&(f=await Oy(n,p,u)),f}else c==="polylineVector"?f=await Ty(n,l,u):c==="polygonVector"?f=await Ny(n,l,u):c==="pointVector"&&(f=await Oy(n,l,u));return f}catch(a){console.error(a);return}},o=this.dv(Ie(this._initEvent,t.featurePropsChanged));i.dv(new Ee(o,()=>{if(!t.featureProps)return;const a=t.featureProps;let u;return(async()=>{const{layerType:c,renderer:h,labelingInfo:f}=a,p=await s();!p||p.length===0||(c==="pointVector"?u=new ib(t,p,h,f):c==="polylineVector"?u=new sb(t,p,h,f):c==="polygonVector"&&(u=new ob(t,p,h,f)),console.log("polygonVectorLayer","createLayer",u))})().catch(console.error),{destroy:()=>{var c;(c=u==null?void 0:u.destroy)==null||c.call(u),u=void 0}}}));{const a=(u,l=1)=>{const c=Zv(u);if(!c)return;const{center:h,radius:f}=c;n.flyTo({distance:f*4,heading:0,pitch:-90,flyDuration:l??1,hDelta:0,pDelta:0},h)};i.d(t.flyToEvent.don(async u=>{const{featureProps:l}=t;if(!l)return;const c=await s();if(!c)return;let h=[];l.layerType==="polylineVector"?h=c.map(f=>f.points).flat():l.layerType==="polygonVector"?h=c.map(f=>f.points).flat():l.layerType==="pointVector"&&(h=c.map(f=>f.points)),h.length!==0&&a(h,u)}))}}init(){this._initEvent.emit()}}const wu=class wu extends Ht{constructor(t){super(t);d(this,"featureLayerMap",new Map);const n=this;n.d(n.viewerAttached.don(i=>{if(console.log("ESFeatureLayer","viewerAttached",i.id),n.featureLayerMap.has(i.id))return;const s=new ab(n,i);s.init(),n.featureLayerMap.set(i.id,s)})),n.d(n.viewerDetached.don(i=>{var s;console.log("ESFeatureLayer","viewerDetached",i.id),n.featureLayerMap.has(i.id)&&((s=n.featureLayerMap.get(i.id))==null||s.destroy(),n.featureLayerMap.delete(i.id))})),n.d(()=>{for(const i of n.featureLayerMap.values())i.destroy();n.featureLayerMap.clear()}),n.d(Ui(n.showChanged,()=>{for(const i of n.components.values())Reflect.has(i,"show")&&(i.show=n.show)},{immediate:!0}))}};d(wu,"createDefaultProps",()=>({...Ht.createDefaultProps(),featureProps:Qt(void 0)})),d(wu,"type",wu.register("ESFeatureLayer",wu,{chsName:"矢量图层",tags:["ESObjects"],description:"ESFeatureLayer"}));let hp=wu;const ps=class ps extends V{constructor(){super();d(this,"_loading",!1);d(this,"_loadedEvent",this.disposeVar(new O));d(this,"_loaded",!1);d(this,"_loadedPromiseResolve");d(this,"_loadedPromise",new Promise(t=>{this._loadedPromiseResolve=t}));d(this,"_processing",this.disposeVar(Yn(async t=>{if(this._loading=!0,globalThis.Hls)console.info("可能系统已经加载hlsjs,此处不再加载!");else{const n=rt.context.getStrFromEnv(ps.path);await t.promise(vh(n))}this._loading=!1,this._loaded=!0,this._loadedEvent.emit(),this._loadedPromiseResolve()})));this._processing.start()}get loading(){return this._loading}get loadedEvent(){return this._loadedEvent}get loaded(){return this._loaded}get loadedPromise(){return this._loadedPromise}get processing(){return this._processing}static instance(){return ps._instance=ps._instance||new ps,ps._instance}};d(ps,"path","${xr-utils-script-dir}/xr-static/xr-utils/hlsjs/1.4.12/hls.min.js"),d(ps,"_instance");let Yc=ps,ub=class extends V{constructor(t,n){super();d(this,"_element");this._complexImage=t,this._videoSrc=n;var i=document.createElement("video");i.src=this._videoSrc,i.style.position="absolute",i.style.top="0px",i.style.left="0px",i.style.zIndex="-100",i.style.visibility="hidden";{const s=()=>{i.crossOrigin=this._complexImage.crossOrigin};s(),this.dispose(this._complexImage.crossOriginChanged.disposableOn(s))}{const s=()=>{i.autoplay=this._complexImage.autoplay};s(),this.dispose(this._complexImage.autoplayChanged.disposableOn(s))}{const s=()=>{i.loop=this._complexImage.loop};s(),this.dispose(this._complexImage.loopChanged.disposableOn(s))}i.muted=!0,document.body.appendChild(i),this._element=i,this.dispose(()=>document.body.removeChild(i))}get element(){return this._element}};class lb extends V{constructor(t,n){super();d(this,"_videoDom");d(this,"_processing",this.disposeVar(Yn(async t=>{const{videoSrc:n}=this,i=Yc.instance();await t.promise(i.loadedPromise);const s=globalThis.Hls,o=new s,a=this.element;await to(t,()=>new Promise((u,l)=>{a.xbsjHLS=o,o.attachMedia(a),o.on(s.Events.MEDIA_ATTACHED,()=>{o.loadSource(n),o.on(s.Events.MANIFEST_PARSED,(c,h)=>{a.play(),u()})}),o.on(s.Events.ERROR,(c,h)=>{const{type:f,details:p,fatal:v}=h;v&&(o.destroy(),l(p))})}))})));d(this,"_processingStartup",this._processing.start());this._complexImage=t,this._videoSrc=n,this._videoDom=this.disposeVar(new ub(this._complexImage,""))}get videoSrc(){return this._videoSrc}get videoDom(){return this._videoDom}get element(){return this.videoDom.element}get processing(){return this._processing}}class ky extends V{constructor(t,n){super();d(this,"_videoDom");d(this,"_update",this.disposeVar(ea(()=>this.update())));d(this,"_updateStart",this._update.start());this._complexImage=t,this._imageUri=n,this._videoDom=this.disposeVar(new lb(this._complexImage,this._imageUri))}get videoDom(){return this._videoDom}get videoElement(){return this._videoDom.element}update(){if(this.videoElement.readyState<2)return;const t=this._complexImage,{videoWidth:n,videoHeight:i}=this.videoElement;t.size=[n,i],t.pixelFormat="RGBA",t.copyTexture({source:this.videoElement})}}const gs=class gs extends V{constructor(){super();d(this,"_loading",!1);d(this,"_loadedEvent",this.disposeVar(new O));d(this,"_loaded",!1);d(this,"_loadedPromiseResolve");d(this,"_loadedPromise",new Promise(t=>{this._loadedPromiseResolve=t}));d(this,"_processing",this.disposeVar(Yn(async t=>{if(this._loading=!0,globalThis.flvjs)console.info("可能系统已经加载flvjs,此处不再加载!");else{const n=rt.context.getStrFromEnv(gs.path);await t.promise(vh(n))}this._loading=!1,this._loaded=!0,this._loadedEvent.emit(),this._loadedPromiseResolve()})));this._processing.start()}get loading(){return this._loading}get loadedEvent(){return this._loadedEvent}get loaded(){return this._loaded}get loadedPromise(){return this._loadedPromise}get processing(){return this._processing}static instance(){return gs._instance=gs._instance||new gs,gs._instance}};d(gs,"path","${xr-utils-script-dir}/xr-static/xr-utils/flvjs/1.6.2/flv.min.js"),d(gs,"_instance");let Jc=gs;class cb extends V{constructor(t,n){super();d(this,"_element");this._complexImage=t,this._videoSrc=n;var i=document.createElement("video");i.src=this._videoSrc,i.style.position="absolute",i.style.top="0px",i.style.left="0px",i.style.zIndex="-100",i.style.visibility="hidden";{const s=()=>{i.crossOrigin=this._complexImage.crossOrigin};s(),this.dispose(this._complexImage.crossOriginChanged.disposableOn(s))}{const s=()=>{i.autoplay=this._complexImage.autoplay};s(),this.dispose(this._complexImage.autoplayChanged.disposableOn(s))}{const s=()=>{i.loop=this._complexImage.loop};s(),this.dispose(this._complexImage.loopChanged.disposableOn(s))}i.muted=!0,document.body.appendChild(i),this._element=i,this.dispose(()=>document.body.removeChild(i))}get element(){return this._element}}class hb extends V{constructor(t,n){super();d(this,"_videoDom");d(this,"_processing",this.disposeVar(Yn(async t=>{const{videoSrc:n}=this,i=Jc.instance();await t.promise(i.loadedPromise);const s=globalThis.flvjs,o=this.element;await to(t,()=>new Promise((a,u)=>{if(!s.isSupported()){u("flvjs不支持!");return}var l=s.createPlayer({type:"flv",url:n});l.attachMediaElement(o),l.load(),l.play(),o.xbsjFlvPlayer=l}))})));this._complexImage=t,this._videoSrc=n,this._videoDom=this.disposeVar(new cb(this._complexImage,"")),this._processing.start()}get videoSrc(){return this._videoSrc}get videoDom(){return this._videoDom}get element(){return this.videoDom.element}get processing(){return this._processing}}class Vy extends V{constructor(t,n){super();d(this,"_videoDom");d(this,"_update",this.disposeVar(ea(()=>this.update())));d(this,"_updateStart",this._update.start());this._complexImage=t,this._imageUri=n,this._videoDom=this.disposeVar(new hb(t,this._imageUri))}get videoDom(){return this._videoDom}get videoElement(){return this._videoDom.element}update(){if(this.videoElement.readyState<2)return;const t=this._complexImage,{videoWidth:n,videoHeight:i}=this.videoElement;t.size=[n,i],t.pixelFormat="RGBA",t.copyTexture({source:this.videoElement})}}function jy(r){const e=r.substring(r.lastIndexOf(".")+1);return Cl.suffixTypes[e]}class Cl extends V{constructor(){super();d(this,"_enabled",this.disposeVar(j(!1)));d(this,"_uri",this.disposeVar(j("")));d(this,"_type",this.disposeVar(j(void 0)));d(this,"_size",this.disposeVar(re(void 0)));d(this,"_pixelFormat",this.disposeVar(j("RGBA")));d(this,"_flipY",this.disposeVar(j(!0)));d(this,"_crossOriginReact",this.disposeVar(j("")));d(this,"_autoplayReact",this.disposeVar(j(!0)));d(this,"_loopReact",this.disposeVar(j(!0)));d(this,"_copyTextureEvent",this.disposeVar(new O));d(this,"_imageProcessingResettingEvent",this.disposeVar(Ie(this.enabledChanged,this.uriChanged,this.typeChanged)));d(this,"_imageProcessingResetting",this.disposeVar(new Ee(this._imageProcessingResettingEvent,()=>{do{if(!this.enabled||!this.uri)break;let{type:t}=this;if(t||(t=jy(this.uri)),!t)break;if(t==="img")return new dg(this,this.uri);if(t==="video")return new gg(this,this.uri);if(t==="gif")return new bg(this,this.uri);if(t==="hls")return new ky(this,this.uri);if(t==="flv")return new Vy(this,this.uri)}while(!1)})));d(this,"_createNativeTextureEvent",this.disposeVar(Ie(this.enabledChanged,this.sizeChanged,this.pixelFormatChanged,this.flipYChanged)))}get enabled(){return this._enabled.value}set enabled(t){this._enabled.value=t}get enabledChanged(){return this._enabled.changed}get uri(){return this._uri.value}set uri(t){this._uri.value=t}get uriChanged(){return this._uri.changed}get type(){return this._type.value}set type(t){this._type.value=t}get typeChanged(){return this._type.changed}get size(){return this._size.value}set size(t){this._size.value=t}get sizeChanged(){return this._size.changed}get pixelFormat(){return this._pixelFormat.value}set pixelFormat(t){this._pixelFormat.value=t}get pixelFormatChanged(){return this._pixelFormat.changed}get flipY(){return this._flipY.value}set flipY(t){this._flipY.value=t}get flipYChanged(){return this._flipY.changed}get crossOrigin(){return this._crossOriginReact.value}set crossOrigin(t){this._crossOriginReact.value=t}get crossOriginChanged(){return this._crossOriginReact.changed}get autoplay(){return this._autoplayReact.value}set autoplay(t){this._autoplayReact.value=t}get autoplayChanged(){return this._autoplayReact.changed}get loop(){return this._loopReact.value}set loop(t){this._loopReact.value=t}get loopChanged(){return this._loopReact.changed}get copyTextureEvent(){return this._copyTextureEvent}copyTexture(t){this._createNativeTextureEvent.flush(),this._copyTextureEvent.emit(t)}get imageProcessingResetting(){return this._imageProcessingResetting}get createNativeTextureEvent(){return this._createNativeTextureEvent}copyFromCanvas(t){if(t.width<=0||t.height<=0){console.warn("canvas.width <= 0 || canvas.height <= 0");return}this.size=[t.width,t.height],this.pixelFormat="RGBA",this.copyTexture({source:t})}}d(Cl,"types",pg),d(Cl,"czmPixelFormats",fg),d(Cl,"suffixTypes",{png:"img",jpg:"img",svg:"img",webp:"img",gif:"gif",mp4:"video",mov:"video",webm:"video",flv:"flv",m3u8:"hls"});const db=[0,0,0,0];class fb{constructor(){d(this,"_value",[]);d(this,"_valueStr","[]");d(this,"_valueChanged");this.value=[{ratio:0,rgba:[0,0,1,1]},{ratio:.2,rgba:[0,1,0,1]},{ratio:.8,rgba:[1,1,0,1]},{ratio:1,rgba:[1,0,0,1]}]}get valueChanged(){return this._valueChanged||(this._valueChanged=new O),this._valueChanged}set value(e){if(e.length===0){console.error("value.length === 0");return}let t;if(this._value.length===e.length){const i=[...e].sort((s,o)=>s.ratio-o.ratio);if(t=JSON.stringify(i),this._valueStr===t)return}t=t||JSON.stringify([...e].sort((i,s)=>i.ratio-s.ratio));const n=this._value;if(this._value=JSON.parse(t),this._value.length===0)throw console.error("this._colorStops.length === 0"),new Error("this._colorStops.length === 0");this._valueChanged&&this._valueChanged.emit(this._value,n)}get value(){return JSON.parse(JSON.stringify(this._value))}get valueStr(){return this._valueStr}get minRatio(){return this._value[0].ratio}get maxRatio(){return this._value[this._value.length-1].ratio}_getRatioIndex(e){if(e<this._value[0].ratio||e>this._value[this._value.length-1].ratio)throw console.error("ratio <= this._colorStops[0].ratio || ratio >= this._colorStops[this._colorStops.length - 1].ratio"),new Error("ratio <= this._colorStops[0].ratio || ratio >= this._colorStops[this._colorStops.length - 1].ratio");let t=this._value.length;for(let n=0;n<t-1;++n)if(e>=this._value[n].ratio&&e<=this._value[n+1].ratio)return n;throw console.error("shoud not be here!"),new Error("shoud not be here!")}getRatioColor(e,t){e=jl(e,this.minRatio,this.maxRatio);const n=this._getRatioIndex(e),i=this._value[n],s=this._value[n+1],o=(e-i.ratio)/(s.ratio-i.ratio);for(let a=0;a<4;++a)t[a]=i.rgba[a]*(1-o)+s.rgba[a]*o;if(t.some(Number.isNaN)){console.error("result NaN");return}return t}getColorsInUint8(e){if(e.length%4!==0)throw console.error("result.length % 4 !== 0"),new Error("result.length % 4 !== 0");const t=e.length/4,n=1/t;for(let i=0;i<t;++i){const s=db;this.getRatioColor((i+.5)*n,s)||s.splice(0,4,0,0,0,0);for(let o=0;o<4;++o)e[i*4+o]=255*s[o]|0}return e}}class pb extends V{constructor(){super(...arguments);d(this,"registerEngines",{})}register(t,n,i){const s=this.registerEngines[t]||new Map;return s.has(n)&&console.warn(`register warn:${t}中${n}的实现类已经被注册,再次注册会覆盖。`),s.set(n,i),this.registerEngines[t]=s,n}getEngineObjConstructor(t,n){const i=this.registerEngines[n];if(!i)return;let s=t.constructor,o=t.typeName,a=i.get(o);if(a)return a;if(t.components.main)return;const u=o;for(;o!=="ESSceneObject"&&(s=s.getParentClass(),!!s);)if(o=s.type,a=i.get(o),a)return console.warn(`未找到${u}在${n}中对应的实现类! 使用父类${o}的实现类!`),a}createEngineObject(t,n){const i=this.getEngineObjConstructor(t,n.typeName);if(i){const s=new i(t,n);return s.createdEvent.emit(),s}else{const s=new xo(t,n);return s.createdEvent.emit(),s}}}class gb extends V{constructor(){super(...arguments);d(this,"registerEngines",{})}register(t,n,i){const s=this.registerEngines[t]||new Map;s.has(n)&&console.warn(`register warn:${t}中${n}的实现类已经被注册,再次注册会覆盖。`),s.set(n,i),this.registerEngines[t]=s}getEngineObjConstructor(t,n){const s=(this.registerEngines[n]||new Map).get(t);if(s)return s;console.warn(`未找到${t}在${n}中对应的实现类!`)}createEngineObject(t,n){const i=this.getEngineObjConstructor(t.typeName,n.typeName);if(i){const s=new i(t,n);return s.createdEvent.emit(),s}else{const s=new xo(t,n);return s.createdEvent.emit(),s}}}const Lr=class Lr extends V{constructor(t,n,i=!1){super();d(this,"_createdEvent",this.dv(new O));d(this,"_id",++Lr._accumId);this._sceneObject=t,this._viewer=n;{if(i)return;const s=(o,a)=>{for(let u of o)this._viewer.delete(u);for(let u of a)u.parentID=this.sceneObject.id,this._viewer.add(u)};s([],this._sceneObject.components.values()),this.d(this._sceneObject.components.toChange.don(s)),this.d(()=>s(this._sceneObject.components.values(),[]))}}get createdEvent(){return this._createdEvent}get sceneObject(){return this._sceneObject}get viewer(){return this._viewer}get id(){return this._id}};d(Lr,"context",new pb),d(Lr,"contextEditing",new gb),d(Lr,"register",Lr.context.register.bind(Lr.context)),d(Lr,"registerEditing",Lr.contextEditing.register.bind(Lr.contextEditing)),d(Lr,"_accumId",-1);let xo=Lr;class mb extends V{constructor(){super();d(this,"_tools",new Map);this._tools.set("default",new Map)}_getMcpTool(t){const{description:n,inputSchema:i}=t.params,s=vt.object(i),o=$y(s);return{name:t.name,description:n,inputSchema:o}}listTools(){return this.groupTools().flatMap(({tools:n})=>n)}groupTools(){return Array.from(this._tools.entries()).map(([n,i])=>({group:n,tools:Array.from(i.values()).map(this._getMcpTool,this)}))}_getGroup(t){return this._tools.has(t)||(console.warn(`group "${t}" does not exist.`),this._tools.set(t,new Map)),this._tools.get(t)}_getTool(t){for(const n of this._tools.values())if(n.has(t))return n.get(t)}_registerTool(t,n="default"){const i=this._getGroup(n);for(const[s,o]of this._tools.entries())if(o.has(t.name)&&s!==n){console.warn(`Tool "${t.name}" is already registered in group "${s}". Tool names must be unique across all groups.`);return}i.has(t.name)&&console.warn(`Tool "${t.name}" is already registered in group "${n}". Now replacing it.`),i.set(t.name,t)}_registerTools(t,n="default"){t.forEach(i=>this._registerTool(i,n))}async callTool(t){try{const{name:n,arguments:i}=t;console.log(`调用工具 ${n},参数:`,i);const s=this._getTool(n);if(!s||!s.func)throw new Error(`Tool "${n}" does not exist.`);const o=await s.func(i);return console.log(`调用工具 ${n} 结果:`,o),o}catch(n){throw console.error(`调用工具 ${t.name} 失败:`,n),n}}}function Ze(r,e){return{content:[{type:"text",text:JSON.stringify({status:"error",msg:e||"执行失败",data:r},null,2)}]}}function Wn(r,e){return{content:[{type:"text",text:JSON.stringify({status:"success",msg:e||"执行成功",data:r},null,2)}]}}const vb=r=>[{name:"flyToGlobalOrChina",params:{description:"相机视角飞行定位到全球视角或中国视角(op=global/china)",inputSchema:{op:vt.enum(["global","china"])}},func:async({op:e})=>{var t;try{let n=[120.363551,28.909792,22191655],i=[.1,-90,0];return e==="china"&&(n=[106.245513,37.209745,9812382],i=[.1,-90,0]),(t=r.activeViewer)==null||t.flyIn(n,i,1),Wn()}catch(n){return Ze(n)}}},{name:"getCurrentCameraInfo",params:{description:"获取当前相机视角下的视角信息",inputSchema:{}},func:async({})=>{var e;try{const t=(e=r.activeViewer)==null?void 0:e.getCurrentCameraInfo();return t?Wn(t):Ze()}catch(t){return Ze(t)}}},{name:"saveCameraView",params:{description:"保存或记录当前相机视角信息",inputSchema:{}},func:async({})=>{try{return r.cameraViewsManager.addView(),Wn()}catch(e){return Ze(e)}}},{name:"cameraViewsManagerControl",params:{description:"播放(play)或停止(stop)视角播放器(视角控制器/视角轮播)",inputSchema:{op:vt.enum(["play","stop"])}},func:async({op:e})=>{try{return e==="play"?r.cameraViewsManager.playing=!0:r.cameraViewsManager.stop(),Wn()}catch(t){return Ze(t)}}},{name:"flyIn",params:{description:"根据提供的经度、纬度、高度信息(position:[x,y,z]) 、姿态信息(rotation:[h,p,r]) 来改变相机视角位置,实现飞行定位",inputSchema:{position:vt.object({x:vt.number(),y:vt.number(),z:vt.number().optional()}),rotation:vt.object({h:vt.number(),p:vt.number(),r:vt.number()}).optional()}},func:async({position:e,rotation:t})=>{var n;try{const i={position:[e.x,e.y,e.z||100],rotation:[t.h||0,t.p||0,t.r||0]};return(n=r.activeViewer)==null||n.flyIn(i.position,i.rotation),Wn()}catch(i){return Ze(i)}}},{name:"flyToByObjectId",params:{description:"根据提供的对象 id 来改变相机视角位置,实现对象的飞行定位",inputSchema:{id:vt.string()}},func:async({id:e})=>{try{const t=r.getSceneObjectById(e);return t?Reflect.has(t,"flyTo")?(t.flyTo(),Wn()):Ze(`对象 ${t.id} 没有方法 flyTo`):Ze("未查询到该对象")}catch(t){return Ze(t)}}},{name:"changeToMap",params:{description:"漫游模式切换为地图模式(默认方式/正常模式/常规模式/退出漫游模式)",inputSchema:{}},func:async({})=>{var e;try{return(e=r.activeViewer)==null||e.changeToMap(),Wn()}catch(t){return Ze(t)}}},{name:"changeToRotateGlobe",params:{description:"漫游模式切换为全球旋转模式(地球旋转模式), 默认参数:纬度(latitude)38度,高度(height)10000000米,旋转周期(cycleTime)60秒",inputSchema:{latitude:vt.number().optional(),height:vt.number().optional(),cycleTime:vt.number().optional()}},func:async({latitude:e,height:t,cycleTime:n})=>{var i;try{const s={latitude:e||38,height:t||1e7,cycleTime:n||60};return(i=r.activeViewer)==null||i.changeToRotateGlobe(s.latitude,s.height,s.cycleTime),Wn()}catch(s){return Ze(s)}}},{name:"changeToRotatePoint",params:{description:"根据提供的位置点position经纬度高程度坐标([x,y,z],必需),将漫游模式切换为绕点中心旋转模式(绕点旋转模式/点位观察模式),其他参数及默认值:距离(distance)50000米、旋转周期(orbitPeriod)60秒、水平角度(heading)0、俯仰角度(pitch)-30",inputSchema:{position:vt.object({x:vt.number(),y:vt.number(),z:vt.number()}),distance:vt.number().optional(),orbitPeriod:vt.number().optional(),heading:vt.number().optional(),pitch:vt.number().optional()}},func:async({position:e,distance:t,orbitPeriod:n,heading:i,pitch:s})=>{var o;try{const a={position:[e.x,e.y,e.z],distance:t||5e4,orbitPeriod:n||60,heading:i||0,pitch:s||-30};return(o=r.activeViewer)==null||o.changeToRotatePoint(a.position,a.distance,a.orbitPeriod,a.heading,a.pitch),Wn()}catch(a){return Ze(a)}}},{name:"changeToWalk",params:{description:"根据提供的位置点position经纬度高程度坐标([x,y,z],必需),将漫游模式切换为第一人称模式(步行模式/第一人称漫游模式),参数:起始位置经纬度高程(position,必需)、跳跃的 Z 轴速度(jumpZVelocity)、眼睛高度(eyeHeight)",inputSchema:{position:vt.object({x:vt.number(),y:vt.number(),z:vt.number()}),jumpZVelocity:vt.number().optional(),eyeHeight:vt.number().optional()}},func:async({position:e,jumpZVelocity:t,eyeHeight:n})=>{var i;try{const s={position:[e.x,e.y,e.z],jumpZVelocity:t||4.2,eyeHeight:n||1.6};return(i=r.activeViewer)==null||i.changeToWalk(s.position,s.jumpZVelocity,s.eyeHeight),Wn()}catch(s){return Ze(s)}}},{name:"changeToLine",params:{description:"根据提供的线对象id(必需),将漫游模式切换为沿线漫游模式(沿线运动模式), 参数:线条对象id(lineObjectId,必需)、速度(speed)、高度偏移(heightOffset)、是否循环(loop)、转弯速率(turnRateDPS)、线路模式(lineMode)",inputSchema:{lineObjectId:vt.string(),speed:vt.number().optional(),heightOffset:vt.number().optional(),loop:vt.boolean().optional(),turnRateDPS:vt.number().optional(),lineMode:vt.enum(["auto","manual"]).optional()}},func:async({lineObjectId:e,speed:t,heightOffset:n,loop:i,turnRateDPS:s,lineMode:o})=>{var a;try{const u={lineObjectId:e,speed:t||10,heightOffset:n||10,loop:i||!0,turnRateDPS:s||10,lineMode:o||"auto"};return(a=r.activeViewer)==null||a.changeToLine(u.lineObjectId,u.speed,u.heightOffset,u.loop,u.turnRateDPS,u.lineMode),Wn()}catch(u){return Ze(u)}}},{name:"changeToFollow",params:{description:"根据提供的目标对象id(positionObjectId,必需,只能是单点位对象),将漫游模式切换为跟随模式(跟踪模式), 参数: 目标对象id(positionObjectId,必需,只能是单点位对象)、距离(distance)、水平角度(heading)、俯仰角度(pitch)、是否相对旋转(relativeRotation)",inputSchema:{positionObjectId:vt.string(),distance:vt.number().optional(),heading:vt.number().optional(),pitch:vt.number().optional(),relativeRotation:vt.boolean().optional()}},func:async({positionObjectId:e,distance:t,heading:n,pitch:i,relativeRotation:s})=>{var o;try{const a={positionObjectId:e,distance:t||0,heading:n||0,pitch:i||-30,relativeRotation:s||!0};return(o=r.activeViewer)==null||o.changeToFollow(a.positionObjectId,a.distance,a.heading,a.pitch,a.relativeRotation),Wn()}catch(a){return Ze(a)}}},{name:"adjustCamera",params:{description:"相机视角微调,相机拉近(distance=near)、拉远(distance=far)、左移/左转(heading=left)、右移/右转(heading=right)、向上抬(pitch=up)、向下压(pitch=down)、顺时针旋转(roll=clockwise)、逆时针旋转(roll=counterclockwise)",inputSchema:{distance:vt.enum(["far","near","keep"]).optional(),heading:vt.enum(["left","right","keep"]).optional(),pitch:vt.enum(["up","down","keep"]).optional(),roll:vt.enum(["clockwise","counterclockwise","keep"]).optional()}},func:async({distance:e,heading:t,pitch:n,roll:i})=>{var s,o;try{const a=(s=r.activeViewer)==null?void 0:s.getCurrentCameraInfo();if(!a)return Ze("Camera info is null");const u={height:e==="near"?a.position[2]-100:e==="far"?a.position[2]+100:a.position[2],heading:t==="left"?a.rotation[0]-10:t==="right"?a.rotation[0]+10:a.rotation[0],pitch:n==="up"?a.rotation[1]-10:n==="down"?a.rotation[1]+10:a.rotation[1],roll:i==="clockwise"?a.rotation[2]-10:i==="counterclockwise"?a.rotation[2]+10:a.rotation[2]},l={position:[a.position[0],a.position[1],u.height],rotation:[u.heading,u.pitch,u.roll]};return(o=r.activeViewer)==null||o.flyIn(l.position,l.rotation),Wn()}catch(a){return Ze(a)}}}],yb=r=>[{name:"getSceneJson",params:{description:"获取整个场景的json数据",inputSchema:{}},func:async()=>({content:[{type:"text",text:JSON.stringify(r.completeJson||"未获取到场景数据",null,2)}]})},{name:"getObjectJsonByName",params:{description:"根据名称来获取某一个对象json数据,查询对象属性名以及属性值",inputSchema:{name:vt.string()}},func:async({name:e})=>{const t=r.getSceneObject();if(Array.isArray(t)){const n=t.filter(i=>i.name.includes(e)).map(i=>i.completeJson);return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}else return{content:[{type:"text",text:JSON.stringify("未查询到对象",null,2)}]}}},{name:"getObjectJsonById",params:{description:"根据id来获取对象json数据,查询对象属性名以及属性值",inputSchema:{id:vt.string()}},func:async({id:e})=>{var n;const t=((n=r.getSceneObjectById(e))==null?void 0:n.completeJson)||"未查询到对象";return{content:[{type:"text",text:JSON.stringify(t,null,2)}]}}},{name:"setObjectProperty",params:{description:"设置对象的属性值,需要对象id,对象属性名,属性值",inputSchema:{id:vt.string(),property:vt.string(),value:vt.any()}},func:async({id:e,property:t,value:n})=>{const i=r.getSceneObjectById(e);if(!i)return{content:[{type:"text",text:JSON.stringify({success:!1,message:`未查询到ID为 ${e} 的对象`},null,2)}]};if(!(t in i))return{content:[{type:"text",text:JSON.stringify({success:!1,message:`对象 ${i.name} 没有属性 ${t}`},null,2)}]};try{return i[t]=n,{content:[{type:"text",text:JSON.stringify({success:!0,message:`成功设置对象 ${i.name} 的 ${t} 属性为 ${JSON.stringify(n)}`,objectId:e,property:t,value:n},null,2)}]}}catch(s){return{content:[{type:"text",text:JSON.stringify({success:!1,message:`设置对象 ${i.name} 的 ${t} 属性时出错`,error:s.message||String(s)},null,2)}]}}}}];function By(r){return typeof r=="string"?document.getElementById(r):r}function dp(r){if(!r)throw new Error("container is not defined");r.innerHTML="";const e=document.createElement("div");return e.style.cssText="width: 100%; height: 100%; margin: 0px; padding: 0px; border: none; overflow: hidden; position: relative; z-index: 0; background: rgba(0,0,0,0);",r.appendChild(e),e}class zy extends V{constructor(t,n){super();d(this,"_listeningSceneObjects",new Map);this._sceneObjectsMananger=t,this._createSceneObjectListeningFunc=n;const i=this._listeningSceneObjects,s=(o,a)=>{if(o)for(let u of o){const l=i.get(u);l&&(l.destroy(),i.delete(u))}if(a)for(let u of a){if(i.get(u)){console.warn(`listeningSceneObjects已存在某对象:${u.name}`,u);debugger}const c=this.createSceneObjectListeningFunc(u);c&&i.set(u,c)}};s(void 0,this._sceneObjectsMananger.sceneObjects),this.dispose(this._sceneObjectsMananger.sceneObjectsToChange.disposableOn(s)),this.dispose(()=>{for(let o of this._listeningSceneObjects.values())o.destroy();this._listeningSceneObjects.clear()})}get listeningSceneObjects(){return this._listeningSceneObjects}get createSceneObjectListeningFunc(){return this._createSceneObjectListeningFunc}}class _b extends V{constructor(e){super(),this._esObjectsManager=e;{const t=this._esObjectsManager;class n extends V{constructor(s){super(),this._esPath=s,this.dv(new Ee(t.activeViewerChanged,()=>{const o=t.activeViewer;if(!o)return;class a extends V{constructor(l){if(super(),this._esPath=l,!o)throw new Error("!viewer");const c=()=>{const h=t.activeViewer;h&&(this._esPath.path.currentTime=h.simulationTime)};c(),this.d(o.simulationTimeChanged.don(c))}}return new a(this._esPath)}))}}this.dv(new zy(t.sceneObjectsManager,i=>{if(i instanceof Ua)return new n(i)}))}{const t=this._esObjectsManager;class n extends V{constructor(s){super();const o=()=>{const a=t.activeViewer;a&&(a.simulationTime=s.currentTime??0)};o(),this.d(s.currentTimeChanged.don(o))}}this.dv(new zy(t.sceneObjectsManager,i=>{if(i instanceof za)return new n(i)}))}}}class wb extends V{constructor(e){super(),e.forEach(t=>{this.d(t.path.currentPositionChanged.don(n=>{n&&t.sceneObjects.forEach(i=>{Reflect.has(i,"position")&&(i.position=[...n])})})),this.d(t.path.currentRotationChanged.don(n=>{n&&t.sceneObjects.forEach(i=>{Reflect.has(i,"rotation")&&(i.rotation=[...n])})}))})}}class Eb extends V{constructor(t){super();d(this,"_player");d(this,"_channels",this.dv(ht([])));this._objectManager=t,this._player=this._objectManager.player,this.dv(new Ee(this.channelsChanged,()=>{if(this.channels.length===0)return;const n=[];for(let i=0;i<this.channels.length;i++){const s=this.channels[i],o=rt.getSceneObjById(s.pathId);if(!o||!(o instanceof Ua))continue;const u=s.sceneObjectIds.map(l=>rt.getSceneObjById(l)).filter(l=>l!==void 0);u.length!==0&&n.push({path:o,sceneObjects:u})}if(n.length!==0)return new wb(n)}))}get player(){return this._player}get channels(){return this._channels.value}get channelsChanged(){return this._channels.changed}set channels(t){this._channels.value=t}}function $c(r){if(r.data){const{type:e,value:t}=r.data;if(e==="UITreeA"&&t instanceof yn){const{sceneObject:n}=t;if(n)return n.id}}}function Cb(r,e){const{property:t,customEventName:n,otherParams:i}=e,{dragstartDataMananger:s}=r;if(!(t instanceof ia)){if(!(t instanceof Mg)){if(t instanceof pt){const[o,a]=zi(t.reactVar);if(n==="ondragover"){if(console.log("ondragover"),!i)throw new Error("!otherParams");const u=i[0];if(u.preventDefault(),!u.dataTransfer)return;$c(s)?u.dataTransfer.dropEffect="move":u.dataTransfer.dropEffect="none"}else if(n==="ondrop"){if(!i)throw new Error("!otherParams");i[0].preventDefault();const l=$c(s);l!==void 0&&a(l)}}else if(t instanceof xg){const[o,a]=zi(t.reactVar);if(n==="ondragover"){if(console.log("ondragover"),!i)throw new Error("!otherParams");const u=i[0];if(u.preventDefault(),!u.dataTransfer)return;$c(s)?u.dataTransfer.dropEffect="move":u.dataTransfer.dropEffect="none"}else if(n==="ondrop"){if(!i)throw new Error("!otherParams");const u=i[0].$event,l=i[0].strinsPropDom,c=i[0].index;u.preventDefault();const h=$c(s);if(h!==void 0){l[c].firstChild.value=h;const f=new Event("input",{bubbles:!0,cancelable:!0});l[c].firstChild.dispatchEvent(f)}}}else if(t instanceof Tg){const[o,a]=zi(t.reactVar)}}}}function Uy(r,e,t,n){if(t)n.currentActiveEditing=[r,e];else if(n.currentActiveEditing){const[i,s]=n.currentActiveEditing;i===r&&s===e&&(t||(n.currentActiveEditing=void 0))}}const Sb=["editing","positionEditing","locationEditing","pointEditing","rotationEditing"];class bb extends V{constructor(e,t){super(),this._sceneObject=e;const n=this._sceneObject;for(let i of Sb){const s=i+"Changed",o=n[s];if(o){{const a=n[i];Uy(n,i,a,t)}this.dispose(o.disposableOn(a=>Uy(n,i,a,t)))}}}get sceneObject(){return this._sceneObject}}class Pb extends V{constructor(){super();d(this,"_currentActiveEditing",this.disposeVar(re(void 0)));d(this,"_currentActiveEditingLastChangedTime",0);this.dispose(this._currentActiveEditing.changed.disposableOn((t,n)=>{if(this._currentActiveEditingLastChangedTime=Date.now(),n){const[i,s]=n;i[s]===!0&&(i[s]=!1)}if(t){const[i,s]=t;i[s]=!0}})),rt.context.sceneObjCreatedEvent.don(t=>{t.dv(new bb(t,this))})}get currentActiveEditing(){return this._currentActiveEditing.value}set currentActiveEditing(t){this._currentActiveEditing.value=t}get currentActiveEditingChanged(){return this._currentActiveEditing.changed}get currentActiveEditingLastChangedTime(){return this._currentActiveEditingLastChangedTime}}class Ib extends V{constructor(){super();d(this,"_sceneObjects",new Set);d(this,"_sceneObjectsToChange",this.dv(new O));this.d(()=>{const t=ph(this._sceneObjects);t!==0&&console.warn(`场景对象管理器销毁时仍然管理着${t}个场景对象!`)})}get sceneObjects(){return this._sceneObjects}get sceneObjectsToChange(){return this._sceneObjectsToChange}addSceneObject(t){return this._sceneObjects.has(t)?(console.warn(`创建失败:对象${t.typeName+":"+t.id}已经存在于场景对象管理器中!}`),!1):(this._sceneObjectsToChange.emit([],[t]),this._sceneObjects.add(t),!0)}deleteSceneObject(t){return this._sceneObjects.has(t)?(this._sceneObjectsToChange.emit([t],[]),this._sceneObjects.delete(t),!0):(console.warn(`删除失败:对象${t.typeName+":"+t.id}不存在于场景对象管理器中!}`),!1)}createSceneObject(t,n){const i=rt.context.createSceneObject(t,n);return i&&this.addSceneObject(i),i}createSceneObjectFromUrl(t,n){const i=rt.context.createSceneObjectFromUrl(t,n);return i&&this.addSceneObject(i),i}createSceneObjectFromClass(t,n){const i=rt.context.createSceneObjectFromClass(t,n);return i&&this.addSceneObject(i),i}createSceneObjectFromJson(t){const n=rt.context.createSceneObjectFromJson(t);return n&&this.addSceneObject(n),n}}class xb extends V{constructor(t){super();d(this,"_enabled",this.dv(j(!1)));d(this,"_cursorPosition",j(void 0));d(this,"quickPickPosition",!0);let n=new V;const i=()=>{n&&(n.destroy(),n=void 0)};this.d(i);const s=()=>{if(i(),!t||!this._enabled.value)return;n=new V;const o=n.dv(j(void 0)),a=n.dv(Ie(o.changed));n.d(t.pointerMoveEvent.don(l=>{l.pointerEvent&&(o.value=ln(l.pointerEvent))}));const u=n.dv(Yn(async l=>{if(o.value)if(this.quickPickPosition){const c=await l.promise(ta(t.quickPickPosition(o.value)));this._cursorPosition.value=c}else{const c=await l.promise(ta(t.pickPosition(o.value)));this._cursorPosition.value=c}}));n.d(a.don(()=>{u.restart()}))};s(),this.d(this._enabled.changed.don(s))}get enabled(){return this._enabled.value}set enabled(t){this._enabled.value=t}get enabledChanged(){return this._enabled.changed}get cursorPosition(){return this._cursorPosition.value}get cursorPositionChanged(){return this._cursorPosition.changed}}class Tb extends V{constructor(t){super();d(this,"cursorPositionInfo");this.viewer=t,this.cursorPositionInfo=this.dv(new xb(this.viewer))}}class Ob extends V{constructor(t){super();d(this,"viewer");const n=this.viewer=t;this.ad(new Ee(n.rollerShutterChanged,()=>{const i=n.container;if(!i||!n.rollerShutter)return;const s=new V;this.viewer.splitPosition=.5;let o=this.getRollerShutterDIV();return i.appendChild(o),s.d(()=>{this.viewer.splitPosition=0,i.removeChild(o)}),s}))}getRollerShutterDIV(){let t=document.createElement("div");t.style.position="absolute",t.style.left="50%",t.style.top="0",t.style.backgroundColor="#d3d3d3",t.style.width="5px",t.style.height="100%",t.style.zIndex="9999";const n=i=>{if(!t.parentElement)return;i.preventDefault?i.preventDefault():i.returnValue=!1;const o=i.x/t.parentElement.offsetWidth;t.style.left=`${100*o}%`,this.viewer.splitPosition=o};return t.addEventListener("mouseenter",i=>{t.style.cursor="ew-resize"}),t.addEventListener("mouseleave",i=>{t.style.cursor="default"}),t.addEventListener("mousedown",i=>{t.style.cursor="ew-resize",document.addEventListener("mousemove",n)}),document.addEventListener("mouseup",i=>{t.style.cursor="default",document.removeEventListener("mousemove",n)}),t}}class Nb extends V{constructor(t){super();d(this,"rollerShutterAnalysis");this.rollerShutterAnalysis=this.ad(new Ob(t))}}function Gy(r,e){return r.length===e.length&&r.every((t,n)=>t===e[n])}class Db extends V{constructor(e){super(),this._viewer=e,this.d(B([this._viewer,"currentTime"],[this._viewer,"simulationTime"]))}}class Mb extends V{constructor(e,t){super(),this._viewer=e,this._activeViewer=t;const n=ri.createCommonProps(),i=[];Object.keys(n).forEach(u=>{const l=this._activeViewer[u+"Changed"];i.push(l)});const s=this.dv(Ie(...i)),o=()=>{this._viewer.status!=="Created"||this._activeViewer.status!=="Created"||Object.keys(n).forEach(u=>{this._viewer[u]=this._activeViewer[u]})};this.d(s.don(o));const a=this.dv(Ou());a.restart(void 0,async()=>{if(this._viewer.status!=="Created"||this._activeViewer.status!=="Created")return;const u=this._activeViewer.getCurrentCameraInfo(),l=this._viewer.getCurrentCameraInfo();if(!u)return;const{position:c,rotation:h}=u;l&&Gy(c,l.position)&&Gy(h,l.rotation)||this._viewer.flyIn(c,h,0)}),this.d(()=>a.cancel())}}const Rb=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" width="40" height="40" style="shape-rendering: auto; display: block; background: rgba(255, 255, 255, 0);" xmlns:xlink="http://www.w3.org/1999/xlink"><g><circle stroke-linecap="round" fill="none" stroke-dasharray="50.26548245743669 50.26548245743669" stroke="#ffffff" stroke-width="8" r="32" cy="50" cx="50">
433
433
  <animateTransform values="0 50 50;360 50 50" keyTimes="0;1" dur="1s" repeatCount="indefinite" type="rotate" attributeName="transform"></animateTransform>
434
434
  </circle><g></g></g></svg>
435
- `,Lb='<svg t="1747028305766" class="icon" viewBox="0 0 1032 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3881" width="40" height="40"><path d="M0.1536 547.700736c-0.205824-0.187392-0.205824-0.49152 0.008192-0.68608l80.672768-73.590784a0.63488 0.63488 0 0 1 0.7936-0.029696l263.043072 203.0336c0.667648 0.515072 1.738752 0.498688 2.393088-0.038912l609.191936-500.133888a0.605184 0.605184 0 0 1 0.768 0.022528l74.84928 67.229696a0.454656 0.454656 0 0 1-0.002048 0.685056l-685.234176 618.19904a1.14688 1.14688 0 0 1-1.518592-0.012288L0.1536 547.700736z" fill="#ffffff" p-id="3882"></path></svg>',Fb='<svg t="1747028398107" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1146" width="40" height="40"><path d="M415.744006 1.033277A0.992256 0.992256 0 0 1 416.747526 0.000061h189.5045c0.569344 0 1.017856 0.45056 1.001472 1.033216l-21.227518 754.803667a1.062912 1.062912 0 0 1-1.05984 1.032192h-146.933752c-0.569344 0-1.04448-0.45056-1.059839-1.032192L415.744006 1.033277zM511.510528 1024c-52.595709 0-95.231994-39.866366-95.231994-89.043963 0-49.176573 42.636285-89.042939 95.231994-89.042938 52.594685 0 95.231994 39.866366 95.231994 89.042938 0 49.177597-42.637309 89.043963-95.231994 89.043963z" fill="#ffffff" p-id="1147"></path></svg>',Ho=class Ho extends V{constructor(e){super();const t=()=>{const n=this.dv(new Bc);this.d(B([n,"show"],[e,"useDefaultStatusDiv"]));{const i=()=>{n.show=(e.useDefaultStatusDiv??!0)&&e.status!=="Created"};i(),this.d(e.useDefaultStatusDivChanged.don(i)),this.d(e.statusChanged.don(i)),n.cssText="width:100%;height:100%;position:absolute;left:0px;top:0px;"}e.add(n),this.d(()=>e.delete(n)),n.instanceClass=class extends V{constructor(o,a,u){super();d(this,"_div",document.createElement("div"));if(this._subContainer=o,!u)return;this._subContainer.appendChild(this._div),this.d(()=>this._subContainer.removeChild(this._div));{const v=()=>{a.show?this._div.style.opacity="1":this._div.style.opacity="0"};v(),this.d(a.showChanged.don(v))}let l,c,h,f,p;this._div.style.pointerEvents="none",this._div.style.position="absolute",this._div.style.width="100%",this._div.style.height="100%",this._div.style.backgroundColor="rgba(0, 0, 0, 0.4)",this._div.style.zIndex="100",this._div.style.transition="opacity 2s",l=document.createElement("div"),this._div.appendChild(l),l.style.width="auto",l.style.position="absolute",l.style.left="50%",l.style.top="50%",l.style.transform="translate(-50%,-50%)",l.style.background="rgba(120, 120, 0, 0.7)",l.style.color="white",l.style.fontSize="10px",l.style.background="none",l.style.display="flex",l.style.justifyContent="center",l.style.alignItems="center",c=document.createElement("div"),l.appendChild(c),c.style.pointerEvents="none",c.style.display="block",c.style.width="40px",c.innerHTML=Ho.defaultsSvg.loadingSvg,c.style.filter="drop-shadow(0px 0px 1px black)",h=document.createElement("div"),l.appendChild(h),h.style.pointerEvents="none",h.style.marginLeft="10px",h.style.display="flex",h.style.flexFlow="column",h.style.maxWidth="300px",f=document.createElement("div"),h.appendChild(f),f.style.fontSize="14px",f.style.fontWeight="800",f.style.marginBottom="5px",f.style.textShadow="0 0 2px black",p=document.createElement("div"),h.appendChild(p),p.style.fontWeight="400",p.style.textShadow="0 0 2px black";{const v=()=>{let S="Raw";u.status==="Raw"?S="初始状态":u.status==="Creating"?S="正在创建":u.status==="Created"?S="创建完成":u.status==="Error"?S="创建失败":u.status==="Reconnecting"&&(S="重新连接"),f.innerText=`${S}(${u.status})`,p.innerText=`${u.statusLog}`,(u.status==="Creating"||u.status==="Reconnecting")&&(c.innerHTML=Ho.defaultsSvg.loadingSvg),u.status==="Created"&&(c.innerHTML=Ho.defaultsSvg.successSvg),u.status==="Error"&&(c.innerHTML=Ho.defaultsSvg.warnSvg)};v();const C=this.dv(Ie(u.statusLogChanged,u.statusChanged));this.d(C.don(v))}}update(){const o=255*Math.random()|0,a=255*Math.random()|0,u=255*Math.random()|0;this._div.style.background=`rgba(${o}, ${a}, ${u}, 0.8)`}}};this.d(e.containerChanged.don(()=>{t()}))}};d(Ho,"defaultsSvg",{loadingSvg:Rb,successSvg:Lb,warnSvg:Fb});let fp=Ho;class Ab extends V{constructor(e,t,n){super(),this._subContainer=e,this._overlayContainer=t,this._viewer=n;const i=this._subContainer,s=this._overlayContainer,o=this._viewer,a=()=>{const c=o.zIndex??"";i.style.zIndex=c,s.style.zIndex=c};a(),this.d(o.zIndexChanged.don(a));const u=()=>{i.style.display=o.show??!0?"block":"none"};u(),this.d(o.showChanged.don(u));const l=()=>{i.style.opacity=`${o.opacity??1}`};l(),this.d(o.opacityChanged.don(l))}}function Kc(r){let e=Xn(r,"_relativeContainer");return e||(e=document.createElement("div"),e.style.position="relative",e.style.width="100%",e.style.height="100%",e.style.padding="0",e.style.margin="0",r.appendChild(e),fi(r,"_relativeContainer",e)),e}class kb extends V{constructor(t,n){super();d(this,"_subContainer",document.createElement("div"));d(this,"_overlayContainer",document.createElement("div"));d(this,"_containerStyleController");this._container=t,this._viewer=n,this._containerStyleController=this.dv(new Ab(this._subContainer,this._overlayContainer,this._viewer));const{subContainer:i,overlayContainer:s}=this;i.tabIndex=-1,i.style.outline="none",i.style.width="100%",i.style.height="100%",i.onpointerdown=()=>i.focus(),s.style.position="relative",s.setAttribute("earthsdk3","earthsdk3-overlayContainer"),i.setAttribute("earthsdk3","earthsdk3-subContainer"),Kc(this._container).appendChild(i),this.d(()=>Kc(this._container).removeChild(i)),Kc(this._container).appendChild(s),this.d(()=>Kc(this._container).removeChild(s))}get subContainer(){return this._subContainer}get overlayContainer(){return this._overlayContainer}get containerStyleController(){return this._containerStyleController}get container(){return this._container}}class Vb extends V{constructor(){super(...arguments);d(this,"registerObjsMap",new Map)}register(t,n){return this.registerObjsMap.has(t)&&console.warn(`register warn:${t}已经被注册,再次注册会覆盖。`),this.registerObjsMap.set(t,n),t}getViewerConstructor(t){const n=this.registerObjsMap.get(t);if(!n){console.warn(`未找到${t}类!`);return}return n}createViewer(t){const n=t.type;console.log(t);const i=this.getViewerConstructor(n);if(!i)throw new Error(`没有找到类型为${n}的Viewer构造器!`);return new i(t)}}class Wy extends V{constructor(e,t,n=!1,i=!1){if(super(),this._viewer=e,!t)throw new Error("ViewerCustomInteraction: container is null");const s=this.dv(ue.create(t,"pointerdown")),o=this.dv(ue.create(t,"pointermove")),a=this.dv(ue.create(t,"pointerup")),u=this.dv(ue.create(t,"pointerout")),l=this.dv(ue.create(t,"pointerover")),c=this.dv(new Oh),h=this.dv(new Bp),f=()=>{const m=this._viewer.hoverTime*1e3;h.delayTime=m};this.d(this._viewer.hoverTimeChanged.don(()=>{f()})),this.d(s.don(m=>c.pointerDown(m))),this.d(o.don(m=>c.pointerMove(m))),this.d(a.don(m=>c.pointerUp(m))),this.d(u.don(m=>c.pointerOut(m))),this.d(s.don(m=>h.pointerDown(m))),this.d(o.don(m=>h.pointerMove(m))),this.d(a.don(m=>h.pointerUp(m))),this.d(u.don(m=>h.pointerOut(m)));const{x:p,y:v}=t.getBoundingClientRect(),C=i?p:0,S=i?v:0;this.d(h.hoverEvent.don(m=>{const[w,E]=Ko(m,n);this._viewer.hoverEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(c.clickEvent.don(m=>{const[w,E]=Ko(m,n);this._viewer.clickEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(c.dbclickEvent.don(m=>{const[w,E]=Ko(m,n);m.button===0&&this._viewer.dblclickEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(s.don(m=>{const[w,E]=Ko(m,n);m.button===0&&this._viewer.pointerDownEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(a.don(m=>{const[w,E]=Ko(m,n);m.button===0&&this._viewer.pointerUpEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(o.don(m=>{const[w,E]=ln(m,n);this._viewer.pointerMoveEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(l.don(m=>{const[w,E]=ln(m,n);this._viewer.pointerOverEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(u.don(m=>{const[w,E]=ln(m,n);this._viewer.pointerOutEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})}));const P=this.dv(ue.create(t,"keydown"));this.d(P.don(m=>this._viewer.keyDownEvent.emit(m)));const y=this.dv(ue.create(t,"keyup"));this.d(y.don(m=>this._viewer.keyUpEvent.emit(m)));const _=this.dv(ue.create(t,"wheel"));this.d(_.don(m=>this._viewer.wheelEvent.emit(m)))}}const ms=class ms extends V{constructor(t){super();d(this,"_forceRecreateEvent",this.dv(new O));d(this,"_container",this.dv(j(void 0)));d(this,"_containerSize",this.dv(j(void 0)));d(this,"_editingEvent",this.disposeVar(new O));d(this,"_esViewerExtensions",this.dv(new Tb(this)));d(this,"_status",this.dv(j("Raw")));d(this,"_statusLog",this.dv(j("")));d(this,"_statusContainer",this.dv(new fp(this)));d(this,"_useCustomInteraction",this.dv(j(!0)));d(this,"_resetInteractionEvent",this.dv(Ie(this.containerChanged,this._useCustomInteraction.changed,this._forceRecreateEvent)));d(this,"_interactionResetting",this.dv(new Ee(this._resetInteractionEvent,()=>{if(!(!this.container||!this._useCustomInteraction.value))return new Wy(this,this.container)})));d(this,"_viewerChanged",this.dv(new O));d(this,"_cameraChanged",this.dv(new O));d(this,"_containerResetEvent",this.dv(Ie(this.containerChanged,this._forceRecreateEvent)));d(this,"_containerResetting",this.dv(new Ee(this._containerResetEvent,()=>{if(this.container)return new kb(this.container,this)})));d(this,"_sceneObjectsMap",new Map);d(this,"_id");d(this,"_typeName");d(this,"_updateFuncReact",this.dv(j(void 0)));d(this,"_toDestroyFuncReact",this.dv(j(void 0)));d(this,"_statusInfo",ms.defaults.statusInfo);d(this,"_navigationMode",this.dv(j("Map")));d(this,"_syncViewer",this.dv(j(void 0)));d(this,"_syncEventDon",this.dv(new Ee(this.syncViewerChanged,()=>{const t=this.syncViewer;if(t)return new Mb(this,t)})));d(this,"_timeSyncdon",this.dv(new Ee(this.timeSyncChanged,()=>{if(this.timeSync)return new Db(this)})));d(this,"_hoverEvent",this.dv(new O));d(this,"_pointerOverEvent",this.dv(new O));d(this,"_pointerMoveEvent",this.dv(new O));d(this,"_pointerDownEvent",this.dv(new O));d(this,"_pointerUpEvent",this.dv(new O));d(this,"_pointerOutEvent",this.dv(new O));d(this,"_clickEvent",this.dv(new O));d(this,"_dblclickEvent",this.dv(new O));d(this,"_keyDownEvent",this.dv(new O));d(this,"_keyUpEvent",this.dv(new O));d(this,"_wheelEvent",this.dv(new O));d(this,"_actived",this.dv(j(!1)));this._id=t.id??Jo();const n=By(t.container);if(n)this._container.value=dp(n),this._typeName=t.type,this._initName();else throw new Error("container is not defined");{const i=()=>{n&&(this.show??!0?n.style.display="block":n.style.display="none")};i(),this.d(this.showChanged.don(i))}{const i=this._sceneObjectsMap,s=()=>{for(let[a,u]of i.entries())if(!u&&a){const l=xo.context.createEngineObject(a,this);l&&i.set(a,l)}},o=()=>{for(let[a,u]of i.entries())u&&!u.isDestroyed()&&u.destroy(),i.set(a,void 0)};this.d(o),this.d(this.viewerChanged.don(a=>{o(),a&&s()}))}{const i=()=>{if(this.execOnceFuncStr)try{Function(`"use strict";return (${this.execOnceFuncStr})`)()(this)}catch(s){console.warn(`execOnceFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${s}`)}};i(),this.d(this.execOnceFuncStrChanged.don(i))}{const i=()=>{if(this.updateFuncStr)try{this.updateFunc=Function(`"use strict";return (${this.updateFuncStr})`)()}catch(o){console.warn(`updateFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${o}`)}};i(),this.d(this.updateFuncStrChanged.don(i));let s;this.d(()=>s&&s.destroy()),this.d(this.updateFuncChanged.don(()=>{s&&s.cancel(),this.updateFunc&&(s=s||Ou(),s.restart(void 0,o=>{this.updateFunc&&this.updateFunc(this,o)}))}))}{const i=()=>{try{this.toDestroyFunc=this.toDestroyFuncStr&&Function(`"use strict";return (${this.toDestroyFuncStr})`)()||void 0}catch(s){console.warn(`toDestroyFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${s}`),this.toDestroyFunc=void 0}};i(),this.d(this.toDestroyFuncStrChanged.don(i)),this.d(this.toDestroyEvent.don(()=>{this.toDestroyFunc&&this.toDestroyFunc(this)}))}this.ad(new Nb(this))}forceRecreate(){this._forceRecreateEvent.emit()}get container(){return this._container.value}set container(t){this._container.value=t}set containerOrId(t){if(typeof t=="string"){const n=document.getElementById(t);n&&n instanceof HTMLDivElement?this._container.value=dp(n):console.warn("containerOrId warn: !(container instanceof HTMLDivElement)")}else t instanceof HTMLDivElement?this._container.value=dp(t):console.warn("containerOrId warn: setting container failed!")}get containerChanged(){return this._container.changed}get containerSize(){return this._containerSize.value}set containerSize(t){this._containerSize.value=t}get containerSizeChanged(){return this._containerSize.changed}get editingEvent(){return this._editingEvent}get esViewerExtensions(){return this._esViewerExtensions}get status(){return this._status.value}get statusChanged(){return this._status.changed}setStatus(t){this._status.value=t}get statusLog(){return this._statusLog.value}get statusLogChanged(){return this._statusLog.changed}setStatusLog(t){this._statusLog.value=t}get useCustomInteraction(){return this._useCustomInteraction.value}set useCustomInteraction(t){this._useCustomInteraction.value=t}get viewerChanged(){return this._viewerChanged}get cameraChanged(){return this._cameraChanged}get containerResetEvent(){return this._containerResetEvent}get subContainer(){var t;return(t=this._containerResetting.obj)==null?void 0:t.subContainer}get subContainerChanged(){return this._containerResetting.objChanged}get overlayContainer(){var t;return(t=this._containerResetting.obj)==null?void 0:t.overlayContainer}get overlayContainerChanged(){return this._containerResetting.objChanged}get sceneObjectsMap(){return this._sceneObjectsMap}get sceneObjects(){return this._sceneObjectsMap.keys()}getEngineObject(t){return this.sceneObjectsMap.get(t)}add(...t){for(let n of t)if(!this.has(n)){rt.context.addSceneObject(n);const i=xo.context.createEngineObject(n,this);i&&this._sceneObjectsMap.set(n,i),n.viewerAttached.emit(this)}}delete(...t){for(let n of t)if(this.has(n)){const i=this._sceneObjectsMap.get(n);i&&i.destroy(),rt.context.deleteSceneObject(n),this._sceneObjectsMap.delete(n),n.viewerDetached.emit(this)}}disposableAdd(...t){return this.add(...t),()=>this.delete(...t)}disAdd(...t){return this.disposableAdd(...t)}has(t){return this._sceneObjectsMap.has(t)}clearAllSceneObjects(){for(let t of this.sceneObjects)this.delete(t)}get id(){return this._id}set id(t){console.warn("ESViewer id is readonly")}get typeName(){return this._typeName}_initName(){this.name=`${this.typeName}_${(""+this.id).slice(-4)}`}get defaultProps(){return ms.createDefaultProps()}get completeJson(){return this._getJson(!1)}_getJson(t=!0){const n={id:this.id,type:this.typeName};for(let i of Object.keys(this.defaultProps))if(t){let s,o=this.defaultProps[i];o instanceof ze?s=o.equals(this[i]):s=o===this[i],s||(n[i]=this[i])}else n[i]=this[i];return n}_setJson(t,n,i){if(!(t instanceof Object)||t.type&&t.type!==this.typeName){console.error(`value.type && value.type${t.type} !== this.typeName${this.typeName}`);return}t.id&&t.id!==this.id&&console.warn(`value.id === undefined || value.id${t.id} !== this.id(${this.id})`);const s=n||[];s.push("id","type");const o=Object.keys(this.defaultProps).filter(a=>!s.includes(a));for(let a of o)if(a in t)this[a]=t[a]===null?void 0:t[a];else if(!(i??!1)){let u=this.defaultProps[a];u instanceof ze&&(u=u.value),this[a]=u}}get json(){return this._getJson()}set json(t){this._setJson(t,["devTags"])}get updateFunc(){return this._updateFuncReact.value}set updateFunc(t){this._updateFuncReact.value=t}get updateFuncChanged(){return this._updateFuncReact.changed}get toDestroyFunc(){return this._toDestroyFuncReact.value}set toDestroyFunc(t){this._toDestroyFuncReact.value=t}get toDestroyFuncChanged(){return this._toDestroyFuncReact.changed}get navigationMode(){return this._navigationMode.value}get navigationModeChanged(){return this._navigationMode.changed}getNavigationMode(){return this._navigationMode.value}getEngineType(){return this._typeName}get syncViewer(){return this._syncViewer.value}set syncViewer(t){this._syncViewer.value=t}get syncViewerChanged(){return this._syncViewer.changed}syncOtherViewer(t){t&&t.syncViewer&&(t.syncViewer=void 0),t===this?this._syncViewer.value=void 0:this._syncViewer.value=t}setCurrentTime(t){try{this.currentTime=typeof t=="string"?Date.parse(t):t}catch(n){console.warn(`时间格式不正确! value: ${t} error: ${n}`)}}async getVersion(){return globalThis.g_XE3CopyRights??{}}get hoverEvent(){return this._hoverEvent}get pointerOverEvent(){return this._pointerOverEvent}get pointerMoveEvent(){return this._pointerMoveEvent}get pointerDownEvent(){return this._pointerDownEvent}get pointerUpEvent(){return this._pointerUpEvent}get pointerOutEvent(){return this._pointerOutEvent}get clickEvent(){return this._clickEvent}get dblclickEvent(){return this._dblclickEvent}get keyDownEvent(){return this._keyDownEvent}get keyUpEvent(){return this._keyUpEvent}get wheelEvent(){return this._wheelEvent}get actived(){return this._actived.value}set actived(t){this._actived.value=t}get activedChanged(){return this._actived.changed}getESProperties(){return{defaultMenu:"general",basic:[],general:[],dataSource:[],location:[],coordinate:[],style:[],more:[]}}getProperties(t){const n={...this.getESProperties()},i=[];return n.general.length>0&&i.push(new ut(n.general,"general")),Object.keys(n).forEach(s=>{s!=="defaultMenu"&&s!=="general"&&n[s].length>0&&i.push(new ut(n[s],s))}),i}};d(ms,"context",new Vb),d(ms,"register",ms.context.register.bind(ms.context)),d(ms,"defaults",{show:!0,debug:!1,statusInfo:{fps:0,position:[0,0,0],rotation:[0,0,0],length:0},terrainShader:{slope:{show:!1},aspect:{show:!1},elevationRamp:{show:!1,minHeight:-414,maxHeight:8777,color:[]},elevationContour:{show:!1,color:[1,0,0,1],spacing:150,width:2}},globeShow:!0,splitPosition:0,cameraMovableRegion:[0,0,0,0,0,0],depthTestAgainstTerrain:!0,terrainOpacity:1});let ri=ms;(r=>{r.createBaseProps=()=>({name:"未命名场景对象",extras:wt(void 0),devTags:re(void 0),debug:void 0,show:void 0,opacity:void 0,zIndex:void 0,useDefaultStatusDiv:!0,execOnceFuncStr:void 0,updateFuncStr:void 0,toDestroyFuncStr:void 0}),r.createCommonProps=()=>({globeShow:!0,ionAccessToken:"",lonLatFormat:"DECIMAL_DEGREE",fov:60,textAvoidance:!1,flyToBoundingSize:256,hoverTime:2,currentTime:Date.now(),simulationTime:Date.now(),timeSync:!1,rain:0,snow:0,cloud:0,fog:0,depthOfField:0,atmosphere:!0,editingPointSize:void 0,editingPointColor:re(void 0),editingAuxiliaryPointColor:re(void 0),editingLineWidth:void 0,editingLineColor:re(void 0),editingAxisSize:void 0,editingAuxiliaryPointSize:void 0,editingHeightOffset:0,editingLineShow:!0,editingEventListening:!0,terrainShader:r.defaults.terrainShader,splitPosition:j(void 0),rollerShutter:!1,cameraMovableRegion:re(void 0),depthTestAgainstTerrain:!0,terrainOpacity:1,sceneGlobeBaseColor:ht([1,1,1,1]),sceneBackgroundColor:ht([0,0,0,0])}),r.createDefaultProps=()=>({...(0,r.createBaseProps)(),...(0,r.createCommonProps)()})})(ri||(ri={})),Gi(ri.prototype,ri.createDefaultProps);function Hy(r,e){const t=r._lastCameraInfo;if(t){const n=e.viewerChanged.don(i=>{if(!i||!t)return;const{position:s,rotation:o}=t;e.flyIn(s,o,0),r._lastCameraInfo=void 0,n()})}}const jb=r=>{const e=ri.createCommonProps(),t={};try{Object.keys(e).forEach(n=>{t[n]=r[n]})}catch(n){console.warn(n)}return t},qy=(r,e)=>{const t=ri.createCommonProps();try{Object.keys(t).forEach(n=>{r[n]=e[n]})}catch(n){console.warn(n)}};class Bb extends V{constructor(t){super();d(this,"_viewersChanged",this.disposeVar(new O));d(this,"_viewers",new Set);d(this,"_viewersToChange",this.dv(new O));this._sceneObjectsManager=t,this.d(()=>{for(const n of this._viewers)this.destroyViewer(n);this._viewers.clear()}),this.viewers.forEach(n=>{const i=this._sceneObjectsManager.sceneObjects;n.add(...i)}),this.d(()=>{const n=this._sceneObjectsManager.sceneObjects;this.viewers.forEach(i=>{i.delete(...n)})}),this.d(this._sceneObjectsManager.sceneObjectsToChange.don((n,i)=>{this.viewers.forEach(s=>{i.forEach(o=>{qi(s.devTags,o.devTags)&&(s.has(o)?console.warn(`${s.typeName}中已存${o.typeName},检查逻辑是否有问题!`):s.add(o))}),n.forEach(o=>{qi(s.devTags,o.devTags)&&(s.has(o)?s.delete(o):console.warn(`${s.typeName}中不存在${o.typeName},检查逻辑是否有问题!`))})}),i.length>0&&i.forEach(s=>{s.d(s.devTagsChanged.don(()=>{this.viewers.forEach(o=>{o.has(s)&&o.delete(s),console.log("sceneObjectsToChange",o.devTags,s.devTags,qi(o.devTags,s.devTags))}),this.viewers.forEach(o=>{qi(o.devTags,s.devTags)&&(o.has(s)?console.warn(`${o.typeName}中已存${s.typeName},检查逻辑是否有问题!`):o.add(s))})}))})})),this.d(this.viewersChanged.don((n,i)=>{const s=this._sceneObjectsManager.sceneObjects;i.forEach(o=>{for(let a of s)qi(o.devTags,a.devTags)&&(o.has(a)?console.warn(`${o.typeName}中已存${a.typeName},检查逻辑是否有问题!`):o.add(a))}),n.forEach(o=>{for(let a of s)qi(o.devTags,a.devTags)&&(o.has(a)?o.delete(a):console.warn(`${o.typeName}中不存在${a.typeName},检查逻辑是否有问题!`))}),i.length>0&&i.forEach(o=>{o.d(o.devTagsChanged.don(()=>{o.clearAllSceneObjects();const a=this._sceneObjectsManager.sceneObjects;for(let u of a)console.log("viewersChanged",o.devTags,u.devTags,qi(o.devTags,u.devTags)),qi(o.devTags,u.devTags)&&(o.has(u)?console.warn(`${o.typeName}中已存${u.typeName},检查逻辑是否有问题!`):o.add(u))}))})}))}get viewersChanged(){return this._viewersChanged}get viewers(){return this._viewers}getViewers(){return[...this._viewers]}get viewersToChange(){return this._viewersToChange}createViewer(t){const n=ri.context.createViewer(t);return this._viewers.add(n),this._viewersChanged.emit([],[n]),n}destroyViewer(t){return t.isDestroyed()?!0:(this._viewers.delete(t),this._viewersChanged.emit([t],[]),t.destroy(),t.isDestroyed())}}class Zc extends V{constructor(...t){super();d(this,"_drgm",this.dv(new Ag));d(this,"_sobjm",this.dv(new Ib));d(this,"_vrm",this.dv(new Bb(this._sobjm)));d(this,"_sceneObjectEditingManager",this.disposeVar(new Pb));d(this,"_activeViewer",this.dv(j(void 0)));d(this,"_syncOtherViewersToActived",this.dv(j(!1)));d(this,"_cmrvm",this.createSceneObjectFromClass(kc));d(this,"_cmrvmdon",this.d(()=>this._cmrvm&&this.destroySceneObject(this._cmrvm)));d(this,"_asset",{type:"ESObjectsManager",version:"0.1.0",createdTime:"",modifiedTime:"",name:"未命名项目"});d(this,"_sceneTree",this.dv(new pl("default",this.dragstartDataMananger,24,this)));d(this,"_propUiTreeManager",this.dv(new ka(24)));d(this,"_sceneTreeMap",new Map);d(this,"_viewerCreatedEvent",this.dv(new O));d(this,"_lastCameraInfo");d(this,"_lastActiveViewerJson");d(this,"_syncEventDonFunc",this.d(Ui([this.activeViewerChanged,this.syncOtherViewersToActivedChanged],()=>{const t=this.syncOtherViewersToActived;this.viewers.forEach(n=>{t?n.syncOtherViewer(this.activeViewer):n.syncOtherViewer(void 0)})})));d(this,"_player",this.createSceneObjectFromClass(za));d(this,"_playerdon",this.d(()=>this._player&&this.destroySceneObject(this._player)));d(this,"_esPlyarAndPathTime",this.dv(new _b(this)));d(this,"_pathAnimationManager",this.dv(new Eb(this)))}static get envs(){return rt.context.environmentVariables}getSceneObjectById(t){return rt.getSceneObjectById(t)}getSceneObject(t){return rt.getSceneObject(t)}get $refs(){return rt.$refs}get dragstartDataMananger(){return this._drgm}get sceneObjectsManager(){return this._sobjm}get viewers(){return this._vrm.viewers}getViewers(){return this._vrm.getViewers()}get sceneObjectEditingManager(){return this._sceneObjectEditingManager}get activeViewer(){return this._activeViewer.value}set activeViewer(t){this._activeViewer.value=t,this.viewers.values().forEach(n=>n.actived=n===t)}get activeViewerChanged(){return this._activeViewer.changed}get syncOtherViewersToActived(){return this._syncOtherViewersToActived.value}set syncOtherViewersToActived(t){this._syncOtherViewersToActived.value=t}get syncOtherViewersToActivedChanged(){return this._syncOtherViewersToActived.changed}get cameraViewsManager(){return this._cmrvm}get completeJson(){var h;const t=this._asset.createdTime||new Date().toISOString(),n=new Date().toISOString(),i=this._asset.name||"未命名项目",o={type:"ESObjectsManager",version:this._asset.version||"0.1.0",createdTime:t,modifiedTime:n,name:i},a=this.sceneTree.completeJson,u=this._cmrvm.views,l=[...this._vrm.viewers].map(f=>f.completeJson),c=(h=this.activeViewer)==null?void 0:h.getCurrentCameraInfo();return{asset:o,viewers:l,sceneTree:a,viewCollection:u,lastView:c}}get json(){var h;const t=this._asset.createdTime||new Date().toISOString(),n=new Date().toISOString(),i=this._asset.name||"未命名项目",o={type:"ESObjectsManager",version:this._asset.version||"0.1.0",createdTime:t,modifiedTime:n,name:i},a=this.sceneTree.json,u=this._cmrvm.views,l=[...this._vrm.viewers].map(f=>f.json),c=(h=this.activeViewer)==null?void 0:h.getCurrentCameraInfo();return{asset:o,viewers:l,sceneTree:a,viewCollection:u,lastView:c}}set json(t){try{if(!t.asset)return;if(!t.asset.type||t.asset.type!=="ESObjectsManager"){console.warn("json装配失败! asset.type 不存在或者不是'ESObjectsManager'");return}if(this._asset.createdTime=t.asset&&t.asset.createdTime||new Date().toISOString(),this._asset.modifiedTime=t.asset&&t.asset.modifiedTime||"",this._asset.name=t.asset&&t.asset.name||"未命名项目",this._asset.version=t.asset&&t.asset.version||"0.1.0",t.sceneTree&&(this.sceneTree.json=t.sceneTree),t.viewCollection&&(this._cmrvm.views=t.viewCollection),!t.viewers||!Array.isArray(t.viewers)){console.warn("viewers is not an array or does not exist !");return}if(this._vrm.viewers.size===0||t.viewers.length===0){console.warn("viewers is empty !");return}this._vrm.viewers.forEach(n=>{const i=t.viewers.find(s=>s.id===n.id);i&&(n.json=i)})}catch(n){console.error(`ESObjectsManager解析json数据时发生错误! error: ${n}`)}}get sceneTree(){return this._sceneTree}get jsonLoadingEvent(){return this._sceneTree.jsonLoadingEvent}get propUiTreeManager(){return this._propUiTreeManager}propTreeCallback(t){return Cb(this,t)}getSceneTrees(){return[...this._sceneTreeMap.values()]}getSceneTree(t="default"){if(t==="default")return this._sceneTree;if(!this._sceneTreeMap.has(t)){console.warn(`id为${t}的SceneTree不存在!`);return}return this._sceneTreeMap.get(t)}createSceneTree(t,n=24){if(this._sceneTreeMap.has(t)||t==="default")console.warn(`id为${t}的SceneTree已存在!`);else{const i=this.dv(new pl(t,this.dragstartDataMananger,n,this));this._sceneTreeMap.set(t,i)}return this.getSceneTree(t)}get viewerCreatedEvent(){return this._viewerCreatedEvent}createViewer(t){const n=this._vrm.createViewer(t);this.activeViewer||(this.activeViewer=n);const i=this.d(n.viewerChanged.don(s=>{s&&(this._viewerCreatedEvent.emit(n),i())}));return n}destroyViewer(t){return this._activeViewer.value===t&&(this._activeViewer.value=void 0),this._vrm.destroyViewer(t)}switchViewer(t,n=!0,i=!0,s=!0){var l;this.activeViewer&&this.activeViewer.getNavigationMode()!=="Map"&&this.activeViewer.changeToMap(),!this._lastCameraInfo&&n&&(this._lastCameraInfo=(l=this.activeViewer)==null?void 0:l.getCurrentCameraInfo()),!this._lastActiveViewerJson&&i&&(this._lastActiveViewerJson=this.activeViewer?jb(this.activeViewer):void 0),s&&this.activeViewer&&this.destroyViewer(this.activeViewer);const o=t.id,a=o?[...this.getViewers()].find(c=>c.id===o):[...this.getViewers()].find(c=>c.typeName===t.type&&!c.container);if(a)if(o&&a.typeName!==t.type)console.warn(`id为${o}的viewer的typeName和option.type${t.type}不相同!,虽然id一致但是typeName不同,所以会销毁并创建新的viewer`),this.destroyViewer(a);else return console.log("ESViewer exists, will be used"),n&&Hy(this,a),i&&this._lastActiveViewerJson&&(qy(a,this._lastActiveViewerJson),this._lastActiveViewerJson=void 0),a.container===By(t.container)?(a.containerOrId=t.container,a.forceRecreate()):a.containerOrId=t.container,this.activeViewer=a,a;console.log("No ESViewer exists, will be created");const u=this.createViewer(t);return console.log(t),console.log(this),n&&Hy(this,u),i&&this._lastActiveViewerJson&&(qy(u,this._lastActiveViewerJson),this._lastActiveViewerJson=void 0),this.activeViewer=u,u}switchToCesiumViewer(...t){if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)){const{container:n,viewSync:i,attributeSync:s,destroy:o,id:a}=t[0];return this.switchViewer({type:"ESCesiumViewer",container:n,id:a},i??!0,s??!0,o??!0)}else if(typeof t[0]=="string"||t[0]instanceof HTMLDivElement){const n={container:t[0],viewSync:t[1]??!0,attributeSync:t[2]??!0,destroy:t[3]??!0,id:t[4]},{container:i,viewSync:s,attributeSync:o,destroy:a,id:u}=n;return this.switchViewer({type:"ESCesiumViewer",container:i,id:u},s,o,a)}}switchToUEViewer(...t){let n,i={viewSync:!0,attributeSync:!0,destroy:!0};if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("uri")){const{container:u,uri:l,app:c,token:h,viewSync:f,attributeSync:p,destroy:v,id:C}=t[0];n={type:"ESUeViewer",container:u,id:C,options:{uri:l,app:c,token:h}},i={viewSync:f??!0,attributeSync:p??!0,destroy:v??!0}}else if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("ws")){const{container:u,ws:l,esmsg:c,viewSync:h,attributeSync:f,id:p,destroy:v}=t[0];n={type:"ESUeViewer",container:u,id:p,options:{ws:l,esmsg:c}},i={viewSync:h??!0,attributeSync:f??!0,destroy:v??!0}}else if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("project")){const{container:u,project:l,baseUrl:c,viewSync:h,attributeSync:f,id:p,destroy:v}=t[0];n={type:"ESUeViewer",container:u,id:p,options:{project:l,baseUrl:c}},i={viewSync:h??!0,attributeSync:f??!0,destroy:v??!0}}else(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(typeof t[1]=="string"&&t[1].startsWith("ws")?(n={type:"ESUeViewer",container:t[0],id:t[6],options:{ws:t[1],esmsg:t[2]??void 0}},i={viewSync:t[3]??!0,attributeSync:t[4]??!0,destroy:t[5]??!0}):typeof t[1]=="string"&&t[1].startsWith("http")?(n={type:"ESUeViewer",container:t[0],id:t[7],options:{uri:t[1],app:t[2],token:t[3]??void 0}},i={viewSync:t[4]??!0,attributeSync:t[5]??!0,destroy:t[6]??!0}):(n={type:"ESUeViewer",container:t[0],id:t[6],options:{project:t[1],baseUrl:t[2]??void 0}},i={viewSync:t[3]??!0,attributeSync:t[4]??!0,destroy:t[5]??!0}));if(!n)throw new Error("参数错误");const{viewSync:s,attributeSync:o,destroy:a}=i;return this.switchViewer(n,s,o,a)}createCesiumViewer(...t){let n;if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)?n={...t[0],type:"ESCesiumViewer"}:(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(n={container:t[0],options:t[1]??void 0,id:t[2]??void 0,type:"ESCesiumViewer"}),!n)throw new Error("参数错误");return this.createViewer(n)}createOpenLayersViewer(...t){let n;if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)?n={...t[0],type:"ESOlViewer"}:(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(n={container:t[0],options:t[1]??void 0,id:t[2]??void 0,type:"ESOlViewer"}),!n)throw new Error("参数错误");return this.createViewer(n)}createUeViewer(...t){let n;if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)?n={...t[0],type:"ESUeViewer"}:(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(typeof t[1]=="string"&&t[1].startsWith("ws")?n={type:"ESUeViewer",container:t[0],id:t[3]??void 0,options:{ws:t[1],esmsg:t[2]??void 0}}:typeof t[1]=="string"&&t[1].startsWith("http")?n={type:"ESUeViewer",container:t[0],id:t[4]??void 0,options:{uri:t[1],app:t[2],token:t[3]??void 0}}:n={type:"ESUeViewer",container:t[0],id:t[3]??void 0,options:{project:t[1],baseUrl:t[2]??void 0}}),!n)throw new Error("参数错误");return this.createViewer(n)}createSceneObject(t,n){return this._sobjm.createSceneObject(t,n)}createSceneObjectFromUrl(t,n){return this._sobjm.createSceneObjectFromUrl(t,n)}createSceneObjectFromClass(t,n){return this._sobjm.createSceneObjectFromClass(t,n)}createSceneObjectFromJson(t){return this._sobjm.createSceneObjectFromJson(t)}destroySceneObject(t){const n=this._sobjm.deleteSceneObject(t);return t.destroy(),n}destroyAllSceneObjects(){const t=[...this._sobjm.sceneObjects];for(let n of t)n!=this._player&&n!=this._cmrvm&&this.destroySceneObject(n)}get player(){return this._player}get esPlyarAndPathTime(){return this._esPlyarAndPathTime}get pathAnimationManager(){return this._pathAnimationManager}}d(Zc,"getSceneObjById",rt.context.getSceneObjectById.bind(rt.context)),d(Zc,"getEnv",rt.context.getEnv.bind(rt.context)),d(Zc,"setEnv",rt.context.setEnv.bind(rt.context)),g.BasePropTreeItem=Ud,g.Boolean2Property=J0,g.Boolean2sProperty=Z0,g.Boolean3Property=$0,g.Boolean3sProperty=Q0,g.Boolean4Property=K0,g.Boolean4sProperty=tw,g.BooleanProperty=X,g.BooleansProperty=z0,g.BorderedPosFloatDiv=eg,g.BoxPicker=Ch,g.CancelError=Fr,g.CancelsManager=Ph,g.CanvasImagePoi=c0,g.CanvasPoi=Nh,g.CanvasPointPoi=h0,g.CanvasPrimitive=zp,g.CanvasPrimitivesContext=d0,g.ColorProperty=Mt,g.ColorRgbProperty=rw,g.ColorStops=fb,g.ComplexImage=Cl,g.CursorFloatDiv=v0,g.CursorInfo=y0,g.DashPatternProperty=iw,g.DateProperty=io,g.DatesProperty=Lg,g.Debouncing=z_,g.DebouncingDeprecated=_h,g.DebouncingWithStartValues=U_,g.Destroyable=V,g.DivBoxPicker=V_,g.DivPoi=Zp,g.DivPointerClick=u0,g.DomElementEvent=ue,g.DoublyLinkedList=Sp,g.DragStartDataManager=Ag,g.ES3DTileset=Tr,g.ESAlarm=$d,g.ESApertureEffect=Kd,g.ESAreaMeasurement=Zd,g.ESBlastParticleSystem=Qd,g.ESBoxClipping=tf,g.ESCameraView=Fc,g.ESCameraViewCollection=kc,g.ESCameraVisibleRange=ef,g.ESCar=Vc,g.ESCityBasePoint=Qf,g.ESClassification=jc,g.ESClippingPlane=nf,g.ESCustomDiv=Bc,g.ESCzml=tp,g.ESDataMesh=rf,g.ESDatasmithRuntimeModel=Lf,g.ESDirectionMeasurement=Pf,g.ESDistanceMeasurement=sf,g.ESDynamicWater=Ff,g.ESEntityCluster=$f,g.ESExcavate=gl,g.ESFeatureLayer=hp,g.ESFireParticleSystem=of,g.ESForestTileset=af,g.ESGaussianSplatting=ip,g.ESGeoBezierSpline=Kf,g.ESGeoDiv=uf,g.ESGeoDivTextPoi=Zf,g.ESGeoExtrudedPolygon=Io,g.ESGeoJson=vl,g.ESGeoLineString=Ni,g.ESGeoPoints=El,g.ESGeoPolygon=Xt,g.ESGeoRectangle=lf,g.ESGeoVector=It,g.ESGeoWater=Af,g.ESGltfModel=zs,g.ESHeatMap=Xc,g.ESHeightLimitAnalysis=Jf,g.ESHeightMeasurement=If,g.ESHole=Uf,g.ESHuman=Po,g.ESHumanPoi=zf,g.ESImageLabel=zc,g.ESImageryLayer=hf,g.ESJEditingMode=et,g.ESJLonLatFormat=Fg,g.ESJPickedResult=dw,g.ESLabel=ar,g.ESLevelRuntimeModel=kf,g.ESLocalCircle=xf,g.ESLocalPolygon=yl,g.ESLocalPolygonZ=Tf,g.ESLocalRectangle=Of,g.ESLocalSkyBox=df,g.ESLocalVector=Va,g.ESLocalVector2D=us,g.ESLocationMeasurement=ff,g.ESMCPClient=mb,g.ESMsTileset=qf,g.ESNavigator=ep,g.ESObjectWithLocation=st,g.ESObjectsManager=Zc,g.ESParticleSystemPrimitive=Uc,g.ESPath=Ua,g.ESPathImpl=Us,g.ESPipeFence=Hc,g.ESPipeline=Vf,g.ESPipeserTileset=Nf,g.ESPit=Ba,g.ESPlayer=za,g.ESPoi2D=ml,g.ESPoi3D=pf,g.ESPoiTileset=Xf,g.ESPolygonFence=qc,g.ESPolygonFlattenedPlane=gf,g.ESPolygonWithHole=Mf,g.ESRectangle=Df,g.ESRtsFeatureEditing=Hf,g.ESRtsTileset=Wf,g.ESScale=Yf,g.ESSceneObject=rt,g.ESSceneObjectWithId=zg,g.ESSeparateFoliage=mf,g.ESSkylineAnalysis=op,g.ESStaticMesh=sp,g.ESSubmergingAnalysis=vf,g.ESSunshineAnalysis=yf,g.ESSurfaceAreaMeasurement=Rf,g.ESTerrainLayer=_f,g.ESTestObject=Jd,g.ESTextLabel=ja,g.ESUEWidget=wf,g.ESUnrealActor=Ef,g.ESVideoFusion=Cf,g.ESViewShed=Sf,g.ESViewer=ri,g.ESViewerStatusBar=np,g.ESViewerStatusBarScale=rp,g.ESVisibilityAnalysis=jf,g.ESVisualObject=Ht,g.ESVolumeMeasurement=Bf,g.ESWidget=bf,g.EngineObject=xo,g.EnumProperty=Pt,g.EnumStringsProperty=sw,g.EvalStringProperty=Es,g.Event=O,g.EventListenerHandler=oh,g.Fetching=R_,g.FloatDiv=Rh,g.FlvJsLoading=Jc,g.FlvProcessing=Vy,g.FunctionProperty=lt,g.Gif=Sg,g.GifPlayer=Cg,g.GifProcessing=bg,g.GroupPropTreeItem=Wd,g.GroupProperty=ut,g.HasOwner=P_,g.HlsJsLoading=Yc,g.HlsProcessing=ky,g.IFrameBorderedPosFloatDiv=g0,g.ImageProcessing=dg,g.IntervalDeprecated=Eh,g.JsonProperty=it,g.LeafPropTreeItem=Gd,g.ListenerPipe=sh,g.LocalFileServer=cg,g.LocalRootDir=lg,g.LongStringProperty=Uh,g.MaximumScreenSpaceErrorProperty=j0,g.MinmaxProperty=ow,g.NearFarScalerProperty=aw,g.NextAnimateFrameEvent=Fl,g.NextAnimateFrameWeakEvent=Pp,g.NextMicroTaskEvent=hh,g.NextMicroTaskWeakEvent=m_,g.NonreactiveJsonStringProperty=Dg,g.Number2Property=Ae,g.Number2sProperty=Og,g.Number3Property=cn,g.Number3sProperty=zh,g.Number4Property=Ar,g.Number4WithUndefinedProperty=X0,g.Number4sProperty=Y0,g.NumberProperty=M,g.NumberRangeProperty=uw,g.NumberSliderProperty=Ue,g.NumbersProperty=B0,g.ObjPool=Tl,g.ObjResetting=E0,g.ObjResettingWithEvent=Ee,g.ObservableArray=xu,g.ObservableSet=Wl,g.ParamsProperty=Ng,g.PickColorMananger=$p,g.PickedInfo=hw,g.Player=kr,g.PlayerProperty=Hl,g.PointerClick=Oh,g.PointerClickDeprecated=Fp,g.PointerHover=Bp,g.PointerHoverDeprecated=l0,g.PosFloatDiv=Ah,g.PositionProperty=ia,g.PositionsProperty=Mg,g.PositionsSetPropety=cw,g.Processing=Fe,g.PropTree=ey,g.PropUiTreeManager=ka,g.Property=ws,g.ReactVarProperty=Tt,g.ReactiveVariable=ze,g.RotationProperty=Gh,g.SceneObjectFromId=qh,g.SceneTree=pl,g.SceneTreeContextMenu=uy,g.SceneTreeItem=yn,g.SceneTreeItemDragDrop=ay,g.SmartListenerHandler=Eu,g.SmartListenerPipe=o_,g.SmoothMoveController=wS,g.String2Property=U0,g.String2sProperty=Tg,g.String3Property=G0,g.String3sProperty=H0,g.String4Property=W0,g.String4sProperty=q0,g.StringNumberProperty=ew,g.StringNumbersProperty=nw,g.StringProperty=pt,g.StringsProperty=xg,g.Throttling=o0,g.ThrottlingWithStartValues=a0,g.TimingDeprecated=Rp,g.ToolTipDiv=m0,g.Transition=Du,g.TransitionDeprecated=A_,g.Tree=ra,g.TreeItem=na,g.TreeItemDragDrop=kg,g.UiTree=sg,g.UiTreeObject=ig,g.UriProperty=Fu,g.VideoProcessing=gg,g.ViewPlayerProperty=Rg,g.ViewerCustomInteraction=Wy,g.Watcher=Au,g.WatcherTools=Ug,g.WithUndefinedProperty=Bh,g.XrPlayer=Ul,g.Xyzw2Ns=Vl,g.addTreesCallFunc=fy,g.animateFrame=Rl,g.ary2Ns=M_,g.asyncFuncToCancelablePromise=q_,g.bind=nt,g.bindCustomEditing=Bg,g.bindu=p_,g.booleanPointInPolygon=Nw,g.canMoveToTreeItem=Lu,g.canMoveToTreeItems=ng,g.cancelFuncToCancelablePromise=H_,g.cancelPromise=Sh,g.cancelableFetch=xh,g.cancelableFetchDeprecated=Mp,g.cancelableFetchWithProgress=Y_,g.cartesianDistance=Qv,g.clamp=jl,g.clamp0_360=sa,g.clampN180_180=jg,g.complexImageTypes=pg,g.createAnimateFrame=Ou,g.createAnimateFrameWithStartValues=ea,g.createBottomTriangleElement=tg,g.createCancelablePromise=ta,g.createCloseDiv=Qp,g.createEventsCallFunc=Ui,g.createFetching=J_,g.createFetchingWithStartValues=$_,g.createGuid=Jo,g.createInterval=e0,g.createIntervalWithStartValues=n0,g.createNextAnimateFrame=K_,g.createNextAnimateFrameEvent=Ie,g.createNextAnimateFrameEventCallFunc=y_,g.createNextAnimateFrameWeakEvent=__,g.createNextAnimateFrameWithStartValues=Z_,g.createNextMicroTask=Q_,g.createNextMicroTaskEvent=g_,g.createNextMicroTaskWeakEvent=v_,g.createNextMicroTaskWithStartValues=t0,g.createNumbers=kl,g.createProcessingFromAsyncFunc=Yn,g.createProcessingFromAsyncFuncWithStartValues=X_,g.createProcessingFromPromiseCreateFunc=zl,g.createProcessingFromPromiseCreateFuncWithStartValues=Ih,g.createPropTreeFromSceneObject=ny,g.createSleeping=r0,g.createSleepingWithStartValues=i0,g.createStartFuncFromAsyncFunc=Tu,g.createTimeout=kp,g.createTimeoutWithStartValues=Vp,g.cutDownTreesCallFunc=my,g.czmPixelFormats=fg,g.debounce=Ml,g.defaultGetLocalFilePath=C0,g.defaultInitSceneObjectOnCreatingFunc=pw,g.defaultLight122FromEnvironmentMapManager=Yd,g.defaultLocalFileServer=hg,g.defaultStartUpdateFunc=Al,g.defaultUpdateSceneObjectOnPickingFunc=fw,g.defineReactiveProp=wh,g.destroyObject=_p,g.downloadLink=S_,g.drawPoint=no,g.drawRoundRectPath=Up,g.drawText=Gp,g.drawTextBlock=Dh,g.engineObjectCreatedUpdate=iy,g.equalsN3=qd,g.every=fh,g.extendClassProps=Gi,g.fetchArrayBuffer=x_,g.fetchImage=Op,g.forEach=pi,g.forEachWithBreak=dh,g.geoAlong=Lw,g.geoArea=td,g.geoBuffer=Yv,g.geoCenterOfMass=Zw,g.geoDestination=om,g.geoDifference=Jv,g.geoDistance=Ql,g.geoHeading=Bu,g.geoIntersect=qv,g.geoLineIntersect=oE,g.geoNearestPointOnLine=cE,g.geoPointToLineDistance=pE,g.geoPolygonFromCircle=$v,g.geoPolygonOverlap=Bd,g.geoPolylineToBezierSpline=ty,g.geoRhumbDestination=vE,g.geoRhumbDistance=ym,g.geoRhumbHeading=_E,g.geoUnion=Xv,g.getCameraTools=vb,g.getColorHexStr=Ru,g.getCompleteReactParams=Dl,g.getDefaultValue=yw,g.getDistancesFromPositions=fl,g.getDomEventCurrentTargetPos=ln,g.getDrawRect=eo,g.getElementBounds=Cw,g.getErrorResult=Ze,g.getEventFromPromise=B_,g.getEventPosInCurrentTarget=Ko,g.getExtProp=Xn,g.getFileArrayBuffer=ug,g.getFileJson=ag,g.getFileText=kh,g.getFloatDivPool=Fh,g.getGeoBoundingSphereFromPositions=Zv,g.getIterator=Su,g.getMidpoint=uE,g.getMinMaxCorner=Kv,g.getMinMaxPosition=I_,g.getPromiseCancel=Zo,g.getPromiseFromEvent=j_,g.getPromiseFromProcessing=Th,g.getReactFuncs=zi,g.getSceneObjectTools=yb,g.getSceneObjectTreeItem=gw,g.getSubEntriesFromDir=og,g.getSuccessResult=Wn,g.getTypeFromImageUri=jy,g.getValueFromProps=Ip,g.getXyzFromPostion=zd,g.growthSimulationCallFunc=vy,g.hasSameTags=Vg,g.hasSameViewerTags=qi,g.imageToCanvas=Wp,g.inOrderRunning=_w,g.interval=lh,g.isJSON=Wh,g.isPromiseCancelable=Qo,g.isXML=vw,g.lbhToWebMerc=Tw,g.lbhToXyz=Vr,g.length=ph,g.lerpAngle=Xl,g.lerpRotation=Hh,g.loadGifFrames=wg,g.loadJs=vh,g.map=ry,g.max=Wi,g.min=ys,g.moveToTreeItem=Gl,g.moveToTreeItems=rg,g.nextAnimateFrame=$o,g.nextMicroTask=Cu,g.objsIterator=Qs,g.oneTimeWarning=Xo,g.optionsStr=OS,g.pairToPromise=bh,g.pluckProperty=gh,g.react=j,g.reactArray=ht,g.reactArrayCollection=l_,g.reactArrayCollectionWithUndefined=ah,g.reactArrayWithUndefined=re,g.reactDeepArray=Ol,g.reactDeepArrayWithUndefined=vs,g.reactJson=wt,g.reactJsonCollection=c_,g.reactJsonCollectionWithUndefined=h_,g.reactJsonWithUndefined=Qt,g.reactPlainObject=a_,g.reactPlainObjectWithUndefined=u_,g.reactPosition2Ds=Hd,g.reactPosition2DsSet=d_,g.reactPositions=Nl,g.reactPositionsSet=bp,g.reduce=Iu,g.registerEventCtor=wp,g.registerEventUpdate=lS,g.removeAllTreesCallFunc=py,g.requestAnimationFrameTimeStampTest=b_,g.rpToap=mw,g.saveOnBrowser=C_,g.setCanvasUniformColor=Hp,g.setExtProp=fi,g.setPromiseCancel=_s,g.setSceneObjectTreeItem=ql,g.setValueFromProps=E_,g.sleep=Nu,g.sleepDeprecated=L_,g.step=to,g.stepProcessing=s0,g.throttle=mh,g.timeout=ch,g.toGeoJson=ww,g.track=B,g.uint32ToUint8s=Yp,g.uint8ToHexStr=Mu,g.uint8sToUint32=Jp,g.updateTreeParamsCallFunc=gy,g.webMercToLbh=Ow,g.xyz2N2=T_,g.xyz2N3=O_,g.xyzToLbh=Xh,g.xyzw2N4=N_,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});
435
+ `,Lb='<svg t="1747028305766" class="icon" viewBox="0 0 1032 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3881" width="40" height="40"><path d="M0.1536 547.700736c-0.205824-0.187392-0.205824-0.49152 0.008192-0.68608l80.672768-73.590784a0.63488 0.63488 0 0 1 0.7936-0.029696l263.043072 203.0336c0.667648 0.515072 1.738752 0.498688 2.393088-0.038912l609.191936-500.133888a0.605184 0.605184 0 0 1 0.768 0.022528l74.84928 67.229696a0.454656 0.454656 0 0 1-0.002048 0.685056l-685.234176 618.19904a1.14688 1.14688 0 0 1-1.518592-0.012288L0.1536 547.700736z" fill="#ffffff" p-id="3882"></path></svg>',Fb='<svg t="1747028398107" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1146" width="40" height="40"><path d="M415.744006 1.033277A0.992256 0.992256 0 0 1 416.747526 0.000061h189.5045c0.569344 0 1.017856 0.45056 1.001472 1.033216l-21.227518 754.803667a1.062912 1.062912 0 0 1-1.05984 1.032192h-146.933752c-0.569344 0-1.04448-0.45056-1.059839-1.032192L415.744006 1.033277zM511.510528 1024c-52.595709 0-95.231994-39.866366-95.231994-89.043963 0-49.176573 42.636285-89.042939 95.231994-89.042938 52.594685 0 95.231994 39.866366 95.231994 89.042938 0 49.177597-42.637309 89.043963-95.231994 89.043963z" fill="#ffffff" p-id="1147"></path></svg>',Ho=class Ho extends V{constructor(e){super();const t=()=>{const n=this.dv(new Bc);this.d(B([n,"show"],[e,"useDefaultStatusDiv"]));{const i=()=>{n.show=(e.useDefaultStatusDiv??!0)&&e.status!=="Created"};i(),this.d(e.useDefaultStatusDivChanged.don(i)),this.d(e.statusChanged.don(i)),n.cssText="width:100%;height:100%;position:absolute;left:0px;top:0px;"}e.add(n),this.d(()=>e.delete(n)),n.instanceClass=class extends V{constructor(o,a,u){super();d(this,"_div",document.createElement("div"));if(this._subContainer=o,!u)return;this._subContainer.appendChild(this._div),this.d(()=>this._subContainer.removeChild(this._div));{const v=()=>{a.show?this._div.style.opacity="1":this._div.style.opacity="0"};v(),this.d(a.showChanged.don(v))}let l,c,h,f,p;this._div.style.pointerEvents="none",this._div.style.position="absolute",this._div.style.width="100%",this._div.style.height="100%",this._div.style.backgroundColor="rgba(0, 0, 0, 0.4)",this._div.style.zIndex="100",this._div.style.transition="opacity 2s",l=document.createElement("div"),this._div.appendChild(l),l.style.width="auto",l.style.position="absolute",l.style.left="50%",l.style.top="50%",l.style.transform="translate(-50%,-50%)",l.style.background="rgba(120, 120, 0, 0.7)",l.style.color="white",l.style.fontSize="10px",l.style.background="none",l.style.display="flex",l.style.justifyContent="center",l.style.alignItems="center",c=document.createElement("div"),l.appendChild(c),c.style.pointerEvents="none",c.style.display="block",c.style.width="40px",c.innerHTML=Ho.defaultsSvg.loadingSvg,c.style.filter="drop-shadow(0px 0px 1px black)",h=document.createElement("div"),l.appendChild(h),h.style.pointerEvents="none",h.style.marginLeft="10px",h.style.display="flex",h.style.flexFlow="column",h.style.maxWidth="300px",f=document.createElement("div"),h.appendChild(f),f.style.fontSize="14px",f.style.fontWeight="800",f.style.marginBottom="5px",f.style.textShadow="0 0 2px black",p=document.createElement("div"),h.appendChild(p),p.style.fontWeight="400",p.style.textShadow="0 0 2px black";{const v=()=>{let S="Raw";u.status==="Raw"?S="初始状态":u.status==="Creating"?S="正在创建":u.status==="Created"?S="创建完成":u.status==="Error"?S="创建失败":u.status==="Reconnecting"&&(S="重新连接"),f.innerText=`${S}(${u.status})`,p.innerText=`${u.statusLog}`,(u.status==="Creating"||u.status==="Reconnecting")&&(c.innerHTML=Ho.defaultsSvg.loadingSvg),u.status==="Created"&&(c.innerHTML=Ho.defaultsSvg.successSvg),u.status==="Error"&&(c.innerHTML=Ho.defaultsSvg.warnSvg)};v();const C=this.dv(Ie(u.statusLogChanged,u.statusChanged));this.d(C.don(v))}}update(){const o=255*Math.random()|0,a=255*Math.random()|0,u=255*Math.random()|0;this._div.style.background=`rgba(${o}, ${a}, ${u}, 0.8)`}}};this.d(e.containerChanged.don(()=>{t()}))}};d(Ho,"defaultsSvg",{loadingSvg:Rb,successSvg:Lb,warnSvg:Fb});let fp=Ho;class Ab extends V{constructor(e,t,n){super(),this._subContainer=e,this._overlayContainer=t,this._viewer=n;const i=this._subContainer,s=this._overlayContainer,o=this._viewer,a=()=>{const c=o.zIndex??"";i.style.zIndex=c,s.style.zIndex=c};a(),this.d(o.zIndexChanged.don(a));const u=()=>{i.style.display=o.show??!0?"block":"none"};u(),this.d(o.showChanged.don(u));const l=()=>{i.style.opacity=`${o.opacity??1}`};l(),this.d(o.opacityChanged.don(l))}}function Kc(r){let e=Xn(r,"_relativeContainer");return e||(e=document.createElement("div"),e.style.position="relative",e.style.width="100%",e.style.height="100%",e.style.padding="0",e.style.margin="0",r.appendChild(e),fi(r,"_relativeContainer",e)),e}class kb extends V{constructor(t,n){super();d(this,"_subContainer",document.createElement("div"));d(this,"_overlayContainer",document.createElement("div"));d(this,"_containerStyleController");this._container=t,this._viewer=n,this._containerStyleController=this.dv(new Ab(this._subContainer,this._overlayContainer,this._viewer));const{subContainer:i,overlayContainer:s}=this;i.tabIndex=-1,i.style.outline="none",i.style.width="100%",i.style.height="100%",i.onpointerdown=()=>i.focus(),s.style.position="relative",s.setAttribute("earthsdk3","earthsdk3-overlayContainer"),i.setAttribute("earthsdk3","earthsdk3-subContainer"),Kc(this._container).appendChild(i),this.d(()=>Kc(this._container).removeChild(i)),Kc(this._container).appendChild(s),this.d(()=>Kc(this._container).removeChild(s))}get subContainer(){return this._subContainer}get overlayContainer(){return this._overlayContainer}get containerStyleController(){return this._containerStyleController}get container(){return this._container}}class Vb extends V{constructor(){super(...arguments);d(this,"registerObjsMap",new Map)}register(t,n){return this.registerObjsMap.has(t)&&console.warn(`register warn:${t}已经被注册,再次注册会覆盖。`),this.registerObjsMap.set(t,n),t}getViewerConstructor(t){const n=this.registerObjsMap.get(t);if(!n){console.warn(`未找到${t}类!`);return}return n}createViewer(t){const n=t.type;console.log(t);const i=this.getViewerConstructor(n);if(!i)throw new Error(`没有找到类型为${n}的Viewer构造器!`);return new i(t)}}class Wy extends V{constructor(e,t,n=!1,i=!1){if(super(),this._viewer=e,!t)throw new Error("ViewerCustomInteraction: container is null");const s=this.dv(ue.create(t,"pointerdown")),o=this.dv(ue.create(t,"pointermove")),a=this.dv(ue.create(t,"pointerup")),u=this.dv(ue.create(t,"pointerout")),l=this.dv(ue.create(t,"pointerover")),c=this.dv(new Oh),h=this.dv(new Bp),f=()=>{const m=this._viewer.hoverTime*1e3;h.delayTime=m};this.d(this._viewer.hoverTimeChanged.don(()=>{f()})),this.d(s.don(m=>c.pointerDown(m))),this.d(o.don(m=>c.pointerMove(m))),this.d(a.don(m=>c.pointerUp(m))),this.d(u.don(m=>c.pointerOut(m))),this.d(s.don(m=>h.pointerDown(m))),this.d(o.don(m=>h.pointerMove(m))),this.d(a.don(m=>h.pointerUp(m))),this.d(u.don(m=>h.pointerOut(m)));const{x:p,y:v}=t.getBoundingClientRect(),C=i?p:0,S=i?v:0;this.d(h.hoverEvent.don(m=>{const[w,E]=Ko(m,n);this._viewer.hoverEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(c.clickEvent.don(m=>{const[w,E]=Ko(m,n);this._viewer.clickEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(c.dbclickEvent.don(m=>{const[w,E]=Ko(m,n);m.button===0&&this._viewer.dblclickEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(s.don(m=>{const[w,E]=Ko(m,n);m.button===0&&this._viewer.pointerDownEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(a.don(m=>{const[w,E]=Ko(m,n);m.button===0&&this._viewer.pointerUpEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(o.don(m=>{const[w,E]=ln(m,n);this._viewer.pointerMoveEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(l.don(m=>{const[w,E]=ln(m,n);this._viewer.pointerOverEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})})),this.d(u.don(m=>{const[w,E]=ln(m,n);this._viewer.pointerOutEvent.emit({screenPosition:[w+C,E+S],pointerEvent:m})}));const P=this.dv(ue.create(t,"keydown"));this.d(P.don(m=>this._viewer.keyDownEvent.emit(m)));const y=this.dv(ue.create(t,"keyup"));this.d(y.don(m=>this._viewer.keyUpEvent.emit(m)));const _=this.dv(ue.create(t,"wheel"));this.d(_.don(m=>this._viewer.wheelEvent.emit(m)))}}const ms=class ms extends V{constructor(t){super();d(this,"_forceRecreateEvent",this.dv(new O));d(this,"_container",this.dv(j(void 0)));d(this,"_containerSize",this.dv(j(void 0)));d(this,"_editingEvent",this.disposeVar(new O));d(this,"_esViewerExtensions",this.dv(new Tb(this)));d(this,"_status",this.dv(j("Raw")));d(this,"_statusLog",this.dv(j("")));d(this,"_statusContainer",this.dv(new fp(this)));d(this,"_useCustomInteraction",this.dv(j(!0)));d(this,"_resetInteractionEvent",this.dv(Ie(this.containerChanged,this._useCustomInteraction.changed,this._forceRecreateEvent)));d(this,"_interactionResetting",this.dv(new Ee(this._resetInteractionEvent,()=>{if(!(!this.container||!this._useCustomInteraction.value))return new Wy(this,this.container)})));d(this,"_viewerChanged",this.dv(new O));d(this,"_cameraChanged",this.dv(new O));d(this,"_containerResetEvent",this.dv(Ie(this.containerChanged,this._forceRecreateEvent)));d(this,"_containerResetting",this.dv(new Ee(this._containerResetEvent,()=>{if(this.container)return new kb(this.container,this)})));d(this,"_sceneObjectsMap",new Map);d(this,"_id");d(this,"_typeName");d(this,"_updateFuncReact",this.dv(j(void 0)));d(this,"_toDestroyFuncReact",this.dv(j(void 0)));d(this,"_statusInfo",ms.defaults.statusInfo);d(this,"_navigationMode",this.dv(j("Map")));d(this,"_syncViewer",this.dv(j(void 0)));d(this,"_syncEventDon",this.dv(new Ee(this.syncViewerChanged,()=>{const t=this.syncViewer;if(t)return new Mb(this,t)})));d(this,"_timeSyncdon",this.dv(new Ee(this.timeSyncChanged,()=>{if(this.timeSync)return new Db(this)})));d(this,"_hoverEvent",this.dv(new O));d(this,"_pointerOverEvent",this.dv(new O));d(this,"_pointerMoveEvent",this.dv(new O));d(this,"_pointerDownEvent",this.dv(new O));d(this,"_pointerUpEvent",this.dv(new O));d(this,"_pointerOutEvent",this.dv(new O));d(this,"_clickEvent",this.dv(new O));d(this,"_dblclickEvent",this.dv(new O));d(this,"_keyDownEvent",this.dv(new O));d(this,"_keyUpEvent",this.dv(new O));d(this,"_wheelEvent",this.dv(new O));d(this,"_actived",this.dv(j(!1)));this._id=t.id??Jo();const n=By(t.container);if(n)this._container.value=dp(n),this._typeName=t.type,this._initName();else throw new Error("container is not defined");{const i=()=>{n&&(this.show??!0?n.style.display="block":n.style.display="none")};i(),this.d(this.showChanged.don(i))}{const i=this._sceneObjectsMap,s=()=>{for(let[a,u]of i.entries())if(!u&&a){const l=xo.context.createEngineObject(a,this);l&&i.set(a,l)}},o=()=>{for(let[a,u]of i.entries())u&&!u.isDestroyed()&&u.destroy(),i.set(a,void 0)};this.d(o),this.d(this.viewerChanged.don(a=>{o(),a&&s()}))}{const i=()=>{if(this.execOnceFuncStr)try{Function(`"use strict";return (${this.execOnceFuncStr})`)()(this)}catch(s){console.warn(`execOnceFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${s}`)}};i(),this.d(this.execOnceFuncStrChanged.don(i))}{const i=()=>{if(this.updateFuncStr)try{this.updateFunc=Function(`"use strict";return (${this.updateFuncStr})`)()}catch(o){console.warn(`updateFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${o}`)}};i(),this.d(this.updateFuncStrChanged.don(i));let s;this.d(()=>s&&s.destroy()),this.d(this.updateFuncChanged.don(()=>{s&&s.cancel(),this.updateFunc&&(s=s||Ou(),s.restart(void 0,o=>{this.updateFunc&&this.updateFunc(this,o)}))}))}{const i=()=>{try{this.toDestroyFunc=this.toDestroyFuncStr&&Function(`"use strict";return (${this.toDestroyFuncStr})`)()||void 0}catch(s){console.warn(`toDestroyFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${s}`),this.toDestroyFunc=void 0}};i(),this.d(this.toDestroyFuncStrChanged.don(i)),this.d(this.toDestroyEvent.don(()=>{this.toDestroyFunc&&this.toDestroyFunc(this)}))}this.ad(new Nb(this))}forceRecreate(){this._forceRecreateEvent.emit()}get container(){return this._container.value}set container(t){this._container.value=t}set containerOrId(t){if(typeof t=="string"){const n=document.getElementById(t);n&&n instanceof HTMLDivElement?this._container.value=dp(n):console.warn("containerOrId warn: !(container instanceof HTMLDivElement)")}else t instanceof HTMLDivElement?this._container.value=dp(t):console.warn("containerOrId warn: setting container failed!")}get containerChanged(){return this._container.changed}get containerSize(){return this._containerSize.value}set containerSize(t){this._containerSize.value=t}get containerSizeChanged(){return this._containerSize.changed}get editingEvent(){return this._editingEvent}get esViewerExtensions(){return this._esViewerExtensions}get status(){return this._status.value}get statusChanged(){return this._status.changed}setStatus(t){this._status.value=t}get statusLog(){return this._statusLog.value}get statusLogChanged(){return this._statusLog.changed}setStatusLog(t){this._statusLog.value=t}get useCustomInteraction(){return this._useCustomInteraction.value}set useCustomInteraction(t){this._useCustomInteraction.value=t}get viewerChanged(){return this._viewerChanged}get cameraChanged(){return this._cameraChanged}get containerResetEvent(){return this._containerResetEvent}get subContainer(){var t;return(t=this._containerResetting.obj)==null?void 0:t.subContainer}get subContainerChanged(){return this._containerResetting.objChanged}get overlayContainer(){var t;return(t=this._containerResetting.obj)==null?void 0:t.overlayContainer}get overlayContainerChanged(){return this._containerResetting.objChanged}get sceneObjectsMap(){return this._sceneObjectsMap}get sceneObjects(){return this._sceneObjectsMap.keys()}getEngineObject(t){return this.sceneObjectsMap.get(t)}add(...t){for(let n of t)if(!this.has(n)){rt.context.addSceneObject(n);const i=xo.context.createEngineObject(n,this);i&&this._sceneObjectsMap.set(n,i),n.viewerAttached.emit(this)}}delete(...t){for(let n of t)if(this.has(n)){const i=this._sceneObjectsMap.get(n);i&&i.destroy(),rt.context.deleteSceneObject(n),this._sceneObjectsMap.delete(n),n.viewerDetached.emit(this)}}disposableAdd(...t){return this.add(...t),()=>this.delete(...t)}disAdd(...t){return this.disposableAdd(...t)}has(t){return this._sceneObjectsMap.has(t)}clearAllSceneObjects(){for(let t of this.sceneObjects)this.delete(t)}get id(){return this._id}set id(t){console.warn("ESViewer id is readonly")}get typeName(){return this._typeName}_initName(){this.name=`${this.typeName}_${(""+this.id).slice(-4)}`}get defaultProps(){return ms.createDefaultProps()}get completeJson(){return this._getJson(!1)}_getJson(t=!0){const n={id:this.id,type:this.typeName};for(let i of Object.keys(this.defaultProps))if(t){let s,o=this.defaultProps[i];o instanceof ze?s=o.equals(this[i]):s=o===this[i],s||(n[i]=this[i])}else n[i]=this[i];return n}_setJson(t,n,i){if(!(t instanceof Object)||t.type&&t.type!==this.typeName){console.error(`value.type && value.type${t.type} !== this.typeName${this.typeName}`);return}t.id&&t.id!==this.id&&console.warn(`value.id === undefined || value.id${t.id} !== this.id(${this.id})`);const s=n||[];s.push("id","type");const o=Object.keys(this.defaultProps).filter(a=>!s.includes(a));for(let a of o)if(a in t)this[a]=t[a]===null?void 0:t[a];else if(!(i??!1)){let u=this.defaultProps[a];u instanceof ze&&(u=u.value),this[a]=u}}get json(){return this._getJson()}set json(t){this._setJson(t,["devTags"])}get updateFunc(){return this._updateFuncReact.value}set updateFunc(t){this._updateFuncReact.value=t}get updateFuncChanged(){return this._updateFuncReact.changed}get toDestroyFunc(){return this._toDestroyFuncReact.value}set toDestroyFunc(t){this._toDestroyFuncReact.value=t}get toDestroyFuncChanged(){return this._toDestroyFuncReact.changed}get navigationMode(){return this._navigationMode.value}get navigationModeChanged(){return this._navigationMode.changed}getNavigationMode(){return this._navigationMode.value}getEngineType(){return this._typeName}get syncViewer(){return this._syncViewer.value}set syncViewer(t){this._syncViewer.value=t}get syncViewerChanged(){return this._syncViewer.changed}syncOtherViewer(t){t&&t.syncViewer&&(t.syncViewer=void 0),t===this?this._syncViewer.value=void 0:this._syncViewer.value=t}setCurrentTime(t){try{this.currentTime=typeof t=="string"?Date.parse(t):t}catch(n){console.warn(`时间格式不正确! value: ${t} error: ${n}`)}}async getVersion(){return globalThis.g_XE3CopyRights??{}}get hoverEvent(){return this._hoverEvent}get pointerOverEvent(){return this._pointerOverEvent}get pointerMoveEvent(){return this._pointerMoveEvent}get pointerDownEvent(){return this._pointerDownEvent}get pointerUpEvent(){return this._pointerUpEvent}get pointerOutEvent(){return this._pointerOutEvent}get clickEvent(){return this._clickEvent}get dblclickEvent(){return this._dblclickEvent}get keyDownEvent(){return this._keyDownEvent}get keyUpEvent(){return this._keyUpEvent}get wheelEvent(){return this._wheelEvent}get actived(){return this._actived.value}set actived(t){this._actived.value=t}get activedChanged(){return this._actived.changed}getESProperties(){return{defaultMenu:"general",basic:[],general:[],dataSource:[],location:[],coordinate:[],style:[],more:[]}}getProperties(t){const n={...this.getESProperties()},i=[];return n.general.length>0&&i.push(new ut(n.general,"general")),Object.keys(n).forEach(s=>{s!=="defaultMenu"&&s!=="general"&&n[s].length>0&&i.push(new ut(n[s],s))}),i}};d(ms,"context",new Vb),d(ms,"register",ms.context.register.bind(ms.context)),d(ms,"defaults",{show:!0,debug:!1,statusInfo:{fps:0,position:[0,0,0],rotation:[0,0,0],length:0},terrainShader:{slope:{show:!1},aspect:{show:!1},elevationRamp:{show:!1,minHeight:-414,maxHeight:8777,color:[]},elevationContour:{show:!1,color:[1,0,0,1],spacing:150,width:2}},globeShow:!0,splitPosition:0,cameraMovableRegion:[0,0,0,0,0,0],depthTestAgainstTerrain:!0,terrainOpacity:1});let ri=ms;(r=>{r.createBaseProps=()=>({name:"未命名场景对象",extras:wt(void 0),devTags:re(void 0),debug:void 0,show:void 0,opacity:void 0,zIndex:void 0,useDefaultStatusDiv:!0,execOnceFuncStr:void 0,updateFuncStr:void 0,toDestroyFuncStr:void 0}),r.createCommonProps=()=>({globeShow:!0,ionAccessToken:"",lonLatFormat:"DECIMAL_DEGREE",fov:60,textAvoidance:!1,flyToBoundingSize:256,hoverTime:2,currentTime:Date.now(),simulationTime:Date.now(),timeSync:!1,rain:0,snow:0,cloud:0,fog:0,depthOfField:0,atmosphere:!0,editingPointSize:void 0,editingPointColor:re(void 0),editingAuxiliaryPointColor:re(void 0),editingLineWidth:void 0,editingLineColor:re(void 0),editingAxisSize:void 0,editingAuxiliaryPointSize:void 0,editingHeightOffset:0,editingLineShow:!0,editingEventListening:!0,terrainShader:r.defaults.terrainShader,splitPosition:j(void 0),rollerShutter:!1,cameraMovableRegion:re(void 0),depthTestAgainstTerrain:!0,terrainOpacity:1,sceneGlobeBaseColor:ht([1,1,1,1]),sceneBackgroundColor:ht([0,0,0,0])}),r.createDefaultProps=()=>({...(0,r.createBaseProps)(),...(0,r.createCommonProps)()})})(ri||(ri={})),Gi(ri.prototype,ri.createDefaultProps);function Hy(r,e){const t=r._lastCameraInfo;if(t){const n=e.viewerChanged.don(i=>{if(!i||!t)return;const{position:s,rotation:o}=t;e.flyIn(s,o,0),r._lastCameraInfo=void 0,n()})}}const jb=r=>{const e=ri.createCommonProps(),t={};try{Object.keys(e).forEach(n=>{t[n]=r[n]})}catch(n){console.warn(n)}return t},qy=(r,e)=>{const t=ri.createCommonProps();try{Object.keys(t).forEach(n=>{r[n]=e[n]})}catch(n){console.warn(n)}};class Bb extends V{constructor(t){super();d(this,"_viewersChanged",this.disposeVar(new O));d(this,"_viewers",new Set);d(this,"_viewersToChange",this.dv(new O));this._sceneObjectsManager=t,this.d(()=>{for(const n of this._viewers)this.destroyViewer(n);this._viewers.clear()}),this.viewers.forEach(n=>{const i=this._sceneObjectsManager.sceneObjects;n.add(...i)}),this.d(()=>{const n=this._sceneObjectsManager.sceneObjects;this.viewers.forEach(i=>{i.delete(...n)})}),this.d(this._sceneObjectsManager.sceneObjectsToChange.don((n,i)=>{this.viewers.forEach(s=>{i.forEach(o=>{qi(s.devTags,o.devTags)&&(s.has(o)?console.warn(`${s.typeName}中已存${o.typeName},检查逻辑是否有问题!`):s.add(o))}),n.forEach(o=>{qi(s.devTags,o.devTags)&&(s.has(o)?s.delete(o):console.warn(`${s.typeName}中不存在${o.typeName},检查逻辑是否有问题!`))})}),i.length>0&&i.forEach(s=>{s.d(s.devTagsChanged.don(()=>{this.viewers.forEach(o=>{o.has(s)&&o.delete(s),console.log("sceneObjectsToChange",o.devTags,s.devTags,qi(o.devTags,s.devTags))}),this.viewers.forEach(o=>{qi(o.devTags,s.devTags)&&(o.has(s)?console.warn(`${o.typeName}中已存${s.typeName},检查逻辑是否有问题!`):o.add(s))})}))})})),this.d(this.viewersChanged.don((n,i)=>{const s=this._sceneObjectsManager.sceneObjects;i.forEach(o=>{for(let a of s)qi(o.devTags,a.devTags)&&(o.has(a)?console.warn(`${o.typeName}中已存${a.typeName},检查逻辑是否有问题!`):o.add(a))}),n.forEach(o=>{for(let a of s)qi(o.devTags,a.devTags)&&(o.has(a)?o.delete(a):console.warn(`${o.typeName}中不存在${a.typeName},检查逻辑是否有问题!`))}),i.length>0&&i.forEach(o=>{o.d(o.devTagsChanged.don(()=>{o.clearAllSceneObjects();const a=this._sceneObjectsManager.sceneObjects;for(let u of a)console.log("viewersChanged",o.devTags,u.devTags,qi(o.devTags,u.devTags)),qi(o.devTags,u.devTags)&&(o.has(u)?console.warn(`${o.typeName}中已存${u.typeName},检查逻辑是否有问题!`):o.add(u))}))})}))}get viewersChanged(){return this._viewersChanged}get viewers(){return this._viewers}getViewers(){return[...this._viewers]}get viewersToChange(){return this._viewersToChange}createViewer(t){const n=ri.context.createViewer(t);return this._viewers.add(n),this._viewersChanged.emit([],[n]),n}destroyViewer(t){return t.isDestroyed()?!0:(this._viewers.delete(t),this._viewersChanged.emit([t],[]),t.destroy(),t.isDestroyed())}}class Zc extends V{constructor(...t){super();d(this,"_drgm",this.dv(new Ag));d(this,"_sobjm",this.dv(new Ib));d(this,"_vrm",this.dv(new Bb(this._sobjm)));d(this,"_sceneObjectEditingManager",this.disposeVar(new Pb));d(this,"_activeViewer",this.dv(j(void 0)));d(this,"_syncOtherViewersToActived",this.dv(j(!1)));d(this,"_cmrvm",this.createSceneObjectFromClass(kc));d(this,"_cmrvmdon",this.d(()=>this._cmrvm&&this.destroySceneObject(this._cmrvm)));d(this,"_asset",{type:"ESObjectsManager",version:"0.1.0",createdTime:"",modifiedTime:"",name:"未命名项目"});d(this,"_sceneTree",this.dv(new pl("default",this.dragstartDataMananger,24,this)));d(this,"_propUiTreeManager",this.dv(new ka(24)));d(this,"_sceneTreeMap",new Map);d(this,"_viewerCreatedEvent",this.dv(new O));d(this,"_lastCameraInfo");d(this,"_lastActiveViewerJson");d(this,"_syncEventDonFunc",this.d(Ui([this.activeViewerChanged,this.syncOtherViewersToActivedChanged],()=>{const t=this.syncOtherViewersToActived;this.viewers.forEach(n=>{t?n.syncOtherViewer(this.activeViewer):n.syncOtherViewer(void 0)})})));d(this,"_player",this.createSceneObjectFromClass(za));d(this,"_playerdon",this.d(()=>this._player&&this.destroySceneObject(this._player)));d(this,"_esPlyarAndPathTime",this.dv(new _b(this)));d(this,"_pathAnimationManager",this.dv(new Eb(this)))}static get envs(){return rt.context.environmentVariables}getSceneObjectById(t){return rt.getSceneObjectById(t)}getSceneObject(t){return rt.getSceneObject(t)}get $refs(){return rt.$refs}get dragstartDataMananger(){return this._drgm}get sceneObjectsManager(){return this._sobjm}get viewers(){return this._vrm.viewers}getViewers(){return this._vrm.getViewers()}get sceneObjectEditingManager(){return this._sceneObjectEditingManager}get activeViewer(){return this._activeViewer.value}set activeViewer(t){this._activeViewer.value=t,this.viewers.values().forEach(n=>n.actived=n===t)}get activeViewerChanged(){return this._activeViewer.changed}get syncOtherViewersToActived(){return this._syncOtherViewersToActived.value}set syncOtherViewersToActived(t){this._syncOtherViewersToActived.value=t}get syncOtherViewersToActivedChanged(){return this._syncOtherViewersToActived.changed}get cameraViewsManager(){return this._cmrvm}get completeJson(){var h;const t=this._asset.createdTime||new Date().toISOString(),n=new Date().toISOString(),i=this._asset.name||"未命名项目",o={type:"ESObjectsManager",version:this._asset.version||"0.1.0",createdTime:t,modifiedTime:n,name:i},a=this.sceneTree.completeJson,u=this._cmrvm.views,l=[...this._vrm.viewers].map(f=>f.completeJson),c=(h=this.activeViewer)==null?void 0:h.getCurrentCameraInfo();return{asset:o,viewers:l,sceneTree:a,viewCollection:u,lastView:c}}get json(){var h;const t=this._asset.createdTime||new Date().toISOString(),n=new Date().toISOString(),i=this._asset.name||"未命名项目",o={type:"ESObjectsManager",version:this._asset.version||"0.1.0",createdTime:t,modifiedTime:n,name:i},a=this.sceneTree.json,u=this._cmrvm.views,l=[...this._vrm.viewers].map(f=>f.json),c=(h=this.activeViewer)==null?void 0:h.getCurrentCameraInfo();return{asset:o,viewers:l,sceneTree:a,viewCollection:u,lastView:c}}set json(t){try{if(!t.asset)return;if(!t.asset.type||t.asset.type!=="ESObjectsManager"){console.warn("json装配失败! asset.type 不存在或者不是'ESObjectsManager'");return}if(this._asset.createdTime=t.asset&&t.asset.createdTime||new Date().toISOString(),this._asset.modifiedTime=t.asset&&t.asset.modifiedTime||"",this._asset.name=t.asset&&t.asset.name||"未命名项目",this._asset.version=t.asset&&t.asset.version||"0.1.0",t.sceneTree&&(this.sceneTree.json=t.sceneTree),t.viewCollection&&(this._cmrvm.views=t.viewCollection),!t.viewers||!Array.isArray(t.viewers)){console.warn("viewers is not an array or does not exist !");return}if(this._vrm.viewers.size===0||t.viewers.length===0){console.warn("viewers is empty !");return}this._vrm.viewers.forEach(n=>{const i=t.viewers.find(s=>s.id===n.id);i&&(n.json=i)})}catch(n){console.error(`ESObjectsManager解析json数据时发生错误! error: ${n}`)}}get sceneTree(){return this._sceneTree}get jsonLoadingEvent(){return this._sceneTree.jsonLoadingEvent}get propUiTreeManager(){return this._propUiTreeManager}propTreeCallback(t){return Cb(this,t)}getSceneTrees(){return[...this._sceneTreeMap.values()]}getSceneTree(t="default"){if(t==="default")return this._sceneTree;if(!this._sceneTreeMap.has(t)){console.warn(`id为${t}的SceneTree不存在!`);return}return this._sceneTreeMap.get(t)}createSceneTree(t,n=24){if(this._sceneTreeMap.has(t)||t==="default")console.warn(`id为${t}的SceneTree已存在!`);else{const i=this.dv(new pl(t,this.dragstartDataMananger,n,this));this._sceneTreeMap.set(t,i)}return this.getSceneTree(t)}get viewerCreatedEvent(){return this._viewerCreatedEvent}createViewer(t){const n=this._vrm.createViewer(t);this.activeViewer||(this.activeViewer=n);const i=this.d(n.viewerChanged.don(s=>{s&&(this._viewerCreatedEvent.emit(n),i())}));return n}destroyViewer(t){return this._activeViewer.value===t&&(this._activeViewer.value=void 0),this._vrm.destroyViewer(t)}switchViewer(t,n=!0,i=!0,s=!0){var l,c;this.activeViewer&&this.activeViewer.getNavigationMode()!=="Map"&&this.activeViewer.changeToMap(),!this._lastCameraInfo&&n&&(this._lastCameraInfo=(l=this.activeViewer)==null?void 0:l.getCurrentCameraInfo(),((c=this.activeViewer)==null?void 0:c.typeName)=="ESOlViewer"&&this._lastCameraInfo&&(this._lastCameraInfo.rotation[1]=-90)),!this._lastActiveViewerJson&&i&&(this._lastActiveViewerJson=this.activeViewer?jb(this.activeViewer):void 0),s&&this.activeViewer&&this.destroyViewer(this.activeViewer);const o=t.id,a=o?[...this.getViewers()].find(h=>h.id===o):[...this.getViewers()].find(h=>h.typeName===t.type&&!h.container);if(a)if(o&&a.typeName!==t.type)console.warn(`id为${o}的viewer的typeName和option.type${t.type}不相同!,虽然id一致但是typeName不同,所以会销毁并创建新的viewer`),this.destroyViewer(a);else return console.log("ESViewer exists, will be used"),n&&Hy(this,a),i&&this._lastActiveViewerJson&&(qy(a,this._lastActiveViewerJson),this._lastActiveViewerJson=void 0),a.container===By(t.container)?(a.containerOrId=t.container,a.forceRecreate()):a.containerOrId=t.container,this.activeViewer=a,a;console.log("No ESViewer exists, will be created");const u=this.createViewer(t);return console.log(t),console.log(this),n&&Hy(this,u),i&&this._lastActiveViewerJson&&(qy(u,this._lastActiveViewerJson),this._lastActiveViewerJson=void 0),this.activeViewer=u,u}switchToCesiumViewer(...t){if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)){const{container:n,viewSync:i,attributeSync:s,destroy:o,id:a}=t[0];return this.switchViewer({type:"ESCesiumViewer",container:n,id:a},i??!0,s??!0,o??!0)}else if(typeof t[0]=="string"||t[0]instanceof HTMLDivElement){const n={container:t[0],viewSync:t[1]??!0,attributeSync:t[2]??!0,destroy:t[3]??!0,id:t[4]},{container:i,viewSync:s,attributeSync:o,destroy:a,id:u}=n;return this.switchViewer({type:"ESCesiumViewer",container:i,id:u},s,o,a)}}switchToUEViewer(...t){let n,i={viewSync:!0,attributeSync:!0,destroy:!0};if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("uri")){const{container:u,uri:l,app:c,token:h,viewSync:f,attributeSync:p,destroy:v,id:C,silentTime:S}=t[0];n={type:"ESUeViewer",container:u,id:C,options:{uri:l,app:c,token:h,silentTime:S}},i={viewSync:f??!0,attributeSync:p??!0,destroy:v??!0}}else if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("ws")){const{container:u,ws:l,esmsg:c,viewSync:h,attributeSync:f,id:p,destroy:v,silentTime:C}=t[0];n={type:"ESUeViewer",container:u,id:p,options:{ws:l,esmsg:c,silentTime:C}},i={viewSync:h??!0,attributeSync:f??!0,destroy:v??!0}}else if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)&&t[0].hasOwnProperty("project")){const{container:u,project:l,baseUrl:c,viewSync:h,attributeSync:f,id:p,destroy:v}=t[0];n={type:"ESUeViewer",container:u,id:p,options:{project:l,baseUrl:c}},i={viewSync:h??!0,attributeSync:f??!0,destroy:v??!0}}else(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(typeof t[1]=="string"&&t[1].startsWith("ws")?(n={type:"ESUeViewer",container:t[0],id:t[6],options:{ws:t[1],esmsg:t[2]??void 0,silentTime:t[7]??void 0}},i={viewSync:t[3]??!0,attributeSync:t[4]??!0,destroy:t[5]??!0}):typeof t[1]=="string"&&t[1].startsWith("http")?(n={type:"ESUeViewer",container:t[0],id:t[7],options:{uri:t[1],app:t[2],token:t[3]??void 0,silentTime:t[8]??void 0}},i={viewSync:t[4]??!0,attributeSync:t[5]??!0,destroy:t[6]??!0}):(n={type:"ESUeViewer",container:t[0],id:t[6],options:{project:t[1],baseUrl:t[2]??void 0}},i={viewSync:t[3]??!0,attributeSync:t[4]??!0,destroy:t[5]??!0}));if(!n)throw new Error("参数错误");const{viewSync:s,attributeSync:o,destroy:a}=i;return this.switchViewer(n,s,o,a)}createCesiumViewer(...t){let n;if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)?n={...t[0],type:"ESCesiumViewer"}:(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(n={container:t[0],options:t[1]??void 0,id:t[2]??void 0,type:"ESCesiumViewer"}),!n)throw new Error("参数错误");return this.createViewer(n)}createOpenLayersViewer(...t){let n;if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)?n={...t[0],type:"ESOlViewer"}:(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(n={container:t[0],options:t[1]??void 0,id:t[2]??void 0,type:"ESOlViewer"}),!n)throw new Error("参数错误");return this.createViewer(n)}createUeViewer(...t){let n;if(typeof t[0]=="object"&&!(t[0]instanceof HTMLDivElement)?n={...t[0],type:"ESUeViewer"}:(typeof t[0]=="string"||t[0]instanceof HTMLDivElement)&&(typeof t[1]=="string"&&t[1].startsWith("ws")?n={type:"ESUeViewer",container:t[0],id:t[3]??void 0,options:{ws:t[1],esmsg:t[2]??void 0,silentTime:t[4]??void 0}}:typeof t[1]=="string"&&t[1].startsWith("http")?n={type:"ESUeViewer",container:t[0],id:t[4]??void 0,options:{uri:t[1],app:t[2],token:t[3]??void 0,silentTime:t[5]??void 0}}:n={type:"ESUeViewer",container:t[0],id:t[3]??void 0,options:{project:t[1],baseUrl:t[2]??void 0}}),!n)throw new Error("参数错误");return this.createViewer(n)}createSceneObject(t,n){return this._sobjm.createSceneObject(t,n)}createSceneObjectFromUrl(t,n){return this._sobjm.createSceneObjectFromUrl(t,n)}createSceneObjectFromClass(t,n){return this._sobjm.createSceneObjectFromClass(t,n)}createSceneObjectFromJson(t){return this._sobjm.createSceneObjectFromJson(t)}destroySceneObject(t){const n=this._sobjm.deleteSceneObject(t);return t.destroy(),n}destroyAllSceneObjects(){const t=[...this._sobjm.sceneObjects];for(let n of t)n!=this._player&&n!=this._cmrvm&&this.destroySceneObject(n)}get player(){return this._player}get esPlyarAndPathTime(){return this._esPlyarAndPathTime}get pathAnimationManager(){return this._pathAnimationManager}}d(Zc,"getSceneObjById",rt.context.getSceneObjectById.bind(rt.context)),d(Zc,"getEnv",rt.context.getEnv.bind(rt.context)),d(Zc,"setEnv",rt.context.setEnv.bind(rt.context)),g.BasePropTreeItem=Ud,g.Boolean2Property=J0,g.Boolean2sProperty=Z0,g.Boolean3Property=$0,g.Boolean3sProperty=Q0,g.Boolean4Property=K0,g.Boolean4sProperty=tw,g.BooleanProperty=X,g.BooleansProperty=z0,g.BorderedPosFloatDiv=eg,g.BoxPicker=Ch,g.CancelError=Fr,g.CancelsManager=Ph,g.CanvasImagePoi=c0,g.CanvasPoi=Nh,g.CanvasPointPoi=h0,g.CanvasPrimitive=zp,g.CanvasPrimitivesContext=d0,g.ColorProperty=Mt,g.ColorRgbProperty=rw,g.ColorStops=fb,g.ComplexImage=Cl,g.CursorFloatDiv=v0,g.CursorInfo=y0,g.DashPatternProperty=iw,g.DateProperty=io,g.DatesProperty=Lg,g.Debouncing=z_,g.DebouncingDeprecated=_h,g.DebouncingWithStartValues=U_,g.Destroyable=V,g.DivBoxPicker=V_,g.DivPoi=Zp,g.DivPointerClick=u0,g.DomElementEvent=ue,g.DoublyLinkedList=Sp,g.DragStartDataManager=Ag,g.ES3DTileset=Tr,g.ESAlarm=$d,g.ESApertureEffect=Kd,g.ESAreaMeasurement=Zd,g.ESBlastParticleSystem=Qd,g.ESBoxClipping=tf,g.ESCameraView=Fc,g.ESCameraViewCollection=kc,g.ESCameraVisibleRange=ef,g.ESCar=Vc,g.ESCityBasePoint=Qf,g.ESClassification=jc,g.ESClippingPlane=nf,g.ESCustomDiv=Bc,g.ESCzml=tp,g.ESDataMesh=rf,g.ESDatasmithRuntimeModel=Lf,g.ESDirectionMeasurement=Pf,g.ESDistanceMeasurement=sf,g.ESDynamicWater=Ff,g.ESEntityCluster=$f,g.ESExcavate=gl,g.ESFeatureLayer=hp,g.ESFireParticleSystem=of,g.ESForestTileset=af,g.ESGaussianSplatting=ip,g.ESGeoBezierSpline=Kf,g.ESGeoDiv=uf,g.ESGeoDivTextPoi=Zf,g.ESGeoExtrudedPolygon=Io,g.ESGeoJson=vl,g.ESGeoLineString=Ni,g.ESGeoPoints=El,g.ESGeoPolygon=Xt,g.ESGeoRectangle=lf,g.ESGeoVector=It,g.ESGeoWater=Af,g.ESGltfModel=zs,g.ESHeatMap=Xc,g.ESHeightLimitAnalysis=Jf,g.ESHeightMeasurement=If,g.ESHole=Uf,g.ESHuman=Po,g.ESHumanPoi=zf,g.ESImageLabel=zc,g.ESImageryLayer=hf,g.ESJEditingMode=et,g.ESJLonLatFormat=Fg,g.ESJPickedResult=dw,g.ESLabel=ar,g.ESLevelRuntimeModel=kf,g.ESLocalCircle=xf,g.ESLocalPolygon=yl,g.ESLocalPolygonZ=Tf,g.ESLocalRectangle=Of,g.ESLocalSkyBox=df,g.ESLocalVector=Va,g.ESLocalVector2D=us,g.ESLocationMeasurement=ff,g.ESMCPClient=mb,g.ESMsTileset=qf,g.ESNavigator=ep,g.ESObjectWithLocation=st,g.ESObjectsManager=Zc,g.ESParticleSystemPrimitive=Uc,g.ESPath=Ua,g.ESPathImpl=Us,g.ESPipeFence=Hc,g.ESPipeline=Vf,g.ESPipeserTileset=Nf,g.ESPit=Ba,g.ESPlayer=za,g.ESPoi2D=ml,g.ESPoi3D=pf,g.ESPoiTileset=Xf,g.ESPolygonFence=qc,g.ESPolygonFlattenedPlane=gf,g.ESPolygonWithHole=Mf,g.ESRectangle=Df,g.ESRtsFeatureEditing=Hf,g.ESRtsTileset=Wf,g.ESScale=Yf,g.ESSceneObject=rt,g.ESSceneObjectWithId=zg,g.ESSeparateFoliage=mf,g.ESSkylineAnalysis=op,g.ESStaticMesh=sp,g.ESSubmergingAnalysis=vf,g.ESSunshineAnalysis=yf,g.ESSurfaceAreaMeasurement=Rf,g.ESTerrainLayer=_f,g.ESTestObject=Jd,g.ESTextLabel=ja,g.ESUEWidget=wf,g.ESUnrealActor=Ef,g.ESVideoFusion=Cf,g.ESViewShed=Sf,g.ESViewer=ri,g.ESViewerStatusBar=np,g.ESViewerStatusBarScale=rp,g.ESVisibilityAnalysis=jf,g.ESVisualObject=Ht,g.ESVolumeMeasurement=Bf,g.ESWidget=bf,g.EngineObject=xo,g.EnumProperty=Pt,g.EnumStringsProperty=sw,g.EvalStringProperty=Es,g.Event=O,g.EventListenerHandler=oh,g.Fetching=R_,g.FloatDiv=Rh,g.FlvJsLoading=Jc,g.FlvProcessing=Vy,g.FunctionProperty=lt,g.Gif=Sg,g.GifPlayer=Cg,g.GifProcessing=bg,g.GroupPropTreeItem=Wd,g.GroupProperty=ut,g.HasOwner=P_,g.HlsJsLoading=Yc,g.HlsProcessing=ky,g.IFrameBorderedPosFloatDiv=g0,g.ImageProcessing=dg,g.IntervalDeprecated=Eh,g.JsonProperty=it,g.LeafPropTreeItem=Gd,g.ListenerPipe=sh,g.LocalFileServer=cg,g.LocalRootDir=lg,g.LongStringProperty=Uh,g.MaximumScreenSpaceErrorProperty=j0,g.MinmaxProperty=ow,g.NearFarScalerProperty=aw,g.NextAnimateFrameEvent=Fl,g.NextAnimateFrameWeakEvent=Pp,g.NextMicroTaskEvent=hh,g.NextMicroTaskWeakEvent=m_,g.NonreactiveJsonStringProperty=Dg,g.Number2Property=Ae,g.Number2sProperty=Og,g.Number3Property=cn,g.Number3sProperty=zh,g.Number4Property=Ar,g.Number4WithUndefinedProperty=X0,g.Number4sProperty=Y0,g.NumberProperty=M,g.NumberRangeProperty=uw,g.NumberSliderProperty=Ue,g.NumbersProperty=B0,g.ObjPool=Tl,g.ObjResetting=E0,g.ObjResettingWithEvent=Ee,g.ObservableArray=xu,g.ObservableSet=Wl,g.ParamsProperty=Ng,g.PickColorMananger=$p,g.PickedInfo=hw,g.Player=kr,g.PlayerProperty=Hl,g.PointerClick=Oh,g.PointerClickDeprecated=Fp,g.PointerHover=Bp,g.PointerHoverDeprecated=l0,g.PosFloatDiv=Ah,g.PositionProperty=ia,g.PositionsProperty=Mg,g.PositionsSetPropety=cw,g.Processing=Fe,g.PropTree=ey,g.PropUiTreeManager=ka,g.Property=ws,g.ReactVarProperty=Tt,g.ReactiveVariable=ze,g.RotationProperty=Gh,g.SceneObjectFromId=qh,g.SceneTree=pl,g.SceneTreeContextMenu=uy,g.SceneTreeItem=yn,g.SceneTreeItemDragDrop=ay,g.SmartListenerHandler=Eu,g.SmartListenerPipe=o_,g.SmoothMoveController=wS,g.String2Property=U0,g.String2sProperty=Tg,g.String3Property=G0,g.String3sProperty=H0,g.String4Property=W0,g.String4sProperty=q0,g.StringNumberProperty=ew,g.StringNumbersProperty=nw,g.StringProperty=pt,g.StringsProperty=xg,g.Throttling=o0,g.ThrottlingWithStartValues=a0,g.TimingDeprecated=Rp,g.ToolTipDiv=m0,g.Transition=Du,g.TransitionDeprecated=A_,g.Tree=ra,g.TreeItem=na,g.TreeItemDragDrop=kg,g.UiTree=sg,g.UiTreeObject=ig,g.UriProperty=Fu,g.VideoProcessing=gg,g.ViewPlayerProperty=Rg,g.ViewerCustomInteraction=Wy,g.Watcher=Au,g.WatcherTools=Ug,g.WithUndefinedProperty=Bh,g.XrPlayer=Ul,g.Xyzw2Ns=Vl,g.addTreesCallFunc=fy,g.animateFrame=Rl,g.ary2Ns=M_,g.asyncFuncToCancelablePromise=q_,g.bind=nt,g.bindCustomEditing=Bg,g.bindu=p_,g.booleanPointInPolygon=Nw,g.canMoveToTreeItem=Lu,g.canMoveToTreeItems=ng,g.cancelFuncToCancelablePromise=H_,g.cancelPromise=Sh,g.cancelableFetch=xh,g.cancelableFetchDeprecated=Mp,g.cancelableFetchWithProgress=Y_,g.cartesianDistance=Qv,g.clamp=jl,g.clamp0_360=sa,g.clampN180_180=jg,g.complexImageTypes=pg,g.createAnimateFrame=Ou,g.createAnimateFrameWithStartValues=ea,g.createBottomTriangleElement=tg,g.createCancelablePromise=ta,g.createCloseDiv=Qp,g.createEventsCallFunc=Ui,g.createFetching=J_,g.createFetchingWithStartValues=$_,g.createGuid=Jo,g.createInterval=e0,g.createIntervalWithStartValues=n0,g.createNextAnimateFrame=K_,g.createNextAnimateFrameEvent=Ie,g.createNextAnimateFrameEventCallFunc=y_,g.createNextAnimateFrameWeakEvent=__,g.createNextAnimateFrameWithStartValues=Z_,g.createNextMicroTask=Q_,g.createNextMicroTaskEvent=g_,g.createNextMicroTaskWeakEvent=v_,g.createNextMicroTaskWithStartValues=t0,g.createNumbers=kl,g.createProcessingFromAsyncFunc=Yn,g.createProcessingFromAsyncFuncWithStartValues=X_,g.createProcessingFromPromiseCreateFunc=zl,g.createProcessingFromPromiseCreateFuncWithStartValues=Ih,g.createPropTreeFromSceneObject=ny,g.createSleeping=r0,g.createSleepingWithStartValues=i0,g.createStartFuncFromAsyncFunc=Tu,g.createTimeout=kp,g.createTimeoutWithStartValues=Vp,g.cutDownTreesCallFunc=my,g.czmPixelFormats=fg,g.debounce=Ml,g.defaultGetLocalFilePath=C0,g.defaultInitSceneObjectOnCreatingFunc=pw,g.defaultLight122FromEnvironmentMapManager=Yd,g.defaultLocalFileServer=hg,g.defaultStartUpdateFunc=Al,g.defaultUpdateSceneObjectOnPickingFunc=fw,g.defineReactiveProp=wh,g.destroyObject=_p,g.downloadLink=S_,g.drawPoint=no,g.drawRoundRectPath=Up,g.drawText=Gp,g.drawTextBlock=Dh,g.engineObjectCreatedUpdate=iy,g.equalsN3=qd,g.every=fh,g.extendClassProps=Gi,g.fetchArrayBuffer=x_,g.fetchImage=Op,g.forEach=pi,g.forEachWithBreak=dh,g.geoAlong=Lw,g.geoArea=td,g.geoBuffer=Yv,g.geoCenterOfMass=Zw,g.geoDestination=om,g.geoDifference=Jv,g.geoDistance=Ql,g.geoHeading=Bu,g.geoIntersect=qv,g.geoLineIntersect=oE,g.geoNearestPointOnLine=cE,g.geoPointToLineDistance=pE,g.geoPolygonFromCircle=$v,g.geoPolygonOverlap=Bd,g.geoPolylineToBezierSpline=ty,g.geoRhumbDestination=vE,g.geoRhumbDistance=ym,g.geoRhumbHeading=_E,g.geoUnion=Xv,g.getCameraTools=vb,g.getColorHexStr=Ru,g.getCompleteReactParams=Dl,g.getDefaultValue=yw,g.getDistancesFromPositions=fl,g.getDomEventCurrentTargetPos=ln,g.getDrawRect=eo,g.getElementBounds=Cw,g.getErrorResult=Ze,g.getEventFromPromise=B_,g.getEventPosInCurrentTarget=Ko,g.getExtProp=Xn,g.getFileArrayBuffer=ug,g.getFileJson=ag,g.getFileText=kh,g.getFloatDivPool=Fh,g.getGeoBoundingSphereFromPositions=Zv,g.getIterator=Su,g.getMidpoint=uE,g.getMinMaxCorner=Kv,g.getMinMaxPosition=I_,g.getPromiseCancel=Zo,g.getPromiseFromEvent=j_,g.getPromiseFromProcessing=Th,g.getReactFuncs=zi,g.getSceneObjectTools=yb,g.getSceneObjectTreeItem=gw,g.getSubEntriesFromDir=og,g.getSuccessResult=Wn,g.getTypeFromImageUri=jy,g.getValueFromProps=Ip,g.getXyzFromPostion=zd,g.growthSimulationCallFunc=vy,g.hasSameTags=Vg,g.hasSameViewerTags=qi,g.imageToCanvas=Wp,g.inOrderRunning=_w,g.interval=lh,g.isJSON=Wh,g.isPromiseCancelable=Qo,g.isXML=vw,g.lbhToWebMerc=Tw,g.lbhToXyz=Vr,g.length=ph,g.lerpAngle=Xl,g.lerpRotation=Hh,g.loadGifFrames=wg,g.loadJs=vh,g.map=ry,g.max=Wi,g.min=ys,g.moveToTreeItem=Gl,g.moveToTreeItems=rg,g.nextAnimateFrame=$o,g.nextMicroTask=Cu,g.objsIterator=Qs,g.oneTimeWarning=Xo,g.optionsStr=OS,g.pairToPromise=bh,g.pluckProperty=gh,g.react=j,g.reactArray=ht,g.reactArrayCollection=l_,g.reactArrayCollectionWithUndefined=ah,g.reactArrayWithUndefined=re,g.reactDeepArray=Ol,g.reactDeepArrayWithUndefined=vs,g.reactJson=wt,g.reactJsonCollection=c_,g.reactJsonCollectionWithUndefined=h_,g.reactJsonWithUndefined=Qt,g.reactPlainObject=a_,g.reactPlainObjectWithUndefined=u_,g.reactPosition2Ds=Hd,g.reactPosition2DsSet=d_,g.reactPositions=Nl,g.reactPositionsSet=bp,g.reduce=Iu,g.registerEventCtor=wp,g.registerEventUpdate=lS,g.removeAllTreesCallFunc=py,g.requestAnimationFrameTimeStampTest=b_,g.rpToap=mw,g.saveOnBrowser=C_,g.setCanvasUniformColor=Hp,g.setExtProp=fi,g.setPromiseCancel=_s,g.setSceneObjectTreeItem=ql,g.setValueFromProps=E_,g.sleep=Nu,g.sleepDeprecated=L_,g.step=to,g.stepProcessing=s0,g.throttle=mh,g.timeout=ch,g.toGeoJson=ww,g.track=B,g.uint32ToUint8s=Yp,g.uint8ToHexStr=Mu,g.uint8sToUint32=Jp,g.updateTreeParamsCallFunc=gy,g.webMercToLbh=Ow,g.xyz2N2=T_,g.xyz2N3=O_,g.xyzToLbh=Xh,g.xyzw2N4=N_,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});