earthsdk3 3.11.2 → 3.11.3-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- (function(d,Re){typeof exports=="object"&&typeof module<"u"?Re(exports,require("js-binary-schema-parser"),require("topojson-client"),require("proj4"),require("@turf/turf")):typeof define=="function"&&define.amd?define(["exports","js-binary-schema-parser","topojson-client","proj4","@turf/turf"],Re):(d=typeof globalThis<"u"?globalThis:d||self,Re(d.EarthSDK3={},d.jsBinarySchemaParser,d.topojson,d.proj4,d.turf))})(this,(function(d,Re,ts,Sl,W){"use strict";var cm=Object.defineProperty;var dm=(d,Re,ts)=>Re in d?cm(d,Re,{enumerable:!0,configurable:!0,writable:!0,value:ts}):d[Re]=ts;var a=(d,Re,ts)=>dm(d,typeof Re!="symbol"?Re+"":Re,ts);function Cl(n){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const e in n)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(s,e,t.get?t:{enumerable:!0,get:()=>n[e]})}}return s.default=n,Object.freeze(s)}const Pd=Cl(ts),K=Cl(W);function Td(){var t;const n=((t=globalThis==null?void 0:globalThis.navigator)==null?void 0:t.userAgent)??"unknown";let s="Unknown";/Windows/.test(n)?s="Windows":/Macintosh/.test(n)?s="MacOS":/Linux/.test(n)?s="Linux":/Android/.test(n)?s="Android":/iOS|iPhone|iPad|iPod/.test(n)&&(s="iOS");let e="Unknown";return/x64|x86_64|Win64|WOW64/.test(n)?e="x64":/x86|i686|Win32/.test(n)?e="x86":/arm64|aarch64/.test(n)?e="arm64":/arm/.test(n)&&(e="arm"),{os:s.toLocaleLowerCase(),arch:e.toLocaleLowerCase()}}const Id=Date.now();function Pl(n){var l;const{os:s,arch:e}=Td(),t={version:n.version,commitdate:n.date,commitId:n.commitId,runningTime:(Date.now()-Id)/1e3/60|0,date:new Date().toLocaleString(),href:((l=globalThis==null?void 0:globalThis.location)==null?void 0:l.href)??"unknown",os:s,arch:e},r={method:"GET",headers:new Headers,redirect:"follow"},o=globalThis.encodeURIComponent(JSON.stringify(t));fetch(`https://account.bjxbsj.cn/api/product/record?product=EarthSDKJS&content=${o}`,r).then(h=>h.text()).then(h=>console.log(h)).catch(h=>console.log("error",h))}d.copyright=void 0;try{const n="earthsdk3",s="3.11.2",e="2026-08-14T01:44:25.000Z",t="北京西部世界科技有限公司",i="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="96c00e37006fd8a610c7b19b647f2b40a48e8846",l=((Date.now()-1786671865e3)/36e5).toFixed(1),h=`%c🌏 ${n}%c ${s}.${r.slice(0,8)}.${e} (距今${l}个小时)
1
+ (function(d,Re){typeof exports=="object"&&typeof module<"u"?Re(exports,require("js-binary-schema-parser"),require("topojson-client"),require("proj4"),require("@turf/turf")):typeof define=="function"&&define.amd?define(["exports","js-binary-schema-parser","topojson-client","proj4","@turf/turf"],Re):(d=typeof globalThis<"u"?globalThis:d||self,Re(d.EarthSDK3={},d.jsBinarySchemaParser,d.topojson,d.proj4,d.turf))})(this,(function(d,Re,ts,Sl,W){"use strict";var cm=Object.defineProperty;var dm=(d,Re,ts)=>Re in d?cm(d,Re,{enumerable:!0,configurable:!0,writable:!0,value:ts}):d[Re]=ts;var a=(d,Re,ts)=>dm(d,typeof Re!="symbol"?Re+"":Re,ts);function Cl(n){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const e in n)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(s,e,t.get?t:{enumerable:!0,get:()=>n[e]})}}return s.default=n,Object.freeze(s)}const Pd=Cl(ts),K=Cl(W);function Td(){var t;const n=((t=globalThis==null?void 0:globalThis.navigator)==null?void 0:t.userAgent)??"unknown";let s="Unknown";/Windows/.test(n)?s="Windows":/Macintosh/.test(n)?s="MacOS":/Linux/.test(n)?s="Linux":/Android/.test(n)?s="Android":/iOS|iPhone|iPad|iPod/.test(n)&&(s="iOS");let e="Unknown";return/x64|x86_64|Win64|WOW64/.test(n)?e="x64":/x86|i686|Win32/.test(n)?e="x86":/arm64|aarch64/.test(n)?e="arm64":/arm/.test(n)&&(e="arm"),{os:s.toLocaleLowerCase(),arch:e.toLocaleLowerCase()}}const Id=Date.now();function Pl(n){var l;const{os:s,arch:e}=Td(),t={version:n.version,commitdate:n.date,commitId:n.commitId,runningTime:(Date.now()-Id)/1e3/60|0,date:new Date().toLocaleString(),href:((l=globalThis==null?void 0:globalThis.location)==null?void 0:l.href)??"unknown",os:s,arch:e},r={method:"GET",headers:new Headers,redirect:"follow"},o=globalThis.encodeURIComponent(JSON.stringify(t));fetch(`https://account.bjxbsj.cn/api/product/record?product=EarthSDKJS&content=${o}`,r).then(h=>h.text()).then(h=>console.log(h)).catch(h=>console.log("error",h))}d.copyright=void 0;try{const n="earthsdk3",s="3.11.3-beta.1",e="2026-09-09T06:37:16.000Z",t="北京西部世界科技有限公司",i="地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",r="d983ef6edbe46624b3bae491829389ea6120258b",l=((Date.now()-1788935836e3)/36e5).toFixed(1),h=`%c🌏 ${n}%c ${s}.${r.slice(0,8)}.${e} (距今${l}个小时)
2
2
  %c${i?i+`
3
3
  `:""}当前网站正在使用${n},此软件版权归${t}所有
4
- `;d.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","96c00e37006fd8a610c7b19b647f2b40a48e8846")},get info(){return h},get date(){return"2026-08-14T01:44:25.000Z"},get author(){return"suplyang"},get version(){return"3.11.2"},get name(){return"earthsdk3"},get commitId(){return"96c00e37006fd8a610c7b19b647f2b40a48e8846"},print(){console.info(this.info,`
4
+ `;d.copyright=Object.freeze({get owner(){return"北京西部世界科技有限公司"},get ownerlink(){},get gituri(){return GITURI_&&GITURI_.replace("${commitId}","d983ef6edbe46624b3bae491829389ea6120258b")},get info(){return h},get date(){return"2026-09-09T06:37:16.000Z"},get author(){return"suplyang"},get version(){return"3.11.3-beta.1"},get name(){return"earthsdk3"},get commitId(){return"d983ef6edbe46624b3bae491829389ea6120258b"},print(){console.info(this.info,`
5
5
  font-size: 18px;
6
6
  font-weight: 1000;
7
7
  line-height: 1;
@@ -18,7 +18,7 @@
18
18
  color: rgb(0, 120, 215);
19
19
  padding-bottom: 2px;
20
20
  padding-left: 35px;
21
- `)}}),globalThis.g_XE3CopyRights=globalThis.g_XE3CopyRights||{},globalThis.g_XE3CopyRights[n]=d.copyright,globalThis.g_XE3SendProductUsageInfo=globalThis.g_XE3SendProductUsageInfo||!0,globalThis.g_XE3SendProductUsageInfo&&(setTimeout(()=>Pl(d.copyright),1e3*60),setInterval(()=>Pl(d.copyright),1440*60*1e3)),globalThis.g_earthsdk_copyright_print=globalThis.g_earthsdk_copyright_print??!0,globalThis.g_earthsdk_copyright_print&&d.copyright.print()}catch{console.warn("版本信息有误!")}const Tl=new Set;function is(n,s=n){Tl.has(s)||(Tl.add(s),console.warn(n))}function tn(n){const s=Rn(n),e=()=>s[0][s[1]],t=r=>{try{s[0][s[1]]=r}catch(o){is(`setValue error, obj(${s[0].constructor.name}) prop(${s[1]}) error(${o})`)}},i=s[0][s[2]];return[e,t,i]}function xd(){return!0}function Od(){throw new Error("throwOnDestroyed")}function Il(n){for(var s in n)typeof n[s]=="function"&&(n[s]=Od);n.isDestroyed=xd}const xr=class xr{constructor(){a(this,"_memId",++xr._lastMemId);a(this,"_disposers")}get __v_skip(){return!0}get memId(){return this._memId}get disposers(){return this._disposers||(this._disposers=[]),this._disposers}dispose(s){return this.disposers.push(s),s}d(s){return this.dispose(s)}disposeVar(s){return this.disposers.push(()=>s.destroy()),s}dv(s){return this.disposeVar(s)}tryDisposeVar(s){return this.disposers.push(()=>s.tryDestroy()),s}tdv(s){return this.tryDisposeVar(s)}autoDispose(s){return typeof s=="function"?this.dispose(s):this.disposeVar(s)}ad(s){return typeof s=="function"?this.dispose(s):this.disposeVar(s)}isDestroyed(){return!1}destroyImp(){}destroy(){if(this._toDestroyEvent&&this._toDestroyEvent.emit(),this.destroyImp(),this._disposers)try{const s=this._disposers,e=s.length;for(let t=e-1;t>=0;--t)s[t]();s.length=0,this._disposers=void 0}catch(s){console.error(`destroy get error! ${s}`)}return Il(this)}tryDestory(){if(!this.isDestroyed())return this.destroy()}};a(xr,"_lastMemId",-1);let b=xr,Fr;function xl(n){Fr=n}Object.defineProperties(b.prototype,{toDestroyEvent:{get(){if(this._toDestroyEvent===void 0){if(!Fr)throw new Error("Destroyable EventCtor not registered yet!");this._toDestroyEvent=this.disposeVar(new Fr)}return this._toDestroyEvent}}});class An{constructor(s,e,t=!1){a(this,"_freeElements");a(this,"_usedElementsCount");a(this,"_usedElements");a(this,"_nextCreateID");a(this,"_scratchObjs");this._createDefaultFunc=s,this._destroyFunc=e,this._freeElements=[],this._usedElementsCount=0,this._nextCreateID=1,this._scratchObjs=[],t&&(this._usedElements=[])}get usedElementsCount(){return this._usedElementsCount}get freeElementsCount(){return this._freeElements.length}_getCreateID(){return this._nextCreateID++}_create(){let s;return this._freeElements.length>0?s=this._freeElements.pop():s=this._createDefaultFunc&&this._createDefaultFunc()||{},s._cid=this._getCreateID(),s}create(){return this._create()}multiCreate(s){this._scratchObjs.length=0;for(let e=0;e<s;++e)this._scratchObjs.push(this._create());return this._scratchObjs}_destroy(s){this._destroyFunc&&this._destroyFunc(s),s._cid=void 0}destroy(...s){const e=s.length;for(let t=0;t<e;++t)this._destroy(s[t])}}function Dd(){return{item:void 0,previous:void 0,next:void 0}}function Fd(n){n.item=void 0,n.previous=void 0,n.next=void 0}const Ol=new An(Dd,Fd,!0);function kr(n,s,e){const t=Ol.create();return t.item=n,t.previous=s,t.next=e,t}function Dl(n){if(!n)throw new Error("node is undefined!");Ol.destroy(n)}function Mr(n,s){s.previous&&s.next?(s.previous.next=s.next,s.next.previous=s.previous):s.previous?(s.previous.next=void 0,n.tail=s.previous):s.next?(s.next.previous=void 0,n.head=s.next):(n.head=void 0,n.tail=void 0),s.next=void 0,s.previous=void 0}class Fl{constructor(s){a(this,"head");a(this,"tail");a(this,"_length");const{needLength:e}=s||{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(s){typeof this._length=="number"&&(this._length=s)}get length(){return this._length}get empty(){return!this.head}*[Symbol.iterator](){let s=this.head;for(;s;)yield s,s=s.next}remove(s){if(!s)throw new Error("node is undefined!");Mr(this,s),this._decrementLength(),Dl(s)}getNode(s){let e=this.head;for(;e!==null;){if(!e)throw new Error("current is undefined!");if(e.item===s)return e;e=e.next}}moveAfter(s,e){if(s!==e){Mr(this,e);var t=s.next;s.next=e,this.tail===s?this.tail=e:t&&(t.previous=e),e.next=t,e.previous=s}}moveBefore(s,e){if(s!==e){Mr(this,e);var t=s.previous;s.previous=e,this.head===s?this.head=e:t&&(t.next=e),e.previous=t,e.next=s}}insertBefore(s,e){const t=kr(e,s.previous,s);return s.previous&&(s.previous.next=t),s.previous=t,this.head===s&&(this.head=t),this._incrementLength(),t}insertAfter(s,e){const t=kr(e,s,s.next);return s.next&&(s.next.previous=t),s.next=t,this.tail===s&&(this.tail=t),this._incrementLength(),t}_setFirstNode(s){if(this.head||this.tail)throw new Error("_setFirstNode error!");const e=kr(s,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(s){return this.tail?this.insertAfter(this.tail,s):this._setFirstNode(s)}pop(){if(!this.tail)throw new Error("DoublyLinkedList is empty!");const s=this.tail.item;return this.remove(this.tail),s}shift(){if(!this.head)throw new Error("DoublyLinkedList is empty!");const s=this.head.item;return this.remove(this.head),s}unshift(s){return this.head?this.insertBefore(this.head,s):this._setFirstNode(s)}removeAll(){let s=this.head;for(;s;){const e=s.next;Dl(s),s=e}this.head=void 0,this.tail=void 0,this._setLength(0)}}function kd(){return{func:void 0,scope:void 0,_hasRemoved:!1,_once:!1}}function Md(n){n.func=void 0,n.scope=void 0,n._hasRemoved=!1,n._once=!1}const vi=new An(kd,Md,!0);class Ar{constructor(){a(this,"__dll");a(this,"__currentListenerStack")}get _dll(){return this.__dll=this.__dll??new Fl({needLength:!0}),this.__dll}_pushCurrentListener(s){this.__currentListenerStack?Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.push(s):this.__currentListenerStack=[this.__currentListenerStack,s]:this.__currentListenerStack=s}_popCurrentListener(){if(this.__currentListenerStack)Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.pop():this.__currentListenerStack=void 0;else throw new Error("cannot pop!")}_hasCurrentListener(s){return this.__currentListenerStack?Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.indexOf(s)!==-1:this.__currentListenerStack===s:!1}do(...s){if(this.__dll&&!this._dll.empty){let e=this._dll.head;for(;e;){const t=e.item;t._hasRemoved||(this._pushCurrentListener(t),t.func.call(t.scope,...s),this._popCurrentListener());const i=e.next;t._once&&!t._hasRemoved&&(this.remove(e),e=void 0),e&&this._clearHasRemoved(e),e=i}}}get empty(){if(!this.__dll||this._dll.empty)return!0;let s=!0,e=this._dll.head;for(;e;){if(!e.item._hasRemoved){s=!1;break}e=e.next}return s}isHandlerValid(s){return!s.item._hasRemoved}nextHandler(s){if(!s.item._hasRemoved)throw new Error("handler has removed!");let e=s.next;for(;e&&e.item._hasRemoved;)e=e.next;return e}prevHandler(s){if(!s.item._hasRemoved)throw new Error("handler has removed!");let e=s.previous;for(;e&&e.item._hasRemoved;)e=e.previous;return e}moveAfter(s,e){if(s.item._hasRemoved||e.item._hasRemoved)throw new Error("handler or nextHandler has removed!");return this._dll.moveAfter(s,e)}moveBefore(s,e){if(s.item._hasRemoved||e.item._hasRemoved)throw new Error("handler or prevHandler has removed!");return this._dll.moveBefore(s,e)}insertBefore(s,e,t,i=!1){if(s.item._hasRemoved)throw new Error("handler has removed!");const r=vi.create();return r.func=e,r.scope=t,r._once=i,this._dll.insertBefore(s,r)}insertAfter(s,e,t,i=!1){if(s.item._hasRemoved)throw new Error("handler has removed!");const r=vi.create();return r.func=e,r.scope=t,r._once=i,this._dll.insertAfter(s,r)}_clearHasRemoved(s){s.item._hasRemoved&&!this._hasCurrentListener(s.item)&&(vi.destroy(s.item),this._dll.remove(s))}remove(s){if(!s.item||s.item._hasRemoved)throw new Error("handler has removed!");this._hasCurrentListener(s.item)?s.item._hasRemoved=!0:(vi.destroy(s.item),this._dll.remove(s))}removeAll(){if(this.__dll&&!this._dll.empty){let s=this._dll.head;for(;s;){const e=s.next;s.item._hasRemoved||this.remove(s),s=e}}}destroy(){if(!this.__dll)return;let s=this._dll.head;for(;s;){const e=s.next,t=s;this._hasCurrentListener(t.item)||(console.warn("Event has remove item that on current stack!"),console.warn(`${t.item.func.toString()}`)),vi.destroy(t.item),this._dll.remove(t),s=e}this.__dll=void 0,this.__currentListenerStack=void 0}push(s,e,t=!1){const i=vi.create();return i.func=s,i.scope=e,i._once=t,this._dll.push(i)}pop(){const s=this.tail;if(!s)throw new Error("pop error!");this.remove(s)}shift(){const s=this.head;if(!s)throw new Error("shift error!");this.remove(s)}unshift(s,e,t=!1){const i=vi.create();return i.func=s,i.scope=e,i._once=t,this._dll.unshift(i)}get tail(){let s=this._dll.tail;for(;s&&s.item._hasRemoved;)s=s.previous;return s}get head(){let s=this._dll.head;for(;s&&s.item._hasRemoved;)s=s.previous;return s}}class sn{constructor(){a(this,"_listenerHandler");a(this,"_cid")}_reset(s,e){this._listenerHandler=s,this._cid=e}clone(s){return s=s??new sn,s._reset(this._listenerHandler,this._cid),s}get valid(){if(typeof this._listenerHandler<"u"&&typeof this._cid=="number"){const s=this._listenerHandler._cid;if(typeof s<"u"&&this._cid===s)return!0}return!1}}class jr extends sn{}class v extends b{constructor(){super(...arguments);a(this,"__pipe");a(this,"beforeCallback");a(this,"afterCallback")}get _pipe(){return this.__pipe=this.__pipe??new Ar,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,t,i=!1,r){const o=i?this._pipe.unshift(e,t,!1):this._pipe.push(e,t,!1);return r=r??new jr,r._reset(o,o._cid),r}disposableOn(e,t,i=!1,r){const o=this.on(e,t,i,r);return()=>{o.valid&&this.off(o)}}don(e,t,i=!1,r){return this.disposableOn(e,t,i,r)}disposableWeakOn(e,t,i=!1,r){const o=new b,l=()=>{!o.isDestroyed()&&o.destroy()};return o.dispose(this.disposableOn(e,t,i,r)),o.dispose(this.toDestroyEvent.disposableOn(l)),l}dwon(e,t,i=!1,r){return this.disposableWeakOn(e,t,i,r)}once(e,t,i=!1,r){const o=i?this._pipe.unshift(e,t,!0):this._pipe.push(e,t,!0);return r=r??new jr,r._reset(o,o._cid),r}disposableOnce(e,t,i=!1,r){const o=this.once(e,t,i,r);return()=>o.valid&&this.off(o)}donce(e,t,i=!1,r){const o=this.once(e,t,i,r);return()=>o.valid&&this.off(o)}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||(is("The event is destroying with listeners!"),this._pipe.removeAll())}}xl(v);function ss(n,s){return s=s??new sn,s._reset(n,n._cid),s}class Ad{constructor(){a(this,"__pipe")}get _pipe(){return this.__pipe=this.__pipe??new Ar,this.__pipe}get empty(){return!this.__pipe||this._pipe.empty}do(...s){return this._pipe.do(...s)}isHandlerValid(s){return s.valid?this._pipe.isHandlerValid(s._listenerHandler):!1}moveAfter(s,e){if(!s.valid||!e.valid)throw new Error("handler or nextHander is not valid!");return this._pipe.moveAfter(s._listenerHandler,e._listenerHandler)}moveBefore(s,e){if(!s.valid||!e.valid)throw new Error("handler or nextHander is not valid!");return this._pipe.moveAfter(s._listenerHandler,e._listenerHandler)}insertBefore(s,e,t,i=!1,r){if(!s.valid)throw new Error("handler is not valid!");const o=this._pipe.insertBefore(s._listenerHandler,e,t,i);return ss(o,r)}insertAfter(s,e,t,i=!1,r){if(!s.valid)throw new Error("handler is not valid!");const o=this._pipe.insertAfter(s._listenerHandler,e,t,i);return ss(o,r)}remove(s){if(!s.valid)throw new Error("handler is not valid!");return this._pipe.remove(s._listenerHandler)}removeAll(){return this._pipe.removeAll()}push(s,e,t=!1,i){const r=this._pipe.push(s,e,t);return ss(r,i)}pop(){return this._pipe.pop()}shift(){return this._pipe.shift()}unshift(s,e,t=!1,i){const r=this._pipe.unshift(s,e,t);return ss(r,i)}getTail(s){const e=this._pipe.tail;if(e)return ss(e,s)}getHead(s){const e=this._pipe.head;if(e)return ss(e,s)}}class ge extends b{constructor(e,t,i){super();a(this,"_changed");a(this,"_value");a(this,"_oldValue");a(this,"toChangeFunc");this._equalsFunc=t,this._assignFunc=i,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 v)),this._changed}forceChange(){this._changed&&this._changed.emit(this._value,this._value)}}function w(n,s,e){return new ge(n,s,e)}function F(n){return new ge(n,(s,e)=>s.length!==e.length?!1:s.every((t,i)=>t===e[i]),(s,e)=>{const t=e||new Array(s.length);return t.length=s.length,s.forEach((i,r)=>t[r]=i),t})}function q(n){return w(n,(s,e)=>s===void 0||e===void 0?s===void 0&&e===void 0:s.length!==e.length?!1:s.every((t,i)=>t===e[i]),(s,e)=>{if(!s)return;const t=e||new Array(s.length);return t.length=s.length,s.forEach((i,r)=>t[r]=i),t})}function jn(n,s,e){return w(n,(t,i)=>t.length!==i.length?!1:t.every((r,o)=>s&&s(r,i[o])||r===i[o]),(t,i)=>{const r=i||new Array(t.length);return r.length=t.length,t.forEach((o,l)=>{r[l]=e?e(o):o}),r})}function Yt(n,s,e){return w(n,(t,i)=>t===void 0||i===void 0?t===void 0&&i===void 0:t.length!==i.length?!1:t.every((r,o)=>s&&s(r,i[o])||r===i[o]),(t,i)=>{if(!t)return;const r=i||new Array(t.length);return r.length=t.length,t.forEach((o,l)=>{r[l]=e?e(o):o}),r})}function B(n){return new ge(n,(s,e)=>s===e||s!==void 0&&e!==void 0&&JSON.stringify(s)===JSON.stringify(e),(s,e)=>{if(s!==void 0)return JSON.parse(JSON.stringify(s))})}function te(n){return new ge(n,(s,e)=>s===e||s!==void 0&&e!==void 0&&JSON.stringify(s)===JSON.stringify(e),(s,e)=>{if(s!==void 0)return JSON.parse(JSON.stringify(s))})}function jd(n){return new ge(n,(s,e)=>{if(s===e)return!0;if(s===void 0||e===void 0)return!1;const t=Object.keys(s),i=Object.keys(e);return t.length!==i.length?!1:t.every((r,o)=>r===i[o]&&s[r]===e[r])},(s,e)=>s&&{...s})}function Rd(n){return new ge(n,(s,e)=>{if(s===e)return!0;if(s===void 0||e===void 0)return!1;const t=Object.keys(s),i=Object.keys(e);return t.length!==i.length?!1:t.every((r,o)=>r===i[o]&&s[r]===e[r])},(s,e)=>s&&{...s})}function Nd(n){return jn(n,(s,e)=>s.every((t,i)=>t===e[i]),s=>[...s])}function Rr(n){return Yt(n,(s,e)=>s.every((t,i)=>t===e[i]),s=>[...s])}function Ld(n){return jn(n,(s,e)=>JSON.stringify(s)===JSON.stringify(e),s=>JSON.parse(JSON.stringify(s)))}function Vd(n){return Yt(n,(s,e)=>JSON.stringify(s)===JSON.stringify(e),s=>JSON.parse(JSON.stringify(s)))}function Nt(n){return Rr(n)}function Nr(n){return Yt(n,(s,e)=>s.length===e.length&&s.every((t,i)=>t.every((r,o)=>r===e[i][o])),s=>s.map(e=>[...e]))}function zd(n){return Yt(n,(s,e)=>s.length===e.length&&s.every((t,i)=>t.every((r,o)=>r===e[i][o])),s=>s.map(e=>[...e]))}function Rn(n){const s=n instanceof ge?[n,"value","changed"]:[...n];return s[2]=s[2]||s[1]+"Changed",s}function Lr(n,s,e,t=!1){s[2]=s[2]||s[1]+"Changed";const i=()=>{const r=s[0][s[1]];e?n[0][n[1]]=e(r):n[0][n[1]]=r};return i(),t?s[0][s[2]].disposableWeakOn(i):s[0][s[2]].disposableOn(i)}function Ud(n,s,e,t,i=!1){const r=Lr(n,s,e,i),o=Lr(s,n,t,i);return()=>(r(),o())}function _(n,s,e,t=!1){const i=n instanceof ge?[n,"value","changed"]:n,r=s instanceof ge?[s,"value","changed"]:s;return Lr(i,r,e,t)}function D(n,s,e,t,i=!1){const r=Rn(n),o=Rn(s);return Ud(r,o,e,t,i)}function Bd(n,s,e,t=!1){const[i]=tn(s);return D(n,s,r=>r??e,r=>{if(!(r===e&&i()===void 0))return r},t)}function ns(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){var s=Math.random()*16|0,e=n==="x"?s:s&3|8;return e.toString(16)})}function Nn(n,s){if(!globalThis||!globalThis.setTimeout||!globalThis.clearTimeout)throw new Error("目前只适合在浏览器中使用!");let e=0;function t(){e>0&&(globalThis.clearTimeout(e),e=0)}function i(...r){t(),e=globalThis.setTimeout(n,s,...r)}return[i,t]}function Vr(n,s,...e){const t=setInterval(n,s,...e);return()=>clearInterval(t)}function zr(n,s,...e){const t=setTimeout(n,s,...e);return()=>clearTimeout(t)}function Ln(n,...s){let e;const t=()=>{const i=performance.now();n(i,...s),e=requestAnimationFrame(t)};return t(),()=>typeof e<"u"&&(cancelAnimationFrame(e),e=void 0)}function rs(n,...s){let e;return e=requestAnimationFrame(()=>{const i=performance.now();n(i,...s)}),()=>typeof e<"u"&&(cancelAnimationFrame(e),e=void 0)}function nn(n,...s){let e=!1,t;return new Promise((i,r)=>{t=r,i()}).then(()=>{!e&&n(...s)}).catch(i=>{console.error(i)}),()=>(e=!0)&&t&&(t("nextMicroTask cancelled!"),t=void 0)}class Vn extends v{constructor(e,t,...i){super();a(this,"_cancellFunc");this._nextFunc=e,this.dispose(()=>{this._cancellFunc&&(this._cancellFunc(),this._cancellFunc=void 0)}),i.forEach(r=>this.dispose(r[t?"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 Ur extends Vn{constructor(...s){super(nn,!1,...s)}}function Wd(...n){return new Ur(...n)}class Hd extends Vn{constructor(...s){super(nn,!0,...s)}}function $d(...n){return new Ur(...n)}class zn extends Vn{constructor(...s){super(rs,!1,...s)}}function oe(...n){return new zn(...n)}function Gd(n,s){return new zn(...n).don(s())}class kl extends Vn{constructor(...s){super(rs,!0,...s)}}function Jd(...n){return new kl(...n)}function de(n,s,e={time:"don",immediate:!1}){const t=new zn(...Array.isArray(n)?n:[n]),i=t[e.time??"don"](s);return(e.immediate??!1)&&s(),()=>{i(),t.destroy()}}function rn(n){let s;if(typeof n.next=="function")s=n;else if(typeof n[Symbol.iterator]=="function")s=n[Symbol.iterator]();else throw new Error("iteratorOrIterable error!");return s}function Br(n,s){let e=!1;const t=rn(n);let i=-1;for(;;){const{done:r,value:o}=t.next();if(r)break;if(s(o,++i)){e=!0;break}}return e}function Wr(n,s){return!Br(n,(t,i)=>!s(t,i))}function on(n,s,e,t){const i=n;if(!i[s]){const r=t(),o=Object.fromEntries(Object.entries(r).filter(([l,h])=>{const c=Object.getPrototypeOf(e),u=l in c;if(u){const p=h instanceof ge?h.value:h;n[l]=p}return!u}).map(([l,h])=>h instanceof ge?[l,h]:[l,Array.isArray(h)?q(h):w(h)]));i[s]=o}return i[s]}function Kt(n,s){var t;const e=Symbol(`${(t=n==null?void 0:n.constructor)==null?void 0:t.name}-createDefaultProps`);n.constructor.__xbsj_dpSymbol=e,n.constructor.__xbsj_createDefaultProps=s;for(let[i,r]of Object.entries(s()))if(!Reflect.has(n,i)){const o=function(l){var u,p;if(l[e])return;const h=[];let c=Object.getPrototypeOf(l);for(;c;)h.push(c),c=Object.getPrototypeOf(c);h.reverse();for(let g of h){const m=(u=g.constructor)==null?void 0:u.__xbsj_dpSymbol;if(!m)continue;const y=(p=g.constructor)==null?void 0:p.__xbsj_createDefaultProps;y&&on(l,m,g,y)}};Object.defineProperties(n,{[i]:{get(){return o(this),on(this,e,n,s)[i].value},set(l){o(this);const h=on(this,e,n,s)[i];if(!h){console.error("!propObj");debugger}h.value=l}},[`${i}Changed`]:{get(){return o(this),on(this,e,n,s)[i].changed}},[`${i}React`]:{get(){return o(this),on(this,e,n,s)[i]}}})}}const an=new WeakMap;function vt(n,s,e){an.has(n)||an.set(n,{});const t=an.get(n);t[s]=e}function Ne(n,s){return an.has(n)?an.get(n)[s]:void 0}function _t(n,s){const e=rn(n);let t=0;for(;;){const{done:i,value:r}=e.next();if(i)break;s(r,t++)}}function ln(n,s,e){const t=rn(n);let i=e,r=0;for(;;){const{done:o,value:l}=t.next();if(o)break;i=s(i,l,r++)}return i}const qd=n=>++n;function Hr(n){return ln(n,qd,0)}function Lt(n){return ln(n,(s,e)=>s>e?s:e,Number.NEGATIVE_INFINITY)}function Zt(n){return ln(n,(s,e)=>s<e?s:e,Number.POSITIVE_INFINITY)}function Ml(n,s){let e=n;for(let t of s)e=e[t];return e}function Xd(n,s,e){if(s.length===0)throw new Error("props的数量必须大于0");const t=s.length-1,i=s[t];let r=n;for(let o=0;o<t;++o){const l=s[o];typeof r[l]>"u"&&(r[l]={}),r=r[l]}r[i]=e}function*_i(n,s){const e=rn(n);for(;;){const{done:t,value:i}=e.next();if(t)break;yield Ml(i,s)}}class hn extends b{constructor(){super();a(this,"_innerObj");a(this,"_toChangeEvent");a(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 v),this._toChangeEvent}get changedEvent(){return this._changedEvent||(this._changedEvent=new v),this._changedEvent}_resetArray(e){this._toChangeEvent&&this._toChangeEvent.emit([{start:0,deleteCount:this._innerObj.length,items:e}],this);const{length:t}=e;this._innerObj.length=t;for(let i=0;i<t;++i)this._innerObj[i]=e[i];this._changedEvent&&this._changedEvent.emit(this)}splice(e,t,...i){const{length:r}=this._innerObj;e=e>this._innerObj.length?this._innerObj.length:e,e>r?e=r:e<0&&(e+=r,e<0&&(e=0));const o=this._innerObj.length-e;if(t>o?t=o:t<0&&(t=0),arguments.length===1){this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:this._innerObj.length-e,items:[]}],this);const l=this._innerObj.splice(e);return this._changedEvent&&this._changedEvent.emit(this),l}else if(arguments.length===2){this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:t,items:[]}],this);const l=this._innerObj.splice(e,t);return this._changedEvent&&this._changedEvent.emit(this),l}else{this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:t,items:i}],this);const l=this._innerObj.splice(e,t,...i);return this._changedEvent&&this._changedEvent.emit(this),l}}pop(){if(this._innerObj.length===0)return;if(this._toChangeEvent){const t=this._innerObj.length-1,i=1,r=[];this._toChangeEvent.emit([{start:t,deleteCount:i,items:r}],this)}const e=this._innerObj.pop();return this._changedEvent&&this._changedEvent.emit(this),e}push(...e){if(this._toChangeEvent){const i=this._innerObj.length;this._toChangeEvent.emit([{start:i,deleteCount:0,items:e}],this)}const t=this._innerObj.push(...e);return this._changedEvent&&this._changedEvent.emit(this),t}get length(){return this._innerObj.length}set length(e){if(e<0)throw new Error("value < 0");const{length:t}=this._innerObj;if(t!==e){if(this._toChangeEvent){let i,r,o;t>e?(i=e,r=t-e,o=[]):(i=t,r=0,o=new Array(e-t)),this._toChangeEvent.emit([{start:i,deleteCount:r,items:o}],this)}this._innerObj.length=e,this._changedEvent&&this._changedEvent.emit(this)}}get(e){return this._innerObj[e]}set(e,t){const{length:i}=this._innerObj;if(e<0||e>=i)throw new Error("index < 0 || index >= length");this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:1,items:[t]}],this),this._innerObj[e]=t,this._changedEvent&&this._changedEvent.emit(this)}indexOf(e){return this._innerObj.indexOf(e)}[Symbol.iterator](){return this._innerObj[Symbol.iterator]()}}function $r(n,s,...e){let t=n;for(let i of e){if(!t[i])if(s)t[i]={};else return;t=t[i]}return t}function Yd(n,s,e){typeof e>"u"&&(s.endsWith(".gltf")?e="model/gltf+json":s.endsWith(".bin")?e="application/octet-stream":s.endsWith(".glb")?e="model/gltf-binary":s.endsWith(".jpg")||s.endsWith(".jpeg")?e="image/jpeg":s.endsWith(".png")?e="image/png":s.endsWith(".glsl")?e="text/plain":s.endsWith(".json")?e="application/json":s.endsWith(".b3dm")||s.endsWith(".i3dm")||s.endsWith("pnts")||s.endsWith("cmpt")?e="application/octet-stream":console.warn(`save ${s}: MimeType无法确定!`));const t=new Blob([n],{type:e||""});let i=URL.createObjectURL(t);var r=document.createElement("a"),o=new MouseEvent("click");r.download=s,r.href=i,r.dispatchEvent(o),URL.revokeObjectURL(i)}function Kd(n,s){const e=document.createElement("a"),t=new MouseEvent("click");e.download=s||"下载",e.href=n,e.dispatchEvent(t)}function Zd(){return new Promise((n,s)=>{const e=performance.now();requestAnimationFrame(t=>n(t>e))})}const Un=n=>{let s,e;return e=t=>{t=performance.now(),s=requestAnimationFrame(e),n(t)},s=requestAnimationFrame(e),()=>{cancelAnimationFrame(s)}};function Gr(n,s,e=Un){let t=Number.NEGATIVE_INFINITY,i;function r(h){h-t>s&&i&&(n(...i),i=void 0,t=h)}const o=e&&e(r)||void 0;function l(...h){i=h}return[l,o]}const Al=[];function jl(n,s,e){if(Al.includes(n)){console.warn(`_loadJs ${n} has loaded before!`),s&&s();return}var t=document.getElementsByTagName("head")[0],i=document.createElement("script");i.setAttribute("type","text/javascript"),i.setAttribute("src",n),i.onload=i.onreadystatechange=function(){this.readyState&&this.readyState!=="complete"||(Al.push(n),s&&s(),i.onload=i.onreadystatechange=null)},i.onerror=(r,o,l,h,c)=>{e(c)},t.appendChild(i)}function Jr(n,s=!0){if(s){const e=globalThis.L;globalThis.L&&(globalThis.L=void 0);const t=globalThis.define;return globalThis.define&&(globalThis.define=void 0),new Promise((i,r)=>{jl(n,i,r)}).then(()=>(globalThis.define=t,globalThis.L=e,Promise.resolve()))}else return new Promise((e,t)=>{jl(n,e,t)})}async function Rl(n,s=""){return new Promise((e,t)=>{var i=new Image;i.crossOrigin=s,i.src=n,i.onload=()=>e(i),i.onerror=r=>t(r)})}class Qd extends b{constructor(s){super(),this._owner=s}get owner(){return this._owner}}function Nl(n,s){if(n.length%3!==0)throw new Error("positions.length % 3 !== 0");const e=n.length/3;function*t(o){for(let l=0;l<e;++l)yield n[l*3+o]}const i=(s==null?void 0:s.min)??[NaN,NaN,NaN],r=(s==null?void 0:s.max)??[NaN,NaN,NaN];return i[0]=Zt(t(0))??NaN,i[1]=Zt(t(1))??NaN,i[2]=Zt(t(2))??NaN,r[0]=Lt(t(0))??NaN,r[1]=Lt(t(1))??NaN,r[2]=Lt(t(2))??NaN,{min:i,max:r}}async function eu(n,s=fetch){const e=await s(n);return e.ok?await e.arrayBuffer():void 0}class tu extends b{constructor(e){super();a(this,"_map",new Map);a(this,"_array",[]);a(this,"_createEvent",this.dv(new v));a(this,"_updateEvent",this.dv(new v));a(this,"_destroyEvent",this.dv(new v));this._idFunc=e,this.d(()=>{this._array.length>0&&console.warn("EventFromArrayUpdating: destroy with non-empty array, will trigger destroy event for all items")})}get createEvent(){return this._createEvent}get updateEvent(){return this._updateEvent}get destroyEvent(){return this._destroyEvent}update(e,t={toDel:!0,toAdd:!0,toUpdate:!0}){const{toDel:i=!0,toAdd:r=!0,toUpdate:o=!0}=t;for(let h of this._array)h.updated=!1;const l=e.length;for(let h=0;h<l;++h){const c=e[h],u=this._idFunc(c,h);if(this._map.has(u)){if(o){const p=this._map.get(u);if(!p)throw new Error("!edwi");p.updated=!0,p.item=c,this._updateEvent.emit(u,c)}}else if(r){const p={item:c,id:u,updated:!0};this._array.push(p),this._map.set(u,p),this._createEvent.emit(u,c)}}if(i){const h=this._array.filter(c=>!c.updated);this._array=this._array.filter(c=>c.updated);for(let c of h)this._map.delete(c.id);for(let c of h)this._destroyEvent.emit(c.id,c.item)}}}function Bn(n,...s){if(n>16)throw new Error("length > 16");const e=new Array(n);for(let t=0;t<n;++t)e[t]=s[t]??0;return e}class Wn{constructor(s,e){this._xyzw=s,this._length=e}set 0(s){this._xyzw.x=s}set 1(s){this._xyzw.y=s}set 2(s){this._xyzw.z=s}set 3(s){this._xyzw.w=s}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 iu(n){return new Wn(n,2)}function su(n){return new Wn(n,3)}function nu(n){return new Wn(n,4)}class ru{constructor(s,e,t,i){this._array=s,this._length=e,this._start=t,this._stride=i}get length(){return this._length}set 0(s){this._array[this._start+0*this._stride]=s}set 1(s){this._array[this._start+1*this._stride]=s}set 2(s){this._array[this._start+2*this._stride]=s}set 3(s){this._array[this._start+3*this._stride]=s}set 4(s){this._array[this._start+4*this._stride]=s}set 5(s){this._array[this._start+5*this._stride]=s}set 6(s){this._array[this._start+6*this._stride]=s}set 7(s){this._array[this._start+7*this._stride]=s}set 8(s){this._array[this._start+8*this._stride]=s}set 9(s){this._array[this._start+9*this._stride]=s}set 10(s){this._array[this._start+10*this._stride]=s}set 11(s){this._array[this._start+11*this._stride]=s}set 12(s){this._array[this._start+12*this._stride]=s}set 13(s){this._array[this._start+13*this._stride]=s}set 14(s){this._array[this._start+14*this._stride]=s}set 15(s){this._array[this._start+15*this._stride]=s}set 16(s){this._array[this._start+16*this._stride]=s}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 ou(n,s,e=0,t=1){return new ru(n,s,e,t)}d.Vector=void 0,(n=>{function s(P,...O){if(P=P||Bn(O.length),O.length>P.length)throw new Error("args.length > target.length");return P instanceof Float64Array?P.set(O):mt(O,P),P}n.set=s;function e(P,O){const Z=P.length;for(let ce=0;ce<Z;++ce)if(!O(P[ce],ce))return!1;return!0}n.every=e;function t(P,O,Z){const ce=P.length;let je=Z;for(let Rt=0;Rt<ce;++Rt)je=O(je,P[Rt],Rt);return je}n.reduce=t;function*i(P){for(let O=0;O<P.length;++O)yield P[O]}n.itr=i;const r=(P,O)=>P+=O*O;function o(P){return t(P,r,0)}n.magnitudeSquared=o;function l(P){const O=o(P);return Math.sqrt(O)}n.magnitude=l;function h(P,O=1e-5){const Z=o(P);return Math.abs(Z-1)<O}n.isNormalized=h;let c;const u=(P,O,Z)=>P+O*c[Z];function p(P,O){return Q(P,O),c=O,t(P,u,0)}n.dot=p;let g;const m=(P,O,Z)=>P+=(O-g[Z])*(O-g[Z]);function y(P,O){return Q(P,O),g=O,t(P,m,0)}n.distanceSquared=y;function S(P,O){return Math.sqrt(y(P,O))}n.distance=S;let C;const T=(P,O)=>P===C[O];function V(P,O){return Q(P,O),C=O,e(P,T)}n.equals=V;let z,x;const $=(P,O)=>Math.abs(P-z[O])<x;function Y(P,O,Z=0){return Q(P,O),z=O,x=Z,e(P,$)}n.equalsEpsilon=Y;function Q(P,O){if(P.length!==O.length)throw new Error("left.length !== right.length")}function Ae(P,O,Z){const ce=P.length;Z=Z||Bn(ce),Q(P,Z);for(let je=0;je<ce;++je)Z[je]=O(P[je],je);return Z}n.op1=Ae;function qe(P,O,Z,ce){Q(P,O),ce&&Q(P,ce);const je=P.length;ce=ce||Bn(je);for(let Rt=0;Rt<je;++Rt)ce[Rt]=Z(P[Rt],O[Rt]);return ce}n.op2=qe;const jt=P=>P;function mt(P,O){return Ae(P,jt,O)}n.clone=mt;let fi=0;const mi=(P,O)=>P*fi;function El(P,O,Z){return fi=O,Ae(P,mi,Z)}n.multiplyByScalar=El;function qf(P,O,Z=0){const ce=o(P);if(ce<=Z)return;const je=Math.sqrt(ce);return El(P,1/je,O)}n.normalize=qf;function Xf(P,O){return El(P,-1,O)}n.negate=Xf;const Yf=P=>Math.abs(P);function Kf(P,O){return Ae(P,Yf,O)}n.abs=Kf;const Zf=P=>P-Math.floor(P);function Qf(P,O){return Ae(P,Zf,O)}n.fract=Qf;const em=(P,O)=>P-O;function tm(P,O,Z){return qe(P,O,em,Z)}n.subtract=tm;const im=(P,O)=>P+O;function sm(P,O,Z){return qe(P,O,im,Z)}n.add=sm;const nm=(P,O)=>P*O;function rm(P,O,Z){return qe(P,O,nm,Z)}n.multiply=rm;const om=(P,O)=>P/O;function am(P,O,Z){return qe(P,O,om,Z)}n.divide=am;let bl;const lm=(P,O)=>P*(1-bl)+O*bl;function hm(P,O,Z,ce){return bl=Z,qe(P,O,lm,ce)}n.lerp=hm})(d.Vector||(d.Vector={}));function Hn(n,s=0,e=1){return n<s?s:n>e?e:n}class $n extends b{constructor(e,t,i,r,o,l,h,c){super();a(this,"__status");a(this,"_statusChangedEvent");a(this,"_forceCancelFunc");a(this,"_startEvent");a(this,"_progressEvent");a(this,"_completeEvent");a(this,"_cancelEvent");a(this,"_cancelledEvent");a(this,"_errorEvent");a(this,"_finishedEvent");a(this,"_processingID",-1);this._startProcessingFunc=e,this.startFunc=t,this.progressFunc=i,this.completeFunc=r,this.cancelFunc=o,this.cancelledFunc=l,this.errorFunc=h,this.finishedFunc=c,this._status="Initial",this.dispose(()=>{var u;return(u=this._statusChangedEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._startEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._progressEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._completeEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._cancelEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._cancelledEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._errorEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._finishedEvent)==null?void 0:u.destroy()}),this.dispose(()=>this.reset())}get startEvent(){return this._startEvent=this._startEvent||new v,this._startEvent}get progressEvent(){return this._progressEvent=this._progressEvent||new v,this._progressEvent}get completeEvent(){return this._completeEvent=this._completeEvent||new v,this._completeEvent}get cancelEvent(){return this._cancelEvent=this._cancelEvent||new v,this._cancelEvent}get cancelledEvent(){return this._cancelledEvent=this._cancelledEvent||new v,this._cancelledEvent}get errorEvent(){return this._errorEvent=this._errorEvent||new v,this._errorEvent}get finishedEvent(){return this._finishedEvent=this._finishedEvent||new v,this._finishedEvent}_completeFunc(e,t){this.processingID===e&&this._status==="Running"&&(this._status="Completed",this.completeFunc&&this.completeFunc(t),this._completeEvent&&this._completeEvent.emit(t),this.finishedFunc&&this.finishedFunc({status:"Completed",value:t}),this._finishedEvent&&this._finishedEvent.emit({status:"Completed",value:t}))}_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,t){this.processingID===e&&this._status==="Running"&&(this._status="Error",this.errorFunc&&this.errorFunc(t),this._errorEvent&&this._errorEvent.emit(t),this.finishedFunc&&this.finishedFunc({status:"Error",error:t}),this._finishedEvent&&this._finishedEvent.emit({status:"Error",error:t}))}_progressFunc(e,t){this.processingID===e&&this._status==="Running"&&(this.progressFunc&&this.progressFunc(t),this._progressEvent&&this._progressEvent.emit(t))}_startFunc(...e){if(this._status==="Initial"){this._status="Running";const t=++this._processingID,i={completeFunc:this._completeFunc.bind(this,t),errorFunc:this._errorFunc.bind(this,t),progressFunc:this._progressFunc.bind(this,t),cancelFunc:this._cancel.bind(this,t),processingID:t},r=this._startProcessingFunc(i,...e);return this._forceCancelFunc=r,this.startFunc&&this.startFunc(...e),this._startEvent&&this._startEvent.emit(...e),t}else return console.warn("this._status !== 'Initial' but start again!"),-1}set _status(e){if(this.__status!==e){const t=this.__status;this.__status=e,this._statusChangedEvent&&this._statusChangedEvent.emit(e,t)}}get _status(){return this.__status}get processingID(){return this._processingID}get statusChangedEvent(){return this._statusChangedEvent||(this._statusChangedEvent=new v),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,t=this.processingID){return this._cancel(t,e)}_cancel(e,t){if(this.processingID===e)if(this._status==="Running"){if(!this._forceCancelFunc)throw new Error("this._forceCancelFunc is undefined!");this._cancelFunc(t);const i=this._forceCancelFunc(t);if(this._forceCancelFunc=void 0,i&&i instanceof Promise)return i.then(()=>{this._cancelledFunc(t)});this._cancelledFunc(t)}else console.warn("this._status !== 'Running' but cancel")}start(...e){try{return this._startFunc(...e)}catch(t){console.error(`processing start error: ${t}`)}}restart(e,...t){try{return this.isRunning&&this.cancel(e),this.isFinished&&this.reset(e),this.isInitial?this._startFunc(...t):(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 qr=class extends Error{};function Ll(n,s){typeof n=="function"?n(s):n.cancelFunc=s}class Xr extends $n{constructor(e=300){super(({progressFunc:t,completeFunc:i,errorFunc:r})=>{const[o,l]=Nn(()=>{if(!this._lastDebounceValue)throw new Error("!this._lastDebounceValue");t([this._lastDebounceValue,this._debouncTimes]),this._debouncTimes=0},this._delayTime);return this._d=o,()=>{l()}});a(this,"_lastDebounceValue");a(this,"_debouncTimes",0);a(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 Vl(n,s,...e){const t=new AbortController;let i=t.signal,[r,o]=e;if(o!=null&&o.signal)throw console.error("init?.signal"),new Error("init?.signal");o=o||{},o.signal=i;let l=!1;Ll(n,()=>{l=!0,t.abort()});let h=fetch(r,o);return s&&(h=h.then(c=>{if(!c.ok)return c;if(!c.body)throw Error("ReadableStream not yet supported in this browser.");const u=c.headers.get("content-length"),p=u?parseInt(u,10):0;let g=0;return new Response(new ReadableStream({start(m){if(!c.body)throw new Error("!response.body");const y=c.body.getReader();S();function S(){y.read().then(({done:C,value:T})=>{if(C){m.close();return}if(!T)throw new Error("!value");if(!s)throw new Error("!progressFunc");g+=T.byteLength,s(g,p),m.enqueue(T),S()}).catch(C=>{m.error(C)})}}}),{status:c.status,statusText:c.statusText,headers:c.headers})}).catch(c=>{throw l?(c instanceof Error&&c.code!==20&&console.error("error.code !== 20"),console.log("fetching cancelled!"),new qr("fetching cancelled!")):(c instanceof Error&&c.code===20&&console.error("error.code === 20"),c)})),h}function zl(...n){if(n.length>=1)if(typeof n[0]=="function"||typeof n[0]>"u"){const s={};let e=Vl(s,...n);const{cancelFunc:t}=s;if(!t)throw new Error("!cancelResult.cancelFunc");return[t,e]}else return Vl(...n);throw new Error("cancelableFetch args error!")}class au extends $n{constructor(e,...t){super(({progressFunc:i,completeFunc:r,errorFunc:o},...l)=>{const h={};let c={loaded:0,total:0};const u=(m,y)=>{c.loaded=m,c.total=y,i(c)},p=this._fetchArgs||l;if(p.length===0)throw new Error("fetchArgs.length === 0");if(zl(h,u,...p).then(e).then(r).catch(m=>{m instanceof qr||o(m)}),!h.cancelFunc)throw new Error("!cancelResult.cancelFunc");return h.cancelFunc});a(this,"_fetchArgs");t.length>0&&(this._fetchArgs=t)}get fetchArgs(){return this._fetchArgs}}function Yr(n,s,e,t){const i="_"+s,r="_"+s+"Changed",o=s+"Changed";Object.defineProperties(n.prototype,{[s]:{get(){return typeof this[i]>"u"&&typeof e<"u"&&(this[i]=e),this[i]},set(l){if(typeof this[i]>"u"&&typeof e<"u"&&(this[i]=e),t?!t(this[i],l):this[i]!==l){const h=this[i];this[i]=l,this[r]&&this[r].emit(l,h)}}},[o]:{get(){return typeof this[r]>"u"&&(this[r]=new v,typeof this.dispose<"u"&&this.dispose(()=>this[r].destroy())),this[r]}}})}class Kr extends $n{constructor(e,t=!0){super(({progressFunc:i,completeFunc:r,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}));a(this,"_intervalID");a(this,"_intervalFunc");this.intervalTime=e,this.leading=t,this.dispose(this.intervalTimeChanged.disposableOn(()=>{this._intervalID&&this._intervalFunc&&(clearInterval(this._intervalID),this._intervalID=setInterval(this._intervalFunc,this.intervalTime))}))}}Yr(Kr,"leading",!0),Yr(Kr,"intervalTime",500);function lu(n,s){let e,t;const i=new Promise((o,l)=>{t=l,e=globalThis.setTimeout(()=>{e=void 0,o()},n)}),r=o=>{e&&(clearTimeout(e),e=void 0),t&&t(o??new qr("sleep cancel error!"))};if(typeof s=="boolean"&&s)return[r,i];if(s)return Ll(s,r),i}class hu{constructor(s=0,e=0,t=0,i,r){a(this,"_processData");a(this,"_lastUpdateTimeStamp",0);this.startTime=s,this.duration=e,this.delay=t,this.proccessFunc=i,this.completeFunc=r,this._processData={ratio:0,timeStamp:0,timeStampFromStart:0,timeStampFromLastUpdate:0}}update(s){const e=(s-this.startTime)/this.duration;e>=0&&(this._processData.ratio=e,this._processData.timeStamp=s,this._processData.timeStampFromStart=s-this.startTime,this._processData.timeStampFromLastUpdate=s-this._lastUpdateTimeStamp,this._lastUpdateTimeStamp=s,this.proccessFunc&&this.proccessFunc(this._processData),e>=1&&this.completeFunc&&this.completeFunc())}start(){this.startTime=performance.now()+this.delay,this._lastUpdateTimeStamp=this.startTime}}class Ul extends $n{constructor(e=1e3,t=0,i=Un){let r;function o(){r&&r()}super(({progressFunc:h,completeFunc:c,errorFunc:u})=>{const p=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=h,this._base.completeFunc=()=>{p&&p(),c()},this._base.start(),r=p,o});a(this,"_base");a(this,"duration");a(this,"delay");a(this,"startUpdateFunc");this._base=new hu,this.duration=e,this.delay=t,this.startUpdateFunc=i}get startTime(){return this._base.startTime}}class cu extends b{constructor(e){super();a(this,"_target",0);a(this,"_current",0);a(this,"_start",0);a(this,"_timing",new Ul(Number.POSITIVE_INFINITY));a(this,"_currentChanged");this._duration=e,this._timing.progressFunc=({ratio:t})=>{t=t<0?0:t>1?1:t;const i=this._start*(1-t)+this._target*t;this._current=i,this._currentChanged&&this._currentChanged.emit(this._target,this._current)},this.dispose(()=>{this._timing.isRunning&&this._timing.cancel(),this._timing.destroy()})}reset(e,t=e){this._timing.isRunning&&this._timing.cancel(),this._target=e,this._current=t,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 t=Math.abs(this._target-this._start);this._timing.duration=t*this._duration,this._timing.start()}}get target(){return this._target}get current(){return this._current}get currentChanged(){return this._currentChanged||(this._currentChanged=new v),this._currentChanged}}function Bl(n,s){s=s||[];const e=n.parentNode;return e?Bl(e,s.concat(e)):s}function du(n){const s=n.composedPath&&n.composedPath()||n.path,e=n.target;if(s!=null)return s.indexOf(globalThis)<0?s.concat(globalThis):s;if(e===globalThis)return[globalThis];if(e===null)throw new Error("target === null");return[e].concat(Bl(e),globalThis)}function we(n,s=!1){const{offsetX:e,offsetY:t}=n;let i=e,r=t;{const o=du(n);for(let l=0;l<o.length;++l){const h=o[l];if(h!==n.currentTarget&&h instanceof HTMLElement)i+=h.clientLeft,r+=h.clientTop,i+=h.offsetLeft,r+=h.offsetTop;else break}}return s?[i*globalThis.devicePixelRatio,r*globalThis.devicePixelRatio]:[i,r]}function os(n,s=!1){const e=n.target,t=n.currentTarget||n.__xbsj_lastCurrentTarget__;if(!e||!t)return[n.clientX,n.clientY];const i=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=i.left+n.offsetX,l=i.top+n.offsetY,h=o-r.left,c=l-r.top;return s?[h*globalThis.devicePixelRatio,c*globalThis.devicePixelRatio]:[h,c]}class Wl extends b{constructor(e){super();a(this,"_clickEvent",new v);a(this,"_dbclickEvent",new v);a(this,"_downEvent",new v);a(this,"_upEvent",new v);a(this,"_moveEvent",new v);a(this,"_debouncing",new Xr(300));this.dispose(()=>{this._clickEvent.destroy(),this._dbclickEvent.destroy(),this._downEvent.destroy(),this._upEvent.destroy(),this._moveEvent.destroy(),this._debouncing.destroy()});let t=!1,i=[0,0],r=!1;this._debouncing.progressFunc=([[u,p,g],m])=>{m===1?this._clickEvent.emit(u,p,g):m>=2?this._dbclickEvent.emit(u,p,g):console.error("point click should not be here!")},this._debouncing.start(),this.dispose(()=>{this._debouncing.isRunning&&this._debouncing.cancel(),this._debouncing.destroy()});const o=u=>{t=!0;const[p,g]=we(u);i[0]=p,i[1]=g,this._downEvent.emit(p,g,u)},l=u=>{const[p,g]=we(u);t&&!r&&this._debouncing.debounce(p,g,u),t=!1,r=!1,this._upEvent.emit(p,g,u)},h=u=>{const[p,g]=we(u);if(t&&!r){const[m,y]=i;(Math.abs(p-m)>3||Math.abs(g-y)>3)&&(r=!0)}this._moveEvent.emit(p,g,u)},c=()=>{t=!1,r=!1};e.addEventListener("pointerdown",o),e.addEventListener("pointerup",l),e.addEventListener("pointermove",h),e.addEventListener("pointerout",c),this.dispose(()=>{e.removeEventListener("pointerdown",o),e.removeEventListener("pointerup",l),e.removeEventListener("pointermove",h),e.removeEventListener("pointerout",c)})}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 Zr extends b{constructor(){super();a(this,"_pickRectEvent",this.disposeVar(new v));a(this,"_updateRectEvent",this.disposeVar(new v));a(this,"_pointerActionEvent",this.disposeVar(new v));a(this,"_active",this.disposeVar(w(!1)));a(this,"_pickRect",{left0:0,top0:0,left1:0,top1:0});let e=0,t=0,i=0,r=0;this.dispose(this._pointerActionEvent.disposableOn(({type:o,left:l,top:h})=>{o==="PointerDown"?(this._active.value=!0,e=l,t=h,i=l,r=h,this._setPickRect({left0:e,top0:t,left1:i,top1:r}),this._updateRectEvent.emit(this._pickRect)):o==="PointerMove"?this._active.value&&(i=l,r=h,this._setPickRect({left0:e,top0:t,left1:i,top1:r}),this._updateRectEvent.emit(this._pickRect)):o==="PointerUp"&&this._active.value&&(this._active.value=!1,i=l,r=h,this._setPickRect({left0:e,top0:t,left1:i,top1:r}),this._updateRectEvent.emit(this._pickRect),this._pickRectEvent.emit(this._pickRect))}))}_setPickRect({left0:e,left1:t,top0:i,top1:r}){this._pickRect.left0=e,this._pickRect.left1=t,this._pickRect.top0=i,this._pickRect.top1=r}pointerDown(e,t){this._pointerActionEvent.emit({type:"PointerDown",left:e,top:t})}pointerMove(e,t){this._pointerActionEvent.emit({type:"PointerMove",left:e,top:t})}pointerUp(e,t){this._pointerActionEvent.emit({type:"PointerUp",left:e,top:t})}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,t){t=t||{left:0,top:0,width:0,height:0,forward:!0};const{left0:i,top0:r,left1:o,top1:l}=e;return t.width=Math.abs(i-o),t.height=Math.abs(r-l),t.left=Math.min(i,o),t.top=Math.min(r,l),t.forward=o>i,t}static contains(e,t,i){const{left:r,top:o,width:l,height:h}=i;return e>r&&e<=r+l&&t>=o&&t<=o+h}}class uu extends Zr{constructor(s){super();const e=this.disposeVar(new Wl(s));this.dispose(e.downEvent.disposableOn((o,l,h)=>h.altKey&&this.pointerDown(o,l))),this.dispose(e.moveEvent.disposableOn((o,l)=>this.pointerMove(o,l))),this.dispose(e.upEvent.disposableOn((o,l)=>this.pointerUp(o,l)));const t=document.createElement("div");t.style.backgroundColor="rgba(0, 0, 0, 0)",t.style.border="2px dashed red",t.style.position="absolute",t.style.boxSizing="border-box",t.style.pointerEvents="none",t.style.height="0px",t.style.width="0px",t.style.left="0px",t.style.top="0px",t.style.display="none",s.appendChild(t),this.dispose(()=>s.removeChild(t)),this.dispose(this.activeEvent.disposableOn(o=>{t.style.display=o?"block":"none"}));const i=()=>{this.reset()};s.addEventListener("contextmenu",i),this.dispose(()=>s.removeEventListener("contextmenu",i));const r={left:0,top:0,width:0,height:0,forward:!1};this.dispose(this.updateRectEvent.disposableOn(o=>{if(Zr.getLeftTopAndSize(o,r)){const{left:l,top:h,width:c,height:u}=r;t.style.height=`${u|0}px`,t.style.width=`${c|0}px`,t.style.left=`${l|0}px`,t.style.top=`${h|0}px`}}))}}class st extends Error{}function Qt(n,s){Ne(n,"_promise_cancel")&&console.warn("setPromiseCancel warn: promise has cancelFunc!"),vt(n,"_promise_cancel",s)}function as(n){return Ne(n,"_promise_cancel")}function ls(n){return!!as(n)}function Qr(n,s){const e=as(n);return e?(e(s),!0):!1}function eo(n){const[s,e]=n;return Qt(e,s),e}function hs(n){let s;const e=new Promise((t,i)=>{s=i,n.then(t).catch(i)});return Qt(e,s),e}function pu(n){let s,e;var t=new Promise((i,r)=>{e=n.disposableOn((...o)=>{e&&e(),i(o)}),s=o=>{e&&e(),r(o)}});return[s,t]}function gu(n){const s=new v,e=new v;return n.then(t=>{s.isDestroyed()||s.emit(t)}).catch(t=>{e.isDestroyed()||e.emit(t)}),[s,e]}class to extends b{constructor(){super();a(this,"_cancelled",!1);a(this,"_cancelError");a(this,"_promiseSet",new Set);a(this,"_disposer")}get disposer(){return this._disposer=this._disposer||new b,this._disposer}destroyImp(){this.finally()}cancel(e){var t;if(!this._cancelled){this._cancelled=!0,(t=this._disposer)==null||t.destroy(),this._cancelError=e;for(let i of this._promiseSet)Qr(i);this._promiseSet.clear()}}get cancelFuncsNum(){return ln(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 st("cancel from CancelManager!")}promise(e){return this._promiseSet.add(e),e.finally(()=>(this._promiseSet.delete(e),this.check()))}promiseAny(e){const t=[],i=e.map(r=>(this._promiseSet.add(r),ls(r)&&t.push(as(r)),r.finally(()=>this._promiseSet.delete(r))));return Promise.any(i).finally(()=>(t.forEach((r=>r(new st("cancel from promiseAny!")))),t.length=0))}promiseAll(e){const t=[],i=e.map(r=>(this._promiseSet.add(r),ls(r)&&t.push(as(r)),r.finally(()=>this._promiseSet.delete(r))));return Promise.all(i).finally(()=>(t.forEach((r=>r(new st("cancel from promiseAll!")))),t.length=0))}promiseRace(e){const t=[],i=e.map(r=>(this._promiseSet.add(r),ls(r)&&t.push(as(r)),r.finally(()=>this._promiseSet.delete(r))));return Promise.race(i).finally(()=>(t.forEach((r=>r(new st("cancel from promiseRace!")))),t.length=0))}}class fe extends b{constructor(e){super();a(this,"_status","Initial");a(this,"_completeEvent");a(this,"_errorEvent");a(this,"_completeFunc");a(this,"_errorFunc");a(this,"_cancelFunc");a(this,"_runningId",-1);this._startFunc=e,this.dispose(()=>this.isRunning&&this.cancel())}get errorEvent(){return this._errorEvent||(this._errorEvent=new v),this._errorEvent}get completeEvent(){return this._completeEvent||(this._completeEvent=new v),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 t=++this._runningId;this._status="Running",this._cancelFunc=this._startFunc({completeFunc:i=>{var r;t===this._runningId&&this._status==="Running"&&(this._status="Completed",this._completeFunc&&this._completeFunc(i),(r=this._completeEvent)==null||r.emit(i))},errorFunc:i=>{var r;t===this._runningId&&this._status==="Running"&&(this._status="Error",this._errorFunc&&this._errorFunc(i),(r=this._errorEvent)==null||r.emit(i))},runningingID:t},...e)}cancel(e=new st("")){var t;if(this._status==="Running"){if(!this._cancelFunc)throw new Error("!this._cancelFunc");this._status="Error",this._errorFunc&&this._errorFunc(e),(t=this._errorEvent)==null||t.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 st(""),...t){this.isRunning&&this.cancel(e),this.reset(),this.start(...t)}restartIfNotRunning(...e){this.isRunning||(this.reset(),this.start(...e))}}function cn(n){return(s,...e)=>{const t=new to,{completeFunc:i,errorFunc:r}=s,o=n(t,...e).then(i).catch(r).finally(()=>t.destroy());return Qt(o,t.cancel.bind(t)),l=>Qr(o,l)}}class fu extends fe{constructor(){super(({errorFunc:e},t,i)=>{try{const[r,o]=Nn(t,i);return this._doFunc=r,o}catch(r){return e(r),()=>{}}});a(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}class mu extends fe{constructor(e,t){super(({errorFunc:i})=>{try{const[r,o]=Nn(e,t);return this._doFunc=r,o}catch(r){return i(r),()=>{}}});a(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}function vu(n){return new fe(cn((s,...e)=>s.promise(n(...e))))}function _u(n,...s){return new fe(cn(e=>e.promise(n(...s))))}function Gn(n){return vu((...s)=>{const e=n(...s);return ls(e)?e:hs(e)})}function io(n,...s){return _u(()=>{const e=n(...s);return ls(e)?e:hs(e)})}function yu(n){let s;const e=new Promise((t,i)=>{s=()=>{n(),i()}});return Qt(e,s),e}function wu(n,...s){const e=new to,t=n(e,...s).finally(()=>e.destroy());return Qt(t,e.cancel.bind(e)),t}function Le(n){return new fe(cn(n))}function Eu(n,...s){return new fe(cn(e=>n(e,...s)))}function Hl(n,...s){const e=new AbortController;let t=e.signal,[i,r]=s;if(r!=null&&r.signal)throw console.error("init?.signal"),new Error("init?.signal");r=r||{},r.signal&&console.warn("revocableFetch error: init.signal would be override!"),r.signal=t;let o=!1;const l=()=>{o=!0,e.abort()};let h=fetch(i,r);return n&&(h=h.then(c=>{if(!c.ok)return c;if(!c.body)throw Error("ReadableStream not yet supported in this browser.");const u=c.headers.get("content-length");u||console.warn("response.headers.get('content-length') is undefined... cannot get contentLength!");const p=u?parseInt(u,10):0;let g=0;return new Response(new ReadableStream({start(m){if(!c.body)throw new Error("!response.body");const y=c.body.getReader();S();function S(){y.read().then(({done:C,value:T})=>{if(C){m.close();return}if(!T)throw new Error("!value");if(!n)throw new Error("!progressFunc");g+=T.byteLength,n(g,p),m.enqueue(T),S()}).catch(C=>{m.error(C)})}}}),{status:c.status,statusText:c.statusText,headers:c.headers})}).catch(c=>{throw o?(c instanceof Error&&c.code!==20&&console.error("error.code !== 20"),console.log("fetching cancelled!"),new st(`fetching cancelled! error: ${c}`)):(c instanceof Error&&c.code===20&&console.error("error.code === 20"),c)})),Qt(h,l),h}function bu(n,...s){return Hl(n,...s)}function so(...n){return Hl(void 0,...n)}function Su(){return Gn(so)}function Cu(...n){return io(so,...n)}function no(n,...s){let e=-1;var t=new Promise((i,r)=>{n.isRunning&&n.cancel(),n.reset();const o=new b;o.dispose(n.completeEvent.disposableOn(l=>{if(i(l),o.isDestroyed()){debugger;console.error(`disposer is destroyed! ${o}`);return}o.destroy()})),o.dispose(n.errorEvent.disposableOn(l=>{if(r(l),o.isDestroyed()){debugger;console.error(`disposer is destroyed! ${o}`);return}o.destroy()})),n.start(...s),e=n.runningId});return[i=>e===n.runningId&&n.isRunning&&n.cancel(i),t]}function yt(n,s,...e){try{return s(...e)}catch(t){n(t)}}function Pu(){return new fe(({completeFunc:n,errorFunc:s},e)=>rs(()=>yt(s,()=>{e&&e(),n()})))}function Tu(n){return new fe(({completeFunc:s,errorFunc:e})=>rs(()=>yt(e,()=>{n&&n(),s()})))}function Iu(){return new fe(({completeFunc:n,errorFunc:s},e)=>nn(()=>{yt(s,()=>{e&&e(),n()})}))}function xu(n){return new fe(({completeFunc:s,errorFunc:e})=>nn(()=>{yt(e,()=>{n&&n(),s()})}))}function $l(){return new fe(({completeFunc:n,errorFunc:s},e,t)=>zr(()=>{yt(s,()=>{e&&e(),n()})},t??1e3))}function Gl(n,s){return new fe(({completeFunc:e,errorFunc:t})=>zr(()=>{yt(t,()=>{n&&n(),e()})},s??1e3))}function Ou(){return new fe(({errorFunc:n},s,e=1e3)=>Vr(()=>yt(n,s),e))}function Du(n,s=1e3){return new fe(({errorFunc:e})=>Vr(()=>yt(e,n),s))}function dn(){return new fe(({errorFunc:n},s)=>Ln(e=>yt(n,s,e)))}function cs(n){return new fe(({errorFunc:s})=>Ln(e=>yt(s,n,e)))}function un(n,...s){let e,t;const i=new Promise((o,l)=>{t=l,e=globalThis.setTimeout(()=>{e=void 0,o(s)},n)});return Qt(i,o=>{e&&(clearTimeout(e),e=void 0),t&&t(o??new st("sleep cancel error!"))}),i}function Fu(){return Gn(un)}function ku(n,...s){return io(un,n,...s)}function yi(n,s,...e){return n.promise(eo(no(Le(async(t,...i)=>(n.disposer.dispose(()=>{t.isDestroyed()||t.cancel()}),await s(t,...i))),...e)))}function Mu(n,s,...e){return n.promise(eo(no(s,...e)))}class Au extends fe{constructor(){super(({errorFunc:e},t,i)=>{try{const[r,o]=Gr(t,i);return this._doFunc=r,o}catch(r){return e(r),()=>{}}});a(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}class ju extends fe{constructor(e,t){super(({errorFunc:i})=>{try{const[r,o]=Gr(e,t);return this._doFunc=r,o}catch(r){return i(r),()=>{}}});a(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}class Jn extends b{constructor(e=1e3,t=Un){super();a(this,"_speed");a(this,"_speedChangedEvent");a(this,"_duration");a(this,"_durationChangedEvent");a(this,"_loop");a(this,"startUpdateFunc");a(this,"_updateBindThis");a(this,"_cancelStartUpdateFunc");a(this,"_startTimeStamp");a(this,"_playingChangedEvent");a(this,"_startPlayingEvent");a(this,"_stopPlayingEvent");a(this,"_loopChangedEvent");a(this,"_currentTime",this.disposeVar(w(0)));this._speed=1,this._duration=e,this._loop=!1,this.startUpdateFunc=t,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 v,this._startPlayingEvent}get stopPlayingEvent(){return this._stopPlayingEvent=this._stopPlayingEvent||new v,this._stopPlayingEvent}get currentTimeChangedEvent(){return this._currentTime.changed}get loopChangedEvent(){return this._loopChangedEvent=this._loopChangedEvent||new v,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 t=(e-this._startTimeStamp)*this._speed;this._setCurrentTimeInner(t)}}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 v),this._durationChangedEvent}get duration(){return this._duration}set duration(e){var t;if(e<0)console.warn("duration sholud greater than 0!");else if(this._duration!==e){const i=this._duration;this._duration=e,this._currentTime.value>this._duration&&(this._currentTime.value=this._duration),(t=this._durationChangedEvent)==null||t.emit(this._duration,i)}}get speedChangedEvent(){return this._speedChangedEvent||(this._speedChangedEvent=new v),this._speedChangedEvent}get speed(){return this._speed}set speed(e){var t;if(this._speed!==e&&e!==0){const i=this._speed;this._speed=e,this._resetStartTime(),(t=this._speedChangedEvent)==null||t.emit(this._speed,i)}}_resetStartTime(){this._startTimeStamp=performance.now()-this._currentTime.value/this._speed}_startPlaying(){var e,t;this._resetStartTime(),this._cancelStartUpdateFunc=this.startUpdateFunc(this._updateBindThis),(e=this._startPlayingEvent)==null||e.emit(this._currentTime.value),(t=this._playingChangedEvent)==null||t.emit(!0)}_stopPlaying(){var e,t;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),(t=this._playingChangedEvent)==null||t.emit(!1)}get playingChangedEvent(){return this._playingChangedEvent||(this._playingChangedEvent=new v),this._playingChangedEvent}get playing(){return!!this._cancelStartUpdateFunc}set playing(e){!!this._cancelStartUpdateFunc!==e&&(e?this._startPlaying():this._stopPlaying())}}class pn extends b{constructor(e){super();a(this,"_stop",this.disposeVar(w(0)));a(this,"_current",this.disposeVar(w(0)));a(this,"_start",this.disposeVar(w(0)));a(this,"_player",this.disposeVar(new Jn(200)));this.dispose(this._player.currentTimeChangedEvent.disposableOn(t=>{let i=t/this._player.duration;i=i>1?1:i<0?0:i;const r=this._start.value,o=this._stop.value;this._current.value=r+(o-r)*i})),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 Jl=-1;class se extends v{constructor(s,e,t,i){super(),this._domElement=s,this._type=e,this.callback=i;const r=o=>(o.__xbsj_listenerNo__=++Jl,o.__xbsj_listenerTime__=Date.now(),o.__xbsj_lastCurrentTarget__=o.currentTarget,this.emit(o),this.callback&&this.callback(o));this._domElement.addEventListener(this._type,r,t),this.dispose(()=>this._domElement.removeEventListener(this._type,r,t))}static getLastLisenNo(){return Jl}static getCurrentTarget(s){return s.__xbsj_lastCurrentTarget__}static getListenerNo(s){return s.__xbsj_listenerNo__}static getListenerTime(s){return s.__xbsj_listenerTime__}static on(s,e){const t=se.getLastLisenNo();return s.disposableOn(i=>{const r=se.getListenerNo(i);(r===void 0||r>t)&&e(i)})}get element(){return this._domElement}static create(s,e,t){return new se(s,e,t)}}class ro extends b{constructor(){super();a(this,"_clickEvent",this.disposeVar(new v));a(this,"_dbclickEvent",this.disposeVar(new v));a(this,"_pointerdownEvent",this.disposeVar(new v));a(this,"_pointerupEvent",this.disposeVar(new v));a(this,"_pointermoveEvent",this.disposeVar(new v));a(this,"_pointeroutEvent",this.disposeVar(new v));a(this,"dbClickDelayTime",300);a(this,"nativeClickDelayTime",500);a(this,"clickMovementTolerantPixelSize",3);a(this,"debugging",!1);a(this,"_enabled",this.disposeVar(w(!0)));const e=this.disposeVar(Le(async i=>{do{const r=await yi(i,h=>new Promise((c,u)=>{h.disposer.dispose(u),h.disposer.dispose(se.on(this._pointerdownEvent,c))})),o=we(r);if(this.debugging&&console.log(`鼠标按下 ${o.toString()}`),!await yi(i,h=>new Promise((c,u)=>{h.disposer.dispose(u);const p=setTimeout(()=>c(!0),this.nativeClickDelayTime);h.disposer.dispose(()=>clearTimeout(p)),h.disposer.dispose(se.on(this._pointermoveEvent,g=>{const[m,y]=we(g),[S,C]=o;(Math.abs(m-S)>3||Math.abs(y-C)>3)&&c(!1)})),h.disposer.dispose(se.on(this._pointeroutEvent,()=>c(!1))),h.disposer.dispose(se.on(this._pointerupEvent,()=>c(!0)))}))){this.debugging&&console.log("取消1");continue}const l=await yi(i,h=>new Promise((c,u)=>{h.disposer.dispose(u);const p=setTimeout(()=>c("timeout"),this.dbClickDelayTime);h.disposer.dispose(()=>clearTimeout(p)),h.disposer.dispose(se.on(this._pointermoveEvent,g=>{const[m,y]=we(g),[S,C]=o;(Math.abs(m-S)>3||Math.abs(y-C)>3)&&c("moved")})),h.disposer.dispose(se.on(this._pointerdownEvent,c)),h.disposer.dispose(se.on(this._pointeroutEvent,()=>c("pointouted"))),h.disposer.dispose(se.on(this._pointerupEvent,()=>c("pointuped")))}));if(typeof l=="string"){this.debugging&&console.log(`触发单击事件!取消双击监听!error: ${l}`),this._clickEvent.emit(r);continue}if(!await yi(i,h=>new Promise((c,u)=>{h.disposer.dispose(u);const p=setTimeout(()=>c(!1),this.nativeClickDelayTime);h.disposer.dispose(()=>clearTimeout(p)),h.disposer.dispose(se.on(this._pointermoveEvent,g=>{const[m,y]=we(g),[S,C]=o;(Math.abs(m-S)>3||Math.abs(y-C)>3)&&c(!1)})),h.disposer.dispose(se.on(this._pointeroutEvent,()=>c(!1))),h.disposer.dispose(se.on(this._pointerupEvent,()=>c(!0)))}))){this.debugging&&console.log("取消2");continue}this.debugging&&console.log("触发双击事件!"),this._dbclickEvent.emit(l)}while(!0)})),t=i=>{i?e.restart():e.isRunning&&e.cancel()};t(this.enabled),this.dispose(this.enabledChanged.disposableOn(t))}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 Ru extends b{constructor(e,t){super();a(this,"_pointerClick",this.disposeVar(new ro));this._div=e;const{div:i,pointerClick:r}=this,o=u=>r.pointerDown(u),l=u=>r.pointerMove(u),h=u=>r.pointerOut(u),c=u=>r.pointerUp(u);i.addEventListener("pointerdown",o,t),i.addEventListener("pointermove",l,t),i.addEventListener("pointerout",h,t),i.addEventListener("pointerup",c,t),this.dispose(()=>{i.removeEventListener("pointerdown",o,t),i.removeEventListener("pointermove",l,t),i.removeEventListener("pointerout",h,t),i.removeEventListener("pointerup",c,t)})}get div(){return this._div}get pointerClick(){return this._pointerClick}get clickEvent(){return this.pointerClick.clickEvent}get dbclickEvent(){return this.pointerClick.dbclickEvent}}class ql extends b{constructor(){super();a(this,"_hoverEvent",this.disposeVar(new v));a(this,"_hoverOutEvent",this.disposeVar(new v));a(this,"_pointerdownEvent",this.disposeVar(new v));a(this,"_pointerupEvent",this.disposeVar(new v));a(this,"_pointermoveEvent",this.disposeVar(new v));a(this,"_pointeroutEvent",this.disposeVar(new v));a(this,"delayTime",800);const e=this.disposeVar($l()),t=c=>{this._hoverOutEvent.emit()},i=c=>{this._hoverOutEvent.emit()};let r;const o=()=>{if(!r){console.warn("!lastPointerEvent");return}this._hoverEvent.emit(r)},l=c=>{r=c,e.restart(void 0,o,this.delayTime),this._hoverOutEvent.emit()},h=c=>{e.cancel(),this._hoverOutEvent.emit()};this.dispose(this._pointerdownEvent.disposableOn(t)),this.dispose(this._pointerupEvent.disposableOn(i)),this.dispose(this._pointermoveEvent.disposableOn(l)),this.dispose(this._pointeroutEvent.disposableOn(h))}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 Nu extends b{constructor(e,t=1500){super();a(this,"_hoverEvent",new v);a(this,"_hoverOutEvent",new v);const i=new Xr(t);this.dispose(()=>i.destroy());let r=0,o=0,l;i.progressFunc=()=>this._hoverEvent.emit(r,o,l);const h=g=>{!i.isRunning&&i.restart(),l=g,[r,o]=we(g),i.debounce(),this._hoverOutEvent.emit()},c=g=>{!i.isRunning&&i.restart(),l=g,[r,o]=we(l),i.debounce(),this._hoverOutEvent.emit()},u=g=>{!i.isRunning&&i.restart(),l=g,[r,o]=we(l),i.debounce(),this._hoverOutEvent.emit()},p=g=>{i.isRunning&&i.cancel(),this._hoverOutEvent.emit()};e.addEventListener("pointerdown",h),e.addEventListener("pointerup",c),e.addEventListener("pointermove",u),e.addEventListener("pointerout",p),this.dispose(()=>{e.removeEventListener("pointerdown",h),e.removeEventListener("pointerup",c),e.removeEventListener("pointermove",u),e.removeEventListener("pointerout",p)})}get hoverEvent(){return this._hoverEvent}get hoverOutEvent(){return this._hoverOutEvent}}class Xl extends b{constructor(e,t={}){super();a(this,"_needRedrawEvent");a(this,"_needPickRedrawEvent");a(this,"_id",ns());a(this,"_clickEvent");a(this,"_clickOutEvent");a(this,"_dbclickEvent");a(this,"_dbclickOutEvent");a(this,"_actived",!1);a(this,"_activedChanged");a(this,"_hovered",!1);a(this,"_hoveredChanged");a(this,"_selected",!1);a(this,"_selectedChanged");a(this,"_opacity",1);a(this,"_opacityChanged");a(this,"_show",!0);a(this,"_showChanged");this._canvasPrimitivesContext=e;const{needRedraw:i=!0,needPickRedraw:r=!0}=t;i&&(this._needRedrawEvent=new v),r&&(this._needPickRedrawEvent=new v),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}set id(e){this._id=e}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 v,this._clickEvent}hasClickOutEvent(){return!!this._clickOutEvent}get clickOutEvent(){return this._clickOutEvent=this._clickOutEvent||new v,this._clickOutEvent}hasDbclickEvent(){return!!this._dbclickEvent}get dbclickEvent(){return this._dbclickEvent=this._dbclickEvent||new v,this._dbclickEvent}hasDbclickOutEvent(){return!!this._dbclickOutEvent}get dbclickOutEvent(){return this._dbclickOutEvent=this._dbclickOutEvent||new v,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 v,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 v,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 v,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 v,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 v,this._showChanged}}class oo extends Xl{constructor(e,t=[0,0],i=0){super(e);a(this,"_winPosAndDepthChanged");this._winPos=t,this._depth=i,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 v),this._winPosAndDepthChanged}}function wi(n,s,e,t){const[i,r]=n,[o,l,h,c]=t,u=s[0]*e[0],p=s[1]*e[1],g=i-(u*o+h),m=r-(p*l+c);return{left:g,top:m,right:g+u,bottom:m+p}}function Ei(n,s,e,t,i){n.beginPath(),n.moveTo(s,e),n.lineTo(s-t*.5,e-t*.5),n.arc(s,e-t,t*.7071067811865475,Math.PI*.75,Math.PI*.25),n.lineTo(s,e),n.fillStyle=i,n.fill()}function Lu(n,s,e,t,i,r){if(n.beginPath(),n.moveTo(s+t,e),n.arc(s,e,t,0,2*Math.PI),r){const o=n.createRadialGradient(s,e,0,s,e,t);o.addColorStop(0,i),o.addColorStop(1,i.replace(/[\d\.]+\)$/,"0)")),n.fillStyle=o}else n.fillStyle=i;n.fill()}function Yl(n,s,e,t,i,r){n.beginPath(),n.moveTo(s+r,e),n.lineTo(s+t-r,e),n.arcTo(s+t,e,s+t,e+r,r),n.lineTo(s+t,e+i-r),n.arcTo(s+t,e+i,s+t-r,e+i,r),n.lineTo(s+r,e+i),n.arcTo(s,e+i,s,e+i-r,r),n.lineTo(s,e+r),n.arcTo(s,e,s+r,e,r)}function Kl(n,s,e,t,i,r){n.font=i;const o=n.measureText(t),l=o.actualBoundingBoxLeft+o.actualBoundingBoxRight,h=Number.isFinite(o.fontBoundingBoxAscent)?o.fontBoundingBoxAscent:o.actualBoundingBoxAscent,c=Number.isFinite(o.fontBoundingBoxDescent)?o.fontBoundingBoxDescent:o.actualBoundingBoxDescent;let u=h+c;n.fillStyle=r,n.fillText(t,s-l*.5,e+u*.5-c)}function Zl(n){const{width:s,height:e}=n,t=s instanceof SVGAnimatedLength?s.baseVal.SVG_LENGTHTYPE_PX:s,i=e instanceof SVGAnimatedLength?e.baseVal.SVG_LENGTHTYPE_PX:e,r=document.createElement("canvas");r.width=t,r.height=i;const o=r.getContext("2d");if(!o)throw new Error("!cavnasCtx");return o.drawImage(n,0,0,t,i),r}function Ql(n,s){const{width:e,height:t}=n,i=n.getContext("2d");if(!i)throw new Error("!cavnasCtx");const[r,o,l]=s.map(p=>p*255|0),h=i.getImageData(0,0,e,t),c=h.data;for(var u=0;u<c.length;u+=4)c[u]=r,c[u+1]=o,c[u+2]=l;i.putImageData(h,0,0)}function ao(n,s,e,t=[.5,1,0,0],i,r="12px Arial",o=2,l="#FFF",h="#000A"){n.font=r;const c=n.measureText(i),u=c.actualBoundingBoxLeft+c.actualBoundingBoxRight,p=c.fontBoundingBoxAscent+c.fontBoundingBoxDescent,g=s,m=e,y=u+o*2,S=p+o*2,{left:C,top:T,bottom:V}=wi([g,m],[y,S],[1,1],t);n.fillStyle=h,Yl(n,C,T,y,S,o),n.fill(),n.fillStyle=l,n.fillText(i,C+o,V-o-c.fontBoundingBoxDescent)}function gn(n){return("00"+n.toString(16).toUpperCase()).substr(-2)}function fn(n){const[s,e,t,i]=n.map(r=>r*255|0);return`#${gn(s)}${gn(e)}${gn(t)}${gn(i)}`}function lo(n,s){const[e,t,i]=s,r=`${e}-${t}-${i}`;let o=Ne(n,r);return o||(o=Zl(n),Ql(o,s),vt(n,r,o)),o}class Vu extends oo{constructor(e,t,i=[32,32],r=[.5,1,0,0],o="#F00F"){super(e);a(this,"_tooltip","");a(this,"_title","");a(this,"__scale",[1,1]);a(this,"_tooltipAlpha",0);a(this,"_bgColor",[.3,.3,.3,.8]);a(this,"_bgColorHexStr",fn(this._bgColor));a(this,"_fgColor",[1,1,1,1]);a(this,"_fgColorHexStr",fn(this._fgColor));this._image=t,this._size=i,this._originRatioAndOffset=r,this._defaultColorStr=o;const l=new pn(100),h=new pn(100);this.dispose(()=>{l.destroy(),h.destroy()});const c=()=>{if(this._clickEvent&&!this._clickEvent.empty){const u=(1+.08*h.current)*(1+.08*l.current);this._scale=[u,u],this._tooltipAlpha=l.current}};this.dispose(this.activedChanged.disposableOn(u=>{h.target=u?1:0,this.needRedraw()})),this.dispose(this.hoveredChanged.disposableOn(u=>{l.target=u?1:0,this.needRedraw()})),this.dispose(this.selectedChanged.disposableOn(()=>{this.needRedraw()})),this.dispose(h.currentChanged.disposableOn(c)),this.dispose(l.currentChanged.disposableOn(c))}set size(e){const[t,i]=e,[r,o]=this._size;(r!==t||o!==i)&&(this._size[0]=t,this._size[1]=i,this.needRedraw(),this.needPickRedraw())}get size(){return this._size}set _scale(e){const[t,i]=e,[r,o]=this.__scale;(r!==t||o!==i)&&(this.__scale[0]=t,this.__scale[1]=i,this.needRedraw(),this.needPickRedraw())}get _scale(){return this.__scale}set fgColor(e){if(!this._fgColor.every((t,i)=>e[i]===t)){const[t,i,r,o]=e;this._fgColor.splice(0,4,t,i,r,o),this._fgColorHexStr=fn(this._fgColor),this.needRedraw()}}get fgColor(){return this._fgColor}set bgColor(e){if(!this._bgColor.every((t,i)=>e[i]===t)){const[t,i,r,o]=e;this._bgColor.splice(0,4,t,i,r,o),this._bgColorHexStr=fn(this._bgColor),this.needRedraw()}}get bgColor(){return this._bgColor}set originRatioAndOffset(e){const[t,i,r,o]=this._originRatioAndOffset,[l,h,c,u]=e;(t!==l||i!==h||r!==c||o!==u)&&(this._originRatioAndOffset.splice(0,4,l,h,c,u),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[t,i]=this._winPos,r=this._size[0]*this.__scale[0],o=this._size[1]*this.__scale[1],{left:l,top:h}=wi([t,i],this._size,this.__scale,this._originRatioAndOffset),c=e.globalAlpha;if(e.globalAlpha=this.opacity,this._image){if(this.selected){const u=lo(this._image,[1,0,0]),{left:p,top:g}=wi([t,i+3],[r+6,o+6],[1,1],this._originRatioAndOffset);e.drawImage(u,p,g,r+6,o+6)}if(this.actived){const[u,p,g,m]=this._fgColor,y=lo(this._image,[u,p,g]),{left:S,top:C}=wi([t,i+4],[r+8,o+8],[1,1],this._originRatioAndOffset);e.drawImage(y,S,C,r+8,o+8)}if(this.hovered){const[u,p,g,m]=this._bgColor,y=lo(this._image,[u,p,g]),{left:S,top:C}=wi([t,i+2],[r+4,o+4],[1,1],this._originRatioAndOffset);e.drawImage(y,S,C,r+4,o+4)}e.drawImage(this._image,l,h,r,o)}else e.fillStyle=this._fgColorHexStr,e.fillRect(l,h,r,o);if(this._title!==""&&ao(e,t+20,i-16,[0,.5,0,0],this._title,"14px Arial",4,this._fgColorHexStr,this._bgColorHexStr),e.globalAlpha=c,this._hovered&&this._tooltip!==""){const u=e.globalAlpha;e.globalAlpha=this._tooltipAlpha,ao(e,t,i-42,[.5,1,0,0],this._tooltip,"12px Arial",4,this._fgColorHexStr,this._bgColorHexStr),e.globalAlpha=u}}drawForPick(e,t){if(!this._show)return;const[i,r]=this._winPos,o=t("default"),l=this._size[0]*this.__scale[0],h=this._size[1]*this.__scale[1],{left:c,top:u}=wi([i,r],this._size,this.__scale,this._originRatioAndOffset);e.fillStyle=o,e.fillRect(c,u,l,h)}}class zu extends oo{constructor(e){super(e);a(this,"_width",16);a(this,"_text","");a(this,"_fillStyle","#0F0");a(this,"_scale",1);a(this,"_scaleChanged");this.dispose(this.scaleChanged.disposableOn(o=>{this.needRedraw(),this.needPickRedraw()}));const t=this.disposeVar(new pn(100)),i=this.disposeVar(new pn(100)),r=()=>{this._clickEvent&&!this._clickEvent.empty&&(this.scale=(1+.1*i.current)*(1+.2*t.current))};this.dispose(i.currentChanged.disposableOn(r)),this.dispose(t.currentChanged.disposableOn(r)),this.dispose(this.activedChanged.disposableOn(o=>{i.target=o?1:0,this.needRedraw()})),this.dispose(this.hoveredChanged.disposableOn(o=>{t.target=o?1:0,this.needRedraw()})),this.dispose(this.selectedChanged.disposableOn(o=>{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 v),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[t,i]=this._winPos,r=e.globalAlpha;e.globalAlpha=this.opacity;const o=this._width*this._scale;this.selected&&Ei(e,t,i+3,o+3,"#F00"),this.actived&&this._clickEvent&&!this._clickEvent.empty&&Ei(e,t,i+5,o+5,"#FFF"),this.hovered?Ei(e,t,i+3,o+3,"#000A"):Ei(e,t,i+1,o+1,"#000A"),Ei(e,t,i,o,this._fillStyle);const l=this._scale>1.2?"bold 14px Arial":"bold 10px Arial";Kl(e,t,i-o,this._text,l,"#000"),e.globalAlpha=r}drawForPick(e,t){if(!this._show)return;const[i,r]=this._winPos,o=this._width*this._scale,l=t("default");Ei(e,i,r,o,l)}}const eh=new ArrayBuffer(4),th=new Uint32Array(eh),bi=new Uint8Array(eh);function ih(n){if(n>=16777215)throw new Error("uint32 > 0xFFFFFF");return th[0]=n,[bi[0],bi[1],bi[2]]}function sh(n,s,e){return bi[0]=n,bi[1]=s,bi[2]=e,bi[3]=0,th[0]}class nh extends b{constructor(){super(...arguments);a(this,"_pickColors",new Array(16777215));a(this,"_pickColorIndex",0)}reset(){for(let e=0;e<this._pickColorIndex;++e){const t=this._pickColors[e];if(!t)throw console.error("this._pickColors[i] should not be undefined!"),new Error("this._pickColors[i] should not be undefined!");t.poi=null,t.tag=""}this._pickColorIndex=0}createPickColor(e,t){const i=this._pickColorIndex;++this._pickColorIndex;const r=this._pickColors[i];r?(r.poi=e,r.tag=t):this._pickColors[i]={poi:e,tag:t};const[o,l,h]=ih(i);return[o,l,h]}getPickInfoFromColor(e,t,i){const r=sh(e,t,i);if(r>=this._pickColorIndex){console.error("index >= this._pickColorIndex");return}const o=this._pickColors[r];if(!o){console.error("!this._pickColors[index]");return}return o}destroyImp(){this.reset()}}const rh=(n,s)=>s.depth-n.depth;class Uu extends b{constructor(){super();a(this,"_pois",[]);a(this,"_canvasElement");a(this,"_ctx");a(this,"_offscreenCanvasElement");a(this,"_offscreenCanvasElement2");a(this,"_offscreenCtx");a(this,"_offscreenCtx2");a(this,"_size",[0,0]);a(this,"_needRedraw",!1);a(this,"_needPickRedraw",!1);a(this,"_pickColorManager",new nh);const e=document.createElement("canvas");e.style.width="100%",e.style.height="100%",this._canvasElement=e;const t=e.getContext("2d");if(t===null)throw new Error("cannot get context 2d!");this._ctx=t,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(cs(()=>{const[r,o]=this._size,{clientWidth:l,clientHeight:h}=this._canvasElement;(r!==l||o!==h)&&(this._size[0]=l,this._size[1]=h,this._canvasElement.width=l,this._canvasElement.height=h,this._offscreenCanvasElement.width=l,this._offscreenCanvasElement.height=h,this._offscreenCanvasElement2.width=l,this._offscreenCanvasElement2.height=h,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 Ne(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 t=e._needRedrawEvent;if(t){const r=t.on(()=>{this._needRedraw=!0});vt(e,"needRedrawEventHandler",r)}const i=e._needPickRedrawEvent;if(i){const r=i.on(()=>{this._needPickRedraw=!0});vt(e,"needPickRedrawEventHandler",r)}}removePoi(e){const t=this._pois.indexOf(e);if(t===-1){console.error("删除一个不存在的poi!");return}this._pois.splice(t,1),this._dirty();const i=e._needRedrawEvent;if(i){const o=Ne(e,"needRedrawEventHandler");o?i.off(o):console.error("poi没有listenHandler!")}const r=e._needPickRedrawEvent;if(r){const o=Ne(e,"needPickRedrawEventHandler");o?r.off(o):console.error("poi没有listenHandler!")}}_draw(){this._pois.sort(rh);const[e,t]=this._size;this._ctx.clearRect(0,0,e,t),this._pois.forEach(i=>i.draw(this._ctx))}pick(e,t,i,r){return this._needPickRedraw&&(this._needPickRedraw=!1,this._pickDraw()),this._getPickInfo(e,t,i,r)}_pickDraw(){this._pickColorManager.reset(),this._pois.sort(rh);const[e,t]=this._size;this._offscreenCtx.clearRect(0,0,e,t),this._pois.forEach(i=>{const r=o=>{const[l,h,c]=this._pickColorManager.createPickColor(i,o);return`rgb(${l}, ${h}, ${c})`};i.drawForPick(this._offscreenCtx,r)})}_getPickInfo(e,t,i,r){const o=this._offscreenCtx.getImageData(e,t,i,r),l=[],h=o.data.length/4;for(let c=0;c<h;++c){const u=o.data[c*4+0],p=o.data[c*4+1],g=o.data[c*4+2];if(o.data[c*4+3]===255){const y=this._pickColorManager.getPickInfoFromColor(u,p,g);if(y&&y.poi&&!l.includes(y)){let S=!0;{const[C,T]=this._size;this._offscreenCtx2.clearRect(0,0,C,T);const V=Q=>"rgb(255, 255, 255)";y.poi.drawForPick(this._offscreenCtx2,V);const z=this._offscreenCtx2.getImageData(e,t,i,r),x=z.data[c*4+0],$=z.data[c*4+1],Y=z.data[c*4+2];z.data[c*4+3],x===255&&$===255&&Y===255||(S=!1)}S&&l.push(y)}}}return l}}class ho extends b{constructor(){super(...arguments);a(this,"_closeEvent");a(this,"_show",!0);a(this,"_showChanged");a(this,"_opacity",1);a(this,"_opacityChanged");a(this,"_winPos",[0,0]);a(this,"_winPosChanged")}set winPos(e){const[t,i]=e,[r,o]=this._winPos;(t!==r||i!==o)&&(this._winPos[0]=t,this._winPos[1]=i,this._winPosChanged&&this._winPosChanged.emit(this._winPos))}get winPos(){return this._winPos}get winPosChanged(){return this._winPosChanged=this._winPosChanged||new v,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 v,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 v,this._showChanged}get closeEvent(){return this._closeEvent||(this._closeEvent=new v),this._closeEvent}}const co=new WeakMap;function uo(n){if(!co.has(n)){const s=new An(()=>new n,e=>e.reset());co.set(n,s)}return co.get(n)}class po extends ho{constructor(){super();a(this,"_div");a(this,"_contentDiv");a(this,"_originOffsetX",0);a(this,"_originOffsetY",0);a(this,"_originRatioX",.5);a(this,"_originRatioY",1);a(this,"_divChanged",new v);const e=document.createElement("div");e.style.cssText="width: 0px; height: 0px; position: absolute; opacity: 1.0; visibility: visible;";const t=document.createElement("div");t.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,t.appendChild(i),e.appendChild(t),this._div=e,this.dispose(this._divChanged.disposableOn(()=>{t.style.left=`${-this._originOffsetX}px`,t.style.top=`${-this._originOffsetY}px`,t.style.transform=`translateX(-${100*this._originRatioX}%) translateY(-${100*this._originRatioY}%)`})),this.dispose(this.winPosChanged.disposableOn(([r,o])=>{this._div.style.left=`${r}px`,this._div.style.top=`${o}px`})),this.dispose(this.opacityChanged.disposableOn(r=>{this._div.style.opacity=`${r}`})),this.dispose(this.showChanged.disposableOn(r=>{this._div.style.visibility=r?"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 oh extends b{constructor(e,t){super();a(this,"_floatDiv");a(this,"_show",!1);a(this,"_showChanged");this._customDivClass=e,this._divContainer=t,this.dispose(()=>{this.show=!1})}_updateDivPoi(){if(this._show){const{floatDiv:t}=this;t.element.parentElement||this._divContainer.appendChild(t.element)}else{const{_floatDiv:t}=this;t&&t.element.parentElement&&this._divContainer.removeChild(t.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=uo(this._customDivClass).create();this.dispose(()=>{uo(this._customDivClass).destroy(e)}),this._floatDiv=e}return this._floatDiv}get showChanged(){return this._showChanged||(this._showChanged=new v),this._showChanged}}const Bu=["top","bottom","left","right"];function Wu(n){return Object.entries(n).map(([s,e])=>Bu.includes(s)?`${s}: ${e}px; `:"").join("")}function ah(n,s,e){const t=document.createElement("div");t.style.cssText=`position: absolute; ${Wu(e)} background-color: ${n}; border-radius: ${s}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 t.innerHTML=i,t}function lh(n,s,e="rgba(0,0,0,0.7)"){const t=document.createElement("div");t.style.cssText=`margin: 0 auto; width: ${n}px; height: ${s}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: ${n*.5}px solid transparent; border-right: ${n*.5}px solid transparent; border-top: ${s}px solid ${e};`,t.appendChild(i),[t,i]}class hh extends po{constructor(){super();a(this,"_borderDiv");a(this,"_closeDiv");a(this,"_innerContentDiv");a(this,"_colorStr","rgba(0, 0, 0, 0.7)");a(this,"_divColorChanged",new v);a(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 t=ah(this._colorStr,10,{top:3,right:3}),[i,r]=lh(2*this._borderRadius,2*this._borderRadius,this._colorStr),o=document.createElement("div");this._innerContentDiv=o,e.appendChild(o),e.appendChild(t),this.contentDiv.appendChild(e),this.contentDiv.appendChild(i),t.style.opacity="0.1",t.onmouseenter=()=>{t.style.opacity="1.0"},t.onmouseleave=()=>{t.style.opacity="0.1"},t.onclick=()=>{this._closeEvent&&this._closeEvent.emit()},this._closeDiv=t,this.dispose(this._divColorChanged.disposableOn(()=>{r.style.borderTopColor=this._colorStr,e.style.backgroundColor=this._colorStr,i.style.width=`${this._borderRadius*2}px`,i.style.height=`${this._borderRadius*2}px`,r.style.borderLeft=`${this._borderRadius}px`,r.style.borderRight=`${this._borderRadius}px`,r.style.borderTop=`${this._borderRadius*2}px`}));const l=h=>{h.key==="Escape"&&this._closeEvent&&this._closeEvent.emit()};document.body.addEventListener("keydown",l,!0),this.dispose(()=>{document.removeEventListener("keydown",l,!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 Hu extends hh{constructor(){super();a(this,"_iframe");a(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 t=i=>{i.source===this._iframe.contentWindow&&(this._iframeMessageEvent?this._iframeMessageEvent.emit(i):console.warn(`iframe消息接收到未处理!data: ${i.data}`))};globalThis.addEventListener("message",t),this.dispose(()=>{globalThis.removeEventListener("message",t)})}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 v,this._iframeMessageEvent}}class $u extends ho{constructor(){super();a(this,"_div");a(this,"_contentContainer");a(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 t=document.createElement("div");t.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(t),t.appendChild(i),this._contentContainer=i,this._div=e,this.dispose(this.winPosChanged.disposableOn(([r,o])=>{this._div.style.left=`${r}px`,this._div.style.top=`${o-50}px`})),this.dispose(this.opacityChanged.disposableOn(r=>{this._div.style.opacity=`${r}`})),this.dispose(this.showChanged.disposableOn(r=>{this._div.style.visibility=r?"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 Gu extends po{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 Ju extends b{constructor(e,t){super();a(this,"_cursorDiv");a(this,"_pointerOut",this.disposeVar(w(!1)));a(this,"_show",this.disposeVar(w(!0)));this._cursorDiv=new oh(t,e),this.dispose(()=>this._cursorDiv.destroy());const i=o=>{const[l,h]=we(o);this._cursorDiv.floatDiv.winPos=[l,h]};e.addEventListener("pointermove",i),this.dispose(()=>e.removeEventListener("pointermove",i));const r=()=>{this._cursorDiv.show=this.show&&this._pointerOut.value};r(),this.dispose(this.showChanged.disposableOn(r)),this.dispose(this._pointerOut.changed.disposableOn(r))}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 mn(n,s,e){if(!(n.tree===s.tree&&n!==s&&!n.isAncestorOf(s))||n.tree!==s.tree||!n.parent)return!1;if(!n.parent.children)throw console.error("当前节点的父节点没有子节点?这是不可能的!"),new Error("当前节点的父节点没有子节点?这是不可能的!");return!(s===n||n.isAncestorOf(s)||e!=="inner"&&!s.parent||e==="inner"&&!s.children)}function qn(n,s,e){if(!n.tree||!s.tree||n.tree!==s.tree)return;if(!n.parent){console.warn("当前节点没有父节点,那么该节点无法被移动!");return}if(!n.parent.children)throw console.error("当前节点的父节点没有子节点?这是不可能的!"),new Error("当前节点的父节点没有子节点?这是不可能的!");if(s===n){console.warn("自身不能拖放到自身!");return}if(n.isAncestorOf(s)){console.warn("当前节点不能拖放到它自身的后代节点之上!");return}if(e!=="inner"&&!s.parent){console.warn("目标节点没有父节点,无法拖放!");return}if(e==="inner"&&!s.children){console.warn("无法移动到目标节点的子节点中,因为目标节点不是组节点!");return}n.tree._startTransaction();const t=n.parent.children.indexOf(n);if(n.parent.children.splice(t,1),e!=="inner"){const{parent:i}=s;if(!i||!i.children)throw new Error("!parent");const r=i.children.indexOf(s);e==="before"?i.children.splice(r,0,n):e==="after"&&i.children.splice(r+1,0,n)}else s.children.push(n);n.tree._stopTransaction()}function ch(n,s,e){return Wr(n,t=>mn(t,s,e))}function dh(n,s,e){for(let t of n)mn(t,s,e)?qn(t,s,e):console.warn(`treeItem(id: ${t.id}) cannot move...`)}const qu={checked:1,unchecked:2,indeterminate:3},Xu=["checked","unchecked","indeterminate"];class uh extends b{constructor(e){super();a(this,"_collapsed",this.disposeVar(w(!1)));a(this,"_checkedStatus",this.disposeVar(w("unchecked")));a(this,"_selected",this.disposeVar(w(!1)));a(this,"_moveToPositionMode",this.disposeVar(w("none")));a(this,"_updateCheckedStatusFromChildrenEvent",this.disposeVar(new v));this._treeItem=e;const t=()=>this._treeItem.tree&&this._treeItem.tree.itemsChanged.emit([this._treeItem]);this.dispose(this._collapsed.changed.disposableOn(t)),this.dispose(this._checkedStatus.changed.disposableOn(t)),this.dispose(this._selected.changed.disposableOn(t)),this.dispose(this._moveToPositionMode.changed.disposableOn(t)),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(oe(this._updateCheckedStatusFromChildrenEvent));this.dispose(i.disposableOn(()=>{if(!this._treeItem.children)return;let r=0;Br(this._treeItem.children,o=>(r|=qu[o.uiTreeObject.checkedStatus],r===3)),r>0&&(this._checkedStatus.value=Xu[r-1])})),this.dispose(this._treeItem.childrenResetedEvent.disposableOn(r=>{!r&&this.checkedStatus==="indeterminate"&&(this._checkedStatus.value="unchecked")}));{const r=(o,l,h=!0)=>{if(l)o.selectedItems.push(this._treeItem);else{const c=o.selectedItems.indexOf(this._treeItem);c===-1?h&&console.error("selectedItems index -1"):o.selectedItems.splice(c,1)}};this.dispose(this._selected.changed.disposableOn(o=>{const{tree:l}=this._treeItem;l&&r(l,o)})),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 t=e?"checked":"unchecked";if(this._checkedStatus.value!==t&&(this._checkedStatus.value=t,this._treeItem.children))for(let i of this._treeItem.children)i.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 lt=class lt extends b{constructor(e,t=!1,i){super();a(this,"_children");a(this,"_childrenResetedEvent");a(this,"_childrenToChangeEvent");a(this,"_childrenChangedEvent");a(this,"_parent",this.disposeVar(w(void 0)));a(this,"_level",this.disposeVar(w(0)));a(this,"_id");a(this,"_uiTreeObject",this.disposeVar(new uh(this)));this._tree=e,this._hasChildren=t,this._id=i??ns(),this._id!=="_ROOT"&&lt.wm.has(this._id)&&console.warn(`创建了id(${this._id})相同的树节点,会导致之前的树节点无法索引!`),lt.wm.set(this._id,this),this.dispose(()=>{if(this._id!=="_ROOT"&&!lt.wm.has(this._id)){console.warn(`树节点(${this._id})不在wm树上!`);return}lt.wm.delete(this._id)}),this.dispose(this._parent.changed.disposableOn(()=>{this._updateLevel()})),this.dispose(this._level.changed.disposableOn(()=>{if(this.children)for(let r of this.children)r._updateLevel()})),lt.allTreeItems.set(this._id,this),this.dispose(()=>{lt.allTreeItems.delete(this._id)})}static getFromId(e){return lt.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 hn);this._children=e,this.dispose(e.toChangeEvent.disposableOn((r,o)=>{for(let l of r){const{start:h,deleteCount:c,items:u}=l;for(let p=h;p<h+c;++p)o.get(p)._parent.value=void 0;for(let p of u){if(p.parent)throw console.error("请检查新增的treeItem是否正在使用!"),new Error("item.parent should not exist!");p._parent.value=this}}}));const t=new Set,i=new Set;this.dispose(e.toChangeEvent.disposableOn((r,o)=>{var l;if(this.tree){t.clear(),i.clear();for(let h of r){const{start:c,deleteCount:u,items:p}=h;for(let g=c;g<c+u;++g)t.add(o.get(g));for(let g of p)i.add(g)}for(let h of t)i.has(h)&&(t.delete(h),i.delete(h));(l=this.tree)==null||l.itemChildrenToChange.emit(this,r,t,i)}})),this.dispose(e.changedEvent.disposableOn(()=>{var r;(r=this.tree)==null||r.itemChildrenChanged.emit(this)})),this.dispose(e.toChangeEvent.disposableOn((...r)=>this._childrenToChangeEvent&&this._childrenToChangeEvent.emit(...r))),this.dispose(e.changedEvent.disposableOn((...r)=>this._childrenChangedEvent&&this._childrenChangedEvent.emit(...r)))}return this._children}else return}get childrenResetedEvent(){return this._childrenResetedEvent||(this._childrenResetedEvent=new v),this._childrenResetedEvent}get childrenToChangeEvent(){return this._childrenToChangeEvent||(this._childrenToChangeEvent=new v),this._childrenToChangeEvent}get childrenChangedEvent(){return this._childrenChangedEvent||(this._childrenChangedEvent=new v),this._childrenChangedEvent}resetChildren(e=!1){this._children&&(this._children.length=0),this._hasChildren=e,this._childrenResetedEvent&&this._childrenResetedEvent.emit(e)}*getDescendants(e){const t=this,i=[],r=[];for(t.children&&t.children.length>0&&(!e||e(t))&&(i.push(0),r.push(t.children));i.length>0;){const o=i[i.length-1],l=r[r.length-1],h=l.get(o);yield h,o<l.length-1?++i[i.length-1]:(r.pop(),i.pop()),h.children&&h.children.length>0&&(!e||e(h))&&(i.push(0),r.push(h.children))}}*getAncestors(e){let t=this.parent;for(;t&&(yield t,!(e&&!e(t)));)t=t.parent}isDescendantOf(e){for(let t of this.getAncestors())if(t===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,t){return mn(this,e,t)}moveTo(e,t){qn(this,e,t)}detachFromParent(){if(!this.parent||!this.parent.children)return;const e=this.parent.children.indexOf(this);this.parent.children.splice(e,1)}insertNewTreeItem(e,t){if(t&&t.tree!==this.tree)return console.warn("newTreeItem.tree !== this.tree"),!1;if(this.children&&e.startsWith("Inner"))return t&&this.children.push(t),!0;if(e==="Inner")return!1;const i=this.parent;if(!i||!i.children)return!1;const r=i.children.indexOf(this);return e.endsWith("Before")?t&&i.children.splice(r,0,t):e.endsWith("After")&&t&&i.children.splice(r+1,0,t),!0}};a(lt,"wm",new Map),a(lt,"allTreeItems",new Map);let vn=lt;class ph extends b{constructor(e){super();a(this,"_redrawEvent",this.disposeVar(new v));a(this,"_containerScrollTop",this.disposeVar(w(0)));a(this,"_containerClientHeight",this.disposeVar(w(-1)));a(this,"_container",this.disposeVar(w(void 0)));a(this,"_redrawInfo",{topFreeSpaceHeight:0,topUnvisibleItemNum:0,middleTreeItems:[],bottomFreeSpaceHeight:0,bottomUnvisibleItemNum:0});this._tree=e;const t=this._containerClientHeight,i=this._containerScrollTop,r=this._tree._forceRedrawEvent,o=this.disposeVar(oe(this._tree.itemDivHeightChanged,this._tree.itemChildrenChanged,this._tree.itemsChanged,t.changed,i.changed,r)),{redrawInfo:l}=this,h=u=>{const p=u.uiTreeObject;return!!u.children&&(!p||!p.collapsed)};this.dispose(o.disposableOn(()=>{if(l.topFreeSpaceHeight=0,l.topUnvisibleItemNum=0,l.middleTreeItems.length=0,l.bottomFreeSpaceHeight=0,l.bottomUnvisibleItemNum=0,this._containerClientHeight.value>=0){const u=Hr(this._tree.getDescendants(h)),p=this._tree.itemDivHeight,g=p*u,m=Lt([Zt([Lt([g-t.value,0]),i.value]),0]),y=m/p|0,S=Math.ceil((m-y*p+t.value)/p)|0;y>0&&(l.topUnvisibleItemNum=y,l.topFreeSpaceHeight=y*this._tree.itemDivHeight);const C=y+S;let T=0;for(let z of this._tree.getDescendants(h)){if(T>=C)break;T>=y&&l.middleTreeItems.push(z),++T}const V=u-y-S;V>0&&(l.bottomUnvisibleItemNum=V,l.bottomFreeSpaceHeight=V*this._tree.itemDivHeight)}else for(let u of this._tree.getDescendants(h))l.middleTreeItems.push(u);this._redrawEvent.emit(l)}));let c;this.dispose(()=>c&&(c.destroy(),c=void 0)),this.dispose(this.containerChanged.disposableOn(u=>{c&&(c.destroy(),c=void 0),u&&(c=dn(),c.start(()=>{const{scrollTop:p,clientHeight:g}=u;typeof p>"u"||typeof g>"u"?is("createUiTreeWithContainer error: conainter has no scrollTop or clientHeight property!"):(this.containerScrollTop=p,this.containerClientHeight=g)}))}))}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 t=o=>{const l=o.uiTreeObject;return!!o.children&&(!l||!l.collapsed)};let i=0,r=!1;for(let o of this._tree.getDescendants(t)){if(o===e){r=!0;break}++i}if(r)return[i,i*this._tree.itemDivHeight]}collapseAll(){console.log("collapseAll");for(let e of this.tree.root.getDescendants()){const t=e.uiTreeObject;t.collapsed=!0}}expandAll(){console.log("expandAll");for(let e of this.tree.root.getDescendants()){const t=e.uiTreeObject;t.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 t of this._tree.getDescendants())(!e||e(t))&&(yield t)}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 t of this.getAllItems())(!e||!e.includes(t))&&(t.uiTreeObject.selected=!0)}clearAllSelectedItems(e){for(let t of this.getAllSelectedItems())(!e||!e.includes(t))&&(t.uiTreeObject.selected=!1)}checkAllItems(e){for(let t of this.getAllItems())(!e||!e.includes(t))&&t.uiTreeObject.check(!0)}clearAllCheckedItems(e){for(let t of this.getAllCheckedItems())(!e||!e.includes(t))&&t.uiTreeObject.check(!1)}}const si=class si extends b{constructor(e){super();a(this,"_root",this.disposeVar(new vn(this,!0,"_ROOT")));a(this,"_itemChildrenChanged",this.disposeVar(new v));a(this,"_itemChildrenToChange",this.disposeVar(new v));a(this,"_itemsAdded",this.disposeVar(new v));a(this,"_itemsDeleted",this.disposeVar(new v));a(this,"_itemsChanged",this.disposeVar(new v));a(this,"_transactionStack",0);a(this,"_addedItems",new Set);a(this,"_deletedItems",new Set);a(this,"_selectedItems",this.disposeVar(new hn));a(this,"_itemDivHeight",this.disposeVar(w(si.defaultItemDivHeight)));a(this,"_forceRedrawEvent",this.disposeVar(new v));a(this,"_uiTree",this.disposeVar(new ph(this)));this._root._tree.value=this,this.dispose(this._itemChildrenToChange.disposableOn((t,i)=>{if(!t.children){console.error("!item.children");return}for(let r of i){const{start:o,deleteCount:l,items:h}=r;for(let c=o;c<o+l;++c){const u=t.children.get(c);this._deletedItems.has(u)?console.error(`this._deletedItems.has(currentItem(${u.id}))`):this._deletedItems.add(u)}for(let c of h)this._deletedItems.has(c)?this._deletedItems.delete(c):this._addedItems.add(c)}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 t;for(let i of this.getDescendants())if(i.id===e){t=i;break}return t}_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}};a(si,"defaultItemDivHeight",24),a(si,"canMoveToTreeItem",mn),a(si,"moveToTreeItem",qn),a(si,"canMoveToTreeItems",ch),a(si,"moveToTreeItems",dh);let Si=si;class le extends b{constructor(e,t,i=!0,r){super();a(this,"_obj",this.disposeVar(w(void 0)));this._resetEvent=e,this._createFunc=t;const o=this._resetEvent,l=this._createFunc,h=()=>{this._obj.value&&(this._obj.value.destroy(),this._obj.value=void 0)};this.dispose(h);const c=(...u)=>{h(),this._obj.value=l(...u)};i&&(r?this._obj.value=l(...r):this._obj.value=l()),this.dispose(o.disposableOn(c))}get obj(){return this._obj.value}get objChanged(){return this._obj.changed}}class Yu extends b{constructor(e,t=!0,i){super();a(this,"_event",this.disposeVar(new v));a(this,"_objResettingWithEvent");this._createFunc=e,this._execOnInit=t,this._initParams=i,this._objResettingWithEvent=this.disposeVar(new le(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 Or=class Or extends b{constructor(){super();a(this,"_set",new Set);a(this,"_toChangeEvent",this.dv(new v));a(this,"_changedEvent",this.dv(new v));a(this,"main");this.dispose(()=>{this._set.size!==0&&(Or.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 t of e)this._toChangeEvent.emit([],[t]),this._set.add(t),this._changedEvent.emit([],[t])}delete(...e){for(let t of e)this.main&&this.main==t&&(this.main=void 0),this._toChangeEvent.emit([t],[]),this._set.delete(t),this._changedEvent.emit([t],[])}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()}};a(Or,"warnOnDestroying",!0);let Xn=Or;async function gh(n){const s=[],e=[],t=n.entries();for await(const[i,r]of t){const o=r;o.kind==="file"?s.push(i):o.kind==="directory"&&e.push(i)}return{files:s,dirs:e}}async function go(n){return await(await n.getFile()).text()}async function fh(n){const s=await go(n);try{return JSON.parse(s)}catch{return}}async function mh(n){return await(await n.getFile()).arrayBuffer()}class vh extends b{constructor(s){super(),this._rootDirHandle=s}get rootDirHandle(){return this._rootDirHandle}async getSubFilesAndDirs(){return await gh(this._rootDirHandle)}async getDir(s){let e=this._rootDirHandle;for(const t of s)if(e=await(e==null?void 0:e.getDirectoryHandle(t)),!e){console.log(`getDirectoryHandle ${t} failed`);return}return e}async getFile(s,e){const t=await this.getDir(s);if(t)try{return await t.getFileHandle(e)}catch(i){console.error(`未能获取当前文件 ${s.join("/")}/${e} error: ${i}`,i);return}}}class _h extends b{constructor(e){super();a(this,"_startRootDirId",0);a(this,"_dirMap",new Map);this._prefix=e}get prefix(){return this._prefix}async getRootDirId(e){let t;try{console.log("window.showDirectoryPicker begin"),t=await globalThis.showDirectoryPicker({id:e,mode:"read"}),console.log("window.showDirectoryPicker end",t)}catch(i){console.error(`LocalFileServer getRootDirId failed: ${i}`,i);return}if(t){const i=++this._startRootDirId,r=`${this._prefix}${i}`;return this._dirMap.set(r,new vh(t)),r}}getRootDir(e){return this._dirMap.get(e)}async getFile(e){const t=e.split("/");if(t.length<2){console.warn(`LocalFileServer getFile failed: ${e}`);return}const i=t[0],r=this._dirMap.get(i);if(!r){console.warn(`LocalFileServer getFile failed: ${e}`);return}const o=t.slice(1,t.length-1),l=t[t.length-1],h=await r.getFile(o,l);if(!h){console.warn(`LocalFileServer getFile failed: ${e}`);return}return h}async getText(e){const t=await this.getFile(e);if(t)return await go(t)}async getArrayBuffer(e){const t=await this.getFile(e);if(t)return await mh(t)}async getJson(e){const t=await this.getFile(e);if(t)return await fh(t)}async getLocalFilePath(e,t,i){const r=await this.getRootDirId(t);if(!r){console.warn("getRootDirId error!");return}const o=this.getRootDir(r);if(!o){console.warn("getRootDir error!");return}const l=await o.getSubFilesAndDirs();if(!l.files){console.warn("getSubFilesAndDirs error! 找不到符合要求的文件!");return}const h=e?l.files.filter(c=>e.some(u=>c.endsWith(u))):l.files;if(h.length===0){console.warn("找不到符合要求的文件!");return}return`https://${r}/${h[0]}`}}const yh=new _h("xe2_local");async function Ku(n,s,e){return await yh.getLocalFilePath(n,s,e)}class wh extends b{constructor(e,t){super();a(this,"_processing");this._complexImage=e,this._imageUri=t,this._processing=this.disposeVar(Le(async i=>{const r=this._complexImage,o=await i.promise(Rl(this._imageUri,this._complexImage.crossOrigin));o&&o instanceof HTMLImageElement&&(r.size=[o.naturalWidth,o.naturalHeight],r.pixelFormat="RGBA",r.copyTexture({source:o}))})),this._processing.start()}get processing(){return this._processing}}const Eh=["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"],bh=["img","gif","video","flv","hls"];let Zu=class extends b{constructor(e,t){super();a(this,"_element");this._complexImage=e,this._videoSrc=t;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 r=()=>{i.crossOrigin=this._complexImage.crossOrigin};r(),this.dispose(this._complexImage.crossOriginChanged.disposableOn(r))}{const r=()=>{i.autoplay=this._complexImage.autoplay};r(),this.dispose(this._complexImage.autoplayChanged.disposableOn(r))}{const r=()=>{i.loop=this._complexImage.loop};r(),this.dispose(this._complexImage.loopChanged.disposableOn(r))}i.muted=!0,document.body.appendChild(i),this._element=i,this.dispose(()=>document.body.removeChild(i))}get element(){return this._element}};class Sh extends b{constructor(e,t){super();a(this,"_videoDom");a(this,"_update");this._complexImage=e,this._imageUri=t,this._videoDom=this.disposeVar(new Zu(this._complexImage,this._imageUri)),this._update=this.disposeVar(cs(()=>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:t,videoHeight:i}=this.videoElement;e.size=[t,i],e.pixelFormat="RGBA",e.copyTexture({source:this.videoElement})}}function Qu(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var fo={},Vt={},Ch;function ep(){if(Ch)return Vt;Ch=1,Object.defineProperty(Vt,"__esModule",{value:!0}),Vt.loop=Vt.conditional=Vt.parse=void 0;var n=function t(i,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:o;if(Array.isArray(r))r.forEach(function(c){return t(i,c,o,l)});else if(typeof r=="function")r(i,o,l,t);else{var h=Object.keys(r)[0];Array.isArray(r[h])?(l[h]={},t(i,r[h],o,l[h])):l[h]=r[h](i,o,l,t)}return o};Vt.parse=n;var s=function(i,r){return function(o,l,h,c){r(o,l,h)&&c(o,i,l,h)}};Vt.conditional=s;var e=function(i,r){return function(o,l,h,c){for(var u=[],p=o.pos;r(o,l,h);){var g={};if(c(o,i,l,g),o.pos===p)break;p=o.pos,u.push(g)}return u}};return Vt.loop=e,Vt}var he={},Ph;function Th(){if(Ph)return he;Ph=1,Object.defineProperty(he,"__esModule",{value:!0}),he.readBits=he.readArray=he.readUnsigned=he.readString=he.peekBytes=he.readBytes=he.peekByte=he.readByte=he.buildStream=void 0;var n=function(p){return{data:p,pos:0}};he.buildStream=n;var s=function(){return function(p){return p.data[p.pos++]}};he.readByte=s;var e=function(){var p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function(g){return g.data[g.pos+p]}};he.peekByte=e;var t=function(p){return function(g){return g.data.subarray(g.pos,g.pos+=p)}};he.readBytes=t;var i=function(p){return function(g){return g.data.subarray(g.pos,g.pos+p)}};he.peekBytes=i;var r=function(p){return function(g){return Array.from(t(p)(g)).map(function(m){return String.fromCharCode(m)}).join("")}};he.readString=r;var o=function(p){return function(g){var m=t(2)(g);return p?(m[1]<<8)+m[0]:(m[0]<<8)+m[1]}};he.readUnsigned=o;var l=function(p,g){return function(m,y,S){for(var C=typeof g=="function"?g(m,y,S):g,T=t(p),V=new Array(C),z=0;z<C;z++)V[z]=T(m);return V}};he.readArray=l;var h=function(p,g,m){for(var y=0,S=0;S<m;S++)y+=p[g+S]&&Math.pow(2,m-S-1);return y},c=function(p){return function(g){for(var m=s()(g),y=new Array(8),S=0;S<8;S++)y[7-S]=!!(m&1<<S);return Object.keys(p).reduce(function(C,T){var V=p[T];return V.length?C[T]=h(y,V.index,V.length):C[T]=y[V.index],C},{})}};return he.readBits=c,he}var Ih;function tp(){return Ih||(Ih=1,(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var s=ep(),e=Th(),t={blocks:function(g){for(var m=0,y=[],S=g.data.length,C=0,T=(0,e.readByte)()(g);T!==m&&T;T=(0,e.readByte)()(g)){if(g.pos+T>=S){var V=S-g.pos;y.push((0,e.readBytes)(V)(g)),C+=V;break}y.push((0,e.readBytes)(T)(g)),C+=T}for(var z=new Uint8Array(C),x=0,$=0;$<y.length;$++)z.set(y[$],x),x+=y[$].length;return z}},i=(0,s.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(p){var g=(0,e.peekBytes)(2)(p);return g[0]===33&&g[1]===249}),r=(0,s.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,s.conditional)({lct:(0,e.readArray)(3,function(p,g,m){return Math.pow(2,m.descriptor.lct.size+1)})},function(p,g,m){return m.descriptor.lct.exists}),{data:[{minCodeSize:(0,e.readByte)()},t]}]},function(p){return(0,e.peekByte)()(p)===44}),o=(0,s.conditional)({text:[{codes:(0,e.readBytes)(2)},{blockSize:(0,e.readByte)()},{preData:function(g,m,y){return(0,e.readBytes)(y.text.blockSize)(g)}},t]},function(p){var g=(0,e.peekBytes)(2)(p);return g[0]===33&&g[1]===1}),l=(0,s.conditional)({application:[{codes:(0,e.readBytes)(2)},{blockSize:(0,e.readByte)()},{id:function(g,m,y){return(0,e.readString)(y.blockSize)(g)}},t]},function(p){var g=(0,e.peekBytes)(2)(p);return g[0]===33&&g[1]===255}),h=(0,s.conditional)({comment:[{codes:(0,e.readBytes)(2)},t]},function(p){var g=(0,e.peekBytes)(2)(p);return g[0]===33&&g[1]===254}),c=[{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,s.conditional)({gct:(0,e.readArray)(3,function(p,g){return Math.pow(2,g.lsd.gct.size+1)})},function(p,g){return g.lsd.gct.exists}),{frames:(0,s.loop)([i,l,h,r,o],function(p){var g=(0,e.peekByte)()(p);return g===33||g===44})}],u=c;n.default=u})(fo)),fo}var ip=tp();const sp=Qu(ip);var np=Th();const rp=(n,s)=>{const e=new Array(n.length),t=n.length/s,i=function(u,p){const g=n.slice(p*s,(p+1)*s);e.splice.apply(e,[u*s,s].concat(g))},r=[0,4,2,1],o=[8,8,4,2];for(var l=0,h=0;h<4;h++)for(var c=r[h];c<t;c+=o[h])i(c,l),l++;return e},op=(n,s,e)=>{const r=e;var o,l,h,c,u,p,g,$,m,y,x,S,Y,Q,qe,Ae;const C=new Array(e),T=new Array(4096),V=new Array(4096),z=new Array(4097);for(S=n,l=1<<S,u=l+1,o=l+2,g=-1,c=S+1,h=(1<<c)-1,m=0;m<l;m++)T[m]=0,V[m]=m;var x,$,Y,Q,Ae,qe;for(x=$=Y=Q=Ae=qe=0,y=0;y<r;){if(Q===0){if($<c){x+=s[qe]<<$,$+=8,qe++;continue}if(m=x&h,x>>=c,$-=c,m>o||m==u)break;if(m==l){c=S+1,h=(1<<c)-1,o=l+2,g=-1;continue}if(g==-1){z[Q++]=V[m],g=m,Y=m;continue}for(p=m,m==o&&(z[Q++]=Y,m=g);m>l;)z[Q++]=V[m],m=T[m];Y=V[m]&255,z[Q++]=Y,o<4096&&(T[o]=g,V[o]=Y,o++,(o&h)===0&&o<4096&&(c++,h+=o)),g=p}Q--,C[Ae++]=z[Q],y++}for(y=Ae;y<r;y++)C[y]=0;return C},ap=n=>{const s=new Uint8Array(n);return Re.parse(np.buildStream(s),sp)},lp=n=>{const s=n.pixels.length,e=new Uint8ClampedArray(s*4);for(var t=0;t<s;t++){const i=t*4,r=n.pixels[t],o=n.colorTable[r]||[0,0,0];e[i]=o[0],e[i+1]=o[1],e[i+2]=o[2],e[i+3]=r!==n.transparentIndex?255:0}return e},hp=(n,s,e)=>{if(!n.image){console.warn("gif frame does not have associated image.");return}const{image:t}=n,i=t.descriptor.width*t.descriptor.height;var r=op(t.data.minCodeSize,t.data.blocks,i);t.descriptor.lct.interlaced&&(r=rp(r,t.descriptor.width));const o={pixels:r,dims:{top:n.image.descriptor.top,left:n.image.descriptor.left,width:n.image.descriptor.width,height:n.image.descriptor.height}};return t.descriptor.lct&&t.descriptor.lct.exists?o.colorTable=t.lct:o.colorTable=s,n.gce&&(o.delay=(n.gce.delay||10)*10,o.disposalType=n.gce.extras.disposal,n.gce.extras.transparentColorGiven&&(o.transparentIndex=n.gce.transparentColorIndex)),o.patch=lp(o),o},cp=(n,s)=>n.frames.filter(e=>e.image).map(e=>hp(e,n.gct));async function xh(n){const e=await(await fetch(n)).arrayBuffer(),t=ap(e),i=cp(t);return{gif:t,gifFrames:i,arrayBuffer:e}}function Oh(n,s,e){return n<s?s:n>e?e:n}class Dh extends Jn{constructor(e,t=!0,i){super();a(this,"_gifFrames",this.disposeVar(w(void 0)));a(this,"_gifDurations",[]);a(this,"_gifDuration",this.disposeVar(w(0)));a(this,"_gifSize",this.disposeVar(w([0,0],(e,t)=>e.every((i,r)=>i===t[r]),e=>[...e])));a(this,"_autoPlayOnLoad",this.disposeVar(w(!0)));a(this,"_gifCanvas");this._container=e,this.loop=!0;const r=document.createElement("canvas");this._gifCanvas=r,r.style.width="100%",r.style.height="100%";const o=r.getContext("2d");this._container&&this._container.appendChild(r),this.dispose(()=>this._container&&this._container.removeChild(r));let l;this.dispose(this._gifFrames.changed.disposableOn(c=>{if(!c||c.length===0){r.width=0,r.height=0;return}const{width:u,height:p}=c[0].dims;this._gifSize.value=[u,p];const g=c.length;let m=0;this._gifDurations.length=0;for(let y=0;y<g;++y)m+=c[y].delay,this._gifDurations.push(m);this._gifDuration.value=this._gifDurations[this._gifDurations.length-1],r.width=u,r.height=p,l=o.createImageData(u,p),this.currentTimeChangedEvent.emit(this.currentTime,this.currentTime),this._autoPlayOnLoad.value&&(this.currentTime=0,this.playing=!0)}));let h=-1;this.dispose(this.currentTimeChangedEvent.disposableOn(c=>{const u=Oh(c/this.duration,0,1),p=this.gifDuration*u,g=this._gifFrames.value;if(g&&g.length>0){const m=this._getFrame(p);if(m===h)return;h=m;const y=g[m];if(y.disposalType!==0&&y.disposalType!==1&&y.disposalType!==2&&is(`gif parsed get disposalType ${y.disposalType}... frame: ${m} size: ${JSON.stringify(y.dims)}`,`gif parsed get disposalType ${y.disposalType}...`),l&&(m===0||y.disposalType===2)&&l.data.fill(0),l){const[S,C]=this._gifSize.value,{width:T,height:V,left:z,top:x}=y.dims;if(V>C)throw new Error("height > canvasHeight");for(let $=0;$<V;++$)for(let Y=0;Y<T;++Y){const Q=$*T+Y,Ae=x+$,qe=z+Y,jt=Ae*S+qe,mt=l.data,fi=y.patch,mi=fi[Q*4+3]/255;mt[jt*4+0]=mt[jt*4+0]*(1-mi)+fi[Q*4+0]*mi|0,mt[jt*4+1]=mt[jt*4+1]*(1-mi)+fi[Q*4+1]*mi|0,mt[jt*4+2]=mt[jt*4+2]*(1-mi)+fi[Q*4+2]*mi|0,mt[jt*4+3]=Oh(mt[jt*4+3]+fi[Q*4+3],0,255)|0}o.putImageData(l,0,0)}}else is("gif资源未加载!无法播放!")})),this.dispose(this._gifDuration.changed.disposableOn(()=>{this.duration=this.gifDuration})),this._autoPlayOnLoad.value=t,this._gifFrames.value=i}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 t=this._gifDurations.length;for(let i=0;i<t;++i)if(e<=this._gifDurations[i])return i;throw new Error("should not be here")}}class Fh extends b{constructor(e){super();a(this,"_player");a(this,"_url",this.disposeVar(w("")));a(this,"_loadGifFramesProcessing",this.disposeVar(Gn(e=>hs(xh(e)))));this._player=this.disposeVar(new Dh(e)),this._player.autoPlayOnLoad=!0,this._loadGifFramesProcessing.completeFunc=({gifFrames:t})=>this._player.gifFrames=t,this.dispose(this._url.changed.disposableOn(t=>{this._player.gifFrames=void 0,this._loadGifFramesProcessing.restart(new st(`reload gif(${t})`),t)}))}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 kh extends b{constructor(e,t){super();a(this,"_gif",this.disposeVar(new Fh));a(this,"_update");this._complexImage=e,this._imageUri=t,this._gif.url=this._imageUri,this._update=this.disposeVar(cs(()=>this.update())),this._update.start()}get gif(){return this._gif}update(){const{player:e}=this._gif;if(!e.gifFrames)return;const t=this._complexImage,{width:i,height:r}=e.gifCanvas;t.size=[i,r],t.pixelFormat="RGBA",t.copyTexture({source:e.gifCanvas});{const o=()=>{e.autoPlayOnLoad=this._complexImage.autoplay};o(),this.dispose(this._complexImage.autoplayChanged.disposableOn(o))}{const o=()=>{e.loop=this._complexImage.loop};o(),this.dispose(this._complexImage.loopChanged.disposableOn(o))}}}function Mh(n,s){const[e,t,i]=tn(n),r=w(void 0),o=()=>{const l=e()??s;r.value=l&&M.context.getStrFromEnv(l)};return o(),i&&r.d(i.don(o)),r.d(M.context.environmentVariablesChanged.don(o)),r}function Ah(n){const s=/\${(.*?)\}/g;if(!s.test(n))return n;const e=n.replace(s,(t,i)=>{const r=M.context.getEnv(i);return r===void 0?(console.warn(`环境变量(${i})不存在,无法进行转换`),"{env-error}"):r});return Ah(e)}class dp extends b{constructor(e){super();a(this,"_sceneObjRefs",new Map);a(this,"_refs",{});a(this,"_refsChanged",this.dv(new v));const t=(i,r,o)=>{if(o){const l=this.getLastSceneObject(o),h=this._sceneObjRefs.get(o);if(!h)console.warn(`this._sceneObjRefs中不存在ref(${o}), 可能系统存在逻辑问题`);else{const u=h.indexOf(i);u===-1?console.warn(`this._sceneObjRefs中不存在当前对象(id: ${i.id} type: ${i.typeName})!可能系统存在逻辑问题`):(h.splice(u,1),h.length===0&&this._sceneObjRefs.delete(o))}const c=this.getLastSceneObject(o);this._refs[o]=c,this._refsChanged.emit(c,l)}if(r){const l=this.getLastSceneObject(r),h=this._sceneObjRefs.get(r);h?(h.push(i),h.length>0&&console.warn(`同时存在多个ref${r}相同的场景对象!
21
+ `)}}),globalThis.g_XE3CopyRights=globalThis.g_XE3CopyRights||{},globalThis.g_XE3CopyRights[n]=d.copyright,globalThis.g_XE3SendProductUsageInfo=globalThis.g_XE3SendProductUsageInfo||!0,globalThis.g_XE3SendProductUsageInfo&&(setTimeout(()=>Pl(d.copyright),1e3*60),setInterval(()=>Pl(d.copyright),1440*60*1e3)),globalThis.g_earthsdk_copyright_print=globalThis.g_earthsdk_copyright_print??!0,globalThis.g_earthsdk_copyright_print&&d.copyright.print()}catch{console.warn("版本信息有误!")}const Tl=new Set;function is(n,s=n){Tl.has(s)||(Tl.add(s),console.warn(n))}function tn(n){const s=Rn(n),e=()=>s[0][s[1]],t=r=>{try{s[0][s[1]]=r}catch(o){is(`setValue error, obj(${s[0].constructor.name}) prop(${s[1]}) error(${o})`)}},i=s[0][s[2]];return[e,t,i]}function xd(){return!0}function Od(){throw new Error("throwOnDestroyed")}function Il(n){for(var s in n)typeof n[s]=="function"&&(n[s]=Od);n.isDestroyed=xd}const xr=class xr{constructor(){a(this,"_memId",++xr._lastMemId);a(this,"_disposers")}get __v_skip(){return!0}get memId(){return this._memId}get disposers(){return this._disposers||(this._disposers=[]),this._disposers}dispose(s){return this.disposers.push(s),s}d(s){return this.dispose(s)}disposeVar(s){return this.disposers.push(()=>s.destroy()),s}dv(s){return this.disposeVar(s)}tryDisposeVar(s){return this.disposers.push(()=>s.tryDestroy()),s}tdv(s){return this.tryDisposeVar(s)}autoDispose(s){return typeof s=="function"?this.dispose(s):this.disposeVar(s)}ad(s){return typeof s=="function"?this.dispose(s):this.disposeVar(s)}isDestroyed(){return!1}destroyImp(){}destroy(){if(this._toDestroyEvent&&this._toDestroyEvent.emit(),this.destroyImp(),this._disposers)try{const s=this._disposers,e=s.length;for(let t=e-1;t>=0;--t)s[t]();s.length=0,this._disposers=void 0}catch(s){console.error(`destroy get error! ${s}`)}return Il(this)}tryDestory(){if(!this.isDestroyed())return this.destroy()}};a(xr,"_lastMemId",-1);let b=xr,Fr;function xl(n){Fr=n}Object.defineProperties(b.prototype,{toDestroyEvent:{get(){if(this._toDestroyEvent===void 0){if(!Fr)throw new Error("Destroyable EventCtor not registered yet!");this._toDestroyEvent=this.disposeVar(new Fr)}return this._toDestroyEvent}}});class An{constructor(s,e,t=!1){a(this,"_freeElements");a(this,"_usedElementsCount");a(this,"_usedElements");a(this,"_nextCreateID");a(this,"_scratchObjs");this._createDefaultFunc=s,this._destroyFunc=e,this._freeElements=[],this._usedElementsCount=0,this._nextCreateID=1,this._scratchObjs=[],t&&(this._usedElements=[])}get usedElementsCount(){return this._usedElementsCount}get freeElementsCount(){return this._freeElements.length}_getCreateID(){return this._nextCreateID++}_create(){let s;return this._freeElements.length>0?s=this._freeElements.pop():s=this._createDefaultFunc&&this._createDefaultFunc()||{},s._cid=this._getCreateID(),s}create(){return this._create()}multiCreate(s){this._scratchObjs.length=0;for(let e=0;e<s;++e)this._scratchObjs.push(this._create());return this._scratchObjs}_destroy(s){this._destroyFunc&&this._destroyFunc(s),s._cid=void 0}destroy(...s){const e=s.length;for(let t=0;t<e;++t)this._destroy(s[t])}}function Dd(){return{item:void 0,previous:void 0,next:void 0}}function Fd(n){n.item=void 0,n.previous=void 0,n.next=void 0}const Ol=new An(Dd,Fd,!0);function kr(n,s,e){const t=Ol.create();return t.item=n,t.previous=s,t.next=e,t}function Dl(n){if(!n)throw new Error("node is undefined!");Ol.destroy(n)}function Mr(n,s){s.previous&&s.next?(s.previous.next=s.next,s.next.previous=s.previous):s.previous?(s.previous.next=void 0,n.tail=s.previous):s.next?(s.next.previous=void 0,n.head=s.next):(n.head=void 0,n.tail=void 0),s.next=void 0,s.previous=void 0}class Fl{constructor(s){a(this,"head");a(this,"tail");a(this,"_length");const{needLength:e}=s||{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(s){typeof this._length=="number"&&(this._length=s)}get length(){return this._length}get empty(){return!this.head}*[Symbol.iterator](){let s=this.head;for(;s;)yield s,s=s.next}remove(s){if(!s)throw new Error("node is undefined!");Mr(this,s),this._decrementLength(),Dl(s)}getNode(s){let e=this.head;for(;e!==null;){if(!e)throw new Error("current is undefined!");if(e.item===s)return e;e=e.next}}moveAfter(s,e){if(s!==e){Mr(this,e);var t=s.next;s.next=e,this.tail===s?this.tail=e:t&&(t.previous=e),e.next=t,e.previous=s}}moveBefore(s,e){if(s!==e){Mr(this,e);var t=s.previous;s.previous=e,this.head===s?this.head=e:t&&(t.next=e),e.previous=t,e.next=s}}insertBefore(s,e){const t=kr(e,s.previous,s);return s.previous&&(s.previous.next=t),s.previous=t,this.head===s&&(this.head=t),this._incrementLength(),t}insertAfter(s,e){const t=kr(e,s,s.next);return s.next&&(s.next.previous=t),s.next=t,this.tail===s&&(this.tail=t),this._incrementLength(),t}_setFirstNode(s){if(this.head||this.tail)throw new Error("_setFirstNode error!");const e=kr(s,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(s){return this.tail?this.insertAfter(this.tail,s):this._setFirstNode(s)}pop(){if(!this.tail)throw new Error("DoublyLinkedList is empty!");const s=this.tail.item;return this.remove(this.tail),s}shift(){if(!this.head)throw new Error("DoublyLinkedList is empty!");const s=this.head.item;return this.remove(this.head),s}unshift(s){return this.head?this.insertBefore(this.head,s):this._setFirstNode(s)}removeAll(){let s=this.head;for(;s;){const e=s.next;Dl(s),s=e}this.head=void 0,this.tail=void 0,this._setLength(0)}}function kd(){return{func:void 0,scope:void 0,_hasRemoved:!1,_once:!1}}function Md(n){n.func=void 0,n.scope=void 0,n._hasRemoved=!1,n._once=!1}const vi=new An(kd,Md,!0);class Ar{constructor(){a(this,"__dll");a(this,"__currentListenerStack")}get _dll(){return this.__dll=this.__dll??new Fl({needLength:!0}),this.__dll}_pushCurrentListener(s){this.__currentListenerStack?Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.push(s):this.__currentListenerStack=[this.__currentListenerStack,s]:this.__currentListenerStack=s}_popCurrentListener(){if(this.__currentListenerStack)Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.pop():this.__currentListenerStack=void 0;else throw new Error("cannot pop!")}_hasCurrentListener(s){return this.__currentListenerStack?Array.isArray(this.__currentListenerStack)?this.__currentListenerStack.indexOf(s)!==-1:this.__currentListenerStack===s:!1}do(...s){if(this.__dll&&!this._dll.empty){let e=this._dll.head;for(;e;){const t=e.item;t._hasRemoved||(this._pushCurrentListener(t),t.func.call(t.scope,...s),this._popCurrentListener());const i=e.next;t._once&&!t._hasRemoved&&(this.remove(e),e=void 0),e&&this._clearHasRemoved(e),e=i}}}get empty(){if(!this.__dll||this._dll.empty)return!0;let s=!0,e=this._dll.head;for(;e;){if(!e.item._hasRemoved){s=!1;break}e=e.next}return s}isHandlerValid(s){return!s.item._hasRemoved}nextHandler(s){if(!s.item._hasRemoved)throw new Error("handler has removed!");let e=s.next;for(;e&&e.item._hasRemoved;)e=e.next;return e}prevHandler(s){if(!s.item._hasRemoved)throw new Error("handler has removed!");let e=s.previous;for(;e&&e.item._hasRemoved;)e=e.previous;return e}moveAfter(s,e){if(s.item._hasRemoved||e.item._hasRemoved)throw new Error("handler or nextHandler has removed!");return this._dll.moveAfter(s,e)}moveBefore(s,e){if(s.item._hasRemoved||e.item._hasRemoved)throw new Error("handler or prevHandler has removed!");return this._dll.moveBefore(s,e)}insertBefore(s,e,t,i=!1){if(s.item._hasRemoved)throw new Error("handler has removed!");const r=vi.create();return r.func=e,r.scope=t,r._once=i,this._dll.insertBefore(s,r)}insertAfter(s,e,t,i=!1){if(s.item._hasRemoved)throw new Error("handler has removed!");const r=vi.create();return r.func=e,r.scope=t,r._once=i,this._dll.insertAfter(s,r)}_clearHasRemoved(s){s.item._hasRemoved&&!this._hasCurrentListener(s.item)&&(vi.destroy(s.item),this._dll.remove(s))}remove(s){if(!s.item||s.item._hasRemoved)throw new Error("handler has removed!");this._hasCurrentListener(s.item)?s.item._hasRemoved=!0:(vi.destroy(s.item),this._dll.remove(s))}removeAll(){if(this.__dll&&!this._dll.empty){let s=this._dll.head;for(;s;){const e=s.next;s.item._hasRemoved||this.remove(s),s=e}}}destroy(){if(!this.__dll)return;let s=this._dll.head;for(;s;){const e=s.next,t=s;this._hasCurrentListener(t.item)||(console.warn("Event has remove item that on current stack!"),console.warn(`${t.item.func.toString()}`)),vi.destroy(t.item),this._dll.remove(t),s=e}this.__dll=void 0,this.__currentListenerStack=void 0}push(s,e,t=!1){const i=vi.create();return i.func=s,i.scope=e,i._once=t,this._dll.push(i)}pop(){const s=this.tail;if(!s)throw new Error("pop error!");this.remove(s)}shift(){const s=this.head;if(!s)throw new Error("shift error!");this.remove(s)}unshift(s,e,t=!1){const i=vi.create();return i.func=s,i.scope=e,i._once=t,this._dll.unshift(i)}get tail(){let s=this._dll.tail;for(;s&&s.item._hasRemoved;)s=s.previous;return s}get head(){let s=this._dll.head;for(;s&&s.item._hasRemoved;)s=s.previous;return s}}class sn{constructor(){a(this,"_listenerHandler");a(this,"_cid")}_reset(s,e){this._listenerHandler=s,this._cid=e}clone(s){return s=s??new sn,s._reset(this._listenerHandler,this._cid),s}get valid(){if(typeof this._listenerHandler<"u"&&typeof this._cid=="number"){const s=this._listenerHandler._cid;if(typeof s<"u"&&this._cid===s)return!0}return!1}}class jr extends sn{}class v extends b{constructor(){super(...arguments);a(this,"__pipe");a(this,"beforeCallback");a(this,"afterCallback")}get _pipe(){return this.__pipe=this.__pipe??new Ar,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,t,i=!1,r){const o=i?this._pipe.unshift(e,t,!1):this._pipe.push(e,t,!1);return r=r??new jr,r._reset(o,o._cid),r}disposableOn(e,t,i=!1,r){const o=this.on(e,t,i,r);return()=>{o.valid&&this.off(o)}}don(e,t,i=!1,r){return this.disposableOn(e,t,i,r)}disposableWeakOn(e,t,i=!1,r){const o=new b,l=()=>{!o.isDestroyed()&&o.destroy()};return o.dispose(this.disposableOn(e,t,i,r)),o.dispose(this.toDestroyEvent.disposableOn(l)),l}dwon(e,t,i=!1,r){return this.disposableWeakOn(e,t,i,r)}once(e,t,i=!1,r){const o=i?this._pipe.unshift(e,t,!0):this._pipe.push(e,t,!0);return r=r??new jr,r._reset(o,o._cid),r}disposableOnce(e,t,i=!1,r){const o=this.once(e,t,i,r);return()=>o.valid&&this.off(o)}donce(e,t,i=!1,r){const o=this.once(e,t,i,r);return()=>o.valid&&this.off(o)}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||(is("The event is destroying with listeners!"),this._pipe.removeAll())}}xl(v);function ss(n,s){return s=s??new sn,s._reset(n,n._cid),s}class Ad{constructor(){a(this,"__pipe")}get _pipe(){return this.__pipe=this.__pipe??new Ar,this.__pipe}get empty(){return!this.__pipe||this._pipe.empty}do(...s){return this._pipe.do(...s)}isHandlerValid(s){return s.valid?this._pipe.isHandlerValid(s._listenerHandler):!1}moveAfter(s,e){if(!s.valid||!e.valid)throw new Error("handler or nextHander is not valid!");return this._pipe.moveAfter(s._listenerHandler,e._listenerHandler)}moveBefore(s,e){if(!s.valid||!e.valid)throw new Error("handler or nextHander is not valid!");return this._pipe.moveAfter(s._listenerHandler,e._listenerHandler)}insertBefore(s,e,t,i=!1,r){if(!s.valid)throw new Error("handler is not valid!");const o=this._pipe.insertBefore(s._listenerHandler,e,t,i);return ss(o,r)}insertAfter(s,e,t,i=!1,r){if(!s.valid)throw new Error("handler is not valid!");const o=this._pipe.insertAfter(s._listenerHandler,e,t,i);return ss(o,r)}remove(s){if(!s.valid)throw new Error("handler is not valid!");return this._pipe.remove(s._listenerHandler)}removeAll(){return this._pipe.removeAll()}push(s,e,t=!1,i){const r=this._pipe.push(s,e,t);return ss(r,i)}pop(){return this._pipe.pop()}shift(){return this._pipe.shift()}unshift(s,e,t=!1,i){const r=this._pipe.unshift(s,e,t);return ss(r,i)}getTail(s){const e=this._pipe.tail;if(e)return ss(e,s)}getHead(s){const e=this._pipe.head;if(e)return ss(e,s)}}class ge extends b{constructor(e,t,i){super();a(this,"_changed");a(this,"_value");a(this,"_oldValue");a(this,"toChangeFunc");this._equalsFunc=t,this._assignFunc=i,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 v)),this._changed}forceChange(){this._changed&&this._changed.emit(this._value,this._value)}}function w(n,s,e){return new ge(n,s,e)}function F(n){return new ge(n,(s,e)=>s.length!==e.length?!1:s.every((t,i)=>t===e[i]),(s,e)=>{const t=e||new Array(s.length);return t.length=s.length,s.forEach((i,r)=>t[r]=i),t})}function q(n){return w(n,(s,e)=>s===void 0||e===void 0?s===void 0&&e===void 0:s.length!==e.length?!1:s.every((t,i)=>t===e[i]),(s,e)=>{if(!s)return;const t=e||new Array(s.length);return t.length=s.length,s.forEach((i,r)=>t[r]=i),t})}function jn(n,s,e){return w(n,(t,i)=>t.length!==i.length?!1:t.every((r,o)=>s&&s(r,i[o])||r===i[o]),(t,i)=>{const r=i||new Array(t.length);return r.length=t.length,t.forEach((o,l)=>{r[l]=e?e(o):o}),r})}function Yt(n,s,e){return w(n,(t,i)=>t===void 0||i===void 0?t===void 0&&i===void 0:t.length!==i.length?!1:t.every((r,o)=>s&&s(r,i[o])||r===i[o]),(t,i)=>{if(!t)return;const r=i||new Array(t.length);return r.length=t.length,t.forEach((o,l)=>{r[l]=e?e(o):o}),r})}function B(n){return new ge(n,(s,e)=>s===e||s!==void 0&&e!==void 0&&JSON.stringify(s)===JSON.stringify(e),(s,e)=>{if(s!==void 0)return JSON.parse(JSON.stringify(s))})}function te(n){return new ge(n,(s,e)=>s===e||s!==void 0&&e!==void 0&&JSON.stringify(s)===JSON.stringify(e),(s,e)=>{if(s!==void 0)return JSON.parse(JSON.stringify(s))})}function jd(n){return new ge(n,(s,e)=>{if(s===e)return!0;if(s===void 0||e===void 0)return!1;const t=Object.keys(s),i=Object.keys(e);return t.length!==i.length?!1:t.every((r,o)=>r===i[o]&&s[r]===e[r])},(s,e)=>s&&{...s})}function Rd(n){return new ge(n,(s,e)=>{if(s===e)return!0;if(s===void 0||e===void 0)return!1;const t=Object.keys(s),i=Object.keys(e);return t.length!==i.length?!1:t.every((r,o)=>r===i[o]&&s[r]===e[r])},(s,e)=>s&&{...s})}function Nd(n){return jn(n,(s,e)=>s.every((t,i)=>t===e[i]),s=>[...s])}function Rr(n){return Yt(n,(s,e)=>s.every((t,i)=>t===e[i]),s=>[...s])}function Ld(n){return jn(n,(s,e)=>JSON.stringify(s)===JSON.stringify(e),s=>JSON.parse(JSON.stringify(s)))}function Vd(n){return Yt(n,(s,e)=>JSON.stringify(s)===JSON.stringify(e),s=>JSON.parse(JSON.stringify(s)))}function Nt(n){return Rr(n)}function Nr(n){return Yt(n,(s,e)=>s.length===e.length&&s.every((t,i)=>t.every((r,o)=>r===e[i][o])),s=>s.map(e=>[...e]))}function zd(n){return Yt(n,(s,e)=>s.length===e.length&&s.every((t,i)=>t.every((r,o)=>r===e[i][o])),s=>s.map(e=>[...e]))}function Rn(n){const s=n instanceof ge?[n,"value","changed"]:[...n];return s[2]=s[2]||s[1]+"Changed",s}function Lr(n,s,e,t=!1){s[2]=s[2]||s[1]+"Changed";const i=()=>{const r=s[0][s[1]];e?n[0][n[1]]=e(r):n[0][n[1]]=r};return i(),t?s[0][s[2]].disposableWeakOn(i):s[0][s[2]].disposableOn(i)}function Ud(n,s,e,t,i=!1){const r=Lr(n,s,e,i),o=Lr(s,n,t,i);return()=>(r(),o())}function _(n,s,e,t=!1){const i=n instanceof ge?[n,"value","changed"]:n,r=s instanceof ge?[s,"value","changed"]:s;return Lr(i,r,e,t)}function D(n,s,e,t,i=!1){const r=Rn(n),o=Rn(s);return Ud(r,o,e,t,i)}function Bd(n,s,e,t=!1){const[i]=tn(s);return D(n,s,r=>r??e,r=>{if(!(r===e&&i()===void 0))return r},t)}function ns(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){var s=Math.random()*16|0,e=n==="x"?s:s&3|8;return e.toString(16)})}function Nn(n,s){if(!globalThis||!globalThis.setTimeout||!globalThis.clearTimeout)throw new Error("目前只适合在浏览器中使用!");let e=0;function t(){e>0&&(globalThis.clearTimeout(e),e=0)}function i(...r){t(),e=globalThis.setTimeout(n,s,...r)}return[i,t]}function Vr(n,s,...e){const t=setInterval(n,s,...e);return()=>clearInterval(t)}function zr(n,s,...e){const t=setTimeout(n,s,...e);return()=>clearTimeout(t)}function Ln(n,...s){let e;const t=()=>{const i=performance.now();n(i,...s),e=requestAnimationFrame(t)};return t(),()=>typeof e<"u"&&(cancelAnimationFrame(e),e=void 0)}function rs(n,...s){let e;return e=requestAnimationFrame(()=>{const i=performance.now();n(i,...s)}),()=>typeof e<"u"&&(cancelAnimationFrame(e),e=void 0)}function nn(n,...s){let e=!1,t;return new Promise((i,r)=>{t=r,i()}).then(()=>{!e&&n(...s)}).catch(i=>{console.error(i)}),()=>(e=!0)&&t&&(t("nextMicroTask cancelled!"),t=void 0)}class Vn extends v{constructor(e,t,...i){super();a(this,"_cancellFunc");this._nextFunc=e,this.dispose(()=>{this._cancellFunc&&(this._cancellFunc(),this._cancellFunc=void 0)}),i.forEach(r=>this.dispose(r[t?"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 Ur extends Vn{constructor(...s){super(nn,!1,...s)}}function Wd(...n){return new Ur(...n)}class Hd extends Vn{constructor(...s){super(nn,!0,...s)}}function $d(...n){return new Ur(...n)}class zn extends Vn{constructor(...s){super(rs,!1,...s)}}function oe(...n){return new zn(...n)}function Gd(n,s){return new zn(...n).don(s())}class kl extends Vn{constructor(...s){super(rs,!0,...s)}}function Jd(...n){return new kl(...n)}function de(n,s,e={time:"don",immediate:!1}){const t=new zn(...Array.isArray(n)?n:[n]),i=t[e.time??"don"](s);return(e.immediate??!1)&&s(),()=>{i(),t.destroy()}}function rn(n){let s;if(typeof n.next=="function")s=n;else if(typeof n[Symbol.iterator]=="function")s=n[Symbol.iterator]();else throw new Error("iteratorOrIterable error!");return s}function Br(n,s){let e=!1;const t=rn(n);let i=-1;for(;;){const{done:r,value:o}=t.next();if(r)break;if(s(o,++i)){e=!0;break}}return e}function Wr(n,s){return!Br(n,(t,i)=>!s(t,i))}function on(n,s,e,t){const i=n;if(!i[s]){const r=t(),o=Object.fromEntries(Object.entries(r).filter(([l,h])=>{const c=Object.getPrototypeOf(e),u=l in c;if(u){const p=h instanceof ge?h.value:h;n[l]=p}return!u}).map(([l,h])=>h instanceof ge?[l,h]:[l,Array.isArray(h)?q(h):w(h)]));i[s]=o}return i[s]}function Kt(n,s){var t;const e=Symbol(`${(t=n==null?void 0:n.constructor)==null?void 0:t.name}-createDefaultProps`);n.constructor.__xbsj_dpSymbol=e,n.constructor.__xbsj_createDefaultProps=s;for(let[i,r]of Object.entries(s()))if(!Reflect.has(n,i)){const o=function(l){var u,p;if(l[e])return;const h=[];let c=Object.getPrototypeOf(l);for(;c;)h.push(c),c=Object.getPrototypeOf(c);h.reverse();for(let g of h){const m=(u=g.constructor)==null?void 0:u.__xbsj_dpSymbol;if(!m)continue;const y=(p=g.constructor)==null?void 0:p.__xbsj_createDefaultProps;y&&on(l,m,g,y)}};Object.defineProperties(n,{[i]:{get(){return o(this),on(this,e,n,s)[i].value},set(l){o(this);const h=on(this,e,n,s)[i];if(!h){console.error("!propObj");debugger}h.value=l}},[`${i}Changed`]:{get(){return o(this),on(this,e,n,s)[i].changed}},[`${i}React`]:{get(){return o(this),on(this,e,n,s)[i]}}})}}const an=new WeakMap;function vt(n,s,e){an.has(n)||an.set(n,{});const t=an.get(n);t[s]=e}function Ne(n,s){return an.has(n)?an.get(n)[s]:void 0}function _t(n,s){const e=rn(n);let t=0;for(;;){const{done:i,value:r}=e.next();if(i)break;s(r,t++)}}function ln(n,s,e){const t=rn(n);let i=e,r=0;for(;;){const{done:o,value:l}=t.next();if(o)break;i=s(i,l,r++)}return i}const qd=n=>++n;function Hr(n){return ln(n,qd,0)}function Lt(n){return ln(n,(s,e)=>s>e?s:e,Number.NEGATIVE_INFINITY)}function Zt(n){return ln(n,(s,e)=>s<e?s:e,Number.POSITIVE_INFINITY)}function Ml(n,s){let e=n;for(let t of s)e=e[t];return e}function Xd(n,s,e){if(s.length===0)throw new Error("props的数量必须大于0");const t=s.length-1,i=s[t];let r=n;for(let o=0;o<t;++o){const l=s[o];typeof r[l]>"u"&&(r[l]={}),r=r[l]}r[i]=e}function*_i(n,s){const e=rn(n);for(;;){const{done:t,value:i}=e.next();if(t)break;yield Ml(i,s)}}class hn extends b{constructor(){super();a(this,"_innerObj");a(this,"_toChangeEvent");a(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 v),this._toChangeEvent}get changedEvent(){return this._changedEvent||(this._changedEvent=new v),this._changedEvent}_resetArray(e){this._toChangeEvent&&this._toChangeEvent.emit([{start:0,deleteCount:this._innerObj.length,items:e}],this);const{length:t}=e;this._innerObj.length=t;for(let i=0;i<t;++i)this._innerObj[i]=e[i];this._changedEvent&&this._changedEvent.emit(this)}splice(e,t,...i){const{length:r}=this._innerObj;e=e>this._innerObj.length?this._innerObj.length:e,e>r?e=r:e<0&&(e+=r,e<0&&(e=0));const o=this._innerObj.length-e;if(t>o?t=o:t<0&&(t=0),arguments.length===1){this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:this._innerObj.length-e,items:[]}],this);const l=this._innerObj.splice(e);return this._changedEvent&&this._changedEvent.emit(this),l}else if(arguments.length===2){this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:t,items:[]}],this);const l=this._innerObj.splice(e,t);return this._changedEvent&&this._changedEvent.emit(this),l}else{this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:t,items:i}],this);const l=this._innerObj.splice(e,t,...i);return this._changedEvent&&this._changedEvent.emit(this),l}}pop(){if(this._innerObj.length===0)return;if(this._toChangeEvent){const t=this._innerObj.length-1,i=1,r=[];this._toChangeEvent.emit([{start:t,deleteCount:i,items:r}],this)}const e=this._innerObj.pop();return this._changedEvent&&this._changedEvent.emit(this),e}push(...e){if(this._toChangeEvent){const i=this._innerObj.length;this._toChangeEvent.emit([{start:i,deleteCount:0,items:e}],this)}const t=this._innerObj.push(...e);return this._changedEvent&&this._changedEvent.emit(this),t}get length(){return this._innerObj.length}set length(e){if(e<0)throw new Error("value < 0");const{length:t}=this._innerObj;if(t!==e){if(this._toChangeEvent){let i,r,o;t>e?(i=e,r=t-e,o=[]):(i=t,r=0,o=new Array(e-t)),this._toChangeEvent.emit([{start:i,deleteCount:r,items:o}],this)}this._innerObj.length=e,this._changedEvent&&this._changedEvent.emit(this)}}get(e){return this._innerObj[e]}set(e,t){const{length:i}=this._innerObj;if(e<0||e>=i)throw new Error("index < 0 || index >= length");this._toChangeEvent&&this._toChangeEvent.emit([{start:e,deleteCount:1,items:[t]}],this),this._innerObj[e]=t,this._changedEvent&&this._changedEvent.emit(this)}indexOf(e){return this._innerObj.indexOf(e)}[Symbol.iterator](){return this._innerObj[Symbol.iterator]()}}function $r(n,s,...e){let t=n;for(let i of e){if(!t[i])if(s)t[i]={};else return;t=t[i]}return t}function Yd(n,s,e){typeof e>"u"&&(s.endsWith(".gltf")?e="model/gltf+json":s.endsWith(".bin")?e="application/octet-stream":s.endsWith(".glb")?e="model/gltf-binary":s.endsWith(".jpg")||s.endsWith(".jpeg")?e="image/jpeg":s.endsWith(".png")?e="image/png":s.endsWith(".glsl")?e="text/plain":s.endsWith(".json")?e="application/json":s.endsWith(".b3dm")||s.endsWith(".i3dm")||s.endsWith("pnts")||s.endsWith("cmpt")?e="application/octet-stream":console.warn(`save ${s}: MimeType无法确定!`));const t=new Blob([n],{type:e||""});let i=URL.createObjectURL(t);var r=document.createElement("a"),o=new MouseEvent("click");r.download=s,r.href=i,r.dispatchEvent(o),URL.revokeObjectURL(i)}function Kd(n,s){const e=document.createElement("a"),t=new MouseEvent("click");e.download=s||"下载",e.href=n,e.dispatchEvent(t)}function Zd(){return new Promise((n,s)=>{const e=performance.now();requestAnimationFrame(t=>n(t>e))})}const Un=n=>{let s,e;return e=t=>{t=performance.now(),s=requestAnimationFrame(e),n(t)},s=requestAnimationFrame(e),()=>{cancelAnimationFrame(s)}};function Gr(n,s,e=Un){let t=Number.NEGATIVE_INFINITY,i;function r(h){h-t>s&&i&&(n(...i),i=void 0,t=h)}const o=e&&e(r)||void 0;function l(...h){i=h}return[l,o]}const Al=[];function jl(n,s,e){if(Al.includes(n)){console.warn(`_loadJs ${n} has loaded before!`),s&&s();return}var t=document.getElementsByTagName("head")[0],i=document.createElement("script");i.setAttribute("type","text/javascript"),i.setAttribute("src",n),i.onload=i.onreadystatechange=function(){this.readyState&&this.readyState!=="complete"||(Al.push(n),s&&s(),i.onload=i.onreadystatechange=null)},i.onerror=(r,o,l,h,c)=>{e(c)},t.appendChild(i)}function Jr(n,s=!0){if(s){const e=globalThis.L;globalThis.L&&(globalThis.L=void 0);const t=globalThis.define;return globalThis.define&&(globalThis.define=void 0),new Promise((i,r)=>{jl(n,i,r)}).then(()=>(globalThis.define=t,globalThis.L=e,Promise.resolve()))}else return new Promise((e,t)=>{jl(n,e,t)})}async function Rl(n,s=""){return new Promise((e,t)=>{var i=new Image;i.crossOrigin=s,i.src=n,i.onload=()=>e(i),i.onerror=r=>t(r)})}class Qd extends b{constructor(s){super(),this._owner=s}get owner(){return this._owner}}function Nl(n,s){if(n.length%3!==0)throw new Error("positions.length % 3 !== 0");const e=n.length/3;function*t(o){for(let l=0;l<e;++l)yield n[l*3+o]}const i=(s==null?void 0:s.min)??[NaN,NaN,NaN],r=(s==null?void 0:s.max)??[NaN,NaN,NaN];return i[0]=Zt(t(0))??NaN,i[1]=Zt(t(1))??NaN,i[2]=Zt(t(2))??NaN,r[0]=Lt(t(0))??NaN,r[1]=Lt(t(1))??NaN,r[2]=Lt(t(2))??NaN,{min:i,max:r}}async function eu(n,s=fetch){const e=await s(n);return e.ok?await e.arrayBuffer():void 0}class tu extends b{constructor(e){super();a(this,"_map",new Map);a(this,"_array",[]);a(this,"_createEvent",this.dv(new v));a(this,"_updateEvent",this.dv(new v));a(this,"_destroyEvent",this.dv(new v));this._idFunc=e,this.d(()=>{this._array.length>0&&console.warn("EventFromArrayUpdating: destroy with non-empty array, will trigger destroy event for all items")})}get createEvent(){return this._createEvent}get updateEvent(){return this._updateEvent}get destroyEvent(){return this._destroyEvent}update(e,t={toDel:!0,toAdd:!0,toUpdate:!0}){const{toDel:i=!0,toAdd:r=!0,toUpdate:o=!0}=t;for(let h of this._array)h.updated=!1;const l=e.length;for(let h=0;h<l;++h){const c=e[h],u=this._idFunc(c,h);if(this._map.has(u)){if(o){const p=this._map.get(u);if(!p)throw new Error("!edwi");p.updated=!0,p.item=c,this._updateEvent.emit(u,c)}}else if(r){const p={item:c,id:u,updated:!0};this._array.push(p),this._map.set(u,p),this._createEvent.emit(u,c)}}if(i){const h=this._array.filter(c=>!c.updated);this._array=this._array.filter(c=>c.updated);for(let c of h)this._map.delete(c.id);for(let c of h)this._destroyEvent.emit(c.id,c.item)}}}function Bn(n,...s){if(n>16)throw new Error("length > 16");const e=new Array(n);for(let t=0;t<n;++t)e[t]=s[t]??0;return e}class Wn{constructor(s,e){this._xyzw=s,this._length=e}set 0(s){this._xyzw.x=s}set 1(s){this._xyzw.y=s}set 2(s){this._xyzw.z=s}set 3(s){this._xyzw.w=s}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 iu(n){return new Wn(n,2)}function su(n){return new Wn(n,3)}function nu(n){return new Wn(n,4)}class ru{constructor(s,e,t,i){this._array=s,this._length=e,this._start=t,this._stride=i}get length(){return this._length}set 0(s){this._array[this._start+0*this._stride]=s}set 1(s){this._array[this._start+1*this._stride]=s}set 2(s){this._array[this._start+2*this._stride]=s}set 3(s){this._array[this._start+3*this._stride]=s}set 4(s){this._array[this._start+4*this._stride]=s}set 5(s){this._array[this._start+5*this._stride]=s}set 6(s){this._array[this._start+6*this._stride]=s}set 7(s){this._array[this._start+7*this._stride]=s}set 8(s){this._array[this._start+8*this._stride]=s}set 9(s){this._array[this._start+9*this._stride]=s}set 10(s){this._array[this._start+10*this._stride]=s}set 11(s){this._array[this._start+11*this._stride]=s}set 12(s){this._array[this._start+12*this._stride]=s}set 13(s){this._array[this._start+13*this._stride]=s}set 14(s){this._array[this._start+14*this._stride]=s}set 15(s){this._array[this._start+15*this._stride]=s}set 16(s){this._array[this._start+16*this._stride]=s}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 ou(n,s,e=0,t=1){return new ru(n,s,e,t)}d.Vector=void 0,(n=>{function s(P,...O){if(P=P||Bn(O.length),O.length>P.length)throw new Error("args.length > target.length");return P instanceof Float64Array?P.set(O):mt(O,P),P}n.set=s;function e(P,O){const Z=P.length;for(let ce=0;ce<Z;++ce)if(!O(P[ce],ce))return!1;return!0}n.every=e;function t(P,O,Z){const ce=P.length;let je=Z;for(let Rt=0;Rt<ce;++Rt)je=O(je,P[Rt],Rt);return je}n.reduce=t;function*i(P){for(let O=0;O<P.length;++O)yield P[O]}n.itr=i;const r=(P,O)=>P+=O*O;function o(P){return t(P,r,0)}n.magnitudeSquared=o;function l(P){const O=o(P);return Math.sqrt(O)}n.magnitude=l;function h(P,O=1e-5){const Z=o(P);return Math.abs(Z-1)<O}n.isNormalized=h;let c;const u=(P,O,Z)=>P+O*c[Z];function p(P,O){return Q(P,O),c=O,t(P,u,0)}n.dot=p;let g;const m=(P,O,Z)=>P+=(O-g[Z])*(O-g[Z]);function y(P,O){return Q(P,O),g=O,t(P,m,0)}n.distanceSquared=y;function S(P,O){return Math.sqrt(y(P,O))}n.distance=S;let C;const T=(P,O)=>P===C[O];function V(P,O){return Q(P,O),C=O,e(P,T)}n.equals=V;let z,x;const $=(P,O)=>Math.abs(P-z[O])<x;function Y(P,O,Z=0){return Q(P,O),z=O,x=Z,e(P,$)}n.equalsEpsilon=Y;function Q(P,O){if(P.length!==O.length)throw new Error("left.length !== right.length")}function Ae(P,O,Z){const ce=P.length;Z=Z||Bn(ce),Q(P,Z);for(let je=0;je<ce;++je)Z[je]=O(P[je],je);return Z}n.op1=Ae;function qe(P,O,Z,ce){Q(P,O),ce&&Q(P,ce);const je=P.length;ce=ce||Bn(je);for(let Rt=0;Rt<je;++Rt)ce[Rt]=Z(P[Rt],O[Rt]);return ce}n.op2=qe;const jt=P=>P;function mt(P,O){return Ae(P,jt,O)}n.clone=mt;let fi=0;const mi=(P,O)=>P*fi;function El(P,O,Z){return fi=O,Ae(P,mi,Z)}n.multiplyByScalar=El;function qf(P,O,Z=0){const ce=o(P);if(ce<=Z)return;const je=Math.sqrt(ce);return El(P,1/je,O)}n.normalize=qf;function Xf(P,O){return El(P,-1,O)}n.negate=Xf;const Yf=P=>Math.abs(P);function Kf(P,O){return Ae(P,Yf,O)}n.abs=Kf;const Zf=P=>P-Math.floor(P);function Qf(P,O){return Ae(P,Zf,O)}n.fract=Qf;const em=(P,O)=>P-O;function tm(P,O,Z){return qe(P,O,em,Z)}n.subtract=tm;const im=(P,O)=>P+O;function sm(P,O,Z){return qe(P,O,im,Z)}n.add=sm;const nm=(P,O)=>P*O;function rm(P,O,Z){return qe(P,O,nm,Z)}n.multiply=rm;const om=(P,O)=>P/O;function am(P,O,Z){return qe(P,O,om,Z)}n.divide=am;let bl;const lm=(P,O)=>P*(1-bl)+O*bl;function hm(P,O,Z,ce){return bl=Z,qe(P,O,lm,ce)}n.lerp=hm})(d.Vector||(d.Vector={}));function Hn(n,s=0,e=1){return n<s?s:n>e?e:n}class $n extends b{constructor(e,t,i,r,o,l,h,c){super();a(this,"__status");a(this,"_statusChangedEvent");a(this,"_forceCancelFunc");a(this,"_startEvent");a(this,"_progressEvent");a(this,"_completeEvent");a(this,"_cancelEvent");a(this,"_cancelledEvent");a(this,"_errorEvent");a(this,"_finishedEvent");a(this,"_processingID",-1);this._startProcessingFunc=e,this.startFunc=t,this.progressFunc=i,this.completeFunc=r,this.cancelFunc=o,this.cancelledFunc=l,this.errorFunc=h,this.finishedFunc=c,this._status="Initial",this.dispose(()=>{var u;return(u=this._statusChangedEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._startEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._progressEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._completeEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._cancelEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._cancelledEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._errorEvent)==null?void 0:u.destroy()}),this.dispose(()=>{var u;return(u=this._finishedEvent)==null?void 0:u.destroy()}),this.dispose(()=>this.reset())}get startEvent(){return this._startEvent=this._startEvent||new v,this._startEvent}get progressEvent(){return this._progressEvent=this._progressEvent||new v,this._progressEvent}get completeEvent(){return this._completeEvent=this._completeEvent||new v,this._completeEvent}get cancelEvent(){return this._cancelEvent=this._cancelEvent||new v,this._cancelEvent}get cancelledEvent(){return this._cancelledEvent=this._cancelledEvent||new v,this._cancelledEvent}get errorEvent(){return this._errorEvent=this._errorEvent||new v,this._errorEvent}get finishedEvent(){return this._finishedEvent=this._finishedEvent||new v,this._finishedEvent}_completeFunc(e,t){this.processingID===e&&this._status==="Running"&&(this._status="Completed",this.completeFunc&&this.completeFunc(t),this._completeEvent&&this._completeEvent.emit(t),this.finishedFunc&&this.finishedFunc({status:"Completed",value:t}),this._finishedEvent&&this._finishedEvent.emit({status:"Completed",value:t}))}_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,t){this.processingID===e&&this._status==="Running"&&(this._status="Error",this.errorFunc&&this.errorFunc(t),this._errorEvent&&this._errorEvent.emit(t),this.finishedFunc&&this.finishedFunc({status:"Error",error:t}),this._finishedEvent&&this._finishedEvent.emit({status:"Error",error:t}))}_progressFunc(e,t){this.processingID===e&&this._status==="Running"&&(this.progressFunc&&this.progressFunc(t),this._progressEvent&&this._progressEvent.emit(t))}_startFunc(...e){if(this._status==="Initial"){this._status="Running";const t=++this._processingID,i={completeFunc:this._completeFunc.bind(this,t),errorFunc:this._errorFunc.bind(this,t),progressFunc:this._progressFunc.bind(this,t),cancelFunc:this._cancel.bind(this,t),processingID:t},r=this._startProcessingFunc(i,...e);return this._forceCancelFunc=r,this.startFunc&&this.startFunc(...e),this._startEvent&&this._startEvent.emit(...e),t}else return console.warn("this._status !== 'Initial' but start again!"),-1}set _status(e){if(this.__status!==e){const t=this.__status;this.__status=e,this._statusChangedEvent&&this._statusChangedEvent.emit(e,t)}}get _status(){return this.__status}get processingID(){return this._processingID}get statusChangedEvent(){return this._statusChangedEvent||(this._statusChangedEvent=new v),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,t=this.processingID){return this._cancel(t,e)}_cancel(e,t){if(this.processingID===e)if(this._status==="Running"){if(!this._forceCancelFunc)throw new Error("this._forceCancelFunc is undefined!");this._cancelFunc(t);const i=this._forceCancelFunc(t);if(this._forceCancelFunc=void 0,i&&i instanceof Promise)return i.then(()=>{this._cancelledFunc(t)});this._cancelledFunc(t)}else console.warn("this._status !== 'Running' but cancel")}start(...e){try{return this._startFunc(...e)}catch(t){console.error(`processing start error: ${t}`)}}restart(e,...t){try{return this.isRunning&&this.cancel(e),this.isFinished&&this.reset(e),this.isInitial?this._startFunc(...t):(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 qr=class extends Error{};function Ll(n,s){typeof n=="function"?n(s):n.cancelFunc=s}class Xr extends $n{constructor(e=300){super(({progressFunc:t,completeFunc:i,errorFunc:r})=>{const[o,l]=Nn(()=>{if(!this._lastDebounceValue)throw new Error("!this._lastDebounceValue");t([this._lastDebounceValue,this._debouncTimes]),this._debouncTimes=0},this._delayTime);return this._d=o,()=>{l()}});a(this,"_lastDebounceValue");a(this,"_debouncTimes",0);a(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 Vl(n,s,...e){const t=new AbortController;let i=t.signal,[r,o]=e;if(o!=null&&o.signal)throw console.error("init?.signal"),new Error("init?.signal");o=o||{},o.signal=i;let l=!1;Ll(n,()=>{l=!0,t.abort()});let h=fetch(r,o);return s&&(h=h.then(c=>{if(!c.ok)return c;if(!c.body)throw Error("ReadableStream not yet supported in this browser.");const u=c.headers.get("content-length"),p=u?parseInt(u,10):0;let g=0;return new Response(new ReadableStream({start(m){if(!c.body)throw new Error("!response.body");const y=c.body.getReader();S();function S(){y.read().then(({done:C,value:T})=>{if(C){m.close();return}if(!T)throw new Error("!value");if(!s)throw new Error("!progressFunc");g+=T.byteLength,s(g,p),m.enqueue(T),S()}).catch(C=>{m.error(C)})}}}),{status:c.status,statusText:c.statusText,headers:c.headers})}).catch(c=>{throw l?(c instanceof Error&&c.code!==20&&console.error("error.code !== 20"),console.log("fetching cancelled!"),new qr("fetching cancelled!")):(c instanceof Error&&c.code===20&&console.error("error.code === 20"),c)})),h}function zl(...n){if(n.length>=1)if(typeof n[0]=="function"||typeof n[0]>"u"){const s={};let e=Vl(s,...n);const{cancelFunc:t}=s;if(!t)throw new Error("!cancelResult.cancelFunc");return[t,e]}else return Vl(...n);throw new Error("cancelableFetch args error!")}class au extends $n{constructor(e,...t){super(({progressFunc:i,completeFunc:r,errorFunc:o},...l)=>{const h={};let c={loaded:0,total:0};const u=(m,y)=>{c.loaded=m,c.total=y,i(c)},p=this._fetchArgs||l;if(p.length===0)throw new Error("fetchArgs.length === 0");if(zl(h,u,...p).then(e).then(r).catch(m=>{m instanceof qr||o(m)}),!h.cancelFunc)throw new Error("!cancelResult.cancelFunc");return h.cancelFunc});a(this,"_fetchArgs");t.length>0&&(this._fetchArgs=t)}get fetchArgs(){return this._fetchArgs}}function Yr(n,s,e,t){const i="_"+s,r="_"+s+"Changed",o=s+"Changed";Object.defineProperties(n.prototype,{[s]:{get(){return typeof this[i]>"u"&&typeof e<"u"&&(this[i]=e),this[i]},set(l){if(typeof this[i]>"u"&&typeof e<"u"&&(this[i]=e),t?!t(this[i],l):this[i]!==l){const h=this[i];this[i]=l,this[r]&&this[r].emit(l,h)}}},[o]:{get(){return typeof this[r]>"u"&&(this[r]=new v,typeof this.dispose<"u"&&this.dispose(()=>this[r].destroy())),this[r]}}})}class Kr extends $n{constructor(e,t=!0){super(({progressFunc:i,completeFunc:r,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}));a(this,"_intervalID");a(this,"_intervalFunc");this.intervalTime=e,this.leading=t,this.dispose(this.intervalTimeChanged.disposableOn(()=>{this._intervalID&&this._intervalFunc&&(clearInterval(this._intervalID),this._intervalID=setInterval(this._intervalFunc,this.intervalTime))}))}}Yr(Kr,"leading",!0),Yr(Kr,"intervalTime",500);function lu(n,s){let e,t;const i=new Promise((o,l)=>{t=l,e=globalThis.setTimeout(()=>{e=void 0,o()},n)}),r=o=>{e&&(clearTimeout(e),e=void 0),t&&t(o??new qr("sleep cancel error!"))};if(typeof s=="boolean"&&s)return[r,i];if(s)return Ll(s,r),i}class hu{constructor(s=0,e=0,t=0,i,r){a(this,"_processData");a(this,"_lastUpdateTimeStamp",0);this.startTime=s,this.duration=e,this.delay=t,this.proccessFunc=i,this.completeFunc=r,this._processData={ratio:0,timeStamp:0,timeStampFromStart:0,timeStampFromLastUpdate:0}}update(s){const e=(s-this.startTime)/this.duration;e>=0&&(this._processData.ratio=e,this._processData.timeStamp=s,this._processData.timeStampFromStart=s-this.startTime,this._processData.timeStampFromLastUpdate=s-this._lastUpdateTimeStamp,this._lastUpdateTimeStamp=s,this.proccessFunc&&this.proccessFunc(this._processData),e>=1&&this.completeFunc&&this.completeFunc())}start(){this.startTime=performance.now()+this.delay,this._lastUpdateTimeStamp=this.startTime}}class Ul extends $n{constructor(e=1e3,t=0,i=Un){let r;function o(){r&&r()}super(({progressFunc:h,completeFunc:c,errorFunc:u})=>{const p=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=h,this._base.completeFunc=()=>{p&&p(),c()},this._base.start(),r=p,o});a(this,"_base");a(this,"duration");a(this,"delay");a(this,"startUpdateFunc");this._base=new hu,this.duration=e,this.delay=t,this.startUpdateFunc=i}get startTime(){return this._base.startTime}}class cu extends b{constructor(e){super();a(this,"_target",0);a(this,"_current",0);a(this,"_start",0);a(this,"_timing",new Ul(Number.POSITIVE_INFINITY));a(this,"_currentChanged");this._duration=e,this._timing.progressFunc=({ratio:t})=>{t=t<0?0:t>1?1:t;const i=this._start*(1-t)+this._target*t;this._current=i,this._currentChanged&&this._currentChanged.emit(this._target,this._current)},this.dispose(()=>{this._timing.isRunning&&this._timing.cancel(),this._timing.destroy()})}reset(e,t=e){this._timing.isRunning&&this._timing.cancel(),this._target=e,this._current=t,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 t=Math.abs(this._target-this._start);this._timing.duration=t*this._duration,this._timing.start()}}get target(){return this._target}get current(){return this._current}get currentChanged(){return this._currentChanged||(this._currentChanged=new v),this._currentChanged}}function Bl(n,s){s=s||[];const e=n.parentNode;return e?Bl(e,s.concat(e)):s}function du(n){const s=n.composedPath&&n.composedPath()||n.path,e=n.target;if(s!=null)return s.indexOf(globalThis)<0?s.concat(globalThis):s;if(e===globalThis)return[globalThis];if(e===null)throw new Error("target === null");return[e].concat(Bl(e),globalThis)}function we(n,s=!1){const{offsetX:e,offsetY:t}=n;let i=e,r=t;{const o=du(n);for(let l=0;l<o.length;++l){const h=o[l];if(h!==n.currentTarget&&h instanceof HTMLElement)i+=h.clientLeft,r+=h.clientTop,i+=h.offsetLeft,r+=h.offsetTop;else break}}return s?[i*globalThis.devicePixelRatio,r*globalThis.devicePixelRatio]:[i,r]}function os(n,s=!1){const e=n.target,t=n.currentTarget||n.__xbsj_lastCurrentTarget__;if(!e||!t)return[n.clientX,n.clientY];const i=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=i.left+n.offsetX,l=i.top+n.offsetY,h=o-r.left,c=l-r.top;return s?[h*globalThis.devicePixelRatio,c*globalThis.devicePixelRatio]:[h,c]}class Wl extends b{constructor(e){super();a(this,"_clickEvent",new v);a(this,"_dbclickEvent",new v);a(this,"_downEvent",new v);a(this,"_upEvent",new v);a(this,"_moveEvent",new v);a(this,"_debouncing",new Xr(300));this.dispose(()=>{this._clickEvent.destroy(),this._dbclickEvent.destroy(),this._downEvent.destroy(),this._upEvent.destroy(),this._moveEvent.destroy(),this._debouncing.destroy()});let t=!1,i=[0,0],r=!1;this._debouncing.progressFunc=([[u,p,g],m])=>{m===1?this._clickEvent.emit(u,p,g):m>=2?this._dbclickEvent.emit(u,p,g):console.error("point click should not be here!")},this._debouncing.start(),this.dispose(()=>{this._debouncing.isRunning&&this._debouncing.cancel(),this._debouncing.destroy()});const o=u=>{t=!0;const[p,g]=we(u);i[0]=p,i[1]=g,this._downEvent.emit(p,g,u)},l=u=>{const[p,g]=we(u);t&&!r&&this._debouncing.debounce(p,g,u),t=!1,r=!1,this._upEvent.emit(p,g,u)},h=u=>{const[p,g]=we(u);if(t&&!r){const[m,y]=i;(Math.abs(p-m)>3||Math.abs(g-y)>3)&&(r=!0)}this._moveEvent.emit(p,g,u)},c=()=>{t=!1,r=!1};e.addEventListener("pointerdown",o),e.addEventListener("pointerup",l),e.addEventListener("pointermove",h),e.addEventListener("pointerout",c),this.dispose(()=>{e.removeEventListener("pointerdown",o),e.removeEventListener("pointerup",l),e.removeEventListener("pointermove",h),e.removeEventListener("pointerout",c)})}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 Zr extends b{constructor(){super();a(this,"_pickRectEvent",this.disposeVar(new v));a(this,"_updateRectEvent",this.disposeVar(new v));a(this,"_pointerActionEvent",this.disposeVar(new v));a(this,"_active",this.disposeVar(w(!1)));a(this,"_pickRect",{left0:0,top0:0,left1:0,top1:0});let e=0,t=0,i=0,r=0;this.dispose(this._pointerActionEvent.disposableOn(({type:o,left:l,top:h})=>{o==="PointerDown"?(this._active.value=!0,e=l,t=h,i=l,r=h,this._setPickRect({left0:e,top0:t,left1:i,top1:r}),this._updateRectEvent.emit(this._pickRect)):o==="PointerMove"?this._active.value&&(i=l,r=h,this._setPickRect({left0:e,top0:t,left1:i,top1:r}),this._updateRectEvent.emit(this._pickRect)):o==="PointerUp"&&this._active.value&&(this._active.value=!1,i=l,r=h,this._setPickRect({left0:e,top0:t,left1:i,top1:r}),this._updateRectEvent.emit(this._pickRect),this._pickRectEvent.emit(this._pickRect))}))}_setPickRect({left0:e,left1:t,top0:i,top1:r}){this._pickRect.left0=e,this._pickRect.left1=t,this._pickRect.top0=i,this._pickRect.top1=r}pointerDown(e,t){this._pointerActionEvent.emit({type:"PointerDown",left:e,top:t})}pointerMove(e,t){this._pointerActionEvent.emit({type:"PointerMove",left:e,top:t})}pointerUp(e,t){this._pointerActionEvent.emit({type:"PointerUp",left:e,top:t})}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,t){t=t||{left:0,top:0,width:0,height:0,forward:!0};const{left0:i,top0:r,left1:o,top1:l}=e;return t.width=Math.abs(i-o),t.height=Math.abs(r-l),t.left=Math.min(i,o),t.top=Math.min(r,l),t.forward=o>i,t}static contains(e,t,i){const{left:r,top:o,width:l,height:h}=i;return e>r&&e<=r+l&&t>=o&&t<=o+h}}class uu extends Zr{constructor(s){super();const e=this.disposeVar(new Wl(s));this.dispose(e.downEvent.disposableOn((o,l,h)=>h.altKey&&this.pointerDown(o,l))),this.dispose(e.moveEvent.disposableOn((o,l)=>this.pointerMove(o,l))),this.dispose(e.upEvent.disposableOn((o,l)=>this.pointerUp(o,l)));const t=document.createElement("div");t.style.backgroundColor="rgba(0, 0, 0, 0)",t.style.border="2px dashed red",t.style.position="absolute",t.style.boxSizing="border-box",t.style.pointerEvents="none",t.style.height="0px",t.style.width="0px",t.style.left="0px",t.style.top="0px",t.style.display="none",s.appendChild(t),this.dispose(()=>s.removeChild(t)),this.dispose(this.activeEvent.disposableOn(o=>{t.style.display=o?"block":"none"}));const i=()=>{this.reset()};s.addEventListener("contextmenu",i),this.dispose(()=>s.removeEventListener("contextmenu",i));const r={left:0,top:0,width:0,height:0,forward:!1};this.dispose(this.updateRectEvent.disposableOn(o=>{if(Zr.getLeftTopAndSize(o,r)){const{left:l,top:h,width:c,height:u}=r;t.style.height=`${u|0}px`,t.style.width=`${c|0}px`,t.style.left=`${l|0}px`,t.style.top=`${h|0}px`}}))}}class st extends Error{}function Qt(n,s){Ne(n,"_promise_cancel")&&console.warn("setPromiseCancel warn: promise has cancelFunc!"),vt(n,"_promise_cancel",s)}function as(n){return Ne(n,"_promise_cancel")}function ls(n){return!!as(n)}function Qr(n,s){const e=as(n);return e?(e(s),!0):!1}function eo(n){const[s,e]=n;return Qt(e,s),e}function hs(n){let s;const e=new Promise((t,i)=>{s=i,n.then(t).catch(i)});return Qt(e,s),e}function pu(n){let s,e;var t=new Promise((i,r)=>{e=n.disposableOn((...o)=>{e&&e(),i(o)}),s=o=>{e&&e(),r(o)}});return[s,t]}function gu(n){const s=new v,e=new v;return n.then(t=>{s.isDestroyed()||s.emit(t)}).catch(t=>{e.isDestroyed()||e.emit(t)}),[s,e]}class to extends b{constructor(){super();a(this,"_cancelled",!1);a(this,"_cancelError");a(this,"_promiseSet",new Set);a(this,"_disposer")}get disposer(){return this._disposer=this._disposer||new b,this._disposer}destroyImp(){this.finally()}cancel(e){var t;if(!this._cancelled){this._cancelled=!0,(t=this._disposer)==null||t.destroy(),this._cancelError=e;for(let i of this._promiseSet)Qr(i);this._promiseSet.clear()}}get cancelFuncsNum(){return ln(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 st("cancel from CancelManager!")}promise(e){return this._promiseSet.add(e),e.finally(()=>(this._promiseSet.delete(e),this.check()))}promiseAny(e){const t=[],i=e.map(r=>(this._promiseSet.add(r),ls(r)&&t.push(as(r)),r.finally(()=>this._promiseSet.delete(r))));return Promise.any(i).finally(()=>(t.forEach((r=>r(new st("cancel from promiseAny!")))),t.length=0))}promiseAll(e){const t=[],i=e.map(r=>(this._promiseSet.add(r),ls(r)&&t.push(as(r)),r.finally(()=>this._promiseSet.delete(r))));return Promise.all(i).finally(()=>(t.forEach((r=>r(new st("cancel from promiseAll!")))),t.length=0))}promiseRace(e){const t=[],i=e.map(r=>(this._promiseSet.add(r),ls(r)&&t.push(as(r)),r.finally(()=>this._promiseSet.delete(r))));return Promise.race(i).finally(()=>(t.forEach((r=>r(new st("cancel from promiseRace!")))),t.length=0))}}class fe extends b{constructor(e){super();a(this,"_status","Initial");a(this,"_completeEvent");a(this,"_errorEvent");a(this,"_completeFunc");a(this,"_errorFunc");a(this,"_cancelFunc");a(this,"_runningId",-1);this._startFunc=e,this.dispose(()=>this.isRunning&&this.cancel())}get errorEvent(){return this._errorEvent||(this._errorEvent=new v),this._errorEvent}get completeEvent(){return this._completeEvent||(this._completeEvent=new v),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 t=++this._runningId;this._status="Running",this._cancelFunc=this._startFunc({completeFunc:i=>{var r;t===this._runningId&&this._status==="Running"&&(this._status="Completed",this._completeFunc&&this._completeFunc(i),(r=this._completeEvent)==null||r.emit(i))},errorFunc:i=>{var r;t===this._runningId&&this._status==="Running"&&(this._status="Error",this._errorFunc&&this._errorFunc(i),(r=this._errorEvent)==null||r.emit(i))},runningingID:t},...e)}cancel(e=new st("")){var t;if(this._status==="Running"){if(!this._cancelFunc)throw new Error("!this._cancelFunc");this._status="Error",this._errorFunc&&this._errorFunc(e),(t=this._errorEvent)==null||t.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 st(""),...t){this.isRunning&&this.cancel(e),this.reset(),this.start(...t)}restartIfNotRunning(...e){this.isRunning||(this.reset(),this.start(...e))}}function cn(n){return(s,...e)=>{const t=new to,{completeFunc:i,errorFunc:r}=s,o=n(t,...e).then(i).catch(r).finally(()=>t.destroy());return Qt(o,t.cancel.bind(t)),l=>Qr(o,l)}}class fu extends fe{constructor(){super(({errorFunc:e},t,i)=>{try{const[r,o]=Nn(t,i);return this._doFunc=r,o}catch(r){return e(r),()=>{}}});a(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}class mu extends fe{constructor(e,t){super(({errorFunc:i})=>{try{const[r,o]=Nn(e,t);return this._doFunc=r,o}catch(r){return i(r),()=>{}}});a(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}function vu(n){return new fe(cn((s,...e)=>s.promise(n(...e))))}function _u(n,...s){return new fe(cn(e=>e.promise(n(...s))))}function Gn(n){return vu((...s)=>{const e=n(...s);return ls(e)?e:hs(e)})}function io(n,...s){return _u(()=>{const e=n(...s);return ls(e)?e:hs(e)})}function yu(n){let s;const e=new Promise((t,i)=>{s=()=>{n(),i()}});return Qt(e,s),e}function wu(n,...s){const e=new to,t=n(e,...s).finally(()=>e.destroy());return Qt(t,e.cancel.bind(e)),t}function Le(n){return new fe(cn(n))}function Eu(n,...s){return new fe(cn(e=>n(e,...s)))}function Hl(n,...s){const e=new AbortController;let t=e.signal,[i,r]=s;if(r!=null&&r.signal)throw console.error("init?.signal"),new Error("init?.signal");r=r||{},r.signal&&console.warn("revocableFetch error: init.signal would be override!"),r.signal=t;let o=!1;const l=()=>{o=!0,e.abort()};let h=fetch(i,r);return n&&(h=h.then(c=>{if(!c.ok)return c;if(!c.body)throw Error("ReadableStream not yet supported in this browser.");const u=c.headers.get("content-length");u||console.warn("response.headers.get('content-length') is undefined... cannot get contentLength!");const p=u?parseInt(u,10):0;let g=0;return new Response(new ReadableStream({start(m){if(!c.body)throw new Error("!response.body");const y=c.body.getReader();S();function S(){y.read().then(({done:C,value:T})=>{if(C){m.close();return}if(!T)throw new Error("!value");if(!n)throw new Error("!progressFunc");g+=T.byteLength,n(g,p),m.enqueue(T),S()}).catch(C=>{m.error(C)})}}}),{status:c.status,statusText:c.statusText,headers:c.headers})}).catch(c=>{throw o?(c instanceof Error&&c.code!==20&&console.error("error.code !== 20"),console.log("fetching cancelled!"),new st(`fetching cancelled! error: ${c}`)):(c instanceof Error&&c.code===20&&console.error("error.code === 20"),c)})),Qt(h,l),h}function bu(n,...s){return Hl(n,...s)}function so(...n){return Hl(void 0,...n)}function Su(){return Gn(so)}function Cu(...n){return io(so,...n)}function no(n,...s){let e=-1;var t=new Promise((i,r)=>{n.isRunning&&n.cancel(),n.reset();const o=new b;o.dispose(n.completeEvent.disposableOn(l=>{if(i(l),o.isDestroyed()){debugger;console.error(`disposer is destroyed! ${o}`);return}o.destroy()})),o.dispose(n.errorEvent.disposableOn(l=>{if(r(l),o.isDestroyed()){debugger;console.error(`disposer is destroyed! ${o}`);return}o.destroy()})),n.start(...s),e=n.runningId});return[i=>e===n.runningId&&n.isRunning&&n.cancel(i),t]}function yt(n,s,...e){try{return s(...e)}catch(t){n(t)}}function Pu(){return new fe(({completeFunc:n,errorFunc:s},e)=>rs(()=>yt(s,()=>{e&&e(),n()})))}function Tu(n){return new fe(({completeFunc:s,errorFunc:e})=>rs(()=>yt(e,()=>{n&&n(),s()})))}function Iu(){return new fe(({completeFunc:n,errorFunc:s},e)=>nn(()=>{yt(s,()=>{e&&e(),n()})}))}function xu(n){return new fe(({completeFunc:s,errorFunc:e})=>nn(()=>{yt(e,()=>{n&&n(),s()})}))}function $l(){return new fe(({completeFunc:n,errorFunc:s},e,t)=>zr(()=>{yt(s,()=>{e&&e(),n()})},t??1e3))}function Gl(n,s){return new fe(({completeFunc:e,errorFunc:t})=>zr(()=>{yt(t,()=>{n&&n(),e()})},s??1e3))}function Ou(){return new fe(({errorFunc:n},s,e=1e3)=>Vr(()=>yt(n,s),e))}function Du(n,s=1e3){return new fe(({errorFunc:e})=>Vr(()=>yt(e,n),s))}function dn(){return new fe(({errorFunc:n},s)=>Ln(e=>yt(n,s,e)))}function cs(n){return new fe(({errorFunc:s})=>Ln(e=>yt(s,n,e)))}function un(n,...s){let e,t;const i=new Promise((o,l)=>{t=l,e=globalThis.setTimeout(()=>{e=void 0,o(s)},n)});return Qt(i,o=>{e&&(clearTimeout(e),e=void 0),t&&t(o??new st("sleep cancel error!"))}),i}function Fu(){return Gn(un)}function ku(n,...s){return io(un,n,...s)}function yi(n,s,...e){return n.promise(eo(no(Le(async(t,...i)=>(n.disposer.dispose(()=>{t.isDestroyed()||t.cancel()}),await s(t,...i))),...e)))}function Mu(n,s,...e){return n.promise(eo(no(s,...e)))}class Au extends fe{constructor(){super(({errorFunc:e},t,i)=>{try{const[r,o]=Gr(t,i);return this._doFunc=r,o}catch(r){return e(r),()=>{}}});a(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}class ju extends fe{constructor(e,t){super(({errorFunc:i})=>{try{const[r,o]=Gr(e,t);return this._doFunc=r,o}catch(r){return i(r),()=>{}}});a(this,"_doFunc")}do(...e){this._doFunc&&this._doFunc(...e)}}class Jn extends b{constructor(e=1e3,t=Un){super();a(this,"_speed");a(this,"_speedChangedEvent");a(this,"_duration");a(this,"_durationChangedEvent");a(this,"_loop");a(this,"startUpdateFunc");a(this,"_updateBindThis");a(this,"_cancelStartUpdateFunc");a(this,"_startTimeStamp");a(this,"_playingChangedEvent");a(this,"_startPlayingEvent");a(this,"_stopPlayingEvent");a(this,"_loopChangedEvent");a(this,"_currentTime",this.disposeVar(w(0)));this._speed=1,this._duration=e,this._loop=!1,this.startUpdateFunc=t,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 v,this._startPlayingEvent}get stopPlayingEvent(){return this._stopPlayingEvent=this._stopPlayingEvent||new v,this._stopPlayingEvent}get currentTimeChangedEvent(){return this._currentTime.changed}get loopChangedEvent(){return this._loopChangedEvent=this._loopChangedEvent||new v,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 t=(e-this._startTimeStamp)*this._speed;this._setCurrentTimeInner(t)}}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 v),this._durationChangedEvent}get duration(){return this._duration}set duration(e){var t;if(e<0)console.warn("duration sholud greater than 0!");else if(this._duration!==e){const i=this._duration;this._duration=e,this._currentTime.value>this._duration&&(this._currentTime.value=this._duration),(t=this._durationChangedEvent)==null||t.emit(this._duration,i)}}get speedChangedEvent(){return this._speedChangedEvent||(this._speedChangedEvent=new v),this._speedChangedEvent}get speed(){return this._speed}set speed(e){var t;if(this._speed!==e&&e!==0){const i=this._speed;this._speed=e,this._resetStartTime(),(t=this._speedChangedEvent)==null||t.emit(this._speed,i)}}_resetStartTime(){this._startTimeStamp=performance.now()-this._currentTime.value/this._speed}_startPlaying(){var e,t;this._resetStartTime(),this._cancelStartUpdateFunc=this.startUpdateFunc(this._updateBindThis),(e=this._startPlayingEvent)==null||e.emit(this._currentTime.value),(t=this._playingChangedEvent)==null||t.emit(!0)}_stopPlaying(){var e,t;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),(t=this._playingChangedEvent)==null||t.emit(!1)}get playingChangedEvent(){return this._playingChangedEvent||(this._playingChangedEvent=new v),this._playingChangedEvent}get playing(){return!!this._cancelStartUpdateFunc}set playing(e){!!this._cancelStartUpdateFunc!==e&&(e?this._startPlaying():this._stopPlaying())}}class pn extends b{constructor(e){super();a(this,"_stop",this.disposeVar(w(0)));a(this,"_current",this.disposeVar(w(0)));a(this,"_start",this.disposeVar(w(0)));a(this,"_player",this.disposeVar(new Jn(200)));this.dispose(this._player.currentTimeChangedEvent.disposableOn(t=>{let i=t/this._player.duration;i=i>1?1:i<0?0:i;const r=this._start.value,o=this._stop.value;this._current.value=r+(o-r)*i})),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 Jl=-1;class se extends v{constructor(s,e,t,i){super(),this._domElement=s,this._type=e,this.callback=i;const r=o=>(o.__xbsj_listenerNo__=++Jl,o.__xbsj_listenerTime__=Date.now(),o.__xbsj_lastCurrentTarget__=o.currentTarget,this.emit(o),this.callback&&this.callback(o));this._domElement.addEventListener(this._type,r,t),this.dispose(()=>this._domElement.removeEventListener(this._type,r,t))}static getLastLisenNo(){return Jl}static getCurrentTarget(s){return s.__xbsj_lastCurrentTarget__}static getListenerNo(s){return s.__xbsj_listenerNo__}static getListenerTime(s){return s.__xbsj_listenerTime__}static on(s,e){const t=se.getLastLisenNo();return s.disposableOn(i=>{const r=se.getListenerNo(i);(r===void 0||r>t)&&e(i)})}get element(){return this._domElement}static create(s,e,t){return new se(s,e,t)}}class ro extends b{constructor(){super();a(this,"_clickEvent",this.disposeVar(new v));a(this,"_dbclickEvent",this.disposeVar(new v));a(this,"_pointerdownEvent",this.disposeVar(new v));a(this,"_pointerupEvent",this.disposeVar(new v));a(this,"_pointermoveEvent",this.disposeVar(new v));a(this,"_pointeroutEvent",this.disposeVar(new v));a(this,"dbClickDelayTime",300);a(this,"nativeClickDelayTime",500);a(this,"clickMovementTolerantPixelSize",3);a(this,"debugging",!1);a(this,"_enabled",this.disposeVar(w(!0)));const e=this.disposeVar(Le(async i=>{do{const r=await yi(i,h=>new Promise((c,u)=>{h.disposer.dispose(u),h.disposer.dispose(se.on(this._pointerdownEvent,c))})),o=we(r);if(this.debugging&&console.log(`鼠标按下 ${o.toString()}`),!await yi(i,h=>new Promise((c,u)=>{h.disposer.dispose(u);const p=setTimeout(()=>c(!0),this.nativeClickDelayTime);h.disposer.dispose(()=>clearTimeout(p)),h.disposer.dispose(se.on(this._pointermoveEvent,g=>{const[m,y]=we(g),[S,C]=o;(Math.abs(m-S)>3||Math.abs(y-C)>3)&&c(!1)})),h.disposer.dispose(se.on(this._pointeroutEvent,()=>c(!1))),h.disposer.dispose(se.on(this._pointerupEvent,()=>c(!0)))}))){this.debugging&&console.log("取消1");continue}const l=await yi(i,h=>new Promise((c,u)=>{h.disposer.dispose(u);const p=setTimeout(()=>c("timeout"),this.dbClickDelayTime);h.disposer.dispose(()=>clearTimeout(p)),h.disposer.dispose(se.on(this._pointermoveEvent,g=>{const[m,y]=we(g),[S,C]=o;(Math.abs(m-S)>3||Math.abs(y-C)>3)&&c("moved")})),h.disposer.dispose(se.on(this._pointerdownEvent,c)),h.disposer.dispose(se.on(this._pointeroutEvent,()=>c("pointouted"))),h.disposer.dispose(se.on(this._pointerupEvent,()=>c("pointuped")))}));if(typeof l=="string"){this.debugging&&console.log(`触发单击事件!取消双击监听!error: ${l}`),this._clickEvent.emit(r);continue}if(!await yi(i,h=>new Promise((c,u)=>{h.disposer.dispose(u);const p=setTimeout(()=>c(!1),this.nativeClickDelayTime);h.disposer.dispose(()=>clearTimeout(p)),h.disposer.dispose(se.on(this._pointermoveEvent,g=>{const[m,y]=we(g),[S,C]=o;(Math.abs(m-S)>3||Math.abs(y-C)>3)&&c(!1)})),h.disposer.dispose(se.on(this._pointeroutEvent,()=>c(!1))),h.disposer.dispose(se.on(this._pointerupEvent,()=>c(!0)))}))){this.debugging&&console.log("取消2");continue}this.debugging&&console.log("触发双击事件!"),this._dbclickEvent.emit(l)}while(!0)})),t=i=>{i?e.restart():e.isRunning&&e.cancel()};t(this.enabled),this.dispose(this.enabledChanged.disposableOn(t))}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 Ru extends b{constructor(e,t){super();a(this,"_pointerClick",this.disposeVar(new ro));this._div=e;const{div:i,pointerClick:r}=this,o=u=>r.pointerDown(u),l=u=>r.pointerMove(u),h=u=>r.pointerOut(u),c=u=>r.pointerUp(u);i.addEventListener("pointerdown",o,t),i.addEventListener("pointermove",l,t),i.addEventListener("pointerout",h,t),i.addEventListener("pointerup",c,t),this.dispose(()=>{i.removeEventListener("pointerdown",o,t),i.removeEventListener("pointermove",l,t),i.removeEventListener("pointerout",h,t),i.removeEventListener("pointerup",c,t)})}get div(){return this._div}get pointerClick(){return this._pointerClick}get clickEvent(){return this.pointerClick.clickEvent}get dbclickEvent(){return this.pointerClick.dbclickEvent}}class ql extends b{constructor(){super();a(this,"_hoverEvent",this.disposeVar(new v));a(this,"_hoverOutEvent",this.disposeVar(new v));a(this,"_pointerdownEvent",this.disposeVar(new v));a(this,"_pointerupEvent",this.disposeVar(new v));a(this,"_pointermoveEvent",this.disposeVar(new v));a(this,"_pointeroutEvent",this.disposeVar(new v));a(this,"delayTime",800);const e=this.disposeVar($l()),t=c=>{this._hoverOutEvent.emit()},i=c=>{this._hoverOutEvent.emit()};let r;const o=()=>{if(!r){console.warn("!lastPointerEvent");return}this._hoverEvent.emit(r)},l=c=>{r=c,e.restart(void 0,o,this.delayTime),this._hoverOutEvent.emit()},h=c=>{e.cancel(),this._hoverOutEvent.emit()};this.dispose(this._pointerdownEvent.disposableOn(t)),this.dispose(this._pointerupEvent.disposableOn(i)),this.dispose(this._pointermoveEvent.disposableOn(l)),this.dispose(this._pointeroutEvent.disposableOn(h))}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 Nu extends b{constructor(e,t=1500){super();a(this,"_hoverEvent",new v);a(this,"_hoverOutEvent",new v);const i=new Xr(t);this.dispose(()=>i.destroy());let r=0,o=0,l;i.progressFunc=()=>this._hoverEvent.emit(r,o,l);const h=g=>{!i.isRunning&&i.restart(),l=g,[r,o]=we(g),i.debounce(),this._hoverOutEvent.emit()},c=g=>{!i.isRunning&&i.restart(),l=g,[r,o]=we(l),i.debounce(),this._hoverOutEvent.emit()},u=g=>{!i.isRunning&&i.restart(),l=g,[r,o]=we(l),i.debounce(),this._hoverOutEvent.emit()},p=g=>{i.isRunning&&i.cancel(),this._hoverOutEvent.emit()};e.addEventListener("pointerdown",h),e.addEventListener("pointerup",c),e.addEventListener("pointermove",u),e.addEventListener("pointerout",p),this.dispose(()=>{e.removeEventListener("pointerdown",h),e.removeEventListener("pointerup",c),e.removeEventListener("pointermove",u),e.removeEventListener("pointerout",p)})}get hoverEvent(){return this._hoverEvent}get hoverOutEvent(){return this._hoverOutEvent}}class Xl extends b{constructor(e,t={}){super();a(this,"_needRedrawEvent");a(this,"_needPickRedrawEvent");a(this,"_id",ns());a(this,"_clickEvent");a(this,"_clickOutEvent");a(this,"_dbclickEvent");a(this,"_dbclickOutEvent");a(this,"_actived",!1);a(this,"_activedChanged");a(this,"_hovered",!1);a(this,"_hoveredChanged");a(this,"_selected",!1);a(this,"_selectedChanged");a(this,"_opacity",1);a(this,"_opacityChanged");a(this,"_show",!0);a(this,"_showChanged");this._canvasPrimitivesContext=e;const{needRedraw:i=!0,needPickRedraw:r=!0}=t;i&&(this._needRedrawEvent=new v),r&&(this._needPickRedrawEvent=new v),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}set id(e){this._id=e}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 v,this._clickEvent}hasClickOutEvent(){return!!this._clickOutEvent}get clickOutEvent(){return this._clickOutEvent=this._clickOutEvent||new v,this._clickOutEvent}hasDbclickEvent(){return!!this._dbclickEvent}get dbclickEvent(){return this._dbclickEvent=this._dbclickEvent||new v,this._dbclickEvent}hasDbclickOutEvent(){return!!this._dbclickOutEvent}get dbclickOutEvent(){return this._dbclickOutEvent=this._dbclickOutEvent||new v,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 v,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 v,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 v,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 v,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 v,this._showChanged}}class oo extends Xl{constructor(e,t=[0,0],i=0){super(e);a(this,"_winPosAndDepthChanged");this._winPos=t,this._depth=i,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 v),this._winPosAndDepthChanged}}function wi(n,s,e,t){const[i,r]=n,[o,l,h,c]=t,u=s[0]*e[0],p=s[1]*e[1],g=i-(u*o+h),m=r-(p*l+c);return{left:g,top:m,right:g+u,bottom:m+p}}function Ei(n,s,e,t,i){n.beginPath(),n.moveTo(s,e),n.lineTo(s-t*.5,e-t*.5),n.arc(s,e-t,t*.7071067811865475,Math.PI*.75,Math.PI*.25),n.lineTo(s,e),n.fillStyle=i,n.fill()}function Lu(n,s,e,t,i,r){if(n.beginPath(),n.moveTo(s+t,e),n.arc(s,e,t,0,2*Math.PI),r){const o=n.createRadialGradient(s,e,0,s,e,t);o.addColorStop(0,i),o.addColorStop(1,i.replace(/[\d\.]+\)$/,"0)")),n.fillStyle=o}else n.fillStyle=i;n.fill()}function Yl(n,s,e,t,i,r){n.beginPath(),n.moveTo(s+r,e),n.lineTo(s+t-r,e),n.arcTo(s+t,e,s+t,e+r,r),n.lineTo(s+t,e+i-r),n.arcTo(s+t,e+i,s+t-r,e+i,r),n.lineTo(s+r,e+i),n.arcTo(s,e+i,s,e+i-r,r),n.lineTo(s,e+r),n.arcTo(s,e,s+r,e,r)}function Kl(n,s,e,t,i,r){n.font=i;const o=n.measureText(t),l=o.actualBoundingBoxLeft+o.actualBoundingBoxRight,h=Number.isFinite(o.fontBoundingBoxAscent)?o.fontBoundingBoxAscent:o.actualBoundingBoxAscent,c=Number.isFinite(o.fontBoundingBoxDescent)?o.fontBoundingBoxDescent:o.actualBoundingBoxDescent;let u=h+c;n.fillStyle=r,n.fillText(t,s-l*.5,e+u*.5-c)}function Zl(n){const{width:s,height:e}=n,t=s instanceof SVGAnimatedLength?s.baseVal.SVG_LENGTHTYPE_PX:s,i=e instanceof SVGAnimatedLength?e.baseVal.SVG_LENGTHTYPE_PX:e,r=document.createElement("canvas");r.width=t,r.height=i;const o=r.getContext("2d");if(!o)throw new Error("!cavnasCtx");return o.drawImage(n,0,0,t,i),r}function Ql(n,s){const{width:e,height:t}=n,i=n.getContext("2d");if(!i)throw new Error("!cavnasCtx");const[r,o,l]=s.map(p=>p*255|0),h=i.getImageData(0,0,e,t),c=h.data;for(var u=0;u<c.length;u+=4)c[u]=r,c[u+1]=o,c[u+2]=l;i.putImageData(h,0,0)}function ao(n,s,e,t=[.5,1,0,0],i,r="12px Arial",o=2,l="#FFF",h="#000A"){n.font=r;const c=n.measureText(i),u=c.actualBoundingBoxLeft+c.actualBoundingBoxRight,p=c.fontBoundingBoxAscent+c.fontBoundingBoxDescent,g=s,m=e,y=u+o*2,S=p+o*2,{left:C,top:T,bottom:V}=wi([g,m],[y,S],[1,1],t);n.fillStyle=h,Yl(n,C,T,y,S,o),n.fill(),n.fillStyle=l,n.fillText(i,C+o,V-o-c.fontBoundingBoxDescent)}function gn(n){return("00"+n.toString(16).toUpperCase()).substr(-2)}function fn(n){const[s,e,t,i]=n.map(r=>r*255|0);return`#${gn(s)}${gn(e)}${gn(t)}${gn(i)}`}function lo(n,s){const[e,t,i]=s,r=`${e}-${t}-${i}`;let o=Ne(n,r);return o||(o=Zl(n),Ql(o,s),vt(n,r,o)),o}class Vu extends oo{constructor(e,t,i=[32,32],r=[.5,1,0,0],o="#F00F"){super(e);a(this,"_tooltip","");a(this,"_title","");a(this,"__scale",[1,1]);a(this,"_tooltipAlpha",0);a(this,"_bgColor",[.3,.3,.3,.8]);a(this,"_bgColorHexStr",fn(this._bgColor));a(this,"_fgColor",[1,1,1,1]);a(this,"_fgColorHexStr",fn(this._fgColor));this._image=t,this._size=i,this._originRatioAndOffset=r,this._defaultColorStr=o;const l=new pn(100),h=new pn(100);this.dispose(()=>{l.destroy(),h.destroy()});const c=()=>{if(this._clickEvent&&!this._clickEvent.empty){const u=(1+.08*h.current)*(1+.08*l.current);this._scale=[u,u],this._tooltipAlpha=l.current}};this.dispose(this.activedChanged.disposableOn(u=>{h.target=u?1:0,this.needRedraw()})),this.dispose(this.hoveredChanged.disposableOn(u=>{l.target=u?1:0,this.needRedraw()})),this.dispose(this.selectedChanged.disposableOn(()=>{this.needRedraw()})),this.dispose(h.currentChanged.disposableOn(c)),this.dispose(l.currentChanged.disposableOn(c))}set size(e){const[t,i]=e,[r,o]=this._size;(r!==t||o!==i)&&(this._size[0]=t,this._size[1]=i,this.needRedraw(),this.needPickRedraw())}get size(){return this._size}set _scale(e){const[t,i]=e,[r,o]=this.__scale;(r!==t||o!==i)&&(this.__scale[0]=t,this.__scale[1]=i,this.needRedraw(),this.needPickRedraw())}get _scale(){return this.__scale}set fgColor(e){if(!this._fgColor.every((t,i)=>e[i]===t)){const[t,i,r,o]=e;this._fgColor.splice(0,4,t,i,r,o),this._fgColorHexStr=fn(this._fgColor),this.needRedraw()}}get fgColor(){return this._fgColor}set bgColor(e){if(!this._bgColor.every((t,i)=>e[i]===t)){const[t,i,r,o]=e;this._bgColor.splice(0,4,t,i,r,o),this._bgColorHexStr=fn(this._bgColor),this.needRedraw()}}get bgColor(){return this._bgColor}set originRatioAndOffset(e){const[t,i,r,o]=this._originRatioAndOffset,[l,h,c,u]=e;(t!==l||i!==h||r!==c||o!==u)&&(this._originRatioAndOffset.splice(0,4,l,h,c,u),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[t,i]=this._winPos,r=this._size[0]*this.__scale[0],o=this._size[1]*this.__scale[1],{left:l,top:h}=wi([t,i],this._size,this.__scale,this._originRatioAndOffset),c=e.globalAlpha;if(e.globalAlpha=this.opacity,this._image){if(this.selected){const u=lo(this._image,[1,0,0]),{left:p,top:g}=wi([t,i+3],[r+6,o+6],[1,1],this._originRatioAndOffset);e.drawImage(u,p,g,r+6,o+6)}if(this.actived){const[u,p,g,m]=this._fgColor,y=lo(this._image,[u,p,g]),{left:S,top:C}=wi([t,i+4],[r+8,o+8],[1,1],this._originRatioAndOffset);e.drawImage(y,S,C,r+8,o+8)}if(this.hovered){const[u,p,g,m]=this._bgColor,y=lo(this._image,[u,p,g]),{left:S,top:C}=wi([t,i+2],[r+4,o+4],[1,1],this._originRatioAndOffset);e.drawImage(y,S,C,r+4,o+4)}e.drawImage(this._image,l,h,r,o)}else e.fillStyle=this._fgColorHexStr,e.fillRect(l,h,r,o);if(this._title!==""&&ao(e,t+20,i-16,[0,.5,0,0],this._title,"14px Arial",4,this._fgColorHexStr,this._bgColorHexStr),e.globalAlpha=c,this._hovered&&this._tooltip!==""){const u=e.globalAlpha;e.globalAlpha=this._tooltipAlpha,ao(e,t,i-42,[.5,1,0,0],this._tooltip,"12px Arial",4,this._fgColorHexStr,this._bgColorHexStr),e.globalAlpha=u}}drawForPick(e,t){if(!this._show)return;const[i,r]=this._winPos,o=t("default"),l=this._size[0]*this.__scale[0],h=this._size[1]*this.__scale[1],{left:c,top:u}=wi([i,r],this._size,this.__scale,this._originRatioAndOffset);e.fillStyle=o,e.fillRect(c,u,l,h)}}class zu extends oo{constructor(e){super(e);a(this,"_width",16);a(this,"_text","");a(this,"_fillStyle","#0F0");a(this,"_scale",1);a(this,"_scaleChanged");this.dispose(this.scaleChanged.disposableOn(o=>{this.needRedraw(),this.needPickRedraw()}));const t=this.disposeVar(new pn(100)),i=this.disposeVar(new pn(100)),r=()=>{this._clickEvent&&!this._clickEvent.empty&&(this.scale=(1+.1*i.current)*(1+.2*t.current))};this.dispose(i.currentChanged.disposableOn(r)),this.dispose(t.currentChanged.disposableOn(r)),this.dispose(this.activedChanged.disposableOn(o=>{i.target=o?1:0,this.needRedraw()})),this.dispose(this.hoveredChanged.disposableOn(o=>{t.target=o?1:0,this.needRedraw()})),this.dispose(this.selectedChanged.disposableOn(o=>{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 v),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[t,i]=this._winPos,r=e.globalAlpha;e.globalAlpha=this.opacity;const o=this._width*this._scale;this.selected&&Ei(e,t,i+3,o+3,"#F00"),this.actived&&this._clickEvent&&!this._clickEvent.empty&&Ei(e,t,i+5,o+5,"#FFF"),this.hovered?Ei(e,t,i+3,o+3,"#000A"):Ei(e,t,i+1,o+1,"#000A"),Ei(e,t,i,o,this._fillStyle);const l=this._scale>1.2?"bold 14px Arial":"bold 10px Arial";Kl(e,t,i-o,this._text,l,"#000"),e.globalAlpha=r}drawForPick(e,t){if(!this._show)return;const[i,r]=this._winPos,o=this._width*this._scale,l=t("default");Ei(e,i,r,o,l)}}const eh=new ArrayBuffer(4),th=new Uint32Array(eh),bi=new Uint8Array(eh);function ih(n){if(n>=16777215)throw new Error("uint32 > 0xFFFFFF");return th[0]=n,[bi[0],bi[1],bi[2]]}function sh(n,s,e){return bi[0]=n,bi[1]=s,bi[2]=e,bi[3]=0,th[0]}class nh extends b{constructor(){super(...arguments);a(this,"_pickColors",new Array(16777215));a(this,"_pickColorIndex",0)}reset(){for(let e=0;e<this._pickColorIndex;++e){const t=this._pickColors[e];if(!t)throw console.error("this._pickColors[i] should not be undefined!"),new Error("this._pickColors[i] should not be undefined!");t.poi=null,t.tag=""}this._pickColorIndex=0}createPickColor(e,t){const i=this._pickColorIndex;++this._pickColorIndex;const r=this._pickColors[i];r?(r.poi=e,r.tag=t):this._pickColors[i]={poi:e,tag:t};const[o,l,h]=ih(i);return[o,l,h]}getPickInfoFromColor(e,t,i){const r=sh(e,t,i);if(r>=this._pickColorIndex){console.error("index >= this._pickColorIndex");return}const o=this._pickColors[r];if(!o){console.error("!this._pickColors[index]");return}return o}destroyImp(){this.reset()}}const rh=(n,s)=>s.depth-n.depth;class Uu extends b{constructor(){super();a(this,"_pois",[]);a(this,"_canvasElement");a(this,"_ctx");a(this,"_offscreenCanvasElement");a(this,"_offscreenCanvasElement2");a(this,"_offscreenCtx");a(this,"_offscreenCtx2");a(this,"_size",[0,0]);a(this,"_needRedraw",!1);a(this,"_needPickRedraw",!1);a(this,"_pickColorManager",new nh);const e=document.createElement("canvas");e.style.width="100%",e.style.height="100%",this._canvasElement=e;const t=e.getContext("2d");if(t===null)throw new Error("cannot get context 2d!");this._ctx=t,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(cs(()=>{const[r,o]=this._size,{clientWidth:l,clientHeight:h}=this._canvasElement;(r!==l||o!==h)&&(this._size[0]=l,this._size[1]=h,this._canvasElement.width=l,this._canvasElement.height=h,this._offscreenCanvasElement.width=l,this._offscreenCanvasElement.height=h,this._offscreenCanvasElement2.width=l,this._offscreenCanvasElement2.height=h,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 Ne(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 t=e._needRedrawEvent;if(t){const r=t.on(()=>{this._needRedraw=!0});vt(e,"needRedrawEventHandler",r)}const i=e._needPickRedrawEvent;if(i){const r=i.on(()=>{this._needPickRedraw=!0});vt(e,"needPickRedrawEventHandler",r)}}removePoi(e){const t=this._pois.indexOf(e);if(t===-1){console.error("删除一个不存在的poi!");return}this._pois.splice(t,1),this._dirty();const i=e._needRedrawEvent;if(i){const o=Ne(e,"needRedrawEventHandler");o?i.off(o):console.error("poi没有listenHandler!")}const r=e._needPickRedrawEvent;if(r){const o=Ne(e,"needPickRedrawEventHandler");o?r.off(o):console.error("poi没有listenHandler!")}}_draw(){this._pois.sort(rh);const[e,t]=this._size;this._ctx.clearRect(0,0,e,t),this._pois.forEach(i=>i.draw(this._ctx))}pick(e,t,i,r){return this._needPickRedraw&&(this._needPickRedraw=!1,this._pickDraw()),this._getPickInfo(e,t,i,r)}_pickDraw(){this._pickColorManager.reset(),this._pois.sort(rh);const[e,t]=this._size;this._offscreenCtx.clearRect(0,0,e,t),this._pois.forEach(i=>{const r=o=>{const[l,h,c]=this._pickColorManager.createPickColor(i,o);return`rgb(${l}, ${h}, ${c})`};i.drawForPick(this._offscreenCtx,r)})}_getPickInfo(e,t,i,r){const o=this._offscreenCtx.getImageData(e,t,i,r),l=[],h=o.data.length/4;for(let c=0;c<h;++c){const u=o.data[c*4+0],p=o.data[c*4+1],g=o.data[c*4+2];if(o.data[c*4+3]===255){const y=this._pickColorManager.getPickInfoFromColor(u,p,g);if(y&&y.poi&&!l.includes(y)){let S=!0;{const[C,T]=this._size;this._offscreenCtx2.clearRect(0,0,C,T);const V=Q=>"rgb(255, 255, 255)";y.poi.drawForPick(this._offscreenCtx2,V);const z=this._offscreenCtx2.getImageData(e,t,i,r),x=z.data[c*4+0],$=z.data[c*4+1],Y=z.data[c*4+2];z.data[c*4+3],x===255&&$===255&&Y===255||(S=!1)}S&&l.push(y)}}}return l}}class ho extends b{constructor(){super(...arguments);a(this,"_closeEvent");a(this,"_show",!0);a(this,"_showChanged");a(this,"_opacity",1);a(this,"_opacityChanged");a(this,"_winPos",[0,0]);a(this,"_winPosChanged")}set winPos(e){const[t,i]=e,[r,o]=this._winPos;(t!==r||i!==o)&&(this._winPos[0]=t,this._winPos[1]=i,this._winPosChanged&&this._winPosChanged.emit(this._winPos))}get winPos(){return this._winPos}get winPosChanged(){return this._winPosChanged=this._winPosChanged||new v,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 v,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 v,this._showChanged}get closeEvent(){return this._closeEvent||(this._closeEvent=new v),this._closeEvent}}const co=new WeakMap;function uo(n){if(!co.has(n)){const s=new An(()=>new n,e=>e.reset());co.set(n,s)}return co.get(n)}class po extends ho{constructor(){super();a(this,"_div");a(this,"_contentDiv");a(this,"_originOffsetX",0);a(this,"_originOffsetY",0);a(this,"_originRatioX",.5);a(this,"_originRatioY",1);a(this,"_divChanged",new v);const e=document.createElement("div");e.style.cssText="width: 0px; height: 0px; position: absolute; opacity: 1.0; visibility: visible;";const t=document.createElement("div");t.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,t.appendChild(i),e.appendChild(t),this._div=e,this.dispose(this._divChanged.disposableOn(()=>{t.style.left=`${-this._originOffsetX}px`,t.style.top=`${-this._originOffsetY}px`,t.style.transform=`translateX(-${100*this._originRatioX}%) translateY(-${100*this._originRatioY}%)`})),this.dispose(this.winPosChanged.disposableOn(([r,o])=>{this._div.style.left=`${r}px`,this._div.style.top=`${o}px`})),this.dispose(this.opacityChanged.disposableOn(r=>{this._div.style.opacity=`${r}`})),this.dispose(this.showChanged.disposableOn(r=>{this._div.style.visibility=r?"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 oh extends b{constructor(e,t){super();a(this,"_floatDiv");a(this,"_show",!1);a(this,"_showChanged");this._customDivClass=e,this._divContainer=t,this.dispose(()=>{this.show=!1})}_updateDivPoi(){if(this._show){const{floatDiv:t}=this;t.element.parentElement||this._divContainer.appendChild(t.element)}else{const{_floatDiv:t}=this;t&&t.element.parentElement&&this._divContainer.removeChild(t.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=uo(this._customDivClass).create();this.dispose(()=>{uo(this._customDivClass).destroy(e)}),this._floatDiv=e}return this._floatDiv}get showChanged(){return this._showChanged||(this._showChanged=new v),this._showChanged}}const Bu=["top","bottom","left","right"];function Wu(n){return Object.entries(n).map(([s,e])=>Bu.includes(s)?`${s}: ${e}px; `:"").join("")}function ah(n,s,e){const t=document.createElement("div");t.style.cssText=`position: absolute; ${Wu(e)} background-color: ${n}; border-radius: ${s}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 t.innerHTML=i,t}function lh(n,s,e="rgba(0,0,0,0.7)"){const t=document.createElement("div");t.style.cssText=`margin: 0 auto; width: ${n}px; height: ${s}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: ${n*.5}px solid transparent; border-right: ${n*.5}px solid transparent; border-top: ${s}px solid ${e};`,t.appendChild(i),[t,i]}class hh extends po{constructor(){super();a(this,"_borderDiv");a(this,"_closeDiv");a(this,"_innerContentDiv");a(this,"_colorStr","rgba(0, 0, 0, 0.7)");a(this,"_divColorChanged",new v);a(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 t=ah(this._colorStr,10,{top:3,right:3}),[i,r]=lh(2*this._borderRadius,2*this._borderRadius,this._colorStr),o=document.createElement("div");this._innerContentDiv=o,e.appendChild(o),e.appendChild(t),this.contentDiv.appendChild(e),this.contentDiv.appendChild(i),t.style.opacity="0.1",t.onmouseenter=()=>{t.style.opacity="1.0"},t.onmouseleave=()=>{t.style.opacity="0.1"},t.onclick=()=>{this._closeEvent&&this._closeEvent.emit()},this._closeDiv=t,this.dispose(this._divColorChanged.disposableOn(()=>{r.style.borderTopColor=this._colorStr,e.style.backgroundColor=this._colorStr,i.style.width=`${this._borderRadius*2}px`,i.style.height=`${this._borderRadius*2}px`,r.style.borderLeft=`${this._borderRadius}px`,r.style.borderRight=`${this._borderRadius}px`,r.style.borderTop=`${this._borderRadius*2}px`}));const l=h=>{h.key==="Escape"&&this._closeEvent&&this._closeEvent.emit()};document.body.addEventListener("keydown",l,!0),this.dispose(()=>{document.removeEventListener("keydown",l,!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 Hu extends hh{constructor(){super();a(this,"_iframe");a(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 t=i=>{i.source===this._iframe.contentWindow&&(this._iframeMessageEvent?this._iframeMessageEvent.emit(i):console.warn(`iframe消息接收到未处理!data: ${i.data}`))};globalThis.addEventListener("message",t),this.dispose(()=>{globalThis.removeEventListener("message",t)})}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 v,this._iframeMessageEvent}}class $u extends ho{constructor(){super();a(this,"_div");a(this,"_contentContainer");a(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 t=document.createElement("div");t.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(t),t.appendChild(i),this._contentContainer=i,this._div=e,this.dispose(this.winPosChanged.disposableOn(([r,o])=>{this._div.style.left=`${r}px`,this._div.style.top=`${o-50}px`})),this.dispose(this.opacityChanged.disposableOn(r=>{this._div.style.opacity=`${r}`})),this.dispose(this.showChanged.disposableOn(r=>{this._div.style.visibility=r?"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 Gu extends po{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 Ju extends b{constructor(e,t){super();a(this,"_cursorDiv");a(this,"_pointerOut",this.disposeVar(w(!1)));a(this,"_show",this.disposeVar(w(!0)));this._cursorDiv=new oh(t,e),this.dispose(()=>this._cursorDiv.destroy());const i=o=>{const[l,h]=we(o);this._cursorDiv.floatDiv.winPos=[l,h]};e.addEventListener("pointermove",i),this.dispose(()=>e.removeEventListener("pointermove",i));const r=()=>{this._cursorDiv.show=this.show&&this._pointerOut.value};r(),this.dispose(this.showChanged.disposableOn(r)),this.dispose(this._pointerOut.changed.disposableOn(r))}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 mn(n,s,e){if(!(n.tree===s.tree&&n!==s&&!n.isAncestorOf(s))||n.tree!==s.tree||!n.parent)return!1;if(!n.parent.children)throw console.error("当前节点的父节点没有子节点?这是不可能的!"),new Error("当前节点的父节点没有子节点?这是不可能的!");return!(s===n||n.isAncestorOf(s)||e!=="inner"&&!s.parent||e==="inner"&&!s.children)}function qn(n,s,e){if(!n.tree||!s.tree||n.tree!==s.tree)return;if(!n.parent){console.warn("当前节点没有父节点,那么该节点无法被移动!");return}if(!n.parent.children)throw console.error("当前节点的父节点没有子节点?这是不可能的!"),new Error("当前节点的父节点没有子节点?这是不可能的!");if(s===n){console.warn("自身不能拖放到自身!");return}if(n.isAncestorOf(s)){console.warn("当前节点不能拖放到它自身的后代节点之上!");return}if(e!=="inner"&&!s.parent){console.warn("目标节点没有父节点,无法拖放!");return}if(e==="inner"&&!s.children){console.warn("无法移动到目标节点的子节点中,因为目标节点不是组节点!");return}n.tree._startTransaction();const t=n.parent.children.indexOf(n);if(n.parent.children.splice(t,1),e!=="inner"){const{parent:i}=s;if(!i||!i.children)throw new Error("!parent");const r=i.children.indexOf(s);e==="before"?i.children.splice(r,0,n):e==="after"&&i.children.splice(r+1,0,n)}else s.children.push(n);n.tree._stopTransaction()}function ch(n,s,e){return Wr(n,t=>mn(t,s,e))}function dh(n,s,e){for(let t of n)mn(t,s,e)?qn(t,s,e):console.warn(`treeItem(id: ${t.id}) cannot move...`)}const qu={checked:1,unchecked:2,indeterminate:3},Xu=["checked","unchecked","indeterminate"];class uh extends b{constructor(e){super();a(this,"_collapsed",this.disposeVar(w(!1)));a(this,"_checkedStatus",this.disposeVar(w("unchecked")));a(this,"_selected",this.disposeVar(w(!1)));a(this,"_moveToPositionMode",this.disposeVar(w("none")));a(this,"_updateCheckedStatusFromChildrenEvent",this.disposeVar(new v));this._treeItem=e;const t=()=>this._treeItem.tree&&this._treeItem.tree.itemsChanged.emit([this._treeItem]);this.dispose(this._collapsed.changed.disposableOn(t)),this.dispose(this._checkedStatus.changed.disposableOn(t)),this.dispose(this._selected.changed.disposableOn(t)),this.dispose(this._moveToPositionMode.changed.disposableOn(t)),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(oe(this._updateCheckedStatusFromChildrenEvent));this.dispose(i.disposableOn(()=>{if(!this._treeItem.children)return;let r=0;Br(this._treeItem.children,o=>(r|=qu[o.uiTreeObject.checkedStatus],r===3)),r>0&&(this._checkedStatus.value=Xu[r-1])})),this.dispose(this._treeItem.childrenResetedEvent.disposableOn(r=>{!r&&this.checkedStatus==="indeterminate"&&(this._checkedStatus.value="unchecked")}));{const r=(o,l,h=!0)=>{if(l)o.selectedItems.push(this._treeItem);else{const c=o.selectedItems.indexOf(this._treeItem);c===-1?h&&console.error("selectedItems index -1"):o.selectedItems.splice(c,1)}};this.dispose(this._selected.changed.disposableOn(o=>{const{tree:l}=this._treeItem;l&&r(l,o)})),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 t=e?"checked":"unchecked";if(this._checkedStatus.value!==t&&(this._checkedStatus.value=t,this._treeItem.children))for(let i of this._treeItem.children)i.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 lt=class lt extends b{constructor(e,t=!1,i){super();a(this,"_children");a(this,"_childrenResetedEvent");a(this,"_childrenToChangeEvent");a(this,"_childrenChangedEvent");a(this,"_parent",this.disposeVar(w(void 0)));a(this,"_level",this.disposeVar(w(0)));a(this,"_id");a(this,"_uiTreeObject",this.disposeVar(new uh(this)));this._tree=e,this._hasChildren=t,this._id=i??ns(),this._id!=="_ROOT"&&lt.wm.has(this._id)&&console.warn(`创建了id(${this._id})相同的树节点,会导致之前的树节点无法索引!`),lt.wm.set(this._id,this),this.dispose(()=>{if(this._id!=="_ROOT"&&!lt.wm.has(this._id)){console.warn(`树节点(${this._id})不在wm树上!`);return}lt.wm.delete(this._id)}),this.dispose(this._parent.changed.disposableOn(()=>{this._updateLevel()})),this.dispose(this._level.changed.disposableOn(()=>{if(this.children)for(let r of this.children)r._updateLevel()})),lt.allTreeItems.set(this._id,this),this.dispose(()=>{lt.allTreeItems.delete(this._id)})}static getFromId(e){return lt.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 hn);this._children=e,this.dispose(e.toChangeEvent.disposableOn((r,o)=>{for(let l of r){const{start:h,deleteCount:c,items:u}=l;for(let p=h;p<h+c;++p)o.get(p)._parent.value=void 0;for(let p of u){if(p.parent)throw console.error("请检查新增的treeItem是否正在使用!"),new Error("item.parent should not exist!");p._parent.value=this}}}));const t=new Set,i=new Set;this.dispose(e.toChangeEvent.disposableOn((r,o)=>{var l;if(this.tree){t.clear(),i.clear();for(let h of r){const{start:c,deleteCount:u,items:p}=h;for(let g=c;g<c+u;++g)t.add(o.get(g));for(let g of p)i.add(g)}for(let h of t)i.has(h)&&(t.delete(h),i.delete(h));(l=this.tree)==null||l.itemChildrenToChange.emit(this,r,t,i)}})),this.dispose(e.changedEvent.disposableOn(()=>{var r;(r=this.tree)==null||r.itemChildrenChanged.emit(this)})),this.dispose(e.toChangeEvent.disposableOn((...r)=>this._childrenToChangeEvent&&this._childrenToChangeEvent.emit(...r))),this.dispose(e.changedEvent.disposableOn((...r)=>this._childrenChangedEvent&&this._childrenChangedEvent.emit(...r)))}return this._children}else return}get childrenResetedEvent(){return this._childrenResetedEvent||(this._childrenResetedEvent=new v),this._childrenResetedEvent}get childrenToChangeEvent(){return this._childrenToChangeEvent||(this._childrenToChangeEvent=new v),this._childrenToChangeEvent}get childrenChangedEvent(){return this._childrenChangedEvent||(this._childrenChangedEvent=new v),this._childrenChangedEvent}resetChildren(e=!1){this._children&&(this._children.length=0),this._hasChildren=e,this._childrenResetedEvent&&this._childrenResetedEvent.emit(e)}*getDescendants(e){const t=this,i=[],r=[];for(t.children&&t.children.length>0&&(!e||e(t))&&(i.push(0),r.push(t.children));i.length>0;){const o=i[i.length-1],l=r[r.length-1],h=l.get(o);yield h,o<l.length-1?++i[i.length-1]:(r.pop(),i.pop()),h.children&&h.children.length>0&&(!e||e(h))&&(i.push(0),r.push(h.children))}}*getAncestors(e){let t=this.parent;for(;t&&(yield t,!(e&&!e(t)));)t=t.parent}isDescendantOf(e){for(let t of this.getAncestors())if(t===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,t){return mn(this,e,t)}moveTo(e,t){qn(this,e,t)}detachFromParent(){if(!this.parent||!this.parent.children)return;const e=this.parent.children.indexOf(this);this.parent.children.splice(e,1)}insertNewTreeItem(e,t){if(t&&t.tree!==this.tree)return console.warn("newTreeItem.tree !== this.tree"),!1;if(this.children&&e.startsWith("Inner"))return t&&this.children.push(t),!0;if(e==="Inner")return!1;const i=this.parent;if(!i||!i.children)return!1;const r=i.children.indexOf(this);return e.endsWith("Before")?t&&i.children.splice(r,0,t):e.endsWith("After")&&t&&i.children.splice(r+1,0,t),!0}};a(lt,"wm",new Map),a(lt,"allTreeItems",new Map);let vn=lt;class ph extends b{constructor(e){super();a(this,"_redrawEvent",this.disposeVar(new v));a(this,"_containerScrollTop",this.disposeVar(w(0)));a(this,"_containerClientHeight",this.disposeVar(w(-1)));a(this,"_filterFunc",this.disposeVar(w(void 0)));a(this,"_container",this.disposeVar(w(void 0)));a(this,"_redrawInfo",{topFreeSpaceHeight:0,topUnvisibleItemNum:0,middleTreeItems:[],bottomFreeSpaceHeight:0,bottomUnvisibleItemNum:0});this._tree=e;const t=this._containerClientHeight,i=this._containerScrollTop,r=this._tree._forceRedrawEvent,o=this.disposeVar(oe(this._tree.itemDivHeightChanged,this._tree.itemChildrenChanged,this._tree.itemsChanged,t.changed,i.changed,r,this._filterFunc.changed)),{redrawInfo:l}=this;this.dispose(o.disposableOn(()=>{const c=this._createTraverseFunc();if(l.topFreeSpaceHeight=0,l.topUnvisibleItemNum=0,l.middleTreeItems.length=0,l.bottomFreeSpaceHeight=0,l.bottomUnvisibleItemNum=0,this._containerClientHeight.value>=0){const u=Hr(this._tree.getDescendants(c)),p=this._tree.itemDivHeight,g=p*u,m=Lt([Zt([Lt([g-t.value,0]),i.value]),0]),y=m/p|0,S=Math.ceil((m-y*p+t.value)/p)|0;y>0&&(l.topUnvisibleItemNum=y,l.topFreeSpaceHeight=y*this._tree.itemDivHeight);const C=y+S;let T=0;for(let z of this._tree.getDescendants(c)){if(T>=C)break;T>=y&&l.middleTreeItems.push(z),++T}const V=u-y-S;V>0&&(l.bottomUnvisibleItemNum=V,l.bottomFreeSpaceHeight=V*this._tree.itemDivHeight)}else for(let u of this._tree.getDescendants(c))l.middleTreeItems.push(u);this._redrawEvent.emit(l)}));let h;this.dispose(()=>h&&(h.destroy(),h=void 0)),this.dispose(this.containerChanged.disposableOn(c=>{h&&(h.destroy(),h=void 0),c&&(h=dn(),h.start(()=>{const{scrollTop:u,clientHeight:p}=c;typeof u>"u"||typeof p>"u"?is("createUiTreeWithContainer error: conainter has no scrollTop or clientHeight property!"):(this.containerScrollTop=u,this.containerClientHeight=p)}))}))}get filterFunc(){return this._filterFunc.value}set filterFunc(e){this._filterFunc.value=e}get filterFuncChanged(){return this._filterFunc.changed}get container(){return this._container.value}set container(e){this._container.value=e}get containerChanged(){return this._container.changed}get redrawInfo(){return this._redrawInfo}_createTraverseFunc(){const e=this._filterFunc.value;if(!e)return r=>{const o=r.uiTreeObject;return!!r.children&&(!o||!o.collapsed)};const t=new Set,i=r=>{let o=!1;if(r.children)for(let h of r.children)i(h)&&(o=!0);const l=!!e(r)||o;return l&&o&&t.add(r),l};return i(this._tree.root),r=>!!r.children&&t.has(r)}getTreeItemPos(e){const t=this._createTraverseFunc();let i=0,r=!1;for(let o of this._tree.getDescendants(t)){if(o===e){r=!0;break}++i}if(r)return[i,i*this._tree.itemDivHeight]}collapseAll(){console.log("collapseAll");for(let e of this.tree.root.getDescendants()){const t=e.uiTreeObject;t.collapsed=!0}}expandAll(){console.log("expandAll");for(let e of this.tree.root.getDescendants()){const t=e.uiTreeObject;t.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 t of this._tree.getDescendants())(!e||e(t))&&(yield t)}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 t of this.getAllItems())(!e||!e.includes(t))&&(t.uiTreeObject.selected=!0)}clearAllSelectedItems(e){for(let t of this.getAllSelectedItems())(!e||!e.includes(t))&&(t.uiTreeObject.selected=!1)}checkAllItems(e){for(let t of this.getAllItems())(!e||!e.includes(t))&&t.uiTreeObject.check(!0)}clearAllCheckedItems(e){for(let t of this.getAllCheckedItems())(!e||!e.includes(t))&&t.uiTreeObject.check(!1)}}const si=class si extends b{constructor(e){super();a(this,"_root",this.disposeVar(new vn(this,!0,"_ROOT")));a(this,"_itemChildrenChanged",this.disposeVar(new v));a(this,"_itemChildrenToChange",this.disposeVar(new v));a(this,"_itemsAdded",this.disposeVar(new v));a(this,"_itemsDeleted",this.disposeVar(new v));a(this,"_itemsChanged",this.disposeVar(new v));a(this,"_transactionStack",0);a(this,"_addedItems",new Set);a(this,"_deletedItems",new Set);a(this,"_selectedItems",this.disposeVar(new hn));a(this,"_itemDivHeight",this.disposeVar(w(si.defaultItemDivHeight)));a(this,"_forceRedrawEvent",this.disposeVar(new v));a(this,"_uiTree",this.disposeVar(new ph(this)));this._root._tree.value=this,this.dispose(this._itemChildrenToChange.disposableOn((t,i)=>{if(!t.children){console.error("!item.children");return}for(let r of i){const{start:o,deleteCount:l,items:h}=r;for(let c=o;c<o+l;++c){const u=t.children.get(c);this._deletedItems.has(u)?console.error(`this._deletedItems.has(currentItem(${u.id}))`):this._deletedItems.add(u)}for(let c of h)this._deletedItems.has(c)?this._deletedItems.delete(c):this._addedItems.add(c)}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 t;for(let i of this.getDescendants())if(i.id===e){t=i;break}return t}_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}};a(si,"defaultItemDivHeight",24),a(si,"canMoveToTreeItem",mn),a(si,"moveToTreeItem",qn),a(si,"canMoveToTreeItems",ch),a(si,"moveToTreeItems",dh);let Si=si;class le extends b{constructor(e,t,i=!0,r){super();a(this,"_obj",this.disposeVar(w(void 0)));this._resetEvent=e,this._createFunc=t;const o=this._resetEvent,l=this._createFunc,h=()=>{this._obj.value&&(this._obj.value.destroy(),this._obj.value=void 0)};this.dispose(h);const c=(...u)=>{h(),this._obj.value=l(...u)};i&&(r?this._obj.value=l(...r):this._obj.value=l()),this.dispose(o.disposableOn(c))}get obj(){return this._obj.value}get objChanged(){return this._obj.changed}}class Yu extends b{constructor(e,t=!0,i){super();a(this,"_event",this.disposeVar(new v));a(this,"_objResettingWithEvent");this._createFunc=e,this._execOnInit=t,this._initParams=i,this._objResettingWithEvent=this.disposeVar(new le(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 Or=class Or extends b{constructor(){super();a(this,"_set",new Set);a(this,"_toChangeEvent",this.dv(new v));a(this,"_changedEvent",this.dv(new v));a(this,"main");this.dispose(()=>{this._set.size!==0&&(Or.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 t of e)this._toChangeEvent.emit([],[t]),this._set.add(t),this._changedEvent.emit([],[t])}delete(...e){for(let t of e)this.main&&this.main==t&&(this.main=void 0),this._toChangeEvent.emit([t],[]),this._set.delete(t),this._changedEvent.emit([t],[])}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()}};a(Or,"warnOnDestroying",!0);let Xn=Or;async function gh(n){const s=[],e=[],t=n.entries();for await(const[i,r]of t){const o=r;o.kind==="file"?s.push(i):o.kind==="directory"&&e.push(i)}return{files:s,dirs:e}}async function go(n){return await(await n.getFile()).text()}async function fh(n){const s=await go(n);try{return JSON.parse(s)}catch{return}}async function mh(n){return await(await n.getFile()).arrayBuffer()}class vh extends b{constructor(s){super(),this._rootDirHandle=s}get rootDirHandle(){return this._rootDirHandle}async getSubFilesAndDirs(){return await gh(this._rootDirHandle)}async getDir(s){let e=this._rootDirHandle;for(const t of s)if(e=await(e==null?void 0:e.getDirectoryHandle(t)),!e){console.log(`getDirectoryHandle ${t} failed`);return}return e}async getFile(s,e){const t=await this.getDir(s);if(t)try{return await t.getFileHandle(e)}catch(i){console.error(`未能获取当前文件 ${s.join("/")}/${e} error: ${i}`,i);return}}}class _h extends b{constructor(e){super();a(this,"_startRootDirId",0);a(this,"_dirMap",new Map);this._prefix=e}get prefix(){return this._prefix}async getRootDirId(e){let t;try{console.log("window.showDirectoryPicker begin"),t=await globalThis.showDirectoryPicker({id:e,mode:"read"}),console.log("window.showDirectoryPicker end",t)}catch(i){console.error(`LocalFileServer getRootDirId failed: ${i}`,i);return}if(t){const i=++this._startRootDirId,r=`${this._prefix}${i}`;return this._dirMap.set(r,new vh(t)),r}}getRootDir(e){return this._dirMap.get(e)}async getFile(e){const t=e.split("/");if(t.length<2){console.warn(`LocalFileServer getFile failed: ${e}`);return}const i=t[0],r=this._dirMap.get(i);if(!r){console.warn(`LocalFileServer getFile failed: ${e}`);return}const o=t.slice(1,t.length-1),l=t[t.length-1],h=await r.getFile(o,l);if(!h){console.warn(`LocalFileServer getFile failed: ${e}`);return}return h}async getText(e){const t=await this.getFile(e);if(t)return await go(t)}async getArrayBuffer(e){const t=await this.getFile(e);if(t)return await mh(t)}async getJson(e){const t=await this.getFile(e);if(t)return await fh(t)}async getLocalFilePath(e,t,i){const r=await this.getRootDirId(t);if(!r){console.warn("getRootDirId error!");return}const o=this.getRootDir(r);if(!o){console.warn("getRootDir error!");return}const l=await o.getSubFilesAndDirs();if(!l.files){console.warn("getSubFilesAndDirs error! 找不到符合要求的文件!");return}const h=e?l.files.filter(c=>e.some(u=>c.endsWith(u))):l.files;if(h.length===0){console.warn("找不到符合要求的文件!");return}return`https://${r}/${h[0]}`}}const yh=new _h("xe2_local");async function Ku(n,s,e){return await yh.getLocalFilePath(n,s,e)}class wh extends b{constructor(e,t){super();a(this,"_processing");this._complexImage=e,this._imageUri=t,this._processing=this.disposeVar(Le(async i=>{const r=this._complexImage,o=await i.promise(Rl(this._imageUri,this._complexImage.crossOrigin));o&&o instanceof HTMLImageElement&&(r.size=[o.naturalWidth,o.naturalHeight],r.pixelFormat="RGBA",r.copyTexture({source:o}))})),this._processing.start()}get processing(){return this._processing}}const Eh=["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"],bh=["img","gif","video","flv","hls"];let Zu=class extends b{constructor(e,t){super();a(this,"_element");this._complexImage=e,this._videoSrc=t;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 r=()=>{i.crossOrigin=this._complexImage.crossOrigin};r(),this.dispose(this._complexImage.crossOriginChanged.disposableOn(r))}{const r=()=>{i.autoplay=this._complexImage.autoplay};r(),this.dispose(this._complexImage.autoplayChanged.disposableOn(r))}{const r=()=>{i.loop=this._complexImage.loop};r(),this.dispose(this._complexImage.loopChanged.disposableOn(r))}i.muted=!0,document.body.appendChild(i),this._element=i,this.dispose(()=>document.body.removeChild(i))}get element(){return this._element}};class Sh extends b{constructor(e,t){super();a(this,"_videoDom");a(this,"_update");this._complexImage=e,this._imageUri=t,this._videoDom=this.disposeVar(new Zu(this._complexImage,this._imageUri)),this._update=this.disposeVar(cs(()=>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:t,videoHeight:i}=this.videoElement;e.size=[t,i],e.pixelFormat="RGBA",e.copyTexture({source:this.videoElement})}}function Qu(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var fo={},Vt={},Ch;function ep(){if(Ch)return Vt;Ch=1,Object.defineProperty(Vt,"__esModule",{value:!0}),Vt.loop=Vt.conditional=Vt.parse=void 0;var n=function t(i,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:o;if(Array.isArray(r))r.forEach(function(c){return t(i,c,o,l)});else if(typeof r=="function")r(i,o,l,t);else{var h=Object.keys(r)[0];Array.isArray(r[h])?(l[h]={},t(i,r[h],o,l[h])):l[h]=r[h](i,o,l,t)}return o};Vt.parse=n;var s=function(i,r){return function(o,l,h,c){r(o,l,h)&&c(o,i,l,h)}};Vt.conditional=s;var e=function(i,r){return function(o,l,h,c){for(var u=[],p=o.pos;r(o,l,h);){var g={};if(c(o,i,l,g),o.pos===p)break;p=o.pos,u.push(g)}return u}};return Vt.loop=e,Vt}var he={},Ph;function Th(){if(Ph)return he;Ph=1,Object.defineProperty(he,"__esModule",{value:!0}),he.readBits=he.readArray=he.readUnsigned=he.readString=he.peekBytes=he.readBytes=he.peekByte=he.readByte=he.buildStream=void 0;var n=function(p){return{data:p,pos:0}};he.buildStream=n;var s=function(){return function(p){return p.data[p.pos++]}};he.readByte=s;var e=function(){var p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function(g){return g.data[g.pos+p]}};he.peekByte=e;var t=function(p){return function(g){return g.data.subarray(g.pos,g.pos+=p)}};he.readBytes=t;var i=function(p){return function(g){return g.data.subarray(g.pos,g.pos+p)}};he.peekBytes=i;var r=function(p){return function(g){return Array.from(t(p)(g)).map(function(m){return String.fromCharCode(m)}).join("")}};he.readString=r;var o=function(p){return function(g){var m=t(2)(g);return p?(m[1]<<8)+m[0]:(m[0]<<8)+m[1]}};he.readUnsigned=o;var l=function(p,g){return function(m,y,S){for(var C=typeof g=="function"?g(m,y,S):g,T=t(p),V=new Array(C),z=0;z<C;z++)V[z]=T(m);return V}};he.readArray=l;var h=function(p,g,m){for(var y=0,S=0;S<m;S++)y+=p[g+S]&&Math.pow(2,m-S-1);return y},c=function(p){return function(g){for(var m=s()(g),y=new Array(8),S=0;S<8;S++)y[7-S]=!!(m&1<<S);return Object.keys(p).reduce(function(C,T){var V=p[T];return V.length?C[T]=h(y,V.index,V.length):C[T]=y[V.index],C},{})}};return he.readBits=c,he}var Ih;function tp(){return Ih||(Ih=1,(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var s=ep(),e=Th(),t={blocks:function(g){for(var m=0,y=[],S=g.data.length,C=0,T=(0,e.readByte)()(g);T!==m&&T;T=(0,e.readByte)()(g)){if(g.pos+T>=S){var V=S-g.pos;y.push((0,e.readBytes)(V)(g)),C+=V;break}y.push((0,e.readBytes)(T)(g)),C+=T}for(var z=new Uint8Array(C),x=0,$=0;$<y.length;$++)z.set(y[$],x),x+=y[$].length;return z}},i=(0,s.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(p){var g=(0,e.peekBytes)(2)(p);return g[0]===33&&g[1]===249}),r=(0,s.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,s.conditional)({lct:(0,e.readArray)(3,function(p,g,m){return Math.pow(2,m.descriptor.lct.size+1)})},function(p,g,m){return m.descriptor.lct.exists}),{data:[{minCodeSize:(0,e.readByte)()},t]}]},function(p){return(0,e.peekByte)()(p)===44}),o=(0,s.conditional)({text:[{codes:(0,e.readBytes)(2)},{blockSize:(0,e.readByte)()},{preData:function(g,m,y){return(0,e.readBytes)(y.text.blockSize)(g)}},t]},function(p){var g=(0,e.peekBytes)(2)(p);return g[0]===33&&g[1]===1}),l=(0,s.conditional)({application:[{codes:(0,e.readBytes)(2)},{blockSize:(0,e.readByte)()},{id:function(g,m,y){return(0,e.readString)(y.blockSize)(g)}},t]},function(p){var g=(0,e.peekBytes)(2)(p);return g[0]===33&&g[1]===255}),h=(0,s.conditional)({comment:[{codes:(0,e.readBytes)(2)},t]},function(p){var g=(0,e.peekBytes)(2)(p);return g[0]===33&&g[1]===254}),c=[{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,s.conditional)({gct:(0,e.readArray)(3,function(p,g){return Math.pow(2,g.lsd.gct.size+1)})},function(p,g){return g.lsd.gct.exists}),{frames:(0,s.loop)([i,l,h,r,o],function(p){var g=(0,e.peekByte)()(p);return g===33||g===44})}],u=c;n.default=u})(fo)),fo}var ip=tp();const sp=Qu(ip);var np=Th();const rp=(n,s)=>{const e=new Array(n.length),t=n.length/s,i=function(u,p){const g=n.slice(p*s,(p+1)*s);e.splice.apply(e,[u*s,s].concat(g))},r=[0,4,2,1],o=[8,8,4,2];for(var l=0,h=0;h<4;h++)for(var c=r[h];c<t;c+=o[h])i(c,l),l++;return e},op=(n,s,e)=>{const r=e;var o,l,h,c,u,p,g,$,m,y,x,S,Y,Q,qe,Ae;const C=new Array(e),T=new Array(4096),V=new Array(4096),z=new Array(4097);for(S=n,l=1<<S,u=l+1,o=l+2,g=-1,c=S+1,h=(1<<c)-1,m=0;m<l;m++)T[m]=0,V[m]=m;var x,$,Y,Q,Ae,qe;for(x=$=Y=Q=Ae=qe=0,y=0;y<r;){if(Q===0){if($<c){x+=s[qe]<<$,$+=8,qe++;continue}if(m=x&h,x>>=c,$-=c,m>o||m==u)break;if(m==l){c=S+1,h=(1<<c)-1,o=l+2,g=-1;continue}if(g==-1){z[Q++]=V[m],g=m,Y=m;continue}for(p=m,m==o&&(z[Q++]=Y,m=g);m>l;)z[Q++]=V[m],m=T[m];Y=V[m]&255,z[Q++]=Y,o<4096&&(T[o]=g,V[o]=Y,o++,(o&h)===0&&o<4096&&(c++,h+=o)),g=p}Q--,C[Ae++]=z[Q],y++}for(y=Ae;y<r;y++)C[y]=0;return C},ap=n=>{const s=new Uint8Array(n);return Re.parse(np.buildStream(s),sp)},lp=n=>{const s=n.pixels.length,e=new Uint8ClampedArray(s*4);for(var t=0;t<s;t++){const i=t*4,r=n.pixels[t],o=n.colorTable[r]||[0,0,0];e[i]=o[0],e[i+1]=o[1],e[i+2]=o[2],e[i+3]=r!==n.transparentIndex?255:0}return e},hp=(n,s,e)=>{if(!n.image){console.warn("gif frame does not have associated image.");return}const{image:t}=n,i=t.descriptor.width*t.descriptor.height;var r=op(t.data.minCodeSize,t.data.blocks,i);t.descriptor.lct.interlaced&&(r=rp(r,t.descriptor.width));const o={pixels:r,dims:{top:n.image.descriptor.top,left:n.image.descriptor.left,width:n.image.descriptor.width,height:n.image.descriptor.height}};return t.descriptor.lct&&t.descriptor.lct.exists?o.colorTable=t.lct:o.colorTable=s,n.gce&&(o.delay=(n.gce.delay||10)*10,o.disposalType=n.gce.extras.disposal,n.gce.extras.transparentColorGiven&&(o.transparentIndex=n.gce.transparentColorIndex)),o.patch=lp(o),o},cp=(n,s)=>n.frames.filter(e=>e.image).map(e=>hp(e,n.gct));async function xh(n){const e=await(await fetch(n)).arrayBuffer(),t=ap(e),i=cp(t);return{gif:t,gifFrames:i,arrayBuffer:e}}function Oh(n,s,e){return n<s?s:n>e?e:n}class Dh extends Jn{constructor(e,t=!0,i){super();a(this,"_gifFrames",this.disposeVar(w(void 0)));a(this,"_gifDurations",[]);a(this,"_gifDuration",this.disposeVar(w(0)));a(this,"_gifSize",this.disposeVar(w([0,0],(e,t)=>e.every((i,r)=>i===t[r]),e=>[...e])));a(this,"_autoPlayOnLoad",this.disposeVar(w(!0)));a(this,"_gifCanvas");this._container=e,this.loop=!0;const r=document.createElement("canvas");this._gifCanvas=r,r.style.width="100%",r.style.height="100%";const o=r.getContext("2d");this._container&&this._container.appendChild(r),this.dispose(()=>this._container&&this._container.removeChild(r));let l;this.dispose(this._gifFrames.changed.disposableOn(c=>{if(!c||c.length===0){r.width=0,r.height=0;return}const{width:u,height:p}=c[0].dims;this._gifSize.value=[u,p];const g=c.length;let m=0;this._gifDurations.length=0;for(let y=0;y<g;++y)m+=c[y].delay,this._gifDurations.push(m);this._gifDuration.value=this._gifDurations[this._gifDurations.length-1],r.width=u,r.height=p,l=o.createImageData(u,p),this.currentTimeChangedEvent.emit(this.currentTime,this.currentTime),this._autoPlayOnLoad.value&&(this.currentTime=0,this.playing=!0)}));let h=-1;this.dispose(this.currentTimeChangedEvent.disposableOn(c=>{const u=Oh(c/this.duration,0,1),p=this.gifDuration*u,g=this._gifFrames.value;if(g&&g.length>0){const m=this._getFrame(p);if(m===h)return;h=m;const y=g[m];if(y.disposalType!==0&&y.disposalType!==1&&y.disposalType!==2&&is(`gif parsed get disposalType ${y.disposalType}... frame: ${m} size: ${JSON.stringify(y.dims)}`,`gif parsed get disposalType ${y.disposalType}...`),l&&(m===0||y.disposalType===2)&&l.data.fill(0),l){const[S,C]=this._gifSize.value,{width:T,height:V,left:z,top:x}=y.dims;if(V>C)throw new Error("height > canvasHeight");for(let $=0;$<V;++$)for(let Y=0;Y<T;++Y){const Q=$*T+Y,Ae=x+$,qe=z+Y,jt=Ae*S+qe,mt=l.data,fi=y.patch,mi=fi[Q*4+3]/255;mt[jt*4+0]=mt[jt*4+0]*(1-mi)+fi[Q*4+0]*mi|0,mt[jt*4+1]=mt[jt*4+1]*(1-mi)+fi[Q*4+1]*mi|0,mt[jt*4+2]=mt[jt*4+2]*(1-mi)+fi[Q*4+2]*mi|0,mt[jt*4+3]=Oh(mt[jt*4+3]+fi[Q*4+3],0,255)|0}o.putImageData(l,0,0)}}else is("gif资源未加载!无法播放!")})),this.dispose(this._gifDuration.changed.disposableOn(()=>{this.duration=this.gifDuration})),this._autoPlayOnLoad.value=t,this._gifFrames.value=i}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 t=this._gifDurations.length;for(let i=0;i<t;++i)if(e<=this._gifDurations[i])return i;throw new Error("should not be here")}}class Fh extends b{constructor(e){super();a(this,"_player");a(this,"_url",this.disposeVar(w("")));a(this,"_loadGifFramesProcessing",this.disposeVar(Gn(e=>hs(xh(e)))));this._player=this.disposeVar(new Dh(e)),this._player.autoPlayOnLoad=!0,this._loadGifFramesProcessing.completeFunc=({gifFrames:t})=>this._player.gifFrames=t,this.dispose(this._url.changed.disposableOn(t=>{this._player.gifFrames=void 0,this._loadGifFramesProcessing.restart(new st(`reload gif(${t})`),t)}))}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 kh extends b{constructor(e,t){super();a(this,"_gif",this.disposeVar(new Fh));a(this,"_update");this._complexImage=e,this._imageUri=t,this._gif.url=this._imageUri,this._update=this.disposeVar(cs(()=>this.update())),this._update.start()}get gif(){return this._gif}update(){const{player:e}=this._gif;if(!e.gifFrames)return;const t=this._complexImage,{width:i,height:r}=e.gifCanvas;t.size=[i,r],t.pixelFormat="RGBA",t.copyTexture({source:e.gifCanvas});{const o=()=>{e.autoPlayOnLoad=this._complexImage.autoplay};o(),this.dispose(this._complexImage.autoplayChanged.disposableOn(o))}{const o=()=>{e.loop=this._complexImage.loop};o(),this.dispose(this._complexImage.loopChanged.disposableOn(o))}}}function Mh(n,s){const[e,t,i]=tn(n),r=w(void 0),o=()=>{const l=e()??s;r.value=l&&M.context.getStrFromEnv(l)};return o(),i&&r.d(i.don(o)),r.d(M.context.environmentVariablesChanged.don(o)),r}function Ah(n){const s=/\${(.*?)\}/g;if(!s.test(n))return n;const e=n.replace(s,(t,i)=>{const r=M.context.getEnv(i);return r===void 0?(console.warn(`环境变量(${i})不存在,无法进行转换`),"{env-error}"):r});return Ah(e)}class dp extends b{constructor(e){super();a(this,"_sceneObjRefs",new Map);a(this,"_refs",{});a(this,"_refsChanged",this.dv(new v));const t=(i,r,o)=>{if(o){const l=this.getLastSceneObject(o),h=this._sceneObjRefs.get(o);if(!h)console.warn(`this._sceneObjRefs中不存在ref(${o}), 可能系统存在逻辑问题`);else{const u=h.indexOf(i);u===-1?console.warn(`this._sceneObjRefs中不存在当前对象(id: ${i.id} type: ${i.typeName})!可能系统存在逻辑问题`):(h.splice(u,1),h.length===0&&this._sceneObjRefs.delete(o))}const c=this.getLastSceneObject(o);this._refs[o]=c,this._refsChanged.emit(c,l)}if(r){const l=this.getLastSceneObject(r),h=this._sceneObjRefs.get(r);h?(h.push(i),h.length>0&&console.warn(`同时存在多个ref${r}相同的场景对象!
22
22
  ${h.map(u=>`${u.id} ${u.typeName}
23
23
  `).join(" ")}`)):this._sceneObjRefs.set(r,[i]);const c=this.getLastSceneObject(r);this._refs[r]=c,this._refsChanged.emit(c,l)}};this.d(e.sceneObjCreatedEvent.don(i=>{const r=(o,l)=>t(i,o,l);i.ref&&r(i.ref,void 0),i.refChanged.don(r)})),this.d(e.sceneObjToDestroyEvent.don(i=>{i.ref&&t(i,void 0,i.ref)}))}get sceneObjRefs(){return this._sceneObjRefs}get refs(){return this._refs}get refsChanged(){return this._refsChanged}getLastSceneObject(e){const t=this.getSceneObjects(e);if(t)return t[t.length-1]}getSceneObjects(e){const t=this._sceneObjRefs.get(e);if(!(!t||t.length===0))return t}}class up extends b{constructor(){super();a(this,"_esObjConstructors",new Map);a(this,"_sceneObjs",new Map);a(this,"_sceneObjCreatedEvent",new v);a(this,"_sceneObjToDestroyEvent",new v);a(this,"_refsManager",this.dv(new dp(this)));a(this,"_environmentVariables",globalThis.ESSDK_ENV||{});a(this,"_environmentVariablesChanged",this.dv(new v))}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,t,i){return this._esObjConstructors.has(e)&&console.warn(`register warn: ${e} has registered ! will be override!`),this._esObjConstructors.set(e,t),i&&vt(t,"__sceneObjExtraInfo",i),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,t){if(!t||this._sceneObjs.has(t)){const r=ns();t&&console.warn(`已存在相同id的对象!id自动变更!${t} -> ${r} 请注意:id变更可能导致引用失效!`),t=r}if(!t)throw new Error("id不能为空!");const i=new e(t);return i.id!==t&&(console.warn(`sceneObj.id(${i.id}) !== id(${t}) sceneObjectType: ${i.typeName}`),console.warn("出现这种问题有可能是自定义的场景对象,没有在构造函数中传递id参数!示例如下:"),console.warn("class XXX extends XXX { constructor(id) { super(id); } }")),this._addSceneObject(i),i}createSceneObject(e,t){if(typeof e=="string"){const i=this._getSceneObjConstructor(e);if(!i){console.warn(`Cannot find SceneObjectType: ${e}`);return}return this.createSceneObjectFromClass(i,t)}else return this.createSceneObjectFromClass(e,t)}createSceneObjectFromUrl(e,t){let i;const r=e.toLowerCase();if(r.includes(".gltf")||r.includes(".glb")?i="ESGltfModel":r.includes("tileset.json")?i="ES3DTileset":r.includes("layer.json")||r.includes("ion://1")?i="ESTerrainLayer":r.includes(".jpg")||r.includes(".png")||r.includes(".jpeg")||r.includes(".webp")||r.includes("image/jpg")||r.includes("image/png")||r.includes("image/jpeg")||r.includes("image/webp")?i="ESImageLabel":(r.includes("/tilemapresource.xml")||r.includes("ion://")||r.includes("wms")||r.includes("wmts")||r.includes("{x}")||r.includes("{y}")||r.includes("{z}"))&&(i="ESImageryLayer"),!!i)return this.createSceneObjectFromJson({type:i,id:t,url:e})}createSceneObjectFromJson(e){const t=this.createSceneObject(e.type,e.id);return t&&(t.json=e),t}destroySceneObject(e){return this._deleteSceneObject(e),e.destroy(),e.isDestroyed()}getSceneObjectById(e){return this._sceneObjs.get(e)}getSceneObject(e,t=!1){if(!e&&e!="")return Array.from(this._sceneObjs.values());if(typeof e=="function"){const i=[],r=e.type;for(const o of this._sceneObjs.values())o instanceof e&&(t&&r&&o.typeName!==r||i.push(o));return i}if(e.startsWith("ES")){const i=[];for(const r of this._sceneObjs.values())r.typeName===e&&i.push(r);return i}return this._sceneObjs.get(e)}_getSceneObjConstructor(e){const t=this._esObjConstructors.get(e);if(t)return t}getProps(e){const t=this._getSceneObjConstructor(e);if(!t){console.warn(`cannot get constructor from type: ${e}`);return}return Ne(t,"__sceneObjExtraInfo")}setProps(e,t){const i=this._getSceneObjConstructor(e);if(!i){console.warn(`cannot get constructor from type: ${e}`);return}let r=Ne(i,"__sceneObjExtraInfo");r||(r={},vt(i,"__sceneObjExtraInfo",r)),Object.assign(r,t)}getProp(e,t){const i=this.getProps(e);return i&&i[t]}setProp(e,t,i){this.setProps(e,{[t]:i})}get environmentVariables(){return this._environmentVariables}set environmentVariables(e){for(let[t,i]of Object.entries(e))this.setEnv(t,i)}get environmentVariablesChanged(){return this._environmentVariablesChanged}setEnv(e,t){if(this._environmentVariables[e]!==t){const i=this._environmentVariables[e];this._environmentVariables[e]=t,this._environmentVariablesChanged.emit(e,t,i)}globalThis.ESSDK_ENV={...this._environmentVariables}}getEnv(e){return this._environmentVariables[e]}getStrFromEnv(e){return Ah(e)}createEnvStrReact(e,t){return Mh(e,t)}createEvnStrReact(e,t){return Mh(e,t)}}const H=class H extends b{constructor(e){super();a(this,"_components",this.dv(new Xn));a(this,"_viewerAttached",this.dv(new v));a(this,"_viewerDetached",this.dv(new v));a(this,"_attachedViewers",(()=>{const e=new Set;return this.d(this._viewerAttached.don(t=>{t.actived&&(this.activeViewer=t),t.ad(t.activedChanged.don(i=>{i&&e.has(t)&&(this.activeViewer=t)})),e.add(t)})),this.d(this._viewerDetached.don(t=>{e.delete(t),this.activeViewer==t&&(this.activeViewer=void 0)})),e})());a(this,"_activeViewer",this.dv(w(void 0)));a(this,"_reloadEvent",this.dv(new v));a(this,"_readyEvent",this.dv(new v));a(this,"_createdEvent",this.dv(new v));a(this,"_flushEvent",this.dv(new v));a(this,"_id");a(this,"_updateFuncReact",this.dv(w(void 0)));a(this,"_toDestroyFuncReact",this.dv(w(void 0)));a(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??ns(),this._initName();{const t=()=>{if(this.execOnceFuncStr)try{Function(`"use strict";return (${this.execOnceFuncStr})`)()(this)}catch(i){console.warn(`execOnceFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${i}`)}};t(),this.d(this.execOnceFuncStrChanged.don(t))}{const t=()=>{if(this.updateFuncStr)try{this.updateFunc=Function(`"use strict";return (${this.updateFuncStr})`)()}catch(r){console.warn(`updateFuncStr不能转成函数!或者函数执行时错误!id: ${this.id} ${this.typeName} error: ${r}`)}};t(),this.d(this.updateFuncStrChanged.don(t));let i;this.d(()=>i&&i.destroy()),this.d(this.updateFuncChanged.don(()=>{i&&i.cancel(),this.updateFunc&&(i=i||dn(),i.restart(void 0,r=>{this.updateFunc&&this.updateFunc(this,r)}))}))}{const t=()=>{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}};t(),this.d(this.toDestroyFuncStrChanged.don(t)),this.d(this.toDestroyEvent.don(()=>{this.toDestroyFunc&&this.toDestroyFunc(this)}))}}static getParentClass(){return Object.getPrototypeOf(this)}static register(e,t,i){Kt(t.prototype,t.createDefaultProps);const r=t.createDefaultProps();t.defaults&&(t.defaults={});for(const o of Object.keys(r))t.defaults[o]=r[o]instanceof ge?r[o].value:r[o];return this.innerRegister(e,t,i),e}static get envs(){return H.context.environmentVariables}static get $refs(){return H.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)}get reloadEvent(){return this._reloadEvent}reload(){this._reloadEvent.emit()}get readyEvent(){return this._readyEvent}addToViewer(e){this.attachedViewers.has(e)||e.add(this)}registerAttachedObject(e){const t=new Map;this.d(()=>{t.size>0&&console.warn("viewerPropSceneObjects.size > 0")}),this.d(this._viewerAttached.don(i=>{const r=e(i);r&&t.set(i,r)})),this.d(this._viewerDetached.don(i=>{if(!t.has(i))return;const r=t.get(i);r&&(r.destroy(),t.delete(i))}))}createAttachedObject(e){const t=new Map,i=(()=>{for(let[h,c]of t.entries())c.destroy();t.clear()}),r=h=>{const c=e(h);c&&t.set(h,c)};for(let h of this.attachedViewers)r(h);const o=this._viewerAttached.don(r),l=this._viewerDetached.don(h=>{if(!t.has(h))return;const c=t.get(h);c&&(c.destroy(),t.delete(h))});return()=>{l(),o(),i()}}registerAttachedObjectForContainer(e){this.registerAttachedObject(t=>new pp(t,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 t={id:this.id,type:this.typeName};for(let i of Object.keys(this.defaultProps))if(e){let r,o=this.defaultProps[i];o instanceof ge?r=o.equals(this[i]):r=o===this[i],r||(t[i]=this[i])}else t[i]=this[i];return t}_innerSetJson(e,t,i){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 r=t||[];r.push("id","type");const o=Object.keys(this.defaultProps).filter(l=>!r.includes(l));for(let l of o)if(l in e)this[l]=e[l]===null?void 0:e[l];else if(!(i??!1)){let h=this.defaultProps[l];h instanceof ge&&(h=h.value),this[l]=h}}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 N([this,"typeName"],"类型",void 0,!1,!0),new N([this,"id"],"id",void 0,!1,!0),new N([this,"name"],"名称"),new _o("JSON",()=>this._jsonStr,e=>e&&(this._jsonStr=e))],dataSource:[],location:[],coordinate:[],style:[],more:[new N([this,"ref"],"ref",void 0,!0),new R([this,"extras"],"extras",{},void 0,!0)]}}};a(H,"context",new up),a(H,"innerRegister",H.context.register.bind(H.context)),a(H,"defaults",{}),a(H,"createDefaultProps",()=>({name:"未命名场景对象",ref:void 0,extras:B(void 0),devTags:q(void 0),execOnceFuncStr:void 0,updateFuncStr:void 0,toDestroyFuncStr:void 0})),a(H,"type",H.register("ESSceneObject",H,{chsName:"场景类",tags:["ESObjects","base"],description:""})),a(H,"create",H.context.createSceneObject.bind(H.context)),a(H,"createFromUrl",H.context.createSceneObjectFromUrl.bind(H.context)),a(H,"createFromClass",H.context.createSceneObjectFromClass.bind(H.context)),a(H,"createFromJson",H.context.createSceneObjectFromJson.bind(H.context)),a(H,"destroySceneObject",H.context.destroySceneObject.bind(H.context)),a(H,"getSceneObjById",H.context.getSceneObjectById.bind(H.context)),a(H,"getSceneObj",H.context.getSceneObject.bind(H.context)),a(H,"getEnv",H.context.getEnv.bind(H.context)),a(H,"setEnv",H.context.setEnv.bind(H.context)),a(H,"getStrFromEnv",H.context.getStrFromEnv.bind(H.context)),a(H,"getSceneObjectById",H.context.getSceneObjectById.bind(H.context)),a(H,"getSceneObject",H.context.getSceneObject.bind(H.context));let M=H;class pp extends b{constructor(s,e){super(),this.dv(new le(s.subContainerChanged,()=>{if(s.subContainer)return e(s,s.subContainer)}))}}const Dr=class Dr extends b{constructor(e,t,i){super();a(this,"_id",++Dr._accumId);this._name=e,this._description=t,this._callFunction=i}get id(){return this._id}get name(){return this._name}get description(){return this._description}get callFunction(){return this._callFunction}};a(Dr,"_accumId",-1);let ei=Dr;class mo extends ei{constructor(s,e,t,i,r,o){super(s,e,o??(()=>{})),this._withUndefined=t,this._readonly=i,this._defaultValue=r}get withUndefined(){return this._withUndefined}get readonly(){return this._readonly}get defaultValue(){return this._defaultValue instanceof Function?this._defaultValue():this._defaultValue}}class Te extends mo{constructor(e,t,i,r,o,l,h){var u;const c=e instanceof ge?"未获取到属性名":e[1].toString();super(t??c,l??c,r??!1,o??!1,i,h);a(this,"_propName");a(this,"_typeName");this._reactVar=e,this._propName=c;try{this._typeName=e instanceof ge?"未获取到对象类型":(u=e[0])==null?void 0:u.typeName}catch{this._typeName="未获取到对象类型"}}get reactVar(){return this._reactVar}get propName(){return this._propName}get typeName(){return this._typeName}}class E extends Te{get type(){return"BooleanProperty"}}class N extends Te{get type(){return"StringProperty"}}class f extends Te{get type(){return"NumberProperty"}}class ne extends Te{get type(){return"Number2Property"}}class ue extends Te{get type(){return"Number3Property"}}class Fe extends Te{get type(){return"Number4Property"}}class G extends Fe{get type(){return"ColorProperty"}}class Yn extends f{get type(){return"DashPatternProperty"}}class Ve extends Te{get type(){return"DateProperty"}}class vo extends Te{get type(){return"DatesProperty"}}class k extends ei{constructor(e,t,i){super(e??"",i??"");a(this,"_placement");this._placement=t}get type(){return"DivideProperty"}get placement(){return this._placement}}class A extends Te{constructor(s,e,t,i,r,o,l){super(s,t,i,r,o,l),this._enums=e}get type(){return"EnumProperty"}get enums(){return this._enums}}class Xe extends Te{constructor(s,e,t,i,r,o,l){super(s,e,t,r,o,l),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"EvalStringProperty"}}class _n extends Te{constructor(s,e,t,i,r,o,l){super(s,e,t,r,o,l),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"LongStringProperty"}}class L extends ei{constructor(e,t,i,r){const o=e??"Unnamed Function";super(o,r??o);a(this,"_paramsLength");this._func=t,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(...e){this._func(...e)}get type(){return"MethodProperty"}}class pe extends Te{constructor(s,e,t,i,r,o,l,h){super(s,i,r,o,l,h),this._step=e,this._minMax=t}get type(){return"NumberSliderProperty"}get minMax(){return this._minMax}get step(){return this._step}}class nt extends ue{get type(){return"PositionProperty"}}class ds extends ue{get type(){return"RotationProperty"}}function gp(n,s){const[e,t,i]=tn(n),[r,o,l]=tn(s),h=w((e()??0)/(r()??3e3)),c=()=>{const u=h.value,p=r()??3e3,g=e()??0;if(!Number.isFinite(p)||!Number.isFinite(g)){console.warn(`duration || currentTime error: duration: ${p} currentTime: ${g}`);return}Math.abs(u*p-g)<.001||(p<=0?h.value=0:h.value=g/p)};return h.dispose(i.disposableOn(c)),h.dispose(l.disposableOn(c)),h.dispose(h.changed.disposableOn(()=>{const u=h.value,p=r()??3e3,g=e()??0;if(!Number.isFinite(p)||!Number.isFinite(g)){console.warn(`duration || currentTime error: duration: ${p} currentTime: ${g}`);return}Math.abs(u*p-g)<.001||t(u*p)})),h}class us extends ei{constructor(e,t,i,r,o,l){super(r??"播放器",l??"播放器");a(this,"_defaults",{playing:!1,ratio:0,loop:!1});this._playingReact=e,this._ratioReact=t,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}}a(us,"createPlayingRatio",gp);class jh extends ei{constructor(e,t,i,r,o,l){const h=r??"视角播放器";super(h,l??h);a(this,"_defaults",{playing:!1,loop:!1});this._playingReact=e,this._stopFn=t,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 Te{constructor(s,e,t,i,r,o,l){super(s,e,t,r,o,l),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"JsonArrayProperty"}}class R extends Te{constructor(s,e,t,i,r,o,l){super(s,e,t,r,o,l),this._sampleValue=i}get sampleValue(){return this._sampleValue}get type(){return"JsonProperty"}}class _o extends mo{constructor(s,e,t,i,r,o){super(s,o??s,i??!1,r??!1),this._getFunc=e,this._setFunc=t}get getFunc(){return this._getFunc}get setFunc(){return this._setFunc}get type(){return"GetSetProperty"}}var I=(n=>(n.Place="place",n.BrushErase="brushErase",n.Translation="translation",n.Rotation="rotation",n.Scale="scale",n.DoublePointsAppend="doublePointsAppend",n.DoublePointsModify="doublePointsModify",n.CircularAppend="circularAppend",n.CircularInsert="circularInsert",n.LineStringAppend="lineStringAppend",n.LineStringInsert="lineStringInsert",n.ScatterAppend="scatterAppend",n.ScatterModify="scatterModify",n.VisibilityAppend="visibilityAppend",n.VisibilityModify="visibilityModify",n.HeightModify="heightModify",n.SinglePoint="singlePoint",n.DoublePoints="doublePoints",n))(I||{});const yo=[["地形","TERRAIN"],["3D Tiles","CESIUM_3D_TILE"],["地形和3D Tiles","BOTH"]],wo=[["直箭头","straightArrow"],["燕尾箭头","swallowTailArrow"]];var Rh=(n=>(n.DECIMAL_DEGREE="DECIMAL_DEGREE",n.DEGREES_DECIMAL_MINUTES="DEGREES_DECIMAL_MINUTES",n.SEXAGESIMAL_DEGREE="SEXAGESIMAL_DEGREE",n))(Rh||{});class fp{constructor(s){this.childPickedInfo=s}}class mp{constructor(s,e,t,i,r,o){this.pickResult=s,this.sceneObject=e,this.tilesetPickInfo=t,this.geojsonPickInfo=i,this.attachedInfo=r,this.screenPosition=o}assign(s){s!=null&&s.pickedResult&&(this.pickResult=s.pickedResult),s!=null&&s.sceneObject&&(this.sceneObject=s.sceneObject),s!=null&&s.tilesetPickInfo&&(this.tilesetPickInfo=s.tilesetPickInfo),s!=null&&s.geojsonPickInfo&&(this.geojsonPickInfo=s.geojsonPickInfo),s!=null&&s.attachedInfo&&(this.attachedInfo=s.attachedInfo),s!=null&&s.screenPosition&&(this.screenPosition=s.screenPosition)}}const ae=class ae extends M{constructor(e){super(e);a(this,"_editing",this.dv(w(!1)));a(this,"editingID");a(this,"editingBindMode","singlePoint");a(this,"_deprecated",[]);a(this,"_flyInEvent",this.dv(new v));a(this,"_flyToEvent",this.dv(new v));a(this,"_flyOverEvent",this.disposeVar(new v));a(this,"_pickedEvent",this.dv(new v));a(this,"_calcFlyToParamEvent",this.dv(new v));a(this,"_calcFlyInParamEvent",this.dv(new v));a(this,"useCalcFlyToParamInESObjectWithLocation",!1);Uh(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 t=0;t<e.length;t++){const i=e[t];typeof i=="string"?Reflect.has(this,i+"Changed")&&this.d(this[i+"Changed"].don(()=>{console.warn(`注意:${this.typeName} 的 ${i} 属性下版本将会被移除!`)})):Object.keys(i).forEach(r=>{Reflect.has(this,r+"Changed")&&this.d(this[r+"Changed"].don(l=>{const h=i[r];typeof h=="string"?console.warn(`注意:${this.typeName} 的 ${r} 属性下版本将会被移除!`):Object.keys(h).forEach((c=>{l===c&&console.warn(`注意:${this.typeName} 的 ${r} 属性值 ${c} 下版本将会被移除,推荐使用属性值 ${h[c]}`)}))}))})}}get flyInEvent(){return this._flyInEvent}flyIn(e=1){this._flyInEvent.emit(e,ae._lastFlyInId)}get flyToEvent(){return this._flyToEvent}flyTo(e=1){this._flyToEvent.emit(e,ae._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 E([this,"show"],"是否显示",ae.defaults.show),new E([this,"collision"],"开启碰撞",ae.defaults.collision),new E([this,"allowPicking"],"允许拾取",ae.defaults.allowPicking),new L("保存观察视角",()=>this.calcFlyToParam(),[]),new L("清空飞向参数",()=>this.emptyFlyToParam(),[]),new L("保存飞入参数",()=>this.calcFlyInParam(),[]),new L("清空飞入参数",()=>this.emptyFlyInParam(),[])],more:[...e.more,new k("飞行定位"),new L("飞向",t=>this.flyTo(t),[1],"flyTo"),new R([this,"flyToParam"],"飞行参数",void 0,void 0,!0),new f([this,"flyToDistance"],"flyToDistance",void 0,!0),new f([this,"flyToHeading"],"flyToHeading",void 0,!0),new f([this,"flyToPitch"],"flyToPitch",void 0,!0),new f([this,"flyToFlyDuration"],"flyToFlyDuration",void 0,!0),new f([this,"flyToHDelta"],"flyToHDelta",void 0,!0),new f([this,"flyToPDelta"],"flyToPDelta",void 0,!0),new k("飞入参数"),new L("飞入",t=>this.flyIn(t),[1],"flyIn"),new R([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??ae.defaultFlyToParam,distance:e}:void 0}set flyToHeading(e){this.flyToParam=e!==void 0?{...this.flyToParam??ae.defaultFlyToParam,heading:e}:void 0}set flyToPitch(e){this.flyToParam=e!==void 0?{...this.flyToParam??ae.defaultFlyToParam,pitch:e}:void 0}set flyToFlyDuration(e){this.flyToParam=e!==void 0?{...this.flyToParam??ae.defaultFlyToParam,flyDuration:e}:void 0}set flyToHDelta(e){this.flyToParam=e!==void 0?{...this.flyToParam??ae.defaultFlyToParam,hDelta:e}:void 0}set flyToPDelta(e){this.flyToParam=e!==void 0?{...this.flyToParam??ae.defaultFlyToParam,pDelta:e}:void 0}};a(ae,"createDefaultProps",()=>({...M.createDefaultProps(),show:!0,collision:!0,allowPicking:!1,flyToParam:te(void 0),flyInParam:te(void 0)})),a(ae,"type",ae.register("ESVisualObject",ae,{chsName:"可视化对象",tags:["ESObjects","base"],description:"可视化对象"})),a(ae,"supportEditingModes",[]),a(ae,"defaultFlyToParam",{distance:0,heading:0,pitch:0,flyDuration:1,hDelta:0,pDelta:0}),a(ae,"defaultFlyInParam",{position:[0,0,0],rotation:[0,0,0],flyDuration:1}),a(ae,"_lastFlyInId",0),a(ae,"_lastFlyToId",0);let X=ae;class Nh extends b{constructor(){super();a(this,"_data",this.dv(w(void 0)))}set data(e){this._data.value=e}get data(){return this._data.value}get dataChanged(){return this._data.changed}}class Lh extends b{constructor(){super(...arguments);a(this,"_dragStartEvent",this.dv(new v));a(this,"_dragOverEvent",this.dv(new v));a(this,"_dragLeaveEvent",this.dv(new v));a(this,"_dropEvent",this.dv(new v))}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 vp(n,s){s&&(Reflect.has(s,"editing")?s.editing=!0:Reflect.has(s,"positionEditing")&&(s.positionEditing=!0))}function _p(n){["Czm3DTiles","View","ESCameraView","OlView","GeoCameraController"].includes(n.typeName)||(Reflect.has(n,"editing")?n.editing=!0:Reflect.has(n,"positionEditing")&&(n.positionEditing=!0)),typeof n.execOnCreating=="function"&&n.execOnCreating()}function Kn(n,s){Ne(n,"__treeItem")&&console.error("setSceneObjectTreeItem error!"),vt(n,"__treeItem",s)}function yp(n){return Ne(n,"__treeItem")}function wp(n){if(!(n.startsWith("./")||n.startsWith("../")||n.startsWith("/")))return n;const s=document.createElement("a");s.href=n;const e=s.href;return s.remove(),e}function Eo(n){if(typeof n!="string")return!1;try{const s=JSON.parse(n);return typeof s=="object"&&s!==null}catch{return!1}}function Ep(n){try{return new DOMParser().parseFromString(n,"application/xml").getElementsByTagName("parsererror").length===0}catch{return!1}}function bp(n){return n instanceof Function?n():n}function Vh(n,s){for(let e of n)if(s.includes(e))return!0;return!1}function yn(n,s){const e=n,t=s;return e===void 0||e.length===0||t===void 0||t.length===0?!0:Vh(e,t)}function Sp(n){const s=setTimeout(()=>{n(),clearTimeout(s)})}function ps(n){let s=n%360;return s=s<0?360+s:s,s}function zh(n){return ps(n+180)-180}function Zn(n,s,e){let t=ps(n),i=ps(s);Math.abs(t-i)>180&&(t<i?t+=360:i+=360);const r=t*(1-e)+i*e;return zh(r)}function bo(n,s,e,t){return t=t||[0,0,0],t[0]=Zn(n[0],s[0],e),t[1]=Zn(n[1],s[1],e),t[2]=Zn(n[2],s[2],e),t}function Uh(n,s,e="editing"){const t=new b;n.ad(t);const i=s.bind(n);return t.ad(new le(n.activeViewerChanged,()=>{const r=new b;let o=n.activeViewer;return o?(r.ad(n[`${e}Changed`].don(()=>{var l;n[`${e}`]?i():(l=(n.components.main??n).editingID)!=null&&l.includes("inner")&&n.activeViewer&&n.activeViewer.stopEditing()})),r.ad(o.editingEvent.don(l=>{if(l.objectIDs.includes(n.id)&&l.type==="end"){const h=n.components.main??n;h.editingID&&(l.editingID.includes(h.editingID)?(h.editingID=void 0,n[e]=!1):n[e]=!h.editingID.includes("outer"))}}))):r.ad(n[`${e}Changed`].don(()=>{n[`${e}`]=!1})),r})),n[`${e}`]&&i(),t}function Bh(n){var e;const s=Array.isArray(n)?"feature":((e=n.type)==null?void 0:e.toLowerCase())??"";switch(s){case"geometrycollection":return Cp(n);case"topology":const t=n.objects,i=[];for(const r in t){const o=Pd.feature(n,t[r]);i.push(...o.features)}return{type:"FeatureCollection",features:i};case"feature":return{type:"FeatureCollection",features:Array.isArray(n)?n:[n]};case"featurecollection":return n;default:return console.warn(`GeoJson数据转换可能有误,数据类型${s}`),{type:"FeatureCollection",features:Array.isArray(n.features)?n.features:[]}}}function Cp(n,s){const e=[],t=n.geometries||[];function i(r,o={}){!r||!r.type||(r.type==="GeometryCollection"&&Array.isArray(r.geometries)?r.geometries.forEach(l=>i(l,o)):e.push({type:"Feature",geometry:r,properties:{...r.properties||{},...o}}))}return t.forEach(r=>i(r,{})),{type:"FeatureCollection",features:e}}function Pp(n){const s=n.cloneNode(!0);s.style.position="fixed",s.style.visibility="hidden",s.style.pointerEvents="none",s.style.top="0",s.style.left="0",s.style.display="inline-block",document.body.appendChild(s);const e=s.getBoundingClientRect();return document.body.removeChild(s),{x:e.x,y:e.y,width:e.width,height:e.height}}function Tp(n,s,e=!1){var p,g,m,y,S,C;const t=[],i=[],r=[],o=[],l=[],h=new Set,c=new Map;if(s!=null&&s.features)for(const T of s.features){const V=((p=T.id)==null?void 0:p.toString())||((m=(g=T.properties)==null?void 0:g.id)==null?void 0:m.toString());V&&(h.add(V),c.set(V,T))}if(n!=null&&n.features)for(const T of n.features){const V=((y=T.id)==null?void 0:y.toString())||((C=(S=T.properties)==null?void 0:S.id)==null?void 0:C.toString());if(V)if(h.has(V)){if(e){const z=c.get(V);z&&Wh(z,T)?o.push(V):l.push(V)}t.push(V)}else i.push(V)}for(const T of h)t.includes(T)||r.push(T);const u={unchangedIds:t,newIds:i,removedIds:r};return e&&(u.contentUnchangedIds=o,u.contentUpdatedIds=l),u}function Wh(n,s){return Hh(n.geometry,s.geometry)?JSON.stringify(n.properties)===JSON.stringify(s.properties):!1}function Hh(n,s){if(n===s)return!0;if(!n||!s||n.type!==s.type)return!1;const e=n.coordinates,t=s.coordinates;if(n.type==="Point")return Ip(e,t);if(n.type==="LineString"||n.type==="MultiPoint")return Qn(e,t);if(n.type==="Polygon"){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!Qn(e[i],t[i]))return!1;return!0}if(n.type==="MultiLineString"){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!Qn(e[i],t[i]))return!1;return!0}if(n.type==="MultiPolygon"){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++){const r=e[i],o=t[i];if(r.length!==o.length)return!1;for(let l=0;l<r.length;l++)if(!Qn(r[l],o[l]))return!1}return!0}return JSON.stringify(n)===JSON.stringify(s)}function Ip(n,s){if(!n||!s)return n===s;if(n.length!==s.length)return!1;for(let e=0;e<n.length;e++)if(Math.abs(n[e]-s[e])>1e-10)return!1;return!0}function Qn(n,s){if(n===s)return!0;if(!n||!s||n.length!==s.length)return!1;for(let e=0;e<n.length;e++){const t=n[e],i=s[e];if(t.length!==i.length)return!1;for(let r=0;r<t.length;r++)if(Math.abs(t[r]-i[r])>1e-10)return!1}return!0}class So extends b{constructor(e){super();a(this,"_sceneObject",this.dv(w(void 0)));this._id=e,this.d(()=>{this._sceneObject.value=void 0});const t=M.getSceneObjById(this._id);t&&(this._sceneObject.value=t),this.d(M.context.sceneObjCreatedEvent.don(i=>{i.id===this._id&&(this._sceneObject.value=i)})),this.d(M.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 xp extends b{constructor(e,t){super();a(this,"_sofi");this._id=e,this._sofi=this.dv(new So(this._id));{const i=()=>{t.sceneObject=this._sofi.sceneObject};i(),this.d(this._sofi.sceneObjectChanged.don(i))}}}class $h extends b{constructor(){super();a(this,"_id",this.dv(w(void 0)));a(this,"_sceneObject",this.dv(w(void 0)));a(this,"_resetting",this.dv(new le(this.idChanged,()=>{const{id:e}=this;if(e===void 0||e===""){this.sceneObject=void 0;return}return new xp(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 Op extends b{constructor(e,t,i,r){super();a(this,"_sceneObjectId",this.dv(new $h));this._id=e,this._startTimeStamp=t,this._duration=i,this._parent=r,this._sceneObjectId.id=this._id;const o=()=>{if(!this.player)return;const{currentTime:l=0}=this._parent,h=l-this._startTimeStamp;this.player.currentTime=Hn(h,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 Ye?this._sceneObjectId.sceneObject:void 0}get playerChanged(){return this._sceneObjectId.sceneObjectChanged}}const Dp=`
24
24
  用来配置子播放器,它是一个数组形式,数组的每个元素仍然是一个数组,形式是[子播放器的ID, 起始时间, 持续时间]。