UNPKG

lightweight-charts

Version:

Performant financial charts built with HTML5 canvas

8 lines 181 kB
/*!
 * @license
 * TradingView Lightweight Charts™ v5.1.0
 * Copyright (c) 2025 TradingView, Inc.
 * Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0
 */
import{size as t,bindCanvasElementBitmapSizeTo as i,equalSizes as s,tryCreateCanvasRenderingTarget2D as n}from"fancy-canvas";const e={title:"",visible:!0,lastValueVisible:!0,priceLineVisible:!0,priceLineSource:0,priceLineWidth:1,priceLineColor:"",priceLineStyle:2,baseLineVisible:!0,baseLineWidth:1,baseLineColor:"#B2B5BE",baseLineStyle:0,priceFormat:{type:"price",precision:2,minMove:.01}};var r,h;function a(t,i){const s={0:[],1:[t.lineWidth,t.lineWidth],2:[2*t.lineWidth,2*t.lineWidth],3:[6*t.lineWidth,6*t.lineWidth],4:[t.lineWidth,4*t.lineWidth]}[i];t.setLineDash(s)}function l(t,i,s,n){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(s,i+e),t.lineTo(n,i+e),t.stroke()}function o(t,i){if(!t)throw new Error("Assertion failed"+(i?": "+i:""))}function _(t){if(void 0===t)throw new Error("Value is undefined");return t}function u(t){if(null===t)throw new Error("Value is null");return t}function c(t){return u(_(t))}!function(t){t[t.Simple=0]="Simple",t[t.WithSteps=1]="WithSteps",t[t.Curved=2]="Curved"}(r||(r={})),function(t){t[t.Solid=0]="Solid",t[t.Dotted=1]="Dotted",t[t.Dashed=2]="Dashed",t[t.LargeDashed=3]="LargeDashed",t[t.SparseDotted=4]="SparseDotted"}(h||(h={}));class d{constructor(){this.t=[]}i(t,i,s){const n={h:t,l:i,o:!0===s};this.t.push(n)}_(t){const i=this.t.findIndex((i=>t===i.h));i>-1&&this.t.splice(i,1)}u(t){this.t=this.t.filter((i=>i.l!==t))}p(t,i,s){const n=[...this.t];this.t=this.t.filter((t=>!t.o)),n.forEach((n=>n.h(t,i,s)))}v(){return this.t.length>0}m(){this.t=[]}}function f(t,...i){for(const s of i)for(const i in s)void 0!==s[i]&&Object.prototype.hasOwnProperty.call(s,i)&&!["__proto__","constructor","prototype"].includes(i)&&("object"!=typeof s[i]||void 0===t[i]||Array.isArray(s[i])?t[i]=s[i]:f(t[i],s[i]));return t}function p(t){return"number"==typeof t&&isFinite(t)}function v(t){return"number"==typeof t&&t%1==0}function m(t){return"string"==typeof t}function w(t){return"boolean"==typeof t}function g(t){const i=t;if(!i||"object"!=typeof i)return i;let s,n,e;for(n in s=Array.isArray(i)?[]:{},i)i.hasOwnProperty(n)&&(e=i[n],s[n]=e&&"object"==typeof e?g(e):e);return s}function M(t){return null!==t}function b(t){return null===t?void 0:t}const S="-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif";function x(t,i,s){return void 0===i&&(i=S),`${s=void 0!==s?`${s} `:""}${t}px ${i}`}class C{constructor(t){this.M={S:1,C:5,k:NaN,P:"",T:"",R:"",D:"",I:0,V:0,B:0,A:0,L:0},this.O=t}N(){const t=this.M,i=this.F(),s=this.W();return t.k===i&&t.T===s||(t.k=i,t.T=s,t.P=x(i,s),t.A=2.5/12*i,t.I=t.A,t.V=i/12*t.C,t.B=i/12*t.C,t.L=0),t.R=this.H(),t.D=this.U(),this.M}H(){return this.O.N().layout.textColor}U(){return this.O.$()}F(){return this.O.N().layout.fontSize}W(){return this.O.N().layout.fontFamily}}function y(t){return t<0?0:t>255?255:Math.round(t)||0}function k(t){return.199*t[0]+.687*t[1]+.114*t[2]}class P{constructor(t,i){this.q=new Map,this.j=t,i&&(this.q=i)}Y(t,i){if("transparent"===t)return t;const s=this.K(t),n=s[3];return`rgba(${s[0]}, ${s[1]}, ${s[2]}, ${i*n})`}Z(t){const i=this.K(t);return{G:`rgb(${i[0]}, ${i[1]}, ${i[2]})`,X:k(i)>160?"black":"white"}}J(t){return k(this.K(t))}tt(t,i,s){const[n,e,r,h]=this.K(t),[a,l,o,_]=this.K(i),u=[y(n+s*(a-n)),y(e+s*(l-e)),y(r+s*(o-r)),(c=h+s*(_-h),c<=0||c>1?Math.min(Math.max(c,0),1):Math.round(1e4*c)/1e4)];var c;return`rgba(${u[0]}, ${u[1]}, ${u[2]}, ${u[3]})`}K(t){const i=this.q.get(t);if(i)return i;const s=function(t){const i=document.createElement("div");i.style.display="none",document.body.appendChild(i),i.style.color=t;const s=window.getComputedStyle(i).color;return document.body.removeChild(i),s}(t),n=s.match(/^rgba?\s*\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d*\.?\d+))?\)$/);if(!n){if(this.j.length)for(const i of this.j){const s=i(t);if(s)return this.q.set(t,s),s}throw new Error(`Failed to parse color: ${t}`)}const e=[parseInt(n[1],10),parseInt(n[2],10),parseInt(n[3],10),n[4]?parseFloat(n[4]):1];return this.q.set(t,e),e}}class T{constructor(){this.it=[]}st(t){this.it=t}nt(t,i,s){this.it.forEach((n=>{n.nt(t,i,s)}))}}class R{nt(t,i,s){t.useBitmapCoordinateSpace((t=>this.et(t,i,s)))}}class D extends R{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){if(null===this.rt||null===this.rt.lt)return;const n=this.rt.lt,e=this.rt,r=Math.max(1,Math.floor(i))%2/2,h=h=>{t.beginPath();for(let a=n.to-1;a>=n.from;--a){const n=e.ot[a],l=Math.round(n._t*i)+r,o=n.ut*s,_=h*s+r;t.moveTo(l,o),t.arc(l,o,_,0,2*Math.PI)}t.fill()};e.ct>0&&(t.fillStyle=e.dt,h(e.ft+e.ct)),t.fillStyle=e.vt,h(e.ft)}}function I(){return{ot:[{_t:0,ut:0,wt:0,gt:0}],vt:"",dt:"",ft:0,ct:0,lt:null}}const V={from:0,to:1};class B{constructor(t,i,s){this.Mt=new T,this.bt=[],this.St=[],this.xt=!0,this.O=t,this.Ct=i,this.yt=s,this.Mt.st(this.bt)}kt(t){this.Pt(),this.xt=!0}Tt(){return this.xt&&(this.Rt(),this.xt=!1),this.Mt}Pt(){const t=this.yt.Dt();t.length!==this.bt.length&&(this.St=t.map(I),this.bt=this.St.map((t=>{const i=new D;return i.ht(t),i})),this.Mt.st(this.bt))}Rt(){const t=2===this.Ct.N().mode||!this.Ct.It(),i=this.yt.Vt(),s=this.Ct.Bt(),n=this.O.Et();this.Pt(),i.forEach(((i,e)=>{const r=this.St[e],h=i.At(s),a=i.Lt();!t&&null!==h&&i.It()&&null!==a?(r.vt=h.zt,r.ft=h.ft,r.ct=h.Ot,r.ot[0].gt=h.gt,r.ot[0].ut=i.Ft().Nt(h.gt,a.Wt),r.dt=h.Ht??this.O.Ut(r.ot[0].ut/i.Ft().$t()),r.ot[0].wt=s,r.ot[0]._t=n.qt(s),r.lt=V):r.lt=null}))}}class E extends R{constructor(t){super(),this.jt=t}et({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:n}){if(null===this.jt)return;const e=this.jt.Yt.It,r=this.jt.Kt.It;if(!e&&!r)return;const h=Math.round(this.jt._t*s),o=Math.round(this.jt.ut*n);t.lineCap="butt",e&&h>=0&&(t.lineWidth=Math.floor(this.jt.Yt.ct*s),t.strokeStyle=this.jt.Yt.R,t.fillStyle=this.jt.Yt.R,a(t,this.jt.Yt.Zt),function(t,i,s,n){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(i+e,s),t.lineTo(i+e,n),t.stroke()}(t,h,0,i.height)),r&&o>=0&&(t.lineWidth=Math.floor(this.jt.Kt.ct*n),t.strokeStyle=this.jt.Kt.R,t.fillStyle=this.jt.Kt.R,a(t,this.jt.Kt.Zt),l(t,o,0,i.width))}}class A{constructor(t,i){this.xt=!0,this.Gt={Yt:{ct:1,Zt:0,R:"",It:!1},Kt:{ct:1,Zt:0,R:"",It:!1},_t:0,ut:0},this.Xt=new E(this.Gt),this.Jt=t,this.yt=i}kt(){this.xt=!0}Tt(t){return this.xt&&(this.Rt(),this.xt=!1),this.Xt}Rt(){const t=this.Jt.It(),i=this.yt.Qt().N().crosshair,s=this.Gt;if(2===i.mode)return s.Kt.It=!1,void(s.Yt.It=!1);s.Kt.It=t&&this.Jt.ti(this.yt),s.Yt.It=t&&this.Jt.ii(),s.Kt.ct=i.horzLine.width,s.Kt.Zt=i.horzLine.style,s.Kt.R=i.horzLine.color,s.Yt.ct=i.vertLine.width,s.Yt.Zt=i.vertLine.style,s.Yt.R=i.vertLine.color,s._t=this.Jt.si(),s.ut=this.Jt.ni()}}function L(t,i,s,n,e,r){t.fillRect(i+r,s,n-2*r,r),t.fillRect(i+r,s+e-r,n-2*r,r),t.fillRect(i,s,r,e),t.fillRect(i+n-r,s,r,e)}function z(t,i,s,n,e,r){t.save(),t.globalCompositeOperation="copy",t.fillStyle=r,t.fillRect(i,s,n,e),t.restore()}function O(t,i,s,n,e,r){t.beginPath(),t.roundRect?t.roundRect(i,s,n,e,r):(t.lineTo(i+n-r[1],s),0!==r[1]&&t.arcTo(i+n,s,i+n,s+r[1],r[1]),t.lineTo(i+n,s+e-r[2]),0!==r[2]&&t.arcTo(i+n,s+e,i+n-r[2],s+e,r[2]),t.lineTo(i+r[3],s+e),0!==r[3]&&t.arcTo(i,s+e,i,s+e-r[3],r[3]),t.lineTo(i,s+r[0]),0!==r[0]&&t.arcTo(i,s,i+r[0],s,r[0]))}function N(t,i,s,n,e,r,h=0,a=[0,0,0,0],l=""){if(t.save(),!h||!l||l===r)return O(t,i,s,n,e,a),t.fillStyle=r,t.fill(),void t.restore();const o=h/2;var _;O(t,i+o,s+o,n-h,e-h,(_=-o,a.map((t=>0===t?t:t+_)))),"transparent"!==r&&(t.fillStyle=r,t.fill()),"transparent"!==l&&(t.lineWidth=h,t.strokeStyle=l,t.closePath(),t.stroke()),t.restore()}function F(t,i,s,n,e,r,h){t.save(),t.globalCompositeOperation="copy";const a=t.createLinearGradient(0,0,0,e);a.addColorStop(0,r),a.addColorStop(1,h),t.fillStyle=a,t.fillRect(i,s,n,e),t.restore()}class W{constructor(t,i){this.ht(t,i)}ht(t,i){this.jt=t,this.ei=i}$t(t,i){return this.jt.It?t.k+t.A+t.I:0}nt(t,i,s,n){if(!this.jt.It||0===this.jt.ri.length)return;const e=this.jt.R,r=this.ei.G,h=t.useBitmapCoordinateSpace((t=>{const h=t.context;h.font=i.P;const a=this.hi(t,i,s,n),l=a.ai;return a.li?N(h,l.oi,l._i,l.ui,l.ci,r,l.di,[l.ft,0,0,l.ft],r):N(h,l.fi,l._i,l.ui,l.ci,r,l.di,[0,l.ft,l.ft,0],r),this.jt.pi&&(h.fillStyle=e,h.fillRect(l.fi,l.mi,l.wi-l.fi,l.gi)),this.jt.Mi&&(h.fillStyle=i.D,h.fillRect(a.li?l.bi-l.di:0,l._i,l.di,l.Si-l._i)),a}));t.useMediaCoordinateSpace((({context:t})=>{const s=h.xi;t.font=i.P,t.textAlign=h.li?"right":"left",t.textBaseline="middle",t.fillStyle=e,t.fillText(this.jt.ri,s.Ci,(s._i+s.Si)/2+s.yi)}))}hi(t,i,s,n){const{context:e,bitmapSize:r,mediaSize:h,horizontalPixelRatio:a,verticalPixelRatio:l}=t,o=this.jt.pi||!this.jt.ki?i.C:0,_=this.jt.Pi?i.S:0,u=i.A+this.ei.Ti,c=i.I+this.ei.Ri,d=i.V,f=i.B,p=this.jt.ri,v=i.k,m=s.Di(e,p),w=Math.ceil(s.Ii(e,p)),g=v+u+c,M=i.S+d+f+w+o,b=Math.max(1,Math.floor(l));let S=Math.round(g*l);S%2!=b%2&&(S+=1);const x=_>0?Math.max(1,Math.floor(_*a)):0,C=Math.round(M*a),y=Math.round(o*a),k=this.ei.Vi??this.ei.Bi??this.ei.Ei,P=Math.round(k*l)-Math.floor(.5*l),T=Math.floor(P+b/2-S/2),R=T+S,D="right"===n,I=D?h.width-_:_,V=D?r.width-x:x;let B,E,A;return D?(B=V-C,E=V-y,A=I-o-d-_):(B=V+C,E=V+y,A=I+o+d),{li:D,ai:{_i:T,mi:P,Si:R,ui:C,ci:S,ft:2*a,di:x,oi:B,fi:V,wi:E,gi:b,bi:r.width},xi:{_i:T/l,Si:R/l,Ci:A,yi:m}}}}class H{constructor(t){this.Ai={Ei:0,G:"#000",Ri:0,Ti:0},this.Li={ri:"",It:!1,pi:!0,ki:!1,Ht:"",R:"#FFF",Mi:!1,Pi:!1},this.zi={ri:"",It:!1,pi:!1,ki:!0,Ht:"",R:"#FFF",Mi:!0,Pi:!0},this.xt=!0,this.Oi=new(t||W)(this.Li,this.Ai),this.Ni=new(t||W)(this.zi,this.Ai)}ri(){return this.Fi(),this.Li.ri}Ei(){return this.Fi(),this.Ai.Ei}kt(){this.xt=!0}$t(t,i=!1){return Math.max(this.Oi.$t(t,i),this.Ni.$t(t,i))}Wi(){return this.Ai.Vi??null}Hi(){return this.Ai.Vi??this.Ai.Bi??this.Ei()}Ui(t){this.Ai.Bi=t??void 0}$i(){return this.Fi(),this.Li.It||this.zi.It}qi(){return this.Fi(),this.Li.It}Tt(t){return this.Fi(),this.Li.pi=this.Li.pi&&t.N().ticksVisible,this.zi.pi=this.zi.pi&&t.N().ticksVisible,this.Oi.ht(this.Li,this.Ai),this.Ni.ht(this.zi,this.Ai),this.Oi}ji(){return this.Fi(),this.Oi.ht(this.Li,this.Ai),this.Ni.ht(this.zi,this.Ai),this.Ni}Fi(){this.xt&&(this.Li.pi=!0,this.zi.pi=!1,this.Yi(this.Li,this.zi,this.Ai))}}class U extends H{constructor(t,i,s){super(),this.Jt=t,this.Ki=i,this.Zi=s}Yi(t,i,s){if(t.It=!1,2===this.Jt.N().mode)return;const n=this.Jt.N().horzLine;if(!n.labelVisible)return;const e=this.Ki.Lt();if(!this.Jt.It()||this.Ki.Gi()||null===e)return;const r=this.Ki.Xi().Z(n.labelBackgroundColor);s.G=r.G,t.R=r.X;const h=2/12*this.Ki.k();s.Ti=h,s.Ri=h;const a=this.Zi(this.Ki);s.Ei=a.Ei,t.ri=this.Ki.Ji(a.gt,e),t.It=!0}}const $=/[1-9]/g;class q{constructor(){this.jt=null}ht(t){this.jt=t}nt(t,i){if(null===this.jt||!1===this.jt.It||0===this.jt.ri.length)return;const s=t.useMediaCoordinateSpace((({context:t})=>(t.font=i.P,Math.round(i.Qi.Ii(t,u(this.jt).ri,$)))));if(s<=0)return;const n=i.ts,e=s+2*n,r=e/2,h=this.jt.ss;let a=this.jt.Ei,l=Math.floor(a-r)+.5;l<0?(a+=Math.abs(0-l),l=Math.floor(a-r)+.5):l+e>h&&(a-=Math.abs(h-(l+e)),l=Math.floor(a-r)+.5);const o=l+e,_=Math.ceil(0+i.S+i.C+i.A+i.k+i.I);t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:s,verticalPixelRatio:n})=>{const e=u(this.jt);t.fillStyle=e.G;const r=Math.round(l*s),h=Math.round(0*n),a=Math.round(o*s),c=Math.round(_*n),d=Math.round(2*s);if(t.beginPath(),t.moveTo(r,h),t.lineTo(r,c-d),t.arcTo(r,c,r+d,c,d),t.lineTo(a-d,c),t.arcTo(a,c,a,c-d,d),t.lineTo(a,h),t.fill(),e.pi){const r=Math.round(e.Ei*s),a=h,l=Math.round((a+i.C)*n);t.fillStyle=e.R;const o=Math.max(1,Math.floor(s)),_=Math.floor(.5*s);t.fillRect(r-_,a,o,l-a)}})),t.useMediaCoordinateSpace((({context:t})=>{const s=u(this.jt),e=0+i.S+i.C+i.A+i.k/2;t.font=i.P,t.textAlign="left",t.textBaseline="middle",t.fillStyle=s.R;const r=i.Qi.Di(t,"Apr0");t.translate(l+n,e+r),t.fillText(s.ri,0,0)}))}}class j{constructor(t,i,s){this.xt=!0,this.Xt=new q,this.Gt={It:!1,G:"#4c525e",R:"white",ri:"",ss:0,Ei:NaN,pi:!0},this.Ct=t,this.ns=i,this.Zi=s}kt(){this.xt=!0}Tt(){return this.xt&&(this.Rt(),this.xt=!1),this.Xt.ht(this.Gt),this.Xt}Rt(){const t=this.Gt;if(t.It=!1,2===this.Ct.N().mode)return;const i=this.Ct.N().vertLine;if(!i.labelVisible)return;const s=this.ns.Et();if(s.Gi())return;t.ss=s.ss();const n=this.Zi();if(null===n)return;t.Ei=n.Ei;const e=s.es(this.Ct.Bt());t.ri=s.rs(u(e)),t.It=!0;const r=this.ns.Xi().Z(i.labelBackgroundColor);t.G=r.G,t.R=r.X,t.pi=s.N().ticksVisible}}class Y{constructor(){this.hs=null,this.ls=0}_s(){return this.ls}us(t){this.ls=t}Ft(){return this.hs}cs(t){this.hs=t}ds(t){return[]}fs(){return[]}It(){return!0}}var K;!function(t){t[t.Normal=0]="Normal",t[t.Magnet=1]="Magnet",t[t.Hidden=2]="Hidden",t[t.MagnetOHLC=3]="MagnetOHLC"}(K||(K={}));class Z extends Y{constructor(t,i){super(),this.yt=null,this.ps=NaN,this.vs=0,this.ws=!1,this.gs=new Map,this.Ms=!1,this.bs=new WeakMap,this.Ss=new WeakMap,this.xs=NaN,this.Cs=NaN,this.ys=NaN,this.ks=NaN,this.ns=t,this.Ps=i;this.Ts=((t,i)=>s=>{const n=i(),e=t();if(s===u(this.yt).Rs())return{gt:e,Ei:n};{const t=u(s.Lt());return{gt:s.Ds(n,t),Ei:n}}})((()=>this.ps),(()=>this.Cs));const s=((t,i)=>()=>{const s=this.ns.Et().Is(t()),n=i();return s&&Number.isFinite(n)?{wt:s,Ei:n}:null})((()=>this.vs),(()=>this.si()));this.Vs=new j(this,t,s)}N(){return this.Ps}Bs(t,i){this.ys=t,this.ks=i}Es(){this.ys=NaN,this.ks=NaN}As(){return this.ys}Ls(){return this.ks}zs(t,i,s){this.Ms||(this.Ms=!0),this.ws=!0,this.Os(t,i,s)}Bt(){return this.vs}si(){return this.xs}ni(){return this.Cs}It(){return this.ws}Ns(){this.ws=!1,this.Fs(),this.ps=NaN,this.xs=NaN,this.Cs=NaN,this.yt=null,this.Es(),this.Ws()}Hs(t){if(!this.Ps.doNotSnapToHiddenSeriesIndices)return t;const i=this.ns,s=i.Et();let n=null,e=null;for(const s of i.Us()){const i=s.qs().$s(t,-1);if(i){if(i.js===t)return t;(null===n||i.js>n)&&(n=i.js)}const r=s.qs().$s(t,1);if(r){if(r.js===t)return t;(null===e||r.js<e)&&(e=r.js)}}const r=[n,e].filter(M);if(0===r.length)return t;const h=s.qt(t),a=r.map((t=>Math.abs(h-s.qt(t))));return r[a.indexOf(Math.min(...a))]}Ys(t){let i=this.bs.get(t);i||(i=new A(this,t),this.bs.set(t,i));let s=this.Ss.get(t);return s||(s=new B(this.ns,this,t),this.Ss.set(t,s)),[i,s]}ti(t){return t===this.yt&&this.Ps.horzLine.visible}ii(){return this.Ps.vertLine.visible}Ks(t,i){this.ws&&this.yt===t||this.gs.clear();const s=[];return this.yt===t&&s.push(this.Zs(this.gs,i,this.Ts)),s}fs(){return this.ws?[this.Vs]:[]}Gs(){return this.yt}Ws(){this.ns.Xs().forEach((t=>{this.bs.get(t)?.kt(),this.Ss.get(t)?.kt()})),this.gs.forEach((t=>t.kt())),this.Vs.kt()}Js(t){return t&&!t.Rs().Gi()?t.Rs():null}Os(t,i,s){this.Qs(t,i,s)&&this.Ws()}Qs(t,i,s){const n=this.xs,e=this.Cs,r=this.ps,h=this.vs,a=this.yt,l=this.Js(s);this.vs=t,this.xs=isNaN(t)?NaN:this.ns.Et().qt(t),this.yt=s;const o=null!==l?l.Lt():null;return null!==l&&null!==o?(this.ps=i,this.Cs=l.Nt(i,o)):(this.ps=NaN,this.Cs=NaN),n!==this.xs||e!==this.Cs||h!==this.vs||r!==this.ps||a!==this.yt}Fs(){const t=this.ns.tn().map((t=>t.qs().sn())).filter(M),i=0===t.length?null:Math.max(...t);this.vs=null!==i?i:NaN}Zs(t,i,s){let n=t.get(i);return void 0===n&&(n=new U(this,i,s),t.set(i,n)),n}}function G(t){return"left"===t||"right"===t}class X{constructor(t){this.nn=new Map,this.en=[],this.rn=t}hn(t,i){const s=function(t,i){return void 0===t?i:{an:Math.max(t.an,i.an),ln:t.ln||i.ln}}(this.nn.get(t),i);this.nn.set(t,s)}_n(){return this.rn}un(t){const i=this.nn.get(t);return void 0===i?{an:this.rn}:{an:Math.max(this.rn,i.an),ln:i.ln}}cn(){this.dn(),this.en=[{fn:0}]}pn(t){this.dn(),this.en=[{fn:1,Wt:t}]}vn(t){this.mn(),this.en.push({fn:5,Wt:t})}dn(){this.mn(),this.en.push({fn:6})}wn(){this.dn(),this.en=[{fn:4}]}gn(t){this.dn(),this.en.push({fn:2,Wt:t})}Mn(t){this.dn(),this.en.push({fn:3,Wt:t})}bn(){return this.en}Sn(t){for(const i of t.en)this.xn(i);this.rn=Math.max(this.rn,t.rn),t.nn.forEach(((t,i)=>{this.hn(i,t)}))}static Cn(){return new X(2)}static yn(){return new X(3)}xn(t){switch(t.fn){case 0:this.cn();break;case 1:this.pn(t.Wt);break;case 2:this.gn(t.Wt);break;case 3:this.Mn(t.Wt);break;case 4:this.wn();break;case 5:this.vn(t.Wt);break;case 6:this.mn()}}mn(){const t=this.en.findIndex((t=>5===t.fn));-1!==t&&this.en.splice(t,1)}}class J{formatTickmarks(t){return t.map((t=>this.format(t)))}}const Q=".";function tt(t,i){if(!p(t))return"n/a";if(!v(i))throw new TypeError("invalid length");if(i<0||i>16)throw new TypeError("invalid length");if(0===i)return t.toString();return("0000000000000000"+t.toString()).slice(-i)}class it extends J{constructor(t,i){if(super(),i||(i=1),p(t)&&v(t)||(t=100),t<0)throw new TypeError("invalid base");this.Ki=t,this.kn=i,this.Pn()}format(t){const i=t<0?"−":"";return t=Math.abs(t),i+this.Tn(t)}Pn(){if(this.Rn=0,this.Ki>0&&this.kn>0){let t=this.Ki;for(;t>1;)t/=10,this.Rn++}}Tn(t){const i=this.Ki/this.kn;let s=Math.floor(t),n="";const e=void 0!==this.Rn?this.Rn:NaN;if(i>1){let r=+(Math.round(t*i)-s*i).toFixed(this.Rn);r>=i&&(r-=i,s+=1),n=Q+tt(+r.toFixed(this.Rn)*this.kn,e)}else s=Math.round(s*i)/i,e>0&&(n=Q+tt(0,e));return s.toFixed(0)+n}}class st extends it{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class nt extends J{constructor(t){super(),this.Dn=t}format(t){let i="";return t<0&&(i="-",t=-t),t<995?i+this.In(t):t<999995?i+this.In(t/1e3)+"K":t<999999995?(t=1e3*Math.round(t/1e3),i+this.In(t/1e6)+"M"):(t=1e6*Math.round(t/1e6),i+this.In(t/1e9)+"B")}In(t){let i;const s=Math.pow(10,this.Dn);return i=(t=Math.round(t*s)/s)>=1e-15&&t<1?t.toFixed(this.Dn).replace(/\.?0+$/,""):String(t),i.replace(/(\.[1-9]*)0+$/,((t,i)=>i))}}const et=/[2-9]/g;class rt{constructor(t=50){this.Vn=0,this.Bn=1,this.En=1,this.An={},this.Ln=new Map,this.zn=t}On(){this.Vn=0,this.Ln.clear(),this.Bn=1,this.En=1,this.An={}}Ii(t,i,s){return this.Nn(t,i,s).width}Di(t,i,s){const n=this.Nn(t,i,s);return((n.actualBoundingBoxAscent||0)-(n.actualBoundingBoxDescent||0))/2}Nn(t,i,s){const n=s||et,e=String(i).replace(n,"0");if(this.Ln.has(e))return _(this.Ln.get(e)).Fn;if(this.Vn===this.zn){const t=this.An[this.En];delete this.An[this.En],this.Ln.delete(t),this.En++,this.Vn--}t.save(),t.textBaseline="middle";const r=t.measureText(e);return t.restore(),0===r.width&&i.length||(this.Ln.set(e,{Fn:r,Wn:this.Bn}),this.An[this.Bn]=e,this.Vn++,this.Bn++),r}}class ht{constructor(t){this.Hn=null,this.M=null,this.Un="right",this.$n=t}qn(t,i,s){this.Hn=t,this.M=i,this.Un=s}nt(t){null!==this.M&&null!==this.Hn&&this.Hn.nt(t,this.M,this.$n,this.Un)}}class at{constructor(t,i,s){this.jn=t,this.$n=new rt(50),this.Yn=i,this.O=s,this.F=-1,this.Xt=new ht(this.$n)}Tt(){const t=this.O.Kn(this.Yn);if(null===t)return null;const i=t.Zn(this.Yn)?t.Gn():this.Yn.Ft();if(null===i)return null;const s=t.Xn(i);if("overlay"===s)return null;const n=this.O.Jn();return n.k!==this.F&&(this.F=n.k,this.$n.On()),this.Xt.qn(this.jn.ji(),n,s),this.Xt}}class lt extends R{constructor(){super(...arguments),this.jt=null}ht(t){this.jt=t}Qn(t,i){if(!this.jt?.It)return null;const{ut:s,ct:n,te:e}=this.jt;return i>=s-n-7&&i<=s+n+7?{ie:this.jt,te:e}:null}et({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:n}){if(null===this.jt)return;if(!1===this.jt.It)return;const e=Math.round(this.jt.ut*n);e<0||e>i.height||(t.lineCap="butt",t.strokeStyle=this.jt.R,t.lineWidth=Math.floor(this.jt.ct*s),a(t,this.jt.Zt),l(t,e,0,i.width))}}class ot{constructor(t){this.se={ut:0,R:"rgba(0, 0, 0, 0)",ct:1,Zt:0,It:!1},this.ne=new lt,this.xt=!0,this.ee=t,this.re=t.Qt(),this.ne.ht(this.se)}kt(){this.xt=!0}Tt(){return this.ee.It()?(this.xt&&(this.he(),this.xt=!1),this.ne):null}}class _t extends ot{constructor(t){super(t)}he(){this.se.It=!1;const t=this.ee.Ft(),i=t.ae().ae;if(2!==i&&3!==i)return;const s=this.ee.N();if(!s.baseLineVisible||!this.ee.It())return;const n=this.ee.Lt();null!==n&&(this.se.It=!0,this.se.ut=t.Nt(n.Wt,n.Wt),this.se.R=s.baseLineColor,this.se.ct=s.baseLineWidth,this.se.Zt=s.baseLineStyle)}}class ut extends R{constructor(){super(...arguments),this.jt=null}ht(t){this.jt=t}le(){return this.jt}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){const n=this.jt;if(null===n)return;const e=Math.max(1,Math.floor(i)),r=e%2/2,h=Math.round(n.oe.x*i)+r,a=n.oe.y*s;t.fillStyle=n._e,t.beginPath();const l=Math.max(2,1.5*n.ue)*i;t.arc(h,a,l,0,2*Math.PI,!1),t.fill(),t.fillStyle=n.ce,t.beginPath(),t.arc(h,a,n.ft*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=e,t.strokeStyle=n.de,t.beginPath(),t.arc(h,a,n.ft*i+e/2,0,2*Math.PI,!1),t.stroke()}}const ct=[{fe:0,pe:.25,ve:4,me:10,we:.25,ge:0,Me:.4,be:.8},{fe:.25,pe:.525,ve:10,me:14,we:0,ge:0,Me:.8,be:0},{fe:.525,pe:1,ve:14,me:14,we:0,ge:0,Me:0,be:0}];class dt{constructor(t){this.Xt=new ut,this.xt=!0,this.Se=!0,this.xe=performance.now(),this.Ce=this.xe-1,this.ye=t}ke(){this.Ce=this.xe-1,this.kt()}Pe(){if(this.kt(),2===this.ye.N().lastPriceAnimation){const t=performance.now(),i=this.Ce-t;if(i>0)return void(i<650&&(this.Ce+=2600));this.xe=t,this.Ce=t+2600}}kt(){this.xt=!0}Te(){this.Se=!0}It(){return 0!==this.ye.N().lastPriceAnimation}Re(){switch(this.ye.N().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.Ce}}Tt(){return this.xt?(this.Rt(),this.xt=!1,this.Se=!1):this.Se&&(this.De(),this.Se=!1),this.Xt}Rt(){this.Xt.ht(null);const t=this.ye.Qt().Et(),i=t.Ie(),s=this.ye.Lt();if(null===i||null===s)return;const n=this.ye.Ve(!0);if(n.Be||!i.Ee(n.js))return;const e={x:t.qt(n.js),y:this.ye.Ft().Nt(n.gt,s.Wt)},r=n.R,h=this.ye.N().lineWidth,a=this.Ae(this.Le(),r);this.Xt.ht({_e:r,ue:h,ce:a.ce,de:a.de,ft:a.ft,oe:e})}De(){const t=this.Xt.le();if(null!==t){const i=this.Ae(this.Le(),t._e);t.ce=i.ce,t.de=i.de,t.ft=i.ft}}Le(){return this.Re()?performance.now()-this.xe:2599}ze(t,i,s,n){const e=s+(n-s)*i;return this.ye.Qt().Xi().Y(t,e)}Ae(t,i){const s=t%2600/2600;let n;for(const t of ct)if(s>=t.fe&&s<=t.pe){n=t;break}o(void 0!==n,"Last price animation internal logic error");const e=(s-n.fe)/(n.pe-n.fe);return{ce:this.ze(i,e,n.we,n.ge),de:this.ze(i,e,n.Me,n.be),ft:(r=e,h=n.ve,a=n.me,h+(a-h)*r)};var r,h,a}}class ft extends ot{constructor(t){super(t)}he(){const t=this.se;t.It=!1;const i=this.ee.N();if(!i.priceLineVisible||!this.ee.It())return;const s=this.ee.Ve(0===i.priceLineSource);s.Be||(t.It=!0,t.ut=s.Ei,t.R=this.ee.Oe(s.R),t.ct=i.priceLineWidth,t.Zt=i.priceLineStyle)}}class pt extends H{constructor(t){super(),this.Jt=t}Yi(t,i,s){t.It=!1,i.It=!1;const n=this.Jt;if(!n.It())return;const e=n.N(),r=e.lastValueVisible,h=""!==n.Ne(),a=0===e.seriesLastValueMode,l=n.Ve(!1);if(l.Be)return;r&&(t.ri=this.Fe(l,r,a),t.It=0!==t.ri.length),(h||a)&&(i.ri=this.We(l,r,h,a),i.It=i.ri.length>0);const o=n.Oe(l.R),_=this.Jt.Qt().Xi().Z(o);s.G=_.G,s.Ei=l.Ei,i.Ht=n.Qt().Ut(l.Ei/n.Ft().$t()),t.Ht=o,t.R=_.X,i.R=_.X}We(t,i,s,n){let e="";const r=this.Jt.Ne();return s&&0!==r.length&&(e+=`${r} `),i&&n&&(e+=this.Jt.Ft().He()?t.Ue:t.$e),e.trim()}Fe(t,i,s){return i?s?this.Jt.Ft().He()?t.$e:t.Ue:t.ri:""}}function vt(t,i,s,n){const e=Number.isFinite(i),r=Number.isFinite(s);return e&&r?t(i,s):e||r?e?i:s:n}class mt{constructor(t,i){this.qe=t,this.je=i}Ye(t){return null!==t&&(this.qe===t.qe&&this.je===t.je)}Ke(){return new mt(this.qe,this.je)}Ze(){return this.qe}Ge(){return this.je}Xe(){return this.je-this.qe}Gi(){return this.je===this.qe||Number.isNaN(this.je)||Number.isNaN(this.qe)}Sn(t){return null===t?this:new mt(vt(Math.min,this.Ze(),t.Ze(),-1/0),vt(Math.max,this.Ge(),t.Ge(),1/0))}Je(t){if(!p(t))return;if(0===this.je-this.qe)return;const i=.5*(this.je+this.qe);let s=this.je-i,n=this.qe-i;s*=t,n*=t,this.je=i+s,this.qe=i+n}Qe(t){p(t)&&(this.je+=t,this.qe+=t)}tr(){return{minValue:this.qe,maxValue:this.je}}static ir(t){return null===t?null:new mt(t.minValue,t.maxValue)}}class wt{constructor(t,i){this.sr=t,this.nr=i||null}er(){return this.sr}rr(){return this.nr}tr(){return{priceRange:null===this.sr?null:this.sr.tr(),margins:this.nr||void 0}}static ir(t){return null===t?null:new wt(mt.ir(t.priceRange),t.margins)}}const gt=[2,4,8,16,32,64,128,256,512],Mt="Custom series with conflation reducer must have a priceValueBuilder method";class bt extends ot{constructor(t,i){super(t),this.hr=i}he(){const t=this.se;t.It=!1;const i=this.hr.N();if(!this.ee.It()||!i.lineVisible)return;const s=this.hr.ar();null!==s&&(t.It=!0,t.ut=s,t.R=i.color,t.ct=i.lineWidth,t.Zt=i.lineStyle,t.te=this.hr.N().id)}}class St extends H{constructor(t,i){super(),this.ye=t,this.hr=i}Yi(t,i,s){t.It=!1,i.It=!1;const n=this.hr.N(),e=n.axisLabelVisible,r=""!==n.title,h=this.ye;if(!e||!h.It())return;const a=this.hr.ar();if(null===a)return;r&&(i.ri=n.title,i.It=!0),i.Ht=h.Qt().Ut(a/h.Ft().$t()),t.ri=this.lr(n.price),t.It=!0;const l=this.ye.Qt().Xi().Z(n.axisLabelColor||n.color);s.G=l.G;const o=n.axisLabelTextColor||l.X;t.R=o,i.R=o,s.Ei=a}lr(t){const i=this.ye.Lt();return null===i?"":this.ye.Ft().Ji(t,i.Wt)}}class xt{constructor(t,i){this.ye=t,this.Ps=i,this._r=new bt(t,this),this.jn=new St(t,this),this.ur=new at(this.jn,t,t.Qt())}cr(t){f(this.Ps,t),this.kt(),this.ye.Qt().dr()}N(){return this.Ps}pr(){return this._r}vr(){return this.ur}mr(){return this.jn}kt(){this._r.kt(),this.jn.kt()}ar(){const t=this.ye,i=t.Ft();if(t.Qt().Et().Gi()||i.Gi())return null;const s=t.Lt();return null===s?null:i.Nt(this.Ps.price,s.Wt)}}class Ct{constructor(){this.wr=new WeakMap}gr(t,i,s){const n=1/i*s;if(t>=n)return 1;const e=n/t,r=Math.pow(2,Math.floor(Math.log2(e)));return Math.min(r,512)}Mr(t,i,s,n=!1,e){if(0===t.length||i<=1)return t;const r=this.br(i);if(r<=1)return t;const h=this.Sr(t);let a=h.Cr.get(r);return void 0!==a||(a=this.yr(t,r,s,n,e,h.Cr),h.Cr.set(r,a)),a}kr(t,i,s,n,e=!1,r){if(s<1||0===t.length)return t;const h=this.Sr(t),a=h.Cr.get(s);if(!a)return this.Mr(t,s,n,e,r);const l=this.Pr(t,i,s,a,e,n,r);return h.Cr.set(s,l),l}br(t){if(t<=2)return 2;for(const i of gt)if(t<=i)return i;return 512}Tr(t){if(0===t.length)return 0;const i=t[0],s=t[t.length-1];return 31*t.length+17*i.js+13*s.js}yr(t,i,s,n=!1,e,r=new Map){if(2===i)return this.Rr(t,2,s,n,e);const h=i/2;let a=r.get(h);return a||(a=this.yr(t,h,s,n,e,r),r.set(h,a)),this.Dr(a,s,n,e)}Rr(t,i,s,n=!1,e){const r=this.Ir(t,i,s,n,e);return this.Vr(r,n)}Dr(t,i,s=!1,n){const e=this.Ir(t,2,i,s,n);return this.Vr(e,s)}Ir(t,i,s,n=!1,e){const r=[];for(let h=0;h<t.length;h+=i){if(t.length-h>=i){const i=this.Br(t[h],t[h+1],s,n,e);i.Er=!1,r.push(i)}else if(0===r.length)r.push(this.Ar(t[h],!0));else{const i=r[r.length-1];r[r.length-1]=this.Lr(i,t[h],s,n,e)}}return r}zr(t,i){return(t??1)+(i??1)}Br(t,i,s,n=!1,e){if(!n||!s||!e){const s=t.Wt[1]>i.Wt[1]?t.Wt[1]:i.Wt[1],n=t.Wt[2]<i.Wt[2]?t.Wt[2]:i.Wt[2];return{Or:t.js,Nr:i.js,Fr:t.wt,Wr:i.wt,Hr:t.Wt[0],Ur:s,$r:n,qr:i.Wt[3],jr:this.zr(t.jr,i.jr),Yr:void 0,Er:!1}}const r=s(this.Kr(t,e),this.Kr(i,e)),h=e(r),a=h.length?h[h.length-1]:0;return{Or:t.js,Nr:i.js,Fr:t.wt,Wr:i.wt,Hr:t.Wt[0],Ur:Math.max(t.Wt[1],a),$r:Math.min(t.Wt[2],a),qr:a,jr:this.zr(t.jr,i.jr),Yr:r,Er:!1}}Lr(t,i,s,n=!1,e){if(!n||!s||!e)return{Or:t.Or,Nr:i.js,Fr:t.Fr,Wr:i.wt,Hr:t.Hr,Ur:t.Ur>i.Wt[1]?t.Ur:i.Wt[1],$r:t.$r<i.Wt[2]?t.$r:i.Wt[2],qr:i.Wt[3],jr:t.jr+(i.jr??1),Yr:t.Yr,Er:!1};const r=t.Yr,h=this.Kr(i,e),a=r?{data:r,index:t.Or,originalTime:t.Fr,time:t.Fr,priceValues:e(r)}:null,l=a?s(a,h):h.data,o=a?e(l):h.priceValues,_=o.length?o[o.length-1]:0;return{Or:t.Or,Nr:i.js,Fr:t.Fr,Wr:i.wt,Hr:t.Hr,Ur:Math.max(t.Ur,_),$r:Math.min(t.$r,_),qr:_,jr:t.jr+(i.jr??1),Yr:l,Er:!1}}Zr(t,i,s,n,e,r,h=!1,a){const l=i===n?e:t[i];if(s-i==1)return this.Ar(l,!0);const o=i+1===n?e:t[i+1];let _=this.Br(l,o,r,h,a);for(let l=i+2;l<s;l++){const i=l===n?e:t[l];_=this.Lr(_,i,r,h,a)}return _}Kr(t,i){const s=t.le??{};return{data:t.le,index:t.js,originalTime:t.Gr,time:t.wt,priceValues:i(s)}}Xr(t,i=!1){const s=!0===i,n=!!t.Yr;return{...{js:t.Or,wt:t.Fr,Gr:t.Fr,Wt:[s?t.qr:t.Hr,t.Ur,t.$r,t.qr],jr:t.jr},le:s?n?t.Yr:{wt:t.Fr}:void 0}}Vr(t,i=!1){return t.map((t=>this.Xr(t,i)))}Pr(t,i,s,n,e=!1,r,h){if(0===n.length)return n;const a=t.length-1,l=Math.floor(a/s)*s;if(Math.min(l+s,t.length)-l<s&&t.length>s){const n=t.slice();return n[n.length-1]=i,this.Mr(n,s,r,e,h)}if(Math.floor((a-1)/s)===Math.floor(a/s)||1===n.length){const o=Math.min(l+s,t.length),_=o-l;if(_<=0)return n;const u=1===_?this.Ar(l===a?i:t[l],!0):this.Zr(t,l,o,a,i,r,e,h);return n[n.length-1]=this.Xr(u,e),n}{const n=t.slice();return n[n.length-1]=i,this.Mr(n,s,r,e,h)}}Ar(t,i=!1){return{Or:t.js,Nr:t.js,Fr:t.wt,Wr:t.wt,Hr:t.Wt[0],Ur:t.Wt[1],$r:t.Wt[2],qr:t.Wt[3],jr:t.jr??1,Yr:t.le,Er:i}}Sr(t){const i=this.Jr(t),s=this.Tr(t);return i.Qr!==s&&(i.Cr.clear(),i.Qr=s),i}Jr(t){let i=this.wr.get(t);return void 0===i&&(i={Qr:this.Tr(t),Cr:new Map},this.wr.set(t,i)),i}}class yt extends Y{constructor(t){super(),this.ns=t}Qt(){return this.ns}}const kt={Bar:(t,i,s,n)=>{const e=i.upColor,r=i.downColor,h=u(t(s,n)),a=c(h.Wt[0])<=c(h.Wt[3]);return{th:h.R??(a?e:r)}},Candlestick:(t,i,s,n)=>{const e=i.upColor,r=i.downColor,h=i.borderUpColor,a=i.borderDownColor,l=i.wickUpColor,o=i.wickDownColor,_=u(t(s,n)),d=c(_.Wt[0])<=c(_.Wt[3]);return{th:_.R??(d?e:r),ih:_.Ht??(d?h:a),sh:_.nh??(d?l:o)}},Custom:(t,i,s,n)=>({th:u(t(s,n)).R??i.color}),Area:(t,i,s,n)=>{const e=u(t(s,n));return{th:e.vt??i.lineColor,vt:e.vt??i.lineColor,eh:e.eh??i.topColor,rh:e.rh??i.bottomColor}},Baseline:(t,i,s,n)=>{const e=u(t(s,n));return{th:e.Wt[3]>=i.baseValue.price?i.topLineColor:i.bottomLineColor,hh:e.hh??i.topLineColor,ah:e.ah??i.bottomLineColor,oh:e.oh??i.topFillColor1,_h:e._h??i.topFillColor2,uh:e.uh??i.bottomFillColor1,dh:e.dh??i.bottomFillColor2}},Line:(t,i,s,n)=>{const e=u(t(s,n));return{th:e.R??i.color,vt:e.R??i.color}},Histogram:(t,i,s,n)=>({th:u(t(s,n)).R??i.color})};class Pt{constructor(t){this.fh=(t,i)=>void 0!==i?i.Wt:this.ye.qs().ph(t),this.ye=t,this.mh=kt[t.wh()]}gh(t,i){return this.mh(this.fh,this.ye.N(),t,i)}}function Tt(t,i,s,n,e=0,r=i.length){let h=r-e;for(;0<h;){const r=h>>1,a=e+r;n(i[a],s)===t?(e=a+1,h-=r+1):h=r}return e}const Rt=Tt.bind(null,!0),Dt=Tt.bind(null,!1);var It;!function(t){t[t.NearestLeft=-1]="NearestLeft",t[t.None=0]="None",t[t.NearestRight=1]="NearestRight"}(It||(It={}));const Vt=30;class Bt{constructor(){this.Mh=[],this.bh=new Map,this.Sh=new Map,this.xh=[]}Ch(){return this.yh()>0?this.Mh[this.Mh.length-1]:null}kh(){return this.yh()>0?this.Ph(0):null}sn(){return this.yh()>0?this.Ph(this.Mh.length-1):null}yh(){return this.Mh.length}Gi(){return 0===this.yh()}Ee(t){return null!==this.Th(t,0)}ph(t){return this.$s(t)}$s(t,i=0){const s=this.Th(t,i);return null===s?null:{...this.Rh(s),js:this.Ph(s)}}Dh(){return this.Mh}Ih(t,i,s){if(this.Gi())return null;let n=null;for(const e of s){n=Et(n,this.Vh(t,i,e))}return n}ht(t){this.Sh.clear(),this.bh.clear(),this.Mh=t,this.xh=t.map((t=>t.js))}Bh(){return this.xh}Ph(t){return this.Mh[t].js}Rh(t){return this.Mh[t]}Th(t,i){const s=this.Eh(t);if(null===s&&0!==i)switch(i){case-1:return this.Ah(t);case 1:return this.Lh(t);default:throw new TypeError("Unknown search mode")}return s}Ah(t){let i=this.zh(t);return i>0&&(i-=1),i!==this.Mh.length&&this.Ph(i)<t?i:null}Lh(t){const i=this.Oh(t);return i!==this.Mh.length&&t<this.Ph(i)?i:null}Eh(t){const i=this.zh(t);return i===this.Mh.length||t<this.Mh[i].js?null:i}zh(t){return Rt(this.Mh,t,((t,i)=>t.js<i))}Oh(t){return Dt(this.Mh,t,((t,i)=>t.js>i))}Nh(t,i,s){let n=null;for(let e=t;e<i;e++){const t=this.Mh[e].Wt[s];Number.isNaN(t)||(null===n?n={Fh:t,Wh:t}:(t<n.Fh&&(n.Fh=t),t>n.Wh&&(n.Wh=t)))}return n}Vh(t,i,s){if(this.Gi())return null;let n=null;const e=u(this.kh()),r=u(this.sn()),h=Math.max(t,e),a=Math.min(i,r),l=Math.ceil(h/Vt)*Vt,o=Math.max(l,Math.floor(a/Vt)*Vt);{const t=this.zh(h),e=this.Oh(Math.min(a,l,i));n=Et(n,this.Nh(t,e,s))}let _=this.bh.get(s);void 0===_&&(_=new Map,this.bh.set(s,_));for(let t=Math.max(l+1,h);t<o;t+=Vt){const i=Math.floor(t/Vt);let e=_.get(i);if(void 0===e){const t=this.zh(i*Vt),n=this.Oh((i+1)*Vt-1);e=this.Nh(t,n,s),_.set(i,e)}n=Et(n,e)}{const t=this.zh(o),i=this.Oh(a);n=Et(n,this.Nh(t,i,s))}return n}}function Et(t,i){if(null===t)return i;if(null===i)return t;return{Fh:Math.min(t.Fh,i.Fh),Wh:Math.max(t.Wh,i.Wh)}}function At(){return new Bt}const Lt={setLineStyle:a};class zt{constructor(t){this.Hh=t}nt(t,i,s){this.Hh.draw(t,Lt)}Uh(t,i,s){this.Hh.drawBackground?.(t,Lt)}}class Ot{constructor(t){this.Ln=null,this.$h=t}Tt(){const t=this.$h.renderer();if(null===t)return null;if(this.Ln?.qh===t)return this.Ln.jh;const i=new zt(t);return this.Ln={qh:t,jh:i},i}Yh(){return this.$h.zOrder?.()??"normal"}}class Nt{constructor(t){this.Kh=null,this.Zh=t}Gh(){return this.Zh}Ws(){this.Zh.updateAllViews?.()}Ys(){const t=this.Zh.paneViews?.()??[];if(this.Kh?.qh===t)return this.Kh.jh;const i=t.map((t=>new Ot(t)));return this.Kh={qh:t,jh:i},i}Qn(t,i){return this.Zh.hitTest?.(t,i)??null}}let Ft=class extends Nt{ds(){return[]}};class Wt{constructor(t){this.Hh=t}nt(t,i,s){this.Hh.draw(t,Lt)}Uh(t,i,s){this.Hh.drawBackground?.(t,Lt)}}class Ht{constructor(t){this.Ln=null,this.$h=t}Tt(){const t=this.$h.renderer();if(null===t)return null;if(this.Ln?.qh===t)return this.Ln.jh;const i=new Wt(t);return this.Ln={qh:t,jh:i},i}Yh(){return this.$h.zOrder?.()??"normal"}}function Ut(t){return{ri:t.text(),Ei:t.coordinate(),Vi:t.fixedCoordinate?.(),R:t.textColor(),G:t.backColor(),It:t.visible?.()??!0,pi:t.tickVisible?.()??!0}}class $t{constructor(t,i){this.Xt=new q,this.Xh=t,this.Jh=i}Tt(){return this.Xt.ht({ss:this.Jh.ss(),...Ut(this.Xh)}),this.Xt}}class qt extends H{constructor(t,i){super(),this.Xh=t,this.Ki=i}Yi(t,i,s){const n=Ut(this.Xh);s.G=n.G,t.R=n.R;const e=2/12*this.Ki.k();s.Ti=e,s.Ri=e,s.Ei=n.Ei,s.Vi=n.Vi,t.ri=n.ri,t.It=n.It,t.pi=n.pi}}class jt extends Nt{constructor(t,i){super(t),this.Qh=null,this.ta=null,this.ia=null,this.sa=null,this.ye=i}fs(){const t=this.Zh.timeAxisViews?.()??[];if(this.Qh?.qh===t)return this.Qh.jh;const i=this.ye.Qt().Et(),s=t.map((t=>new $t(t,i)));return this.Qh={qh:t,jh:s},s}Ks(){const t=this.Zh.priceAxisViews?.()??[];if(this.ta?.qh===t)return this.ta.jh;const i=this.ye.Ft(),s=t.map((t=>new qt(t,i)));return this.ta={qh:t,jh:s},s}na(){const t=this.Zh.priceAxisPaneViews?.()??[];if(this.ia?.qh===t)return this.ia.jh;const i=t.map((t=>new Ht(t)));return this.ia={qh:t,jh:i},i}ea(){const t=this.Zh.timeAxisPaneViews?.()??[];if(this.sa?.qh===t)return this.sa.jh;const i=t.map((t=>new Ht(t)));return this.sa={qh:t,jh:i},i}ra(t,i){return this.Zh.autoscaleInfo?.(t,i)??null}}function Yt(t,i,s,n){t.forEach((t=>{i(t).forEach((t=>{t.Yh()===s&&n.push(t)}))}))}function Kt(t){return t.Ys()}function Zt(t){return t.na()}function Gt(t){return t.ea()}const Xt=["Area","Line","Baseline"];class Jt extends yt{constructor(t,i,s,n,e){super(t),this.jt=At(),this._r=new ft(this),this.ha=[],this.aa=new _t(this),this.la=null,this.oa=null,this._a=null,this.ua=[],this.ca=new Ct,this.da=new Map,this.fa=null,this.Ps=s,this.pa=i;const r=new pt(this);if(this.gs=[r],this.ur=new at(r,this,t),Xt.includes(this.pa)&&(this.la=new dt(this)),this.va(),this.$h=n(this,this.Qt(),e),"Custom"===this.pa){const t=this.$h;t.ma&&this.wa(t.ma)}}m(){null!==this._a&&clearTimeout(this._a)}Oe(t){return this.Ps.priceLineColor||t}Ve(t){const i={Be:!0},s=this.Ft();if(this.Qt().Et().Gi()||s.Gi()||this.jt.Gi())return i;const n=this.Qt().Et().Ie(),e=this.Lt();if(null===n||null===e)return i;let r,h;if(t){const t=this.jt.Ch();if(null===t)return i;r=t,h=t.js}else{const t=this.jt.$s(n.bi(),-1);if(null===t)return i;if(r=this.jt.ph(t.js),null===r)return i;h=t.js}const a=r.Wt[3],l=this.ga().gh(h,{Wt:r}),o=s.Nt(a,e.Wt);return{Be:!1,gt:a,ri:s.Ji(a,e.Wt),Ue:s.Ma(a),$e:s.ba(a,e.Wt),R:l.th,Ei:o,js:h}}ga(){return null!==this.oa||(this.oa=new Pt(this)),this.oa}N(){return this.Ps}cr(t){const i=this.Qt(),{priceScaleId:s,visible:n,priceFormat:e}=t;void 0!==s&&s!==this.Ps.priceScaleId&&i.Sa(this,s),void 0!==n&&n!==this.Ps.visible&&i.xa();const r=void 0!==t.conflationThresholdFactor;f(this.Ps,t),r&&(this.da.clear(),this.Qt().dr()),void 0!==e&&(this.va(),i.Ca()),i.ya(this),i.ka(),this.$h.kt("options")}ht(t,i){this.jt.ht(t),this.da.clear();const s=this.Qt().Et().N();s.enableConflation&&s.precomputeConflationOnInit&&this.Pa(s.precomputeConflationPriority),this.$h.kt("data"),null!==this.la&&(i&&i.Ta?this.la.Pe():0===t.length&&this.la.ke());const n=this.Qt().Kn(this);this.Qt().Ra(n),this.Qt().ya(this),this.Qt().ka(),this.Qt().dr()}Da(t){const i=new xt(this,t);return this.ha.push(i),this.Qt().ya(this),i}Ia(t){const i=this.ha.indexOf(t);-1!==i&&this.ha.splice(i,1),this.Qt().ya(this)}Va(){return this.ha}wh(){return this.pa}Lt(){const t=this.Ba();return null===t?null:{Wt:t.Wt[3],Ea:t.wt}}Ba(){const t=this.Qt().Et().Ie();if(null===t)return null;const i=t.Aa();return this.jt.$s(i,1)}qs(){return this.jt}wa(t){this.fa=t,this.da.clear()}La(){return!!this.Qt().Et().N().enableConflation&&this.za()>1}kr(t){if(!this.La())return;const i=this.za();if(!this.da.has(i))return;const s="Custom"===this.pa,n=s&&this.fa||void 0,e=s&&this.$h.Oa?t=>{const i=t,s=this.$h.Oa(i);return Array.isArray(s)?s:["number"==typeof s?s:0]}:void 0,r=this.ca.kr(this.jt.Dh(),t,i,n,s,e),h=At();h.ht(r),this.da.set(i,h)}Na(){const t=this.Qt().Et().N().enableConflation;if("Custom"===this.pa&&null===this.fa)return this.jt;if(!t)return this.jt;const i=this.za(),s=this.da.get(i);if(s)return s;this.Fa(i);return this.da.get(i)??this.jt}Wa(t){const i=this.jt.ph(t);return null===i?null:"Bar"===this.pa||"Candlestick"===this.pa||"Custom"===this.pa?{Hr:i.Wt[0],Ur:i.Wt[1],$r:i.Wt[2],qr:i.Wt[3]}:i.Wt[3]}Ha(t){const i=[];Yt(this.ua,Kt,"top",i);const s=this.la;return null!==s&&s.It()?(null===this._a&&s.Re()&&(this._a=setTimeout((()=>{this._a=null,this.Qt().Ua()}),0)),s.Te(),i.unshift(s),i):i}Ys(){const t=[];this.$a()||t.push(this.aa),t.push(this.$h,this._r);const i=this.ha.map((t=>t.pr()));return t.push(...i),Yt(this.ua,Kt,"normal",t),t}qa(){return this.ja(Kt,"bottom")}Ya(t){return this.ja(Zt,t)}Ka(t){return this.ja(Gt,t)}Za(t,i){return this.ua.map((s=>s.Qn(t,i))).filter((t=>null!==t))}ds(){return[this.ur,...this.ha.map((t=>t.vr()))]}Ks(t,i){if(i!==this.hs&&!this.$a())return[];const s=[...this.gs];for(const t of this.ha)s.push(t.mr());return this.ua.forEach((t=>{s.push(...t.Ks())})),s}fs(){const t=[];return this.ua.forEach((i=>{t.push(...i.fs())})),t}ra(t,i){if(void 0!==this.Ps.autoscaleInfoProvider){const s=this.Ps.autoscaleInfoProvider((()=>{const s=this.Ga(t,i);return null===s?null:s.tr()}));return wt.ir(s)}return this.Ga(t,i)}qh(){const t=this.Ps.priceFormat;return t.base??1/t.minMove}Xa(){return this.Ja}Ws(){this.$h.kt();for(const t of this.gs)t.kt();for(const t of this.ha)t.kt();this._r.kt(),this.aa.kt(),this.la?.kt(),this.ua.forEach((t=>t.Ws()))}Ft(){return u(super.Ft())}At(t){if(!(("Line"===this.pa||"Area"===this.pa||"Baseline"===this.pa)&&this.Ps.crosshairMarkerVisible))return null;const i=this.jt.ph(t);if(null===i)return null;return{gt:i.Wt[3],ft:this.Qa(),Ht:this.tl(),Ot:this.il(),zt:this.sl(t)}}Ne(){return this.Ps.title}It(){return this.Ps.visible}nl(t){this.ua.push(new jt(t,this))}el(t){this.ua=this.ua.filter((i=>i.Gh()!==t))}rl(){if("Custom"===this.pa)return t=>this.$h.Oa(t)}hl(){if("Custom"===this.pa)return t=>this.$h.al(t)}ll(){return this.jt.Bh()}$a(){return!G(this.Ft().ol())}Ga(t,i){if(!v(t)||!v(i)||this.jt.Gi())return null;const s="Line"===this.pa||"Area"===this.pa||"Baseline"===this.pa||"Histogram"===this.pa?[3]:[2,1],n=this.jt.Ih(t,i,s);let e=null!==n?new mt(n.Fh,n.Wh):null,r=null;if("Histogram"===this.wh()){const t=this.Ps.base,i=new mt(t,t);e=null!==e?e.Sn(i):i}return this.ua.forEach((s=>{const n=s.ra(t,i);if(n?.priceRange){const t=new mt(n.priceRange.minValue,n.priceRange.maxValue);e=null!==e?e.Sn(t):t}n?.margins&&(r=n.margins)})),new wt(e,r)}Qa(){switch(this.pa){case"Line":case"Area":case"Baseline":return this.Ps.crosshairMarkerRadius}return 0}tl(){switch(this.pa){case"Line":case"Area":case"Baseline":{const t=this.Ps.crosshairMarkerBorderColor;if(0!==t.length)return t}}return null}il(){switch(this.pa){case"Line":case"Area":case"Baseline":return this.Ps.crosshairMarkerBorderWidth}return 0}sl(t){switch(this.pa){case"Line":case"Area":case"Baseline":{const t=this.Ps.crosshairMarkerBackgroundColor;if(0!==t.length)return t}}return this.ga().gh(t).th}va(){switch(this.Ps.priceFormat.type){case"custom":{const t=this.Ps.priceFormat.formatter;this.Ja={format:t,formatTickmarks:this.Ps.priceFormat.tickmarksFormatter??(i=>i.map(t))};break}case"volume":this.Ja=new nt(this.Ps.priceFormat.precision);break;case"percent":this.Ja=new st(this.Ps.priceFormat.precision);break;default:{const t=Math.pow(10,this.Ps.priceFormat.precision);this.Ja=new it(t,this.Ps.priceFormat.minMove*t)}}null!==this.hs&&this.hs._l()}ja(t,i){const s=[];return Yt(this.ua,t,i,s),s}za(){const{ul:t,cl:i,dl:s}=this.fl();return this.ca.gr(t,i,s)}fl(){const t=this.Qt().Et(),i=t.ul(),s=window.devicePixelRatio||1,n=t.N().conflationThresholdFactor;return{ul:i,cl:s,dl:this.Ps.conflationThresholdFactor??n??1}}pl(t){const i=this.jt.Dh();let s;if("Custom"===this.pa&&null!==this.fa){const n=this.rl();if(!n)throw new Error(Mt);s=this.ca.Mr(i,t,this.fa,!0,(t=>n(t)))}else s=this.ca.Mr(i,t);const n=At();return n.ht(s),n}Fa(t){const i=this.pl(t);this.da.set(t,i)}Pa(t){if("Custom"===this.pa&&(null===this.fa||!this.rl()))return;this.da.clear();const i=this.Qt().Et().vl();for(const s of i){const i=()=>{this.ml(s)},n="object"==typeof window&&window||"object"==typeof self&&self;n?.gl?.wl?n.gl.wl((()=>{i()}),{Ml:t}):Promise.resolve().then((()=>i()))}}ml(t){if(this.da.has(t))return;if(0===this.jt.Dh().length)return;const i=this.pl(t);this.da.set(t,i)}}const Qt=[3],ti=[0,1,2,3];class ii{constructor(t){this.Ps=t}bl(t,i,s){let n=t;if(0===this.Ps.mode)return n;const e=s.Rs(),r=e.Lt();if(null===r)return n;const h=e.Nt(t,r),a=s.Sl().filter((t=>t instanceof Jt)).reduce(((t,n)=>{if(s.Zn(n)||!n.It())return t;const e=n.Ft(),r=n.qs();if(e.Gi()||!r.Ee(i))return t;const h=r.ph(i);if(null===h)return t;const a=c(n.Lt()),l=3===this.Ps.mode?ti:Qt;return t.concat(l.map((t=>e.Nt(h.Wt[t],a.Wt))))}),[]);if(0===a.length)return n;a.sort(((t,i)=>Math.abs(t-h)-Math.abs(i-h)));const l=a[0];return n=e.Ds(l,r),n}}function si(t,i,s){return Math.min(Math.max(t,i),s)}function ni(t,i,s){return i-t<=s}function ei(t){const i=Math.ceil(t);return i%2==0?i-1:i}class ri extends R{constructor(){super(...arguments),this.jt=null}ht(t){this.jt=t}et({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:n}){if(null===this.jt)return;const e=Math.max(1,Math.floor(s));t.lineWidth=e,function(t,i){t.save(),t.lineWidth%2&&t.translate(.5,.5),i(),t.restore()}(t,(()=>{const r=u(this.jt);if(r.xl){t.strokeStyle=r.Cl,a(t,r.yl),t.beginPath();for(const n of r.kl){const r=Math.round(n.Pl*s);t.moveTo(r,-e),t.lineTo(r,i.height+e)}t.stroke()}if(r.Tl){t.strokeStyle=r.Rl,a(t,r.Dl),t.beginPath();for(const s of r.Il){const r=Math.round(s.Pl*n);t.moveTo(-e,r),t.lineTo(i.width+e,r)}t.stroke()}}))}}class hi{constructor(t){this.Xt=new ri,this.xt=!0,this.yt=t}kt(){this.xt=!0}Tt(){if(this.xt){const t=this.yt.Qt().N().grid,i={Tl:t.horzLines.visible,xl:t.vertLines.visible,Rl:t.horzLines.color,Cl:t.vertLines.color,Dl:t.horzLines.style,yl:t.vertLines.style,Il:this.yt.Rs().Vl(),kl:(this.yt.Qt().Et().Vl()||[]).map((t=>({Pl:t.coord})))};this.Xt.ht(i),this.xt=!1}return this.Xt}}class ai{constructor(t){this.$h=new hi(t)}pr(){return this.$h}}const li={Bl:4,El:1e-4};function oi(t,i){const s=100*(t-i)/i;return i<0?-s:s}function _i(t,i){const s=oi(t.Ze(),i),n=oi(t.Ge(),i);return new mt(s,n)}function ui(t,i){const s=100*(t-i)/i+100;return i<0?-s:s}function ci(t,i){const s=ui(t.Ze(),i),n=ui(t.Ge(),i);return new mt(s,n)}function di(t,i){const s=Math.abs(t);if(s<1e-15)return 0;const n=Math.log10(s+i.El)+i.Bl;return t<0?-n:n}function fi(t,i){const s=Math.abs(t);if(s<1e-15)return 0;const n=Math.pow(10,s-i.Bl)-i.El;return t<0?-n:n}function pi(t,i){if(null===t)return null;const s=di(t.Ze(),i),n=di(t.Ge(),i);return new mt(s,n)}function vi(t,i){if(null===t)return null;const s=fi(t.Ze(),i),n=fi(t.Ge(),i);return new mt(s,n)}function mi(t){if(null===t)return li;const i=Math.abs(t.Ge()-t.Ze());if(i>=1||i<1e-15)return li;const s=Math.ceil(Math.abs(Math.log10(i))),n=li.Bl+s;return{Bl:n,El:1/Math.pow(10,n)}}class wi{constructor(t,i){if(this.Al=t,this.Ll=i,function(t){if(t<0)return!1;if(t>1e18)return!0;for(let i=t;i>1;i/=10)if(i%10!=0)return!1;return!0}(this.Al))this.zl=[2,2.5,2];else{this.zl=[];for(let t=this.Al;1!==t;){if(t%2==0)this.zl.push(2),t/=2;else{if(t%5!=0)throw new Error("unexpected base");this.zl.push(2,2.5),t/=5}if(this.zl.length>100)throw new Error("something wrong with base")}}}Ol(t,i,s){const n=0===this.Al?0:1/this.Al;let e=Math.pow(10,Math.max(0,Math.ceil(Math.log10(t-i)))),r=0,h=this.Ll[0];for(;;){const t=ni(e,n,1e-14)&&e>n+1e-14,i=ni(e,s*h,1e-14),a=ni(e,1,1e-14);if(!(t&&i&&a))break;e/=h,h=this.Ll[++r%this.Ll.length]}if(e<=n+1e-14&&(e=n),e=Math.max(1,e),this.zl.length>0&&(a=e,l=1,o=1e-14,Math.abs(a-l)<o))for(r=0,h=this.zl[0];ni(e,s*h,1e-14)&&e>n+1e-14;)e/=h,h=this.zl[++r%this.zl.length];var a,l,o;return e}}class gi{constructor(t,i,s,n){this.Nl=[],this.Ki=t,this.Al=i,this.Fl=s,this.Wl=n}Ol(t,i){if(t<i)throw new Error("high < low");const s=this.Ki.$t(),n=(t-i)*this.Hl()/s,e=new wi(this.Al,[2,2.5,2]),r=new wi(this.Al,[2,2,2.5]),h=new wi(this.Al,[2.5,2,2]),a=[];return a.push(e.Ol(t,i,n),r.Ol(t,i,n),h.Ol(t,i,n)),function(t){if(t.length<1)throw Error("array is empty");let i=t[0];for(let s=1;s<t.length;++s)t[s]<i&&(i=t[s]);return i}(a)}Ul(){const t=this.Ki,i=t.Lt();if(null===i)return void(this.Nl=[]);const s=t.$t(),n=this.Fl(s-1,i),e=this.Fl(0,i),r=this.Ki.N().entireTextOnly?this.$l()/2:0,h=r,a=s-1-r,l=Math.max(n,e),o=Math.min(n,e);if(l===o)return void(this.Nl=[]);const _=this.Ol(l,o);if(this.ql(i,_,l,o,h,a),t.jl()&&this.Yl(_,o,l)){const t=this.Ki.Kl();this.Zl(i,_,h,a,t,2*t)}const u=this.Nl.map((t=>t.Gl)),c=this.Ki.Xl(u);for(let t=0;t<this.Nl.length;t++)this.Nl[t].Jl=c[t]}Vl(){return this.Nl}$l(){return this.Ki.k()}Hl(){return Math.ceil(2.5*this.$l())}ql(t,i,s,n,e,r){const h=this.Nl,a=this.Ki;let l=s%i;l+=l<0?i:0;const o=s>=n?1:-1;let _=null,u=0;for(let c=s-l;c>n;c-=i){const s=this.Wl(c,t,!0);null!==_&&Math.abs(s-_)<this.Hl()||(s<e||s>r||(u<h.length?(h[u].Pl=s,h[u].Jl=a.Ql(c),h[u].Gl=c):h.push({Pl:s,Jl:a.Ql(c),Gl:c}),u++,_=s,a.io()&&(i=this.Ol(c*o,n))))}h.length=u}Zl(t,i,s,n,e,r){const h=this.Nl,a=this.so(t,s,e,r),l=this.so(t,n,-r,-e),o=this.Wl(0,t,!0)-this.Wl(i,t,!0);h.length>0&&h[0].Pl-a.Pl<o/2&&h.shift(),h.length>0&&l.Pl-h[h.length-1].Pl<o/2&&h.pop(),h.unshift(a),h.push(l)}so(t,i,s,n){const e=(s+n)/2,r=this.Fl(i+s,t),h=this.Fl(i+n,t),a=Math.min(r,h),l=Math.max(r,h),o=Math.max(.1,this.Ol(l,a)),_=this.Fl(i+e,t),u=_-_%o,c=this.Wl(u,t,!0);return{Jl:this.Ki.Ql(u),Pl:c,Gl:u}}Yl(t,i,s){let n=c(this.Ki.er());return this.Ki.io()&&(n=vi(n,this.Ki.no())),n.Ze()-i<t&&s-n.Ge()<t}}function Mi(t){return t.slice().sort(((t,i)=>u(t._s())-u(i._s())))}var bi;!function(t){t[t.Normal=0]="Normal",t[t.Logarithmic=1]="Logarithmic",t[t.Percentage=2]="Percentage",t[t.IndexedTo100=3]="IndexedTo100"}(bi||(bi={}));const Si=new st,xi=new it(100,1);class Ci{constructor(t,i,s,n,e){this.eo=0,this.ro=null,this.sr=null,this.ho=null,this.ao={lo:!1,oo:null},this._o=!1,this.uo=0,this.co=0,this.do=new d,this.fo=new d,this.po=[],this.vo=null,this.mo=null,this.wo=null,this.Mo=null,this.bo=null,this.Ja=xi,this.So=mi(null),this.xo=t,this.Ps=i,this.Co=s,this.yo=n,this.ko=e,this.Po=new gi(this,100,this.To.bind(this),this.Ro.bind(this))}ol(){return this.xo}N(){return this.Ps}cr(t){if(f(this.Ps,t),this._l(),void 0!==t.mode&&this.Do({ae:t.mode}),void 0!==t.scaleMargins){const i=_(t.scaleMargins.top),s=_(t.scaleMargins.bottom);if(i<0||i>1)throw new Error(`Invalid top margin - expect value between 0 and 1, given=${i}`);if(s<0||s>1)throw new Error(`Invalid bottom margin - expect value between 0 and 1, given=${s}`);if(i+s>1)throw new Error(`Invalid margins - sum of margins must be less than 1, given=${i+s}`);this.Io(),this.wo=null}}Vo(){return this.Ps.autoScale}Bo(){return this._o}io(){return 1===this.Ps.mode}He(){return 2===this.Ps.mode}Eo(){return 3===this.Ps.mode}no(){return this.So}ae(){return{ln:this.Ps.autoScale,Ao:this.Ps.invertScale,ae:this.Ps.mode}}Do(t){const i=this.ae();let s=null;void 0!==t.ln&&(this.Ps.autoScale=t.ln),void 0!==t.ae&&(this.Ps.mode=t.ae,2!==t.ae&&3!==t.ae||(this.Ps.autoScale=!0),this.ao.lo=!1),1===i.ae&&t.ae!==i.ae&&(!function(t,i){if(null===t)return!1;const s=fi(t.Ze(),i),n=fi(t.Ge(),i);return isFinite(s)&&isFinite(n)}(this.sr,this.So)?this.Ps.autoScale=!0:(s=vi(this.sr,this.So),null!==s&&this.Lo(s))),1===t.ae&&t.ae!==i.ae&&(s=pi(this.sr,this.So),null!==s&&this.Lo(s));const n=i.ae!==this.Ps.mode;n&&(2===i.ae||this.He())&&this._l(),n&&(3===i.ae||this.Eo())&&this._l(),void 0!==t.Ao&&i.Ao!==t.Ao&&(this.Ps.invertScale=t.Ao,this.zo()),this.fo.p(i,this.ae())}Oo(){return this.fo}k(){return this.Co.fontSize}$t(){return this.eo}No(t){this.eo!==t&&(this.eo=t,this.Io(),this.wo=null)}Fo(){if(this.ro)return this.ro;const t=this.$t()-this.Wo()-this.Ho();return this.ro=t,t}er(){return this.Uo(),this.sr}Lo(t,i){const s=this.sr;(i||null===s&&null!==t||null!==s&&!s.Ye(t))&&(this.wo=null,this.sr=t)}$o(t){this.Lo(t),this.qo(null!==t)}Gi(){return this.Uo(),0===this.eo||!this.sr||this.sr.Gi()}jo(t){return this.Ao()?t:this.$t()-1-t}Nt(t,i){return this.He()?t=oi(t,i):this.Eo()&&(t=ui(t,i)),this.Ro(t,i)}Yo(t,i,s){this.Uo();const n=this.Ho(),e=u(this.er()),r=e.Ze(),h=e.Ge(),a=this.Fo()-1,l=this.Ao(),o=a/(h-r),_=void 0===s?0:s.from,c=void 0===s?t.length:s.to,d=this.Ko();for(let s=_;s<c;s++){const e=t[s],h=e.gt;if(isNaN(h))continue;let a=h;null!==d&&(a=d(e.gt,i));const _=n+o*(a-r),u=l?_:this.eo-1-_;e.ut=u}}Zo(t,i,s){this.Uo();const n=this.Ho(),e=u(this.er()),r=e.Ze(),h=e.Ge(),a=this.Fo()-1,l=this.Ao(),o=a/(h-r),_=void 0===s?0:s.from,c=void 0===s?t.length:s.to,d=this.Ko();for(let s=_;s<c;s++){const e=t[s];let h=e.Hr,a=e.Ur,_=e.$r,u=e.qr;null!==d&&(h=d(e.Hr,i),a=d(e.Ur,i),_=d(e.$r,i),u=d(e.qr,i));let c=n+o*(h-r),f=l?c:this.eo-1-c;e.Go=f,c=n+o*(a-r),f=l?c:this.eo-1-c,e.Xo=f,c=n+o*(_-r),f=l?c:this.eo-1-c,e.Jo=f,c=n+o*(u-r),f=l?c:this.eo-1-c,e.Qo=f}}Ds(t,i){const s=this.To(t,i);return this.t_(s,i)}t_(t,i){let s=t;return this.He()?s=function(t,i){return i<0&&(t=-t),t/100*i+i}(s,i):this.Eo()&&(s=function(t,i){return t-=100,i<0&&(t=-t),t/100*i+i}(s,i)),s}Sl(){return this.po}Dt(){return this.mo||(this.mo=Mi(this.po)),this.mo}i_(t){-1===this.po.indexOf(t)&&(this.po.push(t),this._l(),this.s_())}n_(t){const i=this.po.indexOf(t);if(-1===i)throw new Error("source is not attached to scale");this.po.splice(i,1),0===this.po.length&&(this.Do({ln:!0}),this.Lo(null)),this._l(),this.s_()}Lt(){let t=null;for(const i of this.po){const s=i.Lt();null!==s&&((null===t||s.Ea<t.Ea)&&(t=s))}return null===t?null:t.Wt}Ao(){return this.Ps.invertScale}Vl(){const t=null===this.Lt();if(null!==this.wo&&(t||this.wo.e_===t))return this.wo.Vl;this.Po.Ul();const i=this.Po.Vl();return this.wo={Vl:i,e_:t},this.do.p(),i}r_(){return this.do}h_(t){this.He()||this.Eo()||null===this.Mo&&null===this.ho&&(this.Gi()||(this.Mo=this.eo-t,this.ho=u(this.er()).Ke()))}a_(t){if(this.He()||this.Eo())return;if(null===this.Mo)return;this.Do({ln:!1}),(t=this.eo-t)<0&&(t=0);let i=(this.Mo+.2*(this.eo-1))/(t+.2*(this.eo-1));const s=u(this.ho).Ke();i=Math.max(i,.1),s.Je(i),this.Lo(s)}l_(){this.He()||this.Eo()||(this.Mo=null,this.ho=null)}o_(t){this.Vo()||null===this.bo&&null===this.ho&&(this.Gi()||(this.bo=t,this.ho=u(this.er()).Ke()))}__(t){if(this.Vo())return;if(null===this.bo)return;const i=u(this.er()).Xe()/(this.Fo()-1);let s=t-this.bo;this.Ao()&&(s*=-1);const n=s*i,e=u(this.ho).Ke();e.Qe(n),this.Lo(e,!0),this.wo=null}u_(){this.Vo()||null!==this.bo&&(this.bo=null,this.ho=null)}Xa(){return this.Ja||this._l(),this.Ja}Ji(t,i){switch(this.Ps.mode){case 2:return this.c_(oi(t,i));case 3:return this.Xa().format(ui(t,i));default:return this.lr(t)}}Ql(t){switch(this.Ps.mode){case 2:return this.c_(t);case 3:return this.Xa().format(t);default:return this.lr(t)}}Xl(t){switch(this.Ps.mode){case 2:return this.d_(t);case 3:return this.Xa().formatTickmarks(t);default:return this.f_(t)}}Ma(t){return this.lr(t,u(this.vo).Xa())}ba(t,i){return t=oi(t,i),this.c_(t,Si)}p_(){return this.po}v_(t){this.ao={oo:t,lo:!1}}Ws(){this.po.forEach((t=>t.Ws()))}jl(){return this.Ps.ensureEdgeTickMarksVisible&&this.Vo()}Kl(){return this.k()/2}_l(){this.wo=null;let t=1/0;this.vo=null;for(const i of this.po)i._s()<t&&(t=i._s(),this.vo=i);let i=100;null!==this.vo&&(i=Math.round(this.vo.qh())),this.Ja=xi,this.He()?(this.Ja=Si,i=100):this.Eo()?(this.Ja=new it(100,1),i=100):null!==this.vo&&(this.Ja=this.vo.Xa()),this.Po=new gi(this,i,this.To.bind(this),this.Ro.bind(this)),this.Po.Ul()}s_(){this.mo=null}m_(){return null===this.vo||this.He()||this.Eo()?1:1/this.vo.qh()}Xi(){return this.ko}qo(t){this._o=t}Wo(){return this.Ao()?this.Ps.scaleMargins.bottom*this.$t()+this.co:this.Ps.scaleMargins.top*this.$t()+this.uo}Ho(){return this.Ao()?this.Ps.scaleMargins.top*this.$t()+this.uo:this.Ps.scaleMargins.bottom*this.$t()+this.co}Uo(){this.ao.lo||(this.ao.lo=!0,this.w_())}Io(){this.ro=null}Ro(t,i){if(this.Uo(),this.Gi())return 0;t=this.io()&&t?di(t,this.So):t;const s=u(this.er()),n=this.Ho()+(this.Fo()-1)*(t-s.Ze())/s.Xe();return this.jo(n)}To(t,i){if(this.Uo(),this.Gi())return 0;const s=this.jo(t),n=u(this.er()),e=n.Ze()+n.Xe()*((s-this.Ho())/(this.Fo()-1));return this.io()?fi(e,this.So):e}zo(){this.wo=null,this.Po.Ul()}w_(){if(this.Bo()&&!this.Vo())return;const t=this.ao.oo;if(null===t)return;let i=null;const s=this.p_();let n=0,e=0;for(const r of s){if(!r.It())continue;const s=r.Lt();if(null===s)continue;const h=r.ra(t.Aa(),t.bi());let a=h&&h.er();if(null!==a){switch(this.Ps.mode){case 1:a=pi(a,this.So);break;case 2:a=_i(a,s.Wt);break;case 3:a=ci(a,s.Wt)}if(i=null===i?a:i.Sn(u(a)),null!==h){const t=h.rr();null!==t&&(n=Math.max(n,t.above),e=Math.max(e,t.below))}}}if(this.jl()&&(n=Math.max(n,this.Kl()),e=Math.max(e,this.Kl())),n===this.uo&&e===this.co||(this.uo=n,this.co=e,this.wo=null,this.Io()),null!==i){if(i.Ze()===i.Ge()){const t=5*this.m_();this.io()&&(i=vi(i,this.So)),i=new mt(i.Ze()-t,i.Ge()+t),this.io()&&(i=pi(i,this.So))}if(this.io()){const t=vi(i,this.So),s=mi(t);if(r=s,h=this.So,r.Bl!==h.Bl||r.El!==h.El){const n=null!==this.ho?vi(this.ho,this.So):null;this.So=s,i=pi(t,s),null!==n&&(this.ho=pi(n,s))}}this.Lo(i)}else null===this.sr&&(this.Lo(new mt(-.5,.5)),this.So=mi(null));var r,h}Ko(){return this.He()?oi:this.Eo()?ui:this.io()?t=>di(t,this.So):null}g_(t,i,s){return void 0===i?(void 0===s&&(s=this.Xa()),s.format(t)):i(t)}M_(t,i,s){return void 0===i?(void 0===s&&(s=this.Xa()),s.formatTickmarks(t)):i(t)}lr(t,i){return this.g_(t,this.yo.priceFormatter,i)}f_(t,i){const s=this.yo.priceFormatter;return this.M_(t,this.yo.tickmarksPriceFormatter??(s?t=>t.map(s):void 0),i)}c_(t,i){return this.g_(t,this.yo.percentageFormatter,i)}d_(t,i){const s=this.yo.percentageFormatter;return this.M_(t,this.yo.tickmarksPercentageFormatter??(s?t=>t.map(s):void 0),i)}}function yi(t){return t instanceof Jt}class ki{constructor(t,i){this.po=[],this.b_=new Map,this.eo=0,this.S_=0,this.x_=1,this.mo=null,this.C_=!1,this.y_=new d,this.ua=[],this.Jh=t,this.ns=i,this.k_=new ai(this);const s=i.N();this.P_=this.T_("left",s.leftPriceScale),this.R_=this.T_("right",s.rightPriceScale),this.P_.Oo().i(this.D_.bind(this,this.P_),this),this.R_.Oo().i(this.D_.bind(this,this.R_),this),this.I_(s)}I_(t){if(t.leftPriceScale&&this.P_.cr(t.leftPriceScale),t.rightPriceScale&&this.R_.cr(t.rightPriceScale),t.localization&&(this.P_._l(),this.R_._l()),t.overlayPriceScales){const i=Array.from(this.b_.values());for(const s of i){const i=u(s[0].Ft());i.cr(t.overlayPriceScales),t.localization&&i._l()}}}V_(t){switch(t){case"left":return this.P_;case"right":return this.R_}return this.b_.has(t)?_(this.b_.get(t))[0].Ft():null}m(){this.Qt().B_().u(this),this.P_.Oo().u(this),this.R_.Oo().u(this),this.po.forEach((t=>{t.m&&t.m()})),this.ua=this.ua.filter((t=>{const i=t.Gh();return i.detached&&i.detached(),!1})),this.y_.p()}E_(){return this.x_}A_(t){this.x_=t}Qt(){return this.ns}ss(){return this.S_}$t(){return this.eo}L_(t){this.S_=t,this.z_()}No(t){this.eo=t,this.P_.No(t),this.R_.No(t),this.po.forEach((i=>{if(this.Zn(i)){const s=i.Ft();null!==s&&s.No(t)}})),this.z_()}O_(t){this.C_=t}N_(){return this.C_}F_(){return this.po.filter(yi)}Sl(){return this.po}Zn(t){const i=t.Ft();return null===i||this.P_!==i&&this.R_!==i}i_(t,i,s){this.W_(t,i,s?t._s():this.po.length)}n_(t,i){const s=this.po.indexOf(t);o(-1!==s,"removeDataSource: invalid data source"),this.po.splice(s,1),i||this.po.forEach(((t,i)=>t.us(i)));const n=u(t.Ft()).ol();if(this.b_.has(n)){const i=_(this.b_.get(n)),s=i.indexOf(t);-1!==s&&(i.splice(s,1),0===i.length&&this.b_.delete(n))}const e=t.Ft();e&&e.Sl().indexOf(t)>=0&&(e.n_(t),this.H_(e)),this.mo=null}Xn(t){return t===this.P_?"left":t===this.R_?"right":"overlay"}U_(){return this.P_}q_(){return this.R_}j_(t,i){t.h_(i)}Y_(t,i){t.a_(i),this.z_()}K_(t){t.l_()}Z_(t,i){t.o_(i)}G_(t,i){t.__(i),this.z_()}X_(t){t.u_()}z_(){this.po.forEach((t=>{t.Ws()}))}Rs(){let t=null;return this.ns.N().rightPriceScale.visible&&0!==this.R_.Sl().length?t=this.R_:this.ns.N().leftPriceScale.visible&&0!==this.P_.Sl().length?t=this.P_:0!==this.po.length&&(t=this.po[0].Ft()),null===t&&(t=this.R_),t}Gn(){let t=null;return this.ns.N().rightPriceScale.visible?t=this.R_:this.ns.N().leftPriceScale.visible&&(t=this.P_),t}H_(t){null!==t&&t.Vo()&&this.J_(t)}Q_(t){const i=this.Jh.Ie();t.Do({ln:!0}),null!==i&&t.v_(i),this.z_()}tu(){this.J_(this.P_),this.J_(this.R_)}iu(){this.H_(this.P_),this.H_(this.R_),this.po.forEach((t=>{this.Zn(t)&&this.H_(t.Ft())})),this.z_(),this.ns.dr()}Dt(){return null===this.mo&&(this.mo=Mi(this.po)),this.mo}su(t,i){i=si(i,0,this.po.length-1);const s=this.po.indexOf(t);o(-1!==s,"setSeriesOrder: invalid data source"),this.po.splice(s,1),this.po.splice(i,0,t),this.po.forEach(((t,i)=>t.us(i))),this.mo=null;for(const t of[this.P_,this.R_])t.s_(),t._l();this.ns.dr()}Vt(){return this.Dt().filter(yi)}nu(){return this.y_}eu(){return this.k_}nl(t){this.ua.push(new Ft(t))}el(t){this.ua=this.ua.filter((i=>i.Gh()!==t)),t.detached&&t.detached(),this.ns.dr()}ru(){return this.ua}Za(t,i){return this.ua.map((s=>s.Qn(t,i))).filter((t=>null!==t))}J_(t){const i=t.p_();if(i&&i.length>0&&!this.Jh.Gi()){const i=this.Jh.Ie();null!==i&&t.v_(i)}t.Ws()}W_(t,i,s){let n=this.V_(i);if(null===n&&(n=this.T_(i,this.ns.N().overlayPriceScales)),this.po.splice(s,0,t),!G(i)){const s=this.b_.get(i)||[];s.push(t),this.b_.set(i,s)}t.us(s),n.i_(t),t.cs(n),this.H_(n),this.mo=null}D_(t,i,s){i.ae!==s.ae&&this.J_(t)}T_(t,i){const s={visible:!0,autoScale:!0,...g(i)},n=new Ci(t,s,this.ns.N().layout,this.ns.N().localization,this.ns.Xi());return n.No(this.$t()),n}}function Pi(t){return{hu:t.hu,au:{te:t.lu.externalId},ou:t.lu.cursorStyle}}function Ti(t,i,s,n){for(const e of t){const t=e.Tt(n);if(null!==t&&t.Qn){const n=t.Qn(i,s);if(null!==n)return{_u:e,au:n}}}return null}function Ri(t){return void 0!==t.Ys}function Di(t,i,s){const n=[t,...t.Dt()],e=function(t,i,s){let n,e;for(const a of t){const t=a.Za?.(i,s)??[];for(const i of t)r=i.zOrder,h=n?.zOrder,(!h||"top"===r&&"top"!==h||"normal"===r&&"bottom"===h)&&(n=i,e=a)}var r,h;return n&&e?{lu:n,hu:e}:null}(n,i,s);if("top"===e?.lu.zOrder)return Pi(e);for(const r of n){if(e&&e.hu===r&&"bottom"!==e.lu.zOrder&&!e.lu.isBackground)return Pi(e);if(Ri(r)){const n=Ti(r.Ys(t),i,s,t);if(null!==n)return{hu:r,_u:n._u,au:n.au}}if(e&&e.hu===r&&"bottom"!==e.lu.zOrder&&e.lu.isBackground)return Pi(e)}return e?.lu?Pi(e):null}class Ii{constructor(t,i,s=50){this.Vn=0,this.Bn=1,this.En=1,this.Ln=new Map,this.An=new Map,this.uu=t,this.cu=i,this.zn=s}du(t){const i=t.time,s=this.cu.cacheKey(i),n=this.Ln.get(s);if(void 0!==n)return n.fu;if(this.Vn===this.zn){const t=this.An.get(this.En);this.An.delete(this.En),this.Ln.delete(_(t)),this.En++,this.Vn--}const e=this.uu(t);return this.Ln.set(s,{fu:e,Wn:this.Bn}),this.An.set(this.Bn,s),this.Vn++,this.Bn++,e}}class Vi{constructor(t,i){o(t<=i,"right should be >= left"),this.pu=t,this.vu=i}Aa(){return this.pu}bi(){return this.vu}mu(){return this.vu-this.pu+1}Ee(t){return this.pu<=t&&t<=this.vu}Ye(t){return this.pu===t.Aa()&&this.vu===t.bi()}}function Bi(t,i){return null===t||null===i?t===i:t.Ye(i)}class Ei{constructor(){this.wu=new Map,this.Ln=null,this.gu=!1}Mu(t){this.gu=t,this.Ln=null}bu(t,i){this.Su(i),this.Ln=null;for(let s=i;s<t.length;++s){const i=t[s];let n=this.wu.get(i.timeWeight);void 0===n&&(n=[],this.wu.set(i.timeWeight,n)),n.push({index:s,time:i.time,weight:i.timeWeight,originalTime:i.originalTime})}}xu(t,i,s,n,e){const r=Math.ceil(i/t);return null!==this.Ln&&this.Ln.Cu===r&&e===this.Ln.yu&&s===this.Ln.ku||(this.Ln={yu:e,ku:s,Vl:this.Pu(r,s,n),Cu:r}),this.Ln.Vl}Su(t){if(0===t)return void this.wu.clear();const i=[];this.wu.forEach(((s,n)=>{t<=s[0].index?i.push(n):s.splice(Rt(s,t,(i=>i.index<t)),1/0)}));for(const t of i)this.wu.delete(t)}Pu(t,i,s){let n=[];const e=t=>!i||s.has(t.index);for(const i of Array.from(this.wu.keys()).sort(((t,i)=>i-t))){if(!this.wu.get(i))continue;const s=n;n=[];const r=s.length;let h=0;const a=_(this.wu.get(i)),l=a.length;let o=1/0,u=-1/0;for(let i=0;i<l;i++){const l=a[i],_=l.index;for(;h<r;){const t=s[h],i=t.index;if(!(i<_&&e(t))){o=i;break}h++,n.push(t),u=i,o=1/0}if(o-_>=t&&_-u>=t&&e(l))n.push(l),u=_;else if(this.gu)return s}for(;h<r;h++)e(s[h])&&n.push(s[h])}return n}}class Ai{constructor(t){this.Tu=t}Ru(){return null===this.Tu?null:new Vi(Math.floor(this.Tu.Aa()),Math.ceil(this.Tu.bi()))}Du(){return this.Tu}static Iu(){return new Ai(null)}}function Li(t,i){return t.weight>i.weight?t:i}class zi{constructor(t,i,s,n){this.S_=0,this.Vu=null,this.Bu=[],this.bo=null,this.Mo=null,this.Eu=new Ei,this.Au=new Map,this.Lu=Ai.Iu(),this.zu=!0,this.Ou=new d,this.Nu=new d,this.Fu=new d,this.Wu=null,this.Hu=null,this.Uu=new Map,this.$u=-1,this.qu=[],this.ju=1,this.Ps=i,this.yo=s,this.Yu=i.rightOffset,this.Ku=i.barSpacing,this.ns=t,this.Zu(i),this.cu=n,this.Gu(),this.Eu.Mu(i.uniformDistribution),this.Xu(),this.Ju()}N(){return this.Ps}Qu(t){f(this.yo,t),this.tc(),this.Gu()}cr(t,i){f(this.Ps,t),this.Ps.fixLeftEdge&&this.sc(),this.Ps.fixRightEdge&&this.nc(),void 0!==t.barSpacing&&this.ns.gn(t.barSpacing),void 0!==t.rightOffset&&this.ns.Mn(t.rightOffset),this.Zu(t),void 0===t.minBarSpacing&&void 0===t.maxBarSpacing||this.ns.gn(t.barSpacing??this.Ku),void 0!==t.ignoreWhitespaceIndices&&t.ignoreWhitespaceIndices!==this.Ps.ignoreWhitespaceIndices&&this.Ju(),this.tc(),this.Gu(),void 0===t.enableConflation&&void 0===t.conflationThresholdFactor||this.Xu(),this.Fu.p()}Is(t){return this.Bu[t]?.time??null}es(t){return this.Bu[t]??null}ec(t,i){if(this.Bu.length<1)return null;if(this.cu.key(t)>this.cu.key(this.Bu[this.Bu.length-1].time))return i?this.Bu.length-1:null;const s=Rt(this.Bu,this.cu.key(t),((t,i)=>this.cu.key(t.time)<i));return this.cu.key(t)<this.cu.key(this.Bu[s].time)?i?s:null:s}Gi(){return 0===this.S_||0===this.Bu.length||null===this.Vu}rc(){return this.Bu.length>0}Ie(){return this.hc(),this.Lu.Ru()}ac(){return this.hc(),this.Lu.Du()}lc(){const t=this.Ie();if(null===t)return null;const i={from:t.Aa(),to:t.bi()};return this.oc(i)}oc(t){const i=Math.round(t.from),s=Math.round(t.to),n=u(this._c()),e=u(this.uc());return{from:u(this.es(Math.max(n,i))),to:u(this.es(Math.min(e,s)))}}cc(t){return{from:u(this.ec(t.from,!0)),to:u(this.ec(t.to,!0))}}ss(){return this.S_}L_(t){if(!isFinite(t)||t<=0)return;if(this.S_===t)return;const i=this.ac(),s=this.S_;if(this.S_=t,this.zu=!0,this.Ps.lockVisibleTimeRangeOnResize&&0!==s){const i=this.Ku*t/s;this.Ku=i}if(this.Ps.fixLeftEdge&&null!==i&&i.Aa()<=0){const i=s-t;this.Yu-=Math.round(i/this.Ku)+1,this.zu=!0}this.dc(),this.fc()}qt(t){if(this.Gi()||!v(t))return 0;const i=this.vc()+this.Yu-t;return this.S_-(i+.5)*this.Ku-1}mc(t,i){const s=this.vc(),n=void 0===i?0:i.from,e=void 0===i?t.length:i.to;for(let i=n;i<e;i++){const n=t[i].wt,e=s+this.Yu-n,r=this.S_-(e+.5)*this.Ku-1;t[i]._t=r}}wc(t,i){const s=Math.ceil(this.gc(t));return i&&this.Ps.ignoreWhitespaceIndices&&!this.Mc(s)?this.bc(s):s}Mn(t){this.zu=!0,this.Yu=t,this.fc(),this.ns.Sc(),this.ns.dr()}ul(){return this.Ku}gn(t){const i=this.Ku;if(this.xc(t),void 0!==this.Ps.rightOffsetPixels&&0!==i){const t=this.Yu*i/this.Ku;this.Yu=t}this.fc(),this.ns.Sc(),this.ns.dr()}Cc(){return this.Yu}Vl(){if(this.Gi())return null;if(null!==this.Hu)return this.Hu;const t=this.Ku,i=5*(this.ns.N().layout.fontSize+4)/8*(this.Ps.tickMarkMaxCharacterLength||8),s=Math.round(i/t),n=u(this.Ie()),e=Math.max(n.Aa(),n.Aa()-s),r=Math.max(n.bi(),n.bi()-s),h=this.Eu.xu(t,i,this.Ps.ignoreWhitespaceIndices,this.Uu,this.$u),a=this._c()+s,l=this.uc()-s,o=this.yc(),_=this.Ps.fixLeftEdge||o,c=this.Ps.fixRightEdge||o;let d=0;for(const t of h){if(!(e<=t.index&&t.index<=r))continue;let s;d<this.qu.length?(s=this.qu[d],s.coord=this.qt(t.index),s.label=this.kc(t),s.weight=t.weight):(s={needAlignCoordinate:!1,coord:this.qt(t.index),label:this.kc(t),weight:t.weight},this.qu.push(s)),this.Ku>i/2&&!o?s.needAlignCoordinate=!1:s.needAlignCoordinate=_&&t.index<=a||c&&t.index>=l,d++}return this.qu.length=d,this.Hu=this.qu,this.qu}Pc(){let t;this.zu=!0,this.gn(this.Ps.barSpacing),t=void 0!==this.Ps.rightOffsetPixels?this.Ps.rightOffsetPixels/this.ul():this.Ps.rightOffset,this.Mn(t)}Tc(t){this.zu=!0,this.Vu=t,this.fc(),this.sc()}Rc(t,i){const s=this.gc(t),n=this.ul(),e=n+i*(n/10);this.gn(e),this.Ps.rightBarStaysOnScroll||this.Mn(this.Cc()+(s-this.gc(t)))}h_(t){this.bo&&this.u_(),null===this.Mo&&null===this.Wu&&(this.Gi()||(this.Mo=t,this.Dc()))}a_(t){if(null===this.Wu)return;const i=si(this.S_-t,0,this.S_),s=si(this.S_-u(this.Mo),0,this.S_);0!==i&&0!==s&&this.gn(this.Wu.ul*i/s)}l_(){null!==this.Mo&&(this.Mo=null,this.Ic())}o_(t){null===this.bo&&null===this.Wu&&(this.Gi()||(this.bo=t,this.Dc()))}__(t){if(null===this.bo)return;const i=(this.bo-t)/this.ul();this.Yu=u(this.Wu).Cc+i,this.zu=!0,this.fc()}u_(){null!==this.bo&&(this.bo=null,this.Ic())}Vc(){this.Bc(this.Ps.rightOffset)}Bc(t,i=400){if(!isFinite(t))throw new RangeError("offset is required and must be finite number");if(!isFinite(i)||i<=0)throw new RangeError("animationDuration (optional) must be finite positive number");const s=this.Yu,n=performance.now();this.ns.vn({Ec:t=>(t-n)/i>=1,Ac:e=>{const r=(e-n)/i;return r>=1?t:s+(t-s)*r}})}kt(t,i){this.zu=!0,this.Bu=t,this.Eu.bu(t,i),this.fc()}Lc(){return this.Ou}zc(){return this.Nu}Oc(){return this.Fu}vc(){return this.Vu||0}Nc(t,i){const s=t.mu(),n=i&&this.Ps.rightOffsetPixels||0;this.xc((this.S_-n)/s),this.Yu=t.bi()-this.vc(),i&&(this.Yu=n?n/this.ul():this.Ps.rightOffset),this.fc(),this.zu=!0,this.ns.Sc(),this.ns.dr()}Fc(){const t=this._c(),i=this.uc();if(null===t||null===i)return;const s=!this.Ps.rightOffsetPixels&&this.Ps.rightOffset||0;this.Nc(new Vi(t,i+s),!0)}Wc(t){const i=new Vi(t.from,t.to);this.Nc(i)}rs(t){return void 0!==this.yo.timeFormatter?this.yo.timeFormatter(t.originalTime):this.cu.formatHorzItem(t.time)}Ju(){if(!this.Ps.ignoreWhitespaceIndices)return;this.Uu.clear();const t=this.ns.tn();for(const i of t)for(const t of i.ll())this.Uu.set(t,!0);this.$u++}Hc(){return this.ju}vl(){const t=1/(window.devicePixelRatio||1),i=this.Ps.minBarSpacing;if(i>=t)return[1];const s=[1];let n=2;for(;n<=512;){i<t/n&&s.push(n),n*=2}return s}yc(){const t=this.ns.N().handleScroll,i=this.ns.N().handleScale;return!(t.horzTouchDrag||t.mouseWheel||t.pressedMouseMove||t.vertTouchDrag||i.axisDoubleClickReset.time||i.axisPressedMouseMove.time||i.mouseWheel||i.pinch)}_c(){return 0===this.Bu.length?null:0}uc(){return 0===this.Bu.length?null:this.Bu.length-1}Uc(t){return(this.S_-1-t)/this.Ku}gc(t){const i=this.Uc(t),s=this.vc()+this.Yu-i;return Math.round(1e6*s)/1e6}xc(t){const i=this.Ku;this.Ku=t,this.dc(),i!==this.Ku&&(this.zu=!0,this.$c(),this.Xu())}hc(){if(!this.zu)return;if(this.zu=!1,this.Gi())return void this.qc(Ai.Iu());const t=this.vc(),i=this.S_/this.Ku,s=this.Yu+t,n=new Vi(s-i+1,s);this.qc(new Ai(n))}dc(){const t=si(this.Ku,this.jc(),this.Yc());this.Ku!==t&&(this.Ku=t,this.zu=!0)}Yc(){return this.Ps.maxBarSpacing>0?this.Ps.maxBarSpacing:.5*this.S_}jc(){return this.Ps.fixLeftEdge&&this.Ps.fixRightEdge&&0!==this.Bu.length?this.S_/this.Bu.length:this.Ps.minBarSpacing}Xu(){if(!this.Ps.enableConflation)return void(this.ju=1);const t=1/(window.devicePixelRatio||1)*(this.Ps.conflationThresholdFactor??1);if(this.Ku>=t)return void(this.ju=1);const i=t/this.Ku,s=Math.pow(2,Math.floor(Math.log2(i)));this.ju=Math.min(s,512)}fc(){const t=this.Kc();null!==t&&this.Yu<t&&(this.Yu=t,this.zu=!0);const i=this.Zc();this.Yu>i&&(this.Yu=i,this.zu=!0)}Kc(){const t=this._c(),i=this.Vu;if(null===t||null===i)return null;return t-i-1+(this.Ps.fixLeftEdge?this.S_/this.Ku:Math.min(2,this.Bu.length))}Zc(){return this.Ps.fixRightEdge?0:this.S_/this.Ku-Math.min(2,this.Bu.length)}Dc(){this.Wu={ul:this.ul(),Cc:this.Cc()}}Ic(){this.Wu=null}kc(t){let i=this.Au.get(t.weight);return void 0===i&&(i=new Ii((t=>this.Gc(t)),this.cu),this.Au.set(t.weight,i)),i.du(t)}Gc(t){return this.cu.formatTickmark(t,this.yo)}qc(t){const i=this.Lu;this.Lu=t,Bi(i.Ru(),this.Lu.Ru())||this.Ou.p(),Bi(i.Du(),this.Lu.Du())||this.Nu.p(),this.$c()}$c(){this.Hu=null}tc(){this.$c(),this.Au.clear()}Gu(){this.cu.updateFormatter(this.yo)}sc(){if(!this.Ps.fixLeftEdge)return;const t=this._c();if(null===t)return;const i=this.Ie();if(null===i)return;const s=i.Aa()-t;if(s<0){const t=this.Yu-s-1;this.Mn(t)}this.dc()}nc(){this.fc(),this.dc()}Mc(t){return!this.Ps.ignoreWhitespaceIndices||(this.Uu.get(t)||!1)}bc(t){const i=function*(t){const i=Math.round(t),s=i<t;let n=1;for(;;)s?(yield i+n,yield i-n):(yield i-n,yield i+n),n++}(t),s=this.uc();for(;s;){const t=i.next().value;if(this.Uu.get(t))return t;if(t<0||t>s)break}return t}Zu(t){if(void 0!==t.rightOffsetPixels){const i=t.rightOffsetPixels/(t.barSpacing||this.Ku);this.ns.Mn(i)}}}var Oi,Ni,Fi,Wi,Hi;!function(t){t[t.OnTouchEnd=0]="OnTouchEnd",t[t.OnNextTap=1]="OnNextTap"}(Oi||(Oi={}));class Ui{constructor(t,i,s){this.Xc=[],this.Jc=[],this.Qc=null,this.S_=0,this.td=null,this.sd=new d,this.nd=new d,this.ed=null,this.rd=t,this.Ps=i,this.cu=s,this.ko=new P(this.Ps.layout.colorParsers),this.hd=new C(this),this.Jh=new zi(this,i.timeScale,this.Ps.localization,s),this.Ct=new Z(this,i.crosshair),this.ad=new ii(i.crosshair),i.addDefaultPane&&(this.ld(0),this.Xc[0].A_(2)),this.od=this._d(0),this.ud=this._d(1)}Ca(){this.dd(X.yn())}dr(){this.dd(X.Cn())}Ua(){this.dd(new X(1))}ya(t){const i=this.fd(t);this.dd(i)}pd(){return this.td}vd(t){if(this.td?.hu===t?.hu&&this.td?.au?.te===t?.au?.te)return;const i=this.td;this.td=t,null!==i&&this.ya(i.hu),null!==t&&t.hu!==i?.hu&&this.ya(t.hu)}N(){return this.Ps}cr(t){f(this.Ps,t),this.Xc.forEach((i=>i.I_(t))),void 0!==t.timeScale&&this.Jh.cr(t.timeScale),void 0!==t.localization&&this.Jh.Qu(t.localization),(t.leftPriceScale||t.rightPriceScale)&&this.sd.p(),this.od=this._d(0),this.ud=this._d(1),this.Ca()}md(t,i,s=0){const n=this.Xc[s];if(void 0===n)return;if("left"===t)return f(this.Ps,{leftPriceScale:i}),n.I_({leftPriceScale:i}),this.sd.p(),void this.Ca();if("right"===t)return f(this.Ps,{rightPriceScale:i}),n.I_({rightPriceScale:i}),this.sd.p(),void this.Ca();const e=this.wd(t,s);null!==e&&(e.Ft.cr(i),this.sd.p())}wd(t,i){const s=this.Xc[i];if(void 0===s)return null;const n=s.V_(t);return null!==n?{Gs:s,Ft:n}:null}Et(){return this.Jh}Xs(){return this.Xc}gd(){return this.Ct}Md(){return this.nd}bd(t,i){t.No(i),this.Sc()}L_(t){this.S_=t,this.Jh.L_(this.S_),this.Xc.forEach((i=>i.L_(t))),this.Sc()}Sd(t){1!==this.Xc.length&&(o(t>=0&&t<this.Xc.length,"Invalid pane index"),this.Xc.splice(t,1),this.Ca())}xd(t,i){if(this.Xc.length<2)return;o(t>=0&&t<this.Xc.length,"Invalid pane index");const s=this.Xc[t],n=this.Xc.reduce(((t,i)=>t+i.E_()),0),e=this.Xc.reduce(((t,i)=>t+i.$t()),0),r=e-30*(this.Xc.length-1);i=Math.min(r,Math.max(30,i));const h=n/e,a=s.$t();s.A_(i*h);let l=i-a,_=this.Xc.length-1;for(const t of this.Xc)if(t!==s){const i=Math.min(r,Math.max(30,t.$t()-l/_));l-=t.$t()-i,_-=1;const s=i*h;t.A_(s)}this.Ca()}Cd(t,i){o(t>=0&&t<this.Xc.length&&i>=0&&i<this.Xc.length,"Invalid pane index");const s=this.Xc[t],n=this.Xc[i];this.Xc[t]=n,this.Xc[i]=s,this.Ca()}yd(t,i){if(o(t>=0&&t<this.Xc.length&&i>=0&&i<this.Xc.length,"Invalid pane index"),t===i)return;const[s]=this.Xc.splice(t,1);this.Xc.splice(i,0,s),this.Ca()}j_(t,i,s){t.j_(i,s)}Y_(t,i,s){t.Y_(i,s),this.ka(),this.dd(this.kd(t,2))}K_(t,i){t.K_(i),this.dd(this.kd(t,2))}Z_(t,i,s){i.Vo()||t.Z_(i,s)}G_(t,i,s){i.Vo()||(t.G_(i,s),this.ka(),this.dd(this.kd(t,2)))}X_(t,i){i.Vo()||(t.X_(i),this.dd(this.kd(t,2)))}Q_(t,i){t.Q_(i),this.dd(this.kd(t,2))}Pd(t){this.Jh.h_(t)}Td(t,i){const s=this.Et();if(s.Gi()||0===i)return;const n=s.ss();t=Math.max(1,Math.min(t,n)),s.Rc(t,i),this.Sc()}Rd(t){this.Dd(0),this.Id(t),this.Vd()}Bd(t){this.Jh.a_(t),this.Sc()}Ed(){this.Jh.l_(),this.dr()}Dd(t){this.Jh.o_(t)}Id(t){this.Jh.__(t),this.Sc()}Vd(){this.Jh.u_(),this.dr()}tn(){return this.Jc}Us(){return null===this.Qc&&(this.Qc=this.Jc.filter((t=>t.It()))),this.Qc}xa(){this.Qc=null}Ad(t,i,s,n,e){this.Ct.Bs(t,i);let r=NaN,h=this.Jh.wc(t,!0);const a=this.Jh.Ie();null!==a&&(h=Math.min(Math.max(a.Aa(),h),a.bi())),h=this.Ct.Hs(h);const l=n.Rs(),o=l.Lt();if(null!==o&&(r=l.Ds(i,o)),r=this.ad.bl(r,h,n),this.Ct.zs(h,r,n),this.Ua(),!e){const e=Di(n,t,i);this.vd(e&&{hu:e.hu,au:e.au,ou:e.ou||null}),this.nd.p(this.Ct.Bt(),{x:t,y:i},s)}}Ld(t,i,s){const n=s.Rs(),e=n.Lt(),r=n.Nt(t,u(e)),h=this.Jh.ec(i,!0),a=this.Jh.qt(u(h));this.Ad(a,r,null,s,!0)}zd(t){this.gd().Ns(),this.Ua(),t||this.nd.p(null,null,null)}ka(){const t=this.Ct.Gs();if(null!==t){const i=this.Ct.As(),s=this.Ct.Ls();this.Ad(i,s,null,t)}this.Ct.Ws()}Od(t,i,s){const n=this.Jh.Is(0);void 0!==i&&void 0!==s&&this.Jh.kt(i,s);const e=this.Jh.Is(0),r=this.Jh.vc(),h=this.Jh.Ie();if(null!==h&&null!==n&&null!==e){const i=h.Ee(r),a=this.cu.key(n)>this.cu.key(e),l=null!==t&&t>r&&!a,o=this.Jh.N().allowShiftVisibleRangeOnWhitespaceReplacement,_=i&&(!(void 0===s)||o)&&this.Jh.N().shiftVisibleRangeOnNewBar;if(l&&!_){const i=t-r;this.Jh.Mn(this.Jh.Cc()-i)}}this.Jh.Tc(t)}Ra(t){null!==t&&t.iu()}Kn(t){if(function(t){return t instanceof ki}(t))return t;const i=this.Xc.find((i=>i.Dt().includes(t)));return void 0===i?null:i}Sc(){this.Xc.forEach((t=>t.iu())),this.ka()}m(){this.Xc.forEach((t=>t.m())),this.Xc.length=0,this.Ps.localization.priceFormatter=void 0,this.Ps.localization.percentageFormatter=void 0,this.Ps.localization.timeFormatter=void 0}Nd(){return this.hd}Jn(){return this.hd.N()}B_(){return this.sd}Fd(t,i){const s=this.ld(i);this.Wd(t,s),this.Jc.push(t),this.xa(),1===this.Jc.length?this.Ca():this.dr()}Hd(t){const i=this.Kn(t),s=this.Jc.indexOf(t);o(-1!==s,"Series not found");const n=u(i);this.Jc.splice(s,1),n.n_(t),t.m&&t.m(),this.xa(),this.Jh.Ju(),this.Ud(n)}Sa(t,i){const s=u(this.Kn(t));s.n_(t,!0),s.i_(t,i,!0)}Fc(){const t=X.Cn();t.cn(),this.dd(t)}$d(t){const i=X.Cn();i.pn(t),this.dd(i)}wn(){const t=X.Cn();t.wn(),this.dd(t)}gn(t){const i=X.Cn();i.gn(t),this.dd(i)}Mn(t){const i=X.Cn();i.Mn(t),this.dd(i)}vn(t){const i=X.Cn();i.vn(t),this.dd(i)}dn(){const t=X.Cn();t.dn(),this.dd(t)}qd(){return this.Ps.rightPriceScale.visible?"right":"left"}jd(t,i){o(i>=0,"Index should be greater or equal to 0");if(i===this.Yd(t))return;const s=u(this.Kn(t));s.n_(t);const n=this.ld(i);this.Wd(t,n),0===s.Sl().length&&this.Ud(s),this.Ca()}Kd(){return this.ud}$(){return this.od}Ut(t){const i=this.ud,s=this.od;if(i===s)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),null===this.ed||this.ed.eh!==s||this.ed.rh!==i)this.ed={eh:s,rh:i,Zd:new Map};else{const i=this.ed.Zd.get(t);if(void 0!==i)return i}const n=this.ko.tt(s,i,t/100);return this.ed.Zd.set(t,n),n}Gd(t){return this.Xc.indexOf(t)}Xi(){return this.ko}Xd(){return this.Jd()}Jd(t){const i=new ki(this.Jh,this);this.Xc.push(i);const s=t??this.Xc.length-1,n=X.yn();return n.hn(s,{an:0,ln:!0}),this.dd(n),i}ld(t){return o(t>=0,"Index should be greater or equal to 0"),(t=Math.min(this.Xc.length,t))<this.Xc.length?this.Xc[t]:this.Jd(t)}Yd(t){return this.Xc.findIndex((i=>i.F_().includes(t)))}kd(t,i){const s=new X(i);if(null!==t){const n=this.Xc.indexOf(t);s.hn(n,{an:i})}return s}fd(t,i){return void 0===i&&(i=2),this.kd(this.Kn(t),i)}dd(t){this.rd&&this.rd(t),this.Xc.forEach((t=>t.eu().pr().kt()))}Wd(t,i){const s=t.N().priceScaleId,n=void 0!==s?s:this.qd();i.i_(t,n),G(n)||t.cr(t.N())}_d(t){const i=this.Ps.layout;return"gradient"===i.background.type?0===t?i.background.topColor:i.background.bottomColor:i.background.color}Ud(t){!t.N_()&&0===t.Sl().length&&this.Xc.length>1&&this.Xc.splice(this.Gd(t),1)}}function $i(t){if(t>=1)return 0;let i=0;for(;i<8;i++){const s=Math.round(t);if(Math.abs(s-t)<1e-8)return i;t*=10}return i}function qi(t){return!p(t)&&!m(t)}function ji(t){return p(t)}!function(t){t[t.Disabled=0]="Disabled",t[t.Continuous=1]="Continuous",t[t.OnDataUpdate=2]="OnDataUpdate"}(Ni||(Ni={})),function(t){t[t.LastBar=0]="LastBar",t[t.LastVisible=1]="LastVisible"}(Fi||(Fi={})),function(t){t.Solid="solid",t.VerticalGradient="gradient"}(Wi||(Wi={})),function(t){t[t.Year=0]="Year",t[t.Month=1]="Month",t[t.DayOfMonth=2]="DayOfMonth",t[t.Time=3]="Time",t[t.TimeWithSeconds=4]="TimeWithSeconds"}(Hi||(Hi={}));const Yi=t=>t.getUTCFullYear();function Ki(t,i,s){return i.replace(/yyyy/g,(t=>tt(Yi(t),4))(t)).replace(/yy/g,(t=>tt(Yi(t)%100,2))(t)).replace(/MMMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"long"}))(t,s)).replace(/MMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:"short"}))(t,s)).replace(/MM/g,(t=>tt((t=>t.getUTCMonth()+1)(t),2))(t)).replace(/dd/g,(t=>tt((t=>t.getUTCDate())(t),2))(t))}class Zi{constructor(t="yyyy-MM-dd",i="default"){this.Qd=t,this.tf=i}du(t){return Ki(t,this.Qd,this.tf)}}class Gi{constructor(t){this.if=t||"%h:%m:%s"}du(t){return this.if.replace("%h",tt(t.getUTCHours(),2)).replace("%m",tt(t.getUTCMinutes(),2)).replace("%s",tt(t.getUTCSeconds(),2))}}const Xi={sf:"yyyy-MM-dd",nf:"%h:%m:%s",ef:" ",rf:"default"};class Ji{constructor(t={}){const i={...Xi,...t};this.hf=new Zi(i.sf,i.rf),this.af=new Gi(i.nf),this.lf=i.ef}du(t){return`${this.hf.du(t)}${this.lf}${this.af.du(t)}`}}function Qi(t){return 60*t*60*1e3}function ts(t){return 60*t*1e3}const is=[{_f:(ss=1,1e3*ss),uf:10},{_f:ts(1),uf:20},{_f:ts(5),uf:21},{_f:ts(30),uf:22},{_f:Qi(1),uf:30},{_f:Qi(3),uf:31},{_f:Qi(6),uf:32},{_f:Qi(12),uf:33}];var ss;function ns(t,i){if(t.getUTCFullYear()!==i.getUTCFullYear())return 70;if(t.getUTCMonth()!==i.getUTCMonth())return 60;if(t.getUTCDate()!==i.getUTCDate())return 50;for(let s=is.length-1;s>=0;--s)if(Math.floor(i.getTime()/is[s]._f)!==Math.floor(t.getTime()/is[s]._f))return is[s].uf;return 0}function es(t){let i=t;if(m(t)&&(i=hs(t)),!qi(i))throw new Error("time must be of type BusinessDay");const s=new Date(Date.UTC(i.year,i.month-1,i.day,0,0,0,0));return{cf:Math.round(s.getTime()/1e3),df:i}}function rs(t){if(!ji(t))throw new Error("time must be of type isUTCTimestamp");return{cf:t}}function hs(t){const i=new Date(t);if(isNaN(i.getTime()))throw new Error(`Invalid date string=${t}, expected format=yyyy-mm-dd`);return{day:i.getUTCDate(),month:i.getUTCMonth()+1,year:i.getUTCFullYear()}}function as(t){m(t.time)&&(t.time=hs(t.time))}class ls{options(){return this.Ps}setOptions(t){this.Ps=t,this.updateFormatter(t.localization)}preprocessData(t){Array.isArray(t)?function(t){t.forEach(as)}(t):as(t)}createConverterToInternalObj(t){return u(function(t){return 0===t.length?null:qi(t[0].time)||m(t[0].time)?es:rs}(t))}key(t){return"object"==typeof t&&"cf"in t?t.cf:this.key(this.convertHorzItemToInternal(t))}cacheKey(t){const i=t;return void 0===i.df?new Date(1e3*i.cf).getTime():new Date(Date.UTC(i.df.year,i.df.month-1,i.df.day)).getTime()}convertHorzItemToInternal(t){return ji(i=t)?rs(i):qi(i)?es(i):es(hs(i));var i}updateFormatter(t){if(!this.Ps)return;const i=t.dateFormat;this.Ps.timeScale.timeVisible?this.ff=new Ji({sf:i,nf:this.Ps.timeScale.secondsVisible?"%h:%m:%s":"%h:%m",ef:"   ",rf:t.locale}):this.ff=new Zi(i,t.locale)}formatHorzItem(t){const i=t;return this.ff.du(new Date(1e3*i.cf))}formatTickmark(t,i){const s=function(t,i,s){switch(t){case 0:case 10:return i?s?4:3:2;case 20:case 21:case 22:case 30:case 31:case 32:case 33:return i?3:2;case 50:return 2;case 60:return 1;case 70:return 0}}(t.weight,this.Ps.timeScale.timeVisible,this.Ps.timeScale.secondsVisible),n=this.Ps.timeScale;if(void 0!==n.tickMarkFormatter){const e=n.tickMarkFormatter(t.originalTime,s,i.locale);if(null!==e)return e}return function(t,i,s){const n={};switch(i){case 0:n.year="numeric";break;case 1:n.month="short";break;case 2:n.day="numeric";break;case 3:n.hour12=!1,n.hour="2-digit",n.minute="2-digit";break;case 4:n.hour12=!1,n.hour="2-digit",n.minute="2-digit",n.second="2-digit"}const e=void 0===t.df?new Date(1e3*t.cf):new Date(Date.UTC(t.df.year,t.df.month-1,t.df.day));return new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()).toLocaleString(s,n)}(t.time,s,i.locale)}maxTickMarkWeight(t){let i=t.reduce(Li,t[0]).weight;return i>30&&i<50&&(i=30),i}fillWeightsForPoints(t,i){!function(t,i=0){if(0===t.length)return;let s=0===i?null:t[i-1].time.cf,n=null!==s?new Date(1e3*s):null,e=0;for(let r=i;r<t.length;++r){const i=t[r],h=new Date(1e3*i.time.cf);null!==n&&(i.timeWeight=ns(h,n)),e+=i.time.cf-(s||i.time.cf),s=i.time.cf,n=h}if(0===i&&t.length>1){const i=Math.ceil(e/(t.length-1)),s=new Date(1e3*(t[0].time.cf-i));t[0].timeWeight=ns(new Date(1e3*t[0].time.cf),s)}}(t,i)}static pf(t){return f({localization:{dateFormat:"dd MMM 'yy"}},t??{})}}const os="undefined"!=typeof window;function _s(){return!!os&&window.navigator.userAgent.toLowerCase().indexOf("firefox")>-1}function us(){return!!os&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function cs(t){return t+t%2}function ds(t){os&&void 0!==window.chrome&&t.addEventListener("mousedown",(t=>{if(1===t.button)return t.preventDefault(),!1}))}class fs{constructor(t,i,s){this.vf=0,this.mf=null,this.wf={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY},this.gf=0,this.Mf=null,this.bf={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY},this.Sf=null,this.xf=!1,this.Cf=null,this.yf=null,this.kf=!1,this.Pf=!1,this.Tf=!1,this.Rf=null,this.Df=null,this.If=null,this.Vf=null,this.Bf=null,this.Ef=null,this.Af=null,this.Lf=0,this.zf=!1,this.Of=!1,this.Nf=!1,this.Ff=0,this.Wf=null,this.Hf=!us(),this.Uf=t=>{this.$f(t)},this.qf=t=>{if(this.jf(t)){const i=this.Yf(t);if(++this.gf,this.Mf&&this.gf>1){const{Kf:s}=this.Zf(ms(t),this.bf);s<30&&!this.Tf&&this.Gf(i,this.Jf.Xf),this.Qf()}}else{const i=this.Yf(t);if(++this.vf,this.mf&&this.vf>1){const{Kf:s}=this.Zf(ms(t),this.wf);s<5&&!this.Pf&&this.tp(i,this.Jf.ip),this.sp()}}},this.np=t,this.Jf=i,this.Ps=s,this.ep()}m(){null!==this.Rf&&(this.Rf(),this.Rf=null),null!==this.Df&&(this.Df(),this.Df=null),null!==this.Vf&&(this.Vf(),this.Vf=null),null!==this.Bf&&(this.Bf(),this.Bf=null),null!==this.Ef&&(this.Ef(),this.Ef=null),null!==this.If&&(this.If(),this.If=null),this.rp(),this.sp()}hp(t){this.Vf&&this.Vf();const i=this.ap.bind(this);if(this.Vf=()=>{this.np.removeEventListener("mousemove",i)},this.np.addEventListener("mousemove",i),this.jf(t))return;const s=this.Yf(t);this.tp(s,this.Jf.lp),this.Hf=!0}sp(){null!==this.mf&&clearTimeout(this.mf),this.vf=0,this.mf=null,this.wf={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY}}Qf(){null!==this.Mf&&clearTimeout(this.Mf),this.gf=0,this.Mf=null,this.bf={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY}}ap(t){if(this.Nf||null!==this.yf)return;if(this.jf(t))return;const i=this.Yf(t);this.tp(i,this.Jf.op),this.Hf=!0}_p(t){const i=gs(t.changedTouches,u(this.Wf));if(null===i)return;if(this.Ff=ws(t),null!==this.Af)return;if(this.Of)return;this.zf=!0;const s=this.Zf(ms(i),u(this.yf)),{up:n,cp:e,Kf:r}=s;if(this.kf||!(r<5)){if(!this.kf){const t=.5*n,i=e>=t&&!this.Ps.dp(),s=t>e&&!this.Ps.fp();i||s||(this.Of=!0),this.kf=!0,this.Tf=!0,this.rp(),this.Qf()}if(!this.Of){const s=this.Yf(t,i);this.Gf(s,this.Jf.pp),vs(t)}}}vp(t){if(0!==t.button)return;const i=this.Zf(ms(t),u(this.Cf)),{Kf:s}=i;if(s>=5&&(this.Pf=!0,this.sp()),this.Pf){const i=this.Yf(t);this.tp(i,this.Jf.mp)}}Zf(t,i){const s=Math.abs(i._t-t._t),n=Math.abs(i.ut-t.ut);return{up:s,cp:n,Kf:s+n}}wp(t){let i=gs(t.changedTouches,u(this.Wf));if(null===i&&0===t.touches.length&&(i=t.changedTouches[0]),null===i)return;this.Wf=null,this.Ff=ws(t),this.rp(),this.yf=null,this.Ef&&(this.Ef(),this.Ef=null);const s=this.Yf(t,i);if(this.Gf(s,this.Jf.gp),++this.gf,this.Mf&&this.gf>1){const{Kf:t}=this.Zf(ms(i),this.bf);t<30&&!this.Tf&&this.Gf(s,this.Jf.Xf),this.Qf()}else this.Tf||(this.Gf(s,this.Jf.Mp),this.Jf.Mp&&vs(t));0===this.gf&&vs(t),0===t.touches.length&&this.xf&&(this.xf=!1,vs(t))}$f(t){if(0!==t.button)return;const i=this.Yf(t);if(this.Cf=null,this.Nf=!1,this.Bf&&(this.Bf(),this.Bf=null),_s()){this.np.ownerDocument.documentElement.removeEventListener("mouseleave",this.Uf)}if(!this.jf(t))if(this.tp(i,this.Jf.bp),++this.vf,this.mf&&this.vf>1){const{Kf:s}=this.Zf(ms(t),this.wf);s<5&&!this.Pf&&this.tp(i,this.Jf.ip),this.sp()}else this.Pf||this.tp(i,this.Jf.Sp)}rp(){null!==this.Sf&&(clearTimeout(this.Sf),this.Sf=null)}xp(t){if(null!==this.Wf)return;const i=t.changedTouches[0];this.Wf=i.identifier,this.Ff=ws(t);const s=this.np.ownerDocument.documentElement;this.Tf=!1,this.kf=!1,this.Of=!1,this.yf=ms(i),this.Ef&&(this.Ef(),this.Ef=null);{const i=this._p.bind(this),n=this.wp.bind(this);this.Ef=()=>{s.removeEventListener("touchmove",i),s.removeEventListener("touchend",n)},s.addEventListener("touchmove",i,{passive:!1}),s.addEventListener("touchend",n,{passive:!1}),this.rp(),this.Sf=setTimeout(this.Cp.bind(this,t),240)}const n=this.Yf(t,i);this.Gf(n,this.Jf.yp),this.Mf||(this.gf=0,this.Mf=setTimeout(this.Qf.bind(this),500),this.bf=ms(i))}kp(t){if(0!==t.button)return;const i=this.np.ownerDocument.documentElement;_s()&&i.addEventListener("mouseleave",this.Uf),this.Pf=!1,this.Cf=ms(t),this.Bf&&(this.Bf(),this.Bf=null);{const t=this.vp.bind(this),s=this.$f.bind(this);this.Bf=()=>{i.removeEventListener("mousemove",t),i.removeEventListener("mouseup",s)},i.addEventListener("mousemove",t),i.addEventListener("mouseup",s)}if(this.Nf=!0,this.jf(t))return;const s=this.Yf(t);this.tp(s,this.Jf.Pp),this.mf||(this.vf=0,this.mf=setTimeout(this.sp.bind(this),500),this.wf=ms(t))}ep(){this.np.addEventListener("mouseenter",this.hp.bind(this)),this.np.addEventListener("touchcancel",this.rp.bind(this));{const t=this.np.ownerDocument,i=t=>{this.Jf.Tp&&(t.composed&&this.np.contains(t.composedPath()[0])||t.target&&this.np.contains(t.target)||this.Jf.Tp())};this.Df=()=>{t.removeEventListener("touchstart",i)},this.Rf=()=>{t.removeEventListener("mousedown",i)},t.addEventListener("mousedown",i),t.addEventListener("touchstart",i,{passive:!0})}us()&&(this.If=()=>{this.np.removeEventListener("dblclick",this.qf)},this.np.addEventListener("dblclick",this.qf)),this.np.addEventListener("mouseleave",this.Rp.bind(this)),this.np.addEventListener("touchstart",this.xp.bind(this),{passive:!0}),ds(this.np),this.np.addEventListener("mousedown",this.kp.bind(this)),this.Dp(),this.np.addEventListener("touchmove",(()=>{}),{passive:!1})}Dp(){void 0===this.Jf.Ip&&void 0===this.Jf.Vp&&void 0===this.Jf.Bp||(this.np.addEventListener("touchstart",(t=>this.Ep(t.touches)),{passive:!0}),this.np.addEventListener("touchmove",(t=>{if(2===t.touches.length&&null!==this.Af&&void 0!==this.Jf.Vp){const i=ps(t.touches[0],t.touches[1])/this.Lf;this.Jf.Vp(this.Af,i),vs(t)}}),{passive:!1}),this.np.addEventListener("touchend",(t=>{this.Ep(t.touches)})))}Ep(t){1===t.length&&(this.zf=!1),2!==t.length||this.zf||this.xf?this.Ap():this.Lp(t)}Lp(t){const i=this.np.getBoundingClientRect()||{left:0,top:0};this.Af={_t:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,ut:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.Lf=ps(t[0],t[1]),void 0!==this.Jf.Ip&&this.Jf.Ip(),this.rp()}Ap(){null!==this.Af&&(this.Af=null,void 0!==this.Jf.Bp&&this.Jf.Bp())}Rp(t){if(this.Vf&&this.Vf(),this.jf(t))return;if(!this.Hf)return;const i=this.Yf(t);this.tp(i,this.Jf.zp),this.Hf=!us()}Cp(t){const i=gs(t.touches,u(this.Wf));if(null===i)return;const s=this.Yf(t,i);this.Gf(s,this.Jf.Op),this.Tf=!0,this.xf=!0}jf(t){return t.sourceCapabilities&&void 0!==t.sourceCapabilities.firesTouchEvents?t.sourceCapabilities.firesTouchEvents:ws(t)<this.Ff+500}Gf(t,i){i&&i.call(this.Jf,t)}tp(t,i){i&&i.call(this.Jf,t)}Yf(t,i){const s=i||t,n=this.np.getBoundingClientRect()||{left:0,top:0};return{clientX:s.clientX,clientY:s.clientY,pageX:s.pageX,pageY:s.pageY,screenX:s.screenX,screenY:s.screenY,localX:s.clientX-n.left,localY:s.clientY-n.top,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,metaKey:t.metaKey,Np:!t.type.startsWith("mouse")&&"contextmenu"!==t.type&&"click"!==t.type,Fp:t.type,Wp:s.target,_u:t.view,Hp:()=>{"touchstart"!==t.type&&vs(t)}}}}function ps(t,i){const s=t.clientX-i.clientX,n=t.clientY-i.clientY;return Math.sqrt(s*s+n*n)}function vs(t){t.cancelable&&t.preventDefault()}function ms(t){return{_t:t.pageX,ut:t.pageY}}function ws(t){return t.timeStamp||performance.now()}function gs(t,i){for(let s=0;s<t.length;++s)if(t[s].identifier===i)return t[s];return null}class Ms{constructor(t,i,s){this.Up=null,this.$p=null,this.qp=!0,this.jp=null,this.Yp=t,this.Kp=t.Zp()[i],this.Gp=t.Zp()[s],this.Xp=document.createElement("tr"),this.Xp.style.height="1px",this.Jp=document.createElement("td"),this.Jp.style.position="relative",this.Jp.style.padding="0",this.Jp.style.margin="0",this.Jp.setAttribute("colspan","3"),this.Qp(),this.Xp.appendChild(this.Jp),this.qp=this.Yp.N().layout.panes.enableResize,this.qp?this.tv():(this.Up=null,this.$p=null)}m(){null!==this.$p&&this.$p.m()}iv(){return this.Xp}sv(){return t({width:this.Kp.sv().width,height:1})}nv(){return t({width:this.Kp.nv().width,height:1*window.devicePixelRatio})}ev(t,i,s){const n=this.nv();t.fillStyle=this.Yp.N().layout.panes.separatorColor,t.fillRect(i,s,n.width,n.height)}kt(){this.Qp(),this.Yp.N().layout.panes.enableResize!==this.qp&&(this.qp=this.Yp.N().layout.panes.enableResize,this.qp?this.tv():(null!==this.Up&&(this.Jp.removeChild(this.Up.rv),this.Jp.removeChild(this.Up.hv),this.Up=null),null!==this.$p&&(this.$p.m(),this.$p=null)))}tv(){const t=document.createElement("div"),i=t.style;i.position="fixed",i.display="none",i.zIndex="49",i.top="0",i.left="0",i.width="100%",i.height="100%",i.cursor="row-resize",this.Jp.appendChild(t);const s=document.createElement("div"),n=s.style;n.position="absolute",n.zIndex="50",n.top="-4px",n.height="9px",n.width="100%",n.backgroundColor="",n.cursor="row-resize",this.Jp.appendChild(s);const e={lp:this.av.bind(this),zp:this.lv.bind(this),Pp:this.ov.bind(this),yp:this.ov.bind(this),mp:this._v.bind(this),pp:this._v.bind(this),bp:this.uv.bind(this),gp:this.uv.bind(this)};this.$p=new fs(s,e,{dp:()=>!1,fp:()=>!0}),this.Up={hv:s,rv:t}}Qp(){this.Jp.style.background=this.Yp.N().layout.panes.separatorColor}av(t){null!==this.Up&&(this.Up.hv.style.backgroundColor=this.Yp.N().layout.panes.separatorHoverColor)}lv(t){null!==this.Up&&null===this.jp&&(this.Up.hv.style.backgroundColor="")}ov(t){if(null===this.Up)return;const i=this.Kp.cv().E_()+this.Gp.cv().E_(),s=i/(this.Kp.sv().height+this.Gp.sv().height),n=30*s;i<=2*n||(this.jp={dv:t.pageY,fv:this.Kp.cv().E_(),pv:i-n,vv:i,mv:s,wv:n},this.Up.rv.style.display="block")}_v(t){const i=this.jp;if(null===i)return;const s=(t.pageY-i.dv)*i.mv,n=si(i.fv+s,i.wv,i.pv);this.Kp.cv().A_(n),this.Gp.cv().A_(i.vv-n),this.Yp.Qt().Ca()}uv(t){null!==this.jp&&null!==this.Up&&(this.jp=null,this.Up.rv.style.display="none")}}function bs(t,i){return t.gv-i.gv}function Ss(t,i,s){const n=(t.gv-i.gv)/(t.wt-i.wt);return Math.sign(n)*Math.min(Math.abs(n),s)}class xs{constructor(t,i,s,n){this.Mv=null,this.bv=null,this.Sv=null,this.xv=null,this.Cv=null,this.yv=0,this.kv=0,this.Pv=t,this.Tv=i,this.Rv=s,this.kn=n}Dv(t,i){if(null!==this.Mv){if(this.Mv.wt===i)return void(this.Mv.gv=t);if(Math.abs(this.Mv.gv-t)<this.kn)return}this.xv=this.Sv,this.Sv=this.bv,this.bv=this.Mv,this.Mv={wt:i,gv:t}}fe(t,i){if(null===this.Mv||null===this.bv)return;if(i-this.Mv.wt>50)return;let s=0;const n=Ss(this.Mv,this.bv,this.Tv),e=bs(this.Mv,this.bv),r=[n],h=[e];if(s+=e,null!==this.Sv){const t=Ss(this.bv,this.Sv,this.Tv);if(Math.sign(t)===Math.sign(n)){const i=bs(this.bv,this.Sv);if(r.push(t),h.push(i),s+=i,null!==this.xv){const t=Ss(this.Sv,this.xv,this.Tv);if(Math.sign(t)===Math.sign(n)){const i=bs(this.Sv,this.xv);r.push(t),h.push(i),s+=i}}}}let a=0;for(let t=0;t<r.length;++t)a+=h[t]/s*r[t];Math.abs(a)<this.Pv||(this.Cv={gv:t,wt:i},this.kv=a,this.yv=function(t,i){const s=Math.log(i);return Math.log(1*s/-t)/s}(Math.abs(a),this.Rv))}Ac(t){const i=u(this.Cv),s=t-i.wt;return i.gv+this.kv*(Math.pow(this.Rv,s)-1)/Math.log(this.Rv)}Ec(t){return null===this.Cv||this.Iv(t)===this.yv}Iv(t){const i=t-u(this.Cv).wt;return Math.min(i,this.yv)}}class Cs{constructor(t,i){this.Vv=void 0,this.Bv=void 0,this.Ev=void 0,this.ws=!1,this.Av=t,this.Lv=i,this.zv()}kt(){this.zv()}Ov(){this.Vv&&this.Av.removeChild(this.Vv),this.Bv&&this.Av.removeChild(this.Bv),this.Vv=void 0,this.Bv=void 0}Nv(){return this.ws!==this.Fv()||this.Ev!==this.Wv()}Wv(){return this.Lv.Qt().Xi().J(this.Lv.N().layout.textColor)>160?"dark":"light"}Fv(){return this.Lv.N().layout.attributionLogo}Hv(){const t=new URL(location.href);return t.hostname?"&utm_source="+t.hostname+t.pathname:""}zv(){this.Nv()&&(this.Ov(),this.ws=this.Fv(),this.ws&&(this.Ev=this.Wv(),this.Bv=document.createElement("style"),this.Bv.innerText="a#tv-attr-logo{--fill:#131722;--stroke:#fff;position:absolute;left:10px;bottom:10px;height:19px;width:35px;margin:0;padding:0;border:0;z-index:3;}a#tv-attr-logo[data-dark]{--fill:#D1D4DC;--stroke:#131722;}",this.Vv=document.createElement("a"),this.Vv.href=`https://www.tradingview.com/?utm_medium=lwc-link&utm_campaign=lwc-chart${this.Hv()}`,this.Vv.title="Charting by TradingView",this.Vv.id="tv-attr-logo",this.Vv.target="_blank",this.Vv.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="35" height="19" fill="none"><g fill-rule="evenodd" clip-path="url(#a)" clip-rule="evenodd"><path fill="var(--stroke)" d="M2 0H0v10h6v9h21.4l.5-1.3 6-15 1-2.7H23.7l-.5 1.3-.2.6a5 5 0 0 0-7-.9V0H2Zm20 17h4l5.2-13 .8-2h-7l-1 2.5-.2.5-1.5 3.8-.3.7V17Zm-.8-10a3 3 0 0 0 .7-2.7A3 3 0 1 0 16.8 7h4.4ZM14 7V2H2v6h6v9h4V7h2Z"/><path fill="var(--fill)" d="M14 2H2v6h6v9h6V2Zm12 15h-7l6-15h7l-6 15Zm-7-9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"/></g><defs><clipPath id="a"><path fill="var(--stroke)" d="M0 0h35v19H0z"/></clipPath></defs></svg>',this.Vv.toggleAttribute("data-dark","dark"===this.Ev),this.Av.appendChild(this.Bv),this.Av.appendChild(this.Vv)))}}function ys(t,s){const n=u(t.ownerDocument).createElement("canvas");t.appendChild(n);const e=i(n,{type:"device-pixel-content-box",options:{allowResizeObserver:!0},transform:(t,i)=>({width:Math.max(t.width,i.width),height:Math.max(t.height,i.height)})});return e.resizeCanvasElement(s),e}function ks(t){t.width=1,t.height=1,t.getContext("2d")?.clearRect(0,0,1,1)}function Ps(t,i,s,n){t.Uh&&t.Uh(i,s,n)}function Ts(t,i,s,n){t.nt(i,s,n)}function Rs(t,i,s,n){const e=t(s,n);for(const t of e){const s=t.Tt(n);null!==s&&i(s)}}function Ds(t,i){return s=>{if(!function(t){return void 0!==t.Ft}(s))return[];return(s.Ft()?.ol()??"")!==i?[]:s.Ya?.(t)??[]}}function Is(t,i,s,n){if(!t.length)return;let e=0;const r=t[0].$t(n,!0);let h=1===i?s/2-(t[0].Hi()-r/2):t[0].Hi()-r/2-s/2;h=Math.max(0,h);for(let r=1;r<t.length;r++){const a=t[r],l=t[r-1],o=l.$t(n,!1),_=a.Hi(),u=l.Hi();if(1===i?_>u-o:_<u+o){const n=u-o*i;a.Ui(n);const r=n-i*o/2;if((1===i?r<0:r>s)&&h>0){const n=1===i?-1-r:r-s,a=Math.min(n,h);for(let s=e;s<t.length;s++)t[s].Ui(t[s].Hi()+i*a);h-=a}}else e=r,h=1===i?u-o-_:_-(u+o)}}class Vs{constructor(i,s,n,e){this.Ki=null,this.Uv=null,this.$v=!1,this.qv=new rt(200),this.jv=null,this.Yv=0,this.Kv=!1,this.Zv=()=>{this.Kv||this.yt.Gv().Qt().dr()},this.Xv=()=>{this.Kv||this.yt.Gv().Qt().dr()},this.yt=i,this.Ps=s,this.Co=s.layout,this.hd=n,this.Jv="left"===e,this.Qv=Ds("normal",e),this.tm=Ds("top",e),this.im=Ds("bottom",e),this.Jp=document.createElement("div"),this.Jp.style.height="100%",this.Jp.style.overflow="hidden",this.Jp.style.width="25px",this.Jp.style.left="0",this.Jp.style.position="relative",this.sm=ys(this.Jp,t({width:16,height:16})),this.sm.subscribeSuggestedBitmapSizeChanged(this.Zv);const r=this.sm.canvasElement;r.style.position="absolute",r.style.zIndex="1",r.style.left="0",r.style.top="0",this.nm=ys(this.Jp,t({width:16,height:16})),this.nm.subscribeSuggestedBitmapSizeChanged(this.Xv);const h=this.nm.canvasElement;h.style.position="absolute",h.style.zIndex="2",h.style.left="0",h.style.top="0";const a={Pp:this.ov.bind(this),yp:this.ov.bind(this),mp:this._v.bind(this),pp:this._v.bind(this),Tp:this.rm.bind(this),bp:this.uv.bind(this),gp:this.uv.bind(this),ip:this.hm.bind(this),Xf:this.hm.bind(this),lp:this.am.bind(this),zp:this.lv.bind(this)};this.$p=new fs(this.nm.canvasElement,a,{dp:()=>!this.Ps.handleScroll.vertTouchDrag,fp:()=>!0})}m(){this.$p.m(),this.nm.unsubscribeSuggestedBitmapSizeChanged(this.Xv),ks(this.nm.canvasElement),this.nm.dispose(),this.sm.unsubscribeSuggestedBitmapSizeChanged(this.Zv),ks(this.sm.canvasElement),this.sm.dispose(),null!==this.Ki&&this.Ki.r_().u(this),this.Ki=null}iv(){return this.Jp}k(){return this.Co.fontSize}lm(){const t=this.hd.N();return this.jv!==t.P&&(this.qv.On(),this.jv=t.P),t}om(){if(null===this.Ki)return 0;let t=0;const i=this.lm(),s=u(this.sm.canvasElement.getContext("2d",{colorSpace:this.yt.Gv().N().layout.colorSpace}));s.save();const n=this.Ki.Vl();s.font=this._m(),n.length>0&&(t=Math.max(this.qv.Ii(s,n[0].Jl),this.qv.Ii(s,n[n.length-1].Jl)));const e=this.um();for(let i=e.length;i--;){const n=this.qv.Ii(s,e[i].ri());n>t&&(t=n)}const r=this.Ki.Lt();if(null!==r&&null!==this.Uv&&(2!==(h=this.Ps.crosshair).mode&&h.horzLine.visible&&h.horzLine.labelVisible)){const i=this.Ki.Ds(1,r),n=this.Ki.Ds(this.Uv.height-2,r);t=Math.max(t,this.qv.Ii(s,this.Ki.Ji(Math.floor(Math.min(i,n))+.11111111111111,r)),this.qv.Ii(s,this.Ki.Ji(Math.ceil(Math.max(i,n))-.11111111111111,r)))}var h;s.restore();const a=t||34;return cs(Math.ceil(i.S+i.C+i.V+i.B+5+a))}dm(t){null!==this.Uv&&s(this.Uv,t)||(this.Uv=t,this.Kv=!0,this.sm.resizeCanvasElement(t),this.nm.resizeCanvasElement(t),this.Kv=!1,this.Jp.style.width=`${t.width}px`,this.Jp.style.height=`${t.height}px`)}fm(){return u(this.Uv).width}cs(t){this.Ki!==t&&(null!==this.Ki&&this.Ki.r_().u(this),this.Ki=t,t.r_().i(this.do.bind(this),this))}Ft(){return this.Ki}On(){const t=this.yt.cv();this.yt.Gv().Qt().Q_(t,u(this.Ft()))}pm(t){if(null===this.Uv)return;const i={colorSpace:this.yt.Gv().N().layout.colorSpace};if(1!==t){this.vm(),this.sm.applySuggestedBitmapSize();const t=n(this.sm,i);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.wm(t),this.gm(t)})),this.yt.Mm(t,this.im),this.bm(t),this.yt.Mm(t,this.Qv),this.Sm(t))}this.nm.applySuggestedBitmapSize();const s=n(this.nm,i);null!==s&&(s.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.xm(s),this.yt.Mm(s,this.tm))}nv(){return this.sm.bitmapSize}ev(t,i,s,n){const e=this.nv();if(e.width>0&&e.height>0&&(t.drawImage(this.sm.canvasElement,i,s),n)){const n=this.nm.canvasElement;t.drawImage(n,i,s)}}kt(){this.Ki?.Vl()}ov(t){if(null===this.Ki||this.Ki.Gi()||!this.Ps.handleScale.axisPressedMouseMove.price)return;const i=this.yt.Gv().Qt(),s=this.yt.cv();this.$v=!0,i.j_(s,this.Ki,t.localY)}_v(t){if(null===this.Ki||!this.Ps.handleScale.axisPressedMouseMove.price)return;const i=this.yt.Gv().Qt(),s=this.yt.cv(),n=this.Ki;i.Y_(s,n,t.localY)}rm(){if(null===this.Ki||!this.Ps.handleScale.axisPressedMouseMove.price)return;const t=this.yt.Gv().Qt(),i=this.yt.cv(),s=this.Ki;this.$v&&(this.$v=!1,t.K_(i,s))}uv(t){if(null===this.Ki||!this.Ps.handleScale.axisPressedMouseMove.price)return;const i=this.yt.Gv().Qt(),s=this.yt.cv();this.$v=!1,i.K_(s,this.Ki)}hm(t){this.Ps.handleScale.axisDoubleClickReset.price&&this.On()}am(t){if(null===this.Ki)return;!this.yt.Gv().Qt().N().handleScale.axisPressedMouseMove.price||this.Ki.He()||this.Ki.Eo()||this.Cm(1)}lv(t){this.Cm(0)}um(){const t=[],i=null===this.Ki?void 0:this.Ki;return(s=>{for(let n=0;n<s.length;++n){const e=s[n].Ks(this.yt.cv(),i);for(let i=0;i<e.length;i++)t.push(e[i])}})(this.yt.cv().Dt()),t}wm({context:t,bitmapSize:i}){const{width:s,height:n}=i,e=this.yt.cv().Qt(),r=e.$(),h=e.Kd();r===h?z(t,0,0,s,n,r):F(t,0,0,s,n,r,h)}gm({context:t,bitmapSize:i,horizontalPixelRatio:s}){if(null===this.Uv||null===this.Ki||!this.Ki.N().borderVisible)return;t.fillStyle=this.Ki.N().borderColor;const n=Math.max(1,Math.floor(this.lm().S*s));let e;e=this.Jv?i.width-n:0,t.fillRect(e,0,n,i.height)}bm(t){if(null===this.Uv||null===this.Ki)return;const i=this.Ki.Vl(),s=this.Ki.N(),n=this.lm(),e=this.Jv?this.Uv.width-n.C:0;s.borderVisible&&s.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:r,verticalPixelRatio:h})=>{t.fillStyle=s.borderColor;const a=Math.max(1,Math.floor(h)),l=Math.floor(.5*h),o=Math.round(n.C*r);t.beginPath();for(const s of i)t.rect(Math.floor(e*r),Math.round(s.Pl*h)-l,o,a);t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{t.font=this._m(),t.fillStyle=s.textColor??this.Co.textColor,t.textAlign=this.Jv?"right":"left",t.textBaseline="middle";const r=this.Jv?Math.round(e-n.V):Math.round(e+n.C+n.V),h=i.map((i=>this.qv.Di(t,i.Jl)));for(let s=i.length;s--;){const n=i[s];t.fillText(n.Jl,r,n.Pl+h[s])}}))}vm(){if(null===this.Uv||null===this.Ki)return;let t=this.Uv.height/2;const i=[],s=this.Ki.Dt().slice(),n=this.yt.cv(),e=this.lm();this.Ki===n.Gn()&&this.yt.cv().Dt().forEach((t=>{n.Zn(t)&&s.push(t)}));const r=this.Ki.Sl()[0],h=this.Ki;s.forEach((s=>{const e=s.Ks(n,h);e.forEach((t=>{t.$i()&&null===t.Wi()&&(t.Ui(null),i.push(t))})),r===s&&e.length>0&&(t=e[0].Ei())}));this.Ki.N().alignLabels&&this.ym(i,e,t)}ym(t,i,s){if(null===this.Uv)return;const n=t.filter((t=>t.Ei()<=s)),e=t.filter((t=>t.Ei()>s));n.sort(((t,i)=>i.Ei()-t.Ei())),n.length&&e.length&&e.push(n[0]),e.sort(((t,i)=>t.Ei()-i.Ei()));for(const s of t){const t=Math.floor(s.$t(i)/2),n=s.Ei();n>-t&&n<t&&s.Ui(t),n>this.Uv.height-t&&n<this.Uv.height+t&&s.Ui(this.Uv.height-t)}Is(n,1,this.Uv.height,i),Is(e,-1,this.Uv.height,i)}Sm(t){if(null===this.Uv)return;const i=this.um(),s=this.lm(),n=this.Jv?"right":"left";i.forEach((i=>{if(i.qi()){i.Tt(u(this.Ki)).nt(t,s,this.qv,n)}}))}xm(t){if(null===this.Uv||null===this.Ki)return;const i=this.yt.Gv().Qt(),s=[],n=this.yt.cv(),e=i.gd().Ks(n,this.Ki);e.length&&s.push(e);const r=this.lm(),h=this.Jv?"right":"left";s.forEach((i=>{i.forEach((i=>{i.Tt(u(this.Ki)).nt(t,r,this.qv,h)}))}))}Cm(t){this.Jp.style.cursor=1===t?"ns-resize":"default"}do(){const t=this.om();this.Yv<t&&this.yt.Gv().Qt().Ca(),this.Yv=t}_m(){return x(this.Co.fontSize,this.Co.fontFamily)}}function Bs(t,i){return t.qa?.(i)??[]}function Es(t,i){return t.Ys?.(i)??[]}function As(t,i){return t.ds?.(i)??[]}function Ls(t,i){return t.Ha?.(i)??[]}class zs{constructor(i,s){this.Uv=t({width:0,height:0}),this.km=null,this.Pm=null,this.Tm=null,this.Rm=null,this.Dm=!1,this.Im=new d,this.Vm=new d,this.Bm=0,this.Em=!1,this.Am=null,this.Lm=!1,this.zm=null,this.Om=null,this.Kv=!1,this.Zv=()=>{this.Kv||null===this.Nm||this.ns().dr()},this.Xv=()=>{this.Kv||null===this.Nm||this.ns().dr()},this.Lv=i,this.Nm=s,this.Nm.nu().i(this.Fm.bind(this),this,!0),this.Wm=document.createElement("td"),this.Wm.style.padding="0",this.Wm.style.position="relative";const n=document.createElement("div");n.style.width="100%",n.style.height="100%",n.style.position="relative",n.style.overflow="hidden",this.Hm=document.createElement("td"),this.Hm.style.padding="0",this.Um=document.createElement("td"),this.Um.style.padding="0",this.Wm.appendChild(n),this.sm=ys(n,t({width:16,height:16})),this.sm.subscribeSuggestedBitmapSizeChanged(this.Zv);const e=this.sm.canvasElement;e.style.position="absolute",e.style.zIndex="1",e.style.left="0",e.style.top="0",this.nm=ys(n,t({width:16,height:16})),this.nm.subscribeSuggestedBitmapSizeChanged(this.Xv);const r=this.nm.canvasElement;r.style.position="absolute",r.style.zIndex="2",r.style.left="0",r.style.top="0",this.Xp=document.createElement("tr"),this.Xp.appendChild(this.Hm),this.Xp.appendChild(this.Wm),this.Xp.appendChild(this.Um),this.$m(),this.$p=new fs(this.nm.canvasElement,this,{dp:()=>null===this.Am&&!this.Lv.N().handleScroll.vertTouchDrag,fp:()=>null===this.Am&&!this.Lv.N().handleScroll.horzTouchDrag})}m(){null!==this.km&&this.km.m(),null!==this.Pm&&this.Pm.m(),this.Tm=null,this.nm.unsubscribeSuggestedBitmapSizeChanged(this.Xv),ks(this.nm.canvasElement),this.nm.dispose(),this.sm.unsubscribeSuggestedBitmapSizeChanged(this.Zv),ks(this.sm.canvasElement),this.sm.dispose(),null!==this.Nm&&(this.Nm.nu().u(this),this.Nm.m()),this.$p.m()}cv(){return u(this.Nm)}qm(t){null!==this.Nm&&this.Nm.nu().u(this),this.Nm=t,null!==this.Nm&&this.Nm.nu().i(zs.prototype.Fm.bind(this),this,!0),this.$m(),this.Lv.Zp().indexOf(this)===this.Lv.Zp().length-1?(this.Tm=this.Tm??new Cs(this.Wm,this.Lv),this.Tm.kt()):(this.Tm?.Ov(),this.Tm=null)}Gv(){return this.Lv}iv(){return this.Xp}$m(){if(null!==this.Nm&&(this.jm(),0!==this.ns().tn().length)){if(null!==this.km){const t=this.Nm.U_();this.km.cs(u(t))}if(null!==this.Pm){const t=this.Nm.q_();this.Pm.cs(u(t))}}}Ym(){null!==this.km&&this.km.kt(),null!==this.Pm&&this.Pm.kt()}E_(){return null!==this.Nm?this.Nm.E_():0}A_(t){this.Nm&&this.Nm.A_(t)}lp(t){if(!this.Nm)return;this.Km();const i=t.localX,s=t.localY;this.Zm(i,s,t)}Pp(t){this.Km(),this.Gm(),this.Zm(t.localX,t.localY,t)}op(t){if(!this.Nm)return;this.Km();const i=t.localX,s=t.localY;this.Zm(i,s,t)}Sp(t){null!==this.Nm&&(this.Km(),this.Xm(t))}ip(t){null!==this.Nm&&this.Jm(this.Vm,t)}Xf(t){this.ip(t)}mp(t){this.Km(),this.Qm(t),this.Zm(t.localX,t.localY,t)}bp(t){null!==this.Nm&&(this.Km(),this.Em=!1,this.tw(t))}Mp(t){null!==this.Nm&&this.Xm(t)}Op(t){if(this.Em=!0,null===this.Am){const i={x:t.localX,y:t.localY};this.iw(i,i,t)}}zp(t){null!==this.Nm&&(this.Km(),this.Nm.Qt().vd(null),this.sw())}nw(){return this.Im}ew(){return this.Vm}Ip(){this.Bm=1,this.ns().dn()}Vp(t,i){if(!this.Lv.N().handleScale.pinch)return;const s=5*(i-this.Bm);this.Bm=i,this.ns().Td(t._t,s)}yp(t){this.Em=!1,this.Lm=null!==this.Am,this.Gm();const i=this.ns().gd();null!==this.Am&&i.It()&&(this.zm={x:i.si(),y:i.ni()},this.Am={x:t.localX,y:t.localY})}pp(t){if(null===this.Nm)return;const i=t.localX,s=t.localY;if(null===this.Am)this.Qm(t);else{this.Lm=!1;const n=u(this.zm),e=n.x+(i-this.Am.x),r=n.y+(s-this.Am.y);this.Zm(e,r,t)}}gp(t){0===this.Gv().N().trackingMode.exitMode&&(this.Lm=!0),this.rw(),this.tw(t)}Qn(t,i){const s=this.Nm;return null===s?null:Di(s,t,i)}hw(i,s){u("left"===s?this.km:this.Pm).dm(t({width:i,height:this.Uv.height}))}sv(){return this.Uv}dm(t){s(this.Uv,t)||(this.Uv=t,this.Kv=!0,this.sm.resizeCanvasElement(t),this.nm.resizeCanvasElement(t),this.Kv=!1,this.Wm.style.width=t.width+"px",this.Wm.style.height=t.height+"px")}aw(){const t=u(this.Nm);t.H_(t.U_()),t.H_(t.q_());for(const i of t.Sl())if(t.Zn(i)){const s=i.Ft();null!==s&&t.H_(s),i.Ws()}for(const i of t.ru())i.Ws()}nv(){return this.sm.bitmapSize}ev(t,i,s,n){const e=this.nv();if(e.width>0&&e.height>0&&(t.drawImage(this.sm.canvasElement,i,s),n)){const n=this.nm.canvasElement;null!==t&&t.drawImage(n,i,s)}}pm(t){if(0===t)return;if(null===this.Nm)return;t>1&&this.aw(),null!==this.km&&this.km.pm(t),null!==this.Pm&&this.Pm.pm(t);const i={colorSpace:this.Lv.N().layout.colorSpace};if(1!==t){this.sm.applySuggestedBitmapSize();const t=n(this.sm,i);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.wm(t)})),this.Nm&&(this.lw(t,Bs),this.ow(t),this.lw(t,Es),this.lw(t,As)))}this.nm.applySuggestedBitmapSize();const s=n(this.nm,i);null!==s&&(s.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this._w(s),this.lw(s,Ls),this.lw(s,As))}uw(){return this.km}cw(){return this.Pm}Mm(t,i){this.lw(t,i)}Fm(){null!==this.Nm&&this.Nm.nu().u(this),this.Nm=null}Xm(t){this.Jm(this.Im,t)}Jm(t,i){const s=i.localX,n=i.localY;t.v()&&t.p(this.ns().Et().wc(s),{x:s,y:n},i)}wm({context:t,bitmapSize:i}){const{width:s,height:n}=i,e=this.ns(),r=e.$(),h=e.Kd();r===h?z(t,0,0,s,n,h):F(t,0,0,s,n,r,h)}ow(t){const i=u(this.Nm),s=i.eu().pr().Tt(i);null!==s&&s.nt(t,!1)}_w(t){this.dw(t,Es,Ts,this.ns().gd())}lw(t,i){const s=u(this.Nm),n=s.Dt(),e=s.ru();for(const s of e)this.dw(t,i,Ps,s);for(const s of n)this.dw(t,i,Ps,s);for(const s of e)this.dw(t,i,Ts,s);for(const s of n)this.dw(t,i,Ts,s)}dw(t,i,s,n){const e=u(this.Nm),r=e.Qt().pd(),h=null!==r&&r.hu===n,a=null!==r&&h&&void 0!==r.au?r.au.ie:void 0;Rs(i,(i=>s(i,t,h,a)),n,e)}jm(){if(null===this.Nm)return;const t=this.Lv,i=this.Nm.U_().N().visible,s=this.Nm.q_().N().visible;i||null===this.km||(this.Hm.removeChild(this.km.iv()),this.km.m(),this.km=null),s||null===this.Pm||(this.Um.removeChild(this.Pm.iv()),this.Pm.m(),this.Pm=null);const n=t.Qt().Nd();i&&null===this.km&&(this.km=new Vs(this,t.N(),n,"left"),this.Hm.appendChild(this.km.iv())),s&&null===this.Pm&&(this.Pm=new Vs(this,t.N(),n,"right"),this.Um.appendChild(this.Pm.iv()))}fw(t){return t.Np&&this.Em||null!==this.Am}Zm(t,i,s){t=Math.max(0,Math.min(t,this.Uv.width-1)),i=Math.max(0,Math.min(i,this.Uv.height-1)),this.ns().Ad(t,i,s,u(this.Nm))}sw(){this.ns().zd()}rw(){this.Lm&&(this.Am=null,this.sw())}iw(t,i,s){this.Am=t,this.Lm=!1,this.Zm(i.x,i.y,s);const n=this.ns().gd();this.zm={x:n.si(),y:n.ni()}}ns(){return this.Lv.Qt()}tw(t){if(!this.Dm)return;const i=this.ns(),s=this.cv();if(i.X_(s,s.Rs()),this.Rm=null,this.Dm=!1,i.Vd(),null!==this.Om){const t=performance.now(),s=i.Et();this.Om.fe(s.Cc(),t),this.Om.Ec(t)||i.vn(this.Om)}}Km(){this.Am=null}Gm(){if(!this.Nm)return;if(this.ns().dn(),document.activeElement!==document.body&&document.activeElement!==document.documentElement)u(document.activeElement).blur();else{const t=document.getSelection();null!==t&&t.removeAllRanges()}!this.Nm.Rs().Gi()&&this.ns().Et().Gi()}Qm(t){if(null===this.Nm)return;const i=this.ns(),s=i.Et();if(s.Gi())return;const n=this.Lv.N(),e=n.handleScroll,r=n.kineticScroll;if((!e.pressedMouseMove||t.Np)&&(!e.horzTouchDrag&&!e.vertTouchDrag||!t.Np))return;const h=this.Nm.Rs(),a=performance.now();if(null!==this.Rm||this.fw(t)||(this.Rm={x:t.clientX,y:t.clientY,cf:a,pw:t.localX,mw:t.localY}),null!==this.Rm&&!this.Dm&&(this.Rm.x!==t.clientX||this.Rm.y!==t.clientY)){if(t.Np&&r.touch||!t.Np&&r.mouse){const t=s.ul();this.Om=new xs(.2/t,7/t,.997,15/t),this.Om.Dv(s.Cc(),this.Rm.cf)}else this.Om=null;h.Gi()||i.Z_(this.Nm,h,t.localY),i.Dd(t.localX),this.Dm=!0}this.Dm&&(h.Gi()||i.G_(this.Nm,h,t.localY),i.Id(t.localX),null!==this.Om&&this.Om.Dv(s.Cc(),a))}}class Os{constructor(i,s,n,e,r){this.xt=!0,this.Uv=t({width:0,height:0}),this.Zv=()=>this.pm(3),this.Jv="left"===i,this.hd=n.Nd,this.Ps=s,this.ww=e,this.gw=r,this.Jp=document.createElement("div"),this.Jp.style.width="25px",this.Jp.style.height="100%",this.Jp.style.overflow="hidden",this.sm=ys(this.Jp,t({width:16,height:16})),this.sm.subscribeSuggestedBitmapSizeChanged(this.Zv)}m(){this.sm.unsubscribeSuggestedBitmapSizeChanged(this.Zv),ks(this.sm.canvasElement),this.sm.dispose()}iv(){return this.Jp}sv(){return this.Uv}dm(t){s(this.Uv,t)||(this.Uv=t,this.sm.resizeCanvasElement(t),this.Jp.style.width=`${t.width}px`,this.Jp.style.height=`${t.height}px`,this.xt=!0)}pm(t){if(t<3&&!this.xt)return;if(0===this.Uv.width||0===this.Uv.height)return;this.xt=!1,this.sm.applySuggestedBitmapSize();const i=n(this.sm,{colorSpace:this.Ps.layout.colorSpace});null!==i&&i.useBitmapCoordinateSpace((t=>{this.wm(t),this.gm(t)}))}nv(){return this.sm.bitmapSize}ev(t,i,s){const n=this.nv();n.width>0&&n.height>0&&t.drawImage(this.sm.canvasElement,i,s)}gm({context:t,bitmapSize:i,horizontalPixelRatio:s,verticalPixelRatio:n}){if(!this.ww())return;t.fillStyle=this.Ps.timeScale.borderColor;const e=Math.floor(this.hd.N().S*s),r=Math.floor(this.hd.N().S*n),h=this.Jv?i.width-e:0;t.fillRect(h,0,e,r)}wm({context:t,bitmapSize:i}){z(t,0,0,i.width,i.height,this.gw())}}function Ns(t){return i=>i.Ka?.(t)??[]}const Fs=Ns("normal"),Ws=Ns("top"),Hs=Ns("bottom");class Us{constructor(i,s){this.Mw=null,this.bw=null,this.M=null,this.Sw=!1,this.Uv=t({width:0,height:0}),this.xw=new d,this.qv=new rt(5),this.Kv=!1,this.Zv=()=>{this.Kv||this.Lv.Qt().dr()},this.Xv=()=>{this.Kv||this.Lv.Qt().dr()},this.Lv=i,this.cu=s,this.Ps=i.N().layout,this.Vv=document.createElement("tr"),this.Cw=document.createElement("td"),this.Cw.style.padding="0",this.yw=document.createElement("td"),this.yw.style.padding="0",this.Jp=document.createElement("td"),this.Jp.style.height="25px",this.Jp.style.padding="0",this.kw=document.createElement("div"),this.kw.style.width="100%",this.kw.style.height="100%",this.kw.style.position="relative",this.kw.style.overflow="hidden",this.Jp.appendChild(this.kw),this.sm=ys(this.kw,t({width:16,height:16})),this.sm.subscribeSuggestedBitmapSizeChanged(this.Zv);const n=this.sm.canvasElement;n.style.position="absolute",n.style.zIndex="1",n.style.left="0",n.style.top="0",this.nm=ys(this.kw,t({width:16,height:16})),this.nm.subscribeSuggestedBitmapSizeChanged(this.Xv);const e=this.nm.canvasElement;e.style.position="absolute",e.style.zIndex="2",e.style.left="0",e.style.top="0",this.Vv.appendChild(this.Cw),this.Vv.appendChild(this.Jp),this.Vv.appendChild(this.yw),this.Pw(),this.Lv.Qt().B_().i(this.Pw.bind(this),this),this.$p=new fs(this.nm.canvasElement,this,{dp:()=>!0,fp:()=>!this.Lv.N().handleScroll.horzTouchDrag})}m(){this.$p.m(),null!==this.Mw&&this.Mw.m(),null!==this.bw&&this.bw.m(),this.nm.unsubscribeSuggestedBitmapSizeChanged(this.Xv),ks(this.nm.canvasElement),this.nm.dispose(),this.sm.unsubscribeSuggestedBitmapSizeChanged(this.Zv),ks(this.sm.canvasElement),this.sm.dispose()}iv(){return this.Vv}Tw(){return this.Mw}Rw(){return this.bw}Pp(t){if(this.Sw)return;this.Sw=!0;const i=this.Lv.Qt();!i.Et().Gi()&&this.Lv.N().handleScale.axisPressedMouseMove.time&&i.Pd(t.localX)}yp(t){this.Pp(t)}Tp(){const t=this.Lv.Qt();!t.Et().Gi()&&this.Sw&&(this.Sw=!1,this.Lv.N().handleScale.axisPressedMouseMove.time&&t.Ed())}mp(t){const i=this.Lv.Qt();!i.Et().Gi()&&this.Lv.N().handleScale.axisPressedMouseMove.time&&i.Bd(t.localX)}pp(t){this.mp(t)}bp(){this.Sw=!1;const t=this.Lv.Qt();t.Et().Gi()&&!this.Lv.N().handleScale.axisPressedMouseMove.time||t.Ed()}gp(){this.bp()}ip(){this.Lv.N().handleScale.axisDoubleClickReset.time&&this.Lv.Qt().wn()}Xf(){this.ip()}lp(){this.Lv.Qt().N().handleScale.axisPressedMouseMove.time&&this.Cm(1)}zp(){this.Cm(0)}sv(){return this.Uv}Dw(){return this.xw}Iw(i,n,e){s(this.Uv,i)||(this.Uv=i,this.Kv=!0,this.sm.resizeCanvasElement(i),this.nm.resizeCanvasElement(i),this.Kv=!1,this.Jp.style.width=`${i.width}px`,this.Jp.style.height=`${i.height}px`,this.xw.p(i)),null!==this.Mw&&this.Mw.dm(t({width:n,height:i.height})),null!==this.bw&&this.bw.dm(t({width:e,height:i.height}))}Vw(){const t=this.Bw();return Math.ceil(t.S+t.C+t.k+t.A+t.I+t.Ew)}kt(){this.Lv.Qt().Et().Vl()}nv(){return this.sm.bitmapSize}ev(t,i,s,n){const e=this.nv();if(e.width>0&&e.height>0&&(t.drawImage(this.sm.canvasElement,i,s),n)){const n=this.nm.canvasElement;t.drawImage(n,i,s)}}pm(t){if(0===t)return;const i={colorSpace:this.Ps.colorSpace};if(1!==t){this.sm.applySuggestedBitmapSize();const s=n(this.sm,i);null!==s&&(s.useBitmapCoordinateSpace((t=>{this.wm(t),this.gm(t),this.Aw(s,Hs)})),this.bm(s),this.Aw(s,Fs)),null!==this.Mw&&this.Mw.pm(t),null!==this.bw&&this.bw.pm(t)}this.nm.applySuggestedBitmapSize();const s=n(this.nm,i);null!==s&&(s.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Lw([...this.Lv.Qt().tn(),this.Lv.Qt().gd()],s),this.Aw(s,Ws))}Aw(t,i){const s=this.Lv.Qt().tn();for(const n of s)Rs(i,(i=>Ps(i,t,!1,void 0)),n,void 0);for(const n of s)Rs(i,(i=>Ts(i,t,!1,void 0)),n,void 0)}wm({context:t,bitmapSize:i}){z(t,0,0,i.width,i.height,this.Lv.Qt().Kd())}gm({context:t,bitmapSize:i,verticalPixelRatio:s}){if(this.Lv.N().timeScale.borderVisible){t.fillStyle=this.zw();const n=Math.max(1,Math.floor(this.Bw().S*s));t.fillRect(0,0,i.width,n)}}bm(t){const i=this.Lv.Qt().Et(),s=i.Vl();if(!s||0===s.length)return;const n=this.cu.maxTickMarkWeight(s),e=this.Bw(),r=i.N();r.borderVisible&&r.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:i,verticalPixelRatio:n})=>{t.strokeStyle=this.zw(),t.fillStyle=this.zw();const r=Math.max(1,Math.floor(i)),h=Math.floor(.5*i);t.beginPath();const a=Math.round(e.C*n);for(let n=s.length;n--;){const e=Math.round(s[n].coord*i);t.rect(e-h,0,r,a)}t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{const i=e.S+e.C+e.A+e.k/2;t.textAlign="center",t.textBaseline="middle",t.fillStyle=this.H(),t.font=this._m();for(const e of s)if(e.weight<n){const s=e.needAlignCoordinate?this.Ow(t,e.coord,e.label):e.coord;t.fillText(e.label,s,i)}this.Lv.N().timeScale.allowBoldLabels&&(t.font=this.Nw());for(const e of s)if(e.weight>=n){const s=e.needAlignCoordinate?this.Ow(t,e.coord,e.label):e.coord;t.fillText(e.label,s,i)}}))}Ow(t,i,s){const n=this.qv.Ii(t,s),e=n/2,r=Math.floor(i-e)+.5;return r<0?i+=Math.abs(0-r):r+n>this.Uv.width&&(i-=Math.abs(this.Uv.width-(r+n))),i}Lw(t,i){const s=this.Bw();for(const n of t)for(const t of n.fs())t.Tt().nt(i,s)}zw(){return this.Lv.N().timeScale.borderColor}H(){return this.Ps.textColor}F(){return this.Ps.fontSize}_m(){return x(this.F(),this.Ps.fontFamily)}Nw(){return x(this.F(),this.Ps.fontFamily,"bold")}Bw(){null===this.M&&(this.M={S:1,L:NaN,A:NaN,I:NaN,ts:NaN,C:5,k:NaN,P:"",Qi:new rt,Ew:0});const t=this.M,i=this._m();if(t.P!==i){const s=this.F();t.k=s,t.P=i,t.A=3*s/12,t.I=3*s/12,t.ts=9*s/12,t.L=0,t.Ew=4*s/12,t.Qi.On()}return this.M}Cm(t){this.Jp.style.cursor=1===t?"ew-resize":"default"}Pw(){const t=this.Lv.Qt(),i=t.N();i.leftPriceScale.visible||null===this.Mw||(this.Cw.removeChild(this.Mw.iv()),this.Mw.m(),this.Mw=null),i.rightPriceScale.visible||null===this.bw||(this.yw.removeChild(this.bw.iv()),this.bw.m(),this.bw=null);const s={Nd:this.Lv.Qt().Nd()},n=()=>i.leftPriceScale.borderVisible&&t.Et().N().borderVisible,e=()=>t.Kd();i.leftPriceScale.visible&&null===this.Mw&&(this.Mw=new Os("left",i,s,n,e),this.Cw.appendChild(this.Mw.iv())),i.rightPriceScale.visible&&null===this.bw&&(this.bw=new Os("right",i,s,n,e),this.yw.appendChild(this.bw.iv()))}}const $s=!!os&&!!navigator.userAgentData&&navigator.userAgentData.brands.some((t=>t.brand.includes("Chromium")))&&!!os&&(navigator?.userAgentData?.platform?"Windows"===navigator.userAgentData.platform:navigator.userAgent.toLowerCase().indexOf("win")>=0);class qs{constructor(t,i,s){var n;this.Fw=[],this.Ww=[],this.Hw=0,this.eo=0,this.S_=0,this.Uw=0,this.$w=0,this.qw=null,this.jw=!1,this.Im=new d,this.Vm=new d,this.nd=new d,this.Yw=null,this.Kw=null,this.Av=t,this.Ps=i,this.cu=s,this.Vv=document.createElement("div"),this.Vv.classList.add("tv-lightweight-charts"),this.Vv.style.overflow="hidden",this.Vv.style.direction="ltr",this.Vv.style.width="100%",this.Vv.style.height="100%",(n=this.Vv).style.userSelect="none",n.style.webkitUserSelect="none",n.style.msUserSelect="none",n.style.MozUserSelect="none",n.style.webkitTapHighlightColor="transparent",this.Zw=document.createElement("table"),this.Zw.setAttribute("cellspacing","0"),this.Vv.appendChild(this.Zw),this.Gw=this.Xw.bind(this),js(this.Ps)&&this.Jw(!0),this.ns=new Ui(this.rd.bind(this),this.Ps,s),this.Qt().Md().i(this.Qw.bind(this),this),this.tg=new Us(this,this.cu),this.Zw.appendChild(this.tg.iv());const e=i.autoSize&&this.ig();let r=this.Ps.width,h=this.Ps.height;if(e||0===r||0===h){const i=t.getBoundingClientRect();r=r||i.width,h=h||i.height}this.sg(r,h),this.ng(),t.appendChild(this.Vv),this.eg(),this.ns.Et().Oc().i(this.ns.Ca.bind(this.ns),this),this.ns.B_().i(this.ns.Ca.bind(this.ns),this)}Qt(){return this.ns}N(){return this.Ps}Zp(){return this.Fw}rg(){return this.tg}m(){this.Jw(!1),0!==this.Hw&&window.cancelAnimationFrame(this.Hw),this.ns.Md().u(this),this.ns.Et().Oc().u(this),this.ns.B_().u(this),this.ns.m();for(const t of this.Fw)this.Zw.removeChild(t.iv()),t.nw().u(this),t.ew().u(this),t.m();this.Fw=[];for(const t of this.Ww)this.hg(t);this.Ww=[],u(this.tg).m(),null!==this.Vv.parentElement&&this.Vv.parentElement.removeChild(this.Vv),this.nd.m(),this.Im.m(),this.Vm.m(),this.ag()}sg(i,s,n=!1){if(this.eo===s&&this.S_===i)return;const e=function(i){const s=Math.floor(i.width),n=Math.floor(i.height);return t({width:s-s%2,height:n-n%2})}(t({width:i,height:s}));this.eo=e.height,this.S_=e.width;const r=this.eo+"px",h=this.S_+"px";u(this.Vv).style.height=r,u(this.Vv).style.width=h,this.Zw.style.height=r,this.Zw.style.width=h,n?this.lg(X.yn(),performance.now()):this.ns.Ca()}pm(t){void 0===t&&(t=X.yn());for(let i=0;i<this.Fw.length;i++)this.Fw[i].pm(t.un(i).an);this.Ps.timeScale.visible&&this.tg.pm(t._n())}cr(t){const i=js(this.Ps);this.ns.cr(t);const s=js(this.Ps);s!==i&&this.Jw(s),t.layout?.panes&&this.og(),this.eg(),this._g(t)}nw(){return this.Im}ew(){return this.Vm}Md(){return this.nd}ug(t=!1){null!==this.qw&&(this.lg(this.qw,performance.now()),this.qw=null);const i=this.cg(null),s=document.createElement("canvas");s.width=i.width,s.height=i.height;const n=u(s.getContext("2d"));return this.cg(n,t),s}dg(t){if("left"===t&&!this.fg())return 0;if("right"===t&&!this.pg())return 0;if(0===this.Fw.length)return 0;return u("left"===t?this.Fw[0].uw():this.Fw[0].cw()).fm()}vg(){return this.Ps.autoSize&&null!==this.Yw}hv(){return this.Vv}mg(t){this.Kw=t,this.Kw?this.hv().style.setProperty("cursor",t):this.hv().style.removeProperty("cursor")}wg(){return this.Kw}gg(t){return _(this.Fw[t]).sv()}og(){this.Ww.forEach((t=>{t.kt()}))}_g(t){(void 0!==t.autoSize||!this.Yw||void 0===t.width&&void 0===t.height)&&(t.autoSize&&!this.Yw&&this.ig(),!1===t.autoSize&&null!==this.Yw&&this.ag(),t.autoSize||void 0===t.width&&void 0===t.height||this.sg(t.width||this.S_,t.height||this.eo))}cg(i,s){let n=0,e=0;const r=this.Fw[0],h=(t,n)=>{let e=0;for(let r=0;r<this.Fw.length;r++){const h=this.Fw[r],a=u("left"===t?h.uw():h.cw()),l=a.nv();if(null!==i&&a.ev(i,n,e,s),e+=l.height,r<this.Fw.length-1){const t=this.Ww[r],s=t.nv();null!==i&&t.ev(i,n,e),e+=s.height}}};if(this.fg()){h("left",0);n+=u(r.uw()).nv().width}for(let t=0;t<this.Fw.length;t++){const r=this.Fw[t],h=r.nv();if(null!==i&&r.ev(i,n,e,s),e+=h.height,t<this.Fw.length-1){const s=this.Ww[t],r=s.nv();null!==i&&s.ev(i,n,e),e+=r.height}}if(n+=r.nv().width,this.pg()){h("right",n);n+=u(r.cw()).nv().width}const a=(t,s,n)=>{u("left"===t?this.tg.Tw():this.tg.Rw()).ev(u(i),s,n)};if(this.Ps.timeScale.visible){const t=this.tg.nv();if(null!==i){let n=0;this.fg()&&(a("left",n,e),n=u(r.uw()).nv().width),this.tg.ev(i,n,e,s),n+=t.width,this.pg()&&a("right",n,e)}e+=t.height}return t({width:n,height:e})}Mg(){let i=0,s=0,n=0;for(const t of this.Fw)this.fg()&&(s=Math.max(s,u(t.uw()).om(),this.Ps.leftPriceScale.minimumWidth)),this.pg()&&(n=Math.max(n,u(t.cw()).om(),this.Ps.rightPriceScale.minimumWidth)),i+=t.E_();s=cs(s),n=cs(n);const e=this.S_,r=this.eo,h=Math.max(e-s-n,0),a=1*this.Ww.length,l=this.Ps.timeScale.visible;let o=l?Math.max(this.tg.Vw(),this.Ps.timeScale.minimumHeight):0;var _;o=(_=o)+_%2;const c=a+o,d=r<c?0:r-c,f=d/i;let p=0;const v=window.devicePixelRatio||1;for(let i=0;i<this.Fw.length;++i){const e=this.Fw[i];e.qm(this.ns.Xs()[i]);let r=0,a=0;a=i===this.Fw.length-1?Math.ceil((d-p)*v)/v:Math.round(e.E_()*f*v)/v,r=Math.max(a,2),p+=r,e.dm(t({width:h,height:r})),this.fg()&&e.hw(s,"left"),this.pg()&&e.hw(n,"right"),e.cv()&&this.ns.bd(e.cv(),r)}this.tg.Iw(t({width:l?h:0,height:o}),l?s:0,l?n:0),this.ns.L_(h),this.Uw!==s&&(this.Uw=s),this.$w!==n&&(this.$w=n)}Jw(t){t?this.Vv.addEventListener("wheel",this.Gw,{passive:!1}):this.Vv.removeEventListener("wheel",this.Gw)}bg(t){switch(t.deltaMode){case t.DOM_DELTA_PAGE:return 120;case t.DOM_DELTA_LINE:return 32}return $s?1/window.devicePixelRatio:1}Xw(t){if(!(0!==t.deltaX&&this.Ps.handleScroll.mouseWheel||0!==t.deltaY&&this.Ps.handleScale.mouseWheel))return;const i=this.bg(t),s=i*t.deltaX/100,n=-i*t.deltaY/100;if(t.cancelable&&t.preventDefault(),0!==n&&this.Ps.handleScale.mouseWheel){const i=Math.sign(n)*Math.min(1,Math.abs(n)),s=t.clientX-this.Vv.getBoundingClientRect().left;this.Qt().Td(s,i)}0!==s&&this.Ps.handleScroll.mouseWheel&&this.Qt().Rd(-80*s)}lg(t,i){const s=t._n();3===s&&this.Sg(),3!==s&&2!==s||(this.xg(t),this.Cg(t,i),this.tg.kt(),this.Fw.forEach((t=>{t.Ym()})),3===this.qw?._n()&&(this.qw.Sn(t),this.Sg(),this.xg(this.qw),this.Cg(this.qw,i),t=this.qw,this.qw=null)),this.pm(t)}Cg(t,i){for(const s of t.bn())this.xn(s,i)}xg(t){const i=this.ns.Xs();for(let s=0;s<i.length;s++)t.un(s).ln&&i[s].tu()}xn(t,i){const s=this.ns.Et();switch(t.fn){case 0:s.Fc();break;case 1:s.Wc(t.Wt);break;case 2:s.gn(t.Wt);break;case 3:s.Mn(t.Wt);break;case 4:s.Pc();break;case 5:t.Wt.Ec(i)||s.Mn(t.Wt.Ac(i))}}rd(t){null!==this.qw?this.qw.Sn(t):this.qw=t,this.jw||(this.jw=!0,this.Hw=window.requestAnimationFrame((t=>{if(this.jw=!1,this.Hw=0,null!==this.qw){const i=this.qw;this.qw=null,this.lg(i,t);for(const s of i.bn())if(5===s.fn&&!s.Wt.Ec(t)){this.Qt().vn(s.Wt);break}}})))}Sg(){this.ng()}hg(t){this.Zw.removeChild(t.iv()),t.m()}ng(){const t=this.ns.Xs(),i=t.length,s=this.Fw.length;for(let t=i;t<s;t++){const t=_(this.Fw.pop());this.Zw.removeChild(t.iv()),t.nw().u(this),t.ew().u(this),t.m();const i=this.Ww.pop();void 0!==i&&this.hg(i)}for(let n=s;n<i;n++){const i=new zs(this,t[n]);if(i.nw().i(this.yg.bind(this,i),this),i.ew().i(this.kg.bind(this,i),this),this.Fw.push(i),n>0){const t=new Ms(this,n-1,n);this.Ww.push(t),this.Zw.insertBefore(t.iv(),this.tg.iv())}this.Zw.insertBefore(i.iv(),this.tg.iv())}for(let s=0;s<i;s++){const i=t[s],n=this.Fw[s];n.cv()!==i?n.qm(i):n.$m()}this.eg(),this.Mg()}Pg(t,i,s,n){const e=new Map;if(null!==t){this.ns.tn().forEach((i=>{const s=i.qs().$s(t);null!==s&&e.set(i,s)}))}let r;if(null!==t){const i=this.ns.Et().es(t)?.originalTime;void 0!==i&&(r=i)}const h=this.Qt().pd(),a=null!==h&&h.hu instanceof Jt?h.hu:void 0,l=null!==h&&void 0!==h.au?h.au.te:void 0,o=this.Tg(n);return{Gr:r,js:t??void 0,Rg:i??void 0,Dg:-1!==o?o:void 0,Ig:a,Vg:e,Bg:l,Eg:s??void 0}}Tg(t){let i=-1;if(t)i=this.Fw.indexOf(t);else{const t=this.Qt().gd().Gs();null!==t&&(i=this.Qt().Xs().indexOf(t))}return i}yg(t,i,s,n){this.Im.p((()=>this.Pg(i,s,n,t)))}kg(t,i,s,n){this.Vm.p((()=>this.Pg(i,s,n,t)))}Qw(t,i,s){this.mg(this.Qt().pd()?.ou??null),this.nd.p((()=>this.Pg(t,i,s)))}eg(){const t=this.Ps.timeScale.visible?"":"none";this.tg.iv().style.display=t}fg(){return this.Fw[0].cv().U_().N().visible}pg(){return this.Fw[0].cv().q_().N().visible}ig(){return"ResizeObserver"in window&&(this.Yw=new ResizeObserver((t=>{const i=t[t.length-1];i&&this.sg(i.contentRect.width,i.contentRect.height)})),this.Yw.observe(this.Av,{box:"border-box"}),!0)}ag(){null!==this.Yw&&this.Yw.disconnect(),this.Yw=null}}function js(t){return Boolean(t.handleScroll.mouseWheel||t.handleScale.mouseWheel)}function Ys(t){return void 0===t.open&&void 0===t.value}function Ks(t){return function(t){return void 0!==t.open}(t)||function(t){return void 0!==t.value}(t)}function Zs(t,i,s,n){const e=s.value,r={js:i,wt:t,Wt:[e,e,e,e],Gr:n};return void 0!==s.color&&(r.R=s.color),r}function Gs(t,i,s,n){const e=s.value,r={js:i,wt:t,Wt:[e,e,e,e],Gr:n};return void 0!==s.lineColor&&(r.vt=s.lineColor),void 0!==s.topColor&&(r.eh=s.topColor),void 0!==s.bottomColor&&(r.rh=s.bottomColor),r}function Xs(t,i,s,n){const e=s.value,r={js:i,wt:t,Wt:[e,e,e,e],Gr:n};return void 0!==s.topLineColor&&(r.hh=s.topLineColor),void 0!==s.bottomLineColor&&(r.ah=s.bottomLineColor),void 0!==s.topFillColor1&&(r.oh=s.topFillColor1),void 0!==s.topFillColor2&&(r._h=s.topFillColor2),void 0!==s.bottomFillColor1&&(r.uh=s.bottomFillColor1),void 0!==s.bottomFillColor2&&(r.dh=s.bottomFillColor2),r}function Js(t,i,s,n){const e={js:i,wt:t,Wt:[s.open,s.high,s.low,s.close],Gr:n};return void 0!==s.color&&(e.R=s.color),e}function Qs(t,i,s,n){const e={js:i,wt:t,Wt:[s.open,s.high,s.low,s.close],Gr:n};return void 0!==s.color&&(e.R=s.color),void 0!==s.borderColor&&(e.Ht=s.borderColor),void 0!==s.wickColor&&(e.nh=s.wickColor),e}function tn(t,i,s,n,e){const r=_(e)(s),h=Math.max(...r),a=Math.min(...r),l=r[r.length-1],o=[l,h,a,l],{time:u,color:c,...d}=s;return{js:i,wt:t,Wt:o,Gr:n,le:d,R:c}}function sn(t){return void 0!==t.Wt}function nn(t,i){return void 0!==i.customValues&&(t.Ag=i.customValues),t}function en(t){return(i,s,n,e,r,h)=>function(t,i){return i?i(t):Ys(t)}(n,h)?nn({wt:i,js:s,Gr:e},n):nn(t(i,s,n,e,r),n)}function rn(t){return{Candlestick:en(Qs),Bar:en(Js),Area:en(Gs),Baseline:en(Xs),Histogram:en(Zs),Line:en(Zs),Custom:en(tn)}[t]}function hn(t){return{js:0,Lg:new Map,Ea:t}}function an(t,i){if(void 0!==t&&0!==t.length)return{zg:i.key(t[0].wt),Og:i.key(t[t.length-1].wt)}}function ln(t){let i;return t.forEach((t=>{void 0===i&&(i=t.Gr)})),_(i)}class on{constructor(t){this.Ng=new Map,this.Fg=new Map,this.Wg=new Map,this.Hg=[],this.cu=t}m(){this.Ng.clear(),this.Fg.clear(),this.Wg.clear(),this.Hg=[]}Ug(t,i){let s=0!==this.Ng.size,n=!1;const e=this.Fg.get(t);if(void 0!==e)if(1===this.Fg.size)s=!1,n=!0,this.Ng.clear();else for(const i of this.Hg)i.pointData.Lg.delete(t)&&(n=!0);let r=[];if(0!==i.length){const s=i.map((t=>t.time)),e=this.cu.createConverterToInternalObj(i),h=rn(t.wh()),a=t.rl(),l=t.hl();r=i.map(((i,r)=>{const o=e(i.time),_=this.cu.key(o);let u=this.Ng.get(_);void 0===u&&(u=hn(o),this.Ng.set(_,u),n=!0);const c=h(o,u.js,i,s[r],a,l);return u.Lg.set(t,c),c}))}s&&this.$g(),this.qg(t,r);let h=-1;if(n){const t=[];this.Ng.forEach((i=>{t.push({timeWeight:0,time:i.Ea,pointData:i,originalTime:ln(i.Lg)})})),t.sort(((t,i)=>this.cu.key(t.time)-this.cu.key(i.time))),h=this.jg(t)}return this.Yg(t,h,function(t,i,s){const n=an(t,s),e=an(i,s);if(void 0!==n&&void 0!==e)return{Kg:!1,Ta:n.Og>=e.Og&&n.zg>=e.zg}}(this.Fg.get(t),e,this.cu))}Hd(t){return this.Ug(t,[])}Zg(t,i,s){if(s&&t.La())throw new Error("Historical updates are not supported when conflation is enabled. Conflation requires data to be processed in order.");const n=i;!function(t){void 0===t.Gr&&(t.Gr=t.time)}(n),this.cu.preprocessData(i);const e=this.cu.createConverterToInternalObj([i])(i.time),r=this.Wg.get(t);if(!s&&void 0!==r&&this.cu.key(e)<this.cu.key(r))throw new Error(`Cannot update oldest data, last time=${r}, new time=${e}`);let h=this.Ng.get(this.cu.key(e));if(s&&void 0===h)throw new Error("Cannot update non-existing data point when historicalUpdate is true");const a=void 0===h;void 0===h&&(h=hn(e),this.Ng.set(this.cu.key(e),h));const l=rn(t.wh()),o=t.rl(),_=t.hl(),u=l(e,h.js,i,n.Gr,o,_),c=!s&&!a&&void 0!==r&&this.cu.key(e)===this.cu.key(r);h.Lg.set(t,u),s?this.Gg(t,u,h.js):c&&t.La()&&sn(u)?(t.kr(u),this.Xg(t,u)):this.Xg(t,u);const d={Ta:sn(u),Kg:s};if(!a)return this.Yg(t,-1,d);const f={timeWeight:0,time:h.Ea,pointData:h,originalTime:ln(h.Lg)},p=Rt(this.Hg,this.cu.key(f.time),((t,i)=>this.cu.key(t.time)<i));this.Hg.splice(p,0,f);for(let t=p;t<this.Hg.length;++t)_n(this.Hg[t].pointData,t);return this.cu.fillWeightsForPoints(this.Hg,p),this.Yg(t,p,d)}Jg(t,i){const s=this.Fg.get(t);if(void 0===s||i<=0)return[[],this.Qg()];i=Math.min(i,s.length);const n=s.splice(-i).reverse();0===s.length?this.Wg.delete(t):this.Wg.set(t,s[s.length-1].wt);for(const i of n){const s=this.Ng.get(this.cu.key(i.wt));if(s&&(s.Lg.delete(t),0===s.Lg.size)){this.Ng.delete(this.cu.key(s.Ea)),this.Hg.splice(s.js,1);for(let t=s.js;t<this.Hg.length;++t)_n(this.Hg[t].pointData,t)}}return[n,this.Yg(t,this.Hg.length-1,{Kg:!1,Ta:!1})]}Xg(t,i){let s=this.Fg.get(t);void 0===s&&(s=[],this.Fg.set(t,s));const n=0!==s.length?s[s.length-1]:null;null===n||this.cu.key(i.wt)>this.cu.key(n.wt)?sn(i)&&s.push(i):sn(i)?s[s.length-1]=i:s.splice(-1,1),this.Wg.set(t,i.wt)}Gg(t,i,s){const n=this.Fg.get(t);if(void 0===n)return;const e=Rt(n,s,((t,i)=>t.js<i));sn(i)?n[e]=i:n.splice(e,1)}qg(t,i){0!==i.length?(this.Fg.set(t,i.filter(sn)),this.Wg.set(t,i[i.length-1].wt)):(this.Fg.delete(t),this.Wg.delete(t))}$g(){for(const t of this.Hg)0===t.pointData.Lg.size&&this.Ng.delete(this.cu.key(t.time))}jg(t){let i=-1;for(let s=0;s<this.Hg.length&&s<t.length;++s){const n=this.Hg[s],e=t[s];if(this.cu.key(n.time)!==this.cu.key(e.time)){i=s;break}e.timeWeight=n.timeWeight,_n(e.pointData,s)}if(-1===i&&this.Hg.length!==t.length&&(i=Math.min(this.Hg.length,t.length)),-1===i)return-1;for(let s=i;s<t.length;++s)_n(t[s].pointData,s);return this.cu.fillWeightsForPoints(t,i),this.Hg=t,i}tM(){if(0===this.Fg.size)return null;let t=0;return this.Fg.forEach((i=>{0!==i.length&&(t=Math.max(t,i[i.length-1].js))})),t}Yg(t,i,s){const n=this.Qg();if(-1!==i)this.Fg.forEach(((i,e)=>{n.F_.set(e,{le:i,iM:e===t?s:void 0})})),this.Fg.has(t)||n.F_.set(t,{le:[],iM:s}),n.Et.sM=this.Hg,n.Et.nM=i;else{const i=this.Fg.get(t);n.F_.set(t,{le:i||[],iM:s})}return n}Qg(){return{F_:new Map,Et:{vc:this.tM()}}}}function _n(t,i){t.js=i,t.Lg.forEach((t=>{t.js=i}))}function un(t,i){return t.wt<i}function cn(t,i){return i<t.wt}function dn(t,i,s){const n=i.Aa(),e=i.bi(),r=Rt(t,n,un),h=Dt(t,e,cn);if(!s)return{from:r,to:h};let a=r,l=h;return r>0&&r<t.length&&t[r].wt>=n&&(a=r-1),h>0&&h<t.length&&t[h-1].wt<=e&&(l=h+1),{from:a,to:l}}class fn{constructor(t,i,s){this.eM=!0,this.rM=!0,this.hM=!0,this.aM=[],this.lM=null,this.oM=-1,this.ee=t,this.re=i,this._M=s}kt(t){this.eM=!0,"data"===t&&(this.rM=!0),"options"===t&&(this.hM=!0)}Tt(){return this.ee.It()?(this.uM(),null===this.lM?null:this.cM):null}dM(){this.aM=this.aM.map((t=>({...t,...this.ee.ga().gh(t.wt)})))}fM(){this.lM=null}uM(){const t=this.re.Et(),i=t.N().enableConflation?t.Hc():0;i!==this.oM&&(this.rM=!0,this.oM=i),this.rM&&(this.pM(),this.rM=!1),this.hM&&(this.dM(),this.hM=!1),this.eM&&(this.vM(),this.eM=!1)}vM(){const t=this.ee.Ft(),i=this.re.Et();if(this.fM(),i.Gi()||t.Gi())return;const s=i.Ie();if(null===s)return;if(0===this.ee.qs().yh())return;const n=this.ee.Lt();null!==n&&(this.lM=dn(this.aM,s,this._M),this.mM(t,i,n.Wt),this.wM())}}class pn{constructor(t,i){this.gM=t,this.Ki=i}nt(t,i,s){this.gM.draw(t,this.Ki,i,s)}}class vn extends fn{constructor(t,i,s){super(t,i,!1),this.$h=s,this.cM=new pn(this.$h.renderer(),(i=>{const s=t.Lt();return null===s?null:t.Ft().Nt(i,s.Wt)}))}get ma(){return this.$h.conflationReducer}Oa(t){return this.$h.priceValueBuilder(t)}al(t){return this.$h.isWhitespace(t)}pM(){const t=this.ee.ga();this.aM=this.ee.Na().Dh().map((i=>({wt:i.js,_t:NaN,...t.gh(i.js),MM:i.le})))}mM(t,i){i.mc(this.aM,b(this.lM))}wM(){this.$h.update({bars:this.aM.map(mn),barSpacing:this.re.Et().ul(),visibleRange:this.lM,conflationFactor:this.re.Et().Hc()},this.ee.N())}}function mn(t){return{x:t._t,time:t.wt,originalData:t.MM,barColor:t.th}}const wn={color:"#2196f3"},gn=(t,i,s)=>{const n=c(s);return new vn(t,i,n)};function Mn(t){const i={value:t.Wt[3],time:t.Gr};return void 0!==t.Ag&&(i.customValues=t.Ag),i}function bn(t){const i=Mn(t);return void 0!==t.R&&(i.color=t.R),i}function Sn(t){const i=Mn(t);return void 0!==t.vt&&(i.lineColor=t.vt),void 0!==t.eh&&(i.topColor=t.eh),void 0!==t.rh&&(i.bottomColor=t.rh),i}function xn(t){const i=Mn(t);return void 0!==t.hh&&(i.topLineColor=t.hh),void 0!==t.ah&&(i.bottomLineColor=t.ah),void 0!==t.oh&&(i.topFillColor1=t.oh),void 0!==t._h&&(i.topFillColor2=t._h),void 0!==t.uh&&(i.bottomFillColor1=t.uh),void 0!==t.dh&&(i.bottomFillColor2=t.dh),i}function Cn(t){const i={open:t.Wt[0],high:t.Wt[1],low:t.Wt[2],close:t.Wt[3],time:t.Gr};return void 0!==t.Ag&&(i.customValues=t.Ag),i}function yn(t){const i=Cn(t);return void 0!==t.R&&(i.color=t.R),i}function kn(t){const i=Cn(t),{R:s,Ht:n,nh:e}=t;return void 0!==s&&(i.color=s),void 0!==n&&(i.borderColor=n),void 0!==e&&(i.wickColor=e),i}function Pn(t){return{Area:Sn,Line:bn,Baseline:xn,Histogram:bn,Bar:yn,Candlestick:kn,Custom:Tn}[t]}function Tn(t){const i=t.Gr;return{...t.le,time:i}}const Rn={vertLine:{color:"#9598A1",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#131722"},horzLine:{color:"#9598A1",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:"#131722"},mode:1,doNotSnapToHiddenSeriesIndices:!1},Dn={vertLines:{color:"#D6DCDE",style:0,visible:!0},horzLines:{color:"#D6DCDE",style:0,visible:!0}},In={background:{type:"solid",color:"#FFFFFF"},textColor:"#191919",fontSize:12,fontFamily:S,panes:{enableResize:!0,separatorColor:"#E0E3EB",separatorHoverColor:"rgba(178, 181, 189, 0.2)"},attributionLogo:!0,colorSpace:"srgb",colorParsers:[]},Vn={autoScale:!0,mode:0,invertScale:!1,alignLabels:!0,borderVisible:!0,borderColor:"#2B2B43",entireTextOnly:!1,visible:!1,ticksVisible:!1,scaleMargins:{bottom:.1,top:.2},minimumWidth:0,ensureEdgeTickMarksVisible:!1},Bn={rightOffset:0,barSpacing:6,minBarSpacing:.5,maxBarSpacing:0,fixLeftEdge:!1,fixRightEdge:!1,lockVisibleTimeRangeOnResize:!1,rightBarStaysOnScroll:!1,borderVisible:!0,borderColor:"#2B2B43",visible:!0,timeVisible:!1,secondsVisible:!0,shiftVisibleRangeOnNewBar:!0,allowShiftVisibleRangeOnWhitespaceReplacement:!1,ticksVisible:!1,uniformDistribution:!1,minimumHeight:0,allowBoldLabels:!0,ignoreWhitespaceIndices:!1,enableConflation:!1,conflationThresholdFactor:1,precomputeConflationOnInit:!1,precomputeConflationPriority:"background"};function En(){return{addDefaultPane:!0,width:0,height:0,autoSize:!1,layout:In,crosshair:Rn,grid:Dn,overlayPriceScales:{...Vn},leftPriceScale:{...Vn,visible:!1},rightPriceScale:{...Vn,visible:!0},timeScale:Bn,localization:{locale:os?navigator.language:"",dateFormat:"dd MMM 'yy"},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0},handleScale:{axisPressedMouseMove:{time:!0,price:!0},axisDoubleClickReset:{time:!0,price:!0},mouseWheel:!0,pinch:!0},kineticScroll:{mouse:!1,touch:!0},trackingMode:{exitMode:1}}}class An{constructor(t,i,s){this.Yp=t,this.bM=i,this.SM=s??0}applyOptions(t){this.Yp.Qt().md(this.bM,t,this.SM)}options(){return this.Ki().N()}width(){return G(this.bM)?this.Yp.dg(this.bM):0}setVisibleRange(t){this.setAutoScale(!1),this.Ki().$o(new mt(t.from,t.to))}getVisibleRange(){let t,i,s=this.Ki().er();if(null===s)return null;if(this.Ki().io()){const n=this.Ki().m_(),e=$i(n);s=vi(s,this.Ki().no()),t=Number((Math.round(s.Ze()/n)*n).toFixed(e)),i=Number((Math.round(s.Ge()/n)*n).toFixed(e))}else t=s.Ze(),i=s.Ge();return{from:t,to:i}}setAutoScale(t){this.applyOptions({autoScale:t})}Ki(){return u(this.Yp.Qt().wd(this.bM,this.SM)).Ft}}class Ln{constructor(t,i,s,n){this.Yp=t,this.yt=s,this.xM=i,this.CM=n}getHeight(){return this.yt.$t()}setHeight(t){const i=this.Yp.Qt(),s=i.Gd(this.yt);i.xd(s,t)}getStretchFactor(){return this.yt.E_()}setStretchFactor(t){this.yt.A_(t),this.Yp.Qt().Ca()}paneIndex(){return this.Yp.Qt().Gd(this.yt)}moveTo(t){const i=this.paneIndex();i!==t&&(o(t>=0&&t<this.Yp.Zp().length,"Invalid pane index"),this.Yp.Qt().yd(i,t))}getSeries(){return this.yt.F_().map((t=>this.xM(t)))??[]}getHTMLElement(){const t=this.Yp.Zp();return t&&0!==t.length&&t[this.paneIndex()]?t[this.paneIndex()].iv():null}attachPrimitive(t){this.yt.nl(t),t.attached&&t.attached({chart:this.CM,requestUpdate:()=>this.yt.Qt().Ca()})}detachPrimitive(t){this.yt.el(t)}priceScale(t){if(null===this.yt.V_(t))throw new Error(`Cannot find price scale with id: ${t}`);return new An(this.Yp,t,this.paneIndex())}setPreserveEmptyPane(t){this.yt.O_(t)}preserveEmptyPane(){return this.yt.N_()}addCustomSeries(t,i={},s=0){return this.CM.addCustomSeries(t,i,s)}addSeries(t,i={}){return this.CM.addSeries(t,i,this.paneIndex())}}const zn={color:"#FF0000",price:0,lineStyle:2,lineWidth:1,lineVisible:!0,axisLabelVisible:!0,title:"",axisLabelColor:"",axisLabelTextColor:""};class On{constructor(t){this.hr=t}applyOptions(t){this.hr.cr(t)}options(){return this.hr.N()}yM(){return this.hr}}class Nn{constructor(t,i,s,n,e,r){this.kM=new d,this.ee=t,this.PM=i,this.TM=s,this.cu=e,this.CM=n,this.RM=r}m(){this.kM.m()}priceFormatter(){return this.ee.Xa()}priceToCoordinate(t){const i=this.ee.Lt();return null===i?null:this.ee.Ft().Nt(t,i.Wt)}coordinateToPrice(t){const i=this.ee.Lt();return null===i?null:this.ee.Ft().Ds(t,i.Wt)}barsInLogicalRange(t){if(null===t)return null;const i=new Ai(new Vi(t.from,t.to)).Ru(),s=this.ee.qs();if(s.Gi())return null;const n=s.$s(i.Aa(),1),e=s.$s(i.bi(),-1),r=u(s.kh()),h=u(s.sn());if(null!==n&&null!==e&&n.js>e.js)return{barsBefore:t.from-r,barsAfter:h-t.to};const a={barsBefore:null===n||n.js===r?t.from-r:n.js-r,barsAfter:null===e||e.js===h?h-t.to:h-e.js};return null!==n&&null!==e&&(a.from=n.Gr,a.to=e.Gr),a}setData(t){this.cu,this.ee.wh(),this.PM.DM(this.ee,t),this.IM("full")}update(t,i=!1){this.ee.wh(),this.PM.VM(this.ee,t,i),this.IM("update")}pop(t=1){const i=this.PM.BM(this.ee,t);0!==i.length&&this.IM("update");const s=Pn(this.seriesType());return i.map((t=>s(t)))}dataByIndex(t,i){const s=this.ee.qs().$s(t,i);if(null===s)return null;return Pn(this.seriesType())(s)}data(){const t=Pn(this.seriesType());return this.ee.qs().Dh().map((i=>t(i)))}subscribeDataChanged(t){this.kM.i(t)}unsubscribeDataChanged(t){this.kM._(t)}applyOptions(t){this.ee.cr(t)}options(){return g(this.ee.N())}priceScale(){return this.TM.priceScale(this.ee.Ft().ol(),this.getPane().paneIndex())}createPriceLine(t){const i=f(g(zn),t),s=this.ee.Da(i);return new On(s)}removePriceLine(t){this.ee.Ia(t.yM())}priceLines(){return this.ee.Va().map((t=>new On(t)))}seriesType(){return this.ee.wh()}lastValueData(t){const i=this.ee.Ve(t);return i.Be?{noData:!0}:{noData:!1,price:i.gt,color:i.R}}attachPrimitive(t){this.ee.nl(t),t.attached&&t.attached({chart:this.CM,series:this,requestUpdate:()=>this.ee.Qt().Ca(),horzScaleBehavior:this.cu})}detachPrimitive(t){this.ee.el(t),t.detached&&t.detached(),this.ee.Qt().Ca()}getPane(){const t=this.ee,i=u(this.ee.Qt().Kn(t));return this.RM(i)}moveToPane(t){this.ee.Qt().jd(this.ee,t)}seriesOrder(){const t=this.ee.Qt().Kn(this.ee);return null===t?-1:t.F_().indexOf(this.ee)}setSeriesOrder(t){const i=this.ee.Qt().Kn(this.ee);null!==i&&i.su(this.ee,t)}IM(t){this.kM.v()&&this.kM.p(t)}}class Fn{constructor(t,i,s){this.EM=new d,this.Nu=new d,this.xw=new d,this.ns=t,this.Jh=t.Et(),this.tg=i,this.Jh.Lc().i(this.AM.bind(this)),this.Jh.zc().i(this.LM.bind(this)),this.tg.Dw().i(this.zM.bind(this)),this.cu=s}m(){this.Jh.Lc().u(this),this.Jh.zc().u(this),this.tg.Dw().u(this),this.EM.m(),this.Nu.m(),this.xw.m()}scrollPosition(){return this.Jh.Cc()}scrollToPosition(t,i){i?this.Jh.Bc(t,1e3):this.ns.Mn(t)}scrollToRealTime(){this.Jh.Vc()}getVisibleRange(){const t=this.Jh.lc();return null===t?null:{from:t.from.originalTime,to:t.to.originalTime}}setVisibleRange(t){const i={from:this.cu.convertHorzItemToInternal(t.from),to:this.cu.convertHorzItemToInternal(t.to)},s=this.Jh.cc(i);this.ns.$d(s)}getVisibleLogicalRange(){const t=this.Jh.ac();return null===t?null:{from:t.Aa(),to:t.bi()}}setVisibleLogicalRange(t){o(t.from<=t.to,"The from index cannot be after the to index."),this.ns.$d(t)}resetTimeScale(){this.ns.wn()}fitContent(){this.ns.Fc()}logicalToCoordinate(t){const i=this.ns.Et();return i.Gi()?null:i.qt(t)}coordinateToLogical(t){return this.Jh.Gi()?null:this.Jh.wc(t)}timeToIndex(t,i){const s=this.cu.convertHorzItemToInternal(t);return this.Jh.ec(s,i)}timeToCoordinate(t){const i=this.timeToIndex(t,!1);return null===i?null:this.Jh.qt(i)}coordinateToTime(t){const i=this.ns.Et(),s=i.wc(t),n=i.es(s);return null===n?null:n.originalTime}width(){return this.tg.sv().width}height(){return this.tg.sv().height}subscribeVisibleTimeRangeChange(t){this.EM.i(t)}unsubscribeVisibleTimeRangeChange(t){this.EM._(t)}subscribeVisibleLogicalRangeChange(t){this.Nu.i(t)}unsubscribeVisibleLogicalRangeChange(t){this.Nu._(t)}subscribeSizeChange(t){this.xw.i(t)}unsubscribeSizeChange(t){this.xw._(t)}applyOptions(t){this.Jh.cr(t)}options(){return{...g(this.Jh.N()),barSpacing:this.Jh.ul()}}AM(){this.EM.v()&&this.EM.p(this.getVisibleRange())}LM(){this.Nu.v()&&this.Nu.p(this.getVisibleLogicalRange())}zM(t){this.xw.p(t.width,t.height)}}function Wn(t){return function(t){if(w(t.handleScale)){const i=t.handleScale;t.handleScale={axisDoubleClickReset:{time:i,price:i},axisPressedMouseMove:{time:i,price:i},mouseWheel:i,pinch:i}}else if(void 0!==t.handleScale){const{axisPressedMouseMove:i,axisDoubleClickReset:s}=t.handleScale;w(i)&&(t.handleScale.axisPressedMouseMove={time:i,price:i}),w(s)&&(t.handleScale.axisDoubleClickReset={time:s,price:s})}const i=t.handleScroll;w(i)&&(t.handleScroll={horzTouchDrag:i,vertTouchDrag:i,mouseWheel:i,pressedMouseMove:i})}(t),t}class Hn{constructor(t,i,s){this.OM=new Map,this.NM=new Map,this.FM=new d,this.WM=new d,this.HM=new d,this.Xc=new WeakMap,this.UM=new on(i);const n=void 0===s?g(En()):f(g(En()),Wn(s));this.$M=i,this.Yp=new qs(t,n,i),this.Yp.nw().i((t=>{this.FM.v()&&this.FM.p(this.qM(t()))}),this),this.Yp.ew().i((t=>{this.WM.v()&&this.WM.p(this.qM(t()))}),this),this.Yp.Md().i((t=>{this.HM.v()&&this.HM.p(this.qM(t()))}),this);const e=this.Yp.Qt();this.jM=new Fn(e,this.Yp.rg(),this.$M)}remove(){this.Yp.nw().u(this),this.Yp.ew().u(this),this.Yp.Md().u(this),this.jM.m(),this.Yp.m(),this.OM.clear(),this.NM.clear(),this.FM.m(),this.WM.m(),this.HM.m(),this.UM.m()}resize(t,i,s){this.autoSizeActive()||this.Yp.sg(t,i,s)}addCustomSeries(t,i={},s=0){const n=(t=>({type:"Custom",isBuiltIn:!1,defaultOptions:{...wn,...t.defaultOptions()},YM:gn,KM:t}))(c(t));return this.ZM(n,i,s)}addSeries(t,i={},s=0){return this.ZM(t,i,s)}removeSeries(t){const i=_(this.OM.get(t)),s=this.UM.Hd(i);this.Yp.Qt().Hd(i),this.GM(s),this.OM.delete(t),this.NM.delete(i)}DM(t,i){this.GM(this.UM.Ug(t,i))}VM(t,i,s){this.GM(this.UM.Zg(t,i,s))}BM(t,i){const[s,n]=this.UM.Jg(t,i);return 0!==s.length&&this.GM(n),s}subscribeClick(t){this.FM.i(t)}unsubscribeClick(t){this.FM._(t)}subscribeCrosshairMove(t){this.HM.i(t)}unsubscribeCrosshairMove(t){this.HM._(t)}subscribeDblClick(t){this.WM.i(t)}unsubscribeDblClick(t){this.WM._(t)}priceScale(t,i=0){return new An(this.Yp,t,i)}timeScale(){return this.jM}applyOptions(t){this.Yp.cr(Wn(t))}options(){return this.Yp.N()}takeScreenshot(t=!1,i=!1){let s,n;try{i||(s=this.Yp.Qt().N().crosshair.mode,this.Yp.cr({crosshair:{mode:2}})),n=this.Yp.ug(t)}finally{i||void 0===s||this.Yp.Qt().cr({crosshair:{mode:s}})}return n}addPane(t=!1){const i=this.Yp.Qt().Xd();return i.O_(t),this.XM(i)}removePane(t){this.Yp.Qt().Sd(t)}swapPanes(t,i){this.Yp.Qt().Cd(t,i)}autoSizeActive(){return this.Yp.vg()}chartElement(){return this.Yp.hv()}panes(){return this.Yp.Qt().Xs().map((t=>this.XM(t)))}paneSize(t=0){const i=this.Yp.gg(t);return{height:i.height,width:i.width}}setCrosshairPosition(t,i,s){const n=this.OM.get(s);if(void 0===n)return;const e=this.Yp.Qt().Kn(n);null!==e&&this.Yp.Qt().Ld(t,i,e)}clearCrosshairPosition(){this.Yp.Qt().zd(!0)}horzBehaviour(){return this.$M}ZM(t,i={},s=0){o(void 0!==t.YM),function(t){if(void 0===t||"custom"===t.type)return;const i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=$i(i.minMove))}(i.priceFormat),"Candlestick"===t.type&&function(t){void 0!==t.borderColor&&(t.borderUpColor=t.borderColor,t.borderDownColor=t.borderColor),void 0!==t.wickColor&&(t.wickUpColor=t.wickColor,t.wickDownColor=t.wickColor)}(i);const n=f(g(e),g(t.defaultOptions),i),r=t.YM,h=new Jt(this.Yp.Qt(),t.type,n,r,t.KM);this.Yp.Qt().Fd(h,s);const a=new Nn(h,this,this,this,this.$M,(t=>this.XM(t)));return this.OM.set(a,h),this.NM.set(h,a),a}GM(t){const i=this.Yp.Qt();i.Od(t.Et.vc,t.Et.sM,t.Et.nM),t.F_.forEach(((t,i)=>i.ht(t.le,t.iM))),i.Et().Ju(),i.Sc()}JM(t){return _(this.NM.get(t))}qM(t){const i=new Map;t.Vg.forEach(((t,s)=>{const n=s.wh(),e=Pn(n)(t);if("Custom"!==n)o(Ks(e));else{const t=s.hl();o(!t||!1===t(e))}i.set(this.JM(s),e)}));const s=void 0!==t.Ig&&this.NM.has(t.Ig)?this.JM(t.Ig):void 0;return{time:t.Gr,logical:t.js,point:t.Rg,paneIndex:t.Dg,hoveredSeries:s,hoveredObjectId:t.Bg,seriesData:i,sourceEvent:t.Eg}}XM(t){let i=this.Xc.get(t);return i||(i=new Ln(this.Yp,(t=>this.JM(t)),t,this),this.Xc.set(t,i)),i}}function Un(t){if(m(t)){const i=document.getElementById(t);return o(null!==i,`Cannot find element in DOM with id=${t}`),i}return t}function $n(t,i,s){const n=Un(t),e=new Hn(n,i,s);return i.setOptions(e.options()),e}function qn(t,i){return $n(t,new ls,ls.pf(i))}function jn(){return ls}class Yn extends fn{constructor(t,i){super(t,i,!0)}mM(t,i,s){i.mc(this.aM,b(this.lM)),t.Yo(this.aM,s,b(this.lM))}QM(t,i){return{wt:t,gt:i,_t:NaN,ut:NaN}}pM(){const t=this.ee.ga();this.aM=this.ee.Na().Dh().map((i=>{let s;if((i.jr??1)>1){const t=i.Wt[1],n=i.Wt[2],e=i.Wt[3];s=Math.abs(t-e)>Math.abs(n-e)?t:n}else s=i.Wt[3];return this.tb(i.js,s,t)}))}}function Kn(t,i,s,n,e,r,h){if(0===i.length||n.from>=i.length||n.to<=0)return;const{context:a,horizontalPixelRatio:l,verticalPixelRatio:o}=t,_=i[n.from];let u=r(t,_),c=_;if(n.to-n.from<2){const i=e/2;a.beginPath();const s={_t:_._t-i,ut:_.ut},n={_t:_._t+i,ut:_.ut};a.moveTo(s._t*l,s.ut*o),a.lineTo(n._t*l,n.ut*o),h(t,u,s,n)}else{const e=(i,s)=>{h(t,u,c,s),a.beginPath(),u=i,c=s};let d=c;a.beginPath(),a.moveTo(_._t*l,_.ut*o);for(let h=n.from+1;h<n.to;++h){d=i[h];const n=r(t,d);switch(s){case 0:a.lineTo(d._t*l,d.ut*o);break;case 1:a.lineTo(d._t*l,i[h-1].ut*o),n!==u&&(e(n,d),a.lineTo(d._t*l,i[h-1].ut*o)),a.lineTo(d._t*l,d.ut*o);break;case 2:{const[t,s]=Jn(i,h-1,h);a.bezierCurveTo(t._t*l,t.ut*o,s._t*l,s.ut*o,d._t*l,d.ut*o);break}}1!==s&&n!==u&&(e(n,d),a.moveTo(d._t*l,d.ut*o))}(c!==d||c===d&&1===s)&&h(t,u,c,d)}}const Zn=6;function Gn(t,i){return{_t:t._t-i._t,ut:t.ut-i.ut}}function Xn(t,i){return{_t:t._t/i,ut:t.ut/i}}function Jn(t,i,s){const n=Math.max(0,i-1),e=Math.min(t.length-1,s+1);var r,h;return[(r=t[i],h=Xn(Gn(t[s],t[n]),Zn),{_t:r._t+h._t,ut:r.ut+h.ut}),Gn(t[s],Xn(Gn(t[e],t[i]),Zn))]}function Qn(t,i){const s=t.context;s.strokeStyle=i,s.stroke()}class te extends R{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et(t){if(null===this.rt)return;const{ot:i,lt:s,ib:n,sb:e,ct:r,Zt:h,nb:l}=this.rt;if(null===s)return;const o=t.context;o.lineCap="butt",o.lineWidth=r*t.verticalPixelRatio,a(o,h),o.lineJoin="round";const _=this.eb.bind(this);void 0!==e&&Kn(t,i,e,s,n,_,Qn),l&&function(t,i,s,n,e){if(n.to-n.from<=0)return;const{horizontalPixelRatio:r,verticalPixelRatio:h,context:a}=t;let l=null;const o=Math.max(1,Math.floor(r))%2/2,_=s*h+o;for(let s=n.to-1;s>=n.from;--s){const n=i[s];if(n){const i=e(t,n);i!==l&&(a.beginPath(),null!==l&&a.fill(),a.fillStyle=i,l=i);const s=Math.round(n._t*r)+o,u=n.ut*h;a.moveTo(s,u),a.arc(s,u,_,0,2*Math.PI)}}a.fill()}(t,i,l,s,_)}}class ie extends te{eb(t,i){return i.vt}}class se extends Yn{constructor(){super(...arguments),this.cM=new ie}tb(t,i,s){return{...this.QM(t,i),...s.gh(t)}}wM(){const t=this.ee.N(),i={ot:this.aM,Zt:t.lineStyle,sb:t.lineVisible?t.lineType:void 0,ct:t.lineWidth,nb:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0,lt:this.lM,ib:this.re.Et().ul()};this.cM.ht(i)}}const ne={type:"Line",isBuiltIn:!0,defaultOptions:{color:"#2196f3",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},YM:(t,i)=>new se(t,i)};function ee(t,i){return t.weight>i.weight?t:i}class re{constructor(){this.rb=new d,this.hb=function(t){let i=!1;return function(...s){i||(i=!0,queueMicrotask((()=>{t(...s),i=!1})))}}((()=>this.rb.p(this.ab))),this.ab=0}lb(){return this.rb}m(){this.rb.m()}options(){return this.Ps}setOptions(t){this.Ps=t}preprocessData(t){}updateFormatter(t){this.Ps&&(this.Ps.localization=t)}createConverterToInternalObj(t){return this.hb(),t=>(t>this.ab&&(this.ab=t),t)}key(t){return t}cacheKey(t){return t}convertHorzItemToInternal(t){return t}formatHorzItem(t){return this.ob(t)}formatTickmark(t){return this.ob(t.time)}maxTickMarkWeight(t){return t.reduce(ee,t[0]).weight}fillWeightsForPoints(t,i){for(let n=i;n<t.length;++n)t[n].timeWeight=(s=t[n].time)%120==0?10:s%60==0?9:s%36==0?8:s%12==0?7:s%6==0?6:s%3==0?5:s%1==0?4:0;var s;this.ab=t[t.length-1].time,this.hb()}ob(t){if(this.Ps.localization?.timeFormatter)return this.Ps.localization.timeFormatter(t);if(t<12)return`${t}M`;const i=Math.floor(t/12),s=t%12;return 0===s?`${i}Y`:`${i}Y${s}M`}}const he={yieldCurve:{baseResolution:1,minimumTimeRange:120,startTimeRange:0},timeScale:{ignoreWhitespaceIndices:!0},leftPriceScale:{visible:!0},rightPriceScale:{visible:!1},localization:{priceFormatter:t=>t.toFixed(3)+"%"}},ae={lastValueVisible:!1,priceLineVisible:!1};class le extends Hn{constructor(t,i){const s=f(he,i||{}),n=new re;super(t,n,s),n.setOptions(this.options()),this._initWhitespaceSeries()}addSeries(t,i={},s=0){if(t.isBuiltIn&&!1===["Area","Line"].includes(t.type))throw new Error("Yield curve only support Area and Line series");const n={...ae,...i};return super.addSeries(t,n,s)}_initWhitespaceSeries(){const t=this.horzBehaviour(),i=this.addSeries(ne);let s;function n(n){const e=function(t,i){return{fe:Math.max(0,t.startTimeRange),pe:Math.max(0,t.minimumTimeRange,i||0),_b:Math.max(1,t.baseResolution)}}(t.options().yieldCurve,n),r=(({fe:t,pe:i,_b:s})=>`${t}~${i}~${s}`)(e);r!==s&&(s=r,i.setData(function({fe:t,pe:i,_b:s}){return Array.from({length:Math.floor((i-t)/s)+1},((i,n)=>({time:t+n*s})))}(e)))}n(0),t.lb().i(n)}}function oe(t,i){const s=Un(t);return new le(s,i)}function _e(t,i){return t.weight>i.weight?t:i}class ue{options(){return this.Ps}setOptions(t){this.Ps=t}preprocessData(t){}updateFormatter(t){this.Ps&&(this.Ps.localization=t)}createConverterToInternalObj(t){return t=>t}key(t){return t}cacheKey(t){return t}convertHorzItemToInternal(t){return t}formatHorzItem(t){return t.toFixed(this.Dn())}formatTickmark(t,i){return t.time.toFixed(this.Dn())}maxTickMarkWeight(t){return t.reduce(_e,t[0]).weight}fillWeightsForPoints(t,i){for(let n=i;n<t.length;++n)t[n].timeWeight=(s=t[n].time)===100*Math.ceil(s/100)?8:s===50*Math.ceil(s/50)?7:s===25*Math.ceil(s/25)?6:s===10*Math.ceil(s/10)?5:s===5*Math.ceil(s/5)?4:s===Math.ceil(s)?3:2*s===Math.ceil(2*s)?1:0;var s}Dn(){return this.Ps.localization.precision}}function ce(t,i){return $n(t,new ue,i)}function de(t,i,s,n,e){const{context:r,horizontalPixelRatio:h,verticalPixelRatio:a}=i;r.lineTo(e._t*h,t*a),r.lineTo(n._t*h,t*a),r.closePath(),r.fillStyle=s,r.fill()}class fe extends R{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et(t){if(null===this.rt)return;const{ot:i,lt:s,ib:n,ct:e,Zt:r,sb:h}=this.rt,l=this.rt.ub??(this.rt.cb?0:t.mediaSize.height);if(null===s)return;const o=t.context;o.lineCap="butt",o.lineJoin="round",o.lineWidth=e,a(o,r),o.lineWidth=1,Kn(t,i,h,s,n,this.fb.bind(this),de.bind(null,l))}}class pe{pb(t,i){const s=this.mb,{wb:n,gb:e,Mb:r,bb:h,ub:a,Sb:l,xb:o}=i;if(void 0===this.Cb||void 0===s||s.wb!==n||s.gb!==e||s.Mb!==r||s.bb!==h||s.ub!==a||s.Sb!==l||s.xb!==o){const{verticalPixelRatio:s}=t,_=a||l>0?s:1,u=l*_,c=o===t.bitmapSize.height?o:o*_,d=(a??0)*_,f=t.context.createLinearGradient(0,u,0,c);if(f.addColorStop(0,n),null!=a){const t=si((d-u)/(c-u),0,1);f.addColorStop(t,e),f.addColorStop(t,r)}f.addColorStop(1,h),this.Cb=f,this.mb=i}return this.Cb}}class ve extends fe{constructor(){super(...arguments),this.yb=new pe}fb(t,i){const s=this.rt;return this.yb.pb(t,{wb:i.oh,gb:i._h,Mb:i.uh,bb:i.dh,ub:s.ub,Sb:s.Sb??0,xb:s.xb??t.bitmapSize.height})}}class me extends te{constructor(){super(...arguments),this.kb=new pe}eb(t,i){const s=this.rt;return this.kb.pb(t,{wb:i.hh,gb:i.hh,Mb:i.ah,bb:i.ah,ub:s.ub,Sb:s.Sb??0,xb:s.xb??t.bitmapSize.height})}}class we extends Yn{constructor(t,i){super(t,i),this.cM=new T,this.Pb=new ve,this.Tb=new me,this.cM.st([this.Pb,this.Tb])}tb(t,i,s){return{...this.QM(t,i),...s.gh(t)}}wM(){const t=this.ee.Lt();if(null===t)return;const i=this.ee.N(),s=this.ee.Ft().Nt(i.baseValue.price,t.Wt),n=this.re.Et().ul();if(null===this.lM||0===this.aM.length)return;let e,r;if(i.relativeGradient){e=this.aM[this.lM.from].ut,r=this.aM[this.lM.from].ut;for(let t=this.lM.from;t<this.lM.to;t++){const i=this.aM[t];i.ut<e&&(e=i.ut),i.ut>r&&(r=i.ut)}}this.Pb.ht({ot:this.aM,ct:i.lineWidth,Zt:i.lineStyle,sb:i.lineType,ub:s,Sb:e,xb:r,cb:!1,lt:this.lM,ib:n}),this.Tb.ht({ot:this.aM,ct:i.lineWidth,Zt:i.lineStyle,sb:i.lineVisible?i.lineType:void 0,nb:i.pointMarkersVisible?i.pointMarkersRadius||i.lineWidth/2+2:void 0,ub:s,Sb:e,xb:r,lt:this.lM,ib:n})}}const ge={type:"Baseline",isBuiltIn:!0,defaultOptions:{baseValue:{type:"price",price:0},relativeGradient:!1,topFillColor1:"rgba(38, 166, 154, 0.28)",topFillColor2:"rgba(38, 166, 154, 0.05)",topLineColor:"rgba(38, 166, 154, 1)",bottomFillColor1:"rgba(239, 83, 80, 0.05)",bottomFillColor2:"rgba(239, 83, 80, 0.28)",bottomLineColor:"rgba(239, 83, 80, 1)",lineWidth:3,lineStyle:0,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},YM:(t,i)=>new we(t,i)};class Me extends fe{constructor(){super(...arguments),this.yb=new pe}fb(t,i){return this.yb.pb(t,{wb:i.eh,gb:"",Mb:"",bb:i.rh,Sb:this.rt?.Sb??0,xb:t.bitmapSize.height})}}class be extends Yn{constructor(t,i){super(t,i),this.cM=new T,this.Rb=new Me,this.Db=new ie,this.cM.st([this.Rb,this.Db])}tb(t,i,s){return{...this.QM(t,i),...s.gh(t)}}wM(){const t=this.ee.N();if(null===this.lM||0===this.aM.length)return;let i;if(t.relativeGradient){i=this.aM[this.lM.from].ut;for(let t=this.lM.from;t<this.lM.to;t++){const s=this.aM[t];s.ut<i&&(i=s.ut)}}this.Rb.ht({sb:t.lineType,ot:this.aM,Zt:t.lineStyle,ct:t.lineWidth,ub:null,Sb:i,cb:t.invertFilledArea,lt:this.lM,ib:this.re.Et().ul()}),this.Db.ht({sb:t.lineVisible?t.lineType:void 0,ot:this.aM,Zt:t.lineStyle,ct:t.lineWidth,lt:this.lM,ib:this.re.Et().ul(),nb:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0})}}const Se={type:"Area",isBuiltIn:!0,defaultOptions:{topColor:"rgba( 46, 220, 135, 0.4)",bottomColor:"rgba( 40, 221, 100, 0)",invertFilledArea:!1,relativeGradient:!1,lineColor:"#33D778",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:"",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:"",lastPriceAnimation:0,pointMarkersVisible:!1},YM:(t,i)=>new be(t,i)};class xe extends R{constructor(){super(...arguments),this.jt=null,this.Ib=0,this.Vb=0}ht(t){this.jt=t}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){if(null===this.jt||0===this.jt.qs.length||null===this.jt.lt)return;if(this.Ib=this.Bb(i),this.Ib>=2){Math.max(1,Math.floor(i))%2!=this.Ib%2&&this.Ib--}this.Vb=this.jt.Eb?Math.min(this.Ib,Math.floor(i)):this.Ib;let n=null;const e=this.Vb<=this.Ib&&this.jt.ul>=Math.floor(1.5*i);for(let r=this.jt.lt.from;r<this.jt.lt.to;++r){const h=this.jt.qs[r];n!==h.th&&(t.fillStyle=h.th,n=h.th);const a=Math.floor(.5*this.Vb),l=Math.round(h._t*i),o=l-a,_=this.Vb,u=o+_-1,c=Math.min(h.Xo,h.Jo),d=Math.max(h.Xo,h.Jo),f=Math.round(c*s)-a,p=Math.round(d*s)+a,v=Math.max(p-f,this.Vb);t.fillRect(o,f,_,v);const m=Math.ceil(1.5*this.Ib);if(e){if(this.jt.Ab){const i=l-m;let n=Math.max(f,Math.round(h.Go*s)-a),e=n+_-1;e>f+v-1&&(e=f+v-1,n=e-_+1),t.fillRect(i,n,o-i,e-n+1)}const i=l+m;let n=Math.max(f,Math.round(h.Qo*s)-a),e=n+_-1;e>f+v-1&&(e=f+v-1,n=e-_+1),t.fillRect(u+1,n,i-u,e-n+1)}}}Bb(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(t,i){return Math.floor(.3*t*i)}(u(this.jt).ul,t)))}}class Ce extends fn{constructor(t,i){super(t,i,!1)}mM(t,i,s){i.mc(this.aM,b(this.lM)),t.Zo(this.aM,s,b(this.lM))}Lb(t,i,s){return{wt:t,Hr:i.Wt[0],Ur:i.Wt[1],$r:i.Wt[2],qr:i.Wt[3],_t:NaN,Go:NaN,Xo:NaN,Jo:NaN,Qo:NaN}}pM(){const t=this.ee.ga();this.aM=this.ee.Na().Dh().map((i=>this.tb(i.js,i,t)))}}class ye extends Ce{constructor(){super(...arguments),this.cM=new xe}tb(t,i,s){return{...this.Lb(t,i,s),...s.gh(t)}}wM(){const t=this.ee.N();this.cM.ht({qs:this.aM,ul:this.re.Et().ul(),Ab:t.openVisible,Eb:t.thinBars,lt:this.lM})}}const ke={type:"Bar",isBuiltIn:!0,defaultOptions:{upColor:"#26a69a",downColor:"#ef5350",openVisible:!0,thinBars:!0},YM:(t,i)=>new ye(t,i)};class Pe extends R{constructor(){super(...arguments),this.jt=null,this.Ib=0}ht(t){this.jt=t}et(t){if(null===this.jt||0===this.jt.qs.length||null===this.jt.lt)return;const{horizontalPixelRatio:i}=t;if(this.Ib=function(t,i){if(t>=2.5&&t<=4)return Math.floor(3*i);const s=1-.2*Math.atan(Math.max(4,t)-4)/(.5*Math.PI),n=Math.floor(t*s*i),e=Math.floor(t*i),r=Math.min(n,e);return Math.max(Math.floor(i),r)}(this.jt.ul,i),this.Ib>=2){Math.floor(i)%2!=this.Ib%2&&this.Ib--}const s=this.jt.qs;this.jt.zb&&this.Ob(t,s,this.jt.lt),this.jt.Mi&&this.gm(t,s,this.jt.lt);const n=this.Nb(i);(!this.jt.Mi||this.Ib>2*n)&&this.Fb(t,s,this.jt.lt)}Ob(t,i,s){if(null===this.jt)return;const{context:n,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h="",a=Math.min(Math.floor(e),Math.floor(this.jt.ul*e));a=Math.max(Math.floor(e),Math.min(a,this.Ib));const l=Math.floor(.5*a);let o=null;for(let t=s.from;t<s.to;t++){const s=i[t];s.sh!==h&&(n.fillStyle=s.sh,h=s.sh);const _=Math.round(Math.min(s.Go,s.Qo)*r),u=Math.round(Math.max(s.Go,s.Qo)*r),c=Math.round(s.Xo*r),d=Math.round(s.Jo*r);let f=Math.round(e*s._t)-l;const p=f+a-1;null!==o&&(f=Math.max(o+1,f),f=Math.min(f,p));const v=p-f+1;n.fillRect(f,c,v,_-c),n.fillRect(f,u+1,v,d-u),o=p}}Nb(t){let i=Math.floor(1*t);this.Ib<=2*i&&(i=Math.floor(.5*(this.Ib-1)));const s=Math.max(Math.floor(t),i);return this.Ib<=2*s?Math.max(Math.floor(t),Math.floor(1*t)):s}gm(t,i,s){if(null===this.jt)return;const{context:n,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h="";const a=this.Nb(e);let l=null;for(let t=s.from;t<s.to;t++){const s=i[t];s.ih!==h&&(n.fillStyle=s.ih,h=s.ih);let o=Math.round(s._t*e)-Math.floor(.5*this.Ib);const _=o+this.Ib-1,u=Math.round(Math.min(s.Go,s.Qo)*r),c=Math.round(Math.max(s.Go,s.Qo)*r);if(null!==l&&(o=Math.max(l+1,o),o=Math.min(o,_)),this.jt.ul*e>2*a)L(n,o,u,_-o+1,c-u+1,a);else{const t=_-o+1;n.fillRect(o,u,t,c-u+1)}l=_}}Fb(t,i,s){if(null===this.jt)return;const{context:n,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h="";const a=this.Nb(e);for(let t=s.from;t<s.to;t++){const s=i[t];let l=Math.round(Math.min(s.Go,s.Qo)*r),o=Math.round(Math.max(s.Go,s.Qo)*r),_=Math.round(s._t*e)-Math.floor(.5*this.Ib),u=_+this.Ib-1;if(s.th!==h){const t=s.th;n.fillStyle=t,h=t}this.jt.Mi&&(_+=a,l+=a,u-=a,o-=a),l>o||n.fillRect(_,l,u-_+1,o-l+1)}}}class Te extends Ce{constructor(){super(...arguments),this.cM=new Pe}tb(t,i,s){return{...this.Lb(t,i,s),...s.gh(t)}}wM(){const t=this.ee.N();this.cM.ht({qs:this.aM,ul:this.re.Et().ul(),zb:t.wickVisible,Mi:t.borderVisible,lt:this.lM})}}const Re={type:"Candlestick",isBuiltIn:!0,defaultOptions:{upColor:"#26a69a",downColor:"#ef5350",wickVisible:!0,borderVisible:!0,borderColor:"#378658",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickColor:"#737375",wickUpColor:"#26a69a",wickDownColor:"#ef5350"},YM:(t,i)=>new Te(t,i)};class De extends R{constructor(){super(...arguments),this.jt=null,this.Wb=[]}ht(t){this.jt=t,this.Wb=[]}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){if(null===this.jt||0===this.jt.ot.length||null===this.jt.lt)return;this.Wb.length||this.Hb(i);const n=Math.max(1,Math.floor(s)),e=Math.round(this.jt.Ub*s)-Math.floor(n/2),r=e+n;for(let i=this.jt.lt.from;i<this.jt.lt.to;i++){const h=this.jt.ot[i],a=this.Wb[i-this.jt.lt.from],l=Math.round(h.ut*s);let o,_;t.fillStyle=h.th,l<=e?(o=l,_=r):(o=e,_=l-Math.floor(n/2)+n),t.fillRect(a.Aa,o,a.bi-a.Aa+1,_-o)}}Hb(t){if(null===this.jt||0===this.jt.ot.length||null===this.jt.lt)return void(this.Wb=[]);const i=Math.ceil(this.jt.ul*t)<=1?0:Math.max(1,Math.floor(t)),s=Math.round(this.jt.ul*t)-i;this.Wb=new Array(this.jt.lt.to-this.jt.lt.from);for(let i=this.jt.lt.from;i<this.jt.lt.to;i++){const n=this.jt.ot[i],e=Math.round(n._t*t);let r,h;if(s%2){const t=(s-1)/2;r=e-t,h=e+t}else{const t=s/2;r=e-t,h=e+t-1}this.Wb[i-this.jt.lt.from]={Aa:r,bi:h,$b:e,oe:n._t*t,wt:n.wt}}for(let t=this.jt.lt.from+1;t<this.jt.lt.to;t++){const s=this.Wb[t-this.jt.lt.from],n=this.Wb[t-this.jt.lt.from-1];s.wt===n.wt+1&&(s.Aa-n.bi!==i+1&&(n.$b>n.oe?n.bi=s.Aa-i-1:s.Aa=n.bi+i+1))}let n=Math.ceil(this.jt.ul*t);for(let t=this.jt.lt.from;t<this.jt.lt.to;t++){const i=this.Wb[t-this.jt.lt.from];i.bi<i.Aa&&(i.bi=i.Aa);const s=i.bi-i.Aa+1;n=Math.min(s,n)}if(i>0&&n<4)for(let t=this.jt.lt.from;t<this.jt.lt.to;t++){const i=this.Wb[t-this.jt.lt.from];i.bi-i.Aa+1>n&&(i.$b>i.oe?i.bi-=1:i.Aa+=1)}}}class Ie extends Yn{constructor(){super(...arguments),this.cM=new De}tb(t,i,s){return{...this.QM(t,i),...s.gh(t)}}wM(){const t={ot:this.aM,ul:this.re.Et().ul(),lt:this.lM,Ub:this.ee.Ft().Nt(this.ee.N().base,u(this.ee.Lt()).Wt)};this.cM.ht(t)}}const Ve={type:"Histogram",isBuiltIn:!0,defaultOptions:{color:"#26a69a",base:0},YM:(t,i)=>new Ie(t,i)};class Be{constructor(t,i){this.yt=t,this.qb=i,this.jb()}detach(){this.yt.detachPrimitive(this.qb)}getPane(){return this.yt}applyOptions(t){this.qb.cr?.(t)}jb(){this.yt.attachPrimitive(this.qb)}}const Ee={visible:!0,horzAlign:"center",vertAlign:"center",lines:[]},Ae={color:"rgba(0, 0, 0, 0.5)",fontSize:48,fontFamily:S,fontStyle:"",text:""};class Le{constructor(t){this.Yb=new Map,this.jt=t}draw(t){t.useMediaCoordinateSpace((t=>{if(!this.jt.visible)return;const{context:i,mediaSize:s}=t;let n=0;for(const t of this.jt.lines){if(0===t.text.length)continue;i.font=t.P;const e=this.Kb(i,t.text);e>s.width?t.Rc=s.width/e:t.Rc=1,n+=t.lineHeight*t.Rc}let e=0;switch(this.jt.vertAlign){case"top":e=0;break;case"center":e=Math.max((s.height-n)/2,0);break;case"bottom":e=Math.max(s.height-n,0)}for(const t of this.jt.lines){i.save(),i.fillStyle=t.color;let n=0;switch(this.jt.horzAlign){case"left":i.textAlign="left",n=t.lineHeight/2;break;case"center":i.textAlign="center",n=s.width/2;break;case"right":i.textAlign="right",n=s.width-1-t.lineHeight/2}i.translate(n,e),i.textBaseline="top",i.font=t.P,i.scale(t.Rc,t.Rc),i.fillText(t.text,0,t.Zb),i.restore(),e+=t.lineHeight*t.Rc}}))}Kb(t,i){const s=this.Gb(t.font);let n=s.get(i);return void 0===n&&(n=t.measureText(i).width,s.set(i,n)),n}Gb(t){let i=this.Yb.get(t);return void 0===i&&(i=new Map,this.Yb.set(t,i)),i}}class ze{constructor(t){this.Ps=Ne(t)}kt(t){this.Ps=Ne(t)}renderer(){return new Le(this.Ps)}}function Oe(t){return{...t,P:x(t.fontSize,t.fontFamily,t.fontStyle),lineHeight:t.lineHeight||1.2*t.fontSize,Zb:0,Rc:0}}function Ne(t){return{...t,lines:t.lines.map(Oe)}}function Fe(t){return{...Ae,...t}}function We(t){return{...Ee,...t,lines:t.lines?.map(Fe)??[]}}class He{constructor(t){this.Ps=We(t),this.Xb=[new ze(this.Ps)]}updateAllViews(){this.Xb.forEach((t=>t.kt(this.Ps)))}paneViews(){return this.Xb}attached({requestUpdate:t}){this.Jb=t}detached(){this.Jb=void 0}cr(t){this.Ps=We({...this.Ps,...t}),this.Jb&&this.Jb()}}function Ue(t,i){return new Be(t,new He(i))}const $e={alpha:1,padding:0};class qe{constructor(t){this.jt=t}draw(t){t.useMediaCoordinateSpace((t=>{const i=t.context,s=this.Qb(this.jt,t.mediaSize);s&&this.jt.tS&&(i.globalAlpha=this.jt.alpha??1,i.drawImage(this.jt.tS,s._t,s.ut,s.ss,s.$t))}))}Qb(t,i){const{maxHeight:s,maxWidth:n,iS:e,sS:r,padding:h}=t,a=Math.round(i.width/2),l=Math.round(i.height/2),o=h??0;let _=i.width-2*o,u=i.height-2*o;s&&(u=Math.min(u,s)),n&&(_=Math.min(_,n));const c=_/r,d=u/e,f=Math.min(c,d),p=r*f,v=e*f;return{_t:a-.5*p,ut:l-.5*v,$t:v,ss:p}}}class je{constructor(t){this.nS=null,this.eS=0,this.rS=0,this.Ps=t,this.M=Ye(this.Ps,this.nS,this.eS,this.rS)}hS(t){void 0!==t.aS&&(this.eS=t.aS),void 0!==t.lS&&(this.rS=t.lS),void 0!==t.oS&&(this.nS=t.oS),this.kt()}_S(t){this.Ps=t,this.kt()}zOrder(){return"bottom"}kt(){this.M=Ye(this.Ps,this.nS,this.eS,this.rS)}renderer(){return new qe(this.M)}}function Ye(t,i,s,n){return{...t,tS:i,sS:s,iS:n}}function Ke(t){return{...$e,...t}}class Ze{constructor(t,i){this.uS=null,this.cS=t,this.Ps=Ke(i),this.Xb=[new je(this.Ps)]}updateAllViews(){this.Xb.forEach((t=>t.kt()))}paneViews(){return this.Xb}attached(t){const{requestUpdate:i}=t;this.dS=i,this.uS=new Image,this.uS.onload=()=>{const t=this.uS?.naturalHeight??1,i=this.uS?.naturalWidth??1;this.Xb.forEach((s=>s.hS({lS:t,aS:i,oS:this.uS}))),this.dS&&this.dS()},this.uS.src=this.cS}detached(){this.dS=void 0,this.uS=null}cr(t){this.Ps=Ke({...this.Ps,...t}),this.fS(),this.Jb&&this.Jb()}Jb(){this.dS&&this.dS()}fS(){this.Xb.forEach((t=>t._S(this.Ps)))}}function Ge(t,i,s){return new Be(t,new Ze(i,s))}class Xe{constructor(t,i){this.ee=t,this.Zh=i,this.jb()}detach(){this.ee.detachPrimitive(this.Zh)}getSeries(){return this.ee}applyOptions(t){this.Zh&&this.Zh.cr&&this.Zh.cr(t)}jb(){this.ee.attachPrimitive(this.Zh)}}const Je={autoScale:!0,zOrder:"normal"};function Qe(t,i){return ei(Math.min(Math.max(t,12),30)*i)}function tr(t,i){switch(t){case"arrowDown":case"arrowUp":return Qe(i,1);case"circle":return Qe(i,.8);case"square":return Qe(i,.7)}}function ir(t){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(Qe(t,1))}function sr(t){return Math.max(Qe(t,.1),3)}function nr(t,i,s){return i?t:s?Math.ceil(t/2):0}function er(t,i,s,n){const e=(tr("arrowUp",n)-1)/2*s.pS,r=(ei(n/2)-1)/2*s.pS;i.beginPath(),t?(i.moveTo(s._t-e,s.ut),i.lineTo(s._t,s.ut-e),i.lineTo(s._t+e,s.ut),i.lineTo(s._t+r,s.ut),i.lineTo(s._t+r,s.ut+e),i.lineTo(s._t-r,s.ut+e),i.lineTo(s._t-r,s.ut)):(i.moveTo(s._t-e,s.ut),i.lineTo(s._t,s.ut+e),i.lineTo(s._t+e,s.ut),i.lineTo(s._t+r,s.ut),i.lineTo(s._t+r,s.ut-e),i.lineTo(s._t-r,s.ut-e),i.lineTo(s._t-r,s.ut)),i.fill()}function rr(t,i,s,n,e,r){const h=(tr("arrowUp",n)-1)/2,a=(ei(n/2)-1)/2;if(e>=i-a-2&&e<=i+a+2&&r>=(t?s:s-h)-2&&r<=(t?s+h:s)+2)return!0;return(()=>{if(e<i-h-3||e>i+h+3||r<(t?s-h-3:s)||r>(t?s:s+h+3))return!1;const n=Math.abs(e-i);return Math.abs(r-s)+3>=n/2})()}class hr{constructor(){this.jt=null,this.$n=new rt,this.F=-1,this.W="",this.jv="",this.vS="normal"}ht(t){this.jt=t}qn(t,i,s){this.F===t&&this.W===i||(this.F=t,this.W=i,this.jv=x(t,i),this.$n.On()),this.vS=s}Qn(t,i){if(null===this.jt||null===this.jt.lt)return null;for(let s=this.jt.lt.from;s<this.jt.lt.to;s++){const n=this.jt.ot[s];if(n&&lr(n,t,i))return{zOrder:"normal",externalId:n.te??""}}return null}draw(t){"aboveSeries"!==this.vS&&t.useBitmapCoordinateSpace((t=>{this.et(t)}))}drawBackground(t){"aboveSeries"===this.vS&&t.useBitmapCoordinateSpace((t=>{this.et(t)}))}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:s}){if(null!==this.jt&&null!==this.jt.lt){t.textBaseline="middle",t.font=this.jv;for(let n=this.jt.lt.from;n<this.jt.lt.to;n++){const e=this.jt.ot[n];void 0!==e.ri&&(e.ri.ss=this.$n.Ii(t,e.ri.mS),e.ri.$t=this.F,e.ri._t=e._t-e.ri.ss/2),ar(e,t,i,s)}}}}function ar(t,i,s,n){i.fillStyle=t.R,void 0!==t.ri&&function(t,i,s,n,e,r){t.save(),t.scale(e,r),t.fillText(i,s,n),t.restore()}(i,t.ri.mS,t.ri._t,t.ri.ut,s,n),function(t,i,s){if(0===t.yh)return;switch(t.wS){case"arrowDown":return void er(!1,i,s,t.yh);case"arrowUp":return void er(!0,i,s,t.yh);case"circle":return void function(t,i,s){const n=(tr("circle",s)-1)/2;t.beginPath(),t.arc(i._t,i.ut,n*i.pS,0,2*Math.PI,!1),t.fill()}(i,s,t.yh);case"square":return void function(t,i,s){const n=tr("square",s),e=(n-1)*i.pS/2,r=i._t-e,h=i.ut-e;t.fillRect(r,h,n*i.pS,n*i.pS)}(i,s,t.yh)}t.wS}(t,i,function(t,i,s){const n=Math.max(1,Math.floor(i))%2/2;return{_t:Math.round(t._t*i)+n,ut:t.ut*s,pS:i}}(t,s,n))}function lr(t,i,s){return!(void 0===t.ri||!function(t,i,s,n,e,r){const h=n/2;return e>=t&&e<=t+s&&r>=i-h&&r<=i+h}(t.ri._t,t.ri.ut,t.ri.ss,t.ri.$t,i,s))||function(t,i,s){if(0===t.yh)return!1;switch(t.wS){case"arrowDown":return rr(!0,t._t,t.ut,t.yh,i,s);case"arrowUp":return rr(!1,t._t,t.ut,t.yh,i,s);case"circle":return function(t,i,s,n,e){const r=2+tr("circle",s)/2,h=t-n,a=i-e;return Math.sqrt(h*h+a*a)<=r}(t._t,t.ut,t.yh,i,s);case"square":return function(t,i,s,n,e){const r=tr("square",s),h=(r-1)/2,a=t-h,l=i-h;return n>=a&&n<=a+r&&e>=l&&e<=l+r}(t._t,t.ut,t.yh,i,s)}}(t,i,s)}function or(t){return"atPriceTop"===t||"atPriceBottom"===t||"atPriceMiddle"===t}function _r(t,i,s,n,e,r,h,a){const l=function(t,i,s){if(or(i.position)&&void 0!==i.price)return i.price;if("value"in(n=t)&&"number"==typeof n.value)return t.value;var n;if(function(t){return"open"in t&&"high"in t&&"low"in t&&"close"in t}(t)){if("inBar"===i.position)return t.close;if("aboveBar"===i.position)return s?t.low:t.high;if("belowBar"===i.position)return s?t.high:t.low}}(s,i,h.priceScale().options().invertScale);if(void 0===l)return;const o=or(i.position),_=a.timeScale(),c=p(i.size)?Math.max(i.size,0):1,d=ir(_.options().barSpacing)*c,f=d/2;t.yh=d;switch(i.position){case"inBar":case"atPriceMiddle":return t.ut=u(h.priceToCoordinate(l)),void(void 0!==t.ri&&(t.ri.ut=t.ut+f+r+.6*e));case"aboveBar":case"atPriceTop":{const i=o?0:n.gS;return t.ut=u(h.priceToCoordinate(l))-f-i,void 0!==t.ri&&(t.ri.ut=t.ut-f-.6*e,n.gS+=1.2*e),void(o||(n.gS+=d+r))}case"belowBar":case"atPriceBottom":{const i=o?0:n.MS;return t.ut=u(h.priceToCoordinate(l))+f+i,void 0!==t.ri&&(t.ri.ut=t.ut+f+r+.6*e,n.MS+=1.2*e),void(o||(n.MS+=d+r))}}}class ur{constructor(t,i,s){this.bS=[],this.xt=!0,this.SS=!0,this.Xt=new hr,this.ye=t,this.Lv=i,this.jt={ot:[],lt:null},this.Ps=s}renderer(){if(!this.ye.options().visible)return null;this.xt&&this.xS();const t=this.Lv.options().layout;return this.Xt.qn(t.fontSize,t.fontFamily,this.Ps.zOrder),this.Xt.ht(this.jt),this.Xt}CS(t){this.bS=t,this.kt("data")}kt(t){this.xt=!0,"data"===t&&(this.SS=!0)}yS(t){this.xt=!0,this.Ps=t}zOrder(){return"aboveSeries"===this.Ps.zOrder?"top":this.Ps.zOrder}xS(){const t=this.Lv.timeScale(),i=this.bS;this.SS&&(this.jt.ot=i.map((t=>({wt:t.time,_t:0,ut:0,yh:0,wS:t.shape,R:t.color,te:t.id,kS:t.kS,ri:void 0}))),this.SS=!1);const s=this.Lv.options().layout;this.jt.lt=null;const n=t.getVisibleLogicalRange();if(null===n)return;const e=new Vi(Math.floor(n.from),Math.ceil(n.to));if(null===this.ye.data()[0])return;if(0===this.jt.ot.length)return;let r=NaN;const h=sr(t.options().barSpacing),a={gS:h,MS:h};this.jt.lt=dn(this.jt.ot,e,!0);for(let n=this.jt.lt.from;n<this.jt.lt.to;n++){const e=i[n];e.time!==r&&(a.gS=h,a.MS=h,r=e.time);const l=this.jt.ot[n];l._t=u(t.logicalToCoordinate(e.time)),void 0!==e.text&&e.text.length>0&&(l.ri={mS:e.text,_t:0,ut:0,ss:0,$t:0});const o=this.ye.dataByIndex(e.time,0);null!==o&&_r(l,e,o,a,s.fontSize,h,this.ye,this.Lv)}this.xt=!1}}function cr(t){return{...Je,...t}}class dr{constructor(t){this.$h=null,this.bS=[],this.PS=[],this.TS=null,this.ye=null,this.Lv=null,this.RS=!0,this.DS=null,this.IS=null,this.VS=null,this.BS=!0,this.Ps=cr(t)}attached(t){this.ES(),this.Lv=t.chart,this.ye=t.series,this.$h=new ur(this.ye,u(this.Lv),this.Ps),this.dS=t.requestUpdate,this.ye.subscribeDataChanged((t=>this.IM(t))),this.BS=!0,this.Jb()}Jb(){this.dS&&this.dS()}detached(){this.ye&&this.TS&&this.ye.unsubscribeDataChanged(this.TS),this.Lv=null,this.ye=null,this.$h=null,this.TS=null}CS(t){this.BS=!0,this.bS=t,this.ES(),this.RS=!0,this.IS=null,this.Jb()}AS(){return this.bS}paneViews(){return this.$h?[this.$h]:[]}updateAllViews(){this.LS()}hitTest(t,i){return this.$h?this.$h.renderer()?.Qn(t,i)??null:null}autoscaleInfo(t,i){if(this.Ps.autoScale&&this.$h){const t=this.zS();if(t)return{priceRange:null,margins:t}}return null}cr(t){this.Ps=cr({...this.Ps,...t}),this.Jb&&this.Jb()}zS(){const t=u(this.Lv).timeScale().options().barSpacing;if(this.RS||t!==this.VS){if(this.VS=t,this.bS.length>0){const i=sr(t),s=1.5*ir(t)+2*i,n=this.OS();this.DS={above:nr(s,n.aboveBar,n.inBar),below:nr(s,n.belowBar,n.inBar)}}else this.DS=null;this.RS=!1}return this.DS}OS(){return null===this.IS&&(this.IS=this.bS.reduce(((t,i)=>(t[i.position]||(t[i.position]=!0),t)),{inBar:!1,aboveBar:!1,belowBar:!1,atPriceTop:!1,atPriceBottom:!1,atPriceMiddle:!1})),this.IS}ES(){if(!this.BS||!this.Lv||!this.ye)return;const t=this.Lv.timeScale(),i=this.ye?.data();if(null==t.getVisibleLogicalRange()||!this.ye||0===i.length)return void(this.PS=[]);const s=t.timeToIndex(u(i[0].time),!0);this.PS=this.bS.map(((i,n)=>{const e=t.timeToIndex(i.time,!0),r=e<s?1:-1,h=u(this.ye).dataByIndex(e,r),a={time:t.timeToIndex(u(h).time,!1),position:i.position,shape:i.shape,color:i.color,id:i.id,kS:n,text:i.text,size:i.size,price:i.price,Gr:i.time};if("atPriceTop"===i.position||"atPriceBottom"===i.position||"atPriceMiddle"===i.position){if(void 0===i.price)throw new Error(`Price is required for position ${i.position}`);return{...a,position:i.position,price:i.price}}return{...a,position:i.position,price:i.price}})),this.BS=!1}LS(t){this.$h&&(this.ES(),this.$h.CS(this.PS),this.$h.yS(this.Ps),this.$h.kt(t))}IM(t){this.BS=!0,this.Jb()}}class fr extends Xe{constructor(t,i,s){super(t,i),s&&this.setMarkers(s)}setMarkers(t){this.Zh.CS(t)}markers(){return this.Zh.AS()}}function pr(t,i,s){const n=new fr(t,new dr(s??{}));return i&&n.setMarkers(i),n}class vr{constructor(t){this.bS=new Map,this.NS=t}FS(t,i,s){if(this.WS(i),void 0!==s){const n=window.setTimeout((()=>{this.bS.delete(i),this.HS()}),s),e={...t,US:n,$S:Date.now()+s};this.bS.set(i,e)}else this.bS.set(i,{...t,US:void 0,$S:void 0});this.HS()}WS(t){const i=this.bS.get(t);i&&void 0!==i.US&&window.clearTimeout(i.US),this.bS.delete(t),this.HS()}qS(){for(const[t]of this.bS)this.WS(t)}jS(){const t=Date.now(),i=[];for(const[s,n]of this.bS)!n.$S||n.$S>t?i.push({time:n.time,sign:n.sign,value:n.value}):this.WS(s);return i}YS(t){this.NS=t}HS(){this.NS&&this.NS()}}const mr={positiveColor:"#22AB94",negativeColor:"#F7525F",updateVisibilityDuration:5e3};class wr{constructor(t,i,s,n){this.jt=t,this.KS=i,this.ZS=s,this.GS=n}draw(t){t.useBitmapCoordinateSpace((t=>{const i=t.context,s=Math.max(1,Math.floor(t.horizontalPixelRatio))%2/2,n=4*t.verticalPixelRatio+s;this.jt.forEach((e=>{const r=Math.round(e._t*t.horizontalPixelRatio)+s;i.beginPath();const h=this.XS(e.JS);i.fillStyle=h,i.arc(r,e.ut*t.verticalPixelRatio,n,0,2*Math.PI,!1),i.fill(),e.JS&&(i.strokeStyle=h,i.lineWidth=Math.floor(2*t.horizontalPixelRatio),i.beginPath(),i.moveTo((e._t-4.7)*t.horizontalPixelRatio+s,(e.ut-7*e.JS)*t.verticalPixelRatio),i.lineTo(e._t*t.horizontalPixelRatio+s,(e.ut-7*e.JS-7*e.JS*.5)*t.verticalPixelRatio),i.lineTo((e._t+4.7)*t.horizontalPixelRatio+s,(e.ut-7*e.JS)*t.verticalPixelRatio),i.stroke())}))}))}XS(t){return 0===t?this.KS:t>0?this.GS:this.ZS}}class gr{constructor(t,i,s){this.jt=[],this.ye=t,this.Jh=i,this.Ps=s}kt(t){this.jt=t.map((t=>{const i=this.ye.priceToCoordinate(t.value);if(null===i)return null;return{_t:u(this.Jh.timeToCoordinate(t.time)),ut:i,JS:t.sign}})).filter(M)}renderer(){const t=function(t,i){return function(t,i){return"Area"===i}(0,i)?t.lineColor:t.color}(this.ye.options(),this.ye.seriesType());return new wr(this.jt,t,this.Ps.negativeColor,this.Ps.positiveColor)}}function Mr(t,i){return"Line"===i||"Area"===i}class br{constructor(t){this.Lv=void 0,this.ye=void 0,this.Xb=[],this.cu=null,this.QS=new Map,this.tx=new vr((()=>this.Jb())),this.Ps={...mr,...t}}cr(t){this.Ps={...this.Ps,...t},this.Jb()}CS(t){this.tx.qS();const i=this.cu;i&&t.forEach((t=>{this.tx.FS(t,i.key(t.time))}))}AS(){return this.tx.jS()}Jb(){this.dS?.()}attached(t){const{chart:i,series:s,requestUpdate:n,horzScaleBehavior:e}=t;this.Lv=i,this.ye=s,this.cu=e;const r=this.ye.seriesType();if("Area"!==r&&"Line"!==r)throw new Error("UpDownMarkersPrimitive is only supported for Area and Line series types");this.Xb=[new gr(this.ye,this.Lv.timeScale(),this.Ps)],this.dS=n,this.Jb()}detached(){this.Lv=void 0,this.ye=void 0,this.dS=void 0}Gv(){return _(this.Lv)}F_(){return _(this.ye)}updateAllViews(){this.Xb.forEach((t=>t.kt(this.AS())))}paneViews(){return this.Xb}ht(t){if(!this.ye)throw new Error("Primitive not attached to series");const i=this.ye.seriesType();this.QS.clear();const s=this.cu;s&&t.forEach((t=>{Ks(t)&&Mr(0,i)&&this.QS.set(s.key(t.time),t.value)})),_(this.ye).setData(t)}kt(t,i){if(!this.ye||!this.cu)throw new Error("Primitive not attached to series");const s=this.ye.seriesType(),n=this.cu.key(t.time);if(Ys(t)&&this.QS.delete(n),Ks(t)&&Mr(0,s)){const i=this.QS.get(n);i&&this.tx.FS({time:t.time,value:t.value,sign:Sr(t.value,i)},n,this.Ps.updateVisibilityDuration)}_(this.ye).update(t,i)}ix(){this.tx.qS()}}function Sr(t,i){return t===i?0:t-i>0?1:-1}class xr extends Xe{setData(t){return this.Zh.ht(t)}update(t,i){return this.Zh.kt(t,i)}markers(){return this.Zh.AS()}setMarkers(t){return this.Zh.CS(t)}clearMarkers(){return this.Zh.ix()}}function Cr(t,i={}){return new xr(t,new br(i))}const yr={...e,color:"#2196f3"};function kr(){return"5.1.0"}export{Se as AreaSeries,ke as BarSeries,ge as BaselineSeries,Re as CandlestickSeries,Wi as ColorType,K as CrosshairMode,Ve as HistogramSeries,Ni as LastPriceAnimationMode,ne as LineSeries,h as LineStyle,r as LineType,It as MismatchDirection,Fi as PriceLineSource,bi as PriceScaleMode,Hi as TickMarkType,Oi as TrackingModeExitMode,qn as createChart,$n as createChartEx,Ge as createImageWatermark,ce as createOptionsChart,pr as createSeriesMarkers,Ue as createTextWatermark,Cr as createUpDownMarkers,oe as createYieldCurveChart,yr as customSeriesDefaultOptions,jn as defaultHorzScaleBehavior,qi as isBusinessDay,ji as isUTCTimestamp,kr as version};