lightweight-charts
Version:
Performant financial charts built with HTML5 canvas
7 lines • 148 kB
JavaScript
/*!
* @license
* TradingView Lightweight Charts™ v4.0.1
* Copyright (c) 2023 TradingView, Inc.
* Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0
*/
!function(){"use strict";var t,i;function n(t,i){const n={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(n)}function s(t,i,n,s){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(n,i+e),t.lineTo(s,i+e),t.stroke()}function e(t,i){if(!t)throw new Error("Assertion failed"+(i?": "+i:""))}function r(t){if(void 0===t)throw new Error("Value is undefined");return t}function h(t){if(null===t)throw new Error("Value is null");return t}function l(t){return h(r(t))}!function(t){t[t.Simple=0]="Simple",t[t.WithSteps=1]="WithSteps",t[t.Curved=2]="Curved"}(t||(t={})),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"}(i||(i={}));const a={khaki:"#f0e68c",azure:"#f0ffff",aliceblue:"#f0f8ff",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",gray:"#808080",green:"#008000",honeydew:"#f0fff0",floralwhite:"#fffaf0",lightblue:"#add8e6",lightcoral:"#f08080",lemonchiffon:"#fffacd",hotpink:"#ff69b4",lightyellow:"#ffffe0",greenyellow:"#adff2f",lightgoldenrodyellow:"#fafad2",limegreen:"#32cd32",linen:"#faf0e6",lightcyan:"#e0ffff",magenta:"#f0f",maroon:"#800000",olive:"#808000",orange:"#ffa500",oldlace:"#fdf5e6",mediumblue:"#0000cd",transparent:"#0000",lime:"#0f0",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",midnightblue:"#191970",orchid:"#da70d6",mediumorchid:"#ba55d3",mediumturquoise:"#48d1cc",orangered:"#ff4500",royalblue:"#4169e1",powderblue:"#b0e0e6",red:"#f00",coral:"#ff7f50",turquoise:"#40e0d0",white:"#fff",whitesmoke:"#f5f5f5",wheat:"#f5deb3",teal:"#008080",steelblue:"#4682b4",bisque:"#ffe4c4",aquamarine:"#7fffd4",aqua:"#0ff",sienna:"#a0522d",silver:"#c0c0c0",springgreen:"#00ff7f",antiquewhite:"#faebd7",burlywood:"#deb887",brown:"#a52a2a",beige:"#f5f5dc",chocolate:"#d2691e",chartreuse:"#7fff00",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cadetblue:"#5f9ea0",tomato:"#ff6347",fuchsia:"#f0f",blue:"#00f",salmon:"#fa8072",blanchedalmond:"#ffebcd",slateblue:"#6a5acd",slategray:"#708090",thistle:"#d8bfd8",tan:"#d2b48c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",blueviolet:"#8a2be2",black:"#000",darkmagenta:"#8b008b",darkslateblue:"#483d8b",darkkhaki:"#bdb76b",darkorchid:"#9932cc",darkorange:"#ff8c00",darkgreen:"#006400",darkred:"#8b0000",dodgerblue:"#1e90ff",darkslategray:"#2f4f4f",dimgray:"#696969",deepskyblue:"#00bfff",firebrick:"#b22222",forestgreen:"#228b22",indigo:"#4b0082",ivory:"#fffff0",lavenderblush:"#fff0f5",feldspar:"#d19275",indianred:"#cd5c5c",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightskyblue:"#87cefa",lightslategray:"#789",lightslateblue:"#8470ff",snow:"#fffafa",lightseagreen:"#20b2aa",lightsalmon:"#ffa07a",darksalmon:"#e9967a",darkviolet:"#9400d3",mediumpurple:"#9370d8",mediumaquamarine:"#66cdaa",skyblue:"#87ceeb",lavender:"#e6e6fa",lightsteelblue:"#b0c4de",mediumvioletred:"#c71585",mintcream:"#f5fffa",navajowhite:"#ffdead",navy:"#000080",olivedrab:"#6b8e23",palevioletred:"#d87093",violetred:"#d02090",yellow:"#ff0",yellowgreen:"#9acd32",lawngreen:"#7cfc00",pink:"#ffc0cb",paleturquoise:"#afeeee",palegoldenrod:"#eee8aa",darkolivegreen:"#556b2f",darkseagreen:"#8fbc8f",darkturquoise:"#00ced1",peachpuff:"#ffdab9",deeppink:"#ff1493",violet:"#ee82ee",palegreen:"#98fb98",mediumseagreen:"#3cb371",peru:"#cd853f",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",purple:"#800080",seagreen:"#2e8b57",seashell:"#fff5ee",papayawhip:"#ffefd5",mediumslateblue:"#7b68ee",plum:"#dda0dd",mediumspringgreen:"#00fa9a"};function o(t){return t<0?0:t>255?255:Math.round(t)||0}function _(t){return t<=0||t>0?t<0?0:t>1?1:Math.round(1e4*t)/1e4:0}const u=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,c=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,d=/^rgb\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*\)$/,f=/^rgba\(\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?\d{1,10})\s*,\s*(-?[\d]{0,10}(?:\.\d+)?)\s*\)$/;function p(t){(t=t.toLowerCase())in a&&(t=a[t]);{const i=f.exec(t)||d.exec(t);if(i)return[o(parseInt(i[1],10)),o(parseInt(i[2],10)),o(parseInt(i[3],10)),_(i.length<5?1:parseFloat(i[4]))]}{const i=c.exec(t);if(i)return[o(parseInt(i[1],16)),o(parseInt(i[2],16)),o(parseInt(i[3],16)),1]}{const i=u.exec(t);if(i)return[o(17*parseInt(i[1],16)),o(17*parseInt(i[2],16)),o(17*parseInt(i[3],16)),1]}throw new Error(`Cannot parse color: ${t}`)}function v(t){const i=p(t);return{t:`rgb(${i[0]}, ${i[1]}, ${i[2]})`,i:(n=i,.199*n[0]+.687*n[1]+.114*n[2]>160?"black":"white")};var n}class m{constructor(){this.h=[]}l(t,i,n){const s={o:t,_:i,u:!0===n};this.h.push(s)}p(t){const i=this.h.findIndex((i=>t===i.o));i>-1&&this.h.splice(i,1)}v(t){this.h=this.h.filter((i=>i._!==t))}m(t,i,n){const s=[...this.h];this.h=this.h.filter((t=>!t.u)),s.forEach((s=>s.o(t,i,n)))}g(){return this.h.length>0}M(){this.h=[]}}function b(t,...i){for(const n of i)for(const i in n)void 0!==n[i]&&("object"!=typeof n[i]||void 0===t[i]?t[i]=n[i]:b(t[i],n[i]));return t}function g(t){return"number"==typeof t&&isFinite(t)}function w(t){return"number"==typeof t&&t%1==0}function M(t){return"string"==typeof t}function S(t){return"boolean"==typeof t}function x(t){const i=t;if(!i||"object"!=typeof i)return i;let n,s,e;for(s in n=Array.isArray(i)?[]:{},i)i.hasOwnProperty(s)&&(e=i[s],n[s]=e&&"object"==typeof e?x(e):e);return n}function y(t){return null!==t}function k(t){return null===t?void 0:t}const C="-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif";function T(t,i,n){return void 0===i&&(i=C),`${n=void 0!==n?`${n} `:""}${t}px ${i}`}class P{constructor(t){this.S={k:1,C:5,T:NaN,P:"",R:"",D:"",O:"",B:0,A:0,L:0,I:0,N:0},this.V=t}F(){const t=this.S,i=this.W(),n=this.j();return t.T===i&&t.R===n||(t.T=i,t.R=n,t.P=T(i,n),t.I=2.5/12*i,t.B=t.I,t.A=i/12*t.C,t.L=i/12*t.C,t.N=0),t.D=this.$(),t.O=this.H(),this.S}$(){return this.V.F().layout.textColor}H(){return this.V.U()}W(){return this.V.F().layout.fontSize}j(){return this.V.F().layout.fontFamily}}class R{constructor(){this.q=[]}Y(t){this.q=t}X(t,i,n){this.q.forEach((s=>{s.X(t,i,n)}))}}class D{X(t,i,n){t.useMediaCoordinateSpace((t=>this.Z(t,i,n)))}K(t,i,n){t.useMediaCoordinateSpace((t=>this.G(t,i,n)))}G(t,i,n){}}class O extends D{constructor(){super(...arguments),this.J=null}tt(t){this.J=t}Z({context:t}){if(null===this.J||null===this.J.it)return;const i=this.J.it,n=this.J,s=s=>{t.beginPath();for(let e=i.to-1;e>=i.from;--e){const i=n.nt[e];t.moveTo(i.st,i.et),t.arc(i.st,i.et,s,0,2*Math.PI)}t.fill()};n.rt>0&&(t.fillStyle=n.ht,s(n.lt+n.rt)),t.fillStyle=n.ot,s(n.lt)}}function B(){return{nt:[{st:0,et:0,_t:0,ut:0}],ot:"",ht:"",lt:0,rt:0,it:null}}const E={from:0,to:1};class A{constructor(t,i){this.ct=new R,this.dt=[],this.ft=[],this.vt=!0,this.V=t,this.bt=i,this.ct.Y(this.dt)}gt(t){const i=this.V.wt();i.length!==this.dt.length&&(this.ft=i.map(B),this.dt=this.ft.map((t=>{const i=new O;return i.tt(t),i})),this.ct.Y(this.dt)),this.vt=!0}Mt(){return this.vt&&(this.St(),this.vt=!1),this.ct}St(){const t=this.V.wt(),i=this.bt.xt(),n=this.V.yt();t.forEach(((t,s)=>{var e;const r=this.ft[s],l=t.kt(i);if(null===l||!t.Ct())return void(r.it=null);const a=h(t.Tt());r.ot=l.Pt,r.lt=l.lt,r.rt=l.Rt,r.nt[0].ut=l.ut,r.nt[0].et=t.Ot().Dt(l.ut,a.Bt),r.ht=null!==(e=l.Et)&&void 0!==e?e:this.V.At(r.nt[0].et/t.Ot().Lt()),r.nt[0]._t=i,r.nt[0].st=n.zt(i),r.it=E}))}}class L{X(t,i,n){t.useBitmapCoordinateSpace((t=>this.Z(t,i,n)))}}class z extends L{constructor(t){super(),this.It=t}Z({context:t,bitmapSize:i,horizontalPixelRatio:e,verticalPixelRatio:r}){if(null===this.It)return;const h=this.It.Nt.Ct,l=this.It.Vt.Ct;if(!h&&!l)return;const a=Math.round(this.It.st*e),o=Math.round(this.It.et*r);t.lineCap="butt",h&&a>=0&&(t.lineWidth=Math.floor(this.It.Nt.rt*e),t.strokeStyle=this.It.Nt.D,t.fillStyle=this.It.Nt.D,n(t,this.It.Nt.Ft),function(t,i,n,s){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(i+e,n),t.lineTo(i+e,s),t.stroke()}(t,a,0,i.height)),l&&o>=0&&(t.lineWidth=Math.floor(this.It.Vt.rt*r),t.strokeStyle=this.It.Vt.D,t.fillStyle=this.It.Vt.D,n(t,this.It.Vt.Ft),s(t,o,0,i.width))}}class I{constructor(t){this.vt=!0,this.Wt={Nt:{rt:1,Ft:0,D:"",Ct:!1},Vt:{rt:1,Ft:0,D:"",Ct:!1},st:0,et:0},this.jt=new z(this.Wt),this.$t=t}gt(){this.vt=!0}Mt(){return this.vt&&(this.St(),this.vt=!1),this.jt}St(){const t=this.$t.Ct(),i=h(this.$t.Ht()),n=i.Ut().F().crosshair,s=this.Wt;s.Vt.Ct=t&&this.$t.qt(i),s.Nt.Ct=t&&this.$t.Yt(),s.Vt.rt=n.horzLine.width,s.Vt.Ft=n.horzLine.style,s.Vt.D=n.horzLine.color,s.Nt.rt=n.vertLine.width,s.Nt.Ft=n.vertLine.style,s.Nt.D=n.vertLine.color,s.st=this.$t.Xt(),s.et=this.$t.Zt()}}function N(t,i,n,s,e,r){t.fillRect(i+r,n,s-2*r,r),t.fillRect(i+r,n+e-r,s-2*r,r),t.fillRect(i,n,r,e),t.fillRect(i+s-r,n,r,e)}function V(t,i,n,s,e,r){t.save(),t.globalCompositeOperation="copy",t.fillStyle=r,t.fillRect(i,n,s,e),t.restore()}function F(t,i){return Array.isArray(t)?t.map((t=>0===t?t:t+i)):t+i}function W(t,i,n,s,e,r){let h,l,a,o;if(Array.isArray(r))if(2===r.length){const t=Math.max(0,r[0]),i=Math.max(0,r[1]);h=t,l=t,a=i,o=i}else{if(4!==r.length)throw new Error("Wrong border radius - it should be like css border radius");h=Math.max(0,r[0]),l=Math.max(0,r[1]),a=Math.max(0,r[2]),o=Math.max(0,r[3])}else{const t=Math.max(0,r);h=t,l=t,a=t,o=t}t.beginPath(),t.moveTo(i+h,n),t.lineTo(i+s-l,n),0!==l&&t.arcTo(i+s,n,i+s,n+l,l),t.lineTo(i+s,n+e-a),0!==a&&t.arcTo(i+s,n+e,i+s-a,n+e,a),t.lineTo(i+o,n+e),0!==o&&t.arcTo(i,n+e,i,n+e-o,o),t.lineTo(i,n+h),0!==h&&t.arcTo(i,n,i+h,n,h)}function j(t,i,n,s,e,r,h=0,l=0,a=""){if(t.save(),!h||!a||a===r)return W(t,i,n,s,e,l),t.fillStyle=r,t.fill(),void t.restore();const o=h/2;if("transparent"!==r){W(t,i+h,n+h,s-2*h,e-2*h,F(l,-h)),t.fillStyle=r,t.fill()}if("transparent"!==a){W(t,i+o,n+o,s-h,e-h,F(l,-o)),t.lineWidth=h,t.strokeStyle=a,t.closePath(),t.stroke()}t.restore()}function $(t,i,n,s,e,r,h){t.save(),t.globalCompositeOperation="copy";const l=t.createLinearGradient(0,0,0,e);l.addColorStop(0,r),l.addColorStop(1,h),t.fillStyle=l,t.fillRect(i,n,s,e),t.restore()}class H{constructor(t,i){this.tt(t,i)}tt(t,i){this.It=t,this.Kt=i}Lt(t,i){return this.It.Ct?t.T+t.I+t.B:0}X(t,i,n,s){if(!this.It.Ct||0===this.It.Gt.length)return;const e=this.It.D,r=this.Kt.t,h=t.useBitmapCoordinateSpace((t=>{const h=t.context;h.font=i.P;const l=this.Jt(t,i,n,s),a=l.Qt,o=(t,i)=>{l.ti?j(h,a.ii,a.ni,a.si,a.ei,t,a.ri,[a.lt,0,0,a.lt],i):j(h,a.hi,a.ni,a.si,a.ei,t,a.ri,[0,a.lt,a.lt,0],i)};return o(r,"transparent"),this.It.li&&(h.fillStyle=e,h.fillRect(a.hi,a.ai,a.oi-a.hi,a._i)),o("transparent",r),this.It.ui&&(h.fillStyle=i.O,h.fillRect(l.ti?a.ci-a.ri:0,a.ni,a.ri,a.di-a.ni)),l}));t.useMediaCoordinateSpace((({context:t})=>{const n=h.fi;t.font=i.P,t.textAlign=h.ti?"right":"left",t.textBaseline="middle",t.fillStyle=e,t.fillText(this.It.Gt,n.pi,(n.ni+n.di)/2+n.vi)}))}Jt(t,i,n,s){var e;const{context:r,bitmapSize:h,mediaSize:l,horizontalPixelRatio:a,verticalPixelRatio:o}=t,_=this.It.li||!this.It.mi?i.C:0,u=this.It.bi?i.k:0,c=i.I+this.Kt.gi,d=i.B+this.Kt.wi,f=i.A,p=i.L,v=this.It.Gt,m=i.T,b=n.Mi(r,v),g=Math.ceil(n.Si(r,v)),w=m+c+d,M=i.k+f+p+g+_,S=Math.max(1,Math.floor(o));let x=Math.round(w*o);x%2!=S%2&&(x+=1);const y=u>0?Math.max(1,Math.floor(u*a)):0,k=Math.round(M*a),C=Math.round(_*a),T=null!==(e=this.Kt.xi)&&void 0!==e?e:this.Kt.yi,P=Math.round(T*o)-Math.floor(.5*o),R=Math.floor(P+S/2-x/2),D=R+x,O="right"===s,B=O?l.width-u:u,E=O?h.width-y:y;let A,L,z;return O?(A=E-k,L=E-C,z=B-_-f-u):(A=E+k,L=E+C,z=B+_+f),{ti:O,Qt:{ni:R,ai:P,di:D,si:k,ei:x,lt:2*a,ri:y,ii:A,hi:E,oi:L,_i:S,ci:h.width},fi:{ni:R/o,di:D/o,pi:z,vi:b}}}}class U{constructor(t){this.ki={yi:0,t:"#000",wi:0,gi:0},this.Ci={Gt:"",Ct:!1,li:!0,mi:!1,Et:"",D:"#FFF",ui:!1,bi:!1},this.Ti={Gt:"",Ct:!1,li:!1,mi:!0,Et:"",D:"#FFF",ui:!0,bi:!0},this.vt=!0,this.Pi=new(t||H)(this.Ci,this.ki),this.Ri=new(t||H)(this.Ti,this.ki)}Gt(){return this.Di(),this.Ci.Gt}yi(){return this.Di(),this.ki.yi}gt(){this.vt=!0}Lt(t,i=!1){return Math.max(this.Pi.Lt(t,i),this.Ri.Lt(t,i))}Oi(){return this.ki.xi||0}Bi(t){this.ki.xi=t}Ei(){return this.Di(),this.Ci.Ct||this.Ti.Ct}Ai(){return this.Di(),this.Ci.Ct}Mt(t){return this.Di(),this.Ci.li=this.Ci.li&&t.F().ticksVisible,this.Ti.li=this.Ti.li&&t.F().ticksVisible,this.Pi.tt(this.Ci,this.ki),this.Ri.tt(this.Ti,this.ki),this.Pi}Li(){return this.Di(),this.Pi.tt(this.Ci,this.ki),this.Ri.tt(this.Ti,this.ki),this.Ri}Di(){this.vt&&(this.Ci.li=!0,this.Ti.li=!1,this.zi(this.Ci,this.Ti,this.ki))}}class q extends U{constructor(t,i,n){super(),this.$t=t,this.Ii=i,this.Ni=n}zi(t,i,n){t.Ct=!1;const s=this.$t.F().horzLine;if(!s.labelVisible)return;const e=this.Ii.Tt();if(!this.$t.Ct()||this.Ii.Vi()||null===e)return;const r=v(s.labelBackgroundColor);n.t=r.t,t.D=r.i;const h=2/12*this.Ii.T();n.gi=h,n.wi=h;const l=this.Ni(this.Ii);n.yi=l.yi,t.Gt=this.Ii.Fi(l.ut,e),t.Ct=!0}}const Y=/[1-9]/g;class X{constructor(){this.It=null}tt(t){this.It=t}X(t,i){if(null===this.It||!1===this.It.Ct||0===this.It.Gt.length)return;const n=t.useMediaCoordinateSpace((({context:t})=>(t.font=i.P,Math.round(i.Wi.Si(t,h(this.It).Gt,Y)))));if(n<=0)return;const s=i.ji,e=n+2*s,r=e/2,l=this.It.$i;let a=this.It.yi,o=Math.floor(a-r)+.5;o<0?(a+=Math.abs(0-o),o=Math.floor(a-r)+.5):o+e>l&&(a-=Math.abs(l-(o+e)),o=Math.floor(a-r)+.5);const _=o+e,u=Math.ceil(0+i.k+i.C+i.I+i.T+i.B);t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:n,verticalPixelRatio:s})=>{const e=h(this.It);t.fillStyle=e.t;const r=Math.round(o*n),l=Math.round(0*s),a=Math.round(_*n),c=Math.round(u*s),d=Math.round(2*n);if(t.beginPath(),t.moveTo(r,l),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,l),t.fill(),e.li){const r=Math.round(e.yi*n),h=l,a=Math.round((h+i.C)*s);t.fillStyle=e.D;const o=Math.max(1,Math.floor(n)),_=Math.floor(.5*n);t.fillRect(r-_,h,o,a-h)}})),t.useMediaCoordinateSpace((({context:t})=>{const n=h(this.It),e=0+i.k+i.C+i.I+i.T/2;t.font=i.P,t.textAlign="left",t.textBaseline="middle",t.fillStyle=n.D;const r=i.Wi.Mi(t,"Apr0");t.translate(o+s,e+r),t.fillText(n.Gt,0,0)}))}}class Z{constructor(t,i,n){this.vt=!0,this.jt=new X,this.Wt={Ct:!1,t:"#4c525e",D:"white",Gt:"",$i:0,yi:NaN,li:!0},this.bt=t,this.Hi=i,this.Ni=n}gt(){this.vt=!0}Mt(){return this.vt&&(this.St(),this.vt=!1),this.jt.tt(this.Wt),this.jt}St(){const t=this.Wt;t.Ct=!1;const i=this.bt.F().vertLine;if(!i.labelVisible)return;const n=this.Hi.yt();if(n.Vi())return;t.$i=n.$i();const s=this.Ni();if(null===s)return;t.yi=s.yi;const e=n.Ui(this.bt.xt());t.Gt=n.qi(h(e)),t.Ct=!0;const r=v(i.labelBackgroundColor);t.t=r.t,t.D=r.i,t.li=n.F().ticksVisible}}class K{constructor(){this.Yi=null,this.Xi=0}Zi(){return this.Xi}Ki(t){this.Xi=t}Ot(){return this.Yi}Gi(t){this.Yi=t}Ji(t){return[]}Qi(){return[]}Ct(){return!0}}var G;!function(t){t[t.Normal=0]="Normal",t[t.Magnet=1]="Magnet"}(G||(G={}));class J extends K{constructor(t,i){super(),this.tn=null,this.nn=NaN,this.sn=0,this.en=!0,this.rn=new Map,this.hn=!1,this.ln=NaN,this.an=NaN,this.on=NaN,this._n=NaN,this.Hi=t,this.un=i,this.cn=new A(t,this);this.dn=((t,i)=>n=>{const s=i(),e=t();if(n===h(this.tn).fn())return{ut:e,yi:s};{const t=h(n.Tt());return{ut:n.pn(s,t),yi:s}}})((()=>this.nn),(()=>this.an));const n=((t,i)=>()=>{const n=this.Hi.yt().vn(t()),s=i();return n&&Number.isFinite(s)?{_t:n,yi:s}:null})((()=>this.sn),(()=>this.Xt()));this.mn=new Z(this,t,n),this.bn=new I(this)}F(){return this.un}gn(t,i){this.on=t,this._n=i}wn(){this.on=NaN,this._n=NaN}Mn(){return this.on}Sn(){return this._n}xn(t,i,n){this.hn||(this.hn=!0),this.en=!0,this.yn(t,i,n)}xt(){return this.sn}Xt(){return this.ln}Zt(){return this.an}Ct(){return this.en}kn(){this.en=!1,this.Cn(),this.nn=NaN,this.ln=NaN,this.an=NaN,this.tn=null,this.wn()}Tn(t){return null!==this.tn?[this.bn,this.cn]:[]}qt(t){return t===this.tn&&this.un.horzLine.visible}Yt(){return this.un.vertLine.visible}Pn(t,i){this.en&&this.tn===t||this.rn.clear();const n=[];return this.tn===t&&n.push(this.Rn(this.rn,i,this.dn)),n}Qi(){return this.en?[this.mn]:[]}Ht(){return this.tn}Dn(){this.bn.gt(),this.rn.forEach((t=>t.gt())),this.mn.gt(),this.cn.gt()}On(t){return t&&!t.fn().Vi()?t.fn():null}yn(t,i,n){this.Bn(t,i,n)&&this.Dn()}Bn(t,i,n){const s=this.ln,e=this.an,r=this.nn,h=this.sn,l=this.tn,a=this.On(n);this.sn=t,this.ln=isNaN(t)?NaN:this.Hi.yt().zt(t),this.tn=n;const o=null!==a?a.Tt():null;return null!==a&&null!==o?(this.nn=i,this.an=a.Dt(i,o)):(this.nn=NaN,this.an=NaN),s!==this.ln||e!==this.an||h!==this.sn||r!==this.nn||l!==this.tn}Cn(){const t=this.Hi.wt().map((t=>t.An().En())).filter(y),i=0===t.length?null:Math.max(...t);this.sn=null!==i?i:NaN}Rn(t,i,n){let s=t.get(i);return void 0===s&&(s=new q(this,i,n),t.set(i,s)),s}}function Q(t){return"left"===t||"right"===t}class tt{constructor(t){this.Ln=new Map,this.zn=[],this.In=t}Nn(t,i){const n=function(t,i){return void 0===t?i:{Vn:Math.max(t.Vn,i.Vn),Fn:t.Fn||i.Fn}}(this.Ln.get(t),i);this.Ln.set(t,n)}Wn(){return this.In}jn(t){const i=this.Ln.get(t);return void 0===i?{Vn:this.In}:{Vn:Math.max(this.In,i.Vn),Fn:i.Fn}}$n(){this.Hn(),this.zn=[{Un:0}]}qn(t){this.Hn(),this.zn=[{Un:1,Bt:t}]}Yn(t){this.Xn(),this.zn.push({Un:5,Bt:t})}Hn(){this.Xn(),this.zn.push({Un:6})}Zn(){this.Hn(),this.zn=[{Un:4}]}Kn(t){this.Hn(),this.zn.push({Un:2,Bt:t})}Gn(t){this.Hn(),this.zn.push({Un:3,Bt:t})}Jn(){return this.zn}Qn(t){for(const i of t.zn)this.ts(i);this.In=Math.max(this.In,t.In),t.Ln.forEach(((t,i)=>{this.Nn(i,t)}))}static ns(){return new tt(2)}static ss(){return new tt(3)}ts(t){switch(t.Un){case 0:this.$n();break;case 1:this.qn(t.Bt);break;case 2:this.Kn(t.Bt);break;case 3:this.Gn(t.Bt);break;case 4:this.Zn();break;case 5:this.Yn(t.Bt);break;case 6:this.Xn()}}Xn(){const t=this.zn.findIndex((t=>5===t.Un));-1!==t&&this.zn.splice(t,1)}}const it=".";function nt(t,i){if(!g(t))return"n/a";if(!w(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 st{constructor(t,i){if(i||(i=1),g(t)&&w(t)||(t=100),t<0)throw new TypeError("invalid base");this.Ii=t,this.es=i,this.rs()}format(t){const i=t<0?"−":"";return t=Math.abs(t),i+this.hs(t)}rs(){if(this.ls=0,this.Ii>0&&this.es>0){let t=this.Ii;for(;t>1;)t/=10,this.ls++}}hs(t){const i=this.Ii/this.es;let n=Math.floor(t),s="";const e=void 0!==this.ls?this.ls:NaN;if(i>1){let r=+(Math.round(t*i)-n*i).toFixed(this.ls);r>=i&&(r-=i,n+=1),s=it+nt(+r.toFixed(this.ls)*this.es,e)}else n=Math.round(n*i)/i,e>0&&(s=it+nt(0,e));return n.toFixed(0)+s}}class et extends st{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class rt{constructor(t){this.os=t}format(t){let i="";return t<0&&(i="-",t=-t),t<995?i+this._s(t):t<999995?i+this._s(t/1e3)+"K":t<999999995?(t=1e3*Math.round(t/1e3),i+this._s(t/1e6)+"M"):(t=1e6*Math.round(t/1e6),i+this._s(t/1e9)+"B")}_s(t){let i;const n=Math.pow(10,this.os);return i=(t=Math.round(t*n)/n)>=1e-15&&t<1?t.toFixed(this.os).replace(/\.?0+$/,""):String(t),i.replace(/(\.[1-9]*)0+$/,((t,i)=>i))}}function ht(t,i,n,s,e,r,h){if(0===i.length||s.from>=i.length||s.to<=0)return;const l=t.context,a=i[s.from];let o=r(t,a),_=a;if(s.to-s.from<2){const t=e/2;l.beginPath();const i={st:a.st-t,et:a.et},n={st:a.st+t,et:a.et};return l.moveTo(i.st,i.et),l.lineTo(n.st,n.et),void h(l,o,i,n)}const u=(t,i)=>{h(l,o,_,i),l.beginPath(),o=t,_=i};let c=_;l.beginPath(),l.moveTo(a.st,a.et);for(let e=s.from+1;e<s.to;++e){c=i[e];const s=r(t,c);switch(n){case 0:l.lineTo(c.st,c.et);break;case 1:l.lineTo(c.st,i[e-1].et),s!==o&&(u(s,c),l.lineTo(c.st,i[e-1].et)),l.lineTo(c.st,c.et);break;case 2:{const[t,n]=_t(i,e-1,e);l.bezierCurveTo(t.st,t.et,n.st,n.et,c.st,c.et);break}}1!==n&&s!==o&&(u(s,c),l.moveTo(c.st,c.et))}(_!==c||_===c&&1===n)&&h(l,o,_,c)}const lt=6;function at(t,i){return{st:t.st-i.st,et:t.et-i.et}}function ot(t,i){return{st:t.st/i,et:t.et/i}}function _t(t,i,n){const s=Math.max(0,i-1),e=Math.min(t.length-1,n+1);var r,h;return[(r=t[i],h=ot(at(t[n],t[s]),lt),{st:r.st+h.st,et:r.et+h.et}),at(t[n],ot(at(t[e],t[i]),lt))]}function ut(t,i,n,s,e){i.lineTo(e.st,t),i.lineTo(s.st,t),i.closePath(),i.fillStyle=n,i.fill()}class ct extends D{constructor(){super(...arguments),this.J=null}tt(t){this.J=t}Z(t){var i;if(null===this.J)return;const{nt:s,it:e,us:r,rt:h,Ft:l,cs:a}=this.J,o=null!==(i=this.J.ds)&&void 0!==i?i:this.J.fs?0:t.mediaSize.height;if(null===e)return;const _=t.context;_.lineCap="butt",_.lineJoin="round",_.lineWidth=h,n(_,l),_.lineWidth=1,ht(t,s,a,e,r,this.ps.bind(this),ut.bind(null,o))}}class dt extends ct{constructor(){super(...arguments),this.vs=null}ps(t,i){const{context:n,mediaSize:s}=t,{bs:e,gs:r}=i,h=s.height;if(null!==this.vs&&this.vs.topColor===e&&this.vs.bottomColor===r&&this.vs.bottom===h)return this.vs.fillStyle;const l=n.createLinearGradient(0,0,0,h);return l.addColorStop(0,e),l.addColorStop(1,r),this.vs={topColor:e,bottomColor:r,fillStyle:l,bottom:h},l}}function ft(t,i){t.strokeStyle=i,t.stroke()}class pt extends D{constructor(){super(...arguments),this.J=null}tt(t){this.J=t}Z(t){if(null===this.J)return;const{nt:i,it:s,us:e,cs:r,rt:h,Ft:l}=this.J;if(null===s)return;const a=t.context;a.lineCap="butt",a.lineWidth=h,n(a,l),a.lineJoin="round",ht(t,i,r,s,e,this.ws.bind(this),ft)}}class vt extends pt{ws(t,i){return i.ot}}function mt(t,i,n,s=0,e=t.length){let r=e-s;for(;0<r;){const e=r>>1,h=s+e;n(t[h],i)?(s=h+1,r-=e+1):r=e}return s}function bt(t,i,n,s=0,e=t.length){let r=e-s;for(;0<r;){const e=r>>1,h=s+e;n(i,t[h])?r=e:(s=h+1,r-=e+1)}return s}function gt(t,i){return t._t<i}function wt(t,i){return t<i._t}function Mt(t,i,n){const s=i.Ms(),e=i.ci(),r=mt(t,s,gt),h=bt(t,e,wt);if(!n)return{from:r,to:h};let l=r,a=h;return r>0&&r<t.length&&t[r]._t>=s&&(l=r-1),h>0&&h<t.length&&t[h-1]._t<=e&&(a=h+1),{from:l,to:a}}class St{constructor(t,i,n){this.Ss=!0,this.xs=!0,this.ys=!0,this.ks=[],this.Cs=null,this.Ts=t,this.Ps=i,this.Rs=n}gt(t){this.Ss=!0,"data"===t&&(this.xs=!0),"options"===t&&(this.ys=!0)}Mt(){return this.Ts.Ct()?(this.Ds(),null===this.Cs?null:this.Os):null}Bs(){this.ks=this.ks.map((t=>Object.assign(Object.assign({},t),this.Ts.As().Es(t._t))))}Ls(){this.Cs=null}Ds(){this.xs&&(this.zs(),this.xs=!1),this.ys&&(this.Bs(),this.ys=!1),this.Ss&&(this.Is(),this.Ss=!1)}Is(){const t=this.Ts.Ot(),i=this.Ps.yt();if(this.Ls(),i.Vi()||t.Vi())return;const n=i.Ns();if(null===n)return;if(0===this.Ts.An().Vs())return;const s=this.Ts.Tt();null!==s&&(this.Cs=Mt(this.ks,n,this.Rs),this.Fs(t,i,s.Bt),this.Ws())}}class xt extends St{constructor(t,i){super(t,i,!0)}Fs(t,i,n){i.js(this.ks,k(this.Cs)),t.$s(this.ks,n,k(this.Cs))}Hs(t,i){return{_t:t,ut:i,st:NaN,et:NaN}}zs(){const t=this.Ts.As();this.ks=this.Ts.An().Us().map((i=>{const n=i.Bt[3];return this.qs(i.Ys,n,t)}))}}class yt extends xt{constructor(t,i){super(t,i),this.Os=new R,this.Xs=new dt,this.Zs=new vt,this.Os.Y([this.Xs,this.Zs])}qs(t,i,n){return Object.assign(Object.assign({},this.Hs(t,i)),n.Es(t))}Ws(){const t=this.Ts.F();this.Xs.tt({cs:t.lineType,nt:this.ks,Ft:t.lineStyle,rt:t.lineWidth,ds:null,fs:t.invertFilledArea,it:this.Cs,us:this.Ps.yt().Ks()}),this.Zs.tt({cs:t.lineType,nt:this.ks,Ft:t.lineStyle,rt:t.lineWidth,it:this.Cs,us:this.Ps.yt().Ks()})}}class kt extends L{constructor(){super(...arguments),this.It=null,this.Gs=0,this.Js=0}tt(t){this.It=t}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.It||0===this.It.An.length||null===this.It.it)return;if(this.Gs=this.Qs(i),this.Gs>=2){Math.max(1,Math.floor(i))%2!=this.Gs%2&&this.Gs--}this.Js=this.It.te?Math.min(this.Gs,Math.floor(i)):this.Gs;let s=null;const e=this.Js<=this.Gs&&this.It.Ks>=Math.floor(1.5*i);for(let r=this.It.it.from;r<this.It.it.to;++r){const h=this.It.An[r];s!==h.ie&&(t.fillStyle=h.ie,s=h.ie);const l=Math.floor(.5*this.Js),a=Math.round(h.st*i),o=a-l,_=this.Js,u=o+_-1,c=Math.min(h.ne,h.se),d=Math.max(h.ne,h.se),f=Math.round(c*n)-l,p=Math.round(d*n)+l,v=Math.max(p-f,this.Js);t.fillRect(o,f,_,v);const m=Math.ceil(1.5*this.Gs);if(e){if(this.It.ee){const i=a-m;let s=Math.max(f,Math.round(h.re*n)-l),e=s+_-1;e>f+v-1&&(e=f+v-1,s=e-_+1),t.fillRect(i,s,o-i,e-s+1)}const i=a+m;let s=Math.max(f,Math.round(h.he*n)-l),e=s+_-1;e>f+v-1&&(e=f+v-1,s=e-_+1),t.fillRect(u+1,s,i-u,e-s+1)}}}Qs(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(t,i){return Math.floor(.3*t*i)}(h(this.It).Ks,t)))}}class Ct extends St{constructor(t,i){super(t,i,!1)}Fs(t,i,n){i.js(this.ks,k(this.Cs)),t.le(this.ks,n,k(this.Cs))}ae(t,i,n){return{_t:t,oe:i.Bt[0],_e:i.Bt[1],ue:i.Bt[2],ce:i.Bt[3],st:NaN,re:NaN,ne:NaN,se:NaN,he:NaN}}zs(){const t=this.Ts.As();this.ks=this.Ts.An().Us().map((i=>this.qs(i.Ys,i,t)))}}class Tt extends Ct{constructor(){super(...arguments),this.Os=new kt}qs(t,i,n){return Object.assign(Object.assign({},this.ae(t,i,n)),n.Es(t))}Ws(){const t=this.Ts.F();this.Os.tt({An:this.ks,Ks:this.Ps.yt().Ks(),ee:t.openVisible,te:t.thinBars,it:this.Cs})}}function Pt(t,i,n){return Math.min(Math.max(t,i),n)}function Rt(t,i,n){return i-t<=n}function Dt(t){return t<=0?NaN:Math.log(t)/Math.log(10)}function Ot(t){const i=Math.ceil(t);return i%2==0?i-1:i}class Bt extends ct{constructor(){super(...arguments),this.vs=null}ps(t,i){var n;const{context:s,mediaSize:e}=t,r=this.J,{de:h,fe:l,pe:a,ve:o}=i,_=null!==(n=r.ds)&&void 0!==n?n:e.height,u=e.height;if(null!==this.vs&&this.vs.topFillColor1===h&&this.vs.topFillColor2===l&&this.vs.bottomFillColor1===a&&this.vs.bottomFillColor2===o&&this.vs.baseLevelCoordinate===_&&this.vs.bottom===u)return this.vs.fillStyle;const c=s.createLinearGradient(0,0,0,u),d=Pt(_/u,0,1);return c.addColorStop(0,h),c.addColorStop(d,l),c.addColorStop(d,a),c.addColorStop(1,o),this.vs={topFillColor1:h,topFillColor2:l,bottomFillColor1:a,bottomFillColor2:o,fillStyle:c,baseLevelCoordinate:_,bottom:u},c}}class Et extends pt{constructor(){super(...arguments),this.me=null}ws(t,i){const{context:n,mediaSize:s}=t,e=this.J,{be:r,ge:h}=i,{ds:l}=e,a=s.height;if(null!==this.me&&this.me.topLineColor===r&&this.me.bottomLineColor===h&&this.me.baseLevelCoordinate===l&&this.me.bottom===a)return this.me.strokeStyle;const o=n.createLinearGradient(0,0,0,a),_=Pt(l/a,0,1);return o.addColorStop(0,r),o.addColorStop(_,r),o.addColorStop(_,h),o.addColorStop(1,h),this.me={topLineColor:r,bottomLineColor:h,strokeStyle:o,baseLevelCoordinate:l,bottom:a},o}}class At extends xt{constructor(t,i){super(t,i),this.Os=new R,this.we=new Bt,this.Me=new Et,this.Os.Y([this.we,this.Me])}qs(t,i,n){return Object.assign(Object.assign({},this.Hs(t,i)),n.Es(t))}Ws(){const t=this.Ts.Tt();if(null===t)return;const i=this.Ts.F(),n=this.Ts.Ot().Dt(i.baseValue.price,t.Bt),s=this.Ps.yt().Ks();this.we.tt({nt:this.ks,rt:i.lineWidth,Ft:i.lineStyle,cs:i.lineType,ds:n,fs:!1,it:this.Cs,us:s}),this.Me.tt({nt:this.ks,rt:i.lineWidth,Ft:i.lineStyle,cs:i.lineType,ds:n,it:this.Cs,us:s})}}class Lt extends L{constructor(){super(...arguments),this.It=null,this.Gs=0}tt(t){this.It=t}Z(t){if(null===this.It||0===this.It.An.length||null===this.It.it)return;const{horizontalPixelRatio:i}=t;if(this.Gs=function(t,i){if(t>=2.5&&t<=4)return Math.floor(3*i);const n=1-.2*Math.atan(Math.max(4,t)-4)/(.5*Math.PI),s=Math.floor(t*n*i),e=Math.floor(t*i),r=Math.min(s,e);return Math.max(Math.floor(i),r)}(this.It.Ks,i),this.Gs>=2){Math.floor(i)%2!=this.Gs%2&&this.Gs--}const n=this.It.An;this.It.Se&&this.xe(t,n,this.It.it),this.It.ui&&this.ye(t,n,this.It.it);const s=this.ke(i);(!this.It.ui||this.Gs>2*s)&&this.Ce(t,n,this.It.it)}xe(t,i,n){if(null===this.It)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h="",l=Math.min(Math.floor(e),Math.floor(this.It.Ks*e));l=Math.max(Math.floor(e),Math.min(l,this.Gs));const a=Math.floor(.5*l);let o=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.Te!==h&&(s.fillStyle=n.Te,h=n.Te);const _=Math.round(Math.min(n.re,n.he)*r),u=Math.round(Math.max(n.re,n.he)*r),c=Math.round(n.ne*r),d=Math.round(n.se*r);let f=Math.round(e*n.st)-a;const p=f+l-1;null!==o&&(f=Math.max(o+1,f),f=Math.min(f,p));const v=p-f+1;s.fillRect(f,c,v,_-c),s.fillRect(f,u+1,v,d-u),o=p}}ke(t){let i=Math.floor(1*t);this.Gs<=2*i&&(i=Math.floor(.5*(this.Gs-1)));const n=Math.max(Math.floor(t),i);return this.Gs<=2*n?Math.max(Math.floor(t),Math.floor(1*t)):n}ye(t,i,n){if(null===this.It)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h="";const l=this.ke(e);let a=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.Pe!==h&&(s.fillStyle=n.Pe,h=n.Pe);let o=Math.round(n.st*e)-Math.floor(.5*this.Gs);const _=o+this.Gs-1,u=Math.round(Math.min(n.re,n.he)*r),c=Math.round(Math.max(n.re,n.he)*r);if(null!==a&&(o=Math.max(a+1,o),o=Math.min(o,_)),this.It.Ks*e>2*l)N(s,o,u,_-o+1,c-u+1,l);else{const t=_-o+1;s.fillRect(o,u,t,c-u+1)}a=_}}Ce(t,i,n){if(null===this.It)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h="";const l=this.ke(e);for(let t=n.from;t<n.to;t++){const n=i[t];let a=Math.round(Math.min(n.re,n.he)*r),o=Math.round(Math.max(n.re,n.he)*r),_=Math.round(n.st*e)-Math.floor(.5*this.Gs),u=_+this.Gs-1;if(n.ie!==h){const t=n.ie;s.fillStyle=t,h=t}this.It.ui&&(_+=l,a+=l,u-=l,o-=l),a>o||s.fillRect(_,a,u-_+1,o-a+1)}}}class zt extends Ct{constructor(){super(...arguments),this.Os=new Lt}qs(t,i,n){return Object.assign(Object.assign({},this.ae(t,i,n)),n.Es(t))}Ws(){const t=this.Ts.F();this.Os.tt({An:this.ks,Ks:this.Ps.yt().Ks(),Se:t.wickVisible,ui:t.borderVisible,it:this.Cs})}}class It extends L{constructor(){super(...arguments),this.It=null,this.Re=[]}tt(t){this.It=t,this.Re=[]}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.It||0===this.It.nt.length||null===this.It.it)return;this.Re.length||this.De(i);const s=Math.max(1,Math.floor(n)),e=Math.round(this.It.Oe*n)-Math.floor(s/2),r=e+s;for(let i=this.It.it.from;i<this.It.it.to;i++){const h=this.It.nt[i],l=this.Re[i-this.It.it.from],a=Math.round(h.et*n);let o,_;t.fillStyle=h.ie,a<=e?(o=a,_=r):(o=e,_=a-Math.floor(s/2)+s),t.fillRect(l.Ms,o,l.ci-l.Ms+1,_-o)}}De(t){if(null===this.It||0===this.It.nt.length||null===this.It.it)return void(this.Re=[]);const i=Math.ceil(this.It.Ks*t)<=1?0:Math.max(1,Math.floor(t)),n=Math.round(this.It.Ks*t)-i;this.Re=new Array(this.It.it.to-this.It.it.from);for(let i=this.It.it.from;i<this.It.it.to;i++){const s=this.It.nt[i],e=Math.round(s.st*t);let r,h;if(n%2){const t=(n-1)/2;r=e-t,h=e+t}else{const t=n/2;r=e-t,h=e+t-1}this.Re[i-this.It.it.from]={Ms:r,ci:h,Be:e,Ee:s.st*t,_t:s._t}}for(let t=this.It.it.from+1;t<this.It.it.to;t++){const n=this.Re[t-this.It.it.from],s=this.Re[t-this.It.it.from-1];n._t===s._t+1&&(n.Ms-s.ci!==i+1&&(s.Be>s.Ee?s.ci=n.Ms-i-1:n.Ms=s.ci+i+1))}let s=Math.ceil(this.It.Ks*t);for(let t=this.It.it.from;t<this.It.it.to;t++){const i=this.Re[t-this.It.it.from];i.ci<i.Ms&&(i.ci=i.Ms);const n=i.ci-i.Ms+1;s=Math.min(n,s)}if(i>0&&s<4)for(let t=this.It.it.from;t<this.It.it.to;t++){const i=this.Re[t-this.It.it.from];i.ci-i.Ms+1>s&&(i.Be>i.Ee?i.ci-=1:i.Ms+=1)}}}class Nt extends xt{constructor(){super(...arguments),this.Os=new It}qs(t,i,n){return Object.assign(Object.assign({},this.Hs(t,i)),n.Es(t))}Ws(){const t={nt:this.ks,Ks:this.Ps.yt().Ks(),it:this.Cs,Oe:this.Ts.Ot().Dt(this.Ts.F().base,h(this.Ts.Tt()).Bt)};this.Os.tt(t)}}class Vt extends xt{constructor(){super(...arguments),this.Os=new vt}qs(t,i,n){return Object.assign(Object.assign({},this.Hs(t,i)),n.Es(t))}Ws(){const t=this.Ts.F(),i={nt:this.ks,Ft:t.lineStyle,cs:t.lineType,rt:t.lineWidth,it:this.Cs,us:this.Ps.yt().Ks()};this.Os.tt(i)}}const Ft=/[2-9]/g;class Wt{constructor(t=50){this.Ae=0,this.Le=1,this.ze=1,this.Ie={},this.Ne=new Map,this.Ve=t}Fe(){this.Ae=0,this.Ne.clear(),this.Le=1,this.ze=1,this.Ie={}}Si(t,i,n){return this.We(t,i,n).width}Mi(t,i,n){const s=this.We(t,i,n);return((s.actualBoundingBoxAscent||0)-(s.actualBoundingBoxDescent||0))/2}We(t,i,n){const s=n||Ft,e=String(i).replace(s,"0");if(this.Ne.has(e))return r(this.Ne.get(e)).je;if(this.Ae===this.Ve){const t=this.Ie[this.ze];delete this.Ie[this.ze],this.Ne.delete(t),this.ze++,this.Ae--}t.save(),t.textBaseline="middle";const h=t.measureText(e);return t.restore(),0===h.width&&i.length||(this.Ne.set(e,{je:h,$e:this.Le}),this.Ie[this.Le]=e,this.Ae++,this.Le++),h}}class jt{constructor(t){this.He=null,this.S=null,this.Ue="right",this.qe=t}Ye(t,i,n){this.He=t,this.S=i,this.Ue=n}X(t){null!==this.S&&null!==this.He&&this.He.X(t,this.S,this.qe,this.Ue)}}class $t{constructor(t,i,n){this.Xe=t,this.qe=new Wt(50),this.Ze=i,this.V=n,this.W=-1,this.jt=new jt(this.qe)}Mt(){const t=this.V.Ke(this.Ze);if(null===t)return null;const i=t.Ge(this.Ze)?t.Je():this.Ze.Ot();if(null===i)return null;const n=t.Qe(i);if("overlay"===n)return null;const s=this.V.tr();return s.T!==this.W&&(this.W=s.T,this.qe.Fe()),this.jt.Ye(this.Xe.Li(),s,n),this.jt}}class Ht extends L{constructor(){super(...arguments),this.It=null}tt(t){this.It=t}ir(t,i){var n;if(!(null===(n=this.It)||void 0===n?void 0:n.Ct))return null;const{et:s,rt:e,nr:r}=this.It;return i>=s-e-7&&i<=s+e+7?{sr:this.It,nr:r}:null}Z({context:t,bitmapSize:i,horizontalPixelRatio:e,verticalPixelRatio:r}){if(null===this.It)return;if(!1===this.It.Ct)return;const h=Math.round(this.It.et*r);h<0||h>i.height||(t.lineCap="butt",t.strokeStyle=this.It.D,t.lineWidth=Math.floor(this.It.rt*e),n(t,this.It.Ft),s(t,h,0,i.width))}}class Ut{constructor(t){this.er={et:0,D:"rgba(0, 0, 0, 0)",rt:1,Ft:0,Ct:!1},this.rr=new Ht,this.vt=!0,this.Ts=t,this.Ps=t.Ut(),this.rr.tt(this.er)}gt(){this.vt=!0}Mt(){return this.Ts.Ct()?(this.vt&&(this.hr(),this.vt=!1),this.rr):null}}class qt extends Ut{constructor(t){super(t)}hr(){this.er.Ct=!1;const t=this.Ts.Ot(),i=t.lr().lr;if(2!==i&&3!==i)return;const n=this.Ts.F();if(!n.baseLineVisible||!this.Ts.Ct())return;const s=this.Ts.Tt();null!==s&&(this.er.Ct=!0,this.er.et=t.Dt(s.Bt,s.Bt),this.er.D=n.baseLineColor,this.er.rt=n.baseLineWidth,this.er.Ft=n.baseLineStyle)}}class Yt extends L{constructor(){super(...arguments),this.It=null}tt(t){this.It=t}ar(){return this.It}Z({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){const s=this.It;if(null===s)return;const e=Math.max(1,Math.floor(i)),r=e%2/2,h=Math.round(s.Ee.x*i)+r,l=s.Ee.y*n;t.fillStyle=s._r,t.beginPath();const a=Math.max(2,1.5*s.ur)*i;t.arc(h,l,a,0,2*Math.PI,!1),t.fill(),t.fillStyle=s.cr,t.beginPath(),t.arc(h,l,s.lt*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=e,t.strokeStyle=s.dr,t.beginPath(),t.arc(h,l,s.lt*i+e/2,0,2*Math.PI,!1),t.stroke()}}const Xt=[{pr:0,vr:.25,mr:4,br:10,gr:.25,wr:0,Mr:.4,Sr:.8},{pr:.25,vr:.525,mr:10,br:14,gr:0,wr:0,Mr:.8,Sr:0},{pr:.525,vr:1,mr:14,br:14,gr:0,wr:0,Mr:0,Sr:0}];function Zt(t,i,n,s){return function(t,i){if("transparent"===t)return t;const n=p(t),s=n[3];return`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${i*s})`}(t,n+(s-n)*i)}function Kt(t,i){const n=t%2600/2600;let s;for(const t of Xt)if(n>=t.pr&&n<=t.vr){s=t;break}e(void 0!==s,"Last price animation internal logic error");const r=(n-s.pr)/(s.vr-s.pr);return{cr:Zt(i,r,s.gr,s.wr),dr:Zt(i,r,s.Mr,s.Sr),lt:(h=r,l=s.mr,a=s.br,l+(a-l)*h)};var h,l,a}class Gt{constructor(t){this.jt=new Yt,this.vt=!0,this.yr=!0,this.kr=performance.now(),this.Cr=this.kr-1,this.Tr=t}Pr(){this.Cr=this.kr-1,this.gt()}Rr(){if(this.gt(),2===this.Tr.F().lastPriceAnimation){const t=performance.now(),i=this.Cr-t;if(i>0)return void(i<650&&(this.Cr+=2600));this.kr=t,this.Cr=t+2600}}gt(){this.vt=!0}Dr(){this.yr=!0}Ct(){return 0!==this.Tr.F().lastPriceAnimation}Or(){switch(this.Tr.F().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.Cr}}Mt(){return this.vt?(this.St(),this.vt=!1,this.yr=!1):this.yr&&(this.Br(),this.yr=!1),this.jt}St(){this.jt.tt(null);const t=this.Tr.Ut().yt(),i=t.Ns(),n=this.Tr.Tt();if(null===i||null===n)return;const s=this.Tr.Er(!0);if(s.Ar||!i.Lr(s.Ys))return;const e={x:t.zt(s.Ys),y:this.Tr.Ot().Dt(s.ut,n.Bt)},r=s.D,h=this.Tr.F().lineWidth,l=Kt(this.zr(),r);this.jt.tt({_r:r,ur:h,cr:l.cr,dr:l.dr,lt:l.lt,Ee:e})}Br(){const t=this.jt.ar();if(null!==t){const i=Kt(this.zr(),t._r);t.cr=i.cr,t.dr=i.dr,t.lt=i.lt}}zr(){return this.Or()?performance.now()-this.kr:2599}}function Jt(t,i){return Ot(Math.min(Math.max(t,12),30)*i)}function Qt(t,i){switch(t){case"arrowDown":case"arrowUp":return Jt(i,1);case"circle":return Jt(i,.8);case"square":return Jt(i,.7)}}function ti(t){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(Jt(t,1))}function ii(t){return Math.max(Jt(t,.1),3)}function ni(t,i,n,s,e){const r=Qt("square",n),h=(r-1)/2,l=t-h,a=i-h;return s>=l&&s<=l+r&&e>=a&&e<=a+r}function si(t,i,n,s,e){const r=(Qt("arrowUp",e)-1)/2,h=(Ot(e/2)-1)/2;i.beginPath(),t?(i.moveTo(n-r,s),i.lineTo(n,s-r),i.lineTo(n+r,s),i.lineTo(n+h,s),i.lineTo(n+h,s+r),i.lineTo(n-h,s+r),i.lineTo(n-h,s)):(i.moveTo(n-r,s),i.lineTo(n,s+r),i.lineTo(n+r,s),i.lineTo(n+h,s),i.lineTo(n+h,s-r),i.lineTo(n-h,s-r),i.lineTo(n-h,s)),i.fill()}function ei(t,i,n,s,e,r){return ni(i,n,s,e,r)}class ri extends D{constructor(){super(...arguments),this.It=null,this.qe=new Wt,this.W=-1,this.j="",this.Ir=""}tt(t){this.It=t}Ye(t,i){this.W===t&&this.j===i||(this.W=t,this.j=i,this.Ir=T(t,i),this.qe.Fe())}ir(t,i){if(null===this.It||null===this.It.it)return null;for(let n=this.It.it.from;n<this.It.it.to;n++){const s=this.It.nt[n];if(li(s,t,i))return{sr:s.Nr,nr:s.nr}}return null}Z({context:t},i,n){if(null!==this.It&&null!==this.It.it){t.textBaseline="middle",t.font=this.Ir;for(let i=this.It.it.from;i<this.It.it.to;i++){const n=this.It.nt[i];void 0!==n.Gt&&(n.Gt.$i=this.qe.Si(t,n.Gt.Vr),n.Gt.Lt=this.W,n.Gt.st=n.st-n.Gt.$i/2),hi(n,t)}}}}function hi(t,i){i.fillStyle=t.D,void 0!==t.Gt&&function(t,i,n,s){t.fillText(i,n,s)}(i,t.Gt.Vr,t.Gt.st,t.Gt.et),function(t,i){if(0===t.Vs)return;switch(t.Fr){case"arrowDown":return void si(!1,i,t.st,t.et,t.Vs);case"arrowUp":return void si(!0,i,t.st,t.et,t.Vs);case"circle":return void function(t,i,n,s){const e=(Qt("circle",s)-1)/2;t.beginPath(),t.arc(i,n,e,0,2*Math.PI,!1),t.fill()}(i,t.st,t.et,t.Vs);case"square":return void function(t,i,n,s){const e=Qt("square",s),r=(e-1)/2,h=i-r,l=n-r;t.fillRect(h,l,e,e)}(i,t.st,t.et,t.Vs)}t.Fr}(t,i)}function li(t,i,n){return!(void 0===t.Gt||!function(t,i,n,s,e,r){const h=s/2;return e>=t&&e<=t+n&&r>=i-h&&r<=i+h}(t.Gt.st,t.Gt.et,t.Gt.$i,t.Gt.Lt,i,n))||function(t,i,n){if(0===t.Vs)return!1;switch(t.Fr){case"arrowDown":case"arrowUp":return ei(0,t.st,t.et,t.Vs,i,n);case"circle":return function(t,i,n,s,e){const r=2+Qt("circle",n)/2,h=t-s,l=i-e;return Math.sqrt(h*h+l*l)<=r}(t.st,t.et,t.Vs,i,n);case"square":return ni(t.st,t.et,t.Vs,i,n)}}(t,i,n)}function ai(t,i,n,s,e,r,h,l,a){const o=g(n)?n:n.ce,_=g(n)?n:n._e,u=g(n)?n:n.ue,c=g(i.size)?Math.max(i.size,0):1,d=ti(l.Ks())*c,f=d/2;switch(t.Vs=d,i.position){case"inBar":return t.et=h.Dt(o,a),void(void 0!==t.Gt&&(t.Gt.et=t.et+f+r+.6*e));case"aboveBar":return t.et=h.Dt(_,a)-f-s.Wr,void 0!==t.Gt&&(t.Gt.et=t.et-f-.6*e,s.Wr+=1.2*e),void(s.Wr+=d+r);case"belowBar":return t.et=h.Dt(u,a)+f+s.jr,void 0!==t.Gt&&(t.Gt.et=t.et+f+r+.6*e,s.jr+=1.2*e),void(s.jr+=d+r)}i.position}class oi{constructor(t,i){this.vt=!0,this.$r=!0,this.Hr=!0,this.Ur=null,this.jt=new ri,this.Tr=t,this.Hi=i,this.It={nt:[],it:null}}gt(t){this.vt=!0,this.Hr=!0,"data"===t&&(this.$r=!0)}Mt(t){if(!this.Tr.Ct())return null;this.vt&&this.qr();const i=this.Hi.F().layout;return this.jt.Ye(i.fontSize,i.fontFamily),this.jt.tt(this.It),this.jt}Yr(){if(this.Hr){if(this.Tr.Xr().length>0){const t=this.Hi.yt().Ks(),i=ii(t),n=1.5*ti(t)+2*i;this.Ur={above:n,below:n}}else this.Ur=null;this.Hr=!1}return this.Ur}qr(){const t=this.Tr.Ot(),i=this.Hi.yt(),n=this.Tr.Xr();this.$r&&(this.It.nt=n.map((t=>({_t:t.time,st:0,et:0,Vs:0,Fr:t.shape,D:t.color,Nr:t.internalId,nr:t.id,Gt:void 0}))),this.$r=!1);const s=this.Hi.F().layout;this.It.it=null;const e=i.Ns();if(null===e)return;const r=this.Tr.Tt();if(null===r)return;if(0===this.It.nt.length)return;let h=NaN;const l=ii(i.Ks()),a={Wr:l,jr:l};this.It.it=Mt(this.It.nt,e,!0);for(let e=this.It.it.from;e<this.It.it.to;e++){const o=n[e];o.time!==h&&(a.Wr=l,a.jr=l,h=o.time);const _=this.It.nt[e];_.st=i.zt(o.time),void 0!==o.text&&o.text.length>0&&(_.Gt={Vr:o.text,st:0,et:0,$i:0,Lt:0});const u=this.Tr.Zr(o.time);null!==u&&ai(_,o,u,a,s.fontSize,l,t,i,r.Bt)}this.vt=!1}}class _i extends Ut{constructor(t){super(t)}hr(){const t=this.er;t.Ct=!1;const i=this.Ts.F();if(!i.priceLineVisible||!this.Ts.Ct())return;const n=this.Ts.Er(0===i.priceLineSource);n.Ar||(t.Ct=!0,t.et=n.yi,t.D=this.Ts.Kr(n.D),t.rt=i.priceLineWidth,t.Ft=i.priceLineStyle)}}class ui extends U{constructor(t){super(),this.$t=t}zi(t,i,n){t.Ct=!1,i.Ct=!1;const s=this.$t;if(!s.Ct())return;const e=s.F(),r=e.lastValueVisible,h=""!==s.Gr(),l=0===e.seriesLastValueMode,a=s.Er(!1);if(a.Ar)return;r&&(t.Gt=this.Jr(a,r,l),t.Ct=0!==t.Gt.length),(h||l)&&(i.Gt=this.Qr(a,r,h,l),i.Ct=i.Gt.length>0);const o=s.Kr(a.D),_=v(o);n.t=_.t,n.yi=a.yi,i.Et=s.Ut().At(a.yi/s.Ot().Lt()),t.Et=o,t.D=_.i,i.D=_.i}Qr(t,i,n,s){let e="";const r=this.$t.Gr();return n&&0!==r.length&&(e+=`${r} `),i&&s&&(e+=this.$t.Ot().th()?t.ih:t.nh),e.trim()}Jr(t,i,n){return i?n?this.$t.Ot().th()?t.nh:t.ih:t.Gt:""}}class ci{constructor(t,i){this.sh=t,this.eh=i}rh(t){return null!==t&&(this.sh===t.sh&&this.eh===t.eh)}hh(){return new ci(this.sh,this.eh)}lh(){return this.sh}ah(){return this.eh}oh(){return this.eh-this.sh}Vi(){return this.eh===this.sh||Number.isNaN(this.eh)||Number.isNaN(this.sh)}Qn(t){return null===t?this:new ci(Math.min(this.lh(),t.lh()),Math.max(this.ah(),t.ah()))}_h(t){if(!g(t))return;if(0===this.eh-this.sh)return;const i=.5*(this.eh+this.sh);let n=this.eh-i,s=this.sh-i;n*=t,s*=t,this.eh=i+n,this.sh=i+s}uh(t){g(t)&&(this.eh+=t,this.sh+=t)}dh(){return{minValue:this.sh,maxValue:this.eh}}static fh(t){return null===t?null:new ci(t.minValue,t.maxValue)}}class di{constructor(t,i){this.ph=t,this.mh=i||null}bh(){return this.ph}gh(){return this.mh}dh(){return null===this.ph?null:{priceRange:this.ph.dh(),margins:this.mh||void 0}}static fh(t){return null===t?null:new di(ci.fh(t.priceRange),t.margins)}}class fi extends Ut{constructor(t,i){super(t),this.wh=i}hr(){const t=this.er;t.Ct=!1;const i=this.wh.F();if(!this.Ts.Ct()||!i.lineVisible)return;const n=this.wh.Mh();null!==n&&(t.Ct=!0,t.et=n,t.D=i.color,t.rt=i.lineWidth,t.Ft=i.lineStyle,t.nr=this.wh.F().id)}}class pi extends U{constructor(t,i){super(),this.Tr=t,this.wh=i}zi(t,i,n){t.Ct=!1,i.Ct=!1;const s=this.wh.F(),e=s.axisLabelVisible,r=""!==s.title,h=this.Tr;if(!e||!h.Ct())return;const l=this.wh.Mh();if(null===l)return;r&&(i.Gt=s.title,i.Ct=!0),i.Et=h.Ut().At(l/h.Ot().Lt()),t.Gt=this.Sh(s.price),t.Ct=!0;const a=v(s.axisLabelColor||s.color);n.t=a.t;const o=s.axisLabelTextColor||a.i;t.D=o,i.D=o,n.yi=l}Sh(t){const i=this.Tr.Tt();return null===i?"":this.Tr.Ot().Fi(t,i.Bt)}}class vi{constructor(t,i){this.Tr=t,this.un=i,this.xh=new fi(t,this),this.Xe=new pi(t,this),this.yh=new $t(this.Xe,t,t.Ut())}kh(t){b(this.un,t),this.gt(),this.Tr.Ut().Ch()}F(){return this.un}Th(){return this.xh}Ph(){return this.yh}Rh(){return this.Xe}gt(){this.xh.gt(),this.Xe.gt()}Mh(){const t=this.Tr,i=t.Ot();if(t.Ut().yt().Vi()||i.Vi())return null;const n=t.Tt();return null===n?null:i.Dt(this.un.price,n.Bt)}}class mi extends K{constructor(t){super(),this.Hi=t}Ut(){return this.Hi}}const bi={Bar:(t,i,n,s)=>{var e;const r=i.upColor,a=i.downColor,o=h(t(n,s)),_=l(o.Bt[0])<=l(o.Bt[3]);return{ie:null!==(e=o.D)&&void 0!==e?e:_?r:a}},Candlestick:(t,i,n,s)=>{var e,r,a;const o=i.upColor,_=i.downColor,u=i.borderUpColor,c=i.borderDownColor,d=i.wickUpColor,f=i.wickDownColor,p=h(t(n,s)),v=l(p.Bt[0])<=l(p.Bt[3]);return{ie:null!==(e=p.D)&&void 0!==e?e:v?o:_,Pe:null!==(r=p.Et)&&void 0!==r?r:v?u:c,Te:null!==(a=p.Dh)&&void 0!==a?a:v?d:f}},Area:(t,i,n,s)=>{var e,r,l,a;const o=h(t(n,s));return{ie:null!==(e=o.ot)&&void 0!==e?e:i.lineColor,ot:null!==(r=o.ot)&&void 0!==r?r:i.lineColor,bs:null!==(l=o.bs)&&void 0!==l?l:i.topColor,gs:null!==(a=o.gs)&&void 0!==a?a:i.bottomColor}},Baseline:(t,i,n,s)=>{var e,r,l,a,o,_;const u=h(t(n,s));return{ie:u.Bt[3]>=i.baseValue.price?i.topLineColor:i.bottomLineColor,be:null!==(e=u.be)&&void 0!==e?e:i.topLineColor,ge:null!==(r=u.ge)&&void 0!==r?r:i.bottomLineColor,de:null!==(l=u.de)&&void 0!==l?l:i.topFillColor1,fe:null!==(a=u.fe)&&void 0!==a?a:i.topFillColor2,pe:null!==(o=u.pe)&&void 0!==o?o:i.bottomFillColor1,ve:null!==(_=u.ve)&&void 0!==_?_:i.bottomFillColor2}},Line:(t,i,n,s)=>{var e,r;const l=h(t(n,s));return{ie:null!==(e=l.D)&&void 0!==e?e:i.color,ot:null!==(r=l.D)&&void 0!==r?r:i.color}},Histogram:(t,i,n,s)=>{var e;return{ie:null!==(e=h(t(n,s)).D)&&void 0!==e?e:i.color}}};class gi{constructor(t){this.Oh=(t,i)=>void 0!==i?i.Bt:this.Tr.An().Bh(t),this.Tr=t,this.Eh=bi[t.Ah()]}Es(t,i){return this.Eh(this.Oh,this.Tr.F(),t,i)}}var wi;!function(t){t[t.NearestLeft=-1]="NearestLeft",t[t.None=0]="None",t[t.NearestRight=1]="NearestRight"}(wi||(wi={}));const Mi=30;class Si{constructor(){this.Lh=[],this.zh=new Map,this.Ih=new Map}Nh(){return this.Vs()>0?this.Lh[this.Lh.length-1]:null}Vh(){return this.Vs()>0?this.Fh(0):null}En(){return this.Vs()>0?this.Fh(this.Lh.length-1):null}Vs(){return this.Lh.length}Vi(){return 0===this.Vs()}Lr(t){return null!==this.Wh(t,0)}Bh(t){return this.jh(t)}jh(t,i=0){const n=this.Wh(t,i);return null===n?null:Object.assign(Object.assign({},this.$h(n)),{Ys:this.Fh(n)})}Us(){return this.Lh}Hh(t,i,n){if(this.Vi())return null;let s=null;for(const e of n){s=xi(s,this.Uh(t,i,e))}return s}tt(t){this.Ih.clear(),this.zh.clear(),this.Lh=t}Fh(t){return this.Lh[t].Ys}$h(t){return this.Lh[t]}Wh(t,i){const n=this.qh(t);if(null===n&&0!==i)switch(i){case-1:return this.Yh(t);case 1:return this.Xh(t);default:throw new TypeError("Unknown search mode")}return n}Yh(t){let i=this.Zh(t);return i>0&&(i-=1),i!==this.Lh.length&&this.Fh(i)<t?i:null}Xh(t){const i=this.Kh(t);return i!==this.Lh.length&&t<this.Fh(i)?i:null}qh(t){const i=this.Zh(t);return i===this.Lh.length||t<this.Lh[i].Ys?null:i}Zh(t){return mt(this.Lh,t,((t,i)=>t.Ys<i))}Kh(t){return bt(this.Lh,t,((t,i)=>i.Ys>t))}Gh(t,i,n){let s=null;for(let e=t;e<i;e++){const t=this.Lh[e].Bt[n];Number.isNaN(t)||(null===s?s={Jh:t,Qh:t}:(t<s.Jh&&(s.Jh=t),t>s.Qh&&(s.Qh=t)))}return s}Uh(t,i,n){if(this.Vi())return null;let s=null;const e=h(this.Vh()),r=h(this.En()),l=Math.max(t,e),a=Math.min(i,r),o=Math.ceil(l/Mi)*Mi,_=Math.max(o,Math.floor(a/Mi)*Mi);{const t=this.Zh(l),e=this.Kh(Math.min(a,o,i));s=xi(s,this.Gh(t,e,n))}let u=this.zh.get(n);void 0===u&&(u=new Map,this.zh.set(n,u));for(let t=Math.max(o+1,l);t<_;t+=Mi){const i=Math.floor(t/Mi);let e=u.get(i);if(void 0===e){const t=this.Zh(i*Mi),s=this.Kh((i+1)*Mi-1);e=this.Gh(t,s,n),u.set(i,e)}s=xi(s,e)}{const t=this.Zh(_),i=this.Kh(a);s=xi(s,this.Gh(t,i,n))}return s}}function xi(t,i){if(null===t)return i;if(null===i)return t;return{Jh:Math.min(t.Jh,i.Jh),Qh:Math.max(t.Qh,i.Qh)}}class yi extends mi{constructor(t,i,n){super(t),this.It=new Si,this.xh=new _i(this),this.tl=[],this.il=new qt(this),this.nl=null,this.sl=null,this.el=[],this.rl=[],this.hl=null,this.un=i,this.ll=n;const s=new ui(this);this.rn=[s],this.yh=new $t(s,this,t),"Area"!==n&&"Line"!==n&&"Baseline"!==n||(this.nl=new Gt(this)),this.al(),this.ol()}M(){null!==this.hl&&clearTimeout(this.hl)}Kr(t){return this.un.priceLineColor||t}Er(t){const i={Ar:!0},n=this.Ot();if(this.Ut().yt().Vi()||n.Vi()||this.It.Vi())return i;const s=this.Ut().yt().Ns(),e=this.Tt();if(null===s||null===e)return i;let r,h;if(t){const t=this.It.Nh();if(null===t)return i;r=t,h=t.Ys}else{const t=this.It.jh(s.ci(),-1);if(null===t)return i;if(r=this.It.Bh(t.Ys),null===r)return i;h=t.Ys}const l=r.Bt[3],a=this.As().Es(h,{Bt:r}),o=n.Dt(l,e.Bt);return{Ar:!1,ut:l,Gt:n.Fi(l,e.Bt),ih:n._l(l),nh:n.ul(l,e.Bt),D:a.ie,yi:o,Ys:h}}As(){return null!==this.sl||(this.sl=new gi(this)),this.sl}F(){return this.un}kh(t){const i=t.priceScaleId;void 0!==i&&i!==this.un.priceScaleId&&this.Ut().cl(this,i),b(this.un,t),void 0!==t.priceFormat&&(this.al(),this.Ut().dl()),this.Ut().fl(this),this.Ut().pl(),this.bn.gt("options")}tt(t,i){this.It.tt(t),this.vl(),this.bn.gt("data"),this.cn.gt("data"),null!==this.nl&&(i&&i.ml?this.nl.Rr():0===t.length&&this.nl.Pr());const n=this.Ut().Ke(this);this.Ut().bl(n),this.Ut().fl(this),this.Ut().pl(),this.Ut().Ch()}gl(t){this.el=t,this.vl();const i=this.Ut().Ke(this);this.cn.gt("data"),this.Ut().bl(i),this.Ut().fl(this),this.Ut().pl(),this.Ut().Ch()}wl(){return this.el}Xr(){return this.rl}Ml(t){const i=new vi(this,t);return this.tl.push(i),this.Ut().fl(this),i}Sl(t){const i=this.tl.indexOf(t);-1!==i&&this.tl.splice(i,1),this.Ut().fl(this)}Ah(){return this.ll}Tt(){const t=this.xl();return null===t?null:{Bt:t.Bt[3],yl:t._t}}xl(){const t=this.Ut().yt().Ns();if(null===t)return null;const i=t.Ms();return this.It.jh(i,1)}An(){return this.It}Zr(t){const i=this.It.Bh(t);return null===i?null:"Bar"===this.ll||"Candlestick"===this.ll?{oe:i.Bt[0],_e:i.Bt[1],ue:i.Bt[2],ce:i.Bt[3]}:i.Bt[3]}kl(t){const i=this.nl;return null!==i&&i.Ct()?(null===this.hl&&i.Or()&&(this.hl=setTimeout((()=>{this.hl=null,this.Ut().Cl()}),0)),i.Dr(),[i]):[]}Tn(){const t=[];this.Tl()||t.push(this.il),t.push(this.bn,this.xh,this.cn);const i=this.tl.map((t=>t.Th()));return t.push(...i),t}Ji(t){return[this.yh,...this.tl.map((t=>t.Ph()))]}Pn(t,i){if(i!==this.Yi&&!this.Tl())return[];const n=[...this.rn];for(const t of this.tl)n.push(t.Rh());return n}Pl(t,i){if(void 0!==this.un.autoscaleInfoProvider){const n=this.un.autoscaleInfoProvider((()=>{const n=this.Rl(t,i);return null===n?null:n.dh()}));return di.fh(n)}return this.Rl(t,i)}Dl(){return this.un.priceFormat.minMove}Ol(){return this.Bl}Dn(){var t;this.bn.gt(),this.cn.gt();for(const t of this.rn)t.gt();for(const t of this.tl)t.gt();this.xh.gt(),this.il.gt(),null===(t=this.nl)||void 0===t||t.gt()}Ot(){return h(super.Ot())}kt(t){if(!(("Line"===this.ll||"Area"===this.ll||"Baseline"===this.ll)&&this.un.crosshairMarkerVisible))return null;const i=this.It.Bh(t);if(null===i)return null;return{ut:i.Bt[3],lt:this.El(),Et:this.Al(),Rt:this.Ll(),Pt:this.zl(t)}}Gr(){return this.un.title}Ct