UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

5 lines 113 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{d as t}from"./tslib.es6.js";class e{constructor(t){Object.defineProperty(this,"_value",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._value=t}get value(){return this._value/100}get percent(){return this._value}toString(){return this._value+"%"}interpolate(t,e){return t+this.value*(e-t)}static normalize(t,i,s){return t instanceof e?t:new e(i===s?0:100*Math.min(Math.max(1/(s-i)*(t-i),0),1))}}function i(t){return new e(t)}const s=i(0),r=i(100),a=i(50);function n(t){return t instanceof e}function o(t){return Number(t)!==t}function h(t){return{}.toString.call(t)}function l(t){if(null!=t&&!_(t)){let e=Number(t);return o(e)&&g(t)&&""!=t?l(t.replace(/[^0-9.\-]+/g,"")):e}return t}function d(t){if(c(t))return new Date(t);if(_(t))return new Date(t);{let e=Number(t);return _(e)?new Date(e):new Date(t)}}function u(t){if(o(t))return"NaN";if(t===1/0)return"Infinity";if(t===-1/0)return"-Infinity";if(0===t&&1/t==-1/0)return"-0";let e=t<0;t=Math.abs(t);let i,s=/^([0-9]+)(?:\.([0-9]+))?(?:e[\+\-]([0-9]+))?$/.exec(""+t),r=s[1],a=s[2]||"";if(void 0===s[3])i=""===a?r:r+"."+a;else{let e=+s[3];if(t<1){i="0."+p("0",e-1)+r+a}else{let t=e-a.length;i=0===t?r+a:t<0?r+a.slice(0,t)+"."+a.slice(t):r+a+p("0",t)}}return e?"-"+i:i}function p(t,e){return new Array(e+1).join(t)}function c(t){return"[object Date]"===h(t)}function g(t){return"string"==typeof t}function _(t){return"number"==typeof t&&Number(t)==t}function m(t){return"object"==typeof t&&null!==t}const f="__§§§__",b="__§§§§__";function v(t,e){const i=t.length;for(let s=0;s<i;++s)if(t[s]===e)return s;return-1}function y(t,e){const i=t.length;for(let s=0;s<i;++s)if(e(t[s]))return!0;return!1}function w(t,e){const i=t.length,s=new Array(i);for(let r=0;r<i;++r)s[r]=e(t[r],r);return s}function P(t,e){const i=t.length;for(let s=0;s<i;++s)e(t[s],s)}function D(t,e){let i=t.length;for(;i>0;)--i,e(t[i],i)}function x(t,e){const i=t.length;for(let s=0;s<i&&e(t[s],s);++s);}function k(t,e){let i=!1,s=0;for(;;){if(s=t.indexOf(e,s),-1===s)return i;i=!0,t.splice(s,1)}}function O(t,e){let i=t.indexOf(e);return-1!==i&&(t.splice(i,1),!0)}function T(t,e,i){let s=v(t,e);-1!==s&&C(t,s),t.push(e)}function S(t,e){-1===t.indexOf(e)&&t.push(e)}function j(t){const e=t.length,i=new Array(e);for(let s=0;s<e;++s)i[s]=t[s];return i}function E(t,e,i){t.splice(e,0,i)}function C(t,e){t.splice(e,1)}function M(t,e){const i=t.length;for(let s=0;s<i;++s)if(e(t[s],s))return s;return-1}function B(t,e){let i=t.length;for(;i>0;)if(--i,e(t[i],i))return i;return-1}function A(t,e){const i=M(t,e);if(-1!==i)return t[i]}function H(t,e){const i=B(t,e);if(-1!==i)return t[i]}function I(t,e){let i=0,s=t.length,r=!1;for(;i<s;){const a=i+s>>1,n=e(t[a]);n<0?i=a+1:0===n?(r=!0,i=a+1):s=a}return{found:r,index:r?i-1:i}}function L(t,e){let i=0,s=t.length,r=!1;for(;i<s;){const a=i+s>>1,n=e(t[a]);n<0?i=a+1:0===n?(r=!0,s=a):s=a}return{found:r,index:i}}function N(t,e){let i=t.length;for(;i>0;)--i,e(t[i])||t.splice(i,1)}function R(t){return Object.keys(t)}function F(t,e){return R(t).sort(e)}function W(t){return Object.assign({},t)}function U(t,e){R(t).forEach((i=>{e(i,t[i])}))}function V(t,e){for(let i in t)if(K(t,i)&&!e(i,t[i]))break}function K(t,e){return{}.hasOwnProperty.call(t,e)}class G{constructor(){Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._disposed=!1}isDisposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._dispose())}}class z{constructor(t){Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dispose",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._disposed=!1,this._dispose=t}isDisposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._dispose())}}class Y extends G{constructor(){super(...arguments),Object.defineProperty(this,"_disposers",{enumerable:!0,configurable:!0,writable:!0,value:[]})}_dispose(){P(this._disposers,(t=>{t.dispose()}))}}class X extends G{constructor(t){super(),Object.defineProperty(this,"_disposers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._disposers=t}_dispose(){P(this._disposers,(t=>{t.dispose()}))}get disposers(){return this._disposers}}class $ extends z{constructor(){super(...arguments),Object.defineProperty(this,"_counter",{enumerable:!0,configurable:!0,writable:!0,value:0})}increment(){return++this._counter,new z((()=>{--this._counter,0===this._counter&&this.dispose()}))}}function Z(t){t.parentNode&&t.parentNode.removeChild(t)}function J(t,e,i,s){return t.addEventListener(e,i,s||!1),new z((()=>{t.removeEventListener(e,i,s||!1)}))}function q(t){return J(window,"resize",(e=>{t()}))}function Q(t){switch(t){case"touchevents":return window.hasOwnProperty("TouchEvent");case"pointerevents":return window.hasOwnProperty("PointerEvent");case"mouseevents":return window.hasOwnProperty("MouseEvent");case"wheelevents":return window.hasOwnProperty("WheelEvent");case"keyboardevents":return window.hasOwnProperty("KeyboardEvent")}return!1}function tt(t){return t.pointerId||0}function et(){if(document.activeElement&&document.activeElement!=document.body)if(document.activeElement.blur)document.activeElement.blur();else{let t=document.createElement("button");t.style.position="fixed",t.style.top="0px",t.style.left="-10000px",document.body.appendChild(t),t.focus(),t.blur(),document.body.removeChild(t)}}function it(t){t&&t.focus()}function st(t){if(Q("pointerevents"))return t;if(Q("touchevents"))switch(t){case"pointerover":case"pointerdown":return"touchstart";case"pointerout":case"pointerleave":case"pointerup":return"touchend";case"pointermove":return"touchmove";case"click":return"click";case"dblclick":return"dblclick"}else if(Q("mouseevents"))switch(t){case"pointerover":return"mouseover";case"pointerout":return"mouseout";case"pointerleave":return"mouseleave";case"pointerdown":return"mousedown";case"pointermove":return"mousemove";case"pointerup":return"mouseup";case"click":return"click";case"dblclick":return"dblclick"}return t}function rt(t){if("undefined"!=typeof Touch&&t instanceof Touch)return!0;if("undefined"!=typeof PointerEvent&&t instanceof PointerEvent&&null!=t.pointerType)switch(t.pointerType){case"touch":case"pen":case 2:return!0;case"mouse":case 4:return!1;default:return!(t instanceof MouseEvent)}else if(null!=t.type&&t.type.match(/^mouse/))return!1;return!0}function at(t,e,i){t.style[e]=i}function nt(t,e){return t.style[e]}function ot(t){if(t.composedPath){const e=t.composedPath();return 0===e.length?null:e[0]}return t.target}function ht(t,e){let i=e;for(;;){if(t===i)return!0;if(null===i.parentNode){if(null==i.host)return!1;i=i.host}else i=i.parentNode}}function lt(t,e){return t.target&&ht(e.root.dom,t.target)}function dt(t,e){t.style.pointerEvents=e?"auto":"none"}function ut(t){if(void 0!==t.key)return t.key;switch(t.keyCode){case 9:return"Tab";case 13:return"Enter";case 16:return"Shift";case 17:return"Control";case 27:return"Escape";case 32:return" ";case 37:return"ArrowLeft";case 38:return"ArrowUp";case 39:return"ArrowRight";case 40:return"ArrowDown";case 46:return"Delete"}return""+t.keyCode}function pt(){return/apple/i.test(navigator.vendor)&&"ontouchend"in document}function ct(){return pt()?1:void 0}function gt(t,e){return _(t)?t:null!=t&&_(t.value)&&_(e)?e*t.value:0}function _t(t){let e=(""+t).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return e?Math.max(0,(e[1]?e[1].length:0)-(e[2]?+e[2]:0)):0}function mt(t,e=0,i="0"){return"string"!=typeof t&&(t=t.toString()),e>t.length?Array(e-t.length+1).join(i)+t:t}function ft(t){return t.replace(/^[\s]*/,"")}function bt(t){return t.replace(/[\s]*$/,"")}function vt(t){return ft(bt(t))}function yt(t,e,i=!1,s="..."){if(t.length>e){let r=e-1;for(;r>=0&&t.charAt(r).match(/\w/);)r--;return r>=0&&0==i?t.substring(0,r+1)+"...":t.substring(0,e)+s}return t}function wt(t){return t.replace(/\/(date|number|duration)$/i,"")}function Pt(t){return t?t.replace(/<[^>]*>/g,""):t}function Dt(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function xt(t){const e=/[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]/,i=/([^اأدذرزو]*[اأدذرزو])/gi;let s=t.split(/(\s+)/),r=[];return s.forEach((t=>{if(t.match(/^\s+$/))(t=" ")&&(t=" "),r.push(t);else if(e.test(t)){let e=t.split(i).filter((t=>""!==t));r=r.concat(e)}else r=r.concat([...t])})),r}function kt(t,e=!1){const i=new Date(t.getFullYear(),0,0),s=t.getTime()-i.getTime()+60*(i.getTimezoneOffset()-t.getTimezoneOffset())*1e3,r=864e5;return Math.floor(s/r)}function Ot(t,e=!1){const i=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),s=i.getUTCDay()||7;i.setUTCDate(i.getUTCDate()+4-s);const r=new Date(Date.UTC(i.getUTCFullYear(),0,1));return Math.ceil(((i.getTime()-r.getTime())/864e5+1)/7)}function Tt(t,e=!1){const i=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),s=i.getUTCDay()||7;i.setUTCDate(i.getUTCDate()+4-s);return new Date(Date.UTC(i.getUTCFullYear(),0,1)).getFullYear()}function St(t,e=!1){const i=Ot(new Date(t.getFullYear(),t.getMonth(),1),e);let s=Ot(t,e);return 1==s&&(s=53),s-i+1}function jt(t,e,i=1,s=!1){let r=new Date(e,0,4,0,0,0,0);return s&&r.setUTCFullYear(e),7*t+i-((r.getDay()||7)+3)}function Et(t,e){return t>12?t-=12:0===t&&(t=12),null!=e?t+(e-1):t}function Ct(t,e=!1,i=!1,s=!1,r){if(s)return e?"Coordinated Universal Time":"UTC";if(r){const i=t.toLocaleString("en-US",{timeZone:r});return vt(t.toLocaleString("en-US",{timeZone:r,timeZoneName:e?"long":"short"}).substr(i.length))}let a=t.toLocaleString("UTC"),n=t.toLocaleString("UTC",{timeZoneName:e?"long":"short"}).substr(a.length);return!1===i&&(n=n.replace(/ (standard|daylight|summer|winter) /i," ")),vt(n)}function Mt(t,e){const i=e||new Date(Date.UTC(2012,0,1,0,0,0,0)),s=new Date(i.toLocaleString("en-US",{timeZone:"UTC"}));return(new Date(i.toLocaleString("en-US",{timeZone:t})).getTime()-s.getTime())/6e4*-1}function Bt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function At(t){let e,i,s,r=t.h,a=t.s,n=t.l;if(0==a)e=i=s=n;else{let t=function(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t},o=n<.5?n*(1+a):n+a-n*a,h=2*n-o;e=t(h,o,r+1/3),i=t(h,o,r),s=t(h,o,r-1/3)}return{r:Math.round(255*e),g:Math.round(255*i),b:Math.round(255*s)}}function Ht(t){let e=t.r/255,i=t.g/255,s=t.b/255,r=Math.max(e,i,s),a=Math.min(e,i,s),n=0,o=0,h=(r+a)/2;if(r===a)n=o=0;else{let t=r-a;switch(o=h>.5?t/(2-r-a):t/(r+a),r){case e:n=(i-s)/t+(i<s?6:0);break;case i:n=(s-e)/t+2;break;case s:n=(e-i)/t+4}n/=6}return{h:n,s:o,l:h}}function It(t,e){return{r:Math.max(0,Math.min(255,t.r+Lt(t.r,e))),g:Math.max(0,Math.min(255,t.g+Lt(t.g,e))),b:Math.max(0,Math.min(255,t.b+Lt(t.b,e))),a:t.a}}function Lt(t,e){let i=e>0?255-t:t;return Math.round(i*e)}function Nt(t,e){{let i=Lt(Math.min(Math.max(t.r,t.g,t.b),230),e);return{r:Math.max(0,Math.min(255,Math.round(t.r+i))),g:Math.max(0,Math.min(255,Math.round(t.g+i))),b:Math.max(0,Math.min(255,Math.round(t.b+i))),a:t.a}}}function Rt(t){return(299*t.r+587*t.g+114*t.b)/1e3>=128}function Ft(t,e){if(void 0===t||1==e)return t;let i=Ht(t);return i.s=e,At(i)}function Wt(t,e={r:255,g:255,b:255},i={r:255,g:255,b:255}){let s=e,r=i;return Rt(i)&&(s=i,r=e),Rt(t)?r:s}function Ut(t,e){return t||(t=[]),[...t,...e].filter(((t,e,i)=>i.indexOf(t)===e))}function Vt(t,e){return!!e&&(t.left==e.left&&(t.right==e.right&&(t.top==e.top&&t.bottom==e.bottom)))}function Kt(t){return"#"===t[0]&&(t=t.substr(1)),3==t.length&&(t=t[0].repeat(2)+t[1].repeat(2)+t[2].repeat(2)),parseInt(t,16)}function Gt(t){let e=(t=t.replace(/[ ]/g,"")).match(/^rgb\(([0-9]*),([0-9]*),([0-9]*)\)/i);if(e)e.push("1");else if(e=t.match(/^rgba\(([0-9]*),([0-9]*),([0-9]*),([.0-9]*)\)/i),!e)return 0;let i="";for(let s=1;s<=3;s++){let t=parseInt(e[s]).toString(16);1==t.length&&(t="0"+t),i+=t}return Kt(i)}function zt(t){return Yt.fromAny(t)}class Yt{constructor(t){Object.defineProperty(this,"_hex",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._hex=0|t}get hex(){return this._hex}get r(){return this._hex>>>16}get g(){return this._hex>>8&255}get b(){return 255&this._hex}toCSS(t=1){return"rgba("+this.r+", "+this.g+", "+this.b+", "+t+")"}toCSSHex(){return"#"+mt(this.r.toString(16),2)+mt(this.g.toString(16),2)+mt(this.b.toString(16),2)}toHSL(t=1){return Ht({r:this.r,g:this.g,b:this.b,a:t})}static fromHSL(t,e,i){const s=At({h:t,s:e,l:i});return this.fromRGB(s.r,s.g,s.b)}toString(){return this.toCSSHex()}static fromHex(t){return new Yt(t)}static fromRGB(t,e,i){return new Yt((0|i)+(e<<8)+(t<<16))}static fromString(t){return new Yt(Kt(t))}static fromCSS(t){return new Yt(Gt(t))}static fromAny(t){if(g(t)){if("#"==t[0])return Yt.fromString(t);if("rgb"==t.substr(0,3))return Yt.fromCSS(t)}else{if(_(t))return Yt.fromHex(t);if(t instanceof Yt)return Yt.fromHex(t.hex)}throw new Error("Unknown color syntax: "+t)}static alternative(t,e,i){const s=Wt({r:t.r,g:t.g,b:t.b},e?{r:e.r,g:e.g,b:e.b}:void 0,i?{r:i.r,g:i.g,b:i.b}:void 0);return this.fromRGB(s.r,s.g,s.b)}static interpolate(t,e,i,s="rgb"){if("hsl"==s){const s=e.toHSL(),r=i.toHSL();return Yt.fromHSL(Zt(t,s.h,r.h),Zt(t,s.s,r.s),Zt(t,s.l,r.l))}return Yt.fromRGB(Zt(t,e.r,i.r),Zt(t,e.g,i.g),Zt(t,e.b,i.b))}static lighten(t,e){const i=It({r:t.r,g:t.g,b:t.b},e);return Yt.fromRGB(i.r,i.g,i.b)}static brighten(t,e){const i=Nt({r:t.r,g:t.g,b:t.b},e);return Yt.fromRGB(i.r,i.g,i.b)}static saturate(t,e){const i=Ft({r:t.r,g:t.g,b:t.b},e);return Yt.fromRGB(i.r,i.g,i.b)}}class Xt{constructor(){Object.defineProperty(this,"_listeners",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_killed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_disabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_iterating",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_enabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._listeners=[],this._killed=[],this._disabled={},this._iterating=0,this._enabled=!0,this._disposed=!1}isDisposed(){return this._disposed}dispose(){if(!this._disposed){this._disposed=!0;const t=this._listeners;this._iterating=1,this._listeners=null,this._disabled=null;try{P(t,(t=>{t.disposer.dispose()}))}finally{this._killed=null,this._iterating=null}}}hasListeners(){return 0!==this._listeners.length}hasListenersByType(t){return y(this._listeners,(e=>(null===e.type||e.type===t)&&!e.killed))}enable(){this._enabled=!0}disable(){this._enabled=!1}enableType(t){delete this._disabled[t]}disableType(t,e=1/0){this._disabled[t]=e}_removeListener(t){if(0===this._iterating){const e=this._listeners.indexOf(t);if(-1===e)throw new Error("Invalid state: could not remove listener");this._listeners.splice(e,1)}else this._killed.push(t)}_removeExistingListener(t,e,i,s){if(this._disposed)throw new Error("EventDispatcher is disposed");this._eachListener((r=>{r.once!==t||r.type!==e||void 0!==i&&r.callback!==i||r.context!==s||r.disposer.dispose()}))}isEnabled(t){if(this._disposed)throw new Error("EventDispatcher is disposed");return this._enabled&&this._listeners.length>0&&this.hasListenersByType(t)&&void 0===this._disabled[t]}removeType(t){if(this._disposed)throw new Error("EventDispatcher is disposed");this._eachListener((e=>{e.type===t&&e.disposer.dispose()}))}has(t,e,i){return-1!==M(this._listeners,(s=>!0!==s.once&&s.type===t&&(void 0===e||s.callback===e)&&s.context===i))}_shouldDispatch(t){if(this._disposed)throw new Error("EventDispatcher is disposed");const e=this._disabled[t];return _(e)?(e<=1?delete this._disabled[t]:--this._disabled[t],!1):this._enabled}_eachListener(t){++this._iterating;try{P(this._listeners,t)}finally{--this._iterating,0===this._iterating&&0!==this._killed.length&&(P(this._killed,(t=>{this._removeListener(t)})),this._killed.length=0)}}dispatch(t,e){this._shouldDispatch(t)&&this._eachListener((i=>{i.killed||null!==i.type&&i.type!==t||i.dispatch(t,e)}))}_on(t,e,i,s,r,a){if(this._disposed)throw new Error("EventDispatcher is disposed");this._removeExistingListener(t,e,i,s);const n={type:e,callback:i,context:s,shouldClone:r,dispatch:a,killed:!1,once:t,disposer:new z((()=>{n.killed=!0,this._removeListener(n)}))};return this._listeners.push(n),n}onAll(t,e,i=!0){return this._on(!1,null,t,e,i,((i,s)=>t.call(e,s))).disposer}on(t,e,i,s=!0){return this._on(!1,t,e,i,s,((t,s)=>e.call(i,s))).disposer}once(t,e,i,s=!0){const r=this._on(!0,t,e,i,s,((t,s)=>{r.disposer.dispose(),e.call(i,s)}));return r.disposer}off(t,e,i){this._removeExistingListener(!1,t,e,i)}copyFrom(t){if(this._disposed)throw new Error("EventDispatcher is disposed");if(t===this)throw new Error("Cannot copyFrom the same TargetedEventDispatcher");const e=[];return P(t._listeners,(t=>{!t.killed&&t.shouldClone&&(null===t.type?e.push(this.onAll(t.callback,t.context)):t.once?e.push(this.once(t.type,t.callback,t.context)):e.push(this.on(t.type,t.callback,t.context)))})),new X(e)}}function $t(e){return t(this,void 0,void 0,(function*(){if(void 0!==e){const t=[];U(e,((e,i)=>{t.push(i.waitForStop())})),yield Promise.all(t)}}))}function Zt(t,e,i){return e+t*(i-e)}function Jt(t,e,i){return t>=1?i:e}function qt(t,i,s){return new e(Zt(t,i.percent,s.percent))}function Qt(t,e,i){return Yt.interpolate(t,e,i)}function te(t,i){return"number"==typeof t&&"number"==typeof i?Zt:t instanceof e&&i instanceof e?qt:t instanceof Yt&&i instanceof Yt?Qt:Jt}var ee;function ie(t,e){if(!(t>=0&&t<e))throw new Error("Index out of bounds: "+t)}!function(t){t[t.Stopped=0]="Stopped",t[t.Playing=1]="Playing",t[t.Paused=2]="Paused"}(ee||(ee={}));class se{constructor(t=[]){Object.defineProperty(this,"_values",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:new Xt}),this._values=t}get values(){return this._values}contains(t){return-1!==this._values.indexOf(t)}removeValue(t){let e=0,i=this._values.length;for(;e<i;)this._values[e]===t?(this.removeIndex(e),--i):++e}indexOf(t){return v(this._values,t)}get length(){return this._values.length}hasIndex(t){return t>=0&&t<this._values.length}getIndex(t){return this._values[t]}_onPush(t){this.events.isEnabled("push")&&this.events.dispatch("push",{type:"push",target:this,newValue:t})}_onInsertIndex(t,e){this.events.isEnabled("insertIndex")&&this.events.dispatch("insertIndex",{type:"insertIndex",target:this,index:t,newValue:e})}_onSetIndex(t,e,i){this.events.isEnabled("setIndex")&&this.events.dispatch("setIndex",{type:"setIndex",target:this,index:t,oldValue:e,newValue:i})}_onRemoveIndex(t,e){this.events.isEnabled("removeIndex")&&this.events.dispatch("removeIndex",{type:"removeIndex",target:this,index:t,oldValue:e})}_onMoveIndex(t,e,i){this.events.isEnabled("moveIndex")&&this.events.dispatch("moveIndex",{type:"moveIndex",target:this,oldIndex:t,newIndex:e,value:i})}_onClear(t){this.events.isEnabled("clear")&&this.events.dispatch("clear",{type:"clear",target:this,oldValues:t})}setIndex(t,e){ie(t,this._values.length);const i=this._values[t];return i!==e&&(this._values[t]=e,this._onSetIndex(t,i,e)),i}insertIndex(t,e){return ie(t,this._values.length+1),E(this._values,t,e),this._onInsertIndex(t,e),e}swap(t,e){const i=this._values.length;if(ie(t,i),ie(e,i),t!==e){const i=this._values[t],s=this._values[e];this._values[t]=s,this._onSetIndex(t,i,s),this._values[e]=i,this._onSetIndex(e,s,i)}}removeIndex(t){ie(t,this._values.length);const e=this._values[t];return C(this._values,t),this._onRemoveIndex(t,e),e}moveValue(t,e){let i=this.indexOf(t);if(-1!==i)if(C(this._values,i),null==e){const e=this._values.length;this._values.push(t),this._onMoveIndex(i,e,t)}else E(this._values,e,t),this._onMoveIndex(i,e,t);else null==e?(this._values.push(t),this._onPush(t)):(E(this._values,e,t),this._onInsertIndex(e,t));return t}push(t){return this._values.push(t),this._onPush(t),t}unshift(t){return this.insertIndex(0,t),t}pushAll(t){P(t,(t=>{this.push(t)}))}copyFrom(t){this.pushAll(t._values)}pop(){return this._values.length-1<0?void 0:this.removeIndex(this._values.length-1)}shift(){return this._values.length?this.removeIndex(0):void 0}setAll(t){const e=this._values;this._values=[],this._onClear(e),P(t,(t=>{this._values.push(t),this._onPush(t)}))}clear(){this.setAll([])}*[Symbol.iterator](){const t=this._values.length;for(let e=0;e<t;++e)yield this._values[e]}each(t){P(this._values,t)}eachReverse(t){D(this._values,t)}}class re extends se{constructor(){super(...arguments),Object.defineProperty(this,"autoDispose",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:!1})}_onSetIndex(t,e,i){this.autoDispose&&e.dispose(),super._onSetIndex(t,e,i)}_onRemoveIndex(t,e){this.autoDispose&&e.dispose(),super._onRemoveIndex(t,e)}_onClear(t){this.autoDispose&&P(t,(t=>{t.dispose()})),super._onClear(t)}_dispose(){this.autoDispose&&P(this._values,(t=>{t.dispose()}))}isDisposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._dispose())}}class ae extends re{constructor(t,e){super(),Object.defineProperty(this,"template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"make",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.template=t,this.make=e}_dispose(){super._dispose(),this.autoDispose&&this.template.dispose()}}class ne extends se{constructor(t){super(),Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._container=t,this._events=this.events.onAll((t=>{if("clear"===t.type)P(t.oldValues,(t=>{this._onRemoved(t)}));else if("push"===t.type)this._onInserted(t.newValue);else if("setIndex"===t.type)this._onRemoved(t.oldValue),this._onInserted(t.newValue,t.index);else if("insertIndex"===t.type)this._onInserted(t.newValue,t.index);else if("removeIndex"===t.type)this._onRemoved(t.oldValue);else{if("moveIndex"!==t.type)throw new Error("Unknown IListEvent type");this._onRemoved(t.value),this._onInserted(t.value,t.newIndex)}}))}_onInserted(t,e){t._setParent(this._container,!0);const i=this._container._childrenDisplay;void 0===e?i.addChild(t._display):i.addChildAt(t._display,e)}_onRemoved(t){this._container._childrenDisplay.removeChild(t._display),this._container.markDirtyBounds(),this._container.markDirty()}isDisposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._events.dispose(),P(this.values,(t=>{t.dispose()})))}}const oe=Math.PI,he=oe/180,le=180/oe;function de(t,e,i){if(!_(e)||e<=0){return Math.round(t)}{let i=Math.pow(10,e);return Math.round(t*i)/i}}function ue(t,e){if(!_(e)||e<=0)return Math.ceil(t);{let i=Math.pow(10,e);return Math.ceil(t*i)/i}}function pe(t,e,i){return Math.min(Math.max(t,e),i)}function ce(t){return Math.sin(he*t)}function ge(t){return Math.cos(he*t)}function _e(t){return(t%=360)<0&&(t+=360),t}function me(t,e,i,s,r){let a=Number.MAX_VALUE,n=Number.MAX_VALUE,o=-Number.MAX_VALUE,h=-Number.MAX_VALUE,l=[];l.push(fe(r,i)),l.push(fe(r,s));let d=Math.min(90*Math.floor(i/90),90*Math.floor(s/90)),u=Math.max(90*Math.ceil(i/90),90*Math.ceil(s/90));for(let p=d;p<=u;p+=90)p>=i&&p<=s&&l.push(fe(r,p));for(let p=0;p<l.length;p++){let t=l[p];t.x<a&&(a=t.x),t.y<n&&(n=t.y),t.x>o&&(o=t.x),t.y>h&&(h=t.y)}return{left:t+a,top:e+n,right:t+o,bottom:e+h}}function fe(t,e){return{x:t*ge(e),y:t*ce(e)}}function be(t){const e=t.length;if(e>0){let i=t[0],s=i.left,r=i.top,a=i.right,n=i.bottom;if(e>1)for(let o=1;o<e;o++)i=t[o],s=Math.min(i.left,s),a=Math.max(i.right,a),r=Math.min(i.top,r),n=Math.max(i.bottom,n);return{left:s,right:a,top:r,bottom:n}}return{left:0,right:0,top:0,bottom:0}}function ve(t,e){return t.x>=e.left&&t.y>=e.top&&t.x<=e.right&&t.y<=e.bottom}function ye(t){return t}function we(t){return t*t*t}function Pe(t){return function(e){return 1-t(1-e)}}class De{constructor(t,e){Object.defineProperty(this,"_entity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_settings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_userSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),this._entity=t,this._settings=e,U(e,(t=>{this._userSettings[t]=!0}))}get(t,e){const i=this._settings[t];return void 0!==i?i:e}setRaw(t,e){this._settings[t]=e}set(t,e){this._userSettings[t]=!0,this.setRaw(t,e)}remove(t){delete this._userSettings[t],delete this._settings[t]}setAll(t){R(t).forEach((e=>{this.set(e,t[e])}))}_eachSetting(t){U(this._settings,t)}apply(){const t={stateAnimationEasing:!0,stateAnimationDuration:!0},e=this._entity.states.lookup("default");this._eachSetting(((i,s)=>{t[i]||(t[i]=!0,this!==e&&(i in e._settings||(e._settings[i]=this._entity.get(i))),this._entity.set(i,s))}))}applyAnimate(t){null==t&&(t=this._settings.stateAnimationDuration),null==t&&(t=this.get("stateAnimationDuration",this._entity.get("stateAnimationDuration",0)));let e=this._settings.stateAnimationEasing;null==e&&(e=this.get("stateAnimationEasing",this._entity.get("stateAnimationEasing",we)));const i=this._entity.states.lookup("default"),s={stateAnimationEasing:!0,stateAnimationDuration:!0},r={};return this._eachSetting(((a,n)=>{if(!s[a]){s[a]=!0,this!=i&&(a in i._settings||(i._settings[a]=this._entity.get(a)));const o=this._entity.animate({key:a,to:n,duration:t,easing:e});o&&(r[a]=o)}})),r}}class xe{constructor(t){Object.defineProperty(this,"_states",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_entity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._entity=t}lookup(t){return this._states[t]}create(t,e){const i=this._states[t];if(i)return i.setAll(e),i;{const i=new De(this._entity,e);return this._states[t]=i,i}}remove(t){delete this._states[t]}apply(t){const e=this._states[t];e&&e.apply(),this._entity._applyState(t)}applyAnimate(t,e){let i;const s=this._states[t];return s&&(i=s.applyAnimate(e)),this._entity._applyStateAnimated(t,e),i}}class ke{constructor(){Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:"5.10.12"}),Object.defineProperty(this,"licenses",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"entitiesById",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"rootElements",{enumerable:!0,configurable:!0,writable:!0,value:[]})}}const Oe=new ke;function Te(t){Oe.licenses.push(t)}function Se(t,e){return t===e?0:t<e?-1:1}function je(t,e,i){const s=t.length,r=e.length,a=Math.min(s,r);for(let n=0;n<a;++n){const s=i(t[n],e[n]);if(0!==s)return s}return Se(s,r)}function Ee(t,e){return t===e?0:t<e?-1:1}class Ce{constructor(t){Object.defineProperty(this,"_entity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_callbacks",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_disabled",{enumerable:!0,configurable:!0,writable:!0,value:{}}),this._entity=t}add(t,e){let i=this._callbacks[t];return void 0===i&&(i=this._callbacks[t]=[]),i.push(e),this._entity._markDirtyKey(t),new z((()=>{O(i,e)&&this._entity._markDirtyKey(t)}))}remove(t){const e=this._callbacks[t];void 0!==e&&(delete this._callbacks[t],0!==e.length&&this._entity._markDirtyKey(t))}enable(t){this._disabled[t]&&(delete this._disabled[t],this._entity._markDirtyKey(t))}disable(t){this._disabled[t]||(this._disabled[t]=!0,this._entity._markDirtyKey(t))}fold(t,e){if(!this._disabled[t]){const i=this._callbacks[t];if(void 0!==i)for(let s=0,r=i.length;s<r;++s)e=i[s](e,this._entity,t)}return e}}class Me{constructor(t,e,i,s,r,a,n){Object.defineProperty(this,"_animation",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_from",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_to",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_duration",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_easing",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_loops",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_interpolate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_oldTime",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_time",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_stopped",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_playing",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:new Xt}),this._animation=t,this._from=e,this._to=i,this._duration=s,this._easing=r,this._loops=a,this._interpolate=te(e,i),this._oldTime=n}get to(){return this._to}get from(){return this._from}get playing(){return this._playing}get stopped(){return this._stopped}stop(){this._stopped||(this._stopped=!0,this._playing=!1,this.events.isEnabled("stopped")&&this.events.dispatch("stopped",{type:"stopped",target:this}))}pause(){this._playing=!1,this._oldTime=null}play(){this._stopped||this._playing||(this._playing=!0,this._animation._startAnimation())}get percentage(){return this._time/this._duration}waitForStop(){return new Promise(((t,e)=>{if(this._stopped)t();else{const e=()=>{i.dispose(),t()},i=this.events.on("stopped",e)}}))}_checkEnded(){return!(this._loops>1)||(--this._loops,!1)}_run(t){null!==this._oldTime&&(this._time+=t-this._oldTime,this._time>this._duration&&(this._time=this._duration)),this._oldTime=t}_reset(t){this._oldTime=t,this._time=0}_value(t){return this._interpolate(this._easing(t),this._from,this._to)}}let Be=0;class Ae{constructor(t){Object.defineProperty(this,"uid",{enumerable:!0,configurable:!0,writable:!0,value:++Be}),Object.defineProperty(this,"_settings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_privateSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_settingEvents",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_privateSettingEvents",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_prevSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_prevPrivateSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_animatingSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_animatingPrivateSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_userProperties",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"enableDispose",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this._settings=t}_checkDirty(){R(this._settings).forEach((t=>{this._userProperties[t]=!0,this._markDirtyKey(t)}))}resetUserSettings(){this._userProperties={}}_runAnimation(t){let e=ee.Stopped;if(!this.isDisposed()){let i=!1,s=!1;U(this._animatingSettings,((e,r)=>{if(r.stopped)this._stopAnimation(e);else if(r.playing){r._run(t);const s=r.percentage;s>=1?r._checkEnded()?this.set(e,r._value(1)):(i=!0,r._reset(t),this._set(e,r._value(1))):(i=!0,this._set(e,r._value(s)))}else s=!0})),U(this._animatingPrivateSettings,((e,r)=>{if(r.stopped)this._stopAnimationPrivate(e);else if(r.playing){r._run(t);const s=r.percentage;s>=1?r._checkEnded()?this.setPrivate(e,r._value(1)):(i=!0,r._reset(t),this._setPrivate(e,r._value(1))):(i=!0,this._setPrivate(e,r._value(s)))}else s=!0})),i?e=ee.Playing:s&&(e=ee.Paused)}return e}_markDirtyKey(t){this.markDirty()}_markDirtyPrivateKey(t){this.markDirty()}on(t,e){let i=this._settingEvents[t];return void 0===i&&(i=this._settingEvents[t]=[]),i.push(e),new z((()=>{O(i,e),0===i.length&&delete this._settingEvents[t]}))}off(t,e){let i=this._settingEvents[t];void 0!==i&&void 0!==e?O(i,e):delete this._settingEvents[t]}onPrivate(t,e){let i=this._privateSettingEvents[t];return void 0===i&&(i=this._privateSettingEvents[t]=[]),i.push(e),new z((()=>{O(i,e),0===i.length&&delete this._privateSettingEvents[t]}))}offPrivate(t,e){let i=this._privateSettingEvents[t];void 0!==i&&void 0!==e?O(i,e):delete this._privateSettingEvents[t]}getRaw(t,e){const i=this._settings[t];return void 0!==i?i:e}has(t){return t in this._settings}get(t,e){return this.getRaw(t,e)}_sendKeyEvent(t,e){const i=this._settingEvents[t];void 0!==i&&P(i,(i=>{i(e,this,t)}))}_sendPrivateKeyEvent(t,e){const i=this._privateSettingEvents[t];void 0!==i&&P(i,(i=>{i(e,this,t)}))}_setRaw(t,e,i){this._prevSettings[t]=e,this._sendKeyEvent(t,i)}setRaw(t,e){const i=this._settings[t];this._settings[t]=e,i!==e&&this._setRaw(t,i,e)}_set(t,e){const i=this._settings[t];this._settings[t]=e,i!==e&&(this._setRaw(t,i,e),this._markDirtyKey(t))}_stopAnimation(t){const e=this._animatingSettings[t];e&&(delete this._animatingSettings[t],e.stop())}set(t,e){return this._set(t,e),this._stopAnimation(t),e}remove(t){t in this._settings&&(this._prevSettings[t]=this._settings[t],delete this._settings[t],this._sendKeyEvent(t,void 0),this._markDirtyKey(t)),this._stopAnimation(t)}removeAll(){P(R(this._settings),(t=>{this.remove(t)}))}getPrivate(t,e){const i=this._privateSettings[t];return void 0!==i?i:e}_setPrivateRaw(t,e,i){this._prevPrivateSettings[t]=e,this._sendPrivateKeyEvent(t,i)}setPrivateRaw(t,e){const i=this._privateSettings[t];this._privateSettings[t]=e,i!==e&&this._setPrivateRaw(t,i,e)}_setPrivate(t,e){const i=this._privateSettings[t];this._privateSettings[t]=e,i!==e&&(this._setPrivateRaw(t,i,e),this._markDirtyPrivateKey(t))}_stopAnimationPrivate(t){const e=this._animatingPrivateSettings[t];e&&(e.stop(),delete this._animatingPrivateSettings[t])}setPrivate(t,e){return this._setPrivate(t,e),this._stopAnimationPrivate(t),e}removePrivate(t){t in this._privateSettings&&(this._prevPrivateSettings[t]=this._privateSettings[t],delete this._privateSettings[t],this._markDirtyPrivateKey(t)),this._stopAnimationPrivate(t)}setAll(t){U(t,((t,e)=>{this.set(t,e)}))}animate(t){const e=t.key,i=t.to,s=t.duration||0,r=t.loops||1,a=void 0===t.from?this.get(e):t.from,n=void 0===t.easing?ye:t.easing;if(0===s)this.set(e,i);else{if(void 0!==a&&a!==i){this.set(e,a);const t=this._animatingSettings[e]=new Me(this,a,i,s,n,r,this._animationTime());return this._startAnimation(),t}this.set(e,i)}const o=new Me(this,a,i,s,n,r,null);return o.stop(),o}animatePrivate(t){const e=t.key,i=t.to,s=t.duration||0,r=t.loops||1,a=void 0===t.from?this.getPrivate(e):t.from,n=void 0===t.easing?ye:t.easing;if(0===s)this.setPrivate(e,i);else{if(void 0!==a&&a!==i){this.setPrivate(e,a);const t=this._animatingPrivateSettings[e]=new Me(this,a,i,s,n,r,this._animationTime());return this._startAnimation(),t}this.setPrivate(e,i)}const o=new Me(this,a,i,s,n,r,null);return o.stop(),o}_dispose(){}isDisposed(){return this._disposed}dispose(){this.enableDispose&&!this._disposed&&(this._disposed=!0,this._dispose())}}class He extends Ae{constructor(t,e,i,s=[]){if(super(e),Object.defineProperty(this,"_root",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_user_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"states",{enumerable:!0,configurable:!0,writable:!0,value:new xe(this)}),Object.defineProperty(this,"adapters",{enumerable:!0,configurable:!0,writable:!0,value:new Ce(this)}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:this._createEvents()}),Object.defineProperty(this,"_userPrivateProperties",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_dirty",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_dirtyPrivate",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_templates",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_internalTemplates",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_defaultThemes",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_templateDisposers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_disposers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_runSetup",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"_disposerProperties",{enumerable:!0,configurable:!0,writable:!0,value:{}}),!i)throw new Error("You cannot use `new Class()`, instead use `Class.new()`");this._root=t,this._internalTemplates=s,e.id&&this._registerId(e.id)}static new(t,e,i){const s=new this(t,e,!0);return s._template=i,s._afterNew(),s}static _new(t,e,i=[]){const s=new this(t,e,!0,i);return s._afterNew(),s}_afterNew(){this._checkDirty();let t=!1;const e=this._template;e&&(t=!0,e._setObjectTemplate(this)),P(this._internalTemplates,(e=>{t=!0,e._setObjectTemplate(this)})),t&&this._applyTemplates(!1),this.states.create("default",{}),this._setDefaults()}_afterNewApplyThemes(){this._checkDirty();const t=this._template;t&&t._setObjectTemplate(this),P(this._internalTemplates,(t=>{t._setObjectTemplate(this)})),this.states.create("default",{}),this._setDefaults(),this._applyThemes()}_createEvents(){return new Xt}get classNames(){return this.constructor.classNames}get className(){return this.constructor.className}_setDefaults(){}_setDefaultFn(t,e){const i=this.get(t);if(i)return i;{const i=e();return this.set(t,i),i}}_setDefault(t,e){this.has(t)||super.set(t,e)}_setRawDefault(t,e){this.has(t)||super.setRaw(t,e)}_clearDirty(){R(this._dirty).forEach((t=>{this._dirty[t]=!1})),R(this._dirtyPrivate).forEach((t=>{this._dirtyPrivate[t]=!1}))}isDirty(t){return!!this._dirty[t]}isPrivateDirty(t){return!!this._dirtyPrivate[t]}_markDirtyKey(t){this._dirty[t]=!0,super._markDirtyKey(t)}_markDirtyPrivateKey(t){this._dirtyPrivate[t]=!0,super._markDirtyKey(t)}isType(t){return-1!==this.classNames.indexOf(t)}_pushPropertyDisposer(t,e){let i=this._disposerProperties[t];return void 0===i&&(i=this._disposerProperties[t]=[]),i.push(e),e}_disposeProperty(t){const e=this._disposerProperties[t];void 0!==e&&(P(e,(t=>{t.dispose()})),delete this._disposerProperties[t])}set template(t){const e=this._template;e!==t&&(this._template=t,e&&e._removeObjectTemplate(this),t&&t._setObjectTemplate(this),this._applyTemplates())}get template(){return this._template}markDirty(){this._root._addDirtyEntity(this)}_startAnimation(){this._root._addAnimation(this)}_animationTime(){return this._root.animationTime}_applyState(t){}_applyStateAnimated(t,e){}get(t,e){const i=this.adapters.fold(t,this._settings[t]);return void 0!==i?i:e}isUserSetting(t){return this._userProperties[t]||!1}set(t,e){return this._userProperties[t]=!0,super.set(t,e)}setRaw(t,e){this._userProperties[t]=!0,super.setRaw(t,e)}_setSoft(t,e){return this._userProperties[t]?e:super.set(t,e)}remove(t){delete this._userProperties[t],this._removeTemplateProperty(t)}setPrivate(t,e){return this._userPrivateProperties[t]=!0,super.setPrivate(t,e)}setPrivateRaw(t,e){this._userPrivateProperties[t]=!0,super.setPrivateRaw(t,e)}removePrivate(t){delete this._userPrivateProperties[t],this._removeTemplatePrivateProperty(t)}_setTemplateProperty(t,e,i){if(!this._userProperties[e]){t===this._findTemplateByKey(e)&&super.set(e,i)}}_setTemplatePrivateProperty(t,e,i){if(!this._userPrivateProperties[e]){t===this._findTemplateByPrivateKey(e)&&super.setPrivate(e,i)}}_removeTemplateProperty(t){if(!this._userProperties[t]){const e=this._findTemplateByKey(t);e?super.set(t,e._settings[t]):super.remove(t)}}_removeTemplatePrivateProperty(t){if(!this._userPrivateProperties[t]){const e=this._findTemplateByPrivateKey(t);e?super.setPrivate(t,e._privateSettings[t]):super.removePrivate(t)}}_walkParents(t){t(this._root._rootContainer),t(this)}_applyStateByKey(t){const e=this.states.create(t,{}),i={};this._eachTemplate((s=>{const r=s.states.lookup(t);r&&r._apply(e,i)})),U(e._settings,(t=>{i[t]||e._userSettings[t]||e.remove(t)}))}_applyTemplate(t,e){this._templateDisposers.push(t._apply(this,e)),U(t._settings,((t,i)=>{e.settings[t]||this._userProperties[t]||(e.settings[t]=!0,super.set(t,i))})),U(t._privateSettings,((t,i)=>{e.privateSettings[t]||this._userPrivateProperties[t]||(e.privateSettings[t]=!0,super.setPrivate(t,i))})),this._runSetup&&t.setup&&(this._runSetup=!1,t.setup(this))}_findStaticTemplate(t){if(this._template&&t(this._template))return this._template}_eachTemplate(t){this._findStaticTemplate((e=>(t(e),!1))),D(this._internalTemplates,t),P(this._templates,t)}_applyTemplates(t=!0){t&&this._disposeTemplates();const e={settings:{},privateSettings:{},states:{}};this._eachTemplate((t=>{this._applyTemplate(t,e)})),t&&(U(this._settings,(t=>{this._userProperties[t]||e.settings[t]||super.remove(t)})),U(this._privateSettings,(t=>{this._userPrivateProperties[t]||e.privateSettings[t]||super.removePrivate(t)})))}_findTemplate(t){const e=this._findStaticTemplate(t);if(void 0===e){const e=H(this._internalTemplates,t);return void 0===e?A(this._templates,t):e}return e}_findTemplateByKey(t){return this._findTemplate((e=>t in e._settings))}_findTemplateByPrivateKey(t){return this._findTemplate((e=>t in e._privateSettings))}_disposeTemplates(){P(this._templateDisposers,(t=>{t.dispose()})),this._templateDisposers.length=0}_removeTemplates(){P(this._templates,(t=>{t._removeObjectTemplate(this)})),this._templates.length=0}_applyThemes(t=!1){let e=!1;const i=[];let s=[];const r=new Set,a=this.get("themeTagsSelf");return a&&P(a,(t=>{r.add(t)})),this._walkParents((t=>{t===this._root._rootContainer&&(e=!0),t._defaultThemes.length>0&&i.push(t._defaultThemes);const a=t.get("themes");a&&s.push(a);const n=t.get("themeTags");n&&P(n,(t=>{r.add(t)}))})),s=i.concat(s),this._removeTemplates(),(e||t)&&D(this.classNames,(t=>{const e=[];P(s,(i=>{P(i,(i=>{const s=i._lookupRules(t);s&&D(s,(t=>{if(t.tags.every((t=>r.has(t)))){const i=L(e,(e=>{const i=Se(t.tags.length,e.tags.length);return 0===i?je(t.tags,e.tags,Se):i}));e.splice(i.index,0,t)}}))}))})),P(e,(t=>{this._templates.push(t.template),t.template._setObjectTemplate(this)}))})),this._applyTemplates(),(e||t)&&(this._runSetup=!1),e||t}_changed(){}_beforeChanged(){if(this.isDirty("id")){const t=this.get("id");t&&this._registerId(t);const e=this._prevSettings.id;e&&delete Oe.entitiesById[e]}}_registerId(t){if(Oe.entitiesById[t]&&Oe.entitiesById[t]!==this)throw new Error('An entity with id "'+t+'" already exists.');Oe.entitiesById[t]=this}_afterChanged(){}addDisposer(t){return this._disposers.push(t),t}_dispose(){super._dispose();const t=this._template;t&&t._removeObjectTemplate(this),P(this._internalTemplates,(t=>{t._removeObjectTemplate(this)})),this._removeTemplates(),this._disposeTemplates(),this.events.dispose(),this._disposers.forEach((t=>{t.dispose()})),U(this._disposerProperties,((t,e)=>{P(e,(t=>{t.dispose()}))}));const e=this.get("id");e&&delete Oe.entitiesById[e]}setTimeout(t,e){const i=setTimeout((()=>{this.removeDispose(s),t()}),e),s=new z((()=>{clearTimeout(i)}));return this._disposers.push(s),s}removeDispose(t){if(!this.isDisposed()){let e=v(this._disposers,t);e>-1&&this._disposers.splice(e,1)}t.dispose()}hasTag(t){return-1!==v(this.get("themeTags",[]),t)}addTag(t){if(!this.hasTag(t)){const e=this.get("themeTags",[]);e.push(t),this.set("themeTags",e)}}removeTag(t){if(this.hasTag(t)){const e=this.get("themeTags",[]);k(e,t),this.set("themeTags",e)}}_t(t,e,...i){return this._root.language.translate(t,e,...i)}get root(){return this._root}}function Ie(t){U(t,((t,e)=>{m(e)&&"function"==typeof e.dispose&&(e.enableDispose=!0,e.dispose())}))}Object.defineProperty(He,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Entity"}),Object.defineProperty(He,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:["Entity"]});class Le{constructor(t,e,i){Object.defineProperty(this,"_settings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._name=t,this._template=e,this._settings=i}_dispose(){Ie(this._settings)}get(t,e){const i=this._settings[t];return void 0!==i?i:e}set(t,e){this._settings[t]=e,this._template._stateChanged(this._name)}remove(t){delete this._settings[t],this._template._stateChanged(this._name)}setAll(t){R(t).forEach((e=>{this._settings[e]=t[e]})),this._template._stateChanged(this._name)}_apply(t,e){U(this._settings,((i,s)=>{e[i]||t._userSettings[i]||(e[i]=!0,t.setRaw(i,s))}))}}class Ne{constructor(t){Object.defineProperty(this,"_template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_states",{enumerable:!0,configurable:!0,writable:!0,value:{}}),this._template=t}_dispose(){U(this._states,((t,e)=>{e._dispose()}))}lookup(t){return this._states[t]}create(t,e){const i=this._states[t];if(i)return i.setAll(e),i;{const i=new Le(t,this._template,e);return this._states[t]=i,this._template._stateChanged(t),i}}remove(t){delete this._states[t],this._template._stateChanged(t)}_apply(t,e){U(this._states,((i,s)=>{let r=e.states[i];null==r&&(r=e.states[i]={});const a=t.states.create(i,{});s._apply(a,r)}))}}class Re{constructor(){Object.defineProperty(this,"_callbacks",{enumerable:!0,configurable:!0,writable:!0,value:{}})}add(t,e){let i=this._callbacks[t];return void 0===i&&(i=this._callbacks[t]=[]),i.push(e),new z((()=>{O(i,e),0===i.length&&delete this._callbacks[t]}))}remove(t){void 0!==this._callbacks[t]&&delete this._callbacks[t]}_apply(t){const e=[];return U(this._callbacks,((i,s)=>{P(s,(s=>{e.push(t.adapters.add(i,s))}))})),new X(e)}}class Fe{constructor(t,e){if(Object.defineProperty(this,"_disposed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_settings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_privateSettings",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_settingEvents",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_privateSettingEvents",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_entities",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"states",{enumerable:!0,configurable:!0,writable:!0,value:new Ne(this)}),Object.defineProperty(this,"adapters",{enumerable:!0,configurable:!0,writable:!0,value:new Re}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:new Xt}),Object.defineProperty(this,"setup",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),!e)throw new Error("You cannot use `new Class()`, instead use `Class.new()`");this._settings=t}static new(t){return new Fe(t,!0)}_dispose(){Ie(this._settings),Ie(this._privateSettings)}isDisposed(){return this._disposed}dispose(){this._disposed||(this._disposed=!0,this._dispose())}_checkDisposed(){if(this._disposed)throw new Error("Template is disposed")}get entities(){return this._entities}get(t,e){this._checkDisposed();const i=this._settings[t];return void 0!==i?i:e}setRaw(t,e){this._checkDisposed(),this._settings[t]=e}set(t,e){this._checkDisposed(),this._settings[t]!==e&&(this.setRaw(t,e),this._entities.forEach((i=>{i._setTemplateProperty(this,t,e)})))}remove(t){this._checkDisposed(),t in this._settings&&(delete this._settings[t],this._entities.forEach((e=>{e._removeTemplateProperty(t)})))}removeAll(){this._checkDisposed(),U(this._settings,((t,e)=>{this.remove(t)}))}getPrivate(t,e){this._checkDisposed();const i=this._privateSettings[t];return void 0!==i?i:e}setPrivateRaw(t,e){return this._checkDisposed(),this._privateSettings[t]=e,e}setPrivate(t,e){return this._checkDisposed(),this._privateSettings[t]!==e&&(this.setPrivateRaw(t,e),this._entities.forEach((i=>{i._setTemplatePrivateProperty(this,t,e)}))),e}removePrivate(t){this._checkDisposed(),t in this._privateSettings&&(delete this._privateSettings[t],this._entities.forEach((e=>{e._removeTemplatePrivateProperty(t)})))}setAll(t){this._checkDisposed(),U(t,((t,e)=>{this.set(t,e)}))}on(t,e){this._checkDisposed();let i=this._settingEvents[t];return void 0===i&&(i=this._settingEvents[t]=[]),i.push(e),new z((()=>{O(i,e),0===i.length&&delete this._settingEvents[t]}))}onPrivate(t,e){this._checkDisposed();let i=this._privateSettingEvents[t];return void 0===i&&(i=this._privateSettingEvents[t]=[]),i.push(e),new z((()=>{O(i,e),0===i.length&&delete this._privateSettingEvents[t]}))}_apply(t,e){this._checkDisposed();const i=[];return U(this._settingEvents,((e,s)=>{P(s,(s=>{i.push(t.on(e,s))}))})),U(this._privateSettingEvents,((e,s)=>{P(s,(s=>{i.push(t.onPrivate(e,s))}))})),this.states._apply(t,e),i.push(this.adapters._apply(t)),i.push(t.events.copyFrom(this.events)),new X(i)}_setObjectTemplate(t){this._checkDisposed(),this._entities.push(t)}_removeObjectTemplate(t){k(this._entities,t)}_stateChanged(t){this._checkDisposed(),this._entities.forEach((e=>{e._applyStateByKey(t)}))}}class We extends Xt{constructor(t){super(),Object.defineProperty(this,"_sprite",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_rendererDisposers",{