timescope 0.0.0-alpha.1 → 0.0.0-alpha.2
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.
- package/README.md +1 -1
- package/browser.js +1 -1
- package/index.d.ts +59 -59
- package/index.js +1 -1
- package/package.json +11 -2
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(e,t=`Digits must be an integer`){if(typeof e==`number`){if(!Number.isFinite(e)||!Number.isInteger(e))throw Error(t);return BigInt(e)}return e}function t(t){let n=e(t);return n<0n?0n:n}function n(e){let t=Number(e);return t<y.length?y[t]:5n**BigInt(e)}function r(e){let t=Number(e);return t<te.length?te[t]:10n**BigInt(e)}function i(e,t,n){let r=BigInt(t);if(r<=0n)return new g(1n);let i=new g(1n),a=e.clone();for(;r&1n&&i.mul$(a,n),r>>=1n,r!==0n;)a.mul$(a,n);return i}function a(e,t,n,r){if(t.isZero()||r<=0)return new g(1n);let{guardPrec:a,rootPrec:s}=f(n,r),c=o(t.coeff).toString().padStart(r,`0`),l=e.round(s),u=new g(1n);for(let e=0;e<r;e++){l=l.root(10n,s);let t=c.charCodeAt(e)-48;if(t<=0)continue;let n=i(l.clone(),t,a);u.mul$(n,a)}return u.round$(n)}function o(e){return e<0n?-e:e}function s(e){if(e===``)throw Error(`Invalid number`);let t=1n,n=e;if(n[0]===`-`?(t=-1n,n=n.slice(1)):n[0]===`+`&&(n=n.slice(1)),n===``)throw Error(`Invalid number`);let r=n.indexOf(`.`),i=n,a=``;r>=0&&(i=n.slice(0,r),a=n.slice(r+1)),i===``&&(i=`0`);let o=(i+a).replace(/^0+/,``),s=o===``?`0`:o;return{coeff:t*BigInt(s),digits:BigInt(a.length)}}function c(e){let t=e.search(/[eE]/);if(t===-1)return s(e);let n=e.slice(0,t),r=e.slice(t+1);if(r.trim()===``)throw Error(`Invalid number`);let{coeff:i,digits:a}=s(n);return{coeff:i,digits:a-BigInt(r)}}function l(e,t){let n=e.digits>t.digits?e.digits:t.digits,i=n-e.digits,a=n-t.digits;return{digits:n,aCoeff:e.coeff*r(i),bCoeff:t.coeff*r(a)}}function u(e){let t=Math.max(0,Number(e));return Math.min(2**53-1,t)}function d(e,t,n){let r=u(t),i=u(n),a=Math.max(r,i)+1,o=Math.max(a,1),s=e+o;for(;;){let t=Math.ceil(s*ee)+o,n=Math.max(t*2,1),r=Math.max(a,Math.ceil(Math.log10(n))+1);if(r<=o){let e=s+o;return{guardPrec:o,fracPrec:s,bits:t,divPrec:e}}o=r,s=e+o}}function f(e,t){let n=Math.max(1,t),r=Math.max(6,Math.ceil(Math.log10(n*4))+2),i=e+BigInt(r);return{guardPrec:i,rootPrec:i+BigInt(Math.max(r,6))}}function p(e,t){let n=Math.max(1,t.toString().replace(`-`,``).length),r=Math.max(12,n+4);return{iterPrec:e+BigInt(r),stopShift:e+2n}}function m(e,t,n,r){let i=[],a=[],o=new g(t),s=1n,c=n+Math.max(r,1);for(;o.le(e);)i.push(o),a.push(s),o=o.mul(o),s*=2n;let l=new g(e),u=0n;for(let e=i.length-1;e>=0;e--){let t=i[e];l.ge(t)&&(l.div$(t,c),u+=a[e])}return{exponent:u,remainder:l}}function h(e,t,n,r){let i=n+Math.max(r,1);if(e.eq(v))return{exponent:0n,remainder:v.clone()};if(e.ge(v))return m(e,t,n,r);let a=m(v.div(e,i),t,n,r);return a.remainder.eq(v)?{exponent:-a.exponent,remainder:v.clone()}:{exponent:-a.exponent-1n,remainder:v.div(a.remainder,i).mul$(t)}}var g=class s{coeff;digits;constructor(e,t){if(typeof e==`number`){if(e!==e||e===1/0||e===-1/0)throw Error(`Invalid number`);({coeff:this.coeff,digits:this.digits}=c(e.toString()))}else if(typeof e==`string`){let t=e.trim();if(t===``)throw Error(`Invalid number`);({coeff:this.coeff,digits:this.digits}=c(t))}else if(typeof e==`bigint`)this.coeff=e,this.digits=t??0n;else if(typeof e==`object`&&e&&`coeff`in e&&typeof e.coeff==`bigint`&&`digits`in e&&typeof e.digits==`bigint`)this.coeff=e.coeff,this.digits=e.digits;else throw Error(`Invalid input type for Decimal`)}clone(){return new s({coeff:this.coeff,digits:this.digits})}#e(e,t=0n){return x(e)&&(t=e.digits,e=e.coeff),this.coeff=e,this.digits=t,this}#t(e,t,n){let i=this.coeff,a=e.coeff,s=e.digits+t-this.digits;s>=0n?i*=r(s):a*=r(-s);let c=i/a,l=i-c*a;if(l!==0n&&n!==`trunc`){let e=i>=0n;switch(n){case`floor`:e||(c-=1n);break;case`ceil`:e&&(c+=1n);break;case`round`:{let t=o(l),n=a<0n?-a:a;t*2n>=n&&(c+=e?1n:-1n);break}default:break}}return this.#e(c,t)}#n(t,n=`trunc`){let i=e(t);if(this.isZero())return this.digits=i,this;if(i===this.digits)return this;if(i>this.digits){let e=r(i-this.digits);return this.coeff*=e,this.digits=i,this}return this.#t(v,i,n)}#r(){if(this.coeff===0n)return this.digits=0n,this;if(this.digits<=0n)return this;for(;this.digits>0n&&this.coeff%10n==0n;)this.coeff/=10n,this.digits-=1n;return this}round$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`round`)}round(e=0,t=!1){return this.clone().round$(e,t)}roundBy$(e,t=`round`){let n=new s(e).abs();if(n.isZero())throw Error(`Cannot align to zero`);return this.div$(n,0n,t).mul$(n)}roundBy(e,t=`round`){return this.clone().roundBy$(e,t)}floor$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`floor`)}floor(e=0,t=!1){return this.clone().floor$(e,t)}floorBy$(e){return this.roundBy$(e,`floor`)}floorBy(e){return this.clone().floorBy$(e)}ceil$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`ceil`)}ceil(e=0,t=!1){return this.clone().ceil$(e,t)}ceilBy$(e){return this.roundBy$(e,`ceil`)}ceilBy(e){return this.clone().ceilBy$(e)}trunc$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`trunc`)}trunc(e=0,t=!1){return this.clone().trunc$(e,t)}rescale$(e,t=`trunc`){return e==null?this.#r():this.#n(e,t)}rescale(e,t=`trunc`){return this.clone().rescale$(e,t)}truncBy$(e){return this.roundBy$(e,`trunc`)}truncBy(e){return this.clone().truncBy$(e)}#i(e){let t=this.clone();return e(this),[this,t.sub$(this)]}split$(e,t=`floor`){return this.#i(n=>n.#n(e??0n,t))}split(e,t=`floor`){return this.clone().split$(e,t)}splitBy$(e,t=`floor`){return this.#i(n=>n.roundBy$(e,t))}splitBy(e,t=`floor`){return this.clone().splitBy$(e,t)}neg$(e){return e!==!1&&(this.coeff=-this.coeff),this}neg(e){return this.clone().neg$(e)}isZero(){return this.coeff===0n}isPositive(){return this.coeff>0n}isNegative(){return this.coeff<0n}add$(e){let t=b(e),{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r+i,this.digits=n,this}add(e){return this.clone().add$(e)}sub$(e){let t=b(e),{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r-i,this.digits=n,this}sub(e){return this.clone().sub$(e)}mul$(e,t){let n=b(e);return this.coeff*=n.coeff,this.digits+=n.digits,t!==void 0&&this.round$(t),this}mul(e,t){return this.clone().mul$(e,t)}shift10$(t){let n=e(t,`Shift amount must be an integer`);return n===0n||(this.digits-=n),this}shift10(e){return this.clone().shift10$(e)}inverse$(e=_){if(this.isZero())throw Error(`Division by zero`);let n=t(e),r=this.clone();return this.#e(1n).div$(r,n)}inverse(e=_){return this.clone().inverse$(e)}div$(e,n,r=`round`){let i=n===void 0,a=t(n??_),o=b(e);if(o.isZero())throw Error(`Division by zero`);return this.isZero()?this:(this.#t(o,a,r),i?this.#r():this)}div(e,t,n=`round`){return this.clone().div$(e,t,n)}abs$(){return this.isNegative()&&(this.coeff=-this.coeff),this}abs(){return this.clone().abs$()}mod$(e){let t=b(e);if(t.isZero())throw Error(`Division by zero`);let{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r%i,this.digits=n,this}mod(e){return this.clone().mod$(e)}modPositive$(e){let t=b(e);if(t.isNegative())throw Error(`Modulo divisor must be positive`);return this.mod$(t),this.isNegative()&&this.add$(t),this}modPositive(e){return this.clone().modPositive$(e)}clamp$(e,t){let n=b(e),r=b(t);if(n&&r&&n.gt(r))throw Error(`Invalid clamp range`);return n&&this.lt(n)?(this.coeff=n.coeff,this.digits=n.digits,this):r&&this.gt(r)?(this.coeff=r.coeff,this.digits=r.digits,this):this}clamp(e,t){return this.clone().clamp$(e,t)}cmp(e){let t=b(e),{aCoeff:n,bCoeff:r}=l(this,t);return n===r?0:n>r?1:-1}eq(e){return this.cmp(e)===0}neq(e){return this.cmp(e)!==0}lt(e){return this.cmp(e)<0}gt(e){return this.cmp(e)>0}le(e){return this.cmp(e)<=0}ge(e){return this.cmp(e)>=0}between(e,t){let n=b(e),r=b(t);if(n&&r&&n.gt(r))throw Error(`Invalid between range`);return!(n&&this.lt(n)||r&&this.gt(r))}isCloseTo(e,t){let n=b(t);if(n.isNegative())throw Error(`Tolerance must be non-negative`);return this.sub(e).abs$().le(n)}pow$(e,n=_){let r=t(n),o=b(e);if(o.isZero())return this.#e(1n);if(this.isZero()){if(o.isNegative())throw Error(`Zero to negative exponent is undefined`);return this}let s=o.isNegative(),[c,l]=o.abs().split$(),u=this.clone(),d=l.isZero()?0:Number(l.digits);if(u.isNegative()&&d>0)throw Error(`Fractional exponent requires non-negative base`);let f=i(u,c.coeff),p=r;d>0&&(p=r+BigInt(Math.max(4,d)));let m=a(u,l,p,d);d>0&&f.mul$(m,p);let h=p>r?p:r,g=d>0?p:r;return s?this.#e(1n).div$(f,h):(f.round$(h,!0),this.#e(f)),this.round$(g,g===0n),this}pow(e,t=_){return this.clone().pow$(e,t)}root$(n,r=_){let a=e(n,`Root degree must be an integer`);if(a<=0n)throw Error(`Invalid root degree`);let o=t(r);if(a===1n)return o<this.digits?this:this.trunc$(o,!0);if(this.isZero())return this;let c=this.isNegative();if(c&&a%2n==0n)throw Error(`Even root of negative value is not defined`);let l=this.abs(),u=a-1n,{iterPrec:d,stopShift:f}=p(o,a),m=ne(-f),h=(()=>{let e=l.number();if(Number.isFinite(e)&&e>0){let t=Number(a);if(t>0){let n=e**(1/t);if(Number.isFinite(n)&&n>0)return new s(n).round$(d,!0)}}return new s(ne(l.order()/a)).round$(d,!0)})();this.#e(h.coeff,h.digits),this.isZero()&&this.#e(1n);for(let e=0;e<64;e++){let e=i(this.clone(),u,d);if(e.isZero())break;let t=l.div(e,d),n=this.mul(u,d).add$(t).div$(a,d);if(n.isCloseTo(this,m)||n.eq(this)){this.#e(n);break}this.#e(n)}return this.round$(d,!0),this.round$(o,o===0n),c&&this.neg$(),this}root(e,t=_){return this.clone().root$(e,t)}sqrt$(e=_){return this.root$(2n,e)}sqrt(e=_){return this.clone().sqrt$(e)}log$(e,r=_){let i=Number(t(r)),a=new s(e);if(!this.isPositive())throw Error(`Logarithm argument must be positive`);if(!a.isPositive())throw Error(`Logarithm base must be positive`);if(a.eq(v))throw Error(`Logarithm base cannot be one`);let{guardPrec:o,fracPrec:c,bits:l,divPrec:u}=d(i,a.digits,this.digits),f=a.lt(v),p=f?v.div(a,u):a,{exponent:m,remainder:g}=h(this,p,c,o);if(this.#e(m),c>0){let e=0n;for(let t=0;t<l;t++)g.mul$(g,u),e<<=1n,g.ge(p)&&(g.div$(p,u),e|=1n);e!==0n&&this.add$({coeff:e*n(l),digits:BigInt(l)})}let ee=i===0?0:c;return this.round$(ee),f&&this.neg$(),this}log(e,t=_){return this.clone().log$(e,t)}sign$(){return this.isZero()?this:(this.coeff=this.coeff<0n?-1n:1n,this.digits=0n,this)}sign(){return this.clone().sign$()}order(){if(this.isZero())throw RangeError(`order undefined for 0`);return BigInt(o(this.coeff).toString().length)-1n-this.digits}toFixed(t){let n=`Fraction digits must be a non-negative integer`,r=e(t,n);if(r<0n)throw Error(n);return this.round(r,!0).toString()}toString(){if(this.coeff===0n)return this.digits<=0n?`0`:`0.${`0`.repeat(Number(this.digits))}`;let e=this.coeff<0n,t=e?`-`:``,n=(e?-this.coeff:this.coeff).toString();if(this.digits<=0n)return`${t}${n}${`0`.repeat(Number(-this.digits))}`;let r=Number(this.digits),i=n.padStart(r+1,`0`),a=i.length-r;return`${t}${i.slice(0,a)}.${i.slice(a).padEnd(r,`0`)}`}[Symbol.for(`nodejs.util.inspect.custom`)](e,t){return`colors`in t&&t?.colors?`\x1b[33m${this.toString()}\x1b[m \x1b[90m(${this.coeff} * 10 ** ${-this.digits})\x1b[m`:this.toString()}number(){return Number(this.toString())}integer(){return this.digits<=0n?this.coeff*r(-this.digits):this.coeff/r(this.digits)}};const _=18n,ee=Math.log2(10),v=new g(1n),y=[],te=[];(function(){for(let e=0;e<256;e++)te[e]=10n**BigInt(e),y[e]=5n**BigInt(e)})();function b(e){return e==null||x(e)?e:new g(e)}(function(e){function t(e){return e instanceof g}e.isDecimal=t;function n(e){return!!(t(e)||typeof e==`string`||typeof e==`number`||typeof e==`bigint`||typeof e==`object`&&e&&`coeff`in e&&`digits`in e&&typeof e.coeff==`bigint`&&typeof e.digits==`bigint`)}e.isDecimalLike=n;function r(e){return new g({coeff:1n,digits:-BigInt(e)})}e.pow10=r;function i(...e){let t=null,n=null;for(let r=0;r<e.length;r++){let i=b(e[r]);i!=null&&((t===null||i.lt(t))&&(t=i),(n===null||i.gt(n))&&(n=i))}return[t,n]}e.minmax=i;function a(...e){return i(...e)[0]}e.min=a;function o(...e){return i(...e)[1]}e.max=o})(b||={});const x=b.isDecimal;b.isDecimalLike;const ne=b.pow10,S=b.minmax;b.min,b.max;function re(e){if(typeof e==`number`&&isNaN(e)||typeof e==`number`&&!isFinite(e))return null;try{return b(e)}catch{return null}}function ie(e){return function(t){return e?e(t):t}}function ae(e){return function(t){return e?e(t):t}}function oe(e){return function(t){return e?e(t):t}}function se(e){return function(t,n,r){return e?e(t):t}}const ce=ie(),le=ae(),ue=oe(),de=se();var C={clickTolerance:8,defaultChunkSize:256,base:2,chunkStep:1,wheelSensitivity:200};function fe(e){if(globalThis._uid||(globalThis._uid=1),e){if(`_uid`in e)return String(e._uid);e._uid=String(globalThis._uid),Object.defineProperty(e,`_uid`,{enumerable:!1})}return String(globalThis._uid++)}var pe=class{uid=fe(this);#e={};dispatchEvent(e){let t=typeof e==`string`?e:e.type,n=this.#e[t];if(n)for(let t of n)t(e)}on(e,t){let n=this.#e[e]??[];return n.push(t),this.#e[e]=n,()=>this.un(e,t)}un(e,t){let n=this.#e[e];if(!n)return;let r=n.indexOf(t);r>=0&&n.splice(r,1)}},w=class{type;value;origin;stopped=!1;prevented=!1;constructor(e,t,n){this.type=e,this.value=t,this.origin=n}stopPropagation(){this.stopped=!0}preventDefaults(){this.prevented=!0}},T=class extends pe{#e=0;changed(){this.#e++,this.dispatchEvent(`change`)}get revision(){return this.#e}};function E(e){if(e==null||x(e))return e;if(typeof e==`string`){let t=Date.parse(e);if(Number.isNaN(t))throw Error(`Parse error as Date`);return b(t/1e3)}return e instanceof Date?b(e.getTime()/1e3):b(e)}function me(e){return e.map(E)}const he=globalThis.requestAnimationFrame??(e=>setTimeout(e,0)),ge=globalThis.cancelAnimationFrame??(e=>clearTimeout(e));var _e=class{#e=null;#t;start(e){e={animation:`in-out`,duration:500,...e},this.cancel(),this.#t=()=>e.done?.(e.target());let t=e.overshoot??0,n=e.duration??500,r=performance.now(),i=e.animation?{linear:e=>e,"in-out":e=>e*e*e*(e*(e*6-15)+10),out:e=>1+(t+1)*(e-1)**3+t*(e-1)**2}[String(e.animation)]:null;if(!i||e.origin()===e.target()){this.done();return}let a=()=>{let t=performance.now()-r;if(t<n){let r=i(t/n),o=e.origin()*(1-r)+e.target()*r;e.update(o,r),this.#e=he(a)}else this.done()};this.#e=he(a)}done(){this.cancel(),this.#t?.()}cancel(){this.#e&&=(ge(this.#e),null)}get animating(){return this.#e!==null}};function D(e,t,n){let r=e??n;if(t[0]!==void 0){let e=t[0]??n;if(r.lt(e))return t[0]}if(t[1]!==void 0){let e=t[1]??n;if(r.gt(e))return t[1]}return e}var O=class extends T{#e;#t={id:void 0,value:null,nullValue:b(0),committed:null,committing:null,current:null,candidate:null,domain:[void 0,void 0],editing:!1,animating:!1,cursorMode:`current`,updated:!1};#n=new _e;#r;get candidate(){return this.#t.candidate}get value(){return this.#t.value}get committing(){return this.#t.committing}parseValue(e){return b(e)}setValue(e,t){t??=!1;let n=this.parseValue(e);if(this.#t.value===n||n&&this.#t.value?.eq(n))return;let r=typeof t==`object`?t:{animation:t};this.begin(n),this.commit(r)}get committed(){return this.#t.committed}get current(){return this.#t.current}get domain(){return this.#t.domain}set domain(e){let t=e.map(e=>b(e));this.#t.domain=t,this.restore(),this.#c(),this.setValue(D(this.value,t,this.#t.nullValue)),this.changed()}get editing(){return this.#t.editing}get animating(){return this.#t.animating}get cursor(){return this.#t.cursorMode===`current`?this.#t.current:this.#t.committing}constructor(e={initialValue:0}){super(),e.domain&&(this.#t.domain=e.domain.map(e=>b(e))),e.onNull&&(this.#r=e.onNull,this.#c()),this.#e=e.lazy??!1;let t=D(b(e.initialValue),this.#t.domain,this.#t.nullValue);this.#t.value=t,this.#t.committed=t,this.#t.current=t,this.#t.candidate=t,this.#t.committing=t}handleSyncEvent(e){switch(e.type){case`begin`:this.#i(e);break;case`update`:this.#a(e);break;case`commit`:this.#o(e);break;case`restore`:this.#l(e);break;case`set:nullvalue`:this.#s(e);break}}begin(e){this.#c(),e===void 0&&(e=this.#t.current);let t=D(e,this.#t.domain,this.#t.nullValue),n={type:`begin`,candidate:t};this.dispatchEvent(new w(`sync`,n)),this.dispatchEvent(new w(`valuechanging`,t)),this.#i(n)}#i({candidate:e}){this.#n.cancel(),this.#t.cursorMode=`current`,this.#t.editing=!0,this.#t.updated=!1,this.#t.candidate=e,this.dispatchEvent(new w(`valuechanging`,e)),this.changed()}update(e){this.#c();let t=this.#t.nullValue,n=D(e,this.#t.domain,t),r={type:`update`,candidate:n,current:(e??t).sub(this.#t.current??t).mul(n===e?1:.5).add(this.#t.current??t)};this.dispatchEvent(new w(`sync`,r)),this.#a(r)}#a({candidate:e,current:t}){this.#t.editing=!0,this.#t.updated=!0,this.#t.candidate=e,this.#t.current=t,this.dispatchEvent(new w(`valuechanging`,e)),this.changed()}commit(e={}){this.#c();let t=e.value===void 0?this.#t.candidate:e.value,n=t,r=D(t,this.#t.domain,this.#t.nullValue),i=e.animation===void 0?this.#t.updated?`current`:`target`:this.#t.cursorMode,a={type:`commit`,targetValue:r,animation:e.animation===void 0?this.#t.editing?`out`:`in-out`:e.animation,duration:e.duration??500,cursorMode:i,divergentValue:n,lazy:e.lazy??this.#e};this.dispatchEvent(new w(`sync`,a)),this.#o(a)}#o({targetValue:e,divergentValue:t,animation:n,duration:r,cursorMode:i,lazy:a}){let o=()=>{this.#t.value=e,this.#t.editing=!1,this.changed(),this.dispatchEvent(new w(`valuechanging`,this.#t.value)),this.dispatchEvent(new w(`valuechanged`,this.#t.value))},s=this.#t.current??this.#t.nullValue,c=e??this.#t.nullValue,l=t??this.#t.nullValue,u=0;c.neq(l)&&l.neq(s)&&(u=3*(l.sub(s).div(c.sub(s)).number()-1)/2),this.#t.cursorMode=i,this.#t.candidate=e,this.#t.committing=e,a||o();let d=c.eq(s)?0:1;this.#t.animating=!0,this.#n.start({origin:()=>0,target:()=>d,update:t=>{this.#c(),this.#t.animating=!0;let n=(e??this.#t.nullValue).sub(s).mul(t).add(s);this.#t.current=n,this.changed()},done:()=>{this.#t.animating=!1,this.#t.current=e,a&&o(),this.#t.committed=e,this.changed()},animation:n,duration:r,overshoot:u})}#s({nullValue:e}){this.#t.nullValue=e}#c(){if(!this.#r)return;let e=this.parseValue(this.#r())??this.#t.nullValue;this.#t.nullValue=e}toString(){return JSON.stringify(this)}toJSON(){return{value:this.value,candidate:this.candidate,committed:this.committed,committing:this.committing,current:this.current,editing:this.editing,animating:this.animating}}#l({value:e,domain:t}){this.#n.cancel(),this.#t.cursorMode=`current`,this.#t.value=e,this.#t.candidate=e,this.#t.committed=e,this.#t.committing=e,this.#t.current=e,this.#t.editing=!1,this.#t.animating=!1,this.#t.domain=t}restore(){let e={type:`restore`,value:this.value,domain:this.#t.domain};this.dispatchEvent(new w(`sync`,e)),this.#l(e)}},ve=class extends T{time;zoom;constructor(e){super(),this.time=new O,this.zoom=new O,this.time=new O({initialValue:E(e.time??null),domain:me(e.timeRange??[void 0,null]),onNull:()=>Date.now()/1e3}),this.zoom=new O({initialValue:e.zoom??0,domain:e.zoomRange}),this.time.on(`change`,()=>this.changed()),this.zoom.on(`change`,()=>this.changed()),this.time.on(`valuechanging`,e=>this.dispatchEvent(new w(`timechanging`,e.value))),this.time.on(`valuechanged`,e=>this.dispatchEvent(new w(`timechanged`,e.value))),this.zoom.on(`valuechanging`,e=>this.dispatchEvent(new w(`zoomchanging`,e.value.number()))),this.zoom.on(`valuechanged`,e=>this.dispatchEvent(new w(`zoomchanged`,e.value.number())))}setTime(e,t){if(typeof e==`number`&&!isFinite(e)||typeof e==`number`&&isNaN(e))return!1;t??=`out`;try{this.time.setValue(E(e),t)}catch{return!1}return!0}setTimeRange(e){this.time.domain=me(e??[void 0,null])}setZoom(e,t){if(typeof e==`number`&&!isFinite(e)||typeof e==`number`&&isNaN(e))return!1;t??={animation:`linear`,duration:200,lazy:this.zoom.value.lt(e)};try{this.zoom.setValue(b(e),t)}catch{return!1}return!0}setZoomRange(e){this.zoom.domain=(e??[void 0,void 0]).map(b)}};function k(e,...t){return typeof e==`function`?e(...t):Array.isArray(e)?e.map(e=>k(e,...t)):typeof e==`object`&&e?Object.fromEntries(Object.entries(e).map(([e,n])=>[e,k(n,...t)])):e}function ye(e){return function(t){let n=e.split(`,`).map(e=>e.trim()),r=t;for(let e of n){let n=e.split(`.`);r=t;for(let e=0;e<n.length&&r!=null;e++){if(typeof r!=`object`){r=null;break}r=r[n[e]]}if(r!=null)return r}return r}}function be(e){return Object.prototype.toString.call(e)===`[object Object]`}function xe(e,t){for(let n in t){let r=t[n],i=e[n];Array.isArray(r)?e[n]=r.slice():r&&typeof r==`object`&&be(r)?((!i||typeof i!=`object`)&&(e[n]={}),xe(e[n],r)):e[n]=r}return e}const A={z:0,r:b(1)};function Se(e){return A.r.eq(e)?A.z:-e.log(C.base).number()}function Ce(e){return A.z===e?A.r:(A.z=e,A.r=b(C.base).pow(-e,BigInt(Math.floor(e))),A.r)}function we(e,t){return t?t.reduce((t,n)=>Math.abs(n-e)<Math.abs(t-e)?n:t,t[0]):Number(b(e).floorBy(C.chunkStep).toFixed(2))}var Te=class{values;constructor(...e){this.values=e}clone(){return new this.constructor(...this.values)}get length(){return this.values.length}set(...e){return this.values=e,this}add(e){if(Array.isArray(e)||(e=e.values),e.length!==this.length)throw Error(`Vector size mismatch`);for(let t=this.length-1;t>=0;t--)this.values[t]+=e[t];return this}sub(e){if(Array.isArray(e)||(e=e.values),e.length!==this.length)throw Error(`Vector size mismatch`);for(let t=this.length-1;t>=0;t--)this.values[t]-=e[t];return this}scale(e){for(let t=this.length-1;t>=0;t--)this.values[t]*=e;return this}get norm(){return Math.sqrt(this.values.reduce((e,t)=>e+t**2,0))}normalize(){let e=this.norm;return e?this.scale(1/e):this}distanceTo(e){return this.clone().sub(e).norm}},Ee=class extends Te{get x(){return this.values[0]}set x(e){this.values[0]=e}get y(){return this.values[1]}set y(e){this.values[1]=e}toJSON(){return{x:this.x,y:this.y}}},De=class{#e=`none`;#t={};#n=[];#r;#i;#a={none:[[[`pointerdown`,1,this.#o.bind(this)],`down`,[`down`]]],down:[[[`pointerdown`,2,this.#s.bind(this)],`pinch`,[`drag:start`,`pinch:start`]],[[`pointermove`,1,this.#l.bind(this)],`drag`,[`drag:start`]],[[`pointerup`,0],`none`,[`click`,`up`]],[[`pointercancel`,0],`none`,[`up`]]],drag:[[[`pointerdown`,2,this.#s.bind(this)],`pinch`,[`pinch:start`]],[[`pointermove`,1],`drag`,[`drag:update`]],[[`pointerup`,0],`none`,[`drag:end`,`up`]],[[`pointercancel`,0],`none`,[`drag:end`,`up`]]],pinch:[[[`pointermove`,2],`pinch`,[`pinch:update`]],[[`pointerup`,1,this.#c.bind(this)],`drag`,[`pinch:end`]],[[`pointercancel`,0],`none`,[`pinch:end`,`up`]]]};get state(){return this.#e}disabled=!1;#o(e){return this.#n.forEach(e=>e.anchor=e.latest.clone()),!0}#s(e){return this.#n.forEach(e=>e.anchor=e.latest.clone()),!0}#c(e){return this.#n.forEach(e=>e.anchor=e.latest.clone()),!0}#l(){let e=this.#n.find(e=>e.pressed)||this.#n[0];return e.latest.distanceTo(e.anchor)<4?!1:(this.#n.forEach(e=>e.anchor=e.latest.clone()),!0)}#u(e){if(this.disabled)return;let t=new Ee(e.clientX,e.clientY),n=this.#i(t,e)??t,r=!!(e.buttons&1),i=this.#t[e.pointerId]?.latest??n;this.#t[e.pointerId]={pointerId:e.pointerId,last:i,latest:n,delta:n.clone().sub(i),anchor:this.#t[e.pointerId]?.anchor??n,pressed:r};let a=Object.values(this.#t),o=a.filter(e=>e.pressed).length;this.#n=a.filter(t=>t.pressed||t.pointerId===e.pointerId),this.#m(e,o),this.#f(e),r||delete this.#t[e.pointerId]}#d;async#f(e){this.#r&&this.#d&&(this.#r.style.cursor=await this.#d({type:`cursor`,state:this.#e,buttons:this.#n,latest:this.#t[e.pointerId],shiftKey:e.shiftKey})??``)}#p;#m(e,t){let[[n,r,i],a,o]=this.#a[this.#e].find(([[n,r]])=>(n===`*`||n===e.type)&&(r===void 0||r===t))??[[`*`],this.#e];i?.(e)!==!1&&(this.#e=a,o&&o.forEach(t=>this.#p({type:t,state:this.#e,buttons:this.#n,latest:this.#t[e.pointerId],shiftKey:e.shiftKey})))}constructor(e={}){this.#i=e.transform??(e=>e),this.#p=e.handler??(async()=>void 0),this.#d=e.cursor,e.element&&this.attach(e.element)}#h;attach(e){this.#h?.abort(),this.#h=new AbortController;let t=this.#h.signal,n=e=>this.#u(e);return e.addEventListener(`pointerdown`,n,{signal:t}),window.addEventListener(`pointermove`,n,{passive:!0,signal:t}),window.addEventListener(`pointerup`,n,{passive:!0,signal:t}),window.addEventListener(`pointercancel`,n,{passive:!0,signal:t}),e.addEventListener(`touchstart`,e=>e.preventDefault(),{signal:t}),this.#r=e,this}detach(){this.#h?.abort()}};let Oe=0;function ke(e){return function(t,n,r={rpc:!1}){let i=++Oe;return e.postMessage({type:r.rpc?`rpc`:`event`,command:t,seq:i,payload:je(n,r.transfer)},r.transfer??[]),r.rpc?new Promise(n=>{let r=a=>{a.data.type===`rpc:ack`&&a.data.command===t&&a.data.seq===i&&(e.removeEventListener(`message`,r),n(M(a.data?.payload)))};e.addEventListener(`message`,r)}):Promise.resolve()}}function Ae(e,t){return e.addEventListener(`message`,async({data:{type:n,command:r,seq:i,payload:a}})=>{let o=r in t&&await t[r](M(a))||null;n===`rpc`&&e.postMessage({type:`rpc:ack`,command:r,seq:i,payload:je(o)})}),t}function j(e,t,n){if(e==null)return e;let r=typeof e;if(r===`string`||r===`number`||r===`boolean`||r===`bigint`)return e;if(r===`undefined`||r===`symbol`||r===`function`)return;if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||t?.includes(e))return e;if(n.has(e))throw TypeError(`Cannot serialize circular reference`);if(n.add(e),typeof e.toJSON==`function`){let r=e.toJSON();if(r!==e){let i=j(r,t,n);return n.delete(e),i}}if(Array.isArray(e)){let r=Array(e.length);for(let i=0;i<e.length;i++)r[i]=j(e[i],t,n);return n.delete(e),r}if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)return n.delete(e),e;let i={};for(let r of Object.keys(e))i[r]=j(e[r],t,n);return n.delete(e),i}function je(e,t){return j(e,t,new WeakSet)}function Me(e){return typeof e==`object`&&!!e&&`coeff`in e&&`digits`in e&&typeof e.coeff==`bigint`&&typeof e.digits==`bigint`}function M(e){if(e==null)return e;let t=typeof e;if(t===`string`||t===`number`||t===`boolean`||t===`bigint`)return e;if(!(t===`undefined`||t===`symbol`||t===`function`)){if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas)return e;if(Me(e))return b(e);if(Array.isArray(e))return e.map(M);if(e&&typeof e==`object`){let t={};for(let n of Object.keys(e))t[n]=M(e[n]);return t}return e}}const Ne=[[`font-style`,`style`],[`font-weight`,`weight`],[`font-stretch`,`stretch`],[`unicode-range`,`unicodeRange`],[`font-variant`,`variant`],[`font-feature-settings`,`featureSettings`],[`font-display`,`display`],[`ascent-override`,`ascentOverride`],[`descent-override`,`descentOverride`],[`line-gap-override`,`lineGapOverride`]];function Pe(){return{visited:new Set}}function Fe(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):t}function Ie(e,t){return e.replace(/url\(([^)]+)\)/gi,(e,n)=>{let r=n.trim(),i=Fe(r);if(!i)return`url(${n})`;try{let e=new URL(i,t).toString(),n=r.startsWith(`"`)?`"`:r.startsWith(`'`)?`'`:``;return`url(${n}${e}${n})`}catch{return`url(${n})`}})}function Le(e,t){let n=e.style.getPropertyValue(`font-family`),r=e.style.getPropertyValue(`src`),i=Fe(n);if(!i||!r)return null;let a={};for(let[t,n]of Ne){let r=e.style.getPropertyValue(t);r.trim()&&(a[n]=r.trim())}return{family:i,source:t?Ie(r,t):r,desc:a}}function N(){if(typeof document<`u`&&document.baseURI)return document.baseURI;if(typeof location<`u`&&location.href)return location.href}function Re(e,t){try{return t?new URL(e,t).toString():new URL(e).toString()}catch{return null}}function ze(e){try{let t=e.cssRules;return Array.from(t)}catch{return null}}async function Be(e,t,n){let r=[],i=t??N();for(let t of e){if(t.type===CSSRule.FONT_FACE_RULE){let e=Le(t,i);e&&r.push(e);continue}if(t.type===CSSRule.IMPORT_RULE){let e=Re(t.href,i);if(!e)continue;r.push(...await P(e,n))}}return r}async function Ve(e,t,n){let r=ze(e);return r?await Be(r,t??e.href??N(),n):e.href?await P(e.href,n,t):[]}async function P(e,t,n){let r=Re(e,n);if(!r||t.visited.has(r))return[];if(t.visited.add(r),typeof fetch>`u`||typeof CSSStyleSheet>`u`)throw Error(`Failed to load CSS: ${r}`);try{let e=await fetch(r);if(!e.ok)throw Error();let n=await e.text(),i=new CSSStyleSheet;return await i.replace(n),await Ve(i,e.url,t)}catch{throw Error(`Failed to load CSS: ${r}`)}}async function He(e){let t=Pe(),n=[];for(let r of e){if(typeof r==`string`){let e=await P(r,t);n.push(...e);continue}else typeof r.source==`string`&&(r.source=Ie(r.source,location.href));n.push(r)}return n}async function Ue(){if(typeof document>`u`||!document.styleSheets)return[];let e=Pe(),t=[],n=N();for(let r of Array.from(document.styleSheets)){let i;try{i=r}catch{continue}let a=i.href??n;try{let n=await Ve(i,a,e);t.push(...n)}catch{continue}}return t}var We=class{options;constructor(e){this.options=e}loadMeta(e){}},Ge=class extends We{constructor(e){super(e)}async loadChunk(e){let t=await this.options.series.loadChunk(e);return await this.transform(t)}async transform(e){return e}};const Ke={lines:{links:[{draw:`line`}]},"lines:filled":{links:[{draw:`area`},{draw:`line`}]},curves:{links:[{draw:`curve`}]},"curves:filled":{links:[{draw:`curve-area`},{draw:`curve`}]},"steps-start":{links:[{draw:`step-start`}]},"steps-start:filled":{links:[{draw:`step-area-start`},{draw:`step-start`}]},steps:{links:[{draw:`step`}]},"steps:filled":{links:[{draw:`step-area`},{draw:`step`}]},"steps-end":{links:[{draw:`step-end`}]},"steps-end:filled":{links:[{draw:`step-area-end`},{draw:`step-end`}]},points:{marks:[{draw:`circle`}]},linespoints:{links:[{draw:`line`}],marks:[{draw:`circle`}]},"linespoints:filled":{links:[{draw:`area`},{draw:`line`}],marks:[{draw:`circle`}]},curvespoints:{links:[{draw:`curve`}],marks:[{draw:`circle`}]},"curvespoints:filled":{links:[{draw:`curve-area`},{draw:`curve`}],marks:[{draw:`circle`}]},"stepspoints-start":{links:[{draw:`step-start`}],marks:[{draw:`circle`}]},"stepspoints-start:filled":{links:[{draw:`step-area-start`},{draw:`step-start`}],marks:[{draw:`circle`}]},stepspoints:{links:[{draw:`step`}],marks:[{draw:`circle`}]},"stepspoints:filled":{links:[{draw:`step-area`},{draw:`step`}],marks:[{draw:`circle`}]},"stepspoints-end":{links:[{draw:`step-end`}],marks:[{draw:`circle`}]},"stepspoints-end:filled":{links:[{draw:`step-area-end`},{draw:`step-end`}],marks:[{draw:`circle`}]},impulses:{marks:[{draw:`line`,using:[`value`,`zero`]}]},impulsespoints:{marks:[{draw:`line`,using:[`value`,`zero`]},{draw:`circle`}]},boxes:{marks:[{draw:`box`,using:[`value`,`zero`],style:{fillColor:`transparent`}}]},"boxes:filled":{marks:[{draw:`box`,using:[`value`,`zero`]}]}};function qe(e){return Ke[e]??{}}var Je=class extends Ge{marks;links;constructor(e){super(e);let t=typeof e.series.options.chart==`string`?qe(e.series.options.chart):e.series.options.chart??{};this.marks=t.marks,this.links=t.links}async transform(e){let t=e.data?.map(t=>{let n={resolution:e.resolution,data:t.data??{},time:t.time,value:t.value},r=k(this.marks,n);return{...t,marks:r?.map(e=>({...e,style:k(e.style,n)??{}}))??[]}});return{...e,data:t}}async loadMeta({resolution:e}){return{links:k(this.links,{resolution:e})?.map(e=>({...e,style:k(e.style,null)??{}}))??[],color:this.options.series.color,...this.options.series.dataRange}}};function Ye(e){let t=typeof e==`string`?[e,e]:e.length===1?[e[0],e[0]]:e,n=t[0].split(`@`),r=t[1].split(`@`);return[[n[0]||`value`,n[1]||`time`],[r[0]||`value`,r[1]||`time`]]}function Xe(e){return e?{using:e.using??`value`,zoom:e.zoom}:{using:`value`,zoom:void 0}}function Ze(e){let t=({name:e,unit:t,digits:n,value:r})=>{if(r==null)return`No data`;let i=[];return e&&i.push(e),i.push(r.toFixed(n)),t&&i.push(t),i.join(` `)};return typeof e==`boolean`||!e?{format:t}:{...e,format:e.format??t}}var Qe=class extends Ge{#e;#t;constructor(e){super(e),this.#e=Xe(e.series.options.data.instantaneous),this.#t=Ze(e.series.options.tooltip)}async transform(e){let{name:t,unit:n,digits:r}=this.options.series,i=this.#t.format,a=Ye(k(this.#e.using,e))[0],o=e.data?.flatMap(e=>{if(!this.#e)return[];let o=e.time[a[1]],s=e.value[a[0]];return[{time:{time:o},value:s,text:i({time:o,value:s,unit:n,digits:r,name:t})}]});return{...e,data:o}}async loadMeta(e){let t=this.options.series.color;return{...this.options.series.dataRange,color:t}}};const $e=b(1n),et=b(0n),F=60n,I=F*60n,L=I*24n,R=8640000000000n;function z(e,t){let n=e/t,r=e%t;return r!==0n&&r>0n!=t>0n&&(n-=1n),n}function tt(e,t){return e-z(e,t)*t}function nt(e){return e>0n?e:e+1n}function rt(e){return e>0n?e:e-1n}function B(e,t){let n=nt(e),r=t-1n,i=z(r,12n),a=r-i*12n;return{year:rt(n+i),month:a+1n,day:1n}}function V(e,t,n){let r=B(e,t);return at(it(r.year,r.month,n))}function it(e,t,n){let r=nt(e),i=t,a=n;i<=2n&&(r-=1n);let o=r/400n-(r<0n?1n:0n),s=r-o*400n;i+=i>2n?-3n:9n;let c=(153n*i+2n)/5n+a-1n,l=s*365n+s/4n-s/100n+c;return o*146097n+l-719468n}function at(e){let t=e+719468n,n=t/146097n-(t<0n?1n:0n),r=t-n*146097n,i=(r-r/1460n+r/36524n-r/146096n)/365n,a=i+n*400n,o=r-(365n*i+i/4n-i/100n),s=(5n*o+2n)/153n,c=o-(153n*s+2n)/5n+1n,l=s+(s<10n?3n:-9n);return l<=2n&&(a+=1n),{year:rt(a),month:l,day:c}}function ot(e){return e>R?R:e<-R?-R:e}function st(e){let t=ot(e);return-BigInt(Math.floor(new Date(Number(t)*1e3).getTimezoneOffset()))*F}function ct(e){return st(e)}function lt(e){return st(e)}function ut(e){let t=it(e.year,e.month,e.day),n=e.hour*I+e.minute*F+e.second,r=t*L+n;return b(r-lt(r)).add(e.subseconds)}function dt(e){let t=V(e.year,e.month,e.day),n=e.subseconds.modPositive($e),r=e.subseconds.sub(n).integer(),i=e.second+r;return ut({...e,...t,second:i,subseconds:n})}function ft(e){let[t]=e.split(),n=ct(t.integer()),[r,i]=e.add(b(n)).split(),a=r.integer(),o=z(a,L),s=tt(a,L),c=at(o),l=z(s,I),u=s-l*I,d=z(u,F),f=tt(u,F);return{year:c.year,month:c.month,day:c.day,hour:l,minute:d,second:f,subseconds:i}}function H(e,t){return dt({...t(ft(e)),hour:0n,minute:0n,second:0n,subseconds:et})}function U(e,t,n=0n){return t?Array.isArray(t)?t.map(e=>BigInt(e)).filter(t=>t<=e).toSorted().at(-1)??e:(t=BigInt(t),(e-n)/t*t+n):e}function W(e,t,n=0n){return t?Array.isArray(t)?t.map(e=>BigInt(e)).filter(t=>e<t).toSorted().at(0):(t=BigInt(t),((e-n)/t+1n)*t+n):e}function pt(e,t){return H(e,e=>({...V(e.year,e.month,U(e.day,t,1n))}))}function mt(e,t){return H(e,e=>{let n=W(e.day,t,1n);return n?V(e.year,e.month,n):B(e.year,W(e.month,1n,1n))})}function ht(e,t){return H(e,e=>B(e.year,U(e.month,t,1n)))}function gt(e,t){return H(e,e=>B(e.year,W(e.month,t,1n)))}function _t(e,t){return H(e,e=>{let n=U(e.year<=0n?e.year-1n:e.year,t,0n);return{year:n<=0n?n+1n:n,month:1n,day:1n}})}function vt(e,t){return H(e,e=>{let n=W(e.year<=0n?e.year-1n:e.year,t);return{year:n<=0n?n+1n:n,month:1n,day:1n}})}function yt(e,t){let n=b(t),r=pt(e,1n);return e.sub(r).floorBy(n).add(r)}function bt(e,t){return e.add(b(t))}function xt(e,t){return e===!1?null:((e===!0||e==null)&&(e=t),e)}const St={s:0n,ms:3n,us:6n,ns:9n};function Ct({time:e,digits:t}){return t>0?e.toFixed(t):e.toString()}function G(e,t,n){if(t===n)return e;let r=St[t]??0n,i=(St[n]??0n)-r;return e.shift10(i)}function*wt(e,t,n){if(!e[0]||!e[1])return;let r=n.timeFormat??Ct,i=b(C.defaultChunkSize),a=t.mul(i).log(10).round().integer(),o=b(10).pow(a,-a),s=t.mul(b(20)),c=[10n,5n,1n],l=o,u=1n;for(let e of c){let t=o.div(b(e));if(!t.lt(s)){l=t,u=e;break}}if(l.isZero())return;let d=b(u),f=b(1n),p=e[0].div(l).floor().sub(f),m=Math.max(0,-l.log(10).floor().number());for(let t=0;t<1e6;t+=1){p=p.add(f);let t=l.mul(p);if(t.ge(e[1]))break;if(t.lt(e[0]))continue;let i=p.mod(d).isZero();yield{time:{time:t},major:i,tick:!0,text:i?r({time:t,unit:n.timeUnit??`s`,level:`relative`,digits:m,stride:void 0}):``}}}function K(e){return{align:t=>yt(t,e),next:t=>bt(t,e)}}function q(e){return e=e.mul(60),{align:t=>yt(t,e),next:t=>bt(t,e)}}function J(e){return e=e.mul(3600),{align:t=>yt(t,e),next:t=>bt(t,e)}}function Y(e){return{align:t=>pt(t,e),next:t=>mt(t,e)}}function X(e){return{align:t=>ht(t,e),next:t=>gt(t,e)}}function Tt(e){return{align:t=>_t(t,e),next:t=>vt(t,e)}}const Et=[{ops:K,stride:1,step:1},{ops:K,stride:5,step:5},{ops:K,stride:10,step:10},{ops:K,stride:15,step:15},{ops:K,stride:30,step:30},{ops:q,stride:1,step:1},{ops:q,stride:5,step:5},{ops:q,stride:10,step:10},{ops:q,stride:15,step:15},{ops:q,stride:30,step:30},{ops:J,stride:1,step:1},{ops:J,stride:3,step:3},{ops:J,stride:6,step:6},{ops:J,stride:12,step:12},{ops:Y,stride:1,step:1},{ops:Y,stride:10,step:[1,10,20]},{ops:X,stride:1,step:1},{ops:X,stride:3,step:3}],Dt=b(86400),Ot=b(`2629800`),kt=b(`31557600`),At=b(60),jt=b(20),Mt=[1n,5n],Nt=[1n,5n],Pt=[`subsecond`,`second`,`minute`,`hour`,`day`,`month`,`year`];function Ft(e){switch(e.ops){case K:return`second`;case q:return`minute`;case J:return`hour`;case Y:return`day`;case X:return`month`;default:throw Error(`Unknown calendar definition`)}}function It(e){let{ops:t,step:n}=e;if(t===K||t===q||t===J)return t(b(n));if(t===Y||t===X)return t(Array.isArray(n)?n.map(e=>BigInt(e)):BigInt(n));throw Error(`Unsupported definition`)}function Lt(e){let t=b(BigInt(e.stride));switch(Ft(e)){case`second`:return b(e.step);case`minute`:return b(e.step).mul(60);case`hour`:return b(e.step).mul(3600);case`day`:return t.mul(Dt);case`month`:return t.mul(Ot);default:return b(0)}}const Rt=Et.map(e=>({level:Ft(e),stride:BigInt(e.stride),duration:Lt(e),digits:0,create:()=>It(e),source:e})).sort((e,t)=>e.duration.lt(t.duration)?-1:e.duration.gt(t.duration)?1:0),zt=Rt.reduce((e,t)=>{let n=e.get(t.level);return n?n.push(t):e.set(t.level,[t]),e},new Map);function Bt(e){if(e.digits<=0n)return 0;let t=e.digits,n=BigInt(2**53-1);return t>n&&(t=n),Number(t)}function Vt(e,t,n){return{level:`subsecond`,stride:1n,duration:e,digits:Bt(e),create:()=>K(e),subsecondMetadata:{exponent:t,factor:n}}}function Ht(e,t,n){let r=t&&t.lt(b(1))?t:b(1),i=e.lt(b(1));if(!i&&!n)return null;let a=i?e:b(1),o;a.isPositive()?(o=a.log(10).floor().integer(),o>=0n&&(o=-1n)):o=-1n;let s=null;for(let e=o;e<0n;e+=1n){let t=b(10).pow(e,-e);for(let n of Mt){let i=t.mul(b(n));if(i.lt(r)){if(a.isZero()||!i.lt(a))return Vt(i,e,n);(!s||s.step.lt(i))&&(s={step:i,exponent:e,factor:n})}}}return n&&s?Vt(s.step,s.exponent,s.factor):null}function Ut(e){let t=e.isPositive()?e:b(0);for(let e of Rt)if(t.isZero()||!e.duration.lt(t))return e;return null}function Wt(e,t,n,r){let i=zt.get(e);if(!i)return null;let a=t.isPositive()?t:b(0),o=null;for(let e of i){if(n&&!e.duration.lt(n))break;if(a.isZero()||!e.duration.lt(a))return e;o=e}return r&&o?o:null}function Gt(e){if(e<=0n)return 1n;let t=1n,n=10n,r=e;for(;r>0n;)(r&1n)==1n&&(t*=n),n*=n,r>>=1n;return t}function Kt(e){return{level:`year`,stride:e,duration:b(e).mul(kt),digits:0,create:()=>Tt(e),yearStride:e}}function qt(e){let t=e.isPositive()?e:b(0);if(t.isZero())return Kt(1n);let n=t.div(kt).log(10).floor().integer();n<0n&&(n=0n);for(let e=n;;e+=1n){let n=Gt(e);for(let e of Nt){let r=Kt(n*e);if(!r.duration.lt(t))return r}}}function Jt(e){return Pt.indexOf(e)}function Yt(e,t){let n=Jt(e.level);if(n<=0)return null;let r=Pt[n-1],i=e.duration;if(e.level===`year`){for(let n of[5n,4n,2n]){if(e.stride%n!==0n)continue;let r=e.stride/n;if(r<=0n)continue;let i=Kt(r);if(!i.duration.lt(t)&&i.duration.lt(e.duration))return i}let n=qt(t);return n.duration.lt(e.duration)?n:null}if(e.level===`subsecond`){let n=Ht(t,e.duration,!0);return n&&n.duration.lt(e.duration)?n:null}let a=e.level,o=zt.get(a)??[];for(let n=o.length-1;n>=0;--n){let r=o[n];if(r.duration.lt(e.duration)&&!r.duration.lt(t))return r}if(r===`subsecond`){let n=Ht(t,i,!0);return n&&n.duration.lt(e.duration)?n:null}return r===`year`?null:Wt(r,t,i,!0)}function Xt(e){if(!e||!e.isPositive())return null;let t=e.mul(At),n=e.mul(jt),r=Ht(t,null,!1);if(r||=Ut(t),r||=qt(t),!r)return null;let i=Yt(r,n);return{level:r.level,major:r.create(),minor:i?i.create():null,digits:r.digits,stride:r.stride}}function Zt(e){return e.replace(/[0-9]/g,e=>String.fromCodePoint(e.charCodeAt(0)-48+8320))}function Qt(e){let{time:t,unit:n}=e,r=e,{year:i,month:a,day:o,hour:s,minute:c,second:l,subseconds:u}=ft(G(t,n,`s`)),d=(e,t)=>e.toString().padStart(t,`0`),f=e=>d(e,2),p=e=>e>0n?e.toString():` ${(1n-e).toString()} BC`,m=()=>`${f(a)}/${f(o)}`,h=()=>`${f(s)}:${f(c)}`,g=r.digits>0?`.`+Zt(u.toFixed(r.digits).split(`.`)[1]):``,_=()=>`${f(s)}:${f(c)}:${f(l)}${g}`;switch(r.level){case`subsecond`:case`second`:return s===0n&&c===0n&&l===0n&&u.eq(0)?m():_();case`minute`:case`hour`:return s===0n&&c===0n?m():h();case`day`:return m();case`month`:if((r.stride??1n)===3n){let e=Math.floor((Number(a)-1)/3)+1;return e===1?`${p(i)} Q${e}`:`Q${e}`}return`${p(i)}/${f(a)}`;case`year`:default:return p(i)}}function $t(e,t,n){if(!e)return null;let r=e.next(t);return!r||r.le(t)||r.ge(n)?null:r}function*en(e,t,n){if(!e[0]||!e[1])return;let r=n.timeUnit??`s`,i=n.timeFormat??Qt,a=G(e[0],r,`s`),o=G(e[1],r,`s`);if(o.le(a))return;t=G(t,r,`s`);let s=Xt(t);if(!s)return;let c=s.major.align(a),l=s.minor?.align(a)??null;for(;c||l;){if(c!=null&&(l==null||c.le(l))&&c){if(a.le(c)){let e=G(c,`s`,r);yield{time:{time:e},major:!0,tick:!0,text:i({time:e,unit:r,...s})}}l&&l.eq(c)&&(l=$t(s.minor,l,o)),c=$t(s.major,c,o);continue}l&&=(a.le(l)&&(yield{time:{time:G(l,`s`,r)},major:!1,tick:!0,text:``}),$t(s.minor,l,o))}}var tn=class extends We{constructor(e){e={...e,timeAxis:xt(e.timeAxis,{timeUnit:`s`})},super(e)}async loadChunk(e){let t=[...this.options.timeAxis.relative?wt(e.range,e.resolution,this.options.timeAxis):en(e.range,e.resolution,this.options.timeAxis)].map(e=>({...e,time:{time:e.time.time,_minTime:e.time.time,_maxTime:e.time.time}}));return{...e,data:t}}},nn=class{#e;#t;constructor(e){let{maxSize:t}=e;if(!(typeof t==`number`&&Number.isFinite(t)&&t>0))throw TypeError("`maxSize` must be a number greater than 0");this.#e=Math.floor(t),this.#t=new Map}get size(){return this.#t.size}get maxSize(){return this.#e}get(e){if(!this.#t.has(e))return;let t=this.#t.get(e);return this.#t.delete(e),this.#t.set(e,t),t}set(e,t){if(this.#t.has(e)&&this.#t.delete(e),this.#t.set(e,t),this.#t.size>this.#e){let e=this.#t.keys().next().value;e!==void 0&&this.#t.delete(e)}return this}has(e){return this.#t.has(e)}delete(e){return this.#t.delete(e)}clear(){this.#t.clear()}*keys(){let e=Array.from(this.#t.keys());for(let t=e.length-1;t>=0;t--)yield e[t]}*values(){for(let[,e]of this)yield e}*entries(){yield*this[Symbol.iterator]()}*[Symbol.iterator](){let e=Array.from(this.#t.entries());for(let t=e.length-1;t>=0;t--)yield e[t]}};function rn(e,t,n=C.defaultChunkSize){let r=Ce(t),i=r.mul(n);if(!e[0]||!e[1]||!i.isPositive())return[{id:`z${t}`,seq:0n,expires:1/0,range:e,resolution:r,zoom:t}];let a=[],o=e[1].add(i);for(let n=e[0];n.le(o);n=n.add(i)){let e=n.div(i).floor().integer(),o=[i.mul(e),i.mul(e+1n)],s=`z${t}:seq${e}`;a.push({id:s,seq:e,expires:1/0,range:o,resolution:r,zoom:t})}return a}function an(e){return!!(x(e)||typeof e==`number`||typeof e==`string`||typeof e==`bigint`)}function on(e){return e==null?{shrink:!0,expand:!0,default:[b(0),void 0]}:Array.isArray(e)?{shrink:!0,expand:!0,default:e.map(b)}:typeof e==`number`||an(e)?{shrink:!0,expand:!0,default:[b(0),b(e)]}:e.default!=null&&!Array.isArray(e.default)?{shrink:e.shrink??!0,expand:e.expand??!0,default:[b(0),b(e.default)]}:{shrink:e.shrink??!0,expand:e.expand??!0,default:(e.default??[0,void 0]).map(b)}}function sn(e,t){return e._minTime?.le(t[1])&&t[0]?.le(e._maxTime)}var cn=class{#e;#t;#n;#r=new nn({maxSize:256});#i={};#a;constructor(e){this.#e=e.options,this.#t=e.sources,this.#a=e.options.data.color,this.#n=on(e.options.data.range)}get name(){return this.#e.data.name??``}get digits(){return this.#e.data.digits??1}get unit(){return this.#e.data.unit??``}get zoomLevels(){return this.#t[this.#e.data.source].zoomLevels}get chunkSize(){return this.#t[this.#e.data.source].chunkSize}get options(){return this.#e}async loadChunk(e){let t=await this.#t[this.#e.data.source].loadChunk(e),n=this.#e.data.parser?.(t.data)??t.data;if(!Array.isArray(n))throw Error(`Invalid data from the source after parsed.`);let r=Object.fromEntries((Array.isArray(this.#e.data.time)?this.#e.data.time.map(e=>[e,e]):Object.entries(typeof this.#e.data.time==`string`||this.#e.data.time==null?{time:this.#e.data.time??`time`}:this.#e.data.time)).map(([e,t])=>[e,typeof t==`function`?t:ye(t)])),i=Object.fromEntries((Array.isArray(this.#e.data.value)?this.#e.data.value.map(e=>[e,e]):Object.entries(typeof this.#e.data.value==`string`||this.#e.data.value==null?{value:this.#e.data.value??`value`}:this.#e.data.value)).map(([e,t])=>[e,typeof t==`function`?t:ye(t)])),a=n.map(e=>{let t=Object.fromEntries(Object.entries(r).map(([t,n])=>[t,E(n(e))])),n=Object.fromEntries(Object.entries(i).map(([t,n])=>[t,re(n(e))]).filter(([,e])=>e!==void 0)),[a,o]=S(...Object.values(t));return t._minTime=a,t._maxTime=o,{time:t,value:n,data:e}});return this.#r.set(t.id,a),{...t,data:a}}updateDataRange(e,t){t=we(t,this.zoomLevels);let[n,r]=S(...rn(e,t,this.chunkSize).flatMap(({id:t})=>{let n=this.#r.get(t);return n?n.flatMap(t=>sn(t.time,e)?S(...Object.values(t.value)):[]):[]}));n==null||r==null||(this.#i={min:this.#n.default[0]==null?n:this.#n.expand?b.min(n,this.#n.default[0],...this.#n.shrink?[]:[this.#i.min]):this.#n.default[0],max:this.#n.default[1]==null?r:this.#n.expand?b.max(r,this.#n.default[1],...this.#n.shrink?[]:[this.#i.max]):this.#n.default[1]})}get color(){return this.#a}get dataRange(){let e=b.max(this.#i.min?.abs(),this.#i?.max?.abs());return{...this.#i,amp:e}}};function ln(e){return new cn(e)}var un=class extends T{#e=`initial`;#t;#n;#r;#i;#a;#o;#s;get id(){return this.#o}get seq(){return this.#s}get range(){return this.#t}get resolution(){return this.#n}get zoom(){return this.#r}get state(){return this.#e}get expired(){return this.#e!==`loaded`&&this.#e!==`error`||this.#c<=Date.now()}#c=0;get expires(){return this.#c}setExpires(e){this.#c=e}invalidate(){this.#c=0}constructor(e){super(),this.#o=e.id,this.#s=e.seq,this.#t=e.range,this.#n=e.resolution,this.#r=e.zoom,this.#i=e.loader}reload(){return this.load(!0)}async load(e=!1){if(this.#a&&(this.#e===`loading`||!e&&!this.expired))return await this.#a;this.#e=`loading`,this.#c=1/0;try{let e={id:this.#o,seq:this.#s,expires:1/0,range:this.#t.map(e=>e?.clone()),zoom:this.#r,resolution:this.#n.clone()};return this.#a=this.#i(e,{expiresAt:t=>e.expires=t,expiresIn:t=>e.expires=t+Date.now()}).then(t=>(this.#e=`loaded`,this.#c=e.expires??1/0,this.changed(),t||null)),await this.#a}catch(e){return console.error(e),this.#e=`error`,this.changed(),null}}};function Z(e){return async(t,n)=>{let r=await e(t,n);return r instanceof Response?await r.json():r}}var Q=class extends T{#e=new nn({maxSize:1e3});zoomLevels;chunkSize;loader;constructor(e){if(super(),this.chunkSize=e.chunkSize||C.defaultChunkSize,this.zoomLevels=e.zoomLevels,`loader`in e)this.loader=Z(e.loader);else if(`data`in e)this.zoomLevels=[0],this.chunkSize=0,this.loader=async()=>e.data;else if(`url`in e)e.url.match(/{[a-zA-Z]+}/)?this.loader=Z(async t=>{let n=e.url.replace(/{[a-zA-Z]+}/g,e=>{switch(e.substring(1,e.length-1)){case`z`:case`zoom`:return t.zoom.toString();case`r`:case`resolution`:return t.resolution.rescale().toString();case`s`:case`start`:return t.range[0].rescale().toString();case`e`:case`end`:return t.range[1].rescale().toString();default:return console.warn(`Unknown template string is found in the URL: `+e),e}});return await fetch(n)}):(this.zoomLevels=[0],this.chunkSize=0,this.loader=Z(()=>fetch(e.url)));else throw Error(`No source`)}async loadChunk({id:e,seq:t,range:n,resolution:r,zoom:i}){let a=this.#t(e,t,n,r,i),o=await a.load()??void 0;return{id:e,seq:t,expires:a.expires,range:n,resolution:r,zoom:i,data:o}}#t(e,t,n,r,i){let a=this.#e.get(e);return a||(a=new un({id:e,seq:t,loader:this.loader,range:n,resolution:r,zoom:i}),this.#e.set(e,a)),a}async loadData(e,t){t=we(t,this.zoomLevels);let n=rn(e,t,this.chunkSize);return await Promise.all(n.map(e=>this.loadChunk(e)))}async expireChunks(e){for(let t of this.#e.values())(!e||!t.range[1]||t.range[1].gt(e[0])||!t.range[0]||t.range[0].lt(e[1]))&&t.invalidate();this.changed()}};function dn(e){return typeof e==`string`?new Q({url:e}):typeof e==`function`?new Q({loader:e}):e instanceof Q?e:typeof e==`object`&&e&&[`url`,`loader`,`data`].some(t=>t in e)?new Q(e):new Q({data:e})}function fn(e={}){let t=URL.createObjectURL(new Blob([`URL.revokeObjectURL(self.location.href);`,"(function(){function e(e,t=`Digits must be an integer`){if(typeof e==`number`){if(!Number.isFinite(e)||!Number.isInteger(e))throw Error(t);return BigInt(e)}return e}function t(t){let n=e(t);return n<0n?0n:n}function n(e){let t=Number(e);return t<b.length?b[t]:5n**BigInt(e)}function r(e){let t=Number(e);return t<x.length?x[t]:10n**BigInt(e)}function i(e,t,n){let r=BigInt(t);if(r<=0n)return new g(1n);let i=new g(1n),a=e.clone();for(;r&1n&&i.mul$(a,n),r>>=1n,r!==0n;)a.mul$(a,n);return i}function a(e,t,n,r){if(t.isZero()||r<=0)return new g(1n);let{guardPrec:a,rootPrec:s}=f(n,r),c=o(t.coeff).toString().padStart(r,`0`),l=e.round(s),u=new g(1n);for(let e=0;e<r;e++){l=l.root(10n,s);let t=c.charCodeAt(e)-48;if(t<=0)continue;let n=i(l.clone(),t,a);u.mul$(n,a)}return u.round$(n)}function o(e){return e<0n?-e:e}function s(e){if(e===``)throw Error(`Invalid number`);let t=1n,n=e;if(n[0]===`-`?(t=-1n,n=n.slice(1)):n[0]===`+`&&(n=n.slice(1)),n===``)throw Error(`Invalid number`);let r=n.indexOf(`.`),i=n,a=``;r>=0&&(i=n.slice(0,r),a=n.slice(r+1)),i===``&&(i=`0`);let o=(i+a).replace(/^0+/,``),s=o===``?`0`:o;return{coeff:t*BigInt(s),digits:BigInt(a.length)}}function c(e){let t=e.search(/[eE]/);if(t===-1)return s(e);let n=e.slice(0,t),r=e.slice(t+1);if(r.trim()===``)throw Error(`Invalid number`);let{coeff:i,digits:a}=s(n);return{coeff:i,digits:a-BigInt(r)}}function l(e,t){let n=e.digits>t.digits?e.digits:t.digits,i=n-e.digits,a=n-t.digits;return{digits:n,aCoeff:e.coeff*r(i),bCoeff:t.coeff*r(a)}}function u(e){let t=Math.max(0,Number(e));return Math.min(2**53-1,t)}function d(e,t,n){let r=u(t),i=u(n),a=Math.max(r,i)+1,o=Math.max(a,1),s=e+o;for(;;){let t=Math.ceil(s*v)+o,n=Math.max(t*2,1),r=Math.max(a,Math.ceil(Math.log10(n))+1);if(r<=o){let e=s+o;return{guardPrec:o,fracPrec:s,bits:t,divPrec:e}}o=r,s=e+o}}function f(e,t){let n=Math.max(1,t),r=Math.max(6,Math.ceil(Math.log10(n*4))+2),i=e+BigInt(r);return{guardPrec:i,rootPrec:i+BigInt(Math.max(r,6))}}function p(e,t){let n=Math.max(1,t.toString().replace(`-`,``).length),r=Math.max(12,n+4);return{iterPrec:e+BigInt(r),stopShift:e+2n}}function m(e,t,n,r){let i=[],a=[],o=new g(t),s=1n,c=n+Math.max(r,1);for(;o.le(e);)i.push(o),a.push(s),o=o.mul(o),s*=2n;let l=new g(e),u=0n;for(let e=i.length-1;e>=0;e--){let t=i[e];l.ge(t)&&(l.div$(t,c),u+=a[e])}return{exponent:u,remainder:l}}function h(e,t,n,r){let i=n+Math.max(r,1);if(e.eq(y))return{exponent:0n,remainder:y.clone()};if(e.ge(y))return m(e,t,n,r);let a=m(y.div(e,i),t,n,r);return a.remainder.eq(y)?{exponent:-a.exponent,remainder:y.clone()}:{exponent:-a.exponent-1n,remainder:y.div(a.remainder,i).mul$(t)}}var g=class s{coeff;digits;constructor(e,t){if(typeof e==`number`){if(e!==e||e===1/0||e===-1/0)throw Error(`Invalid number`);({coeff:this.coeff,digits:this.digits}=c(e.toString()))}else if(typeof e==`string`){let t=e.trim();if(t===``)throw Error(`Invalid number`);({coeff:this.coeff,digits:this.digits}=c(t))}else if(typeof e==`bigint`)this.coeff=e,this.digits=t??0n;else if(typeof e==`object`&&e&&`coeff`in e&&typeof e.coeff==`bigint`&&`digits`in e&&typeof e.digits==`bigint`)this.coeff=e.coeff,this.digits=e.digits;else throw Error(`Invalid input type for Decimal`)}clone(){return new s({coeff:this.coeff,digits:this.digits})}#e(e,t=0n){return C(e)&&(t=e.digits,e=e.coeff),this.coeff=e,this.digits=t,this}#t(e,t,n){let i=this.coeff,a=e.coeff,s=e.digits+t-this.digits;s>=0n?i*=r(s):a*=r(-s);let c=i/a,l=i-c*a;if(l!==0n&&n!==`trunc`){let e=i>=0n;switch(n){case`floor`:e||(c-=1n);break;case`ceil`:e&&(c+=1n);break;case`round`:{let t=o(l),n=a<0n?-a:a;t*2n>=n&&(c+=e?1n:-1n);break}default:break}}return this.#e(c,t)}#n(t,n=`trunc`){let i=e(t);if(this.isZero())return this.digits=i,this;if(i===this.digits)return this;if(i>this.digits){let e=r(i-this.digits);return this.coeff*=e,this.digits=i,this}return this.#t(y,i,n)}#r(){if(this.coeff===0n)return this.digits=0n,this;if(this.digits<=0n)return this;for(;this.digits>0n&&this.coeff%10n==0n;)this.coeff/=10n,this.digits-=1n;return this}round$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`round`)}round(e=0,t=!1){return this.clone().round$(e,t)}roundBy$(e,t=`round`){let n=new s(e).abs();if(n.isZero())throw Error(`Cannot align to zero`);return this.div$(n,0n,t).mul$(n)}roundBy(e,t=`round`){return this.clone().roundBy$(e,t)}floor$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`floor`)}floor(e=0,t=!1){return this.clone().floor$(e,t)}floorBy$(e){return this.roundBy$(e,`floor`)}floorBy(e){return this.clone().floorBy$(e)}ceil$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`ceil`)}ceil(e=0,t=!1){return this.clone().ceil$(e,t)}ceilBy$(e){return this.roundBy$(e,`ceil`)}ceilBy(e){return this.clone().ceilBy$(e)}trunc$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`trunc`)}trunc(e=0,t=!1){return this.clone().trunc$(e,t)}rescale$(e,t=`trunc`){return e==null?this.#r():this.#n(e,t)}rescale(e,t=`trunc`){return this.clone().rescale$(e,t)}truncBy$(e){return this.roundBy$(e,`trunc`)}truncBy(e){return this.clone().truncBy$(e)}#i(e){let t=this.clone();return e(this),[this,t.sub$(this)]}split$(e,t=`floor`){return this.#i(n=>n.#n(e??0n,t))}split(e,t=`floor`){return this.clone().split$(e,t)}splitBy$(e,t=`floor`){return this.#i(n=>n.roundBy$(e,t))}splitBy(e,t=`floor`){return this.clone().splitBy$(e,t)}neg$(e){return e!==!1&&(this.coeff=-this.coeff),this}neg(e){return this.clone().neg$(e)}isZero(){return this.coeff===0n}isPositive(){return this.coeff>0n}isNegative(){return this.coeff<0n}add$(e){let t=S(e),{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r+i,this.digits=n,this}add(e){return this.clone().add$(e)}sub$(e){let t=S(e),{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r-i,this.digits=n,this}sub(e){return this.clone().sub$(e)}mul$(e,t){let n=S(e);return this.coeff*=n.coeff,this.digits+=n.digits,t!==void 0&&this.round$(t),this}mul(e,t){return this.clone().mul$(e,t)}shift10$(t){let n=e(t,`Shift amount must be an integer`);return n===0n||(this.digits-=n),this}shift10(e){return this.clone().shift10$(e)}inverse$(e=_){if(this.isZero())throw Error(`Division by zero`);let n=t(e),r=this.clone();return this.#e(1n).div$(r,n)}inverse(e=_){return this.clone().inverse$(e)}div$(e,n,r=`round`){let i=n===void 0,a=t(n??_),o=S(e);if(o.isZero())throw Error(`Division by zero`);return this.isZero()?this:(this.#t(o,a,r),i?this.#r():this)}div(e,t,n=`round`){return this.clone().div$(e,t,n)}abs$(){return this.isNegative()&&(this.coeff=-this.coeff),this}abs(){return this.clone().abs$()}mod$(e){let t=S(e);if(t.isZero())throw Error(`Division by zero`);let{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r%i,this.digits=n,this}mod(e){return this.clone().mod$(e)}modPositive$(e){let t=S(e);if(t.isNegative())throw Error(`Modulo divisor must be positive`);return this.mod$(t),this.isNegative()&&this.add$(t),this}modPositive(e){return this.clone().modPositive$(e)}clamp$(e,t){let n=S(e),r=S(t);if(n&&r&&n.gt(r))throw Error(`Invalid clamp range`);return n&&this.lt(n)?(this.coeff=n.coeff,this.digits=n.digits,this):r&&this.gt(r)?(this.coeff=r.coeff,this.digits=r.digits,this):this}clamp(e,t){return this.clone().clamp$(e,t)}cmp(e){let t=S(e),{aCoeff:n,bCoeff:r}=l(this,t);return n===r?0:n>r?1:-1}eq(e){return this.cmp(e)===0}neq(e){return this.cmp(e)!==0}lt(e){return this.cmp(e)<0}gt(e){return this.cmp(e)>0}le(e){return this.cmp(e)<=0}ge(e){return this.cmp(e)>=0}between(e,t){let n=S(e),r=S(t);if(n&&r&&n.gt(r))throw Error(`Invalid between range`);return!(n&&this.lt(n)||r&&this.gt(r))}isCloseTo(e,t){let n=S(t);if(n.isNegative())throw Error(`Tolerance must be non-negative`);return this.sub(e).abs$().le(n)}pow$(e,n=_){let r=t(n),o=S(e);if(o.isZero())return this.#e(1n);if(this.isZero()){if(o.isNegative())throw Error(`Zero to negative exponent is undefined`);return this}let s=o.isNegative(),[c,l]=o.abs().split$(),u=this.clone(),d=l.isZero()?0:Number(l.digits);if(u.isNegative()&&d>0)throw Error(`Fractional exponent requires non-negative base`);let f=i(u,c.coeff),p=r;d>0&&(p=r+BigInt(Math.max(4,d)));let m=a(u,l,p,d);d>0&&f.mul$(m,p);let h=p>r?p:r,g=d>0?p:r;return s?this.#e(1n).div$(f,h):(f.round$(h,!0),this.#e(f)),this.round$(g,g===0n),this}pow(e,t=_){return this.clone().pow$(e,t)}root$(n,r=_){let a=e(n,`Root degree must be an integer`);if(a<=0n)throw Error(`Invalid root degree`);let o=t(r);if(a===1n)return o<this.digits?this:this.trunc$(o,!0);if(this.isZero())return this;let c=this.isNegative();if(c&&a%2n==0n)throw Error(`Even root of negative value is not defined`);let l=this.abs(),u=a-1n,{iterPrec:d,stopShift:f}=p(o,a),m=w(-f),h=(()=>{let e=l.number();if(Number.isFinite(e)&&e>0){let t=Number(a);if(t>0){let n=e**(1/t);if(Number.isFinite(n)&&n>0)return new s(n).round$(d,!0)}}return new s(w(l.order()/a)).round$(d,!0)})();this.#e(h.coeff,h.digits),this.isZero()&&this.#e(1n);for(let e=0;e<64;e++){let e=i(this.clone(),u,d);if(e.isZero())break;let t=l.div(e,d),n=this.mul(u,d).add$(t).div$(a,d);if(n.isCloseTo(this,m)||n.eq(this)){this.#e(n);break}this.#e(n)}return this.round$(d,!0),this.round$(o,o===0n),c&&this.neg$(),this}root(e,t=_){return this.clone().root$(e,t)}sqrt$(e=_){return this.root$(2n,e)}sqrt(e=_){return this.clone().sqrt$(e)}log$(e,r=_){let i=Number(t(r)),a=new s(e);if(!this.isPositive())throw Error(`Logarithm argument must be positive`);if(!a.isPositive())throw Error(`Logarithm base must be positive`);if(a.eq(y))throw Error(`Logarithm base cannot be one`);let{guardPrec:o,fracPrec:c,bits:l,divPrec:u}=d(i,a.digits,this.digits),f=a.lt(y),p=f?y.div(a,u):a,{exponent:m,remainder:g}=h(this,p,c,o);if(this.#e(m),c>0){let e=0n;for(let t=0;t<l;t++)g.mul$(g,u),e<<=1n,g.ge(p)&&(g.div$(p,u),e|=1n);e!==0n&&this.add$({coeff:e*n(l),digits:BigInt(l)})}let v=i===0?0:c;return this.round$(v),f&&this.neg$(),this}log(e,t=_){return this.clone().log$(e,t)}sign$(){return this.isZero()?this:(this.coeff=this.coeff<0n?-1n:1n,this.digits=0n,this)}sign(){return this.clone().sign$()}order(){if(this.isZero())throw RangeError(`order undefined for 0`);return BigInt(o(this.coeff).toString().length)-1n-this.digits}toFixed(t){let n=`Fraction digits must be a non-negative integer`,r=e(t,n);if(r<0n)throw Error(n);return this.round(r,!0).toString()}toString(){if(this.coeff===0n)return this.digits<=0n?`0`:`0.${`0`.repeat(Number(this.digits))}`;let e=this.coeff<0n,t=e?`-`:``,n=(e?-this.coeff:this.coeff).toString();if(this.digits<=0n)return`${t}${n}${`0`.repeat(Number(-this.digits))}`;let r=Number(this.digits),i=n.padStart(r+1,`0`),a=i.length-r;return`${t}${i.slice(0,a)}.${i.slice(a).padEnd(r,`0`)}`}[Symbol.for(`nodejs.util.inspect.custom`)](e,t){return`colors`in t&&t?.colors?`\\x1b[33m${this.toString()}\\x1b[m \\x1b[90m(${this.coeff} * 10 ** ${-this.digits})\\x1b[m`:this.toString()}number(){return Number(this.toString())}integer(){return this.digits<=0n?this.coeff*r(-this.digits):this.coeff/r(this.digits)}};let _=18n,v=Math.log2(10),y=new g(1n),b=[],x=[];(function(){for(let e=0;e<256;e++)x[e]=10n**BigInt(e),b[e]=5n**BigInt(e)})();function S(e){return e==null||C(e)?e:new g(e)}(function(e){function t(e){return e instanceof g}e.isDecimal=t;function n(e){return!!(t(e)||typeof e==`string`||typeof e==`number`||typeof e==`bigint`||typeof e==`object`&&e&&`coeff`in e&&`digits`in e&&typeof e.coeff==`bigint`&&typeof e.digits==`bigint`)}e.isDecimalLike=n;function r(e){return new g({coeff:1n,digits:-BigInt(e)})}e.pow10=r;function i(...e){let t=null,n=null;for(let r=0;r<e.length;r++){let i=S(e[r]);i!=null&&((t===null||i.lt(t))&&(t=i),(n===null||i.gt(n))&&(n=i))}return[t,n]}e.minmax=i;function a(...e){return i(...e)[0]}e.min=a;function o(...e){return i(...e)[1]}e.max=o})(S||={});let C=S.isDecimal;S.isDecimalLike;let w=S.pow10;S.minmax,S.min,S.max;let ee=0;function te(e){return function(t,n,r={rpc:!1}){let i=++ee;return e.postMessage({type:r.rpc?`rpc`:`event`,command:t,seq:i,payload:re(n,r.transfer)},r.transfer??[]),r.rpc?new Promise(n=>{let r=a=>{a.data.type===`rpc:ack`&&a.data.command===t&&a.data.seq===i&&(e.removeEventListener(`message`,r),n(E(a.data?.payload)))};e.addEventListener(`message`,r)}):Promise.resolve()}}function ne(e,t){return e.addEventListener(`message`,async({data:{type:n,command:r,seq:i,payload:a}})=>{let o=r in t&&await t[r](E(a))||null;n===`rpc`&&e.postMessage({type:`rpc:ack`,command:r,seq:i,payload:re(o)})}),t}function T(e,t,n){if(e==null)return e;let r=typeof e;if(r===`string`||r===`number`||r===`boolean`||r===`bigint`)return e;if(r===`undefined`||r===`symbol`||r===`function`)return;if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||t?.includes(e))return e;if(n.has(e))throw TypeError(`Cannot serialize circular reference`);if(n.add(e),typeof e.toJSON==`function`){let r=e.toJSON();if(r!==e){let i=T(r,t,n);return n.delete(e),i}}if(Array.isArray(e)){let r=Array(e.length);for(let i=0;i<e.length;i++)r[i]=T(e[i],t,n);return n.delete(e),r}if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)return n.delete(e),e;let i={};for(let r of Object.keys(e))i[r]=T(e[r],t,n);return n.delete(e),i}function re(e,t){return T(e,t,new WeakSet)}function ie(e){return typeof e==`object`&&!!e&&`coeff`in e&&`digits`in e&&typeof e.coeff==`bigint`&&typeof e.digits==`bigint`}function E(e){if(e==null)return e;let t=typeof e;if(t===`string`||t===`number`||t===`boolean`||t===`bigint`)return e;if(!(t===`undefined`||t===`symbol`||t===`function`)){if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas)return e;if(ie(e))return S(e);if(Array.isArray(e))return e.map(E);if(e&&typeof e==`object`){let t={};for(let n of Object.keys(e))t[n]=E(e[n]);return t}return e}}function ae(e,...t){return typeof e==`function`?e(...t):Array.isArray(e)?e.map(e=>ae(e,...t)):typeof e==`object`&&e?Object.fromEntries(Object.entries(e).map(([e,n])=>[e,ae(n,...t)])):e}function oe(e){return Object.prototype.toString.call(e)===`[object Object]`}function D(e,t){for(let n in t){let r=t[n],i=e[n];Array.isArray(r)?e[n]=r.slice():r&&typeof r==`object`&&oe(r)?((!i||typeof i!=`object`)&&(e[n]={}),D(e[n],r)):e[n]=r}return e}var O={clickTolerance:8,defaultChunkSize:256,base:2,chunkStep:1,wheelSensitivity:200};function se(e){if(globalThis._uid||(globalThis._uid=1),e){if(`_uid`in e)return String(e._uid);e._uid=String(globalThis._uid),Object.defineProperty(e,`_uid`,{enumerable:!1})}return String(globalThis._uid++)}var ce=class{uid=se(this);#e={};dispatchEvent(e){let t=typeof e==`string`?e:e.type,n=this.#e[t];if(n)for(let t of n)t(e)}on(e,t){let n=this.#e[e]??[];return n.push(t),this.#e[e]=n,()=>this.un(e,t)}un(e,t){let n=this.#e[e];if(!n)return;let r=n.indexOf(t);r>=0&&n.splice(r,1)}},k=class{type;value;origin;stopped=!1;prevented=!1;constructor(e,t,n){this.type=e,this.value=t,this.origin=n}stopPropagation(){this.stopped=!0}preventDefaults(){this.prevented=!0}},A=class extends ce{#e=0;changed(){this.#e++,this.dispatchEvent(`change`)}get revision(){return this.#e}},j=class extends A{constructor(){super()}updateOptions(e){}render(e){}preRender(e){}postRender(e){}onPointerEvent(e,t){}pointerStyle(e,t){}};function le(e,t,n){if(!t)return;let{height:r}=e.size,i=e.ctx,[a,o]=e.timeAxis.p(t);i.fillStyle=n,i.fillRect(a,0,o-a,r)}function ue(e,t,n){if(!t)return;let{width:r,height:i}=e.size,a=e.ctx,[o,s]=e.timeAxis.p(t);a.fillStyle=n,0<o&&a.fillRect(0,0,Math.min(o,r),i),s<r&&a.fillRect(s,0,r-s,i)}function de(e){let t=e.ctx,n=e.size.height,r=Math.round(e.timeAxis.cursor.p);t.fillStyle=`white`,t.strokeStyle=`red`,t.lineWidth=1,t.fillRect(r-1,0,3,n),t.beginPath(),t.moveTo(r+.5,0),t.lineTo(r+.5,n),t.stroke()}function M(e,t,n){let r=e.ctx,i=e.dpr,a={width:r.canvas.width/i,height:r.canvas.height/i};r.save(),t?(r.translate(0,t.oy),a.height=t.height,e.renderingTrack=t):e.renderingTrack=null,e.chart.ox=e.options.padding[3]??0,e.chart.oy=e.options.padding[0]??0,e.chart.width=a.width-e.chart.ox-e.options.padding[1],e.chart.height=a.height-e.chart.oy-e.options.padding[2],e.size.width=a.width,e.size.height=a.height,r.beginPath(),r.rect(0,0,e.size.width,e.size.height),r.clip(),n(e),r.restore()}function N(e,t){e.tracks.forEach(n=>M(e,n,()=>t(n.id,n)))}function P(e,t){return e===!1?null:((e===!0||e==null)&&(e=t),e)}function F(e,t,n=O.clickTolerance){return e&&e-n<=t&&t<=e+n}var fe=class extends j{#e=null;#t=`rgba(0, 0, 255, 0.2)`;#n=!1;#r=!1;#i=!0;#a=S(0n);#o=8;constructor(){super(),this.on(`change`,()=>{this.dispatchEvent(new k(`renderer:event`,{range:this.#e,resizing:this.#r}))})}updateOptions(e){let t=e.selection;t!==void 0&&(t===!1?(this.#i=!1,this.#e=null):t===!0?this.#i=!0:(t.resizable!==void 0&&(this.#i=t.resizable),t.color!==void 0&&(this.#t=t.color),t.invert!==void 0&&(this.#n=t.invert),t.range!==void 0&&(this.#e=t.range)),this.changed())}#s({shiftKey:e,buttons:t},n){if(!this.#i)return!1;let r=t[0].latest.x;if(e){let e=n.timeAxis.t(r);return this.#r=!0,this.#a=e,this.#e=[e,e],this.changed(),!0}if(!this.#e)return!1;let i=n.timeAxis.p(this.#e);if(F(i[0],r,this.#o)){let e=this.#e[1];return e===void 0?!1:(this.#r=!0,this.#a=e,!0)}else if(F(i[1],r,this.#o)){let e=this.#e[0];return e===void 0?!1:(this.#r=!0,this.#a=e,!0)}return!1}#c({buttons:e},t){if(!this.#i||!this.#r)return!1;let n=t.timeAxis.t(e[0].latest.x),r=this.#a;return this.#e=n.lt(r)?[n,r]:[r,n],this.changed(),!0}#l(e,t){if(!this.#i||!this.#r||!this.#e)return!1;this.#r=!1;let n=t.timeAxis.p(this.#e[0]),r=t.timeAxis.p(this.#e[1]);return Math.abs(n-r)<this.#o&&(this.#e=null),this.changed(),!0}onPointerEvent(e,t){if(this.#i)switch(e.type){case`down`:return this.#s(e,t);case`drag:update`:return this.#c(e,t);case`up`:return this.#l(e,t)}}pointerStyle(e,t){if(!this.#e||!this.#i)return;let n=t.timeAxis.p(this.#e);if(this.#r&&F(n[0],n[1],this.#o))return`not-allowed`;if(F(n[0],e.buttons[0].latest.x,this.#o))return`w-resize`;if(F(n[1],e.buttons[0].latest.x,this.#o))return`e-resize`}render(e){M(e,null,()=>{this.#n?ue(e,this.#e,this.#t):le(e,this.#e,this.#t)})}};function pe(e){let t=typeof e==`string`?[e,e]:e.length===1?[e[0],e[0]]:e,n=t[0].split(`@`),r=t[1].split(`@`);return[[n[0]||`value`,n[1]||`time`],[r[0]||`value`,r[1]||`time`]]}function I(e,t,n){let{min:r,max:i,amp:a}=n;if(t){let e=r&&r.isPositive()&&r?.log(10),t=i&&i.isPositive()&&i?.log(10);if(!e||!t||t.eq(e))return null;let n=t.sub(e);return t=>{if(!t)return null;if(!t.isZero()&&!t.isNegative())return t.log(10).sub(e).div(n).number()}}else return!a||!r||!i||a.eq(0)||r.eq(i)?null:e?e=>e?.div(a).number():e=>e?.sub(r).div(i.sub(r)).number()}let me=[`link:fill`,`link:stroke`,`marks`];function L(e,t,n){let r=typeof n.lineWidth==`number`&&isFinite(n.lineWidth)?n.lineWidth:1,i=Math.max(.75,r/2),a=new Path2D;a.arc(t.x,t.y,i,0,Math.PI*2),e.addPath(a)}function R(e,t,n,r){if(isNaN(t.y)||isNaN(n.y))return;let i=typeof r.lineWidth==`number`&&isFinite(r.lineWidth)?r.lineWidth:1,a=Math.max(1,i)/2;e.moveTo(t.x-a,t.y),e.lineTo(t.x+a,t.y),e.lineTo(n.x+a,n.y),e.lineTo(n.x-a,n.y),e.closePath()}function he(e,t,n){let r=new Path2D,i=K(t??`value@time`),a=null,o=0,s=()=>{o===1&&a&&L(r,a,n),a=null,o=0};for(let t of e){let{x1:e,y1:n}=i(t);if(isNaN(n)){s();continue}o===0?(r.moveTo(e,n),a={x:e,y:n}):r.lineTo(e,n),o++}return s(),{path:r,strokeStyle:n.lineColor??n.color??`black`,fillStyle:G(n.fillColor??n.color??`black`,n.fillOpacity??.25,`transparent`)}}function z(e,t){if(!t.length)return;if(t.length===1){e.moveTo(t[0].x,t[0].y);return}if(t.length===2){e.moveTo(t[0].x,t[0].y),e.lineTo(t[1].x,t[1].y);return}let n=t.length,r=Array(n-1),i=Array(n-1);for(let e=0;e<n-1;e++)r[e]=t[e+1].x-t[e].x,i[e]=r[e]===0?0:(t[e+1].y-t[e].y)/r[e];let a=Array(n);a[0]=i[0];for(let e=1;e<n-1;e++)a[e]=(i[e-1]+i[e])/2;a[n-1]=i[n-2];for(let e=0;e<n-1;e++){if(i[e]===0||!isFinite(i[e])){a[e]=0,a[e+1]=0;continue}if(a[e]===0&&a[e+1]===0)continue;if(a[e]*i[e]<0||a[e+1]*i[e]<0){a[e]=0,a[e+1]=0;continue}let t=a[e]/i[e],n=a[e+1]/i[e],r=t*t+n*n;if(r>9){let o=3/Math.sqrt(r);a[e]=o*t*i[e],a[e+1]=o*n*i[e]}}e.moveTo(t[0].x,t[0].y);for(let i=0;i<n-1;i++){let n=r[i],o=t[i],s=t[i+1],c=o.x+n/3,l=o.y+a[i]*n/3,u=s.x-n/3,d=s.y-a[i+1]*n/3;e.bezierCurveTo(c,l,u,d,s.x,s.y)}}function ge(e,t,n){let r=new Path2D,i=K(t??`value@time`),a=[],o=()=>{if(a.length){if(a.length===1){L(r,a[0],n),a=[];return}z(r,a),a=[]}};for(let t of e){let{x1:e,y1:n}=i(t);if(isNaN(n)){o();continue}a.push({x:e,y:n})}return o(),{path:r,strokeStyle:n.lineColor??n.color??`black`,fillStyle:G(n.fillColor??n.color??`black`,n.fillOpacity??.25,`transparent`)}}function _e(e,t,n){let r=new Path2D,i=K(t??[`value@time`,`zero@time`]),a=e.map(i),o=0;for(;o<a.length;){for(;o<a.length&&(isNaN(a[o].y1)||isNaN(a[o].y2));)o++;if(o>=a.length)break;let e=[];for(;o<a.length&&!isNaN(a[o].y1)&&!isNaN(a[o].y2);)e.push(a[o]),o++;if(e.length===1){R(r,{x:e[0].x1,y:e[0].y1},{x:e[0].x2,y:e[0].y2},n);continue}z(r,e.map(e=>({x:e.x1,y:e.y1})));let t=e[e.length-1];r.lineTo(t.x2,t.y2);for(let t=e.length-2;t>=0;t--)r.lineTo(e[t].x2,e[t].y2);r.closePath()}return{path:r,strokeStyle:n.lineColor??n.color??`black`,fillStyle:G(n.fillColor??n.color??`black`,n.fillOpacity??.25,`transparent`)}}function ve(e,t,n){let r=new Path2D,i=K(t??[`value@time`,`zero@time`]),a=e.map(i),o=0;for(;o<a.length;){for(;o<a.length&&isNaN(a[o].y1);)o++;if(o>=a.length)break;let e=o;for(r.moveTo(a[e].x1,a[e].y1);o<a.length&&!isNaN(a[o].y1);)r.lineTo(a[o].x1,a[o].y1),o++;let t=o--,i=!1;for(;o>=e&&!isNaN(a[o].y2);)r.lineTo(a[o].x2,a[o].y2),o--,i=!0;!i&&!isNaN(a[e].y2)&&(r.lineTo(a[e].x2,a[e].y2),i=!0),r.lineTo(a[e].x1,a[e].y1),t-e===1&&i&&R(r,{x:a[e].x1,y:a[e].y1},{x:a[e].x2,y:a[e].y2},n),o=t}return{path:r,strokeStyle:n.lineColor??n.color??`black`,fillStyle:G(n.fillColor??n.color??`black`,n.fillOpacity??.25,`transparent`)}}function B(e,t=`value@time`){return function(n,r,i){let a=new Path2D,o=K(r??t),s=n.map(o);for(let t of s){let n=t.x2-t.x1,r=t.y2-t.y1,o=Math.hypot(n,r),s=Math.atan2(r,n)*180/Math.PI,c=new Path2D;e(c,{style:i,dx:n,dy:r,l:o});let l=new DOMMatrix().translate(t.x1,t.y1).rotate(s).translate(i.offset?.[0]??0,i.offset?.[1]??0).rotate(i.angle??0);a.addPath(c,l)}return{path:a,strokeStyle:i.lineColor??i.color??`black`,fillStyle:G(i.fillColor??i.color??`black`,i.fillOpacity??.25,`white`)}}}function V(e,t){let n=K(t??`value@time`);return{path:e.map(n).map(({x1:e,y1:t})=>({x:e,y:t}))}}let ye={line:{defaultUsing:`value@time`,predicate:e=>!isNaN(e.y1),hasBottom:!1},area:{defaultUsing:[`value@time`,`zero@time`],predicate:e=>!isNaN(e.y1)&&!isNaN(e.y2),hasBottom:!0}};function be(e,t,n){if(n===`start`)return[{x:t.x,y:e.y},{x:t.x,y:t.y}];if(n===`end`)return[{x:e.x,y:t.y},{x:t.x,y:t.y}];let r=(e.x+t.x)/2;return[{x:r,y:e.y},{x:r,y:t.y},{x:t.x,y:t.y}]}function H(e,t,n){let r=[],i=null;for(let a of e){let e=t(a);if(isNaN(e.y)){i=null;continue}i?r.push(...be(i,e,n)):r.push(e),i=e}return r}function U(e,t){let n=ye[t];return function(r,i,a){let o=K(i??n.defaultUsing),s=r.map(o),c=[],l=xe(s,e,n,a,c);if(t===`line`)for(let e of c)L(l,e,a);return{path:l,strokeStyle:a.lineColor??a.color??`black`,fillStyle:G(a.fillColor??a.color??`black`,a.fillOpacity??.25,`transparent`)}}}function xe(e,t,n,r,i=[]){let a=new Path2D,o=0;for(;o<e.length;){for(;o<e.length&&!n.predicate(e[o]);)o++;if(o>=e.length)break;let s=o,c=[];for(;o<e.length&&n.predicate(e[o]);)c.push(e[o]),o++;let l=o;if(!c.length)continue;let u=Se(c,t,{left:s>0?e[s-1]:null,right:l<e.length?e[l]:null}),d=H(u,e=>({x:e.x1,y:e.y1}),t);if(!d.length)continue;let f=d.length===1,p=[];if(n.hasBottom){if(p=H(u,e=>({x:e.x2,y:e.y2}),t),!p.length)continue;if(f&&p.length===1){R(a,d[0],p[0],r);continue}}a.moveTo(d[0].x,d[0].y);for(let e=1;e<d.length;e++)a.lineTo(d[e].x,d[e].y);if(!n.hasBottom){f&&i.push(d[0]);continue}for(let e=p.length-1;e>=0;e--)a.lineTo(p[e].x,p[e].y);a.lineTo(d[0].x,d[0].y)}return a}function Se(e,t,n){let r=e.map(e=>({...e}));return r.length?(Ce(r,t,n.left),we(r,t,n.right),r):r}function Ce(e,t,n){if(!n)return;let r=Te(t,n.x1,e[0].x1);r==null||r===e[0].x1||e.unshift(W(e[0],r))}function we(e,t,n){if(!n)return;let r=e[e.length-1],i=Ee(t,n.x1,r.x1);i==null||i===r.x1||e.push(W(r,i))}function Te(e,t,n){if(t==null||isNaN(t)||e===`start`)return null;if(e===`end`)return t;let r=(t+n)/2;return isNaN(r)?null:r}function Ee(e,t,n){if(t==null||isNaN(t)||e===`end`)return null;if(e===`start`)return t;let r=(n+t)/2;return isNaN(r)?null:r}function W(e,t){return{x1:t,y1:e.y1,x2:t,y2:e.y2}}function G(e,t,n=`transparent`){return`color-mix(in srgb, ${e} ${t*100}%, ${n})`}function K(e){let[[t,n],[r,i]]=pe(e);return function(e){return{x1:e.x[n],y1:e.y[t],x2:e.x[i],y2:e.y[r]}}}function De(e){return(typeof e==`number`||e==null)&&(e=[e??0]),{t:e[0],r:e[1]??e[0],b:e[2]??e[0],l:e[3]??e[1]??e[0]}}let Oe={\"link:line\":[he,{stroke:!0}],\"link:curve\":[ge,{stroke:!0}],\"link:area\":[ve,{fill:!0}],\"link:curve-area\":[_e,{fill:!0}],\"link:step-area-start\":[U(`start`,`area`),{fill:!0}],\"link:step-area\":[U(`mid`,`area`),{fill:!0}],\"link:step-area-end\":[U(`end`,`area`),{fill:!0}],\"link:step-start\":[U(`start`,`line`),{stroke:!0}],\"link:step\":[U(`mid`,`line`),{stroke:!0}],\"link:step-end\":[U(`end`,`line`),{stroke:!0}],\"mark:circle\":[B((e,{style:{size:t}})=>{let n=(t??5)/2;e.moveTo(n,0),e.arc(0,0,n,0,Math.PI*2)}),{stroke:!0,fill:!0}],\"mark:minus\":[B((e,{style:{size:t}})=>{let n=(t??5)/2;e.moveTo(-n,0),e.lineTo(n,0)}),{stroke:!0,fill:!1}],\"mark:triangle\":[B((e,{style:{size:t}})=>{let n=(t??5)/2;e.moveTo(0,-n),e.lineTo(+n*Math.sqrt(3)/2,n/2),e.lineTo(-n*Math.sqrt(3)/2,n/2),e.closePath()}),{stroke:!0,fill:!0}],\"mark:square\":[B((e,{style:{size:t}})=>{t=(t??5)/2*Math.sqrt(2),e.rect(-t/2,-t/2,t,t)}),{stroke:!0,fill:!0}],\"mark:diamond\":[B((e,{style:{size:t}})=>{t??=5,e.moveTo(0,-t/2),e.lineTo(t/2,0),e.lineTo(0,t/2),e.lineTo(-t/2,0),e.closePath()}),{stroke:!0,fill:!0}],\"mark:star\":[B((e,{style:{size:t}})=>{t??=5;let n=t/2,r=n*.4;for(let t=0;t<10;t++){let i=t%2==0?n:r,a=Math.PI/5*t-Math.PI/2,o=i*Math.cos(a),s=i*Math.sin(a);t===0?e.moveTo(o,s):e.lineTo(o,s)}e.closePath()}),{stroke:!0,fill:!0}],\"mark:plus\":[B((e,{style:{size:t}})=>{t??=5,e.moveTo(-t/2,0),e.lineTo(t/2,0),e.moveTo(0,-t/2),e.lineTo(0,t/2)}),{stroke:!0}],\"mark:cross\":[B((e,{style:{size:t}})=>{t=(t??5)/2*Math.sqrt(2),e.moveTo(-t/2,-t/2),e.lineTo(t/2,t/2),e.moveTo(-t/2,t/2),e.lineTo(t/2,-t/2)}),{stroke:!0}],\"mark:path\":[B((e,{style:{path:t,size:n,scale:r,origin:i}})=>{let a=new DOMMatrix().scale(r??1).scale(n??5).translate(-(i?.[0]??0),-(i?.[1]??0));e.addPath(new Path2D(t),a)}),{stroke:!0,fill:!0}],\"mark:line\":[B((e,{l:t})=>{e.moveTo(0,0),e.lineTo(t,0)},[`min`,`max`]),{stroke:!0}],\"mark:box\":[B((e,{l:t,style:{size:n,radius:r,padding:i}})=>{n??=5;let a=De(i),o=-a.l,s=-(a.t+n/2),c=a.l+t+a.r,l=a.t+n+a.b;r&&r>0?e.roundRect(o,s,c,l,r):e.rect(o,s,c,l)},[`min`,`max`]),{stroke:!0,fill:!0}],\"mark:section\":[B((e,{l:t,style:{size:n}})=>{n??=5,e.moveTo(0,-n/2),e.lineTo(0,n/2),e.moveTo(0,0),e.lineTo(t,0),e.moveTo(t,-n/2),e.lineTo(t,n/2)},[`min`,`max`]),{stroke:!0}],\"mark:icon\":[V,{fill:!0}],\"mark:text\":[V,{fill:!0}]};var ke=class extends j{updateOptions(e){super.updateOptions(e)}#e=S(0);#t={};render(e){super.render(e),this.#n(e),this.#r(e)}#n(e){let t=this.#e.neq(e.timeAxis.current.resolution);if(this.#e=e.timeAxis.current.resolution.clone(),e.options.series)for(let n in e.options.series){let r=e.options.series[n],i=r.track??e.tracks[0].id,a=e.tracks.find(e=>e.id===i),{data:o,meta:s,revision:c}=e.dataCaches[`series:${n}:chart`];if(this.#t[n]&&!t&&this.#t[n].revision===c&&this.#t[n].trackId===i)continue;this.#t[n]={time:e.timeAxis.current.range[0],trackId:i,revision:c,linkOps:[],markOps:[]};let l=s.color,u=[],d=I(a.symmetric,r.data.scale===`log`,s);if(d){for(let e=0;e<o.length;e++){let t=o[e].time,r=o[e].value,i={x:{},y:{zero:a.y(0)}};for(let e in t)i.x[e]=t[e].sub(this.#t[n].time).div(this.#e,3).number();for(let e in r)i.y[e]=a.y(d(r[e]));u.push(i);for(let t of o[e].marks){if(!t)continue;let e={color:l,...t.style??{}},[r,a]=Oe[`mark:${t.draw}`],{path:o,strokeStyle:s,fillStyle:c,postFillStyle:u}=r?.([i],t.using,e)??{};this.#t[n].markOps||(this.#t[n].markOps=[]),this.#t[n].markOps.push({type:`mark`,draw:t.draw,time:this.#t[n].time,path:o,style:{...e,strokeStyle:s,fillStyle:c,postFillStyle:u,...a}})}}for(let e of s.links??[]){if(!e)continue;let t={color:l,...e.style??{}},[r,i]=Oe[`link:${e.draw}`],{path:a,strokeStyle:o,fillStyle:s}=r?.(u,e.using,t)??{};this.#t[n].linkOps||(this.#t[n].linkOps=[]),this.#t[n].linkOps.push({type:`link`,draw:e.draw,time:this.#t[n].time,path:a,style:{...t,strokeStyle:o,fillStyle:s,...i}})}}}}#r(e){if(!e.options.series)return;let t={};for(let n in this.#t){let r=this.#t[n];t[r.trackId]||(t[r.trackId]={});let i=r.time.sub(e.timeAxis.current.time??e.timeAxis.now).div(this.#e,3).number()+e.timeAxis.axisLength[0];for(let e of r.linkOps){let n=e.draw.includes(`area`)?`link:fill`:`link:stroke`;t[r.trackId][n]||(t[r.trackId][n]=[]),t[r.trackId][n].push({...e,ox:i,oy:0})}for(let e of r.markOps){let n=`marks`;t[r.trackId][n]||(t[r.trackId][n]=[]),t[r.trackId][n].push({...e,ox:i,oy:0})}}for(let n of e.tracks)M(e,n,()=>{let r=e.ctx;for(let i of me){if(!t?.[n.id]?.[i])continue;let a=t[n.id][i];for(let t of a)r.save(),r.translate(t.ox,t.oy),t.path instanceof Path2D?Ae(e,t.path,t.style):t.path&&(Me(e,t.path,t.style),je(e,t.path,t.style)),r.restore()}})}};function Ae({ctx:e},t,n){!t||!(t instanceof Path2D)||(n.fill&&!n.fillPost&&n.fillStyle&&(e.fillStyle=n.fillStyle,e.fill(t)),n.stroke&&n.strokeStyle&&(n.lineWidth??1)>0&&(e.lineCap=`round`,e.lineJoin=`round`,e.strokeStyle=n.strokeStyle,e.lineWidth=n.lineWidth??1,n.lineDashArray&&(e.setLineDash(n.lineDashArray),e.lineDashOffset=n.lineDashOffset??0),e.stroke(t)),n.fill&&n.fillPost&&n.fillStyle&&(e.fillStyle=n.fillStyle,e.fill(t)))}function je({ctx:e},t,n){if(n.text){e.translate(n.offset?.[0]??0,n.offset?.[1]??0),e.font=`${n.fontWeight??`normal`} ${n.size??14}px ${n.fontFamily??`sans-serif`}`,e.textAlign=n.textAlign??`center`,e.textBaseline=n.textBaseline??`middle`;for(let r of t)e.save(),e.translate(r.x,r.y),n.angle&&e.rotate(n.angle/180*Math.PI),(n.textOutline||n.textOutlineColor!==void 0||n.textOutlineWidth!==void 0)&&(e.lineCap=`round`,e.lineJoin=`round`,e.strokeStyle=n.textOutlineColor??`white`,e.lineWidth=n.textOutlineWidth??2,e.strokeText(n.text??``,0,0)),e.fillStyle=G(n.textColor??n.color??`black`,n.textOpacity??1),e.fillText(n.text??``,0,0),e.restore()}}function Me({ctx:e},t,n){if(n.icon){e.translate(n.offset?.[0]??0,n.offset?.[1]??0),e.font=`${n.iconFontWeight??`normal`} ${n.size??16}px ${n.iconFontFamily??`icons`}`,e.textAlign=n.iconAlign??`center`,e.textBaseline=n.iconBaseline??`middle`;for(let r of t)e.save(),e.translate(r.x,r.y),n.angle&&e.rotate(n.angle/180*Math.PI),(n.iconOutline||n.iconOutlineColor!==void 0||n.iconOutlineWidth!==void 0)&&(e.lineCap=`round`,e.lineJoin=`round`,e.strokeStyle=n.iconOutlineColor??`white`,e.lineWidth=n.iconOutlineWidth??2,e.strokeText(n.icon??``,0,0)),e.fillStyle=G(n.iconColor??n.color??`black`,n.iconOpacity??1),e.fillText(n.icon??``,0,0),e.restore()}}var Ne=class{values;constructor(...e){this.values=e}clone(){return new this.constructor(...this.values)}get length(){return this.values.length}set(...e){return this.values=e,this}add(e){if(Array.isArray(e)||(e=e.values),e.length!==this.length)throw Error(`Vector size mismatch`);for(let t=this.length-1;t>=0;t--)this.values[t]+=e[t];return this}sub(e){if(Array.isArray(e)||(e=e.values),e.length!==this.length)throw Error(`Vector size mismatch`);for(let t=this.length-1;t>=0;t--)this.values[t]-=e[t];return this}scale(e){for(let t=this.length-1;t>=0;t--)this.values[t]*=e;return this}get norm(){return Math.sqrt(this.values.reduce((e,t)=>e+t**2,0))}normalize(){let e=this.norm;return e?this.scale(1/e):this}distanceTo(e){return this.clone().sub(e).norm}},q=class extends Ne{get x(){return this.values[0]}set x(e){this.values[0]=e}get y(){return this.values[1]}set y(e){this.values[1]=e}toJSON(){return{x:this.x,y:this.y}}};function Pe(e,t,n){let r=0,i=e.length;for(;r<i;){let a=r+i>>1,o=n(e[a]);o!=null&&S(o).lt(t)?r=a+1:i=a}return r}function Fe(e,t,n){let r=0,i=e.length;for(;r<i;){let a=r+i>>1,o=n(e[a]);o!=null&&S(o).le(t)?r=a+1:i=a}return r}function Ie(e,[t,n],r){let i=t===void 0?0:Pe(e,t,r),a=n===void 0?e.length:Pe(e,n,r);return i<a?[i,a]:[0,0]}function Le(e,t){let n=(e,t,n,r)=>Math.min(t,r)-Math.max(e,n),r=n(e.point.x,e.point.x+e.box.width+2,t.point.x,t.point.x+t.box.width+2),i=n(e.point.y,e.point.y+e.box.height+2,t.point.y,t.point.y+t.box.height+2);return r<=0||i<=0?null:{w:r,h:i,d:Math.hypot(r,i)}}function Re(e,t,n){let r=0,i=0,a=new q(0,0);do{r=0;let i=e.map(e=>({...e,force:(e?.force??new q(.01*e.id,0)).set(.01*e.id,0)}));for(let e=0;e<i.length;e++)for(let t=e+1;t<i.length;t++){let n=i[e],r=i[t];if(n===r||n.sideX!==r.sideX)continue;let o=Le(n,r);if(o)if(n.point.distanceTo(r.point)===0){let e=[0,o.h/2];n.force.sub(e),r.force.add(e)}else{let e=a.set(...r.point.values).sub(n.point).normalize(),t=[o.w/2*e.x,o.h/2*e.y];n.force.sub(t),r.force.add(t)}}i.forEach(e=>{let t=a.set(e.point.x,0);e.force.sub(t.normalize().scale(.2))});for(let e=0;e<i.length;e++){let a=i[e];a.point.add(a.force),a.point.x<0&&(a.force.x+=a.point.x,a.point.x-=a.point.x),a.point.y-a.box.height/2<0+t&&(a.force.y+=a.point.y-a.box.height/2-t,a.point.y-=a.point.y-a.box.height/2-t),a.point.y+a.box.height/2+1>n&&(a.force.y+=a.point.y+a.box.height/2+1-n,a.point.y-=a.point.y+a.box.height/2+1-n),r+=a.force.norm**2}}while(r>1&&i++<100);return i<100}var ze=class extends j{postRender(e){super.postRender(e),this.#t(e)}#e(e,t){if(!e)return;let n=Fe(e,t,e=>e.time.time);if(0<n&&n<=e.length)return e[n-1]}#t(e){if(e.timeAxis.animating||!e.options.series)return;let t=e.timeAxis.cursor.time??S(Date.now()/1e3);N(e,(n,r)=>{let i=e.ctx,a=[],o=1;i.textBaseline=`middle`,i.textAlign=`left`;for(let n of r.seriesKeys){let s=e.options.series?.[n];if(!s)throw Error(`Invalid series`);if(s.tooltip===!1)continue;let{data:c,meta:l}=e.dataCaches[`series:${n}:instantaneous`];if(!l)continue;let u=I(r.symmetric,s.data.scale===`log`,l);if(!u)continue;let d=this.#e(c,t);if(!d)continue;let f=d.time.time;if(!f)continue;let p=e.timeAxis.p(f),m=d.value,h=d.text,g=i.measureText(h),_=l.color;if(m==null)continue;let v=r.y(u(m));a.push({id:a.length,cx:p,cy:v,point:new q(0,v),color:_,metrics:g,sideX:o,text:{dx:6,dy:0,value:h},box:{dx:.5,dy:.5-g.fontBoundingBoxAscent-2,width:12+g.width,height:4+g.fontBoundingBoxAscent+g.fontBoundingBoxDescent}}),o=-o}Re(a,e.chart.oy,e.chart.oy+e.chart.height);for(let e of a)e.point.x=e.cx+e.sideX*(e.point.x+20);for(let{cx:e,cy:t,point:n,color:r}of a)i.beginPath(),i.moveTo(e,t),i.lineTo(n.x,n.y),i.strokeStyle=`white`,i.lineWidth=3,i.stroke(),i.strokeStyle=r,i.lineWidth=1,i.setLineDash([3]),i.stroke(),i.setLineDash([]);for(let{cx:e,cy:t,point:n,sideX:r,text:o,color:s,box:c}of a)i.beginPath(),i.arc(e,t,3,0,Math.PI*2),i.fillStyle=s,i.fill(),i.strokeStyle=`white`,i.stroke(),i.beginPath(),i.roundRect(n.x+c.dx,n.y+c.dy,c.width*r,c.height,4),i.shadowBlur=3,i.shadowColor=`black`,i.shadowOffsetX=0,i.shadowOffsetY=1,i.fillStyle=s,i.fill(),i.shadowBlur=0,i.shadowColor=`transparent`,i.shadowOffsetX=0,i.shadowOffsetY=0,i.lineWidth=1,i.strokeStyle=`white`,i.stroke(),i.textBaseline=`middle`,i.textAlign=r<0?`right`:`left`,i.fillStyle=`white`,i.fillText(o.value,n.x+r*o.dx,n.y+o.dy)})}};function Be(e,t={}){return{font:`${e?.fontWeight??t?.fontWeight??`normal`} ${e?.fontSize??t?.fontSize??`12px`} \"${e?.fontFamily??t?.fontFamily??`BIZ UDPGothic`}\"`,color:e?.color??t?.color}}var Ve=class extends j{render(e){super.render(e),N(e,()=>{this.#t(e)})}preRender(e){super.preRender(e),N(e,()=>{this.#e(e)})}#e(e){let t=e.ctx,{width:n}=e.size,r=e.renderingTrack.axisY,i=e.renderingTrack.id,a=P(e.options.tracks?.[i].timeAxis,{});if(!a)return;let o=e.dataCaches[`tracks:${i}:timeAxis`]?.data;o&&(t.beginPath(),a.axis!==!1&&(t.strokeStyle=(typeof a.axis==`object`?a.axis.color:void 0)||`#3333`,t.moveTo(0,r+.5),t.lineTo(n,r+.5)),t.strokeStyle=(a.ticks!==!1&&typeof a.ticks==`object`?a.ticks.color:void 0)||`#3333`,o.forEach(n=>{if(!n.tick)return;let i=e.timeAxis.p(n.time.time);a.ticks!==!1&&(t.moveTo(i,r-(n.major?10:5)),t.lineTo(i,r+(e.symmetric?n.major?10:5:0)))}),t.stroke())}#t(e){let t=e.ctx,n=e.renderingTrack.axisY+2,r=e.renderingTrack.id,i=P(e.options.tracks?.[r].timeAxis,{});if(!i)return;let a=e.dataCaches[`tracks:${r}:timeAxis`]?.data;if(!a||i.labels===!1)return;let o=Be(i.labels);t.fillStyle=o?.color??`black`,t.font=o?.font,t.textAlign=`center`,t.textBaseline=`top`,a.forEach(r=>{let i=e.timeAxis.p(r.time.time);r.text!==void 0&&t.fillText(r.text,i,n)})}};let J={z:0,r:S(1)};function He(e){return J.r.eq(e)?J.z:-e.log(O.base).number()}function Y(e){return J.z===e?J.r:(J.z=e,J.r=S(O.base).pow(-e,BigInt(Math.floor(e))),J.r)}function Ue(e,t){return t?t.reduce((t,n)=>Math.abs(n-e)<Math.abs(t-e)?n:t,t[0]):Number(S(e).floorBy(O.chunkStep).toFixed(2))}function We(e,t,n=O.defaultChunkSize){let r=Y(t),i=r.mul(n);if(!e[0]||!e[1]||!i.isPositive())return[{id:`z${t}`,seq:0n,expires:1/0,range:e,resolution:r,zoom:t}];let a=[],o=e[1].add(i);for(let n=e[0];n.le(o);n=n.add(i)){let e=n.div(i).floor().integer(),o=[i.mul(e),i.mul(e+1n)],s=`z${t}:seq${e}`;a.push({id:s,seq:e,expires:1/0,range:o,resolution:r,zoom:t})}return a}function Ge(e,t){return t===void 0?e:e===void 0||t.lt(e)?t:e}function Ke(e,t){return t===void 0?e:e===void 0?t:e.gt(t)?e:t}function qe(e,t){return(!e[0]||!t[1]||e[0].le(t[1]))&&(!t[0]||!e[1]||t[0].le(e[1]))}var X=class extends A{#e={};#t=[];#n;#r;#i;#a;#o;#s;#c={};#l;constructor(e){super(),this.#n=e.loader,this.#r=e.instantValue??!1,this.#i=e.instantZoomLevel,this.#a=e.immediate??!1,this.#s=e.zoomLevels,this.#o=e.chunkSize===null?0:e.chunkSize??O.defaultChunkSize,this.#l=e.name}updateOptions(e){this.#n=e.loader,this.#r=e.instantValue??!1,this.#i=e.instantZoomLevel,this.#a=e.immediate??!1,this.#s=e.zoomLevels,this.#o=e.chunkSize===null?0:e.chunkSize??O.defaultChunkSize,this.#l=e.name}#u(e,t){if(e.id in this.#e&&t){try{this.#t=this.#p(e.range,this.#t,t)??this.#t}catch(e){console.error(e)}this.changed(),this.dispatchEvent(`datachanged`)}}#d=!1;#f(e,t){let n={...this.#e};for(let e of t)delete n[e.id];for(let e in n)this.#d=!0,delete this.#e[e];!e.timeAxis.animating&&!e.timeAxis.editing&&this.#d&&(this.#d=!1,this.#t=this.#h(Object.values(this.#e),this.#t)??this.#t,this.changed(),this.dispatchEvent(`datachanged`))}#p(e,t,n){let[r,i]=Ie(t,e,e=>e.time._minTime??e.time.time);return[...t.slice(0,r),...n.filter(e=>e.time._minTime??e.time.time),...t.slice(i)].toSorted((e,t)=>{let n=e.time._minTime??e.time.time,r=t.time._maxTime??t.time.time;return n==null||r==null?0:n.lt(r)?-1:n.gt(r)?1:0})}#m=[S(0),S(0)];get window(){return this.#m}#h(e,t){let[n,r]=e.reduce((e,t)=>{let n=t.range[0],r=t.range[1];return[Ge(e[0],n),Ke(e[1],r)]},[void 0,void 0]);if(!n||!r)return t;let i=[n,r];return this.#m=i,t.filter(e=>qe([e.time._minTime??e.time.time,e.time._maxTime??e.time.time],i))}#g(e,t){return t=Ue(t,this.#s),We(e,t,this.#o).map(e=>this.#e[e.id]??e)}update(e){if(this.#r){let t=e.timeAxis.committing.time??e.timeAxis.now,n=this.#i??e.timeAxis.committing.zoom.number(),r=Y(n).mul(this.#o).div(2),i=[t.sub(r),t.add(r)];this.#_(e,i,n)}else if(this.#a){let t=e.timeAxis.current.zoom?.number()??0;this.#_(e,e.timeAxis.current.range,t)}else{let t=e.timeAxis.committing.zoom?.number()??0;this.#_(e,e.timeAxis.committing.range,t)}}#_(e,t,n){let r=this.#g(t,n),i=Date.now();r.forEach(e=>{this.#e[e.id]&&i<=e.expires||(this.#e[e.id]=e,this.#d=!0,e.expires=1/0,e._loading=!0,this.#n(e).then(t=>{e.expires=t?.expires??e.expires,this.#u(t,t.data)}).finally(()=>{e._loading=!1}))}),this.#f(e,r)}get data(){return this.#t}invalidate(){this.#e={},this.#d=!0}get meta(){return this.#c}updateMeta(e){this.#c=e,this.changed(),this.dispatchEvent(`metachanged`)}get name(){return this.#l}};function Z(e){if(e==null||C(e))return e;if(typeof e==`string`){let t=Date.parse(e);if(Number.isNaN(t))throw Error(`Parse error as Date`);return S(t/1e3)}return e instanceof Date?S(e.getTime()/1e3):S(e)}function Je(e){return e.map(Z)}let Ye=globalThis.requestAnimationFrame??(e=>setTimeout(e,0)),Xe=globalThis.cancelAnimationFrame??(e=>clearTimeout(e));var Ze=class{#e=null;#t;start(e){e={animation:`in-out`,duration:500,...e},this.cancel(),this.#t=()=>e.done?.(e.target());let t=e.overshoot??0,n=e.duration??500,r=performance.now(),i=e.animation?{linear:e=>e,\"in-out\":e=>e*e*e*(e*(e*6-15)+10),out:e=>1+(t+1)*(e-1)**3+t*(e-1)**2}[String(e.animation)]:null;if(!i||e.origin()===e.target()){this.done();return}let a=()=>{let t=performance.now()-r;if(t<n){let r=i(t/n),o=e.origin()*(1-r)+e.target()*r;e.update(o,r),this.#e=Ye(a)}else this.done()};this.#e=Ye(a)}done(){this.cancel(),this.#t?.()}cancel(){this.#e&&=(Xe(this.#e),null)}get animating(){return this.#e!==null}};function Q(e,t,n){let r=e??n;if(t[0]!==void 0){let e=t[0]??n;if(r.lt(e))return t[0]}if(t[1]!==void 0){let e=t[1]??n;if(r.gt(e))return t[1]}return e}var $=class extends A{#e;#t={id:void 0,value:null,nullValue:S(0),committed:null,committing:null,current:null,candidate:null,domain:[void 0,void 0],editing:!1,animating:!1,cursorMode:`current`,updated:!1};#n=new Ze;#r;get candidate(){return this.#t.candidate}get value(){return this.#t.value}get committing(){return this.#t.committing}parseValue(e){return S(e)}setValue(e,t){t??=!1;let n=this.parseValue(e);if(this.#t.value===n||n&&this.#t.value?.eq(n))return;let r=typeof t==`object`?t:{animation:t};this.begin(n),this.commit(r)}get committed(){return this.#t.committed}get current(){return this.#t.current}get domain(){return this.#t.domain}set domain(e){let t=e.map(e=>S(e));this.#t.domain=t,this.restore(),this.#c(),this.setValue(Q(this.value,t,this.#t.nullValue)),this.changed()}get editing(){return this.#t.editing}get animating(){return this.#t.animating}get cursor(){return this.#t.cursorMode===`current`?this.#t.current:this.#t.committing}constructor(e={initialValue:0}){super(),e.domain&&(this.#t.domain=e.domain.map(e=>S(e))),e.onNull&&(this.#r=e.onNull,this.#c()),this.#e=e.lazy??!1;let t=Q(S(e.initialValue),this.#t.domain,this.#t.nullValue);this.#t.value=t,this.#t.committed=t,this.#t.current=t,this.#t.candidate=t,this.#t.committing=t}handleSyncEvent(e){switch(e.type){case`begin`:this.#i(e);break;case`update`:this.#a(e);break;case`commit`:this.#o(e);break;case`restore`:this.#l(e);break;case`set:nullvalue`:this.#s(e);break}}begin(e){this.#c(),e===void 0&&(e=this.#t.current);let t=Q(e,this.#t.domain,this.#t.nullValue),n={type:`begin`,candidate:t};this.dispatchEvent(new k(`sync`,n)),this.dispatchEvent(new k(`valuechanging`,t)),this.#i(n)}#i({candidate:e}){this.#n.cancel(),this.#t.cursorMode=`current`,this.#t.editing=!0,this.#t.updated=!1,this.#t.candidate=e,this.dispatchEvent(new k(`valuechanging`,e)),this.changed()}update(e){this.#c();let t=this.#t.nullValue,n=Q(e,this.#t.domain,t),r={type:`update`,candidate:n,current:(e??t).sub(this.#t.current??t).mul(n===e?1:.5).add(this.#t.current??t)};this.dispatchEvent(new k(`sync`,r)),this.#a(r)}#a({candidate:e,current:t}){this.#t.editing=!0,this.#t.updated=!0,this.#t.candidate=e,this.#t.current=t,this.dispatchEvent(new k(`valuechanging`,e)),this.changed()}commit(e={}){this.#c();let t=e.value===void 0?this.#t.candidate:e.value,n=t,r=Q(t,this.#t.domain,this.#t.nullValue),i=e.animation===void 0?this.#t.updated?`current`:`target`:this.#t.cursorMode,a={type:`commit`,targetValue:r,animation:e.animation===void 0?this.#t.editing?`out`:`in-out`:e.animation,duration:e.duration??500,cursorMode:i,divergentValue:n,lazy:e.lazy??this.#e};this.dispatchEvent(new k(`sync`,a)),this.#o(a)}#o({targetValue:e,divergentValue:t,animation:n,duration:r,cursorMode:i,lazy:a}){let o=()=>{this.#t.value=e,this.#t.editing=!1,this.changed(),this.dispatchEvent(new k(`valuechanging`,this.#t.value)),this.dispatchEvent(new k(`valuechanged`,this.#t.value))},s=this.#t.current??this.#t.nullValue,c=e??this.#t.nullValue,l=t??this.#t.nullValue,u=0;c.neq(l)&&l.neq(s)&&(u=3*(l.sub(s).div(c.sub(s)).number()-1)/2),this.#t.cursorMode=i,this.#t.candidate=e,this.#t.committing=e,a||o();let d=c.eq(s)?0:1;this.#t.animating=!0,this.#n.start({origin:()=>0,target:()=>d,update:t=>{this.#c(),this.#t.animating=!0;let n=(e??this.#t.nullValue).sub(s).mul(t).add(s);this.#t.current=n,this.changed()},done:()=>{this.#t.animating=!1,this.#t.current=e,a&&o(),this.#t.committed=e,this.changed()},animation:n,duration:r,overshoot:u})}#s({nullValue:e}){this.#t.nullValue=e}#c(){if(!this.#r)return;let e=this.parseValue(this.#r())??this.#t.nullValue;this.#t.nullValue=e}toString(){return JSON.stringify(this)}toJSON(){return{value:this.value,candidate:this.candidate,committed:this.committed,committing:this.committing,current:this.current,editing:this.editing,animating:this.animating}}#l({value:e,domain:t}){this.#n.cancel(),this.#t.cursorMode=`current`,this.#t.value=e,this.#t.candidate=e,this.#t.committed=e,this.#t.committing=e,this.#t.current=e,this.#t.editing=!1,this.#t.animating=!1,this.#t.domain=t}restore(){let e={type:`restore`,value:this.value,domain:this.#t.domain};this.dispatchEvent(new k(`sync`,e)),this.#l(e)}},Qe=class extends A{time;zoom;constructor(e){super(),this.time=new $,this.zoom=new $,this.time=new $({initialValue:Z(e.time??null),domain:Je(e.timeRange??[void 0,null]),onNull:()=>Date.now()/1e3}),this.zoom=new $({initialValue:e.zoom??0,domain:e.zoomRange}),this.time.on(`change`,()=>this.changed()),this.zoom.on(`change`,()=>this.changed()),this.time.on(`valuechanging`,e=>this.dispatchEvent(new k(`timechanging`,e.value))),this.time.on(`valuechanged`,e=>this.dispatchEvent(new k(`timechanged`,e.value))),this.zoom.on(`valuechanging`,e=>this.dispatchEvent(new k(`zoomchanging`,e.value.number()))),this.zoom.on(`valuechanged`,e=>this.dispatchEvent(new k(`zoomchanged`,e.value.number())))}setTime(e,t){if(typeof e==`number`&&!isFinite(e)||typeof e==`number`&&isNaN(e))return!1;t??=`out`;try{this.time.setValue(Z(e),t)}catch{return!1}return!0}setTimeRange(e){this.time.domain=Je(e??[void 0,null])}setZoom(e,t){if(typeof e==`number`&&!isFinite(e)||typeof e==`number`&&isNaN(e))return!1;t??={animation:`linear`,duration:200,lazy:this.zoom.value.lt(e)};try{this.zoom.setValue(S(e),t)}catch{return!1}return!0}setZoomRange(e){this.zoom.domain=(e??[void 0,void 0]).map(S)}},$e=class{decay;minVelocity;delay;points=[];angle_=0;distance_=0;constructor(e=.005,t=.05,n=100){this.decay=e,this.minVelocity=t,this.delay=n}begin(){this.points=[]}update(e,t){let n=Date.now();this.points.push({x:e,y:t,t:n});let r=n-this.delay;for(;this.points.length>1&&this.points[0].t<r;)this.points.shift()}end(){let e=this.points.length;if(e<2)return!1;let t=Date.now()-this.delay,n=this.points[e-1];if(n.t<t)return!1;for(;this.points.length>1&&this.points[0].t<t;)this.points.shift();let r=this.points[0];if(n.t<Date.now()-this.delay)return!1;let i=n.x-r.x,a=n.y-r.y,o=n.t-r.t;return o<1e3/60?!1:(this.distance_=Math.sqrt(i*i+a*a)/o/this.decay,this.angle_=Math.atan2(a,i),!0)}getDistance(){return this.distance_}getAngle(){return this.angle_}},et=class extends A{#e;#t={cursorMode:`center`,axisLength:[0,0],disabled:!1,dragging:!1,pinch:null};#n=new $e;constructor(e={}){super(),this.#e=new Qe(e);let{time:t,zoom:n}=this.#e;t.on(`change`,()=>this.changed()),t.on(`valuechanged`,e=>this.dispatchEvent(new k(`timechanged`,e.value))),t.on(`valuechanging`,e=>this.dispatchEvent(new k(`timechanging`,e.value))),t.on(`sync`,e=>this.dispatchEvent(new k(`sync`,{time:e.value}))),n.on(`change`,()=>this.changed()),n.on(`valuechanged`,e=>this.dispatchEvent(new k(`zoomchanged`,e.value.number()))),n.on(`valuechanging`,e=>this.dispatchEvent(new k(`zoomchanging`,e.value.number()))),n.on(`sync`,e=>this.dispatchEvent(new k(`sync`,{zoom:e.value}))),t.on(`valuechanged`,()=>this.dispatchEvent(`viewchanged`)),n.on(`valuechanged`,()=>this.dispatchEvent(`viewchanged`)),t.on(`valuechanging`,()=>this.dispatchEvent(`viewchanging`)),n.on(`valuechanging`,()=>this.dispatchEvent(`viewchanging`))}z(e){return S(He(e))}r(e){return Y(e.number())}p(e,t){if(Array.isArray(e))return e.map((e,t)=>this.p(e,t));if(e===void 0)return t===0?-100:this.#t.axisLength[0]+this.#t.axisLength[1]+100;let n=this.r(this.#e.zoom.current),r=this.#e.time.current??this.now,i=e??this.now;return S(i).sub(r).div$(n,3).number()+this.#t.axisLength[0]}t(e){if(Array.isArray(e))return e.map(e=>this.t(e));let t=this.r(this.#e.zoom.current),n=this.#e.time.current??this.now;return t.mul(e-this.#t.axisLength[0]).add(n).round(t.digits)}set disabled(e){this.#t.disabled=e}get disabled(){return this.#t.disabled}get editing(){return this.#e.time.editing||this.#e.zoom.editing}get dragging(){return this.#t.dragging}get animating(){return this.#e.time.animating||this.#e.zoom.animating}get current(){return{time:this.#e.time.current,zoom:this.#e.zoom.current,resolution:this.r(this.#e.zoom.current),range:this.rangeFor(this.#e.time.current,this.#e.zoom.current),p:this.p(this.#e.time.current)}}get candidate(){return{time:this.#e.time.candidate,zoom:this.#e.zoom.candidate,resolution:this.r(this.#e.zoom.candidate),range:this.rangeFor(this.#e.time.candidate,this.#e.zoom.candidate),p:this.p(this.#e.time.candidate)}}get value(){return{time:this.#e.time.value,zoom:this.#e.zoom.value,resolution:this.r(this.#e.zoom.value),range:this.rangeFor(this.#e.time.value,this.#e.zoom.value),p:this.p(this.#e.time.value)}}get committing(){return{time:this.#e.time.committing,zoom:this.#e.zoom.committing,resolution:this.r(this.#e.zoom.committing),range:this.rangeFor(this.#e.time.committing,this.#e.zoom.committing),p:this.p(this.#e.time.committing)}}get committed(){return{time:this.#e.time.committed,zoom:this.#e.zoom.committed,resolution:this.r(this.#e.zoom.committed),range:this.rangeFor(this.#e.time.committed,this.#e.zoom.committed),p:this.p(this.#e.time.committed)}}get cursor(){return{time:this.#e.time.cursor,p:this.p(this.#e.time.cursor)}}get range(){return{time:this.#e.time.domain,p:this.p(this.#e.time.domain)}}rangeFor(e,t){return[(e??this.now).sub(this.r(t).mul(this.#t.axisLength[0])),(e??this.now).add(this.r(t).mul(this.#t.axisLength[1]))]}#r(e){this.#e.time.begin(this.t(e)),this.#n.begin()}#i(e,t){this.#e.time.update(this.t(this.current.p-t)),this.#n.update(e,0)}#a(){if(this.#n.end()){let e=this.#n.getDistance(),t=this.#n.getAngle(),n=e*Math.cos(t);this.#e.time.commit({value:this.t(this.current.p-n)})}else this.#e.time.commit()}click(e){this.#e.time.begin(this.t(e)),this.#e.time.commit()}dragStart(e){this.disabled||(this.#r(e),this.#t.dragging=!0)}dragUpdate(e,t){!this.#t.dragging||this.disabled||this.#i(e,t)}dragEnd(){!this.#t.dragging||this.disabled||(this.#a(),this.#t.dragging=!1)}dragCancel(){this.#t.dragging=!1}pinchStart(e,t){if(!this.disabled){if(this.#e.time.update(this.#e.time.current),this.#t.pinch={anchorTime:[this.t(e),this.t(t)]},this.#t.pinch.anchorTime[0].eq(this.#t.pinch.anchorTime[1])){this.#t.pinch=null;return}this.#e.zoom.begin(this.#e.zoom.current)}}pinchUpdate(e,t){if(this.disabled)return;if(!this.#t.pinch)return this.pinchStart(e,t);let n=this.#t.pinch.anchorTime[0],r=this.#t.pinch.anchorTime[1];if(Math.abs(t-e)>2){let i=r.sub(n).div(t-e).abs(),a=this.z(i);this.#e.zoom.update(a)}}pinchEnd(){this.disabled||this.#t.pinch&&(this.#t.pinch=null,this.#e.zoom.commit({animation:`linear`,duration:200}))}setAxisLength(e){this.#t.axisLength=e,this.changed(),this.dispatchEvent(`viewchanged`),this.dispatchEvent(`viewchanging`)}get axisLength(){return this.#t.axisLength}get now(){return S(Date.now()/1e3)}handleSyncEvent(e){e.time&&this.#e.time.handleSyncEvent(e.time),e.zoom&&this.#e.zoom.handleSyncEvent(e.zoom)}},tt=class{id;height;symmetric;oy=0;paddingY=[5,5];labelHeight=0;seriesKeys;constructor(e){this.id=e.id,this.oy=e.oy??0,this.height=e.height??0,this.symmetric=e.symmetric??!1,this.labelHeight=e.labelHeight??0,this.seriesKeys=e.seriesKeys}get chartHeight(){return this.height-this.paddingY[0]-this.paddingY[1]-this.labelHeight}get axisY(){return(this.symmetric?this.chartHeight/2:this.chartHeight)+this.paddingY[0]}y(e){if(e==null||isNaN(e))return NaN;let t=this.symmetric?this.chartHeight/2:this.chartHeight;return this.axisY-t*e}getRenderers(){return[]}},nt=class extends X{#e=new $({initialValue:null});#t=new $({initialValue:null});#n;#r(){let e=this.#e.current,t=this.#t.current;if(!this.#n||e==null||t==null)return;let n=S.max(e.abs(),t.abs());super.updateMeta({...this.#n??{},min:e,max:t,amp:n})}constructor(e){super(e),this.#e.on(`change`,()=>this.#r()),this.#t.on(`change`,()=>this.#r())}updateMeta(e){this.#n=e,e.min&&this.#e.setValue(e.min,this.#e.committed?{animation:`linear`,duration:200}:!1),e.max&&this.#t.setValue(e.max,this.#t.committed?{animation:`linear`,duration:200}:!1)}};function rt(e,t,n=globalThis.requestAnimationFrame){let r,i,a=te(e),o=new et;o.on(`change`,()=>v()),o.on(`sync`,e=>a(`sync`,e.value)),o.on(`viewchanging`,()=>u());let s={onPointerEvent:e=>{let t={click:e=>o.click(e),\"drag:start\":e=>o.dragStart(e),\"drag:update\":(e,t)=>o.dragUpdate(e,t),\"drag:end\":()=>o.dragEnd(),\"pinch:start\":(e,t,n)=>o.pinchStart(e,n),\"pinch:update\":(e,t,n)=>o.pinchUpdate(e,n),\"pinch:end\":()=>o.pinchEnd()};if(e.type in t)return t[e.type](e.buttons[0]?.latest.x??0,e.buttons[0]?.delta.x??0,e.buttons[1]?.latest.x??0),!0},pointerStyle:()=>{}},c=[new Ve,new ke,new ze,new fe];c.forEach(e=>{e.on(`change`,()=>v()),e.on(`renderer:event`,t=>a(`renderer:event`,{value:t.value,uid:e.uid}))});let l={ctx:null,options:{},tracks:[],renderingTrack:null,dataCaches:{},chart:{ox:0,oy:0,width:1,height:1,get axisY(){return(l.symmetric?l.chart.height/2:l.chart.height)+l.chart.oy}},size:{width:1,height:1},get symmetric(){return this.renderingTrack?.symmetric??!1},dpr:1,timeAxis:o};async function u(){let e=o.current,t=o.revision;await a(`view:changed`,{time:e.time,zoom:e.zoom.number(),resolution:e.resolution,range:e.range},{rpc:!0}),o.revision===t&&Object.values(l.dataCaches).forEach(e=>d(e).then(()=>v()))}async function d(e){let{revision:t}=e,{resolution:n,zoom:r}=o.value,i=await a(`provider:loadMeta`,{key:e.name,zoom:r.number(),resolution:n},{rpc:!0});e.revision===t&&e.updateMeta(i)}function f(e,t={}){let n={...t,name:e,loader:async t=>await a(`provider:loadChunk`,{key:e,chunk:t},{rpc:!0})};if(l.dataCaches[e]){let t=l.dataCaches[e];return t.updateOptions(n),t.invalidate(),t}let r=e.startsWith(`series:`)?new nt(n):new X(n);return r.on(`change`,()=>v()),r.on(`datachanged`,async()=>u()),r}function p(e){let t={...e.dataCaches};for(let n in e.options.dataCacheOptions)e.dataCaches[n]=f(n,e.options.dataCacheOptions[n]),delete t[n];Object.keys(t).forEach(t=>delete e.dataCaches[t])}function m(e){for(let t of Object.values(e.dataCaches))t.update(e)}let h;function g(){if(!i)return;let e=i.height/l.dpr,t=Object.entries(l.options.tracks??{default:{}}),n=Math.max(0,e-t.reduce((e,[,t])=>e+(t?.height??0),0))/t.filter(([,e])=>e.height==null).length,r=0;l.tracks=t.map(([e,i])=>{let a=i.height??n;return r+=a,new tt({id:e,oy:r-a,height:a,symmetric:i.symmetric??!1,labelHeight:!i.symmetric&&i.timeAxis!==!1&&(typeof i.timeAxis!=`object`||i.timeAxis.labels!==!1)?14:0,seriesKeys:Object.entries(l.options.series??{}).filter(([,n])=>(n.track??t[0][0])===e).map(([e])=>e)})})}ne(e,{init:({canvas:e})=>{i=e,r=i?.getContext(`2d`)},fonts:e=>{if(e)for(let n of e)try{let e=typeof n.source==`string`&&n.source.match(/url\\(\"([^\"]+)\"\\) *format\\(\"woff2\"\\)/);if(e&&e?.[1])fetch(e[1]).then(e=>e.arrayBuffer()).then(e=>{let r=new Uint8Array(e),i=new FontFace(n.family,r,n.desc);i.loaded.then(()=>{t?.add(i),v()}),i.load()});else{let e=new FontFace(n.family,n.source,n.desc);e.loaded.then(()=>{t?.add(e),v()}),e.load()}}catch(e){console.error(`Failed to load the font:`,e)}v()},\"options:update\":e=>{D(l.options,e),e.dataCacheOptions&&p(l),(`tracks`in e||`series`in e)&&g();for(let t of c)t.updateOptions(e);v()},resize:async({size:e,context:t})=>{if(!i)return;let n=t?.dpr??l.dpr??1;i.width=e.width*n,i.height=e.height*n,o.setAxisLength([e.width/2,e.width/2]),l.dpr=n,g(),v()},pointer:async e=>{let t=[...c??[],s],n=(h??t).find(t=>t.onPointerEvent(e,l));return h=e.type===`up`||!n?void 0:[n],!0},cursor:async e=>{let t=[...c??[],s];return(h??t).map(t=>t.pointerStyle(e,l)).find(e=>e)},sync:e=>{o.handleSyncEvent(e)},reload:()=>{for(let e of Object.values(l.dataCaches))e.invalidate();v()}});let _=!1;function v(){_=!0}let y=0,b=0;function x(){y++}function S(){let e=Date.now(),t=(y*1e3/(e-b)).toFixed(1);b+1e3<=e&&(b=e,y=0),r?.clearRect(0,0,60,15),r?.fillText(`FPS: ${t}`,5,10)}function C(e){for(let t of c)r?.save(),e(t),r?.restore()}function w(e){!i||!r||(e.ctx=r,_=!1,m(e),x(),r.reset(),r.scale(e.dpr,e.dpr),C(t=>{t.preRender(e)}),M(e,null,()=>{ue(e,o.range.time,`#00000010`)}),C(t=>{t.render(e)}),e.options.indicator!==!1&&M(e,null,()=>de(e)),C(t=>{t.postRender(e)}))}function ee(){let e=o.range,t=e.time[0]===null&&0<=e.p[0]&&e.p[0]<l.size.width||e.time[1]===null&&0<=e.p[1]&&e.p[1]<l.size.width;return _||o.value.time===null||t}let T=()=>{n(T),ee()&&w(l),l.options.showFps&&S()};n(T)}rt(self,self.fonts)})();"],{type:`text/javascript;charset=utf-8`}));return new Worker(t,e)}function pn(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`)return e.toString()===t.toString();if(e&&t&&typeof e==`object`){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!pn(e[r],t[r]))return!1;return!0}return!1}function $(e,t,n=new WeakSet){if(e==null)return e;let r=typeof e;if(r===`string`||r===`number`||r===`boolean`||r===`bigint`)return e;if(r===`undefined`||r===`symbol`)return;if(r===`function`)return e.toString();if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||t?.includes(e))return e;if(n.has(e))throw TypeError(`Cannot serialize circular reference`);if(n.add(e),typeof e.toJSON==`function`){let r=e.toJSON();if(r!==e){let i=$(r,t,n);return n.delete(e),i}}if(Array.isArray(e)){let r=Array(e.length);for(let i=0;i<e.length;i++)r[i]=$(e[i],t,n);return n.delete(e),r}if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)return n.delete(e),e;let i={};for(let r of Object.keys(e))i[r]=$(e[r],t,n);return n.delete(e),i}function mn(e,t,n){e??={},t??={};let r=[],i={...t};for(let a in e)(!i[a]||i[a]!==e[a]&&!pn(i[a]?._src,e[a]))&&(t[a]=n(e[a]),t[a]!==e[a]&&(t[a]._src=$(e[a]),r.push(a))),delete i[a];Object.keys(i).forEach(e=>delete t[e])}const hn=[`#080`,`#800`,`#008`,`#880`,`#088`,`#808`],gn={indicator:!0,padding:[5,5,5,5],sources:void 0,series:void 0,tracks:void 0,selection:void 0};var _n=class extends T{#e;call;#t={};#n={};#r={};#i=!1;#a=[];#o=!1;#s=null;#c=0;constructor(e){super(),this.#e=new fn,this.call=ke(this.#e),Ae(this.#e,{sync:e=>{this.dispatchEvent(new w(`sync`,e,this.uid))},"renderer:event":async e=>{this.dispatchEvent(new w(`renderer:event`,e.value,e.uid))},"provider:loadChunk":async({key:e,chunk:t})=>await this.#r[e]?.loadChunk(t),"provider:loadMeta":async({key:e,zoom:t,resolution:n})=>await this.#r[e].loadMeta({zoom:t,resolution:n}),"view:changed":async e=>{for(let t in this.dispatchEvent(new w(`viewchanged`,e,this.uid)),this.#n)this.#n[t].updateDataRange(e.range,e.zoom);return!0}});let t=e.canvas.transferControlToOffscreen();this.call(`init`,{canvas:t},{transfer:[t]}),this.setFonts(e.fonts)}async setFonts(e){if(e){this.#i=!1,this.#d();let t=await He(e);this.call(`fonts`,t);return}this.#i=!0,this.#u(),await this.#p()}[Symbol.dispose](){this.dispose()}dispose(){this.#d(),this.#e.terminate()}setOptions(e){this.#l={},this.updateOptions({...gn,...e})}#l={};updateOptions(e){xe(this.#l,e);let t={...e},n=!1;if(`sources`in e&&mn(this.#l.sources,this.#t,e=>(n=!0,dn(e))),(n||`series`in e||`tracks`in e)&&(mn(this.#l.series,this.#n,e=>(e.data.color||(e.data.color=hn[this.#c++],this.#c%=hn.length),n=!0,ln({sources:this.#t,options:e}))),`tracks`in e&&(n=!0),n)){let e=[...Object.entries(this.#l.tracks??{default:{}}).filter(([,e])=>e.timeAxis!==!1).map(([e,t])=>[`tracks:${e}:timeAxis`,tn,{timeAxis:t.timeAxis},{immediate:!0}]),...Object.entries(this.#n).flatMap(([e,t])=>{let n={series:t,options:this.#l},r={zoomLevels:t.zoomLevels,chunkSize:t.chunkSize};return[[`series:${e}:chart`,Je,n,r],[`series:${e}:instantaneous`,Qe,n,{...r,instantValue:!0,instantZoomLevel:t.options.data.instantaneous?.zoom}]]})];t.dataCacheOptions={};let n={...this.#r};for(let[r,i,a,o]of e)this.#r[r]=new i(a),delete n[r],o&&(t.dataCacheOptions[r]=o);Object.keys(n).forEach(e=>delete this.#r[e])}this.call(`options:update`,t)}resize(e){this.call(`resize`,e)}onPointerEvent(e){this.call(`pointer`,e)}async pointerStyle(e){return await this.call(`cursor`,e,{rpc:!0})}sync(e,t){t&&t===this.uid||this.call(`sync`,e)}#u(){if(!this.#i||this.#o||typeof document>`u`)return;this.#o=!0;let e=[],t=document.fonts;if(t&&typeof t.addEventListener==`function`){let n=()=>this.#f();t.addEventListener(`loadingdone`,n),t.addEventListener(`loadingerror`,n),t.addEventListener(`loading`,n),e.push(()=>{t.removeEventListener(`loadingdone`,n),t.removeEventListener(`loadingerror`,n),t.removeEventListener(`loading`,n)})}if(typeof MutationObserver<`u`){let t=new MutationObserver(e=>{for(let t of e){if(t.type===`childList`&&[...Array.from(t.addedNodes??[]),...Array.from(t.removedNodes??[])].some(e=>vn(e))){this.#f();return}if(t.type===`attributes`&&vn(t.target)){this.#f();return}}});try{let n=document.head??document.documentElement??document;t.observe(n,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`rel`,`href`]}),e.push(()=>t.disconnect())}catch{t.disconnect()}}this.#a=e}#d(){if(this.#o){this.#o=!1;for(let e of this.#a)try{e()}catch{}this.#a=[],this.#s!=null&&(clearTimeout(this.#s),this.#s=null)}}#f(){this.#i&&this.#s==null&&(this.#s=setTimeout(()=>{this.#s=null,this.#p()},0))}async#p(){if(this.#i)try{let e=await Ue();this.call(`fonts`,e.length?e:void 0)}catch(e){console.error(`Failed to resolve document fonts`,e)}}invalidateSources(e){e||=Object.keys(this.#t);for(let t of e)this.#t[t]?.expireChunks();this.call(`reload`,null)}};function vn(e){return typeof HTMLStyleElement<`u`&&e instanceof HTMLStyleElement?!0:typeof HTMLLinkElement<`u`&&e instanceof HTMLLinkElement?e.rel?.toLowerCase()===`stylesheet`:!1}function yn(e){let t=e.deltaY;switch(e.deltaMode){case WheelEvent.DOM_DELTA_LINE:return t*16;case WheelEvent.DOM_DELTA_PAGE:return t*window.innerHeight}return t}var bn=class extends T{#e=null;#t=null;#n=null;#r;#i;#a;#o;get time(){return this.#r.time.value?.clone()??null}set time(e){this.setTime(e)}setTime(e,t){this.#r.setTime(e,t)}get timeRange(){return this.#r.time.domain.map(e=>e==null?e:e.clone())}setTimeRange(e){this.#r.setTimeRange(e)}get zoom(){return this.#r.zoom.value.number()}set zoom(e){this.setZoom(e)}setZoom(e,t){return this.#r.setZoom(e,t)}fitTo(e,t){if(!this.#s.width)return!1;let n=typeof t?.padding==`number`?t.padding*2:Array.isArray(t?.padding)?t.padding.reduce((e,t)=>e+t):0,r=e.map(e=>E(e)),i=Se(r[1].sub(r[0]).div(this.#s.width-n).abs()),a=r[0].add(r[1]).div(2);this.setZoom(i,t?.animation===!1?!1:void 0),this.setTime(a,t?.animation===!1?!1:void 0)}get zoomRange(){return this.#r.zoom.domain.map(e=>e==null?e:e.number())}setZoomRange(e){this.#r.setZoomRange(e)}setSelection(e){if(this.#i.selection===!1)return;let t=e?.map(e=>E(e))??null;this.#t?.updateOptions({selection:{range:t}})}clearSelection(){this.setSelection(null)}get animating(){return this.#r.time.animating}get editing(){return this.#r.time.editing}#s={x:0,y:0,width:0,height:0,dpr:0};get size(){return{...this.#s}}#c=!1;set disabled(e){this.#c=e,this.#n&&(this.#n.disabled=e)}get disabled(){return this.#c}get options(){return this.#i}setOptions(e){this.#i={style:void 0,...e},this.#l(this.#i,!0)}updateOptions(e){xe(this.#i,e),this.#l(e,!1)}#l(e,t){!this.#e||!this.#t||(`style`in e&&(this.#e.style.width=e.style?.width??`100%`,this.#e.style.height=e.style?.height??`36px`,this.#e.style.background=e.style?.background??`#fff`),t?this.#t.setOptions(e):this.#t.updateOptions(e),this.#u())}#u(){if(!this.#e||!this.#t)return;let e=window.devicePixelRatio,t=this.#e.getBoundingClientRect();if(this.#s.width===t.width&&this.#s.height===t.height&&this.#s.dpr===e)return;this.#s={x:t.x,y:t.y,width:t.width,height:t.height,dpr:e};let n=this.#s.width,r=this.#s.height;this.#t.resize({size:{width:n,height:r},context:{dpr:e}})}#d(){let e=this.#r.time,t=this.#r.zoom;this.#r.on(`change`,()=>this.changed()),this.#r.on(`timechanging`,e=>this.dispatchEvent(e)),this.#r.on(`timechanged`,e=>this.dispatchEvent(e)),this.#r.on(`zoomchanging`,e=>this.dispatchEvent(e)),this.#r.on(`zoomchanged`,e=>this.dispatchEvent(e)),e.on(`sync`,e=>this.#t?.sync({time:e.value},e.origin)),t.on(`sync`,e=>this.#t?.sync({zoom:e.value},e.origin))}#f(e){if(this.#c)return;e.preventDefault();let t=yn(e);this.#r.setZoom(this.#r.zoom.committing.add(-t/this.#o))}constructor(e){super();let t=e??{};this.#r=new ve(t),this.#d(),this.#i={style:void 0,...t},this.#a=t.fonts??[],t.target&&this.mount(t.target),this.#o=t.wheelSensitivity??C.wheelSensitivity}reload(e){this.#t?.invalidateSources(e)}mount(e){let t=typeof e==`string`?document.querySelector(e):e;if(!t)throw Error(`mount failed`);return(this.#e||this.#t||this.#n)&&console.warn(`Timescope: mounted twice`),this.#e?.remove(),this.#e=document.createElement(`canvas`),this.#e.style.all=`unset`,this.#e.style.display=`block`,this.#e.style.touchAction=`none`,this.#e.style.width=this.#i.style?.width??`100%`,this.#e.style.height=this.#i.style?.height??`36px`,this.#e.style.background=this.#i.style?.background??`#fff`,this.#t=new _n({canvas:this.#e,fonts:this.#a}),this.#t.setOptions(this.#i),this.#r.time.restore(),this.#r.zoom.restore(),new ResizeObserver(()=>this.#u()).observe(this.#e),this.#t.on(`change`,()=>this.changed()),this.#t.on(`sync`,e=>{e.value.time&&(this.#r.time.handleSyncEvent(e.value.time),this.#r.time.dispatchEvent(new w(`sync`,e.value.time,e.origin))),e.value.zoom&&(this.#r.zoom.handleSyncEvent(e.value.zoom),this.#r.zoom.dispatchEvent(new w(`sync`,e.value.zoom,e.origin)))}),this.#t.on(`renderer:event`,e=>{typeof e.value==`object`&&e.value&&`range`in e.value&&`resizing`in e.value&&this.dispatchEvent(new w(e.value.resizing?`rangechanging`:`rangechanged`,e.value.range,e.origin))}),this.#n=new De({element:this.#e,transform:e=>e.sub([this.#s.x,this.#s.y]),handler:e=>{this.#t?.onPointerEvent(e)},cursor:async e=>await this.#t?.pointerStyle(e)??void 0}),this.#e.addEventListener(`wheel`,this.#f.bind(this)),t.appendChild(this.#e),this}unmount(){this.#e?.remove(),this.#n?.detach(),this.#t?.dispose(),this.#t=null,this.#e=null,this.#n=null}dispose(){this.unmount()}};export{b as Decimal,bn as Timescope,ie as createDefineTimescopeOptions,se as createDefineTimescopeSeries,ae as createDefineTimescopeSources,oe as createDefineTimescopeTracks,ce as defineTimescopeOptions,de as defineTimescopeSeries,le as defineTimescopeSources,ue as defineTimescopeTracks};
|
|
1
|
+
function e(e,t=`Digits must be an integer`){if(typeof e==`number`){if(!Number.isFinite(e)||!Number.isInteger(e))throw Error(t);return BigInt(e)}return e}function t(t){let n=e(t);return n<0n?0n:n}function n(e){let t=Number(e);return t<y.length?y[t]:5n**BigInt(e)}function r(e){let t=Number(e);return t<te.length?te[t]:10n**BigInt(e)}function i(e,t,n){let r=BigInt(t);if(r<=0n)return new g(1n);let i=new g(1n),a=e.clone();for(;r&1n&&i.mul$(a,n),r>>=1n,r!==0n;)a.mul$(a,n);return i}function a(e,t,n,r){if(t.isZero()||r<=0)return new g(1n);let{guardPrec:a,rootPrec:s}=f(n,r),c=o(t.coeff).toString().padStart(r,`0`),l=e.round(s),u=new g(1n);for(let e=0;e<r;e++){l=l.root(10n,s);let t=c.charCodeAt(e)-48;if(t<=0)continue;let n=i(l.clone(),t,a);u.mul$(n,a)}return u.round$(n)}function o(e){return e<0n?-e:e}function s(e){if(e===``)throw Error(`Invalid number`);let t=1n,n=e;if(n[0]===`-`?(t=-1n,n=n.slice(1)):n[0]===`+`&&(n=n.slice(1)),n===``)throw Error(`Invalid number`);let r=n.indexOf(`.`),i=n,a=``;r>=0&&(i=n.slice(0,r),a=n.slice(r+1)),i===``&&(i=`0`);let o=(i+a).replace(/^0+/,``),s=o===``?`0`:o;return{coeff:t*BigInt(s),digits:BigInt(a.length)}}function c(e){let t=e.search(/[eE]/);if(t===-1)return s(e);let n=e.slice(0,t),r=e.slice(t+1);if(r.trim()===``)throw Error(`Invalid number`);let{coeff:i,digits:a}=s(n);return{coeff:i,digits:a-BigInt(r)}}function l(e,t){let n=e.digits>t.digits?e.digits:t.digits,i=n-e.digits,a=n-t.digits;return{digits:n,aCoeff:e.coeff*r(i),bCoeff:t.coeff*r(a)}}function u(e){let t=Math.max(0,Number(e));return Math.min(2**53-1,t)}function d(e,t,n){let r=u(t),i=u(n),a=Math.max(r,i)+1,o=Math.max(a,1),s=e+o;for(;;){let t=Math.ceil(s*ee)+o,n=Math.max(t*2,1),r=Math.max(a,Math.ceil(Math.log10(n))+1);if(r<=o){let e=s+o;return{guardPrec:o,fracPrec:s,bits:t,divPrec:e}}o=r,s=e+o}}function f(e,t){let n=Math.max(1,t),r=Math.max(6,Math.ceil(Math.log10(n*4))+2),i=e+BigInt(r);return{guardPrec:i,rootPrec:i+BigInt(Math.max(r,6))}}function p(e,t){let n=Math.max(1,t.toString().replace(`-`,``).length),r=Math.max(12,n+4);return{iterPrec:e+BigInt(r),stopShift:e+2n}}function m(e,t,n,r){let i=[],a=[],o=new g(t),s=1n,c=n+Math.max(r,1);for(;o.le(e);)i.push(o),a.push(s),o=o.mul(o),s*=2n;let l=new g(e),u=0n;for(let e=i.length-1;e>=0;e--){let t=i[e];l.ge(t)&&(l.div$(t,c),u+=a[e])}return{exponent:u,remainder:l}}function h(e,t,n,r){let i=n+Math.max(r,1);if(e.eq(v))return{exponent:0n,remainder:v.clone()};if(e.ge(v))return m(e,t,n,r);let a=m(v.div(e,i),t,n,r);return a.remainder.eq(v)?{exponent:-a.exponent,remainder:v.clone()}:{exponent:-a.exponent-1n,remainder:v.div(a.remainder,i).mul$(t)}}var g=class s{coeff;digits;constructor(e,t){if(typeof e==`number`){if(e!==e||e===1/0||e===-1/0)throw Error(`Invalid number`);({coeff:this.coeff,digits:this.digits}=c(e.toString()))}else if(typeof e==`string`){let t=e.trim();if(t===``)throw Error(`Invalid number`);({coeff:this.coeff,digits:this.digits}=c(t))}else if(typeof e==`bigint`)this.coeff=e,this.digits=t??0n;else if(typeof e==`object`&&e&&`coeff`in e&&typeof e.coeff==`bigint`&&`digits`in e&&typeof e.digits==`bigint`)this.coeff=e.coeff,this.digits=e.digits;else throw Error(`Invalid input type for Decimal`)}clone(){return new s({coeff:this.coeff,digits:this.digits})}#e(e,t=0n){return x(e)&&(t=e.digits,e=e.coeff),this.coeff=e,this.digits=t,this}#t(e,t,n){let i=this.coeff,a=e.coeff,s=e.digits+t-this.digits;s>=0n?i*=r(s):a*=r(-s);let c=i/a,l=i-c*a;if(l!==0n&&n!==`trunc`){let e=i>=0n;switch(n){case`floor`:e||(c-=1n);break;case`ceil`:e&&(c+=1n);break;case`round`:{let t=o(l),n=a<0n?-a:a;t*2n>=n&&(c+=e?1n:-1n);break}default:break}}return this.#e(c,t)}#n(t,n=`trunc`){let i=e(t);if(this.isZero())return this.digits=i,this;if(i===this.digits)return this;if(i>this.digits){let e=r(i-this.digits);return this.coeff*=e,this.digits=i,this}return this.#t(v,i,n)}#r(){if(this.coeff===0n)return this.digits=0n,this;if(this.digits<=0n)return this;for(;this.digits>0n&&this.coeff%10n==0n;)this.coeff/=10n,this.digits-=1n;return this}round$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`round`)}round(e=0,t=!1){return this.clone().round$(e,t)}roundBy$(e,t=`round`){let n=new s(e).abs();if(n.isZero())throw Error(`Cannot align to zero`);return this.div$(n,0n,t).mul$(n)}roundBy(e,t=`round`){return this.clone().roundBy$(e,t)}floor$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`floor`)}floor(e=0,t=!1){return this.clone().floor$(e,t)}floorBy$(e){return this.roundBy$(e,`floor`)}floorBy(e){return this.clone().floorBy$(e)}ceil$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`ceil`)}ceil(e=0,t=!1){return this.clone().ceil$(e,t)}ceilBy$(e){return this.roundBy$(e,`ceil`)}ceilBy(e){return this.clone().ceilBy$(e)}trunc$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`trunc`)}trunc(e=0,t=!1){return this.clone().trunc$(e,t)}rescale$(e,t=`trunc`){return e==null?this.#r():this.#n(e,t)}rescale(e,t=`trunc`){return this.clone().rescale$(e,t)}truncBy$(e){return this.roundBy$(e,`trunc`)}truncBy(e){return this.clone().truncBy$(e)}#i(e){let t=this.clone();return e(this),[this,t.sub$(this)]}split$(e,t=`floor`){return this.#i(n=>n.#n(e??0n,t))}split(e,t=`floor`){return this.clone().split$(e,t)}splitBy$(e,t=`floor`){return this.#i(n=>n.roundBy$(e,t))}splitBy(e,t=`floor`){return this.clone().splitBy$(e,t)}neg$(e){return e!==!1&&(this.coeff=-this.coeff),this}neg(e){return this.clone().neg$(e)}isZero(){return this.coeff===0n}isPositive(){return this.coeff>0n}isNegative(){return this.coeff<0n}add$(e){let t=b(e),{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r+i,this.digits=n,this}add(e){return this.clone().add$(e)}sub$(e){let t=b(e),{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r-i,this.digits=n,this}sub(e){return this.clone().sub$(e)}mul$(e,t){let n=b(e);return this.coeff*=n.coeff,this.digits+=n.digits,t!==void 0&&this.round$(t),this}mul(e,t){return this.clone().mul$(e,t)}shift10$(t){let n=e(t,`Shift amount must be an integer`);return n===0n||(this.digits-=n),this}shift10(e){return this.clone().shift10$(e)}inverse$(e=_){if(this.isZero())throw Error(`Division by zero`);let n=t(e),r=this.clone();return this.#e(1n).div$(r,n)}inverse(e=_){return this.clone().inverse$(e)}div$(e,n,r=`round`){let i=n===void 0,a=t(n??_),o=b(e);if(o.isZero())throw Error(`Division by zero`);return this.isZero()?this:(this.#t(o,a,r),i?this.#r():this)}div(e,t,n=`round`){return this.clone().div$(e,t,n)}abs$(){return this.isNegative()&&(this.coeff=-this.coeff),this}abs(){return this.clone().abs$()}mod$(e){let t=b(e);if(t.isZero())throw Error(`Division by zero`);let{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r%i,this.digits=n,this}mod(e){return this.clone().mod$(e)}modPositive$(e){let t=b(e);if(t.isNegative())throw Error(`Modulo divisor must be positive`);return this.mod$(t),this.isNegative()&&this.add$(t),this}modPositive(e){return this.clone().modPositive$(e)}clamp$(e,t){let n=b(e),r=b(t);if(n&&r&&n.gt(r))throw Error(`Invalid clamp range`);return n&&this.lt(n)?(this.coeff=n.coeff,this.digits=n.digits,this):r&&this.gt(r)?(this.coeff=r.coeff,this.digits=r.digits,this):this}clamp(e,t){return this.clone().clamp$(e,t)}cmp(e){let t=b(e),{aCoeff:n,bCoeff:r}=l(this,t);return n===r?0:n>r?1:-1}eq(e){return this.cmp(e)===0}neq(e){return this.cmp(e)!==0}lt(e){return this.cmp(e)<0}gt(e){return this.cmp(e)>0}le(e){return this.cmp(e)<=0}ge(e){return this.cmp(e)>=0}between(e,t){let n=b(e),r=b(t);if(n&&r&&n.gt(r))throw Error(`Invalid between range`);return!(n&&this.lt(n)||r&&this.gt(r))}isCloseTo(e,t){let n=b(t);if(n.isNegative())throw Error(`Tolerance must be non-negative`);return this.sub(e).abs$().le(n)}pow$(e,n=_){let r=t(n),o=b(e);if(o.isZero())return this.#e(1n);if(this.isZero()){if(o.isNegative())throw Error(`Zero to negative exponent is undefined`);return this}let s=o.isNegative(),[c,l]=o.abs().split$(),u=this.clone(),d=l.isZero()?0:Number(l.digits);if(u.isNegative()&&d>0)throw Error(`Fractional exponent requires non-negative base`);let f=i(u,c.coeff),p=r;d>0&&(p=r+BigInt(Math.max(4,d)));let m=a(u,l,p,d);d>0&&f.mul$(m,p);let h=p>r?p:r,g=d>0?p:r;return s?this.#e(1n).div$(f,h):(f.round$(h,!0),this.#e(f)),this.round$(g,g===0n),this}pow(e,t=_){return this.clone().pow$(e,t)}root$(n,r=_){let a=e(n,`Root degree must be an integer`);if(a<=0n)throw Error(`Invalid root degree`);let o=t(r);if(a===1n)return o<this.digits?this:this.trunc$(o,!0);if(this.isZero())return this;let c=this.isNegative();if(c&&a%2n==0n)throw Error(`Even root of negative value is not defined`);let l=this.abs(),u=a-1n,{iterPrec:d,stopShift:f}=p(o,a),m=ne(-f),h=(()=>{let e=l.number();if(Number.isFinite(e)&&e>0){let t=Number(a);if(t>0){let n=e**(1/t);if(Number.isFinite(n)&&n>0)return new s(n).round$(d,!0)}}return new s(ne(l.order()/a)).round$(d,!0)})();this.#e(h.coeff,h.digits),this.isZero()&&this.#e(1n);for(let e=0;e<64;e++){let e=i(this.clone(),u,d);if(e.isZero())break;let t=l.div(e,d),n=this.mul(u,d).add$(t).div$(a,d);if(n.isCloseTo(this,m)||n.eq(this)){this.#e(n);break}this.#e(n)}return this.round$(d,!0),this.round$(o,o===0n),c&&this.neg$(),this}root(e,t=_){return this.clone().root$(e,t)}sqrt$(e=_){return this.root$(2n,e)}sqrt(e=_){return this.clone().sqrt$(e)}log$(e,r=_){let i=Number(t(r)),a=new s(e);if(!this.isPositive())throw Error(`Logarithm argument must be positive`);if(!a.isPositive())throw Error(`Logarithm base must be positive`);if(a.eq(v))throw Error(`Logarithm base cannot be one`);let{guardPrec:o,fracPrec:c,bits:l,divPrec:u}=d(i,a.digits,this.digits),f=a.lt(v),p=f?v.div(a,u):a,{exponent:m,remainder:g}=h(this,p,c,o);if(this.#e(m),c>0){let e=0n;for(let t=0;t<l;t++)g.mul$(g,u),e<<=1n,g.ge(p)&&(g.div$(p,u),e|=1n);e!==0n&&this.add$({coeff:e*n(l),digits:BigInt(l)})}let ee=i===0?0:c;return this.round$(ee),f&&this.neg$(),this}log(e,t=_){return this.clone().log$(e,t)}sign$(){return this.isZero()?this:(this.coeff=this.coeff<0n?-1n:1n,this.digits=0n,this)}sign(){return this.clone().sign$()}order(){if(this.isZero())throw RangeError(`order undefined for 0`);return BigInt(o(this.coeff).toString().length)-1n-this.digits}toFixed(t){let n=`Fraction digits must be a non-negative integer`,r=e(t,n);if(r<0n)throw Error(n);return this.round(r,!0).toString()}toString(){if(this.coeff===0n)return this.digits<=0n?`0`:`0.${`0`.repeat(Number(this.digits))}`;let e=this.coeff<0n,t=e?`-`:``,n=(e?-this.coeff:this.coeff).toString();if(this.digits<=0n)return`${t}${n}${`0`.repeat(Number(-this.digits))}`;let r=Number(this.digits),i=n.padStart(r+1,`0`),a=i.length-r;return`${t}${i.slice(0,a)}.${i.slice(a).padEnd(r,`0`)}`}[Symbol.for(`nodejs.util.inspect.custom`)](e,t){return`colors`in t&&t?.colors?`\x1b[33m${this.toString()}\x1b[m \x1b[90m(${this.coeff} * 10 ** ${-this.digits})\x1b[m`:this.toString()}number(){return Number(this.toString())}integer(){return this.digits<=0n?this.coeff*r(-this.digits):this.coeff/r(this.digits)}};const _=18n,ee=Math.log2(10),v=new g(1n),y=[],te=[];(function(){for(let e=0;e<256;e++)te[e]=10n**BigInt(e),y[e]=5n**BigInt(e)})();function b(e){return e==null||x(e)?e:new g(e)}(function(e){function t(e){return e instanceof g}e.isDecimal=t;function n(e){return!!(t(e)||typeof e==`string`||typeof e==`number`||typeof e==`bigint`||typeof e==`object`&&e&&`coeff`in e&&`digits`in e&&typeof e.coeff==`bigint`&&typeof e.digits==`bigint`)}e.isDecimalLike=n;function r(e){return new g({coeff:1n,digits:-BigInt(e)})}e.pow10=r;function i(...e){let t=null,n=null;for(let r=0;r<e.length;r++){let i=b(e[r]);i!=null&&((t===null||i.lt(t))&&(t=i),(n===null||i.gt(n))&&(n=i))}return[t,n]}e.minmax=i;function a(...e){return i(...e)[0]}e.min=a;function o(...e){return i(...e)[1]}e.max=o})(b||={});const x=b.isDecimal;b.isDecimalLike;const ne=b.pow10,S=b.minmax;b.min,b.max;function re(e){if(typeof e==`number`&&isNaN(e)||typeof e==`number`&&!isFinite(e))return null;try{return b(e)}catch{return null}}function ie(e){return function(t){return e?e(t):t}}function ae(e){return function(t){return e?e(t):t}}function oe(e){return function(t){return e?e(t):t}}function se(e){return function(t,n,r){return e?e(t):t}}const ce=ie(),le=ae(),ue=oe(),de=se();var C={clickTolerance:8,defaultChunkSize:256,base:2,chunkStep:1,wheelSensitivity:200};function fe(e){if(globalThis._uid||(globalThis._uid=1),e){if(`_uid`in e)return String(e._uid);e._uid=String(globalThis._uid),Object.defineProperty(e,`_uid`,{enumerable:!1})}return String(globalThis._uid++)}var pe=class{uid=fe(this);#e={};dispatchEvent(e){let t=typeof e==`string`?e:e.type,n=this.#e[t];if(n)for(let t of n)t(e)}on(e,t){let n=this.#e[e]??[];return n.push(t),this.#e[e]=n,()=>this.un(e,t)}un(e,t){let n=this.#e[e];if(!n)return;let r=n.indexOf(t);r>=0&&n.splice(r,1)}},w=class{type;value;origin;stopped=!1;prevented=!1;constructor(e,t,n){this.type=e,this.value=t,this.origin=n}stopPropagation(){this.stopped=!0}preventDefaults(){this.prevented=!0}},T=class extends pe{#e=0;changed(){this.#e++,this.dispatchEvent(`change`)}get revision(){return this.#e}};function E(e){if(e==null||x(e))return e;if(typeof e==`string`){let t=Date.parse(e);if(Number.isNaN(t))throw Error(`Parse error as Date`);return b(t/1e3)}return e instanceof Date?b(e.getTime()/1e3):b(e)}function me(e){return e.map(E)}const he=globalThis.requestAnimationFrame??(e=>setTimeout(e,0)),ge=globalThis.cancelAnimationFrame??(e=>clearTimeout(e));var _e=class{#e=null;#t;start(e){e={animation:`in-out`,duration:500,...e},this.cancel(),this.#t=()=>e.done?.(e.target());let t=e.overshoot??0,n=e.duration??500,r=performance.now(),i=e.animation?{linear:e=>e,"in-out":e=>e*e*e*(e*(e*6-15)+10),out:e=>1+(t+1)*(e-1)**3+t*(e-1)**2}[String(e.animation)]:null;if(!i||e.origin()===e.target()){this.done();return}let a=()=>{let t=performance.now()-r;if(t<n){let r=i(t/n),o=e.origin()*(1-r)+e.target()*r;e.update(o,r),this.#e=he(a)}else this.done()};this.#e=he(a)}done(){this.cancel(),this.#t?.()}cancel(){this.#e&&=(ge(this.#e),null)}get animating(){return this.#e!==null}};function D(e,t,n){let r=e??n;if(t[0]!==void 0){let e=t[0]??n;if(r.lt(e))return t[0]}if(t[1]!==void 0){let e=t[1]??n;if(r.gt(e))return t[1]}return e}var O=class extends T{#e;#t={id:void 0,value:null,nullValue:b(0),committed:null,committing:null,current:null,candidate:null,domain:[void 0,void 0],editing:!1,animating:!1,cursorMode:`current`,updated:!1};#n=new _e;#r;get candidate(){return this.#t.candidate}get value(){return this.#t.value}get committing(){return this.#t.committing}parseValue(e){return b(e)}setValue(e,t){t??=!1;let n=this.parseValue(e);if(this.#t.value===n||n&&this.#t.value?.eq(n))return;let r=typeof t==`object`?t:{animation:t};this.begin(n),this.commit(r)}get committed(){return this.#t.committed}get current(){return this.#t.current}get domain(){return this.#t.domain}set domain(e){let t=e.map(e=>b(e));this.#t.domain=t,this.restore(),this.#c(),this.setValue(D(this.value,t,this.#t.nullValue)),this.changed()}get editing(){return this.#t.editing}get animating(){return this.#t.animating}get cursor(){return this.#t.cursorMode===`current`?this.#t.current:this.#t.committing}constructor(e={initialValue:0}){super(),e.domain&&(this.#t.domain=e.domain.map(e=>b(e))),e.onNull&&(this.#r=e.onNull,this.#c()),this.#e=e.lazy??!1;let t=D(b(e.initialValue),this.#t.domain,this.#t.nullValue);this.#t.value=t,this.#t.committed=t,this.#t.current=t,this.#t.candidate=t,this.#t.committing=t}handleSyncEvent(e){switch(e.type){case`begin`:this.#i(e);break;case`update`:this.#a(e);break;case`commit`:this.#o(e);break;case`restore`:this.#l(e);break;case`set:nullvalue`:this.#s(e);break}}begin(e){this.#c(),e===void 0&&(e=this.#t.current);let t=D(e,this.#t.domain,this.#t.nullValue),n={type:`begin`,candidate:t};this.dispatchEvent(new w(`sync`,n)),this.dispatchEvent(new w(`valuechanging`,t)),this.#i(n)}#i({candidate:e}){this.#n.cancel(),this.#t.cursorMode=`current`,this.#t.editing=!0,this.#t.updated=!1,this.#t.candidate=e,this.dispatchEvent(new w(`valuechanging`,e)),this.changed()}update(e){this.#c();let t=this.#t.nullValue,n=D(e,this.#t.domain,t),r={type:`update`,candidate:n,current:(e??t).sub(this.#t.current??t).mul(n===e?1:.5).add(this.#t.current??t)};this.dispatchEvent(new w(`sync`,r)),this.#a(r)}#a({candidate:e,current:t}){this.#t.editing=!0,this.#t.updated=!0,this.#t.candidate=e,this.#t.current=t,this.dispatchEvent(new w(`valuechanging`,e)),this.changed()}commit(e={}){this.#c();let t=e.value===void 0?this.#t.candidate:e.value,n=t,r=D(t,this.#t.domain,this.#t.nullValue),i=e.animation===void 0?this.#t.updated?`current`:`target`:this.#t.cursorMode,a={type:`commit`,targetValue:r,animation:e.animation===void 0?this.#t.editing?`out`:`in-out`:e.animation,duration:e.duration??500,cursorMode:i,divergentValue:n,lazy:e.lazy??this.#e};this.dispatchEvent(new w(`sync`,a)),this.#o(a)}#o({targetValue:e,divergentValue:t,animation:n,duration:r,cursorMode:i,lazy:a}){let o=()=>{this.#t.value=e,this.#t.editing=!1,this.changed(),this.dispatchEvent(new w(`valuechanging`,this.#t.value)),this.dispatchEvent(new w(`valuechanged`,this.#t.value))},s=this.#t.current??this.#t.nullValue,c=e??this.#t.nullValue,l=t??this.#t.nullValue,u=0;c.neq(l)&&l.neq(s)&&(u=3*(l.sub(s).div(c.sub(s)).number()-1)/2),this.#t.cursorMode=i,this.#t.candidate=e,this.#t.committing=e,a||o();let d=c.eq(s)?0:1;this.#t.animating=!0,this.#n.start({origin:()=>0,target:()=>d,update:t=>{this.#c(),this.#t.animating=!0;let n=(e??this.#t.nullValue).sub(s).mul(t).add(s);this.#t.current=n,this.changed()},done:()=>{this.#t.animating=!1,this.#t.current=e,a&&o(),this.#t.committed=e,this.changed()},animation:n,duration:r,overshoot:u})}#s({nullValue:e}){this.#t.nullValue=e}#c(){if(!this.#r)return;let e=this.parseValue(this.#r())??this.#t.nullValue;this.#t.nullValue=e}toString(){return JSON.stringify(this)}toJSON(){return{value:this.value,candidate:this.candidate,committed:this.committed,committing:this.committing,current:this.current,editing:this.editing,animating:this.animating}}#l({value:e,domain:t}){this.#n.cancel(),this.#t.cursorMode=`current`,this.#t.value=e,this.#t.candidate=e,this.#t.committed=e,this.#t.committing=e,this.#t.current=e,this.#t.editing=!1,this.#t.animating=!1,this.#t.domain=t}restore(){let e={type:`restore`,value:this.value,domain:this.#t.domain};this.dispatchEvent(new w(`sync`,e)),this.#l(e)}},ve=class extends T{time;zoom;constructor(e){super(),this.time=new O,this.zoom=new O,this.time=new O({initialValue:E(e.time??null),domain:me(e.timeRange??[void 0,null]),onNull:()=>Date.now()/1e3}),this.zoom=new O({initialValue:e.zoom??0,domain:e.zoomRange}),this.time.on(`change`,()=>this.changed()),this.zoom.on(`change`,()=>this.changed()),this.time.on(`valuechanging`,e=>this.dispatchEvent(new w(`timechanging`,e.value))),this.time.on(`valuechanged`,e=>this.dispatchEvent(new w(`timechanged`,e.value))),this.zoom.on(`valuechanging`,e=>this.dispatchEvent(new w(`zoomchanging`,e.value.number()))),this.zoom.on(`valuechanged`,e=>this.dispatchEvent(new w(`zoomchanged`,e.value.number())))}setTime(e,t){if(typeof e==`number`&&!isFinite(e)||typeof e==`number`&&isNaN(e))return!1;t??=`out`;try{this.time.setValue(E(e),t)}catch{return!1}return!0}setTimeRange(e){this.time.domain=me(e??[void 0,null])}setZoom(e,t){if(typeof e==`number`&&!isFinite(e)||typeof e==`number`&&isNaN(e))return!1;t??={animation:`linear`,duration:200,lazy:this.zoom.value.lt(e)};try{this.zoom.setValue(b(e),t)}catch{return!1}return!0}setZoomRange(e){this.zoom.domain=(e??[void 0,void 0]).map(b)}};function k(e,...t){return typeof e==`function`?e(...t):Array.isArray(e)?e.map(e=>k(e,...t)):typeof e==`object`&&e?Object.fromEntries(Object.entries(e).map(([e,n])=>[e,k(n,...t)])):e}function ye(e){return function(t){let n=e.split(`,`).map(e=>e.trim()),r=t;for(let e of n){let n=e.split(`.`);r=t;for(let e=0;e<n.length&&r!=null;e++){if(typeof r!=`object`){r=null;break}r=r[n[e]]}if(r!=null)return r}return r}}function be(e){return Object.prototype.toString.call(e)===`[object Object]`}function xe(e,t){for(let n in t){let r=t[n],i=e[n];Array.isArray(r)?e[n]=r.slice():r&&typeof r==`object`&&be(r)?((!i||typeof i!=`object`)&&(e[n]={}),xe(e[n],r)):e[n]=r}return e}const A={z:0,r:b(1)};function Se(e){return A.r.eq(e)?A.z:-e.log(C.base).number()}function Ce(e){return A.z===e?A.r:(A.z=e,A.r=b(C.base).pow(-e,BigInt(Math.floor(e))),A.r)}function we(e,t){return t?t.reduce((t,n)=>Math.abs(n-e)<Math.abs(t-e)?n:t,t[0]):Number(b(e).floorBy(C.chunkStep).toFixed(2))}var Te=class{values;constructor(...e){this.values=e}clone(){return new this.constructor(...this.values)}get length(){return this.values.length}set(...e){return this.values=e,this}add(e){if(Array.isArray(e)||(e=e.values),e.length!==this.length)throw Error(`Vector size mismatch`);for(let t=this.length-1;t>=0;t--)this.values[t]+=e[t];return this}sub(e){if(Array.isArray(e)||(e=e.values),e.length!==this.length)throw Error(`Vector size mismatch`);for(let t=this.length-1;t>=0;t--)this.values[t]-=e[t];return this}scale(e){for(let t=this.length-1;t>=0;t--)this.values[t]*=e;return this}get norm(){return Math.sqrt(this.values.reduce((e,t)=>e+t**2,0))}normalize(){let e=this.norm;return e?this.scale(1/e):this}distanceTo(e){return this.clone().sub(e).norm}},Ee=class extends Te{get x(){return this.values[0]}set x(e){this.values[0]=e}get y(){return this.values[1]}set y(e){this.values[1]=e}toJSON(){return{x:this.x,y:this.y}}},De=class{#e=`none`;#t={};#n=[];#r;#i;#a={none:[[[`pointerdown`,1,this.#o.bind(this)],`down`,[`down`]]],down:[[[`pointerdown`,2,this.#s.bind(this)],`pinch`,[`drag:start`,`pinch:start`]],[[`pointermove`,1,this.#l.bind(this)],`drag`,[`drag:start`]],[[`pointerup`,0],`none`,[`click`,`up`]],[[`pointercancel`,0],`none`,[`up`]]],drag:[[[`pointerdown`,2,this.#s.bind(this)],`pinch`,[`pinch:start`]],[[`pointermove`,1],`drag`,[`drag:update`]],[[`pointerup`,0],`none`,[`drag:end`,`up`]],[[`pointercancel`,0],`none`,[`drag:end`,`up`]]],pinch:[[[`pointermove`,2],`pinch`,[`pinch:update`]],[[`pointerup`,1,this.#c.bind(this)],`drag`,[`pinch:end`]],[[`pointercancel`,0],`none`,[`pinch:end`,`up`]]]};get state(){return this.#e}disabled=!1;#o(e){return this.#n.forEach(e=>e.anchor=e.latest.clone()),!0}#s(e){return this.#n.forEach(e=>e.anchor=e.latest.clone()),!0}#c(e){return this.#n.forEach(e=>e.anchor=e.latest.clone()),!0}#l(){let e=this.#n.find(e=>e.pressed)||this.#n[0];return e.latest.distanceTo(e.anchor)<4?!1:(this.#n.forEach(e=>e.anchor=e.latest.clone()),!0)}#u(e){if(this.disabled)return;let t=new Ee(e.clientX,e.clientY),n=this.#i(t,e)??t,r=!!(e.buttons&1),i=this.#t[e.pointerId]?.latest??n;this.#t[e.pointerId]={pointerId:e.pointerId,last:i,latest:n,delta:n.clone().sub(i),anchor:this.#t[e.pointerId]?.anchor??n,pressed:r};let a=Object.values(this.#t),o=a.filter(e=>e.pressed).length;this.#n=a.filter(t=>t.pressed||t.pointerId===e.pointerId),this.#m(e,o),this.#f(e),r||delete this.#t[e.pointerId]}#d;async#f(e){this.#r&&this.#d&&(this.#r.style.cursor=await this.#d({type:`cursor`,state:this.#e,buttons:this.#n,latest:this.#t[e.pointerId],shiftKey:e.shiftKey})??``)}#p;#m(e,t){let[[n,r,i],a,o]=this.#a[this.#e].find(([[n,r]])=>(n===`*`||n===e.type)&&(r===void 0||r===t))??[[`*`],this.#e];i?.(e)!==!1&&(this.#e=a,o&&o.forEach(t=>this.#p({type:t,state:this.#e,buttons:this.#n,latest:this.#t[e.pointerId],shiftKey:e.shiftKey})))}constructor(e={}){this.#i=e.transform??(e=>e),this.#p=e.handler??(async()=>void 0),this.#d=e.cursor,e.element&&this.attach(e.element)}#h;attach(e){this.#h?.abort(),this.#h=new AbortController;let t=this.#h.signal,n=e=>this.#u(e);return e.addEventListener(`pointerdown`,n,{signal:t}),window.addEventListener(`pointermove`,n,{passive:!0,signal:t}),window.addEventListener(`pointerup`,n,{passive:!0,signal:t}),window.addEventListener(`pointercancel`,n,{passive:!0,signal:t}),e.addEventListener(`touchstart`,e=>e.preventDefault(),{signal:t}),this.#r=e,this}detach(){this.#h?.abort()}};let Oe=0;function ke(e){return function(t,n,r={rpc:!1}){let i=++Oe;return e.postMessage({type:r.rpc?`rpc`:`event`,command:t,seq:i,payload:je(n,r.transfer)},r.transfer??[]),r.rpc?new Promise(n=>{let r=a=>{a.data.type===`rpc:ack`&&a.data.command===t&&a.data.seq===i&&(e.removeEventListener(`message`,r),n(M(a.data?.payload)))};e.addEventListener(`message`,r)}):Promise.resolve()}}function Ae(e,t){return e.addEventListener(`message`,async({data:{type:n,command:r,seq:i,payload:a}})=>{let o=r in t&&await t[r](M(a))||null;n===`rpc`&&e.postMessage({type:`rpc:ack`,command:r,seq:i,payload:je(o)})}),t}function j(e,t,n){if(e==null)return e;let r=typeof e;if(r===`string`||r===`number`||r===`boolean`||r===`bigint`)return e;if(r===`undefined`||r===`symbol`||r===`function`)return;if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||t?.includes(e))return e;if(n.has(e))throw TypeError(`Cannot serialize circular reference`);if(n.add(e),typeof e.toJSON==`function`){let r=e.toJSON();if(r!==e){let i=j(r,t,n);return n.delete(e),i}}if(Array.isArray(e)){let r=Array(e.length);for(let i=0;i<e.length;i++)r[i]=j(e[i],t,n);return n.delete(e),r}if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)return n.delete(e),e;let i={};for(let r of Object.keys(e))i[r]=j(e[r],t,n);return n.delete(e),i}function je(e,t){return j(e,t,new WeakSet)}function Me(e){return typeof e==`object`&&!!e&&`coeff`in e&&`digits`in e&&typeof e.coeff==`bigint`&&typeof e.digits==`bigint`}function M(e){if(e==null)return e;let t=typeof e;if(t===`string`||t===`number`||t===`boolean`||t===`bigint`)return e;if(!(t===`undefined`||t===`symbol`||t===`function`)){if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas)return e;if(Me(e))return b(e);if(Array.isArray(e))return e.map(M);if(e&&typeof e==`object`){let t={};for(let n of Object.keys(e))t[n]=M(e[n]);return t}return e}}const Ne=[[`font-style`,`style`],[`font-weight`,`weight`],[`font-stretch`,`stretch`],[`unicode-range`,`unicodeRange`],[`font-variant`,`variant`],[`font-feature-settings`,`featureSettings`],[`font-display`,`display`],[`ascent-override`,`ascentOverride`],[`descent-override`,`descentOverride`],[`line-gap-override`,`lineGapOverride`]];function Pe(){return{visited:new Set}}function Fe(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):t}function Ie(e,t){return e.replace(/url\(([^)]+)\)/gi,(e,n)=>{let r=n.trim(),i=Fe(r);if(!i)return`url(${n})`;try{let e=new URL(i,t).toString(),n=r.startsWith(`"`)?`"`:r.startsWith(`'`)?`'`:``;return`url(${n}${e}${n})`}catch{return`url(${n})`}})}function Le(e,t){let n=e.style.getPropertyValue(`font-family`),r=e.style.getPropertyValue(`src`),i=Fe(n);if(!i||!r)return null;let a={};for(let[t,n]of Ne){let r=e.style.getPropertyValue(t);r.trim()&&(a[n]=r.trim())}return{family:i,source:t?Ie(r,t):r,desc:a}}function N(){if(typeof document<`u`&&document.baseURI)return document.baseURI;if(typeof location<`u`&&location.href)return location.href}function Re(e,t){try{return t?new URL(e,t).toString():new URL(e).toString()}catch{return null}}function ze(e){try{let t=e.cssRules;return Array.from(t)}catch{return null}}async function Be(e,t,n){let r=[],i=t??N();for(let t of e){if(t.type===CSSRule.FONT_FACE_RULE){let e=Le(t,i);e&&r.push(e);continue}if(t.type===CSSRule.IMPORT_RULE){let e=Re(t.href,i);if(!e)continue;r.push(...await P(e,n))}}return r}async function Ve(e,t,n){let r=ze(e);return r?await Be(r,t??e.href??N(),n):e.href?await P(e.href,n,t):[]}async function P(e,t,n){let r=Re(e,n);if(!r||t.visited.has(r))return[];if(t.visited.add(r),typeof fetch>`u`||typeof CSSStyleSheet>`u`)throw Error(`Failed to load CSS: ${r}`);try{let e=await fetch(r);if(!e.ok)throw Error();let n=await e.text(),i=new CSSStyleSheet;return await i.replace(n),await Ve(i,e.url,t)}catch{throw Error(`Failed to load CSS: ${r}`)}}async function He(e){let t=Pe(),n=[];for(let r of e){if(typeof r==`string`){let e=await P(r,t);n.push(...e);continue}else typeof r.source==`string`&&(r.source=Ie(r.source,location.href));n.push(r)}return n}async function Ue(){if(typeof document>`u`||!document.styleSheets)return[];let e=Pe(),t=[],n=N();for(let r of Array.from(document.styleSheets)){let i;try{i=r}catch{continue}let a=i.href??n;try{let n=await Ve(i,a,e);t.push(...n)}catch{continue}}return t}var We=class{options;constructor(e){this.options=e}loadMeta(e){}},Ge=class extends We{constructor(e){super(e)}async loadChunk(e){let t=await this.options.series.loadChunk(e);return await this.transform(t)}async transform(e){return e}};const Ke={lines:{links:[{draw:`line`}]},"lines:filled":{links:[{draw:`area`},{draw:`line`}]},curves:{links:[{draw:`curve`}]},"curves:filled":{links:[{draw:`curve-area`},{draw:`curve`}]},"steps-start":{links:[{draw:`step-start`}]},"steps-start:filled":{links:[{draw:`step-area-start`},{draw:`step-start`}]},steps:{links:[{draw:`step`}]},"steps:filled":{links:[{draw:`step-area`},{draw:`step`}]},"steps-end":{links:[{draw:`step-end`}]},"steps-end:filled":{links:[{draw:`step-area-end`},{draw:`step-end`}]},points:{marks:[{draw:`circle`}]},linespoints:{links:[{draw:`line`}],marks:[{draw:`circle`}]},"linespoints:filled":{links:[{draw:`area`},{draw:`line`}],marks:[{draw:`circle`}]},curvespoints:{links:[{draw:`curve`}],marks:[{draw:`circle`}]},"curvespoints:filled":{links:[{draw:`curve-area`},{draw:`curve`}],marks:[{draw:`circle`}]},"stepspoints-start":{links:[{draw:`step-start`}],marks:[{draw:`circle`}]},"stepspoints-start:filled":{links:[{draw:`step-area-start`},{draw:`step-start`}],marks:[{draw:`circle`}]},stepspoints:{links:[{draw:`step`}],marks:[{draw:`circle`}]},"stepspoints:filled":{links:[{draw:`step-area`},{draw:`step`}],marks:[{draw:`circle`}]},"stepspoints-end":{links:[{draw:`step-end`}],marks:[{draw:`circle`}]},"stepspoints-end:filled":{links:[{draw:`step-area-end`},{draw:`step-end`}],marks:[{draw:`circle`}]},impulses:{marks:[{draw:`line`,using:[`value`,`zero`]}]},impulsespoints:{marks:[{draw:`line`,using:[`value`,`zero`]},{draw:`circle`}]},boxes:{marks:[{draw:`box`,using:[`value`,`zero`],style:{fillColor:`transparent`}}]},"boxes:filled":{marks:[{draw:`box`,using:[`value`,`zero`]}]}};function qe(e){return Ke[e]??{}}var Je=class extends Ge{marks;links;constructor(e){super(e);let t=typeof e.series.options.chart==`string`?qe(e.series.options.chart):e.series.options.chart??{};this.marks=t.marks,this.links=t.links}async transform(e){let t=e.data?.map(t=>{let n={resolution:e.resolution,data:t.data??{},time:t.time,value:t.value},r=k(this.marks,n);return{...t,marks:r?.map(e=>({...e,style:k(e.style,n)??{}}))??[]}});return{...e,data:t}}async loadMeta({resolution:e}){return{links:k(this.links,{resolution:e})?.map(e=>({...e,style:k(e.style,null)??{}}))??[],color:this.options.series.color,...this.options.series.dataRange}}};function Ye(e){let t=typeof e==`string`?[e,e]:e.length===1?[e[0],e[0]]:e,n=t[0].split(`@`),r=t[1].split(`@`);return[[n[0]||`value`,n[1]||`time`],[r[0]||`value`,r[1]||`time`]]}function Xe(e){return e?{using:e.using??`value`,zoom:e.zoom}:{using:`value`,zoom:void 0}}function Ze(e){let t=({name:e,unit:t,digits:n,value:r})=>{if(r==null)return`No data`;let i=[];return e&&i.push(e),i.push(r.toFixed(n)),t&&i.push(t),i.join(` `)};return typeof e==`boolean`||!e?{format:t}:{...e,format:e.format??t}}var Qe=class extends Ge{#e;#t;constructor(e){super(e),this.#e=Xe(e.series.options.data.instantaneous),this.#t=Ze(e.series.options.tooltip)}async transform(e){let{name:t,unit:n,digits:r}=this.options.series,i=this.#t.format,a=Ye(k(this.#e.using,e))[0],o=e.data?.flatMap(e=>{if(!this.#e)return[];let o=e.time[a[1]],s=e.value[a[0]];return[{time:{time:o},value:s,text:i({time:o,value:s,unit:n,digits:r,name:t})}]});return{...e,data:o}}async loadMeta(e){let t=this.options.series.color;return{...this.options.series.dataRange,color:t}}};const $e=b(1n),et=b(0n),F=60n,I=F*60n,L=I*24n,R=8640000000000n;function z(e,t){let n=e/t,r=e%t;return r!==0n&&r>0n!=t>0n&&(n-=1n),n}function tt(e,t){return e-z(e,t)*t}function nt(e){return e>0n?e:e+1n}function rt(e){return e>0n?e:e-1n}function B(e,t){let n=nt(e),r=t-1n,i=z(r,12n),a=r-i*12n;return{year:rt(n+i),month:a+1n,day:1n}}function V(e,t,n){let r=B(e,t);return at(it(r.year,r.month,n))}function it(e,t,n){let r=nt(e),i=t,a=n;i<=2n&&(r-=1n);let o=r/400n-(r<0n?1n:0n),s=r-o*400n;i+=i>2n?-3n:9n;let c=(153n*i+2n)/5n+a-1n,l=s*365n+s/4n-s/100n+c;return o*146097n+l-719468n}function at(e){let t=e+719468n,n=t/146097n-(t<0n?1n:0n),r=t-n*146097n,i=(r-r/1460n+r/36524n-r/146096n)/365n,a=i+n*400n,o=r-(365n*i+i/4n-i/100n),s=(5n*o+2n)/153n,c=o-(153n*s+2n)/5n+1n,l=s+(s<10n?3n:-9n);return l<=2n&&(a+=1n),{year:rt(a),month:l,day:c}}function ot(e){return e>R?R:e<-R?-R:e}function st(e){let t=ot(e);return-BigInt(Math.floor(new Date(Number(t)*1e3).getTimezoneOffset()))*F}function ct(e){return st(e)}function lt(e){return st(e)}function ut(e){let t=it(e.year,e.month,e.day),n=e.hour*I+e.minute*F+e.second,r=t*L+n;return b(r-lt(r)).add(e.subseconds)}function dt(e){let t=V(e.year,e.month,e.day),n=e.subseconds.modPositive($e),r=e.subseconds.sub(n).integer(),i=e.second+r;return ut({...e,...t,second:i,subseconds:n})}function ft(e){let[t]=e.split(),n=ct(t.integer()),[r,i]=e.add(b(n)).split(),a=r.integer(),o=z(a,L),s=tt(a,L),c=at(o),l=z(s,I),u=s-l*I,d=z(u,F),f=tt(u,F);return{year:c.year,month:c.month,day:c.day,hour:l,minute:d,second:f,subseconds:i}}function H(e,t){return dt({...t(ft(e)),hour:0n,minute:0n,second:0n,subseconds:et})}function U(e,t,n=0n){return t?Array.isArray(t)?t.map(e=>BigInt(e)).filter(t=>t<=e).toSorted().at(-1)??e:(t=BigInt(t),(e-n)/t*t+n):e}function W(e,t,n=0n){return t?Array.isArray(t)?t.map(e=>BigInt(e)).filter(t=>e<t).toSorted().at(0):(t=BigInt(t),((e-n)/t+1n)*t+n):e}function pt(e,t){return H(e,e=>({...V(e.year,e.month,U(e.day,t,1n))}))}function mt(e,t){return H(e,e=>{let n=W(e.day,t,1n);return n?V(e.year,e.month,n):B(e.year,W(e.month,1n,1n))})}function ht(e,t){return H(e,e=>B(e.year,U(e.month,t,1n)))}function gt(e,t){return H(e,e=>B(e.year,W(e.month,t,1n)))}function _t(e,t){return H(e,e=>{let n=U(e.year<=0n?e.year-1n:e.year,t,0n);return{year:n<=0n?n+1n:n,month:1n,day:1n}})}function vt(e,t){return H(e,e=>{let n=W(e.year<=0n?e.year-1n:e.year,t);return{year:n<=0n?n+1n:n,month:1n,day:1n}})}function yt(e,t){let n=b(t),r=pt(e,1n);return e.sub(r).floorBy(n).add(r)}function bt(e,t){return e.add(b(t))}function xt(e,t){return e===!1?null:((e===!0||e==null)&&(e=t),e)}const St={s:0n,ms:3n,us:6n,ns:9n};function Ct({time:e,digits:t}){return t>0?e.toFixed(t):e.toString()}function G(e,t,n){if(t===n)return e;let r=St[t]??0n,i=(St[n]??0n)-r;return e.shift10(i)}function*wt(e,t,n){if(!e[0]||!e[1])return;let r=n.timeFormat??Ct,i=b(C.defaultChunkSize),a=t.mul(i).log(10).round().integer(),o=b(10).pow(a,-a),s=t.mul(b(20)),c=[10n,5n,1n],l=o,u=1n;for(let e of c){let t=o.div(b(e));if(!t.lt(s)){l=t,u=e;break}}if(l.isZero())return;let d=b(u),f=b(1n),p=e[0].div(l).floor().sub(f),m=Math.max(0,-l.log(10).floor().number());for(let t=0;t<1e6;t+=1){p=p.add(f);let t=l.mul(p);if(t.ge(e[1]))break;if(t.lt(e[0]))continue;let i=p.mod(d).isZero();yield{time:{time:t},major:i,tick:!0,text:i?r({time:t,unit:n.timeUnit??`s`,level:`relative`,digits:m,stride:void 0}):``}}}function K(e){return{align:t=>yt(t,e),next:t=>bt(t,e)}}function q(e){return e=e.mul(60),{align:t=>yt(t,e),next:t=>bt(t,e)}}function J(e){return e=e.mul(3600),{align:t=>yt(t,e),next:t=>bt(t,e)}}function Y(e){return{align:t=>pt(t,e),next:t=>mt(t,e)}}function X(e){return{align:t=>ht(t,e),next:t=>gt(t,e)}}function Tt(e){return{align:t=>_t(t,e),next:t=>vt(t,e)}}const Et=[{ops:K,stride:1,step:1},{ops:K,stride:5,step:5},{ops:K,stride:10,step:10},{ops:K,stride:15,step:15},{ops:K,stride:30,step:30},{ops:q,stride:1,step:1},{ops:q,stride:5,step:5},{ops:q,stride:10,step:10},{ops:q,stride:15,step:15},{ops:q,stride:30,step:30},{ops:J,stride:1,step:1},{ops:J,stride:3,step:3},{ops:J,stride:6,step:6},{ops:J,stride:12,step:12},{ops:Y,stride:1,step:1},{ops:Y,stride:10,step:[1,10,20]},{ops:X,stride:1,step:1},{ops:X,stride:3,step:3}],Dt=b(86400),Ot=b(`2629800`),kt=b(`31557600`),At=b(60),jt=b(20),Mt=[1n,5n],Nt=[1n,5n],Pt=[`subsecond`,`second`,`minute`,`hour`,`day`,`month`,`year`];function Ft(e){switch(e.ops){case K:return`second`;case q:return`minute`;case J:return`hour`;case Y:return`day`;case X:return`month`;default:throw Error(`Unknown calendar definition`)}}function It(e){let{ops:t,step:n}=e;if(t===K||t===q||t===J)return t(b(n));if(t===Y||t===X)return t(Array.isArray(n)?n.map(e=>BigInt(e)):BigInt(n));throw Error(`Unsupported definition`)}function Lt(e){let t=b(BigInt(e.stride));switch(Ft(e)){case`second`:return b(e.step);case`minute`:return b(e.step).mul(60);case`hour`:return b(e.step).mul(3600);case`day`:return t.mul(Dt);case`month`:return t.mul(Ot);default:return b(0)}}const Rt=Et.map(e=>({level:Ft(e),stride:BigInt(e.stride),duration:Lt(e),digits:0,create:()=>It(e),source:e})).sort((e,t)=>e.duration.lt(t.duration)?-1:e.duration.gt(t.duration)?1:0),zt=Rt.reduce((e,t)=>{let n=e.get(t.level);return n?n.push(t):e.set(t.level,[t]),e},new Map);function Bt(e){if(e.digits<=0n)return 0;let t=e.digits,n=BigInt(2**53-1);return t>n&&(t=n),Number(t)}function Vt(e,t,n){return{level:`subsecond`,stride:1n,duration:e,digits:Bt(e),create:()=>K(e),subsecondMetadata:{exponent:t,factor:n}}}function Ht(e,t,n){let r=t&&t.lt(b(1))?t:b(1),i=e.lt(b(1));if(!i&&!n)return null;let a=i?e:b(1),o;a.isPositive()?(o=a.log(10).floor().integer(),o>=0n&&(o=-1n)):o=-1n;let s=null;for(let e=o;e<0n;e+=1n){let t=b(10).pow(e,-e);for(let n of Mt){let i=t.mul(b(n));if(i.lt(r)){if(a.isZero()||!i.lt(a))return Vt(i,e,n);(!s||s.step.lt(i))&&(s={step:i,exponent:e,factor:n})}}}return n&&s?Vt(s.step,s.exponent,s.factor):null}function Ut(e){let t=e.isPositive()?e:b(0);for(let e of Rt)if(t.isZero()||!e.duration.lt(t))return e;return null}function Wt(e,t,n,r){let i=zt.get(e);if(!i)return null;let a=t.isPositive()?t:b(0),o=null;for(let e of i){if(n&&!e.duration.lt(n))break;if(a.isZero()||!e.duration.lt(a))return e;o=e}return r&&o?o:null}function Gt(e){if(e<=0n)return 1n;let t=1n,n=10n,r=e;for(;r>0n;)(r&1n)==1n&&(t*=n),n*=n,r>>=1n;return t}function Kt(e){return{level:`year`,stride:e,duration:b(e).mul(kt),digits:0,create:()=>Tt(e),yearStride:e}}function qt(e){let t=e.isPositive()?e:b(0);if(t.isZero())return Kt(1n);let n=t.div(kt).log(10).floor().integer();n<0n&&(n=0n);for(let e=n;;e+=1n){let n=Gt(e);for(let e of Nt){let r=Kt(n*e);if(!r.duration.lt(t))return r}}}function Jt(e){return Pt.indexOf(e)}function Yt(e,t){let n=Jt(e.level);if(n<=0)return null;let r=Pt[n-1],i=e.duration;if(e.level===`year`){for(let n of[5n,4n,2n]){if(e.stride%n!==0n)continue;let r=e.stride/n;if(r<=0n)continue;let i=Kt(r);if(!i.duration.lt(t)&&i.duration.lt(e.duration))return i}let n=qt(t);return n.duration.lt(e.duration)?n:null}if(e.level===`subsecond`){let n=Ht(t,e.duration,!0);return n&&n.duration.lt(e.duration)?n:null}let a=e.level,o=zt.get(a)??[];for(let n=o.length-1;n>=0;--n){let r=o[n];if(r.duration.lt(e.duration)&&!r.duration.lt(t))return r}if(r===`subsecond`){let n=Ht(t,i,!0);return n&&n.duration.lt(e.duration)?n:null}return r===`year`?null:Wt(r,t,i,!0)}function Xt(e){if(!e||!e.isPositive())return null;let t=e.mul(At),n=e.mul(jt),r=Ht(t,null,!1);if(r||=Ut(t),r||=qt(t),!r)return null;let i=Yt(r,n);return{level:r.level,major:r.create(),minor:i?i.create():null,digits:r.digits,stride:r.stride}}function Zt(e){return e.replace(/[0-9]/g,e=>String.fromCodePoint(e.charCodeAt(0)-48+8320))}function Qt(e){let{time:t,unit:n}=e,r=e,{year:i,month:a,day:o,hour:s,minute:c,second:l,subseconds:u}=ft(G(t,n,`s`)),d=(e,t)=>e.toString().padStart(t,`0`),f=e=>d(e,2),p=e=>e>0n?e.toString():` ${(1n-e).toString()} BC`,m=()=>`${f(a)}/${f(o)}`,h=()=>`${f(s)}:${f(c)}`,g=r.digits>0?`.`+Zt(u.toFixed(r.digits).split(`.`)[1]):``,_=()=>`${f(s)}:${f(c)}:${f(l)}${g}`;switch(r.level){case`subsecond`:case`second`:return s===0n&&c===0n&&l===0n&&u.eq(0)?m():_();case`minute`:case`hour`:return s===0n&&c===0n?m():h();case`day`:return m();case`month`:if((r.stride??1n)===3n){let e=Math.floor((Number(a)-1)/3)+1;return e===1?`${p(i)} Q${e}`:`Q${e}`}return`${p(i)}/${f(a)}`;case`year`:default:return p(i)}}function $t(e,t,n){if(!e)return null;let r=e.next(t);return!r||r.le(t)||r.ge(n)?null:r}function*en(e,t,n){if(!e[0]||!e[1])return;let r=n.timeUnit??`s`,i=n.timeFormat??Qt,a=G(e[0],r,`s`),o=G(e[1],r,`s`);if(o.le(a))return;t=G(t,r,`s`);let s=Xt(t);if(!s)return;let c=s.major.align(a),l=s.minor?.align(a)??null;for(;c||l;){if(c!=null&&(l==null||c.le(l))&&c){if(a.le(c)){let e=G(c,`s`,r);yield{time:{time:e},major:!0,tick:!0,text:i({time:e,unit:r,...s})}}l&&l.eq(c)&&(l=$t(s.minor,l,o)),c=$t(s.major,c,o);continue}l&&=(a.le(l)&&(yield{time:{time:G(l,`s`,r)},major:!1,tick:!0,text:``}),$t(s.minor,l,o))}}var tn=class extends We{constructor(e){e={...e,timeAxis:xt(e.timeAxis,{timeUnit:`s`})},super(e)}async loadChunk(e){let t=[...this.options.timeAxis.relative?wt(e.range,e.resolution,this.options.timeAxis):en(e.range,e.resolution,this.options.timeAxis)].map(e=>({...e,time:{time:e.time.time,_minTime:e.time.time,_maxTime:e.time.time}}));return{...e,data:t}}},nn=class{#e;#t;constructor(e){let{maxSize:t}=e;if(!(typeof t==`number`&&Number.isFinite(t)&&t>0))throw TypeError("`maxSize` must be a number greater than 0");this.#e=Math.floor(t),this.#t=new Map}get size(){return this.#t.size}get maxSize(){return this.#e}get(e){if(!this.#t.has(e))return;let t=this.#t.get(e);return this.#t.delete(e),this.#t.set(e,t),t}set(e,t){if(this.#t.has(e)&&this.#t.delete(e),this.#t.set(e,t),this.#t.size>this.#e){let e=this.#t.keys().next().value;e!==void 0&&this.#t.delete(e)}return this}has(e){return this.#t.has(e)}delete(e){return this.#t.delete(e)}clear(){this.#t.clear()}*keys(){let e=Array.from(this.#t.keys());for(let t=e.length-1;t>=0;t--)yield e[t]}*values(){for(let[,e]of this)yield e}*entries(){yield*this[Symbol.iterator]()}*[Symbol.iterator](){let e=Array.from(this.#t.entries());for(let t=e.length-1;t>=0;t--)yield e[t]}};function rn(e,t,n=C.defaultChunkSize){let r=Ce(t),i=r.mul(n);if(!e[0]||!e[1]||!i.isPositive())return[{id:`z${t}`,seq:0n,expires:1/0,range:e,resolution:r,zoom:t}];let a=[],o=e[1].add(i);for(let n=e[0];n.le(o);n=n.add(i)){let e=n.div(i).floor().integer(),o=[i.mul(e),i.mul(e+1n)],s=`z${t}:seq${e}`;a.push({id:s,seq:e,expires:1/0,range:o,resolution:r,zoom:t})}return a}function an(e){return!!(x(e)||typeof e==`number`||typeof e==`string`||typeof e==`bigint`)}function on(e){return e==null?{shrink:!0,expand:!0,default:[b(0),void 0]}:Array.isArray(e)?{shrink:!0,expand:!0,default:e.map(b)}:typeof e==`number`||an(e)?{shrink:!0,expand:!0,default:[b(0),b(e)]}:e.default!=null&&!Array.isArray(e.default)?{shrink:e.shrink??!0,expand:e.expand??!0,default:[b(0),b(e.default)]}:{shrink:e.shrink??!0,expand:e.expand??!0,default:(e.default??[0,void 0]).map(b)}}function sn(e,t){return e._minTime?.le(t[1])&&t[0]?.le(e._maxTime)}var cn=class{#e;#t;#n;#r=new nn({maxSize:256});#i={};#a;constructor(e){this.#e=e.options,this.#t=e.sources,this.#a=e.options.data.color,this.#n=on(e.options.data.range)}get name(){return this.#e.data.name??``}get digits(){return this.#e.data.digits??1}get unit(){return this.#e.data.unit??``}get zoomLevels(){return this.#t[this.#e.data.source].zoomLevels}get chunkSize(){return this.#t[this.#e.data.source].chunkSize}get options(){return this.#e}async loadChunk(e){let t=await this.#t[this.#e.data.source].loadChunk(e),n=this.#e.data.parser?.(t.data)??t.data;if(!Array.isArray(n))throw Error(`Invalid data from the source after parsed.`);let r=Object.fromEntries((Array.isArray(this.#e.data.time)?this.#e.data.time.map(e=>[e,e]):Object.entries(typeof this.#e.data.time==`string`||this.#e.data.time==null?{time:this.#e.data.time??`time`}:this.#e.data.time)).map(([e,t])=>[e,typeof t==`function`?t:ye(t)])),i=Object.fromEntries((Array.isArray(this.#e.data.value)?this.#e.data.value.map(e=>[e,e]):Object.entries(typeof this.#e.data.value==`string`||this.#e.data.value==null?{value:this.#e.data.value??`value`}:this.#e.data.value)).map(([e,t])=>[e,typeof t==`function`?t:ye(t)])),a=n.map(e=>{let t=Object.fromEntries(Object.entries(r).map(([t,n])=>[t,E(n(e))])),n=Object.fromEntries(Object.entries(i).map(([t,n])=>[t,re(n(e))]).filter(([,e])=>e!==void 0)),[a,o]=S(...Object.values(t));return t._minTime=a,t._maxTime=o,{time:t,value:n,data:e}});return this.#r.set(t.id,a),{...t,data:a}}updateDataRange(e,t){t=we(t,this.zoomLevels);let[n,r]=S(...rn(e,t,this.chunkSize).flatMap(({id:t})=>{let n=this.#r.get(t);return n?n.flatMap(t=>sn(t.time,e)?S(...Object.values(t.value)):[]):[]}));n==null||r==null||(this.#i={min:this.#n.default[0]==null?n:this.#n.expand?b.min(n,this.#n.default[0],...this.#n.shrink?[]:[this.#i.min]):this.#n.default[0],max:this.#n.default[1]==null?r:this.#n.expand?b.max(r,this.#n.default[1],...this.#n.shrink?[]:[this.#i.max]):this.#n.default[1]})}get color(){return this.#a}get dataRange(){let e=b.max(this.#i.min?.abs(),this.#i?.max?.abs());return{...this.#i,amp:e}}};function ln(e){return new cn(e)}var un=class extends T{#e=`initial`;#t;#n;#r;#i;#a;#o;#s;get id(){return this.#o}get seq(){return this.#s}get range(){return this.#t}get resolution(){return this.#n}get zoom(){return this.#r}get state(){return this.#e}get expired(){return this.#e!==`loaded`&&this.#e!==`error`||this.#c<=Date.now()}#c=0;get expires(){return this.#c}setExpires(e){this.#c=e}invalidate(){this.#c=0}constructor(e){super(),this.#o=e.id,this.#s=e.seq,this.#t=e.range,this.#n=e.resolution,this.#r=e.zoom,this.#i=e.loader}reload(){return this.load(!0)}async load(e=!1){if(this.#a&&(this.#e===`loading`||!e&&!this.expired))return await this.#a;this.#e=`loading`,this.#c=1/0;try{let e={id:this.#o,seq:this.#s,expires:1/0,range:this.#t.map(e=>e?.clone()),zoom:this.#r,resolution:this.#n.clone()};return this.#a=this.#i(e,{expiresAt:t=>e.expires=t,expiresIn:t=>e.expires=t+Date.now()}).then(t=>(this.#e=`loaded`,this.#c=e.expires??1/0,this.changed(),t||null)),await this.#a}catch(e){return console.error(e),this.#e=`error`,this.changed(),null}}};function Z(e){return async(t,n)=>{let r=await e(t,n);return r instanceof Response?await r.json():r}}var Q=class extends T{#e=new nn({maxSize:1e3});zoomLevels;chunkSize;loader;constructor(e){if(super(),this.chunkSize=e.chunkSize||C.defaultChunkSize,this.zoomLevels=e.zoomLevels,`loader`in e)this.loader=Z(e.loader);else if(`data`in e)this.zoomLevels=[0],this.chunkSize=0,this.loader=async()=>e.data;else if(`url`in e)e.url.match(/{[a-zA-Z]+}/)?this.loader=Z(async t=>{let n=e.url.replace(/{[a-zA-Z]+}/g,e=>{switch(e.substring(1,e.length-1)){case`z`:case`zoom`:return t.zoom.toString();case`r`:case`resolution`:return t.resolution.rescale().toString();case`s`:case`start`:return t.range[0].rescale().toString();case`e`:case`end`:return t.range[1].rescale().toString();default:return console.warn(`Unknown template string is found in the URL: `+e),e}});return await fetch(n)}):(this.zoomLevels=[0],this.chunkSize=0,this.loader=Z(()=>fetch(e.url)));else throw Error(`No source`)}async loadChunk({id:e,seq:t,range:n,resolution:r,zoom:i}){let a=this.#t(e,t,n,r,i),o=await a.load()??void 0;return{id:e,seq:t,expires:a.expires,range:n,resolution:r,zoom:i,data:o}}#t(e,t,n,r,i){let a=this.#e.get(e);return a||(a=new un({id:e,seq:t,loader:this.loader,range:n,resolution:r,zoom:i}),this.#e.set(e,a)),a}async loadData(e,t){t=we(t,this.zoomLevels);let n=rn(e,t,this.chunkSize);return await Promise.all(n.map(e=>this.loadChunk(e)))}async expireChunks(e){for(let t of this.#e.values())(!e||!t.range[1]||t.range[1].gt(e[0])||!t.range[0]||t.range[0].lt(e[1]))&&t.invalidate();this.changed()}};function dn(e){return typeof e==`string`?new Q({url:e}):typeof e==`function`?new Q({loader:e}):e instanceof Q?e:typeof e==`object`&&e&&[`url`,`loader`,`data`].some(t=>t in e)?new Q(e):new Q({data:e})}function fn(e={}){let t=URL.createObjectURL(new Blob([`URL.revokeObjectURL(self.location.href);`,"(function(){function e(e,t=`Digits must be an integer`){if(typeof e==`number`){if(!Number.isFinite(e)||!Number.isInteger(e))throw Error(t);return BigInt(e)}return e}function t(t){let n=e(t);return n<0n?0n:n}function n(e){let t=Number(e);return t<b.length?b[t]:5n**BigInt(e)}function r(e){let t=Number(e);return t<x.length?x[t]:10n**BigInt(e)}function i(e,t,n){let r=BigInt(t);if(r<=0n)return new g(1n);let i=new g(1n),a=e.clone();for(;r&1n&&i.mul$(a,n),r>>=1n,r!==0n;)a.mul$(a,n);return i}function a(e,t,n,r){if(t.isZero()||r<=0)return new g(1n);let{guardPrec:a,rootPrec:s}=f(n,r),c=o(t.coeff).toString().padStart(r,`0`),l=e.round(s),u=new g(1n);for(let e=0;e<r;e++){l=l.root(10n,s);let t=c.charCodeAt(e)-48;if(t<=0)continue;let n=i(l.clone(),t,a);u.mul$(n,a)}return u.round$(n)}function o(e){return e<0n?-e:e}function s(e){if(e===``)throw Error(`Invalid number`);let t=1n,n=e;if(n[0]===`-`?(t=-1n,n=n.slice(1)):n[0]===`+`&&(n=n.slice(1)),n===``)throw Error(`Invalid number`);let r=n.indexOf(`.`),i=n,a=``;r>=0&&(i=n.slice(0,r),a=n.slice(r+1)),i===``&&(i=`0`);let o=(i+a).replace(/^0+/,``),s=o===``?`0`:o;return{coeff:t*BigInt(s),digits:BigInt(a.length)}}function c(e){let t=e.search(/[eE]/);if(t===-1)return s(e);let n=e.slice(0,t),r=e.slice(t+1);if(r.trim()===``)throw Error(`Invalid number`);let{coeff:i,digits:a}=s(n);return{coeff:i,digits:a-BigInt(r)}}function l(e,t){let n=e.digits>t.digits?e.digits:t.digits,i=n-e.digits,a=n-t.digits;return{digits:n,aCoeff:e.coeff*r(i),bCoeff:t.coeff*r(a)}}function u(e){let t=Math.max(0,Number(e));return Math.min(2**53-1,t)}function d(e,t,n){let r=u(t),i=u(n),a=Math.max(r,i)+1,o=Math.max(a,1),s=e+o;for(;;){let t=Math.ceil(s*v)+o,n=Math.max(t*2,1),r=Math.max(a,Math.ceil(Math.log10(n))+1);if(r<=o){let e=s+o;return{guardPrec:o,fracPrec:s,bits:t,divPrec:e}}o=r,s=e+o}}function f(e,t){let n=Math.max(1,t),r=Math.max(6,Math.ceil(Math.log10(n*4))+2),i=e+BigInt(r);return{guardPrec:i,rootPrec:i+BigInt(Math.max(r,6))}}function p(e,t){let n=Math.max(1,t.toString().replace(`-`,``).length),r=Math.max(12,n+4);return{iterPrec:e+BigInt(r),stopShift:e+2n}}function m(e,t,n,r){let i=[],a=[],o=new g(t),s=1n,c=n+Math.max(r,1);for(;o.le(e);)i.push(o),a.push(s),o=o.mul(o),s*=2n;let l=new g(e),u=0n;for(let e=i.length-1;e>=0;e--){let t=i[e];l.ge(t)&&(l.div$(t,c),u+=a[e])}return{exponent:u,remainder:l}}function h(e,t,n,r){let i=n+Math.max(r,1);if(e.eq(y))return{exponent:0n,remainder:y.clone()};if(e.ge(y))return m(e,t,n,r);let a=m(y.div(e,i),t,n,r);return a.remainder.eq(y)?{exponent:-a.exponent,remainder:y.clone()}:{exponent:-a.exponent-1n,remainder:y.div(a.remainder,i).mul$(t)}}var g=class s{coeff;digits;constructor(e,t){if(typeof e==`number`){if(e!==e||e===1/0||e===-1/0)throw Error(`Invalid number`);({coeff:this.coeff,digits:this.digits}=c(e.toString()))}else if(typeof e==`string`){let t=e.trim();if(t===``)throw Error(`Invalid number`);({coeff:this.coeff,digits:this.digits}=c(t))}else if(typeof e==`bigint`)this.coeff=e,this.digits=t??0n;else if(typeof e==`object`&&e&&`coeff`in e&&typeof e.coeff==`bigint`&&`digits`in e&&typeof e.digits==`bigint`)this.coeff=e.coeff,this.digits=e.digits;else throw Error(`Invalid input type for Decimal`)}clone(){return new s({coeff:this.coeff,digits:this.digits})}#e(e,t=0n){return C(e)&&(t=e.digits,e=e.coeff),this.coeff=e,this.digits=t,this}#t(e,t,n){let i=this.coeff,a=e.coeff,s=e.digits+t-this.digits;s>=0n?i*=r(s):a*=r(-s);let c=i/a,l=i-c*a;if(l!==0n&&n!==`trunc`){let e=i>=0n;switch(n){case`floor`:e||(c-=1n);break;case`ceil`:e&&(c+=1n);break;case`round`:{let t=o(l),n=a<0n?-a:a;t*2n>=n&&(c+=e?1n:-1n);break}default:break}}return this.#e(c,t)}#n(t,n=`trunc`){let i=e(t);if(this.isZero())return this.digits=i,this;if(i===this.digits)return this;if(i>this.digits){let e=r(i-this.digits);return this.coeff*=e,this.digits=i,this}return this.#t(y,i,n)}#r(){if(this.coeff===0n)return this.digits=0n,this;if(this.digits<=0n)return this;for(;this.digits>0n&&this.coeff%10n==0n;)this.coeff/=10n,this.digits-=1n;return this}round$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`round`)}round(e=0,t=!1){return this.clone().round$(e,t)}roundBy$(e,t=`round`){let n=new s(e).abs();if(n.isZero())throw Error(`Cannot align to zero`);return this.div$(n,0n,t).mul$(n)}roundBy(e,t=`round`){return this.clone().roundBy$(e,t)}floor$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`floor`)}floor(e=0,t=!1){return this.clone().floor$(e,t)}floorBy$(e){return this.roundBy$(e,`floor`)}floorBy(e){return this.clone().floorBy$(e)}ceil$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`ceil`)}ceil(e=0,t=!1){return this.clone().ceil$(e,t)}ceilBy$(e){return this.roundBy$(e,`ceil`)}ceilBy(e){return this.clone().ceilBy$(e)}trunc$(t=0,n=!1){let r=e(t);return!n&&this.digits<=r?this:this.#n(r,`trunc`)}trunc(e=0,t=!1){return this.clone().trunc$(e,t)}rescale$(e,t=`trunc`){return e==null?this.#r():this.#n(e,t)}rescale(e,t=`trunc`){return this.clone().rescale$(e,t)}truncBy$(e){return this.roundBy$(e,`trunc`)}truncBy(e){return this.clone().truncBy$(e)}#i(e){let t=this.clone();return e(this),[this,t.sub$(this)]}split$(e,t=`floor`){return this.#i(n=>n.#n(e??0n,t))}split(e,t=`floor`){return this.clone().split$(e,t)}splitBy$(e,t=`floor`){return this.#i(n=>n.roundBy$(e,t))}splitBy(e,t=`floor`){return this.clone().splitBy$(e,t)}neg$(e){return e!==!1&&(this.coeff=-this.coeff),this}neg(e){return this.clone().neg$(e)}isZero(){return this.coeff===0n}isPositive(){return this.coeff>0n}isNegative(){return this.coeff<0n}add$(e){let t=S(e),{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r+i,this.digits=n,this}add(e){return this.clone().add$(e)}sub$(e){let t=S(e),{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r-i,this.digits=n,this}sub(e){return this.clone().sub$(e)}mul$(e,t){let n=S(e);return this.coeff*=n.coeff,this.digits+=n.digits,t!==void 0&&this.round$(t),this}mul(e,t){return this.clone().mul$(e,t)}shift10$(t){let n=e(t,`Shift amount must be an integer`);return n===0n||(this.digits-=n),this}shift10(e){return this.clone().shift10$(e)}inverse$(e=_){if(this.isZero())throw Error(`Division by zero`);let n=t(e),r=this.clone();return this.#e(1n).div$(r,n)}inverse(e=_){return this.clone().inverse$(e)}div$(e,n,r=`round`){let i=n===void 0,a=t(n??_),o=S(e);if(o.isZero())throw Error(`Division by zero`);return this.isZero()?this:(this.#t(o,a,r),i?this.#r():this)}div(e,t,n=`round`){return this.clone().div$(e,t,n)}abs$(){return this.isNegative()&&(this.coeff=-this.coeff),this}abs(){return this.clone().abs$()}mod$(e){let t=S(e);if(t.isZero())throw Error(`Division by zero`);let{digits:n,aCoeff:r,bCoeff:i}=l(this,t);return this.coeff=r%i,this.digits=n,this}mod(e){return this.clone().mod$(e)}modPositive$(e){let t=S(e);if(t.isNegative())throw Error(`Modulo divisor must be positive`);return this.mod$(t),this.isNegative()&&this.add$(t),this}modPositive(e){return this.clone().modPositive$(e)}clamp$(e,t){let n=S(e),r=S(t);if(n&&r&&n.gt(r))throw Error(`Invalid clamp range`);return n&&this.lt(n)?(this.coeff=n.coeff,this.digits=n.digits,this):r&&this.gt(r)?(this.coeff=r.coeff,this.digits=r.digits,this):this}clamp(e,t){return this.clone().clamp$(e,t)}cmp(e){let t=S(e),{aCoeff:n,bCoeff:r}=l(this,t);return n===r?0:n>r?1:-1}eq(e){return this.cmp(e)===0}neq(e){return this.cmp(e)!==0}lt(e){return this.cmp(e)<0}gt(e){return this.cmp(e)>0}le(e){return this.cmp(e)<=0}ge(e){return this.cmp(e)>=0}between(e,t){let n=S(e),r=S(t);if(n&&r&&n.gt(r))throw Error(`Invalid between range`);return!(n&&this.lt(n)||r&&this.gt(r))}isCloseTo(e,t){let n=S(t);if(n.isNegative())throw Error(`Tolerance must be non-negative`);return this.sub(e).abs$().le(n)}pow$(e,n=_){let r=t(n),o=S(e);if(o.isZero())return this.#e(1n);if(this.isZero()){if(o.isNegative())throw Error(`Zero to negative exponent is undefined`);return this}let s=o.isNegative(),[c,l]=o.abs().split$(),u=this.clone(),d=l.isZero()?0:Number(l.digits);if(u.isNegative()&&d>0)throw Error(`Fractional exponent requires non-negative base`);let f=i(u,c.coeff),p=r;d>0&&(p=r+BigInt(Math.max(4,d)));let m=a(u,l,p,d);d>0&&f.mul$(m,p);let h=p>r?p:r,g=d>0?p:r;return s?this.#e(1n).div$(f,h):(f.round$(h,!0),this.#e(f)),this.round$(g,g===0n),this}pow(e,t=_){return this.clone().pow$(e,t)}root$(n,r=_){let a=e(n,`Root degree must be an integer`);if(a<=0n)throw Error(`Invalid root degree`);let o=t(r);if(a===1n)return o<this.digits?this:this.trunc$(o,!0);if(this.isZero())return this;let c=this.isNegative();if(c&&a%2n==0n)throw Error(`Even root of negative value is not defined`);let l=this.abs(),u=a-1n,{iterPrec:d,stopShift:f}=p(o,a),m=w(-f),h=(()=>{let e=l.number();if(Number.isFinite(e)&&e>0){let t=Number(a);if(t>0){let n=e**(1/t);if(Number.isFinite(n)&&n>0)return new s(n).round$(d,!0)}}return new s(w(l.order()/a)).round$(d,!0)})();this.#e(h.coeff,h.digits),this.isZero()&&this.#e(1n);for(let e=0;e<64;e++){let e=i(this.clone(),u,d);if(e.isZero())break;let t=l.div(e,d),n=this.mul(u,d).add$(t).div$(a,d);if(n.isCloseTo(this,m)||n.eq(this)){this.#e(n);break}this.#e(n)}return this.round$(d,!0),this.round$(o,o===0n),c&&this.neg$(),this}root(e,t=_){return this.clone().root$(e,t)}sqrt$(e=_){return this.root$(2n,e)}sqrt(e=_){return this.clone().sqrt$(e)}log$(e,r=_){let i=Number(t(r)),a=new s(e);if(!this.isPositive())throw Error(`Logarithm argument must be positive`);if(!a.isPositive())throw Error(`Logarithm base must be positive`);if(a.eq(y))throw Error(`Logarithm base cannot be one`);let{guardPrec:o,fracPrec:c,bits:l,divPrec:u}=d(i,a.digits,this.digits),f=a.lt(y),p=f?y.div(a,u):a,{exponent:m,remainder:g}=h(this,p,c,o);if(this.#e(m),c>0){let e=0n;for(let t=0;t<l;t++)g.mul$(g,u),e<<=1n,g.ge(p)&&(g.div$(p,u),e|=1n);e!==0n&&this.add$({coeff:e*n(l),digits:BigInt(l)})}let v=i===0?0:c;return this.round$(v),f&&this.neg$(),this}log(e,t=_){return this.clone().log$(e,t)}sign$(){return this.isZero()?this:(this.coeff=this.coeff<0n?-1n:1n,this.digits=0n,this)}sign(){return this.clone().sign$()}order(){if(this.isZero())throw RangeError(`order undefined for 0`);return BigInt(o(this.coeff).toString().length)-1n-this.digits}toFixed(t){let n=`Fraction digits must be a non-negative integer`,r=e(t,n);if(r<0n)throw Error(n);return this.round(r,!0).toString()}toString(){if(this.coeff===0n)return this.digits<=0n?`0`:`0.${`0`.repeat(Number(this.digits))}`;let e=this.coeff<0n,t=e?`-`:``,n=(e?-this.coeff:this.coeff).toString();if(this.digits<=0n)return`${t}${n}${`0`.repeat(Number(-this.digits))}`;let r=Number(this.digits),i=n.padStart(r+1,`0`),a=i.length-r;return`${t}${i.slice(0,a)}.${i.slice(a).padEnd(r,`0`)}`}[Symbol.for(`nodejs.util.inspect.custom`)](e,t){return`colors`in t&&t?.colors?`\\x1b[33m${this.toString()}\\x1b[m \\x1b[90m(${this.coeff} * 10 ** ${-this.digits})\\x1b[m`:this.toString()}number(){return Number(this.toString())}integer(){return this.digits<=0n?this.coeff*r(-this.digits):this.coeff/r(this.digits)}};let _=18n,v=Math.log2(10),y=new g(1n),b=[],x=[];(function(){for(let e=0;e<256;e++)x[e]=10n**BigInt(e),b[e]=5n**BigInt(e)})();function S(e){return e==null||C(e)?e:new g(e)}(function(e){function t(e){return e instanceof g}e.isDecimal=t;function n(e){return!!(t(e)||typeof e==`string`||typeof e==`number`||typeof e==`bigint`||typeof e==`object`&&e&&`coeff`in e&&`digits`in e&&typeof e.coeff==`bigint`&&typeof e.digits==`bigint`)}e.isDecimalLike=n;function r(e){return new g({coeff:1n,digits:-BigInt(e)})}e.pow10=r;function i(...e){let t=null,n=null;for(let r=0;r<e.length;r++){let i=S(e[r]);i!=null&&((t===null||i.lt(t))&&(t=i),(n===null||i.gt(n))&&(n=i))}return[t,n]}e.minmax=i;function a(...e){return i(...e)[0]}e.min=a;function o(...e){return i(...e)[1]}e.max=o})(S||={});let C=S.isDecimal;S.isDecimalLike;let w=S.pow10;S.minmax,S.min,S.max;let ee=0;function te(e){return function(t,n,r={rpc:!1}){let i=++ee;return e.postMessage({type:r.rpc?`rpc`:`event`,command:t,seq:i,payload:re(n,r.transfer)},r.transfer??[]),r.rpc?new Promise(n=>{let r=a=>{a.data.type===`rpc:ack`&&a.data.command===t&&a.data.seq===i&&(e.removeEventListener(`message`,r),n(E(a.data?.payload)))};e.addEventListener(`message`,r)}):Promise.resolve()}}function ne(e,t){return e.addEventListener(`message`,async({data:{type:n,command:r,seq:i,payload:a}})=>{let o=r in t&&await t[r](E(a))||null;n===`rpc`&&e.postMessage({type:`rpc:ack`,command:r,seq:i,payload:re(o)})}),t}function T(e,t,n){if(e==null)return e;let r=typeof e;if(r===`string`||r===`number`||r===`boolean`||r===`bigint`)return e;if(r===`undefined`||r===`symbol`||r===`function`)return;if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||t?.includes(e))return e;if(n.has(e))throw TypeError(`Cannot serialize circular reference`);if(n.add(e),typeof e.toJSON==`function`){let r=e.toJSON();if(r!==e){let i=T(r,t,n);return n.delete(e),i}}if(Array.isArray(e)){let r=Array(e.length);for(let i=0;i<e.length;i++)r[i]=T(e[i],t,n);return n.delete(e),r}if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)return n.delete(e),e;let i={};for(let r of Object.keys(e))i[r]=T(e[r],t,n);return n.delete(e),i}function re(e,t){return T(e,t,new WeakSet)}function ie(e){return typeof e==`object`&&!!e&&`coeff`in e&&`digits`in e&&typeof e.coeff==`bigint`&&typeof e.digits==`bigint`}function E(e){if(e==null)return e;let t=typeof e;if(t===`string`||t===`number`||t===`boolean`||t===`bigint`)return e;if(!(t===`undefined`||t===`symbol`||t===`function`)){if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas)return e;if(ie(e))return S(e);if(Array.isArray(e))return e.map(E);if(e&&typeof e==`object`){let t={};for(let n of Object.keys(e))t[n]=E(e[n]);return t}return e}}function ae(e,...t){return typeof e==`function`?e(...t):Array.isArray(e)?e.map(e=>ae(e,...t)):typeof e==`object`&&e?Object.fromEntries(Object.entries(e).map(([e,n])=>[e,ae(n,...t)])):e}function oe(e){return Object.prototype.toString.call(e)===`[object Object]`}function D(e,t){for(let n in t){let r=t[n],i=e[n];Array.isArray(r)?e[n]=r.slice():r&&typeof r==`object`&&oe(r)?((!i||typeof i!=`object`)&&(e[n]={}),D(e[n],r)):e[n]=r}return e}var O={clickTolerance:8,defaultChunkSize:256,base:2,chunkStep:1,wheelSensitivity:200};function se(e){if(globalThis._uid||(globalThis._uid=1),e){if(`_uid`in e)return String(e._uid);e._uid=String(globalThis._uid),Object.defineProperty(e,`_uid`,{enumerable:!1})}return String(globalThis._uid++)}var ce=class{uid=se(this);#e={};dispatchEvent(e){let t=typeof e==`string`?e:e.type,n=this.#e[t];if(n)for(let t of n)t(e)}on(e,t){let n=this.#e[e]??[];return n.push(t),this.#e[e]=n,()=>this.un(e,t)}un(e,t){let n=this.#e[e];if(!n)return;let r=n.indexOf(t);r>=0&&n.splice(r,1)}},k=class{type;value;origin;stopped=!1;prevented=!1;constructor(e,t,n){this.type=e,this.value=t,this.origin=n}stopPropagation(){this.stopped=!0}preventDefaults(){this.prevented=!0}},A=class extends ce{#e=0;changed(){this.#e++,this.dispatchEvent(`change`)}get revision(){return this.#e}},j=class extends A{constructor(){super()}updateOptions(e){}render(e){}preRender(e){}postRender(e){}onPointerEvent(e,t){}pointerStyle(e,t){}};function le(e,t,n){if(!t)return;let{height:r}=e.size,i=e.ctx,[a,o]=e.timeAxis.p(t);i.fillStyle=n,i.fillRect(a,0,o-a,r)}function ue(e,t,n){if(!t)return;let{width:r,height:i}=e.size,a=e.ctx,[o,s]=e.timeAxis.p(t);a.fillStyle=n,0<o&&a.fillRect(0,0,Math.min(o,r),i),s<r&&a.fillRect(s,0,r-s,i)}function de(e){let t=e.ctx,n=e.size.height,r=Math.round(e.timeAxis.cursor.p);t.fillStyle=`white`,t.strokeStyle=`red`,t.lineWidth=1,t.fillRect(r-1,0,3,n),t.beginPath(),t.moveTo(r+.5,0),t.lineTo(r+.5,n),t.stroke()}function M(e,t,n){let r=e.ctx,i=e.dpr,a={width:r.canvas.width/i,height:r.canvas.height/i};r.save(),t?(r.translate(0,t.oy),a.height=t.height,e.renderingTrack=t):e.renderingTrack=null,e.chart.ox=e.options.padding[3]??0,e.chart.oy=e.options.padding[0]??0,e.chart.width=a.width-e.chart.ox-e.options.padding[1],e.chart.height=a.height-e.chart.oy-e.options.padding[2],e.size.width=a.width,e.size.height=a.height,r.beginPath(),r.rect(0,0,e.size.width,e.size.height),r.clip(),n(e),r.restore()}function N(e,t){e.tracks.forEach(n=>M(e,n,()=>t(n.id,n)))}function P(e,t){return e===!1?null:((e===!0||e==null)&&(e=t),e)}function F(e,t,n=O.clickTolerance){return e&&e-n<=t&&t<=e+n}var fe=class extends j{#e=null;#t=`rgba(0, 0, 255, 0.2)`;#n=!1;#r=!1;#i=!0;#a=S(0n);#o=8;constructor(){super(),this.on(`change`,()=>{this.dispatchEvent(new k(`renderer:event`,{range:this.#e,resizing:this.#r}))})}updateOptions(e){let t=e.selection;t!==void 0&&(t===!1?(this.#i=!1,this.#e=null):t===!0?this.#i=!0:(t.resizable!==void 0&&(this.#i=t.resizable),t.color!==void 0&&(this.#t=t.color),t.invert!==void 0&&(this.#n=t.invert),t.range!==void 0&&(this.#e=t.range)),this.changed())}#s({shiftKey:e,buttons:t},n){if(!this.#i)return!1;let r=t[0].latest.x;if(e){let e=n.timeAxis.t(r);return this.#r=!0,this.#a=e,this.#e=[e,e],this.changed(),!0}if(!this.#e)return!1;let i=n.timeAxis.p(this.#e);if(F(i[0],r,this.#o)){let e=this.#e[1];return e===void 0?!1:(this.#r=!0,this.#a=e,!0)}else if(F(i[1],r,this.#o)){let e=this.#e[0];return e===void 0?!1:(this.#r=!0,this.#a=e,!0)}return!1}#c({buttons:e},t){if(!this.#i||!this.#r)return!1;let n=t.timeAxis.t(e[0].latest.x),r=this.#a;return this.#e=n.lt(r)?[n,r]:[r,n],this.changed(),!0}#l(e,t){if(!this.#i||!this.#r||!this.#e)return!1;this.#r=!1;let n=t.timeAxis.p(this.#e[0]),r=t.timeAxis.p(this.#e[1]);return Math.abs(n-r)<this.#o&&(this.#e=null),this.changed(),!0}onPointerEvent(e,t){if(this.#i)switch(e.type){case`down`:return this.#s(e,t);case`drag:update`:return this.#c(e,t);case`up`:return this.#l(e,t)}}pointerStyle(e,t){if(!this.#e||!this.#i)return;let n=t.timeAxis.p(this.#e);if(this.#r&&F(n[0],n[1],this.#o))return`not-allowed`;if(F(n[0],e.buttons[0].latest.x,this.#o))return`w-resize`;if(F(n[1],e.buttons[0].latest.x,this.#o))return`e-resize`}render(e){M(e,null,()=>{this.#n?ue(e,this.#e,this.#t):le(e,this.#e,this.#t)})}};function pe(e){let t=typeof e==`string`?[e,e]:e.length===1?[e[0],e[0]]:e,n=t[0].split(`@`),r=t[1].split(`@`);return[[n[0]||`value`,n[1]||`time`],[r[0]||`value`,r[1]||`time`]]}function I(e,t,n){let{min:r,max:i,amp:a}=n;if(t){let e=r&&r.isPositive()&&r?.log(10),t=i&&i.isPositive()&&i?.log(10);if(!e||!t||t.eq(e))return null;let n=t.sub(e);return t=>{if(!t)return null;if(!t.isZero()&&!t.isNegative())return t.log(10).sub(e).div(n).number()}}else return!a||!r||!i||a.eq(0)||r.eq(i)?null:e?e=>e?.div(a).number():e=>e?.sub(r).div(i.sub(r)).number()}let me=[`link:fill`,`link:stroke`,`marks`];function L(e,t,n){let r=typeof n.lineWidth==`number`&&isFinite(n.lineWidth)?n.lineWidth:1,i=Math.max(.75,r/2),a=new Path2D;a.arc(t.x,t.y,i,0,Math.PI*2),e.addPath(a)}function R(e,t,n,r){if(isNaN(t.y)||isNaN(n.y))return;let i=typeof r.lineWidth==`number`&&isFinite(r.lineWidth)?r.lineWidth:1,a=Math.max(1,i)/2;e.moveTo(t.x-a,t.y),e.lineTo(t.x+a,t.y),e.lineTo(n.x+a,n.y),e.lineTo(n.x-a,n.y),e.closePath()}function he(e,t,n){let r=new Path2D,i=K(t??`value@time`),a=null,o=0,s=()=>{o===1&&a&&L(r,a,n),a=null,o=0};for(let t of e){let{x1:e,y1:n}=i(t);if(isNaN(n)){s();continue}o===0?(r.moveTo(e,n),a={x:e,y:n}):r.lineTo(e,n),o++}return s(),{path:r,strokeStyle:n.lineColor??n.color??`black`,fillStyle:G(n.fillColor??n.color??`black`,n.fillOpacity??.25,`transparent`)}}function z(e,t){if(!t.length)return;if(t.length===1){e.moveTo(t[0].x,t[0].y);return}if(t.length===2){e.moveTo(t[0].x,t[0].y),e.lineTo(t[1].x,t[1].y);return}let n=t.length,r=Array(n-1),i=Array(n-1);for(let e=0;e<n-1;e++)r[e]=t[e+1].x-t[e].x,i[e]=r[e]===0?0:(t[e+1].y-t[e].y)/r[e];let a=Array(n);a[0]=i[0];for(let e=1;e<n-1;e++)a[e]=(i[e-1]+i[e])/2;a[n-1]=i[n-2];for(let e=0;e<n-1;e++){if(i[e]===0||!isFinite(i[e])){a[e]=0,a[e+1]=0;continue}if(a[e]===0&&a[e+1]===0)continue;if(a[e]*i[e]<0||a[e+1]*i[e]<0){a[e]=0,a[e+1]=0;continue}let t=a[e]/i[e],n=a[e+1]/i[e],r=t*t+n*n;if(r>9){let o=3/Math.sqrt(r);a[e]=o*t*i[e],a[e+1]=o*n*i[e]}}e.moveTo(t[0].x,t[0].y);for(let i=0;i<n-1;i++){let n=r[i],o=t[i],s=t[i+1],c=o.x+n/3,l=o.y+a[i]*n/3,u=s.x-n/3,d=s.y-a[i+1]*n/3;e.bezierCurveTo(c,l,u,d,s.x,s.y)}}function ge(e,t,n){let r=new Path2D,i=K(t??`value@time`),a=[],o=()=>{if(a.length){if(a.length===1){L(r,a[0],n),a=[];return}z(r,a),a=[]}};for(let t of e){let{x1:e,y1:n}=i(t);if(isNaN(n)){o();continue}a.push({x:e,y:n})}return o(),{path:r,strokeStyle:n.lineColor??n.color??`black`,fillStyle:G(n.fillColor??n.color??`black`,n.fillOpacity??.25,`transparent`)}}function _e(e,t,n){let r=new Path2D,i=K(t??[`value@time`,`zero@time`]),a=e.map(i),o=0;for(;o<a.length;){for(;o<a.length&&(isNaN(a[o].y1)||isNaN(a[o].y2));)o++;if(o>=a.length)break;let e=[];for(;o<a.length&&!isNaN(a[o].y1)&&!isNaN(a[o].y2);)e.push(a[o]),o++;if(e.length===1){R(r,{x:e[0].x1,y:e[0].y1},{x:e[0].x2,y:e[0].y2},n);continue}z(r,e.map(e=>({x:e.x1,y:e.y1})));let t=e[e.length-1];r.lineTo(t.x2,t.y2);for(let t=e.length-2;t>=0;t--)r.lineTo(e[t].x2,e[t].y2);r.closePath()}return{path:r,strokeStyle:n.lineColor??n.color??`black`,fillStyle:G(n.fillColor??n.color??`black`,n.fillOpacity??.25,`transparent`)}}function ve(e,t,n){let r=new Path2D,i=K(t??[`value@time`,`zero@time`]),a=e.map(i),o=0;for(;o<a.length;){for(;o<a.length&&isNaN(a[o].y1);)o++;if(o>=a.length)break;let e=o;for(r.moveTo(a[e].x1,a[e].y1);o<a.length&&!isNaN(a[o].y1);)r.lineTo(a[o].x1,a[o].y1),o++;let t=o--,i=!1;for(;o>=e&&!isNaN(a[o].y2);)r.lineTo(a[o].x2,a[o].y2),o--,i=!0;!i&&!isNaN(a[e].y2)&&(r.lineTo(a[e].x2,a[e].y2),i=!0),r.lineTo(a[e].x1,a[e].y1),t-e===1&&i&&R(r,{x:a[e].x1,y:a[e].y1},{x:a[e].x2,y:a[e].y2},n),o=t}return{path:r,strokeStyle:n.lineColor??n.color??`black`,fillStyle:G(n.fillColor??n.color??`black`,n.fillOpacity??.25,`transparent`)}}function B(e,t=`value@time`){return function(n,r,i){let a=new Path2D,o=K(r??t),s=n.map(o);for(let t of s){let n=t.x2-t.x1,r=t.y2-t.y1,o=Math.hypot(n,r),s=Math.atan2(r,n)*180/Math.PI,c=new Path2D;e(c,{style:i,dx:n,dy:r,l:o});let l=new DOMMatrix().translate(t.x1,t.y1).rotate(s).translate(i.offset?.[0]??0,i.offset?.[1]??0).rotate(i.angle??0);a.addPath(c,l)}return{path:a,strokeStyle:i.lineColor??i.color??`black`,fillStyle:G(i.fillColor??i.color??`black`,i.fillOpacity??.25,`white`)}}}function V(e,t){let n=K(t??`value@time`);return{path:e.map(n).map(({x1:e,y1:t})=>({x:e,y:t}))}}let ye={line:{defaultUsing:`value@time`,predicate:e=>!isNaN(e.y1),hasBottom:!1},area:{defaultUsing:[`value@time`,`zero@time`],predicate:e=>!isNaN(e.y1)&&!isNaN(e.y2),hasBottom:!0}};function be(e,t,n){if(n===`start`)return[{x:t.x,y:e.y},{x:t.x,y:t.y}];if(n===`end`)return[{x:e.x,y:t.y},{x:t.x,y:t.y}];let r=(e.x+t.x)/2;return[{x:r,y:e.y},{x:r,y:t.y},{x:t.x,y:t.y}]}function H(e,t,n){let r=[],i=null;for(let a of e){let e=t(a);if(isNaN(e.y)){i=null;continue}i?r.push(...be(i,e,n)):r.push(e),i=e}return r}function U(e,t){let n=ye[t];return function(r,i,a){let o=K(i??n.defaultUsing),s=r.map(o),c=[],l=xe(s,e,n,a,c);if(t===`line`)for(let e of c)L(l,e,a);return{path:l,strokeStyle:a.lineColor??a.color??`black`,fillStyle:G(a.fillColor??a.color??`black`,a.fillOpacity??.25,`transparent`)}}}function xe(e,t,n,r,i=[]){let a=new Path2D,o=0;for(;o<e.length;){for(;o<e.length&&!n.predicate(e[o]);)o++;if(o>=e.length)break;let s=o,c=[];for(;o<e.length&&n.predicate(e[o]);)c.push(e[o]),o++;let l=o;if(!c.length)continue;let u=Se(c,t,{left:s>0?e[s-1]:null,right:l<e.length?e[l]:null}),d=H(u,e=>({x:e.x1,y:e.y1}),t);if(!d.length)continue;let f=d.length===1,p=[];if(n.hasBottom){if(p=H(u,e=>({x:e.x2,y:e.y2}),t),!p.length)continue;if(f&&p.length===1){R(a,d[0],p[0],r);continue}}a.moveTo(d[0].x,d[0].y);for(let e=1;e<d.length;e++)a.lineTo(d[e].x,d[e].y);if(!n.hasBottom){f&&i.push(d[0]);continue}for(let e=p.length-1;e>=0;e--)a.lineTo(p[e].x,p[e].y);a.lineTo(d[0].x,d[0].y)}return a}function Se(e,t,n){let r=e.map(e=>({...e}));return r.length?(Ce(r,t,n.left),we(r,t,n.right),r):r}function Ce(e,t,n){if(!n)return;let r=Te(t,n.x1,e[0].x1);r==null||r===e[0].x1||e.unshift(W(e[0],r))}function we(e,t,n){if(!n)return;let r=e[e.length-1],i=Ee(t,n.x1,r.x1);i==null||i===r.x1||e.push(W(r,i))}function Te(e,t,n){if(t==null||isNaN(t)||e===`start`)return null;if(e===`end`)return t;let r=(t+n)/2;return isNaN(r)?null:r}function Ee(e,t,n){if(t==null||isNaN(t)||e===`end`)return null;if(e===`start`)return t;let r=(n+t)/2;return isNaN(r)?null:r}function W(e,t){return{x1:t,y1:e.y1,x2:t,y2:e.y2}}function G(e,t,n=`transparent`){return`color-mix(in srgb, ${e} ${t*100}%, ${n})`}function K(e){let[[t,n],[r,i]]=pe(e);return function(e){return{x1:e.x[n],y1:e.y[t],x2:e.x[i],y2:e.y[r]}}}function De(e){return(typeof e==`number`||e==null)&&(e=[e??0]),{t:e[0],r:e[1]??e[0],b:e[2]??e[0],l:e[3]??e[1]??e[0]}}let Oe={\"link:line\":[he,{stroke:!0}],\"link:curve\":[ge,{stroke:!0}],\"link:area\":[ve,{fill:!0}],\"link:curve-area\":[_e,{fill:!0}],\"link:step-area-start\":[U(`start`,`area`),{fill:!0}],\"link:step-area\":[U(`mid`,`area`),{fill:!0}],\"link:step-area-end\":[U(`end`,`area`),{fill:!0}],\"link:step-start\":[U(`start`,`line`),{stroke:!0}],\"link:step\":[U(`mid`,`line`),{stroke:!0}],\"link:step-end\":[U(`end`,`line`),{stroke:!0}],\"mark:circle\":[B((e,{style:{size:t}})=>{let n=(t??5)/2;e.moveTo(n,0),e.arc(0,0,n,0,Math.PI*2)}),{stroke:!0,fill:!0}],\"mark:minus\":[B((e,{style:{size:t}})=>{let n=(t??5)/2;e.moveTo(-n,0),e.lineTo(n,0)}),{stroke:!0,fill:!1}],\"mark:triangle\":[B((e,{style:{size:t}})=>{let n=(t??5)/2;e.moveTo(0,-n),e.lineTo(+n*Math.sqrt(3)/2,n/2),e.lineTo(-n*Math.sqrt(3)/2,n/2),e.closePath()}),{stroke:!0,fill:!0}],\"mark:square\":[B((e,{style:{size:t}})=>{t=(t??5)/2*Math.sqrt(2),e.rect(-t/2,-t/2,t,t)}),{stroke:!0,fill:!0}],\"mark:diamond\":[B((e,{style:{size:t}})=>{t??=5,e.moveTo(0,-t/2),e.lineTo(t/2,0),e.lineTo(0,t/2),e.lineTo(-t/2,0),e.closePath()}),{stroke:!0,fill:!0}],\"mark:star\":[B((e,{style:{size:t}})=>{t??=5;let n=t/2,r=n*.4;for(let t=0;t<10;t++){let i=t%2==0?n:r,a=Math.PI/5*t-Math.PI/2,o=i*Math.cos(a),s=i*Math.sin(a);t===0?e.moveTo(o,s):e.lineTo(o,s)}e.closePath()}),{stroke:!0,fill:!0}],\"mark:plus\":[B((e,{style:{size:t}})=>{t??=5,e.moveTo(-t/2,0),e.lineTo(t/2,0),e.moveTo(0,-t/2),e.lineTo(0,t/2)}),{stroke:!0}],\"mark:cross\":[B((e,{style:{size:t}})=>{t=(t??5)/2*Math.sqrt(2),e.moveTo(-t/2,-t/2),e.lineTo(t/2,t/2),e.moveTo(-t/2,t/2),e.lineTo(t/2,-t/2)}),{stroke:!0}],\"mark:path\":[B((e,{style:{path:t,size:n,scale:r,origin:i}})=>{let a=new DOMMatrix().scale(r??1).scale(n??5).translate(-(i?.[0]??0),-(i?.[1]??0));e.addPath(new Path2D(t),a)}),{stroke:!0,fill:!0}],\"mark:line\":[B((e,{l:t})=>{e.moveTo(0,0),e.lineTo(t,0)},[`min`,`max`]),{stroke:!0}],\"mark:box\":[B((e,{l:t,style:{size:n,radius:r,padding:i}})=>{n??=5;let a=De(i),o=-a.l,s=-(a.t+n/2),c=a.l+t+a.r,l=a.t+n+a.b;r&&r>0?e.roundRect(o,s,c,l,r):e.rect(o,s,c,l)},[`min`,`max`]),{stroke:!0,fill:!0}],\"mark:section\":[B((e,{l:t,style:{size:n}})=>{n??=5,e.moveTo(0,-n/2),e.lineTo(0,n/2),e.moveTo(0,0),e.lineTo(t,0),e.moveTo(t,-n/2),e.lineTo(t,n/2)},[`min`,`max`]),{stroke:!0}],\"mark:icon\":[V,{fill:!0}],\"mark:text\":[V,{fill:!0}]};var ke=class extends j{updateOptions(e){super.updateOptions(e)}#e=S(0);#t={};render(e){super.render(e),this.#n(e),this.#r(e)}#n(e){let t=this.#e.neq(e.timeAxis.current.resolution);if(this.#e=e.timeAxis.current.resolution.clone(),e.options.series)for(let n in e.options.series){let r=e.options.series[n],i=r.track??e.tracks[0].id,a=e.tracks.find(e=>e.id===i),{data:o,meta:s,revision:c}=e.dataCaches[`series:${n}:chart`];if(this.#t[n]&&!t&&this.#t[n].revision===c&&this.#t[n].trackId===i)continue;this.#t[n]={time:e.timeAxis.current.range[0],trackId:i,revision:c,linkOps:[],markOps:[]};let l=s.color,u=[],d=I(a.symmetric,r.data.scale===`log`,s);if(d){for(let e=0;e<o.length;e++){let t=o[e].time,r=o[e].value,i={x:{},y:{zero:a.y(0)}};for(let e in t)i.x[e]=t[e].sub(this.#t[n].time).div(this.#e,3).number();for(let e in r)i.y[e]=a.y(d(r[e]));u.push(i);for(let t of o[e].marks){if(!t)continue;let e={color:l,...t.style??{}},[r,a]=Oe[`mark:${t.draw}`],{path:o,strokeStyle:s,fillStyle:c,postFillStyle:u}=r?.([i],t.using,e)??{};this.#t[n].markOps||(this.#t[n].markOps=[]),this.#t[n].markOps.push({type:`mark`,draw:t.draw,time:this.#t[n].time,path:o,style:{...e,strokeStyle:s,fillStyle:c,postFillStyle:u,...a}})}}for(let e of s.links??[]){if(!e)continue;let t={color:l,...e.style??{}},[r,i]=Oe[`link:${e.draw}`],{path:a,strokeStyle:o,fillStyle:s}=r?.(u,e.using,t)??{};this.#t[n].linkOps||(this.#t[n].linkOps=[]),this.#t[n].linkOps.push({type:`link`,draw:e.draw,time:this.#t[n].time,path:a,style:{...t,strokeStyle:o,fillStyle:s,...i}})}}}}#r(e){if(!e.options.series)return;let t={};for(let n in this.#t){let r=this.#t[n];t[r.trackId]||(t[r.trackId]={});let i=r.time.sub(e.timeAxis.current.time??e.timeAxis.now).div(this.#e,3).number()+e.timeAxis.axisLength[0];for(let e of r.linkOps){let n=e.draw.includes(`area`)?`link:fill`:`link:stroke`;t[r.trackId][n]||(t[r.trackId][n]=[]),t[r.trackId][n].push({...e,ox:i,oy:0})}for(let e of r.markOps){let n=`marks`;t[r.trackId][n]||(t[r.trackId][n]=[]),t[r.trackId][n].push({...e,ox:i,oy:0})}}for(let n of e.tracks)M(e,n,()=>{let r=e.ctx;for(let i of me){if(!t?.[n.id]?.[i])continue;let a=t[n.id][i];for(let t of a)r.save(),r.translate(t.ox,t.oy),t.path instanceof Path2D?Ae(e,t.path,t.style):t.path&&(Me(e,t.path,t.style),je(e,t.path,t.style)),r.restore()}})}};function Ae({ctx:e},t,n){!t||!(t instanceof Path2D)||(n.fill&&!n.fillPost&&n.fillStyle&&(e.fillStyle=n.fillStyle,e.fill(t)),n.stroke&&n.strokeStyle&&(n.lineWidth??1)>0&&(e.lineCap=`round`,e.lineJoin=`round`,e.strokeStyle=n.strokeStyle,e.lineWidth=n.lineWidth??1,n.lineDashArray&&(e.setLineDash(n.lineDashArray),e.lineDashOffset=n.lineDashOffset??0),e.stroke(t)),n.fill&&n.fillPost&&n.fillStyle&&(e.fillStyle=n.fillStyle,e.fill(t)))}function je({ctx:e},t,n){if(n.text){e.translate(n.offset?.[0]??0,n.offset?.[1]??0),e.font=`${n.fontWeight??`normal`} ${n.size??14}px ${n.fontFamily??`sans-serif`}`,e.textAlign=n.textAlign??`center`,e.textBaseline=n.textBaseline??`middle`;for(let r of t)e.save(),e.translate(r.x,r.y),n.angle&&e.rotate(n.angle/180*Math.PI),(n.textOutline||n.textOutlineColor!==void 0||n.textOutlineWidth!==void 0)&&(e.lineCap=`round`,e.lineJoin=`round`,e.strokeStyle=n.textOutlineColor??`white`,e.lineWidth=n.textOutlineWidth??2,e.strokeText(n.text??``,0,0)),e.fillStyle=G(n.textColor??n.color??`black`,n.textOpacity??1),e.fillText(n.text??``,0,0),e.restore()}}function Me({ctx:e},t,n){if(n.icon){e.translate(n.offset?.[0]??0,n.offset?.[1]??0),e.font=`${n.iconFontWeight??`normal`} ${n.size??16}px ${n.iconFontFamily??`icons`}`,e.textAlign=n.iconAlign??`center`,e.textBaseline=n.iconBaseline??`middle`;for(let r of t)e.save(),e.translate(r.x,r.y),n.angle&&e.rotate(n.angle/180*Math.PI),(n.iconOutline||n.iconOutlineColor!==void 0||n.iconOutlineWidth!==void 0)&&(e.lineCap=`round`,e.lineJoin=`round`,e.strokeStyle=n.iconOutlineColor??`white`,e.lineWidth=n.iconOutlineWidth??2,e.strokeText(n.icon??``,0,0)),e.fillStyle=G(n.iconColor??n.color??`black`,n.iconOpacity??1),e.fillText(n.icon??``,0,0),e.restore()}}var Ne=class{values;constructor(...e){this.values=e}clone(){return new this.constructor(...this.values)}get length(){return this.values.length}set(...e){return this.values=e,this}add(e){if(Array.isArray(e)||(e=e.values),e.length!==this.length)throw Error(`Vector size mismatch`);for(let t=this.length-1;t>=0;t--)this.values[t]+=e[t];return this}sub(e){if(Array.isArray(e)||(e=e.values),e.length!==this.length)throw Error(`Vector size mismatch`);for(let t=this.length-1;t>=0;t--)this.values[t]-=e[t];return this}scale(e){for(let t=this.length-1;t>=0;t--)this.values[t]*=e;return this}get norm(){return Math.sqrt(this.values.reduce((e,t)=>e+t**2,0))}normalize(){let e=this.norm;return e?this.scale(1/e):this}distanceTo(e){return this.clone().sub(e).norm}},q=class extends Ne{get x(){return this.values[0]}set x(e){this.values[0]=e}get y(){return this.values[1]}set y(e){this.values[1]=e}toJSON(){return{x:this.x,y:this.y}}};function Pe(e,t,n){let r=0,i=e.length;for(;r<i;){let a=r+i>>1,o=n(e[a]);o!=null&&S(o).lt(t)?r=a+1:i=a}return r}function Fe(e,t,n){let r=0,i=e.length;for(;r<i;){let a=r+i>>1,o=n(e[a]);o!=null&&S(o).le(t)?r=a+1:i=a}return r}function Ie(e,[t,n],r){let i=t===void 0?0:Pe(e,t,r),a=n===void 0?e.length:Pe(e,n,r);return i<a?[i,a]:[0,0]}function Le(e,t){let n=(e,t,n,r)=>Math.min(t,r)-Math.max(e,n),r=n(e.point.x,e.point.x+e.box.width+2,t.point.x,t.point.x+t.box.width+2),i=n(e.point.y,e.point.y+e.box.height+2,t.point.y,t.point.y+t.box.height+2);return r<=0||i<=0?null:{w:r,h:i,d:Math.hypot(r,i)}}function Re(e,t,n){let r=0,i=0,a=new q(0,0);do{r=0;let i=e.map(e=>({...e,force:(e?.force??new q(.01*e.id,0)).set(.01*e.id,0)}));for(let e=0;e<i.length;e++)for(let t=e+1;t<i.length;t++){let n=i[e],r=i[t];if(n===r||n.sideX!==r.sideX)continue;let o=Le(n,r);if(o)if(n.point.distanceTo(r.point)===0){let e=[0,o.h/2];n.force.sub(e),r.force.add(e)}else{let e=a.set(...r.point.values).sub(n.point).normalize(),t=[o.w/2*e.x,o.h/2*e.y];n.force.sub(t),r.force.add(t)}}i.forEach(e=>{let t=a.set(e.point.x,0);e.force.sub(t.normalize().scale(.2))});for(let e=0;e<i.length;e++){let a=i[e];a.point.add(a.force),a.point.x<0&&(a.force.x+=a.point.x,a.point.x-=a.point.x),a.point.y-a.box.height/2<0+t&&(a.force.y+=a.point.y-a.box.height/2-t,a.point.y-=a.point.y-a.box.height/2-t),a.point.y+a.box.height/2+1>n&&(a.force.y+=a.point.y+a.box.height/2+1-n,a.point.y-=a.point.y+a.box.height/2+1-n),r+=a.force.norm**2}}while(r>1&&i++<100);return i<100}var ze=class extends j{postRender(e){super.postRender(e),this.#t(e)}#e(e,t){if(!e)return;let n=Fe(e,t,e=>e.time.time);if(0<n&&n<=e.length)return e[n-1]}#t(e){if(e.timeAxis.animating||!e.options.series)return;let t=e.timeAxis.cursor.time??S(Date.now()/1e3);N(e,(n,r)=>{let i=e.ctx,a=[],o=1;i.textBaseline=`middle`,i.textAlign=`left`;for(let n of r.seriesKeys){let s=e.options.series?.[n];if(!s)throw Error(`Invalid series`);if(s.tooltip===!1)continue;let{data:c,meta:l}=e.dataCaches[`series:${n}:instantaneous`];if(!l)continue;let u=I(r.symmetric,s.data.scale===`log`,l);if(!u)continue;let d=this.#e(c,t);if(!d)continue;let f=d.time.time;if(!f)continue;let p=e.timeAxis.p(f),m=d.value,h=d.text,g=i.measureText(h),_=l.color;if(m==null)continue;let v=r.y(u(m));a.push({id:a.length,cx:p,cy:v,point:new q(0,v),color:_,metrics:g,sideX:o,text:{dx:6,dy:0,value:h},box:{dx:.5,dy:.5-g.fontBoundingBoxAscent-2,width:12+g.width,height:4+g.fontBoundingBoxAscent+g.fontBoundingBoxDescent}}),o=-o}Re(a,e.chart.oy,e.chart.oy+e.chart.height);for(let e of a)e.point.x=e.cx+e.sideX*(e.point.x+20);for(let{cx:e,cy:t,point:n,color:r}of a)i.beginPath(),i.moveTo(e,t),i.lineTo(n.x,n.y),i.strokeStyle=`white`,i.lineWidth=3,i.stroke(),i.strokeStyle=r,i.lineWidth=1,i.setLineDash([3]),i.stroke(),i.setLineDash([]);for(let{cx:e,cy:t,point:n,sideX:r,text:o,color:s,box:c}of a)i.beginPath(),i.arc(e,t,3,0,Math.PI*2),i.fillStyle=s,i.fill(),i.strokeStyle=`white`,i.stroke(),i.beginPath(),i.roundRect(n.x+c.dx,n.y+c.dy,c.width*r,c.height,4),i.shadowBlur=3,i.shadowColor=`black`,i.shadowOffsetX=0,i.shadowOffsetY=1,i.fillStyle=s,i.fill(),i.shadowBlur=0,i.shadowColor=`transparent`,i.shadowOffsetX=0,i.shadowOffsetY=0,i.lineWidth=1,i.strokeStyle=`white`,i.stroke(),i.textBaseline=`middle`,i.textAlign=r<0?`right`:`left`,i.fillStyle=`white`,i.fillText(o.value,n.x+r*o.dx,n.y+o.dy)})}};function Be(e,t={}){return{font:`${e?.fontWeight??t?.fontWeight??`normal`} ${e?.fontSize??t?.fontSize??`12px`} \"${e?.fontFamily??t?.fontFamily??`BIZ UDPGothic`}\"`,color:e?.color??t?.color}}var Ve=class extends j{render(e){super.render(e),N(e,()=>{this.#t(e)})}preRender(e){super.preRender(e),N(e,()=>{this.#e(e)})}#e(e){let t=e.ctx,{width:n}=e.size,r=e.renderingTrack.axisY,i=e.renderingTrack.id,a=P(e.options.tracks?.[i].timeAxis,{});if(!a)return;let o=e.dataCaches[`tracks:${i}:timeAxis`]?.data;o&&(t.beginPath(),a.axis!==!1&&(t.strokeStyle=(typeof a.axis==`object`?a.axis.color:void 0)||`#3333`,t.moveTo(0,r+.5),t.lineTo(n,r+.5)),t.strokeStyle=(a.ticks!==!1&&typeof a.ticks==`object`?a.ticks.color:void 0)||`#3333`,o.forEach(n=>{if(!n.tick)return;let i=e.timeAxis.p(n.time.time);a.ticks!==!1&&(t.moveTo(i,r-(n.major?10:5)),t.lineTo(i,r+(e.symmetric?n.major?10:5:0)))}),t.stroke())}#t(e){let t=e.ctx,n=e.renderingTrack.axisY+2,r=e.renderingTrack.id,i=P(e.options.tracks?.[r].timeAxis,{});if(!i)return;let a=e.dataCaches[`tracks:${r}:timeAxis`]?.data;if(!a||i.labels===!1)return;let o=Be(i.labels);t.fillStyle=o?.color??`black`,t.font=o?.font,t.textAlign=`center`,t.textBaseline=`top`,a.forEach(r=>{let i=e.timeAxis.p(r.time.time);r.text!==void 0&&t.fillText(r.text,i,n)})}};let J={z:0,r:S(1)};function He(e){return J.r.eq(e)?J.z:-e.log(O.base).number()}function Y(e){return J.z===e?J.r:(J.z=e,J.r=S(O.base).pow(-e,BigInt(Math.floor(e))),J.r)}function Ue(e,t){return t?t.reduce((t,n)=>Math.abs(n-e)<Math.abs(t-e)?n:t,t[0]):Number(S(e).floorBy(O.chunkStep).toFixed(2))}function We(e,t,n=O.defaultChunkSize){let r=Y(t),i=r.mul(n);if(!e[0]||!e[1]||!i.isPositive())return[{id:`z${t}`,seq:0n,expires:1/0,range:e,resolution:r,zoom:t}];let a=[],o=e[1].add(i);for(let n=e[0];n.le(o);n=n.add(i)){let e=n.div(i).floor().integer(),o=[i.mul(e),i.mul(e+1n)],s=`z${t}:seq${e}`;a.push({id:s,seq:e,expires:1/0,range:o,resolution:r,zoom:t})}return a}function Ge(e,t){return t===void 0?e:e===void 0||t.lt(e)?t:e}function Ke(e,t){return t===void 0?e:e===void 0?t:e.gt(t)?e:t}function qe(e,t){return(!e[0]||!t[1]||e[0].le(t[1]))&&(!t[0]||!e[1]||t[0].le(e[1]))}var X=class extends A{#e={};#t=[];#n;#r;#i;#a;#o;#s;#c={};#l;constructor(e){super(),this.#n=e.loader,this.#r=e.instantValue??!1,this.#i=e.instantZoomLevel,this.#a=e.immediate??!1,this.#s=e.zoomLevels,this.#o=e.chunkSize===null?0:e.chunkSize??O.defaultChunkSize,this.#l=e.name}updateOptions(e){this.#n=e.loader,this.#r=e.instantValue??!1,this.#i=e.instantZoomLevel,this.#a=e.immediate??!1,this.#s=e.zoomLevels,this.#o=e.chunkSize===null?0:e.chunkSize??O.defaultChunkSize,this.#l=e.name}#u(e,t){if(e.id in this.#e&&t){try{this.#t=this.#p(e.range,this.#t,t)??this.#t}catch(e){console.error(e)}this.changed(),this.dispatchEvent(`datachanged`)}}#d=!1;#f(e,t){let n={...this.#e};for(let e of t)delete n[e.id];for(let e in n)this.#d=!0,delete this.#e[e];!e.timeAxis.animating&&!e.timeAxis.editing&&this.#d&&(this.#d=!1,this.#t=this.#h(Object.values(this.#e),this.#t)??this.#t,this.changed(),this.dispatchEvent(`datachanged`))}#p(e,t,n){let[r,i]=Ie(t,e,e=>e.time._minTime??e.time.time);return[...t.slice(0,r),...n.filter(e=>e.time._minTime??e.time.time),...t.slice(i)].toSorted((e,t)=>{let n=e.time._minTime??e.time.time,r=t.time._maxTime??t.time.time;return n==null||r==null?0:n.lt(r)?-1:n.gt(r)?1:0})}#m=[S(0),S(0)];get window(){return this.#m}#h(e,t){let[n,r]=e.reduce((e,t)=>{let n=t.range[0],r=t.range[1];return[Ge(e[0],n),Ke(e[1],r)]},[void 0,void 0]);if(!n||!r)return t;let i=[n,r];return this.#m=i,t.filter(e=>qe([e.time._minTime??e.time.time,e.time._maxTime??e.time.time],i))}#g(e,t){return t=Ue(t,this.#s),We(e,t,this.#o).map(e=>this.#e[e.id]??e)}update(e){if(this.#r){let t=e.timeAxis.committing.time??e.timeAxis.now,n=this.#i??e.timeAxis.committing.zoom.number(),r=Y(n).mul(this.#o).div(2),i=[t.sub(r),t.add(r)];this.#_(e,i,n)}else if(this.#a){let t=e.timeAxis.current.zoom?.number()??0;this.#_(e,e.timeAxis.current.range,t)}else{let t=e.timeAxis.committing.zoom?.number()??0;this.#_(e,e.timeAxis.committing.range,t)}}#_(e,t,n){let r=this.#g(t,n),i=Date.now();r.forEach(e=>{this.#e[e.id]&&i<=e.expires||(this.#e[e.id]=e,this.#d=!0,e.expires=1/0,e._loading=!0,this.#n(e).then(t=>{e.expires=t?.expires??e.expires,this.#u(t,t.data)}).finally(()=>{e._loading=!1}))}),this.#f(e,r)}get data(){return this.#t}invalidate(){this.#e={},this.#d=!0}get meta(){return this.#c}updateMeta(e){this.#c=e,this.changed(),this.dispatchEvent(`metachanged`)}get name(){return this.#l}};function Z(e){if(e==null||C(e))return e;if(typeof e==`string`){let t=Date.parse(e);if(Number.isNaN(t))throw Error(`Parse error as Date`);return S(t/1e3)}return e instanceof Date?S(e.getTime()/1e3):S(e)}function Je(e){return e.map(Z)}let Ye=globalThis.requestAnimationFrame??(e=>setTimeout(e,0)),Xe=globalThis.cancelAnimationFrame??(e=>clearTimeout(e));var Ze=class{#e=null;#t;start(e){e={animation:`in-out`,duration:500,...e},this.cancel(),this.#t=()=>e.done?.(e.target());let t=e.overshoot??0,n=e.duration??500,r=performance.now(),i=e.animation?{linear:e=>e,\"in-out\":e=>e*e*e*(e*(e*6-15)+10),out:e=>1+(t+1)*(e-1)**3+t*(e-1)**2}[String(e.animation)]:null;if(!i||e.origin()===e.target()){this.done();return}let a=()=>{let t=performance.now()-r;if(t<n){let r=i(t/n),o=e.origin()*(1-r)+e.target()*r;e.update(o,r),this.#e=Ye(a)}else this.done()};this.#e=Ye(a)}done(){this.cancel(),this.#t?.()}cancel(){this.#e&&=(Xe(this.#e),null)}get animating(){return this.#e!==null}};function Q(e,t,n){let r=e??n;if(t[0]!==void 0){let e=t[0]??n;if(r.lt(e))return t[0]}if(t[1]!==void 0){let e=t[1]??n;if(r.gt(e))return t[1]}return e}var $=class extends A{#e;#t={id:void 0,value:null,nullValue:S(0),committed:null,committing:null,current:null,candidate:null,domain:[void 0,void 0],editing:!1,animating:!1,cursorMode:`current`,updated:!1};#n=new Ze;#r;get candidate(){return this.#t.candidate}get value(){return this.#t.value}get committing(){return this.#t.committing}parseValue(e){return S(e)}setValue(e,t){t??=!1;let n=this.parseValue(e);if(this.#t.value===n||n&&this.#t.value?.eq(n))return;let r=typeof t==`object`?t:{animation:t};this.begin(n),this.commit(r)}get committed(){return this.#t.committed}get current(){return this.#t.current}get domain(){return this.#t.domain}set domain(e){let t=e.map(e=>S(e));this.#t.domain=t,this.restore(),this.#c(),this.setValue(Q(this.value,t,this.#t.nullValue)),this.changed()}get editing(){return this.#t.editing}get animating(){return this.#t.animating}get cursor(){return this.#t.cursorMode===`current`?this.#t.current:this.#t.committing}constructor(e={initialValue:0}){super(),e.domain&&(this.#t.domain=e.domain.map(e=>S(e))),e.onNull&&(this.#r=e.onNull,this.#c()),this.#e=e.lazy??!1;let t=Q(S(e.initialValue),this.#t.domain,this.#t.nullValue);this.#t.value=t,this.#t.committed=t,this.#t.current=t,this.#t.candidate=t,this.#t.committing=t}handleSyncEvent(e){switch(e.type){case`begin`:this.#i(e);break;case`update`:this.#a(e);break;case`commit`:this.#o(e);break;case`restore`:this.#l(e);break;case`set:nullvalue`:this.#s(e);break}}begin(e){this.#c(),e===void 0&&(e=this.#t.current);let t=Q(e,this.#t.domain,this.#t.nullValue),n={type:`begin`,candidate:t};this.dispatchEvent(new k(`sync`,n)),this.dispatchEvent(new k(`valuechanging`,t)),this.#i(n)}#i({candidate:e}){this.#n.cancel(),this.#t.cursorMode=`current`,this.#t.editing=!0,this.#t.updated=!1,this.#t.candidate=e,this.dispatchEvent(new k(`valuechanging`,e)),this.changed()}update(e){this.#c();let t=this.#t.nullValue,n=Q(e,this.#t.domain,t),r={type:`update`,candidate:n,current:(e??t).sub(this.#t.current??t).mul(n===e?1:.5).add(this.#t.current??t)};this.dispatchEvent(new k(`sync`,r)),this.#a(r)}#a({candidate:e,current:t}){this.#t.editing=!0,this.#t.updated=!0,this.#t.candidate=e,this.#t.current=t,this.dispatchEvent(new k(`valuechanging`,e)),this.changed()}commit(e={}){this.#c();let t=e.value===void 0?this.#t.candidate:e.value,n=t,r=Q(t,this.#t.domain,this.#t.nullValue),i=e.animation===void 0?this.#t.updated?`current`:`target`:this.#t.cursorMode,a={type:`commit`,targetValue:r,animation:e.animation===void 0?this.#t.editing?`out`:`in-out`:e.animation,duration:e.duration??500,cursorMode:i,divergentValue:n,lazy:e.lazy??this.#e};this.dispatchEvent(new k(`sync`,a)),this.#o(a)}#o({targetValue:e,divergentValue:t,animation:n,duration:r,cursorMode:i,lazy:a}){let o=()=>{this.#t.value=e,this.#t.editing=!1,this.changed(),this.dispatchEvent(new k(`valuechanging`,this.#t.value)),this.dispatchEvent(new k(`valuechanged`,this.#t.value))},s=this.#t.current??this.#t.nullValue,c=e??this.#t.nullValue,l=t??this.#t.nullValue,u=0;c.neq(l)&&l.neq(s)&&(u=3*(l.sub(s).div(c.sub(s)).number()-1)/2),this.#t.cursorMode=i,this.#t.candidate=e,this.#t.committing=e,a||o();let d=c.eq(s)?0:1;this.#t.animating=!0,this.#n.start({origin:()=>0,target:()=>d,update:t=>{this.#c(),this.#t.animating=!0;let n=(e??this.#t.nullValue).sub(s).mul(t).add(s);this.#t.current=n,this.changed()},done:()=>{this.#t.animating=!1,this.#t.current=e,a&&o(),this.#t.committed=e,this.changed()},animation:n,duration:r,overshoot:u})}#s({nullValue:e}){this.#t.nullValue=e}#c(){if(!this.#r)return;let e=this.parseValue(this.#r())??this.#t.nullValue;this.#t.nullValue=e}toString(){return JSON.stringify(this)}toJSON(){return{value:this.value,candidate:this.candidate,committed:this.committed,committing:this.committing,current:this.current,editing:this.editing,animating:this.animating}}#l({value:e,domain:t}){this.#n.cancel(),this.#t.cursorMode=`current`,this.#t.value=e,this.#t.candidate=e,this.#t.committed=e,this.#t.committing=e,this.#t.current=e,this.#t.editing=!1,this.#t.animating=!1,this.#t.domain=t}restore(){let e={type:`restore`,value:this.value,domain:this.#t.domain};this.dispatchEvent(new k(`sync`,e)),this.#l(e)}},Qe=class extends A{time;zoom;constructor(e){super(),this.time=new $,this.zoom=new $,this.time=new $({initialValue:Z(e.time??null),domain:Je(e.timeRange??[void 0,null]),onNull:()=>Date.now()/1e3}),this.zoom=new $({initialValue:e.zoom??0,domain:e.zoomRange}),this.time.on(`change`,()=>this.changed()),this.zoom.on(`change`,()=>this.changed()),this.time.on(`valuechanging`,e=>this.dispatchEvent(new k(`timechanging`,e.value))),this.time.on(`valuechanged`,e=>this.dispatchEvent(new k(`timechanged`,e.value))),this.zoom.on(`valuechanging`,e=>this.dispatchEvent(new k(`zoomchanging`,e.value.number()))),this.zoom.on(`valuechanged`,e=>this.dispatchEvent(new k(`zoomchanged`,e.value.number())))}setTime(e,t){if(typeof e==`number`&&!isFinite(e)||typeof e==`number`&&isNaN(e))return!1;t??=`out`;try{this.time.setValue(Z(e),t)}catch{return!1}return!0}setTimeRange(e){this.time.domain=Je(e??[void 0,null])}setZoom(e,t){if(typeof e==`number`&&!isFinite(e)||typeof e==`number`&&isNaN(e))return!1;t??={animation:`linear`,duration:200,lazy:this.zoom.value.lt(e)};try{this.zoom.setValue(S(e),t)}catch{return!1}return!0}setZoomRange(e){this.zoom.domain=(e??[void 0,void 0]).map(S)}},$e=class{decay;minVelocity;delay;points=[];angle_=0;distance_=0;constructor(e=.005,t=.05,n=100){this.decay=e,this.minVelocity=t,this.delay=n}begin(){this.points=[]}update(e,t){let n=Date.now();this.points.push({x:e,y:t,t:n});let r=n-this.delay;for(;this.points.length>1&&this.points[0].t<r;)this.points.shift()}end(){let e=this.points.length;if(e<2)return!1;let t=Date.now()-this.delay,n=this.points[e-1];if(n.t<t)return!1;for(;this.points.length>1&&this.points[0].t<t;)this.points.shift();let r=this.points[0];if(n.t<Date.now()-this.delay)return!1;let i=n.x-r.x,a=n.y-r.y,o=n.t-r.t;return o<1e3/60?!1:(this.distance_=Math.sqrt(i*i+a*a)/o/this.decay,this.angle_=Math.atan2(a,i),!0)}getDistance(){return this.distance_}getAngle(){return this.angle_}},et=class extends A{#e;#t={cursorMode:`center`,axisLength:[0,0],disabled:!1,dragging:!1,pinch:null};#n=new $e;constructor(e={}){super(),this.#e=new Qe(e);let{time:t,zoom:n}=this.#e;t.on(`change`,()=>this.changed()),t.on(`valuechanged`,e=>this.dispatchEvent(new k(`timechanged`,e.value))),t.on(`valuechanging`,e=>this.dispatchEvent(new k(`timechanging`,e.value))),t.on(`sync`,e=>this.dispatchEvent(new k(`sync`,{time:e.value}))),n.on(`change`,()=>this.changed()),n.on(`valuechanged`,e=>this.dispatchEvent(new k(`zoomchanged`,e.value.number()))),n.on(`valuechanging`,e=>this.dispatchEvent(new k(`zoomchanging`,e.value.number()))),n.on(`sync`,e=>this.dispatchEvent(new k(`sync`,{zoom:e.value}))),t.on(`valuechanged`,()=>this.dispatchEvent(`viewchanged`)),n.on(`valuechanged`,()=>this.dispatchEvent(`viewchanged`)),t.on(`valuechanging`,()=>this.dispatchEvent(`viewchanging`)),n.on(`valuechanging`,()=>this.dispatchEvent(`viewchanging`))}z(e){return S(He(e))}r(e){return Y(e.number())}p(e,t){if(Array.isArray(e))return e.map((e,t)=>this.p(e,t));if(e===void 0)return t===0?-100:this.#t.axisLength[0]+this.#t.axisLength[1]+100;let n=this.r(this.#e.zoom.current),r=this.#e.time.current??this.now,i=e??this.now;return S(i).sub(r).div$(n,3).number()+this.#t.axisLength[0]}t(e){if(Array.isArray(e))return e.map(e=>this.t(e));let t=this.r(this.#e.zoom.current),n=this.#e.time.current??this.now;return t.mul(e-this.#t.axisLength[0]).add(n).round(t.digits)}set disabled(e){this.#t.disabled=e}get disabled(){return this.#t.disabled}get editing(){return this.#e.time.editing||this.#e.zoom.editing}get dragging(){return this.#t.dragging}get animating(){return this.#e.time.animating||this.#e.zoom.animating}get current(){return{time:this.#e.time.current,zoom:this.#e.zoom.current,resolution:this.r(this.#e.zoom.current),range:this.rangeFor(this.#e.time.current,this.#e.zoom.current),p:this.p(this.#e.time.current)}}get candidate(){return{time:this.#e.time.candidate,zoom:this.#e.zoom.candidate,resolution:this.r(this.#e.zoom.candidate),range:this.rangeFor(this.#e.time.candidate,this.#e.zoom.candidate),p:this.p(this.#e.time.candidate)}}get value(){return{time:this.#e.time.value,zoom:this.#e.zoom.value,resolution:this.r(this.#e.zoom.value),range:this.rangeFor(this.#e.time.value,this.#e.zoom.value),p:this.p(this.#e.time.value)}}get committing(){return{time:this.#e.time.committing,zoom:this.#e.zoom.committing,resolution:this.r(this.#e.zoom.committing),range:this.rangeFor(this.#e.time.committing,this.#e.zoom.committing),p:this.p(this.#e.time.committing)}}get committed(){return{time:this.#e.time.committed,zoom:this.#e.zoom.committed,resolution:this.r(this.#e.zoom.committed),range:this.rangeFor(this.#e.time.committed,this.#e.zoom.committed),p:this.p(this.#e.time.committed)}}get cursor(){return{time:this.#e.time.cursor,p:this.p(this.#e.time.cursor)}}get range(){return{time:this.#e.time.domain,p:this.p(this.#e.time.domain)}}rangeFor(e,t){return[(e??this.now).sub(this.r(t).mul(this.#t.axisLength[0])),(e??this.now).add(this.r(t).mul(this.#t.axisLength[1]))]}#r(e){this.#e.time.begin(this.t(e)),this.#n.begin()}#i(e,t){this.#e.time.update(this.t(this.current.p-t)),this.#n.update(e,0)}#a(){if(this.#n.end()){let e=this.#n.getDistance(),t=this.#n.getAngle(),n=e*Math.cos(t);this.#e.time.commit({value:this.t(this.current.p-n)})}else this.#e.time.commit()}click(e){this.#e.time.begin(this.t(e)),this.#e.time.commit()}dragStart(e){this.disabled||(this.#r(e),this.#t.dragging=!0)}dragUpdate(e,t){!this.#t.dragging||this.disabled||this.#i(e,t)}dragEnd(){!this.#t.dragging||this.disabled||(this.#a(),this.#t.dragging=!1)}dragCancel(){this.#t.dragging=!1}pinchStart(e,t){if(!this.disabled){if(this.#e.time.update(this.#e.time.current),this.#t.pinch={anchorTime:[this.t(e),this.t(t)]},this.#t.pinch.anchorTime[0].eq(this.#t.pinch.anchorTime[1])){this.#t.pinch=null;return}this.#e.zoom.begin(this.#e.zoom.current)}}pinchUpdate(e,t){if(this.disabled)return;if(!this.#t.pinch)return this.pinchStart(e,t);let n=this.#t.pinch.anchorTime[0],r=this.#t.pinch.anchorTime[1];if(Math.abs(t-e)>2){let i=r.sub(n).div(t-e).abs(),a=this.z(i);this.#e.zoom.update(a)}}pinchEnd(){this.disabled||this.#t.pinch&&(this.#t.pinch=null,this.#e.zoom.commit({animation:`linear`,duration:200}))}setAxisLength(e){this.#t.axisLength=e,this.changed(),this.dispatchEvent(`viewchanged`),this.dispatchEvent(`viewchanging`)}get axisLength(){return this.#t.axisLength}get now(){return S(Date.now()/1e3)}handleSyncEvent(e){e.time&&this.#e.time.handleSyncEvent(e.time),e.zoom&&this.#e.zoom.handleSyncEvent(e.zoom)}},tt=class{id;height;symmetric;oy=0;paddingY=[5,5];labelHeight=0;seriesKeys;constructor(e){this.id=e.id,this.oy=e.oy??0,this.height=e.height??0,this.symmetric=e.symmetric??!1,this.labelHeight=e.labelHeight??0,this.seriesKeys=e.seriesKeys}get chartHeight(){return this.height-this.paddingY[0]-this.paddingY[1]-this.labelHeight}get axisY(){return(this.symmetric?this.chartHeight/2:this.chartHeight)+this.paddingY[0]}y(e){if(e==null||isNaN(e))return NaN;let t=this.symmetric?this.chartHeight/2:this.chartHeight;return this.axisY-t*e}getRenderers(){return[]}},nt=class extends X{#e=new $({initialValue:null});#t=new $({initialValue:null});#n;#r(){let e=this.#e.current,t=this.#t.current;if(!this.#n||e==null||t==null)return;let n=S.max(e.abs(),t.abs());super.updateMeta({...this.#n??{},min:e,max:t,amp:n})}constructor(e){super(e),this.#e.on(`change`,()=>this.#r()),this.#t.on(`change`,()=>this.#r())}updateMeta(e){this.#n=e,e.min&&this.#e.setValue(e.min,this.#e.committed?{animation:`linear`,duration:200}:!1),e.max&&this.#t.setValue(e.max,this.#t.committed?{animation:`linear`,duration:200}:!1),this.#r()}};function rt(e,t,n=globalThis.requestAnimationFrame){let r,i,a=te(e),o=new et;o.on(`change`,()=>v()),o.on(`sync`,e=>a(`sync`,e.value)),o.on(`viewchanging`,()=>u());let s={onPointerEvent:e=>{let t={click:e=>o.click(e),\"drag:start\":e=>o.dragStart(e),\"drag:update\":(e,t)=>o.dragUpdate(e,t),\"drag:end\":()=>o.dragEnd(),\"pinch:start\":(e,t,n)=>o.pinchStart(e,n),\"pinch:update\":(e,t,n)=>o.pinchUpdate(e,n),\"pinch:end\":()=>o.pinchEnd()};if(e.type in t)return t[e.type](e.buttons[0]?.latest.x??0,e.buttons[0]?.delta.x??0,e.buttons[1]?.latest.x??0),!0},pointerStyle:()=>{}},c=[new Ve,new ke,new ze,new fe];c.forEach(e=>{e.on(`change`,()=>v()),e.on(`renderer:event`,t=>a(`renderer:event`,{value:t.value,uid:e.uid}))});let l={ctx:null,options:{},tracks:[],renderingTrack:null,dataCaches:{},chart:{ox:0,oy:0,width:1,height:1,get axisY(){return(l.symmetric?l.chart.height/2:l.chart.height)+l.chart.oy}},size:{width:1,height:1},get symmetric(){return this.renderingTrack?.symmetric??!1},dpr:1,timeAxis:o};async function u(){let e=o.current,t=o.revision;await a(`view:changed`,{time:e.time,zoom:e.zoom.number(),resolution:e.resolution,range:e.range},{rpc:!0}),o.revision===t&&Object.values(l.dataCaches).forEach(e=>d(e).then(()=>v()))}async function d(e){let{revision:t}=e,{resolution:n,zoom:r}=o.value,i=await a(`provider:loadMeta`,{key:e.name,zoom:r.number(),resolution:n},{rpc:!0});e.revision===t&&e.updateMeta(i)}function f(e,t={}){let n={...t,name:e,loader:async t=>await a(`provider:loadChunk`,{key:e,chunk:t},{rpc:!0})};if(l.dataCaches[e]){let t=l.dataCaches[e];return t.updateOptions(n),t.invalidate(),t}let r=e.startsWith(`series:`)?new nt(n):new X(n);return r.on(`change`,()=>v()),r.on(`datachanged`,async()=>u()),r}function p(e){let t={...e.dataCaches};for(let n in e.options.dataCacheOptions)e.dataCaches[n]=f(n,e.options.dataCacheOptions[n]),delete t[n];Object.keys(t).forEach(t=>delete e.dataCaches[t])}function m(e){for(let t of Object.values(e.dataCaches))t.update(e)}let h;function g(){if(!i)return;let e=i.height/l.dpr,t=Object.entries(l.options.tracks??{default:{}}),n=Math.max(0,e-t.reduce((e,[,t])=>e+(t?.height??0),0))/t.filter(([,e])=>e.height==null).length,r=0;l.tracks=t.map(([e,i])=>{let a=i.height??n;return r+=a,new tt({id:e,oy:r-a,height:a,symmetric:i.symmetric??!1,labelHeight:!i.symmetric&&i.timeAxis!==!1&&(typeof i.timeAxis!=`object`||i.timeAxis.labels!==!1)?14:0,seriesKeys:Object.entries(l.options.series??{}).filter(([,n])=>(n.track??t[0][0])===e).map(([e])=>e)})})}ne(e,{init:({canvas:e})=>{i=e,r=i?.getContext(`2d`)},fonts:e=>{if(e)for(let n of e)try{let e=typeof n.source==`string`&&n.source.match(/url\\(\"([^\"]+)\"\\) *format\\(\"woff2\"\\)/);if(e&&e?.[1])fetch(e[1]).then(e=>e.arrayBuffer()).then(e=>{let r=new Uint8Array(e),i=new FontFace(n.family,r,n.desc);i.loaded.then(()=>{t?.add(i),v()}),i.load()});else{let e=new FontFace(n.family,n.source,n.desc);e.loaded.then(()=>{t?.add(e),v()}),e.load()}}catch(e){console.error(`Failed to load the font:`,e)}v()},\"options:update\":e=>{D(l.options,e),e.dataCacheOptions&&p(l),(`tracks`in e||`series`in e)&&g();for(let t of c)t.updateOptions(e);v()},resize:async({size:e,context:t})=>{if(!i)return;let n=t?.dpr??l.dpr??1;i.width=e.width*n,i.height=e.height*n,o.setAxisLength([e.width/2,e.width/2]),l.dpr=n,g(),v()},pointer:async e=>{let t=[...c??[],s],n=(h??t).find(t=>t.onPointerEvent(e,l));return h=e.type===`up`||!n?void 0:[n],!0},cursor:async e=>{let t=[...c??[],s];return(h??t).map(t=>t.pointerStyle(e,l)).find(e=>e)},sync:e=>{o.handleSyncEvent(e)},reload:()=>{for(let e of Object.values(l.dataCaches))e.invalidate();v()}});let _=!1;function v(){_=!0}let y=0,b=0;function x(){y++}function S(){let e=Date.now(),t=(y*1e3/(e-b)).toFixed(1);b+1e3<=e&&(b=e,y=0),r?.clearRect(0,0,60,15),r?.fillText(`FPS: ${t}`,5,10)}function C(e){for(let t of c)r?.save(),e(t),r?.restore()}function w(e){!i||!r||(e.ctx=r,_=!1,m(e),x(),r.reset(),r.scale(e.dpr,e.dpr),C(t=>{t.preRender(e)}),M(e,null,()=>{ue(e,o.range.time,`#00000010`)}),C(t=>{t.render(e)}),e.options.indicator!==!1&&M(e,null,()=>de(e)),C(t=>{t.postRender(e)}))}function ee(){let e=o.range,t=e.time[0]===null&&0<=e.p[0]&&e.p[0]<l.size.width||e.time[1]===null&&0<=e.p[1]&&e.p[1]<l.size.width;return _||o.value.time===null||t}let T=()=>{n(T),ee()&&w(l),l.options.showFps&&S()};n(T)}rt(self,self.fonts)})();"],{type:`text/javascript;charset=utf-8`}));return new Worker(t,e)}function pn(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`)return e.toString()===t.toString();if(e&&t&&typeof e==`object`){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!pn(e[r],t[r]))return!1;return!0}return!1}function $(e,t,n=new WeakSet){if(e==null)return e;let r=typeof e;if(r===`string`||r===`number`||r===`boolean`||r===`bigint`)return e;if(r===`undefined`||r===`symbol`)return;if(r===`function`)return e.toString();if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||t?.includes(e))return e;if(n.has(e))throw TypeError(`Cannot serialize circular reference`);if(n.add(e),typeof e.toJSON==`function`){let r=e.toJSON();if(r!==e){let i=$(r,t,n);return n.delete(e),i}}if(Array.isArray(e)){let r=Array(e.length);for(let i=0;i<e.length;i++)r[i]=$(e[i],t,n);return n.delete(e),r}if(e instanceof Date||e instanceof RegExp||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)return n.delete(e),e;let i={};for(let r of Object.keys(e))i[r]=$(e[r],t,n);return n.delete(e),i}function mn(e,t,n){e??={},t??={};let r=[],i={...t};for(let a in e)(!i[a]||i[a]!==e[a]&&!pn(i[a]?._src,e[a]))&&(t[a]=n(e[a]),t[a]!==e[a]&&(t[a]._src=$(e[a]),r.push(a))),delete i[a];Object.keys(i).forEach(e=>delete t[e])}const hn=[`#080`,`#800`,`#008`,`#880`,`#088`,`#808`],gn={indicator:!0,padding:[5,5,5,5],sources:void 0,series:void 0,tracks:void 0,selection:void 0};var _n=class extends T{#e;call;#t={};#n={};#r={};#i=!1;#a=[];#o=!1;#s=null;#c=0;constructor(e){super(),this.#e=new fn,this.call=ke(this.#e),Ae(this.#e,{sync:e=>{this.dispatchEvent(new w(`sync`,e,this.uid))},"renderer:event":async e=>{this.dispatchEvent(new w(`renderer:event`,e.value,e.uid))},"provider:loadChunk":async({key:e,chunk:t})=>await this.#r[e]?.loadChunk(t),"provider:loadMeta":async({key:e,zoom:t,resolution:n})=>await this.#r[e].loadMeta({zoom:t,resolution:n}),"view:changed":async e=>{for(let t in this.dispatchEvent(new w(`viewchanged`,e,this.uid)),this.#n)this.#n[t].updateDataRange(e.range,e.zoom);return!0}});let t=e.canvas.transferControlToOffscreen();this.call(`init`,{canvas:t},{transfer:[t]}),this.setFonts(e.fonts)}async setFonts(e){if(e){this.#i=!1,this.#d();let t=await He(e);this.call(`fonts`,t);return}this.#i=!0,this.#u(),await this.#p()}[Symbol.dispose](){this.dispose()}dispose(){this.#d(),this.#e.terminate()}setOptions(e){this.#l={},this.updateOptions({...gn,...e})}#l={};updateOptions(e){xe(this.#l,e);let t={...e},n=!1;if(`sources`in e&&mn(this.#l.sources,this.#t,e=>(n=!0,dn(e))),(n||`series`in e||`tracks`in e)&&(mn(this.#l.series,this.#n,e=>(e.data.color||(e.data.color=hn[this.#c++],this.#c%=hn.length),n=!0,ln({sources:this.#t,options:e}))),`tracks`in e&&(n=!0),n)){let e=[...Object.entries(this.#l.tracks??{default:{}}).filter(([,e])=>e.timeAxis!==!1).map(([e,t])=>[`tracks:${e}:timeAxis`,tn,{timeAxis:t.timeAxis},{immediate:!0}]),...Object.entries(this.#n).flatMap(([e,t])=>{let n={series:t,options:this.#l},r={zoomLevels:t.zoomLevels,chunkSize:t.chunkSize};return[[`series:${e}:chart`,Je,n,r],[`series:${e}:instantaneous`,Qe,n,{...r,instantValue:!0,instantZoomLevel:t.options.data.instantaneous?.zoom}]]})];t.dataCacheOptions={};let n={...this.#r};for(let[r,i,a,o]of e)this.#r[r]=new i(a),delete n[r],o&&(t.dataCacheOptions[r]=o);Object.keys(n).forEach(e=>delete this.#r[e])}this.call(`options:update`,t)}resize(e){this.call(`resize`,e)}onPointerEvent(e){this.call(`pointer`,e)}async pointerStyle(e){return await this.call(`cursor`,e,{rpc:!0})}sync(e,t){t&&t===this.uid||this.call(`sync`,e)}#u(){if(!this.#i||this.#o||typeof document>`u`)return;this.#o=!0;let e=[],t=document.fonts;if(t&&typeof t.addEventListener==`function`){let n=()=>this.#f();t.addEventListener(`loadingdone`,n),t.addEventListener(`loadingerror`,n),t.addEventListener(`loading`,n),e.push(()=>{t.removeEventListener(`loadingdone`,n),t.removeEventListener(`loadingerror`,n),t.removeEventListener(`loading`,n)})}if(typeof MutationObserver<`u`){let t=new MutationObserver(e=>{for(let t of e){if(t.type===`childList`&&[...Array.from(t.addedNodes??[]),...Array.from(t.removedNodes??[])].some(e=>vn(e))){this.#f();return}if(t.type===`attributes`&&vn(t.target)){this.#f();return}}});try{let n=document.head??document.documentElement??document;t.observe(n,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`rel`,`href`]}),e.push(()=>t.disconnect())}catch{t.disconnect()}}this.#a=e}#d(){if(this.#o){this.#o=!1;for(let e of this.#a)try{e()}catch{}this.#a=[],this.#s!=null&&(clearTimeout(this.#s),this.#s=null)}}#f(){this.#i&&this.#s==null&&(this.#s=setTimeout(()=>{this.#s=null,this.#p()},0))}async#p(){if(this.#i)try{let e=await Ue();this.call(`fonts`,e.length?e:void 0)}catch(e){console.error(`Failed to resolve document fonts`,e)}}invalidateSources(e){e||=Object.keys(this.#t);for(let t of e)this.#t[t]?.expireChunks();this.call(`reload`,null)}};function vn(e){return typeof HTMLStyleElement<`u`&&e instanceof HTMLStyleElement?!0:typeof HTMLLinkElement<`u`&&e instanceof HTMLLinkElement?e.rel?.toLowerCase()===`stylesheet`:!1}function yn(e){let t=e.deltaY;switch(e.deltaMode){case WheelEvent.DOM_DELTA_LINE:return t*16;case WheelEvent.DOM_DELTA_PAGE:return t*window.innerHeight}return t}var bn=class extends T{#e=null;#t=null;#n=null;#r;#i;#a;#o;get time(){return this.#r.time.value?.clone()??null}set time(e){this.setTime(e)}setTime(e,t){this.#r.setTime(e,t)}get timeRange(){return this.#r.time.domain.map(e=>e==null?e:e.clone())}setTimeRange(e){this.#r.setTimeRange(e)}get zoom(){return this.#r.zoom.value.number()}set zoom(e){this.setZoom(e)}setZoom(e,t){return this.#r.setZoom(e,t)}fitTo(e,t){if(!this.#s.width)return!1;let n=typeof t?.padding==`number`?t.padding*2:Array.isArray(t?.padding)?t.padding.reduce((e,t)=>e+t):0,r=e.map(e=>E(e)),i=Se(r[1].sub(r[0]).div(this.#s.width-n).abs()),a=r[0].add(r[1]).div(2);this.setZoom(i,t?.animation===!1?!1:void 0),this.setTime(a,t?.animation===!1?!1:void 0)}get zoomRange(){return this.#r.zoom.domain.map(e=>e==null?e:e.number())}setZoomRange(e){this.#r.setZoomRange(e)}setSelection(e){if(this.#i.selection===!1)return;let t=e?.map(e=>E(e))??null;this.#t?.updateOptions({selection:{range:t}})}clearSelection(){this.setSelection(null)}get animating(){return this.#r.time.animating}get editing(){return this.#r.time.editing}#s={x:0,y:0,width:0,height:0,dpr:0};get size(){return{...this.#s}}#c=!1;set disabled(e){this.#c=e,this.#n&&(this.#n.disabled=e)}get disabled(){return this.#c}get options(){return this.#i}setOptions(e){this.#i={style:void 0,...e},this.#l(this.#i,!0)}updateOptions(e){xe(this.#i,e),this.#l(e,!1)}#l(e,t){!this.#e||!this.#t||(`style`in e&&(this.#e.style.width=e.style?.width??`100%`,this.#e.style.height=e.style?.height??`36px`,this.#e.style.background=e.style?.background??`#fff`),t?this.#t.setOptions(e):this.#t.updateOptions(e),this.#u())}#u(){if(!this.#e||!this.#t)return;let e=window.devicePixelRatio,t=this.#e.getBoundingClientRect();if(this.#s.width===t.width&&this.#s.height===t.height&&this.#s.dpr===e)return;this.#s={x:t.x,y:t.y,width:t.width,height:t.height,dpr:e};let n=this.#s.width,r=this.#s.height;this.#t.resize({size:{width:n,height:r},context:{dpr:e}})}#d(){let e=this.#r.time,t=this.#r.zoom;this.#r.on(`change`,()=>this.changed()),this.#r.on(`timechanging`,e=>this.dispatchEvent(e)),this.#r.on(`timechanged`,e=>this.dispatchEvent(e)),this.#r.on(`zoomchanging`,e=>this.dispatchEvent(e)),this.#r.on(`zoomchanged`,e=>this.dispatchEvent(e)),e.on(`sync`,e=>this.#t?.sync({time:e.value},e.origin)),t.on(`sync`,e=>this.#t?.sync({zoom:e.value},e.origin))}#f(e){if(this.#c)return;e.preventDefault();let t=yn(e);this.#r.setZoom(this.#r.zoom.committing.add(-t/this.#o))}constructor(e){super();let t=e??{};this.#r=new ve(t),this.#d(),this.#i={style:void 0,...t},this.#a=t.fonts??[],t.target&&this.mount(t.target),this.#o=t.wheelSensitivity??C.wheelSensitivity}reload(e){this.#t?.invalidateSources(e)}mount(e){let t=typeof e==`string`?document.querySelector(e):e;if(!t)throw Error(`mount failed`);return(this.#e||this.#t||this.#n)&&console.warn(`Timescope: mounted twice`),this.#e?.remove(),this.#e=document.createElement(`canvas`),this.#e.style.all=`unset`,this.#e.style.display=`block`,this.#e.style.touchAction=`none`,this.#e.style.width=this.#i.style?.width??`100%`,this.#e.style.height=this.#i.style?.height??`36px`,this.#e.style.background=this.#i.style?.background??`#fff`,this.#t=new _n({canvas:this.#e,fonts:this.#a}),this.#t.setOptions(this.#i),this.#r.time.restore(),this.#r.zoom.restore(),new ResizeObserver(()=>this.#u()).observe(this.#e),this.#t.on(`change`,()=>this.changed()),this.#t.on(`sync`,e=>{e.value.time&&(this.#r.time.handleSyncEvent(e.value.time),this.#r.time.dispatchEvent(new w(`sync`,e.value.time,e.origin))),e.value.zoom&&(this.#r.zoom.handleSyncEvent(e.value.zoom),this.#r.zoom.dispatchEvent(new w(`sync`,e.value.zoom,e.origin)))}),this.#t.on(`renderer:event`,e=>{typeof e.value==`object`&&e.value&&`range`in e.value&&`resizing`in e.value&&this.dispatchEvent(new w(e.value.resizing?`rangechanging`:`rangechanged`,e.value.range,e.origin))}),this.#n=new De({element:this.#e,transform:e=>e.sub([this.#s.x,this.#s.y]),handler:e=>{this.#t?.onPointerEvent(e)},cursor:async e=>await this.#t?.pointerStyle(e)??void 0}),this.#e.addEventListener(`wheel`,this.#f.bind(this)),t.appendChild(this.#e),this}unmount(){this.#e?.remove(),this.#n?.detach(),this.#t?.dispose(),this.#t=null,this.#e=null,this.#n=null}dispose(){this.unmount()}};export{b as Decimal,bn as Timescope,ie as createDefineTimescopeOptions,se as createDefineTimescopeSeries,ae as createDefineTimescopeSources,oe as createDefineTimescopeTracks,ce as defineTimescopeOptions,de as defineTimescopeSeries,le as defineTimescopeSources,ue as defineTimescopeTracks};
|
package/package.json
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "timescope",
|
|
3
|
-
"version": "0.0.0-alpha.
|
|
3
|
+
"version": "0.0.0-alpha.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Timescope - Canvas for Time-Series Visualization",
|
|
6
6
|
"author": "Xenodrive, Inc.",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"homepage": "https://xenodrive.github.io/timescope/",
|
|
9
9
|
"repository": {
|
|
10
|
-
"url": "https://github.com/xenodrive/timescope"
|
|
10
|
+
"url": "https://github.com/xenodrive/timescope/"
|
|
11
11
|
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"time-series",
|
|
14
|
+
"timeseries",
|
|
15
|
+
"timeline",
|
|
16
|
+
"chart",
|
|
17
|
+
"library",
|
|
18
|
+
"typescript",
|
|
19
|
+
"javascript"
|
|
20
|
+
],
|
|
12
21
|
"types": "./index.d.ts",
|
|
13
22
|
"main": "./index.js",
|
|
14
23
|
"exports": {
|