(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[62877],{900359:t=>{t.exports={fade:"fade-zUA5953i",hidden:"hidden-zUA5953i"}},630834:(t,e,i)=>{"use strict";function s(t){return t.getElementsByTagName("div").item(0)?.getElementsByTagName("table").item(0)?.getElementsByTagName("tr").item(0)?.getElementsByTagName("td").item(1)?.getElementsByTagName("div").item(0)??null}i.d(e,{getChartLayoutContainer:()=>s})},965615:(t,e,i)=>{"use strict";i.d(e,{defaultVolumeOptions:()=>r});var s=i(666957),a=i(275925);const r={scaleMargins:{top:.8,bottom:0},priceScaleId:"overlay",upColor:(0,a.applyTransparency)(s.colorsPalette["color-minty-green-500"],50),downColor:(0,a.applyTransparency)(s.colorsPalette["color-ripe-red-500"],50),visible:!1,lastValueVisible:!1,priceLineVisible:!1}},555458:(t,e,i)=>{"use strict";i.d(e,{MiniChartPlot:()=>l});var s=i(209539),a=i(757713),r=i(115676),n=i(39215),o=i(686330),h=i(781882);class l extends h.MiniChartPlotBase{constructor(t,e,i,a,r,n){super(t,e,i,r),this._seriesDataSource=null,this._cachedData=null,this._studyPlots=a,this._options=r,this._horzMargins=(0,s.default)({},h.seriesHorzMarginsDefaults,e.horzMargins),n&&this._loadCache(n)}destroy(){this._seriesDataSource?.destroy(),super.destroy()}updateHorzMargins(t){this._horzMargins=(0,s.default)(this._horzMargins,t),this._miniChart.fitContent()}reloadCache(t){this._cache=t,t?this._loadCache(t):(this._minBarIndex=null,this._maxBarIndex=null,this._cachedData=null,this._onData().then((()=>{this.fitContent()})))}requestData(){const t=this._getSeriesDataSource();this._status.setValue(0),this._noData.setValue(null),t.modifySeries(this.extendedSymbol(),(0,o.getServerInterval)(this.resolution()),this._miniChart.timeframe().value()),t.isStarted()||t.start()}clearSourceData(){this._seriesDataSource?.clearData(),this._studyPlots().forEach((t=>t.clearSourceData()))}moveSourceData(t){this._seriesDataSource?.moveData(t)}onTickmarksAdded(t,e){const i=this.maxBarIndex();this._isLastSessionInterval.value()&&null!==i&&i>=t&&i<=e&&(this.updateData(!1,!0),this.fitContent())}disconnect(){this._seriesDataSource?.stop()}isConnected(){return Boolean(this._seriesDataSource?.isStarted())}clearData(){if(super.clearData(),this._minBarIndex=null,this._maxBarIndex=null,null!==this._seriesDataSource&&(this._seriesDataSource.stop(),this.clearSourceData()),this._cache){const{minBarIndex:t,maxBarIndex:e,symbolInfo:i}=this._cache;this._minBarIndex=t,this._maxBarIndex=e,i&&(this._symbolInfo=i,this._initBarBuilder(i).then((()=>{this._isDestroyed.value()||this._onData().then((()=>{this.fitContent()}))})))}}seriesDataSource(){return this._getSeriesDataSource()}firstBar(){return(0,h.isTimePointIndex)(this._minBarIndex)?this._bars().search(this._minBarIndex):this._bars().first()}lastBar(){return(0,h.isTimePointIndex)(this._maxBarIndex)?this._bars().search(this._maxBarIndex,r.PlotRowSearchMode.NearestLeft):this._bars().last()}cacheData(){const t=this._seriesDataSource?.data()?.clone(),e=this._symbolInfo,i=this._minBarIndex,s=this._maxBarIndex ;return t&&null!==e&&null!==i&&null!==s?{data:t,symbolInfo:e,minBarIndex:i,maxBarIndex:s}:null}fitContent(){if(null===this._dataLengthInfo||0===this._dataLengthInfo.history)return;const{history:t,realtime:e,whitespaces:i,lastBarTime:s,fixLeftEdgeUntil:a=0}=this._dataLengthInfo,r=this._miniChart.widget(),n=r.paneSize().width;if(0===n)return;const{leftLogical:o,rightLogical:h,leftPx:l,rightPx:c}=this._horzMargins;let d=this._fitContentLeftIndex()-o-(null===s||a>=s?0:e),m=Math.max(d,Math.max(0,t-1)+h+i+e);if(0!==l){d-=l/((n-l)/(m-d+1))}if(0!==c){m+=c/((n-c)/(m-d+1))}if(m=Math.max(d,m),m-d<1){const t=(1-(m-d))/2;d-=t,m+=t}r.timeScale().setVisibleLogicalRange({from:d,to:m}),r.timeScale().applyOptions({lockVisibleTimeRangeOnResize:!0})}_fitContentLeftIndex(){return 0}_updateSeriesOptions(t){super._updateSeriesOptions(t),t.horzMargins&&this.updateHorzMargins(t.horzMargins)}_isMainPlot(){return!0}_dataUpdated(t,e,i){if(super._dataUpdated(t,e,i),!this._isLastSessionInterval.value()||!this._miniChart.supportRealtimeUpdates()||!i)return;const s=i.lastBarSession;0!==s&&1!==s||2!==e.lastBarSession||Promise.resolve().then((()=>{this._miniChart.setTimeframe(this._miniChart.timeframe().value(),!1,!0)}))}_onChartStyleChanged(){super._onChartStyleChanged(),this._studyPlots().forEach((t=>t.updateSeriesOptions({chartType:this._currentSeriesOptions.chartType})))}_beforeDataReady(){super._beforeDataReady(),this._studyPlots().forEach((t=>t.deleteView()))}_getSeriesDataSource(){if(null===this._seriesDataSource){const t=this._currentSeriesOptions.initialRequestOptions,e=this._seriesDataSource=new n.SeriesDataSource(this.chartSession(),"s",t),i=e.dataEvents();i.symbolResolved().subscribe(this,this._onSymbolResolved),i.symbolNotPermitted().subscribe(this,this._onSymbolNotPermitted),i.symbolGroupNotPermitted().subscribe(this,this._onSymbolGroupNotPermitted),i.intradaySpreadNotPermitted().subscribe(this,this._onIntradaySpreadNotPermitted),i.symbolInvalid().subscribe(this,this._onSymbolInvalid),i.symbolError().subscribe(this,this._onSymbolError),i.intradayExchangeNotPermitted().subscribe(this,this._onResolutionOrExchangeNotPermittedError),i.customIntervalNotPermitted().subscribe(this,this._onResolutionOrExchangeNotPermittedError),i.completed().subscribe(this,this._onDataCompleted),i.seriesError().subscribe(this,this._onDataError),i.seriesTimeFrame().subscribe(this,this._onTimeFrame),i.dataUpdated().subscribe(this,this._onDataInternal),i.created().subscribe(null,(()=>performance.mark("RFD",{detail:"Request first data"})),!0),i.created().subscribe(null,(()=>e.setFutureTickmarksMode("full_single_session"))),i.dataUpdated().subscribe(null,(()=>{performance.mark("FDR",{detail:"First data response"}),performance.measure("Response idle","RFD","FDR")}),!0)}return this._seriesDataSource}_bars(){return this._cachedData?this._cachedData.seriesData.bars():this._seriesDataSource?.data().bars()??new a.PlotList}_onTimeFrame(t,e){this._cachedData||(this._minBarIndex=t,this._maxBarIndex=e),this.updateData(!1),this._studyPlots().forEach((t=>t.updateData(!1,!0)))} _onDataCompleted(){this._cachedData&&(this._cachedData=null),this.updateData(!1,!0),super._onDataCompleted(),this.fitContent()}_onDataInternal(t,e,i){this._onData(e?void 0:i?.index)}async _loadCache(t){const{data:e,symbolInfo:i,minBarIndex:s,maxBarIndex:a}=t;this._minBarIndex=s,this._maxBarIndex=a,this._cachedData={symbol:this.extendedSymbol(),resolution:this.resolution(),timeFrame:this._miniChart.timeframe().value(),seriesData:e},this._symbolInfo=i;const r=await this._initBarBuilder(i);!this._isDestroyed.value()&&this._symbolInfo&&(this._symbolInfo!==i&&r.update(this._symbolInfo),await this._onData(),this._status.setValue(3),this.fitContent())}}},899861:(t,e,i)=>{"use strict";i.d(e,{LightweightMiniChart:()=>$});var s=i(319585),a=i(209539),r=i(185842),n=i(823291),o=i(77357),h=i(729193),l=i(656713),c=i(357963),d=i(60554),m=i(357966),u=i(994497),_=i(540768),p=i(149274),f=i(663561),b=i(965615),g=i(555458);const y=(0,s.defaultHorzScaleBehavior)();class v extends y{constructor(){super(...arguments),this._lastHash=""}shouldResetTickmarkLabels(t){const e=this.calculateItemsHash(t),i=e!==this._lastHash;return this._lastHash=e,i}calculateItemsHash(t){return t.reduce(((t,e)=>t+e.index),"")}}var S=i(875500),C=i(641422),D=i(168509),T=i(690522),P=i(630834),w=i(476989),k=i(900359);const M=(0,o.getLogger)("Chart.MiniChart"),x={value:"12M",type:"period-back"},I={top:.01,bottom:.01},O={chartType:"area",lineWidth:2,priceLineVisible:!1,crosshairMarkerVisible:!1,lastValueVisible:!1,scaleMargins:I},F={lineWidth:2,priceLineVisible:!1,crosshairMarkerVisible:!1,lastValueVisible:!1,scaleMargins:I},R={chartType:"baseline"},V={priceLineVisible:!1,lastValueVisible:!1,scaleMargins:I},z={priceLineVisible:!1,lastValueVisible:!1,scaleMargins:I},L={scaleMargins:I},E={chartType:"pretty-histogram",scaleMargins:I,radius:2,widthPercent:50},B={visible:!1,color:n.colorsPalette["color-tv-blue-500"],lineWidth:1,length:9,lastValueVisible:!1,priceLineVisible:!1},N={spinner:{visible:!1,width:4,color:n.colorsPalette["color-brand"]},fade:{visible:!1,waitForStudyPlots:"none"},clearDataOnSymbolChange:!0,clearDataOnTimeframeChange:!0},U={onFirstData:null,description:"",showDescription:!0,noDataTimeout:15e3,timeframe:{visible:!1,value:x},chartOptions:{minWidth:0,minHeight:0,chart:{grid:{horzLines:{color:"rgba(120, 123, 134, 0.1)",visible:!1},vertLines:{color:"#ffffff",visible:!1}},crosshair:{horzLine:{visible:!1,style:3,width:1,labelVisible:!1,labelBackgroundColor:"#0f0f0f"},vertLine:{visible:!1,style:3,width:1,labelVisible:!1,labelBackgroundColor:"#0f0f0f"}},layout:{fontFamily:"Trebuchet MS",fontSize:10,textColor:"#83888D",background:{type:s.ColorType.Solid,color:"transparent"},attributionLogo:!1},rightPriceScale:{visible:!0,borderVisible:!1,entireTextOnly:!0,mode:s.PriceScaleMode.Normal},leftPriceScale:{visible:!1,borderVisible:!1,entireTextOnly:!0,mode:s.PriceScaleMode.Normal},timeScale:{borderVisible:!1,timeVisible:!0,secondsVisible:!1,lockVisibleTimeRangeOnResize:!0},handleScale:!1,handleScroll:!1},series:O,volume:b.defaultVolumeOptions,ma:B,loading:N}},H={ "1y":{value:"12M",type:"period-back"},"5y":{value:"60M",type:"period-back"},max:{value:"ALL",type:"period-back"}};function W(t,e,i,a,r,n){return!!t.dayAndTimeTickMarkFixEnabled&&(a===s.TickMarkType.Time?function(t){return"time-range"!==t.type&&(t.value.endsWith("M")||t.value.endsWith("Y")||["YTD","ALL"].includes(t.value))}(e):!(!r||!n||a<=n)&&(a===s.TickMarkType.DayOfMonth&&(i.getMonth()!==r.getMonth()||i.getFullYear()!==r.getFullYear())))}const q=(()=>{let t=null,e=null,i=null;return(a,r,n,o,h,c)=>{const d={},m=new Date(1e3*o);i&&(0,l.areEqualTimeFrames)(i,n)||(t=null,e=null,i=n);let u=!1;if(r){u=(r.suppressFn??W)(r,n,m,h,t,e)}if(t=m,e=h,u)return"";switch(h){case s.TickMarkType.Year:r?.hideYearsTickMarks?d.month="short":d.year="numeric";break;case s.TickMarkType.Month:d.month="short";break;case s.TickMarkType.DayOfMonth:d.day="numeric";break;case s.TickMarkType.Time:d.hour12="12-hours"===a,d.hour="2-digit",d.minute="2-digit";break;case s.TickMarkType.TimeWithSeconds:d.hour12="12-hours"===a,d.hour="2-digit",d.minute="2-digit",d.second="2-digit"}const _=new Date(m.getUTCFullYear(),m.getUTCMonth(),m.getUTCDate(),m.getUTCHours(),m.getUTCMinutes(),m.getUTCSeconds(),m.getUTCMilliseconds());return t=m,e=h,_.toLocaleString(c,d)}})();function A(t,e){return t.series().seriesOrder()-e.series().seriesOrder()}"undefined"!=typeof window&&(window.lightweightMiniChartInstances=window.lightweightMiniChartInstances||{});const Y="undefined"!=typeof window?window.lightweightMiniChartInstances:{};let G=0;const j={acquire:()=>(0,C.ownership)(new c.ChartSession(window.ChartApiInstance,!0))};class ${constructor(t,e,i,r){this._isDestroyed=!1,this._studyPlotsOrderInvalidated=!0,this._studyPlots=[],this._elTimeframe=null,this._timeframeView=null,this._tickmarks=new Map,this._cachedTickmarks=new Map,this._chartSession=null,this._chartSessionConnected=null,this._connectCallback=null,this._connected=!1,this._loadErrorTimeout=null,this._isLoading=!1,this._spinner=null,this._crosshairMoveHandlers=new Map,this._atomicUpdateIsGoing=!1,this._seriesUpDownColors={},this._isDWMResolution=!1,this._updateTimerId=null,this._width=new D.WatchedValue(0),this._height=new D.WatchedValue(0),this._status=new D.WatchedValue("loading"),this._timeScaleSizeChanged=new S.Delegate,this._onPlotStatusChanged=()=>{const t=this._mainPlot.status().value(),e=this._studyPlots.every((t=>0!==t.status().value())),i=e||this._studyPlots.some((t=>0!==t.status().value()&&t.isVisible().value()));switch(t){case 3:e&&this._onPlotsDataReady();break;case 2:this._onMainPlotDataError();break;case 1:this._onMainPlotSymbolResolvingError()}const s=this._options.chartOptions.loading.fade;if(s.visible)switch(this._cachedTickmarks.size>0||t){case 0:this._innerContainer.classList.add(k.fade);break;case 2:case 1:case!0:this._innerContainer.classList.remove(k.fade);break;case 3:("none"===s.waitForStudyPlots||"all"===s.waitForStudyPlots&&e||"any"===s.waitForStudyPlots&&i)&&this._innerContainer.classList.remove(k.fade)}this._updateStatus()},this._timeFrameOptions=i?.timeframe?.options??(0, d.getMiniTimeFrameOptions)(),this._options=(0,a.default)({},U,i),this._chartSessionProvider=r??j,this._container=e,this._innerContainer=e.ownerDocument.createElement("div"),this._innerContainer.style.width="100%",this._innerContainer.style.height="100%",this._innerContainer.style.minHeight="inherit",this._innerContainer.style.minWidth="inherit",e.appendChild(this._innerContainer),this._widget=(0,s.createChartEx)(this._innerContainer,new v,{...this._options.chartOptions?.chart,autoSize:!0});const n=this._widget.panes()[0];this._textWatermark=(0,s.createTextWatermark)(n,{visible:!1}),this._timeframe=new T.WatchedObject(this._options.timeframe.value),this._mainPlot=this._createMainPlot(t),this.setTimeframe(this._timeframe.value(),!0);const o=(0,w.convertTimeFrameToStr)(this._timeframe.value()),h=this._options.cache?.loadData(o);h?(this._cachedTickmarks=h.tickmarks,this._tickmarks=new Map(this._cachedTickmarks),this._createTooltipDateFormatter()):this.connect(),this._parentResizeObserver=new ResizeObserver((t=>{this._mainPlot.fitContent();for(const e of t)if(e.contentBoxSize){const t=e.contentBoxSize[0];this._width.setValue(t.inlineSize),this._height.setValue(t.blockSize)}})),this._parentResizeObserver.observe(e);const l=e.getBoundingClientRect();this._width.setValue(l.width),this._height.setValue(l.height),this._createLegend(),this._updateSeriesUpDownColors(),this._boundTimeScaleSizeChangedHandler=this._timeScaleSizeChangedHandler.bind(this),this._widget.timeScale().subscribeSizeChange(this._boundTimeScaleSizeChangedHandler),G+=1,this._innerContainer.dataset.lightweightMiniChartId=`${G}`,Y[this._innerContainer.dataset.lightweightMiniChartId]=this}async takeScreenshot(){const{takeScreenshot:t}=await Promise.all([i.e(92964),i.e(40482),i.e(71148),i.e(6518),i.e(19311)]).then(i.bind(i,717293));return t(this.widget(),this.mainPlot().symbolInfo())}screenshotSymbol(){return this.mainPlot().symbol()}container(){return this._container}innerContainer(){return this._innerContainer}getChartContainer(){return this._container?(0,P.getChartLayoutContainer)(this._container):null}width(){return this._width.readonly()}height(){return this._height.readonly()}status(){return this._status.readonly()}seriesDataSource(){return this._mainPlot.seriesDataSource()}supportRealtimeUpdates(){return Boolean(this._options.doNotDisconnectOnDataReady)}connect(t){const e=(0,w.convertTimeFrameToStr)(this._timeframe.value());(0,r.assert)(!this._options.cache?.loadData(e),"Chart can not to connect if there is an existing cache data"),"function"==typeof t&&(this._connectCallback=t),this._clearReconnectionTimeout(),this.connected()||(this._showLoading(),this._mainPlot.clearData(),this._studyPlots.forEach((t=>t.clearData())),this._chartSession||(this._chartSession=this._chartSessionProvider.acquire(),this._chartSession.criticalError().subscribe(this,this._onChartSessionCriticalError),this._chartSessionConnected=this._chartSession.isConnected().spawn(),this._chartSessionConnected.subscribe(this._onChartSessionIsConnectedChanged.bind(this),{callWithLast:!0})), this._chartSession.connect(this._onData.bind(this)),this._chartSession.isConnected().value()&&this._requestData(),this._clearNoDataTimeout(),this._createNoDataTimeout())}disconnect(){this._studyPlots.forEach((t=>t.disconnect())),this._mainPlot.disconnect(),this._chartSession?.disconnect(),this._connected=!1,this._clearNoDataTimeout()}connected(){return Boolean(this._connected&&this._chartSession&&this._chartSession.isConnected().value())}setTimeframe(t,e,i){const s=this._timeframe.value();let a=t;const r="period-back"===a.type?H[a.value]:void 0;void 0!==r&&(a=r);let n=null;if(n=this._timeframeIsAvailable(a)?a:this._timeframeIsAvailable(x)?x:this._timeFrameOptions.find((t=>this._timeframeIsAvailable(t.value)))?.value??null,null===n)return void M.logWarn("The current timeframe is not compatible with the timeframes from timeFrameOptions");this._options.timeframe.currentTimeframeCallback&&this._options.timeframe.currentTimeframeCallback(n),this._timeframe.setValue(n);const o=(0,w.convertTimeFrameToStr)(this._timeframe.value());this._activeRange=o,this._timeframeView&&this._options.timeframe.visible&&this._timeframeView.update({activeRange:this._activeRange});const h=this._options.cache?.loadData(o);if(h)return this._cachedTickmarks=h.tickmarks,this._tickmarks=new Map(this._cachedTickmarks),this._createTooltipDateFormatter(),void this._mainPlot.reloadCache(h.mainPlot);this._cachedTickmarks.size&&(this._cachedTickmarks=new Map,this._tickmarks=new Map,this._mainPlot.reloadCache(),this._mainPlot.clearData()),(!e&&s!==this._timeframe.value()||i)&&this._requestDataOnTimeframeChange()}chartSession(){return(0,r.ensureNotNull)(this._chartSession)}widget(){return this._widget}timeframe(){return this._timeframe.readonly()}setTimeFrameOptions(t,e){if(t===this._timeFrameOptions)return;const i=this._timeFrameOptions.find((t=>(0,l.areEqualTimeFrames)(t.value,this.timeframe().value()))),s=i?.targetResolution??null;this._timeFrameOptions=t,e?this.setTimeframe(e):this.resolution()!==s&&this._requestDataOnTimeframeChange(),this._initTimeframesRenderer()}timeFrameOptions(){return this._timeFrameOptions}resolution(){const t=this._timeFrameOptions.find((t=>(0,l.areEqualTimeFrames)(t.value,this.timeframe().value())));return(0,r.ensureDefined)(t?.targetResolution)}changeSymbol(t,e){void 0!==e&&this._updateSeriesOptions(e),this._options.chartOptions.loading.clearDataOnSymbolChange&&(this._mainPlot.clearData(),this._mainPlot.deleteView(),this._studyPlots.forEach((t=>t.clearData())),this._studyPlots.forEach((t=>t.deleteView())));this._mainPlot.setSymbol(t,this._options.chartOptions.series)&&(this.connected()&&(this._mainPlot.requestData(),this._studyPlots.forEach((t=>t.requestData()))),this.connect())}updateSeriesOptions(t){this._atomicUpdateIsGoing=!0,this._mainPlot.updateSeriesOptions(t),this._updateSeriesOptions(t),this._updateSeriesUpDownColors(),this._atomicUpdateIsGoing=!1}getSeriesOptions(){return this._mainPlot.currentSeriesOptions()}updateAdditionalSeriesOptions(t,e){this._studyPlots[e].updateSeriesOptions(t)}showMessage(t){ this._hideLoading(),this._mainPlot.deleteView(),this._studyPlots.forEach((t=>t.deleteView())),this._textWatermark.applyOptions?.({visible:!0,lines:[{color:"#83888D",text:t,fontSize:12}]})}hideMessage(){this._textWatermark.applyOptions?.({visible:!1,lines:[]})}from(){const t=this._timeFrameOptions.find((t=>(0,l.areEqualTimeFrames)(t.value,this.timeframe().value())));return[t?.from]}enable(t){this.connect(t)}disable(){this.disconnect()}destroy(){this._boundTimeScaleSizeChangedHandler&&(this._widget.timeScale().unsubscribeSizeChange(this._boundTimeScaleSizeChangedHandler),this._boundTimeScaleSizeChangedHandler=void 0),this._parentResizeObserver.disconnect(),this.disconnect(),this._widget.remove(),this._mainPlot.symbolResolved().unsubscribeAll(null),this._mainPlot.timeFrameInvalidated().unsubscribeAll(this),this._mainPlot.destroy(),this._studyPlots.forEach((t=>t.destroy())),this._timeframeView?.destroy(),this._chartSessionConnected?.destroy(),this._chartSession?.criticalError().unsubscribeAll(this),this._chartSession?.release(),delete Y[this._innerContainer.dataset.lightweightMiniChartId],this._innerContainer.remove(),this._isDestroyed=!0}updateAvailableTimeframes(){this._mainPlot.symbolInfo()?(this._timeframeView&&this._options.timeframe.visible&&this._timeframeView.update({ranges:this._getAvailableTimeFrames()}),this.setTimeframe(this._timeframe.value())):M.logWarn("Updating available resolutions without full symbol info")}mainPlot(){return this._mainPlot}fitContent(){this._mainPlot.fitContent()}hasStudyPlots(){return this._studyPlots.length>0}studyPlots(){return this._studyPlotsOrderInvalidated&&(this._studyPlots.sort(A),this._studyPlotsOrderInvalidated=!1),this._studyPlots}addStudyPlot(t){return this._addStudyPlot(t),{noData:t.noData(),status:t.status(),remove:()=>{this._removeStudyPlot(t)},symbol:()=>t.symbol(),extendedSymbol:()=>t.extendedSymbol(),options:()=>t.currentSeriesOptions()}}indexToTime(t){const e=this._tickmarks.size?this._tickmarks:this._cachedTickmarks;return e.get(t)?.time??null}subscribeCrosshairMove(t){const e=e=>{this._atomicUpdateIsGoing||t(e)};this._crosshairMoveHandlers.set(t,e),this._widget.subscribeCrosshairMove(e)}unsubscribeCrosshairMove(t){const e=this._crosshairMoveHandlers.get(t);e&&(this._crosshairMoveHandlers.delete(t),this._widget.unsubscribeCrosshairMove(e))}upDownColors(){return this._seriesUpDownColors}dateTimeFormatter(){return this._dateTimeFormatter}isDWMResolution(){return this._isDWMResolution}updateChartRightMarginAccordingToTitles(){const t=this.mainPlot().currentSeriesOptions().horzMargins?.rightPx;if(t)this.mainPlot().updateHorzMargins({rightPx:t});else{const t=[this.mainPlot(),...this._studyPlots];let e=0;for(const i of t)for(const t of i.titles())e=Math.max(e,t.length);this.mainPlot().updateHorzMargins({rightPx:12*e})}this.mainPlot().fitContent()}activeRange(){return this._activeRange}timeScaleSizeChanged(){return this._timeScaleSizeChanged}_getChartPlotClass(){return g.MiniChartPlot}_createMainPlot(t){const e=(0, w.convertTimeFrameToStr)(this._timeframe.value()),i=new(this._getChartPlotClass())(this,this._options.chartOptions.series,this._options.chartOptions.volume,(()=>this._studyPlots),this._options.mainPlotOptions,this._options.cache?.loadData(e)?.mainPlot);return i.setSymbol(t),i.symbolResolved().subscribe(this,this._onSymbolResolved),i.timeFrameInvalidated().subscribe(this,this._onTimeFrameInvalidated),i.status().subscribe(this._onPlotStatusChanged),i}_onPlotsDataReady(){"function"==typeof this._options.onFirstData&&(this._options.onFirstData(),this._options.onFirstData=null),this._hideLoading(),this.hideMessage(),this._clearNoDataTimeout(),this._options.doNotDisconnectOnDataReady||this.disconnect(),this._createReconnectionTimeout(),this._saveCache()}_addStudyPlot(t){this._studyPlots.push(t),t.status().subscribe(this._onPlotStatusChanged),this.connected()?t.requestData():this.connect(),t.forcePercentageMode()&&this._mainPlot.switchToPercentageScaleMode(),this._updateStatus(),this._studyPlotsOrderInvalidated=!0}_removeStudyPlot(t){const e=this._studyPlots.indexOf(t);(0,r.assert)(-1!==e),this._studyPlots.splice(e,1),t.status().unsubscribe(this._onPlotStatusChanged),t.deleteView(),t.clearData(),t.destroy(),this._autoRestoreOriginalScaleMode()&&this._studyPlots.every((t=>!t.forcePercentageMode()))&&this._mainPlot.restoreOriginalScaleMode(),this._studyPlotsOrderInvalidated=!0,this._updateStatus()}_autoRestoreOriginalScaleMode(){return!0}_updateSeriesUpDownColors(){const t=this._options.chartOptions.series,e=this._mainPlot.series().options();switch(t.chartType){case"candlesticks":const i=e;this._seriesUpDownColors.Candlestick={up:t.borderUpColor??t.upColor??i.borderUpColor??i.upColor,down:t.borderDownColor??t.downColor??i.borderDownColor??i.downColor};break;case"bars":const s=e;this._seriesUpDownColors.Bar={up:t.upColor??s.upColor,down:t.downColor??s.downColor};break;case"histogram":const a=e;this._seriesUpDownColors.Histogram={up:t.upColor??t.color??a.color,down:t.downColor??t.color??a.color}}}_updateSeriesOptions(t){this._options.chartOptions.series=function(t){let e;switch(t.chartType??"area"){case"bars":e=V;break;case"candlesticks":e=z;break;case"area":e=O;break;case"line":e=F;break;case"histogram":e=L;break;case"pretty-histogram":e=E;break;case"baseline":e=R}return(0,a.default)({},e,t)}(t)}_saveCache(){const{cache:t}=this._options;if(!t)return;const e=this._prepareCacheData(),i=(0,w.convertTimeFrameToStr)(this._timeframe.value());e&&(t.saveData(i,e),this._cachedTickmarks=e.tickmarks)}_prepareCacheData(){if(!this._tickmarks.size)return null;const t=this._mainPlot.cacheData();return t?{mainPlot:t,tickmarks:new Map(this._tickmarks)}:null}_onMainPlotDataError(){this._hideLoading(),this.showMessage(h.t(null,void 0,i(87238))),this._clearNoDataTimeout(),this.disconnect()}_onMainPlotSymbolResolvingError(){this._hideLoading(),this.showMessage(h.t(null,void 0,i(146807))),this._clearNoDataTimeout(),this.disconnect()}_createReconnectionTimeout(){if(this._options.doNotDisconnectOnDataReady)return;const t=this._options.updateTimeout ;void 0!==t&&t>0&&(this._updateTimerId=setTimeout((()=>{this._updateTimerId=null,this.connected()?this._requestData():this.connect()}),t))}_clearReconnectionTimeout(){null!==this._updateTimerId&&(clearInterval(this._updateTimerId),this._updateTimerId=null)}_createNoDataTimeout(){const t=this._options.noDataTimeout;void 0!==t&&t>0&&(this._loadErrorTimeout=setTimeout((()=>{this.showMessage(h.t(null,void 0,i(146807))),"function"==typeof this._options.onFirstData&&(this._options.onFirstData(),this._options.onFirstData=null)}),t))}_clearNoDataTimeout(){this._loadErrorTimeout&&(clearTimeout(this._loadErrorTimeout),this._loadErrorTimeout=null)}_initTimeframesRenderer(){if(!this._options.timeframe.visible)return;{const t=this._timeFrameOptions.length<2;if(this._timeframeView?.update({hidden:t}),(this._elTimeframe??this._options.timeframe.container)?.classList.toggle(k.hidden,t),t)return}if(this._elTimeframe)return;this._options.timeframe.container?this._elTimeframe=this._options.timeframe.container:(this._elTimeframe=document.createElement("div"),this._container.appendChild(this._elTimeframe));const t=(t,e)=>{const i=this._timeFrameOptions.length<2,s=(0,r.ensureNotNull)(this._elTimeframe);s.classList.toggle(k.hidden,i),this._timeframeView=new t.TimeFrameViewRenderer(s,{name:"minichart_timeframe",activeRange:this._activeRange,ranges:this._getAvailableTimeFrames(),onSelectRange:t=>{this.setTimeframe({value:t,type:"period-back"})},size:this._options.timeframe.size,hidden:i,theme:e})};Promise.all([i.e(85715),i.e(24832),i.e(32387),i.e(44162)]).then(i.bind(i,578563)).then((e=>{(this._options.timeframe.getTheme||(()=>Promise.resolve(void 0)))().then((i=>t(e,i)))}))}_createLegend(){this._options.legend&&this._options.legend.visible&&Promise.all([i.e(7523),i.e(77159),i.e(14867),i.e(32387),i.e(1646)]).then(i.bind(i,292474)).then((t=>t.createLegend(this._options.legend.container,this._options.legend.items)))}_getAvailableTimeFrames(){const t=[];for(const e of this._timeFrameOptions){if(!this._timeframeIsAvailable(e.value))continue;const i=(0,w.convertTimeFrameToStr)(e.value);t.push({value:i,text:e.text,description:e.description})}return t}_timeframeIsAvailable(t){const e=this._timeFrameOptions.find((e=>(0,l.areEqualTimeFrames)(e.value,t)));if(!e)return!1;const i=this.mainPlot().symbolInfo();if(!i||i.pro_name!==this._mainPlot.symbol())return!0;if(i.has_intraday)return!0;return!m.Interval.parse(e.targetResolution).isIntraday()}_onChartSessionIsConnectedChanged(t){t!==this._connected&&(t?(this._connected=!0,"function"==typeof this._connectCallback&&this._connectCallback(),this._chartSession?.switchTimezone("Etc/UTC"),this._requestData()):(this._connected=!1,this._mainPlot.disconnect(),this._studyPlots.forEach((t=>t.disconnect()))))}_onChartSessionCriticalError(){this._connected=!1}_createTooltipDateFormatter(){const t=m.Interval.parse(this.resolution());let e;this._isDWMResolution=t.isDWM(),this._widget.timeScale().applyOptions({timeVisible:!this._isDWMResolution,secondsVisible:t.isSeconds()}) ;const{dateFormat:i="dd MMM 'yy",timeHoursFormat:s="24-hours",suppressTickMarks:a}=this._options.chartOptions;e=this._isDWMResolution?new _.DateFormatter(i):new p.DateTimeFormatter({dateFormat:i,timeFormat:(0,f.getTimeFormatForInterval)(t,s)}),this._dateTimeFormatter=e,this._widget.applyOptions({localization:{timeFormatter:t=>e.format(new Date(1e3*t))},timeScale:{tickMarkFormatter:q.bind(null,s,a,this._timeframe.value())}}),this._widget.applyOptions({timeScale:{timeVisible:!m.Interval.parse(this._mainPlot.resolution()).isDWM()}})}_requestData(){this._createTooltipDateFormatter(),this._clearReconnectionTimeout(),this._mainPlot.requestData(),this._studyPlots.forEach((t=>t.requestData()))}_onData(t){if(this._mainPlot.isConnected())switch(t.method){case"timescale_update":{const e=t.params;if(e.clear){this._tickmarks.clear(),this._mainPlot.clearSourceData();for(const t of this._studyPlots)t.clearSourceData()}if(e.index_diff.length>0){this._mainPlot.moveSourceData(e.index_diff);for(const t of this._studyPlots)t.moveSourceData(e.index_diff)}const i=e.marks;let s=1/0,a=-1/0;for(const t of i)this._tickmarks.has(t.index)||(s=Math.min(s,t.index),a=Math.max(a,t.index)),this._tickmarks.set(t.index,t);Number.isFinite(s)&&this._mainPlot.onTickmarksAdded(s,a),this._saveCache();break}}}_onSymbolResolved(){this.updateAvailableTimeframes(),this._initTimeframesRenderer()}_onTimeFrameInvalidated(){this._activeRange=void 0,this._timeframeView?.update({activeRange:void 0})}_showLoading(){if(this._isLoading)return;this.hideMessage();const t=this._options.chartOptions.loading;t.spinner.visible&&(null===this._spinner&&(this._spinner=new u.Spinner("mini").setStyle({color:t.spinner.color,width:t.spinner.width.toString(),zIndex:"10"})),this._spinner.spin(this._innerContainer)),t.fade.visible&&this._innerContainer.classList.add(k.fade),this._isLoading=!0}_hideLoading(){this._isLoading&&(this._spinner&&this._spinner.stop(),this._isLoading=!1)}_requestDataOnTimeframeChange(){this._options.chartOptions.loading.clearDataOnTimeframeChange&&(this._studyPlots.forEach((t=>t.clearData())),this._studyPlots.forEach((t=>t.deleteView())),this.mainPlot().clearData(),this.mainPlot().deleteView()),this.connected()?this._requestData():this.connect()}_updateStatus(){const t=[this._mainPlot.status().value(),...this._studyPlots.map((t=>t.status().value()))],e=t.every((t=>0!==t))?3===t[0]?"ready":"error":"loading";this._status.setValue(e)}_timeScaleSizeChangedHandler(t,e){this._timeScaleSizeChanged.fire(t,e)}}},938881:(t,e,i)=>{"use strict";i.d(e,{PrettyHistogramSeries:()=>r});const s={...i(319585).customSeriesDefaultOptions,color:"#D63864",widthPercent:50,radius:4};class a{constructor(){this._data=null,this._options=null}draw(t,e){t.useBitmapCoordinateSpace((t=>this._drawImpl(t,e)))}update(t,e){this._data=t,this._options=e}_drawImpl(t,e){if(null===this._data||0===this._data.bars.length||null===this._data.visibleRange||null===this._options)return;const i=this._options,s=this._data.bars.map((s=>({x:s.x*t.horizontalPixelRatio,value:e(s.originalData.value)??NaN, color:s.barColor??i.color}))),a=e(0)??0,r=t.context;let n=null;r.beginPath();const o=Math.max(1,Math.round(.01*i.widthPercent*this._data.barSpacing*t.horizontalPixelRatio)),h=Math.floor(i.radius*t.horizontalPixelRatio);s.slice(this._data.visibleRange.from,this._data.visibleRange.to+1).forEach((e=>{const i=e.color;null!==n&&n!==i&&(r.fill(),r.beginPath()),r.fillStyle=i;const s=function(t,e,i){const s=Math.round(i*t),a=Math.round(i*e);return{position:Math.min(s,a),length:Math.abs(a-s)+1}}(a,e.value,t.verticalPixelRatio),l=Math.floor(Math.min(h,o/2,Math.abs(s.length))),c=Math.round(e.x-o/2);r.roundRect(c,s.position,o,s.length,e.value