"use strict";(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[2616],{50765:(t,e,i)=>{i.r(e),i.d(e,{svgRenderer:()=>S});var s=i(50151),r=i(59224);const n=(0,r.getLogger)("Chart.SvgParser");function o(t,e){const i=t.split(/[,\s]/).map((t=>parseFloat(t.trim())));let s=0;for(const t of i){if(!Number.isFinite(t)&&s(0,s.ensureDefined)(e.getStyle(t,i)):t=>n}const o=t.getAttribute("stroke");if(null!==o){const t=g(o);r.getStrokeStyle=null!==t?i=>(0,s.ensureDefined)(e.getStyle(t,i)):t=>o}const l=u(t,"stroke-width");Number.isFinite(l)&&(r.strokeWidth=l);const c=u(t,"opacity");Number.isFinite(c)&&(r.fillOpacity=c,r.strokeOpacity=c);const h=u(t,"stroke-opacity");Number.isFinite(h)&&(r.strokeOpacity=h);const d=u(t,"fill-opacity");if(Number.isFinite(d)&&(r.fillOpacity=d),i){const e=a(t);null!==e&&(r.transform=e)}return r}class p{constructor(t){this._transformOperations=t}apply(t,e){null!==this._transformOperations?(t.save(),c(t,this._transformOperations)):t.restore()}}class f{constructor(t,e,i){this._styleData={...i,...d(t,e,!0)}}apply(t,e){if(!this._isValid())return;const{getFillStyle:i,getStrokeStyle:s,strokeWidth:r,transform:n,strokeOpacity:o,fillOpacity:l}=this._styleData,a=void 0!==n||void 0!==o||void 0!==l;a&&(t.save(),void 0!==n&&c(t,n)),this._render(t);const u=null==i?void 0:i(t);"none"!==u&&(e.doNotApplyColors||(void 0!==l&&(t.globalAlpha=l),t.fillStyle=null!=u?u:"black"),this._fill(t));const h=null==s?void 0:s(t);void 0!==h&&"none"!==h&&(void 0!==r&&(t.lineWidth=r),e.doNotApplyColors||(void 0!==l&&(t.globalAlpha=l),t.strokeStyle=h),this._stroke(t)),a&&t.restore()}_fill(t){t.fill()}_stroke(t){t.stroke() }}class y extends f{constructor(t,e,i){var s;super(t,e,i);const r=t.getAttribute("d");this._path=null!==r?new Path2D(r):null,this._fillRule=null!==(s=t.getAttribute("fill-rule"))&&void 0!==s?s:void 0}_fill(t){t.fill((0,s.ensureNotNull)(this._path),this._fillRule)}_stroke(t){t.stroke((0,s.ensureNotNull)(this._path))}_render(t){}_isValid(){return null!==this._path}}class v extends f{constructor(t,e,i){super(t,e,i),this._cx=u(t,"cx"),this._cy=u(t,"cy"),this._r=u(t,"r")}_render(t){t.beginPath(),t.arc(this._cx,this._cy,this._r,0,2*Math.PI)}_isValid(){return Number.isFinite(this._cx)&&Number.isFinite(this._cy)&&Number.isFinite(this._r)}}class _ extends f{constructor(t,e,i){super(t,e,i),this._cx=u(t,"cx"),this._cy=u(t,"cy"),this._rx=u(t,"rx"),this._ry=u(t,"ry")}_render(t){t.beginPath(),t.ellipse(this._cx,this._cy,this._rx,this._ry,0,0,2*Math.PI)}_isValid(){return Number.isFinite(this._cx)&&Number.isFinite(this._cy)&&Number.isFinite(this._rx)&&Number.isFinite(this._ry)}}class x{constructor(t){this._originalViewBox=t}apply(t,e){const i=e.targetViewBox;t.translate(i.x,i.y),t.scale(i.width/this._originalViewBox.width,i.height/this._originalViewBox.height),t.beginPath(),t.rect(0,0,this._originalViewBox.width,this._originalViewBox.height),t.clip(),t.translate(-this._originalViewBox.x,-this._originalViewBox.y)}}const b=(0,r.getLogger)("Chart.SvgParser");function m(t){const e=t.getAttribute("gradientUnits");if("objectBoundingBox"===e)return void b.logWarn(`Unsupported linearGradient gradientUnits: ${e}`);const i=[],s=t.getElementsByTagName("stop");for(let t=0;t{const e=t.createLinearGradient(r,n,o,l);for(const t of i)e.addColorStop(t[0],t[1]);return e}}const w=(0,r.getLogger)("Chart.SvgParser");const k=new DOMParser,N=(0,r.getLogger)("Chart.SvgParser");function F(t,e,i,s){var r;const n=t.children;let o,l=s;"g"!==t.tagName&&"svg"!==t.tagName||(l={...l,...d(t,i,!1)},o=null!==(r=a(t))&&void 0!==r?r:void 0),void 0!==o&&e.push(new p(o));for(let t=0;t{}};const a=r.getElementsByTagName("defs");return a.length>0&&(l=function(t){const e={},i=t.children;for(let t=0;t{const r=e[t];if(!r)return;let n=s.get(i) ;void 0===n&&(n=new Map,s.set(i,n));const o=n.get(t);if(void 0!==o)return o;const l=r(i);return n.set(t,l),l}}}(a[0])),F(r,i,l),{viewBox:()=>o,render:(t,e)=>{t.save();for(const s of i)s.apply(t,e);t.restore()}}}}}]);