earthsdk3 3.8.0-beta.19 → 3.8.0

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
- var EarthSDK3=function(y){"use strict";var kA=Object.defineProperty;var GA=(y,na,Tu)=>na in y?kA(y,na,{enumerable:!0,configurable:!0,writable:!0,value:Tu}):y[na]=Tu;var f=(y,na,Tu)=>GA(y,typeof na!="symbol"?na+"":na,Tu);var ls;function na(){var n;const i=((n=window==null?void 0:window.navigator)==null?void 0:n.userAgent)??"unknown";let t="Unknown";/Windows/.test(i)?t="Windows":/Macintosh/.test(i)?t="MacOS":/Linux/.test(i)?t="Linux":/Android/.test(i)?t="Android":/iOS|iPhone|iPad|iPod/.test(i)&&(t="iOS");let e="Unknown";return/x64|x86_64|Win64|WOW64/.test(i)?e="x64":/x86|i686|Win32/.test(i)?e="x86":/arm64|aarch64/.test(i)?e="arm64":/arm/.test(i)&&(e="arm"),{os:t.toLocaleLowerCase(),arch:e.toLocaleLowerCase()}}const Tu=Date.now();function f0(i){var o;const{os:t,arch:e}=na(),n={version:i.version,commitdate:i.date,commitId:i.commitId,runningTime:(Date.now()-Tu)/1e3/60|0,date:new Date().toLocaleString(),href:((o=window==null?void 0:window.location)==null?void 0:o.href)??"unknown",os:t,arch:e},s={method:"GET",headers:new Headers,redirect:"follow"},a=window.encodeURIComponent(JSON.stringify(n));fetch(`https://account.bjxbsj.cn/api/product/record?product=EarthSDKJS&content=${a}`,s).then(u=>u.text()).then(u=>console.log(u)).catch(u=>console.log("error",u))}y.copyright=void 0;try{const i="earthsdk3",t="3.8.0-beta.19",e="2026-03-13T07:07:43.000Z",n="北京西部世界科技有限公司",r="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",s="d5387d31e478b46fe49f5f55e5595360d39b7c87",o=((Date.now()-1773385663e3)/36e5).toFixed(1),u=`%c🌏 ${i}%c ${t}.${s.slice(0,8)}.${e} (距今${o}个小时)
1
+ var EarthSDK3=function(y){"use strict";var kA=Object.defineProperty;var GA=(y,na,Tu)=>na in y?kA(y,na,{enumerable:!0,configurable:!0,writable:!0,value:Tu}):y[na]=Tu;var f=(y,na,Tu)=>GA(y,typeof na!="symbol"?na+"":na,Tu);var ls;function na(){var n;const i=((n=window==null?void 0:window.navigator)==null?void 0:n.userAgent)??"unknown";let t="Unknown";/Windows/.test(i)?t="Windows":/Macintosh/.test(i)?t="MacOS":/Linux/.test(i)?t="Linux":/Android/.test(i)?t="Android":/iOS|iPhone|iPad|iPod/.test(i)&&(t="iOS");let e="Unknown";return/x64|x86_64|Win64|WOW64/.test(i)?e="x64":/x86|i686|Win32/.test(i)?e="x86":/arm64|aarch64/.test(i)?e="arm64":/arm/.test(i)&&(e="arm"),{os:t.toLocaleLowerCase(),arch:e.toLocaleLowerCase()}}const Tu=Date.now();function f0(i){var o;const{os:t,arch:e}=na(),n={version:i.version,commitdate:i.date,commitId:i.commitId,runningTime:(Date.now()-Tu)/1e3/60|0,date:new Date().toLocaleString(),href:((o=window==null?void 0:window.location)==null?void 0:o.href)??"unknown",os:t,arch:e},s={method:"GET",headers:new Headers,redirect:"follow"},a=window.encodeURIComponent(JSON.stringify(n));fetch(`https://account.bjxbsj.cn/api/product/record?product=EarthSDKJS&content=${a}`,s).then(u=>u.text()).then(u=>console.log(u)).catch(u=>console.log("error",u))}y.copyright=void 0;try{const i="earthsdk3",t="3.8.0",e="2026-03-17T10:22:10.000Z",n="北京西部世界科技有限公司",r="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",s="1e99c385a1837e0da74a77cf540c0719f97d8ba1",o=((Date.now()-177374293e4)/36e5).toFixed(1),u=`%c🌏 ${i}%c ${t}.${s.slice(0,8)}.${e} (距今${o}个小时)
2
2
  %c${r?r+`
3
3
  `:""}当前网站正在使用${i},此软件版权归${n}所有
4
- `;y.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","d5387d31e478b46fe49f5f55e5595360d39b7c87")},get info(){return u},get date(){return"2026-03-13T07:07:43.000Z"},get author(){return"suplyang"},get version(){return"3.8.0-beta.19"},get name(){return"earthsdk3"},get commitId(){return"d5387d31e478b46fe49f5f55e5595360d39b7c87"},print(){console.info(this.info,`
4
+ `;y.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){return OWNERLINK_},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","1e99c385a1837e0da74a77cf540c0719f97d8ba1")},get info(){return u},get date(){return"2026-03-17T10:22:10.000Z"},get author(){return"suplyang"},get version(){return"3.8.0"},get name(){return"earthsdk3"},get commitId(){return"1e99c385a1837e0da74a77cf540c0719f97d8ba1"},print(){console.info(this.info,`
5
5
  font-size: 18px;
6
6
  font-weight: 1000;
7
7
  line-height: 1;
@@ -20,7 +20,7 @@ var EarthSDK3=function(y){"use strict";var kA=Object.defineProperty;var GA=(y,na
20
20
  padding-left: 35px;
21
21
  `)}}),window.g_XE3CopyRights=window.g_XE3CopyRights||{},window.g_XE3CopyRights[i]=y.copyright,window.g_XE3SendProductUsageInfo=window.g_XE3SendProductUsageInfo||!0,window.g_XE3SendProductUsageInfo&&(setTimeout(()=>f0(y.copyright),6e4),setInterval(()=>f0(y.copyright),864e5)),window.g_earthsdk_copyright_print=window.g_earthsdk_copyright_print??!0,window.g_earthsdk_copyright_print&&y.copyright.print()}catch{console.warn("版本信息有误!")}const p0=new Set;function Nu(i,t=i){p0.has(t)||(p0.add(t),console.warn(i))}function gh(i){const t=dd(i),e=()=>t[0][t[1]],n=s=>{try{t[0][t[1]]=s}catch(a){Nu(`setValue error, obj(${t[0].constructor.name}) prop(${t[1]}) error(${a})`)}},r=t[0][t[2]];return[e,n,r]}function hS(){return!0}function cS(){throw new Error("throwOnDestroyed")}function g0(i){for(var t in i)typeof i[t]=="function"&&(i[t]=cS);i.isDestroyed=hS}const np=class np{constructor(){f(this,"_memId",++np._lastMemId);f(this,"_disposers")}get __v_skip(){return!0}get memId(){return this._memId}get disposers(){return this._disposers||(this._disposers=[]),this._disposers}dispose(t){return this.disposers.push(t),t}d(t){return this.dispose(t)}disposeVar(t){return this.disposers.push(()=>t.destroy()),t}dv(t){return this.disposeVar(t)}tryDisposeVar(t){return this.disposers.push(()=>t.tryDestroy()),t}tdv(t){return this.tryDisposeVar(t)}autoDispose(t){return typeof t=="function"?this.dispose(t):this.disposeVar(t)}ad(t){return typeof t=="function"?this.dispose(t):this.disposeVar(t)}isDestroyed(){return!1}destroyImp(){}destroy(){if(this._toDestroyEvent&&this._toDestroyEvent.emit(),this.destroyImp(),this._disposers)try{const t=this._disposers,e=t.length;for(let n=e-1;n>=0;--n)t[n]();t.length=0,this._disposers=void 0}catch(t){console.error(`destroy get error! ${t}`)}return g0(this)}tryDestory(){if(!this.isDestroyed())return this.destroy()}};f(np,"_lastMemId",-1);let $=np,gp;function m0(i){gp=i}Object.defineProperties($.prototype,{toDestroyEvent:{get(){if(this._toDestroyEvent===void 0){if(!gp)throw new Error("Destroyable EventCtor not registered yet!");this._toDestroyEvent=this.disposeVar(new gp)}return this._toDestroyEvent}}});class hd{constructor(t,e,n=!1){f(this,"_freeElements");f(this,"_usedElementsCount");f(this,"_usedElements");f(this,"_nextCreateID");f(this,"_scratchObjs");this._createDefaultFunc=t,this._destroyFunc=e,this._freeElements=[],this._usedElementsCount=0,this._nextCreateID=1,this._scratchObjs=[],n&&(this._usedElements=[])}get usedElementsCount(){return this._usedElementsCount}get freeElementsCount(){return this._freeElements.length}_getCreateID(){return this._nextCreateID++}_create(){let t;return this._freeElements.length>0?t=this._freeElements.pop():t=this._createDefaultFunc&&this._createDefaultFunc()||{},t._cid=this._getCreateID(),t}create(){return this._create()}multiCreate(t){this._scratchObjs.length=0;for(let e=0;e<t;++e)this._scratchObjs.push(this._create());return this._scratchObjs}_destroy(t){this._destroyFunc&&this._destroyFunc(t),t._cid=void 0}destroy(...t){const e=t.length;for(let n=0;n<e;++n)this._destroy(t[n])}}function dS(){return{item:void 0,previous:void 0,next:void 0}}function fS(i){i.item=void 0,i.previous=void 0,i.next=void 0}const v0=new hd(dS,fS,!0);function mp(i,t,e){const n=v0.create();return n.item=i,n.previous=t,n.next=e,n}function _0(i){if(!i)throw new Error("node is undefined!");v0.destroy(i)}function vp(i,t){t.previous&&t.next?(t.previous.next=t.next,t.next.previous=t.previous):t.previous?(t.previous.next=void 0,i.tail=t.previous):t.next?(t.next.previous=void 0,i.head=t.next):(i.head=void 0,i.tail=void 0),t.next=void 0,t.previous=void 0}class y0{constructor(t){f(this,"head");f(this,"tail");f(this,"_length");const{needLength:e}=t||{needLength:!0};this.head=void 0,this.tail=void 0,e&&(this._length=0)}_incrementLength(){typeof this._length=="number"&&++this._length}_decrementLength(){typeof this._length=="number"&&--this._length}_setLength(t){typeof this._length=="number"&&(this._length=t)}get length(){return this._length}get empty(){return!this.head}*[Symbol.iterator](){let t=this.head;for(;t;)yield t,t=t.next}remove(t){if(!t)throw new Error("node is undefined!");vp(this,t),this._decrementLength(),_0(t)}getNode(t){let e=this.head;for(;e!==null;){if(!e)throw new Error("current is undefined!");if(e.item===t)return e;e=e.next}}moveAfter(t,e){if(t!==e){vp(this,e);var n=t.next;t.next=e,this.tail===t?this.tail=e:n&&(n.previous=e),e.next=n,e.previous=t}}moveBefore(t,e){if(t!==e){vp(this,e);var n=t.previous;t.previous=e,this.head===t?this.head=e:n&&(n.next=e),e.previous=n,e.next=t}}insertBefore(t,e){const n=mp(e,t.previous,t);return t.previous&&(t.previous.next=n),t.previous=n,this.head===t&&(this.head=n),this._incrementLength(),n}insertAfter(t,e){const n=mp(e,t,t.next);return t.next&&(t.next.previous=n),t.next=n,this.tail===t&&(this.tail=n),this._incrementLength(),n}_setFirstNode(t){if(this.head||this.tail)throw new Error("_setFirstNode error!");const e=mp(t,void 0,void 0);if(this.head=e,this.tail=e,this._incrementLength(),this._length!==1)throw new Error("_setFirstNode error! this._length !== 1");return e}push(t){return this.tail?this.insertAfter(this.tail,t):this._setFirstNode(t)}pop(){if(!this.tail)throw new Error("DoublyLinkedList is empty!");const t=this.tail.item;return this.remove(this.tail),t}shift(){if(!this.head)throw new Error("DoublyLinkedList is empty!");const t=this.head.item;return this.remove(this.head),t}unshift(t){return this.head?this.insertBefore(this.head,t):this._setFirstNode(t)}removeAll(){let t=this.head;for(;t;){const e=t.next;_0(t),t=e}this.head=void 0,this.tail=void 0,this._setLength(0)}}function pS(){return{func:void 0,scope:void 0,_hasRemoved:!1,_once:!1}}function gS(i){i.func=void 0,i.scope=void 0,i._hasRemoved=!1,i._once=!1}const xo=new hd(pS,gS,!0);class _p{constructor(){f(this,"__dll");f(this,"__currentListenerStack")}get _dll(){return this.__dll=this.__dll??new y0({needLength:!0}),this.__dll}_pushCurrentListener(t){this.__currentListenerStack?Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.push(t):this.__currentListenerStack=[this.__currentListenerStack,t]:this.__currentListenerStack=t}_popCurrentListener(){if(this.__currentListenerStack)Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.pop():this.__currentListenerStack=void 0;else throw new Error("cannot pop!")}_hasCurrentListener(t){return this.__currentListenerStack?Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.indexOf(t)!==-1:this.__currentListenerStack===t:!1}do(...t){if(this.__dll&&!this._dll.empty){let e=this._dll.head;for(;e;){const n=e.item;n._hasRemoved||(this._pushCurrentListener(n),n.func.call(n.scope,...t),this._popCurrentListener());const r=e.next;n._once&&!n._hasRemoved&&(this.remove(e),e=void 0),e&&this._clearHasRemoved(e),e=r}}}get empty(){if(!this.__dll||this._dll.empty)return!0;let t=!0,e=this._dll.head;for(;e;){if(!e.item._hasRemoved){t=!1;break}e=e.next}return t}isHandlerValid(t){return!t.item._hasRemoved}nextHandler(t){if(!t.item._hasRemoved)throw new Error("handler has removed!");let e=t.next;for(;e&&e.item._hasRemoved;)e=e.next;return e}prevHandler(t){if(!t.item._hasRemoved)throw new Error("handler has removed!");let e=t.previous;for(;e&&e.item._hasRemoved;)e=e.previous;return e}moveAfter(t,e){if(t.item._hasRemoved||e.item._hasRemoved)throw new Error("handler or nextHandler has removed!");return this._dll.moveAfter(t,e)}moveBefore(t,e){if(t.item._hasRemoved||e.item._hasRemoved)throw new Error("handler or prevHandler has removed!");return this._dll.moveBefore(t,e)}insertBefore(t,e,n,r=!1){if(t.item._hasRemoved)throw new Error("handler has removed!");const s=xo.create();return s.func=e,s.scope=n,s._once=r,this._dll.insertBefore(t,s)}insertAfter(t,e,n,r=!1){if(t.item._hasRemoved)throw new Error("handler has removed!");const s=xo.create();return s.func=e,s.scope=n,s._once=r,this._dll.insertAfter(t,s)}_clearHasRemoved(t){t.item._hasRemoved&&!this._hasCurrentListener(t.item)&&(xo.destroy(t.item),this._dll.remove(t))}remove(t){if(!t.item||t.item._hasRemoved)throw new Error("handler has removed!");this._hasCurrentListener(t.item)?t.item._hasRemoved=!0:(xo.destroy(t.item),this._dll.remove(t))}removeAll(){if(this.__dll&&!this._dll.empty){let t=this._dll.head;for(;t;){const e=t.next;t.item._hasRemoved||this.remove(t),t=e}}}destroy(){if(!this.__dll)return;let t=this._dll.head;for(;t;){const e=t.next,n=t;this._hasCurrentListener(n.item)||(console.warn("Event has remove item that on current stack!"),console.warn(`${n.item.func.toString()}`)),xo.destroy(n.item),this._dll.remove(n),t=e}this.__dll=void 0,this.__currentListenerStack=void 0}push(t,e,n=!1){const r=xo.create();return r.func=t,r.scope=e,r._once=n,this._dll.push(r)}pop(){const t=this.tail;if(!t)throw new Error("pop error!");this.remove(t)}shift(){const t=this.head;if(!t)throw new Error("shift error!");this.remove(t)}unshift(t,e,n=!1){const r=xo.create();return r.func=t,r.scope=e,r._once=n,this._dll.unshift(r)}get tail(){let t=this._dll.tail;for(;t&&t.item._hasRemoved;)t=t.previous;return t}get head(){let t=this._dll.head;for(;t&&t.item._hasRemoved;)t=t.previous;return t}}class mh{constructor(){f(this,"_listenerHandler");f(this,"_cid")}_reset(t,e){this._listenerHandler=t,this._cid=e}clone(t){return t=t??new mh,t._reset(this._listenerHandler,this._cid),t}get valid(){if(typeof this._listenerHandler<"u"&&typeof this._cid=="number"){const t=this._listenerHandler._cid;if(typeof t<"u"&&this._cid===t)return!0}return!1}}class yp extends mh{}class T extends ${constructor(){super(...arguments);f(this,"__pipe");f(this,"beforeCallback");f(this,"afterCallback")}get _pipe(){return this.__pipe=this.__pipe??new _p,this.__pipe}get empty(){return!this.__pipe||this._pipe.empty}emit(...e){!this.isDestroyed()&&this.beforeCallback&&this.beforeCallback(...e),!this.isDestroyed()&&this._pipe.do(...e),!this.isDestroyed()&&this.afterCallback&&this.afterCallback(...e)}on(e,n,r=!1,s){const a=r?this._pipe.unshift(e,n,!1):this._pipe.push(e,n,!1);return s=s??new yp,s._reset(a,a._cid),s}disposableOn(e,n,r=!1,s){const a=this.on(e,n,r,s);return()=>{a.valid&&this.off(a)}}don(e,n,r=!1,s){return this.disposableOn(e,n,r,s)}disposableWeakOn(e,n,r=!1,s){const a=new $,o=()=>{!a.isDestroyed()&&a.destroy()};return a.dispose(this.disposableOn(e,n,r,s)),a.dispose(this.toDestroyEvent.disposableOn(o)),o}dwon(e,n,r=!1,s){return this.disposableWeakOn(e,n,r,s)}once(e,n,r=!1,s){const a=r?this._pipe.unshift(e,n,!0):this._pipe.push(e,n,!0);return s=s??new yp,s._reset(a,a._cid),s}disposableOnce(e,n,r=!1,s){const a=this.once(e,n,r,s);return()=>a.valid&&this.off(a)}donce(e,n,r=!1,s){const a=this.once(e,n,r,s);return()=>a.valid&&this.off(a)}off(e){if(!e.valid)throw new Error("handler is not valid!");this._pipe.remove(e._listenerHandler),e._reset()}reset(){this._pipe.removeAll()}destroyImp(){this.empty||(Nu("The event is destroying with listeners!"),this._pipe.removeAll())}}m0(T);function Ou(i,t){return t=t??new mh,t._reset(i,i._cid),t}class mS{constructor(){f(this,"__pipe")}get _pipe(){return this.__pipe=this.__pipe??new _p,this.__pipe}get empty(){return!this.__pipe||this._pipe.empty}do(...t){return this._pipe.do(...t)}isHandlerValid(t){return t.valid?this._pipe.isHandlerValid(t._listenerHandler):!1}moveAfter(t,e){if(!t.valid||!e.valid)throw new Error("handler or nextHander is not valid!");return this._pipe.moveAfter(t._listenerHandler,e._listenerHandler)}moveBefore(t,e){if(!t.valid||!e.valid)throw new Error("handler or nextHander is not valid!");return this._pipe.moveAfter(t._listenerHandler,e._listenerHandler)}insertBefore(t,e,n,r=!1,s){if(!t.valid)throw new Error("handler is not valid!");const a=this._pipe.insertBefore(t._listenerHandler,e,n,r);return Ou(a,s)}insertAfter(t,e,n,r=!1,s){if(!t.valid)throw new Error("handler is not valid!");const a=this._pipe.insertAfter(t._listenerHandler,e,n,r);return Ou(a,s)}remove(t){if(!t.valid)throw new Error("handler is not valid!");return this._pipe.remove(t._listenerHandler)}removeAll(){return this._pipe.removeAll()}push(t,e,n=!1,r){const s=this._pipe.push(t,e,n);return Ou(s,r)}pop(){return this._pipe.pop()}shift(){return this._pipe.shift()}unshift(t,e,n=!1,r){const s=this._pipe.unshift(t,e,n);return Ou(s,r)}getTail(t){const e=this._pipe.tail;if(e)return Ou(e,t)}getHead(t){const e=this._pipe.head;if(e)return Ou(e,t)}}class mn extends ${constructor(e,n,r){super();f(this,"_changed");f(this,"_value");f(this,"_oldValue");f(this,"toChangeFunc");this._equalsFunc=n,this._assignFunc=r,this._value=this._assignFunc&&this._assignFunc(e,void 0)||e}get assignFunc(){return this._assignFunc}get equalsFunc(){return this._equalsFunc}equals(e){return this._equalsFunc?this._equalsFunc(this._value,e):this._value===e}set value(e){if(this._equalsFunc?!this._equalsFunc(this._value,e):this._value!==e){if(this.toChangeFunc&&!this.toChangeFunc(e,this._value))return;this._assignFunc?(this._oldValue=this._assignFunc(this._value,this._oldValue),this._value=this._assignFunc(e,this._value)):(this._oldValue=this._value,this._value=e),this._changed&&this._changed.emit(e,this._oldValue)}}get value(){return this._value}get changed(){return this._changed||(this._changed=this.disposeVar(new T)),this._changed}forceChange(){this._changed&&this._changed.emit(this._value,this._value)}}function H(i,t,e){return new mn(i,t,e)}function yt(i){return new mn(i,(t,e)=>t.length!==e.length?!1:t.every((n,r)=>n===e[r]),(t,e)=>{const n=e||new Array(t.length);return n.length=t.length,t.forEach((r,s)=>n[s]=r),n})}function Ee(i){return H(i,(t,e)=>t===void 0||e===void 0?t===void 0&&e===void 0:t.length!==e.length?!1:t.every((n,r)=>n===e[r]),(t,e)=>{if(!t)return;const n=e||new Array(t.length);return n.length=t.length,t.forEach((r,s)=>n[s]=r),n})}function cd(i,t,e){return H(i,(n,r)=>n.length!==r.length?!1:n.every((s,a)=>t&&t(s,r[a])||s===r[a]),(n,r)=>{const s=r||new Array(n.length);return s.length=n.length,n.forEach((a,o)=>{s[o]=e?e(a):a}),s})}function Ra(i,t,e){return H(i,(n,r)=>n===void 0||r===void 0?n===void 0&&r===void 0:n.length!==r.length?!1:n.every((s,a)=>t&&t(s,r[a])||s===r[a]),(n,r)=>{if(!n)return;const s=r||new Array(n.length);return s.length=n.length,n.forEach((a,o)=>{s[o]=e?e(a):a}),s})}function Vt(i){return new mn(i,(t,e)=>t===e||t!==void 0&&e!==void 0&&JSON.stringify(t)===JSON.stringify(e),(t,e)=>{if(t!==void 0)return JSON.parse(JSON.stringify(t))})}function Ce(i){return new mn(i,(t,e)=>t===e||t!==void 0&&e!==void 0&&JSON.stringify(t)===JSON.stringify(e),(t,e)=>{if(t!==void 0)return JSON.parse(JSON.stringify(t))})}function vS(i){return new mn(i,(t,e)=>{if(t===e)return!0;if(t===void 0||e===void 0)return!1;const n=Object.keys(t),r=Object.keys(e);return n.length!==r.length?!1:n.every((s,a)=>s===r[a]&&t[s]===e[s])},(t,e)=>t&&{...t})}function _S(i){return new mn(i,(t,e)=>{if(t===e)return!0;if(t===void 0||e===void 0)return!1;const n=Object.keys(t),r=Object.keys(e);return n.length!==r.length?!1:n.every((s,a)=>s===r[a]&&t[s]===e[s])},(t,e)=>t&&{...t})}function yS(i){return cd(i,(t,e)=>t.every((n,r)=>n===e[r]),t=>[...t])}function wp(i){return Ra(i,(t,e)=>t.every((n,r)=>n===e[r]),t=>[...t])}function wS(i){return cd(i,(t,e)=>JSON.stringify(t)===JSON.stringify(e),t=>JSON.parse(JSON.stringify(t)))}function ES(i){return Ra(i,(t,e)=>JSON.stringify(t)===JSON.stringify(e),t=>JSON.parse(JSON.stringify(t)))}function Io(i){return wp(i)}function w0(i){return Ra(i,(t,e)=>t.length===e.length&&t.every((n,r)=>n.every((s,a)=>s===e[r][a])),t=>t.map(e=>[...e]))}function SS(i){return Ra(i,(t,e)=>t.length===e.length&&t.every((n,r)=>n.every((s,a)=>s===e[r][a])),t=>t.map(e=>[...e]))}function dd(i){const t=i instanceof mn?[i,"value","changed"]:[...i];return t[2]=t[2]||t[1]+"Changed",t}function Ep(i,t,e,n=!1){t[2]=t[2]||t[1]+"Changed";const r=()=>{const s=t[0][t[1]];e?i[0][i[1]]=e(s):i[0][i[1]]=s};return r(),n?t[0][t[2]].disposableWeakOn(r):t[0][t[2]].disposableOn(r)}function CS(i,t,e,n,r=!1){const s=Ep(i,t,e,r),a=Ep(t,i,n,r);return()=>(s(),a())}function X(i,t,e,n=!1){const r=i instanceof mn?[i,"value","changed"]:i,s=t instanceof mn?[t,"value","changed"]:t;return Ep(r,s,e,n)}function mt(i,t,e,n,r=!1){const s=dd(i),a=dd(t);return CS(s,a,e,n,r)}function bS(i,t,e,n=!1){const[r]=gh(t);return mt(i,t,s=>s??e,s=>{if(!(s===e&&r()===void 0))return s},n)}function Du(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(i){var t=Math.random()*16|0,e=i==="x"?t:t&3|8;return e.toString(16)})}function fd(i,t){if(!window||!window.setTimeout||!window.clearTimeout)throw new Error("目前只适合在浏览器中使用!");let e=0;function n(){e>0&&(window.clearTimeout(e),e=0)}function r(...s){n(),e=window.setTimeout(i,t,...s)}return[r,n]}function Sp(i,t,...e){const n=setInterval(i,t,...e);return()=>clearInterval(n)}function Cp(i,t,...e){const n=setTimeout(i,t,...e);return()=>clearTimeout(n)}function pd(i,...t){let e;const n=()=>{const r=performance.now();i(r,...t),e=requestAnimationFrame(n)};return n(),()=>typeof e<"u"&&(cancelAnimationFrame(e),e=void 0)}function Au(i,...t){let e;return e=requestAnimationFrame(()=>{const r=performance.now();i(r,...t)}),()=>typeof e<"u"&&(cancelAnimationFrame(e),e=void 0)}function vh(i,...t){let e=!1,n;return new Promise((r,s)=>{n=s,r()}).then(()=>{!e&&i(...t)}).catch(r=>{console.error(r)}),()=>(e=!0)&&n&&(n("nextMicroTask cancelled!"),n=void 0)}class gd extends T{constructor(e,n,...r){super();f(this,"_cancellFunc");this._nextFunc=e,this.dispose(()=>{this._cancellFunc&&(this._cancellFunc(),this._cancellFunc=void 0)}),r.forEach(s=>this.dispose(s[n?"dwon":"don"](()=>{this.next()})))}next(){this._cancellFunc||(this._cancellFunc=this._nextFunc(()=>(this._cancellFunc=void 0,this.emit())))}flush(){this._cancellFunc&&(this._cancellFunc(),this._cancellFunc=void 0,this.emit())}}class bp extends gd{constructor(...t){super(vh,!1,...t)}}function PS(...i){return new bp(...i)}class xS extends gd{constructor(...t){super(vh,!0,...t)}}function IS(...i){return new bp(...i)}class md extends gd{constructor(...t){super(Au,!1,...t)}}function Ze(...i){return new md(...i)}function MS(i,t){return new md(...i).don(t())}class E0 extends gd{constructor(...t){super(Au,!0,...t)}}function TS(...i){return new E0(...i)}function ia(i,t,e={time:"don",immediate:!1}){const n=new md(...Array.isArray(i)?i:[i]),r=n[e.time??"don"](t);return(e.immediate??!1)&&t(),()=>{r(),n.destroy()}}function _h(i){let t;if(typeof i.next=="function")t=i;else if(typeof i[Symbol.iterator]=="function")t=i[Symbol.iterator]();else throw new Error("iteratorOrIterable error!");return t}function Pp(i,t){let e=!1;const n=_h(i);let r=-1;for(;;){const{done:s,value:a}=n.next();if(s)break;if(t(a,++r)){e=!0;break}}return e}function xp(i,t){return!Pp(i,(n,r)=>!t(n,r))}function yh(i,t,e,n){const r=i;if(!r[t]){const s=n(),a=Object.fromEntries(Object.entries(s).filter(([o,u])=>{const l=Object.getPrototypeOf(e),h=o in l;if(h){const c=u instanceof mn?u.value:u;i[o]=c}return!h}).map(([o,u])=>u instanceof mn?[o,u]:[o,Array.isArray(u)?Ee(u):H(u)]));r[t]=a}return r[t]}function La(i,t){var n;const e=Symbol(`${(n=i==null?void 0:i.constructor)==null?void 0:n.name}-createDefaultProps`);i.constructor.__xbsj_dpSymbol=e,i.constructor.__xbsj_createDefaultProps=t;for(let[r,s]of Object.entries(t()))if(!Reflect.has(i,r)){const a=function(o){var h,c;if(o[e])return;const u=[];let l=Object.getPrototypeOf(o);for(;l;)u.push(l),l=Object.getPrototypeOf(l);u.reverse();for(let d of u){const p=(h=d.constructor)==null?void 0:h.__xbsj_dpSymbol;if(!p)continue;const g=(c=d.constructor)==null?void 0:c.__xbsj_createDefaultProps;g&&yh(o,p,d,g)}};Object.defineProperties(i,{[r]:{get(){return a(this),yh(this,e,i,t)[r].value},set(o){a(this);const u=yh(this,e,i,t)[r];if(!u){console.error("!propObj");debugger}u.value=o}},[`${r}Changed`]:{get(){return a(this),yh(this,e,i,t)[r].changed}},[`${r}React`]:{get(){return a(this),yh(this,e,i,t)[r]}}})}}const wh=new WeakMap;function _s(i,t,e){wh.has(i)||wh.set(i,{});const n=wh.get(i);n[t]=e}function Vi(i,t){return wh.has(i)?wh.get(i)[t]:void 0}function ys(i,t){const e=_h(i);let n=0;for(;;){const{done:r,value:s}=e.next();if(r)break;t(s,n++)}}function Eh(i,t,e){const n=_h(i);let r=e,s=0;for(;;){const{done:a,value:o}=n.next();if(a)break;r=t(r,o,s++)}return r}const NS=i=>++i;function Ip(i){return Eh(i,NS,0)}function ra(i){return Eh(i,(t,e)=>t>e?t:e,Number.NEGATIVE_INFINITY)}function Fa(i){return Eh(i,(t,e)=>t<e?t:e,Number.POSITIVE_INFINITY)}function S0(i,t){let e=i;for(let n of t)e=e[n];return e}function OS(i,t,e){if(t.length===0)throw new Error("props的数量必须大于0");const n=t.length-1,r=t[n];let s=i;for(let a=0;a<n;++a){const o=t[a];typeof s[o]>"u"&&(s[o]={}),s=s[o]}s[r]=e}function*Mo(i,t){const e=_h(i);for(;;){const{done:n,value:r}=e.next();if(n)break;yield S0(r,t)}}class Sh extends ${constructor(){super();f(this,"_innerObj");f(this,"_toChangeEvent");f(this,"_changedEvent");this._innerObj=[],this.dispose(()=>{if(this.length=0,this._innerObj.length>0)throw new Error("this._innerObj.length > 0");this._toChangeEvent&&this._toChangeEvent.reset(),this._innerObj=void 0})}get toChangeEvent(){return this._toChangeEvent||(this._toChangeEvent=new T),this._toChangeEvent}get changedEvent(){return this._changedEvent||(this._changedEvent=new T),this._changedEvent}_resetArray(e){this._toChangeEvent&&this._toChangeEvent.emit([{start:0,deleteCount:this._innerObj.length,items:e}],this);const{length:n}=e;this._innerObj.length=n;for(let r=0;r<n;++r)this._innerObj[r]=e[r];this._changedEvent&&this._changedEvent.emit(this)}splice(e,n,...r){const{length:s}=this._innerObj;e=e>this._innerObj.length?this._innerObj.length:e,e>s?e=s:e<0&&(e+=s,e<0&&(e=0));const a=this._innerObj.length-e;if(n>a?n=a:n<0&&(n=0),arguments.length===1){this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:this._innerObj.length-e,items:[]}],this);const o=this._innerObj.splice(e);return this._changedEvent&&this._changedEvent.emit(this),o}else if(arguments.length===2){this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:n,items:[]}],this);const o=this._innerObj.splice(e,n);return this._changedEvent&&this._changedEvent.emit(this),o}else{this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:n,items:r}],this);const o=this._innerObj.splice(e,n,...r);return this._changedEvent&&this._changedEvent.emit(this),o}}pop(){if(this._innerObj.length===0)return;if(this._toChangeEvent){const n=this._innerObj.length-1,r=1,s=[];this._toChangeEvent.emit([{start:n,deleteCount:r,items:s}],this)}const e=this._innerObj.pop();return this._changedEvent&&this._changedEvent.emit(this),e}push(...e){if(this._toChangeEvent){const r=this._innerObj.length;this._toChangeEvent.emit([{start:r,deleteCount:0,items:e}],this)}const n=this._innerObj.push(...e);return this._changedEvent&&this._changedEvent.emit(this),n}get length(){return this._innerObj.length}set length(e){if(e<0)throw new Error("value < 0");const{length:n}=this._innerObj;if(n!==e){if(this._toChangeEvent){let r,s,a;n>e?(r=e,s=n-e,a=[]):(r=n,s=0,a=new Array(e-n)),this._toChangeEvent.emit([{start:r,deleteCount:s,items:a}],this)}this._innerObj.length=e,this._changedEvent&&this._changedEvent.emit(this)}}get(e){return this._innerObj[e]}set(e,n){const{length:r}=this._innerObj;if(e<0||e>=r)throw new Error("index < 0 || index >= length");this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:1,items:[n]}],this),this._innerObj[e]=n,this._changedEvent&&this._changedEvent.emit(this)}indexOf(e){return this._innerObj.indexOf(e)}[Symbol.iterator](){return this._innerObj[Symbol.iterator]()}}function Mp(i,t,...e){let n=i;for(let r of e){if(!n[r])if(t)n[r]={};else return;n=n[r]}return n}function DS(i,t,e){typeof e>"u"&&(t.endsWith(".gltf")?e="model/gltf+json":t.endsWith(".bin")?e="application/octet-stream":t.endsWith(".glb")?e="model/gltf-binary":t.endsWith(".jpg")||t.endsWith(".jpeg")?e="image/jpeg":t.endsWith(".png")?e="image/png":t.endsWith(".glsl")?e="text/plain":t.endsWith(".json")?e="application/json":t.endsWith(".b3dm")||t.endsWith(".i3dm")||t.endsWith("pnts")||t.endsWith("cmpt")?e="application/octet-stream":console.warn(`save ${t}: MimeType无法确定!`));const n=new Blob([i],{type:e||""});let r=URL.createObjectURL(n);var s=document.createElement("a"),a=new MouseEvent("click");s.download=t,s.href=r,s.dispatchEvent(a),URL.revokeObjectURL(r)}function AS(i,t){const e=document.createElement("a"),n=new MouseEvent("click");e.download=t||"下载",e.href=i,e.dispatchEvent(n)}function RS(){return new Promise((i,t)=>{const e=performance.now();requestAnimationFrame(n=>i(n>e))})}const vd=i=>{let t,e;return e=n=>{n=performance.now(),t=requestAnimationFrame(e),i(n)},t=requestAnimationFrame(e),()=>{cancelAnimationFrame(t)}};function Tp(i,t,e=vd){let n=Number.NEGATIVE_INFINITY,r;function s(u){u-n>t&&r&&(i(...r),r=void 0,n=u)}const a=e&&e(s)||void 0;function o(...u){r=u}return[o,a]}const C0=[];function b0(i,t,e){if(C0.includes(i)){console.warn(`_loadJs ${i} has loaded before!`),t&&t();return}var n=document.getElementsByTagName("head")[0],r=document.createElement("script");r.setAttribute("type","text/javascript"),r.setAttribute("src",i),r.onload=r.onreadystatechange=function(){this.readyState&&this.readyState!=="complete"||(C0.push(i),t&&t(),r.onload=r.onreadystatechange=null)},r.onerror=(s,a,o,u,l)=>{e(l)},n.appendChild(r)}function Np(i,t=!0){if(t){const e=window.L;window.L&&(window.L=void 0);const n=window.define;return window.define&&(window.define=void 0),new Promise((r,s)=>{b0(i,r,s)}).then(()=>(window.define=n,window.L=e,Promise.resolve()))}else return new Promise((e,n)=>{b0(i,e,n)})}async function P0(i,t=""){return new Promise((e,n)=>{var r=new Image;r.crossOrigin=t,r.src=i,r.onload=()=>e(r),r.onerror=s=>n(s)})}class LS extends ${constructor(t){super(),this._owner=t}get owner(){return this._owner}}function FS(i,t){if(i.length%3!==0)throw new Error("positions.length % 3 !== 0");const e=i.length/3;function*n(a){for(let o=0;o<e;++o)yield i[o*3+a]}const r=(t==null?void 0:t.min)??[NaN,NaN,NaN],s=(t==null?void 0:t.max)??[NaN,NaN,NaN];return r[0]=Fa(n(0))??NaN,r[1]=Fa(n(1))??NaN,r[2]=Fa(n(2))??NaN,s[0]=ra(n(0))??NaN,s[1]=ra(n(1))??NaN,s[2]=ra(n(2))??NaN,{min:r,max:s}}async function kS(i,t=fetch){const e=await t(i);return e.ok?await e.arrayBuffer():void 0}function _d(i,...t){if(i>16)throw new Error("length > 16");const e=new Array(i);for(let n=0;n<i;++n)e[n]=t[n]??0;return e}class yd{constructor(t,e){this._xyzw=t,this._length=e}set 0(t){this._xyzw.x=t}set 1(t){this._xyzw.y=t}set 2(t){this._xyzw.z=t}set 3(t){this._xyzw.w=t}get 0(){return this._xyzw.x??0}get 1(){return this._xyzw.y??0}get 2(){return this._xyzw.z??0}get 3(){return this._xyzw.w??0}get length(){return this._length}}function GS(i){return new yd(i,2)}function jS(i){return new yd(i,3)}function VS(i){return new yd(i,4)}class zS{constructor(t,e,n,r){this._array=t,this._length=e,this._start=n,this._stride=r}get length(){return this._length}set 0(t){this._array[this._start+0*this._stride]=t}set 1(t){this._array[this._start+1*this._stride]=t}set 2(t){this._array[this._start+2*this._stride]=t}set 3(t){this._array[this._start+3*this._stride]=t}set 4(t){this._array[this._start+4*this._stride]=t}set 5(t){this._array[this._start+5*this._stride]=t}set 6(t){this._array[this._start+6*this._stride]=t}set 7(t){this._array[this._start+7*this._stride]=t}set 8(t){this._array[this._start+8*this._stride]=t}set 9(t){this._array[this._start+9*this._stride]=t}set 10(t){this._array[this._start+10*this._stride]=t}set 11(t){this._array[this._start+11*this._stride]=t}set 12(t){this._array[this._start+12*this._stride]=t}set 13(t){this._array[this._start+13*this._stride]=t}set 14(t){this._array[this._start+14*this._stride]=t}set 15(t){this._array[this._start+15*this._stride]=t}set 16(t){this._array[this._start+16*this._stride]=t}get 0(){return this._array[this._start+0*this._stride]}get 1(){return this._array[this._start+1*this._stride]}get 2(){return this._array[this._start+2*this._stride]}get 3(){return this._array[this._start+3*this._stride]}get 4(){return this._array[this._start+4*this._stride]}get 5(){return this._array[this._start+5*this._stride]}get 6(){return this._array[this._start+6*this._stride]}get 7(){return this._array[this._start+7*this._stride]}get 8(){return this._array[this._start+8*this._stride]}get 9(){return this._array[this._start+9*this._stride]}get 10(){return this._array[this._start+10*this._stride]}get 11(){return this._array[this._start+11*this._stride]}get 12(){return this._array[this._start+12*this._stride]}get 13(){return this._array[this._start+13*this._stride]}get 14(){return this._array[this._start+14*this._stride]}get 15(){return this._array[this._start+15*this._stride]}get 16(){return this._array[this._start+16*this._stride]}}function BS(i,t,e=0,n=1){return new zS(i,t,e,n)}y.Vector=void 0,(i=>{function t(L,...W){if(L=L||_d(W.length),W.length>L.length)throw new Error("args.length > target.length");return L instanceof Float64Array?L.set(W):I(W,L),L}i.set=t;function e(L,W){const st=L.length;for(let St=0;St<st;++St)if(!W(L[St],St))return!1;return!0}i.every=e;function n(L,W,st){const St=L.length;let Rt=st;for(let zt=0;zt<St;++zt)Rt=W(Rt,L[zt],zt);return Rt}i.reduce=n;function*r(L){for(let W=0;W<L.length;++W)yield L[W]}i.itr=r;const s=(L,W)=>L+=W*W;function a(L){return n(L,s,0)}i.magnitudeSquared=a;function o(L){const W=a(L);return Math.sqrt(W)}i.magnitude=o;function u(L,W=1e-5){const st=a(L);return Math.abs(st-1)<W}i.isNormalized=u;let l;const h=(L,W,st)=>L+W*l[st];function c(L,W){return P(L,W),l=W,n(L,h,0)}i.dot=c;let d;const p=(L,W,st)=>L+=(W-d[st])*(W-d[st]);function g(L,W){return P(L,W),d=W,n(L,p,0)}i.distanceSquared=g;function m(L,W){return Math.sqrt(g(L,W))}i.distance=m;let w;const b=(L,W)=>L===w[W];function v(L,W){return P(L,W),w=W,e(L,b)}i.equals=v;let E,_;const S=(L,W)=>Math.abs(L-E[W])<_;function C(L,W,st=0){return P(L,W),E=W,_=st,e(L,S)}i.equalsEpsilon=C;function P(L,W){if(L.length!==W.length)throw new Error("left.length !== right.length")}function x(L,W,st){const St=L.length;st=st||_d(St),P(L,st);for(let Rt=0;Rt<St;++Rt)st[Rt]=W(L[Rt],Rt);return st}i.op1=x;function M(L,W,st,St){P(L,W),St&&P(L,St);const Rt=L.length;St=St||_d(Rt);for(let zt=0;zt<Rt;++zt)St[zt]=st(L[zt],W[zt]);return St}i.op2=M;const O=L=>L;function I(L,W){return x(L,O,W)}i.clone=I;let N=0;const R=(L,W)=>L*N;function G(L,W,st){return N=W,x(L,R,st)}i.multiplyByScalar=G;function nt(L,W,st=0){const St=a(L);if(St<=st)return;const Rt=Math.sqrt(St);return G(L,1/Rt,W)}i.normalize=nt;function J(L,W){return G(L,-1,W)}i.negate=J;const at=L=>Math.abs(L);function k(L,W){return x(L,at,W)}i.abs=k;const q=L=>L-Math.floor(L);function j(L,W){return x(L,q,W)}i.fract=j;const z=(L,W)=>L-W;function A(L,W,st){return M(L,W,z,st)}i.subtract=A;const B=(L,W)=>L+W;function Y(L,W,st){return M(L,W,B,st)}i.add=Y;const ht=(L,W)=>L*W;function gt(L,W,st){return M(L,W,ht,st)}i.multiply=gt;const ct=(L,W)=>L/W;function Ot(L,W,st){return M(L,W,ct,st)}i.divide=Ot;let ut;const At=(L,W)=>L*(1-ut)+W*ut;function jt(L,W,st,St){return ut=st,M(L,W,At,St)}i.lerp=jt})(y.Vector||(y.Vector={}));function wd(i,t=0,e=1){return i<t?t:i>e?e:i}class Ed extends ${constructor(e,n,r,s,a,o,u,l){super();f(this,"__status");f(this,"_statusChangedEvent");f(this,"_forceCancelFunc");f(this,"_startEvent");f(this,"_progressEvent");f(this,"_completeEvent");f(this,"_cancelEvent");f(this,"_cancelledEvent");f(this,"_errorEvent");f(this,"_finishedEvent");f(this,"_processingID",-1);this._startProcessingFunc=e,this.startFunc=n,this.progressFunc=r,this.completeFunc=s,this.cancelFunc=a,this.cancelledFunc=o,this.errorFunc=u,this.finishedFunc=l,this._status="Initial",this.dispose(()=>{var h;return(h=this._statusChangedEvent)==null?void 0:h.destroy()}),this.dispose(()=>{var h;return(h=this._startEvent)==null?void 0:h.destroy()}),this.dispose(()=>{var h;return(h=this._progressEvent)==null?void 0:h.destroy()}),this.dispose(()=>{var h;return(h=this._completeEvent)==null?void 0:h.destroy()}),this.dispose(()=>{var h;return(h=this._cancelEvent)==null?void 0:h.destroy()}),this.dispose(()=>{var h;return(h=this._cancelledEvent)==null?void 0:h.destroy()}),this.dispose(()=>{var h;return(h=this._errorEvent)==null?void 0:h.destroy()}),this.dispose(()=>{var h;return(h=this._finishedEvent)==null?void 0:h.destroy()}),this.dispose(()=>this.reset())}get startEvent(){return this._startEvent=this._startEvent||new T,this._startEvent}get progressEvent(){return this._progressEvent=this._progressEvent||new T,this._progressEvent}get completeEvent(){return this._completeEvent=this._completeEvent||new T,this._completeEvent}get cancelEvent(){return this._cancelEvent=this._cancelEvent||new T,this._cancelEvent}get cancelledEvent(){return this._cancelledEvent=this._cancelledEvent||new T,this._cancelledEvent}get errorEvent(){return this._errorEvent=this._errorEvent||new T,this._errorEvent}get finishedEvent(){return this._finishedEvent=this._finishedEvent||new T,this._finishedEvent}_completeFunc(e,n){this.processingID===e&&this._status==="Running"&&(this._status="Completed",this.completeFunc&&this.completeFunc(n),this._completeEvent&&this._completeEvent.emit(n),this.finishedFunc&&this.finishedFunc({status:"Completed",value:n}),this._finishedEvent&&this._finishedEvent.emit({status:"Completed",value:n}))}_cancelFunc(e){this._status==="Running"&&(this._status="Cancelling",this.cancelFunc&&this.cancelFunc(e),this._cancelEvent&&this._cancelEvent.emit(e))}_cancelledFunc(e){this._status==="Cancelling"&&(this._status="Cancelled",this.cancelledFunc&&this.cancelledFunc(e),this._cancelledEvent&&this._cancelledEvent.emit(e),this.finishedFunc&&this.finishedFunc({status:"Cancelled",cancelError:e}),this._finishedEvent&&this._finishedEvent.emit({status:"Cancelled",cancelError:e}))}_errorFunc(e,n){this.processingID===e&&this._status==="Running"&&(this._status="Error",this.errorFunc&&this.errorFunc(n),this._errorEvent&&this._errorEvent.emit(n),this.finishedFunc&&this.finishedFunc({status:"Error",error:n}),this._finishedEvent&&this._finishedEvent.emit({status:"Error",error:n}))}_progressFunc(e,n){this.processingID===e&&this._status==="Running"&&(this.progressFunc&&this.progressFunc(n),this._progressEvent&&this._progressEvent.emit(n))}_startFunc(...e){if(this._status==="Initial"){this._status="Running";const n=++this._processingID,r={completeFunc:this._completeFunc.bind(this,n),errorFunc:this._errorFunc.bind(this,n),progressFunc:this._progressFunc.bind(this,n),cancelFunc:this._cancel.bind(this,n),processingID:n},s=this._startProcessingFunc(r,...e);return this._forceCancelFunc=s,this.startFunc&&this.startFunc(...e),this._startEvent&&this._startEvent.emit(...e),n}else return console.warn("this._status !== 'Initial' but start again!"),-1}set _status(e){if(this.__status!==e){const n=this.__status;this.__status=e,this._statusChangedEvent&&this._statusChangedEvent.emit(e,n)}}get _status(){return this.__status}get processingID(){return this._processingID}get statusChangedEvent(){return this._statusChangedEvent||(this._statusChangedEvent=new T),this._statusChangedEvent}reset(e){this._status==="Running"&&this.cancel(e),this._status==="Cancelled"||this._status==="Error"||this._status==="Completed"?this._status="Initial":this._status==="Cancelling"&&console.warn("Cannot reset! (this._status === 'Cancelling')")}get status(){return this._status}cancel(e,n=this.processingID){return this._cancel(n,e)}_cancel(e,n){if(this.processingID===e)if(this._status==="Running"){if(!this._forceCancelFunc)throw new Error("this._forceCancelFunc is undefined!");this._cancelFunc(n);const r=this._forceCancelFunc(n);if(this._forceCancelFunc=void 0,r&&r instanceof Promise)return r.then(()=>{this._cancelledFunc(n)});this._cancelledFunc(n)}else console.warn("this._status !== 'Running' but cancel")}start(...e){try{return this._startFunc(...e)}catch(n){console.error(`processing start error: ${n}`)}}restart(e,...n){try{return this.isRunning&&this.cancel(e),this.isFinished&&this.reset(e),this.isInitial?this._startFunc(...n):(console.warn("restart failed!"),-1)}catch(r){console.error(`processing restart error: ${r}`)}}get isCompleted(){return this._status==="Completed"}get isCancelled(){return this._status==="Cancelled"}get isCancelling(){return this._status==="Cancelling"}get isError(){return this._status==="Error"}get isInitial(){return this._status==="Initial"}get isRunning(){return this._status==="Running"}get isFinished(){return this.isCancelled||this.isCompleted||this.isError}}let Op=class extends Error{};function x0(i,t){typeof i=="function"?i(t):i.cancelFunc=t}class Dp extends Ed{constructor(e=300){super(({progressFunc:n,completeFunc:r,errorFunc:s})=>{const[a,o]=fd(()=>{if(!this._lastDebounceValue)throw new Error("!this._lastDebounceValue");n([this._lastDebounceValue,this._debouncTimes]),this._debouncTimes=0},this._delayTime);return this._d=a,()=>{o()}});f(this,"_lastDebounceValue");f(this,"_debouncTimes",0);f(this,"_d");this._delayTime=e}get delayTime(){return this._delayTime}debounce(...e){this.isRunning?(++this._debouncTimes,this._lastDebounceValue=e,this._d&&this._d()):console.warn("Debouncing is not running!")}}function I0(i,t,...e){const n=new AbortController;let r=n.signal,[s,a]=e;if(a!=null&&a.signal)throw console.error("init?.signal"),new Error("init?.signal");a=a||{},a.signal=r;let o=!1;x0(i,()=>{o=!0,n.abort()});let u=fetch(s,a);return t&&(u=u.then(l=>{if(!l.ok)return l;if(!l.body)throw Error("ReadableStream not yet supported in this browser.");const h=l.headers.get("content-length"),c=h?parseInt(h,10):0;let d=0;return new Response(new ReadableStream({start(p){if(!l.body)throw new Error("!response.body");const g=l.body.getReader();m();function m(){g.read().then(({done:w,value:b})=>{if(w){p.close();return}if(!b)throw new Error("!value");if(!t)throw new Error("!progressFunc");d+=b.byteLength,t(d,c),p.enqueue(b),m()}).catch(w=>{p.error(w)})}}}),{status:l.status,statusText:l.statusText,headers:l.headers})}).catch(l=>{throw o?(l instanceof Error&&l.code!==20&&console.error("error.code !== 20"),console.log("fetching cancelled!"),new Op("fetching cancelled!")):(l instanceof Error&&l.code===20&&console.error("error.code === 20"),l)})),u}function M0(...i){if(i.length>=1)if(typeof i[0]=="function"||typeof i[0]>"u"){const t={};let e=I0(t,...i);const{cancelFunc:n}=t;if(!n)throw new Error("!cancelResult.cancelFunc");return[n,e]}else return I0(...i);throw new Error("cancelableFetch args error!")}class US extends Ed{constructor(e,...n){super(({progressFunc:r,completeFunc:s,errorFunc:a},...o)=>{const u={};let l={loaded:0,total:0};const h=(p,g)=>{l.loaded=p,l.total=g,r(l)},c=this._fetchArgs||o;if(c.length===0)throw new Error("fetchArgs.length === 0");if(M0(u,h,...c).then(e).then(s).catch(p=>{p instanceof Op||a(p)}),!u.cancelFunc)throw new Error("!cancelResult.cancelFunc");return u.cancelFunc});f(this,"_fetchArgs");n.length>0&&(this._fetchArgs=n)}get fetchArgs(){return this._fetchArgs}}function Ap(i,t,e,n){const r="_"+t,s="_"+t+"Changed",a=t+"Changed";Object.defineProperties(i.prototype,{[t]:{get(){return typeof this[r]>"u"&&typeof e<"u"&&(this[r]=e),this[r]},set(o){if(typeof this[r]>"u"&&typeof e<"u"&&(this[r]=e),n?!n(this[r],o):this[r]!==o){const u=this[r];this[r]=o,this[s]&&this[s].emit(o,u)}}},[a]:{get(){return typeof this[s]>"u"&&(this[s]=new T,typeof this.dispose<"u"&&this.dispose(()=>this[s].destroy())),this[s]}}})}class Rp extends Ed{constructor(e,n=!0){super(({progressFunc:r,completeFunc:s,errorFunc:a})=>(this._intervalFunc=r,this._intervalID&&console.error("this._intervalID should be undefined!"),this.leading&&r(),this._intervalID=setInterval(r,this.intervalTime),()=>{if(!this._intervalID)throw console.error("this._intervalID should not be undefined!"),new Error("this._intervalID should not be undefined!");clearInterval(this._intervalID),this._intervalID=void 0}));f(this,"_intervalID");f(this,"_intervalFunc");this.intervalTime=e,this.leading=n,this.dispose(this.intervalTimeChanged.disposableOn(()=>{this._intervalID&&this._intervalFunc&&(clearInterval(this._intervalID),this._intervalID=setInterval(this._intervalFunc,this.intervalTime))}))}}Ap(Rp,"leading",!0),Ap(Rp,"intervalTime",500);function qS(i,t){let e,n;const r=new Promise((a,o)=>{n=o,e=globalThis.setTimeout(()=>{e=void 0,a()},i)}),s=a=>{e&&(clearTimeout(e),e=void 0),n&&n(a??new Op("sleep cancel error!"))};if(typeof t=="boolean"&&t)return[s,r];if(t)return x0(t,s),r}class WS{constructor(t=0,e=0,n=0,r,s){f(this,"_processData");f(this,"_lastUpdateTimeStamp",0);this.startTime=t,this.duration=e,this.delay=n,this.proccessFunc=r,this.completeFunc=s,this._processData={ratio:0,timeStamp:0,timeStampFromStart:0,timeStampFromLastUpdate:0}}update(t){const e=(t-this.startTime)/this.duration;e>=0&&(this._processData.ratio=e,this._processData.timeStamp=t,this._processData.timeStampFromStart=t-this.startTime,this._processData.timeStampFromLastUpdate=t-this._lastUpdateTimeStamp,this._lastUpdateTimeStamp=t,this.proccessFunc&&this.proccessFunc(this._processData),e>=1&&this.completeFunc&&this.completeFunc())}start(){this.startTime=performance.now()+this.delay,this._lastUpdateTimeStamp=this.startTime}}class T0 extends Ed{constructor(e=1e3,n=0,r=vd){let s;function a(){s&&s()}super(({progressFunc:u,completeFunc:l,errorFunc:h})=>{const c=this.startUpdateFunc&&this.startUpdateFunc(this._base.update.bind(this._base))||void 0;return this._base.startTime=performance.now(),this._base.duration=this.duration,this._base.delay=this.delay,this._base.proccessFunc=u,this._base.completeFunc=()=>{c&&c(),l()},this._base.start(),s=c,a});f(this,"_base");f(this,"duration");f(this,"delay");f(this,"startUpdateFunc");this._base=new WS,this.duration=e,this.delay=n,this.startUpdateFunc=r}get startTime(){return this._base.startTime}}class HS extends ${constructor(e){super();f(this,"_target",0);f(this,"_current",0);f(this,"_start",0);f(this,"_timing",new T0(Number.POSITIVE_INFINITY));f(this,"_currentChanged");this._duration=e,this._timing.progressFunc=({ratio:n})=>{n=n<0?0:n>1?1:n;const r=this._start*(1-n)+this._target*n;this._current=r,this._currentChanged&&this._currentChanged.emit(this._target,this._current)},this.dispose(()=>{this._timing.isRunning&&this._timing.cancel(),this._timing.destroy()})}reset(e,n=e){this._timing.isRunning&&this._timing.cancel(),this._target=e,this._current=n,this._start=e}set target(e){if(this._target!==e){this._target=e,this._timing.isRunning&&this._timing.cancel(),this._timing.reset(),this._start=this._current;const n=Math.abs(this._target-this._start);this._timing.duration=n*this._duration,this._timing.start()}}get target(){return this._target}get current(){return this._current}get currentChanged(){return this._currentChanged||(this._currentChanged=new T),this._currentChanged}}function N0(i,t){t=t||[];const e=i.parentNode;return e?N0(e,t.concat(e)):t}function $S(i){const t=i.composedPath&&i.composedPath()||i.path,e=i.target;if(t!=null)return t.indexOf(window)<0?t.concat(window):t;if(e===window)return[window];if(e===null)throw new Error("target === null");return[e].concat(N0(e),window)}function Un(i,t=!1){const{offsetX:e,offsetY:n}=i;let r=e,s=n;{const a=$S(i);for(let o=0;o<a.length;++o){const u=a[o];if(u!==i.currentTarget&&u instanceof HTMLElement)r+=u.clientLeft,s+=u.clientTop,r+=u.offsetLeft,s+=u.offsetTop;else break}}return t?[r*window.devicePixelRatio,s*window.devicePixelRatio]:[r,s]}function Ru(i,t=!1){const e=i.target,n=i.currentTarget||i.__xbsj_lastCurrentTarget__;if(!e||!n)return[i.clientX,i.clientY];const r=e.getBoundingClientRect(),s=n.getBoundingClientRect(),a=r.left+i.offsetX,o=r.top+i.offsetY,u=a-s.left,l=o-s.top;return t?[u*window.devicePixelRatio,l*window.devicePixelRatio]:[u,l]}class O0 extends ${constructor(e){super();f(this,"_clickEvent",new T);f(this,"_dbclickEvent",new T);f(this,"_downEvent",new T);f(this,"_upEvent",new T);f(this,"_moveEvent",new T);f(this,"_debouncing",new Dp(300));this.dispose(()=>{this._clickEvent.destroy(),this._dbclickEvent.destroy(),this._downEvent.destroy(),this._upEvent.destroy(),this._moveEvent.destroy(),this._debouncing.destroy()});let n=!1,r=[0,0],s=!1;this._debouncing.progressFunc=([[h,c,d],p])=>{p===1?this._clickEvent.emit(h,c,d):p>=2?this._dbclickEvent.emit(h,c,d):console.error("point click should not be here!")},this._debouncing.start(),this.dispose(()=>{this._debouncing.isRunning&&this._debouncing.cancel(),this._debouncing.destroy()});const a=h=>{n=!0;const[c,d]=Un(h);r[0]=c,r[1]=d,this._downEvent.emit(c,d,h)},o=h=>{const[c,d]=Un(h);n&&!s&&this._debouncing.debounce(c,d,h),n=!1,s=!1,this._upEvent.emit(c,d,h)},u=h=>{const[c,d]=Un(h);if(n&&!s){const[p,g]=r;(Math.abs(c-p)>3||Math.abs(d-g)>3)&&(s=!0)}this._moveEvent.emit(c,d,h)},l=()=>{n=!1,s=!1};e.addEventListener("pointerdown",a),e.addEventListener("pointerup",o),e.addEventListener("pointermove",u),e.addEventListener("pointerout",l),this.dispose(()=>{e.removeEventListener("pointerdown",a),e.removeEventListener("pointerup",o),e.removeEventListener("pointermove",u),e.removeEventListener("pointerout",l)})}get clickEvent(){return this._clickEvent}get dbclickEvent(){return this._dbclickEvent}get downEvent(){return this._downEvent}get upEvent(){return this._upEvent}get moveEvent(){return this._moveEvent}}class Lp extends ${constructor(){super();f(this,"_pickRectEvent",this.disposeVar(new T));f(this,"_updateRectEvent",this.disposeVar(new T));f(this,"_pointerActionEvent",this.disposeVar(new T));f(this,"_active",this.disposeVar(H(!1)));f(this,"_pickRect",{left0:0,top0:0,left1:0,top1:0});let e=0,n=0,r=0,s=0;this.dispose(this._pointerActionEvent.disposableOn(({type:a,left:o,top:u})=>{a==="PointerDown"?(this._active.value=!0,e=o,n=u,r=o,s=u,this._setPickRect({left0:e,top0:n,left1:r,top1:s}),this._updateRectEvent.emit(this._pickRect)):a==="PointerMove"?this._active.value&&(r=o,s=u,this._setPickRect({left0:e,top0:n,left1:r,top1:s}),this._updateRectEvent.emit(this._pickRect)):a==="PointerUp"&&this._active.value&&(this._active.value=!1,r=o,s=u,this._setPickRect({left0:e,top0:n,left1:r,top1:s}),this._updateRectEvent.emit(this._pickRect),this._pickRectEvent.emit(this._pickRect))}))}_setPickRect({left0:e,left1:n,top0:r,top1:s}){this._pickRect.left0=e,this._pickRect.left1=n,this._pickRect.top0=r,this._pickRect.top1=s}pointerDown(e,n){this._pointerActionEvent.emit({type:"PointerDown",left:e,top:n})}pointerMove(e,n){this._pointerActionEvent.emit({type:"PointerMove",left:e,top:n})}pointerUp(e,n){this._pointerActionEvent.emit({type:"PointerUp",left:e,top:n})}reset(){this._setPickRect({left0:0,top0:0,left1:0,top1:0}),this._updateRectEvent.emit(this._pickRect),this._pickRectEvent.emit(this._pickRect)}get activeEvent(){return this._active.changed}get updateRectEvent(){return this._updateRectEvent}get pickRectEvent(){return this._pickRectEvent}static getLeftTopAndSize(e,n){n=n||{left:0,top:0,width:0,height:0,forward:!0};const{left0:r,top0:s,left1:a,top1:o}=e;return n.width=Math.abs(r-a),n.height=Math.abs(s-o),n.left=Math.min(r,a),n.top=Math.min(s,o),n.forward=a>r,n}static contains(e,n,r){const{left:s,top:a,width:o,height:u}=r;return e>s&&e<=s+o&&n>=a&&n<=a+u}}class XS extends Lp{constructor(t){super();const e=this.disposeVar(new O0(t));this.dispose(e.downEvent.disposableOn((a,o,u)=>u.altKey&&this.pointerDown(a,o))),this.dispose(e.moveEvent.disposableOn((a,o)=>this.pointerMove(a,o))),this.dispose(e.upEvent.disposableOn((a,o)=>this.pointerUp(a,o)));const n=document.createElement("div");n.style.backgroundColor="rgba(0, 0, 0, 0)",n.style.border="2px dashed red",n.style.position="absolute",n.style.boxSizing="border-box",n.style.pointerEvents="none",n.style.height="0px",n.style.width="0px",n.style.left="0px",n.style.top="0px",n.style.display="none",t.appendChild(n),this.dispose(()=>t.removeChild(n)),this.dispose(this.activeEvent.disposableOn(a=>{n.style.display=a?"block":"none"}));const r=()=>{this.reset()};t.addEventListener("contextmenu",r),this.dispose(()=>t.removeEventListener("contextmenu",r));const s={left:0,top:0,width:0,height:0,forward:!1};this.dispose(this.updateRectEvent.disposableOn(a=>{if(Lp.getLeftTopAndSize(a,s)){const{left:o,top:u,width:l,height:h}=s;n.style.height=`${h|0}px`,n.style.width=`${l|0}px`,n.style.left=`${o|0}px`,n.style.top=`${u|0}px`}}))}}class Fr extends Error{}function ka(i,t){Vi(i,"_promise_cancel")&&console.warn("setPromiseCancel warn: promise has cancelFunc!"),_s(i,"_promise_cancel",t)}function Lu(i){return Vi(i,"_promise_cancel")}function Fu(i){return!!Lu(i)}function Fp(i,t){const e=Lu(i);return e?(e(t),!0):!1}function kp(i){const[t,e]=i;return ka(e,t),e}function ku(i){let t;const e=new Promise((n,r)=>{t=r,i.then(n).catch(r)});return ka(e,t),e}function YS(i){let t,e;var n=new Promise((r,s)=>{e=i.disposableOn((...a)=>{e&&e(),r(a)}),t=a=>{e&&e(),s(a)}});return[t,n]}function JS(i){const t=new T,e=new T;return i.then(n=>{t.isDestroyed()||t.emit(n)}).catch(n=>{e.isDestroyed()||e.emit(n)}),[t,e]}class Gp extends ${constructor(){super();f(this,"_cancelled",!1);f(this,"_cancelError");f(this,"_promiseSet",new Set);f(this,"_disposer")}get disposer(){return this._disposer=this._disposer||new $,this._disposer}destroyImp(){this.finally()}cancel(e){var n;if(!this._cancelled){this._cancelled=!0,(n=this._disposer)==null||n.destroy(),this._cancelError=e;for(let r of this._promiseSet)Fp(r);this._promiseSet.clear()}}get cancelFuncsNum(){return Eh(this._promiseSet,e=>e+1,0)}finally(){this._disposer&&!this._disposer.isDestroyed()&&this._disposer.destroy(),this._promiseSet.clear()}check(){if(this._cancelled)throw this._cancelError??new Fr("cancel from CancelManager!")}promise(e){return this._promiseSet.add(e),e.finally(()=>(this._promiseSet.delete(e),this.check()))}promiseAny(e){const n=[],r=e.map(s=>(this._promiseSet.add(s),Fu(s)&&n.push(Lu(s)),s.finally(()=>this._promiseSet.delete(s))));return Promise.any(r).finally(()=>(n.forEach(s=>s(new Fr("cancel from promiseAny!"))),n.length=0))}promiseAll(e){const n=[],r=e.map(s=>(this._promiseSet.add(s),Fu(s)&&n.push(Lu(s)),s.finally(()=>this._promiseSet.delete(s))));return Promise.all(r).finally(()=>(n.forEach(s=>s(new Fr("cancel from promiseAll!"))),n.length=0))}promiseRace(e){const n=[],r=e.map(s=>(this._promiseSet.add(s),Fu(s)&&n.push(Lu(s)),s.finally(()=>this._promiseSet.delete(s))));return Promise.race(r).finally(()=>(n.forEach(s=>s(new Fr("cancel from promiseRace!"))),n.length=0))}}class vn extends ${constructor(e){super();f(this,"_status","Initial");f(this,"_completeEvent");f(this,"_errorEvent");f(this,"_completeFunc");f(this,"_errorFunc");f(this,"_cancelFunc");f(this,"_runningId",-1);this._startFunc=e,this.dispose(()=>this.isRunning&&this.cancel())}get errorEvent(){return this._errorEvent||(this._errorEvent=new T),this._errorEvent}get completeEvent(){return this._completeEvent||(this._completeEvent=new T),this._completeEvent}get errorFunc(){return this._errorFunc}get completeFunc(){return this._completeFunc}set errorFunc(e){this._errorFunc!==e&&(this._errorFunc=e)}set completeFunc(e){this._completeFunc!==e&&(this._completeFunc=e)}start(...e){if(this._status!=="Initial")return;const n=++this._runningId;this._status="Running",this._cancelFunc=this._startFunc({completeFunc:r=>{var s;n===this._runningId&&this._status==="Running"&&(this._status="Completed",this._completeFunc&&this._completeFunc(r),(s=this._completeEvent)==null||s.emit(r))},errorFunc:r=>{var s;n===this._runningId&&this._status==="Running"&&(this._status="Error",this._errorFunc&&this._errorFunc(r),(s=this._errorEvent)==null||s.emit(r))},runningingID:n},...e)}cancel(e=new Fr("")){var n;if(this._status==="Running"){if(!this._cancelFunc)throw new Error("!this._cancelFunc");this._status="Error",this._errorFunc&&this._errorFunc(e),(n=this._errorEvent)==null||n.emit(e),this._cancelFunc(e),this._cancelFunc=void 0}}reset(){this._status==="Running"&&console.error("processing cannot reset while running. you can first cancel it!"),(this._status==="Completed"||this._status==="Error")&&(this._status="Initial")}get status(){return this._status}get isInitial(){return this._status==="Initial"}get isRunning(){return this._status==="Running"}get isCompleted(){return this._status==="Completed"}get isError(){return this._status==="Error"}get runningId(){return this._runningId}restart(e=new Fr(""),...n){this.isRunning&&this.cancel(e),this.reset(),this.start(...n)}restartIfNotRunning(...e){this.isRunning||(this.reset(),this.start(...e))}}function Ch(i){return(t,...e)=>{const n=new Gp,{completeFunc:r,errorFunc:s}=t,a=i(n,...e).then(r).catch(s).finally(()=>n.destroy());return ka(a,n.cancel.bind(n)),o=>Fp(a,o)}}class ZS extends vn{constructor(){super(({errorFunc:e},n,r)=>{try{const[s,a]=fd(n,r);return this._doFunc=s,a}catch(s){return e(s),()=>{}}});f(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}class KS extends vn{constructor(e,n){super(({errorFunc:r})=>{try{const[s,a]=fd(e,n);return this._doFunc=s,a}catch(s){return r(s),()=>{}}});f(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}function QS(i){return new vn(Ch((t,...e)=>t.promise(i(...e))))}function tC(i,...t){return new vn(Ch(e=>e.promise(i(...t))))}function Sd(i){return QS((...t)=>{const e=i(...t);return Fu(e)?e:ku(e)})}function jp(i,...t){return tC(()=>{const e=i(...t);return Fu(e)?e:ku(e)})}function eC(i){let t;const e=new Promise((n,r)=>{t=()=>{i(),r()}});return ka(e,t),e}function nC(i,...t){const e=new Gp,n=i(e,...t).finally(()=>e.destroy());return ka(n,e.cancel.bind(e)),n}function zi(i){return new vn(Ch(i))}function iC(i,...t){return new vn(Ch(e=>i(e,...t)))}function D0(i,...t){const e=new AbortController;let n=e.signal,[r,s]=t;if(s!=null&&s.signal)throw console.error("init?.signal"),new Error("init?.signal");s=s||{},s.signal&&console.warn("revocableFetch error: init.signal would be override!"),s.signal=n;let a=!1;const o=()=>{a=!0,e.abort()};let u=fetch(r,s);return i&&(u=u.then(l=>{if(!l.ok)return l;if(!l.body)throw Error("ReadableStream not yet supported in this browser.");const h=l.headers.get("content-length");h||console.warn("response.headers.get('content-length') is undefined... cannot get contentLength!");const c=h?parseInt(h,10):0;let d=0;return new Response(new ReadableStream({start(p){if(!l.body)throw new Error("!response.body");const g=l.body.getReader();m();function m(){g.read().then(({done:w,value:b})=>{if(w){p.close();return}if(!b)throw new Error("!value");if(!i)throw new Error("!progressFunc");d+=b.byteLength,i(d,c),p.enqueue(b),m()}).catch(w=>{p.error(w)})}}}),{status:l.status,statusText:l.statusText,headers:l.headers})}).catch(l=>{throw a?(l instanceof Error&&l.code!==20&&console.error("error.code !== 20"),console.log("fetching cancelled!"),new Fr(`fetching cancelled! error: ${l}`)):(l instanceof Error&&l.code===20&&console.error("error.code === 20"),l)})),ka(u,o),u}function rC(i,...t){return D0(i,...t)}function Vp(...i){return D0(void 0,...i)}function sC(){return Sd(Vp)}function aC(...i){return jp(Vp,...i)}function zp(i,...t){let e=-1;var n=new Promise((r,s)=>{i.isRunning&&i.cancel(),i.reset();const a=new $;a.dispose(i.completeEvent.disposableOn(o=>{if(r(o),a.isDestroyed()){debugger;console.error(`disposer is destroyed! ${a}`);return}a.destroy()})),a.dispose(i.errorEvent.disposableOn(o=>{if(s(o),a.isDestroyed()){debugger;console.error(`disposer is destroyed! ${a}`);return}a.destroy()})),i.start(...t),e=i.runningId});return[r=>e===i.runningId&&i.isRunning&&i.cancel(r),n]}function ws(i,t,...e){try{return t(...e)}catch(n){i(n)}}function oC(){return new vn(({completeFunc:i,errorFunc:t},e)=>Au(()=>ws(t,()=>{e&&e(),i()})))}function uC(i){return new vn(({completeFunc:t,errorFunc:e})=>Au(()=>ws(e,()=>{i&&i(),t()})))}function lC(){return new vn(({completeFunc:i,errorFunc:t},e)=>vh(()=>{ws(t,()=>{e&&e(),i()})}))}function hC(i){return new vn(({completeFunc:t,errorFunc:e})=>vh(()=>{ws(e,()=>{i&&i(),t()})}))}function A0(){return new vn(({completeFunc:i,errorFunc:t},e,n)=>Cp(()=>{ws(t,()=>{e&&e(),i()})},n??1e3))}function R0(i,t){return new vn(({completeFunc:e,errorFunc:n})=>Cp(()=>{ws(n,()=>{i&&i(),e()})},t??1e3))}function cC(){return new vn(({errorFunc:i},t,e=1e3)=>Sp(()=>ws(i,t),e))}function dC(i,t=1e3){return new vn(({errorFunc:e})=>Sp(()=>ws(e,i),t))}function bh(){return new vn(({errorFunc:i},t)=>pd(e=>ws(i,t,e)))}function Gu(i){return new vn(({errorFunc:t})=>pd(e=>ws(t,i,e)))}function Ph(i,...t){let e,n;const r=new Promise((a,o)=>{n=o,e=globalThis.setTimeout(()=>{e=void 0,a(t)},i)});return ka(r,a=>{e&&(clearTimeout(e),e=void 0),n&&n(a??new Fr("sleep cancel error!"))}),r}function fC(){return Sd(Ph)}function pC(i,...t){return jp(Ph,i,...t)}function To(i,t,...e){return i.promise(kp(zp(zi(async(n,...r)=>(i.disposer.dispose(()=>{n.isDestroyed()||n.cancel()}),await t(n,...r))),...e)))}function gC(i,t,...e){return i.promise(kp(zp(t,...e)))}class mC extends vn{constructor(){super(({errorFunc:e},n,r)=>{try{const[s,a]=Tp(n,r);return this._doFunc=s,a}catch(s){return e(s),()=>{}}});f(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}class vC extends vn{constructor(e,n){super(({errorFunc:r})=>{try{const[s,a]=Tp(e,n);return this._doFunc=s,a}catch(s){return r(s),()=>{}}});f(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}class Cd extends ${constructor(e=1e3,n=vd){super();f(this,"_speed");f(this,"_speedChangedEvent");f(this,"_duration");f(this,"_durationChangedEvent");f(this,"_loop");f(this,"startUpdateFunc");f(this,"_updateBindThis");f(this,"_cancelStartUpdateFunc");f(this,"_startTimeStamp");f(this,"_playingChangedEvent");f(this,"_startPlayingEvent");f(this,"_stopPlayingEvent");f(this,"_loopChangedEvent");f(this,"_currentTime",this.disposeVar(H(0)));this._speed=1,this._duration=e,this._loop=!1,this.startUpdateFunc=n,this._updateBindThis=this._update.bind(this),this.dispose(()=>{this._cancelStartUpdateFunc&&(this._cancelStartUpdateFunc(),this._cancelStartUpdateFunc=void 0)}),this._startTimeStamp=Number.NaN,this.dispose(()=>{this._startPlayingEvent&&this._startPlayingEvent.reset(),this._stopPlayingEvent&&this._stopPlayingEvent.reset()})}get startPlayingEvent(){return this._startPlayingEvent=this._startPlayingEvent||new T,this._startPlayingEvent}get stopPlayingEvent(){return this._stopPlayingEvent=this._stopPlayingEvent||new T,this._stopPlayingEvent}get currentTimeChangedEvent(){return this._currentTime.changed}get loopChangedEvent(){return this._loopChangedEvent=this._loopChangedEvent||new T,this._loopChangedEvent}set loop(e){this._loop!==e&&(this._loop=e,this._loopChangedEvent&&this._loopChangedEvent.emit(this._loop))}get loop(){return this._loop}_update(e){if(Number.isNaN(this._startTimeStamp))console.warn("Number.isNaN(this._startTimeStamp)");else{const n=(e-this._startTimeStamp)*this._speed;this._setCurrentTimeInner(n)}}get currentTime(){return this._currentTime.value}set currentTime(e){this._setCurrentTimeInner(e),this._resetStartTime()}_setCurrentTimeInner(e){this._currentTime.value!==e&&(this._duration<=0?this._currentTime.value=0:e<0?this.loop?this._currentTime.value=this._duration+e%this._duration:(this._currentTime.value=0,this.playing&&this._stopPlaying()):e>this._duration?this.loop?this._currentTime.value=e%this._duration:(this._currentTime.value=this._duration,this.playing&&this._stopPlaying()):this._currentTime.value=e)}get durationChangedEvent(){return this._durationChangedEvent||(this._durationChangedEvent=new T),this._durationChangedEvent}get duration(){return this._duration}set duration(e){var n;if(e<0)console.warn("duration sholud greater than 0!");else if(this._duration!==e){const r=this._duration;this._duration=e,this._currentTime.value>this._duration&&(this._currentTime.value=this._duration),(n=this._durationChangedEvent)==null||n.emit(this._duration,r)}}get speedChangedEvent(){return this._speedChangedEvent||(this._speedChangedEvent=new T),this._speedChangedEvent}get speed(){return this._speed}set speed(e){var n;if(this._speed!==e&&e!==0){const r=this._speed;this._speed=e,this._resetStartTime(),(n=this._speedChangedEvent)==null||n.emit(this._speed,r)}}_resetStartTime(){this._startTimeStamp=performance.now()-this._currentTime.value/this._speed}_startPlaying(){var e,n;this._resetStartTime(),this._cancelStartUpdateFunc=this.startUpdateFunc(this._updateBindThis),(e=this._startPlayingEvent)==null||e.emit(this._currentTime.value),(n=this._playingChangedEvent)==null||n.emit(!0)}_stopPlaying(){var e,n;if(!this._cancelStartUpdateFunc)throw new Error("this._cancelStartUpdateFunc is undefined!");this._cancelStartUpdateFunc(),this._cancelStartUpdateFunc=void 0,(e=this._stopPlayingEvent)==null||e.emit(this._currentTime.value),(n=this._playingChangedEvent)==null||n.emit(!1)}get playingChangedEvent(){return this._playingChangedEvent||(this._playingChangedEvent=new T),this._playingChangedEvent}get playing(){return!!this._cancelStartUpdateFunc}set playing(e){!!this._cancelStartUpdateFunc!==e&&(e?this._startPlaying():this._stopPlaying())}}class xh extends ${constructor(e){super();f(this,"_stop",this.disposeVar(H(0)));f(this,"_current",this.disposeVar(H(0)));f(this,"_start",this.disposeVar(H(0)));f(this,"_player",this.disposeVar(new Cd(200)));this.dispose(this._player.currentTimeChangedEvent.disposableOn(n=>{let r=n/this._player.duration;r=r>1?1:r<0?0:r;const s=this._start.value,a=this._stop.value;this._current.value=s+(a-s)*r})),this.duration=e}get current(){return this._current.value}get currentChanged(){return this._current.changed}get source(){return this._start.value}get sourceChanged(){return this._start.changed}get target(){return this._stop.value}get targetChanged(){return this._stop.changed}get duration(){return this._player.duration}set duration(e){this._player.duration=e}set target(e){this._start.value=this._current.value,this._stop.value=e,this._player.currentTime=0,this._player.playing=!0}reset(e){this._start.value=e,this._current.value=e,this._stop.value=e,this._player.playing=!1}}let L0=-1;class Fe extends T{constructor(t,e,n,r){super(),this._domElement=t,this._type=e,this.callback=r;const s=a=>(a.__xbsj_listenerNo__=++L0,a.__xbsj_listenerTime__=Date.now(),a.__xbsj_lastCurrentTarget__=a.currentTarget,this.emit(a),this.callback&&this.callback(a));this._domElement.addEventListener(this._type,s,n),this.dispose(()=>this._domElement.removeEventListener(this._type,s,n))}static getLastLisenNo(){return L0}static getCurrentTarget(t){return t.__xbsj_lastCurrentTarget__}static getListenerNo(t){return t.__xbsj_listenerNo__}static getListenerTime(t){return t.__xbsj_listenerTime__}static on(t,e){const n=Fe.getLastLisenNo();return t.disposableOn(r=>{const s=Fe.getListenerNo(r);(s===void 0||s>n)&&e(r)})}get element(){return this._domElement}static create(t,e,n){return new Fe(t,e,n)}}class Bp extends ${constructor(){super();f(this,"_clickEvent",this.disposeVar(new T));f(this,"_dbclickEvent",this.disposeVar(new T));f(this,"_pointerdownEvent",this.disposeVar(new T));f(this,"_pointerupEvent",this.disposeVar(new T));f(this,"_pointermoveEvent",this.disposeVar(new T));f(this,"_pointeroutEvent",this.disposeVar(new T));f(this,"dbClickDelayTime",300);f(this,"nativeClickDelayTime",500);f(this,"clickMovementTolerantPixelSize",3);f(this,"debugging",!1);f(this,"_enabled",this.disposeVar(H(!0)));const e=this.disposeVar(zi(async r=>{do{const s=await To(r,u=>new Promise((l,h)=>{u.disposer.dispose(h),u.disposer.dispose(Fe.on(this._pointerdownEvent,l))})),a=Un(s);if(this.debugging&&console.log(`鼠标按下 ${a.toString()}`),!await To(r,u=>new Promise((l,h)=>{u.disposer.dispose(h);const c=setTimeout(()=>l(!0),this.nativeClickDelayTime);u.disposer.dispose(()=>clearTimeout(c)),u.disposer.dispose(Fe.on(this._pointermoveEvent,d=>{const[p,g]=Un(d),[m,w]=a;(Math.abs(p-m)>3||Math.abs(g-w)>3)&&l(!1)})),u.disposer.dispose(Fe.on(this._pointeroutEvent,()=>l(!1))),u.disposer.dispose(Fe.on(this._pointerupEvent,()=>l(!0)))}))){this.debugging&&console.log("取消1");continue}const o=await To(r,u=>new Promise((l,h)=>{u.disposer.dispose(h);const c=setTimeout(()=>l("timeout"),this.dbClickDelayTime);u.disposer.dispose(()=>clearTimeout(c)),u.disposer.dispose(Fe.on(this._pointermoveEvent,d=>{const[p,g]=Un(d),[m,w]=a;(Math.abs(p-m)>3||Math.abs(g-w)>3)&&l("moved")})),u.disposer.dispose(Fe.on(this._pointerdownEvent,l)),u.disposer.dispose(Fe.on(this._pointeroutEvent,()=>l("pointouted"))),u.disposer.dispose(Fe.on(this._pointerupEvent,()=>l("pointuped")))}));if(typeof o=="string"){this.debugging&&console.log(`触发单击事件!取消双击监听!error: ${o}`),this._clickEvent.emit(s);continue}if(!await To(r,u=>new Promise((l,h)=>{u.disposer.dispose(h);const c=setTimeout(()=>l(!1),this.nativeClickDelayTime);u.disposer.dispose(()=>clearTimeout(c)),u.disposer.dispose(Fe.on(this._pointermoveEvent,d=>{const[p,g]=Un(d),[m,w]=a;(Math.abs(p-m)>3||Math.abs(g-w)>3)&&l(!1)})),u.disposer.dispose(Fe.on(this._pointeroutEvent,()=>l(!1))),u.disposer.dispose(Fe.on(this._pointerupEvent,()=>l(!0)))}))){this.debugging&&console.log("取消2");continue}this.debugging&&console.log("触发双击事件!"),this._dbclickEvent.emit(o)}while(!0)})),n=r=>{r?e.restart():e.isRunning&&e.cancel()};n(this.enabled),this.dispose(this.enabledChanged.disposableOn(n))}get clickEvent(){return this._clickEvent}get dbclickEvent(){return this._dbclickEvent}pointerDown(e){this._pointerdownEvent.emit(e)}pointerUp(e){this._pointerupEvent.emit(e)}pointerMove(e){this._pointermoveEvent.emit(e)}pointerOut(e){this._pointeroutEvent.emit(e)}get enabled(){return this._enabled.value}set enabled(e){this._enabled.value=e}get enabledChanged(){return this._enabled.changed}}class _C extends ${constructor(e,n){super();f(this,"_pointerClick",this.disposeVar(new Bp));this._div=e;const{div:r,pointerClick:s}=this,a=h=>s.pointerDown(h),o=h=>s.pointerMove(h),u=h=>s.pointerOut(h),l=h=>s.pointerUp(h);r.addEventListener("pointerdown",a,n),r.addEventListener("pointermove",o,n),r.addEventListener("pointerout",u,n),r.addEventListener("pointerup",l,n),this.dispose(()=>{r.removeEventListener("pointerdown",a,n),r.removeEventListener("pointermove",o,n),r.removeEventListener("pointerout",u,n),r.removeEventListener("pointerup",l,n)})}get div(){return this._div}get pointerClick(){return this._pointerClick}get clickEvent(){return this.pointerClick.clickEvent}get dbclickEvent(){return this.pointerClick.dbclickEvent}}class F0 extends ${constructor(){super();f(this,"_hoverEvent",this.disposeVar(new T));f(this,"_hoverOutEvent",this.disposeVar(new T));f(this,"_pointerdownEvent",this.disposeVar(new T));f(this,"_pointerupEvent",this.disposeVar(new T));f(this,"_pointermoveEvent",this.disposeVar(new T));f(this,"_pointeroutEvent",this.disposeVar(new T));f(this,"delayTime",800);const e=this.disposeVar(A0()),n=l=>{this._hoverOutEvent.emit()},r=l=>{this._hoverOutEvent.emit()};let s;const a=()=>{if(!s){console.warn("!lastPointerEvent");return}this._hoverEvent.emit(s)},o=l=>{s=l,e.restart(void 0,a,this.delayTime),this._hoverOutEvent.emit()},u=l=>{e.cancel(),this._hoverOutEvent.emit()};this.dispose(this._pointerdownEvent.disposableOn(n)),this.dispose(this._pointerupEvent.disposableOn(r)),this.dispose(this._pointermoveEvent.disposableOn(o)),this.dispose(this._pointeroutEvent.disposableOn(u))}get hoverEvent(){return this._hoverEvent}get hoverOutEvent(){return this._hoverOutEvent}pointerDown(e){this._pointerdownEvent.emit(e)}pointerUp(e){this._pointerupEvent.emit(e)}pointerMove(e){this._pointermoveEvent.emit(e)}pointerOut(e){this._pointeroutEvent.emit(e)}}class yC extends ${constructor(e,n=1500){super();f(this,"_hoverEvent",new T);f(this,"_hoverOutEvent",new T);const r=new Dp(n);this.dispose(()=>r.destroy());let s=0,a=0,o;r.progressFunc=()=>this._hoverEvent.emit(s,a,o);const u=d=>{!r.isRunning&&r.restart(),o=d,[s,a]=Un(d),r.debounce(),this._hoverOutEvent.emit()},l=d=>{!r.isRunning&&r.restart(),o=d,[s,a]=Un(o),r.debounce(),this._hoverOutEvent.emit()},h=d=>{!r.isRunning&&r.restart(),o=d,[s,a]=Un(o),r.debounce(),this._hoverOutEvent.emit()},c=d=>{r.isRunning&&r.cancel(),this._hoverOutEvent.emit()};e.addEventListener("pointerdown",u),e.addEventListener("pointerup",l),e.addEventListener("pointermove",h),e.addEventListener("pointerout",c),this.dispose(()=>{e.removeEventListener("pointerdown",u),e.removeEventListener("pointerup",l),e.removeEventListener("pointermove",h),e.removeEventListener("pointerout",c)})}get hoverEvent(){return this._hoverEvent}get hoverOutEvent(){return this._hoverOutEvent}}class k0 extends ${constructor(e,n={}){super();f(this,"_needRedrawEvent");f(this,"_needPickRedrawEvent");f(this,"_id",Du());f(this,"_clickEvent");f(this,"_clickOutEvent");f(this,"_dbclickEvent");f(this,"_dbclickOutEvent");f(this,"_actived",!1);f(this,"_activedChanged");f(this,"_hovered",!1);f(this,"_hoveredChanged");f(this,"_selected",!1);f(this,"_selectedChanged");f(this,"_opacity",1);f(this,"_opacityChanged");f(this,"_show",!0);f(this,"_showChanged");this._canvasPrimitivesContext=e;const{needRedraw:r=!0,needPickRedraw:s=!0}=n;r&&(this._needRedrawEvent=new T),s&&(this._needPickRedrawEvent=new T),this._canvasPrimitivesContext.addPoi(this),this.dispose(()=>this._canvasPrimitivesContext.removePoi(this)),this.dispose(this.showChanged.disposableOn(()=>{this.needRedraw(),this.needPickRedraw()})),this.dispose(this.opacityChanged.disposableOn(()=>this.needRedraw()))}get id(){return this._id}get context(){return this._canvasPrimitivesContext}needRedraw(){this._needRedrawEvent?this._needRedrawEvent.emit():console.warn("no needRedrawEvent!")}needPickRedraw(){this._needPickRedrawEvent?this._needPickRedrawEvent.emit():console.warn("no needPickRedrawEvent!")}hasClickEvent(){return!!this._clickEvent}get clickEvent(){return this._clickEvent=this._clickEvent||new T,this._clickEvent}hasClickOutEvent(){return!!this._clickOutEvent}get clickOutEvent(){return this._clickOutEvent=this._clickOutEvent||new T,this._clickOutEvent}hasDbclickEvent(){return!!this._dbclickEvent}get dbclickEvent(){return this._dbclickEvent=this._dbclickEvent||new T,this._dbclickEvent}hasDbclickOutEvent(){return!!this._dbclickOutEvent}get dbclickOutEvent(){return this._dbclickOutEvent=this._dbclickOutEvent||new T,this._dbclickOutEvent}set actived(e){this._actived!==e&&(this._actived=e,this._activedChanged&&this._activedChanged.emit(e,this))}get actived(){return this._actived}get activedChanged(){return this._activedChanged=this._activedChanged||new T,this._activedChanged}set hovered(e){this._hovered!==e&&(this._hovered=e,this._hoveredChanged&&this._hoveredChanged.emit(e,this))}get hovered(){return this._hovered}get hoveredChanged(){return this._hoveredChanged=this._hoveredChanged||new T,this._hoveredChanged}set selected(e){this._selected!==e&&(this._selected=e,this._selectedChanged&&this._selectedChanged.emit(e,this))}get selected(){return this._selected}get selectedChanged(){return this._selectedChanged=this._selectedChanged||new T,this._selectedChanged}set opacity(e){this._opacity!==e&&(this._opacity=e,this._opacityChanged&&this._opacityChanged.emit(e,this))}get opacity(){return this._opacity}get opacityChanged(){return this._opacityChanged=this._opacityChanged||new T,this._opacityChanged}set show(e){this._show!==e&&(this._show=e,this._showChanged&&this._showChanged.emit(e,this))}get show(){return this._show}get showChanged(){return this._showChanged=this._showChanged||new T,this._showChanged}}class Up extends k0{constructor(e,n=[0,0],r=0){super(e);f(this,"_winPosAndDepthChanged");this._winPos=n,this._depth=r,this.dispose(this.winPosAndDepthChanged.disposableOn(()=>{this.needRedraw(),this.needPickRedraw()}))}set winPos(e){(this._winPos[0]!==e[0]||this._winPos[1]!==e[1])&&(this._winPos[0]=e[0],this._winPos[1]=e[1],this._winPosAndDepthChanged&&this._winPosAndDepthChanged.emit(this._winPos,this._depth))}get winPos(){return this._winPos}set depth(e){this._depth!==e&&(this._depth=e,this._winPosAndDepthChanged&&this._winPosAndDepthChanged.emit(this._winPos,this._depth))}get depth(){return this._depth}get winPosAndDepthChanged(){return this._winPosAndDepthChanged||(this._winPosAndDepthChanged=new T),this._winPosAndDepthChanged}}function No(i,t,e,n){const[r,s]=i,[a,o,u,l]=n,h=t[0]*e[0],c=t[1]*e[1],d=r-(h*a+u),p=s-(c*o+l);return{left:d,top:p,right:d+h,bottom:p+c}}function Oo(i,t,e,n,r){i.beginPath(),i.moveTo(t,e),i.lineTo(t-n*.5,e-n*.5),i.arc(t,e-n,n*.7071067811865475,Math.PI*.75,Math.PI*.25),i.lineTo(t,e),i.fillStyle=r,i.fill()}function wC(i,t,e,n,r,s){if(i.beginPath(),i.moveTo(t+n,e),i.arc(t,e,n,0,2*Math.PI),s){const a=i.createRadialGradient(t,e,0,t,e,n);a.addColorStop(0,r),a.addColorStop(1,r.replace(/[\d\.]+\)$/,"0)")),i.fillStyle=a}else i.fillStyle=r;i.fill()}function G0(i,t,e,n,r,s){i.beginPath(),i.moveTo(t+s,e),i.lineTo(t+n-s,e),i.arcTo(t+n,e,t+n,e+s,s),i.lineTo(t+n,e+r-s),i.arcTo(t+n,e+r,t+n-s,e+r,s),i.lineTo(t+s,e+r),i.arcTo(t,e+r,t,e+r-s,s),i.lineTo(t,e+s),i.arcTo(t,e,t+s,e,s)}function j0(i,t,e,n,r,s){i.font=r;const a=i.measureText(n),o=a.actualBoundingBoxLeft+a.actualBoundingBoxRight,u=Number.isFinite(a.fontBoundingBoxAscent)?a.fontBoundingBoxAscent:a.actualBoundingBoxAscent,l=Number.isFinite(a.fontBoundingBoxDescent)?a.fontBoundingBoxDescent:a.actualBoundingBoxDescent;let h=u+l;i.fillStyle=s,i.fillText(n,t-o*.5,e+h*.5-l)}function V0(i){const{width:t,height:e}=i,n=t instanceof SVGAnimatedLength?t.baseVal.SVG_LENGTHTYPE_PX:t,r=e instanceof SVGAnimatedLength?e.baseVal.SVG_LENGTHTYPE_PX:e,s=document.createElement("canvas");s.width=n,s.height=r;const a=s.getContext("2d");if(!a)throw new Error("!cavnasCtx");return a.drawImage(i,0,0,n,r),s}function z0(i,t){const{width:e,height:n}=i,r=i.getContext("2d");if(!r)throw new Error("!cavnasCtx");const[s,a,o]=t.map(c=>c*255|0),u=r.getImageData(0,0,e,n),l=u.data;for(var h=0;h<l.length;h+=4)l[h]=s,l[h+1]=a,l[h+2]=o;r.putImageData(u,0,0)}function qp(i,t,e,n=[.5,1,0,0],r,s="12px Arial",a=2,o="#FFF",u="#000A"){i.font=s;const l=i.measureText(r),h=l.actualBoundingBoxLeft+l.actualBoundingBoxRight,c=l.fontBoundingBoxAscent+l.fontBoundingBoxDescent,d=t,p=e,g=h+a*2,m=c+a*2,{left:w,top:b,bottom:v}=No([d,p],[g,m],[1,1],n);i.fillStyle=u,G0(i,w,b,g,m,a),i.fill(),i.fillStyle=o,i.fillText(r,w+a,v-a-l.fontBoundingBoxDescent)}function Ih(i){return("00"+i.toString(16).toUpperCase()).substr(-2)}function Mh(i){const[t,e,n,r]=i.map(s=>s*255|0);return`#${Ih(t)}${Ih(e)}${Ih(n)}${Ih(r)}`}function Wp(i,t){const[e,n,r]=t,s=`${e}-${n}-${r}`;let a=Vi(i,s);return a||(a=V0(i),z0(a,t),_s(i,s,a)),a}class EC extends Up{constructor(e,n,r=[32,32],s=[.5,1,0,0],a="#F00F"){super(e);f(this,"_tooltip","");f(this,"_title","");f(this,"__scale",[1,1]);f(this,"_tooltipAlpha",0);f(this,"_bgColor",[.3,.3,.3,.8]);f(this,"_bgColorHexStr",Mh(this._bgColor));f(this,"_fgColor",[1,1,1,1]);f(this,"_fgColorHexStr",Mh(this._fgColor));this._image=n,this._size=r,this._originRatioAndOffset=s,this._defaultColorStr=a;const o=new xh(100),u=new xh(100);this.dispose(()=>{o.destroy(),u.destroy()});const l=()=>{if(this._clickEvent&&!this._clickEvent.empty){const h=(1+.08*u.current)*(1+.08*o.current);this._scale=[h,h],this._tooltipAlpha=o.current}};this.dispose(this.activedChanged.disposableOn(h=>{u.target=h?1:0,this.needRedraw()})),this.dispose(this.hoveredChanged.disposableOn(h=>{o.target=h?1:0,this.needRedraw()})),this.dispose(this.selectedChanged.disposableOn(()=>{this.needRedraw()})),this.dispose(u.currentChanged.disposableOn(l)),this.dispose(o.currentChanged.disposableOn(l))}set size(e){const[n,r]=e,[s,a]=this._size;(s!==n||a!==r)&&(this._size[0]=n,this._size[1]=r,this.needRedraw(),this.needPickRedraw())}get size(){return this._size}set _scale(e){const[n,r]=e,[s,a]=this.__scale;(s!==n||a!==r)&&(this.__scale[0]=n,this.__scale[1]=r,this.needRedraw(),this.needPickRedraw())}get _scale(){return this.__scale}set fgColor(e){if(!this._fgColor.every((n,r)=>e[r]===n)){const[n,r,s,a]=e;this._fgColor.splice(0,4,n,r,s,a),this._fgColorHexStr=Mh(this._fgColor),this.needRedraw()}}get fgColor(){return this._fgColor}set bgColor(e){if(!this._bgColor.every((n,r)=>e[r]===n)){const[n,r,s,a]=e;this._bgColor.splice(0,4,n,r,s,a),this._bgColorHexStr=Mh(this._bgColor),this.needRedraw()}}get bgColor(){return this._bgColor}set originRatioAndOffset(e){const[n,r,s,a]=this._originRatioAndOffset,[o,u,l,h]=e;(n!==o||r!==u||s!==l||a!==h)&&(this._originRatioAndOffset.splice(0,4,o,u,l,h),this.needRedraw(),this.needPickRedraw())}get originRatioAndOffset(){return this._originRatioAndOffset}set image(e){this._image!==e&&(this._image=e,this.needRedraw())}get image(){return this._image}set defaultColorStr(e){this._defaultColorStr!==e&&(this._defaultColorStr=e,this.needRedraw())}get defaultColorStr(){return this._defaultColorStr}set tooltip(e){this._tooltip!==e&&(this._tooltip=e,this.needRedraw())}get tooltip(){return this._tooltip}set title(e){this._title!==e&&(this._title=e,this.needRedraw())}get title(){return this._title}draw(e){if(!this._show)return;const[n,r]=this._winPos,s=this._size[0]*this.__scale[0],a=this._size[1]*this.__scale[1],{left:o,top:u}=No([n,r],this._size,this.__scale,this._originRatioAndOffset),l=e.globalAlpha;if(e.globalAlpha=this.opacity,this._image){if(this.selected){const h=Wp(this._image,[1,0,0]),{left:c,top:d}=No([n,r+3],[s+6,a+6],[1,1],this._originRatioAndOffset);e.drawImage(h,c,d,s+6,a+6)}if(this.actived){const[h,c,d,p]=this._fgColor,g=Wp(this._image,[h,c,d]),{left:m,top:w}=No([n,r+4],[s+8,a+8],[1,1],this._originRatioAndOffset);e.drawImage(g,m,w,s+8,a+8)}if(this.hovered){const[h,c,d,p]=this._bgColor,g=Wp(this._image,[h,c,d]),{left:m,top:w}=No([n,r+2],[s+4,a+4],[1,1],this._originRatioAndOffset);e.drawImage(g,m,w,s+4,a+4)}e.drawImage(this._image,o,u,s,a)}else e.fillStyle=this._fgColorHexStr,e.fillRect(o,u,s,a);if(this._title!==""&&qp(e,n+20,r-16,[0,.5,0,0],this._title,"14px Arial",4,this._fgColorHexStr,this._bgColorHexStr),e.globalAlpha=l,this._hovered&&this._tooltip!==""){const h=e.globalAlpha;e.globalAlpha=this._tooltipAlpha,qp(e,n,r-42,[.5,1,0,0],this._tooltip,"12px Arial",4,this._fgColorHexStr,this._bgColorHexStr),e.globalAlpha=h}}drawForPick(e,n){if(!this._show)return;const[r,s]=this._winPos,a=n("default"),o=this._size[0]*this.__scale[0],u=this._size[1]*this.__scale[1],{left:l,top:h}=No([r,s],this._size,this.__scale,this._originRatioAndOffset);e.fillStyle=a,e.fillRect(l,h,o,u)}}class SC extends Up{constructor(e){super(e);f(this,"_width",16);f(this,"_text","");f(this,"_fillStyle","#0F0");f(this,"_scale",1);f(this,"_scaleChanged");this.dispose(this.scaleChanged.disposableOn(a=>{this.needRedraw(),this.needPickRedraw()}));const n=this.disposeVar(new xh(100)),r=this.disposeVar(new xh(100)),s=()=>{this._clickEvent&&!this._clickEvent.empty&&(this.scale=(1+.1*r.current)*(1+.2*n.current))};this.dispose(r.currentChanged.disposableOn(s)),this.dispose(n.currentChanged.disposableOn(s)),this.dispose(this.activedChanged.disposableOn(a=>{r.target=a?1:0,this.needRedraw()})),this.dispose(this.hoveredChanged.disposableOn(a=>{n.target=a?1:0,this.needRedraw()})),this.dispose(this.selectedChanged.disposableOn(a=>{this.needRedraw()}))}set scale(e){this._scale!==e&&(this._scale=e,this._scaleChanged&&this._scaleChanged.emit(e,this))}get scale(){return this._scale}get scaleChanged(){return this._scaleChanged||(this._scaleChanged=new T),this._scaleChanged}set width(e){this._width!==e&&(this._width=e,this.needRedraw(),this.needPickRedraw())}get width(){return this._width}set text(e){this._text!==e&&(this._text=e,this.needRedraw())}get text(){return this._text}set fillStyle(e){this._fillStyle!==e&&(this._fillStyle=e,this.needRedraw())}get fillStyle(){return this._fillStyle}draw(e){if(!this._show)return;const[n,r]=this._winPos,s=e.globalAlpha;e.globalAlpha=this.opacity;const a=this._width*this._scale;this.selected&&Oo(e,n,r+3,a+3,"#F00"),this.actived&&this._clickEvent&&!this._clickEvent.empty&&Oo(e,n,r+5,a+5,"#FFF"),this.hovered?Oo(e,n,r+3,a+3,"#000A"):Oo(e,n,r+1,a+1,"#000A"),Oo(e,n,r,a,this._fillStyle);const o=this._scale>1.2?"bold 14px Arial":"bold 10px Arial";j0(e,n,r-a,this._text,o,"#000"),e.globalAlpha=s}drawForPick(e,n){if(!this._show)return;const[r,s]=this._winPos,a=this._width*this._scale,o=n("default");Oo(e,r,s,a,o)}}const B0=new ArrayBuffer(4),U0=new Uint32Array(B0),Do=new Uint8Array(B0);function q0(i){if(i>=16777215)throw new Error("uint32 > 0xFFFFFF");return U0[0]=i,[Do[0],Do[1],Do[2]]}function W0(i,t,e){return Do[0]=i,Do[1]=t,Do[2]=e,Do[3]=0,U0[0]}class H0 extends ${constructor(){super(...arguments);f(this,"_pickColors",new Array(16777215));f(this,"_pickColorIndex",0)}reset(){for(let e=0;e<this._pickColorIndex;++e){const n=this._pickColors[e];if(!n)throw console.error("this._pickColors[i] should not be undefined!"),new Error("this._pickColors[i] should not be undefined!");n.poi=null,n.tag=""}this._pickColorIndex=0}createPickColor(e,n){const r=this._pickColorIndex;++this._pickColorIndex;const s=this._pickColors[r];s?(s.poi=e,s.tag=n):this._pickColors[r]={poi:e,tag:n};const[a,o,u]=q0(r);return[a,o,u]}getPickInfoFromColor(e,n,r){const s=W0(e,n,r);if(s>=this._pickColorIndex){console.error("index >= this._pickColorIndex");return}const a=this._pickColors[s];if(!a){console.error("!this._pickColors[index]");return}return a}destroyImp(){this.reset()}}const $0=(i,t)=>t.depth-i.depth;class CC extends ${constructor(){super();f(this,"_pois",[]);f(this,"_canvasElement");f(this,"_ctx");f(this,"_offscreenCanvasElement");f(this,"_offscreenCanvasElement2");f(this,"_offscreenCtx");f(this,"_offscreenCtx2");f(this,"_size",[0,0]);f(this,"_needRedraw",!1);f(this,"_needPickRedraw",!1);f(this,"_pickColorManager",new H0);const e=document.createElement("canvas");e.style.width="100%",e.style.height="100%",this._canvasElement=e;const n=e.getContext("2d");if(n===null)throw new Error("cannot get context 2d!");this._ctx=n,this._offscreenCanvasElement=document.createElement("canvas"),this._offscreenCtx=this._offscreenCanvasElement.getContext("2d"),this._offscreenCtx.imageSmoothingEnabled=!1,this._offscreenCanvasElement2=document.createElement("canvas"),this._offscreenCtx2=this._offscreenCanvasElement2.getContext("2d"),this._offscreenCtx2.imageSmoothingEnabled=!1,this.disposeVar(Gu(()=>{const[s,a]=this._size,{clientWidth:o,clientHeight:u}=this._canvasElement;(s!==o||a!==u)&&(this._size[0]=o,this._size[1]=u,this._canvasElement.width=o,this._canvasElement.height=u,this._offscreenCanvasElement.width=o,this._offscreenCanvasElement.height=u,this._offscreenCanvasElement2.width=o,this._offscreenCanvasElement2.height=u,this._dirty()),this._needRedraw&&(this._needRedraw=!1,this._draw())})).start()}get element(){return this._canvasElement}get pois(){return this._pois}_dirty(){this._needRedraw=!0,this._needPickRedraw=!0}get size(){return this._size}addPoi(e){if(typeof Vi(e,"listenHandler")<"u"){console.error("可能有poi重复加载poiManager中!");return}if(this._pois.indexOf(e)!==-1){console.error("同一个poi加了多次!");return}this._pois.push(e),this._dirty();const n=e._needRedrawEvent;if(n){const s=n.on(()=>{this._needRedraw=!0});_s(e,"needRedrawEventHandler",s)}const r=e._needPickRedrawEvent;if(r){const s=r.on(()=>{this._needPickRedraw=!0});_s(e,"needPickRedrawEventHandler",s)}}removePoi(e){const n=this._pois.indexOf(e);if(n===-1){console.error("删除一个不存在的poi!");return}this._pois.splice(n,1),this._dirty();const r=e._needRedrawEvent;if(r){const a=Vi(e,"needRedrawEventHandler");a?r.off(a):console.error("poi没有listenHandler!")}const s=e._needPickRedrawEvent;if(s){const a=Vi(e,"needPickRedrawEventHandler");a?s.off(a):console.error("poi没有listenHandler!")}}_draw(){this._pois.sort($0);const[e,n]=this._size;this._ctx.clearRect(0,0,e,n),this._pois.forEach(r=>r.draw(this._ctx))}pick(e,n,r,s){return this._needPickRedraw&&(this._needPickRedraw=!1,this._pickDraw()),this._getPickInfo(e,n,r,s)}_pickDraw(){this._pickColorManager.reset(),this._pois.sort($0);const[e,n]=this._size;this._offscreenCtx.clearRect(0,0,e,n),this._pois.forEach(r=>{const s=a=>{const[o,u,l]=this._pickColorManager.createPickColor(r,a);return`rgb(${o}, ${u}, ${l})`};r.drawForPick(this._offscreenCtx,s)})}_getPickInfo(e,n,r,s){const a=this._offscreenCtx.getImageData(e,n,r,s),o=[],u=a.data.length/4;for(let l=0;l<u;++l){const h=a.data[l*4+0],c=a.data[l*4+1],d=a.data[l*4+2];if(a.data[l*4+3]===255){const g=this._pickColorManager.getPickInfoFromColor(h,c,d);if(g&&g.poi&&!o.includes(g)){let m=!0;{const[w,b]=this._size;this._offscreenCtx2.clearRect(0,0,w,b);const v=P=>"rgb(255, 255, 255)";g.poi.drawForPick(this._offscreenCtx2,v);const E=this._offscreenCtx2.getImageData(e,n,r,s),_=E.data[l*4+0],S=E.data[l*4+1],C=E.data[l*4+2];E.data[l*4+3],_===255&&S===255&&C===255||(m=!1)}m&&o.push(g)}}}return o}}class Hp extends ${constructor(){super(...arguments);f(this,"_closeEvent");f(this,"_show",!0);f(this,"_showChanged");f(this,"_opacity",1);f(this,"_opacityChanged");f(this,"_winPos",[0,0]);f(this,"_winPosChanged")}set winPos(e){const[n,r]=e,[s,a]=this._winPos;(n!==s||r!==a)&&(this._winPos[0]=n,this._winPos[1]=r,this._winPosChanged&&this._winPosChanged.emit(this._winPos))}get winPos(){return this._winPos}get winPosChanged(){return this._winPosChanged=this._winPosChanged||new T,this._winPosChanged}set opacity(e){this._opacity!==e&&(this._opacity=e,this._opacityChanged&&this._opacityChanged.emit(this._opacity))}get opacity(){return this._opacity}get opacityChanged(){return this._opacityChanged=this._opacityChanged||new T,this._opacityChanged}set show(e){this._show!==e&&(this._show=e,this._showChanged&&this._showChanged.emit(this._show))}get show(){return this._show}get showChanged(){return this._showChanged=this._showChanged||new T,this._showChanged}get closeEvent(){return this._closeEvent||(this._closeEvent=new T),this._closeEvent}}const $p=new WeakMap;function Xp(i){if(!$p.has(i)){const t=new hd(()=>new i,e=>e.reset());$p.set(i,t)}return $p.get(i)}class Yp extends Hp{constructor(){super();f(this,"_div");f(this,"_contentDiv");f(this,"_originOffsetX",0);f(this,"_originOffsetY",0);f(this,"_originRatioX",.5);f(this,"_originRatioY",1);f(this,"_divChanged",new T);const e=document.createElement("div");e.style.cssText="width: 0px; height: 0px; position: absolute; opacity: 1.0; visibility: visible;";const n=document.createElement("div");n.style.cssText=`position: absolute; left: ${-this._originOffsetX}px; top: ${-this._originOffsetY}px; transform: translateX(-${100*this._originRatioX}%) translateY(-${100*this._originRatioY}%); margin: 0; padding: 0; pointer-events: none;`;const r=document.createElement("div");this._contentDiv=r,n.appendChild(r),e.appendChild(n),this._div=e,this.dispose(this._divChanged.disposableOn(()=>{n.style.left=`${-this._originOffsetX}px`,n.style.top=`${-this._originOffsetY}px`,n.style.transform=`translateX(-${100*this._originRatioX}%) translateY(-${100*this._originRatioY}%)`})),this.dispose(this.winPosChanged.disposableOn(([s,a])=>{this._div.style.left=`${s}px`,this._div.style.top=`${a}px`})),this.dispose(this.opacityChanged.disposableOn(s=>{this._div.style.opacity=`${s}`})),this.dispose(this.showChanged.disposableOn(s=>{this._div.style.visibility=s?"visible":"hidden"}))}get contentDiv(){return this._contentDiv}reset(){}get originOffsetX(){return this._originOffsetX}set originOffsetX(e){this._originOffsetX!==e&&(this._originOffsetX=e,this._divChanged.emit())}get originOffsetY(){return this._originOffsetY}set originOffsetY(e){this._originOffsetY!==e&&(this._originOffsetY=e,this._divChanged.emit())}get originRatioX(){return this._originRatioX}set originRatioX(e){this._originRatioX!==e&&(this._originRatioX=e,this._divChanged.emit())}get originRatioY(){return this._originRatioY}set originRatioY(e){this._originRatioY!==e&&(this._originRatioY=e,this._divChanged.emit())}get element(){return this._div}}class X0 extends ${constructor(e,n){super();f(this,"_floatDiv");f(this,"_show",!1);f(this,"_showChanged");this._customDivClass=e,this._divContainer=n,this.dispose(()=>{this.show=!1})}_updateDivPoi(){if(this._show){const{floatDiv:n}=this;n.element.parentElement||this._divContainer.appendChild(n.element)}else{const{_floatDiv:n}=this;n&&n.element.parentElement&&this._divContainer.removeChild(n.element)}}set show(e){this._show!==e&&(this._show=e,this._updateDivPoi(),this._showChanged&&this._showChanged.emit(e))}get show(){return this._show}get floatDiv(){if(!this._floatDiv){const e=Xp(this._customDivClass).create();this.dispose(()=>{Xp(this._customDivClass).destroy(e)}),this._floatDiv=e}return this._floatDiv}get showChanged(){return this._showChanged||(this._showChanged=new T),this._showChanged}}const bC=["top","bottom","left","right"];function PC(i){return Object.entries(i).map(([t,e])=>bC.includes(t)?`${t}: ${e}px; `:"").join("")}function Y0(i,t,e){const n=document.createElement("div");n.style.cssText=`position: absolute; ${PC(e)} background-color: ${i}; border-radius: ${t}px;`;const r='<svg viewBox="0 0 1024 1024" style="display: block;" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2420" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"><defs><style type="text/css"></style></defs><path d="M512 128C300.8 128 128 300.8 128 512s172.8 384 384 384 384-172.8 384-384S723.2 128 512 128zM512 832c-179.2 0-320-140.8-320-320s140.8-320 320-320 320 140.8 320 320S691.2 832 512 832z" p-id="2421" fill="#ffffff"></path><path d="M672 352c-12.8-12.8-32-12.8-44.8 0L512 467.2 396.8 352C384 339.2 364.8 339.2 352 352S339.2 384 352 396.8L467.2 512 352 627.2c-12.8 12.8-12.8 32 0 44.8s32 12.8 44.8 0L512 556.8l115.2 115.2c12.8 12.8 32 12.8 44.8 0s12.8-32 0-44.8L556.8 512l115.2-115.2C684.8 384 684.8 364.8 672 352z" p-id="2422" fill="#ffffff"></path></svg>';return n.innerHTML=r,n}function J0(i,t,e="rgba(0,0,0,0.7)"){const n=document.createElement("div");n.style.cssText=`margin: 0 auto; width: ${i}px; height: ${t}px; position: relative; pointer-events: none;`;const r=document.createElement("div");return r.style.cssText=`position: absolute; left: 0px; top: 0px; width: 0; height: 0; border-left: ${i*.5}px solid transparent; border-right: ${i*.5}px solid transparent; border-top: ${t}px solid ${e};`,n.appendChild(r),[n,r]}class Z0 extends Yp{constructor(){super();f(this,"_borderDiv");f(this,"_closeDiv");f(this,"_innerContentDiv");f(this,"_colorStr","rgba(0, 0, 0, 0.7)");f(this,"_divColorChanged",new T);f(this,"_borderRadius",10);const e=document.createElement("div");e.style.cssText=`position: relative; background-color: ${this._colorStr}; border-radius: ${this._borderRadius}px; padding: 5px; pointer-events: all;`,this._borderDiv=e;const n=Y0(this._colorStr,10,{top:3,right:3}),[r,s]=J0(2*this._borderRadius,2*this._borderRadius,this._colorStr),a=document.createElement("div");this._innerContentDiv=a,e.appendChild(a),e.appendChild(n),this.contentDiv.appendChild(e),this.contentDiv.appendChild(r),n.style.opacity="0.1",n.onmouseenter=()=>{n.style.opacity="1.0"},n.onmouseleave=()=>{n.style.opacity="0.1"},n.onclick=()=>{this._closeEvent&&this._closeEvent.emit()},this._closeDiv=n,this.dispose(this._divColorChanged.disposableOn(()=>{s.style.borderTopColor=this._colorStr,e.style.backgroundColor=this._colorStr,r.style.width=`${this._borderRadius*2}px`,r.style.height=`${this._borderRadius*2}px`,s.style.borderLeft=`${this._borderRadius}px`,s.style.borderRight=`${this._borderRadius}px`,s.style.borderTop=`${this._borderRadius*2}px`}));const o=u=>{u.key==="Escape"&&this._closeEvent&&this._closeEvent.emit()};document.body.addEventListener("keydown",o,!0),this.dispose(()=>{document.removeEventListener("keydown",o,!0)})}get borderDiv(){return this._borderDiv}get innerContentDiv(){return this._innerContentDiv}reset(){this.show=!1,this.opacity=0,this._closeDiv.style.opacity="0.1",super.reset()}get colorStr(){return this._colorStr}set colorStr(e){this._colorStr!==e&&(this._colorStr=e,this._divColorChanged.emit())}get borderRadius(){return this._borderRadius}set borderRadius(e){this._borderRadius!==e&&(this._borderRadius=e,this._divColorChanged.emit())}}class xC extends Z0{constructor(){super();f(this,"_iframe");f(this,"_iframeMessageEvent");const e=document.createElement("iframe");e.style.cssText="width: 100%; height: 100%; border-width: 0px; border-radius: 5px; display: block;",e.src="http://www.weather.com.cn/live/index.shtml",this._iframe=e,this.innerContentDiv.appendChild(e);const n=r=>{r.source===this._iframe.contentWindow&&(this._iframeMessageEvent?this._iframeMessageEvent.emit(r):console.warn(`iframe消息接收到未处理!data: ${r.data}`))};window.addEventListener("message",n),this.dispose(()=>{window.removeEventListener("message",n)})}reset(){super.reset(),this.src=""}set src(e){this._iframe.src!==e&&(this._iframe.src=e)}get src(){return this._iframe.src}get iframe(){return this._iframe}get iframeMessageEvent(){return this._iframeMessageEvent=this._iframeMessageEvent||new T,this._iframeMessageEvent}}class IC extends Hp{constructor(){super();f(this,"_div");f(this,"_contentContainer");f(this,"_text","");const e=document.createElement("div");this._div=e,e.style.cssText="width: 0px; height: 0px; position: absolute; opacity: 1.0; visibility: visible; transition: opacity 0.5s;";const n=document.createElement("div");n.style.cssText="position: absolute; left: 0px; bottom: 0px; transform: translateX(-50%); margin: 0; padding: 0; pointer-events: none;";const r=document.createElement("div");r.style.cssText="position: relative; background-color: rgba(0, 0, 0, 0.7); border-radius: 5px; padding: 3px; pointer-events: all; color: white; white-space: nowrap;",r.innerText=this._text,this._div.appendChild(n),n.appendChild(r),this._contentContainer=r,this._div=e,this.dispose(this.winPosChanged.disposableOn(([s,a])=>{this._div.style.left=`${s}px`,this._div.style.top=`${a-50}px`})),this.dispose(this.opacityChanged.disposableOn(s=>{this._div.style.opacity=`${s}`})),this.dispose(this.showChanged.disposableOn(s=>{this._div.style.visibility=s?"visible":"hidden"}))}get element(){return this._div}reset(){this.opacity=1,this.show=!0}set text(e){this._text!==e&&(this._text=e,this._contentContainer.innerText=e)}get text(){return this._text}}class MC extends Yp{constructor(){super(),this.contentDiv.style.backgroundColor="rgba(0, 0, 0, 0.8)",this.contentDiv.style.borderRadius="3px",this.contentDiv.style.color="rgb(255, 255, 255)",this.contentDiv.style.padding="1px 5px 1px 5px",this.contentDiv.style.fontSize="12px",this.contentDiv.style.whiteSpace="nowrap",this.contentDiv.innerText="未定义光标信息!",this.originRatioX=0,this.originRatioY=0,this.originOffsetX=-16}}class TC extends ${constructor(e,n){super();f(this,"_cursorDiv");f(this,"_pointerOut",this.disposeVar(H(!1)));f(this,"_show",this.disposeVar(H(!0)));this._cursorDiv=new X0(n,e),this.dispose(()=>this._cursorDiv.destroy());const r=a=>{const[o,u]=Un(a);this._cursorDiv.floatDiv.winPos=[o,u]};e.addEventListener("pointermove",r),this.dispose(()=>e.removeEventListener("pointermove",r));const s=()=>{this._cursorDiv.show=this.show&&this._pointerOut.value};s(),this.dispose(this.showChanged.disposableOn(s)),this.dispose(this._pointerOut.changed.disposableOn(s))}set show(e){this._show.value=e}get show(){return this._show.value}get showChanged(){return this._show.changed}reset(){this._pointerOut.value=!1}get cursorDiv(){return this._cursorDiv}set text(e){this._cursorDiv.floatDiv.contentDiv.innerText=e}get text(){return this._cursorDiv.floatDiv.contentDiv.innerText}}function Th(i,t,e){if(!(i.tree===t.tree&&i!==t&&!i.isAncestorOf(t))||i.tree!==t.tree||!i.parent)return!1;if(!i.parent.children)throw console.error("当前节点的父节点没有子节点?这是不可能的!"),new Error("当前节点的父节点没有子节点?这是不可能的!");return!(t===i||i.isAncestorOf(t)||e!=="inner"&&!t.parent||e==="inner"&&!t.children)}function bd(i,t,e){if(!i.tree||!t.tree||i.tree!==t.tree)return;if(!i.parent){console.warn("当前节点没有父节点,那么该节点无法被移动!");return}if(!i.parent.children)throw console.error("当前节点的父节点没有子节点?这是不可能的!"),new Error("当前节点的父节点没有子节点?这是不可能的!");if(t===i){console.warn("自身不能拖放到自身!");return}if(i.isAncestorOf(t)){console.warn("当前节点不能拖放到它自身的后代节点之上!");return}if(e!=="inner"&&!t.parent){console.warn("目标节点没有父节点,无法拖放!");return}if(e==="inner"&&!t.children){console.warn("无法移动到目标节点的子节点中,因为目标节点不是组节点!");return}i.tree._startTransaction();const n=i.parent.children.indexOf(i);if(i.parent.children.splice(n,1),e!=="inner"){const{parent:r}=t;if(!r||!r.children)throw new Error("!parent");const s=r.children.indexOf(t);e==="before"?r.children.splice(s,0,i):e==="after"&&r.children.splice(s+1,0,i)}else t.children.push(i);i.tree._stopTransaction()}function K0(i,t,e){return xp(i,n=>Th(n,t,e))}function Q0(i,t,e){for(let n of i)Th(n,t,e)?bd(n,t,e):console.warn(`treeItem(id: ${n.id}) cannot move...`)}const NC={checked:1,unchecked:2,indeterminate:3},OC=["checked","unchecked","indeterminate"];class t_ extends ${constructor(e){super();f(this,"_collapsed",this.disposeVar(H(!1)));f(this,"_checkedStatus",this.disposeVar(H("unchecked")));f(this,"_selected",this.disposeVar(H(!1)));f(this,"_moveToPositionMode",this.disposeVar(H("none")));f(this,"_updateCheckedStatusFromChildrenEvent",this.disposeVar(new T));this._treeItem=e;const n=()=>this._treeItem.tree&&this._treeItem.tree.itemsChanged.emit([this._treeItem]);this.dispose(this._collapsed.changed.disposableOn(n)),this.dispose(this._checkedStatus.changed.disposableOn(n)),this.dispose(this._selected.changed.disposableOn(n)),this.dispose(this._moveToPositionMode.changed.disposableOn(n)),this.dispose(this._checkedStatus.changed.disposableOn(()=>this._treeItem.parent&&this._treeItem.parent.uiTreeObject.updateCheckedStatusFromChildren())),this.dispose(this._treeItem.childrenChangedEvent.disposableOn(()=>{this.updateCheckedStatusFromChildren()}));const r=this.disposeVar(Ze(this._updateCheckedStatusFromChildrenEvent));this.dispose(r.disposableOn(()=>{if(!this._treeItem.children)return;let s=0;Pp(this._treeItem.children,a=>(s|=NC[a.uiTreeObject.checkedStatus],s===3)),s>0&&(this._checkedStatus.value=OC[s-1])})),this.dispose(this._treeItem.childrenResetedEvent.disposableOn(s=>{!s&&this.checkedStatus==="indeterminate"&&(this._checkedStatus.value="unchecked")}));{const s=(a,o,u=!0)=>{if(o)a.selectedItems.push(this._treeItem);else{const l=a.selectedItems.indexOf(this._treeItem);l===-1?u&&console.error("selectedItems index -1"):a.selectedItems.splice(l,1)}};this.dispose(this._selected.changed.disposableOn(a=>{const{tree:o}=this._treeItem;o&&s(o,a)})),this.dispose(()=>this.selected=!1)}}get treeItem(){return this._treeItem}get collapsed(){return this._collapsed.value}set collapsed(e){this._collapsed.value=e}get collapsedChanged(){return this._collapsed.changed}get checkedStatus(){return this._checkedStatus.value}check(e){const n=e?"checked":"unchecked";if(this._checkedStatus.value!==n&&(this._checkedStatus.value=n,this._treeItem.children))for(let r of this._treeItem.children)r.uiTreeObject.check(e)}updateCheckedStatusFromChildren(){this._updateCheckedStatusFromChildrenEvent.emit()}get checkedStatusChanged(){return this._checkedStatus.changed}get selected(){return this._selected.value}set selected(e){this._selected.value=e}get selectedChanged(){return this._selected.changed}get moveToPositionMode(){return this._moveToPositionMode.value}set moveToPositionMode(e){this._moveToPositionMode.value=e}get moveToPositionModeChanged(){return this._moveToPositionMode.changed}}const us=class us extends ${constructor(e,n=!1,r){super();f(this,"_children");f(this,"_childrenResetedEvent");f(this,"_childrenToChangeEvent");f(this,"_childrenChangedEvent");f(this,"_parent",this.disposeVar(H(void 0)));f(this,"_level",this.disposeVar(H(0)));f(this,"_id");f(this,"_uiTreeObject",this.disposeVar(new t_(this)));this._tree=e,this._hasChildren=n,this._id=r??Du(),this._id!=="_ROOT"&&us.wm.has(this._id)&&console.warn(`创建了id(${this._id})相同的树节点,会导致之前的树节点无法索引!`),us.wm.set(this._id,this),this.dispose(()=>{if(this._id!=="_ROOT"&&!us.wm.has(this._id)){console.warn(`树节点(${this._id})不在wm树上!`);return}us.wm.delete(this._id)}),this.dispose(this._parent.changed.disposableOn(()=>{this._updateLevel()})),this.dispose(this._level.changed.disposableOn(()=>{if(this.children)for(let s of this.children)s._updateLevel()})),us.allTreeItems.set(this._id,this),this.dispose(()=>{us.allTreeItems.delete(this._id)})}static getFromId(e){return us.wm.get(e)}get uiTreeObject(){return this._uiTreeObject}get id(){return this._id}_updateLevel(){this.parent&&(this._level.value=this.parent.level+1)}get parent(){return this._parent.value}get parentChanged(){return this._parent.changed}get children(){if(this._hasChildren){if(!this._children){const e=this.disposeVar(new Sh);this._children=e,this.dispose(e.toChangeEvent.disposableOn((s,a)=>{for(let o of s){const{start:u,deleteCount:l,items:h}=o;for(let c=u;c<u+l;++c)a.get(c)._parent.value=void 0;for(let c of h){if(c.parent)throw console.error("请检查新增的treeItem是否正在使用!"),new Error("item.parent should not exist!");c._parent.value=this}}}));const n=new Set,r=new Set;this.dispose(e.toChangeEvent.disposableOn((s,a)=>{var o;if(this.tree){n.clear(),r.clear();for(let u of s){const{start:l,deleteCount:h,items:c}=u;for(let d=l;d<l+h;++d)n.add(a.get(d));for(let d of c)r.add(d)}for(let u of n)r.has(u)&&(n.delete(u),r.delete(u));(o=this.tree)==null||o.itemChildrenToChange.emit(this,s,n,r)}})),this.dispose(e.changedEvent.disposableOn(()=>{var s;(s=this.tree)==null||s.itemChildrenChanged.emit(this)})),this.dispose(e.toChangeEvent.disposableOn((...s)=>this._childrenToChangeEvent&&this._childrenToChangeEvent.emit(...s))),this.dispose(e.changedEvent.disposableOn((...s)=>this._childrenChangedEvent&&this._childrenChangedEvent.emit(...s)))}return this._children}else return}get childrenResetedEvent(){return this._childrenResetedEvent||(this._childrenResetedEvent=new T),this._childrenResetedEvent}get childrenToChangeEvent(){return this._childrenToChangeEvent||(this._childrenToChangeEvent=new T),this._childrenToChangeEvent}get childrenChangedEvent(){return this._childrenChangedEvent||(this._childrenChangedEvent=new T),this._childrenChangedEvent}resetChildren(e=!1){this._children&&(this._children.length=0),this._hasChildren=e,this._childrenResetedEvent&&this._childrenResetedEvent.emit(e)}*getDescendants(e){const n=this,r=[],s=[];for(n.children&&n.children.length>0&&(!e||e(n))&&(r.push(0),s.push(n.children));r.length>0;){const a=r[r.length-1],o=s[s.length-1],u=o.get(a);yield u,a<o.length-1?++r[r.length-1]:(s.pop(),r.pop()),u.children&&u.children.length>0&&(!e||e(u))&&(r.push(0),s.push(u.children))}}*getAncestors(e){let n=this.parent;for(;n&&(yield n,!(e&&!e(n)));)n=n.parent}isDescendantOf(e){for(let n of this.getAncestors())if(n===e)return!0;return!1}isAncestorOf(e){return e.isDescendantOf(this)}get level(){return this._level.value}get levelChanged(){return this._level.changed}get tree(){return this._tree}canMoveTo(e,n){return Th(this,e,n)}moveTo(e,n){bd(this,e,n)}detachFromParent(){if(!this.parent||!this.parent.children)return;const e=this.parent.children.indexOf(this);this.parent.children.splice(e,1)}insertNewTreeItem(e,n){if(n&&n.tree!==this.tree)return console.warn("newTreeItem.tree !== this.tree"),!1;if(this.children&&e.startsWith("Inner"))return n&&this.children.push(n),!0;if(e==="Inner")return!1;const r=this.parent;if(!r||!r.children)return!1;const s=r.children.indexOf(this);return e.endsWith("Before")?n&&r.children.splice(s,0,n):e.endsWith("After")&&n&&r.children.splice(s+1,0,n),!0}};f(us,"wm",new Map),f(us,"allTreeItems",new Map);let Nh=us;class e_ extends ${constructor(e){super();f(this,"_redrawEvent",this.disposeVar(new T));f(this,"_containerScrollTop",this.disposeVar(H(0)));f(this,"_containerClientHeight",this.disposeVar(H(-1)));f(this,"_container",this.disposeVar(H(void 0)));f(this,"_redrawInfo",{topFreeSpaceHeight:0,topUnvisibleItemNum:0,middleTreeItems:[],bottomFreeSpaceHeight:0,bottomUnvisibleItemNum:0});this._tree=e;const n=this._containerClientHeight,r=this._containerScrollTop,s=this._tree._forceRedrawEvent,a=this.disposeVar(Ze(this._tree.itemDivHeightChanged,this._tree.itemChildrenChanged,this._tree.itemsChanged,n.changed,r.changed,s)),{redrawInfo:o}=this,u=h=>{const c=h.uiTreeObject;return!!h.children&&(!c||!c.collapsed)};this.dispose(a.disposableOn(()=>{if(o.topFreeSpaceHeight=0,o.topUnvisibleItemNum=0,o.middleTreeItems.length=0,o.bottomFreeSpaceHeight=0,o.bottomUnvisibleItemNum=0,this._containerClientHeight.value>=0){const h=Ip(this._tree.getDescendants(u)),c=this._tree.itemDivHeight,d=c*h,p=ra([Fa([ra([d-n.value,0]),r.value]),0]),g=p/c|0,m=Math.ceil((p-g*c+n.value)/c)|0;g>0&&(o.topUnvisibleItemNum=g,o.topFreeSpaceHeight=g*this._tree.itemDivHeight);const w=g+m;let b=0;for(let E of this._tree.getDescendants(u)){if(b>=w)break;b>=g&&o.middleTreeItems.push(E),++b}const v=h-g-m;v>0&&(o.bottomUnvisibleItemNum=v,o.bottomFreeSpaceHeight=v*this._tree.itemDivHeight)}else for(let h of this._tree.getDescendants(u))o.middleTreeItems.push(h);this._redrawEvent.emit(o)}));let l;this.dispose(()=>l&&(l.destroy(),l=void 0)),this.dispose(this.containerChanged.disposableOn(h=>{l&&(l.destroy(),l=void 0),h&&(l=bh(),l.start(()=>{const{scrollTop:c,clientHeight:d}=h;typeof c>"u"||typeof d>"u"?Nu("createUiTreeWithContainer error: conainter has no scrollTop or clientHeight property!"):(this.containerScrollTop=c,this.containerClientHeight=d)}))}))}get container(){return this._container.value}set container(e){this._container.value=e}get containerChanged(){return this._container.changed}get redrawInfo(){return this._redrawInfo}getTreeItemPos(e){const n=a=>{const o=a.uiTreeObject;return!!a.children&&(!o||!o.collapsed)};let r=0,s=!1;for(let a of this._tree.getDescendants(n)){if(a===e){s=!0;break}++r}if(s)return[r,r*this._tree.itemDivHeight]}collapseAll(){console.log("collapseAll");for(let e of this.tree.root.getDescendants()){const n=e.uiTreeObject;n.collapsed=!0}}expandAll(){console.log("expandAll");for(let e of this.tree.root.getDescendants()){const n=e.uiTreeObject;n.collapsed=!1}}get tree(){return this._tree}get redrawEvent(){return this._redrawEvent}set containerScrollTop(e){this._containerScrollTop.value=e}get containerScrollTop(){return this._containerScrollTop.value}get containerScrollTopChanged(){return this._containerScrollTop.changed}set containerClientHeight(e){this._containerClientHeight.value=e}get containerClientHeight(){return this._containerClientHeight.value}get containerClientHeightChanged(){return this._containerClientHeight.changed}*getAllItems(e){for(let n of this._tree.getDescendants())(!e||e(n))&&(yield n)}getAllSelectedItems(){return this.getAllItems(e=>e.uiTreeObject.selected)}getAllCheckedItems(){return this.getAllItems(e=>e.uiTreeObject.checkedStatus==="checked")}getAllCheckedLeafItems(){return this.getAllItems(e=>!e.children&&e.uiTreeObject.checkedStatus==="checked")}selectAllItems(e){for(let n of this.getAllItems())(!e||!e.includes(n))&&(n.uiTreeObject.selected=!0)}clearAllSelectedItems(e){for(let n of this.getAllSelectedItems())(!e||!e.includes(n))&&(n.uiTreeObject.selected=!1)}checkAllItems(e){for(let n of this.getAllItems())(!e||!e.includes(n))&&n.uiTreeObject.check(!0)}clearAllCheckedItems(e){for(let n of this.getAllCheckedItems())(!e||!e.includes(n))&&n.uiTreeObject.check(!1)}}let Oh=(ls=class extends ${constructor(e){super();f(this,"_root",this.disposeVar(new Nh(this,!0,"_ROOT")));f(this,"_itemChildrenChanged",this.disposeVar(new T));f(this,"_itemChildrenToChange",this.disposeVar(new T));f(this,"_itemsAdded",this.disposeVar(new T));f(this,"_itemsDeleted",this.disposeVar(new T));f(this,"_itemsChanged",this.disposeVar(new T));f(this,"_transactionStack",0);f(this,"_addedItems",new Set);f(this,"_deletedItems",new Set);f(this,"_selectedItems",this.disposeVar(new Sh));f(this,"_itemDivHeight",this.disposeVar(H(ls.defaultItemDivHeight)));f(this,"_forceRedrawEvent",this.disposeVar(new T));f(this,"_uiTree",this.disposeVar(new e_(this)));this._root._tree.value=this,this.dispose(this._itemChildrenToChange.disposableOn((n,r)=>{if(!n.children){console.error("!item.children");return}for(let s of r){const{start:a,deleteCount:o,items:u}=s;for(let l=a;l<a+o;++l){const h=n.children.get(l);this._deletedItems.has(h)?console.error(`this._deletedItems.has(currentItem(${h.id}))`):this._deletedItems.add(h)}for(let l of u)this._deletedItems.has(l)?this._deletedItems.delete(l):this._addedItems.add(l)}this._execTransaction()})),e!==void 0&&(this.itemDivHeight=e)}get selectedItems(){return this._selectedItems}get lastSelectedItem(){return this._selectedItems.length>0?this._selectedItems.get(this._selectedItems.length-1):void 0}get itemDivHeight(){return this._itemDivHeight.value}set itemDivHeight(e){this._itemDivHeight.value=e}get itemDivHeightChanged(){return this._itemDivHeight.changed}forceRedraw(){this._forceRedrawEvent.emit()}get uiTree(){return this._uiTree}get root(){return this._root}get children(){return this._root.children}getDescendants(e){return this._root.getDescendants(e)}getTreeItemFromId(e){let n;for(let r of this.getDescendants())if(r.id===e){n=r;break}return n}_startTransaction(){this._transactionStack===0&&(this._deletedItems.size>0&&(console.warn("this._deletedItems.size > 0"),this._deletedItems.clear()),this._addedItems.size>0&&(console.warn("this._addedItems.size > 0"),this._addedItems.clear())),++this._transactionStack}_stopTransaction(){--this._transactionStack,this._execTransaction()}_execTransaction(){this._transactionStack===0&&(this._deletedItems.size>0&&(this._itemsDeleted.emit([...this._deletedItems]),this._deletedItems.clear()),this._addedItems.size>0&&(this._itemsAdded.emit([...this._addedItems]),this._addedItems.clear()))}get itemChildrenChanged(){return this._itemChildrenChanged}get itemChildrenToChange(){return this._itemChildrenToChange}get itemsChanged(){return this._itemsChanged}get itemsAdded(){return this._itemsAdded}get itemsDeleted(){return this._itemsDeleted}},f(ls,"defaultItemDivHeight",24),f(ls,"canMoveToTreeItem",Th),f(ls,"moveToTreeItem",bd),f(ls,"canMoveToTreeItems",K0),f(ls,"moveToTreeItems",Q0),ls);class Ke extends ${constructor(e,n,r=!0,s){super();f(this,"_obj",this.disposeVar(H(void 0)));this._resetEvent=e,this._createFunc=n;const a=this._resetEvent,o=this._createFunc,u=()=>{this._obj.value&&(this._obj.value.destroy(),this._obj.value=void 0)};this.dispose(u);const l=(...h)=>{u(),this._obj.value=o(...h)};r&&(s?this._obj.value=o(...s):this._obj.value=o()),this.dispose(a.disposableOn(l))}get obj(){return this._obj.value}get objChanged(){return this._obj.changed}}class DC extends ${constructor(e,n=!0,r){super();f(this,"_event",this.disposeVar(new T));f(this,"_objResettingWithEvent");this._createFunc=e,this._execOnInit=n,this._initParams=r,this._objResettingWithEvent=this.disposeVar(new Ke(this._event,this._createFunc,this._execOnInit,this._initParams))}get obj(){return this._objResettingWithEvent.obj}get objChanged(){return this._objResettingWithEvent.objChanged}reset(...e){this._event.emit(...e)}}const ip=class ip extends ${constructor(){super();f(this,"_set",new Set);f(this,"_toChangeEvent",this.dv(new T));f(this,"_changedEvent",this.dv(new T));f(this,"main");this.dispose(()=>{this._set.size!==0&&(ip.warnOnDestroying&&console.warn("this._set.size > 0"),this.clear())})}get toChange(){return this._toChangeEvent}get changed(){return this._changedEvent}add(...e){if(e.length==2&&typeof e[1]=="boolean")e[1]&&(this.main=e[0]);else for(let n of e)this._toChangeEvent.emit([],[n]),this._set.add(n),this._changedEvent.emit([],[n])}delete(...e){for(let n of e)this.main&&this.main==n&&(this.main=void 0),this._toChangeEvent.emit([n],[]),this._set.delete(n),this._changedEvent.emit([n],[])}disposableAdd(...e){return e.length==2&&typeof e[1]=="boolean"?(e[1]&&(this.main=e[0]),this.add(e[0]),()=>this.delete(e[0])):(this.add(...e),()=>this.delete(...e))}get size(){return this._set.size}clear(){const e=[...this._set];this._toChangeEvent.emit([],e),this._set.clear(),this._changedEvent.emit([],e),this.main=void 0}values(){return this._set.values()}};f(ip,"warnOnDestroying",!0);let Pd=ip;async function n_(i){const t=[],e=[],n=i.entries();for await(const[r,s]of n){const a=s;a.kind==="file"?t.push(r):a.kind==="directory"&&e.push(r)}return{files:t,dirs:e}}async function Jp(i){return await(await i.getFile()).text()}async function i_(i){const t=await Jp(i);try{return JSON.parse(t)}catch{return}}async function r_(i){return await(await i.getFile()).arrayBuffer()}class s_ extends ${constructor(t){super(),this._rootDirHandle=t}get rootDirHandle(){return this._rootDirHandle}async getSubFilesAndDirs(){return await n_(this._rootDirHandle)}async getDir(t){let e=this._rootDirHandle;for(const n of t)if(e=await(e==null?void 0:e.getDirectoryHandle(n)),!e){console.log(`getDirectoryHandle ${n} failed`);return}return e}async getFile(t,e){const n=await this.getDir(t);if(n)try{return await n.getFileHandle(e)}catch(r){console.error(`未能获取当前文件 ${t.join("/")}/${e} error: ${r}`,r);return}}}class a_ extends ${constructor(e){super();f(this,"_startRootDirId",0);f(this,"_dirMap",new Map);this._prefix=e}get prefix(){return this._prefix}async getRootDirId(e){let n;try{console.log("window.showDirectoryPicker begin"),n=await window.showDirectoryPicker({id:e,mode:"read"}),console.log("window.showDirectoryPicker end",n)}catch(r){console.error(`LocalFileServer getRootDirId failed: ${r}`,r);return}if(n){const r=++this._startRootDirId,s=`${this._prefix}${r}`;return this._dirMap.set(s,new s_(n)),s}}getRootDir(e){return this._dirMap.get(e)}async getFile(e){const n=e.split("/");if(n.length<2){console.warn(`LocalFileServer getFile failed: ${e}`);return}const r=n[0],s=this._dirMap.get(r);if(!s){console.warn(`LocalFileServer getFile failed: ${e}`);return}const a=n.slice(1,n.length-1),o=n[n.length-1],u=await s.getFile(a,o);if(!u){console.warn(`LocalFileServer getFile failed: ${e}`);return}return u}async getText(e){const n=await this.getFile(e);if(n)return await Jp(n)}async getArrayBuffer(e){const n=await this.getFile(e);if(n)return await r_(n)}async getJson(e){const n=await this.getFile(e);if(n)return await i_(n)}async getLocalFilePath(e,n,r){const s=await this.getRootDirId(n);if(!s){console.warn("getRootDirId error!");return}const a=this.getRootDir(s);if(!a){console.warn("getRootDir error!");return}const o=await a.getSubFilesAndDirs();if(!o.files){console.warn("getSubFilesAndDirs error! 找不到符合要求的文件!");return}const u=e?o.files.filter(l=>e.some(h=>l.endsWith(h))):o.files;if(u.length===0){console.warn("找不到符合要求的文件!");return}return`https://${s}/${u[0]}`}}const o_=new a_("xe2_local");async function AC(i,t,e){return await o_.getLocalFilePath(i,t,e)}class u_ extends ${constructor(e,n){super();f(this,"_processing");this._complexImage=e,this._imageUri=n,this._processing=this.disposeVar(zi(async r=>{const s=this._complexImage,a=await r.promise(P0(this._imageUri,this._complexImage.crossOrigin));a&&a instanceof HTMLImageElement&&(s.size=[a.naturalWidth,a.naturalHeight],s.pixelFormat="RGBA",s.copyTexture({source:a}))})),this._processing.start()}get processing(){return this._processing}}const l_=["DEPTH_COMPONENT","DEPTH_STENCIL","ALPHA","RED","RG","RGB","RGBA","LUMINANCE","LUMINANCE_ALPHA","RGB_DXT1","RGBA_DXT1","RGBA_DXT3","RGBA_DXT5","RGB_PVRTC_4BPPV1","RGB_PVRTC_2BPPV1","RGBA_PVRTC_4BPPV1","RGBA_PVRTC_2BPPV1","RGBA_ASTC","RGB_ETC1","RGB8_ETC2","RGBA8_ETC2_EAC","RGBA_BC7"],h_=["img","gif","video","flv","hls"];let RC=class extends ${constructor(e,n){super();f(this,"_element");this._complexImage=e,this._videoSrc=n;var r=document.createElement("video");r.src=this._videoSrc,r.style.position="absolute",r.style.top="0px",r.style.left="0px",r.style.zIndex="-100",r.style.visibility="hidden",r.style.width="0px",r.style.height="0px";{const s=()=>{r.crossOrigin=this._complexImage.crossOrigin};s(),this.dispose(this._complexImage.crossOriginChanged.disposableOn(s))}{const s=()=>{r.autoplay=this._complexImage.autoplay};s(),this.dispose(this._complexImage.autoplayChanged.disposableOn(s))}{const s=()=>{r.loop=this._complexImage.loop};s(),this.dispose(this._complexImage.loopChanged.disposableOn(s))}r.muted=!0,document.body.appendChild(r),this._element=r,this.dispose(()=>document.body.removeChild(r))}get element(){return this._element}};class c_ extends ${constructor(e,n){super();f(this,"_videoDom");f(this,"_update");this._complexImage=e,this._imageUri=n,this._videoDom=this.disposeVar(new RC(this._complexImage,this._imageUri)),this._update=this.disposeVar(Gu(()=>this.update())),this._update.start()}get videoDom(){return this._videoDom}get videoElement(){return this._videoDom.element}update(){if(this.videoElement.readyState<2)return;const e=this._complexImage,{videoWidth:n,videoHeight:r}=this.videoElement;e.size=[n,r],e.pixelFormat="RGBA",e.copyTexture({source:this.videoElement})}}function Zp(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}function LC(i){if(Object.prototype.hasOwnProperty.call(i,"__esModule"))return i;var t=i.default;if(typeof t=="function"){var e=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};e.prototype=t.prototype}else e={};return Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(i).forEach(function(n){var r=Object.getOwnPropertyDescriptor(i,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:function(){return i[n]}})}),e}var Kp={},sa={},d_;function f_(){if(d_)return sa;d_=1,Object.defineProperty(sa,"__esModule",{value:!0}),sa.loop=sa.conditional=sa.parse=void 0;var i=function n(r,s){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:a;if(Array.isArray(s))s.forEach(function(l){return n(r,l,a,o)});else if(typeof s=="function")s(r,a,o,n);else{var u=Object.keys(s)[0];Array.isArray(s[u])?(o[u]={},n(r,s[u],a,o[u])):o[u]=s[u](r,a,o,n)}return a};sa.parse=i;var t=function(r,s){return function(a,o,u,l){s(a,o,u)&&l(a,r,o,u)}};sa.conditional=t;var e=function(r,s){return function(a,o,u,l){for(var h=[],c=a.pos;s(a,o,u);){var d={};if(l(a,r,o,d),a.pos===c)break;c=a.pos,h.push(d)}return h}};return sa.loop=e,sa}var Qe={},p_;function g_(){if(p_)return Qe;p_=1,Object.defineProperty(Qe,"__esModule",{value:!0}),Qe.readBits=Qe.readArray=Qe.readUnsigned=Qe.readString=Qe.peekBytes=Qe.readBytes=Qe.peekByte=Qe.readByte=Qe.buildStream=void 0;var i=function(c){return{data:c,pos:0}};Qe.buildStream=i;var t=function(){return function(c){return c.data[c.pos++]}};Qe.readByte=t;var e=function(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function(d){return d.data[d.pos+c]}};Qe.peekByte=e;var n=function(c){return function(d){return d.data.subarray(d.pos,d.pos+=c)}};Qe.readBytes=n;var r=function(c){return function(d){return d.data.subarray(d.pos,d.pos+c)}};Qe.peekBytes=r;var s=function(c){return function(d){return Array.from(n(c)(d)).map(function(p){return String.fromCharCode(p)}).join("")}};Qe.readString=s;var a=function(c){return function(d){var p=n(2)(d);return c?(p[1]<<8)+p[0]:(p[0]<<8)+p[1]}};Qe.readUnsigned=a;var o=function(c,d){return function(p,g,m){for(var w=typeof d=="function"?d(p,g,m):d,b=n(c),v=new Array(w),E=0;E<w;E++)v[E]=b(p);return v}};Qe.readArray=o;var u=function(c,d,p){for(var g=0,m=0;m<p;m++)g+=c[d+m]&&Math.pow(2,p-m-1);return g},l=function(c){return function(d){for(var p=t()(d),g=new Array(8),m=0;m<8;m++)g[7-m]=!!(p&1<<m);return Object.keys(c).reduce(function(w,b){var v=c[b];return v.length?w[b]=u(g,v.index,v.length):w[b]=g[v.index],w},{})}};return Qe.readBits=l,Qe}var m_;function FC(){return m_||(m_=1,function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var t=f_(),e=g_(),n={blocks:function(d){for(var p=0,g=[],m=d.data.length,w=0,b=(0,e.readByte)()(d);b!==p&&b;b=(0,e.readByte)()(d)){if(d.pos+b>=m){var v=m-d.pos;g.push((0,e.readBytes)(v)(d)),w+=v;break}g.push((0,e.readBytes)(b)(d)),w+=b}for(var E=new Uint8Array(w),_=0,S=0;S<g.length;S++)E.set(g[S],_),_+=g[S].length;return E}},r=(0,t.conditional)({gce:[{codes:(0,e.readBytes)(2)},{byteSize:(0,e.readByte)()},{extras:(0,e.readBits)({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:(0,e.readUnsigned)(!0)},{transparentColorIndex:(0,e.readByte)()},{terminator:(0,e.readByte)()}]},function(c){var d=(0,e.peekBytes)(2)(c);return d[0]===33&&d[1]===249}),s=(0,t.conditional)({image:[{code:(0,e.readByte)()},{descriptor:[{left:(0,e.readUnsigned)(!0)},{top:(0,e.readUnsigned)(!0)},{width:(0,e.readUnsigned)(!0)},{height:(0,e.readUnsigned)(!0)},{lct:(0,e.readBits)({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},(0,t.conditional)({lct:(0,e.readArray)(3,function(c,d,p){return Math.pow(2,p.descriptor.lct.size+1)})},function(c,d,p){return p.descriptor.lct.exists}),{data:[{minCodeSize:(0,e.readByte)()},n]}]},function(c){return(0,e.peekByte)()(c)===44}),a=(0,t.conditional)({text:[{codes:(0,e.readBytes)(2)},{blockSize:(0,e.readByte)()},{preData:function(d,p,g){return(0,e.readBytes)(g.text.blockSize)(d)}},n]},function(c){var d=(0,e.peekBytes)(2)(c);return d[0]===33&&d[1]===1}),o=(0,t.conditional)({application:[{codes:(0,e.readBytes)(2)},{blockSize:(0,e.readByte)()},{id:function(d,p,g){return(0,e.readString)(g.blockSize)(d)}},n]},function(c){var d=(0,e.peekBytes)(2)(c);return d[0]===33&&d[1]===255}),u=(0,t.conditional)({comment:[{codes:(0,e.readBytes)(2)},n]},function(c){var d=(0,e.peekBytes)(2)(c);return d[0]===33&&d[1]===254}),l=[{header:[{signature:(0,e.readString)(3)},{version:(0,e.readString)(3)}]},{lsd:[{width:(0,e.readUnsigned)(!0)},{height:(0,e.readUnsigned)(!0)},{gct:(0,e.readBits)({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:(0,e.readByte)()},{pixelAspectRatio:(0,e.readByte)()}]},(0,t.conditional)({gct:(0,e.readArray)(3,function(c,d){return Math.pow(2,d.lsd.gct.size+1)})},function(c,d){return d.lsd.gct.exists}),{frames:(0,t.loop)([r,o,u,s,a],function(c){var d=(0,e.peekByte)()(c);return d===33||d===44})}],h=l;i.default=h}(Kp)),Kp}var kC=FC();const GC=Zp(kC);var jC=f_(),VC=g_();const zC=(i,t)=>{const e=new Array(i.length),n=i.length/t,r=function(h,c){const d=i.slice(c*t,(c+1)*t);e.splice.apply(e,[h*t,t].concat(d))},s=[0,4,2,1],a=[8,8,4,2];for(var o=0,u=0;u<4;u++)for(var l=s[u];l<n;l+=a[u])r(l,o),o++;return e},BC=(i,t,e)=>{const s=e;var a,o,u,l,h,c,d,S,p,g,_,m,C,P,M,x;const w=new Array(e),b=new Array(4096),v=new Array(4096),E=new Array(4097);for(m=i,o=1<<m,h=o+1,a=o+2,d=-1,l=m+1,u=(1<<l)-1,p=0;p<o;p++)b[p]=0,v[p]=p;var _,S,C,P,x,M;for(_=S=C=P=x=M=0,g=0;g<s;){if(P===0){if(S<l){_+=t[M]<<S,S+=8,M++;continue}if(p=_&u,_>>=l,S-=l,p>a||p==h)break;if(p==o){l=m+1,u=(1<<l)-1,a=o+2,d=-1;continue}if(d==-1){E[P++]=v[p],d=p,C=p;continue}for(c=p,p==a&&(E[P++]=C,p=d);p>o;)E[P++]=v[p],p=b[p];C=v[p]&255,E[P++]=C,a<4096&&(b[a]=d,v[a]=C,a++,(a&u)===0&&a<4096&&(l++,u+=a)),d=c}P--,w[x++]=E[P],g++}for(g=x;g<s;g++)w[g]=0;return w},UC=i=>{const t=new Uint8Array(i);return jC.parse(VC.buildStream(t),GC)},qC=i=>{const t=i.pixels.length,e=new Uint8ClampedArray(t*4);for(var n=0;n<t;n++){const r=n*4,s=i.pixels[n],a=i.colorTable[s]||[0,0,0];e[r]=a[0],e[r+1]=a[1],e[r+2]=a[2],e[r+3]=s!==i.transparentIndex?255:0}return e},WC=(i,t,e)=>{if(!i.image){console.warn("gif frame does not have associated image.");return}const{image:n}=i,r=n.descriptor.width*n.descriptor.height;var s=BC(n.data.minCodeSize,n.data.blocks,r);n.descriptor.lct.interlaced&&(s=zC(s,n.descriptor.width));const a={pixels:s,dims:{top:i.image.descriptor.top,left:i.image.descriptor.left,width:i.image.descriptor.width,height:i.image.descriptor.height}};return n.descriptor.lct&&n.descriptor.lct.exists?a.colorTable=n.lct:a.colorTable=t,i.gce&&(a.delay=(i.gce.delay||10)*10,a.disposalType=i.gce.extras.disposal,i.gce.extras.transparentColorGiven&&(a.transparentIndex=i.gce.transparentColorIndex)),a.patch=qC(a),a},HC=(i,t)=>i.frames.filter(e=>e.image).map(e=>WC(e,i.gct));async function v_(i){const e=await(await fetch(i)).arrayBuffer(),n=UC(e),r=HC(n);return{gif:n,gifFrames:r,arrayBuffer:e}}function __(i,t,e){return i<t?t:i>e?e:i}class y_ extends Cd{constructor(e,n=!0,r){super();f(this,"_gifFrames",this.disposeVar(H(void 0)));f(this,"_gifDurations",[]);f(this,"_gifDuration",this.disposeVar(H(0)));f(this,"_gifSize",this.disposeVar(H([0,0],(e,n)=>e.every((r,s)=>r===n[s]),e=>[...e])));f(this,"_autoPlayOnLoad",this.disposeVar(H(!0)));f(this,"_gifCanvas");this._container=e,this.loop=!0;const s=document.createElement("canvas");this._gifCanvas=s,s.style.width="100%",s.style.height="100%";const a=s.getContext("2d");this._container&&this._container.appendChild(s),this.dispose(()=>this._container&&this._container.removeChild(s));let o;this.dispose(this._gifFrames.changed.disposableOn(l=>{if(!l||l.length===0){s.width=0,s.height=0;return}const{width:h,height:c}=l[0].dims;this._gifSize.value=[h,c];const d=l.length;let p=0;this._gifDurations.length=0;for(let g=0;g<d;++g)p+=l[g].delay,this._gifDurations.push(p);this._gifDuration.value=this._gifDurations[this._gifDurations.length-1],s.width=h,s.height=c,o=a.createImageData(h,c),this.currentTimeChangedEvent.emit(this.currentTime,this.currentTime),this._autoPlayOnLoad.value&&(this.currentTime=0,this.playing=!0)}));let u=-1;this.dispose(this.currentTimeChangedEvent.disposableOn(l=>{const h=__(l/this.duration,0,1),c=this.gifDuration*h,d=this._gifFrames.value;if(d&&d.length>0){const p=this._getFrame(c);if(p===u)return;u=p;const g=d[p];if(g.disposalType!==0&&g.disposalType!==1&&g.disposalType!==2&&Nu(`gif parsed get disposalType ${g.disposalType}... frame: ${p} size: ${JSON.stringify(g.dims)}`,`gif parsed get disposalType ${g.disposalType}...`),o&&(p===0||g.disposalType===2)&&o.data.fill(0),o){const[m,w]=this._gifSize.value,{width:b,height:v,left:E,top:_}=g.dims;if(v>w)throw new Error("height > canvasHeight");for(let S=0;S<v;++S)for(let C=0;C<b;++C){const P=S*b+C,x=_+S,M=E+C,O=x*m+M,I=o.data,N=g.patch,R=N[P*4+3]/255;I[O*4+0]=I[O*4+0]*(1-R)+N[P*4+0]*R|0,I[O*4+1]=I[O*4+1]*(1-R)+N[P*4+1]*R|0,I[O*4+2]=I[O*4+2]*(1-R)+N[P*4+2]*R|0,I[O*4+3]=__(I[O*4+3]+N[P*4+3],0,255)|0}a.putImageData(o,0,0)}}else Nu("gif资源未加载!无法播放!")})),this.dispose(this._gifDuration.changed.disposableOn(()=>{this.duration=this.gifDuration})),this._autoPlayOnLoad.value=n,this._gifFrames.value=r}get gifCanvas(){return this._gifCanvas}set gifFrames(e){this._gifFrames.value=e}get gifFrames(){return this._gifFrames.value}get gifFramesChanged(){return this._gifFrames.changed}get gifSize(){return this._gifSize.value}get gifSizeChanged(){return this._gifSize.changed}get gifDuration(){return this._gifDuration.value}get gifDurationChanged(){return this._gifDuration.changed}get autoPlayOnLoad(){return this._autoPlayOnLoad.value}set autoPlayOnLoad(e){this._autoPlayOnLoad.value=e}get autoPlayOnLoadChanged(){return this._autoPlayOnLoad.changed}_getFrame(e){const n=this._gifDurations.length;for(let r=0;r<n;++r)if(e<=this._gifDurations[r])return r;throw new Error("should not be here")}}class w_ extends ${constructor(e){super();f(this,"_player");f(this,"_url",this.disposeVar(H("")));f(this,"_loadGifFramesProcessing",this.disposeVar(Sd(e=>ku(v_(e)))));this._player=this.disposeVar(new y_(e)),this._player.autoPlayOnLoad=!0,this._loadGifFramesProcessing.completeFunc=({gifFrames:n})=>this._player.gifFrames=n,this.dispose(this._url.changed.disposableOn(n=>{this._player.gifFrames=void 0,this._loadGifFramesProcessing.restart(new Fr(`reload gif(${n})`),n)}))}get player(){return this._player}set url(e){this._url.value=e}get url(){return this._url.value}get loadedEvent(){return this._loadGifFramesProcessing.completeEvent}get size(){return this._player.gifSize}get sizeChanged(){return this._player.gifSizeChanged}get duration(){return this._player.gifDuration}get durationChanged(){return this._player.gifDurationChanged}}class E_ extends ${constructor(e,n){super();f(this,"_gif",this.disposeVar(new w_));f(this,"_update");this._complexImage=e,this._imageUri=n,this._gif.url=this._imageUri,this._update=this.disposeVar(Gu(()=>this.update())),this._update.start()}get gif(){return this._gif}update(){const{player:e}=this._gif;if(!e.gifFrames)return;const n=this._complexImage,{width:r,height:s}=e.gifCanvas;n.size=[r,s],n.pixelFormat="RGBA",n.copyTexture({source:e.gifCanvas});{const a=()=>{e.autoPlayOnLoad=this._complexImage.autoplay};a(),this.dispose(this._complexImage.autoplayChanged.disposableOn(a))}{const a=()=>{e.loop=this._complexImage.loop};a(),this.dispose(this._complexImage.loopChanged.disposableOn(a))}}}function S_(i,t){const[e,n,r]=gh(i),s=H(void 0),a=()=>{const o=e()??t;s.value=o&&Et.context.getStrFromEnv(o)};return a(),r&&s.d(r.don(a)),s.d(Et.context.environmentVariablesChanged.don(a)),s}function C_(i){const t=/\${(.*?)\}/g;if(!t.test(i))return i;const e=i.replace(t,(n,r)=>{const s=Et.context.getEnv(r);return s===void 0?(console.warn(`环境变量(${r})不存在,无法进行转换`),"{env-error}"):s});return C_(e)}class $C extends ${constructor(e){super();f(this,"_sceneObjRefs",new Map);f(this,"_refs",{});f(this,"_refsChanged",this.dv(new T));const n=(r,s,a)=>{if(a){const o=this.getLastSceneObject(a),u=this._sceneObjRefs.get(a);if(!u)console.warn(`this._sceneObjRefs中不存在ref(${a}), 可能系统存在逻辑问题`);else{const h=u.indexOf(r);h===-1?console.warn(`this._sceneObjRefs中不存在当前对象(id: ${r.id} type: ${r.typeName})!可能系统存在逻辑问题`):(u.splice(h,1),u.length===0&&this._sceneObjRefs.delete(a))}const l=this.getLastSceneObject(a);this._refs[a]=l,this._refsChanged.emit(l,o)}if(s){const o=this.getLastSceneObject(s),u=this._sceneObjRefs.get(s);u?(u.push(r),u.length>0&&console.warn(`同时存在多个ref${s}相同的场景对象!
22
22
  ${u.map(h=>`${h.id} ${h.typeName}
23
- `).join(" ")}`)):this._sceneObjRefs.set(s,[r]);const l=this.getLastSceneObject(s);this._refs[s]=l,this._refsChanged.emit(l,o)}};this.d(e.sceneObjCreatedEvent.don(r=>{const s=(a,o)=>n(r,a,o);r.ref&&s(r.ref,void 0),r.refChanged.don(s)})),this.d(e.sceneObjToDestroyEvent.don(r=>{r.ref&&n(r,void 0,r.ref)}))}get sceneObjRefs(){return this._sceneObjRefs}get refs(){return this._refs}get refsChanged(){return this._refsChanged}getLastSceneObject(e){const n=this.getSceneObjects(e);if(n)return n[n.length-1]}getSceneObjects(e){const n=this._sceneObjRefs.get(e);if(!(!n||n.length===0))return n}}class XC extends ${constructor(){super();f(this,"_esObjConstructors",new Map);f(this,"_sceneObjs",new Map);f(this,"_sceneObjCreatedEvent",new T);f(this,"_sceneObjToDestroyEvent",new T);f(this,"_refsManager",this.dv(new $C(this)));f(this,"_environmentVariables",window.ESSDK_ENV||{});f(this,"_environmentVariablesChanged",this.dv(new T))}get typeNames(){return this._esObjConstructors.keys()}get sceneObjs(){return this._sceneObjs.values()}get sceneObjCreatedEvent(){return this._sceneObjCreatedEvent}get sceneObjToDestroyEvent(){return this._sceneObjToDestroyEvent}get refsManager(){return this._refsManager}get $refs(){return this._refsManager.refs}register(e,n,r){return this._esObjConstructors.has(e)&&console.warn(`register warn: ${e} has registered ! will be override!`),this._esObjConstructors.set(e,n),r&&_s(n,"__sceneObjExtraInfo",r),e}_addSceneObject(e){this._sceneObjs.set(e.id,e),this._sceneObjCreatedEvent.emit(e),e.d(()=>this._deleteSceneObject(e))}addSceneObject(e){this._addSceneObject(e)}_deleteSceneObject(e){this._sceneObjToDestroyEvent.emit(e),this._sceneObjs.delete(e.id)}deleteSceneObject(e){this._deleteSceneObject(e)}createSceneObjectFromClass(e,n){if(!n||this._sceneObjs.has(n)){const s=Du();n&&console.warn(`已存在相同id的对象!id自动变更!${n} -> ${s} 请注意:id变更可能导致引用失效!`),n=s}if(!n)throw new Error("id不能为空!");const r=new e(n);return r.id!==n&&(console.warn(`sceneObj.id(${r.id}) !== id(${n}) sceneObjectType: ${r.typeName}`),console.warn("出现这种问题有可能是自定义的场景对象,没有在构造函数中传递id参数!示例如下:"),console.warn("class XXX extends XXX { constructor(id) { super(id); } }")),this._addSceneObject(r),r}createSceneObject(e,n){if(typeof e=="string"){const r=this._getSceneObjConstructor(e);if(!r){console.warn(`Cannot find SceneObjectType: ${e}`);return}return this.createSceneObjectFromClass(r,n)}else return this.createSceneObjectFromClass(e,n)}createSceneObjectFromUrl(e,n){let r;const s=e.toLowerCase();if(s.includes(".gltf")||s.includes(".glb")?r="ESGltfModel":s.includes("tileset.json")?r="ES3DTileset":s.includes("layer.json")||s.includes("ion://1")?r="ESTerrainLayer":s.includes(".jpg")||s.includes(".png")||s.includes(".jpeg")||s.includes(".webp")||s.includes("image/jpg")||s.includes("image/png")||s.includes("image/jpeg")||s.includes("image/webp")?r="ESImageLabel":(s.includes("/tilemapresource.xml")||s.includes("ion://")||s.includes("wms")||s.includes("wmts")||s.includes("{x}")||s.includes("{y}")||s.includes("{z}"))&&(r="ESImageryLayer"),!!r)return this.createSceneObjectFromJson({type:r,id:n,url:e})}createSceneObjectFromJson(e){const n=this.createSceneObject(e.type,e.id);return n&&(n.json=e),n}destroySceneObject(e){return this._deleteSceneObject(e),e.destroy(),e.isDestroyed()}getSceneObjectById(e){return this._sceneObjs.get(e)}getSceneObject(e){if(!e&&e!="")return Array.from(this._sceneObjs.values());if(typeof e=="function"){const n=[];for(const r of this._sceneObjs.values())r instanceof e&&n.push(r);return n}if(e.startsWith("ES")){const n=[];for(const r of this._sceneObjs.values())r.typeName===e&&n.push(r);return n}return this._sceneObjs.get(e)}_getSceneObjConstructor(e){const n=this._esObjConstructors.get(e);if(n)return n}getProps(e){const n=this._getSceneObjConstructor(e);if(!n){console.warn(`cannot get constructor from type: ${e}`);return}return Vi(n,"__sceneObjExtraInfo")}setProps(e,n){const r=this._getSceneObjConstructor(e);if(!r){console.warn(`cannot get constructor from type: ${e}`);return}let s=Vi(r,"__sceneObjExtraInfo");s||(s={},_s(r,"__sceneObjExtraInfo",s)),Object.assign(s,n)}getProp(e,n){const r=this.getProps(e);return r&&r[n]}setProp(e,n,r){this.setProps(e,{[n]:r})}get environmentVariables(){return this._environmentVariables}set environmentVariables(e){for(let[n,r]of Object.entries(e))this.setEnv(n,r)}get environmentVariablesChanged(){return this._environmentVariablesChanged}setEnv(e,n){if(this._environmentVariables[e]!==n){const r=this._environmentVariables[e];this._environmentVariables[e]=n,this._environmentVariablesChanged.emit(e,n,r)}window.ESSDK_ENV={...this._environmentVariables}}getEnv(e){return this._environmentVariables[e]}getStrFromEnv(e){return C_(e)}createEnvStrReact(e,n){return S_(e,n)}createEvnStrReact(e,n){return S_(e,n)}}const Gt=class Gt extends ${constructor(e){super();f(this,"_components",this.dv(new Pd));f(this,"_viewerAttached",this.dv(new T));f(this,"_viewerDetached",this.dv(new T));f(this,"_attachedViewers",(()=>{const e=new Set;return this.d(this._viewerAttached.don(n=>{n.actived&&(this.activeViewer=n),n.ad(n.activedChanged.don(r=>{r&&e.has(n)&&(this.activeViewer=n)})),e.add(n)})),this.d(this._viewerDetached.don(n=>{e.delete(n),this.activeViewer==n&&(this.activeViewer=void 0)})),e})());f(this,"_activeViewer",this.disposeVar(H(void 0)));f(this,"_createdEvent",this.dv(new T));f(this,"_flushEvent",this.dv(new T));f(this,"_id");f(this,"_updateFuncReact",this.dv(H(void 0)));f(this,"_toDestroyFuncReact",this.dv(H(void 0)));f(this,"_parentID");e!==void 0&&(typeof e!="string"?console.warn(`对象id必须是字符串类型,当前id的类型是${typeof e},值为${e}`):e.trim()===""?console.warn("场景对象创建时的id不能是空字符串!"):e.trim()!==e&&console.warn(`id前后有空字符串!id: ${e}`)),this._id=e??Du(),this._initName();{const n=()=>{if(this.execOnceFuncStr)try{Function(`"use strict";return (${this.execOnceFuncStr})`)()(this)}catch(r){console.warn(`execOnceFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${r}`)}};n(),this.d(this.execOnceFuncStrChanged.don(n))}{const n=()=>{if(this.updateFuncStr)try{this.updateFunc=Function(`"use strict";return (${this.updateFuncStr})`)()}catch(s){console.warn(`updateFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${s}`)}};n(),this.d(this.updateFuncStrChanged.don(n));let r;this.d(()=>r&&r.destroy()),this.d(this.updateFuncChanged.don(()=>{r&&r.cancel(),this.updateFunc&&(r=r||bh(),r.restart(void 0,s=>{this.updateFunc&&this.updateFunc(this,s)}))}))}{const n=()=>{try{this.toDestroyFunc=this.toDestroyFuncStr&&Function(`"use strict";return (${this.toDestroyFuncStr})`)()||void 0}catch(r){console.warn(`toDestroyFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${r}`),this.toDestroyFunc=void 0}};n(),this.d(this.toDestroyFuncStrChanged.don(n)),this.d(this.toDestroyEvent.don(()=>{this.toDestroyFunc&&this.toDestroyFunc(this)}))}}static getParentClass(){return Object.getPrototypeOf(this)}static register(e,n,r){La(n.prototype,n.createDefaultProps);const s=n.createDefaultProps();n.defaults&&(n.defaults={});for(const a of Object.keys(s))n.defaults[a]=s[a]instanceof mn?s[a].value:s[a];return this.innerRegister(e,n,r),e}static get envs(){return Gt.context.environmentVariables}static get $refs(){return Gt.context.refsManager.refs}get components(){return this._components}get viewerAttached(){return this._viewerAttached}get viewerDetached(){return this._viewerDetached}get attachedViewers(){return this._attachedViewers}get activeViewer(){return this._activeViewer.value}set activeViewer(e){this._activeViewer.value=e}get activeViewerChanged(){return this._activeViewer.changed}removefromViewer(e){this.attachedViewers.has(e)&&e.delete(this)}addToViewer(e){this.attachedViewers.has(e)||e.add(this)}registerAttachedObject(e){const n=new Map;this.d(()=>{n.size>0&&console.warn("viewerPropSceneObjects.size > 0")}),this.d(this._viewerAttached.don(r=>{const s=e(r);s&&n.set(r,s)})),this.d(this._viewerDetached.don(r=>{if(!n.has(r))return;const s=n.get(r);s&&(s.destroy(),n.delete(r))}))}createAttachedObject(e){const n=new Map,r=()=>{for(let[u,l]of n.entries())l.destroy();n.clear()},s=u=>{const l=e(u);l&&n.set(u,l)};for(let u of this.attachedViewers)s(u);const a=this._viewerAttached.don(s),o=this._viewerDetached.don(u=>{if(!n.has(u))return;const l=n.get(u);l&&(l.destroy(),n.delete(u))});return()=>{o(),a(),r()}}registerAttachedObjectForContainer(e){this.registerAttachedObject(n=>new YC(n,e))}get createdEvent(){return this._createdEvent}get flushEvent(){return this._flushEvent}flush(){this.flushEvent.emit()}get id(){return this._id}get typeName(){return this.constructor.type}_initName(){this.name=`${this.typeName}_${(""+this.id).slice(-4)}`}get defaultProps(){return this.constructor.createDefaultProps()}_innerGetJson(e=!0){const n={id:this.id,type:this.typeName};for(let r of Object.keys(this.defaultProps))if(e){let s,a=this.defaultProps[r];a instanceof mn?s=a.equals(this[r]):s=a===this[r],s||(n[r]=this[r])}else n[r]=this[r];return n}_innerSetJson(e,n,r){if(!(e instanceof Object)||e.type&&e.type!==this.typeName){console.error(`value.type && value.type${e.type} !== this.typeName${this.typeName}`);return}e.id&&e.id!==this.id&&console.warn(`value.id === undefined || value.id${e.id} !== this.id(${this.id})`);const s=n||[];s.push("id","type");const a=Object.keys(this.defaultProps).filter(o=>!s.includes(o));for(let o of a)if(o in e)this[o]=e[o]===null?void 0:e[o];else if(!(r??!1)){let u=this.defaultProps[o];u instanceof mn&&(u=u.value),this[o]=u}}get completeJson(){return this._innerGetJson(!1)}get json(){return this._innerGetJson()}set json(e){this._innerSetJson(e)}get _jsonStr(){return JSON.stringify(this.json,null,4)}set _jsonStr(e){this._innerSetJson(JSON.parse(e))}get updateFunc(){return this._updateFuncReact.value}set updateFunc(e){this._updateFuncReact.value=e}get updateFuncChanged(){return this._updateFuncReact.changed}get toDestroyFunc(){return this._toDestroyFuncReact.value}set toDestroyFunc(e){this._toDestroyFuncReact.value=e}get toDestroyFuncChanged(){return this._toDestroyFuncReact.changed}get parentID(){return this._parentID??this.id}set parentID(e){this._parentID=e}getESProperties(){return{defaultMenu:"general",basic:[],general:[new Pt([this,"typeName"],"类型",void 0,!1,!0),new Pt([this,"id"],"id",void 0,!1,!0),new Pt([this,"name"],"名称"),new eg("JSON",()=>this._jsonStr,e=>e&&(this._jsonStr=e))],dataSource:[],location:[],coordinate:[],style:[],more:[new Pt([this,"ref"],"ref",void 0,!0),new Tt([this,"extras"],"extras",{},void 0,!0)]}}};f(Gt,"context",new XC),f(Gt,"innerRegister",Gt.context.register.bind(Gt.context)),f(Gt,"defaults",{}),f(Gt,"createDefaultProps",()=>({name:"未命名场景对象",ref:void 0,extras:Vt(void 0),devTags:Ee(void 0),execOnceFuncStr:void 0,updateFuncStr:void 0,toDestroyFuncStr:void 0})),f(Gt,"type",Gt.register("ESSceneObject",Gt,{chsName:"场景类",tags:["ESObjects"],description:""})),f(Gt,"create",Gt.context.createSceneObject.bind(Gt.context)),f(Gt,"createFromUrl",Gt.context.createSceneObjectFromUrl.bind(Gt.context)),f(Gt,"createFromClass",Gt.context.createSceneObjectFromClass.bind(Gt.context)),f(Gt,"createFromJson",Gt.context.createSceneObjectFromJson.bind(Gt.context)),f(Gt,"destroySceneObject",Gt.context.destroySceneObject.bind(Gt.context)),f(Gt,"getSceneObjById",Gt.context.getSceneObjectById.bind(Gt.context)),f(Gt,"getSceneObj",Gt.context.getSceneObject.bind(Gt.context)),f(Gt,"getEnv",Gt.context.getEnv.bind(Gt.context)),f(Gt,"setEnv",Gt.context.setEnv.bind(Gt.context)),f(Gt,"getStrFromEnv",Gt.context.getStrFromEnv.bind(Gt.context)),f(Gt,"getSceneObjectById",Gt.context.getSceneObjectById.bind(Gt.context)),f(Gt,"getSceneObject",Gt.context.getSceneObject.bind(Gt.context));let Et=Gt;class YC extends ${constructor(t,e){super(),this.dv(new Ke(t.subContainerChanged,()=>{if(t.subContainer)return e(t,t.subContainer)}))}}const rp=class rp extends ${constructor(e,n,r){super();f(this,"_id",++rp._accumId);this._name=e,this._description=n,this._callFunction=r}get id(){return this._id}get name(){return this._name}get description(){return this._description}get callFunction(){return this._callFunction}};f(rp,"_accumId",-1);let Ga=rp;class Qp extends Ga{constructor(t,e,n,r,s,a){super(t,e,a??(()=>{})),this._withUndefined=n,this._readonly=r,this._defaultValue=s}get withUndefined(){return this._withUndefined}get readonly(){return this._readonly}get defaultValue(){return this._defaultValue instanceof Function?this._defaultValue():this._defaultValue}}class oi extends Qp{constructor(e,n,r,s,a,o,u){var h;const l=e instanceof mn?"未获取到属性名":e[1].toString();super(n??l,o??l,s??!1,a??!1,r,u);f(this,"_propName");f(this,"_typeName");this._reactVar=e,this._propName=l;try{this._typeName=e instanceof mn?"未获取到对象类型":(h=e[0])==null?void 0:h.typeName}catch{this._typeName="未获取到对象类型"}}get reactVar(){return this._reactVar}get propName(){return this._propName}get typeName(){return this._typeName}}class rt extends oi{get type(){return"BooleanProperty"}}class Pt extends oi{get type(){return"StringProperty"}}class D extends oi{get type(){return"NumberProperty"}}class _n extends oi{get type(){return"Number2Property"}}class qn extends oi{get type(){return"Number3Property"}}class sr extends oi{get type(){return"Number4Property"}}class Wt extends sr{get type(){return"ColorProperty"}}class b_ extends D{get type(){return"DashPatternProperty"}}class Es extends oi{get type(){return"DateProperty"}}class tg extends oi{get type(){return"DatesProperty"}}class Mt extends Ga{constructor(e,n,r){super(e??"",r??"");f(this,"_placement");this._placement=n}get type(){return"DivideProperty"}get placement(){return this._placement}}class Nt extends oi{constructor(t,e,n,r,s,a,o){super(t,n,r,s,a,o),this._enums=e}get type(){return"EnumProperty"}get enums(){return this._enums}}class aa extends oi{constructor(t,e,n,r,s,a,o){super(t,e,n,s,a,o),this._sampleValue=r}get sampleValue(){return this._sampleValue}get type(){return"EvalStringProperty"}}class xd extends oi{constructor(t,e,n,r,s,a,o){super(t,e,n,s,a,o),this._sampleValue=r}get sampleValue(){return this._sampleValue}get type(){return"LongStringProperty"}}class bt extends Ga{constructor(e,n,r,s){const a=e??"Unnamed Function";super(a,s??a);f(this,"_paramsLength");this._func=n,this._defaultParams=r,this._paramsLength=this._func.length??0}get paramsLength(){return this._paramsLength}get defaultParams(){return this._defaultParams}get isOpen(){return this._defaultParams.length!==this._paramsLength}get func(){return this._func}run(...e){this._func(...e)}get type(){return"MethodProperty"}}class an extends oi{constructor(t,e,n,r,s,a,o,u){super(t,r,s,a,o,u),this._step=e,this._minMax=n}get type(){return"NumberSliderProperty"}get minMax(){return this._minMax}get step(){return this._step}}class ja extends qn{get type(){return"PositionProperty"}}class Id extends qn{get type(){return"RotationProperty"}}function JC(i,t){const[e,n,r]=gh(i),[s,a,o]=gh(t),u=H((e()??0)/(s()??3e3)),l=()=>{const h=u.value,c=s()??3e3,d=e()??0;if(!Number.isFinite(c)||!Number.isFinite(d)){console.warn(`duration || currentTime error: duration: ${c} currentTime: ${d}`);return}Math.abs(h*c-d)<.001||(c<=0?u.value=0:u.value=d/c)};return u.dispose(r.disposableOn(l)),u.dispose(o.disposableOn(l)),u.dispose(u.changed.disposableOn(()=>{const h=u.value,c=s()??3e3,d=e()??0;if(!Number.isFinite(c)||!Number.isFinite(d)){console.warn(`duration || currentTime error: duration: ${c} currentTime: ${d}`);return}Math.abs(h*c-d)<.001||n(h*c)})),u}class Md extends Ga{constructor(e,n,r,s,a,o){super(s??"播放器",o??"播放器");f(this,"_defaults",{playing:!1,ratio:0,loop:!1});this._playingReact=e,this._ratioReact=n,this._loopReact=r,a&&(this._defaults.playing=a.playing??this._defaults.playing,this._defaults.ratio=a.ratio??this._defaults.ratio,this._defaults.loop=a.loop??this._defaults.loop)}get type(){return"PlayerProperty"}get playingReact(){return this._playingReact}get ratioReact(){return this._ratioReact}get loopReact(){return this._loopReact}get defaults(){return this._defaults}}f(Md,"createPlayingRatio",JC);class P_ extends Ga{constructor(e,n,r,s,a,o){const u=s??"视角播放器";super(u,o??u);f(this,"_defaults",{playing:!1,loop:!1});this._playingReact=e,this._stopFn=n,this._loopReact=r,a&&(this._defaults.playing=a.playing??this._defaults.playing,this._defaults.loop=a.loop??this._defaults.loop)}get type(){return"ViewPlayerProperty"}get playingReact(){return this._playingReact}get loopReact(){return this._loopReact}get stopFn(){return this._stopFn}get defaults(){return this._defaults}}class tn extends oi{constructor(t,e,n,r,s,a,o){super(t,e,n,s,a,o),this._sampleValue=r}get sampleValue(){return this._sampleValue}get type(){return"JsonArrayProperty"}}class Tt extends oi{constructor(t,e,n,r,s,a,o){super(t,e,n,s,a,o),this._sampleValue=r}get sampleValue(){return this._sampleValue}get type(){return"JsonProperty"}}class eg extends Qp{constructor(t,e,n,r,s,a){super(t,a??t,r??!1,s??!1),this._getFunc=e,this._setFunc=n}get getFunc(){return this._getFunc}get setFunc(){return this._setFunc}get type(){return"GetSetProperty"}}var ft=(i=>(i.Place="place",i.BrushErase="brushErase",i.Translation="translation",i.Rotation="rotation",i.Scale="scale",i.DoublePointsAppend="doublePointsAppend",i.DoublePointsModify="doublePointsModify",i.CircularAppend="circularAppend",i.CircularInsert="circularInsert",i.LineStringAppend="lineStringAppend",i.LineStringInsert="lineStringInsert",i.ScatterAppend="scatterAppend",i.ScatterModify="scatterModify",i.VisibilityAppend="visibilityAppend",i.VisibilityModify="visibilityModify",i.HeightModify="heightModify",i.SinglePoint="singlePoint",i.DoublePoints="doublePoints",i))(ft||{}),x_=(i=>(i.DECIMAL_DEGREE="DECIMAL_DEGREE",i.DEGREES_DECIMAL_MINUTES="DEGREES_DECIMAL_MINUTES",i.SEXAGESIMAL_DEGREE="SEXAGESIMAL_DEGREE",i))(x_||{});class ZC{constructor(t){this.childPickedInfo=t}}class KC{constructor(t,e,n,r,s,a){this.pickResult=t,this.sceneObject=e,this.tilesetPickInfo=n,this.geojsonPickInfo=r,this.attachedInfo=s,this.screenPosition=a}assign(t){t!=null&&t.pickedResult&&(this.pickResult=t.pickedResult),t!=null&&t.sceneObject&&(this.sceneObject=t.sceneObject),t!=null&&t.tilesetPickInfo&&(this.tilesetPickInfo=t.tilesetPickInfo),t!=null&&t.geojsonPickInfo&&(this.geojsonPickInfo=t.geojsonPickInfo),t!=null&&t.attachedInfo&&(this.attachedInfo=t.attachedInfo),t!=null&&t.screenPosition&&(this.screenPosition=t.screenPosition)}}const Je=class Je extends Et{constructor(e){super(e);f(this,"_editing",this.dv(H(!1)));f(this,"editingID");f(this,"editingBindMode","singlePoint");f(this,"_deprecated",[]);f(this,"_flyInEvent",this.dv(new T));f(this,"_flyToEvent",this.dv(new T));f(this,"_flyOverEvent",this.disposeVar(new T));f(this,"_pickedEvent",this.dv(new T));f(this,"_calcFlyToParamEvent",this.dv(new T));f(this,"_calcFlyInParamEvent",this.dv(new T));f(this,"useCalcFlyToParamInESObjectWithLocation",!1);O_(this,this.updateEditing)}supportEditingModes(){return this.constructor.supportEditingModes}get editing(){return this._editing.value}set editing(e){this._editing.value=e}get editingChanged(){return this._editing.changed}updateEditing(){}_deprecatedWarning(){const e=this._deprecated;for(let n=0;n<e.length;n++){const r=e[n];typeof r=="string"?Reflect.has(this,r+"Changed")&&this.d(this[r+"Changed"].don(()=>{console.warn(`注意:${this.typeName} 的 ${r} 属性下版本将会被移除!`)})):Object.keys(r).forEach(s=>{Reflect.has(this,s+"Changed")&&this.d(this[s+"Changed"].don(o=>{const u=r[s];typeof u=="string"?console.warn(`注意:${this.typeName} 的 ${s} 属性下版本将会被移除!`):Object.keys(u).forEach(l=>{o===l&&console.warn(`注意:${this.typeName} 的 ${s} 属性值 ${l} 下版本将会被移除,推荐使用属性值 ${u[l]}`)})}))})}}get flyInEvent(){return this._flyInEvent}flyIn(e=1){this._flyInEvent.emit(e,Je._lastFlyInId)}get flyToEvent(){return this._flyToEvent}flyTo(e=1){this._flyToEvent.emit(e,Je._lastFlyToId)}get flyOverEvent(){return this._flyOverEvent}get pickedEvent(){return this._pickedEvent}get calcFlyToParamEvent(){return this._calcFlyToParamEvent}calcFlyToParam(){this._calcFlyToParamEvent.emit()}get calcFlyInParamEvent(){return this._calcFlyInParamEvent}calcFlyInParam(){this._calcFlyInParamEvent.emit()}emptyFlyToParam(){this.flyToParam=void 0}emptyFlyInParam(){this.flyInParam=void 0}async getBoundSphere(e){return await e.getBoundSphere(this.id)}getESProperties(){const e={...super.getESProperties()};return{...e,general:[...e.general,new rt([this,"show"],"是否显示",Je.defaults.show),new rt([this,"collision"],"开启碰撞",Je.defaults.collision),new rt([this,"allowPicking"],"允许拾取",Je.defaults.allowPicking),new bt("保存观察视角",()=>this.calcFlyToParam(),[]),new bt("清空飞向参数",()=>this.emptyFlyToParam(),[]),new bt("保存飞入参数",()=>this.calcFlyInParam(),[]),new bt("清空飞入参数",()=>this.emptyFlyInParam(),[])],more:[...e.more,new Mt("飞行定位"),new bt("飞向",n=>this.flyTo(n),[1],"flyTo"),new Tt([this,"flyToParam"],"飞行参数",void 0,void 0,!0),new D([this,"flyToDistance"],"flyToDistance",void 0,!0),new D([this,"flyToHeading"],"flyToHeading",void 0,!0),new D([this,"flyToPitch"],"flyToPitch",void 0,!0),new D([this,"flyToFlyDuration"],"flyToFlyDuration",void 0,!0),new D([this,"flyToHDelta"],"flyToHDelta",void 0,!0),new D([this,"flyToPDelta"],"flyToPDelta",void 0,!0),new Mt("飞入参数"),new bt("飞入",n=>this.flyIn(n),[1],"flyIn"),new Tt([this,"flyInParam"],"飞入参数",void 0,void 0,!0)]}}get flyToDistance(){return this.flyToParam&&this.flyToParam.distance}get flyToHeading(){return this.flyToParam&&this.flyToParam.heading}get flyToPitch(){return this.flyToParam&&this.flyToParam.pitch}get flyToFlyDuration(){return this.flyToParam&&this.flyToParam.flyDuration}get flyToHDelta(){return this.flyToParam&&this.flyToParam.hDelta}get flyToPDelta(){return this.flyToParam&&this.flyToParam.pDelta}get flyToDistanceChanged(){return this.flyToParamChanged}get flyToHeadingChanged(){return this.flyToParamChanged}get flyToPitchChanged(){return this.flyToParamChanged}get flyToFlyDurationChanged(){return this.flyToParamChanged}get flyToHDeltaChanged(){return this.flyToParamChanged}get flyToPDeltaChanged(){return this.flyToParamChanged}set flyToDistance(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,distance:e}:void 0}set flyToHeading(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,heading:e}:void 0}set flyToPitch(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,pitch:e}:void 0}set flyToFlyDuration(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,flyDuration:e}:void 0}set flyToHDelta(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,hDelta:e}:void 0}set flyToPDelta(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,pDelta:e}:void 0}};f(Je,"createDefaultProps",()=>({...Et.createDefaultProps(),show:!0,collision:!0,allowPicking:!1,flyToParam:Ce(void 0),flyInParam:Ce(void 0)})),f(Je,"type",Je.register("ESVisualObject",Je,{chsName:"可视化对象",tags:["ESObjects"],description:"可视化对象"})),f(Je,"supportEditingModes",[]),f(Je,"defaultFlyToParam",{distance:0,heading:0,pitch:0,flyDuration:1,hDelta:0,pDelta:0}),f(Je,"defaultFlyInParam",{position:[0,0,0],rotation:[0,0,0],flyDuration:1}),f(Je,"_lastFlyInId",0),f(Je,"_lastFlyToId",0);let oe=Je;class I_ extends ${constructor(){super();f(this,"_data",this.dv(H(void 0)))}set data(e){this._data.value=e}get data(){return this._data.value}get dataChanged(){return this._data.changed}}class M_ extends ${constructor(){super(...arguments);f(this,"_dragStartEvent",this.dv(new T));f(this,"_dragOverEvent",this.dv(new T));f(this,"_dragLeaveEvent",this.dv(new T));f(this,"_dropEvent",this.dv(new T))}dragStart(e){this._dragStartEvent.emit(e)}dragOver(e){this._dragOverEvent.emit(e)}dragLeave(e){this._dragLeaveEvent.emit(e)}drop(e){this._dropEvent.emit(e)}}function QC(i,t){t&&(Reflect.has(t,"editing")?t.editing=!0:Reflect.has(t,"positionEditing")&&(t.positionEditing=!0))}function tb(i){["Czm3DTiles","View","ESCameraView","OlView","GeoCameraController"].includes(i.typeName)||(Reflect.has(i,"editing")?i.editing=!0:Reflect.has(i,"positionEditing")&&(i.positionEditing=!0)),typeof i.execOnCreating=="function"&&i.execOnCreating()}function Td(i,t){Vi(i,"__treeItem")&&console.error("setSceneObjectTreeItem error!"),_s(i,"__treeItem",t)}function eb(i){return Vi(i,"__treeItem")}function nb(i){if(!(i.startsWith("./")||i.startsWith("../")||i.startsWith("/")))return i;const t=document.createElement("a");t.href=i;const e=t.href;return t.remove(),e}function ng(i){if(typeof i!="string")return!1;try{const t=JSON.parse(i);return typeof t=="object"&&t!==null}catch{return!1}}function ib(i){try{return new DOMParser().parseFromString(i,"application/xml").getElementsByTagName("parsererror").length===0}catch{return!1}}function rb(i){return i instanceof Function?i():i}function T_(i,t){for(let e of i)if(t.includes(e))return!0;return!1}function Dh(i,t){const e=i,n=t;return e===void 0||e.length===0||n===void 0||n.length===0?!0:T_(e,n)}function sb(i){const t=setTimeout(()=>{i(),clearTimeout(t)})}function ju(i){let t=i%360;return t=t<0?360+t:t,t}function N_(i){return ju(i+180)-180}function Nd(i,t,e){let n=ju(i),r=ju(t);Math.abs(n-r)>180&&(n<r?n+=360:r+=360);const s=n*(1-e)+r*e;return N_(s)}function ig(i,t,e,n){return n=n||[0,0,0],n[0]=Nd(i[0],t[0],e),n[1]=Nd(i[1],t[1],e),n[2]=Nd(i[2],t[2],e),n}function O_(i,t,e="editing"){const n=new $;i.ad(n);const r=t.bind(i);return n.ad(new Ke(i.activeViewerChanged,()=>{const s=new $;let a=i.activeViewer;return a?(s.ad(i[`${e}Changed`].don(()=>{var o;i[`${e}`]?r():(o=(i.components.main??i).editingID)!=null&&o.includes("inner")&&i.activeViewer&&i.activeViewer.stopEditing()})),s.ad(a.editingEvent.don(o=>{if(o.objectIDs.includes(i.id)&&o.type==="end"){const u=i.components.main??i;u.editingID&&(o.editingID.includes(u.editingID)?i[e]=!1:i[e]=!u.editingID.includes("outer")),u.editingID=void 0}}))):s.ad(i[`${e}Changed`].don(()=>{i[`${e}`]=!1})),s})),i[`${e}`]&&r(),n}function ab(i){return i}function ob(i){if(i==null)return ab;var t,e,n=i.scale[0],r=i.scale[1],s=i.translate[0],a=i.translate[1];return function(o,u){u||(t=e=0);var l=2,h=o.length,c=new Array(h);for(c[0]=(t+=o[0])*n+s,c[1]=(e+=o[1])*r+a;l<h;)c[l]=o[l],++l;return c}}function ub(i,t){for(var e,n=i.length,r=n-t;r<--n;)e=i[r],i[r++]=i[n],i[n]=e}function lb(i,t){return typeof t=="string"&&(t=i.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(e){return D_(i,e)})}:D_(i,t)}function D_(i,t){var e=t.id,n=t.bbox,r=t.properties==null?{}:t.properties,s=hb(i,t);return e==null&&n==null?{type:"Feature",properties:r,geometry:s}:n==null?{type:"Feature",id:e,properties:r,geometry:s}:{type:"Feature",id:e,bbox:n,properties:r,geometry:s}}function hb(i,t){var e=ob(i.transform),n=i.arcs;function r(h,c){c.length&&c.pop();for(var d=n[h<0?~h:h],p=0,g=d.length;p<g;++p)c.push(e(d[p],p));h<0&&ub(c,g)}function s(h){return e(h)}function a(h){for(var c=[],d=0,p=h.length;d<p;++d)r(h[d],c);return c.length<2&&c.push(c[0]),c}function o(h){for(var c=a(h);c.length<4;)c.push(c[0]);return c}function u(h){return h.map(o)}function l(h){var c=h.type,d;switch(c){case"GeometryCollection":return{type:c,geometries:h.geometries.map(l)};case"Point":d=s(h.coordinates);break;case"MultiPoint":d=h.coordinates.map(s);break;case"LineString":d=a(h.arcs);break;case"MultiLineString":d=h.arcs.map(a);break;case"Polygon":d=u(h.arcs);break;case"MultiPolygon":d=h.arcs.map(u);break;default:return null}return{type:c,coordinates:d}}return l(t)}function A_(i){var e;const t=((e=i.type)==null?void 0:e.toLowerCase())??"";switch(t){case"geometrycollection":return cb(i);case"topology":const n=i.objects,r=[];for(const s in n){const a=lb(i,n[s]);r.push(...a.features)}return{type:"FeatureCollection",features:r};case"feature":return{type:"FeatureCollection",features:[i]};case"featurecollection":return i;case"":default:return console.warn(`GeoJson数据转换可能有误,数据类型${t}`),{type:"FeatureCollection",features:Array.isArray(i.features)?i.features:[]}}}function cb(i,t){const e=[],n=i.geometries||[];function r(s,a={}){!s||!s.type||(s.type==="GeometryCollection"&&Array.isArray(s.geometries)?s.geometries.forEach(o=>r(o,a)):e.push({type:"Feature",geometry:s,properties:{...s.properties||{},...a}}))}return n.forEach(s=>r(s,{})),{type:"FeatureCollection",features:e}}function db(i){const t=i.cloneNode(!0);t.style.position="fixed",t.style.visibility="hidden",t.style.pointerEvents="none",t.style.top="0",t.style.left="0",t.style.display="inline-block",document.body.appendChild(t);const e=t.getBoundingClientRect();return document.body.removeChild(t),{x:e.x,y:e.y,width:e.width,height:e.height}}class rg extends ${constructor(e){super();f(this,"_sceneObject",this.dv(H(void 0)));this._id=e,this.d(()=>{this._sceneObject.value=void 0});const n=Et.getSceneObjById(this._id);n&&(this._sceneObject.value=n),this.d(Et.context.sceneObjCreatedEvent.don(r=>{r.id===this._id&&(this._sceneObject.value=r)})),this.d(Et.context.sceneObjToDestroyEvent.don(r=>{r.id===this._id&&(this._sceneObject.value=void 0)}))}get sceneObject(){return this._sceneObject.value}get sceneObjectChanged(){return this._sceneObject.changed}get id(){return this._id}}class fb extends ${constructor(e,n){super();f(this,"_sofi");this._id=e,this._sofi=this.dv(new rg(this._id));{const r=()=>{n.sceneObject=this._sofi.sceneObject};r(),this.d(this._sofi.sceneObjectChanged.don(r))}}}class R_ extends ${constructor(){super();f(this,"_id",this.dv(H(void 0)));f(this,"_sceneObject",this.dv(H(void 0)));f(this,"_resetting",this.dv(new Ke(this.idChanged,()=>{const{id:e}=this;if(e===void 0||e===""){this.sceneObject=void 0;return}return new fb(e,this)})))}get id(){return this._id.value}get idChanged(){return this._id.changed}set id(e){this._id.value=e}get sceneObject(){return this._sceneObject.value}get sceneObjectChanged(){return this._sceneObject.changed}set sceneObject(e){this._sceneObject.value=e}get resetting(){return this._resetting}}class pb extends ${constructor(e,n,r,s){super();f(this,"_sceneObjectId",this.dv(new R_));this._id=e,this._startTimeStamp=n,this._duration=r,this._parent=s,this._sceneObjectId.id=this._id;const a=()=>{if(!this.player)return;const{currentTime:o=0}=this._parent,u=o-this._startTimeStamp;this.player.currentTime=wd(u,0,this._duration)*(this.player.speed??1)};a(),this.d(this._parent.currentTimeChanged.don(a)),this.d(this.playerChanged.don(a))}get player(){return this._sceneObjectId.sceneObject instanceof kr?this._sceneObjectId.sceneObject:void 0}get playerChanged(){return this._sceneObjectId.sceneObjectChanged}}const gb=`
23
+ `).join(" ")}`)):this._sceneObjRefs.set(s,[r]);const l=this.getLastSceneObject(s);this._refs[s]=l,this._refsChanged.emit(l,o)}};this.d(e.sceneObjCreatedEvent.don(r=>{const s=(a,o)=>n(r,a,o);r.ref&&s(r.ref,void 0),r.refChanged.don(s)})),this.d(e.sceneObjToDestroyEvent.don(r=>{r.ref&&n(r,void 0,r.ref)}))}get sceneObjRefs(){return this._sceneObjRefs}get refs(){return this._refs}get refsChanged(){return this._refsChanged}getLastSceneObject(e){const n=this.getSceneObjects(e);if(n)return n[n.length-1]}getSceneObjects(e){const n=this._sceneObjRefs.get(e);if(!(!n||n.length===0))return n}}class XC extends ${constructor(){super();f(this,"_esObjConstructors",new Map);f(this,"_sceneObjs",new Map);f(this,"_sceneObjCreatedEvent",new T);f(this,"_sceneObjToDestroyEvent",new T);f(this,"_refsManager",this.dv(new $C(this)));f(this,"_environmentVariables",window.ESSDK_ENV||{});f(this,"_environmentVariablesChanged",this.dv(new T))}get typeNames(){return this._esObjConstructors.keys()}get sceneObjs(){return this._sceneObjs.values()}get sceneObjCreatedEvent(){return this._sceneObjCreatedEvent}get sceneObjToDestroyEvent(){return this._sceneObjToDestroyEvent}get refsManager(){return this._refsManager}get $refs(){return this._refsManager.refs}register(e,n,r){return this._esObjConstructors.has(e)&&console.warn(`register warn: ${e} has registered ! will be override!`),this._esObjConstructors.set(e,n),r&&_s(n,"__sceneObjExtraInfo",r),e}_addSceneObject(e){this._sceneObjs.set(e.id,e),this._sceneObjCreatedEvent.emit(e),e.d(()=>this._deleteSceneObject(e))}addSceneObject(e){this._addSceneObject(e)}_deleteSceneObject(e){this._sceneObjToDestroyEvent.emit(e),this._sceneObjs.delete(e.id)}deleteSceneObject(e){this._deleteSceneObject(e)}createSceneObjectFromClass(e,n){if(!n||this._sceneObjs.has(n)){const s=Du();n&&console.warn(`已存在相同id的对象!id自动变更!${n} -> ${s} 请注意:id变更可能导致引用失效!`),n=s}if(!n)throw new Error("id不能为空!");const r=new e(n);return r.id!==n&&(console.warn(`sceneObj.id(${r.id}) !== id(${n}) sceneObjectType: ${r.typeName}`),console.warn("出现这种问题有可能是自定义的场景对象,没有在构造函数中传递id参数!示例如下:"),console.warn("class XXX extends XXX { constructor(id) { super(id); } }")),this._addSceneObject(r),r}createSceneObject(e,n){if(typeof e=="string"){const r=this._getSceneObjConstructor(e);if(!r){console.warn(`Cannot find SceneObjectType: ${e}`);return}return this.createSceneObjectFromClass(r,n)}else return this.createSceneObjectFromClass(e,n)}createSceneObjectFromUrl(e,n){let r;const s=e.toLowerCase();if(s.includes(".gltf")||s.includes(".glb")?r="ESGltfModel":s.includes("tileset.json")?r="ES3DTileset":s.includes("layer.json")||s.includes("ion://1")?r="ESTerrainLayer":s.includes(".jpg")||s.includes(".png")||s.includes(".jpeg")||s.includes(".webp")||s.includes("image/jpg")||s.includes("image/png")||s.includes("image/jpeg")||s.includes("image/webp")?r="ESImageLabel":(s.includes("/tilemapresource.xml")||s.includes("ion://")||s.includes("wms")||s.includes("wmts")||s.includes("{x}")||s.includes("{y}")||s.includes("{z}"))&&(r="ESImageryLayer"),!!r)return this.createSceneObjectFromJson({type:r,id:n,url:e})}createSceneObjectFromJson(e){const n=this.createSceneObject(e.type,e.id);return n&&(n.json=e),n}destroySceneObject(e){return this._deleteSceneObject(e),e.destroy(),e.isDestroyed()}getSceneObjectById(e){return this._sceneObjs.get(e)}getSceneObject(e){if(!e&&e!="")return Array.from(this._sceneObjs.values());if(typeof e=="function"){const n=[];for(const r of this._sceneObjs.values())r instanceof e&&n.push(r);return n}if(e.startsWith("ES")){const n=[];for(const r of this._sceneObjs.values())r.typeName===e&&n.push(r);return n}return this._sceneObjs.get(e)}_getSceneObjConstructor(e){const n=this._esObjConstructors.get(e);if(n)return n}getProps(e){const n=this._getSceneObjConstructor(e);if(!n){console.warn(`cannot get constructor from type: ${e}`);return}return Vi(n,"__sceneObjExtraInfo")}setProps(e,n){const r=this._getSceneObjConstructor(e);if(!r){console.warn(`cannot get constructor from type: ${e}`);return}let s=Vi(r,"__sceneObjExtraInfo");s||(s={},_s(r,"__sceneObjExtraInfo",s)),Object.assign(s,n)}getProp(e,n){const r=this.getProps(e);return r&&r[n]}setProp(e,n,r){this.setProps(e,{[n]:r})}get environmentVariables(){return this._environmentVariables}set environmentVariables(e){for(let[n,r]of Object.entries(e))this.setEnv(n,r)}get environmentVariablesChanged(){return this._environmentVariablesChanged}setEnv(e,n){if(this._environmentVariables[e]!==n){const r=this._environmentVariables[e];this._environmentVariables[e]=n,this._environmentVariablesChanged.emit(e,n,r)}window.ESSDK_ENV={...this._environmentVariables}}getEnv(e){return this._environmentVariables[e]}getStrFromEnv(e){return C_(e)}createEnvStrReact(e,n){return S_(e,n)}createEvnStrReact(e,n){return S_(e,n)}}const Gt=class Gt extends ${constructor(e){super();f(this,"_components",this.dv(new Pd));f(this,"_viewerAttached",this.dv(new T));f(this,"_viewerDetached",this.dv(new T));f(this,"_attachedViewers",(()=>{const e=new Set;return this.d(this._viewerAttached.don(n=>{n.actived&&(this.activeViewer=n),n.ad(n.activedChanged.don(r=>{r&&e.has(n)&&(this.activeViewer=n)})),e.add(n)})),this.d(this._viewerDetached.don(n=>{e.delete(n),this.activeViewer==n&&(this.activeViewer=void 0)})),e})());f(this,"_activeViewer",this.disposeVar(H(void 0)));f(this,"_createdEvent",this.dv(new T));f(this,"_flushEvent",this.dv(new T));f(this,"_id");f(this,"_updateFuncReact",this.dv(H(void 0)));f(this,"_toDestroyFuncReact",this.dv(H(void 0)));f(this,"_parentID");e!==void 0&&(typeof e!="string"?console.warn(`对象id必须是字符串类型,当前id的类型是${typeof e},值为${e}`):e.trim()===""?console.warn("场景对象创建时的id不能是空字符串!"):e.trim()!==e&&console.warn(`id前后有空字符串!id: ${e}`)),this._id=e??Du(),this._initName();{const n=()=>{if(this.execOnceFuncStr)try{Function(`"use strict";return (${this.execOnceFuncStr})`)()(this)}catch(r){console.warn(`execOnceFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${r}`)}};n(),this.d(this.execOnceFuncStrChanged.don(n))}{const n=()=>{if(this.updateFuncStr)try{this.updateFunc=Function(`"use strict";return (${this.updateFuncStr})`)()}catch(s){console.warn(`updateFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${s}`)}};n(),this.d(this.updateFuncStrChanged.don(n));let r;this.d(()=>r&&r.destroy()),this.d(this.updateFuncChanged.don(()=>{r&&r.cancel(),this.updateFunc&&(r=r||bh(),r.restart(void 0,s=>{this.updateFunc&&this.updateFunc(this,s)}))}))}{const n=()=>{try{this.toDestroyFunc=this.toDestroyFuncStr&&Function(`"use strict";return (${this.toDestroyFuncStr})`)()||void 0}catch(r){console.warn(`toDestroyFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${r}`),this.toDestroyFunc=void 0}};n(),this.d(this.toDestroyFuncStrChanged.don(n)),this.d(this.toDestroyEvent.don(()=>{this.toDestroyFunc&&this.toDestroyFunc(this)}))}}static getParentClass(){return Object.getPrototypeOf(this)}static register(e,n,r){La(n.prototype,n.createDefaultProps);const s=n.createDefaultProps();n.defaults&&(n.defaults={});for(const a of Object.keys(s))n.defaults[a]=s[a]instanceof mn?s[a].value:s[a];return this.innerRegister(e,n,r),e}static get envs(){return Gt.context.environmentVariables}static get $refs(){return Gt.context.refsManager.refs}get components(){return this._components}get viewerAttached(){return this._viewerAttached}get viewerDetached(){return this._viewerDetached}get attachedViewers(){return this._attachedViewers}get activeViewer(){return this._activeViewer.value}set activeViewer(e){this._activeViewer.value=e}get activeViewerChanged(){return this._activeViewer.changed}removefromViewer(e){this.attachedViewers.has(e)&&e.delete(this)}addToViewer(e){this.attachedViewers.has(e)||e.add(this)}registerAttachedObject(e){const n=new Map;this.d(()=>{n.size>0&&console.warn("viewerPropSceneObjects.size > 0")}),this.d(this._viewerAttached.don(r=>{const s=e(r);s&&n.set(r,s)})),this.d(this._viewerDetached.don(r=>{if(!n.has(r))return;const s=n.get(r);s&&(s.destroy(),n.delete(r))}))}createAttachedObject(e){const n=new Map,r=()=>{for(let[u,l]of n.entries())l.destroy();n.clear()},s=u=>{const l=e(u);l&&n.set(u,l)};for(let u of this.attachedViewers)s(u);const a=this._viewerAttached.don(s),o=this._viewerDetached.don(u=>{if(!n.has(u))return;const l=n.get(u);l&&(l.destroy(),n.delete(u))});return()=>{o(),a(),r()}}registerAttachedObjectForContainer(e){this.registerAttachedObject(n=>new YC(n,e))}get createdEvent(){return this._createdEvent}get flushEvent(){return this._flushEvent}flush(){this.flushEvent.emit()}get id(){return this._id}get typeName(){return this.constructor.type}_initName(){this.name=`${this.typeName}_${(""+this.id).slice(-4)}`}get defaultProps(){return this.constructor.createDefaultProps()}_innerGetJson(e=!0){const n={id:this.id,type:this.typeName};for(let r of Object.keys(this.defaultProps))if(e){let s,a=this.defaultProps[r];a instanceof mn?s=a.equals(this[r]):s=a===this[r],s||(n[r]=this[r])}else n[r]=this[r];return n}_innerSetJson(e,n,r){if(!(e instanceof Object)||e.type&&e.type!==this.typeName){console.error(`value.type && value.type${e.type} !== this.typeName${this.typeName}`);return}e.id&&e.id!==this.id&&console.warn(`value.id === undefined || value.id${e.id} !== this.id(${this.id})`);const s=n||[];s.push("id","type");const a=Object.keys(this.defaultProps).filter(o=>!s.includes(o));for(let o of a)if(o in e)this[o]=e[o]===null?void 0:e[o];else if(!(r??!1)){let u=this.defaultProps[o];u instanceof mn&&(u=u.value),this[o]=u}}get completeJson(){return this._innerGetJson(!1)}get json(){return this._innerGetJson()}set json(e){this._innerSetJson(e)}get _jsonStr(){return JSON.stringify(this.json,null,4)}set _jsonStr(e){this._innerSetJson(JSON.parse(e))}get updateFunc(){return this._updateFuncReact.value}set updateFunc(e){this._updateFuncReact.value=e}get updateFuncChanged(){return this._updateFuncReact.changed}get toDestroyFunc(){return this._toDestroyFuncReact.value}set toDestroyFunc(e){this._toDestroyFuncReact.value=e}get toDestroyFuncChanged(){return this._toDestroyFuncReact.changed}get parentID(){return this._parentID??this.id}set parentID(e){this._parentID=e}getESProperties(){return{defaultMenu:"general",basic:[],general:[new Pt([this,"typeName"],"类型",void 0,!1,!0),new Pt([this,"id"],"id",void 0,!1,!0),new Pt([this,"name"],"名称"),new eg("JSON",()=>this._jsonStr,e=>e&&(this._jsonStr=e))],dataSource:[],location:[],coordinate:[],style:[],more:[new Pt([this,"ref"],"ref",void 0,!0),new Tt([this,"extras"],"extras",{},void 0,!0)]}}};f(Gt,"context",new XC),f(Gt,"innerRegister",Gt.context.register.bind(Gt.context)),f(Gt,"defaults",{}),f(Gt,"createDefaultProps",()=>({name:"未命名场景对象",ref:void 0,extras:Vt(void 0),devTags:Ee(void 0),execOnceFuncStr:void 0,updateFuncStr:void 0,toDestroyFuncStr:void 0})),f(Gt,"type",Gt.register("ESSceneObject",Gt,{chsName:"场景类",tags:["ESObjects"],description:""})),f(Gt,"create",Gt.context.createSceneObject.bind(Gt.context)),f(Gt,"createFromUrl",Gt.context.createSceneObjectFromUrl.bind(Gt.context)),f(Gt,"createFromClass",Gt.context.createSceneObjectFromClass.bind(Gt.context)),f(Gt,"createFromJson",Gt.context.createSceneObjectFromJson.bind(Gt.context)),f(Gt,"destroySceneObject",Gt.context.destroySceneObject.bind(Gt.context)),f(Gt,"getSceneObjById",Gt.context.getSceneObjectById.bind(Gt.context)),f(Gt,"getSceneObj",Gt.context.getSceneObject.bind(Gt.context)),f(Gt,"getEnv",Gt.context.getEnv.bind(Gt.context)),f(Gt,"setEnv",Gt.context.setEnv.bind(Gt.context)),f(Gt,"getStrFromEnv",Gt.context.getStrFromEnv.bind(Gt.context)),f(Gt,"getSceneObjectById",Gt.context.getSceneObjectById.bind(Gt.context)),f(Gt,"getSceneObject",Gt.context.getSceneObject.bind(Gt.context));let Et=Gt;class YC extends ${constructor(t,e){super(),this.dv(new Ke(t.subContainerChanged,()=>{if(t.subContainer)return e(t,t.subContainer)}))}}const rp=class rp extends ${constructor(e,n,r){super();f(this,"_id",++rp._accumId);this._name=e,this._description=n,this._callFunction=r}get id(){return this._id}get name(){return this._name}get description(){return this._description}get callFunction(){return this._callFunction}};f(rp,"_accumId",-1);let Ga=rp;class Qp extends Ga{constructor(t,e,n,r,s,a){super(t,e,a??(()=>{})),this._withUndefined=n,this._readonly=r,this._defaultValue=s}get withUndefined(){return this._withUndefined}get readonly(){return this._readonly}get defaultValue(){return this._defaultValue instanceof Function?this._defaultValue():this._defaultValue}}class oi extends Qp{constructor(e,n,r,s,a,o,u){var h;const l=e instanceof mn?"未获取到属性名":e[1].toString();super(n??l,o??l,s??!1,a??!1,r,u);f(this,"_propName");f(this,"_typeName");this._reactVar=e,this._propName=l;try{this._typeName=e instanceof mn?"未获取到对象类型":(h=e[0])==null?void 0:h.typeName}catch{this._typeName="未获取到对象类型"}}get reactVar(){return this._reactVar}get propName(){return this._propName}get typeName(){return this._typeName}}class rt extends oi{get type(){return"BooleanProperty"}}class Pt extends oi{get type(){return"StringProperty"}}class D extends oi{get type(){return"NumberProperty"}}class _n extends oi{get type(){return"Number2Property"}}class qn extends oi{get type(){return"Number3Property"}}class sr extends oi{get type(){return"Number4Property"}}class Wt extends sr{get type(){return"ColorProperty"}}class b_ extends D{get type(){return"DashPatternProperty"}}class Es extends oi{get type(){return"DateProperty"}}class tg extends oi{get type(){return"DatesProperty"}}class Mt extends Ga{constructor(e,n,r){super(e??"",r??"");f(this,"_placement");this._placement=n}get type(){return"DivideProperty"}get placement(){return this._placement}}class Nt extends oi{constructor(t,e,n,r,s,a,o){super(t,n,r,s,a,o),this._enums=e}get type(){return"EnumProperty"}get enums(){return this._enums}}class aa extends oi{constructor(t,e,n,r,s,a,o){super(t,e,n,s,a,o),this._sampleValue=r}get sampleValue(){return this._sampleValue}get type(){return"EvalStringProperty"}}class xd extends oi{constructor(t,e,n,r,s,a,o){super(t,e,n,s,a,o),this._sampleValue=r}get sampleValue(){return this._sampleValue}get type(){return"LongStringProperty"}}class bt extends Ga{constructor(e,n,r,s){const a=e??"Unnamed Function";super(a,s??a);f(this,"_paramsLength");this._func=n,this._defaultParams=r,this._paramsLength=this._func.length??0}get paramsLength(){return this._paramsLength}get defaultParams(){return this._defaultParams}get isOpen(){return this._defaultParams.length!==this._paramsLength}get func(){return this._func}run(...e){this._func(...e)}get type(){return"MethodProperty"}}class an extends oi{constructor(t,e,n,r,s,a,o,u){super(t,r,s,a,o,u),this._step=e,this._minMax=n}get type(){return"NumberSliderProperty"}get minMax(){return this._minMax}get step(){return this._step}}class ja extends qn{get type(){return"PositionProperty"}}class Id extends qn{get type(){return"RotationProperty"}}function JC(i,t){const[e,n,r]=gh(i),[s,a,o]=gh(t),u=H((e()??0)/(s()??3e3)),l=()=>{const h=u.value,c=s()??3e3,d=e()??0;if(!Number.isFinite(c)||!Number.isFinite(d)){console.warn(`duration || currentTime error: duration: ${c} currentTime: ${d}`);return}Math.abs(h*c-d)<.001||(c<=0?u.value=0:u.value=d/c)};return u.dispose(r.disposableOn(l)),u.dispose(o.disposableOn(l)),u.dispose(u.changed.disposableOn(()=>{const h=u.value,c=s()??3e3,d=e()??0;if(!Number.isFinite(c)||!Number.isFinite(d)){console.warn(`duration || currentTime error: duration: ${c} currentTime: ${d}`);return}Math.abs(h*c-d)<.001||n(h*c)})),u}class Md extends Ga{constructor(e,n,r,s,a,o){super(s??"播放器",o??"播放器");f(this,"_defaults",{playing:!1,ratio:0,loop:!1});this._playingReact=e,this._ratioReact=n,this._loopReact=r,a&&(this._defaults.playing=a.playing??this._defaults.playing,this._defaults.ratio=a.ratio??this._defaults.ratio,this._defaults.loop=a.loop??this._defaults.loop)}get type(){return"PlayerProperty"}get playingReact(){return this._playingReact}get ratioReact(){return this._ratioReact}get loopReact(){return this._loopReact}get defaults(){return this._defaults}}f(Md,"createPlayingRatio",JC);class P_ extends Ga{constructor(e,n,r,s,a,o){const u=s??"视角播放器";super(u,o??u);f(this,"_defaults",{playing:!1,loop:!1});this._playingReact=e,this._stopFn=n,this._loopReact=r,a&&(this._defaults.playing=a.playing??this._defaults.playing,this._defaults.loop=a.loop??this._defaults.loop)}get type(){return"ViewPlayerProperty"}get playingReact(){return this._playingReact}get loopReact(){return this._loopReact}get stopFn(){return this._stopFn}get defaults(){return this._defaults}}class tn extends oi{constructor(t,e,n,r,s,a,o){super(t,e,n,s,a,o),this._sampleValue=r}get sampleValue(){return this._sampleValue}get type(){return"JsonArrayProperty"}}class Tt extends oi{constructor(t,e,n,r,s,a,o){super(t,e,n,s,a,o),this._sampleValue=r}get sampleValue(){return this._sampleValue}get type(){return"JsonProperty"}}class eg extends Qp{constructor(t,e,n,r,s,a){super(t,a??t,r??!1,s??!1),this._getFunc=e,this._setFunc=n}get getFunc(){return this._getFunc}get setFunc(){return this._setFunc}get type(){return"GetSetProperty"}}var ft=(i=>(i.Place="place",i.BrushErase="brushErase",i.Translation="translation",i.Rotation="rotation",i.Scale="scale",i.DoublePointsAppend="doublePointsAppend",i.DoublePointsModify="doublePointsModify",i.CircularAppend="circularAppend",i.CircularInsert="circularInsert",i.LineStringAppend="lineStringAppend",i.LineStringInsert="lineStringInsert",i.ScatterAppend="scatterAppend",i.ScatterModify="scatterModify",i.VisibilityAppend="visibilityAppend",i.VisibilityModify="visibilityModify",i.HeightModify="heightModify",i.SinglePoint="singlePoint",i.DoublePoints="doublePoints",i))(ft||{}),x_=(i=>(i.DECIMAL_DEGREE="DECIMAL_DEGREE",i.DEGREES_DECIMAL_MINUTES="DEGREES_DECIMAL_MINUTES",i.SEXAGESIMAL_DEGREE="SEXAGESIMAL_DEGREE",i))(x_||{});class ZC{constructor(t){this.childPickedInfo=t}}class KC{constructor(t,e,n,r,s,a){this.pickResult=t,this.sceneObject=e,this.tilesetPickInfo=n,this.geojsonPickInfo=r,this.attachedInfo=s,this.screenPosition=a}assign(t){t!=null&&t.pickedResult&&(this.pickResult=t.pickedResult),t!=null&&t.sceneObject&&(this.sceneObject=t.sceneObject),t!=null&&t.tilesetPickInfo&&(this.tilesetPickInfo=t.tilesetPickInfo),t!=null&&t.geojsonPickInfo&&(this.geojsonPickInfo=t.geojsonPickInfo),t!=null&&t.attachedInfo&&(this.attachedInfo=t.attachedInfo),t!=null&&t.screenPosition&&(this.screenPosition=t.screenPosition)}}const Je=class Je extends Et{constructor(e){super(e);f(this,"_editing",this.dv(H(!1)));f(this,"editingID");f(this,"editingBindMode","singlePoint");f(this,"_deprecated",[]);f(this,"_flyInEvent",this.dv(new T));f(this,"_flyToEvent",this.dv(new T));f(this,"_flyOverEvent",this.disposeVar(new T));f(this,"_pickedEvent",this.dv(new T));f(this,"_calcFlyToParamEvent",this.dv(new T));f(this,"_calcFlyInParamEvent",this.dv(new T));f(this,"useCalcFlyToParamInESObjectWithLocation",!1);O_(this,this.updateEditing)}supportEditingModes(){return this.constructor.supportEditingModes}get editing(){return this._editing.value}set editing(e){this._editing.value=e}get editingChanged(){return this._editing.changed}updateEditing(){}_deprecatedWarning(){const e=this._deprecated;for(let n=0;n<e.length;n++){const r=e[n];typeof r=="string"?Reflect.has(this,r+"Changed")&&this.d(this[r+"Changed"].don(()=>{console.warn(`注意:${this.typeName} 的 ${r} 属性下版本将会被移除!`)})):Object.keys(r).forEach(s=>{Reflect.has(this,s+"Changed")&&this.d(this[s+"Changed"].don(o=>{const u=r[s];typeof u=="string"?console.warn(`注意:${this.typeName} 的 ${s} 属性下版本将会被移除!`):Object.keys(u).forEach(l=>{o===l&&console.warn(`注意:${this.typeName} 的 ${s} 属性值 ${l} 下版本将会被移除,推荐使用属性值 ${u[l]}`)})}))})}}get flyInEvent(){return this._flyInEvent}flyIn(e=1){this._flyInEvent.emit(e,Je._lastFlyInId)}get flyToEvent(){return this._flyToEvent}flyTo(e=1){this._flyToEvent.emit(e,Je._lastFlyToId)}get flyOverEvent(){return this._flyOverEvent}get pickedEvent(){return this._pickedEvent}get calcFlyToParamEvent(){return this._calcFlyToParamEvent}calcFlyToParam(){this._calcFlyToParamEvent.emit()}get calcFlyInParamEvent(){return this._calcFlyInParamEvent}calcFlyInParam(){this._calcFlyInParamEvent.emit()}emptyFlyToParam(){this.flyToParam=void 0}emptyFlyInParam(){this.flyInParam=void 0}async getBoundSphere(e){return await e.getBoundSphere(this.id)}getESProperties(){const e={...super.getESProperties()};return{...e,general:[...e.general,new rt([this,"show"],"是否显示",Je.defaults.show),new rt([this,"collision"],"开启碰撞",Je.defaults.collision),new rt([this,"allowPicking"],"允许拾取",Je.defaults.allowPicking),new bt("保存观察视角",()=>this.calcFlyToParam(),[]),new bt("清空飞向参数",()=>this.emptyFlyToParam(),[]),new bt("保存飞入参数",()=>this.calcFlyInParam(),[]),new bt("清空飞入参数",()=>this.emptyFlyInParam(),[])],more:[...e.more,new Mt("飞行定位"),new bt("飞向",n=>this.flyTo(n),[1],"flyTo"),new Tt([this,"flyToParam"],"飞行参数",void 0,void 0,!0),new D([this,"flyToDistance"],"flyToDistance",void 0,!0),new D([this,"flyToHeading"],"flyToHeading",void 0,!0),new D([this,"flyToPitch"],"flyToPitch",void 0,!0),new D([this,"flyToFlyDuration"],"flyToFlyDuration",void 0,!0),new D([this,"flyToHDelta"],"flyToHDelta",void 0,!0),new D([this,"flyToPDelta"],"flyToPDelta",void 0,!0),new Mt("飞入参数"),new bt("飞入",n=>this.flyIn(n),[1],"flyIn"),new Tt([this,"flyInParam"],"飞入参数",void 0,void 0,!0)]}}get flyToDistance(){return this.flyToParam&&this.flyToParam.distance}get flyToHeading(){return this.flyToParam&&this.flyToParam.heading}get flyToPitch(){return this.flyToParam&&this.flyToParam.pitch}get flyToFlyDuration(){return this.flyToParam&&this.flyToParam.flyDuration}get flyToHDelta(){return this.flyToParam&&this.flyToParam.hDelta}get flyToPDelta(){return this.flyToParam&&this.flyToParam.pDelta}get flyToDistanceChanged(){return this.flyToParamChanged}get flyToHeadingChanged(){return this.flyToParamChanged}get flyToPitchChanged(){return this.flyToParamChanged}get flyToFlyDurationChanged(){return this.flyToParamChanged}get flyToHDeltaChanged(){return this.flyToParamChanged}get flyToPDeltaChanged(){return this.flyToParamChanged}set flyToDistance(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,distance:e}:void 0}set flyToHeading(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,heading:e}:void 0}set flyToPitch(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,pitch:e}:void 0}set flyToFlyDuration(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,flyDuration:e}:void 0}set flyToHDelta(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,hDelta:e}:void 0}set flyToPDelta(e){this.flyToParam=e!==void 0?{...this.flyToParam??Je.defaultFlyToParam,pDelta:e}:void 0}};f(Je,"createDefaultProps",()=>({...Et.createDefaultProps(),show:!0,collision:!0,allowPicking:!1,flyToParam:Ce(void 0),flyInParam:Ce(void 0)})),f(Je,"type",Je.register("ESVisualObject",Je,{chsName:"可视化对象",tags:["ESObjects"],description:"可视化对象"})),f(Je,"supportEditingModes",[]),f(Je,"defaultFlyToParam",{distance:0,heading:0,pitch:0,flyDuration:1,hDelta:0,pDelta:0}),f(Je,"defaultFlyInParam",{position:[0,0,0],rotation:[0,0,0],flyDuration:1}),f(Je,"_lastFlyInId",0),f(Je,"_lastFlyToId",0);let oe=Je;class I_ extends ${constructor(){super();f(this,"_data",this.dv(H(void 0)))}set data(e){this._data.value=e}get data(){return this._data.value}get dataChanged(){return this._data.changed}}class M_ extends ${constructor(){super(...arguments);f(this,"_dragStartEvent",this.dv(new T));f(this,"_dragOverEvent",this.dv(new T));f(this,"_dragLeaveEvent",this.dv(new T));f(this,"_dropEvent",this.dv(new T))}dragStart(e){this._dragStartEvent.emit(e)}dragOver(e){this._dragOverEvent.emit(e)}dragLeave(e){this._dragLeaveEvent.emit(e)}drop(e){this._dropEvent.emit(e)}}function QC(i,t){t&&(Reflect.has(t,"editing")?t.editing=!0:Reflect.has(t,"positionEditing")&&(t.positionEditing=!0))}function tb(i){["Czm3DTiles","View","ESCameraView","OlView","GeoCameraController"].includes(i.typeName)||(Reflect.has(i,"editing")?i.editing=!0:Reflect.has(i,"positionEditing")&&(i.positionEditing=!0)),typeof i.execOnCreating=="function"&&i.execOnCreating()}function Td(i,t){Vi(i,"__treeItem")&&console.error("setSceneObjectTreeItem error!"),_s(i,"__treeItem",t)}function eb(i){return Vi(i,"__treeItem")}function nb(i){if(!(i.startsWith("./")||i.startsWith("../")||i.startsWith("/")))return i;const t=document.createElement("a");t.href=i;const e=t.href;return t.remove(),e}function ng(i){if(typeof i!="string")return!1;try{const t=JSON.parse(i);return typeof t=="object"&&t!==null}catch{return!1}}function ib(i){try{return new DOMParser().parseFromString(i,"application/xml").getElementsByTagName("parsererror").length===0}catch{return!1}}function rb(i){return i instanceof Function?i():i}function T_(i,t){for(let e of i)if(t.includes(e))return!0;return!1}function Dh(i,t){const e=i,n=t;return e===void 0||e.length===0||n===void 0||n.length===0?!0:T_(e,n)}function sb(i){const t=setTimeout(()=>{i(),clearTimeout(t)})}function ju(i){let t=i%360;return t=t<0?360+t:t,t}function N_(i){return ju(i+180)-180}function Nd(i,t,e){let n=ju(i),r=ju(t);Math.abs(n-r)>180&&(n<r?n+=360:r+=360);const s=n*(1-e)+r*e;return N_(s)}function ig(i,t,e,n){return n=n||[0,0,0],n[0]=Nd(i[0],t[0],e),n[1]=Nd(i[1],t[1],e),n[2]=Nd(i[2],t[2],e),n}function O_(i,t,e="editing"){const n=new $;i.ad(n);const r=t.bind(i);return n.ad(new Ke(i.activeViewerChanged,()=>{const s=new $;let a=i.activeViewer;return a?(s.ad(i[`${e}Changed`].don(()=>{var o;i[`${e}`]?r():(o=(i.components.main??i).editingID)!=null&&o.includes("inner")&&i.activeViewer&&i.activeViewer.stopEditing()})),s.ad(a.editingEvent.don(o=>{if(o.objectIDs.includes(i.id)&&o.type==="end"){const u=i.components.main??i;u.editingID&&(o.editingID.includes(u.editingID)?(u.editingID=void 0,i[e]=!1):i[e]=!u.editingID.includes("outer"))}}))):s.ad(i[`${e}Changed`].don(()=>{i[`${e}`]=!1})),s})),i[`${e}`]&&r(),n}function ab(i){return i}function ob(i){if(i==null)return ab;var t,e,n=i.scale[0],r=i.scale[1],s=i.translate[0],a=i.translate[1];return function(o,u){u||(t=e=0);var l=2,h=o.length,c=new Array(h);for(c[0]=(t+=o[0])*n+s,c[1]=(e+=o[1])*r+a;l<h;)c[l]=o[l],++l;return c}}function ub(i,t){for(var e,n=i.length,r=n-t;r<--n;)e=i[r],i[r++]=i[n],i[n]=e}function lb(i,t){return typeof t=="string"&&(t=i.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(e){return D_(i,e)})}:D_(i,t)}function D_(i,t){var e=t.id,n=t.bbox,r=t.properties==null?{}:t.properties,s=hb(i,t);return e==null&&n==null?{type:"Feature",properties:r,geometry:s}:n==null?{type:"Feature",id:e,properties:r,geometry:s}:{type:"Feature",id:e,bbox:n,properties:r,geometry:s}}function hb(i,t){var e=ob(i.transform),n=i.arcs;function r(h,c){c.length&&c.pop();for(var d=n[h<0?~h:h],p=0,g=d.length;p<g;++p)c.push(e(d[p],p));h<0&&ub(c,g)}function s(h){return e(h)}function a(h){for(var c=[],d=0,p=h.length;d<p;++d)r(h[d],c);return c.length<2&&c.push(c[0]),c}function o(h){for(var c=a(h);c.length<4;)c.push(c[0]);return c}function u(h){return h.map(o)}function l(h){var c=h.type,d;switch(c){case"GeometryCollection":return{type:c,geometries:h.geometries.map(l)};case"Point":d=s(h.coordinates);break;case"MultiPoint":d=h.coordinates.map(s);break;case"LineString":d=a(h.arcs);break;case"MultiLineString":d=h.arcs.map(a);break;case"Polygon":d=u(h.arcs);break;case"MultiPolygon":d=h.arcs.map(u);break;default:return null}return{type:c,coordinates:d}}return l(t)}function A_(i){var e;const t=((e=i.type)==null?void 0:e.toLowerCase())??"";switch(t){case"geometrycollection":return cb(i);case"topology":const n=i.objects,r=[];for(const s in n){const a=lb(i,n[s]);r.push(...a.features)}return{type:"FeatureCollection",features:r};case"feature":return{type:"FeatureCollection",features:[i]};case"featurecollection":return i;case"":default:return console.warn(`GeoJson数据转换可能有误,数据类型${t}`),{type:"FeatureCollection",features:Array.isArray(i.features)?i.features:[]}}}function cb(i,t){const e=[],n=i.geometries||[];function r(s,a={}){!s||!s.type||(s.type==="GeometryCollection"&&Array.isArray(s.geometries)?s.geometries.forEach(o=>r(o,a)):e.push({type:"Feature",geometry:s,properties:{...s.properties||{},...a}}))}return n.forEach(s=>r(s,{})),{type:"FeatureCollection",features:e}}function db(i){const t=i.cloneNode(!0);t.style.position="fixed",t.style.visibility="hidden",t.style.pointerEvents="none",t.style.top="0",t.style.left="0",t.style.display="inline-block",document.body.appendChild(t);const e=t.getBoundingClientRect();return document.body.removeChild(t),{x:e.x,y:e.y,width:e.width,height:e.height}}class rg extends ${constructor(e){super();f(this,"_sceneObject",this.dv(H(void 0)));this._id=e,this.d(()=>{this._sceneObject.value=void 0});const n=Et.getSceneObjById(this._id);n&&(this._sceneObject.value=n),this.d(Et.context.sceneObjCreatedEvent.don(r=>{r.id===this._id&&(this._sceneObject.value=r)})),this.d(Et.context.sceneObjToDestroyEvent.don(r=>{r.id===this._id&&(this._sceneObject.value=void 0)}))}get sceneObject(){return this._sceneObject.value}get sceneObjectChanged(){return this._sceneObject.changed}get id(){return this._id}}class fb extends ${constructor(e,n){super();f(this,"_sofi");this._id=e,this._sofi=this.dv(new rg(this._id));{const r=()=>{n.sceneObject=this._sofi.sceneObject};r(),this.d(this._sofi.sceneObjectChanged.don(r))}}}class R_ extends ${constructor(){super();f(this,"_id",this.dv(H(void 0)));f(this,"_sceneObject",this.dv(H(void 0)));f(this,"_resetting",this.dv(new Ke(this.idChanged,()=>{const{id:e}=this;if(e===void 0||e===""){this.sceneObject=void 0;return}return new fb(e,this)})))}get id(){return this._id.value}get idChanged(){return this._id.changed}set id(e){this._id.value=e}get sceneObject(){return this._sceneObject.value}get sceneObjectChanged(){return this._sceneObject.changed}set sceneObject(e){this._sceneObject.value=e}get resetting(){return this._resetting}}class pb extends ${constructor(e,n,r,s){super();f(this,"_sceneObjectId",this.dv(new R_));this._id=e,this._startTimeStamp=n,this._duration=r,this._parent=s,this._sceneObjectId.id=this._id;const a=()=>{if(!this.player)return;const{currentTime:o=0}=this._parent,u=o-this._startTimeStamp;this.player.currentTime=wd(u,0,this._duration)*(this.player.speed??1)};a(),this.d(this._parent.currentTimeChanged.don(a)),this.d(this.playerChanged.don(a))}get player(){return this._sceneObjectId.sceneObject instanceof kr?this._sceneObjectId.sceneObject:void 0}get playerChanged(){return this._sceneObjectId.sceneObjectChanged}}const gb=`
24
24
  用来配置子播放器,它是一个数组形式,数组的每个元素仍然是一个数组,形式是[子播放器的ID, 起始时间, 持续时间]。
25
25
  注意时间的单位是毫秒。
26
26
  示例如下:
package/dist/earthsdk3.js CHANGED
@@ -44,7 +44,7 @@ function yd(r) {
44
44
  }
45
45
  let au;
46
46
  try {
47
- const r = "earthsdk3", e = "3.8.0-beta.19", t = "2026-03-13T07:07:43.000Z", n = "北京西部世界科技有限公司", i = "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn", s = "d5387d31e478b46fe49f5f55e5595360d39b7c87", a = ((Date.now() - 1773385663e3) / 36e5).toFixed(1), u = `%c🌏 ${r}%c ${e}.${s.slice(0, 8)}.${t} (距今${a}个小时)
47
+ const r = "earthsdk3", e = "3.8.0", t = "2026-03-17T10:22:10.000Z", n = "北京西部世界科技有限公司", i = "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn", s = "1e99c385a1837e0da74a77cf540c0719f97d8ba1", a = ((Date.now() - 177374293e4) / 36e5).toFixed(1), u = `%c🌏 ${r}%c ${e}.${s.slice(0, 8)}.${t} (距今${a}个小时)
48
48
  %c${i ? i + `
49
49
  ` : ""}当前网站正在使用${r},此软件版权归${n}所有
50
50
  `;
@@ -58,7 +58,7 @@ try {
58
58
  },
59
59
  // @ts-ignore
60
60
  get gituri() {
61
- return GITURI_ && GITURI_.replace("${commitId}", "d5387d31e478b46fe49f5f55e5595360d39b7c87");
61
+ return GITURI_ && GITURI_.replace("${commitId}", "1e99c385a1837e0da74a77cf540c0719f97d8ba1");
62
62
  },
63
63
  // @ts-ignore
64
64
  get info() {
@@ -66,7 +66,7 @@ try {
66
66
  },
67
67
  // @ts-ignore
68
68
  get date() {
69
- return "2026-03-13T07:07:43.000Z";
69
+ return "2026-03-17T10:22:10.000Z";
70
70
  },
71
71
  // @ts-ignore
72
72
  get author() {
@@ -74,7 +74,7 @@ try {
74
74
  },
75
75
  // @ts-ignore
76
76
  get version() {
77
- return "3.8.0-beta.19";
77
+ return "3.8.0";
78
78
  },
79
79
  // @ts-ignore
80
80
  get name() {
@@ -82,7 +82,7 @@ try {
82
82
  },
83
83
  // @ts-ignore
84
84
  get commitId() {
85
- return "d5387d31e478b46fe49f5f55e5595360d39b7c87";
85
+ return "1e99c385a1837e0da74a77cf540c0719f97d8ba1";
86
86
  },
87
87
  /**
88
88
  * 打印版权信息到控制台
@@ -7791,7 +7791,7 @@ function ay(r, e, t = "editing") {
7791
7791
  })), s.ad(o.editingEvent.don((a) => {
7792
7792
  if (a.objectIDs.includes(r.id) && a.type === "end") {
7793
7793
  const u = r.components.main ?? r;
7794
- u.editingID && (a.editingID.includes(u.editingID) ? r[t] = !1 : r[t] = !u.editingID.includes("outer")), u.editingID = void 0;
7794
+ u.editingID && (a.editingID.includes(u.editingID) ? (u.editingID = void 0, r[t] = !1) : r[t] = !u.editingID.includes("outer"));
7795
7795
  }
7796
7796
  }))) : s.ad(r[`${t}Changed`].don(() => {
7797
7797
  r[`${t}`] = !1;
@@ -1,7 +1,7 @@
1
- (function(g,Jn){typeof exports=="object"&&typeof module<"u"?Jn(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"],Jn):(g=typeof globalThis<"u"?globalThis:g||self,Jn(g.EarthSDK3={},g.jsBinarySchemaParser,g.topojson,g.proj4,g.turf,g.z,g.zodToJsonSchema))})(this,function(g,Jn,ta,wp,Jy,_e,$y){"use strict";var Sb=Object.defineProperty;var bb=(g,Jn,ta)=>Jn in g?Sb(g,Jn,{enumerable:!0,configurable:!0,writable:!0,value:ta}):g[Jn]=ta;var h=(g,Jn,ta)=>bb(g,typeof Jn!="symbol"?Jn+"":Jn,ta);var li;function Ep(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=Ep(ta),tn=Ep(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 Cp(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.8.0-beta.19",t="2026-03-13T07:07:43.000Z",n="北京西部世界科技有限公司",i="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",s="d5387d31e478b46fe49f5f55e5595360d39b7c87",a=((Date.now()-1773385663e3)/36e5).toFixed(1),u=`%c🌏 ${r}%c ${e}.${s.slice(0,8)}.${t} (距今${a}个小时)
1
+ (function(g,Jn){typeof exports=="object"&&typeof module<"u"?Jn(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"],Jn):(g=typeof globalThis<"u"?globalThis:g||self,Jn(g.EarthSDK3={},g.jsBinarySchemaParser,g.topojson,g.proj4,g.turf,g.z,g.zodToJsonSchema))})(this,function(g,Jn,ta,wp,Jy,_e,$y){"use strict";var Sb=Object.defineProperty;var bb=(g,Jn,ta)=>Jn in g?Sb(g,Jn,{enumerable:!0,configurable:!0,writable:!0,value:ta}):g[Jn]=ta;var h=(g,Jn,ta)=>bb(g,typeof Jn!="symbol"?Jn+"":Jn,ta);var li;function Ep(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=Ep(ta),tn=Ep(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 Cp(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.8.0",t="2026-03-17T10:22:10.000Z",n="北京西部世界科技有限公司",i="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",s="1e99c385a1837e0da74a77cf540c0719f97d8ba1",a=((Date.now()-177374293e4)/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}","d5387d31e478b46fe49f5f55e5595360d39b7c87")},get info(){return u},get date(){return"2026-03-13T07:07:43.000Z"},get author(){return"suplyang"},get version(){return"3.8.0-beta.19"},get name(){return"earthsdk3"},get commitId(){return"d5387d31e478b46fe49f5f55e5595360d39b7c87"},print(){console.info(this.info,`
4
+ `;g.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","1e99c385a1837e0da74a77cf540c0719f97d8ba1")},get info(){return u},get date(){return"2026-03-17T10:22:10.000Z"},get author(){return"suplyang"},get version(){return"3.8.0"},get name(){return"earthsdk3"},get commitId(){return"1e99c385a1837e0da74a77cf540c0719f97d8ba1"},print(){console.info(this.info,`
5
5
  font-size: 18px;
6
6
  font-weight: 1000;
7
7
  line-height: 1;
@@ -20,7 +20,7 @@
20
20
  padding-left: 35px;
21
21
  `)}}),globalThis.g_XE3CopyRights=globalThis.g_XE3CopyRights||{},globalThis.g_XE3CopyRights[r]=g.copyright,globalThis.g_XE3SendProductUsageInfo=globalThis.g_XE3SendProductUsageInfo||!0,globalThis.g_XE3SendProductUsageInfo&&(setTimeout(()=>Cp(g.copyright),1e3*60),setInterval(()=>Cp(g.copyright),24*60*60*1e3)),globalThis.g_earthsdk_copyright_print=globalThis.g_earthsdk_copyright_print??!0,globalThis.g_earthsdk_copyright_print&&g.copyright.print()}catch{console.warn("版本信息有误!")}const Sp=new Set;function ea(r,e=r){Sp.has(e)||(Sp.add(e),console.warn(r))}function Su(r){const e=Ll(r),t=()=>e[0][e[1]],n=s=>{try{e[0][e[1]]=s}catch(o){ea(`setValue error, obj(${e[0].constructor.name}) prop(${e[1]}) error(${o})`)}},i=e[0][e[2]];return[t,n,i]}function t_(){return!0}function e_(){throw new Error("throwOnDestroyed")}function bp(r){for(var e in r)typeof r[e]=="function"&&(r[e]=e_);r.isDestroyed=t_}const ih=class ih{constructor(){h(this,"_memId",++ih._lastMemId);h(this,"_disposers")}get __v_skip(){return!0}get memId(){return this._memId}get disposers(){return this._disposers||(this._disposers=[]),this._disposers}dispose(e){return this.disposers.push(e),e}d(e){return this.dispose(e)}disposeVar(e){return this.disposers.push(()=>e.destroy()),e}dv(e){return this.disposeVar(e)}tryDisposeVar(e){return this.disposers.push(()=>e.tryDestroy()),e}tdv(e){return this.tryDisposeVar(e)}autoDispose(e){return typeof e=="function"?this.dispose(e):this.disposeVar(e)}ad(e){return typeof e=="function"?this.dispose(e):this.disposeVar(e)}isDestroyed(){return!1}destroyImp(){}destroy(){if(this._toDestroyEvent&&this._toDestroyEvent.emit(),this.destroyImp(),this._disposers)try{const e=this._disposers,t=e.length;for(let n=t-1;n>=0;--n)e[n]();e.length=0,this._disposers=void 0}catch(e){console.error(`destroy get error! ${e}`)}return bp(this)}tryDestory(){if(!this.isDestroyed())return this.destroy()}};h(ih,"_lastMemId",-1);let j=ih,ah;function Ip(r){ah=r}Object.defineProperties(j.prototype,{toDestroyEvent:{get(){if(this._toDestroyEvent===void 0){if(!ah)throw new Error("Destroyable EventCtor not registered yet!");this._toDestroyEvent=this.disposeVar(new ah)}return this._toDestroyEvent}}});class Ml{constructor(e,t,n=!1){h(this,"_freeElements");h(this,"_usedElementsCount");h(this,"_usedElements");h(this,"_nextCreateID");h(this,"_scratchObjs");this._createDefaultFunc=e,this._destroyFunc=t,this._freeElements=[],this._usedElementsCount=0,this._nextCreateID=1,this._scratchObjs=[],n&&(this._usedElements=[])}get usedElementsCount(){return this._usedElementsCount}get freeElementsCount(){return this._freeElements.length}_getCreateID(){return this._nextCreateID++}_create(){let e;return this._freeElements.length>0?e=this._freeElements.pop():e=this._createDefaultFunc&&this._createDefaultFunc()||{},e._cid=this._getCreateID(),e}create(){return this._create()}multiCreate(e){this._scratchObjs.length=0;for(let t=0;t<e;++t)this._scratchObjs.push(this._create());return this._scratchObjs}_destroy(e){this._destroyFunc&&this._destroyFunc(e),e._cid=void 0}destroy(...e){const t=e.length;for(let n=0;n<t;++n)this._destroy(e[n])}}function n_(){return{item:void 0,previous:void 0,next:void 0}}function r_(r){r.item=void 0,r.previous=void 0,r.next=void 0}const Pp=new Ml(n_,r_,!0);function uh(r,e,t){const n=Pp.create();return n.item=r,n.previous=e,n.next=t,n}function xp(r){if(!r)throw new Error("node is undefined!");Pp.destroy(r)}function lh(r,e){e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=void 0,r.tail=e.previous):e.next?(e.next.previous=void 0,r.head=e.next):(r.head=void 0,r.tail=void 0),e.next=void 0,e.previous=void 0}class Tp{constructor(e){h(this,"head");h(this,"tail");h(this,"_length");const{needLength:t}=e||{needLength:!0};this.head=void 0,this.tail=void 0,t&&(this._length=0)}_incrementLength(){typeof this._length=="number"&&++this._length}_decrementLength(){typeof this._length=="number"&&--this._length}_setLength(e){typeof this._length=="number"&&(this._length=e)}get length(){return this._length}get empty(){return!this.head}*[Symbol.iterator](){let e=this.head;for(;e;)yield e,e=e.next}remove(e){if(!e)throw new Error("node is undefined!");lh(this,e),this._decrementLength(),xp(e)}getNode(e){let t=this.head;for(;t!==null;){if(!t)throw new Error("current is undefined!");if(t.item===e)return t;t=t.next}}moveAfter(e,t){if(e!==t){lh(this,t);var n=e.next;e.next=t,this.tail===e?this.tail=t:n&&(n.previous=t),t.next=n,t.previous=e}}moveBefore(e,t){if(e!==t){lh(this,t);var n=e.previous;e.previous=t,this.head===e?this.head=t:n&&(n.next=t),t.previous=n,t.next=e}}insertBefore(e,t){const n=uh(t,e.previous,e);return e.previous&&(e.previous.next=n),e.previous=n,this.head===e&&(this.head=n),this._incrementLength(),n}insertAfter(e,t){const n=uh(t,e,e.next);return e.next&&(e.next.previous=n),e.next=n,this.tail===e&&(this.tail=n),this._incrementLength(),n}_setFirstNode(e){if(this.head||this.tail)throw new Error("_setFirstNode error!");const t=uh(e,void 0,void 0);if(this.head=t,this.tail=t,this._incrementLength(),this._length!==1)throw new Error("_setFirstNode error! this._length !== 1");return t}push(e){return this.tail?this.insertAfter(this.tail,e):this._setFirstNode(e)}pop(){if(!this.tail)throw new Error("DoublyLinkedList is empty!");const e=this.tail.item;return this.remove(this.tail),e}shift(){if(!this.head)throw new Error("DoublyLinkedList is empty!");const e=this.head.item;return this.remove(this.head),e}unshift(e){return this.head?this.insertBefore(this.head,e):this._setFirstNode(e)}removeAll(){let e=this.head;for(;e;){const t=e.next;xp(e),e=t}this.head=void 0,this.tail=void 0,this._setLength(0)}}function i_(){return{func:void 0,scope:void 0,_hasRemoved:!1,_once:!1}}function s_(r){r.func=void 0,r.scope=void 0,r._hasRemoved=!1,r._once=!1}const so=new Ml(i_,s_,!0);class ch{constructor(){h(this,"__dll");h(this,"__currentListenerStack")}get _dll(){return this.__dll=this.__dll??new Tp({needLength:!0}),this.__dll}_pushCurrentListener(e){this.__currentListenerStack?Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.push(e):this.__currentListenerStack=[this.__currentListenerStack,e]:this.__currentListenerStack=e}_popCurrentListener(){if(this.__currentListenerStack)Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.pop():this.__currentListenerStack=void 0;else throw new Error("cannot pop!")}_hasCurrentListener(e){return this.__currentListenerStack?Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.indexOf(e)!==-1:this.__currentListenerStack===e:!1}do(...e){if(this.__dll&&!this._dll.empty){let t=this._dll.head;for(;t;){const n=t.item;n._hasRemoved||(this._pushCurrentListener(n),n.func.call(n.scope,...e),this._popCurrentListener());const i=t.next;n._once&&!n._hasRemoved&&(this.remove(t),t=void 0),t&&this._clearHasRemoved(t),t=i}}}get empty(){if(!this.__dll||this._dll.empty)return!0;let e=!0,t=this._dll.head;for(;t;){if(!t.item._hasRemoved){e=!1;break}t=t.next}return e}isHandlerValid(e){return!e.item._hasRemoved}nextHandler(e){if(!e.item._hasRemoved)throw new Error("handler has removed!");let t=e.next;for(;t&&t.item._hasRemoved;)t=t.next;return t}prevHandler(e){if(!e.item._hasRemoved)throw new Error("handler has removed!");let t=e.previous;for(;t&&t.item._hasRemoved;)t=t.previous;return t}moveAfter(e,t){if(e.item._hasRemoved||t.item._hasRemoved)throw new Error("handler or nextHandler has removed!");return this._dll.moveAfter(e,t)}moveBefore(e,t){if(e.item._hasRemoved||t.item._hasRemoved)throw new Error("handler or prevHandler has removed!");return this._dll.moveBefore(e,t)}insertBefore(e,t,n,i=!1){if(e.item._hasRemoved)throw new Error("handler has removed!");const s=so.create();return s.func=t,s.scope=n,s._once=i,this._dll.insertBefore(e,s)}insertAfter(e,t,n,i=!1){if(e.item._hasRemoved)throw new Error("handler has removed!");const s=so.create();return s.func=t,s.scope=n,s._once=i,this._dll.insertAfter(e,s)}_clearHasRemoved(e){e.item._hasRemoved&&!this._hasCurrentListener(e.item)&&(so.destroy(e.item),this._dll.remove(e))}remove(e){if(!e.item||e.item._hasRemoved)throw new Error("handler has removed!");this._hasCurrentListener(e.item)?e.item._hasRemoved=!0:(so.destroy(e.item),this._dll.remove(e))}removeAll(){if(this.__dll&&!this._dll.empty){let e=this._dll.head;for(;e;){const t=e.next;e.item._hasRemoved||this.remove(e),e=t}}}destroy(){if(!this.__dll)return;let e=this._dll.head;for(;e;){const t=e.next,n=e;this._hasCurrentListener(n.item)||(console.warn("Event has remove item that on current stack!"),console.warn(`${n.item.func.toString()}`)),so.destroy(n.item),this._dll.remove(n),e=t}this.__dll=void 0,this.__currentListenerStack=void 0}push(e,t,n=!1){const i=so.create();return i.func=e,i.scope=t,i._once=n,this._dll.push(i)}pop(){const e=this.tail;if(!e)throw new Error("pop error!");this.remove(e)}shift(){const e=this.head;if(!e)throw new Error("shift error!");this.remove(e)}unshift(e,t,n=!1){const i=so.create();return i.func=e,i.scope=t,i._once=n,this._dll.unshift(i)}get tail(){let e=this._dll.tail;for(;e&&e.item._hasRemoved;)e=e.previous;return e}get head(){let e=this._dll.head;for(;e&&e.item._hasRemoved;)e=e.previous;return e}}class bu{constructor(){h(this,"_listenerHandler");h(this,"_cid")}_reset(e,t){this._listenerHandler=e,this._cid=t}clone(e){return e=e??new bu,e._reset(this._listenerHandler,this._cid),e}get valid(){if(typeof this._listenerHandler<"u"&&typeof this._cid=="number"){const e=this._listenerHandler._cid;if(typeof e<"u"&&this._cid===e)return!0}return!1}}class hh extends bu{}class T extends j{constructor(){super(...arguments);h(this,"__pipe");h(this,"beforeCallback");h(this,"afterCallback")}get _pipe(){return this.__pipe=this.__pipe??new ch,this.__pipe}get empty(){return!this.__pipe||this._pipe.empty}emit(...t){!this.isDestroyed()&&this.beforeCallback&&this.beforeCallback(...t),!this.isDestroyed()&&this._pipe.do(...t),!this.isDestroyed()&&this.afterCallback&&this.afterCallback(...t)}on(t,n,i=!1,s){const o=i?this._pipe.unshift(t,n,!1):this._pipe.push(t,n,!1);return s=s??new hh,s._reset(o,o._cid),s}disposableOn(t,n,i=!1,s){const o=this.on(t,n,i,s);return()=>{o.valid&&this.off(o)}}don(t,n,i=!1,s){return this.disposableOn(t,n,i,s)}disposableWeakOn(t,n,i=!1,s){const o=new j,a=()=>{!o.isDestroyed()&&o.destroy()};return o.dispose(this.disposableOn(t,n,i,s)),o.dispose(this.toDestroyEvent.disposableOn(a)),a}dwon(t,n,i=!1,s){return this.disposableWeakOn(t,n,i,s)}once(t,n,i=!1,s){const o=i?this._pipe.unshift(t,n,!0):this._pipe.push(t,n,!0);return s=s??new hh,s._reset(o,o._cid),s}disposableOnce(t,n,i=!1,s){const o=this.once(t,n,i,s);return()=>o.valid&&this.off(o)}donce(t,n,i=!1,s){const o=this.once(t,n,i,s);return()=>o.valid&&this.off(o)}off(t){if(!t.valid)throw new Error("handler is not valid!");this._pipe.remove(t._listenerHandler),t._reset()}reset(){this._pipe.removeAll()}destroyImp(){this.empty||(ea("The event is destroying with listeners!"),this._pipe.removeAll())}}Ip(T);function na(r,e){return e=e??new bu,e._reset(r,r._cid),e}class o_{constructor(){h(this,"__pipe")}get _pipe(){return this.__pipe=this.__pipe??new ch,this.__pipe}get empty(){return!this.__pipe||this._pipe.empty}do(...e){return this._pipe.do(...e)}isHandlerValid(e){return e.valid?this._pipe.isHandlerValid(e._listenerHandler):!1}moveAfter(e,t){if(!e.valid||!t.valid)throw new Error("handler or nextHander is not valid!");return this._pipe.moveAfter(e._listenerHandler,t._listenerHandler)}moveBefore(e,t){if(!e.valid||!t.valid)throw new Error("handler or nextHander is not valid!");return this._pipe.moveAfter(e._listenerHandler,t._listenerHandler)}insertBefore(e,t,n,i=!1,s){if(!e.valid)throw new Error("handler is not valid!");const o=this._pipe.insertBefore(e._listenerHandler,t,n,i);return na(o,s)}insertAfter(e,t,n,i=!1,s){if(!e.valid)throw new Error("handler is not valid!");const o=this._pipe.insertAfter(e._listenerHandler,t,n,i);return na(o,s)}remove(e){if(!e.valid)throw new Error("handler is not valid!");return this._pipe.remove(e._listenerHandler)}removeAll(){return this._pipe.removeAll()}push(e,t,n=!1,i){const s=this._pipe.push(e,t,n);return na(s,i)}pop(){return this._pipe.pop()}shift(){return this._pipe.shift()}unshift(e,t,n=!1,i){const s=this._pipe.unshift(e,t,n);return na(s,i)}getTail(e){const t=this._pipe.tail;if(t)return na(t,e)}getHead(e){const t=this._pipe.head;if(t)return na(t,e)}}class Ve extends j{constructor(t,n,i){super();h(this,"_changed");h(this,"_value");h(this,"_oldValue");h(this,"toChangeFunc");this._equalsFunc=n,this._assignFunc=i,this._value=this._assignFunc&&this._assignFunc(t,void 0)||t}get assignFunc(){return this._assignFunc}get equalsFunc(){return this._equalsFunc}equals(t){return this._equalsFunc?this._equalsFunc(this._value,t):this._value===t}set value(t){if(this._equalsFunc?!this._equalsFunc(this._value,t):this._value!==t){if(this.toChangeFunc&&!this.toChangeFunc(t,this._value))return;this._assignFunc?(this._oldValue=this._assignFunc(this._value,this._oldValue),this._value=this._assignFunc(t,this._value)):(this._oldValue=this._value,this._value=t),this._changed&&this._changed.emit(t,this._oldValue)}}get value(){return this._value}get changed(){return this._changed||(this._changed=this.disposeVar(new T)),this._changed}forceChange(){this._changed&&this._changed.emit(this._value,this._value)}}function V(r,e,t){return new Ve(r,e,t)}function rt(r){return new Ve(r,(e,t)=>e.length!==t.length?!1:e.every((n,i)=>n===t[i]),(e,t)=>{const n=t||new Array(e.length);return n.length=e.length,e.forEach((i,s)=>n[s]=i),n})}function qt(r){return V(r,(e,t)=>e===void 0||t===void 0?e===void 0&&t===void 0:e.length!==t.length?!1:e.every((n,i)=>n===t[i]),(e,t)=>{if(!e)return;const n=t||new Array(e.length);return n.length=e.length,e.forEach((i,s)=>n[s]=i),n})}function Rl(r,e,t){return V(r,(n,i)=>n.length!==i.length?!1:n.every((s,o)=>e&&e(s,i[o])||s===i[o]),(n,i)=>{const s=i||new Array(n.length);return s.length=n.length,n.forEach((o,a)=>{s[a]=t?t(o):o}),s})}function Ss(r,e,t){return V(r,(n,i)=>n===void 0||i===void 0?n===void 0&&i===void 0:n.length!==i.length?!1:n.every((s,o)=>e&&e(s,i[o])||s===i[o]),(n,i)=>{if(!n)return;const s=i||new Array(n.length);return s.length=n.length,n.forEach((o,a)=>{s[a]=t?t(o):o}),s})}function wt(r){return new Ve(r,(e,t)=>e===t||e!==void 0&&t!==void 0&&JSON.stringify(e)===JSON.stringify(t),(e,t)=>{if(e!==void 0)return JSON.parse(JSON.stringify(e))})}function Yt(r){return new Ve(r,(e,t)=>e===t||e!==void 0&&t!==void 0&&JSON.stringify(e)===JSON.stringify(t),(e,t)=>{if(e!==void 0)return JSON.parse(JSON.stringify(e))})}function a_(r){return new Ve(r,(e,t)=>{if(e===t)return!0;if(e===void 0||t===void 0)return!1;const n=Object.keys(e),i=Object.keys(t);return n.length!==i.length?!1:n.every((s,o)=>s===i[o]&&e[s]===t[s])},(e,t)=>e&&{...e})}function u_(r){return new Ve(r,(e,t)=>{if(e===t)return!0;if(e===void 0||t===void 0)return!1;const n=Object.keys(e),i=Object.keys(t);return n.length!==i.length?!1:n.every((s,o)=>s===i[o]&&e[s]===t[s])},(e,t)=>e&&{...e})}function l_(r){return Rl(r,(e,t)=>e.every((n,i)=>n===t[i]),e=>[...e])}function dh(r){return Ss(r,(e,t)=>e.every((n,i)=>n===t[i]),e=>[...e])}function c_(r){return Rl(r,(e,t)=>JSON.stringify(e)===JSON.stringify(t),e=>JSON.parse(JSON.stringify(e)))}function h_(r){return Ss(r,(e,t)=>JSON.stringify(e)===JSON.stringify(t),e=>JSON.parse(JSON.stringify(e)))}function oo(r){return dh(r)}function Op(r){return Ss(r,(e,t)=>e.length===t.length&&e.every((n,i)=>n.every((s,o)=>s===t[i][o])),e=>e.map(t=>[...t]))}function d_(r){return Ss(r,(e,t)=>e.length===t.length&&e.every((n,i)=>n.every((s,o)=>s===t[i][o])),e=>e.map(t=>[...t]))}function Ll(r){const e=r instanceof Ve?[r,"value","changed"]:[...r];return e[2]=e[2]||e[1]+"Changed",e}function fh(r,e,t,n=!1){e[2]=e[2]||e[1]+"Changed";const i=()=>{const s=e[0][e[1]];t?r[0][r[1]]=t(s):r[0][r[1]]=s};return i(),n?e[0][e[2]].disposableWeakOn(i):e[0][e[2]].disposableOn(i)}function f_(r,e,t,n,i=!1){const s=fh(r,e,t,i),o=fh(e,r,n,i);return()=>(s(),o())}function B(r,e,t,n=!1){const i=r instanceof Ve?[r,"value","changed"]:r,s=e instanceof Ve?[e,"value","changed"]:e;return fh(i,s,t,n)}function tt(r,e,t,n,i=!1){const s=Ll(r),o=Ll(e);return f_(s,o,t,n,i)}function p_(r,e,t,n=!1){const[i]=Su(e);return tt(r,e,s=>s??t,s=>{if(!(s===t&&i()===void 0))return s},n)}function ra(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(r){var e=Math.random()*16|0,t=r==="x"?e:e&3|8;return t.toString(16)})}function Fl(r,e){if(!globalThis||!globalThis.setTimeout||!globalThis.clearTimeout)throw new Error("目前只适合在浏览器中使用!");let t=0;function n(){t>0&&(globalThis.clearTimeout(t),t=0)}function i(...s){n(),t=globalThis.setTimeout(r,e,...s)}return[i,n]}function ph(r,e,...t){const n=setInterval(r,e,...t);return()=>clearInterval(n)}function gh(r,e,...t){const n=setTimeout(r,e,...t);return()=>clearTimeout(n)}function Al(r,...e){let t;const n=()=>{const i=performance.now();r(i,...e),t=requestAnimationFrame(n)};return n(),()=>typeof t<"u"&&(cancelAnimationFrame(t),t=void 0)}function ia(r,...e){let t;return t=requestAnimationFrame(()=>{const i=performance.now();r(i,...e)}),()=>typeof t<"u"&&(cancelAnimationFrame(t),t=void 0)}function Iu(r,...e){let t=!1,n;return new Promise((i,s)=>{n=s,i()}).then(()=>{!t&&r(...e)}).catch(i=>{console.error(i)}),()=>(t=!0)&&n&&(n("nextMicroTask cancelled!"),n=void 0)}class kl extends T{constructor(t,n,...i){super();h(this,"_cancellFunc");this._nextFunc=t,this.dispose(()=>{this._cancellFunc&&(this._cancellFunc(),this._cancellFunc=void 0)}),i.forEach(s=>this.dispose(s[n?"dwon":"don"](()=>{this.next()})))}next(){this._cancellFunc||(this._cancellFunc=this._nextFunc(()=>(this._cancellFunc=void 0,this.emit())))}flush(){this._cancellFunc&&(this._cancellFunc(),this._cancellFunc=void 0,this.emit())}}class mh extends kl{constructor(...e){super(Iu,!1,...e)}}function g_(...r){return new mh(...r)}class m_ extends kl{constructor(...e){super(Iu,!0,...e)}}function v_(...r){return new mh(...r)}class Vl extends kl{constructor(...e){super(ia,!1,...e)}}function Ce(...r){return new Vl(...r)}function y_(r,e){return new Vl(...r).don(e())}class Np extends kl{constructor(...e){super(ia,!0,...e)}}function __(...r){return new Np(...r)}function Ji(r,e,t={time:"don",immediate:!1}){const n=new Vl(...Array.isArray(r)?r:[r]),i=n[t.time??"don"](e);return(t.immediate??!1)&&e(),()=>{i(),n.destroy()}}function Pu(r){let e;if(typeof r.next=="function")e=r;else if(typeof r[Symbol.iterator]=="function")e=r[Symbol.iterator]();else throw new Error("iteratorOrIterable error!");return e}function vh(r,e){let t=!1;const n=Pu(r);let i=-1;for(;;){const{done:s,value:o}=n.next();if(s)break;if(e(o,++i)){t=!0;break}}return t}function yh(r,e){return!vh(r,(n,i)=>!e(n,i))}function xu(r,e,t,n){const i=r;if(!i[e]){const s=n(),o=Object.fromEntries(Object.entries(s).filter(([a,u])=>{const l=Object.getPrototypeOf(t),c=a in l;if(c){const d=u instanceof Ve?u.value:u;r[a]=d}return!c}).map(([a,u])=>u instanceof Ve?[a,u]:[a,Array.isArray(u)?qt(u):V(u)]));i[e]=o}return i[e]}function bs(r,e){var n;const t=Symbol(`${(n=r==null?void 0:r.constructor)==null?void 0:n.name}-createDefaultProps`);r.constructor.__xbsj_dpSymbol=t,r.constructor.__xbsj_createDefaultProps=e;for(let[i,s]of Object.entries(e()))if(!Reflect.has(r,i)){const o=function(a){var c,d;if(a[t])return;const u=[];let l=Object.getPrototypeOf(a);for(;l;)u.push(l),l=Object.getPrototypeOf(l);u.reverse();for(let f of u){const p=(c=f.constructor)==null?void 0:c.__xbsj_dpSymbol;if(!p)continue;const v=(d=f.constructor)==null?void 0:d.__xbsj_createDefaultProps;v&&xu(a,p,f,v)}};Object.defineProperties(r,{[i]:{get(){return o(this),xu(this,t,r,e)[i].value},set(a){o(this);const u=xu(this,t,r,e)[i];if(!u){console.error("!propObj");debugger}u.value=a}},[`${i}Changed`]:{get(){return o(this),xu(this,t,r,e)[i].changed}},[`${i}React`]:{get(){return o(this),xu(this,t,r,e)[i]}}})}}const Tu=new WeakMap;function yi(r,e,t){Tu.has(r)||Tu.set(r,{});const n=Tu.get(r);n[e]=t}function $n(r,e){return Tu.has(r)?Tu.get(r)[e]:void 0}function _i(r,e){const t=Pu(r);let n=0;for(;;){const{done:i,value:s}=t.next();if(i)break;e(s,n++)}}function Ou(r,e,t){const n=Pu(r);let i=t,s=0;for(;;){const{done:o,value:a}=n.next();if(o)break;i=e(i,a,s++)}return i}const w_=r=>++r;function _h(r){return Ou(r,w_,0)}function $i(r){return Ou(r,(e,t)=>e>t?e:t,Number.NEGATIVE_INFINITY)}function Is(r){return Ou(r,(e,t)=>e<t?e:t,Number.POSITIVE_INFINITY)}function Dp(r,e){let t=r;for(let n of e)t=t[n];return t}function E_(r,e,t){if(e.length===0)throw new Error("props的数量必须大于0");const n=e.length-1,i=e[n];let s=r;for(let o=0;o<n;++o){const a=e[o];typeof s[a]>"u"&&(s[a]={}),s=s[a]}s[i]=t}function*ao(r,e){const t=Pu(r);for(;;){const{done:n,value:i}=t.next();if(n)break;yield Dp(i,e)}}class Nu extends j{constructor(){super();h(this,"_innerObj");h(this,"_toChangeEvent");h(this,"_changedEvent");this._innerObj=[],this.dispose(()=>{if(this.length=0,this._innerObj.length>0)throw new Error("this._innerObj.length > 0");this._toChangeEvent&&this._toChangeEvent.reset(),this._innerObj=void 0})}get toChangeEvent(){return this._toChangeEvent||(this._toChangeEvent=new T),this._toChangeEvent}get changedEvent(){return this._changedEvent||(this._changedEvent=new T),this._changedEvent}_resetArray(t){this._toChangeEvent&&this._toChangeEvent.emit([{start:0,deleteCount:this._innerObj.length,items:t}],this);const{length:n}=t;this._innerObj.length=n;for(let i=0;i<n;++i)this._innerObj[i]=t[i];this._changedEvent&&this._changedEvent.emit(this)}splice(t,n,...i){const{length:s}=this._innerObj;t=t>this._innerObj.length?this._innerObj.length:t,t>s?t=s:t<0&&(t+=s,t<0&&(t=0));const o=this._innerObj.length-t;if(n>o?n=o:n<0&&(n=0),arguments.length===1){this._toChangeEvent&&this._toChangeEvent.emit([{start:t,deleteCount:this._innerObj.length-t,items:[]}],this);const a=this._innerObj.splice(t);return this._changedEvent&&this._changedEvent.emit(this),a}else if(arguments.length===2){this._toChangeEvent&&this._toChangeEvent.emit([{start:t,deleteCount:n,items:[]}],this);const a=this._innerObj.splice(t,n);return this._changedEvent&&this._changedEvent.emit(this),a}else{this._toChangeEvent&&this._toChangeEvent.emit([{start:t,deleteCount:n,items:i}],this);const a=this._innerObj.splice(t,n,...i);return this._changedEvent&&this._changedEvent.emit(this),a}}pop(){if(this._innerObj.length===0)return;if(this._toChangeEvent){const n=this._innerObj.length-1,i=1,s=[];this._toChangeEvent.emit([{start:n,deleteCount:i,items:s}],this)}const t=this._innerObj.pop();return this._changedEvent&&this._changedEvent.emit(this),t}push(...t){if(this._toChangeEvent){const i=this._innerObj.length;this._toChangeEvent.emit([{start:i,deleteCount:0,items:t}],this)}const n=this._innerObj.push(...t);return this._changedEvent&&this._changedEvent.emit(this),n}get length(){return this._innerObj.length}set length(t){if(t<0)throw new Error("value < 0");const{length:n}=this._innerObj;if(n!==t){if(this._toChangeEvent){let i,s,o;n>t?(i=t,s=n-t,o=[]):(i=n,s=0,o=new Array(t-n)),this._toChangeEvent.emit([{start:i,deleteCount:s,items:o}],this)}this._innerObj.length=t,this._changedEvent&&this._changedEvent.emit(this)}}get(t){return this._innerObj[t]}set(t,n){const{length:i}=this._innerObj;if(t<0||t>=i)throw new Error("index < 0 || index >= length");this._toChangeEvent&&this._toChangeEvent.emit([{start:t,deleteCount:1,items:[n]}],this),this._innerObj[t]=n,this._changedEvent&&this._changedEvent.emit(this)}indexOf(t){return this._innerObj.indexOf(t)}[Symbol.iterator](){return this._innerObj[Symbol.iterator]()}}function wh(r,e,...t){let n=r;for(let i of t){if(!n[i])if(e)n[i]={};else return;n=n[i]}return n}function C_(r,e,t){typeof t>"u"&&(e.endsWith(".gltf")?t="model/gltf+json":e.endsWith(".bin")?t="application/octet-stream":e.endsWith(".glb")?t="model/gltf-binary":e.endsWith(".jpg")||e.endsWith(".jpeg")?t="image/jpeg":e.endsWith(".png")?t="image/png":e.endsWith(".glsl")?t="text/plain":e.endsWith(".json")?t="application/json":e.endsWith(".b3dm")||e.endsWith(".i3dm")||e.endsWith("pnts")||e.endsWith("cmpt")?t="application/octet-stream":console.warn(`save ${e}: MimeType无法确定!`));const n=new Blob([r],{type:t||""});let i=URL.createObjectURL(n);var s=document.createElement("a"),o=new MouseEvent("click");s.download=e,s.href=i,s.dispatchEvent(o),URL.revokeObjectURL(i)}function S_(r,e){const t=document.createElement("a"),n=new MouseEvent("click");t.download=e||"下载",t.href=r,t.dispatchEvent(n)}function b_(){return new Promise((r,e)=>{const t=performance.now();requestAnimationFrame(n=>r(n>t))})}const jl=r=>{let e,t;return t=n=>{n=performance.now(),e=requestAnimationFrame(t),r(n)},e=requestAnimationFrame(t),()=>{cancelAnimationFrame(e)}};function Eh(r,e,t=jl){let n=Number.NEGATIVE_INFINITY,i;function s(u){u-n>e&&i&&(r(...i),i=void 0,n=u)}const o=t&&t(s)||void 0;function a(...u){i=u}return[a,o]}const Mp=[];function Rp(r,e,t){if(Mp.includes(r)){console.warn(`_loadJs ${r} has loaded before!`),e&&e();return}var n=document.getElementsByTagName("head")[0],i=document.createElement("script");i.setAttribute("type","text/javascript"),i.setAttribute("src",r),i.onload=i.onreadystatechange=function(){this.readyState&&this.readyState!=="complete"||(Mp.push(r),e&&e(),i.onload=i.onreadystatechange=null)},i.onerror=(s,o,a,u,l)=>{t(l)},n.appendChild(i)}function Ch(r,e=!0){if(e){const t=globalThis.L;globalThis.L&&(globalThis.L=void 0);const n=globalThis.define;return globalThis.define&&(globalThis.define=void 0),new Promise((i,s)=>{Rp(r,i,s)}).then(()=>(globalThis.define=n,globalThis.L=t,Promise.resolve()))}else return new Promise((t,n)=>{Rp(r,t,n)})}async function Lp(r,e=""){return new Promise((t,n)=>{var i=new Image;i.crossOrigin=e,i.src=r,i.onload=()=>t(i),i.onerror=s=>n(s)})}class I_ extends j{constructor(e){super(),this._owner=e}get owner(){return this._owner}}function P_(r,e){if(r.length%3!==0)throw new Error("positions.length % 3 !== 0");const t=r.length/3;function*n(o){for(let a=0;a<t;++a)yield r[a*3+o]}const i=(e==null?void 0:e.min)??[NaN,NaN,NaN],s=(e==null?void 0:e.max)??[NaN,NaN,NaN];return i[0]=Is(n(0))??NaN,i[1]=Is(n(1))??NaN,i[2]=Is(n(2))??NaN,s[0]=$i(n(0))??NaN,s[1]=$i(n(1))??NaN,s[2]=$i(n(2))??NaN,{min:i,max:s}}async function x_(r,e=fetch){const t=await e(r);return t.ok?await t.arrayBuffer():void 0}function Bl(r,...e){if(r>16)throw new Error("length > 16");const t=new Array(r);for(let n=0;n<r;++n)t[n]=e[n]??0;return t}class zl{constructor(e,t){this._xyzw=e,this._length=t}set 0(e){this._xyzw.x=e}set 1(e){this._xyzw.y=e}set 2(e){this._xyzw.z=e}set 3(e){this._xyzw.w=e}get 0(){return this._xyzw.x??0}get 1(){return this._xyzw.y??0}get 2(){return this._xyzw.z??0}get 3(){return this._xyzw.w??0}get length(){return this._length}}function T_(r){return new zl(r,2)}function O_(r){return new zl(r,3)}function N_(r){return new zl(r,4)}class D_{constructor(e,t,n,i){this._array=e,this._length=t,this._start=n,this._stride=i}get length(){return this._length}set 0(e){this._array[this._start+0*this._stride]=e}set 1(e){this._array[this._start+1*this._stride]=e}set 2(e){this._array[this._start+2*this._stride]=e}set 3(e){this._array[this._start+3*this._stride]=e}set 4(e){this._array[this._start+4*this._stride]=e}set 5(e){this._array[this._start+5*this._stride]=e}set 6(e){this._array[this._start+6*this._stride]=e}set 7(e){this._array[this._start+7*this._stride]=e}set 8(e){this._array[this._start+8*this._stride]=e}set 9(e){this._array[this._start+9*this._stride]=e}set 10(e){this._array[this._start+10*this._stride]=e}set 11(e){this._array[this._start+11*this._stride]=e}set 12(e){this._array[this._start+12*this._stride]=e}set 13(e){this._array[this._start+13*this._stride]=e}set 14(e){this._array[this._start+14*this._stride]=e}set 15(e){this._array[this._start+15*this._stride]=e}set 16(e){this._array[this._start+16*this._stride]=e}get 0(){return this._array[this._start+0*this._stride]}get 1(){return this._array[this._start+1*this._stride]}get 2(){return this._array[this._start+2*this._stride]}get 3(){return this._array[this._start+3*this._stride]}get 4(){return this._array[this._start+4*this._stride]}get 5(){return this._array[this._start+5*this._stride]}get 6(){return this._array[this._start+6*this._stride]}get 7(){return this._array[this._start+7*this._stride]}get 8(){return this._array[this._start+8*this._stride]}get 9(){return this._array[this._start+9*this._stride]}get 10(){return this._array[this._start+10*this._stride]}get 11(){return this._array[this._start+11*this._stride]}get 12(){return this._array[this._start+12*this._stride]}get 13(){return this._array[this._start+13*this._stride]}get 14(){return this._array[this._start+14*this._stride]}get 15(){return this._array[this._start+15*this._stride]}get 16(){return this._array[this._start+16*this._stride]}}function M_(r,e,t=0,n=1){return new D_(r,e,t,n)}g.Vector=void 0,(r=>{function e(z,...G){if(z=z||Bl(G.length),G.length>z.length)throw new Error("args.length > target.length");return z instanceof Float64Array?z.set(G):x(G,z),z}r.set=e;function t(z,G){const gt=z.length;for(let At=0;At<gt;++At)if(!G(z[At],At))return!1;return!0}r.every=t;function n(z,G,gt){const At=z.length;let ee=gt;for(let Ee=0;Ee<At;++Ee)ee=G(ee,z[Ee],Ee);return ee}r.reduce=n;function*i(z){for(let G=0;G<z.length;++G)yield z[G]}r.itr=i;const s=(z,G)=>z+=G*G;function o(z){return n(z,s,0)}r.magnitudeSquared=o;function a(z){const G=o(z);return Math.sqrt(G)}r.magnitude=a;function u(z,G=1e-5){const gt=o(z);return Math.abs(gt-1)<G}r.isNormalized=u;let l;const c=(z,G,gt)=>z+G*l[gt];function d(z,G){return b(z,G),l=G,n(z,c,0)}r.dot=d;let f;const p=(z,G,gt)=>z+=(G-f[gt])*(G-f[gt]);function v(z,G){return b(z,G),f=G,n(z,p,0)}r.distanceSquared=v;function C(z,G){return Math.sqrt(v(z,G))}r.distance=C;let S;const I=(z,G)=>z===S[G];function y(z,G){return b(z,G),S=G,t(z,I)}r.equals=y;let _,m;const w=(z,G)=>Math.abs(z-_[G])<m;function E(z,G,gt=0){return b(z,G),_=G,m=gt,t(z,w)}r.equalsEpsilon=E;function b(z,G){if(z.length!==G.length)throw new Error("left.length !== right.length")}function P(z,G,gt){const At=z.length;gt=gt||Bl(At),b(z,gt);for(let ee=0;ee<At;++ee)gt[ee]=G(z[ee],ee);return gt}r.op1=P;function O(z,G,gt,At){b(z,G),At&&b(z,At);const ee=z.length;At=At||Bl(ee);for(let Ee=0;Ee<ee;++Ee)At[Ee]=gt(z[Ee],G[Ee]);return At}r.op2=O;const M=z=>z;function x(z,G){return P(z,M,G)}r.clone=x;let D=0;const L=(z,G)=>z*D;function A(z,G,gt){return D=G,P(z,L,gt)}r.multiplyByScalar=A;function J(z,G,gt=0){const At=o(z);if(At<=gt)return;const ee=Math.sqrt(At);return A(z,1/ee,G)}r.normalize=J;function H(z,G){return A(z,-1,G)}r.negate=H;const Q=z=>Math.abs(z);function ft(z,G){return P(z,Q,G)}r.abs=ft;const vt=z=>z-Math.floor(z);function Y(z,G){return P(z,vt,G)}r.fract=Y;const $=(z,G)=>z-G;function Z(z,G,gt){return O(z,G,$,gt)}r.subtract=Z;const Et=(z,G)=>z+G;function Ft(z,G,gt){return O(z,G,Et,gt)}r.add=Ft;const Ot=(z,G)=>z*G;function Nt(z,G,gt){return O(z,G,Ot,gt)}r.multiply=Nt;const jt=(z,G)=>z/G;function ye(z,G,gt){return O(z,G,jt,gt)}r.divide=ye;let Zt;const bn=(z,G)=>z*(1-Zt)+G*Zt;function In(z,G,gt,At){return Zt=gt,O(z,G,bn,At)}r.lerp=In})(g.Vector||(g.Vector={}));function Ul(r,e=0,t=1){return r<e?e:r>t?t:r}class Gl extends j{constructor(t,n,i,s,o,a,u,l){super();h(this,"__status");h(this,"_statusChangedEvent");h(this,"_forceCancelFunc");h(this,"_startEvent");h(this,"_progressEvent");h(this,"_completeEvent");h(this,"_cancelEvent");h(this,"_cancelledEvent");h(this,"_errorEvent");h(this,"_finishedEvent");h(this,"_processingID",-1);this._startProcessingFunc=t,this.startFunc=n,this.progressFunc=i,this.completeFunc=s,this.cancelFunc=o,this.cancelledFunc=a,this.errorFunc=u,this.finishedFunc=l,this._status="Initial",this.dispose(()=>{var c;return(c=this._statusChangedEvent)==null?void 0:c.destroy()}),this.dispose(()=>{var c;return(c=this._startEvent)==null?void 0:c.destroy()}),this.dispose(()=>{var c;return(c=this._progressEvent)==null?void 0:c.destroy()}),this.dispose(()=>{var c;return(c=this._completeEvent)==null?void 0:c.destroy()}),this.dispose(()=>{var c;return(c=this._cancelEvent)==null?void 0:c.destroy()}),this.dispose(()=>{var c;return(c=this._cancelledEvent)==null?void 0:c.destroy()}),this.dispose(()=>{var c;return(c=this._errorEvent)==null?void 0:c.destroy()}),this.dispose(()=>{var c;return(c=this._finishedEvent)==null?void 0:c.destroy()}),this.dispose(()=>this.reset())}get startEvent(){return this._startEvent=this._startEvent||new T,this._startEvent}get progressEvent(){return this._progressEvent=this._progressEvent||new T,this._progressEvent}get completeEvent(){return this._completeEvent=this._completeEvent||new T,this._completeEvent}get cancelEvent(){return this._cancelEvent=this._cancelEvent||new T,this._cancelEvent}get cancelledEvent(){return this._cancelledEvent=this._cancelledEvent||new T,this._cancelledEvent}get errorEvent(){return this._errorEvent=this._errorEvent||new T,this._errorEvent}get finishedEvent(){return this._finishedEvent=this._finishedEvent||new T,this._finishedEvent}_completeFunc(t,n){this.processingID===t&&this._status==="Running"&&(this._status="Completed",this.completeFunc&&this.completeFunc(n),this._completeEvent&&this._completeEvent.emit(n),this.finishedFunc&&this.finishedFunc({status:"Completed",value:n}),this._finishedEvent&&this._finishedEvent.emit({status:"Completed",value:n}))}_cancelFunc(t){this._status==="Running"&&(this._status="Cancelling",this.cancelFunc&&this.cancelFunc(t),this._cancelEvent&&this._cancelEvent.emit(t))}_cancelledFunc(t){this._status==="Cancelling"&&(this._status="Cancelled",this.cancelledFunc&&this.cancelledFunc(t),this._cancelledEvent&&this._cancelledEvent.emit(t),this.finishedFunc&&this.finishedFunc({status:"Cancelled",cancelError:t}),this._finishedEvent&&this._finishedEvent.emit({status:"Cancelled",cancelError:t}))}_errorFunc(t,n){this.processingID===t&&this._status==="Running"&&(this._status="Error",this.errorFunc&&this.errorFunc(n),this._errorEvent&&this._errorEvent.emit(n),this.finishedFunc&&this.finishedFunc({status:"Error",error:n}),this._finishedEvent&&this._finishedEvent.emit({status:"Error",error:n}))}_progressFunc(t,n){this.processingID===t&&this._status==="Running"&&(this.progressFunc&&this.progressFunc(n),this._progressEvent&&this._progressEvent.emit(n))}_startFunc(...t){if(this._status==="Initial"){this._status="Running";const n=++this._processingID,i={completeFunc:this._completeFunc.bind(this,n),errorFunc:this._errorFunc.bind(this,n),progressFunc:this._progressFunc.bind(this,n),cancelFunc:this._cancel.bind(this,n),processingID:n},s=this._startProcessingFunc(i,...t);return this._forceCancelFunc=s,this.startFunc&&this.startFunc(...t),this._startEvent&&this._startEvent.emit(...t),n}else return console.warn("this._status !== 'Initial' but start again!"),-1}set _status(t){if(this.__status!==t){const n=this.__status;this.__status=t,this._statusChangedEvent&&this._statusChangedEvent.emit(t,n)}}get _status(){return this.__status}get processingID(){return this._processingID}get statusChangedEvent(){return this._statusChangedEvent||(this._statusChangedEvent=new T),this._statusChangedEvent}reset(t){this._status==="Running"&&this.cancel(t),this._status==="Cancelled"||this._status==="Error"||this._status==="Completed"?this._status="Initial":this._status==="Cancelling"&&console.warn("Cannot reset! (this._status === 'Cancelling')")}get status(){return this._status}cancel(t,n=this.processingID){return this._cancel(n,t)}_cancel(t,n){if(this.processingID===t)if(this._status==="Running"){if(!this._forceCancelFunc)throw new Error("this._forceCancelFunc is undefined!");this._cancelFunc(n);const i=this._forceCancelFunc(n);if(this._forceCancelFunc=void 0,i&&i instanceof Promise)return i.then(()=>{this._cancelledFunc(n)});this._cancelledFunc(n)}else console.warn("this._status !== 'Running' but cancel")}start(...t){try{return this._startFunc(...t)}catch(n){console.error(`processing start error: ${n}`)}}restart(t,...n){try{return this.isRunning&&this.cancel(t),this.isFinished&&this.reset(t),this.isInitial?this._startFunc(...n):(console.warn("restart failed!"),-1)}catch(i){console.error(`processing restart error: ${i}`)}}get isCompleted(){return this._status==="Completed"}get isCancelled(){return this._status==="Cancelled"}get isCancelling(){return this._status==="Cancelling"}get isError(){return this._status==="Error"}get isInitial(){return this._status==="Initial"}get isRunning(){return this._status==="Running"}get isFinished(){return this.isCancelled||this.isCompleted||this.isError}}let Sh=class extends Error{};function Fp(r,e){typeof r=="function"?r(e):r.cancelFunc=e}class bh extends Gl{constructor(t=300){super(({progressFunc:n,completeFunc:i,errorFunc:s})=>{const[o,a]=Fl(()=>{if(!this._lastDebounceValue)throw new Error("!this._lastDebounceValue");n([this._lastDebounceValue,this._debouncTimes]),this._debouncTimes=0},this._delayTime);return this._d=o,()=>{a()}});h(this,"_lastDebounceValue");h(this,"_debouncTimes",0);h(this,"_d");this._delayTime=t}get delayTime(){return this._delayTime}debounce(...t){this.isRunning?(++this._debouncTimes,this._lastDebounceValue=t,this._d&&this._d()):console.warn("Debouncing is not running!")}}function Ap(r,e,...t){const n=new AbortController;let i=n.signal,[s,o]=t;if(o!=null&&o.signal)throw console.error("init?.signal"),new Error("init?.signal");o=o||{},o.signal=i;let a=!1;Fp(r,()=>{a=!0,n.abort()});let u=fetch(s,o);return e&&(u=u.then(l=>{if(!l.ok)return l;if(!l.body)throw Error("ReadableStream not yet supported in this browser.");const c=l.headers.get("content-length"),d=c?parseInt(c,10):0;let f=0;return new Response(new ReadableStream({start(p){if(!l.body)throw new Error("!response.body");const v=l.body.getReader();C();function C(){v.read().then(({done:S,value:I})=>{if(S){p.close();return}if(!I)throw new Error("!value");if(!e)throw new Error("!progressFunc");f+=I.byteLength,e(f,d),p.enqueue(I),C()}).catch(S=>{p.error(S)})}}}),{status:l.status,statusText:l.statusText,headers:l.headers})}).catch(l=>{throw a?(l instanceof Error&&l.code!==20&&console.error("error.code !== 20"),console.log("fetching cancelled!"),new Sh("fetching cancelled!")):(l instanceof Error&&l.code===20&&console.error("error.code === 20"),l)})),u}function kp(...r){if(r.length>=1)if(typeof r[0]=="function"||typeof r[0]>"u"){const e={};let t=Ap(e,...r);const{cancelFunc:n}=e;if(!n)throw new Error("!cancelResult.cancelFunc");return[n,t]}else return Ap(...r);throw new Error("cancelableFetch args error!")}class R_ extends Gl{constructor(t,...n){super(({progressFunc:i,completeFunc:s,errorFunc:o},...a)=>{const u={};let l={loaded:0,total:0};const c=(p,v)=>{l.loaded=p,l.total=v,i(l)},d=this._fetchArgs||a;if(d.length===0)throw new Error("fetchArgs.length === 0");if(kp(u,c,...d).then(t).then(s).catch(p=>{p instanceof Sh||o(p)}),!u.cancelFunc)throw new Error("!cancelResult.cancelFunc");return u.cancelFunc});h(this,"_fetchArgs");n.length>0&&(this._fetchArgs=n)}get fetchArgs(){return this._fetchArgs}}function Ih(r,e,t,n){const i="_"+e,s="_"+e+"Changed",o=e+"Changed";Object.defineProperties(r.prototype,{[e]:{get(){return typeof this[i]>"u"&&typeof t<"u"&&(this[i]=t),this[i]},set(a){if(typeof this[i]>"u"&&typeof t<"u"&&(this[i]=t),n?!n(this[i],a):this[i]!==a){const u=this[i];this[i]=a,this[s]&&this[s].emit(a,u)}}},[o]:{get(){return typeof this[s]>"u"&&(this[s]=new T,typeof this.dispose<"u"&&this.dispose(()=>this[s].destroy())),this[s]}}})}class Ph extends Gl{constructor(t,n=!0){super(({progressFunc:i,completeFunc:s,errorFunc:o})=>(this._intervalFunc=i,this._intervalID&&console.error("this._intervalID should be undefined!"),this.leading&&i(),this._intervalID=setInterval(i,this.intervalTime),()=>{if(!this._intervalID)throw console.error("this._intervalID should not be undefined!"),new Error("this._intervalID should not be undefined!");clearInterval(this._intervalID),this._intervalID=void 0}));h(this,"_intervalID");h(this,"_intervalFunc");this.intervalTime=t,this.leading=n,this.dispose(this.intervalTimeChanged.disposableOn(()=>{this._intervalID&&this._intervalFunc&&(clearInterval(this._intervalID),this._intervalID=setInterval(this._intervalFunc,this.intervalTime))}))}}Ih(Ph,"leading",!0),Ih(Ph,"intervalTime",500);function L_(r,e){let t,n;const i=new Promise((o,a)=>{n=a,t=globalThis.setTimeout(()=>{t=void 0,o()},r)}),s=o=>{t&&(clearTimeout(t),t=void 0),n&&n(o??new Sh("sleep cancel error!"))};if(typeof e=="boolean"&&e)return[s,i];if(e)return Fp(e,s),i}class F_{constructor(e=0,t=0,n=0,i,s){h(this,"_processData");h(this,"_lastUpdateTimeStamp",0);this.startTime=e,this.duration=t,this.delay=n,this.proccessFunc=i,this.completeFunc=s,this._processData={ratio:0,timeStamp:0,timeStampFromStart:0,timeStampFromLastUpdate:0}}update(e){const t=(e-this.startTime)/this.duration;t>=0&&(this._processData.ratio=t,this._processData.timeStamp=e,this._processData.timeStampFromStart=e-this.startTime,this._processData.timeStampFromLastUpdate=e-this._lastUpdateTimeStamp,this._lastUpdateTimeStamp=e,this.proccessFunc&&this.proccessFunc(this._processData),t>=1&&this.completeFunc&&this.completeFunc())}start(){this.startTime=performance.now()+this.delay,this._lastUpdateTimeStamp=this.startTime}}class Vp extends Gl{constructor(t=1e3,n=0,i=jl){let s;function o(){s&&s()}super(({progressFunc:u,completeFunc:l,errorFunc:c})=>{const d=this.startUpdateFunc&&this.startUpdateFunc(this._base.update.bind(this._base))||void 0;return this._base.startTime=performance.now(),this._base.duration=this.duration,this._base.delay=this.delay,this._base.proccessFunc=u,this._base.completeFunc=()=>{d&&d(),l()},this._base.start(),s=d,o});h(this,"_base");h(this,"duration");h(this,"delay");h(this,"startUpdateFunc");this._base=new F_,this.duration=t,this.delay=n,this.startUpdateFunc=i}get startTime(){return this._base.startTime}}class A_ extends j{constructor(t){super();h(this,"_target",0);h(this,"_current",0);h(this,"_start",0);h(this,"_timing",new Vp(Number.POSITIVE_INFINITY));h(this,"_currentChanged");this._duration=t,this._timing.progressFunc=({ratio:n})=>{n=n<0?0:n>1?1:n;const i=this._start*(1-n)+this._target*n;this._current=i,this._currentChanged&&this._currentChanged.emit(this._target,this._current)},this.dispose(()=>{this._timing.isRunning&&this._timing.cancel(),this._timing.destroy()})}reset(t,n=t){this._timing.isRunning&&this._timing.cancel(),this._target=t,this._current=n,this._start=t}set target(t){if(this._target!==t){this._target=t,this._timing.isRunning&&this._timing.cancel(),this._timing.reset(),this._start=this._current;const n=Math.abs(this._target-this._start);this._timing.duration=n*this._duration,this._timing.start()}}get target(){return this._target}get current(){return this._current}get currentChanged(){return this._currentChanged||(this._currentChanged=new T),this._currentChanged}}function jp(r,e){e=e||[];const t=r.parentNode;return t?jp(t,e.concat(t)):e}function k_(r){const e=r.composedPath&&r.composedPath()||r.path,t=r.target;if(e!=null)return e.indexOf(globalThis)<0?e.concat(globalThis):e;if(t===globalThis)return[globalThis];if(t===null)throw new Error("target === null");return[t].concat(jp(t),globalThis)}function cn(r,e=!1){const{offsetX:t,offsetY:n}=r;let i=t,s=n;{const o=k_(r);for(let a=0;a<o.length;++a){const u=o[a];if(u!==r.currentTarget&&u instanceof HTMLElement)i+=u.clientLeft,s+=u.clientTop,i+=u.offsetLeft,s+=u.offsetTop;else break}}return e?[i*globalThis.devicePixelRatio,s*globalThis.devicePixelRatio]:[i,s]}function sa(r,e=!1){const t=r.target,n=r.currentTarget||r.__xbsj_lastCurrentTarget__;if(!t||!n)return[r.clientX,r.clientY];const i=t.getBoundingClientRect(),s=n.getBoundingClientRect(),o=i.left+r.offsetX,a=i.top+r.offsetY,u=o-s.left,l=a-s.top;return e?[u*globalThis.devicePixelRatio,l*globalThis.devicePixelRatio]:[u,l]}class Bp extends j{constructor(t){super();h(this,"_clickEvent",new T);h(this,"_dbclickEvent",new T);h(this,"_downEvent",new T);h(this,"_upEvent",new T);h(this,"_moveEvent",new T);h(this,"_debouncing",new bh(300));this.dispose(()=>{this._clickEvent.destroy(),this._dbclickEvent.destroy(),this._downEvent.destroy(),this._upEvent.destroy(),this._moveEvent.destroy(),this._debouncing.destroy()});let n=!1,i=[0,0],s=!1;this._debouncing.progressFunc=([[c,d,f],p])=>{p===1?this._clickEvent.emit(c,d,f):p>=2?this._dbclickEvent.emit(c,d,f):console.error("point click should not be here!")},this._debouncing.start(),this.dispose(()=>{this._debouncing.isRunning&&this._debouncing.cancel(),this._debouncing.destroy()});const o=c=>{n=!0;const[d,f]=cn(c);i[0]=d,i[1]=f,this._downEvent.emit(d,f,c)},a=c=>{const[d,f]=cn(c);n&&!s&&this._debouncing.debounce(d,f,c),n=!1,s=!1,this._upEvent.emit(d,f,c)},u=c=>{const[d,f]=cn(c);if(n&&!s){const[p,v]=i;(Math.abs(d-p)>3||Math.abs(f-v)>3)&&(s=!0)}this._moveEvent.emit(d,f,c)},l=()=>{n=!1,s=!1};t.addEventListener("pointerdown",o),t.addEventListener("pointerup",a),t.addEventListener("pointermove",u),t.addEventListener("pointerout",l),this.dispose(()=>{t.removeEventListener("pointerdown",o),t.removeEventListener("pointerup",a),t.removeEventListener("pointermove",u),t.removeEventListener("pointerout",l)})}get clickEvent(){return this._clickEvent}get dbclickEvent(){return this._dbclickEvent}get downEvent(){return this._downEvent}get upEvent(){return this._upEvent}get moveEvent(){return this._moveEvent}}class xh extends j{constructor(){super();h(this,"_pickRectEvent",this.disposeVar(new T));h(this,"_updateRectEvent",this.disposeVar(new T));h(this,"_pointerActionEvent",this.disposeVar(new T));h(this,"_active",this.disposeVar(V(!1)));h(this,"_pickRect",{left0:0,top0:0,left1:0,top1:0});let t=0,n=0,i=0,s=0;this.dispose(this._pointerActionEvent.disposableOn(({type:o,left:a,top:u})=>{o==="PointerDown"?(this._active.value=!0,t=a,n=u,i=a,s=u,this._setPickRect({left0:t,top0:n,left1:i,top1:s}),this._updateRectEvent.emit(this._pickRect)):o==="PointerMove"?this._active.value&&(i=a,s=u,this._setPickRect({left0:t,top0:n,left1:i,top1:s}),this._updateRectEvent.emit(this._pickRect)):o==="PointerUp"&&this._active.value&&(this._active.value=!1,i=a,s=u,this._setPickRect({left0:t,top0:n,left1:i,top1:s}),this._updateRectEvent.emit(this._pickRect),this._pickRectEvent.emit(this._pickRect))}))}_setPickRect({left0:t,left1:n,top0:i,top1:s}){this._pickRect.left0=t,this._pickRect.left1=n,this._pickRect.top0=i,this._pickRect.top1=s}pointerDown(t,n){this._pointerActionEvent.emit({type:"PointerDown",left:t,top:n})}pointerMove(t,n){this._pointerActionEvent.emit({type:"PointerMove",left:t,top:n})}pointerUp(t,n){this._pointerActionEvent.emit({type:"PointerUp",left:t,top:n})}reset(){this._setPickRect({left0:0,top0:0,left1:0,top1:0}),this._updateRectEvent.emit(this._pickRect),this._pickRectEvent.emit(this._pickRect)}get activeEvent(){return this._active.changed}get updateRectEvent(){return this._updateRectEvent}get pickRectEvent(){return this._pickRectEvent}static getLeftTopAndSize(t,n){n=n||{left:0,top:0,width:0,height:0,forward:!0};const{left0:i,top0:s,left1:o,top1:a}=t;return n.width=Math.abs(i-o),n.height=Math.abs(s-a),n.left=Math.min(i,o),n.top=Math.min(s,a),n.forward=o>i,n}static contains(t,n,i){const{left:s,top:o,width:a,height:u}=i;return t>s&&t<=s+a&&n>=o&&n<=o+u}}class V_ extends xh{constructor(e){super();const t=this.disposeVar(new Bp(e));this.dispose(t.downEvent.disposableOn((o,a,u)=>u.altKey&&this.pointerDown(o,a))),this.dispose(t.moveEvent.disposableOn((o,a)=>this.pointerMove(o,a))),this.dispose(t.upEvent.disposableOn((o,a)=>this.pointerUp(o,a)));const n=document.createElement("div");n.style.backgroundColor="rgba(0, 0, 0, 0)",n.style.border="2px dashed red",n.style.position="absolute",n.style.boxSizing="border-box",n.style.pointerEvents="none",n.style.height="0px",n.style.width="0px",n.style.left="0px",n.style.top="0px",n.style.display="none",e.appendChild(n),this.dispose(()=>e.removeChild(n)),this.dispose(this.activeEvent.disposableOn(o=>{n.style.display=o?"block":"none"}));const i=()=>{this.reset()};e.addEventListener("contextmenu",i),this.dispose(()=>e.removeEventListener("contextmenu",i));const s={left:0,top:0,width:0,height:0,forward:!1};this.dispose(this.updateRectEvent.disposableOn(o=>{if(xh.getLeftTopAndSize(o,s)){const{left:a,top:u,width:l,height:c}=s;n.style.height=`${c|0}px`,n.style.width=`${l|0}px`,n.style.left=`${a|0}px`,n.style.top=`${u|0}px`}}))}}class jr extends Error{}function Ps(r,e){$n(r,"_promise_cancel")&&console.warn("setPromiseCancel warn: promise has cancelFunc!"),yi(r,"_promise_cancel",e)}function oa(r){return $n(r,"_promise_cancel")}function aa(r){return!!oa(r)}function Th(r,e){const t=oa(r);return t?(t(e),!0):!1}function Oh(r){const[e,t]=r;return Ps(t,e),t}function ua(r){let e;const t=new Promise((n,i)=>{e=i,r.then(n).catch(i)});return Ps(t,e),t}function j_(r){let e,t;var n=new Promise((i,s)=>{t=r.disposableOn((...o)=>{t&&t(),i(o)}),e=o=>{t&&t(),s(o)}});return[e,n]}function B_(r){const e=new T,t=new T;return r.then(n=>{e.isDestroyed()||e.emit(n)}).catch(n=>{t.isDestroyed()||t.emit(n)}),[e,t]}class Nh extends j{constructor(){super();h(this,"_cancelled",!1);h(this,"_cancelError");h(this,"_promiseSet",new Set);h(this,"_disposer")}get disposer(){return this._disposer=this._disposer||new j,this._disposer}destroyImp(){this.finally()}cancel(t){var n;if(!this._cancelled){this._cancelled=!0,(n=this._disposer)==null||n.destroy(),this._cancelError=t;for(let i of this._promiseSet)Th(i);this._promiseSet.clear()}}get cancelFuncsNum(){return Ou(this._promiseSet,t=>t+1,0)}finally(){this._disposer&&!this._disposer.isDestroyed()&&this._disposer.destroy(),this._promiseSet.clear()}check(){if(this._cancelled)throw this._cancelError??new jr("cancel from CancelManager!")}promise(t){return this._promiseSet.add(t),t.finally(()=>(this._promiseSet.delete(t),this.check()))}promiseAny(t){const n=[],i=t.map(s=>(this._promiseSet.add(s),aa(s)&&n.push(oa(s)),s.finally(()=>this._promiseSet.delete(s))));return Promise.any(i).finally(()=>(n.forEach(s=>s(new jr("cancel from promiseAny!"))),n.length=0))}promiseAll(t){const n=[],i=t.map(s=>(this._promiseSet.add(s),aa(s)&&n.push(oa(s)),s.finally(()=>this._promiseSet.delete(s))));return Promise.all(i).finally(()=>(n.forEach(s=>s(new jr("cancel from promiseAll!"))),n.length=0))}promiseRace(t){const n=[],i=t.map(s=>(this._promiseSet.add(s),aa(s)&&n.push(oa(s)),s.finally(()=>this._promiseSet.delete(s))));return Promise.race(i).finally(()=>(n.forEach(s=>s(new jr("cancel from promiseRace!"))),n.length=0))}}class je extends j{constructor(t){super();h(this,"_status","Initial");h(this,"_completeEvent");h(this,"_errorEvent");h(this,"_completeFunc");h(this,"_errorFunc");h(this,"_cancelFunc");h(this,"_runningId",-1);this._startFunc=t,this.dispose(()=>this.isRunning&&this.cancel())}get errorEvent(){return this._errorEvent||(this._errorEvent=new T),this._errorEvent}get completeEvent(){return this._completeEvent||(this._completeEvent=new T),this._completeEvent}get errorFunc(){return this._errorFunc}get completeFunc(){return this._completeFunc}set errorFunc(t){this._errorFunc!==t&&(this._errorFunc=t)}set completeFunc(t){this._completeFunc!==t&&(this._completeFunc=t)}start(...t){if(this._status!=="Initial")return;const n=++this._runningId;this._status="Running",this._cancelFunc=this._startFunc({completeFunc:i=>{var s;n===this._runningId&&this._status==="Running"&&(this._status="Completed",this._completeFunc&&this._completeFunc(i),(s=this._completeEvent)==null||s.emit(i))},errorFunc:i=>{var s;n===this._runningId&&this._status==="Running"&&(this._status="Error",this._errorFunc&&this._errorFunc(i),(s=this._errorEvent)==null||s.emit(i))},runningingID:n},...t)}cancel(t=new jr("")){var n;if(this._status==="Running"){if(!this._cancelFunc)throw new Error("!this._cancelFunc");this._status="Error",this._errorFunc&&this._errorFunc(t),(n=this._errorEvent)==null||n.emit(t),this._cancelFunc(t),this._cancelFunc=void 0}}reset(){this._status==="Running"&&console.error("processing cannot reset while running. you can first cancel it!"),(this._status==="Completed"||this._status==="Error")&&(this._status="Initial")}get status(){return this._status}get isInitial(){return this._status==="Initial"}get isRunning(){return this._status==="Running"}get isCompleted(){return this._status==="Completed"}get isError(){return this._status==="Error"}get runningId(){return this._runningId}restart(t=new jr(""),...n){this.isRunning&&this.cancel(t),this.reset(),this.start(...n)}restartIfNotRunning(...t){this.isRunning||(this.reset(),this.start(...t))}}function Du(r){return(e,...t)=>{const n=new Nh,{completeFunc:i,errorFunc:s}=e,o=r(n,...t).then(i).catch(s).finally(()=>n.destroy());return Ps(o,n.cancel.bind(n)),a=>Th(o,a)}}class z_ extends je{constructor(){super(({errorFunc:t},n,i)=>{try{const[s,o]=Fl(n,i);return this._doFunc=s,o}catch(s){return t(s),()=>{}}});h(this,"_doFunc")}do(...t){this._doFunc&&this._doFunc(...t)}}class U_ extends je{constructor(t,n){super(({errorFunc:i})=>{try{const[s,o]=Fl(t,n);return this._doFunc=s,o}catch(s){return i(s),()=>{}}});h(this,"_doFunc")}do(...t){this._doFunc&&this._doFunc(...t)}}function G_(r){return new je(Du((e,...t)=>e.promise(r(...t))))}function W_(r,...e){return new je(Du(t=>t.promise(r(...e))))}function Wl(r){return G_((...e)=>{const t=r(...e);return aa(t)?t:ua(t)})}function Dh(r,...e){return W_(()=>{const t=r(...e);return aa(t)?t:ua(t)})}function H_(r){let e;const t=new Promise((n,i)=>{e=()=>{r(),i()}});return Ps(t,e),t}function q_(r,...e){const t=new Nh,n=r(t,...e).finally(()=>t.destroy());return Ps(n,t.cancel.bind(t)),n}function Kn(r){return new je(Du(r))}function X_(r,...e){return new je(Du(t=>r(t,...e)))}function zp(r,...e){const t=new AbortController;let n=t.signal,[i,s]=e;if(s!=null&&s.signal)throw console.error("init?.signal"),new Error("init?.signal");s=s||{},s.signal&&console.warn("revocableFetch error: init.signal would be override!"),s.signal=n;let o=!1;const a=()=>{o=!0,t.abort()};let u=fetch(i,s);return r&&(u=u.then(l=>{if(!l.ok)return l;if(!l.body)throw Error("ReadableStream not yet supported in this browser.");const c=l.headers.get("content-length");c||console.warn("response.headers.get('content-length') is undefined... cannot get contentLength!");const d=c?parseInt(c,10):0;let f=0;return new Response(new ReadableStream({start(p){if(!l.body)throw new Error("!response.body");const v=l.body.getReader();C();function C(){v.read().then(({done:S,value:I})=>{if(S){p.close();return}if(!I)throw new Error("!value");if(!r)throw new Error("!progressFunc");f+=I.byteLength,r(f,d),p.enqueue(I),C()}).catch(S=>{p.error(S)})}}}),{status:l.status,statusText:l.statusText,headers:l.headers})}).catch(l=>{throw o?(l instanceof Error&&l.code!==20&&console.error("error.code !== 20"),console.log("fetching cancelled!"),new jr(`fetching cancelled! error: ${l}`)):(l instanceof Error&&l.code===20&&console.error("error.code === 20"),l)})),Ps(u,a),u}function Y_(r,...e){return zp(r,...e)}function Mh(...r){return zp(void 0,...r)}function J_(){return Wl(Mh)}function $_(...r){return Dh(Mh,...r)}function Rh(r,...e){let t=-1;var n=new Promise((i,s)=>{r.isRunning&&r.cancel(),r.reset();const o=new j;o.dispose(r.completeEvent.disposableOn(a=>{if(i(a),o.isDestroyed()){debugger;console.error(`disposer is destroyed! ${o}`);return}o.destroy()})),o.dispose(r.errorEvent.disposableOn(a=>{if(s(a),o.isDestroyed()){debugger;console.error(`disposer is destroyed! ${o}`);return}o.destroy()})),r.start(...e),t=r.runningId});return[i=>t===r.runningId&&r.isRunning&&r.cancel(i),n]}function wi(r,e,...t){try{return e(...t)}catch(n){r(n)}}function K_(){return new je(({completeFunc:r,errorFunc:e},t)=>ia(()=>wi(e,()=>{t&&t(),r()})))}function Z_(r){return new je(({completeFunc:e,errorFunc:t})=>ia(()=>wi(t,()=>{r&&r(),e()})))}function Q_(){return new je(({completeFunc:r,errorFunc:e},t)=>Iu(()=>{wi(e,()=>{t&&t(),r()})}))}function t0(r){return new je(({completeFunc:e,errorFunc:t})=>Iu(()=>{wi(t,()=>{r&&r(),e()})}))}function Up(){return new je(({completeFunc:r,errorFunc:e},t,n)=>gh(()=>{wi(e,()=>{t&&t(),r()})},n??1e3))}function Gp(r,e){return new je(({completeFunc:t,errorFunc:n})=>gh(()=>{wi(n,()=>{r&&r(),t()})},e??1e3))}function e0(){return new je(({errorFunc:r},e,t=1e3)=>ph(()=>wi(r,e),t))}function n0(r,e=1e3){return new je(({errorFunc:t})=>ph(()=>wi(t,r),e))}function Mu(){return new je(({errorFunc:r},e)=>Al(t=>wi(r,e,t)))}function la(r){return new je(({errorFunc:e})=>Al(t=>wi(e,r,t)))}function Ru(r,...e){let t,n;const i=new Promise((o,a)=>{n=a,t=globalThis.setTimeout(()=>{t=void 0,o(e)},r)});return Ps(i,o=>{t&&(clearTimeout(t),t=void 0),n&&n(o??new jr("sleep cancel error!"))}),i}function r0(){return Wl(Ru)}function i0(r,...e){return Dh(Ru,r,...e)}function uo(r,e,...t){return r.promise(Oh(Rh(Kn(async(n,...i)=>(r.disposer.dispose(()=>{n.isDestroyed()||n.cancel()}),await e(n,...i))),...t)))}function s0(r,e,...t){return r.promise(Oh(Rh(e,...t)))}class o0 extends je{constructor(){super(({errorFunc:t},n,i)=>{try{const[s,o]=Eh(n,i);return this._doFunc=s,o}catch(s){return t(s),()=>{}}});h(this,"_doFunc")}do(...t){this._doFunc&&this._doFunc(...t)}}class a0 extends je{constructor(t,n){super(({errorFunc:i})=>{try{const[s,o]=Eh(t,n);return this._doFunc=s,o}catch(s){return i(s),()=>{}}});h(this,"_doFunc")}do(...t){this._doFunc&&this._doFunc(...t)}}class Hl extends j{constructor(t=1e3,n=jl){super();h(this,"_speed");h(this,"_speedChangedEvent");h(this,"_duration");h(this,"_durationChangedEvent");h(this,"_loop");h(this,"startUpdateFunc");h(this,"_updateBindThis");h(this,"_cancelStartUpdateFunc");h(this,"_startTimeStamp");h(this,"_playingChangedEvent");h(this,"_startPlayingEvent");h(this,"_stopPlayingEvent");h(this,"_loopChangedEvent");h(this,"_currentTime",this.disposeVar(V(0)));this._speed=1,this._duration=t,this._loop=!1,this.startUpdateFunc=n,this._updateBindThis=this._update.bind(this),this.dispose(()=>{this._cancelStartUpdateFunc&&(this._cancelStartUpdateFunc(),this._cancelStartUpdateFunc=void 0)}),this._startTimeStamp=Number.NaN,this.dispose(()=>{this._startPlayingEvent&&this._startPlayingEvent.reset(),this._stopPlayingEvent&&this._stopPlayingEvent.reset()})}get startPlayingEvent(){return this._startPlayingEvent=this._startPlayingEvent||new T,this._startPlayingEvent}get stopPlayingEvent(){return this._stopPlayingEvent=this._stopPlayingEvent||new T,this._stopPlayingEvent}get currentTimeChangedEvent(){return this._currentTime.changed}get loopChangedEvent(){return this._loopChangedEvent=this._loopChangedEvent||new T,this._loopChangedEvent}set loop(t){this._loop!==t&&(this._loop=t,this._loopChangedEvent&&this._loopChangedEvent.emit(this._loop))}get loop(){return this._loop}_update(t){if(Number.isNaN(this._startTimeStamp))console.warn("Number.isNaN(this._startTimeStamp)");else{const n=(t-this._startTimeStamp)*this._speed;this._setCurrentTimeInner(n)}}get currentTime(){return this._currentTime.value}set currentTime(t){this._setCurrentTimeInner(t),this._resetStartTime()}_setCurrentTimeInner(t){this._currentTime.value!==t&&(this._duration<=0?this._currentTime.value=0:t<0?this.loop?this._currentTime.value=this._duration+t%this._duration:(this._currentTime.value=0,this.playing&&this._stopPlaying()):t>this._duration?this.loop?this._currentTime.value=t%this._duration:(this._currentTime.value=this._duration,this.playing&&this._stopPlaying()):this._currentTime.value=t)}get durationChangedEvent(){return this._durationChangedEvent||(this._durationChangedEvent=new T),this._durationChangedEvent}get duration(){return this._duration}set duration(t){var n;if(t<0)console.warn("duration sholud greater than 0!");else if(this._duration!==t){const i=this._duration;this._duration=t,this._currentTime.value>this._duration&&(this._currentTime.value=this._duration),(n=this._durationChangedEvent)==null||n.emit(this._duration,i)}}get speedChangedEvent(){return this._speedChangedEvent||(this._speedChangedEvent=new T),this._speedChangedEvent}get speed(){return this._speed}set speed(t){var n;if(this._speed!==t&&t!==0){const i=this._speed;this._speed=t,this._resetStartTime(),(n=this._speedChangedEvent)==null||n.emit(this._speed,i)}}_resetStartTime(){this._startTimeStamp=performance.now()-this._currentTime.value/this._speed}_startPlaying(){var t,n;this._resetStartTime(),this._cancelStartUpdateFunc=this.startUpdateFunc(this._updateBindThis),(t=this._startPlayingEvent)==null||t.emit(this._currentTime.value),(n=this._playingChangedEvent)==null||n.emit(!0)}_stopPlaying(){var t,n;if(!this._cancelStartUpdateFunc)throw new Error("this._cancelStartUpdateFunc is undefined!");this._cancelStartUpdateFunc(),this._cancelStartUpdateFunc=void 0,(t=this._stopPlayingEvent)==null||t.emit(this._currentTime.value),(n=this._playingChangedEvent)==null||n.emit(!1)}get playingChangedEvent(){return this._playingChangedEvent||(this._playingChangedEvent=new T),this._playingChangedEvent}get playing(){return!!this._cancelStartUpdateFunc}set playing(t){!!this._cancelStartUpdateFunc!==t&&(t?this._startPlaying():this._stopPlaying())}}class Lu extends j{constructor(t){super();h(this,"_stop",this.disposeVar(V(0)));h(this,"_current",this.disposeVar(V(0)));h(this,"_start",this.disposeVar(V(0)));h(this,"_player",this.disposeVar(new Hl(200)));this.dispose(this._player.currentTimeChangedEvent.disposableOn(n=>{let i=n/this._player.duration;i=i>1?1:i<0?0:i;const s=this._start.value,o=this._stop.value;this._current.value=s+(o-s)*i})),this.duration=t}get current(){return this._current.value}get currentChanged(){return this._current.changed}get source(){return this._start.value}get sourceChanged(){return this._start.changed}get target(){return this._stop.value}get targetChanged(){return this._stop.changed}get duration(){return this._player.duration}set duration(t){this._player.duration=t}set target(t){this._start.value=this._current.value,this._stop.value=t,this._player.currentTime=0,this._player.playing=!0}reset(t){this._start.value=t,this._current.value=t,this._stop.value=t,this._player.playing=!1}}let Wp=-1;class ae extends T{constructor(e,t,n,i){super(),this._domElement=e,this._type=t,this.callback=i;const s=o=>(o.__xbsj_listenerNo__=++Wp,o.__xbsj_listenerTime__=Date.now(),o.__xbsj_lastCurrentTarget__=o.currentTarget,this.emit(o),this.callback&&this.callback(o));this._domElement.addEventListener(this._type,s,n),this.dispose(()=>this._domElement.removeEventListener(this._type,s,n))}static getLastLisenNo(){return Wp}static getCurrentTarget(e){return e.__xbsj_lastCurrentTarget__}static getListenerNo(e){return e.__xbsj_listenerNo__}static getListenerTime(e){return e.__xbsj_listenerTime__}static on(e,t){const n=ae.getLastLisenNo();return e.disposableOn(i=>{const s=ae.getListenerNo(i);(s===void 0||s>n)&&t(i)})}get element(){return this._domElement}static create(e,t,n){return new ae(e,t,n)}}class Lh extends j{constructor(){super();h(this,"_clickEvent",this.disposeVar(new T));h(this,"_dbclickEvent",this.disposeVar(new T));h(this,"_pointerdownEvent",this.disposeVar(new T));h(this,"_pointerupEvent",this.disposeVar(new T));h(this,"_pointermoveEvent",this.disposeVar(new T));h(this,"_pointeroutEvent",this.disposeVar(new T));h(this,"dbClickDelayTime",300);h(this,"nativeClickDelayTime",500);h(this,"clickMovementTolerantPixelSize",3);h(this,"debugging",!1);h(this,"_enabled",this.disposeVar(V(!0)));const t=this.disposeVar(Kn(async i=>{do{const s=await uo(i,u=>new Promise((l,c)=>{u.disposer.dispose(c),u.disposer.dispose(ae.on(this._pointerdownEvent,l))})),o=cn(s);if(this.debugging&&console.log(`鼠标按下 ${o.toString()}`),!await uo(i,u=>new Promise((l,c)=>{u.disposer.dispose(c);const d=setTimeout(()=>l(!0),this.nativeClickDelayTime);u.disposer.dispose(()=>clearTimeout(d)),u.disposer.dispose(ae.on(this._pointermoveEvent,f=>{const[p,v]=cn(f),[C,S]=o;(Math.abs(p-C)>3||Math.abs(v-S)>3)&&l(!1)})),u.disposer.dispose(ae.on(this._pointeroutEvent,()=>l(!1))),u.disposer.dispose(ae.on(this._pointerupEvent,()=>l(!0)))}))){this.debugging&&console.log("取消1");continue}const a=await uo(i,u=>new Promise((l,c)=>{u.disposer.dispose(c);const d=setTimeout(()=>l("timeout"),this.dbClickDelayTime);u.disposer.dispose(()=>clearTimeout(d)),u.disposer.dispose(ae.on(this._pointermoveEvent,f=>{const[p,v]=cn(f),[C,S]=o;(Math.abs(p-C)>3||Math.abs(v-S)>3)&&l("moved")})),u.disposer.dispose(ae.on(this._pointerdownEvent,l)),u.disposer.dispose(ae.on(this._pointeroutEvent,()=>l("pointouted"))),u.disposer.dispose(ae.on(this._pointerupEvent,()=>l("pointuped")))}));if(typeof a=="string"){this.debugging&&console.log(`触发单击事件!取消双击监听!error: ${a}`),this._clickEvent.emit(s);continue}if(!await uo(i,u=>new Promise((l,c)=>{u.disposer.dispose(c);const d=setTimeout(()=>l(!1),this.nativeClickDelayTime);u.disposer.dispose(()=>clearTimeout(d)),u.disposer.dispose(ae.on(this._pointermoveEvent,f=>{const[p,v]=cn(f),[C,S]=o;(Math.abs(p-C)>3||Math.abs(v-S)>3)&&l(!1)})),u.disposer.dispose(ae.on(this._pointeroutEvent,()=>l(!1))),u.disposer.dispose(ae.on(this._pointerupEvent,()=>l(!0)))}))){this.debugging&&console.log("取消2");continue}this.debugging&&console.log("触发双击事件!"),this._dbclickEvent.emit(a)}while(!0)})),n=i=>{i?t.restart():t.isRunning&&t.cancel()};n(this.enabled),this.dispose(this.enabledChanged.disposableOn(n))}get clickEvent(){return this._clickEvent}get dbclickEvent(){return this._dbclickEvent}pointerDown(t){this._pointerdownEvent.emit(t)}pointerUp(t){this._pointerupEvent.emit(t)}pointerMove(t){this._pointermoveEvent.emit(t)}pointerOut(t){this._pointeroutEvent.emit(t)}get enabled(){return this._enabled.value}set enabled(t){this._enabled.value=t}get enabledChanged(){return this._enabled.changed}}class u0 extends j{constructor(t,n){super();h(this,"_pointerClick",this.disposeVar(new Lh));this._div=t;const{div:i,pointerClick:s}=this,o=c=>s.pointerDown(c),a=c=>s.pointerMove(c),u=c=>s.pointerOut(c),l=c=>s.pointerUp(c);i.addEventListener("pointerdown",o,n),i.addEventListener("pointermove",a,n),i.addEventListener("pointerout",u,n),i.addEventListener("pointerup",l,n),this.dispose(()=>{i.removeEventListener("pointerdown",o,n),i.removeEventListener("pointermove",a,n),i.removeEventListener("pointerout",u,n),i.removeEventListener("pointerup",l,n)})}get div(){return this._div}get pointerClick(){return this._pointerClick}get clickEvent(){return this.pointerClick.clickEvent}get dbclickEvent(){return this.pointerClick.dbclickEvent}}class Hp extends j{constructor(){super();h(this,"_hoverEvent",this.disposeVar(new T));h(this,"_hoverOutEvent",this.disposeVar(new T));h(this,"_pointerdownEvent",this.disposeVar(new T));h(this,"_pointerupEvent",this.disposeVar(new T));h(this,"_pointermoveEvent",this.disposeVar(new T));h(this,"_pointeroutEvent",this.disposeVar(new T));h(this,"delayTime",800);const t=this.disposeVar(Up()),n=l=>{this._hoverOutEvent.emit()},i=l=>{this._hoverOutEvent.emit()};let s;const o=()=>{if(!s){console.warn("!lastPointerEvent");return}this._hoverEvent.emit(s)},a=l=>{s=l,t.restart(void 0,o,this.delayTime),this._hoverOutEvent.emit()},u=l=>{t.cancel(),this._hoverOutEvent.emit()};this.dispose(this._pointerdownEvent.disposableOn(n)),this.dispose(this._pointerupEvent.disposableOn(i)),this.dispose(this._pointermoveEvent.disposableOn(a)),this.dispose(this._pointeroutEvent.disposableOn(u))}get hoverEvent(){return this._hoverEvent}get hoverOutEvent(){return this._hoverOutEvent}pointerDown(t){this._pointerdownEvent.emit(t)}pointerUp(t){this._pointerupEvent.emit(t)}pointerMove(t){this._pointermoveEvent.emit(t)}pointerOut(t){this._pointeroutEvent.emit(t)}}class l0 extends j{constructor(t,n=1500){super();h(this,"_hoverEvent",new T);h(this,"_hoverOutEvent",new T);const i=new bh(n);this.dispose(()=>i.destroy());let s=0,o=0,a;i.progressFunc=()=>this._hoverEvent.emit(s,o,a);const u=f=>{!i.isRunning&&i.restart(),a=f,[s,o]=cn(f),i.debounce(),this._hoverOutEvent.emit()},l=f=>{!i.isRunning&&i.restart(),a=f,[s,o]=cn(a),i.debounce(),this._hoverOutEvent.emit()},c=f=>{!i.isRunning&&i.restart(),a=f,[s,o]=cn(a),i.debounce(),this._hoverOutEvent.emit()},d=f=>{i.isRunning&&i.cancel(),this._hoverOutEvent.emit()};t.addEventListener("pointerdown",u),t.addEventListener("pointerup",l),t.addEventListener("pointermove",c),t.addEventListener("pointerout",d),this.dispose(()=>{t.removeEventListener("pointerdown",u),t.removeEventListener("pointerup",l),t.removeEventListener("pointermove",c),t.removeEventListener("pointerout",d)})}get hoverEvent(){return this._hoverEvent}get hoverOutEvent(){return this._hoverOutEvent}}class qp extends j{constructor(t,n={}){super();h(this,"_needRedrawEvent");h(this,"_needPickRedrawEvent");h(this,"_id",ra());h(this,"_clickEvent");h(this,"_clickOutEvent");h(this,"_dbclickEvent");h(this,"_dbclickOutEvent");h(this,"_actived",!1);h(this,"_activedChanged");h(this,"_hovered",!1);h(this,"_hoveredChanged");h(this,"_selected",!1);h(this,"_selectedChanged");h(this,"_opacity",1);h(this,"_opacityChanged");h(this,"_show",!0);h(this,"_showChanged");this._canvasPrimitivesContext=t;const{needRedraw:i=!0,needPickRedraw:s=!0}=n;i&&(this._needRedrawEvent=new T),s&&(this._needPickRedrawEvent=new T),this._canvasPrimitivesContext.addPoi(this),this.dispose(()=>this._canvasPrimitivesContext.removePoi(this)),this.dispose(this.showChanged.disposableOn(()=>{this.needRedraw(),this.needPickRedraw()})),this.dispose(this.opacityChanged.disposableOn(()=>this.needRedraw()))}get id(){return this._id}get context(){return this._canvasPrimitivesContext}needRedraw(){this._needRedrawEvent?this._needRedrawEvent.emit():console.warn("no needRedrawEvent!")}needPickRedraw(){this._needPickRedrawEvent?this._needPickRedrawEvent.emit():console.warn("no needPickRedrawEvent!")}hasClickEvent(){return!!this._clickEvent}get clickEvent(){return this._clickEvent=this._clickEvent||new T,this._clickEvent}hasClickOutEvent(){return!!this._clickOutEvent}get clickOutEvent(){return this._clickOutEvent=this._clickOutEvent||new T,this._clickOutEvent}hasDbclickEvent(){return!!this._dbclickEvent}get dbclickEvent(){return this._dbclickEvent=this._dbclickEvent||new T,this._dbclickEvent}hasDbclickOutEvent(){return!!this._dbclickOutEvent}get dbclickOutEvent(){return this._dbclickOutEvent=this._dbclickOutEvent||new T,this._dbclickOutEvent}set actived(t){this._actived!==t&&(this._actived=t,this._activedChanged&&this._activedChanged.emit(t,this))}get actived(){return this._actived}get activedChanged(){return this._activedChanged=this._activedChanged||new T,this._activedChanged}set hovered(t){this._hovered!==t&&(this._hovered=t,this._hoveredChanged&&this._hoveredChanged.emit(t,this))}get hovered(){return this._hovered}get hoveredChanged(){return this._hoveredChanged=this._hoveredChanged||new T,this._hoveredChanged}set selected(t){this._selected!==t&&(this._selected=t,this._selectedChanged&&this._selectedChanged.emit(t,this))}get selected(){return this._selected}get selectedChanged(){return this._selectedChanged=this._selectedChanged||new T,this._selectedChanged}set opacity(t){this._opacity!==t&&(this._opacity=t,this._opacityChanged&&this._opacityChanged.emit(t,this))}get opacity(){return this._opacity}get opacityChanged(){return this._opacityChanged=this._opacityChanged||new T,this._opacityChanged}set show(t){this._show!==t&&(this._show=t,this._showChanged&&this._showChanged.emit(t,this))}get show(){return this._show}get showChanged(){return this._showChanged=this._showChanged||new T,this._showChanged}}class Fh extends qp{constructor(t,n=[0,0],i=0){super(t);h(this,"_winPosAndDepthChanged");this._winPos=n,this._depth=i,this.dispose(this.winPosAndDepthChanged.disposableOn(()=>{this.needRedraw(),this.needPickRedraw()}))}set winPos(t){(this._winPos[0]!==t[0]||this._winPos[1]!==t[1])&&(this._winPos[0]=t[0],this._winPos[1]=t[1],this._winPosAndDepthChanged&&this._winPosAndDepthChanged.emit(this._winPos,this._depth))}get winPos(){return this._winPos}set depth(t){this._depth!==t&&(this._depth=t,this._winPosAndDepthChanged&&this._winPosAndDepthChanged.emit(this._winPos,this._depth))}get depth(){return this._depth}get winPosAndDepthChanged(){return this._winPosAndDepthChanged||(this._winPosAndDepthChanged=new T),this._winPosAndDepthChanged}}function lo(r,e,t,n){const[i,s]=r,[o,a,u,l]=n,c=e[0]*t[0],d=e[1]*t[1],f=i-(c*o+u),p=s-(d*a+l);return{left:f,top:p,right:f+c,bottom:p+d}}function co(r,e,t,n,i){r.beginPath(),r.moveTo(e,t),r.lineTo(e-n*.5,t-n*.5),r.arc(e,t-n,n*.7071067811865475,Math.PI*.75,Math.PI*.25),r.lineTo(e,t),r.fillStyle=i,r.fill()}function c0(r,e,t,n,i,s){if(r.beginPath(),r.moveTo(e+n,t),r.arc(e,t,n,0,2*Math.PI),s){const o=r.createRadialGradient(e,t,0,e,t,n);o.addColorStop(0,i),o.addColorStop(1,i.replace(/[\d\.]+\)$/,"0)")),r.fillStyle=o}else r.fillStyle=i;r.fill()}function Xp(r,e,t,n,i,s){r.beginPath(),r.moveTo(e+s,t),r.lineTo(e+n-s,t),r.arcTo(e+n,t,e+n,t+s,s),r.lineTo(e+n,t+i-s),r.arcTo(e+n,t+i,e+n-s,t+i,s),r.lineTo(e+s,t+i),r.arcTo(e,t+i,e,t+i-s,s),r.lineTo(e,t+s),r.arcTo(e,t,e+s,t,s)}function Yp(r,e,t,n,i,s){r.font=i;const o=r.measureText(n),a=o.actualBoundingBoxLeft+o.actualBoundingBoxRight,u=Number.isFinite(o.fontBoundingBoxAscent)?o.fontBoundingBoxAscent:o.actualBoundingBoxAscent,l=Number.isFinite(o.fontBoundingBoxDescent)?o.fontBoundingBoxDescent:o.actualBoundingBoxDescent;let c=u+l;r.fillStyle=s,r.fillText(n,e-a*.5,t+c*.5-l)}function Jp(r){const{width:e,height:t}=r,n=e instanceof SVGAnimatedLength?e.baseVal.SVG_LENGTHTYPE_PX:e,i=t instanceof SVGAnimatedLength?t.baseVal.SVG_LENGTHTYPE_PX:t,s=document.createElement("canvas");s.width=n,s.height=i;const o=s.getContext("2d");if(!o)throw new Error("!cavnasCtx");return o.drawImage(r,0,0,n,i),s}function $p(r,e){const{width:t,height:n}=r,i=r.getContext("2d");if(!i)throw new Error("!cavnasCtx");const[s,o,a]=e.map(d=>d*255|0),u=i.getImageData(0,0,t,n),l=u.data;for(var c=0;c<l.length;c+=4)l[c]=s,l[c+1]=o,l[c+2]=a;i.putImageData(u,0,0)}function Ah(r,e,t,n=[.5,1,0,0],i,s="12px Arial",o=2,a="#FFF",u="#000A"){r.font=s;const l=r.measureText(i),c=l.actualBoundingBoxLeft+l.actualBoundingBoxRight,d=l.fontBoundingBoxAscent+l.fontBoundingBoxDescent,f=e,p=t,v=c+o*2,C=d+o*2,{left:S,top:I,bottom:y}=lo([f,p],[v,C],[1,1],n);r.fillStyle=u,Xp(r,S,I,v,C,o),r.fill(),r.fillStyle=a,r.fillText(i,S+o,y-o-l.fontBoundingBoxDescent)}function Fu(r){return("00"+r.toString(16).toUpperCase()).substr(-2)}function Au(r){const[e,t,n,i]=r.map(s=>s*255|0);return`#${Fu(e)}${Fu(t)}${Fu(n)}${Fu(i)}`}function kh(r,e){const[t,n,i]=e,s=`${t}-${n}-${i}`;let o=$n(r,s);return o||(o=Jp(r),$p(o,e),yi(r,s,o)),o}class h0 extends Fh{constructor(t,n,i=[32,32],s=[.5,1,0,0],o="#F00F"){super(t);h(this,"_tooltip","");h(this,"_title","");h(this,"__scale",[1,1]);h(this,"_tooltipAlpha",0);h(this,"_bgColor",[.3,.3,.3,.8]);h(this,"_bgColorHexStr",Au(this._bgColor));h(this,"_fgColor",[1,1,1,1]);h(this,"_fgColorHexStr",Au(this._fgColor));this._image=n,this._size=i,this._originRatioAndOffset=s,this._defaultColorStr=o;const a=new Lu(100),u=new Lu(100);this.dispose(()=>{a.destroy(),u.destroy()});const l=()=>{if(this._clickEvent&&!this._clickEvent.empty){const c=(1+.08*u.current)*(1+.08*a.current);this._scale=[c,c],this._tooltipAlpha=a.current}};this.dispose(this.activedChanged.disposableOn(c=>{u.target=c?1:0,this.needRedraw()})),this.dispose(this.hoveredChanged.disposableOn(c=>{a.target=c?1:0,this.needRedraw()})),this.dispose(this.selectedChanged.disposableOn(()=>{this.needRedraw()})),this.dispose(u.currentChanged.disposableOn(l)),this.dispose(a.currentChanged.disposableOn(l))}set size(t){const[n,i]=t,[s,o]=this._size;(s!==n||o!==i)&&(this._size[0]=n,this._size[1]=i,this.needRedraw(),this.needPickRedraw())}get size(){return this._size}set _scale(t){const[n,i]=t,[s,o]=this.__scale;(s!==n||o!==i)&&(this.__scale[0]=n,this.__scale[1]=i,this.needRedraw(),this.needPickRedraw())}get _scale(){return this.__scale}set fgColor(t){if(!this._fgColor.every((n,i)=>t[i]===n)){const[n,i,s,o]=t;this._fgColor.splice(0,4,n,i,s,o),this._fgColorHexStr=Au(this._fgColor),this.needRedraw()}}get fgColor(){return this._fgColor}set bgColor(t){if(!this._bgColor.every((n,i)=>t[i]===n)){const[n,i,s,o]=t;this._bgColor.splice(0,4,n,i,s,o),this._bgColorHexStr=Au(this._bgColor),this.needRedraw()}}get bgColor(){return this._bgColor}set originRatioAndOffset(t){const[n,i,s,o]=this._originRatioAndOffset,[a,u,l,c]=t;(n!==a||i!==u||s!==l||o!==c)&&(this._originRatioAndOffset.splice(0,4,a,u,l,c),this.needRedraw(),this.needPickRedraw())}get originRatioAndOffset(){return this._originRatioAndOffset}set image(t){this._image!==t&&(this._image=t,this.needRedraw())}get image(){return this._image}set defaultColorStr(t){this._defaultColorStr!==t&&(this._defaultColorStr=t,this.needRedraw())}get defaultColorStr(){return this._defaultColorStr}set tooltip(t){this._tooltip!==t&&(this._tooltip=t,this.needRedraw())}get tooltip(){return this._tooltip}set title(t){this._title!==t&&(this._title=t,this.needRedraw())}get title(){return this._title}draw(t){if(!this._show)return;const[n,i]=this._winPos,s=this._size[0]*this.__scale[0],o=this._size[1]*this.__scale[1],{left:a,top:u}=lo([n,i],this._size,this.__scale,this._originRatioAndOffset),l=t.globalAlpha;if(t.globalAlpha=this.opacity,this._image){if(this.selected){const c=kh(this._image,[1,0,0]),{left:d,top:f}=lo([n,i+3],[s+6,o+6],[1,1],this._originRatioAndOffset);t.drawImage(c,d,f,s+6,o+6)}if(this.actived){const[c,d,f,p]=this._fgColor,v=kh(this._image,[c,d,f]),{left:C,top:S}=lo([n,i+4],[s+8,o+8],[1,1],this._originRatioAndOffset);t.drawImage(v,C,S,s+8,o+8)}if(this.hovered){const[c,d,f,p]=this._bgColor,v=kh(this._image,[c,d,f]),{left:C,top:S}=lo([n,i+2],[s+4,o+4],[1,1],this._originRatioAndOffset);t.drawImage(v,C,S,s+4,o+4)}t.drawImage(this._image,a,u,s,o)}else t.fillStyle=this._fgColorHexStr,t.fillRect(a,u,s,o);if(this._title!==""&&Ah(t,n+20,i-16,[0,.5,0,0],this._title,"14px Arial",4,this._fgColorHexStr,this._bgColorHexStr),t.globalAlpha=l,this._hovered&&this._tooltip!==""){const c=t.globalAlpha;t.globalAlpha=this._tooltipAlpha,Ah(t,n,i-42,[.5,1,0,0],this._tooltip,"12px Arial",4,this._fgColorHexStr,this._bgColorHexStr),t.globalAlpha=c}}drawForPick(t,n){if(!this._show)return;const[i,s]=this._winPos,o=n("default"),a=this._size[0]*this.__scale[0],u=this._size[1]*this.__scale[1],{left:l,top:c}=lo([i,s],this._size,this.__scale,this._originRatioAndOffset);t.fillStyle=o,t.fillRect(l,c,a,u)}}class d0 extends Fh{constructor(t){super(t);h(this,"_width",16);h(this,"_text","");h(this,"_fillStyle","#0F0");h(this,"_scale",1);h(this,"_scaleChanged");this.dispose(this.scaleChanged.disposableOn(o=>{this.needRedraw(),this.needPickRedraw()}));const n=this.disposeVar(new Lu(100)),i=this.disposeVar(new Lu(100)),s=()=>{this._clickEvent&&!this._clickEvent.empty&&(this.scale=(1+.1*i.current)*(1+.2*n.current))};this.dispose(i.currentChanged.disposableOn(s)),this.dispose(n.currentChanged.disposableOn(s)),this.dispose(this.activedChanged.disposableOn(o=>{i.target=o?1:0,this.needRedraw()})),this.dispose(this.hoveredChanged.disposableOn(o=>{n.target=o?1:0,this.needRedraw()})),this.dispose(this.selectedChanged.disposableOn(o=>{this.needRedraw()}))}set scale(t){this._scale!==t&&(this._scale=t,this._scaleChanged&&this._scaleChanged.emit(t,this))}get scale(){return this._scale}get scaleChanged(){return this._scaleChanged||(this._scaleChanged=new T),this._scaleChanged}set width(t){this._width!==t&&(this._width=t,this.needRedraw(),this.needPickRedraw())}get width(){return this._width}set text(t){this._text!==t&&(this._text=t,this.needRedraw())}get text(){return this._text}set fillStyle(t){this._fillStyle!==t&&(this._fillStyle=t,this.needRedraw())}get fillStyle(){return this._fillStyle}draw(t){if(!this._show)return;const[n,i]=this._winPos,s=t.globalAlpha;t.globalAlpha=this.opacity;const o=this._width*this._scale;this.selected&&co(t,n,i+3,o+3,"#F00"),this.actived&&this._clickEvent&&!this._clickEvent.empty&&co(t,n,i+5,o+5,"#FFF"),this.hovered?co(t,n,i+3,o+3,"#000A"):co(t,n,i+1,o+1,"#000A"),co(t,n,i,o,this._fillStyle);const a=this._scale>1.2?"bold 14px Arial":"bold 10px Arial";Yp(t,n,i-o,this._text,a,"#000"),t.globalAlpha=s}drawForPick(t,n){if(!this._show)return;const[i,s]=this._winPos,o=this._width*this._scale,a=n("default");co(t,i,s,o,a)}}const Kp=new ArrayBuffer(4),Zp=new Uint32Array(Kp),ho=new Uint8Array(Kp);function Qp(r){if(r>=16777215)throw new Error("uint32 > 0xFFFFFF");return Zp[0]=r,[ho[0],ho[1],ho[2]]}function tg(r,e,t){return ho[0]=r,ho[1]=e,ho[2]=t,ho[3]=0,Zp[0]}class eg extends j{constructor(){super(...arguments);h(this,"_pickColors",new Array(16777215));h(this,"_pickColorIndex",0)}reset(){for(let t=0;t<this._pickColorIndex;++t){const n=this._pickColors[t];if(!n)throw console.error("this._pickColors[i] should not be undefined!"),new Error("this._pickColors[i] should not be undefined!");n.poi=null,n.tag=""}this._pickColorIndex=0}createPickColor(t,n){const i=this._pickColorIndex;++this._pickColorIndex;const s=this._pickColors[i];s?(s.poi=t,s.tag=n):this._pickColors[i]={poi:t,tag:n};const[o,a,u]=Qp(i);return[o,a,u]}getPickInfoFromColor(t,n,i){const s=tg(t,n,i);if(s>=this._pickColorIndex){console.error("index >= this._pickColorIndex");return}const o=this._pickColors[s];if(!o){console.error("!this._pickColors[index]");return}return o}destroyImp(){this.reset()}}const ng=(r,e)=>e.depth-r.depth;class f0 extends j{constructor(){super();h(this,"_pois",[]);h(this,"_canvasElement");h(this,"_ctx");h(this,"_offscreenCanvasElement");h(this,"_offscreenCanvasElement2");h(this,"_offscreenCtx");h(this,"_offscreenCtx2");h(this,"_size",[0,0]);h(this,"_needRedraw",!1);h(this,"_needPickRedraw",!1);h(this,"_pickColorManager",new eg);const t=document.createElement("canvas");t.style.width="100%",t.style.height="100%",this._canvasElement=t;const n=t.getContext("2d");if(n===null)throw new Error("cannot get context 2d!");this._ctx=n,this._offscreenCanvasElement=document.createElement("canvas"),this._offscreenCtx=this._offscreenCanvasElement.getContext("2d"),this._offscreenCtx.imageSmoothingEnabled=!1,this._offscreenCanvasElement2=document.createElement("canvas"),this._offscreenCtx2=this._offscreenCanvasElement2.getContext("2d"),this._offscreenCtx2.imageSmoothingEnabled=!1,this.disposeVar(la(()=>{const[s,o]=this._size,{clientWidth:a,clientHeight:u}=this._canvasElement;(s!==a||o!==u)&&(this._size[0]=a,this._size[1]=u,this._canvasElement.width=a,this._canvasElement.height=u,this._offscreenCanvasElement.width=a,this._offscreenCanvasElement.height=u,this._offscreenCanvasElement2.width=a,this._offscreenCanvasElement2.height=u,this._dirty()),this._needRedraw&&(this._needRedraw=!1,this._draw())})).start()}get element(){return this._canvasElement}get pois(){return this._pois}_dirty(){this._needRedraw=!0,this._needPickRedraw=!0}get size(){return this._size}addPoi(t){if(typeof $n(t,"listenHandler")<"u"){console.error("可能有poi重复加载poiManager中!");return}if(this._pois.indexOf(t)!==-1){console.error("同一个poi加了多次!");return}this._pois.push(t),this._dirty();const n=t._needRedrawEvent;if(n){const s=n.on(()=>{this._needRedraw=!0});yi(t,"needRedrawEventHandler",s)}const i=t._needPickRedrawEvent;if(i){const s=i.on(()=>{this._needPickRedraw=!0});yi(t,"needPickRedrawEventHandler",s)}}removePoi(t){const n=this._pois.indexOf(t);if(n===-1){console.error("删除一个不存在的poi!");return}this._pois.splice(n,1),this._dirty();const i=t._needRedrawEvent;if(i){const o=$n(t,"needRedrawEventHandler");o?i.off(o):console.error("poi没有listenHandler!")}const s=t._needPickRedrawEvent;if(s){const o=$n(t,"needPickRedrawEventHandler");o?s.off(o):console.error("poi没有listenHandler!")}}_draw(){this._pois.sort(ng);const[t,n]=this._size;this._ctx.clearRect(0,0,t,n),this._pois.forEach(i=>i.draw(this._ctx))}pick(t,n,i,s){return this._needPickRedraw&&(this._needPickRedraw=!1,this._pickDraw()),this._getPickInfo(t,n,i,s)}_pickDraw(){this._pickColorManager.reset(),this._pois.sort(ng);const[t,n]=this._size;this._offscreenCtx.clearRect(0,0,t,n),this._pois.forEach(i=>{const s=o=>{const[a,u,l]=this._pickColorManager.createPickColor(i,o);return`rgb(${a}, ${u}, ${l})`};i.drawForPick(this._offscreenCtx,s)})}_getPickInfo(t,n,i,s){const o=this._offscreenCtx.getImageData(t,n,i,s),a=[],u=o.data.length/4;for(let l=0;l<u;++l){const c=o.data[l*4+0],d=o.data[l*4+1],f=o.data[l*4+2];if(o.data[l*4+3]===255){const v=this._pickColorManager.getPickInfoFromColor(c,d,f);if(v&&v.poi&&!a.includes(v)){let C=!0;{const[S,I]=this._size;this._offscreenCtx2.clearRect(0,0,S,I);const y=b=>"rgb(255, 255, 255)";v.poi.drawForPick(this._offscreenCtx2,y);const _=this._offscreenCtx2.getImageData(t,n,i,s),m=_.data[l*4+0],w=_.data[l*4+1],E=_.data[l*4+2];_.data[l*4+3],m===255&&w===255&&E===255||(C=!1)}C&&a.push(v)}}}return a}}class Vh extends j{constructor(){super(...arguments);h(this,"_closeEvent");h(this,"_show",!0);h(this,"_showChanged");h(this,"_opacity",1);h(this,"_opacityChanged");h(this,"_winPos",[0,0]);h(this,"_winPosChanged")}set winPos(t){const[n,i]=t,[s,o]=this._winPos;(n!==s||i!==o)&&(this._winPos[0]=n,this._winPos[1]=i,this._winPosChanged&&this._winPosChanged.emit(this._winPos))}get winPos(){return this._winPos}get winPosChanged(){return this._winPosChanged=this._winPosChanged||new T,this._winPosChanged}set opacity(t){this._opacity!==t&&(this._opacity=t,this._opacityChanged&&this._opacityChanged.emit(this._opacity))}get opacity(){return this._opacity}get opacityChanged(){return this._opacityChanged=this._opacityChanged||new T,this._opacityChanged}set show(t){this._show!==t&&(this._show=t,this._showChanged&&this._showChanged.emit(this._show))}get show(){return this._show}get showChanged(){return this._showChanged=this._showChanged||new T,this._showChanged}get closeEvent(){return this._closeEvent||(this._closeEvent=new T),this._closeEvent}}const jh=new WeakMap;function Bh(r){if(!jh.has(r)){const e=new Ml(()=>new r,t=>t.reset());jh.set(r,e)}return jh.get(r)}class zh extends Vh{constructor(){super();h(this,"_div");h(this,"_contentDiv");h(this,"_originOffsetX",0);h(this,"_originOffsetY",0);h(this,"_originRatioX",.5);h(this,"_originRatioY",1);h(this,"_divChanged",new T);const t=document.createElement("div");t.style.cssText="width: 0px; height: 0px; position: absolute; opacity: 1.0; visibility: visible;";const n=document.createElement("div");n.style.cssText=`position: absolute; left: ${-this._originOffsetX}px; top: ${-this._originOffsetY}px; transform: translateX(-${100*this._originRatioX}%) translateY(-${100*this._originRatioY}%); margin: 0; padding: 0; pointer-events: none;`;const i=document.createElement("div");this._contentDiv=i,n.appendChild(i),t.appendChild(n),this._div=t,this.dispose(this._divChanged.disposableOn(()=>{n.style.left=`${-this._originOffsetX}px`,n.style.top=`${-this._originOffsetY}px`,n.style.transform=`translateX(-${100*this._originRatioX}%) translateY(-${100*this._originRatioY}%)`})),this.dispose(this.winPosChanged.disposableOn(([s,o])=>{this._div.style.left=`${s}px`,this._div.style.top=`${o}px`})),this.dispose(this.opacityChanged.disposableOn(s=>{this._div.style.opacity=`${s}`})),this.dispose(this.showChanged.disposableOn(s=>{this._div.style.visibility=s?"visible":"hidden"}))}get contentDiv(){return this._contentDiv}reset(){}get originOffsetX(){return this._originOffsetX}set originOffsetX(t){this._originOffsetX!==t&&(this._originOffsetX=t,this._divChanged.emit())}get originOffsetY(){return this._originOffsetY}set originOffsetY(t){this._originOffsetY!==t&&(this._originOffsetY=t,this._divChanged.emit())}get originRatioX(){return this._originRatioX}set originRatioX(t){this._originRatioX!==t&&(this._originRatioX=t,this._divChanged.emit())}get originRatioY(){return this._originRatioY}set originRatioY(t){this._originRatioY!==t&&(this._originRatioY=t,this._divChanged.emit())}get element(){return this._div}}class rg extends j{constructor(t,n){super();h(this,"_floatDiv");h(this,"_show",!1);h(this,"_showChanged");this._customDivClass=t,this._divContainer=n,this.dispose(()=>{this.show=!1})}_updateDivPoi(){if(this._show){const{floatDiv:n}=this;n.element.parentElement||this._divContainer.appendChild(n.element)}else{const{_floatDiv:n}=this;n&&n.element.parentElement&&this._divContainer.removeChild(n.element)}}set show(t){this._show!==t&&(this._show=t,this._updateDivPoi(),this._showChanged&&this._showChanged.emit(t))}get show(){return this._show}get floatDiv(){if(!this._floatDiv){const t=Bh(this._customDivClass).create();this.dispose(()=>{Bh(this._customDivClass).destroy(t)}),this._floatDiv=t}return this._floatDiv}get showChanged(){return this._showChanged||(this._showChanged=new T),this._showChanged}}const p0=["top","bottom","left","right"];function g0(r){return Object.entries(r).map(([e,t])=>p0.includes(e)?`${e}: ${t}px; `:"").join("")}function ig(r,e,t){const n=document.createElement("div");n.style.cssText=`position: absolute; ${g0(t)} background-color: ${r}; border-radius: ${e}px;`;const i='<svg viewBox="0 0 1024 1024" style="display: block;" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2420" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"><defs><style type="text/css"></style></defs><path d="M512 128C300.8 128 128 300.8 128 512s172.8 384 384 384 384-172.8 384-384S723.2 128 512 128zM512 832c-179.2 0-320-140.8-320-320s140.8-320 320-320 320 140.8 320 320S691.2 832 512 832z" p-id="2421" fill="#ffffff"></path><path d="M672 352c-12.8-12.8-32-12.8-44.8 0L512 467.2 396.8 352C384 339.2 364.8 339.2 352 352S339.2 384 352 396.8L467.2 512 352 627.2c-12.8 12.8-12.8 32 0 44.8s32 12.8 44.8 0L512 556.8l115.2 115.2c12.8 12.8 32 12.8 44.8 0s12.8-32 0-44.8L556.8 512l115.2-115.2C684.8 384 684.8 364.8 672 352z" p-id="2422" fill="#ffffff"></path></svg>';return n.innerHTML=i,n}function sg(r,e,t="rgba(0,0,0,0.7)"){const n=document.createElement("div");n.style.cssText=`margin: 0 auto; width: ${r}px; height: ${e}px; position: relative; pointer-events: none;`;const i=document.createElement("div");return i.style.cssText=`position: absolute; left: 0px; top: 0px; width: 0; height: 0; border-left: ${r*.5}px solid transparent; border-right: ${r*.5}px solid transparent; border-top: ${e}px solid ${t};`,n.appendChild(i),[n,i]}class og extends zh{constructor(){super();h(this,"_borderDiv");h(this,"_closeDiv");h(this,"_innerContentDiv");h(this,"_colorStr","rgba(0, 0, 0, 0.7)");h(this,"_divColorChanged",new T);h(this,"_borderRadius",10);const t=document.createElement("div");t.style.cssText=`position: relative; background-color: ${this._colorStr}; border-radius: ${this._borderRadius}px; padding: 5px; pointer-events: all;`,this._borderDiv=t;const n=ig(this._colorStr,10,{top:3,right:3}),[i,s]=sg(2*this._borderRadius,2*this._borderRadius,this._colorStr),o=document.createElement("div");this._innerContentDiv=o,t.appendChild(o),t.appendChild(n),this.contentDiv.appendChild(t),this.contentDiv.appendChild(i),n.style.opacity="0.1",n.onmouseenter=()=>{n.style.opacity="1.0"},n.onmouseleave=()=>{n.style.opacity="0.1"},n.onclick=()=>{this._closeEvent&&this._closeEvent.emit()},this._closeDiv=n,this.dispose(this._divColorChanged.disposableOn(()=>{s.style.borderTopColor=this._colorStr,t.style.backgroundColor=this._colorStr,i.style.width=`${this._borderRadius*2}px`,i.style.height=`${this._borderRadius*2}px`,s.style.borderLeft=`${this._borderRadius}px`,s.style.borderRight=`${this._borderRadius}px`,s.style.borderTop=`${this._borderRadius*2}px`}));const a=u=>{u.key==="Escape"&&this._closeEvent&&this._closeEvent.emit()};document.body.addEventListener("keydown",a,!0),this.dispose(()=>{document.removeEventListener("keydown",a,!0)})}get borderDiv(){return this._borderDiv}get innerContentDiv(){return this._innerContentDiv}reset(){this.show=!1,this.opacity=0,this._closeDiv.style.opacity="0.1",super.reset()}get colorStr(){return this._colorStr}set colorStr(t){this._colorStr!==t&&(this._colorStr=t,this._divColorChanged.emit())}get borderRadius(){return this._borderRadius}set borderRadius(t){this._borderRadius!==t&&(this._borderRadius=t,this._divColorChanged.emit())}}class m0 extends og{constructor(){super();h(this,"_iframe");h(this,"_iframeMessageEvent");const t=document.createElement("iframe");t.style.cssText="width: 100%; height: 100%; border-width: 0px; border-radius: 5px; display: block;",t.src="http://www.weather.com.cn/live/index.shtml",this._iframe=t,this.innerContentDiv.appendChild(t);const n=i=>{i.source===this._iframe.contentWindow&&(this._iframeMessageEvent?this._iframeMessageEvent.emit(i):console.warn(`iframe消息接收到未处理!data: ${i.data}`))};globalThis.addEventListener("message",n),this.dispose(()=>{globalThis.removeEventListener("message",n)})}reset(){super.reset(),this.src=""}set src(t){this._iframe.src!==t&&(this._iframe.src=t)}get src(){return this._iframe.src}get iframe(){return this._iframe}get iframeMessageEvent(){return this._iframeMessageEvent=this._iframeMessageEvent||new T,this._iframeMessageEvent}}class v0 extends Vh{constructor(){super();h(this,"_div");h(this,"_contentContainer");h(this,"_text","");const t=document.createElement("div");this._div=t,t.style.cssText="width: 0px; height: 0px; position: absolute; opacity: 1.0; visibility: visible; transition: opacity 0.5s;";const n=document.createElement("div");n.style.cssText="position: absolute; left: 0px; bottom: 0px; transform: translateX(-50%); margin: 0; padding: 0; pointer-events: none;";const i=document.createElement("div");i.style.cssText="position: relative; background-color: rgba(0, 0, 0, 0.7); border-radius: 5px; padding: 3px; pointer-events: all; color: white; white-space: nowrap;",i.innerText=this._text,this._div.appendChild(n),n.appendChild(i),this._contentContainer=i,this._div=t,this.dispose(this.winPosChanged.disposableOn(([s,o])=>{this._div.style.left=`${s}px`,this._div.style.top=`${o-50}px`})),this.dispose(this.opacityChanged.disposableOn(s=>{this._div.style.opacity=`${s}`})),this.dispose(this.showChanged.disposableOn(s=>{this._div.style.visibility=s?"visible":"hidden"}))}get element(){return this._div}reset(){this.opacity=1,this.show=!0}set text(t){this._text!==t&&(this._text=t,this._contentContainer.innerText=t)}get text(){return this._text}}class y0 extends zh{constructor(){super(),this.contentDiv.style.backgroundColor="rgba(0, 0, 0, 0.8)",this.contentDiv.style.borderRadius="3px",this.contentDiv.style.color="rgb(255, 255, 255)",this.contentDiv.style.padding="1px 5px 1px 5px",this.contentDiv.style.fontSize="12px",this.contentDiv.style.whiteSpace="nowrap",this.contentDiv.innerText="未定义光标信息!",this.originRatioX=0,this.originRatioY=0,this.originOffsetX=-16}}class _0 extends j{constructor(t,n){super();h(this,"_cursorDiv");h(this,"_pointerOut",this.disposeVar(V(!1)));h(this,"_show",this.disposeVar(V(!0)));this._cursorDiv=new rg(n,t),this.dispose(()=>this._cursorDiv.destroy());const i=o=>{const[a,u]=cn(o);this._cursorDiv.floatDiv.winPos=[a,u]};t.addEventListener("pointermove",i),this.dispose(()=>t.removeEventListener("pointermove",i));const s=()=>{this._cursorDiv.show=this.show&&this._pointerOut.value};s(),this.dispose(this.showChanged.disposableOn(s)),this.dispose(this._pointerOut.changed.disposableOn(s))}set show(t){this._show.value=t}get show(){return this._show.value}get showChanged(){return this._show.changed}reset(){this._pointerOut.value=!1}get cursorDiv(){return this._cursorDiv}set text(t){this._cursorDiv.floatDiv.contentDiv.innerText=t}get text(){return this._cursorDiv.floatDiv.contentDiv.innerText}}function ku(r,e,t){if(!(r.tree===e.tree&&r!==e&&!r.isAncestorOf(e))||r.tree!==e.tree||!r.parent)return!1;if(!r.parent.children)throw console.error("当前节点的父节点没有子节点?这是不可能的!"),new Error("当前节点的父节点没有子节点?这是不可能的!");return!(e===r||r.isAncestorOf(e)||t!=="inner"&&!e.parent||t==="inner"&&!e.children)}function ql(r,e,t){if(!r.tree||!e.tree||r.tree!==e.tree)return;if(!r.parent){console.warn("当前节点没有父节点,那么该节点无法被移动!");return}if(!r.parent.children)throw console.error("当前节点的父节点没有子节点?这是不可能的!"),new Error("当前节点的父节点没有子节点?这是不可能的!");if(e===r){console.warn("自身不能拖放到自身!");return}if(r.isAncestorOf(e)){console.warn("当前节点不能拖放到它自身的后代节点之上!");return}if(t!=="inner"&&!e.parent){console.warn("目标节点没有父节点,无法拖放!");return}if(t==="inner"&&!e.children){console.warn("无法移动到目标节点的子节点中,因为目标节点不是组节点!");return}r.tree._startTransaction();const n=r.parent.children.indexOf(r);if(r.parent.children.splice(n,1),t!=="inner"){const{parent:i}=e;if(!i||!i.children)throw new Error("!parent");const s=i.children.indexOf(e);t==="before"?i.children.splice(s,0,r):t==="after"&&i.children.splice(s+1,0,r)}else e.children.push(r);r.tree._stopTransaction()}function ag(r,e,t){return yh(r,n=>ku(n,e,t))}function ug(r,e,t){for(let n of r)ku(n,e,t)?ql(n,e,t):console.warn(`treeItem(id: ${n.id}) cannot move...`)}const w0={checked:1,unchecked:2,indeterminate:3},E0=["checked","unchecked","indeterminate"];class lg extends j{constructor(t){super();h(this,"_collapsed",this.disposeVar(V(!1)));h(this,"_checkedStatus",this.disposeVar(V("unchecked")));h(this,"_selected",this.disposeVar(V(!1)));h(this,"_moveToPositionMode",this.disposeVar(V("none")));h(this,"_updateCheckedStatusFromChildrenEvent",this.disposeVar(new T));this._treeItem=t;const n=()=>this._treeItem.tree&&this._treeItem.tree.itemsChanged.emit([this._treeItem]);this.dispose(this._collapsed.changed.disposableOn(n)),this.dispose(this._checkedStatus.changed.disposableOn(n)),this.dispose(this._selected.changed.disposableOn(n)),this.dispose(this._moveToPositionMode.changed.disposableOn(n)),this.dispose(this._checkedStatus.changed.disposableOn(()=>this._treeItem.parent&&this._treeItem.parent.uiTreeObject.updateCheckedStatusFromChildren())),this.dispose(this._treeItem.childrenChangedEvent.disposableOn(()=>{this.updateCheckedStatusFromChildren()}));const i=this.disposeVar(Ce(this._updateCheckedStatusFromChildrenEvent));this.dispose(i.disposableOn(()=>{if(!this._treeItem.children)return;let s=0;vh(this._treeItem.children,o=>(s|=w0[o.uiTreeObject.checkedStatus],s===3)),s>0&&(this._checkedStatus.value=E0[s-1])})),this.dispose(this._treeItem.childrenResetedEvent.disposableOn(s=>{!s&&this.checkedStatus==="indeterminate"&&(this._checkedStatus.value="unchecked")}));{const s=(o,a,u=!0)=>{if(a)o.selectedItems.push(this._treeItem);else{const l=o.selectedItems.indexOf(this._treeItem);l===-1?u&&console.error("selectedItems index -1"):o.selectedItems.splice(l,1)}};this.dispose(this._selected.changed.disposableOn(o=>{const{tree:a}=this._treeItem;a&&s(a,o)})),this.dispose(()=>this.selected=!1)}}get treeItem(){return this._treeItem}get collapsed(){return this._collapsed.value}set collapsed(t){this._collapsed.value=t}get collapsedChanged(){return this._collapsed.changed}get checkedStatus(){return this._checkedStatus.value}check(t){const n=t?"checked":"unchecked";if(this._checkedStatus.value!==n&&(this._checkedStatus.value=n,this._treeItem.children))for(let i of this._treeItem.children)i.uiTreeObject.check(t)}updateCheckedStatusFromChildren(){this._updateCheckedStatusFromChildrenEvent.emit()}get checkedStatusChanged(){return this._checkedStatus.changed}get selected(){return this._selected.value}set selected(t){this._selected.value=t}get selectedChanged(){return this._selected.changed}get moveToPositionMode(){return this._moveToPositionMode.value}set moveToPositionMode(t){this._moveToPositionMode.value=t}get moveToPositionModeChanged(){return this._moveToPositionMode.changed}}const ui=class ui extends j{constructor(t,n=!1,i){super();h(this,"_children");h(this,"_childrenResetedEvent");h(this,"_childrenToChangeEvent");h(this,"_childrenChangedEvent");h(this,"_parent",this.disposeVar(V(void 0)));h(this,"_level",this.disposeVar(V(0)));h(this,"_id");h(this,"_uiTreeObject",this.disposeVar(new lg(this)));this._tree=t,this._hasChildren=n,this._id=i??ra(),this._id!=="_ROOT"&&ui.wm.has(this._id)&&console.warn(`创建了id(${this._id})相同的树节点,会导致之前的树节点无法索引!`),ui.wm.set(this._id,this),this.dispose(()=>{if(this._id!=="_ROOT"&&!ui.wm.has(this._id)){console.warn(`树节点(${this._id})不在wm树上!`);return}ui.wm.delete(this._id)}),this.dispose(this._parent.changed.disposableOn(()=>{this._updateLevel()})),this.dispose(this._level.changed.disposableOn(()=>{if(this.children)for(let s of this.children)s._updateLevel()})),ui.allTreeItems.set(this._id,this),this.dispose(()=>{ui.allTreeItems.delete(this._id)})}static getFromId(t){return ui.wm.get(t)}get uiTreeObject(){return this._uiTreeObject}get id(){return this._id}_updateLevel(){this.parent&&(this._level.value=this.parent.level+1)}get parent(){return this._parent.value}get parentChanged(){return this._parent.changed}get children(){if(this._hasChildren){if(!this._children){const t=this.disposeVar(new Nu);this._children=t,this.dispose(t.toChangeEvent.disposableOn((s,o)=>{for(let a of s){const{start:u,deleteCount:l,items:c}=a;for(let d=u;d<u+l;++d)o.get(d)._parent.value=void 0;for(let d of c){if(d.parent)throw console.error("请检查新增的treeItem是否正在使用!"),new Error("item.parent should not exist!");d._parent.value=this}}}));const n=new Set,i=new Set;this.dispose(t.toChangeEvent.disposableOn((s,o)=>{var a;if(this.tree){n.clear(),i.clear();for(let u of s){const{start:l,deleteCount:c,items:d}=u;for(let f=l;f<l+c;++f)n.add(o.get(f));for(let f of d)i.add(f)}for(let u of n)i.has(u)&&(n.delete(u),i.delete(u));(a=this.tree)==null||a.itemChildrenToChange.emit(this,s,n,i)}})),this.dispose(t.changedEvent.disposableOn(()=>{var s;(s=this.tree)==null||s.itemChildrenChanged.emit(this)})),this.dispose(t.toChangeEvent.disposableOn((...s)=>this._childrenToChangeEvent&&this._childrenToChangeEvent.emit(...s))),this.dispose(t.changedEvent.disposableOn((...s)=>this._childrenChangedEvent&&this._childrenChangedEvent.emit(...s)))}return this._children}else return}get childrenResetedEvent(){return this._childrenResetedEvent||(this._childrenResetedEvent=new T),this._childrenResetedEvent}get childrenToChangeEvent(){return this._childrenToChangeEvent||(this._childrenToChangeEvent=new T),this._childrenToChangeEvent}get childrenChangedEvent(){return this._childrenChangedEvent||(this._childrenChangedEvent=new T),this._childrenChangedEvent}resetChildren(t=!1){this._children&&(this._children.length=0),this._hasChildren=t,this._childrenResetedEvent&&this._childrenResetedEvent.emit(t)}*getDescendants(t){const n=this,i=[],s=[];for(n.children&&n.children.length>0&&(!t||t(n))&&(i.push(0),s.push(n.children));i.length>0;){const o=i[i.length-1],a=s[s.length-1],u=a.get(o);yield u,o<a.length-1?++i[i.length-1]:(s.pop(),i.pop()),u.children&&u.children.length>0&&(!t||t(u))&&(i.push(0),s.push(u.children))}}*getAncestors(t){let n=this.parent;for(;n&&(yield n,!(t&&!t(n)));)n=n.parent}isDescendantOf(t){for(let n of this.getAncestors())if(n===t)return!0;return!1}isAncestorOf(t){return t.isDescendantOf(this)}get level(){return this._level.value}get levelChanged(){return this._level.changed}get tree(){return this._tree}canMoveTo(t,n){return ku(this,t,n)}moveTo(t,n){ql(this,t,n)}detachFromParent(){if(!this.parent||!this.parent.children)return;const t=this.parent.children.indexOf(this);this.parent.children.splice(t,1)}insertNewTreeItem(t,n){if(n&&n.tree!==this.tree)return console.warn("newTreeItem.tree !== this.tree"),!1;if(this.children&&t.startsWith("Inner"))return n&&this.children.push(n),!0;if(t==="Inner")return!1;const i=this.parent;if(!i||!i.children)return!1;const s=i.children.indexOf(this);return t.endsWith("Before")?n&&i.children.splice(s,0,n):t.endsWith("After")&&n&&i.children.splice(s+1,0,n),!0}};h(ui,"wm",new Map),h(ui,"allTreeItems",new Map);let Vu=ui;class cg extends j{constructor(t){super();h(this,"_redrawEvent",this.disposeVar(new T));h(this,"_containerScrollTop",this.disposeVar(V(0)));h(this,"_containerClientHeight",this.disposeVar(V(-1)));h(this,"_container",this.disposeVar(V(void 0)));h(this,"_redrawInfo",{topFreeSpaceHeight:0,topUnvisibleItemNum:0,middleTreeItems:[],bottomFreeSpaceHeight:0,bottomUnvisibleItemNum:0});this._tree=t;const n=this._containerClientHeight,i=this._containerScrollTop,s=this._tree._forceRedrawEvent,o=this.disposeVar(Ce(this._tree.itemDivHeightChanged,this._tree.itemChildrenChanged,this._tree.itemsChanged,n.changed,i.changed,s)),{redrawInfo:a}=this,u=c=>{const d=c.uiTreeObject;return!!c.children&&(!d||!d.collapsed)};this.dispose(o.disposableOn(()=>{if(a.topFreeSpaceHeight=0,a.topUnvisibleItemNum=0,a.middleTreeItems.length=0,a.bottomFreeSpaceHeight=0,a.bottomUnvisibleItemNum=0,this._containerClientHeight.value>=0){const c=_h(this._tree.getDescendants(u)),d=this._tree.itemDivHeight,f=d*c,p=$i([Is([$i([f-n.value,0]),i.value]),0]),v=p/d|0,C=Math.ceil((p-v*d+n.value)/d)|0;v>0&&(a.topUnvisibleItemNum=v,a.topFreeSpaceHeight=v*this._tree.itemDivHeight);const S=v+C;let I=0;for(let _ of this._tree.getDescendants(u)){if(I>=S)break;I>=v&&a.middleTreeItems.push(_),++I}const y=c-v-C;y>0&&(a.bottomUnvisibleItemNum=y,a.bottomFreeSpaceHeight=y*this._tree.itemDivHeight)}else for(let c of this._tree.getDescendants(u))a.middleTreeItems.push(c);this._redrawEvent.emit(a)}));let l;this.dispose(()=>l&&(l.destroy(),l=void 0)),this.dispose(this.containerChanged.disposableOn(c=>{l&&(l.destroy(),l=void 0),c&&(l=Mu(),l.start(()=>{const{scrollTop:d,clientHeight:f}=c;typeof d>"u"||typeof f>"u"?ea("createUiTreeWithContainer error: conainter has no scrollTop or clientHeight property!"):(this.containerScrollTop=d,this.containerClientHeight=f)}))}))}get container(){return this._container.value}set container(t){this._container.value=t}get containerChanged(){return this._container.changed}get redrawInfo(){return this._redrawInfo}getTreeItemPos(t){const n=o=>{const a=o.uiTreeObject;return!!o.children&&(!a||!a.collapsed)};let i=0,s=!1;for(let o of this._tree.getDescendants(n)){if(o===t){s=!0;break}++i}if(s)return[i,i*this._tree.itemDivHeight]}collapseAll(){console.log("collapseAll");for(let t of this.tree.root.getDescendants()){const n=t.uiTreeObject;n.collapsed=!0}}expandAll(){console.log("expandAll");for(let t of this.tree.root.getDescendants()){const n=t.uiTreeObject;n.collapsed=!1}}get tree(){return this._tree}get redrawEvent(){return this._redrawEvent}set containerScrollTop(t){this._containerScrollTop.value=t}get containerScrollTop(){return this._containerScrollTop.value}get containerScrollTopChanged(){return this._containerScrollTop.changed}set containerClientHeight(t){this._containerClientHeight.value=t}get containerClientHeight(){return this._containerClientHeight.value}get containerClientHeightChanged(){return this._containerClientHeight.changed}*getAllItems(t){for(let n of this._tree.getDescendants())(!t||t(n))&&(yield n)}getAllSelectedItems(){return this.getAllItems(t=>t.uiTreeObject.selected)}getAllCheckedItems(){return this.getAllItems(t=>t.uiTreeObject.checkedStatus==="checked")}getAllCheckedLeafItems(){return this.getAllItems(t=>!t.children&&t.uiTreeObject.checkedStatus==="checked")}selectAllItems(t){for(let n of this.getAllItems())(!t||!t.includes(n))&&(n.uiTreeObject.selected=!0)}clearAllSelectedItems(t){for(let n of this.getAllSelectedItems())(!t||!t.includes(n))&&(n.uiTreeObject.selected=!1)}checkAllItems(t){for(let n of this.getAllItems())(!t||!t.includes(n))&&n.uiTreeObject.check(!0)}clearAllCheckedItems(t){for(let n of this.getAllCheckedItems())(!t||!t.includes(n))&&n.uiTreeObject.check(!1)}}let ju=(li=class extends j{constructor(t){super();h(this,"_root",this.disposeVar(new Vu(this,!0,"_ROOT")));h(this,"_itemChildrenChanged",this.disposeVar(new T));h(this,"_itemChildrenToChange",this.disposeVar(new T));h(this,"_itemsAdded",this.disposeVar(new T));h(this,"_itemsDeleted",this.disposeVar(new T));h(this,"_itemsChanged",this.disposeVar(new T));h(this,"_transactionStack",0);h(this,"_addedItems",new Set);h(this,"_deletedItems",new Set);h(this,"_selectedItems",this.disposeVar(new Nu));h(this,"_itemDivHeight",this.disposeVar(V(li.defaultItemDivHeight)));h(this,"_forceRedrawEvent",this.disposeVar(new T));h(this,"_uiTree",this.disposeVar(new cg(this)));this._root._tree.value=this,this.dispose(this._itemChildrenToChange.disposableOn((n,i)=>{if(!n.children){console.error("!item.children");return}for(let s of i){const{start:o,deleteCount:a,items:u}=s;for(let l=o;l<o+a;++l){const c=n.children.get(l);this._deletedItems.has(c)?console.error(`this._deletedItems.has(currentItem(${c.id}))`):this._deletedItems.add(c)}for(let l of u)this._deletedItems.has(l)?this._deletedItems.delete(l):this._addedItems.add(l)}this._execTransaction()})),t!==void 0&&(this.itemDivHeight=t)}get selectedItems(){return this._selectedItems}get lastSelectedItem(){return this._selectedItems.length>0?this._selectedItems.get(this._selectedItems.length-1):void 0}get itemDivHeight(){return this._itemDivHeight.value}set itemDivHeight(t){this._itemDivHeight.value=t}get itemDivHeightChanged(){return this._itemDivHeight.changed}forceRedraw(){this._forceRedrawEvent.emit()}get uiTree(){return this._uiTree}get root(){return this._root}get children(){return this._root.children}getDescendants(t){return this._root.getDescendants(t)}getTreeItemFromId(t){let n;for(let i of this.getDescendants())if(i.id===t){n=i;break}return n}_startTransaction(){this._transactionStack===0&&(this._deletedItems.size>0&&(console.warn("this._deletedItems.size > 0"),this._deletedItems.clear()),this._addedItems.size>0&&(console.warn("this._addedItems.size > 0"),this._addedItems.clear())),++this._transactionStack}_stopTransaction(){--this._transactionStack,this._execTransaction()}_execTransaction(){this._transactionStack===0&&(this._deletedItems.size>0&&(this._itemsDeleted.emit([...this._deletedItems]),this._deletedItems.clear()),this._addedItems.size>0&&(this._itemsAdded.emit([...this._addedItems]),this._addedItems.clear()))}get itemChildrenChanged(){return this._itemChildrenChanged}get itemChildrenToChange(){return this._itemChildrenToChange}get itemsChanged(){return this._itemsChanged}get itemsAdded(){return this._itemsAdded}get itemsDeleted(){return this._itemsDeleted}},h(li,"defaultItemDivHeight",24),h(li,"canMoveToTreeItem",ku),h(li,"moveToTreeItem",ql),h(li,"canMoveToTreeItems",ag),h(li,"moveToTreeItems",ug),li);class Se extends j{constructor(t,n,i=!0,s){super();h(this,"_obj",this.disposeVar(V(void 0)));this._resetEvent=t,this._createFunc=n;const o=this._resetEvent,a=this._createFunc,u=()=>{this._obj.value&&(this._obj.value.destroy(),this._obj.value=void 0)};this.dispose(u);const l=(...c)=>{u(),this._obj.value=a(...c)};i&&(s?this._obj.value=a(...s):this._obj.value=a()),this.dispose(o.disposableOn(l))}get obj(){return this._obj.value}get objChanged(){return this._obj.changed}}class C0 extends j{constructor(t,n=!0,i){super();h(this,"_event",this.disposeVar(new T));h(this,"_objResettingWithEvent");this._createFunc=t,this._execOnInit=n,this._initParams=i,this._objResettingWithEvent=this.disposeVar(new Se(this._event,this._createFunc,this._execOnInit,this._initParams))}get obj(){return this._objResettingWithEvent.obj}get objChanged(){return this._objResettingWithEvent.objChanged}reset(...t){this._event.emit(...t)}}const sh=class sh extends j{constructor(){super();h(this,"_set",new Set);h(this,"_toChangeEvent",this.dv(new T));h(this,"_changedEvent",this.dv(new T));h(this,"main");this.dispose(()=>{this._set.size!==0&&(sh.warnOnDestroying&&console.warn("this._set.size > 0"),this.clear())})}get toChange(){return this._toChangeEvent}get changed(){return this._changedEvent}add(...t){if(t.length==2&&typeof t[1]=="boolean")t[1]&&(this.main=t[0]);else for(let n of t)this._toChangeEvent.emit([],[n]),this._set.add(n),this._changedEvent.emit([],[n])}delete(...t){for(let n of t)this.main&&this.main==n&&(this.main=void 0),this._toChangeEvent.emit([n],[]),this._set.delete(n),this._changedEvent.emit([n],[])}disposableAdd(...t){return t.length==2&&typeof t[1]=="boolean"?(t[1]&&(this.main=t[0]),this.add(t[0]),()=>this.delete(t[0])):(this.add(...t),()=>this.delete(...t))}get size(){return this._set.size}clear(){const t=[...this._set];this._toChangeEvent.emit([],t),this._set.clear(),this._changedEvent.emit([],t),this.main=void 0}values(){return this._set.values()}};h(sh,"warnOnDestroying",!0);let Xl=sh;async function hg(r){const e=[],t=[],n=r.entries();for await(const[i,s]of n){const o=s;o.kind==="file"?e.push(i):o.kind==="directory"&&t.push(i)}return{files:e,dirs:t}}async function Uh(r){return await(await r.getFile()).text()}async function dg(r){const e=await Uh(r);try{return JSON.parse(e)}catch{return}}async function fg(r){return await(await r.getFile()).arrayBuffer()}class pg extends j{constructor(e){super(),this._rootDirHandle=e}get rootDirHandle(){return this._rootDirHandle}async getSubFilesAndDirs(){return await hg(this._rootDirHandle)}async getDir(e){let t=this._rootDirHandle;for(const n of e)if(t=await(t==null?void 0:t.getDirectoryHandle(n)),!t){console.log(`getDirectoryHandle ${n} failed`);return}return t}async getFile(e,t){const n=await this.getDir(e);if(n)try{return await n.getFileHandle(t)}catch(i){console.error(`未能获取当前文件 ${e.join("/")}/${t} error: ${i}`,i);return}}}class gg extends j{constructor(t){super();h(this,"_startRootDirId",0);h(this,"_dirMap",new Map);this._prefix=t}get prefix(){return this._prefix}async getRootDirId(t){let n;try{console.log("window.showDirectoryPicker begin"),n=await globalThis.showDirectoryPicker({id:t,mode:"read"}),console.log("window.showDirectoryPicker end",n)}catch(i){console.error(`LocalFileServer getRootDirId failed: ${i}`,i);return}if(n){const i=++this._startRootDirId,s=`${this._prefix}${i}`;return this._dirMap.set(s,new pg(n)),s}}getRootDir(t){return this._dirMap.get(t)}async getFile(t){const n=t.split("/");if(n.length<2){console.warn(`LocalFileServer getFile failed: ${t}`);return}const i=n[0],s=this._dirMap.get(i);if(!s){console.warn(`LocalFileServer getFile failed: ${t}`);return}const o=n.slice(1,n.length-1),a=n[n.length-1],u=await s.getFile(o,a);if(!u){console.warn(`LocalFileServer getFile failed: ${t}`);return}return u}async getText(t){const n=await this.getFile(t);if(n)return await Uh(n)}async getArrayBuffer(t){const n=await this.getFile(t);if(n)return await fg(n)}async getJson(t){const n=await this.getFile(t);if(n)return await dg(n)}async getLocalFilePath(t,n,i){const s=await this.getRootDirId(n);if(!s){console.warn("getRootDirId error!");return}const o=this.getRootDir(s);if(!o){console.warn("getRootDir error!");return}const a=await o.getSubFilesAndDirs();if(!a.files){console.warn("getSubFilesAndDirs error! 找不到符合要求的文件!");return}const u=t?a.files.filter(l=>t.some(c=>l.endsWith(c))):a.files;if(u.length===0){console.warn("找不到符合要求的文件!");return}return`https://${s}/${u[0]}`}}const mg=new gg("xe2_local");async function S0(r,e,t){return await mg.getLocalFilePath(r,e,t)}class vg extends j{constructor(t,n){super();h(this,"_processing");this._complexImage=t,this._imageUri=n,this._processing=this.disposeVar(Kn(async i=>{const s=this._complexImage,o=await i.promise(Lp(this._imageUri,this._complexImage.crossOrigin));o&&o instanceof HTMLImageElement&&(s.size=[o.naturalWidth,o.naturalHeight],s.pixelFormat="RGBA",s.copyTexture({source:o}))})),this._processing.start()}get processing(){return this._processing}}const yg=["DEPTH_COMPONENT","DEPTH_STENCIL","ALPHA","RED","RG","RGB","RGBA","LUMINANCE","LUMINANCE_ALPHA","RGB_DXT1","RGBA_DXT1","RGBA_DXT3","RGBA_DXT5","RGB_PVRTC_4BPPV1","RGB_PVRTC_2BPPV1","RGBA_PVRTC_4BPPV1","RGBA_PVRTC_2BPPV1","RGBA_ASTC","RGB_ETC1","RGB8_ETC2","RGBA8_ETC2_EAC","RGBA_BC7"],_g=["img","gif","video","flv","hls"];let b0=class extends j{constructor(t,n){super();h(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",i.style.width="0px",i.style.height="0px";{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 wg extends j{constructor(t,n){super();h(this,"_videoDom");h(this,"_update");this._complexImage=t,this._imageUri=n,this._videoDom=this.disposeVar(new b0(this._complexImage,this._imageUri)),this._update=this.disposeVar(la(()=>this.update())),this._update.start()}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 Gh(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function I0(r){if(Object.prototype.hasOwnProperty.call(r,"__esModule"))return r;var e=r.default;if(typeof e=="function"){var t=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(r).forEach(function(n){var i=Object.getOwnPropertyDescriptor(r,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return r[n]}})}),t}var Wh={},Ki={},Eg;function P0(){if(Eg)return Ki;Eg=1,Object.defineProperty(Ki,"__esModule",{value:!0}),Ki.loop=Ki.conditional=Ki.parse=void 0;var r=function n(i,s){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:o;if(Array.isArray(s))s.forEach(function(l){return n(i,l,o,a)});else if(typeof s=="function")s(i,o,a,n);else{var u=Object.keys(s)[0];Array.isArray(s[u])?(a[u]={},n(i,s[u],o,a[u])):a[u]=s[u](i,o,a,n)}return o};Ki.parse=r;var e=function(i,s){return function(o,a,u,l){s(o,a,u)&&l(o,i,a,u)}};Ki.conditional=e;var t=function(i,s){return function(o,a,u,l){for(var c=[],d=o.pos;s(o,a,u);){var f={};if(l(o,i,a,f),o.pos===d)break;d=o.pos,c.push(f)}return c}};return Ki.loop=t,Ki}var be={},Cg;function Sg(){if(Cg)return be;Cg=1,Object.defineProperty(be,"__esModule",{value:!0}),be.readBits=be.readArray=be.readUnsigned=be.readString=be.peekBytes=be.readBytes=be.peekByte=be.readByte=be.buildStream=void 0;var r=function(d){return{data:d,pos:0}};be.buildStream=r;var e=function(){return function(d){return d.data[d.pos++]}};be.readByte=e;var t=function(){var d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function(f){return f.data[f.pos+d]}};be.peekByte=t;var n=function(d){return function(f){return f.data.subarray(f.pos,f.pos+=d)}};be.readBytes=n;var i=function(d){return function(f){return f.data.subarray(f.pos,f.pos+d)}};be.peekBytes=i;var s=function(d){return function(f){return Array.from(n(d)(f)).map(function(p){return String.fromCharCode(p)}).join("")}};be.readString=s;var o=function(d){return function(f){var p=n(2)(f);return d?(p[1]<<8)+p[0]:(p[0]<<8)+p[1]}};be.readUnsigned=o;var a=function(d,f){return function(p,v,C){for(var S=typeof f=="function"?f(p,v,C):f,I=n(d),y=new Array(S),_=0;_<S;_++)y[_]=I(p);return y}};be.readArray=a;var u=function(d,f,p){for(var v=0,C=0;C<p;C++)v+=d[f+C]&&Math.pow(2,p-C-1);return v},l=function(d){return function(f){for(var p=e()(f),v=new Array(8),C=0;C<8;C++)v[7-C]=!!(p&1<<C);return Object.keys(d).reduce(function(S,I){var y=d[I];return y.length?S[I]=u(v,y.index,y.length):S[I]=v[y.index],S},{})}};return be.readBits=l,be}var bg;function x0(){return bg||(bg=1,function(r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var e=P0(),t=Sg(),n={blocks:function(f){for(var p=0,v=[],C=f.data.length,S=0,I=(0,t.readByte)()(f);I!==p&&I;I=(0,t.readByte)()(f)){if(f.pos+I>=C){var y=C-f.pos;v.push((0,t.readBytes)(y)(f)),S+=y;break}v.push((0,t.readBytes)(I)(f)),S+=I}for(var _=new Uint8Array(S),m=0,w=0;w<v.length;w++)_.set(v[w],m),m+=v[w].length;return _}},i=(0,e.conditional)({gce:[{codes:(0,t.readBytes)(2)},{byteSize:(0,t.readByte)()},{extras:(0,t.readBits)({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:(0,t.readUnsigned)(!0)},{transparentColorIndex:(0,t.readByte)()},{terminator:(0,t.readByte)()}]},function(d){var f=(0,t.peekBytes)(2)(d);return f[0]===33&&f[1]===249}),s=(0,e.conditional)({image:[{code:(0,t.readByte)()},{descriptor:[{left:(0,t.readUnsigned)(!0)},{top:(0,t.readUnsigned)(!0)},{width:(0,t.readUnsigned)(!0)},{height:(0,t.readUnsigned)(!0)},{lct:(0,t.readBits)({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},(0,e.conditional)({lct:(0,t.readArray)(3,function(d,f,p){return Math.pow(2,p.descriptor.lct.size+1)})},function(d,f,p){return p.descriptor.lct.exists}),{data:[{minCodeSize:(0,t.readByte)()},n]}]},function(d){return(0,t.peekByte)()(d)===44}),o=(0,e.conditional)({text:[{codes:(0,t.readBytes)(2)},{blockSize:(0,t.readByte)()},{preData:function(f,p,v){return(0,t.readBytes)(v.text.blockSize)(f)}},n]},function(d){var f=(0,t.peekBytes)(2)(d);return f[0]===33&&f[1]===1}),a=(0,e.conditional)({application:[{codes:(0,t.readBytes)(2)},{blockSize:(0,t.readByte)()},{id:function(f,p,v){return(0,t.readString)(v.blockSize)(f)}},n]},function(d){var f=(0,t.peekBytes)(2)(d);return f[0]===33&&f[1]===255}),u=(0,e.conditional)({comment:[{codes:(0,t.readBytes)(2)},n]},function(d){var f=(0,t.peekBytes)(2)(d);return f[0]===33&&f[1]===254}),l=[{header:[{signature:(0,t.readString)(3)},{version:(0,t.readString)(3)}]},{lsd:[{width:(0,t.readUnsigned)(!0)},{height:(0,t.readUnsigned)(!0)},{gct:(0,t.readBits)({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:(0,t.readByte)()},{pixelAspectRatio:(0,t.readByte)()}]},(0,e.conditional)({gct:(0,t.readArray)(3,function(d,f){return Math.pow(2,f.lsd.gct.size+1)})},function(d,f){return f.lsd.gct.exists}),{frames:(0,e.loop)([i,a,u,s,o],function(d){var f=(0,t.peekByte)()(d);return f===33||f===44})}],c=l;r.default=c}(Wh)),Wh}var T0=x0();const O0=Gh(T0);var N0=Sg();const D0=(r,e)=>{const t=new Array(r.length),n=r.length/e,i=function(c,d){const f=r.slice(d*e,(d+1)*e);t.splice.apply(t,[c*e,e].concat(f))},s=[0,4,2,1],o=[8,8,4,2];for(var a=0,u=0;u<4;u++)for(var l=s[u];l<n;l+=o[u])i(l,a),a++;return t},M0=(r,e,t)=>{const s=t;var o,a,u,l,c,d,f,w,p,v,m,C,E,b,O,P;const S=new Array(t),I=new Array(4096),y=new Array(4096),_=new Array(4097);for(C=r,a=1<<C,c=a+1,o=a+2,f=-1,l=C+1,u=(1<<l)-1,p=0;p<a;p++)I[p]=0,y[p]=p;var m,w,E,b,P,O;for(m=w=E=b=P=O=0,v=0;v<s;){if(b===0){if(w<l){m+=e[O]<<w,w+=8,O++;continue}if(p=m&u,m>>=l,w-=l,p>o||p==c)break;if(p==a){l=C+1,u=(1<<l)-1,o=a+2,f=-1;continue}if(f==-1){_[b++]=y[p],f=p,E=p;continue}for(d=p,p==o&&(_[b++]=E,p=f);p>a;)_[b++]=y[p],p=I[p];E=y[p]&255,_[b++]=E,o<4096&&(I[o]=f,y[o]=E,o++,(o&u)===0&&o<4096&&(l++,u+=o)),f=d}b--,S[P++]=_[b],v++}for(v=P;v<s;v++)S[v]=0;return S},R0=r=>{const e=new Uint8Array(r);return Jn.parse(N0.buildStream(e),O0)},L0=r=>{const e=r.pixels.length,t=new Uint8ClampedArray(e*4);for(var n=0;n<e;n++){const i=n*4,s=r.pixels[n],o=r.colorTable[s]||[0,0,0];t[i]=o[0],t[i+1]=o[1],t[i+2]=o[2],t[i+3]=s!==r.transparentIndex?255:0}return t},F0=(r,e,t)=>{if(!r.image){console.warn("gif frame does not have associated image.");return}const{image:n}=r,i=n.descriptor.width*n.descriptor.height;var s=M0(n.data.minCodeSize,n.data.blocks,i);n.descriptor.lct.interlaced&&(s=D0(s,n.descriptor.width));const o={pixels:s,dims:{top:r.image.descriptor.top,left:r.image.descriptor.left,width:r.image.descriptor.width,height:r.image.descriptor.height}};return n.descriptor.lct&&n.descriptor.lct.exists?o.colorTable=n.lct:o.colorTable=e,r.gce&&(o.delay=(r.gce.delay||10)*10,o.disposalType=r.gce.extras.disposal,r.gce.extras.transparentColorGiven&&(o.transparentIndex=r.gce.transparentColorIndex)),o.patch=L0(o),o},A0=(r,e)=>r.frames.filter(t=>t.image).map(t=>F0(t,r.gct));async function Ig(r){const t=await(await fetch(r)).arrayBuffer(),n=R0(t),i=A0(n);return{gif:n,gifFrames:i,arrayBuffer:t}}function Pg(r,e,t){return r<e?e:r>t?t:r}class xg extends Hl{constructor(t,n=!0,i){super();h(this,"_gifFrames",this.disposeVar(V(void 0)));h(this,"_gifDurations",[]);h(this,"_gifDuration",this.disposeVar(V(0)));h(this,"_gifSize",this.disposeVar(V([0,0],(t,n)=>t.every((i,s)=>i===n[s]),t=>[...t])));h(this,"_autoPlayOnLoad",this.disposeVar(V(!0)));h(this,"_gifCanvas");this._container=t,this.loop=!0;const s=document.createElement("canvas");this._gifCanvas=s,s.style.width="100%",s.style.height="100%";const o=s.getContext("2d");this._container&&this._container.appendChild(s),this.dispose(()=>this._container&&this._container.removeChild(s));let a;this.dispose(this._gifFrames.changed.disposableOn(l=>{if(!l||l.length===0){s.width=0,s.height=0;return}const{width:c,height:d}=l[0].dims;this._gifSize.value=[c,d];const f=l.length;let p=0;this._gifDurations.length=0;for(let v=0;v<f;++v)p+=l[v].delay,this._gifDurations.push(p);this._gifDuration.value=this._gifDurations[this._gifDurations.length-1],s.width=c,s.height=d,a=o.createImageData(c,d),this.currentTimeChangedEvent.emit(this.currentTime,this.currentTime),this._autoPlayOnLoad.value&&(this.currentTime=0,this.playing=!0)}));let u=-1;this.dispose(this.currentTimeChangedEvent.disposableOn(l=>{const c=Pg(l/this.duration,0,1),d=this.gifDuration*c,f=this._gifFrames.value;if(f&&f.length>0){const p=this._getFrame(d);if(p===u)return;u=p;const v=f[p];if(v.disposalType!==0&&v.disposalType!==1&&v.disposalType!==2&&ea(`gif parsed get disposalType ${v.disposalType}... frame: ${p} size: ${JSON.stringify(v.dims)}`,`gif parsed get disposalType ${v.disposalType}...`),a&&(p===0||v.disposalType===2)&&a.data.fill(0),a){const[C,S]=this._gifSize.value,{width:I,height:y,left:_,top:m}=v.dims;if(y>S)throw new Error("height > canvasHeight");for(let w=0;w<y;++w)for(let E=0;E<I;++E){const b=w*I+E,P=m+w,O=_+E,M=P*C+O,x=a.data,D=v.patch,L=D[b*4+3]/255;x[M*4+0]=x[M*4+0]*(1-L)+D[b*4+0]*L|0,x[M*4+1]=x[M*4+1]*(1-L)+D[b*4+1]*L|0,x[M*4+2]=x[M*4+2]*(1-L)+D[b*4+2]*L|0,x[M*4+3]=Pg(x[M*4+3]+D[b*4+3],0,255)|0}o.putImageData(a,0,0)}}else ea("gif资源未加载!无法播放!")})),this.dispose(this._gifDuration.changed.disposableOn(()=>{this.duration=this.gifDuration})),this._autoPlayOnLoad.value=n,this._gifFrames.value=i}get gifCanvas(){return this._gifCanvas}set gifFrames(t){this._gifFrames.value=t}get gifFrames(){return this._gifFrames.value}get gifFramesChanged(){return this._gifFrames.changed}get gifSize(){return this._gifSize.value}get gifSizeChanged(){return this._gifSize.changed}get gifDuration(){return this._gifDuration.value}get gifDurationChanged(){return this._gifDuration.changed}get autoPlayOnLoad(){return this._autoPlayOnLoad.value}set autoPlayOnLoad(t){this._autoPlayOnLoad.value=t}get autoPlayOnLoadChanged(){return this._autoPlayOnLoad.changed}_getFrame(t){const n=this._gifDurations.length;for(let i=0;i<n;++i)if(t<=this._gifDurations[i])return i;throw new Error("should not be here")}}class Tg extends j{constructor(t){super();h(this,"_player");h(this,"_url",this.disposeVar(V("")));h(this,"_loadGifFramesProcessing",this.disposeVar(Wl(t=>ua(Ig(t)))));this._player=this.disposeVar(new xg(t)),this._player.autoPlayOnLoad=!0,this._loadGifFramesProcessing.completeFunc=({gifFrames:n})=>this._player.gifFrames=n,this.dispose(this._url.changed.disposableOn(n=>{this._player.gifFrames=void 0,this._loadGifFramesProcessing.restart(new jr(`reload gif(${n})`),n)}))}get player(){return this._player}set url(t){this._url.value=t}get url(){return this._url.value}get loadedEvent(){return this._loadGifFramesProcessing.completeEvent}get size(){return this._player.gifSize}get sizeChanged(){return this._player.gifSizeChanged}get duration(){return this._player.gifDuration}get durationChanged(){return this._player.gifDurationChanged}}class Og extends j{constructor(t,n){super();h(this,"_gif",this.disposeVar(new Tg));h(this,"_update");this._complexImage=t,this._imageUri=n,this._gif.url=this._imageUri,this._update=this.disposeVar(la(()=>this.update())),this._update.start()}get gif(){return this._gif}update(){const{player:t}=this._gif;if(!t.gifFrames)return;const n=this._complexImage,{width:i,height:s}=t.gifCanvas;n.size=[i,s],n.pixelFormat="RGBA",n.copyTexture({source:t.gifCanvas});{const o=()=>{t.autoPlayOnLoad=this._complexImage.autoplay};o(),this.dispose(this._complexImage.autoplayChanged.disposableOn(o))}{const o=()=>{t.loop=this._complexImage.loop};o(),this.dispose(this._complexImage.loopChanged.disposableOn(o))}}}function Ng(r,e){const[t,n,i]=Su(r),s=V(void 0),o=()=>{const a=t()??e;s.value=a&&st.context.getStrFromEnv(a)};return o(),i&&s.d(i.don(o)),s.d(st.context.environmentVariablesChanged.don(o)),s}function Dg(r){const e=/\${(.*?)\}/g;if(!e.test(r))return r;const t=r.replace(e,(n,i)=>{const s=st.context.getEnv(i);return s===void 0?(console.warn(`环境变量(${i})不存在,无法进行转换`),"{env-error}"):s});return Dg(t)}class k0 extends j{constructor(t){super();h(this,"_sceneObjRefs",new Map);h(this,"_refs",{});h(this,"_refsChanged",this.dv(new T));const n=(i,s,o)=>{if(o){const a=this.getLastSceneObject(o),u=this._sceneObjRefs.get(o);if(!u)console.warn(`this._sceneObjRefs中不存在ref(${o}), 可能系统存在逻辑问题`);else{const c=u.indexOf(i);c===-1?console.warn(`this._sceneObjRefs中不存在当前对象(id: ${i.id} type: ${i.typeName})!可能系统存在逻辑问题`):(u.splice(c,1),u.length===0&&this._sceneObjRefs.delete(o))}const l=this.getLastSceneObject(o);this._refs[o]=l,this._refsChanged.emit(l,a)}if(s){const a=this.getLastSceneObject(s),u=this._sceneObjRefs.get(s);u?(u.push(i),u.length>0&&console.warn(`同时存在多个ref${s}相同的场景对象!
22
22
  ${u.map(c=>`${c.id} ${c.typeName}
23
- `).join(" ")}`)):this._sceneObjRefs.set(s,[i]);const l=this.getLastSceneObject(s);this._refs[s]=l,this._refsChanged.emit(l,a)}};this.d(t.sceneObjCreatedEvent.don(i=>{const s=(o,a)=>n(i,o,a);i.ref&&s(i.ref,void 0),i.refChanged.don(s)})),this.d(t.sceneObjToDestroyEvent.don(i=>{i.ref&&n(i,void 0,i.ref)}))}get sceneObjRefs(){return this._sceneObjRefs}get refs(){return this._refs}get refsChanged(){return this._refsChanged}getLastSceneObject(t){const n=this.getSceneObjects(t);if(n)return n[n.length-1]}getSceneObjects(t){const n=this._sceneObjRefs.get(t);if(!(!n||n.length===0))return n}}class V0 extends j{constructor(){super();h(this,"_esObjConstructors",new Map);h(this,"_sceneObjs",new Map);h(this,"_sceneObjCreatedEvent",new T);h(this,"_sceneObjToDestroyEvent",new T);h(this,"_refsManager",this.dv(new k0(this)));h(this,"_environmentVariables",globalThis.ESSDK_ENV||{});h(this,"_environmentVariablesChanged",this.dv(new T))}get typeNames(){return this._esObjConstructors.keys()}get sceneObjs(){return this._sceneObjs.values()}get sceneObjCreatedEvent(){return this._sceneObjCreatedEvent}get sceneObjToDestroyEvent(){return this._sceneObjToDestroyEvent}get refsManager(){return this._refsManager}get $refs(){return this._refsManager.refs}register(t,n,i){return this._esObjConstructors.has(t)&&console.warn(`register warn: ${t} has registered ! will be override!`),this._esObjConstructors.set(t,n),i&&yi(n,"__sceneObjExtraInfo",i),t}_addSceneObject(t){this._sceneObjs.set(t.id,t),this._sceneObjCreatedEvent.emit(t),t.d(()=>this._deleteSceneObject(t))}addSceneObject(t){this._addSceneObject(t)}_deleteSceneObject(t){this._sceneObjToDestroyEvent.emit(t),this._sceneObjs.delete(t.id)}deleteSceneObject(t){this._deleteSceneObject(t)}createSceneObjectFromClass(t,n){if(!n||this._sceneObjs.has(n)){const s=ra();n&&console.warn(`已存在相同id的对象!id自动变更!${n} -> ${s} 请注意:id变更可能导致引用失效!`),n=s}if(!n)throw new Error("id不能为空!");const i=new t(n);return i.id!==n&&(console.warn(`sceneObj.id(${i.id}) !== id(${n}) sceneObjectType: ${i.typeName}`),console.warn("出现这种问题有可能是自定义的场景对象,没有在构造函数中传递id参数!示例如下:"),console.warn("class XXX extends XXX { constructor(id) { super(id); } }")),this._addSceneObject(i),i}createSceneObject(t,n){if(typeof t=="string"){const i=this._getSceneObjConstructor(t);if(!i){console.warn(`Cannot find SceneObjectType: ${t}`);return}return this.createSceneObjectFromClass(i,n)}else return this.createSceneObjectFromClass(t,n)}createSceneObjectFromUrl(t,n){let i;const s=t.toLowerCase();if(s.includes(".gltf")||s.includes(".glb")?i="ESGltfModel":s.includes("tileset.json")?i="ES3DTileset":s.includes("layer.json")||s.includes("ion://1")?i="ESTerrainLayer":s.includes(".jpg")||s.includes(".png")||s.includes(".jpeg")||s.includes(".webp")||s.includes("image/jpg")||s.includes("image/png")||s.includes("image/jpeg")||s.includes("image/webp")?i="ESImageLabel":(s.includes("/tilemapresource.xml")||s.includes("ion://")||s.includes("wms")||s.includes("wmts")||s.includes("{x}")||s.includes("{y}")||s.includes("{z}"))&&(i="ESImageryLayer"),!!i)return this.createSceneObjectFromJson({type:i,id:n,url:t})}createSceneObjectFromJson(t){const n=this.createSceneObject(t.type,t.id);return n&&(n.json=t),n}destroySceneObject(t){return this._deleteSceneObject(t),t.destroy(),t.isDestroyed()}getSceneObjectById(t){return this._sceneObjs.get(t)}getSceneObject(t){if(!t&&t!="")return Array.from(this._sceneObjs.values());if(typeof t=="function"){const n=[];for(const i of this._sceneObjs.values())i instanceof t&&n.push(i);return n}if(t.startsWith("ES")){const n=[];for(const i of this._sceneObjs.values())i.typeName===t&&n.push(i);return n}return this._sceneObjs.get(t)}_getSceneObjConstructor(t){const n=this._esObjConstructors.get(t);if(n)return n}getProps(t){const n=this._getSceneObjConstructor(t);if(!n){console.warn(`cannot get constructor from type: ${t}`);return}return $n(n,"__sceneObjExtraInfo")}setProps(t,n){const i=this._getSceneObjConstructor(t);if(!i){console.warn(`cannot get constructor from type: ${t}`);return}let s=$n(i,"__sceneObjExtraInfo");s||(s={},yi(i,"__sceneObjExtraInfo",s)),Object.assign(s,n)}getProp(t,n){const i=this.getProps(t);return i&&i[n]}setProp(t,n,i){this.setProps(t,{[n]:i})}get environmentVariables(){return this._environmentVariables}set environmentVariables(t){for(let[n,i]of Object.entries(t))this.setEnv(n,i)}get environmentVariablesChanged(){return this._environmentVariablesChanged}setEnv(t,n){if(this._environmentVariables[t]!==n){const i=this._environmentVariables[t];this._environmentVariables[t]=n,this._environmentVariablesChanged.emit(t,n,i)}globalThis.ESSDK_ENV={...this._environmentVariables}}getEnv(t){return this._environmentVariables[t]}getStrFromEnv(t){return Dg(t)}createEnvStrReact(t,n){return Ng(t,n)}createEvnStrReact(t,n){return Ng(t,n)}}const _t=class _t extends j{constructor(t){super();h(this,"_components",this.dv(new Xl));h(this,"_viewerAttached",this.dv(new T));h(this,"_viewerDetached",this.dv(new T));h(this,"_attachedViewers",(()=>{const t=new Set;return this.d(this._viewerAttached.don(n=>{n.actived&&(this.activeViewer=n),n.ad(n.activedChanged.don(i=>{i&&t.has(n)&&(this.activeViewer=n)})),t.add(n)})),this.d(this._viewerDetached.don(n=>{t.delete(n),this.activeViewer==n&&(this.activeViewer=void 0)})),t})());h(this,"_activeViewer",this.disposeVar(V(void 0)));h(this,"_createdEvent",this.dv(new T));h(this,"_flushEvent",this.dv(new T));h(this,"_id");h(this,"_updateFuncReact",this.dv(V(void 0)));h(this,"_toDestroyFuncReact",this.dv(V(void 0)));h(this,"_parentID");t!==void 0&&(typeof t!="string"?console.warn(`对象id必须是字符串类型,当前id的类型是${typeof t},值为${t}`):t.trim()===""?console.warn("场景对象创建时的id不能是空字符串!"):t.trim()!==t&&console.warn(`id前后有空字符串!id: ${t}`)),this._id=t??ra(),this._initName();{const n=()=>{if(this.execOnceFuncStr)try{Function(`"use strict";return (${this.execOnceFuncStr})`)()(this)}catch(i){console.warn(`execOnceFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${i}`)}};n(),this.d(this.execOnceFuncStrChanged.don(n))}{const n=()=>{if(this.updateFuncStr)try{this.updateFunc=Function(`"use strict";return (${this.updateFuncStr})`)()}catch(s){console.warn(`updateFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${s}`)}};n(),this.d(this.updateFuncStrChanged.don(n));let i;this.d(()=>i&&i.destroy()),this.d(this.updateFuncChanged.don(()=>{i&&i.cancel(),this.updateFunc&&(i=i||Mu(),i.restart(void 0,s=>{this.updateFunc&&this.updateFunc(this,s)}))}))}{const n=()=>{try{this.toDestroyFunc=this.toDestroyFuncStr&&Function(`"use strict";return (${this.toDestroyFuncStr})`)()||void 0}catch(i){console.warn(`toDestroyFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${i}`),this.toDestroyFunc=void 0}};n(),this.d(this.toDestroyFuncStrChanged.don(n)),this.d(this.toDestroyEvent.don(()=>{this.toDestroyFunc&&this.toDestroyFunc(this)}))}}static getParentClass(){return Object.getPrototypeOf(this)}static register(t,n,i){bs(n.prototype,n.createDefaultProps);const s=n.createDefaultProps();n.defaults&&(n.defaults={});for(const o of Object.keys(s))n.defaults[o]=s[o]instanceof Ve?s[o].value:s[o];return this.innerRegister(t,n,i),t}static get envs(){return _t.context.environmentVariables}static get $refs(){return _t.context.refsManager.refs}get components(){return this._components}get viewerAttached(){return this._viewerAttached}get viewerDetached(){return this._viewerDetached}get attachedViewers(){return this._attachedViewers}get activeViewer(){return this._activeViewer.value}set activeViewer(t){this._activeViewer.value=t}get activeViewerChanged(){return this._activeViewer.changed}removefromViewer(t){this.attachedViewers.has(t)&&t.delete(this)}addToViewer(t){this.attachedViewers.has(t)||t.add(this)}registerAttachedObject(t){const n=new Map;this.d(()=>{n.size>0&&console.warn("viewerPropSceneObjects.size > 0")}),this.d(this._viewerAttached.don(i=>{const s=t(i);s&&n.set(i,s)})),this.d(this._viewerDetached.don(i=>{if(!n.has(i))return;const s=n.get(i);s&&(s.destroy(),n.delete(i))}))}createAttachedObject(t){const n=new Map,i=()=>{for(let[u,l]of n.entries())l.destroy();n.clear()},s=u=>{const l=t(u);l&&n.set(u,l)};for(let u of this.attachedViewers)s(u);const o=this._viewerAttached.don(s),a=this._viewerDetached.don(u=>{if(!n.has(u))return;const l=n.get(u);l&&(l.destroy(),n.delete(u))});return()=>{a(),o(),i()}}registerAttachedObjectForContainer(t){this.registerAttachedObject(n=>new j0(n,t))}get createdEvent(){return this._createdEvent}get flushEvent(){return this._flushEvent}flush(){this.flushEvent.emit()}get id(){return this._id}get typeName(){return this.constructor.type}_initName(){this.name=`${this.typeName}_${(""+this.id).slice(-4)}`}get defaultProps(){return this.constructor.createDefaultProps()}_innerGetJson(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 Ve?s=o.equals(this[i]):s=o===this[i],s||(n[i]=this[i])}else n[i]=this[i];return n}_innerSetJson(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 Ve&&(u=u.value),this[a]=u}}get completeJson(){return this._innerGetJson(!1)}get json(){return this._innerGetJson()}set json(t){this._innerSetJson(t)}get _jsonStr(){return JSON.stringify(this.json,null,4)}set _jsonStr(t){this._innerSetJson(JSON.parse(t))}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 parentID(){return this._parentID??this.id}set parentID(t){this._parentID=t}getESProperties(){return{defaultMenu:"general",basic:[],general:[new at([this,"typeName"],"类型",void 0,!1,!0),new at([this,"id"],"id",void 0,!1,!0),new at([this,"name"],"名称"),new Xh("JSON",()=>this._jsonStr,t=>t&&(this._jsonStr=t))],dataSource:[],location:[],coordinate:[],style:[],more:[new at([this,"ref"],"ref",void 0,!0),new ht([this,"extras"],"extras",{},void 0,!0)]}}};h(_t,"context",new V0),h(_t,"innerRegister",_t.context.register.bind(_t.context)),h(_t,"defaults",{}),h(_t,"createDefaultProps",()=>({name:"未命名场景对象",ref:void 0,extras:wt(void 0),devTags:qt(void 0),execOnceFuncStr:void 0,updateFuncStr:void 0,toDestroyFuncStr:void 0})),h(_t,"type",_t.register("ESSceneObject",_t,{chsName:"场景类",tags:["ESObjects"],description:""})),h(_t,"create",_t.context.createSceneObject.bind(_t.context)),h(_t,"createFromUrl",_t.context.createSceneObjectFromUrl.bind(_t.context)),h(_t,"createFromClass",_t.context.createSceneObjectFromClass.bind(_t.context)),h(_t,"createFromJson",_t.context.createSceneObjectFromJson.bind(_t.context)),h(_t,"destroySceneObject",_t.context.destroySceneObject.bind(_t.context)),h(_t,"getSceneObjById",_t.context.getSceneObjectById.bind(_t.context)),h(_t,"getSceneObj",_t.context.getSceneObject.bind(_t.context)),h(_t,"getEnv",_t.context.getEnv.bind(_t.context)),h(_t,"setEnv",_t.context.setEnv.bind(_t.context)),h(_t,"getStrFromEnv",_t.context.getStrFromEnv.bind(_t.context)),h(_t,"getSceneObjectById",_t.context.getSceneObjectById.bind(_t.context)),h(_t,"getSceneObject",_t.context.getSceneObject.bind(_t.context));let st=_t;class j0 extends j{constructor(e,t){super(),this.dv(new Se(e.subContainerChanged,()=>{if(e.subContainer)return t(e,e.subContainer)}))}}const oh=class oh extends j{constructor(t,n,i){super();h(this,"_id",++oh._accumId);this._name=t,this._description=n,this._callFunction=i}get id(){return this._id}get name(){return this._name}get description(){return this._description}get callFunction(){return this._callFunction}};h(oh,"_accumId",-1);let xs=oh;class Hh extends xs{constructor(e,t,n,i,s,o){super(e,t,o??(()=>{})),this._withUndefined=n,this._readonly=i,this._defaultValue=s}get withUndefined(){return this._withUndefined}get readonly(){return this._readonly}get defaultValue(){return this._defaultValue instanceof Function?this._defaultValue():this._defaultValue}}class Pn extends Hh{constructor(t,n,i,s,o,a,u){var c;const l=t instanceof Ve?"未获取到属性名":t[1].toString();super(n??l,a??l,s??!1,o??!1,i,u);h(this,"_propName");h(this,"_typeName");this._reactVar=t,this._propName=l;try{this._typeName=t instanceof Ve?"未获取到对象类型":(c=t[0])==null?void 0:c.typeName}catch{this._typeName="未获取到对象类型"}}get reactVar(){return this._reactVar}get propName(){return this._propName}get typeName(){return this._typeName}}class X extends Pn{get type(){return"BooleanProperty"}}class at extends Pn{get type(){return"StringProperty"}}class N extends Pn{get type(){return"NumberProperty"}}class Be extends Pn{get type(){return"Number2Property"}}class hn extends Pn{get type(){return"Number3Property"}}class dr extends Pn{get type(){return"Number4Property"}}class It extends dr{get type(){return"ColorProperty"}}class Mg extends N{get type(){return"DashPatternProperty"}}class Ei extends Pn{get type(){return"DateProperty"}}class qh extends Pn{get type(){return"DatesProperty"}}class ct extends xs{constructor(t,n,i){super(t??"",i??"");h(this,"_placement");this._placement=n}get type(){return"DivideProperty"}get placement(){return this._placement}}class dt extends Pn{constructor(e,t,n,i,s,o,a){super(e,n,i,s,o,a),this._enums=t}get type(){return"EnumProperty"}get enums(){return this._enums}}class Zi extends Pn{constructor(e,t,n,i,s,o,a){super(e,t,n,s,o,a),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"EvalStringProperty"}}class Yl extends Pn{constructor(e,t,n,i,s,o,a){super(e,t,n,s,o,a),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"LongStringProperty"}}class ot extends xs{constructor(t,n,i,s){const o=t??"Unnamed Function";super(o,s??o);h(this,"_paramsLength");this._func=n,this._defaultParams=i,this._paramsLength=this._func.length??0}get paramsLength(){return this._paramsLength}get defaultParams(){return this._defaultParams}get isOpen(){return this._defaultParams.length!==this._paramsLength}get func(){return this._func}run(...t){this._func(...t)}get type(){return"MethodProperty"}}class Oe extends Pn{constructor(e,t,n,i,s,o,a,u){super(e,i,s,o,a,u),this._step=t,this._minMax=n}get type(){return"NumberSliderProperty"}get minMax(){return this._minMax}get step(){return this._step}}class Ts extends hn{get type(){return"PositionProperty"}}class Jl extends hn{get type(){return"RotationProperty"}}function B0(r,e){const[t,n,i]=Su(r),[s,o,a]=Su(e),u=V((t()??0)/(s()??3e3)),l=()=>{const c=u.value,d=s()??3e3,f=t()??0;if(!Number.isFinite(d)||!Number.isFinite(f)){console.warn(`duration || currentTime error: duration: ${d} currentTime: ${f}`);return}Math.abs(c*d-f)<.001||(d<=0?u.value=0:u.value=f/d)};return u.dispose(i.disposableOn(l)),u.dispose(a.disposableOn(l)),u.dispose(u.changed.disposableOn(()=>{const c=u.value,d=s()??3e3,f=t()??0;if(!Number.isFinite(d)||!Number.isFinite(f)){console.warn(`duration || currentTime error: duration: ${d} currentTime: ${f}`);return}Math.abs(c*d-f)<.001||n(c*d)})),u}class $l extends xs{constructor(t,n,i,s,o,a){super(s??"播放器",a??"播放器");h(this,"_defaults",{playing:!1,ratio:0,loop:!1});this._playingReact=t,this._ratioReact=n,this._loopReact=i,o&&(this._defaults.playing=o.playing??this._defaults.playing,this._defaults.ratio=o.ratio??this._defaults.ratio,this._defaults.loop=o.loop??this._defaults.loop)}get type(){return"PlayerProperty"}get playingReact(){return this._playingReact}get ratioReact(){return this._ratioReact}get loopReact(){return this._loopReact}get defaults(){return this._defaults}}h($l,"createPlayingRatio",B0);class Rg extends xs{constructor(t,n,i,s,o,a){const u=s??"视角播放器";super(u,a??u);h(this,"_defaults",{playing:!1,loop:!1});this._playingReact=t,this._stopFn=n,this._loopReact=i,o&&(this._defaults.playing=o.playing??this._defaults.playing,this._defaults.loop=o.loop??this._defaults.loop)}get type(){return"ViewPlayerProperty"}get playingReact(){return this._playingReact}get loopReact(){return this._loopReact}get stopFn(){return this._stopFn}get defaults(){return this._defaults}}class Ie extends Pn{constructor(e,t,n,i,s,o,a){super(e,t,n,s,o,a),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"JsonArrayProperty"}}class ht extends Pn{constructor(e,t,n,i,s,o,a){super(e,t,n,s,o,a),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"JsonProperty"}}class Xh extends Hh{constructor(e,t,n,i,s,o){super(e,o??e,i??!1,s??!1),this._getFunc=t,this._setFunc=n}get getFunc(){return this._getFunc}get setFunc(){return this._setFunc}get type(){return"GetSetProperty"}}var K=(r=>(r.Place="place",r.BrushErase="brushErase",r.Translation="translation",r.Rotation="rotation",r.Scale="scale",r.DoublePointsAppend="doublePointsAppend",r.DoublePointsModify="doublePointsModify",r.CircularAppend="circularAppend",r.CircularInsert="circularInsert",r.LineStringAppend="lineStringAppend",r.LineStringInsert="lineStringInsert",r.ScatterAppend="scatterAppend",r.ScatterModify="scatterModify",r.VisibilityAppend="visibilityAppend",r.VisibilityModify="visibilityModify",r.HeightModify="heightModify",r.SinglePoint="singlePoint",r.DoublePoints="doublePoints",r))(K||{}),Lg=(r=>(r.DECIMAL_DEGREE="DECIMAL_DEGREE",r.DEGREES_DECIMAL_MINUTES="DEGREES_DECIMAL_MINUTES",r.SEXAGESIMAL_DEGREE="SEXAGESIMAL_DEGREE",r))(Lg||{});class z0{constructor(e){this.childPickedInfo=e}}class U0{constructor(e,t,n,i,s,o){this.pickResult=e,this.sceneObject=t,this.tilesetPickInfo=n,this.geojsonPickInfo=i,this.attachedInfo=s,this.screenPosition=o}assign(e){e!=null&&e.pickedResult&&(this.pickResult=e.pickedResult),e!=null&&e.sceneObject&&(this.sceneObject=e.sceneObject),e!=null&&e.tilesetPickInfo&&(this.tilesetPickInfo=e.tilesetPickInfo),e!=null&&e.geojsonPickInfo&&(this.geojsonPickInfo=e.geojsonPickInfo),e!=null&&e.attachedInfo&&(this.attachedInfo=e.attachedInfo),e!=null&&e.screenPosition&&(this.screenPosition=e.screenPosition)}}const we=class we extends st{constructor(t){super(t);h(this,"_editing",this.dv(V(!1)));h(this,"editingID");h(this,"editingBindMode","singlePoint");h(this,"_deprecated",[]);h(this,"_flyInEvent",this.dv(new T));h(this,"_flyToEvent",this.dv(new T));h(this,"_flyOverEvent",this.disposeVar(new T));h(this,"_pickedEvent",this.dv(new T));h(this,"_calcFlyToParamEvent",this.dv(new T));h(this,"_calcFlyInParamEvent",this.dv(new T));h(this,"useCalcFlyToParamInESObjectWithLocation",!1);jg(this,this.updateEditing)}supportEditingModes(){return this.constructor.supportEditingModes}get editing(){return this._editing.value}set editing(t){this._editing.value=t}get editingChanged(){return this._editing.changed}updateEditing(){}_deprecatedWarning(){const t=this._deprecated;for(let n=0;n<t.length;n++){const i=t[n];typeof i=="string"?Reflect.has(this,i+"Changed")&&this.d(this[i+"Changed"].don(()=>{console.warn(`注意:${this.typeName} 的 ${i} 属性下版本将会被移除!`)})):Object.keys(i).forEach(s=>{Reflect.has(this,s+"Changed")&&this.d(this[s+"Changed"].don(a=>{const u=i[s];typeof u=="string"?console.warn(`注意:${this.typeName} 的 ${s} 属性下版本将会被移除!`):Object.keys(u).forEach(l=>{a===l&&console.warn(`注意:${this.typeName} 的 ${s} 属性值 ${l} 下版本将会被移除,推荐使用属性值 ${u[l]}`)})}))})}}get flyInEvent(){return this._flyInEvent}flyIn(t=1){this._flyInEvent.emit(t,we._lastFlyInId)}get flyToEvent(){return this._flyToEvent}flyTo(t=1){this._flyToEvent.emit(t,we._lastFlyToId)}get flyOverEvent(){return this._flyOverEvent}get pickedEvent(){return this._pickedEvent}get calcFlyToParamEvent(){return this._calcFlyToParamEvent}calcFlyToParam(){this._calcFlyToParamEvent.emit()}get calcFlyInParamEvent(){return this._calcFlyInParamEvent}calcFlyInParam(){this._calcFlyInParamEvent.emit()}emptyFlyToParam(){this.flyToParam=void 0}emptyFlyInParam(){this.flyInParam=void 0}async getBoundSphere(t){return await t.getBoundSphere(this.id)}getESProperties(){const t={...super.getESProperties()};return{...t,general:[...t.general,new X([this,"show"],"是否显示",we.defaults.show),new X([this,"collision"],"开启碰撞",we.defaults.collision),new X([this,"allowPicking"],"允许拾取",we.defaults.allowPicking),new ot("保存观察视角",()=>this.calcFlyToParam(),[]),new ot("清空飞向参数",()=>this.emptyFlyToParam(),[]),new ot("保存飞入参数",()=>this.calcFlyInParam(),[]),new ot("清空飞入参数",()=>this.emptyFlyInParam(),[])],more:[...t.more,new ct("飞行定位"),new ot("飞向",n=>this.flyTo(n),[1],"flyTo"),new ht([this,"flyToParam"],"飞行参数",void 0,void 0,!0),new N([this,"flyToDistance"],"flyToDistance",void 0,!0),new N([this,"flyToHeading"],"flyToHeading",void 0,!0),new N([this,"flyToPitch"],"flyToPitch",void 0,!0),new N([this,"flyToFlyDuration"],"flyToFlyDuration",void 0,!0),new N([this,"flyToHDelta"],"flyToHDelta",void 0,!0),new N([this,"flyToPDelta"],"flyToPDelta",void 0,!0),new ct("飞入参数"),new ot("飞入",n=>this.flyIn(n),[1],"flyIn"),new ht([this,"flyInParam"],"飞入参数",void 0,void 0,!0)]}}get flyToDistance(){return this.flyToParam&&this.flyToParam.distance}get flyToHeading(){return this.flyToParam&&this.flyToParam.heading}get flyToPitch(){return this.flyToParam&&this.flyToParam.pitch}get flyToFlyDuration(){return this.flyToParam&&this.flyToParam.flyDuration}get flyToHDelta(){return this.flyToParam&&this.flyToParam.hDelta}get flyToPDelta(){return this.flyToParam&&this.flyToParam.pDelta}get flyToDistanceChanged(){return this.flyToParamChanged}get flyToHeadingChanged(){return this.flyToParamChanged}get flyToPitchChanged(){return this.flyToParamChanged}get flyToFlyDurationChanged(){return this.flyToParamChanged}get flyToHDeltaChanged(){return this.flyToParamChanged}get flyToPDeltaChanged(){return this.flyToParamChanged}set flyToDistance(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,distance:t}:void 0}set flyToHeading(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,heading:t}:void 0}set flyToPitch(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,pitch:t}:void 0}set flyToFlyDuration(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,flyDuration:t}:void 0}set flyToHDelta(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,hDelta:t}:void 0}set flyToPDelta(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,pDelta:t}:void 0}};h(we,"createDefaultProps",()=>({...st.createDefaultProps(),show:!0,collision:!0,allowPicking:!1,flyToParam:Yt(void 0),flyInParam:Yt(void 0)})),h(we,"type",we.register("ESVisualObject",we,{chsName:"可视化对象",tags:["ESObjects"],description:"可视化对象"})),h(we,"supportEditingModes",[]),h(we,"defaultFlyToParam",{distance:0,heading:0,pitch:0,flyDuration:1,hDelta:0,pDelta:0}),h(we,"defaultFlyInParam",{position:[0,0,0],rotation:[0,0,0],flyDuration:1}),h(we,"_lastFlyInId",0),h(we,"_lastFlyToId",0);let Bt=we;class Fg extends j{constructor(){super();h(this,"_data",this.dv(V(void 0)))}set data(t){this._data.value=t}get data(){return this._data.value}get dataChanged(){return this._data.changed}}class Ag extends j{constructor(){super(...arguments);h(this,"_dragStartEvent",this.dv(new T));h(this,"_dragOverEvent",this.dv(new T));h(this,"_dragLeaveEvent",this.dv(new T));h(this,"_dropEvent",this.dv(new T))}dragStart(t){this._dragStartEvent.emit(t)}dragOver(t){this._dragOverEvent.emit(t)}dragLeave(t){this._dragLeaveEvent.emit(t)}drop(t){this._dropEvent.emit(t)}}function G0(r,e){e&&(Reflect.has(e,"editing")?e.editing=!0:Reflect.has(e,"positionEditing")&&(e.positionEditing=!0))}function W0(r){["Czm3DTiles","View","ESCameraView","OlView","GeoCameraController"].includes(r.typeName)||(Reflect.has(r,"editing")?r.editing=!0:Reflect.has(r,"positionEditing")&&(r.positionEditing=!0)),typeof r.execOnCreating=="function"&&r.execOnCreating()}function Kl(r,e){$n(r,"__treeItem")&&console.error("setSceneObjectTreeItem error!"),yi(r,"__treeItem",e)}function H0(r){return $n(r,"__treeItem")}function q0(r){if(!(r.startsWith("./")||r.startsWith("../")||r.startsWith("/")))return r;const e=document.createElement("a");e.href=r;const t=e.href;return e.remove(),t}function Yh(r){if(typeof r!="string")return!1;try{const e=JSON.parse(r);return typeof e=="object"&&e!==null}catch{return!1}}function X0(r){try{return new DOMParser().parseFromString(r,"application/xml").getElementsByTagName("parsererror").length===0}catch{return!1}}function Y0(r){return r instanceof Function?r():r}function kg(r,e){for(let t of r)if(e.includes(t))return!0;return!1}function Bu(r,e){const t=r,n=e;return t===void 0||t.length===0||n===void 0||n.length===0?!0:kg(t,n)}function J0(r){const e=setTimeout(()=>{r(),clearTimeout(e)})}function ca(r){let e=r%360;return e=e<0?360+e:e,e}function Vg(r){return ca(r+180)-180}function Zl(r,e,t){let n=ca(r),i=ca(e);Math.abs(n-i)>180&&(n<i?n+=360:i+=360);const s=n*(1-t)+i*t;return Vg(s)}function Jh(r,e,t,n){return n=n||[0,0,0],n[0]=Zl(r[0],e[0],t),n[1]=Zl(r[1],e[1],t),n[2]=Zl(r[2],e[2],t),n}function jg(r,e,t="editing"){const n=new j;r.ad(n);const i=e.bind(r);return n.ad(new Se(r.activeViewerChanged,()=>{const s=new j;let o=r.activeViewer;return o?(s.ad(r[`${t}Changed`].don(()=>{var a;r[`${t}`]?i():(a=(r.components.main??r).editingID)!=null&&a.includes("inner")&&r.activeViewer&&r.activeViewer.stopEditing()})),s.ad(o.editingEvent.don(a=>{if(a.objectIDs.includes(r.id)&&a.type==="end"){const u=r.components.main??r;u.editingID&&(a.editingID.includes(u.editingID)?r[t]=!1:r[t]=!u.editingID.includes("outer")),u.editingID=void 0}}))):s.ad(r[`${t}Changed`].don(()=>{r[`${t}`]=!1})),s})),r[`${t}`]&&i(),n}function Bg(r){var t;const e=((t=r.type)==null?void 0:t.toLowerCase())??"";switch(e){case"geometrycollection":return $0(r);case"topology":const n=r.objects,i=[];for(const s in n){const o=Ky.feature(r,n[s]);i.push(...o.features)}return{type:"FeatureCollection",features:i};case"feature":return{type:"FeatureCollection",features:[r]};case"featurecollection":return r;case"":default:return console.warn(`GeoJson数据转换可能有误,数据类型${e}`),{type:"FeatureCollection",features:Array.isArray(r.features)?r.features:[]}}}function $0(r,e){const t=[],n=r.geometries||[];function i(s,o={}){!s||!s.type||(s.type==="GeometryCollection"&&Array.isArray(s.geometries)?s.geometries.forEach(a=>i(a,o)):t.push({type:"Feature",geometry:s,properties:{...s.properties||{},...o}}))}return n.forEach(s=>i(s,{})),{type:"FeatureCollection",features:t}}function K0(r){const e=r.cloneNode(!0);e.style.position="fixed",e.style.visibility="hidden",e.style.pointerEvents="none",e.style.top="0",e.style.left="0",e.style.display="inline-block",document.body.appendChild(e);const t=e.getBoundingClientRect();return document.body.removeChild(e),{x:t.x,y:t.y,width:t.width,height:t.height}}class $h extends j{constructor(t){super();h(this,"_sceneObject",this.dv(V(void 0)));this._id=t,this.d(()=>{this._sceneObject.value=void 0});const n=st.getSceneObjById(this._id);n&&(this._sceneObject.value=n),this.d(st.context.sceneObjCreatedEvent.don(i=>{i.id===this._id&&(this._sceneObject.value=i)})),this.d(st.context.sceneObjToDestroyEvent.don(i=>{i.id===this._id&&(this._sceneObject.value=void 0)}))}get sceneObject(){return this._sceneObject.value}get sceneObjectChanged(){return this._sceneObject.changed}get id(){return this._id}}class Z0 extends j{constructor(t,n){super();h(this,"_sofi");this._id=t,this._sofi=this.dv(new $h(this._id));{const i=()=>{n.sceneObject=this._sofi.sceneObject};i(),this.d(this._sofi.sceneObjectChanged.don(i))}}}class zg extends j{constructor(){super();h(this,"_id",this.dv(V(void 0)));h(this,"_sceneObject",this.dv(V(void 0)));h(this,"_resetting",this.dv(new Se(this.idChanged,()=>{const{id:t}=this;if(t===void 0||t===""){this.sceneObject=void 0;return}return new Z0(t,this)})))}get id(){return this._id.value}get idChanged(){return this._id.changed}set id(t){this._id.value=t}get sceneObject(){return this._sceneObject.value}get sceneObjectChanged(){return this._sceneObject.changed}set sceneObject(t){this._sceneObject.value=t}get resetting(){return this._resetting}}class Q0 extends j{constructor(t,n,i,s){super();h(this,"_sceneObjectId",this.dv(new zg));this._id=t,this._startTimeStamp=n,this._duration=i,this._parent=s,this._sceneObjectId.id=this._id;const o=()=>{if(!this.player)return;const{currentTime:a=0}=this._parent,u=a-this._startTimeStamp;this.player.currentTime=Ul(u,0,this._duration)*(this.player.speed??1)};o(),this.d(this._parent.currentTimeChanged.don(o)),this.d(this.playerChanged.don(o))}get player(){return this._sceneObjectId.sceneObject instanceof Br?this._sceneObjectId.sceneObject:void 0}get playerChanged(){return this._sceneObjectId.sceneObjectChanged}}const tw=`
23
+ `).join(" ")}`)):this._sceneObjRefs.set(s,[i]);const l=this.getLastSceneObject(s);this._refs[s]=l,this._refsChanged.emit(l,a)}};this.d(t.sceneObjCreatedEvent.don(i=>{const s=(o,a)=>n(i,o,a);i.ref&&s(i.ref,void 0),i.refChanged.don(s)})),this.d(t.sceneObjToDestroyEvent.don(i=>{i.ref&&n(i,void 0,i.ref)}))}get sceneObjRefs(){return this._sceneObjRefs}get refs(){return this._refs}get refsChanged(){return this._refsChanged}getLastSceneObject(t){const n=this.getSceneObjects(t);if(n)return n[n.length-1]}getSceneObjects(t){const n=this._sceneObjRefs.get(t);if(!(!n||n.length===0))return n}}class V0 extends j{constructor(){super();h(this,"_esObjConstructors",new Map);h(this,"_sceneObjs",new Map);h(this,"_sceneObjCreatedEvent",new T);h(this,"_sceneObjToDestroyEvent",new T);h(this,"_refsManager",this.dv(new k0(this)));h(this,"_environmentVariables",globalThis.ESSDK_ENV||{});h(this,"_environmentVariablesChanged",this.dv(new T))}get typeNames(){return this._esObjConstructors.keys()}get sceneObjs(){return this._sceneObjs.values()}get sceneObjCreatedEvent(){return this._sceneObjCreatedEvent}get sceneObjToDestroyEvent(){return this._sceneObjToDestroyEvent}get refsManager(){return this._refsManager}get $refs(){return this._refsManager.refs}register(t,n,i){return this._esObjConstructors.has(t)&&console.warn(`register warn: ${t} has registered ! will be override!`),this._esObjConstructors.set(t,n),i&&yi(n,"__sceneObjExtraInfo",i),t}_addSceneObject(t){this._sceneObjs.set(t.id,t),this._sceneObjCreatedEvent.emit(t),t.d(()=>this._deleteSceneObject(t))}addSceneObject(t){this._addSceneObject(t)}_deleteSceneObject(t){this._sceneObjToDestroyEvent.emit(t),this._sceneObjs.delete(t.id)}deleteSceneObject(t){this._deleteSceneObject(t)}createSceneObjectFromClass(t,n){if(!n||this._sceneObjs.has(n)){const s=ra();n&&console.warn(`已存在相同id的对象!id自动变更!${n} -> ${s} 请注意:id变更可能导致引用失效!`),n=s}if(!n)throw new Error("id不能为空!");const i=new t(n);return i.id!==n&&(console.warn(`sceneObj.id(${i.id}) !== id(${n}) sceneObjectType: ${i.typeName}`),console.warn("出现这种问题有可能是自定义的场景对象,没有在构造函数中传递id参数!示例如下:"),console.warn("class XXX extends XXX { constructor(id) { super(id); } }")),this._addSceneObject(i),i}createSceneObject(t,n){if(typeof t=="string"){const i=this._getSceneObjConstructor(t);if(!i){console.warn(`Cannot find SceneObjectType: ${t}`);return}return this.createSceneObjectFromClass(i,n)}else return this.createSceneObjectFromClass(t,n)}createSceneObjectFromUrl(t,n){let i;const s=t.toLowerCase();if(s.includes(".gltf")||s.includes(".glb")?i="ESGltfModel":s.includes("tileset.json")?i="ES3DTileset":s.includes("layer.json")||s.includes("ion://1")?i="ESTerrainLayer":s.includes(".jpg")||s.includes(".png")||s.includes(".jpeg")||s.includes(".webp")||s.includes("image/jpg")||s.includes("image/png")||s.includes("image/jpeg")||s.includes("image/webp")?i="ESImageLabel":(s.includes("/tilemapresource.xml")||s.includes("ion://")||s.includes("wms")||s.includes("wmts")||s.includes("{x}")||s.includes("{y}")||s.includes("{z}"))&&(i="ESImageryLayer"),!!i)return this.createSceneObjectFromJson({type:i,id:n,url:t})}createSceneObjectFromJson(t){const n=this.createSceneObject(t.type,t.id);return n&&(n.json=t),n}destroySceneObject(t){return this._deleteSceneObject(t),t.destroy(),t.isDestroyed()}getSceneObjectById(t){return this._sceneObjs.get(t)}getSceneObject(t){if(!t&&t!="")return Array.from(this._sceneObjs.values());if(typeof t=="function"){const n=[];for(const i of this._sceneObjs.values())i instanceof t&&n.push(i);return n}if(t.startsWith("ES")){const n=[];for(const i of this._sceneObjs.values())i.typeName===t&&n.push(i);return n}return this._sceneObjs.get(t)}_getSceneObjConstructor(t){const n=this._esObjConstructors.get(t);if(n)return n}getProps(t){const n=this._getSceneObjConstructor(t);if(!n){console.warn(`cannot get constructor from type: ${t}`);return}return $n(n,"__sceneObjExtraInfo")}setProps(t,n){const i=this._getSceneObjConstructor(t);if(!i){console.warn(`cannot get constructor from type: ${t}`);return}let s=$n(i,"__sceneObjExtraInfo");s||(s={},yi(i,"__sceneObjExtraInfo",s)),Object.assign(s,n)}getProp(t,n){const i=this.getProps(t);return i&&i[n]}setProp(t,n,i){this.setProps(t,{[n]:i})}get environmentVariables(){return this._environmentVariables}set environmentVariables(t){for(let[n,i]of Object.entries(t))this.setEnv(n,i)}get environmentVariablesChanged(){return this._environmentVariablesChanged}setEnv(t,n){if(this._environmentVariables[t]!==n){const i=this._environmentVariables[t];this._environmentVariables[t]=n,this._environmentVariablesChanged.emit(t,n,i)}globalThis.ESSDK_ENV={...this._environmentVariables}}getEnv(t){return this._environmentVariables[t]}getStrFromEnv(t){return Dg(t)}createEnvStrReact(t,n){return Ng(t,n)}createEvnStrReact(t,n){return Ng(t,n)}}const _t=class _t extends j{constructor(t){super();h(this,"_components",this.dv(new Xl));h(this,"_viewerAttached",this.dv(new T));h(this,"_viewerDetached",this.dv(new T));h(this,"_attachedViewers",(()=>{const t=new Set;return this.d(this._viewerAttached.don(n=>{n.actived&&(this.activeViewer=n),n.ad(n.activedChanged.don(i=>{i&&t.has(n)&&(this.activeViewer=n)})),t.add(n)})),this.d(this._viewerDetached.don(n=>{t.delete(n),this.activeViewer==n&&(this.activeViewer=void 0)})),t})());h(this,"_activeViewer",this.disposeVar(V(void 0)));h(this,"_createdEvent",this.dv(new T));h(this,"_flushEvent",this.dv(new T));h(this,"_id");h(this,"_updateFuncReact",this.dv(V(void 0)));h(this,"_toDestroyFuncReact",this.dv(V(void 0)));h(this,"_parentID");t!==void 0&&(typeof t!="string"?console.warn(`对象id必须是字符串类型,当前id的类型是${typeof t},值为${t}`):t.trim()===""?console.warn("场景对象创建时的id不能是空字符串!"):t.trim()!==t&&console.warn(`id前后有空字符串!id: ${t}`)),this._id=t??ra(),this._initName();{const n=()=>{if(this.execOnceFuncStr)try{Function(`"use strict";return (${this.execOnceFuncStr})`)()(this)}catch(i){console.warn(`execOnceFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${i}`)}};n(),this.d(this.execOnceFuncStrChanged.don(n))}{const n=()=>{if(this.updateFuncStr)try{this.updateFunc=Function(`"use strict";return (${this.updateFuncStr})`)()}catch(s){console.warn(`updateFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${s}`)}};n(),this.d(this.updateFuncStrChanged.don(n));let i;this.d(()=>i&&i.destroy()),this.d(this.updateFuncChanged.don(()=>{i&&i.cancel(),this.updateFunc&&(i=i||Mu(),i.restart(void 0,s=>{this.updateFunc&&this.updateFunc(this,s)}))}))}{const n=()=>{try{this.toDestroyFunc=this.toDestroyFuncStr&&Function(`"use strict";return (${this.toDestroyFuncStr})`)()||void 0}catch(i){console.warn(`toDestroyFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${i}`),this.toDestroyFunc=void 0}};n(),this.d(this.toDestroyFuncStrChanged.don(n)),this.d(this.toDestroyEvent.don(()=>{this.toDestroyFunc&&this.toDestroyFunc(this)}))}}static getParentClass(){return Object.getPrototypeOf(this)}static register(t,n,i){bs(n.prototype,n.createDefaultProps);const s=n.createDefaultProps();n.defaults&&(n.defaults={});for(const o of Object.keys(s))n.defaults[o]=s[o]instanceof Ve?s[o].value:s[o];return this.innerRegister(t,n,i),t}static get envs(){return _t.context.environmentVariables}static get $refs(){return _t.context.refsManager.refs}get components(){return this._components}get viewerAttached(){return this._viewerAttached}get viewerDetached(){return this._viewerDetached}get attachedViewers(){return this._attachedViewers}get activeViewer(){return this._activeViewer.value}set activeViewer(t){this._activeViewer.value=t}get activeViewerChanged(){return this._activeViewer.changed}removefromViewer(t){this.attachedViewers.has(t)&&t.delete(this)}addToViewer(t){this.attachedViewers.has(t)||t.add(this)}registerAttachedObject(t){const n=new Map;this.d(()=>{n.size>0&&console.warn("viewerPropSceneObjects.size > 0")}),this.d(this._viewerAttached.don(i=>{const s=t(i);s&&n.set(i,s)})),this.d(this._viewerDetached.don(i=>{if(!n.has(i))return;const s=n.get(i);s&&(s.destroy(),n.delete(i))}))}createAttachedObject(t){const n=new Map,i=()=>{for(let[u,l]of n.entries())l.destroy();n.clear()},s=u=>{const l=t(u);l&&n.set(u,l)};for(let u of this.attachedViewers)s(u);const o=this._viewerAttached.don(s),a=this._viewerDetached.don(u=>{if(!n.has(u))return;const l=n.get(u);l&&(l.destroy(),n.delete(u))});return()=>{a(),o(),i()}}registerAttachedObjectForContainer(t){this.registerAttachedObject(n=>new j0(n,t))}get createdEvent(){return this._createdEvent}get flushEvent(){return this._flushEvent}flush(){this.flushEvent.emit()}get id(){return this._id}get typeName(){return this.constructor.type}_initName(){this.name=`${this.typeName}_${(""+this.id).slice(-4)}`}get defaultProps(){return this.constructor.createDefaultProps()}_innerGetJson(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 Ve?s=o.equals(this[i]):s=o===this[i],s||(n[i]=this[i])}else n[i]=this[i];return n}_innerSetJson(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 Ve&&(u=u.value),this[a]=u}}get completeJson(){return this._innerGetJson(!1)}get json(){return this._innerGetJson()}set json(t){this._innerSetJson(t)}get _jsonStr(){return JSON.stringify(this.json,null,4)}set _jsonStr(t){this._innerSetJson(JSON.parse(t))}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 parentID(){return this._parentID??this.id}set parentID(t){this._parentID=t}getESProperties(){return{defaultMenu:"general",basic:[],general:[new at([this,"typeName"],"类型",void 0,!1,!0),new at([this,"id"],"id",void 0,!1,!0),new at([this,"name"],"名称"),new Xh("JSON",()=>this._jsonStr,t=>t&&(this._jsonStr=t))],dataSource:[],location:[],coordinate:[],style:[],more:[new at([this,"ref"],"ref",void 0,!0),new ht([this,"extras"],"extras",{},void 0,!0)]}}};h(_t,"context",new V0),h(_t,"innerRegister",_t.context.register.bind(_t.context)),h(_t,"defaults",{}),h(_t,"createDefaultProps",()=>({name:"未命名场景对象",ref:void 0,extras:wt(void 0),devTags:qt(void 0),execOnceFuncStr:void 0,updateFuncStr:void 0,toDestroyFuncStr:void 0})),h(_t,"type",_t.register("ESSceneObject",_t,{chsName:"场景类",tags:["ESObjects"],description:""})),h(_t,"create",_t.context.createSceneObject.bind(_t.context)),h(_t,"createFromUrl",_t.context.createSceneObjectFromUrl.bind(_t.context)),h(_t,"createFromClass",_t.context.createSceneObjectFromClass.bind(_t.context)),h(_t,"createFromJson",_t.context.createSceneObjectFromJson.bind(_t.context)),h(_t,"destroySceneObject",_t.context.destroySceneObject.bind(_t.context)),h(_t,"getSceneObjById",_t.context.getSceneObjectById.bind(_t.context)),h(_t,"getSceneObj",_t.context.getSceneObject.bind(_t.context)),h(_t,"getEnv",_t.context.getEnv.bind(_t.context)),h(_t,"setEnv",_t.context.setEnv.bind(_t.context)),h(_t,"getStrFromEnv",_t.context.getStrFromEnv.bind(_t.context)),h(_t,"getSceneObjectById",_t.context.getSceneObjectById.bind(_t.context)),h(_t,"getSceneObject",_t.context.getSceneObject.bind(_t.context));let st=_t;class j0 extends j{constructor(e,t){super(),this.dv(new Se(e.subContainerChanged,()=>{if(e.subContainer)return t(e,e.subContainer)}))}}const oh=class oh extends j{constructor(t,n,i){super();h(this,"_id",++oh._accumId);this._name=t,this._description=n,this._callFunction=i}get id(){return this._id}get name(){return this._name}get description(){return this._description}get callFunction(){return this._callFunction}};h(oh,"_accumId",-1);let xs=oh;class Hh extends xs{constructor(e,t,n,i,s,o){super(e,t,o??(()=>{})),this._withUndefined=n,this._readonly=i,this._defaultValue=s}get withUndefined(){return this._withUndefined}get readonly(){return this._readonly}get defaultValue(){return this._defaultValue instanceof Function?this._defaultValue():this._defaultValue}}class Pn extends Hh{constructor(t,n,i,s,o,a,u){var c;const l=t instanceof Ve?"未获取到属性名":t[1].toString();super(n??l,a??l,s??!1,o??!1,i,u);h(this,"_propName");h(this,"_typeName");this._reactVar=t,this._propName=l;try{this._typeName=t instanceof Ve?"未获取到对象类型":(c=t[0])==null?void 0:c.typeName}catch{this._typeName="未获取到对象类型"}}get reactVar(){return this._reactVar}get propName(){return this._propName}get typeName(){return this._typeName}}class X extends Pn{get type(){return"BooleanProperty"}}class at extends Pn{get type(){return"StringProperty"}}class N extends Pn{get type(){return"NumberProperty"}}class Be extends Pn{get type(){return"Number2Property"}}class hn extends Pn{get type(){return"Number3Property"}}class dr extends Pn{get type(){return"Number4Property"}}class It extends dr{get type(){return"ColorProperty"}}class Mg extends N{get type(){return"DashPatternProperty"}}class Ei extends Pn{get type(){return"DateProperty"}}class qh extends Pn{get type(){return"DatesProperty"}}class ct extends xs{constructor(t,n,i){super(t??"",i??"");h(this,"_placement");this._placement=n}get type(){return"DivideProperty"}get placement(){return this._placement}}class dt extends Pn{constructor(e,t,n,i,s,o,a){super(e,n,i,s,o,a),this._enums=t}get type(){return"EnumProperty"}get enums(){return this._enums}}class Zi extends Pn{constructor(e,t,n,i,s,o,a){super(e,t,n,s,o,a),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"EvalStringProperty"}}class Yl extends Pn{constructor(e,t,n,i,s,o,a){super(e,t,n,s,o,a),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"LongStringProperty"}}class ot extends xs{constructor(t,n,i,s){const o=t??"Unnamed Function";super(o,s??o);h(this,"_paramsLength");this._func=n,this._defaultParams=i,this._paramsLength=this._func.length??0}get paramsLength(){return this._paramsLength}get defaultParams(){return this._defaultParams}get isOpen(){return this._defaultParams.length!==this._paramsLength}get func(){return this._func}run(...t){this._func(...t)}get type(){return"MethodProperty"}}class Oe extends Pn{constructor(e,t,n,i,s,o,a,u){super(e,i,s,o,a,u),this._step=t,this._minMax=n}get type(){return"NumberSliderProperty"}get minMax(){return this._minMax}get step(){return this._step}}class Ts extends hn{get type(){return"PositionProperty"}}class Jl extends hn{get type(){return"RotationProperty"}}function B0(r,e){const[t,n,i]=Su(r),[s,o,a]=Su(e),u=V((t()??0)/(s()??3e3)),l=()=>{const c=u.value,d=s()??3e3,f=t()??0;if(!Number.isFinite(d)||!Number.isFinite(f)){console.warn(`duration || currentTime error: duration: ${d} currentTime: ${f}`);return}Math.abs(c*d-f)<.001||(d<=0?u.value=0:u.value=f/d)};return u.dispose(i.disposableOn(l)),u.dispose(a.disposableOn(l)),u.dispose(u.changed.disposableOn(()=>{const c=u.value,d=s()??3e3,f=t()??0;if(!Number.isFinite(d)||!Number.isFinite(f)){console.warn(`duration || currentTime error: duration: ${d} currentTime: ${f}`);return}Math.abs(c*d-f)<.001||n(c*d)})),u}class $l extends xs{constructor(t,n,i,s,o,a){super(s??"播放器",a??"播放器");h(this,"_defaults",{playing:!1,ratio:0,loop:!1});this._playingReact=t,this._ratioReact=n,this._loopReact=i,o&&(this._defaults.playing=o.playing??this._defaults.playing,this._defaults.ratio=o.ratio??this._defaults.ratio,this._defaults.loop=o.loop??this._defaults.loop)}get type(){return"PlayerProperty"}get playingReact(){return this._playingReact}get ratioReact(){return this._ratioReact}get loopReact(){return this._loopReact}get defaults(){return this._defaults}}h($l,"createPlayingRatio",B0);class Rg extends xs{constructor(t,n,i,s,o,a){const u=s??"视角播放器";super(u,a??u);h(this,"_defaults",{playing:!1,loop:!1});this._playingReact=t,this._stopFn=n,this._loopReact=i,o&&(this._defaults.playing=o.playing??this._defaults.playing,this._defaults.loop=o.loop??this._defaults.loop)}get type(){return"ViewPlayerProperty"}get playingReact(){return this._playingReact}get loopReact(){return this._loopReact}get stopFn(){return this._stopFn}get defaults(){return this._defaults}}class Ie extends Pn{constructor(e,t,n,i,s,o,a){super(e,t,n,s,o,a),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"JsonArrayProperty"}}class ht extends Pn{constructor(e,t,n,i,s,o,a){super(e,t,n,s,o,a),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"JsonProperty"}}class Xh extends Hh{constructor(e,t,n,i,s,o){super(e,o??e,i??!1,s??!1),this._getFunc=t,this._setFunc=n}get getFunc(){return this._getFunc}get setFunc(){return this._setFunc}get type(){return"GetSetProperty"}}var K=(r=>(r.Place="place",r.BrushErase="brushErase",r.Translation="translation",r.Rotation="rotation",r.Scale="scale",r.DoublePointsAppend="doublePointsAppend",r.DoublePointsModify="doublePointsModify",r.CircularAppend="circularAppend",r.CircularInsert="circularInsert",r.LineStringAppend="lineStringAppend",r.LineStringInsert="lineStringInsert",r.ScatterAppend="scatterAppend",r.ScatterModify="scatterModify",r.VisibilityAppend="visibilityAppend",r.VisibilityModify="visibilityModify",r.HeightModify="heightModify",r.SinglePoint="singlePoint",r.DoublePoints="doublePoints",r))(K||{}),Lg=(r=>(r.DECIMAL_DEGREE="DECIMAL_DEGREE",r.DEGREES_DECIMAL_MINUTES="DEGREES_DECIMAL_MINUTES",r.SEXAGESIMAL_DEGREE="SEXAGESIMAL_DEGREE",r))(Lg||{});class z0{constructor(e){this.childPickedInfo=e}}class U0{constructor(e,t,n,i,s,o){this.pickResult=e,this.sceneObject=t,this.tilesetPickInfo=n,this.geojsonPickInfo=i,this.attachedInfo=s,this.screenPosition=o}assign(e){e!=null&&e.pickedResult&&(this.pickResult=e.pickedResult),e!=null&&e.sceneObject&&(this.sceneObject=e.sceneObject),e!=null&&e.tilesetPickInfo&&(this.tilesetPickInfo=e.tilesetPickInfo),e!=null&&e.geojsonPickInfo&&(this.geojsonPickInfo=e.geojsonPickInfo),e!=null&&e.attachedInfo&&(this.attachedInfo=e.attachedInfo),e!=null&&e.screenPosition&&(this.screenPosition=e.screenPosition)}}const we=class we extends st{constructor(t){super(t);h(this,"_editing",this.dv(V(!1)));h(this,"editingID");h(this,"editingBindMode","singlePoint");h(this,"_deprecated",[]);h(this,"_flyInEvent",this.dv(new T));h(this,"_flyToEvent",this.dv(new T));h(this,"_flyOverEvent",this.disposeVar(new T));h(this,"_pickedEvent",this.dv(new T));h(this,"_calcFlyToParamEvent",this.dv(new T));h(this,"_calcFlyInParamEvent",this.dv(new T));h(this,"useCalcFlyToParamInESObjectWithLocation",!1);jg(this,this.updateEditing)}supportEditingModes(){return this.constructor.supportEditingModes}get editing(){return this._editing.value}set editing(t){this._editing.value=t}get editingChanged(){return this._editing.changed}updateEditing(){}_deprecatedWarning(){const t=this._deprecated;for(let n=0;n<t.length;n++){const i=t[n];typeof i=="string"?Reflect.has(this,i+"Changed")&&this.d(this[i+"Changed"].don(()=>{console.warn(`注意:${this.typeName} 的 ${i} 属性下版本将会被移除!`)})):Object.keys(i).forEach(s=>{Reflect.has(this,s+"Changed")&&this.d(this[s+"Changed"].don(a=>{const u=i[s];typeof u=="string"?console.warn(`注意:${this.typeName} 的 ${s} 属性下版本将会被移除!`):Object.keys(u).forEach(l=>{a===l&&console.warn(`注意:${this.typeName} 的 ${s} 属性值 ${l} 下版本将会被移除,推荐使用属性值 ${u[l]}`)})}))})}}get flyInEvent(){return this._flyInEvent}flyIn(t=1){this._flyInEvent.emit(t,we._lastFlyInId)}get flyToEvent(){return this._flyToEvent}flyTo(t=1){this._flyToEvent.emit(t,we._lastFlyToId)}get flyOverEvent(){return this._flyOverEvent}get pickedEvent(){return this._pickedEvent}get calcFlyToParamEvent(){return this._calcFlyToParamEvent}calcFlyToParam(){this._calcFlyToParamEvent.emit()}get calcFlyInParamEvent(){return this._calcFlyInParamEvent}calcFlyInParam(){this._calcFlyInParamEvent.emit()}emptyFlyToParam(){this.flyToParam=void 0}emptyFlyInParam(){this.flyInParam=void 0}async getBoundSphere(t){return await t.getBoundSphere(this.id)}getESProperties(){const t={...super.getESProperties()};return{...t,general:[...t.general,new X([this,"show"],"是否显示",we.defaults.show),new X([this,"collision"],"开启碰撞",we.defaults.collision),new X([this,"allowPicking"],"允许拾取",we.defaults.allowPicking),new ot("保存观察视角",()=>this.calcFlyToParam(),[]),new ot("清空飞向参数",()=>this.emptyFlyToParam(),[]),new ot("保存飞入参数",()=>this.calcFlyInParam(),[]),new ot("清空飞入参数",()=>this.emptyFlyInParam(),[])],more:[...t.more,new ct("飞行定位"),new ot("飞向",n=>this.flyTo(n),[1],"flyTo"),new ht([this,"flyToParam"],"飞行参数",void 0,void 0,!0),new N([this,"flyToDistance"],"flyToDistance",void 0,!0),new N([this,"flyToHeading"],"flyToHeading",void 0,!0),new N([this,"flyToPitch"],"flyToPitch",void 0,!0),new N([this,"flyToFlyDuration"],"flyToFlyDuration",void 0,!0),new N([this,"flyToHDelta"],"flyToHDelta",void 0,!0),new N([this,"flyToPDelta"],"flyToPDelta",void 0,!0),new ct("飞入参数"),new ot("飞入",n=>this.flyIn(n),[1],"flyIn"),new ht([this,"flyInParam"],"飞入参数",void 0,void 0,!0)]}}get flyToDistance(){return this.flyToParam&&this.flyToParam.distance}get flyToHeading(){return this.flyToParam&&this.flyToParam.heading}get flyToPitch(){return this.flyToParam&&this.flyToParam.pitch}get flyToFlyDuration(){return this.flyToParam&&this.flyToParam.flyDuration}get flyToHDelta(){return this.flyToParam&&this.flyToParam.hDelta}get flyToPDelta(){return this.flyToParam&&this.flyToParam.pDelta}get flyToDistanceChanged(){return this.flyToParamChanged}get flyToHeadingChanged(){return this.flyToParamChanged}get flyToPitchChanged(){return this.flyToParamChanged}get flyToFlyDurationChanged(){return this.flyToParamChanged}get flyToHDeltaChanged(){return this.flyToParamChanged}get flyToPDeltaChanged(){return this.flyToParamChanged}set flyToDistance(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,distance:t}:void 0}set flyToHeading(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,heading:t}:void 0}set flyToPitch(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,pitch:t}:void 0}set flyToFlyDuration(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,flyDuration:t}:void 0}set flyToHDelta(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,hDelta:t}:void 0}set flyToPDelta(t){this.flyToParam=t!==void 0?{...this.flyToParam??we.defaultFlyToParam,pDelta:t}:void 0}};h(we,"createDefaultProps",()=>({...st.createDefaultProps(),show:!0,collision:!0,allowPicking:!1,flyToParam:Yt(void 0),flyInParam:Yt(void 0)})),h(we,"type",we.register("ESVisualObject",we,{chsName:"可视化对象",tags:["ESObjects"],description:"可视化对象"})),h(we,"supportEditingModes",[]),h(we,"defaultFlyToParam",{distance:0,heading:0,pitch:0,flyDuration:1,hDelta:0,pDelta:0}),h(we,"defaultFlyInParam",{position:[0,0,0],rotation:[0,0,0],flyDuration:1}),h(we,"_lastFlyInId",0),h(we,"_lastFlyToId",0);let Bt=we;class Fg extends j{constructor(){super();h(this,"_data",this.dv(V(void 0)))}set data(t){this._data.value=t}get data(){return this._data.value}get dataChanged(){return this._data.changed}}class Ag extends j{constructor(){super(...arguments);h(this,"_dragStartEvent",this.dv(new T));h(this,"_dragOverEvent",this.dv(new T));h(this,"_dragLeaveEvent",this.dv(new T));h(this,"_dropEvent",this.dv(new T))}dragStart(t){this._dragStartEvent.emit(t)}dragOver(t){this._dragOverEvent.emit(t)}dragLeave(t){this._dragLeaveEvent.emit(t)}drop(t){this._dropEvent.emit(t)}}function G0(r,e){e&&(Reflect.has(e,"editing")?e.editing=!0:Reflect.has(e,"positionEditing")&&(e.positionEditing=!0))}function W0(r){["Czm3DTiles","View","ESCameraView","OlView","GeoCameraController"].includes(r.typeName)||(Reflect.has(r,"editing")?r.editing=!0:Reflect.has(r,"positionEditing")&&(r.positionEditing=!0)),typeof r.execOnCreating=="function"&&r.execOnCreating()}function Kl(r,e){$n(r,"__treeItem")&&console.error("setSceneObjectTreeItem error!"),yi(r,"__treeItem",e)}function H0(r){return $n(r,"__treeItem")}function q0(r){if(!(r.startsWith("./")||r.startsWith("../")||r.startsWith("/")))return r;const e=document.createElement("a");e.href=r;const t=e.href;return e.remove(),t}function Yh(r){if(typeof r!="string")return!1;try{const e=JSON.parse(r);return typeof e=="object"&&e!==null}catch{return!1}}function X0(r){try{return new DOMParser().parseFromString(r,"application/xml").getElementsByTagName("parsererror").length===0}catch{return!1}}function Y0(r){return r instanceof Function?r():r}function kg(r,e){for(let t of r)if(e.includes(t))return!0;return!1}function Bu(r,e){const t=r,n=e;return t===void 0||t.length===0||n===void 0||n.length===0?!0:kg(t,n)}function J0(r){const e=setTimeout(()=>{r(),clearTimeout(e)})}function ca(r){let e=r%360;return e=e<0?360+e:e,e}function Vg(r){return ca(r+180)-180}function Zl(r,e,t){let n=ca(r),i=ca(e);Math.abs(n-i)>180&&(n<i?n+=360:i+=360);const s=n*(1-t)+i*t;return Vg(s)}function Jh(r,e,t,n){return n=n||[0,0,0],n[0]=Zl(r[0],e[0],t),n[1]=Zl(r[1],e[1],t),n[2]=Zl(r[2],e[2],t),n}function jg(r,e,t="editing"){const n=new j;r.ad(n);const i=e.bind(r);return n.ad(new Se(r.activeViewerChanged,()=>{const s=new j;let o=r.activeViewer;return o?(s.ad(r[`${t}Changed`].don(()=>{var a;r[`${t}`]?i():(a=(r.components.main??r).editingID)!=null&&a.includes("inner")&&r.activeViewer&&r.activeViewer.stopEditing()})),s.ad(o.editingEvent.don(a=>{if(a.objectIDs.includes(r.id)&&a.type==="end"){const u=r.components.main??r;u.editingID&&(a.editingID.includes(u.editingID)?(u.editingID=void 0,r[t]=!1):r[t]=!u.editingID.includes("outer"))}}))):s.ad(r[`${t}Changed`].don(()=>{r[`${t}`]=!1})),s})),r[`${t}`]&&i(),n}function Bg(r){var t;const e=((t=r.type)==null?void 0:t.toLowerCase())??"";switch(e){case"geometrycollection":return $0(r);case"topology":const n=r.objects,i=[];for(const s in n){const o=Ky.feature(r,n[s]);i.push(...o.features)}return{type:"FeatureCollection",features:i};case"feature":return{type:"FeatureCollection",features:[r]};case"featurecollection":return r;case"":default:return console.warn(`GeoJson数据转换可能有误,数据类型${e}`),{type:"FeatureCollection",features:Array.isArray(r.features)?r.features:[]}}}function $0(r,e){const t=[],n=r.geometries||[];function i(s,o={}){!s||!s.type||(s.type==="GeometryCollection"&&Array.isArray(s.geometries)?s.geometries.forEach(a=>i(a,o)):t.push({type:"Feature",geometry:s,properties:{...s.properties||{},...o}}))}return n.forEach(s=>i(s,{})),{type:"FeatureCollection",features:t}}function K0(r){const e=r.cloneNode(!0);e.style.position="fixed",e.style.visibility="hidden",e.style.pointerEvents="none",e.style.top="0",e.style.left="0",e.style.display="inline-block",document.body.appendChild(e);const t=e.getBoundingClientRect();return document.body.removeChild(e),{x:t.x,y:t.y,width:t.width,height:t.height}}class $h extends j{constructor(t){super();h(this,"_sceneObject",this.dv(V(void 0)));this._id=t,this.d(()=>{this._sceneObject.value=void 0});const n=st.getSceneObjById(this._id);n&&(this._sceneObject.value=n),this.d(st.context.sceneObjCreatedEvent.don(i=>{i.id===this._id&&(this._sceneObject.value=i)})),this.d(st.context.sceneObjToDestroyEvent.don(i=>{i.id===this._id&&(this._sceneObject.value=void 0)}))}get sceneObject(){return this._sceneObject.value}get sceneObjectChanged(){return this._sceneObject.changed}get id(){return this._id}}class Z0 extends j{constructor(t,n){super();h(this,"_sofi");this._id=t,this._sofi=this.dv(new $h(this._id));{const i=()=>{n.sceneObject=this._sofi.sceneObject};i(),this.d(this._sofi.sceneObjectChanged.don(i))}}}class zg extends j{constructor(){super();h(this,"_id",this.dv(V(void 0)));h(this,"_sceneObject",this.dv(V(void 0)));h(this,"_resetting",this.dv(new Se(this.idChanged,()=>{const{id:t}=this;if(t===void 0||t===""){this.sceneObject=void 0;return}return new Z0(t,this)})))}get id(){return this._id.value}get idChanged(){return this._id.changed}set id(t){this._id.value=t}get sceneObject(){return this._sceneObject.value}get sceneObjectChanged(){return this._sceneObject.changed}set sceneObject(t){this._sceneObject.value=t}get resetting(){return this._resetting}}class Q0 extends j{constructor(t,n,i,s){super();h(this,"_sceneObjectId",this.dv(new zg));this._id=t,this._startTimeStamp=n,this._duration=i,this._parent=s,this._sceneObjectId.id=this._id;const o=()=>{if(!this.player)return;const{currentTime:a=0}=this._parent,u=a-this._startTimeStamp;this.player.currentTime=Ul(u,0,this._duration)*(this.player.speed??1)};o(),this.d(this._parent.currentTimeChanged.don(o)),this.d(this.playerChanged.don(o))}get player(){return this._sceneObjectId.sceneObject instanceof Br?this._sceneObjectId.sceneObject:void 0}get playerChanged(){return this._sceneObjectId.sceneObjectChanged}}const tw=`
24
24
  用来配置子播放器,它是一个数组形式,数组的每个元素仍然是一个数组,形式是[子播放器的ID, 起始时间, 持续时间]。
25
25
  注意时间的单位是毫秒。
26
26
  示例如下:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "earthsdk3",
3
- "version": "3.8.0-beta.19",
3
+ "version": "3.8.0",
4
4
  "description": "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",
5
5
  "type": "module",
6
6
  "main": "./dist/earthsdk3.umd.cjs",