From 73b47eba77f214e59a595ffd4f4906187654b95a Mon Sep 17 00:00:00 2001 From: jenkins Date: Mon, 24 Apr 2023 19:30:07 +0000 Subject: [PATCH] Release v24.004 (from 8ab257ed) Fixes tradingview/charting_library#7519 Fixes tradingview/charting_library#7578 --- changelog.md | 42 + ...cc4.js => library.4350c821a355451bc08e.js} | 355 ++++---- ...951.js => runtime.9e6a94224bc7334ac8fa.js} | 8 +- .../study-market.4b22b3a60fa9cdfe3a82.js | 17 + .../study-market.bc7f3b05f94ea2ddbb50.js | 17 - charting_library/charting_library.cjs.js | 2 +- charting_library/charting_library.d.ts | 855 ++++++++++++++++-- charting_library/charting_library.esm.js | 2 +- charting_library/charting_library.js | 2 +- .../charting_library.standalone.js | 2 +- charting_library/package.json | 2 +- datafeeds/udf/dist/bundle.js | 2 +- datafeeds/udf/lib/history-provider.js | 10 + datafeeds/udf/src/history-provider.ts | 10 + package.json | 2 +- 15 files changed, 1072 insertions(+), 256 deletions(-) rename charting_library/bundles/{library.fa294554299772125cc4.js => library.4350c821a355451bc08e.js} (89%) rename charting_library/bundles/{runtime.dabbddb8e0cf198a3951.js => runtime.9e6a94224bc7334ac8fa.js} (76%) create mode 100644 charting_library/bundles/study-market.4b22b3a60fa9cdfe3a82.js delete mode 100644 charting_library/bundles/study-market.bc7f3b05f94ea2ddbb50.js diff --git a/changelog.md b/changelog.md index c062bfcb..113d7b5a 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,48 @@ +## Version 24.004 + +*Date: Mon Apr 24 2023* + +**New Features** + +- **Indicators can now be favorited.** Indicators can now be favorited by tapping on the star icon to the left of the +indicator name. Favorited indicators will appear at the top of the indicator +list. + - The `items_favoriting` featureset should be enabled. [more info](https://www.tradingview.com/charting-library-docs/latest/customization/Featuresets) +- **Adding two featuresets to hide the right_toolbar or its tabs.** There are 2 new featuresets `hide_right_toolbar` & `hide_right_toolbar_tabs` plus an additional WidgetBar API [changeWidgetBarVisibility](https://www.tradingview.com/charting-library-docs/latest/api/interfaces/Charting_Library.IWidgetbarApi#changeWidgetBarVisibility) to control the right toolbar. + - `hide_right_toolbar` allows you to instantiate the toolbar without showing it in the UI. + - `hide_right_toolbar_tabs` will do the same with the exception of not showing tabs when displaying the right toolbar. + +**Improvements** + +- **Added a middle band for the RSI indicator.** Unlike on tradingview.com RSI was not presenting the option to plot a middle limit. +- **Indicators favorites can now be defined within widget constructor.** Indicators can now be defined as favorites using the [`favorites`](https://www.tradingview.com/charting-library-docs/latest/api/interfaces/Charting_Library.ChartingLibraryWidgetOptions#favorites) property of the widget constructor options. See [Favorites.indicators](https://www.tradingview.com/charting-library-docs/latest/api/interfaces/Charting_Library.Favorites#indicators) for more information. +- **Add a way to independently clear bar marks/timescale marks.** [`clearMarks`](https://www.tradingview.com/charting-library-docs/latest/api/interfaces/Charting_Library.IChartWidgetApi#clearmarks) method has been enhanced to pass in an option to choose which marks should be cleared on the chart. + - By default behaviour will remain similar and both bar & TimeScale marks will be removed. + - Passing `ClearMarksMode.BarMarks` will only remove bar marks. + - Passing `ClearMarksMode.TimeScaleMarks` will only remove TimeScale marks. +- **`BREAKING CHANGE` Discrepancy in chart style/type methods.** Only TypeScript breaking change as an interface has been renamed to better reflect its purpose. +`SeriesStyle` is now [SeriesType](api/enums/Charting_Library.SeriesType). + +**Bug Fixes** + +- **load_study_template event is not emitted.** load_study_template event was not emitted when applying a template on the chart. +- **Fixed autosize bug occurring on Chrome iOS when rotating the device.** Workaround fix for a browser bug until Chrome resolves the issue on their side. +- **Fixed the type definitions for a few of the PineJS Std library functions.** [PineJSStd documentation](@api/interfaces/Charting_Library.PineJSStd). + +**Documentation** + +- **New Key Features article.** We have added the [Key Features](https://www.tradingview.com/charting-library-docs/latest/getting_started/Key-Features) article that lists features supported/unsupported in Charting Library and Trading Terminal. +- **How to connect data via Datafeed API.** We have added a new [tutorial on connecting data via Datafeed API](https://www.tradingview.com/charting-library-docs/latest/tutorials/implement_datafeed_tutorial/). +It will help you implement datafeed and real-time data streaming to Charting Library step-by-step. + +**Other** + +- **Incorrect watermark property key.** Deprecated `symbolWatermarkProperties` property has now been removed. +Please use [settings_adapter](Widget-Constructor#settings_adapter) with `symbolWatermark` key instead or `applyOverrides` to change values. + ## Version 24.003 *Date: Tue Apr 11 2023* diff --git a/charting_library/bundles/library.fa294554299772125cc4.js b/charting_library/bundles/library.4350c821a355451bc08e.js similarity index 89% rename from charting_library/bundles/library.fa294554299772125cc4.js rename to charting_library/bundles/library.4350c821a355451bc08e.js index 46cebf8b..78222a1c 100644 --- a/charting_library/bundles/library.fa294554299772125cc4.js +++ b/charting_library/bundles/library.4350c821a355451bc08e.js @@ -25,8 +25,8 @@ a[e]&&console.warn(`Something went wrong: emitOnce called multiple times with sa return this._watchedDataFrequencyResolution.readonly()}bindToChartWidget(e){if(this.unbindFromChartWidget(),this._activeChartWidget=e,e.hasModel())return void this._onChartModelCreated(e.model());e.modelCreated().subscribe(this,this._onChartModelCreated),this._chartWidgetBindingState=d.BoundToWidget;const t=e.properties().childs().mainSeriesProperties.childs();this._watchedSymbol.setValue(t.symbol.value()),this._watchedInterval.setValue(t.interval.value())}unbindFromChartWidget(){switch(this._chartWidgetBindingState){case d.BoundToWidget:if(!this._activeChartWidget)throw new Error("ChartWidget is undefined");this._activeChartWidget.modelCreated().unsubscribe(this,this._onChartModelCreated);break;case d.BoundToModel:this._symbolProperty().unsubscribe(this,this._onSymbolPropertyChange),this._watchedSymbol.unsubscribe(this._watchedSymbolListenerBound),this._mainSeries().dataEvents().symbolResolved().unsubscribe(this,this._updateSeriesSymbolInfo),this._mainSeries().dataEvents().symbolError().unsubscribe(this,this._updateSeriesSymbolInfo),this._intervalProperty().unsubscribe(this,this._onIntervalPropertyChange),this._watchedInterval.unsubscribe(this._watchedIntervalListenerBound),delete this._watchedSymbol.hook,delete this._watchedSymbol.writeLock}this._activeChartWidget=null,this._chartWidgetBindingState=d.NotBound}getChartWidget(){return this._activeChartWidget}bindToChartWidgetCollection(e){this._chartWidgetCollection=e,this.unbindFromChartWidget(),e.activeChartWidget.subscribe((e=>{this.unbindFromChartWidget(),this.bindToChartWidget(e)}),{callWithLast:!0})}bindToSearchCharts(e){this.unbindFromSearchCharts(),this._searchCharts=e,e.onSearchBySymbol.subscribe(this,this._onSearchBySymbol),e.loadingSymbol.subscribe((e=>{!1===e&&(this._feedBySymbolDebounceCounter=0)})),this._watchedSymbol.subscribe(this._onSymbolLinkBound)}unbindFromSearchCharts(){this._searchCharts&&(this._searchCharts.onSearchBySymbol.unsubscribe(this,this._onSearchBySymbol),this._watchedSymbol.unsubscribe(this._onSymbolLinkBound),this._searchCharts=null)}setPreventFeedBySymbol(e){this._preventFeedBySymbol=e}_onSearchBySymbol(e){if(!e.resolved_symbol)throw new Error("no resolved_symbol");this._selfEmit=!0,this._watchedSymbol.setValue(e.resolved_symbol),this._selfEmit=!1}_onSymbolLink(e){if(!this._selfEmit){if(!this._searchCharts){const e="No search charts defined";throw h.logError(e),new Error(e)}this._preventFeedBySymbol||this._loadSearchCharts(e)}}_loadSearchCharts(e){if(!this._searchCharts){const e="No search charts defined";throw h.logError(e),new Error(e)}if(this._searchChartsLoadDebounced)return void(this._feedBySymbolDebounceCounter<100&&(this._feedBySymbolDebounceCounter++,this._searchChartsLoadDebounced(e)));const t=e=>this._searchCharts?(!0===this._searchCharts.loadingSymbol.value()?this._feedBySymbolDebounceCounter<100&&(this._feedBySymbolDebounceCounter++,this._searchChartsLoadDebounced=(0,s.default)(t,2e3),this._searchChartsLoadDebounced(e)):this._searchChartsLoadDebounced=null, this._searchCharts.feedBySymbol.call(this._searchCharts,e)):()=>{};!0===this._searchCharts.loadingSymbol.value()?this._feedBySymbolDebounceCounter<100&&(this._feedBySymbolDebounceCounter++,this._searchChartsLoadDebounced=(0,s.default)(t,2e3),this._searchChartsLoadDebounced(e)):this._searchCharts.feedBySymbol(e)}_mainSeries(){if(!this._activeChartWidget)throw new Error("ChartWidget is undefined");return this._activeChartWidget.model().mainSeries()}_properties(){return this._mainSeries().properties()}_symbolProperty(){return this._properties().symbol}_intervalProperty(){return this._properties().interval}_watchedSymbolListener(e){this._symbolProperty().value()!==e&&this._chartWidgetCollection.setSymbol(e)}_sendSnowplowAnalytics(){if(!window.user.do_not_track)throw new Error("unsupported")}_onSymbolPropertyChange(){const e=this._symbolProperty().value()!==this._watchedSymbol.value();this._watchedSymbol.setValue(this._symbolProperty().value()),e&&this._chartWidgetCollection.setSymbol(this._symbolProperty().value())}_onSymbolResolved(e){const t=this._mainSeries().symbolInfo();t&&this._applyValuesFromSymbolInfo(t)}_applyValuesFromSymbolInfo(e){const t=e.pro_name||o.enabled("trading_terminal")&&(e.full_name||e.name)||"";this._proSymbol.setValue(t),e.aliases&&this._symbolNamesList.setValue(e.aliases)}_updateSeriesSymbolInfo(){this._seriesShortSymbol.setValue(this._properties().shortName.value());const e=this._mainSeries().symbolInfo();if(e){this._applyValuesFromSymbolInfo(e);{const t=e.supported_resolutions;t?this._watchedSupportedResolutions.setValue(t):this._watchedSupportedResolutions.setValue(void 0)}let t=(0,c.allChartStyles)();(0,a.isCloseBasedSymbol)(e)&&(t=t.filter((e=>(0,a.isSingleValueBasedStyle)(e)))),this._watchedSupportedChartStyles.setValue(t),this._watchedIntraday.setValue(!!e.has_intraday),this._watchedSeconds.setValue(!!e.has_seconds),this._watchedTicks.setValue(!(0,a.isCloseBasedSymbol)(e)&&!!e.has_ticks),this._watchedRange.setValue(!(0,a.isCloseBasedSymbol)(e));const i=e.data_frequency?e.data_frequency:void 0;this._watchedDataFrequencyResolution.setValue(i)}else this._watchedIntraday.deleteValue(),this._watchedSeconds.deleteValue(),this._watchedTicks.deleteValue(),this._watchedRange.deleteValue(),this._proSymbol.deleteValue()}_watchedIntervalListener(e){this._intervalProperty().value()!==e&&this._chartWidgetCollection.setResolution(e)}_onIntervalPropertyChange(){const e=this._intervalProperty().value()!==this._watchedInterval.value();this._watchedInterval.setValue(this._intervalProperty().value()),e&&this._chartWidgetCollection.setResolution(this._intervalProperty().value())}_onChartModelCreated(e){if(!this._activeChartWidget)throw new Error("ChartWidget is undefined");this._chartWidgetBindingState=d.BoundToModel,this._activeChartWidget.modelCreated().unsubscribe(this,this._onChartModelCreated);const t=this._symbolProperty();t.subscribe(this,this._onSymbolPropertyChange),this._watchedSymbol.setValue(t.value()),this._watchedSymbol.subscribe(this._watchedSymbolListenerBound);const i=this._mainSeries() ;i.dataEvents().symbolResolved().subscribe(this,this._onSymbolResolved),this._watchedSymbol.hook=e=>(i.symbolSameAsCurrent(e)&&(e=i.symbol()),e),i.dataEvents().symbolResolved().subscribe(this,this._updateSeriesSymbolInfo),i.dataEvents().symbolError().subscribe(this,this._updateSeriesSymbolInfo),i.dataEvents().symbolNotPermitted().subscribe(this,this._updateSeriesSymbolInfo),i.dataEvents().symbolGroupNotPermitted().subscribe(this,this._updateSeriesSymbolInfo),this._updateSeriesSymbolInfo();const s=this._intervalProperty();s.subscribe(this,this._onIntervalPropertyChange),this._watchedInterval.setValue(s.value()),this._watchedInterval.subscribe(this._watchedIntervalListenerBound),this._activeChartWidget.readOnly()&&(this._watchedSymbol.writeLock=!0)}};window.TradingViewApi||(window.TradingViewApi={linking:u})},11417:(e,t,i)=>{"use strict";const{getLogger:s}=i(98351),r=s("TVLocalStorage");var n=function(){try{this.isAvailable=!0,this.localStorage=window.localStorage,this.localStorage.setItem("tvlocalstorage.available","true")}catch(e){delete this.isAvailable,delete this.localStorage}this._updateLength();try{this._report()}catch(e){}};n.prototype._report=function(){if(this.isAvailable){const e=10,t=[];for(let e=0;et.length-e.length));const i=t.slice(0,e);t.sort(((e,t)=>t.key.length-e.key.length));const s=t.slice(0,e);r.logNormal(`Total amount of keys in Local Storage: ${this.length}`),r.logNormal(`Top ${e} keys with longest values: ${JSON.stringify(i)}`),r.logNormal(`Top ${e} longest key names: ${JSON.stringify(s)}`);try{navigator.storage.estimate().then((e=>{r.logNormal(`Storage estimate: ${JSON.stringify(e)}`)}))}catch(e){}}},n.prototype.length=0,n.prototype.isAvailable=!1,n.prototype.localStorage={"tvlocalstorage.available":"false"},n.prototype._updateLength=function(){if(this.isAvailable)this.length=this.localStorage.length;else{var e,t=0;for(e in this.localStorage)this.localStorage.hasOwnProperty(e)&&t++;this.length=t}},n.prototype.key=function(e){return this.isAvailable?this.localStorage.key(e):Object.keys(this.localStorage)[e]},n.prototype.getItem=function(e){return this.isAvailable?this.localStorage.getItem(e):void 0===this.localStorage[e]?null:this.localStorage[e]},n.prototype.setItem=function(e,t){this.isAvailable?this.localStorage.setItem(e,t):this.localStorage[e]=t,this._updateLength()},n.prototype.removeItem=function(e){this.isAvailable?this.localStorage.removeItem(e):delete this.localStorage[e],this._updateLength()},n.prototype.clear=function(){this.isAvailable?this.localStorage.clear():this.localStorage={},this._updateLength()};var o=function(e){this.storage=e};o.prototype.getItem=function(e){return Promise.resolve(this.storage.getItem(e))},o.prototype.setItem=function(e,t){return Promise.resolve(this.storage.setItem(e,t))},window.TVLocalStorage=new n,window.TVLocalStorageAsync=new o(window.TVLocalStorage),e.exports={TVLocalStorage:window.TVLocalStorage, -TVLocalStorageAsync:window.TVLocalStorageAsync}},84015:(e,t,i)=>{"use strict";function s(e,t=!1){return!1}function r(e,t=!1){return e}i.d(t,{isOnMobileAppPage:()=>s,urlWithMobileAppParams:()=>r})},19334:(e,t,i)=>{"use strict";function s(){}i.d(t,{addPerfMark:()=>o});const r=console.timeStamp?console.timeStamp.bind(console):s,n=window.performance&&performance.mark?performance.mark.bind(performance):s;window.performance&&performance.measure&&performance.measure.bind(performance),window.performance&&performance.clearMarks&&performance.clearMarks.bind(performance);function o(e){r(e),n(e)}},14905:(e,t,i)=>{"use strict";function s(e){return e===r(e)}function r(e){const t=e.indexOf("$"),i=e.indexOf("@");return t<0&&i>=0?null:e.substring(Math.max(t+1,0),i>=0?i:e.length)}i.d(t,{isPineIdString:()=>s,extractPineId:()=>r})},16216:(e,t,i)=>{"use strict";i.r(t),i.d(t,{registerService:()=>o,unregisterService:()=>a,hasService:()=>l,service:()=>c,waitServiceRegistered:()=>h});var s=i(71668);const r={},n=new Map;function o(e,t){if(l(e))throw new Error("Service already registered");r[e.id]=t;const i=n.get(e.id);void 0!==i&&(n.delete(e.id),i.resolve(t))}function a(e){if(!l(e))throw new Error("Service not found");r[e.id]=void 0}function l(e){return void 0!==r[e.id]}function c(e){const t=r[e.id];if(void 0===t)throw new Error("ServiceLocator: Service "+e.id+" not found");return t}function h(e){if(l(e))return Promise.resolve(c(e));let t=n.get(e.id);return void 0===t&&(t=(0,s.createDeferredPromise)(),n.set(e.id,t)),t.promise}},56840:(e,t,i)=>{"use strict";e=i.nmd(e),i(49483);i(93043).fetch;var s=i(41225).regExpEscape,r=i(21097).TVXWindowEvents,n=i(11417).TVLocalStorage,o=i(26867),a=i(2484),l=["s.tradingview.com","betacdn.tradingview.com"],c=a.enabled("use_localstorage_for_settings"),h=window.TVSettings=function(){var e=!1,t=null;function i(){return!t&&c}try{e=!TradingView.onWidget()&&parent&&parent!==window&&!!parent.IS_DEMO_PAGE}catch(e){}if(e){var d={"widgetbar.layout-settings":{widgets:{},settings:{minimized:!0}},notShowMainWizard:!0},u=function(e,t,i){var s=d[e];return null==s?t:s},p=function(){};return{loaded:!1,loadedModel:!1,getValue:u,getJSON:u,getBool:u,getFloat:u,getInt:u,setValue:p,setJSON:p,remove:p,keys:function(){return Object.keys(d)},keysMask:function(){return[]},sync:p,onSync:{subscribe:function(){}}}}window.environment;var _,m=TradingView.onWidget()?"tradingview-widget":"tradingview",g=m+".",f={},v=[/^widgetbar\.widget\.watchlist.+/,/.+quicks$/,/^widgetbar\.layout-settings$/,/^ChartSideToolbarWidget\.visible$/,/^onwidget\.watchlist$/,/^domepanel.visible$/,/^orderpanel.visible$/,/^chart\.favoriteDrawings$/,/^chart\.favoriteDrawingsPosition$/,/^loadChartDialog.favorites$/,/^ChartFavoriteDrawingToolbarWidget\.visible/,/^trading\.chart\.proterty$/,/^trading_floating_toolbar\.position$/,/^trading\.orderWidgetMode\./,/^symbolWatermark$/,/^pinereference\.size$/,/^pinereference\.position$/,/^hint\.+/,/^ChartDrawingToolbarWidget\.visible/];function S(e){return g+e}function y(e){return e.substring(g.length)}function b(e,t){var i=f[e] -;return null==i?t:i}function w(e,t,i){i=i||{};var s=""+t;return f[e]!==s&&(f[e]=s,C(e)),i.forceFlush&&!_&&(_=setTimeout((function(){_=void 0,T()}),10)),h}function P(e,t){return t=t||{},null!=f[e]&&(delete f[e],C(e)),t.forceFlush&&T(),h}function C(e){if(t)null==f[e]?t.removeValue(e):t.setValue(e,f[e]);else if(i())try{null==f[e]?n.removeItem(S(e)):n.setItem(S(e),f[e])}catch(e){}else 0;r.emit("settings",JSON.stringify({key:e,value:f[e]}))}function T(e){}function x(){return Object.keys(f)}function I(e){for(var t=0;t=0;n--)e.test(i[n])&&r.push(i[n]),e.lastIndex=0;return r},sync:function(e){null!==e?(t?A(t.initialSettings||{}):i()?(function(){if(TradingView.onWidget()&&l.includes(window.location.host))for(var e="tradingview.",t=n.length;t--;){var i=n.key(t);if(0===i.indexOf(e)){var s=i.replace(e,m+".");n.setItem(s,n.getItem(i)),n.removeItem(i)}}}(),function(){f={};for(var e=!a.enabled("save_chart_properties_to_local_storage"),t=n.length;t--;){var i=n.key(t);if(i&&M(i)){var s=i.substring(g.length);e&&!I(s)||(f[s]=n.getItem(i))}}}()):A(e||{}),L.fire()):!0},onSync:L,setSettingsAdapter:function(e){t=e}}}();e&&e.exports&&(e.exports=h)},26843:(e,t,i)=>{"use strict";i.d(t,{StdTheme:()=>a.StdTheme,getStdChartTheme:()=>h,getStdThemeNames:()=>c,isStdTheme:()=>u,translateThemeName:()=>d});var s=i(44352),r=i(24377) +TVLocalStorageAsync:window.TVLocalStorageAsync}},84015:(e,t,i)=>{"use strict";function s(e,t=!1){return!1}function r(e,t=!1){return e}i.d(t,{isOnMobileAppPage:()=>s,urlWithMobileAppParams:()=>r})},19334:(e,t,i)=>{"use strict";function s(){}i.d(t,{addPerfMark:()=>o});const r=console.timeStamp?console.timeStamp.bind(console):s,n=window.performance&&performance.mark?performance.mark.bind(performance):s;window.performance&&performance.measure&&performance.measure.bind(performance),window.performance&&performance.clearMarks&&performance.clearMarks.bind(performance);function o(e){r(e),n(e)}},14905:(e,t,i)=>{"use strict";function s(e){return e===r(e)}function r(e){const t=e.indexOf("$"),i=e.indexOf("@");return t<0&&i>=0?null:e.substring(Math.max(t+1,0),i>=0?i:e.length)}i.d(t,{isPineIdString:()=>s,extractPineId:()=>r})},16216:(e,t,i)=>{"use strict";i.r(t),i.d(t,{registerService:()=>o,unregisterService:()=>a,hasService:()=>l,service:()=>c,waitServiceRegistered:()=>h});var s=i(71668);const r={},n=new Map;function o(e,t){if(l(e))throw new Error("Service already registered");r[e.id]=t;const i=n.get(e.id);void 0!==i&&(n.delete(e.id),i.resolve(t))}function a(e){if(!l(e))throw new Error("Service not found");r[e.id]=void 0}function l(e){return void 0!==r[e.id]}function c(e){const t=r[e.id];if(void 0===t)throw new Error("ServiceLocator: Service "+e.id+" not found");return t}function h(e){if(l(e))return Promise.resolve(c(e));let t=n.get(e.id);return void 0===t&&(t=(0,s.createDeferredPromise)(),n.set(e.id,t)),t.promise}},56840:(e,t,i)=>{"use strict";e=i.nmd(e),i(49483);i(93043).fetch;var s=i(41225).regExpEscape,r=i(21097).TVXWindowEvents,n=i(11417).TVLocalStorage,o=i(26867),a=i(2484),l=["s.tradingview.com","betacdn.tradingview.com"],c=a.enabled("use_localstorage_for_settings"),h=window.TVSettings=function(){var e=!1,t=null;function i(){return!t&&c}try{e=!TradingView.onWidget()&&parent&&parent!==window&&!!parent.IS_DEMO_PAGE}catch(e){}if(e){var d={"widgetbar.layout-settings":{widgets:{},settings:{minimized:!0}},notShowMainWizard:!0},u=function(e,t,i){var s=d[e];return null==s?t:s},p=function(){};return{loaded:!1,loadedModel:!1,getValue:u,getJSON:u,getBool:u,getFloat:u,getInt:u,setValue:p,setJSON:p,remove:p,keys:function(){return Object.keys(d)},keysMask:function(){return[]},sync:p,onSync:{subscribe:function(){}}}}window.environment;var _,m=TradingView.onWidget()?"tradingview-widget":"tradingview",g=m+".",f={},v=[/^widgetbar\.widget\.watchlist.+/,/.+quicks$/,/^widgetbar\.layout-settings$/,/^ChartSideToolbarWidget\.visible$/,/^onwidget\.watchlist$/,/^domepanel.visible$/,/^orderpanel.visible$/,/^chart\.favoriteDrawings$/,/^chart\.favoriteDrawingsPosition$/,/^chart\.favoriteLibraryIndicators$/,/^loadChartDialog.favorites$/,/^ChartFavoriteDrawingToolbarWidget\.visible/,/^trading\.chart\.proterty$/,/^trading_floating_toolbar\.position$/,/^trading\.orderWidgetMode\./,/^symbolWatermark$/,/^pinereference\.size$/,/^pinereference\.position$/,/^hint\.+/,/^ChartDrawingToolbarWidget\.visible/];function S(e){return g+e}function y(e){ +return e.substring(g.length)}function b(e,t){var i=f[e];return null==i?t:i}function w(e,t,i){i=i||{};var s=""+t;return f[e]!==s&&(f[e]=s,C(e)),i.forceFlush&&!_&&(_=setTimeout((function(){_=void 0,T()}),10)),h}function P(e,t){return t=t||{},null!=f[e]&&(delete f[e],C(e)),t.forceFlush&&T(),h}function C(e){if(t)null==f[e]?t.removeValue(e):t.setValue(e,f[e]);else if(i())try{null==f[e]?n.removeItem(S(e)):n.setItem(S(e),f[e])}catch(e){}else 0;r.emit("settings",JSON.stringify({key:e,value:f[e]}))}function T(e){}function x(){return Object.keys(f)}function I(e){for(var t=0;t=0;n--)e.test(i[n])&&r.push(i[n]),e.lastIndex=0;return r},sync:function(e){null!==e?(t?A(t.initialSettings||{}):i()?(function(){if(TradingView.onWidget()&&l.includes(window.location.host))for(var e="tradingview.",t=n.length;t--;){var i=n.key(t);if(0===i.indexOf(e)){var s=i.replace(e,m+".");n.setItem(s,n.getItem(i)),n.removeItem(i)}}}(),function(){f={};for(var e=!a.enabled("save_chart_properties_to_local_storage"),t=n.length;t--;){var i=n.key(t);if(i&&M(i)){var s=i.substring(g.length);e&&!I(s)||(f[s]=n.getItem(i))}}}()):A(e||{}),L.fire()):!0},onSync:L,setSettingsAdapter:function(e){t=e}}}();e&&e.exports&&(e.exports=h)},26843:(e,t,i)=>{"use strict";i.d(t,{StdTheme:()=>a.StdTheme,getStdChartTheme:()=>h,getStdThemeNames:()=>c,isStdTheme:()=>u,translateThemeName:()=>d});var s=i(44352),r=i(24377) ;const n=JSON.parse('{"content":{"chartProperties":{"scalesProperties":{"textColor":"#131722","lineColor":"rgba(42, 46, 57, 0)","backgroundColor":"#ffffff"},"paneProperties":{"vertGridProperties":{"color":"rgba(42, 46, 57, 0.06)"},"horzGridProperties":{"color":"rgba(42, 46, 57, 0.06)"},"crossHairProperties":{"color":"#9598A1"},"background":"#ffffff","backgroundGradientStartColor":"#ffffff","backgroundGradientEndColor":"#ffffff","separatorColor":"#E0E3EB"}},"sessions":{"graphics":{"backgrounds":{"outOfSession":{"color":"#2962FF","transparency":92},"preMarket":{"color":"#FF9800","transparency":92},"postMarket":{"color":"#2962FF","transparency":92}},"vertlines":{"sessBreaks":{"color":"#4985e7","style":2,"width":1}}}},"mainSourceProperties":{"baseLineColor":"#B2B5BE","candleStyle":{"borderColor":"#378658","upColor":"#089981","wickColor":"#737375","wickUpColor":"#089981","wickDownColor":"#F23645","downColor":"#F23645","borderUpColor":"#089981","borderDownColor":"#F23645"},"haStyle":{"borderColor":"#378658","upColor":"#089981","wickColor":"#737375","wickUpColor":"#089981","wickDownColor":"#F23645","downColor":"#F23645","borderUpColor":"#089981","borderDownColor":"#F23645"},"barStyle":{"downColor":"#F23645","upColor":"#089981"},"pnfStyle":{"downColor":"#F23645","upColor":"#089981","upColorProjection":"#a9dcc3","downColorProjection":"#f5a6ae"},"baselineStyle":{"baselineColor":"#758696","topFillColor1":"rgba(8, 153, 129, 0.28)","topFillColor2":"rgba(8, 153, 129, 0.05)","bottomFillColor1":"rgba(242, 54, 69, 0.05)","bottomFillColor2":"rgba(242, 54, 69, 0.28)","topLineColor":"#089981","bottomLineColor":"#F23645"},"areaStyle":{"transparency":100,"color1":"rgba(41, 98, 255, 0.28)","color2":"#2962FF","linecolor":"#2962FF","linewidth":2,"linestyle":0},"hiloStyle":{"color":"#2962FF","borderColor":"#2962FF","labelColor":"#2962FF"},"columnStyle":{"upColor":"rgba(8, 153, 129, 0.5)","downColor":"rgba(242, 54, 69, 0.5)","priceSource":"close"},"renkoStyle":{"upColor":"#089981","downColor":"#F23645","borderUpColor":"#089981","borderDownColor":"#F23645","upColorProjection":"#a9dcc3","downColorProjection":"#f5a6ae","borderUpColorProjection":"#a9dcc3","borderDownColorProjection":"#f5a6ae","wickUpColor":"#089981","wickDownColor":"#F23645"},"lineStyle":{"color":"#2962FF","linewidth":2,"linestyle":0},"kagiStyle":{"downColor":"#F23645","upColor":"#089981","upColorProjection":"#a9dcc3","downColorProjection":"#f5a6ae"},"pbStyle":{"upColor":"#089981","downColor":"#F23645","borderUpColor":"#089981","borderDownColor":"#F23645","upColorProjection":"#a9dcc3","downColorProjection":"#f5a6ae","borderUpColorProjection":"#a9dcc3","borderDownColorProjection":"#f5a6ae"},"rangeStyle":{"upColor":"#089981","downColor":"#F23645","upColorProjection":"#a9dcc3","downColorProjection":"#f5a6ae"}}}}'),o=JSON.parse('{"content":{"chartProperties":{"scalesProperties":{"textColor":"#B2B5BE","lineColor":"rgba(240, 243, 250, 0)","backgroundColor":"#ffffff"},"paneProperties":{"vertGridProperties":{"color":"rgba(240, 243, 250, 0.06)"},"horzGridProperties":{"color":"rgba(240, 243, 250, 0.06)"},"crossHairProperties":{"color":"#9598A1"},"background":"#131722","backgroundGradientStartColor":"#181C27","backgroundGradientEndColor":"#131722","backgroundType":"gradient","separatorColor":"#2A2E39"}},"sessions":{"graphics":{"backgrounds":{"outOfSession":{"color":"#2962FF","transparency":92},"preMarket":{"color":"#FF9800","transparency":92},"postMarket":{"color":"#2962FF","transparency":92}},"vertlines":{"sessBreaks":{"color":"#4985e7","style":2,"width":1}}}},"mainSourceProperties":{"baseLineColor":"#5d606b","candleStyle":{"borderColor":"#378658","upColor":"#089981","wickColor":"#B5B5B8","wickUpColor":"#089981","wickDownColor":"#F23645","downColor":"#F23645","borderUpColor":"#089981","borderDownColor":"#F23645"},"haStyle":{"borderColor":"#378658","upColor":"#089981","wickColor":"#B5B5B8","wickUpColor":"#089981","wickDownColor":"#F23645","downColor":"#F23645","borderUpColor":"#089981","borderDownColor":"#F23645"},"barStyle":{"downColor":"#F23645","upColor":"#089981"},"pnfStyle":{"downColor":"#F23645","upColor":"#089981","upColorProjection":"#336854","downColorProjection":"#7f323f"},"baselineStyle":{"baselineColor":"#758696","topFillColor1":"rgba(8, 153, 129, 0.28)","topFillColor2":"rgba(8, 153, 129, 0.05)","bottomFillColor1":"rgba(242, 54, 69, 0.05)","bottomFillColor2":"rgba(242, 54, 69, 0.28)","topLineColor":"#089981","bottomLineColor":"#F23645"},"areaStyle":{"transparency":100,"color1":"rgba(41, 98, 255, 0.28)","color2":"#2962FF","linecolor":"#2962FF","linewidth":2,"linestyle":0},"hiloStyle":{"color":"#2962FF","borderColor":"#2962FF","labelColor":"#2962FF"},"columnStyle":{"upColor":"rgba(8, 153, 129, 0.5)","downColor":"rgba(242, 54, 69, 0.5)","priceSource":"close"},"renkoStyle":{"upColor":"#089981","downColor":"#F23645","borderUpColor":"#089981","borderDownColor":"#F23645","upColorProjection":"#336854","downColorProjection":"#7f323f","borderUpColorProjection":"#336854","borderDownColorProjection":"#7f323f","wickUpColor":"#089981","wickDownColor":"#F23645"},"lineStyle":{"color":"#2962FF","linewidth":2,"linestyle":0},"kagiStyle":{"downColor":"#F23645","upColor":"#089981","upColorProjection":"#336854","downColorProjection":"#7f323f"},"pbStyle":{"upColor":"#089981","downColor":"#F23645","borderUpColor":"#089981","borderDownColor":"#F23645","upColorProjection":"#336854","downColorProjection":"#7f323f","borderUpColorProjection":"#336854","borderDownColorProjection":"#7f323f"},"rangeStyle":{"upColor":"#089981","downColor":"#F23645","upColorProjection":"#336854","downColorProjection":"#7f323f"}}}}') ;var a=i(24633);function l(){return{[a.StdTheme.Light]:JSON.parse(JSON.stringify(n)),[a.StdTheme.Dark]:JSON.parse(JSON.stringify(o))}}function c(){return[a.StdTheme.Light,a.StdTheme.Dark]}function h(e){return l()[e]}function d(e){return{[a.StdTheme.Light]:s.t(null,{context:"colorThemeName"},i(69841)),[a.StdTheme.Dark]:s.t(null,{context:"colorThemeName"},i(14642))}[e]||e}function u(e){const t=l();return c().some((i=>p(t[i],e)))}function p(e,t){let i=e.content===t.content;return function(e={},t){try{_(e,[],t)}catch(e){return}}(e.content,((e,s)=>{const n=function(e,t={}){let i=t;for(let t=0;t{"use strict";var s;i.d(t,{StdTheme:()=>s}),function(e){e.Light="light",e.Dark="dark"}(s||(s={}))},8840:(e,t,i)=>{"use strict";i.r(t),i.d(t,{DEFAULT_THEME:()=>p,extractThemeFromModel:()=>N,getCurrentTheme:()=>S,getStdTheme:()=>A,getStdThemeNames:()=>I,getStdThemedValue:()=>L,getTheme:()=>T,getThemeNames:()=>x,getThemedColor:()=>y,isPublicTheme:()=>v,isStdTheme:()=>R,isStdThemeName:()=>M,isStdThemedDefaultValue:()=>k,isThemeExist:()=>B,loadTheme:()=>b,removeTheme:()=>D,restoreTheme:()=>w,saveTheme:()=>E,savedThemeName:()=>P,syncTheme:()=>C,themes:()=>f,translateStdThemeName:()=>V});var s=i(24377),r=i(64548),n=i(56840);function o(){return(0,n.getValue)("current_theme.name")||null}var a=i(93043);const l=(0,i(98351).getLogger)("Themes.Provider");let c=null;function h(e){return(0,a.fetch)("/theme/?themeName="+encodeURIComponent(e),{credentials:"include",method:"GET"}).then((e=>e.json())).then((e=>{const t={};return e.content&&(t.content=JSON.parse(e.content)),t}))}var d=i(26843),u=i(45345);const p="light";var _=i(44352) ;const m=JSON.parse('{"color-header-bg":"color-black","color-body-bg":"color-black","color-body-secondary-bg":"color-cold-gray-900","color-bg-primary":"color-cold-gray-850","color-bg-primary-hover":"color-cold-gray-800","color-bg-secondary":"color-cold-gray-900","color-bg-highlight":"color-cold-gray-900","color-bg-scroll-buttons":"color-cold-gray-800","color-legacy-bg-scroll-buttons":"color-cold-gray-550","color-legacy-bg-widget":"color-cold-gray-900","color-text-primary":"color-cold-gray-200","color-text-secondary":"color-cold-gray-450","color-text-tertiary":"color-cold-gray-400","color-text-disabled":"color-cold-gray-650","color-accent-content":"color-white","color-divider":"color-cold-gray-700","color-divider-hover":"color-cold-gray-800","color-divider-secondary":"color-cold-gray-800","color-box-shadow":"color-cold-gray-900","color-active-hover-text":"color-cold-gray-200","color-alert-text":"color-cold-gray-200","color-border":"color-cold-gray-750","color-border-chat-fields":"color-cold-gray-750","color-border-hover":"color-cold-gray-650","color-border-table":"color-cold-gray-800","color-brand":"color-tv-blue-500","color-brand-hover":"color-tv-blue-600","color-brand-active":"color-tv-blue-700","color-button-hover-bg":"color-cold-gray-850","color-chart-page-bg":"color-cold-gray-800","color-common-tooltip-bg":"color-cold-gray-750","color-danger":"color-ripe-red-600","color-danger-hover":"color-ripe-red-500","color-danger-active":"color-ripe-red-400","color-depthrenderer-fill-style":"color-cold-gray-150","color-depthrenderer-stroke-style":"color-cold-gray-650","color-disabled-border-and-color":"color-cold-gray-800","color-disabled-input":"color-cold-gray-750","color-empty-container-message":"color-cold-gray-450","color-highlight-new":"color-tv-blue-a800","color-icons":"color-cold-gray-450","color-input-bg":"color-cold-gray-800","color-input-textarea-readonly":"color-cold-gray-650","color-input-placeholder-text":"color-cold-gray-700","color-input-publish-bg":"color-cold-gray-900","color-item-active-blue":"color-tv-blue-a900","color-item-hover-active-bg":"color-cold-gray-800","color-item-hover-bg":"color-cold-gray-800","color-item-hover-blue":"color-tv-blue-a800","color-item-selected-blue":"color-tv-blue-a800","color-item-active-text":"color-cold-gray-200","color-item-active-bg":"color-tv-blue-500","color-link":"color-tv-blue-500","color-link-hover":"color-tv-blue-600","color-link-active":"color-tv-blue-700","color-list-item":"color-cold-gray-450","color-list-nth-child-bg":"color-cold-gray-850","color-news-highlight":"color-cold-gray-800","color-pane-bg":"color-cold-gray-900","color-pane-secondary-bg":"color-cold-gray-850","color-placeholder":"color-cold-gray-650","color-popup-menu-item-hover-bg":"color-cold-gray-800","color-popup-menu-separator":"color-cold-gray-700","color-row-hover-active-bg":"color-cold-gray-800","color-sb-scrollbar-body-bg":"color-cold-gray-650","color-screener-description":"color-cold-gray-200","color-section-separator-border":"color-cold-gray-750","color-search-button-hover":"color-cold-gray-700","color-separator-table-chat":"color-cold-gray-750","color-success":"color-minty-green-700","color-success-hover":"color-minty-green-600","color-success-active":"color-minty-green-500","color-tag-active-bg":"color-cold-gray-750","color-tag-hover-bg":"color-cold-gray-800","color-text-regular":"color-cold-gray-200","color-toolbar-button-text":"color-cold-gray-200","color-toolbar-button-text-hover":"color-cold-gray-200","color-toolbar-button-text-active":"color-tv-blue-500","color-toolbar-button-text-active-hover":"color-tv-blue-600","color-toolbar-button-background-hover":"color-cold-gray-800","color-toolbar-button-background-secondary-hover":"color-cold-gray-750","color-toolbar-button-background-active":"color-tv-blue-a900","color-toolbar-button-background-active-hover":"color-tv-blue-a800","color-toolbar-toggle-button-background-active":"color-tv-blue-500","color-toolbar-toggle-button-background-active-hover":"color-tv-blue-600","color-toolbar-toggle-button-icon":"color-cold-gray-650","color-toolbar-interactive-element-text-normal":"color-cold-gray-200","color-toolbar-interactive-element-text-hover":"color-cold-gray-250","color-toolbar-opened-element-bg":"color-cold-gray-800","color-toolbar-divider-background":"color-cold-gray-700","color-tooltip-bg":"color-cold-gray-750","color-tv-button-checked":"color-cold-gray-500","color-tv-dialog-caption":"color-cold-gray-50","color-tv-dropdown-item-hover-bg":"color-cold-gray-800","color-underlined-text":"color-cold-gray-300","color-widget-pages-bg":"color-cold-gray-900","color-warning":"color-tan-orange-700","color-forex-icon":"color-white","color-list-item-active-bg":"color-tv-blue-500","color-list-item-hover-bg":"color-cold-gray-800","color-list-item-text":"color-cold-gray-200","color-price-axis-label-back":"color-cold-gray-800","color-price-axis-label-text":"color-cold-gray-500","color-price-axis-gear":"color-cold-gray-500","color-price-axis-gear-hover":"color-cold-gray-400","color-price-axis-highlight":"color-cold-gray-800","color-bid":"color-tv-blue-500","color-scroll-bg":"color-cold-gray-750","color-scroll-border":"color-cold-gray-850","color-widget-border":"color-cold-gray-800","color-scroll-buttons-arrow":"color-white","color-control-intent-default":"color-cold-gray-650","color-control-intent-success":"color-minty-green-500","color-control-intent-primary":"color-tv-blue-500","color-control-intent-warning":"color-tan-orange-500","color-control-intent-danger":"color-ripe-red-700","color-growing":"color-minty-green-500","color-falling":"color-ripe-red-500","color-goto-label-background":"color-cold-gray-650","color-pre-market":"color-tan-orange-600","color-pre-market-bg":"color-tan-orange-400","color-post-market":"color-tv-blue-500","color-post-market-bg":"color-tv-blue-400","color-market-open":"color-minty-green-500","color-market-open-bg":"color-minty-green-400","color-market-closed":"color-cold-gray-400","color-market-holiday":"color-cold-gray-400","color-market-expired":"color-ripe-red-500","color-invalid-symbol":"color-ripe-red-400","color-invalid-symbol-hover":"color-ripe-red-500","color-replay-mode":"color-tv-blue-500","color-replay-mode-point-select":"color-cold-gray-250","color-replay-mode-icon":"color-tv-blue-50","color-replay-mode-hover":"color-tv-blue-600","color-notaccurate-mode":"color-berry-pink-700","color-notaccurate-mode-bg":"color-berry-pink-400","color-delay-mode":"color-tan-orange-700","color-delay-mode-bg":"color-tan-orange-400","color-eod-mode":"color-grapes-purple-700","color-eod-mode-bg":"color-grapes-purple-400","color-data-problem":"color-ripe-red-600","color-data-problem-bg":"color-ripe-red-400","color-data-problem-hover":"color-ripe-red-500","color-list-item-bg-highlighted":"color-tv-blue-a900","color-list-item-bg-selected":"color-tv-blue-a800","color-list-item-bg-highlighted-hover":"color-tv-blue-a800","color-list-item-bg-selected-hover":"color-tv-blue-a700","color-screener-header-bg":"color-cold-gray-850","color-screener-header-bg-hover":"color-cold-gray-800","color-overlay":"color-cold-gray-950","color-boost-button-content-selected":"color-tv-blue-100","color-boost-button-content-hover":"color-white","color-boost-button-bg-hover":"color-cold-gray-750","color-boost-button-border-hover":"color-cold-gray-750","color-boost-button-border-default":"color-cold-gray-700","color-card-border":"color-cold-gray-700","color-card-border-hover":"color-cold-gray-600","color-background-special-primary":"color-black","color-stroke-special-primary":"color-cold-gray-800","color-selection-bg":"color-tv-blue-a700"}') @@ -84,80 +84,81 @@ this._isDirty=!0)}_makeSnapshot(){this._json=this._dataObj.primitiveData(this._s histogramBase:0,joinPoints:!1}},description:"Accumulation/Distribution",shortDescription:"Accum/Dist",is_price_study:!1,inputs:[],id:"Accumulation/Distribution@tv-basicstudies-1",scriptIdPart:"",name:"Accumulation/Distribution",format:{type:"volume"}},constructor:function(){this.f_0=function(e,t,i,s){return r.Std.or(r.Std.and(r.Std.eq(e,t),r.Std.eq(e,i)),r.Std.eq(t,i))?0:(2*e-i-t)/(t-i)*s},this.main=function(e,t){this._context=e,this._input=t;var i=this.f_0(r.Std.close(this._context),r.Std.high(this._context),r.Std.low(this._context),r.Std.volume(this._context));return[r.Std.cum(i,this._context)]}}},{name:"Accumulative Swing Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:10}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"ASI",histogramBase:0,joinPoints:!1}},description:"Accumulative Swing Index",shortDescription:"ASI",is_price_study:!1,inputs:[{id:"in_0",name:"Limit Move Value",defval:10,type:"float",min:.1,max:1e5}],id:"Accumulative Swing Index@tv-basicstudies-1",scriptIdPart:"",name:"Accumulative Swing Index",format:{type:"volume"}},constructor:function(){this.f_0=function(e,t){var i=t.new_var(r.Std.open(t)),s=t.new_var(r.Std.high(t)),n=t.new_var(r.Std.low(t)),o=t.new_var(r.Std.close(t)),a=r.Std.abs(s-o.get(1)),l=r.Std.abs(n-o.get(1)),c=r.Std.abs(s-n),h=r.Std.abs(o.get(1)-i.get(1)),d=r.Std.max(a,l),u=r.Std.iff(a>=r.Std.max(l,c),a-.5*l+.25*h,r.Std.iff(l>=r.Std.max(a,c),l-.5*a+.25*h,c+.25*h));return r.Std.iff(0===u,0,(o-o.get(1)+.5*(o-i)+.25*(o.get(1)-i.get(1)))/u*d/e*50)},this.f_1=function(e,t){var i=this.f_0(e,t);return r.Std.cum(i,t)},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0);return[this.f_1(i,this._context)]}}},{name:"Advance/Decline",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:10}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Advance/Decline",shortDescription:"AD",is_price_study:!1,inputs:[{id:"in_0",name:"length",defval:10,type:"integer",min:1,max:2e3}],id:"Advance/Decline@tv-basicstudies-1",scriptIdPart:"",name:"Advance/Decline",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t){return r.Std.gt(e,t)},this.f_1=function(e,t){return r.Std.lt(e,t)},this.f_2=function(e,t){return 0===t?e:e/t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this.f_0(r.Std.close(this._context),r.Std.open(this._context)),n=this._context.new_var(s),o=r.Std.sum(n,i,this._context),a=this.f_1(r.Std.close(this._context),r.Std.open(this._context)),l=this._context.new_var(a),c=r.Std.sum(l,i,this._context);return[this.f_2(o,c)]}}},{name:"Arnaud Legoux Moving Average",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1, is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:9,in_1:.85,in_2:6}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Arnaud Legoux Moving Average",shortDescription:"ALMA",is_price_study:!0,inputs:[{id:"in_0",name:"Window Size",defval:9,type:"integer",min:0,max:5e3},{id:"in_1",name:"Offset",defval:.85,type:"float",min:-1e12,max:1e12},{id:"in_2",name:"Sigma",defval:6,type:"float",min:-1e12,max:1e12}],id:"Arnaud Legoux Moving Average@tv-basicstudies-1",scriptIdPart:"",name:"Arnaud Legoux Moving Average",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._input(2),a=this._context.new_var(i);return[r.Std.alma(a,s,n,o)]}}},{name:"Aroon",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FB8C00"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:14}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],styles:{plot_0:{title:"Upper",histogramBase:0,joinPoints:!1},plot_1:{title:"Lower",histogramBase:0,joinPoints:!1}},description:"Aroon",shortDescription:"Aroon",is_price_study:!1,inputs:[{id:"in_0",name:"length",defval:14,type:"integer",min:1,max:2e3}],id:"Aroon@tv-basicstudies-1",scriptIdPart:"",name:"Aroon",format:{precision:2,type:"percent"}},constructor:function(){this.f_0=function(e,t){return 100*(e+t)/t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=r.Std.high(this._context),n=i+1,o=this._context.new_var(s),a=r.Std.highestbars(o,n,this._context),l=this.f_0(a,i),c=r.Std.low(this._context),h=this._context.new_var(c),d=r.Std.lowestbars(h,n,this._context);return[l,this.f_0(d,i)]}}},{name:"Average Price",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,id:"AveragePrice@tv-basicstudies-1",scriptIdPart:"",name:"Average Price",description:"Average Price",shortDescription:"Average Price",is_price_study:!0,plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#2196F3"}},inputs:{}},styles:{plot_0:{title:"Plot"}},inputs:[],format:{type:"inherit"}},constructor:function(){this.main=function(e,t){return this._context=e,this._input=t,[r.Std.ohlc4(this._context)]}}},{name:"Average Directional Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:c}},inputs:{in_0:14,in_1:14}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"ADX",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Average Directional Index",shortDescription:"ADX",is_price_study:!1, inputs:[{id:"in_0",name:"ADX Smoothing",defval:14,type:"integer",min:-1e12,max:1e12},{id:"in_1",name:"DI Length",defval:14,type:"integer",min:-1e12,max:1e12}],id:"average_directional_Index@tv-basicstudies-1",scriptIdPart:"",name:"Average Directional Index",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e){var t=this._context.new_var(r.Std.high(this._context)),i=r.Std.change(t),s=this._context.new_var(r.Std.low(this._context)),n=-r.Std.change(s),o=this._context.new_var(r.Std.tr(void 0,this._context)),a=r.Std.rma(o,e,this._context),l=this._context.new_var(r.Std.and(r.Std.gt(i,n),r.Std.gt(i,0))?i:0),c=r.Std.fixnan(100*r.Std.rma(l,e,this._context)/a,this._context),h=this._context.new_var(r.Std.and(r.Std.gt(n,i),r.Std.gt(n,0))?n:0);return[c,r.Std.fixnan(100*r.Std.rma(h,e,this._context)/a,this._context)]},this.f_1=function(e,t){var i=this.f_0(e),s=i[0],n=i[1],o=s+n,a=this._context.new_var(r.Std.abs(s-n)/(r.Std.eq(o,0)?1:o));return[100*r.Std.rma(a,t,this._context)]},this.main=function(e,t){return this._context=e,this._input=t,this._context.setMinimumAdditionalDepth(this._input(0)+this._input(1)),this.f_1(this._input(1),this._input(0))}}},{name:"Average True Range",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:l}},inputs:{in_0:14}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Average True Range",shortDescription:"ATR",is_price_study:!1,inputs:[{id:"in_0",name:"length",defval:14,type:"integer",min:1,max:2e3}],id:"Average True Range@tv-basicstudies-1",scriptIdPart:"",name:"Average True Range",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){var i=t(0);return[r.Std.atr(i,e)]}}},{name:"Awesome Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:1,trackPrice:!1,transparency:0,visible:!0,color:"#000080"}},palettes:{palette_0:{colors:{0:{color:a,width:1,style:0},1:{color:u,width:1,style:0}}}},inputs:{}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",palette:"palette_0",target:"plot_0",type:"colorer"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Awesome Oscillator",shortDescription:"AO",is_price_study:!1,palettes:{palette_0:{colors:{0:{name:"Color 0"},1:{name:"Color 1"}}}},inputs:[],id:"Awesome Oscillator@tv-basicstudies-1",scriptIdPart:"",name:"Awesome Oscillator",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return e-t},this.f_1=function(e){return r.Std.le(e,0)?0:1},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.hl2(this._context),s=this._context.new_var(i),n=r.Std.sma(s,5,this._context),o=this._context.new_var(i),a=r.Std.sma(o,34,this._context),l=this.f_0(n,a),c=l,h=this._context.new_var(l),d=r.Std.change(h);return[c,this.f_1(d)]}}},{name:"Balance of Power",metainfo:{_metainfoVersion:52,isTVScript:!1, -isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:c}},inputs:{}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Balance of Power",shortDescription:"Balance of Power",is_price_study:!1,inputs:[],id:"Balance of Power@tv-basicstudies-1",scriptIdPart:"",name:"Balance of Power",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t,i,s){return(e-t)/(i-s)},this.main=function(e,t){return this._context=e,this._input=t,[this.f_0(r.Std.close(this._context),r.Std.open(this._context),r.Std.high(this._context),r.Std.low(this._context))]}}},{name:"Bollinger Bands",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_2:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},filledAreasStyle:{fill_0:{color:"#2196F3",transparency:95,visible:!0}},inputs:{in_0:20,in_1:2}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Median",histogramBase:0,joinPoints:!1},plot_1:{title:"Upper",histogramBase:0,joinPoints:!1},plot_2:{title:"Lower",histogramBase:0,joinPoints:!1}},description:"Bollinger Bands",shortDescription:"BB",is_price_study:!0,filledAreas:[{id:"fill_0",objAId:"plot_1",objBId:"plot_2",type:"plot_plot",title:"Plots Background"}],inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:1e4},{id:"in_1",name:"mult",defval:2,type:"float",min:.001,max:50}],id:"Bollinger Bands@tv-basicstudies-1",scriptIdPart:"",name:"Bollinger Bands",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return e*t},this.f_1=function(e,t){return e+t},this.f_2=function(e,t){return e-t},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._context.new_var(i),a=r.Std.sma(o,s,this._context),l=this._context.new_var(i),c=r.Std.stdev(l,s,this._context),h=this.f_0(n,c);return[a,this.f_1(a,h),this.f_2(a,h)]}}},{name:"Bollinger Bands %B",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:d}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:1},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],filledAreasStyle:{fill_0:{color:"#26A69A",transparency:90,visible:!0}},inputs:{in_0:20,in_1:2}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Bollinger Bands %B",shortDescription:"BB %B",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit"},{id:"hline_1",name:"LowerLimit"}],filledAreas:[{id:"fill_0",objAId:"hline_0", -objBId:"hline_1",type:"hline_hline",title:"Hlines Background"}],inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:1e4},{id:"in_1",name:"mult",defval:2,type:"float",min:.001,max:50}],id:"Bollinger Bands %B@tv-basicstudies-1",scriptIdPart:"",name:"Bollinger Bands %B",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t){return e*t},this.f_1=function(e,t){return e+t},this.f_2=function(e,t){return e-t},this.f_3=function(e,t,i){return(e-t)/(i-t)},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._context.new_var(i),a=r.Std.sma(o,s,this._context),l=this._context.new_var(i),c=r.Std.stdev(l,s,this._context),h=this.f_0(n,c),d=this.f_1(a,h),u=this.f_2(a,h);return[this.f_3(i,u,d)]}}},{name:"Bollinger Bands Width",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"}},inputs:{in_0:20,in_1:2}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Bollinger Bands Width",shortDescription:"BBW",is_price_study:!1,inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:1e4},{id:"in_1",name:"mult",defval:2,type:"float",min:.001,max:50}],id:"Bollinger Bands Width@tv-basicstudies-1",scriptIdPart:"",name:"Bollinger Bands Width",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t){return e*t},this.f_1=function(e,t){return e+t},this.f_2=function(e,t){return e-t},this.f_3=function(e,t,i){return(e-t)/i},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._context.new_var(i),a=r.Std.sma(o,s,this._context),l=this._context.new_var(i),c=r.Std.stdev(l,s,this._context),h=this.f_0(n,c),d=this.f_1(a,h),u=this.f_2(a,h);return[this.f_3(d,u,a)]}}},{name:"Chaikin Money Flow",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#43A047"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:20}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Chaikin Money Flow",shortDescription:"CMF",is_price_study:!1,bands:[{id:"hline_0",name:"Zero"}],inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:2e3}],id:"Chaikin Money Flow@tv-basicstudies-1",scriptIdPart:"",name:"Chaikin Money Flow",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t,i,s){return r.Std.or(r.Std.and(r.Std.eq(e,t),r.Std.eq(e,i)),r.Std.eq(t,i))?0:(2*e-i-t)/(t-i)*s},this.f_1=function(e,t){return e/t},this.main=function(e,t){this._context=e,this._input=t -;var i=this._input(0),s=this.f_0(r.Std.close(this._context),r.Std.high(this._context),r.Std.low(this._context),r.Std.volume(this._context)),n=this._context.new_var(s),o=r.Std.sum(n,i,this._context),a=r.Std.volume(this._context),l=this._context.new_var(a),c=r.Std.sum(l,i,this._context);return[this.f_1(o,c)]}}},{name:"Chaikin Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#EC407A"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:3,in_1:10}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Chaikin Oscillator",shortDescription:"Chaikin Osc",is_price_study:!1,bands:[{id:"hline_0",name:"Zero"}],inputs:[{id:"in_0",name:"short",defval:3,type:"integer",min:1,max:2e3},{id:"in_1",name:"long",defval:10,type:"integer",min:1,max:2e3}],id:"Chaikin Oscillator@tv-basicstudies-1",scriptIdPart:"",name:"Chaikin Oscillator",format:{type:"volume"}},constructor:function(){this.f_0=function(e,t){return e-t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=r.Std.accdist(this._context),o=this._context.new_var(n),a=r.Std.ema(o,i,this._context),l=this._context.new_var(n),c=r.Std.ema(l,s,this._context);return[this.f_0(a,c)]}}},{name:"Chaikin Volatility",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!1,id:"Chaikin Volatility@tv-basicstudies-1",scriptIdPart:"",name:"Chaikin Volatility",description:"Chaikin Volatility",shortDescription:"Chaikin Volatility",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#AB47BC"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{periods:10,rocLookback:10}},styles:{plot_0:{title:"Plot"}},bands:[{id:"hline_0",name:"Zero"}],inputs:[{id:"periods",type:"integer",name:"Periods"},{id:"rocLookback",type:"integer",name:"Rate of Change Lookback"}],format:{type:"volume"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.period=this._input(0),this.rocLookback=this._input(1)},this.main=function(e,t){this._context=e,this._input=t,this._context.setMinimumAdditionalDepth(this.period+this.rocLookback);var i=this._context.new_var(r.Std.high(this._context)-r.Std.low(this._context)),s=this._context.new_var(r.Std.ema(i,this.period,this._context));return[r.Std.roc(s,this.rocLookback)]}}},{name:"Chande Kroll Stop",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"}},inputs:{in_0:10,in_1:1,in_2:9}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],styles:{plot_0:{title:"Long",histogramBase:0, -joinPoints:!1},plot_1:{title:"Short",histogramBase:0,joinPoints:!1}},description:"Chande Kroll Stop",shortDescription:"Chande Kroll Stop",is_price_study:!0,inputs:[{id:"in_0",name:"p",defval:10,type:"integer",min:1,max:4999},{id:"in_1",name:"x",defval:1,type:"integer",min:1,max:1e12},{id:"in_2",name:"q",defval:9,type:"integer",min:1,max:1e12}],id:"Chande Kroll Stop@tv-basicstudies-1",scriptIdPart:"",name:"Chande Kroll Stop",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t,i){return e-t*i},this.f_1=function(e,t,i){return e+t*i},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2),o=r.Std.high(this._context),a=this._context.new_var(o),l=r.Std.highest(a,i,this._context),c=r.Std.atr(i,this._context),h=this.f_0(l,s,c),d=this._context.new_var(o),u=r.Std.lowest(d,i,this._context),p=this.f_1(u,s,c),_=this._context.new_var(h),m=r.Std.highest(_,n,this._context),g=this._context.new_var(p);return[r.Std.lowest(g,n,this._context),m]}}},{name:"Chande Momentum Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:9}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Chande Momentum Oscillator",shortDescription:"ChandeMO",is_price_study:!1,inputs:[{id:"in_0",name:"length",defval:9,type:"integer",min:1,max:2e3}],id:"Chande Momentum Oscillator@tv-basicstudies-1",scriptIdPart:"",name:"Chande Momentum Oscillator",format:{type:"price",precision:2}},constructor:function(){this.f_0=function(e){return r.Std.ge(e,0)?e:0},this.f_1=function(e){return r.Std.ge(e,0)?0:-e},this.f_2=function(e,t){return 100*e/t},this.f_3=function(e,t){return this.f_2(e-t,e+t)},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=r.Std.close(this._context),n=this._context.new_var(s),o=r.Std.change(n),a=this.f_0(o),l=this.f_1(o),c=this._context.new_var(a),h=r.Std.sum(c,i,this._context),d=this._context.new_var(l),u=r.Std.sum(d,i,this._context);return[this.f_3(h,u)]}}},{name:"Chop Zone",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:5,trackPrice:!1,transparency:0,visible:!0,color:"#000080"}},palettes:{palette_0:{colors:{0:{color:"#26C6DA",width:1,style:0},1:{color:"#43A047",width:1,style:0},2:{color:"#A5D6A7",width:1,style:0},3:{color:u,width:1,style:0},4:{color:"#D50000",width:1,style:0},5:{color:"#E91E63",width:1,style:0},6:{color:"#FF6D00",width:1,style:0},7:{color:"#FFB74D",width:1,style:0},8:{color:"#FDD835",width:1,style:0}}}},inputs:{}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",palette:"palette_0",target:"plot_0",type:"colorer"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Chop Zone",shortDescription:"Chop Zone",is_price_study:!1,palettes:{palette_0:{colors:{0:{name:"Color 0"},1:{name:"Color 1"},2:{ -name:"Color 2"},3:{name:"Color 3"},4:{name:"Color 4"},5:{name:"Color 5"},6:{name:"Color 6"},7:{name:"Color 7"},8:{name:"Color 8"}},valToIndex:{0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8}}},inputs:[],id:"chop_zone@tv-basicstudies-1",scriptIdPart:"",name:"Chop Zone",format:{precision:0,type:"price"}},constructor:function(){this.f_0=function(){var e=r.Std.close(this._context),t=r.Std.hlc3(this._context),i=this._context.new_var(r.Std.high(this._context)),s=r.Std.highest(i,30,this._context),n=r.Std.lowest(i,30,this._context),o=25/(s-n)*n,a=this._context.new_var(e),l=this._context.new_var(r.Std.ema(a,34,this._context)),c=(l.get(1)-l.get(0))/t*o,h=r.Std.sqrt(1+c*c),d=r.Std.round(180*r.Std.acos(1/h)/3.141592653589793),u=r.Std.iff(r.Std.gt(c,0),-d,d),p=r.Std.and(r.Std.gt(u,-2.14),r.Std.le(u,-.71))?7:8,_=r.Std.and(r.Std.gt(u,-3.57),r.Std.le(u,-2.14))?6:p,m=r.Std.and(r.Std.gt(u,-5),r.Std.le(u,-3.57))?5:_,g=r.Std.le(u,-5)?4:m,f=r.Std.and(r.Std.lt(u,2.14),r.Std.ge(u,.71))?3:g,v=r.Std.and(r.Std.lt(u,3.57),r.Std.ge(u,2.14))?2:f,S=r.Std.and(r.Std.lt(u,5),r.Std.ge(u,3.57))?1:v;return[1,r.Std.ge(u,5)?0:S]},this.main=function(e,t){return this._context=e,this._input=t,this.f_0()}}},{name:"Choppiness Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:61.8},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:38.2}],filledAreasStyle:{fill_0:{color:"#2196F3",transparency:90,visible:!0}},inputs:{in_0:14}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Choppiness Index",shortDescription:"CHOP",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit"},{id:"hline_1",name:"LowerLimit"}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background"}],inputs:[{id:"in_0",name:"length",defval:14,type:"integer",min:1,max:2e3}],id:"Choppiness Index@tv-basicstudies-1",scriptIdPart:"",name:"Choppiness Index",format:{type:"price",precision:2}},constructor:function(){this.f_0=function(e,t,i,s){return 100*r.Std.log10(e/(t-i))/s},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=r.Std.atr(1,this._context),n=this._context.new_var(s),o=r.Std.sum(n,i,this._context),a=r.Std.high(this._context),l=this._context.new_var(a),c=r.Std.highest(l,i,this._context),h=r.Std.low(this._context),d=this._context.new_var(h),u=r.Std.lowest(d,i,this._context),p=r.Std.log10(i);return[this.f_0(o,c,u,p)]}}},{name:"Commodity Channel Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},smoothedMA:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!1}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:100},{color:"#787B86",linestyle:2,linewidth:1, -visible:!0,value:-100}],filledAreasStyle:{fill_0:{color:"#2196F3",transparency:90,visible:!0}},inputs:{in_0:20,smoothingLine:"SMA",smoothingLength:20}},plots:[{id:"plot_0",type:"line"},{id:"smoothedMA",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1},smoothedMA:{title:"Smoothed MA",histogramBase:0,joinPoints:!1}},description:"Commodity Channel Index",shortDescription:"CCI",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit"},{id:"hline_1",name:"LowerLimit"}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background"}],inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:2e3},{id:"smoothingLine",name:"Smoothing Line",defval:"SMA",type:"text",options:["SMA","EMA","WMA"]},{id:"smoothingLength",name:"Smoothing Length",defval:20,type:"integer",min:1,max:1e4}],id:"Commodity Channel Index@tv-basicstudies-1",scriptIdPart:"",name:"Commodity Channel Index",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t,i){return(e-t)/(.015*i)},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.hlc3(this._context),s=this._input(0),n=this._input(1),o=this._input(2);this._context.setMinimumAdditionalDepth(s+o);var a,l=this._context.new_var(i),c=r.Std.sma(l,s,this._context),h=this._context.new_var(i),d=r.Std.dev(h,s,this._context),u=this.f_0(i,c,d),p=this._context.new_var(u);return"EMA"===n?a=r.Std.ema(p,o,this._context):"WMA"===n?a=r.Std.wma(p,o,this._context):"SMA"===n&&(a=r.Std.sma(p,o,this._context)),[u,a]}}},{name:"Connors RSI",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:70},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:30}],filledAreasStyle:{fill_0:{color:"#2196F3",transparency:90,visible:!0}},inputs:{in_0:3,in_1:2,in_2:100}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"CRSI",histogramBase:0,joinPoints:!1}},description:"Connors RSI",shortDescription:"CRSI",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit"},{id:"hline_1",name:"LowerLimit"}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background"}],inputs:[{id:"in_0",name:"RSI Length",defval:3,type:"integer",min:1},{id:"in_1",name:"UpDown Length",defval:2,type:"integer",min:1},{id:"in_2",name:"ROC Length",defval:100,type:"integer",min:1}],id:"Connors RSI@tv-basicstudies-1",scriptIdPart:"",name:"Connors RSI",format:{precision:2,type:"price"}},constructor:function(){var e;this.f_1=function(e,t,i){var s=i.new_var(r.Std.max(r.Std.change(e),0));return r.Std.rma(s,t,i)},this.f_2=function(e,t,i){var s=i.new_var(-r.Std.min(r.Std.change(e),0));return r.Std.rma(s,t,i)},this.f_3=(e=0,function(t){var i=t.get(0),s=t.get(1);return e=i===s?0:i>s?r.Std.nz(e)<=0?1:r.Std.nz(e)+1:r.Std.nz(e)>=0?-1:r.Std.nz(e)-1,this._context.new_var(e)}),this.main=function(e,t){this._context=e, -this._input=t;var i=r.Std.close(this._context),s=this._context.new_var(i),n=this._input(0),o=this._input(1),a=this._input(2);this._context.setMinimumAdditionalDepth(a);var l=r.Std.rsi(this.f_1(s,n,this._context),this.f_2(s,n,this._context)),c=this.f_3(s),h=r.Std.rsi(this.f_1(c,o,this._context),this.f_2(c,o,this._context)),d=this._context.new_var(r.Std.roc(s,1)),u=r.Std.percentrank(d,a);return[r.Std.avg(l,h,u)]}}},{name:"Coppock Curve",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:10,in_1:14,in_2:11}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Coppock Curve",shortDescription:"Coppock Curve",is_price_study:!1,inputs:[{id:"in_0",name:"WMA Length",defval:10,type:"integer",min:-1e12,max:5e3},{id:"in_1",name:"Long RoC Length",defval:14,type:"integer",min:1,max:4999},{id:"in_2",name:"Short RoC Length",defval:11,type:"integer",min:1,max:4999}],id:"Coppock Curve@tv-basicstudies-1",scriptIdPart:"",name:"Coppock Curve",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return e+t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2);this._context.setMinimumAdditionalDepth(i+Math.max(s,n));var o=r.Std.close(this._context),a=this._context.new_var(o),l=r.Std.roc(a,s),c=this._context.new_var(o),h=r.Std.roc(c,n),d=this.f_0(l,h),u=this._context.new_var(d);return[r.Std.wma(u,i,this._context)]}}},{name:"Correlation Coeff",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:4,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:"",in_1:20}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Correlation Coefficient",shortDescription:"CC",is_price_study:!1,inputs:[{id:"in_0",name:"sym",defval:"",type:"symbol"},{id:"in_1",name:"length",defval:20,type:"integer",min:1,max:2e3}],id:"Correlation Coeff@tv-basicstudies-1",scriptIdPart:"",name:"Correlation Coeff",format:{precision:2,type:"price"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this._context.new_sym(this._input(0),r.Std.period(this._context))},this.main=function(e,t){this._context=e,this._input=t;var i=this._context.new_unlimited_var(this._context.symbol.time),s=(this._input(0),r.Std.period(this._context),r.Std.close(this._context)),n=this._input(1);this._context.select_sym(1);var o=this._context.new_unlimited_var(this._context.symbol.time),a=r.Std.close(this._context),l=this._context.new_unlimited_var(a);this._context.select_sym(0);var c=l.adopt(o,i,0),h=this._context.new_var(s),d=this._context.new_var(c);return[r.Std.correlation(h,d,n,this._context)]}}},{name:"Correlation - Log",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!1, -id:"Correlation - Log@tv-basicstudies-1",scriptIdPart:"",name:"Correlation - Log",description:"Correlation - Log",shortDescription:"Correlation - Log",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#2196F3"}},inputs:{instrument:"",instrument2:"",periods:25}},styles:{plot_0:{title:"Plot"}},inputs:[{id:"instrument",name:"Instrument 1",type:"symbol",defval:"",confirm:!0},{id:"instrument2",name:"Instrument 2",type:"symbol",defval:"",confirm:!0},{id:"periods",name:"Periods",type:"integer",defval:25}],format:{precision:2,type:"price"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this._context.new_sym(this._input(0),r.Std.period(this._context)),this._context.new_sym(this._input(1),r.Std.period(this._context)),this.period=this._input(2)},this.correlationLog=function(e,t,i,s){var n=r.Std.sma(e,i,s),o=r.Std.sma(t,i,s),a=s.new_var(e.get()*t.get());return(r.Std.sma(a,i,s)-n*o)/Math.sqrt(r.Std.variance2(e,n,i)*r.Std.variance2(t,o,i))},this.main=function(e,t){this._context=e,this._input=t,this._context.select_sym(1);var i=this._context.new_var(this._context.symbol.time);this._context.select_sym(2);var s=this._context.new_var(r.Std.close(this._context)),n=this._context.new_var(r.Std.log(s.get()/s.get(1))),o=this._context.new_var(this._context.symbol.time);this._context.select_sym(1);var a=this._context.new_var(r.Std.close(this._context)),l=this._context.new_var(r.Std.log(a.get()/a.get(1))),c=this._context.new_var(n.adopt(o,i,0)),h=this.correlationLog(l,c,this.period,this._context);return[r.Std.round(1e3*h)/1e3]}}},{name:"Detrended Price Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#43A047"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:21,in_1:!1}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"DPO",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Detrended Price Oscillator",shortDescription:"DPO",is_price_study:!1,is_hidden_study:!1,id:"detrended_price_oscillator@tv-basicstudies-1",bands:[{id:"hline_0",name:"Zero",isHidden:!1}],inputs:[{id:"in_0",name:"Period",defval:21,type:"integer",min:1,max:1e12},{id:"in_1",name:"isCentered",defval:!1,type:"bool"}],scriptIdPart:"",name:"Detrended Price Oscillator",format:{type:"price",precision:2}},constructor:function(){this.f_0=function(){var e=this._input(0),t=this._input(1),i=Math.floor(e/2+1);this._context.setMinimumAdditionalDepth(e+i);var s=this._context.new_var(r.Std.close(this._context)),n=this._context.new_var(r.Std.sma(s,e,this._context)),o=this._context.new_var(r.Std.close(this._context)).get(i)-n,a=r.Std.close(this._context)-n.get(i);return[t?o:a,t?-i:0]},this.main=function(e,t){this._context=e,this._input=t;var i=this.f_0();return[{value:i[0],offset:i[1]}]}}},{name:"Directional Movement Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1, -is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"},plot_3:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#F50057"},plot_2:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FFA726"},plot_4:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#ab47bc"}},inputs:{in_0:14,in_1:14}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"},{id:"plot_3",type:"line"},{id:"plot_4",type:"line"}],styles:{plot_0:{title:"+DI",histogramBase:0,joinPoints:!1},plot_1:{title:"-DI",histogramBase:0,joinPoints:!1},plot_2:{title:"DX",histogramBase:0,joinPoints:!1},plot_3:{title:"ADX",histogramBase:0,joinPoints:!1},plot_4:{title:"ADXR",histogramBase:0,joinPoints:!1}},description:"Directional Movement",shortDescription:"DMI",is_price_study:!1,inputs:[{id:"in_0",name:"DI Length",defval:14,type:"integer",min:1,max:2e3},{id:"in_1",name:"ADX Smoothing",defval:14,type:"integer",min:1,max:50}],id:"Directional Movement Index@tv-basicstudies-1",scriptIdPart:"",name:"Directional Movement Index",format:{precision:4,type:"price"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1);return this._context.setMinimumAdditionalDepth(2*i+s),r.Std.dmi(i,s,this._context)}}},{name:"Donchian Channels",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_2:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"}},filledAreasStyle:{fill_0:{color:"#2196F3",transparency:95,visible:!0}},inputs:{in_0:20}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Lower",histogramBase:0,joinPoints:!1},plot_1:{title:"Upper",histogramBase:0,joinPoints:!1},plot_2:{title:"Basis",histogramBase:0,joinPoints:!1}},description:"Donchian Channels",shortDescription:"DC",is_price_study:!0,filledAreas:[{id:"fill_0",objAId:"plot_1",objBId:"plot_0",type:"plot_plot",title:"Plots Background"}],inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:2e3}],id:"Donchian Channels@tv-basicstudies-1",scriptIdPart:"",name:"Donchian Channels",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=r.Std.low(this._context),n=this._context.new_var(s),o=r.Std.lowest(n,i,this._context),a=r.Std.high(this._context),l=this._context.new_var(a),c=r.Std.highest(l,i,this._context);return[o,c,r.Std.avg(c,o)]}}},{name:"Double Exponential Moving Average",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1, -is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#43A047"}},inputs:{in_0:9}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Double EMA",shortDescription:"DEMA",is_price_study:!0,inputs:[{id:"in_0",name:"length",defval:9,type:"integer",min:1,max:1e4}],id:"Double Exponential Moving Average@tv-basicstudies-1",scriptIdPart:"",name:"Double Exponential Moving Average",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return 2*e-t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0);this._context.setMinimumAdditionalDepth(2*i);var s=r.Std.close(this._context),n=this._context.new_var(s),o=r.Std.ema(n,i,this._context),a=this._context.new_var(o),l=r.Std.ema(a,i,this._context);return[this.f_0(o,l)]}}},{name:"Ease of Movement",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#43A047"}},inputs:{in_0:1e4,in_1:14}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Ease Of Movement",shortDescription:"EOM",is_price_study:!1,inputs:[{id:"in_0",name:"Divisor",defval:1e4,type:"integer",min:1,max:1e9},{id:"in_1",name:"length",defval:14,type:"integer",min:1,max:2e3}],id:"Ease of Movement@tv-basicstudies-1",scriptIdPart:"",name:"Ease of Movement",format:{type:"volume"}},constructor:function(){this.f_0=function(e,t,i,s,r){return e*t*(i-s)/r},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=r.Std.hl2(this._context),o=this._context.new_var(n),a=r.Std.change(o),l=this.f_0(i,a,r.Std.high(this._context),r.Std.low(this._context),r.Std.volume(this._context)),c=this._context.new_var(l);return[r.Std.sma(c,s,this._context)]}}},{name:"Elders Force Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:a}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:13}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Elder's Force Index",shortDescription:"EFI",is_price_study:!1,bands:[{id:"hline_0",name:"Zero"}],inputs:[{id:"in_0",name:"length",defval:13,type:"integer",min:1,max:2e3}],id:"Elders Force Index@tv-basicstudies-1",scriptIdPart:"",name:"Elders Force Index",format:{type:"volume"}},constructor:function(){this.f_0=function(e,t){return e*t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=r.Std.close(this._context),n=this._context.new_var(s),o=r.Std.change(n),a=this.f_0(o,r.Std.volume(this._context)),l=this._context.new_var(a);return[r.Std.ema(l,i,this._context)]}}},{name:"EMA Cross",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{ -plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#43A047"},plot_2:{linestyle:0,linewidth:4,plottype:3,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:9,in_1:26}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Short",histogramBase:0,joinPoints:!1},plot_1:{title:"Long",histogramBase:0,joinPoints:!1},plot_2:{title:"Crosses",histogramBase:0,joinPoints:!1}},description:"EMA Cross",shortDescription:"EMA Cross",is_price_study:!0,inputs:[{id:"in_0",name:"Short",defval:9,type:"integer",min:1,max:2e3},{id:"in_1",name:"Long",defval:26,type:"integer",min:1,max:2e3}],id:"EMA Cross@tv-basicstudies-1",scriptIdPart:"",name:"EMA Cross",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return e?t:r.Std.na()},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=r.Std.close(this._context),o=this._context.new_var(n),a=r.Std.ema(o,i,this._context),l=this._context.new_var(n),c=r.Std.ema(l,s,this._context),h=a,d=c,u=r.Std.cross(a,c,this._context);return[h,d,this.f_0(u,a)]}}},{name:"Envelopes",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_2:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},filledAreasStyle:{fill_0:{color:"#2196F3",transparency:95,visible:!0}},inputs:{in_0:20,in_1:10,in_2:10,in_3:"Simple",in_4:"close"}},plots:[{id:"plot_1",type:"line"},{id:"plot_0",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Average",histogramBase:0,joinPoints:!1},plot_1:{title:"Upper",histogramBase:0,joinPoints:!1},plot_2:{title:"Lower",histogramBase:0,joinPoints:!1}},description:"Envelopes",shortDescription:"Envelopes",is_price_study:!0,filledAreas:[{id:"fill_0",objAId:"plot_1",objBId:"plot_2",type:"plot_plot",title:"Plots Background"}],inputs:[{id:"in_0",name:"Length",defval:20,type:"integer",min:1,max:2e3},{id:"in_1",name:"Upper Percentage",defval:2,type:"float",min:0},{id:"in_2",name:"Lower Percentage",defval:2,type:"float",min:0},{id:"in_3",name:"Method",type:"text",defval:"Simple",options:["Simple","Exponential","Weighted"]},{id:"in_4",name:"Source",defval:"close",type:"source",options:["open","high","low","close","hl2","hlc3","ohlc4"]}],id:"Envelope@tv-basicstudies-1",scriptIdPart:"",name:"Envelopes",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return e*(1+t)},this.f_1=function(e,t){return e*(1-t)},this.main=function(e,t){this._context=e,this._input=t;var i=this._context.new_var(r.Std[this._input(4)](this._context)),s=r.Std.sma(i,this._input(0),this._context) -;return"Exponential"===this._input(3)?s=r.Std.ema(i,this._input(0),this._context):"Weighted"===this._input(3)&&(s=r.Std.wma(i,this._input(0),this._context)),[this.f_0(s,this._input(1)/100),s,this.f_1(s,this._input(2)/100)]}}},{name:"Standard Error",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!1,id:"Standard Error@tv-basicstudies-1",scriptIdPart:"",name:"Standard Error",description:"Standard Error",shortDescription:"Standard Error",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#FF6D00"}},inputs:{length:14}},styles:{plot_0:{title:"Plot"}},inputs:[{id:"length",type:"integer",name:"Length",min:3}],format:{precision:2,type:"price"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.period=this._input(0)},this.main=function(e,t){this._context=e,this._input=t;for(var i,s,n=this._context.new_var(r.Std.close(this._context)),o=0,a=0,l=0;l0?1:3,i=r.Std.change(this._context.new_var(e));return t-(r.Std.le(i,0)?0:1)},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std[this._input(2)](this._context),s=this._input(0),n=this._input(1),o=this._input(3);this._context.setMinimumAdditionalDepth(Math.max(s,n)+o);var a=this._context.new_var(i),l=r.Std.ema(a,s,this._context),c=this._context.new_var(i),h=r.Std.ema(c,n,this._context),d=this.f_0(l,h),u=this._context.new_var(d),p=r.Std.ema(u,o,this._context),_=this.f_0(d,p);return[_,d,p,this.f_1(_)]}}},{name:"Moving Average Exponential",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},smoothedMA:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!1}},inputs:{length:9,source:"close",offset:0,smoothingLine:"SMA",smoothingLength:9}},plots:[{id:"plot_0",type:"line"},{id:"smoothedMA",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1},smoothedMA:{title:"Smoothed MA",histogramBase:0,joinPoints:!1}},description:"Moving Average Exponential",shortDescription:"EMA",is_price_study:!0,inputs:[{id:"length",name:"Length",defval:9,type:"integer",min:1,max:1e4},{id:"source",name:"Source",defval:"close",type:"source",options:["open","high","low","close","hl2","hlc3","ohlc4"]},{id:"offset",name:"Offset",defval:0,type:"integer",min:-1e4,max:1e4},{id:"smoothingLine",name:"Smoothing Line",defval:"SMA",type:"text", -options:["SMA","EMA","WMA"]},{id:"smoothingLength",name:"Smoothing Length",defval:9,type:"integer",min:1,max:1e4}],id:"Moving Average Exponential@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Exponential",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=r.Std[this._input(1)](this._context),s=this._input(0),n=this._input(2),o=this._input(3),a=this._input(4);this._context.setMinimumAdditionalDepth(s+a);var l,c=this._context.new_var(i),h=r.Std.ema(c,s,this._context),d=this._context.new_var(h);return"EMA"===o?l=r.Std.ema(d,a,this._context):"WMA"===o?l=r.Std.wma(d,a,this._context):"SMA"===o&&(l=r.Std.sma(d,a,this._context)),[{value:h,offset:n},{value:l,offset:n}]}}},{name:"Moving Average Weighted",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:9,in_1:"close",in_2:0}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Moving Average Weighted",shortDescription:"WMA",is_price_study:!0,inputs:[{id:"in_0",name:"Length",defval:9,type:"integer",min:1,max:2e3},{id:"in_1",name:"Source",defval:"close",type:"source",options:["open","high","low","close","hl2","hlc3","ohlc4"]},{id:"in_2",name:"Offset",defval:0,type:"integer",min:-1e4,max:1e4}],id:"Moving Average Weighted@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Weighted",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=r.Std[this._input(1)](this._context),s=this._input(0),n=this._input(2),o=this._context.new_var(i);return[{value:r.Std.wma(o,s,this._context),offset:n}]}}},{name:"Moving Average Double",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,id:"Moving Average Double@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Double",description:"Moving Average Double",shortDescription:"Moving Average Double",is_price_study:!0,plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#FF6D00"},plot_1:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#2196F3"}},inputs:{firstPeriods:14,secondPeriods:21,method:"Simple"}},styles:{plot_0:{title:"Plot 1"},plot_1:{title:"Plot 2"}},inputs:[{id:"firstPeriods",name:"1st Period",type:"integer",defval:14,min:1,max:1e4},{id:"secondPeriods",name:"2nd Period",type:"integer",defval:21,min:1,max:1e4},{id:"method",name:"Method",type:"text",defval:"Simple",options:["Simple","Exponential","Weighted"]}],format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i,s,n=this._context.new_var(r.Std.close(this._context));return"Exponential"===this._input(2)?(i=r.Std.ema(n,this._input(0),this._context), -s=r.Std.ema(n,this._input(1),this._context)):"Weighted"===this._input(2)?(i=r.Std.wma(n,this._input(0),this._context),s=r.Std.wma(n,this._input(1),this._context)):(i=r.Std.sma(n,this._input(0),this._context),s=r.Std.sma(n,this._input(1),this._context)),[i,s]}}},{name:"Moving Average Triple",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!0,id:"Moving Average Triple@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Triple",description:"Moving Average Triple",shortDescription:"Moving Average Triple",plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,transparency:0,trackPrice:!1,color:"#FF6D00"},plot_1:{linestyle:0,visible:!0,linewidth:1,transparency:0,plottype:0,trackPrice:!1,color:"#2196F3"},plot_2:{linestyle:0,visible:!0,linewidth:1,transparency:0,plottype:0,trackPrice:!1,color:"#26C6DA"}},inputs:{firstPeriods:14,secondPeriods:21,thirdPeriods:35,method:"Simple"}},styles:{plot_0:{title:"Plot 1"},plot_1:{title:"Plot 2"},plot_2:{title:"Plot 3"}},inputs:[{id:"firstPeriods",name:"1st Period",type:"integer",defval:14,min:1,max:1e4},{id:"secondPeriods",name:"2nd Period",type:"integer",defval:21,min:1,max:1e4},{id:"thirdPeriods",name:"3rd Period",type:"integer",defval:35,min:1,max:1e4},{id:"method",name:"Method",type:"text",defval:"Simple",options:["Simple","Exponential","Weighted"]}],format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i,s,n,o=this._context.new_var(r.Std.close(this._context));return"Exponential"===this._input(3)?(i=r.Std.ema(o,this._input(0),this._context),s=r.Std.ema(o,this._input(1),this._context),n=r.Std.ema(o,this._input(2),this._context)):"Weighted"===this._input(3)?(i=r.Std.wma(o,this._input(0),this._context),s=r.Std.wma(o,this._input(1),this._context),n=r.Std.wma(o,this._input(2),this._context)):(i=r.Std.sma(o,this._input(0),this._context),s=r.Std.sma(o,this._input(1),this._context),n=r.Std.sma(o,this._input(2),this._context)),[i,s,n]}}},{name:"Moving Average Adaptive",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!0,id:"Moving Average Adaptive@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Adaptive",description:"Moving Average Adaptive",shortDescription:"Moving Average Adaptive",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,transparency:0,trackPrice:!1,color:"#AB47BC"}},inputs:{periods:10}},styles:{plot_0:{title:"Plot 1"}},inputs:[{id:"periods",name:"Period",type:"integer",defval:10,min:2,max:1e4}],format:{type:"inherit"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.periods=this._input(0)},this.ama=function(e,t){var i=this.periods,s=this._context.new_var(),n=e.get(),o=r.Std.stdev(t,i,this._context),a=r.Std.log(n/e.get(i))/(o*Math.sqrt(i)),l=.1*Math.abs(a),c=(n-s.get(1))*l+s.get(1);return s.set(isNaN(c)?n:c),c},this.main=function(e,t){ -this._context=e,this._input=t;var i=this._context.new_var(r.Std.close(this._context)),s=this._context.new_var(r.Std.log(i.get()/i.get(1)));return[this.ama(i,s)]}}},{name:"Moving Average Hamming",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!0,id:"Moving Average Hamming@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Hamming",description:"Moving Average Hamming",shortDescription:"Moving Average Hamming",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,transparency:0,trackPrice:!1,color:"#4CAF50"}},inputs:{periods:10}},styles:{plot_0:{title:"Plot 1"}},inputs:[{id:"periods",name:"Period",type:"integer",defval:10,min:1,max:1e4}],format:{type:"inherit"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.periods=this._input(0);for(var i=[],s=0,r=1;r<=this.periods;++r){var n=Math.sin((1+r)/this.periods*Math.PI/2);i.unshift(n),s+=n}this.hmaFactors=i,this.hmaFactorsSum=s},this.hma=function(e){for(var t=this.periods,i=0,s=0;sthis._context.new_var(s).get(1)?1:0,[100*r.Std.sma(this._context.new_var(i),this.rollingPeriod,this._context)]}}},{name:"Net Volume",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Net Volume",shortDescription:"Net Volume",is_price_study:!1,inputs:[],id:"Net Volume@tv-basicstudies-1",scriptIdPart:"",name:"Net Volume",format:{type:"volume"}},constructor:function(){this.f_0=function(e,t,i){return r.Std.gt(e,0)?t:r.Std.lt(i,0)?-t:0*t},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._context.new_var(i),n=r.Std.change(s);return[this.f_0(n,r.Std.volume(this._context),n)]}}},{name:"On Balance Volume",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1, -transparency:0,visible:!0,color:"#2196F3"},smoothedMA:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!1}},inputs:{smoothingLine:"SMA",smoothingLength:9}},plots:[{id:"plot_0",type:"line"},{id:"smoothedMA",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1},smoothedMA:{title:"Smoothed MA",histogramBase:0,joinPoints:!1}},description:"On Balance Volume",shortDescription:"OBV",is_price_study:!1,inputs:[{id:"smoothingLine",name:"Smoothing Line",defval:"SMA",type:"text",options:["SMA","EMA","WMA"]},{id:"smoothingLength",name:"Smoothing Length",defval:9,type:"integer",min:1,max:1e4}],id:"On Balance Volume@tv-basicstudies-1",scriptIdPart:"",name:"On Balance Volume",format:{type:"volume"}},constructor:function(){this.f_0=function(e,t,i){return r.Std.gt(e,0)?t:r.Std.lt(i,0)?-t:0*t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=r.Std.close(this._context),o=this._context.new_var(n),a=r.Std.change(o),l=this.f_0(a,r.Std.volume(this._context),a),c=r.Std.cum(l,this._context);this._context.setMinimumAdditionalDepth(s);var h,d=this._context.new_var(c);return"EMA"===i?h=r.Std.ema(d,s,this._context):"WMA"===i?h=r.Std.wma(d,s,this._context):"SMA"===i&&(h=r.Std.sma(d,s,this._context)),[c,h]}}},{name:"Parabolic SAR",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:3,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:.02,in_1:.02,in_2:.2}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Parabolic SAR",shortDescription:"SAR",is_price_study:!0,inputs:[{id:"in_0",name:"start",defval:.02,type:"float",min:-1e12,max:1e12},{id:"in_1",name:"increment",defval:.02,type:"float",min:-1e12,max:1e12},{id:"in_2",name:"maximum",defval:.2,type:"float",min:-1e12,max:1e12}],id:"Parabolic SAR@tv-basicstudies-1",scriptIdPart:"",name:"Parabolic SAR",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2);return[r.Std.sar(i,s,n,this._context)]}}},{name:"Price Channel",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#F50057"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#F50057"},plot_2:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:20,in_1:0}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Highprice Line",histogramBase:0,joinPoints:!1},plot_1:{title:"Lowprice Line",histogramBase:0,joinPoints:!1},plot_2:{title:"Centerprice Line",histogramBase:0,joinPoints:!1}},description:"Price Channel",shortDescription:"PC",is_price_study:!0,inputs:[{id:"in_0",name:"Length",defval:20,type:"integer",min:1,max:2e3},{ -id:"in_1",name:"Offset Length",defval:0,type:"integer",min:1,max:2e3}],id:"Price Channel@tv-basicstudies-1",scriptIdPart:"",name:"Price Channel",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.high(this._context),s=this._context.new_var(i),n=r.Std.low(this._context),o=this._context.new_var(n),a=this._input(0),l=this._input(1),c=r.Std.highest(s,a,this._context),h=r.Std.lowest(o,a,this._context);return[{value:c,offset:l},{value:h,offset:l},{value:r.Std.avg(c,h),offset:l}]}}},{name:"Price Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:u}},inputs:{in_0:10,in_1:21}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Price Oscillator",shortDescription:"PPO",is_price_study:!1,inputs:[{id:"in_0",name:"shortlen",defval:10,type:"integer",min:1,max:2e3},{id:"in_1",name:"longlen",defval:21,type:"integer",min:1,max:2e3}],id:"Price Oscillator@tv-basicstudies-1",scriptIdPart:"",name:"Price Oscillator",format:{type:"price",precision:2}},constructor:function(){this.f_0=function(e,t){return(e-t)/t*100},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._context.new_var(i),a=r.Std.sma(o,s,this._context),l=this._context.new_var(i),c=r.Std.sma(l,n,this._context);return[this.f_0(a,c)]}}},{name:"Price Volume Trend",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"PVT",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Price Volume Trend",shortDescription:"PVT",is_price_study:!1,is_hidden_study:!1,id:"price_volume_trend@tv-basicstudies-1",inputs:[],scriptIdPart:"",name:"Price Volume Trend",format:{type:"volume"}},constructor:function(){this.f_0=function(){var e=this._context.new_var(r.Std.close(this._context));return[r.Std.cum(r.Std.change(e)/e.get(1)*r.Std.volume(this._context),this._context)]},this.main=function(e,t){return this._context=e,this._input=t,[this.f_0()[0]]}}},{name:"Rate Of Change",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:9}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"ROC",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Rate Of Change",shortDescription:"ROC",is_price_study:!1,bands:[{id:"hline_0",name:"Zero Line",isHidden:!1}],inputs:[{id:"in_0",name:"length",defval:9,type:"integer",min:1,max:1e12}],id:"rate_of_change@tv-basicstudies-1",scriptIdPart:"",name:"Rate Of Change",format:{precision:2,type:"price"}}, -constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._context.new_var(r.Std.close(this._context)),s=this._input(0);return[100*(i.get(0)-i.get(s))/i.get(s)]}}},{name:"Relative Strength Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#7E57C2"},smoothedMA:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!1}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:70},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:30}],filledAreasStyle:{fill_0:{color:"#7E57C2",transparency:90,visible:!0}},inputs:{length:14,smoothingLine:"SMA",smoothingLength:14}},plots:[{id:"plot_0",type:"line"},{id:"smoothedMA",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1},smoothedMA:{title:"Smoothed MA",histogramBase:0,joinPoints:!1}},description:"Relative Strength Index",shortDescription:"RSI",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit"},{id:"hline_1",name:"LowerLimit"}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background"}],inputs:[{id:"length",name:"Length",defval:14,type:"integer",min:1,max:2e3},{id:"smoothingLine",name:"Smoothing Line",defval:"SMA",type:"text",options:["SMA","EMA","WMA"]},{id:"smoothingLength",name:"Smoothing Length",defval:14,type:"integer",min:1,max:1e4}],id:"Relative Strength Index@tv-basicstudies-1",scriptIdPart:"",name:"Relative Strength Index",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e){return r.Std.max(e,0)},this.f_1=function(e){return-r.Std.min(e,0)},this.f_2=function(e,t){return r.Std.eq(e,0)?100:r.Std.eq(t,0)?0:100-100/(1+t/e)},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._input(2);this._context.setMinimumAdditionalDepth(s+o);var a,l=this._context.new_var(i),c=r.Std.change(l),h=this.f_0(c),d=this._context.new_var(h),u=r.Std.rma(d,s,this._context),p=this.f_1(c),_=this._context.new_var(p),m=r.Std.rma(_,s,this._context),g=this.f_2(m,u),f=this._context.new_var(g);return"EMA"===n?a=r.Std.ema(f,o,this._context):"WMA"===n?a=r.Std.wma(f,o,this._context):"SMA"===n&&(a=r.Std.sma(f,o,this._context)),[{value:g},{value:a}]}}},{name:"Relative Vigor Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:u},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:a}},inputs:{in_0:10}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],styles:{plot_0:{title:"RVGI",histogramBase:0,joinPoints:!1},plot_1:{title:"Signal",histogramBase:0,joinPoints:!1}},description:"Relative Vigor Index",shortDescription:"RVGI",is_price_study:!1,inputs:[{id:"in_0",name:"Length",defval:10,type:"integer",min:1,max:2e3}], -id:"Relative Vigor Index@tv-basicstudies-1",scriptIdPart:"",name:"Relative Vigor Index",format:{precision:4,type:"price"}},constructor:function(){this.f_0=function(e,t){return e-t},this.f_1=function(e,t){return e/t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this.f_0(r.Std.close(this._context),r.Std.open(this._context)),n=this._context.new_var(s),o=r.Std.swma(n,this._context),a=this._context.new_var(o),l=r.Std.sum(a,i,this._context),c=this.f_0(r.Std.high(this._context),r.Std.low(this._context)),h=this._context.new_var(c),d=r.Std.swma(h,this._context),u=this._context.new_var(d),p=r.Std.sum(u,i,this._context),_=this.f_1(l,p),m=this._context.new_var(_);return[_,r.Std.swma(m,this._context)]}}},{name:"Relative Volatility Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#7E57C2"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:80},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:20}],filledAreasStyle:{fill_0:{color:"#7E57C2",transparency:90,visible:!0}},inputs:{in_0:10}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Relative Volatility Index",shortDescription:"RVI",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit"},{id:"hline_1",name:"LowerLimit"}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background"}],inputs:[{id:"in_0",name:"length",defval:10,type:"integer",min:1,max:2e3}],id:"Relative Volatility Index@tv-basicstudies-1",scriptIdPart:"",name:"Relative Volatility Index",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t){return r.Std.le(e,0)?0:t},this.f_1=function(e,t){return r.Std.gt(e,0)?0:t},this.f_2=function(e,t){return e/(e+t)*100},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0);this._context.setMinimumAdditionalDepth(i+12);var s=r.Std.close(this._context),n=this._context.new_var(s),o=r.Std.stdev(n,i,this._context),a=this._context.new_var(s),l=r.Std.change(a),c=this.f_0(l,o),h=this._context.new_var(c),d=r.Std.ema(h,14,this._context),u=this.f_1(l,o),p=this._context.new_var(u),_=r.Std.ema(p,14,this._context);return[this.f_2(d,_)]}}},{name:"SMI Ergodic Indicator/Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"},plot_2:{linestyle:0,linewidth:1,plottype:1,trackPrice:!1,transparency:0,visible:!0,color:c}},inputs:{in_0:5,in_1:20,in_2:5}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Indicator",histogramBase:0,joinPoints:!1},plot_1:{title:"Signal",histogramBase:0,joinPoints:!1},plot_2:{title:"Oscillator",histogramBase:0, -joinPoints:!1}},description:"SMI Ergodic Indicator/Oscillator",shortDescription:"SMIIO",is_price_study:!1,inputs:[{id:"in_0",name:"shortlen",defval:5,type:"integer",min:1,max:2e3},{id:"in_1",name:"longlen",defval:20,type:"integer",min:1,max:2e3},{id:"in_2",name:"siglen",defval:5,type:"integer",min:1,max:2e3}],id:"SMI Ergodic Indicator/Oscillator@tv-basicstudies-1",scriptIdPart:"",name:"SMI Ergodic Indicator/Oscillator",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return e-t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2);this._context.setMinimumAdditionalDepth(i+s+n);var o=r.Std.close(this._context),a=this._context.new_var(o),l=r.Std.tsi(a,i,s,this._context),c=this._context.new_var(l),h=r.Std.ema(c,n,this._context);return[l,h,this.f_0(l,h)]}}},{name:"Smoothed Moving Average",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#673AB7"}},inputs:{in_0:7,in_1:"close"}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Smoothed Moving Average",shortDescription:"SMMA",is_price_study:!0,inputs:[{id:"in_0",name:"Length",defval:7,type:"integer",min:1,max:1e12},{id:"in_1",name:"Source",defval:"close",type:"source",options:["open","high","low","close","hl2","hlc3","ohlc4"]}],id:"smoothed_moving_average@tv-basicstudies-1",scriptIdPart:"",name:"Smoothed Moving Average",format:{type:"inherit"}},constructor:function(){this.f_0=function(){var e=this._input(0),t=r.Std[this._input(1)](this._context);return[r.Std.smma(t,e,this._context)]},this.main=function(e,t){return this._context=e,this._input=t,this.f_0()}}},{name:"Standard Deviation",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,id:"Standard Deviation@tv-basicstudies-1",scriptIdPart:"",name:"Standard Deviation",description:"Standard Deviation",shortDescription:"Standard Deviation",is_price_study:!1,plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:u}},inputs:{periods:5,deviations:1}},styles:{plot_0:{title:"Plot"}},inputs:[{id:"periods",name:"Periods",type:"integer"},{id:"deviations",name:"Deviations",type:"float"}],format:{precision:2,type:"price"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._context.new_var(r.Std.close(this._context));return[r.Std.stdev(n,i,this._context)*s]}}},{name:"Stochastic",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:80},{color:"#787B86",linestyle:2, -linewidth:1,visible:!0,value:20}],filledAreasStyle:{fill_0:{color:"#2196F3",transparency:90,visible:!0}},inputs:{in_0:14,in_1:1,in_2:3}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],styles:{plot_0:{title:"%K",histogramBase:0,joinPoints:!1},plot_1:{title:"%D",histogramBase:0,joinPoints:!1}},description:"Stochastic",shortDescription:"Stoch",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit"},{id:"hline_1",name:"LowerLimit"}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background"}],inputs:[{id:"in_0",name:"K",defval:14,type:"integer",min:1,max:1e4},{id:"in_1",name:"D",defval:1,type:"integer",min:1,max:1e4},{id:"in_2",name:"smooth",defval:3,type:"integer",min:1,max:1e4}],id:"Stochastic@tv-basicstudies-1",scriptIdPart:"",name:"Stochastic",format:{precision:2,type:"price"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2);this._context.setMinimumAdditionalDepth(i+s+n);var o=r.Std.close(this._context),a=r.Std.high(this._context),l=r.Std.low(this._context),c=this._context.new_var(o),h=this._context.new_var(a),d=this._context.new_var(l),u=r.Std.stoch(c,h,d,i,this._context),p=this._context.new_var(u),_=r.Std.sma(p,s,this._context),m=this._context.new_var(_);return[_,r.Std.sma(m,n,this._context)]}}},{name:"Stochastic RSI",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:80},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:20}],filledAreasStyle:{fill_0:{color:"#2196F3",transparency:90,visible:!0}},inputs:{in_0:14,in_1:14,in_2:3,in_3:3}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],styles:{plot_0:{title:"%K",histogramBase:0,joinPoints:!1},plot_1:{title:"%D",histogramBase:0,joinPoints:!1}},description:"Stochastic RSI",shortDescription:"Stoch RSI",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit"},{id:"hline_1",name:"LowerLimit"}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background"}],inputs:[{id:"in_0",name:"lengthRSI",defval:14,type:"integer",min:1,max:1e4},{id:"in_1",name:"lengthStoch",defval:14,type:"integer",min:1,max:1e4},{id:"in_2",name:"smoothK",defval:3,type:"integer",min:1,max:1e4},{id:"in_3",name:"smoothD",defval:3,type:"integer",min:1,max:1e4}],id:"Stochastic RSI@tv-basicstudies-1",scriptIdPart:"",name:"Stochastic RSI",format:{precision:2,type:"price"}},constructor:function(){this.f_1=function(e,t,i){var s=i.new_var(r.Std.max(r.Std.change(e),0));return r.Std.rma(s,t,i)},this.f_2=function(e,t,i){var s=i.new_var(-r.Std.min(r.Std.change(e),0));return r.Std.rma(s,t,i)},this.main=function(e,t){this._context=e,this._input=t -;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._input(2),a=this._input(3);e.setMinimumAdditionalDepth(s+n+o+a);var l=this._context.new_var(i),c=r.Std.rsi(this.f_1(l,s,this._context),this.f_2(l,s,this._context)),h=this._context.new_var(c),d=this._context.new_var(c),u=this._context.new_var(c),p=r.Std.stoch(h,d,u,n,this._context),_=this._context.new_var(p),m=r.Std.sma(_,o,this._context),g=this._context.new_var(m);return[m,r.Std.sma(g,a,this._context)]}}},{name:"TRIX",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:a}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:18}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"TRIX",histogramBase:0,joinPoints:!1}},description:"TRIX",shortDescription:"TRIX",is_price_study:!1,bands:[{id:"hline_0",name:"Zero"}],inputs:[{id:"in_0",name:"length",defval:18,type:"integer",min:1,max:2e3}],id:"TRIX@tv-basicstudies-1",scriptIdPart:"",name:"TRIX",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e){return r.Std.log(e)},this.f_1=function(e){return 1e4*e},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0);e.setMinimumAdditionalDepth(3*i);var s=this.f_0(r.Std.close(this._context)),n=this._context.new_var(s),o=r.Std.ema(n,i,this._context),a=this._context.new_var(o),l=r.Std.ema(a,i,this._context),c=this._context.new_var(l),h=r.Std.ema(c,i,this._context),d=this._context.new_var(h),u=r.Std.change(d);return[this.f_1(u)]}}},{name:"Triple EMA",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:9}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Triple EMA",shortDescription:"TEMA",is_price_study:!0,inputs:[{id:"in_0",name:"length",defval:9,type:"integer",min:1,max:1e4}],id:"Triple EMA@tv-basicstudies-1",scriptIdPart:"",name:"Triple EMA",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t,i){return 3*(e-t)+i},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0);this._context.setMinimumAdditionalDepth(3*i);var s=r.Std.close(this._context),n=this._context.new_var(s),o=r.Std.ema(n,i,this._context),a=this._context.new_var(o),l=r.Std.ema(a,i,this._context),c=this._context.new_var(l),h=r.Std.ema(c,i,this._context);return[this.f_0(o,l,h)]}}},{name:"True Strength Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#E91E63"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:25,in_1:13,in_2:13}},plots:[{id:"plot_0",type:"line" -},{id:"plot_1",type:"line"}],styles:{plot_0:{title:"True Strength Index",histogramBase:0,joinPoints:!1},plot_1:{title:"Signal",histogramBase:0,joinPoints:!1}},description:"True Strength Index",shortDescription:"True Strength Index",is_price_study:!1,bands:[{id:"hline_0",name:"Zero"}],inputs:[{id:"in_0",name:"long",defval:25,type:"integer",min:1,max:4999},{id:"in_1",name:"short",defval:13,type:"integer",min:1,max:4999},{id:"in_2",name:"siglen",defval:13,type:"integer",min:1,max:4999}],id:"True Strength Indicator@tv-basicstudies-1",scriptIdPart:"",name:"True Strength Index",format:{precision:4,type:"price"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2);this._context.setMinimumAdditionalDepth(this._input(0)+this._input(1)+this._input(2));var o=r.Std.close(this._context),a=this._context.new_var(o),l=r.Std.tsi(a,s,i,this._context),c=this._context.new_var(l);return[l,r.Std.ema(c,n,this._context)]}}},{name:"Trend Strength Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!1,id:"Trend Strength Index@tv-basicstudies-1",scriptIdPart:"",name:"Trend Strength Index",description:"Trend Strength Index",shortDescription:"Trend Strength Index",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:c}},inputs:{periods:14}},styles:{plot_0:{title:"Plot"}},inputs:[{id:"periods",type:"integer",name:"Periods"}],format:{type:"inherit"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.period=this._input(0),this.invertedPeriod=1/this.period,this.sumX=(this.period-1)*this.period/2,this.sumXX=(this.period-1)*this.period*(2*this.period-1)/6,this.invertedPeriodSumXSumX=this.invertedPeriod*this.sumX*this.sumX},this.trendStrengthIndex=function(){for(var e=this._context.new_var(r.Std.close(this._context)),t=r.Std.sum(e,this.period,this._context),i=0,s=0,n=0;n0?1:-1:a/(l=Math.sqrt(l))},this.main=function(e,t){return this._context=e,this._input=t,[this.trendStrengthIndex()]}}},{name:"Typical Price",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,id:"TypicalPrice@tv-basicstudies-1",scriptIdPart:"",name:"Typical Price",description:"Typical Price",shortDescription:"Typical Price",is_price_study:!0,plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#FF6D00"}},inputs:{}},styles:{plot_0:{title:"Plot"}},inputs:[],format:{type:"inherit"}},constructor:function(){this.main=function(e,t){return this._context=e,this._input=t,[r.Std.hlc3(this._context)]}}},{name:"Ultimate Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{ -linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:a}},inputs:{in_0:7,in_1:14,in_2:28}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"UO",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Ultimate Oscillator",shortDescription:"UO",is_price_study:!1,inputs:[{id:"in_0",name:"length7",defval:7,type:"integer",min:1,max:1e12},{id:"in_1",name:"length14",defval:14,type:"integer",min:1,max:1e12},{id:"in_2",name:"length28",defval:28,type:"integer",min:1,max:1e12}],id:"ultimate_oscillator@tv-basicstudies-1",scriptIdPart:"",name:"Ultimate Oscillator",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t,i){var s=this._context.new_var(e),n=this._context.new_var(t);return[r.Std.sum(s,i,this._context)/r.Std.sum(n,i,this._context)]},this.f_1=function(){var e=this._input(0),t=this._input(1),i=this._input(2),s=this._context.new_var(r.Std.close(this._context)),n=r.Std.max(r.Std.high(this._context),s.get(1)),o=this._context.new_var(r.Std.close(this._context)),a=r.Std.min(r.Std.low(this._context),o.get(1)),l=r.Std.close(this._context)-a,c=n-a,h=this.f_0(l,c,e),d=this.f_0(l,c,t),u=this.f_0(l,c,i);return[100*(4*h[0]+2*d[0]+u[0])/7]},this.main=function(e,t){return this._context=e,this._input=t,this.f_1()}}},{name:"Volatility Close-to-Close",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!1,id:"Volatility Close-to-Close@tv-basicstudies-1",scriptIdPart:"",name:"Volatility Close-to-Close",description:"Volatility Close-to-Close",shortDescription:"Volatility Close-to-Close",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#2196F3"}},inputs:{periods:10,daysPerYear:252}},styles:{plot_0:{title:"Plot"}},inputs:[{id:"periods",name:"Periods",type:"integer",defval:10,min:2},{id:"daysPerYear",name:"Days Per Year",type:"integer",defval:252,min:1,max:366}],format:{precision:2,type:"percent"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.period=this._input(0),this.daysPerYear=this._input(1)},this.stdev=function(e,t,i){var s=this.variance(e,t,i);return r.Std.sqrt(s)},this.variance=function(e,t,i){var s=r.Std.sma(e,t,i);return this.variance2(e,s,t)},this.variance2=function(e,t,i){var s,r,n=0;for(s=0;s0&&(l=.12*this.square(e.get()-s.get(1))/this.marketClosedPercentage+.88*l/(1-this.marketClosedPercentage)),l/=a,l*=this.secondsPerYear;var c=this._context.new_var(l);return 100*Math.sqrt(r.Std.sum(c,this.period,this._context)/this.period)},this.main=function(e,t){return this._context=e,this._input=t,[this.volatilityOHLC()]}}},{name:"Volatility Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!0, -id:"Volatility Index@tv-basicstudies-1",scriptIdPart:"",name:"Volatility Index",description:"Volatility Index",shortDescription:"Volatility Index",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:c}},inputs:{periods:10,atrMult:3,method:"Wilder Smoothing"}},styles:{plot_0:{title:"Plot"}},inputs:[{id:"periods",name:"Periods",type:"integer"},{id:"atrMult",name:"ATR Mult",type:"float"},{id:"method",name:"Method",type:"text",defval:"Exponential",options:["Exponential","Wilder Smoothing"]}],format:{type:"inherit"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.period=this._input(0),this.atrMult=this._input(1),this.maMethod=this._input(2),this.nextsar=null,this.position=null,this.sic=null,this.bars=[],this.count=0,this.lastSar=null,this._context.setMinimumAdditionalDepth("Exponential"===this.maMethod?2*this.period+2:this.period)},this.computeATR=function(){var e=r.Std.high(this._context)-r.Std.low(this._context),t=r.Std.high(this._context)-this.bars[this.bars.length-2],i=this.bars[this.bars.length-2]-r.Std.low(this._context);return this.tr=Math.max(e,t,i),"Exponential"===this.maMethod?this.atr=r.Std.ema(this._context.new_var(this.tr),this.period,this._context):this.atr=this.tr/this.period+(1-1/this.period)*this.atr,this.atr*this.atrMult},this.calculateVolatility=function(){if(r.Std.close(this._context)===this.bars[this.bars.length-1])return this.lastSar;if(this.bars.push(r.Std.close(this._context)),1===this.count)this.atr=r.Std.high(this._context)-r.Std.low(this._context),this.sic=r.Std.close(this._context);else if(this.countthis.sic&&(this.sic=r.Std.close(this._context))}else if(this.count===this.period){e=r.Std.high(this._context)-r.Std.low(this._context),t=r.Std.high(this._context)-this.bars[this.bars.length-2],i=this.bars[this.bars.length-2]-r.Std.low(this._context);this.atr+=Math.max(e,t,i),this.atr*=1/this.period,r.Std.close(this._context)>this.sic&&(this.sic=r.Std.close(this._context)),this.position="LONG",this.nextsar=this.sic-this.atr*this.atrMult}else{var s=this.nextsar;"LONG"===this.position?r.Std.close(this._context)s?(this.position="LONG",this.sic=r.Std.close(this._context),this.nextsar=this.sic-this.computeATR()):(this.position="SHORT",this.sic=Math.min(r.Std.close(this._context),this.sic),this.nextsar=this.sic+this.computeATR())),this.lastSar=s}return this.count++,s},this.main=function(e,t){return this._context=e,this._input=t,this._context.select_sym(0), -[this.calculateVolatility()]}}},{name:"VWAP",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:0,transparency:0,visible:!0,color:"#2196F3"}}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"VWAP",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"VWAP",shortDescription:"VWAP",is_price_study:!0,inputs:[],id:"VWAP@tv-basicstudies-1",scriptIdPart:"",name:"VWAP",format:{type:"inherit"}},constructor:function(){this.f_1=function(e){e.hist=null,e.add_hist()},this.init=function(e,t){this._isNewSession=null},this.main=function(e,t){this._context=e,this._input=t;var i=e.new_var(),s=e.new_var(),n=this._context.symbol.time;return n&&(null===this._isNewSession&&(this._isNewSession=r.Std.createNewSessionCheck(e)),this._isNewSession(n)&&(this.f_1(i),this.f_1(s))),i.set(r.Std.nz(i.get(1))+r.Std.hlc3(this._context)*r.Std.volume(this._context)),s.set(r.Std.nz(s.get(1))+r.Std.volume(this._context)),[i.get(0)/s.get(0)]}}},{name:"VWMA",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:20}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"VWMA",shortDescription:"VWMA",is_price_study:!0,inputs:[{id:"in_0",name:"len",defval:20,type:"integer",min:1,max:1e4}],id:"VWMA@tv-basicstudies-1",scriptIdPart:"",name:"VWMA",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._context.new_var(i);return[r.Std.vwma(n,s,this._context)]}}},{name:"Volume Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:5,in_1:10}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Volume Oscillator",shortDescription:"Volume Osc",is_price_study:!1,bands:[{id:"hline_0",name:"Zero"}],inputs:[{id:"in_0",name:"shortlen",defval:5,type:"integer",min:1,max:4999},{id:"in_1",name:"longlen",defval:10,type:"integer",min:1,max:4999}],id:"Volume Oscillator@tv-basicstudies-1",scriptIdPart:"",name:"Volume Oscillator",format:{precision:2,type:"percent"}},constructor:function(){this.f_0=function(e,t){return 100*(e-t)/t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=r.Std.volume(this._context),o=this._context.new_var(n),a=r.Std.ema(o,i,this._context),l=this._context.new_var(n),c=r.Std.ema(l,s,this._context);return[this.f_0(a,c)]}}},{name:"Vortex Indicator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0, -visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#E91E63"}},inputs:{in_0:14}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],styles:{plot_0:{title:"VI +",histogramBase:0,joinPoints:!1,isHidden:!1},plot_1:{title:"VI -",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Vortex Indicator",shortDescription:"VI",is_price_study:!1,is_hidden_study:!1,id:"vortex_indicator@tv-basicstudies-1",inputs:[{id:"in_0",name:"Period",defval:14,type:"integer",min:2,max:1e12}],scriptIdPart:"",name:"Vortex Indicator",format:{precision:4,type:"price"}},constructor:function(){this.f_0=function(){var e=this._input(0),t=this._context.new_var(r.Std.low(this._context)),i=this._context.new_var(r.Std.abs(r.Std.high(this._context)-t.get(1))),s=r.Std.sum(i,e,this._context),n=this._context.new_var(r.Std.high(this._context)),o=this._context.new_var(r.Std.abs(r.Std.low(this._context)-n.get(1))),a=r.Std.sum(o,e,this._context),l=this._context.new_var(r.Std.atr(1,this._context)),c=r.Std.sum(l,e,this._context);return[s/c,a/c]},this.main=function(e,t){return this._context=e,this._input=t,this.f_0()}}},{name:"Willams %R",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#7E57C2"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:-20},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:-80}],filledAreasStyle:{fill_0:{color:"#7E57C2",transparency:90,visible:!0}},inputs:{in_0:14}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Williams %R",shortDescription:"%R",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit"},{id:"hline_1",name:"LowerLimit"}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background"}],inputs:[{id:"in_0",name:"length",defval:14,type:"integer",min:1,max:2e3}],id:"Willams %R@tv-basicstudies-1",scriptIdPart:"",name:"Willams %R",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t,i){return 100*(e-t)/(t-i)},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=r.Std.high(this._context),n=this._context.new_var(s),o=r.Std.highest(n,i,this._context),a=r.Std.low(this._context),l=this._context.new_var(a),c=r.Std.lowest(l,i,this._context);return[this.f_0(r.Std.close(this._context),o,c)]}}},{name:"Williams Alligator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#E91E63"},plot_2:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#66BB6A"}},inputs:{in_0:21,in_1:13,in_2:8,in_3:8,in_4:5,in_5:3}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}], -styles:{plot_0:{title:"Jaw",histogramBase:0,joinPoints:!1},plot_1:{title:"Teeth",histogramBase:0,joinPoints:!1},plot_2:{title:"Lips",histogramBase:0,joinPoints:!1}},description:"Williams Alligator",shortDescription:"Alligator",is_price_study:!0,inputs:[{id:"in_0",name:"Jaw Length",defval:21,type:"integer",min:1,max:2e3},{id:"in_1",name:"Teeth Length",defval:13,type:"integer",min:1,max:2e3},{id:"in_2",name:"Lips Length",defval:8,type:"integer",min:1,max:2e3},{id:"in_3",name:"Jaw Offset",defval:8,type:"integer",min:1,max:2e3},{id:"in_4",name:"Teeth Offset",defval:5,type:"integer",min:1,max:2e3},{id:"in_5",name:"Lips Offset",defval:3,type:"integer",min:1,max:2e3}],id:"Williams Alligator@tv-basicstudies-1",scriptIdPart:"",name:"Williams Alligator",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2),o=this._input(3),a=this._input(4),l=this._input(5),c=r.Std.hl2(this._context);return[{value:r.Std.smma(c,i,this._context),offset:o},{value:r.Std.smma(c,s,this._context),offset:a},{value:r.Std.smma(c,n,this._context),offset:l}]}}},{name:"Williams Fractals",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,defaults:{styles:{plot_0:{plottype:"shape_triangle_down",visible:!0,location:"BelowBar",transparency:0,color:a},plot_1:{plottype:"shape_triangle_up",visible:!0,location:"AboveBar",transparency:0,color:u}},inputs:{in_0:2}},plots:[{id:"plot_0",type:"shapes"},{id:"plot_1",type:"shapes"}],styles:{plot_0:{title:"Down fractals",isHidden:!1},plot_1:{title:"Up fractals",isHidden:!1}},description:"Williams Fractal",shortDescription:"Fractals",is_price_study:!0,is_hidden_study:!1,id:"Williams Fractals@tv-basicstudies-1",inputs:[{id:"in_0",name:"Periods",defval:2,type:"integer",min:2,max:1e12}],scriptIdPart:"",name:"Williams Fractals",isCustomIndicator:!0,format:{type:"inherit"}},constructor:function(){this.f_0=function(){for(var e=this._input(0),t=this._context.new_var(r.Std.high(this._context)),i=!0,s=!0,n=!0,o=!0,a=!0,l=!0,c=1;c<=e;c++)i=r.Std.and(i,r.Std.lt(t.get(e-c),t.get(e))),s=r.Std.and(s,r.Std.lt(t.get(e+c),t.get(e))),n=r.Std.and(n,r.Std.and(r.Std.le(t.get(e+1),t.get(e)),r.Std.lt(t.get(e+c+1),t.get(e)))),o=r.Std.and(o,r.Std.and(r.Std.le(t.get(e+1),t.get(e)),r.Std.and(r.Std.le(t.get(e+2),t.get(e)),r.Std.lt(t.get(e+c+2),t.get(e))))),a=r.Std.and(a,r.Std.and(r.Std.le(t.get(e+1),t.get(e)),r.Std.and(r.Std.le(t.get(e+2),t.get(e)),r.Std.and(r.Std.le(t.get(e+3),t.get(e)),r.Std.lt(t.get(e+c+3),t.get(e)))))),l=r.Std.and(l,r.Std.and(r.Std.le(t.get(e+1),t.get(e)),r.Std.and(r.Std.le(t.get(e+2),t.get(e)),r.Std.and(r.Std.le(t.get(e+3),t.get(e)),r.Std.and(r.Std.le(t.get(e+4),t.get(e)),r.Std.lt(t.get(e+c+4),t.get(e)))))));var h=r.Std.or(s,r.Std.or(n,r.Std.or(o,r.Std.or(a,l)))),d=r.Std.and(i,h),u=this._context.new_var(r.Std.low(this._context)),p=1,_=1,m=1,g=1,f=1,v=1;for(c=1;c<=e;c++)p=r.Std.and(p,r.Std.gt(u.get(e-c),u.get(e))),_=r.Std.and(_,r.Std.gt(u.get(e+c),u.get(e))), -m=r.Std.and(m,r.Std.and(r.Std.ge(u.get(e+1),u.get(e)),r.Std.gt(u.get(e+c+1),u.get(e)))),g=r.Std.and(g,r.Std.and(r.Std.ge(u.get(e+1),u.get(e)),r.Std.and(r.Std.ge(u.get(e+2),u.get(e)),r.Std.gt(u.get(e+c+2),u.get(e))))),f=r.Std.and(f,r.Std.and(r.Std.ge(u.get(e+1),u.get(e)),r.Std.and(r.Std.ge(u.get(e+2),u.get(e)),r.Std.and(r.Std.ge(u.get(e+3),u.get(e)),r.Std.gt(u.get(e+c+3),u.get(e)))))),v=r.Std.and(v,r.Std.and(r.Std.ge(u.get(e+1),u.get(e)),r.Std.and(r.Std.ge(u.get(e+2),u.get(e)),r.Std.and(r.Std.ge(u.get(e+3),u.get(e)),r.Std.and(r.Std.ge(u.get(e+4),u.get(e)),r.Std.gt(u.get(e+c+4),u.get(e)))))));var S=r.Std.or(_,r.Std.or(m,r.Std.or(g,r.Std.or(f,v))));return[r.Std.and(p,S),d]},this.main=function(e,t){this._context=e,this._input=t;var i=this.f_0();return[{value:i[0],offset:-this._input(0)},{value:i[1],offset:-this._input(0)}]}}},{name:"Guppy Multiple Moving Average",metainfo:{isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,description:"Guppy Multiple Moving Average",shortDescription:"GMMA",is_price_study:!0,id:"Guppy Multiple Moving Average@tv-basicstudies-1",_metainfoVersion:52,format:{type:"inherit"},defaults:{inputs:{traderEMA1Length:3,traderEMA2Length:5,traderEMA3Length:8,traderEMA4Length:10,traderEMA5Length:12,traderEMA6Length:15,investorEMA1Length:30,investorEMA2Length:35,investorEMA3Length:40,investorEMA4Length:45,investorEMA5Length:50,investorEMA6Length:60},styles:{traderEMA1:{color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:15,visible:!0},traderEMA2:{color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:12,visible:!0},traderEMA3:{color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:9,visible:!0},traderEMA4:{color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:6,visible:!0},traderEMA5:{color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:3,visible:!0},traderEMA6:{color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0},investorEMA1:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:15,visible:!0},investorEMA2:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:12,visible:!0},investorEMA3:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:9,visible:!0},investorEMA4:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:6,visible:!0},investorEMA5:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:3,visible:!0},investorEMA6:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0}}},inputs:[{defval:3,id:"traderEMA1Length",max:1e3,min:1,name:"Trader EMA 1 length",type:"integer"},{defval:5,id:"traderEMA2Length",max:1e3,min:1,name:"Trader EMA 2 length",type:"integer"},{defval:8,id:"traderEMA3Length",max:1e3,min:1,name:"Trader EMA 3 length",type:"integer"},{defval:10,id:"traderEMA4Length",max:1e3,min:1,name:"Trader EMA 4 length",type:"integer"},{defval:12,id:"traderEMA5Length",max:1e3,min:1, -name:"Trader EMA 5 length",type:"integer"},{defval:15,id:"traderEMA6Length",max:1e3,min:1,name:"Trader EMA 6 length",type:"integer"},{defval:30,id:"investorEMA1Length",max:1e3,min:1,name:"Investor EMA 1 length",type:"integer"},{defval:35,id:"investorEMA2Length",max:1e3,min:1,name:"Investor EMA 2 length",type:"integer"},{defval:40,id:"investorEMA3Length",max:1e3,min:1,name:"Investor EMA 3 length",type:"integer"},{defval:45,id:"investorEMA4Length",max:1e3,min:1,name:"Investor EMA 4 length",type:"integer"},{defval:50,id:"investorEMA5Length",max:1e3,min:1,name:"Investor EMA 5 length",type:"integer"},{defval:60,id:"investorEMA6Length",max:1e3,min:1,name:"Investor EMA 6 length",type:"integer"}],plots:[{id:"traderEMA1",type:"line"},{id:"traderEMA2",type:"line"},{id:"traderEMA3",type:"line"},{id:"traderEMA4",type:"line"},{id:"traderEMA5",type:"line"},{id:"traderEMA6",type:"line"},{id:"investorEMA1",type:"line"},{id:"investorEMA2",type:"line"},{id:"investorEMA3",type:"line"},{id:"investorEMA4",type:"line"},{id:"investorEMA5",type:"line"},{id:"investorEMA6",type:"line"}],styles:{traderEMA1:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 1"},traderEMA2:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 2"},traderEMA3:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 3"},traderEMA4:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 4"},traderEMA5:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 5"},traderEMA6:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 6"},investorEMA1:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Investor EMA 1"},investorEMA2:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Investor EMA 2"},investorEMA3:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Investor EMA 3"},investorEMA4:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Investor EMA 4"},investorEMA5:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Investor EMA 5"},investorEMA6:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Investor EMA 6"}}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._context.new_var(r.Std.close(this._context)),s=this._input(0),n=this._input(1),o=this._input(2),a=this._input(3),l=this._input(4),c=this._input(5),h=r.Std.ema(i,s,this._context),d=r.Std.ema(i,n,this._context),u=r.Std.ema(i,o,this._context),p=r.Std.ema(i,a,this._context),_=r.Std.ema(i,l,this._context),m=r.Std.ema(i,c,this._context),g=this._input(6),f=this._input(7),v=this._input(8),S=this._input(9),y=this._input(10),b=this._input(11);return[h,d,u,p,_,m,r.Std.ema(i,g,this._context),r.Std.ema(i,f,this._context),r.Std.ema(i,v,this._context),r.Std.ema(i,S,this._context),r.Std.ema(i,y,this._context),r.Std.ema(i,b,this._context)]}}}]},92484:(e,t,i)=>{"use strict";var s;i.d(t,{SubsessionId:()=>s}),function(e){e.Regular="regular",e.Extended="extended",e.PreMarket="premarket",e.PostMarket="postmarket"}(s||(s={}))},87456:(e,t,i)=>{"use strict";i.d(t,{PointsetsManager:()=>n});var s=i(578);const r=(0,i(98351).getLogger)("ChartApi.PointsetsManager");class n{ -constructor(){this._pointsetsDataBySymbol=new Map}destroy(){this._pointsetsDataBySymbol.clear()}createPointset(e,t,i,s,n){let o=this._pointsetsDataBySymbol.get(t);void 0===o&&(o=new Map,this._pointsetsDataBySymbol.set(t,o));const a=[];for(const t of s){const[i,s]=t;"number"!=typeof i||Number.isNaN(i)?r.logWarn(`Pointset time is invalid: id=${e}, ${i} of type ${typeof i}`):a.push({point:t,extrapolation:n.extrapolateTimeWithOffsetToTime(1e3*i,s)})}s.length===a.length&&o.set(e,{resolution:i,points:a})}removePointset(e){const t=[];this._pointsetsDataBySymbol.forEach(((i,s)=>{i.delete(e),0===i.size&&t.push(s)}));for(const e of t)this._pointsetsDataBySymbol.delete(e)}invalidatePointsetsForSymbol(e,t){const i=this._pointsetsDataBySymbol.get(e);void 0!==i&&i.forEach(((e,i)=>{if(s.Interval.isEqual(e.resolution,t))for(const t of e.points)null!==t.extrapolation&&t.extrapolation.exact&&(t.extrapolation.exact=!1)}))}getUpdatesForSymbol(e,t,i,s){const r=new Map,n=this._pointsetsDataBySymbol.get(e);return void 0!==n&&n.forEach(((e,n)=>{const o=this._refreshPointsetData(e,t,i,s);null!==o&&r.set(n,o)})),r}_refreshPointsetData(e,t,i,n){if(s.Interval.isEqual(e.resolution,t))for(let t=0;t ${t}`),null;o.push({index:i,value:[a.index,a.timeMs/1e3]})}return o}}},59749:(e,t,i)=>{"use strict";i.d(t,{SessionTimeScale:()=>v});var s=i(50151),r=i(2484),n=i(32769),o=i(93975),a=i(8950),l=i(33143),c=i(23150);function h(e){return 60*e*60*1e3}function d(e){return 60*e*1e3}const u=[{divisor:1,weight:18},{divisor:(p=1,1e3*p),weight:19},{divisor:d(1),weight:20},{divisor:d(5),weight:21},{divisor:d(30),weight:22},{divisor:h(1),weight:30},{divisor:h(3),weight:31},{divisor:h(6),weight:32},{divisor:h(12),weight:33}];var p;function _(e,t){if(null!==t){if(e.getUTCFullYear()!==t.getUTCFullYear())return 70;if(e.getUTCMonth()!==t.getUTCMonth())return 60;if(e.getUTCDate()!==t.getUTCDate())return 50;const i=t.getTime(),s=e.getTime();for(let e=u.length-1;e>=0;--e)if(Math.floor(i/u[e].divisor)!==Math.floor(s/u[e].divisor))return u[e].weight}return 18}function m(e,t,i=0){if(0===e.length)return[];let s=i,r=i;const n=[];for(;s=t.length?(n.push({old:s,new:l.INVALID_TIME_POINT_INDEX}),s++):e[s].timeMs===t[r].timeMs?(s!==r&&n.push({old:s,new:r}),s++,r++):e[s].timeMs{if(e.new===t.new&&e.new===l.INVALID_TIME_POINT_INDEX)return e.old-t.old;if(e.new===l.INVALID_TIME_POINT_INDEX)return-1;if(t.new===l.INVALID_TIME_POINT_INDEX)return 1;const i=e.old-e.new,s=t.old-t.new;return i>0?s>0?e.old-t.old:-1:s<0?t.new-e.new:1}))}function g(e,t){return{ -span:e.markWeight,time:e.displayTime,index:t}}const f=r.enabled("end_of_period_timescale_marks");class v{constructor(){this._completed=!0,this._mainSymbolExtrapolator=null,this._pointDataByTimePoint=new Map,this._seriesIds=new Set,this._displayTimezone=null,this._minFutureBarsCount=0,this._sortedTimePoints=[]}destroy(){this.clearTimeScale()}setCompleted(e){this._completed=e}isCompleted(){return this._completed}clearTimeScale(){return this._pointDataByTimePoint.clear(),this._seriesIds.clear(),this._sortedTimePoints=[],{baseIndex:null,pointsIndex:0,indexChange:[],marks:[],points:[]}}indexOfTime(e){if(0===this._sortedTimePoints.length)return null===this._mainSymbolExtrapolator?null:this._mainSymbolExtrapolator.indexOfTime(e);if(ethis._sortedTimePoints[this._sortedTimePoints.length-1].timeMs){if(null===this._mainSymbolExtrapolator)return null;const t=this._mainSymbolExtrapolator.indexOfTime(e),i=this._mainSymbolExtrapolator.indexOfTime(this._sortedTimePoints[this._sortedTimePoints.length-1].timeMs);if(null===t||null===i)return null;const s=t.index-i.index-1;return{index:this._sortedTimePoints.length+s,timeMs:t.timeMs}}let t=(0,o.lowerbound)(this._sortedTimePoints,e,((e,t)=>e.timeMs({timeMs:e,markWeight:0,displayTime:NaN})));this._fillPointsData(i,0,0!==this._sortedTimePoints.length?this._sortedTimePoints[this._sortedTimePoints.length-1].displayTime:null);const r=[];for(let t=e;tg(e,i+t)));return r.concat(n)}setTimezone(e){this._displayTimezone="exchange"===e?null:(0,n.get_timezone)(e),this._fillPointsData(this._sortedTimePoints,0)}fillIndexesInRows(e){if(0===e.length)return;let t=-1,i=(0,o.lowerbound)(this._sortedTimePoints,Math.round(1e3*e[0].value[0]),((e,t)=>e.timeMse.timeMs{for(;i=this._sortedTimePoints.length){const t=this.indexOfTime(e);if(null===t)return l.INVALID_TIME_POINT_INDEX;i=t.timeMs!==e?t.index+1:t.index}return(0,s.assert)(i>t,"data must have unique sorted times"),t=i,i}))}firstSeriesBarTime(){return 0===this._sortedTimePoints.length?null:this._sortedTimePoints[0].timeMs}replaceSeriesBarsTimesTail(e,t){if(0===t.length)return null;if(!this._seriesIds.has(e))return this.setSeriesBarsTimes(e,t);const i=[],s=(0,o.lowerbound)(this._sortedTimePoints,t[0],((e,t)=>e.timeMs({timeMs:e.timeMs,pointData:e.pointData,markWeight:0,displayTime:NaN})));for(let e=s;ee.timeMs-t.timeMs));const a=this._updateTimeScalePointsTail(n);return this._applyTimeScaleChanges(a,!1)}setSeriesBarsTimes(e,t){let i=0!==this._pointDataByTimePoint.size;if(this._seriesIds.has(e))if(1===this._seriesIds.size)i=!1,this._pointDataByTimePoint.clear();else for(const t of this._sortedTimePoints)t.pointData.series.delete(e);this._addBarsTimesToSeries(e,t,!1);const s=this._seriesIds.size;0===t.length?this._seriesIds.delete(e):this._seriesIds.add(e),i&&this._cleanupPointsData(this._sortedTimePoints);const r=sthis._seriesIds.size,o=r&&2===this._seriesIds.size||n&&1===this._seriesIds.size,a=[];this._pointDataByTimePoint.forEach(((e,t)=>{a.push({markWeight:0,timeMs:t,displayTime:NaN,pointData:e})})),a.sort(((e,t)=>e.timeMs-t.timeMs));const l=this._updateTimeScalePoints(a);return this._applyTimeScaleChanges(l,o)}_updateFutureBars(){if(0===this._minFutureBarsCount||null===this._mainSymbolExtrapolator)return;if(0!==this._sortedTimePoints.length){const e=this._sortedTimePoints[this._sortedTimePoints.length-1].timeMs;this._mainSymbolExtrapolator.ensureExtrapolatedToFutureTime(e)}const e=this._futureBarsFirstPointIndex();this._mainSymbolExtrapolator.setMinFutureBarsCount(e+this._minFutureBarsCount)}_addBarsTimesToSeries(e,t,i){const s=i?[]:null;for(const i of t){const t=this._pointDataByTimePoint.get(i);if(void 0===t){const t=new Set;t.add(e);const r={index:0,series:t};this._pointDataByTimePoint.set(i,r),null!==s&&s.push({timeMs:i,pointData:r})}else t.series.add(e)}return s}_futureBarsFirstPointIndex(){ -if(null===this._mainSymbolExtrapolator||0===this._sortedTimePoints.length)return 0;const e=this._mainSymbolExtrapolator.futureBars();return(0,o.upperbound_int)(e,this._sortedTimePoints[this._sortedTimePoints.length-1].timeMs)}_futureBars(){return null===this._mainSymbolExtrapolator?[]:this._mainSymbolExtrapolator.futureBars().slice(this._futureBarsFirstPointIndex(),this._futureBarsFirstPointIndex()+1e3)}_cleanupPointsData(e){for(const t of e)0===t.pointData.series.size&&this._pointDataByTimePoint.delete(t.timeMs)}_updateTimeScalePoints(e){let t=-1;for(let i=0;ie.timeMs=this._sortedTimePoints.length)continue;this._sortedTimePoints[n].timeMs!==r.timeMs&&-1===i&&(i=n)}const s=t+e.length;if(i=S(i,this._sortedTimePoints.length,s),-1===i)return null;this._fillPointsData(e,0,0===t||0===this._sortedTimePoints.length?null:this._sortedTimePoints[t-1].displayTime);const r=m(this._sortedTimePoints.slice(t),e).map((e=>({old:e.old+t,new:e.new===l.INVALID_TIME_POINT_INDEX?e.new:e.new+t})));{const i=this._sortedTimePoints;let r=0;for(;t+r1&&null===i){const t=Math.ceil(n/(e.length-1)),i=new Date(1e3*(e[0].displayTime-t));e[0].markWeight=_(new Date(1e3*e[0].displayTime),i)}}(e,t,i)}_applyTimeScaleChanges(e,t){if(null===e)return t?(this._fillPointsData(this._sortedTimePoints,0),{points:[],pointsIndex:0,baseIndex:this._getBaseIndex(),indexChange:[],marks:this.tickMarks(0)}):null;let i=e.pointsIndex;if(0!==i&&t&&(this._fillPointsData(this._sortedTimePoints,0),i=0),0===this._sortedTimePoints.length)return{baseIndex:null,pointsIndex:0,indexChange:[],marks:[],points:[]};const s=[];for(let t=e.pointsIndex;t{"use strict";var s=i(78554),r=i(76702),n=i(22115),o=i(56439).SymbolExtrapolator,a=i(59749).SessionTimeScale,l=i(87456).PointsetsManager,c=i(69228),h=i(8950).createDwmAligner,d=i(578).Interval,u=i(76422),p=i(70641).visitObject,_=i(65665).isObject;i(95056),i(96531);var m=i(40011).DatafeedRequestsCachedProcessor,g=i(20364).timezoneIsAvailable,f=i(8950).isAlignmentEnabled,v=i(91035),S=v.isEncodedExtendedSymbol,y=v.decodeExtendedSymbol,b=i(1930).extractSymbolNameFromSymbolInfo,w=i(11249).replaceGraphicsTimesWithTimePointIndexIndex,P=i(2484),C=i(92484).SubsessionId,T=i(69228).getPeriodsBetweenDates;const x="pre_post_market_sessions",I=P.enabled(x);var M=-5e6;function A(e){var t=e.findIndex((function(e){return e.index!==M}));return-1===t?[]:0===t?e:e.slice(t)}function L(e,t){return e+"_"+t}var k=function(e){var t=this;this._studiesCache={},this._objectsDataCache={},this._studiesNonSeriesTimes={},this._metainfoCache=[],this._barsCoefficientsCache={},this._externalDatafeed=e,e.getVolumeProfileResolutionForPeriod&&r.overwriteVolumeProfileResolutionForPeriodGetter((function(t,i,s,r){return e.getVolumeProfileResolutionForPeriod(t,i,s,r)})),this._datafeedConfiguration=null,this._marketStatusWatchers={},this._resolveRequests={},this._resolvePromisesBySymbolId=new Map,this._symbolIdToSymbolRequestString=new Map,this._callbacks={},this._serverTimeOffset=0,t._logMessage("Datafeed settings received: {0}".format(JSON.stringify(window.configurationData))),t._datafeedConfiguration=t._adoptConfigurationData(window.configurationData),t._fireEvent("configuration_received"),t._externalDatafeed.getServerTime&&t._externalDatafeed.getServerTime((function(e){t._serverTimeOffset=e-(new Date).valueOf()/1e3})),this._invalidatedPointsetSessions=new Set,this._refreshPointsetsTimerId=null,this._pointsetsManagers={},this._quotesInfo=[],this._depthInfo=[],this._endOfData={},this._computeStudyCounter=0,this._symbolExtrapolators={},this._timeScales={},this._cachedDatafeed=new m(e,this.serverTimeOffset.bind(this),this._datafeedConfiguration.reset_cache_timeout),n.setupFeed({resolve:function(e,i,s,r){t._resolveSymbolByName(e,i,s,r)},subscribe:function(e,i,s,r,n){return t._cachedDatafeed.subscribe(e,i,s,function(e,i,s){ -var r=new c.SessionInfo(e.timezone,e.session,e.session_holidays,e.corrections),n=c.newBarBuilder(i,r,r);return function(e){if(e&&e.count()){var i=1e3*t.getCurrentUTCTime();n.moveTo(i),n.indexOfBar(i)>=0&&e.setLastBarClosed(!1)}s(e)}}(e,i,r),n)},unsubscribe:function(e){return t._cachedDatafeed.unsubscribe(e)}})};function E(e,t){return e+"_"+t}function D(e,t,i,s){return e+(t?"_#_"+t:"")+(i?"_#_"+i:"")+(s?"_#_"+s:"")}k.prototype._getSymbolExtrapolator=function(e,t,i){var s=d.normalize(i),r=function(e,t,i){const s=void 0!==t.subsession_id?","+t.subsession_id:"";return e+","+t.full_name+","+i+s}(e,t,s),n=this._symbolExtrapolators[r];return void 0===n&&(n=new o(t,s),this._symbolExtrapolators[r]=n),n},k.prototype._barsCoefficients=function(e,t){if(void 0===y(e).type)return{};var i=e+t;return this._barsCoefficientsCache[i]||(this._barsCoefficientsCache[i]={}),this._barsCoefficientsCache[i]},k.prototype.destroy=function(){this._cachedDatafeed.destroy(),this._externalDatafeed=null,Object.keys(this._pointsetsManagers).forEach((function(e){this._pointsetsManagers[e].destroy()}),this),this._pointsetsManagers={}},k.prototype.purgeCache=function(){this._endOfData={},this._resolveRequests={},this._objectsDataCache={},this._studiesNonSeriesTimes={},this._studiesCache={},this._resolvePromisesBySymbolId.clear(),this._symbolIdToSymbolRequestString.clear(),Object.keys(this._pointsetsManagers).forEach((function(e){this._pointsetsManagers[e].destroy()}),this),this._pointsetsManagers={},Object.keys(this._timeScales).forEach((function(e){this._timeScales[e].destroy()}),this),this._timeScales={},Object.keys(this._symbolExtrapolators).forEach((function(e){this._symbolExtrapolators[e].destroy()}),this),this._symbolExtrapolators={}},k.prototype.purgeDataCache=function(){this._cachedDatafeed.purgeCache()},k.prototype._logMessage=function(e){P.enabled("charting_library_debug_mode")&&console.log(e)},k.prototype.on=function(e,t){return this._callbacks.hasOwnProperty(e)||(this._callbacks[e]=[]),this._callbacks[e].push(t),this},k.prototype._fireEvent=function(e,t,i){if(this._callbacks.hasOwnProperty(e)){for(var s=this._callbacks[e],r=0;r_[a].timeMs;l?_.push({index:g(s,_.length),value:[s/1e3].concat(r),timeMs:s}):(_[a].index=g(s,a),_[a].value=[s/1e3].concat(r),_[a].timeMs=s),p||u.onRealtimeCallback([_[_.length-1]],l,_.length,v,i)}(e,t,i)},nonseriesOut:function(e,t){u.onNonSeriesDataUpdate(t,i)},setNoMoreData:function(){S=!0},recalc:function(e,s){p=!1,_.endOfData=S,_.emptyBarCount=s.emptyBarCount,t.error&&null!==t.error()||(null!==l&&(y._objectsDataCache[l]=_),u.onDataReadyCallback(_,v,i,s))}});if(!y._studiesCache[e]||!y._studiesCache[e][n])throw Error("This should never happen");y._studiesCache[e][n].engine=w}catch(e){if(!e.studyError)throw e;u.onErrorCallback(e.message)}}else u.onErrorCallback("Unsupported resolution. Did you forget to set has_intraday to true?")}(w,C)},k.prototype._createStudy=function(e,t,i,s,r,n,o,a){var l=this;function c(e,t,i){e=A(e),l._timeScales[s].fillIndexesInRows(e),TradingView.ChartapiMessagerInstances[s].onDataUpdate(r,n,e,t),TradingView.ChartapiMessagerInstances[s].onStudyCompleted(r,n)}function h(e){var t={};if(0!==e.size){var i={},n=l._studiesCache[s][r].metainfo;e.forEach((function(e,t){i[n.plots[t].id]=e})),t.data={offsets:i}}return t}a=function(e){if(Array.isArray(e))return e;for(var t=[],i=l._studiesCache[s][r].metainfo.inputs,n=0;n=0},k.prototype.ensureExtendedTo=function(e,t,i){if(!this._studiesCache[t][e])throw Error("This should never happen");var s=this;setTimeout((function(){s._recreateSourcesForDataRange(t,{to:i})}),0)},k.prototype.extendSeriesRange=function(e,t){var i=this._timeScales[e].firstSeriesBarTime();if(null!==i){var s=this._mainSeriesRecord(e);if(d.isDWM(s.resolution)&&null!=s.symbolInfo){var r=h(s.resolution,s.symbolInfo);null!==r&&(i=r.timeToExchangeTradingDay(i))}var n=this._symbolIdToSymbolRequestString.get(L(e,s.symbolId)),o=this._barsCoefficients(n,s.resolution),a=o.barsCoefficient||1;if(!o.barsCoefficient){var l=this._getSeriesData(e,s.guid);null!==l&&(o.expectedBarsCount=l.length+t)}var c=this;setTimeout((function(){c._recreateSourcesForDataRange(e,{to:i,countBack:(t+2)*a})}),0)}else this._logMessage("Nothing to extend - there is no points on time scale")},k.prototype.seriesTurnaround=function(e,t){return this._studiesCache[e]&&this._studiesCache[e][t]&&this._studiesCache[e][t].turnaround},k.prototype._seriesDataRange=function(e,t){var i=this._studiesCache[e][t];return null!==i.firstLoadedTimeMs?{ -to:i.firstLoadedTimeMs,countBack:0}:i.dataRange},k.prototype._applyTimeScaleUpdate=function(e,t){if(null!==t){var i=[];for(var s in this._studiesCache[e]){var r=this._studiesCache[e][s];if(r&&"study"===r.type){var n=this._studiesNonSeriesTimes[e][s];if(n){var o={indexes:this._timeScales[e].convertTimesToIndexes(n),data:{indexes_replace:!0}};i.push({objId:s,turnaround:r.turnaround,data:[],nonSeriesData:o})}}}TradingView.ChartapiMessagerInstances[e].onTimescaleUpdate(t,i),Promise.resolve().then(function(){var t=this._mainSeriesRecord(e);if(null!==t&&null!=t.symbolInfo){var i=this._getSymbolExtrapolator(e,t.symbolInfo,t.resolution);this._pointsetsManagers[e].getUpdatesForSymbol(t.symbolInfo.full_name,t.resolution,i,this._timeScales[e]).forEach((function(t,i){TradingView.ChartapiMessagerInstances[e].onPointsetDataUpdate(i,null,t)}))}}.bind(this))}},k.prototype._updateMainTsBuilder=function(e){var t=this._mainSeriesRecord(e);if(null!==t&&null!=t.symbolInfo){var i=this._getSymbolExtrapolator(e,t.symbolInfo,t.resolution);this._timeScales[e].setMainSymbolExtrapolator(i)}},k.prototype._updateTimeScaleState=function(e){var t=!0,i=!0;for(var s in this._studiesCache[e]){var r=this._studiesCache[e][s];"series"===r.type&&(i=i&&this._isEndOfData(e,s,r.turnaround),t=t&&r.completed)}this._timeScales[e].isCompleted()!==t&&(this._timeScales[e].setCompleted(t),t&&TradingView.ChartapiMessagerInstances[e].onTimescaleCompleted(i))},k.prototype._mainSeriesRecord=function(e){var t=null,i=null;for(var s in this._studiesCache[e]){var r=this._studiesCache[e][s];if("series"===r.type&&(null===t&&(t=r),r.isMain)){i=r;break}}return null===i&&(i=t),null!==i&&(i.isMain=!0),i},k.prototype._seriesCount=function(e){var t=0;for(var i in this._studiesCache[e]){"series"===this._studiesCache[e][i].type&&(t+=1)}return t},k.prototype._prepareSeriesNonSeriesData=function(e,t,i){var s=i.data[i.data.length-1],r=this._getSeriesData(e,t),n=null===r?[]:i.data;return{data:{data:{reversalAmount:i.reversalAmount,boxSize:i.boxSize,price:s?s[4]:i.price,bars:n.map((function(e,t){return{time:t,open:e[1],high:e[2],low:e[3],close:e[4],volume:e[5],factor:e[6],additionalPrice:e[6]}}))}},indexes:this._timeScales[e].convertTimesToIndexes(n.map((function(e){var t=e[0]||0;return t<0?r[r.length+t].timeMs:i.projectionTime+t})))}},k.prototype.createSeries=function(e,t,i,s,n,o,a){this._setEndOfData(e,t,i,!1);var l=new r.OHLCV;this._studiesCache[e]=this._studiesCache[e]||{};var c=this._getSeriesData(e,t),h=this._studiesCache[e][t],u=this._seriesCount(e),p=this._mainSeriesRecord(e);if(!h||d.isEqual(h.resolution,n)&&h.symbolId===s)void 0!==o.countBack&&null!==c&&0!==c.length&&(o.to=c[0].timeMs),h&&null!=h.firstLoadedTimeMs?o.to=void 0!==o.to?Math.min(h.firstLoadedTimeMs,o.to):h.firstLoadedTimeMs:h||0===u||null!==p&&(null!=p.firstLoadedTimeMs?(o.to=p.firstLoadedTimeMs,o.countBack=0):o=Object.assign({},p.dataRange));else if(1===u)o=Object.assign({},h.initialDatarange);else{var _=this._timeScales[e].firstSeriesBarTime();(void 0===o.to||null!==_&&_{"use strict";i.d(t,{SymbolExtrapolator:()=>c});var s=i(50151),r=i(93975),n=i(69228),o=i(87770),a=i(578);function l(e,t){return e.length>t}class c{constructor(e,t,i=2e5){this._firstRealBarTimeMs=null,this._historyBarsCache=[],this._projectionFirstIndex=1/0,this._barsTimes=[],this._minFutureBarsCount=0,this._lastRealBarTimeMs=null,this._futureBarsCache=[],this._symbolInfo=e,this._interval=a.Interval.parse(t),this._extrapolateLimit=i,this._barBuilder=(0,n.newBarBuilder)(t,new n.SessionInfo(e.timezone,e.session,e.session_holidays,e.corrections),null)}destroy(){this.clear()}interval(){return this._interval}barBuilder(){return this._barBuilder}symbolInfo(){return this._symbolInfo}clear(){this._firstRealBarTimeMs=null,this._historyBarsCache=[],this._barsTimes=[],this._lastRealBarTimeMs=null,this._futureBarsCache=[],this._minFutureBarsCount=0,this._projectionFirstIndex=1/0}firstFutureBarIndex(){return this._barsTimes.length}futureBars(){return this._futureBarsCache}replaceBarsTimesTail(e,t=e.length){if(0===e.length)return;if(0===this._barsTimes.length)return void this.setBarsTimes(e,t);const i=e[0],n=this._barsTimes[this._barsTimes.length-1],o=i>n?this._barsTimes.length:(0,r.lowerbound_int)(this._barsTimes,i);0!==o?(this._barsTimes.splice(o,this._barsTimes.length,...e),this._projectionFirstIndex=t===e.length?this._barsTimes.length:this._barsTimes.indexOf(e[t]),(0,s.assert)(-1!==this._projectionFirstIndex,"something went wrong"),n!==e[e.length-1]&&this._setLastRealBarTime(e[e.length-1])):this.setBarsTimes(e,t)}setBarsTimes(e,t=e.length){const i=this._barsTimes;if(this._barsTimes=e.slice(),this._projectionFirstIndex=0===this._barsTimes.length?1/0:t,0===e.length)return this._historyBarsCache=[],this._futureBarsCache=[],this._firstRealBarTimeMs=null,void(this._lastRealBarTimeMs=null);0!==i.length&&i[i.length-1]===e[e.length-1]||this._setLastRealBarTime(e[e.length-1]),0!==i.length&&i[0]===e[0]||(this._historyBarsCache=[],this._firstRealBarTimeMs=e[0])}extrapolateTimeWithOffsetToTime(e,t){if(0===t)return{timeMs:e,exact:!0} -;0===this._barsTimes.length&&(t<0?null===this._firstRealBarTimeMs?this._firstRealBarTimeMs=e:(this._extendHistoryCacheToTimeFromRight(Math.min(e,null!==this._lastRealBarTimeMs?this._lastRealBarTimeMs:1/0)),this._ensureExtrapolatedToHistoryTime(e)):null===this._lastRealBarTimeMs?this._lastRealBarTimeMs=e:(this._extendFutureCacheToTimeFromLeft(Math.max(e,null!==this._firstRealBarTimeMs?this._firstRealBarTimeMs:1/0)),this._ensureExtrapolatedToFutureTime(e)));const i=this.indexOfTime(e);if(null===i)return null;const s=this._timeOfBarIndex(i.index+t);return null===s?null:((i.index<0||this._projectionFirstIndex<=i.index)&&(s.exact=!1),s)}indexOfTime(e){if(null!==this._firstRealBarTimeMs&&ethis._lastRealBarTimeMs){this._ensureExtrapolatedToFutureTime(e);let t=(0,r.lowerbound_int)(this._futureBarsCache,e);if(0!==this._futureBarsCache.length&&t===this._futureBarsCache.length&&e>this._futureBarsCache[this._futureBarsCache.length-1])return null;this._futureBarsCache[t]!==e&&(t-=1);const i=Math.max(1,this._barsTimes.length)+t;return{index:i,timeMs:i===this._barsTimes.length-1?(0,s.ensureNotNull)(this._lastRealBarTimeMs):this._futureBarsCache[t]}}if(0===this._barsTimes.length)return null!==this._firstRealBarTimeMs&&this._firstRealBarTimeMs<=e||null!==this._lastRealBarTimeMs&&e<=this._lastRealBarTimeMs?{index:0,timeMs:(0,s.ensureNotNull)(this._timeOfBarIndex(0)).timeMs}:null;let t=(0,r.lowerbound_int)(this._barsTimes,e);return this._barsTimes[t]!==e&&(t-=1),{index:t,timeMs:this._barsTimes[t]}}setMinFutureBarsCount(e){this._minFutureBarsCount=e,0!==this._barsTimes.length&&this._ensureExtrapolatedToFutureBar(e)}ensureExtrapolatedToFutureTime(e){this._ensureExtrapolatedToFutureTime(e)}_setLastRealBarTime(e){const t=this._futureBarsCache.length,i=(0,r.upperbound_int)(this._futureBarsCache,e);0===i?this._extendFutureCacheToTimeFromLeft(e):(this._lastRealBarTimeMs=e,this._futureBarsCache=this._futureBarsCache.slice(i)),this._ensureExtrapolatedToFutureBar(Math.max(t,this._minFutureBarsCount))}_timeOfBarIndex(e){var t;if(e<0){const t=Math.abs(e);this._ensureExtrapolatedToHistoryBar(t);const i=this._historyBarsCache.length-t;return i<0?null:{timeMs:this._historyBarsCache[i],exact:!1}}if(0===e&&0===this._barsTimes.length)return{timeMs:(0,s.ensureNotNull)(null!==(t=this._firstRealBarTimeMs)&&void 0!==t?t:this._lastRealBarTimeMs),exact:!1};if(e>=this._barsTimes.length){const t=e-Math.max(1,this._barsTimes.length);return this._ensureExtrapolatedToFutureBar(t+1),t>=this._futureBarsCache.length?null:{timeMs:this._futureBarsCache[t],exact:!1}}return{timeMs:this._barsTimes[e],exact:e=e)return;if((0,s.assert)(0===this._barsTimes.length,"bars should be empty"),this._firstRealBarTimeMs=e,0===this._historyBarsCache.length)return;const t=(0,o.extrapolateBarsFrontToTime)(this._barBuilder,this._historyBarsCache[this._historyBarsCache.length-1],e-1,this._extrapolateLimit,!0).times;this._historyBarsCache=this._historyBarsCache.concat(t)}_ensureExtrapolatedToFutureBar(e){return!(this._futureBarsCache.length>=e||l(this._futureBarsCache,this._extrapolateLimit))&&this._extendFutureCacheFromRight(((t,i)=>(0,o.extrapolateBarsFrontByCount)(this._barBuilder,t,e-i,!0).times))}_ensureExtrapolatedToFutureTime(e){null!==this._lastRealBarTimeMs&&this._lastRealBarTimeMs>=e||l(this._futureBarsCache,this._extrapolateLimit)||0!==this._futureBarsCache.length&&this._futureBarsCache[this._futureBarsCache.length-1]>=e||(this._extendFutureCacheFromRight(((t,i)=>(0,o.extrapolateBarsFrontToTime)(this._barBuilder,t,e,this._extrapolateLimit,!0).times)),this._futureBarsCache[this._futureBarsCache.length-1]=e||l(this._historyBarsCache,this._extrapolateLimit)||this._extendHistoryCacheFromLeft(((t,i)=>(0,o.extrapolateBarsFrontByCount)(this._barBuilder,t,-(e-i),!0).times.reverse()))}_ensureExtrapolatedToHistoryTime(e){null!==this._firstRealBarTimeMs&&this._firstRealBarTimeMs<=e||l(this._historyBarsCache,this._extrapolateLimit)||0!==this._historyBarsCache.length&&this._historyBarsCache[0]<=e||(this._extendHistoryCacheFromLeft(((t,i)=>{const s=(0,o.extrapolateBarsFrontToTime)(this._barBuilder,t-1,e-1,this._extrapolateLimit,!0).times;return s[s.length-1]===t?s.slice(0,-1):s})),(0===this._historyBarsCache.length||this._historyBarsCache[0]>e)&&this._ensureExtrapolatedToHistoryBar(this._historyBarsCache.length+1))}}},7276:(e,t,i)=>{"use strict";i.d(t,{backend:()=>s});const s=i(91612)},67049:(e,t,i)=>{"use strict";i.d(t,{defaultWatchlistSymbols:()=>n, -setDefaultWatchlistSymbols:()=>o});var s=i(2484);let r=[];function n(){return s.enabled("uppercase_instrument_names")?r.map((e=>e.toUpperCase())):r}function o(e){r=e}},61536:(e,t,i)=>{"use strict";i.d(t,{HandlerInfo:()=>s});class s{constructor(e,t){this.handler=e,this.customId=t}}},45673:(e,t,i)=>{"use strict";var s,r;function n(e,t){return"period-back"===e.type&&"period-back"===t.type?e.value===t.value:"time-range"===e.type&&"time-range"===t.type&&(e.from===t.from&&e.to===t.to)}i.d(t,{TIMEFRAMETYPE:()=>r,areEqualTimeFrames:()=>n}),function(e){e.extractErrorReason=function(e){return e.params[1]}}(s||(s={})),function(e){e.PeriodBack="period-back",e.TimeRange="time-range"}(r||(r={}))},51368:()=>{"use strict";TradingView.Pro=function(){this.hasPackage=function(){return!1}},window.user={is_pro:!1,settings:{}},TradingView.Pro.prototype.isPaidPro=function(){return!1},TradingView.Pro.prototype.isSupportAvailable=function(){return!1},TradingView.Pro.prototype.getProduct=function(){return{}},TradingView.Pro.prototype.getStudiesOrder=function(){return[]}},58196:(e,t,i)=>{"use strict";i.r(t),i.d(t,{QuoteCache:()=>r,QUOTE_FIELDS:()=>n,QUOTE_FIELDS_CACHE:()=>o});var s=i(50151);class r{constructor(e){this._cache=new Map,this._fields=[...e.fields]}update(e,t,i){const r=(0,s.ensureDefined)(e.symbolname);if(this._cache.has(r)||this._cache.set(r,{symbolname:r,status:e.status,values:{}}),"error"===e.status)return;const n=(0,s.ensureDefined)(this._cache.get(r));n.status=e.status;for(const s of this._fields)t.has(s)&&(i||void 0!==e.values[s])&&(n.values[s]=e.values[s])}get(e){var t;return null!==(t=this._cache.get(e))&&void 0!==t?t:null}fields(){return this._fields}}const n=new Set(["pro_name","base_name","logoid","currency-logoid","base-currency-logoid","short_name","description","exchange","listed_exchange","type","country_code","provider_id","sector","typespecs","industry","currency_id","last_price","fractional","minmov","minmove2","pricescale","change","change_percent","volume","average_volume","market_cap_basic","total_revenue","earnings_per_share_basic_ttm","price_earnings_ttm","beta_1_year","dps_common_stock_prim_issue_fy","dividends_yield","earnings_release_next_date","earnings_per_share_forecast_next_fq","earnings_release_date","earnings_per_share_fq","fundamental_currency_code","symbol-primaryname","currency_code","rates_mc","rates_fy","rates_ttm","value_unit_id","update_mode","language","local_description","short_description","source","source2","format","recommendation_mark","last_report_frequency"]),o=new r({fields:n})},36776:(e,t,i)=>{"use strict";i.d(t,{getQuoteSessionInstance:()=>o,destroyQuoteSessions:()=>a});var s=i(45249),r=i.n(s);const n={};function o(e="full"){return n[e]||function(e="full",t){n[e]=t}(e,new(r())(e)),n[e]}function a(){for(const e in n)if(n.hasOwnProperty(e)){const t=n[e];void 0!==t&&t.destroy(),delete n[e]}}},86856:(e,t,i)=>{"use strict";i.d(t,{QuoteSession:()=>r});var s=i(68671);class r{constructor(e,t=(0,s.randomHash)()){this._sessionstarted=!1,this._globalHandler=null,this._chartApi=e, -this._sessionid="qs_"+t}destroy(){this._sessionstarted&&(this._chartApi.quoteDeleteSession(this._sessionid),this._sessionstarted=!1)}connected(){return this._chartApi.connected()}connect(e){this._globalHandler=e,this._chartApi.createSession(this._sessionid,this),this._chartApi.connect()}disconnect(){this._chartApi.disconnect()}quoteAddSymbols(e){this._chartApi.quoteAddSymbols(this._sessionid,e)}quoteRemoveSymbols(e){this._chartApi.quoteRemoveSymbols(this._sessionid,e)}quoteFastSymbols(e){this._chartApi.quoteFastSymbols(this._sessionid,e)}quoteSetFields(e){this._chartApi.quoteSetFields(this._sessionid,e)}onMessage(e){var t;switch(e.method){case"connected":this._sessionstarted||(this._chartApi.quoteCreateSession(this._sessionid),this._sessionstarted=!0);break;case"disconnected":this._sessionstarted=!1}null===(t=this._globalHandler)||void 0===t||t.call(this,e)}quoteHibernateAll(){this._chartApi.quoteHibernateAll(this._sessionid)}}window.TradingView.QuoteSession=r},45249:(e,t,i)=>{"use strict";e=i.nmd(e);var s=i(26867),r=i(43370).default,n=i(4889).default,o=i(74599).PriceFormatter;const{uniq:a}=i(21095);var l=i(68671);const{normalizeUpdateMode:c}=i(5370);var h=i(933).deepExtend;const{QUOTE_FIELDS_CACHE:d,QUOTE_FIELDS:u}=i(58196);var p;function _(e,t){this.options=Object.assign({throttleTimeout:125},t),this._connected=!1,this._symbol_data={},this._subscriptions={},this.onConnect=new s,this.onDisconnect=new s,this._quoteApi=new p(window.ChartApiInstance),this._type=e||"full",this._delayUpdateFastSymbols=n(this._updateFastSymbols,250),this._throttledSymbolData={},this._formatterValuesCache={},this._waitingForFormatters={},this._snapshotValuesCache={},this._waitingForSnapshot={},this.connect()}p=i(86856).QuoteSession,_.prototype.destroy=function(){this._quoteApi.destroy(),this._quoteApi=null,this._connected=!1,this.onDisconnect.fire()},_.prototype.typeFields={},_.prototype.typeFields.simple=["base-currency-logoid","ch","chp","currency-logoid","currency_code","currency_id","base_currency_id","current_session","description","exchange","format","fractional","is_tradable","language","local_description","listed_exchange","logoid","lp","lp_time","minmov","minmove2","original_name","pricescale","pro_name","short_name","type","typespecs","update_mode","volume","value_unit_id"],_.prototype.typeFields.simpleDetailed=[].concat(_.prototype.typeFields.simple,["ask","bid","fundamentals","high_price","is_tradable","low_price","open_price","prev_close_price","rch","rchp","rtc","rtc_time","status","basic_eps_net_income","beta_1_year","earnings_per_share_basic_ttm","industry","market_cap_basic","price_earnings_ttm","sector","volume","dividends_yield","timezone"]),_.prototype.typeFields.full=[],_.prototype.typeFields.watchlist=[].concat(_.prototype.typeFields.simple,["rchp","rtc","country_code","provider_id"]), -_.prototype.typeFields.portfolio=["pro_name","short_name","exchange","listed_exchange","description","sector","type","typespecs","industry","currency_code","currency_id","ch","chp","logoid","currency-logoid","base-currency-logoid","earnings_per_share_forecast_next_fq","earnings_release_next_date","earnings_release_date","earnings_per_share_fq","lp","fractional","minmov","minmove2","pricescale","volume","average_volume","market_cap_basic","total_revenue","earnings_per_share_basic_ttm","price_earnings_ttm","beta_1_year","dps_common_stock_prim_issue_fy","dividends_yield","fundamental_currency_code","rates_mc","rates_fy","rates_ttm","format"],_.prototype.typeFields.notes=["short_name","pro_name","logoid","currency-logoid","base-currency-logoid","symbol-primaryname","type","typespecs"],_.prototype.connect=function(e){this._quoteApi.connect(this.quoteHandler.bind(this))},_.prototype.quoteHandler=function(e){var t=e.method,i=e.params;switch(t){case"connected":this._connected||(this._connected=!0,this.onConnected());break;case"quote_list_fields":break;case"quote_symbol_data":this._connected&&this.onSymbolData(i[0]);break;case"quote_completed":this._connected&&this.onSymbolData({symbolname:i[0],complete:performance.now(),values:{}});break;case"disconnected":this._connected&&(this._connected=!1,this.onDisconnect.fire())}},_.prototype.onConnected=function(){this.setFields();var e=Object.keys(this._symbol_data);e.length&&(this._quoteApi.quoteAddSymbols(e),this._delayUpdateFastSymbols()),this.onConnect.fire()},_.prototype.setFields=function(){var e=_.prototype.typeFields[this._type];e&&e.length&&this._quoteApi.quoteSetFields(e)},_.prototype.onSymbolData=function(e){try{e.status&&d.update(e,u,!1)}catch(e){}var t=e.symbolname,i=this._throttledSymbolData[t];i||(i=this._throttledSymbolData[t]={fnDispatch:r(this.dipatchSymbolData.bind(this),this.options.throttleTimeout)}),i.cache?h(i.cache,e):i.cache=e,i.fnDispatch(t)},_.prototype._parseUpdateMode=function(e){c(e)},_.prototype.dipatchSymbolData=function(e){var t=this._symbol_data[e],i=this._throttledSymbolData[e].cache;if(delete this._throttledSymbolData[e].cache,this._symbol_data[e])for(var s in h(t,i),t.values&&this._parseUpdateMode(t.values),this._subscriptions){var r=this._subscriptions[s];r.has(e)&&r.get(e).forEach((function(e){e(t,i)}))}},_.prototype.subscribe=function(e,t,i){this._subscriptions[e]=this._subscriptions[e]||new Map;var s=this._subscriptions[e];t=[].concat(t);var r=[];t.forEach((function(e){this._symbol_data[e]?s&&s.has(e)||this._symbol_data[e].subscribers_count++:(this._symbol_data[e]={subscribers_count:1},r.push(e)),s.has(e)||s.set(e,[]),s.get(e).push(i),s.get(e).fast=!0,this._symbol_data[e]&&this._symbol_data[e].values&&i(this._symbol_data[e],this._symbol_data[e])}),this),r.length&&this._connected&&(this._quoteApi.quoteAddSymbols(r),this._delayUpdateFastSymbols())},_.prototype.unsubscribe=function(e,t,i){t=[].concat(t);for(var s=this._subscriptions[e],r=[],n=0;n{"use strict";function s(e,t,i){const s=e.get(t);return void 0!==s?s:(e.set(t,i),i)}function r(e,t,i){const s=e.get(t);if(void 0!==s)return s;const r=i();return e.set(t,r),r}function n(e,t,i,n){return r(s(e,t,new Map),i,n)}function o(e,t,i,r,n){const o=s(e,t,new Map),a=s(o,i,new Map);return s(a,r,n)}i.d(t,{getDefault2Lazy:()=>n,getDefault3:()=>o,AbstractMapContainer:()=>a});class a{constructor(){this._map=new Map,this._size=0}size(){return this._size}clear(){this._map.clear(),this._size=0}}},93975:(e,t,i)=>{"use strict";i.r(t),i.d(t,{lowerboundExt:()=>n,lowerbound:()=>o,lowerbound_int:()=>a,upperbound:()=>l,upperbound_int:()=>c,subtract:()=>h,moveToHead:()=>d,moveAfter:()=>u,moveBefore:()=>p,intersect:()=>_,removeItemFromArray:()=>m});var s=i(50151) -;function r(e,t){return e>1,o=s+r;i(e(o),t)?(s=o+1,n-=r+1):n=r}return s}function o(e,t,i,s=0,r=e.length){return n((t=>e[t]),t,i,s,r)}function a(e,t,i=0,s=e.length){return o(e,t,r,i,s)}function l(e,t,i,s=0,r=e.length){let n=r-s;for(;0>1,o=s+r;i(t,e[o])?n=r:(s=o+1,n-=r+1)}return s}function c(e,t,i=0,s=e.length){return l(e,t,r,i,s)}function h(e,t){return e.filter((e=>!t.includes(e)))}function d(e,t){const i=e.indexOf(t);return i<0?e.slice():[t].concat(e.slice(0,i)).concat(e.slice(i+1))}function u(e,t,i){const s=new Set(t),r=[],n=[],o=[];return e.forEach(((e,t)=>{s.has(e)?n.push(e):(r.push(e),o.push(t))})),i=i{s.has(e)?n.push(e):(r.push(e),o.push(t))})),i=i<=e.length-1?a(o,i):r.length,r.splice(i,0,...n),{newItems:r,movedItemsStartIndex:i}}function _(e,t){const i=new Set;return e.forEach((e=>{t.has(e)&&i.add(e)})),i}function m(e,t){const i=e.indexOf(t);(0,s.assert)(-1!==i,"Item is not found"),e.splice(i,1)}},32769:(e,t,i)=>{"use strict";var s=i(84917),r=i(2542).tzData;let n;function o(e){this._name=e;var t=r[e];if(!t&&n&&(t=n.instance().getTimezoneData(e)),t||(t={time:[],offset:[]},this._invalid=!0),t.time.length!==t.offset.length&&(t={time:[],offset:[]},this._invalid=!0),!t.time_utc){for(var i=t.time,s=t.offset,o=i.length,a=new Array(o),l=0;lt){if((r=n-1)0&&e-t[s-1]<=r)return r;return 0},o.prototype.is_valid=function(){return!this._invalid},o._offset=function(e,t,i){var s=a(e,i);return-1===s?0:t[s]};var l=function(e){return 0|e},c=function(e){return 60*e*1e3},h=function(e,t){return d(e)-d(t)},d=function(e){return e<0?l(e/1e3)-(e%1e3!=0?1:0):l(e/1e3)};function u(e){return e%4==0&&(e%100!=0||e%400==0)}var p={0:0,1:31,2:59,3:90,4:120,5:151,6:181,7:212,8:243,9:273,10:304,11:334},_={...s.WeekDays,...s.Months,YEAR:1,MONTH:2,WEEK_OF_YEAR:3,DAY_OF_MONTH:5,DAY_OF_YEAR:6,DAY_OF_WEEK:7,HOUR_OF_DAY:11,MINUTE:12,SECOND:13,minutesPerDay:1440,millisecondsPerDay:c(1440),get_minutes_from_hhmm:function(e){return-1!==e.indexOf(":")&&(e=e.split(":").join("")),e%100+60*l(e/100)},get_year:function(e){return e.getUTCFullYear()},get_month:function(e){return e.getUTCMonth()},get_hours:function(e){return e.getUTCHours()},get_minutes:function(e){return e.getUTCMinutes()},get_seconds:function(e){return e.getUTCSeconds()}, -get_day_of_month:function(e){return e.getUTCDate()},get_day_of_week:function(e){return e.getUTCDay()+1},get_day_of_year:function(e){var t=e.getUTCMonth(),i=p[t];return t>_.JANUARY+1&&u(e.getUTCFullYear())&&(i+=1),i+e.getUTCDate()},get_week_of_year:function(e){var t=new Date(Date.UTC(e.getUTCFullYear(),0,1)).getUTCDay(),i=0===t?1:8-t,s=_.get_day_of_year(e)-i;return Math.ceil(s/7)+1},get_minutes_from_midnight:function(e){return 60*_.get_hours(e)+_.get_minutes(e)},set_hms:function(e,t,i,s,r,n){e.setUTCHours(t),e.setUTCMinutes(i),e.setUTCSeconds(s),e.setUTCMilliseconds(r),void 0!==n&&_.correct_time(e,n)},correct_time:function(e,t){var i=e.getTime(),s=t.correction_loc(i);e.setTime(i+s)},add_days_considering_dst:function(e,t,i){var s=e.offset_utc(t),r=this.clone(t);this.add_date(r,i);var n=e.offset_utc(r);return r.setTime(r.getTime()+s-n),r},add_date:function(e,t){e.setTime(e.getTime()+t*_.millisecondsPerDay)},add_minutes:function(e,t){e.setTime(e.getTime()+c(t))},clone:function(e){return new Date(e.getTime())},get_days_per_year:function(e){var t=e.getUTCFullYear();return this.days_per_year(t)},days_per_year:function(e){return u(e)?366:365},get_days_in_month:function(e,t){let i;switch(e){case 0:case 2:case 4:case 6:case 7:case 9:case 11:i=31;break;case 1:i=28,u(t)&&i++;break;default:i=30}return i},get_part:function(e,t){switch(t){case _.YEAR:return _.get_year(e);case _.MONTH:return _.get_month(e);case _.DAY_OF_MONTH:return _.get_day_of_month(e);case _.WEEK_OF_YEAR:return _.get_week_of_year(e);case _.DAY_OF_WEEK:return _.get_day_of_week(e);case _.HOUR_OF_DAY:return _.get_hours(e);case _.MINUTE:return _.get_minutes(e);case _.DAY_OF_YEAR:return _.get_day_of_year(e);case _.SECOND:return _.get_seconds(e);default:return e.getTime()}},time_minutes:c,time_seconds:function(e){return 1e3*e},time_minutes_diff:function(e,t){return l(h(e,t)/60)},time_seconds_diff:h,utc_to_cal:function(e,t){return new Date(_.utc_to_cal_ts(e,t))},utc_to_cal_ts:function(e,t){return t+e.offset_utc(t)},get_cal:function(e,t,i,s,r,n,o){var a=new Date(Date.UTC(t,i,s,r||0,n||0,o||0)),l=e.offset_utc(+a);return new Date(a.valueOf()-l)},get_cal_from_unix_timestamp_ms:function(e,t){return new Date(t+e.offset_utc(t))},get_cal_utc:function(e,t,i){return new Date(Date.UTC(e,t,i))},cal_to_utc:function(e,t){var i=t.getTime();return i-e.offset_loc(i)},get_timezone:function(e){return new o(e)},shift_day:function(e,t){var i=e-1;return(i+=t)>6?i%=7:i<0&&(i=(7+i%7)%7),i+1},setCustomTimezones:function(e){n=e}};e.exports=_},53479:(e,t,i)=>{"use strict";i.r(t),i.d(t,{LINESTYLE_SOLID:()=>s,LINESTYLE_DOTTED:()=>r,LINESTYLE_DASHED:()=>n,LINESTYLE_LARGE_DASHED:()=>o,LINESTYLE_SPARSE_DOTTED:()=>a,LINESTYLE_SMALL_DASHED:()=>l});const s=0,r=1,n=2,o=3,a=4,l=5},7019:(e,t,i)=>{"use strict";i.d(t,{combineWithFilteredUpdate:()=>o,combine:()=>a});var s=i(40549),r=i.n(s);function n(e,t,...i){const s=(...t)=>e(...t.map((e=>e.value()))),n=new(r())(s(...i)),o=()=>{t(...i.map((e=>e.value())))&&n.setValue(s(...i))},a=i.map((e=>e.spawn()));for(const e of a)e.subscribe(o) -;return n.readonly().spawn((()=>a.forEach((e=>e.destroy()))))}function o(e,t,...i){return n(e,t,...i)}function a(e,...t){return n(e,(()=>!0),...t)}},20364:(e,t,i)=>{"use strict";i.r(t),i.d(t,{availableTimezones:()=>l,updateAvailableTimezones:()=>d,timezoneIsAvailable:()=>u,timezoneIsSupported:()=>p,timezoneTitle:()=>_});var s=i(44352),r=i(43925);const n=[{id:"Etc/UTC",title:s.t(null,void 0,i(50406))},{id:"exchange",title:s.t(null,void 0,i(77295))}],o=[{id:"Africa/Cairo",title:s.t(null,void 0,i(94099)),offset:0},{id:"Africa/Johannesburg",title:s.t(null,void 0,i(87469)),offset:0},{id:"Africa/Lagos",title:s.t(null,void 0,i(89155)),offset:0},{id:"Africa/Nairobi",title:s.t(null,void 0,i(79023)),offset:0},{id:"Africa/Tunis",title:s.t(null,void 0,i(93855)),offset:0},{id:"America/Argentina/Buenos_Aires",title:s.t(null,void 0,i(82446)),offset:0},{id:"America/Bogota",title:s.t(null,void 0,i(54173)),offset:0},{id:"America/Caracas",title:s.t(null,void 0,i(46837)),offset:0},{id:"America/Chicago",title:s.t(null,void 0,i(28244)),offset:0},{id:"America/El_Salvador",title:s.t(null,void 0,i(68553)),offset:0},{id:"America/Juneau",title:s.t(null,void 0,i(36253)),offset:0},{id:"America/Lima",title:s.t(null,void 0,i(25846)),offset:0},{id:"America/Los_Angeles",title:s.t(null,void 0,i(87604)),offset:0},{id:"America/Mexico_City",title:s.t(null,void 0,i(85095)),offset:0},{id:"America/New_York",title:s.t(null,void 0,i(91203)),offset:0},{id:"America/Phoenix",title:s.t(null,void 0,i(19093)),offset:0},{id:"America/Santiago",title:s.t(null,void 0,i(65412)),offset:0},{id:"America/Sao_Paulo",title:s.t(null,void 0,i(13538)),offset:0},{id:"America/Toronto",title:s.t(null,void 0,i(83836)),offset:0},{id:"America/Vancouver",title:s.t(null,void 0,i(15771)),offset:0},{id:"US/Mountain",title:s.t(null,void 0,i(57701)),offset:0},{id:"Asia/Almaty",title:s.t(null,void 0,i(14452)),offset:0},{id:"Asia/Ashkhabad",title:s.t(null,void 0,i(59340)),offset:0},{id:"Asia/Bahrain",title:s.t(null,void 0,i(53260)),offset:0},{id:"Asia/Bangkok",title:s.t(null,void 0,i(32376)),offset:0},{id:"Asia/Chongqing",title:s.t(null,void 0,i(49648)),offset:0},{id:"Asia/Colombo",title:s.t(null,void 0,i(15168)),offset:0},{id:"Asia/Dubai",title:s.t(null,void 0,i(22429)),offset:0},{id:"Asia/Ho_Chi_Minh",title:s.t(null,void 0,i(87338)),offset:0},{id:"Asia/Hong_Kong",title:s.t(null,void 0,i(32918)),offset:0},{id:"Asia/Jakarta",title:s.t(null,void 0,i(52707)),offset:0},{id:"Asia/Jerusalem",title:s.t(null,void 0,i(42890)),offset:0},{id:"Asia/Karachi",title:s.t(null,void 0,i(2693)),offset:0},{id:"Asia/Kathmandu",title:s.t(null,void 0,i(3155)),offset:0},{id:"Asia/Kolkata",title:s.t(null,void 0,i(16245)),offset:0},{id:"Asia/Kuwait",title:s.t(null,void 0,i(72374)),offset:0},{id:"Asia/Manila",title:s.t(null,void 0,i(90271)),offset:0},{id:"Asia/Muscat",title:s.t(null,void 0,i(42769)),offset:0},{id:"Asia/Nicosia",title:s.t(null,void 0,i(33566)),offset:0},{id:"Asia/Qatar",title:s.t(null,void 0,i(19056)),offset:0},{id:"Asia/Riyadh",title:s.t(null,void 0,i(52588)),offset:0},{id:"Asia/Seoul", -title:s.t(null,void 0,i(5961)),offset:0},{id:"Asia/Shanghai",title:s.t(null,void 0,i(69240)),offset:0},{id:"Asia/Singapore",title:s.t(null,void 0,i(56683)),offset:0},{id:"Asia/Taipei",title:s.t(null,void 0,i(38788)),offset:0},{id:"Asia/Tehran",title:s.t(null,void 0,i(16267)),offset:0},{id:"Asia/Tokyo",title:s.t(null,void 0,i(94284)),offset:0},{id:"Asia/Yangon",title:s.t(null,void 0,i(69293)),offset:0},{id:"Atlantic/Reykjavik",title:s.t(null,void 0,i(26833)),offset:0},{id:"Australia/Adelaide",title:s.t(null,void 0,i(17365)),offset:0},{id:"Australia/Brisbane",title:s.t(null,void 0,i(11741)),offset:0},{id:"Australia/Perth",title:s.t(null,void 0,i(35590)),offset:0},{id:"Australia/Sydney",title:s.t(null,void 0,i(11020)),offset:0},{id:"Europe/Amsterdam",title:s.t(null,void 0,i(88010)),offset:0},{id:"Europe/Athens",title:s.t(null,void 0,i(21983)),offset:0},{id:"Europe/Belgrade",title:s.t(null,void 0,i(54861)),offset:0},{id:"Europe/Berlin",title:s.t(null,void 0,i(26825)),offset:0},{id:"Europe/Bratislava",title:s.t(null,void 0,i(5262)),offset:0},{id:"Europe/Brussels",title:s.t(null,void 0,i(90204)),offset:0},{id:"Europe/Bucharest",title:s.t(null,void 0,i(37728)),offset:0},{id:"Europe/Budapest",title:s.t(null,void 0,i(87143)),offset:0},{id:"Europe/Copenhagen",title:s.t(null,void 0,i(43432)),offset:0},{id:"Europe/Dublin",title:s.t(null,void 0,i(9497)),offset:0},{id:"Europe/Helsinki",title:s.t(null,void 0,i(99820)),offset:0},{id:"Europe/Istanbul",title:s.t(null,void 0,i(37885)),offset:0},{id:"Europe/Lisbon",title:s.t(null,void 0,i(50091)),offset:0},{id:"Europe/London",title:s.t(null,void 0,i(50286)),offset:0},{id:"Europe/Luxembourg",title:s.t(null,void 0,i(64352)),offset:0},{id:"Europe/Madrid",title:s.t(null,void 0,i(58038)),offset:0},{id:"Europe/Malta",title:s.t(null,void 0,i(34190)),offset:0},{id:"Europe/Moscow",title:s.t(null,void 0,i(18665)),offset:0},{id:"Europe/Oslo",title:s.t(null,void 0,i(82906)),offset:0},{id:"Europe/Paris",title:s.t(null,void 0,i(95995)),offset:0},{id:"Europe/Riga",title:s.t(null,void 0,i(5871)),offset:0},{id:"Europe/Rome",title:s.t(null,void 0,i(74214)),offset:0},{id:"Europe/Stockholm",title:s.t(null,void 0,i(48767)),offset:0},{id:"Europe/Tallinn",title:s.t(null,void 0,i(39108)),offset:0},{id:"Europe/Vilnius",title:s.t(null,void 0,i(75354)),offset:0},{id:"Europe/Warsaw",title:s.t(null,void 0,i(48474)),offset:0},{id:"Europe/Zurich",title:s.t(null,void 0,i(84301)),offset:0},{id:"Pacific/Auckland",title:s.t(null,void 0,i(24143)),offset:0},{id:"Pacific/Chatham",title:s.t(null,void 0,i(59884)),offset:0},{id:"Pacific/Fakaofo",title:s.t(null,void 0,i(20466)),offset:0},{id:"Pacific/Honolulu",title:s.t(null,void 0,i(61351)),offset:0},{id:"Pacific/Norfolk",title:s.t(null,void 0,i(99203)),offset:0}];function a(e,t,i){const s=function(e){return e.map((({id:e,title:t})=>{const{string:i,offset:s}=(0,r.parseTzOffset)(e);return{id:e,offset:s,title:`(${i}) ${t}`}}))}(e),n=i.filter((({alias:e})=>Boolean(e))).map((({title:e,alias:t,id:i})=>{const{string:s,offset:n}=(0,r.parseTzOffset)(t);return{id:i,offset:n, -title:`(${s}) ${e}`,alias:t}})),o=function(e){return e.sort(((e,t)=>{const i=e.offset-t.offset;return 0!==i?i:e.title.localeCompare(t.title)}))}(s.concat(n));return t.concat(o)}const l=a(o,n,[]),c=new Map;l.forEach((e=>{c.set(e.id,!0)}));const h=new Map;n.concat(o).forEach((e=>{h.set(e.id,!0)}));const d=e=>{l.splice(0,l.length,...a(o,n,e)),l.forEach((e=>{c.set(e.id,!0)}))};function u(e){return c.has(e)}function p(e){return h.get(e)||!1}function _(e){for(const{id:t,title:i}of o)if(t===e){return`${i} (${(0,r.parseTzOffset)(e).string})`}return e}},26867:(e,t,i)=>{"use strict";e=i.nmd(e);const s=i(98351).getLogger("Common.Delegate");function r(){this._listeners=[]}function n(e){return!e.singleshot}r.prototype.subscribe=function(e,t,i){const s={object:e,member:t,singleshot:!!i,skip:!1};this._listeners.push(s)},r.prototype.unsubscribe=function(e,t){for(let i=0;i=0;--t){const i=this._listeners[t];i.object===e&&(i.skip=!0,this._listeners.splice(t,1))}},r.prototype.destroy=function(){delete this._listeners},r.prototype.fire=function(){const e=this._listeners;this._listeners=this._listeners.filter(n);const t=e.length;for(let i=0;i{"use strict";i.d(t,{getImage:()=>n});const s=new Map;function r(e){e.crossOrigin="anonymous"}function n(e,t,i=r){let n=s.get(e);return void 0===n&&(n=new Promise(((e,s)=>{const r=new Image;r.onload=()=>{e(r),r.onload=null,r.onerror=null},r.onerror=()=>{s(),r.onload=null,r.onerror=null},i(r),r.src=t})),s.set(e,n)),n}},91031:(e,t,i)=>{"use strict";function s(e,t){return e<=t}function r(e,t){return e>=t}function n(e,t,i){return Math.min(Math.max(e,t),i)}function o(e){return e<0?-1:e>0?1:0}function a(e){if(e<0)return!1;if(e>1e18)return!0;for(let t=e;t>1;t/=10)if(t%10!=0)return!1;return!0}function l(e,t,i){return t-e<=i}function c(e,t,i){return Math.abs(e-t)t?1:0}function u(e,t=d){if(e.length<1)throw Error("array is empty");let i=e[0];for(let s=0;s0&&(i=e[s]);return i}function _(e){const t=Math.ceil(e);return t%2!=0?t-1:t}function m(e){return e>0?Math.floor(e):Math.ceil(e)}i.r(t),i.d(t,{lessThan:()=>s,greaterThan:()=>r,clamp:()=>n,sign:()=>o,isBaseDecimal:()=>a,greaterOrEqual:()=>l,equal:()=>c,log10:()=>h,defComparator:()=>d,min:()=>u,max:()=>p,ceiledEven:()=>_,toInt:()=>m})},43925:(e,t,i)=>{"use strict";i.d(t,{parseTzOffset:()=>r});var s=i(32769);function r(e,t=Date.now()){const i=(0,s.get_timezone)(e).offset_utc(t);let r="";const n=i/1e3/60/60 -;n%1&&(r=":"+Math.round(Math.abs(n%1*60)).toString().padStart(2,"0"));let o="";return o=n>0?"+"+(n-n%1)+r:0===n?"":String(n-n%1+r),{offset:i,string:"UTC"+o}}},83232:(e,t,i)=>{"use strict";var s=i(2484),r=[{d:"E-Mini S&P 500",t:"ES"},{d:"E-Mini Nasdaq 100",t:"NQ"},{d:"Gold",t:"GC"},{d:"Silver",t:"SI"},{d:"Crude Oil WTI",t:"CL"},{d:"Natural Gas",t:"NG"},{d:"Australian Dollar",t:"6A"},{d:"Australian Dollar (Floor)",t:"AD"},{d:"Euro FX",t:"6E"},{d:"Euro FX (Floor)",t:"EC"},{d:"Corn",t:"ZC"},{d:"Corn (Floor)",t:"C"},{d:"Eurodollar",t:"GE"},{d:"Eurodollar (Floor)",t:"ED"}],n=function(){var e=[{pattern:"(",ctor:o},{pattern:")",ctor:a},{pattern:"+",ctor:c},{pattern:"-",ctor:h},{pattern:"*",ctor:d},{pattern:"/",ctor:u},{pattern:"^",ctor:p},{pattern:/\d+(?:\.\d*|(?![a-zA-Z0-9_!:.&]))|\.\d+/,ctor:f},{pattern:/\./,ctor:y},{pattern:s.enabled("charting_library_base")?/[a-zA-Z0-9_\u0370-\u1FFF_\u2E80-\uFFFF^][a-zA-Z0-9_\u0020\u0370-\u1FFF_\u2E80-\uFFFF_!:.&]*|'.+?'/:/[a-zA-Z0-9_\u0370-\u1FFF_\u2E80-\uFFFF][a-zA-Z0-9_\u0020\u0370-\u1FFF_\u2E80-\uFFFF_!|:.&]*|'.+?'/,ctor:g},{pattern:/'[^']*/,ctor:S},{pattern:/[\0-\x20\s]+/,ctor:n}];function t(e,t){var i=function(){};return i.prototype=t.prototype,e.prototype=new i,e}function i(){}function n(e){this.value=e}function o(){}function a(){}function l(){}function c(){}function h(){}function d(){}function u(){}function p(){}i.prototype.toString=function(){return this.value},t(n,i),t(o,i),o.prototype.value="(",t(a,i),a.prototype.value=")",t(l,i),t(c,l),c.prototype.value="+",c.prototype.precedence=0,c.prototype.commutative=!0,t(h,l),h.prototype.value="-",h.prototype.precedence=0,h.prototype.commutative=!1,t(d,l),d.prototype.value="*",d.prototype.precedence=1,d.prototype.commutative=!0,t(u,l),u.prototype.value="/",u.prototype.precedence=1,u.prototype.commutative=!1,t(p,l),p.prototype.value="^",p.prototype.precedence=2,p.prototype.commutative=!1;var _=/^'?(?:([A-Z0-9_]+):)?(.*?)'?$/i,m=/[+\-/*]/;function g(e){this.value=e}function f(e){this.value=e}function v(e){this.value=e}function S(){g.apply(this,arguments)}function y(){f.apply(this,arguments)}t(g,i),g.prototype.toString=function(){if(this.hasOwnProperty("_ticker")){var e=m.test(this._ticker)?"'":"";return e+(this._exchange?this._exchange+":":"")+this._ticker+e}return this.value},g.prototype.parse=function(){var e=_.exec(this.value);e[1]&&(this._exchange=e[1]),this._ticker=e[2]},g.prototype.parseAsFutures=function(){this.hasOwnProperty("_ticker")||this.parse();for(var e=function(e){return r.some((function(t){return t.t===e}))},t=2;t>=1;--t){var i=this._ticker.slice(0,t);if(e(i)){this._root=i,this._contract=this._ticker.slice(t);break}}},g.prototype.exchange=function(e){if(this.hasOwnProperty("_ticker")||this.parse(),!(arguments.length>0))return this._exchange;null==e?delete this._exchange:this._exchange=e+""},g.prototype.ticker=function(e){if(this.hasOwnProperty("_ticker")||this.parse(),!(arguments.length>0))return this._ticker;null==e?delete this._ticker:this._ticker=e+"",delete this._root,delete this._contract}, -g.prototype.root=function(e){if(this.hasOwnProperty("_root")||this.parseAsFutures(),!(arguments.length>0))return this._root;null==e?delete this._root:(this._root=e+"",this._root&&(this._ticker=this._root+(this._contract||"")))},g.prototype.contract=function(e){if(this.hasOwnProperty("_contract")||this.parseAsFutures(),!(arguments.length>0))return this._root;null==e?delete this._contract:(this._contract=e+"",this._root&&(this._ticker=this._root+this._contract))},t(f,i),f.prototype.toString=function(){return this.hasOwnProperty("_normalizedValue")?this._normalizedValue:this.value},f.prototype.parse=function(){this._normalizedValue=this.value.replace(/^0+|\.0*$/g,"").replace(/(\.\d*?)0+$/,"$1").replace(/^(\.|$)/,"0$1")},v.prototype.toString=function(){return this.value},t(S,g),S.prototype.isIncomplete=!0,S.prototype.incompleteSuggest=function(){if("'"!==this.value)return String("'")},t(y,f),y.prototype.isIncomplete=!0;var b=new RegExp(e.map((function(e){return"("+("string"==typeof e.pattern?e.pattern.replace(/[\^$()[\]{}*+?|\\]/g,"\\$&"):e.pattern.source)+")"})).concat(".").join("|"),"g");function w(t,i){var s,r=[];e:for(;s=b.exec(t);){for(var o=e.length;o--;)if(s[o+1]){if(e[o].ctor){var a=new e[o].ctor(s[o+1]);a._offset=s.index,r.push(a)}continue e}var l=new v(s[0]);l._offset=s.index,r.push(l)}if(i&&i.recover){var c;for(o=r.length;o--;){var h=r[o];if(h instanceof f||h instanceof g){if(void 0!==c){var d=new g(""),u=r.splice(o,c-o+1,d);d.value=u.map((function(e){return e.value})).join("")}c=o}else h instanceof n||(c=void 0)}}return r}function P(e){for(var t=[],i=0;in.precedence&&(s[s.length-1].minPrecedence=n.precedence);else if(n instanceof o)s.push(t={minPrecedence:1/0,openBraceIndex:r});else if(n instanceof a){var c=e[(t=s.pop()).openBraceIndex-1],h=e[r+1];h instanceof l&&!(h.precedence<=t.minPrecedence)||!(!(c instanceof l)||c.precedencet.minPrecedence&&(s[s.length-1].minPrecedence=t.minPrecedence))}}for(r=i.length;r--;)e.splice(i[r],1);return e}function T(e){if("string"!=typeof e)throw new TypeError("expression must be a string");return(e=w(e)).filter((function(e){return e instanceof g})).map((function(e){return e.exchange()})).filter((function(e){return e}))}function x(e){return 1!==(e=T(e)).length?null:e[0]}function I(e,t){return(e=T(e)).some((function(e){return t.includes((e||"").toUpperCase())}))}function M(e){return e.join("")}return{tokenize:w,validate:function(e){if(s.enabled("charting_library_base"))return{currentState:"var"};for(var t="init",i="var",r=t,c={warnings:[],errors:[],isEmpty:!0},h=[],d=0;d{"use strict";i.d(t,{TranslatedString:()=>s});class s{constructor(e,t){this._originalText=e,this._translatedText=t}originalText(){return this._originalText}translatedText(){return this._translatedText}format(e){const t={},i={};for(const r of Object.keys(e)){const n=e[r];n instanceof s?(t[r]=n.originalText(), -i[r]=n.translatedText()):(t[r]=n.toString(),i[r]=n.toString())}const r=this._originalText.format(t),n=this._translatedText.format(i);return new s(r,n)}}},2542:e=>{e.exports.tzData={"America/New_York":{time:[-2717668562,-1633298400,-1615154400,-1601848800,-1583704800,-1570399200,-1551650400,-1536530400,-1523224800,-1504476e3,-1491775200,-1473026400,-1459720800,-1441576800,-1428271200,-1410127200,-1396821600,-1378677600,-1365372e3,-1347228e3,-1333922400,-1315173600,-1301868e3,-1283724e3,-1270418400,-1252274400,-1238968800,-1220824800,-1207519200,-1189375200,-1176069600,-1157320800,-114462e4,-1125871200,-1112565600,-1094421600,-1081116e3,-1062972e3,-1049666400,-1031522400,-1018216800,-1000072800,-986767200,-968018400,-955317600,-936568800,-923263200,-905119200,-891813600,-880236e3,-76941e4,-765410400,-747266400,-733960800,-715816800,-702511200,-684367200,-671061600,-652917600,-639612e3,-620863200,-608162400,-589413600,-576108e3,-557964e3,-544658400,-526514400,-513208800,-495064800,-481759200,-463615200,-447285600,-431560800,-415836e3,-400111200,-384386400,-368661600,-352936800,-337212e3,-321487200,-305762400,-289432800,-273708e3,-257983200,-242258400,-226533600,-210808800,-195084e3,-179359200,-163634400,-147909600,-13158e4,-11646e4,-100130400,-84405600,-68680800,-52956e3,-37231200,-21506400,-5781600,9943200,25668e3,41392800,57722400,73447200,89172e3,104896800,120621600,126669600,152071200,162352800,183520800,199245600,215575200,230695200,247024800,262749600,278474400,294199200,309924e3,325648800,341373600,357098400,372823200,388548e3,404877600,419997600,436327200,452052e3,467776800,483501600,499226400,514951200,530676e3,544586400,562125600,576036e3,59418e4,607485600,625629600,638935200,657079200,670989600,688528800,702439200,719978400,733888800,752032800,765338400,783482400,796788e3,814932e3,828842400,846381600,860292e3,877831200,891741600,909280800,923191200,941335200,954640800,972784800,986090400,1004234400,1018144800,1035684e3,1049594400,1067133600,1081044e3,1099188e3,1112493600,1130637600,1143943200,1162087200,1173578400,1194141600,1205028e3,1225591200,1236477600,1257040800,1268532e3,1289095200,1299981600,1320544800,1331431200,1351994400,1362880800,1383444e3,1394330400,1414893600,142578e4,1446343200,1457834400,1478397600,1489284e3,1509847200,1520733600,1541296800,1552183200,1572746400,1583632800,1604196e3,1615687200,1636250400,1647136800,16677e5,1678586400,1699149600,1710036e3,1730599200,1741485600,1762048800,1772935200,1793498400,1804989600,1825552800,1836439200,1857002400,1867888800,1888452e3,1899338400,1919901600,1930788e3], +isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:c}},inputs:{}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Balance of Power",shortDescription:"Balance of Power",is_price_study:!1,inputs:[],id:"Balance of Power@tv-basicstudies-1",scriptIdPart:"",name:"Balance of Power",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t,i,s){return(e-t)/(i-s)},this.main=function(e,t){return this._context=e,this._input=t,[this.f_0(r.Std.close(this._context),r.Std.open(this._context),r.Std.high(this._context),r.Std.low(this._context))]}}},{name:"Bollinger Bands",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_2:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},filledAreasStyle:{fill_0:{color:"#2196F3",transparency:95,visible:!0}},inputs:{in_0:20,in_1:2}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Median",histogramBase:0,joinPoints:!1},plot_1:{title:"Upper",histogramBase:0,joinPoints:!1},plot_2:{title:"Lower",histogramBase:0,joinPoints:!1}},description:"Bollinger Bands",shortDescription:"BB",is_price_study:!0,filledAreas:[{id:"fill_0",objAId:"plot_1",objBId:"plot_2",type:"plot_plot",title:"Plots Background"}],inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:1e4},{id:"in_1",name:"mult",defval:2,type:"float",min:.001,max:50}],id:"Bollinger Bands@tv-basicstudies-1",scriptIdPart:"",name:"Bollinger Bands",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return e*t},this.f_1=function(e,t){return e+t},this.f_2=function(e,t){return e-t},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._context.new_var(i),a=r.Std.sma(o,s,this._context),l=this._context.new_var(i),c=r.Std.stdev(l,s,this._context),h=this.f_0(n,c);return[a,this.f_1(a,h),this.f_2(a,h)]}}},{name:"Bollinger Bands %B",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:d}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:1},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],filledAreasStyle:{fill_0:{color:"#26A69A",transparency:90,visible:!0}},inputs:{in_0:20,in_1:2}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,zorder:1}},description:"Bollinger Bands %B",shortDescription:"BB %B",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit",zorder:-1.1},{id:"hline_1",name:"LowerLimit",zorder:-1.11}],filledAreas:[{ +id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background",zorder:-2}],inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:1e4},{id:"in_1",name:"mult",defval:2,type:"float",min:.001,max:50}],id:"Bollinger Bands %B@tv-basicstudies-1",scriptIdPart:"",name:"Bollinger Bands %B",format:{precision:2,type:"price"},usePlotsZOrder:!0},constructor:function(){this.f_0=function(e,t){return e*t},this.f_1=function(e,t){return e+t},this.f_2=function(e,t){return e-t},this.f_3=function(e,t,i){return(e-t)/(i-t)},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._context.new_var(i),a=r.Std.sma(o,s,this._context),l=this._context.new_var(i),c=r.Std.stdev(l,s,this._context),h=this.f_0(n,c),d=this.f_1(a,h),u=this.f_2(a,h);return[this.f_3(i,u,d)]}}},{name:"Bollinger Bands Width",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"}},inputs:{in_0:20,in_1:2}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Bollinger Bands Width",shortDescription:"BBW",is_price_study:!1,inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:1e4},{id:"in_1",name:"mult",defval:2,type:"float",min:.001,max:50}],id:"Bollinger Bands Width@tv-basicstudies-1",scriptIdPart:"",name:"Bollinger Bands Width",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t){return e*t},this.f_1=function(e,t){return e+t},this.f_2=function(e,t){return e-t},this.f_3=function(e,t,i){return(e-t)/i},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._context.new_var(i),a=r.Std.sma(o,s,this._context),l=this._context.new_var(i),c=r.Std.stdev(l,s,this._context),h=this.f_0(n,c),d=this.f_1(a,h),u=this.f_2(a,h);return[this.f_3(d,u,a)]}}},{name:"Chaikin Money Flow",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#43A047"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:20}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,zorder:1}},description:"Chaikin Money Flow",shortDescription:"CMF",is_price_study:!1,bands:[{id:"hline_0",name:"Zero",zorder:-1}],inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:2e3}],id:"Chaikin Money Flow@tv-basicstudies-1",scriptIdPart:"",name:"Chaikin Money Flow",format:{precision:2,type:"price"},usePlotsZOrder:!0},constructor:function(){this.f_0=function(e,t,i,s){return r.Std.or(r.Std.and(r.Std.eq(e,t),r.Std.eq(e,i)),r.Std.eq(t,i))?0:(2*e-i-t)/(t-i)*s},this.f_1=function(e,t){return e/t},this.main=function(e,t){this._context=e,this._input=t +;var i=this._input(0),s=this.f_0(r.Std.close(this._context),r.Std.high(this._context),r.Std.low(this._context),r.Std.volume(this._context)),n=this._context.new_var(s),o=r.Std.sum(n,i,this._context),a=r.Std.volume(this._context),l=this._context.new_var(a),c=r.Std.sum(l,i,this._context);return[this.f_1(o,c)]}}},{name:"Chaikin Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#EC407A"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:3,in_1:10}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,zorder:1}},description:"Chaikin Oscillator",shortDescription:"Chaikin Osc",is_price_study:!1,bands:[{id:"hline_0",name:"Zero",zorder:-1}],inputs:[{id:"in_0",name:"short",defval:3,type:"integer",min:1,max:2e3},{id:"in_1",name:"long",defval:10,type:"integer",min:1,max:2e3}],id:"Chaikin Oscillator@tv-basicstudies-1",scriptIdPart:"",name:"Chaikin Oscillator",format:{type:"volume"},usePlotsZOrder:!0},constructor:function(){this.f_0=function(e,t){return e-t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=r.Std.accdist(this._context),o=this._context.new_var(n),a=r.Std.ema(o,i,this._context),l=this._context.new_var(n),c=r.Std.ema(l,s,this._context);return[this.f_0(a,c)]}}},{name:"Chaikin Volatility",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!1,id:"Chaikin Volatility@tv-basicstudies-1",scriptIdPart:"",name:"Chaikin Volatility",description:"Chaikin Volatility",shortDescription:"Chaikin Volatility",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#AB47BC"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{periods:10,rocLookback:10}},styles:{plot_0:{title:"Plot",zorder:1}},bands:[{id:"hline_0",name:"Zero",zorder:-1}],inputs:[{id:"periods",type:"integer",name:"Periods"},{id:"rocLookback",type:"integer",name:"Rate of Change Lookback"}],format:{type:"volume"},usePlotsZOrder:!0},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.period=this._input(0),this.rocLookback=this._input(1)},this.main=function(e,t){this._context=e,this._input=t,this._context.setMinimumAdditionalDepth(this.period+this.rocLookback);var i=this._context.new_var(r.Std.high(this._context)-r.Std.low(this._context)),s=this._context.new_var(r.Std.ema(i,this.period,this._context));return[r.Std.roc(s,this.rocLookback)]}}},{name:"Chande Kroll Stop",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"}},inputs:{in_0:10,in_1:1,in_2:9}},plots:[{id:"plot_0",type:"line"},{ +id:"plot_1",type:"line"}],styles:{plot_0:{title:"Long",histogramBase:0,joinPoints:!1},plot_1:{title:"Short",histogramBase:0,joinPoints:!1}},description:"Chande Kroll Stop",shortDescription:"Chande Kroll Stop",is_price_study:!0,inputs:[{id:"in_0",name:"p",defval:10,type:"integer",min:1,max:4999},{id:"in_1",name:"x",defval:1,type:"integer",min:1,max:1e12},{id:"in_2",name:"q",defval:9,type:"integer",min:1,max:1e12}],id:"Chande Kroll Stop@tv-basicstudies-1",scriptIdPart:"",name:"Chande Kroll Stop",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t,i){return e-t*i},this.f_1=function(e,t,i){return e+t*i},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2),o=r.Std.high(this._context),a=this._context.new_var(o),l=r.Std.highest(a,i,this._context),c=r.Std.atr(i,this._context),h=this.f_0(l,s,c),d=this._context.new_var(o),u=r.Std.lowest(d,i,this._context),p=this.f_1(u,s,c),_=this._context.new_var(h),m=r.Std.highest(_,n,this._context),g=this._context.new_var(p);return[r.Std.lowest(g,n,this._context),m]}}},{name:"Chande Momentum Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:9}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Chande Momentum Oscillator",shortDescription:"ChandeMO",is_price_study:!1,inputs:[{id:"in_0",name:"length",defval:9,type:"integer",min:1,max:2e3}],id:"Chande Momentum Oscillator@tv-basicstudies-1",scriptIdPart:"",name:"Chande Momentum Oscillator",format:{type:"price",precision:2}},constructor:function(){this.f_0=function(e){return r.Std.ge(e,0)?e:0},this.f_1=function(e){return r.Std.ge(e,0)?0:-e},this.f_2=function(e,t){return 100*e/t},this.f_3=function(e,t){return this.f_2(e-t,e+t)},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=r.Std.close(this._context),n=this._context.new_var(s),o=r.Std.change(n),a=this.f_0(o),l=this.f_1(o),c=this._context.new_var(a),h=r.Std.sum(c,i,this._context),d=this._context.new_var(l),u=r.Std.sum(d,i,this._context);return[this.f_3(h,u)]}}},{name:"Chop Zone",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:5,trackPrice:!1,transparency:0,visible:!0,color:"#000080"}},palettes:{palette_0:{colors:{0:{color:"#26C6DA",width:1,style:0},1:{color:"#43A047",width:1,style:0},2:{color:"#A5D6A7",width:1,style:0},3:{color:u,width:1,style:0},4:{color:"#D50000",width:1,style:0},5:{color:"#E91E63",width:1,style:0},6:{color:"#FF6D00",width:1,style:0},7:{color:"#FFB74D",width:1,style:0},8:{color:"#FDD835",width:1,style:0}}}},inputs:{}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",palette:"palette_0",target:"plot_0",type:"colorer"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Chop Zone",shortDescription:"Chop Zone",is_price_study:!1, +palettes:{palette_0:{colors:{0:{name:"Color 0"},1:{name:"Color 1"},2:{name:"Color 2"},3:{name:"Color 3"},4:{name:"Color 4"},5:{name:"Color 5"},6:{name:"Color 6"},7:{name:"Color 7"},8:{name:"Color 8"}},valToIndex:{0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8}}},inputs:[],id:"chop_zone@tv-basicstudies-1",scriptIdPart:"",name:"Chop Zone",format:{precision:0,type:"price"}},constructor:function(){this.f_0=function(){var e=r.Std.close(this._context),t=r.Std.hlc3(this._context),i=this._context.new_var(r.Std.high(this._context)),s=r.Std.highest(i,30,this._context),n=r.Std.lowest(i,30,this._context),o=25/(s-n)*n,a=this._context.new_var(e),l=this._context.new_var(r.Std.ema(a,34,this._context)),c=(l.get(1)-l.get(0))/t*o,h=r.Std.sqrt(1+c*c),d=r.Std.round(180*r.Std.acos(1/h)/3.141592653589793),u=r.Std.iff(r.Std.gt(c,0),-d,d),p=r.Std.and(r.Std.gt(u,-2.14),r.Std.le(u,-.71))?7:8,_=r.Std.and(r.Std.gt(u,-3.57),r.Std.le(u,-2.14))?6:p,m=r.Std.and(r.Std.gt(u,-5),r.Std.le(u,-3.57))?5:_,g=r.Std.le(u,-5)?4:m,f=r.Std.and(r.Std.lt(u,2.14),r.Std.ge(u,.71))?3:g,v=r.Std.and(r.Std.lt(u,3.57),r.Std.ge(u,2.14))?2:f,S=r.Std.and(r.Std.lt(u,5),r.Std.ge(u,3.57))?1:v;return[1,r.Std.ge(u,5)?0:S]},this.main=function(e,t){return this._context=e,this._input=t,this.f_0()}}},{name:"Choppiness Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:61.8},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:38.2}],filledAreasStyle:{fill_0:{color:"#2196F3",transparency:90,visible:!0}},inputs:{in_0:14}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,zorder:1}},description:"Choppiness Index",shortDescription:"CHOP",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit",zorder:-1.1},{id:"hline_1",name:"LowerLimit",zorder:-1.11}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background",zorder:-2}],inputs:[{id:"in_0",name:"length",defval:14,type:"integer",min:1,max:2e3}],id:"Choppiness Index@tv-basicstudies-1",scriptIdPart:"",name:"Choppiness Index",format:{type:"price",precision:2},usePlotsZOrder:!0},constructor:function(){this.f_0=function(e,t,i,s){return 100*r.Std.log10(e/(t-i))/s},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=r.Std.atr(1,this._context),n=this._context.new_var(s),o=r.Std.sum(n,i,this._context),a=r.Std.high(this._context),l=this._context.new_var(a),c=r.Std.highest(l,i,this._context),h=r.Std.low(this._context),d=this._context.new_var(h),u=r.Std.lowest(d,i,this._context),p=r.Std.log10(i);return[this.f_0(o,c,u,p)]}}},{name:"Commodity Channel Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},smoothedMA:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0, +visible:!1}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:100},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:-100}],filledAreasStyle:{fill_0:{color:"#2196F3",transparency:90,visible:!0}},inputs:{in_0:20,smoothingLine:"SMA",smoothingLength:20}},plots:[{id:"plot_0",type:"line"},{id:"smoothedMA",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,zorder:2},smoothedMA:{title:"Smoothed MA",histogramBase:0,joinPoints:!1,zorder:1}},description:"Commodity Channel Index",shortDescription:"CCI",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit",zorder:-1.1},{id:"hline_1",name:"LowerLimit",zorder:-1.11}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background",zorder:-2}],inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:2e3},{id:"smoothingLine",name:"Smoothing Line",defval:"SMA",type:"text",options:["SMA","EMA","WMA"]},{id:"smoothingLength",name:"Smoothing Length",defval:20,type:"integer",min:1,max:1e4}],id:"Commodity Channel Index@tv-basicstudies-1",scriptIdPart:"",name:"Commodity Channel Index",format:{precision:2,type:"price"},usePlotsZOrder:!0},constructor:function(){this.f_0=function(e,t,i){return(e-t)/(.015*i)},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.hlc3(this._context),s=this._input(0),n=this._input(1),o=this._input(2);this._context.setMinimumAdditionalDepth(s+o);var a,l=this._context.new_var(i),c=r.Std.sma(l,s,this._context),h=this._context.new_var(i),d=r.Std.dev(h,s,this._context),u=this.f_0(i,c,d),p=this._context.new_var(u);return"EMA"===n?a=r.Std.ema(p,o,this._context):"WMA"===n?a=r.Std.wma(p,o,this._context):"SMA"===n&&(a=r.Std.sma(p,o,this._context)),[u,a]}}},{name:"Connors RSI",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:70},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:30}],filledAreasStyle:{fill_0:{color:"#2196F3",transparency:90,visible:!0}},inputs:{in_0:3,in_1:2,in_2:100}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"CRSI",histogramBase:0,joinPoints:!1,zorder:1}},description:"Connors RSI",shortDescription:"CRSI",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit",zorder:-1.1},{id:"hline_1",name:"LowerLimit",zorder:-1.11}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background",zorder:-2}],inputs:[{id:"in_0",name:"RSI Length",defval:3,type:"integer",min:1},{id:"in_1",name:"UpDown Length",defval:2,type:"integer",min:1},{id:"in_2",name:"ROC Length",defval:100,type:"integer",min:1}],id:"Connors RSI@tv-basicstudies-1",scriptIdPart:"",name:"Connors RSI",format:{precision:2,type:"price"},usePlotsZOrder:!0},constructor:function(){var e;this.f_1=function(e,t,i){var s=i.new_var(r.Std.max(r.Std.change(e),0));return r.Std.rma(s,t,i)},this.f_2=function(e,t,i){ +var s=i.new_var(-r.Std.min(r.Std.change(e),0));return r.Std.rma(s,t,i)},this.f_3=(e=0,function(t){var i=t.get(0),s=t.get(1);return e=i===s?0:i>s?r.Std.nz(e)<=0?1:r.Std.nz(e)+1:r.Std.nz(e)>=0?-1:r.Std.nz(e)-1,this._context.new_var(e)}),this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._context.new_var(i),n=this._input(0),o=this._input(1),a=this._input(2);this._context.setMinimumAdditionalDepth(a);var l=r.Std.rsi(this.f_1(s,n,this._context),this.f_2(s,n,this._context)),c=this.f_3(s),h=r.Std.rsi(this.f_1(c,o,this._context),this.f_2(c,o,this._context)),d=this._context.new_var(r.Std.roc(s,1)),u=r.Std.percentrank(d,a);return[r.Std.avg(l,h,u)]}}},{name:"Coppock Curve",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:10,in_1:14,in_2:11}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Coppock Curve",shortDescription:"Coppock Curve",is_price_study:!1,inputs:[{id:"in_0",name:"WMA Length",defval:10,type:"integer",min:-1e12,max:5e3},{id:"in_1",name:"Long RoC Length",defval:14,type:"integer",min:1,max:4999},{id:"in_2",name:"Short RoC Length",defval:11,type:"integer",min:1,max:4999}],id:"Coppock Curve@tv-basicstudies-1",scriptIdPart:"",name:"Coppock Curve",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return e+t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2);this._context.setMinimumAdditionalDepth(i+Math.max(s,n));var o=r.Std.close(this._context),a=this._context.new_var(o),l=r.Std.roc(a,s),c=this._context.new_var(o),h=r.Std.roc(c,n),d=this.f_0(l,h),u=this._context.new_var(d);return[r.Std.wma(u,i,this._context)]}}},{name:"Correlation Coeff",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:4,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:"",in_1:20}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Correlation Coefficient",shortDescription:"CC",is_price_study:!1,inputs:[{id:"in_0",name:"sym",defval:"",type:"symbol"},{id:"in_1",name:"length",defval:20,type:"integer",min:1,max:2e3}],id:"Correlation Coeff@tv-basicstudies-1",scriptIdPart:"",name:"Correlation Coeff",format:{precision:2,type:"price"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this._context.new_sym(this._input(0),r.Std.period(this._context))},this.main=function(e,t){this._context=e,this._input=t;var i=this._context.new_unlimited_var(this._context.symbol.time),s=(this._input(0),r.Std.period(this._context),r.Std.close(this._context)),n=this._input(1);this._context.select_sym(1);var o=this._context.new_unlimited_var(this._context.symbol.time),a=r.Std.close(this._context),l=this._context.new_unlimited_var(a) +;this._context.select_sym(0);var c=l.adopt(o,i,0),h=this._context.new_var(s),d=this._context.new_var(c);return[r.Std.correlation(h,d,n,this._context)]}}},{name:"Correlation - Log",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!1,id:"Correlation - Log@tv-basicstudies-1",scriptIdPart:"",name:"Correlation - Log",description:"Correlation - Log",shortDescription:"Correlation - Log",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#2196F3"}},inputs:{instrument:"",instrument2:"",periods:25}},styles:{plot_0:{title:"Plot"}},inputs:[{id:"instrument",name:"Instrument 1",type:"symbol",defval:"",confirm:!0},{id:"instrument2",name:"Instrument 2",type:"symbol",defval:"",confirm:!0},{id:"periods",name:"Periods",type:"integer",defval:25}],format:{precision:2,type:"price"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this._context.new_sym(this._input(0),r.Std.period(this._context)),this._context.new_sym(this._input(1),r.Std.period(this._context)),this.period=this._input(2)},this.correlationLog=function(e,t,i,s){var n=r.Std.sma(e,i,s),o=r.Std.sma(t,i,s),a=s.new_var(e.get()*t.get());return(r.Std.sma(a,i,s)-n*o)/Math.sqrt(r.Std.variance2(e,n,i)*r.Std.variance2(t,o,i))},this.main=function(e,t){this._context=e,this._input=t,this._context.select_sym(1);var i=this._context.new_var(this._context.symbol.time);this._context.select_sym(2);var s=this._context.new_var(r.Std.close(this._context)),n=this._context.new_var(r.Std.log(s.get()/s.get(1))),o=this._context.new_var(this._context.symbol.time);this._context.select_sym(1);var a=this._context.new_var(r.Std.close(this._context)),l=this._context.new_var(r.Std.log(a.get()/a.get(1))),c=this._context.new_var(n.adopt(o,i,0)),h=this.correlationLog(l,c,this.period,this._context);return[r.Std.round(1e3*h)/1e3]}}},{name:"Detrended Price Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#43A047"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:21,in_1:!1}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"DPO",histogramBase:0,joinPoints:!1,isHidden:!1,zorder:1}},description:"Detrended Price Oscillator",shortDescription:"DPO",is_price_study:!1,is_hidden_study:!1,id:"detrended_price_oscillator@tv-basicstudies-1",bands:[{id:"hline_0",name:"Zero",isHidden:!1,zorder:-1}],inputs:[{id:"in_0",name:"Period",defval:21,type:"integer",min:1,max:1e12},{id:"in_1",name:"isCentered",defval:!1,type:"bool"}],scriptIdPart:"",name:"Detrended Price Oscillator",format:{type:"price",precision:2},usePlotsZOrder:!0},constructor:function(){this.f_0=function(){var e=this._input(0),t=this._input(1),i=Math.floor(e/2+1);this._context.setMinimumAdditionalDepth(e+i) +;var s=this._context.new_var(r.Std.close(this._context)),n=this._context.new_var(r.Std.sma(s,e,this._context)),o=this._context.new_var(r.Std.close(this._context)).get(i)-n,a=r.Std.close(this._context)-n.get(i);return[t?o:a,t?-i:0]},this.main=function(e,t){this._context=e,this._input=t;var i=this.f_0();return[{value:i[0],offset:i[1]}]}}},{name:"Directional Movement Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"},plot_3:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#F50057"},plot_2:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FFA726"},plot_4:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#ab47bc"}},inputs:{in_0:14,in_1:14}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"},{id:"plot_3",type:"line"},{id:"plot_4",type:"line"}],styles:{plot_0:{title:"+DI",histogramBase:0,joinPoints:!1},plot_1:{title:"-DI",histogramBase:0,joinPoints:!1},plot_2:{title:"DX",histogramBase:0,joinPoints:!1},plot_3:{title:"ADX",histogramBase:0,joinPoints:!1},plot_4:{title:"ADXR",histogramBase:0,joinPoints:!1}},description:"Directional Movement",shortDescription:"DMI",is_price_study:!1,inputs:[{id:"in_0",name:"DI Length",defval:14,type:"integer",min:1,max:2e3},{id:"in_1",name:"ADX Smoothing",defval:14,type:"integer",min:1,max:50}],id:"Directional Movement Index@tv-basicstudies-1",scriptIdPart:"",name:"Directional Movement Index",format:{precision:4,type:"price"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1);return this._context.setMinimumAdditionalDepth(2*i+s),r.Std.dmi(i,s,this._context)}}},{name:"Donchian Channels",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_2:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"}},filledAreasStyle:{fill_0:{color:"#2196F3",transparency:95,visible:!0}},inputs:{in_0:20}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Lower",histogramBase:0,joinPoints:!1},plot_1:{title:"Upper",histogramBase:0,joinPoints:!1},plot_2:{title:"Basis",histogramBase:0,joinPoints:!1}},description:"Donchian Channels",shortDescription:"DC",is_price_study:!0,filledAreas:[{id:"fill_0",objAId:"plot_1",objBId:"plot_0",type:"plot_plot",title:"Plots Background"}],inputs:[{id:"in_0",name:"length",defval:20,type:"integer",min:1,max:2e3}],id:"Donchian Channels@tv-basicstudies-1",scriptIdPart:"",name:"Donchian Channels",format:{ +type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=r.Std.low(this._context),n=this._context.new_var(s),o=r.Std.lowest(n,i,this._context),a=r.Std.high(this._context),l=this._context.new_var(a),c=r.Std.highest(l,i,this._context);return[o,c,r.Std.avg(c,o)]}}},{name:"Double Exponential Moving Average",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#43A047"}},inputs:{in_0:9}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Double EMA",shortDescription:"DEMA",is_price_study:!0,inputs:[{id:"in_0",name:"length",defval:9,type:"integer",min:1,max:1e4}],id:"Double Exponential Moving Average@tv-basicstudies-1",scriptIdPart:"",name:"Double Exponential Moving Average",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return 2*e-t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0);this._context.setMinimumAdditionalDepth(2*i);var s=r.Std.close(this._context),n=this._context.new_var(s),o=r.Std.ema(n,i,this._context),a=this._context.new_var(o),l=r.Std.ema(a,i,this._context);return[this.f_0(o,l)]}}},{name:"Ease of Movement",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#43A047"}},inputs:{in_0:1e4,in_1:14}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Ease Of Movement",shortDescription:"EOM",is_price_study:!1,inputs:[{id:"in_0",name:"Divisor",defval:1e4,type:"integer",min:1,max:1e9},{id:"in_1",name:"length",defval:14,type:"integer",min:1,max:2e3}],id:"Ease of Movement@tv-basicstudies-1",scriptIdPart:"",name:"Ease of Movement",format:{type:"volume"}},constructor:function(){this.f_0=function(e,t,i,s,r){return e*t*(i-s)/r},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=r.Std.hl2(this._context),o=this._context.new_var(n),a=r.Std.change(o),l=this.f_0(i,a,r.Std.high(this._context),r.Std.low(this._context),r.Std.volume(this._context)),c=this._context.new_var(l);return[r.Std.sma(c,s,this._context)]}}},{name:"Elders Force Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:a}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:13}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,zorder:1}},description:"Elder's Force Index",shortDescription:"EFI",is_price_study:!1,bands:[{id:"hline_0",name:"Zero",zorder:-1}],inputs:[{id:"in_0",name:"length",defval:13,type:"integer",min:1,max:2e3}],id:"Elders Force Index@tv-basicstudies-1",scriptIdPart:"",name:"Elders Force Index",format:{ +type:"volume"},usePlotsZOrder:!0},constructor:function(){this.f_0=function(e,t){return e*t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=r.Std.close(this._context),n=this._context.new_var(s),o=r.Std.change(n),a=this.f_0(o,r.Std.volume(this._context)),l=this._context.new_var(a);return[r.Std.ema(l,i,this._context)]}}},{name:"EMA Cross",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#43A047"},plot_2:{linestyle:0,linewidth:4,plottype:3,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:9,in_1:26}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Short",histogramBase:0,joinPoints:!1},plot_1:{title:"Long",histogramBase:0,joinPoints:!1},plot_2:{title:"Crosses",histogramBase:0,joinPoints:!1}},description:"EMA Cross",shortDescription:"EMA Cross",is_price_study:!0,inputs:[{id:"in_0",name:"Short",defval:9,type:"integer",min:1,max:2e3},{id:"in_1",name:"Long",defval:26,type:"integer",min:1,max:2e3}],id:"EMA Cross@tv-basicstudies-1",scriptIdPart:"",name:"EMA Cross",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return e?t:r.Std.na()},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=r.Std.close(this._context),o=this._context.new_var(n),a=r.Std.ema(o,i,this._context),l=this._context.new_var(n),c=r.Std.ema(l,s,this._context),h=a,d=c,u=r.Std.cross(a,c,this._context);return[h,d,this.f_0(u,a)]}}},{name:"Envelopes",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_2:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},filledAreasStyle:{fill_0:{color:"#2196F3",transparency:95,visible:!0}},inputs:{in_0:20,in_1:10,in_2:10,in_3:"Simple",in_4:"close"}},plots:[{id:"plot_1",type:"line"},{id:"plot_0",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Average",histogramBase:0,joinPoints:!1},plot_1:{title:"Upper",histogramBase:0,joinPoints:!1},plot_2:{title:"Lower",histogramBase:0,joinPoints:!1}},description:"Envelopes",shortDescription:"Envelopes",is_price_study:!0,filledAreas:[{id:"fill_0",objAId:"plot_1",objBId:"plot_2",type:"plot_plot",title:"Plots Background"}],inputs:[{id:"in_0",name:"Length",defval:20,type:"integer",min:1,max:2e3},{id:"in_1",name:"Upper Percentage",defval:2,type:"float",min:0},{id:"in_2",name:"Lower Percentage",defval:2,type:"float",min:0},{id:"in_3",name:"Method",type:"text",defval:"Simple",options:["Simple","Exponential","Weighted"]},{id:"in_4",name:"Source",defval:"close",type:"source", +options:["open","high","low","close","hl2","hlc3","ohlc4"]}],id:"Envelope@tv-basicstudies-1",scriptIdPart:"",name:"Envelopes",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return e*(1+t)},this.f_1=function(e,t){return e*(1-t)},this.main=function(e,t){this._context=e,this._input=t;var i=this._context.new_var(r.Std[this._input(4)](this._context)),s=r.Std.sma(i,this._input(0),this._context);return"Exponential"===this._input(3)?s=r.Std.ema(i,this._input(0),this._context):"Weighted"===this._input(3)&&(s=r.Std.wma(i,this._input(0),this._context)),[this.f_0(s,this._input(1)/100),s,this.f_1(s,this._input(2)/100)]}}},{name:"Standard Error",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!1,id:"Standard Error@tv-basicstudies-1",scriptIdPart:"",name:"Standard Error",description:"Standard Error",shortDescription:"Standard Error",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#FF6D00"}},inputs:{length:14}},styles:{plot_0:{title:"Plot"}},inputs:[{id:"length",type:"integer",name:"Length",min:3}],format:{precision:2,type:"price"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.period=this._input(0)},this.main=function(e,t){this._context=e,this._input=t;for(var i,s,n=this._context.new_var(r.Std.close(this._context)),o=0,a=0,l=0;l0?1:3,i=r.Std.change(this._context.new_var(e));return t-(r.Std.le(i,0)?0:1)},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std[this._input(2)](this._context),s=this._input(0),n=this._input(1),o=this._input(3);this._context.setMinimumAdditionalDepth(Math.max(s,n)+o);var a=this._context.new_var(i),l=r.Std.ema(a,s,this._context),c=this._context.new_var(i),h=r.Std.ema(c,n,this._context),d=this.f_0(l,h),u=this._context.new_var(d),p=r.Std.ema(u,o,this._context),_=this.f_0(d,p);return[_,d,p,this.f_1(_)]}}},{name:"Moving Average Exponential",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},smoothedMA:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!1}},inputs:{length:9,source:"close",offset:0,smoothingLine:"SMA",smoothingLength:9}},plots:[{ +id:"plot_0",type:"line"},{id:"smoothedMA",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1},smoothedMA:{title:"Smoothed MA",histogramBase:0,joinPoints:!1}},description:"Moving Average Exponential",shortDescription:"EMA",is_price_study:!0,inputs:[{id:"length",name:"Length",defval:9,type:"integer",min:1,max:1e4},{id:"source",name:"Source",defval:"close",type:"source",options:["open","high","low","close","hl2","hlc3","ohlc4"]},{id:"offset",name:"Offset",defval:0,type:"integer",min:-1e4,max:1e4},{id:"smoothingLine",name:"Smoothing Line",defval:"SMA",type:"text",options:["SMA","EMA","WMA"]},{id:"smoothingLength",name:"Smoothing Length",defval:9,type:"integer",min:1,max:1e4}],id:"Moving Average Exponential@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Exponential",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=r.Std[this._input(1)](this._context),s=this._input(0),n=this._input(2),o=this._input(3),a=this._input(4);this._context.setMinimumAdditionalDepth(s+a);var l,c=this._context.new_var(i),h=r.Std.ema(c,s,this._context),d=this._context.new_var(h);return"EMA"===o?l=r.Std.ema(d,a,this._context):"WMA"===o?l=r.Std.wma(d,a,this._context):"SMA"===o&&(l=r.Std.sma(d,a,this._context)),[{value:h,offset:n},{value:l,offset:n}]}}},{name:"Moving Average Weighted",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:9,in_1:"close",in_2:0}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Moving Average Weighted",shortDescription:"WMA",is_price_study:!0,inputs:[{id:"in_0",name:"Length",defval:9,type:"integer",min:1,max:2e3},{id:"in_1",name:"Source",defval:"close",type:"source",options:["open","high","low","close","hl2","hlc3","ohlc4"]},{id:"in_2",name:"Offset",defval:0,type:"integer",min:-1e4,max:1e4}],id:"Moving Average Weighted@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Weighted",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=r.Std[this._input(1)](this._context),s=this._input(0),n=this._input(2),o=this._context.new_var(i);return[{value:r.Std.wma(o,s,this._context),offset:n}]}}},{name:"Moving Average Double",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,id:"Moving Average Double@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Double",description:"Moving Average Double",shortDescription:"Moving Average Double",is_price_study:!0,plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#FF6D00"},plot_1:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#2196F3"}},inputs:{firstPeriods:14,secondPeriods:21,method:"Simple"}},styles:{plot_0:{title:"Plot 1"},plot_1:{title:"Plot 2"}}, +inputs:[{id:"firstPeriods",name:"1st Period",type:"integer",defval:14,min:1,max:1e4},{id:"secondPeriods",name:"2nd Period",type:"integer",defval:21,min:1,max:1e4},{id:"method",name:"Method",type:"text",defval:"Simple",options:["Simple","Exponential","Weighted"]}],format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i,s,n=this._context.new_var(r.Std.close(this._context));return"Exponential"===this._input(2)?(i=r.Std.ema(n,this._input(0),this._context),s=r.Std.ema(n,this._input(1),this._context)):"Weighted"===this._input(2)?(i=r.Std.wma(n,this._input(0),this._context),s=r.Std.wma(n,this._input(1),this._context)):(i=r.Std.sma(n,this._input(0),this._context),s=r.Std.sma(n,this._input(1),this._context)),[i,s]}}},{name:"Moving Average Triple",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!0,id:"Moving Average Triple@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Triple",description:"Moving Average Triple",shortDescription:"Moving Average Triple",plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,transparency:0,trackPrice:!1,color:"#FF6D00"},plot_1:{linestyle:0,visible:!0,linewidth:1,transparency:0,plottype:0,trackPrice:!1,color:"#2196F3"},plot_2:{linestyle:0,visible:!0,linewidth:1,transparency:0,plottype:0,trackPrice:!1,color:"#26C6DA"}},inputs:{firstPeriods:14,secondPeriods:21,thirdPeriods:35,method:"Simple"}},styles:{plot_0:{title:"Plot 1"},plot_1:{title:"Plot 2"},plot_2:{title:"Plot 3"}},inputs:[{id:"firstPeriods",name:"1st Period",type:"integer",defval:14,min:1,max:1e4},{id:"secondPeriods",name:"2nd Period",type:"integer",defval:21,min:1,max:1e4},{id:"thirdPeriods",name:"3rd Period",type:"integer",defval:35,min:1,max:1e4},{id:"method",name:"Method",type:"text",defval:"Simple",options:["Simple","Exponential","Weighted"]}],format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i,s,n,o=this._context.new_var(r.Std.close(this._context));return"Exponential"===this._input(3)?(i=r.Std.ema(o,this._input(0),this._context),s=r.Std.ema(o,this._input(1),this._context),n=r.Std.ema(o,this._input(2),this._context)):"Weighted"===this._input(3)?(i=r.Std.wma(o,this._input(0),this._context),s=r.Std.wma(o,this._input(1),this._context),n=r.Std.wma(o,this._input(2),this._context)):(i=r.Std.sma(o,this._input(0),this._context),s=r.Std.sma(o,this._input(1),this._context),n=r.Std.sma(o,this._input(2),this._context)),[i,s,n]}}},{name:"Moving Average Adaptive",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!0,id:"Moving Average Adaptive@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Adaptive",description:"Moving Average Adaptive",shortDescription:"Moving Average Adaptive",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,transparency:0,trackPrice:!1,color:"#AB47BC"}}, +inputs:{periods:10}},styles:{plot_0:{title:"Plot 1"}},inputs:[{id:"periods",name:"Period",type:"integer",defval:10,min:2,max:1e4}],format:{type:"inherit"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.periods=this._input(0)},this.ama=function(e,t){var i=this.periods,s=this._context.new_var(),n=e.get(),o=r.Std.stdev(t,i,this._context),a=r.Std.log(n/e.get(i))/(o*Math.sqrt(i)),l=.1*Math.abs(a),c=(n-s.get(1))*l+s.get(1);return s.set(isNaN(c)?n:c),c},this.main=function(e,t){this._context=e,this._input=t;var i=this._context.new_var(r.Std.close(this._context)),s=this._context.new_var(r.Std.log(i.get()/i.get(1)));return[this.ama(i,s)]}}},{name:"Moving Average Hamming",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!0,id:"Moving Average Hamming@tv-basicstudies-1",scriptIdPart:"",name:"Moving Average Hamming",description:"Moving Average Hamming",shortDescription:"Moving Average Hamming",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,transparency:0,trackPrice:!1,color:"#4CAF50"}},inputs:{periods:10}},styles:{plot_0:{title:"Plot 1"}},inputs:[{id:"periods",name:"Period",type:"integer",defval:10,min:1,max:1e4}],format:{type:"inherit"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.periods=this._input(0);for(var i=[],s=0,r=1;r<=this.periods;++r){var n=Math.sin((1+r)/this.periods*Math.PI/2);i.unshift(n),s+=n}this.hmaFactors=i,this.hmaFactorsSum=s},this.hma=function(e){for(var t=this.periods,i=0,s=0;sthis._context.new_var(s).get(1)?1:0,[100*r.Std.sma(this._context.new_var(i),this.rollingPeriod,this._context)]}}},{name:"Net Volume",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Net Volume",shortDescription:"Net Volume",is_price_study:!1,inputs:[],id:"Net Volume@tv-basicstudies-1", +scriptIdPart:"",name:"Net Volume",format:{type:"volume"}},constructor:function(){this.f_0=function(e,t,i){return r.Std.gt(e,0)?t:r.Std.lt(i,0)?-t:0*t},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._context.new_var(i),n=r.Std.change(s);return[this.f_0(n,r.Std.volume(this._context),n)]}}},{name:"On Balance Volume",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},smoothedMA:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!1}},inputs:{smoothingLine:"SMA",smoothingLength:9}},plots:[{id:"plot_0",type:"line"},{id:"smoothedMA",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1},smoothedMA:{title:"Smoothed MA",histogramBase:0,joinPoints:!1}},description:"On Balance Volume",shortDescription:"OBV",is_price_study:!1,inputs:[{id:"smoothingLine",name:"Smoothing Line",defval:"SMA",type:"text",options:["SMA","EMA","WMA"]},{id:"smoothingLength",name:"Smoothing Length",defval:9,type:"integer",min:1,max:1e4}],id:"On Balance Volume@tv-basicstudies-1",scriptIdPart:"",name:"On Balance Volume",format:{type:"volume"}},constructor:function(){this.f_0=function(e,t,i){return r.Std.gt(e,0)?t:r.Std.lt(i,0)?-t:0*t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=r.Std.close(this._context),o=this._context.new_var(n),a=r.Std.change(o),l=this.f_0(a,r.Std.volume(this._context),a),c=r.Std.cum(l,this._context);this._context.setMinimumAdditionalDepth(s);var h,d=this._context.new_var(c);return"EMA"===i?h=r.Std.ema(d,s,this._context):"WMA"===i?h=r.Std.wma(d,s,this._context):"SMA"===i&&(h=r.Std.sma(d,s,this._context)),[c,h]}}},{name:"Parabolic SAR",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:3,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:.02,in_1:.02,in_2:.2}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Parabolic SAR",shortDescription:"SAR",is_price_study:!0,inputs:[{id:"in_0",name:"start",defval:.02,type:"float",min:-1e12,max:1e12},{id:"in_1",name:"increment",defval:.02,type:"float",min:-1e12,max:1e12},{id:"in_2",name:"maximum",defval:.2,type:"float",min:-1e12,max:1e12}],id:"Parabolic SAR@tv-basicstudies-1",scriptIdPart:"",name:"Parabolic SAR",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2);return[r.Std.sar(i,s,n,this._context)]}}},{name:"Price Channel",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#F50057"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#F50057"},plot_2:{linestyle:0,linewidth:1, +plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:20,in_1:0}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Highprice Line",histogramBase:0,joinPoints:!1},plot_1:{title:"Lowprice Line",histogramBase:0,joinPoints:!1},plot_2:{title:"Centerprice Line",histogramBase:0,joinPoints:!1}},description:"Price Channel",shortDescription:"PC",is_price_study:!0,inputs:[{id:"in_0",name:"Length",defval:20,type:"integer",min:1,max:2e3},{id:"in_1",name:"Offset Length",defval:0,type:"integer",min:1,max:2e3}],id:"Price Channel@tv-basicstudies-1",scriptIdPart:"",name:"Price Channel",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.high(this._context),s=this._context.new_var(i),n=r.Std.low(this._context),o=this._context.new_var(n),a=this._input(0),l=this._input(1),c=r.Std.highest(s,a,this._context),h=r.Std.lowest(o,a,this._context);return[{value:c,offset:l},{value:h,offset:l},{value:r.Std.avg(c,h),offset:l}]}}},{name:"Price Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:u}},inputs:{in_0:10,in_1:21}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Price Oscillator",shortDescription:"PPO",is_price_study:!1,inputs:[{id:"in_0",name:"shortlen",defval:10,type:"integer",min:1,max:2e3},{id:"in_1",name:"longlen",defval:21,type:"integer",min:1,max:2e3}],id:"Price Oscillator@tv-basicstudies-1",scriptIdPart:"",name:"Price Oscillator",format:{type:"price",precision:2}},constructor:function(){this.f_0=function(e,t){return(e-t)/t*100},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._context.new_var(i),a=r.Std.sma(o,s,this._context),l=this._context.new_var(i),c=r.Std.sma(l,n,this._context);return[this.f_0(a,c)]}}},{name:"Price Volume Trend",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"PVT",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Price Volume Trend",shortDescription:"PVT",is_price_study:!1,is_hidden_study:!1,id:"price_volume_trend@tv-basicstudies-1",inputs:[],scriptIdPart:"",name:"Price Volume Trend",format:{type:"volume"}},constructor:function(){this.f_0=function(){var e=this._context.new_var(r.Std.close(this._context));return[r.Std.cum(r.Std.change(e)/e.get(1)*r.Std.volume(this._context),this._context)]},this.main=function(e,t){return this._context=e,this._input=t,[this.f_0()[0]]}}},{name:"Rate Of Change",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0, +color:"#2196F3"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:9}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"ROC",histogramBase:0,joinPoints:!1,isHidden:!1,zorder:1}},description:"Rate Of Change",shortDescription:"ROC",is_price_study:!1,bands:[{id:"hline_0",name:"Zero Line",isHidden:!1,zorder:-1}],inputs:[{id:"in_0",name:"length",defval:9,type:"integer",min:1,max:1e12}],id:"rate_of_change@tv-basicstudies-1",scriptIdPart:"",name:"Rate Of Change",format:{precision:2,type:"price"},usePlotsZOrder:!0},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._context.new_var(r.Std.close(this._context)),s=this._input(0);return[100*(i.get(0)-i.get(s))/i.get(s)]}}},{name:"Relative Strength Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#7E57C2"},smoothedMA:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!1}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:70,zorder:-1.1},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:50,zorder:-1.11},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:30,zorder:-1.111}],filledAreasStyle:{fill_0:{color:"#7E57C2",transparency:90,visible:!0}},inputs:{length:14,smoothingLine:"SMA",smoothingLength:14}},plots:[{id:"plot_0",type:"line"},{id:"smoothedMA",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,zorder:1},smoothedMA:{title:"Smoothed MA",histogramBase:0,joinPoints:!1,zorder:2}},description:"Relative Strength Index",shortDescription:"RSI",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit",zorder:-1.1},{id:"hline_2",name:"MiddleLimit",zorder:-1.11},{id:"hline_1",name:"LowerLimit",zorder:-1.111}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background",zorder:-2}],inputs:[{id:"length",name:"Length",defval:14,type:"integer",min:1,max:2e3},{id:"smoothingLine",name:"Smoothing Line",defval:"SMA",type:"text",options:["SMA","EMA","WMA"]},{id:"smoothingLength",name:"Smoothing Length",defval:14,type:"integer",min:1,max:1e4}],id:"Relative Strength Index@tv-basicstudies-1",scriptIdPart:"",name:"Relative Strength Index",format:{precision:2,type:"price"},usePlotsZOrder:!0},constructor:function(){this.f_0=function(e){return r.Std.max(e,0)},this.f_1=function(e){return-r.Std.min(e,0)},this.f_2=function(e,t){return r.Std.eq(e,0)?100:r.Std.eq(t,0)?0:100-100/(1+t/e)},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._input(2);this._context.setMinimumAdditionalDepth(s+o);var a,l=this._context.new_var(i),c=r.Std.change(l),h=this.f_0(c),d=this._context.new_var(h),u=r.Std.rma(d,s,this._context),p=this.f_1(c),_=this._context.new_var(p),m=r.Std.rma(_,s,this._context),g=this.f_2(m,u),f=this._context.new_var(g) +;return"EMA"===n?a=r.Std.ema(f,o,this._context):"WMA"===n?a=r.Std.wma(f,o,this._context):"SMA"===n&&(a=r.Std.sma(f,o,this._context)),[{value:g},{value:a}]}}},{name:"Relative Vigor Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:u},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:a}},inputs:{in_0:10}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],styles:{plot_0:{title:"RVGI",histogramBase:0,joinPoints:!1},plot_1:{title:"Signal",histogramBase:0,joinPoints:!1}},description:"Relative Vigor Index",shortDescription:"RVGI",is_price_study:!1,inputs:[{id:"in_0",name:"Length",defval:10,type:"integer",min:1,max:2e3}],id:"Relative Vigor Index@tv-basicstudies-1",scriptIdPart:"",name:"Relative Vigor Index",format:{precision:4,type:"price"}},constructor:function(){this.f_0=function(e,t){return e-t},this.f_1=function(e,t){return e/t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this.f_0(r.Std.close(this._context),r.Std.open(this._context)),n=this._context.new_var(s),o=r.Std.swma(n,this._context),a=this._context.new_var(o),l=r.Std.sum(a,i,this._context),c=this.f_0(r.Std.high(this._context),r.Std.low(this._context)),h=this._context.new_var(c),d=r.Std.swma(h,this._context),u=this._context.new_var(d),p=r.Std.sum(u,i,this._context),_=this.f_1(l,p),m=this._context.new_var(_);return[_,r.Std.swma(m,this._context)]}}},{name:"Relative Volatility Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#7E57C2"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:80},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:20}],filledAreasStyle:{fill_0:{color:"#7E57C2",transparency:90,visible:!0}},inputs:{in_0:10}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,zorder:1}},description:"Relative Volatility Index",shortDescription:"RVI",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit",zorder:-1.1},{id:"hline_1",name:"LowerLimit",zorder:-1.11}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background",zorder:-2}],inputs:[{id:"in_0",name:"length",defval:10,type:"integer",min:1,max:2e3}],id:"Relative Volatility Index@tv-basicstudies-1",scriptIdPart:"",name:"Relative Volatility Index",format:{precision:2,type:"price"},usePlotsZOrder:!0},constructor:function(){this.f_0=function(e,t){return r.Std.le(e,0)?0:t},this.f_1=function(e,t){return r.Std.gt(e,0)?0:t},this.f_2=function(e,t){return e/(e+t)*100},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0);this._context.setMinimumAdditionalDepth(i+12) +;var s=r.Std.close(this._context),n=this._context.new_var(s),o=r.Std.stdev(n,i,this._context),a=this._context.new_var(s),l=r.Std.change(a),c=this.f_0(l,o),h=this._context.new_var(c),d=r.Std.ema(h,14,this._context),u=this.f_1(l,o),p=this._context.new_var(u),_=r.Std.ema(p,14,this._context);return[this.f_2(d,_)]}}},{name:"SMI Ergodic Indicator/Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"},plot_2:{linestyle:0,linewidth:1,plottype:1,trackPrice:!1,transparency:0,visible:!0,color:c}},inputs:{in_0:5,in_1:20,in_2:5}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Indicator",histogramBase:0,joinPoints:!1},plot_1:{title:"Signal",histogramBase:0,joinPoints:!1},plot_2:{title:"Oscillator",histogramBase:0,joinPoints:!1}},description:"SMI Ergodic Indicator/Oscillator",shortDescription:"SMIIO",is_price_study:!1,inputs:[{id:"in_0",name:"shortlen",defval:5,type:"integer",min:1,max:2e3},{id:"in_1",name:"longlen",defval:20,type:"integer",min:1,max:2e3},{id:"in_2",name:"siglen",defval:5,type:"integer",min:1,max:2e3}],id:"SMI Ergodic Indicator/Oscillator@tv-basicstudies-1",scriptIdPart:"",name:"SMI Ergodic Indicator/Oscillator",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t){return e-t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2);this._context.setMinimumAdditionalDepth(i+s+n);var o=r.Std.close(this._context),a=this._context.new_var(o),l=r.Std.tsi(a,i,s,this._context),c=this._context.new_var(l),h=r.Std.ema(c,n,this._context);return[l,h,this.f_0(l,h)]}}},{name:"Smoothed Moving Average",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#673AB7"}},inputs:{in_0:7,in_1:"close"}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Smoothed Moving Average",shortDescription:"SMMA",is_price_study:!0,inputs:[{id:"in_0",name:"Length",defval:7,type:"integer",min:1,max:1e12},{id:"in_1",name:"Source",defval:"close",type:"source",options:["open","high","low","close","hl2","hlc3","ohlc4"]}],id:"smoothed_moving_average@tv-basicstudies-1",scriptIdPart:"",name:"Smoothed Moving Average",format:{type:"inherit"}},constructor:function(){this.f_0=function(){var e=this._input(0),t=r.Std[this._input(1)](this._context);return[r.Std.smma(t,e,this._context)]},this.main=function(e,t){return this._context=e,this._input=t,this.f_0()}}},{name:"Standard Deviation",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,id:"Standard Deviation@tv-basicstudies-1",scriptIdPart:"",name:"Standard Deviation",description:"Standard Deviation", +shortDescription:"Standard Deviation",is_price_study:!1,plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:u}},inputs:{periods:5,deviations:1}},styles:{plot_0:{title:"Plot"}},inputs:[{id:"periods",name:"Periods",type:"integer"},{id:"deviations",name:"Deviations",type:"float"}],format:{precision:2,type:"price"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._context.new_var(r.Std.close(this._context));return[r.Std.stdev(n,i,this._context)*s]}}},{name:"Stochastic",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:80},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:20}],filledAreasStyle:{fill_0:{color:"#2196F3",transparency:90,visible:!0}},inputs:{in_0:14,in_1:1,in_2:3}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],styles:{plot_0:{title:"%K",histogramBase:0,joinPoints:!1,zorder:1.1},plot_1:{title:"%D",histogramBase:0,joinPoints:!1,zorder:1.11}},description:"Stochastic",shortDescription:"Stoch",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit",zorder:-1.1},{id:"hline_1",name:"LowerLimit",zorder:-1.11}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background",zorder:-2}],inputs:[{id:"in_0",name:"K",defval:14,type:"integer",min:1,max:1e4},{id:"in_1",name:"D",defval:1,type:"integer",min:1,max:1e4},{id:"in_2",name:"smooth",defval:3,type:"integer",min:1,max:1e4}],id:"Stochastic@tv-basicstudies-1",scriptIdPart:"",name:"Stochastic",format:{precision:2,type:"price"},usePlotsZOrder:!0},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2);this._context.setMinimumAdditionalDepth(i+s+n);var o=r.Std.close(this._context),a=r.Std.high(this._context),l=r.Std.low(this._context),c=this._context.new_var(o),h=this._context.new_var(a),d=this._context.new_var(l),u=r.Std.stoch(c,h,d,i,this._context),p=this._context.new_var(u),_=r.Std.sma(p,s,this._context),m=this._context.new_var(_);return[_,r.Std.sma(m,n,this._context)]}}},{name:"Stochastic RSI",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#FF6D00"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:80},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:20}],filledAreasStyle:{fill_0:{color:"#2196F3",transparency:90,visible:!0}},inputs:{in_0:14,in_1:14,in_2:3,in_3:3}},plots:[{id:"plot_0",type:"line"},{ +id:"plot_1",type:"line"}],styles:{plot_0:{title:"%K",histogramBase:0,joinPoints:!1,zorder:1.1},plot_1:{title:"%D",histogramBase:0,joinPoints:!1,zorder:1.11}},description:"Stochastic RSI",shortDescription:"Stoch RSI",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit",zorder:-1.1},{id:"hline_1",name:"LowerLimit",zorder:-1.11}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background",zorder:-2}],inputs:[{id:"in_0",name:"lengthRSI",defval:14,type:"integer",min:1,max:1e4},{id:"in_1",name:"lengthStoch",defval:14,type:"integer",min:1,max:1e4},{id:"in_2",name:"smoothK",defval:3,type:"integer",min:1,max:1e4},{id:"in_3",name:"smoothD",defval:3,type:"integer",min:1,max:1e4}],id:"Stochastic RSI@tv-basicstudies-1",scriptIdPart:"",name:"Stochastic RSI",format:{precision:2,type:"price"},usePlotsZOrder:!0},constructor:function(){this.f_1=function(e,t,i){var s=i.new_var(r.Std.max(r.Std.change(e),0));return r.Std.rma(s,t,i)},this.f_2=function(e,t,i){var s=i.new_var(-r.Std.min(r.Std.change(e),0));return r.Std.rma(s,t,i)},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.close(this._context),s=this._input(0),n=this._input(1),o=this._input(2),a=this._input(3);e.setMinimumAdditionalDepth(s+n+o+a);var l=this._context.new_var(i),c=r.Std.rsi(this.f_1(l,s,this._context),this.f_2(l,s,this._context)),h=this._context.new_var(c),d=this._context.new_var(c),u=this._context.new_var(c),p=r.Std.stoch(h,d,u,n,this._context),_=this._context.new_var(p),m=r.Std.sma(_,o,this._context),g=this._context.new_var(m);return[m,r.Std.sma(g,a,this._context)]}}},{name:"TRIX",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:a}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:18}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"TRIX",histogramBase:0,joinPoints:!1,zorder:1}},description:"TRIX",shortDescription:"TRIX",is_price_study:!1,bands:[{id:"hline_0",name:"Zero",zorder:-1}],inputs:[{id:"in_0",name:"length",defval:18,type:"integer",min:1,max:2e3}],id:"TRIX@tv-basicstudies-1",scriptIdPart:"",name:"TRIX",format:{precision:2,type:"price"},usePlotsZOrder:!0},constructor:function(){this.f_0=function(e){return r.Std.log(e)},this.f_1=function(e){return 1e4*e},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0);e.setMinimumAdditionalDepth(3*i);var s=this.f_0(r.Std.close(this._context)),n=this._context.new_var(s),o=r.Std.ema(n,i,this._context),a=this._context.new_var(o),l=r.Std.ema(a,i,this._context),c=this._context.new_var(l),h=r.Std.ema(c,i,this._context),d=this._context.new_var(h),u=r.Std.change(d);return[this.f_1(u)]}}},{name:"Triple EMA",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:9}},plots:[{id:"plot_0",type:"line"}],styles:{ +plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Triple EMA",shortDescription:"TEMA",is_price_study:!0,inputs:[{id:"in_0",name:"length",defval:9,type:"integer",min:1,max:1e4}],id:"Triple EMA@tv-basicstudies-1",scriptIdPart:"",name:"Triple EMA",format:{type:"inherit"}},constructor:function(){this.f_0=function(e,t,i){return 3*(e-t)+i},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0);this._context.setMinimumAdditionalDepth(3*i);var s=r.Std.close(this._context),n=this._context.new_var(s),o=r.Std.ema(n,i,this._context),a=this._context.new_var(o),l=r.Std.ema(a,i,this._context),c=this._context.new_var(l),h=r.Std.ema(c,i,this._context);return[this.f_0(o,l,h)]}}},{name:"True Strength Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#E91E63"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:25,in_1:13,in_2:13}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],styles:{plot_0:{title:"True Strength Index",histogramBase:0,joinPoints:!1,zorder:1.1},plot_1:{title:"Signal",histogramBase:0,joinPoints:!1,zorder:1.11}},description:"True Strength Index",shortDescription:"True Strength Index",is_price_study:!1,bands:[{id:"hline_0",name:"Zero",zorder:-1}],inputs:[{id:"in_0",name:"long",defval:25,type:"integer",min:1,max:4999},{id:"in_1",name:"short",defval:13,type:"integer",min:1,max:4999},{id:"in_2",name:"siglen",defval:13,type:"integer",min:1,max:4999}],id:"True Strength Indicator@tv-basicstudies-1",scriptIdPart:"",name:"True Strength Index",format:{precision:4,type:"price"},usePlotsZOrder:!0},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2);this._context.setMinimumAdditionalDepth(this._input(0)+this._input(1)+this._input(2));var o=r.Std.close(this._context),a=this._context.new_var(o),l=r.Std.tsi(a,s,i,this._context),c=this._context.new_var(l);return[l,r.Std.ema(c,n,this._context)]}}},{name:"Trend Strength Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!1,id:"Trend Strength Index@tv-basicstudies-1",scriptIdPart:"",name:"Trend Strength Index",description:"Trend Strength Index",shortDescription:"Trend Strength Index",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:c}},inputs:{periods:14}},styles:{plot_0:{title:"Plot"}},inputs:[{id:"periods",type:"integer",name:"Periods"}],format:{type:"inherit"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.period=this._input(0),this.invertedPeriod=1/this.period,this.sumX=(this.period-1)*this.period/2,this.sumXX=(this.period-1)*this.period*(2*this.period-1)/6, +this.invertedPeriodSumXSumX=this.invertedPeriod*this.sumX*this.sumX},this.trendStrengthIndex=function(){for(var e=this._context.new_var(r.Std.close(this._context)),t=r.Std.sum(e,this.period,this._context),i=0,s=0,n=0;n0?1:-1:a/(l=Math.sqrt(l))},this.main=function(e,t){return this._context=e,this._input=t,[this.trendStrengthIndex()]}}},{name:"Typical Price",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,id:"TypicalPrice@tv-basicstudies-1",scriptIdPart:"",name:"Typical Price",description:"Typical Price",shortDescription:"Typical Price",is_price_study:!0,plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#FF6D00"}},inputs:{}},styles:{plot_0:{title:"Plot"}},inputs:[],format:{type:"inherit"}},constructor:function(){this.main=function(e,t){return this._context=e,this._input=t,[r.Std.hlc3(this._context)]}}},{name:"Ultimate Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:a}},inputs:{in_0:7,in_1:14,in_2:28}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"UO",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Ultimate Oscillator",shortDescription:"UO",is_price_study:!1,inputs:[{id:"in_0",name:"length7",defval:7,type:"integer",min:1,max:1e12},{id:"in_1",name:"length14",defval:14,type:"integer",min:1,max:1e12},{id:"in_2",name:"length28",defval:28,type:"integer",min:1,max:1e12}],id:"ultimate_oscillator@tv-basicstudies-1",scriptIdPart:"",name:"Ultimate Oscillator",format:{precision:2,type:"price"}},constructor:function(){this.f_0=function(e,t,i){var s=this._context.new_var(e),n=this._context.new_var(t);return[r.Std.sum(s,i,this._context)/r.Std.sum(n,i,this._context)]},this.f_1=function(){var e=this._input(0),t=this._input(1),i=this._input(2),s=this._context.new_var(r.Std.close(this._context)),n=r.Std.max(r.Std.high(this._context),s.get(1)),o=this._context.new_var(r.Std.close(this._context)),a=r.Std.min(r.Std.low(this._context),o.get(1)),l=r.Std.close(this._context)-a,c=n-a,h=this.f_0(l,c,e),d=this.f_0(l,c,t),u=this.f_0(l,c,i);return[100*(4*h[0]+2*d[0]+u[0])/7]},this.main=function(e,t){return this._context=e,this._input=t,this.f_1()}}},{name:"Volatility Close-to-Close",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!1,id:"Volatility Close-to-Close@tv-basicstudies-1",scriptIdPart:"",name:"Volatility Close-to-Close",description:"Volatility Close-to-Close",shortDescription:"Volatility Close-to-Close",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:"#2196F3"}},inputs:{periods:10,daysPerYear:252}},styles:{plot_0:{ +title:"Plot"}},inputs:[{id:"periods",name:"Periods",type:"integer",defval:10,min:2},{id:"daysPerYear",name:"Days Per Year",type:"integer",defval:252,min:1,max:366}],format:{precision:2,type:"percent"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.period=this._input(0),this.daysPerYear=this._input(1)},this.stdev=function(e,t,i){var s=this.variance(e,t,i);return r.Std.sqrt(s)},this.variance=function(e,t,i){var s=r.Std.sma(e,t,i);return this.variance2(e,s,t)},this.variance2=function(e,t,i){var s,r,n=0;for(s=0;s0&&(l=.12*this.square(e.get()-s.get(1))/this.marketClosedPercentage+.88*l/(1-this.marketClosedPercentage)),l/=a,l*=this.secondsPerYear;var c=this._context.new_var(l);return 100*Math.sqrt(r.Std.sum(c,this.period,this._context)/this.period)},this.main=function(e,t){return this._context=e,this._input=t,[this.volatilityOHLC()]}}},{name:"Volatility Index",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,is_price_study:!0,id:"Volatility Index@tv-basicstudies-1",scriptIdPart:"",name:"Volatility Index",description:"Volatility Index",shortDescription:"Volatility Index",plots:[{id:"plot_0",type:"line"}],defaults:{styles:{plot_0:{linestyle:0,visible:!0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,color:c}},inputs:{periods:10,atrMult:3,method:"Wilder Smoothing"}},styles:{plot_0:{title:"Plot"}},inputs:[{id:"periods",name:"Periods",type:"integer"},{id:"atrMult",name:"ATR Mult",type:"float"},{id:"method",name:"Method",type:"text",defval:"Exponential",options:["Exponential","Wilder Smoothing"]}],format:{type:"inherit"}},constructor:function(){this.init=function(e,t){this._context=e,this._input=t,this.period=this._input(0),this.atrMult=this._input(1),this.maMethod=this._input(2),this.nextsar=null,this.position=null,this.sic=null,this.bars=[],this.count=0,this.lastSar=null,this._context.setMinimumAdditionalDepth("Exponential"===this.maMethod?2*this.period+2:this.period)},this.computeATR=function(){var e=r.Std.high(this._context)-r.Std.low(this._context),t=r.Std.high(this._context)-this.bars[this.bars.length-2],i=this.bars[this.bars.length-2]-r.Std.low(this._context);return this.tr=Math.max(e,t,i),"Exponential"===this.maMethod?this.atr=r.Std.ema(this._context.new_var(this.tr),this.period,this._context):this.atr=this.tr/this.period+(1-1/this.period)*this.atr,this.atr*this.atrMult},this.calculateVolatility=function(){if(r.Std.close(this._context)===this.bars[this.bars.length-1])return this.lastSar;if(this.bars.push(r.Std.close(this._context)),1===this.count)this.atr=r.Std.high(this._context)-r.Std.low(this._context),this.sic=r.Std.close(this._context);else if(this.countthis.sic&&(this.sic=r.Std.close(this._context))}else if(this.count===this.period){e=r.Std.high(this._context)-r.Std.low(this._context),t=r.Std.high(this._context)-this.bars[this.bars.length-2],i=this.bars[this.bars.length-2]-r.Std.low(this._context);this.atr+=Math.max(e,t,i),this.atr*=1/this.period,r.Std.close(this._context)>this.sic&&(this.sic=r.Std.close(this._context)),this.position="LONG",this.nextsar=this.sic-this.atr*this.atrMult}else{var s=this.nextsar;"LONG"===this.position?r.Std.close(this._context)s?(this.position="LONG",this.sic=r.Std.close(this._context),this.nextsar=this.sic-this.computeATR()):(this.position="SHORT",this.sic=Math.min(r.Std.close(this._context),this.sic),this.nextsar=this.sic+this.computeATR())),this.lastSar=s}return this.count++,s},this.main=function(e,t){return this._context=e,this._input=t,this._context.select_sym(0),[this.calculateVolatility()]}}},{name:"VWAP",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:0,transparency:0,visible:!0,color:"#2196F3"}}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"VWAP",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"VWAP",shortDescription:"VWAP",is_price_study:!0,inputs:[],id:"VWAP@tv-basicstudies-1",scriptIdPart:"",name:"VWAP",format:{type:"inherit"}},constructor:function(){this.f_1=function(e){e.hist=null,e.add_hist()},this.init=function(e,t){this._isNewSession=null},this.main=function(e,t){this._context=e,this._input=t;var i=e.new_var(),s=e.new_var(),n=this._context.symbol.time;return n&&(null===this._isNewSession&&(this._isNewSession=r.Std.createNewSessionCheck(e)),this._isNewSession(n)&&(this.f_1(i),this.f_1(s))),i.set(r.Std.nz(i.get(1))+r.Std.hlc3(this._context)*r.Std.volume(this._context)),s.set(r.Std.nz(s.get(1))+r.Std.volume(this._context)),[i.get(0)/s.get(0)]}}},{name:"VWMA",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:20}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"VWMA",shortDescription:"VWMA",is_price_study:!0,inputs:[{id:"in_0",name:"len",defval:20,type:"integer",min:1,max:1e4}],id:"VWMA@tv-basicstudies-1",scriptIdPart:"",name:"VWMA",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t +;var i=r.Std.close(this._context),s=this._input(0),n=this._context.new_var(i);return[r.Std.vwma(n,s,this._context)]}}},{name:"Volume Oscillator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:0}],inputs:{in_0:5,in_1:10}},plots:[{id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,zorder:1}},description:"Volume Oscillator",shortDescription:"Volume Osc",is_price_study:!1,bands:[{id:"hline_0",name:"Zero",zorder:-1}],inputs:[{id:"in_0",name:"shortlen",defval:5,type:"integer",min:1,max:4999},{id:"in_1",name:"longlen",defval:10,type:"integer",min:1,max:4999}],id:"Volume Oscillator@tv-basicstudies-1",scriptIdPart:"",name:"Volume Oscillator",format:{precision:2,type:"percent"},usePlotsZOrder:!0},constructor:function(){this.f_0=function(e,t){return 100*(e-t)/t},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=r.Std.volume(this._context),o=this._context.new_var(n),a=r.Std.ema(o,i,this._context),l=this._context.new_var(n),c=r.Std.ema(l,s,this._context);return[this.f_0(a,c)]}}},{name:"Vortex Indicator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#E91E63"}},inputs:{in_0:14}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"}],styles:{plot_0:{title:"VI +",histogramBase:0,joinPoints:!1,isHidden:!1},plot_1:{title:"VI -",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"Vortex Indicator",shortDescription:"VI",is_price_study:!1,is_hidden_study:!1,id:"vortex_indicator@tv-basicstudies-1",inputs:[{id:"in_0",name:"Period",defval:14,type:"integer",min:2,max:1e12}],scriptIdPart:"",name:"Vortex Indicator",format:{precision:4,type:"price"}},constructor:function(){this.f_0=function(){var e=this._input(0),t=this._context.new_var(r.Std.low(this._context)),i=this._context.new_var(r.Std.abs(r.Std.high(this._context)-t.get(1))),s=r.Std.sum(i,e,this._context),n=this._context.new_var(r.Std.high(this._context)),o=this._context.new_var(r.Std.abs(r.Std.low(this._context)-n.get(1))),a=r.Std.sum(o,e,this._context),l=this._context.new_var(r.Std.atr(1,this._context)),c=r.Std.sum(l,e,this._context);return[s/c,a/c]},this.main=function(e,t){return this._context=e,this._input=t,this.f_0()}}},{name:"Willams %R",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#7E57C2"}},bands:[{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:-20},{color:"#787B86",linestyle:2,linewidth:1,visible:!0,value:-80}],filledAreasStyle:{fill_0:{color:"#7E57C2",transparency:90,visible:!0}},inputs:{in_0:14}},plots:[{ +id:"plot_0",type:"line"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1,zorder:1}},description:"Williams %R",shortDescription:"%R",is_price_study:!1,bands:[{id:"hline_0",name:"UpperLimit",zorder:-1.1},{id:"hline_1",name:"LowerLimit",zorder:-1.11}],filledAreas:[{id:"fill_0",objAId:"hline_0",objBId:"hline_1",type:"hline_hline",title:"Hlines Background",zorder:-2}],inputs:[{id:"in_0",name:"length",defval:14,type:"integer",min:1,max:2e3}],id:"Willams %R@tv-basicstudies-1",scriptIdPart:"",name:"Willams %R",format:{precision:2,type:"price"},usePlotsZOrder:!0},constructor:function(){this.f_0=function(e,t,i){return 100*(e-t)/(t-i)},this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=r.Std.high(this._context),n=this._context.new_var(s),o=r.Std.highest(n,i,this._context),a=r.Std.low(this._context),l=this._context.new_var(a),c=r.Std.lowest(l,i,this._context);return[this.f_0(r.Std.close(this._context),o,c)]}}},{name:"Williams Alligator",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"},plot_1:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#E91E63"},plot_2:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#66BB6A"}},inputs:{in_0:21,in_1:13,in_2:8,in_3:8,in_4:5,in_5:3}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",type:"line"},{id:"plot_2",type:"line"}],styles:{plot_0:{title:"Jaw",histogramBase:0,joinPoints:!1},plot_1:{title:"Teeth",histogramBase:0,joinPoints:!1},plot_2:{title:"Lips",histogramBase:0,joinPoints:!1}},description:"Williams Alligator",shortDescription:"Alligator",is_price_study:!0,inputs:[{id:"in_0",name:"Jaw Length",defval:21,type:"integer",min:1,max:2e3},{id:"in_1",name:"Teeth Length",defval:13,type:"integer",min:1,max:2e3},{id:"in_2",name:"Lips Length",defval:8,type:"integer",min:1,max:2e3},{id:"in_3",name:"Jaw Offset",defval:8,type:"integer",min:1,max:2e3},{id:"in_4",name:"Teeth Offset",defval:5,type:"integer",min:1,max:2e3},{id:"in_5",name:"Lips Offset",defval:3,type:"integer",min:1,max:2e3}],id:"Williams Alligator@tv-basicstudies-1",scriptIdPart:"",name:"Williams Alligator",format:{type:"inherit"}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._input(0),s=this._input(1),n=this._input(2),o=this._input(3),a=this._input(4),l=this._input(5),c=r.Std.hl2(this._context);return[{value:r.Std.smma(c,i,this._context),offset:o},{value:r.Std.smma(c,s,this._context),offset:a},{value:r.Std.smma(c,n,this._context),offset:l}]}}},{name:"Williams Fractals",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,defaults:{styles:{plot_0:{plottype:"shape_triangle_down",visible:!0,location:"BelowBar",transparency:0,color:a},plot_1:{plottype:"shape_triangle_up",visible:!0,location:"AboveBar",transparency:0,color:u}},inputs:{in_0:2}},plots:[{id:"plot_0",type:"shapes"},{id:"plot_1",type:"shapes"}],styles:{plot_0:{title:"Down fractals", +isHidden:!1},plot_1:{title:"Up fractals",isHidden:!1}},description:"Williams Fractal",shortDescription:"Fractals",is_price_study:!0,is_hidden_study:!1,id:"Williams Fractals@tv-basicstudies-1",inputs:[{id:"in_0",name:"Periods",defval:2,type:"integer",min:2,max:1e12}],scriptIdPart:"",name:"Williams Fractals",isCustomIndicator:!0,format:{type:"inherit"}},constructor:function(){this.f_0=function(){for(var e=this._input(0),t=this._context.new_var(r.Std.high(this._context)),i=!0,s=!0,n=!0,o=!0,a=!0,l=!0,c=1;c<=e;c++)i=r.Std.and(i,r.Std.lt(t.get(e-c),t.get(e))),s=r.Std.and(s,r.Std.lt(t.get(e+c),t.get(e))),n=r.Std.and(n,r.Std.and(r.Std.le(t.get(e+1),t.get(e)),r.Std.lt(t.get(e+c+1),t.get(e)))),o=r.Std.and(o,r.Std.and(r.Std.le(t.get(e+1),t.get(e)),r.Std.and(r.Std.le(t.get(e+2),t.get(e)),r.Std.lt(t.get(e+c+2),t.get(e))))),a=r.Std.and(a,r.Std.and(r.Std.le(t.get(e+1),t.get(e)),r.Std.and(r.Std.le(t.get(e+2),t.get(e)),r.Std.and(r.Std.le(t.get(e+3),t.get(e)),r.Std.lt(t.get(e+c+3),t.get(e)))))),l=r.Std.and(l,r.Std.and(r.Std.le(t.get(e+1),t.get(e)),r.Std.and(r.Std.le(t.get(e+2),t.get(e)),r.Std.and(r.Std.le(t.get(e+3),t.get(e)),r.Std.and(r.Std.le(t.get(e+4),t.get(e)),r.Std.lt(t.get(e+c+4),t.get(e)))))));var h=r.Std.or(s,r.Std.or(n,r.Std.or(o,r.Std.or(a,l)))),d=r.Std.and(i,h),u=this._context.new_var(r.Std.low(this._context)),p=1,_=1,m=1,g=1,f=1,v=1;for(c=1;c<=e;c++)p=r.Std.and(p,r.Std.gt(u.get(e-c),u.get(e))),_=r.Std.and(_,r.Std.gt(u.get(e+c),u.get(e))),m=r.Std.and(m,r.Std.and(r.Std.ge(u.get(e+1),u.get(e)),r.Std.gt(u.get(e+c+1),u.get(e)))),g=r.Std.and(g,r.Std.and(r.Std.ge(u.get(e+1),u.get(e)),r.Std.and(r.Std.ge(u.get(e+2),u.get(e)),r.Std.gt(u.get(e+c+2),u.get(e))))),f=r.Std.and(f,r.Std.and(r.Std.ge(u.get(e+1),u.get(e)),r.Std.and(r.Std.ge(u.get(e+2),u.get(e)),r.Std.and(r.Std.ge(u.get(e+3),u.get(e)),r.Std.gt(u.get(e+c+3),u.get(e)))))),v=r.Std.and(v,r.Std.and(r.Std.ge(u.get(e+1),u.get(e)),r.Std.and(r.Std.ge(u.get(e+2),u.get(e)),r.Std.and(r.Std.ge(u.get(e+3),u.get(e)),r.Std.and(r.Std.ge(u.get(e+4),u.get(e)),r.Std.gt(u.get(e+c+4),u.get(e)))))));var S=r.Std.or(_,r.Std.or(m,r.Std.or(g,r.Std.or(f,v))));return[r.Std.and(p,S),d]},this.main=function(e,t){this._context=e,this._input=t;var i=this.f_0();return[{value:i[0],offset:-this._input(0)},{value:i[1],offset:-this._input(0)}]}}},{name:"Guppy Multiple Moving Average",metainfo:{isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,description:"Guppy Multiple Moving Average",shortDescription:"GMMA",is_price_study:!0,id:"Guppy Multiple Moving Average@tv-basicstudies-1",_metainfoVersion:52,format:{type:"inherit"},defaults:{inputs:{traderEMA1Length:3,traderEMA2Length:5,traderEMA3Length:8,traderEMA4Length:10,traderEMA5Length:12,traderEMA6Length:15,investorEMA1Length:30,investorEMA2Length:35,investorEMA3Length:40,investorEMA4Length:45,investorEMA5Length:50,investorEMA6Length:60},styles:{traderEMA1:{color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:15,visible:!0},traderEMA2:{color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:12,visible:!0},traderEMA3:{ +color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:9,visible:!0},traderEMA4:{color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:6,visible:!0},traderEMA5:{color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:3,visible:!0},traderEMA6:{color:"#00FFFF",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0},investorEMA1:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:15,visible:!0},investorEMA2:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:12,visible:!0},investorEMA3:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:9,visible:!0},investorEMA4:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:6,visible:!0},investorEMA5:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:3,visible:!0},investorEMA6:{color:"#FF0000",linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!0}}},inputs:[{defval:3,id:"traderEMA1Length",max:1e3,min:1,name:"Trader EMA 1 length",type:"integer"},{defval:5,id:"traderEMA2Length",max:1e3,min:1,name:"Trader EMA 2 length",type:"integer"},{defval:8,id:"traderEMA3Length",max:1e3,min:1,name:"Trader EMA 3 length",type:"integer"},{defval:10,id:"traderEMA4Length",max:1e3,min:1,name:"Trader EMA 4 length",type:"integer"},{defval:12,id:"traderEMA5Length",max:1e3,min:1,name:"Trader EMA 5 length",type:"integer"},{defval:15,id:"traderEMA6Length",max:1e3,min:1,name:"Trader EMA 6 length",type:"integer"},{defval:30,id:"investorEMA1Length",max:1e3,min:1,name:"Investor EMA 1 length",type:"integer"},{defval:35,id:"investorEMA2Length",max:1e3,min:1,name:"Investor EMA 2 length",type:"integer"},{defval:40,id:"investorEMA3Length",max:1e3,min:1,name:"Investor EMA 3 length",type:"integer"},{defval:45,id:"investorEMA4Length",max:1e3,min:1,name:"Investor EMA 4 length",type:"integer"},{defval:50,id:"investorEMA5Length",max:1e3,min:1,name:"Investor EMA 5 length",type:"integer"},{defval:60,id:"investorEMA6Length",max:1e3,min:1,name:"Investor EMA 6 length",type:"integer"}],plots:[{id:"traderEMA1",type:"line"},{id:"traderEMA2",type:"line"},{id:"traderEMA3",type:"line"},{id:"traderEMA4",type:"line"},{id:"traderEMA5",type:"line"},{id:"traderEMA6",type:"line"},{id:"investorEMA1",type:"line"},{id:"investorEMA2",type:"line"},{id:"investorEMA3",type:"line"},{id:"investorEMA4",type:"line"},{id:"investorEMA5",type:"line"},{id:"investorEMA6",type:"line"}],styles:{traderEMA1:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 1"},traderEMA2:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 2"},traderEMA3:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 3"},traderEMA4:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 4"},traderEMA5:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 5"},traderEMA6:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Trader EMA 6"},investorEMA1:{histogramBase:0,isHidden:!1,joinPoints:!1, +title:"Investor EMA 1"},investorEMA2:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Investor EMA 2"},investorEMA3:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Investor EMA 3"},investorEMA4:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Investor EMA 4"},investorEMA5:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Investor EMA 5"},investorEMA6:{histogramBase:0,isHidden:!1,joinPoints:!1,title:"Investor EMA 6"}}},constructor:function(){this.main=function(e,t){this._context=e,this._input=t;var i=this._context.new_var(r.Std.close(this._context)),s=this._input(0),n=this._input(1),o=this._input(2),a=this._input(3),l=this._input(4),c=this._input(5),h=r.Std.ema(i,s,this._context),d=r.Std.ema(i,n,this._context),u=r.Std.ema(i,o,this._context),p=r.Std.ema(i,a,this._context),_=r.Std.ema(i,l,this._context),m=r.Std.ema(i,c,this._context),g=this._input(6),f=this._input(7),v=this._input(8),S=this._input(9),y=this._input(10),b=this._input(11);return[h,d,u,p,_,m,r.Std.ema(i,g,this._context),r.Std.ema(i,f,this._context),r.Std.ema(i,v,this._context),r.Std.ema(i,S,this._context),r.Std.ema(i,y,this._context),r.Std.ema(i,b,this._context)]}}}]},92484:(e,t,i)=>{"use strict";var s;i.d(t,{SubsessionId:()=>s}),function(e){e.Regular="regular",e.Extended="extended",e.PreMarket="premarket",e.PostMarket="postmarket"}(s||(s={}))},87456:(e,t,i)=>{"use strict";i.d(t,{PointsetsManager:()=>n});var s=i(578);const r=(0,i(98351).getLogger)("ChartApi.PointsetsManager");class n{constructor(){this._pointsetsDataBySymbol=new Map}destroy(){this._pointsetsDataBySymbol.clear()}createPointset(e,t,i,s,n){let o=this._pointsetsDataBySymbol.get(t);void 0===o&&(o=new Map,this._pointsetsDataBySymbol.set(t,o));const a=[];for(const t of s){const[i,s]=t;"number"!=typeof i||Number.isNaN(i)?r.logWarn(`Pointset time is invalid: id=${e}, ${i} of type ${typeof i}`):a.push({point:t,extrapolation:n.extrapolateTimeWithOffsetToTime(1e3*i,s)})}s.length===a.length&&o.set(e,{resolution:i,points:a})}removePointset(e){const t=[];this._pointsetsDataBySymbol.forEach(((i,s)=>{i.delete(e),0===i.size&&t.push(s)}));for(const e of t)this._pointsetsDataBySymbol.delete(e)}invalidatePointsetsForSymbol(e,t){const i=this._pointsetsDataBySymbol.get(e);void 0!==i&&i.forEach(((e,i)=>{if(s.Interval.isEqual(e.resolution,t))for(const t of e.points)null!==t.extrapolation&&t.extrapolation.exact&&(t.extrapolation.exact=!1)}))}getUpdatesForSymbol(e,t,i,s){const r=new Map,n=this._pointsetsDataBySymbol.get(e);return void 0!==n&&n.forEach(((e,n)=>{const o=this._refreshPointsetData(e,t,i,s);null!==o&&r.set(n,o)})),r}_refreshPointsetData(e,t,i,n){if(s.Interval.isEqual(e.resolution,t))for(let t=0;t ${t}`),null;o.push({index:i,value:[a.index,a.timeMs/1e3]})}return o}}},59749:(e,t,i)=>{"use strict";i.d(t,{SessionTimeScale:()=>v});var s=i(50151),r=i(2484),n=i(32769),o=i(93975),a=i(8950),l=i(33143),c=i(23150);function h(e){return 60*e*60*1e3}function d(e){return 60*e*1e3}const u=[{divisor:1,weight:18},{divisor:(p=1,1e3*p),weight:19},{divisor:d(1),weight:20},{divisor:d(5),weight:21},{divisor:d(30),weight:22},{divisor:h(1),weight:30},{divisor:h(3),weight:31},{divisor:h(6),weight:32},{divisor:h(12),weight:33}];var p;function _(e,t){if(null!==t){if(e.getUTCFullYear()!==t.getUTCFullYear())return 70;if(e.getUTCMonth()!==t.getUTCMonth())return 60;if(e.getUTCDate()!==t.getUTCDate())return 50;const i=t.getTime(),s=e.getTime();for(let e=u.length-1;e>=0;--e)if(Math.floor(i/u[e].divisor)!==Math.floor(s/u[e].divisor))return u[e].weight}return 18}function m(e,t,i=0){if(0===e.length)return[];let s=i,r=i;const n=[];for(;s=t.length?(n.push({old:s,new:l.INVALID_TIME_POINT_INDEX}),s++):e[s].timeMs===t[r].timeMs?(s!==r&&n.push({old:s,new:r}),s++,r++):e[s].timeMs{if(e.new===t.new&&e.new===l.INVALID_TIME_POINT_INDEX)return e.old-t.old;if(e.new===l.INVALID_TIME_POINT_INDEX)return-1;if(t.new===l.INVALID_TIME_POINT_INDEX)return 1;const i=e.old-e.new,s=t.old-t.new;return i>0?s>0?e.old-t.old:-1:s<0?t.new-e.new:1}))}function g(e,t){return{span:e.markWeight,time:e.displayTime,index:t}}const f=r.enabled("end_of_period_timescale_marks");class v{constructor(){this._completed=!0,this._mainSymbolExtrapolator=null,this._pointDataByTimePoint=new Map,this._seriesIds=new Set,this._displayTimezone=null,this._minFutureBarsCount=0,this._sortedTimePoints=[]}destroy(){this.clearTimeScale()}setCompleted(e){this._completed=e}isCompleted(){return this._completed}clearTimeScale(){return this._pointDataByTimePoint.clear(),this._seriesIds.clear(),this._sortedTimePoints=[],{baseIndex:null,pointsIndex:0,indexChange:[],marks:[],points:[]}}indexOfTime(e){if(0===this._sortedTimePoints.length)return null===this._mainSymbolExtrapolator?null:this._mainSymbolExtrapolator.indexOfTime(e);if(ethis._sortedTimePoints[this._sortedTimePoints.length-1].timeMs){if(null===this._mainSymbolExtrapolator)return null;const t=this._mainSymbolExtrapolator.indexOfTime(e),i=this._mainSymbolExtrapolator.indexOfTime(this._sortedTimePoints[this._sortedTimePoints.length-1].timeMs);if(null===t||null===i)return null;const s=t.index-i.index-1;return{index:this._sortedTimePoints.length+s,timeMs:t.timeMs}}let t=(0, +o.lowerbound)(this._sortedTimePoints,e,((e,t)=>e.timeMs({timeMs:e,markWeight:0,displayTime:NaN})));this._fillPointsData(i,0,0!==this._sortedTimePoints.length?this._sortedTimePoints[this._sortedTimePoints.length-1].displayTime:null);const r=[];for(let t=e;tg(e,i+t)));return r.concat(n)}setTimezone(e){this._displayTimezone="exchange"===e?null:(0,n.get_timezone)(e),this._fillPointsData(this._sortedTimePoints,0)}fillIndexesInRows(e){if(0===e.length)return;let t=-1,i=(0,o.lowerbound)(this._sortedTimePoints,Math.round(1e3*e[0].value[0]),((e,t)=>e.timeMse.timeMs{for(;i=this._sortedTimePoints.length){const t=this.indexOfTime(e);if(null===t)return l.INVALID_TIME_POINT_INDEX;i=t.timeMs!==e?t.index+1:t.index}return(0,s.assert)(i>t,"data must have unique sorted times"),t=i,i}))}firstSeriesBarTime(){return 0===this._sortedTimePoints.length?null:this._sortedTimePoints[0].timeMs}replaceSeriesBarsTimesTail(e,t){if(0===t.length)return null;if(!this._seriesIds.has(e))return this.setSeriesBarsTimes(e,t);const i=[],s=(0,o.lowerbound)(this._sortedTimePoints,t[0],((e,t)=>e.timeMs({timeMs:e.timeMs,pointData:e.pointData,markWeight:0,displayTime:NaN})));for(let e=s;ee.timeMs-t.timeMs)) +;const a=this._updateTimeScalePointsTail(n);return this._applyTimeScaleChanges(a,!1)}setSeriesBarsTimes(e,t){let i=0!==this._pointDataByTimePoint.size;if(this._seriesIds.has(e))if(1===this._seriesIds.size)i=!1,this._pointDataByTimePoint.clear();else for(const t of this._sortedTimePoints)t.pointData.series.delete(e);this._addBarsTimesToSeries(e,t,!1);const s=this._seriesIds.size;0===t.length?this._seriesIds.delete(e):this._seriesIds.add(e),i&&this._cleanupPointsData(this._sortedTimePoints);const r=sthis._seriesIds.size,o=r&&2===this._seriesIds.size||n&&1===this._seriesIds.size,a=[];this._pointDataByTimePoint.forEach(((e,t)=>{a.push({markWeight:0,timeMs:t,displayTime:NaN,pointData:e})})),a.sort(((e,t)=>e.timeMs-t.timeMs));const l=this._updateTimeScalePoints(a);return this._applyTimeScaleChanges(l,o)}_updateFutureBars(){if(0===this._minFutureBarsCount||null===this._mainSymbolExtrapolator)return;if(0!==this._sortedTimePoints.length){const e=this._sortedTimePoints[this._sortedTimePoints.length-1].timeMs;this._mainSymbolExtrapolator.ensureExtrapolatedToFutureTime(e)}const e=this._futureBarsFirstPointIndex();this._mainSymbolExtrapolator.setMinFutureBarsCount(e+this._minFutureBarsCount)}_addBarsTimesToSeries(e,t,i){const s=i?[]:null;for(const i of t){const t=this._pointDataByTimePoint.get(i);if(void 0===t){const t=new Set;t.add(e);const r={index:0,series:t};this._pointDataByTimePoint.set(i,r),null!==s&&s.push({timeMs:i,pointData:r})}else t.series.add(e)}return s}_futureBarsFirstPointIndex(){if(null===this._mainSymbolExtrapolator||0===this._sortedTimePoints.length)return 0;const e=this._mainSymbolExtrapolator.futureBars();return(0,o.upperbound_int)(e,this._sortedTimePoints[this._sortedTimePoints.length-1].timeMs)}_futureBars(){return null===this._mainSymbolExtrapolator?[]:this._mainSymbolExtrapolator.futureBars().slice(this._futureBarsFirstPointIndex(),this._futureBarsFirstPointIndex()+1e3)}_cleanupPointsData(e){for(const t of e)0===t.pointData.series.size&&this._pointDataByTimePoint.delete(t.timeMs)}_updateTimeScalePoints(e){let t=-1;for(let i=0;ie.timeMs=this._sortedTimePoints.length)continue;this._sortedTimePoints[n].timeMs!==r.timeMs&&-1===i&&(i=n)}const s=t+e.length;if(i=S(i,this._sortedTimePoints.length,s),-1===i)return null;this._fillPointsData(e,0,0===t||0===this._sortedTimePoints.length?null:this._sortedTimePoints[t-1].displayTime) +;const r=m(this._sortedTimePoints.slice(t),e).map((e=>({old:e.old+t,new:e.new===l.INVALID_TIME_POINT_INDEX?e.new:e.new+t})));{const i=this._sortedTimePoints;let r=0;for(;t+r1&&null===i){const t=Math.ceil(n/(e.length-1)),i=new Date(1e3*(e[0].displayTime-t));e[0].markWeight=_(new Date(1e3*e[0].displayTime),i)}}(e,t,i)}_applyTimeScaleChanges(e,t){if(null===e)return t?(this._fillPointsData(this._sortedTimePoints,0),{points:[],pointsIndex:0,baseIndex:this._getBaseIndex(),indexChange:[],marks:this.tickMarks(0)}):null;let i=e.pointsIndex;if(0!==i&&t&&(this._fillPointsData(this._sortedTimePoints,0),i=0),0===this._sortedTimePoints.length)return{baseIndex:null,pointsIndex:0,indexChange:[],marks:[],points:[]};const s=[];for(let t=e.pointsIndex;t{"use strict";var s=i(78554),r=i(76702),n=i(22115),o=i(56439).SymbolExtrapolator,a=i(59749).SessionTimeScale,l=i(87456).PointsetsManager,c=i(69228),h=i(8950).createDwmAligner,d=i(578).Interval,u=i(76422),p=i(70641).visitObject,_=i(65665).isObject;i(95056),i(96531);var m=i(40011).DatafeedRequestsCachedProcessor,g=i(20364).timezoneIsAvailable,f=i(8950).isAlignmentEnabled,v=i(91035),S=v.isEncodedExtendedSymbol,y=v.decodeExtendedSymbol,b=i(1930).extractSymbolNameFromSymbolInfo,w=i(11249).replaceGraphicsTimesWithTimePointIndexIndex,P=i(2484),C=i(92484).SubsessionId,T=i(69228).getPeriodsBetweenDates;const x="pre_post_market_sessions",I=P.enabled(x);var M=-5e6;function A(e){var t=e.findIndex((function(e){return e.index!==M}));return-1===t?[]:0===t?e:e.slice(t)} +function L(e,t){return e+"_"+t}var k=function(e){var t=this;this._studiesCache={},this._objectsDataCache={},this._studiesNonSeriesTimes={},this._metainfoCache=[],this._barsCoefficientsCache={},this._externalDatafeed=e,e.getVolumeProfileResolutionForPeriod&&r.overwriteVolumeProfileResolutionForPeriodGetter((function(t,i,s,r){return e.getVolumeProfileResolutionForPeriod(t,i,s,r)})),this._datafeedConfiguration=null,this._marketStatusWatchers={},this._resolveRequests={},this._resolvePromisesBySymbolId=new Map,this._symbolIdToSymbolRequestString=new Map,this._callbacks={},this._serverTimeOffset=0,t._logMessage("Datafeed settings received: {0}".format(JSON.stringify(window.configurationData))),t._datafeedConfiguration=t._adoptConfigurationData(window.configurationData),t._fireEvent("configuration_received"),t._externalDatafeed.getServerTime&&t._externalDatafeed.getServerTime((function(e){t._serverTimeOffset=e-(new Date).valueOf()/1e3})),this._invalidatedPointsetSessions=new Set,this._refreshPointsetsTimerId=null,this._pointsetsManagers={},this._quotesInfo=[],this._depthInfo=[],this._endOfData={},this._computeStudyCounter=0,this._symbolExtrapolators={},this._timeScales={},this._cachedDatafeed=new m(e,this.serverTimeOffset.bind(this),this._datafeedConfiguration.reset_cache_timeout),n.setupFeed({resolve:function(e,i,s,r){t._resolveSymbolByName(e,i,s,r)},subscribe:function(e,i,s,r,n){return t._cachedDatafeed.subscribe(e,i,s,function(e,i,s){var r=new c.SessionInfo(e.timezone,e.session,e.session_holidays,e.corrections),n=c.newBarBuilder(i,r,r);return function(e){if(e&&e.count()){var i=1e3*t.getCurrentUTCTime();n.moveTo(i),n.indexOfBar(i)>=0&&e.setLastBarClosed(!1)}s(e)}}(e,i,r),n)},unsubscribe:function(e){return t._cachedDatafeed.unsubscribe(e)}})};function E(e,t){return e+"_"+t}function D(e,t,i,s){return e+(t?"_#_"+t:"")+(i?"_#_"+i:"")+(s?"_#_"+s:"")}k.prototype._getSymbolExtrapolator=function(e,t,i){var s=d.normalize(i),r=function(e,t,i){const s=void 0!==t.subsession_id?","+t.subsession_id:"";return e+","+t.full_name+","+i+s}(e,t,s),n=this._symbolExtrapolators[r];return void 0===n&&(n=new o(t,s),this._symbolExtrapolators[r]=n),n},k.prototype._barsCoefficients=function(e,t){if(void 0===y(e).type)return{};var i=e+t;return this._barsCoefficientsCache[i]||(this._barsCoefficientsCache[i]={}),this._barsCoefficientsCache[i]},k.prototype.destroy=function(){this._cachedDatafeed.destroy(),this._externalDatafeed=null,Object.keys(this._pointsetsManagers).forEach((function(e){this._pointsetsManagers[e].destroy()}),this),this._pointsetsManagers={}},k.prototype.purgeCache=function(){this._endOfData={},this._resolveRequests={},this._objectsDataCache={},this._studiesNonSeriesTimes={},this._studiesCache={},this._resolvePromisesBySymbolId.clear(),this._symbolIdToSymbolRequestString.clear(),Object.keys(this._pointsetsManagers).forEach((function(e){this._pointsetsManagers[e].destroy()}),this),this._pointsetsManagers={},Object.keys(this._timeScales).forEach((function(e){this._timeScales[e].destroy()}),this),this._timeScales={}, +Object.keys(this._symbolExtrapolators).forEach((function(e){this._symbolExtrapolators[e].destroy()}),this),this._symbolExtrapolators={}},k.prototype.purgeDataCache=function(){this._cachedDatafeed.purgeCache()},k.prototype._logMessage=function(e){P.enabled("charting_library_debug_mode")&&console.log(e)},k.prototype.on=function(e,t){return this._callbacks.hasOwnProperty(e)||(this._callbacks[e]=[]),this._callbacks[e].push(t),this},k.prototype._fireEvent=function(e,t,i){if(this._callbacks.hasOwnProperty(e)){for(var s=this._callbacks[e],r=0;r_[a].timeMs;l?_.push({index:g(s,_.length),value:[s/1e3].concat(r),timeMs:s}):(_[a].index=g(s,a),_[a].value=[s/1e3].concat(r),_[a].timeMs=s),p||u.onRealtimeCallback([_[_.length-1]],l,_.length,v,i)}(e,t,i)},nonseriesOut:function(e,t){u.onNonSeriesDataUpdate(t,i)},setNoMoreData:function(){S=!0},recalc:function(e,s){p=!1,_.endOfData=S,_.emptyBarCount=s.emptyBarCount,t.error&&null!==t.error()||(null!==l&&(y._objectsDataCache[l]=_),u.onDataReadyCallback(_,v,i,s))}});if(!y._studiesCache[e]||!y._studiesCache[e][n])throw Error("This should never happen");y._studiesCache[e][n].engine=w}catch(e){if(!e.studyError)throw e;u.onErrorCallback(e.message)}}else u.onErrorCallback("Unsupported resolution. Did you forget to set has_intraday to true?")}(w,C)},k.prototype._createStudy=function(e,t,i,s,r,n,o,a){var l=this;function c(e,t,i){e=A(e),l._timeScales[s].fillIndexesInRows(e),TradingView.ChartapiMessagerInstances[s].onDataUpdate(r,n,e,t), +TradingView.ChartapiMessagerInstances[s].onStudyCompleted(r,n)}function h(e){var t={};if(0!==e.size){var i={},n=l._studiesCache[s][r].metainfo;e.forEach((function(e,t){i[n.plots[t].id]=e})),t.data={offsets:i}}return t}a=function(e){if(Array.isArray(e))return e;for(var t=[],i=l._studiesCache[s][r].metainfo.inputs,n=0;n=0},k.prototype.ensureExtendedTo=function(e,t,i){if(!this._studiesCache[t][e])throw Error("This should never happen");var s=this;setTimeout((function(){s._recreateSourcesForDataRange(t,{to:i})}),0)},k.prototype.extendSeriesRange=function(e,t){var i=this._timeScales[e].firstSeriesBarTime();if(null!==i){var s=this._mainSeriesRecord(e);if(d.isDWM(s.resolution)&&null!=s.symbolInfo){var r=h(s.resolution,s.symbolInfo);null!==r&&(i=r.timeToExchangeTradingDay(i))}var n=this._symbolIdToSymbolRequestString.get(L(e,s.symbolId)),o=this._barsCoefficients(n,s.resolution),a=o.barsCoefficient||1;if(!o.barsCoefficient){var l=this._getSeriesData(e,s.guid);null!==l&&(o.expectedBarsCount=l.length+t)}var c=this;setTimeout((function(){c._recreateSourcesForDataRange(e,{to:i,countBack:(t+2)*a})}),0)}else this._logMessage("Nothing to extend - there is no points on time scale")},k.prototype.seriesTurnaround=function(e,t){return this._studiesCache[e]&&this._studiesCache[e][t]&&this._studiesCache[e][t].turnaround},k.prototype._seriesDataRange=function(e,t){var i=this._studiesCache[e][t];return null!==i.firstLoadedTimeMs?{to:i.firstLoadedTimeMs,countBack:0}:i.dataRange},k.prototype._applyTimeScaleUpdate=function(e,t){if(null!==t){var i=[];for(var s in this._studiesCache[e]){var r=this._studiesCache[e][s];if(r&&"study"===r.type){var n=this._studiesNonSeriesTimes[e][s];if(n){var o={indexes:this._timeScales[e].convertTimesToIndexes(n),data:{indexes_replace:!0}};i.push({objId:s,turnaround:r.turnaround,data:[],nonSeriesData:o})}}}TradingView.ChartapiMessagerInstances[e].onTimescaleUpdate(t,i),Promise.resolve().then(function(){var t=this._mainSeriesRecord(e);if(null!==t&&null!=t.symbolInfo){var i=this._getSymbolExtrapolator(e,t.symbolInfo,t.resolution);this._pointsetsManagers[e].getUpdatesForSymbol(t.symbolInfo.full_name,t.resolution,i,this._timeScales[e]).forEach((function(t,i){TradingView.ChartapiMessagerInstances[e].onPointsetDataUpdate(i,null,t)}))}}.bind(this))}},k.prototype._updateMainTsBuilder=function(e){var t=this._mainSeriesRecord(e);if(null!==t&&null!=t.symbolInfo){var i=this._getSymbolExtrapolator(e,t.symbolInfo,t.resolution);this._timeScales[e].setMainSymbolExtrapolator(i)}},k.prototype._updateTimeScaleState=function(e){var t=!0,i=!0;for(var s in this._studiesCache[e]){var r=this._studiesCache[e][s];"series"===r.type&&(i=i&&this._isEndOfData(e,s,r.turnaround),t=t&&r.completed)}this._timeScales[e].isCompleted()!==t&&(this._timeScales[e].setCompleted(t),t&&TradingView.ChartapiMessagerInstances[e].onTimescaleCompleted(i))},k.prototype._mainSeriesRecord=function(e){var t=null,i=null +;for(var s in this._studiesCache[e]){var r=this._studiesCache[e][s];if("series"===r.type&&(null===t&&(t=r),r.isMain)){i=r;break}}return null===i&&(i=t),null!==i&&(i.isMain=!0),i},k.prototype._seriesCount=function(e){var t=0;for(var i in this._studiesCache[e]){"series"===this._studiesCache[e][i].type&&(t+=1)}return t},k.prototype._prepareSeriesNonSeriesData=function(e,t,i){var s=i.data[i.data.length-1],r=this._getSeriesData(e,t),n=null===r?[]:i.data;return{data:{data:{reversalAmount:i.reversalAmount,boxSize:i.boxSize,price:s?s[4]:i.price,bars:n.map((function(e,t){return{time:t,open:e[1],high:e[2],low:e[3],close:e[4],volume:e[5],factor:e[6],additionalPrice:e[6]}}))}},indexes:this._timeScales[e].convertTimesToIndexes(n.map((function(e){var t=e[0]||0;return t<0?r[r.length+t].timeMs:i.projectionTime+t})))}},k.prototype.createSeries=function(e,t,i,s,n,o,a){this._setEndOfData(e,t,i,!1);var l=new r.OHLCV;this._studiesCache[e]=this._studiesCache[e]||{};var c=this._getSeriesData(e,t),h=this._studiesCache[e][t],u=this._seriesCount(e),p=this._mainSeriesRecord(e);if(!h||d.isEqual(h.resolution,n)&&h.symbolId===s)void 0!==o.countBack&&null!==c&&0!==c.length&&(o.to=c[0].timeMs),h&&null!=h.firstLoadedTimeMs?o.to=void 0!==o.to?Math.min(h.firstLoadedTimeMs,o.to):h.firstLoadedTimeMs:h||0===u||null!==p&&(null!=p.firstLoadedTimeMs?(o.to=p.firstLoadedTimeMs,o.countBack=0):o=Object.assign({},p.dataRange));else if(1===u)o=Object.assign({},h.initialDatarange);else{var _=this._timeScales[e].firstSeriesBarTime();(void 0===o.to||null!==_&&_{"use strict";i.d(t,{SymbolExtrapolator:()=>c});var s=i(50151),r=i(93975),n=i(69228),o=i(87770),a=i(578);function l(e,t){return e.length>t}class c{constructor(e,t,i=2e5){this._firstRealBarTimeMs=null,this._historyBarsCache=[],this._projectionFirstIndex=1/0,this._barsTimes=[],this._minFutureBarsCount=0, +this._lastRealBarTimeMs=null,this._futureBarsCache=[],this._symbolInfo=e,this._interval=a.Interval.parse(t),this._extrapolateLimit=i,this._barBuilder=(0,n.newBarBuilder)(t,new n.SessionInfo(e.timezone,e.session,e.session_holidays,e.corrections),null)}destroy(){this.clear()}interval(){return this._interval}barBuilder(){return this._barBuilder}symbolInfo(){return this._symbolInfo}clear(){this._firstRealBarTimeMs=null,this._historyBarsCache=[],this._barsTimes=[],this._lastRealBarTimeMs=null,this._futureBarsCache=[],this._minFutureBarsCount=0,this._projectionFirstIndex=1/0}firstFutureBarIndex(){return this._barsTimes.length}futureBars(){return this._futureBarsCache}replaceBarsTimesTail(e,t=e.length){if(0===e.length)return;if(0===this._barsTimes.length)return void this.setBarsTimes(e,t);const i=e[0],n=this._barsTimes[this._barsTimes.length-1],o=i>n?this._barsTimes.length:(0,r.lowerbound_int)(this._barsTimes,i);0!==o?(this._barsTimes.splice(o,this._barsTimes.length,...e),this._projectionFirstIndex=t===e.length?this._barsTimes.length:this._barsTimes.indexOf(e[t]),(0,s.assert)(-1!==this._projectionFirstIndex,"something went wrong"),n!==e[e.length-1]&&this._setLastRealBarTime(e[e.length-1])):this.setBarsTimes(e,t)}setBarsTimes(e,t=e.length){const i=this._barsTimes;if(this._barsTimes=e.slice(),this._projectionFirstIndex=0===this._barsTimes.length?1/0:t,0===e.length)return this._historyBarsCache=[],this._futureBarsCache=[],this._firstRealBarTimeMs=null,void(this._lastRealBarTimeMs=null);0!==i.length&&i[i.length-1]===e[e.length-1]||this._setLastRealBarTime(e[e.length-1]),0!==i.length&&i[0]===e[0]||(this._historyBarsCache=[],this._firstRealBarTimeMs=e[0])}extrapolateTimeWithOffsetToTime(e,t){if(0===t)return{timeMs:e,exact:!0};0===this._barsTimes.length&&(t<0?null===this._firstRealBarTimeMs?this._firstRealBarTimeMs=e:(this._extendHistoryCacheToTimeFromRight(Math.min(e,null!==this._lastRealBarTimeMs?this._lastRealBarTimeMs:1/0)),this._ensureExtrapolatedToHistoryTime(e)):null===this._lastRealBarTimeMs?this._lastRealBarTimeMs=e:(this._extendFutureCacheToTimeFromLeft(Math.max(e,null!==this._firstRealBarTimeMs?this._firstRealBarTimeMs:1/0)),this._ensureExtrapolatedToFutureTime(e)));const i=this.indexOfTime(e);if(null===i)return null;const s=this._timeOfBarIndex(i.index+t);return null===s?null:((i.index<0||this._projectionFirstIndex<=i.index)&&(s.exact=!1),s)}indexOfTime(e){if(null!==this._firstRealBarTimeMs&&ethis._lastRealBarTimeMs){this._ensureExtrapolatedToFutureTime(e);let t=(0,r.lowerbound_int)(this._futureBarsCache,e) +;if(0!==this._futureBarsCache.length&&t===this._futureBarsCache.length&&e>this._futureBarsCache[this._futureBarsCache.length-1])return null;this._futureBarsCache[t]!==e&&(t-=1);const i=Math.max(1,this._barsTimes.length)+t;return{index:i,timeMs:i===this._barsTimes.length-1?(0,s.ensureNotNull)(this._lastRealBarTimeMs):this._futureBarsCache[t]}}if(0===this._barsTimes.length)return null!==this._firstRealBarTimeMs&&this._firstRealBarTimeMs<=e||null!==this._lastRealBarTimeMs&&e<=this._lastRealBarTimeMs?{index:0,timeMs:(0,s.ensureNotNull)(this._timeOfBarIndex(0)).timeMs}:null;let t=(0,r.lowerbound_int)(this._barsTimes,e);return this._barsTimes[t]!==e&&(t-=1),{index:t,timeMs:this._barsTimes[t]}}setMinFutureBarsCount(e){this._minFutureBarsCount=e,0!==this._barsTimes.length&&this._ensureExtrapolatedToFutureBar(e)}ensureExtrapolatedToFutureTime(e){this._ensureExtrapolatedToFutureTime(e)}_setLastRealBarTime(e){const t=this._futureBarsCache.length,i=(0,r.upperbound_int)(this._futureBarsCache,e);0===i?this._extendFutureCacheToTimeFromLeft(e):(this._lastRealBarTimeMs=e,this._futureBarsCache=this._futureBarsCache.slice(i)),this._ensureExtrapolatedToFutureBar(Math.max(t,this._minFutureBarsCount))}_timeOfBarIndex(e){var t;if(e<0){const t=Math.abs(e);this._ensureExtrapolatedToHistoryBar(t);const i=this._historyBarsCache.length-t;return i<0?null:{timeMs:this._historyBarsCache[i],exact:!1}}if(0===e&&0===this._barsTimes.length)return{timeMs:(0,s.ensureNotNull)(null!==(t=this._firstRealBarTimeMs)&&void 0!==t?t:this._lastRealBarTimeMs),exact:!1};if(e>=this._barsTimes.length){const t=e-Math.max(1,this._barsTimes.length);return this._ensureExtrapolatedToFutureBar(t+1),t>=this._futureBarsCache.length?null:{timeMs:this._futureBarsCache[t],exact:!1}}return{timeMs:this._barsTimes[e],exact:e=e)return;if((0,s.assert)(0===this._barsTimes.length,"bars should be empty"),this._firstRealBarTimeMs=e,0===this._historyBarsCache.length)return;const t=(0, +o.extrapolateBarsFrontToTime)(this._barBuilder,this._historyBarsCache[this._historyBarsCache.length-1],e-1,this._extrapolateLimit,!0).times;this._historyBarsCache=this._historyBarsCache.concat(t)}_ensureExtrapolatedToFutureBar(e){return!(this._futureBarsCache.length>=e||l(this._futureBarsCache,this._extrapolateLimit))&&this._extendFutureCacheFromRight(((t,i)=>(0,o.extrapolateBarsFrontByCount)(this._barBuilder,t,e-i,!0).times))}_ensureExtrapolatedToFutureTime(e){null!==this._lastRealBarTimeMs&&this._lastRealBarTimeMs>=e||l(this._futureBarsCache,this._extrapolateLimit)||0!==this._futureBarsCache.length&&this._futureBarsCache[this._futureBarsCache.length-1]>=e||(this._extendFutureCacheFromRight(((t,i)=>(0,o.extrapolateBarsFrontToTime)(this._barBuilder,t,e,this._extrapolateLimit,!0).times)),this._futureBarsCache[this._futureBarsCache.length-1]=e||l(this._historyBarsCache,this._extrapolateLimit)||this._extendHistoryCacheFromLeft(((t,i)=>(0,o.extrapolateBarsFrontByCount)(this._barBuilder,t,-(e-i),!0).times.reverse()))}_ensureExtrapolatedToHistoryTime(e){null!==this._firstRealBarTimeMs&&this._firstRealBarTimeMs<=e||l(this._historyBarsCache,this._extrapolateLimit)||0!==this._historyBarsCache.length&&this._historyBarsCache[0]<=e||(this._extendHistoryCacheFromLeft(((t,i)=>{const s=(0,o.extrapolateBarsFrontToTime)(this._barBuilder,t-1,e-1,this._extrapolateLimit,!0).times;return s[s.length-1]===t?s.slice(0,-1):s})),(0===this._historyBarsCache.length||this._historyBarsCache[0]>e)&&this._ensureExtrapolatedToHistoryBar(this._historyBarsCache.length+1))}}},7276:(e,t,i)=>{"use strict";i.d(t,{backend:()=>s});const s=i(91612)},67049:(e,t,i)=>{"use strict";i.d(t,{defaultWatchlistSymbols:()=>n,setDefaultWatchlistSymbols:()=>o});var s=i(2484);let r=[];function n(){return s.enabled("uppercase_instrument_names")?r.map((e=>e.toUpperCase())):r}function o(e){r=e}},61536:(e,t,i)=>{"use strict";i.d(t,{HandlerInfo:()=>s});class s{constructor(e,t){this.handler=e,this.customId=t}}},45673:(e,t,i)=>{"use strict";var s,r;function n(e,t){return"period-back"===e.type&&"period-back"===t.type?e.value===t.value:"time-range"===e.type&&"time-range"===t.type&&(e.from===t.from&&e.to===t.to)}i.d(t,{TIMEFRAMETYPE:()=>r,areEqualTimeFrames:()=>n}),function(e){e.extractErrorReason=function(e){return e.params[1]}}(s||(s={})),function(e){e.PeriodBack="period-back",e.TimeRange="time-range"}(r||(r={}))},51368:()=>{"use strict";TradingView.Pro=function(){this.hasPackage=function(){return!1}},window.user={is_pro:!1,settings:{}},TradingView.Pro.prototype.isPaidPro=function(){return!1},TradingView.Pro.prototype.isSupportAvailable=function(){return!1},TradingView.Pro.prototype.getProduct=function(){return{}},TradingView.Pro.prototype.getStudiesOrder=function(){return[]}},58196:(e,t,i)=>{"use strict";i.r(t),i.d(t,{QuoteCache:()=>r,QUOTE_FIELDS:()=>n,QUOTE_FIELDS_CACHE:()=>o});var s=i(50151);class r{constructor(e){this._cache=new Map, +this._fields=[...e.fields]}update(e,t,i){const r=(0,s.ensureDefined)(e.symbolname);if(this._cache.has(r)||this._cache.set(r,{symbolname:r,status:e.status,values:{}}),"error"===e.status)return;const n=(0,s.ensureDefined)(this._cache.get(r));n.status=e.status;for(const s of this._fields)t.has(s)&&(i||void 0!==e.values[s])&&(n.values[s]=e.values[s])}get(e){var t;return null!==(t=this._cache.get(e))&&void 0!==t?t:null}fields(){return this._fields}}const n=new Set(["pro_name","base_name","logoid","currency-logoid","base-currency-logoid","short_name","description","exchange","listed_exchange","type","country_code","provider_id","sector","typespecs","industry","currency_id","last_price","fractional","minmov","minmove2","pricescale","change","change_percent","volume","average_volume","market_cap_basic","total_revenue","earnings_per_share_basic_ttm","price_earnings_ttm","beta_1_year","dps_common_stock_prim_issue_fy","dividends_yield","earnings_release_next_date","earnings_per_share_forecast_next_fq","earnings_release_date","earnings_per_share_fq","fundamental_currency_code","symbol-primaryname","currency_code","rates_mc","rates_fy","rates_ttm","value_unit_id","update_mode","language","local_description","short_description","source","source2","format","recommendation_mark","last_report_frequency"]),o=new r({fields:n})},36776:(e,t,i)=>{"use strict";i.d(t,{getQuoteSessionInstance:()=>o,destroyQuoteSessions:()=>a});var s=i(45249),r=i.n(s);const n={};function o(e="full"){return n[e]||function(e="full",t){n[e]=t}(e,new(r())(e)),n[e]}function a(){for(const e in n)if(n.hasOwnProperty(e)){const t=n[e];void 0!==t&&t.destroy(),delete n[e]}}},86856:(e,t,i)=>{"use strict";i.d(t,{QuoteSession:()=>r});var s=i(68671);class r{constructor(e,t=(0,s.randomHash)()){this._sessionstarted=!1,this._globalHandler=null,this._chartApi=e,this._sessionid="qs_"+t}destroy(){this._sessionstarted&&(this._chartApi.quoteDeleteSession(this._sessionid),this._sessionstarted=!1)}connected(){return this._chartApi.connected()}connect(e){this._globalHandler=e,this._chartApi.createSession(this._sessionid,this),this._chartApi.connect()}disconnect(){this._chartApi.disconnect()}quoteAddSymbols(e){this._chartApi.quoteAddSymbols(this._sessionid,e)}quoteRemoveSymbols(e){this._chartApi.quoteRemoveSymbols(this._sessionid,e)}quoteFastSymbols(e){this._chartApi.quoteFastSymbols(this._sessionid,e)}quoteSetFields(e){this._chartApi.quoteSetFields(this._sessionid,e)}onMessage(e){var t;switch(e.method){case"connected":this._sessionstarted||(this._chartApi.quoteCreateSession(this._sessionid),this._sessionstarted=!0);break;case"disconnected":this._sessionstarted=!1}null===(t=this._globalHandler)||void 0===t||t.call(this,e)}quoteHibernateAll(){this._chartApi.quoteHibernateAll(this._sessionid)}}window.TradingView.QuoteSession=r},45249:(e,t,i)=>{"use strict";e=i.nmd(e);var s=i(26867),r=i(43370).default,n=i(4889).default,o=i(74599).PriceFormatter;const{uniq:a}=i(21095);var l=i(68671);const{normalizeUpdateMode:c}=i(5370);var h=i(933).deepExtend +;const{QUOTE_FIELDS_CACHE:d,QUOTE_FIELDS:u}=i(58196);var p;function _(e,t){this.options=Object.assign({throttleTimeout:125},t),this._connected=!1,this._symbol_data={},this._subscriptions={},this.onConnect=new s,this.onDisconnect=new s,this._quoteApi=new p(window.ChartApiInstance),this._type=e||"full",this._delayUpdateFastSymbols=n(this._updateFastSymbols,250),this._throttledSymbolData={},this._formatterValuesCache={},this._waitingForFormatters={},this._snapshotValuesCache={},this._waitingForSnapshot={},this.connect()}p=i(86856).QuoteSession,_.prototype.destroy=function(){this._quoteApi.destroy(),this._quoteApi=null,this._connected=!1,this.onDisconnect.fire()},_.prototype.typeFields={},_.prototype.typeFields.simple=["base-currency-logoid","ch","chp","currency-logoid","currency_code","currency_id","base_currency_id","current_session","description","exchange","format","fractional","is_tradable","language","local_description","listed_exchange","logoid","lp","lp_time","minmov","minmove2","original_name","pricescale","pro_name","short_name","type","typespecs","update_mode","volume","value_unit_id"],_.prototype.typeFields.simpleDetailed=[].concat(_.prototype.typeFields.simple,["ask","bid","fundamentals","high_price","is_tradable","low_price","open_price","prev_close_price","rch","rchp","rtc","rtc_time","status","basic_eps_net_income","beta_1_year","earnings_per_share_basic_ttm","industry","market_cap_basic","price_earnings_ttm","sector","volume","dividends_yield","timezone"]),_.prototype.typeFields.full=[],_.prototype.typeFields.watchlist=[].concat(_.prototype.typeFields.simple,["rchp","rtc","country_code","provider_id"]),_.prototype.typeFields.portfolio=["pro_name","short_name","exchange","listed_exchange","description","sector","type","typespecs","industry","currency_code","currency_id","ch","chp","logoid","currency-logoid","base-currency-logoid","earnings_per_share_forecast_next_fq","earnings_release_next_date","earnings_release_date","earnings_per_share_fq","lp","fractional","minmov","minmove2","pricescale","volume","average_volume","market_cap_basic","total_revenue","earnings_per_share_basic_ttm","price_earnings_ttm","beta_1_year","dps_common_stock_prim_issue_fy","dividends_yield","fundamental_currency_code","rates_mc","rates_fy","rates_ttm","format"],_.prototype.typeFields.notes=["short_name","pro_name","logoid","currency-logoid","base-currency-logoid","symbol-primaryname","type","typespecs"],_.prototype.connect=function(e){this._quoteApi.connect(this.quoteHandler.bind(this))},_.prototype.quoteHandler=function(e){var t=e.method,i=e.params;switch(t){case"connected":this._connected||(this._connected=!0,this.onConnected());break;case"quote_list_fields":break;case"quote_symbol_data":this._connected&&this.onSymbolData(i[0]);break;case"quote_completed":this._connected&&this.onSymbolData({symbolname:i[0],complete:performance.now(),values:{}});break;case"disconnected":this._connected&&(this._connected=!1,this.onDisconnect.fire())}},_.prototype.onConnected=function(){this.setFields();var e=Object.keys(this._symbol_data) +;e.length&&(this._quoteApi.quoteAddSymbols(e),this._delayUpdateFastSymbols()),this.onConnect.fire()},_.prototype.setFields=function(){var e=_.prototype.typeFields[this._type];e&&e.length&&this._quoteApi.quoteSetFields(e)},_.prototype.onSymbolData=function(e){try{e.status&&d.update(e,u,!1)}catch(e){}var t=e.symbolname,i=this._throttledSymbolData[t];i||(i=this._throttledSymbolData[t]={fnDispatch:r(this.dipatchSymbolData.bind(this),this.options.throttleTimeout)}),i.cache?h(i.cache,e):i.cache=e,i.fnDispatch(t)},_.prototype._parseUpdateMode=function(e){c(e)},_.prototype.dipatchSymbolData=function(e){var t=this._symbol_data[e],i=this._throttledSymbolData[e].cache;if(delete this._throttledSymbolData[e].cache,this._symbol_data[e])for(var s in h(t,i),t.values&&this._parseUpdateMode(t.values),this._subscriptions){var r=this._subscriptions[s];r.has(e)&&r.get(e).forEach((function(e){e(t,i)}))}},_.prototype.subscribe=function(e,t,i){this._subscriptions[e]=this._subscriptions[e]||new Map;var s=this._subscriptions[e];t=[].concat(t);var r=[];t.forEach((function(e){this._symbol_data[e]?s&&s.has(e)||this._symbol_data[e].subscribers_count++:(this._symbol_data[e]={subscribers_count:1},r.push(e)),s.has(e)||s.set(e,[]),s.get(e).push(i),s.get(e).fast=!0,this._symbol_data[e]&&this._symbol_data[e].values&&i(this._symbol_data[e],this._symbol_data[e])}),this),r.length&&this._connected&&(this._quoteApi.quoteAddSymbols(r),this._delayUpdateFastSymbols())},_.prototype.unsubscribe=function(e,t,i){t=[].concat(t);for(var s=this._subscriptions[e],r=[],n=0;n{"use strict";function s(e,t,i){const s=e.get(t);return void 0!==s?s:(e.set(t,i),i)}function r(e,t,i){const s=e.get(t);if(void 0!==s)return s;const r=i();return e.set(t,r),r}function n(e,t,i,n){return r(s(e,t,new Map),i,n)}function o(e,t,i,r,n){const o=s(e,t,new Map),a=s(o,i,new Map);return s(a,r,n)}i.d(t,{getDefault2Lazy:()=>n,getDefault3:()=>o,AbstractMapContainer:()=>a});class a{constructor(){this._map=new Map,this._size=0}size(){return this._size}clear(){this._map.clear(),this._size=0}}},93975:(e,t,i)=>{"use strict";i.r(t),i.d(t,{lowerboundExt:()=>n,lowerbound:()=>o,lowerbound_int:()=>a,upperbound:()=>l,upperbound_int:()=>c,subtract:()=>h,moveToHead:()=>d,moveAfter:()=>u,moveBefore:()=>p,intersect:()=>_,removeItemFromArray:()=>m});var s=i(50151);function r(e,t){return e>1,o=s+r;i(e(o),t)?(s=o+1,n-=r+1):n=r}return s}function o(e,t,i,s=0,r=e.length){return n((t=>e[t]),t,i,s,r)}function a(e,t,i=0,s=e.length){return o(e,t,r,i,s)}function l(e,t,i,s=0,r=e.length){let n=r-s;for(;0>1,o=s+r;i(t,e[o])?n=r:(s=o+1,n-=r+1)}return s}function c(e,t,i=0,s=e.length){return l(e,t,r,i,s)}function h(e,t){return e.filter((e=>!t.includes(e)))}function d(e,t){const i=e.indexOf(t);return i<0?e.slice():[t].concat(e.slice(0,i)).concat(e.slice(i+1))}function u(e,t,i){const s=new Set(t),r=[],n=[],o=[];return e.forEach(((e,t)=>{s.has(e)?n.push(e):(r.push(e),o.push(t))})),i=i{s.has(e)?n.push(e):(r.push(e),o.push(t))})),i=i<=e.length-1?a(o,i):r.length,r.splice(i,0,...n),{newItems:r,movedItemsStartIndex:i}}function _(e,t){const i=new Set;return e.forEach((e=>{t.has(e)&&i.add(e)})),i}function m(e,t){const i=e.indexOf(t);(0,s.assert)(-1!==i,"Item is not found"),e.splice(i,1)}},32769:(e,t,i)=>{"use strict";var s=i(84917),r=i(2542).tzData;let n;function o(e){this._name=e;var t=r[e];if(!t&&n&&(t=n.instance().getTimezoneData(e)),t||(t={time:[],offset:[]},this._invalid=!0),t.time.length!==t.offset.length&&(t={time:[],offset:[]}, +this._invalid=!0),!t.time_utc){for(var i=t.time,s=t.offset,o=i.length,a=new Array(o),l=0;lt){if((r=n-1)0&&e-t[s-1]<=r)return r;return 0},o.prototype.is_valid=function(){return!this._invalid},o._offset=function(e,t,i){var s=a(e,i);return-1===s?0:t[s]};var l=function(e){return 0|e},c=function(e){return 60*e*1e3},h=function(e,t){return d(e)-d(t)},d=function(e){return e<0?l(e/1e3)-(e%1e3!=0?1:0):l(e/1e3)};function u(e){return e%4==0&&(e%100!=0||e%400==0)}var p={0:0,1:31,2:59,3:90,4:120,5:151,6:181,7:212,8:243,9:273,10:304,11:334},_={...s.WeekDays,...s.Months,YEAR:1,MONTH:2,WEEK_OF_YEAR:3,DAY_OF_MONTH:5,DAY_OF_YEAR:6,DAY_OF_WEEK:7,HOUR_OF_DAY:11,MINUTE:12,SECOND:13,minutesPerDay:1440,millisecondsPerDay:c(1440),get_minutes_from_hhmm:function(e){return-1!==e.indexOf(":")&&(e=e.split(":").join("")),e%100+60*l(e/100)},get_year:function(e){return e.getUTCFullYear()},get_month:function(e){return e.getUTCMonth()},get_hours:function(e){return e.getUTCHours()},get_minutes:function(e){return e.getUTCMinutes()},get_seconds:function(e){return e.getUTCSeconds()},get_day_of_month:function(e){return e.getUTCDate()},get_day_of_week:function(e){return e.getUTCDay()+1},get_day_of_year:function(e){var t=e.getUTCMonth(),i=p[t];return t>_.JANUARY+1&&u(e.getUTCFullYear())&&(i+=1),i+e.getUTCDate()},get_week_of_year:function(e){var t=new Date(Date.UTC(e.getUTCFullYear(),0,1)).getUTCDay(),i=0===t?1:8-t,s=_.get_day_of_year(e)-i;return Math.ceil(s/7)+1},get_minutes_from_midnight:function(e){return 60*_.get_hours(e)+_.get_minutes(e)},set_hms:function(e,t,i,s,r,n){e.setUTCHours(t),e.setUTCMinutes(i),e.setUTCSeconds(s),e.setUTCMilliseconds(r),void 0!==n&&_.correct_time(e,n)},correct_time:function(e,t){var i=e.getTime(),s=t.correction_loc(i);e.setTime(i+s)},add_days_considering_dst:function(e,t,i){var s=e.offset_utc(t),r=this.clone(t);this.add_date(r,i);var n=e.offset_utc(r);return r.setTime(r.getTime()+s-n),r},add_date:function(e,t){e.setTime(e.getTime()+t*_.millisecondsPerDay)},add_minutes:function(e,t){e.setTime(e.getTime()+c(t))},clone:function(e){return new Date(e.getTime())},get_days_per_year:function(e){var t=e.getUTCFullYear();return this.days_per_year(t)},days_per_year:function(e){return u(e)?366:365},get_days_in_month:function(e,t){let i;switch(e){case 0:case 2:case 4:case 6:case 7:case 9:case 11:i=31;break;case 1:i=28,u(t)&&i++;break;default:i=30}return i},get_part:function(e,t){switch(t){case _.YEAR:return _.get_year(e);case _.MONTH: +return _.get_month(e);case _.DAY_OF_MONTH:return _.get_day_of_month(e);case _.WEEK_OF_YEAR:return _.get_week_of_year(e);case _.DAY_OF_WEEK:return _.get_day_of_week(e);case _.HOUR_OF_DAY:return _.get_hours(e);case _.MINUTE:return _.get_minutes(e);case _.DAY_OF_YEAR:return _.get_day_of_year(e);case _.SECOND:return _.get_seconds(e);default:return e.getTime()}},time_minutes:c,time_seconds:function(e){return 1e3*e},time_minutes_diff:function(e,t){return l(h(e,t)/60)},time_seconds_diff:h,utc_to_cal:function(e,t){return new Date(_.utc_to_cal_ts(e,t))},utc_to_cal_ts:function(e,t){return t+e.offset_utc(t)},get_cal:function(e,t,i,s,r,n,o){var a=new Date(Date.UTC(t,i,s,r||0,n||0,o||0)),l=e.offset_utc(+a);return new Date(a.valueOf()-l)},get_cal_from_unix_timestamp_ms:function(e,t){return new Date(t+e.offset_utc(t))},get_cal_utc:function(e,t,i){return new Date(Date.UTC(e,t,i))},cal_to_utc:function(e,t){var i=t.getTime();return i-e.offset_loc(i)},get_timezone:function(e){return new o(e)},shift_day:function(e,t){var i=e-1;return(i+=t)>6?i%=7:i<0&&(i=(7+i%7)%7),i+1},setCustomTimezones:function(e){n=e}};e.exports=_},53479:(e,t,i)=>{"use strict";i.r(t),i.d(t,{LINESTYLE_SOLID:()=>s,LINESTYLE_DOTTED:()=>r,LINESTYLE_DASHED:()=>n,LINESTYLE_LARGE_DASHED:()=>o,LINESTYLE_SPARSE_DOTTED:()=>a,LINESTYLE_SMALL_DASHED:()=>l});const s=0,r=1,n=2,o=3,a=4,l=5},7019:(e,t,i)=>{"use strict";i.d(t,{combineWithFilteredUpdate:()=>o,combine:()=>a});var s=i(40549),r=i.n(s);function n(e,t,...i){const s=(...t)=>e(...t.map((e=>e.value()))),n=new(r())(s(...i)),o=()=>{t(...i.map((e=>e.value())))&&n.setValue(s(...i))},a=i.map((e=>e.spawn()));for(const e of a)e.subscribe(o);return n.readonly().spawn((()=>a.forEach((e=>e.destroy()))))}function o(e,t,...i){return n(e,t,...i)}function a(e,...t){return n(e,(()=>!0),...t)}},20364:(e,t,i)=>{"use strict";i.r(t),i.d(t,{availableTimezones:()=>l,updateAvailableTimezones:()=>d,timezoneIsAvailable:()=>u,timezoneIsSupported:()=>p,timezoneTitle:()=>_});var s=i(44352),r=i(43925);const n=[{id:"Etc/UTC",title:s.t(null,void 0,i(50406))},{id:"exchange",title:s.t(null,void 0,i(77295))}],o=[{id:"Africa/Cairo",title:s.t(null,void 0,i(94099)),offset:0},{id:"Africa/Johannesburg",title:s.t(null,void 0,i(87469)),offset:0},{id:"Africa/Lagos",title:s.t(null,void 0,i(89155)),offset:0},{id:"Africa/Nairobi",title:s.t(null,void 0,i(79023)),offset:0},{id:"Africa/Tunis",title:s.t(null,void 0,i(93855)),offset:0},{id:"America/Argentina/Buenos_Aires",title:s.t(null,void 0,i(82446)),offset:0},{id:"America/Bogota",title:s.t(null,void 0,i(54173)),offset:0},{id:"America/Caracas",title:s.t(null,void 0,i(46837)),offset:0},{id:"America/Chicago",title:s.t(null,void 0,i(28244)),offset:0},{id:"America/El_Salvador",title:s.t(null,void 0,i(68553)),offset:0},{id:"America/Juneau",title:s.t(null,void 0,i(36253)),offset:0},{id:"America/Lima",title:s.t(null,void 0,i(25846)),offset:0},{id:"America/Los_Angeles",title:s.t(null,void 0,i(87604)),offset:0},{id:"America/Mexico_City",title:s.t(null,void 0,i(85095)),offset:0},{id:"America/New_York", +title:s.t(null,void 0,i(91203)),offset:0},{id:"America/Phoenix",title:s.t(null,void 0,i(19093)),offset:0},{id:"America/Santiago",title:s.t(null,void 0,i(65412)),offset:0},{id:"America/Sao_Paulo",title:s.t(null,void 0,i(13538)),offset:0},{id:"America/Toronto",title:s.t(null,void 0,i(83836)),offset:0},{id:"America/Vancouver",title:s.t(null,void 0,i(15771)),offset:0},{id:"US/Mountain",title:s.t(null,void 0,i(57701)),offset:0},{id:"Asia/Almaty",title:s.t(null,void 0,i(14452)),offset:0},{id:"Asia/Ashkhabad",title:s.t(null,void 0,i(59340)),offset:0},{id:"Asia/Bahrain",title:s.t(null,void 0,i(53260)),offset:0},{id:"Asia/Bangkok",title:s.t(null,void 0,i(32376)),offset:0},{id:"Asia/Chongqing",title:s.t(null,void 0,i(49648)),offset:0},{id:"Asia/Colombo",title:s.t(null,void 0,i(15168)),offset:0},{id:"Asia/Dubai",title:s.t(null,void 0,i(22429)),offset:0},{id:"Asia/Ho_Chi_Minh",title:s.t(null,void 0,i(87338)),offset:0},{id:"Asia/Hong_Kong",title:s.t(null,void 0,i(32918)),offset:0},{id:"Asia/Jakarta",title:s.t(null,void 0,i(52707)),offset:0},{id:"Asia/Jerusalem",title:s.t(null,void 0,i(42890)),offset:0},{id:"Asia/Karachi",title:s.t(null,void 0,i(2693)),offset:0},{id:"Asia/Kathmandu",title:s.t(null,void 0,i(3155)),offset:0},{id:"Asia/Kolkata",title:s.t(null,void 0,i(16245)),offset:0},{id:"Asia/Kuwait",title:s.t(null,void 0,i(72374)),offset:0},{id:"Asia/Manila",title:s.t(null,void 0,i(90271)),offset:0},{id:"Asia/Muscat",title:s.t(null,void 0,i(42769)),offset:0},{id:"Asia/Nicosia",title:s.t(null,void 0,i(33566)),offset:0},{id:"Asia/Qatar",title:s.t(null,void 0,i(19056)),offset:0},{id:"Asia/Riyadh",title:s.t(null,void 0,i(52588)),offset:0},{id:"Asia/Seoul",title:s.t(null,void 0,i(5961)),offset:0},{id:"Asia/Shanghai",title:s.t(null,void 0,i(69240)),offset:0},{id:"Asia/Singapore",title:s.t(null,void 0,i(56683)),offset:0},{id:"Asia/Taipei",title:s.t(null,void 0,i(38788)),offset:0},{id:"Asia/Tehran",title:s.t(null,void 0,i(16267)),offset:0},{id:"Asia/Tokyo",title:s.t(null,void 0,i(94284)),offset:0},{id:"Asia/Yangon",title:s.t(null,void 0,i(69293)),offset:0},{id:"Atlantic/Reykjavik",title:s.t(null,void 0,i(26833)),offset:0},{id:"Australia/Adelaide",title:s.t(null,void 0,i(17365)),offset:0},{id:"Australia/Brisbane",title:s.t(null,void 0,i(11741)),offset:0},{id:"Australia/Perth",title:s.t(null,void 0,i(35590)),offset:0},{id:"Australia/Sydney",title:s.t(null,void 0,i(11020)),offset:0},{id:"Europe/Amsterdam",title:s.t(null,void 0,i(88010)),offset:0},{id:"Europe/Athens",title:s.t(null,void 0,i(21983)),offset:0},{id:"Europe/Belgrade",title:s.t(null,void 0,i(54861)),offset:0},{id:"Europe/Berlin",title:s.t(null,void 0,i(26825)),offset:0},{id:"Europe/Bratislava",title:s.t(null,void 0,i(5262)),offset:0},{id:"Europe/Brussels",title:s.t(null,void 0,i(90204)),offset:0},{id:"Europe/Bucharest",title:s.t(null,void 0,i(37728)),offset:0},{id:"Europe/Budapest",title:s.t(null,void 0,i(87143)),offset:0},{id:"Europe/Copenhagen",title:s.t(null,void 0,i(43432)),offset:0},{id:"Europe/Dublin",title:s.t(null,void 0,i(9497)),offset:0},{id:"Europe/Helsinki", +title:s.t(null,void 0,i(99820)),offset:0},{id:"Europe/Istanbul",title:s.t(null,void 0,i(37885)),offset:0},{id:"Europe/Lisbon",title:s.t(null,void 0,i(50091)),offset:0},{id:"Europe/London",title:s.t(null,void 0,i(50286)),offset:0},{id:"Europe/Luxembourg",title:s.t(null,void 0,i(64352)),offset:0},{id:"Europe/Madrid",title:s.t(null,void 0,i(58038)),offset:0},{id:"Europe/Malta",title:s.t(null,void 0,i(34190)),offset:0},{id:"Europe/Moscow",title:s.t(null,void 0,i(18665)),offset:0},{id:"Europe/Oslo",title:s.t(null,void 0,i(82906)),offset:0},{id:"Europe/Paris",title:s.t(null,void 0,i(95995)),offset:0},{id:"Europe/Riga",title:s.t(null,void 0,i(5871)),offset:0},{id:"Europe/Rome",title:s.t(null,void 0,i(74214)),offset:0},{id:"Europe/Stockholm",title:s.t(null,void 0,i(48767)),offset:0},{id:"Europe/Tallinn",title:s.t(null,void 0,i(39108)),offset:0},{id:"Europe/Vilnius",title:s.t(null,void 0,i(75354)),offset:0},{id:"Europe/Warsaw",title:s.t(null,void 0,i(48474)),offset:0},{id:"Europe/Zurich",title:s.t(null,void 0,i(84301)),offset:0},{id:"Pacific/Auckland",title:s.t(null,void 0,i(24143)),offset:0},{id:"Pacific/Chatham",title:s.t(null,void 0,i(59884)),offset:0},{id:"Pacific/Fakaofo",title:s.t(null,void 0,i(20466)),offset:0},{id:"Pacific/Honolulu",title:s.t(null,void 0,i(61351)),offset:0},{id:"Pacific/Norfolk",title:s.t(null,void 0,i(99203)),offset:0}];function a(e,t,i){const s=function(e){return e.map((({id:e,title:t})=>{const{string:i,offset:s}=(0,r.parseTzOffset)(e);return{id:e,offset:s,title:`(${i}) ${t}`}}))}(e),n=i.filter((({alias:e})=>Boolean(e))).map((({title:e,alias:t,id:i})=>{const{string:s,offset:n}=(0,r.parseTzOffset)(t);return{id:i,offset:n,title:`(${s}) ${e}`,alias:t}})),o=function(e){return e.sort(((e,t)=>{const i=e.offset-t.offset;return 0!==i?i:e.title.localeCompare(t.title)}))}(s.concat(n));return t.concat(o)}const l=a(o,n,[]),c=new Map;l.forEach((e=>{c.set(e.id,!0)}));const h=new Map;n.concat(o).forEach((e=>{h.set(e.id,!0)}));const d=e=>{l.splice(0,l.length,...a(o,n,e)),l.forEach((e=>{c.set(e.id,!0)}))};function u(e){return c.has(e)}function p(e){return h.get(e)||!1}function _(e){for(const{id:t,title:i}of o)if(t===e){return`${i} (${(0,r.parseTzOffset)(e).string})`}return e}},26867:(e,t,i)=>{"use strict";e=i.nmd(e);const s=i(98351).getLogger("Common.Delegate");function r(){this._listeners=[]}function n(e){return!e.singleshot}r.prototype.subscribe=function(e,t,i){const s={object:e,member:t,singleshot:!!i,skip:!1};this._listeners.push(s)},r.prototype.unsubscribe=function(e,t){for(let i=0;i=0;--t){const i=this._listeners[t];i.object===e&&(i.skip=!0,this._listeners.splice(t,1))}},r.prototype.destroy=function(){delete this._listeners},r.prototype.fire=function(){const e=this._listeners;this._listeners=this._listeners.filter(n);const t=e.length;for(let i=0;i{"use strict";i.d(t,{getImage:()=>n});const s=new Map;function r(e){e.crossOrigin="anonymous"}function n(e,t,i=r){let n=s.get(e);return void 0===n&&(n=new Promise(((e,s)=>{const r=new Image;r.onload=()=>{e(r),r.onload=null,r.onerror=null},r.onerror=()=>{s(),r.onload=null,r.onerror=null},i(r),r.src=t})),s.set(e,n)),n}},91031:(e,t,i)=>{"use strict";function s(e,t){return e<=t}function r(e,t){return e>=t}function n(e,t,i){return Math.min(Math.max(e,t),i)}function o(e){return e<0?-1:e>0?1:0}function a(e){if(e<0)return!1;if(e>1e18)return!0;for(let t=e;t>1;t/=10)if(t%10!=0)return!1;return!0}function l(e,t,i){return t-e<=i}function c(e,t,i){return Math.abs(e-t)t?1:0}function u(e,t=d){if(e.length<1)throw Error("array is empty");let i=e[0];for(let s=0;s0&&(i=e[s]);return i}function _(e){const t=Math.ceil(e);return t%2!=0?t-1:t}function m(e){return e>0?Math.floor(e):Math.ceil(e)}i.r(t),i.d(t,{lessThan:()=>s,greaterThan:()=>r,clamp:()=>n,sign:()=>o,isBaseDecimal:()=>a,greaterOrEqual:()=>l,equal:()=>c,log10:()=>h,defComparator:()=>d,min:()=>u,max:()=>p,ceiledEven:()=>_,toInt:()=>m})},43925:(e,t,i)=>{"use strict";i.d(t,{parseTzOffset:()=>r});var s=i(32769);function r(e,t=Date.now()){const i=(0,s.get_timezone)(e).offset_utc(t);let r="";const n=i/1e3/60/60;n%1&&(r=":"+Math.round(Math.abs(n%1*60)).toString().padStart(2,"0"));let o="";return o=n>0?"+"+(n-n%1)+r:0===n?"":String(n-n%1+r),{offset:i,string:"UTC"+o}}},83232:(e,t,i)=>{"use strict";var s=i(2484),r=[{d:"E-Mini S&P 500",t:"ES"},{d:"E-Mini Nasdaq 100",t:"NQ"},{d:"Gold",t:"GC"},{d:"Silver",t:"SI"},{d:"Crude Oil WTI",t:"CL"},{d:"Natural Gas",t:"NG"},{d:"Australian Dollar",t:"6A"},{d:"Australian Dollar (Floor)",t:"AD"},{d:"Euro FX",t:"6E"},{d:"Euro FX (Floor)",t:"EC"},{d:"Corn",t:"ZC"},{d:"Corn (Floor)",t:"C"},{d:"Eurodollar",t:"GE"},{d:"Eurodollar (Floor)",t:"ED"}],n=function(){var e=[{pattern:"(",ctor:o},{pattern:")",ctor:a},{pattern:"+",ctor:c},{pattern:"-",ctor:h},{pattern:"*",ctor:d},{pattern:"/",ctor:u},{pattern:"^",ctor:p},{pattern:/\d+(?:\.\d*|(?![a-zA-Z0-9_!:.&]))|\.\d+/,ctor:f},{pattern:/\./,ctor:y},{pattern:s.enabled("charting_library_base")?/[a-zA-Z0-9_\u0370-\u1FFF_\u2E80-\uFFFF^][a-zA-Z0-9_\u0020\u0370-\u1FFF_\u2E80-\uFFFF_!:.&]*|'.+?'/:/[a-zA-Z0-9_\u0370-\u1FFF_\u2E80-\uFFFF][a-zA-Z0-9_\u0020\u0370-\u1FFF_\u2E80-\uFFFF_!|:.&]*|'.+?'/,ctor:g},{pattern:/'[^']*/,ctor:S},{pattern:/[\0-\x20\s]+/,ctor:n}];function t(e,t){var i=function(){};return i.prototype=t.prototype,e.prototype=new i,e}function i(){}function n(e){this.value=e}function o(){}function a(){}function l(){}function c(){}function h(){}function d(){}function u(){}function p(){} +i.prototype.toString=function(){return this.value},t(n,i),t(o,i),o.prototype.value="(",t(a,i),a.prototype.value=")",t(l,i),t(c,l),c.prototype.value="+",c.prototype.precedence=0,c.prototype.commutative=!0,t(h,l),h.prototype.value="-",h.prototype.precedence=0,h.prototype.commutative=!1,t(d,l),d.prototype.value="*",d.prototype.precedence=1,d.prototype.commutative=!0,t(u,l),u.prototype.value="/",u.prototype.precedence=1,u.prototype.commutative=!1,t(p,l),p.prototype.value="^",p.prototype.precedence=2,p.prototype.commutative=!1;var _=/^'?(?:([A-Z0-9_]+):)?(.*?)'?$/i,m=/[+\-/*]/;function g(e){this.value=e}function f(e){this.value=e}function v(e){this.value=e}function S(){g.apply(this,arguments)}function y(){f.apply(this,arguments)}t(g,i),g.prototype.toString=function(){if(this.hasOwnProperty("_ticker")){var e=m.test(this._ticker)?"'":"";return e+(this._exchange?this._exchange+":":"")+this._ticker+e}return this.value},g.prototype.parse=function(){var e=_.exec(this.value);e[1]&&(this._exchange=e[1]),this._ticker=e[2]},g.prototype.parseAsFutures=function(){this.hasOwnProperty("_ticker")||this.parse();for(var e=function(e){return r.some((function(t){return t.t===e}))},t=2;t>=1;--t){var i=this._ticker.slice(0,t);if(e(i)){this._root=i,this._contract=this._ticker.slice(t);break}}},g.prototype.exchange=function(e){if(this.hasOwnProperty("_ticker")||this.parse(),!(arguments.length>0))return this._exchange;null==e?delete this._exchange:this._exchange=e+""},g.prototype.ticker=function(e){if(this.hasOwnProperty("_ticker")||this.parse(),!(arguments.length>0))return this._ticker;null==e?delete this._ticker:this._ticker=e+"",delete this._root,delete this._contract},g.prototype.root=function(e){if(this.hasOwnProperty("_root")||this.parseAsFutures(),!(arguments.length>0))return this._root;null==e?delete this._root:(this._root=e+"",this._root&&(this._ticker=this._root+(this._contract||"")))},g.prototype.contract=function(e){if(this.hasOwnProperty("_contract")||this.parseAsFutures(),!(arguments.length>0))return this._root;null==e?delete this._contract:(this._contract=e+"",this._root&&(this._ticker=this._root+this._contract))},t(f,i),f.prototype.toString=function(){return this.hasOwnProperty("_normalizedValue")?this._normalizedValue:this.value},f.prototype.parse=function(){this._normalizedValue=this.value.replace(/^0+|\.0*$/g,"").replace(/(\.\d*?)0+$/,"$1").replace(/^(\.|$)/,"0$1")},v.prototype.toString=function(){return this.value},t(S,g),S.prototype.isIncomplete=!0,S.prototype.incompleteSuggest=function(){if("'"!==this.value)return String("'")},t(y,f),y.prototype.isIncomplete=!0;var b=new RegExp(e.map((function(e){return"("+("string"==typeof e.pattern?e.pattern.replace(/[\^$()[\]{}*+?|\\]/g,"\\$&"):e.pattern.source)+")"})).concat(".").join("|"),"g");function w(t,i){var s,r=[];e:for(;s=b.exec(t);){for(var o=e.length;o--;)if(s[o+1]){if(e[o].ctor){var a=new e[o].ctor(s[o+1]);a._offset=s.index,r.push(a)}continue e}var l=new v(s[0]);l._offset=s.index,r.push(l)}if(i&&i.recover){var c;for(o=r.length;o--;){var h=r[o] +;if(h instanceof f||h instanceof g){if(void 0!==c){var d=new g(""),u=r.splice(o,c-o+1,d);d.value=u.map((function(e){return e.value})).join("")}c=o}else h instanceof n||(c=void 0)}}return r}function P(e){for(var t=[],i=0;in.precedence&&(s[s.length-1].minPrecedence=n.precedence);else if(n instanceof o)s.push(t={minPrecedence:1/0,openBraceIndex:r});else if(n instanceof a){var c=e[(t=s.pop()).openBraceIndex-1],h=e[r+1];h instanceof l&&!(h.precedence<=t.minPrecedence)||!(!(c instanceof l)||c.precedencet.minPrecedence&&(s[s.length-1].minPrecedence=t.minPrecedence))}}for(r=i.length;r--;)e.splice(i[r],1);return e}function T(e){if("string"!=typeof e)throw new TypeError("expression must be a string");return(e=w(e)).filter((function(e){return e instanceof g})).map((function(e){return e.exchange()})).filter((function(e){return e}))}function x(e){return 1!==(e=T(e)).length?null:e[0]}function I(e,t){return(e=T(e)).some((function(e){return t.includes((e||"").toUpperCase())}))}function M(e){return e.join("")}return{tokenize:w,validate:function(e){if(s.enabled("charting_library_base"))return{currentState:"var"};for(var t="init",i="var",r=t,c={warnings:[],errors:[],isEmpty:!0},h=[],d=0;d{"use strict";i.d(t,{TranslatedString:()=>s});class s{constructor(e,t){this._originalText=e,this._translatedText=t}originalText(){return this._originalText}translatedText(){return this._translatedText}format(e){const t={},i={};for(const r of Object.keys(e)){const n=e[r];n instanceof s?(t[r]=n.originalText(),i[r]=n.translatedText()):(t[r]=n.toString(),i[r]=n.toString())}const r=this._originalText.format(t),n=this._translatedText.format(i);return new s(r,n)}}},2542:e=>{e.exports.tzData={"America/New_York":{ +time:[-2717668562,-1633298400,-1615154400,-1601848800,-1583704800,-1570399200,-1551650400,-1536530400,-1523224800,-1504476e3,-1491775200,-1473026400,-1459720800,-1441576800,-1428271200,-1410127200,-1396821600,-1378677600,-1365372e3,-1347228e3,-1333922400,-1315173600,-1301868e3,-1283724e3,-1270418400,-1252274400,-1238968800,-1220824800,-1207519200,-1189375200,-1176069600,-1157320800,-114462e4,-1125871200,-1112565600,-1094421600,-1081116e3,-1062972e3,-1049666400,-1031522400,-1018216800,-1000072800,-986767200,-968018400,-955317600,-936568800,-923263200,-905119200,-891813600,-880236e3,-76941e4,-765410400,-747266400,-733960800,-715816800,-702511200,-684367200,-671061600,-652917600,-639612e3,-620863200,-608162400,-589413600,-576108e3,-557964e3,-544658400,-526514400,-513208800,-495064800,-481759200,-463615200,-447285600,-431560800,-415836e3,-400111200,-384386400,-368661600,-352936800,-337212e3,-321487200,-305762400,-289432800,-273708e3,-257983200,-242258400,-226533600,-210808800,-195084e3,-179359200,-163634400,-147909600,-13158e4,-11646e4,-100130400,-84405600,-68680800,-52956e3,-37231200,-21506400,-5781600,9943200,25668e3,41392800,57722400,73447200,89172e3,104896800,120621600,126669600,152071200,162352800,183520800,199245600,215575200,230695200,247024800,262749600,278474400,294199200,309924e3,325648800,341373600,357098400,372823200,388548e3,404877600,419997600,436327200,452052e3,467776800,483501600,499226400,514951200,530676e3,544586400,562125600,576036e3,59418e4,607485600,625629600,638935200,657079200,670989600,688528800,702439200,719978400,733888800,752032800,765338400,783482400,796788e3,814932e3,828842400,846381600,860292e3,877831200,891741600,909280800,923191200,941335200,954640800,972784800,986090400,1004234400,1018144800,1035684e3,1049594400,1067133600,1081044e3,1099188e3,1112493600,1130637600,1143943200,1162087200,1173578400,1194141600,1205028e3,1225591200,1236477600,1257040800,1268532e3,1289095200,1299981600,1320544800,1331431200,1351994400,1362880800,1383444e3,1394330400,1414893600,142578e4,1446343200,1457834400,1478397600,1489284e3,1509847200,1520733600,1541296800,1552183200,1572746400,1583632800,1604196e3,1615687200,1636250400,1647136800,16677e5,1678586400,1699149600,1710036e3,1730599200,1741485600,1762048800,1772935200,1793498400,1804989600,1825552800,1836439200,1857002400,1867888800,1888452e3,1899338400,1919901600,1930788e3], offset:[-17762,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3]},"America/Los_Angeles":{ time:[-2717668378,-1633298400,-1615154400,-1601848800,-1583704800,-880236e3,-769420800,-765410400,-687995940,-662680800,-620866800,-608162400,-589417200,-576108e3,-557967600,-544658400,-526518e3,-513208800,-495068400,-481759200,-463618800,-450309600,-431564400,-418255200,-400114800,-386805600,-368665200,-355356e3,-337215600,-323906400,-305766e3,-292456800,-273711600,-261007200,-242262e3,-226533600,-210812400,-195084e3,-179362800,-163634400,-147913200,-13158e4,-116463600,-100130400,-84405600,-68680800,-52956e3,-37231200,-21506400,-5781600,9943200,25668e3,41392800,57722400,73447200,89172e3,104896800,120621600,126669600,152071200,162352800,183520800,199245600,215575200,230695200,247024800,262749600,278474400,294199200,309924e3,325648800,341373600,357098400,372823200,388548e3,404877600,419997600,436327200,452052e3,467776800,483501600,499226400,514951200,530676e3,544586400,562125600,576036e3,59418e4,607485600,625629600,638935200,657079200,670989600,688528800,702439200,719978400,733888800,752032800,765338400,783482400,796788e3,814932e3,828842400,846381600,860292e3,877831200,891741600,909280800,923191200,941335200,954640800,972784800,986090400,1004234400,1018144800,1035684e3,1049594400,1067133600,1081044e3,1099188e3,1112493600,1130637600,1143943200,1162087200,1173578400,1194141600,1205028e3,1225591200,1236477600,1257040800,1268532e3,1289095200,1299981600,1320544800,1331431200,1351994400,1362880800,1383444e3,1394330400,1414893600,142578e4,1446343200,1457834400,1478397600,1489284e3,1509847200,1520733600,1541296800,1552183200,1572746400,1583632800,1604196e3,1615687200,1636250400,1647136800,16677e5,1678586400,1699149600,1710036e3,1730599200,1741485600,1762048800,1772935200,1793498400,1804989600,1825552800,1836439200,1857002400,1867888800,1888452e3,1899338400,1919901600,1930788e3],offset:[-28378,-28800,-25200,-28800,-25200,-28800,-25200,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800,-25200,-28800]},"America/Chicago":{ time:[-2717668236,-1633298400,-1615154400,-1601848800,-1583704800,-1563746400,-1551650400,-1538949600,-1520200800,-1504476e3,-1491775200,-1473026400,-1459720800,-1441576800,-1428271200,-1410127200,-1396821600,-1378677600,-1365372e3,-1347228e3,-1333922400,-1315173600,-1301868e3,-1283724e3,-1270418400,-1252274400,-1238968800,-1220824800,-1207519200,-1189375200,-1176069600,-1157320800,-114462e4,-1125871200,-1112565600,-1094421600,-1081116e3,-1067810400,-1045432800,-1031522400,-1018216800,-1000072800,-986767200,-968018400,-955317600,-936568800,-923263200,-905119200,-891813600,-880236e3,-769413600,-765410400,-747266400,-733960800,-715816800,-702511200,-684367200,-671061600,-652917600,-639612e3,-620863200,-608162400,-589413600,-576108e3,-557964e3,-544658400,-526514400,-513208800,-495064800,-481759200,-463615200,-447285600,-431560800,-415836e3,-400111200,-384386400,-368661600,-352936800,-337212e3,-321487200,-305762400,-289432800,-273708e3,-257983200,-242258400,-226533600,-210808800,-195084e3,-179359200,-163634400,-147909600,-13158e4,-11646e4,-100130400,-84405600,-68680800,-52956e3,-37231200,-21506400,-5781600,9943200,25668e3,41392800,57722400,73447200,89172e3,104896800,120621600,126669600,152071200,162352800,183520800,199245600,215575200,230695200,247024800,262749600,278474400,294199200,309924e3,325648800,341373600,357098400,372823200,388548e3,404877600,419997600,436327200,452052e3,467776800,483501600,499226400,514951200,530676e3,544586400,562125600,576036e3,59418e4,607485600,625629600,638935200,657079200,670989600,688528800,702439200,719978400,733888800,752032800,765338400,783482400,796788e3,814932e3,828842400,846381600,860292e3,877831200,891741600,909280800,923191200,941335200,954640800,972784800,986090400,1004234400,1018144800,1035684e3,1049594400,1067133600,1081044e3,1099188e3,1112493600,1130637600,1143943200,1162087200,1173578400,1194141600,1205028e3,1225591200,1236477600,1257040800,1268532e3,1289095200,1299981600,1320544800,1331431200,1351994400,1362880800,1383444e3,1394330400,1414893600,142578e4,1446343200,1457834400,1478397600,1489284e3,1509847200,1520733600,1541296800,1552183200,1572746400,1583632800,1604196e3,1615687200,1636250400,1647136800,16677e5,1678586400,1699149600,1710036e3,1730599200,1741485600,1762048800,1772935200,1793498400,1804989600,1825552800,1836439200,1857002400,1867888800,1888452e3,1899338400,1919901600,1930788e3], @@ -210,47 +211,47 @@ e.setValue(!t)})),this._opposite=t}return this._opposite},"undefined"!=typeof wi e.ChartPriceScaleMoveToLeft="Chart.PriceScale.MoveToLeft",e.ChartPriceScaleMoveToRight="Chart.PriceScale.MoveToRight",e.ChartPriceScaleToggleAddOrderPlusButtonVisibility="Chart.PriceScale.ToggleAddOrderPlusButtonVisibility",e.ChartPriceScaleToggleAutoScaleSeriesOnly="Chart.PriceScale.ToggleAutoScaleSeriesOnly",e.ChartPriceScaleToggleCountdownToBarCloseVisibility="Chart.PriceScale.ToggleCountdownToBarCloseVisibility",e.ChartRedo="Chart.Redo",e.ChartRemoveAllIndicators="Chart.RemoveAllIndicators",e.ChartRemoveAllIndicatorsAndLineTools="Chart.RemoveAllIndicatorsAndLineTools",e.ChartRemoveAllLineTools="Chart.RemoveAllLineTools",e.ChartScalesReset="Chart.Scales.Reset",e.ChartScalesToggleLockPriceToBarRatio="Chart.Scales.ToggleLockPriceToBarRatio",e.ChartSelectedObjectHide="Chart.SelectedObject.Hide",e.ChartSelectedObjectRemove="Chart.SelectedObject.Remove",e.ChartSelectedObjectShowSettingsDialog="Chart.SelectedObject.ShowSettingsDialog",e.ChartSelectedObjectToggleLocked="Chart.SelectedObject.ToggleLocked",e.ChartSeriesPriceScaleToggleAutoScale="Chart.Series.PriceScale.ToggleAutoScale",e.ChartSeriesPriceScaleToggleIndexedTo100="Chart.Series.PriceScale.ToggleIndexedTo100",e.ChartSeriesPriceScaleToggleInvertPriceScale="Chart.Series.PriceScale.ToggleInvertPriceScale",e.ChartSeriesPriceScaleToggleLogarithmic="Chart.Series.PriceScale.ToggleLogarithmic",e.ChartSeriesPriceScaleTogglePercentage="Chart.Series.PriceScale.TogglePercentage",e.ChartSeriesPriceScaleToggleRegular="Chart.Series.PriceScale.ToggleRegular",e.ChartSessionBreaksToggleVisibility="Chart.SessionBreaks.ToggleVisibility",e.ChartTimeScaleReset="Chart.TimeScale.Reset",e.ChartUndo="Chart.Undo",e.ChartSourceIntervalsVisibility="Chart.Source.IntervalsVisibility",e.ChartSourceIntervalsVisibilityCurrentAndAbove="Chart.Source.IntervalsVisibility.CurrentAndAbove",e.ChartSourceIntervalsVisibilityCurrentAndBelow="Chart.Source.IntervalsVisibility.CurrentAndBelow",e.ChartSourceIntervalsVisibilityOnlyCurrent="Chart.Source.IntervalsVisibility.Current",e.ChartSourceIntervalsVisibilityAll="Chart.Source.IntervalsVisibility.All"}(s||(s={}))},43986:(e,t,i)=>{"use strict";i.r(t),i.d(t,{Action:()=>l,ActionAsync:()=>c,Separator:()=>h,Loader:()=>d});var s=i(50151),r=i(26867),n=i.n(r),o=i(68335),a=i(68671);class l{constructor(e,t=a.guid()){this.type="action",this._destroyed=!1,this._binding=null,(0,s.assert)(void 0!==e.actionId,"actionId must be defined"),this.id=t,this._onUpdate=new(n()),this._options=e,this.update(e)}execute(){this._options.checkable&&this.update({checked:!this._options.checked}),this._options.onExecute&&this._options.onExecute(this)}getLabel(){return this._options.label||""}getSubItems(){return this._options.subItems||[]}isDisabled(){return!0===this._options.disabled}isActive(){return!0===this._options.active}isCheckable(){return!0===this._options.checkable}isChecked(){return!0===this._options.checked}isLoading(){return!0===this._options.loading}getSize(){var e;return null!==(e=this._options.size)&&void 0!==e?e:"normal"}getPayload(){return this._options.payload} update(e){this._destroyed||(this._unbindShortcut(),e.hotkeyHash&&(this._options.shortcutHint=(0,o.humanReadableHash)(e.hotkeyHash)),this._options=Object.assign(this._options,e),this._bindShortcut(),this._onUpdate.fire(this))}onUpdate(){return this._onUpdate}getState(){return{actionId:this._options.actionId,label:this.getLabel(),disabled:this.isDisabled(),active:this.isActive(),subItems:this.getSubItems(),checkable:this.isCheckable(),checked:this.isChecked(),loading:this.isLoading(),size:this.getSize(),doNotCloseOnClick:this._options.doNotCloseOnClick||!1,shortcutHint:this._options.shortcutHint,hint:this._options.hint,icon:this._options.icon,iconChecked:this._options.iconChecked,toolbox:this._options.toolbox,showToolboxOnHover:this._options.showToolboxOnHover||!1,statName:this._options.statName,name:this._options.name,invisibleHotkey:this._options.invisibleHotkey,noInteractive:this._options.noInteractive}}getBinding(){return this._binding}setBinding(e){this._binding=e}destroy(){var e,t;this._destroyed=!0,this._onUpdate.destroy(),null!==this._binding&&this._binding.destroy(),this._unbindShortcut(),null===(t=(e=this._options).onDestroy)||void 0===t||t.call(e)}options(){return this._options}_bindShortcut(){if(!this._options.hotkeyGroup||!this._options.hotkeyHash)return;const e="string"==typeof this._options.label?this._options.label:this._options.name;this._hotkeyAction=this._options.hotkeyGroup.add({hotkey:this._options.hotkeyHash,desc:e,handler:()=>this.execute(),isDisabled:()=>this.isDisabled()})}_unbindShortcut(){this._hotkeyAction&&(this._hotkeyAction.destroy(),delete this._hotkeyAction)}}class c extends l{constructor(e,t,i){super({actionId:e},i),this._loader=t,this._loaded=!1}loadOptions(){return this._loadingPromise||(this._loadingPromise=this._loader().then((e=>{this._loaded=!0,this.update(e)}))),this._loadingPromise}getState(){return this.loadOptions(),super.getState()}isLoading(){return!this.isLoaded()}isLoaded(){return this._loaded}}class h{constructor(e){this.type="separator",this.id=a.guid(),this._hint=e}getHint(){return this._hint}}class d extends l{constructor(e){super({actionId:e})}isLoading(){return!0}getSize(){return"big"}}},6195:(e,t,i)=>{"use strict";i.d(t,{defaultContextMenuOptions:()=>Fe,createPasteAction:()=>We,createVisualOrderAction:()=>He,createChangeIntervalsVisibilitiesAction:()=>ze,createActionCopyPrice:()=>Ue,createMTPredictorActions:()=>je,createLinesAction:()=>Ge,createSyncDrawingActions:()=>qe,ActionsProvider:()=>$e});var s=i(50151),r=i(98351),n=(i(60521),i(65665)),o=i(44352),a=i(2484),l=i(43986),c=i(50792),h=i(24679),d=i(89215),u=(i(35936),i(71479)),p=i(46069),_=i(68335),m=(i(25812),i(89895)),g=i(83956),f=(i(1930),i(29628)),v=i(39969),S=i(6250),y=i(21580),b=i(86339),w=i(47539),P=(i(76076),i(578)),C=i(10621),T=i(93352);(0,r.getLogger)("Chart.ActionsProvider"),new w.TranslatedString("show alert label lines",o.t(null,void 0,i(16237))),new w.TranslatedString("hide alert label lines",o.t(null,void 0,i(91842))) ;const x=new w.TranslatedString("change visibility",o.t(null,void 0,i(21511))),I=new w.TranslatedString("pin to scale {label}",o.t(null,void 0,i(56015))),M=new w.TranslatedString("pin to right scale",o.t(null,void 0,i(22615))),A=new w.TranslatedString("pin to left scale",o.t(null,void 0,i(84018))),L=(new w.TranslatedString("change earnings visibility",o.t(null,void 0,i(88217))),new w.TranslatedString("change dividends visibility",o.t(null,void 0,i(84944))),new w.TranslatedString("change splits visibility",o.t(null,void 0,i(74488))),new w.TranslatedString("change continuous contract switch visibility",o.t(null,void 0,i(7017))),new w.TranslatedString("change futures contract expiration visibility",o.t(null,void 0,i(28288))),new w.TranslatedString("change latest news visibility",o.t(null,void 0,i(77578))),new w.TranslatedString("show all ideas",o.t(null,void 0,i(13622)))),k=new w.TranslatedString("show ideas of followed users",o.t(null,void 0,i(26267))),E=new w.TranslatedString("show my ideas only",o.t(null,void 0,i(40061))),D=(new w.TranslatedString("change events visibility on chart",o.t(null,void 0,i(79574))),new w.TranslatedString("add this symbol to entire layout",o.t(null,void 0,i(27982)))),B=new w.TranslatedString("add this indicator to entire layout",o.t(null,void 0,i(82388))),V=(new w.TranslatedString("add this strategy to entire layout",o.t(null,void 0,i(94292))),new w.TranslatedString("add this financial metric to entire layout",o.t(null,void 0,i(22856))),new w.TranslatedString("apply drawing template",o.t(null,void 0,i(49037))),new w.TranslatedString("lock objects",o.t(null,void 0,i(68163)))),R=new w.TranslatedString("unlock objects",o.t(null,void 0,i(66824))),N=new w.TranslatedString("change visibility at current interval and above",o.t(null,void 0,i(78422))),O=new w.TranslatedString("change visibility at current interval and below",o.t(null,void 0,i(49529))),F=new w.TranslatedString("change visibility at current interval",o.t(null,void 0,i(16698))),W=new w.TranslatedString("change visibility at all intervals",o.t(null,void 0,i(66927))),H=(o.t(null,void 0,i(8700)),o.t(null,void 0,i(90830)),o.t(null,void 0,i(64885)),(0,b.appendEllipsis)(o.t(null,void 0,i(93512)))),z=(o.t(null,void 0,i(27558)),o.t(null,void 0,i(87085)),(0,b.appendEllipsis)(o.t(null,void 0,i(52302))),o.t(null,void 0,i(81428))),U=o.t(null,void 0,i(31971)),j=(o.t(null,void 0,i(11156)),o.t(null,void 0,i(15682)),o.t(null,void 0,i(66631)),o.t(null,void 0,i(37422)),o.t(null,void 0,i(5716)),o.t(null,void 0,i(50352)),o.t(null,void 0,i(19263)),o.t(null,void 0,i(15818)),o.t(null,void 0,i(5897)),o.t(null,void 0,i(58976)),o.t(null,void 0,i(11661)),o.t(null,void 0,i(66560)),o.t(null,void 0,i(53958)),o.t(null,void 0,i(34150)),o.t(null,void 0,i(83927)),o.t(null,void 0,i(15644)),o.t(null,void 0,i(42660)),o.t(null,void 0,i(44788)),o.t(null,void 0,i(70437)),o.t(null,void 0,i(71263)),o.t(null,void 0,i(70573)),o.t(null,void 0,i(59560)), -o.t(null,void 0,i(14125))),G=o.t(null,void 0,i(44538)),q=o.t(null,void 0,i(56948)),$=o.t(null,void 0,i(20207)),Y=o.t(null,void 0,i(65810)),K=o.t(null,void 0,i(3822)),X=o.t(null,void 0,i(97324)),Z=o.t(null,void 0,i(764)),J=o.t(null,void 0,i(8128)),Q=o.t(null,void 0,i(61201)),ee=o.t(null,void 0,i(32156)),te=o.t(null,void 0,i(91130)),ie=o.t(null,void 0,i(37680)),se=o.t(null,void 0,i(43707)),re=o.t(null,void 0,i(39065)),ne=o.t(null,void 0,i(54727)),oe=o.t(null,void 0,i(66156)),ae=o.t(null,void 0,i(76598)),le=o.t(null,void 0,i(3485)),ce=o.t(null,void 0,i(45828)),he=o.t(null,void 0,i(2899)),de=o.t(null,void 0,i(40887)),ue=o.t(null,void 0,i(53387)),pe=o.t(null,void 0,i(96712)),_e=o.t(null,void 0,i(26354)),me=o.t(null,void 0,i(19796)),ge=o.t(null,void 0,i(59901)),fe=o.t(null,void 0,i(23221)),ve=o.t(null,void 0,i(22198)),Se=o.t(null,void 0,i(27557)),ye=o.t(null,void 0,i(98486)),be=o.t(null,void 0,i(73106)),we=o.t(null,void 0,i(85964)),Pe=o.t(null,void 0,i(59192)),Ce=o.t(null,void 0,i(83182)),Te=((0,b.appendEllipsis)(o.t(null,void 0,i(92206))),(0,b.appendEllipsis)(o.t(null,void 0,i(3612))),(0,b.appendEllipsis)(o.t(null,void 0,i(89517)))),xe=(o.t(null,void 0,i(13345)),(0,b.appendEllipsis)(o.t(null,void 0,i(9908))),o.t(null,void 0,i(35216))),Ie=o.t(null,void 0,i(52977)),Me=(o.t(null,void 0,i(19611)),o.t(null,void 0,i(38342))),Ae=o.t(null,void 0,i(15101)),Le=o.t(null,void 0,i(42284)),ke=(o.t(null,void 0,i(46771)),o.t(null,void 0,i(66263)),o.t(null,void 0,i(30816)),o.t(null,void 0,i(24620)),o.t(null,void 0,i(84813)),o.t(null,void 0,i(30709)),o.t(null,void 0,i(48284))),Ee=o.t(null,void 0,i(87933)),De=o.t(null,void 0,i(58669)),Be=((0,b.appendEllipsis)(o.t(null,void 0,i(89517))),o.t(null,void 0,i(8251)),o.t(null,void 0,i(34059))),Ve=o.t(null,void 0,i(64288)),Re=(o.t(null,void 0,i(77920)),o.t(null,void 0,i(75669)),o.t(null,void 0,i(8886)),o.t(null,void 0,i(18008)),o.t(null,void 0,i(33606)),(0,b.appendEllipsis)(o.t(null,void 0,i(65986)))),Ne=o.t(null,void 0,i(29682)),Oe=o.t(null,void 0,i(28851)),Fe={general:!0,mainSeries:!0,mainSeriesTrade:!1,esdStudies:!0,studies:!0,fundamentals:!0,lineTools:!0,publishedCharts:!0,ordersAndPositions:!0,alerts:!0,chartEvents:!0,objectTree:!0,gotoLineTool:!1};function We(e,t){return!t.isEmpty()&&a.enabled("datasource_copypaste")?new l.Action({actionId:"Chart.Clipboard.PasteSource",label:Ne.trim(),shortcutHint:(0,_.humanReadableHash)(_.Modifiers.Mod+86),statName:"Paste",onExecute:()=>e.chartWidgetCollection().clipboard.uiRequestPaste(t)}):null}function He(e,t){const s=e.model(),r=s.availableZOrderOperations(t),n=[new l.Action({actionId:"Chart.Source.VisualOrder.BringToFront",label:_e,statName:"BringToFront",disabled:!r.bringToFrontEnabled,onExecute:()=>s.bringToFront(t)}),new l.Action({actionId:"Chart.Source.VisualOrder.SendToBack",label:me,statName:"SendToBack",disabled:!r.sendToBackEnabled,onExecute:()=>s.sendToBack(t)}),new l.Action({actionId:"Chart.Source.VisualOrder.BringForward",label:ge,statName:"BringForward",disabled:!r.bringForwardEnabled,onExecute:()=>s.bringForward(t)}),new l.Action({ +o.t(null,void 0,i(14125))),G=o.t(null,void 0,i(44538)),q=o.t(null,void 0,i(56948)),$=o.t(null,void 0,i(20207)),Y=o.t(null,void 0,i(65810)),K=o.t(null,void 0,i(3822)),Z=o.t(null,void 0,i(97324)),X=o.t(null,void 0,i(764)),J=o.t(null,void 0,i(8128)),Q=o.t(null,void 0,i(61201)),ee=o.t(null,void 0,i(32156)),te=o.t(null,void 0,i(91130)),ie=o.t(null,void 0,i(37680)),se=o.t(null,void 0,i(43707)),re=o.t(null,void 0,i(39065)),ne=o.t(null,void 0,i(54727)),oe=o.t(null,void 0,i(66156)),ae=o.t(null,void 0,i(76598)),le=o.t(null,void 0,i(3485)),ce=o.t(null,void 0,i(45828)),he=o.t(null,void 0,i(2899)),de=o.t(null,void 0,i(40887)),ue=o.t(null,void 0,i(53387)),pe=o.t(null,void 0,i(96712)),_e=o.t(null,void 0,i(26354)),me=o.t(null,void 0,i(19796)),ge=o.t(null,void 0,i(59901)),fe=o.t(null,void 0,i(23221)),ve=o.t(null,void 0,i(22198)),Se=o.t(null,void 0,i(27557)),ye=o.t(null,void 0,i(98486)),be=o.t(null,void 0,i(73106)),we=o.t(null,void 0,i(85964)),Pe=o.t(null,void 0,i(59192)),Ce=o.t(null,void 0,i(83182)),Te=((0,b.appendEllipsis)(o.t(null,void 0,i(92206))),(0,b.appendEllipsis)(o.t(null,void 0,i(3612))),(0,b.appendEllipsis)(o.t(null,void 0,i(89517)))),xe=(o.t(null,void 0,i(13345)),(0,b.appendEllipsis)(o.t(null,void 0,i(9908))),o.t(null,void 0,i(35216))),Ie=o.t(null,void 0,i(52977)),Me=(o.t(null,void 0,i(19611)),o.t(null,void 0,i(38342))),Ae=o.t(null,void 0,i(15101)),Le=o.t(null,void 0,i(42284)),ke=(o.t(null,void 0,i(46771)),o.t(null,void 0,i(66263)),o.t(null,void 0,i(30816)),o.t(null,void 0,i(24620)),o.t(null,void 0,i(84813)),o.t(null,void 0,i(30709)),o.t(null,void 0,i(48284))),Ee=o.t(null,void 0,i(87933)),De=o.t(null,void 0,i(58669)),Be=((0,b.appendEllipsis)(o.t(null,void 0,i(89517))),o.t(null,void 0,i(8251)),o.t(null,void 0,i(34059))),Ve=o.t(null,void 0,i(64288)),Re=(o.t(null,void 0,i(77920)),o.t(null,void 0,i(75669)),o.t(null,void 0,i(8886)),o.t(null,void 0,i(18008)),o.t(null,void 0,i(33606)),(0,b.appendEllipsis)(o.t(null,void 0,i(65986)))),Ne=o.t(null,void 0,i(29682)),Oe=o.t(null,void 0,i(28851)),Fe={general:!0,mainSeries:!0,mainSeriesTrade:!1,esdStudies:!0,studies:!0,fundamentals:!0,lineTools:!0,publishedCharts:!0,ordersAndPositions:!0,alerts:!0,chartEvents:!0,objectTree:!0,gotoLineTool:!1};function We(e,t){return!t.isEmpty()&&a.enabled("datasource_copypaste")?new l.Action({actionId:"Chart.Clipboard.PasteSource",label:Ne.trim(),shortcutHint:(0,_.humanReadableHash)(_.Modifiers.Mod+86),statName:"Paste",onExecute:()=>e.chartWidgetCollection().clipboard.uiRequestPaste(t)}):null}function He(e,t){const s=e.model(),r=s.availableZOrderOperations(t),n=[new l.Action({actionId:"Chart.Source.VisualOrder.BringToFront",label:_e,statName:"BringToFront",disabled:!r.bringToFrontEnabled,onExecute:()=>s.bringToFront(t)}),new l.Action({actionId:"Chart.Source.VisualOrder.SendToBack",label:me,statName:"SendToBack",disabled:!r.sendToBackEnabled,onExecute:()=>s.sendToBack(t)}),new l.Action({actionId:"Chart.Source.VisualOrder.BringForward",label:ge,statName:"BringForward",disabled:!r.bringForwardEnabled,onExecute:()=>s.bringForward(t)}),new l.Action({ actionId:"Chart.Source.VisualOrder.SendBackward",label:fe,statName:"SendBackward",disabled:!r.sendBackwardEnabled,onExecute:()=>s.sendBackward(t)})];return new l.Action({actionId:"Chart.Source.VisualOrder",label:ve,icon:i(77067),statName:"VisualOrder",subItems:n})}function ze(e,t){const i=e.model(),s=(e,s)=>{const r=P.Interval.parse(i.mainSeries().interval()),n=(0,C.getIntervalsVisibilitiesForMode)(r,e),o=[],a=[];t.forEach((e=>{const t=e.properties().intervalsVisibilities.childs();o.push(t.ticks),a.push(n.ticks),o.push(t.seconds),a.push(n.seconds),o.push(t.secondsFrom),a.push(n.secondsFrom),o.push(t.secondsTo),a.push(n.secondsTo),o.push(t.minutes),a.push(n.minutes),o.push(t.minutesFrom),a.push(n.minutesFrom),o.push(t.minutesTo),a.push(n.minutesTo),o.push(t.hours),a.push(n.hours),o.push(t.hoursFrom),a.push(n.hoursFrom),o.push(t.hoursTo),a.push(n.hoursTo),o.push(t.days),a.push(n.days),o.push(t.daysFrom),a.push(n.daysFrom),o.push(t.daysTo),a.push(n.daysTo),o.push(t.weeks),a.push(n.weeks),o.push(t.weeksFrom),a.push(n.weeksFrom),o.push(t.weeksTo),a.push(n.weeksTo),o.push(t.months),a.push(n.months),o.push(t.monthsFrom),a.push(n.monthsFrom),o.push(t.monthsTo),a.push(n.monthsTo),o.push(t.ranges),a.push(n.ranges)})),i.setProperties(o,a,s)},r=[new l.Action({actionId:"Chart.Source.IntervalsVisibility.CurrentAndAbove",label:ye,statName:"currentAndAboveIntervals",onExecute:()=>s(3,N)}),new l.Action({actionId:"Chart.Source.IntervalsVisibility.CurrentAndBelow",label:be,statName:"currentAndBelowIntervals",onExecute:()=>s(2,O)}),new l.Action({actionId:"Chart.Source.IntervalsVisibility.Current",label:we,statName:"currentInterval",onExecute:()=>s(1,F)}),new l.Action({actionId:"Chart.Source.IntervalsVisibility.All",label:Pe,statName:"allIntervals",onExecute:()=>s(0,W)})];return new l.Action({actionId:"Chart.Source.IntervalsVisibility",label:Se,statName:"IntervalsVisibility",subItems:r})}function Ue(e,t){var i,s,r;const n=e.defaultPriceScale(),o=void 0!==t?n.coordinateToPrice(t,null!==(s=null===(i=e.mainDataSource())||void 0===i?void 0:i.firstValue())&&void 0!==s?s:0):e.model().mainSeries().lastValueData(4,!0,!0).price,a=null===(r=e.mainDataSource())||void 0===r?void 0:r.formatter();if(void 0===o||!a)return null;const c=a.format(o);return new l.Action({actionId:"Chart.Clipboard.CopyPrice",label:`${Oe} (${c})`,statName:"CopyPrice",onExecute:()=>(0,T.getClipboard)().writeText(c)})}function je(e,t,i,s){return null}function Ge(e){const t=e.actions(),i=[t.showPriceLine];return i.push(t.showHighLowPriceLines),a.enabled("show_average_close_price_line_and_label")&&i.push(t.showAverageClosePriceLine),new l.Action({actionId:"Chart.Lines",label:Ce,statName:"Lines",subItems:i})}function qe(e,t){return[]}class $e{constructor(e,t){this._chartWidget=e,this._options=(0,n.merge)((0,n.clone)(Fe),t||{})}async contextMenuActionsForSources(e,t,i){const s=e[0],r=this._options;if(s===this._chartWidget.model().mainSeries()&&r.mainSeries)return this._contextMenuActionsForSeries(s,t);if((0,d.isStudy)(s)&&r.studies)return this._contextMenuActionsForStudy(s);if((0, -S.isLineTool)(s)&&r.lineTools){const t=e.filter(S.isLineTool);return this._contextMenuActionsForLineTool(t)}return[]}_isReadOnly(){return this._chartWidget.readOnly()}_createActionHide(e){return new l.Action({actionId:"Chart.SelectedObject.Hide",label:U,icon:i(84959),statName:"HideSelectedObject",onExecute:this._chartWidget.hideDataSources.bind(this._chartWidget,[e])})}_createActionShow(e){const t=new l.Action({actionId:"Chart.SelectedObject.Show",checkable:!0,label:z,icon:i(16911),statName:"ToggleShow"}),s=new c.ActionBinder(t,e.properties().visible,this._chartWidget.model(),x);return t.setBinding(s),s.setValue(e.properties().visible.value()),t}_createActionScale(e){const t=(0,s.ensureNotNull)(e.priceScale()),r=this._chartWidget.model().model(),n=(0,s.ensureNotNull)(r.paneForSource(e)),o=n.priceScalePosition(t),a=("left"===o?n.leftPriceScales():n.rightPriceScales()).indexOf(t),c=r.priceScaleSlotsCount().totallySlots<2?"dontneedname":"needname",d="overlay"===o?"":(0,h.getPriceAxisNameInfo)(o,a).label,u=re.format({label:d}),p={"left-needname":u,"left-dontneedname":oe,"right-needname":u,"right-dontneedname":ae,"overlay-needname":ne,"overlay-dontneedname":ne}[o+"-"+c];return new l.Action({actionId:"Chart.Source.ChangePriceScale",label:p,icon:i(25191),subItems:this._createActionScaleItems(e)})}_createActionScaleDetach(e,t,i,r){const n=this._chartWidget.model().model(),o=(0,s.ensureNotNull)(n.paneForSource(e));if(!o.canCreateNewPriceScale())return null;const a=(0,s.ensureNotNull)(e.priceScale()),c=a.canDetachSource(e),d=o.priceScalePosition(a),u=c||d!==t;if(!u)return null;const p=n.priceScaleSlotsCount(),_={left:{labelled:X,sided:ie},right:{labelled:X,sided:se}},m="left"===t?o.leftPriceScales().length:o.rightPriceScales().length,g=p[t]>m?"labelled":"sided",f=(0,h.getPriceAxisNameInfo)(t,m).label,v=_[t][g].format({label:f});return new l.Action({actionId:"Chart.Source.ChangePriceScale",checkable:!1,disabled:!u,label:v,statName:r,payload:e,onExecute:i})}_onDetachLeft(e){const t=e.getPayload(),i=this._chartWidget.model().model(),r=(0,s.ensureNotNull)(i.paneForSource(t));this._chartWidget.model().detachToLeft(t,r)}_onDetachRight(e){const t=e.getPayload(),i=this._chartWidget.model().model(),r=(0,s.ensureNotNull)(i.paneForSource(t));this._chartWidget.model().detachToRight(t,r)}_createActionScaleDetachLeft(e){return this._createActionScaleDetach(e,"left",this._onDetachLeft.bind(this),"ToggleScaleLeft")}_createActionScaleDetachRight(e){return this._createActionScaleDetach(e,"right",this._onDetachRight.bind(this),"ToggleScaleRight")}_onMoveToScale(e){const t=e.getPayload();if(t.datasource.priceScale()===t.priceScale)return;const i=this._chartWidget.model().model(),r=(0,s.ensureNotNull)(i.paneForSource(t.datasource));this._chartWidget.model().moveToScale(t.datasource,r,t.priceScale,t.undoText)}_createMoveToScaleAction(e,t,i,s){const r=e.priceScale()===t;return new l.Action({actionId:"Chart.Source.MoveToOtherScale",checkable:!0,checked:r,label:i,statName:"ToggleScale",payload:{datasource:e,priceScale:t,undoText:s}, -onExecute:this._onMoveToScale.bind(this)})}_onNoScale(e){const t=e.getPayload().datasource,i=this._chartWidget.model().model(),r=(0,s.ensureNotNull)(i.paneForSource(t));r.isOverlay(t)||this._chartWidget.model().detachNoScale(t,r)}_createActionNoScale(e){const t=this._chartWidget.model().model(),i=(0,s.ensureNotNull)(t.paneForSource(e)),r=i.actionNoScaleIsEnabled(e);return new l.Action({actionId:"Chart.Source.MoveToNoScale",checkable:!0,checked:i.isOverlay(e),label:le,disabled:!r,statName:"ToggleNoScale",payload:{datasource:e},onExecute:this._onNoScale.bind(this)})}_createActionScaleItems(e){const t=[],i=this._chartWidget.model().model(),r=(0,s.ensureNotNull)(i.paneForSource(e)),n=i.priceScaleSlotsCount().totallySlots>1,o=r.rightPriceScales(),a=r.leftPriceScales(),c=this._createActionScaleDetachRight(e),d=this._createActionScaleDetachLeft(e),u=o.length+a.length+(null===c?0:1)+(null===d?0:1)>2,p={right:{hidden:{checked:{labelled:j,sided:G},unchecked:{labelled:q,sided:$}},visible:{checked:{labelled:Y,sided:K},unchecked:{labelled:X,sided:Z}}},left:{hidden:{checked:{labelled:j,sided:J},unchecked:{labelled:q,sided:Q}},visible:{checked:{labelled:Y,sided:ee},unchecked:{labelled:X,sided:te}}}},_={right:M,left:A},m={left:r.visibleLeftPriceScales(),right:r.visibleRightPriceScales()},g=(t,i)=>{const s=("right"===i?o:a)[t],r=m[i].includes(s)?"visible":"hidden",l=e.priceScale()===s?"checked":"unchecked",c=n?"labelled":"sided",d=p[i],u=(0,h.getPriceAxisNameInfo)(i,t).label;return{actionText:d[r][l][c].format({label:u}),undoText:n?I.format({label:u}):_[i]}};t.push(...o.map(((t,i)=>{const s=g(i,"right");return this._createMoveToScaleAction(e,t,s.actionText,s.undoText)}))),null!==c&&t.push(c);u&&(o.length>0||null!==c)&&t.push(new l.Separator);t.push(...a.map(((t,i)=>{const s=g(i,"left");return this._createMoveToScaleAction(e,t,s.actionText,s.undoText)}))),null!==d&&t.push(d);u&&(a.length>0||null!==d)&&t.push(new l.Separator);return t.push(this._createActionNoScale(e)),t}_createActionMergeUp(e){const t=this._chartWidget.model();return t.model().isMergeUpAvailableForSource(e)?new l.Action({actionId:"Chart.Source.MergeUp",label:he,statName:"MergeUp",onExecute:()=>t.mergeSourceUp(e)}):null}_createActionUnmergeUp(e){const t=this._chartWidget.model();return t.model().isUnmergeAvailableForSource(e)?new l.Action({actionId:"Chart.Source.UnmergeUp",label:de,statName:"UnmergeUp",onExecute:()=>t.unmergeSourceUp(e)}):null}_createActionMergeDown(e){const t=this._chartWidget.model();return t.model().isMergeDownAvailableForSource(e)?new l.Action({actionId:"Chart.Source.MergeDown",label:ue,statName:"MergeDown",onExecute:()=>t.mergeSourceDown(e)}):null}_createActionUnmergeDown(e){const t=this._chartWidget.model();return t.model().isUnmergeAvailableForSource(e)?new l.Action({actionId:"Chart.Source.UnmergeDown",label:pe,statName:"UnmergeDown",onExecute:()=>t.unmergeSourceDown(e)}):null}_mergeContentMenuItems(e){ +S.isLineTool)(s)&&r.lineTools){const t=e.filter(S.isLineTool);return this._contextMenuActionsForLineTool(t)}return[]}_isReadOnly(){return this._chartWidget.readOnly()}_createActionHide(e){return new l.Action({actionId:"Chart.SelectedObject.Hide",label:U,icon:i(84959),statName:"HideSelectedObject",onExecute:this._chartWidget.hideDataSources.bind(this._chartWidget,[e])})}_createActionShow(e){const t=new l.Action({actionId:"Chart.SelectedObject.Show",checkable:!0,label:z,icon:i(16911),statName:"ToggleShow"}),s=new c.ActionBinder(t,e.properties().visible,this._chartWidget.model(),x);return t.setBinding(s),s.setValue(e.properties().visible.value()),t}_createActionScale(e){const t=(0,s.ensureNotNull)(e.priceScale()),r=this._chartWidget.model().model(),n=(0,s.ensureNotNull)(r.paneForSource(e)),o=n.priceScalePosition(t),a=("left"===o?n.leftPriceScales():n.rightPriceScales()).indexOf(t),c=r.priceScaleSlotsCount().totallySlots<2?"dontneedname":"needname",d="overlay"===o?"":(0,h.getPriceAxisNameInfo)(o,a).label,u=re.format({label:d}),p={"left-needname":u,"left-dontneedname":oe,"right-needname":u,"right-dontneedname":ae,"overlay-needname":ne,"overlay-dontneedname":ne}[o+"-"+c];return new l.Action({actionId:"Chart.Source.ChangePriceScale",label:p,icon:i(25191),subItems:this._createActionScaleItems(e)})}_createActionScaleDetach(e,t,i,r){const n=this._chartWidget.model().model(),o=(0,s.ensureNotNull)(n.paneForSource(e));if(!o.canCreateNewPriceScale())return null;const a=(0,s.ensureNotNull)(e.priceScale()),c=a.canDetachSource(e),d=o.priceScalePosition(a),u=c||d!==t;if(!u)return null;const p=n.priceScaleSlotsCount(),_={left:{labelled:Z,sided:ie},right:{labelled:Z,sided:se}},m="left"===t?o.leftPriceScales().length:o.rightPriceScales().length,g=p[t]>m?"labelled":"sided",f=(0,h.getPriceAxisNameInfo)(t,m).label,v=_[t][g].format({label:f});return new l.Action({actionId:"Chart.Source.ChangePriceScale",checkable:!1,disabled:!u,label:v,statName:r,payload:e,onExecute:i})}_onDetachLeft(e){const t=e.getPayload(),i=this._chartWidget.model().model(),r=(0,s.ensureNotNull)(i.paneForSource(t));this._chartWidget.model().detachToLeft(t,r)}_onDetachRight(e){const t=e.getPayload(),i=this._chartWidget.model().model(),r=(0,s.ensureNotNull)(i.paneForSource(t));this._chartWidget.model().detachToRight(t,r)}_createActionScaleDetachLeft(e){return this._createActionScaleDetach(e,"left",this._onDetachLeft.bind(this),"ToggleScaleLeft")}_createActionScaleDetachRight(e){return this._createActionScaleDetach(e,"right",this._onDetachRight.bind(this),"ToggleScaleRight")}_onMoveToScale(e){const t=e.getPayload();if(t.datasource.priceScale()===t.priceScale)return;const i=this._chartWidget.model().model(),r=(0,s.ensureNotNull)(i.paneForSource(t.datasource));this._chartWidget.model().moveToScale(t.datasource,r,t.priceScale,t.undoText)}_createMoveToScaleAction(e,t,i,s){const r=e.priceScale()===t;return new l.Action({actionId:"Chart.Source.MoveToOtherScale",checkable:!0,checked:r,label:i,statName:"ToggleScale",payload:{datasource:e,priceScale:t,undoText:s}, +onExecute:this._onMoveToScale.bind(this)})}_onNoScale(e){const t=e.getPayload().datasource,i=this._chartWidget.model().model(),r=(0,s.ensureNotNull)(i.paneForSource(t));r.isOverlay(t)||this._chartWidget.model().detachNoScale(t,r)}_createActionNoScale(e){const t=this._chartWidget.model().model(),i=(0,s.ensureNotNull)(t.paneForSource(e)),r=i.actionNoScaleIsEnabled(e);return new l.Action({actionId:"Chart.Source.MoveToNoScale",checkable:!0,checked:i.isOverlay(e),label:le,disabled:!r,statName:"ToggleNoScale",payload:{datasource:e},onExecute:this._onNoScale.bind(this)})}_createActionScaleItems(e){const t=[],i=this._chartWidget.model().model(),r=(0,s.ensureNotNull)(i.paneForSource(e)),n=i.priceScaleSlotsCount().totallySlots>1,o=r.rightPriceScales(),a=r.leftPriceScales(),c=this._createActionScaleDetachRight(e),d=this._createActionScaleDetachLeft(e),u=o.length+a.length+(null===c?0:1)+(null===d?0:1)>2,p={right:{hidden:{checked:{labelled:j,sided:G},unchecked:{labelled:q,sided:$}},visible:{checked:{labelled:Y,sided:K},unchecked:{labelled:Z,sided:X}}},left:{hidden:{checked:{labelled:j,sided:J},unchecked:{labelled:q,sided:Q}},visible:{checked:{labelled:Y,sided:ee},unchecked:{labelled:Z,sided:te}}}},_={right:M,left:A},m={left:r.visibleLeftPriceScales(),right:r.visibleRightPriceScales()},g=(t,i)=>{const s=("right"===i?o:a)[t],r=m[i].includes(s)?"visible":"hidden",l=e.priceScale()===s?"checked":"unchecked",c=n?"labelled":"sided",d=p[i],u=(0,h.getPriceAxisNameInfo)(i,t).label;return{actionText:d[r][l][c].format({label:u}),undoText:n?I.format({label:u}):_[i]}};t.push(...o.map(((t,i)=>{const s=g(i,"right");return this._createMoveToScaleAction(e,t,s.actionText,s.undoText)}))),null!==c&&t.push(c);u&&(o.length>0||null!==c)&&t.push(new l.Separator);t.push(...a.map(((t,i)=>{const s=g(i,"left");return this._createMoveToScaleAction(e,t,s.actionText,s.undoText)}))),null!==d&&t.push(d);u&&(a.length>0||null!==d)&&t.push(new l.Separator);return t.push(this._createActionNoScale(e)),t}_createActionMergeUp(e){const t=this._chartWidget.model();return t.model().isMergeUpAvailableForSource(e)?new l.Action({actionId:"Chart.Source.MergeUp",label:he,statName:"MergeUp",onExecute:()=>t.mergeSourceUp(e)}):null}_createActionUnmergeUp(e){const t=this._chartWidget.model();return t.model().isUnmergeAvailableForSource(e)?new l.Action({actionId:"Chart.Source.UnmergeUp",label:de,statName:"UnmergeUp",onExecute:()=>t.unmergeSourceUp(e)}):null}_createActionMergeDown(e){const t=this._chartWidget.model();return t.model().isMergeDownAvailableForSource(e)?new l.Action({actionId:"Chart.Source.MergeDown",label:ue,statName:"MergeDown",onExecute:()=>t.mergeSourceDown(e)}):null}_createActionUnmergeDown(e){const t=this._chartWidget.model();return t.model().isUnmergeAvailableForSource(e)?new l.Action({actionId:"Chart.Source.UnmergeDown",label:pe,statName:"UnmergeDown",onExecute:()=>t.unmergeSourceDown(e)}):null}_mergeContentMenuItems(e){ return[this._createActionMergeUp(e),this._createActionUnmergeUp(e),this._createActionMergeDown(e),this._createActionUnmergeDown(e)].filter(n.notNull)}_createActionMove(e){const t=this._mergeContentMenuItems(e);return t.length>0?new l.Action({actionId:"Chart.Source.MoveToPane",label:ce,icon:i(54190),subItems:t}):null}_contextMenuActionsForSeries(e,t){var i;const r=[],n=e.properties().childs().visible.value(),o=this._chartWidget.model().model(),c=(0,s.ensureNotNull)(o.paneForSource(e)),h=this._chartWidget.actions();if(this._isReadOnly())r.push(n?this._createActionHide(e):this._createActionShow(e)),r.push(new l.Separator),r.push(this._createActionScale(e));else{0,r.length>0&&!(r[r.length-1]instanceof l.Separator)&&r.push(new l.Separator),a.enabled("symbol_info")&&r.push(h.showSymbolInfoDialog);o.mainSeries().symbolInfo();if(r.length>0&&!(r[r.length-1]instanceof l.Separator)&&r.push(new l.Separator),!c.isEmpty()&&a.enabled("datasource_copypaste")){const e=Ue(c,t&&"localY"in t?t.localY:void 0),i=We(this._chartWidget,c);(e||i)&&(e&&r.push(e),i&&r.push(i),r.push(new l.Separator))}r.push(He(this._chartWidget,[e]));const s=this._createActionMove(e);null!==s&&r.push(s),r.push(this._createActionScale(e)),r.push(n?this._createActionHide(e):this._createActionShow(e)),r.push(new l.Separator),r.push(Ge(this._chartWidget)),r.push(new l.Separator);Boolean(null===(i=window.widgetbar)||void 0===i?void 0:i.widget("watchlist"))&&h.addToWatchlist&&r.push(h.addToWatchlist),a.enabled("text_notes")&&r.push(h.addToTextNotes),r[r.length-1]instanceof l.Separator||r.push(new l.Separator),a.enabled("show_chart_property_page")&&!this._chartWidget.onWidget()&&r.push(h.mainSeriesPropertiesAction),r[r.length-1]instanceof l.Separator&&r.pop()}return r}_createActionAddChildStudy(e){throw new Error("unsupported")}_createActionAddFundamentals(e){return null}_createActionShowSymbolInfoDialog(e,t){const s=this._chartWidget.model().model();return new l.Action({actionId:"Chart.Dialogs.ShowSymbolInfo",label:Re,icon:i(37924),checkable:!1,statName:"SymbolInfo",onExecute:()=>{const i=e.symbol(),r={symbolInfo:e.symbolInfo(),unitDescription:e=>t.description(e),dateFormatter:s.dateFormatter()};(0,f.showSymbolInfoDialog)(i,r)}})}_createActionShowProperties(e){return new l.Action({actionId:"Chart.Indicator.ShowSettingsDialog",label:Te,icon:i(51983),statName:"EditSelectedObject",onExecute:()=>this._chartWidget.showSourceProperties(e)})}async _contextMenuActionsForStudy(e){const t=this._chartWidget.actions(),i=e.properties().childs().visible.value(),s=[];if(!e.userEditEnabled())return s;if(this._chartWidget.readOnly())s.push(i?this._createActionHide(e):this._createActionShow(e)),s.push(new l.Separator),(0,u.isNonSeriesStudy)(e)||s.push(this._createActionScale(e));else{0,a.enabled("study_on_study")&&e.canHaveChildren()&&s.push(this._createActionAddChildStudy(e));const r=this._createApplyToEntireLayoutCommand(e);if(null!==r&&s.push(r),s.length>0&&!(s[s.length-1]instanceof l.Separator)&&s.push(new l.Separator), a.enabled("symbol_info")&&(e instanceof g.StudyCompare||e instanceof m.study_Overlay)&&null!==e.symbolInfo()&&(s.push(this._createActionShowSymbolInfoDialog(e,this._chartWidget.model().model().availableUnits())),s.push(new l.Separator)),s.push(He(this._chartWidget,[e])),s.push(ze(this._chartWidget,[e])),!(0,u.isNonSeriesStudy)(e)){const t=this._createActionMove(e);null!==t&&s.push(t),s.push(this._createActionScale(e))}s.push(new l.Separator);const n=e.metaInfo();if(e.copiable()){const t=new l.Action({actionId:"Chart.Clipboard.CopySource",label:xe,shortcutHint:(0,_.humanReadableHash)(_.Modifiers.Mod+67),statName:"Copy",onExecute:()=>{this._chartWidget.chartWidgetCollection().clipboard.uiRequestCopy([e])}});s.push(t)}s.push(i?this._createActionHide(e):this._createActionShow(e)),s.push(t.studyRemove),s.push(new l.Separator),a.enabled("property_pages")&&new p.MetaInfoHelper(n).hasUserEditableOptions()&&s.push(this._createActionShowProperties(e)),s[s.length-1]instanceof l.Separator&&s.pop()}return s}_createEditAlertDrawingAction(e){return new TVAction({label:H.format({title:e.title()}),icon:TbbiEditAlertSvg,statName:"EditAlert",onExecute:()=>{window.runOrSignIn((()=>{e.editAlert("pane_context_menu_edit_alert")}),{source:"Alert edit from pane context menu"})}})}_createLineToolTemplateAction(e){return null}_createActionToggleLockLineTools(e){const t=e[0].properties().frozen.value(),s=t?Ae:Le;return new l.Action({actionId:"Chart.SelectedObject.ToggleLocked",label:s,statName:"ToggleLockSelectedObject",checkable:!0,icon:i(t?97874:2872),onExecute:()=>{if(1===e.length)this._chartWidget.toggleLockSelectedObject();else{const i=t?R:V,s=this._chartWidget.model();s.withMacro(i,(()=>{e.forEach((e=>{s.setProperty(e.properties().frozen,!t,i)}))}))}}})}async _contextMenuActionsForLineTool(e){const t=[],s=this._chartWidget.actions(),r=(this._chartWidget.model().model(),()=>{t.push(He(this._chartWidget,e))}),n=()=>{t.push(ze(this._chartWidget,e))},o=()=>{const s=e.filter((e=>e.cloneable()));if(s.length>0){const e=new l.Action({actionId:"Chart.LineTool.Clone",label:Ie,icon:i(1457),shortcutHint:(0,_.humanReadableModifiers)(_.Modifiers.Mod)+"Drag",statName:"Clone",onExecute:()=>this._chartWidget.model().cloneLineTools(s,!1)},"Clone");t.push(e)}return!!s.length},c=()=>{const i=e.filter((e=>e.copiable()));if(i.length>0){const e=new l.Action({actionId:"Chart.Clipboard.CopyLineTools",label:xe,shortcutHint:(0,_.humanReadableHash)(_.Modifiers.Mod+67),statName:"Copy",onExecute:()=>this._chartWidget.chartWidgetCollection().clipboard.uiRequestCopy(i)},"Copy");t.push(e)}return!!i.length},h=()=>{const e=(this._chartWidget,[]);return t.push(...e),e.length>0},d=e=>{const i=new l.Action({actionId:"Chart.ScrollToLineTool",label:Me.format({lineToolName:e.title()}),statName:"GoToLineTool",checkable:!1,onExecute:async()=>this._chartWidget.model().scrollToLineTool(e)});t.push(i)},u=e=>{const t=this._chartWidget.model().model().lineToolsGroupModel(),i=e.map((e=>t.groupForLineTool(e)));return new Set(i).size<=1};if(1===e.length){const i=e[0] ;if(this._chartWidget.readOnly())t.push(s.lineHide);else if(i.userEditEnabled()){0,r(),n(),this._options.objectTree&&s.paneObjectTree&&t.push(s.paneObjectTree),t.push(new l.Separator);let e=o();e=c()||e,e=h()||e,e&&t.push(new l.Separator),t.push(this._createActionToggleLockLineTools([i])),t.push(s.lineHide),t.push(s.lineRemove),i.points().length>0&&this._options.gotoLineTool&&(t.push(new l.Separator),d(i));const u=await this._chartWidget.propertiesDefinitionsForSource(i);if(a.enabled("property_pages")&&null!==u&&(t.push(new l.Separator),t.push(s.format)),i.additionalActions){t.push(new l.Separator);const e=i.additionalActions(this._chartWidget.model());t.push(...e)}}}else this._options.objectTree&&s.paneObjectTree&&t.push(s.paneObjectTree),u(e)&&r(),n(),t.length>0&&t.push(new l.Separator),o(),c(),h(),t.push(new l.Separator),t.push(this._createActionToggleLockLineTools(e)),t.push(s.lineHide),t.push(s.lineRemove),a.enabled("property_pages")&&(t.push(new l.Separator),t.push(s.format));return t}_createEarningsShow(){return null}_createDividendsShow(){return null}_createSplitsShow(){return null}_contextMenuActionsForESD(){return[]}_contextMenuActionsForRollDates(){return[]}_contextMenuActionsForFuturesContractExpiration(){return[]}_contextMenuActionsForLastNews(){return[]}_contextMenuActionsForPublishedTimeline(e){const t=this._chartWidget.actions(),i=[];if(i.push(t.lineHide),window.is_authenticated){const t=e.properties().childs().filter,s=new TVAction({checked:t.value()===PublishedChartsFilter.None,checkable:!0,label:ke,name:"ToggleAllIdeas",statName:"ToggleAllIdeas",onExecute:()=>this._chartWidget.model().setProperty(t,PublishedChartsFilter.None,L)}),r=new TVAction({checked:t.value()===PublishedChartsFilter.Following,checkable:!0,label:Ee,name:"ToggleIdeasOfPeopleAndUser",statName:"ToggleIdeasOfPeopleAndUser",onExecute:()=>this._chartWidget.model().setProperty(t,PublishedChartsFilter.Following,k)}),n=new TVAction({checked:t.value()===PublishedChartsFilter.Private,checkable:!0,label:De,name:"ToggleUserIdeas",statName:"ToggleUserIdeas",onExecute:()=>this._chartWidget.model().setProperty(t,PublishedChartsFilter.Private,E)});i.push(new l.Separator,s,r,n)}return i}_contextMenuActionsForTradingDrawings(e){return e.contextMenuItems()}_createAlertToggleHorzLineLabelAction(e){throw new Error("Not implemented")}_contextMenuActionsForAlertLabel(e,t){throw new Error("Not implemented")}_contextMenuActionsForChartEvents(e){return[]}_createApplyToEntireLayoutCommand(e){if(!this._chartWidget.chartWidgetCollection().applyIndicatorsToAllChartsAvailable())return null;const t=this._chartWidget.model().model();if(e.parentSources().length>0)return null;const i=(0,s.ensureNotNull)(t.paneForSource(e)),r=t.paneForSource(t.mainSeries())===i,n=e instanceof g.StudyCompare&&e.priceScale()===t.mainSeries().priceScale()&&(0,s.ensureNotNull)(e.priceScale()).isPercentage(),o=r?void 0:t.panes().indexOf(i);let a=Ve,c=B,h="AddStudyToEntireLayout";return(0,y.isActingAsSymbolSource)(e)&&(a=Be,c=D,h="AddSymbolToEntireLayout"),new l.Action({ actionId:"Chart.AddIndicatorToAllCharts",label:a,statName:h,onExecute:()=>{const i=(0,s.ensureNotNull)((0,v.clipboardDataForSources)(t.id(),[e])),a=this._chartWidget.chartWidgetCollection(),l={isOnMainPane:r,asCompare:n,paneIndex:o};a.applyIndicatorToAllCharts(this._chartWidget,i,l,c)}},"applyStudyToEntireLayout")}}},37121:(e,t,i)=>{"use strict";i.r(t),i.d(t,{supportedLineTools:()=>s});const s={cursor:{name:"cursor",onlySelectable:!0},dot:{name:"dot",onlySelectable:!0},arrow_cursor:{name:"arrow",onlySelectable:!0},eraser:{name:"eraser",onlySelectable:!0},measure:{name:"measure",onlySelectable:!0},zoom:{name:"zoom",onlySelectable:!0},brush:{name:"LineToolBrush"},highlighter:{name:"LineToolHighlighter"},text:{name:"LineToolText"},anchored_text:{name:"LineToolTextAbsolute",isAnchored:!0},note:{name:"LineToolNote"},anchored_note:{name:"LineToolNoteAbsolute",isAnchored:!0},signpost:{name:"LineToolSignpost"},callout:{name:"LineToolCallout"},balloon:{name:"LineToolBalloon"},comment:{name:"LineToolComment"},arrow_up:{name:"LineToolArrowMarkUp"},arrow_down:{name:"LineToolArrowMarkDown"},arrow_left:{name:"LineToolArrowMarkLeft"},arrow_right:{name:"LineToolArrowMarkRight"},price_label:{name:"LineToolPriceLabel"},price_note:{name:"LineToolPriceNote"},arrow_marker:{name:"LineToolArrowMarker"},flag:{name:"LineToolFlagMark"},vertical_line:{name:"LineToolVertLine"},horizontal_line:{name:"LineToolHorzLine"},cross_line:{name:"LineToolCrossLine"},horizontal_ray:{name:"LineToolHorzRay"},trend_line:{name:"LineToolTrendLine"},info_line:{name:"LineToolInfoLine"},trend_angle:{name:"LineToolTrendAngle"},arrow:{name:"LineToolArrow"},ray:{name:"LineToolRay"},extended:{name:"LineToolExtended"},parallel_channel:{name:"LineToolParallelChannel"},disjoint_angle:{name:"LineToolDisjointAngle"},flat_bottom:{name:"LineToolFlatBottom"},pitchfork:{name:"LineToolPitchfork"},schiff_pitchfork_modified:{name:"LineToolSchiffPitchfork"},schiff_pitchfork:{name:"LineToolSchiffPitchfork2"},inside_pitchfork:{name:"LineToolInsidePitchfork"},pitchfan:{name:"LineToolPitchfan"},gannbox:{name:"LineToolGannSquare"},gannbox_square:{name:"LineToolGannComplex"},gannbox_fixed:{name:"LineToolGannFixed"},gannbox_fan:{name:"LineToolGannFan"},fib_retracement:{name:"LineToolFibRetracement"},fib_trend_ext:{name:"LineToolTrendBasedFibExtension"},fib_speed_resist_fan:{name:"LineToolFibSpeedResistanceFan"},fib_timezone:{name:"LineToolFibTimeZone"},fib_trend_time:{name:"LineToolTrendBasedFibTime"},fib_circles:{name:"LineToolFibCircles"},fib_spiral:{name:"LineToolFibSpiral"},fib_speed_resist_arcs:{name:"LineToolFibSpeedResistanceArcs"},fib_wedge:{name:"LineToolFibWedge"},fib_channel:{name:"LineToolFibChannel"},xabcd_pattern:{name:"LineTool5PointsPattern"},cypher_pattern:{name:"LineToolCypherPattern"},abcd_pattern:{name:"LineToolABCD"},triangle_pattern:{name:"LineToolTrianglePattern"},"3divers_pattern":{name:"LineToolThreeDrivers"},head_and_shoulders:{name:"LineToolHeadAndShoulders"},elliott_impulse_wave:{name:"LineToolElliottImpulse"},elliott_triangle_wave:{ name:"LineToolElliottTriangle"},elliott_triple_combo:{name:"LineToolElliottTripleCombo"},elliott_correction:{name:"LineToolElliottCorrection"},elliott_double_combo:{name:"LineToolElliottDoubleCombo"},cyclic_lines:{name:"LineToolCircleLines"},time_cycles:{name:"LineToolTimeCycles"},sine_line:{name:"LineToolSineLine"},long_position:{name:"LineToolRiskRewardLong"},short_position:{name:"LineToolRiskRewardShort"},forecast:{name:"LineToolPrediction"},date_range:{name:"LineToolDateRange"},price_range:{name:"LineToolPriceRange"},date_and_price_range:{name:"LineToolDateAndPriceRange"},bars_pattern:{name:"LineToolBarsPattern"},ghost_feed:{name:"LineToolGhostFeed"},projection:{name:"LineToolProjection"},rectangle:{name:"LineToolRectangle"},rotated_rectangle:{name:"LineToolRotatedRectangle"},circle:{name:"LineToolCircle"},ellipse:{name:"LineToolEllipse"},triangle:{name:"LineToolTriangle"},polyline:{name:"LineToolPolyline"},path:{name:"LineToolPath"},curve:{name:"LineToolBezierQuadro"},double_curve:{name:"LineToolBezierCubic"},arc:{name:"LineToolArc"},icon:{name:"LineToolIcon"},emoji:{name:"LineToolEmoji"},regression_trend:{name:"LineToolRegressionTrend"},fixed_range_volume_profile:{name:"LineToolFixedRangeVolumeProfile"}}},39969:(e,t,i)=>{"use strict";i.d(t,{clipboardDataForSources:()=>o});var s=i(50151),r=i(89215),n=i(6250);function o(e,t){if(1===t.length&&(0,r.isStudy)(t[0])){const e=t[0];return{title:e.title(),sources:[{source:(0,s.ensureNotNull)(e.state()),type:"study"}]}}const i={sources:[],title:""};return i.sources=t.filter((e=>e.copiable()&&(0,n.isLineTool)(e))).map((t=>{const i={type:"drawing",geometry:t.geometry(),source:{...t.state(!1),points:t.normalizedPoints()},modelId:e};return delete i.source.alertId,i})),i.sources.length>0?(1===i.sources.length?i.title=t[0].title&&t[0].title():i.title="Drawings",i):null}},74585:(e,t,i)=>{"use strict";i.d(t,{addBrandingSource:()=>Q});var s=i(7019),r=i(27714),n=i(4889),o=i(86441),a=i(34026),l=i(7394),c=i(50151),h=i(44352),d=(i(49483),i(2484)),u=i(1288),p=i(14888),_=i(41207),m=i(38031),g=i(70439),f=i(9740),v=i(83499),S=i(91753),y=i(17364),b=i(40858);i(41483);const w=d.enabled("adaptive_logo"),P=d.enabled("small_no_display"),C=d.enabled("38914"),T="site_branding",x="widget_branding",I="widget_referral_branding",M="widget_custom_branding",A="widget_custom_no_powered_branding",L="fundamental_branding",k="fundamental_custom_branding",E="fundamental_custom_no_powered_branding",D="library_branding",B="library_custom_branding",V="library_custom_no_powered_branding",R=navigator.userAgent.toLowerCase().indexOf("chrome")>-1&&-1===navigator.userAgent.toLowerCase().indexOf("edge"),N=window.urlParams||{};window.initData;N.no_referral_id&&enable(N.referral_id||"","aggressive");const O=!1,F=h.t(null,void 0,i(26619)),W=C?h.t(null,void 0,i(5607)):h.t(null,void 0,i(68111));h.t(null,void 0,i(82128)),h.t(null,void 0,i(88841)),h.t(null,void 0,i(99769));function H(e){return"px EuclidCircular"===e?.1:0}class z extends u.CustomSourceBase{constructor(e,t,i){super(e,t),this._canvasWidth=0, this._paneHeight=0,this._left=13,this._bottom=16,this._layout=T,this._needToShow=!0,this._showBranding=!1,this._customLogoSrc="",this._customLogoLink="",this._cubicBezier=new _.CubicBezier(.4,.01,.22,1),this._openAnimation=null,this._closeAnimation=null,this._powBy=null,this._custom=null,this._mainSeries=this._model.mainSeries(),this._visibleSpawn=i,this._showForPro=O,this._visibleSpawn.subscribe((()=>{this._model.updateSource(this)})),this._checkLayout(),this._layout!==M&&this._layout!==k||(this._left=8,this._bottom=5);const s=()=>{this._needToShow?this._showBranding=!0:this._showBranding=!1};this._resizeHandlerDelayed=(0,n.default)(s,200),s(),window.addEventListener("resize",this._resizeHandlerDelayed),this._monitorCanvas=(0,v.createDisconnectedBoundCanvas)(document,(0,r.size)({width:0,height:0})),this._monitorCanvas.subscribeSuggestedBitmapSizeChanged((()=>{this._init()})),this._model.isSnapshot()?this._init():(this._mainSeries.dataEvents().symbolResolved().subscribe(this,this._init),null!==this._mainSeries.symbolInfo()&&this._init()),this._renderer={draw:this.draw.bind(this),hitTest:this.hitTest.bind(this)}}destroy(){window.removeEventListener("resize",this._resizeHandlerDelayed),this._mainSeries.dataEvents().symbolResolved().unsubscribeAll(this),this._powBy&&this._powBy.destroy(),this._visibleSpawn.destroy()}paneViews(e){if(window.TradingView.printing)return[];if(!this._visibleSpawn.value())return[];if(this._layout===T&&!this._showForPro&&window.user&&window.user.is_pro)return[];const t=d.enabled("move_logo_to_main_pane");let i=!1;if(e.maximized().value())i=!0;else if(t)i=this._model.mainPane().collapsed().value()?e===this._model.panes().find((e=>!e.collapsed().value())):e.isMainPane();else if(this._model.lastPane().collapsed().value()){const t=this._model.panes();for(let s=t.length-1;s>=0;--s){const r=t[s];if(!r.collapsed().value()){i=r===e;break}}}else i=e.isLast();return i?[{renderer:this.renderer.bind(this)}]:[]}labelPaneViews(e){return[]}priceAxisViews(e,t){return[]}updateAllViews(){}updateViewsForPane(e){}priceScale(){return null}renderer(e,t){return this._paneHeight=e,this._canvasWidth=t,this._renderer}hasContextMenu(){return!1}onClickOutside(){this._hasAnimation()&&this._startCloseAnimation()}hitTest(e){return!this._showBranding||d.enabled("logo_without_link")?null:this._powBy&&this._layout!==A&&this._layout!==E&&(this._powBy.hitTest(e)||this._custom&&this._custom.hitTest(e))?new p.HitTestResult(p.HitTestResult.CUSTOM,{hideCrosshairLinesOnHover:!0,clickHandler:()=>{this._openLink()},tapHandler:()=>{this._hasAnimation()?this._toggleOpenAnimatedOrOpenLink():this._openLink()},mouseEnterHandler:()=>{this._hasAnimation()&&this._startOpenAnimation()},mouseLeaveHandler:()=>{this._hasAnimation()&&this._startCloseAnimation()}}):null}tvUrl(){let e=new URL("https://www.tradingview.com/");if(this._customLogoLink)return this._customLogoLink;if(this._layout===D||this._layout===B){let t;switch(!0){case d.enabled("charting_library"):t="library";break;case d.enabled("trading_terminal"):t="trading-terminal"} -return e.searchParams.append("utm_source",window.location.origin),e.searchParams.append("utm_medium","library"),t&&e.searchParams.append("utm_campaign",t),e.toString()}return e.toString()}draw(e,t){if(!this._showBranding)return;let i=0;N.utm=!0,(0,v.drawScaled)(e,t.pixelRatio,(()=>{this._powBy&&this._powBy.show&&(i=this._powBy.height,e.save(),e.translate(this._left,this._paneHeight-this._bottom-i),this._powBy.draw(e,t,this._canvasWidth),e.restore()),this._custom&&this._custom.show&&(e.save(),e.translate(this._left,this._paneHeight-this._bottom-i-this._custom.height),this._custom.draw(e,t),e.restore())}))}_init(){const e=this._mainSeries.symbolInfo();this._powBy&&this._powBy.destroy(),this._powBy=new Z(this._layout,(null==e?void 0:e.name)||"",this._model,(()=>this._model.fullUpdate())),this._custom=new J(this._layout,this._customLogoSrc,(()=>this._model.fullUpdate())),this._openAnimation=null,this._closeAnimation=null}_checkLayout(){if(d.enabled("widget"))0;else if(d.enabled("charting_library")||d.enabled("trading_terminal")){const e=JSON.parse(N.logo)||{};e.image?(this._customLogoSrc=e.image,this._customLogoLink=e.link,this._needToShow=d.enabled("widget_logo"),d.enabled("link_to_tradingview")?this._layout=B:this._layout=V):(this._layout=D,this._needToShow=d.enabled("widget_logo"))}else this._layout=T}_startOpenAnimation(){null===this._openAnimation&&(null!==this._closeAnimation&&(this._closeAnimation.stop(),this._closeAnimation=null),this._openAnimation=(0,g.doAnimate)({from:this._currentStateForAnimation(),to:this._openedStateForAnimation(),duration:200,easing:this._cubicBezier.easingFunc,onStep:this._animatedDrawStep.bind(this)}))}_startCloseAnimation(){null===this._closeAnimation&&(null!==this._openAnimation&&(this._openAnimation.stop(),this._openAnimation=null),this._closeAnimation=(0,g.doAnimate)({from:this._currentStateForAnimation(),to:this._closedStateForAnimation(),duration:200,easing:this._cubicBezier.easingFunc,onStep:this._animatedDrawStep.bind(this)}))}_currentStateForAnimation(){return(0,c.ensureNotNull)(this._powBy).width}_closedStateForAnimation(){return(0,c.ensureNotNull)(this._powBy).minimizedAnimationWidth()}_openedStateForAnimation(){return(0,c.ensureNotNull)(this._powBy).maximizedAnimationWidth()}_animatedDrawStep(e,t){(0,c.ensureNotNull)(this._powBy).animatedDrawStep(e,t),this._model.lightUpdate()}_hasAnimation(){return null!==this._powBy&&this._powBy.hasAnimation()}_openLink(){if(this._layout===T)return!1;d.enabled("widget");return(0,c.ensureNotNull)(window.open(this.tvUrl(),"_blank")).opener=null,!0}_toggleOpenAnimatedOrOpenLink(){null!==this._openAnimation&&this._openAnimation.completed()?this._openLink()||this._startCloseAnimation():this._startOpenAnimation()}}function U(e){return!P||e>480}function j(e){return!w||e>500}const G={customBrandingTradingViewText:l.colorsPalette["color-brand"],customBrandingText:l.colorsPalette["color-cold-gray-850"],background:l.colorsPalette["color-cold-gray-900"],shadow:(0,m.generateColor)(l.colorsPalette["color-white"],91),text:l.colorsPalette["color-white"], -staticTextBackground:(0,m.generateColor)(l.colorsPalette["color-cold-gray-800"],20),logo:l.colorsPalette["color-white"]},q={customBrandingTradingViewText:l.colorsPalette["color-brand"],customBrandingText:l.colorsPalette["color-cold-gray-850"],background:l.colorsPalette["color-white"],shadow:(0,m.generateColor)(l.colorsPalette["color-black"],91),text:l.colorsPalette["color-cold-gray-900"],staticTextBackground:(0,m.generateColor)(l.colorsPalette["color-white"],20),logo:l.colorsPalette["color-cold-gray-900"]};const $={};function Y(e,t){const i=$[e];if(void 0!==i)return i.image||null;const s={};return $[e]=s,function(e){return new Promise((t=>{const i=S.replace(/fill="#[\da-f]{6}"/i,`fill="${e}"`),s=new Image;s.onload=()=>{s.onload=null,t(s)},s.src=URL.createObjectURL(new Blob([i],{type:"image/svg+xml"}))}))}(e).then((e=>{s.image=e,t()})),null}function K(e){const{a:t,d:i,e:s,f:r}=e;return new o.Point(s/t,r/i)}class X{constructor(){this._originPoint=null}hitTest(e){const t=this._getHitTestBox();if(t)return(0,a.pointInBox)(e,t)}_getHitTestBox(){const e=this._originPoint;if(e){const{x:t,y:i}=e;return(0,o.box)(e,new o.Point(t+this.width,i+this.height))}}}class Z extends X{constructor(e,t,i,s){super(),this.show=!0,this.borderRadius=0,this._needDisplayImage=!1,this._imageWidth=22,this._imageHeight=11,this._animatedWidth=32,this._font=`px ${y.CHART_FONT_FAMILY}`,this._txt="TradingView",this._textWidth=0,this._maximizedAnimationTextWidth=0,this._textWidthCache=new b.TextWidthCache,this._pixelRatio=1,this._model=i,this._layout=e,this._symbol=t,this._showAnimatedBranding=d.enabled("show_animated_logo")||this._layout===x,this._alwaysMaximized=d.enabled("logo_always_maximized")||O,this._fontSize=this._showAnimatedBranding||this._layout===I?11:14,this._showAnimatedBranding||this._layout!==M&&this._layout!==k||(this._fontSize=12),this.width=32,this.height=this._fontSize+2,this._requestRepaint=s,this._init(),this._checkFontLoaded(),this._recalculateMetrics()}destroy(){this._model.properties().childs().paneProperties.childs().background.unsubscribeAll(this),this._model.onChartThemeLoaded().unsubscribeAll(this)}hasAnimation(){return this._showAnimatedBranding&&!this._alwaysMaximized}minimizedAnimationWidth(){return 32}maximizedAnimationWidth(){return this._maximizedAnimationTextWidth+32-3}animatedDrawStep(e,t){this._animatedWidth=t}draw(e,t,i){t.pixelRatio!==this._pixelRatio&&(this._textWidthCache.reset(),this._pixelRatio=t.pixelRatio);const s=this._colors;if(this._showAnimatedBranding)this._needDisplayImage&&null!==this._getLogoImage(s.logo)&&(e.save(),e.translate(-Math.ceil((32-this._imageWidth)/2),Math.floor((32-this._imageHeight)/2)),this._originPoint=K(e.getTransform()),this.borderRadius=16,this._drawFillRectWithRoundedCorner(e,-.5,0,this._animatedWidth,32,this.borderRadius),this._drawLogoImage(e,Math.round((32-this._imageWidth)/2),Math.round((32-this._imageHeight)/2)+0),this._animatedWidth>32&&(e.translate(Math.round(32),Math.round(this._fontSize*H(this._font))),this._drawFillTextCropWidth(e,this._animatedWidth-32)),e.restore(), +return e.searchParams.append("utm_source",window.location.origin),e.searchParams.append("utm_medium","library"),t&&e.searchParams.append("utm_campaign",t),e.toString()}return e.toString()}draw(e,t){if(!this._showBranding)return;let i=0;N.utm=!0,(0,v.drawScaled)(e,t.pixelRatio,(()=>{this._powBy&&this._powBy.show&&(i=this._powBy.height,e.save(),e.translate(this._left,this._paneHeight-this._bottom-i),this._powBy.draw(e,t,this._canvasWidth),e.restore()),this._custom&&this._custom.show&&(e.save(),e.translate(this._left,this._paneHeight-this._bottom-i-this._custom.height),this._custom.draw(e,t),e.restore())}))}_init(){const e=this._mainSeries.symbolInfo();this._powBy&&this._powBy.destroy(),this._powBy=new X(this._layout,(null==e?void 0:e.name)||"",this._model,(()=>this._model.fullUpdate())),this._custom=new J(this._layout,this._customLogoSrc,(()=>this._model.fullUpdate())),this._openAnimation=null,this._closeAnimation=null}_checkLayout(){if(d.enabled("widget"))0;else if(d.enabled("charting_library")||d.enabled("trading_terminal")){const e=JSON.parse(N.logo)||{};e.image?(this._customLogoSrc=e.image,this._customLogoLink=e.link,this._needToShow=d.enabled("widget_logo"),d.enabled("link_to_tradingview")?this._layout=B:this._layout=V):(this._layout=D,this._needToShow=d.enabled("widget_logo"))}else this._layout=T}_startOpenAnimation(){null===this._openAnimation&&(null!==this._closeAnimation&&(this._closeAnimation.stop(),this._closeAnimation=null),this._openAnimation=(0,g.doAnimate)({from:this._currentStateForAnimation(),to:this._openedStateForAnimation(),duration:200,easing:this._cubicBezier.easingFunc,onStep:this._animatedDrawStep.bind(this)}))}_startCloseAnimation(){null===this._closeAnimation&&(null!==this._openAnimation&&(this._openAnimation.stop(),this._openAnimation=null),this._closeAnimation=(0,g.doAnimate)({from:this._currentStateForAnimation(),to:this._closedStateForAnimation(),duration:200,easing:this._cubicBezier.easingFunc,onStep:this._animatedDrawStep.bind(this)}))}_currentStateForAnimation(){return(0,c.ensureNotNull)(this._powBy).width}_closedStateForAnimation(){return(0,c.ensureNotNull)(this._powBy).minimizedAnimationWidth()}_openedStateForAnimation(){return(0,c.ensureNotNull)(this._powBy).maximizedAnimationWidth()}_animatedDrawStep(e,t){(0,c.ensureNotNull)(this._powBy).animatedDrawStep(e,t),this._model.lightUpdate()}_hasAnimation(){return null!==this._powBy&&this._powBy.hasAnimation()}_openLink(){if(this._layout===T)return!1;d.enabled("widget");return(0,c.ensureNotNull)(window.open(this.tvUrl(),"_blank")).opener=null,!0}_toggleOpenAnimatedOrOpenLink(){null!==this._openAnimation&&this._openAnimation.completed()?this._openLink()||this._startCloseAnimation():this._startOpenAnimation()}}function U(e){return!P||e>480}function j(e){return!w||e>500}const G={customBrandingTradingViewText:l.colorsPalette["color-brand"],customBrandingText:l.colorsPalette["color-cold-gray-850"],background:l.colorsPalette["color-cold-gray-900"],shadow:(0,m.generateColor)(l.colorsPalette["color-white"],91),text:l.colorsPalette["color-white"], +staticTextBackground:(0,m.generateColor)(l.colorsPalette["color-cold-gray-800"],20),logo:l.colorsPalette["color-white"]},q={customBrandingTradingViewText:l.colorsPalette["color-brand"],customBrandingText:l.colorsPalette["color-cold-gray-850"],background:l.colorsPalette["color-white"],shadow:(0,m.generateColor)(l.colorsPalette["color-black"],91),text:l.colorsPalette["color-cold-gray-900"],staticTextBackground:(0,m.generateColor)(l.colorsPalette["color-white"],20),logo:l.colorsPalette["color-cold-gray-900"]};const $={};function Y(e,t){const i=$[e];if(void 0!==i)return i.image||null;const s={};return $[e]=s,function(e){return new Promise((t=>{const i=S.replace(/fill="#[\da-f]{6}"/i,`fill="${e}"`),s=new Image;s.onload=()=>{s.onload=null,t(s)},s.src=URL.createObjectURL(new Blob([i],{type:"image/svg+xml"}))}))}(e).then((e=>{s.image=e,t()})),null}function K(e){const{a:t,d:i,e:s,f:r}=e;return new o.Point(s/t,r/i)}class Z{constructor(){this._originPoint=null}hitTest(e){const t=this._getHitTestBox();if(t)return(0,a.pointInBox)(e,t)}_getHitTestBox(){const e=this._originPoint;if(e){const{x:t,y:i}=e;return(0,o.box)(e,new o.Point(t+this.width,i+this.height))}}}class X extends Z{constructor(e,t,i,s){super(),this.show=!0,this.borderRadius=0,this._needDisplayImage=!1,this._imageWidth=22,this._imageHeight=11,this._animatedWidth=32,this._font=`px ${y.CHART_FONT_FAMILY}`,this._txt="TradingView",this._textWidth=0,this._maximizedAnimationTextWidth=0,this._textWidthCache=new b.TextWidthCache,this._pixelRatio=1,this._model=i,this._layout=e,this._symbol=t,this._showAnimatedBranding=d.enabled("show_animated_logo")||this._layout===x,this._alwaysMaximized=d.enabled("logo_always_maximized")||O,this._fontSize=this._showAnimatedBranding||this._layout===I?11:14,this._showAnimatedBranding||this._layout!==M&&this._layout!==k||(this._fontSize=12),this.width=32,this.height=this._fontSize+2,this._requestRepaint=s,this._init(),this._checkFontLoaded(),this._recalculateMetrics()}destroy(){this._model.properties().childs().paneProperties.childs().background.unsubscribeAll(this),this._model.onChartThemeLoaded().unsubscribeAll(this)}hasAnimation(){return this._showAnimatedBranding&&!this._alwaysMaximized}minimizedAnimationWidth(){return 32}maximizedAnimationWidth(){return this._maximizedAnimationTextWidth+32-3}animatedDrawStep(e,t){this._animatedWidth=t}draw(e,t,i){t.pixelRatio!==this._pixelRatio&&(this._textWidthCache.reset(),this._pixelRatio=t.pixelRatio);const s=this._colors;if(this._showAnimatedBranding)this._needDisplayImage&&null!==this._getLogoImage(s.logo)&&(e.save(),e.translate(-Math.ceil((32-this._imageWidth)/2),Math.floor((32-this._imageHeight)/2)),this._originPoint=K(e.getTransform()),this.borderRadius=16,this._drawFillRectWithRoundedCorner(e,-.5,0,this._animatedWidth,32,this.borderRadius),this._drawLogoImage(e,Math.round((32-this._imageWidth)/2),Math.round((32-this._imageHeight)/2)+0),this._animatedWidth>32&&(e.translate(Math.round(32),Math.round(this._fontSize*H(this._font))),this._drawFillTextCropWidth(e,this._animatedWidth-32)),e.restore(), this.width=this._animatedWidth);else if(this._layout===M||this._layout===k){e.font=this._fontSize+this._font;const t=e.measureText(this._txt).width+2;this.width=t+e.measureText("TradingView").width+2,this._originPoint=K(e.getTransform()),e.save(),e.globalAlpha=.7,e.fillStyle=this._colors.customBrandingText,e.fillText(this._txt,0,12),e.fillStyle=this._colors.customBrandingTradingViewText,e.fillText("TradingView",t,12),e.restore()}else if(U(i)&&this._layout===I){if(this._getLogoImage(s.logo)){e.save(),e.translate(-Math.ceil((32-this._imageWidth)/2),Math.floor((32-this._imageHeight)/2)),this.borderRadius=16,this.width=32;const t=j(i);t&&(this.width+=this._maximizedAnimationTextWidth+4),this._drawFillRectWithRoundedCorner(e,-.5,0,this.width,32,this.borderRadius),this._drawLogoImage(e,Math.round((32-this._imageWidth)/2)+4,Math.round((32-this._imageHeight)/2)+0),t&&(e.translate(35,Math.round(this._fontSize*H(this._font))),this._drawTextFill(e)),e.restore()}}else if(U(i))if(this._needDisplayImage&&null!==this._getLogoImage(s.logo)){e.save(),e.translate(-Math.ceil((32-this._imageWidth)/2),Math.floor((32-this._imageHeight)/2)),this._originPoint=K(e.getTransform()),this.borderRadius=16,this._drawBgCircle(e),e.drawImage((0,c.ensureNotNull)(this._getLogoImage(s.logo)),Math.round((32-this._imageWidth)/2),Math.round((32-this._imageHeight)/2)+0);const t=j(i);t&&(e.translate(37,Math.round(this._fontSize*H(this._font))),this._drawTextStroke(e),this._drawTextFill(e)),e.restore(),this.width=32,t&&(this.width+=this._maximizedAnimationTextWidth)}else{const t=j(i);t&&(e.save(),e.translate(R?-.5:0,-.5),this._drawTextStroke(e),this._drawTextFill(e),e.restore()),t&&(this.width=this._maximizedAnimationTextWidth)}else this.width=0}_init(){this._checkLayout(),this.show&&(this.height=this._needDisplayImage?32:this._fontSize+2,this._updateColors(),this._model.properties().childs().paneProperties.childs().background.subscribe(this,this._updateColors),this._model.onChartThemeLoaded().subscribe(this,this._updateColors))}_checkFontLoaded(){if(document.fonts&&document.fonts.check&&document.fonts.load){document.fonts.check(`${this._fontSize}px EuclidCircular`)?this._font="px EuclidCircular":document.fonts.load(`${this._fontSize}px EuclidCircular`,this._txt).then((()=>{this._font="px EuclidCircular",this._recalculateMetrics(),this._requestRepaint()}))}}_recalculateMetrics(){const e=(0,v.createDisconnectedBoundCanvas)(document,(0,r.size)({width:0,height:0})),t=(0,v.getPretransformedContext2D)(e,!0);t.font=this._fontSize+this._font,this._textWidth=Math.ceil(t.measureText(this._txt).width)+2;let i=this._textWidth+8;i%2==0&&(i+=1),this._maximizedAnimationTextWidth=i,this._textWidthCache.reset(),this._alwaysMaximized&&(this._animatedWidth=this.maximizedAnimationWidth())}_updateColors(){this._colors=this._model.isDark()?G:q}_getLogoImage(e){return Y(e,this._requestRepaint)}_checkLayout(){switch(this._layout){case x:case I:case M:case L:case k:case B:case D:case T:this.show=!0;break;case A:case E:case V:this.show=!1}switch(this._layout){case D: -this._needDisplayImage=!0,this._txt=F;break;case B:this._txt=W}}_drawTextStroke(e){e.save(),e.textBaseline="middle",e.textAlign="start",e.font=this._fontSize+this._font,e.strokeStyle=this._colors.staticTextBackground,e.lineWidth=4,e.lineJoin="round",e.strokeText(this._txt,0,16+this._textWidthCache.yMidCorrection(e,this._txt)),e.restore()}_drawTextFill(e){e.save(),e.textBaseline="middle",e.textAlign="start",e.font=this._fontSize+this._font,e.fillStyle=this._colors.text,e.fillText(this._txt,0,16+this._textWidthCache.yMidCorrection(e,this._txt)),e.restore()}_drawFillTextCropWidth(e,t){e.save(),e.beginPath(),e.rect(0,0,t,this.height),e.clip(),this._drawTextFill(e),e.restore()}_drawBgCircle(e){const t=this.borderRadius,i=2*Math.PI;e.save(),e.beginPath(),e.fillStyle=this._colors.shadow,e.arc(t,t,t+1,0,i),e.fill(),e.closePath(),e.restore(),e.save(),e.beginPath(),e.fillStyle=this._colors.background,e.arc(t,t,t,0,i,!1),e.fill(),e.closePath(),e.restore()}_drawFillRectWithRoundedCorner(e,t,i,s,r,n){e.save(),(0,f.drawRoundRect)(e,t-1,i-1,s+2,r+2,n),e.fillStyle=this._colors.shadow,e.fill(),e.closePath(),e.restore(),e.save(),(0,f.drawRoundRect)(e,t,i,s,r,n),e.fillStyle=this._colors.background,e.fill(),e.closePath(),e.restore()}_drawLogoImage(e,t,i){e.drawImage((0,c.ensureNotNull)(this._getLogoImage(this._colors.logo)),t,i)}}class J extends X{constructor(e,t,i){super(),this.show=!1,this.width=0,this.height=0,this._ready=!1,this._layout=e,this._src=t,this._onReadyCallback=i,this._checkLayout();const s=new Image;this._img=s,this.show&&(s.addEventListener("load",(()=>{this.width=Math.round(s.width),this.height=Math.round(s.height),this._ready=!0,this._onReadyCallback&&this._onReadyCallback()})),s.crossOrigin="anonymous",s.src=this._src)}draw(e,t){this._ready&&(e.drawImage(this._img,-.5,-.5,this.width,this.height),this._originPoint=K(e.getTransform()))}_checkLayout(){switch(this._layout){case M:case A:case k:case E:case B:case V:this.show=!0;break;case T:case x:case I:case L:case D:this.show=!1}}}function Q(e){e.addCustomSource("branding",((t,i)=>{const r=(0,s.combine)(((e,t)=>{const s=null!=e?e:t;return null!==s&&s.hasModel()&&s.model().model()===i}),e.maximizedChartWidget(),e.leftBottomChartWidget());return new z(t,i,r)}))}},83499:(e,t,i)=>{"use strict";i.d(t,{getCanvasDevicePixelRatio:()=>a,getBindingPixelRatio:()=>l,getContext2D:()=>c,getPrescaledContext2D:()=>h,getPretransformedContext2D:()=>d,fillRect:()=>u,clearRect:()=>p,drawScaled:()=>_,createDisconnectedCanvas:()=>m,createDisconnectedBoundCanvas:()=>g,createBoundCanvas:()=>v,calcTextHorizontalShift:()=>S,disableSelection:()=>y,addExclusionArea:()=>b,measureText:()=>P});var s=i(27714),r=i(50151),n=i(80142),o=i(49483);function a(e){var t,i;return Math.max(1,(null===(i=null===(t=e.ownerDocument)||void 0===t?void 0:t.defaultView)||void 0===i?void 0:i.devicePixelRatio)||1)}function l(e){return a(e.canvasElement)}function c(e){const t=(0,r.ensureNotNull)(e.getContext("2d"));return t.setTransform(1,0,0,1,0,0),t}function h(e){const t=(0,r.ensureNotNull)(e.getContext("2d")),i=a(e) +this._needDisplayImage=!0,this._txt=F;break;case B:this._txt=W}}_drawTextStroke(e){e.save(),e.textBaseline="middle",e.textAlign="start",e.font=this._fontSize+this._font,e.strokeStyle=this._colors.staticTextBackground,e.lineWidth=4,e.lineJoin="round",e.strokeText(this._txt,0,16+this._textWidthCache.yMidCorrection(e,this._txt)),e.restore()}_drawTextFill(e){e.save(),e.textBaseline="middle",e.textAlign="start",e.font=this._fontSize+this._font,e.fillStyle=this._colors.text,e.fillText(this._txt,0,16+this._textWidthCache.yMidCorrection(e,this._txt)),e.restore()}_drawFillTextCropWidth(e,t){e.save(),e.beginPath(),e.rect(0,0,t,this.height),e.clip(),this._drawTextFill(e),e.restore()}_drawBgCircle(e){const t=this.borderRadius,i=2*Math.PI;e.save(),e.beginPath(),e.fillStyle=this._colors.shadow,e.arc(t,t,t+1,0,i),e.fill(),e.closePath(),e.restore(),e.save(),e.beginPath(),e.fillStyle=this._colors.background,e.arc(t,t,t,0,i,!1),e.fill(),e.closePath(),e.restore()}_drawFillRectWithRoundedCorner(e,t,i,s,r,n){e.save(),(0,f.drawRoundRect)(e,t-1,i-1,s+2,r+2,n),e.fillStyle=this._colors.shadow,e.fill(),e.closePath(),e.restore(),e.save(),(0,f.drawRoundRect)(e,t,i,s,r,n),e.fillStyle=this._colors.background,e.fill(),e.closePath(),e.restore()}_drawLogoImage(e,t,i){e.drawImage((0,c.ensureNotNull)(this._getLogoImage(this._colors.logo)),t,i)}}class J extends Z{constructor(e,t,i){super(),this.show=!1,this.width=0,this.height=0,this._ready=!1,this._layout=e,this._src=t,this._onReadyCallback=i,this._checkLayout();const s=new Image;this._img=s,this.show&&(s.addEventListener("load",(()=>{this.width=Math.round(s.width),this.height=Math.round(s.height),this._ready=!0,this._onReadyCallback&&this._onReadyCallback()})),s.crossOrigin="anonymous",s.src=this._src)}draw(e,t){this._ready&&(e.drawImage(this._img,-.5,-.5,this.width,this.height),this._originPoint=K(e.getTransform()))}_checkLayout(){switch(this._layout){case M:case A:case k:case E:case B:case V:this.show=!0;break;case T:case x:case I:case L:case D:this.show=!1}}}function Q(e){e.addCustomSource("branding",((t,i)=>{const r=(0,s.combine)(((e,t)=>{const s=null!=e?e:t;return null!==s&&s.hasModel()&&s.model().model()===i}),e.maximizedChartWidget(),e.leftBottomChartWidget());return new z(t,i,r)}))}},83499:(e,t,i)=>{"use strict";i.d(t,{getCanvasDevicePixelRatio:()=>a,getBindingPixelRatio:()=>l,getContext2D:()=>c,getPrescaledContext2D:()=>h,getPretransformedContext2D:()=>d,fillRect:()=>u,clearRect:()=>p,drawScaled:()=>_,createDisconnectedCanvas:()=>m,createDisconnectedBoundCanvas:()=>g,createBoundCanvas:()=>v,calcTextHorizontalShift:()=>S,disableSelection:()=>y,addExclusionArea:()=>b,measureText:()=>P});var s=i(27714),r=i(50151),n=i(80142),o=i(49483);function a(e){var t,i;return Math.max(1,(null===(i=null===(t=e.ownerDocument)||void 0===t?void 0:t.defaultView)||void 0===i?void 0:i.devicePixelRatio)||1)}function l(e){return a(e.canvasElement)}function c(e){const t=(0,r.ensureNotNull)(e.getContext("2d"));return t.setTransform(1,0,0,1,0,0),t}function h(e){const t=(0,r.ensureNotNull)(e.getContext("2d")),i=a(e) ;return t.setTransform(i,0,0,i,0,0),t}function d(e,t){const i=(0,r.ensureNotNull)(e.canvasElement.getContext("2d")),s=l(e);return i.setTransform(s,0,0,s,0,0),t||i.translate(.5,.5),i}function u(e,t,i,s,r,n){e.save(),e.translate(-.5,-.5),e.fillStyle=n,e.fillRect(t,i,s,r),e.restore()}function p(e,t,i,s,r,n){e.save(),e.translate(-.5,-.5),e.globalCompositeOperation="copy",e.fillStyle=n,e.fillRect(t,i,s,r),e.restore()}function _(e,t,i){e.save(),e.scale(t,t),i(),e.restore()}function m(e,t,i){const s=f(e);return void 0===i&&(i=a(s)),s.width=t.width*i,s.height=t.height*i,s}function g(e,t){const i=f(e),r=(0,s.bindCanvasElementBitmapSizeTo)(i,{type:"device-pixel-content-box",transform:(e,t)=>({width:Math.max(e.width,t.width),height:Math.max(e.height,t.height)})});return r.resizeCanvasElement(t),r}function f(e){const t=e.createElement("canvas");return y(t),t}function v(e,t){const i=f((0,r.ensureNotNull)(e.ownerDocument));e.appendChild(i);const n=(0,s.bindCanvasElementBitmapSizeTo)(i,{type:"device-pixel-content-box",transform:(e,t)=>({width:Math.max(e.width,t.width),height:Math.max(e.height,t.height)})});return n.resizeCanvasElement(t),n}function S(e,t){return"center"===e.textAlign?0:(0,n.isRtl)()?"start"===e.textAlign||"right"===e.textAlign?t:0:"start"===e.textAlign||"left"===e.textAlign?0:t}function y(e){e.style.userSelect="none",e.style.webkitUserSelect="none",e.style.msUserSelect="none",e.style.MozUserSelect="none",e.style.webkitTapHighlightColor="transparent"}function b(e,t,i){e.beginPath(),e.rect(0,0,t.physicalWidth,t.physicalHeight);for(let s=0;s{"use strict";i.d(t,{changedAll:()=>n,ChartChangesWatcher:()=>o});var s=i(26867),r=i.n(s);const n=3;class o{constructor(e,t,i){this._undoHistoryHasChanges=!1,this._changesMask=0,this._recursiveLoopingGuard=!1,this._handleMetainfoChanged=()=>{this._changesMask=1|this._changesMask},this._recalculateHaveChanges=(e,t)=>{if(!this._recursiveLoopingGuard)try{this._recursiveLoopingGuard=!0;const e=this._undoHistoryHasChanges?1:0;let i=this._lineToolsHaveChanges.value()?2:0;const s=this._changesMask;this._changesMask=e|i,s!==this._changesMask&&(this._changesMask&&(this._chartWidgetCollection.getAll().forEach((e=>{var i;null===(i=e.lineToolsSynchronizer())||void 0===i||i.markAsValidatedBecuaseOfSavingToContent(!!t)})),i=this._lineToolsHaveChanges.value()?2:0,this._changesMask=e|i),this._onValueChanged.fire(0!==this._changesMask))}finally{this._recursiveLoopingGuard=!1}},this._chartWidgetCollection=e,this._undoHistory=e.undoHistory,this._lineToolsHaveChanges=e.lineToolsSynchronizerHasChanges,this._chartSaver=t,this._globalEvents=i,this._onValueChanged=new(r()), this._subscribe()}destroy(){this._unsubscribe(),this._onValueChanged.destroy()}changes(){return this._changesMask}hasChanges(){return this._changesMask>0}getOnChange(){return this._onValueChanged}_subscribe(){this._globalEvents.subscribe("chart_loaded",this._handleChartLoaded,this),this._undoHistory.undoStack().onChange().subscribe(this,this._handleUndoHistoryChange),this._chartSaver.chartSaved().subscribe(this,this._handleChartSaved),this._lineToolsHaveChanges.subscribe(this._recalculateHaveChanges);this._chartWidgetCollection.metaInfo.name.subscribe(this._handleMetainfoChanged)}_unsubscribe(){this._globalEvents.unsubscribe("chart_loaded",this._handleChartLoaded,this),this._undoHistory.undoStack().onChange().unsubscribe(this,this._handleUndoHistoryChange),this._chartSaver.chartSaved().unsubscribe(this,this._handleChartSaved),this._lineToolsHaveChanges.unsubscribe(this._recalculateHaveChanges);this._chartWidgetCollection.metaInfo.name.unsubscribe(this._handleMetainfoChanged)}_setUndoHistoryHasChanges(e,t){this._undoHistoryHasChanges=e,this._recalculateHaveChanges(e,t)}_handleChartLoaded(){this._setUndoHistoryHasChanges(!1)}_handleUndoHistoryChange(e){e&&!e.customFlag("doesnt_affect_save")&&this._setUndoHistoryHasChanges(!0)}_handleChartSaved(e){e&&this._setUndoHistoryHasChanges(!1,!0)}}},73552:(e,t,i)=>{"use strict";i.d(t,{shiftPressed:()=>g,modifierPressed:()=>f,globalEnvironmentState:()=>v,ChartHotkeysListener:()=>S});var s,r,n,o=i(66141),a=i(68335),l=i(35749),c=i(40549),h=i.n(c),d=i(55611);const u=new(h())(Boolean((null!==(s=o.pressedKeys.value())&&void 0!==s?s:0)&a.Modifiers.Shift)),p=new(h())(Boolean((null!==(r=o.pressedKeys.value())&&void 0!==r?r:0)&a.Modifiers.Mod)),_=new(h())(Boolean((null!==(n=o.pressedKeys.value())&&void 0!==n?n:0)&a.Modifiers.Alt)),m=[a.Modifiers.None,a.Modifiers.Alt,a.Modifiers.Mod,a.Modifiers.Alt+a.Modifiers.Shift];function g(){return u}function f(){return p}function v(){return new d.EnvironmentState({altKey:_.value(),ctrlKey:f().value(),metaKey:f().value(),shiftKey:g().value()})}o.pressedKeys.subscribe(((e=0)=>{u.setValue(Boolean(e&a.Modifiers.Shift)),p.setValue(Boolean(e&a.Modifiers.Mod)),_.setValue(Boolean(e&a.Modifiers.Alt))}));class S{constructor(e,t){this._pressedKeyCode=null,this._boundKeydownHandler=null,this._boundKeyupHandler=null,this._chartWidget=e,this._parent=t,this._boundKeydownHandler=this._keydownHandler.bind(this),this._boundKeyupHandler=this._keyupHandler.bind(this),this._parent.ownerDocument.addEventListener("keydown",this._boundKeydownHandler),this._parent.ownerDocument.addEventListener("keyup",this._boundKeyupHandler)}destroy(){null!==this._boundKeydownHandler&&(this._parent.ownerDocument.removeEventListener("keydown",this._boundKeydownHandler),this._boundKeydownHandler=null),null!==this._boundKeyupHandler&&(this._parent.ownerDocument.removeEventListener("keyup",this._boundKeyupHandler),this._boundKeyupHandler=null)}_keydownHandler(e){ this._chartWidget.hasModel()&&window.document.activeElement===window.document.body&&this._chartWidget.isActive()&&(this._handleMoveDrawingsKeyDown(e)||this._handleScrollKeyDown(e)||this._handleZoomKeyDown(e))&&e.preventDefault()}_keyupHandler(e){this._chartWidget.hasModel()&&this._handleScrollKeyUp(e)}_handleMoveDrawingsKeyDown(e){const t=255&(0,a.hashFromEvent)(e),i=this._chartWidget.model();switch(t){case 37:return i.moveSelectedToolsLeft();case 39:return i.moveSelectedToolsRight();case 38:return i.moveSelectedToolsUp();case 40:return i.moveSelectedToolsDown()}return!1}_handleScrollKeyDown(e){if(null!==this._pressedKeyCode)return!1;const t=(0,a.hashFromEvent)(e),i=255&t,s=(0,a.modifiersFromEvent)(e);let r;if(37===i)r=1;else{if(39!==i)return!1;r=-1}return!(a.isMacKeyboard&&s===a.Modifiers.Mod||!m.includes(s))&&(!(0,l.isNativeUIInteraction)(t,e.target)&&(this._pressedKeyCode=i,s===a.Modifiers.None?this._chartWidget.scrollHelper().moveByBar(r):s===a.Modifiers.Alt||s===a.Modifiers.Mod?this._chartWidget.scrollHelper().move(r):-1===r?this._chartWidget.model().timeScale().scrollToRealtime(!0):this._chartWidget.model().timeScale().scrollToFirstBar(),!0))}_handleScrollKeyUp(e){if(null===this._pressedKeyCode)return!1;const t=(0,a.hashFromEvent)(e);if((0,l.isNativeUIInteraction)(t,e.target))return!1;return(255&t)===this._pressedKeyCode&&(this._pressedKeyCode=null,this._chartWidget.scrollHelper().stopMove(),!0)}_handleZoomKeyDown(e){const t=(0,a.hashFromEvent)(e),i=255&t;if((0,a.modifiersFromEvent)(e)!==a.Modifiers.Mod||(0,l.isNativeUIInteraction)(t,e.target))return!1;const s=this._chartWidget.model();if(38===i)s.zoomIn();else{if(40!==i)return!1;s.zoomOut()}return!0}}},66979:(e,t,i)=>{"use strict";i.d(t,{ChartWidgetApiBase:()=>M});var s=i(50151),r=i(44352),n=i(47539),o=i(578),a=i(1140),l=i(69228),c=i(23150);class h{constructor(e){this._timeScale=e}coordinateToTime(e){const t=this._timeScale.coordinateToIndex(e);return this._timeScale.indexToTimePoint(t)}barSpacingChanged(){return this._timeScale.barSpacingChanged()}rightOffsetChanged(){return this._timeScale.rightOffsetChanged()}setRightOffset(e){this._timeScale.setRightOffset(e)}setBarSpacing(e){this._timeScale.setBarSpacing(e)}barSpacing(){return this._timeScale.barSpacing()}rightOffset(){return this._timeScale.rightOffset()}width(){return this._timeScale.width()}defaultRightOffset(){return this._timeScale.defaultRightOffset().spawn()}defaultRightOffsetPercentage(){return this._timeScale.defaultRightOffsetPercentage().spawn()}usePercentageRightOffset(){return this._timeScale.usePercentageRightOffset().spawn()}isEmpty(){return this._timeScale.isEmpty()}}var d=i(26867),u=i.n(d),p=i(20364);const _=new n.TranslatedString("change timezone",r.t(null,void 0,i(20505)));class m{constructor(e){this._onTimezoneChanged=new(u()),this._chartWidget=e,this._timezoneProperty=e.properties().childs().timezone,this._timezoneProperty.subscribe(this,(e=>{this._onTimezoneChanged.fire(e.value())})),e.onAboutToBeDestroyed().subscribe(this,(()=>{this._timezoneProperty.unsubscribeAll(this)}),!0)} availableTimezones(){return p.availableTimezones}getTimezone(){const e=this._timezoneProperty.value();return(0,s.ensureDefined)(this.availableTimezones().find((t=>t.id===e)))}setTimezone(e,t){(0,s.assert)((0,p.timezoneIsAvailable)(e),`Incorrect timezone: ${e}`),(null==t?void 0:t.disableUndo)?this._timezoneProperty.setValue(e):this._chartWidget.model().setProperty(this._timezoneProperty,e,_)}onTimezoneChanged(){return this._onTimezoneChanged}}var g=i(45973),f=i(5440),v=i(30684);function S(e,t){const i=()=>{e.completed().unsubscribe(null,s),t(!1)},s=()=>{e.error().unsubscribe(null,i),t(!0)};e.completed().subscribe(null,i,!0),e.error().subscribe(null,s,!0)}var y=i(25071),b=i(58403),w=i(76076),P=i(37121),C=i(82503);const T=new n.TranslatedString("change price to bar ratio",r.t(null,void 0,i(69510))),x=new n.TranslatedString("toggle lock scale",r.t(null,void 0,i(21203))),I=new n.TranslatedString("change series style",r.t(null,void 0,i(53438)));class M{constructor(e,t){this._visibleBarsChanged=new(u()),this._crosshairMoved=new(u()),this._ranges=null,this._chartWidget=e,this._activateChart=t,this._timezoneApi=new m(e),this._chartWidget.withModel(this,(()=>{this._chartWidget.model().crossHairSource().moved().subscribe(this,this._onCrosshairMoved)}))}getPriceToBarRatio(){return this._chartWidget.model().model().mainSeriesScaleRatioProperty().value()}setPriceToBarRatio(e,t){const i=this._chartWidget.model(),s=i.model(),r=s.mainSeriesScaleRatioProperty();(null==t?void 0:t.disableUndo)?new v.SetScaleRatioPropertiesCommand(r,e,null,s).redo():i.setScaleRatioProperty(r,e,T)}isPriceToBarRatioLocked(){return this._chartWidget.model().model().mainSeries().priceScale().isLockScale()}setPriceToBarRatioLocked(e,t){const i=this._chartWidget.model(),s=i.model(),r=s.mainSeries().priceScale();(null==t?void 0:t.disableUndo)?new f.SetPriceScaleModeCommand({lockScale:e},r,null,s).redo():i.setPriceScaleMode({lockScale:e},r,x)}onDataLoaded(){return this._makeSubscriptionFromDelegate(this._chartWidget.model().mainSeries().dataEvents().completed())}onSymbolChanged(){return this._makeSubscriptionFromDelegate(this._chartWidget.model().mainSeries().dataEvents().symbolResolved())}onIntervalChanged(){return this._makeSubscriptionFromDelegate(this._chartWidget.model().mainSeries().onIntervalChanged())}onVisibleRangeChanged(){return this._makeSubscriptionFromDelegate(this._visibleBarsChanged)}onChartTypeChanged(){return this._makeSubscriptionFromDelegate(this._chartWidget.model().mainSeries().onStyleChanged())}onSeriesTimeframe(){return this._makeSubscriptionFromDelegate(this._chartWidget.model().mainSeries().dataEvents().seriesTimeFrame())}whenChartReady(e){this._chartWidget.withModel(this,e)}crossHairMoved(){return this._makeSubscriptionFromDelegate(this._crosshairMoved)}setSymbol(e,t){if(e===this.symbol())return void(null==t||t());const i=e=>{!e&&t&&t()},s=this._chartWidget.model().mainSeries().dataEvents();t&&S(s,i),this._activateChart(),this._chartWidget.setSymbol(e)}setResolution(e,t){let i=o.Interval.normalize(e) -;if(null!==i&&(i=this._chartWidget.model().mainSeries().getSupportedResolution(i)),null===i||i===this.resolution())return void(null==t||t());const s=e=>{!e&&t&&t()},r=this._chartWidget.model().mainSeries().dataEvents();t&&S(r,s),this._activateChart(),this._chartWidget.setResolution(i)}setChartType(e,t){const i=this._chartWidget.model().mainSeries().properties().childs().style;if(i.value()===e)return void(null==t||t());const s=e=>{!e&&t&&t()},r=this._chartWidget.model().mainSeries().dataEvents();t&&S(r,s),this._chartWidget.model().setChartStyleProperty(i,e,I)}getAllStudies(){return this._chartWidget.model().model().allStudies(!0).map(g.studyEntityInfo)}getAllPanesHeight(){const e=this._chartWidget.model().model().panes();if(this._chartWidget.isMaximizedPane()){let t=0,i=0;e.forEach((e=>{t+=e.height(),i+=e.stretchFactor()}));const s=i/t;return e.map((e=>Math.round(e.stretchFactor()/s*100)/100))}return e.map((e=>e.height()))}setAllPanesHeight(e){const t=this._chartWidget.model().model(),i=t.panes();(0,s.assert)(i.length===e.length,"There`s a mismatch between the number of heights you provided and the number of panes.");const r=i.reduce(((e,t)=>e+t.stretchFactor()),0)/e.reduce(((e,t)=>e+t));e.forEach(((e,t)=>{const s=e*r;i[t].setStretchFactor(s)})),t.fullUpdate()}maximizeChart(){this._chartWidget.getResizerDetacher().requestFullscreen()}restoreChart(){this._chartWidget.getResizerDetacher().exitFullscreen()}sessions(){return this._chartWidget.model().model().sessions()}getTimeScaleLogicalRange(){return this._chartWidget.model().timeScale().logicalRange()}createStudy(e,t,i,s,r,n){if("function"==typeof r)return console.warn('"createStudy" does not take "callback" parameter anymore'),Promise.resolve(null);if(n=n||{},"string"!=typeof e)return this._createStudy(e);if(n.checkLimit&&!this._chartWidget.model().canCreateStudy())return(0,y.showTooManyStudiesNotice)(),Promise.resolve(null);e=e.toLowerCase();const o=n.disableUndo?this._chartWidget.model().model():this._chartWidget.model(),l=b.StudyMetaInfo.findStudyMetaInfoByDescription(o.studiesMetaData(),e),c=o.createStudyInserter({type:"java",studyId:l.id},[]);if(c.setForceOverlay(!!t),n.priceScale&&c.setPreferredPriceScale(function(e){switch(e){case"no-scale":return"overlay";case"as-series":return"as-series";case"new-left":return"left";case"new-right":return"right";default:throw new Error('The pricescale "'+e+'" is invalid, the only valid options are "no-scale", "as-series", "new-left" and "new-right".')}}(n.priceScale)),n.allowChangeCurrency&&c.setAllowChangeCurrency(!0),n.allowChangeUnit&&c.setAllowChangeUnit(!0),Array.isArray(s)){console.warn("Passing study inputs as an ordered array is now deprecated. Please use an object where keys correspond to the inputs of your study instead.");const e={};for(let t=0;tPromise.resolve({inputs:s||{},parentSources:[]}))).then((e=>(r&&(0,a.applyOverridesToStudy)(e,r),i&&e.setUserEditEnabled(!1),e.id())))}symbolExt(){const e=this._chartWidget.model().mainSeries().symbolInfo() -;return null===e?null:{symbol:e.name,full_name:e.full_name,exchange:e.exchange,description:e.description,type:e.type,pro_name:e.pro_name,typespecs:e.typespecs,delay:e.delay}}getVisibleRange(){const e={from:0,to:0},t=this._chartWidget.model().timeScale();if(t.isEmpty())return e;const i=t.coordinateToVisibleIndex(0),r=t.coordinateToVisibleIndex(t.width()-1),n=this._convertIndexToPublicTime(r);if(null===n)return e;const o=Math.max((0,s.ensureNotNull)(t.points().range().value()).firstIndex,i);return e.from=(0,s.ensureNotNull)(this._convertIndexToPublicTime(o)),e.to=n,e}getTimezoneApi(){return this._timezoneApi}exportData(e){const t={...e};return void 0!==t.from&&(t.from=this._convertTimeFromPublic(t.from)),void 0!==t.to&&(t.to=this._convertTimeFromPublic(t.to)),i.e(9498).then(i.bind(i,43930)).then((e=>e.exportData(this._chartWidget.model().model(),t)))}isSelectBarRequested(){return this._chartWidget.selectPointMode().value()!==w.SelectPointMode.None}barTimeToEndOfPeriod(e){const t=this._prepareEndOfPeriodArgs();return(0,c.barTimeToEndOfPeriod)(t.barBuilder,e,t.intervalObj)}endOfPeriodToBarTime(e){const t=this._prepareEndOfPeriodArgs();return(0,c.endOfPeriodToBarTime)(t.barBuilder,e,t.intervalObj)}createAnchoredShape(e,t){if(!0!==P.supportedLineTools[t.shape].isAnchored)return console.warn(`${t.shape} is not an anchored shape. It can be created using createShape or createMultipointShape`),null;const i=this._chartWidget.model().model(),s=i.mainSeries();if(i.timeScale().isEmpty())return null;const r=void 0!==t.ownerStudyId?i.dataSourceForId(t.ownerStudyId):s,n=this._convertPositionPercentToPricedPoint(e,r);return null===n?null:this.createMultipointShape([n],t)}properties(){return this._chartWidget.properties()}setBarSpacing(e){this._chartWidget.model().timeScale().setBarSpacing(e)}scrollChartByBar(e){this._chartWidget.model().scrollChartByBar(e)}mergeAllScales(e){this._chartWidget.model().mergeAllScales(e)}chartPainted(){return this._chartWidget.chartPainted()}axesSizeReady(){for(const e of this._chartWidget.paneWidgets()){for(const t of e.leftPriceAxisesContainer().axes())if(!t.sizeReady())return!1;for(const t of e.rightPriceAxisesContainer().axes())if(!t.sizeReady())return!1}return!0}applyOverrides(e){this._chartWidget.applyOverrides(e)}addOverlayStudy(e,t,i){return this._chartWidget.addOverlayStudy(e,t,i)}lineToolsSynchronizer(){return this._chartWidget.lineToolsSynchronizer()}ranges(){throw new Error("not implemented")}getTimeScale(){return new h(this._chartWidget.model().timeScale())}_destroy(){this._chartWidget.hasModel()&&this._chartWidget.model().crossHairSource().moved().unsubscribeAll(this)}_createStudy(e){return Promise.reject("Pine Script™ and java studies are not supported")}_convertTimeToPublic(e){return this._getTimeConverter().convertInternalTimeToPublicTime(e)}_convertIndexToPublicTime(e){return null===this._chartWidget.model().mainSeries().symbolInfo()?null:this._getTimeConverter().convertTimePointIndexToPublicTime(e)}_getDefaultCreateMultipointShapeOptions(){return{filled:!0}} -_convertPositionPercentToPricedPoint(e,t){const i=this._chartWidget.model().timeScale(),s=t.priceScale(),r=t.firstValue();if(null==r||!isFinite(r)||null===s)return null;const n=i.coordinateToIndex(e.x*i.width()),o=i.indexToTimePoint(n);if(null===o)return null;return{price:s.coordinateToPrice(e.y*s.height(),r),time:o}}_convertTimeFromPublic(e){return this._getTimeConverter().convertPublicTimeToInternalTime(e)}_getTimeConverter(){const e=this._chartWidget.model().mainSeries();return(0,C.getChartWidgetApiTimeConverter)(e.interval(),(0,s.ensureNotNull)(e.symbolInfo(),"main series symbol info"),this._chartWidget.model().model())}_onCrosshairMoved(e){const t=this._convertIndexToPublicTime(e.index);null!==t&&this._crosshairMoved.fire({price:e.price,time:t})}_makeSubscriptionFromDelegate(e){return{subscribe:e.subscribe.bind(e),unsubscribe:e.unsubscribe.bind(e),unsubscribeAll:e.unsubscribeAll.bind(e)}}_prepareEndOfPeriodArgs(){const e=this._chartWidget.model().model(),t=e.timezone(),i=(0,s.ensureNotNull)(e.mainSeries().symbolInfo()),r=e.mainSeries().interval(),n=new l.SessionInfo(t,i.session,i.session_holidays,i.corrections);return{barBuilder:(0,l.newBarBuilder)(r,n,n),intervalObj:o.Interval.parse(r)}}}},82503:(e,t,i)=>{"use strict";i.d(t,{getChartWidgetApiTimeConverter:()=>o});var s=i(50151),r=i(8950);const n=new Map;function o(e,t,i){const s=function(e,t){return e+t.session+t.timezone+(t.corrections||"")+(t.session_holidays||"")}(e,t);let o=n.get(s);return void 0!==o||(o=new a((0,r.createDwmAligner)(e,t),i),n.set(s,o)),o}class a{constructor(e,t){this._dwmAligner=e,this._chartModel=t}convertPublicTimeToInternalTime(e){return null!==this._dwmAligner?this._dwmAligner.timeToSessionStart(1e3*e)/1e3:e}convertInternalTimeToPublicTime(e){return null!==this._dwmAligner?this._dwmAligner.timeToExchangeTradingDay(1e3*e)/1e3:e}convertTimePointIndexToPublicTime(e){let t=this.convertTimePointIndexToInternalTime(e);return null!==t&&(t=this.convertInternalTimeToPublicTime(t)),t}convertTimePointIndexToInternalTime(e){const t=this._chartModel.timeScale();if(t.isEmpty())return null;const i=t.points(),{firstIndex:r,lastIndex:n}=(0,s.ensureNotNull)(i.range().value());let o=null;if(r<=e&&e<=n)o=i.valueAt(e);else if(e>n){const i=this._chartModel.mainSeries().syncModel();if(null!==i){const r=(0,s.ensureNotNull)(t.indexToTimePoint(n));o=i.projectTime(r,e-n)}}return o}}},46719:(e,t,i)=>{"use strict";i.d(t,{ChartWidgetBase:()=>Fi});var s=i(27714),r=i(50151),n=i(44352),o=i(98351);function a(e,t){const i=Object.create(Object.getPrototypeOf(e));for(const s of t)Object.prototype.hasOwnProperty.call(e,s)&&(i[s]=e[s]);return i}var l=i(56840),c=i(49483),h=i(71668),d=i(76422),u=i(88279);let p;class _ extends u.DialogRenderer{constructor(){super(),this._dialog=null,this._subscribe=e=>{this._setVisibility(e)}}show(){this._load().then((e=>e.show()))}hide(){var e;null===(e=this._dialog)||void 0===e||e.hide()}static getInstance(){return p||(p=new _),p}_load(){ +;if(null!==i&&(i=this._chartWidget.model().mainSeries().getSupportedResolution(i)),null===i||i===this.resolution())return void(null==t||t());const s=e=>{!e&&t&&t()},r=this._chartWidget.model().mainSeries().dataEvents();t&&S(r,s),this._activateChart(),this._chartWidget.setResolution(i)}setChartType(e,t){const i=this._chartWidget.model().mainSeries().properties().childs().style;if(i.value()===e)return void(null==t||t());const s=e=>{!e&&t&&t()},r=this._chartWidget.model().mainSeries().dataEvents();t&&S(r,s),this._chartWidget.model().setChartStyleProperty(i,e,I)}getBarsMarksSources(){return this._chartWidget.model().barsMarksSources()}getAllStudies(){return this._chartWidget.model().model().allStudies(!0).map(g.studyEntityInfo)}getAllPanesHeight(){const e=this._chartWidget.model().model().panes();if(this._chartWidget.isMaximizedPane()){let t=0,i=0;e.forEach((e=>{t+=e.height(),i+=e.stretchFactor()}));const s=i/t;return e.map((e=>Math.round(e.stretchFactor()/s*100)/100))}return e.map((e=>e.height()))}setAllPanesHeight(e){const t=this._chartWidget.model().model(),i=t.panes();(0,s.assert)(i.length===e.length,"There`s a mismatch between the number of heights you provided and the number of panes.");const r=i.reduce(((e,t)=>e+t.stretchFactor()),0)/e.reduce(((e,t)=>e+t));e.forEach(((e,t)=>{const s=e*r;i[t].setStretchFactor(s)})),t.fullUpdate()}maximizeChart(){this._chartWidget.getResizerDetacher().requestFullscreen()}restoreChart(){this._chartWidget.getResizerDetacher().exitFullscreen()}sessions(){return this._chartWidget.model().model().sessions()}getTimeScaleLogicalRange(){return this._chartWidget.model().timeScale().logicalRange()}createStudy(e,t,i,s,r,n){if("function"==typeof r)return console.warn('"createStudy" does not take "callback" parameter anymore'),Promise.resolve(null);if(n=n||{},"string"!=typeof e)return this._createStudy(e);if(n.checkLimit&&!this._chartWidget.model().canCreateStudy())return(0,y.showTooManyStudiesNotice)(),Promise.resolve(null);e=e.toLowerCase();const o=n.disableUndo?this._chartWidget.model().model():this._chartWidget.model(),l=b.StudyMetaInfo.findStudyMetaInfoByDescription(o.studiesMetaData(),e),c=o.createStudyInserter({type:"java",studyId:l.id},[]);if(c.setForceOverlay(!!t),n.priceScale&&c.setPreferredPriceScale(function(e){switch(e){case"no-scale":return"overlay";case"as-series":return"as-series";case"new-left":return"left";case"new-right":return"right";default:throw new Error('The pricescale "'+e+'" is invalid, the only valid options are "no-scale", "as-series", "new-left" and "new-right".')}}(n.priceScale)),n.allowChangeCurrency&&c.setAllowChangeCurrency(!0),n.allowChangeUnit&&c.setAllowChangeUnit(!0),Array.isArray(s)){console.warn("Passing study inputs as an ordered array is now deprecated. Please use an object where keys correspond to the inputs of your study instead.");const e={};for(let t=0;tPromise.resolve({inputs:s||{},parentSources:[]}))).then((e=>(r&&(0,a.applyOverridesToStudy)(e,r),i&&e.setUserEditEnabled(!1), +e.id())))}symbolExt(){const e=this._chartWidget.model().mainSeries().symbolInfo();return null===e?null:{symbol:e.name,full_name:e.full_name,exchange:e.exchange,description:e.description,type:e.type,pro_name:e.pro_name,typespecs:e.typespecs,delay:e.delay}}getVisibleRange(){const e={from:0,to:0},t=this._chartWidget.model().timeScale();if(t.isEmpty())return e;const i=t.coordinateToVisibleIndex(0),r=t.coordinateToVisibleIndex(t.width()-1),n=this._convertIndexToPublicTime(r);if(null===n)return e;const o=Math.max((0,s.ensureNotNull)(t.points().range().value()).firstIndex,i);return e.from=(0,s.ensureNotNull)(this._convertIndexToPublicTime(o)),e.to=n,e}getTimezoneApi(){return this._timezoneApi}exportData(e){const t={...e};return void 0!==t.from&&(t.from=this._convertTimeFromPublic(t.from)),void 0!==t.to&&(t.to=this._convertTimeFromPublic(t.to)),i.e(9498).then(i.bind(i,43930)).then((e=>e.exportData(this._chartWidget.model().model(),t)))}isSelectBarRequested(){return this._chartWidget.selectPointMode().value()!==w.SelectPointMode.None}barTimeToEndOfPeriod(e){const t=this._prepareEndOfPeriodArgs();return(0,c.barTimeToEndOfPeriod)(t.barBuilder,e,t.intervalObj)}endOfPeriodToBarTime(e){const t=this._prepareEndOfPeriodArgs();return(0,c.endOfPeriodToBarTime)(t.barBuilder,e,t.intervalObj)}createAnchoredShape(e,t){if(!0!==P.supportedLineTools[t.shape].isAnchored)return console.warn(`${t.shape} is not an anchored shape. It can be created using createShape or createMultipointShape`),null;const i=this._chartWidget.model().model(),s=i.mainSeries();if(i.timeScale().isEmpty())return null;const r=void 0!==t.ownerStudyId?i.dataSourceForId(t.ownerStudyId):s,n=this._convertPositionPercentToPricedPoint(e,r);return null===n?null:this.createMultipointShape([n],t)}properties(){return this._chartWidget.properties()}setBarSpacing(e){this._chartWidget.model().timeScale().setBarSpacing(e)}scrollChartByBar(e){this._chartWidget.model().scrollChartByBar(e)}mergeAllScales(e){this._chartWidget.model().mergeAllScales(e)}chartPainted(){return this._chartWidget.chartPainted()}axesSizeReady(){for(const e of this._chartWidget.paneWidgets()){for(const t of e.leftPriceAxisesContainer().axes())if(!t.sizeReady())return!1;for(const t of e.rightPriceAxisesContainer().axes())if(!t.sizeReady())return!1}return!0}applyOverrides(e){this._chartWidget.applyOverrides(e)}addOverlayStudy(e,t,i){return this._chartWidget.addOverlayStudy(e,t,i)}lineToolsSynchronizer(){return this._chartWidget.lineToolsSynchronizer()}ranges(){throw new Error("not implemented")}getTimeScale(){return new h(this._chartWidget.model().timeScale())}_destroy(){this._chartWidget.hasModel()&&this._chartWidget.model().crossHairSource().moved().unsubscribeAll(this)}_createStudy(e){return Promise.reject("Pine Script™ and java studies are not supported")}_convertTimeToPublic(e){return this._getTimeConverter().convertInternalTimeToPublicTime(e)}_convertIndexToPublicTime(e){return null===this._chartWidget.model().mainSeries().symbolInfo()?null:this._getTimeConverter().convertTimePointIndexToPublicTime(e)} +_getDefaultCreateMultipointShapeOptions(){return{filled:!0}}_convertPositionPercentToPricedPoint(e,t){const i=this._chartWidget.model().timeScale(),s=t.priceScale(),r=t.firstValue();if(null==r||!isFinite(r)||null===s)return null;const n=i.coordinateToIndex(e.x*i.width()),o=i.indexToTimePoint(n);if(null===o)return null;return{price:s.coordinateToPrice(e.y*s.height(),r),time:o}}_convertTimeFromPublic(e){return this._getTimeConverter().convertPublicTimeToInternalTime(e)}_getTimeConverter(){const e=this._chartWidget.model().mainSeries();return(0,C.getChartWidgetApiTimeConverter)(e.interval(),(0,s.ensureNotNull)(e.symbolInfo(),"main series symbol info"),this._chartWidget.model().model())}_onCrosshairMoved(e){const t=this._convertIndexToPublicTime(e.index);null!==t&&this._crosshairMoved.fire({price:e.price,time:t})}_makeSubscriptionFromDelegate(e){return{subscribe:e.subscribe.bind(e),unsubscribe:e.unsubscribe.bind(e),unsubscribeAll:e.unsubscribeAll.bind(e)}}_prepareEndOfPeriodArgs(){const e=this._chartWidget.model().model(),t=e.timezone(),i=(0,s.ensureNotNull)(e.mainSeries().symbolInfo()),r=e.mainSeries().interval(),n=new l.SessionInfo(t,i.session,i.session_holidays,i.corrections);return{barBuilder:(0,l.newBarBuilder)(r,n,n),intervalObj:o.Interval.parse(r)}}}},82503:(e,t,i)=>{"use strict";i.d(t,{getChartWidgetApiTimeConverter:()=>o});var s=i(50151),r=i(8950);const n=new Map;function o(e,t,i){const s=function(e,t){return e+t.session+t.timezone+(t.corrections||"")+(t.session_holidays||"")}(e,t);let o=n.get(s);return void 0!==o||(o=new a((0,r.createDwmAligner)(e,t),i),n.set(s,o)),o}class a{constructor(e,t){this._dwmAligner=e,this._chartModel=t}convertPublicTimeToInternalTime(e){return null!==this._dwmAligner?this._dwmAligner.timeToSessionStart(1e3*e)/1e3:e}convertInternalTimeToPublicTime(e){return null!==this._dwmAligner?this._dwmAligner.timeToExchangeTradingDay(1e3*e)/1e3:e}convertTimePointIndexToPublicTime(e){let t=this.convertTimePointIndexToInternalTime(e);return null!==t&&(t=this.convertInternalTimeToPublicTime(t)),t}convertTimePointIndexToInternalTime(e){const t=this._chartModel.timeScale();if(t.isEmpty())return null;const i=t.points(),{firstIndex:r,lastIndex:n}=(0,s.ensureNotNull)(i.range().value());let o=null;if(r<=e&&e<=n)o=i.valueAt(e);else if(e>n){const i=this._chartModel.mainSeries().syncModel();if(null!==i){const r=(0,s.ensureNotNull)(t.indexToTimePoint(n));o=i.projectTime(r,e-n)}}return o}}},46719:(e,t,i)=>{"use strict";i.d(t,{ChartWidgetBase:()=>Fi});var s=i(27714),r=i(50151),n=i(44352),o=i(98351);function a(e,t){const i=Object.create(Object.getPrototypeOf(e));for(const s of t)Object.prototype.hasOwnProperty.call(e,s)&&(i[s]=e[s]);return i}var l=i(56840),c=i(49483),h=i(71668),d=i(76422),u=i(88279);let p;class _ extends u.DialogRenderer{constructor(){super(),this._dialog=null,this._subscribe=e=>{this._setVisibility(e)}}show(){this._load().then((e=>e.show()))}hide(){var e;null===(e=this._dialog)||void 0===e||e.hide()}static getInstance(){return p||(p=new _),p}_load(){ return Promise.all([i.e(8230),i.e(5384),i.e(7624),i.e(1428),i.e(1685),i.e(4819),i.e(9333),i.e(6092),i.e(346),i.e(8825),i.e(4412),i.e(8009),i.e(105),i.e(8819),i.e(7920),i.e(4369),i.e(962),i.e(2842),i.e(4062),i.e(3016),i.e(1075),i.e(5747),i.e(8483),i.e(4862)]).then(i.bind(i,90006)).then((e=>{var t,i;return null===(t=this._dialog)||void 0===t||t.hide(),null===(i=this._dialog)||void 0===i||i.visible().unsubscribe(this._subscribe),this._dialog=new e.ObjectTreeDialogRenderer,this._dialog.visible().subscribe(this._subscribe),this._dialog}))}}i(86625);var m=i(66032),g=i(33134);const f=(0,m.parseHtmlElement)(function(e=""){return`
`}());class v{constructor(e){this._shown=!1,this._el=f.cloneNode(!0),this.setSize(g.spinnerSizeMap[e||g.DEFAULT_SIZE])}spin(e){return this._el.classList.add("tv-spinner--shown"),void 0===this._container&&(this._container=e,void 0!==e&&e.appendChild(this._el)),this._shown=!0,this}stop(e){return e&&void 0!==this._container&&this._container.removeChild(this._el),this._el.classList.remove("tv-spinner--shown"),this._shown=!1,this}setStyle(e){return Object.keys(e).forEach((t=>{const i=e[t];void 0!==i&&this._el.style.setProperty(t,i)})),this}style(){return this._el.style}setSize(e){const t=void 0!==e?`tv-spinner--size_${e}`:"";return this._el.className=`tv-spinner ${t} ${this._shown?"tv-spinner--shown":""}`,this}getEl(){return this._el}destroy(){this.stop(),delete this._el,delete this._container}}var S=i(65665),y=i(7019),b=i(53575);var w=i(58403),P=i(43654),C=i(51664);const T=(0,o.getLogger)("Chart.Studies.StudyMetaInfoRepository",{color:"#606"});class x{constructor(e){this._nextRequestNumber=1,this._rawStudiesMetaInfo=[],this._isReady=!1,this._metaInfoQueryQueue=[],this._javaMetaInfoQueryQueue=[],this._javaStudiesMetaInfo=[],this._pineMetaInfoCache=[],this._studiesMigrations=[],this._gateway=e}requestMetaInfo(){this._requestStarted();const e=this._makeNextRequestId();return T.logNormal(`Requesting metainfo #${e}`),new Promise((t=>{T.logNormal(`Requesting studies metadata #${e}`),this._gateway.requestMetadata(e,(i=>{T.logNormal(`Requesting studies metadata #${e} finished`);const s=i.params[1].metainfo.slice();this._processLibraryMetaInfo(s),this._requestFinished(),t()}))}))}findById(e){if(!this._isReady)return this._enqueueMetaInfoQuery(e);const t=this._findStudyMetaInfo(e);return null!==t?Promise.resolve(t):"pine"===e.type?this._compilePine(e):Promise.reject(`unexpected study id=${e.studyId} with type=${e.type}`)}findByIdSync(e){return this._findStudyMetaInfo(e)}isReady(){return this._isReady}findAllJavaStudies(){return this._isReady?Promise.resolve(this._javaStudiesMetaInfo):this._enqueueJavaMetaInfoQuery()}getInternalMetaInfoArray(){return this._javaStudiesMetaInfo}getMigrations(){return this._studiesMigrations}addPineMetaInfo(e){return M(this._pineMetaInfoCache,e)}async getLatestMetaInfoForPineStudy(e,t){return null}_processMigrations(e){throw new Error("not implemented")}_processSiteMetaInfo(e,t){throw new Error("not implemented")} -_processLibraryMetaInfo(e){for(const t of e)I(t),M(this._javaStudiesMetaInfo,t);this._javaStudiesMetaInfo=this._javaStudiesMetaInfo.sort(((e,t)=>{const i=e.description_localized||e.description,s=t.description_localized||t.description;return i>s?1:i{this._metaInfoQueryQueue.push({studyDescriptor:e,resolver:t})}))}_enqueueJavaMetaInfoQuery(){return new Promise((e=>{this._javaMetaInfoQueryQueue.push({resolver:e})}))}_processPendingMetaInfoQueries(){for(;this._metaInfoQueryQueue.length;){const e=this._metaInfoQueryQueue.shift();this.findById(e.studyDescriptor).then(e.resolver)}}_processPendingFullMetaInfoQueries(){for(;this._javaMetaInfoQueryQueue.length;){this._javaMetaInfoQueryQueue.shift().resolver(this._javaStudiesMetaInfo)}}_findStudyMetaInfo(e){return"java"===e.type?this._javaStudiesMetaInfo.find((t=>t.id===e.studyId))||null:this._pineMetaInfoCache.find((t=>t.scriptIdPart===e.pineId&&(void 0===e.pineVersion||(0,r.ensureDefined)(t.pine).version===e.pineVersion)))||null}_makeNextRequestId(){return"metadata_"+this._nextRequestNumber++}_compilePine(e){throw new Error("unsupported")}}function I(e){e.description_localized=n.t(e.description,{context:"study"},i(68716))}function M(e,t){const i=new w.StudyMetaInfo(t);(0,P.migrateMetaInfoAndPropState)(i);let s=!0;const r=e.findIndex((e=>e.id===i.id));if(-1===r)e.push(i);else{const t=e[r],n=void 0!==t.pine?C.Version.parse(t.pine.version):null,o=void 0!==i.pine?C.Version.parse(i.pine.version):null;null===o||null===n||o.isGreaterOrEqual(n)?(t.removeDefaults(),e[r]=i):s=!1}return s&&i.createDefaults(),i}var A,L=i(6250),k=i(89215),E=i(7711),D=i(36646),B=i(16230);!function(e){e.Default="default",e.Success="success",e.Warning="warning",e.Danger="danger"}(A||(A={}));var V=i(86441),R=i(7394),N=i(90995),O=i(47539),F=i(78996),W=i(933),H=i(14888),z=i(8169),U=i(55611),j=i(94393),G=i(76076),q=i(42437),$=i(35861),Y=i(83499),K=i(9740),X=i(95242),Z=i(8840),J=i(32164),Q=i(89494),ee=i(17364);const te=parseInt(Q.labelheight),ie=parseInt(Q.bottommargin);function se(e){return e/11}class re{constructor(){this._wrapper=document.createElement("div"),this._element=document.createElement("div"),this._labelElement=document.createElement("div"),this._gearElement=document.createElement("div"),this._currentScale=1,this._info=null,this._mode="auto",this._wrapper.appendChild(this._element),this._wrapper.classList.add(Q.wrapper),this._element.classList.add(Q.label),this._labelElement.className=Q.symbol,this._element.appendChild(this._labelElement),this._gearElement.className=Q.gear,this._gearElement.innerHTML=J,this._element.appendChild(this._gearElement)}getElement(){return this._wrapper}setMode(e){this._mode!==e&&(this._mode=e)} -align(e,t){const i=se(t);Math.abs(i-this._currentScale)>.1&&(this._currentScale=i,Math.abs(this._currentScale-1)>.1?this._element.style.transform=`scale(${this._currentScale})`:(this._currentScale=1,this._element.style.transform=""))}drawLabelForScreenshot(e,t){if(null===this._info||"gear"===this._mode)return;const i=(0,X.makeFont)(t.fontSize,ee.CHART_FONT_FAMILY);e.fillStyle=Z.themes[t.theme].getThemedColor("color-price-axis-label-back"),e.globalAlpha=.5,e.beginPath();const s=se(t.fontSize)*te/2,r=(0,V.point)(t.offset+t.width/2,t.height/2);e.arc(r.x,r.y,s,0,2*Math.PI,!0),e.fill(),e.globalAlpha=1,e.fillStyle=Z.themes[t.theme].getThemedColor("color-price-axis-label-text"),e.textAlign="center",e.font=i,e.textBaseline="middle",e.fillText(this._info.label,r.x,r.y)}setAxisNameInfo(e){this._info=e,null!==e&&(this._labelElement.textContent=e.label)}static height(e){return(te+ie)*e}}var ne=i(26867),oe=i.n(ne),ae=i(60223),le=i(94194);const ce={enableTooltip:!0,showLabels:!0,enableMenu:!0,enableHighlight:!0};class he{constructor(e,t,i,r,n,o=null){this._invalidated=!0,this._size=(0,s.size)({width:0,height:0}),this._offset=0,this._axisInfo=null,this._onLabelHovered=new(oe()),this._highlighted=!1,this._labelMode="auto",this._fixedLabelMode=null,this._canvasConfiguredHandler=()=>this.update(),this._timeAxisWidget=o,this._isLeft="left"===e,this._rendererOptionsProvider=r.rendererOptionsProvider,this._sourcesTitlesProvider=r.sourcesTitlesProvider,this._contextMenuItemsProvider=r.contextMenuItemsProvider,this._backgroundBasedTheme=r.backgroundBasedTheme,this._getBackgroundTopColor=r.getBackgroundTopColor,this._getBackgroundBottomColor=r.getBackgroundBottomColor,this._showHorizontalBorder=Boolean(r.showHorizontalBorder),this._properties=t,this._axisInfo=i,this._labelOptions={...ce,...n},this._properties.lineColor.subscribe(this,this._onPropertyChanged),this._cell=document.createElement("div"),this._cell.classList.add(Q["price-axis-stub"]),this._labelOptions.enableTooltip&&this._cell.classList.add("apply-common-tooltip"),this._cell.style.width="25px",this._cell.style.height="100%",this._cell.style.position="absolute",this._cell.style.left="0",this._cell.style.overflow="hidden",this._labelOptions.showLabels?(this._label=new re,this._label.setAxisNameInfo(this._axisInfo),this._cell.appendChild(this._label.getElement()),this._labelOptions.enableTooltip&&(0,le.setTooltipData)(this._cell,"text",(e=>this._tooltipContent()))):this._label=null,this._mouseEventHandler=new $.MouseEventHandler(this._cell,this,{treatHorzTouchDragAsPageScroll:!0,treatVertTouchDragAsPageScroll:!0}),this._canvasBinding=(0,Y.createBoundCanvas)(this._cell,(0,s.size)({width:16,height:16})),this._canvasBinding.subscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler);const a=this._canvasBinding.canvasElement;a.style.position="absolute",a.style.left="0",a.style.top="0"}destroy(){this._canvasBinding.unsubscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler),this._canvasBinding.dispose(), +_processLibraryMetaInfo(e){for(const t of e)I(t),M(this._javaStudiesMetaInfo,t);this._javaStudiesMetaInfo=this._javaStudiesMetaInfo.sort(((e,t)=>{const i=e.description_localized||e.description,s=t.description_localized||t.description;return i>s?1:i{this._metaInfoQueryQueue.push({studyDescriptor:e,resolver:t})}))}_enqueueJavaMetaInfoQuery(){return new Promise((e=>{this._javaMetaInfoQueryQueue.push({resolver:e})}))}_processPendingMetaInfoQueries(){for(;this._metaInfoQueryQueue.length;){const e=this._metaInfoQueryQueue.shift();this.findById(e.studyDescriptor).then(e.resolver)}}_processPendingFullMetaInfoQueries(){for(;this._javaMetaInfoQueryQueue.length;){this._javaMetaInfoQueryQueue.shift().resolver(this._javaStudiesMetaInfo)}}_findStudyMetaInfo(e){return"java"===e.type?this._javaStudiesMetaInfo.find((t=>t.id===e.studyId))||null:this._pineMetaInfoCache.find((t=>t.scriptIdPart===e.pineId&&(void 0===e.pineVersion||(0,r.ensureDefined)(t.pine).version===e.pineVersion)))||null}_makeNextRequestId(){return"metadata_"+this._nextRequestNumber++}_compilePine(e){throw new Error("unsupported")}}function I(e){e.description_localized=n.t(e.description,{context:"study"},i(68716))}function M(e,t){const i=new w.StudyMetaInfo(t);(0,P.migrateMetaInfoAndPropState)(i);let s=!0;const r=e.findIndex((e=>e.id===i.id));if(-1===r)e.push(i);else{const t=e[r],n=void 0!==t.pine?C.Version.parse(t.pine.version):null,o=void 0!==i.pine?C.Version.parse(i.pine.version):null;null===o||null===n||o.isGreaterOrEqual(n)?(t.removeDefaults(),e[r]=i):s=!1}return s&&i.createDefaults(),i}var A,L=i(6250),k=i(89215),E=i(7711),D=i(36646),B=i(16230);!function(e){e.Default="default",e.Success="success",e.Warning="warning",e.Danger="danger"}(A||(A={}));var V=i(86441),R=i(7394),N=i(90995),O=i(47539),F=i(78996),W=i(933),H=i(14888),z=i(8169),U=i(55611),j=i(94393),G=i(76076),q=i(42437),$=i(35861),Y=i(83499),K=i(9740),Z=i(95242),X=i(8840),J=i(32164),Q=i(89494),ee=i(17364);const te=parseInt(Q.labelheight),ie=parseInt(Q.bottommargin);function se(e){return e/11}class re{constructor(){this._wrapper=document.createElement("div"),this._element=document.createElement("div"),this._labelElement=document.createElement("div"),this._gearElement=document.createElement("div"),this._currentScale=1,this._info=null,this._mode="auto",this._wrapper.appendChild(this._element),this._wrapper.classList.add(Q.wrapper),this._element.classList.add(Q.label),this._labelElement.className=Q.symbol,this._element.appendChild(this._labelElement),this._gearElement.className=Q.gear,this._gearElement.innerHTML=J,this._element.appendChild(this._gearElement)}getElement(){return this._wrapper}setMode(e){this._mode!==e&&(this._mode=e)} +align(e,t){const i=se(t);Math.abs(i-this._currentScale)>.1&&(this._currentScale=i,Math.abs(this._currentScale-1)>.1?this._element.style.transform=`scale(${this._currentScale})`:(this._currentScale=1,this._element.style.transform=""))}drawLabelForScreenshot(e,t){if(null===this._info||"gear"===this._mode)return;const i=(0,Z.makeFont)(t.fontSize,ee.CHART_FONT_FAMILY);e.fillStyle=X.themes[t.theme].getThemedColor("color-price-axis-label-back"),e.globalAlpha=.5,e.beginPath();const s=se(t.fontSize)*te/2,r=(0,V.point)(t.offset+t.width/2,t.height/2);e.arc(r.x,r.y,s,0,2*Math.PI,!0),e.fill(),e.globalAlpha=1,e.fillStyle=X.themes[t.theme].getThemedColor("color-price-axis-label-text"),e.textAlign="center",e.font=i,e.textBaseline="middle",e.fillText(this._info.label,r.x,r.y)}setAxisNameInfo(e){this._info=e,null!==e&&(this._labelElement.textContent=e.label)}static height(e){return(te+ie)*e}}var ne=i(26867),oe=i.n(ne),ae=i(60223),le=i(94194);const ce={enableTooltip:!0,showLabels:!0,enableMenu:!0,enableHighlight:!0};class he{constructor(e,t,i,r,n,o=null){this._invalidated=!0,this._size=(0,s.size)({width:0,height:0}),this._offset=0,this._axisInfo=null,this._onLabelHovered=new(oe()),this._highlighted=!1,this._labelMode="auto",this._fixedLabelMode=null,this._canvasConfiguredHandler=()=>this.update(),this._timeAxisWidget=o,this._isLeft="left"===e,this._rendererOptionsProvider=r.rendererOptionsProvider,this._sourcesTitlesProvider=r.sourcesTitlesProvider,this._contextMenuItemsProvider=r.contextMenuItemsProvider,this._backgroundBasedTheme=r.backgroundBasedTheme,this._getBackgroundTopColor=r.getBackgroundTopColor,this._getBackgroundBottomColor=r.getBackgroundBottomColor,this._showHorizontalBorder=Boolean(r.showHorizontalBorder),this._properties=t,this._axisInfo=i,this._labelOptions={...ce,...n},this._properties.lineColor.subscribe(this,this._onPropertyChanged),this._cell=document.createElement("div"),this._cell.classList.add(Q["price-axis-stub"]),this._labelOptions.enableTooltip&&this._cell.classList.add("apply-common-tooltip"),this._cell.style.width="25px",this._cell.style.height="100%",this._cell.style.position="absolute",this._cell.style.left="0",this._cell.style.overflow="hidden",this._labelOptions.showLabels?(this._label=new re,this._label.setAxisNameInfo(this._axisInfo),this._cell.appendChild(this._label.getElement()),this._labelOptions.enableTooltip&&(0,le.setTooltipData)(this._cell,"text",(e=>this._tooltipContent()))):this._label=null,this._mouseEventHandler=new $.MouseEventHandler(this._cell,this,{treatHorzTouchDragAsPageScroll:!0,treatVertTouchDragAsPageScroll:!0}),this._canvasBinding=(0,Y.createBoundCanvas)(this._cell,(0,s.size)({width:16,height:16})),this._canvasBinding.subscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler);const a=this._canvasBinding.canvasElement;a.style.position="absolute",a.style.left="0",a.style.top="0"}destroy(){this._canvasBinding.unsubscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler),this._canvasBinding.dispose(), this._properties.lineColor.unsubscribe(this,this._onPropertyChanged),this._mouseEventHandler.destroy()}mouseEnterEvent(e){this._mouseOrTouchEnterEvent(e)}touchStartEvent(e){this._mouseOrTouchEnterEvent(e)}mouseLeaveEvent(e){this._mouseOrTouchLeaveEvent(e)}touchEndEvent(e){this._mouseOrTouchLeaveEvent(e)}mouseClickEvent(e){this._mouseClickOrTapEvent(e)}tapEvent(e){this._mouseClickOrTapEvent(e)}update(){this._invalidated=!0}getElement(){return this._cell}onLabelHovered(){return this._onLabelHovered}setSizeAndOffset(e,t){(0,s.equalSizes)(this._size,e)||(this._size=e,this._canvasBinding.resizeCanvasElement(e),this._cell.style.width=`${e.width}px`,this._cell.style.minWidth=`${e.width}px`,this._cell.style.height=`${e.height}px`,this._invalidated=!0),this._offset!==t&&(this._offset=t,this._cell.style.left=`${t}px`)}paint(e){if(e{this.setLabelMode((0,r.ensureNotNull)(this._fixedLabelMode)),this._fixedLabelMode=null}))}}var de=i(24679);class ue{constructor(e,t,i,r,n,o=null){this._axises=[],this._stubs=[],this._size=(0,s.size)({width:0,height:0}),this._onLabelHovered=new(oe()),this._scalesProperties=e,this._priceAxisWidgetFactory=i,this._timeAxisWidget=o,this._rendererOptionsProvider=r.rendererOptionsProvider,this._titlesProvider=r.titlesProvider,this._stubContextMenuProvider=r.stubContextMenuProvider,this._backgroundBasedTheme=r.backgroundBasedTheme,this._getBackgroundTopColor=r.getBackgroundTopColor,this._getBackgroundBottomColor=r.getBackgroundBottomColor,this._showHorisontalBorder=Boolean(r.showHorizontalBorder),this._labelsOptions={...ce,...n};const a=this._scalesProperties.childs();this._stubProperties={lineColor:a.lineColor,fontSize:a.fontSize},this._side=t,this._cell=document.createElement("td"),this._cell.classList.add("chart-markup-table","price-axis-container"),this._cell.style.width="25px",this._cell.style.position="relative"}destroy(){this.setScales([],0,0,0)}onLabelHovered(){return this._onLabelHovered}setScales(e,t,i,s){for(;e.length>this._axises.length&&this._axises.lengtho;){const e=(0,r.ensureDefined)(this._stubs.pop()) +const i=Math.ceil(t*this._size.width),s=Math.ceil(t*this._size.height),r=this._getBackgroundTopColor(),n=this._getBackgroundBottomColor();if(r===n?(0,Y.clearRect)(e,0,0,i+1,s+1,r):(0,K.clearRectWithGradient)(e,0,0,i+1,s+1,r,n),this._highlighted){const t=X.themes[this._backgroundBasedTheme.value()].getThemedColor("color-price-axis-highlight");(0,Y.fillRect)(e,0,0,i+1,s+1,t),e.globalAlpha=1}}_tooltipContent(){return this._sourcesTitlesProvider().join("\n")}_mouseOrTouchEnterEvent(e){null!==this._label&&"symbol"!==this._labelMode&&this._labelOptions.enableHighlight&&this._setHighlighted(!0)}_mouseOrTouchLeaveEvent(e){"symbol"!==this._labelMode&&this._setHighlighted(!1)}_mouseClickOrTapEvent(e){if(e.preventDefault(),null!==this._fixedLabelMode||"symbol"===this._labelMode||!this._labelOptions.enableMenu||!this._labelOptions.showLabels)return void ae.ContextMenuManager.hideAll();this._fixedLabelMode=this._labelMode,this.setLabelMode("gear");const t=this._cell.getBoundingClientRect();ae.ContextMenuManager.showMenu(this._contextMenuItemsProvider(),{clientX:this._isLeft?t.left:t.right,clientY:t.top,attachToXBy:this._isLeft?"left":"right",attachToYBy:"bottom"},{statName:"PriceScaleLabelContextMenu",doNotCloseOn:this.getElement()},{menuName:"PriceScaleLabelContextMenu"},(()=>{this.setLabelMode((0,r.ensureNotNull)(this._fixedLabelMode)),this._fixedLabelMode=null}))}}var de=i(24679);class ue{constructor(e,t,i,r,n,o=null){this._axises=[],this._stubs=[],this._size=(0,s.size)({width:0,height:0}),this._onLabelHovered=new(oe()),this._scalesProperties=e,this._priceAxisWidgetFactory=i,this._timeAxisWidget=o,this._rendererOptionsProvider=r.rendererOptionsProvider,this._titlesProvider=r.titlesProvider,this._stubContextMenuProvider=r.stubContextMenuProvider,this._backgroundBasedTheme=r.backgroundBasedTheme,this._getBackgroundTopColor=r.getBackgroundTopColor,this._getBackgroundBottomColor=r.getBackgroundBottomColor,this._showHorisontalBorder=Boolean(r.showHorizontalBorder),this._labelsOptions={...ce,...n};const a=this._scalesProperties.childs();this._stubProperties={lineColor:a.lineColor,fontSize:a.fontSize},this._side=t,this._cell=document.createElement("td"),this._cell.classList.add("chart-markup-table","price-axis-container"),this._cell.style.width="25px",this._cell.style.position="relative"}destroy(){this.setScales([],0,0,0)}onLabelHovered(){return this._onLabelHovered}setScales(e,t,i,s){for(;e.length>this._axises.length&&this._axises.lengtho;){const e=(0,r.ensureDefined)(this._stubs.pop()) ;e.onLabelHovered().unsubscribeAll(this),this._cell.removeChild(e.getElement()),e.destroy()}for(;this._stubs.length{this._labelsOptions.showLabels&&this._labelsOptions.enableHighlight&&this._onLabelHovered.fire({owner:t,axis:(0,r.ensureNotNull)(e)},i)})),this._stubs.push(t),this._cell.appendChild(t.getElement())}const a=this._labelsOptions.enableMenu;1===s?this._stubs.forEach(((e,t)=>e.setLabelMode(a?"gear":"symbol"))):this._stubs.forEach(((e,t)=>e.setLabelMode(te.updateCurrencyLabel()))}optimalWidths(){return this._axises.map((e=>e.optimalWidth()))}setSizes(e,t){this._size=(0,s.size)({width:t.reduce(((e,t)=>e+t),0),height:e}),this._cell.style.width=this._size.width+"px",this._cell.style.minWidth=this._size.width+"px",this._cell.style.height=this._size.height+"px",t.length!==this._axises.length+this._stubs.length&&(0,r.assert)(t.length===this._axises.length+this._stubs.length,"Widgets count should be the same as widths one");let i=0;this._forEachWidgetFromLeft(((r,n)=>{const o=t[n];r.setSizeAndOffset((0,s.size)({width:o,height:e}),i),i+=o}))}update(){this._axises.forEach((e=>e.update())),this._stubs.forEach((e=>e.update()))}paint(e){this._axises.forEach(((t,i)=>t.paint(e(i)))),this._stubs.forEach(((t,i)=>t.paint(e(i))))}paintStubs(e){this._stubs.forEach((t=>t.paint(e)))}restoreDefaultCursor(){this._axises.forEach((e=>e.restoreDefaultCursor()))}getWidth(){return this._size.width}findAxisWidgetForScale(e){const t=this._axises.find((t=>t.priceScale()===e));return void 0===t?null:t}getScreenshotData(){const e=this._getImage();return{canvas:e,content:e.toDataURL(),contentHeight:this._size.height,contentWidth:this._size.width}}getImage(){return this._getImage()}slotsCount(){return this._axises.length+this._stubs.length}highlightPriceAxisByLabel(e){this._axises.forEach((t=>{const i=t.axisInfo();t.setHighlighted(null!==i&&i.equals(e))}))}axes(){return this._axises}_stubParams(e){return{rendererOptionsProvider:this._rendererOptionsProvider,backgroundBasedTheme:this._backgroundBasedTheme,sourcesTitlesProvider:()=>this._titlesProvider(this._side,e),contextMenuItemsProvider:()=>this._stubContextMenuProvider(this._side,e),getBackgroundTopColor:this._getBackgroundTopColor,getBackgroundBottomColor:this._getBackgroundBottomColor,showHorizontalBorder:this._showHorisontalBorder}}_getImage(){const e=(0,Y.createDisconnectedCanvas)(document,this._size),t=(0,Y.getPrescaledContext2D)(e);let i=0;return this._forEachWidgetFromLeft(((e,s)=>{const r=e.getWidth();0!==r&&0!==this._size.height&&(t.drawImage(e.getImage(),i,0,r,this._size.height),i+=r)})),e}_forEachWidgetFromLeft(e){const t=[...this._axises,...this._stubs],i="left"===this._side,s=i?-1:t.length,r=i?-1:1 ;for(let n=i?t.length-1:0;n!==s;n+=r)e(t[n],n,t)}}var pe=i(40858),_e=i(51768),me=i(24377),ge=i(38031),fe=i(45345),ve=i(24633),Se=i(91031),ye=i(55824),be=i(81165);const we=(0,R.getHexColorByName)("color-white"),Pe=(0,R.getHexColorByName)("color-cold-gray-100"),Ce=(0,ge.applyTransparency)((0,R.getHexColorByName)("color-white"),60),Te=(0,R.getHexColorByName)("color-cold-gray-800"),xe=(0,ge.applyTransparency)((0,R.getHexColorByName)("color-black"),60);function Ie(e){const t=(0,ge.isHexColor)(e)?e.toLowerCase():(0,me.rgbToHexString)((0,me.parseRgb)(e));return fe.watchedTheme.value()===ve.StdTheme.Light?t===we?Pe:Ce:"#181c27"===t?Te:xe}class Me{constructor(){this._width=null,this._currencyInfo=null,this._unitInfo=null,this._measureUnitIdInfo=null,this._fontSize=0,this._backgroundColor="",this._hoverColor="",this._fadeEndColor="",this._hoveredLabel=null,this._currencyAndUnitLabelsWrapper=document.createElement("div"),this._currencyAndUnitLabelsWrapper.className=be["price-axis-currency-label-wrapper"],this._currencyAndUnitLabelsWrapper.setAttribute("data-name","currency-unit-label-wrapper"),this._controlsContainer=document.createElement("div"),this._controlsContainer.className=be["price-axis-currency-label"],this._currencyAndUnitLabelsWrapper.appendChild(this._controlsContainer),this._currencyLabelDiv=document.createElement("div"),this._currencyLabelDiv.className=be.row,this._currencyLabelDiv.classList.add("apply-common-tooltip"),(0,le.setTooltipData)(this._currencyLabelDiv,"text",(e=>this._currencyTooltipContent())),this._currencyText=document.createElement("span"),this._currencyText.className=be["price-axis-currency-label-text"],this._currencyLabelDiv.appendChild(this._currencyText),this._currencyArrowDown=document.createElement("span"),this._currencyArrowDown.className=be["price-axis-currency-label-arrow-down"],this._currencyArrowDown.innerHTML=ye,this._currencyLabelDiv.appendChild(this._currencyArrowDown),this._measureUnitIdLabelDiv=document.createElement("div"),this._measureUnitIdLabelDiv.className=be.row,this._measureUnitIdLabelDiv.classList.add("apply-common-tooltip"),this._measureUnitIdLabelDiv.classList.add("readonly"),(0,le.setTooltipData)(this._measureUnitIdLabelDiv,"text",(e=>this._measureUnitIdTooltipContent())),this._measureUnitIdText=document.createElement("span"),this._measureUnitIdText.className=be["price-axis-currency-label-text"],this._measureUnitIdLabelDiv.appendChild(this._measureUnitIdText),this._unitLabelDiv=document.createElement("div"),this._unitLabelDiv.className=be.row,this._unitLabelDiv.classList.add("apply-common-tooltip"),(0,le.setTooltipData)(this._unitLabelDiv,"text",(e=>this._unitTooltipContent())),this._unitText=document.createElement("span"),this._unitText.className=be["price-axis-currency-label-text"],this._unitLabelDiv.appendChild(this._unitText),this._unitArrowDown=document.createElement("span"),this._unitArrowDown.className=be["price-axis-currency-label-arrow-down"],this._unitArrowDown.innerHTML=ye,this._unitLabelDiv.appendChild(this._unitArrowDown), -this._controlsContainer.appendChild(this._currencyLabelDiv),this._controlsContainer.appendChild(this._measureUnitIdLabelDiv),this._controlsContainer.appendChild(this._unitLabelDiv),this._fadeDiv=document.createElement("div"),this._fadeDiv.className=be["price-axis-currency-label-fade"],this._currencyAndUnitLabelsWrapper.appendChild(this._fadeDiv);const e=e=>{null!==this._hoveredLabel&&this._hoveredLabel!==e&&(this._hoveredLabel.style.background=""),e&&e.classList.contains("readonly")||(this._hoveredLabel=e,""===this._hoverColor&&(this._hoverColor=Ie(this._backgroundColor)),null!==e&&(e.style.background=this._hoverColor))};this._currencyLabelDiv.addEventListener("mouseover",(()=>e(this._currencyLabelDiv))),this._currencyLabelDiv.addEventListener("mouseout",(()=>e(null))),this._unitLabelDiv.addEventListener("mouseover",(()=>e(this._unitLabelDiv))),this._unitLabelDiv.addEventListener("mouseout",(()=>e(null))),this.disableCurrency(),this.disableUnit()}element(){return this._currencyAndUnitLabelsWrapper}currencyLabelElement(){return this._currencyLabelDiv}unitLabelElement(){return this._unitLabelDiv}measureUnitIdLabelElement(){return this._measureUnitIdLabelDiv}isEnabled(){return this.currencyLabelEnabled()||this.unitLabelEnabled()||this.measureUnitIdLableEnabled()}width(){if(null!==this._width)return this._width;let e=0;if(this.currencyLabelEnabled()){const t=this._currencyText.getBoundingClientRect(),i=this._currencyArrowDown.getBoundingClientRect();e=Math.max(e,t.width+i.width+2*this._textMarginAndPadding())}if(this.measureUnitIdLableEnabled()){const t=this._measureUnitIdText.getBoundingClientRect();e=Math.max(e,t.width+2*this._textMarginAndPadding())}if(this.unitLabelEnabled()){const t=this._unitText.getBoundingClientRect(),i=this._unitArrowDown.getBoundingClientRect();e=Math.max(e,t.width+i.width+2*this._textMarginAndPadding())}return this._width=e}drawLabel(e,t,i){var s,r,n;if(!this.isEnabled())return;const o=[];o.push(this.currencyLabelEnabled()&&null!==(s=this._currencyText.textContent)&&void 0!==s?s:""),o.push(this.measureUnitIdLableEnabled()&&null!==(r=this._measureUnitIdText.textContent)&&void 0!==r?r:""),o.push(this.unitLabelEnabled()&&null!==(n=this._unitText.textContent)&&void 0!==n?n:""),e.font=(0,X.makeFont)(this._fontSize,ee.CHART_FONT_FAMILY);const a=new pe.TextWidthCache,l=o.map((t=>""===t?0:a.yMidCorrection(e,t))),c=Math.round(Number(be.css_wrapper_margin)*i),h=(0,Se.ceiledEven)(t*i)-2*c,d=Math.round(this.labelBottom()*i);e.fillStyle=this._backgroundColor,e.fillRect(c,0,h,d);const u=Math.round(Number(be.css_fade_height)*i),p=e.createLinearGradient(0,d,0,d+u);p.addColorStop(0,this._backgroundColor),p.addColorStop(1,this._fadeEndColor),e.fillStyle=p;const _=Math.round(Number(be.css_value_currency_label_radius)*i);(0,K.drawRoundRect)(e,c,d,h,u,[0,0,_,_]),e.fill(),e.fillStyle=this._controlsContainer.style.color,e.textBaseline="middle",e.textAlign="left";const m=Math.round(Number(be.css_first_row_top_padding)*i),g=Math.round(this._textMarginAndPadding()*i)+c,f=this._oneLineHeight()/2*i;let v=m+f +this._controlsContainer.appendChild(this._currencyLabelDiv),this._controlsContainer.appendChild(this._measureUnitIdLabelDiv),this._controlsContainer.appendChild(this._unitLabelDiv),this._fadeDiv=document.createElement("div"),this._fadeDiv.className=be["price-axis-currency-label-fade"],this._currencyAndUnitLabelsWrapper.appendChild(this._fadeDiv);const e=e=>{null!==this._hoveredLabel&&this._hoveredLabel!==e&&(this._hoveredLabel.style.background=""),e&&e.classList.contains("readonly")||(this._hoveredLabel=e,""===this._hoverColor&&(this._hoverColor=Ie(this._backgroundColor)),null!==e&&(e.style.background=this._hoverColor))};this._currencyLabelDiv.addEventListener("mouseover",(()=>e(this._currencyLabelDiv))),this._currencyLabelDiv.addEventListener("mouseout",(()=>e(null))),this._unitLabelDiv.addEventListener("mouseover",(()=>e(this._unitLabelDiv))),this._unitLabelDiv.addEventListener("mouseout",(()=>e(null))),this.disableCurrency(),this.disableUnit()}element(){return this._currencyAndUnitLabelsWrapper}currencyLabelElement(){return this._currencyLabelDiv}unitLabelElement(){return this._unitLabelDiv}measureUnitIdLabelElement(){return this._measureUnitIdLabelDiv}isEnabled(){return this.currencyLabelEnabled()||this.unitLabelEnabled()||this.measureUnitIdLableEnabled()}width(){if(null!==this._width)return this._width;let e=0;if(this.currencyLabelEnabled()){const t=this._currencyText.getBoundingClientRect(),i=this._currencyArrowDown.getBoundingClientRect();e=Math.max(e,t.width+i.width+2*this._textMarginAndPadding())}if(this.measureUnitIdLableEnabled()){const t=this._measureUnitIdText.getBoundingClientRect();e=Math.max(e,t.width+2*this._textMarginAndPadding())}if(this.unitLabelEnabled()){const t=this._unitText.getBoundingClientRect(),i=this._unitArrowDown.getBoundingClientRect();e=Math.max(e,t.width+i.width+2*this._textMarginAndPadding())}return this._width=e}drawLabel(e,t,i){var s,r,n;if(!this.isEnabled())return;const o=[];o.push(this.currencyLabelEnabled()&&null!==(s=this._currencyText.textContent)&&void 0!==s?s:""),o.push(this.measureUnitIdLableEnabled()&&null!==(r=this._measureUnitIdText.textContent)&&void 0!==r?r:""),o.push(this.unitLabelEnabled()&&null!==(n=this._unitText.textContent)&&void 0!==n?n:""),e.font=(0,Z.makeFont)(this._fontSize,ee.CHART_FONT_FAMILY);const a=new pe.TextWidthCache,l=o.map((t=>""===t?0:a.yMidCorrection(e,t))),c=Math.round(Number(be.css_wrapper_margin)*i),h=(0,Se.ceiledEven)(t*i)-2*c,d=Math.round(this.labelBottom()*i);e.fillStyle=this._backgroundColor,e.fillRect(c,0,h,d);const u=Math.round(Number(be.css_fade_height)*i),p=e.createLinearGradient(0,d,0,d+u);p.addColorStop(0,this._backgroundColor),p.addColorStop(1,this._fadeEndColor),e.fillStyle=p;const _=Math.round(Number(be.css_value_currency_label_radius)*i);(0,K.drawRoundRect)(e,c,d,h,u,[0,0,_,_]),e.fill(),e.fillStyle=this._controlsContainer.style.color,e.textBaseline="middle",e.textAlign="left";const m=Math.round(Number(be.css_first_row_top_padding)*i),g=Math.round(this._textMarginAndPadding()*i)+c,f=this._oneLineHeight()/2*i;let v=m+f ;o.forEach(((t,s)=>{""!==t&&((0,Y.drawScaled)(e,i,(()=>e.fillText(t,g/i,(v+l[s])/i))),v=Math.ceil(v+2*f))}))}setHidden(e){this._controlsContainer.classList.toggle(be.hidden,e),this._fadeDiv.classList.toggle(be.hidden,e)}enableCurrency(){this._currencyLabelDiv.classList.remove("js-hidden"),this._width=null,this._updateVisibility()}disableCurrency(){this._currencyLabelDiv.classList.add("js-hidden"),this._width=null,this._updateVisibility()}enableUnit(){this._unitLabelDiv.classList.remove("js-hidden"),this._width=null,this._updateVisibility()}disableUnit(){this._unitLabelDiv.classList.add("js-hidden"),this._width=null,this._updateVisibility()}enableMeasureUnitId(){this._measureUnitIdLabelDiv.classList.remove("js-hidden"),this._width=null,this._updateVisibility()}disableMeasureUnitId(){this._measureUnitIdLabelDiv.classList.add("js-hidden"),this._width=null,this._updateVisibility()}currencyLabelEnabled(){return!this._currencyLabelDiv.classList.contains("js-hidden")}unitLabelEnabled(){return!this._unitLabelDiv.classList.contains("js-hidden")}measureUnitIdLableEnabled(){return!this._measureUnitIdLabelDiv.classList.contains("js-hidden")}currencyConversionAvailable(){return!this._currencyLabelDiv.classList.contains("readonly")}unitConversionAvailable(){return!this._unitLabelDiv.classList.contains("readonly")}setCurrencyInfo(e){if(this._currencyInfo===e)return!1;this._currencyInfo=e;const t=null===e.selectedCurrency?n.t(null,void 0,i(95093)):(0,r.ensureDefined)(e.displayedValues.get(e.selectedCurrency));return this._currencyText.textContent!==t&&(this._currencyText.textContent=t,this._width=null),this._currencyArrowDown.classList.contains("js-hidden")!==e.readOnly&&(this._currencyArrowDown.classList.toggle("js-hidden",e.readOnly),this._currencyLabelDiv.classList.toggle("readonly",e.readOnly),this._width=null),!0}setUnitInfo(e){if(null!==this._unitInfo&&this._unitInfo.selectedUnit===e.selectedUnit&&0===this._unitInfo.availableGroups.size==(0===e.availableGroups.size)&&this._unitInfo.originalUnits.size===e.originalUnits.size)return this._unitInfo=e,!1;this._unitInfo=e;const t=null===e.selectedUnit?n.t(null,void 0,i(95093)):(0,r.ensureDefined)(e.names.get(e.selectedUnit));return this._unitText.textContent!==t&&(this._unitText.textContent=t,this._width=null),this._unitArrowDown.classList.contains("js-hidden")!==(0===e.availableGroups.size)&&(this._unitArrowDown.classList.toggle("js-hidden",0===e.availableGroups.size),this._unitLabelDiv.classList.toggle("readonly",0===e.availableGroups.size),this._width=null),!0}setMeasureUnitIdInfo(e){if(this._measureUnitIdInfo===e)return!1;this._measureUnitIdInfo=e;const t=null===e.selectedMeasureUnitId?n.t(null,void 0,i(95093)):(0,r.ensureDefined)(e.names.get(e.selectedMeasureUnitId));return this._measureUnitIdText.textContent!==t&&(this._measureUnitIdText.textContent=t,this._width=null),this._measureUnitIdLabelDiv.classList.contains("js-hidden")!==(0===e.names.size)&&(this._measureUnitIdLabelDiv.classList.toggle("js-hidden",0===e.names.size),this._width=null),!0}updateColors(e,t){ this._controlsContainer.style.color=t,this._backgroundColor!==e&&(this._backgroundColor=e,this._fadeEndColor=(0,ge.applyTransparency)(e,100),this._hoverColor=Ie(e)),this._controlsContainer.style.background=this._backgroundColor,null!==this._hoveredLabel&&(this._hoveredLabel.style.background=this._hoverColor),this._fadeDiv.style.background=`linear-gradient(${this._backgroundColor}, ${this._fadeEndColor})`}currencyInfo(){return this._currencyInfo}unitInfo(){return this._unitInfo}measureUnitIdInfo(){return this._measureUnitIdInfo}setFontSize(e){this._fontSize!==e&&(this._fontSize=e,this._currencyLabelDiv.style.fontSize=e+"px",this._measureUnitIdLabelDiv.style.fontSize=e+"px",this._unitLabelDiv.style.fontSize=e+"px",this._width=null,this._setLineHeight(this._oneLineHeight()))}labelBottom(){const e=this._oneLineHeight();let t=(this.currencyLabelEnabled()?e:0)+(this.measureUnitIdLableEnabled()?e:0)+(this.unitLabelEnabled()?e:0);return t>0&&(t+=Number(be.css_first_row_top_padding)),t}_textMarginAndPadding(){return Number(be.css_row_left_right_margin)+Number(be.css_row_left_right_padding)}_currencyTooltipContent(){const e=this._currencyInfo;return null===e?"":null===e.selectedCurrency?Array.from(e.currencies).map((t=>(0,r.ensureDefined)(e.displayedValues.get(t)))).join(", "):e.displayedValues.get(e.selectedCurrency)||""}_unitTooltipContent(){const e=this._unitInfo;return null===e?"":null===e.selectedUnit?Array.from(e.units).map((t=>(0,r.ensureDefined)(e.names.get(t)))).join(", "):e.descriptions.get(e.selectedUnit)||""}_measureUnitIdTooltipContent(){const e=this._measureUnitIdInfo;return null===e?"":null===e.selectedMeasureUnitId?Array.from(e.measureUnitIds).map((t=>(0,r.ensureDefined)(e.names.get(t)))).join(", "):e.descriptions.get(e.selectedMeasureUnitId)||""}_setLineHeight(e){this._currencyLabelDiv.style.lineHeight=e+"px",this._measureUnitIdLabelDiv.style.lineHeight=e+"px",this._unitLabelDiv.style.lineHeight=e+"px"}_updateVisibility(){const e=this.isEnabled();this._currencyAndUnitLabelsWrapper.classList.toggle("js-hidden",!e),this._fadeDiv.classList.toggle("js-hidden",!e)}_oneLineHeight(){return 7+this._fontSize}}async function Ae(e,t,s,r){const{UnitConversionRenderer:n}=await Promise.all([i.e(8230),i.e(5384),i.e(7624),i.e(1428),i.e(1685),i.e(4819),i.e(8271),i.e(4412),i.e(3795),i.e(9776),i.e(3687),i.e(962),i.e(3016),i.e(1075),i.e(2704)]).then(i.bind(i,71834));return new n(e,s,t,r)}function Le(e,t){let{deltaX:i,deltaY:s}=e;switch(i/=100,s/=100,t.deltaMode){case t.DOM_DELTA_PAGE:i*=120,s*=120;break;case t.DOM_DELTA_LINE:i*=32,s*=32}return{deltaX:i,deltaY:s}}class ke{constructor(){this._totalDeltaX=0,this._totalDeltaY=0,this._prevWheelTime=0}processWheel(e){e.timeStamp-this._prevWheelTime>100&&this._reset(),this._totalDeltaX+=e.deltaX,this._totalDeltaY+=e.deltaY,this._prevWheelTime=e.timeStamp;const t={deltaX:e.deltaX,deltaY:e.deltaY};return 0===this._totalDeltaX||0===this._totalDeltaY||(Math.abs(this._totalDeltaX)>=Math.abs(3*this._totalDeltaY)&&(t.deltaY=0), -Math.abs(this._totalDeltaY)>=Math.abs(3*this._totalDeltaX)&&(t.deltaX=0)),Le(t,e)}_reset(){this._totalDeltaX=0,this._totalDeltaY=0}}var Ee=i(68335),De=i(50792),Be=i(22512),Ve=i(2484),Re=i(6195),Ne=i(43986),Oe=i(35624),Fe=i(39267);i(91663);const We=new O.TranslatedString("change no overlapping labels",n.t(null,void 0,i(83935))),He=n.t(null,void 0,i(75633)),ze=n.t(null,void 0,i(94420)),Ue=n.t(null,void 0,i(81520)),je=n.t(null,void 0,i(25933)),Ge=n.t(null,void 0,i(17258)),qe=n.t(null,void 0,i(50834)),$e=n.t(null,{context:"scale_menu"},i(70361)),Ye=n.t(null,{context:"scale_menu"},i(47807)),Ke=n.t(null,{context:"scale_menu"},i(34727)),Xe=n.t(null,{context:"scale_menu"},i(72116)),Ze=n.t(null,{context:"scale_menu"},i(19238)),Je=n.t(null,{context:"scale_menu"},i(54138));const Qe=function(e){const t=new Be.LimitedPrecisionNumericFormatter(e);return(e,i)=>(0,S.isNumber)(i)&&!e.isLog()?t.format(i):""}(4),et={contextMenuEnabled:!0,currencyConversionEnabled:!1,unitConversionEnabled:!1,countdownEnabled:!0,contextMenu:{general:!0,source:!0},pressedMouseMoveScale:!0,mouseWheelScale:!0,pinchScale:!0,croppedTickMarks:!0};class tt{constructor(e,t,i,r,n,o,a,l,c){this._actions=null,this._priceScale=null,this._widthCache=new pe.TextWidthCache(1e3),this._color=null,this._fontSize=null,this._currencyFontSize=0,this._currencyLabelWidth=null,this._isVisible=!0,this._updateTimeout=null,this._currencyMenu=null,this._unitMenu=null,this._prevOptimalWidth=0,this._size=(0,s.size)({width:0,height:0}),this._currentCursorClassName="",this._destroyed=!1,this._highlighted=!1,this._mouseWheelHelper=null,this._dragScaleActive=!1,this._offset=NaN,this._pinching=!1,this._lastHittestResult=null,this._recalcCurrencyAndUnitVisibility=()=>{if(null===this._currencyLabel)return;let e=!0;switch((0,Oe.currencyUnitVisibilityProperty)().value()){case"alwaysOff":e=!1;break;case"visibleOnMouseOver":const t=this._chart.anyPriceAxisHovered().value(),i=null!==this._currencyMenu&&this._currencyMenu.isOpened(),s=null!==this._unitMenu&&this._unitMenu.isOpened();e=t||i||s}this._currencyLabel.setHidden(!e)},this._chart=e,this._pane=t,this._undoModel=i,this._properties=r,this._isLeft="left"===o,this._options=(0,S.merge)((0,S.clone)(et),a),this._rendererOptionsProvider=n,this._backgroundBasedTheme=c,this._cell=document.createElement("div"),this._cell.className="price-axis",this._cell.style.width="25px",this._cell.style.left="0",this._canvasConfiguredHandler=()=>{this._undoModel.model().lightUpdate()},this._canvasBinding=(0,Y.createBoundCanvas)(this._cell,(0,s.size)({width:16,height:16})),this._canvasBinding.subscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler);const h=this._canvasBinding.canvasElement;h.style.position="absolute",h.style.zIndex="1",h.style.left="0",h.style.top="0",this._topCanvasBinding=(0,Y.createBoundCanvas)(this._cell,(0,s.size)({width:16,height:16})),this._topCanvasBinding.subscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler);const d=this._topCanvasBinding.canvasElement;d.style.position="absolute",d.style.zIndex="2",d.style.left="0", +Math.abs(this._totalDeltaY)>=Math.abs(3*this._totalDeltaX)&&(t.deltaX=0)),Le(t,e)}_reset(){this._totalDeltaX=0,this._totalDeltaY=0}}var Ee=i(68335),De=i(50792),Be=i(22512),Ve=i(2484),Re=i(6195),Ne=i(43986),Oe=i(35624),Fe=i(39267);i(91663);const We=new O.TranslatedString("change no overlapping labels",n.t(null,void 0,i(83935))),He=n.t(null,void 0,i(75633)),ze=n.t(null,void 0,i(94420)),Ue=n.t(null,void 0,i(81520)),je=n.t(null,void 0,i(25933)),Ge=n.t(null,void 0,i(17258)),qe=n.t(null,void 0,i(50834)),$e=n.t(null,{context:"scale_menu"},i(70361)),Ye=n.t(null,{context:"scale_menu"},i(47807)),Ke=n.t(null,{context:"scale_menu"},i(34727)),Ze=n.t(null,{context:"scale_menu"},i(72116)),Xe=n.t(null,{context:"scale_menu"},i(19238)),Je=n.t(null,{context:"scale_menu"},i(54138));const Qe=function(e){const t=new Be.LimitedPrecisionNumericFormatter(e);return(e,i)=>(0,S.isNumber)(i)&&!e.isLog()?t.format(i):""}(4),et={contextMenuEnabled:!0,currencyConversionEnabled:!1,unitConversionEnabled:!1,countdownEnabled:!0,contextMenu:{general:!0,source:!0},pressedMouseMoveScale:!0,mouseWheelScale:!0,pinchScale:!0,croppedTickMarks:!0};class tt{constructor(e,t,i,r,n,o,a,l,c){this._actions=null,this._priceScale=null,this._widthCache=new pe.TextWidthCache(1e3),this._color=null,this._fontSize=null,this._currencyFontSize=0,this._currencyLabelWidth=null,this._isVisible=!0,this._updateTimeout=null,this._currencyMenu=null,this._unitMenu=null,this._prevOptimalWidth=0,this._size=(0,s.size)({width:0,height:0}),this._currentCursorClassName="",this._destroyed=!1,this._highlighted=!1,this._mouseWheelHelper=null,this._dragScaleActive=!1,this._offset=NaN,this._pinching=!1,this._lastHittestResult=null,this._recalcCurrencyAndUnitVisibility=()=>{if(null===this._currencyLabel)return;let e=!0;switch((0,Oe.currencyUnitVisibilityProperty)().value()){case"alwaysOff":e=!1;break;case"visibleOnMouseOver":const t=this._chart.anyPriceAxisHovered().value(),i=null!==this._currencyMenu&&this._currencyMenu.isOpened(),s=null!==this._unitMenu&&this._unitMenu.isOpened();e=t||i||s}this._currencyLabel.setHidden(!e)},this._chart=e,this._pane=t,this._undoModel=i,this._properties=r,this._isLeft="left"===o,this._options=(0,S.merge)((0,S.clone)(et),a),this._rendererOptionsProvider=n,this._backgroundBasedTheme=c,this._cell=document.createElement("div"),this._cell.className="price-axis",this._cell.style.width="25px",this._cell.style.left="0",this._canvasConfiguredHandler=()=>{this._undoModel.model().lightUpdate()},this._canvasBinding=(0,Y.createBoundCanvas)(this._cell,(0,s.size)({width:16,height:16})),this._canvasBinding.subscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler);const h=this._canvasBinding.canvasElement;h.style.position="absolute",h.style.zIndex="1",h.style.left="0",h.style.top="0",this._topCanvasBinding=(0,Y.createBoundCanvas)(this._cell,(0,s.size)({width:16,height:16})),this._topCanvasBinding.subscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler);const d=this._topCanvasBinding.canvasElement;d.style.position="absolute",d.style.zIndex="2",d.style.left="0", d.style.top="0",this._mouseEventHandler=new $.MouseEventHandler(this._cell,this,{treatVertTouchDragAsPageScroll:!1,treatHorzTouchDragAsPageScroll:!0}),this._options.currencyConversionEnabled||this._options.unitConversionEnabled?(this._currencyLabel=new Me,this._cell.appendChild(this._currencyLabel.element())):this._currencyLabel=null,this._properties.childs().fontSize.subscribe(this,this._onFontSizeChanged),this._options.mouseWheelScale&&(this._mouseWheelHelper=new ke,this._cell.addEventListener("wheel",this._onMousewheel.bind(this),{passive:!1})),this._axisInfo=l,this._offset=0,this.restoreDefaultCursor(),(0,Oe.currencyUnitVisibilityProperty)().subscribe(this,this._recalcCurrencyAndUnitVisibility),this._chart.anyPriceAxisHovered().subscribe(this._recalcCurrencyAndUnitVisibility),this._recalcCurrencyAndUnitVisibility(),this.update()}getContextMenuActions(){this._initActions();const e=(0,r.ensureNotNull)(this._actions),t=this._chart.actions(),i=[];return i.push(e.reset,new Ne.Separator,this._autoScaleAction()),this._isMainSeriesAxis()&&i.push(this._lockScaleAction()),i.push(t.scaleSeriesOnly,this._invertAction(),new Ne.Separator,this._regularScaleAction(),this._percentageAction(),this._indexedTo100Action(),this._logAction(),new Ne.Separator),c.CheckMobile.any()||(i.push(this._createMergeScalesAction()),i.push(new Ne.Separator)),Ve.enabled("fundamental_widget")||i.push(new Ne.Action({actionId:"Chart.PriceScale.Labels",label:ze,subItems:[t.showSymbolLabelsAction,t.showSeriesLastValue,null,null,t.showHighLowPriceLabels,Ve.enabled("show_average_close_price_line_and_label")?t.showAverageClosePriceLabel:null,null,t.showStudyPlotNamesAction,t.showStudyLastValue,e.alignLabels].filter(Boolean)})),i.push((0,Re.createLinesAction)(this._chart)),this._options.countdownEnabled&&i.push(t.showCountdown),this._undoModel.crossHairSource().isMenuEnabled()&&i.push(t.addPlusButton),!(0,c.onWidget)()&&Ve.enabled("show_chart_property_page")&&Ve.enabled("chart_property_page_scales")&&t.scalesProperties&&i.push(new Ne.Separator,t.scalesProperties),i}getElement(){return this._cell}onOptimalWidthNeedToBeRecalculated(e){const t=this.optimalWidth();(this._prevOptimalWidth{this._undoModel.model().fullUpdate(),this._updateTimeout=null}),100)),this._prevOptimalWidth=t}optimalWidth(){var e;if(!this.isVisible())return 0;let t=0;const i=this.rendererOptions();if(this._pane.hasState()){const i=(0,Y.getContext2D)(this._canvasBinding.canvasElement);i.font=this.baseFont();const s=this.backLabels(!0);for(let e=s.length;e--;){if(!s[e].isAxisLabelVisible())continue;const r=this._widthCache.measureText(i,s[e].text());t=Math.max(t,r);const n=s[e].secondLineText();n&&(t=Math.max(t,this._widthCache.measureText(i,n)));const o=s[e].thirdLineText();o&&(t=Math.max(t,this._widthCache.measureText(i,o)))}const r=this.priceScale(),n=r.marks();n.length>0&&(t=Math.max(t,this._widthCache.measureText(i,n[0].label),this._widthCache.measureText(i,n[n.length-1].label))) ;const o=(null===(e=r.mainSource())||void 0===e?void 0:e.firstValue())||null;if(null!==o){const e=r.coordinateToPrice(1,o),s=r.coordinateToPrice(this._size.height-2,o);if(Math.abs(e-s)>1e-14){const n=r.formatPrice(Math.floor(Math.min(e,s))+.11111111111111,o),a=r.formatPrice(Math.ceil(Math.max(e,s))-.11111111111111,o);t=Math.max(t,this._widthCache.measureText(i,n),this._widthCache.measureText(i,a))}}}let s=0;this._isCurrencyLabelEnabled()&&(null===this._currencyLabelWidth&&(this._currencyLabelWidth=(0,r.ensureNotNull)(this._currencyLabel).width()),s=Math.round(this._currencyLabelWidth));const n=t||34;let o=Math.max(s,Math.ceil(i.borderSize+i.offsetSize+i.paddingInner+i.paddingOuter+n+4));return o+=o%2,o}backLabels(e){const t=[],i=this._grouppedSources(),s=s=>{for(const r of s){if(!e&&i.topLevelSources.has(r))continue;const s=r.priceAxisViews(this._pane.state(),this.priceScale());if(s)for(const e of s)t.push(e)}};return s(i.sources),s(this._pane.state().customSources()),t}setSizeAndOffset(e,t){(0,s.equalSizes)(this._size,e)||(this._size=e,this._canvasBinding.resizeCanvasElement(e),this._topCanvasBinding.resizeCanvasElement(e),this._cell.style.width=e.width+"px",this._cell.style.height=e.height+"px",this._cell.style.minWidth=e.width+"px"),this._offset!==t&&(this._offset=t,this._cell.style.left=t+"px")}getWidth(){return this._size.width}getImage(){const e=this._size,t=(0,Y.createDisconnectedCanvas)(document,e);return(0,Y.getPrescaledContext2D)(t).drawImage(this._canvasBinding.canvasElement,0,0,e.width,e.height),null!==this._currencyLabel&&this._currencyLabel.isEnabled()&&this._currencyLabel.drawLabel((0,Y.getContext2D)(t),e.width,(0,Y.getCanvasDevicePixelRatio)(t)),t}update(){}paint(e){if(!this._isVisible||0===this._size.width||0===this._size.height)return;if(e===D.InvalidationLevel.None)return;const t=this._pane.state(),i=!t.maximized().value()&&t.collapsed().value();if(this._canvasBinding.applySuggestedBitmapSize(),this._topCanvasBinding.applySuggestedBitmapSize(),e>D.InvalidationLevel.Cursor){const e=(0,Y.getContext2D)(this._canvasBinding.canvasElement),t=(0,Y.getBindingPixelRatio)(this._canvasBinding);i||this._alignLabels(),this._drawBackground(e,t),this._drawBorder(e,t),this._pane.hasState()&&(this.updateCurrencyLabel(),i||(this._drawTickMarks(e,t),this._drawBackLabels(e,t)))}if(this._pane.hasState()&&!i){const e=(0,Y.getContext2D)(this._topCanvasBinding.canvasElement),t=(0,Y.getBindingPixelRatio)(this._topCanvasBinding);e.clearRect(0,0,Math.ceil(this._size.width*t)+1,Math.ceil(this._size.height*t)+1),this._drawCrossHairLabel(e,t)}}restoreDefaultCursor(){this._setCursor("")}priceScale(){return(0,r.ensureNotNull)(this._priceScale)}setPriceScale(e){this._priceScale!==e&&(null!==this._priceScale&&(this._priceScale.onMarksChanged().unsubscribe(this,this.onOptimalWidthNeedToBeRecalculated),this._priceScale.modeChanged().unsubscribeAll(this)),this._priceScale=e,null!==e&&(e.onMarksChanged().subscribe(this,this.onOptimalWidthNeedToBeRecalculated), -e.modeChanged().subscribe(this,(()=>this.onOptimalWidthNeedToBeRecalculated(!0)))))}isVisible(){return this._isVisible}setVisible(e){(e=!!e)!==this._isVisible&&(this._cell.style.display=e?"table-cell":"none",this._isVisible=e)}destroy(){null!==this._currencyMenu&&(this._currencyMenu.close(),this._currencyMenu=null),null!==this._unitMenu&&(this._unitMenu.close(),this._unitMenu=null),this._topCanvasBinding.unsubscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler),this._topCanvasBinding.dispose(),this._canvasBinding.unsubscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler),this._canvasBinding.dispose(),null!==this._priceScale&&(this._priceScale.onMarksChanged().unsubscribe(this,this.onOptimalWidthNeedToBeRecalculated),this._priceScale.modeChanged().unsubscribeAll(this)),this._priceScale=null,this._updateTimeout&&(clearTimeout(this._updateTimeout),this._updateTimeout=null),this._mouseEventHandler.destroy(),this._properties.childs().fontSize.unsubscribe(this,this._onFontSizeChanged),null!==this._actions&&this._actions.reset&&this._actions.reset.destroy(),(0,Oe.currencyUnitVisibilityProperty)().unsubscribeAll(this),this._chart.anyPriceAxisHovered().unsubscribe(this._recalcCurrencyAndUnitVisibility),this._chart.setPriceAxisHovered(this,!1),this._destroyed=!0}axisInfo(){return this._axisInfo}setHighlighted(e){this._highlighted=e}backgroundColor(){return this._pane.state().model().backgroundColor().value()}backgroundTopColor(){return this._pane.state().model().backgroundTopColor().value()}lineColor(){return this._properties.childs().lineColor.value()}textColor(){return this._properties.childs().textColor.value()}fontSize(){return this._properties.childs().fontSize.value()}baseFont(){return(0,X.makeFont)(this.fontSize(),ee.CHART_FONT_FAMILY,"")}rendererOptions(){let e=this._rendererOptionsProvider.options();return this._color===e.color&&this._fontSize===e.fontSize||(this._color=e.color),this._fontSize!==e.fontSize&&(this._widthCache.reset(),this._fontSize=e.fontSize,this._currencyLabelWidth=null,this._currencyFontSize=0,this._updateCurrencyLabelFont(),this.onOptimalWidthNeedToBeRecalculated()),e}mouseEnterEvent(e){this._chart.setPriceAxisHovered(this,!0),this._mouseEnterOrTouchStartEvent(e)}mouseMoveEvent(e){this._mouseOrTouchMoveEvent(e)}mouseDownEvent(e){this._mouseDownOrTouchStartEvent(e)}touchStartEvent(e){this._mouseOrTouchMoveEvent(e),this._mouseEnterOrTouchStartEvent(e),this._mouseDownOrTouchStartEvent(e)}pressedMouseMoveEvent(e){this._pressedMouseOrTouchMoveEvent(e)}touchMoveEvent(e){this._pressedMouseOrTouchMoveEvent(e)}pinchStartEvent(){}pinchEvent(e,t,i){if(this._zoomAvailable()&&this._options.pinchScale){if(this._dragScaleActive&&this._finishScale(),!this._pinching)return this._pinching=!0,void this._undoModel.startTwoPointsScalePrice(this._pane.state(),this.priceScale(),t.y,i.y);this._undoModel.twoPointsScalePriceTo(this._pane.state(),this.priceScale(),t.y,i.y)}}pinchEndEvent(){this._pinching=!1,this._undoModel.endTwoPointsScalePrice(this._pane.state(),this.priceScale())} +e.modeChanged().subscribe(this,(()=>this.onOptimalWidthNeedToBeRecalculated(!0)))))}isVisible(){return this._isVisible}setVisible(e){(e=!!e)!==this._isVisible&&(this._cell.style.display=e?"table-cell":"none",this._isVisible=e)}destroy(){null!==this._currencyMenu&&(this._currencyMenu.close(),this._currencyMenu=null),null!==this._unitMenu&&(this._unitMenu.close(),this._unitMenu=null),this._topCanvasBinding.unsubscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler),this._topCanvasBinding.dispose(),this._canvasBinding.unsubscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler),this._canvasBinding.dispose(),null!==this._priceScale&&(this._priceScale.onMarksChanged().unsubscribe(this,this.onOptimalWidthNeedToBeRecalculated),this._priceScale.modeChanged().unsubscribeAll(this)),this._priceScale=null,this._updateTimeout&&(clearTimeout(this._updateTimeout),this._updateTimeout=null),this._mouseEventHandler.destroy(),this._properties.childs().fontSize.unsubscribe(this,this._onFontSizeChanged),null!==this._actions&&this._actions.reset&&this._actions.reset.destroy(),(0,Oe.currencyUnitVisibilityProperty)().unsubscribeAll(this),this._chart.anyPriceAxisHovered().unsubscribe(this._recalcCurrencyAndUnitVisibility),this._chart.setPriceAxisHovered(this,!1),this._destroyed=!0}axisInfo(){return this._axisInfo}setHighlighted(e){this._highlighted=e}backgroundColor(){return this._pane.state().model().backgroundColor().value()}backgroundTopColor(){return this._pane.state().model().backgroundTopColor().value()}lineColor(){return this._properties.childs().lineColor.value()}textColor(){return this._properties.childs().textColor.value()}fontSize(){return this._properties.childs().fontSize.value()}baseFont(){return(0,Z.makeFont)(this.fontSize(),ee.CHART_FONT_FAMILY,"")}rendererOptions(){let e=this._rendererOptionsProvider.options();return this._color===e.color&&this._fontSize===e.fontSize||(this._color=e.color),this._fontSize!==e.fontSize&&(this._widthCache.reset(),this._fontSize=e.fontSize,this._currencyLabelWidth=null,this._currencyFontSize=0,this._updateCurrencyLabelFont(),this.onOptimalWidthNeedToBeRecalculated()),e}mouseEnterEvent(e){this._chart.setPriceAxisHovered(this,!0),this._mouseEnterOrTouchStartEvent(e)}mouseMoveEvent(e){this._mouseOrTouchMoveEvent(e)}mouseDownEvent(e){this._mouseDownOrTouchStartEvent(e)}touchStartEvent(e){this._mouseOrTouchMoveEvent(e),this._mouseEnterOrTouchStartEvent(e),this._mouseDownOrTouchStartEvent(e)}pressedMouseMoveEvent(e){this._pressedMouseOrTouchMoveEvent(e)}touchMoveEvent(e){this._pressedMouseOrTouchMoveEvent(e)}pinchStartEvent(){}pinchEvent(e,t,i){if(this._zoomAvailable()&&this._options.pinchScale){if(this._dragScaleActive&&this._finishScale(),!this._pinching)return this._pinching=!0,void this._undoModel.startTwoPointsScalePrice(this._pane.state(),this.priceScale(),t.y,i.y);this._undoModel.twoPointsScalePriceTo(this._pane.state(),this.priceScale(),t.y,i.y)}}pinchEndEvent(){this._pinching=!1,this._undoModel.endTwoPointsScalePrice(this._pane.state(),this.priceScale())} mouseDownOutsideEvent(){this._finishScale()}touchStartOutsideEvent(){this._finishScale()}mouseUpEvent(e){this._mouseUpOrTouchEndEvent(e)}touchEndEvent(e){this._mouseLeaveOrTouchEndEvent(e),this._mouseUpOrTouchEndEvent(e)}mouseClickEvent(e){this._mouseClickOrTapEvent(e)}tapEvent(e){this._mouseClickOrTapEvent(e)}mouseLeaveEvent(e){this._chart.setPriceAxisHovered(this,!1),this._mouseLeaveOrTouchEndEvent(e)}mouseDoubleClickEvent(e){this._mouseDoubleClickOrDoubleTapEvent(e)}doubleTapEvent(e){this._mouseDoubleClickOrDoubleTapEvent(e)}contextMenuEvent(e){this._contextMenuOrTouchContextMenuEvent(e)}touchContextMenuEvent(e){this._contextMenuOrTouchContextMenuEvent(e)}dataSourceAtPoint(e,t){const i=this._pane.state();if(!i.maximized().value()&&i.collapsed().value())return null;const s=this._grouppedSources(),r=[...s.sources,...s.topLevelSources,...i.customSources()];let n=null,o=null;if(!this._priceScale)return null;const a=(e,t)=>{var i;const s=null!==(i=null==o?void 0:o.result())&&void 0!==i?i:0;e.result()>s&&(o=e,n=t)},l=new V.Point(e,t);for(let e=r.length-1;e>=0;--e){const t=r[e],s=t.priceAxisViews(i,this._priceScale);if(s&&0!==s.length)for(let e=s.length-1;e>=0;--e){const i=s[e].renderer();if(void 0!==i.hitTest){const e=i.hitTest(l,this._size.width,this._isLeft?"left":"right");null!==e&&a(e,t)}}}return this._lastHittestResult=o,n}reset(){const e=this._pane.state(),t=this.priceScale();this._undoModel.resetPriceScale(e,t),this.onOptimalWidthNeedToBeRecalculated(!0)}sizeReady(){return this.getWidth()>=this.optimalWidth()&&null===this._updateTimeout}updateCurrencyLabel(){if(null===this._currencyLabel)return;let e=!1;if(this._options.currencyConversionEnabled){const t=this.priceScale().currency(this._undoModel.model().availableCurrencies());null===t||"alwaysOff"===(0,Oe.currencyUnitVisibilityProperty)().value()?(e=this._currencyLabel.currencyLabelEnabled(),this._currencyLabel.disableCurrency()):(e=!this._currencyLabel.currencyLabelEnabled(),this._currencyLabel.enableCurrency(),this._currencyLabel.updateColors(this.backgroundTopColor(),this.textColor()),e=this._currencyLabel.setCurrencyInfo(t)||e)}if(this._options.unitConversionEnabled){const t="alwaysOff"===(0,Oe.currencyUnitVisibilityProperty)().value(),i=this._undoModel.model().availableUnits(),s=this.priceScale().unit(i);null===s||t?(e=e||this._currencyLabel.unitLabelEnabled(),this._currencyLabel.disableUnit()):(e=e||!this._currencyLabel.unitLabelEnabled(),this._currencyLabel.enableUnit(),this._currencyLabel.updateColors(this.backgroundTopColor(),this.textColor()),e=this._currencyLabel.setUnitInfo(s)||e);const r=this.priceScale().measureUnitId(i);null===r||t?(e=e||this._currencyLabel.measureUnitIdLableEnabled(),this._currencyLabel.disableMeasureUnitId()):(e=e||!this._currencyLabel.measureUnitIdLableEnabled(),this._currencyLabel.enableMeasureUnitId(),this._currencyLabel.updateColors(this.backgroundTopColor(),this.textColor()),e=this._currencyLabel.setMeasureUnitIdInfo(r)||e)}this._updateCurrencyLabelFont(),e&&(this._currencyLabelWidth=null)}_grouppedSources(){var e ;const t=this._pane,i=t.state().model(),s=this._sameSideSources().slice(),r=t.state(),n=this.priceScale(),o=new Set,a=null!==(e=i.lineBeingEdited())&&void 0!==e?e:i.lineBeingCreated();a&&o.add(a);const l=i.customSourceBeingMoved();null!==l&&o.add(l),i.sourcesBeingMoved().forEach((e=>o.add(e))),i.selection().allSources().forEach((e=>o.add(e)));const c=i.hoveredSource();null!==c&&o.add(c);if(n===r.defaultPriceScale()){const e=this._pane.state().dataSources();for(const t of e)r.isOverlay(t)&&s.push(t)}return{sources:s,topLevelSources:o}}_isCurrencyLabelEnabled(){return null!==this._currencyLabel&&this._currencyLabel.isEnabled()}_updateCurrencyLabelFont(){if(null===this._currencyLabel)return;const e=this.fontSize();e!==this._currencyFontSize&&(this._currencyLabel.setFontSize(e),this._currencyFontSize=e,this._currencyLabelWidth=null,this.onOptimalWidthNeedToBeRecalculated())}_alignLabels(){var e,t;const i=this._size.height;let s=i/2;const r=[],n=this.priceScale(),o=n.orderedSources().slice(),a=this._pane.state(),l=this.rendererOptions();if(n===a.defaultPriceScale()){const e=a.priceDataSources();for(let t=0;t{if(e.ignoreAlignment()||!e.isVisible())return!1;const{total:t}=e.topBottomTotalHeight(l),s=e.floatCoordinate();return s>-t&&se.floatCoordinate()<=s)),d=r.filter((e=>e.floatCoordinate()>s));h.sort(((e,t)=>t.floatCoordinate()-e.floatCoordinate())),h.length>0&&d.length>0&&d.push(h[0]),d.sort(((e,t)=>e.floatCoordinate()-t.floatCoordinate()));for(const e of r)e.setFixedCoordinate(e.coordinate());if(n.properties().childs().alignLabels.value()){if(d.length>0||h.length>0){{const t=null!==(e=h[0])&&void 0!==e?e:d[0],s=t.getFixedCoordinate(),{top:r,bottom:n,total:o}=t.topBottomTotalHeight(l);o0&&t.setFixedCoordinate(r)}{const e=null!==(t=d[0])&&void 0!==t?t:h[0],s=e.getFixedCoordinate(),{top:r,bottom:n,total:o}=e.topBottomTotalHeight(l);oi&&e.setFixedCoordinate(i-n)}}for(let e=1;ea-n)t.setFixedCoordinate(a-n);else if(a>0&&o-s<0&&o+r>0){const{top:e}=i.topBottomTotalHeight(l);t.setFixedCoordinate(Math.min(a-e-r,s))}}for(let e=1;ei&&t.setFixedCoordinate(Math.max(a+r+e,i-s))}}}}_drawTickMarks(e,t){const i=this.priceScale().marks();e.save(),e.font=this.baseFont() ;const s=this.rendererOptions(),n=this._isLeft?Math.floor((this._size.width-s.offsetSize)*t):0,o=this._isLeft?Math.round(n-s.paddingInner*t):Math.round(n+(s.offsetSize+s.paddingInner)*t),a=this.fontSize(),l=this._isCurrencyLabelEnabled()?(0,r.ensureNotNull)(this._currencyLabel).labelBottom():0,c=i.map((t=>{if(this._options.croppedTickMarks)return{visible:!0,yCorrection:this._widthCache.yMidCorrection(e,t.label)};const i=t.coord-a/2,s=t.coord+a/2,r=!(s>this._size.height||ithis._size.height||i{for(let s=i.length;s--;){if(!c[s].visible)continue;const r=i[s];e.fillText(r.label,o/t,r.coord+c[s].yCorrection)}})),e.restore()}_hasAlertLabel(){return!1}async _showCurrenciesContextMenu(){if(null!==this._currencyMenu&&this._currencyMenu.isOpened())return void this._currencyMenu.close();(0,_e.trackEvent)("GUI","Currency conversion");const{currencyActions:e}=await Promise.all([i.e(8230),i.e(5384),i.e(7624),i.e(1428),i.e(1685),i.e(4819),i.e(8271),i.e(4412),i.e(3795),i.e(9776),i.e(3687),i.e(962),i.e(3016),i.e(1075),i.e(2704)]).then(i.bind(i,12296)),t=await Ae(Ue,(()=>e(this._undoModel,(0,r.ensureNotNull)(this._currencyLabel).currencyInfo(),this.priceScale())),(0,r.ensureNotNull)(this._currencyLabel).currencyLabelElement(),(()=>this._recalcCurrencyAndUnitVisibility()));this._destroyed?t.close():this._currencyMenu=t}async _showUnitsContextMenu(){if(null!==this._unitMenu&&this._unitMenu.isOpened())return void this._unitMenu.close();(0,_e.trackEvent)("GUI","Unit conversion");const{unitActions:e}=await Promise.all([i.e(8230),i.e(5384),i.e(7624),i.e(1428),i.e(1685),i.e(4819),i.e(8271),i.e(4412),i.e(3795),i.e(9776),i.e(3687),i.e(962),i.e(3016),i.e(1075),i.e(2704)]).then(i.bind(i,7690)),t=await Ae(je,(()=>e(this._undoModel,(0,r.ensureNotNull)(this._currencyLabel).unitInfo(),this.priceScale())),(0,r.ensureNotNull)(this._currencyLabel).unitLabelElement(),(()=>this._recalcCurrencyAndUnitVisibility()));this._destroyed?t.close():this._unitMenu=t}_onFontSizeChanged(){this._currencyLabelWidth=null,this._currencyFontSize=0,this._updateCurrencyLabelFont(),this.onOptimalWidthNeedToBeRecalculated()}_mouseOrTouchMoveEvent(e){if(!this._priceScale)return;this.dataSourceAtPoint(e.localX,e.localY)?this._setCursorClassName("pointer"):this._setResizeCursor()}_mouseDownOrTouchStartEvent(e){this._zoomAvailable()&&this._options.pressedMouseMoveScale&&!this._pinching&&(this._dragScaleActive=!0,this._undoModel.startScalePrice(this._pane.state(),this.priceScale(),e.localY))}_mouseEnterOrTouchStartEvent(e){this._setResizeCursor()}_pressedMouseOrTouchMoveEvent(e){if(this._dragScaleActive){const t=this.priceScale();this._undoModel.scalePriceTo(this._pane.state(),t,e.localY)}}_mouseUpOrTouchEndEvent(e){this._finishScale()}_finishScale(){this._dragScaleActive&&(this._undoModel.endScalePrice(this._pane.state(),this.priceScale()),this.restoreDefaultCursor(), this._dragScaleActive=!1)}_mouseClickOrTapEvent(e){if(this._currencyLabel){if(this._currencyLabel.currencyConversionAvailable()&&this._currencyLabel.currencyLabelElement().contains(e.target))return void this._showCurrenciesContextMenu();if(this._currencyLabel.unitConversionAvailable()&&this._currencyLabel.unitLabelElement().contains(e.target))return void this._showUnitsContextMenu()}const t=this.dataSourceAtPoint(e.localX,e.localY);t&&this._undoModel.selectionMacro((e=>{e.selection().isSelected(t)||(e.clearSelection(),e.addSourceToSelection(t))}))}_mouseLeaveOrTouchEndEvent(e){this._setCursorClassName("")}_mouseDoubleClickOrDoubleTapEvent(e){var t;const i=this.dataSourceAtPoint(e.localX,e.localY);i?this._pane.processDoubleClickOnSource(i,null!==(t=this._lastHittestResult)&&void 0!==t?t:void 0,{origin:"price_scale"}):(this.reset(),(0,_e.trackEvent)("GUI","Double click price scale"))}_contextMenuOrTouchContextMenuEvent(e){if(this._options.contextMenuEnabled){const t=this.dataSourceAtPoint(e.localX,e.localY);if(null!==t&&this._options.contextMenu.source){return void this._undoModel.model().selectionMacro((i=>{i.selection().isSelected(t)||(i.clearSelection(),i.addSourceToSelection(t)),this._pane.showContextMenuForSelection(e,{origin:"price_scale"})}))}this._options.contextMenu.general&&ae.ContextMenuManager.showMenu(this.getContextMenuActions(),e,{statName:"PriceScaleContextMenu"},{menuName:"PriceScaleContextMenu"})}}_setResizeCursor(){const e=this.priceScale();e.isPercentage()||e.isIndexedTo100()?this._setCursorClassName(""):this._zoomAvailable()&&(this._options.pressedMouseMoveScale||this._options.mouseWheelScale)&&this._setCursorClassName("ns-resize")}_setCursorClassName(e){let t="";e&&(t="price-axis--cursor-"+e),this._currentCursorClassName!==t&&(this._currentCursorClassName&&this._cell.classList.remove(this._currentCursorClassName),t&&this._cell.classList.add(t),this._currentCursorClassName=t)}_zoomAvailable(){return!this.priceScale().isEmpty()&&this._undoModel.model().zoomEnabled()}_onMousewheel(e){if(!this._zoomAvailable()||!this._options.mouseWheelScale)return;const t=(0,r.ensureNotNull)(this._mouseWheelHelper).processWheel(e).deltaY;if(0===t)return;e.cancelable&&e.preventDefault();const i=this._undoModel,s=this._pane.state(),n=this.priceScale(),o=this._cell.getBoundingClientRect(),a=e.clientY-o.top,l=a+15*t;i.startScalePrice(s,this.priceScale(),a,!0),i.scalePriceTo(s,n,l),i.endScalePrice(s,n),e.stopPropagation()}_drawCrossHairLabel(e,t){var i,s;e.save();const r=this._pane.state(),n=r.model(),o=this.priceScale(),a=[],l=this.priceScale()===r.defaultPriceScale(),c=null!==(i=n.lineBeingEdited())&&void 0!==i?i:n.lineBeingCreated();if(c&&(c.priceScale()===o||l&&r.isOverlay(c))){const e=c.priceAxisViews(r,o);e&&e.length&&a.push(e)}const h=n.customSourceBeingMoved();this._addViewsOrMaxMin(null===h?[]:[h],a),this._addViewsOrMaxMin(n.sourcesBeingMoved(),a),this._addViewsOrMaxMin(n.selection().allSources(),a);const d=n.hoveredSource();if(d){const e=r.customSources().includes(d)?o:d.priceScale() -;if(!n.selection().isSelected(d)&&(this._isFromSameSide(e)||l&&r.isOverlay(d))){const e=null===(s=n.hoveredSource())||void 0===s?void 0:s.priceAxisViews(r,o);e&&e.length&&a.push(e)}}const u=n.crossHairSource().priceAxisViews(r,o);u&&u.length&&a.push(u);const p=this.rendererOptions(),_=this._isLeft?"right":"left";a.forEach((i=>{i.forEach((i=>{e.save(),i.renderer().draw(e,p,this._widthCache,this._size.width,this._size.height,_,t),e.restore()}))})),e.restore()}_drawBackground(e,t){const i=Math.ceil(this._size.width*t),s=Math.ceil(this._size.height*t),r=this.backgroundTopColor(),n=this.backgroundColor();if(r===n?(0,Y.clearRect)(e,0,0,i+1,s+1,this.backgroundColor()):(0,K.clearRectWithGradient)(e,0,0,i+1,s+1,r,n),this._highlighted){e.globalAlpha=.5;const t=Z.themes[this._backgroundBasedTheme.value()].getThemedColor("color-price-axis-highlight");(0,Y.fillRect)(e,0,0,i+1,s+1,t),e.globalAlpha=1}const o=this._pane.state().model(),a=this.priceScale(),l=o.selection().lineDataSources().filter((e=>e.priceScale()===a)).reduce(((e,t)=>{const i=t.priceAxisPoints();return 0===i.length?e:e.concat(i)}),[]);l.length>0&&this._hightlightBackground(e,l,this.priceScale().mainSource(),t);const c=o.crossHairSource();c.startMeasurePoint()&&this._hightlightBackground(e,c.measurePoints(),this.priceScale().mainSource(),t)}_drawBorder(e,t){e.save(),e.fillStyle=this.lineColor();const i=Math.max(1,Math.floor(this.rendererOptions().borderSize*t)),s=this._isLeft?Math.floor(this._size.width*t)-i:0;e.fillRect(s,0,i,Math.ceil(this._size.height*t)+1),e.restore()}_drawBackLabels(e,t){e.save();const i=this.backLabels(),s=this.rendererOptions(),r=this._isLeft?"right":"left";for(const n of i)n.isAxisLabelVisible()&&(e.save(),n.renderer().draw(e,s,this._widthCache,this._size.width,this._size.height,r,t),e.restore());e.restore()}_hightlightBackground(e,t,i,s){if(!i)return;const r=i.firstValue();if(null===r)return;let n=t[0].price,o=t[0].price;for(let e=1;ei.isOverlay(e)||this._isFromSameSide(e.priceScale())))),0!==e.length)if(1===e.length){const r=e[0].priceAxisViews(i,s);r&&r.length&&t.push(r)}else t.push(this._minMaxViews(e))}_minMaxViews(e){const t=this._pane.state(),i=this.priceScale(),s=[];let r=1/0,n=-1/0,o=null,a=null;for(const s of e){const e=s.priceAxisViews(t,i);if(e&&e.length)for(let t=0;t=n&&(n=s,a=i),s<=r&&(r=s,o=i)}}return a&&s.push(a),o&&s.push(o),s}_isFromSameSide(e){return null!==e&&(this._isLeft?this._pane.state().leftPriceScales():this._pane.state().rightPriceScales()).includes(e)}_sameSideSources(){const e=this._pane.state().sourcesByGroup() -;return this._isLeft?e.leftPriceScalesSources():e.rightPriceScalesSources()}_initActions(){if(!this._pane.hasState()||null!==this._actions)return;const e=this._undoModel,t=new Ne.Action({actionId:"Chart.PriceScale.Reset",label:Ge,icon:Fe,shortcutHint:(0,Ee.humanReadableHash)(Ee.Modifiers.Alt+82),statName:"ResetScale",onExecute:()=>this.reset()}),i=new Ne.Action({actionId:"Chart.PriceScale.ToggleAutoScale",label:qe,checkable:!0,checked:!0,statName:"ToggleAutoScale",onExecute:()=>{e.togglePriceScaleAutoScaleMode(this.priceScale()),this._updateScalesActions()}}),s=new Ne.Action({actionId:"Chart.PriceScale.TogglePercentage",label:$e,checkable:!0,checked:this.priceScale().isPercentage(),statName:"TogglePercantage",onExecute:()=>{e.togglePriceScalePercentageScaleMode(this.priceScale()),this._updateScalesActions()}}),r=new Ne.Action({actionId:"Chart.PriceScale.ToggleIndexedTo100",label:Ye,checkable:!0,checked:this.priceScale().isIndexedTo100(),statName:"ToggleIndexedTo100",onExecute:()=>{e.togglePriceScaleIndexedTo100ScaleMode(this.priceScale()),this._updateScalesActions()}}),n=new Ne.Action({actionId:"Chart.PriceScale.ToggleLogarithmic",label:Ke,checkable:!0,checked:this.priceScale().isLog(),statName:"ToggleLogScale",onExecute:()=>{e.togglePriceScaleLogScaleMode(this.priceScale()),this._updateScalesActions()}}),o=new Ne.Action({actionId:"Chart.PriceScale.ToggleRegular",label:Xe,checkable:!0,checked:this.priceScale().isRegular(),statName:"ToggleRegularScale",onExecute:()=>{e.setPriceScaleRegularScaleMode(this.priceScale()),this._updateScalesActions()}}),a=new Ne.Action({actionId:"Chart.PriceScale.Labels.ToggleNoOverlappingLabelsVisibility",label:Ze,checkable:!0,checked:this.priceScale().properties().childs().alignLabels.value(),statName:"TogglePreciseLabels"});a.setBinding(new De.ActionBinder(a,this.priceScale().properties().childs().alignLabels,e,We));const l=new Ne.Action({actionId:"Chart.PriceScale.ToggleInvertScale",label:Je,checkable:!0,checked:this.priceScale().isInverted(),statName:"Invert Scale",onExecute:()=>{e.invertPriceScale(this.priceScale()),this._updateScalesActions()}});this._actions={reset:t,setAutoScale:i,setPercentage:s,setIndexedTo100:r,setLog:n,setRegular:o,alignLabels:a,invertScale:l},this._updateScalesActions()}_logAction(){return this._isMainSeriesAxis()?this._chart.actions().logSeriesScale:(0,r.ensureNotNull)(this._actions).setLog}_percentageAction(){return this._isMainSeriesAxis()?this._chart.actions().percentSeriesScale:(0,r.ensureNotNull)(this._actions).setPercentage}_indexedTo100Action(){return this._isMainSeriesAxis()?this._chart.actions().indexedTo100SeriesScale:(0,r.ensureNotNull)(this._actions).setIndexedTo100}_autoScaleAction(){return this._isMainSeriesAxis()?this._chart.actions().autoSeriesScale:(0,r.ensureNotNull)(this._actions).setAutoScale}_regularScaleAction(){return this._isMainSeriesAxis()?this._chart.actions().regularSeriesScale:(0,r.ensureNotNull)(this._actions).setRegular}_lockScaleAction(){ +;if(!n.selection().isSelected(d)&&(this._isFromSameSide(e)||l&&r.isOverlay(d))){const e=null===(s=n.hoveredSource())||void 0===s?void 0:s.priceAxisViews(r,o);e&&e.length&&a.push(e)}}const u=n.crossHairSource().priceAxisViews(r,o);u&&u.length&&a.push(u);const p=this.rendererOptions(),_=this._isLeft?"right":"left";a.forEach((i=>{i.forEach((i=>{e.save(),i.renderer().draw(e,p,this._widthCache,this._size.width,this._size.height,_,t),e.restore()}))})),e.restore()}_drawBackground(e,t){const i=Math.ceil(this._size.width*t),s=Math.ceil(this._size.height*t),r=this.backgroundTopColor(),n=this.backgroundColor();if(r===n?(0,Y.clearRect)(e,0,0,i+1,s+1,this.backgroundColor()):(0,K.clearRectWithGradient)(e,0,0,i+1,s+1,r,n),this._highlighted){e.globalAlpha=.5;const t=X.themes[this._backgroundBasedTheme.value()].getThemedColor("color-price-axis-highlight");(0,Y.fillRect)(e,0,0,i+1,s+1,t),e.globalAlpha=1}const o=this._pane.state().model(),a=this.priceScale(),l=o.selection().lineDataSources().filter((e=>e.priceScale()===a)).reduce(((e,t)=>{const i=t.priceAxisPoints();return 0===i.length?e:e.concat(i)}),[]);l.length>0&&this._hightlightBackground(e,l,this.priceScale().mainSource(),t);const c=o.crossHairSource();c.startMeasurePoint()&&this._hightlightBackground(e,c.measurePoints(),this.priceScale().mainSource(),t)}_drawBorder(e,t){e.save(),e.fillStyle=this.lineColor();const i=Math.max(1,Math.floor(this.rendererOptions().borderSize*t)),s=this._isLeft?Math.floor(this._size.width*t)-i:0;e.fillRect(s,0,i,Math.ceil(this._size.height*t)+1),e.restore()}_drawBackLabels(e,t){e.save();const i=this.backLabels(),s=this.rendererOptions(),r=this._isLeft?"right":"left";for(const n of i)n.isAxisLabelVisible()&&(e.save(),n.renderer().draw(e,s,this._widthCache,this._size.width,this._size.height,r,t),e.restore());e.restore()}_hightlightBackground(e,t,i,s){if(!i)return;const r=i.firstValue();if(null===r)return;let n=t[0].price,o=t[0].price;for(let e=1;ei.isOverlay(e)||this._isFromSameSide(e.priceScale())))),0!==e.length)if(1===e.length){const r=e[0].priceAxisViews(i,s);r&&r.length&&t.push(r)}else t.push(this._minMaxViews(e))}_minMaxViews(e){const t=this._pane.state(),i=this.priceScale(),s=[];let r=1/0,n=-1/0,o=null,a=null;for(const s of e){const e=s.priceAxisViews(t,i);if(e&&e.length)for(let t=0;t=n&&(n=s,a=i),s<=r&&(r=s,o=i)}}return a&&s.push(a),o&&s.push(o),s}_isFromSameSide(e){return null!==e&&(this._isLeft?this._pane.state().leftPriceScales():this._pane.state().rightPriceScales()).includes(e)}_sameSideSources(){const e=this._pane.state().sourcesByGroup() +;return this._isLeft?e.leftPriceScalesSources():e.rightPriceScalesSources()}_initActions(){if(!this._pane.hasState()||null!==this._actions)return;const e=this._undoModel,t=new Ne.Action({actionId:"Chart.PriceScale.Reset",label:Ge,icon:Fe,shortcutHint:(0,Ee.humanReadableHash)(Ee.Modifiers.Alt+82),statName:"ResetScale",onExecute:()=>this.reset()}),i=new Ne.Action({actionId:"Chart.PriceScale.ToggleAutoScale",label:qe,checkable:!0,checked:!0,statName:"ToggleAutoScale",onExecute:()=>{e.togglePriceScaleAutoScaleMode(this.priceScale()),this._updateScalesActions()}}),s=new Ne.Action({actionId:"Chart.PriceScale.TogglePercentage",label:$e,checkable:!0,checked:this.priceScale().isPercentage(),statName:"TogglePercantage",onExecute:()=>{e.togglePriceScalePercentageScaleMode(this.priceScale()),this._updateScalesActions()}}),r=new Ne.Action({actionId:"Chart.PriceScale.ToggleIndexedTo100",label:Ye,checkable:!0,checked:this.priceScale().isIndexedTo100(),statName:"ToggleIndexedTo100",onExecute:()=>{e.togglePriceScaleIndexedTo100ScaleMode(this.priceScale()),this._updateScalesActions()}}),n=new Ne.Action({actionId:"Chart.PriceScale.ToggleLogarithmic",label:Ke,checkable:!0,checked:this.priceScale().isLog(),statName:"ToggleLogScale",onExecute:()=>{e.togglePriceScaleLogScaleMode(this.priceScale()),this._updateScalesActions()}}),o=new Ne.Action({actionId:"Chart.PriceScale.ToggleRegular",label:Ze,checkable:!0,checked:this.priceScale().isRegular(),statName:"ToggleRegularScale",onExecute:()=>{e.setPriceScaleRegularScaleMode(this.priceScale()),this._updateScalesActions()}}),a=new Ne.Action({actionId:"Chart.PriceScale.Labels.ToggleNoOverlappingLabelsVisibility",label:Xe,checkable:!0,checked:this.priceScale().properties().childs().alignLabels.value(),statName:"TogglePreciseLabels"});a.setBinding(new De.ActionBinder(a,this.priceScale().properties().childs().alignLabels,e,We));const l=new Ne.Action({actionId:"Chart.PriceScale.ToggleInvertScale",label:Je,checkable:!0,checked:this.priceScale().isInverted(),statName:"Invert Scale",onExecute:()=>{e.invertPriceScale(this.priceScale()),this._updateScalesActions()}});this._actions={reset:t,setAutoScale:i,setPercentage:s,setIndexedTo100:r,setLog:n,setRegular:o,alignLabels:a,invertScale:l},this._updateScalesActions()}_logAction(){return this._isMainSeriesAxis()?this._chart.actions().logSeriesScale:(0,r.ensureNotNull)(this._actions).setLog}_percentageAction(){return this._isMainSeriesAxis()?this._chart.actions().percentSeriesScale:(0,r.ensureNotNull)(this._actions).setPercentage}_indexedTo100Action(){return this._isMainSeriesAxis()?this._chart.actions().indexedTo100SeriesScale:(0,r.ensureNotNull)(this._actions).setIndexedTo100}_autoScaleAction(){return this._isMainSeriesAxis()?this._chart.actions().autoSeriesScale:(0,r.ensureNotNull)(this._actions).setAutoScale}_regularScaleAction(){return this._isMainSeriesAxis()?this._chart.actions().regularSeriesScale:(0,r.ensureNotNull)(this._actions).setRegular}_lockScaleAction(){ const e=this._chart.actions().lockSeriesScale,t=Qe(this.priceScale(),this._undoModel.model().mainSeriesScaleRatio());return e.update({hint:t}),e}_invertAction(){return this._isMainSeriesAxis()?this._chart.actions().invertSeriesScale:(0,r.ensureNotNull)(this._actions).invertScale}_isMainSeriesAxis(){return this.priceScale().hasMainSeries()}_updateScalesActions(){const e=this.priceScale(),t=this._isMainSeriesAxis(),i=(0,r.ensureNotNull)(e.mainSource()).properties(),s=t&&e.isLockScale(),n=t&&6===i.style.value(),o=(0,r.ensureNotNull)(this._actions);o.setRegular.update({checked:e.isRegular(),disabled:s||n}),o.setPercentage.update({checked:e.isPercentage(),disabled:s||n}),o.setIndexedTo100.update({checked:e.isIndexedTo100(),disabled:s||n}),o.setLog.update({checked:e.isLog(),disabled:s||n}),o.setAutoScale.update({checked:e.isAutoScale(),disabled:e.properties().childs().autoScaleDisabled.value()})}_createMergeScalesAction(){const e=this._chart.actions(),t=this._undoModel.model().priceScaleSlotsCount();if(t.left+t.right===1)return 0===t.left?e.moveScaleToLeft:e.moveScaleToRight;const i=[];return i.push(e.mergeLeftScalesAction),i.push(e.mergeRightScalesAction),new Ne.Action({actionId:"Chart.PriceScale.MergeAllScales",label:He,subItems:i})}_setCursor(e){let t="";"grabbing"!==e&&"ns-resize"!==e||(t="price-axis--cursor-"+e),this._currentCursorClassName!==t&&(this._currentCursorClassName&&this._cell.classList.remove(this._currentCursorClassName),t&&this._cell.classList.add(t),this._currentCursorClassName=t,this._cell.style.cursor)}}function it(e,t){return e.position-t.position}function st(e,t,i){const s=(e.position-t.position)/(e.time-t.time);return Math.sign(s)*Math.min(Math.abs(s),i)}class rt{constructor(e,t,i,s){this._position1=null,this._position2=null,this._position3=null,this._position4=null,this._animationStartPosition=null,this._durationMsecs=0,this._speedPxPerMsec=0,this._terminated=!1,this._minSpeed=e,this._maxSpeed=t,this._dumpingCoeff=i,this._minMove=s}addPosition(e,t){if(null!==this._position1){if(this._position1.time===t)return void(this._position1.position=e);if(Math.abs(this._position1.position-e)50)return;let i=0;const s=st(this._position1,this._position2,this._maxSpeed),r=it(this._position1,this._position2),n=[s],o=[r];if(i+=r,null!==this._position3){const e=st(this._position2,this._position3,this._maxSpeed);if(Math.sign(e)===Math.sign(s)){const t=it(this._position2,this._position3);if(n.push(e),o.push(t),i+=t,null!==this._position4){const e=st(this._position3,this._position4,this._maxSpeed);if(Math.sign(e)===Math.sign(s)){const t=it(this._position3,this._position4);n.push(e),o.push(t),i+=t}}}}let a=0;for(let e=0;ea&&(e.result={hittest:t,source:i,renderer:s,isCustom:r})}const Rt={contextMenuEnabled:!0,contextMenu:Re.defaultContextMenuOptions,priceScaleContextMenuEnabled:!0,legendWidgetEnabled:!0,controlsEnabled:!0,propertyPagesEnabled:!0,sourceSelectionEnabled:!0,countdownEnabled:!0},Nt=new Map([[H.AreaName.Text,"Text"],[H.AreaName.Style,"Style"]]),Ot=!Ve.enabled("display_legend_on_all_charts");let Ft=null;function Wt(e,t){return!(0,H.shouldDefaultActionBeExecuted)(e,t,"pressedMouseMoveHandler","touchMoveHandler")}class Ht{constructor(e,t,i,r){this._legendWidget=null,this._paneControls=null,this._isDestroyed=!1,this._trackCrosshairOnlyAfterLongTap=(0,F.lastMouseOrTouchEventInfo)().isTouch,this._startTrackPoint=null,this._exitTrackingModeOnNextTry=!1,this._startMoveSourceParams=null,this._startChangeLineToolParams=null,this._preventSourceChange=!1,this._clonningAtMoveLineTools=null,this._startCloningPoint=null,this._size=(0,s.size)({width:0,height:0}),this._themedTopColor=null,this._initCrossHairPosition=null,this._firstZoomPoint=null,this._editDialog=null,this._processing=!1,this._pressedMoveStage=0,this._touchMove=!1,this._startTouchPoint=null,this._isSelecting=!1,this._prevHoveredHittest=null, this._contextMenuX=0,this._contextMenuY=0,this._startScrollingPos=null,this._isScrolling=!1,this._scrollPriceScale=null,this._scrollXAnimation=null,this._prevPinchScale=1,this._pinching=!1,this._wasPinched=!1,this._longTap=!1,this._contextMenuOpenedOnLastTap=!1,this._paneControlsResizeObserver=null,this._lastClickedSource=null,this._customLegendWidgetsFactoryMap=new Map,this._prevMoveEventPosition=null,this._onMagnetStateChangedListener=this._onMagnetStateChanged.bind(this),this._onShiftKeyStateChangedListener=this._onShiftKeyStateChanged.bind(this),this._currentCursorClassName="",this._lastFinishedToolId=null,this._needResetMeasureLater=!1,this._currentChangingLineToolHitTest=null,this._currentMovingHitTest=null,this._prevTooltipData=null,this._errorRenderer=null,this._highlightedPriceAxis=new(ot())({owner:"",axis:null}),this._visuallyCollapsed=new(ot())(!1),this._endOfSeriesDataBanner=null,this._canvasConfiguredHandler=()=>this._state&&this._chartModel().lightUpdate(),this._updateVisuallyCollapsed=()=>{this._visuallyCollapsed.setValue(!this.state().maximized().value()&&this.state().collapsed().value())},this._chart=e,this._state=t,this._options=(0,S.merge)((0,S.clone)(Rt),i),this._paneWidgetsSharedState=r,this._state&&this._subscribeToState();const n={contextMenuEnabled:this._options.priceScaleContextMenuEnabled,pressedMouseMoveScale:this._options.handleScale.axisPressedMouseMove.price,mouseWheelScale:this._options.handleScale.mouseWheel,currencyConversionEnabled:this._options.currencyConversionEnabled,unitConversionEnabled:this._options.unitConversionEnabled,countdownEnabled:this._options.countdownEnabled,croppedTickMarks:this._options.croppedTickMarks};void 0!==this._options.priceScaleContextMenu&&(n.contextMenu=this._options.priceScaleContextMenu);const o=(e,t,i,s,r)=>new tt(this._chart,this,this._chartUndoModel(),i,t,e,n,s,r),a=e.properties().childs().scalesProperties,l=this._chartModel().rendererOptionsProvider(),c={backgroundBasedTheme:e.backgroundBasedTheme(),rendererOptionsProvider:l,getBackgroundTopColor:()=>this._chartModel().backgroundTopColor().value(),getBackgroundBottomColor:()=>this._chartModel().backgroundColor().value()},h={showLabels:!1};this._lhsPriceAxisesContainer=new ue(a,"left",o,c,h),this._rhsPriceAxisesContainer=new ue(a,"right",o,c,h),this._paneCell=document.createElement("td"),this._paneCell.classList.add("chart-markup-table","pane"),this._div=document.createElement("div"),this._div.classList.add("chart-gui-wrapper"),this._div.setAttribute("data-name","pane-widget-chart-gui-wrapper"),this._paneCell.appendChild(this._div),this._canvasBinding=(0,Y.createBoundCanvas)(this._div,(0,s.size)({width:16,height:16})),this._canvasBinding.subscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler);const d=this._canvasBinding.canvasElement;d.style.position="absolute",d.style.left="0",d.style.top="0",this._topCanvasBinding=(0,Y.createBoundCanvas)(this._div,(0,s.size)({width:16,height:16})),this._topCanvasBinding.subscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler) @@ -274,16 +275,16 @@ return}if(null!==this._firstZoomPoint&&this._firstZoomPoint.draggingMode)return const e=i.lineBeingCreated(),t=null===e?null:i.model().paneForSource(e);if(null!==t&&t!==this._state)return void this._setCursorPositionOnExternalPane(t,s,r,n)}e.isTouch||this._setCursorPosition(s,r,n)}else this._processMouseMoveWhileZoom(e,n)}_pressedMouseOrTouchMoveEvent(e){var t;if(!this.hasState()||this._pinching||e.isTouch&&this._contextMenuOpenedOnLastTap)return;this._pressedMoveStage=2,this._resetMeasureIfRequired(),this._startChangeOrMoveLineToolIfNeeded(),e.isTouch&&(this._touchMove=!0,this._preventSourceChange=!1);const i=new U.EnvironmentState(e),s=this._chartUndoModel(),n=s.crossHairSource(),o=e.localX,a=e.localY;if(this._prevMoveEventPosition=new V.Point(o,a),null!==this._firstZoomPoint)return this._processMouseMoveWhileZoom(e),void(this._firstZoomPoint.draggingMode=!0);const l=G.tool.value();if(e.isTouch&&this._startTouchPoint&&(0,L.isLineToolName)(l)&&!(0,dt.isLineDrawnWithPressedButton)(l)&&!s.lineBeingCreated()&&!this._isSelectPointModeEnabled())return void this._updateCrosshairPositionInToolCreationMode(e,this.state());const c=n.measurePane().value();if(e.isTouch&&(this._startTouchPoint||e.stylus)&&((0,G.toolIsMeasure)(l)||null!==c))return void(e.stylus?this._setCursorPosition(e.localX,e.localY,new U.EnvironmentState(e)):this._updateCrosshairPositionInToolCreationMode(e,c||this.state()));const h=s.lineBeingCreated();if(e.isTouch&&!e.stylus&&h&&!(0,dt.isLineDrawnWithPressedButton)(h.toolname)){if(this._startTouchPoint){const t=(0,r.ensureNotNull)(s.lineBeingCreated()),i=(0,r.ensureNotNull)(s.model().paneForSource(t));this._updateCrosshairPositionInToolCreationMode(e,i)}return}if(e.isTouch&&null!==this._startTrackPoint){this._exitTrackingModeOnNextTry=!1;const e=(0,r.ensureNotNull)(this._initCrossHairPosition),t=new V.Point(o,a).subtract(this._startTrackPoint),s=e.add(t);this._setCursorPosition(s.x,s.y,i)}else e.isTouch&&this._preventCrossHairMove()||this._setCursorPosition(o,a,i);const d=this._isSelectPointModeEnabled();if((0,L.isLineToolName)(l)&&!(0,dt.isLineDrawnWithPressedButton)(l)&&!d&&!i.mod())return;if((0,dt.isLineDrawnWithPressedButton)(l)&&!d){const i=this.state().defaultPriceScale();if(i.isEmpty())return;const n=s.lineBeingCreated();if(!n)return;const o=new V.Point(e.localX,e.localY),a=(0,r.ensure)(null===(t=n.ownerSource())||void 0===t?void 0:t.firstValue());return o.price=i.coordinateToPrice(e.localY,a),o.index=Math.round(s.timeScale().coordinateToIndex(e.localX)),void s.continueCreatingLine(o)}if(null!==this._paneWidgetsSharedState.draggingSource()){const t=e.target,i=this._chart.paneByCanvas(t);i&&(i!==this?i.setDragToAnotherPaneCursor():i.setCursorForTool());const s=this._chart.timeAxisByCanvas(t);s&&s.setCursor("grabbing")}if(s.timeScale().isEmpty())return;const u=this._options.handleScroll;if((!u.pressedMouseMove||e.isTouch)&&(!u.horzTouchDrag&&!u.vertTouchDrag||!e.isTouch))return;if(s.customMoveBeingProcessed())return void s.processCustomMove(e);const p=s.model().customSourceMovingHitTestData();if(null!==p&&(this._updateCommonTooltip(null,!0),s.model().processingCustomSourceMove(), (0,H.tryCallHandler)(e,p.pressedMouseMoveHandler,p.touchMoveHandler),Wt(e,p)))return;if(s.model().lineBeingEdited())return void this._setCursorPosition(o,a,i);if(s.model().sourcesBeingMoved().length)return void this._alignSourcesThatBeingMoved(s.model().sourcesBeingMoved(),e.localX,e.localY,i);const _=this._dataSourceAtPoint(e.localX,e.localY);if(this._tryFinishClonning(e,new U.EnvironmentState(e),_))return;const m=(0,G.toolIsMeasure)(l)||n.startMeasurePoint()&&n.endMeasurePoint();this._chart.readOnly()||!i.mod()||(0,L.isLineToolName)(l)||m||d?(this._processScroll(e),this._preventScroll()&&!this._preventCrossHairMove()&&null===this._startTrackPoint&&this._setCursorPosition(e.localX,e.localY,new U.EnvironmentState(e))):this._isSelecting||(n.startSelection(this.state()),this._isSelecting=!0)}_mouseOrTouchLeaveEvent(e){var t;if(!this.hasState())return;const i=this._chartUndoModel();if(!i)return;const s=i.crossHairSource();e.isTouch||null!==s.measurePane().value()&&null===s.endMeasurePoint()||this._clearCursorPosition(),i.model().setHoveredSource(null,null),null!==this._prevHoveredHittest&&((0,H.tryCallHandler)(e,null===(t=this._prevHoveredHittest.hittest.data())||void 0===t?void 0:t.mouseLeaveHandler),this._prevHoveredHittest=null),this._updateCommonTooltip(null),this._chart.unsetActivePaneWidget()}_mouseDoubleClickOrDoubleTapEvent(e){if(!this.hasState())return;const t=!this._chart.readOnly()&&!(0,L.isLineToolName)(G.tool.value())&&this._dataSourceAtPoint(e.localX,e.localY)||null;if(null!==t&&t.isCustom)t.hittest.tryCallDblClickOrDblTapHandler(e);else if(null!==t&&(e.isTouch||t.hittest.result()>H.HitTestResult.MOVEPOINT_BACKGROUND))this.processDoubleClickOnSource(t.source,t.hittest?t.hittest:void 0);else if(!this._chart.readOnly()&&!(0,L.isLineToolName)(G.tool.value())&&!this._chartUndoModel().lineBeingCreated()&&this._chartUndoModel().selection().isEmpty()){const t=this.state();new U.EnvironmentState(e).mod()&&!t.maximized().value()?(t.collapsed().value()||this._chartModel().paneCollapsingAvailable().value())&&this._chart.toggleCollapsedPane(this):this._chart.toggleMaximizePane(this)}}_contextMenuEvent(e){const t=this._chartUndoModel();if(t.crossHairSource().startMeasurePoint()&&!this._trackCrosshairOnlyAfterLongTap)return t.crossHairSource().clearMeasure(),void(0,G.resetToCursor)(!0);if(this._pinching)return;if(null===this._firstZoomPoint||this._trackCrosshairOnlyAfterLongTap||this.cancelZoom(),!(0,G.toolIsCursor)(G.tool.value())||this._isSelectPointModeEnabled()){if(e.isTouch)return;return(0,G.resetToCursor)(!0),this.setCursorForTool(),void(t.lineBeingCreated()&&t.cancelCreatingLine())}if(!this._options.contextMenuEnabled)return;const i=this._dataSourceAtPoint(e.localX,e.localY),s=i?i.source:null;if(e.isTouch&&null!==this._startTrackPoint){if(this._preventSourceChange)return;this._clearCursorPosition()}e.isTouch&&(this._contextMenuOpenedOnLastTap=!0,this._startTrackPoint=null),this._contextMenuX=e.localX,this._contextMenuY=e.localY ;const r=i&&i.hittest?i.hittest.result():0,n=r>=H.HitTestResult.REGULAR||r>=H.HitTestResult.MOVEPOINT_BACKGROUND&&e.isTouch;this._chart.updateActions(),t.selectionMacro((t=>{null!==s&&n?t.selection().isSelected(s)||(t.clearSelection(),t.addSourceToSelection(s,Bt(i,s))):(this._options.contextMenu.general&&this._showContextMenu(e),t.clearSelection())})),null!==i&&n&&null!==s&&((0,j.isDataSource)(s)&&s.hasContextMenu()?s.isSelectionEnabled()?this.showContextMenuForSelection(e):this.showContextMenuForSources([s],e):i.hittest.tryCallContextMenuHandler(e))}_onMouseEvent(){this._preventSourceChange=!1,this._startTrackPoint=null,this._trackCrosshairOnlyAfterLongTap=!1}_onTouchEvent(){this._trackCrosshairOnlyAfterLongTap=!0}_switchTrackingModeFromAnotherPaneIfNeeded(e){const t=this._chart.trackingModePaneWidget();if(null!==t&&t!==this){const i=this._chartModel().crossHairSource().currentPoint();t._exitTrackingModeOnNextTry=!0,t._tryExitTrackingMode(!0),this.startTrackingMode(new V.Point(e.localX,e.localY),new V.Point(i.x,e.localY),new U.EnvironmentState(e))}}_showContextMenu(e){const t=e=>e instanceof Ne.Separator,i=this._customActions(),s=this._initActions(e).filter((e=>null!==e));i.remove.forEach((e=>{for(let t=0;t0;e--)t(r[e])&&t(r[e-1])&&r.splice(e,1);r.length&&t(r[0])&&r.splice(0,1),r.length&&t(r[r.length-1])&&r.splice(r.length-1,1),ae.ContextMenuManager.showMenu(r,e,{statName:"ChartContextMenu"},{menuName:"ChartContextMenu"})}_initActions(e){var t,i;const s=this._chart.actions(),r=[];if(r.push(s.chartReset),r.push(new Ne.Separator),!this.state().isEmpty()&&Ve.enabled("datasource_copypaste")){const t=(0,Re.createActionCopyPrice)(this.state(),e.localY),i=(0,Re.createPasteAction)(this._chart,this.state());(t||i)&&(t&&r.push(t),i&&r.push(i),r.push(new Ne.Separator))}r[r.length-1]instanceof Ne.Separator||r.push(new Ne.Separator);return Boolean(null===(t=window.widgetbar)||void 0===t?void 0:t.widget("watchlist"))&&s.addToWatchlist&&r.push(s.addToWatchlist),Ve.enabled("text_notes")&&r.push(s.addToTextNotes),r[r.length-1]instanceof Ne.Separator||r.push(new Ne.Separator),r.push(this._createLockTimeAxisAction(e)),r.push(new Ne.Separator),r.push((0,Re.createLinesAction)(this._chart)),!Ve.enabled("charting_library_base")&&s.applyColorTheme&&r.push(s.applyColorTheme),r[r.length-1]instanceof Ne.Separator||r.push(new Ne.Separator),this._chart.applyIndicatorsToAllChartsAvailable()&&(r.push(s.applyStudiesToAllCharts),r.push(new Ne.Separator)),r.push(s.paneRemoveAllDrawingTools),r.push(s.paneRemoveAllStudies),r.push(new Ne.Separator),(null===(i=window.pro)||void 0===i?void 0:i.hasPackage("mtp-mtpredictor"))&&this.state().containsMainSeries()&&r.push((0,Re.createMTPredictorActions)(this._chart,this.state(),this._contextMenuX,this._contextMenuY),new Ne.Separator),r.push(s.hideAllMarks),r.push(new Ne.Separator),Ve.enabled("show_chart_property_page")&&r.push(s.chartProperties), -r[r.length-1]instanceof Ne.Separator&&r.pop(),r}_loadAndCreateLegendWidget(){Promise.all([i.e(7257),i.e(5916),i.e(2215),i.e(5093)]).then(i.bind(i,19401)).then((e=>{if(this._isDestroyed)return;const t=e.LegendWidget,i=(0,W.deepExtend)({},this._options.legendWidget);i.canShowSourceCode=!this._chart.onWidget()&&!c.CheckMobile.any(),i.readOnlyMode=i.readOnlyMode||this._chart.readOnly(),i.statusesWidgets={sourceStatusesEnabled:this._options.sourceStatusesWidgetEnabled,sourceStatuses:this._options.sourceStatusesWidget||{},marketStatusEnabled:this._options.marketStatusWidgetEnabled,dataUpdateModeEnabled:this._options.chartWarningWidgetEnabled,dataUpdateMode:this._options.chartWarningWidget||{},dataProblemEnabled:this._options.dataProblemWidgetEnabled};const s=(0,y.combine)(((e,t)=>Ot&&this._chart!==e&&!t),this._chart.chartWidgetCollection().activeChartWidget,this._chart.chartWidgetCollection().lock.crosshair),n=(0,y.combine)(((e,t)=>null!==e?e===this._state:(0,G.toolIsMeasure)(t)),this._chartModel().crossHairSource().measurePane(),G.tool);this._legendWidget=new t(this._chartUndoModel(),this,this._chart.backgroundTopTheme().spawn(),s,this._visuallyCollapsed.spawn(),n,i,{showContextMenuForSelection:this.showContextMenuForSelection.bind(this),showContextMenuForSources:this.showContextMenuForSources.bind(this),updateActions:this._chart.updateActions.bind(this._chart),showChartPropertiesForSource:this._chart.showChartPropertiesForSource.bind(this._chart),showGeneralChartProperties:this._chart.showGeneralChartProperties.bind(this._chart),showObjectsTreeDialog:this._chart.showObjectsTreeDialog.bind(this._chart)}),this._div.appendChild(this._legendWidget.getElement()),this._legendWidget.updateLayout(),this._legendWidget.updateWidgetModeBySize(this._size),this._legendWidget.updateThemedColors(this._themedTopColor);for(const e of Array.from(this._customLegendWidgetsFactoryMap.keys()))this._legendWidget.addCustomWidgetToLegend(e,(0,r.ensureDefined)(this._customLegendWidgetsFactoryMap.get(e)))}))}_loadAndCreatePaneControlsWidget(){Promise.all([Promise.all([i.e(7257),i.e(5916),i.e(2215),i.e(5093)]).then(i.bind(i,28756)),Promise.all([i.e(7257),i.e(5916),i.e(2215),i.e(5093)]).then(i.bind(i,59255))]).then((([e,t])=>{var i;if(this._isDestroyed)return;const s=e.PaneControlsWidget;this._paneControls=new s(this._chartUndoModel(),this,{backgroundThemeName:this._chart.backgroundTopTheme()},{toggleMaximizePane:this._chart.toggleMaximizePane.bind(this._chart),toggleCollapsedPane:this._chart.toggleCollapsedPane.bind(this._chart)},this._div),this._paneControls.updateWidgetModeByWidth(this._size.width),this._paneControls.updateThemedColors(this._themedTopColor),this._paneControlsResizeObserver=new t.default(this._handleRestrictLegendWidth.bind(this)),this._paneControlsResizeObserver.observe(this._paneControls.getElement()),(null===(i=this._state)||void 0===i?void 0:i.collapsed().value())&&this._chartModel().fullUpdate()}))}_handleRestrictLegendWidth(e){if(null===this._legendWidget||null===this._paneControls)return +r[r.length-1]instanceof Ne.Separator&&r.pop(),r}_loadAndCreateLegendWidget(){Promise.all([i.e(7257),i.e(5916),i.e(8180),i.e(5093)]).then(i.bind(i,19401)).then((e=>{if(this._isDestroyed)return;const t=e.LegendWidget,i=(0,W.deepExtend)({},this._options.legendWidget);i.canShowSourceCode=!this._chart.onWidget()&&!c.CheckMobile.any(),i.readOnlyMode=i.readOnlyMode||this._chart.readOnly(),i.statusesWidgets={sourceStatusesEnabled:this._options.sourceStatusesWidgetEnabled,sourceStatuses:this._options.sourceStatusesWidget||{},marketStatusEnabled:this._options.marketStatusWidgetEnabled,dataUpdateModeEnabled:this._options.chartWarningWidgetEnabled,dataUpdateMode:this._options.chartWarningWidget||{},dataProblemEnabled:this._options.dataProblemWidgetEnabled};const s=(0,y.combine)(((e,t)=>Ot&&this._chart!==e&&!t),this._chart.chartWidgetCollection().activeChartWidget,this._chart.chartWidgetCollection().lock.crosshair),n=(0,y.combine)(((e,t)=>null!==e?e===this._state:(0,G.toolIsMeasure)(t)),this._chartModel().crossHairSource().measurePane(),G.tool);this._legendWidget=new t(this._chartUndoModel(),this,this._chart.backgroundTopTheme().spawn(),s,this._visuallyCollapsed.spawn(),n,i,{showContextMenuForSelection:this.showContextMenuForSelection.bind(this),showContextMenuForSources:this.showContextMenuForSources.bind(this),updateActions:this._chart.updateActions.bind(this._chart),showChartPropertiesForSource:this._chart.showChartPropertiesForSource.bind(this._chart),showGeneralChartProperties:this._chart.showGeneralChartProperties.bind(this._chart),showObjectsTreeDialog:this._chart.showObjectsTreeDialog.bind(this._chart)}),this._div.appendChild(this._legendWidget.getElement()),this._legendWidget.updateLayout(),this._legendWidget.updateWidgetModeBySize(this._size),this._legendWidget.updateThemedColors(this._themedTopColor);for(const e of Array.from(this._customLegendWidgetsFactoryMap.keys()))this._legendWidget.addCustomWidgetToLegend(e,(0,r.ensureDefined)(this._customLegendWidgetsFactoryMap.get(e)))}))}_loadAndCreatePaneControlsWidget(){Promise.all([Promise.all([i.e(7257),i.e(5916),i.e(8180),i.e(5093)]).then(i.bind(i,28756)),Promise.all([i.e(7257),i.e(5916),i.e(8180),i.e(5093)]).then(i.bind(i,59255))]).then((([e,t])=>{var i;if(this._isDestroyed)return;const s=e.PaneControlsWidget;this._paneControls=new s(this._chartUndoModel(),this,{backgroundThemeName:this._chart.backgroundTopTheme()},{toggleMaximizePane:this._chart.toggleMaximizePane.bind(this._chart),toggleCollapsedPane:this._chart.toggleCollapsedPane.bind(this._chart)},this._div),this._paneControls.updateWidgetModeByWidth(this._size.width),this._paneControls.updateThemedColors(this._themedTopColor),this._paneControlsResizeObserver=new t.default(this._handleRestrictLegendWidth.bind(this)),this._paneControlsResizeObserver.observe(this._paneControls.getElement()),(null===(i=this._state)||void 0===i?void 0:i.collapsed().value())&&this._chartModel().fullUpdate()}))}_handleRestrictLegendWidth(e){if(null===this._legendWidget||null===this._paneControls)return ;const t=e[e.length-1].contentRect.width,i=0===t?0:t+wt+Pt;this._legendWidget.addMargin(i)}_onMagnetStateChanged(){this._chart.isActive()&&(this._isSelectPointModeEnabled()||this._isToolActionActiveOnPane(!0))&&this._chartModel().crossHairSource().visible&&this._updateLineToolUsingMagnetOrShift()}_onShiftKeyStateChanged(){this._chart.isActive()&&this._isToolActionActiveOnPane(!1)&&this._chartModel().crossHairSource().visible&&this._updateLineToolUsingMagnetOrShift(U.EnvironmentState.create((0,ft.shiftPressed)().value()))}_isToolActionActiveOnPane(e){const t=this._chartModel(),i=t.lineBeingCreated()||t.lineBeingEdited()||t.sourcesBeingMoved().length>0&&t.sourcesBeingMoved()[0];return i?t.paneForSource(i)===this._state:e&&(0,L.isLineToolName)(G.tool.value())&&t.crossHairSource().pane===this._state}_updateLineToolUsingMagnetOrShift(e){if(null===this._prevMoveEventPosition)return;const{x:t,y:i}=this._prevMoveEventPosition,s=this._chartModel().sourcesBeingMoved();s.length>0?(G.isStudyEditingNow.value()&&this._setCursorPosition(t,i,e),this._alignSourcesThatBeingMoved(s,t,i,e)):this._setCursorPosition(t,i,e)}_showEditDialogForSource(e,t){if(this._options.propertyPagesEnabled&&e.userEditEnabled())if(e===this._chartUndoModel().mainSeries())this._chart.showGeneralChartProperties(ut.TabNames.symbol);else if((0,L.isLineTool)(e)||(0,k.isStudy)(e)){let i;const s=null==t?void 0:t.data();if(null!=s){const e=s.areaName;void 0!==e&&(i=Nt.get(e))}this._chart.showChartPropertiesForSource(e,i).then((e=>{this._editDialog=e}))}}_initToolCreationModeParams(e){this._startTouchPoint=new V.Point(e.pageX,e.pageY),this._initCrossHairPosition=this._chartModel().crossHairSource().currentPoint()}_updateCrosshairPositionInToolCreationMode(e,t){if(t!==this._state){const i=this._chart.paneByState(t);return i._startTouchPoint=this._startTouchPoint,i._initCrossHairPosition=this._initCrossHairPosition,void i._updateCrosshairPositionInToolCreationMode(e,t)}const i=this._chartModel().crossHairSource();this._chart.justActivated()&&(this._initCrossHairPosition=i.currentPoint());const s=e.pageX,n=e.pageY,o=(0,r.ensureNotNull)(this._initCrossHairPosition),a=new V.Point(s,n).subtract((0,r.ensureNotNull)(this._startTouchPoint)),l=o.add(a);this._setCursorPosition(l.x,l.y,new U.EnvironmentState(e))}_priceAxisesContainer(e){return"left"===e?this._lhsPriceAxisesContainer:this._rhsPriceAxisesContainer}_recalculatePriceScales(e){const t=this.state();for(const i of t.leftPriceScales())t.recalculatePriceScale(i,e);for(const i of t.rightPriceScales())t.recalculatePriceScale(i,e);for(const i of t.sourcesByGroup().overlayPriceScaleSources())(0,L.isLineTool)(i)||t.recalculatePriceScale(i.priceScale(),e)}_createLockTimeAxisAction(e){const t=(0,G.lockTimeAxis)().value();return new Ne.Action({actionId:"Chart.Crosshair.LockVerticalCursor",label:It,statName:"LockCursorInTime",checkable:!0,checked:t,onExecute:()=>this._toggleLockTimeAxis(e.localX,!t)})}_toggleLockTimeAxis(e,t){if(t){const t=this._chartUndoModel().timeScale(),i=t.coordinateToIndex(e),s=t.points().roughTime(i) ;null!==s&&G.lockTimeAxisTime.setValue(s)}(0,G.lockTimeAxis)().setValue(t)}_preventTouchEventsExceptPinch(){return this._paneWidgetsSharedState.hasTouchesOnOtherPanes(this)||null!==this._paneWidgetsSharedState.pinchingPane()}_updateHoveredSource(e,t,i){var s,r;const n=this._chartUndoModel(),o=n.model();let a=!1;const l=e&&e.source,c=this._chart.readOnly();if(o.crossHairSource().isReplaySelection())this._setCursorClassName("none");else if(!(!c||e&&(0,L.isLineTool)(e.source))||this._editDialog&&this._editDialog.visible().value())c&&(o.setHoveredSource(null,null),this.setCursorForTool());else{const h=G.tool.value();let d=null;if(!this._processing&&((0,G.toolIsCursor)(h)||"eraser"===h&&!c||t.mod()||!n.lineBeingCreated())){const t=null==e?void 0:e.hittest;a=Boolean(null===(s=null==t?void 0:t.data())||void 0===s?void 0:s.hideCrosshairLinesOnHover),t&&t.result()>H.HitTestResult.MOVEPOINT_BACKGROUND?(d=l,!(null==l?void 0:l.isHoveredEnabled())||"eraser"===h&&l===n.mainSeries()?o.setHoveredSource(null,null):o.setHoveredSource(l,t.data())):o.setHoveredSource(null,null)}c?this.setCursorForTool(d,t,pt.PaneCursorType.Default):this._options.sourceSelectionEnabled&&(this._isSelectPointModeEnabled()?this._setCursorClassName("pointer"):this.setCursorForTool(d,t,null===(r=null==e?void 0:e.hittest.data())||void 0===r?void 0:r.cursorType));const u=o.customSourceBeingMoved(),p=null!==u?[u]:o.sourcesBeingMoved();if((!p.length||null!==e&&-1===p.indexOf(e.source))&&this._updateCommonTooltip(e),!c&&null!==e&&i&&e.hittest.hasPressedMoveHandler(i)){switch((e.hittest.data()||{}).cursorType){case pt.PaneCursorType.VerticalResize:this._setCursorClassName("ns-resize");break;case pt.PaneCursorType.HorizontalResize:this._setCursorClassName("we-resize");break;case pt.PaneCursorType.DiagonalNeSwResize:this._setCursorClassName("nesw-resize");break;case pt.PaneCursorType.DiagonalNwSeResize:this._setCursorClassName("nwse-resize")}}}this._preventCrossHairMove()&&this._clearCursorPosition(),1!==this._pressedMoveStage&&o.crossHairSource().setLinesShouldBeHidden(a)}async _createErrorBlock(){const e=new(await mt());return this._div.insertBefore(e.container,this._topCanvasBinding.canvasElement.nextSibling),e}_customActions(){const e={top:[],bottom:[],remove:[]},t=this._chartUndoModel().timeScale(),i=this._state&&this._state.defaultPriceScale();if(!Ve.enabled("custom_items_in_context_menu"))return e;const s=t.isEmpty()?void 0:t.indexToUserTime(t.coordinateToIndex(this._contextMenuX));let n;if(i&&!i.isEmpty()){const e=(0,r.ensureNotNull)(this.state().mainDataSource()).firstValue();n=i.coordinateToPrice(this._contextMenuY,(0,r.ensureNotNull)(e))}return(0,d.emit)("onContextMenu",{unixtime:null!=s?s.getTime()/1e3:void 0,price:n,callback:t=>{[...t].forEach((t=>{if(t.text)if(t.text.length>1&&"-"===t.text[0])e.remove.push(t.text.slice(1));else{let i;i="-"===t.text?new Ne.Separator:new Ne.Action({actionId:"Chart.ExternalActionId",label:t.text,onExecute:t.click}),t.position&&"top"===t.position?e.top.push(i):e.bottom.push(i)}}))}}),e}_highlightPriceAxisByLabel(e){ this._lhsPriceAxisesContainer.highlightPriceAxisByLabel(e),this._rhsPriceAxisesContainer.highlightPriceAxisByLabel(e)}_subscribeToState(){const e=this.state();e.onDestroyed().subscribe(this,this._onStateDestroyed,!0),e.dataSourcesCollectionChanged().subscribe(this,this._onDataSourcesCollectionChanged),e.maximized().subscribe(this._updateVisuallyCollapsed),e.collapsed().subscribe(this._updateVisuallyCollapsed)}_unsubscribeFromState(){const e=this.state();e.onDestroyed().unsubscribeAll(this),e.dataSourcesCollectionChanged().unsubscribeAll(this),e.maximized().unsubscribe(this._updateVisuallyCollapsed),e.collapsed().unsubscribe(this._updateVisuallyCollapsed)}async _updateEndOfSeriesBanner(){}}var zt=i(51782);class Ut{constructor(e,t,i){this._handleEl=null,this._resizeInfo=null,this._colorCache={lineColor:"",backgroundColor:"",color:""},this._chart=e,this._topPaneIndex=t,this._bottomPaneIndex=i,this._row=document.createElement("tr"),this._cell=document.createElement("td"),this._row.appendChild(this._cell),this._cell.classList.add(zt.paneSeparator),this._cell.setAttribute("colspan","3"),this._cell.style.background=this._color(),this.adjustSize(),this._cell.addEventListener("click",(()=>{}));const s=document.createElement("div");s.classList.add(zt.handle),this._cell.appendChild(s),this._mouseEventHandler=new $.MouseEventHandler(s,this,{treatVertTouchDragAsPageScroll:!1,treatHorzTouchDragAsPageScroll:!0}),this._handleEl=s}destroy(){this._mouseEventHandler.destroy(),this._row.parentElement&&this._row.parentElement.removeChild(this._row)}getElement(){return this._row}hide(){this._row.classList.add("js-hidden")}show(){this._row.classList.remove("js-hidden")}adjustSize(){this._row.style.height=Ut.height()+"px"}mouseEnterEvent(e){const{topPane:t,bottomPane:i}=this._topBottomPane(!0);null!==t&&null!==i&&(0,r.ensureNotNull)(this._handleEl).classList.add(zt.hovered)}mouseLeaveEvent(e){(0,r.ensureNotNull)(this._handleEl).classList.remove(zt.hovered)}mouseDownEvent(e){this._mouseDownOrTouchStartEvent(e)}touchStartEvent(e){this._mouseDownOrTouchStartEvent(e)}pressedMouseMoveEvent(e){this._pressedMouseOrTouchMoveEvent(e)}touchMoveEvent(e){this._pressedMouseOrTouchMoveEvent(e)}mouseUpEvent(e){this._mouseUpOrTouchEndEvent(e)}touchEndEvent(e){this._mouseUpOrTouchEndEvent(e)}update(){this._cell.style.background=this._color().toString()}paint(){}image(){const{topPane:e}=this._topBottomPane(!1),t=e.leftPriceAxisesContainer().getWidth(),i=e.width(),r=e.rightPriceAxisesContainer().getWidth(),n=this._color(),o=(0,Y.createDisconnectedCanvas)(document,(0,s.size)({width:t,height:1})),a=(0,Y.getPrescaledContext2D)(o);a.fillStyle=n,a.fillRect(0,0,t,1);const l=(0,Y.createDisconnectedCanvas)(document,(0,s.size)({width:i,height:1})),c=(0,Y.getPrescaledContext2D)(l);c.fillStyle=n,c.fillRect(0,0,i,1);const h=(0,Y.createDisconnectedCanvas)(document,(0,s.size)({width:r,height:1})),d=(0,Y.getPrescaledContext2D)(h);return d.fillStyle=n,d.fillRect(0,0,r,1),{type:"separator",leftAxis:{content:o.toDataURL(),canvas:o,contentWidth:t,contentHeight:1},rightAxis:{ content:h.toDataURL(),canvas:h,contentWidth:r,contentHeight:1},content:l.toDataURL(),canvas:l,contentWidth:i,contentHeight:1}}static height(){const e=window.devicePixelRatio||1;return e>=1?1:1/e}_mouseDownOrTouchStartEvent(e){const{topPane:t,bottomPane:i}=this._topBottomPane(!0);if(null===t||null===i)return;const s=t.state().stretchFactor()+i.state().stretchFactor(),n=s/(t.height()+i.height()),o=30*n;s<=2*o||(this._resizeInfo={startY:e.pageY,prevStretchTopPane:t.state().stretchFactor(),maxPaneStretch:s-o,totalStretch:s,pixelStretchFactor:n,minPaneStretch:o},(0,r.ensureNotNull)(this._handleEl).classList.add(zt.active))}_pressedMouseOrTouchMoveEvent(e){const{topPane:t,bottomPane:i}=this._topBottomPane(!0),s=this._resizeInfo;if(null===s||null===t||null===i)return;const r=(e.pageY-s.startY)*s.pixelStretchFactor,n=(0,Se.clamp)(s.prevStretchTopPane+r,s.minPaneStretch,s.maxPaneStretch);t.state().setStretchFactor(n),i.state().setStretchFactor(s.totalStretch-n),this._chart.model().model().fullUpdate()}_mouseUpOrTouchEndEvent(e){const{topPane:t,bottomPane:i}=this._topBottomPane(!0),s=this._resizeInfo;null!==s&&null!==t&&null!==i&&(this._chart.model().addPaneStretchFactorUndoCommand(t.state(),i.state(),s.prevStretchTopPane,t.state().stretchFactor()),this._resizeInfo=null,(0,r.ensureNotNull)(this._handleEl).classList.remove(zt.active))}_color(){const e=this._chart.properties().childs().paneProperties.childs().separatorColor.value(),t=this._chart.model().model().backgroundColor().value();if(this._colorCache.lineColor!==e||this._colorCache.backgroundColor!==t){const i=(0,me.parseRgba)(t),s=(0,me.parseRgba)(e),r=0===i[3]&&0===s[3]?"rgba(0,0,0,0)":(0,me.rgbaToString)((0,me.blendRgba)(i,s));this._colorCache={lineColor:e,backgroundColor:t,color:r}}return this._colorCache.color}_topBottomPane(e){const t=this._chart.paneWidgets();let i=null,s=null;for(let s=this._topPaneIndex;s>=0;--s){const r=t[s];if(!e||!r.state().collapsed().value()){i=r;break}}for(let i=this._bottomPaneIndex;ithis.backgroundColor(),a=()=>{throw new Error("Time axis does not support real price scales")},l={titlesProvider:i,stubContextMenuProvider:(e,t)=>{const i=this.getContextMenuActions(!0);let s=r(e,t);if(s[s.length-1]===this.chart.actions().scalesProperties){const e=[new Ne.Separator].concat(i);Array.prototype.splice.apply(s,[s.length-2,0,...e])}else s.push(new Ne.Separator),s=s.concat(i);return s },backgroundBasedTheme:n,rendererOptionsProvider:e.model().model().rendererOptionsProvider(),getBackgroundTopColor:o,getBackgroundBottomColor:o,showHorizontalBorder:!0};this._lhsStubContainer=new ue(this._properties,"left",a,l,this._options.priceAxisLabelsOptions,this),this._lhsStubContainer.onLabelHovered().subscribe(this,((e,t)=>{this._onLabelHovered.fire(e,t)})),this._rhsStubContainer=new ue(this._properties,"right",a,l,this._options.priceAxisLabelsOptions,this),this._rhsStubContainer.onLabelHovered().subscribe(this,((e,t)=>{this._onLabelHovered.fire(e,t)})),this._element.appendChild(this._lhsStubContainer.getElement()),this._cell=document.createElement("td"),this._element.appendChild(this._cell),this._cell.classList.add("chart-markup-table","time-axis"),this._cell.style.height="25px",this._dv=document.createElement("div"),this._dv.style.width="100%",this._dv.style.height="100%",this._dv.style.position="relative",this._dv.style.overflow="hidden",this._cell.appendChild(this._dv),this._canvasConfiguredHandler=()=>this.chart.model().model().lightUpdate(),this._canvasBinding=(0,Y.createBoundCanvas)(this._dv,(0,s.size)({width:16,height:16})),this._canvasBinding.subscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler);const c=this._canvasBinding.canvasElement;c.style.position="absolute",c.style.zIndex="1",c.style.left="0",c.style.top="0",this._topCanvasBinding=(0,Y.createBoundCanvas)(this._dv,(0,s.size)({width:16,height:16})),this._topCanvasBinding.subscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler);const h=this._topCanvasBinding.canvasElement;h.style.position="absolute",h.style.zIndex="2",h.style.left="0",h.style.top="0",this._element.appendChild(this._rhsStubContainer.getElement()),this.restoreDefaultCursor(),this.update(),this._minVisibleSpan=jt.MINUTE_SPAN,this._mouseEventHandler=new $.MouseEventHandler(this._topCanvasBinding.canvasElement,this,{treatVertTouchDragAsPageScroll:!0,treatHorzTouchDragAsPageScroll:!1}),this.size=(0,s.size)({width:0,height:0}),(0,G.hideMarksOnBars)().subscribe(this,(()=>this.chart.model().model().lightUpdate()))}destroy(){this._mouseEventHandler.destroy(),this._topCanvasBinding.unsubscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler),this._topCanvasBinding.dispose(),this._canvasBinding.unsubscribeSuggestedBitmapSizeChanged(this._canvasConfiguredHandler),this._canvasBinding.dispose(),this._rhsStubContainer.onLabelHovered().unsubscribeAll(this),this._lhsStubContainer.onLabelHovered().unsubscribeAll(this),this._lhsStubContainer.destroy(),this._rhsStubContainer.destroy(),this.chart.properties().childs().paneProperties.childs().background.unsubscribeAll(this),(0,G.hideMarksOnBars)().unsubscribeAll(this)}setCursor(e){let t="";"grabbing"!==e&&"ew-resize"!==e||(t="time-axis--cursor-"+e),this._currentCursorClassName!==t&&(this._currentCursorClassName&&this._cell.classList.remove(this._currentCursorClassName),t&&this._cell.classList.add(t),this._currentCursorClassName=t,this._cell.style.cursor)}restoreDefaultCursor(){this.setCursor("")}getElement(){ -return this._element}optimalHeight(){const e=this.rendererOptions();return Math.ceil(e.borderSize+e.offsetSize+e.fontSize+e.paddingTop+e.paddingBottom+e.labelBottomOffset)}setSizes(e,t,i){this.size&&(0,s.equalSizes)(this.size,e)||(this.size=e,this._canvasBinding.resizeCanvasElement(e),this._topCanvasBinding.resizeCanvasElement(e),this._cell.style.width=e.width+"px",this._cell.style.height=e.height+"px"),this._lhsStubContainer.setSizes(e.height,t),this._rhsStubContainer.setSizes(e.height,i)}rendererOptions(){if(!this._rendererOptions||this._rendererOptions.fontSize!==this.fontSize()){const e=this.fontSize();this._rendererOptions={borderSize:1,offsetSize:5,fontSize:e,font:(0,X.makeFont)(e,ee.CHART_FONT_FAMILY,""),widthCache:new pe.TextWidthCache,paddingTop:3*e/12,paddingBottom:3*e/12,paddingHorizontal:9*e/12,labelBottomOffset:4*e/12}}return this._rendererOptions}backgroundColor(){return this.chart.model().model().backgroundColor().value()}lineColor(){const e=this._properties.childs().lineColor.value();if(0===(0,me.parseRgba)(e)[3]){const e=this.chart.model().model().lastPane();if(e&&(e.collapsed().value()||e.isMainPane()&&this._areEventsEnabled()))return this.chart.properties().childs().paneProperties.childs().separatorColor.value()}return e}textColor(){return this._properties.childs().textColor.value()}fontSize(){return this._properties.childs().fontSize.value()}baseFont(){return(0,X.makeFont)(this.fontSize(),ee.CHART_FONT_FAMILY)}baseBoldFont(){return(0,X.makeFont)(this.fontSize(),ee.CHART_FONT_FAMILY,"","bold")}hasCanvas(e){return this._canvasBinding.canvasElement===e||this._topCanvasBinding.canvasElement===e}onLabelHovered(){return this._onLabelHovered}getScreenshotData(){return{content:this._canvasBinding.canvasElement.toDataURL(),canvas:this._canvasBinding.canvasElement,contentWidth:this.size.width,contentHeight:this.size.height,lhsStub:this._lhsStubContainer.getScreenshotData(),rhsStub:this._rhsStubContainer.getScreenshotData()}}getContextMenuActions(e){var t;const i=this.chart;i.updateActions();const s=i.actions(),r=[];if(e||r.push(s.timeScaleReset,new Ne.Separator),this._options.timezoneMenuEnabled&&r.push(s.applyTimeZone),r.push(s.sessionBreaks),!i.model().mainSeries().isDWM()){const e=null===(t=i.model())||void 0===t?void 0:t.mainSeries().symbolInfo();if(e){const t=i.model().mainSeries().properties().childs().sessionId,s=(e.subsessions||[]).filter((e=>!e.private));if(s.length>1){const e=s.map((e=>{const s={label:(0,Gt.translateSessionDescription)(e.description),checkable:!0,checked:t.value()===e.id,statName:"SetSession",onExecute:()=>{i.model().setProperty(t,e.id,$t)}};return new Ne.Action({...s,actionId:"Chart.SetSession"})})),n={label:Yt,statName:"SetSession",subItems:e},o=new Ne.Action({...n,actionId:"Chart.SetSession"});r.push(o)}}}return r}update(){if(!this.chart.hasModel())return;const e=this.chart.model().timeScale().marks();if(e){this._minVisibleSpan=jt.YEAR_SPAN;for(const t of e)this._minVisibleSpan=Math.min(t.span,this._minVisibleSpan)}}updatePriceAxisStubs(){ +return this._element}optimalHeight(){const e=this.rendererOptions();return Math.ceil(e.borderSize+e.offsetSize+e.fontSize+e.paddingTop+e.paddingBottom+e.labelBottomOffset)}setSizes(e,t,i){this.size&&(0,s.equalSizes)(this.size,e)||(this.size=e,this._canvasBinding.resizeCanvasElement(e),this._topCanvasBinding.resizeCanvasElement(e),this._cell.style.width=e.width+"px",this._cell.style.height=e.height+"px"),this._lhsStubContainer.setSizes(e.height,t),this._rhsStubContainer.setSizes(e.height,i)}rendererOptions(){if(!this._rendererOptions||this._rendererOptions.fontSize!==this.fontSize()){const e=this.fontSize();this._rendererOptions={borderSize:1,offsetSize:5,fontSize:e,font:(0,Z.makeFont)(e,ee.CHART_FONT_FAMILY,""),widthCache:new pe.TextWidthCache,paddingTop:3*e/12,paddingBottom:3*e/12,paddingHorizontal:9*e/12,labelBottomOffset:4*e/12}}return this._rendererOptions}backgroundColor(){return this.chart.model().model().backgroundColor().value()}lineColor(){const e=this._properties.childs().lineColor.value();if(0===(0,me.parseRgba)(e)[3]){const e=this.chart.model().model().lastPane();if(e&&(e.collapsed().value()||e.isMainPane()&&this._areEventsEnabled()))return this.chart.properties().childs().paneProperties.childs().separatorColor.value()}return e}textColor(){return this._properties.childs().textColor.value()}fontSize(){return this._properties.childs().fontSize.value()}baseFont(){return(0,Z.makeFont)(this.fontSize(),ee.CHART_FONT_FAMILY)}baseBoldFont(){return(0,Z.makeFont)(this.fontSize(),ee.CHART_FONT_FAMILY,"","bold")}hasCanvas(e){return this._canvasBinding.canvasElement===e||this._topCanvasBinding.canvasElement===e}onLabelHovered(){return this._onLabelHovered}getScreenshotData(){return{content:this._canvasBinding.canvasElement.toDataURL(),canvas:this._canvasBinding.canvasElement,contentWidth:this.size.width,contentHeight:this.size.height,lhsStub:this._lhsStubContainer.getScreenshotData(),rhsStub:this._rhsStubContainer.getScreenshotData()}}getContextMenuActions(e){var t;const i=this.chart;i.updateActions();const s=i.actions(),r=[];if(e||r.push(s.timeScaleReset,new Ne.Separator),this._options.timezoneMenuEnabled&&r.push(s.applyTimeZone),r.push(s.sessionBreaks),!i.model().mainSeries().isDWM()){const e=null===(t=i.model())||void 0===t?void 0:t.mainSeries().symbolInfo();if(e){const t=i.model().mainSeries().properties().childs().sessionId,s=(e.subsessions||[]).filter((e=>!e.private));if(s.length>1){const e=s.map((e=>{const s={label:(0,Gt.translateSessionDescription)(e.description),checkable:!0,checked:t.value()===e.id,statName:"SetSession",onExecute:()=>{i.model().setProperty(t,e.id,$t)}};return new Ne.Action({...s,actionId:"Chart.SetSession"})})),n={label:Yt,statName:"SetSession",subItems:e},o=new Ne.Action({...n,actionId:"Chart.SetSession"});r.push(o)}}}return r}update(){if(!this.chart.hasModel())return;const e=this.chart.model().timeScale().marks();if(e){this._minVisibleSpan=jt.YEAR_SPAN;for(const t of e)this._minVisibleSpan=Math.min(t.span,this._minVisibleSpan)}}updatePriceAxisStubs(){ const e=this.chart.model().model(),t=this.chart.isMaximizedPane()?(0,r.ensureNotNull)(this.chart.maximizedPaneWidget()).state():e.paneForSource(e.mainSeries());if(!t)return;const i=e.priceScaleSlotsCount();this._lhsStubContainer.setScales([],i.left,t.leftPriceScales().length,i.left+i.right),this._rhsStubContainer.setScales([],i.right,t.rightPriceScales().length,i.left+i.right)}paint(e){if(e===D.InvalidationLevel.None||0===this.size.width||0===this.size.height)return;this._canvasBinding.applySuggestedBitmapSize(),this._topCanvasBinding.applySuggestedBitmapSize();const t=(0,Y.getContext2D)(this._topCanvasBinding.canvasElement);if(e>D.InvalidationLevel.Cursor){const i=(0,Y.getContext2D)(this._canvasBinding.canvasElement),s=(0,Y.getBindingPixelRatio)(this._canvasBinding);this.drawBackground(i,s),this.chart.hasModel()&&(this.drawBorder(i,s),this.drawTickMarks(i,s),this.drawBackLabels(i,s),this.drawCrossHairLabel(t,s)),this._lhsStubContainer.paintStubs(e),this._rhsStubContainer.paintStubs(e)}this.drawCrossHairLabel(t,(0,Y.getBindingPixelRatio)(this._topCanvasBinding))}drawBackground(e,t){if((0,Y.clearRect)(e,0,0,Math.ceil(this.size.width*t)+1,Math.ceil(this.size.height*t)+1,this.backgroundColor()),!this.chart.hasModel())return;const i=this.chart.model();if(!i.timeScale().isEmpty()){const s=i.model().selection().lineDataSources().reduce(((e,t)=>{const i=t.timeAxisPoints();return 0===i.length?e:e.concat(i)}),[]);s.length>0&&this._hightlightBackground(e,s,t)}const s=i.model().crossHairSource();s.startMeasurePoint()&&this._hightlightBackground(e,s.measurePoints(),t)}drawBorder(e,t){e.save(),e.fillStyle=this.lineColor();const i=Math.max(1,Math.floor(this.rendererOptions().borderSize*t)),s=Math.ceil(this.size.width*t);e.fillRect(0,0,s+1,i),e.restore()}drawTickMarks(e,t){const i=this.chart.model().timeScale().marks();if(!i||0===i.length)return;let s=i.reduce(((e,t)=>e.span>t.span?e:t),i[0]).span;s>30&&s<40&&(s=30),e.save(),e.strokeStyle=this.lineColor();const r=this.rendererOptions(),n=r.borderSize+r.offsetSize+r.paddingTop+r.fontSize/2;e.textAlign="center",e.textBaseline="middle",e.fillStyle=this.textColor(),(0,Y.drawScaled)(e,t,(()=>{e.font=this.baseFont();for(let t=0;t=s&&e.fillText(r.label,r.coord,n)}})),e.restore()}drawBackLabels(e,t){var i;e.save();const s=new Set,r=this.chart.model().model();let n=r.dataSources();const o=r.selection().allSources();for(const e of o)s.add(e);r.hoveredSource()&&s.add(r.hoveredSource());for(const e of r.sourcesBeingMoved())s.add(e);const a=r.customSourceBeingMoved();null!==a&&s.add(a);const l=null!==(i=r.lineBeingEdited())&&void 0!==i?i:r.lineBeingCreated();l&&s.add(l),s.add(this.chart.model().crossHairSource()),n=n.concat(r.customSources());const c=this.rendererOptions();for(let i=0;i=s&&(s=a,n=o),a<=i&&(i=a,r=o)}}return n&&t.push(n),r&&t.push(r),t}_zoomAvailable(){return!this.chart.model().timeScale().isEmpty()&&this.chart.model().model().zoomEnabled()&&this._options.pressedMouseMoveScale}_mouseDownOrTouchStartEvent(e){if(this._mousedown||!this._zoomAvailable())return;this._mousedown=!0;const t=this.chart.model();t.timeScale().isEmpty()||t.startScaleTime(e.localX)}_pressedMouseOrTouchMoveEvent(e){ -this._zoomAvailable()&&this.chart.model().scaleTimeTo(e.localX)}_mouseUpOrTouchEndEvent(e){this._zoomAvailable()&&(this._mousedown=!1,this.chart.model().endScaleTime(),this.restoreDefaultCursor())}_contextMenuOrTouchContextMenuEvent(e){this._options.contextMenuEnabled&&ae.ContextMenuManager.showMenu(this.getContextMenuActions(),e,{statName:"TimeScaleContextMenu"},{menuName:"TimeScaleContextMenu"})}_mouseOrTouchEnterEvent(e){this._zoomAvailable()&&this.setCursor("ew-resize")}_mouseOrTouchLeaveEvent(e){this.restoreDefaultCursor()}_mouseDoubleClickOrDoubleTapEvent(e){(0,_e.trackEvent)("GUI","Double click time scale"),this.chart.model().resetTimeScale()}_areEventsEnabled(){return!(0,G.hideMarksOnBars)().value()}}function Xt(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Zt(e){return e.reduce(((e,t)=>{for(const i in t)if(Xt(t,i)){const s=t[i],r=e[i];r?r.push(s):e[i]=[s]}return e}),{})}const Jt=new O.TranslatedString("move left",n.t(null,void 0,i(15086))),Qt=new O.TranslatedString("move right",n.t(null,void 0,i(61711))),ei={moving:"wait_finishing",wait_finishing:"stop",stop:"moving"};class ti{constructor(e){this._chartModel=null,this._currentDistance=0,this._deferredFinishTimeout=0,this._finishingTimeout=0,this._moveType="",this._startTime=0,this._state="stop",this._movingTimeout=0,this._chart=e,this._chart.withModel(this,(()=>{this._chartModel=this._chart.model()}))}destroy(){clearTimeout(this._movingTimeout)}move(e){if(null!==this._chartModel&&"stop"===this._state&&this._chartModel.beginUndoMacro(1===e?Jt:Qt),this._state=ei.stop,this._moveType="animated",this._deferredFinishTimeout&&(clearTimeout(this._deferredFinishTimeout),this._deferredFinishTimeout=0),this._finishingTimeout&&(clearTimeout(this._finishingTimeout),this._finishingTimeout=0),this._startTime=Date.now(),0===this._movingTimeout){const t=this._startTime,i=10,s=()=>{this.moveStep(t,0,50*e,1e3),this._movingTimeout=setTimeout(s,i)};this._movingTimeout=setTimeout(s,i)}}moveStep(e,t,i,s){if(null!==this._chartModel&&!this._chartModel.timeScale().isEmpty()){const r=Date.now();r1||!isFinite(n))&&(n=1);const o=1-Math.pow(1-n,3);return this._currentDistance=(i-t)*o+t,this._chartModel.scrollChart(this._currentDistance),n}}moveByBar(e){if(null!==this._chartModel){const t=this._chartModel.timeScale();if(t.isEmpty())return;if("stop"===this._state&&this._chartModel.beginUndoMacro(1===e?Jt:Qt),null!==t.visibleBarsStrictRange()){const e=t.indexToCoordinate(t.visibleBarsStrictRange().lastBar())+t.barSpacing()/2;Math.abs(t.width()-e)>t.barSpacing()/6&&this._chartModel.scrollChart(t.width()-e)}if(this._state=ei.stop,this._moveType="by_bar",this._startTime=Date.now(),!this._movingTimeout){let t=0,i=150;const s=400,r=()=>{this._moveByBarStep(e),t++,i>100&&(i-=t/5*20),this._movingTimeout=setTimeout(r,i)};this._movingTimeout=setTimeout(r,s),this._moveByBarStep(e)}}}stopMove(){"by_bar"===this._moveType?this.stopMoveByBar():this._stopMove()}stopMoveByBar(){"moving"===this._state&&(clearTimeout(this._movingTimeout),this._movingTimeout=0, +this._zoomAvailable()&&this.chart.model().scaleTimeTo(e.localX)}_mouseUpOrTouchEndEvent(e){this._zoomAvailable()&&(this._mousedown=!1,this.chart.model().endScaleTime(),this.restoreDefaultCursor())}_contextMenuOrTouchContextMenuEvent(e){this._options.contextMenuEnabled&&ae.ContextMenuManager.showMenu(this.getContextMenuActions(),e,{statName:"TimeScaleContextMenu"},{menuName:"TimeScaleContextMenu"})}_mouseOrTouchEnterEvent(e){this._zoomAvailable()&&this.setCursor("ew-resize")}_mouseOrTouchLeaveEvent(e){this.restoreDefaultCursor()}_mouseDoubleClickOrDoubleTapEvent(e){(0,_e.trackEvent)("GUI","Double click time scale"),this.chart.model().resetTimeScale()}_areEventsEnabled(){return!(0,G.hideMarksOnBars)().value()}}function Zt(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Xt(e){return e.reduce(((e,t)=>{for(const i in t)if(Zt(t,i)){const s=t[i],r=e[i];r?r.push(s):e[i]=[s]}return e}),{})}const Jt=new O.TranslatedString("move left",n.t(null,void 0,i(15086))),Qt=new O.TranslatedString("move right",n.t(null,void 0,i(61711))),ei={moving:"wait_finishing",wait_finishing:"stop",stop:"moving"};class ti{constructor(e){this._chartModel=null,this._currentDistance=0,this._deferredFinishTimeout=0,this._finishingTimeout=0,this._moveType="",this._startTime=0,this._state="stop",this._movingTimeout=0,this._chart=e,this._chart.withModel(this,(()=>{this._chartModel=this._chart.model()}))}destroy(){clearTimeout(this._movingTimeout)}move(e){if(null!==this._chartModel&&"stop"===this._state&&this._chartModel.beginUndoMacro(1===e?Jt:Qt),this._state=ei.stop,this._moveType="animated",this._deferredFinishTimeout&&(clearTimeout(this._deferredFinishTimeout),this._deferredFinishTimeout=0),this._finishingTimeout&&(clearTimeout(this._finishingTimeout),this._finishingTimeout=0),this._startTime=Date.now(),0===this._movingTimeout){const t=this._startTime,i=10,s=()=>{this.moveStep(t,0,50*e,1e3),this._movingTimeout=setTimeout(s,i)};this._movingTimeout=setTimeout(s,i)}}moveStep(e,t,i,s){if(null!==this._chartModel&&!this._chartModel.timeScale().isEmpty()){const r=Date.now();r1||!isFinite(n))&&(n=1);const o=1-Math.pow(1-n,3);return this._currentDistance=(i-t)*o+t,this._chartModel.scrollChart(this._currentDistance),n}}moveByBar(e){if(null!==this._chartModel){const t=this._chartModel.timeScale();if(t.isEmpty())return;if("stop"===this._state&&this._chartModel.beginUndoMacro(1===e?Jt:Qt),null!==t.visibleBarsStrictRange()){const e=t.indexToCoordinate(t.visibleBarsStrictRange().lastBar())+t.barSpacing()/2;Math.abs(t.width()-e)>t.barSpacing()/6&&this._chartModel.scrollChart(t.width()-e)}if(this._state=ei.stop,this._moveType="by_bar",this._startTime=Date.now(),!this._movingTimeout){let t=0,i=150;const s=400,r=()=>{this._moveByBarStep(e),t++,i>100&&(i-=t/5*20),this._movingTimeout=setTimeout(r,i)};this._movingTimeout=setTimeout(r,s),this._moveByBarStep(e)}}}stopMove(){"by_bar"===this._moveType?this.stopMoveByBar():this._stopMove()}stopMoveByBar(){"moving"===this._state&&(clearTimeout(this._movingTimeout),this._movingTimeout=0, this._state=ei.wait_finishing,this._moveType="",this._movingTimeout=0,this._currentDistance=0,null!==this._chartModel&&this._chartModel.endUndoMacro())}scrollToRealtime(e){null!==this._chartModel&&this._chartModel.timeScale().scrollToRealtime(e)}_finishMove(){clearTimeout(this._movingTimeout),this._movingTimeout=0,this._deferredFinishTimeout=0;const e=this._currentDistance,t=Date.now(),i=()=>{const s=this.moveStep(t,e,0,700);s&&s<1?this._finishingTimeout=setTimeout(i,10):null!==this._chartModel&&(this._state=ei.wait_finishing,this._moveType="",this._movingTimeout=0,this._currentDistance=0,this._chartModel.endUndoMacro())};this._finishingTimeout=setTimeout(i,10)}_stopMove(){"moving"===this._state&&(this._state=ei.moving,Date.now()-this._startTime<200?this._deferredFinishTimeout=setTimeout(this._finishMove.bind(this),200-(Date.now()-this._startTime)):this._finishMove())}_moveByBarStep(e){if(null!==this._chartModel){if(this._chartModel.timeScale().isEmpty())return;this._chartModel.scrollChartByBar(e)}}}var ii=i(68671);const si=(0,o.getLogger)("ChartApi.AbstractSession");class ri extends class{constructor(e,t,i){this._isConnected=new(ot())(!1),this._state=0,this._isConnectForbidden=!1,this._sessionId="",this._sessionIdChanged=new(oe()),this._chartApi=e,this._sessionPrefix=t,this._shouldReconnectAfterCriticalError=i}destroy(){this._logNormal("Destroying session"),this._isConnected.unsubscribe(),this.disconnect(),this._sessionIdChanged.destroy(),delete this._chartApi,this._logNormal("Session has been destroyed")}isConnected(){return this._isConnected}sessionId(){return this._sessionId}onSessionIdChanged(){return this._sessionIdChanged}connect(){0===this._state&&((0,r.assert)(!this._isConnectForbidden,"Cannot call connect because it is forbidden at this moment"),this._setSessionId(`${this._sessionPrefix}_${(0,ii.randomHash)()}`),this._logNormal("Connecting session - wait until transport stay connected"),this._state=1,this._chartApi.createSession(this._sessionId,this))}disconnect(){0!==this._state&&((0,r.assert)(""!==this._sessionId,"sessionId must not be invalid"),this._logNormal("Disconnecting session..."),this._forbidConnectWhile((()=>{this._chartApi.connected()&&this._sendRemoveSession(),this._processDestroyingOnServer()})))}onMessage(e){switch(e.method){case"connected":return void this._onChartApiConnected();case"disconnected":return void this._onChartApiDisconnected();case"critical_error":const t=String(e.params[0]),i=String(e.params[1]);return void this._onCriticalError(t,i)}this._onMessage(e)}_getChartApi(){return this._chartApi}_generateLogMessage(e){return`[${this._sessionId}] ${e}`}_onCriticalError(e,t){this._logError(`Critical error. Reason=${e}, info=${t}.`),this._forbidConnectWhile((()=>{this._processDestroyingOnServer()})),this._shouldReconnectAfterCriticalError?(this._logNormal("Reconnecting after critical error..."),this.connect()):this._logNormal("Reconnecting after critical error skipped")}_onChartApiConnected(){(0,r.assert)(1===this._state,"Session is not registered"), this._logNormal("Transport is connected. Creating session on the server"),this._sendCreateSession(),this._state=2,this._isConnected.setValue(!0)}_onChartApiDisconnected(){this._logNormal("Transport is disconnected. Reconnecting..."),this._forbidConnectWhile((()=>{this._processDestroyingOnServer()})),this.connect()}_setSessionId(e){const t=this._sessionId;this._logNormal(`Changing sessionId: old=${t}, new=${e}`),this._sessionId=e,this._sessionIdChanged.fire(e,t)}_logNormal(e){si.logNormal(this._generateLogMessage(e))}_logError(e){si.logError(this._generateLogMessage(e))}_processDestroyingOnServer(){this._state=0,this._isConnected.setValue(!1),this._chartApi.removeSession(this._sessionId),this._setSessionId("")}_forbidConnectWhile(e){this._isConnectForbidden=!0,e(),this._isConnectForbidden=!1}}{constructor(e,t=!1){super(e,"cs",!1),this._sessionDisabled=!1,this._handler=null,this._criticalError=new(oe()),this._symbolResolveMap=new Map,this._disableStatistics=t}destroy(){this._criticalError.destroy(),this._handler=null,this._symbolResolveMap.clear(),super.destroy()}serverTimeOffset(){return this._getChartApi().serverTimeOffset()}switchTimezone(e){return this._getChartApi().switchTimezone(this.sessionId(),e)}defaultResolutions(){return this._getChartApi().defaultResolutions()}availableCurrencies(){return this._getChartApi().availableCurrencies()}availableUnits(){return this._getChartApi().availableUnits()}availablePriceSources(){return this._getChartApi().availablePriceSources()}resolveSymbol(e,t,i){if(this._symbolResolveMap.has(t)){const[e,s]=this._symbolResolveMap.get(t);return Array.isArray(s)?s.push(i):s.then(i),e}{const s=[i];return this._getChartApi().resolveSymbol(this.sessionId(),e,t,(i=>{"symbol_error"===i.method?this._symbolResolveMap.delete(t):this._symbolResolveMap.set(t,[e,Promise.resolve(i)]),s.forEach((e=>e(i)))})),this._symbolResolveMap.set(t,[e,s]),e}}requestFirstBarTime(e,t,i){return this._getChartApi().requestFirstBarTime(this.sessionId(),e,t,i)}createSeries(e,t,i,s,r,n,o){return this._getChartApi().createSeries(this.sessionId(),e,t,i,s,r,n,o)}modifySeries(e,t,i,s,r,n){return this._getChartApi().modifySeries(this.sessionId(),e,t,i,s,r,n)}removeSeries(e){return!!this.isConnected().value()&&this._getChartApi().removeSeries(this.sessionId(),e)}requestMoreData(e,t,i){return"number"==typeof e?this._getChartApi().requestMoreData(this.sessionId(),e):this._getChartApi().requestMoreData(this.sessionId(),e,t,i)}requestMoreTickmarks(e,t,i){return(0,S.isNumber)(e)?this._getChartApi().requestMoreTickmarks(this.sessionId(),e):this._getChartApi().requestMoreTickmarks(this.sessionId(),e,t,i)}requestMetadata(e,t){this._getChartApi().requestMetadata(this.sessionId(),e,t)}canCreateStudy(e){return this._getChartApi().canCreateStudy(e)}createStudy(e,t,i,s,r,n,o){return this._getChartApi().createStudy(this.sessionId(),e,t,i,s,r,n,o)}rebindStudy(e,t,i,s,r,n,o){return this._getChartApi().rebindStudy(this.sessionId(),e,t,i,s,r,n,o)}modifyStudy(e,t,i,s,r){return this._getChartApi().modifyStudy(this.sessionId(),e,t,i,s,r)} removeStudy(e,t){return this._getChartApi().removeStudy(this.sessionId(),e,t)}createPointset(e,t,i,s,r,n){return this._getChartApi().createPointset(this.sessionId(),e,t,i,s,r,n)}modifyPointset(e,t,i,s){return this._getChartApi().modifyPointset(this.sessionId(),e,t,i,s)}removePointset(e){return this._getChartApi().removePointset(this.sessionId(),e)}setVisibleTimeRange(e,t,i,s,r,n){this._getChartApi().setVisibleTimeRange(this.sessionId(),e,t,i,s,!0,r,n)}criticalError(){return this._criticalError}connect(e=null){null!==e&&(this._handler=e),this._symbolResolveMap.clear(),super.connect()}setHandler(e){this._handler=e}connected(){return this.isConnected().value()&&!this._sessionDisabled}disable(){this._sessionDisabled=!0}chartApi(){return this._getChartApi()}_sendCreateSession(){Object.keys(this).forEach((e=>{/^(s|st|symbol_)\d+$/.test(e)&&delete this[e]})),this._getChartApi().chartCreateSession(this.sessionId(),this._disableStatistics)}_sendRemoveSession(){this._getChartApi().chartDeleteSession(this.sessionId())}_onMessage(e){this._handler&&this._handler(e)}_onCriticalError(e,t){this._criticalError.fire(e,t),super._onCriticalError(e,t)}}var ni=i(1930),oi=i(92133);class ai{constructor(){this._draggingSource=null,this._activeTouchPanes=new Set,this._scrollingPane=null,this._pinchingPane=null}onPaneDestroyed(e){this._activeTouchPanes.delete(e),this._scrollingPane===e&&(this._scrollingPane=null),this._pinchingPane===e&&(this._pinchingPane=null)}startTouch(e){this._activeTouchPanes.add(e)}endTouch(e){this._activeTouchPanes.delete(e)}hasTouchesOnOtherPanes(e){return this._activeTouchPanes.size>1||1===this._activeTouchPanes.size&&!this._activeTouchPanes.has(e)}trySetDraggingSource(e,t){return!this.hasTouchesOnOtherPanes(t)&&((0,r.assert)(null===this._draggingSource||this._draggingSource===e),this._draggingSource=e,!0)}clearDraggingSource(){null!==this._draggingSource&&(this._draggingSource=null)}draggingSource(){return this._draggingSource}setScrollingPane(e){(0,r.assert)(null===e||null===this._scrollingPane||this._scrollingPane===e),this._scrollingPane=e}scrollingPane(){return this._scrollingPane}setPinchingPane(e){(0,r.assert)(null===e||null===this._pinchingPane||this._pinchingPane===e),this._pinchingPane=e}pinchingPane(){return this._pinchingPane}}let li=null;i(27678);function ci(e,t,s,r,n){return Promise.all([i.e(6848),i.e(4150),i.e(8230),i.e(5384),i.e(7624),i.e(1428),i.e(1685),i.e(4819),i.e(9333),i.e(6092),i.e(8619),i.e(346),i.e(8825),i.e(8271),i.e(5761),i.e(8009),i.e(8707),i.e(7177),i.e(3261),i.e(3562),i.e(8049),i.e(3578),i.e(4884),i.e(3795),i.e(140),i.e(8955),i.e(8251),i.e(9415),i.e(5020),i.e(3046),i.e(1033),i.e(9230),i.e(9519),i.e(962),i.e(2842),i.e(3988),i.e(9050),i.e(8494),i.e(5890),i.e(6265)]).then(i.bind(i,4060)).then((i=>{const o=new(0,i.EditObjectDialogRenderer)(e,t,r,n);return o.show(s),o}))}let hi=null;var di=i(89664);const ui={[ut.TabNames.symbol]:"symbol",[ut.TabNames.legend]:"legend",[ut.TabNames.scales]:"scales",[ut.TabNames.trading]:"trading",[ut.TabNames.events]:"events", @@ -292,64 +293,64 @@ this._errorMessageHandler=e=>{this._chartWidget.hasModel()?this._updatePaneWidge ;if(f.length>0)try{const s=await Promise.all([i.e(8087),i.e(8230),i.e(5384),i.e(7624),i.e(1428),i.e(1685),i.e(4819),i.e(9333),i.e(8619),i.e(346),i.e(8825),i.e(8271),i.e(5761),i.e(8707),i.e(7177),i.e(3261),i.e(3562),i.e(8049),i.e(3578),i.e(4884),i.e(140),i.e(4450),i.e(962),i.e(2842),i.e(3016),i.e(1075),i.e(3988),i.e(9050),i.e(8494),i.e(3030)]).then(i.bind(i,73339)),r=await s.selectInputValuesOnChart(e,f,u,t.shortDescription,t.inputs);if(l=r.customSourceId,r.destPane){const e=r.destPane.mainDataSource();c=e===h.mainSeries()?[]:[e]}else c=[]}catch(e){return void m()}f.length!==p.length?Promise.all([i.e(8087),i.e(8230),i.e(5384),i.e(7624),i.e(1428),i.e(1685),i.e(4819),i.e(9333),i.e(8619),i.e(346),i.e(8825),i.e(8271),i.e(5761),i.e(8707),i.e(7177),i.e(3261),i.e(3562),i.e(8049),i.e(3578),i.e(4884),i.e(140),i.e(4450),i.e(962),i.e(2842),i.e(3016),i.e(1075),i.e(3988),i.e(9050),i.e(8494),i.e(3030)]).then(i.bind(i,29638)).then((t=>{const s=new t.ConfirmInputsDialogRenderer(function(e){if("symbol"===e)return n.t(null,void 0,i(45743));return n.t(null,void 0,i(46689))}(a),p,u,a,e.model(),g,m);return s.show(),s})):g(u.state().inputs||{})}var Li=i(69228),ki=i(578);var Ei=i(64548);const Di=(0,Ve.enabled)("chart_content_overrides_by_defaults"),Bi=(0,o.getLogger)("ChartWidget",{color:"#606"}),Vi=new O.TranslatedString("hide {title}",n.t(null,void 0,i(70301)));const Ri={addToWatchlistEnabled:!0,showFinancialsEnabled:!1,sourceSelectionEnabled:!0,propertyPagesEnabled:!0,paneContextMenuEnabled:!0,priceScaleContextMenuEnabled:!0,currencyConversionEnabled:!1,unitConversionEnabled:!1,goToDateEnabled:!1,marketStatusWidgetEnabled:!0,chartWarningWidgetEnabled:!0,dataProblemWidgetEnabled:!0,paneControlsEnabled:!0,isSymbolAvailable:e=>Promise.resolve(!0),legendWidgetEnabled:!0,chartEventsEnabled:!0,esdEnabled:!1,newsEnabled:!1,continuousContractSwitchesEnabled:!1,futuresContractExpirationEnabled:!1,croppedTickMarks:!0,countdownEnabled:!0,lastPriceAnimationEnabled:!0,useKineticScroll:c.CheckMobile.any(),indicatorsDialogShortcutEnabled:!0,handleScale:{mouseWheel:!0,pinch:!0,axisPressedMouseMove:{time:!0,price:!0}},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0}};function Ni(e,t,i,s=0){const r=t.mainSeries().syncModel(),n=e.mainSeries().syncModel();let o=i;if(null!==r&&null!==n){const t=e.createSyncPoint(r.syncSourceTarget(),n.syncSourceTarget());0!==s&&(i=r.projectTime(i,s)),o=t.sourceTimeToTargetTime(i)}return e.timeScale().points().roughIndex(o,n&&n.distance.bind(n))}const Oi=["Overlay@tv-basicstudies","CorrelationCoefficient@tv-basicstudies","Correlation Coeff@tv-basicstudies","Spread@tv-basicstudies","Ratio@tv-basicstudies"];class Fi{constructor(e,t,i){this.activePaneWidget=null,this._model=null,this._paneWidgets=[],this._maximizedPaneWidget=null,this._timeAxisWidget=null,this._paneSeparators=[],this._controlBarNavigation=null,this._lineToolsSynchronizer=null,this._modelCreated=new(oe()),this._isDestroyed=!1,this._customLegendWidgetsFactoryMap=new Map,this._backgroundTopTheme=new(ot())("light"), this._backgroundBasedTheme=new(ot())("light"),this._backgroundBottomTheme=new(ot())("light"),this._lhsAxesWidth=0,this._rhsAxesWidth=0,this._lhsPriceAxisWidthChanged=new(oe()),this._rhsPriceAxisWidthChanged=new(oe()),this._mainDiv=null,this._parent=null,this._elTooltipDiv=null,this._hotkeysListener=null,this._mouseWheelHelper=null,this._onWheelBound=null,this._justActivated=!1,this._inited=!1,this._containsData=!1,this._initialLoading=!1,this._defTimeframe=void 0,this._removeMaximizeHotkey=null,this._metaInfoRepository=null,this._invalidationMask=null,this._drawPlanned=!1,this._drawRafId=0,this._inLoadingState=!1,this._timingsMeter=null,this._tagsChanged=new(oe()),this._redraw=new(oe()),this._isVisible=new(ot())(!0),this._collapsed=new(ot())(!1),this._dataWindowWidget=null,this._resizeHandler=null,this._spinner=null,this._keydownEventListener=null,this._properties=null,this._updateThemedColorBound=this._updateThemedColor.bind(this),this._disconnected=new(oe()),this._reconnectBailout=new(oe()),this._connected=new(oe()),this._chartWidgetInitialized=new(oe()),this._saveChartService=null,this._objectTreeDialogController=null,this._chartPaintedPromise=null,this._noExchangeSubscrptionWarning=null,this._paneWidgetsSharedState=new ai,this._brokerName="",this._onZoom=new(oe()),this._onScroll=new(oe()),this._availableScreen=null,this._hoveredPriceAxes=new Set,this._anyAxisHovered=new(ot())(!1),this._invalidationHandler=e=>{if(!(e instanceof D.InvalidationMask))throw new Error("Invalid mask");null!==this._invalidationMask?this._invalidationMask.merge(e):this._invalidationMask=e,this._drawPlanned||(this._drawPlanned=!0,this._options.visible.when((()=>{const e=!document.hidden,t=this.screen&&this.screen.isShown();null!==this._timingsMeter&&e&&!t&&this._timingsMeter.startWaitingDraw();const i=(0,r.ensureNotNull)((0,r.ensureNotNull)(this._parent).ownerDocument.defaultView);this._drawRafId=i.requestAnimationFrame(this._invalidationRAFCallback.bind(this))})))},this._onChartSessionIsConnectedChanged=e=>{e?this._onConnection():this._onDisconnect()},this._subscribeToBanInfo=e=>{var t,i;e?null===(t=this._spinner)||void 0===t||t.stop():null===(i=this._spinner)||void 0===i||i.spin()},this._id=t,this._layoutId=i,this._options=(0,S.merge)((0,S.clone)(Ri),e),this._options.customLegendWidgetFactories&&(this._customLegendWidgetsFactoryMap=this._options.customLegendWidgetFactories),this._subscribeToDrawingState(),this._chartWidgetCollection=this._options.chartWidgetCollection,this.withModel(this,(()=>{const e=this.model().model();e.backgroundTopColor().subscribe(this._updateThemedColorBound),e.backgroundColor().subscribe(this._updateThemedColorBound)})),this._errorRenderer=new Ti(this),this._scrollHelper=new ti(this),this._objectTreeDialogController=_.getInstance(),this._properties=new E.DefaultProperty("chartproperties",void 0,void 0,this._options.useUserChartPreferences),this._properties.addExclusion("scalesProperties.axisHighlightColor"),this._properties.addExclusion("scalesProperties.axisLineToolLabelBackgroundColorActive"), this._properties.addExclusion("scalesProperties.axisLineToolLabelBackgroundColorCommon"),this._properties.addExclusion("scalesProperties.showPriceScaleCrosshairLabel"),this._properties.addExclusion("scalesProperties.showTimeScaleCrosshairLabel"),this._properties.addExclusion("scalesProperties.crosshairLabelBgColorLight"),this._properties.addExclusion("scalesProperties.crosshairLabelBgColorDark"),this._startSpinner(this._options.container.value()),this._chartSession=new ri(window.ChartApiInstance),this._metaInfoRepository=new x(this._chartSession)}destroy(){var e,t;null===(e=this._lineToolsSynchronizer)||void 0===e||e.destroy(),null===(t=this._noExchangeSubscrptionWarning)||void 0===t||t.destroy(),window.loginStateChange.unsubscribe(this,this._handleLoginStateChanged),null!==this._model&&(this._model.model().backgroundTopColor().unsubscribe(this._updateThemedColorBound),this._model.model().backgroundColor().unsubscribe(this._updateThemedColorBound),this._model.destroy()),this._customLegendWidgetsFactoryMap.clear(),this._scrollHelper.destroy(),this._errorRenderer.destroy(),this._chartSession.criticalError().unsubscribe(this,this._onChartSessionCriticalError),this._chartSession.isConnected().unsubscribe(this._onChartSessionIsConnectedChanged),this._chartSession.destroy(),this._isDestroyed=!0}emulateCriticalError(){this._chartSession.removeSeries("-1")}chartSession(){return this._chartSession}onDisconnected(){return this._disconnected}onReconnectBailout(){return this._reconnectBailout}onConnected(){return this._connected}chartWidgetInitialized(){return this._chartWidgetInitialized}setVisibleTimeRange(e,t,i,s){{const n=this.model().mainSeries().seriesSource();this._chartSession.setVisibleTimeRange((0,r.ensureNotNull)(n.instanceId()),n.turnaround(),e,t,null!=i?i:{},null!=s?s:()=>{})}}lineToolsSynchronizer(){return this._lineToolsSynchronizer}model(){return(0,r.ensureNotNull)(this._model)}id(){return this._id}layoutId(){return this._layoutId}crossHairSyncEnabled(){return this._chartWidgetCollection.lock.crosshair.value()}isVisible(){return this._isVisible.value()}setVisible(e){this._isVisible.setValue(e)}setCollapsed(e){this._collapsed.setValue(e)}isJustClonedChart(){return!!(this._options||{}).justCloned}setSymbol(e){this._model?this._model.setSymbol(this._model.mainSeries(),e):this.properties().childs().mainSeriesProperties.merge({symbol:e})}setResolution(e){this._model?this._model.setResolution(this._model.mainSeries(),e):this.properties().childs().mainSeriesProperties.merge({interval:e})}getResolution(){return this._model?this._model.mainSeries().properties().childs().interval.value():this.properties().childs().mainSeriesProperties.childs().interval.value()}loadRange(e){if(this._model){this.screen.show();this._model.loadRange(e)||this.screen.hide()}}async showGeneralChartProperties(e){if(!Ve.enabled("show_chart_property_page"))return Promise.resolve(null);const t=await this._showChartProperties(this.model().mainSeries(),e,{doNotCloseOnBgClick:!0,onResetToDefault:async()=>{this.model().restorePreferences() -;const e=await Promise.resolve().then(i.bind(i,8840)),t=e.getCurrentTheme().name;e.loadTheme(this.chartWidgetCollection(),{themeName:t,standardTheme:!0})}});if(null===t)return null;const s=()=>{t.hide(),this._chartWidgetCollection.activeChartWidget.unsubscribe(s)};return this._chartWidgetCollection.activeChartWidget.subscribe(s),t}async showChartPropertiesForSources(e){if(!(0,Ve.enabled)("property_pages"))return Promise.resolve(null);const{sources:t,title:s,tabName:o,renamable:a}=e,l=(0,r.ensureNotNull)(this._model),c=Zt(t.map((e=>e.properties().childs()))),h=Zt(t.map((e=>e.properties().childs().intervalsVisibilities))),[{createPropertyPage:d},{getSelectionStylePropertiesDefinitions:u},{getSelectionIntervalsVisibilitiesPropertiesDefinition:p},{getSelectionCoordinatesPropertyDefinition:_}]=await Promise.all([Promise.all([i.e(6682),i.e(4800),i.e(892),i.e(4785),i.e(8537)]).then(i.bind(i,82623)),Promise.all([i.e(6682),i.e(4800),i.e(892),i.e(4785),i.e(8537)]).then(i.bind(i,87118)),Promise.all([i.e(6682),i.e(4800),i.e(892),i.e(4785),i.e(8537)]).then(i.bind(i,20196)),Promise.all([i.e(6682),i.e(4800),i.e(892),i.e(4785),i.e(8537)]).then(i.bind(i,19402))]);return async function(e){const{SourcesPropertiesEditorRenderer:t}=await Promise.all([i.e(6848),i.e(8230),i.e(5384),i.e(7624),i.e(1428),i.e(1685),i.e(4819),i.e(9333),i.e(6092),i.e(8619),i.e(346),i.e(8825),i.e(8271),i.e(5761),i.e(8009),i.e(8707),i.e(7177),i.e(3261),i.e(3562),i.e(8049),i.e(3578),i.e(4884),i.e(140),i.e(8955),i.e(8251),i.e(9415),i.e(5020),i.e(3046),i.e(9230),i.e(7695),i.e(962),i.e(2842),i.e(3988),i.e(9050),i.e(8494),i.e(5890),i.e(6780)]).then(i.bind(i,66512)),s=new t(e);return null!==li&&(li.hide(),li=s),s.show(),s}({sources:t,propertyPages:[d(u(c,l),"Style",n.t(null,void 0,i(32733))),d({definitions:[_(t,l)]},"Displacement",n.t(null,void 0,i(62764))),d(p(h,l),"Visibility",n.t(null,void 0,i(21852)))],undoModel:l,title:s,activeTabId:o,renamable:a})}getPriceAxisWidthChangedByName(e){return"left"===e?this._lhsPriceAxisWidthChanged:this._rhsPriceAxisWidthChanged}getPriceAxisMaxWidthByName(e){return"left"===e?this._lhsAxesWidth:this._rhsAxesWidth}timeAxisHeight(){return null!==this._timeAxisWidget?this._timeAxisWidget.size.height:0}withModel(e,t){null!==this._model?t.call(e):this.modelCreated().subscribe(e,t,!0)}hasModel(){return null!==this._model}copyLineToOtherCharts(){const e=(0,r.ensureNotNull)(this._model),t=e.selection().lineDataSources().filter((e=>e.isSynchronizable()));e.copyToOtherCharts(t)}hideDataSources(e){if(e.length){const t=e.map((e=>e.properties().visible)),i=e.map((()=>!1));this.model().setProperties(t,i,Vi.format({title:new O.TranslatedString(e[0].name(),e[0].title())}))}}hideSelectedObject(){this.hideDataSources(this.model().selection().dataSources().filter((e=>!0)))}unlinkSelectedLine(){const e=(0,r.ensureNotNull)(this._model),t=e.selection().lineDataSources();e.unlinkLines(t)}onScroll(){return this._onScroll}onZoom(){return this._onZoom}images(e){window.TradingView.printing=!0;const t=this.model().selection().allSources() +;const e=await Promise.resolve().then(i.bind(i,8840)),t=e.getCurrentTheme().name;e.loadTheme(this.chartWidgetCollection(),{themeName:t,standardTheme:!0})}});if(null===t)return null;const s=()=>{t.hide(),this._chartWidgetCollection.activeChartWidget.unsubscribe(s)};return this._chartWidgetCollection.activeChartWidget.subscribe(s),t}async showChartPropertiesForSources(e){if(!(0,Ve.enabled)("property_pages"))return Promise.resolve(null);const{sources:t,title:s,tabName:o,renamable:a}=e,l=(0,r.ensureNotNull)(this._model),c=Xt(t.map((e=>e.properties().childs()))),h=Xt(t.map((e=>e.properties().childs().intervalsVisibilities))),[{createPropertyPage:d},{getSelectionStylePropertiesDefinitions:u},{getSelectionIntervalsVisibilitiesPropertiesDefinition:p},{getSelectionCoordinatesPropertyDefinition:_}]=await Promise.all([Promise.all([i.e(6682),i.e(4800),i.e(892),i.e(4785),i.e(8537)]).then(i.bind(i,82623)),Promise.all([i.e(6682),i.e(4800),i.e(892),i.e(4785),i.e(8537)]).then(i.bind(i,87118)),Promise.all([i.e(6682),i.e(4800),i.e(892),i.e(4785),i.e(8537)]).then(i.bind(i,20196)),Promise.all([i.e(6682),i.e(4800),i.e(892),i.e(4785),i.e(8537)]).then(i.bind(i,19402))]);return async function(e){const{SourcesPropertiesEditorRenderer:t}=await Promise.all([i.e(6848),i.e(8230),i.e(5384),i.e(7624),i.e(1428),i.e(1685),i.e(4819),i.e(9333),i.e(6092),i.e(8619),i.e(346),i.e(8825),i.e(8271),i.e(5761),i.e(8009),i.e(8707),i.e(7177),i.e(3261),i.e(3562),i.e(8049),i.e(3578),i.e(4884),i.e(140),i.e(8955),i.e(8251),i.e(9415),i.e(5020),i.e(3046),i.e(9230),i.e(7695),i.e(962),i.e(2842),i.e(3988),i.e(9050),i.e(8494),i.e(5890),i.e(6780)]).then(i.bind(i,66512)),s=new t(e);return null!==li&&(li.hide(),li=s),s.show(),s}({sources:t,propertyPages:[d(u(c,l),"Style",n.t(null,void 0,i(32733))),d({definitions:[_(t,l)]},"Displacement",n.t(null,void 0,i(62764))),d(p(h,l),"Visibility",n.t(null,void 0,i(21852)))],undoModel:l,title:s,activeTabId:o,renamable:a})}getPriceAxisWidthChangedByName(e){return"left"===e?this._lhsPriceAxisWidthChanged:this._rhsPriceAxisWidthChanged}getPriceAxisMaxWidthByName(e){return"left"===e?this._lhsAxesWidth:this._rhsAxesWidth}timeAxisHeight(){return null!==this._timeAxisWidget?this._timeAxisWidget.size.height:0}withModel(e,t){null!==this._model?t.call(e):this.modelCreated().subscribe(e,t,!0)}hasModel(){return null!==this._model}copyLineToOtherCharts(){const e=(0,r.ensureNotNull)(this._model),t=e.selection().lineDataSources().filter((e=>e.isSynchronizable()));e.copyToOtherCharts(t)}hideDataSources(e){if(e.length){const t=e.map((e=>e.properties().visible)),i=e.map((()=>!1));this.model().setProperties(t,i,Vi.format({title:new O.TranslatedString(e[0].name(),e[0].title())}))}}hideSelectedObject(){this.hideDataSources(this.model().selection().dataSources().filter((e=>!0)))}unlinkSelectedLine(){const e=(0,r.ensureNotNull)(this._model),t=e.selection().lineDataSources();e.unlinkLines(t)}onScroll(){return this._onScroll}onZoom(){return this._onZoom}images(e){window.TradingView.printing=!0;const t=this.model().selection().allSources() ;this.model().selectionMacro((e=>e.clearSelection())),this.model().model().recalculateAllPanes((0,yt.globalChangeEvent)());const i=(t,i)=>{t.paint(i);const s={showCollapsedStudies:Boolean(null==e?void 0:e.showCollapsedStudies),status:null==e?void 0:e.status};return t.getScreenshotData(s)},s=[];if(null!==this._maximizedPaneWidget){const e=this._paneWidgets.indexOf(this._maximizedPaneWidget);s.push(i(this._maximizedPaneWidget,D.InvalidationMask.light().invalidateForPane(e)))}else for(let e=0;e{t.forEach((t=>{e.addSourceToSelection(t)}))})),this.model().model().recalculateAllPanes((0,yt.globalChangeEvent)()),this.model().model().lightUpdate();const n=this.mainSeriesQuotesAndMetainfo();return{panes:s,timeAxis:r,colors:{text:this.properties().childs().scalesProperties.childs().textColor.value(),bg:this.properties().childs().paneProperties.childs().background.value(),scales:this.properties().childs().scalesProperties.childs().lineColor.value()},meta:n.meta,ohlc:n.ohlc,quotes:n.quotes}}insertStudy(e,t,i,s){return new Promise((r=>{0!==t.length?window.runOrSignIn((()=>{r(this._insertStudy(e,t,i,s))}),{source:"study on study"}):r(this._insertStudy(e,t,i,s))})).catch((()=>null))}addOverlayStudy(e,t,i){const s=this.model();return this._options&&this._options.isSymbolAvailable?this._options.isSymbolAvailable(e).then((r=>{if(!r)return null;const n=s.createStudyInserter({type:"java",studyId:"Overlay@tv-basicstudies"},[]),o={allowExtendTimeScale:i};if(Ve.enabled("use_overrides_for_overlay")){const e=(0,Ei.factoryDefaults)("study_Overlay@tv-basicstudies.style");o.style=e}return n.setPropertiesState(o),n.setForceOverlay(t),n.insert((()=>Promise.resolve({inputs:{symbol:e},parentSources:[]})))})):Promise.resolve(null)}addCompareStudy(e){const t=this.model();return this._options&&this._options.isSymbolAvailable?this._options.isSymbolAvailable(e).then((i=>i?t.createStudyInserter({type:"java",studyId:"Compare@tv-basicstudies"},[]).insert((()=>Promise.resolve({inputs:{symbol:e},parentSources:[]}))):null)):Promise.resolve(null)}showIndicators(e,t){if(window.studyMarket)return window.studyMarket.visible().value()?void window.studyMarket.hide():(window.studyMarket.show(e,t),window.studyMarket)}setSaveChartService(e){this._saveChartService=e,null!==this._lineToolsSynchronizer&&this._lineToolsSynchronizer.setSaveChartService(e)}getSaveChartService(){return this._saveChartService}mainSeriesQuotesAndMetainfo(){let e,t,i;const s=this._model&&this._model.mainSeries();if(s){const r=e=>null==e?"":s.formatter().format(e,void 0,void 0,!0,!1)+"",n=e=>null==e?"":e+"";e={resolution:s.interval(),symbol:s.symbol(),values:s.valuesProvider().getValues(null)};const o=s.symbolInfo() ;o&&(e.symbol=o.full_name,e.description=o.description,e.exchange=o.exchange);const a=s.bars().last();null!==a&&(t=a.value.slice(1,5).map(r));const l=s.quotes();l&&(i={change:r(l.change),changePercent:n(l.change_percent),last:r(l.last_price)})}return{meta:e,ohlc:t,quotes:i}}updateCrossHairPositionIfNeeded(){if(this._model){const e=G.tool.value();this._model.model().setCurrentTool(e);const t=(0,F.lastMouseOrTouchEventInfo)();if(t.isTouch){const e=this._maximizedPaneWidget||this._paneWidgets[0];if(e.hasState()&&(!t.stylus&&(this._isLineToolModeExceptBrush()||(0,G.toolIsMeasure)(G.tool.value()))||this.selectPointMode().value()!==G.SelectPointMode.None)){const t=e.state(),i=.5*this._model.model().timeScale().width(),s=.5*t.defaultPriceScale().height();this._model.model().setAndSaveCurrentPosition(i,s,t)}}if(this._model&&t.isTouch){const e=this._model.model().crossHairSource();e.updateAllViews((0,yt.sourceChangeEvent)(e.id()))}}}trackingModePaneWidget(){if(!(0,F.lastMouseOrTouchEventInfo)().isTouch)return null;for(const e of this.paneWidgets())if(e.trackingModeEnabled())return e;return null}startTrackingMode(){if((0,F.lastMouseOrTouchEventInfo)().isTouch){this.exitTrackingMode(),this.updateCrossHairPositionIfNeeded();const e=this._maximizedPaneWidget||this._paneWidgets[0],t=this.model().model().crossHairSource().currentPoint();e.startTrackingMode(t,t)}}exitTrackingMode(){(0,F.lastMouseOrTouchEventInfo)().isTouch&&this.paneWidgets().some((e=>e.trackingModeEnabled()))&&(this.paneWidgets().forEach((e=>e.exitTrackingMode())),this.model().model().clearCurrentPosition())}onToolChanged(){this.model().lineBeingCreated()&&this._cancelCreatingLine(),this.selectPointMode().value()!==G.SelectPointMode.None&&this.cancelRequestSelectPoint(),this.exitTrackingMode()}setInLoadingState(e){this._inLoadingState=e}paint(e){const t=null!=e?e:D.InvalidationMask.full();t.validationActions().forEach((e=>e())),this._paneWidgets.forEach(((e,i)=>{null!==this._maximizedPaneWidget&&this._maximizedPaneWidget!==e||e.paint(t.invalidateForPane(i))})),this._timeAxisWidget&&this._timeAxisWidget.paint(t.invalidateForTimeScale()),this._redraw.fire()}GUIResetScales(){(0,_e.trackEvent)("GUI","Reset Scales"),null!==this._model&&this._model.resetScales()}toggleMaximizePane(e){var t;if(!(this._paneWidgets.length<2)){this._maximizedPaneWidget?(this._maximizedPaneWidget.state().maximized().setValue(!1),this._maximizedPaneWidget=null,this._paneSeparators.forEach((e=>e.show()))):(this._maximizedPaneWidget=e,this._maximizedPaneWidget.state().maximized().setValue(!0),this._paneSeparators.forEach((e=>e.hide())));for(let e=this._paneWidgets.length;e--;)this._paneWidgets[e].updateControls(),this._paneWidgets[e].updatePriceAxisWidgets();this._errorRenderer.updatePaneWidgets(),null===(t=this._timeAxisWidget)||void 0===t||t.updatePriceAxisStubs(),this._adjustSize(),this.updateCrossHairPositionIfNeeded()}}maximizedPaneWidget(){return this._maximizedPaneWidget}isMaximizedPane(){return null!==this._maximizedPaneWidget}toggleCollapsedPane(e){const t=e.state() ;t.collapsed().setValue(!t.collapsed().value()),this._paneWidgets.forEach((e=>e.updateControls())),this._adjustSize(),this.updateCrossHairPositionIfNeeded()}unsetActivePaneWidget(){this.activePaneWidget=null}setActivePaneWidget(e){this.activePaneWidget=e}onPaneWidgetDestroyed(e){this.activePaneWidget===e&&(this.activePaneWidget=null)}backgroundTopTheme(){return this._backgroundTopTheme.readonly()}backgroundBasedTheme(){return this._backgroundBasedTheme.readonly()}backgroundBottomTheme(){return this._backgroundBottomTheme.readonly()}lineToolsAndGroupsDTO(){return(0,r.ensureNotNull)(this._lineToolsSynchronizer).prepareDTO()}resetLineToolsInvalidated(e,t,i){(0,r.ensureNotNull)(this._lineToolsSynchronizer).resetInvalidated(e,t,i)}applyLineToolUpdateNotification(e,t){(0,r.ensureNotNull)(this._lineToolsSynchronizer).applyLineToolUpdateNotification(e,t)}reloadAllLineTools(){(0,r.ensureNotNull)(this._lineToolsSynchronizer).reloadAllLineTools()}startApplyingLineToolUpdateNotification(){var e;null===(e=this._lineToolsSynchronizer)||void 0===e||e.startApplyingLineToolUpdateNotification()}endApplyingLineToolUpdateNotification(){var e;null===(e=this._lineToolsSynchronizer)||void 0===e||e.endApplyingLineToolUpdateNotification()}applyAlertIdByExternalSource(e,t){var i;null===(i=this._lineToolsSynchronizer)||void 0===i||i.applyAlertIdByExternalSource(e,t)}deleteAlertByExternalSource(e,t){var i;null===(i=this._lineToolsSynchronizer)||void 0===i||i.deleteAlertByExternalSource(e)}shouldBeSavedEvenIfHidden(){return this._model?this.model().model().shouldBeSavedEvenIfHidden():!!this._options.content.shouldBeSavedEvenIfHidden}showObjectsTreeDialog(){var e;null===(e=this._objectTreeDialogController)||void 0===e||e.show()}addCustomWidgetToLegend(e,t){this._customLegendWidgetsFactoryMap.set(e,t);for(const i of this.paneWidgets())i.addCustomWidgetToLegend(e,t)}applyIndicatorsToAllChartsAvailable(){if(!this.chartWidgetCollection().applyIndicatorsToAllChartsAvailable())return!1;for(const e of this.model().model().panes()){if(e.sourcesByGroup().all().some((e=>(0,k.isStudy)(e)&&!0)))return!0}return!1}restoreState(e,t,i){this._adjustSize();(0,r.ensureNotNull)(this._model).restoreState(this._content,t,i);this._setActions()}addCompareAsOverlay(e,t,i){const s=this.model();return(0,r.ensureDefined)(this._options.isSymbolAvailable)(e).then((r=>{if(!r)return null;const n=s.createStudyInserter({type:"java",studyId:"Overlay@tv-basicstudies"},[]);return n.setForceOverlay(!0),n.setPreferredPriceScale("as-series"),!0!==i&&n.setTargetPriceScaleMode({percentage:!0}),void 0!==t&&n.setPropertiesState({allowExtendTimeScale:t}),n.insert((async()=>({inputs:{symbol:e},parentSources:[]})))}))}scrollHelper(){return this._scrollHelper}setBroker(e){var t;this._brokerName=e,null===(t=this._lineToolsSynchronizer)||void 0===t||t.setBroker(e)}chartPainted(){return this._drawPlanned?(null===this._chartPaintedPromise&&(this._chartPaintedPromise=(0,h.createDeferredPromise)()),this._chartPaintedPromise.promise):Promise.resolve()}setDataWindowWidget(e){this._dataWindowWidget=e} -removeDataWindowWidget(){this._dataWindowWidget=null}showSelectedSourcesProperties(e){const t=(0,r.ensureNotNull)(this._model).selection().dataSources();if(1===t.length)this.showSourceProperties(t[0],e);else{const i=t.filter(L.isLineTool);i.length>0&&this.showChartPropertiesForSources({sources:i,tabName:e})}}connect(){this._chartSession.isConnected().subscribe(this._onChartSessionIsConnectedChanged),this._chartSession.criticalError().subscribe(this,this._onChartSessionCriticalError),this._chartSession.connect(this._onData.bind(this))}finishInitWithoutConnect(){this._chartSession.disable(),this._init(),this._chartWidgetInitialized.fire()}reconnect(){this._chartSession.disconnect(),this._chartSession.connect()}update(){if(this.hasModel()){for(const e of this._paneWidgets)e.update();this._timeAxisWidget&&this._timeAxisWidget.update()}}setPriceAxisHovered(e,t){t?this._hoveredPriceAxes.add(e):this._hoveredPriceAxes.delete(e),this._anyAxisHovered.setValue(this._hoveredPriceAxes.size>0)}anyPriceAxisHovered(){return this._anyAxisHovered.readonly()}_insertStudy(e,t,i,s){const n=(0,r.ensureNotNull)(this._model).createStudyInserter(e,t,i);n.setForceOverlay("java"===e.type&&"Volume@tv-basicstudies"===e.studyId&&Ve.enabled("volume_force_overlay"));const o=n.insert(((e,i,r)=>new Promise(((n,o)=>{var a;this.selectPointMode().value()!==G.SelectPointMode.None&&this.cancelRequestSelectPoint(),s?n(s(e,i,r)):!function(e){return Oi.includes(e.id)}(r)?(null!=(a=i)?a:[]).some((e=>e.confirm))?((0,_e.trackEvent)("GUI","Confirmation dialogs","Inputs confirmation dialog"),Ai(this,r,n,o)):n({inputs:{},parentSources:t}):((0,_e.trackEvent)("GUI","Confirmation dialogs","Symbol confirmation dialog"),Ai(this,r,n,o,"symbol"))}))));return o.then((()=>{(0,G.hideAllIndicators)().value()&&(0,N.toggleHideMode)()})).catch((e=>{})),o}async _showChartProperties(e,t,i,s){if(!this._model)return null;t&&((0,l.setValue)("properties_dialog.active_tab.chart",t),i.tabName=t);const r=await _i(e,this._model,i,this._options.chartWidgetCollection,s);return(null==r?void 0:r.visible().value())?r:null}_createLineToolsSynchronizerIfNeeded(){0}_updateThemedColor(){const e=this.model().model(),t=e.backgroundColorAtYPercentFromTop(.5);let i=e.backgroundTopColor().value(),s=e.backgroundColor().value();const r=(0,ge.isColorDark)(t),n=(0,ge.isColorDark)(i),o=(0,ge.isColorDark)(s);this.widget().classList.toggle("chart-widget--themed-dark",r),this.widget().classList.toggle("chart-widget--themed-light",!r),this.widget().classList.toggle("chart-widget__top--themed-dark",n),this.widget().classList.toggle("chart-widget__top--themed-light",!n),this.widget().classList.toggle("chart-widget__bottom--themed-dark",o),this.widget().classList.toggle("chart-widget__bottom--themed-light",!o),this._backgroundTopTheme.setValue(n?"dark":"light"),this._backgroundBasedTheme.setValue(r?"dark":"light"),this._backgroundBottomTheme.setValue(o?"dark":"light"),i===s&&(0,Z.isStdThemedDefaultValue)("chartProperties.paneProperties.background",i,this._backgroundBasedTheme.value())&&(i=null,s=null) +removeDataWindowWidget(){this._dataWindowWidget=null}showSelectedSourcesProperties(e){const t=(0,r.ensureNotNull)(this._model).selection().dataSources();if(1===t.length)this.showSourceProperties(t[0],e);else{const i=t.filter(L.isLineTool);i.length>0&&this.showChartPropertiesForSources({sources:i,tabName:e})}}connect(){this._chartSession.isConnected().subscribe(this._onChartSessionIsConnectedChanged),this._chartSession.criticalError().subscribe(this,this._onChartSessionCriticalError),this._chartSession.connect(this._onData.bind(this))}finishInitWithoutConnect(){this._chartSession.disable(),this._init(),this._chartWidgetInitialized.fire()}reconnect(){this._chartSession.disconnect(),this._chartSession.connect()}update(){if(this.hasModel()){for(const e of this._paneWidgets)e.update();this._timeAxisWidget&&this._timeAxisWidget.update()}}setPriceAxisHovered(e,t){t?this._hoveredPriceAxes.add(e):this._hoveredPriceAxes.delete(e),this._anyAxisHovered.setValue(this._hoveredPriceAxes.size>0)}anyPriceAxisHovered(){return this._anyAxisHovered.readonly()}_insertStudy(e,t,i,s){const n=(0,r.ensureNotNull)(this._model).createStudyInserter(e,t,i);n.setForceOverlay("java"===e.type&&"Volume@tv-basicstudies"===e.studyId&&Ve.enabled("volume_force_overlay"));const o=n.insert(((e,i,r)=>new Promise(((n,o)=>{var a;this.selectPointMode().value()!==G.SelectPointMode.None&&this.cancelRequestSelectPoint(),s?n(s(e,i,r)):!function(e){return Oi.includes(e.id)}(r)?(null!=(a=i)?a:[]).some((e=>e.confirm))?((0,_e.trackEvent)("GUI","Confirmation dialogs","Inputs confirmation dialog"),Ai(this,r,n,o)):n({inputs:{},parentSources:t}):((0,_e.trackEvent)("GUI","Confirmation dialogs","Symbol confirmation dialog"),Ai(this,r,n,o,"symbol"))}))));return o.then((()=>{(0,G.hideAllIndicators)().value()&&(0,N.toggleHideMode)()})).catch((e=>{})),o}async _showChartProperties(e,t,i,s){if(!this._model)return null;t&&((0,l.setValue)("properties_dialog.active_tab.chart",t),i.tabName=t);const r=await _i(e,this._model,i,this._options.chartWidgetCollection,s);return(null==r?void 0:r.visible().value())?r:null}_createLineToolsSynchronizerIfNeeded(){0}_updateThemedColor(){const e=this.model().model(),t=e.backgroundColorAtYPercentFromTop(.5);let i=e.backgroundTopColor().value(),s=e.backgroundColor().value();const r=(0,ge.isColorDark)(t),n=(0,ge.isColorDark)(i),o=(0,ge.isColorDark)(s);this.widget().classList.toggle("chart-widget--themed-dark",r),this.widget().classList.toggle("chart-widget--themed-light",!r),this.widget().classList.toggle("chart-widget__top--themed-dark",n),this.widget().classList.toggle("chart-widget__top--themed-light",!n),this.widget().classList.toggle("chart-widget__bottom--themed-dark",o),this.widget().classList.toggle("chart-widget__bottom--themed-light",!o),this._backgroundTopTheme.setValue(n?"dark":"light"),this._backgroundBasedTheme.setValue(r?"dark":"light"),this._backgroundBottomTheme.setValue(o?"dark":"light"),i===s&&(0,X.isStdThemedDefaultValue)("chartProperties.paneProperties.background",i,this._backgroundBasedTheme.value())&&(i=null,s=null) ;for(const e of this._paneWidgets)e.updateThemedColors({topColor:i,bottomColor:s})}_isLineToolModeExceptBrush(){const e=G.tool.value();return(0,L.isLineToolName)(e)&&!(0,L.isLineDrawnWithPressedButton)(e)&&this.selectPointMode().value()===G.SelectPointMode.None}_cancelCreatingLine(){const e=(0,r.ensureNotNull)(this._model).model(),t=e.lineBeingCreated();if(null!==t){const i=(0,r.ensureNotNull)(e.paneForSource(t));(0,r.ensureNotNull)(this.paneByState(i)).cancelCreatingLineTool(),t.toolname===G.tool.value()&&(0,G.resetToCursor)()}const i=e.crossHairSource().measurePane().value();if(null!==i){(0,r.ensureNotNull)(this.paneByState(i)).cancelMeasuring()}}_adjustSize(e){var t;let i=0;const r=null===this._model?null:this._model.model().priceScaleSlotsCount(),n=new Uint32Array(null===r?0:r.left),o=new Uint32Array(null===r?0:r.right),a=(0,Y.getCanvasDevicePixelRatio)(document.body),l=(e,t)=>e+t,c=(e,t)=>{t.forEach(((t,i)=>{e[i]=Math.max(e[i],t)}))},h=this._width(),u=this._height(),p=this._paneSeparators.length,_=this.isMaximizedPane()?0:Ut.height()*p,m=null!==this._timeAxisWidget?this._timeAxisWidget.optimalHeight():0;let g=u-m>=61?m:0;g%2&&(g+=1);const f=Math.max(1,Math.floor((u-_-g)/this._paneWidgets.length));let v=0,S=null;for(const e of this._paneWidgets)if(!this._maximizedPaneWidget||this._maximizedPaneWidget===e){e.leftPriceAxisesContainer().updateCurrencyLabels();const t=e.leftPriceAxisesContainer().optimalWidths();e.rightPriceAxisesContainer().updateCurrencyLabels();const s=e.rightPriceAxisesContainer().optimalWidths();c(n,t),c(o,s),this._maximizedPaneWidget!==e&&e.state().collapsed().value()?v+=Math.min(f,e.collapsedHeight()):(i+=e.stretchFactor(),S=e)}let y=n.reduce(l,0),b=o.reduce(l,0),w=Math.max(h-y-b,0);if(w<=102){y=0,b=0,w=h;for(let e=0;e0){const e=new Ut(this,r-1,r);this._paneSeparators.push(e),this._timeAxisWidget?this._elMainTable.insertBefore(e.getElement(),this._timeAxisWidget.getElement()):this._elMainTable.appendChild(e.getElement())}this._timeAxisWidget?this._elMainTable.insertBefore(i.getElement(),this._timeAxisWidget.getElement()):this._elMainTable.appendChild(i.getElement())}for(let i=0;iD.InvalidationLevel.Cursor&&(null===(i=this._timeAxisWidget)||void 0===i||i.update(),this._applyTimeScaleInvalidations(e,t)),this.paint(e),this._dataWindowWidget){const t=e.maxPaneInvalidation();t===D.InvalidationLevel.Full?this._dataWindowWidget.fullUpdate():t>D.InvalidationLevel.None&&this._dataWindowWidget.update()}for(let t=0;t{i.appendChild(s),s.addEventListener("mousedown",this._beginRequestActive.bind(this)),s.addEventListener("mouseup",this._endRequestActive.bind(this)),s.addEventListener("touchstart",this._beginRequestActive.bind(this)),s.addEventListener("touchmove",this._endRequestActive.bind(this)),s.addEventListener("touchend",this._endRequestActive.bind(this)), s.addEventListener("click",this._requestActive.bind(this))})),this._inited&&(null!==this._timeAxisWidget&&(this._timeAxisWidget.destroy(),this._timeAxisWidget=null),this._paneWidgets.forEach((e=>{e.destroy()})),this._paneWidgets.length=0,this._paneSeparators.forEach((e=>{e.destroy()})),this._paneSeparators.length=0,this._update(D.InvalidationMask.full(),performance.now()))}_init(){this.hasModel()&&this.model().mainSeries().clearData(),this._initColors(),this._makeDefaultGui();this._makeDefaultModel(),(()=>{this._checkObsoleteTimezone(),this._chartSession&&this._chartSession.connected()&&this.model().model().restart(),this._content&&(this._initColors(),this._updateGui(),this.update()),this._resizeHandler=()=>{this._invalidationHandler(D.InvalidationMask.full())},this._resizeHandler(),(0,r.ensureNotNull)(this._parent).appendChild((0,r.ensureNotNull)(this._mainDiv)),this._spinner&&(this._spinner.stop(),this._spinner=null),this._keydownEventListener=e=>{27===e.which&&e.preventDefault()},window.addEventListener("keydown:chart_"+this._id,this._keydownEventListener),this._activateSymbolSearchHotkeys(),this.model().timeScale().onScroll().subscribe(this,(()=>this._onScroll.fire())),this._inited=!0})()}_makeDefaultModel(){let e;if(this._content&&this._content.timeScale.points){const t=this._content.timeScale.points.items[0];e={startDate:t}}if(!(0,r.ensureNotNull)(this._metaInfoRepository).getInternalMetaInfoArray())throw new Error("Cannot create chart model: studies metainfo is absent");const t=()=>{var t,i;const s={readOnly:this.readOnly(),isSnapshot:!!this._containsData,...a(this._options,["timeScale","crossHair","chartEventsEnabled","esdEnabled","newsEnabled","continuousContractSwitchesEnabled","futuresContractExpirationEnabled","countdownEnabled","lastPriceAnimationEnabled","currencyConversionEnabled","unitConversionEnabled","watermarkEnabled","shiftVisibleRangeOnNewBar","hideIdeas","onWidget"])};let n;n=this._collapsed;const o=function(e,t,i,s,r,n,o,a,l,c,h){const d=new b.ChartUndoModel(e,t,i,s,r,n,o,a,l,c,h);return d.model().fullUpdate(),d}(this._chartSession,this._invalidationHandler,this.properties(),e,(0,r.ensureNotNull)(this._metaInfoRepository),this,this._options.undoHistory,this._options.barsMarksContainersFactory,s,n,null!==(i=null===(t=this._saveChartService)||void 0===t?void 0:t.autoSaveEnabled())&&void 0!==i?i:new(ot())(!0));return this._createSessions(o.model()),o};(0,Ve.enabled)("lean_chart_load")?this._model=this._model||t():this._model=t(),this._model.model().setChartSaveTime(1e3*this._chartWidgetCollection.metaInfo.lastModified.value()),this._createVolumeIfNeeded();if(this._content){let e={};Di&&this._initialLoading&&(e={symbol:this._defSymbol,interval:this._defInterval,style:this._defStyle}),this.restoreState(this._content,this._containsData,e),Di&&this._defSymbol&&this.model().model().recalculatePriceRangeOnce()}else this._setActions();this._createLineToolsSynchronizerIfNeeded(),(()=>{const e=(0,r.ensureNotNull)(this._model);e.onTagsChanged().subscribe(this,(()=>this.onModelTagsChanged())), this._initBackgroundColor(),this._updateGui(),this._modelCreated.fire(e),this._tagsChanged.fire(),Ve.enabled("determine_first_data_request_size_using_visible_range")&&this._setFirstRequestNumbarsUsingTimeframeAndInterval(e);const t=e.mainSeries(),i=t.properties().childs();this._defTimeframe&&t.setDefaultTimeframe(this._defTimeframe),t.dataEvents().symbolNotPermitted().subscribe(null,(e=>t.setSymbolParams({symbol:e}))),i.style.unsubscribe(this,this._onChartStyleChanged),i.style.subscribe(this,this._onChartStyleChanged),t.dataEvents().completed().subscribe(this,(()=>this._addPerfMark("SeriesCompleted")),!0),t.dataEvents().barReceived().subscribe(this,(()=>this._addPerfMark("SeriesFirstDataReceived")),!0);this._options;t.dataEvents().chartTypeNotPermitted().subscribe(null,(()=>{t.setSymbolParams({interval:"D"})})),t.dataEvents().intradaySpreadNotPermitted().subscribe(null,(()=>{t.setSymbolParams({interval:"D"})})),t.dataEvents().customIntervalNotPermitted().subscribe(null,(i=>{const s=e.model().defaultResolutions(),r=s.find((e=>(0,oi.compareResolutions)(e,i)>=0)),n=null!=r?r:s[s.length-1];t.setSymbolParams({interval:n})})),t.dataEvents().intradayExchangeNotPermitted().subscribe(null,(()=>{t.setSymbolParams({interval:"D"})})),t.requestingStyleIsNotSupported.subscribe(null,(()=>{const i=t.interval(),s=e.model().defaultResolutions(),r=(0,ni.getLastUsedSingleValueBasedStyle)(),n=(0,oi.getResolutionByChartStyle)(r,i,s);t.setChartStyleWithIntervalIfNeeded(r,n)})),t.requestingStyleSupportRecovered.subscribe(null,(i=>{const s=t.interval(),r=e.model().defaultResolutions(),n=(0,oi.getResolutionByChartStyle)(i,s,r);t.setChartStyleWithIntervalIfNeeded(i,n)}))})()}_startSpinner(e){this._spinner||e&&(this._spinner=(new v).spin(e))}_handleLoginStateChanged(){0}_checkObsoleteTimezone(){const e=this.properties().childs().timezone.value();(0,mi.timezoneIsAvailable)(e)||this.properties().childs().timezone.setValue({UTC:"Etc/UTC",EST:"America/New_York",CST:"America/Chicago",PST:"America/Los_Angeles"}[e]||"exchange")}_initColors(){const e=this.properties().childs(),t=e.scalesProperties.childs();t.lineColor.listeners().subscribe(this,this._updateAndPaint),t.textColor.listeners().subscribe(this,this._updateAndPaint),e.paneProperties.childs().separatorColor.listeners().subscribe(this,this._setPaneSeparatorLineColor)}_setPaneSeparatorLineColor(){this._paneSeparators.forEach((e=>e.update())),this._updateAndPaint()}_updateAndPaint(){this.update(),this.paint()}_makeDefaultGui(){this._makeLoadingScreen(),this.hasModel()&&(this._makeTimeAxisWidget(),this._makePaneWidgetsAndSeparators()),this._adjustSize(),this._updateScalesActions(),(0,Y.disableSelection)(this._elMainTable),this.update(),this.paint()}_makeLoadingScreen(){if(Ve.enabled("lean_chart_load")){if(this.screen)return;this.screen=new Si(this,(0,r.ensureNotNull)(this._parent))}else this.screen=new Si(this,(0,r.ensureNotNull)(this._mainDiv))}_makeAvailableOnTVPopup(){throw new Error("Not implemented")}_activateSymbolSearchHotkeys(){this.readOnly()||this._options.hideSymbolSearch||(0, gi.activateKeyPressHandler)()}_makeTimeAxisWidget(){if(this._timeAxisWidget)return void this._timeAxisWidget.updatePriceAxisStubs();const e=this.model();this._timeAxisWidget=new Kt(this,this._options.timeScaleWidget,this._titlesProvider.bind(this),this._menuItemsProvider.bind(this),this._backgroundBasedTheme),this._elMainTable.appendChild(this._timeAxisWidget.getElement()),this._timeAxisWidget.updatePriceAxisStubs(),this._timeAxisWidget.onLabelHovered().subscribe(this,((t,i)=>{const s=this._maximizedPaneWidget?this._maximizedPaneWidget.state():e.paneForSource(e.mainSeries()),n=(0,r.ensureNotNull)(this.paneByState((0,r.ensureNotNull)(s))).highlightedPriceAxis(),o=n.value();(i||o.owner===t.owner)&&(n.setValue({owner:t.owner,axis:i?t.axis:null}),this.model().model().lightUpdate())}))}_titlesProvider(e,t){const i=this.model(),s=(0,r.ensureNotNull)(this._maximizedPaneWidget?this._maximizedPaneWidget.state():i.paneForSource(i.mainSeries())),n="right"===e?s.rightPriceScales():s.leftPriceScales();if(n.lengthe===i.mainSeries()||(0,k.isStudy)(e)));return o.reverse(),o=(0,yi.moveToHead)(o,i.mainSeries()),o.map((e=>e.title(!0,void 0,!1)))}_menuItemsProvider(e,t){const i=this.model(),s=(0,r.ensureNotNull)(this._maximizedPaneWidget?this._maximizedPaneWidget.state():i.paneForSource(i.mainSeries())),n="right"===e?s.visibleRightPriceScales():s.visibleLeftPriceScales();if(n.length{this._addPerfMark("RequestMetadataEnd"), -this._inited?this.model().model().setStudiesMetaData(e.getInternalMetaInfoArray(),e.getMigrations()):(this._init(),this._chartWidgetInitialized.fire(),Ve.enabled("charting_library_base")||Bi.logDebug("initialized"))}))}async _createControlBar(){const e=await Promise.all([i.e(7257),i.e(5916),i.e(2215),i.e(5093)]).then(i.bind(i,3791));this._controlBarNavigation=new e.ControlBarNavigation(this,(0,r.ensureNotNull)(this._mainDiv),this._options.controlBar),this._model&&this._adjustSize()}_subscribeToDrawingState(){if(this._options.readOnly)return;(0,G.init)();const e=(e,t)=>{const i=this._model;if(null===i)return;const s=i.model();e.model!==s&&(this._lineToolsSynchronizer?this._lineToolsSynchronizer.executeSyncedAction((()=>t(s,i))):t(s,i))};G.createdLineTool.subscribe(null,(t=>{e(t,((e,i)=>{const s=(0,r.ensureNotNull)(e.paneForSource(e.mainSeries()));let n,o=null;if(void 0===t.pointPositionPercents){if(o=Ni(e,t.model,t.point.timeStamp),null===o)return;n=t.point.price}else{const i=t.pointPositionPercents.x*e.timeScale().width(),s=e.mainSeries().priceScale(),r=t.pointPositionPercents.y*s.height(),a=e.mainSeries().firstValue();if(null===a)return;o=e.timeScale().coordinateToIndex(i),n=s.coordinateToPrice(r,a)}const a={index:(0,r.ensureNotNull)(o),price:n},l=i.createLineTool({pane:s,point:a,linetool:t.linetool,properties:t.properties,linkKey:t.linkKey,ownerSource:e.mainSeries(),disableSynchronization:!0,id:t.id});null!==l&&!Boolean(this.model().lineBeingCreated())&&t.finalState&&l.restoreExternalPoints(t.finalState,{indexesChanged:!0,pricesChanged:!0})}))})),G.continuedLineTool.subscribe(null,(t=>{e(t,((e,i)=>{var s;const r=Ni(e,t.model,t.point.timeStamp);if(null===r)return;const n={index:r,price:t.point.price},o=e.lineBeingCreated();if(null===o)return;i.continueExternalLine(n,null!==(s=t.envState)&&void 0!==s?s:void 0,!!t.finalState)&&t.finalState&&o.restoreExternalPoints(t.finalState,{indexesChanged:!0,pricesChanged:!0})}))})),G.cancelledLineTool.subscribe(null,(t=>{e(t,((e,t)=>{e.cancelCreatingLine()}))})),G.beenSetLineToolLastPoint.subscribe(null,(t=>{e(t,((e,i)=>{const s=e.lineBeingCreated();if(null===s||s.linkKey().value()!==t.linkKey)return;const r=Ni(e,t.model,t.point.timeStamp);if(null===r)return;const n={index:r,price:t.point.price};s.setLastPoint(n),s.updateAllViews((0,yt.sourceChangeEvent)(s.id())),e.lightUpdate()}))})),G.startedMovingLineTool.subscribe(null,(t=>{e(t,((e,i)=>{var s;const r=t.linkKeys.map(L.lineToolByLinkKey.bind(null,e)).filter(S.notNull);if(r.length){const i=Ni(e,t.model,t.point.timeStamp);if(null===i)return;const n={index:i,price:t.point.price},o=null!==(s=t.activeItem)&&void 0!==s?s:null,a=r[0].pointToScreenPoint(n);a&&e.startMovingSources(r,{logical:n,screen:a},o,t.pointPositionPercents,null===t.envState?void 0:t.envState,!0)}}))})),G.movedLineTool.subscribe(null,(t=>{e(t,((e,i)=>{var s;const r=e.sourcesBeingMoved().filter(L.isLineTool).filter((e=>(e=>t.linkKeys.some((t=>e.linkKey().value()===t)))(e)));if(!r.length)return;const n=Ni(e,t.model,t.point.timeStamp);if(null===n)return;const o={ +this._inited?this.model().model().setStudiesMetaData(e.getInternalMetaInfoArray(),e.getMigrations()):(this._init(),this._chartWidgetInitialized.fire(),Ve.enabled("charting_library_base")||Bi.logDebug("initialized"))}))}async _createControlBar(){const e=await Promise.all([i.e(7257),i.e(5916),i.e(8180),i.e(5093)]).then(i.bind(i,3791));this._controlBarNavigation=new e.ControlBarNavigation(this,(0,r.ensureNotNull)(this._mainDiv),this._options.controlBar),this._model&&this._adjustSize()}_subscribeToDrawingState(){if(this._options.readOnly)return;(0,G.init)();const e=(e,t)=>{const i=this._model;if(null===i)return;const s=i.model();e.model!==s&&(this._lineToolsSynchronizer?this._lineToolsSynchronizer.executeSyncedAction((()=>t(s,i))):t(s,i))};G.createdLineTool.subscribe(null,(t=>{e(t,((e,i)=>{const s=(0,r.ensureNotNull)(e.paneForSource(e.mainSeries()));let n,o=null;if(void 0===t.pointPositionPercents){if(o=Ni(e,t.model,t.point.timeStamp),null===o)return;n=t.point.price}else{const i=t.pointPositionPercents.x*e.timeScale().width(),s=e.mainSeries().priceScale(),r=t.pointPositionPercents.y*s.height(),a=e.mainSeries().firstValue();if(null===a)return;o=e.timeScale().coordinateToIndex(i),n=s.coordinateToPrice(r,a)}const a={index:(0,r.ensureNotNull)(o),price:n},l=i.createLineTool({pane:s,point:a,linetool:t.linetool,properties:t.properties,linkKey:t.linkKey,ownerSource:e.mainSeries(),disableSynchronization:!0,id:t.id});null!==l&&!Boolean(this.model().lineBeingCreated())&&t.finalState&&l.restoreExternalPoints(t.finalState,{indexesChanged:!0,pricesChanged:!0})}))})),G.continuedLineTool.subscribe(null,(t=>{e(t,((e,i)=>{var s;const r=Ni(e,t.model,t.point.timeStamp);if(null===r)return;const n={index:r,price:t.point.price},o=e.lineBeingCreated();if(null===o)return;i.continueExternalLine(n,null!==(s=t.envState)&&void 0!==s?s:void 0,!!t.finalState)&&t.finalState&&o.restoreExternalPoints(t.finalState,{indexesChanged:!0,pricesChanged:!0})}))})),G.cancelledLineTool.subscribe(null,(t=>{e(t,((e,t)=>{e.cancelCreatingLine()}))})),G.beenSetLineToolLastPoint.subscribe(null,(t=>{e(t,((e,i)=>{const s=e.lineBeingCreated();if(null===s||s.linkKey().value()!==t.linkKey)return;const r=Ni(e,t.model,t.point.timeStamp);if(null===r)return;const n={index:r,price:t.point.price};s.setLastPoint(n),s.updateAllViews((0,yt.sourceChangeEvent)(s.id())),e.lightUpdate()}))})),G.startedMovingLineTool.subscribe(null,(t=>{e(t,((e,i)=>{var s;const r=t.linkKeys.map(L.lineToolByLinkKey.bind(null,e)).filter(S.notNull);if(r.length){const i=Ni(e,t.model,t.point.timeStamp);if(null===i)return;const n={index:i,price:t.point.price},o=null!==(s=t.activeItem)&&void 0!==s?s:null,a=r[0].pointToScreenPoint(n);a&&e.startMovingSources(r,{logical:n,screen:a},o,t.pointPositionPercents,null===t.envState?void 0:t.envState,!0)}}))})),G.movedLineTool.subscribe(null,(t=>{e(t,((e,i)=>{var s;const r=e.sourcesBeingMoved().filter(L.isLineTool).filter((e=>(e=>t.linkKeys.some((t=>e.linkKey().value()===t)))(e)));if(!r.length)return;const n=Ni(e,t.model,t.point.timeStamp);if(null===n)return;const o={ index:n,price:t.point.price},a=r[0].pointToScreenPoint(o);a&&e.moveSources({logical:o,screen:a},t.pointPositionPercents,null!==(s=t.envState)&&void 0!==s?s:void 0,!0)}))})),G.finishedMovingLineTool.subscribe(null,(t=>{e(t,((e,i)=>{const s=e.sourcesBeingMoved().filter(L.isLineTool);if(0===s.length)return;s.forEach((i=>{const s=(e=>{for(let i=0;i{e(t,((e,i)=>{var s;const r=(0,L.lineToolByLinkKey)(e,t.linkKey);if(null!==r){const i=r.getPoint(t.pointIndex),n=i?i.index:Ni(e,t.model,t.point.timeStamp);if(null===n)return;if(r.isActualSymbol()&&r.isActualCurrency()&&r.isActualUnit()){const i={index:n,price:t.point.price};e.startChangingLinetool(r,i,t.pointIndex,null!==(s=t.envState)&&void 0!==s?s:void 0,!0)}}}))})),G.changedLineTool.subscribe(null,(t=>{e(t,((e,i)=>{const s=e.lineBeingEdited();if(null===s||s.linkKey().value()!==t.linkKey)return;let n=null;if(n=t.changes.indexesChanged?Ni(e,t.model,t.point.timeStamp):(0,r.ensureNotNull)(e.linePointBeingChanged()).index,null!==n&&s.isActualSymbol()&&s.isActualCurrency()&&s.isActualUnit()){const i={index:n,price:t.point.price};e.changeLinePoint(i,void 0,!0)}}))})),G.finishedChangingLineTool.subscribe(null,(t=>{e(t,((e,i)=>{const s=(0,L.lineToolByLinkKey)(e,t.linkKey);null!==s&&s.isActualSymbol()&&s.isActualCurrency()&&s.isActualUnit()&&null!==e.lineBeingEdited()&&e.endChangingLinetool(!!t.finalState,!0),null!==s&&t.finalState&&s.restoreExternalPoints(t.finalState,t.changes)}))})),G.removedLineTool.subscribe(null,(t=>{e(t,((e,i)=>{const{withUndo:s,unlink:r,linkKey:n}=t,o=(0,L.lineToolByLinkKey)(e,n);if(null!==o)r&&o.detachAlert(),s?i.removeSource(o,!1):e.removeSource(o);else if(this._lineToolsSynchronizer){const{sourceTitle:e,symbol:o,lineToolState:a}=t;i.removeUnloadedLineTool({lineToolsSynchronizer:this._lineToolsSynchronizer,state:a,unlink:r,sourceTitle:e,linkKey:n,symbol:o,withUndo:s})}}))})),G.finishedLineTool.subscribe(null,(t=>{e(t,((e,i)=>{const s=(0,L.lineToolByLinkKey)(e,t.linkKey);null!==s&&(0,dt.isLineToolFinishRequiredWhenCreatedByApi)(s.toolname)&&s.finish()}))})),G.changedLineStyle.subscribe(null,(t=>{e(t,((e,i)=>{const s=(0,L.lineToolByLinkKey)(e,t.linkKey);null!==s&&(s.restoreExternalState(t.state),s.propertiesChanged(!0),t.alertId&&s.syncAlert(t.alertId))}))})),G.restoredLineToolState.subscribe(null,(t=>{e(t,((e,i)=>{const s=(0,L.lineToolByLinkKey)(e,t.linkKey);if(null!==s){const i={...t.state};i.indexes=t.state.points.map((i=>({index:Ni(e,t.model,i.time_t),price:i.price}))),e.restoreLineToolState(s,i,!1)}}))})),G.restoredLineTool.subscribe(null,(t=>{e(t,((e,i)=>{e.restoreSource(t.state.restorePane,t.state.paneIndex,t.state.paneState,t.state.sourceState,null)}))})),G.copiedLineTool.subscribe(null,(t=>{ e(t,((e,i)=>{const s=(0,r.ensureNotNull)(e.paneForSource(e.mainSeries()));let n;const o={...t.state,intervalsVisibilities:(0,bi.mergeIntervalVisibilitiesDefaults)(t.state.intervalsVisibilities)},a=(0,L.createLineToolProperties)(t.linetool,o,e),l=e.dataSourceForId(t.id);if(l){if(!(0,L.isLineTool)(l))return void Bi.logError(`Error sync creating line tool. Object with id ${t.id} is already in use and it is not a line tool`);if(l.toolname!==t.linetool)return void Bi.logError(`Error sync creating line tool. Object with id ${t.id} is already in use and its type differs: ${l.toolname} and ${t.linetool}`)}if(l&&(l.linkKey().setValue(t.linkKey),l.share(t.sharingMode)),t.pointPositionPercents){const e={index:0,price:0};if(n=null!=l?l:i.createLineTool({pane:s,point:e,linetool:t.linetool,properties:a,linkKey:t.linkKey,disableSynchronization:!0,id:t.id}),null===n)return;n.restorePositionPercents((0,r.ensureDefined)(t.pointPositionPercents))}else{const o=t.points.map((i=>({index:(0,r.ensureNotNull)(Ni(e,t.model,i.timeStamp)),price:i.price}))),c=o[0];if(n=null!=l?l:i.createLineTool({pane:s,point:c,linetool:t.linetool,properties:a,linkKey:t.linkKey,sharingMode:t.sharingMode,disableSynchronization:!0,id:t.id}),null===n)return;if(e.lineBeingCreated())for(let e=1;e0){const i=Math.ceil(e.timeScale().width()/t.barCount);e.timeScale().setBarSpacing(i)}}}},46378:(e,t,i)=>{"use strict";i.r(t),i.d(t,{allInitialModelsCreated:()=>Xt,allInitialSymbolsResolved:()=>Kt,applyIndicatorToAllChartsImpl:()=>ct,applyIndicatorsToAllChartsImpl:()=>lt,applyLineToolUpdateNotificationImpl:()=>ft,applyThemeImpl:()=>Qt,chartsSymbolsImpl:()=>yt,checkProFeatureImpl:()=>Zt,computeContentBoxImpl:()=>Lt,copyScreenshotToClipboard:()=>Tt,createBroadcastChannel:()=>qt,createChartStorageSubscriptionsIfRequired:()=>bt,createClipboardHandler:()=>vt,createLeftBottomChartWidgetWV:()=>It,deserializedChartIds:()=>mt,destroyBroadcastChannel:()=>$t,downloadScreenshot:()=>Ct,generateNewChartId:()=>Nt,getAsyncStateForChartImpl:()=>pt,getClientSnapshot:()=>At,getSnapshot:()=>Mt,getStateForChartImpl:()=>ut,getVisuallyAdjacentDefImpl:()=>Vt,handleConnectionLimitReachedChanged:()=>li,handleDateRangeLockChange:()=>ni,handleDeviceConnectionClosed:()=>ci,handleInternalDateRangeLockChange:()=>ri,handleInternalIntervalLockChange:()=>ii,handleInternalSymbolLockChange:()=>ei,handleInternalTrackTimeLockChange:()=>oi,handleIntervalLockChange:()=>si,handleSymbolLockChange:()=>ti,handleTrackTimeLockChange:()=>ai,hideChartImpl:()=>Ht,isFirstChartInLayout:()=>_t,lineToolsAndGroupsDTOsImpl:()=>dt,removeChartWidgetSubscriptionsImpl:()=>zt,resetLineToolsInvalidatedImpl:()=>gt,setBrokerImpl:()=>St,setChartLayoutWithUndoImpl:()=>Jt,setLayoutImpl:()=>Ut,syncCrosshairImpl:()=>Gt,syncScrollImpl:()=>Yt,takeScreenshot:()=>wt,takeServerScreenshot:()=>Pt,updateLayoutImpl:()=>Bt,updateLayoutPartialImpl:()=>Dt});var s=i(50151),r=i(86441),n=i(98351),o=i(44352),a=i(47539),l=i(49483),c=i(2484);function h(e){const t={};return{promise:new Promise(((i,s)=>{e.subscribe(t,i,!0)})),destroy:()=>{e.unsubscribeAll(t)}}}i(90981);var d=i(71733);class u extends d.UndoCommand{constructor(e,t){super(null),this._chartModel=e,this._targetIndex=t}redo(){const e=this._chartModel.createPane(this._targetIndex,void 0,this._paneId);this._paneId=e.id()}undo(){const e=(0,s.ensureDefined)(this._paneId),t=this._chartModel.panes().find((t=>t.id()===e)) +Li.getPeriodsBetweenDates)(null!==(c=null===(l=e.symbolInfo)||void 0===l?void 0:l.session)&&void 0!==c?c:"24x7",null!==(d=null===(h=e.symbolInfo)||void 0===h?void 0:h.session_holidays)&&void 0!==d?d:"",null!==(p=null===(u=e.symbolInfo)||void 0===u?void 0:u.corrections)&&void 0!==p?p:"",t.letter(),t.multiplier(),1e3*e.timeFrame.from,1e3*e.timeFrame.to)+_,message:`based on time range: ${e.timeFrame.from} ... ${e.timeFrame.to}`,shouldAdjustBarSpacing:!0}}return{barCount:g}}({width:e.timeScale().width(),barSpacing:e.timeScale().barSpacing(),timeFrame:this.options().defTimeframe,interval:this.options().defInterval});if(Ve.enabled("charting_library_debug_mode")&&console.log(`Setting initial data request count to ${t.barCount} bars${t.message?` (${t.message})`:""}`),e.mainSeries().seriesSource().setInitialRequestOptions({count:t.barCount}),t.shouldAdjustBarSpacing&&"number"==typeof t.barCount&&t.barCount>0){const i=Math.ceil(e.timeScale().width()/t.barCount);e.timeScale().setBarSpacing(i)}}}},46378:(e,t,i)=>{"use strict";i.r(t),i.d(t,{allInitialModelsCreated:()=>Zt,allInitialSymbolsResolved:()=>Kt,applyIndicatorToAllChartsImpl:()=>ct,applyIndicatorsToAllChartsImpl:()=>lt,applyLineToolUpdateNotificationImpl:()=>ft,applyThemeImpl:()=>Qt,chartsSymbolsImpl:()=>yt,checkProFeatureImpl:()=>Xt,computeContentBoxImpl:()=>Lt,copyScreenshotToClipboard:()=>Tt,createBroadcastChannel:()=>qt,createChartStorageSubscriptionsIfRequired:()=>bt,createClipboardHandler:()=>vt,createLeftBottomChartWidgetWV:()=>It,deserializedChartIds:()=>mt,destroyBroadcastChannel:()=>$t,downloadScreenshot:()=>Ct,generateNewChartId:()=>Nt,getAsyncStateForChartImpl:()=>pt,getClientSnapshot:()=>At,getSnapshot:()=>Mt,getStateForChartImpl:()=>ut,getVisuallyAdjacentDefImpl:()=>Vt,handleConnectionLimitReachedChanged:()=>li,handleDateRangeLockChange:()=>ni,handleDeviceConnectionClosed:()=>ci,handleInternalDateRangeLockChange:()=>ri,handleInternalIntervalLockChange:()=>ii,handleInternalSymbolLockChange:()=>ei,handleInternalTrackTimeLockChange:()=>oi,handleIntervalLockChange:()=>si,handleSymbolLockChange:()=>ti,handleTrackTimeLockChange:()=>ai,hideChartImpl:()=>Ht,isFirstChartInLayout:()=>_t,lineToolsAndGroupsDTOsImpl:()=>dt,removeChartWidgetSubscriptionsImpl:()=>zt,resetLineToolsInvalidatedImpl:()=>gt,setBrokerImpl:()=>St,setChartLayoutWithUndoImpl:()=>Jt,setLayoutImpl:()=>Ut,syncCrosshairImpl:()=>Gt,syncScrollImpl:()=>Yt,takeScreenshot:()=>wt,takeServerScreenshot:()=>Pt,updateLayoutImpl:()=>Bt,updateLayoutPartialImpl:()=>Dt});var s=i(50151),r=i(86441),n=i(98351),o=i(44352),a=i(47539),l=i(49483),c=i(2484);function h(e){const t={};return{promise:new Promise(((i,s)=>{e.subscribe(t,i,!0)})),destroy:()=>{e.unsubscribeAll(t)}}}i(90981);var d=i(71733);class u extends d.UndoCommand{constructor(e,t){super(null),this._chartModel=e,this._targetIndex=t}redo(){const e=this._chartModel.createPane(this._targetIndex,void 0,this._paneId);this._paneId=e.id()}undo(){const e=(0,s.ensureDefined)(this._paneId),t=this._chartModel.panes().find((t=>t.id()===e)) ;void 0!==t&&this._chartModel.removePane(t)}createdPaneId(){return this._paneId}}class p extends d.UndoCommand{constructor(e,t,i,s){super(s),this._setter=e,this._oldValue=t,this._newValue=i}redo(){this._setter(this._newValue)}undo(){this._setter(this._oldValue)}}class _ extends p{constructor(e,t,i,s){super((e=>this._vwState.setValue(e)),t,i,s),this._vwState=e}}var m=i(10381),g=i(65446),f=i(93352);const v=(0,n.getLogger)("Clipboard");class S{constructor(e){this._e=e}write(e){return(0,g.writeImpl)(this._toRaw(e),this._e)}_toRaw(e){const t={files:[]};t.text=e.text,void 0!==e.app?t.html=this._serializeAppData(e.app,e.text):e.html&&(t.html=e.html);for(const i of e.files||[])t.files.push(i);return t}_serializeAppData(e,t){return`${t?(0,m.htmlEscape)(t.slice(0,256)):"📈"}`}}class y{constructor(e){this._e=e}async read(){this._e&&0===this._e.eventPhase&&(v.logWarn("Cannot use an already dispatched ClipboardEvent for reading"),this._e=null);const e=this._e?this._readUsingEvent(this._e):await this._readUsingApi();return this._fromRaw(e)}_readUsingEvent(e){const t=(0,s.ensure)(e.clipboardData);e.preventDefault();const i={files:[]};for(let e=0;e0&&(t.files=e.files),t}_parseAppData(e){if(-1===e.slice(0,1024).indexOf("data-tradingview-clip"))return;const t=(new DOMParser).parseFromString(e,"text/html").querySelector("[data-tradingview-clip]");return t?t.getAttribute("data-tradingview-clip")||"":void 0}_readBlobAsText(e){return new Promise(((t,i)=>{const s=new FileReader;s.onloadend=()=>{t(s.result)},s.onerror=()=>{i(s.error)},s.readAsText(e)}))}}var b=i(35749);function w(e){const t=e.target;return null!==t&&1===t.nodeType&&(0,b.isTextEditingField)(t)}function P(e){const t=e.target;if(null===t)return!1;const i=(t.ownerDocument||t).getSelection();return null!==i&&!i.isCollapsed}class C extends class{constructor(e){this._callbacks=Object.assign({},e),this._boundOnCopy=this._onCopyEv.bind(this),this._boundOnCut=this._onCutEv.bind(this),this._boundOnPaste=this._onPasteEv.bind(this)}listen(){document.addEventListener("copy",this._boundOnCopy),document.addEventListener("cut",this._boundOnCut), document.addEventListener("paste",this._boundOnPaste)}async peek(){if("granted"!==(await navigator.permissions.query({name:"clipboard-read"})).state)throw new Error("clipboard-read is not granted");return new y(null).read()}uiRequestCopy(e){this._callbacks.copyRequested&&this._callbacks.copyRequested(new S(null),e)}uiRequestCut(e){this._callbacks.cutRequested&&this._callbacks.cutRequested(new S(null),e)}uiRequestPaste(e){this._callbacks.pasteRequested&&this._callbacks.pasteRequested(new y(null),e)}destroy(){document.removeEventListener("copy",this._boundOnCopy),document.removeEventListener("cut",this._boundOnCut),document.removeEventListener("paste",this._boundOnPaste)}_onCopyEv(e){e.defaultPrevented||this._callbacks.copyRequested&&this._callbacks.copyRequested(new S(e))}_onCutEv(e){e.defaultPrevented||this._callbacks.cutRequested&&this._callbacks.cutRequested(new S(e))}_onPasteEv(e){e.defaultPrevented||this._callbacks.pasteRequested&&this._callbacks.pasteRequested(new y(e))}}{_onCopyEv(e){if(!w(e)&&!P(e))return super._onCopyEv(e)}_onCutEv(e){if(!w(e)&&!P(e))return super._onCutEv(e)}_onPasteEv(e){if(!w(e))return super._onPasteEv(e)}}const T=()=>i.e(4389).then(i.bind(i,33646));function x(e,t={}){return T().then((i=>i.copyToClipboardImageOfChart(e,t)))}function I(e,t={}){return T().then((i=>i.getImageOfChartSilently(e,t)))}var M=i(76422),A=i(84015),L=i(8840),k=i(57737),E=i(27714),D=i(24377),B=i(26843),V=i(93975),R=i(83499),N=i(17364),O=i(95242),F=i(10123),W=i(76351);const H=!c.enabled("widget_logo");function z(e,t=null,i=null){let s={};if("number"==typeof e)return{relativePositions:{[e]:{l:t,t:i}},nextElementLeft:e,nextElementTop:e};const[r,...n]=e;if("v"===r){let e=null;for(const r of n){const n=z(r,t,i);s={...s,...n.relativePositions},i=n.nextElementTop,e=n.nextElementLeft}t=e}if("h"===r){let e=null;for(const r of n){const n=z(r,t,i);s={...s,...n.relativePositions},t=n.nextElementLeft,e=n.nextElementTop}i=e}return{relativePositions:s,nextElementTop:i,nextElementLeft:t}}const U=function(e){const t={};for(const i of Object.keys(e)){const s=z(e[i]).relativePositions;t[i]=s}return t}(F);function j(e,t,i,s){let r=Math.round(10*s),n=Math.round(10*s);const o=i[e];if(null!==o.l){const e=j(o.l,t,i,s);r=e.x+e.width+Math.round(5*s)}if(null!==o.t){const e=j(o.t,t,i,s);n=e.y+e.height+Math.round(5*s)}const a=t[e];return{x:r,y:n,width:a.width,height:a.height}}function G(e,t,i){var s;const r=(new DOMParser).parseFromString(W,"image/svg+xml");null===(s=null==r?void 0:r.firstElementChild)||void 0===s||s.setAttribute("color",i);const n=URL.createObjectURL(new Blob([(new XMLSerializer).serializeToString(r)],{type:"image/svg+xml"}));return new Promise((i=>{const s=new Image;s.width=e,s.height=t,s.onload=()=>{i({image:s,width:e,height:t})},s.src=n}))}function q(e,t,i,s,r){e.save(),e.drawImage(s.image,t,i,s.width,s.height),e.textBaseline="bottom";const n=(t+s.width)/r+3,o=(i+s.height)/r;(0,R.drawScaled)(e,r,(()=>{e.fillText("TradingView",n,o)})),e.restore()}function $(e,t,i,s){return(0,R.drawScaled)(e,s,(()=>{e.fillText(i,t.x/s,t.y/s)})), -e.measureText(i).width*s}function Y(e,t,i,s,n,o){const a=n.map((e=>e.text)).join("");let l=i.x;const c=function(e,t,i,s){if(e.measureText(t).width*s<=i)return{text:t,elided:!1};const r=e.measureText("...").width*s,n=[];for(let e=0;ee.measureText(t.slice(0,o+1)).width*s+r>i));return{text:(t=t.slice(0,o)).trim(),elided:!0}}(e,a,s-l,t);if(c.elided&&!o)return null;const h=[];let d=0;for(const e of n){if(d+e.text.length>c.text.length)break;h.push(e.text),d+=e.text.length}const u=h.join("").trim().length;d=0;for(const s of n){if(d+s.text.length>u)break;s.color&&(e.save(),e.fillStyle=s.color),l+=$(e,new r.Point(l,i.y),s.text,t),s.color&&e.restore(),d+=s.text.length}return c.elided&&(l+=$(e,new r.Point(l,i.y),"...",t)),l}function K(e){return e.map((e=>({...e,title:""})))}function X(e,t){const i=[{text:e.trim()}];for(const e of t)e.visible&&(""!==i[i.length-1].text&&i.push({text:" "}),e.title&&i.push({text:e.title}),i.push({text:e.value,color:e.color}));return i}class Z{constructor(e,t){this._logoTextColor=null,this._snapshotData=e,t=t||{},this._options={backgroundColor:L.themes[e.theme].getThemedColor("color-bg-primary"),borderColor:L.themes[e.theme].getThemedColor("color-border"),font:N.CHART_FONT_FAMILY,fontSize:12,legendMode:"vertical",hideResolution:!1,showHeaderPublishedBy:!1,showHeaderMainSymbol:!1,...t};const i=U[e.layout],s=e.charts.map((e=>function(e){const t=e.panes[0],i=t.canvas.width+t.leftAxis.canvas.width+t.rightAxis.canvas.width;let s=0;for(const t of e.panes)s+=t.canvas.height;return void 0!==e.timeAxis&&0!==e.timeAxis.contentHeight&&(s+=e.timeAxis.canvas.height),(0,E.size)({width:i,height:s})}(e)));if(this._pixelRatio=e.hidpiRatio,this._chartsGeometry=e.charts.map(((e,t)=>j(t,s,i,this._pixelRatio))),!H){let i=e.theme;void 0!==t.backgroundColor&&(i="black"===(0,D.rgbToBlackWhiteString)((0,D.parseRgb)(t.backgroundColor),150)?B.StdTheme.Dark:B.StdTheme.Light),this._logoTextColor=L.themes[i].getThemedColor("color-text-primary")}this._headerDefaultTextColor=L.themes[e.theme].getThemedColor("color-text-primary")}async getImage(){const e=this._pixelRatio;let t=0,i=0,s=0;const n=this._headerItems();if(n.length>0){s=Math.ceil(1.4*this._options.fontSize*e)*n.length}i+=s;let o=0,a=0;for(const e of this._chartsGeometry)o=Math.max(o,e.x+e.width),a=Math.max(a,e.y+e.height);const l=i;t+=o,i+=a,t+=Math.round(10*e);const c=H?Math.round(10*e):Math.round(35*e),h=i;i+=c;const d=(0,R.createDisconnectedCanvas)(document,(0,E.size)({width:t,height:i}),1),u=(0,R.getContext2D)(d);u.font=(0,O.makeFont)(this._options.fontSize,this._options.font),u.textBaseline="top",u.fillStyle=this._options.backgroundColor,u.fillRect(0,0,t,i),n.length>0&&this._drawHeader(u,n,t,new r.Point(Math.round(10*e),Math.round(10*e)));for(let e=0;e0&&t.leftAxis.contentHeight>0&&(i.drawImage(t.leftAxis.canvas,s,n),s+=t.leftAxis.canvas.width),i.drawImage(t.canvas,s,n),s+=t.canvas.width,t.rightAxis.contentWidth>0&&t.rightAxis.contentHeight>0&&i.drawImage(t.rightAxis.canvas,s,n),"pane"===t.type&&(i.fillStyle=e.colors.text,this._drawLegend(t,i,new r.Point(o,l),a)),n+=t.canvas.height}if(void 0!==e.timeAxis&&0!==e.timeAxis.contentHeight){let t=0;e.timeAxis.lhsStub.contentWidth>0&&e.timeAxis.lhsStub.contentHeight>0&&(i.drawImage(e.timeAxis.lhsStub.canvas,t,n),t+=e.timeAxis.lhsStub.canvas.width),i.drawImage(e.timeAxis.canvas,t,n),t+=e.timeAxis.canvas.width,e.timeAxis.rhsStub.contentWidth>0&&e.timeAxis.rhsStub.contentHeight>0&&i.drawImage(e.timeAxis.rhsStub.canvas,t,n)}i.strokeStyle=this._options.borderColor,i.strokeRect(0,0,t.width,t.height),i.restore()}_headerItems(){var e,t,i,s;const r=[];if(this._options.showHeaderPublishedBy&&this._snapshotData.publishedBy)for(const e of this._snapshotData.publishedBy)r.push([{text:e}]);if(this._options.showHeaderMainSymbol){const n=this._snapshotData.charts[0],o=`${null===(e=n.meta)||void 0===e?void 0:e.symbol}, ${null===(t=n.meta)||void 0===t?void 0:t.resolution}`;r.push(X(o,null!==(s=null===(i=n.meta)||void 0===i?void 0:i.values)&&void 0!==s?s:[]))}return r}_drawHeader(e,t,i,s){e.save(),e.fillStyle=this._headerDefaultTextColor;const n=Math.ceil(1.4*this._options.fontSize*this._pixelRatio);t.forEach(((t,o)=>{Y(e,this._pixelRatio,new r.Point(s.x,s.y+n*o),i,t,!0)})),e.restore()}_drawLegend(e,t,i,n){let o=!0;const a=Math.ceil(1.4*this._options.fontSize*this._pixelRatio);let l=i.x,c=i.y;if(e.mainSeriesText&&c+ae.text)).join("");let l=i.x;const c=function(e,t,i,s){if(e.measureText(t).width*s<=i)return{text:t,elided:!1};const r=e.measureText("...").width*s,n=[];for(let e=0;ee.measureText(t.slice(0,o+1)).width*s+r>i));return{text:(t=t.slice(0,o)).trim(),elided:!0}}(e,a,s-l,t);if(c.elided&&!o)return null;const h=[];let d=0;for(const e of n){if(d+e.text.length>c.text.length)break;h.push(e.text),d+=e.text.length}const u=h.join("").trim().length;d=0;for(const s of n){if(d+s.text.length>u)break;s.color&&(e.save(),e.fillStyle=s.color),l+=$(e,new r.Point(l,i.y),s.text,t),s.color&&e.restore(),d+=s.text.length}return c.elided&&(l+=$(e,new r.Point(l,i.y),"...",t)),l}function K(e){return e.map((e=>({...e,title:""})))}function Z(e,t){const i=[{text:e.trim()}];for(const e of t)e.visible&&(""!==i[i.length-1].text&&i.push({text:" "}),e.title&&i.push({text:e.title}),i.push({text:e.value,color:e.color}));return i}class X{constructor(e,t){this._logoTextColor=null,this._snapshotData=e,t=t||{},this._options={backgroundColor:L.themes[e.theme].getThemedColor("color-bg-primary"),borderColor:L.themes[e.theme].getThemedColor("color-border"),font:N.CHART_FONT_FAMILY,fontSize:12,legendMode:"vertical",hideResolution:!1,showHeaderPublishedBy:!1,showHeaderMainSymbol:!1,...t};const i=U[e.layout],s=e.charts.map((e=>function(e){const t=e.panes[0],i=t.canvas.width+t.leftAxis.canvas.width+t.rightAxis.canvas.width;let s=0;for(const t of e.panes)s+=t.canvas.height;return void 0!==e.timeAxis&&0!==e.timeAxis.contentHeight&&(s+=e.timeAxis.canvas.height),(0,E.size)({width:i,height:s})}(e)));if(this._pixelRatio=e.hidpiRatio,this._chartsGeometry=e.charts.map(((e,t)=>j(t,s,i,this._pixelRatio))),!H){let i=e.theme;void 0!==t.backgroundColor&&(i="black"===(0,D.rgbToBlackWhiteString)((0,D.parseRgb)(t.backgroundColor),150)?B.StdTheme.Dark:B.StdTheme.Light),this._logoTextColor=L.themes[i].getThemedColor("color-text-primary")}this._headerDefaultTextColor=L.themes[e.theme].getThemedColor("color-text-primary")}async getImage(){const e=this._pixelRatio;let t=0,i=0,s=0;const n=this._headerItems();if(n.length>0){s=Math.ceil(1.4*this._options.fontSize*e)*n.length}i+=s;let o=0,a=0;for(const e of this._chartsGeometry)o=Math.max(o,e.x+e.width),a=Math.max(a,e.y+e.height);const l=i;t+=o,i+=a,t+=Math.round(10*e);const c=H?Math.round(10*e):Math.round(35*e),h=i;i+=c;const d=(0,R.createDisconnectedCanvas)(document,(0,E.size)({width:t,height:i}),1),u=(0,R.getContext2D)(d);u.font=(0,O.makeFont)(this._options.fontSize,this._options.font),u.textBaseline="top",u.fillStyle=this._options.backgroundColor,u.fillRect(0,0,t,i),n.length>0&&this._drawHeader(u,n,t,new r.Point(Math.round(10*e),Math.round(10*e)));for(let e=0;e0&&t.leftAxis.contentHeight>0&&(i.drawImage(t.leftAxis.canvas,s,n),s+=t.leftAxis.canvas.width),i.drawImage(t.canvas,s,n),s+=t.canvas.width,t.rightAxis.contentWidth>0&&t.rightAxis.contentHeight>0&&i.drawImage(t.rightAxis.canvas,s,n),"pane"===t.type&&(i.fillStyle=e.colors.text,this._drawLegend(t,i,new r.Point(o,l),a)),n+=t.canvas.height}if(void 0!==e.timeAxis&&0!==e.timeAxis.contentHeight){let t=0;e.timeAxis.lhsStub.contentWidth>0&&e.timeAxis.lhsStub.contentHeight>0&&(i.drawImage(e.timeAxis.lhsStub.canvas,t,n),t+=e.timeAxis.lhsStub.canvas.width),i.drawImage(e.timeAxis.canvas,t,n),t+=e.timeAxis.canvas.width,e.timeAxis.rhsStub.contentWidth>0&&e.timeAxis.rhsStub.contentHeight>0&&i.drawImage(e.timeAxis.rhsStub.canvas,t,n)}i.strokeStyle=this._options.borderColor,i.strokeRect(0,0,t.width,t.height),i.restore()}_headerItems(){var e,t,i,s;const r=[];if(this._options.showHeaderPublishedBy&&this._snapshotData.publishedBy)for(const e of this._snapshotData.publishedBy)r.push([{text:e}]);if(this._options.showHeaderMainSymbol){const n=this._snapshotData.charts[0],o=`${null===(e=n.meta)||void 0===e?void 0:e.symbol}, ${null===(t=n.meta)||void 0===t?void 0:t.resolution}`;r.push(Z(o,null!==(s=null===(i=n.meta)||void 0===i?void 0:i.values)&&void 0!==s?s:[]))}return r}_drawHeader(e,t,i,s){e.save(),e.fillStyle=this._headerDefaultTextColor;const n=Math.ceil(1.4*this._options.fontSize*this._pixelRatio);t.forEach(((t,o)=>{Y(e,this._pixelRatio,new r.Point(s.x,s.y+n*o),i,t,!0)})),e.restore()}_drawLegend(e,t,i,n){let o=!0;const a=Math.ceil(1.4*this._options.fontSize*this._pixelRatio);let l=i.x,c=i.y;if(e.mainSeriesText&&c+a{e.fillText(r,0,0)}))}_fillRadius(e){const t=this._data.style,i=Math.max(1,Math.floor(e));let s=Math.round(t.lollipop.width*e);return s%2!=i%2&&(s+=1),s/2}_drawBorderLine(e,t,i,s){const r=this._data.style;e.strokeStyle=r.lollipop.strokeStyle,e.lineWidth=i,(0,me.setLineStyle)(e,_e.LINESTYLE_SOLID),(0,me.createCircle)(e,t.x,t.y,s),e.stroke()}_drawFilledCircle(e,t,i,s){e.fillStyle=s,(0,me.createCircle)(e,t.x,t.y,i),e.fill()}}var ve=i(14888);class Se extends fe{_drawLollipop(e,t,i){var s;if(!this._imageLoaded())return void super._drawLollipop(e,t,i);const r=this._data.style,n=i.pixelRatio,o=this._fillRadius(n);let a=Math.round(r.lollipop.lineWidth*n),l=o-Math.round(1*n+a/2);if(r.lollipop.fillCircle&&(r.lollipop.backgroundColor&&this._drawFilledCircle(e,t,o,r.lollipop.backgroundColor),r.lollipop.fillStyle&&this._drawFilledCircle(e,t,l,r.lollipop.fillStyle)),null===(s=this._data.style.lollipop.image)||void 0===s?void 0:s.imageElement){const i=o-Math.round(1*n+2*a),s=2*i;e.save(),e.imageSmoothingEnabled=!0,e.imageSmoothingQuality="high",(0,me.createCircle)(e,t.x,t.y,i),e.clip(),e.drawImage(this._data.style.lollipop.image.imageElement,t.x-i,t.y-i,s,s),e.restore()}"active"===this._data.status&&(l-=a/2,a*=1.5),this._drawBorderLine(e,t,a,l)}_drawLabel(e,t,i){this._imageLoaded()&&!this._data.style.lollipop.text.showWhenImageLoaded||super._drawLabel(e,t,i)}_imageLoaded(){ return Boolean(this._data.style.lollipop.image&&this._data.style.lollipop.image.imageElement&&this._data.style.lollipop.image.imageElement.complete&&this._data.style.lollipop.image.imageElement.naturalWidth)}}const ye={fillPath:new Path2D("M8.961.92a3 3 0 0 1 3.078 0l7.5 4.48A3 3 0 0 1 21 7.975V20a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V7.975A3 3 0 0 1 1.461 5.4l7.5-4.48z"),strokePath:new Path2D("M9.867 2.742c.39-.23.875-.23 1.266 0l7.5 4.406c.382.225.617.635.617 1.078V20c0 .69-.56 1.25-1.25 1.25H3c-.69 0-1.25-.56-1.25-1.25V8.226c0-.443.235-.853.617-1.078l7.5-4.406z")},be={fillPath:new Path2D("M8.961 22.08a3 3 0 0 0 3.078 0l7.5-4.48A3 3 0 0 0 21 15.025V3a3 3 0 0 0-3-3H3a3 3 0 0 0-3 3v12.025A3 3 0 0 0 1.461 17.6l7.5 4.48z"),strokePath:new Path2D("M9.866 20.257c.391.23.877.23 1.268 0l7.5-4.414a1.25 1.25 0 0 0 .616-1.078V3c0-.69-.56-1.25-1.25-1.25H3c-.69 0-1.25.56-1.25 1.25v11.765c0 .443.234.853.616 1.078l7.5 4.414z")},we={fillPath:new Path2D("M3 0h15c1.662 0 3 1.338 3 3v15c0 1.662-1.338 3-3 3H3c-1.662 0-3-1.338-3-3V3c0-1.662 1.338-3 3-3z"),strokePath:new Path2D("M3 1.75h15c.693 0 1.25.557 1.25 1.25v15c0 .693-.557 1.25-1.25 1.25H3c-.692 0-1.25-.558-1.25-1.25V3c0-.692.558-1.25 1.25-1.25z")};function Pe(e,t,i,s,r){const n=i.pixelRatio;e.save(),e.translate(t.x-s.lollipop.width*n/2,t.y-s.lollipop.height*n/2),e.scale(n,n),s.lollipop.fillCircle&&s.lollipop.backgroundColor&&(e.fillStyle=s.lollipop.backgroundColor,e.fill(r.fillPath)),e.strokeStyle=s.lollipop.strokeStyle,e.lineWidth=Math.round(s.lollipop.lineWidth*n)/n,(0,me.setLineStyle)(e,_e.LINESTYLE_SOLID),s.lollipop.fillCircle&&s.lollipop.fillStyle&&(e.fillStyle=s.lollipop.fillStyle,e.fill(r.strokePath)),e.stroke(r.strokePath),e.restore()}function Ce(e,t,i,s){Pe(e,t,i,s,ye)}function Te(e,t,i,s){Pe(e,t,i,s,be)}function xe(e,t,i,s){Pe(e,t,i,s,we)}class Ie extends fe{_drawLollipop(e,t,i){const s=this._data.style;switch(s.shape){case"earningUp":Ce(e,t,i,s);break;case"earningDown":Te(e,t,i,s);break;case"earning":xe(e,t,i,s);break;default:super._drawLollipop(e,t,i)}}}const Me={backgroundDark:(0,ce.getHexColorByName)("color-cold-gray-900"),backgroundLight:(0,ce.getHexColorByName)("color-white")};class Ae extends class{constructor(e,t,i){this._invalidated=!1,this._renderer=new he.CompositeRenderer,this._textWidthCache=new de.TextWidthCache,this._stylesCache=null,this._lollipops={},this._lollipopsCounter=0,this._lastClickedId=null,this.onPaneBgChange=()=>{this._recreateStyles(this._model)},this._lastClickedId=null,this._model=e,this._source=t,this._clickHandler=i,this._recreateStyles(e),e.backgroundColor().subscribe(this.onPaneBgChange),e.mainSeries().onSymbolIntervalChanged().subscribe(this,this._onSymbolOrIntervalChanged)}destroy(){this._model.backgroundColor().unsubscribe(this.onPaneBgChange),this._model.mainSeries().onSymbolIntervalChanged().unsubscribeAll(this)}processClickOutside(e){var t;if(null===this._lastClickedId||!e)return void this.clearLastClicked();let i=null;if(function(e){return void 0!==e.touches}(e)){if(1!==e.touches.length)return;{const t=(0, s.ensureNotNull)(e.target).getBoundingClientRect(),n=e.touches[0];i=new r.Point(n.clientX-t.left,n.clientY-t.top)}}else i=new r.Point(e.offsetX,e.offsetY);const n=this._renderer.hitTest(i,{physicalHeight:0,physicalWidth:0,pixelRatio:1,cssHeight:0,cssWidth:0});null!==n&&(null===(t=n.data())||void 0===t?void 0:t.activeItem)===(0,s.ensureDefined)(this._lollipops[this._lastClickedId]).itemIndex||this.clearLastClicked()}clearLastClicked(){const e=null!==this._lastClickedId&&this._lollipops[this._lastClickedId]||null;null!==e&&(e.active=!1),this._lastClickedId=null}getLastClickedLollipopId(){return this._lastClickedId}update(){this._invalidated=!0}afterUpdate(e,t,i,s){}getStyle(e,t){let i=t;if(e.stack&&(i+="_stack:"+e.stack),"active"===i)return this._activeStyle;if("hovered"===i)return this._hoveredStyle;if("default"===i)return this._defaultStyle;if(this._stylesCache||(this._stylesCache={}),!this._stylesCache[i]){const s=(0,ae.clone)("active"===t?this._activeStyle:"hovered"===t?this._hoveredStyle:this._defaultStyle);e.stack&&(s.lollipop.incHeight=25*e.stack),this._stylesCache[i]=s}return this._stylesCache[i]}hasTooltip(e){return!0}_getY(){let e=0;const t=this._model.panes();for(let i=t.length;i--;){const s=t[i];s.containsMainSeries()&&(e+=s.height())}return e}_showBarLine(e){return this.hasTooltip(e)&&(e.hovered||e.active)}_createRenderers(e,t){this._renderer.clear();const i=(0,E.size)({width:e,height:t});for(const e in this._lollipops)if(this._lollipops.hasOwnProperty(e)){const t=(0,s.ensureDefined)(this._lollipops[e]);if(t.visible){const e=this._getLollipopStatus(t),s=this.getStyle(t,e),n={id:t.id,centerPoint:new r.Point(t.basePoint.x,t.basePoint.y-s.lollipop.bottom-s.lollipop.height/2-(s.lollipop.incHeight||0)),style:s,status:e},o={activeItem:t.itemIndex,hideCrosshairLinesOnHover:!0,clickHandler:this._lollipopMouseClickHandler.bind(this,n,i),tapHandler:this._lollipopMouseClickHandler.bind(this,n,i)};if(this._renderer.append(this._createRendererForLollipop(n,o)),this._showBarLine(t)){const{strokeStyle:e,lineStyle:i,lineWidth:r}=s.barLine,n={color:e,linestyle:i,linewidth:r,x:t.basePoint.x,top:0,bottom:t.basePoint.y-s.lollipop.bottom-s.lollipop.height},o=new ue.VerticalLineRenderer;o.setData(n),this._renderer.insert(o,0)}}}}_recreateStyles(e){this._stylesCache=null}_createRendererForLollipop(e,t){return new fe(e,new ve.HitTestResult(ve.HitTestResult.CUSTOM,t),this._textWidthCache)}_onSymbolOrIntervalChanged(){this._lollipops={},this._lollipopsCounter=0,this._renderer.clear(),this.clearLastClicked()}_lollipopMouseClickHandler(e,t,i){i.preventDefault();const n=e.id;if(this._lastClickedId=this._lastClickedId===n?null:n,null===this._lastClickedId)return;const o={target:i.target,targetSize:t,point:new r.Point(e.centerPoint.x,e.centerPoint.y-e.style.lollipop.height/2-8),marginTop:15};this._clickHandler(o,(()=>{const e=(0,s.ensureDefined)(this._lollipops[n]);return this._createTooltipContent(e)}))}_getLollipopStatus(e){return e.active?"active":e.hovered?"hovered":"default"}}{constructor(e,t,i){super(e,t,i),this.stylesCache={}, this.templatesCache={},this._itemIndexToId=new Map,this.source=t}clearCaches(){this.clearLastClicked(),this._lollipops={},this._lollipopsCounter=0}update(){this._invalidated=!0}renderer(e,t){return this._invalidated&&(this._createLollipops(t,e),this._invalidated=!1),this._renderer}getStyle(e){const t=e.active?"active":e.hovered?"hovered":"default";return this._generateStyle(t,e)}hasTooltip(e){return Boolean(e.items&&e.items.length)}_createTooltipContent(e){const t=e.items;return t?[{type:"common",subTitle:Array.isArray(t)?t.map((e=>({value:e}))):[{value:t}],style:{color:e.color}}]:null}_createRendererForLollipop(e,t){return new(e.style.lollipop.image?Se:Ie)(e,new ve.HitTestResult(ve.HitTestResult.CUSTOM,t),this._textWidthCache)}_lollipopMouseClickHandler(e,t,i){super._lollipopMouseClickHandler(e,t,i),(0,M.emit)("onTimescaleMarkClick",e.id)}_createLollipops(e,t){const i=this._model.timeScale(),s=super._getY(),n=this._model.lastHittestData(),o=this._model.hoveredSource(),a=this.source.marks(),l=new Map;Object.keys(a).forEach((e=>{var t;const c=a[e],h=c.id,d=c.index;if(null!=d){const e=h===this.getLastClickedLollipopId(),a=this._lollipops[h],u=void 0!==a?a.itemIndex:this._lollipopsCounter++;this._itemIndexToId.has(u)||this._itemIndexToId.set(u,h);const p=o===this.source&&null!==n&&n.activeItem===u,_=(null!==(t=l.get(d))&&void 0!==t?t:-1)+1;l.set(d,_),this._lollipops[h]={id:h,itemIndex:u,basePoint:new r.Point(i.indexToCoordinate(d)+1,s),hovered:p,active:e,label:c.label,color:c.color,items:c.tooltip,visible:!0,stack:_,shape:c.shape,image:this._getImageForUrl(c.imageUrl),showLabelWhenImageLoaded:c.showLabelWhenImageLoaded,textColor:c.labelFontColor}}})),super._createRenderers(e,t)}_getImageForUrl(e){if(e)return this.source.getImageElement(e)}_generateStyle(e,t){const{color:i,label:s,stack:r,shape:n,image:o,textColor:a}=t;let l=e+i+s;if(void 0!==r&&(l+="_stack"+r),!(l in this.stylesCache)){const c=this._model.isDark()?Me.backgroundDark:Me.backgroundLight;let h,d=i;if("active"===e)h=i,d="rgba(255, 255, 255, 0.92)";else if("hovered"===e){const e=(0,D.tryParseRgba)(i);if(null!==e){const t=e[3]*(1-.85);h=(0,D.rgbaToString)((0,D.rgba)(e[0],e[1],e[2],t))}}a&&(d=a);let u=23,p=23,_=1,m=0;"earning"===n?(p=21,u=21,_=2):"earningUp"===n?(u=21,m=1,_=2):"earningDown"===n&&(u=21,m=-.5,_=.5);const g={barLine:{lineStyle:_e.LINESTYLE_DASHED,lineWidth:1,strokeStyle:i},lollipop:{width:u,height:p,bottom:_,backgroundColor:c,lineWidth:1.5,fillStyle:h,strokeStyle:i,fillCircle:!0,text:{label:s,deltaY:m,strokeStyle:d,font:(0,O.makeFont)(12,N.CHART_FONT_FAMILY,"bold"),showWhenImageLoaded:t.showLabelWhenImageLoaded},image:o},shape:n};void 0!==r&&(g.lollipop.incHeight=25*r),this.stylesCache[l]=g}return this.stylesCache[l]}}var Le=i(7711),ke=i(50841),Ee=i(28866),De=i(27642);const Be=(0,n.getLogger)("Chart.UserDefinedImageMarks");class Ve extends De.BarsMarksContainer{constructor(){super(...arguments),this._imageItems=new Map,this._destroyed=!1}destroy(){this._destroyed=!0,super.destroy()}getImageElement(e){ -return this._imageItems.has(e)||this.addImageToStore(e),this._imageItems.get(e)}addImageToStore(e){this._imageItems.has(e)||this._loadNewImage(e)}_loadNewImage(e){const t={imageElement:null};(0,Ee.getImage)(e,e).then((e=>{this._destroyed||(t.imageElement=e,this.updateAllViewsAndRepaint(),this._model.updateSource(this))})).catch((()=>{Be.logWarn(`An error ocurred while loading image ${e}`)})),this._imageItems.set(e,t)}}class Re extends Ve{constructor(e){super(e,new Le.DefaultProperty("UserDefinedTimescaleMarks",{visible:!0})),this._requestedPointsets=new Set,(0,le.hideMarksOnBars)().subscribe(this,(()=>this._properties.childs().visible.setValue(!(0,le.hideMarksOnBars)().value()))),this._paneView=new Ae(e,this,this._showTooltip.bind(this)),this._paneViews=[this._paneView]}destroy(){(0,le.hideMarksOnBars)().unsubscribeAll(this),super.destroy()}zorder(){return ke.sortSourcesPreOrdered.TimeScaleMarks}userEditEnabled(){return!1}clearMarks(){const e=this._model.chartApi();e.isConnected().value()&&Object.keys(this._marks).forEach((t=>{const i=this._getPointsetId(t);e.removePointset(i)})),this._requestedPointsets.clear(),super.clearMarks(),this._paneView.clearCaches(),this.updateAllViewsAndRepaint()}hasContextMenu(){return!1}paneViews(){return this._properties.childs().visible.value()?this._paneViews:[]}updateAllViews(){this._paneView.update()}onClickOutside(){this._paneView.processClickOutside()}_initialize(){this._properties.childs().visible.setValue(!0)}_plateViewData(e){return{text:e.text}}_getData(e){const t=this._model.mainSeries().symbolInfo();if(!t)return;const i=this.roundRange(this._rangeDifference(e)),r=this._model.mainSeries(),n=r.seriesSource().symbolInstanceId(),o=r.properties().childs().interval.value();window.ChartApiInstance.getTimescaleMarks(t,i.start,i.end,(t=>{const i=this._model.chartApi();for(const e of t){e.index=null;const t=e.id,r=this._getPointsetId(t.toString()),a=this._marks[t];if(a&&null!==a.index&&(a.tickmark===e.tickmark?e.index=a.index:this._requestedPointsets.has(r)&&i.isConnected().value()&&(i.removePointset(r),this._requestedPointsets.delete(r))),e.imageUrl&&this.addImageToStore(e.imageUrl),this._marks[t]=e,null===e.index&&i.isConnected().value()){this._requestedPointsets.add(r);const t=[[e.tickmark,0]];i.createPointset(r,"turnaround",(0,s.ensureNotNull)(n),o,t,(e=>this._onPointsetData(e)))}}this._loadedRange=this._rangeUnion(e,this._loadedRange),this.updateAllViewsAndRepaint()}),o)}_getPointsetId(e){return"pointsetMark_"+e}_onPointsetData(e){if("data_update"===e.method){const t=e.params.customId.split("_")[1],i=this._marks[t],s=e.params.plots;i&&1===s.length&&(i.index=s[0].value[0])}this.updateAllViews()}async _showTooltip(e,t){const s=t();if(!s)return;const r=this._model.timeScale(),n=[r.onScroll(),r.barSpacingChanged(),this._model.mainSeries().onSymbolIntervalChanged()],o=this._paneView.processClickOutside.bind(this._paneView);(await Promise.all([i.e(7624),i.e(6092),i.e(240),i.e(962),i.e(1075),i.e(9039)]).then(i.bind(i,36647))).showLollipopTooltip({items:s,position:e, +return this._imageItems.has(e)||this.addImageToStore(e),this._imageItems.get(e)}addImageToStore(e){this._imageItems.has(e)||this._loadNewImage(e)}_loadNewImage(e){const t={imageElement:null};(0,Ee.getImage)(e,e).then((e=>{this._destroyed||(t.imageElement=e,this.updateAllViewsAndRepaint(),this._model.updateSource(this))})).catch((()=>{Be.logWarn(`An error ocurred while loading image ${e}`)})),this._imageItems.set(e,t)}}class Re extends Ve{constructor(e){super(e,new Le.DefaultProperty("UserDefinedTimescaleMarks",{visible:!0})),this._requestedPointsets=new Set,(0,le.hideMarksOnBars)().subscribe(this,(()=>this._properties.childs().visible.setValue(!(0,le.hideMarksOnBars)().value()))),this._paneView=new Ae(e,this,this._showTooltip.bind(this)),this._paneViews=[this._paneView]}destroy(){(0,le.hideMarksOnBars)().unsubscribeAll(this),super.destroy()}zorder(){return ke.sortSourcesPreOrdered.TimeScaleMarks}userEditEnabled(){return!1}clearMarks(e=0){if(1===e)return;const t=this._model.chartApi();t.isConnected().value()&&Object.keys(this._marks).forEach((e=>{const i=this._getPointsetId(e);t.removePointset(i)})),this._requestedPointsets.clear(),super.clearMarks(),this._paneView.clearCaches(),this.updateAllViewsAndRepaint()}hasContextMenu(){return!1}paneViews(){return this._properties.childs().visible.value()?this._paneViews:[]}updateAllViews(){this._paneView.update()}onClickOutside(){this._paneView.processClickOutside()}_initialize(){this._properties.childs().visible.setValue(!0)}_plateViewData(e){return{text:e.text}}_getData(e){const t=this._model.mainSeries().symbolInfo();if(!t)return;const i=this.roundRange(this._rangeDifference(e)),r=this._model.mainSeries(),n=r.seriesSource().symbolInstanceId(),o=r.properties().childs().interval.value();window.ChartApiInstance.getTimescaleMarks(t,i.start,i.end,(t=>{const i=this._model.chartApi();for(const e of t){e.index=null;const t=e.id,r=this._getPointsetId(t.toString()),a=this._marks[t];if(a&&null!==a.index&&(a.tickmark===e.tickmark?e.index=a.index:this._requestedPointsets.has(r)&&i.isConnected().value()&&(i.removePointset(r),this._requestedPointsets.delete(r))),e.imageUrl&&this.addImageToStore(e.imageUrl),this._marks[t]=e,null===e.index&&i.isConnected().value()){this._requestedPointsets.add(r);const t=[[e.tickmark,0]];i.createPointset(r,"turnaround",(0,s.ensureNotNull)(n),o,t,(e=>this._onPointsetData(e)))}}this._loadedRange=this._rangeUnion(e,this._loadedRange),this.updateAllViewsAndRepaint()}),o)}_getPointsetId(e){return"pointsetMark_"+e}_onPointsetData(e){if("data_update"===e.method){const t=e.params.customId.split("_")[1],i=this._marks[t],s=e.params.plots;i&&1===s.length&&(i.index=s[0].value[0])}this.updateAllViews()}async _showTooltip(e,t){const s=t();if(!s)return;const r=this._model.timeScale(),n=[r.onScroll(),r.barSpacingChanged(),this._model.mainSeries().onSymbolIntervalChanged()],o=this._paneView.processClickOutside.bind(this._paneView);(await Promise.all([i.e(7624),i.e(6092),i.e(240),i.e(962),i.e(1075),i.e(9039)]).then(i.bind(i,36647))).showLollipopTooltip({items:s,position:e, customCloseSubscriptions:n,onClickOutside:o})}}function Ne(e,t){const i=Math.max(1,Math.floor(t)),s=Math.round(e.x*t)+i%2/2;let r=Math.round(e.size*t);(s+r/2)%1!=0&&(r+=1);const n=Math.min(Math.max(1,Math.round(t*e.borderWidth)),r/2);let o;const a=("up"===e.direction?-1:1)*(e.yInverted?-1:1),l=a*(Math.round(e.size*t/2)+i%2);if(void 0!==e.fixedSpaceYPosition){const i=Math.round(e.fixedSpaceYPosition.itemSpacing*t),s=e.fixedSpaceYPosition.order,n=a*(r*s+i*(s+1));o=Math.round(e.fixedSpaceYPosition.basePosition*t)+n+l}else o=Math.round(e.y*t)+l;return{x:s,y:o,size:r,borderWidth:n,tickSize:i}}function Oe(e,t,i,s){var r,n,o;if(e.save(),i&&!s.highlightByAuthor&&(e.globalAlpha=.4),s.mine)!function(e,t,i){const{borderColor:s,backgroundColor:r,doNotFill:n,direction:o,yInverted:a}=i,{x:l,y:c,borderWidth:h,size:d,tickSize:u}=Ne(i,t.pixelRatio);e.strokeStyle=s,e.fillStyle=r,e.lineWidth=h;const p="up"===o!==a?-1:1;let _=Math.round(d/2/Math.tan(Math.PI/6))+u%2/2;(l+_/2)%1!=0&&(_-=1);e.translate(l,c+_/2*p),e.beginPath();const m=h/2;e.moveTo(0,-p*(_-m)),e.lineTo(d/2-m,h/2),e.lineTo(-d/2+m,h/2),e.lineTo(0,-p*(_-h/2)),e.closePath(),n||e.fill();e.stroke()}(e,t,s);else{let i=!1;{const e=s.image&&(o=s.image,Boolean(o&&o.imageElement&&o.imageElement.complete&&o.imageElement.naturalWidth));i=Boolean(e&&!s.showLabelWhenImageLoaded)}!function(e,t,i,s,r){const{borderColor:n,backgroundColor:o,label:a}=i,l=t.pixelRatio,{x:c,y:h,borderWidth:d,size:u}=Ne(i,l);e.strokeStyle=n,e.fillStyle=o,e.lineWidth=d,e.beginPath();const p=u/2-d/2;e.arc(c,h,p,0,2*Math.PI,!0),e.closePath(),e.fill(),r&&function(e,t,i,s,r){if(t){const n=2*i;e.save(),e.imageSmoothingEnabled=!0,e.imageSmoothingQuality="high",(0,me.createCircle)(e,s,r,i),e.clip(),e.drawImage(t,s-i,r-i,n,n),e.restore()}}(e,r,p,c,h);e.stroke(),!s&&a&&u/2>=7&&(e.textAlign="center",e.textBaseline="middle",e.font=a.font,e.fillStyle=a.fontColor,(0,R.drawScaled)(e,l,(()=>{e.fillText(a.text,c/l,h/l)})))}(e,t,s,i,null!==(n=null===(r=s.image)||void 0===r?void 0:r.imageElement)&&void 0!==n?n:void 0)}e.restore()}class Fe{constructor(e,t,i,s){this._canvas=null,this._clickHandler=e,this._enterHandler=t,this._leaveHandler=i,this._data=null!=s?s:null}setData(e){this._data=e}hitTest(e,t){if(null===this._data)return null;for(let i=this._data.items.length-1;i>=0;--i){const s=this._hitTestDot(this._data.items[i],e,t.pixelRatio);if(s)return s}return null}draw(e,t){this._canvas=e.canvas,null!==this._data&&this._data.items.forEach(Oe.bind(null,e,t,this._data.highlightByAuthor))}_hitTestDot(e,t,i){const s=new r.Point(e.x,Ne(e,i).y/i);if((0,pe.pointInCircle)(t,s,Math.max(e.size/2,8))){const t=this._canvas,i=null===t?void 0:{mouseEnterHandler:()=>this._enterHandler(e,s.y,t),mouseLeaveHandler:()=>this._leaveHandler(),clickHandler:i=>this._clickHandler(e,s.y,t,i),tapHandler:i=>this._clickHandler(e,s.y,t,i)};return new ve.HitTestResult(ve.HitTestResult.REGULAR,{activeItem:e.originalItem.id,...i})}return null}}const We={green:{border:(0,ce.getHexColorByName)("color-minty-green-700"),background:(0, ce.getHexColorByName)("color-minty-green-a700")},red:{border:(0,ce.getHexColorByName)("color-ripe-red-700"),background:(0,ce.getHexColorByName)("color-ripe-red-500")},neutral:{border:(0,ce.getHexColorByName)("color-tan-orange-700"),background:(0,ce.getHexColorByName)("color-tan-orange-500")},yellow:{border:"#EAC300",background:"#FFD400"},blue:{border:"#047ACE",background:"#0496FF"}};function He(e){var t,i,s,r;return e.hovered||e.highlightByAuthor?null!==(i=null===(t=e.overrideBorderWidth)||void 0===t?void 0:t.hoveredWidth)&&void 0!==i?i:4:null!==(r=null===(s=e.overrideBorderWidth)||void 0===s?void 0:s.width)&&void 0!==r?r:2}class ze extends class{constructor(e,t){this._tooltip=null,this._hoveredBarsMarkData=null,this._destroyed=!1,this._invalidated=!0,this._originalData=[],this._source=e,this._model=t,this._renderer=new Fe(this._onItemClicked.bind(this),this._showItem.bind(this),this._hideItem.bind(this)),this._createTooltipRenderer().then((e=>{this._destroyed?null==e||e.destroy():this._tooltip=e})),e.properties().childs().visible.subscribe(null,(()=>{var e;null===(e=this._tooltip)||void 0===e||e.hide(!0)}))}destroy(){var e;this._destroyed=!0,null===(e=this._tooltip)||void 0===e||e.destroy()}source(){return this._source}update(){this._invalidated=!0}renderer(e,t){return this._invalidated&&(this._updateImpl(),this._invalidated=!1),this._renderer}onClickOutside(e){e.isTouch&&null!==this._tooltip&&!this._tooltip.contains(e.target)&&this._tooltip.hide(!0)}_extractBarMarksRendererItemData(e,t){var i,s;const r=null!==(i=t.overridedTheme)&&void 0!==i?i:We[t.theme],n=this._calculateSize(e,t),o=this._calculateY(e,n,t);return null===this._hoveredBarsMarkData||this._hoveredBarsMarkData.id!==t.id||this._hoveredBarsMarkData.x===t.x&&this._hoveredBarsMarkData.y===Math.round(o)||(null===(s=this._tooltip)||void 0===s||s.hide(!0),this._hoveredBarsMarkData=null),{x:t.x,y:this._calculateY(e,n,t),direction:t.direction,borderColor:r.border,borderWidth:He(t),backgroundColor:r.background,size:n,doNotFill:!t.public,yInverted:t.yInverted,label:void 0===t.label?void 0:{text:t.label,fontColor:t.labelFontColor,font:(0,O.makeFont)(Math.ceil(Math.max(10,Math.min(n/2,20))),N.CHART_FONT_FAMILY,"bold")},originalItem:t}}_onItemClicked(e,t,i,s){s.isTouch&&this._showItem(e,t,i)}async _showItem(e,t,i){var r;const n=await this._tooltipProps(e);if(null===n)return;const o=this._model.timeScale().barSpacing(),a=this._calculateSize(o,e.originalItem);this._hoveredBarsMarkData={x:e.x,y:Math.round(this._calculateY(o,a,e.originalItem)),id:e.originalItem.id},null===(r=this._tooltip)||void 0===r||r.show({itemSize:a,container:(0,s.ensureNotNull)(i.parentElement),x:e.x,y:t,factoryProps:n,onClickOutside:()=>{var e;return null===(e=this._tooltip)||void 0===e?void 0:e.hide(!0)}})}_hideItem(){var e;null===(e=this._tooltip)||void 0===e||e.hide()}_calculateSize(e,t){return Math.min(553,Math.max(7,t.minSize,.8*e))}_updateImpl(){this._originalData=this._source.getPlatesViewData() -;const e=this._model.timeScale().barSpacing(),t=this._originalData.map(this._extractBarMarksRendererItemData.bind(this,e));this._renderer.setData({items:t,barSpacing:e,highlightByAuthor:!1})}}{async _createTooltipRenderer(){const[{TooltipRenderer:e},{UserDefinedBarsMarksTooltip:t}]=await Promise.all([Promise.all([i.e(2913),i.e(962),i.e(8020)]).then(i.bind(i,40072)),Promise.all([i.e(2913),i.e(962),i.e(8020)]).then(i.bind(i,71276))]);return new e(t)}_calculateY(e,t,i){const s=Math.max(1.4*i.minSize,e+4),r=("up"===i.direction?-1:1)*(i.yInverted?-1:1)*(s*(i.order+.6)+.25*s);return i.y+r}_onItemClicked(e,t,i,s){var r,n;super._onItemClicked(e,t,i,s),null===(n=(r=e.originalItem).onClicked)||void 0===n||n.call(r)}_tooltipProps(e){const t=e.originalItem.text;return t?Promise.resolve({text:t}):Promise.resolve(null)}_extractBarMarksRendererItemData(e,t){return{...super._extractBarMarksRendererItemData(e,t),showLabelWhenImageLoaded:t.showLabelWhenImageLoaded,image:t.image}}}class Ue extends Ve{constructor(e){super(e,new Le.DefaultProperty("UserDefinedBarsMarks",{visible:!0})),this._paneView=new ze(this,e),this._paneViews=[this._paneView],(0,le.hideMarksOnBars)().subscribe(this,(()=>{this.properties().childs().visible.setValue(!(0,le.hideMarksOnBars)().value())}))}destroy(){(0,le.hideMarksOnBars)().unsubscribeAll(this),this._paneView.destroy(),super.destroy()}zorder(){return ke.sortSourcesPreOrdered.BarMarks}userEditEnabled(){return!1}clearMarks(){super.clearMarks(),this.updateAllViewsAndRepaint()}hasContextMenu(){return!1}paneViews(){return this._properties.childs().visible.value()?this._paneViews:[]}onClickOutside(e){this._paneView.onClickOutside(e)}_initialize(){this.properties().childs().visible.setValue(!0)}_plateViewData(e){const t={text:e.text,onClicked:e.onClicked};"object"==typeof e.color&&(t.theme="user_defined_theme",t.overridedTheme={},t.overridedTheme.border=e.color.border,t.overridedTheme.background=e.color.background);const i=(0,ae.isNumber)(e.borderWidth)?e.borderWidth:void 0,s=(0,ae.isNumber)(e.hoveredBorderWidth)?e.hoveredBorderWidth:void 0;if(void 0===i&&void 0===s||(t.overrideBorderWidth={width:i,hoveredWidth:s}),e.showLabelWhenImageLoaded&&(t.showLabelWhenImageLoaded=!0),e.imageUrl){const i=this.getImageElement(e.imageUrl);t.image=i}return t}_getData(e){const t=this._model.mainSeries().symbolInfo();if(!t)return;const i=this.roundRange(this._rangeDifference(e)),s=this._model.mainSeries().properties().childs().interval.value();window.ChartApiInstance.getMarks(t,i.start,i.end,(t=>{for(const e of t)this._marks[e.id]=e,e.imageUrl&&this.addImageToStore(e.imageUrl);this._loadedRange=this._rangeUnion(e,this._loadedRange),this.updateAllViewsAndRepaint()}),s)}}var je=i(45345);const Ge=new a.TranslatedString("apply toolbars theme",o.t(null,void 0,i(58570)));class qe extends d.UndoCommand{constructor(e,t,i=!0){super(Ge),this._prevThemeName=e,this._themeName=t,this._syncState=i}undo(){(0,L.isStdThemeName)(this._prevThemeName)&&((0,je.setTheme)(this._prevThemeName),this._syncState&&(0,L.syncTheme)())}redo(){(0, -L.isStdThemeName)(this._themeName.toLowerCase())&&((0,je.setTheme)(this._themeName.toLowerCase()),this._syncState&&(0,L.syncTheme)())}}i(78831),i(74914),i(51620);var $e=i(7019),Ye=i(65407),Ke=i(12882),Xe=i(40549);const Ze=!l.CheckMobile.any(),Je=(0,n.getLogger)("ChartWidgetCollectionBase"),Qe=new a.TranslatedString("apply indicators to entire layout",o.t(null,void 0,i(44547))),et=new a.TranslatedString("sync time",o.t(null,void 0,i(60635))),tt=new a.TranslatedString("resize layout",o.t(null,void 0,i(13034))),it=new a.TranslatedString("reset layout sizes",o.t(null,void 0,i(30910))),st=new a.TranslatedString("apply chart theme",o.t(null,void 0,i(66568))),rt=new a.TranslatedString("symbol lock",o.t(null,void 0,i(92831))),nt=new a.TranslatedString("interval lock",o.t(null,void 0,i(28916))),ot=new a.TranslatedString("date range lock",o.t(null,void 0,i(90621))),at=new a.TranslatedString("track time",o.t(null,void 0,i(47122)));o.t(null,void 0,i(46669)),o.t(null,void 0,i(98478)),o.t(null,void 0,i(34004)),o.t(null,void 0,i(96260)),o.t(null,void 0,i(38641)),o.t(null,void 0,i(10160));function lt(e,t){const i=t.model().model().studyTemplate();e.undoHistory.beginUndoMacro(Qe);for(let s=0;se.id()===n)))}const l=t.pasteSourceFromClip(o,i,!0);if(l&&1===l.length){const e=l[0];if(r.asCompare){const i=(0,s.ensureNotNull)(t.mainSeries().priceScale());t.moveToScale(e,(0,s.ensureDefined)(o),i,n),t.setPriceScaleMode({percentage:!0},i,null)}}t.model().lightUpdate()}}e.undoHistory.endUndoMacro()}function ht(e){let t=1;for(;e.has(""+t);)t++;return""+t}function dt(e){const t=new Map,i=e.chartsCountToSave(),s=new Set;for(let r=0;r{this.properties().childs().visible.setValue(!(0,le.hideMarksOnBars)().value())}))}destroy(){(0,le.hideMarksOnBars)().unsubscribeAll(this),this._paneView.destroy(),super.destroy()}zorder(){return ke.sortSourcesPreOrdered.BarMarks}userEditEnabled(){return!1}clearMarks(e=0){2!==e&&(super.clearMarks(),this.updateAllViewsAndRepaint())}hasContextMenu(){return!1}paneViews(){return this._properties.childs().visible.value()?this._paneViews:[]}onClickOutside(e){this._paneView.onClickOutside(e)}_initialize(){this.properties().childs().visible.setValue(!0)}_plateViewData(e){const t={text:e.text,onClicked:e.onClicked};"object"==typeof e.color&&(t.theme="user_defined_theme",t.overridedTheme={},t.overridedTheme.border=e.color.border,t.overridedTheme.background=e.color.background);const i=(0,ae.isNumber)(e.borderWidth)?e.borderWidth:void 0,s=(0,ae.isNumber)(e.hoveredBorderWidth)?e.hoveredBorderWidth:void 0;if(void 0===i&&void 0===s||(t.overrideBorderWidth={width:i,hoveredWidth:s}),e.showLabelWhenImageLoaded&&(t.showLabelWhenImageLoaded=!0),e.imageUrl){const i=this.getImageElement(e.imageUrl);t.image=i}return t}_getData(e){const t=this._model.mainSeries().symbolInfo();if(!t)return;const i=this.roundRange(this._rangeDifference(e)),s=this._model.mainSeries().properties().childs().interval.value();window.ChartApiInstance.getMarks(t,i.start,i.end,(t=>{for(const e of t)this._marks[e.id]=e,e.imageUrl&&this.addImageToStore(e.imageUrl);this._loadedRange=this._rangeUnion(e,this._loadedRange),this.updateAllViewsAndRepaint()}),s)}}var je=i(45345);const Ge=new a.TranslatedString("apply toolbars theme",o.t(null,void 0,i(58570)));class qe extends d.UndoCommand{constructor(e,t,i=!0){super(Ge),this._prevThemeName=e,this._themeName=t,this._syncState=i}undo(){(0,L.isStdThemeName)(this._prevThemeName)&&((0,je.setTheme)(this._prevThemeName),this._syncState&&(0,L.syncTheme)())}redo(){(0, +L.isStdThemeName)(this._themeName.toLowerCase())&&((0,je.setTheme)(this._themeName.toLowerCase()),this._syncState&&(0,L.syncTheme)())}}i(78831),i(74914),i(51620);var $e=i(7019),Ye=i(65407),Ke=i(12882),Ze=i(40549);const Xe=!l.CheckMobile.any(),Je=(0,n.getLogger)("ChartWidgetCollectionBase"),Qe=new a.TranslatedString("apply indicators to entire layout",o.t(null,void 0,i(44547))),et=new a.TranslatedString("sync time",o.t(null,void 0,i(60635))),tt=new a.TranslatedString("resize layout",o.t(null,void 0,i(13034))),it=new a.TranslatedString("reset layout sizes",o.t(null,void 0,i(30910))),st=new a.TranslatedString("apply chart theme",o.t(null,void 0,i(66568))),rt=new a.TranslatedString("symbol lock",o.t(null,void 0,i(92831))),nt=new a.TranslatedString("interval lock",o.t(null,void 0,i(28916))),ot=new a.TranslatedString("date range lock",o.t(null,void 0,i(90621))),at=new a.TranslatedString("track time",o.t(null,void 0,i(47122)));o.t(null,void 0,i(46669)),o.t(null,void 0,i(98478)),o.t(null,void 0,i(34004)),o.t(null,void 0,i(96260)),o.t(null,void 0,i(38641)),o.t(null,void 0,i(10160));function lt(e,t){const i=t.model().model().studyTemplate();e.undoHistory.beginUndoMacro(Qe);for(let s=0;se.id()===n)))}const l=t.pasteSourceFromClip(o,i,!0);if(l&&1===l.length){const e=l[0];if(r.asCompare){const i=(0,s.ensureNotNull)(t.mainSeries().priceScale());t.moveToScale(e,(0,s.ensureDefined)(o),i,n),t.setPriceScaleMode({percentage:!0},i,null)}}t.model().lightUpdate()}}e.undoHistory.endUndoMacro()}function ht(e){let t=1;for(;e.has(""+t);)t++;return""+t}function dt(e){const t=new Map,i=e.chartsCountToSave(),s=new Set;for(let r=0;r(0,s.ensureDefined)(e.content.chartId)))}function gt(e,t,i){e.chartsCountToSave();i.forEach((i=>{const s=(r=i.chartId,null!==(o=null===(n=e.chartWidgetsDefs.find((e=>e.chartWidget.id()===r)))||void 0===n?void 0:n.chartWidget)&&void 0!==o?o:null);var r,n,o;null==s||s.resetLineToolsInvalidated(t,i.savedDto,i.sharingMode)}))}function ft(e,t,i,s){const r=e.map((e=>e.chartWidget)).filter((e=>e.hasModel())).filter((e=>e.id()===t||0!==s));try{r.forEach((e=>e.startApplyingLineToolUpdateNotification())),r.forEach((e=>e.applyLineToolUpdateNotification(i,s)))}finally{r.forEach((e=>e.endApplyingLineToolUpdateNotification()))}}function vt(e){return new C({copyRequested:(t,i)=>{e.activeChartWidget.value().model().clipboardCopy(t,i)},cutRequested:(t,i)=>{e.activeChartWidget.value().model().clipboardCut(t,i)},pasteRequested:(t,i)=>{(i?i.model().undoModel():e.activeChartWidget.value().model()).clipboardPaste(t,i)}})}function St(e,t){0}function yt(e){const t={};return e.chartWidgetsDefs.map((e=>e.chartWidget)).forEach((e=>t[e.id()]=function(e){var t,i,r,n,o;const a={};if(!e.hasModel()){const n=e.options().content;if(!n)return a;const o=(0,s.ensureNotNull)(n.panes.reduce(((e,t)=>{var i;return null!==(i=null!=e?e:t.sources.find((e=>"MainSeries"===e.type)))&&void 0!==i?i:null}),null));return a.resolution=null===(t=o.state)||void 0===t?void 0:t.interval,a.symbol=null===(i=o.state)||void 0===i?void 0:i.symbol,a.short_name=null===(r=o.state)||void 0===r?void 0:r.shortName,a}const l=e.model().mainSeries(),c=l.properties().childs(),h=l.symbolInfo();a.resolution=c.interval.value(),a.symbol_type=null!==h&&h.type||"",a.exchange=null!==h&&h.exchange||"",a.listed_exchange=null!==h&&h.listed_exchange||"";const d=null!==(n=null==h?void 0:h.legs)&&void 0!==n?n:[];if(null!==h&&l.isSpread()){const e=d[0];let t=h.base_name[0];t=t.split(":")[1],a.symbol=e,a.short_name=t,a.expression=h.full_name}else a.symbol=null!==h&&h.ticker||c.symbol.value(),a.short_name=c.shortName.value();const u=null!==(o=null==h?void 0:h.base_name)&&void 0!==o?o:[];return a.legs=d.map(((e,t)=>({symbol:e,pro_symbol:u[t]}))),a}(e))),t}function bt(e,t){0}function wt(e,t){return I(t,{snapshotUrl:e}).then((e=>((0,M.emit)("onScreenshotReady",e),e)))}function Pt(e,t){const i={snapshotUrl:e};const s=(0,A.isOnMobileAppPage)("any");return(s?I:x)(t,i).then((e=>((0,M.emit)("onScreenshotReady",e),s||(0,M.emit)("onServerScreenshotCopiedToClipboard"),e)))}function Ct(e){return function(e){return T().then((t=>t.downloadClientScreenshot(e)))}(e)}function Tt(e){return function(e){return T().then((t=>t.copyToClipboardClientScreenshot(e)))}(e).then((()=>{(0,M.emit)("onClientScreenshotCopiedToClipboard")}))}const xt={s:0,"2h":0,"2v":1,"2-1":1,"3s":0,"3h":0,"3v":2,4:1,6:1,8:1,"1-2":1,"3r":1,"4h":0,"4v":3,"4s":0,"5h":0,"6h":0,"7h":0,"8h":0,"1-3":1,"2-2":3,"2-3":2,"1-4":1,"5s":0,"6c":4,"8c":6};function It(e,t,i,s){let r=0;const n=(0,Ye.createWVFromGetterAndSubscriptions)((()=>++r),[i,s]);return(0,$e.combine)((t=>{var i -;return null!==(i=e()[xt[t]])&&void 0!==i?i:null}),t,n)}function Mt(e,t,i,s){const r=Math.max(1,window.devicePixelRatio||1),n=e.getAll();let o;const a=e.maximizedChartWidget().value();if(s&&s.onlyActiveChart||a)return{layout:"s",hidpiRatio:r,theme:(0,L.getCurrentTheme)().name,charts:[e.activeChartWidget.value().images(s)],publishedBy:o};const l=[],c=k.layouts[e.layout.value()].count,h={showCollapsedStudies:(s=s||{}).showCollapsedStudies,status:s.status};for(let e=0;e{const t=this._state.currentLayoutResizeAction.value();t&&this._applyMouseMove(t.delta,e)},this._state=e,this._splitterElement=t,this._splitter=i,(0,re.shiftPressed)().subscribe(this._onShiftPressed)}destroy(){(0,re.shiftPressed)().unsubscribe(this._onShiftPressed)}mouseDownEvent(e){this._mouseDownOrTouchStartEvent(e)}touchStartEvent(e){this._mouseDownOrTouchStartEvent(e)}pressedMouseMoveEvent(e){this._pressedMouseOrTouchMoveEvent(e)}touchMoveEvent(e){this._pressedMouseOrTouchMoveEvent(e)}mouseUpEvent(e){this._mouseUpOrTouchEndEvent(e)}touchEndEvent(e){this._mouseUpOrTouchEndEvent(e)}mouseEnterEvent(e){this._highlightSplitters(e.shiftKey)}mouseLeaveEvent(e){const t=kt(this._splitter.className);Array.from(this._state.parent.getElementsByClassName(t)).forEach((e=>e.classList.remove(Ke.hovered)))}mouseDoubleClickEvent(e){const t=(0,te.layoutInitialSizingState)(this._state.layoutTemplate.value().expression);this._state.undoHistory.beginUndoMacro(it),this._state.undoHistory.pushUndoCommand(new _(this._state.sizingState.spawn(),this._state.sizingState.value(),t,it));const i=this._state.layoutTemplate.value().layoutType;this._state.undoHistory.pushUndoCommand(new p((e=>e?this._state.allLayoutSizesState.set(i,e):this._state.allLayoutSizesState.delete(i)),this._state.allLayoutSizesState.get(this._state.layoutTemplate.value().layoutType),t,it)),this._state.undoHistory.endUndoMacro()}_highlightSplitters(e){const t=kt(this._splitter.className);Array.from(this._state.parent.getElementsByClassName(t)).forEach((e=>e.classList.remove(Ke.hovered)));(e?Array.from(this._state.parent.getElementsByClassName(t)):[this._splitterElement]).forEach((e=>e.classList.add(Ke.hovered)))}_mouseDownOrTouchStartEvent(e){ -const t=new r.Point(e.localX+this._splitterElement.offsetLeft,e.localY+this._splitterElement.offsetTop),i=(0,ie.deepCopy)(this._state.sizingState.value());this._state.currentLayoutResizeAction.setValue({point:t,splitter:this._splitter,initialState:i,alignedState:this._state.layoutTemplate.value().syncSublayoutsBySplitter(this._splitter,(0,ie.deepCopy)(i)),shiftState:e.shiftKey,delta:0}),this._splitterElement.classList.add(Ke["i-active"]),this._highlightSplitters(e.shiftKey)}_pressedMouseOrTouchMoveEvent(e){const t=this._state.currentLayoutResizeAction.value();if(!t)return;t.shiftState!==e.shiftKey&&(this._highlightSplitters(e.shiftKey),t.shiftState=e.shiftKey);const i=new r.Point(e.localX+this._splitterElement.offsetLeft,e.localY+this._splitterElement.offsetTop);t.delta="v"===t.splitter.orientation?i.y-t.point.y:i.x-t.point.x,this._applyMouseMove(t.delta,e.shiftKey)}_mouseUpOrTouchEndEvent(e){const t=this._state.currentLayoutResizeAction.value();if(t&&(this._splitterElement.classList.remove(Ke["i-active"]),this._state.currentLayoutResizeAction.setValue(null),t.currentState)){this._state.undoHistory.beginUndoMacro(tt),this._state.undoHistory.pushUndoCommand(new _(this._state.sizingState.spawn(),t.initialState,t.currentState,tt));const e=this._state.layoutTemplate.value().layoutType;this._state.undoHistory.pushUndoCommand(new p((t=>t?this._state.allLayoutSizesState.set(e,t):this._state.allLayoutSizesState.delete(e)),this._state.allLayoutSizesState.get(this._state.layoutTemplate.value().layoutType),this._state.sizingState.value(),it)),this._state.undoHistory.endUndoMacro(),this._state.layoutSizesChanged.setValue(!0)}}_applyMouseMove(e,t){var i;const r=(0,s.ensureNotNull)(this._state.currentLayoutResizeAction.value()),n=t?r.alignedState:r.initialState,o=null!==(i=this._state.options.padding)&&void 0!==i?i:2,a=Lt(this._state);r.currentState=this._state.layoutTemplate.value().resizeApplier(a,o,e,r.splitter,(0,ie.deepCopy)(n),t),this._state.sizingState.setValue(r.currentState)}}function Dt(e,t,i,s,r){var n,o;const a=null!==(n=e.options.padding)&&void 0!==n?n:2,l=null!==(o=e.options.border)&&void 0!==o?o:0;r=null!=r?r:e.layoutTemplate.value();const c=Lt(e),h=r.sizer(c,i,s,a+l,Ze?e.sizingState.value():void 0);h.width=Math.max(Math.round(h.width),0),h.height=Math.max(Math.round(h.height),0),h.top=Math.round(h.top),h.left=Math.round(h.left),t.metrics=h;const d=t.container.value();if(d){d.style.width=h.width+"px",d.style.height=h.height+"px",d.style.top=h.top+"px",d.style.left=h.left+"px";const e=1===s;false;const t=Math.round(c.width),i=0===h.top&&0===h.left,r=0===h.top&&h.left+h.width===t,n=0===h.top&&h.width===t;d.classList.toggle("top-left-chart",!e&&!n&&i),d.classList.toggle("top-right-chart",!e&&!n&&r),d.classList.toggle("top-full-width-chart",e||n)}t.width.setValue(h.width),t.height.setValue(h.height)}function Bt(e){var t,i,s;let r;const n=e.layoutTemplate.value(),o=e.maximizedChartDef.value();if(r=o?[o]:e.chartWidgetsDefs.slice(0,n.count).filter((e=>!e.hiddenInLayout.value())),r.forEach(((t,i)=>Dt(e,t,i,r.length))), -Ze&&!e.maximizedChartDef.value()){const r=Lt(e),o=null!==(t=e.options.padding)&&void 0!==t?t:2,a=null!==(i=e.options.border)&&void 0!==i?i:0,l=n.splitters(r,o+a,e.sizingState.value()),c=null!==(s=e.splitters.value())&&void 0!==s?s:[];c.forEach(((e,t)=>{t>=l.length&&(e.splitterElement.remove(),e.mouseHandler.destroy(),e.mouseListener.destroy())}));const h=l.map(((t,i)=>{const s=i({def:t,metrics:e.layoutTemplate.value().sizer({top:0,left:0,width:256,height:256},i,s.length,0)}))).sort(((e,t)=>e.metrics.top-t.metrics.top||e.metrics.left-t.metrics.left)).map((e=>e.def));if(s.length<2)return null;let r=s.indexOf(t);return-1===r?null:(r=(r+(i?s.length-1:1))%s.length,s[r])}function Rt(e,t){return e.chartWidgetsDefs.some((e=>{var i;return(null===(i=e.chartWidget)||void 0===i?void 0:i.id())===t}))}function Nt(e){let t=1;for(;e(""+t);)t++;return""+t}function Ot(e){const t=e.activeChartWidget.value();if(t){const i=t.state();return i.chartId=Nt((t=>Rt(e,t))),i.shouldBeSavedEvenIfHidden=!1,{content:i}}}function Ft(e,t,i){const r=e.toastsFactory;let n={chartWidgetCollection:t,isActive:0===e.chartWidgetsDefs.length,barsMarksContainersFactory:t=>function(e,t,i){const s=[];{const t=new Ue(e);s.push(t);const i=new Re(e);s.push(i)}return s}(t,0,e.options),undoHistory:e.undoHistory,readOnly:e.readOnly,initialLoading:e.initialLoading,getToasts:r?()=>r.getChartToasts():void 0,...null!=i?i:{}};void 0!==e.customLegendWidgetsFactoriesMap&&(n.customLegendWidgetFactories=new Map(e.customLegendWidgetsFactoriesMap));const o=document.createElement("div");o.classList.add("chart-container"),o.style.position="absolute",o.style.overflow="hidden",e.parent.appendChild(o),l.isEdge&&(o.style.touchAction="none",o.style.msTouchAction="none"),n.className&&o.classList.add(n.className);const a={alive:new Xe(!0),container:new Xe(o),width:new Xe,height:new Xe,collapsed:new Xe(!1),hiddenInLayout:new Xe(!1),visible:new Xe,rdState:new Q.ResizerDetacherState,requestFullscreen:()=>{e.globalDetachable.value()&&(e.setMaximized(a),e.activeChartWidget.setValue((0,s.ensureNotNull)(a.chartWidget)))},exitFullscreen:()=>{e.activeChartWidget.value()===a.chartWidget&&e.setMaximized(null)},detachable:e.globalDetachable,fullscreenable:e.globalDetachable,fullscreen:new Xe, +;return null!==(i=e()[xt[t]])&&void 0!==i?i:null}),t,n)}function Mt(e,t,i,s){const r=Math.max(1,window.devicePixelRatio||1),n=e.getAll();let o;const a=e.maximizedChartWidget().value();if(s&&s.onlyActiveChart||a)return{layout:"s",hidpiRatio:r,theme:(0,L.getCurrentTheme)().name,charts:[e.activeChartWidget.value().images(s)],publishedBy:o};const l=[],c=k.layouts[e.layout.value()].count,h={showCollapsedStudies:(s=s||{}).showCollapsedStudies,status:s.status};for(let e=0;e{const t=this._state.currentLayoutResizeAction.value();t&&this._applyMouseMove(t.delta,e)},this._state=e,this._splitterElement=t,this._splitter=i,(0,re.shiftPressed)().subscribe(this._onShiftPressed)}destroy(){(0,re.shiftPressed)().unsubscribe(this._onShiftPressed)}mouseDownEvent(e){this._mouseDownOrTouchStartEvent(e)}touchStartEvent(e){this._mouseDownOrTouchStartEvent(e)}pressedMouseMoveEvent(e){this._pressedMouseOrTouchMoveEvent(e)}touchMoveEvent(e){this._pressedMouseOrTouchMoveEvent(e)}mouseUpEvent(e){this._mouseUpOrTouchEndEvent(e)}touchEndEvent(e){this._mouseUpOrTouchEndEvent(e)}mouseEnterEvent(e){this._highlightSplitters(e.shiftKey)}mouseLeaveEvent(e){const t=kt(this._splitter.className);Array.from(this._state.parent.getElementsByClassName(t)).forEach((e=>e.classList.remove(Ke.hovered)))}mouseDoubleClickEvent(e){const t=(0,te.layoutInitialSizingState)(this._state.layoutTemplate.value().expression);this._state.undoHistory.beginUndoMacro(it),this._state.undoHistory.pushUndoCommand(new _(this._state.sizingState.spawn(),this._state.sizingState.value(),t,it));const i=this._state.layoutTemplate.value().layoutType;this._state.undoHistory.pushUndoCommand(new p((e=>e?this._state.allLayoutSizesState.set(i,e):this._state.allLayoutSizesState.delete(i)),this._state.allLayoutSizesState.get(this._state.layoutTemplate.value().layoutType),t,it)),this._state.undoHistory.endUndoMacro()}_highlightSplitters(e){const t=kt(this._splitter.className);Array.from(this._state.parent.getElementsByClassName(t)).forEach((e=>e.classList.remove(Ke.hovered)));(e?Array.from(this._state.parent.getElementsByClassName(t)):[this._splitterElement]).forEach((e=>e.classList.add(Ke.hovered)))}_mouseDownOrTouchStartEvent(e){ +const t=new r.Point(e.localX+this._splitterElement.offsetLeft,e.localY+this._splitterElement.offsetTop),i=(0,ie.deepCopy)(this._state.sizingState.value());this._state.currentLayoutResizeAction.setValue({point:t,splitter:this._splitter,initialState:i,alignedState:this._state.layoutTemplate.value().syncSublayoutsBySplitter(this._splitter,(0,ie.deepCopy)(i)),shiftState:e.shiftKey,delta:0}),this._splitterElement.classList.add(Ke["i-active"]),this._highlightSplitters(e.shiftKey)}_pressedMouseOrTouchMoveEvent(e){const t=this._state.currentLayoutResizeAction.value();if(!t)return;t.shiftState!==e.shiftKey&&(this._highlightSplitters(e.shiftKey),t.shiftState=e.shiftKey);const i=new r.Point(e.localX+this._splitterElement.offsetLeft,e.localY+this._splitterElement.offsetTop);t.delta="v"===t.splitter.orientation?i.y-t.point.y:i.x-t.point.x,this._applyMouseMove(t.delta,e.shiftKey)}_mouseUpOrTouchEndEvent(e){const t=this._state.currentLayoutResizeAction.value();if(t&&(this._splitterElement.classList.remove(Ke["i-active"]),this._state.currentLayoutResizeAction.setValue(null),t.currentState)){this._state.undoHistory.beginUndoMacro(tt),this._state.undoHistory.pushUndoCommand(new _(this._state.sizingState.spawn(),t.initialState,t.currentState,tt));const e=this._state.layoutTemplate.value().layoutType;this._state.undoHistory.pushUndoCommand(new p((t=>t?this._state.allLayoutSizesState.set(e,t):this._state.allLayoutSizesState.delete(e)),this._state.allLayoutSizesState.get(this._state.layoutTemplate.value().layoutType),this._state.sizingState.value(),it)),this._state.undoHistory.endUndoMacro(),this._state.layoutSizesChanged.setValue(!0)}}_applyMouseMove(e,t){var i;const r=(0,s.ensureNotNull)(this._state.currentLayoutResizeAction.value()),n=t?r.alignedState:r.initialState,o=null!==(i=this._state.options.padding)&&void 0!==i?i:2,a=Lt(this._state);r.currentState=this._state.layoutTemplate.value().resizeApplier(a,o,e,r.splitter,(0,ie.deepCopy)(n),t),this._state.sizingState.setValue(r.currentState)}}function Dt(e,t,i,s,r){var n,o;const a=null!==(n=e.options.padding)&&void 0!==n?n:2,l=null!==(o=e.options.border)&&void 0!==o?o:0;r=null!=r?r:e.layoutTemplate.value();const c=Lt(e),h=r.sizer(c,i,s,a+l,Xe?e.sizingState.value():void 0);h.width=Math.max(Math.round(h.width),0),h.height=Math.max(Math.round(h.height),0),h.top=Math.round(h.top),h.left=Math.round(h.left),t.metrics=h;const d=t.container.value();if(d){d.style.width=h.width+"px",d.style.height=h.height+"px",d.style.top=h.top+"px",d.style.left=h.left+"px";const e=1===s;false;const t=Math.round(c.width),i=0===h.top&&0===h.left,r=0===h.top&&h.left+h.width===t,n=0===h.top&&h.width===t;d.classList.toggle("top-left-chart",!e&&!n&&i),d.classList.toggle("top-right-chart",!e&&!n&&r),d.classList.toggle("top-full-width-chart",e||n)}t.width.setValue(h.width),t.height.setValue(h.height)}function Bt(e){var t,i,s;let r;const n=e.layoutTemplate.value(),o=e.maximizedChartDef.value();if(r=o?[o]:e.chartWidgetsDefs.slice(0,n.count).filter((e=>!e.hiddenInLayout.value())),r.forEach(((t,i)=>Dt(e,t,i,r.length))), +Xe&&!e.maximizedChartDef.value()){const r=Lt(e),o=null!==(t=e.options.padding)&&void 0!==t?t:2,a=null!==(i=e.options.border)&&void 0!==i?i:0,l=n.splitters(r,o+a,e.sizingState.value()),c=null!==(s=e.splitters.value())&&void 0!==s?s:[];c.forEach(((e,t)=>{t>=l.length&&(e.splitterElement.remove(),e.mouseHandler.destroy(),e.mouseListener.destroy())}));const h=l.map(((t,i)=>{const s=i({def:t,metrics:e.layoutTemplate.value().sizer({top:0,left:0,width:256,height:256},i,s.length,0)}))).sort(((e,t)=>e.metrics.top-t.metrics.top||e.metrics.left-t.metrics.left)).map((e=>e.def));if(s.length<2)return null;let r=s.indexOf(t);return-1===r?null:(r=(r+(i?s.length-1:1))%s.length,s[r])}function Rt(e,t){return e.chartWidgetsDefs.some((e=>{var i;return(null===(i=e.chartWidget)||void 0===i?void 0:i.id())===t}))}function Nt(e){let t=1;for(;e(""+t);)t++;return""+t}function Ot(e){const t=e.activeChartWidget.value();if(t){const i=t.state();return i.chartId=Nt((t=>Rt(e,t))),i.shouldBeSavedEvenIfHidden=!1,{content:i}}}function Ft(e,t,i){const r=e.toastsFactory;let n={chartWidgetCollection:t,isActive:0===e.chartWidgetsDefs.length,barsMarksContainersFactory:t=>function(e,t,i){const s=[];{const t=new Ue(e);s.push(t);const i=new Re(e);s.push(i)}return s}(t,0,e.options),undoHistory:e.undoHistory,readOnly:e.readOnly,initialLoading:e.initialLoading,getToasts:r?()=>r.getChartToasts():void 0,...null!=i?i:{}};void 0!==e.customLegendWidgetsFactoriesMap&&(n.customLegendWidgetFactories=new Map(e.customLegendWidgetsFactoriesMap));const o=document.createElement("div");o.classList.add("chart-container"),o.style.position="absolute",o.style.overflow="hidden",e.parent.appendChild(o),l.isEdge&&(o.style.touchAction="none",o.style.msTouchAction="none"),n.className&&o.classList.add(n.className);const a={alive:new Ze(!0),container:new Ze(o),width:new Ze,height:new Ze,collapsed:new Ze(!1),hiddenInLayout:new Ze(!1),visible:new Ze,rdState:new Q.ResizerDetacherState,requestFullscreen:()=>{e.globalDetachable.value()&&(e.setMaximized(a),e.activeChartWidget.setValue((0,s.ensureNotNull)(a.chartWidget)))},exitFullscreen:()=>{e.activeChartWidget.value()===a.chartWidget&&e.setMaximized(null)},detachable:e.globalDetachable,fullscreenable:e.globalDetachable,fullscreen:new Ze, chartWidget:null};a.rdState.pushOwner(a),e.chartWidgetsDefs.push(a);const c=()=>{a.visible.setValue(!a.hiddenInLayout.value()&&e.options.resizerBridge.visible.value())};a.hiddenInLayout.subscribe((()=>{(0,s.ensureNotNull)(a.chartWidget).setVisible(!a.hiddenInLayout.value()),c()})),a.collapsed.subscribe((()=>(0,s.ensureNotNull)(a.chartWidget).setCollapsed(a.collapsed.value()))),e.options.resizerBridge.visible.subscribe(c),c(),function(e,t){let i=0,s=0;const r=t.layoutTemplate.value();for(let n=0;nRt(e,t))),d=new ee.ChartWidget(n,h,t.metaInfo.uid.value());return a.chartWidget=d,e.saveChartService&&a.chartWidget.setSaveChartService(e.saveChartService),n.containsData?d.finishInitWithoutConnect():d.connect(),d.withModel(null,(()=>{const t=d.model().model();e.customSources.forEach(((e,i)=>{t.addCustomSource(i,e.factory,e.layer)}))})),e.updateWatchedValue(),e.updateActivityView(),e.chartWidgetCreatedDelegate.fire(d),a}function Wt(e,t,i,s){const r={...e.widgetOptions,...e.savedChartWidgetOptions.shift()||Ot(e),...0===i||e.symbolLock.value()?void 0:{defSymbol:null}},n=Ft(e,t,r),o=n.chartWidget;return o.modelCreated().subscribe(null,(()=>{s?s():e.checkAllPendingModelsAlreadyCreated(),e.dateRangeLock.value()&&o===e.activeChartWidget.value()&&e.subscribeToCompletedEventForDateRangeSync(o,!0)}),!0),n}function Ht(e){e.hiddenInLayout.setValue(!0);const t=e.container.value();t.parentNode&&t.parentNode.removeChild(t),e.fullscreen.setValue(!1)}function zt(e,t){e.chartWidgetsDefs.forEach((i=>{const r=(0,s.ensureNotNull)(i.chartWidget);r.onZoom().unsubscribeAll(t),r.onScroll().unsubscribeAll(t),r.withModel(null,(()=>{const t=r.lineToolsSynchronizer();null!==t&&(t.hasChanges().unsubscribe(e.recalcHasChanges),e.recalcHasChanges())}))}))}async function Ut(e,t,i){var r,n;try{const t=e.chartWidgetsDefs.map((e=>{var t,i,s;return null!==(s=null===(i=null===(t=e.chartWidget)||void 0===t?void 0:t.lineToolsSynchronizer())||void 0===i?void 0:i.flushPendingSavings())&&void 0!==s?s:null})).filter(ae.notNull);t.length&&await Promise.all(t)}catch(e){Je.logError(`Error flushing line tools: ${e}`)}(t=e.checkProFeature(t))in k.layouts||(t="s"),zt(e,i);const o=e.layoutType,a=k.layouts[t].count;(0,M.emit)("layout_about_to_be_changed",t),(null!==(r=e.splitters.value())&&void 0!==r?r:[]).forEach(((e,t)=>{e.splitterElement.remove(),e.mouseHandler.destroy()})),e.splitters.setValue([]);const l=k.layouts[t];e.layoutTemplate.setValue(l);const c=null!==(n=e.allLayoutSizesState.get(l.layoutType))&&void 0!==n?n:(0,te.layoutInitialSizingState)(l.expression);e.allLayoutSizesState.set(l.layoutType,c),e.sizingState.setValue(c);const h=e.maximizedChartDef.value();o!==t&&e.maximizedChartDef.value()&&e.maximizedChartDef.setValue(null),h&&e.activeChartWidget.setValue((0,s.ensureNotNull)(h.chartWidget));for(let t=0;t=a -;if(r=e.maximizedChartDef.value()?e.maximizedChartDef.value()===n:t1),n.fullscreen.setValue(e.maximizedChartDef.value()===n),n.collapsed.setValue(o)}else n&&(Ht(n),n.collapsed.setValue(o))}e.sizingState.setValue(c),Bt(e),e.layoutWV.setValue(t),e.setLayoutType(t),e.updateWatchedValue(),function(e){const t=e.layoutTemplate.value().count;e.inlineChartsCount.setValue(t),e.globalDetachable.setValue(t>1)}(e),e.checkAllPendingModelsAlreadyCreated(),function(e,t){e.chartWidgetsDefs.forEach((i=>{const r=(0,s.ensureNotNull)(i.chartWidget);r.onZoom().subscribe(t,(t=>e.onZoom.fire(t))),r.onScroll().subscribe(t,(()=>e.onScroll.fire())),r.withModel(null,(()=>{const t=r.lineToolsSynchronizer();null!==t&&(t.hasChanges().subscribe(e.recalcHasChanges),e.recalcHasChanges())}))}))}(e,i),e.inlineChartsCount.value()<1&&a>0&&e.chartWidgetsDefs[a-1].rdState.bridge().attach()}function jt(e,t,i,s,r){if(!s&&!e.crosshairLockRaw)return!1;const n=e.actualLayoutCount();return e.chartWidgetsDefs.slice(0,n).filter((e=>e.rdState.bridge().visible.value())).map((e=>e.chartWidget)).filter((e=>e.id()!==i&&e.hasModel())).forEach((e=>e.model().model().setExternalPosition(t,r))),!0}function Gt(e,t,i,s,r){if(jt(e,t,i,s,r)){const i=e.crossHairSyncBroadcast;if(i){const e={type:"crosshair",payload:{point:t,envState:r,sourceUniqueId:i.uniqueId}};i.channel.postMessage(e)}}}function qt(e){const t=new BroadcastChannel("ChartWidgetsCollection");return t.onmessage=t=>{const i=t.data,s=e();if(s.crossHairSyncBroadcast&&"crosshair"===i.type)s.crossHairSyncBroadcast.uniqueId!==i.payload.sourceUniqueId&&jt(s,i.payload.point,null,!1,i.payload.envState)},{channel:t,uniqueId:(0,J.randomHashN)(6)}}function $t(e){var t;null===(t=e.crossHairSyncBroadcast)||void 0===t||t.channel.close()}function Yt(e,t,i){if(!e.trackTimeLock.value()||e.dateRangeLock.value())return;const s=e.layoutTemplate.value().count;e.undoHistory.beginUndoMacro(et),e.chartWidgetsDefs.slice(0,s).filter((e=>e.chartWidget.hasModel()&&e.chartWidget.model().model()!==i)).forEach((e=>{const i=e.chartWidget.model().model(),s=i.mainSeries().syncModel();s&&i.syncTimeWithModel(s.syncSourceTarget(),t)})),e.undoHistory.endUndoMacro()}function Kt(e){return Promise.all(e.map((e=>{const t=e.model().mainSeries();return t.symbolResolvingActive().value()?h(t.dataEvents().symbolResolved()).promise:t.symbolInfo()})))}function Xt(e){return e.chartWidgetsDefs.every((e=>e.chartWidget.hasModel()))?Promise.resolve(e.chartWidgetsDefs.map((e=>e.chartWidget))):Promise.all(e.chartWidgetsDefs.map((e=>e.chartWidget.hasModel()||h(e.chartWidget.modelCreated()).promise))).then((()=>Xt(e)))}function Zt(e,t){var i;if((0,c.enabled)("charting_library_base"))return t -;if("s"===t||e.widgetOptions.containsData||e.readOnly||isProductFeatureEnabled(ProductFeatures.MULTIPLE_CHARTS)&&(0,s.ensure)(null===(i=getProductFeatureConfig(ProductFeatures.MULTIPLE_CHARTS))||void 0===i?void 0:i.limit)>=k.layouts[t].count)return t;return"s"}async function Jt(e,t,i){if(i=Zt(e,i),e.layoutWV.value()===i)return!1;const s=e.chartWidgetsDefs.map((e=>{var t,i,s;return null!==(s=null===(i=null===(t=e.chartWidget)||void 0===t?void 0:t.lineToolsSynchronizer())||void 0===i?void 0:i.flushPendingSavings())&&void 0!==s?s:null})).filter(ae.notNull);if(s.length)try{await Promise.all(s)}catch(e){Je.logError(`Error flushing line tools: ${e}`)}return e.undoHistory.pushUndoCommand(new oe(t,i)),!0}async function Qt(e,t,i){const{theme:s,onlyActiveChart:r,restoreNonThemeDefaults:n,themeName:o,standardTheme:a,syncState:l=!0,noUndo:c}=i,h=(0,L.getCurrentTheme)().name;let d;r?d=[e.activeChartWidget.value()]:(await Promise.all(e.savedChartWidgetOptions.map(((i,s)=>new Promise((i=>{Ht(Wt(e,t,s,i))}))))),d=e.chartWidgetsDefs.map((e=>e.chartWidget))),c?(a&&new qe(h,o,l).redo(),d.forEach((e=>{e.model().model().restoreTheme(s,n,c)}))):(e.undoHistory.beginUndoMacro(st),a&&e.undoHistory.pushUndoCommand(new qe(h,o,l)),d.forEach((e=>{e.model().model().restoreTheme(s,n)})),e.undoHistory.endUndoMacro())}function ei(e,t){e.symbolLock.setValue(t)}function ti(e,t){const{internalSymbolLock:i,activeChartWidget:s,undoHistory:r,chartWidgetsDefs:n,dateRangeLock:o,loadingContent:a}=e;if(t!==i.value())if(a)i.setValue(t);else{if(e.undoHistory.beginUndoMacro(rt),t){const t=s.value(),i=t.getSymbol();for(let s=0;s{"use strict";i.r(t),i.d(t,{setChartFontFamily:()=>r,CHART_FONT_FAMILY:()=>n,CHART_MONOSPACE_FONT_FAMILY:()=>o});const s="'Trebuchet MS', Roboto, Ubuntu, sans-serif";function r(e){ -n=e}let n=`-apple-system, BlinkMacSystemFont, ${s}`;const o="monospace"},72005:(e,t,i)=>{"use strict";var s=i(26867);i(51226);var r=i(47539).TranslatedString,n=i(50151),o=n.assert,a=n.ensureDefined,l=i(46936).Series,c=i(2484),h=i(50792).ActionBinder,d=i(56840).setValue,u=i(35936).TabNames,p=i(68009).showGoToDateDialog,_=i(68335),m=i(66141),g=i(68927).Study,f=i(46289).StudyStub,v=i(89215).isStudy,S=i(10971).LineDataSource,y=i(6250),b=y.isLineTool,w=y.isStudyLineTool,P=i(83421).STUDYPLOTDISPLAYTARGET,C=i(43986).Action,T=i(62923).ACTION_ID,x=i(76076),I=i(578).Interval,M=i(1930),A=M.getDefaultStyle,L=M.hasVolume,k=i(29628).showSymbolInfoDialog,E=i(36646).InvalidationMask,D=i(82992).linking,B=i(84603).showChangeIntervalDialogAsync,V=i(68121).showDialog,R=i(20364),N=R.availableTimezones,O=R.timezoneIsAvailable,F=i(90995).toggleHideMode,W=i(58403).StudyMetaInfo,H=i(51768).trackEvent,z=i(78996).lastMouseOrTouchEventInfo,U=i(64548);const{viewportChangeEvent:j}=i(97425),{SelectPointMode:G}=i(76076),{ReplayStatus:q}=i(14948);var $=i(98351).getLogger("ChartWidget",{color:"#606"}),Y=i(86339).appendEllipsis,K=i(57737).isMultipleLayout,X=i(19334).addPerfMark,Z=i(52865).combineProperty,J=i(46719).ChartWidgetBase,Q=i(49483).CheckMobile.any(),ee=i(45673).TIMEFRAMETYPE,te=i(71668).createDeferredPromise,ie=i(87172).addPlusButtonProperty;const se=c.enabled("show_average_close_price_line_and_label");var re=new r("change timezone",i(44352).t(null,void 0,i(20505))),ne=new r("scale price chart only",i(44352).t(null,void 0,i(99042))),oe=new r("stay in drawing mode",i(44352).t(null,void 0,i(52010))),ae=(new r("hide all drawing tools",i(44352).t(null,void 0,i(54781))),new r("hide marks on bars",i(44352).t(null,void 0,i(44974)))),le=new r("change symbol last value visibility",i(44352).t(null,void 0,i(53150))),ce=(new r("change symbol previous close value visibility",i(44352).t(null,void 0,i(12707))),new r("change previous close price line visibility",i(44352).t(null,void 0,i(59883))),new r("change symbol labels visibility",i(44352).t(null,void 0,i(9402)))),he=new r("change indicators name labels visibility",i(44352).t(null,void 0,i(87027))),de=new r("change indicators value labels visibility",i(44352).t(null,void 0,i(14922))),ue=(new r("change bid and ask labels visibility",i(44352).t(null,void 0,i(5100))),new r("change bid and ask lines visibility",i(44352).t(null,void 0,i(32311))),new r("change pre/post market price label visibility",i(44352).t(null,void 0,i(49889))),new r("change pre/post market price line visibility",i(44352).t(null,void 0,i(16750))), +;if(r=e.maximizedChartDef.value()?e.maximizedChartDef.value()===n:t1),n.fullscreen.setValue(e.maximizedChartDef.value()===n),n.collapsed.setValue(o)}else n&&(Ht(n),n.collapsed.setValue(o))}e.sizingState.setValue(c),Bt(e),e.layoutWV.setValue(t),e.setLayoutType(t),e.updateWatchedValue(),function(e){const t=e.layoutTemplate.value().count;e.inlineChartsCount.setValue(t),e.globalDetachable.setValue(t>1)}(e),e.checkAllPendingModelsAlreadyCreated(),function(e,t){e.chartWidgetsDefs.forEach((i=>{const r=(0,s.ensureNotNull)(i.chartWidget);r.onZoom().subscribe(t,(t=>e.onZoom.fire(t))),r.onScroll().subscribe(t,(()=>e.onScroll.fire())),r.withModel(null,(()=>{const t=r.lineToolsSynchronizer();null!==t&&(t.hasChanges().subscribe(e.recalcHasChanges),e.recalcHasChanges())}))}))}(e,i),e.inlineChartsCount.value()<1&&a>0&&e.chartWidgetsDefs[a-1].rdState.bridge().attach()}function jt(e,t,i,s,r){if(!s&&!e.crosshairLockRaw)return!1;const n=e.actualLayoutCount();return e.chartWidgetsDefs.slice(0,n).filter((e=>e.rdState.bridge().visible.value())).map((e=>e.chartWidget)).filter((e=>e.id()!==i&&e.hasModel())).forEach((e=>e.model().model().setExternalPosition(t,r))),!0}function Gt(e,t,i,s,r){if(jt(e,t,i,s,r)){const i=e.crossHairSyncBroadcast;if(i){const e={type:"crosshair",payload:{point:t,envState:r,sourceUniqueId:i.uniqueId}};i.channel.postMessage(e)}}}function qt(e){const t=new BroadcastChannel("ChartWidgetsCollection");return t.onmessage=t=>{const i=t.data,s=e();if(s.crossHairSyncBroadcast&&"crosshair"===i.type)s.crossHairSyncBroadcast.uniqueId!==i.payload.sourceUniqueId&&jt(s,i.payload.point,null,!1,i.payload.envState)},{channel:t,uniqueId:(0,J.randomHashN)(6)}}function $t(e){var t;null===(t=e.crossHairSyncBroadcast)||void 0===t||t.channel.close()}function Yt(e,t,i){if(!e.trackTimeLock.value()||e.dateRangeLock.value())return;const s=e.layoutTemplate.value().count;e.undoHistory.beginUndoMacro(et),e.chartWidgetsDefs.slice(0,s).filter((e=>e.chartWidget.hasModel()&&e.chartWidget.model().model()!==i)).forEach((e=>{const i=e.chartWidget.model().model(),s=i.mainSeries().syncModel();s&&i.syncTimeWithModel(s.syncSourceTarget(),t)})),e.undoHistory.endUndoMacro()}function Kt(e){return Promise.all(e.map((e=>{const t=e.model().mainSeries();return t.symbolResolvingActive().value()?h(t.dataEvents().symbolResolved()).promise:t.symbolInfo()})))}function Zt(e){return e.chartWidgetsDefs.every((e=>e.chartWidget.hasModel()))?Promise.resolve(e.chartWidgetsDefs.map((e=>e.chartWidget))):Promise.all(e.chartWidgetsDefs.map((e=>e.chartWidget.hasModel()||h(e.chartWidget.modelCreated()).promise))).then((()=>Zt(e)))}function Xt(e,t){var i;if((0,c.enabled)("charting_library_base"))return t +;if("s"===t||e.widgetOptions.containsData||e.readOnly||isProductFeatureEnabled(ProductFeatures.MULTIPLE_CHARTS)&&(0,s.ensure)(null===(i=getProductFeatureConfig(ProductFeatures.MULTIPLE_CHARTS))||void 0===i?void 0:i.limit)>=k.layouts[t].count)return t;return"s"}async function Jt(e,t,i){if(i=Xt(e,i),e.layoutWV.value()===i)return!1;const s=e.chartWidgetsDefs.map((e=>{var t,i,s;return null!==(s=null===(i=null===(t=e.chartWidget)||void 0===t?void 0:t.lineToolsSynchronizer())||void 0===i?void 0:i.flushPendingSavings())&&void 0!==s?s:null})).filter(ae.notNull);if(s.length)try{await Promise.all(s)}catch(e){Je.logError(`Error flushing line tools: ${e}`)}return e.undoHistory.pushUndoCommand(new oe(t,i)),!0}async function Qt(e,t,i){const{theme:s,onlyActiveChart:r,restoreNonThemeDefaults:n,themeName:o,standardTheme:a,syncState:l=!0,noUndo:c}=i,h=(0,L.getCurrentTheme)().name;let d;r?d=[e.activeChartWidget.value()]:(await Promise.all(e.savedChartWidgetOptions.map(((i,s)=>new Promise((i=>{Ht(Wt(e,t,s,i))}))))),d=e.chartWidgetsDefs.map((e=>e.chartWidget))),c?(a&&new qe(h,o,l).redo(),d.forEach((e=>{e.model().model().restoreTheme(s,n,c)}))):(e.undoHistory.beginUndoMacro(st),a&&e.undoHistory.pushUndoCommand(new qe(h,o,l)),d.forEach((e=>{e.model().model().restoreTheme(s,n)})),e.undoHistory.endUndoMacro())}function ei(e,t){e.symbolLock.setValue(t)}function ti(e,t){const{internalSymbolLock:i,activeChartWidget:s,undoHistory:r,chartWidgetsDefs:n,dateRangeLock:o,loadingContent:a}=e;if(t!==i.value())if(a)i.setValue(t);else{if(e.undoHistory.beginUndoMacro(rt),t){const t=s.value(),i=t.getSymbol();for(let s=0;s{"use strict";i.r(t),i.d(t,{setChartFontFamily:()=>r,CHART_FONT_FAMILY:()=>n,CHART_MONOSPACE_FONT_FAMILY:()=>o});const s="'Trebuchet MS', Roboto, Ubuntu, sans-serif";function r(e){ +n=e}let n=`-apple-system, BlinkMacSystemFont, ${s}`;const o="monospace"},72005:(e,t,i)=>{"use strict";var s=i(26867);i(51226);var r=i(47539).TranslatedString,n=i(50151),o=n.assert,a=n.ensureDefined,l=i(46936).Series,c=i(2484),h=i(50792).ActionBinder,d=i(56840).setValue,u=i(35936).TabNames,p=i(68009).showGoToDateDialog,_=i(68335),m=i(66141),g=i(68927).Study,f=i(46289).StudyStub,v=i(89215).isStudy,S=i(10971).LineDataSource,y=i(6250),b=y.isLineTool,w=y.isStudyLineTool,P=i(83421).STUDYPLOTDISPLAYTARGET,C=i(43986).Action,T=i(62923).ACTION_ID,x=i(76076),I=i(578).Interval,M=i(1930),A=M.getDefaultStyle,L=M.hasVolume,k=i(29628).showSymbolInfoDialog,E=i(36646).InvalidationMask,D=i(82992).linking,B=i(84603).showChangeIntervalDialogAsync,V=i(68121).showDialog,R=i(20364),N=R.availableTimezones,O=R.timezoneIsAvailable,F=i(90995).toggleHideMode,W=i(58403).StudyMetaInfo,H=i(51768).trackEvent,z=i(78996).lastMouseOrTouchEventInfo,U=i(64548);const{viewportChangeEvent:j}=i(97425),{SelectPointMode:G}=i(76076),{ReplayStatus:q}=i(14948);var $=i(98351).getLogger("ChartWidget",{color:"#606"}),Y=i(86339).appendEllipsis,K=i(57737).isMultipleLayout,Z=i(19334).addPerfMark,X=i(52865).combineProperty,J=i(46719).ChartWidgetBase,Q=i(49483).CheckMobile.any(),ee=i(45673).TIMEFRAMETYPE,te=i(71668).createDeferredPromise,ie=i(87172).addPlusButtonProperty;const se=c.enabled("show_average_close_price_line_and_label");var re=new r("change timezone",i(44352).t(null,void 0,i(20505))),ne=new r("scale price chart only",i(44352).t(null,void 0,i(99042))),oe=new r("stay in drawing mode",i(44352).t(null,void 0,i(52010))),ae=(new r("hide all drawing tools",i(44352).t(null,void 0,i(54781))),new r("hide marks on bars",i(44352).t(null,void 0,i(44974)))),le=new r("change symbol last value visibility",i(44352).t(null,void 0,i(53150))),ce=(new r("change symbol previous close value visibility",i(44352).t(null,void 0,i(12707))),new r("change previous close price line visibility",i(44352).t(null,void 0,i(59883))),new r("change symbol labels visibility",i(44352).t(null,void 0,i(9402)))),he=new r("change indicators name labels visibility",i(44352).t(null,void 0,i(87027))),de=new r("change indicators value labels visibility",i(44352).t(null,void 0,i(14922))),ue=(new r("change bid and ask labels visibility",i(44352).t(null,void 0,i(5100))),new r("change bid and ask lines visibility",i(44352).t(null,void 0,i(32311))),new r("change pre/post market price label visibility",i(44352).t(null,void 0,i(49889))),new r("change pre/post market price line visibility",i(44352).t(null,void 0,i(16750))), new r("change high and low price lines visibility",i(44352).t(null,void 0,i(92556)))),pe=new r("change high and low price labels visibility",i(44352).t(null,void 0,i(66805))),_e=new r("change average close price line visibility",i(44352).t(null,void 0,i(98866))),me=new r("change average close price label visibility",i(44352).t(null,void 0,i(39402))),ge=new r("change countdown to bar close visibility",i(44352).t(null,void 0,i(58108))),fe=new r("change plus button visibility",i(44352).t(null,void 0,i(50190))),ve=new r("change price line visibility",i(44352).t(null,void 0,i(67761))),Se=new r("unlock {title}",i(44352).t(null,void 0,i(92421))),ye=new r("lock {title}",i(44352).t(null,void 0,i(50193))),be=new r("change session breaks visibility",i(44352).t(null,void 0,i(15403))),we=i(44352).t(null,void 0,i(15241)),Pe=i(44352).t(null,void 0,i(29404)),Ce=i(44352).t(null,void 0,i(44302)),Te=i(44352).t(null,void 0,i(94338));e.exports.ChartWidget=class extends J{constructor(e,t,i){super(e,t,i),this._options.timeScaleWidget&&(this._options.timeScaleWidget.pressedMouseMoveScale=this._options.handleScale.axisPressedMouseMove.time);var r=this,n=this._options.content,o=this._options.readOnly;this._removeMaximizeHotkey=null,r._hotkeys=m.createGroup({desc:"Chart actions",isDisabled:function(){return!r._isActive}});var a=this._options.containsData,l=this._options.onWidget,c=this._options.onCmeWidget;c&&$.logWarn("[ChartWidget] 'onCmeWidget' option is depricated");var h=this._options.widgetCustomer,d=this._options.timezone,u=this._options.hideSymbolSearch,p=this._options.defSymbol,_=I.isValid(this._options.defInterval)?this._options.defInterval:void 0,g=parseInt(this._options.defStyle),f=M.isValidStyle(g)?g:void 0,v=this._options.defSessionId,S=void 0!==this._options.defTimeframe?"string"==typeof this._options.defTimeframe?{value:this._options.defTimeframe.toUpperCase(),type:ee.PeriodBack}:{...this._options.defTimeframe,type:ee.TimeRange}:void 0;this._content=n,this._initialLoading=this._options.initialLoading,this._readOnly=o,this._containsData=a,this._defSymbol=p,this._defInterval=_,this._defTimeframe=S,this._defStyle=f,this._onWidget=!!l,this._compareSymbols=this._options.compareSymbols,this._onWidget&&(c?this._widgetCustomer="cme":h&&(this._widgetCustomer=h)),this._hideSymbolSearch=u,this._frameTime=30,this._model=null,this._metaInfo={},this._drawRafId=0,this._compareDialog=this._chartWidgetCollection.getCompareDialogRenderer();var y=this._contentSeriesProperties();y&&(p=y.symbol,_=y.interval),void 0===this._options.useUserChartPreferences&&(this._options.useUserChartPreferences=!0);var b="chartproperties.mainSeriesProperties",w=this._options.useUserChartPreferences?U.defaults(b):U.factoryDefaults(b);this._properties.mainSeriesProperties.merge(w),this._properties.mainSeriesProperties.hasChild("esdBreaksStyle")&&this._properties.mainSeriesProperties.removeProperty("esdBreaksStyle"),_=_||w.interval||"D",M.isValidStyle(f)||(f=M.isValidStyle(w.style)?w.style:A(I.isRange(_))),this._properties.mainSeriesProperties.merge({visible:!0, -symbol:p||DEFAULT_SYMBOL,shortName:"",timeframe:"",onWidget:this._onWidget,interval:_,currencyId:null,unitId:null,style:f,sessionId:v,lineStyle:{styleType:U.factoryDefaults("chartproperties.mainSeriesProperties.lineStyle.styleType")}}),this._containsData&&this._properties.mainSeriesProperties.merge({showCountdown:!1}),d&&O(d)&&this._properties.timezone.setValue(d),this._tagsChanged=new s,this._timingsMeter=null,this._isActive=this._options.isActive,this._options.container.subscribe((function(e){r._setElement(e)}),{callWithLast:!0});var P=function(){r.resize()};this._options.width.subscribe(P),this._options.height.subscribe(P),this._options.visible.subscribe(this._updateTimingsMeterState.bind(this)),this._aboutToBeDestroyed=new s,this._actions=null,this._definitionsViewModel=null,this._backgroundTopColorSpawn=null,this._backgroundBottomColorSpawn=null,this._hintDefferedPromise=null,this._activeHint=null}isInitialized(){return Boolean(this._inited)}compareSymbols(){return this._compareSymbols}async _getChartPropertyDefinitionsViewModel(){if(null===this._definitionsViewModel){const{ChartPropertyDefinitionsViewModel:e}=await Promise.all([i.e(6803),i.e(6444),i.e(892),i.e(8622),i.e(3596)]).then(i.bind(i,25008));if(this._isDestroyed)throw new Error("Chart widget already destroyed");await new Promise((e=>this.withModel(null,e))),null===this._definitionsViewModel&&(this._definitionsViewModel=new e(this.model(),this.properties(),this._options))}return this._definitionsViewModel}_initMaximizeHotkey(e){var t=this;function i(e){e.defaultPrevented||_.modifiersFromEvent(e)===_.Modifiers.Alt&&e.stopPropagation()}function s(e){e.defaultPrevented||_.modifiersFromEvent(e)===_.Modifiers.Alt&&(e.preventDefault(),e.stopPropagation(),t.toggleFullscreen())}return e.addEventListener("mousedown",i,!0),e.addEventListener("click",s,!0),function(){e.removeEventListener("mousedown",i,!0),e.removeEventListener("click",s,!0)}}toggleFullscreen(){var e=this.getResizerDetacher();e.fullscreenable.value()&&(e.fullscreen.value()?e.exitFullscreen():e.requestFullscreen())}_beginRequestActive(){var e=this._chartWidgetCollection.activeChartWidget.value()!==this;if(this._chartWidgetCollection.activeChartWidget.setValue(this),e){const e=z();e.isTouch&&!e.stylus&&this._isLineToolModeExceptBrush()&&this.updateCrossHairPositionIfNeeded(),this._justActivated=!0}}_endRequestActive(){var e=this;this._justActivated&&setTimeout((function(){e._justActivated=!1}),0)}_requestActive(){this._beginRequestActive(),this._endRequestActive()}justActivated(){return this._justActivated}setTimezone(e){e&&O(e)?this._properties.timezone.setValue(e):console.warn("Incorrect timezone: "+JSON.stringify(e))}getTimezone(){return this._properties.timezone.value()}refreshMarks(){this.model().barsMarksSources().forEach((function(e){e.refreshData()}))}clearMarks(){this.model().barsMarksSources().forEach((function(e){e.clearMarks()}))}metaInfoRepository(){return this._metaInfoRepository}_initBackgroundColor(){ +symbol:p||DEFAULT_SYMBOL,shortName:"",timeframe:"",onWidget:this._onWidget,interval:_,currencyId:null,unitId:null,style:f,sessionId:v,lineStyle:{styleType:U.factoryDefaults("chartproperties.mainSeriesProperties.lineStyle.styleType")}}),this._containsData&&this._properties.mainSeriesProperties.merge({showCountdown:!1}),d&&O(d)&&this._properties.timezone.setValue(d),this._tagsChanged=new s,this._timingsMeter=null,this._isActive=this._options.isActive,this._options.container.subscribe((function(e){r._setElement(e)}),{callWithLast:!0});var P=function(){r.resize()};this._options.width.subscribe(P),this._options.height.subscribe(P),this._options.visible.subscribe(this._updateTimingsMeterState.bind(this)),this._aboutToBeDestroyed=new s,this._actions=null,this._definitionsViewModel=null,this._backgroundTopColorSpawn=null,this._backgroundBottomColorSpawn=null,this._hintDefferedPromise=null,this._activeHint=null}isInitialized(){return Boolean(this._inited)}compareSymbols(){return this._compareSymbols}async _getChartPropertyDefinitionsViewModel(){if(null===this._definitionsViewModel){const{ChartPropertyDefinitionsViewModel:e}=await Promise.all([i.e(6803),i.e(6444),i.e(892),i.e(8622),i.e(3596)]).then(i.bind(i,25008));if(this._isDestroyed)throw new Error("Chart widget already destroyed");await new Promise((e=>this.withModel(null,e))),null===this._definitionsViewModel&&(this._definitionsViewModel=new e(this.model(),this.properties(),this._options))}return this._definitionsViewModel}_initMaximizeHotkey(e){var t=this;function i(e){e.defaultPrevented||_.modifiersFromEvent(e)===_.Modifiers.Alt&&e.stopPropagation()}function s(e){e.defaultPrevented||_.modifiersFromEvent(e)===_.Modifiers.Alt&&(e.preventDefault(),e.stopPropagation(),t.toggleFullscreen())}return e.addEventListener("mousedown",i,!0),e.addEventListener("click",s,!0),function(){e.removeEventListener("mousedown",i,!0),e.removeEventListener("click",s,!0)}}toggleFullscreen(){var e=this.getResizerDetacher();e.fullscreenable.value()&&(e.fullscreen.value()?e.exitFullscreen():e.requestFullscreen())}_beginRequestActive(){var e=this._chartWidgetCollection.activeChartWidget.value()!==this;if(this._chartWidgetCollection.activeChartWidget.setValue(this),e){const e=z();e.isTouch&&!e.stylus&&this._isLineToolModeExceptBrush()&&this.updateCrossHairPositionIfNeeded(),this._justActivated=!0}}_endRequestActive(){var e=this;this._justActivated&&setTimeout((function(){e._justActivated=!1}),0)}_requestActive(){this._beginRequestActive(),this._endRequestActive()}justActivated(){return this._justActivated}setTimezone(e){e&&O(e)?this._properties.timezone.setValue(e):console.warn("Incorrect timezone: "+JSON.stringify(e))}getTimezone(){return this._properties.timezone.value()}refreshMarks(){this.model().barsMarksSources().forEach((function(e){e.refreshData()}))}clearMarks(e){this.model().barsMarksSources().forEach((function(t){t.clearMarks(e)}))}metaInfoRepository(){return this._metaInfoRepository}_initBackgroundColor(){ null===this._backgroundTopColorSpawn&&(this._backgroundTopColorSpawn=this._model.model().backgroundTopColor().spawn(),this._backgroundTopColorSpawn.subscribe(this._onBackgroundColorChanged.bind(this))),null===this._backgroundBottomColorSpawn&&(this._backgroundBottomColorSpawn=this._model.model().backgroundColor().spawn(),this._backgroundBottomColorSpawn.subscribe(this._onBackgroundColorChanged.bind(this)))}paneWidgets(){return this._paneWidgets}paneByCanvas(e){for(var t=0;t{null!==e&&t()}))}));var t=new C({actionId:T.ChartScalesReset,label:i(44352).t(null,void 0,i(34301)),icon:i(39267),statName:"ResetChart",onExecute:this.GUIResetScales.bind(this),hotkeyGroup:this._hotkeys,hotkeyHash:m.Modifiers.Alt+82}),s=new C({actionId:T.ChartSeriesPriceScaleToggleInvertPriceScale,label:i(44352).t(null,void 0,i(53239)),statName:"Invert Scale",checkable:!0,onExecute:function(){e._model.invertPriceScale(e._model.mainSeries().priceScale())},hotkeyGroup:this._hotkeys,hotkeyHash:m.Modifiers.Alt+73}),r=new C({actionId:T.ChartSeriesPriceScaleToggleAutoScale,label:i(44352).t(null,void 0,i(50834)),checkable:!0,onExecute:function(){var t=e._model.mainSeries().priceScale();e._model.togglePriceScaleAutoScaleMode(t),r.update({checked:t.isAutoScale()})}}),n=new C({actionId:T.ChartScalesToggleLockPriceToBarRatio,label:i(44352).t(null,void 0,i(18219)),checkable:!0,statName:"ToggleLockScale",onExecute:function(){e._model.togglePriceScaleLockScaleMode(e._model.mainSeries().priceScale())}}),o=new C({actionId:T.ChartSeriesPriceScaleToggleRegular,label:i(44352).t(null,{context:"scale_menu"},i(72116)),checkable:!0,statName:"ToggleRegularScale",onExecute:function(){var t=e._model.mainSeries().priceScale();e._model.setPriceScaleRegularScaleMode(t),o.update({checked:t.isRegular()})}}),a=new C({actionId:T.ChartSeriesPriceScaleTogglePercentage,label:i(44352).t(null,void 0,i(51102)),checkable:!0,statName:"TogglePercantage",onExecute:function(){e._model.togglePriceScalePercentageScaleMode(e._model.mainSeries().priceScale())},hotkeyGroup:this._hotkeys,hotkeyHash:m.Modifiers.Alt+80}),l=new C({actionId:T.ChartSeriesPriceScaleToggleIndexedTo100,label:i(44352).t(null,void 0,i(20062)),checkable:!0,statName:"ToggleIndexedTo100",onExecute:function(){e._model.togglePriceScaleIndexedTo100ScaleMode(e._model.mainSeries().priceScale())}}),g=new C({actionId:T.ChartSeriesPriceScaleToggleLogarithmic,label:i(44352).t(null,void 0,i(12285)),statName:"ToggleLogScale",checkable:!0,onExecute:function(){e._model.togglePriceScaleLogScaleMode(e._model.mainSeries().priceScale())},hotkeyGroup:this._hotkeys,hotkeyHash:m.Modifiers.Alt+76}),f=new C({actionId:T.ChartUndo,label:i(44352).t(null,void 0,i(81320)),onExecute:function(){H("GUI","Undo"),e._model.undoHistory().undo()},disabled:!0,hotkeyGroup:this._hotkeys,hotkeyHash:m.Modifiers.Mod+90}),v=new C({actionId:T.ChartRedo,label:i(44352).t(null,void 0,i(41615)),onExecute:function(){H("GUI","Redo"),e._model.undoHistory().redo()},disabled:!0,hotkeyGroup:this._hotkeys,hotkeyHash:m.Modifiers.Mod+89});e.withModel(null,(function(){e._model.undoHistory().undoStack().onChange().subscribe(e,e.updateUndoRedo),e._model.undoHistory().redoStack().onChange().subscribe(e,e.updateUndoRedo)}));var S=new C({actionId:T.ChartChangeTimeZone,label:i(44352).t(null,void 0,i(64375)),statName:"TimeZone"}),y=new C({actionId:T.ChartDialogsShowChangeSymbol,label:Y(i(44352).t(null,void 0,i(28089))),statName:"ChangeSymbol",onExecute:function(){V({defaultValue:""})}}) -;d("symboledit.dialog_last_entry","");var b={actionId:T.ChartDialogsShowChangeInterval,label:Y(i(44352).t(null,void 0,i(99374))),statName:"ChangeInterval",onExecute:function(){B({initVal:D.interval.value(),selectOnInit:!0})}};!c.enabled("show_interval_dialog_on_key_press")||this.readOnly()||this._hideSymbolSearch||(b.shortcutHint=",",b.hotkeyGroup=this._hotkeys,b.hotkeyHash=188);var w,P=new C(b);if(!TradingView.onWidget()){if(this._options.addToWatchlistEnabled){const e={hotkeyGroup:this._hotkeys};w=new WatchListAction(this,e)}0}var I=new C({actionId:T.ChartTimeScaleReset,label:i(44352).t(null,void 0,i(25333)),icon:i(39267),statName:"ResetScale",onExecute:function(){e.model().resetTimeScale()},hotkeyGroup:this._hotkeys,hotkeyHash:m.Modifiers.Mod+m.Modifiers.Alt+81}),M=new C({actionId:T.ChartRemoveAllIndicators,label:i(44352).t(null,void 0,i(13951)),statName:"RemoveAllIndicators",onExecute:this.removeAllStudies.bind(this)}),A=new C({actionId:T.ChartRemoveAllLineTools,label:i(44352).t(null,void 0,i(1434)),statName:"RemoveAllDrawingTools",onExecute:this.removeAllDrawingTools.bind(this)}),L=new C({actionId:T.ChartRemoveAllIndicatorsAndLineTools,label:i(44352).t(null,void 0,i(97305)),statName:"RemoveAllIndicatorsAndDrawingTools",onExecute:this.removeAllStudiesDrawingTools.bind(this)}),R=this.chartWidgetCollection(),N=new C({actionId:T.ChartApplyIndicatorsToAllCharts,label:i(44352).t(null,void 0,i(95910)),statName:"ApplyIndicatorsToAllCharts",onExecute:function(){R.applyIndicatorsToAllCharts(e)}}),O={actionId:T.ChartDialogsShowInsertIndicators,label:Y(i(44352).t(null,void 0,i(98767))),statName:"InsertIndicator",onExecute:function(){e.showIndicators()}};this._options.indicatorsDialogShortcutEnabled&&(O.hotkeyGroup=this._hotkeys,O.hotkeyHash=191,this._hotkeys.add({handler:function(){this.showIndicators()}.bind(this),desc:"Show insert indicator dialog",hotkey:111}));var W,z=new C(O),U=new C({actionId:T.ChartDialogsShowCompareOrAddSymbol,label:Y(i(44352).t(null,void 0,i(20229))),statName:"CompareOrAddSymbol",onExecute:this.toggleCompareOrAdd.bind(this)}),G=new C({actionId:T.ChartObjectTreeShow,label:Y(i(44352).t(null,void 0,i(675))),statName:"ObjectsTree",onExecute:this.showObjectsTreePanelOrDialog.bind(this)}),q=new C({actionId:T.ChartDialogsShowGeneralSettings,label:Y(i(44352).t(null,void 0,i(89517))),icon:i(51983),statName:"ChartProperties",onExecute:function(){e.showGeneralChartProperties()}}),$=new C({actionId:T.ChartDialogsShowGeneralSettingsSymbolTab,label:Y(i(44352).t(null,void 0,i(89517))),icon:i(51983),statName:"MainSeriesProperties",onExecute:function(){e.showGeneralChartProperties(u.symbol)}}),K=new C({actionId:T.ChartSelectedObjectToggleLocked,label:i(44352).t(null,void 0,i(1441)),statName:"ToggleLockSelectedObject",onExecute:this.toggleLockSelectedObject.bind(this)}),X=new C({actionId:T.ChartSelectedObjectHide,label:i(44352).t(null,void 0,i(31971)),icon:i(84959),statName:"HideSelectedObject",onExecute:this.hideSelectedObject.bind(this)});c.enabled("property_pages")&&(W=new C({ -actionId:T.ChartSelectedObjectShowSettingsDialog,label:Y(i(44352).t(null,void 0,i(89517))),icon:i(51983),statName:"EditSelectedObject",onExecute:function(){e.showSelectedSourcesProperties()}})),this.withModel(null,(function(){var t=e.model().mainSeries(),i=t.properties();i.priceAxisProperties.subscribe(e,e._updateScalesActions),t.priceScaleAboutToBeChanged().subscribe(e,(function(){i.priceAxisProperties.unsubscribeAll(e)})),t.priceScaleChanged().subscribe(e,(function(){i.priceAxisProperties.subscribe(e,e._updateScalesActions),e._updateScalesActions()}))}));var J=new C({actionId:T.ChartPriceScaleToggleAutoScaleSeriesOnly,label:i(44352).t(null,void 0,i(37207)),checkable:!0,statName:"ScalePriceChartOnly"});J.binder=new h(J,this._properties.scalesProperties.scaleSeriesOnly,this.model(),ne);var Q=this.model().model();this._properties.scalesProperties.scaleSeriesOnly.listeners().subscribe(null,(function(){Q.recalculateAllPanes(j()),Q.invalidate(E.full())}));var ee=new C({actionId:T.ChartDrawingToolbarToggleVisibility,label:i(44352).t(null,void 0,i(22903)),checkable:!0,statName:"ToggleDrawingToolbar"}),te=this._options.isDrawingToolbarVisible;te&&(te.subscribe((function(e){ee.update({checked:e})}),{callWithLast:!0}),ee.update({onExecute:function(){te.setValue(!te.value())}}));var re=new C({actionId:"",label:i(44352).t(null,void 0,i(93161)),checkable:!0,statName:"ToggleStayInDrawingMode"});re.binder=new h(re,x.properties().stayInDrawingMode,this.model(),oe),this._hotkeys.add({handler:function(){F()},desc:"Hide all drawing tools",hotkey:m.Modifiers.Mod+m.Modifiers.Alt+72});var Se=new C({actionId:T.ChartMarksToggleVisibility,label:i(44352).t(null,void 0,i(2441)),checkable:!0,statName:"ToggleHideMarksOnBars"});Se.binder=new h(Se,x.hideMarksOnBars(),this.model(),ae,(function(){x.hideMarksOnBars().setValue(this.value())}));const ye=this.properties().scalesProperties;var be=new C({actionId:T.ChartPriceScaleLabelsToggleSeriesLastValueVisibility,label:i(44352).t(null,void 0,i(52054)),checkable:!0,checked:!1,statName:"ToggleSymbolLastValue"});be.binder=new h(be,ye.showSeriesLastValue,this.model(),le);var xe=new C({actionId:T.ChartPriceScaleLabelsToggleSymbolNameLabelsVisibility,label:i(44352).t(null,void 0,i(90932)),checkable:!0,checked:!1,statName:"ToggleSymbolLabels"});xe.binding=new h(xe,ye.showSymbolLabels,this.model(),ce);const Ie=Z(((e,t)=>e||!1),ye.showStudyLastValue,ye.showFundamentalLastValue);var Me=new C({actionId:T.ChartPriceScaleLabelsToggleIndicatorsValueLabelsVisibility,label:i(44352).t(null,void 0,i(81584)),checkable:!0,checked:!1,statName:"ToggleStudiesAndFundamentalsPriceLabels"});Me.binder=new h(Me,Ie,this.model(),null,(()=>{const e=!Ie.value();this.model().beginUndoMacro(de),this.model().setProperty(ye.showStudyLastValue,e,null),this.model().endUndoMacro()}));const Ae=Z(((e,t)=>e||!1),ye.showStudyPlotLabels,ye.showFundamentalNameLabel);var Le=new C({actionId:T.ChartPriceScaleLabelsToggleIndicatorsNameLabelsVisibility,label:i(44352).t(null,void 0,i(31485)),checkable:!0,checked:!1, +;d("symboledit.dialog_last_entry","");var b={actionId:T.ChartDialogsShowChangeInterval,label:Y(i(44352).t(null,void 0,i(99374))),statName:"ChangeInterval",onExecute:function(){B({initVal:D.interval.value(),selectOnInit:!0})}};!c.enabled("show_interval_dialog_on_key_press")||this.readOnly()||this._hideSymbolSearch||(b.shortcutHint=",",b.hotkeyGroup=this._hotkeys,b.hotkeyHash=188);var w,P=new C(b);if(!TradingView.onWidget()){if(this._options.addToWatchlistEnabled){const e={hotkeyGroup:this._hotkeys};w=new WatchListAction(this,e)}0}var I=new C({actionId:T.ChartTimeScaleReset,label:i(44352).t(null,void 0,i(25333)),icon:i(39267),statName:"ResetScale",onExecute:function(){e.model().resetTimeScale()},hotkeyGroup:this._hotkeys,hotkeyHash:m.Modifiers.Mod+m.Modifiers.Alt+81}),M=new C({actionId:T.ChartRemoveAllIndicators,label:i(44352).t(null,void 0,i(13951)),statName:"RemoveAllIndicators",onExecute:this.removeAllStudies.bind(this)}),A=new C({actionId:T.ChartRemoveAllLineTools,label:i(44352).t(null,void 0,i(1434)),statName:"RemoveAllDrawingTools",onExecute:this.removeAllDrawingTools.bind(this)}),L=new C({actionId:T.ChartRemoveAllIndicatorsAndLineTools,label:i(44352).t(null,void 0,i(97305)),statName:"RemoveAllIndicatorsAndDrawingTools",onExecute:this.removeAllStudiesDrawingTools.bind(this)}),R=this.chartWidgetCollection(),N=new C({actionId:T.ChartApplyIndicatorsToAllCharts,label:i(44352).t(null,void 0,i(95910)),statName:"ApplyIndicatorsToAllCharts",onExecute:function(){R.applyIndicatorsToAllCharts(e)}}),O={actionId:T.ChartDialogsShowInsertIndicators,label:Y(i(44352).t(null,void 0,i(98767))),statName:"InsertIndicator",onExecute:function(){e.showIndicators()}};this._options.indicatorsDialogShortcutEnabled&&(O.hotkeyGroup=this._hotkeys,O.hotkeyHash=191,this._hotkeys.add({handler:function(){this.showIndicators()}.bind(this),desc:"Show insert indicator dialog",hotkey:111}));var W,z=new C(O),U=new C({actionId:T.ChartDialogsShowCompareOrAddSymbol,label:Y(i(44352).t(null,void 0,i(20229))),statName:"CompareOrAddSymbol",onExecute:this.toggleCompareOrAdd.bind(this)}),G=new C({actionId:T.ChartObjectTreeShow,label:Y(i(44352).t(null,void 0,i(675))),statName:"ObjectsTree",onExecute:this.showObjectsTreePanelOrDialog.bind(this)}),q=new C({actionId:T.ChartDialogsShowGeneralSettings,label:Y(i(44352).t(null,void 0,i(89517))),icon:i(51983),statName:"ChartProperties",onExecute:function(){e.showGeneralChartProperties()}}),$=new C({actionId:T.ChartDialogsShowGeneralSettingsSymbolTab,label:Y(i(44352).t(null,void 0,i(89517))),icon:i(51983),statName:"MainSeriesProperties",onExecute:function(){e.showGeneralChartProperties(u.symbol)}}),K=new C({actionId:T.ChartSelectedObjectToggleLocked,label:i(44352).t(null,void 0,i(1441)),statName:"ToggleLockSelectedObject",onExecute:this.toggleLockSelectedObject.bind(this)}),Z=new C({actionId:T.ChartSelectedObjectHide,label:i(44352).t(null,void 0,i(31971)),icon:i(84959),statName:"HideSelectedObject",onExecute:this.hideSelectedObject.bind(this)});c.enabled("property_pages")&&(W=new C({ +actionId:T.ChartSelectedObjectShowSettingsDialog,label:Y(i(44352).t(null,void 0,i(89517))),icon:i(51983),statName:"EditSelectedObject",onExecute:function(){e.showSelectedSourcesProperties()}})),this.withModel(null,(function(){var t=e.model().mainSeries(),i=t.properties();i.priceAxisProperties.subscribe(e,e._updateScalesActions),t.priceScaleAboutToBeChanged().subscribe(e,(function(){i.priceAxisProperties.unsubscribeAll(e)})),t.priceScaleChanged().subscribe(e,(function(){i.priceAxisProperties.subscribe(e,e._updateScalesActions),e._updateScalesActions()}))}));var J=new C({actionId:T.ChartPriceScaleToggleAutoScaleSeriesOnly,label:i(44352).t(null,void 0,i(37207)),checkable:!0,statName:"ScalePriceChartOnly"});J.binder=new h(J,this._properties.scalesProperties.scaleSeriesOnly,this.model(),ne);var Q=this.model().model();this._properties.scalesProperties.scaleSeriesOnly.listeners().subscribe(null,(function(){Q.recalculateAllPanes(j()),Q.invalidate(E.full())}));var ee=new C({actionId:T.ChartDrawingToolbarToggleVisibility,label:i(44352).t(null,void 0,i(22903)),checkable:!0,statName:"ToggleDrawingToolbar"}),te=this._options.isDrawingToolbarVisible;te&&(te.subscribe((function(e){ee.update({checked:e})}),{callWithLast:!0}),ee.update({onExecute:function(){te.setValue(!te.value())}}));var re=new C({actionId:"",label:i(44352).t(null,void 0,i(93161)),checkable:!0,statName:"ToggleStayInDrawingMode"});re.binder=new h(re,x.properties().stayInDrawingMode,this.model(),oe),this._hotkeys.add({handler:function(){F()},desc:"Hide all drawing tools",hotkey:m.Modifiers.Mod+m.Modifiers.Alt+72});var Se=new C({actionId:T.ChartMarksToggleVisibility,label:i(44352).t(null,void 0,i(2441)),checkable:!0,statName:"ToggleHideMarksOnBars"});Se.binder=new h(Se,x.hideMarksOnBars(),this.model(),ae,(function(){x.hideMarksOnBars().setValue(this.value())}));const ye=this.properties().scalesProperties;var be=new C({actionId:T.ChartPriceScaleLabelsToggleSeriesLastValueVisibility,label:i(44352).t(null,void 0,i(52054)),checkable:!0,checked:!1,statName:"ToggleSymbolLastValue"});be.binder=new h(be,ye.showSeriesLastValue,this.model(),le);var xe=new C({actionId:T.ChartPriceScaleLabelsToggleSymbolNameLabelsVisibility,label:i(44352).t(null,void 0,i(90932)),checkable:!0,checked:!1,statName:"ToggleSymbolLabels"});xe.binding=new h(xe,ye.showSymbolLabels,this.model(),ce);const Ie=X(((e,t)=>e||!1),ye.showStudyLastValue,ye.showFundamentalLastValue);var Me=new C({actionId:T.ChartPriceScaleLabelsToggleIndicatorsValueLabelsVisibility,label:i(44352).t(null,void 0,i(81584)),checkable:!0,checked:!1,statName:"ToggleStudiesAndFundamentalsPriceLabels"});Me.binder=new h(Me,Ie,this.model(),null,(()=>{const e=!Ie.value();this.model().beginUndoMacro(de),this.model().setProperty(ye.showStudyLastValue,e,null),this.model().endUndoMacro()}));const Ae=X(((e,t)=>e||!1),ye.showStudyPlotLabels,ye.showFundamentalNameLabel);var Le=new C({actionId:T.ChartPriceScaleLabelsToggleIndicatorsNameLabelsVisibility,label:i(44352).t(null,void 0,i(31485)),checkable:!0,checked:!1, statName:"ToggleStudiesAndFundamentalsNameLabels"});Le.binding=new h(Le,Ae,this.model(),null,(()=>{const e=!Ae.value();this.model().beginUndoMacro(he),this.model().setProperty(ye.showStudyPlotLabels,e,null),this.model().endUndoMacro()}));var ke=this.model().mainSeries().properties().highLowAvgPrice,Ee=new C({actionId:T.ChartPriceScaleLabelsToggleHighLowPriceLabelsVisibility,label:i(44352).t(null,void 0,i(60259)),checkable:!0,checked:!1,statName:"ToggleHighLowPriceLabels"});Ee.binding=new h(Ee,ke.highLowPriceLabelsVisible,this.model(),pe);var De=new C({actionId:T.ChartLinesToggleHighLowLinesVisibility,label:i(44352).t(null,void 0,i(21803)),checkable:!0,checked:!1,statName:"ToggleHighLowPriceLine"});if(De.binding=new h(De,ke.highLowPriceLinesVisible,this.model(),ue),se){var Be=new C({actionId:T.ChartPriceScaleLabelsToggleAveragePriceLabelVisibility,label:i(44352).t(null,void 0,i(8975)),checkable:!0,checked:!1,statName:"ToggleAverageClosePriceLabel"});Be.binding=new h(Be,ke.averageClosePriceLabelVisible,this.model(),me);var Ve=new C({actionId:T.ChartLinesToggleAverageLineVisibility,label:i(44352).t(null,void 0,i(87899)),checkable:!0,checked:!1,statName:"ToggleAverageClosePriceLine"});Ve.binding=new h(Ve,ke.averageClosePriceLineVisible,this.model(),_e)}var Re=new C({actionId:T.ChartPriceScaleToggleCountdownToBarCloseVisibility,label:i(44352).t(null,void 0,i(94370)),checkable:!0,checked:!1,statName:"ToggleCountdown"});Re.binder=new h(Re,this.model().mainSeries().properties().showCountdown,this.model(),ge);var Ne=new C({actionId:T.ChartPriceScaleToggleAddOrderPlusButtonVisibility,label:i(44352).t(null,void 0,i(97378)),checkable:!0,checked:ie.value(),statName:"ToggleAddOrderPlusButton"});Ne.binder=new h(Ne,ie,this.model(),fe);var Oe=null;this._options.goToDateEnabled&&(Oe=new C({actionId:T.ChartDialogsShowGoToDate,label:Y(i(44352).t(null,void 0,i(75190))),statName:"GoToDate",onExecute:function(){var t=e._chartWidgetCollection.activeChartWidget.value();p(t)},hotkeyGroup:this._hotkeys,hotkeyHash:m.Modifiers.Alt+71}));var Fe=new C({actionId:T.ChartDialogsShowSymbolInfo,label:Y(i(44352).t(null,void 0,i(65986))),icon:i(37924),checkable:!1,statName:"SymbolInfo",onExecute:function(){var t=e.model().model(),i=t.mainSeries().symbol(),s=t.mainSeries().symbolInfo(),r=t.availableUnits(),n={symbolInfo:s,showUnit:t.unitConversionEnabled(),unitDescription:e=>r.description(e),dateFormatter:t.dateFormatter()};k(i,n)}}),We=new C({actionId:T.ChartPriceScaleMergeAllScalesToLeft,label:we,statName:"MergeAllScalesToLeft",onExecute:function(){e.model().mergeAllScales("left")}}),He=new C({actionId:T.ChartPriceScaleMergeAllScalesToRight,label:Pe,statName:"MergeAllScalesToRight",onExecute:function(){e.model().mergeAllScales("right")}}),ze=new C({actionId:T.ChartPriceScaleMoveToLeft,label:Ce,statName:"MoveScaleToLeft",onExecute:function(){e.model().mergeAllScales("left")}}),Ue=new C({actionId:T.ChartPriceScaleMoveToRight,label:Te,statName:"MoveScaleToRight",onExecute:function(){e.model().mergeAllScales("right")}});var je=c.enabled("show_object_tree") -;if(this._actions={chartProperties:q,mainSeriesPropertiesAction:$,timeScaleReset:I,chartReset:t,invertSeriesScale:s,logSeriesScale:g,autoSeriesScale:r,lockSeriesScale:n,regularSeriesScale:o,percentSeriesScale:a,indexedTo100SeriesScale:l,compareOrAdd:U,paneObjectTree:je?G:void 0,insertIndicator:z,symbolSearch:y,showSymbolInfoDialog:Fe,changeInterval:P,seriesHide:X,studyHide:X,lineToggleLock:K,lineHide:X,scaleSeriesOnly:J,drawingToolbarAction:ee,stayInDrawingModeAction:re,hideAllMarks:Se,applyTimeZone:S,showCountdown:Re,addPlusButton:Ne,showSeriesLastValue:be,showHighLowPriceLabels:Ee,showHighLowPriceLines:De,showAverageClosePriceLabel:Be,showAverageClosePriceLine:Ve,showSymbolLabelsAction:xe,showStudyLastValue:Me,showStudyPlotNamesAction:Le,undo:f,redo:v,mergeLeftScalesAction:We,mergeRightScalesAction:He,moveScaleToLeft:ze,moveScaleToRight:Ue,moveChartAction:undefined},w&&(this._actions.addToWatchlist=w),!TradingView.onWidget()&&c.enabled("text_notes")&&(this._actions.addToTextNotes=undefined),null!==Oe&&(this._actions.gotoDate=Oe),this.createSessionBreaksActions(),!this.readOnly()){var Ge=new C({actionId:T.ChartSelectedObjectRemove,label:i(44352).t(null,void 0,i(34596)),icon:i(35149),statName:"RemoveSelectedObject",onExecute:function(){var e=this._chartWidgetCollection.activeChartWidget.value();e||(e=this),e.removeSelectedSources()}.bind(this),hotkeyGroup:this._hotkeys,hotkeyHash:_.isMacKeyboard?8:46});this._hotkeys.add({handler:function(){this.removeSelectedSources()}.bind(this),desc:"Remove selected source",hotkey:_.isMacKeyboard?46:8}),this._actions.paneRemoveAllStudies=M,this._actions.paneRemoveAllDrawingTools=A,this._actions.paneRemoveAllStudiesDrawingTools=L,this._actions.applyStudiesToAllCharts=N,this._actions.studyRemove=Ge,this._actions.lineRemove=Ge,c.enabled("property_pages")&&(this._actions.format=W)}this._actions.showPriceLine=new C({actionId:T.ChartLinesToggleSeriesPriceLineVisibility,label:i(44352).t(null,void 0,i(91492)),checkable:!0,statName:"TogglePriceLine"}),this._actions.showPriceLine.binding=new h(this._actions.showPriceLine,this.model().mainSeries().properties().showPriceLine,this.model(),ve),this.readOnly()||(this._hotkeys.add({desc:"Draw Horizontal Line here",hotkey:m.Modifiers.Alt+72,handler:function(){e.activePaneWidget&&e.activePaneWidget.drawRightThere("LineToolHorzLine")}}),this._hotkeys.add({desc:"Draw Horizontal Ray here",hotkey:m.Modifiers.Alt+74,handler:function(){e.activePaneWidget&&e.activePaneWidget.drawRightThere("LineToolHorzRay")}}),this._hotkeys.add({desc:"Draw Vertical Line here",hotkey:m.Modifiers.Alt+86,handler:function(){e.activePaneWidget&&e.activePaneWidget.drawRightThere("LineToolVertLine")}}),this._hotkeys.add({desc:"Draw Cross Line here",hotkey:m.Modifiers.Alt+67,handler:function(){e.activePaneWidget&&e.activePaneWidget.drawRightThere("LineToolCrossLine")}}),this._hotkeys.add({desc:"Draw Trend Line",hotkey:m.Modifiers.Alt+84,handler:function(){e.activePaneWidget&&x.tool.setValue("LineToolTrendLine")}}),this._hotkeys.add({desc:"Draw Fib Retracement", +;if(this._actions={chartProperties:q,mainSeriesPropertiesAction:$,timeScaleReset:I,chartReset:t,invertSeriesScale:s,logSeriesScale:g,autoSeriesScale:r,lockSeriesScale:n,regularSeriesScale:o,percentSeriesScale:a,indexedTo100SeriesScale:l,compareOrAdd:U,paneObjectTree:je?G:void 0,insertIndicator:z,symbolSearch:y,showSymbolInfoDialog:Fe,changeInterval:P,seriesHide:Z,studyHide:Z,lineToggleLock:K,lineHide:Z,scaleSeriesOnly:J,drawingToolbarAction:ee,stayInDrawingModeAction:re,hideAllMarks:Se,applyTimeZone:S,showCountdown:Re,addPlusButton:Ne,showSeriesLastValue:be,showHighLowPriceLabels:Ee,showHighLowPriceLines:De,showAverageClosePriceLabel:Be,showAverageClosePriceLine:Ve,showSymbolLabelsAction:xe,showStudyLastValue:Me,showStudyPlotNamesAction:Le,undo:f,redo:v,mergeLeftScalesAction:We,mergeRightScalesAction:He,moveScaleToLeft:ze,moveScaleToRight:Ue,moveChartAction:undefined},w&&(this._actions.addToWatchlist=w),!TradingView.onWidget()&&c.enabled("text_notes")&&(this._actions.addToTextNotes=undefined),null!==Oe&&(this._actions.gotoDate=Oe),this.createSessionBreaksActions(),!this.readOnly()){var Ge=new C({actionId:T.ChartSelectedObjectRemove,label:i(44352).t(null,void 0,i(34596)),icon:i(35149),statName:"RemoveSelectedObject",onExecute:function(){var e=this._chartWidgetCollection.activeChartWidget.value();e||(e=this),e.removeSelectedSources()}.bind(this),hotkeyGroup:this._hotkeys,hotkeyHash:_.isMacKeyboard?8:46});this._hotkeys.add({handler:function(){this.removeSelectedSources()}.bind(this),desc:"Remove selected source",hotkey:_.isMacKeyboard?46:8}),this._actions.paneRemoveAllStudies=M,this._actions.paneRemoveAllDrawingTools=A,this._actions.paneRemoveAllStudiesDrawingTools=L,this._actions.applyStudiesToAllCharts=N,this._actions.studyRemove=Ge,this._actions.lineRemove=Ge,c.enabled("property_pages")&&(this._actions.format=W)}this._actions.showPriceLine=new C({actionId:T.ChartLinesToggleSeriesPriceLineVisibility,label:i(44352).t(null,void 0,i(91492)),checkable:!0,statName:"TogglePriceLine"}),this._actions.showPriceLine.binding=new h(this._actions.showPriceLine,this.model().mainSeries().properties().showPriceLine,this.model(),ve),this.readOnly()||(this._hotkeys.add({desc:"Draw Horizontal Line here",hotkey:m.Modifiers.Alt+72,handler:function(){e.activePaneWidget&&e.activePaneWidget.drawRightThere("LineToolHorzLine")}}),this._hotkeys.add({desc:"Draw Horizontal Ray here",hotkey:m.Modifiers.Alt+74,handler:function(){e.activePaneWidget&&e.activePaneWidget.drawRightThere("LineToolHorzRay")}}),this._hotkeys.add({desc:"Draw Vertical Line here",hotkey:m.Modifiers.Alt+86,handler:function(){e.activePaneWidget&&e.activePaneWidget.drawRightThere("LineToolVertLine")}}),this._hotkeys.add({desc:"Draw Cross Line here",hotkey:m.Modifiers.Alt+67,handler:function(){e.activePaneWidget&&e.activePaneWidget.drawRightThere("LineToolCrossLine")}}),this._hotkeys.add({desc:"Draw Trend Line",hotkey:m.Modifiers.Alt+84,handler:function(){e.activePaneWidget&&x.tool.setValue("LineToolTrendLine")}}),this._hotkeys.add({desc:"Draw Fib Retracement", hotkey:m.Modifiers.Alt+70,handler:function(){e.activePaneWidget&&x.tool.setValue("LineToolFibRetracement")}})),this._updateScalesActions()}options(){return this._options}executeActionById(e){if("takeScreenshot"===e)return console.warn('Action "takeScreenshot" is deprecated. Use method "takeScreenshot" instead'),void this._chartWidgetCollection.takeScreenshot();e in this._actions?this._actions[e]instanceof C&&this._actions[e].execute():console.warn("Unknown action id: "+e)}getCheckableActionState(e){if(e in this._actions){var t=this._actions[e];if(t instanceof C&&t.isCheckable())return t.isChecked();console.warn("Action "+e+" has no state")}else console.warn("Unknown action id: "+e);return null}_updateScalesActions(){if(null!==this._actions){var e=this.model().mainSeries(),t=e.priceScale(),i=e.properties(),s=t.isLockScale(),r=i.style.value()===l.STYLE_PNF;this._actions.percentSeriesScale.update({disabled:s||r,checked:t.isPercentage()}),this._actions.logSeriesScale.update({disabled:s||r,checked:t.isLog()}),this._actions.regularSeriesScale.update({disabled:s||r,checked:t.isRegular()}),this._actions.indexedTo100SeriesScale.update({disabled:s||r,checked:t.isIndexedTo100()}),this._actions.invertSeriesScale.update({checked:t.isInverted()}),this._actions.lockSeriesScale.update({checked:t.isLockScale()}),this._actions.autoSeriesScale.update({checked:t.isAutoScale(),disabled:t.properties().autoScaleDisabled.value()})}}removeAllStudies(){this._model.removeAllStudies()}removeAllDrawingTools(){this._model.removeAllDrawingTools()}removeAllStudiesDrawingTools(){this._model.removeAllStudiesAndDrawingTools()}defaultSymbol(){return this._defSymbol}widget(){return this._mainDiv}_onBackgroundColorChanged(){for(var e=0;e0;)for(var t=this._content.panes[e].sources,i=t.length;i-- >0;)if("MainSeries"===t[i].type)return t[i].state}updateUndoRedo(){ this._model&&(this.actions().undo.update({disabled:this._model.undoHistory().undoStack().isEmpty()}),this.actions().redo.update({disabled:this._model.undoHistory().redoStack().isEmpty()}))}createSessionBreaksActions(){var e=new C({actionId:T.ChartSessionBreaksToggleVisibility,label:i(44352).t(null,void 0,i(59827)),checkable:!0,statName:"ToggleSessionBreaks"});e.binder=new h(e,this._model.chartModel().sessions().properties().graphics.vertlines.sessBreaks.visible,this.model(),be),this._actions.sessionBreaks=e}updateActionForIntradayOnly(e){e&&e instanceof C&&e.update({disabled:this.model().mainSeries().isDWM()})}containsVolume(){return this.model().dataSources().some((function(e){return e instanceof g&&"Volume"===e.metaInfo().shortId}))}containsStudyByPredicate(e){return!!this._model&&this._model.dataSources().some((function(t){if(!(t instanceof g))return!1;var i=t.metaInfo();return e(i)}))}containsStudy(e){return this.containsStudyByPredicate((function(t){return t.id===e||t.fullId===e}))}isSmall(){return this._width()<550||this._height()<300}onWidget(){return this._onWidget}onCmeWidget(){return"cme"===this.widgetCustomer()}widgetCustomer(){return this._widgetCustomer}resize(){var e=this._height()+"px",t=this._width()+"px";this._mainDiv.style.height=e,this._mainDiv.style.width=t,this._elMainTable.style.height=e,this._elMainTable.style.width=t,this._resizeHandler&&this._mainDiv&&this._resizeHandler()}applyOverrides(e){var t={};for(var i in e)i.startsWith("mainSeriesProperties.priceAxisProperties")||(t[i]=e[i]);if(applyPropertiesOverrides(this.properties(),null,!1,t,null),this._model){applyPropertiesOverrides(this._model.model().properties(),null,!1,t),applyPropertiesOverrides(this._model.mainSeries().properties(),null,!1,t,"mainSeriesProperties"),this._model.model().sessions().applyOverrides(t);const e=this._model.chartModel().watermarkSource();null!==e&&e.applyOverrides(t)}}applyStudiesOverrides(e){W.mergeDefaultsOverrides(e),this._applyStudiesOverrides()}setActive(e){this._isActive=e,z().isTouch&&(e&&0!==this.selectPointMode().value()?this.startTrackingMode():this.exitTrackingMode()),this._paneWidgets.forEach((function(e){e.update()})),e||this.model().selectionMacro((function(e){e.clearSelection()}))}isActive(){return this._isActive}isMultipleLayout(){return K(this._chartWidgetCollection.layout.value())}selectPointMode(){return this._model.model().selectPointMode()}cancelRequestSelectPoint(){this._model.model().cancelRequestSelectPoint(),this._model.model().setReplayStatus(q.Undefined)}requestSelectPoint(e,t){var i=this;return e.selectPointMode===G.Replay&&this._model.model().setReplayStatus(q.PointSelect),new Promise((function(s,r){if(a()){x.resetToCursor(!0),i._model.lineBeingCreated()&&i._model.cancelCreatingLine();var n=!1,o={};i._model.model().onPointSelected().subscribe(o,(function(e,t){n=!0,i._isVisible.unsubscribe(a),i._hideHint(),s({point:e,pane:t})}),!0),i._model.model().requestSelectPoint(e),i.startTrackingMode(),void 0!==t&&i._showHint(t),i._isVisible.subscribe(a),i.selectPointMode().subscribe((function(){ -setTimeout((function(){n||(0===i.selectPointMode().value()&&i._hideHint(),i._model.model().onPointSelected().unsubscribeAll(o),i._isVisible.unsubscribe(a),r("cancelled"))}))}),{once:!0})}function a(){return!!i.isVisible()||(r("Chartwidget must be visible"),i.cancelRequestSelectPoint(),!1)}}))}showReplayOrderConfirmationDialog(){if(!this.model().isInReplay())return Promise.resolve()}_addPerfMark(e){X("ChartWidget."+this._id+"."+e)}requestFullscreen(){this._options.requestFullscreen()}getResizerDetacher(){return this._options}_createHint(){if(null===this._hintDefferedPromise){var e=te();this._hintDefferedPromise=e;var t=this;Promise.all([i.e(9908),i.e(962),i.e(6166)]).then(i.bind(i,5015)).then((function(i){e.resolve(new i.ChartEventHintRenderer(t._chartWidgetCollection.getContainer()))}))}return this._hintDefferedPromise?a(this._hintDefferedPromise).promise:null}_showHint(e){if(c.enabled("popup_hints"))if(null!==this._activeHint)this._activeHint.show(e);else{var t=this,i=this._createHint();null!==i&&i.then((function(i){if(null!==i){if(t._activeHint=i,void 0===e)return;t._activeHint.show(e)}}))}}_hideHint(){null!==this._activeHint&&this._activeHint.hide()}}},24134:(e,t,i)=>{"use strict";var s=i(50151).ensureNotNull,r=i(68582),n=r.LineDataSourceApi,o=r.isLineToolRiskReward,a=i(67e3).StudyApi,l=i(82650).SeriesApi,c=i(32112).SelectionApi,h=i(98076).PaneApi,d=i(8950).createDwmAligner,u=i(578).Interval,p=i(37121).supportedLineTools,_=i(65665),m=_.isNumber,g=_.deepEquals,f=i(6250).createLineToolProperties,v=i(6250).prepareLineToolPropertiesByOwnerSource,S=i(45973).lineToolEntityInfo,y=i(57404).LineToolsGroupControllerApi,b=i(34853).RemoveSourcesCommand;const{isLineDrawnWithPressedButton:w,isLineToolFinishRequiredWhenCreatedByApi:P}=i(28667),C=i(55611).EnvironmentState;var T=i(66979).ChartWidgetApiBase,x=i(76076);i(51768).trackEvent;function I(e,t){return t.map((function(t){return e.dataSourceForId(t)}))}e.exports=class extends T{constructor(e,t){super(e,t),this._panes=new WeakMap,this._studies=new WeakMap,this._lineDataSources=new WeakMap,this._selectionApi=null,this._prevVisibleRange=null,this._chartWidget.onAboutToBeDestroyed().subscribe(this,this._destroy,!0),this._chartWidget.withModel(this,(function(){this._chartWidget.model().timeScale().logicalRangeChanged().subscribe(this,this._onLogicalRangeChanged)}))}id(){return this._chartWidget.id()}_getPaneApi(e){var t=this._panes.get(e);return void 0===t&&(t=new h(e,this._chartWidget),this._panes.set(e,t)),t}_getStudyApi(e){var t=this._studies.get(e);return void 0===t&&(t=new a(e,this._chartWidget),this._studies.set(e,t)),t}_getLineDataSourceApi(e){var t=this._lineDataSources.get(e);return void 0===t&&(t=new n(e,this._chartWidget.model(),{apiPointsToDataSource:this._convertUserPointsToDataSource.bind(this),dataSourcePointsToPriced:e=>{var t=this._chartWidget.model().mainSeries().syncModel(),i=this._chartWidget.model().timeScale();return e.map((e=>{var s=i.normalizeBarIndex(e.index);return{price:e.price,time:this._convertTimeToPublic(t.projectTime(s.time_t,s.offset))}}))}}), -this._lineDataSources.set(e,t)),t}executeActionById(e){this._chartWidget.executeActionById(e)}getCheckableActionState(e){return this._chartWidget.getCheckableActionState(e)}setZoomEnabled(e){this._chartWidget.model().model().setZoomEnabled(e)}setScrollEnabled(e){this._chartWidget.model().model().setScrollEnabled(e)}refreshMarks(){this._chartWidget.refreshMarks()}clearMarks(){this._chartWidget.clearMarks()}symbol(){return this._chartWidget.getSymbol()}resolution(){return this._chartWidget.model().mainSeries().properties().interval.value()}resetData(){this._chartWidget.model().mainSeries().rerequestData()}setEntityVisibility(e,t){console.warn("`setEntityVisibility` is deprecated. Use shape/study API instead");var i=this._chartWidget.model().model().dataSourceForId(e);if(i){var s=i.properties();s&&s.visible&&s.visible.setValue(t)}}availableZOrderOperations(e){var t=I(this._chartWidget.model().model(),e);return this._chartWidget.model().availableZOrderOperations(t)}sendToBack(e){var t=I(this._chartWidget.model().model(),e);this._chartWidget.model().sendToBack(t)}bringToFront(e){var t=I(this._chartWidget.model().model(),e);this._chartWidget.model().bringToFront(t)}insertAfter(e,t){var i=this._chartWidget.model().model(),s=I(i,e),r=i.dataSourceForId(t);this._chartWidget.model().insertAfter(s,r)}insertBefore(e,t){var i=this._chartWidget.model().model(),s=I(i,e),r=i.dataSourceForId(t);this._chartWidget.model().insertBefore(s,r)}bringForward(e){var t=I(this._chartWidget.model().model(),e);this._chartWidget.model().bringForward(t)}sendBackward(e){var t=I(this._chartWidget.model().model(),e);this._chartWidget.model().sendBackward(t)}showPropertiesDialog(e){var t=this._chartWidget.model().model().dataSourceForId(e);if(null===t)throw new Error("Study or shape "+e+" does not exist");this._chartWidget.showChartPropertiesForSource(t)}getAllShapes(){return this._chartWidget.model().model().allLineTools().map(S).filter((function(e){return null!==e.name}))}removeAllShapes(){this._chartWidget.removeAllDrawingTools()}removeAllStudies(){this._chartWidget.removeAllStudies()}removeEntity(e,t){var i=this._chartWidget.model().chartModel().dataSourceForId(e);i?t&&t.disableUndo?new b(this._chartWidget.model().chartModel(),[i],"").redo():this._chartWidget.model().removeSource(i,!0,!0):console.warn("Can't find a source with id: "+e)}removeEntityWithUndo(e){var t=this._chartWidget.model().chartModel().dataSourceForId(e);this._chartWidget.model().removeSource(t,!1)}selection(){return null===this._selectionApi&&(this._selectionApi=new c(this._chartWidget.model().model())),this._selectionApi}createStudyTemplate(e){return this._chartWidget.model().model().studyTemplate(e.saveSymbol,e.saveInterval)}drawOnAllCharts(e){x.drawOnAllCharts.setValue(e)}applyStudyTemplate(e){this._chartWidget.model().applyStudyTemplate(e,""+1e3*Math.random())}setVisibleRange(e,t){return new Promise(function(i){this._chartWidget.setVisibleTimeRange(e.from,e.to,t,i)}.bind(this))}getVisiblePriceRange(){ +setTimeout((function(){n||(0===i.selectPointMode().value()&&i._hideHint(),i._model.model().onPointSelected().unsubscribeAll(o),i._isVisible.unsubscribe(a),r("cancelled"))}))}),{once:!0})}function a(){return!!i.isVisible()||(r("Chartwidget must be visible"),i.cancelRequestSelectPoint(),!1)}}))}showReplayOrderConfirmationDialog(){if(!this.model().isInReplay())return Promise.resolve()}_addPerfMark(e){Z("ChartWidget."+this._id+"."+e)}requestFullscreen(){this._options.requestFullscreen()}getResizerDetacher(){return this._options}_createHint(){if(null===this._hintDefferedPromise){var e=te();this._hintDefferedPromise=e;var t=this;Promise.all([i.e(9908),i.e(962),i.e(6166)]).then(i.bind(i,5015)).then((function(i){e.resolve(new i.ChartEventHintRenderer(t._chartWidgetCollection.getContainer()))}))}return this._hintDefferedPromise?a(this._hintDefferedPromise).promise:null}_showHint(e){if(c.enabled("popup_hints"))if(null!==this._activeHint)this._activeHint.show(e);else{var t=this,i=this._createHint();null!==i&&i.then((function(i){if(null!==i){if(t._activeHint=i,void 0===e)return;t._activeHint.show(e)}}))}}_hideHint(){null!==this._activeHint&&this._activeHint.hide()}}},24134:(e,t,i)=>{"use strict";var s=i(50151).ensureNotNull,r=i(68582),n=r.LineDataSourceApi,o=r.isLineToolRiskReward,a=i(67e3).StudyApi,l=i(82650).SeriesApi,c=i(32112).SelectionApi,h=i(98076).PaneApi,d=i(8950).createDwmAligner,u=i(578).Interval,p=i(37121).supportedLineTools,_=i(65665),m=_.isNumber,g=_.deepEquals,f=i(6250).createLineToolProperties,v=i(6250).prepareLineToolPropertiesByOwnerSource,S=i(45973).lineToolEntityInfo,y=i(57404).LineToolsGroupControllerApi,b=i(34853).RemoveSourcesCommand;const{isLineDrawnWithPressedButton:w,isLineToolFinishRequiredWhenCreatedByApi:P}=i(28667),C=i(55611).EnvironmentState;var T=i(66979).ChartWidgetApiBase,x=i(76076);i(51768).trackEvent;function I(e,t){return t.map((function(t){return e.dataSourceForId(t)}))}e.exports=class extends T{constructor(e,t){super(e,t),this._panes=new WeakMap,this._studies=new WeakMap,this._lineDataSources=new WeakMap,this._selectionApi=null,this._prevVisibleRange=null,this._chartWidget.onAboutToBeDestroyed().subscribe(this,this._destroy,!0),this._chartWidget.withModel(this,(function(){this._chartWidget.model().timeScale().logicalRangeChanged().subscribe(this,this._onLogicalRangeChanged)}))}id(){return this._chartWidget.id()}_getPaneApi(e){var t=this._panes.get(e);return void 0===t&&(t=new h(e,this._chartWidget),this._panes.set(e,t)),t}_getStudyApi(e){var t=this._studies.get(e);return void 0===t&&(t=new a(e,this._chartWidget),this._studies.set(e,t)),t}_getLineDataSourceApi(e){var t=this._lineDataSources.get(e);return void 0===t&&(t=new n(e,this._chartWidget.model(),{apiPointsToDataSource:this._convertUserPointsToDataSource.bind(this),dataSourcePointsToPriced:e=>{var t=this._chartWidget.model().mainSeries().syncModel(),i=this._chartWidget.model().timeScale();return e.map((e=>{var s=i.normalizeBarIndex(e.index);return{price:e.price,time:this._convertTimeToPublic(t.projectTime(s.time_t,s.offset))}}))}}), +this._lineDataSources.set(e,t)),t}executeActionById(e){this._chartWidget.executeActionById(e)}getCheckableActionState(e){return this._chartWidget.getCheckableActionState(e)}setZoomEnabled(e){this._chartWidget.model().model().setZoomEnabled(e)}setScrollEnabled(e){this._chartWidget.model().model().setScrollEnabled(e)}refreshMarks(){this._chartWidget.refreshMarks()}clearMarks(e){this._chartWidget.clearMarks(e)}symbol(){return this._chartWidget.getSymbol()}resolution(){return this._chartWidget.model().mainSeries().properties().interval.value()}resetData(){this._chartWidget.model().mainSeries().rerequestData()}setEntityVisibility(e,t){console.warn("`setEntityVisibility` is deprecated. Use shape/study API instead");var i=this._chartWidget.model().model().dataSourceForId(e);if(i){var s=i.properties();s&&s.visible&&s.visible.setValue(t)}}availableZOrderOperations(e){var t=I(this._chartWidget.model().model(),e);return this._chartWidget.model().availableZOrderOperations(t)}sendToBack(e){var t=I(this._chartWidget.model().model(),e);this._chartWidget.model().sendToBack(t)}bringToFront(e){var t=I(this._chartWidget.model().model(),e);this._chartWidget.model().bringToFront(t)}insertAfter(e,t){var i=this._chartWidget.model().model(),s=I(i,e),r=i.dataSourceForId(t);this._chartWidget.model().insertAfter(s,r)}insertBefore(e,t){var i=this._chartWidget.model().model(),s=I(i,e),r=i.dataSourceForId(t);this._chartWidget.model().insertBefore(s,r)}bringForward(e){var t=I(this._chartWidget.model().model(),e);this._chartWidget.model().bringForward(t)}sendBackward(e){var t=I(this._chartWidget.model().model(),e);this._chartWidget.model().sendBackward(t)}showPropertiesDialog(e){var t=this._chartWidget.model().model().dataSourceForId(e);if(null===t)throw new Error("Study or shape "+e+" does not exist");this._chartWidget.showChartPropertiesForSource(t)}getAllShapes(){return this._chartWidget.model().model().allLineTools().map(S).filter((function(e){return null!==e.name}))}removeAllShapes(){this._chartWidget.removeAllDrawingTools()}removeAllStudies(){this._chartWidget.removeAllStudies()}removeEntity(e,t){var i=this._chartWidget.model().chartModel().dataSourceForId(e);i?t&&t.disableUndo?new b(this._chartWidget.model().chartModel(),[i],"").redo():this._chartWidget.model().removeSource(i,!0,!0):console.warn("Can't find a source with id: "+e)}removeEntityWithUndo(e){var t=this._chartWidget.model().chartModel().dataSourceForId(e);this._chartWidget.model().removeSource(t,!1)}selection(){return null===this._selectionApi&&(this._selectionApi=new c(this._chartWidget.model().model())),this._selectionApi}createStudyTemplate(e){return this._chartWidget.model().model().studyTemplate(e.saveSymbol,e.saveInterval)}drawOnAllCharts(e){x.drawOnAllCharts.setValue(e)}applyStudyTemplate(e){this._chartWidget.model().applyStudyTemplate(e,""+1e3*Math.random())}setVisibleRange(e,t){return new Promise(function(i){this._chartWidget.setVisibleTimeRange(e.from,e.to,t,i)}.bind(this))}getVisiblePriceRange(){ return console.warn("`getVisiblePriceRange` is deprecated. Use Price Scale API instead"),this._chartWidget.model().mainSeries()?this._chartWidget.model().mainSeries().priceScale().priceRangeInPrice():null}scrollPosition(){return console.warn("`scrollPosition` is deprecated. Use rightOffset from Time Scale API instead"),this._chartWidget.model().timeScale().rightOffset()}defaultScrollPosition(){return console.warn("`defaultScrollPosition` is deprecated. Use defaultRightOffset from Time Scale API instead"),this._chartWidget.model().timeScale().defaultRightOffset().value()}_createTradingPrimitive(e,t){var i,r=this._chartWidget.model(),n=r.model(),o=n.paneForSource(n.mainSeries());function a(){var e=TradingView.CLOSE_PLOT,t=s(r.mainSeries().bars().last());return{index:t.index,price:t.value[e]}}return(i=t?n.createLineTool(o,a(),e):r.createLineTool({pane:o,point:a(),linetool:e}))?i._adapter:void 0}createOrderLine(e){e=e||{};return this._createTradingPrimitive("LineToolOrder",e.disableUndo)}createPositionLine(e){e=e||{};return this._createTradingPrimitive("LineToolPosition",e.disableUndo)}createExecutionShape(e){e=e||{};return this._createTradingPrimitive("LineToolExecution",e.disableUndo)}createShape(e,t){return this.createMultipointShape([e],t)}_alignPoints(e){var t=this._chartWidget.model().model(),i=t.mainSeries(),s=i.interval();if(t.timeScale().isEmpty()||!u.isDWM(s))return e;var r=d(s,i.symbolInfo());return null===r?e:e.map((function(e){return r.timeToSessionStart(1e3*e)/1e3}))}_convertUserPointsToDataSource(e){var t=this._chartWidget.model().model(),i=t.mainSeries(),s=t.timeScale().points(),r=i.data();if(t.timeScale().isEmpty())return null;var n=e.map((function(e){return e.time||0})),o=this._alignPoints(n);function a(e,t,n){var o=s.closestIndexLeft(e)||0,a={index:o},l=s.valueAt(o);const c=s.range().value();if(e>l&&o===c.lastIndex)(h=i.syncModel().distance(l,e)).success&&(a.index=a.index+h.result);else if(e2)throw new Error("Wrong points count for "+i.shape+". Required 1 or 2");2===c.length&&(d.startChanging(1,c[1]),d.setPoint(1,c[1]),d.endChanging())}else{var m=d.pointsCount();if(m!==c.length&&-1!==m)throw new Error("Wrong points count for "+i.shape+". Required "+m);for(var g=new C(void 0,!0),S=w(s.name),y=1;y{"use strict";var s=i(26867),r=i(50151).assert,n=i(71668).createDeferredPromise,o=i(47539).TranslatedString,a=i(57737).layouts,l=i(29443).createUndoHistory,c=i(76076),h=i(66141),d=i(68335),u=i(76422),p=i(2484),_=i(40549),m=i(98351).getLogger("Chart.ChartWidgetCollection"),g=i(33933).preventDefaultForContextMenu,f=i(77906),v=i(13323).GeneralChartPropertiesRenderer,S=i(92133).setLastUsedResolution,y=i(42120).CompareDialogRenderer,b=i(84015).isOnMobileAppPage,w=i(32769),P=i(1930);const{isSupportedLayout:C,tryGuessingTheMostSuitableLayout:T}=i(57737);var x,I=i(46378),M=I.applyIndicatorsToAllChartsImpl,A=I.applyIndicatorToAllChartsImpl,L=I.lineToolsAndGroupsDTOsImpl,k=I.getStateForChartImpl,E=I.resetLineToolsInvalidatedImpl,D=I.applyLineToolUpdateNotificationImpl,B=I.createClipboardHandler,V=I.chartsSymbolsImpl,R=I.updateLayoutImpl,N=I.computeContentBoxImpl,O=(I.getVisuallyAdjacentDefImpl,I.setLayoutImpl),F=I.removeChartWidgetSubscriptionsImpl,W=I.generateNewChartId,H=I.syncCrosshairImpl,z=I.createBroadcastChannel,U=I.destroyBroadcastChannel,j=I.syncScrollImpl,G=I.allInitialModelsCreated,q=I.allInitialSymbolsResolved,$=I.applyThemeImpl,Y=I.isFirstChartInLayout,K=I.deserializedChartIds,X=I.handleDateRangeLockChange,Z=I.handleInternalDateRangeLockChange,J=I.handleTrackTimeLockChange,Q=I.handleInternalTrackTimeLockChange,ee=I.handleIntervalLockChange,te=I.handleInternalIntervalLockChange,ie=I.handleSymbolLockChange,se=I.handleInternalSymbolLockChange,re=(I.handleConnectionLimitReachedChanged,I.handleDeviceConnectionClosed,I.createLeftBottomChartWidgetWV),ne={saveChartEnabled:!0,takeScreenshotEnabled:!0,publishedChartsEnabled:!0},oe=new o("change symbol",i(44352).t(null,void 0,i(526))),ae=new o("change resolution",i(44352).t(null,void 0,i(32303))),le=new o("change series style",i(44352).t(null,void 0,i(53438)));i(44352).t(null,void 0,i(19149));e.exports=function(e){var t=this,o=Object.assign({},ne,e),ce=new _,he=o.readOnly||!1,de=[],ue=0,pe=new _,_e=new _,me=new _,ge="s",fe=new _(null),ve=new Map,Se=new _([]),ye=new _,be=[],we=!1,Pe=!1,Ce=new _(!1),Te=new _(null),xe=new _(!1),Ie=new _(!1);Ie.subscribe((e=>ie(ut(),e)));var Me=new _(Ie.value());Me.subscribe((e=>se(ut(),e)));var Ae=new _(!1);Ae.subscribe((e=>ee(ut(),e)));var Le=new _(Ae.value());Le.subscribe((e=>te(ut(),e)));var ke=new _(!1);ke.subscribe((e=>J(ut(),e)));var Ee=new _(ke.value());Ee.subscribe((e=>Q(ut(),e)));var De=new _(!1) -;De.subscribe((e=>X(ut(),e))),fe.subscribe(Ot);var Be=new _(De.value());Be.subscribe((e=>Z(ut(),e)));var Ve=new _(TVSettings.getBool("chart.syncCrosshair",!0)),Re=h.createGroup({desc:"Layout"}),Ne=null,Oe=null,Fe=null,We=null;if(window.TVD){var He=window.TVD.crosshairSyncEnabled;He?(He.value()&&(Fe=z(ut)),We=He.subscribe((e=>{e?Fe=z(ut):(U(ut()),Fe=null)}))):Fe=z(ut)}var ze=Ve.value();Ve.subscribe((function(e){ze=e=!!e,TVSettings.setValue("chart.syncCrosshair",e);for(var t=0;t{$e.setValue(null===e?null:e.chartWidget)}));var Ye=o.widgetOptions||{},Ke=o.metaInfo||{},Xe={id:new _(Ke.id||null),name:new _(Ke.name),description:new _(Ke.description),username:new _(Ke.username),uid:new _(Ke.uid),lastModified:new _(Ke.lastModified)},Ze=l();Ze.onChange().subscribe(null,(function(e){u.emit("undo_redo_state_changed",e)}));var Je=o.resizerBridge.container.value();Je.addEventListener("contextmenu",g);var Qe,et=n(),tt=new s,it=new s,st=new s,rt=new _(!1),nt=new _(null),ot=null,at=null;o.seriesControlBarEnabled&&(Qe="0px",nt.setValue(document.createElement("div")),nt.value().style.left=Qe,nt.value().style.right=Qe,nt.value().style.bottom=Qe,nt.value().classList.add("chart-toolbar","chart-controls-bar"),nt.value().setAttribute("data-is-chart-toolbar-component","true"),Je.appendChild(nt.value()),Promise.all([i.e(8230),i.e(7624),i.e(1428),i.e(4819),i.e(9333),i.e(6092),i.e(8825),i.e(1140),i.e(3795),i.e(105),i.e(9415),i.e(5639),i.e(7507),i.e(7895),i.e(962),i.e(1075),i.e(5747),i.e(7260)]).then(i.bind(i,33366)).then((({BottomToolbarRenderer:e})=>{var i=o.resizerBridge,r=[i.container.spawn(),i.width.spawn(),i.height.spawn()],n=i.container.value(),a=function(){var e=n.getBoundingClientRect(),t=N(ut());return t.top=e.top+t.top,t.left=e.left+t.left,t},l=new s,c=function(){l.fire()};r.forEach((function(e){e.subscribe(c)}));var h=function(){r.forEach((function(e){e.destroy()})),l.destroy()};ot=new e(nt.value(),l,a,t,ChartApiInstance,Ye,o.seriesControlBar),at=function(){null!==ot&&(ot.destroy(),ot=null,nt.value().remove(),nt.setValue(null)),h()}})));var lt=new v(t),ct=new y(t);function ht(){rt.setValue(de.some((e=>{const t=e.chartWidget.lineToolsSynchronizer();return null!==t&&t.hasChanges().value()})))}function dt(e){return I.checkProFeatureImpl(ut(),e)}function ut(){return{undoHistory:Ze,chartWidgetsDefs:de,chartsCountToSave:pt,actualLayoutCount:_t,savedChartWidgetOptions:be,activeChartWidget:ce,options:o,parent:Je,toastsFactory:null,crosshairLockRaw:ze,crossHairSyncBroadcast:Fe,setChartStorageNotificationSubscription:e=>{Oe=e},maximizedChartDef:qe,setMaximized:yt,layoutTemplate:me,widthWV:je,heightWV:Ge,checkProFeature:dt,lineToolsSynchronizerHasChanges:rt,recalcHasChanges:ht,onZoom:it,onScroll:st,layoutType:ge,layoutWV:Ue,setLayoutType:e=>{ge=e},isPhoneSize:Ce,viewMode:ye,updateViewMode:wt,loadingContent:we,setLoadingContent:e=>{we=e}, -initialLoading:Pe,inlineChartsCount:_e,updateWatchedValue:Pt,checkAllPendingModelsAlreadyCreated:bt,readOnly:he,symbolLock:Ie,internalSymbolLock:Me,intervalLock:Ae,internalIntervalLock:Le,dateRangeLock:De,internalDateRangeLock:Be,trackTimeLock:ke,internalTrackTimeLock:Ee,crosshairLock:Ve,customLegendWidgetsFactoriesMap:Qt,globalDetachable:pe,saveChartService:Ne,customSources:Zt,updateActivityView:Ct,chartWidgetCreatedDelegate:tt,sizingState:Te,currentLayoutResizeAction:fe,allLayoutSizesState:ve,splitters:Se,widgetOptions:Ye,bottomToolbar:nt,replayContainer:Jt,layoutSizesChanged:xe,subscribeToCompletedEventForDateRangeSync:Vt,subscribeToEventsForDateRangeSync:Rt,unsubscribeFromEventsForDateRangeSync:Nt,syncChartsDateRangesWithActiveChartRange:Wt}}function pt(){return _t()}function _t(){return a[ge].count}function mt(e,t,i,s,r){return k(ut(),e,t,i,s,r)}function gt(e){return e.value()?1:0}function ft(){R(ut())}function vt(e){return e.rdState.owner.value()!==e}function St(e){return O(ut(),e,t)}function yt(e){qe.value()!==e&&(qe.setValue(e),St(ge))}function bt(){de.every((e=>e.chartWidget.hasModel()))&&(Pt(),u.emit("layout_changed"))}function wt(){"s"===ge||qe.value()?ye.setValue(x.ForceFullscreen):ye.setValue(x.Multichart)}function Pt(){var e=Math.min(me.value().count,de.length)-1;if(e<0)ce.deleteValue();else{var t=ue;t<0&&(t=0),t>e&&(t=e),ce.setValue(de[t].chartWidget)}}function Ct(){for(var e=de.length;e--;){var t=e===ue;de[e].container.value().classList.toggle("active",t),de[e].container.value().classList.toggle("inactive",!t)}}function Tt(e){}Te.subscribe((()=>ft())),je.subscribe(ft),Ge.subscribe(ft),this.updateLayout=ft;const xt=new s;var It=new s,Mt=new _,At=new _([]),Lt=null;function kt(e){var t=e.mainSeries().properties();t.style.subscribe(null,Et),Et(t.style),e.model().onSelectedSourceChanged().subscribe(null,Dt),De.value()&&(Rt(e),Wt()),Dt(e.selection().allSources())}function Et(e){Mt.setValue(e.value())}function Dt(){var e=Lt.model();At.setValue(e.selection().allSources())}ce.subscribe((function(e){if(e){for(var t,i=de.length;i--;)if(de[i].chartWidget===e){t=i;break}if(!isFinite(t))throw new Error("Cannot make detached ChartWidget active");if(ue!==t){qe.value()&&(vt(de[t])||qe.setValue(de[t])),ue=t,Ct();for(i=de.length;i--;)de[i].chartWidget!==e&&de[i].chartWidget.setActive(!1);ci(),e.setActive(!0),c.activePointSelectionMode.setValue(e.selectPointMode().value())}!function(e){if(Lt!==e){if(Lt&&(Lt.modelCreated().unsubscribe(null,kt),Lt.hasModel())){var t=Lt.model();De.value()&&Nt(t),t.mainSeries().properties().style.unsubscribe(null,Et),t.model().onSelectedSourceChanged().unsubscribe(null,Dt),Lt=null}e&&(Lt=e,e.hasModel()?kt(e.model()):e.modelCreated().subscribe(null,kt))}}(e)}}),{callWithLast:!0});var Bt=new Map;function Vt(e,t){var i=e.id();if(!Bt.has(i)){var s=function(){const i=e.id();Bt.has(i)&&(Bt.delete(i),Wt(t?e:void 0))};e.model().mainSeries().dataEvents().completed().subscribe(null,s,!0),Bt.set(i,{cw:e,callback:s})}}function Rt(e){e.timeScale().visibleBarsStrictRangeChanged().subscribe(null,Ft)} -function Nt(e){e.timeScale().visibleBarsStrictRangeChanged().unsubscribe(null,Ft),Bt.forEach((function(e){var t=e.cw,i=e.callback;t.model().mainSeries().dataEvents().completed().unsubscribe(null,i)})),Bt.clear()}function Ot(e){De.value()&&null===e&&Wt()}function Ft(e,t){Wt()}function Wt(e){if(De.value()&&null===fe.value()){var t=ce.value(),i=t.model().mainSeries();if(P.isTimeBasedStyle(i.style())){var s=t.model().timeScale(),r=s.visibleBarsStrictRange();if(null!==r){var n=s.points().range().value(),o=s.indexToTimePoint(r.firstBar());null===o&&i.endOfData()&&(o=s.indexToTimePoint(n.firstIndex));var a=s.indexToTimePoint(r.lastBar());if(null===a&&(a=s.indexToTimePoint(n.lastIndex)),null!==o&&null!==a){Bt.delete(t.id());var l=1e3*o,c=1e3*a;if(i.isDWM()){var h=new Date(l),d=new Date(c);w.set_hms(h,0,0,0,0),w.set_hms(d,0,0,0,0),l=h.getTime(),c=d.getTime()}for(var u=0;ude.map((e=>e.chartWidget)),ai=re(oi,Ue.readonly(),xt,tt);function li(e,t){if(we=!0,Pe=Boolean(t),be.splice(0),e){if(e.charts||(e={layout:"s",charts:[e]}),e.layoutsSizes)for(const t of Object.keys(e.layoutsSizes))ve.set(t,e.layoutsSizes[t]);var i=new Set;e.charts.forEach((function(e){e.chartId&&i.add(e.chartId)})),e.charts.forEach((function(e){if(!e.chartId){var t=W((function(e){return i.has(e) -}));i.add(t),e.chartId=t}}));let t=e.layout;if(!C(t)){const e=T(t);m.logError(`Loading unsupported layout ${t}. Force migration to ${e}`),t=e}ge=dt(t||"s");for(var s=0;s$e.readonly(),leftBottomChartWidget:()=>ai,destroy:function(){if(Gt.fire(),Xt(!1),null!==at&&(at(),at=null),F(ut()),ti.destroy(),ii.destroy(),ri.destroy(),si.destroy(),ni.destroy(),fe.unsubscribe(Ot),de.forEach((function(e){void 0!==e.timingsMeter&&e.timingsMeter.destroy(),e.chartWidget.destroy()})),o.resizerBridge.remove(),Se.value().forEach((e=>{e.mouseHandler.destroy(),e.mouseListener.destroy()})),window.removeEventListener("resize",ft),c.tool.unsubscribe(ci),c.tool.unsubscribe(hi),et.resolve(),Je.remove(),Zt.clear(),Qt.clear(),Re.destroy(),Oe&&Oe.destroy(),ei&&ei.destroy(),window.TVD){const e=window.TVD.crosshairSyncEnabled;e&&e.unsubscribe(We),U(ut())}},onAboutToBeDestroyed:Gt,layout:Ue.readonly(),setLayout:St,activeChartWidget:ce,viewMode:ye,activeChartStyle:Mt.readonly(),setChartStyleToWidget:function(e,t){t||(t=ce.value()),t&&function(e,t){var i=e.model(),s=i.mainSeries().properties().style;i.setChartStyleProperty(s,t,le)}(t,e)},selectedSources:At.readonly(),metaInfo:Xe,state:function(e,i,s,r){for(var n=[],o=pt(),a=0;a{c.layoutsSizes[t]=e})),c},lineToolsAndGroupsDTOs:function(){return L(ut())},resetLineToolsInvalidated:function(e,t){return E(ut(),e,t)},applyLineToolUpdateNotification:D.bind(null,de),readOnly:function(){return he},onZoom:function(){return it},onScroll:function(){return st},resizerBridge:function(){return o.resizerBridge},lock:{symbol:ti,interval:ii,dateRange:si,crosshair:ni,trackTime:ri},setSymbol:function(e){Ie.value()?zt(e):ce.value().setSymbol(e)},setResolution:function(e){jt||Ut||function(e){if(S(e),Ut=!0,Ae.value()){for(var t=!1,i=0;iH(ut(),e,t,i,s),syncScroll:function(e,t){return j(ut(),e,t)},setSymbolAll:zt,clearChartMetaInfo:function(){Xe.id.setValue(null),Xe.uid.setValue(void 0),Xe.name.setValue(void 0)},takeScreenshot:I.takeScreenshot.bind(this,o.snapshotUrl,this),takeServerScreenshot:I.takeServerScreenshot.bind(this,o.snapshotUrl,this),loadContent:li,purgeUnusedWidgets:function(){for(var e=a[ge].count;e1},applyIndicatorToAllCharts:function(e,t,i,s){A(ut(),e,t,i,s)},setActive:Xt,inlineChartsCount:_e.readonly(),revertToInline:function(){yt(null);for(var e=0;e{"use strict";var s=i(26867),r=i(50151).assert,n=i(71668).createDeferredPromise,o=i(47539).TranslatedString,a=i(57737).layouts,l=i(29443).createUndoHistory,c=i(76076),h=i(66141),d=i(68335),u=i(76422),p=i(2484),_=i(40549),m=i(98351).getLogger("Chart.ChartWidgetCollection"),g=i(33933).preventDefaultForContextMenu,f=i(77906),v=i(13323).GeneralChartPropertiesRenderer,S=i(92133).setLastUsedResolution,y=i(42120).CompareDialogRenderer,b=i(84015).isOnMobileAppPage,w=i(32769),P=i(1930);const{isSupportedLayout:C,tryGuessingTheMostSuitableLayout:T}=i(57737);var x,I=i(46378),M=I.applyIndicatorsToAllChartsImpl,A=I.applyIndicatorToAllChartsImpl,L=I.lineToolsAndGroupsDTOsImpl,k=I.getStateForChartImpl,E=I.resetLineToolsInvalidatedImpl,D=I.applyLineToolUpdateNotificationImpl,B=I.createClipboardHandler,V=I.chartsSymbolsImpl,R=I.updateLayoutImpl,N=I.computeContentBoxImpl,O=(I.getVisuallyAdjacentDefImpl,I.setLayoutImpl),F=I.removeChartWidgetSubscriptionsImpl,W=I.generateNewChartId,H=I.syncCrosshairImpl,z=I.createBroadcastChannel,U=I.destroyBroadcastChannel,j=I.syncScrollImpl,G=I.allInitialModelsCreated,q=I.allInitialSymbolsResolved,$=I.applyThemeImpl,Y=I.isFirstChartInLayout,K=I.deserializedChartIds,Z=I.handleDateRangeLockChange,X=I.handleInternalDateRangeLockChange,J=I.handleTrackTimeLockChange,Q=I.handleInternalTrackTimeLockChange,ee=I.handleIntervalLockChange,te=I.handleInternalIntervalLockChange,ie=I.handleSymbolLockChange,se=I.handleInternalSymbolLockChange,re=(I.handleConnectionLimitReachedChanged,I.handleDeviceConnectionClosed,I.createLeftBottomChartWidgetWV),ne={saveChartEnabled:!0,takeScreenshotEnabled:!0,publishedChartsEnabled:!0},oe=new o("change symbol",i(44352).t(null,void 0,i(526))),ae=new o("change resolution",i(44352).t(null,void 0,i(32303))),le=new o("change series style",i(44352).t(null,void 0,i(53438)));i(44352).t(null,void 0,i(19149));e.exports=function(e){var t=this,o=Object.assign({},ne,e),ce=new _,he=o.readOnly||!1,de=[],ue=0,pe=new _,_e=new _,me=new _,ge="s",fe=new _(null),ve=new Map,Se=new _([]),ye=new _,be=[],we=!1,Pe=!1,Ce=new _(!1),Te=new _(null),xe=new _(!1),Ie=new _(!1);Ie.subscribe((e=>ie(ut(),e)));var Me=new _(Ie.value());Me.subscribe((e=>se(ut(),e)));var Ae=new _(!1);Ae.subscribe((e=>ee(ut(),e)));var Le=new _(Ae.value());Le.subscribe((e=>te(ut(),e)));var ke=new _(!1);ke.subscribe((e=>J(ut(),e)));var Ee=new _(ke.value());Ee.subscribe((e=>Q(ut(),e)));var De=new _(!1) +;De.subscribe((e=>Z(ut(),e))),fe.subscribe(Ot);var Be=new _(De.value());Be.subscribe((e=>X(ut(),e)));var Ve=new _(TVSettings.getBool("chart.syncCrosshair",!0)),Re=h.createGroup({desc:"Layout"}),Ne=null,Oe=null,Fe=null,We=null;if(window.TVD){var He=window.TVD.crosshairSyncEnabled;He?(He.value()&&(Fe=z(ut)),We=He.subscribe((e=>{e?Fe=z(ut):(U(ut()),Fe=null)}))):Fe=z(ut)}var ze=Ve.value();Ve.subscribe((function(e){ze=e=!!e,TVSettings.setValue("chart.syncCrosshair",e);for(var t=0;t{$e.setValue(null===e?null:e.chartWidget)}));var Ye=o.widgetOptions||{},Ke=o.metaInfo||{},Ze={id:new _(Ke.id||null),name:new _(Ke.name),description:new _(Ke.description),username:new _(Ke.username),uid:new _(Ke.uid),lastModified:new _(Ke.lastModified)},Xe=l();Xe.onChange().subscribe(null,(function(e){u.emit("undo_redo_state_changed",e)}));var Je=o.resizerBridge.container.value();Je.addEventListener("contextmenu",g);var Qe,et=n(),tt=new s,it=new s,st=new s,rt=new _(!1),nt=new _(null),ot=null,at=null;o.seriesControlBarEnabled&&(Qe="0px",nt.setValue(document.createElement("div")),nt.value().style.left=Qe,nt.value().style.right=Qe,nt.value().style.bottom=Qe,nt.value().classList.add("chart-toolbar","chart-controls-bar"),nt.value().setAttribute("data-is-chart-toolbar-component","true"),Je.appendChild(nt.value()),Promise.all([i.e(8230),i.e(7624),i.e(1428),i.e(4819),i.e(9333),i.e(6092),i.e(8825),i.e(1140),i.e(3795),i.e(105),i.e(9415),i.e(5639),i.e(7507),i.e(7895),i.e(962),i.e(1075),i.e(5747),i.e(7260)]).then(i.bind(i,33366)).then((({BottomToolbarRenderer:e})=>{var i=o.resizerBridge,r=[i.container.spawn(),i.width.spawn(),i.height.spawn()],n=i.container.value(),a=function(){var e=n.getBoundingClientRect(),t=N(ut());return t.top=e.top+t.top,t.left=e.left+t.left,t},l=new s,c=function(){l.fire()};r.forEach((function(e){e.subscribe(c)}));var h=function(){r.forEach((function(e){e.destroy()})),l.destroy()};ot=new e(nt.value(),l,a,t,ChartApiInstance,Ye,o.seriesControlBar),at=function(){null!==ot&&(ot.destroy(),ot=null,nt.value().remove(),nt.setValue(null)),h()}})));var lt=new v(t),ct=new y(t);function ht(){rt.setValue(de.some((e=>{const t=e.chartWidget.lineToolsSynchronizer();return null!==t&&t.hasChanges().value()})))}function dt(e){return I.checkProFeatureImpl(ut(),e)}function ut(){return{undoHistory:Xe,chartWidgetsDefs:de,chartsCountToSave:pt,actualLayoutCount:_t,savedChartWidgetOptions:be,activeChartWidget:ce,options:o,parent:Je,toastsFactory:null,crosshairLockRaw:ze,crossHairSyncBroadcast:Fe,setChartStorageNotificationSubscription:e=>{Oe=e},maximizedChartDef:qe,setMaximized:yt,layoutTemplate:me,widthWV:je,heightWV:Ge,checkProFeature:dt,lineToolsSynchronizerHasChanges:rt,recalcHasChanges:ht,onZoom:it,onScroll:st,layoutType:ge,layoutWV:Ue,setLayoutType:e=>{ge=e},isPhoneSize:Ce,viewMode:ye,updateViewMode:wt,loadingContent:we,setLoadingContent:e=>{we=e}, +initialLoading:Pe,inlineChartsCount:_e,updateWatchedValue:Pt,checkAllPendingModelsAlreadyCreated:bt,readOnly:he,symbolLock:Ie,internalSymbolLock:Me,intervalLock:Ae,internalIntervalLock:Le,dateRangeLock:De,internalDateRangeLock:Be,trackTimeLock:ke,internalTrackTimeLock:Ee,crosshairLock:Ve,customLegendWidgetsFactoriesMap:Qt,globalDetachable:pe,saveChartService:Ne,customSources:Xt,updateActivityView:Ct,chartWidgetCreatedDelegate:tt,sizingState:Te,currentLayoutResizeAction:fe,allLayoutSizesState:ve,splitters:Se,widgetOptions:Ye,bottomToolbar:nt,replayContainer:Jt,layoutSizesChanged:xe,subscribeToCompletedEventForDateRangeSync:Vt,subscribeToEventsForDateRangeSync:Rt,unsubscribeFromEventsForDateRangeSync:Nt,syncChartsDateRangesWithActiveChartRange:Wt}}function pt(){return _t()}function _t(){return a[ge].count}function mt(e,t,i,s,r){return k(ut(),e,t,i,s,r)}function gt(e){return e.value()?1:0}function ft(){R(ut())}function vt(e){return e.rdState.owner.value()!==e}function St(e){return O(ut(),e,t)}function yt(e){qe.value()!==e&&(qe.setValue(e),St(ge))}function bt(){de.every((e=>e.chartWidget.hasModel()))&&(Pt(),u.emit("layout_changed"))}function wt(){"s"===ge||qe.value()?ye.setValue(x.ForceFullscreen):ye.setValue(x.Multichart)}function Pt(){var e=Math.min(me.value().count,de.length)-1;if(e<0)ce.deleteValue();else{var t=ue;t<0&&(t=0),t>e&&(t=e),ce.setValue(de[t].chartWidget)}}function Ct(){for(var e=de.length;e--;){var t=e===ue;de[e].container.value().classList.toggle("active",t),de[e].container.value().classList.toggle("inactive",!t)}}function Tt(e){}Te.subscribe((()=>ft())),je.subscribe(ft),Ge.subscribe(ft),this.updateLayout=ft;const xt=new s;var It=new s,Mt=new _,At=new _([]),Lt=null;function kt(e){var t=e.mainSeries().properties();t.style.subscribe(null,Et),Et(t.style),e.model().onSelectedSourceChanged().subscribe(null,Dt),De.value()&&(Rt(e),Wt()),Dt(e.selection().allSources())}function Et(e){Mt.setValue(e.value())}function Dt(){var e=Lt.model();At.setValue(e.selection().allSources())}ce.subscribe((function(e){if(e){for(var t,i=de.length;i--;)if(de[i].chartWidget===e){t=i;break}if(!isFinite(t))throw new Error("Cannot make detached ChartWidget active");if(ue!==t){qe.value()&&(vt(de[t])||qe.setValue(de[t])),ue=t,Ct();for(i=de.length;i--;)de[i].chartWidget!==e&&de[i].chartWidget.setActive(!1);ci(),e.setActive(!0),c.activePointSelectionMode.setValue(e.selectPointMode().value())}!function(e){if(Lt!==e){if(Lt&&(Lt.modelCreated().unsubscribe(null,kt),Lt.hasModel())){var t=Lt.model();De.value()&&Nt(t),t.mainSeries().properties().style.unsubscribe(null,Et),t.model().onSelectedSourceChanged().unsubscribe(null,Dt),Lt=null}e&&(Lt=e,e.hasModel()?kt(e.model()):e.modelCreated().subscribe(null,kt))}}(e)}}),{callWithLast:!0});var Bt=new Map;function Vt(e,t){var i=e.id();if(!Bt.has(i)){var s=function(){const i=e.id();Bt.has(i)&&(Bt.delete(i),Wt(t?e:void 0))};e.model().mainSeries().dataEvents().completed().subscribe(null,s,!0),Bt.set(i,{cw:e,callback:s})}}function Rt(e){e.timeScale().visibleBarsStrictRangeChanged().subscribe(null,Ft)} +function Nt(e){e.timeScale().visibleBarsStrictRangeChanged().unsubscribe(null,Ft),Bt.forEach((function(e){var t=e.cw,i=e.callback;t.model().mainSeries().dataEvents().completed().unsubscribe(null,i)})),Bt.clear()}function Ot(e){De.value()&&null===e&&Wt()}function Ft(e,t){Wt()}function Wt(e){if(De.value()&&null===fe.value()){var t=ce.value(),i=t.model().mainSeries();if(P.isTimeBasedStyle(i.style())){var s=t.model().timeScale(),r=s.visibleBarsStrictRange();if(null!==r){var n=s.points().range().value(),o=s.indexToTimePoint(r.firstBar());null===o&&i.endOfData()&&(o=s.indexToTimePoint(n.firstIndex));var a=s.indexToTimePoint(r.lastBar());if(null===a&&(a=s.indexToTimePoint(n.lastIndex)),null!==o&&null!==a){Bt.delete(t.id());var l=1e3*o,c=1e3*a;if(i.isDWM()){var h=new Date(l),d=new Date(c);w.set_hms(h,0,0,0,0),w.set_hms(d,0,0,0,0),l=h.getTime(),c=d.getTime()}for(var u=0;ude.map((e=>e.chartWidget)),ai=re(oi,Ue.readonly(),xt,tt);function li(e,t){if(we=!0,Pe=Boolean(t),be.splice(0),e){if(e.charts||(e={layout:"s",charts:[e]}),e.layoutsSizes)for(const t of Object.keys(e.layoutsSizes))ve.set(t,e.layoutsSizes[t]);var i=new Set;e.charts.forEach((function(e){e.chartId&&i.add(e.chartId)})),e.charts.forEach((function(e){if(!e.chartId){var t=W((function(e){return i.has(e) +}));i.add(t),e.chartId=t}}));let t=e.layout;if(!C(t)){const e=T(t);m.logError(`Loading unsupported layout ${t}. Force migration to ${e}`),t=e}ge=dt(t||"s");for(var s=0;s$e.readonly(),leftBottomChartWidget:()=>ai,destroy:function(){if(Gt.fire(),Zt(!1),null!==at&&(at(),at=null),F(ut()),ti.destroy(),ii.destroy(),ri.destroy(),si.destroy(),ni.destroy(),fe.unsubscribe(Ot),de.forEach((function(e){void 0!==e.timingsMeter&&e.timingsMeter.destroy(),e.chartWidget.destroy()})),o.resizerBridge.remove(),Se.value().forEach((e=>{e.mouseHandler.destroy(),e.mouseListener.destroy()})),window.removeEventListener("resize",ft),c.tool.unsubscribe(ci),c.tool.unsubscribe(hi),et.resolve(),Je.remove(),Xt.clear(),Qt.clear(),Re.destroy(),Oe&&Oe.destroy(),ei&&ei.destroy(),window.TVD){const e=window.TVD.crosshairSyncEnabled;e&&e.unsubscribe(We),U(ut())}},onAboutToBeDestroyed:Gt,layout:Ue.readonly(),setLayout:St,activeChartWidget:ce,viewMode:ye,activeChartStyle:Mt.readonly(),setChartStyleToWidget:function(e,t){t||(t=ce.value()),t&&function(e,t){var i=e.model(),s=i.mainSeries().properties().style;i.setChartStyleProperty(s,t,le)}(t,e)},selectedSources:At.readonly(),metaInfo:Ze,state:function(e,i,s,r){for(var n=[],o=pt(),a=0;a{c.layoutsSizes[t]=e})),c},lineToolsAndGroupsDTOs:function(){return L(ut())},resetLineToolsInvalidated:function(e,t){return E(ut(),e,t)},applyLineToolUpdateNotification:D.bind(null,de),readOnly:function(){return he},onZoom:function(){return it},onScroll:function(){return st},resizerBridge:function(){return o.resizerBridge},lock:{symbol:ti,interval:ii,dateRange:si,crosshair:ni,trackTime:ri},setSymbol:function(e){Ie.value()?zt(e):ce.value().setSymbol(e)},setResolution:function(e){jt||Ut||function(e){if(S(e),Ut=!0,Ae.value()){for(var t=!1,i=0;iH(ut(),e,t,i,s),syncScroll:function(e,t){return j(ut(),e,t)},setSymbolAll:zt,clearChartMetaInfo:function(){Ze.id.setValue(null),Ze.uid.setValue(void 0),Ze.name.setValue(void 0)},takeScreenshot:I.takeScreenshot.bind(this,o.snapshotUrl,this),takeServerScreenshot:I.takeServerScreenshot.bind(this,o.snapshotUrl,this),loadContent:li,purgeUnusedWidgets:function(){for(var e=a[ge].count;e1},applyIndicatorToAllCharts:function(e,t,i,s){A(ut(),e,t,i,s)},setActive:Zt,inlineChartsCount:_e.readonly(),revertToInline:function(){yt(null);for(var e=0;eft())),ft()},destroyReplayWidget:function(){r(null!==Jt,"Cannot remove replay container, container is not created"),Jt.remove(),Jt=null,ft()},setViewMode:function(e){ye.setValue(e)},moveActiveChartWithUndo:function(e){},activeChartCanBeMoved:function(){return!1},generalPropertiesDefinitions:function(){return ce.value().generalPropertiesDefinitions()},reconnectChartApi:function(e){undefined(e)},setBroker:function(e){0},setSaveChartService:function(e){Ne=e;for(var t=0;txe}),li(o.content,!0),Ue.subscribe((function(){Ct()})),Ue.hook=function(e){return e===this.value()?e:dt(e)},he&&(Ue.writeLock=!0),window.addEventListener("resize",ft);var di=0;function ui(){0===--di&&u.emitOnce("onChartReady")}de.forEach((function(e){if(e){di++;var t=e.chartWidget;t.withModel(null,(function(){o.metaInfo&&t.model().model().setChartSaveTime(1e3*o.metaInfo.lastModified);var e=t.model().mainSeries();if(e.bars().size()>0||e.isStatusBad())ui();else{var i=e.dataEvents(),s=function(){ui(),i.barReceived().unsubscribe(null,s),i.completed().unsubscribe(null,s),i.error().unsubscribe(null,s)};i.barReceived().subscribe(null,s),i.completed().subscribe(null,s),i.error().subscribe(null,s)}}))}})),G(ut()).then(q).then((function(){window.saver&&window.is_authenticated&&o.widgetOptions.justCloned&&window.saver.saveChartSilently()})).catch(m.logError.bind(m))}},60223:(e,t,i)=>{"use strict";i.d(t,{ContextMenuManager:()=>s});var s,r=i(43986),n=i(59064);!function(e){let t=null,s=null;const o=[],a={createAction:e=>new r.Action({...e,actionId:"Chart.CustomActionId"}),createAsyncAction:e=>new r.ActionAsync("Chart.CustomActionId",e),createSeparator:()=>new r.Separator};async function l(e,r={},n={menuName:""},l){let h;null!==t&&(e=await t(e,a));const d=()=>{const e=o.indexOf(h);-1!==e&&o.splice(e,1),void 0!==l&&l()};if(null!==s)h=await s(e,n,d),c();else{const t=await Promise.all([i.e(7624),i.e(6092),i.e(5761),i.e(4412),i.e(8009),i.e(1140),i.e(5639),i.e(1528),i.e(962),i.e(1075),i.e(2804),i.e(1584)]).then(i.bind(i,46492));h=new t.ContextMenuRenderer(e,r,d,c)}return o.push(h),h}function c(){(0,n.globalCloseMenu)()}e.createMenu=l,e.showMenu=function(e,t,i={},s,r){return l(e,i,s,r).then((e=>e.show(t)))},e.setCustomRendererFactory=function(e){s=e},e.setCustomItemsProcessor=function(e){t=e},e.hideAll=c,e.getShown=function(){for(let e=0;e{"use strict";i.d(t,{DialogRenderer:()=>n});var s=i(40549),r=i.n(s);class n{constructor(){ this._container=document.createElement("div"),this._visibility=new(r())(!1)}visible(){return this._visibility.readonly()}_setVisibility(e){this._visibility.setValue(e)}}},35936:(e,t,i)=>{"use strict";var s;i.d(t,{TabNames:()=>s}),function(e){e.background="Background",e.coordinates="Coordinates",e.drawings="Drawings",e.events="Events",e.eventsAndAlerts="Events & Alerts",e.inputs="Inputs",e.properties="Properties",e.scales="Scales",e.legend="Legend",e.sourceCode="Source Code",e.style="Style",e.symbol="Symbol",e.timezoneSessions="Timezone/Sessions",e.trading="Trading",e.visibility="Visibility",e.text="Text"}(s||(s={}))},9416:(e,t,i)=>{"use strict";function s(e){return e.getAll().some((e=>e.isInitialized()))}function r(e,t){const i=e.getAll(),s=()=>{t(),i.forEach((e=>{e.chartWidgetInitialized().unsubscribe(null,s)}))};i.forEach((e=>{e.chartWidgetInitialized().subscribe(null,s,!0)}))}i.r(t),i.d(t,{isAnyChartWidgetInitialized:()=>s,waitAnyChartWidgetInitialized:()=>r})},8222:(e,t,i)=>{"use strict";i.d(t,{getFavoriteDrawingToolbarPromise:()=>o,createFavoriteDrawingToolbar:()=>a});var s=i(23568);let r=null,n=null;function o(){return n}function a(){null===n&&(n=Promise.all([i.e(5652),i.e(8230),i.e(7624),i.e(4819),i.e(9333),i.e(6092),i.e(8619),i.e(8825),i.e(5761),i.e(4412),i.e(8009),i.e(1140),i.e(3562),i.e(105),i.e(5639),i.e(8819),i.e(6879),i.e(1528),i.e(7263),i.e(962),i.e(1075),i.e(5747),i.e(1890),i.e(2182),i.e(2804),i.e(2306)]).then(i.bind(i,2209)).then((({FavoriteDrawingToolbar:e})=>(r=null!==r?r:new e({left:window.innerWidth/2,top:s.HEADER_TOOLBAR_HEIGHT_EXPANDED+61}),r))))}},24679:(e,t,i)=>{"use strict";i.d(t,{getPriceAxisNameInfo:()=>o});const s=["Z","Y","X","W","V","U","T","S"],r=["A","B","C","D","E","F","G","H"];class n{constructor(e){this.label=e}equals(e){return null!==e&&this.label===e.label}}function o(e,t){const i="left"===e?s:r;return new n(t{"use strict";i.d(t,{CHART_WIDGET_COLLECTION_SERVICE:()=>s});i(16216);const s={id:"ChartWidgetCollectionService"};var r;!function(e){e.Multichart="multichart",e.ForceFullscreen="force-fullscreen"}(r||(r={}))},36646:(e,t,i)=>{"use strict";i.d(t,{InvalidationLevel:()=>s,InvalidationMask:()=>a,defaultInvalidationLevel:()=>o});var s,r=i(50151);class n{constructor(e=o){this._paneInvalidationLevel=o,this._leftPriceScalesInvalidationMap=new Map,this._rightPriceScalesInvalidationMap=new Map,this._legendWidgetInvalidated=!1,this._invalidationLevel=e}fullInvalidation(){return this._invalidationLevel}invalidateAll(e){this._invalidationLevel=Math.max(this._invalidationLevel,e)}invalidatePane(e){this._paneInvalidationLevel=Math.max(this._invalidationLevel,e)}invalidateLegendWidgetLayout(){this._legendWidgetInvalidated=!0}invalidatePriceScale(e,t,i){const s="left"===e?this._leftPriceScalesInvalidationMap:this._rightPriceScalesInvalidationMap,r=s.get(t)||o;s.set(t,Math.max(r,i))}invalidationLevelForPane(){return Math.max(this._paneInvalidationLevel,this._invalidationLevel)}legendWidgetLayoutInvalidated(){ return this._legendWidgetInvalidated||this._invalidationLevel===s.Full}getterForPriceScaleInvalidationLevelBySide(e){const t="left"===e?this._leftPriceScalesInvalidationMap:this._rightPriceScalesInvalidationMap;return e=>Math.max(t.get(e)||o,this._invalidationLevel)}priceScaleSideMaxLevel(e){const t="left"===e?this._leftPriceScalesInvalidationMap:this._rightPriceScalesInvalidationMap;let i=this._invalidationLevel;return t.size>0&&t.forEach((e=>{e>i&&(i=e)})),i}merge(e){this._invalidationLevel=Math.max(this._invalidationLevel,e._invalidationLevel),this._paneInvalidationLevel=Math.max(this._paneInvalidationLevel,e._paneInvalidationLevel),e._leftPriceScalesInvalidationMap.forEach(((e,t)=>{const i=this._leftPriceScalesInvalidationMap.get(t)||o;this._leftPriceScalesInvalidationMap.set(t,Math.max(i,e))})),e._rightPriceScalesInvalidationMap.forEach(((e,t)=>{const i=this._rightPriceScalesInvalidationMap.get(t)||o;this._rightPriceScalesInvalidationMap.set(t,Math.max(i,e))})),this._legendWidgetInvalidated=this._legendWidgetInvalidated||e._legendWidgetInvalidated}}!function(e){e[e.None=0]="None",e[e.Cursor=1]="Cursor",e[e.Light=2]="Light",e[e.Full=3]="Full"}(s||(s={}));const o=s.None;class a{constructor(e=o){this._panesOrderChanged=!1,this._keepVisibleTimeRangeOnResize=!1,this._timeAxisInvalidationLevel=o,this._invalidatedPanes=new Map,this._additionalActions=[],this._timeScaleInvalidations=[],this._invalidationLevel=e}invalidateAll(e){this._invalidationLevel!==e&&(this._invalidationLevel=Math.max(this._invalidationLevel,e),this._invalidatedPanes.forEach((e=>{e.invalidateAll(this._invalidationLevel)})))}invalidateAllPane(e,t){this._invalidatedPanes.has(e)||this._invalidatedPanes.set(e,new n(this._invalidationLevel)),(0,r.ensureDefined)(this._invalidatedPanes.get(e)).invalidateAll(t)}invalidatePriceScale(e,t,i,s){this._invalidatedPanes.has(e)||this._invalidatedPanes.set(e,new n(this._invalidationLevel)),(0,r.ensureDefined)(this._invalidatedPanes.get(e)).invalidatePriceScale(t,i,s)}invalidateTimeScale(e){this._timeAxisInvalidationLevel=Math.max(this._timeAxisInvalidationLevel,e)}invalidatePanesOrder(){this._panesOrderChanged=!0}lockVisibleTimeRangeOnResize(){this._keepVisibleTimeRangeOnResize=!0}fullInvalidation(){return this._invalidationLevel}maxPaneInvalidation(){const e=[];return this._invalidatedPanes.forEach((t=>{e.push(t.fullInvalidation())})),Math.max(...e,this._invalidationLevel)}invalidateForPane(e){return this._invalidatedPanes.get(e)||new n(this._invalidationLevel)}invalidateForTimeScale(){return Math.max(this._timeAxisInvalidationLevel,this._invalidationLevel)}validationActions(){return this._additionalActions}addValidationAction(e){this._additionalActions.push(e)}merge(e){this._invalidationLevel=Math.max(this._invalidationLevel,e._invalidationLevel),this._panesOrderChanged=this._panesOrderChanged||e._panesOrderChanged,this._keepVisibleTimeRangeOnResize=this._keepVisibleTimeRangeOnResize||e._keepVisibleTimeRangeOnResize,this._invalidatedPanes.forEach((e=>{e.invalidateAll(this._invalidationLevel)})), @@ -390,9 +391,9 @@ a.prototype._applyHollowCandleStyle=function(e,t,i,s,r){var n,o=a.upColor(r,t),l ;case TradingView.Series.STYLE_COLUMNS:this._applyColumnStyle(e,t,i,s,r)}return i},a.prototype.getSeriesBars=function(e){return e?this._series.nsBars():this._series.bars()},a.prototype._findBarFieldValue=function(e,t,i){var s=this.getSeriesBars(i).valueAt(e);if(null!==s)return s[t]},a.prototype.findBar=function(e,t,i){return i?i.value:this.getSeriesBars(t).valueAt(e)||[]},a.prototype.findPrevBar=function(e,t,i){if(i&&i.previousValue)return i.previousValue;var r=this._series.bars().search(e-1,s.NearestLeft,TradingView.CLOSE_PLOT);return null!==r?r.value:[]},inherit(l,o),l.prototype.getBars=function(){return this._study.series().bars()},l.prototype.firstColoredBar=function(e){for(var t=e,i=0;ie+c)return i;if(s.styles[l.id].display.value()===r.None)return i;var h=a.valueAt(e-c);if(null===h)return i;var d=h[this._plotIndex+1];if(null==d)return i;if(d=Math.round(d),o.isRGB)i.barColor=n(d),i.upColor=i.barColor,i.downColor=i.barColor;else{var u=o.plots[this._plotIndex].palette,p=s.palettes[u],_=o.palettes[u].valToIndex?o.palettes[u].valToIndex[d]:d,m=p.colors[_].color.value();i.barColor=m,i.upColor=m.color,i.downColor=m.color}return i},t.SeriesBarColorer=a,t.StudyBarColorer=l},28263:(e,t,i)=>{"use strict";i.d(t,{BarsRange:()=>r});var s=i(50151);class r{constructor(e,t){(0,s.assert)(e<=t,"The last bar in the bars range should be greater than or equal to the first bar"),this._firstBar=e,this._lastBar=t}firstBar(){return this._firstBar}lastBar(){return this._lastBar}count(){return this._lastBar-this._firstBar+1}contains(e){return this._firstBar<=e&&e<=this._lastBar}equals(e){return this._firstBar===e.firstBar()&&this._lastBar===e.lastBar()}static compare(e,t){return null===e||null===t?e===t:e.equals(t)}}},81306:(e,t,i)=>{"use strict";i.d(t,{ChartModelBase:()=>Yi});var s=i(4889),r=i(27788),n=i(50151),o=i(86441),a=i(24377),l=i(7394),c=i(44352),h=i(45345),d=i(8840),u=i(51768),p=i(71668),_=i(76422),m=i(11417),g=i(8169),f=i(94393),v=i(93975),S=i(6250);function y(e){return(0,S.isLineTool)(e)&&e.boundToSymbol()||!1}class b{constructor(){this._items=[],this._set=new Set,this._dataSourcesCache=null,this._customSourcesCache=null,this._lineSourcesCache=null}isEmpty(){return 0===this._items.length}add(e){if(this._items.length>0&&!y(this._items[0])&&this.clear(),y(e)){const t=(0,v.lowerbound)(this._items,e,((e,t)=>e.zorder()!(0,f.isDataSource)(e)))),this._customSourcesCache}checkLineToolSelection(){this._items.forEach((e=>(0,S.isLineTool)(e)&&e.calcIsActualSymbol())),this._items=this._items.filter((e=>!(0,S.isLineTool)(e)||e.isActualSymbol())),this._invalidateCache()}remove(e){this._items=this._items.filter((t=>t!==e)),this._set.delete(e),this._invalidateCache()}clear(){this._items=[],this._set.clear(),this._invalidateCache()}_invalidateCache(){this._customSourcesCache=null,this._dataSourcesCache=null,this._lineSourcesCache=null}}var w=i(81685),P=i(46289),C=i(91217),T=i(578),x=i(7711),I=i(26220),M=i.n(I),A=i(95242),L=i(17364);class k{constructor(e){this._rendererOptions={borderSize:1,offsetSize:5,fontSize:NaN,font:"",color:"",paneBackgroundColor:"",paddingBottom:0,paddingInner:0,paddingOuter:0,paddingTop:0,lineSpacing:0},this._chartModel=e}options(){const e=this._rendererOptions,t=this._chartModel.properties().childs(),i=t.scalesProperties.childs().fontSize.value();return e.fontSize!==i&&(e.fontSize=i,e.font=(0,A.makeFont)(i,L.CHART_FONT_FAMILY,""),e.paddingTop=2.5/12*i,e.paddingBottom=e.paddingTop,e.paddingInner=i/12*e.offsetSize,e.paddingOuter=i/12*e.offsetSize,e.lineSpacing=2/12*i),e.color=t.scalesProperties.childs().textColor.value(),e.paneBackgroundColor=t.paneProperties.childs().background.value(),this._rendererOptions}}var E=i(7910),D=i(59780),B=i(74599),V=i(64548),R=i(1288),N=i(2484),O=i(1930),F=i(22600),W=i(97425);const H=new B.PriceFormatter,z="sessions";class U extends R.CustomSourceBase{constructor(e,t,i){super(e,t),this._studySource=null,this._paneViews=[],this._metaInfo=null,this._destroyed=!1,this._isStarted=!1,this._loadedGraphics=null,this._doubleClickHandler=i;const s=t.mainSeries();this._properties=new x.DefaultProperty("sessions"),(0,V.applyDefaultsOverrides)(this._properties.childs().graphics,void 0,!1,z),this._removeDuplicateProperties(),this._properties.subscribe(this,this._onPropertiesChanged),t.studyMetaInfoRepository().findById({type:"java",studyId:"Sessions@tv-basicstudies"}).then((i=>{this._destroyed||null===this._loadedGraphics&&(this._setMetaInfo(i),null!==this._metaInfo&&(this._studySource=new E.StudyDataSource(t.chartApi(),s.seriesSource(),"sessions_",this._metaInfo),this._createPaneViews(),this._studySource.dataCleared().subscribe(this,this.updateAllViews.bind(this,(0,W.sourceChangeEvent)(e))),this._studySource.dataUpdated().subscribe(this,this.updateAllViews.bind(this,(0,W.sourceChangeEvent)(e))),this._studySource.setInputs({}),this._processHibernate())) })),t.timeScale().onReset().subscribe(this,this._clearData),t.timeScale().logicalRangeChanged().subscribe(this,this.updateAllViews.bind(this,(0,W.viewportChangeEvent)())),t.mainSeries().sessionIdProxyProperty().subscribe(this,this._updateVisibleOfPreAndPostMarketBackground),t.mainSeries().properties().childs().interval.subscribe(this,this._processHibernate),this._updateVisibleOfPreAndPostMarketBackground(t.mainSeries().properties().childs().sessionId)}applyOverrides(e){(0,V.applyPropertiesOverrides)(this._properties.childs().graphics,void 0,!1,e,z),this._model.updateSource(this)}start(){this._isStarted=!0,this._processHibernate()}restart(){this._clearData(),N.enabled("stop_study_on_restart")&&this.stop(),this.start()}isStarted(){return this._isStarted}stop(){this._isStarted=!1,null!==this._studySource&&this._studySource.stop()}isHoveredEnabled(){return!1}paneViews(e){return this._paneViews}updateAllViews(e){this._paneViews.forEach((t=>t.update(e)))}updateViewsForPane(e,t){this.updateAllViews(t)}destroy(){this._destroyed=!0,null!==this._studySource&&(this._studySource.dataCleared().unsubscribeAll(this),this._studySource.dataUpdated().unsubscribeAll(this),this._studySource.destroy(),this._studySource=null),this._model.timeScale().logicalRangeChanged().unsubscribeAll(this),this._model.timeScale().onReset().unsubscribeAll(this),this._model.mainSeries().sessionIdProxyProperty().unsubscribeAll(this),this._model.mainSeries().properties().childs().interval.unsubscribeAll(this),this._properties.unsubscribeAll(this)}series(){return this._model.mainSeries()}priceScale(){return this.series().priceScale()}graphics(){return this._loadedGraphics||(0,n.ensureNotNull)(this._studySource).graphics()}properties(){return this._properties}graphicsInfo(){return(0,n.ensureNotNull)(this._metaInfo).graphics}firstValue(e){return this._model.mainSeries().firstValue()}formatter(){return H}state(e){const t={properties:this._properties.state()};return e&&null!==this._metaInfo&&(t.data={graphics:(0,D.saveStudyGraphics)(this.graphics(),this._model.timeScale().visibleBarsStrictRange()),metaInfo:this._metaInfo}),t}restoreState(e,t){const i=e.properties;this._migrateOutOfSessionProperty(i),this._properties.mergeAndFire(i),this._removeDuplicateProperties(),this._updateVisibleOfPreAndPostMarketBackground(this._model.mainSeries().properties().childs().sessionId),void 0!==e.data&&t&&(this._loadStudyGraphics(e.data.graphics),this._setMetaInfo(e.data.metaInfo),this._createPaneViews())}restoreOldState(e,t){const i={properties:{graphics:e.state.graphics}};void 0!==e.data&&void 0!==e.metaInfo&&t&&(i.data={metaInfo:e.metaInfo,graphics:e.data.graphics}),this.restoreState(i,t)}applyPreferences(e){this._properties.mergePreferences(e)}metaInfo(){return(0,n.ensureNotNull)(this._metaInfo)}_loadStudyGraphics(e){const t=e.backgrounds;if(void 0!==t){const e=t.findIndex((e=>"inSession"===e.styleId));-1!==e&&t.splice(e,1)}this._loadedGraphics=(0,D.loadStudyGraphics)(e)}_setMetaInfo(e){const t=e.graphics.backgrounds;void 0!==t&&void 0!==t.inSession&&delete t.inSession, -this._metaInfo=e}_updateVisibleOfPreAndPostMarketBackground(e){const t=!(0,O.isRegularSessionId)(e.value());this._outOfSessionVisibilityProperty().setValue(t),this._preMarketVisibilityProperty().setValue(t),this._postMarketVisibilityProperty().setValue(t)}_clearData(){null!==this._studySource&&this._studySource.clearData()}_createPaneViews(){const e={doubleClickHandler:this._doubleClickHandler};(0,D.createGraphicsPaneViews)(this,this._model,e).then((e=>{this._paneViews=e,this._model.lightUpdate()}))}_onPropertiesChanged(){this._processHibernate(),this.updateAllViews((0,W.sourceChangeEvent)(this.id()))}_processHibernate(){if(null!==this._studySource){const e=this._canBeHibernated(),t=this._isHibernated(),i=this._studySource.isStarted();!t&&e&&i?this._studySource.stop():!t||e||i||this._studySource.start()}}_canBeHibernated(){const e=this._model.mainSeries(),t=this._preMarketVisibilityProperty().value()&&this._postMarketVisibilityProperty().value()&&this._outOfSessionVisibilityProperty().value();return e.isDWM()||!t&&!this._vertLinesVisibleProperty().value()}_isHibernated(){return this._isStarted&&(null===this._studySource||!this._studySource.isStarted())}_outOfSessionVisibilityProperty(){return this._properties.childs().graphics.childs().backgrounds.childs().outOfSession.childs().visible}_preMarketVisibilityProperty(){return this._properties.childs().graphics.childs().backgrounds.childs().preMarket.childs().visible}_postMarketVisibilityProperty(){return this._properties.childs().graphics.childs().backgrounds.childs().postMarket.childs().visible}_vertLinesVisibleProperty(){return this._properties.childs().graphics.childs().vertlines.childs().sessBreaks.childs().visible}_removeDuplicateProperties(){this._properties.hasChild("properties")&&(this._properties.removeProperty("properties"),(0,x.saveDefaultProperties)(!0),this._properties.childChanged(null),(0,x.saveDefaultProperties)(!1))}_migrateOutOfSessionProperty(e){const t=e.graphics.backgrounds;if(void 0!==t){const i=t.outOfSession;i.color===(0,n.ensureDefined)(F.sessionsPreferencesDefault.graphics.backgrounds).outOfSession.color||"postMarket"in t||(e.graphics.backgrounds={...t,postMarket:{color:i.color,transparency:i.transparency,visible:i.visible},preMarket:{color:i.color,transparency:i.transparency,visible:i.visible}})}}}var j=i(89215),G=i(26867),q=i.n(G),$=i(40549),Y=i.n($),K=i(36646),X=i(35624),Z=i(98351),J=i(68671),Q=i(37364),ee=i(47539),te=i(58403),ie=i(65665),se=i(50059),re=i(88029),ne=i(50841);const oe=new Map([["price",e=>(0,re.isPriceDataSource)(e)],["trading",e=>(0,S.isTrading)(e)],["drawing",e=>(0,S.isLineTool)(e)&&!(0,S.isTrading)(e)&&!e.isPhantom()],["drawingsForAllSymbols",e=>(0,S.isLineTool)(e)&&!(0,S.isTrading)(e)&&!e.isPhantom()],["phantom",e=>(0,S.isLineTool)(e)&&e.isPhantom()],["restRowSources",e=>!(0,S.isLineTool)(e)&&!(0,S.isTrading)(e)],["legendViewSources",e=>(0,re.isPriceDataSource)(e)||(0, +this._metaInfo=e}_updateVisibleOfPreAndPostMarketBackground(e){const t=!(0,O.isRegularSessionId)(e.value());this._outOfSessionVisibilityProperty().setValue(t),this._preMarketVisibilityProperty().setValue(t),this._postMarketVisibilityProperty().setValue(t)}_clearData(){null!==this._studySource&&this._studySource.clearData()}_createPaneViews(){const e={doubleClickHandler:this._doubleClickHandler};(0,D.createGraphicsPaneViews)(this,this._model,e).then((e=>{this._paneViews=e,this._model.lightUpdate()}))}_onPropertiesChanged(){this._processHibernate(),this.updateAllViews((0,W.sourceChangeEvent)(this.id()))}_processHibernate(){if(null!==this._studySource){const e=this._canBeHibernated(),t=this._isHibernated(),i=this._studySource.isStarted();!t&&e&&i?this._studySource.stop():!t||e||i||this._studySource.start()}}_canBeHibernated(){const e=this._model.mainSeries(),t=this._preMarketVisibilityProperty().value()&&this._postMarketVisibilityProperty().value()&&this._outOfSessionVisibilityProperty().value();return e.isDWM()||!t&&!this._vertLinesVisibleProperty().value()}_isHibernated(){return this._isStarted&&(null===this._studySource||!this._studySource.isStarted())}_outOfSessionVisibilityProperty(){return this._properties.childs().graphics.childs().backgrounds.childs().outOfSession.childs().visible}_preMarketVisibilityProperty(){return this._properties.childs().graphics.childs().backgrounds.childs().preMarket.childs().visible}_postMarketVisibilityProperty(){return this._properties.childs().graphics.childs().backgrounds.childs().postMarket.childs().visible}_vertLinesVisibleProperty(){return this._properties.childs().graphics.childs().vertlines.childs().sessBreaks.childs().visible}_removeDuplicateProperties(){this._properties.hasChild("properties")&&(this._properties.removeProperty("properties"),(0,x.saveDefaultProperties)(!0),this._properties.childChanged(null),(0,x.saveDefaultProperties)(!1))}_migrateOutOfSessionProperty(e){const t=e.graphics.backgrounds;if(void 0!==t){const i=t.outOfSession;i.color===(0,n.ensureDefined)(F.sessionsPreferencesDefault.graphics.backgrounds).outOfSession.color||"postMarket"in t||(e.graphics.backgrounds={...t,postMarket:{color:i.color,transparency:i.transparency,visible:i.visible},preMarket:{color:i.color,transparency:i.transparency,visible:i.visible}})}}}var j=i(89215),G=i(26867),q=i.n(G),$=i(40549),Y=i.n($),K=i(36646),Z=i(35624),X=i(98351),J=i(68671),Q=i(37364),ee=i(47539),te=i(58403),ie=i(65665),se=i(50059),re=i(88029),ne=i(50841);const oe=new Map([["price",e=>(0,re.isPriceDataSource)(e)],["trading",e=>(0,S.isTrading)(e)],["drawing",e=>(0,S.isLineTool)(e)&&!(0,S.isTrading)(e)&&!e.isPhantom()],["drawingsForAllSymbols",e=>(0,S.isLineTool)(e)&&!(0,S.isTrading)(e)&&!e.isPhantom()],["phantom",e=>(0,S.isLineTool)(e)&&e.isPhantom()],["restRowSources",e=>!(0,S.isLineTool)(e)&&!(0,S.isTrading)(e)],["legendViewSources",e=>(0,re.isPriceDataSource)(e)||(0, S.isStudyLineTool)(e)],["leftPriceScale",(e,t)=>"left"===le(e,t)],["rightPriceScale",(e,t)=>"right"===le(e,t)],["overlayPriceScale",(e,t)=>"overlay"===le(e,t)]]),ae=new Map([["price","visibleSorted"],["trading","visibleSorted"],["drawing","visibleSorted"],["drawingsForAllSymbols","allSorted"],["phantom","visibleSorted"],["restRowSources","visibleSorted"],["legendViewSources","visibleSorted"],["leftPriceScale","visibleSorted"],["rightPriceScale","visibleSorted"],["overlayPriceScale","visibleSorted"]]);function le(e,t){const i=e.priceScale();return null===i?"overlay":t.priceScalePosition(i)}class ce{constructor(e){this._groupedSources=new Map,this._sources=null,this._pane=e}clear(){this._groupedSources.clear(),this._sources=null}destroy(){this.clear()}all(){return this._groupedSources.has("visibleSorted")||this._sortSources(),(0,n.ensureDefined)(this._groupedSources.get("visibleSorted"))}allIncludingHidden(){return this._groupedSources.has("allSorted")||this._sortSources(),(0,n.ensureDefined)(this._groupedSources.get("allSorted"))}allExceptSpecialSources(){if(!this._groupedSources.has("exceptSpecial")){const e=this.allIncludingHidden().filter((e=>!e.isSpeciallyZOrderedSource()));this._groupedSources.set("exceptSpecial",e)}return(0,n.ensureDefined)(this._groupedSources.get("exceptSpecial"))}tradingSources(){return this._getSourcesByGroupType("trading")}priceSources(){return this._getSourcesByGroupType("price")}lineSources(){return this._getSourcesByGroupType("drawing")}lineSourcesForAllSymbols(){return this._getSourcesByGroupType("drawingsForAllSymbols")}phantomSources(){return this._getSourcesByGroupType("phantom")}allExceptLineAndTradingSources(){return this._getSourcesByGroupType("restRowSources")}hitTestSources(){if(!this._groupedSources.has("hitTest")){const e=this.allExceptLineAndTradingSources().concat(this.lineSources());this._groupedSources.set("hitTest",e)}return(0,n.ensureDefined)(this._groupedSources.get("hitTest"))}generalSources(){if(!this._groupedSources.has("general")){const e=this.allExceptLineAndTradingSources().concat(this.lineSources());this._groupedSources.set("general",(0,ne.sortSources)(e))}return(0,n.ensureDefined)(this._groupedSources.get("general"))}leftPriceScalesSources(){return this._getSourcesByGroupType("leftPriceScale")}rightPriceScalesSources(){return this._getSourcesByGroupType("rightPriceScale")}overlayPriceScaleSources(){return this._getSourcesByGroupType("overlayPriceScale")}legendViewSources(){return this._getSourcesByGroupType("legendViewSources")}_getSourcesByGroupType(e){const t=(0,n.ensureDefined)(ae.get(e));return this._groupedSources.has(t)?this._groupedSources.has(e)||this._groupSources(e):(this._sortSources(),this._groupSources(e)),(0,n.ensureDefined)(this._groupedSources.get(e))}_sortSources(){null===this._sources&&(this._sources=this._pane.dataSources());const e=(0,ne.sortSources)(this._sources),t=e.filter((e=>!(0,S.isLineTool)(e)||e.isActualSymbol()&&e.isActualCurrency()&&e.isActualUnit()));this._groupedSources.set("allSorted",e), -this._groupedSources.set("visibleSorted",t)}_groupSources(e){const t=(0,n.ensureDefined)(ae.get(e)),i=oe.get(e);if(void 0!==i){const s=(0,n.ensureDefined)(this._groupedSources.get(t)).filter((e=>i(e,this._pane)));this._groupedSources.set(e,s)}}}var he=i(60862),de=i(53778),ue=i(23304),pe=i(21580),_e=i(12033),me=i(62472),ge=i(77906),fe=i(86635);const ve=[],Se=[];class ye{constructor(e){this._studies={},this._deferreds={},this._container=e,ve.push(e),Se.push(this)}add(e,t){this._deferreds[e]&&(this._deferreds[e].resolve(t),delete this._deferreds[e]),this._studies[e]=t}get(e){return this._studies[e]?Promise.resolve(this._studies[e]):(this._deferreds[e]||(this._deferreds[e]=(0,p.createDeferredPromise)()),this._deferreds[e].promise)}reset(){const e=ve.indexOf(this._container);~e&&(ve.splice(e,1),Se.splice(e,1))}static instance(e){const t=ve.indexOf(e);return~t?Se[t]:new ye(e)}}var be=i(26132);var we=i(10621),Pe=i(37098),Ce=i(27569),Te=i(54922),xe=i(93753),Ie=i(55168);new ee.TranslatedString("update {title} script",c.t(null,void 0,i(50728)));const Me=(0,Z.getLogger)("Chart.Pane");function Ae(e,t,i){e.setMargins({top:t,bottom:i})}class Le{constructor(e,t,i,s){this.m_dataSources=[],this._sourceWatchedValuesSubscriptions=new Map,this.m_mainDataSource=null,this._cachedOrderedSources=new ce(this),this._sourcesById=new Map,this._priceSourcesById=new Map,this._sourcePropertiesChanged=new(q()),this._sourcesZOrderChanged=new(q()),this._tagsChanged=new(q()),this._stretchFactor=1e3,this._isInInsertManyDataSourcesState=!1,this._lastLineDataSourceZOrder=null,this._rightPriceScales=[],this._leftPriceScales=[],this._lockedPriceScale=null,this._currentPriceScaleRatio=null,this._onPriceScalesChanged=new(q()),this._isRecalculatingScales=!1,this._priceDataSources=[],this._symbolSources=[],this._lollipopDataSources=[],this._symbolSourceResolved=new(q()),this._symbolSourceResolvingActive=new(Y())(!1),this._bulkActions={activeCounter:0},this._height=0,this._width=0,this._dataSourcesCollectionChanged=new(q()),this._symbolSourceCollectionChanged=new(q()),this._maximized=new(Y())(!1),this._collapsed=new(Y())(!1),this._destroyed=new(q()),this._executionsPositionController=null,this._recalcSymbolSourceResolvingActive=()=>{for(const e of this._symbolSources)if(e.symbolResolvingActive().value())return void this._symbolSourceResolvingActive.setValue(!0);this._symbolSourceResolvingActive.setValue(!1)},this._onSymbolSourceCollectionChanged=()=>{0===this._bulkActions.activeCounter?this._symbolSourceCollectionChanged.fire():this._bulkActions.symbolSourceCollectionChanged=!0},this._priceScaleSelectionStrategy=(0,Q.createPriceScaleSelectionStrategy)(i.properties().childs().priceScaleSelectionStrategyName.value()),this._id=null!=s?s:(0,J.randomHashN)(6),this._timeScale=e,this.m_mainDataSource=null,this._properties=t,this._model=i,i.properties().childs().priceScaleSelectionStrategyName.subscribe(null,(e=>{this._priceScaleSelectionStrategy=(0,Q.createPriceScaleSelectionStrategy)(e.value()),this._priceScaleSelectionStrategy.apply(this)})), +this._groupedSources.set("visibleSorted",t)}_groupSources(e){const t=(0,n.ensureDefined)(ae.get(e)),i=oe.get(e);if(void 0!==i){const s=(0,n.ensureDefined)(this._groupedSources.get(t)).filter((e=>i(e,this._pane)));this._groupedSources.set(e,s)}}}var he=i(60862),de=i(53778),ue=i(23304),pe=i(21580),_e=i(12033),me=i(62472),ge=i(77906),fe=i(86635);const ve=[],Se=[];class ye{constructor(e){this._studies={},this._deferreds={},this._container=e,ve.push(e),Se.push(this)}add(e,t){this._deferreds[e]&&(this._deferreds[e].resolve(t),delete this._deferreds[e]),this._studies[e]=t}get(e){return this._studies[e]?Promise.resolve(this._studies[e]):(this._deferreds[e]||(this._deferreds[e]=(0,p.createDeferredPromise)()),this._deferreds[e].promise)}reset(){const e=ve.indexOf(this._container);~e&&(ve.splice(e,1),Se.splice(e,1))}static instance(e){const t=ve.indexOf(e);return~t?Se[t]:new ye(e)}}var be=i(26132);var we=i(10621),Pe=i(37098),Ce=i(27569),Te=i(54922),xe=i(93753),Ie=i(55168);new ee.TranslatedString("update {title} script",c.t(null,void 0,i(50728)));const Me=(0,X.getLogger)("Chart.Pane");function Ae(e,t,i){e.setMargins({top:t,bottom:i})}class Le{constructor(e,t,i,s){this.m_dataSources=[],this._sourceWatchedValuesSubscriptions=new Map,this.m_mainDataSource=null,this._cachedOrderedSources=new ce(this),this._sourcesById=new Map,this._priceSourcesById=new Map,this._sourcePropertiesChanged=new(q()),this._sourcesZOrderChanged=new(q()),this._tagsChanged=new(q()),this._stretchFactor=1e3,this._isInInsertManyDataSourcesState=!1,this._lastLineDataSourceZOrder=null,this._rightPriceScales=[],this._leftPriceScales=[],this._lockedPriceScale=null,this._currentPriceScaleRatio=null,this._onPriceScalesChanged=new(q()),this._isRecalculatingScales=!1,this._priceDataSources=[],this._symbolSources=[],this._lollipopDataSources=[],this._symbolSourceResolved=new(q()),this._symbolSourceResolvingActive=new(Y())(!1),this._bulkActions={activeCounter:0},this._height=0,this._width=0,this._dataSourcesCollectionChanged=new(q()),this._symbolSourceCollectionChanged=new(q()),this._maximized=new(Y())(!1),this._collapsed=new(Y())(!1),this._destroyed=new(q()),this._executionsPositionController=null,this._recalcSymbolSourceResolvingActive=()=>{for(const e of this._symbolSources)if(e.symbolResolvingActive().value())return void this._symbolSourceResolvingActive.setValue(!0);this._symbolSourceResolvingActive.setValue(!1)},this._onSymbolSourceCollectionChanged=()=>{0===this._bulkActions.activeCounter?this._symbolSourceCollectionChanged.fire():this._bulkActions.symbolSourceCollectionChanged=!0},this._priceScaleSelectionStrategy=(0,Q.createPriceScaleSelectionStrategy)(i.properties().childs().priceScaleSelectionStrategyName.value()),this._id=null!=s?s:(0,J.randomHashN)(6),this._timeScale=e,this.m_mainDataSource=null,this._properties=t,this._model=i,i.properties().childs().priceScaleSelectionStrategyName.subscribe(null,(e=>{this._priceScaleSelectionStrategy=(0,Q.createPriceScaleSelectionStrategy)(e.value()),this._priceScaleSelectionStrategy.apply(this)})), this._timeScale.barSpacingChanged().subscribe(this,(()=>{this.m_mainDataSource===this._model.mainSeries()&&this._recalculatePriceScaleByScaleRatio(this.m_mainDataSource.priceScale())})),t.childs().topMargin.subscribe(this,this._updateMargins),t.childs().bottomMargin.subscribe(this,this._updateMargins),this._updateMargins()}destroy(){this._properties.childs().topMargin.unsubscribeAll(this),this._properties.childs().bottomMargin.unsubscribeAll(this),this._model.properties().childs().priceScaleSelectionStrategyName.unsubscribeAll(this),this._timeScale.barSpacingChanged().unsubscribeAll(this),this._leftPriceScales.concat(this._rightPriceScales).forEach((e=>{e.modeChanged().unsubscribeAll(this),e.priceRangeChanged().unsubscribeAll(this),e.internalHeightChanged().unsubscribeAll(this)}));for(const e of this.m_dataSources)this.removeSourceFromPriceScale(e),e.destroy&&e.destroy();this._destroyed.fire()}id(){return this._id}bulkActionMacro(e){const t=this._bulkActions;t.activeCounter+=1,e(),t.activeCounter-=1,0===t.activeCounter&&(this._dataSourcesCollectionChanged.fire(),t.symbolSourceCollectionChanged&&this._symbolSourceCollectionChanged.fire(),t.symbolSourceCollectionChanged=!1)}defaultPriceScale(){var e,t;const i=null!==(t=null===(e=this.m_mainDataSource)||void 0===e?void 0:e.priceScale())&&void 0!==t?t:null;if(null!==i)return i;const s=this.properties().childs().axisProperties.state();return s.autoScale=!0,new he.PriceScale(this._model.properties().childs().scalesProperties,s)}leftPriceScales(){return this._leftPriceScales}rightPriceScales(){return this._rightPriceScales}visibleLeftPriceScales(){var e;const t=this._model.priceScaleSlotsCount();if(this._leftPriceScales.length>t.left){const i=(0,v.moveToHead)(this._leftPriceScales,null===(e=this.mainDataSource())||void 0===e?void 0:e.priceScale());return i.splice(t.left),i}return this._leftPriceScales}visibleRightPriceScales(){var e;const t=this._model.priceScaleSlotsCount();if(this._rightPriceScales.length>t.right){const i=(0,v.moveToHead)(this._rightPriceScales,null===(e=this.mainDataSource())||void 0===e?void 0:e.priceScale());return i.splice(t.right),i}return this._rightPriceScales}clearSeries(e){const t=this._model.mainSeries();for(let i=this.m_dataSources.length-1;i>=0;i--)this.m_dataSources[i]===t&&this._removeSourceFromCollections(i,e)}sourcesByGroup(){return this._cachedOrderedSources}dataSourceForId(e){return this._sourcesById.get(e)||null}changeSourceId(e,t){(0,n.assert)(this.hasDataSource(e));const i=e.id();e.setId(t),this._sourcesById.delete(i),this._sourcesById.set(t,e),(0,re.isPriceDataSource)(e)&&(this._priceSourcesById.delete(i),this._priceSourcesById.set(t,e))}movePriceScale(e,t,i){const s=this.priceScalePosition(e);if(s!==t)this.removePriceScale(e),this._placePriceScale(e,t,i),e.invalidateMargins(),this._invalidateSourcesCache();else if(void 0!==i&&"overlay"!==s){const t="left"===s?this._leftPriceScales:this._rightPriceScales,r=t.indexOf(e);t.splice(r,1),t.splice(i,0,e)}}mainDataSource(){return this.m_mainDataSource}isEmpty(){ return null===this.m_mainDataSource}recalculatePriceScale(e,t){if(!e)return;const i=e.sourcesForAutoscale();if((e.isAutoScale()||e.priceRangeShouldBeRecalculatedOnce())&&i&&i.length>0&&!this.timeScale().isEmpty()){const t=this.timeScale().visibleBarsStrictRange();e.recalculatePriceRange(t)}e.updateAllViews(t)}onSourceTagsChanged(){this._tagsChanged.fire()}insertDataSource(e,t,i){e.setZorder(i),t||(t=this.findSuitableScale(e)),this._addSourceToCollections(e);let s=!1;e===this.model().mainSeries()?(this.m_mainDataSource=this.model().mainSeries(),s=!0):null===this.m_mainDataSource&&(0,re.isPriceDataSource)(e)&&(this.m_mainDataSource=e,s=!0),t.addDataSource(e,this._isInInsertManyDataSourcesState),e.setPriceScale(t),t.invalidateMargins(),e.onTagsChanged&&e.onTagsChanged().subscribe(this,this.onSourceTagsChanged),s&&this._processMainSourceChange(),this._tagsChanged.fire(),(0,re.isPriceDataSource)(e)&&this.recalculatePriceScale(t,(0,W.sourceChangeEvent)(e.id())),this._invalidateSourcesCache()}addDataSource(e,t,i){let s=e.zorder();i||((0,S.isLineTool)(e)&&!e.isSpeciallyZOrderedSource()?(s=null!==this._lastLineDataSourceZOrder?this._lastLineDataSourceZOrder+1:this.newLineToolZOrder(),this._isInInsertManyDataSourcesState&&(this._lastLineDataSourceZOrder=s)):(0,j.isStudy)(e)&&!e.isSpeciallyZOrderedSource()&&(s=this.newStudyZOrder())),this.insertDataSource(e,t,s)}removeDataSource(e,t,i){const s=this.m_dataSources.indexOf(e);if(-1===s)return void Me.logDebug("removeDataSource: invalid data source");this._removeSourceFromCollections(s,!!i),e!==this.m_mainDataSource||t||(this.m_mainDataSource=null);const r=e.priceScale();this.removeSourceFromPriceScale(e),e.onTagsChanged&&e.onTagsChanged().unsubscribe(this,this.onSourceTagsChanged),(0,re.isPriceDataSource)(e)&&!t&&this._processMainSourceChange(),this._tagsChanged.fire(),r&&(0,re.isPriceDataSource)(e)&&this.recalculatePriceScale(r,(0,W.sourceChangeEvent)(e.id())),this._invalidateSourcesCache()}hasDataSource(e){return this._sourcesById.has(e.id())}hasPriceDataSource(e){return this._priceSourcesById.has(e.id())}dataSources(){return this.m_dataSources}priceDataSources(){return this._priceDataSources}lollipopDataSources(){return this._lollipopDataSources}symbolSources(){return this._symbolSources}replaceSource(e,t,i){const s=this.m_mainDataSource===e,r=e.zorder();this.insertDataSource(t,i,r),this.removeDataSource(e,s),this._sourcesById.set(t.id(),t),(0,re.isPriceDataSource)(t)&&this._priceSourcesById.set(t.id(),t),s&&(this.m_mainDataSource=t,this._processMainSourceChange())}findSuitableScale(e,t,i){return this._priceScaleSelectionStrategy.findSuitableScale(this,e,t,i)}createNewPriceScaleIfPossible(){return this._priceScaleSelectionStrategy.createNewPriceScaleIfPossible(this)}canCreateNewPriceScale(){return this._priceScaleSelectionStrategy.canCreateNewPriceScale(this)}isOverlay(e){const t=e.priceScale();return null===t||"overlay"===this.priceScalePosition(t)}recalculate(e){this._leftPriceScales.forEach((t=>this.recalculatePriceScale(t,e))), this._rightPriceScales.forEach((t=>this.recalculatePriceScale(t,e)));for(const t of this.m_dataSources)this.isOverlay(t)&&!(0,S.isLineTool)(t)&&this.recalculatePriceScale(t.priceScale(),e);this.updateAllViews(e),this._model.updatePane(this)}updateAllViews(e){for(const t of this.m_dataSources)t.updateAllViews(e);for(const t of this.model().customSources())t.updateViewsForPane(this,e)}updateLollipopViews(e){}priceScalePosition(e){return this._leftPriceScales.includes(e)?"left":this._rightPriceScales.includes(e)?"right":"overlay"}createPriceScaleAtPosition(e,t){const i=this.properties().childs().axisProperties.state();i.autoScale=!0;const s=new he.PriceScale(this.model().properties().childs().scalesProperties,i);return s.setHeight(this.height()),Ae(s,this._defaultTopMargin(),this._defaultBottomMargin()),this._placePriceScale(s,e,t),s}removePriceScale(e){e.modeChanged().unsubscribeAll(this),e.priceRangeChanged().unsubscribeAll(this),e.internalHeightChanged().unsubscribeAll(this),e===this._lockedPriceScale&&(this._lockedPriceScale=null,this._currentPriceScaleRatio=null);const t=this._leftPriceScales.indexOf(e);-1!==t&&(this._leftPriceScales[t].invalidateMargins(),this._leftPriceScales.splice(t,1));const i=this._rightPriceScales.indexOf(e);if(-1!==i&&(this._rightPriceScales[i].invalidateMargins(),this._rightPriceScales.splice(i,1)),null===e.mainSource()){const t=e.dataSources().length;0!==t&&Me.logError("Invalid priceScale state: empty mainSource but non-empty data sources="+t)}this._onPriceScalesChanged.fire()}priceScaleIndex(e,t){switch(t){case"left":return this.leftPriceScales().indexOf(e);case"right":return this.rightPriceScales().indexOf(e)}}move(e,t,i){const s=e.priceScale();this.removeSourceFromPriceScale(e),t.addDataSource(e),e.setPriceScale(t),t.invalidateMargins(),this._processMainSourceChange(),this._invalidateSourcesCache(),e.isIncludedInAutoScale()&&(null!==s&&this.recalculatePriceScale(s,(0,W.sourceChangeEvent)(e.id())),this.recalculatePriceScale(t,(0,W.sourceChangeEvent)(e.id()))),this._onPriceScalesChanged.fire()}setZOrders(e){e.forEach(((e,t)=>{t.setZorder(e)})),this._invalidateSourcesCache(),0===this._bulkActions.activeCounter&&this._dataSourcesCollectionChanged.fire(),this.model().lightUpdate()}isMainPane(){return this.hasDataSource(this.model().mainSeries())}isLast(){const e=this.model().panes();return e[e.length-1]===this}newStudyZOrder(){return(0,_e.newStudyZOrder)(this._priceDataSources)}newLineToolZOrder(e){return(0,_e.newLineToolZOrder)(this.m_dataSources,e)}model(){return this._model}containsMainSeries(){return this._sourcesById.has(this.model().mainSeries().id())}applyPriceScaleRatio(e,t){var i;null!==this._lockedPriceScale&&this._lockedPriceScale!==e||this._currentPriceScaleRatio===t||!this.isMainPane()||null===this._lockedPriceScale&&e!==(null===(i=this.mainDataSource())||void 0===i?void 0:i.priceScale())||(this._setNewPriceRangeByScaleRatio(e,t,this._mainSourceVisiblePriceRange(e),!0,!0), @@ -405,32 +406,32 @@ const t=this.dataSourceForId(e);if(null!==t){const e=t.ownerSource();if(null!==e this._sourcesById.set(e.id(),e),this._invalidateSourcesCache();const i=()=>{this._sourcePropertiesChanged.fire(e)};e.properties().subscribe(this,i),e.zOrderChanged().subscribe(this,(t=>this._sourcesZOrderChanged.fire(e,t))),(0,S.isLineTool)(e)&&(e.normalizedPointsChanged().subscribe(this,i),e.fixedPointChanged().subscribe(this,i),e.hasAlert.subscribe(i),e.sharingMode().subscribe(i),e.linkKey().subscribe(i),this._sourceWatchedValuesSubscriptions.set(e.id(),i));const s=(0,pe.isSymbolSource)(e)?e:null;(0,re.isPriceDataSource)(e)&&(this._priceSourcesById.set(e.id(),e),e.currencyChanged().subscribe(this,(()=>this._invalidateSourcesCache())),e.unitChanged().subscribe(this,(()=>this._invalidateSourcesCache())),this._priceDataSources.push(e),null!==s&&(this._symbolSources.push(s),s.symbolResolved().subscribe(this,(()=>this._symbolSourceResolved.fire(e))),s.symbolResolvingActive().subscribe(this._recalcSymbolSourceResolvingActive),s.symbolHibernated().subscribe(this._onSymbolSourceCollectionChanged),this._recalcSymbolSourceResolvingActive(),this._onSymbolSourceCollectionChanged())),e.isMultiPaneAvailable()&&this.model().addMultiPaneSource(e),t||0!==this._bulkActions.activeCounter||this._dataSourcesCollectionChanged.fire()}_removeSourceFromCollections(e,t){const i=this.m_dataSources[e];i.properties().unsubscribeAll(this),i.zOrderChanged().unsubscribeAll(this),this.m_dataSources.splice(e,1),this._sourcesById.delete(i.id());const s=i.id();if((0,S.isLineTool)(i)&&(i.normalizedPointsChanged().unsubscribeAll(this),i.fixedPointChanged().unsubscribeAll(this),this._sourceWatchedValuesSubscriptions.has(s))){const e=this._sourceWatchedValuesSubscriptions.get(s);i.hasAlert.unsubscribe(e),i.linkKey().unsubscribe(e)}this._invalidateSourcesCache();const r=(0,pe.isSymbolSource)(i)?i:null;(0,re.isPriceDataSource)(i)&&(this._priceSourcesById.delete(i.id()),i.currencyChanged().unsubscribeAll(this),i.unitChanged().unsubscribeAll(this),(0,v.removeItemFromArray)(this._priceDataSources,i),null!==r&&((0,v.removeItemFromArray)(this._symbolSources,r),r.symbolResolved().unsubscribeAll(this),r.symbolResolvingActive().unsubscribe(this._recalcSymbolSourceResolvingActive),r.symbolHibernated().unsubscribe(this._onSymbolSourceCollectionChanged),this._recalcSymbolSourceResolvingActive(),this._onSymbolSourceCollectionChanged())),i.isMultiPaneAvailable()&&this.model().removeMultiPaneSource(i),t||0!==this._bulkActions.activeCounter||this._dataSourcesCollectionChanged.fire()}_recalculatePriceScaleByScaleRatio(e){this.isMainPane()&&e===this._lockedPriceScale&&(null!==this._currentPriceScaleRatio?this._applyOldScaleRatioToPriceScale():this._tryToApplyNewPriceScaleRatio())}_defaultBottomMargin(){return.01*this.properties().childs().bottomMargin.value()}_defaultTopMargin(){return.01*this.properties().childs().topMargin.value()}_updateMargins(){const e=this._defaultTopMargin(),t=this._defaultBottomMargin();for(const i of this._leftPriceScales)Ae(i,e,t);for(const i of this._rightPriceScales)Ae(i,e,t);for(const i of this.m_dataSources)if(this.isOverlay(i)){ const s=i.priceScale();null!==s&&(Ae(s,e,t),this.recalculatePriceScale(s,(0,W.viewportChangeEvent)()))}for(const e of this._leftPriceScales)this.recalculatePriceScale(e,(0,W.viewportChangeEvent)());for(const e of this._rightPriceScales)this.recalculatePriceScale(e,(0,W.viewportChangeEvent)());this.updateAllViews((0,W.viewportChangeEvent)())}_batchReorder(e,t,i){i(this.sourcesByGroup().allExceptSpecialSources(),e,t),this._invalidateSourcesCache(),this._dataSourcesCollectionChanged.fire(),this.model().fullUpdate()}_placePriceScale(e,t,i){if("overlay"===t)return void e.invalidateMargins();const s="left"===t?this._leftPriceScales:this._rightPriceScales,r=void 0===i?s.length:i;s.splice(r,0,e),e.modeChanged().subscribe(this,this._onPriceScaleModeChanged.bind(this,e)),e.internalHeightChanged().subscribe(this,this._recalculatePriceScaleByScaleRatio.bind(this,e)),e.priceRangeChanged().subscribe(this,this._recalculateTimeScaleByScaleRatio.bind(this,e)),e.priceRangeChanged().subscribe(this,this._onPriceScaleSetMinMaxPriceRange.bind(this,e)),e.isLockScale()&&((0,n.assert)(null===this._lockedPriceScale),this._lockedPriceScale=e,this._currentPriceScaleRatio=null),e.invalidateMargins(),this._onPriceScalesChanged.fire()}_onPriceScaleModeChanged(e,t,i){if(i.lockScale&&(this._lockedPriceScale!==e&&null!==this._lockedPriceScale&&this._lockedPriceScale.setMode({lockScale:!1}),this._lockedPriceScale=e,this._currentPriceScaleRatio=(0,de.scaleRatio)(this.timeScale(),e)),t.lockScale&&!i.lockScale&&(this._lockedPriceScale=null,this._currentPriceScaleRatio=null),t.percentage===i.percentage&&t.indexedTo100===i.indexedTo100)return;const s=this.timeScale().visibleBarsStrictRange();null!==s&&(e.recalculatePriceRange(s),e.updateAllViews((0,W.viewportChangeEvent)()))}_applyOldScaleRatioToPriceScale(){this._isRecalculatingScales||null===this._currentPriceScaleRatio||null===this._lockedPriceScale||(this._isRecalculatingScales=!0,this._setNewPriceRangeByScaleRatio(this._lockedPriceScale,this._currentPriceScaleRatio,this._mainSourceVisiblePriceRange(this._lockedPriceScale)),this._isRecalculatingScales=!1)}_setNewPriceRangeByScaleRatio(e,t,i,s,r){const n=(0,de.priceRangeByScaleRatio)(e,this.timeScale().barSpacing(),t);e.setPriceRange(null!==n?n:i,s,r)}_applyOldScaleRatioToTimeScale(){this._isRecalculatingScales||null===this._currentPriceScaleRatio||(this._isRecalculatingScales=!0,this._setNewBarSpacingByScaleRatio(),this._isRecalculatingScales=!1)}_tryToApplyNewPriceScaleRatio(){const e=(0,n.ensureNotNull)(this._lockedPriceScale),t=(0,de.scaleRatio)(this.timeScale(),e);this._currentPriceScaleRatio===t||e.isLog()||(this._currentPriceScaleRatio=t,this.model().mainSeriesScaleRatioPropertyOnChanged())}_recalculateTimeScaleByScaleRatio(e){e===this._lockedPriceScale&&(null!==this._currentPriceScaleRatio?this._applyOldScaleRatioToTimeScale():this._tryToApplyNewPriceScaleRatio())}_setNewBarSpacingByScaleRatio(){const e=this.timeScale().getValidBarSpacing((0,de.barSpacingByScaleRatio)((0,n.ensureNotNull)(this._lockedPriceScale),this._currentPriceScaleRatio)) ;this.timeScale().isValidBarSpacing(e)&&this.timeScale().setBarSpacing(e)}_mainSourceVisiblePriceRange(e){const t=this.timeScale().visibleBarsStrictRange();return null!==t?(0,n.ensureNotNull)((0,n.ensureNotNull)(e.mainSource()).priceRange(t.firstBar(),t.lastBar())):new ue.PriceRange(-.5,.5)}_setMinMaxPriceRange(){const e=(0,n.ensureNotNull)(this._lockedPriceScale),t=(0,de.priceRangeByScaleRatio)(e,this.timeScale().maxBarSpacing(),this._currentPriceScaleRatio),i=(0,de.priceRangeByScaleRatio)(e,this.timeScale().minBarSpacing(),this._currentPriceScaleRatio);null!==t&&e.setMaxPriceRange(t),null!==i&&e.setMinPriceRange(i)}_onPriceScaleSetMinMaxPriceRange(e){e===this._lockedPriceScale&&this._setMinMaxPriceRange()}_nonOverlayPricesSourcesCount(){return this.m_dataSources.filter((e=>(!e.properties().linkedToSeries||!e.properties().linkedToSeries.value())&&((0,re.isPriceDataSource)(e)&&e.showInObjectTree()&&!this.isOverlay(e)))).length}_restoreMainSeries(e,t,i,s,r,n){const o=e.id,a=e.state;if(a&&r&&(a.style=r.style||a.style,a.interval=r.interval||a.interval,r.symbol&&r.symbol!==a.symbol&&(a.symbol=r.symbol,delete a.currencyId,delete a.unitId)),a&&["candleStyle","hollowCandleStyle","haStyle"].forEach((e=>{a[e]&&(a[e].wickUpColor=a[e].wickUpColor||a[e].wickColor,a[e].wickDownColor=a[e].wickDownColor||a[e].wickColor)})),a&&(a.statusViewStyle=a.statusViewStyle||{},!a.statusViewStyle.symbolTextSource)){const e=!!a.statusViewStyle.showSymbolAsDescription;a.statusViewStyle.symbolTextSource=e?"ticker":"description"}if(a&&(a.extendedHours?a.sessionId="extended":a.sessionId||(a.sessionId="regular"),delete a.extendedHours),!i){const e=this._model.mainSeries();this._model.mainPane().removeDataSource(e,!1,n),this._addSourceToCollections(e,n)}const l=this.model().mainSeries(),c=l.properties().childs();this.m_mainDataSource=l;const h=a&&a.style?a.style:void 0;if(6===h&&"ATR"===c.pnfStyle.childs().inputs.childs().style.value()?c.pnfStyle.childs().inputs.childs().style.setValueSilently("Traditional"):4===h&&"ATR"===c.renkoStyle.childs().inputs.childs().style.value()&&c.renkoStyle.childs().inputs.childs().style.setValueSilently("Traditional"),a&&!a.hasOwnProperty("showSessions")&&(a.showSessions=!1),a&&void 0===a.settlementAsClose&&(a.settlementAsClose=!1),a&&t&&(a.showCountdown=!1),a&&(t&&!("showSeriesLastValueProperty"in s)&&"showLastValue"in a&&this._model.properties().childs().scalesProperties.childs().showSeriesLastValue.setValue(a.showLastValue),delete a.showLastValue),a){const t={haStyle:(0,O.chartStyleStudyId)(8,!0),renkoStyle:(0,O.chartStyleStudyId)(4,!0),pbStyle:(0,O.chartStyleStudyId)(7,!0),kagiStyle:(0,O.chartStyleStudyId)(5,!0),pnfStyle:(0,O.chartStyleStudyId)(6,!0),rangeStyle:(0,O.chartStyleStudyId)(11,!0)},i=this._model.studyVersioning(),s=l.styleStudyInfos(),r=Object.keys(ge.SYMBOL_STRING_DATA);for(let n=0;nthis._right+.5?!0===t&&2:!0!==t||0}before(e){return ethis._right+.5}equals(e){return this._left===e.left()&&this._right===e.right()}static compare(e,t){return null===e||null===t?e===t:e.equals(t)}}var Re=i(90593);const Ne=(0,Z.getLogger)("Chart.TimePoints");function Oe(e,t){return null===e||null===t?e===t:e.firstIndex===t.firstIndex&&e.lastIndex===t.lastIndex}class Fe{constructor(){this._zoffset=0,this._items=[],this._range=new Re.WatchedObject(null,Oe)}clear(){this._zoffset=0,this._items=[],this._range.setValue(null)}size(){return this._items.length}range(){return this._range.readonly()}merge(e,t,i){const s=this._mergeImpl(e,t,i);return this._updateFirstAndLastIndex(),s}addTail(e,t){for(let i=t?1:0;ithis._items[this._items.length-1])return t?this._validOffsetToIndex(this._items.length-1):null;for(let i=0;io){const i=e-o;if(i<500&&null!=t)return t(l,i);return l+i*c}return null}roughIndex(e,t=null){const i=this._items;if(!i.length||i.length<2)return null;const s=i.length-1,r=this._validOffsetToIndex(0),n=this._validOffsetToIndex(s),o=i[0],a=i[s];if(e>=o&&e<=a)return this.closestIndexLeft(e);const l=(a-o)/(n-r);if(ea){const i=e-a +;const h=c.inputs,d=te.StudyMetaInfo.parseIdString(l),u=s[o].studyId,p=te.StudyMetaInfo.parseIdString(u),_=i.updateStudyInputs(d.id,d.version,p.version,h,null);c.inputs=_}}const d=l.sessionId();l.restoreState(e,t),this.changeSourceId(l,o),l.sessionId()!==d&&c.sessionId.listeners().fire(c.sessionId)}_restoreSpecialSource(e,t,i){}}var ke=i(41207),Ee=i(91031),De=i(933),Be=i(28263);class Ve{constructor(e,t){(0,n.assert)(e<=t,"The left value should be greater than or equal to the right value"),this._left=e,this._right=t}left(){return this._left}right(){return this._right}length(){return this._right-this._left+1}contains(e,t){return ethis._right+.5?!0===t&&2:!0!==t||0}before(e){return ethis._right+.5}equals(e){return this._left===e.left()&&this._right===e.right()}static compare(e,t){return null===e||null===t?e===t:e.equals(t)}}var Re=i(90593);const Ne=(0,X.getLogger)("Chart.TimePoints");function Oe(e,t){return null===e||null===t?e===t:e.firstIndex===t.firstIndex&&e.lastIndex===t.lastIndex}class Fe{constructor(){this._zoffset=0,this._items=[],this._range=new Re.WatchedObject(null,Oe)}clear(){this._zoffset=0,this._items=[],this._range.setValue(null)}size(){return this._items.length}range(){return this._range.readonly()}merge(e,t,i){const s=this._mergeImpl(e,t,i);return this._updateFirstAndLastIndex(),s}addTail(e,t){for(let i=t?1:0;ithis._items[this._items.length-1])return t?this._validOffsetToIndex(this._items.length-1):null;for(let i=0;io){const i=e-o;if(i<500&&null!=t)return t(l,i);return l+i*c}return null}roughIndex(e,t=null){const i=this._items;if(!i.length||i.length<2)return null;const s=i.length-1,r=this._validOffsetToIndex(0),n=this._validOffsetToIndex(s),o=i[0],a=i[s];if(e>=o&&e<=a)return this.closestIndexLeft(e);const l=(a-o)/(n-r);if(ea){const i=e-a ;let s=Math.trunc(i/l);if(s<500&&null!==t){const i=t(a,e);i.success&&(s=i.result)}return n+s}return null}closestIndexLeft(e){const t=this._items;if(!t.length)return null;if(Number.isNaN(e))return null;let i=t.length-1;if(e>=t[i])return this._validOffsetToIndex(i);let s=0;const r=t[s];if(es+1;){const r=s+i>>1,n=t[r];if(n>e)i=r;else{if(!(nthis._zoffset&&e+t>0)return Ne.logError("merge: when the first time point index is updated, we should fill the time points starting from the first one"),[];if(0===this._items.length)return this._items=i.slice(),this._zoffset=t,[{change:"rebuild",index:this._validOffsetToIndex(0)}];const s=e+this._zoffset;if(s<0){const r=Math.abs(s);if(i.lengththis._items.length){const e=o-this._items.length;for(let t=n;t{this._usePercentageRightOffset.setValue(!1),this._defaultRightOffsetOptionsUpdated()})),this._defaultRightOffsetPercentage.subscribe((e=>{if(e>=100||e<0){const t=Math.max(0,Math.min(e,99));this._defaultRightOffsetPercentage.setValue(t)}else this._usePercentageRightOffset.setValue(!0),this._defaultRightOffsetOptionsUpdated()})),this._usePercentageRightOffset.subscribe((()=>{this._defaultRightOffsetOptionsUpdated()})),this._options.preserveBarSpacing&&(this._barSpacing=this._scalesProperties.childs().barSpacing.value()||6),this._barSpacingChanged.subscribe(this,this._maxRightOffsetOnChanged),this._widthChanged.subscribe(this,this._maxRightOffsetOnChanged)}destroy(){this._barSpacingChanged.unsubscribeAll(this),this._barSpacingChanged.destroy(),this._widthChanged.unsubscribeAll(this),this._widthChanged.destroy()}isEmpty(){return 0===this._width||!this.canNormalize()}canNormalize(){return this._points.size()>0}update(e,t,i,s){this._visibleBarsInvalidated=!0,i.length>0&&this._points.merge(e,t,i),this._tickMarks.merge(s),this.correctOffset()}addTail(e,t,i){this._tickMarks.removeTail(t);const s=e.params,r=(0,n.ensureDefined)(this._tickMarks.maxIndex)+(i?0:1);for(let e=0;e{this._usePercentageRightOffset.setValue(!1),this._defaultRightOffsetOptionsUpdated()})),this._defaultRightOffsetPercentage.subscribe((e=>{if(e>=100||e<0){const t=Math.max(0,Math.min(e,99));this._defaultRightOffsetPercentage.setValue(t)}else this._usePercentageRightOffset.setValue(!0),this._defaultRightOffsetOptionsUpdated()})),this._usePercentageRightOffset.subscribe((()=>{this._defaultRightOffsetOptionsUpdated()})),this._options.preserveBarSpacing&&(this._barSpacing=this._scalesProperties.childs().barSpacing.value()||6),this._barSpacingChanged.subscribe(this,this._maxRightOffsetOnChanged),this._widthChanged.subscribe(this,this._maxRightOffsetOnChanged)}destroy(){this._barSpacingChanged.unsubscribeAll(this),this._barSpacingChanged.destroy(),this._widthChanged.unsubscribeAll(this),this._widthChanged.destroy()}isEmpty(){return 0===this._width||!this.canNormalize()}canNormalize(){return this._points.size()>0}update(e,t,i,s){this._visibleBarsInvalidated=!0,i.length>0&&this._points.merge(e,t,i),this._tickMarks.merge(s),this.correctOffset()}addTail(e,t,i){this._tickMarks.removeTail(t);const s=e.params,r=(0,n.ensureDefined)(this._tickMarks.maxIndex)+(i?0:1);for(let e=0;e0&&(i*=this._width/e.width)),this._tryToUpdateBarSpacing(this._barSpacing,i),this.correctOffset(),this._usePercentageRightOffset.value()&&(this._rightOffset=this.percentsToBarIndexLength(this._defaultRightOffsetPercentage.value())),this._rightOffsetChanged.fire(this._rightOffset)}marks(){if(this.isEmpty())return null;const e=this._barSpacing,t=5*((this._scalesProperties.childs().fontSize.value()||0)+4),i=Math.round(t/e),s=(0,n.ensureNotNull)(this.visibleBarsStrictRange()),r=Math.max(s.firstBar(),s.firstBar()-i),o=Math.max(s.lastBar(),s.lastBar()-i),a=this._tickMarks.build(e,t),l=[];for(const e of a){if(!(r<=e.index&&e.index<=o))continue;const t=this._tickMarks.indexToTime(e.index);null!==t&&l.push({coord:this.indexToCoordinate(e.index),label:this.formatLabel(t,e.span),span:e.span,major:e.label>=je.DAY_SPAN})}return l}visibleBarsStrictRange(){return this._visibleBarsInvalidated&&(this._visibleBarsInvalidated=!1,this._updateVisibleBars()),this._visibleBars.strictRange()}visibleBarsStrictRangeChanged(){return this._visibleBarsChanged}visibleStrictDataRange(e){const t=this.visibleBarsStrictRange();if(null===t)return null;const i=e.search(t.firstBar(),Je.PlotRowSearchMode.NearestRight),s=e.search(t.lastBar(),Je.PlotRowSearchMode.NearestLeft);return null===i||null===s?null:new Be.BarsRange(i.index,s.index)}visibleExtendedDataRange(e,t){const i=this.visibleBarsStrictRange();if(null===i)return null;let s=1===t?null:e.search(i.firstBar()-1,Je.PlotRowSearchMode.NearestLeft),r=0===t?null:e.search(i.lastBar()+1,Je.PlotRowSearchMode.NearestRight);return null===s&&(s=e.search(i.firstBar(),Je.PlotRowSearchMode.NearestRight)),null===r&&(r=e.search(i.lastBar(),Je.PlotRowSearchMode.NearestLeft)), null===s||null===r?null:new Be.BarsRange(s.index,r.index)}logicalRangeChanged(){return this._logicalRangeChanged}tickMarks(){return this._tickMarks}points(){return this._points}width(){return this._width}setWidth(e,t){if(!Number.isFinite(e)||e<=0)return void it.logWarn(`setWidth: invalid argument: ${e}`);if(this._width===e)return;if(this._visibleBarsInvalidated=!0,(t||this._options.lockVisibleTimeRangeOnResize)&&this._width){const t=this._barSpacing*e/this._width;this._tryToUpdateBarSpacing(this._barSpacing,t)}else this._width&&this.setBarSpacing(this._barSpacing);if(null!==this._leftEdgeIndex){if((0,n.ensureNotNull)(this.visibleBarsStrictRange()).firstBar()<=this._leftEdgeIndex){const t=this._width-e;this._rightOffset-=Math.round(t/this._barSpacing)+1}}const i=this._usePercentageRightOffset.value()&&this._rightOffset>0?this.barIndexLengthToPercents(this._rightOffset):-1;this._width=e,this._widthChanged.fire(e);const s=this._rightOffset;i>0?this._rightOffset=this.percentsToBarIndexLength(i):this.correctOffset(),this._rightOffset!==s&&this._rightOffsetChanged.fire(this._rightOffset),this._requestMoreData()}setLeftEdgeFix(e){this._leftEdgeIndex=e;const t=this.visibleBarsStrictRange();if(null===t)return;const i=t.firstBar()-e;if(i<0){const e=this._rightOffset-i-1;this.scrollToOffsetAnimated(e,500)}}indexToCoordinate(e){if(this.isEmpty())return 0;if(!(0,ie.isInteger)(e))return 0;const t=this.baseIndex()+this._rightOffset-e;return this._width-(t+.5)*this._barSpacing-1}indexToUserTime(e){return this._tickMarks.indexToTime(e)}timePointToIndex(e,t){switch(t){case 0:return this._points.indexOf(e,!1);case 1:return this._points.closestIndexLeft(e);default:return this._points.indexOf(e,!0)}}indexToTimePoint(e){return this._points.valueAt(e)}timeToCoordinate(e){const t=this._points.closestIndexLeft(e);if(null===t)return null;const i=(0,n.ensureNotNull)(this._points.valueAt(t)),s=this.indexToCoordinate(t);if(s<=0||s>=this._width)return null;const r=this.barSpacing(),o=this.baseIndex(),a=s+(e-i)/((0,n.ensureNotNull)(this._points.valueAt(o))-(0,n.ensureNotNull)(this._points.valueAt(o-1)))*r+1;return a<=0||a>=this._width?null:a}barIndexesToCoordinates(e){const t=this.baseIndex();for(const i of e){const e=i.time,s=t+this._rightOffset-e,r=this._width-(s+.5)*this._barSpacing-1;i.time=r}}timedValuesToCoordinates(e,t,i){var s,r;const n=this.baseIndex()+this._rightOffset,o=this._width-n*this._barSpacing-.5*this._barSpacing-1,a=null!==(s=null==t?void 0:t.startItemIndex)&&void 0!==s?s:0;let l=a;const c=null!==(r=null==t?void 0:t.endItemIndex)&&void 0!==r?r:e.length;!0===i&&(l=(0,v.upperbound)(e,We.UNPLOTTABLE_TIME_POINT_INDEX,((e,t)=>e{void 0!==t&&t(),this._requestMoreData()};if(e){const e=this._rightOffset,t=this.maxRightOffset();t>0&&i>t&&(i=t);const r=this._model;(0,Ze.doAnimate)({from:e,to:i,duration:1e3,easing:ke.easingFunc.easeInOutQuint,onComplete:s,onStep:(e,t)=>{this._visibleBarsInvalidated=!0,this._updateRightOffset(t),this._onScroll.fire(),r.recalculateAllPanes((0,W.viewportChangeEvent)()),r.lightUpdate(),r.recalcVisibleRangeStudies()}})}else this._visibleBarsInvalidated=!0,this._updateRightOffset(i),this._onScroll.fire(),s()}scrollToFirstBar(){this._model.gotoTime(new Date("1800-01-01").getTime()),this._onScroll.fire()}scrollToOffsetAnimated(e,t){if(!isFinite(e))throw new RangeError("offset is required and must be finite number");const i=void 0===t?400:t;if(!isFinite(i)||i<=0)throw new RangeError("animationDuration (optional) must be finite positive number");const s=this._rightOffset,r=Date.now(),n=()=>{this._visibleBarsInvalidated=!0;const t=(Date.now()-r)/i;if(t>=1)return this._updateRightOffset(e),this._visibleBarsInvalidated=!0,this._model.recalculateAllPanes((0,W.viewportChangeEvent)()),void this._model.lightUpdate();const o=s+(e-s)*t;this._updateRightOffset(o),this._model.recalculateAllPanes((0,W.viewportChangeEvent)()),setTimeout(n,20)};n()}defaultRightOffset(){return this._defaultRightOffset}rightOffsetDefaultValue(){return 10}defaultRightOffsetPercentage(){return this._defaultRightOffsetPercentage}usePercentageRightOffset(){return this._usePercentageRightOffset}barSpacing(){return this._barSpacing}setBarSpacing(e){Number.isFinite(e)?(e=this.getValidBarSpacing(e),this._tryToUpdateBarSpacing(this._barSpacing,e)&&(this.correctOffset(),this._options.preserveBarSpacing&&((0,x.saveDefaultProperties)(!0),this._scalesProperties.childs().barSpacing.setValue(this._barSpacing),(0,x.saveDefaultProperties)(!1)),this._model.recalculateAllPanes((0,W.viewportChangeEvent)()),this._model.lightUpdate())):it.logWarn(`setBarSpacing: invalid argument: ${e}`)}barSpacingChanged(){return this._barSpacingChanged}getValidBarSpacing(e){return null==e&&(e=this.barSpacing()),ethis.maxBarSpacing()?this.maxBarSpacing():e}isValidBarSpacing(e){return e>=this.minBarSpacing()&&e<=this.maxBarSpacing()}preserveBarSpacing(){return this._options.preserveBarSpacing}normalizeBarIndex(e){let t=0,i=0;const s=this.baseIndex(),r=(0,n.ensureNotNull)(this._points.range().value()).firstIndex;return es?(t=(0,n.ensureNotNull)(this._points.valueAt(s)),i=e-s):(t=(0,n.ensureNotNull)(this._points.valueAt(e)),i=0),{time_t:t,offset:i}}denormalizeTimePoint(e){const t=this._points.indexOf(e.time_t,!1);if(null!==t)return t+e.offset}rightOffset(){return this._rightOffset}rightOffsetChanged(){return this._rightOffsetChanged}minRightOffset(){var e +const t=this.timeToCoordinate(e);return null===t?null:this._rightOffsetForCoordinate(t)}scrollToRealtime(e,t){let i=this.targetDefaultRightOffset();i<0&&(i=this.rightOffsetDefaultValue());const s=()=>{void 0!==t&&t(),this._requestMoreData()};if(e){const e=this._rightOffset,t=this.maxRightOffset();t>0&&i>t&&(i=t);const r=this._model;(0,Xe.doAnimate)({from:e,to:i,duration:1e3,easing:ke.easingFunc.easeInOutQuint,onComplete:s,onStep:(e,t)=>{this._visibleBarsInvalidated=!0,this._updateRightOffset(t),this._onScroll.fire(),r.recalculateAllPanes((0,W.viewportChangeEvent)()),r.lightUpdate(),r.recalcVisibleRangeStudies()}})}else this._visibleBarsInvalidated=!0,this._updateRightOffset(i),this._onScroll.fire(),s()}scrollToFirstBar(){this._model.gotoTime(new Date("1800-01-01").getTime()),this._onScroll.fire()}scrollToOffsetAnimated(e,t){if(!isFinite(e))throw new RangeError("offset is required and must be finite number");const i=void 0===t?400:t;if(!isFinite(i)||i<=0)throw new RangeError("animationDuration (optional) must be finite positive number");const s=this._rightOffset,r=Date.now(),n=()=>{this._visibleBarsInvalidated=!0;const t=(Date.now()-r)/i;if(t>=1)return this._updateRightOffset(e),this._visibleBarsInvalidated=!0,this._model.recalculateAllPanes((0,W.viewportChangeEvent)()),void this._model.lightUpdate();const o=s+(e-s)*t;this._updateRightOffset(o),this._model.recalculateAllPanes((0,W.viewportChangeEvent)()),setTimeout(n,20)};n()}defaultRightOffset(){return this._defaultRightOffset}rightOffsetDefaultValue(){return 10}defaultRightOffsetPercentage(){return this._defaultRightOffsetPercentage}usePercentageRightOffset(){return this._usePercentageRightOffset}barSpacing(){return this._barSpacing}setBarSpacing(e){Number.isFinite(e)?(e=this.getValidBarSpacing(e),this._tryToUpdateBarSpacing(this._barSpacing,e)&&(this.correctOffset(),this._options.preserveBarSpacing&&((0,x.saveDefaultProperties)(!0),this._scalesProperties.childs().barSpacing.setValue(this._barSpacing),(0,x.saveDefaultProperties)(!1)),this._model.recalculateAllPanes((0,W.viewportChangeEvent)()),this._model.lightUpdate())):it.logWarn(`setBarSpacing: invalid argument: ${e}`)}barSpacingChanged(){return this._barSpacingChanged}getValidBarSpacing(e){return null==e&&(e=this.barSpacing()),ethis.maxBarSpacing()?this.maxBarSpacing():e}isValidBarSpacing(e){return e>=this.minBarSpacing()&&e<=this.maxBarSpacing()}preserveBarSpacing(){return this._options.preserveBarSpacing}normalizeBarIndex(e){let t=0,i=0;const s=this.baseIndex(),r=(0,n.ensureNotNull)(this._points.range().value()).firstIndex;return es?(t=(0,n.ensureNotNull)(this._points.valueAt(s)),i=e-s):(t=(0,n.ensureNotNull)(this._points.valueAt(e)),i=0),{time_t:t,offset:i}}denormalizeTimePoint(e){const t=this._points.indexOf(e.time_t,!1);if(null!==t)return t+e.offset}rightOffset(){return this._rightOffset}rightOffsetChanged(){return this._rightOffsetChanged}minRightOffset(){var e ;const t=null===(e=this.points().range().value())||void 0===e?void 0:e.firstIndex,i=this._baseIndex;if(void 0===t||null===i)return null;if(null!==this._leftEdgeIndex){const e=this.width()/this._barSpacing;return this._leftEdgeIndex-i+e-1}return t-i-1+tt}maxRightOffset(){return this.width()/this._barSpacing-tt}maxRightOffsetChanged(){return this._maxRightOffsetChanged}onReset(){return this._resetDelegate}scrollStartPoint(){return this._scrollStartPoint}baseIndex(){return this._baseIndex||0}zoom(e,t,i){if(!Number.isFinite(e)||!Number.isFinite(t))return void it.logWarn(`zoom: invalid arguments: ${e}, ${t}, ${i}`);const s=this.rightOffset(),r=void 0!==i?!i:this._options.rightBarStaysOnScroll,n=r&&this.usePercentageRightOffset().value()&&s>=0,o=n?this.barIndexLengthToPercents(s):void 0,a=this.coordinateToIndex(e),l=this.barSpacing(),c=l+t*(l/10);this.setBarSpacing(c),r||this.setRightOffset(s-.5+(a-this._coordinateToFloatIndex(e))),n&&void 0!==o&&this.setRightOffset(this.percentsToBarIndexLength(o)),this._requestMoreData()}zoomToBarsRange(e,t){if(null!==this._leftEdgeIndex&&(e=Math.max(e,this._leftEdgeIndex)),t<=e)return;const i=this.baseIndex(),s=this._rightOffset;this._rightOffset=t-i;const r=Math.max(t-e+1,tt);this.setBarSpacing(this.width()/r),this._visibleBarsInvalidated=!0,this.correctOffset(),this._rightOffset!==s&&this._rightOffsetChanged.fire(this._rightOffset),this._requestMoreData()}coordinateToIndex(e){return Math.ceil(this._coordinateToFloatIndex(e))}coordinateToVisibleIndex(e){let t;if(0===e){const e=this._coordinateToFloatIndex(-1);t=Math.floor(e)+1}else t=this.coordinateToIndex(e);const i=this.visibleBarsStrictRange();return null===i||i.contains(t)||(t=Math.min(Math.max(i.firstBar(),t),i.lastBar())),t}canZoomIn(){return this.barSpacing()this._options.minBarSpacing}minBarSpacing(){return this._options.minBarSpacing}maxBarSpacing(){const e=this.width();return et?e:e/tt}minVisibleBarCount(){return tt}resetRightOffset(){this.setRightOffset(this.targetDefaultRightOffset())}reset(){this._visibleBarsInvalidated=!0,this._points.clear(),this._scrollStartPoint=null,this._scaleStartPoint=null,this._clearCommonTransitionsStartState(),this._tickMarks.reset(),this._leftEdgeIndex=null,this._resetDelegate.fire(),this.disconnect()}disconnect(){this._requestingMoreData=!1,this._requestedTickmarksCount=0,this._endOfData=!1}setBaseIndex(e){Number.isFinite(e)?(this._visibleBarsInvalidated=!0,this._baseIndex=e,this.correctOffset()):it.logDebug(`setBaseIndex: invalid argument: ${e}`)}resetBaseIndex(){this._visibleBarsInvalidated=!0,this._baseIndex=null}setRightOffset(e){Number.isFinite(e)?(this._visibleBarsInvalidated=!0,this._updateRightOffset(e)):it.logWarn(`setRightOffset: invalid argument: ${e}`)}correctBarSpacing(){this.isEmpty()||this.points().size()e&&(this._rightOffset=e,this._visibleBarsInvalidated=!0);const t=this.minRightOffset();null!==t&&this._rightOffsetthis.formatLabelImpl(e,t))),this._formattedBySpan.set(i,s)),s.format(new Date(e))}formatLabelImpl(e,t){if(!(e&&e instanceof Date))return"incorrect time";const s=function(e,t){if(ee&&(this._rightOffset=e,this._visibleBarsInvalidated=!0);const t=this.minRightOffset();null!==t&&this._rightOffsetthis.formatLabelImpl(e,t))),this._formattedBySpan.set(i,s)),s.format(new Date(e))}formatLabelImpl(e,t){if(!(e&&e instanceof Date))return"incorrect time";const s=function(e,t){if(e{e.onChanged().subscribe(null,(t=>this._onChanged.fire(e.id,t)))}))}groups(){return this._groups.filter((e=>e.isActualSymbol()))}groupsForAllSymbols(){return this._groups}createGroup(e,t,i){t=t||this._generateNextName();const s=new at.LineToolsGroup(e,t,i);this._groups.push(s),s.onChanged().subscribe(null,(e=>this._onChanged.fire(s.id,e)));const r={visibilityChanged:!1,lockedChanged:!1,titleChanged:!1,isActualIntervalChanged:!1,affectedLineTools:e.map((e=>e.id()))};return this._onChanged.fire(s.id,r),s}addGroup(e){this._groups.push(e),e.onChanged().subscribe(null,(t=>this._onChanged.fire(e.id,t))),this._onChanged.fire(e.id)}removeGroup(e){const t=this._groups.findIndex((t=>t.id===e.id));this._groups.splice(t,1),this._onChanged.fire(e.id)}groupForId(e){return this._groups.find((t=>t.id===e))||null}groupForLineTool(e){return this._groups.find((t=>t.containsLineTool(e)))||null}removeLineTools(e){const t=new Set;this._groups.forEach((i=>{const s=e.filter(i.containsLineTool.bind(i));s.length&&(i.excludeLineTools(s),t.add(i.id))}));return this._groups.filter((e=>0===e.lineTools().length)).forEach((e=>this.removeGroup(e))),Array.from(t)}state(e){return{groups:(e?this._groups.filter((e=>e.isActualSymbol())):this._groups).map((e=>e.state()))}}onChanged(){return this._onChanged}fireChangedAll(){this._groups.forEach((e=>{this._onChanged.fire(e.id)}))}static fromState(e,t){const i=[];for(const s of t.groups){const t=at.LineToolsGroup.fromState(e,s);null!==t&&i.push(t)}return new lt(i)}_generateNextName(){const e=new Set(this.groups().map((e=>e.name())));for(let t=1;;t++){const i=`Group ${t}`,s=`Group_${t}`;if(!e.has(i)&&!e.has(s))return i}}}var ct=i(14948),ht=i(32769),dt=i.n(ht),ut=i(69228);let pt=null;function _t(e){return Boolean(e.symbolInfo.timezone)&&Boolean(e.symbolInfo.session)}class mt{constructor(e,t){ var i,s;this._sourceTargetBarBuilder=null,this._cache=new Map,this._source=e,this._sourceSession=ut.SessionInfo.fromState(e.session),this._target=t,this._targetSession=ut.SessionInfo.fromState(t.session),this._isResolutionTheSame=T.Interval.isEqual(e.resolution,t.resolution),this._isSessionTheSame=(i=e.symbolInfo,s=t.symbolInfo,i.timezone===s.timezone&&i.session===s.session&&i.session_holidays===s.session_holidays&&i.corrections===s.corrections),this._shouldCorrectTradingDay=T.Interval.isDWM(e.resolution)&&!this._isSessionTheSame}sourceTimeToTargetTime(e){if(this._isSessionTheSame&&this._isResolutionTheSame)return e;if(!_t(this._source)||!_t(this._target))return e;let t=this._cache.get(e);if(void 0===t){let i=1e3*e;if(this._shouldCorrectTradingDay){let e=dt().utc_to_cal(this._sourceSession.timezone,i);e=this._sourceSession.spec.correctTradingDay(e);const t=new Date(e);dt().set_hms(t,0,0,0,0,this._sourceSession.timezone),i=t.valueOf()}const s=this._sourceTargetBuilder();s.moveTo(i);const r=s.indexOfBar(i);t=s.startOfBar(Math.max(0,r))/1e3,this._cache.set(e,t)}return t}_sourceTargetBuilder(){if(null===this._sourceTargetBarBuilder){const e=this._isSessionTheSame?this._targetSession:(null===pt&&(pt=new ut.SessionInfo("Etc/UTC","24x7")),pt);this._sourceTargetBarBuilder=(0,ut.newBarBuilder)(this._target.resolution,this._targetSession,e)}return this._sourceTargetBarBuilder}}var gt=i(76076),ft=i(38031),vt=i(27642),St=i(4978);function yt(e,t){return e.codet.code?1:0}class bt{constructor(e){this._convertibleItems=e,this._idsToItems=new Map;for(const t of e)this._idsToItems.set(t.id,t)}convertible(e){return void 0!==this._idsToItems.get(e)}item(e){var t;return null!==(t=this._idsToItems.get(e))&&void 0!==t?t:null}size(){return this._convertibleItems.length}filterConvertible(e,t){const i=this._convertibleItems.filter(function(e,t){return i=>!e.has(i.id)&&t(i.id)}(e,t));return i.sort(yt),i}}class wt{constructor(e){this._allGroups=new Set,this._idToName=new Map,this._idToDescription=new Map,this._groupedUnitIds=new Map,this._groupedUnits=new Map,this._groupById=new Map,this._size=0,this._units=e;for(const t in e)if(e.hasOwnProperty(t)){this._allGroups.add(t),this._groupedUnitIds.set(t,new Set(e[t].map((e=>e.id)))),this._groupedUnits.set(t,e[t]);for(const i of e[t])this._size++,this._idToName.set(i.id,i.name),this._idToDescription.set(i.id,i.description),this._groupById.set(i.id,t)}}unitsChanged(e){return this._units!==e}size(){return this._size}name(e){return this._idToName.get(e)||e}description(e){return this._idToDescription.get(e)||e}unitGroupById(e){return this._groupById.get(e)||null}allGroups(){return new Set(this._allGroups)}unitsByGroups(e){const t=[];return e.forEach((e=>{const i=this._groupedUnits.get(e);void 0!==i&&t.push({name:e,units:i})})),t}convertible(e,t){for(const i of t){const t=this._groupedUnitIds.get(i);if(void 0!==t&&t.has(e))return!0}return!1}}var Pt=i(50335);class Ct{constructor(e){this._source=null,this._sourcePane=null,this._currentToolSupportsPhantomMode=!1,this._model=e}destroy(){ this._source=null,this._sourcePane=null}source(){return this._source}onToolChanged(){this._removeSource();const e=this._model.currentTool();this._currentToolSupportsPhantomMode=(0,S.isLineToolName)(e)&&(0,S.supportsPhantomMode)(e)}onCursorPositionUpdated(){if(!this._currentToolSupportsPhantomMode)return;const e=this._model.crossHairSource();if(this._sourcePane!==e.pane&&this._removeSource(),null===e.pane||!(0,Pt.isNumber)(e.index)||!(0,Pt.isNumber)(e.price))return void this._removeSource();const t={index:e.index,price:e.price};null!==this._source?this._source.setPoint(0,t):(this._source=this._model.createLineTool(e.pane,t,this._model.currentTool(),void 0,null),this._sourcePane=e.pane)}_removeSource(){null!==this._source&&(this._model.removeSource(this._source),this._source=null,this._sourcePane=null)}}var Tt=i(45673),xt=i(64810),It=i(71248);class Mt{constructor(){this._lastValue=null}align(e,t,i){this._lastValue=null;let s=e;if(!(0,It.magnetEnabled)().value())return s;const r=i.mainDataSource();if(null===r)return s;const o=r.model().mainSeries();if(r!==o)return s;const a=o.priceScale();if(a.isEmpty())return s;const l=function(e,t){const i=e.bars().valueAt(t);if(null===i)return;let s;s=null!==e.priceSource()?[e.barFunction()(i)]:12===e.style()?[i[2],i[3]]:[i[1],i[2],i[3],i[4]];return s}(o,t);if(!l)return s;const c=(0,n.ensure)(o.firstValue()),h=l.map((e=>({y:a.priceToCoordinate(e,c),price:e}))),d=a.priceToCoordinate(e,c);h.sort(((e,t)=>Math.abs(e.y-d)-Math.abs(t.y-d)));const u=h[0];return((0,It.magnetMode)().value()===xt.MagnetMode.StrongMagnet||Math.abs(u.y-d)<50)&&(s=u.price,this._lastValue=s),s}lastValue(){return this._lastValue}resetLastValue(){this._lastValue=null}}var At=i(8950),Lt=i(80230),kt=i(9740);class Et{constructor(){this._data=null}setData(e){this._data=e}draw(e,t){if(null===this._data)return;const i=t.pixelRatio,s=Math.max(1,Math.floor(i));e.lineWidth=s;const r=Math.ceil(this._data.h*i),n=Math.ceil(this._data.w*i);if(e.save(),e.lineCap="butt",this._data.vertLinesVisible){e.strokeStyle=this._data.vertLinesColor,(0,kt.setLineStyle)(e,this._data.vertLineStyle);for(const t of this._data.timeMarks){const s=Math.round(t.coord*i);(0,kt.drawVerticalLine)(e,s,0,r)}}if(this._data.horzLinesVisible){e.strokeStyle=this._data.horzLinesColor,(0,kt.setLineStyle)(e,this._data.horzLineStyle);for(const t of this._data.priceMarks){const s=Math.round(t.coord*i);(0,kt.drawHorizontalLine)(e,s,0,n)}}e.restore()}hitTest(e){return null}}var Dt=i(53479);class Bt{constructor(e){this._renderer=new Et,this._pane=e}update(){}renderer(){const e=this._pane.defaultPriceScale(),t=this._pane.model().timeScale();if(e.isEmpty()||t.isEmpty())return null;const i=this._pane.model().properties().childs().paneProperties.childs(),s=t.marks(),r={horzLinesVisible:!0,vertLinesVisible:!0,horzLinesColor:i.horzGridProperties.childs().color.value(),vertLinesColor:i.vertGridProperties.childs().color.value(),horzLineStyle:Dt.LINESTYLE_SOLID,vertLineStyle:Dt.LINESTYLE_SOLID,priceMarks:e.marks(),timeMarks:null!==s?s:[],w:this._pane.width(), h:this._pane.height()};return this._renderer.setData(r),this._renderer}}class Vt extends Lt.DataSource{id(){return"grid"}paneViews(e){return[new Bt(e)]}}var Rt=i(67876);class Nt extends Rt.PriceAxisView{constructor(e,t,i){super(),this._source=e,this._priceScale=t,this._priceProvider=i,this._properties=e.model().properties().childs().scalesProperties}setHitTestData(e){this._hitTestData=e}additionalPadding(e){return 0}_updateRendererData(e,t,i){e.visible=!1,t.visible=!1;const s=this._priceScale,r=s.mainSource(),n=null!==r?r.firstValue():null;if(!this._isVisible()||s.isEmpty()||null===n)return;const o=this._priceProvider(s);if(null===o)return;i.background=(0,ft.resetTransparency)(this._bgColor()),i.textColor=this.generateTextColor(i.background);const a=this.additionalPadding(s.fontSize());i.additionalPaddingTop=a,i.additionalPaddingBottom=a,i.coordinate=s.priceToCoordinate(o,n),e.text=s.formatPrice(o,n),e.visible=!0,t.visible=!0,t.hitTestData=this._hitTestData}}class Ot extends Nt{additionalPadding(e){return 2/12*e}_isVisible(){return this._properties.childs().showPriceScaleCrosshairLabel.value()&&this._source.visible&&null!==this._source.pane}_bgColor(){const e=this._properties.childs();return this._source.model().isDark()?e.crosshairLabelBgColorDark.value():e.crosshairLabelBgColorLight.value()}_updateRendererData(e,t,i){const s=t.visible;super._updateRendererData(e,t,i),this._source.isHovered()?t.backgroung=this._source.model().isDark()?l.colorsPalette["color-cold-gray-600"]:l.colorsPalette["color-cold-gray-650"]:t.backgroung=void 0,s||(t.visible=s)}}class Ft extends Nt{_isVisible(){return null!==this._source.measurePane().value()}_bgColor(){return this._properties.childs().axisLineToolLabelBackgroundColorCommon.value()}}var Wt=i(64636),Ht=(i(43986),i(60223));function zt(e){const t=e.priceScale();return null===t?0:t.isPercentage()||t.isIndexedTo100()?2:1}const Ut=N.enabled("show_context_menu_in_crosshair_if_only_one_item");class jt extends Wt.PanePriceAxisView{constructor(e,t,i,s,r){super(e,t,s),this._crossHairMenuCachedState=null,this._hasActions=!1,this._tooltipText=null,this._gaOrigin="CH menu",this._crosshairPriceAxisView=e,e.setPaneRendererLabelIcon(0),this._crosshair=t,this._scale=i,this._options=r}_updateImpl(e,t){super._updateImpl(e,t);const i=this._crosshair.y,s=this._chartModel.properties().childs().scalesProperties.childs().fontSize.value(),r=this._chartModel.timeScale().width(),n=this._crosshair.model().priceAxisRendererOptions(),o=s+2*this._crosshairPriceAxisView.additionalPadding(s)+n.paddingTop+n.paddingBottom,a=o,l=i-o/2,c=r-a,h=this._crosshair.pane,d=this._mainDataSourceOnPane(),u=d&&d.symbolSource(),p=!!u&&(u.isConvertedToOtherCurrency()||u.isConvertedToOtherUnit());if(null!==d){const e=zt(d),t=d.idForAlert(),i=this._chartModel.isInReplay(),s=this._crossHairMenuCachedState;null!==s&&s.id===t&&s.priceScale===e&&s.isCurrencyOrUnitConverted===p&&s.isInReplay===i||(this._updateTooltipAndActionsAvaliability(d,e,p),this._crossHairMenuCachedState={id:t,priceScale:e,isCurrencyOrUnitConverted:p,isInReplay:i}) }const _=null!==d&&(0,pe.isActingAsSymbolSource)(d)?d.symbol():null,m=null!==h&&(h.maximized().value()||!h.collapsed().value())&&(Boolean(_)||!1);this._crosshairPriceAxisView.setPaneLabelVisible(m);const g=null!==h&&0!==h.leftPriceScales().length&&m,f=null!==h&&0!==h.rightPriceScales().length&&m,v=r-a/2,S=this._tooltipText?{text:this._tooltipText,rect:{x:v,y:l,w:0,h:0}}:void 0;this._data={left:g,right:f,xl:0,xr:c,y:l,containerWidth:a,containerHeight:o,clickHandler:this._handleClick.bind(this),tooltip:S},this._crosshairPriceAxisView.setHitTestData(this._data)}_priceScale(){return this._scale}_updateTooltipAndActionsAvaliability(e,t,i){this._tooltipText=null,this._hasActions=!1;if(!(1===t))return;this._chartModel.isInReplay();let s=0;let r=0;1!==s||Ut||(this._tooltipText=""),this._crosshairPriceAxisView.setPaneRendererLabelIcon(r),this._hasActions=0!==s}_handleClick(e,t,i){(0,u.trackEvent)(this._gaOrigin,"click");const s=this._mainDataSourceOnPane(),r=null!==s&&(0,pe.isActingAsSymbolSource)(s)?s.symbol():null,n={pageX:i.pageX,pageY:i.pageY,clientX:i.clientX,clientY:i.clientY,screenX:i.screenX,screenY:i.screenY,price:this._crosshair.price,symbol:r};_.emit("onPlusClick",n)}_getMenuItems(e){return Promise.resolve([])}_createAlertMenuItems(e){return Promise.resolve([])}_createTradingMenuItems(){return Promise.resolve([])}_createAddHorizontalLineMenuItem(){return[]}_getActionAddAlert(e){return null}_getActionAddHorizontalLine(e){return null}_getValue(e,t){const i=e.priceScale(),s=e.firstValue();if(null===i||null===s)return null;return i.isPercentage()||i.isIndexedTo100()?null:i.coordinateToPrice(t,s)}_formatValue(e,t){return t.formatter().format(e)}_addAlert(e,t){}_addHorizontalLineTool(e,t){}_showContextMenu(e,t,i,s){const r="left"===s;setTimeout((()=>{const t=(0,n.ensureDefined)(this._data),s=r?t.xl:t.xr,o=i.localX-s,a=i.clientX-o,l=i.clientX-o+t.containerWidth;Ht.ContextMenuManager.showMenu(e,{clientX:r?a:l,clientY:i.clientY-t.containerHeight/2,boxHeight:t.containerHeight,attachToXBy:r?"left":"right",attachToYBy:"auto-strict"},void 0,{menuName:"CrosshairMenuView"})}))}_mainDataSourceOnPane(){const e=this._crosshair.pane;return null!==e?e.mainDataSource():null}}var Gt=i(78996),qt=i(14888);class $t{constructor(e){this._data=e}hitTest(e){return void 0===this._data.clickHandler?null:new qt.HitTestResult(qt.HitTestResult.CUSTOM,{clickHandler:this._data.clickHandler,tapHandler:this._data.clickHandler})}draw(e,t){const i=t.pixelRatio,s=this._data.vertLinesVisible,r=this._data.horzLinesVisible;if(!s&&!r)return;e.save(),e.lineWidth=Math.max(1,Math.floor(this._data.lineWidth*i)),e.strokeStyle=this._data.color,e.fillStyle=this._data.color,e.lineCap="butt",(0,kt.setLineStyle)(e,this._data.lineStyle);const n=Math.round(this._data.x*i),o=Math.round(this._data.y*i),a=Math.ceil(this._data.w*i),l=Math.ceil(this._data.h*i);s&&n>=0&&(0,kt.drawVerticalLine)(e,n,0,l),r&&o>=0&&(0,kt.drawHorizontalLine)(e,o,0,a),this._data.drawCenter&&(e.beginPath(),e.arc(n,o,Math.round(3*i),0,2*Math.PI,!0),e.fillStyle=this._data.color,e.fill()), -this._data.scissors&&function(e,t,i,s){const{pixelRatio:r,physicalHeight:n}=t,o=24*r,a=e.lineWidth%2?.5:0,l=i-Math.round(o/2)+a/r;let c=Math.round(s-o/2);if(c<0)c=0;else{const e=n-o;c>e&&(c=e)}e.translate(l,c),e.scale(r,r),e.fillStyle="#131722",e.fill(Yt),e.strokeStyle="#fff",e.lineWidth=1,e.stroke(Yt)}(e,t,n,o),e.restore()}}const Yt=new Path2D("m15.68 3.72-3.82 5.52-3.83-5.52-.28-.42-.42.3a2.84 2.84 0 0 0-.68 3.92l3.27 4.73-1.16 1.68a3.34 3.34 0 0 0-4.26 3.22 3.34 3.34 0 0 0 3.32 3.35 3.34 3.34 0 0 0 3.08-4.6l1-1.44 1.13 1.62a3.34 3.34 0 0 0 3.15 4.42c1.84 0 3.32-1.5 3.32-3.35a3.34 3.34 0 0 0-4.42-3.17l-1.23-1.78 3.22-4.65a2.86 2.86 0 0 0-.69-3.96l-.41-.29-.29.42ZM7.82 16.27c.47 0 .86.39.86.88 0 .48-.39.87-.86.87a.87.87 0 0 1-.86-.87c0-.5.4-.88.86-.88Zm8.36 0c.47 0 .86.39.86.88 0 .48-.4.87-.86.87a.87.87 0 0 1-.86-.87c0-.5.39-.88.86-.88Z");const Kt=l.colorsPalette["color-tv-blue-500"];class Xt{constructor(e,t){this._rendererData={},this._renderer=new $t(this._rendererData),this._source=e,this._pane=t}update(){}renderer(e,t){const i=this._source.selectPointMode().value()!==gt.SelectPointMode.None,s=this._source.visible&&(this._source.areLinesVisible||i)&&!this._source.linesShouldBeHidden(),r=this._rendererData;if(!s||null===this._pane)return null;const o=this._source.paneForPointSelect(),a=this._source.isReplaySelection(),l=this._pane===this._source.pane,c=a||(null!==o?this._source.pane===o&&this._pane===o:l);if(r.scissors=!1,i&&this._source.isOnHoveredChartWidget()&&c){const e=(0,n.ensureNotNull)(this._source.pointToSelect());r.color=this._source.lineColor()||Kt,a?(r.lineWidth=2,r.scissors=l):r.lineWidth=1,r.lineStyle=Dt.LINESTYLE_SOLID,r.horzLinesVisible=!0,r.vertLinesVisible=!0,r.drawCenter=!1,"time"===e?r.horzLinesVisible=!1:"price"===e&&(r.vertLinesVisible=!1)}else{const e=this._source.properties(),t=this._source.model().currentTool(),i=(0,Gt.lastMouseOrTouchEventInfo)(),s=i.isTouch&&!i.stylus&&((0,S.isLineToolName)(t)||(0,gt.toolIsMeasure)(t));let n;n=s?Kt:e.childs().color.value();const o=e.childs().transparency.value();!s&&o>0&&(n=(0,ft.generateColor)(n,o)),r.color=n,r.horzLinesVisible=this._pane===this._source.pane&&(this._pane.maximized().value()||!this._pane.collapsed().value()),r.vertLinesVisible=!0,r.lineWidth=e.childs().width.value(),r.lineStyle=e.childs().style.value(),r.drawCenter=s&&this._pane===this._source.pane}return r.w=this._pane.width(),r.h=this._pane.height(),r.x=void 0!==this._source.lockedX&&isFinite(this._source.lockedX)?this._source.lockedX:this._source.x,r.y=this._source.y,this._renderer}}var Zt=i(26740);const Jt={backgroundColor:(0,ft.generateColor)(l.colorsPalette["color-tv-blue-500"],70),borderColor:(0,ft.generateColor)(l.colorsPalette["color-tv-blue-500"],20)};class Qt{constructor(e){this._renderer=new Zt.RectangleRenderer,this._rectangle=null,this._crosshair=e}update(){const e=this._crosshair.selection();null!==e&&null!==this._crosshair.pane?this._rectangle=this._crosshair.pane.logicalRectToPixels(e):this._rectangle=null}renderer(e,t){if(!this._rectangle)return null;const i={ -backcolor:Jt.backgroundColor,color:Jt.borderColor,fillBackground:!0,linewidth:1,points:[this._rectangle.min,this._rectangle.max],extendLeft:!1,extendRight:!1};return this._renderer.setData(i),this._renderer}}var ei=i(80142),ti=i(18766),ii=i(68336),si=i(45063),ri=i(48566),ni=i(9933),oi=i(44381),ai=i(29639),li=i(85113);const ci=c.t(null,void 0,i(33355)),hi=c.t(null,{context:"study"},i(32819)),di=new ti.PercentageFormatter,ui=new si.TimeSpanFormatter,pi=new ri.VolumeFormatter,_i=(0,l.getHexColorByName)("color-tv-blue-500"),mi=(0,l.getHexColorByName)("color-ripe-red-400"),gi={bgColorPositive:(0,ft.generateColor)(_i,80),bgColorNegative:(0,ft.generateColor)(mi,80),colorPositive:(0,l.getHexColorByName)("color-tv-blue-600"),colorNegative:(0,l.getHexColorByName)("color-ripe-red-400"),labelBgColorPositive:_i,labelBgColorNegative:mi};class fi{constructor(e,t){this._pipFormatter=null,this._lastSymbolInfo=null,this._horzTrenRenderer=new ni.TrendLineRenderer,this._vertTrenRenderer=new ni.TrendLineRenderer,this._bgRenderer=new Zt.RectangleRenderer,this._labelRenderer=new oi.TextRenderer,this._p1=null,this._p2=null,this._label=null,this._source=e,this._pane=t}update(e){const[t,i]=this._source.measurePoints();if(void 0===i)return this._p1=null,void(this._p2=null);const s=(0,n.ensureNotNull)(this._source.measurePane().value()),r=t.price,a=i.price,l=i.price-r,c=i.index-t.index,h=(0,ei.forceLTRStr)(""+c),d=(0,n.ensureNotNull)(s.mainDataSource());let u=(0,n.ensureNotNull)(d.formatter()).format(l);if(Math.abs(r)>1e-8){const e=l/Math.abs(r);u+=" ("+di.format(100*e)+")"}const p=(0,ei.forceLTRStr)(u);this._label=p+"\n"+ci.format({count:h});const _=(0,n.ensureNotNull)(d.firstValue()),m=this._source.model().timeScale().indexToCoordinate(t.index),g=this._source.model().timeScale().indexToCoordinate(i.index),f=s.defaultPriceScale().priceToCoordinate(r,_),v=s.defaultPriceScale().priceToCoordinate(a,_);this._p1=new o.Point(m,f),this._p2=new o.Point(g,v);const S=this._source.model().timeScale().indexToUserTime(t.index),y=this._source.model().timeScale().indexToUserTime(i.index);let b=null;if(null!==S&&null!==y){const e=this._pane.model().mainSeries().symbolInfo();null!==e&&e!==this._lastSymbolInfo&&(this._pipFormatter=new ii.PipFormatter(e.pricescale,e.minmov,e.type,e.minmove2),this._lastSymbolInfo=e),b=(y.valueOf()-S.valueOf())/1e3}const w=this._pipFormatter?this._pipFormatter.format(l):null,P=null!==w?" , "+w:"",C=null!==b?ui.format(b):null,T=null!==C?", "+(0,ei.startWithLTR)(C):"";this._label=(0,ei.forceLTRStr)(p+P)+"\n"+ci.format({count:h})+T;const x=this._source.measureVolume();Number.isNaN(x)||(this._label+=`\n${hi} ${pi.format(x)}`);const I=ae&&(c=e)}e.translate(l,c),e.scale(r,r),e.fillStyle="#131722",e.fill(Yt),e.strokeStyle="#fff",e.lineWidth=1,e.stroke(Yt)}(e,t,n,o),e.restore()}}const Yt=new Path2D("m15.68 3.72-3.82 5.52-3.83-5.52-.28-.42-.42.3a2.84 2.84 0 0 0-.68 3.92l3.27 4.73-1.16 1.68a3.34 3.34 0 0 0-4.26 3.22 3.34 3.34 0 0 0 3.32 3.35 3.34 3.34 0 0 0 3.08-4.6l1-1.44 1.13 1.62a3.34 3.34 0 0 0 3.15 4.42c1.84 0 3.32-1.5 3.32-3.35a3.34 3.34 0 0 0-4.42-3.17l-1.23-1.78 3.22-4.65a2.86 2.86 0 0 0-.69-3.96l-.41-.29-.29.42ZM7.82 16.27c.47 0 .86.39.86.88 0 .48-.39.87-.86.87a.87.87 0 0 1-.86-.87c0-.5.4-.88.86-.88Zm8.36 0c.47 0 .86.39.86.88 0 .48-.4.87-.86.87a.87.87 0 0 1-.86-.87c0-.5.39-.88.86-.88Z");const Kt=l.colorsPalette["color-tv-blue-500"];class Zt{constructor(e,t){this._rendererData={},this._renderer=new $t(this._rendererData),this._source=e,this._pane=t}update(){}renderer(e,t){const i=this._source.selectPointMode().value()!==gt.SelectPointMode.None,s=this._source.visible&&(this._source.areLinesVisible||i)&&!this._source.linesShouldBeHidden(),r=this._rendererData;if(!s||null===this._pane)return null;const o=this._source.paneForPointSelect(),a=this._source.isReplaySelection(),l=this._pane===this._source.pane,c=a||(null!==o?this._source.pane===o&&this._pane===o:l);if(r.scissors=!1,i&&this._source.isOnHoveredChartWidget()&&c){const e=(0,n.ensureNotNull)(this._source.pointToSelect());r.color=this._source.lineColor()||Kt,a?(r.lineWidth=2,r.scissors=l):r.lineWidth=1,r.lineStyle=Dt.LINESTYLE_SOLID,r.horzLinesVisible=!0,r.vertLinesVisible=!0,r.drawCenter=!1,"time"===e?r.horzLinesVisible=!1:"price"===e&&(r.vertLinesVisible=!1)}else{const e=this._source.properties(),t=this._source.model().currentTool(),i=(0,Gt.lastMouseOrTouchEventInfo)(),s=i.isTouch&&!i.stylus&&((0,S.isLineToolName)(t)||(0,gt.toolIsMeasure)(t));let n;n=s?Kt:e.childs().color.value();const o=e.childs().transparency.value();!s&&o>0&&(n=(0,ft.generateColor)(n,o)),r.color=n,r.horzLinesVisible=this._pane===this._source.pane&&(this._pane.maximized().value()||!this._pane.collapsed().value()),r.vertLinesVisible=!0,r.lineWidth=e.childs().width.value(),r.lineStyle=e.childs().style.value(),r.drawCenter=s&&this._pane===this._source.pane}return r.w=this._pane.width(),r.h=this._pane.height(),r.x=void 0!==this._source.lockedX&&isFinite(this._source.lockedX)?this._source.lockedX:this._source.x,r.y=this._source.y,this._renderer}}var Xt=i(26740);const Jt={backgroundColor:(0,ft.generateColor)(l.colorsPalette["color-tv-blue-500"],70),borderColor:(0,ft.generateColor)(l.colorsPalette["color-tv-blue-500"],20)};class Qt{constructor(e){this._renderer=new Xt.RectangleRenderer,this._rectangle=null,this._crosshair=e}update(){const e=this._crosshair.selection();null!==e&&null!==this._crosshair.pane?this._rectangle=this._crosshair.pane.logicalRectToPixels(e):this._rectangle=null}renderer(e,t){if(!this._rectangle)return null;const i={ +backcolor:Jt.backgroundColor,color:Jt.borderColor,fillBackground:!0,linewidth:1,points:[this._rectangle.min,this._rectangle.max],extendLeft:!1,extendRight:!1};return this._renderer.setData(i),this._renderer}}var ei=i(80142),ti=i(18766),ii=i(68336),si=i(45063),ri=i(48566),ni=i(9933),oi=i(44381),ai=i(29639),li=i(85113);const ci=c.t(null,void 0,i(33355)),hi=c.t(null,{context:"study"},i(32819)),di=new ti.PercentageFormatter,ui=new si.TimeSpanFormatter,pi=new ri.VolumeFormatter,_i=(0,l.getHexColorByName)("color-tv-blue-500"),mi=(0,l.getHexColorByName)("color-ripe-red-400"),gi={bgColorPositive:(0,ft.generateColor)(_i,80),bgColorNegative:(0,ft.generateColor)(mi,80),colorPositive:(0,l.getHexColorByName)("color-tv-blue-600"),colorNegative:(0,l.getHexColorByName)("color-ripe-red-400"),labelBgColorPositive:_i,labelBgColorNegative:mi};class fi{constructor(e,t){this._pipFormatter=null,this._lastSymbolInfo=null,this._horzTrenRenderer=new ni.TrendLineRenderer,this._vertTrenRenderer=new ni.TrendLineRenderer,this._bgRenderer=new Xt.RectangleRenderer,this._labelRenderer=new oi.TextRenderer,this._p1=null,this._p2=null,this._label=null,this._source=e,this._pane=t}update(e){const[t,i]=this._source.measurePoints();if(void 0===i)return this._p1=null,void(this._p2=null);const s=(0,n.ensureNotNull)(this._source.measurePane().value()),r=t.price,a=i.price,l=i.price-r,c=i.index-t.index,h=(0,ei.forceLTRStr)(""+c),d=(0,n.ensureNotNull)(s.mainDataSource());let u=(0,n.ensureNotNull)(d.formatter()).format(l);if(Math.abs(r)>1e-8){const e=l/Math.abs(r);u+=" ("+di.format(100*e)+")"}const p=(0,ei.forceLTRStr)(u);this._label=p+"\n"+ci.format({count:h});const _=(0,n.ensureNotNull)(d.firstValue()),m=this._source.model().timeScale().indexToCoordinate(t.index),g=this._source.model().timeScale().indexToCoordinate(i.index),f=s.defaultPriceScale().priceToCoordinate(r,_),v=s.defaultPriceScale().priceToCoordinate(a,_);this._p1=new o.Point(m,f),this._p2=new o.Point(g,v);const S=this._source.model().timeScale().indexToUserTime(t.index),y=this._source.model().timeScale().indexToUserTime(i.index);let b=null;if(null!==S&&null!==y){const e=this._pane.model().mainSeries().symbolInfo();null!==e&&e!==this._lastSymbolInfo&&(this._pipFormatter=new ii.PipFormatter(e.pricescale,e.minmov,e.type,e.minmove2),this._lastSymbolInfo=e),b=(y.valueOf()-S.valueOf())/1e3}const w=this._pipFormatter?this._pipFormatter.format(l):null,P=null!==w?" , "+w:"",C=null!==b?ui.format(b):null,T=null!==C?", "+(0,ei.startWithLTR)(C):"";this._label=(0,ei.forceLTRStr)(p+P)+"\n"+ci.format({count:h})+T;const x=this._source.measureVolume();Number.isNaN(x)||(this._label+=`\n${hi} ${pi.format(x)}`);const I=a=50?li.LineEnd.Arrow:li.LineEnd.Normal};this._horzTrenRenderer.setData(s)}{const e=Math.round(E.x),t=new o.Point(e,this._p1.y),i=new o.Point(e,this._p2.y),s={points:[t,i],color:M,linewidth:1,linestyle:Dt.LINESTYLE_SOLID,extendleft:!1,extendright:!1,leftend:li.LineEnd.Normal,rightend:Math.abs(t.y-i.y)>=50?li.LineEnd.Arrow:li.LineEnd.Normal};this._vertTrenRenderer.setData(s)}const D={x:0,y:10},B=.5*(this._p1.x+this._p2.x),V=this._p2.y,R=new o.Point(B,V),N=(O=(0,n.ensureNotNull)(this._label),{points:[R],text:O,color:"#FFFFFF",horzAlign:"center",vertAlign:"middle",font:L.CHART_FONT_FAMILY,offsetX:D.x,offsetY:D.y,bold:!1,italic:!1,fontsize:12,padding:8,highlightBorder:!1,backgroundColor:A,backgroundTransparency:10,backgroundVertInflate:5,backgroundHorzInflate:5,backgroundRoundRect:4});var O;this._labelRenderer.setData(N);const F=this._labelRenderer.measure(),W=(0,oi.calculateLabelPosition)(F,this._p1,this._p2,D,this._pane.height());this._labelRenderer.setPoints([W])}renderer(){if(null===this._p1||null===this._p2)return null;const e=new ai.CompositeRenderer;return e.append(this._bgRenderer),e.append(this._horzTrenRenderer),e.append(this._vertTrenRenderer),e.append(this._labelRenderer),e}}var vi=i(86216);class Si extends vi.MediaCoordinatesPaneRenderer{constructor(e){super(),this._data=e}hitTest(e){return null}_drawImpl(e){const t=e.context;t.translate(this._data.x-this._data.width/2,this._data.y-this._data.height/2),t.strokeStyle="rgba(153,153,153,.3)",t.lineWidth=2,t.beginPath(),this._drawShackle(t),t.stroke(),t.closePath(),t.strokeStyle="rgba(153,153,153,.7)",t.lineWidth=1,t.beginPath(),t.rect(0,this._data.height-this._data.bodyHeight+.5,this._data.width,this._data.bodyHeight),t.closePath(),t.stroke(),t.translate(0,-1),t.strokeStyle="#777",t.beginPath(),this._drawShackle(t),t.stroke(),t.closePath(),t.fillStyle="rgba(255,255,255,.7)",t.beginPath(),t.rect(1,this._data.height-this._data.bodyHeight+1.5,this._data.width-2,this._data.bodyHeight-2),t.fill(),t.beginPath(),t.rect(.5,this._data.height-this._data.bodyHeight+1,this._data.width-1,this._data.bodyHeight-1),t.stroke(),t.closePath(),t.fillStyle="#777",t.fillRect(this._data.width/2-.5,this._data.height-this._data.bodyHeight/2,1,2)}_drawShackle(e){const t=(this._data.width-3)/2,i=this._data.height-this._data.bodyHeight;e.moveTo(1.5,t),e.arc(this._data.width/2,t,t,Math.PI,2*Math.PI),i>t&&(e.moveTo(1.5,t),e.lineTo(1.5,i),e.moveTo(this._data.width-1.5,t),e.lineTo(this._data.width-1.5,i))}}class yi{constructor(e,t,i){this._horzVisible=!1,this._source=e,this._pane=t,this._axis=i||"x"}update(){}renderer(e,t){const i=this._source.visible&&this._source.areLinesVisible,s=(0,gt.lockTimeAxis)().value(),r=i&&this._horzVisible,o=i||s;if("y"===this._axis&&!r||!o)return null;const a="y"===this._axis?this._pane.width()-4.5:(0,n.ensureDefined)(this._source.lockedX)+1,l="y"===this._axis?this._source.y:this._pane.height()-5.5-1;return new Si({x:a, y:l,width:9,height:11,bodyHeight:7})}}var bi=i(49483),wi=i(87172),Pi=i(95790),Ci=i(2);class Ti extends Pi.DataWindowView{constructor(e){super(),this._invalidated=!0,this._dateItem=new Pi.DataWindowItem("",c.t(null,void 0,i(76912)),""),this._timeItem=new Pi.DataWindowItem("",c.t(null,void 0,i(31976)),""),this._model=e,this._items.push(this._dateItem),this._items.push(this._timeItem)}update(){this._invalidated=!0}items(){return this._invalidated&&(this._updateImpl(),this._invalidated=!1),this._items}_updateImpl(){const e=this._model.mainSeries().isDWM();if(this._timeItem.setVisible(!e),this._timeItem.setValue(Ci.notAvailable),this._dateItem.setValue(Ci.notAvailable),this._model.timeScale().isEmpty())return;let t=this._model.crossHairSource().appliedIndex();if(!(0,Pt.isNumber)(t)){const e=this._model.mainSeries().data().last();if(null===e)return;t=e.index}const i=this._model.timeScale().indexToUserTime(t);null!==i&&(this._dateItem.setValue(this._model.dateFormatter().format(i)),e||this._timeItem.setValue(this._model.timeFormatter().format(i)))}}var xi=i(2893);const Ii=l.colorsPalette["color-tv-blue-500"],Mi=c.t(null,{context:"Replay"},i(20747));class Ai extends xi.TimeAxisView{constructor(e,t,i,s=!1){super(e),this._indexProvider=i,this._highlighted=s,this._source=t,this._properties=e.properties().childs().scalesProperties}_getText(e){if(this._source.isReplaySelection()){const t=this._model.timeScale().indexToUserTime(e);return null!==t?`${Mi}: ${this._model.dateTimeFormatter().format(t)}`:""}return super._getText(e)}_getBgColor(){if(this._source.isReplaySelection())return Ii;const e=this._properties.childs();return this._highlighted?e.axisLineToolLabelBackgroundColorCommon.value():this._model.isDark()?e.crosshairLabelBgColorDark.value():e.crosshairLabelBgColorLight.value()}_getIndex(){return this._model.crossHairSource().visible?this._indexProvider():null}_isVisible(){return this._properties.childs().showTimeScaleCrosshairLabel.value()}}var Li=i(67245);const ki={menuEnabled:!1,menuForMainSourceOnly:!1,disableTradingMenuActions:!1,disableDrawHorizLineMenuAction:!1};class Ei extends Lt.DataSource{constructor(e,t,i){super(),this.pane=null,this.price=NaN,this.index=NaN,this.visible=!0,this.areLinesVisible=!0,this.x=NaN,this.y=NaN,this._measurePane=new(Y())(null),this._measurePaneViewCache=new WeakMap,this._startMeasurePoint=null,this._endMeasurePoint=null,this._lastValidMeasurePoint=null,this._isOnHoveredChartWidget=!1,this._crossHairSelectPointMode=new(Y())(gt.SelectPointMode.None),this._selectionPane=null,this._selectionView=new Qt(this),this._selectionStartPoint=null,this._timeLockPaneView=null,this._crosshairPaneViewCache=new WeakMap,this._pointSelectionPaneViewCache=new WeakMap,this._priceAxisViews=new Map,this._panePriceAxisViews=new Map,this._startMeasurePriceAxisViews=new Map,this._endMeasurePriceAxisViews=new Map,this._originX=NaN,this._originY=NaN,this._subscribed=!1,this._movedDelegate=new(q()),this._pointSelectedDelegate=new(q()),this._requestedPoint=null,this._paneForRequestedPoint=null, this._selectLineColor=null,this._volumeCalculator=null,this._model=e,this._options=Object.assign({},ki,i||{}),this._linesShouldBeHidden=this._model.readOnly(),this._dataWindowView=new Ti(e),this.setSelectionEnabled(!1);const s=e=>t=>t===(0,n.ensureNotNull)(this._measurePane.value()).defaultPriceScale()?e():null;this._currentPosPriceProvider=e=>{const t=(0,n.ensureNotNull)(this.pane);if(e===t.defaultPriceScale())return this.price;const i=(0,n.ensureNotNull)(t.defaultPriceScale().mainSource()).firstValue();if(null===i)return null;const s=t.defaultPriceScale().priceToCoordinate(this.price,i),r=(0,n.ensureNotNull)(e.mainSource()).firstValue();return null===r?null:e.coordinateToPrice(s,r)},this._startMeasurePriceProvider=s((()=>(0,n.ensureNotNull)(this._startMeasurePoint).price)),this._endMeasurePriceProvider=s((()=>(0,n.ensureNotNull)(this._lastMeasurePoint()).price)),this._properties=t;this._timeAxisView=new Ai(e,this,(()=>this.appliedIndex()),!1),this._startMeasureTimeAxisView=new Ai(e,this,(()=>(0,n.ensureNotNull)(this._startMeasurePoint).index),!0),this._endMeasureTimeAxisView=new Ai(e,this,(()=>(0,n.ensureNotNull)(this._lastMeasurePoint()).index),!0),e.readOnly()||gt.cursorTool.subscribe((e=>this.areLinesVisible="arrow"!==e),{callWithLast:!0})}destroy(){null!==this._volumeCalculator&&this._volumeCalculator.destroy(),this._measurePane.setValue(null)}moved(){return this._movedDelegate}originX(){return this._originX}originY(){return this._originY}saveOriginCoords(e,t){this._originX=e,this._originY=t}clearOriginCoords(){this._originX=NaN,this._originY=NaN}currentPoint(){return new o.Point(this.x,this.y)}model(){return this._model}appliedIndex(){return Number.isFinite(this.lockedIndex)?this.lockedIndex:this.index}startMeasurePoint(){return this._startMeasurePoint||null}endMeasurePoint(){return this._endMeasurePoint||null}measureVolume(){if(null===this._volumeCalculator)return NaN;const[e,t]=this.measurePoints();return void 0===t?NaN:this._volumeCalculator.volume(e.index,t.index)}measurePane(){return this._measurePane.readonly()}startMeasuring(e,t){this._startMeasurePoint=e,this._measurePane.setValue(t),t.containsMainSeries()&&((0,n.assert)(null===this._volumeCalculator),this._volumeCalculator=new Li.SeriesTimeRangeVolumeCalculator(this.model().mainSeries())),this._model.updatePane(t)}finishMeasure(e){this._endMeasurePoint=e}clearMeasure(){this._measurePane.setValue(null),delete this._startMeasurePoint,delete this._endMeasurePoint,delete this._lastValidMeasurePoint,this._model.lightUpdate(),null!==this._volumeCalculator&&(this._volumeCalculator.destroy(),this._volumeCalculator=null)}measurePoints(){const e=[(0,n.ensureNotNull)(this._startMeasurePoint)],t=this._lastMeasurePoint();return null!==t&&e.push(t),e}startSelection(e){this._selectionStartPoint=this.currentLogicalPoint(),this._selectionPane=e}clearSelection(){this._selectionStartPoint=null,this._selectionPane=null}selection(){return this._selectionStartPoint?{p1:this._selectionStartPoint,p2:this.currentLogicalPoint()}:null}currentLogicalPoint(){return{ index:this.appliedIndex(),price:this.price}}selectPointMode(){return this._crossHairSelectPointMode}lineColor(){return this._selectLineColor}cancelRequestSelectPoint(){this._crossHairSelectPointMode.value()!==gt.SelectPointMode.None&&this._setSelectPointModeState(gt.SelectPointMode.None)}requestSelectPoint(e){(0,n.assert)(this._crossHairSelectPointMode.value()===gt.SelectPointMode.None,"Point already requested");const{pointType:t,pane:i,lineColor:s=null,selectPointMode:r=gt.SelectPointMode.Study}=e;i&&((0,n.assert)(-1!==this._model.panes().indexOf(i),"Chartmodel doesn't contains specified pane"),this._paneForRequestedPoint=i,this._model.panesCollectionChanged().subscribe(this,this._paneCollectionChanged)),this._selectLineColor=s,this._requestedPoint=t,this._setSelectPointModeState(r)}onPointSelected(){return this._pointSelectedDelegate}trySelectCurrentPoint(){const e=(0,n.ensureNotNull)(this._requestedPoint);if(!this._model.mainSeries().bars().contains(this.index)&&"price"!==e)return;const t=(0,n.ensureNotNull)(this.pane);if(this._paneForRequestedPoint&&this._paneForRequestedPoint!==t)return;let i,s;if("price"===e||(i=this._model.timeScale().indexToTimePoint(this.index),null!==i)){if("time"!==e){const e=t.mainDataSource();if(null===e)return;const i=e.firstValue(),r=e.priceScale();if(null===i||null===r)return;s=r.coordinateToPrice(this.y,i)}this._setSelectPointModeState(gt.SelectPointMode.None),this._pointSelectedDelegate.fire({time:i,price:s},t)}}isOnHoveredChartWidget(){return this._isOnHoveredChartWidget}setOnHoveredChartWidget(e){this._isOnHoveredChartWidget=e}isReplaySelection(){return!1}clearPosition(){this.visible=!1,this.index=NaN,this.price=NaN,this.x=NaN,this.y=NaN,this.pane=null,this.clearOriginCoords(),this._updateVisibilityDependentPaneViews()}setPosition(e,t,i){return this._subscribed||(this._model.mainSeries().onRestarted().subscribe(this,this.clearMeasure),this._subscribed=!0),this.setLockedPosition(i),this.visible=!0,this._tryToUpdateViews(e,t,i)}setLinesShouldBeHidden(e){this._linesShouldBeHidden=e}linesShouldBeHidden(){return this._linesShouldBeHidden}handleContextMenuEvent(e){this._crossHairSelectPointMode.value()!==gt.SelectPointMode.None&&this._setSelectPointModeState(gt.SelectPointMode.None)}properties(){return this._properties}priceAxisViews(e,t){const i=null===this._requestedPoint||"time"!==this._requestedPoint||!this._isOnHoveredChartWidget,s=[];return this.pane===e&&i&&s.push(this._createPriceAxisViewOnDemand(this._priceAxisViews,this._panePriceAxisViews,e,t,this._currentPosPriceProvider,Ot,!0)[0]),this._startMeasurePoint&&s.push(this._createPriceAxisViewOnDemand(this._startMeasurePriceAxisViews,null,e,t,this._startMeasurePriceProvider,Ft)[0]),this._lastMeasurePoint()&&s.push(this._createPriceAxisViewOnDemand(this._endMeasurePriceAxisViews,null,e,t,this._endMeasurePriceProvider,Ft)[0]),s}timeAxisViews(){const e=[],t=null===this._requestedPoint||"price"!==this._requestedPoint||!this._isOnHoveredChartWidget;return!this._linesShouldBeHidden&&(this.visible||(0, -gt.lockTimeAxis)().value())&&t&&e.push(this._timeAxisView),this._startMeasurePoint&&e.push(this._startMeasureTimeAxisView),this._lastMeasurePoint()&&e.push(this._endMeasureTimeAxisView),e}paneViews(e){if(void 0===e)return null;const t=[];if(this.isReplaySelection()){let i=this._pointSelectionPaneViewCache.get(e);i||(i=new CrosshairPointSelectionPaneView(this,e,this._model),this._pointSelectionPaneViewCache.set(e,i)),t.push(i)}let i=this._crosshairPaneViewCache.get(e);if(i||(i=new Xt(this,e),this._crosshairPaneViewCache.set(e,i)),t.push(i),e===this._selectionPane&&t.push(this._selectionView),e===this._measurePane.value()){let i=this._measurePaneViewCache.get(e);i||(i=new fi(this,e),this._measurePaneViewCache.set(e,i)),i.update((0,W.sourceChangeEvent)(this.id())),t.push(i)}if(wi.addPlusButtonProperty.value()){const i=e===this.pane,s=!bi.CheckMobile.any()||window.screen.width>=320,r=gt.tool.value(),n=(0,S.isLineToolName)(r),o=null!==this._model.lineBeingEdited()||null!==this._model.lineBeingCreated()||this._model.sourcesBeingMoved().length>0||null!==this._model.customSourceBeingMoved()||(0,gt.toolIsMeasure)(r);if(i&&this._isOnHoveredChartWidget&&this._crossHairSelectPointMode.value()===gt.SelectPointMode.None&&s&&!n&&!o){const i=e.mainDataSource();if(null!==i){const s=i.priceScale();if(null!==s){const i=this._createPriceAxisViewOnDemand(this._priceAxisViews,this._panePriceAxisViews,e,s,this._currentPosPriceProvider,Ot,!0)[1];null!==i&&t.push(i)}}}}return(0,gt.lockTimeAxis)().value()&&(null===this._timeLockPaneView&&(this._timeLockPaneView=new yi(this,e)),t.push(this._timeLockPaneView)),t}dataWindowView(){return this._dataWindowView}updateAllViews(e){this._priceAxisViews.forEach((t=>{t.forEach((t=>t.update(e)))})),this._panePriceAxisViews.forEach((t=>{t.forEach((t=>t.update(e)))})),this._startMeasurePoint&&(this._startMeasurePriceAxisViews.forEach((t=>{t.forEach((t=>t.update(e)))})),this._startMeasureTimeAxisView.update(e)),this._lastMeasurePoint()&&(this._endMeasurePriceAxisViews.forEach((t=>{t.forEach((t=>t.update(e)))})),this._endMeasureTimeAxisView.update(e)),this._timeAxisView.update(e),this._selectionView.update(),this._dataWindowView.update(),this._updateVisibilityDependentPaneViews()}setLockedPosition(e){delete this.lockedIndex,delete this.lockedX,e!==this._measurePane.value()&&(0,gt.lockTimeAxis)().value()&&(this.lockedIndex=this._model.timeScale().points().roughIndex(gt.lockTimeAxisTime.value()),null!==this.lockedIndex&&(this.lockedX=this._model.timeScale().indexToCoordinate(this.lockedIndex)))}isMenuEnabled(){return this._options.menuEnabled}isHoveredEnabled(){return wi.addPlusButtonProperty.value()}isHovered(){return this._model.hoveredSource()===this}pointToSelect(){return this._requestedPoint}paneForPointSelect(){return this._paneForRequestedPoint}_lastMeasurePoint(){return this._endMeasurePoint?this._endMeasurePoint:(null!==this.pane&&this._measurePane.value()===this.pane&&(this._lastValidMeasurePoint={price:this._model.magnet().align(this.price,this.index,this.pane),index:this.index}), -this._lastValidMeasurePoint||null)}_createPriceAxisViewOnDemand(e,t,i,s,r,o,a=!1){let l=e.get(i),c=null!==t?t.get(i):void 0;void 0===l&&(l=new Map,e.set(i,l),this._options.menuEnabled&&null!==t&&(c=new Map,t.set(i,c)),a&&i.onDestroyed().subscribe(this,(()=>this._onPaneDestroyed(i))));let h=l.get(s);if(void 0===h){if(h=new o(this,s,r),l.set(s,h),void 0!==c){const e=new jt(h,this,s,this._model,this._options);c.set(s,e)}a&&s.lastSourceRemoved().subscribe(this,(()=>this._onPriceScaleCleared(s)))}let d=null;return void 0!==c&&(d=(0,n.ensureDefined)(c.get(s))),[h,d]}_onPaneDestroyed(e){e.onDestroyed().unsubscribeAll(this),this._priceAxisViews.delete(e),this._panePriceAxisViews.delete(e),this._startMeasurePriceAxisViews.delete(e),this._endMeasurePriceAxisViews.delete(e)}_onPriceScaleCleared(e){e.lastSourceRemoved().unsubscribeAll(this),this._priceAxisViews.forEach((t=>t.delete(e))),this._panePriceAxisViews.forEach((t=>t.delete(e))),this._startMeasurePriceAxisViews.forEach((t=>t.delete(e))),this._endMeasurePriceAxisViews.forEach((t=>t.delete(e)))}_tryToUpdateViews(e,t,i){return!!this._tryToUpdateData(e,t,i)&&(this.updateAllViews((0,W.sourceChangeEvent)(this.id())),this._movedDelegate.fire({index:this.index,price:this.price}),!0)}_tryToUpdateData(e,t,i){const s=this.x,r=this.y,o=this.price,a=this.index,l=this.pane,c=this._priceScaleByPane(i);if(this.index=e,this.x=isNaN(e)?NaN:this._model.timeScale().indexToCoordinate(e),null!==c&&null!==i){this.pane=i,this.price=t;const e=(0,n.ensureNotNull)(i.mainDataSource()).firstValue();this.y=null===e?NaN:c.priceToCoordinate(t,e)}else this.pane=null,this.price=NaN,this.y=NaN;return s!==this.x||r!==this.y||a!==this.index||o!==this.price||l!==this.pane}_priceScaleByPane(e){return e&&!e.defaultPriceScale().isEmpty()?e.defaultPriceScale():null}_setSelectPointModeState(e){e===gt.SelectPointMode.None&&(this._requestedPoint=null,this._selectLineColor=null,this._paneForRequestedPoint&&(this._paneForRequestedPoint=null,this._model.panesCollectionChanged().unsubscribe(this,this._paneCollectionChanged))),gt.activePointSelectionMode.setValue(e),this._crossHairSelectPointMode.setValue(e),this._model.lightUpdate()}_paneCollectionChanged(e){const t=this._paneForRequestedPoint;null!==t&&-1===e.indexOf(t)&&this.cancelRequestSelectPoint()}_updateVisibilityDependentPaneViews(){var e;for(const t of this.model().panes())null===(e=this._pointSelectionPaneViewCache.get(t))||void 0===e||e.update()}}var Di=i(46936),Bi=i(17908),Vi=i(81345),Ri=i(7006),Ni=i(72006),Oi=i(50337),Fi=i(71479),Wi=i(56840);class Hi{constructor(e){this._priceSourceNamesById=new Map,e.forEach((e=>this._priceSourceNamesById.set(e.id,e.name)))}name(e){var t;return null!==(t=this._priceSourceNamesById.get(e))&&void 0!==t?t:null}priceSourcesChanged(e){return e.length!==this._priceSourceNamesById.size}}const zi=new ee.TranslatedString("remove deselected empty line tools",c.t(null,void 0,i(59211))),Ui=N.enabled("auto_enable_symbol_labels"),ji=(0,Z.getLogger)("Chart.ChartModel");function Gi(e,t){const i=e.indexOf(t);return-1!==i&&(e.splice(i,1), +gt.lockTimeAxis)().value())&&t&&e.push(this._timeAxisView),this._startMeasurePoint&&e.push(this._startMeasureTimeAxisView),this._lastMeasurePoint()&&e.push(this._endMeasureTimeAxisView),e}paneViews(e){if(void 0===e)return null;const t=[];if(this.isReplaySelection()){let i=this._pointSelectionPaneViewCache.get(e);i||(i=new CrosshairPointSelectionPaneView(this,e,this._model),this._pointSelectionPaneViewCache.set(e,i)),t.push(i)}let i=this._crosshairPaneViewCache.get(e);if(i||(i=new Zt(this,e),this._crosshairPaneViewCache.set(e,i)),t.push(i),e===this._selectionPane&&t.push(this._selectionView),e===this._measurePane.value()){let i=this._measurePaneViewCache.get(e);i||(i=new fi(this,e),this._measurePaneViewCache.set(e,i)),i.update((0,W.sourceChangeEvent)(this.id())),t.push(i)}if(wi.addPlusButtonProperty.value()){const i=e===this.pane,s=!bi.CheckMobile.any()||window.screen.width>=320,r=gt.tool.value(),n=(0,S.isLineToolName)(r),o=null!==this._model.lineBeingEdited()||null!==this._model.lineBeingCreated()||this._model.sourcesBeingMoved().length>0||null!==this._model.customSourceBeingMoved()||(0,gt.toolIsMeasure)(r);if(i&&this._isOnHoveredChartWidget&&this._crossHairSelectPointMode.value()===gt.SelectPointMode.None&&s&&!n&&!o){const i=e.mainDataSource();if(null!==i){const s=i.priceScale();if(null!==s){const i=this._createPriceAxisViewOnDemand(this._priceAxisViews,this._panePriceAxisViews,e,s,this._currentPosPriceProvider,Ot,!0)[1];null!==i&&t.push(i)}}}}return(0,gt.lockTimeAxis)().value()&&(null===this._timeLockPaneView&&(this._timeLockPaneView=new yi(this,e)),t.push(this._timeLockPaneView)),t}dataWindowView(){return this._dataWindowView}updateAllViews(e){this._priceAxisViews.forEach((t=>{t.forEach((t=>t.update(e)))})),this._panePriceAxisViews.forEach((t=>{t.forEach((t=>t.update(e)))})),this._startMeasurePoint&&(this._startMeasurePriceAxisViews.forEach((t=>{t.forEach((t=>t.update(e)))})),this._startMeasureTimeAxisView.update(e)),this._lastMeasurePoint()&&(this._endMeasurePriceAxisViews.forEach((t=>{t.forEach((t=>t.update(e)))})),this._endMeasureTimeAxisView.update(e)),this._timeAxisView.update(e),this._selectionView.update(),this._dataWindowView.update(),this._updateVisibilityDependentPaneViews()}setLockedPosition(e){delete this.lockedIndex,delete this.lockedX,e!==this._measurePane.value()&&(0,gt.lockTimeAxis)().value()&&(this.lockedIndex=this._model.timeScale().points().roughIndex(gt.lockTimeAxisTime.value()),null!==this.lockedIndex&&(this.lockedX=this._model.timeScale().indexToCoordinate(this.lockedIndex)))}isMenuEnabled(){return this._options.menuEnabled}isHoveredEnabled(){return wi.addPlusButtonProperty.value()}isHovered(){return this._model.hoveredSource()===this}pointToSelect(){return this._requestedPoint}paneForPointSelect(){return this._paneForRequestedPoint}_lastMeasurePoint(){return this._endMeasurePoint?this._endMeasurePoint:(null!==this.pane&&this._measurePane.value()===this.pane&&(this._lastValidMeasurePoint={price:this._model.magnet().align(this.price,this.index,this.pane),index:this.index}), +this._lastValidMeasurePoint||null)}_createPriceAxisViewOnDemand(e,t,i,s,r,o,a=!1){let l=e.get(i),c=null!==t?t.get(i):void 0;void 0===l&&(l=new Map,e.set(i,l),this._options.menuEnabled&&null!==t&&(c=new Map,t.set(i,c)),a&&i.onDestroyed().subscribe(this,(()=>this._onPaneDestroyed(i))));let h=l.get(s);if(void 0===h){if(h=new o(this,s,r),l.set(s,h),void 0!==c){const e=new jt(h,this,s,this._model,this._options);c.set(s,e)}a&&s.lastSourceRemoved().subscribe(this,(()=>this._onPriceScaleCleared(s)))}let d=null;return void 0!==c&&(d=(0,n.ensureDefined)(c.get(s))),[h,d]}_onPaneDestroyed(e){e.onDestroyed().unsubscribeAll(this),this._priceAxisViews.delete(e),this._panePriceAxisViews.delete(e),this._startMeasurePriceAxisViews.delete(e),this._endMeasurePriceAxisViews.delete(e)}_onPriceScaleCleared(e){e.lastSourceRemoved().unsubscribeAll(this),this._priceAxisViews.forEach((t=>t.delete(e))),this._panePriceAxisViews.forEach((t=>t.delete(e))),this._startMeasurePriceAxisViews.forEach((t=>t.delete(e))),this._endMeasurePriceAxisViews.forEach((t=>t.delete(e)))}_tryToUpdateViews(e,t,i){return!!this._tryToUpdateData(e,t,i)&&(this.updateAllViews((0,W.sourceChangeEvent)(this.id())),this._movedDelegate.fire({index:this.index,price:this.price}),!0)}_tryToUpdateData(e,t,i){const s=this.x,r=this.y,o=this.price,a=this.index,l=this.pane,c=this._priceScaleByPane(i);if(this.index=e,this.x=isNaN(e)?NaN:this._model.timeScale().indexToCoordinate(e),null!==c&&null!==i){this.pane=i,this.price=t;const e=(0,n.ensureNotNull)(i.mainDataSource()).firstValue();this.y=null===e?NaN:c.priceToCoordinate(t,e)}else this.pane=null,this.price=NaN,this.y=NaN;return s!==this.x||r!==this.y||a!==this.index||o!==this.price||l!==this.pane}_priceScaleByPane(e){return e&&!e.defaultPriceScale().isEmpty()?e.defaultPriceScale():null}_setSelectPointModeState(e){e===gt.SelectPointMode.None&&(this._requestedPoint=null,this._selectLineColor=null,this._paneForRequestedPoint&&(this._paneForRequestedPoint=null,this._model.panesCollectionChanged().unsubscribe(this,this._paneCollectionChanged))),gt.activePointSelectionMode.setValue(e),this._crossHairSelectPointMode.setValue(e),this._model.lightUpdate()}_paneCollectionChanged(e){const t=this._paneForRequestedPoint;null!==t&&-1===e.indexOf(t)&&this.cancelRequestSelectPoint()}_updateVisibilityDependentPaneViews(){var e;for(const t of this.model().panes())null===(e=this._pointSelectionPaneViewCache.get(t))||void 0===e||e.update()}}var Di=i(46936),Bi=i(17908),Vi=i(81345),Ri=i(7006),Ni=i(72006),Oi=i(50337),Fi=i(71479),Wi=i(56840);class Hi{constructor(e){this._priceSourceNamesById=new Map,e.forEach((e=>this._priceSourceNamesById.set(e.id,e.name)))}name(e){var t;return null!==(t=this._priceSourceNamesById.get(e))&&void 0!==t?t:null}priceSourcesChanged(e){return e.length!==this._priceSourceNamesById.size}}const zi=new ee.TranslatedString("remove deselected empty line tools",c.t(null,void 0,i(59211))),Ui=N.enabled("auto_enable_symbol_labels"),ji=(0,X.getLogger)("Chart.ChartModel");function Gi(e,t){const i=e.indexOf(t);return-1!==i&&(e.splice(i,1), !0)}function qi(e){var t,i;for(let s=e.length;s--;){const r=e[s].dataSources();for(let e=r.length;e--;)null===(t=r[e].dataWindowView())||void 0===t||t.update();const n=e[s].priceDataSources();for(let e=n.length;e--;)null===(i=n[e].legendView())||void 0===i||i.update()}}const $i={isSnapshot:!1,readOnly:!1,watermarkEnabled:!0,shiftVisibleRangeOnNewBar:!0,currencyConversionEnabled:!1,unitConversionEnabled:!1,countdownEnabled:!0,lastPriceAnimationEnabled:!0,onWidget:!1,hideIdeas:!1};class Yi{constructor(e,t,i,r,n,o,a,l,c,d){this._onRearrangePanes=new(q()),this._lineToolsGroupModel=new lt,this._sourcesBeingMoved=[],this._activeItemBeingMoved=null,this._lineBeingEdited=null,this._linePointBeingEdited=null,this._linePointBeingChanged=null,this._customSourceBeingMovedHitTestData=null,this._customSourceBeingMoved=null,this._dataSourceCollectionChanged=new(q()),this._sourceProperitesChanged=new(q()),this._sourceZOrderChanged=new(q()),this._symbolSourceResolved=new(q()),this._symbolSourceResolvingActive=new(Y())(!1),this._adjustForDividendsAvailability=new(Y())(0),this._adjustForDividendsEnabled=new(Y())(!1),this._sessions=null,this._currentTool="",this._lineBeingCreated=null,this._paneBeingCreatedLineOn=null,this._lineCancelled=new(q()),this._phantomSourceContainer=new Ct(this),this._destroyed=!1,this._isSettingsExternalPosition=!1,this._isTimeScrolling=!1,this._magnet=new Mt,this._scrollingState=null,this._modelIntervals=[],this._rendererOptionsProvider=new k(this),this._studyInserted=new(q()),this._cachedStudiesMaxOffset=0,this._replayStatus=new(Y())(ct.ReplayStatus.Undefined),this._panes=[],this._tagsChanged=new(q()),this._strategySources=[],this._strategySourcesChange=new(q()),this._activeStrategySource=new(Y())(null),this._paneCollapsingAvailable=new(Y())(!1),this._panesCollectionChanged=new(q()),this._scrollEnabled=N.enabled("chart_scroll"),this._zoomEnabled=N.enabled("chart_zoom"),this._isScalesResetAvailableChanged=new(q()),this._isScalesResetAvailable=!1,this._lollipopSourcesWatcher=null,this._alertsWatcher=null,this._hoveredSource=null,this._hoveredSourceChanged=new(q()),this._lastHoveredHittestData=null,this._lastSelectedHittestData=null,this._topmostCustomSources=[],this._fgCustomSources=[],this._bgCustomSources=[],this._allCustomSources=[],this._customSourcesMap=new Map,this._multiPaneSources=[],this._showLegendProperty=new(M()),this._id=(0,J.guid)(),this._chartSaveTime=null,this._availableCurrenciesList=null,this._availableCurrencies=new bt([]),this._availablePriceSources=new Hi([]),this._availableUnitsObject=null,this._availableUnits=new wt({}),this._availablePriceSourcesList=null,this._shouldBeSavedEvenIfHidden=!1,this._watchedThemeSpawn=h.watchedTheme.spawn(),this._gradientColorsCache=null,this._recalcVRStudiesParams={},this._recalcColorStudiesParams={},this._recalcVisibleRangeStudiesImplDebounced=(0,s.default)(this._recalcVisibleRangeStudiesImpl.bind(this,this._recalcVRStudiesParams),500),this._recalcColorStudiesImplDebounced=(0, s.default)(this._recalcColorStudiesImpl.bind(this,this._recalcColorStudiesParams),250),this._width=0,this._resetScales=new(q()),this._chartThemeLoaded=new(q()),this._selection=new b,this._selectedSourceChanged=new(q()),this._symbolSourceCollectionChanged=new(q()),this._gridSource=new Vt,this._syncPointCache=new Map,this._lastAppliedGotoTimeRange=null,this._lastGotoTimeRange=null,this._clearSelection=()=>{this._lastSelectedHittestData=null,this._selection.clear()},this._removeSourceFromSelection=e=>{this._selection.remove(e)},this._addSourceToSelection=(e,t)=>{const i=this._selection.isSelected(e);i&&this._lastSelectedHittestData===t||e&&!e.isSelectionEnabled()||(this._lastSelectedHittestData=t||null,i||this._selection.add(e))},this._recalcSymbolResolvingActive=()=>{for(const e of this._panes)if(e.symbolSourceResolvingActive().value())return void this._symbolSourceResolvingActive.setValue(!0);this._symbolSourceResolvingActive.setValue(!1)},this._recalcAdjustForDividendsAvailibility=()=>{var e,t,i,s;if(this._symbolSourceResolvingActive.value())return void this._adjustForDividendsAvailability.setValue(0);const r=this.mainSeries();switch(null!==(t=null===(e=r.symbolInfo())||void 0===e?void 0:e.allowed_adjustment)&&void 0!==t?t:"none"){case"dividends":return void this._adjustForDividendsAvailability.setValue(2);case"splits":return void this._adjustForDividendsAvailability.setValue(1);case"any":return void this._adjustForDividendsAvailability.setValue(3)}for(const e of this.symbolSources().filter(pe.isActingAsSymbolSource)){if(e.symbolHibernated().value()||e===r)continue;if("any"===(null!==(s=null===(i=e.symbolInfo())||void 0===i?void 0:i.allowed_adjustment)&&void 0!==s?s:"none"))return void this._adjustForDividendsAvailability.setValue(3)}this._adjustForDividendsAvailability.setValue(0)},this._recalcAdjustForDividendsEnabled=()=>{switch(this._adjustForDividendsAvailability.value()){case 2:return void this._adjustForDividendsEnabled.setValue(!0);case 0:case 1:return void this._adjustForDividendsEnabled.setValue(!1)}this._adjustForDividendsEnabled.setValue(this.mainSeries().properties().childs().dividendsAdjustment.value())},this._recalcPaneCollapsingAvailable=e=>{let t=this._panes.filter((e=>!e.collapsed().value())).length;0===t&&e&&this._panes.length>0&&(this._panes[0].collapsed().setValue(!1),t=1),this._paneCollapsingAvailable.setValue(t>1)},this._chartApi=e,this._invalidateHandler=t,this._undoModel=o,this._properties=i,this._options=(0,ie.merge)((0,ie.clone)($i),l),this._collapsedWV=c,this._isAutoSaveEnabled=d,this._studiesMetaInfoRepository=n,this._readOnly=this._options.readOnly,this._isSnapshot=this._options.isSnapshot,this._chartSaveTime=(new Date).valueOf(),this._backgroundColor=new(Y())(this._getBackgroundColor()),this._backgroundTopColor=new(Y())(this._getBackgroundColor(!0)),this._properties.childs().paneProperties.childs().background.subscribe(this,this._updateBackgroundColor),this._properties.childs().paneProperties.childs().backgroundType.subscribe(this,this._updateBackgroundColor), -this._properties.childs().paneProperties.childs().backgroundGradientStartColor.subscribe(this,this._updateBackgroundColor),this._properties.childs().paneProperties.childs().backgroundGradientEndColor.subscribe(this,this._updateBackgroundColor),this._backgroundColor.subscribe(this.recalcColorStudies.bind(this,!1)),this._backgroundTopColor.subscribe(this.recalcColorStudies.bind(this,!1)),this._watchedThemeSpawn.subscribe(this._updateBackgroundColor.bind(this)),this._symbolSourceResolvingActive.subscribe(this._recalcAdjustForDividendsAvailibility),this.setStudiesMetaData(this._studiesMetaInfoRepository.getInternalMetaInfoArray(),this._studiesMetaInfoRepository.getMigrations()),(0,gt.init)();const u=this._readOnly?new(M())((0,V.defaults)("chartproperties.paneProperties.crossHairProperties")):this._properties.childs().paneProperties.childs().crossHairProperties;this.m_crossHairSource=new Ei(this,u,this._options.crossHair),this._crossHairSelectPointMode=this.m_crossHairSource.selectPointMode().spawn(),this._crossHairSelectPointMode.subscribe((e=>{if(e!==gt.SelectPointMode.None&&this.lineBeingCreated()){const e=gt.tool.value();this.cancelCreatingLine(),gt.tool.setValue(e)}})),this._tagsChanged=new(q());const p=new x.DefaultProperty("chartproperties.mainSeriesProperties");p.addExclusion("minTick"),p.addExclusion("priceAxisProperties.lockScale"),p.addExclusion("priceAxisProperties.percentage"),p.addExclusion("priceAxisProperties.indexedTo100"),p.addExclusion("priceAxisProperties.isInverted"),p.addExclusion("priceAxisProperties.log"),p.addExclusion("priceAxisProperties.logDisabled"),p.addExclusion("priceAxisProperties.percentageDisabled"),p.addExclusion("priceAxisProperties.autoScaleDisabled"),p.merge(i.childs().mainSeriesProperties.state()),this._timeScale=new st(this,this._options.timeScale);const _={countdownEnabled:this._options.countdownEnabled,lastPriceAnimationEnabled:this._options.lastPriceAnimationEnabled};this.m_mainSeries=new Di.Series(this,p,_,r),this.m_mainSeries.onStyleChanged().subscribe(this._timeScale,this._timeScale.invalidateVisibleBars);const m=()=>this.fullUpdate();this.m_mainSeries.properties().childs().showCountdown.subscribe(this,(()=>{this.m_mainSeries.updateAllViews((0,W.sourceChangeEvent)(this.m_mainSeries.id())),m()})),(0,X.currencyUnitVisibilityProperty)().subscribe(this,m),this._timeScale.visibleBarsStrictRangeChanged().subscribe(this.m_mainSeries,this.m_mainSeries.clearHighLowPriceCache),this._timeScale.visibleBarsStrictRangeChanged().subscribe(this.m_mainSeries,this.m_mainSeries.clearAveragePriceCache),this.createPane(void 0,{axisProperties:p.childs().priceAxisProperties.state(["autoScale"])}),this._adjustForDividendsAvailability.subscribe(this._recalcAdjustForDividendsEnabled),this.mainSeries().properties().childs().dividendsAdjustment.subscribe(this,this._recalcAdjustForDividendsEnabled),this._recalcAdjustForDividendsEnabled(),this._boundUpdateStudiesMaxOffset=this._updateStudiesMaxOffset.bind(this),this.mainSeries().dataEvents().seriesTimeFrame().subscribe(this,((e,t,i,s)=>{ -if(null!==this._lastAppliedGotoTimeRange&&null!==i&&s&&(0,Tt.areEqualTimeFrames)(this._lastAppliedGotoTimeRange.range,i)){const e=this.appliedTimeFrame().value();null!==e&&!this._lastAppliedGotoTimeRange.actual&&(0,Tt.areEqualTimeFrames)(this._lastAppliedGotoTimeRange.range,e.val)&&this.appliedTimeFrame().setValue(null),this._lastAppliedGotoTimeRange=null}})),this.mainSeries().dataEvents().completed().subscribe(this,(e=>{null===this._lastAppliedGotoTimeRange&&null!==this._lastGotoTimeRange&&(this.gotoTimeRange(this._lastGotoTimeRange.from,this._lastGotoTimeRange.to),this._lastGotoTimeRange=null)}));const g=this._panes[0];g.setStretchFactor(2*g.stretchFactor()),this._properties.listeners().subscribe(this,this.lightUpdate),this._properties.childs().timezone.subscribe(null,(()=>{this._chartApi&&this._chartApi.isConnected().value()&&this._chartApi.switchTimezone(this.timezone())})),g.addDataSource(this.m_mainSeries,g.findSuitableScale(this.m_mainSeries),!1),this._barsMarksSources=a(this);for(const e of this._barsMarksSources)e.setOwnerSource(this.m_mainSeries),g.addDataSource(e,this.m_mainSeries.priceScale(),!0)}setStudiesMetaData(e,t){this._studiesMetaData=e,this._studyVersioning=new w.StudyVersioning(this._studiesMetaData,t)}restart(){this._chartApi.switchTimezone(this.timezone()),this._timeScale.reset(),this.m_mainSeries.restart();for(const e of this.dataSources())e.restart&&e!==this.m_mainSeries&&e.restart();this.sessions().restart()}version(){return 3}collapsed(){return this._collapsedWV}chartSaveTime(){return this._chartSaveTime}setChartSaveTime(e){this._chartSaveTime=e}destroy(){this._phantomSourceContainer.destroy(),this._hoveredSourceChanged.destroy(),null!==this._watermarkSource&&(this._watermarkSource.destroy(),this._watermarkSource=null),Array.from(this._customSourcesMap.keys()).forEach(this._removeCustomSource,this),(0,n.assert)(0===this._topmostCustomSources.length),(0,n.assert)(0===this._fgCustomSources.length),(0,n.assert)(0===this._bgCustomSources.length),(0,n.assert)(0===this._allCustomSources.length),(0,n.assert)(0===this._customSourcesMap.size),null!==this._lollipopSourcesWatcher&&(this._lollipopSourcesWatcher.destroy(),this._lollipopSourcesWatcher=null),null!==this._alertsWatcher&&this._alertsWatcher.destroy(),this._properties.childs().paneProperties.childs().background.unsubscribeAll(this),this._properties.childs().paneProperties.childs().backgroundType.unsubscribeAll(this),this._properties.childs().paneProperties.childs().backgroundGradientEndColor.unsubscribeAll(this),this._properties.childs().paneProperties.childs().backgroundGradientStartColor.unsubscribeAll(this),this._watchedThemeSpawn.destroy(),this._lastHoveredHittestData=null,this._lastSelectedHittestData=null,(0,X.currencyUnitVisibilityProperty)().unsubscribeAll(this),this._crossHairSelectPointMode.destroy(),this._destroyed=!0}undoModel(){return this._undoModel}onData(e){switch(e.method){case"timescale_update":{const t=e.params;this._updateTimeScale({index:t.index,zoffset:t.zoffset,values:t.changes,indexDiffs:t.index_diff, +this._properties.childs().paneProperties.childs().backgroundGradientStartColor.subscribe(this,this._updateBackgroundColor),this._properties.childs().paneProperties.childs().backgroundGradientEndColor.subscribe(this,this._updateBackgroundColor),this._backgroundColor.subscribe(this.recalcColorStudies.bind(this,!1)),this._backgroundTopColor.subscribe(this.recalcColorStudies.bind(this,!1)),this._watchedThemeSpawn.subscribe(this._updateBackgroundColor.bind(this)),this._symbolSourceResolvingActive.subscribe(this._recalcAdjustForDividendsAvailibility),this.setStudiesMetaData(this._studiesMetaInfoRepository.getInternalMetaInfoArray(),this._studiesMetaInfoRepository.getMigrations()),(0,gt.init)();const u=this._readOnly?new(M())((0,V.defaults)("chartproperties.paneProperties.crossHairProperties")):this._properties.childs().paneProperties.childs().crossHairProperties;this.m_crossHairSource=new Ei(this,u,this._options.crossHair),this._crossHairSelectPointMode=this.m_crossHairSource.selectPointMode().spawn(),this._crossHairSelectPointMode.subscribe((e=>{if(e!==gt.SelectPointMode.None&&this.lineBeingCreated()){const e=gt.tool.value();this.cancelCreatingLine(),gt.tool.setValue(e)}})),this._tagsChanged=new(q());const p=new x.DefaultProperty("chartproperties.mainSeriesProperties");p.addExclusion("minTick"),p.addExclusion("priceAxisProperties.lockScale"),p.addExclusion("priceAxisProperties.percentage"),p.addExclusion("priceAxisProperties.indexedTo100"),p.addExclusion("priceAxisProperties.isInverted"),p.addExclusion("priceAxisProperties.log"),p.addExclusion("priceAxisProperties.logDisabled"),p.addExclusion("priceAxisProperties.percentageDisabled"),p.addExclusion("priceAxisProperties.autoScaleDisabled"),p.merge(i.childs().mainSeriesProperties.state()),this._timeScale=new st(this,this._options.timeScale);const _={countdownEnabled:this._options.countdownEnabled,lastPriceAnimationEnabled:this._options.lastPriceAnimationEnabled};this.m_mainSeries=new Di.Series(this,p,_,r),this.m_mainSeries.onStyleChanged().subscribe(this._timeScale,this._timeScale.invalidateVisibleBars);const m=()=>this.fullUpdate();this.m_mainSeries.properties().childs().showCountdown.subscribe(this,(()=>{this.m_mainSeries.updateAllViews((0,W.sourceChangeEvent)(this.m_mainSeries.id())),m()})),(0,Z.currencyUnitVisibilityProperty)().subscribe(this,m),this._timeScale.visibleBarsStrictRangeChanged().subscribe(this.m_mainSeries,this.m_mainSeries.clearHighLowPriceCache),this._timeScale.visibleBarsStrictRangeChanged().subscribe(this.m_mainSeries,this.m_mainSeries.clearAveragePriceCache),this.createPane(void 0,{axisProperties:p.childs().priceAxisProperties.state(["autoScale"])}),this._adjustForDividendsAvailability.subscribe(this._recalcAdjustForDividendsEnabled),this.mainSeries().properties().childs().dividendsAdjustment.subscribe(this,this._recalcAdjustForDividendsEnabled),this._recalcAdjustForDividendsEnabled(),this._boundUpdateStudiesMaxOffset=this._updateStudiesMaxOffset.bind(this),this.mainSeries().dataEvents().seriesTimeFrame().subscribe(this,((e,t,i,s)=>{ +if(null!==this._lastAppliedGotoTimeRange&&null!==i&&s&&(0,Tt.areEqualTimeFrames)(this._lastAppliedGotoTimeRange.range,i)){const e=this.appliedTimeFrame().value();null!==e&&!this._lastAppliedGotoTimeRange.actual&&(0,Tt.areEqualTimeFrames)(this._lastAppliedGotoTimeRange.range,e.val)&&this.appliedTimeFrame().setValue(null),this._lastAppliedGotoTimeRange=null}})),this.mainSeries().dataEvents().completed().subscribe(this,(e=>{null===this._lastAppliedGotoTimeRange&&null!==this._lastGotoTimeRange&&(this.gotoTimeRange(this._lastGotoTimeRange.from,this._lastGotoTimeRange.to),this._lastGotoTimeRange=null)}));const g=this._panes[0];g.setStretchFactor(2*g.stretchFactor()),this._properties.listeners().subscribe(this,this.lightUpdate),this._properties.childs().timezone.subscribe(null,(()=>{this._chartApi&&this._chartApi.isConnected().value()&&this._chartApi.switchTimezone(this.timezone())})),g.addDataSource(this.m_mainSeries,g.findSuitableScale(this.m_mainSeries),!1),this._barsMarksSources=a(this);for(const e of this._barsMarksSources)e.setOwnerSource(this.m_mainSeries),g.addDataSource(e,this.m_mainSeries.priceScale(),!0)}setStudiesMetaData(e,t){this._studiesMetaData=e,this._studyVersioning=new w.StudyVersioning(this._studiesMetaData,t)}restart(){this._chartApi.switchTimezone(this.timezone()),this._timeScale.reset(),this.m_mainSeries.restart();for(const e of this.dataSources())e.restart&&e!==this.m_mainSeries&&e.restart();this.sessions().restart()}version(){return 3}collapsed(){return this._collapsedWV}chartSaveTime(){return this._chartSaveTime}setChartSaveTime(e){this._chartSaveTime=e}destroy(){this._phantomSourceContainer.destroy(),this._hoveredSourceChanged.destroy(),null!==this._watermarkSource&&(this._watermarkSource.destroy(),this._watermarkSource=null),Array.from(this._customSourcesMap.keys()).forEach(this._removeCustomSource,this),(0,n.assert)(0===this._topmostCustomSources.length),(0,n.assert)(0===this._fgCustomSources.length),(0,n.assert)(0===this._bgCustomSources.length),(0,n.assert)(0===this._allCustomSources.length),(0,n.assert)(0===this._customSourcesMap.size),null!==this._lollipopSourcesWatcher&&(this._lollipopSourcesWatcher.destroy(),this._lollipopSourcesWatcher=null),null!==this._alertsWatcher&&this._alertsWatcher.destroy(),this._properties.childs().paneProperties.childs().background.unsubscribeAll(this),this._properties.childs().paneProperties.childs().backgroundType.unsubscribeAll(this),this._properties.childs().paneProperties.childs().backgroundGradientEndColor.unsubscribeAll(this),this._properties.childs().paneProperties.childs().backgroundGradientStartColor.unsubscribeAll(this),this._watchedThemeSpawn.destroy(),this._lastHoveredHittestData=null,this._lastSelectedHittestData=null,(0,Z.currencyUnitVisibilityProperty)().unsubscribeAll(this),this._crossHairSelectPointMode.destroy(),this._destroyed=!0}undoModel(){return this._undoModel}onData(e){switch(e.method){case"timescale_update":{const t=e.params;this._updateTimeScale({index:t.index,zoffset:t.zoffset,values:t.changes,indexDiffs:t.index_diff, baseIndex:t.baseIndex,marks:t.marks,clearFlag:t.clear});break}case"timescale_completed":{const t=Boolean(e.params[0]);this._timeScale.onTimeScaleCompleted(t);break}}}addStrategySource(e,t){1!==t&&-1===this._strategySources.indexOf(e)&&(this._strategySources.push(e),this._strategySourcesChange.fire(t),this.setActiveStrategySource(e))}removeStrategySource(e,t){if(1===t)return;const i=this._strategySources.indexOf(e);if(-1!==i){if(this._strategySources.splice(i,1)[0]===this._activeStrategySource.value()&&this.unsetActiveStrategySource(),this._strategySources.length>0){const e=this._strategySources[this._strategySources.length-1];this.setActiveStrategySource(e)}this._strategySourcesChange.fire(t)}}setActiveStrategySource(e){-1!==this._strategySources.indexOf(e)&&this._activeStrategySource.setValue(e)}unsetActiveStrategySource(){this._activeStrategySource.setValue(null)}activeStrategySource(){return this._activeStrategySource}strategySources(){return this._strategySources}strategySourcesChange(){return this._strategySourcesChange}setScrollEnabled(e){this._scrollEnabled=e}scrollEnabled(){return this._scrollEnabled}setZoomEnabled(e){this._zoomEnabled=e}zoomEnabled(){return this._zoomEnabled}zoomToViewport(e,t,i,s,r){this.setTimeViewport(e,t);let n=Math.min(i,s),o=Math.max(i,s);const a=r.defaultPriceScale();a.isPercentage()||a.setMode({autoScale:!1}),a.isLog()&&(n=a.priceToLogical(n),o=a.priceToLogical(o)),a.setPriceRange(new ue.PriceRange(n,o)),this.recalculateAllPanes((0,W.viewportChangeEvent)()),this.invalidate(this._paneInvalidationMask(r,K.InvalidationLevel.Light)),this._setScalesResetAvailable(!0)}setTimeViewport(e,t){const i=this.appliedTimeFrame().value();null!==this._lastAppliedGotoTimeRange&&null!==i&&(0,Tt.areEqualTimeFrames)(this._lastAppliedGotoTimeRange.range,i.val)&&!this._lastAppliedGotoTimeRange.actual||(this.timeScale().zoomToBarsRange(e,t),this.recalculateAllPanes((0,W.viewportChangeEvent)()),this.recalcVisibleRangeStudies(),this.lightUpdate())}onTagsChanged(){return this._tagsChanged}canZoomIn(){return this._timeScale.canZoomIn()&&this._zoomEnabled}canZoomOut(){return this._timeScale.canZoomOut()&&this._zoomEnabled}onPaneTagsChanged(){this._tagsChanged.fire()}panesCollectionChanged(){return this._panesCollectionChanged}dataSourceCollectionChanged(){return this._dataSourceCollectionChanged}symbolSourceCollectionChanged(){return this._symbolSourceCollectionChanged}symbolSourceResolved(){return this._symbolSourceResolved}symbolSourceResolvingActive(){return this._symbolSourceResolvingActive}adjustForDividendsAvailability(){return this._adjustForDividendsAvailability}adjustForDividendsEnabled(){return this._adjustForDividendsEnabled}paneCollapsingAvailable(){return this._paneCollapsingAvailable}sourcePropertiesChanged(){return this._sourceProperitesChanged}sourceZOrderChanged(){return this._sourceZOrderChanged}zoomTime(e,t,i){if(!this._zoomEnabled)return;const s=this.timeScale();if(s.isEmpty()||0===t)return;const r=s.width();e=Math.max(1,Math.min(e,r-2)),s.zoom(e,t,i),this.recalculateAllPanes((0, W.viewportChangeEvent)()),this.lightUpdate(),this.recalcVisibleRangeStudies(),this._setScalesResetAvailable(!0)}linePointBeingEdited(){return this._linePointBeingEdited}activeItemBeingMoved(){return this._activeItemBeingMoved}linePointBeingChanged(){return this._linePointBeingChanged}updateAllPaneViews(e){for(const t of this._panes)t.updateAllViews(e)}dataSources(){const e=[this.crossHairSource()];for(const t of this._panes)for(const i of t.dataSources())e.push(i);return e}priceDataSources(){const e=[];for(const t of this._panes)for(const i of t.priceDataSources())e.push(i);return e}symbolSources(){const e=[];for(const t of this._panes)for(const i of t.symbolSources())e.push(i);return e}selection(){return this._selection}selectionMacro(e,t=!1){const i=this.selection().allSources();e({removeSourceFromSelection:this._removeSourceFromSelection,addSourceToSelection:this._addSourceToSelection,clearSelection:this._clearSelection,selection:this.selection.bind(this)});const s=(0,v.subtract)(i,this.selection().allSources()),r=(0,v.subtract)(this.selection().allSources(),i);r.concat(i).forEach((e=>e.updateAllViews((0,W.selectionChangeEvent)())));let n=[];s.forEach((e=>{if((0,S.isLineTool)(e)){const i=e.hasAlert.value()&&e.getAlertSync();i&&i.setSelected(!1),!t&&e.shouldBeRemovedOnDeselect()&&n.push(e)}})),r.forEach((e=>{const t=(0,S.isLineTool)(e)&&e.hasAlert&&e.hasAlert.value()&&e.getAlertSync();t&&t.setSelected(!0)})),n=n.filter((e=>null!==this.dataSourceForId(e.id()))),n.length>0&&this._undoModel.removeSources(n,!1,zi),this.lightUpdate(),(s.length>0||r.length>0)&&this._selectedSourceChanged.fire()}onSelectedSourceChanged(){return this._selectedSourceChanged}checkLineToolSelection(){const e=this.selection().allSources();this._selection.checkLineToolSelection(),e.length!==this.selection().allSources().length&&this._selectedSourceChanged.fire()}lineToolsGroupModel(){return this._lineToolsGroupModel}restoreLineToolsGroups(e){this._lineToolsGroupModel=lt.fromState(this,e)}realignLineTools(e){for(const t of this._panes)(void 0===e||t.hasDataSource(e))&&t.realignLineTools(e)&&this._dataSourceCollectionChanged.fire(t)}isSnapshot(){return this._isSnapshot}onWidget(){return this._options.onWidget}hideIdeas(){return this._options.hideIdeas}updateSource(e){const t=this._invalidationMaskForSource(e);null!==t&&this.invalidate(t)}updateSourcePriceScale(e){const t=this._invalidationMaskForSourcePriceScale(e);null!==t&&this.invalidate(t)}updatePane(e){this.invalidate(this._paneInvalidationMask(e))}insertStudyWithParams(e,t,i,s,o,a,l,c,h,d,u){var p,_;let m=null;if(!o&&void 0!==e.groupingKey){const t=this.findNonOverlayStudyWithGroupingKey(e.groupingKey);null!==t&&(m=t.pane)}null===m&&(o||e.is_price_study?m=(0,n.ensureNotNull)(this.paneForSource(null!==(p=null==a?void 0:a[0])&&void 0!==p?p:this.m_mainSeries)):(m=this.createPane(),void 0!==d&&m.setPaneSize(d))),"Compare@tv-basicstudies"===e.id&&this.m_mainSeries.priceScale().setMode({log:!1,percentage:!0});const g=(0,ie.merge)((0,r.default)(null!=s?s:{}),{inputs:t,parentSources:[] }),f=null!=a?a:[],v=(0,C.prepareStudyProperties)(e,g,m,this.studyVersioning(),f),S=(0,j.createStudy)(this,v,f,e,u);this._recalcVisibleRangeStudiesImpl({studies:[S],oldEndVisibleIndex:-1,oldStartVisibleIndex:-1,force:!0,timerId:null});const y=m.findSuitableScale(S,null!==(_=null==a?void 0:a[0])&&void 0!==_?_:this.mainSeries(),l);if(y===this.mainSeries().priceScale()&&(0,pe.isSymbolSource)(S)){const e=c?(0,Ni.sourceNewCurrencyOnPinningToPriceScale)(S,y,this,!0):null,t=h?(0,Oi.sourceNewUnitOnPinningToPriceScale)(S,y,this,!0):null;null===e&&null===t||S.setSymbolParams({currency:e||void 0,unit:t||void 0})}return(0,pe.isSymbolSource)(S)&&(0,n.ensureNotNull)(m).hasDataSource(this.mainSeries())&&Ui&&!Wi.getBool("enable_symbol_labels_on_inserting_compare_once",!1)&&((0,x.saveDefaultProperties)(!0),this.properties().childs().scalesProperties.childs().showSymbolLabels.setValue(!0),(0,x.saveDefaultProperties)(!1),Wi.setValue("enable_symbol_labels_on_inserting_compare_once",!0)),S.start(),i&&m.id()===i.paneId?m.insertDataSource(S,y,i.zorder):m.addDataSource(S,y,!1),S.properties().childs().linkedToSeries&&S.properties().childs().linkedToSeries.value()&&S.setOwnerSource(this.mainSeries()),this.recalculatePane(m,(0,W.sourceChangeEvent)(S.id())),this.fullUpdate(),this._invalidateBarColorerCaches(),this._recalcVisibleRangeStudiesImpl({studies:[S],force:!0}),this._recalcColorStudiesImpl({studies:[S],force:!0}),this._studyInserted.fire(S),S.maxOffset().subscribe(this._boundUpdateStudiesMaxOffset,{callWithLast:!0}),S}replaceStudyStub(e,t){const i=this.paneForSource(e);if(null===i)return!1;const s=e.priceScale(),r=e.zorder(),n=e.ownerSource();return this.paneForSource(e)===i?i.replaceSource(e,t,s):(i.insertDataSource(t,s,r),this.removeSource(e)),t.setOwnerSource(n),this.dataSources().forEach((i=>{i.ownerSource()===e&&i.setOwnerSource(t)})),t.start(),this.recalculatePane(i,(0,W.sourceChangeEvent)(t.id())),this.fullUpdate(),!0}insertStudyStub(e){const t=this.mainSeries(),i=(0,n.ensureNotNull)(this.paneForSource(t)),s=new P.StudyStub(this,null,e),r=i.createPriceScaleAtPosition("overlay");return i.addDataSource(s,r,!1),this.recalculatePane(i,(0,W.sourceChangeEvent)(s.id())),this.fullUpdate(),s}removeStudyStub(e){const t=this.dataSourceForId(e);return null===t?(ji.logNormal("StudyStub id="+e+" is not found in chart model"),!1):(this.removeSource(t),!0)}setHoveredSource(e,t=null){const i=this._hoveredSource!==e;if(!i&&this._lastHoveredHittestData===t)return;this._lastHoveredHittestData=t;let s=null;if(this._hoveredSource){this._hoveredSource.updateAllViews((0,W.selectionChangeEvent)()),s=new K.InvalidationMask(K.InvalidationLevel.Cursor);const e=this._invalidationMaskForSource(this._hoveredSource,K.InvalidationLevel.Light);null!==e&&s.merge(e)}if(this._hoveredSource=e,e){e.updateAllViews((0,W.selectionChangeEvent)()),s||(s=new K.InvalidationMask(K.InvalidationLevel.Cursor));const t=this._invalidationMaskForSource(e,K.InvalidationLevel.Light);null!==t&&s.merge(t)}s&&this.invalidate(s),i&&this._hoveredSourceChanged.fire(e)}properties(){ @@ -444,35 +445,35 @@ return s.setOnHoveredChartWidget(!1),void(this._isSettingsExternalPosition=!1)}s ;if(l&&e.isSynchronizable()&&void 0!==i&&void 0!==t){const e=(0,n.ensureNotNull)(this.externalTimeStamp(t.index));(0,gt.startChangingLineTool)({linkKey:l,model:this,symbol:this.mainSeries().symbol(),point:{price:t.price,timeStamp:e},pointIndex:i,envState:s||null})}}createLineTool(e,t,i,s,r,a,l){if((0,n.assert)((0,S.isLineToolName)(i),`Cannot create unknown line tool: ${i}`),s){const e={...Ri.intervalsVisibilitiesDefaults},t=s.childs().intervalsVisibilities.state();(0,ie.merge)(e,null!=t?t:{});const r=s.state();r.intervalsVisibilities=e,s=(0,S.createLineToolProperties)(i,r,this)}const c=(0,S.createLineTool)(i,this,s,null,void 0,l);if("LineToolExecution"!==i){let e;switch(i){case"LineToolIcon":e=c.properties().childs().icon.value().toString(16).toUpperCase();break;case"LineToolEmoji":e=c.properties().childs().emoji.value()}(0,u.trackEvent)("drawings","Study_Drawing_"+i,e)}const h=!c.linkKey().value()&&!r;a=(0,n.ensureDefined)(a||(0,n.ensureNotNull)(e.mainDataSource())),s||(0,S.prepareLineToolPropertiesByOwnerSource)(c.properties(),a),c.setOwnerSource(a);const d=a.priceScale();if(e.addDataSource(c,d,!1),(0,gt.drawOnAllCharts)().value()){const e=c.isSynchronizable()?r||(0,J.randomHash)():null;c.linkKey().setValue(e)}else c.linkKey().setValue(r);let p;if(c.isFixed()){const i=(0,n.ensureNotNull)((0,n.ensureNotNull)(e.mainDataSource()).firstValue()),s=this._timeScale.indexToCoordinate(t.index),r=(0,n.ensureNotNull)(d).priceToCoordinate(t.price,i);p=c.addFixedPoint(new o.Point(s,r))}else p=c.addPoint(t);return p||(this._lineBeingCreated=c,this._paneBeingCreatedLineOn=e,gt.isToolCreatingNow.setValue(!0)),h&&c.enableCurrentIntervalVisibility(),this.fullUpdate(),c}endChangingLinetool(e,t){const i=(0,n.ensureNotNull)(this._lineBeingEdited),s=i.endChanging(!1,e,t);this._lineBeingEdited=null,gt.isToolEditingNow.setValue(!1),this._linePointBeingEdited=null,this._linePointBeingChanged=null,this.lightUpdate();const r={points:i.normalizedPoints(),interval:this.mainSeries().interval()},o=i.linkKey().value();null!==o&&i.isSynchronizable()&&!t&&(0,gt.finishChangingLineTool)({model:this,linkKey:o,symbol:this.mainSeries().symbol(),finalState:r,changes:s})}continueCreatingLine(e,t,i,s){const r=(0,n.ensureNotNull)(this._lineBeingCreated),o=r.addPoint(e,t,i);r.updateAllViews((0,W.sourceChangeEvent)(r.id()));const a=new K.InvalidationMask(K.InvalidationLevel.Light);return o&&(this._paneBeingCreatedLineOn=null,this._lineBeingCreated=null,gt.isToolCreatingNow.setValue(!1)),this.invalidate(a),o}cancelCreatingLine(){if(!this._lineBeingCreated)return;const e=this._lineBeingCreated;this.removeSource(this._lineBeingCreated),this._lineBeingCreated=null,this._lineCancelled.fire(),gt.isToolCreatingNow.setValue(!1),(0,gt.drawOnAllCharts)().value()&&e.isSynchronizable()&&(0,gt.cancelLineTool)({model:this})}lineBeingCreated(){return this._lineBeingCreated}paneBeingCreatedLineOn(){return this._paneBeingCreatedLineOn}lineCancelled(){return this._lineCancelled}isPhantomLine(e){return this._phantomSourceContainer.source()===e}changeLinePoint(e,t,i){const s=(0, n.ensureNotNull)(this._lineBeingEdited),r=(0,n.ensureNotNull)(this._linePointBeingEdited);let o=e.price,a=e.index;if(s.setPoint(r,e,t,i),!i){const t=s.alignCrossHairToAnchor(r)?s.getPoint(r):e;null!==t&&(a=t.index,o=t.price)}s.updateAllViews((0,W.sourceChangeEvent)(s.id())),this.lightUpdate();const l=s.linkKey().value();if(!i&&null!==l&&s.isSynchronizable()){const e=(0,n.ensureNotNull)(this._linePointBeingChanged),i={indexesChanged:a!==e.index,pricesChanged:o!==e.price},c=s.getChangePointForSync(r);if(null!==c){const e=this.externalTimeStamp(a);null!==e&&(o=c.price,(0,gt.changeLineTool)({linkKey:l,model:this,symbol:this.mainSeries().symbol(),point:{price:o,timeStamp:e},envState:t,changes:i}))}}}changeLinePoints(e,t,i){const s=e.points(),r=e.linkKey().value();!i&&r&&e.isSynchronizable()&&t.forEach(((t,i)=>{const o=s[i],a=o.price!==t.price,l=o.index!==t.index;if(e.getChangePointForSync(i)){const e=(0,n.ensureNotNull)(this.externalTimeStamp(t.index));(0,gt.changeLineTool)({linkKey:r,model:this,symbol:this.mainSeries().symbol(),point:{price:t.price,timeStamp:e},changes:{pricesChanged:a,indexesChanged:l}})}})),e.setPoints(t),e.updateAllViews((0,W.sourceChangeEvent)(e.id())),this.lightUpdate()}startScrollTime(e){this._timeScale.startScroll(e),this._isTimeScrolling=!0,this.mainSeries().clearGotoDateResult()}scrollTimeTo(e){this._timeScale.scrollTo(e),this.recalculateAllPanes((0,W.viewportChangeEvent)()),this.lightUpdate(),this._setScalesResetAvailable(!0)}endScrollTime(){this._timeScale.endScroll(),this.lightUpdate(),this.recalcVisibleRangeStudies(),this._isTimeScrolling=!1}startScrollPrice(e,t,i){e.startScrollPrice(t,i)}scrollPriceTo(e,t,i){e.scrollPriceTo(t,i),this.invalidate(this._paneInvalidationMask(e,K.InvalidationLevel.Light))}endScrollPrice(e,t){e.endScrollPrice(t),this.invalidate(this._paneInvalidationMask(e,K.InvalidationLevel.Light))}addCustomSource(e,t,i=g.CustomSourceLayer.Foreground){this._customSourcesMap.has(e)&&ji.logWarn(`Attempt to add the same custom source multiple time "${e}"`),ji.logNormal(`Adding custom source "${e}"`);const s=t(e,this);switch(i){case g.CustomSourceLayer.Background:this._bgCustomSources.push(s);break;case g.CustomSourceLayer.Foreground:this._fgCustomSources.push(s);break;case g.CustomSourceLayer.Topmost:this._topmostCustomSources.push(s);break;default:throw new Error(`Unknown custom sources layer ${i}`)}this._allCustomSources.push(s),this._customSourcesMap.set(e,s),this.lightUpdate()}removeCustomSource(e){this._removeCustomSource(e),this.lightUpdate()}hasCustomSource(e){return this._customSourcesMap.has(e)}customSourceForName(e){return this._customSourcesMap.get(e)||null}customSourceName(e){let t=null;return this._customSourcesMap.forEach(((i,s)=>{i===e&&(t=s)})),t}customSources(e){switch(e){case g.CustomSourceLayer.Background:return this._bgCustomSources;case g.CustomSourceLayer.Foreground:return this._fgCustomSources;case g.CustomSourceLayer.Topmost:return this._topmostCustomSources;default:return this._allCustomSources}}addMultiPaneSource(e){this._multiPaneSources.push(e), this.lightUpdate()}removeMultiPaneSource(e){const t=this._multiPaneSources.indexOf(e);-1===t?ji.logWarn("Attempt to remove multi-pane source which does not exist in the model"):this._multiPaneSources.splice(t,1),this.lightUpdate()}multiPaneSources(e){return this._multiPaneSources.filter((t=>!e.hasDataSource(t)))}magnet(){return this._magnet}dateTimeFormatter(){return this._dateTimeFormatter}dateFormatter(){return this._dateFormatter}timeFormatter(){return this._timeFormatter}isUnmergeAvailableForSource(e){if(!this._unmergeAvailable(e))return!1;return(0,n.ensureNotNull)(this.paneForSource(e)).dataSources().filter(this._unmergeAvailable,this).length>1}isMergeDownAvailableForSource(e){if(!this._unmergeAvailable(e))return!1;const t=this.paneForSource(e),i=this.panes();return t!==i[i.length-1]}isMergeUpAvailableForSource(e){if(!this._unmergeAvailable(e))return!1;return this.paneForSource(e)!==this.panes()[0]}sessions(){return(0,n.ensureNotNull)(this._sessions)}createSessions(e){(0,n.assert)(null===this._sessions,"Sessions are already created"),this.addCustomSource("sessions",((t,i)=>(this._sessions=new U(t,i,e),this._sessions.start(),this._sessions)),g.CustomSourceLayer.Background)}createPrePostMarket(e){this.addCustomSource("prePostMarket",((t,i)=>new PrePostMarket(t,i,e)))}replayStatus(){return this._replayStatus}setReplayStatus(e){this._replayStatus.setValue(e)}theme(){const e=this.properties().childs().paneProperties.state();delete e.topMargin,delete e.bottomMargin;const t=this.mainSeries().state().state;t&&(delete t.symbol,delete t.interval,delete t.currencyId,delete t.unitId);const i={mainSourceProperties:t,sessions:this.sessions().properties().state(),chartProperties:{paneProperties:e,scalesProperties:this.properties().childs().scalesProperties.state()},version:this.version()};return i.version=this.version(),i}onChartThemeLoaded(){return this._chartThemeLoaded}chartThemeLoaded(){this._chartThemeLoaded.fire()}state(e,t,i,s){var r;const n=this.publishedChartsTimelineSource(),o=this.properties().childs(),a=o.tradingProperties.state(),l={panes:this._panes.map((r=>r.state(!0,e,!1,t,i,s))),timeScale:this._timeScale.state(e),chartProperties:{paneProperties:o.paneProperties.state(),scalesProperties:o.scalesProperties.state(),publishedChartsTimelineProperties:n?n.state(e):void 0,chartEventsSourceProperties:null===(r=o.chartEventsSourceProperties)||void 0===r?void 0:r.state(),tradingProperties:a,priceScaleSelectionStrategyName:o.priceScaleSelectionStrategyName.value()},sessions:this.sessions().state(e),version:this.version(),timezone:this.timezone(),shouldBeSavedEvenIfHidden:this._shouldBeSavedEvenIfHidden};return s||(l.lineToolsGroups=this.lineToolsGroupModel().state(t)),l}restoreState(e,t,i){ye.instance(this).reset();const s={};if(!e.panes)return void ji.logDebug("ChartModel.restoreState: invalid state");if(!Array.isArray(e.panes))return void ji.logDebug("ChartModel.restoreState: invalid state");if(e.panes.length<1)return void ji.logDebug("ChartModel.restoreState: invalid state") -;for(const e of this._barsMarksSources)this.detachSource(e);if(this._shouldBeSavedEvenIfHidden=void 0===e.shouldBeSavedEvenIfHidden||e.shouldBeSavedEvenIfHidden,e.chartProperties&&!e.chartProperties.timezone&&(e.chartProperties.timezone=e.timezone),e.chartProperties){const i=(0,V.factoryDefaults)("chartproperties").scalesProperties;(0,ie.merge)(i,e.chartProperties.scalesProperties),!("showLastValue"in i)||"showSeriesLastValue"in i||"showStudyLastValue"in i||(i.showSeriesLastValueProperty=i.showLastValue,i.showStudyLastValueProperty=i.showLastValue),"showSeriesLastValue"in i&&(s.showSeriesLastValueProperty=!0),"showStudyLastValue"in i&&(s.showStudyLastValueProperty=!0),(!this.isSnapshot()&&!this.readOnly()&&"showCurrency"in i||"showUnit"in i)&&((0,X.migrateShowCurrencyAndShowUnitProperties)(i.showCurrency,i.showUnit),delete i.showCurrency,delete i.showUnit),e.chartProperties.paneProperties.vertGridProperties=e.chartProperties.paneProperties.vertGridProperties||(0,ie.clone)(e.chartProperties.paneProperties.gridProperties),e.chartProperties.paneProperties.horzGridProperties=e.chartProperties.paneProperties.horzGridProperties||(0,ie.clone)(e.chartProperties.paneProperties.gridProperties),"backgroundType"in e.chartProperties.paneProperties||(e.chartProperties.paneProperties.backgroundType=St.ColorType.Solid),"separatorColor"in e.chartProperties.paneProperties||(e.chartProperties.paneProperties.separatorColor=(0,d.getThemedColor)("color-chart-page-bg")),this._properties.childs().paneProperties.mergeAndFire(e.chartProperties.paneProperties),this._properties.childs().scalesProperties.mergeAndFire(i),e.chartProperties.timezone&&this._properties.childs().timezone.setValue(e.chartProperties.timezone),e.chartProperties.chartEventsSourceProperties&&this._properties.hasChild("chartEventsSourceProperties")&&this._properties.childs().chartEventsSourceProperties.mergeAndFire(e.chartProperties.chartEventsSourceProperties),e.chartProperties.tradingProperties&&this._properties.hasChild("tradingProperties")&&(void 0===e.chartProperties.tradingProperties.horizontalAlignment&&(e.chartProperties.tradingProperties.horizontalAlignment=(r=e.chartProperties.tradingProperties.lineLength)<=40?g.TradedGroupHorizontalAlignment.Right:r>=60?g.TradedGroupHorizontalAlignment.Left:g.TradedGroupHorizontalAlignment.Center),this._properties.childs().tradingProperties.mergeAndFire(e.chartProperties.tradingProperties)),this._timeScale.restoreState(e.timeScale,t),this._updateDateTimeFormatter()}var r;if(e.timeScale&&this._timeScale.restoreState(e.timeScale,t),!this.readOnly()){const t=this._getExceedingChildStudies(e.panes);if(t.length){for(let i=e.panes.length-1;i>=0;--i){const s=e.panes[i];for(let e=s.sources.length-1;e>=0;--e){const i=s.sources[e];~t.indexOf(i)&&s.sources.splice(e,1)}s.sources.length||e.panes.splice(i,1)}0}}const n=e.version||0,o=e.panes;let a="_seriesId";for(const e of o){const t=e.sources.find((e=>"MainSeries"===e.type));if(t){a=t.id;break}}this.panes()[0].restoreState(o[0],t,n,a,s,i,!0);let l=1;for(let r=1;r=60?g.TradedGroupHorizontalAlignment.Left:g.TradedGroupHorizontalAlignment.Center),this._properties.childs().tradingProperties.mergeAndFire(e.chartProperties.tradingProperties)),this._timeScale.restoreState(e.timeScale,t),this._updateDateTimeFormatter()}var r;if(e.timeScale&&this._timeScale.restoreState(e.timeScale,t),!this.readOnly()){const t=this._getExceedingChildStudies(e.panes);if(t.length){for(let i=e.panes.length-1;i>=0;--i){const s=e.panes[i];for(let e=s.sources.length-1;e>=0;--e){const i=s.sources[e];~t.indexOf(i)&&s.sources.splice(e,1)}s.sources.length||e.panes.splice(i,1)}0}}const n=e.version||0,o=e.panes;let a="_seriesId";for(const e of o){const t=e.sources.find((e=>"MainSeries"===e.type));if(t){a=t.id;break}}this.panes()[0].restoreState(o[0],t,n,a,s,i,!0);let l=1;for(let r=1;rp&&h%100==0?{lines_limit_exceeded:!0,line_tools_count:h}:(this.panes().forEach((e=>this._dataSourceCollectionChanged.fire(e))),this._lineToolsGroupModel.fireChangedAll(),{})}shouldBeSavedEvenIfHidden(){return this._shouldBeSavedEvenIfHidden}setShouldBeSavedEvenIfHidden(e){this._shouldBeSavedEvenIfHidden=e}externalTimeStamp(e){const t=this.mainSeries().syncModel();return this.timeScale().points().roughTime(e,t&&t.projectTime.bind(t))}syncLollipopSources(){null!==this._lollipopSourcesWatcher&&this._lollipopSourcesWatcher.syncSources()}restoreChartEvents(e){null!==this._lollipopSourcesWatcher&&this._options.chartEventsEnabled&&this._lollipopSourcesWatcher.restoreChartEvents(e)}recalcVisibleRangeStudies(e){this._recalcVRStudiesParams.force=this._recalcVRStudiesParams.force||Boolean(e),this._recalcVisibleRangeStudiesImplDebounced()}recalcColorStudies(e){this._recalcColorStudiesParams.force=this._recalcColorStudiesParams.force||Boolean(e),this._recalcColorStudiesImplDebounced()}recalcStudyBasedLineTools(){this.dataSources().forEach((e=>{(0,S.isStudyLineTool)(e)&&e.recalcStudyIfNeeded()}))}alertsWatcher(){return this._alertsWatcher}showLegend(){return this._showLegendProperty}id(){return this._id}selectPointMode(){return this._crossHairSelectPointMode}recalculatePriceRangeOnce(){const e=this.mainSeries();for(const t of this._panes)for(const i of t.priceDataSources())i.symbolSource()===e&&i.disablePriceRangeReady()}invalidate(e){var t;null===(t=this._invalidateHandler)||void 0===t||t.call(this,e)}appliedTimeFrame(){return this._appliedTimeFrame.appliedTimeFrame()}barsMarksSources(){return this._barsMarksSources}createSyncPoint(e,t){return(0,Bi.getDefault2Lazy)(this._syncPointCache,e.uniqueId,t.uniqueId,(()=>new mt(e,t)))}isAutoSaveEnabled(){return this._isAutoSaveEnabled}studyAwareDefaultRightOffset(){return this._timeScale.usePercentageRightOffset().value()?this._timeScale.percentsToBarIndexLength(this.studyAwareDefaultRightOffsetPercentage()):Math.max(this._timeScale.defaultRightOffset().value(),this._cachedStudiesMaxOffset)} -studyAwareDefaultRightOffsetPercentage(){return this._timeScale.usePercentageRightOffset().value()?Math.max(this._timeScale.defaultRightOffsetPercentage().value(),this._timeScale.barIndexLengthToPercents(this._cachedStudiesMaxOffset)):this._timeScale.barIndexLengthToPercents(this.studyAwareDefaultRightOffset())}clearAllStudies(){this.dataSources().forEach((e=>{var t;return null===(t=e.clearData)||void 0===t?void 0:t.call(e)}))}setTimeScaleAnimation(e){const t=K.InvalidationMask.light();t.setTimeScaleAnimation(e),this.invalidate(t)}stopTimeScaleAnimation(){const e=K.InvalidationMask.light();e.stopTimeScaleAnimation(),this.invalidate(e)}lollipopSourcesOptions(){const e=this._options;return{chartEventsEnabled:!this._options.isSnapshot&&this._options.chartEventsEnabled,esdEnabled:e.esdEnabled,continuousContractSwitchesEnabled:e.continuousContractSwitchesEnabled,futuresContractExpirationEnabled:e.futuresContractExpirationEnabled,newsEnabled:e.newsEnabled}}_initAlertsList(){throw new Error("Not implemented")}_updateStudiesMaxOffset(){const e=Math.max(...this.allStudies().map((e=>e.maxOffset().value())));this._cachedStudiesMaxOffset=e;const t=this._timeScale.rightOffset();t<0||this._timeScale.setRightOffset(Math.max(t,e))}_updateBaseIndex(e,t){const i=this._timeScale,s=i.baseIndex(),r=i.visibleBarsStrictRange(),n=i.logicalRange();if(null!==n&&t){const t=n.contains(s),o=e-s;let a=t?null:i.rightOffset()-o;if(!this._options.shiftVisibleRangeOnNewBar&&t){const e=i.indexToCoordinate(s)+i.barSpacing()/2+1,t=s-n.left()+o,l=e/t;if(l>=i.minBarSpacing()){i.setBarSpacing(l);a=i.width()/l-t}else(null==r?void 0:r.lastBar())!==s&&(a=i.rightOffset()-o)}null!==a&&i.setRightOffset(a)}i.setBaseIndex(e)}_createLollipopSourcesWatcher(){}_updateDateTimeFormatter(){const e=ot.dateFormatProperty.value(),t=void 0;if(this._dateFormatter=new nt.DateFormatter(e,t),this.mainSeries().isDWM())this._dateTimeFormatter=new nt.DateFormatter(e,t),this._timeFormatter=new Ke.TimeFormatter((0,Xe.getHourMinuteFormat)(Ye.timeHoursFormatProperty.value()));else{const i=T.Interval.parse(this.mainSeries().interval()),s=(0,Xe.getTimeFormatForInterval)(i,Ye.timeHoursFormatProperty.value());this._dateTimeFormatter=new rt.DateTimeFormatter({dateFormat:e,withWeekday:t,timeFormat:s,dateTimeSeparator:" "}),this._timeFormatter=new Ke.TimeFormatter(s)}}_setScalesResetAvailable(e){this._isScalesResetAvailable!==e&&(this._isScalesResetAvailable=e,this._isScalesResetAvailableChanged.fire())}_invalidationMaskForSource(e,t=K.InvalidationLevel.Light){if(e===this.crossHairSource())return K.InvalidationMask.cursor();if(this._watermarkSource===e)return this._paneInvalidationMask((0,n.ensureNotNull)(this.paneForSource(this.mainSeries())),t);if(-1!==this._allCustomSources.indexOf(e)){const e=new K.InvalidationMask;return e.invalidateAll(t),e}if(!(0,f.isDataSource)(e))return null;if(e.isMultiPaneEnabled())return new K.InvalidationMask(t);const i=this.paneForSource(e);return null!==i?this._paneInvalidationMask(i,t):null}_paneInvalidationMask(e,t=K.InvalidationLevel.Light){ +studyAwareDefaultRightOffsetPercentage(){return this._timeScale.usePercentageRightOffset().value()?Math.max(this._timeScale.defaultRightOffsetPercentage().value(),this._timeScale.barIndexLengthToPercents(this._cachedStudiesMaxOffset)):this._timeScale.barIndexLengthToPercents(this.studyAwareDefaultRightOffset())}clearAllStudies(){this.dataSources().forEach((e=>{var t;return null===(t=e.clearData)||void 0===t?void 0:t.call(e)}))}setTimeScaleAnimation(e){const t=K.InvalidationMask.light();t.setTimeScaleAnimation(e),this.invalidate(t)}stopTimeScaleAnimation(){const e=K.InvalidationMask.light();e.stopTimeScaleAnimation(),this.invalidate(e)}lollipopSourcesOptions(){const e=this._options;return{chartEventsEnabled:!this._options.isSnapshot&&this._options.chartEventsEnabled,esdEnabled:e.esdEnabled,continuousContractSwitchesEnabled:e.continuousContractSwitchesEnabled,futuresContractExpirationEnabled:e.futuresContractExpirationEnabled,newsEnabled:e.newsEnabled}}_initAlertsList(){throw new Error("Not implemented")}_updateStudiesMaxOffset(){const e=Math.max(...this.allStudies().map((e=>e.maxOffset().value())));this._cachedStudiesMaxOffset=e;const t=this._timeScale.rightOffset();t<0||this._timeScale.setRightOffset(Math.max(t,e))}_updateBaseIndex(e,t){const i=this._timeScale,s=i.baseIndex(),r=i.visibleBarsStrictRange(),n=i.logicalRange();if(null!==n&&t){const t=n.contains(s),o=e-s;let a=t?null:i.rightOffset()-o;if(!this._options.shiftVisibleRangeOnNewBar&&t){const e=i.indexToCoordinate(s)+i.barSpacing()/2+1,t=s-n.left()+o,l=e/t;if(l>=i.minBarSpacing()){i.setBarSpacing(l);a=i.width()/l-t}else(null==r?void 0:r.lastBar())!==s&&(a=i.rightOffset()-o)}null!==a&&i.setRightOffset(a)}i.setBaseIndex(e)}_createLollipopSourcesWatcher(){}_updateDateTimeFormatter(){const e=ot.dateFormatProperty.value(),t=void 0;if(this._dateFormatter=new nt.DateFormatter(e,t),this.mainSeries().isDWM())this._dateTimeFormatter=new nt.DateFormatter(e,t),this._timeFormatter=new Ke.TimeFormatter((0,Ze.getHourMinuteFormat)(Ye.timeHoursFormatProperty.value()));else{const i=T.Interval.parse(this.mainSeries().interval()),s=(0,Ze.getTimeFormatForInterval)(i,Ye.timeHoursFormatProperty.value());this._dateTimeFormatter=new rt.DateTimeFormatter({dateFormat:e,withWeekday:t,timeFormat:s,dateTimeSeparator:" "}),this._timeFormatter=new Ke.TimeFormatter(s)}}_setScalesResetAvailable(e){this._isScalesResetAvailable!==e&&(this._isScalesResetAvailable=e,this._isScalesResetAvailableChanged.fire())}_invalidationMaskForSource(e,t=K.InvalidationLevel.Light){if(e===this.crossHairSource())return K.InvalidationMask.cursor();if(this._watermarkSource===e)return this._paneInvalidationMask((0,n.ensureNotNull)(this.paneForSource(this.mainSeries())),t);if(-1!==this._allCustomSources.indexOf(e)){const e=new K.InvalidationMask;return e.invalidateAll(t),e}if(!(0,f.isDataSource)(e))return null;if(e.isMultiPaneEnabled())return new K.InvalidationMask(t);const i=this.paneForSource(e);return null!==i?this._paneInvalidationMask(i,t):null}_paneInvalidationMask(e,t=K.InvalidationLevel.Light){ const i=new K.InvalidationMask,s=this._panes.indexOf(e);return i.invalidateAllPane(s,t),i}_invalidationMaskForSourcePriceScale(e,t=K.InvalidationLevel.Light){if(!(0,f.isDataSource)(e))return new K.InvalidationMask(t);const i=this.paneForSource(e);if(null===i)return null;let s=e.priceScale();if(null===s)return null;const r=this._panes.indexOf(i);let n=i.priceScalePosition(s);if("overlay"===n){const e=this._panes[r].defaultPriceScale();s=e,n=i.priceScalePosition(e)}const o=i.priceScaleIndex(s,n);if(void 0===o)return null;const a=new K.InvalidationMask;return a.invalidatePriceScale(r,n,o,t),a}_removeCustomSource(e){const t=this._customSourcesMap.get(e);if(void 0===t)return void ji.logWarn(`Attempt to remove custom source which does not exist in the model - "${e}"`);ji.logNormal(`Removing custom source "${e}"`),this.selectionMacro((e=>{e.removeSourceFromSelection(t)})),this._hoveredSource===t&&this.setHoveredSource(null),this._customSourceBeingMoved===t&&this.setMovingCustomSource(null,null);const i=Gi(this._bgCustomSources,t),s=Gi(this._fgCustomSources,t),r=Gi(this._topmostCustomSources,t),o=Gi(this._allCustomSources,t);(0,n.assert)(i||s||r,"Source should be presented in one of the layers"),(0,n.assert)(o,"Source should be presented in the array"),this._customSourcesMap.delete(e),t.destroy()}_updateShowLegendProperty(){const e=this._properties.childs().paneProperties.childs().legendProperties.childs().showLegend,t=this._showLegendProperty;if(e.value())t.setValue(!0);else{for(const e of this._panes){let i=0;for(const s of e.priceDataSources())if(s!==this.mainSeries()&&null!==s.statusView()&&(i++,i>1))return void t.setValue(!1)}t.setValue(!0)}}_pointToPercentPosition(e,t){return{x:e.x/this._timeScale.width(),y:e.y/(0,n.ensureNotNull)((0,n.ensureNotNull)(t.mainDataSource()).priceScale()).height()}}_percentPositionToPoint(e,t){const i=e.x*this._timeScale.width(),s=e.y*(0,n.ensureNotNull)((0,n.ensureNotNull)(t.mainDataSource()).priceScale()).height();return new o.Point(i,s)}_recalcVisibleRangeStudiesImpl(e){var t,i,s;if(e.timerId=null,this.timeScale().isEmpty())return;const r=this.timeScale().visibleBarsStrictRange();if(null===r)return;const n=this.mainSeries().bars(),o=n.search(r.firstBar(),Je.PlotRowSearchMode.NearestRight),a=n.search(r.lastBar(),Je.PlotRowSearchMode.NearestLeft),l=n.lastIndex(),c=o?o.index:void 0,h=a?a.index:void 0,d=c===e.oldStartVisibleIndex,u=h===e.oldEndVisibleIndex;if(d&&u&&!e.force)return;e.force=!1,e.oldStartVisibleIndex=void 0!==c?c:NaN,e.oldEndVisibleIndex=void 0!==h?h:NaN;const p={first_visible_bar_time:1e3*(null!==(t=null==o?void 0:o.value[0])&&void 0!==t?t:0),last_visible_bar_time:1e3*(null!==(i=null==a?void 0:a.value[0])&&void 0!==i?i:0),subscribeRealtime:(null==a?void 0:a.index)===l},_=null!==(s=e.studies)&&void 0!==s?s:this.priceDataSources();e.studies=void 0;for(const e of _)if((0,j.isStudy)(e)){const t=e.metaInfo().inputs,i=[];for(const e of t)p.hasOwnProperty(e.id)&&i.push(e.id);const s=e.properties().childs().inputs;for(const e of i)s.childs()[e].setValueSilently(p[e]) ;i.length>0&&s.listeners().fire(s)}}_recalcColorStudiesImpl(e){var t;e.timerId=null;const i=this.backgroundColorAtYPercentFromTop(.5),s=this.isDark()?l.colorsPalette["color-cold-gray-200"]:l.colorsPalette["color-cold-gray-900"],r=i===e.oldBgColor,n=s===e.oldFgColor;if(r&&n&&!e.force)return;e.force=!1,e.oldBgColor=i,e.oldFgColor=s;const o={__chart_bgcolor:i,__chart_fgcolor:s},a=null!==(t=e.studies)&&void 0!==t?t:this.priceDataSources();e.studies=void 0;for(const e of a)if((0,j.isStudy)(e)){const t=e.metaInfo().inputs,i=[];for(const e of t)o.hasOwnProperty(e.id)&&i.push(e.id);const s=e.properties().childs().inputs;for(const e of i)s.childs()[e].setValueSilently(o[e]);i.length>0&&s.listeners().fire(s)}}_getAllSources(e){const t=[];for(const i of this._panes){const s=i.sourcesByGroup().all();for(const i of s)e(i)&&t.push(i)}return t}_invalidateBarColorerCaches(){this.mainSeries().invalidateBarColorerCache()}_addAlertLabelToChart(e){throw new Error("Not implemented")}_removeAlertLabelFromChart(e){throw new Error("Not implemented")}_removeAllAlertLabelsFromChart(){throw new Error("Not implemented")}_updateTimeScale(e){var t,i,s,r;const{index:n,zoffset:o,values:a,indexDiffs:l,baseIndex:c,marks:h,clearFlag:d}=e;if(d){this._timeScale.reset();for(const e of this.dataSources())null===(t=e.clearData)||void 0===t||t.call(e)}if(l.length>0)for(const e of this.dataSources())null===(i=e.moveData)||void 0===i||i.call(e,l);const u=this._timeScale.indexToTimePoint(this._timeScale.baseIndex()),p=this._timeScale.canNormalize();this._timeScale.update(n,o,a,h);const _=this._timeScale.points().range().value();let m="ChartModel.prototype._updateTimeScale("+n+","+o+","+a.length+","+l.length+","+h.length+","+d+")";if(m+="TimeScale: {first:"+(null!==(s=null==_?void 0:_.firstIndex)&&void 0!==s?s:null)+",last:"+(null!==(r=null==_?void 0:_.lastIndex)&&void 0!==r?r:null)+"}",null===c){this._timeScale.resetBaseIndex();const e=this._timeScale.rightOffset();e<0?this._timeScale.setRightOffset(this.studyAwareDefaultRightOffset()):this._timeScale.setRightOffset(Math.max(e,this._cachedStudiesMaxOffset))}else if(void 0!==c){const e=this._timeScale.indexToTimePoint(c),t=null!==u&&null!==e&&e>u;this._updateBaseIndex(c,t)}if(ji.logDebug(m),!p&&p!==this._timeScale.canNormalize())for(const e of this.dataSources())!(0,S.isLineTool)(e)||e.isFixed()||e.isSourceHidden()||e.processHibernate();this.recalculateAllPanes((0,W.globalChangeEvent)()),this.lightUpdate()}_getAvailableCurrencies(){return!this.currencyConversionEnabled()||this.isSnapshot()?[]:(0,ie.isArray)(this._availableCurrenciesList)?this._availableCurrenciesList:(null!==this._availableCurrenciesList||(this._availableCurrenciesList=this.chartApi().availableCurrencies(),this._availableCurrenciesList.then((e=>{this._destroyed||(this._availableCurrenciesList=e,this.fullUpdate())})).catch((e=>{ji.logWarn(`An error occurred while getting currencies config: ${e}`)}))),[])}_getAvailableUnits(){ return!this.unitConversionEnabled()||this.isSnapshot()?{}:this._availableUnitsObject instanceof Promise||null===this._availableUnitsObject?(null!==this._availableUnitsObject||(this._availableUnitsObject=this.chartApi().availableUnits(),this._availableUnitsObject.then((e=>{this._destroyed||(this._availableUnitsObject=e,this.fullUpdate())})).catch((e=>{ji.logWarn(`An error occurred while getting units config: ${e}`)}))),{}):this._availableUnitsObject}_getAvailablePriceSources(){return Array.isArray(this._availablePriceSourcesList)?this._availablePriceSourcesList:(this._availablePriceSourcesList=this.chartApi().availablePriceSources(),this._availablePriceSourcesList.then((e=>{this._destroyed||(this._availablePriceSourcesList=e,this.fullUpdate())})).catch((e=>{ji.logWarn(`An error occurred while getting price sources config: ${e}`)})),[])}_getBackgroundColor(e){const t=this._properties.childs().paneProperties.childs();if(t.backgroundType.value()===St.ColorType.Gradient){const i=t.backgroundGradientStartColor.value(),s=t.backgroundGradientEndColor.value();return e?i:s}return t.background.value()}_updateBackgroundColor(){this._backgroundColor.setValue(this._getBackgroundColor()),this._backgroundTopColor.setValue(this._getBackgroundColor(!0))}_syncCrosshair(e){if(!this._isSettingsExternalPosition){const t=this._undoModel.chartWidget(),i=this._undoModel.mainSeries(),s=i.syncModel(),r=this._undoModel.crossHairSource(),n=r.pane;if(null!==s&&null!==n){const o={timeStamp:this._timeScale.points().roughTime(r.index,s.projectTime.bind(s)),syncSourceTarget:s.syncSourceTarget()};n.mainDataSource()===i&&(o.price=r.price,o.symbol=i.symbol());let a=this._lineBeingCreated||null!==this._linePointBeingEdited||Boolean(this._sourcesBeingMoved.length);a=a&&(0,gt.drawOnAllCharts)().value(),t.chartWidgetCollection().syncCrosshair(o,t.id(),a,e)}this._phantomSourceContainer.onCursorPositionUpdated()}}_gotoTimeImpl(e,t){const i=this.timeScale(),s=this.mainSeries();let r;if(void 0!==e){if(this._scrollingState&&this._scrollingState.deferred.reject(),r=(0,p.createDeferredPromise)(),!s.isDWM()){const t=s.symbolInfo();if(null!==t){let i=this.properties().childs().timezone.value();"exchange"===i&&(i=t.timezone);const r=(0,ht.cal_to_utc)((0,ht.get_timezone)(i),new Date(e)),n=(0,At.createTimeToBarTimeAligner)(s.interval(),t)(r);e=(0,ht.utc_to_cal)((0,ht.get_timezone)(i),n).getTime()}}this._scrollingState={targetDate:e,deferred:r,centerIfVisible:t.centerIfVisible}}else{if(!this._scrollingState)return ji.logError("scrollTo called without an argument"),Promise.reject();e=this._scrollingState.targetDate,r=this._scrollingState.deferred}if(void 0===i.tickMarks().minIndex)return r.resolve(void 0),r.promise;this.stopTimeScaleAnimation();let o=((e,t)=>{if((e=>(0,n.ensureNotNull)(i.tickMarks().indexToTime((0,n.ensureDefined)(i.tickMarks().minIndex))).valueOf()-e)(t)<0){let r=i.tickMarks().nearestIndex(t);const o=s.bars().lastIndex();if(null===o)return null;r=Math.min(r,o);let a=(0,n.ensureNotNull)(i.tickMarks().indexToTime(r)).valueOf();for(;a1&&s.push(e)),n=(n+1)%t.length}return s}}},50745:(e,t,i)=>{"use strict";i.d(t,{japaneseChartStyles:()=>r,commonChartStyles:()=>n,allChartStyles:()=>o});var s=i(2484);function r(){return s.enabled("japanese_chart_styles"),[8]}function n(){const e=[0,1,9,13,2,3,10];return s.enabled("chart_style_hilo")&&e.push(12),e}function o(){return n().concat(r())}},94533:(e,t,i)=>{"use strict";i.d(t,{ChartUndoModelBase:()=>ji});var s=i(85459),r=i.n(s),n=i(16230),o=i(50151),a=i(86441),l=i(44352),c=i(41207),h=i(25071),d=i(58403),u=i(45673),p=i(578);function _(e,t){return!!p.Interval.isEqual(e.res,t.res)&&(0,u.areEqualTimeFrames)(e.val,t.val)}var m=i(43426),g=i(39969),f=i(6250),v=i(70439),S=i(68671),y=i(51768),b=i(72006),w=i(2484),P=i(46627),C=i(98351),T=i(89215),x=i(47539),I=i(65665);const M=new x.TranslatedString("move all scales to left",l.t(null,void 0,i(81898))),A=new x.TranslatedString("move all scales to right",l.t(null,void 0,i(22863))),L=(0,C.getLogger)("Chart.MergeAllScales");var k=i(71733);class E extends k.UndoCommand{constructor(e,t,i,s,r,n){super(n),this._model=e,this._paneIndex=e.panes().indexOf(t),this._targetPosition=s,this._targetIndex=r,this._scaleId=i.id(),this._sourcePosition=t.priceScalePosition(i),"overlay"!==this._sourcePosition&&(this._sourceIndex=t.priceScaleIndex(i,this._sourcePosition))}redo(){const e=this._model.panes()[this._paneIndex],t=(0,o.ensureNotNull)(e.getPriceScaleById(this._scaleId));e.movePriceScale(t,this._targetPosition,this._targetIndex),this._model.fullUpdate()}undo(){const e=this._model.panes()[this._paneIndex],t=(0,o.ensureNotNull)(e.getPriceScaleById(this._scaleId)) ;e.movePriceScale(t,this._sourcePosition,this._sourceIndex),this._model.fullUpdate()}}class D extends k.UndoCommand{constructor(e,t,i,s){super(s),this._createdIds=[],this._model=e,this._withoutShift=i,this._origStates=t.map((e=>e.state(!0)));const r=e.lineToolsGroupModel();this._origGroups=t.map((e=>{const t=r.groupForLineTool(e);return t&&t.id}))}redo(){const e=this._model.lineToolsGroupModel(),t=this._origStates.map(((t,i)=>{const s=(0,o.ensureNotNull)(this._model.dataSourceForId(t.id)),r=0===this._createdIds.length?void 0:(0,o.ensureDefined)(this._createdIds[i]),n=(0,f.cloneLineTool)(this._model,s,!this._withoutShift,r),a=(0,o.ensureNotNull)(s.priceScale());(0,o.ensureNotNull)(this._model.paneForSource(s)).addDataSource(n,a,!1);const l=this._origGroups[i];if(null!==l){const t=e.groupForId(l);t&&t.addLineTools([n])}return this._model.updateSource(n),n}));0===this._createdIds.length&&(this._createdIds=t.map((e=>e.id()))),this._model.selectionMacro((e=>{e.clearSelection(),t.forEach((t=>{e.addSourceToSelection(t)}))})),this._model.setShouldBeSavedEvenIfHidden(!0)}undo(){const e=this._model.lineToolsGroupModel();this._createdIds.forEach((t=>{const i=(0,o.ensureNotNull)(this._model.dataSourceForId(t)),s=e.groupForLineTool(i);null!==s&&s.excludeLineTool(i),this._model.removeSource(i)}))}newIds(){return this._createdIds}}var B=i(34853),V=i(65071);class R extends k.UndoCommand{constructor(e,t,i,s=!0){super(i,s),this._newStates=[],this._model=e,this._savedStates=t.map((e=>e.state(!1)))}redo(){this._applyState(this._newStates)}undo(){0===this._newStates.length&&this.saveNewState(),this._applyState(this._savedStates)}saveNewState(){const e=this._savedStates.filter(I.notNull).map((e=>(0,o.ensureNotNull)(this._model.dataSourceForId(e.id))));this._newStates=e.map((e=>e.state(!1)))}_applyState(e){for(const t of e)if(null!==t){const e=this._model.dataSourceForId(t.id);if(null!==e)if((0,T.isStudy)(e)){const i=t.state.inputs,s=e.properties().childs().inputs.childs();for(const e in i)s[e]&&s[e].setValue(i[e])}else this._model.restoreLineToolState(e,t,!0)}}}var N=i(52934),O=i(11426),F=i(50841),W=i(58631);const H=new x.TranslatedString("create {tool}",l.t(null,void 0,i(81791)));class z extends k.UndoCommand{constructor(e,t,i,s,r=0,n){super(H.format({tool:new x.TranslatedString(i,W.lineToolsLocalizedNames[i])}),!1),this._lineId=null,this._lineState=null,this._model=e,this._paneIndex=e.panes().indexOf(t),this._lineTool=i,this._ownerSourceId=s.id(),this._lineId=null!=n?n:null,this._drawOnAllChartsMode=r}startCreatingLine(e,t,i){var s;const r=this._model.panes()[this._paneIndex],n=this._model.dataSourceForId(this._ownerSourceId),o=this._model.createLineTool(r,e,this._lineTool,t,i,n,null!==(s=this._lineId)&&void 0!==s?s:void 0);return this._lineId=o.id(),!this._model.lineBeingCreated()}continueCreatingLine(e,t,i,s){const r=this._model.continueCreatingLine(e,t,i,s);return r&&this._model.setShouldBeSavedEvenIfHidden(!0),r}line(){return null===this._lineId?null:this._model.dataSourceForId(this._lineId)}undo(){const e=this.line() -;null!==e&&(this._lineState=e.state(!1),this._model.removeSource(e),this._lineId=null)}redo(){if(null===this._lineState)return;const e=this._model.restoreSource(!1,this._paneIndex,null,(0,o.ensureNotNull)(this._lineState),null);null!==e&&(this._lineId=e.id(),this._lineState=null,e.share(this._drawOnAllChartsMode))}drawOnAllCharts(){return 0!==this._drawOnAllChartsMode}}const U=new x.TranslatedString("bring {title} to front",l.t(null,void 0,i(78246))),j=new x.TranslatedString("send {title} to back",l.t(null,void 0,i(66781))),G=new x.TranslatedString("insert {title} after {targetTitle}",l.t(null,void 0,i(53146))),q=new x.TranslatedString("insert {title} before {targetTitle}",l.t(null,void 0,i(67176))),$=new x.TranslatedString("send {title} backward",l.t(null,void 0,i(16259))),Y=new x.TranslatedString("bring {title} forward",l.t(null,void 0,i(56763))),K=new x.TranslatedString("send group {title} backward",l.t(null,void 0,i(4998))),X=new x.TranslatedString("bring group {title} forward",l.t(null,void 0,i(27195)));function Z(e){return new x.TranslatedString(e.name(),e.title())}class J extends k.UndoCommand{constructor(e,t,i){super(i),this._sourcesByPanes=new Map,this._originalState=new Map,this._model=e,t.forEach((t=>{const i=(0,o.ensureNotNull)(e.paneForSource(t)),s=e.panes().indexOf(i),r=this._sourcesByPanes.get(s)||[];r.push(t.id()),this._sourcesByPanes.set(s,r)})),Array.from(this._sourcesByPanes.keys()).forEach((t=>{const i=e.panes()[t],s=new Map;i.sourcesByGroup().allIncludingHidden().forEach((e=>{s.set(e.id(),e.zorder())})),this._originalState.set(t,s)}))}undo(){this._originalState.forEach(((e,t)=>{const i=this._model.panes()[t],s=new Map;e.forEach(((e,t)=>{const r=(0,o.ensureNotNull)(i.dataSourceForId(t));s.set(r,e)})),i.setZOrders(s)}))}redo(){this._sourcesByPanes.forEach(((e,t)=>{const i=this._model.panes()[t],s=e.map((e=>(0,o.ensureNotNull)(i.dataSourceForId(e))));this._paneOperation(i,s)}))}}class Q extends J{constructor(e,t){super(e,t,U.format({title:Z(t[0])}))}_paneOperation(e,t){e.bringToFront(t)}}class ee extends J{constructor(e,t){super(e,t,j.format({title:Z(t[0])}))}_paneOperation(e,t){e.sendToBack(t)}}class te extends J{constructor(e,t,i,s){super(e,t,s),this._targetSource=i}_paneOperation(e,t){e.insertAfter(t,this._targetSource)}}class ie extends te{constructor(e,t,i){super(e,t,i,G.format({title:Z(t[0]),targetTitle:Z(i)}))}}class se extends J{constructor(e,t,i,s){super(e,t,s),this._targetSource=i}_paneOperation(e,t){e.insertBefore(t,this._targetSource)}}class re extends se{constructor(e,t,i){super(e,t,i,q.format({title:Z(t[0]),targetTitle:Z(i)}))}}function ne(e,t){const i=t[0],s=e.sourcesByGroup().all().filter((e=>e.zorder()e.zorder()>i.zorder()));if(0===s.length)throw new Error("Cannot bring forward source that alreadt on back");let r=s[0];if((0,f.isLineTool)(r)){const t=e.model().lineToolsGroupModel().groupForLineTool(r);if(null!==t){const e=t.lineTools();r=e[e.length-1]}}return r}class le extends te{constructor(e,t,i){super(e,i,ae(t,i),Y.format({title:Z(i[0])}))}}function ce(e,t){return(0,o.ensureNotNull)(e.paneForSource(t.lineTools()[0]))}class he extends se{constructor(e,t){super(e,t.lineTools(),ne(ce(e,t),t.lineTools()),K.format({title:t.name()}))}}class de extends te{constructor(e,t){super(e,t.lineTools(),ae(ce(e,t),t.lineTools()),X.format({title:t.name()}))}}const ue=new x.TranslatedString("rearrange panes",l.t(null,void 0,i(33348)));class pe extends k.UndoCommand{constructor(e,t,i){super(ue),this._chartModel=e,this._index=t,(0,I.isNumber)(i)?this._dstIndex=i:this._dstIndex="up"===i?t-1:t+1}redo(){this._checkIndices()&&this._chartModel.movePane(this._index,this._dstIndex)}undo(){this._checkIndices()&&this._chartModel.movePane(this._dstIndex,this._index)}_checkIndices(){const e=this._chartModel.panes().length;return this._index>=0&&this._index=0&&this._dstIndex{const i=(0,o.ensureNotNull)(e.paneForSource(t)),s=e.panes().indexOf(i),r=this._sourcesByPanes.get(s)||[];r.push(t.id()),this._sourcesByPanes.set(s,r)})),Array.from(this._sourcesByPanes.keys()).forEach((t=>{const i=e.panes()[t],s=new Map;i.sourcesByGroup().allIncludingHidden().forEach((e=>{s.set(e.id(),e.zorder())})),this._originalState.set(t,s)}))}undo(){this._originalState.forEach(((e,t)=>{const i=this._model.panes()[t],s=new Map;e.forEach(((e,t)=>{const r=(0,o.ensureNotNull)(i.dataSourceForId(t));s.set(r,e)})),i.setZOrders(s)}))}redo(){this._sourcesByPanes.forEach(((e,t)=>{const i=this._model.panes()[t],s=e.map((e=>(0,o.ensureNotNull)(i.dataSourceForId(e))));this._paneOperation(i,s)}))}}class Q extends J{constructor(e,t){super(e,t,U.format({title:X(t[0])}))}_paneOperation(e,t){e.bringToFront(t)}}class ee extends J{constructor(e,t){super(e,t,j.format({title:X(t[0])}))}_paneOperation(e,t){e.sendToBack(t)}}class te extends J{constructor(e,t,i,s){super(e,t,s),this._targetSource=i}_paneOperation(e,t){e.insertAfter(t,this._targetSource)}}class ie extends te{constructor(e,t,i){super(e,t,i,G.format({title:X(t[0]),targetTitle:X(i)}))}}class se extends J{constructor(e,t,i,s){super(e,t,s),this._targetSource=i}_paneOperation(e,t){e.insertBefore(t,this._targetSource)}}class re extends se{constructor(e,t,i){super(e,t,i,q.format({title:X(t[0]),targetTitle:X(i)}))}}function ne(e,t){const i=t[0],s=e.sourcesByGroup().all().filter((e=>e.zorder()e.zorder()>i.zorder()));if(0===s.length)throw new Error("Cannot bring forward source that alreadt on back");let r=s[0];if((0,f.isLineTool)(r)){const t=e.model().lineToolsGroupModel().groupForLineTool(r);if(null!==t){const e=t.lineTools();r=e[e.length-1]}}return r}class le extends te{constructor(e,t,i){super(e,i,ae(t,i),Y.format({title:X(i[0])}))}}function ce(e,t){return(0,o.ensureNotNull)(e.paneForSource(t.lineTools()[0]))}class he extends se{constructor(e,t){super(e,t.lineTools(),ne(ce(e,t),t.lineTools()),K.format({title:t.name()}))}}class de extends te{constructor(e,t){super(e,t.lineTools(),ae(ce(e,t),t.lineTools()),Z.format({title:t.name()}))}}const ue=new x.TranslatedString("rearrange panes",l.t(null,void 0,i(33348)));class pe extends k.UndoCommand{constructor(e,t,i){super(ue),this._chartModel=e,this._index=t,(0,I.isNumber)(i)?this._dstIndex=i:this._dstIndex="up"===i?t-1:t+1}redo(){this._checkIndices()&&this._chartModel.movePane(this._index,this._dstIndex)}undo(){this._checkIndices()&&this._chartModel.movePane(this._dstIndex,this._index)}_checkIndices(){const e=this._chartModel.panes().length;return this._index>=0&&this._index=0&&this._dstIndexe.id()))}redo(){const e=(0,o.ensureNotNull)(this._model.lineToolsGroupModel().groupForId(this._groupId));this._model.lineToolsGroupModel().removeGroup(e)}undo(){const e=this._lineToolsIds.map((e=>this._model.dataSourceForId(e))),t=new Ce.LineToolsGroup(e,this._groupName,this._groupId);this._model.lineToolsGroupModel().addGroup(t)}}const xe=new x.TranslatedString("create line tools group",l.t(null,void 0,i(3195)));class Ie extends k.UndoCommand{constructor(e,t){super(xe),this._groupId=null,this._model=e,this._sourcesIds=t.map((e=>e.id()))}redo(){const e=this._sourcesIds.map((e=>this._model.dataSourceForId(e))),t=null===this._groupId?void 0:this._groupId;this._groupId=this._model.lineToolsGroupModel().createGroup(e,this._title,t).id}undo(){const e=(0,o.ensureNotNull)(this._model.lineToolsGroupModel().groupForId((0,o.ensureNotNull)(this._groupId)));this._model.lineToolsGroupModel().removeGroup(e)}createdGroupId(){return this._groupId}}const Me=new x.TranslatedString("add line tool(s) to group {group}",l.t(null,void 0,i(40242)));class Ae extends k.UndoCommand{constructor(e,t,i){super(Me.format({group:t.name()})),this._model=e,this._groupId=t.id,this._lineToolsIds=i.map((e=>e.id()))}redo(){const e=(0,o.ensureNotNull)(this._model.lineToolsGroupModel().groupForId(this._groupId)),t=this._lineToolsIds.map((e=>this._model.dataSourceForId(e)));e.addLineTools(t)}undo(){const e=this._lineToolsIds.map((e=>this._model.dataSourceForId(e)));(0,o.ensureNotNull)(this._model.lineToolsGroupModel().groupForId(this._groupId)).excludeLineTools(e)}}class Le extends k.UndoCommand{constructor(e,t,i,s,r){super(i),this._targetObj=e,this._newValue=t,this._oldValue=this._targetObj.value(),this._model=s,r&&this.setCustomFlag("doesnt_affect_save",!0)}redo(){(0,ge.saveDefaultProperties)(!0),this._targetObj.setValue(this._newValue),(0,ge.saveDefaultProperties)(!1),this._model.recalculateAllPanes((0, ye.globalChangeEvent)()),this._model.lightUpdate()}undo(){(0,ge.saveDefaultProperties)(!0),this._targetObj.setValue(this._oldValue),(0,ge.saveDefaultProperties)(!1),this._model.recalculateAllPanes((0,ye.globalChangeEvent)()),this._model.lightUpdate()}}class ke extends k.UndoCommand{constructor(e,t,i,s){super(s),this._chartModel=e,this._groupId=t.id,this._oldName=t.name(),this._newName=i}redo(){(0,o.ensureNotNull)(this._chartModel.lineToolsGroupModel().groupForId(this._groupId)).setName(this._newName)}undo(){(0,o.ensureNotNull)(this._chartModel.lineToolsGroupModel().groupForId(this._groupId)).setName(this._oldName)}}var Ee=i(76076);const De=new x.TranslatedString("create line tools group from selection",l.t(null,void 0,i(92659))),Be=new x.TranslatedString("removing line tools group {name}",l.t(null,void 0,i(78811))),Ve=new x.TranslatedString("add line tool {lineTool} to group {name}",l.t(null,void 0,i(99113))),Re=new x.TranslatedString("make group {group} visible",l.t(null,void 0,i(87927))),Ne=new x.TranslatedString("make group {group} invisible",l.t(null,void 0,i(45223))),Oe=new x.TranslatedString("lock group {group}",l.t(null,void 0,i(4963))),Fe=new x.TranslatedString("unlock group {group}",l.t(null,void 0,i(51114))),We=new x.TranslatedString("rename group {group} to {newName}",l.t(null,void 0,i(16338)));class He{constructor(e){this._lineToolsAffectChartInvalidation=new P.FeatureToggleWatchedValue("do_not_invalidate_chart_on_changing_line_tools",!1),this._environment=e}createGroupFromSelection(){const e=this._environment.model();(0,o.assert)(!e.selection().isEmpty(),"Cannot create group from empty selection");const t=(0,F.sortSources)(e.selection().lineDataSources());(0,o.assert)(t.length===e.selection().allSources().length,"A group could contain line tools only");const i=t.length>1||null!==this._environment.model().lineToolsGroupModel().groupForLineTool(t[0]),s=t.reduce(((e,t)=>e.zorder()>t.zorder()?e:t),t[0]);let r=s;const n=e.lineToolsGroupModel().groupForLineTool(s);if(null!==n){const e=n.lineTools();r=e[e.length-1]}this._environment.beginUndoMacro(De,this._lineToolsAffectChartInvalidation.value());const a=new Map,l=new Set;t.forEach((t=>{const i=this._groupForLineTool(t);if(null===i)return;const s=a.get(i)||[];s.push(t),a.set(i,s);const r=(0,o.ensureNotNull)(e.paneForSource(t));l.add(r)})),(0,o.assert)(l.size<=1,"All selected sources should be on the same pane"),a.forEach(((t,i)=>{const s=new V.ExcludeLineToolsFromGroupUndoCommand(e,i,t);this._environment.pushUndoCommand(s)}));const c=new Ie(e,(0,F.sortSources)(t));if(this._environment.pushUndoCommand(c),i){const i=new ie(e,t,r);this._environment.pushUndoCommand(i)}this._environment.endUndoMacro();const h=(0,o.ensureNotNull)(c.createdGroupId());return(0,o.ensureNotNull)(e.lineToolsGroupModel().groupForId(h))}removeGroup(e){const t=this._environment.model(),i=e.lineTools();this._environment.beginUndoMacro(Be.format({name:e.name()}),this._lineToolsAffectChartInvalidation.value());const s=new Te(t,e,null);this._environment.pushUndoCommand(s) ;const r=new B.RemoveSourcesCommand(t,i,null);this._environment.pushUndoCommand(r);const n=t.mainSeries().symbol();i.forEach((e=>{null!==e.linkKey().value()&&(0,Ee.removeLineTool)({withUndo:!0,model:t,symbol:n,sourceTitle:new x.TranslatedString(e.name(),e.title()),lineToolState:e.state(!1),linkKey:(0,o.ensureNotNull)(e.linkKey().value())})})),this._environment.endUndoMacro()}groups(){return this._environment.model().lineToolsGroupModel().groups()}excludeLineToolFromGroup(e,t){const i=this._environment.model(),s=new V.ExcludeLineToolsFromGroupUndoCommand(i,e,[t]);s.setCustomFlag("doesnt_affect_save",this._lineToolsAffectChartInvalidation.value()),this._environment.pushUndoCommand(s)}addLineToolToGroup(e,t){const i=this._environment.model(),s=i.lineToolsGroupModel().groupForLineTool(t);if(s===e)return;const r=Ve.format({lineTool:new x.TranslatedString(t.name(),t.title()),name:e.name()});this._environment.beginUndoMacro(r,this._lineToolsAffectChartInvalidation.value()),null!==s&&this._environment.pushUndoCommand(new V.ExcludeLineToolsFromGroupUndoCommand(i,s,[t])),this._environment.pushUndoCommand(new Ae(i,e,[t])),this._environment.endUndoMacro()}bringToFront(e){const t=this._environment.model(),i=new Q(t,e.lineTools());i.setCustomFlag("doesnt_affect_save",this._lineToolsAffectChartInvalidation.value()),this._environment.pushUndoCommand(i),this._environment.emitEvent("changeZOrder",[e.lineTools()])}sendToBack(e){const t=this._environment.model(),i=new ee(t,e.lineTools());i.setCustomFlag("doesnt_affect_save",this._lineToolsAffectChartInvalidation.value()),this._environment.pushUndoCommand(i),this._environment.emitEvent("changeZOrder",[e.lineTools()])}bringForward(e){const t=this._environment.model(),i=new de(t,e);i.setCustomFlag("doesnt_affect_save",this._lineToolsAffectChartInvalidation.value()),this._environment.pushUndoCommand(i),this._environment.emitEvent("changeZOrder",[e.lineTools()])}sendBackward(e){const t=this._environment.model(),i=new he(t,e);i.setCustomFlag("doesnt_affect_save",this._lineToolsAffectChartInvalidation.value()),this._environment.pushUndoCommand(i),this._environment.emitEvent("changeZOrder",[e.lineTools()])}insertAfter(e,t){const i=this._environment.model();let s;if(t instanceof Ce.LineToolsGroup){const e=t.lineTools();s=e[e.length-1]}else s=t;const r=new ie(i,e.lineTools(),s);this._environment.pushUndoCommand(r),this._environment.emitEvent("changeZOrder",[e.lineTools()])}insertBefore(e,t){const i=this._environment.model();let s;if(t instanceof Ce.LineToolsGroup){s=t.lineTools()[0]}else s=t;const r=new re(i,e.lineTools(),s);this._environment.pushUndoCommand(r),this._environment.emitEvent("changeZOrder",[e.lineTools()])}availableZOrderOperations(e){const t=this._environment.model(),i=e.lineTools(),s=i[0],r=i[i.length-1],n=(0,o.ensureNotNull)(t.paneForSource(i[0])).sourcesByGroup().allExceptSpecialSources(),a=n[0],l=n[n.length-1];return{bringForwardEnabled:r!==l,bringToFrontEnabled:r!==l,sendBackwardEnabled:s!==a,sendToBackEnabled:s!==a}}setGroupVisibility(e,t){const i=(t?Re:Ne).format({ group:e.name()}),s=this._environment.model();this._environment.beginUndoMacro(i,this._lineToolsAffectChartInvalidation.value()),e.lineTools().forEach((e=>{const i=e.properties().visible,r=new Le(i,t,null,s);this._environment.pushUndoCommand(r)})),this._environment.endUndoMacro()}setGroupLock(e,t){const i=(t?Oe:Fe).format({group:e.name()}),s=this._environment.model();this._environment.beginUndoMacro(i,this._lineToolsAffectChartInvalidation.value()),e.lineTools().forEach((e=>{const i=e.properties().frozen,r=new Le(i,t,null,s);this._environment.pushUndoCommand(r)})),this._environment.endUndoMacro()}setGroupName(e,t){const i=this._environment.model(),s=We.format({group:e.name(),newName:t}),r=new ke(i,e,t,s);r.setCustomFlag("doesnt_affect_save",this._lineToolsAffectChartInvalidation.value()),this._environment.pushUndoCommand(r)}canBeGroupped(e){const t=this._environment.model();return new Set(e.map((e=>t.paneForSource(e)))).size<=1}_groupForLineTool(e){return this._environment.model().lineToolsGroupModel().groups().find((t=>t.containsLineTool(e)))||null}}var ze=i(58121),Ue=i(26989),je=i(62472),Ge=i(12033);const qe=new x.TranslatedString("apply study template {template}",l.t(null,void 0,i(26065)));function $e(e){for(const t of e.panes)for(const e of t.sources)if((0,je.isMainSeriesState)(e))return e.id;return null}class Ye extends k.UndoCommand{constructor(e,t,i){var s,r;super(qe.format({template:i})),this._newSymbolParams={},this._model=e,this._templateContent=function(e,t){const i=(0,ze.default)({},e),s=(0,o.ensureNotNull)($e(i));for(const e of i.panes){e.mainSourceId===s&&(e.mainSourceId=t);for(const i of e.sources)if(i.id===s){i.id=t;const r=e=>{const i=e.indexOf(s);-1!==i&&e.splice(i,1,t)};if(e.leftAxisesState&&e.rightAxisesState?(e.leftAxisesState.forEach((e=>r(e.sources))),e.rightAxisesState.forEach((e=>r(e.sources)))):(r(e.leftAxisSources),r(e.rightAxisSources)),e.overlayPriceScales){const i=e.overlayPriceScales[s];i&&(delete e.overlayPriceScales[s],e.overlayPriceScales[t]=i)}}else i.ownerSource===s&&(i.ownerSource=t)}return i}(t,e.mainSeries().id()),this._initialState=e.studyTemplate(!0,!0,!0);const n=e.mainSeries();t.symbol&&(this._newSymbolParams={symbol:t.symbol,currency:null!==(s=t.currency)&&void 0!==s?s:null,unit:null!==(r=t.unit)&&void 0!==r?r:null}),t.interval&&(this._newSymbolParams.interval=t.interval,this._newSymbolParams.style=(0,fe.getChartStyleByResolution)(t.interval,n.style())),this._initialSymbolParams={symbol:n.symbol(),currency:n.currency(),unit:n.unit(),interval:n.interval(),style:n.style()},this._initialState=e.studyTemplate(),this._initialGroupsState=e.lineToolsGroupModel().state()}redo(){this._model.mainSeries().setSymbolParams(this._newSymbolParams);const e=this._merge(this._templateContent).filter(f.isLineTool);this._model.lineToolsGroupModel().removeLineTools(e);const t=this._model.mainSeries().properties();(0,fe.preparePriceAxisProperties)(t),this._model.recalcVisibleRangeStudies(!0),this._model.setShouldBeSavedEvenIfHidden(!0)}undo(){ -this._model.mainSeries().setSymbolParams(this._initialSymbolParams),this._merge(this._initialState)}_merge(e){const t=e.version||0,i=this._model,s=i.mainSeries();(0,o.assert)(s.id()===$e(e)),s.priceScale().properties().childs().lockScale.setValue(!1);const r=i.panes(),n=[];for(let e=r.length;e--;){const t=r[e],i=t.containsMainSeries(),s=t.dataSources();for(let e=s.length;e--;){const t=s[e];(!i||(0,T.isStudy)(t)&&t.isRemovedByStudyTemplates())&&n.push(t)}}i.resetDeferredStudies();const a=(0,Ue.closeSourcesSet)(i,n);for(let e=0;ee.zorder-t.zorder));for(let e=0;e-1,a=o?r[e]:i.createPane(e);o&&t<3&&(0,Ge.reorderDataSourcesStateZOrder)(n.sources),a.restoreState(n,!1,t),null!==a.mainDataSource()||i.removePane(a)}return i.syncLollipopSources(),s.priceScale().setMode({autoScale:!0}),i.startNotStartedStudies(),i.recalculateAllPanes((0,ye.globalChangeEvent)()),i.fullUpdate(),a}}var Ke=i(21580);const Xe=(0,C.getLogger)("Chart.ChartUndoModel"),Ze=new x.TranslatedString("paste drawing",l.t(null,void 0,i(96916)));class Je extends k.UndoCommand{constructor(e,t,i,s,r){super(Ze),this._needCopyToOtherCharts=!1,this._sourceState=null,this._model=e,this._clipboardData=t,this._paneIndex=this._model.panes().indexOf(i||(0,o.ensureNotNull)(this._model.paneForSource(this._model.mainSeries()))),this._pasteWithData=!!s,this._keepZIndex=!!r}redo(){const e=this._model.panes()[this._paneIndex],t=(0,o.ensureNotNull)(e.clipboardLineToolOwnerSource(this._clipboardData.source.id));null===this._sourceState&&(this._sourceState=this._getSourceState(t));const i=(0,o.ensureNotNull)(e.restoreLineTool(this._sourceState,this._pasteWithData,this._keepZIndex,void 0,t));(0,o.ensureNotNull)(t.priceScale()).addDataSource(i),this._clipboardData.centeredOnChart&&i.centerPosition&&i.centerPosition(),i.restoreFixedPoint(),i.createServerPoints();const s=(0,Ke.isActingAsSymbolSource)(t)||t.metaInfo().is_price_study;this._needCopyToOtherCharts=Boolean(s&&((0,Ee.drawOnAllCharts)().value()||i.linkKey().value()&&i.isSynchronizable())),this._model.setShouldBeSavedEvenIfHidden(!0)}undo(){if(!this._sourceState)return void Xe.logError("This command was never executed - nothing to undo");const e=this.source();this._clipboardData.centeredOnChart&&(this._clipboardData.centeredOnChart=!1,this._sourceState.points=e.normalizedPoints()),this._model.removeSource(e)}source(){return(0,o.ensureNotNull)(this._model.dataSourceForId((0,o.ensureNotNull)(this._sourceState).id))}needCopyToOtherCharts(){return this._needCopyToOtherCharts}_getSourceState(e){const t=(0,I.clone)(this._clipboardData.source);delete t.state.symbol,null!=t.linkKey&&(t.linkKey=(0,S.randomHash)());const i=(0,o.ensureNotNull)(e.priceScale()),s=this._model,{symbol:r,currencyId:n,unitId:l}=this._clipboardData.source.state,c=(0,o.ensureNotNull)(e.symbolSource());let h=!1 +this._model.mainSeries().setSymbolParams(this._initialSymbolParams),this._merge(this._initialState)}_merge(e){const t=e.version||0,i=this._model,s=i.mainSeries();(0,o.assert)(s.id()===$e(e)),s.priceScale().properties().childs().lockScale.setValue(!1);const r=i.panes(),n=[];for(let e=r.length;e--;){const t=r[e],i=t.containsMainSeries(),s=t.dataSources();for(let e=s.length;e--;){const t=s[e];(!i||(0,T.isStudy)(t)&&t.isRemovedByStudyTemplates())&&n.push(t)}}i.resetDeferredStudies();const a=(0,Ue.closeSourcesSet)(i,n);for(let e=0;ee.zorder-t.zorder));for(let e=0;e-1,a=o?r[e]:i.createPane(e);o&&t<3&&(0,Ge.reorderDataSourcesStateZOrder)(n.sources),a.restoreState(n,!1,t),null!==a.mainDataSource()||i.removePane(a)}return i.syncLollipopSources(),s.priceScale().setMode({autoScale:!0}),i.startNotStartedStudies(),i.recalculateAllPanes((0,ye.globalChangeEvent)()),i.fullUpdate(),a}}var Ke=i(21580);const Ze=(0,C.getLogger)("Chart.ChartUndoModel"),Xe=new x.TranslatedString("paste drawing",l.t(null,void 0,i(96916)));class Je extends k.UndoCommand{constructor(e,t,i,s,r){super(Xe),this._needCopyToOtherCharts=!1,this._sourceState=null,this._model=e,this._clipboardData=t,this._paneIndex=this._model.panes().indexOf(i||(0,o.ensureNotNull)(this._model.paneForSource(this._model.mainSeries()))),this._pasteWithData=!!s,this._keepZIndex=!!r}redo(){const e=this._model.panes()[this._paneIndex],t=(0,o.ensureNotNull)(e.clipboardLineToolOwnerSource(this._clipboardData.source.id));null===this._sourceState&&(this._sourceState=this._getSourceState(t));const i=(0,o.ensureNotNull)(e.restoreLineTool(this._sourceState,this._pasteWithData,this._keepZIndex,void 0,t));(0,o.ensureNotNull)(t.priceScale()).addDataSource(i),this._clipboardData.centeredOnChart&&i.centerPosition&&i.centerPosition(),i.restoreFixedPoint(),i.createServerPoints();const s=(0,Ke.isActingAsSymbolSource)(t)||t.metaInfo().is_price_study;this._needCopyToOtherCharts=Boolean(s&&((0,Ee.drawOnAllCharts)().value()||i.linkKey().value()&&i.isSynchronizable())),this._model.setShouldBeSavedEvenIfHidden(!0)}undo(){if(!this._sourceState)return void Ze.logError("This command was never executed - nothing to undo");const e=this.source();this._clipboardData.centeredOnChart&&(this._clipboardData.centeredOnChart=!1,this._sourceState.points=e.normalizedPoints()),this._model.removeSource(e)}source(){return(0,o.ensureNotNull)(this._model.dataSourceForId((0,o.ensureNotNull)(this._sourceState).id))}needCopyToOtherCharts(){return this._needCopyToOtherCharts}_getSourceState(e){const t=(0,I.clone)(this._clipboardData.source);delete t.state.symbol,null!=t.linkKey&&(t.linkKey=(0,S.randomHash)());const i=(0,o.ensureNotNull)(e.priceScale()),s=this._model,{symbol:r,currencyId:n,unitId:l}=this._clipboardData.source.state,c=(0,o.ensureNotNull)(e.symbolSource());let h=!1 ;!c.symbolSameAsCurrent(r)||(null!==n?n!==(0,fe.symbolCurrency)(c.symbolInfo(),void 0,!0):c.isConvertedToOtherCurrency())||(null!==l?l!==(0,fe.symbolUnit)(c.symbolInfo(),this._model.unitConversionEnabled()):c.isConvertedToOtherUnit())||((0,Ke.isActingAsSymbolSource)(e)?h=!0:(0,T.isStudy)(e)&&(h=Boolean(e.metaInfo().is_price_study)));const d=e=>{const t=e.x*s.timeScale().width(),r=e.y*i.height()-40;return new a.Point(t,r)},u=(0,o.ensureNotNull)(e.firstValue());if(this._model.id()===this._clipboardData.modelId||!h)for(let e=0;ee.id())),this._inputs=i,this._targetZOrder=h,this._preferredPriceScale=o,this._allowChangeCurrency=a,this._allowChangeUnit=l,this._paneSize=c}redo(){const e=this._parentIds.map((e=>this._chartModel.dataSourceForId(e))),t=this._chartModel.insertStudyWithParams(this._studyMetaInfo,this._inputs,this._targetZOrder,this._props,this._addAsOverlay,e,this._preferredPriceScale,this._allowChangeCurrency,this._allowChangeUnit,this._paneSize,null===this._studyId?void 0:this._studyId);if(this._studyId=t.id(),t.childStudyByRebind().subscribe(null,(()=>(0,y.trackEvent)("SOS","Apply SOS","Rebind SOS"))),this._chartModel.setShouldBeSavedEvenIfHidden(!0),null!==this._paneState){(0,o.ensureNotNull)(this._chartModel.paneForSource(t)).restoreState(this._paneState,!1,this._chartModel.version()),this._paneState=null}}undo(){const e=(0,o.ensureNotNull)(this._chartModel.dataSourceForId((0,o.ensureNotNull)(this._studyId))),t=(0,o.ensureNotNull)(this._chartModel.paneForSource(e)).state();this._chartModel.removeSource(e)&&(this._paneState=t)}insertedStudy(){return this._chartModel.dataSourceForId((0,o.ensureNotNull)(this._studyId))}}var ut=i(5440),pt=i(96196),_t=i.n(pt),mt=i(50337),gt=i(8771);const ft=new x.TranslatedString("zoom",l.t(null,void 0,i(59833)));class vt extends k.UndoCommand{constructor(e,t,i,s,r,n){super(ft),this._barSpacing=null,this._rightBarsOffset=null,this._leftBarsOffset=null,this._priceMode=null,this._model=e,this._startBar=t,this._endBar=i,this._startPrice=s,this._endPrice=r,this._pane=n}redo(){const e=(0,o.ensureNotNull)(this._model.timeScale().visibleBarsStrictRange());this._leftBarsOffset=e.firstBar()-this._startBar,this._rightBarsOffset=e.lastBar()-this._endBar,this._barSpacing=this._model.timeScale().barSpacing(),this._priceMode=this._pane.defaultPriceScale().mode(), this._model.zoomToViewport(this._startBar,this._endBar,this._startPrice,this._endPrice,this._pane)}undo(){const e=this._model.timeScale(),t=this._pane.defaultPriceScale(),i=(0,o.ensureNotNull)(e.visibleBarsStrictRange());e.setBarSpacing((0,o.ensureNotNull)(this._barSpacing)),e.zoomToBarsRange(i.firstBar()+(0,o.ensureNotNull)(this._leftBarsOffset),i.lastBar()+(0,o.ensureNotNull)(this._rightBarsOffset)),t.setMode((0,o.ensureNotNull)(this._priceMode)),t.recalculatePriceRange((0,o.ensureNotNull)(e.visibleBarsStrictRange())),this._model.recalculateAllPanes((0,ye.viewportChangeEvent)()),this._model.lightUpdate()}}const St=(0,C.getLogger)("Chart.ChartUndoModel"),yt=new x.TranslatedString("zoom",l.t(null,void 0,i(59833)));class bt extends k.UndoCommand{constructor(e,t,i){super(yt),this._baseCmd=e,this._zoomStack=t,this._inOut=i}undo(){if(this._inOut){if(this._baseCmd!==this._zoomStack.head())return void St.logDebug("zoom stack inconsistency");this._baseCmd.undo(),this._zoomStack.pop()}else this._baseCmd.redo(),this._zoomStack.push(this._baseCmd)}redo(){if(this._inOut)this._baseCmd.redo(),this._zoomStack.push(this._baseCmd);else{if(this._baseCmd!==this._zoomStack.head())return void St.logDebug("zoom stack inconsistency");this._baseCmd.undo(),this._zoomStack.pop()}}}const wt=new x.TranslatedString("stop syncing drawing",l.t(null,void 0,i(98784)));class Pt extends k.UndoCommand{constructor(e,t){super(wt),this._model=e,this._sourceId=t.id(),this._linkKey=t.linkKey().value()}redo(){(0,o.ensureNotNull)(this._model.dataSourceForId(this._sourceId)).linkKey().setValue(null)}undo(){(0,o.ensureNotNull)(this._model.dataSourceForId(this._sourceId)).linkKey().setValue(this._linkKey)}}const Ct=new x.TranslatedString("restore defaults",l.t(null,void 0,i(9608)));class Tt extends k.UndoCommand{constructor(e,t,i=Ct){super(i),this._chartModel=e,this._defaultProperty=t,this._state=t.state()}redo(){this._chartModel.restoreFactoryDefaults(this._defaultProperty)}undo(){this._defaultProperty.mergeAndFire(this._state),this._chartModel.mainSeries().onChartStyleChanged()}}var xt=i(7006);class It extends Tt{redo(){this._defaultProperty.hasChild("intervalsVisibilities")&&this._defaultProperty.childs().intervalsVisibilities.mergeAndFire(xt.intervalsVisibilitiesDefaults),super.redo()}}class Mt extends It{redo(){super.redo(),this._chartModel.recalcColorStudies(!0)}undo(){super.undo(),this._chartModel.recalcColorStudies(!0)}}var At=i(10621),Lt=i(933),kt=i(64548);function Et(e){const{visible:t,...i}=e;return i}function Dt(e){const{visible:t,...i}=e;return i}function Bt(e){const{drawWick:t,drawBorder:i,drawBody:s,barColorsOnPrevClose:r,...n}=e;return n}function Vt(e){const{drawWick:t,drawBorder:i,drawBody:s,...r}=e;return r}function Rt(e){const{drawWick:t,drawBorder:i,drawBody:s,showRealLastPrice:r,inputs:n,...o}=e;return o}function Nt(e){const{barColorsOnPrevClose:t,dontDrawOpen:i,thinBars:s,...r}=e;return r}function Ot(e){const{showBorders:t,showLabels:i,drawBody:s,...r}=e;return r}function Ft(e){ -const{linestyle:t,linewidth:i,styleType:s,priceSource:r,...n}=e;return n}function Wt(e){const{linestyle:t,linewidth:i,priceSource:s,...r}=e;return r}function Ht(e){const{inputs:t,...i}=e;return i}function zt(e){const{inputs:t,...i}=e;return i}function Ut(e){const{inputs:t,...i}=e;return i}function jt(e){const{inputs:t,...i}=e;return i}function Gt(e){const{topLineWidth:t,bottomLineWidth:i,baseLevelPercentage:s,priceSource:r,...n}=e;return n}function qt(e){const{thinBars:t,inputs:i,...s}=e;return s}function $t(e){const{visible:t,style:i,symbol:s,interval:r,sessionId:n,highLowAvgPrice:o,showCountdown:a,bidAsk:l,prePostMarket:c,priceAxisProperties:h,candleStyle:d,hollowCandleStyle:u,haStyle:p,barStyle:_,hiloStyle:m,lineStyle:g,areaStyle:f,renkoStyle:v,pbStyle:S,kagiStyle:y,pnfStyle:b,baselineStyle:w,rangeStyle:P,esdShowDividends:C,esdShowSplits:T,esdShowEarnings:x,esdShowBreaks:I,showContinuousContractSwitches:M,showContinuousContractSwitchesBreaks:A,showFuturesContractExpiration:L,showLastNews:k,...E}=e;return{bidAsk:Et(l),prePostMarket:Dt(c),candleStyle:Bt(d),hollowCandleStyle:Vt(u),haStyle:Rt(p),barStyle:Nt(_),hiloStyle:Ot(m),lineStyle:Ft(g),areaStyle:Wt(f),renkoStyle:Ht(v),pbStyle:zt(S),kagiStyle:Ut(y),pnfStyle:jt(b),baselineStyle:Gt(w),rangeStyle:qt(P),...E}}function Yt(e){const{scaleSeriesOnly:t,showSeriesLastValue:i,showStudyLastValue:s,showSymbolLabels:r,showBidAskLabels:n,showPrePostMarketPriceLabel:o,showStudyPlotLabels:a,showFundamentalNameLabel:l,showFundamentalLastValue:c,seriesLastValueMode:h,...d}=e;return d}function Kt(e){const{topMargin:t,bottomMargin:i,...s}=e;return s}const Xt=new x.TranslatedString("apply chart theme",l.t(null,void 0,i(66568)));class Zt extends k.UndoCommand{constructor(e,t,i){var s,r,n;super(Xt),this._model=e,this._newSessionProps=t.sessions||(0,kt.factoryDefaults)("sessions"),["candleStyle","hollowCandleStyle","haStyle"].forEach((e=>{t.mainSourceProperties[e].wickUpColor=t.mainSourceProperties[e].wickUpColor||t.mainSourceProperties[e].wickColor,t.mainSourceProperties[e].wickDownColor=t.mainSourceProperties[e].wickDownColor||t.mainSourceProperties[e].wickColor})),t.chartProperties=null!==(s=t.chartProperties)&&void 0!==s?s:{paneProperties:void 0,scalesProperties:void 0},t.chartProperties.paneProperties.vertGridProperties=null!==(r=t.chartProperties.paneProperties.vertGridProperties)&&void 0!==r?r:t.chartProperties.paneProperties.gridProperties,t.chartProperties.paneProperties.horzGridProperties=null!==(n=t.chartProperties.paneProperties.horzGridProperties)&&void 0!==n?n:t.chartProperties.paneProperties.gridProperties;const o=this._model.properties().state().paneProperties.legendProperties;delete o.backgroundTransparency,t.chartProperties.paneProperties.legendProperties={...t.chartProperties.paneProperties.legendProperties,...o};const a=(0,kt.factoryDefaults)("chartproperties"),l=(0,Lt.deepExtend)({},a,t.chartProperties);this._newChartProps={paneProperties:Kt(l.paneProperties),scalesProperties:Yt(l.scalesProperties)}, +const{linestyle:t,linewidth:i,styleType:s,priceSource:r,...n}=e;return n}function Wt(e){const{linestyle:t,linewidth:i,priceSource:s,...r}=e;return r}function Ht(e){const{inputs:t,...i}=e;return i}function zt(e){const{inputs:t,...i}=e;return i}function Ut(e){const{inputs:t,...i}=e;return i}function jt(e){const{inputs:t,...i}=e;return i}function Gt(e){const{topLineWidth:t,bottomLineWidth:i,baseLevelPercentage:s,priceSource:r,...n}=e;return n}function qt(e){const{thinBars:t,inputs:i,...s}=e;return s}function $t(e){const{visible:t,style:i,symbol:s,interval:r,sessionId:n,highLowAvgPrice:o,showCountdown:a,bidAsk:l,prePostMarket:c,priceAxisProperties:h,candleStyle:d,hollowCandleStyle:u,haStyle:p,barStyle:_,hiloStyle:m,lineStyle:g,areaStyle:f,renkoStyle:v,pbStyle:S,kagiStyle:y,pnfStyle:b,baselineStyle:w,rangeStyle:P,esdShowDividends:C,esdShowSplits:T,esdShowEarnings:x,esdShowBreaks:I,showContinuousContractSwitches:M,showContinuousContractSwitchesBreaks:A,showFuturesContractExpiration:L,showLastNews:k,...E}=e;return{bidAsk:Et(l),prePostMarket:Dt(c),candleStyle:Bt(d),hollowCandleStyle:Vt(u),haStyle:Rt(p),barStyle:Nt(_),hiloStyle:Ot(m),lineStyle:Ft(g),areaStyle:Wt(f),renkoStyle:Ht(v),pbStyle:zt(S),kagiStyle:Ut(y),pnfStyle:jt(b),baselineStyle:Gt(w),rangeStyle:qt(P),...E}}function Yt(e){const{scaleSeriesOnly:t,showSeriesLastValue:i,showStudyLastValue:s,showSymbolLabels:r,showBidAskLabels:n,showPrePostMarketPriceLabel:o,showStudyPlotLabels:a,showFundamentalNameLabel:l,showFundamentalLastValue:c,seriesLastValueMode:h,...d}=e;return d}function Kt(e){const{topMargin:t,bottomMargin:i,...s}=e;return s}const Zt=new x.TranslatedString("apply chart theme",l.t(null,void 0,i(66568)));class Xt extends k.UndoCommand{constructor(e,t,i){var s,r,n;super(Zt),this._model=e,this._newSessionProps=t.sessions||(0,kt.factoryDefaults)("sessions"),["candleStyle","hollowCandleStyle","haStyle"].forEach((e=>{t.mainSourceProperties[e].wickUpColor=t.mainSourceProperties[e].wickUpColor||t.mainSourceProperties[e].wickColor,t.mainSourceProperties[e].wickDownColor=t.mainSourceProperties[e].wickDownColor||t.mainSourceProperties[e].wickColor})),t.chartProperties=null!==(s=t.chartProperties)&&void 0!==s?s:{paneProperties:void 0,scalesProperties:void 0},t.chartProperties.paneProperties.vertGridProperties=null!==(r=t.chartProperties.paneProperties.vertGridProperties)&&void 0!==r?r:t.chartProperties.paneProperties.gridProperties,t.chartProperties.paneProperties.horzGridProperties=null!==(n=t.chartProperties.paneProperties.horzGridProperties)&&void 0!==n?n:t.chartProperties.paneProperties.gridProperties;const o=this._model.properties().state().paneProperties.legendProperties;delete o.backgroundTransparency,t.chartProperties.paneProperties.legendProperties={...t.chartProperties.paneProperties.legendProperties,...o};const a=(0,kt.factoryDefaults)("chartproperties"),l=(0,Lt.deepExtend)({},a,t.chartProperties);this._newChartProps={paneProperties:Kt(l.paneProperties),scalesProperties:Yt(l.scalesProperties)}, e.timeScale().preserveBarSpacing()&&delete this._newChartProps.scalesProperties.barSpacing;const c=(0,kt.factoryDefaults)("chartproperties.mainSeriesProperties"),h=(0,Lt.deepExtend)({},c,t.mainSourceProperties);this._newSeriesProps=i?h:$t(h);const d=e.properties().state();this._oldChartProps={paneProperties:Kt(d.paneProperties),scalesProperties:Yt(d.scalesProperties)};const u=e.mainSeries().properties().state();this._oldSeriesProps=i?u:$t(u),this._oldSessionProps=this._model.sessions().properties().state()}undo(){this._merge(this._oldChartProps,this._oldSeriesProps,this._oldSessionProps),this._model.mainSeries().onChartStyleChanged(),this._model.updateScales(),this._model.chartThemeLoaded()}redo(){this._merge(this._newChartProps,this._newSeriesProps,this._newSessionProps),this._model.mainSeries().onChartStyleChanged(),this._model.updateScales(),this._model.chartThemeLoaded()}_merge(e,t,i){var s,r,n,o;const a=this._model;(0,ge.saveDefaultProperties)(!0),e&&(a.properties().childs().paneProperties.mergeAndFire(e.paneProperties),a.properties().childs().scalesProperties.mergeAndFire(e.scalesProperties)),"priceAxisProperties"in t&&a.mainSeries().priceScale().setMode({autoScale:null===(s=t.priceAxisProperties)||void 0===s?void 0:s.autoScale,percentage:null===(r=t.priceAxisProperties)||void 0===r?void 0:r.percentage,log:null===(n=t.priceAxisProperties)||void 0===n?void 0:n.log,lockScale:null===(o=t.priceAxisProperties)||void 0===o?void 0:o.lockScale}),a.mainSeries().properties().mergeAndFire(t),a.mainSeries().properties().saveDefaults(),a.mainSeries().createPaneView(),a.mainSeries().invalidateBarStylesCache(),a.recalculateAllPanes((0,ye.globalChangeEvent)()),a.fullUpdate(),a.properties().saveDefaults(),a.sessions().restoreState({properties:i},!1),(0,ge.saveDefaultProperties)(!1)}}const Jt=new x.TranslatedString("change resolution",l.t(null,void 0,i(32303)));class Qt extends k.UndoCommand{constructor(e,t,i){let s;super(Jt),this._sourceId=e.id();const r=(0,fe.isRangeStyle)(e.style()),n=p.Interval.isRange(t);!r&&n?s=11:r&&!n&&(s=(0,fe.getLastUsedStyle)()),this._newSymbolParams={interval:t,style:s},this._prevSymbolParams={symbol:e.symbol(),currency:e.currency(),unit:e.unit(),interval:e.interval(),style:e.style()},this._chartWidget=i}redo(){this._symbolSource().setSymbolParams(this._newSymbolParams),this._chartWidget.screen.show(!0)}undo(){this._symbolSource().setSymbolParams(this._prevSymbolParams),this._chartWidget.screen.show(!0)}_symbolSource(){return(0,o.ensureNotNull)(this._chartWidget.model().model().dataSourceForId(this._sourceId))}}var ei=i(21076),ti=i(76422) ;const ii=new x.TranslatedString("send {title} backward",l.t(null,void 0,i(16259))),si=new x.TranslatedString("bring {title} forward",l.t(null,void 0,i(56763))),ri=new x.TranslatedString("insert {title} after {target}",l.t(null,void 0,i(74055))),ni=new x.TranslatedString("insert {title} before {target}",l.t(null,void 0,i(11231))),oi=new x.TranslatedString("cut {title}",l.t(null,void 0,i(78755))),ai=new x.TranslatedString("cut sources",l.t(null,void 0,i(63649))),li=new x.TranslatedString("remove {title}",l.t(null,void 0,i(39859))),ci=new x.TranslatedString("remove drawings group",l.t(null,void 0,i(70653))),hi=new x.TranslatedString("move scale",l.t(null,void 0,i(4184))),di=new x.TranslatedString("stop syncing line tool(s)",l.t(null,void 0,i(57011))),ui=new x.TranslatedString("zoom out",l.t(null,void 0,i(9645))),pi=new x.TranslatedString("zoom in",l.t(null,void 0,i(19813))),_i=new x.TranslatedString("move drawing(s)",l.t(null,void 0,i(45356))),mi=new x.TranslatedString("load default drawing template",l.t(null,void 0,i(54597))),gi=new x.TranslatedString("apply factory defaults to selected sources",l.t(null,void 0,i(96996))),fi=new x.TranslatedString("change currency",l.t(null,void 0,i(22641))),vi=new x.TranslatedString("change unit",l.t(null,void 0,i(39028))),Si=new x.TranslatedString("clone line tools",l.t(null,void 0,i(5179))),yi=new x.TranslatedString("merge up",l.t(null,void 0,i(66143))),bi=new x.TranslatedString("merge down",l.t(null,void 0,i(62153))),wi=new x.TranslatedString("merge to pane",l.t(null,void 0,i(70746))),Pi=new x.TranslatedString("unmerge up",l.t(null,void 0,i(52540))),Ci=new x.TranslatedString("unmerge down",l.t(null,void 0,i(86949))),Ti=new x.TranslatedString("unmerge to new bottom pane",l.t(null,void 0,i(20057))),xi=new x.TranslatedString("move {title} to new right scale",l.t(null,void 0,i(45544))),Ii=new x.TranslatedString("move {title} to new left scale",l.t(null,void 0,i(11303))),Mi=new x.TranslatedString("make {title} no scale (Full screen)",l.t(null,void 0,i(74642))),Ai=new x.TranslatedString("scroll time",l.t(null,void 0,i(70009))),Li=new x.TranslatedString("scale time",l.t(null,void 0,i(35962))),ki=new x.TranslatedString("reset time scale",l.t(null,void 0,i(55064))),Ei=new x.TranslatedString("reset scales",l.t(null,void 0,i(21948))),Di=new x.TranslatedString("create {tool}",l.t(null,void 0,i(81791))),Bi=new x.TranslatedString("change {pointIndex} point",l.t(null,void 0,i(72032))),Vi=new x.TranslatedString("paste {title}",l.t(null,void 0,i(41601))),Ri=new x.TranslatedString("insert {title}",l.t(null,void 0,i(90743))),Ni=new x.TranslatedString("remove all studies",l.t(null,void 0,i(15516))),Oi=new x.TranslatedString("remove drawings",l.t(null,void 0,i(44656))),Fi=new x.TranslatedString("remove all studies and drawing tools",l.t(null,void 0,i(80171))),Wi=(new x.TranslatedString("turn line tools sharing off",l.t(null,void 0,i(28068))),new x.TranslatedString("share line tools in layout",l.t(null,void 0,i(77554))),new x.TranslatedString("share line tools globally",l.t(null,void 0,i(64704))), l.t(null,void 0,i(75139)),(0,C.getLogger)("Chart.ChartUndoModel"));function Hi(e,t){return{bringForwardEnabled:e.bringForwardEnabled||t.bringForwardEnabled,bringToFrontEnabled:e.bringToFrontEnabled||t.bringToFrontEnabled,sendBackwardEnabled:e.sendBackwardEnabled||t.sendBackwardEnabled,sendToBackEnabled:e.sendToBackEnabled||t.sendToBackEnabled}}function zi(e){return new x.TranslatedString(e.name(),e.title())}function Ui(){return(0,Ee.drawOnAllCharts)().value()?1:0}class ji extends(r()){constructor(e,t,i,s,r,n,o,a,l,c,h){super(),this._createLineCommand=null,this._initialTimeScrollState=null,this._initialTimeScrollPos=null,this._scalePriceInfo=null,this._currentSourceMoveCommand=null,this._currentLineChangeCommand=null,this._currentCustomMoveCommand=null,this._zoomStack=new m.UndoStack,this._lineToolsDoNotAffectChartInvalidation=new P.FeatureToggleWatchedValue("do_not_invalidate_chart_on_changing_line_tools",!1),this._chartWidget=n,this.m_model=new(_t())(e,t,i,s,r,this,a,l,c,h),this._undoHistory=o,this._lineToolsGroupController=new He({model:this._model.bind(this),pushUndoCommand:this._pushUndoCommand.bind(this),beginUndoMacro:(e,t)=>{this._undoHistory.beginUndoMacro(e).setCustomFlag("doesnt_affect_save",!!t)},endUndoMacro:this._undoHistory.endUndoMacro.bind(this._undoHistory),emitEvent:this.emitEvent.bind(this)})}undoHistory(){return this._undoHistory}setWatchedValue(e,t,i){this._undoHistory.setWatchedValue(e,t,i)}lineToolsGroupController(){return this._lineToolsGroupController}mergeAllScales(e){!function(e,t){e.beginUndoMacro("left"===t?M:A),e.model().panes().forEach((i=>{const s="left"===t?i.rightPriceScales():i.leftPriceScales(),r=("left"===t?i.leftPriceScales():i.rightPriceScales()).concat(s),n="overlay"===i.priceScalePosition(i.defaultPriceScale())?r[0]:i.defaultPriceScale();e.movePriceScale(i,n,t,0),r.forEach((t=>{if(t===n)return;let s=t.mainSource();for(;null!==s;){e.moveToScale(s,i,n,null,!0);const r=t.mainSource();if(r===s){L.logError("Loop detected while trying to merge scales");break}s=r}}))})),e.endUndoMacro(),e.model().fullUpdate()}(this,e)}movePriceScale(e,t,i,s){const r=new E(this._model(),e,t,i,s,hi);this._pushUndoCommand(r)}createLineTool({pane:e,point:t,linetool:i,properties:s,linkKey:r,ownerSource:n,disableSynchronization:a,sharingMode:l=Ui(),id:c}){if(("LineToolRegressionTrend"===i||"LineToolAnchoredVWAP"===i)&&!this.canCreateStudy())return(0,h.showTooManyStudiesNotice)(),null;const d=Di.format({tool:new x.TranslatedString(i,W.lineToolsLocalizedNames[i])});this.beginUndoMacro(d,this._lineToolsDoNotAffectChartInvalidation.value());const u=!a;this._createLineCommand=new z(this._model(),e,i,n||(0,o.ensureNotNull)(e.mainDataSource()),l,c);const p=this._createLineCommand.startCreatingLine(t,s,r||null),_=(0,o.ensureNotNull)(this._createLineCommand.line());let m=null;if(p&&(u&&this.finishLineTool(_),this._pushUndoCommand(this._createLineCommand),this._createLineCommand=null,m={points:_.normalizedPoints(),interval:this.mainSeries().interval()}),u&&void 0===r&&(0, Ee.drawOnAllCharts)().value()&&_.isSynchronizable()){const e=(0,o.ensureNotNull)(this.model().externalTimeStamp(t.index)),s={point:{price:t.price,timeStamp:e},linetool:i,properties:_.properties(),symbol:this.mainSeries().symbol(),model:this.model(),linkKey:(0,o.ensureNotNull)(_.linkKey().value()),finalState:m,id:_.id()};_.isFixed()&&(s.pointPositionPercents=_.calcPositionPercents()),(0,Ee.createLineTool)(s)}return this.endUndoMacro(),_}continueCreatingLine(e,t,i,s){const r=(0,o.ensureNotNull)(this._createLineCommand);this.beginUndoMacro(r.text(),this._lineToolsDoNotAffectChartInvalidation.value());const n=(0,o.ensureNotNull)(this._model().lineBeingCreated()),a=r.continueCreatingLine(e,t,i,s);let l=null;if(a&&(this.finishLineTool(n),this._pushUndoCommand(r),this._createLineCommand=null,l={points:n.normalizedPoints(),interval:this.mainSeries().interval()}),r.drawOnAllCharts()&&n.isSynchronizable()){const i=(0,o.ensureNotNull)(this._model().externalTimeStamp(e.index));(0,Ee.continueLineTool)({point:{price:e.price,timeStamp:i},envState:t,finalState:l,model:this._model()})}return this.endUndoMacro(),a}continueExternalLine(e,t,i){const s=(0,o.ensureNotNull)(this._createLineCommand),r=s.continueCreatingLine(e,t,i);return r&&(this._pushUndoCommand(s),this._createLineCommand=null),r}finishLineTool(e){this._model().finishLineTool(e)}pasteImageAsLineTool(e,t,i,s){return null}loadRange(e){const t=this._model(),i=t.mainSeries().getSupportedResolution(e.res),s={val:e.val,res:i},r=t.appliedTimeFrame().value();return(null===r||!_(r,s))&&(this._pushUndoCommand(new Pe(t,s)),!0)}unlinkLines(e){const t=this.model();this.beginUndoMacro(di,this._lineToolsDoNotAffectChartInvalidation.value());for(const i of e)null!==i.linkKey().value()&&(0,Ee.removeLineTool)({withUndo:!0,model:this.model(),symbol:i.symbol(),linkKey:(0,o.ensureNotNull)(i.linkKey().value()),sourceTitle:zi(i),lineToolState:i.state(!1),unlink:!0}),this._pushUndoCommand(new Pt(t,i));this.endUndoMacro()}zoomFromViewport(){const e=new bt((0,o.ensureDefined)(this._zoomStack.head()),this._zoomStack,!1);this._pushUndoCommand(e)}zoomToViewport(e,t,i,s,r){const n=new vt(this.m_model,e,t,i,s,r),o=new bt(n,this._zoomStack,!0);this._pushUndoCommand(o)}zoomStack(){return this._zoomStack}hoveredSource(){return this.m_model.hoveredSource()}setProperty(e,t,i,s){if(e&&e.value()!==t){const r=new Le(e,t,i,this.m_model,s);this._pushUndoCommand(r),this.emitEvent("setProperty")}}withMacro(e,t,i){const s=this.beginUndoMacro(e,i);try{t()}finally{this.endUndoMacro()}return s}barsMarksSources(){return this.m_model.barsMarksSources()}removeAllDrawingTools(){this.beginUndoMacro(Oi,!0),this._removeAllDrawingToolsImpl(),this.endUndoMacro()}removeAllStudiesAndDrawingTools(){this.beginUndoMacro(Fi),this._removeAllDrawingToolsImpl(),this._removeAllStudiesImpl(),this.endUndoMacro()}removeAllStudies(){this.beginUndoMacro(Ni),this._removeAllStudiesImpl(),this.endUndoMacro()}canZoomIn(){return this.model().canZoomIn()}canZoomOut(){return this.model().canZoomOut()}zoomOut(){const e=this.timeScale().width() ;if(this.canZoomOut()){try{this.beginUndoMacro(ui)}catch(e){return}(0,v.doAnimate)({to:e/5,onStep:e=>{this.startScaleTime(0),this.scaleTimeTo(e),this.endScaleTime()},onComplete:()=>this.endUndoMacro()})}}zoomIn(){const e=this.timeScale().width();if(this.canZoomIn()){try{this.beginUndoMacro(pi)}catch(e){return}(0,v.doAnimate)({to:e/5,onStep:e=>{this.startScaleTime(e),this.scaleTimeTo(0),this.endScaleTime()},onComplete:()=>this.endUndoMacro()})}}startMovingSources(e,t,i,s){e.filter((e=>e.doesMovingAffectsUndo())).length&&(this._currentSourceMoveCommand=new R(this.model(),e,_i,!1),e.every(f.isLineTool)&&this._currentSourceMoveCommand.setCustomFlag("doesnt_affect_save",this._lineToolsDoNotAffectChartInvalidation.value())),this.model().startMovingSources(e,t,i,new Map,s)}moveSources(e,t){this.model().moveSources(e,new Map,t)}endMovingSource(e,t){this.model().endMovingSources(e,void 0,t),null!==this._currentSourceMoveCommand&&(this._currentSourceMoveCommand.saveNewState(),this._pushUndoCommand(this._currentSourceMoveCommand)),this._currentSourceMoveCommand=null}startChangingLinetool(e,t,i,s,r){this._currentLineChangeCommand=new R(this.model(),[e],Bi.format({pointIndex:i}),!1),this._currentLineChangeCommand.setCustomFlag("doesnt_affect_save",this._lineToolsDoNotAffectChartInvalidation.value()),this.model().startChangingLinetool(e,t,i,s,r)}changeLinePoint(e,t){this.model().changeLinePoint(e,t)}endChangingLinetool(e){this.model().endChangingLinetool(e),null!==this._currentLineChangeCommand&&(this._currentLineChangeCommand.saveNewState(),this._pushUndoCommand(this._currentLineChangeCommand)),this._currentLineChangeCommand=null}setChartStyleProperty(e,t,i){if(e.value()!==t){const s=new be(e,t,this.mainSeries(),i,this.model(),this.chartWidget());this._pushUndoCommand(s),this.emitEvent("setChartStyleProperty"),(0,me.trackChartStyleChanged)(e.value())}}restorePropertiesForSource(e){(0,f.isLineTool)(e)?this._restoreLineToolFactoryDefaults(e):this._restoreStudyFactoryDefaults(e)}restoreLineToolsFactoryDefaults(e){1===e.length?this._restoreLineToolFactoryDefaults(e[0]):(this.beginUndoMacro(gi),e.forEach((e=>this._restoreLineToolFactoryDefaults(e))),this.endUndoMacro())}restoreState(e,t,i){return this.m_model.restoreState(e,t,i)}async clipboardCopy(e,t=this.selection().dataSources()){if(!(0,w.enabled)("datasource_copypaste"))return;const i=t.filter((e=>e.copiable()));if(0===i.length)return;for(const e of i)if((0,T.isStudy)(e)&&e.isChildStudy())throw new Error("Can not copy child study");const s=(0,g.clipboardDataForSources)(this._model().id(),i);return null!==s?e.write({app:JSON.stringify(s),text:s.title}):void 0}async clipboardCut(e,t=this.selection().dataSources()){if(!(0,w.enabled)("datasource_copypaste"))return;const i=t.filter((e=>e.copiable()));if(0===i.length)return;await this.clipboardCopy(e,i);const s=i.filter((e=>e.isUserDeletable()));if(0===s.length)return;const r=(1===s.length?oi:ai).format({title:zi(s[0])});this.beginUndoMacro(r),this.m_model.selectionMacro((()=>this.removeSources(s,!1,r)),!0),this.endUndoMacro()} -async clipboardPaste(e,t){let i=null;if((0,w.enabled)("datasource_copypaste")&&(i=i||await e.read(),i.app)){const e=JSON.parse(i.app);if(null!==this.pasteSourceFromClip(t,e))return}await this._processSpecialLineToolsContents(e,i,t)}applyStudyTemplate(e,t){const i=new Ye(this._model(),e,t);this._pushUndoCommand(i)}createStudyInserter(e,t,i){const s={createStudy:(e,t,i,s,r,n,o,a,l,c,h)=>this.checkIfFeatureAvailable(e,n)?((0,y.trackEvent)("studies","Study_"+e.id),"Compare@tv-basicstudies"===e.id&&(0,y.trackEvent)("compare","symbol:"+t.symbol),this._insertStudy(e,t,s,r,n,o,a,l,c,null,h)):(Wi.logNormal("Cannot insert study "+e.id),null)};void 0!==i&&(s.createStub=()=>this.m_model.insertStudyStub(i).id(),s.removeStub=e=>this.m_model.removeStudyStub(e));const r=new ei.StudyInserter(e,this.m_model.studyMetaInfoRepository(),s);return r.setParentSources(t),r}replayStatus(){return this.m_model.replayStatus()}setReplayStatus(e){return this.m_model.setReplayStatus(e)}startCustomMoving(e,t,i){this._currentCustomMoveCommand=new ht(this.model(),e,t,i)}customMoveBeingProcessed(){return null!==this._currentCustomMoveCommand}processCustomMove(e){(0,o.ensureNotNull)(this._currentCustomMoveCommand).move(e)}endCustomMoving(){null!==this._currentCustomMoveCommand&&this._currentCustomMoveCommand.hasChanges()&&(this._pushUndoCommand(this._currentCustomMoveCommand),this._currentCustomMoveCommand=null)}panes(){return this.m_model.panes()}cloneLineTools(e,t){for(let t=0;t(0,o.ensureNotNull)(this.model().dataSourceForId(e))));this.copyToOtherCharts(e)}return this.endUndoMacro(),this.emitEvent("cloneLineTools"),i.newIds()}removeSource(e,t,i){this.lineBeingCreated()!==e?this.removeSources([e],t,li.format({title:zi(e)}),i):this.cancelCreatingLine()}removeSelectedSources(){const e=this._model().selection().dataSources();if(!e.length)return;const t=(e.length>1?ci:li).format({title:zi(e[0])});this.removeSources(e,!1,t)}removeSources(e,t,i,s){s||(e=e.filter((e=>e.isUserDeletable())));const r=this._model(),n=r.lineToolsGroupModel(),a=e.every(f.isLineTool)&&this._lineToolsDoNotAffectChartInvalidation.value();this.beginUndoMacro(i,a),r.selectionMacro((s=>{const a=new Map;e.forEach((e=>{if((0,f.isLineTool)(e)){const t=n.groupForLineTool(e);if(null!==t){const i=a.get(t)||[];i.push(e),a.set(t,i)}null!==e.linkKey().value()&&(0,Ee.removeLineTool)({withUndo:!0,model:this.model(),linkKey:(0,o.ensureNotNull)(e.linkKey().value()),symbol:this.model().mainSeries().symbol(),lineToolState:e.state(!1),sourceTitle:zi(e)})}})),a.forEach(((e,t)=>{const i=new V.ExcludeLineToolsFromGroupUndoCommand(r,t,e);this._pushUndoCommand(i)}));const l=new B.RemoveSourcesCommand(r,e,i),c=l.removedIds();this._pushUndoCommand(l),!t&&c.length>0&&(1===c.length?this.emitEvent("removeSource",[c[0]]):this.emitEvent("removeSources",[c])) -}),!0),this.endUndoMacro()}removeUnloadedLineTool({lineToolsSynchronizer:e,sourceTitle:t,linkKey:i,symbol:s,state:r,withUndo:n,unlink:o}){}async scrollToLineTool(e){const t=this.timeScale().logicalRange();if(null===t)return;const i=this.timeScale().barSpacing();let s=t.left();const r=e.points().map((e=>e.index)),n=this.timeScale().points().range().value();if(null===n)return;let a=n.firstIndex;const l=n.lastIndex,h=t.length()/2;if(0===r.length||r.some((e=>t.contains(e))))return;const d=()=>{const t=e.points().map((e=>e.index)),i=t.filter((e=>e<=l)).reduce(((e,t)=>null===e?t:Math.max(e,t)),null);return null!==i?i:t.reduce(((e,t)=>Math.min(e,t)))};let u,p=d();if(a-h>p){const t=e.points().map((e=>e.time)).filter(I.notUndefined).map((e=>e.valueOf()));if(0===t.length)return;const i=t.reduce(((e,t)=>Math.min(e,t)),t[0]);await this.model().gotoTime(i),p=d();const r=(0,o.ensureNotNull)(this.timeScale().logicalRange());if(r.contains(p))return;s=r.left(),a=(0,o.ensureNotNull)(this.timeScale().points().range().value()).firstIndex}a-h>p?(u=(s-a+h)*i,this.mainSeries().setGotoDateResult({timestamp:(0,o.ensureNotNull)(this.timeScale().points().valueAt(a)),eod:!0})):u=(s-p+1+h)*i,this.startScrollTime(0),(0,v.doAnimate)({onStep:(e,t)=>this.scrollTimeTo(t),from:0,to:Math.round(u),easing:c.easingFunc.easeInOutCubic,duration:c.dur,onComplete:()=>this.endScrollTime()})}mergeSourceUp(e){const t=new O.MergeUpUndoCommand(this._model(),e,yi);this._mergeUnmergeSource(e,t)}mergeSourceDown(e){const t=new O.MergeDownUndoCommand(this._model(),e,bi);this._mergeUnmergeSource(e,t)}mergeToPane(e,t,i){const s=this._model().panes().indexOf(t),r=new O.MergeToTargetPane(this._model(),e,s,wi,i);this._mergeUnmergeSource(e,r)}unmergeSourceUp(e){const t=new N.UnmergeUpUndoCommand(this._model(),e,Pi);this._mergeUnmergeSource(e,t)}unmergeSourceDown(e){const t=new N.UnmergeDownUndoCommand(this._model(),e,Ci);this._mergeUnmergeSource(e,t)}unmergeToNewBottomPane(e){const t=new N.UnmergeToNewBottomPane(this._model(),e,Ti);this._mergeUnmergeSource(e,t)}availableZOrderOperations(e){const t=this._model().lineToolsGroupModel(),i=e.filter(f.isLineTool),s=i.map((e=>t.groupForLineTool(e)));(0,o.assert)(new Set(s).size<=1,"Cannot move line tools from different group");const r=0===s.length?null:s[0];let n={bringForwardEnabled:!1,bringToFrontEnabled:!1,sendBackwardEnabled:!1,sendToBackEnabled:!1};const a=new Set(i);for(const t of(0,F.sortSources)(e)){if((0,f.isLineTool)(t)&&null!==r){const e=(0,F.sortSources)(r.lineTools().filter((e=>!a.has(e)||e===t)));n=Hi(n,{bringForwardEnabled:t!==e[e.length-1],bringToFrontEnabled:t!==e[e.length-1],sendBackwardEnabled:t!==e[0],sendToBackEnabled:t!==e[0]});continue}const e=(0,o.ensureNotNull)(this._model().paneForSource(t)).sourcesByGroup().allExceptSpecialSources();if(0===e.length)continue;const i=t.zorder(),s=e[0].zorder(),l=e[e.length-1].zorder();n=Hi(n,{bringForwardEnabled:i!==l,bringToFrontEnabled:i!==l,sendBackwardEnabled:i!==s,sendToBackEnabled:i!==s})}return n}sendToBack(e){ -if(!this.availableZOrderOperations(e).sendToBackEnabled)throw new Error("Send to back operation is unavailable");let t=null;const i=e[0];if((0,f.isLineTool)(i)){const s=this._model().lineToolsGroupModel().groupForLineTool(i);if(null!==s){const i=s.lineTools();t=new re(this.model(),(0,F.sortSources)(e),i[0])}}null===t&&(t=new ee(this.model(),(0,F.sortSources)(e))),this._pushUndoCommand(t),this.emitEvent("changeZOrder",[e])}bringToFront(e){if(!this.availableZOrderOperations(e).bringToFrontEnabled)throw new Error("Bring to front operation is unavailable");let t=null;const i=e[0];if((0,f.isLineTool)(i)){const s=this._model().lineToolsGroupModel().groupForLineTool(i);if(null!==s){const i=s.lineTools();t=new ie(this.model(),(0,F.sortSources)(e),i[i.length-1])}}null===t&&(t=new Q(this.model(),(0,F.sortSources)(e))),this._pushUndoCommand(t),this.emitEvent("changeZOrder",[e])}sendBackward(e){if(!this.availableZOrderOperations(e).sendBackwardEnabled)throw new Error("Send backward operation is unavailable");const t=ii.format({title:zi(e[0])});this._sendBackOrBringForward(t,(0,F.sortSources)(e),((e,t)=>new oe(this.model(),e,t)))}bringForward(e){if(!this.availableZOrderOperations(e).bringForwardEnabled)throw new Error("Bring forward operation is unavailable");const t=si.format({title:zi(e[0])});this._sendBackOrBringForward(t,(0,F.sortSources)(e),((e,t)=>new le(this.model(),e,t)))}insertAfter(e,t){e=(0,F.sortSources)(e);const i=ri.format({title:zi(e[0]),target:zi(t)});this._insertAfterOrBefore(i,e,t,(()=>new ie(this.model(),e,t)))}insertBefore(e,t){e=(0,F.sortSources)(e);const i=ni.format({title:zi(e[0]),target:zi(t)});this._insertAfterOrBefore(i,e,t,(()=>new re(this.model(),e,t)))}detachToRight(e,t){(0,y.trackEvent)("Chart","Move to new right scale");const i=xi.format({title:zi(e)}),s=new tt.MoveToNewPriceScaleUndoCommand(this.model(),e,t,"right",i);this._pushUndoCommand(s),this.emitEvent("moveSource",[e])}detachToLeft(e,t){(0,y.trackEvent)("Chart","Move to new left scale");const i=Ii.format({title:zi(e)}),s=new tt.MoveToNewPriceScaleUndoCommand(this.model(),e,t,"left",i);this._pushUndoCommand(s),this.emitEvent("moveSource",[e])}detachNoScale(e,t){(0,y.trackEvent)("Chart","Make source no scale");const i=Mi.format({title:zi(e)}),s=new tt.MoveToNewPriceScaleUndoCommand(this.model(),e,t,"overlay",i);this._pushUndoCommand(s),this.emitEvent("moveSource",[e])}moveToScale(e,t,i,s,r){(0,y.trackEvent)("Chart","Move source to target scale"),this.beginUndoMacro(s);const n=new tt.MoveToExistingPriceScaleUndoCommand(this.model(),e,t,i,s),o=r?null:(0,b.sourceNewCurrencyOnPinningToPriceScale)(e,i,this._model()),a=r?null:(0,mt.sourceNewUnitOnPinningToPriceScale)(e,i,this._model());this._pushUndoCommand(n),null!==o&&this.setPriceScaleCurrency(i,o),null!==a&&this.setPriceScaleUnit(i,a),this.endUndoMacro(),this.emitEvent("moveSource",[e])}startScrollTime(e){const t=this.timeScale();this._initialTimeScrollState={rightOffset:t.rightOffset(),barSpacing:t.barSpacing()},this._initialTimeScrollPos=e,this.model().startScrollTime(e)}scrollTimeTo(e){ -null!==this._initialTimeScrollPos&&null!==this._initialTimeScrollState&&Math.abs(e-this._initialTimeScrollPos)>20&&(this._pushUndoCommand(new _e.TimeScaleChangeUndoCommand(this.model(),this._initialTimeScrollState,Ai)),this._initialTimeScrollPos=null,this._initialTimeScrollState=null),this.model().scrollTimeTo(e)}endScrollTime(){this.model().endScrollTime(),this._initialTimeScrollPos=null,this._initialTimeScrollState=null}startScaleTime(e){const t=this.timeScale(),i={rightOffset:t.rightOffset(),barSpacing:t.barSpacing()};this._pushUndoCommand(new _e.TimeScaleChangeUndoCommand(this.model(),i,Li)),this.model().startScaleTime(e)}scaleTimeTo(e){this.model().scaleTimeTo(e)}endScaleTime(){this.model().endScaleTime()}resetTimeScale(){const e=this.timeScale(),t={rightOffset:e.rightOffset(),barSpacing:e.barSpacing()};this._pushUndoCommand(new _e.TimeScaleChangeUndoCommand(this.model(),t,ki)),this.model().resetTimeScale()}startScalePrice(e,t,i,s){this._scalePriceInfo={priceScaleState:t.state(),tryMergeConsecutiveScales:s},this.model().startScalePrice(e,t,i)}scalePriceTo(e,t,i){this.model().scalePriceTo(e,t,i)}endScalePrice(e,t){this.model().endScalePrice(e,t);const i=(0,o.ensureNotNull)(this._scalePriceInfo);(0,n.default)(i.priceScaleState,t.state())||this._pushUndoCommand(new gt.PriceScaleChangeUndoCommand(this.model(),e,t,i.priceScaleState,i.tryMergeConsecutiveScales)),this._scalePriceInfo=null}startTwoPointsScalePrice(e,t,i,s,r){this._scalePriceInfo={priceScaleState:t.state(),tryMergeConsecutiveScales:r},this.model().startTwoPointsScalePrice(e,t,i,s)}twoPointsScalePriceTo(e,t,i,s){this.model().twoPointsScalePriceTo(e,t,i,s)}endTwoPointsScalePrice(e,t){this.model().endTwoPointsScalePrice(e,t);const i=(0,o.ensureNotNull)(this._scalePriceInfo);(0,n.default)(i.priceScaleState,t.state())||this._pushUndoCommand(new gt.PriceScaleChangeUndoCommand(this.model(),e,t,i.priceScaleState,i.tryMergeConsecutiveScales)),this._scalePriceInfo=null}resetPriceScale(e,t){const i=t.state();this.model().resetPriceScale(e,t),(0,n.default)(i,t.state())||this._pushUndoCommand(new gt.PriceScaleChangeUndoCommand(this.m_model,e,t,i))}rearrangePanes(e,t){const i=new pe(this._model(),e,t);this._pushUndoCommand(i)}movePane(e,t){const i=new pe(this._model(),e,t);this._pushUndoCommand(i)}readOnly(){return this.m_model.readOnly()}checkIfFeatureAvailable(e,t){let i=this.canCreateStudy();const s=t.length>0;return!this.readOnly()&&s&&(i=this.canCreateStudy(!0)),!!i||(s||(0,h.showTooManyStudiesNotice)(),!1)}pasteSourceFromClip(e,t,i){const s=t;if(!s||0===s.sources.length)return null;const r=e||(0,o.ensureNotNull)(this.model().paneForSource(this.mainSeries()));if(!s.sources.some((e=>"drawing"!==e.type||null!==r.clipboardLineToolOwnerSource(e.source.id))))return null;this.beginUndoMacro(Vi.format({title:s.title}));let n=0;const a=[],l=[];for(const t of s.sources)if("drawing"===t.type&&null!==r.clipboardLineToolOwnerSource(t.source.id)){const e=this.pasteLineTool(r,t);n<5&&((0,me.trackDrawingPasted)(e),n+=1),l.push(e),a.push(e) -}else"study"===t.type&&t.source&&t.source.metaInfo&&this.checkIfFeatureAvailable(new d.StudyMetaInfo(t.source.metaInfo),[])&&a.push(this.pasteStudy(t,i?e:void 0));return l.length&&this.selectionMacro((e=>{e.clearSelection(),l.forEach((t=>{e.addSourceToSelection(t,null)}))})),this.endUndoMacro(),a}pasteLineTool(e,t,i,s){t.source.state.intervalsVisibilities=(0,At.mergeIntervalVisibilitiesDefaults)(t.source.state.intervalsVisibilities),(0,At.makeIntervalsVisibilitiesVisibleAtInterval)(t.source.state.intervalsVisibilities,p.Interval.parse(this.model().mainSeries().interval()));const r=new Je(this.model(),t,e,i,s);this._pushUndoCommand(r);const n=r.source();return r.needCopyToOtherCharts()&&this.copyToOtherCharts([n]),this.selectionMacro((e=>{e.clearSelection(),e.addSourceToSelection(n,null)})),n}pasteStudy(e,t){const i=new ot(this.model(),e,null==t?void 0:t.id());this._pushUndoCommand(i);const s=(0,o.ensureNotNull)(i.state()).id;return(0,ti.emit)("study_event",s,"paste_study"),(0,o.ensureNotNull)(this._model().dataSourceForId(s))}setPriceScaleCurrency(e,t){const i=new Qe.SetPriceScaleCurrencyUndoCommand(e,t,this.chartWidget(),fi);this._pushUndoCommand(i)}setPriceScaleUnit(e,t){const i=new et.SetPriceScaleUnitUndoCommand(e,t,this.chartWidget(),vi);this._pushUndoCommand(i)}setSymbol(e,t){e.symbol()!==t&&this._pushUndoCommand(new st(e,t,this.chartWidget()))}setResolution(e,t){e===this.mainSeries()&&(t=e.getSupportedResolution(t)),p.Interval.isEqual(e.interval(),t)||this._pushUndoCommand(new Qt(e,t,this.chartWidget()))}chartLoadTheme(e,t,i){const s=new Zt(this.model(),e,t);i?s.redo():this._pushUndoCommand(s)}isJustClonedChart(){return this._chartWidget.isJustClonedChart()}copyToOtherCharts(e){const t=this.mainSeries(),i=t.syncModel(),s=this.timeScale();if(i)for(const r of e){if(!r.isSynchronizable())continue;const e=r.linkKey().value()||(0,S.randomHash)();r.linkKey().setValue(e);const n=r.state(!1),a=r.normalizedPoints(),l=r.properties().interval.value(),c=t.interval();let h;if(p.Interval.isEqual(l,c))h=a.map((e=>{const t=(0,o.ensureNotNull)(s.timePointToIndex(e.time_t))+e.offset;return{price:e.price,timeStamp:(0,o.ensureNotNull)(this.model().externalTimeStamp(t))}}));else{const e=i.createNewModelWithResolution(l);h=a.map((t=>({price:t.price,timeStamp:0===t.offset?t.time_t:e.projectTime(t.time_t,t.offset)})))}const d={...n,id:r.id(),linkKey:e,points:h,linetool:r.toolname,model:this.model(),symbol:t.symbol(),finalState:{points:a,interval:l},pointPositionPercents:r.isFixed()?r.calcPositionPercents():void 0,sharingMode:r.sharingMode().value()};(0,Ee.copyLineTool)(d)}}addPaneStretchFactorUndoCommand(e,t,i,s){const r=new at(this.model(),e,t,i,s);this._pushUndoCommand(r)}paneForSource(e){return this.m_model.paneForSource(e)}destroy(){this._lineToolsDoNotAffectChartInvalidation.destroy(),this.m_model.destroy()}moveSelectedToolsLeft(){return this._moveSelectedTools(2)}moveSelectedToolsUp(){return this._moveSelectedTools(0)}moveSelectedToolsRight(){return this._moveSelectedTools(3)}moveSelectedToolsDown(){ +async clipboardPaste(e,t){let i=null;if((0,w.enabled)("datasource_copypaste")&&(i=i||await e.read(),i.app)){const e=JSON.parse(i.app);if(null!==this.pasteSourceFromClip(t,e))return}await this._processSpecialLineToolsContents(e,i,t)}applyStudyTemplate(e,t){const i=new Ye(this._model(),e,t);this._pushUndoCommand(i),(0,ti.emit)("load_study_template")}createStudyInserter(e,t,i){const s={createStudy:(e,t,i,s,r,n,o,a,l,c,h)=>this.checkIfFeatureAvailable(e,n)?((0,y.trackEvent)("studies","Study_"+e.id),"Compare@tv-basicstudies"===e.id&&(0,y.trackEvent)("compare","symbol:"+t.symbol),this._insertStudy(e,t,s,r,n,o,a,l,c,null,h)):(Wi.logNormal("Cannot insert study "+e.id),null)};void 0!==i&&(s.createStub=()=>this.m_model.insertStudyStub(i).id(),s.removeStub=e=>this.m_model.removeStudyStub(e));const r=new ei.StudyInserter(e,this.m_model.studyMetaInfoRepository(),s);return r.setParentSources(t),r}replayStatus(){return this.m_model.replayStatus()}setReplayStatus(e){return this.m_model.setReplayStatus(e)}startCustomMoving(e,t,i){this._currentCustomMoveCommand=new ht(this.model(),e,t,i)}customMoveBeingProcessed(){return null!==this._currentCustomMoveCommand}processCustomMove(e){(0,o.ensureNotNull)(this._currentCustomMoveCommand).move(e)}endCustomMoving(){null!==this._currentCustomMoveCommand&&this._currentCustomMoveCommand.hasChanges()&&(this._pushUndoCommand(this._currentCustomMoveCommand),this._currentCustomMoveCommand=null)}panes(){return this.m_model.panes()}cloneLineTools(e,t){for(let t=0;t(0,o.ensureNotNull)(this.model().dataSourceForId(e))));this.copyToOtherCharts(e)}return this.endUndoMacro(),this.emitEvent("cloneLineTools"),i.newIds()}removeSource(e,t,i){this.lineBeingCreated()!==e?this.removeSources([e],t,li.format({title:zi(e)}),i):this.cancelCreatingLine()}removeSelectedSources(){const e=this._model().selection().dataSources();if(!e.length)return;const t=(e.length>1?ci:li).format({title:zi(e[0])});this.removeSources(e,!1,t)}removeSources(e,t,i,s){s||(e=e.filter((e=>e.isUserDeletable())));const r=this._model(),n=r.lineToolsGroupModel(),a=e.every(f.isLineTool)&&this._lineToolsDoNotAffectChartInvalidation.value();this.beginUndoMacro(i,a),r.selectionMacro((s=>{const a=new Map;e.forEach((e=>{if((0,f.isLineTool)(e)){const t=n.groupForLineTool(e);if(null!==t){const i=a.get(t)||[];i.push(e),a.set(t,i)}null!==e.linkKey().value()&&(0,Ee.removeLineTool)({withUndo:!0,model:this.model(),linkKey:(0,o.ensureNotNull)(e.linkKey().value()),symbol:this.model().mainSeries().symbol(),lineToolState:e.state(!1),sourceTitle:zi(e)})}})),a.forEach(((e,t)=>{const i=new V.ExcludeLineToolsFromGroupUndoCommand(r,t,e);this._pushUndoCommand(i)}));const l=new B.RemoveSourcesCommand(r,e,i),c=l.removedIds();this._pushUndoCommand(l), +!t&&c.length>0&&(1===c.length?this.emitEvent("removeSource",[c[0]]):this.emitEvent("removeSources",[c]))}),!0),this.endUndoMacro()}removeUnloadedLineTool({lineToolsSynchronizer:e,sourceTitle:t,linkKey:i,symbol:s,state:r,withUndo:n,unlink:o}){}async scrollToLineTool(e){const t=this.timeScale().logicalRange();if(null===t)return;const i=this.timeScale().barSpacing();let s=t.left();const r=e.points().map((e=>e.index)),n=this.timeScale().points().range().value();if(null===n)return;let a=n.firstIndex;const l=n.lastIndex,h=t.length()/2;if(0===r.length||r.some((e=>t.contains(e))))return;const d=()=>{const t=e.points().map((e=>e.index)),i=t.filter((e=>e<=l)).reduce(((e,t)=>null===e?t:Math.max(e,t)),null);return null!==i?i:t.reduce(((e,t)=>Math.min(e,t)))};let u,p=d();if(a-h>p){const t=e.points().map((e=>e.time)).filter(I.notUndefined).map((e=>e.valueOf()));if(0===t.length)return;const i=t.reduce(((e,t)=>Math.min(e,t)),t[0]);await this.model().gotoTime(i),p=d();const r=(0,o.ensureNotNull)(this.timeScale().logicalRange());if(r.contains(p))return;s=r.left(),a=(0,o.ensureNotNull)(this.timeScale().points().range().value()).firstIndex}a-h>p?(u=(s-a+h)*i,this.mainSeries().setGotoDateResult({timestamp:(0,o.ensureNotNull)(this.timeScale().points().valueAt(a)),eod:!0})):u=(s-p+1+h)*i,this.startScrollTime(0),(0,v.doAnimate)({onStep:(e,t)=>this.scrollTimeTo(t),from:0,to:Math.round(u),easing:c.easingFunc.easeInOutCubic,duration:c.dur,onComplete:()=>this.endScrollTime()})}mergeSourceUp(e){const t=new O.MergeUpUndoCommand(this._model(),e,yi);this._mergeUnmergeSource(e,t)}mergeSourceDown(e){const t=new O.MergeDownUndoCommand(this._model(),e,bi);this._mergeUnmergeSource(e,t)}mergeToPane(e,t,i){const s=this._model().panes().indexOf(t),r=new O.MergeToTargetPane(this._model(),e,s,wi,i);this._mergeUnmergeSource(e,r)}unmergeSourceUp(e){const t=new N.UnmergeUpUndoCommand(this._model(),e,Pi);this._mergeUnmergeSource(e,t)}unmergeSourceDown(e){const t=new N.UnmergeDownUndoCommand(this._model(),e,Ci);this._mergeUnmergeSource(e,t)}unmergeToNewBottomPane(e){const t=new N.UnmergeToNewBottomPane(this._model(),e,Ti);this._mergeUnmergeSource(e,t)}availableZOrderOperations(e){const t=this._model().lineToolsGroupModel(),i=e.filter(f.isLineTool),s=i.map((e=>t.groupForLineTool(e)));(0,o.assert)(new Set(s).size<=1,"Cannot move line tools from different group");const r=0===s.length?null:s[0];let n={bringForwardEnabled:!1,bringToFrontEnabled:!1,sendBackwardEnabled:!1,sendToBackEnabled:!1};const a=new Set(i);for(const t of(0,F.sortSources)(e)){if((0,f.isLineTool)(t)&&null!==r){const e=(0,F.sortSources)(r.lineTools().filter((e=>!a.has(e)||e===t)));n=Hi(n,{bringForwardEnabled:t!==e[e.length-1],bringToFrontEnabled:t!==e[e.length-1],sendBackwardEnabled:t!==e[0],sendToBackEnabled:t!==e[0]});continue}const e=(0,o.ensureNotNull)(this._model().paneForSource(t)).sourcesByGroup().allExceptSpecialSources();if(0===e.length)continue;const i=t.zorder(),s=e[0].zorder(),l=e[e.length-1].zorder();n=Hi(n,{bringForwardEnabled:i!==l,bringToFrontEnabled:i!==l,sendBackwardEnabled:i!==s, +sendToBackEnabled:i!==s})}return n}sendToBack(e){if(!this.availableZOrderOperations(e).sendToBackEnabled)throw new Error("Send to back operation is unavailable");let t=null;const i=e[0];if((0,f.isLineTool)(i)){const s=this._model().lineToolsGroupModel().groupForLineTool(i);if(null!==s){const i=s.lineTools();t=new re(this.model(),(0,F.sortSources)(e),i[0])}}null===t&&(t=new ee(this.model(),(0,F.sortSources)(e))),this._pushUndoCommand(t),this.emitEvent("changeZOrder",[e])}bringToFront(e){if(!this.availableZOrderOperations(e).bringToFrontEnabled)throw new Error("Bring to front operation is unavailable");let t=null;const i=e[0];if((0,f.isLineTool)(i)){const s=this._model().lineToolsGroupModel().groupForLineTool(i);if(null!==s){const i=s.lineTools();t=new ie(this.model(),(0,F.sortSources)(e),i[i.length-1])}}null===t&&(t=new Q(this.model(),(0,F.sortSources)(e))),this._pushUndoCommand(t),this.emitEvent("changeZOrder",[e])}sendBackward(e){if(!this.availableZOrderOperations(e).sendBackwardEnabled)throw new Error("Send backward operation is unavailable");const t=ii.format({title:zi(e[0])});this._sendBackOrBringForward(t,(0,F.sortSources)(e),((e,t)=>new oe(this.model(),e,t)))}bringForward(e){if(!this.availableZOrderOperations(e).bringForwardEnabled)throw new Error("Bring forward operation is unavailable");const t=si.format({title:zi(e[0])});this._sendBackOrBringForward(t,(0,F.sortSources)(e),((e,t)=>new le(this.model(),e,t)))}insertAfter(e,t){e=(0,F.sortSources)(e);const i=ri.format({title:zi(e[0]),target:zi(t)});this._insertAfterOrBefore(i,e,t,(()=>new ie(this.model(),e,t)))}insertBefore(e,t){e=(0,F.sortSources)(e);const i=ni.format({title:zi(e[0]),target:zi(t)});this._insertAfterOrBefore(i,e,t,(()=>new re(this.model(),e,t)))}detachToRight(e,t){(0,y.trackEvent)("Chart","Move to new right scale");const i=xi.format({title:zi(e)}),s=new tt.MoveToNewPriceScaleUndoCommand(this.model(),e,t,"right",i);this._pushUndoCommand(s),this.emitEvent("moveSource",[e])}detachToLeft(e,t){(0,y.trackEvent)("Chart","Move to new left scale");const i=Ii.format({title:zi(e)}),s=new tt.MoveToNewPriceScaleUndoCommand(this.model(),e,t,"left",i);this._pushUndoCommand(s),this.emitEvent("moveSource",[e])}detachNoScale(e,t){(0,y.trackEvent)("Chart","Make source no scale");const i=Mi.format({title:zi(e)}),s=new tt.MoveToNewPriceScaleUndoCommand(this.model(),e,t,"overlay",i);this._pushUndoCommand(s),this.emitEvent("moveSource",[e])}moveToScale(e,t,i,s,r){(0,y.trackEvent)("Chart","Move source to target scale"),this.beginUndoMacro(s);const n=new tt.MoveToExistingPriceScaleUndoCommand(this.model(),e,t,i,s),o=r?null:(0,b.sourceNewCurrencyOnPinningToPriceScale)(e,i,this._model()),a=r?null:(0,mt.sourceNewUnitOnPinningToPriceScale)(e,i,this._model());this._pushUndoCommand(n),null!==o&&this.setPriceScaleCurrency(i,o),null!==a&&this.setPriceScaleUnit(i,a),this.endUndoMacro(),this.emitEvent("moveSource",[e])}startScrollTime(e){const t=this.timeScale();this._initialTimeScrollState={rightOffset:t.rightOffset(),barSpacing:t.barSpacing()},this._initialTimeScrollPos=e, +this.model().startScrollTime(e)}scrollTimeTo(e){null!==this._initialTimeScrollPos&&null!==this._initialTimeScrollState&&Math.abs(e-this._initialTimeScrollPos)>20&&(this._pushUndoCommand(new _e.TimeScaleChangeUndoCommand(this.model(),this._initialTimeScrollState,Ai)),this._initialTimeScrollPos=null,this._initialTimeScrollState=null),this.model().scrollTimeTo(e)}endScrollTime(){this.model().endScrollTime(),this._initialTimeScrollPos=null,this._initialTimeScrollState=null}startScaleTime(e){const t=this.timeScale(),i={rightOffset:t.rightOffset(),barSpacing:t.barSpacing()};this._pushUndoCommand(new _e.TimeScaleChangeUndoCommand(this.model(),i,Li)),this.model().startScaleTime(e)}scaleTimeTo(e){this.model().scaleTimeTo(e)}endScaleTime(){this.model().endScaleTime()}resetTimeScale(){const e=this.timeScale(),t={rightOffset:e.rightOffset(),barSpacing:e.barSpacing()};this._pushUndoCommand(new _e.TimeScaleChangeUndoCommand(this.model(),t,ki)),this.model().resetTimeScale()}startScalePrice(e,t,i,s){this._scalePriceInfo={priceScaleState:t.state(),tryMergeConsecutiveScales:s},this.model().startScalePrice(e,t,i)}scalePriceTo(e,t,i){this.model().scalePriceTo(e,t,i)}endScalePrice(e,t){this.model().endScalePrice(e,t);const i=(0,o.ensureNotNull)(this._scalePriceInfo);(0,n.default)(i.priceScaleState,t.state())||this._pushUndoCommand(new gt.PriceScaleChangeUndoCommand(this.model(),e,t,i.priceScaleState,i.tryMergeConsecutiveScales)),this._scalePriceInfo=null}startTwoPointsScalePrice(e,t,i,s,r){this._scalePriceInfo={priceScaleState:t.state(),tryMergeConsecutiveScales:r},this.model().startTwoPointsScalePrice(e,t,i,s)}twoPointsScalePriceTo(e,t,i,s){this.model().twoPointsScalePriceTo(e,t,i,s)}endTwoPointsScalePrice(e,t){this.model().endTwoPointsScalePrice(e,t);const i=(0,o.ensureNotNull)(this._scalePriceInfo);(0,n.default)(i.priceScaleState,t.state())||this._pushUndoCommand(new gt.PriceScaleChangeUndoCommand(this.model(),e,t,i.priceScaleState,i.tryMergeConsecutiveScales)),this._scalePriceInfo=null}resetPriceScale(e,t){const i=t.state();this.model().resetPriceScale(e,t),(0,n.default)(i,t.state())||this._pushUndoCommand(new gt.PriceScaleChangeUndoCommand(this.m_model,e,t,i))}rearrangePanes(e,t){const i=new pe(this._model(),e,t);this._pushUndoCommand(i)}movePane(e,t){const i=new pe(this._model(),e,t);this._pushUndoCommand(i)}readOnly(){return this.m_model.readOnly()}checkIfFeatureAvailable(e,t){let i=this.canCreateStudy();const s=t.length>0;return!this.readOnly()&&s&&(i=this.canCreateStudy(!0)),!!i||(s||(0,h.showTooManyStudiesNotice)(),!1)}pasteSourceFromClip(e,t,i){const s=t;if(!s||0===s.sources.length)return null;const r=e||(0,o.ensureNotNull)(this.model().paneForSource(this.mainSeries()));if(!s.sources.some((e=>"drawing"!==e.type||null!==r.clipboardLineToolOwnerSource(e.source.id))))return null;this.beginUndoMacro(Vi.format({title:s.title}));let n=0;const a=[],l=[];for(const t of s.sources)if("drawing"===t.type&&null!==r.clipboardLineToolOwnerSource(t.source.id)){const e=this.pasteLineTool(r,t);n<5&&((0,me.trackDrawingPasted)(e),n+=1),l.push(e), +a.push(e)}else"study"===t.type&&t.source&&t.source.metaInfo&&this.checkIfFeatureAvailable(new d.StudyMetaInfo(t.source.metaInfo),[])&&a.push(this.pasteStudy(t,i?e:void 0));return l.length&&this.selectionMacro((e=>{e.clearSelection(),l.forEach((t=>{e.addSourceToSelection(t,null)}))})),this.endUndoMacro(),a}pasteLineTool(e,t,i,s){t.source.state.intervalsVisibilities=(0,At.mergeIntervalVisibilitiesDefaults)(t.source.state.intervalsVisibilities),(0,At.makeIntervalsVisibilitiesVisibleAtInterval)(t.source.state.intervalsVisibilities,p.Interval.parse(this.model().mainSeries().interval()));const r=new Je(this.model(),t,e,i,s);this._pushUndoCommand(r);const n=r.source();return r.needCopyToOtherCharts()&&this.copyToOtherCharts([n]),this.selectionMacro((e=>{e.clearSelection(),e.addSourceToSelection(n,null)})),n}pasteStudy(e,t){const i=new ot(this.model(),e,null==t?void 0:t.id());this._pushUndoCommand(i);const s=(0,o.ensureNotNull)(i.state()).id;return(0,ti.emit)("study_event",s,"paste_study"),(0,o.ensureNotNull)(this._model().dataSourceForId(s))}setPriceScaleCurrency(e,t){const i=new Qe.SetPriceScaleCurrencyUndoCommand(e,t,this.chartWidget(),fi);this._pushUndoCommand(i)}setPriceScaleUnit(e,t){const i=new et.SetPriceScaleUnitUndoCommand(e,t,this.chartWidget(),vi);this._pushUndoCommand(i)}setSymbol(e,t){e.symbol()!==t&&this._pushUndoCommand(new st(e,t,this.chartWidget()))}setResolution(e,t){e===this.mainSeries()&&(t=e.getSupportedResolution(t)),p.Interval.isEqual(e.interval(),t)||this._pushUndoCommand(new Qt(e,t,this.chartWidget()))}chartLoadTheme(e,t,i){const s=new Xt(this.model(),e,t);i?s.redo():this._pushUndoCommand(s)}isJustClonedChart(){return this._chartWidget.isJustClonedChart()}copyToOtherCharts(e){const t=this.mainSeries(),i=t.syncModel(),s=this.timeScale();if(i)for(const r of e){if(!r.isSynchronizable())continue;const e=r.linkKey().value()||(0,S.randomHash)();r.linkKey().setValue(e);const n=r.state(!1),a=r.normalizedPoints(),l=r.properties().interval.value(),c=t.interval();let h;if(p.Interval.isEqual(l,c))h=a.map((e=>{const t=(0,o.ensureNotNull)(s.timePointToIndex(e.time_t))+e.offset;return{price:e.price,timeStamp:(0,o.ensureNotNull)(this.model().externalTimeStamp(t))}}));else{const e=i.createNewModelWithResolution(l);h=a.map((t=>({price:t.price,timeStamp:0===t.offset?t.time_t:e.projectTime(t.time_t,t.offset)})))}const d={...n,id:r.id(),linkKey:e,points:h,linetool:r.toolname,model:this.model(),symbol:t.symbol(),finalState:{points:a,interval:l},pointPositionPercents:r.isFixed()?r.calcPositionPercents():void 0,sharingMode:r.sharingMode().value()};(0,Ee.copyLineTool)(d)}}addPaneStretchFactorUndoCommand(e,t,i,s){const r=new at(this.model(),e,t,i,s);this._pushUndoCommand(r)}paneForSource(e){return this.m_model.paneForSource(e)}destroy(){this._lineToolsDoNotAffectChartInvalidation.destroy(),this.m_model.destroy()}moveSelectedToolsLeft(){return this._moveSelectedTools(2)}moveSelectedToolsUp(){return this._moveSelectedTools(0)}moveSelectedToolsRight(){return this._moveSelectedTools(3)}moveSelectedToolsDown(){ return this._moveSelectedTools(1)}insertStudyWithoutCheck(e,t,i){return this._insertStudy(e,t,{},!1,[],void 0,void 0,void 0,void 0,null!=i?i:null,void 0)}saveLineToolState(e,t){this._pushUndoCommand(new R(this.m_model,[e],t))}resetScales(){this.beginUndoMacro(Ei),this.resetTimeScale();for(const e of this.m_model.panes()){for(const t of e.leftPriceScales())this.resetPriceScale(e,t);for(const t of e.rightPriceScales())this.resetPriceScale(e,t)}this.endUndoMacro(),this.m_model.recalculateAllPanes((0,ye.viewportChangeEvent)())}shareLineTools(e,t){}canCreateStudy(e){return this.model().chartApi().canCreateStudy(e)}studiesMetaData(){return this.m_model.studiesMetaData()}_isCountedStudy(e){throw new Error("Not implemented")}_mergeUnmergeSource(e,t){this.beginUndoMacro(t.text());const i=(0,o.ensureNotNull)(this._model().paneForSource(e)),s=new Set(i.sourcesByGroup().lineSources().filter((t=>t.ownerSource()===e)));this._model().lineToolsGroupModel().groups().filter((e=>{const t=e.lineTools().some((e=>s.has(e))),i=e.lineTools().some((e=>!s.has(e)));return t&&i})).forEach((e=>{this._pushUndoCommand(new V.ExcludeLineToolsFromGroupUndoCommand(this._model(),e,e.lineTools()))})),this._pushUndoCommand(t),this.endUndoMacro()}_insertStudy(e,t,i,s,r,n,a,l,c,h,d){const u=Ri.format({title:e.description});this.beginUndoMacro(u);const p=new dt(this.model(),e,t,i,s,r,n,a,l,c,h||null,u);this._pushUndoCommand(p);const _=p.insertedStudy();if(void 0!==d){const e=new ut.SetPriceScaleModeCommand(d,(0,o.ensureNotNull)(_.priceScale()),null,this.model());this._pushUndoCommand(e)}return this.endUndoMacro(),_}async _processSpecialLineToolsContents(e,t,i){0}_insertAfterOrBefore(e,t,i,s){const r=(0,o.ensureNotNull)(this._model().paneForSource(i));if(t.some((e=>(0,f.isLineTool)(e)&&this._model().paneForSource(e)!==r)))throw new Error("Cannot insert line tool after target on another pane");this.beginUndoMacro(e),t.forEach((e=>{(0,o.ensureNotNull)(this.model().paneForSource(e))!==r&&this.mergeToPane(e,r)}));const n=s();this._pushUndoCommand(n),this.emitEvent("changeZOrder",[t]),this.endUndoMacro()}_sendBackOrBringForward(e,t,i){const s=new Map;t.forEach((e=>{const t=(0,o.ensureNotNull)(this._model().paneForSource(e)),i=s.get(t)||[];i.push(e),s.set(t,i)})),this.beginUndoMacro(e),s.forEach(((e,t)=>{this._pushUndoCommand(i(t,e))})),this.endUndoMacro(),this.emitEvent("changeZOrder",[t])}_moveSelectedTools(e){const t=this.model().selection().lineDataSources();if(0===t.length)return!1;if((0,Ee.lockDrawings)().value())return!0;const i=this.timeScale().visibleBarsStrictRange();if(null===i)return!1;const s=function(e){const t=new Map;for(const i of e){const e=i.ownerSource();if(null===e)continue;let s=t.get(e);if(void 0===s){const r=e.priceScale(),n=e.priceStep(),o=e.firstValue();if(null===r||null===n||null===o)continue;if(null===r.priceRange())continue;s={sources:[],priceScale:r,priceStep:n,startPrice:i.points()[0].price,firstValue:o},t.set(e,s)}s.sources.push(i)}return t}(t);if(0===s.size)return!1 ;this.beginUndoMacro(_i,this._lineToolsDoNotAffectChartInvalidation.value());const r=i.firstBar(),n=this.timeScale().indexToCoordinate(r),o=r+(3===e?1:2===e?-1:0),l=this.timeScale().indexToCoordinate(o);return Ee.isDirectionalMovementActive.setValue(!0),s.forEach((t=>{const{startPrice:i,priceStep:s,priceScale:c,firstValue:h}=t,d=i+(0===e?s:1===e?-s:0),u=c.priceToCoordinate(i,h),p=c.priceToCoordinate(d,h),_={logical:{index:r,price:i},screen:new a.Point(n,u)},m={logical:{index:o,price:d},screen:new a.Point(l,p)};this.startMovingSources(t.sources,_,null),this.moveSources(m),this.endMovingSource(!1,!0)})),Ee.isDirectionalMovementActive.setValue(!1),this.endUndoMacro(),!0}_restoreStudyFactoryDefaults(e){const t=new Mt(this.m_model,e.properties());this._pushUndoCommand(t)}_restoreLineToolFactoryDefaults(e){this.beginUndoMacro(mi,this._lineToolsDoNotAffectChartInvalidation.value()),this.saveLineToolState(e,mi);const t=new It(this.m_model,e.properties(),mi);this._pushUndoCommand(t),this.saveLineToolState(e,mi),this.endUndoMacro(),this.model().updateSource(e)}_removeAllDrawingToolsImpl(e){this.selectionMacro((()=>{this.lineBeingCreated()&&this.cancelCreatingLine();this.dataSources().filter(f.isLineTool).filter((e=>e.isActualSymbol()&&e.isUserDeletable())).filter((t=>!e||e===t.toolname)).forEach((e=>this.removeSource(e,!1)))}),!0)}_removeAllStudiesImpl(){const e=this.dataSources(),t=e.filter(T.isStudy).filter((e=>!e.isChildStudy()&&e.removeByRemoveAllStudies())),i=e.filter(T.isStudyStub);t.concat(i).forEach((e=>this.removeSource(e,!1)))}}},96196:(e,t,i)=>{"use strict";var s=i(26867),r=i(50151).ensureNotNull,n=i(50151).assert,o=i(81306).ChartModelBase,a=i(6250).isLineTool,l=i(96881).Watermark,c=i(49483).CheckMobile,h=i(36646).InvalidationMask,d=i(36646).InvalidationLevel;const{globalChangeEvent:u,sourceChangeEvent:p}=i(97425);var _=i(89215),m=_.isStudy,g=_.isFundamentalStudy,f=i(76076),v=i(95190).MainSeriesScaleRatioProperty,S=i(53778).scaleRatio,y=i(21076).StudyInserter,b=i(55262).dateFormatProperty,w=i(51620).timeHoursFormatProperty,P=i(76422),C=i(47130).StudyColorRotatorFactory,T=i(2484),x=i(91109).AppliedTimeFrame;i(14948).ReplayStatus,T.enabled("fix_left_edge");class I extends o{constructor(e,t,i,s,r,n,o,a,c,h){super(e,t,i,s,r,n,o,a,c,h);var d=this;this._mainSeriesScaleRatioProperty=new v(this),this.m_mainSeries.dataEvents().completed().subscribe(this,function(){this._scrollingState&&this.gotoTime()}.bind(this)),this.m_mainSeries.onIntervalChanged().subscribe(this,(function(){this._recalcVRStudiesParams.oldStartVisibleIndex=NaN,this._recalcVRStudiesParams.oldEndVisibleIndex=NaN})),this._readOnly||(this.m_mainSeries.properties().addChild("priceAxisProperties",this.m_mainSeries.m_priceScale.properties()),this._properties.paneProperties.legendProperties.showStudyTitles.listeners().subscribe(this,(function(e){e.value()||d._properties.paneProperties.legendProperties.showStudyArguments.setValue(!1)}))),this._watermarkSource=this._options.watermarkEnabled?new l(this,this.m_mainSeries):null, f.hideAllDrawings().subscribe(this,this._onDrawingsVisibilityChanged),f.hideAllIndicators().subscribe(this,this._onIndicatorsVisibilityChanged),this._properties.scalesProperties.listeners().subscribe(this,I.prototype.fullUpdate),this._studyShiftColorStartOffset=void 0,this._linePointBeingEdited=null,this._lineBeingEdited=null,b.subscribe(this,this._updateDateTimeFormatter),w.subscribe(this,this._updateDateTimeFormatter),this.mainSeries().properties().interval.subscribe(this,this._updateDateTimeFormatter),this._updateDateTimeFormatter(),this._studyColorRotatorFactory=new C(this),this._dataSourceCollectionChanged.subscribe(this,this._updateShowLegendProperty.bind(this)),this._properties.paneProperties.legendProperties.showLegend.subscribe(this,this._updateShowLegendProperty),this._appliedTimeFrame=new x(this),this.mainSeries().onTimeFrameApplied().subscribe(this,(function(e){var t=null!==e?{res:this.mainSeries().interval(),val:e}:null;this.appliedTimeFrame().setValue(t)}))}applyPreferences(e){for(var t in e)void 0!==this._properties[t]&&"m_mainSeries"!==this._properties[t]&&this._properties[t].mergeAndFire(e[t]);void 0!==e.timeScale&&(this._timeScale.defaultRightOffset().setValue(e.timeScale.defaultRightOffset),this._timeScale.defaultRightOffsetPercentage().setValue(e.timeScale.defaultRightOffsetPercentage),this._timeScale.usePercentageRightOffset().setValue(e.timeScale.usePercentageRightOffset)),this._properties.saveDefaults(),this.m_mainSeries.applyPreferences(e.mainSeries),this.sessions().applyPreferences(e.sessions),this.recalculateAllPanes(u()),this.fullUpdate()}timezone(){return this._properties.timezone.value()}initConnection(){this._chartApi.switchTimezone(this.timezone())}updatePane(e){var t=this._paneInvalidationMask(e);this.invalidate(t)}fullUpdate(){this.invalidate(h.full())}lightUpdate(){this.invalidate(h.light())}studiesMetaData(){return this._studiesMetaData}studyVersioning(){return this._studyVersioning}startNotStartedStudies(){if(!this.m_mainSeries.isStarted())throw new Error("Cannot start studies: main series is not started");for(var e=this.dataSources(),t=0;t{const{id:t,...i}=e;this._addTimezone(t,i)})),this.updateChartTimezones()}listTimezoneIds(){return[...this._customTimezones.keys()]}listTimezones(){return[...this._customTimezones.entries()].map((([e,t])=>({id:e,...t})))}getTimezoneInfo(e){if(!this.timezoneIsAvailable(e))throw new Error("Provided timezone alias is not within the list of supported timezones.");return(0,s.ensure)(this._customTimezones.get(e))}getAllTimezoneInfo(){return this.listTimezones()}getAliasTimezone(e){return this.getTimezoneInfo(e).alias}timezoneIsAvailable(e){return this._customTimezones.has(e)}updateChartTimezones(){(0,n.updateAvailableTimezones)(this.getAllTimezoneInfo())}getTimezoneData(e){if(p.has(e))return p.get(e);let t=null;if(c(e))t=d(e);else if(this.timezoneIsAvailable(e)){const i=this.getAliasTimezone(e);o.tzData[i]&&(t=o.tzData[i]),!t&&c(i)&&(t=d(i))}return t&&p.set(e,t),t}static instance(){return null===u&&(u=new _),u}_addTimezone(e,t){try{if((0,s.ensure)(e,"Custom timezone ID"),(0,s.ensure)(t.alias,"Custom timezone alias"),(0,s.ensure)(t.title,"Custom timezone title"),(0,n.timezoneIsAvailable)(e)&&!this.timezoneIsAvailable(e))throw new Error("Custom timezone id already exists.");if(!(0,n.timezoneIsSupported)(t.alias)&&!c(t.alias))throw new Error("Custom timezone alias is not a supported timezone.");if(e.length<1)throw new Error("Custom timezone id is empty");if(t.title.length<1)throw new Error("Custom timezone title is empty");this._customTimezones.set(e,t)}catch(e){console.warn(`Unable to add custom timezone. ${e}`)}}}(0,r.setCustomTimezones)(_)},62472:(e,t,i)=>{"use strict";i.d(t,{isMainSeriesState:()=>r,isStudyState:()=>n,isLineToolState:()=>o,isStudyLineToolState:()=>a});var s=i(6250);function r(e){return"MainSeries"===e.type}function n(e){return Boolean(e.type)&&e.type.toLowerCase().startsWith("study")}function o(e){return Boolean(e.type)&&(0,s.isLineToolName)(e.type)}function a(e){return Boolean(e.type)&&(0,s.isStudyLineToolName)(e.type)}},80230:(e,t,i)=>{"use strict";i.d(t,{DataSource:()=>l});i(2484);var s=i(40549),r=i.n(s),n=i(68671),o=i(26867),a=i.n(o);class l{constructor(e){this.hasAlert=new(r())(!1),this._zorder=0,this.m_priceScale=null,this._ownerSource=null,this._userEditEnabled=!0,this._onPriceScaleChanged=new(a()),this._isSelectionEnabled=!0,this._instanceId=(0,n.randomHashN)(6),this._ownerSourceChanged=new(a()),this._zOrderChanged=new(a()),this._id=null!=e?e:(0,n.randomHashN)(6)}id(){return this._id}instanceId(){return this._instanceId}preferNoScale(){return!1}setId(e){this._id=e}zorder(){return this._zorder}setZorder(e){"number"==typeof e&&this._zorder!==e&&(this._zorder=e,this._zOrderChanged.fire(e))}isSpeciallyZOrderedSource(){return!1}title(){throw new Error("Implement this fun in a subclass")}name(){throw new Error("Implement this fun in a subclass")}priceScale(){return this.m_priceScale}setPriceScale(e){this.m_priceScale=e,this._onPriceScaleChanged.fire()}ownerSource(){return this._ownerSource}setOwnerSource(e){ const t=this._ownerSource;this._ownerSource=e,this._ownerSourceChanged.fire(t,e)}ownerSourceChanged(){return this._ownerSourceChanged}zOrderChanged(){return this._zOrderChanged}isSavedInChart(e){return!0}isSavedInStudyTemplates(){return!0}isRemovedByStudyTemplates(){return!0}hasContextMenu(){return!0}showInObjectTree(){return!0}setUserEditEnabled(e){this._userEditEnabled=e}userEditEnabled(){return this._userEditEnabled}canBeHidden(){return this.userEditEnabled()}isUserDeletable(){return this.userEditEnabled()}properties(){throw new Error("Implement this fun in a subclass")}isVisible(){return this.properties().visible.value()}dataWindowView(){return null}priceAxisViews(e,t){return null}timeAxisViews(){return null}updateAllViews(e){}paneViews(e){return null}labelPaneViews(){return null}isFailed(){return!1}isLoading(){return!1}isPhantom(){return!1}isChildStudy(){return!1}hasChildren(){return!1}canHaveChildren(){return!1}onClickOutside(e){}getSourceIcon(){return null}state(e){throw new Error("Implement this fun in a subclass")}onPriceScaleChanged(){return this._onPriceScaleChanged}doesMovingAffectsUndo(){return!0}isMultiPaneAvailable(){return!1}isMultiPaneEnabled(){return!1}copiable(){return!1}cloneable(){return!1}movable(){return!1}isIncludedInAutoScale(){return!1}isHoveredEnabled(){return this.isSelectionEnabled()}showOnTopOnHovering(){return!0}isSelectionEnabled(){return this._isSelectionEnabled}setSelectionEnabled(e){this._isSelectionEnabled=e}firstValue(){return null}priceRange(e,t){return null}autoScaleInfo(e,t){return{range:this.priceRange(e,t)}}stateForAlert(){return null}canHasAlert(){return!1}alertCreationAvailable(){return new(r())(this.hasStateForAlert()).readonly()}hasStateForAlert(){return!1}idForAlert(){return this._id}}},95790:(e,t,i)=>{"use strict";i.d(t,{DataWindowItem:()=>s,DataWindowView:()=>r});class s{constructor(e,t,i,s=!1){this._visible=!0,this._id=e,this._title=t,this._value=i,this._unimportant=s}id(){return this._id}title(){return this._title}setTitle(e){this._title=e}text(){return this._value}value(){return this._value}setValue(e){this._value=e}visible(){return this._visible}setVisible(e){this._visible=e}color(){return this._color}setColor(e){this._color=e}unimportant(){return this._unimportant}}class r{constructor(){this._items=[],this._header="",this._title=""}header(){return this._header}title(){return this._title}items(){return this._items}update(){}}},55262:(e,t,i)=>{"use strict";i.d(t,{dateFormatProperty:()=>l,restoreDateFormatSettingsValue:()=>c});var s=i(56840),r=i(60923),n=i(54808);const o="date_format";function a(){return s.getValue(o,(0,n.defaultDateFormat)())}const l=(0,r.createPrimitiveProperty)(a());function c(){l.setValue((0,n.defaultDateFormat)()),s.remove(o)}s.onSync.subscribe(null,(()=>l.setValue(a()))),l.subscribe(null,(()=>s.setValue(o,l.value())))},7711:(e,t,i)=>{"use strict";i.r(t),i.d(t,{createDefaultsState:()=>u,saveDefaultProperties:()=>_,DefaultProperty:()=>m});var s=i(27788),r=i(58121),n=i(15736),o=i(64548),a=i(26220),l=i.n(a),c=i(26867),h=i.n(c);function d(e,t){ const i=(0,s.default)(e);return t.forEach((e=>(0,n.default)(i,e.split(".")))),i}function u(e,t,i,n){const a=e?o.defaults:o.factoryDefaults,l=t.startsWith("study_")?(0,s.default)(a("study")):{};let c=(0,s.default)(a(t,n));return t.startsWith("study_")&&c.inputs&&delete c.inputs.symbol,"linetoolicon"===t&&e&&(c.icon=(0,o.defaults)(t).icon),"linetooemoji"===t&&e&&(c.emoji=(0,o.defaults)(t).emoji),c=d(c,i),(0,r.default)(l,c),l}let p=!1;function _(e){p=e}class m extends(l()){constructor(e,t,i,s){super(function(e,t,i,s){let n;return void 0===s&&(s=!0),i?n=t:(n=u(s,e,[],null),t&&(0,r.default)(n,t)),n}(e,t,i,s)),this._exclusions=[],this._restoreFactoryDefaultsEvent=new(h()),this._defaultName=e,this._useUserPreferences=null==s||s,this.listeners().subscribe(this,m.prototype.onPropertyChanged),this._restoreFactoryDefaultsEvent=new(h())}preferences(){return this.state(this._exclusions)}mergePreferences(e){this.mergeAndFire(d(e,this._exclusions))}addExclusion(e){this._exclusions.indexOf(e)<0&&this._exclusions.push(e)}removeExclusion(e){const t=this._exclusions.indexOf(e);-1!==t&&this._exclusions.splice(t,1)}restoreFactoryDefaults(){const e=u(!1,this._defaultName,this._exclusions,null);this.mergeAndFire(e),this._defaultName.startsWith("study_")&&!this._defaultName.startsWith("study_VbPFixed")||(0,o.saveDefaults)(this._defaultName,void 0),this._restoreFactoryDefaultsEvent.fire()}onRestoreFactoryDefaults(){return this._restoreFactoryDefaultsEvent}onPropertyChanged(){!p||this._defaultName.startsWith("study_")&&!this._defaultName.startsWith("study_VbPFixed")||this.saveDefaults()}saveDefaults(){this._useUserPreferences&&(0,o.saveDefaults)(this._defaultName,this.preferences())}clone(e){const t=new m(this._defaultName,this.state(),null==e?void 0:e.replaceByState,this._useUserPreferences);for(let e=0;e{"use strict";var s=i(8169).PlDisplay;const{getHexColorByName:r}=i(7394),{generateColor:n}=i(38031);var o=i(8169).TradedGroupHorizontalAlignment,a=i(77906),l=i(23680).LineToolPitchforkStyle,c=i(57693).LineToolBarsPatternMode,h=i(83421),d=h.LineStudyPlotStyle,u=h.STUDYPLOTDISPLAYTARGET,p=i(94030),_=i(99846).PriceAxisLastValueMode,m=i(67052).StoriesTimeLineItemType,g=i(64810).MagnetMode,f=i(85113).LineEnd,v=i(4978).ColorType,S=i(41481).StatsPosition,y=i(22600).sessionsPreferencesDefault,b=i(5049).axisLabelBackgroundColor;const{LINESTYLE_SOLID:w,LINESTYLE_DOTTED:P,LINESTYLE_DASHED:C}=i(53479);var T=i(98351).getLogger("Chart.Defaults") -;const x=r("color-black"),I=r("color-white"),M=n(I,75),A=r("color-tv-blue-50"),L=r("color-tv-blue-500"),k=n(L,30),E=n(L,70),D=n(L,72),B=n(L,75),V=n(L,80),R=r("color-tv-blue-600"),N=r("color-deep-blue-200"),O=r("color-deep-blue-300"),F=r("color-deep-blue-500"),W=n(F,80),H=r("color-sky-blue-500"),z=n(H,80),U=r("color-sky-blue-700"),j=n(U,30),G=r("color-youtube"),q=r("color-ripe-red-200"),$=r("color-ripe-red-300"),Y=r("color-ripe-red-400"),K=r("color-ripe-red-500"),X=n(K,70),Z=n(K,80),J=n(K,72),Q=n(K,95),ee=r("color-ripe-red-600"),te=r("color-grapes-purple-500"),ie=n(te,100),se=n(te,80),re=n(te,30),ne=r("color-berry-pink-500"),oe=n(ne,80),ae=r("color-minty-green-100"),le=r("color-minty-green-500"),ce=n(le,80),he=n(le,72),de=n(le,95),ue=r("color-iguana-green-300"),pe=r("color-iguana-green-500"),_e=n(pe,80),me=r("color-tan-orange-300"),ge=r("color-tan-orange-500"),fe=n(ge,80),ve=r("color-tan-orange-600"),Se=r("color-tan-orange-700"),ye=r("color-cold-gray-150"),be=r("color-cold-gray-300"),we=r("color-cold-gray-400"),Pe=r("color-cold-gray-500"),Ce=r("color-cold-gray-800"),Te=n(Ce,94),xe=n(Ce,100),Ie=r("color-cold-gray-900"),Me=r("color-cold-gray-750"),Ae=r("color-slate-gray"),Le=r("color-silver-tree"),ke=n(Le,95),Ee=r("color-mandy"),De=n(Ee,95);var Be=function(e){var t=function(e,t){return{color:e,visible:t}},i=function(e,t,i){return{coeff:e,color:t,visible:i}},r=function(e,t,i,s,r){return{coeff:e,color:t,visible:i,linestyle:void 0===s?w:s,linewidth:void 0===r?1:r}},h=function(e,t,i){return{color:e,width:i,visible:t}},T=function(e,t,i,s,r){return{color:e,visible:t,width:i,x:s,y:r}},Ce=function(e,t,i,s,r,n){return{coeff1:e,coeff2:t,color:i,visible:s,linestyle:void 0===r?w:r,linewidth:void 0===n?1:n}};if(void 0===TradingView.defaultProperties){var Be;switch(window.locale){case"ar_AE":Be="Asia/Dubai";break;case"au":Be="Australia/Sydney";break;case"br":Be="America/Sao_Paulo";break;case"ca":Be="America/Toronto";break;case"de_DE":case"it":Be="Europe/Berlin";break;case"es":Be="Europe/Madrid";break;case"fa_IR":Be="Asia/Tehran";break;case"fr":case"sv_SE":Be="Europe/Paris";break;case"he_IL":case"tr":Be="Europe/Athens";break;case"hu_HU":case"pl":Be="Europe/Warsaw";break;case"id":case"th_TH":case"vi_VN":Be="Asia/Bangkok";break;case"in":Be="Asia/Kolkata";break;case"ja":case"kr":Be="Asia/Tokyo";break;case"ms_MY":Be="Asia/Singapore";break;case"ru":Be="Europe/Moscow";break;case"uk":Be="Europe/London";break;case"zh_CN":case"zh_TW":Be="Asia/Shanghai";break;default:Be="Etc/UTC"}TradingView.defaultProperties={chartproperties:{timezone:Be,priceScaleSelectionStrategyName:"auto",paneProperties:{backgroundType:v.Solid,background:I,backgroundGradientStartColor:I,backgroundGradientEndColor:I,vertGridProperties:{color:Te,style:w},horzGridProperties:{color:Te,style:w},crossHairProperties:{color:we,style:C,transparency:0,width:1},topMargin:10,bottomMargin:8,axisProperties:{autoScale:!0,autoScaleDisabled:!1,lockScale:!1,percentage:!1,percentageDisabled:!1,indexedTo100:!1,log:!1,logDisabled:!1,alignLabels:!0,isInverted:!1},legendProperties:{ +;const x=r("color-black"),I=r("color-white"),M=n(I,75),A=r("color-tv-blue-50"),L=r("color-tv-blue-500"),k=n(L,30),E=n(L,70),D=n(L,72),B=n(L,75),V=n(L,80),R=r("color-tv-blue-600"),N=r("color-deep-blue-200"),O=r("color-deep-blue-300"),F=r("color-deep-blue-500"),W=n(F,80),H=r("color-sky-blue-500"),z=n(H,80),U=r("color-sky-blue-700"),j=n(U,30),G=r("color-youtube"),q=r("color-ripe-red-200"),$=r("color-ripe-red-300"),Y=r("color-ripe-red-400"),K=r("color-ripe-red-500"),Z=n(K,70),X=n(K,80),J=n(K,72),Q=n(K,95),ee=r("color-ripe-red-600"),te=r("color-grapes-purple-500"),ie=n(te,100),se=n(te,80),re=n(te,30),ne=r("color-berry-pink-500"),oe=n(ne,80),ae=r("color-minty-green-100"),le=r("color-minty-green-500"),ce=n(le,80),he=n(le,72),de=n(le,95),ue=r("color-iguana-green-300"),pe=r("color-iguana-green-500"),_e=n(pe,80),me=r("color-tan-orange-300"),ge=r("color-tan-orange-500"),fe=n(ge,80),ve=r("color-tan-orange-600"),Se=r("color-tan-orange-700"),ye=r("color-cold-gray-150"),be=r("color-cold-gray-300"),we=r("color-cold-gray-400"),Pe=r("color-cold-gray-500"),Ce=r("color-cold-gray-800"),Te=n(Ce,94),xe=n(Ce,100),Ie=r("color-cold-gray-900"),Me=r("color-cold-gray-750"),Ae=r("color-slate-gray"),Le=r("color-silver-tree"),ke=n(Le,95),Ee=r("color-mandy"),De=n(Ee,95);var Be=function(e){var t=function(e,t){return{color:e,visible:t}},i=function(e,t,i){return{coeff:e,color:t,visible:i}},r=function(e,t,i,s,r){return{coeff:e,color:t,visible:i,linestyle:void 0===s?w:s,linewidth:void 0===r?1:r}},h=function(e,t,i){return{color:e,width:i,visible:t}},T=function(e,t,i,s,r){return{color:e,visible:t,width:i,x:s,y:r}},Ce=function(e,t,i,s,r,n){return{coeff1:e,coeff2:t,color:i,visible:s,linestyle:void 0===r?w:r,linewidth:void 0===n?1:n}};if(void 0===TradingView.defaultProperties){var Be;switch(window.locale){case"ar_AE":Be="Asia/Dubai";break;case"au":Be="Australia/Sydney";break;case"br":Be="America/Sao_Paulo";break;case"ca":Be="America/Toronto";break;case"de_DE":case"it":Be="Europe/Berlin";break;case"es":Be="Europe/Madrid";break;case"fa_IR":Be="Asia/Tehran";break;case"fr":case"sv_SE":Be="Europe/Paris";break;case"he_IL":case"tr":Be="Europe/Athens";break;case"hu_HU":case"pl":Be="Europe/Warsaw";break;case"id":case"th_TH":case"vi_VN":Be="Asia/Bangkok";break;case"in":Be="Asia/Kolkata";break;case"ja":case"kr":Be="Asia/Tokyo";break;case"ms_MY":Be="Asia/Singapore";break;case"ru":Be="Europe/Moscow";break;case"uk":Be="Europe/London";break;case"zh_CN":case"zh_TW":Be="Asia/Shanghai";break;default:Be="Etc/UTC"}TradingView.defaultProperties={chartproperties:{timezone:Be,priceScaleSelectionStrategyName:"auto",paneProperties:{backgroundType:v.Solid,background:I,backgroundGradientStartColor:I,backgroundGradientEndColor:I,vertGridProperties:{color:Te,style:w},horzGridProperties:{color:Te,style:w},crossHairProperties:{color:we,style:C,transparency:0,width:1},topMargin:10,bottomMargin:8,axisProperties:{autoScale:!0,autoScaleDisabled:!1,lockScale:!1,percentage:!1,percentageDisabled:!1,indexedTo100:!1,log:!1,logDisabled:!1,alignLabels:!0,isInverted:!1},legendProperties:{ showStudyArguments:!0,showStudyTitles:!0,showStudyValues:!0,showSeriesTitle:!0,showSeriesOHLC:!0,showLegend:!0,showBarChange:!0,showVolume:!1,showBackground:!0,showPriceSource:!0,backgroundTransparency:50},separatorColor:ye},scalesProperties:{backgroundColor:I,lineColor:xe,textColor:Ie,fontSize:12,scaleSeriesOnly:!1,showSeriesLastValue:!0,seriesLastValueMode:_.LastValueAccordingToScale,showSeriesPrevCloseValue:!1,showStudyLastValue:!0,showSymbolLabels:!1,showStudyPlotLabels:!1,showBidAskLabels:!1,showPrePostMarketPriceLabel:!0,showFundamentalNameLabel:!1,showFundamentalLastValue:!0,barSpacing:p.DEFAULT_BAR_SPACING,axisHighlightColor:B,axisLineToolLabelBackgroundColorCommon:b.common,axisLineToolLabelBackgroundColorActive:b.active,showPriceScaleCrosshairLabel:!0,showTimeScaleCrosshairLabel:!0,crosshairLabelBgColorLight:Ie,crosshairLabelBgColorDark:Me},mainSeriesProperties:{style:a.STYLE_CANDLES,esdShowDividends:!0,esdShowSplits:!0,esdShowEarnings:!0,esdShowBreaks:!1,esdFlagSize:2,showContinuousContractSwitches:!0,showContinuousContractSwitchesBreaks:!1,showFuturesContractExpiration:!0,showLastNews:!0,showCountdown:!0,bidAsk:{visible:!1,lineStyle:P,lineWidth:1,bidLineColor:L,askLineColor:Y},prePostMarket:{visible:!0,lineStyle:P,lineWidth:1,preMarketColor:ve,postMarketColor:L},highLowAvgPrice:{highLowPriceLinesVisible:!1,highLowPriceLabelsVisible:!1,averageClosePriceLineVisible:!1,averageClosePriceLabelVisible:!1,highLowPriceLinesColor:"",highLowPriceLinesWidth:1,averagePriceLineColor:"",averagePriceLineWidth:1},visible:!0,showPriceLine:!0,priceLineWidth:1,priceLineColor:"",baseLineColor:be,showPrevClosePriceLine:!1,prevClosePriceLineWidth:1,prevClosePriceLineColor:"#555555",minTick:"default",dividendsAdjustment:void 0,backAdjustment:!1,settlementAsClose:!0,sessionId:"regular",sessVis:!1,statusViewStyle:{fontSize:16,showExchange:!0,showInterval:!0,symbolTextSource:"description"},candleStyle:{upColor:le,downColor:K,drawWick:!0,drawBorder:!0,borderColor:"#378658",borderUpColor:le,borderDownColor:K,wickColor:"#737375",wickUpColor:le,wickDownColor:K,barColorsOnPrevClose:!1,drawBody:!0},hollowCandleStyle:{upColor:le,downColor:K,drawWick:!0,drawBorder:!0,borderColor:"#378658",borderUpColor:le,borderDownColor:K,wickColor:"#737375",wickUpColor:le,wickDownColor:K,drawBody:!0},haStyle:{upColor:le,downColor:K,drawWick:!0,drawBorder:!0,borderColor:"#378658",borderUpColor:le,borderDownColor:K,wickColor:"#737375",wickUpColor:le,wickDownColor:K,showRealLastPrice:!1,barColorsOnPrevClose:!1,inputs:{},inputInfo:{},drawBody:!0},barStyle:{upColor:le,downColor:K,barColorsOnPrevClose:!1,dontDrawOpen:!1,thinBars:!0},hiloStyle:{color:L,showBorders:!0,borderColor:L,showLabels:!0,labelColor:L,drawBody:!0},columnStyle:{upColor:n(le,50),downColor:n(K,50),barColorsOnPrevClose:!0,priceSource:"close"},lineStyle:{color:L,linestyle:w,linewidth:2,priceSource:"close",styleType:a.STYLE_LINE_TYPE_SIMPLE},areaStyle:{color1:D,color2:L,linecolor:L,linestyle:w,linewidth:2,priceSource:"close",transparency:100},priceAxisProperties:{autoScale:!0, autoScaleDisabled:!1,lockScale:!1,percentage:!1,percentageDisabled:!1,indexedTo100:!1,log:!1,logDisabled:!1,isInverted:!1,alignLabels:!0},renkoStyle:{upColor:le,downColor:K,borderUpColor:le,borderDownColor:K,upColorProjection:"#a9dcc3",downColorProjection:"#f5a6ae",borderUpColorProjection:"#a9dcc3",borderDownColorProjection:"#f5a6ae",wickUpColor:le,wickDownColor:K,inputs:{source:"close",sources:"Close",boxSize:3,style:"ATR",atrLength:14,wicks:!0},inputInfo:{source:{name:"Source"},sources:{name:"Source"},boxSize:{name:"Box size"},style:{name:"Style"},atrLength:{name:"ATR length"},wicks:{name:"Wicks"}}},pbStyle:{upColor:le,downColor:K,borderUpColor:le,borderDownColor:K,upColorProjection:"#a9dcc3",downColorProjection:"#f5a6ae",borderUpColorProjection:"#a9dcc3",borderDownColorProjection:"#f5a6ae",inputs:{source:"close",lb:3},inputInfo:{source:{name:"Source"},lb:{name:"Number of line"}}},kagiStyle:{upColor:le,downColor:K,upColorProjection:"#a9dcc3",downColorProjection:"#f5a6ae",inputs:{source:"close",style:"ATR",atrLength:14,reversalAmount:1},inputInfo:{source:{name:"Source"},style:{name:"Style"},atrLength:{name:"ATR length"},reversalAmount:{name:"Reversal amount"}}},pnfStyle:{upColor:le,downColor:K,upColorProjection:"#a9dcc3",downColorProjection:"#f5a6ae",inputs:{sources:"Close",reversalAmount:3,boxSize:1,style:"ATR",atrLength:14,oneStepBackBuilding:!1},inputInfo:{sources:{name:"Source"},boxSize:{name:"Box size"},reversalAmount:{name:"Reversal amount"},style:{name:"Style"},atrLength:{name:"ATR length"},oneStepBackBuilding:{name:"One step back building"}}},baselineStyle:{baselineColor:Ae,topFillColor1:he,topFillColor2:de,bottomFillColor1:Q,bottomFillColor2:J,topLineColor:le,bottomLineColor:K,topLineWidth:2,bottomLineWidth:2,priceSource:"close",transparency:50,baseLevelPercentage:50},rangeStyle:{upColor:le,downColor:K,thinBars:!0,upColorProjection:"#a9dcc3",downColorProjection:"#f5a6ae",inputs:{range:10,phantomBars:!1},inputInfo:{range:{name:"Range"},phantomBars:{name:"Phantom bars"}}}},chartEventsSourceProperties:{visible:!0,futureOnly:!0,breaks:{color:"#555555",visible:!1,style:C,width:1}},tradingProperties:{showPositions:!0,positionPL:{visibility:!0,display:s.Money},bracketsPL:{visibility:!0,display:s.Money},showOrders:!0,showExecutions:!0,showExecutionsLabels:!1,showReverse:!0,horizontalAlignment:o.Right,extendLeft:!0,lineLength:5,lineWidth:1,lineStyle:w},editorFontsList:["Verdana","Courier New","Times New Roman","Arial"],volumePaneSize:"large"},sessions:y,drawings:{magnet:!1,magnetMode:g.WeakMagnet,stayInDrawingMode:!1,drawOnAllCharts:!0,drawOnAllChartsMode:1},linetoolorder:{extendLeft:"inherit",lineLength:"inherit",lineColor:G,lineActiveBuyColor:"#4094e8",lineInactiveBuyColor:"rgba(64, 148, 232, 0.5)",lineActiveSellColor:"#e75656",lineInactiveSellColor:"rgba(231, 86, 86, 0.5)",lineStyle:"inherit",lineWidth:"inherit",bodyBorderActiveBuyColor:"#4094e8",bodyBorderInactiveBuyColor:"rgba(64, 148, 232, 0.5)",bodyBorderActiveSellColor:"#e75656",bodyBorderInactiveSellColor:"rgba(231, 86, 86, 0.5)",bodyBackgroundColor:M, bodyBackgroundTransparency:25,bodyTextInactiveLimitColor:"rgba(38, 140, 2, 0.5)",bodyTextActiveLimitColor:"#268c02",bodyTextInactiveStopColor:"rgba(231, 86, 86, 0.5)",bodyTextActiveStopColor:"#e75656",bodyTextInactiveBuyColor:"rgba(64, 148, 232, 0.5)",bodyTextActiveBuyColor:"#4094e8",bodyTextInactiveSellColor:"rgba(231, 86, 86, 0.5)",bodyTextActiveSellColor:"#e75656",bodyFontFamily:"Verdana",bodyFontSize:9,bodyFontBold:!0,bodyFontItalic:!1,quantityBorderActiveBuyColor:"#4094e8",quantityBorderInactiveBuyColor:"rgba(64, 148, 232, 0.5)",quantityBorderActiveSellColor:"#e75656",quantityBorderInactiveSellColor:"rgba(231, 86, 86, 0.5)",quantityBackgroundInactiveBuyColor:"rgba(64, 148, 232, 0.5)",quantityBackgroundActiveBuyColor:"#4094e8",quantityBackgroundInactiveSellColor:"rgba(231, 86, 86, 0.5)",quantityBackgroundActiveSellColor:"#e75656",quantityTextColor:I,quantityTextTransparency:0,quantityFontFamily:"Verdana",quantityFontSize:9,quantityFontBold:!0,quantityFontItalic:!1,cancelButtonBorderActiveBuyColor:"#4094e8",cancelButtonBorderInactiveBuyColor:"rgba(64, 148, 232, 0.5)",cancelButtonBorderActiveSellColor:"#e75656",cancelButtonBorderInactiveSellColor:"rgba(231, 86, 86, 0.5)",cancelButtonBackgroundColor:M,cancelButtonBackgroundTransparency:25,cancelButtonIconActiveBuyColor:"#4094e8",cancelButtonIconInactiveBuyColor:"rgba(64, 148, 232, 0.5)",cancelButtonIconActiveSellColor:"#e75656",cancelButtonIconInactiveSellColor:"rgba(231, 86, 86, 0.5)",tooltip:"",modifyTooltip:"",cancelTooltip:""},linetoolposition:{extendLeft:"inherit",lineLength:"inherit",lineBuyColor:"#4094e8",lineSellColor:"#e75656",lineStyle:"inherit",lineWidth:"inherit",bodyBorderBuyColor:"#4094e8",bodyBorderSellColor:"#e75656",bodyBackgroundColor:M,bodyBackgroundTransparency:25,bodyTextPositiveColor:"#268c02",bodyTextNeutralColor:"#646464",bodyTextNegativeColor:"#e75656",bodyFontFamily:"Verdana",bodyFontSize:9,bodyFontBold:!0,bodyFontItalic:!1,quantityBorderBuyColor:"#4094e8",quantityBorderSellColor:"#e75656",quantityBackgroundBuyColor:"#4094e8",quantityBackgroundSellColor:"#e75656",quantityTextColor:I,quantityTextTransparency:0,quantityFontFamily:"Verdana",quantityFontSize:9,quantityFontBold:!0,quantityFontItalic:!1,reverseButtonBorderBuyColor:"#4094e8",reverseButtonBorderSellColor:"#e75656",reverseButtonBackgroundColor:M,reverseButtonBackgroundTransparency:25,reverseButtonIconBuyColor:"#4094e8",reverseButtonIconSellColor:"#e75656",closeButtonBorderBuyColor:"#4094e8",closeButtonBorderSellColor:"#e75656",closeButtonBackgroundColor:M,closeButtonBackgroundTransparency:25,closeButtonIconBuyColor:"#4094e8",closeButtonIconSellColor:"#e75656",tooltip:"",protectTooltip:"",closeTooltip:"",reverseTooltip:""},linetoolexecution:{direction:"buy",arrowHeight:8,arrowSpacing:1,arrowBuyColor:"#4094e8",arrowSellColor:"#e75656",text:"",textColor:x,textTransparency:0,fontFamily:"Verdana",fontSize:10,fontBold:!1,fontItalic:!1,tooltip:""},linetoolicon:{color:L,size:40,icon:61720,angle:.5*Math.PI},linetoolemoji:{size:40,emoji:"😀",angle:.5*Math.PI},linetoolimage:{transparency:0, -cssWidth:0,cssHeight:0,angle:0},linetoolbezierquadro:{linecolor:L,linewidth:1,fillBackground:!1,backgroundColor:V,transparency:50,linestyle:w,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal},linetoolbeziercubic:{linecolor:F,linewidth:1,fillBackground:!1,backgroundColor:W,transparency:80,linestyle:w,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal},linetooltrendline:{linecolor:L,linewidth:2,linestyle:w,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:L,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,showDateTimeRange:!1,showDistance:!1,showAngle:!1,statsPosition:S.Right},linetoolinfoline:{linecolor:L,linewidth:2,linestyle:w,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:L,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!0,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!0,showBarsRange:!0,showDateTimeRange:!0,showDistance:!0,showAngle:!0,statsPosition:S.Center},linetooltimecycles:{linecolor:"#159980",linewidth:1,fillBackground:!0,backgroundColor:"rgba(106, 168, 79, 0.5)",transparency:50,linestyle:w},linetoolsineline:{linecolor:"#159980",linewidth:1,linestyle:w},linetooltrendangle:{linecolor:L,linewidth:2,linestyle:w,textcolor:L,fontsize:12,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,extendRight:!1,extendLeft:!1,statsPosition:S.Right},linetooldisjointangle:{linecolor:le,linewidth:2,linestyle:w,fillBackground:!0,backgroundColor:ce,transparency:20,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal,textcolor:le,fontsize:12,bold:!1,italic:!1,showPrices:!1,showPriceRange:!1,showDateTimeRange:!1,showBarsRange:!1},linetoolflatbottom:{linecolor:ge,linewidth:2,linestyle:w,fillBackground:!0,backgroundColor:fe,transparency:20,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal,textcolor:ge,fontsize:12,bold:!1,italic:!1,showPrices:!1,showPriceRange:!1,showDateTimeRange:!1,showBarsRange:!1},linetoolfibspiral:{counterclockwise:!1,linecolor:H,linewidth:1,linestyle:w},linetoolriskrewardshort:{linecolor:Pe,linewidth:1,textcolor:I,fontsize:12,fillLabelBackground:!0,labelBackgroundColor:"#585858",fillBackground:!0,stopBackground:Z,profitBackground:ce,stopBackgroundTransparency:80,profitBackgroundTransparency:80,drawBorder:!1,borderColor:"#667b8b",compact:!1,riskDisplayMode:"percents",accountSize:1e3,lotSize:1,risk:25,alwaysShowStats:!1,showPriceLabels:!0},linetoolriskrewardlong:{linecolor:Pe,linewidth:1,textcolor:I,fontsize:12,fillLabelBackground:!0,labelBackgroundColor:"#585858",fillBackground:!0,stopBackground:Z,profitBackground:ce,stopBackgroundTransparency:80,profitBackgroundTransparency:80,drawBorder:!1,borderColor:"#667b8b",compact:!1,riskDisplayMode:"percents",accountSize:1e3,lotSize:1,risk:25,alwaysShowStats:!1,showPriceLabels:!0},linetoolarrow:{linecolor:L, +cssWidth:0,cssHeight:0,angle:0},linetoolbezierquadro:{linecolor:L,linewidth:1,fillBackground:!1,backgroundColor:V,transparency:50,linestyle:w,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal},linetoolbeziercubic:{linecolor:F,linewidth:1,fillBackground:!1,backgroundColor:W,transparency:80,linestyle:w,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal},linetooltrendline:{linecolor:L,linewidth:2,linestyle:w,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:L,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,showDateTimeRange:!1,showDistance:!1,showAngle:!1,statsPosition:S.Right},linetoolinfoline:{linecolor:L,linewidth:2,linestyle:w,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:L,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!0,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!0,showBarsRange:!0,showDateTimeRange:!0,showDistance:!0,showAngle:!0,statsPosition:S.Center},linetooltimecycles:{linecolor:"#159980",linewidth:1,fillBackground:!0,backgroundColor:"rgba(106, 168, 79, 0.5)",transparency:50,linestyle:w},linetoolsineline:{linecolor:"#159980",linewidth:1,linestyle:w},linetooltrendangle:{linecolor:L,linewidth:2,linestyle:w,textcolor:L,fontsize:12,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,extendRight:!1,extendLeft:!1,statsPosition:S.Right},linetooldisjointangle:{linecolor:le,linewidth:2,linestyle:w,fillBackground:!0,backgroundColor:ce,transparency:20,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal,textcolor:le,fontsize:12,bold:!1,italic:!1,showPrices:!1,showPriceRange:!1,showDateTimeRange:!1,showBarsRange:!1},linetoolflatbottom:{linecolor:ge,linewidth:2,linestyle:w,fillBackground:!0,backgroundColor:fe,transparency:20,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Normal,textcolor:ge,fontsize:12,bold:!1,italic:!1,showPrices:!1,showPriceRange:!1,showDateTimeRange:!1,showBarsRange:!1},linetoolfibspiral:{counterclockwise:!1,linecolor:H,linewidth:1,linestyle:w},linetoolriskrewardshort:{linecolor:Pe,linewidth:1,textcolor:I,fontsize:12,fillLabelBackground:!0,labelBackgroundColor:"#585858",fillBackground:!0,stopBackground:X,profitBackground:ce,stopBackgroundTransparency:80,profitBackgroundTransparency:80,drawBorder:!1,borderColor:"#667b8b",compact:!1,riskDisplayMode:"percents",accountSize:1e3,lotSize:1,risk:25,alwaysShowStats:!1,showPriceLabels:!0},linetoolriskrewardlong:{linecolor:Pe,linewidth:1,textcolor:I,fontsize:12,fillLabelBackground:!0,labelBackgroundColor:"#585858",fillBackground:!0,stopBackground:X,profitBackground:ce,stopBackgroundTransparency:80,profitBackgroundTransparency:80,drawBorder:!1,borderColor:"#667b8b",compact:!1,riskDisplayMode:"percents",accountSize:1e3,lotSize:1,risk:25,alwaysShowStats:!1,showPriceLabels:!0},linetoolarrow:{linecolor:L, linewidth:2,linestyle:w,extendLeft:!1,extendRight:!1,leftEnd:f.Normal,rightEnd:f.Arrow,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:L,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,showDateTimeRange:!1,showDistance:!1,showAngle:!1,statsPosition:S.Right},linetoolray:{linecolor:L,linewidth:2,linestyle:w,extendLeft:!1,extendRight:!0,leftEnd:f.Normal,rightEnd:f.Normal,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:L,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,showDateTimeRange:!1,showDistance:!1,showAngle:!1,statsPosition:S.Right},linetoolextended:{linecolor:L,linewidth:2,linestyle:w,extendLeft:!0,extendRight:!0,leftEnd:f.Normal,rightEnd:f.Normal,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:L,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,showDateTimeRange:!1,showDistance:!1,showAngle:!1,statsPosition:S.Right},linetoolhorzline:{linecolor:L,linewidth:2,linestyle:w,showPrice:!0,showLabel:!1,textcolor:L,fontsize:12,bold:!1,italic:!1,horzLabelsAlign:"center",vertLabelsAlign:"top"},linetoolhorzray:{linecolor:L,linewidth:2,linestyle:w,showPrice:!0,showLabel:!1,textcolor:L,fontsize:12,bold:!1,italic:!1,horzLabelsAlign:"center",vertLabelsAlign:"top"},linetoolvertline:{linecolor:L,linewidth:2,linestyle:w,extendLine:!0,showTime:!0,showLabel:!1,horzLabelsAlign:"right",vertLabelsAlign:"top",textcolor:L,textOrientation:"vertical",fontsize:14,bold:!1,italic:!1},linetoolcrossline:{linecolor:L,linewidth:2,linestyle:w,showPrice:!0,showTime:!0},linetoolcirclelines:{trendline:{visible:!0,color:"#808080",linewidth:1,linestyle:C},linecolor:"#80ccdb",linewidth:1,linestyle:w},linetoolfibtimezone:{horzLabelsAlign:"right",vertLabelsAlign:"bottom",baselinecolor:"#808080",linecolor:"#0055db",linewidth:1,linestyle:w,showLabels:!0,fillBackground:!1,transparency:80,trendline:{visible:!0,color:"#808080",linewidth:1,linestyle:C},level1:r(0,Pe,!0),level2:r(1,L,!0),level3:r(2,L,!0),level4:r(3,L,!0),level5:r(5,L,!0),level6:r(8,L,!0),level7:r(13,L,!0),level8:r(21,L,!0),level9:r(34,L,!0),level10:r(55,L,!0),level11:r(89,L,!0)},linetooltext:{color:L,fontsize:14,fillBackground:!1,backgroundColor:"rgba(91, 133, 191, 0.3)",backgroundTransparency:70,drawBorder:!1,borderColor:"#667b8b",bold:!1,italic:!1,fixedSize:!0,wordWrap:!1,wordWrapWidth:200},linetooltextabsolute:{color:L,fontsize:14,fillBackground:!1,backgroundColor:"rgba(155, 190, 213, 0.3)",backgroundTransparency:70,drawBorder:!1,borderColor:"#667b8b",bold:!1,italic:!1,fixedSize:!1,wordWrap:!1,wordWrapWidth:200},linetoolballoon:{color:I,backgroundColor:re,borderColor:ie,fontsize:14,transparency:30},linetoolcomment:{color:I,backgroundColor:L,borderColor:L,fontsize:16,transparency:0},linetoolbrush:{linecolor:H,linewidth:1,linestyle:w,smooth:5,fillBackground:!1,backgroundColor:H,transparency:50, -leftEnd:f.Normal,rightEnd:f.Normal},linetoolhighlighter:{linecolor:Z,smooth:5,transparency:80},linetoolpolyline:{linecolor:H,linewidth:1,linestyle:w,fillBackground:!0,backgroundColor:z,transparency:80,filled:!1},linetoolsignpost:{itemType:m.Emoji,emoji:"🙂",showImage:!1,plateColor:L,fontSize:12,bold:!1,italic:!1},linetoolpath:{lineColor:L,lineWidth:2,lineStyle:w,leftEnd:f.Normal,rightEnd:f.Arrow},linetoolarrowmarkleft:{color:L,arrowColor:L,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolarrowmarkup:{color:le,arrowColor:le,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolarrowmarkright:{color:L,arrowColor:L,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolarrowmarkdown:{color:ee,arrowColor:ee,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolflagmark:{flagColor:L},linetoolnote:{markerColor:L,textColor:I,backgroundColor:k,backgroundTransparency:0,borderColor:L,fontSize:14,bold:!1,italic:!1,fixedSize:!0},linetoolnoteabsolute:{markerColor:L,textColor:I,backgroundColor:k,backgroundTransparency:0,borderColor:L,fontSize:14,bold:!1,italic:!1,fixedSize:!0},linetoolpricelabel:{color:I,backgroundColor:L,borderColor:L,fontWeight:"bold",fontsize:14,transparency:0},linetoolpricenote:{showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textColor:L,fontSize:14,bold:!1,italic:!1,lineColor:L,priceLabelBackgroundColor:L,priceLabelBorderColor:L,priceLabelTextColor:I,priceLabelFontSize:12,priceLabelBold:!1,priceLabelItalic:!1},linetoolarrowmarker:{backgroundColor:R,textColor:R,bold:!0,italic:!1,fontsize:16,showLabel:!0},linetoolrectangle:{color:te,fillBackground:!0,backgroundColor:se,linewidth:1,transparency:50,showLabel:!1,horzLabelsAlign:"left",vertLabelsAlign:"bottom",textColor:te,fontSize:14,bold:!1,italic:!1,extendLeft:!1,extendRight:!1},linetoolrotatedrectangle:{color:pe,fillBackground:!0,backgroundColor:_e,transparency:50,linewidth:1},linetoolcircle:{color:ge,backgroundColor:fe,fillBackground:!0,linewidth:1,showLabel:!1,textColor:ge,fontSize:14,bold:!1,italic:!1},linetoolellipse:{color:K,fillBackground:!0,backgroundColor:Z,transparency:50,linewidth:1,showLabel:!1,textColor:K,fontSize:14,bold:!1,italic:!1},linetoolarc:{color:ne,fillBackground:!0,backgroundColor:oe,transparency:80,linewidth:1},linetoolprediction:{linecolor:L,linewidth:1,sourceBackColor:L,sourceTextColor:I,sourceStrokeColor:L,targetStrokeColor:L,targetBackColor:L,targetTextColor:I,successBackground:pe,successTextColor:I,failureBackground:K,failureTextColor:I,intermediateBackColor:"#ead289",intermediateTextColor:"#6d4d22",transparency:10,centersColor:"#202020"},linetooltriangle:{color:le,fillBackground:!0,backgroundColor:ce,transparency:80,linewidth:1},linetoolcallout:{color:I,backgroundColor:j,transparency:50,linewidth:1,fontsize:14,bordercolor:U,bold:!1,italic:!1,wordWrap:!1,wordWrapWidth:200},linetoolparallelchannel:{linecolor:L,linewidth:2,linestyle:w,extendLeft:!1,extendRight:!1,fillBackground:!0,backgroundColor:V,transparency:20,showMidline:!0,midlinecolor:L,midlinewidth:1,midlinestyle:C},linetoolelliottimpulse:{degree:7,showWave:!0, +leftEnd:f.Normal,rightEnd:f.Normal},linetoolhighlighter:{linecolor:X,smooth:5,transparency:80},linetoolpolyline:{linecolor:H,linewidth:1,linestyle:w,fillBackground:!0,backgroundColor:z,transparency:80,filled:!1},linetoolsignpost:{itemType:m.Emoji,emoji:"🙂",showImage:!1,plateColor:L,fontSize:12,bold:!1,italic:!1},linetoolpath:{lineColor:L,lineWidth:2,lineStyle:w,leftEnd:f.Normal,rightEnd:f.Arrow},linetoolarrowmarkleft:{color:L,arrowColor:L,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolarrowmarkup:{color:le,arrowColor:le,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolarrowmarkright:{color:L,arrowColor:L,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolarrowmarkdown:{color:ee,arrowColor:ee,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolflagmark:{flagColor:L},linetoolnote:{markerColor:L,textColor:I,backgroundColor:k,backgroundTransparency:0,borderColor:L,fontSize:14,bold:!1,italic:!1,fixedSize:!0},linetoolnoteabsolute:{markerColor:L,textColor:I,backgroundColor:k,backgroundTransparency:0,borderColor:L,fontSize:14,bold:!1,italic:!1,fixedSize:!0},linetoolpricelabel:{color:I,backgroundColor:L,borderColor:L,fontWeight:"bold",fontsize:14,transparency:0},linetoolpricenote:{showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textColor:L,fontSize:14,bold:!1,italic:!1,lineColor:L,priceLabelBackgroundColor:L,priceLabelBorderColor:L,priceLabelTextColor:I,priceLabelFontSize:12,priceLabelBold:!1,priceLabelItalic:!1},linetoolarrowmarker:{backgroundColor:R,textColor:R,bold:!0,italic:!1,fontsize:16,showLabel:!0},linetoolrectangle:{color:te,fillBackground:!0,backgroundColor:se,linewidth:1,transparency:50,showLabel:!1,horzLabelsAlign:"left",vertLabelsAlign:"bottom",textColor:te,fontSize:14,bold:!1,italic:!1,extendLeft:!1,extendRight:!1},linetoolrotatedrectangle:{color:pe,fillBackground:!0,backgroundColor:_e,transparency:50,linewidth:1},linetoolcircle:{color:ge,backgroundColor:fe,fillBackground:!0,linewidth:1,showLabel:!1,textColor:ge,fontSize:14,bold:!1,italic:!1},linetoolellipse:{color:K,fillBackground:!0,backgroundColor:X,transparency:50,linewidth:1,showLabel:!1,textColor:K,fontSize:14,bold:!1,italic:!1},linetoolarc:{color:ne,fillBackground:!0,backgroundColor:oe,transparency:80,linewidth:1},linetoolprediction:{linecolor:L,linewidth:1,sourceBackColor:L,sourceTextColor:I,sourceStrokeColor:L,targetStrokeColor:L,targetBackColor:L,targetTextColor:I,successBackground:pe,successTextColor:I,failureBackground:K,failureTextColor:I,intermediateBackColor:"#ead289",intermediateTextColor:"#6d4d22",transparency:10,centersColor:"#202020"},linetooltriangle:{color:le,fillBackground:!0,backgroundColor:ce,transparency:80,linewidth:1},linetoolcallout:{color:I,backgroundColor:j,transparency:50,linewidth:1,fontsize:14,bordercolor:U,bold:!1,italic:!1,wordWrap:!1,wordWrapWidth:200},linetoolparallelchannel:{linecolor:L,linewidth:2,linestyle:w,extendLeft:!1,extendRight:!1,fillBackground:!0,backgroundColor:V,transparency:20,showMidline:!0,midlinecolor:L,midlinewidth:1,midlinestyle:C},linetoolelliottimpulse:{degree:7,showWave:!0, color:"#3d85c6",linewidth:1},linetoolelliotttriangle:{degree:7,showWave:!0,color:ge,linewidth:1},linetoolelliotttriplecombo:{degree:7,showWave:!0,color:"#6aa84f",linewidth:1},linetoolelliottcorrection:{degree:7,showWave:!0,color:"#3d85c6",linewidth:1},linetoolelliottdoublecombo:{degree:7,showWave:!0,color:"#6aa84f",linewidth:1},linetoolbarspattern:{color:L,mode:c.Bars,mirrored:!1,flipped:!1},linetoolghostfeed:{averageHL:20,variance:50,candleStyle:{upColor:ae,downColor:q,drawWick:!0,drawBorder:!0,borderColor:"#378658",borderUpColor:le,borderDownColor:K,wickColor:Pe},transparency:50},study:{inputs:{},styles:{},palettes:{},bands:{},area:{},graphics:{},plots:{},ohlcPlots:{},filledAreasStyle:{},filledAreas:{},visible:!0,showLegendValues:!0,showLabelsOnPriceScale:!0,precision:"default"},linetoolpitchfork:{fillBackground:!0,transparency:80,style:l.Original,median:{visible:!0,color:K,linewidth:1,linestyle:w},extendLines:!1,level0:r(.25,me,!1),level1:r(.382,ue,!1),level2:r(.5,le,!0),level3:r(.618,le,!1),level4:r(.75,H,!1),level5:r(1,L,!0),level6:r(1.5,te,!1),level7:r(1.75,ne,!1),level8:r(2,$,!1)},linetoolpitchfan:{fillBackground:!0,transparency:80,median:{visible:!0,color:K,linewidth:1,linestyle:w},level0:r(.25,me,!1),level1:r(.382,ue,!1),level2:r(.5,H,!0),level3:r(.618,le,!1),level4:r(.75,H,!1),level5:r(1,L,!0),level6:r(1.5,te,!1),level7:r(1.75,ne,!1),level8:r(2,$,!1)},linetoolgannfan:{showLabels:!0,fillBackground:!0,transparency:80,level1:Ce(1,8,ge,!0),level2:Ce(1,4,le,!0),level3:Ce(1,3,pe,!0),level4:Ce(1,2,le,!0),level5:Ce(1,1,H,!0),level6:Ce(2,1,L,!0),level7:Ce(3,1,te,!0),level8:Ce(4,1,ne,!0),level9:Ce(8,1,K,!0)},linetoolganncomplex:{fillBackground:!1,arcsBackground:{fillBackground:!0,transparency:80},reverse:!1,scaleRatio:"",showLabels:!0,labelsStyle:{fontSize:12,bold:!1,italic:!1},levels:[h(Pe,!0,1),h(ge,!0,1),h(H,!0,1),h(pe,!0,1),h(le,!0,1),h(Pe,!0,1)],fanlines:[T(N,!1,1,8,1),T(K,!1,1,5,1),T(Pe,!1,1,4,1),T(ge,!1,1,3,1),T(H,!0,1,2,1),T(pe,!0,1,1,1),T(le,!0,1,1,2),T(le,!1,1,1,3),T(L,!1,1,1,4),T(O,!1,1,1,5),T(N,!1,1,1,8)],arcs:[T(ge,!0,1,1,0),T(ge,!0,1,1,1),T(ge,!0,1,1.5,0),T(H,!0,1,2,0),T(H,!0,1,2,1),T(pe,!0,1,3,0),T(pe,!0,1,3,1),T(le,!0,1,4,0),T(le,!0,1,4,1),T(L,!0,1,5,0),T(L,!0,1,5,1)]},linetoolgannfixed:{fillBackground:!1,arcsBackground:{fillBackground:!0,transparency:80},reverse:!1,levels:[h(Pe,!0,1),h(ge,!0,1),h(H,!0,1),h(pe,!0,1),h(le,!0,1),h(Pe,!0,1)],fanlines:[T(N,!1,1,8,1),T(K,!1,1,5,1),T(Pe,!1,1,4,1),T(ge,!1,1,3,1),T(H,!0,1,2,1),T(pe,!0,1,1,1),T(le,!0,1,1,2),T(le,!1,1,1,3),T(L,!1,1,1,4),T(O,!1,1,1,5),T(N,!1,1,1,8)],arcs:[T(ge,!0,1,1,0),T(ge,!0,1,1,1),T(ge,!0,1,1.5,0),T(H,!0,1,2,0),T(H,!0,1,2,1),T(pe,!0,1,3,0),T(pe,!0,1,3,1),T(le,!0,1,4,0),T(le,!0,1,4,1),T(L,!0,1,5,0),T(L,!0,1,5,1)]},linetoolgannsquare:{color:"rgba(21, 56, 153, 0.8)",linewidth:1,linestyle:w,showTopLabels:!0,showBottomLabels:!0,showLeftLabels:!0,showRightLabels:!0,fillHorzBackground:!0,horzTransparency:80,fillVertBackground:!0,vertTransparency:80,reverse:!1,fans:t(we,!1),hlevel1:i(0,Pe,!0),hlevel2:i(.25,ge,!0),hlevel3:i(.382,H,!0), hlevel4:i(.5,pe,!0),hlevel5:i(.618,le,!0),hlevel6:i(.75,L,!0),hlevel7:i(1,Pe,!0),vlevel1:i(0,Pe,!0),vlevel2:i(.25,ge,!0),vlevel3:i(.382,H,!0),vlevel4:i(.5,pe,!0),vlevel5:i(.618,le,!0),vlevel6:i(.75,L,!0),vlevel7:i(1,Pe,!0)},linetoolfibspeedresistancefan:{fillBackground:!0,transparency:80,grid:{color:"rgba(21, 56, 153, 0.8)",linewidth:1,linestyle:w,visible:!0},linewidth:1,linestyle:w,showTopLabels:!0,showBottomLabels:!0,showLeftLabels:!0,showRightLabels:!0,reverse:!1,hlevel1:i(0,Pe,!0),hlevel2:i(.25,ge,!0),hlevel3:i(.382,H,!0),hlevel4:i(.5,pe,!0),hlevel5:i(.618,le,!0),hlevel6:i(.75,L,!0),hlevel7:i(1,Pe,!0),vlevel1:i(0,Pe,!0),vlevel2:i(.25,ge,!0),vlevel3:i(.382,H,!0),vlevel4:i(.5,pe,!0),vlevel5:i(.618,le,!0),vlevel6:i(.75,L,!0),vlevel7:i(1,Pe,!0)},linetoolfibretracement:{showCoeffs:!0,showPrices:!0,fillBackground:!0,transparency:80,extendLines:!1,extendLinesLeft:!1,horzLabelsAlign:"left",vertLabelsAlign:"bottom",reverse:!1,coeffsAsPercents:!1,fibLevelsBasedOnLogScale:!1,labelFontSize:12,trendline:{visible:!0,color:Pe,linewidth:1,linestyle:C},levelsStyle:{linewidth:1,linestyle:w},level1:i(0,Pe,!0),level2:i(.236,K,!0),level3:i(.382,ge,!0),level4:i(.5,pe,!0),level5:i(.618,le,!0),level6:i(.786,H,!0),level7:i(1,Pe,!0),level8:i(1.618,L,!0),level9:i(2.618,K,!0),level10:i(3.618,te,!0),level11:i(4.236,ne,!0),level12:i(1.272,ge,!1),level13:i(1.414,K,!1),level16:i(2,le,!1),level14:i(2.272,ge,!1),level15:i(2.414,pe,!1),level17:i(3,H,!1),level18:i(3.272,Pe,!1),level19:i(3.414,L,!1),level20:i(4,K,!1),level21:i(4.272,te,!1),level22:i(4.414,ne,!1),level23:i(4.618,ge,!1),level24:i(4.764,le,!1)},linetoolfibchannel:{showCoeffs:!0,showPrices:!0,fillBackground:!0,transparency:80,extendLeft:!1,extendRight:!1,horzLabelsAlign:"left",vertLabelsAlign:"middle",coeffsAsPercents:!1,labelFontSize:12,levelsStyle:{linewidth:1,linestyle:w},level1:i(0,Pe,!0),level2:i(.236,K,!0),level3:i(.382,ge,!0),level4:i(.5,pe,!0),level5:i(.618,le,!0),level6:i(.786,H,!0),level7:i(1,Pe,!0),level8:i(1.618,L,!0),level9:i(2.618,K,!0),level10:i(3.618,te,!0),level11:i(4.236,ne,!0),level12:i(1.272,ge,!1),level13:i(1.414,K,!1),level16:i(2,le,!1),level14:i(2.272,ge,!1),level15:i(2.414,pe,!1),level17:i(3,H,!1),level18:i(3.272,Pe,!1),level19:i(3.414,L,!1),level20:i(4,K,!1),level21:i(4.272,te,!1),level22:i(4.414,ne,!1),level23:i(4.618,ge,!1),level24:i(4.764,le,!1)},linetoolprojection:{showCoeffs:!0,fillBackground:!0,transparency:80,color1:V,color2:se,linewidth:1,trendline:{visible:!0,color:we,linestyle:w},level1:r(1,"#808080",!0)},linetool5pointspattern:{color:L,textcolor:I,fillBackground:!0,backgroundColor:L,fontsize:12,bold:!1,italic:!1,transparency:85,linewidth:1},linetoolcypherpattern:{color:L,textcolor:I,fillBackground:!0,backgroundColor:L,fontsize:12,bold:!1,italic:!1,transparency:85,linewidth:1},linetooltrianglepattern:{color:F,textcolor:I,fillBackground:!0,backgroundColor:F,fontsize:12,bold:!1,italic:!1,transparency:85,linewidth:1},linetoolabcd:{color:le,textcolor:I,fontsize:12,bold:!1,italic:!1,linewidth:1},linetoolthreedrivers:{color:F,textcolor:I,fillBackground:!0, backgroundColor:"rgba(149, 40, 204, 0.5)",fontsize:12,bold:!1,italic:!1,transparency:50,linewidth:1},linetoolheadandshoulders:{color:le,textcolor:I,fillBackground:!0,backgroundColor:le,fontsize:12,bold:!1,italic:!1,transparency:85,linewidth:1},linetoolfibwedge:{showCoeffs:!0,fillBackground:!0,transparency:80,trendline:{visible:!0,color:"#808080",linewidth:1,linestyle:w},level1:r(.236,K,!0),level2:r(.382,ge,!0),level3:r(.5,pe,!0),level4:r(.618,le,!0),level5:r(.786,H,!0),level6:r(1,Pe,!0),level7:r(1.618,L,!1),level8:r(2.618,K,!1),level9:r(3.618,F,!1),level10:r(4.236,ne,!1),level11:r(4.618,ne,!1)},linetoolfibcircles:{showCoeffs:!0,fillBackground:!0,transparency:80,coeffsAsPercents:!1,trendline:{visible:!0,color:Pe,linewidth:1,linestyle:C},level1:r(.236,K,!0),level2:r(.382,ge,!0),level3:r(.5,le,!0),level4:r(.618,pe,!0),level5:r(.786,H,!0),level6:r(1,Pe,!0),level7:r(1.618,L,!0),level8:r(2.618,ne,!0),level9:r(3.618,L,!0),level10:r(4.236,ne,!0),level11:r(4.618,K,!0)},linetoolfibspeedresistancearcs:{showCoeffs:!0,fillBackground:!0,transparency:80,fullCircles:!1,trendline:{visible:!0,color:Pe,linewidth:1,linestyle:C},level1:r(.236,K,!0),level2:r(.382,ge,!0),level3:r(.5,le,!0),level4:r(.618,pe,!0),level5:r(.786,H,!0),level6:r(1,Pe,!0),level7:r(1.618,L,!0),level8:r(2.618,ne,!0),level9:r(3.618,L,!0),level10:r(4.236,ne,!0),level11:r(4.618,K,!0)},linetooltrendbasedfibextension:{showCoeffs:!0,showPrices:!0,fillBackground:!0,transparency:80,extendLines:!1,extendLinesLeft:!1,horzLabelsAlign:"left",vertLabelsAlign:"bottom",reverse:!1,coeffsAsPercents:!1,fibLevelsBasedOnLogScale:!1,labelFontSize:12,trendline:{visible:!0,color:Pe,linewidth:1,linestyle:C},levelsStyle:{linewidth:1,linestyle:w},level1:i(0,Pe,!0),level2:i(.236,K,!0),level3:i(.382,ge,!0),level4:i(.5,pe,!0),level5:i(.618,le,!0),level6:i(.786,H,!0),level7:i(1,Pe,!0),level8:i(1.618,L,!0),level9:i(2.618,K,!0),level10:i(3.618,te,!0),level11:i(4.236,ne,!0),level12:i(1.272,ge,!1),level13:i(1.414,K,!1),level16:i(2,le,!1),level14:i(2.272,ge,!1),level15:i(2.414,pe,!1),level17:i(3,H,!1),level18:i(3.272,Pe,!1),level19:i(3.414,L,!1),level20:i(4,K,!1),level21:i(4.272,te,!1),level22:i(4.414,ne,!1),level23:i(4.618,ge,!1),level24:i(4.764,le,!1)},linetooltrendbasedfibtime:{showCoeffs:!0,fillBackground:!0,transparency:80,horzLabelsAlign:"right",vertLabelsAlign:"bottom",trendline:{visible:!0,color:Pe,linewidth:1,linestyle:C},level1:r(0,Pe,!0),level2:r(.382,K,!0),level3:r(.5,ue,!1),level4:r(.618,pe,!0),level5:r(1,le,!0),level6:r(1.382,H,!0),level7:r(1.618,Pe,!0),level8:r(2,L,!0),level9:r(2.382,ne,!0),level10:r(2.618,te,!0),level11:r(3,F,!0)},linetoolschiffpitchfork:{fillBackground:!0,transparency:80,style:l.Schiff,median:{visible:!0,color:K,linewidth:1,linestyle:w},extendLines:!1,level0:r(.25,me,!1),level1:r(.382,ue,!1),level2:r(.5,le,!0),level3:r(.618,le,!1),level4:r(.75,H,!1),level5:r(1,L,!0),level6:r(1.5,te,!1),level7:r(1.75,ne,!1),level8:r(2,$,!1)},linetoolschiffpitchfork2:{fillBackground:!0,transparency:80,style:l.Schiff2,median:{visible:!0,color:K,linewidth:1,linestyle:w},extendLines:!1, -level0:r(.25,me,!1),level1:r(.382,ue,!1),level2:r(.5,le,!0),level3:r(.618,le,!1),level4:r(.75,H,!1),level5:r(1,L,!0),level6:r(1.5,te,!1),level7:r(1.75,ne,!1),level8:r(2,$,!1)},linetoolinsidepitchfork:{fillBackground:!0,transparency:80,style:l.Inside,median:{visible:!0,color:K,linewidth:1,linestyle:w},extendLines:!1,level0:r(.25,me,!1),level1:r(.382,ue,!1),level2:r(.5,le,!0),level3:r(.618,le,!1),level4:r(.75,H,!1),level5:r(1,L,!0),level6:r(1.5,te,!1),level7:r(1.75,ne,!1),level8:r(2,$,!1)},linetoolregressiontrend:{linewidth:1,linestyle:w,styles:{upLine:{display:u.All,color:E,linestyle:w,linewidth:2},downLine:{display:u.All,color:E,linestyle:w,linewidth:2},baseLine:{display:u.All,color:X,linestyle:C,linewidth:1},extendLines:!1,showPearsons:!0,transparency:70}}},Re(TradingView.defaultProperties.chartproperties),Oe()}if(void 0===TradingView.defaultProperties["study_MA@tv-basicstudies"]&&(TradingView.defaultProperties["study_MA@tv-basicstudies"]={description:"Moving Average",shortDescription:"MA",inputs:{length:9,source:"close"},styles:{MovAvg:{display:u.All,color:L,linestyle:w,linewidth:1,plottype:d.Line,histogramBase:0,title:"MA"}}}),void 0===TradingView.defaultProperties["study_PivotPointsHighLow@tv-basicstudies"]&&(TradingView.defaultProperties["study_PivotPointsHighLow@tv-basicstudies"]={fontsize:10,borderColor:L,backColor:A,textColor:Ie}),void 0===TradingView.defaultProperties["study_PivotPointsStandard@tv-basicstudies"]){var Ve=!0;TradingView.defaultProperties["study_PivotPointsStandard@tv-basicstudies"]={_hardCodedDefaultsVersion:1,fontsize:11,levelsStyle:{showLabels:!0,visibility:{P:Ve,"S1/R1":Ve,"S2/R2":Ve,"S3/R3":Ve,"S4/R4":Ve,"S5/R5":Ve},colors:{P:ve,"S1/R1":ve,"S2/R2":ve,"S3/R3":ve,"S4/R4":ve,"S5/R5":ve},widths:{P:1,"S1/R1":1,"S2/R2":1,"S3/R3":1,"S4/R4":1,"S5/R5":1}}}}if(void 0===TradingView.defaultProperties["study_ZigZag@tv-basicstudies"]&&(TradingView.defaultProperties["study_ZigZag@tv-basicstudies"]={color:L,linewidth:2}),void 0===TradingView.defaultProperties["study_ElliottWave@tv-basicstudies"]&&(TradingView.defaultProperties["study_ElliottWave@tv-basicstudies"]={inputs:{},level0:t(G,!1),level1:t("#008000",!1),level2:t("#0000ff",!1),level3:t("#ff00ff",!1),level4:t("#0080ff",!0),level5:t(G,!0),level6:t("#008000",!0),level7:t("#0000ff",!0),level8:t("#ff00ff",!0)}),void 0===TradingView.defaultProperties["study_LinearRegression@tv-basicstudies"]&&(TradingView.defaultProperties["study_LinearRegression@tv-basicstudies"]={styles:{upLine:{display:u.All,color:E,linestyle:w,linewidth:1},downLine:{display:u.All,color:E,linestyle:w,linewidth:1},baseLine:{display:u.All,color:X,linestyle:w,linewidth:1},extendLines:!0,showPearsons:!0,backgroundColor:"rgba(153, 21, 21, 0.3)",transparency:70}}),void 0===TradingView.defaultProperties["study_Compare@tv-basicstudies"]&&(TradingView.defaultProperties["study_Compare@tv-basicstudies"]={minTick:"default"}),void 0===TradingView.defaultProperties["study_Overlay@tv-basicstudies"]){TradingView.defaultProperties["study_Overlay@tv-basicstudies"]={style:a.STYLE_LINE, +level0:r(.25,me,!1),level1:r(.382,ue,!1),level2:r(.5,le,!0),level3:r(.618,le,!1),level4:r(.75,H,!1),level5:r(1,L,!0),level6:r(1.5,te,!1),level7:r(1.75,ne,!1),level8:r(2,$,!1)},linetoolinsidepitchfork:{fillBackground:!0,transparency:80,style:l.Inside,median:{visible:!0,color:K,linewidth:1,linestyle:w},extendLines:!1,level0:r(.25,me,!1),level1:r(.382,ue,!1),level2:r(.5,le,!0),level3:r(.618,le,!1),level4:r(.75,H,!1),level5:r(1,L,!0),level6:r(1.5,te,!1),level7:r(1.75,ne,!1),level8:r(2,$,!1)},linetoolregressiontrend:{linewidth:1,linestyle:w,styles:{upLine:{display:u.All,color:E,linestyle:w,linewidth:2},downLine:{display:u.All,color:E,linestyle:w,linewidth:2},baseLine:{display:u.All,color:Z,linestyle:C,linewidth:1},extendLines:!1,showPearsons:!0,transparency:70}}},Re(TradingView.defaultProperties.chartproperties),Oe()}if(void 0===TradingView.defaultProperties["study_MA@tv-basicstudies"]&&(TradingView.defaultProperties["study_MA@tv-basicstudies"]={description:"Moving Average",shortDescription:"MA",inputs:{length:9,source:"close"},styles:{MovAvg:{display:u.All,color:L,linestyle:w,linewidth:1,plottype:d.Line,histogramBase:0,title:"MA"}}}),void 0===TradingView.defaultProperties["study_PivotPointsHighLow@tv-basicstudies"]&&(TradingView.defaultProperties["study_PivotPointsHighLow@tv-basicstudies"]={fontsize:10,borderColor:L,backColor:A,textColor:Ie}),void 0===TradingView.defaultProperties["study_PivotPointsStandard@tv-basicstudies"]){var Ve=!0;TradingView.defaultProperties["study_PivotPointsStandard@tv-basicstudies"]={_hardCodedDefaultsVersion:1,fontsize:11,levelsStyle:{showLabels:!0,visibility:{P:Ve,"S1/R1":Ve,"S2/R2":Ve,"S3/R3":Ve,"S4/R4":Ve,"S5/R5":Ve},colors:{P:ve,"S1/R1":ve,"S2/R2":ve,"S3/R3":ve,"S4/R4":ve,"S5/R5":ve},widths:{P:1,"S1/R1":1,"S2/R2":1,"S3/R3":1,"S4/R4":1,"S5/R5":1}}}}if(void 0===TradingView.defaultProperties["study_ZigZag@tv-basicstudies"]&&(TradingView.defaultProperties["study_ZigZag@tv-basicstudies"]={color:L,linewidth:2}),void 0===TradingView.defaultProperties["study_ElliottWave@tv-basicstudies"]&&(TradingView.defaultProperties["study_ElliottWave@tv-basicstudies"]={inputs:{},level0:t(G,!1),level1:t("#008000",!1),level2:t("#0000ff",!1),level3:t("#ff00ff",!1),level4:t("#0080ff",!0),level5:t(G,!0),level6:t("#008000",!0),level7:t("#0000ff",!0),level8:t("#ff00ff",!0)}),void 0===TradingView.defaultProperties["study_LinearRegression@tv-basicstudies"]&&(TradingView.defaultProperties["study_LinearRegression@tv-basicstudies"]={styles:{upLine:{display:u.All,color:E,linestyle:w,linewidth:1},downLine:{display:u.All,color:E,linestyle:w,linewidth:1},baseLine:{display:u.All,color:Z,linestyle:w,linewidth:1},extendLines:!0,showPearsons:!0,backgroundColor:"rgba(153, 21, 21, 0.3)",transparency:70}}),void 0===TradingView.defaultProperties["study_Compare@tv-basicstudies"]&&(TradingView.defaultProperties["study_Compare@tv-basicstudies"]={minTick:"default"}),void 0===TradingView.defaultProperties["study_Overlay@tv-basicstudies"]){TradingView.defaultProperties["study_Overlay@tv-basicstudies"]={style:a.STYLE_LINE, allowExtendTimeScale:!1,showPriceLine:!1,minTick:"default",candleStyle:{upColor:"#6ba583",downColor:"#d75442",drawWick:!0,drawBorder:!0,drawBody:!0,borderColor:"#378658",borderUpColor:"#225437",borderDownColor:"#5b1a13",wickColor:"#737375",wickUpColor:"#737375",wickDownColor:"#737375",barColorsOnPrevClose:!1},hollowCandleStyle:{upColor:"#6ba583",downColor:"#d75442",drawWick:!0,drawBorder:!0,drawBody:!0,borderColor:"#378658",borderUpColor:"#225437",borderDownColor:"#5b1a13",wickColor:"#737375",wickUpColor:"#737375",wickDownColor:"#737375",barColorsOnPrevClose:!1},barStyle:{upColor:"#6ba583",downColor:"#d75442",barColorsOnPrevClose:!1,dontDrawOpen:!1,thinBars:!0},lineStyle:{color:Se,linestyle:w,linewidth:2,priceSource:"close",styleType:a.STYLE_LINE_TYPE_SIMPLE},areaStyle:{color1:L,color2:L,linecolor:L,linestyle:w,linewidth:2,priceSource:"close",transparency:95},baselineStyle:{baselineColor:Ae,topFillColor1:ke,topFillColor2:ke,bottomFillColor1:De,bottomFillColor2:De,topLineColor:Le,bottomLineColor:Ee,topLineWidth:2,bottomLineWidth:2,priceSource:"close",transparency:50,baseLevelPercentage:50},hiloStyle:{color:L,showBorders:!0,borderColor:L,showLabels:!0,labelColor:L,drawBody:!0},columnStyle:{upColor:n(le,50),downColor:n(K,50),barColorsOnPrevClose:!0,priceSource:"close"},styles:{open:{display:u.All,color:G,linestyle:w,linewidth:1,plottype:d.Line,histogramBase:0},high:{display:u.All,color:G,linestyle:w,linewidth:1,plottype:d.Line,histogramBase:0},low:{display:u.All,color:G,linestyle:w,linewidth:1,plottype:d.Line,histogramBase:0},close:{display:u.All,color:G,linestyle:w,linewidth:1,plottype:d.Line,histogramBase:0}}}}for(var Ne=e.split("."),Fe=TradingView.defaultProperties,We=0;We1?h(e[r],t.slice(1),i):(e[r]&&e[r].setValue?e[r].setValue(i):e[r]=i,!0))}function d(e){i||T.logWarn("Path `"+e+"` does not exist.")}}function Re(e,t,i,s){window.__defaultsOverrides&&Ve(e,t,i,window.__defaultsOverrides,s)}function Ne(e,t){window.__settingsOverrides&&Ve(e,null,!1,window.__settingsOverrides,t)}function Oe(){var e=/^linetool.+/;Object.keys(TradingView.defaultProperties).forEach((function(t){e.test(t)&&Re(TradingView.defaultProperties[t],null,!1,t)}))}function Fe(e,t){return t?function(e,t){var i=Be(e);if(!window._UNIT_TESTS){var s=TradingView.clone(TVSettings.getJSON(e,null));if(function(e){var t=new Set(["linetoolregressiontrend"]);return e.startsWith("study_")||t.has(e)}(e)&&s&&function(e){if(!e)return!1;e=e.toString();var t=new RegExp("\\d+").exec(e);return null!==t&&t[0]===e}(s.version)){var r=s.inputs,n=t.updateStudyInputs(s.id,s.version,"last",r,null);s.inputs=n,s=t.updateStudyState(s,s)}TradingView.merge(i,s),Ne(i,e)}return i}(e,t):function(e){ -var t=Be(e);if(!window._UNIT_TESTS){var i=TradingView.clone(TVSettings.getJSON(e,null));if(i){TradingView.merge(t,i);const s=e.split(".");Ne(t,void 0===s[1]?e:s[1])}}return t}(e)}Fe.create=function(e,t){if(t){var i=Be(e);TradingView.defaultProperties[e]=Object.assign(t,i)}},Fe.remove=function(e){TradingView.defaultProperties[e]=void 0},TradingView.saveDefaults=function(e,t){void 0===t?TVSettings.remove(e):TVSettings.setJSON(e,t)},TradingView.factoryDefaults=Be,window.applyDefaultOverridesToLinetools=Oe,window.applyDefaultsOverrides=Re,window.applyPropertiesOverrides=Ve,window.defaults=Fe,t.applyDefaultOverridesToLinetools=Oe,t.applyDefaultsOverrides=Re,t.applyPropertiesOverrides=Ve,t.defaults=Fe,t.factoryDefaults=Be,t.saveDefaults=TradingView.saveDefaults},76076:(e,t,i)=>{"use strict";i.r(t),i.d(t,{SelectPointMode:()=>s,toolIsCursor:()=>_,toolIsMeasure:()=>m,resetToCursor:()=>g,lockTimeAxisTime:()=>P,tool:()=>C,iconTool:()=>T,emojiTool:()=>x,cursorTool:()=>I,isToolCreatingNow:()=>M,isToolEditingNow:()=>A,isToolMovingNow:()=>L,isDirectionalMovementActive:()=>k,createdLineTool:()=>E,continuedLineTool:()=>D,cancelledLineTool:()=>B,beenSetLineToolLastPoint:()=>V,startedMovingLineTool:()=>R,movedLineTool:()=>N,finishedMovingLineTool:()=>O,startedChangingLineTool:()=>F,changedLineTool:()=>W,finishedChangingLineTool:()=>H,removedLineTool:()=>z,finishedLineTool:()=>U,changedLineStyle:()=>j,copiedLineTool:()=>G,restoredLineTool:()=>q,restoredLineToolState:()=>$,activePointSelectionMode:()=>Y,isStudyEditingNow:()=>K,createLineTool:()=>J,continueLineTool:()=>Q,cancelLineTool:()=>ee,setLineToolLastPoint:()=>te,startMovingLineTool:()=>ie,moveLineTool:()=>se,finishMovingLineTool:()=>re,startChangingLineTool:()=>ne,changeLineTool:()=>oe,finishChangingLineTool:()=>ae,removeLineTool:()=>le,finishLineTool:()=>ce,changeLineStyle:()=>he,copyLineTool:()=>de,restoreLineTool:()=>ue,restoreLineToolState:()=>pe,init:()=>ge,runOnDrawingStateReady:()=>fe,properties:()=>ve,hideAllDrawings:()=>Se,hideAllIndicators:()=>ye,lockDrawings:()=>be,hideMarksOnBars:()=>we,drawOnAllCharts:()=>Pe,drawOnAllChartsMode:()=>Ce,lockTimeAxis:()=>Te});var s,r=i(50151),n=i(60923),o=i(7711),a=i(40549),l=i.n(a),c=i(26867),h=i.n(c),d=i(56840),u=i(76422),p=i(64548);function _(e){return"cursor"===e||"arrow"===e||"dot"===e}function m(e){return"measure"===e}function g(e=!1){if(!e&&f){if(f.childs().stayInDrawingMode.value())return}C.setValue(I.value())}!function(e){e[e.None=0]="None",e[e.Replay=1]="Replay",e[e.Study=2]="Study"}(s||(s={}));let f=null,v=null,S=null,y=null,b=null,w=null;const P=new(l()),C=new(l()),T=new(l()),x=new(l()),I=new(l()),M=new(l())(!1),A=new(l())(!1),L=new(l())(!1),k=new(l())(!1),E=new(h()),D=new(h()),B=new(h()),V=new(h()),R=new(h()),N=new(h()),O=new(h()),F=new(h()),W=new(h()),H=new(h()),z=new(h()),U=new(h()),j=new(h()),G=new(h()),q=new(h()),$=new(h()),Y=new(l())(s.None),K=new(l())(!1);function X(e,t){const i=t||{value:!1};return t=>{i.value||(i.value=!0,e.fire(t),i.value=!1)}}const Z={value:!1 -},J=X(E,Z),Q=X(D,Z),ee=X(B,Z),te=X(V,Z),ie=X(R),se=X(N),re=X(O),ne=X(F),oe=X(W),ae=X(H),le=X(z),ce=X(U),he=X(j,Z),de=X(G,Z),ue=X(q),pe=X($);let _e=!1,me=[];function ge(){_e||(C.setValue(d.getValue("chart.cursorPreference","cursor")),C.subscribe((e=>_(e)&&I.setValue(e)),{callWithLast:!0}),I.subscribe((e=>{e&&d.setValue("chart.cursorPreference",e)})),f=new o.DefaultProperty("drawings"),v=(0,n.createPrimitiveProperty)(),S=(0,n.createPrimitiveProperty)(),y=(0,n.createPrimitiveProperty)(),b=(0,n.createPrimitiveProperty)(),w=(0,n.createPrimitiveProperty)(),v.setValue(!1),S.setValue(!1),y.setValue(!1),b.setValue(!1),w.setValue(!1),C.subscribe((()=>{(0,u.emit)("onSelectedLineToolChanged")})),T.subscribe((()=>{(0,p.saveDefaults)("linetoolicon",{...(0,p.defaults)("linetoolicon"),icon:T.value()})})),x.subscribe((()=>{(0,p.saveDefaults)("linetoolemoji",{...(0,p.defaults)("linetoolemoji"),emoji:x.value()})})),_e=!0,me.forEach((e=>e())),me=[])}function fe(e){_e?e():me.push(e)}function ve(){return(0,r.ensureNotNull)(f)}function Se(){return(0,r.ensureNotNull)(v)}function ye(){return(0,r.ensureNotNull)(S)}function be(){return(0,r.ensureNotNull)(y)}function we(){return(0,r.ensureNotNull)(b)}function Pe(){return ve().childs().drawOnAllCharts}function Ce(){return ve().childs().drawOnAllChartsMode}function Te(){return(0,r.ensureNotNull)(w)}},55611:(e,t,i)=>{"use strict";i.d(t,{EnvironmentState:()=>r});var s=i(49483);class r{constructor(e,t=!1){this._shift=!1,this._mod=!1,this._alt=!1,void 0!==e&&(this._shift=Boolean(e.shiftKey),this._mod=Boolean((0,s.isMac)()?e.metaKey:e.ctrlKey),this._alt=Boolean(e.altKey)),this._isApiEvent=t}shift(){return this._shift}mod(){return this._mod}alt(){return this._alt}shiftOnly(){return this._shift&&!this._mod&&!this._alt}modOnly(){return this._mod&&!this._shift&&!this._alt}altOnly(){return this._alt&&!this._shift&&!this._mod}modShift(){return this._shift&&this._mod&&!this._alt}isApiEvent(){return this._isApiEvent}static create(e=!1,t=!1,i=!1){return new r({shiftKey:e,ctrlKey:t,metaKey:t,altKey:i})}}},91035:(e,t,i)=>{"use strict";function s(e){return"="+JSON.stringify(r(e))}function r(e){return Object.keys(e).sort().reduce(((t,i)=>("[object Object]"===Object.prototype.toString.call(e[i])?t[i]=r(e[i]):t[i]=e[i],t)),{})}function n(e){return s(e)}function o(e){return"="===e[0]}function a(e){if(!o(e))return{symbol:e};try{return JSON.parse(e.slice(1))}catch(t){return{symbol:e}}}function l(e){return"string"==typeof e?e:l(e.symbol)}i.r(t),i.d(t,{encodeExtendedSymbolOrGetSimpleSymbolString:()=>n,isEncodedExtendedSymbol:()=>o,decodeExtendedSymbol:()=>a,unwrapSimpleSymbol:()=>l})},69145:(e,t,i)=>{"use strict";i.d(t,{customFormatters:()=>s});const s={dateFormatter:null,timeFormatter:null,tickMarkFormatter:null,priceFormatterFactory:null,studyFormatterFactory:null}},54808:(e,t,i)=>{"use strict";i.d(t,{dateFormatFunctions:()=>m,getDateFormatWithWeekday:()=>g,availableDateFormats:()=>f,defaultDateFormat:()=>v});var s=i(44352),r=i(28865),n=i(74599);const o={1:()=>s.t(null,void 0,i(95425)),2:()=>s.t(null,void 0,i(35050)), +var t=Be(e);if(!window._UNIT_TESTS){var i=TradingView.clone(TVSettings.getJSON(e,null));if(i){TradingView.merge(t,i);const s=e.split(".");Ne(t,void 0===s[1]?e:s[1])}}return t}(e)}Fe.create=function(e,t){if(t){var i=Be(e);TradingView.defaultProperties[e]=Object.assign(t,i)}},Fe.remove=function(e){TradingView.defaultProperties[e]=void 0},TradingView.saveDefaults=function(e,t){void 0===t?TVSettings.remove(e):TVSettings.setJSON(e,t)},TradingView.factoryDefaults=Be,window.applyDefaultOverridesToLinetools=Oe,window.applyDefaultsOverrides=Re,window.applyPropertiesOverrides=Ve,window.defaults=Fe,t.applyDefaultOverridesToLinetools=Oe,t.applyDefaultsOverrides=Re,t.applyPropertiesOverrides=Ve,t.defaults=Fe,t.factoryDefaults=Be,t.saveDefaults=TradingView.saveDefaults},76076:(e,t,i)=>{"use strict";i.r(t),i.d(t,{SelectPointMode:()=>s,toolIsCursor:()=>_,toolIsMeasure:()=>m,resetToCursor:()=>g,lockTimeAxisTime:()=>P,tool:()=>C,iconTool:()=>T,emojiTool:()=>x,cursorTool:()=>I,isToolCreatingNow:()=>M,isToolEditingNow:()=>A,isToolMovingNow:()=>L,isDirectionalMovementActive:()=>k,createdLineTool:()=>E,continuedLineTool:()=>D,cancelledLineTool:()=>B,beenSetLineToolLastPoint:()=>V,startedMovingLineTool:()=>R,movedLineTool:()=>N,finishedMovingLineTool:()=>O,startedChangingLineTool:()=>F,changedLineTool:()=>W,finishedChangingLineTool:()=>H,removedLineTool:()=>z,finishedLineTool:()=>U,changedLineStyle:()=>j,copiedLineTool:()=>G,restoredLineTool:()=>q,restoredLineToolState:()=>$,activePointSelectionMode:()=>Y,isStudyEditingNow:()=>K,createLineTool:()=>J,continueLineTool:()=>Q,cancelLineTool:()=>ee,setLineToolLastPoint:()=>te,startMovingLineTool:()=>ie,moveLineTool:()=>se,finishMovingLineTool:()=>re,startChangingLineTool:()=>ne,changeLineTool:()=>oe,finishChangingLineTool:()=>ae,removeLineTool:()=>le,finishLineTool:()=>ce,changeLineStyle:()=>he,copyLineTool:()=>de,restoreLineTool:()=>ue,restoreLineToolState:()=>pe,init:()=>ge,runOnDrawingStateReady:()=>fe,properties:()=>ve,hideAllDrawings:()=>Se,hideAllIndicators:()=>ye,lockDrawings:()=>be,hideMarksOnBars:()=>we,drawOnAllCharts:()=>Pe,drawOnAllChartsMode:()=>Ce,lockTimeAxis:()=>Te});var s,r=i(50151),n=i(60923),o=i(7711),a=i(40549),l=i.n(a),c=i(26867),h=i.n(c),d=i(56840),u=i(76422),p=i(64548);function _(e){return"cursor"===e||"arrow"===e||"dot"===e}function m(e){return"measure"===e}function g(e=!1){if(!e&&f){if(f.childs().stayInDrawingMode.value())return}C.setValue(I.value())}!function(e){e[e.None=0]="None",e[e.Replay=1]="Replay",e[e.Study=2]="Study"}(s||(s={}));let f=null,v=null,S=null,y=null,b=null,w=null;const P=new(l()),C=new(l()),T=new(l()),x=new(l()),I=new(l()),M=new(l())(!1),A=new(l())(!1),L=new(l())(!1),k=new(l())(!1),E=new(h()),D=new(h()),B=new(h()),V=new(h()),R=new(h()),N=new(h()),O=new(h()),F=new(h()),W=new(h()),H=new(h()),z=new(h()),U=new(h()),j=new(h()),G=new(h()),q=new(h()),$=new(h()),Y=new(l())(s.None),K=new(l())(!1);function Z(e,t){const i=t||{value:!1};return t=>{i.value||(i.value=!0,e.fire(t),i.value=!1)}}const X={value:!1 +},J=Z(E,X),Q=Z(D,X),ee=Z(B,X),te=Z(V,X),ie=Z(R),se=Z(N),re=Z(O),ne=Z(F),oe=Z(W),ae=Z(H),le=Z(z),ce=Z(U),he=Z(j,X),de=Z(G,X),ue=Z(q),pe=Z($);let _e=!1,me=[];function ge(){_e||(C.setValue(d.getValue("chart.cursorPreference","cursor")),C.subscribe((e=>_(e)&&I.setValue(e)),{callWithLast:!0}),I.subscribe((e=>{e&&d.setValue("chart.cursorPreference",e)})),f=new o.DefaultProperty("drawings"),v=(0,n.createPrimitiveProperty)(),S=(0,n.createPrimitiveProperty)(),y=(0,n.createPrimitiveProperty)(),b=(0,n.createPrimitiveProperty)(),w=(0,n.createPrimitiveProperty)(),v.setValue(!1),S.setValue(!1),y.setValue(!1),b.setValue(!1),w.setValue(!1),C.subscribe((()=>{(0,u.emit)("onSelectedLineToolChanged")})),T.subscribe((()=>{(0,p.saveDefaults)("linetoolicon",{...(0,p.defaults)("linetoolicon"),icon:T.value()})})),x.subscribe((()=>{(0,p.saveDefaults)("linetoolemoji",{...(0,p.defaults)("linetoolemoji"),emoji:x.value()})})),_e=!0,me.forEach((e=>e())),me=[])}function fe(e){_e?e():me.push(e)}function ve(){return(0,r.ensureNotNull)(f)}function Se(){return(0,r.ensureNotNull)(v)}function ye(){return(0,r.ensureNotNull)(S)}function be(){return(0,r.ensureNotNull)(y)}function we(){return(0,r.ensureNotNull)(b)}function Pe(){return ve().childs().drawOnAllCharts}function Ce(){return ve().childs().drawOnAllChartsMode}function Te(){return(0,r.ensureNotNull)(w)}},55611:(e,t,i)=>{"use strict";i.d(t,{EnvironmentState:()=>r});var s=i(49483);class r{constructor(e,t=!1){this._shift=!1,this._mod=!1,this._alt=!1,void 0!==e&&(this._shift=Boolean(e.shiftKey),this._mod=Boolean((0,s.isMac)()?e.metaKey:e.ctrlKey),this._alt=Boolean(e.altKey)),this._isApiEvent=t}shift(){return this._shift}mod(){return this._mod}alt(){return this._alt}shiftOnly(){return this._shift&&!this._mod&&!this._alt}modOnly(){return this._mod&&!this._shift&&!this._alt}altOnly(){return this._alt&&!this._shift&&!this._mod}modShift(){return this._shift&&this._mod&&!this._alt}isApiEvent(){return this._isApiEvent}static create(e=!1,t=!1,i=!1){return new r({shiftKey:e,ctrlKey:t,metaKey:t,altKey:i})}}},91035:(e,t,i)=>{"use strict";function s(e){return"="+JSON.stringify(r(e))}function r(e){return Object.keys(e).sort().reduce(((t,i)=>("[object Object]"===Object.prototype.toString.call(e[i])?t[i]=r(e[i]):t[i]=e[i],t)),{})}function n(e){return s(e)}function o(e){return"="===e[0]}function a(e){if(!o(e))return{symbol:e};try{return JSON.parse(e.slice(1))}catch(t){return{symbol:e}}}function l(e){return"string"==typeof e?e:l(e.symbol)}i.r(t),i.d(t,{encodeExtendedSymbolOrGetSimpleSymbolString:()=>n,isEncodedExtendedSymbol:()=>o,decodeExtendedSymbol:()=>a,unwrapSimpleSymbol:()=>l})},69145:(e,t,i)=>{"use strict";i.d(t,{customFormatters:()=>s});const s={dateFormatter:null,timeFormatter:null,tickMarkFormatter:null,priceFormatterFactory:null,studyFormatterFactory:null}},54808:(e,t,i)=>{"use strict";i.d(t,{dateFormatFunctions:()=>m,getDateFormatWithWeekday:()=>g,availableDateFormats:()=>f,defaultDateFormat:()=>v});var s=i(44352),r=i(28865),n=i(74599);const o={1:()=>s.t(null,void 0,i(95425)),2:()=>s.t(null,void 0,i(35050)), 3:()=>s.t(null,void 0,i(51369)),4:()=>s.t(null,void 0,i(42762)),5:()=>s.t(null,{context:"short"},i(27991)),6:()=>s.t(null,void 0,i(15224)),7:()=>s.t(null,void 0,i(6215)),8:()=>s.t(null,void 0,i(38465)),9:()=>s.t(null,void 0,i(57902)),10:()=>s.t(null,void 0,i(73546)),11:()=>s.t(null,void 0,i(71230)),12:()=>s.t(null,void 0,i(92203))},a=(e,t)=>(t?e.getMonth():e.getUTCMonth())+1,l=(e,t)=>t?e.getFullYear():e.getUTCFullYear(),c=e=>e.toLocaleDateString(window.language?(0,r.getIsoLanguageCodeFromLanguage)(window.language):void 0,{weekday:"short",timeZone:"UTC"}),h=(e,t)=>(0,n.numberToStringWithLeadingZero)(((e,t)=>t?e.getDate():e.getUTCDate())(e,t),2),d=(e,t)=>o[a(e,t)](),u=(e,t)=>(0,n.numberToStringWithLeadingZero)(a(e,t),2),p=(e,t)=>(0,n.numberToStringWithLeadingZero)(l(e,t)%100,2),_=(e,t)=>(0,n.numberToStringWithLeadingZero)(l(e,t),4),m={"dd MMM 'yy":(e,t)=>`${h(e,t)} ${d(e,t)} '${p(e,t)}`,"MMM dd, yyyy":(e,t)=>`${d(e,t)} ${h(e,t)}, ${_(e,t)}`,"MMM dd":(e,t)=>`${d(e,t)} ${h(e,t)}`,"dd MMM":(e,t)=>`${h(e,t)} ${d(e,t)}`,"yyyy-MM-dd":(e,t)=>`${_(e,t)}-${u(e,t)}-${h(e,t)}`,"yy-MM-dd":(e,t)=>`${p(e,t)}-${u(e,t)}-${h(e,t)}`,"yy/MM/dd":(e,t)=>`${p(e,t)}/${u(e,t)}/${h(e,t)}`,"yyyy/MM/dd":(e,t)=>`${_(e,t)}/${u(e,t)}/${h(e,t)}`,"dd-MM-yyyy":(e,t)=>`${h(e,t)}-${u(e,t)}-${_(e,t)}`,"dd-MM-yy":(e,t)=>`${h(e,t)}-${u(e,t)}-${p(e,t)}`,"dd/MM/yy":(e,t)=>`${h(e,t)}/${u(e,t)}/${p(e,t)}`,"dd/MM/yyyy":(e,t)=>`${h(e,t)}/${u(e,t)}/${_(e,t)}`,"MM/dd/yy":(e,t)=>`${u(e,t)}/${h(e,t)}/${p(e,t)}`,"MM/dd/yyyy":(e,t)=>`${u(e,t)}/${h(e,t)}/${_(e,t)}`};function g(e){return"ja"===window.language?(t,i)=>`${m[e](t,i)} (${c(t)})`:(t,i)=>`${c(t)} ${m[e](t,i)}`}const f=Object.keys(m),v=()=>-1!==["ja","ko","zh","zh_TW"].indexOf(window.language||"")?"yyyy-MM-dd":"dd MMM 'yy"},86985:(e,t,i)=>{"use strict";i.d(t,{DateFormatter:()=>n});var s=i(69145),r=i(54808);class n{constructor(e="yyyy-MM-dd",t=!1){this._dateFormatFunc=t?(0,r.getDateFormatWithWeekday)(e):r.dateFormatFunctions[e]}format(e){return s.customFormatters&&s.customFormatters.dateFormatter?s.customFormatters.dateFormatter.format(e):this._dateFormatFunc(e,!1)}formatLocal(e){return s.customFormatters.dateFormatter?s.customFormatters.dateFormatter.formatLocal?s.customFormatters.dateFormatter.formatLocal(e):s.customFormatters.dateFormatter.format(e):this._dateFormatFunc(e,!0)}}},96701:(e,t,i)=>{"use strict";i.d(t,{DateTimeFormatter:()=>o});var s=i(78831),r=i(86985);const n={dateFormat:"yyyy-MM-dd",withWeekday:!1,timeFormat:s.hourMinuteSecondFormat,dateTimeSeparator:" "};class o{constructor(e={}){const t=Object.assign({},n,e);this._dateFormatter=new r.DateFormatter(t.dateFormat,t.withWeekday),this._timeFormatter=new s.TimeFormatter(t.timeFormat),this._separator=t.dateTimeSeparator}format(e){return`${this._dateFormatter.format(e)}${this._separator}${this._timeFormatter.format(e)}`}formatLocal(e){return`${this._dateFormatter.formatLocal(e)}${this._separator}${this._timeFormatter.formatLocal(e)}`}}},22512:(e,t,i)=>{"use strict";i.d(t,{LimitedPrecisionNumericFormatter:()=>r});var s=i(65665);class r{ constructor(e=1){this._precision=e}format(e){(0,s.isNumber)(e)||(e=parseFloat(e));const t=e.toFixed(this._precision),i=Math.pow(10,-this._precision);return Math.max(parseFloat(t),i)+""}parse(e){const t=parseFloat(e);return isNaN(t)?{res:!1}:{res:!0,value:t,suggest:this.format(t)}}}},34657:(e,t,i)=>{"use strict";i.d(t,{NumericFormatter:()=>n});var s=i(74599),r=i(60521);class n{constructor(e){this._precision=e}format(e){return(void 0!==this._precision?e.toFixed(this._precision):n.formatNoE(e)).replace(".",s.formatterOptions.decimalSign)}parse(e){const t=e.replace(s.formatterOptions.decimalSign,".");let i=parseFloat(t);return this._precision&&(i=+i.toFixed(this._precision)),i}static formatNoE(e){if(!Number.isFinite(e))return String(e);const t=new r.Big(e);return t.lt(1)?t.toFixed():t.toString()}}},18766:(e,t,i)=>{"use strict";i.d(t,{PercentageFormatter:()=>n});var s=i(74599),r=i(80142);class n extends s.PriceFormatter{constructor(e){super(e),this.type="percentage"}state(){const e=s.PriceFormatter.prototype.state.call(this);return e.percent=!0,e}parse(e){return e=e.replace("%",""),super.parse(e)}format(e,t,i,s,n=!0){const o=super.format(e,t,i,s,!1)+"%";return n?(0,r.forceLTRStr)(o):o}static serialize(e){return e.state()}static deserialize(e){return new n(e.priceScale)}}},68336:(e,t,i)=>{"use strict";i.d(t,{PipFormatter:()=>r});var s=i(74599);class r extends s.PriceFormatter{constructor(e,t,i,s){t||(t=1),"forex"!==i&&"cfd"!==i||!s?(super(1),this._isForex=!1):(super(s),this._isForex=!0),this._pipPriceScale=e,this._pipMinMove=t,this._pipMinMove2=s}format(e,t,i){let s=this._isForex?this._pipMinMove2:this._pipMinMove;return void 0===s&&(s=NaN),super.format(e*this._pipPriceScale/s,t,i)}}},74599:(e,t,i)=>{"use strict";i.r(t),i.d(t,{PriceFormatter:()=>m,formatterOptions:()=>c,isFormatterHasForexAdditionalPrecision:()=>_,numberToStringWithLeadingZero:()=>p});var s=i(44352),r=i(60521),n=i(65665);var o=i(80142);const a=(0,i(98351).getLogger)("Chart.PriceFormatter"),l=new RegExp(/^(-?)[0-9]+$/),c={decimalSign:".",decimalSignFractional:"'"},h=new Map;const d=new Map;function u(e,t,i,s){let r=0;if(e>0&&t>0){let t=e;for(i&&s&&(t/=s);t>1;)t/=10,r++}return r}function p(e,t){if(!(0,n.isNumber)(e))return"n/a";if(!(0,n.isInteger)(t))throw new TypeError("invalid length");if(t<0||t>24)throw new TypeError("invalid length");if(0===t)return e.toString();return("0000000000000000"+e.toString()).slice(-t)}function _(e){return"hasForexAdditionalPrecision"in e}class m{constructor(e,t,o,l,c){if(this.type="price",this._formatterErrors={custom:s.t(null,void 0,i(32061)),fraction:s.t(null,void 0,i(42015)),secondFraction:s.t(null,void 0,i(43247))},t||(t=1),(0,n.isNumber)(e)&&(0,n.isInteger)(e)||(e=100),e<0)throw new TypeError("invalid base");this._priceScale=e,this._minMove=t,this._minMove2=l,this._variableMinTickData=o||void 0===c?void 0:function(e,t){var i,s,o,a,l;const c=t.split(" ").map(Number);if((0,n.isEven)(c.length)||c.some(Number.isNaN))return[{minTick:e,price:1/0,maxIndex:1/0}];const h=[];for(let e=0;e0&&2!==l&&4!==l&&8!==l?a.logDebug("invalid minmove2"):(this._fractional=o,this._fractionalLength=u(this._priceScale,this._minMove,this._fractional,this._minMove2))}isFractional(){return!!this._fractional}state(){return{fractional:this._fractional,fractionalLength:this._fractionalLength,minMove:this._minMove,minMove2:this._minMove2,priceScale:this._priceScale}}format(e,t,i,s=!0,n=!0,a=!1){let l="";e<0?(l=!1===s?"":"−",e=-e):e&&!0===t&&(l="+");let c,h=this._priceScale,d=this._minMove,p=this._fractionalLength;if(void 0!==this._variableMinTickData){const t=function(e){const{minTick:t,price:i,variableMinTickData:s,shouldCheckForEquality:r}=e;return void 0===s?t:function(e,t,i=!1){for(let s=0;s1e10)return this._formatAsExponential(t);let l;l=this._fractional?Math.pow(10,n):Math.pow(10,o)*i/(a?1:s);const h=1/l;let d;if(l>1)d=Math.floor(t);else{const e=Math.floor(Math.round(t/h)*h);d=0===Math.round((t-e)/h)?e:e+h}let u="";if(l>1){let e=a?new r.Big(t).mul(l).round(void 0,0).minus(new r.Big(d).mul(l)).toNumber():parseFloat((Math.round(t*l)-d*l).toFixed(n));e>=l&&(e-=l,d+=1);const i=a?new r.Big(e).round(n,0).toNumber():parseFloat(e.toFixed(n))*s;u=c.decimalSign+p(i,n+o),u=this._removeEndingZeros(u,o)}return d.toString()+u}_getFractPart(e,t,i){const s=[0,5],r=[0,2,5,7],n=[0,1,2,3,5,6,7,8];return 2===i?void 0===s[e]?-1:s[e]:4===i?void 0===r[e]?-1:r[e]:8===i&&2===t?void 0===n[e]?-1:n[e]:e}_formatAsFractional(e,t){ @@ -618,7 +619,7 @@ l.getArrowPoints)(e,t,s,n);for(let e=0;ethis._start&&(t._start-=1),t}rangeIterator(e,t){const i=this._lowerbound(e,h),s=this._upperbound(t);if(i===s)return{hasNext:()=>!1,next:()=>{throw new Error("Invalid operation")}};let r=i-1;return{hasNext:()=>r(r+=1,this._items[r])}}minMaxOnRangeCached(e,t,i){if(this.isEmpty())return null;let s=null;for(const r of i){s=p(s,this._minMaxOnRangeCachedImpl(e-r.offset,t-r.offset,r.name))}return s}minMaxOnRange(e,t,i){if(this.isEmpty())return null;let s=null;for(const r of i){s=p(s,this._minMaxOnRange(e-r.offset,t-r.offset,r.name))}return s}merge(e){return this._shareRead?(l.logDebug("merge: readonly collection modification attempt"),null):0===e.length?null:this.isEmpty()||e[e.length-1].indexthis._items[this._items.length-1].index?this._append(e):1===e.length&&e[0].index===this._items[this._items.length-1].index?(this._updateLast(e[0]),e[0]):this._merge(e)}addTail(e,t=!1){if(0===e.length)return;let i=0;t&&this._end-this._start>0&&(i=1,this._items[this._end-this._start-1].value=e[0].value);for(let t=i;tvoid 0!==e)).sort(((e,t)=>e.index-t.index)),this._invalidateSearchCaches(),this._minMaxCache.clear(),this._start=0,this._end=this._items.length}remove(e){if(this._shareRead)return l.logDebug("remove: readonly collection modification attempt"),null;const t=this._nonCachedSearch(e,a.PlotRowSearchMode.NearestRight,h);if(null===t)return null;const i=this._items.splice(t);return this._end=this._items.length,this._minMaxCache.clear(),this._invalidateSearchCaches(),i.length>0?i[0]:null}state(){const e=this._items.slice(this._start,this._end);return{start:0,end:e.length,data:e}}restoreState(e){e?(this._start=e.start,this._end=e.end,this._shareRead=!1,this._items=e.data,this._minMaxCache.clear(), this._invalidateSearchCaches()):this.clear()}_indexAt(e){return this._items[e].index}_valueAt(e){return this._items[e].value}_length(){return this._items.length}_searchImpl(e,t,i,s,r,n){const o=void 0!==n?i:s,a=void 0!==n?1e4*(t+1)+n:t;let l=o.get(e);if(void 0!==l){const e=l.get(a);if(void 0!==e)return e}const c=this._nonCachedSearch(e,t,r,n);if(null===c)return null;const h={index:this._indexAt(c),value:this._valueAt(c)};return void 0===l&&(l=new Map,o.set(e,l)),l.set(a,h),h}_nonCachedSearch(e,t,i,s){const r=this._lowerbound(e,i),n=r===this._end||e!==i(this._items[r]);if(n&&t!==a.PlotRowSearchMode.Exact)switch(t){case a.PlotRowSearchMode.NearestLeft:return this._searchNearestLeft(r,s);case a.PlotRowSearchMode.NearestRight:return this._searchNearestRight(r,s);default:throw new TypeError("Unknown search mode")}if(void 0===s||n||t===a.PlotRowSearchMode.Exact)return n?null:r;switch(t){case a.PlotRowSearchMode.NearestLeft:return this._nonEmptyNearestLeft(r,s);case a.PlotRowSearchMode.NearestRight:return this._nonEmptyNearestRight(r,s);default:throw new TypeError("Unknown search mode")}}_nonEmptyNearestRight(e,t){const i=(0,s.ensure)(this._emptyValuePredicate),r=(0,s.ensure)(t);for(;e=this._start&&i(this._valueAt(e),r);)e-=1;return et(e)t.index>e),this._start,this._end)}_plotMinMax(e,t,i){let s=null;const r=this._plotFunctions.get(i);if(void 0===r)throw new Error(`Plot "${i}" is not registered`);for(let i=e;is.max&&(s.max=e)))}return s}_invalidateCacheForRow(e){const t=Math.floor(e.index/c);this._minMaxCache.forEach((e=>e.delete(t)))}_prepend(e){return(0,s.assert)(!this._shareRead,"collection should not be readonly"),(0,s.assert)(0!==e.length,"plotRows should not be empty"),this._invalidateSearchCaches(),this._minMaxCache.clear(),this._items=e.concat(this._items),this._start=0,this._end=this._items.length,e[0]}_append(e){return(0,s.assert)(!this._shareRead,"collection should not be readonly"),(0,s.assert)(0!==e.length,"plotRows should not be empty"),this._invalidateSearchCaches(),this._minMaxCache.clear(),this._items=this._items.concat(e),this._start=0,this._end=this._items.length,e[0]}_updateLast(e){(0,s.assert)(!this.isEmpty(),"plot list should not be empty");const t=this._items[this._end-1];(0, s.assert)(t.index===e.index,"last row index should match new row index"),this._invalidateCacheForRow(e),this._invalidateSearchCaches(),this._items[this._end-1]=e}_merge(e){return(0,s.assert)(0!==e.length,"plot rows should not be empty"),this._invalidateSearchCaches(),this._minMaxCache.clear(),this._items=_(this._items,e),this._start=0,this._end=this._items.length,e[0]}_minMaxOnRangeCachedImpl(e,t,i){if(this.isEmpty())return null;let r=null;const n=(0,s.ensureNotNull)(this.firstIndex()),o=(0,s.ensureNotNull)(this.lastIndex()),a=Math.max(e,n),l=Math.min(t,o),h=Math.ceil(a/c)*c,d=Math.max(h,Math.floor(l/c)*c);r=p(r,this._minMaxOnRange(a,Math.min(h,t,l),i));let u=this._minMaxCache.get(i);void 0===u&&(u=new Map,this._minMaxCache.set(i,u));for(let e=Math.max(h+1,a);et[o].index?o++:(n++,o++,r--);return r}(e,t),s=new Array(i);let r=0,n=0;const o=e.length,a=t.length;let l=0;for(;rt[n].index?(s[l]=t[n],n++):(s[l]=t[n],r++,n++),l++;for(;r{"use strict";i.d(t,{PriceAxisView:()=>p});var s=i(86441),r=i(34026),n=i(78996),o=i(80142),a=i(83499),l=i(14888),c=i(9740),h=i(6947);class d{constructor(e,t){this.setData(e,t)}setData(e,t){this._data=e,this._commonData=t}draw(e,t,i,s,r,n,l){var h,d,u;const p=this._data;if(!p.visible||this._isOutOfScreen(t,r))return;const _=this._commonData,m=void 0!==p.labelIcon,g=p.ignoreOffset?0:t.offsetSize,f=t.borderSize,v=t.paddingTop+_.additionalPaddingTop,S=t.paddingBottom+_.additionalPaddingBottom,y=t.paddingInner,b=t.paddingOuter,w=t.fontSize;let P=p.text,C=p.textColor||_.textColor,T=p.secondLine||"",x=_.secondLineTextColor||C,I=p.thirdLine||"";const M=_.thirdLineTextColor||C;0===T.length&&(T=I,x=M,I=""),0===P.length&&(P=T,C=x,T=I,x=M,I=""),e.save(),e.font=t.font;const A=i.yMidCorrection(e,P)*l,L=Math.ceil(i.measureText(e,P)),k=w+v+S,E=Boolean(T),D=Boolean(I),B=E?Math.ceil(i.measureText(e,T)):0,V=D?Math.ceil(i.measureText(e,I)):0,R=f+y+b+L+g,N=B>0?f+y+b+B+g:0,O=V>0?f+y+b+V+g:0,F=Math.max(R,N,O),W=Math.max(1,Math.floor(l));let H=Math.round(k*l);H%2!=W%2&&(H+=1) -;const z=Math.round((w+t.lineSpacing)*l),U=Math.round(2*(w+t.lineSpacing)*l),j=Math.max(1,Math.floor(f*l)),G=p.separatorVisible?j:0,q=p.borderVisible?j:0,$=m?H:Math.round(F*l),Y=Math.round(g*l),K=Math.ceil(s*l),X=Math.ceil(y*l),Z=Math.round((null!==(h=_.fixedCoordinate)&&void 0!==h?h:_.coordinate)*l)-Math.floor(.5*l),J=Math.floor(Z+W/2-H/2),Q=J+H,ee="right"===n,te=ee?K-G:G,ie=K;let se,re=te;const ne=null!==(d=p.backgroung)&&void 0!==d?d:_.background;e.fillStyle=ne;const oe=2*l;if(e.textAlign=ee?"right":"left",e.textBaseline="middle",ee?(re=te-$,se=te-Y-X-1):(re=te+$,se=te+Y+X),P||m){const i=D?H+U:E?H+z:H;if(((t,s,r)=>{ee?(0,c.drawRoundRectWithInnerBorder)(e,re,J,$,i,t,[oe,0,0,oe],q,s,r):(0,c.drawRoundRectWithInnerBorder)(e,te,J,$,i,t,[0,oe,oe,0],q,s,r)})(ne,null!==(u=_.borderColor)&&void 0!==u?u:ne,_.borderStyle),p.separatorVisible&&(e.fillStyle=t.paneBackgroundColor,e.fillRect(ee?ie-G:0,J,G,Q-J)),m){switch(p.labelIcon){case 0:this._drawPlusIcon(e,te,re,J,Z,Q,W);break;case 1:this._drawClockIcon(e,te,re,Z,W,l)}return void e.restore()}e.save(),e.translate(se,(J+Q)/2+A),(0,a.drawScaled)(e,l,(()=>{e.fillStyle=C,e.fillText(P,0,0)})),e.restore()}E&&(e.fillStyle=x,e.save(),e.translate(se,(J+Q)/2+A+z),(0,a.drawScaled)(e,l,(()=>{e.fillText((0,o.startWithLTR)(T),0,0)})),e.restore()),D&&(e.fillStyle=M,e.save(),e.translate(se,(J+Q)/2+A+U),(0,a.drawScaled)(e,l,(()=>{e.fillText((0,o.startWithLTR)(I),0,0)})),e.restore()),e.restore()}topBottomTotalHeight(e){const t=this._lines();if(!this._data.visible||0===t)return{top:0,bottom:0,total:0};const i=e.fontSize/2+e.paddingTop+this._commonData.additionalPaddingTop,s=(t-.5)*e.fontSize+(t-1)*e.lineSpacing+e.paddingBottom+this._commonData.additionalPaddingBottom;return{top:i,bottom:s,total:i+s}}hitTest(e){const t=this._data.hitTestData;if(void 0===t||!this._data.visible)return null;const i=(0,n.lastMouseOrTouchEventInfo)().isTouch?10:0,o=(0,s.box)(new s.Point(t.xl-i,t.y-i),new s.Point(t.xl+t.containerWidth+i,t.y+t.containerHeight+i)),a=t.left&&(0,r.pointInBox)(e,o),c=(0,s.box)(new s.Point(t.xr-i,t.y-i),new s.Point(t.xr+t.containerWidth+i,t.y+t.containerHeight+i)),d=t.right&&(0,r.pointInBox)(e,c);if(a||d){const i=a?"left":"right";return new l.HitTestResult(l.HitTestResult.CUSTOM,{cursorType:h.PaneCursorType.Default,clickHandler:void 0===t.clickHandler?void 0:t.clickHandler.bind(this,e,i),tapHandler:void 0===t.clickHandler?void 0:t.clickHandler.bind(this,e,i),tooltip:t.tooltip})}return null}_drawPlusIcon(e,t,i,s,r,n,o){e.fillStyle=this._commonData.textColor,e.strokeStyle=this._commonData.textColor,e.lineWidth=o;const a=Math.abs(t-i);let l=Math.round(.35*a);l%2!=o%2&&(l+=1);let c=Math.round(.65*a);c%2!=o%2&&(c+=1);const h=Math.floor((a-l)/2),d=Math.min(t,i),u=d+Math.floor(a/2-o/2);e.fillRect(d+h,r,l,o),e.fillRect(u,s+h,o,l),e.beginPath(),e.arc(u+o/2,r+o/2,c/2,0,2*Math.PI,!1),e.stroke()}_drawClockIcon(e,t,i,s,r,n){e.fillStyle=this._commonData.textColor,e.lineWidth=r;const o=Math.abs(t-i);let a=Math.round(.35*o);a%2!=r%2&&(a+=1);let l=Math.round(.65*o);l%2!=r%2&&(l+=1) +;const z=Math.round((w+t.lineSpacing)*l),U=Math.round(2*(w+t.lineSpacing)*l),j=Math.max(1,Math.floor(f*l)),G=p.separatorVisible?j:0,q=p.borderVisible?j:0,$=m?H:Math.round(F*l),Y=Math.round(g*l),K=Math.ceil(s*l),Z=Math.ceil(y*l),X=Math.round((null!==(h=_.fixedCoordinate)&&void 0!==h?h:_.coordinate)*l)-Math.floor(.5*l),J=Math.floor(X+W/2-H/2),Q=J+H,ee="right"===n,te=ee?K-G:G,ie=K;let se,re=te;const ne=null!==(d=p.backgroung)&&void 0!==d?d:_.background;e.fillStyle=ne;const oe=2*l;if(e.textAlign=ee?"right":"left",e.textBaseline="middle",ee?(re=te-$,se=te-Y-Z-1):(re=te+$,se=te+Y+Z),P||m){const i=D?H+U:E?H+z:H;if(((t,s,r)=>{ee?(0,c.drawRoundRectWithInnerBorder)(e,re,J,$,i,t,[oe,0,0,oe],q,s,r):(0,c.drawRoundRectWithInnerBorder)(e,te,J,$,i,t,[0,oe,oe,0],q,s,r)})(ne,null!==(u=_.borderColor)&&void 0!==u?u:ne,_.borderStyle),p.separatorVisible&&(e.fillStyle=t.paneBackgroundColor,e.fillRect(ee?ie-G:0,J,G,Q-J)),m){switch(p.labelIcon){case 0:this._drawPlusIcon(e,te,re,J,X,Q,W);break;case 1:this._drawClockIcon(e,te,re,X,W,l)}return void e.restore()}e.save(),e.translate(se,(J+Q)/2+A),(0,a.drawScaled)(e,l,(()=>{e.fillStyle=C,e.fillText(P,0,0)})),e.restore()}E&&(e.fillStyle=x,e.save(),e.translate(se,(J+Q)/2+A+z),(0,a.drawScaled)(e,l,(()=>{e.fillText((0,o.startWithLTR)(T),0,0)})),e.restore()),D&&(e.fillStyle=M,e.save(),e.translate(se,(J+Q)/2+A+U),(0,a.drawScaled)(e,l,(()=>{e.fillText((0,o.startWithLTR)(I),0,0)})),e.restore()),e.restore()}topBottomTotalHeight(e){const t=this._lines();if(!this._data.visible||0===t)return{top:0,bottom:0,total:0};const i=e.fontSize/2+e.paddingTop+this._commonData.additionalPaddingTop,s=(t-.5)*e.fontSize+(t-1)*e.lineSpacing+e.paddingBottom+this._commonData.additionalPaddingBottom;return{top:i,bottom:s,total:i+s}}hitTest(e){const t=this._data.hitTestData;if(void 0===t||!this._data.visible)return null;const i=(0,n.lastMouseOrTouchEventInfo)().isTouch?10:0,o=(0,s.box)(new s.Point(t.xl-i,t.y-i),new s.Point(t.xl+t.containerWidth+i,t.y+t.containerHeight+i)),a=t.left&&(0,r.pointInBox)(e,o),c=(0,s.box)(new s.Point(t.xr-i,t.y-i),new s.Point(t.xr+t.containerWidth+i,t.y+t.containerHeight+i)),d=t.right&&(0,r.pointInBox)(e,c);if(a||d){const i=a?"left":"right";return new l.HitTestResult(l.HitTestResult.CUSTOM,{cursorType:h.PaneCursorType.Default,clickHandler:void 0===t.clickHandler?void 0:t.clickHandler.bind(this,e,i),tapHandler:void 0===t.clickHandler?void 0:t.clickHandler.bind(this,e,i),tooltip:t.tooltip})}return null}_drawPlusIcon(e,t,i,s,r,n,o){e.fillStyle=this._commonData.textColor,e.strokeStyle=this._commonData.textColor,e.lineWidth=o;const a=Math.abs(t-i);let l=Math.round(.35*a);l%2!=o%2&&(l+=1);let c=Math.round(.65*a);c%2!=o%2&&(c+=1);const h=Math.floor((a-l)/2),d=Math.min(t,i),u=d+Math.floor(a/2-o/2);e.fillRect(d+h,r,l,o),e.fillRect(u,s+h,o,l),e.beginPath(),e.arc(u+o/2,r+o/2,c/2,0,2*Math.PI,!1),e.stroke()}_drawClockIcon(e,t,i,s,r,n){e.fillStyle=this._commonData.textColor,e.lineWidth=r;const o=Math.abs(t-i);let a=Math.round(.35*o);a%2!=r%2&&(a+=1);let l=Math.round(.65*o);l%2!=r%2&&(l+=1) ;const c=Math.min(t,i)+Math.floor(o/2-r/2);e.save(),e.translate(c+r/2-l/2,s+r/2-l/2),e.scale(n,n);const h=new Path2D("M7.5 0.8a1 1 0 0 0 0 13.4 1 1 0 0 0 0-13.4zm0 1a1 1 0 0 1 0 11 1 1 0 0 1 0-11zm-.97-.25A3.5 3.5 0 0 0 3.5 0 3.5 3.5 0 0 0 0 3.5a3.5 3.5 0 0 0 1.75 3.03l.5-.86A2.5 2.5 0 0 1 1 3.5 2.5 2.5 0 0 1 3.5 1a2.5 2.5 0 0 1 2.17 1.25zm6.72 4.78A3.5 3.5 0 0 0 15 3.5 3.5 3.5 0 0 0 11.5 0a3.5 3.5 0 0 0-3.03 1.75l.86.5A2.5 2.5 0 0 1 11.5 1 2.5 2.5 0 0 1 14 3.5a2.5 2.5 0 0 1-1.25 2.17zM7 5h1v5H7zm3 2v1H5V7z");e.fill(h),e.restore()}_lines(){const e=this._data;return(e.text?1:0)+(e.secondLine?1:0)+(e.thirdLine?1:0)}_isOutOfScreen(e,t){var i;const s=this._commonData,r=null!==(i=s.fixedCoordinate)&&void 0!==i?i:s.coordinate,{total:n}=this.topBottomTotalHeight(e),o=n/this._lines();return r-o/2-3>t||r+(n-o/2)+3<0}}var u=i(38031);class p{constructor(e){this._commonRendererData={coordinate:0,textColor:"#FFF",background:"#000",additionalPaddingBottom:0,additionalPaddingTop:0},this._axisRendererData={text:"",visible:!1,separatorVisible:!1,borderVisible:!1,ignoreOffset:!1},this._paneRendererData={text:"",visible:!1,separatorVisible:!0,borderVisible:!1,ignoreOffset:!0},this._invalidated=!0,this._axisRenderer=new(e||d)(this._axisRendererData,this._commonRendererData),this._paneRenderer=new(e||d)(this._paneRendererData,this._commonRendererData)}text(){return this._updateRendererDataIfNeeded(),this._axisRendererData.text}secondLineText(){return this._updateRendererDataIfNeeded(),this._axisRendererData.secondLine}thirdLineText(){return this._updateRendererDataIfNeeded(),this._axisRendererData.thirdLine}background(){return this._updateRendererDataIfNeeded(),this._commonRendererData.background}color(){return this._updateRendererDataIfNeeded(),this.generateTextColor(this.background())}generateTextColor(e){return(0,u.colorFromBackground)(e)}coordinate(){return this._updateRendererDataIfNeeded(),this._commonRendererData.coordinate}floatCoordinate(){var e;return this._updateRendererDataIfNeeded(),null!==(e=this._commonRendererData.floatCoordinate)&&void 0!==e?e:this._commonRendererData.coordinate}update(e){this._invalidated=!0}topBottomTotalHeight(e){this._updateRendererDataIfNeeded();const{top:t,bottom:i,total:s}=this._axisRenderer.topBottomTotalHeight(e),{top:r,bottom:n,total:o}=this._paneRenderer.topBottomTotalHeight(e);return{top:Math.max(t,r),bottom:Math.max(i,n),total:Math.max(s,o)}}getFixedCoordinate(){return this._commonRendererData.fixedCoordinate||0}setFixedCoordinate(e){this._commonRendererData.fixedCoordinate=e}isVisible(){return this._updateRendererDataIfNeeded(),this._axisRendererData.visible||this._paneRendererData.visible}isAxisLabelVisible(){return this._updateRendererDataIfNeeded(),this._axisRendererData.visible}isPaneLabelVisible(){return this._updateRendererDataIfNeeded(),this._paneRendererData.visible}renderer(){return this._updateRendererDataIfNeeded(),this._axisRenderer}paneRenderer(){return this._updateRendererDataIfNeeded(),this._paneRenderer}setPaneRendererLabelIcon(e){this._paneRendererData.labelIcon=e} setPaneLabelVisible(e){this._paneRendererData.visible=e,this._invalidated=!0}ignoreAlignment(){return!1}_updateRendererDataIfNeeded(){this._invalidated&&(this._commonRendererData.fixedCoordinate=void 0,this._updateRendererData(this._axisRendererData,this._paneRendererData,this._commonRendererData),this._invalidated=!1)}}},88029:(e,t,i)=>{"use strict";i.d(t,{isPriceDataSource:()=>a,PriceDataSource:()=>l});var s=i(80230),r=i(26867),n=i.n(r),o=i(21580);function a(e){return e instanceof l}class l extends s.DataSource{constructor(e,t){super(t),this._formatterChanged=new(n()),this._priceStepChanged=new(n()),this._currencyChanged=new(n()),this._unitChanged=new(n()),this._priceRangeReadyChanged=new(n()),this._priceStep=null,this._priceRangeReady=!0,this._model=e}base(){return 0}model(){return this._model}currencyChanged(){return this._currencyChanged}isCurrencySource(){return!0}isDisplayedInLegend(){return!0}unitChanged(){return this._unitChanged}isUnitSource(){return!0}priceRange(e,t){return null}isDraggable(){return!0}priceLineColor(e){return e}formatterChanged(){return this._formatterChanged}priceStep(e){return this._priceStep}priceStepChanged(){return this._priceStepChanged}isIncludedInAutoScale(){return!0}correctScaleMargins(e){return e}priceRangeReady(){return this._priceRangeReady}priceRangeReadyChanged(){return this._priceRangeReadyChanged}disablePriceRangeReady(){const e=this.priceScale();null===e||e.isAutoScale()||e.mainSource()!==this||(this._priceRangeReady=!1,e.recalculatePriceRangeOnce()),this._priceRangeReadyChanged.fire(!1)}statusView(){return null}legendView(){return null}marketStatusModel(){return null}dataUpdatedModeModel(){return null}dataProblemModel(){return null}_enablePriceRangeReady(){this._priceRangeReady=!0,this._priceRangeReadyChanged.fire(!0)}_onSourceCurrencyChanged(){(0,o.isActingAsSymbolSource)(this)||this._currencyChanged.fire()}_onSourceUnitChanged(){(0,o.isActingAsSymbolSource)(this)||this._unitChanged.fire()}_onSourcePriceRangeReadyChanged(e){(0,o.isActingAsSymbolSource)(this)||e||this.disablePriceRangeReady()}}},45703:(e,t,i)=>{"use strict";i.d(t,{PriceLineAxisView:()=>l,SeriesPriceLineAxisView:()=>c,StudyPriceLineAxisView:()=>h});var s=i(67876),r=i(50151),n=i(53479),o=i(9740);class a{constructor(e,t){this.setData(e,t)}setData(e,t){this._data=e,this._commonData=t}draw(e,t,i,s,a,l,c){var h;if(!this._data.visible)return;const d=null!==(h=this._commonData.fixedCoordinate)&&void 0!==h?h:this._commonData.coordinate;e.lineWidth=Math.max(1,Math.floor((0,r.ensureDefined)(this._data.linewidth)*c)),e.lineCap="butt",(0,o.setLineStyle)(e,void 0===this._data.linestyle?n.LINESTYLE_DOTTED:this._data.linestyle),e.strokeStyle=this._commonData.textColor,(0,o.drawHorizontalLine)(e,Math.round(d*c),0,Math.ceil(s*c))}topBottomTotalHeight(e){return{top:0,bottom:0,total:0}}}class l extends s.PriceAxisView{constructor(e){super(e||a)}ignoreAlignment(){return!0}_updateRendererData(e,t,i){if(t.visible=!1,e.visible=!1,!this._isVisible())return;const s=this._value();s.noData||(i.background="", i.textColor=this._priceLineColor(s.color),i.coordinate=s.coordinate,i.floatCoordinate=s.floatCoordinate,e.linewidth=this._lineWidth(),e.linestyle=this._lineStyle(),e.backgroundAreaVisible=this._backgroundAreaVisible(),e.backgroundAreaColor=this._backgroundAreaColor(),e.backgroundAreaHeight=this._backgroundAreaHeight(),e.visible=!0)}_lineStyle(){return n.LINESTYLE_DOTTED}_backgroundAreaVisible(){return!1}_backgroundAreaColor(){return""}_backgroundAreaHeight(){return 0}}class c extends l{constructor(e){super(),this._series=e}_value(){return this._series.lastValueData(void 0,!0)}_priceLineColor(e){return this._series.priceLineColor(e)}_lineWidth(){return this._series.properties().childs().priceLineWidth.value()}_isVisible(){const e=this._series.model().properties().childs().scalesProperties.childs().showSeriesLastValue.value();return this._series.properties().childs().showPriceLine.value()&&e}}class h extends l{constructor(e,t){super(),this._study=e,this._plotname=t}_value(){return this._study.lastValueData(this._plotname,!0)}_lineWidth(){return this._study.properties().childs().styles.childs()[this._plotname].childs().linewidth.value()}_lineStyle(){return n.LINESTYLE_DOTTED}_priceLineColor(e){return e}_isVisible(){const e=this._study.model().properties().childs().scalesProperties.childs().showStudyLastValue.value(),t=this._study.isPlotVisibleAt(this._plotname,1);return this._study.properties().childs().styles.childs()[this._plotname].childs().trackPrice.value()&&e&&t}}},42961:(e,t,i)=>{"use strict";i.d(t,{PriceScaleBase:()=>A});var s=i(50151),r=i(65665),n=i(26867),o=i.n(n),a=i(93975),l=i(23304),c=i(1194),h=i(46936),d=i(88029),u=i(26220),p=i.n(u),_=i(89215),m=i(21580),g=i(1930),f=i(50337),v=i(50841),S=i(91031);class y{constructor(e,t){if(this._base=e,this._integralDividers=t,(0,S.isBaseDecimal)(this._base))this._fractionalDividers=[2,2.5,2];else{this._fractionalDividers=[];for(let e=this._base;1!==e;){if(e%2==0)this._fractionalDividers.push(2),e/=2;else{if(e%5!=0)throw new Error("unexpected base");this._fractionalDividers.push(2),this._fractionalDividers.push(2.5),e/=5}if(this._fractionalDividers.length>100)throw new Error("something wrong with base")}}}tickSpan(e,t,i){const s=0===this._base?0:1/this._base,r=Math.min(1e-14,(e-t)/1e3);let n=Math.pow(10,Math.max(0,Math.ceil((0,S.log10)(e-t)))),o=0,a=this._integralDividers[0];for(;;){const e=(0,S.greaterOrEqual)(n,s,r)&&n>s+r,t=(0,S.greaterOrEqual)(n,i*a,r),l=(0,S.greaterOrEqual)(n,1,r);if(!(e&&t&&l))break;n/=a,a=this._integralDividers[++o%this._integralDividers.length]}if(n<=s+r&&(n=s),n=Math.max(1,n),this._fractionalDividers.length>0&&(0,S.equal)(n,1,r))for(o=0,a=this._fractionalDividers[0];(0,S.greaterOrEqual)(n,i*a,r)&&n>s+r;)n/=a,a=this._fractionalDividers[++o%this._fractionalDividers.length];return n}}class b{constructor(e,t,i,s){this._marks=null,this._priceScale=e,this._base=t,this._coordinateToLogicalFunc=i,this._logicalToCoordinateFunc=s}base(){return this._base}setBase(e){if(e<0)throw new Error("base < 0");this._base=e}tickSpan(e,t,i=0){ @@ -643,17 +644,17 @@ n.isStudy)(t)){const s=t.metaInfo();if("Volume"===s.shortId&&e.containsMainSerie ;e.movePriceScale(t,"right",0)}const t=e.model();for(;e.leftPriceScales().length>e.rightPriceScales().length;){const i=e.leftPriceScales()[e.leftPriceScales().length-1];e.movePriceScale(i,"right",this._targetPriceScaleIndex(i,t))}for(;e.rightPriceScales().length-e.leftPriceScales().length>1;){const i=e.rightPriceScales()[e.rightPriceScales().length-1];e.movePriceScale(i,"left",this._targetPriceScaleIndex(i,t))}}createNewPriceScaleIfPossible(e){if(!this.canCreateNewPriceScale(e))return e.createPriceScaleAtPosition("overlay");const t=e.leftPriceScales().lengtht.name===e)));return new t.ctor(t)}function c(){return a}},47149:(e,t,i)=>{"use strict";i.d(t,{SelectionIndexes:()=>r});var s=i(50151);class r{constructor(e){this._baseIndex=null,this._offsetInBar=null,this._offsetInTime=null,this._barsBetweenPoints=null,this._timescale=e}indexes(){const e=this._timescale.visibleBarsStrictRange();if(null===e)return[];const t=e.firstBar(),i=e.lastBar();if(null===this._offsetInTime||null===this._barsBetweenPoints){const e=this._timescale.barSpacing();this._barsBetweenPoints=Math.floor(120/e),this._offsetInBar=i%this._barsBetweenPoints,this._offsetInTime=this._timescale.indexToTimePoint(this._offsetInBar),this._baseIndex=this._timescale.baseIndex()}const r=this._timescale.baseIndex();this._baseIndex!==r&&(this._baseIndex=r,this._offsetInBar=(0,s.ensureNotNull)(this._timescale.timePointToIndex(this._offsetInTime)));const n=(0,s.ensureNotNull)(this._offsetInBar),o=[];let a=Math.floor((t-n)/this._barsBetweenPoints);const l=Math.floor((i-n)/this._barsBetweenPoints);for(;a<=l;a++)o.push(n+a*this._barsBetweenPoints);return o}clear(){this._offsetInBar=null,this._offsetInTime=null,this._baseIndex=null,this._barsBetweenPoints=null}}},53074:(e,t,i)=>{"use strict";i.d(t,{SelectionRenderer:()=>l});var s=i(34026),r=i(7394),n=i(14888),o=i(6947);const a=r.colorsPalette["color-tv-blue-600"];class l{constructor(e){this._data=e||null}setData(e){this._data=e}draw(e,t){if(null===this._data||!this._data.visible)return;const i=t.pixelRatio;e.strokeStyle=void 0!==this._data.color?this._data.color:a,e.lineCap="butt";const s=Math.max(1,Math.floor(i));e.lineWidth=s;const r=this._data.vertOffset||0;for(let t=0;t(0,s.pointInBox)(t,e)))}_drawMarker(e,t,i,s,r){let n=Math.round(3.5*r*2);n%2!=s%2&&(n+=1) ;let o=Math.round(n+2*(.5*s+.75*r));o%2!=s%2&&(o+=1);const a=Math.round(t.x*r),l=Math.round((t.y+i)*r),c=s%2/2;e.beginPath(),e.arc(a+c,l+c,o/2,0,2*Math.PI,!0),e.closePath(),e.fill(),e.beginPath(),e.arc(a+c,l+c,n/2,0,2*Math.PI,!0),e.closePath(),e.stroke()}}},95693:(e,t,i)=>{"use strict";i.d(t,{SeriesBase:()=>Gt});var s=i(50151),r=i(49483),n=i(51768),o=i(76422),a=i(98351),l=i(88029),c=i(22770),h=i(88552),d=i(33639),u=i(23304),p=i(26220),_=i.n(p),m=i(1930),g=i(92484),f=i(74599),v=i(77906),S=i(17659),y=i(44352),b=i(2484),w=i(23902),P=i(72039),C=i(12205);function T(e){const t="QUANDL"===(e=e||{}).exchange,s={title:"",description:"",interval:"",exchange:"",provider:"",chartStyle:"",sessionDescription:"",priceSource:""};let r="";if(e.description&&t)if(2===e.description.split("/").length)r=e.description.split("/")[1];else{e.description.split("'").filter((e=>e.length)).forEach((e=>{let t=[];t=e&&("/"===e[0]||/\d+\/\(?/.test(e))?[e]:e.split("/").filter((e=>e.length)),r+=t[2===t.length?1:0]}))}else r=e.description?e.description:e.symbol;if(e.ticker?(s.title=e.ticker,s.description=x(r)):s.title=x(r),e.interval&&(s.interval=(0,C.translatedIntervalString)(e.interval)),t&&e.description){const t=/[\w_]+\/[\w_]+/.exec(e.description);t&&t[0]?s.provider=x(t[0].split("/")[0]):s.provider=x(e.description.split("/")[0])}return e.exchange&&(s.exchange=x(e.exchange)),s.chartStyle=x(function(e){return e.inputs,8===e.style?y.t(null,void 0,i(40530)):""}(e)),e.sessionDescription&&(s.sessionDescription=x(e.sessionDescription)),void 0!==e.priceSource&&(s.priceSource=x(e.priceSource)),s}function x(e){return e.replace(/'/g,"")}const I=y.t(null,void 0,i(89659)),M=b.enabled("hide_unresolved_symbols_in_legend"),A=b.enabled("symbol_info_price_source");class L extends P.StatusProviderBase{constructor(e,t,i,s){super(t),this._series=e,this._statusViewProperties=i,this._options=s||{}}text(){return function(e){const t=T(e);return(e.ticker?t.description:t.title)+(t.interval?", "+t.interval:"")+function(e,t=", "){return(e.provider?`${t}${e.provider}`:"")+(e.exchange?`${t}${e.exchange}`:"")+(e.chartStyle?`${t}${e.chartStyle}`:"")+(e.branding?`${t}${e.branding}`:"")+(e.sessionDescription?`${t}${e.sessionDescription}`:"")}(t)}(this._getTitleGenerationOptions())}getSplitTitle(){return T(this._getTitleGenerationOptions())}bold(){return!1}size(){return this._statusViewProperties.childs().fontSize.value()+"px"}errorStatus(){const e=this._series.seriesErrorMessage();return null!==e?{error:e,title:I}:null}_getTitleGenerationOptions(){var e,t,i;const s=this._series.symbolInfo(),r=this._statusViewProperties.childs(),n=this._series.symbolTextSourceProxyProperty().value();let o;if(r.showExchange.value()&&s){const i=(0,m.isEconomicSymbol)(s)&&(null!==(t=null===(e=s.source2)||void 0===e?void 0:e.description)&&void 0!==t?t:s.source);o=i||s.exchange}const a=null!==(i=A&&(null==s?void 0:s.price_source_id)?this._series.model().availablePriceSources().name(s.price_source_id):null)&&void 0!==i?i:void 0;return{description:E(n,s),exchange:o, symbol:M&&null===s?"":this._series.symbol(),interval:r.showInterval.value()&&!this._options.hideResolution?this._series.interval():void 0,style:this._series.properties().childs().style.value(),inputs:this._series.getInputsProperties().state(),boxSize:this._series.data().boxSize,reversalAmount:this._series.data().reversalAmount,ticker:k(n,s),priceSource:a}}}function k(e,t){return"ticker-and-description"!==e?"":null!==t?t.name:void 0}function E(e,t){if(null!==t)return"ticker"===e?t.name:"long-description"===e&&void 0!==t.long_description?t.long_description:(0,w.getTranslatedSymbolDescription)({pro_name:t.pro_name||void 0,short_name:t.name||void 0,description:t.description||void 0,short_description:t.short_description||void 0,local_description:t.local_description||void 0,language:t.language||void 0})}class D extends S.StatusView{constructor(e,t,i,s){super(new L(e,t,i,s)),this._invalidated=!0,this._series=e,this._series.onRestarted().subscribe(this,this.update),this._series.dataEvents().symbolResolved().subscribe(this,this.update),this._series.dataEvents().completed().subscribe(this,this.update),this._series.boxSizeValue().subscribe(this.update.bind(this)),i.childs().symbolTextSource.listeners().subscribe(this,this.update)}getSeriesPrecision(){let e=4;const t=this._series.symbolInfo();return t&&t.pricescale&&(e=Math.round(Math.log(t.pricescale)/Math.log(10))),e}round(e){const t=this.getSeriesPrecision(),i=Math.round(e*Math.pow(10,t))/Math.pow(10,t);return i?i.toString():""}update(){this._invalidated=!0}text(){return this._updateImpl(),super.text()}color(){return this._updateImpl(),super.color()}bold(){return this._updateImpl(),super.bold()}size(){return this._updateImpl(),super.size()}getSplitTitle(){return this._updateImpl(),this._statusProvider.getSplitTitle()}_updateImpl(){this._invalidated&&(this._bold=this._statusProvider.bold(),this._size=this._statusProvider.size(),this._text=this._statusProvider.text(),this._invalidated=!1)}}var B=i(50335),V=i(95790),R=i(76076),N=i(86061),O=i(6250);const F=r.CheckMobile.any(),W=b.enabled("hide_resolution_in_legend");class H extends V.DataWindowView{constructor(e,t){super(),this._invalidated=!0,this._series=e,this._model=t,this._valuesProvider=this._createValuesProvider(e,t),this._items=this._valuesProvider.getItems().map((e=>new V.DataWindowItem(e.id,e.title,"",e.unimportant))),this.update()}update(){this._invalidated=!0}items(){return this._invalidated&&(this._updateImpl(),this._invalidated=!1),this._items}series(){return this._series}_updateImpl(){var e,t;const i=this._series.symbolInfo();if(i){const e=[i.name];W||e.push((0,C.translatedIntervalString)(this._series.interval())),(0,m.isEconomicSymbol)(i)&&i.source?e.push(i.source):e.push((0,r.onWidget)()||"forex"===i.type?i.exchange:i.listed_exchange),this._header=e.join(", "),this._title=i.description}else this._header=this._series.symbol();let s=this._model.crossHairSource().appliedIndex();b.enabled("use_last_visible_bar_value_in_legend")&&!(0, -B.isNumber)(s)&&(s=null!==(t=null===(e=this._model.timeScale().visibleBarsStrictRange())||void 0===e?void 0:e.lastBar())&&void 0!==t?t:NaN);const n=this._valuesProvider.getValues(s);for(let e=0;ee||t||i),i.showBarChange,i.showSeriesOHLC,i.showVolume),this._visibilityProperty.subscribe(this,this.update)}areValuesVisible(){return this._visibilityProperty.value()}additional(){return null}marketTitle(){const e=this._series.marketStatusModel().status().value();return this._showLastPriceAndChangeOnly()&&("pre_market"===e||"post_market"===e)?`${G}:`:""}destroy(){this._backgroundColorSpawn.destroy(),this._visibilityProperty.destroy()}_createValuesProvider(e,t){return new U(e,t)}}var $=i(40549),Y=i.n($),K=i(21169),X=i(32769);function Z(){const e=window.ChartApiInstance.serverTimeOffset();return Date.now()/1e3+e}function J(e,t,i){return e<=i?t<=i?1/0:t/1e3:Math.min(e,t)/1e3}class Q{constructor(e,t){this._marketStatus=new(Y())(null),this._lastMarketStatus=null,this._sessionsSpec=null, -this._nextSessionEdgeInternal=null,this._nextSessionEdge=new(Y())(null),this._recalcNextSessionEdgeTimerId=null,this._futuresContractExpirationTime=null,this._quotesProvider=e,e.quotesUpdate().subscribe(this,this._update.bind(this)),this._resetSubscription=t,this._resetSubscription.subscribe(this,this._resetStatus)}destroy(){this._quotesProvider.quotesUpdate().unsubscribeAll(this),this._quotesProvider.quoteSymbolChanged().unsubscribeAll(this),this._resetSubscription.unsubscribeAll(this),null!==this._recalcNextSessionEdgeTimerId&&clearTimeout(this._recalcNextSessionEdgeTimerId)}futuresContractExpirationTime(){return this._futuresContractExpirationTime}setSymbolInfo(e){var t,i,s,r,n;if(this._nextSessionEdgeInternal=null,null===e)return void(this._sessionsSpec=null);const o=new K.SessionSpec(e.timezone,null!==(t=e.session_display)&&void 0!==t?t:e.session,e.session_holidays,e.corrections);let a,l;const c=null===(i=e.subsessions)||void 0===i?void 0:i.find((e=>"premarket"===e.id)),h=null===(s=e.subsessions)||void 0===s?void 0:s.find((e=>"postmarket"===e.id));void 0!==c&&(a=new K.SessionSpec(e.timezone,null!==(r=c["session-display"])&&void 0!==r?r:c.session,e.session_holidays,c["session-correction"])),void 0!==h&&(l=new K.SessionSpec(e.timezone,null!==(n=h["session-display"])&&void 0!==n?n:h.session,e.session_holidays,h["session-correction"])),this._sessionsSpec={general:o,preMarket:a,postMarket:l},this._recalculateNextSessionEdge()}status(){return this._marketStatus}nextSessionEdge(){return this._nextSessionEdge}_resetStatus(){this._marketStatus.setValue(null)}_update(e){void 0!==e&&void 0!==e.values.current_session&&(this._lastMarketStatus=e.values.current_session),null!==this._lastMarketStatus?this._marketStatus.setValue(this._lastMarketStatus):this._resetStatus()}_getNextSessionEdgeInternal(){var e;if(null===this._sessionsSpec||"24x7"===this._sessionsSpec.general.spec())return null;const t=1e3*Z();if(null===this._nextSessionEdgeInternal||(null!==(e=this._nextSessionEdgeInternal.timestamp)&&void 0!==e?e:1/0)<=t/1e3){const{general:e,preMarket:i,postMarket:s}=this._sessionsSpec,r=(0,X.get_timezone)(e.timezone()),n=(0,X.utc_to_cal)(r,t),o=J((0,X.cal_to_utc)(r,e.alignToNearestSessionStart(n,1)),(0,X.cal_to_utc)(r,e.alignToNearestSessionEnd(n,1)),t),a=J(void 0!==i?(0,X.cal_to_utc)(r,i.alignToNearestSessionStart(n,1)):1/0,void 0!==i?(0,X.cal_to_utc)(r,i.alignToNearestSessionEnd(n,1)):1/0,t),l=J(void 0!==s?(0,X.cal_to_utc)(r,s.alignToNearestSessionStart(n,1)):1/0,void 0!==s?(0,X.cal_to_utc)(r,s.alignToNearestSessionEnd(n,1)):1/0,t),c=Math.min(o,a,l);c===1/0&&(this._nextSessionEdgeInternal={timestamp:null}),this._nextSessionEdgeInternal=c===l?{timestamp:c,status:"post_market"}:c===a?{timestamp:c,status:"pre_market"}:{timestamp:c}}return this._nextSessionEdgeInternal}_recalculateNextSessionEdge(){const e=this._getNextSessionEdgeInternal();if(null===e||null===e.timestamp)return void this._nextSessionEdge.setValue(null);const t={status:e.status,remainingSeconds:Math.max(0,e.timestamp-Z())} +B.isNumber)(s)&&(s=null!==(t=null===(e=this._model.timeScale().visibleBarsStrictRange())||void 0===e?void 0:e.lastBar())&&void 0!==t?t:NaN);const n=this._valuesProvider.getValues(s);for(let e=0;ee||t||i),i.showBarChange,i.showSeriesOHLC,i.showVolume),this._visibilityProperty.subscribe(this,this.update)}areValuesVisible(){return this._visibilityProperty.value()}additional(){return null}marketTitle(){const e=this._series.marketStatusModel().status().value();return this._showLastPriceAndChangeOnly()&&("pre_market"===e||"post_market"===e)?`${G}:`:""}destroy(){this._backgroundColorSpawn.destroy(),this._visibilityProperty.destroy()}_createValuesProvider(e,t){return new U(e,t)}}var $=i(40549),Y=i.n($),K=i(21169),Z=i(32769);function X(){const e=window.ChartApiInstance.serverTimeOffset();return Date.now()/1e3+e}function J(e,t,i){return e<=i?t<=i?1/0:t/1e3:Math.min(e,t)/1e3}class Q{constructor(e,t){this._marketStatus=new(Y())(null),this._lastMarketStatus=null,this._sessionsSpec=null, +this._nextSessionEdgeInternal=null,this._nextSessionEdge=new(Y())(null),this._recalcNextSessionEdgeTimerId=null,this._futuresContractExpirationTime=null,this._quotesProvider=e,e.quotesUpdate().subscribe(this,this._update.bind(this)),this._resetSubscription=t,this._resetSubscription.subscribe(this,this._resetStatus)}destroy(){this._quotesProvider.quotesUpdate().unsubscribeAll(this),this._quotesProvider.quoteSymbolChanged().unsubscribeAll(this),this._resetSubscription.unsubscribeAll(this),null!==this._recalcNextSessionEdgeTimerId&&clearTimeout(this._recalcNextSessionEdgeTimerId)}futuresContractExpirationTime(){return this._futuresContractExpirationTime}setSymbolInfo(e){var t,i,s,r,n;if(this._nextSessionEdgeInternal=null,null===e)return void(this._sessionsSpec=null);const o=new K.SessionSpec(e.timezone,null!==(t=e.session_display)&&void 0!==t?t:e.session,e.session_holidays,e.corrections);let a,l;const c=null===(i=e.subsessions)||void 0===i?void 0:i.find((e=>"premarket"===e.id)),h=null===(s=e.subsessions)||void 0===s?void 0:s.find((e=>"postmarket"===e.id));void 0!==c&&(a=new K.SessionSpec(e.timezone,null!==(r=c["session-display"])&&void 0!==r?r:c.session,e.session_holidays,c["session-correction"])),void 0!==h&&(l=new K.SessionSpec(e.timezone,null!==(n=h["session-display"])&&void 0!==n?n:h.session,e.session_holidays,h["session-correction"])),this._sessionsSpec={general:o,preMarket:a,postMarket:l},this._recalculateNextSessionEdge()}status(){return this._marketStatus}nextSessionEdge(){return this._nextSessionEdge}_resetStatus(){this._marketStatus.setValue(null)}_update(e){void 0!==e&&void 0!==e.values.current_session&&(this._lastMarketStatus=e.values.current_session),null!==this._lastMarketStatus?this._marketStatus.setValue(this._lastMarketStatus):this._resetStatus()}_getNextSessionEdgeInternal(){var e;if(null===this._sessionsSpec||"24x7"===this._sessionsSpec.general.spec())return null;const t=1e3*X();if(null===this._nextSessionEdgeInternal||(null!==(e=this._nextSessionEdgeInternal.timestamp)&&void 0!==e?e:1/0)<=t/1e3){const{general:e,preMarket:i,postMarket:s}=this._sessionsSpec,r=(0,Z.get_timezone)(e.timezone()),n=(0,Z.utc_to_cal)(r,t),o=J((0,Z.cal_to_utc)(r,e.alignToNearestSessionStart(n,1)),(0,Z.cal_to_utc)(r,e.alignToNearestSessionEnd(n,1)),t),a=J(void 0!==i?(0,Z.cal_to_utc)(r,i.alignToNearestSessionStart(n,1)):1/0,void 0!==i?(0,Z.cal_to_utc)(r,i.alignToNearestSessionEnd(n,1)):1/0,t),l=J(void 0!==s?(0,Z.cal_to_utc)(r,s.alignToNearestSessionStart(n,1)):1/0,void 0!==s?(0,Z.cal_to_utc)(r,s.alignToNearestSessionEnd(n,1)):1/0,t),c=Math.min(o,a,l);c===1/0&&(this._nextSessionEdgeInternal={timestamp:null}),this._nextSessionEdgeInternal=c===l?{timestamp:c,status:"post_market"}:c===a?{timestamp:c,status:"pre_market"}:{timestamp:c}}return this._nextSessionEdgeInternal}_recalculateNextSessionEdge(){const e=this._getNextSessionEdgeInternal();if(null===e||null===e.timestamp)return void this._nextSessionEdge.setValue(null);const t={status:e.status,remainingSeconds:Math.max(0,e.timestamp-X())} ;if(null===this._recalcNextSessionEdgeTimerId){let e=Math.ceil(t.remainingSeconds%60);0===e&&(e+=60),this._recalcNextSessionEdgeTimerId=setTimeout((()=>this._recalculateNextSessionEdgeByTimer()),1e3*e)}this._nextSessionEdge.setValue(t)}_recalculateNextSessionEdgeByTimer(){this._recalcNextSessionEdgeTimerId=null,this._recalculateNextSessionEdge()}}var ee=i(35624),te=i(578),ie=i(69228),se=i(87770),re=i(68671);let ne=0;class oe{constructor(e,t){this._extrapolatedData=[],this._cacheForFuture=!1,this._modelId=ne++,this._builderCache=null,this._uniqueId=(0,re.randomHashN)(6),this._resolution=t,this._symbolInfo=e,this._valid=Boolean(e.timezone)&&Boolean(e.session),this._session=new ie.SessionInfo(e.timezone,e.session,e.session_holidays,e.corrections)}syncSourceTarget(){return{uniqueId:this._uniqueId,resolution:this._resolution,symbolInfo:this._symbolInfo,session:this._session.state()}}getSymbolInfo(){return this._symbolInfo}getSession(){return this._session}getResolution(){return this._resolution}uniqueId(){return this._modelId}distance(e,t){if(!this.isValid())return{success:!1};if(e>t)return{success:!1};if(e===t)return{success:!0,result:0};let i=this._extrapolatedData.length,s=0!==i?this._extrapolatedData[0]:null,r=null!==s?this._extrapolatedData[i-1]:null;const n=er){const s=(0,se.extrapolateBarsFrontToTime)(this._barBuilder(),r||1e3*e,1e3*t,2e3,!0);this._extrapolatedData=this._extrapolatedData.concat(s.times),i=this._extrapolatedData.length,this._cacheForFuture=n}if(r=this._extrapolatedData[i-1],r<1e3*t)return{success:!1};const o=this._extrapolatedData.indexOf(1e3*t);return-1===o?{success:!1}:{success:!0,result:o}}projectTime(e,t){if(!this.isValid())return e;let i=this._extrapolatedData.length,s=i>0?this._extrapolatedData[0]:null,r=null!==s?this._extrapolatedData[i-1]:null;const n=t>=0;1e3*e===s&&this._cacheForFuture===n||(this._extrapolatedData=[1e3*e],i=1,s=null,r=null);const o=Math.abs(t);if(null===s||o>=i){const s=(0,se.extrapolateBarsFrontByCount)(this._barBuilder(),r||1e3*e,Math.sign(t)*(o-i+1),!0);this._extrapolatedData=this._extrapolatedData.concat(s.times),i=this._extrapolatedData.length,this._cacheForFuture=n}return i0?e.delay:900;return Math.round(t/60)}listedExchange(){const e=this._symbolInfo.value();return null!==e?e.listed_exchange:""}async description(){const e=this._symbolInfo.value();if(null===e)return"";let t={};try{t=(0,s.ensureNotNull)(await(0,le.getExchange)(e))}catch(e){he.logWarn(`Cannot get exchange ${(0,ce.errorToString)(e)}`)}return t.description||e.listed_exchange}exchange(){const e=this._symbolInfo.value();return null!==e?e.exchange:""}proName(){const e=this._symbolInfo.value();return null!==e?e.pro_name:""}firstReplacedByBatsExchange(){const e=this._symbolInfo.value();return e&&(0,le.firstReplacedByBatsExchange)(e)}_resetStatus(){this._dataUpdatedInfoStatus.setValue(null)}_update(){const e=this._symbolInfo.value();if(null===e)return void this._dataUpdatedInfoStatus.setValue(null);const t=this._status.value();if("string"==typeof t)return void this._dataUpdatedInfoStatus.setValue(null);if(2===t||1===t)return;const i=ue(e,t,this._updatePeriod.value());0!==i.length?this._dataUpdatedInfoStatus.setValue(i):this._dataUpdatedInfoStatus.setValue(null)}}var _e=i(90593),me=i(65665);class ge{constructor(e,t){this._dataProblem=new _e.WatchedObject(null),this._quotesProvider=e,this._quotesProvider.quotesUpdate().subscribe(this,this._update.bind(this)),this._resetSubscription=t,this._resetSubscription.subscribe(this,this._resetStatus)}destroy(){this._quotesProvider.quotesUpdate().unsubscribeAll(this),this._resetSubscription.unsubscribeAll(this)}status(){return this._dataProblem}_resetStatus(){this._dataProblem.setValue(null)}_update(e){void 0===e.values||void 0===e.values.data_problem?this._resetStatus():this._dataProblem.setValue((0,me.clone)(e.values.data_problem))}}var fe=i(54168),ve=i(38031),Se=i(67876),ye=i(99846);function be(e){return e<10?`0${e}`:e.toString()}var we=i(1194),Pe=i(97425);const Ce=b.enabled("force_exchange_as_title"),Te=b.enabled("chart_style_hilo_last_price"),xe=[0,1,2,3,9,8,10];Te&&xe.push(12);const Ie={alwaysShowGlobalLast:!1,visibleOnHistoryOnly:!1,showCountdown:!0,showSymbolLabel:!0,useSolidBodyColor:!0};class Me extends Se.PriceAxisView{constructor(e,t,i){super(),this._previousCountdown="",this._source=e,this._model=t,this._options={...Ie,...i}}updateCountdown(){ this._countdownText()!==this._previousCountdown&&(this.update((0,Pe.sourceChangeEvent)(this._source.id())),this._model.updateSourcePriceScale(this._source))}_getSource(){return this._source}_getModel(){return this._model}_isCountdownEnabled(){return this._options.showCountdown}_countdownText(){const e=te.Interval.parse(this._source.interval());if(e.isDWM()||e.isTicks()||e.isSeconds()&&1===e.multiplier())return"";const t=this._source.data().bars().last();if(null===t)return"";const i=1e3*(0,s.ensure)(t.value[0]),r=te.Interval.parse(this._source.interval()).inMilliseconds(),n=i.valueOf()+r;let o=Math.round((n-this._currentTime())/1e3);if(o<=0)return"";o=Math.min(o,r/1e3);let a=null;o>=3600&&(a=be(Math.floor(o/3600))),o%=3600;const l=be(Math.floor(o/60));o%=60;const c=be(Math.floor(o));return null!==a?`${a}:${l}:${c}`:`${l}:${c}`}_updateRendererData(e,t,i){var r;if(e.visible=!1,t.visible=!1,!this._source.isVisible())return;const n=this._source.properties().childs();if(!Te&&12===n.style.value())return;const o=this._model.timeScale().visibleBarsStrictRange(),a=this._source.data().last();if(null===o||null===a)return;if(this._options.visibleOnHistoryOnly&&o.contains(a.index))return;const l=this._model.properties().childs().scalesProperties.childs();let c=l.showSeriesLastValue.value(),h=this._isCountdownEnabled()&&n.showCountdown.value()&&xe.includes(n.style.value())&&(this._options.alwaysShowGlobalLast||o.contains(a.index)),d=this._options.showSymbolLabel&&l.showSymbolLabels.value();const u=l.seriesLastValueMode.value()===ye.PriceAxisLastValueMode.LastPriceAndPercentageValue,p=this._source.lastValueData(void 0,this._options.alwaysShowGlobalLast);if(p.noData)return;const _=8===n.style.value();if((c||h||d)&&_&&n.haStyle.childs().showRealLastPrice.value()){const e=this._source.lastValueData(void 0,!1),t=this._source.lastValueData(void 0,!0);e.noData||t.noData||e.index!==t.index||(c=!1,h=!1,d=!1)}const m=(0,ve.resetTransparency)(this._source.priceLineColor(p.color));if(this._options.useSolidBodyColor?(i.background=m,i.borderColor=void 0):(i.background=this._model.backgroundColorAtYPercentFromTop((null!==(r=i.fixedCoordinate)&&void 0!==r?r:i.coordinate)/(0,s.ensureNotNull)(this._model.paneForSource(this._source)).height()),i.borderColor=m),i.coordinate=p.coordinate,i.floatCoordinate=p.floatCoordinate,c||h){const t=this._axisFirstLineText(p,c);e.text=t,this._options.useSolidBodyColor?(i.textColor=this.generateTextColor(i.background),e.borderVisible=!1):(e.borderVisible=!0,i.textColor=m),e.textColor=i.textColor;const s=c&&u?(0,we.getOppositeModePriceText)(this._source.priceScale(),p):"";e.secondLine=s,i.secondLineTextColor=i.textColor;const r=h?this._countdownText():"";this._previousCountdown=r,e.thirdLine=r,i.thirdLineTextColor=(0,ve.generateColor)(i.textColor,25),0===t.length&&0===s.length&&0===r.length||(e.visible=!0)}d&&(t.text=this._paneText(d),t.visible=t.text.length>0)}_paneText(e){let t="";const i=this._source.symbolInfo();return Ce?t=(0,m.displayedSymbolExchange)(i):e&&(t=(0,m.displayedSymbolName)(i)),t} _axisFirstLineText(e,t){return t?(0,we.getCurrentModePriceText)(this._source.priceScale(),e):""}_currentTime(){return Date.now()+1e3*this._source.serverTimeOffset()}}var Ae=i(45703);class Le extends Me{lastPrice(){return this._getSource().data().lastProjectionPrice}_updateRendererData(e,t,i){e.visible=!1,t.visible=!1;const r=this._getModel(),n=this._getSource(),o=n.priceScale(),a=r.timeScale(),l=this.lastPrice();if(a.isEmpty()||o.isEmpty()||void 0===l)return;const c=a.visibleBarsStrictRange();if(null===c)return;const h=c.firstBar(),u=c.lastBar(),p=n.data(),_=p.search(u,d.PlotRowSearchMode.NearestLeft);if(null===_)return;const m=n.nearestIndex(h,d.PlotRowSearchMode.NearestRight);if(void 0===m)return;const g=n.model().properties().childs().scalesProperties.childs(),f=(0,s.ensureNotNull)(p.valueAt(m))[4];let v=i.background,S=g.showSeriesLastValue.value(),y=!1,b=!1,w=!1;const P=n.lastValueData(4,!1),C=n.properties().childs();if(8===C.style.value()&&C.haStyle.childs().showRealLastPrice.value()){const e=n.lastValueData(4,!0);if(e.noData||e.color===i.background||(v=(0,ve.resetTransparency)(e.color)),!e.noData&&!P.noData){const t=e.index===P.index;y=t&&g.showSymbolLabels.value(),b=g.seriesLastValueMode.value()===ye.PriceAxisLastValueMode.LastPriceAndPercentageValue,S=S&&t,w=t&&this._isCountdownEnabled()&&C.showCountdown.value()}}else{const e=n.barColorer().barStyle(_.index,!0);v=(0,ve.resetTransparency)(e.barColor)}if(i.background=v,i.textColor=this.generateTextColor(v),i.secondLineTextColor=i.textColor,i.thirdLineTextColor=(0,ve.generateColor)(i.textColor,25),i.coordinate=o.priceToCoordinate(l,f),e.visible=S||w,!P.noData){const i=n.priceScale().isPercentage();P.formattedPriceAbsolute=o.formatPriceAbsolute(l),P.formattedPricePercentage=o.formatPricePercentage(l,f,!0),P.text=i?P.formattedPricePercentage:P.formattedPriceAbsolute,e.text=this._axisFirstLineText(P,S),e.secondLine=S&&b?i?P.formattedPriceAbsolute:P.formattedPricePercentage:"",e.thirdLine=w?this._countdownText():"",t.text=this._paneText(y)}t.visible=y}}var ke=i(64636),Ee=i(56744),De=i(7394),Be=i(53479);const Ve={light:{lineStyle:Be.LINESTYLE_DOTTED,lineWidth:1,textColor:De.colorsPalette["color-cold-gray-900"],backgroundColor:De.colorsPalette["color-tv-blue-50"],lineColor:De.colorsPalette["color-cold-gray-500"]},dark:{lineStyle:Be.LINESTYLE_DOTTED,lineWidth:1,textColor:De.colorsPalette["color-white"],backgroundColor:De.colorsPalette["color-tv-blue-a800"],lineColor:De.colorsPalette["color-cold-gray-500"]}};function Re(e){return e?Ve.dark:Ve.light}class Ne extends Ee.HorizontalLinePaneView{constructor(e,t,i){super(),this._model=e,this._isVisible=t.lineVisible,this._lineColor=t.lineColor,this._lineWidth=t.lineWidth,this._getValue=i}_updateImpl(){const e=this._lineRendererData;if(e.visible=!1,!this._isVisible.value())return;const t=this._model.mainSeries(),i=t.priceScale(),s=t.firstValue(),r=this._getValue();if(null===s||null===r)return ;const n=Re(this._model.isDark()),o=this._lineColor.value()?this._lineColor.value():n.lineColor,a=this._lineWidth.value()?this._lineWidth.value():n.lineWidth;e.visible=!0,e.y=i.priceToCoordinate(r,s),e.linestyle=n.lineStyle,e.linewidth=a,e.color=o}}class Oe extends Se.PriceAxisView{constructor(e,t,i,s){super(),this._model=e,this._label=t,this._isVisible=i,this._getValue=s}_updateRendererData(e,t,i){if(e.visible=!1,t.visible=!1,!this._isVisible.value())return;const s=this._model.mainSeries(),r=s.priceScale(),n=s.firstValue(),o=this._getValue();if(null===n||null===o)return;const a=Re(this._model.isDark());e.visible=!0,t.visible=!0,e.text=r.formatPriceAbsolute(o),t.text=this._label,i.coordinate=r.priceToCoordinate(o,n),i.background=a.backgroundColor,i.textColor=a.textColor}}class Fe extends Ae.PriceLineAxisView{constructor(e,t,i){super(),this._model=e,this._isLineVisible=t,this._getValue=i}_isVisible(){return this._isLineVisible.value()}_lineWidth(){return Re(this._model.isDark()).lineWidth}_lineStyle(){return Re(this._model.isDark()).lineStyle}_priceLineColor(e){return Re(this._model.isDark()).lineColor}_value(){const e=this._model.mainSeries(),t=e.priceScale(),i=e.firstValue(),s=this._getValue();if(null===i||null===s)return{noData:!0};const r=t.priceToCoordinate(s,i);return{noData:!1,floatCoordinate:r,coordinate:r,color:"",formattedPricePercentage:"",formattedPriceAbsolute:"",formattedPriceIndexedTo100:"",text:"",index:0}}}const We=y.t(null,void 0,i(30777)),He=y.t(null,void 0,i(8136));function ze(e,t,i,s){const r=new Ne(e,i,s),n=new Oe(e,i.label,i.labelVisible,s);return{paneView:r,panePriceAxisView:new ke.PanePriceAxisView(n,t,e),priceAxisView:n,priceLineAxisView:new Fe(e,i.lineVisible,s)}}const Ue={light:{lineStyle:Be.LINESTYLE_DOTTED,lineWidth:1,textColor:(0,De.getHexColorByName)("color-cold-gray-900"),backgroundColor:(0,De.getHexColorByName)("color-tv-blue-50"),lineColor:(0,De.getHexColorByName)("color-cold-gray-500")},dark:{lineStyle:Be.LINESTYLE_DOTTED,lineWidth:1,textColor:(0,De.getHexColorByName)("color-white"),backgroundColor:(0,De.getHexColorByName)("color-tv-blue-a800"),lineColor:(0,De.getHexColorByName)("color-cold-gray-500")}};function je(e){return e?Ue.dark:Ue.light}class Ge extends Ee.HorizontalLinePaneView{constructor(e,t,i){super(),this._model=e,this._isVisible=t.lineVisible,this._lineColor=t.lineColor,this._lineWidth=t.lineWidth,this._getValue=i}_updateImpl(){const e=this._lineRendererData;if(e.visible=!1,!this._isVisible.value())return;const t=this._model.mainSeries(),i=t.priceScale(),s=t.firstValue(),r=this._getValue();if(null===s||null===r)return;const n=je(this._model.isDark()),o=this._lineColor.value()?this._lineColor.value():n.lineColor,a=this._lineWidth.value()?this._lineWidth.value():n.lineWidth;e.visible=!0,e.y=i.priceToCoordinate(r,s),e.linestyle=n.lineStyle,e.linewidth=a,e.color=o}}class qe extends Se.PriceAxisView{constructor(e,t,i,s){super(),this._model=e,this._label=t,this._isVisible=i,this._getValue=s}_updateRendererData(e,t,i){if(e.visible=!1,t.visible=!1, -!this._isVisible.value())return;const s=this._model.mainSeries(),r=s.priceScale(),n=s.firstValue(),o=this._getValue();if(null===n||null===o)return;const a=je(this._model.isDark());e.visible=!0,t.visible=!0,e.text=r.formatPriceAbsolute(o),t.text=this._label,i.coordinate=r.priceToCoordinate(o,n),i.background=a.backgroundColor,i.textColor=a.textColor}}class $e extends Ae.PriceLineAxisView{constructor(e,t,i){super(),this._model=e,this._isLineVisible=t,this._getValue=i}_isVisible(){return this._isLineVisible.value()}_lineWidth(){return je(this._model.isDark()).lineWidth}_lineStyle(){return je(this._model.isDark()).lineStyle}_priceLineColor(e){return je(this._model.isDark()).lineColor}_value(){const e=this._model.mainSeries(),t=e.priceScale(),i=e.firstValue(),s=this._getValue();if(null===i||null===s)return{noData:!0};const r=t.priceToCoordinate(s,i);return{noData:!1,floatCoordinate:r,coordinate:r,color:"",formattedPricePercentage:"",formattedPriceAbsolute:"",formattedPriceIndexedTo100:"",text:"",index:0}}}const Ye=y.t(null,void 0,i(22554));function Ke(e,t,i,s){const r=i.childs(),n=function(e,t,i,s){const r=new Ge(e,i,s),n=new qe(e,i.label,i.labelVisible,s),o=new ke.PanePriceAxisView(n,t,e),a=new $e(e,i.lineVisible,s);return{paneView:r,panePriceAxisView:o,priceAxisView:n,priceLineAxisView:a}}(e,t,{label:Ye,labelVisible:r.averageClosePriceLabelVisible,lineVisible:r.averageClosePriceLineVisible,lineColor:r.averagePriceLineColor,lineWidth:r.averagePriceLineWidth},(()=>s(0)));return{paneViews:[n.paneView],panePriceAxisViews:[n.panePriceAxisView],priceAxisViews:[n.priceAxisView],priceLineAxisViews:[n.priceLineAxisView]}}var Xe=i(26867),Ze=i.n(Xe),Je=i(90854),Qe=i(91035),et=i(86441);class tt{constructor(){this._data=null}setData(e){this._data=e}data(){return this._data}draw(e,t){const i=this._data;if(null===i)return;const s=t.pixelRatio;e.save();const r=Math.max(1,Math.floor(s)),n=r%2/2,o=Math.round(i.center.x*s)+n,a=i.center.y*s;e.fillStyle=i.seriesLineColor,e.beginPath();const l=Math.max(2,1.5*i.seriesLineWidth)*s;e.arc(o,a,l,0,2*Math.PI,!1),e.fill(),e.fillStyle=i.fillColor,e.beginPath(),e.arc(o,a,i.radius*s,0,2*Math.PI,!1),e.fill(),e.lineWidth=r,e.strokeStyle=i.strokeColor,e.beginPath(),e.arc(o,a,i.radius*s+r/2,0,2*Math.PI,!1),e.stroke(),e.restore()}hitTest(e,t){return null}}function it(e){return e}const st=[{start:0,end:.25,startRadius:4,endRadius:10,startFillAlpha:.25,endFillAlpha:0,startStrokeAlpha:.4,endStrokeAlpha:.8,easing:it},{start:.25,end:.525,startRadius:10,endRadius:14,startFillAlpha:0,endFillAlpha:0,startStrokeAlpha:.8,endStrokeAlpha:0,easing:it},{start:.525,end:1,startRadius:14,endRadius:14,startFillAlpha:0,endFillAlpha:0,startStrokeAlpha:0,endStrokeAlpha:0,easing:it}];function rt(e,t,i,s){const r=i+(s-i)*t;return(0,ve.applyTransparency)(e,(0,ve.alphaToTransparency)(r))}function nt(e,t){const i=e%2600/2600;let s;for(const e of st)if(i>=e.start&&i<=e.end){s=e;break}if(void 0===s)throw new Error("Last price animation internal logic error");const r=s.easing((i-s.start)/(s.end-s.start));return{ +!this._isVisible.value())return;const s=this._model.mainSeries(),r=s.priceScale(),n=s.firstValue(),o=this._getValue();if(null===n||null===o)return;const a=je(this._model.isDark());e.visible=!0,t.visible=!0,e.text=r.formatPriceAbsolute(o),t.text=this._label,i.coordinate=r.priceToCoordinate(o,n),i.background=a.backgroundColor,i.textColor=a.textColor}}class $e extends Ae.PriceLineAxisView{constructor(e,t,i){super(),this._model=e,this._isLineVisible=t,this._getValue=i}_isVisible(){return this._isLineVisible.value()}_lineWidth(){return je(this._model.isDark()).lineWidth}_lineStyle(){return je(this._model.isDark()).lineStyle}_priceLineColor(e){return je(this._model.isDark()).lineColor}_value(){const e=this._model.mainSeries(),t=e.priceScale(),i=e.firstValue(),s=this._getValue();if(null===i||null===s)return{noData:!0};const r=t.priceToCoordinate(s,i);return{noData:!1,floatCoordinate:r,coordinate:r,color:"",formattedPricePercentage:"",formattedPriceAbsolute:"",formattedPriceIndexedTo100:"",text:"",index:0}}}const Ye=y.t(null,void 0,i(22554));function Ke(e,t,i,s){const r=i.childs(),n=function(e,t,i,s){const r=new Ge(e,i,s),n=new qe(e,i.label,i.labelVisible,s),o=new ke.PanePriceAxisView(n,t,e),a=new $e(e,i.lineVisible,s);return{paneView:r,panePriceAxisView:o,priceAxisView:n,priceLineAxisView:a}}(e,t,{label:Ye,labelVisible:r.averageClosePriceLabelVisible,lineVisible:r.averageClosePriceLineVisible,lineColor:r.averagePriceLineColor,lineWidth:r.averagePriceLineWidth},(()=>s(0)));return{paneViews:[n.paneView],panePriceAxisViews:[n.panePriceAxisView],priceAxisViews:[n.priceAxisView],priceLineAxisViews:[n.priceLineAxisView]}}var Ze=i(26867),Xe=i.n(Ze),Je=i(90854),Qe=i(91035),et=i(86441);class tt{constructor(){this._data=null}setData(e){this._data=e}data(){return this._data}draw(e,t){const i=this._data;if(null===i)return;const s=t.pixelRatio;e.save();const r=Math.max(1,Math.floor(s)),n=r%2/2,o=Math.round(i.center.x*s)+n,a=i.center.y*s;e.fillStyle=i.seriesLineColor,e.beginPath();const l=Math.max(2,1.5*i.seriesLineWidth)*s;e.arc(o,a,l,0,2*Math.PI,!1),e.fill(),e.fillStyle=i.fillColor,e.beginPath(),e.arc(o,a,i.radius*s,0,2*Math.PI,!1),e.fill(),e.lineWidth=r,e.strokeStyle=i.strokeColor,e.beginPath(),e.arc(o,a,i.radius*s+r/2,0,2*Math.PI,!1),e.stroke(),e.restore()}hitTest(e,t){return null}}function it(e){return e}const st=[{start:0,end:.25,startRadius:4,endRadius:10,startFillAlpha:.25,endFillAlpha:0,startStrokeAlpha:.4,endStrokeAlpha:.8,easing:it},{start:.25,end:.525,startRadius:10,endRadius:14,startFillAlpha:0,endFillAlpha:0,startStrokeAlpha:.8,endStrokeAlpha:0,easing:it},{start:.525,end:1,startRadius:14,endRadius:14,startFillAlpha:0,endFillAlpha:0,startStrokeAlpha:0,endStrokeAlpha:0,easing:it}];function rt(e,t,i,s){const r=i+(s-i)*t;return(0,ve.applyTransparency)(e,(0,ve.alphaToTransparency)(r))}function nt(e,t){const i=e%2600/2600;let s;for(const e of st)if(i>=e.start&&i<=e.end){s=e;break}if(void 0===s)throw new Error("Last price animation internal logic error");const r=s.easing((i-s.start)/(s.end-s.start));return{ fillColor:rt(t,r,s.startFillAlpha,s.endFillAlpha),strokeColor:rt(t,r,s.startStrokeAlpha,s.endStrokeAlpha),radius:(n=r,o=s.startRadius,a=s.endRadius,o+(a-o)*n)};var n,o,a}class ot{constructor(e){this._renderer=new tt,this._invalidated=!0,this._stageInvalidated=!0,this._startTime=performance.now(),this._endTime=this._startTime-1,this._series=e}update(e){if(this._invalidated=!0,"data-source-change"===e.type&&e.sourceId===this._series.id()&&e.realtime&&this._series.seriesLoaded()){const e=performance.now(),t=this._endTime-e;if(t>0)return void(t<650&&(this._endTime+=2600));this._startTime=e,this._endTime=e+2600}}invalidateStage(){this._stageInvalidated=!0}animationActive(){return performance.now()<=this._endTime}stopAnimation(){this._endTime=this._startTime-1}renderer(e,t){return this._invalidated?(this._updateImpl(e,t),this._invalidated=!1,this._stageInvalidated=!1):this._stageInvalidated&&(this._updateRendererDataStage(),this._stageInvalidated=!1),this._renderer}_updateImpl(e,t){this._renderer.setData(null);const i=this._series.model().timeScale(),s=i.visibleBarsStrictRange(),r=this._series.firstValue(),n=this._series.lastValueData(void 0,!0,!0);if(null===s||null===r||void 0===n.index||void 0===n.price||!s.contains(n.index))return;const o=new et.Point(i.indexToCoordinate(n.index),this._series.priceScale().priceToCoordinate(n.price,r)),a=n.color,l=this._series.properties().childs();let c;switch(this._series.style()){case 3:c=l.areaStyle.childs().linewidth.value();break;case 10:const t=l.baselineStyle,i=Math.round(e*(Math.abs(100-t.childs().baseLevelPercentage.value())/100));c=o.y<=i?t.childs().topLineWidth.value():t.childs().bottomLineWidth.value();break;default:c=l.lineStyle.childs().linewidth.value()}const h=nt(this._duration(),a);this._renderer.setData({seriesLineColor:a,seriesLineWidth:c,fillColor:h.fillColor,strokeColor:h.strokeColor,radius:h.radius,center:o})}_updateRendererDataStage(){const e=this._renderer.data();if(null!==e){const t=nt(this._duration(),e.seriesLineColor);e.fillColor=t.fillColor,e.strokeColor=t.strokeColor,e.radius=t.radius}}_duration(){return this.animationActive()?performance.now()-this._startTime:2599}}var at=i(36646),lt=i(77213),ct=i(7578),ht=i(92133),dt=i(1975);const ut=b.enabled("chart_style_hilo_last_price");class pt extends dt.SeriesHorizontalLinePaneView{constructor(e){super(e),this._lineRendererData.linestyle=Be.LINESTYLE_DOTTED}_updateImpl(){this._lineRendererData.visible=!1;const e=this._series.properties().childs();if(!e.showPriceLine.value())return;if(!ut&&12===e.style.value())return;const t=this._series.lastValueData(void 0,!0);t.noData||(this._lineRendererData.visible=!0,this._lineRendererData.y=t.coordinate,this._lineRendererData.color=this._series.priceLineColor(t.color),this._lineRendererData.linewidth=e.priceLineWidth.value())}}var _t=i(74234),mt=i(16199),gt=i(78201),ft=i(83438),vt=i(15381),St=i(9657),yt=i(36767),bt=i(29639),wt=i(55014),Pt=i(53074),Ct=i(59386);class Tt extends vt.SeriesCandlesPaneView{renderer(e,t){this._invalidated&&(this._updateImpl(null), -this._invalidated=!1);const i=this._source.priceScale();if(!i)return null;const s=this._source.properties().childs().haStyle.childs(),r=this._model.timeScale().barSpacing(),n={bars:this._bars,barSpacing:r,bodyVisible:s.drawBody.value(),borderVisible:s.drawBorder.value(),borderColor:s.borderColor.value(),wickColor:s.wickColor.value(),barWidth:(0,wt.optimalBarWidth)(r),wickVisible:s.drawWick.value(),isPriceScaleInverted:i.isInverted()},o=new bt.CompositeRenderer;return o.append(new Ct.PaneRendererCandles(n)),this._model.selection().isSelected(this._source)&&this._isMarkersEnabled&&this._selectionData&&o.append(new Pt.SelectionRenderer(this._selectionData)),o}}var xt=i(73436),It=i(14224),Mt=i(98799),At=i(2250),Lt=i(89215),kt=i(69145);const Et=b.enabled("price_scale_always_last_bar_value"),Dt=b.enabled("display_data_mode"),Bt=(r.CheckMobile.any(),!b.enabled("hide_series_legend_item")),Vt=b.enabled("hide_price_scale_global_last_bar_value"),Rt=b.enabled("show_average_close_price_line_and_label"),Nt=b.enabled("no_bars_status"),Ot=b.enabled("charting_library_debug_mode"),Ft=b.enabled("chart_style_hilo_last_price"),Wt=(0,a.getLogger)("Chart.Series"),Ht=b.enabled("pre_post_market_sessions");const zt={countdownEnabled:!0,lastPriceAnimationEnabled:!0};function Ut(e,t,i){return void 0===t?null:`${e}=${t} (${i?"changed":"unchanged"})`}function jt(e){const t=e.state();return t.data.forEach((e=>e.value.splice(7,1))),t}class Gt extends l.PriceDataSource{constructor(e,t,i,r){super(e,"_seriesId"),this.requestingIntradayWhenNotSupported=new(Ze()),this.requestingStyleIsNotSupported=new(Ze()),this.requestingStyleSupportRecovered=new(Ze()),this.requestingResolutionLessThanFrequency=new(Ze()),this._paneView=null,this._futureBarsPaneView=null,this._projectionBarsPaneView=null,this._waterlineView=null,this._priceLineView=null,this._gotoDateView=null,this._baseHorizontalLineView=null,this._priceStep=null,this._symbolInfo=null,this._prevSymbolInfo=null,this._isPrePostMarketPricesAvailableProperty=new(_())(!1),this._isBackAdjustmentForbiddenProperty=new(_())(!0),this._isSettlementAsCloseForbiddenProperty=new(_())(!0),this._highLowPriceCache=new Map,this._averagePriceCache=new Map,this._prevClosePriceAxisView=null,this._priceScaleChanged=new(Ze()),this._priceScaleAboutToBeChanged=new(Ze()),this._onRestarted=new(Ze()),this._onStatusChanged=new(Ze()),this._extendedHoursChanged=new(Ze()),this._tagsChanged=new(Ze()),this._intervalChanged=new(Ze()),this._sessionIdChanged=new(Ze()),this._requestMoreDataAvailable=!0,this._lineStyleLastPriceCirclePaneView=new ot(this),this._prevClosePriceLineView=null,this._dataPoweredBy=null,this._loading=!0,this._seriesLoaded=!1,this._status=0,this._symbolResolvingActive=new(Y())(!1),this._predictBars=0,this._syncModel=null,this._data=null,this._lastCompleteFlags=null,this._haStyle={studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(8,!0))},this._renkoStyle={studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(4,!0))},this._pbStyle={studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(7,!0))},this._kagiStyle={ -studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(5,!0))},this._pnfStyle={studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(6,!0))},this._rangeStyle={studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(11,!0))},this._barColorerCache=null,this._boxSizeValue=new(Y()),this._base=100,this._pointValue=1,this._formattingDeps=null,this._formatter=new f.PriceFormatter(this._base),this._ignoreMinMoveFormatter=new f.PriceFormatter(this._base),this._ignoreMinMovePriceStep=null,this._lastBarCloseTime=null,this._onSessionIdPropertyChangedBound=this._onSessionIdPropertyChanged.bind(this),this._ignoreSessionIdProxyPropertyChanges=!1,this._textSourceIsAlwaysTickerRestrictionEnabled=!1,this._lastPriceAnimationActive=!1,this._currentSession="out_of_session",this._onStyleChanged=new(Ze()),this._intervalObj=null,this._obsoleteZOrder=0,this._seriesErrorMessage=null,this._seriesAlwaysFalseHibernatedVW=new(Y())(!1),this._styleToRecover=null,this._precomputedBarStyles=new WeakMap,this._doNotShowLastAvailableBar=!1,this._gotoDateResultCleared=!1,this._endOfDataPaneView=null,this._pendingTimeRange=null,this._replaySubscriber=null,this._symbolIntervalChanged=new(Ze()),this._isReplayResolutionAvailableForUser=null,this._onInReplayStateChanged=new(Ze()),this._replayExitedDueUnsupportedInterval=new(Ze()),this._replayExitedDueUnavailableForUserInterval=new(Ze()),this._onTimeFrameApplied=new(Ze()),this._prevRequestedInterval="",this._isActingAsSymbolSource=new(Y())(!0),this._seriesSource=new lt.SeriesDataSource(e.chartApi(),"s",r);const n=this._seriesSource.dataEvents();n.symbolResolved().subscribe(this,this._onSymbolResolved),n.symbolError().subscribe(this,this._onSymbolError),n.seriesTimeFrame().subscribe(this,this._onSeriesTimeFrame),n.seriesError().subscribe(this,this._onSeriesError),n.loading().subscribe(this,this._onSeriesLoading),n.completed().subscribe(this,this._onSeriesCompleted),n.dataUpdated().subscribe(this,this._onDataUpdated),n.barReceived().subscribe(this,this._onBarReceived),this._quotesProvider=new fe.QuotesProvider,this._quotesProvider.quotesUpdate().subscribe(this,this._onQuotesUpdate);const o=t.childs();if(t.hasChild("extendedHours")){(0,s.ensureDefined)(o.extendedHours).value()&&!t.hasChild("sessionId")&&t.addChild("sessionId",new(_())("extended")),t.removeProperty("extendedHours")}t.hasChild("sessionId")||t.addChild("sessionId",new(_())(g.SubsessionId.Regular)),this._setProperties(t),this._sessionIdProxyProperty=new(_())(o.sessionId.value()),o.sessionId.subscribe(this,(()=>this._updateSessionIdProxyProperty())),this._sessionIdProxyProperty.subscribe(this,this._onSessionIdProxyPropertyChanged),this._symbolTextSourceProxyProperty=new(_()),this._recalcSymbolTextSourceProxyProperty(),o.statusViewStyle.childs().symbolTextSource.subscribe(this,this._recalcSymbolTextSourceProxyProperty),this._symbolTextSourceProxyProperty.subscribe(this,(()=>e.lightUpdate())),this._options=(0,me.merge)((0,me.clone)(zt),i),this._prevChartStyle=o.style.value(),this._priceAxisView=new Me(this,e,{alwaysShowGlobalLast:!Vt, +this._invalidated=!1);const i=this._source.priceScale();if(!i)return null;const s=this._source.properties().childs().haStyle.childs(),r=this._model.timeScale().barSpacing(),n={bars:this._bars,barSpacing:r,bodyVisible:s.drawBody.value(),borderVisible:s.drawBorder.value(),borderColor:s.borderColor.value(),wickColor:s.wickColor.value(),barWidth:(0,wt.optimalBarWidth)(r),wickVisible:s.drawWick.value(),isPriceScaleInverted:i.isInverted()},o=new bt.CompositeRenderer;return o.append(new Ct.PaneRendererCandles(n)),this._model.selection().isSelected(this._source)&&this._isMarkersEnabled&&this._selectionData&&o.append(new Pt.SelectionRenderer(this._selectionData)),o}}var xt=i(73436),It=i(14224),Mt=i(98799),At=i(2250),Lt=i(89215),kt=i(69145);const Et=b.enabled("price_scale_always_last_bar_value"),Dt=b.enabled("display_data_mode"),Bt=(r.CheckMobile.any(),!b.enabled("hide_series_legend_item")),Vt=b.enabled("hide_price_scale_global_last_bar_value"),Rt=b.enabled("show_average_close_price_line_and_label"),Nt=b.enabled("no_bars_status"),Ot=b.enabled("charting_library_debug_mode"),Ft=b.enabled("chart_style_hilo_last_price"),Wt=(0,a.getLogger)("Chart.Series"),Ht=b.enabled("pre_post_market_sessions");const zt={countdownEnabled:!0,lastPriceAnimationEnabled:!0};function Ut(e,t,i){return void 0===t?null:`${e}=${t} (${i?"changed":"unchanged"})`}function jt(e){const t=e.state();return t.data.forEach((e=>e.value.splice(7,1))),t}class Gt extends l.PriceDataSource{constructor(e,t,i,r){super(e,"_seriesId"),this.requestingIntradayWhenNotSupported=new(Xe()),this.requestingStyleIsNotSupported=new(Xe()),this.requestingStyleSupportRecovered=new(Xe()),this.requestingResolutionLessThanFrequency=new(Xe()),this._paneView=null,this._futureBarsPaneView=null,this._projectionBarsPaneView=null,this._waterlineView=null,this._priceLineView=null,this._gotoDateView=null,this._baseHorizontalLineView=null,this._priceStep=null,this._symbolInfo=null,this._prevSymbolInfo=null,this._isPrePostMarketPricesAvailableProperty=new(_())(!1),this._isBackAdjustmentForbiddenProperty=new(_())(!0),this._isSettlementAsCloseForbiddenProperty=new(_())(!0),this._highLowPriceCache=new Map,this._averagePriceCache=new Map,this._prevClosePriceAxisView=null,this._priceScaleChanged=new(Xe()),this._priceScaleAboutToBeChanged=new(Xe()),this._onRestarted=new(Xe()),this._onStatusChanged=new(Xe()),this._extendedHoursChanged=new(Xe()),this._tagsChanged=new(Xe()),this._intervalChanged=new(Xe()),this._sessionIdChanged=new(Xe()),this._requestMoreDataAvailable=!0,this._lineStyleLastPriceCirclePaneView=new ot(this),this._prevClosePriceLineView=null,this._dataPoweredBy=null,this._loading=!0,this._seriesLoaded=!1,this._status=0,this._symbolResolvingActive=new(Y())(!1),this._predictBars=0,this._syncModel=null,this._data=null,this._lastCompleteFlags=null,this._haStyle={studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(8,!0))},this._renkoStyle={studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(4,!0))},this._pbStyle={studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(7,!0))},this._kagiStyle={ +studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(5,!0))},this._pnfStyle={studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(6,!0))},this._rangeStyle={studyId:(0,s.ensureNotNull)((0,m.chartStyleStudyId)(11,!0))},this._barColorerCache=null,this._boxSizeValue=new(Y()),this._base=100,this._pointValue=1,this._formattingDeps=null,this._formatter=new f.PriceFormatter(this._base),this._ignoreMinMoveFormatter=new f.PriceFormatter(this._base),this._ignoreMinMovePriceStep=null,this._lastBarCloseTime=null,this._onSessionIdPropertyChangedBound=this._onSessionIdPropertyChanged.bind(this),this._ignoreSessionIdProxyPropertyChanges=!1,this._textSourceIsAlwaysTickerRestrictionEnabled=!1,this._lastPriceAnimationActive=!1,this._currentSession="out_of_session",this._onStyleChanged=new(Xe()),this._intervalObj=null,this._obsoleteZOrder=0,this._seriesErrorMessage=null,this._seriesAlwaysFalseHibernatedVW=new(Y())(!1),this._styleToRecover=null,this._precomputedBarStyles=new WeakMap,this._doNotShowLastAvailableBar=!1,this._gotoDateResultCleared=!1,this._endOfDataPaneView=null,this._pendingTimeRange=null,this._replaySubscriber=null,this._symbolIntervalChanged=new(Xe()),this._isReplayResolutionAvailableForUser=null,this._onInReplayStateChanged=new(Xe()),this._replayExitedDueUnsupportedInterval=new(Xe()),this._replayExitedDueUnavailableForUserInterval=new(Xe()),this._onTimeFrameApplied=new(Xe()),this._prevRequestedInterval="",this._isActingAsSymbolSource=new(Y())(!0),this._seriesSource=new lt.SeriesDataSource(e.chartApi(),"s",r);const n=this._seriesSource.dataEvents();n.symbolResolved().subscribe(this,this._onSymbolResolved),n.symbolError().subscribe(this,this._onSymbolError),n.seriesTimeFrame().subscribe(this,this._onSeriesTimeFrame),n.seriesError().subscribe(this,this._onSeriesError),n.loading().subscribe(this,this._onSeriesLoading),n.completed().subscribe(this,this._onSeriesCompleted),n.dataUpdated().subscribe(this,this._onDataUpdated),n.barReceived().subscribe(this,this._onBarReceived),this._quotesProvider=new fe.QuotesProvider,this._quotesProvider.quotesUpdate().subscribe(this,this._onQuotesUpdate);const o=t.childs();if(t.hasChild("extendedHours")){(0,s.ensureDefined)(o.extendedHours).value()&&!t.hasChild("sessionId")&&t.addChild("sessionId",new(_())("extended")),t.removeProperty("extendedHours")}t.hasChild("sessionId")||t.addChild("sessionId",new(_())(g.SubsessionId.Regular)),this._setProperties(t),this._sessionIdProxyProperty=new(_())(o.sessionId.value()),o.sessionId.subscribe(this,(()=>this._updateSessionIdProxyProperty())),this._sessionIdProxyProperty.subscribe(this,this._onSessionIdProxyPropertyChanged),this._symbolTextSourceProxyProperty=new(_()),this._recalcSymbolTextSourceProxyProperty(),o.statusViewStyle.childs().symbolTextSource.subscribe(this,this._recalcSymbolTextSourceProxyProperty),this._symbolTextSourceProxyProperty.subscribe(this,(()=>e.lightUpdate())),this._options=(0,me.merge)((0,me.clone)(zt),i),this._prevChartStyle=o.style.value(),this._priceAxisView=new Me(this,e,{alwaysShowGlobalLast:!Vt, showCountdown:i.countdownEnabled});let a=null;Et||Vt||(a=new Me(this,e,{visibleOnHistoryOnly:!0,showSymbolLabel:!1,showCountdown:!1,alwaysShowGlobalLast:!1,useSolidBodyColor:!1})),this._priceLinePriceAxisView=new Ae.SeriesPriceLineAxisView(this),this._priceLineAxisViews=[this._priceLinePriceAxisView];const l=new Le(this,e,{showCountdown:i.countdownEnabled});this._priceAxisViews=[this._priceAxisView,l],null!==a&&this._priceAxisViews.push(a),this._panePriceAxisView=new ke.PanePriceAxisView(this._priceAxisView,this,e),this._historyPricePanePriceAxisView=null!==a?new ke.PanePriceAxisView(a,this,e):null,this._projectionPriceAxisView=new ke.PanePriceAxisView(l,this,e),this._labelPaneViews=[this._panePriceAxisView,this._projectionPriceAxisView],null!==this._historyPricePanePriceAxisView&&this._labelPaneViews.push(this._historyPricePanePriceAxisView),this._highLowAvgPaneViews=[],this._averagePaneViews=[],Rt&&this._createAverageViews(),this._createHighLowAvgViews(),this._subscribeRestartToSessionIdChange(),o.visible.subscribe(this,this._updateLastPriceAnimationActive),this._updateLastPriceAnimationActive(),this._dataWindowView=new H(this,e),this._legendView=new q(this,e),this._statusView=new D(this,this._model.properties().childs().scalesProperties.childs().textColor,o.statusViewStyle),this._marketStatusModel=new Q(this._quotesProvider,o.symbol.listeners()),this._dataUpdatedModeModel=Dt?new pe({getter:this.symbolInfo.bind(this),onChange:n.symbolResolved()},{getter:this.status.bind(this),onChange:this._onStatusChanged},{getter:()=>{var e;return null===(e=this._lastCompleteFlags)||void 0===e?void 0:e.rt_update_period},onChange:n.completed()},o.symbol.listeners()):null,this._dataProblemModel=new ge(this._quotesProvider,o.symbol.listeners()),this._symbolResolvingActive.subscribe((()=>e.realignLineTools())),this._intervalChanged.subscribe(this,(()=>e.realignLineTools()))}supportsPressedChunks(){return!0}pressedChunks(e,t){return this.data().pressedChunks(e,t)}seriesErrorMessage(){return this._seriesErrorMessage}destroy(){this._quotesProvider.quotesUpdate().unsubscribeAll(this),this._quotesProvider.destroy(),this._model.timeScale().visibleBarsStrictRangeChanged().unsubscribeAll(this),this._unsubscribeRestartToSessionIdChange(),this._replayExitedDueUnsupportedInterval.destroy(),this._replayExitedDueUnavailableForUserInterval.destroy(),this._onTimeFrameApplied.destroy()}isActingAsSymbolSource(){return this._isActingAsSymbolSource.readonly()}barColorer(){if(this._barColorerCache)return this._barColorerCache;let e=null;const t=this._model.dataSources();for(let i=t.length-1;i>=0;i--){const r=t[i];if((0,Lt.isStudy)(r)&&r.hasBarColorer()&&!r.isSourceHidden()){const t=(0,s.ensureNotNull)(r.barColorer());null===e?e=t:e.pushBackBarColorer(t)}}return null===e?e=new At.SeriesBarColorer(this):e.pushBackBarColorer(new At.SeriesBarColorer(this)),this._barColorerCache=e,e}createPaneView(){this._paneView=null,this._projectionBarsPaneView=null,this._waterlineView=null,this._priceLineView=this.hasClosePrice()?new pt(this):null ;const e=this._properties.childs().style.value();switch(e){case 0:this._paneView=new ft.SeriesBarsPaneView(this,this._model);break;case 1:this._paneView=new vt.SeriesCandlesPaneView(this,this._model);break;case 2:this._paneView=new St.SeriesLinePaneView(this,this._model);break;case 3:this._paneView=new yt.SeriesAreaPaneView(this,this._model);break;case 8:this._paneView=new Tt(this,this._model);break;case 9:this._paneView=new xt.SeriesHollowCandlesPaneView(this,this._model);break;case 13:this._paneView=new gt.SeriesColumnsPaneView(this,this._model);break;case 10:{this._paneView=new It.SeriesBaselinePaneView(this,this._model);const e=this._properties.childs().baselineStyle.childs();this._waterlineView=new _t.SeriesWaterlinePaneView({paneHeight:()=>this.priceScale().height(),color:()=>e.baselineColor.value(),baseLevelPercentage:()=>e.baseLevelPercentage.value()});break}case 12:this._paneView=new mt.SeriesHiLoPaneView(this,this._model)}if(null===this._paneView)throw Error("Unknown chart style assigned: "+e)}properties(){return this._properties}zorder(){return 0}quotesProvider(){return this._quotesProvider}currentSession(){return this._currentSession}syncModel(){if(!this._syncModel){const e=this.symbolInfo(),t=this.interval();if(!e||!t)return null;this._syncModel=new oe(e,t)}return this._syncModel}labelPaneViews(){return this._labelPaneViews}topPaneViews(){const e=[];if(null!==this._gotoDateView&&e.push(this._gotoDateView),this._lastPriceAnimationActive){const t=this._lineStyleLastPriceCirclePaneView;t.animationActive()&&setTimeout((()=>this._model.invalidate(at.InvalidationMask.cursor())),0),t.invalidateStage(),e.push(t)}return 0!==e.length?e:null}paneViews(){if(!this.properties().childs().visible.value())return null;const e=[(0,s.ensureNotNull)(this._baseHorizontalLineView),(0,s.ensureNotNull)(this._paneView)];return this._endOfDataPaneView&&e.push(this._endOfDataPaneView),this._futureBarsPaneView&&e.push(this._futureBarsPaneView),this._projectionBarsPaneView&&e.push(this._projectionBarsPaneView),null!==this._waterlineView&&e.push(this._waterlineView),null!==this._priceLineView&&e.push(this._priceLineView),e.push(...this._highLowAvgPaneViews),e.push(...this._averagePaneViews),e}priceAxisViews(e,t){return e.findTargetPriceAxisViews(this,t,this._priceAxisViews,this._priceLineAxisViews)}clearHighLowPriceCache(){this._highLowPriceCache.clear()}clearAveragePriceCache(){this._averagePriceCache.clear()}priceScaleChanged(){return this._priceScaleChanged}priceScaleAboutToBeChanged(){return this._priceScaleAboutToBeChanged}disconnect(){this._seriesSource.stop(),this._predictBars=0,this._status=0,this._model.isSnapshot()||(this._prevSymbolInfo=null,this._symbolInfo=null)}isStarted(){return this._seriesSource.isStarted()}restart(e=!0){if(5===this._status)return;this._loading=!0,this._lastCompleteFlags=null,this._onRestarted.fire(),this._setStatus(1),this._updateSymbolInfo(null,e);let t=this._properties.childs().interval.value();te.Interval.isEqual(t,this._prevRequestedInterval)&&this._notifyIntervalChanged(t);let i=null ;this._pendingTimeRange&&(i=this._pendingTimeRange,this._pendingTimeRange=null),this._onBeforeModifySeries(this.getSymbolString(),t),this._onTimeFrameApplied.fire(i),t=(0,ht.getServerInterval)(t),this._data=null,this._seriesSource.modifySeries(this._getResolvingSymbolObject(),t,i),this._seriesSource.isStarted()||this._seriesSource.start(),this._prevRequestedInterval=this.interval(),this.updateAllViews((0,Pe.sourceChangeEvent)(this.id())),this._model.lightUpdate()}isSymbolInvalid(){return 4===this._status}getSymbolString(){return(0,Qe.encodeExtendedSymbolOrGetSimpleSymbolString)(this._getSymbolObject())}invalidateBarStylesCache(e){Wt.logDebug("Invalidate style cache starting from "+e),this._clearStylePlot(this.bars(),e),this._clearStylePlot(this.nsBars())}isStatusBad(){return 12===this.status()||4===this.status()||10===this.status()}isStatusError(){return 12===this.status()}actualSymbol(){return(0,m.actualSymbol)(this.symbolInfo(),this.symbol())}proSymbol(){return(0,m.proSymbol)(this.symbolInfo(),this.symbol())}onStyleChanged(){return this._onStyleChanged}style(){return this.properties().childs().style.value()}setStyle(e){this.setSymbolParams({style:e})}isRangeBasedStyle(){return(0,m.isRangeBasedStyle)(this.style())}symbolSameAsCurrent(e){return(0,Je.symbolSameAsCurrent)(e,this.symbolInfo())}status(){return this._status}symbol(){return this.properties().childs().symbol.value()}symbolInfo(){return this._symbolInfo}symbolResolved(){return this.dataEvents().symbolResolved()}symbolResolvingActive(){return this._symbolResolvingActive}symbolHibernated(){return this._seriesAlwaysFalseHibernatedVW}firstValue(){const e=this.firstBar();return null===e?null:this._barFunction(e,0)}firstBar(){const e=this.model().timeScale().visibleBarsStrictRange();if(null===e)return null;const t=e.firstBar(),i=this.data().search(t,d.PlotRowSearchMode.NearestRight);return null!==i?i.value:null}formatter(e=!0){return e?this._formatter:this._ignoreMinMoveFormatter}priceStep(e=!0){return e?this._priceStep:this._ignoreMinMovePriceStep}bars(){return this.data().bars()}nsBars(){return this.data().nsBars()}interval(){return this.properties().childs().interval.value()}setInterval(e){this.setSymbolParams({interval:e})}intervalObj(){const e=this.interval();if(null!==this._intervalObj&&this._intervalObj.resolutionString===e)return this._intervalObj.interval;const t=te.Interval.parse(e);return this._intervalObj={resolutionString:e,interval:t},t}prevClose(){const e=this.priceScale();if(e.isEmpty()||this.data().isEmpty())return null;const t=this.quotes(),i=this.firstValue();if(null===t||null===i)return null;const s=t.prev_close_price;return void 0===s?null:{coordinate:e.priceToCoordinate(s,i),floatCoordinate:e.priceToCoordinate(s,i),formattedPricePercentage:e.formatPricePercentage(s,i,!0),formattedPriceAbsolute:e.formatPriceAbsolute(s),formattedPriceIndexedTo100:e.formatPriceIndexedTo100(s,i)}}priceLineColor(e){return this.properties().childs().priceLineColor.value()||e}hasClosePrice(){return Ft||12!==this.properties().childs().style.value()} @@ -669,8 +670,8 @@ if(te.Interval.isIntraday(e)&&!this._symbolInfo.has_intraday)return t&&this.requ ht.getServerInterval)(t),l,o),this._seriesSource.isStarted()||(this._predictBars=0,this._seriesSource.start()),(i||r||n)&&this.disablePriceRangeReady(),this.updateAllViews((0,Pe.sourceChangeEvent)(this.id())),this._model.lightUpdate()}_isIntervalSupported(e){return!0}_onBeforeModifySeries(e,t){0}_getResolvingSymbolObject(){return this._getSymbolObject()}_onSessionIdPropertyChanged(){this._sessionIdChanged.fire(),this.isDWM()||(this.restart(),this._updateLastPriceAnimationActive())}_subscribeRestartToSessionIdChange(){this.properties().childs().sessionId.subscribe(this,this._onSessionIdPropertyChangedBound)}_unsubscribeRestartToSessionIdChange(){this.properties().childs().sessionId.unsubscribe(this,this._onSessionIdPropertyChangedBound)}_updateLastPriceAnimationActive(){if(!this._options.lastPriceAnimationEnabled)return;const e=this._lastPriceAnimationActive,t=this.properties().childs(),i=t.style.value();if(this._model.isSnapshot()||!t.visible.value()||3!==i&&10!==i&&2!==i)this._lastPriceAnimationActive=!1;else{const e=this.currentSession(),t=!(0,m.isRegularSessionId)(this.sessionIdProxyProperty().value())&&!this.isDWM();this._lastPriceAnimationActive="market"===e||t&&("pre_market"===e||"post_market"===e)}this._lastPriceAnimationActive&&e!==this._lastPriceAnimationActive&&this.model().invalidate(at.InvalidationMask.cursor())}_onPropertiesChanged(e){const t=this._properties.childs();e!==t.symbol&&e!==t.interval&&e!==t.timeframe&&(this._tagsChanged.fire(),this.createPaneView(),this.updateAllViews((0,Pe.sourceChangeEvent)(this._id)),this.model().updateSource(this),(0,o.emit)("series_properties_changed",this._id))}_recalcSymbolTextSourceProxyProperty(){this._textSourceIsAlwaysTickerRestrictionEnabled?this._symbolTextSourceProxyProperty.setValue("ticker"):this._symbolTextSourceProxyProperty.setValue(this._properties.childs().statusViewStyle.childs().symbolTextSource.value())}_clearStylePlot(e,t){if(0===e.size())return;if(void 0===t&&e!==this.nsBars())return void(this._precomputedBarStyles=new WeakMap);const i=null!=t?t:(0,s.ensureNotNull)(e.firstIndex()),r=(0,s.ensureNotNull)(e.lastIndex())+1;e.range(i,r).each(((e,t)=>(this._precomputedBarStyles.delete(t),!1)))}}},77906:(e,t,i)=>{"use strict";i.r(t),i.d(t,{STATUS_OFFLINE:()=>s,STATUS_RESOLVING:()=>r,STATUS_LOADING:()=>n,STATUS_READY:()=>o,STATUS_INVALID_SYMBOL:()=>a,STATUS_SNAPSHOT:()=>l,STATUS_EOD:()=>c,STATUS_PULSE:()=>h,STATUS_DELAYED:()=>d,STATUS_DELAYED_STREAMING:()=>u,STATUS_NO_BARS:()=>p,STATUS_REPLAY:()=>_,STATUS_ERROR:()=>m,SERIES_STATUS_TEXT:()=>g,STYLE_LINE_TYPE_MARKERS:()=>f,STYLE_LINE_TYPE_STEP:()=>v,STYLE_LINE_TYPE_SIMPLE:()=>S,STYLE_BARS:()=>y,STYLE_CANDLES:()=>b,STYLE_LINE:()=>w,STYLE_AREA:()=>P,STYLE_RENKO:()=>C,STYLE_KAGI:()=>T,STYLE_PNF:()=>x,STYLE_PB:()=>I,STYLE_HEIKEN_ASHI:()=>M,STYLE_HOLLOW_CANDLES:()=>A,STYLE_BASELINE:()=>L,STYLE_RANGE:()=>k,STYLE_HILO:()=>E,STYLE_COLUMNS:()=>D,STYLE_SHORT_NAMES:()=>B,SYMBOL_STRING_DATA:()=>V});const s=0,r=1,n=2,o=3,a=4,l=5,c=6,h=7,d=8,u=9,p=10,_=11,m=12,g={[s]:"connecting",[r]:"loading",[n]:"loading",[o]:"realtime", [a]:"invalid",[l]:"snapshot",[c]:"endofday",[h]:"endofday",[d]:"delayed",[u]:"delayed_streaming",[p]:"forbidden",[_]:"replay",[m]:"error"},f=0,v=1,S=2,y=0,b=1,w=2,P=3,C=4,T=5,x=6,I=7,M=8,A=9,L=10,k=11,E=12,D=13,B={0:"bar",1:"candle",9:"hollowCandle",2:"line",3:"area",4:"renko",7:"pb",5:"kagi",6:"pnf",8:"ha",10:"baseline",11:"range",12:"hilo",13:"column"},V={4:{type:"BarSetRenko@tv-prostudies",basicStudyVersion:64},7:{type:"BarSetPriceBreak@tv-prostudies",basicStudyVersion:34},5:{type:"BarSetKagi@tv-prostudies",basicStudyVersion:34},6:{type:"BarSetPnF@tv-prostudies",basicStudyVersion:34},8:{type:"BarSetHeikenAshi@tv-basicstudies",basicStudyVersion:60},11:{type:"BarSetRange@tv-basicstudies",basicStudyVersion:72}}},22770:(e,t,i)=>{"use strict";i.d(t,{seriesPlotFunctionMap:()=>c,barFunction:()=>h,SeriesData:()=>p});var s,r=i(50151),n=i(88552),o=i(93975);!function(e){e[e.FromLeft=-1]="FromLeft",e[e.FromRight=1]="FromRight"}(s||(s={}));const a={open:e=>e[1],high:e=>e[2],low:e=>e[3],close:e=>e[4],hl2:e=>(e[2]+e[3])/2,hlc3:e=>(e[2]+e[3]+e[4])/3,ohlc4:e=>(e[1]+e[2]+e[3]+e[4])/4},l=["open","high","low","close","hl2","hlc3","ohlc4"];function c(){const e=new Map;return l.forEach(((t,i)=>{e.set(t,h(t))})),e}function h(e,t,i){const s=a[null!=t?t:e],r=a[e],n=a[null!=i?i:e];return(e,t)=>{switch(t){case 0:return s(e);case 2:return n(e);default:return r(e)}}}function d(e,t){return null==e[t]}const u=[{barsToMerge:10,forBarspacingLargerThen:.03},{barsToMerge:30,forBarspacingLargerThen:.01},{barsToMerge:100,forBarspacingLargerThen:.003},{barsToMerge:500,forBarspacingLargerThen:0}];class p{constructor(){this._pressedChunks={chunks:new Map,priceSource:"uninitialized"},this.m_bars=new n.PlotList(c(),d),this.m_nsBars=new n.PlotList(c(),d),this._clearPressedChunks()}bars(){return this.m_bars}nsBars(){return this.m_nsBars}pressedChunks(e,t){if(t!==this._pressedChunks.priceSource){this._pressedChunks.priceSource=t;const e=this.m_bars.first();e&&(this._clearPressedChunks(),this._rebuildPressedChunks(e))}const i=(0,r.ensureDefined)(u.find((t=>t.forBarspacingLargerThen<=e)));return(0,r.ensureDefined)(this._pressedChunks.chunks.get(i.barsToMerge))}mergeRegularBars(e){const t=this.m_bars.size(),i=this.m_bars.merge(e);return i&&"uninitialized"!==this._pressedChunks.priceSource&&(t===this.m_bars.size()&&i.index===this.m_bars.lastIndex()?this._updateLatestChunks():this._rebuildPressedChunks(i)),i}size(){return this.m_bars.size()+this.m_nsBars.size()}each(e){this.m_bars.each(e),this.m_nsBars.each(e)}clear(){this.m_bars.clear(),this.m_nsBars.clear(),this.lastProjectionPrice=void 0,this._clearPressedChunks()}isEmpty(){return this.m_bars.isEmpty()&&this.m_nsBars.isEmpty()}first(){return this.m_bars.isEmpty()?this.m_nsBars.first():this.m_bars.first()}last(){return this.m_nsBars.isEmpty()?this.m_bars.last():this.m_nsBars.last()}search(e,t){return this.nsBars().isEmpty()?this.bars().search(e,t):this.bars().isEmpty()||(0,r.ensureNotNull)(this.nsBars().firstIndex())<=e?this.nsBars().search(e,t):this.bars().search(e,t)}valueAt(e){const t=this.search(e) ;return null!==t?t.value:null}plotValueToTimePointIndex(e,t,i){if(i===s.FromRight){const i=(i,s)=>{const r=s[t];return null!=r&&e>=r},s=this.m_bars.findLast(i);if(null!==s)return s.index;const r=this.m_nsBars.findLast(i);return null!==r?r.index:this.m_bars.firstIndex()}if(i===s.FromLeft){const i=(i,s)=>{const r=s[t];return null!=r&&e<=r},s=this.m_bars.findFirst(i);if(null!==s)return s.index;const r=this.m_nsBars.findFirst(i);return null!==r?r.index:this.m_bars.lastIndex()}throw new Error("plotValueToTimePointIndex: unsupported search mode")}moveData(e){this.m_bars.move(e),this.m_nsBars.move(e),this.m_bars.size()>0&&this._rebuildPressedChunks((0,r.ensureNotNull)(this.m_bars.first()))}_rebuildPressedChunks(e){const t=this._pressedChunks.priceSource;if("uninitialized"===t)return;const i=e.index,s=a[t],n=(e,t,i)=>{let r=null;for(;e.hasNext();){const n=e.next(),o=s(n.value);r&&n.index-r.startTime>=i.barsToMerge&&(t.push(r),r=null),r?(r.endTime=n.index,r.high=Math.max(r.high,o),r.low=Math.min(r.low,o),r.close=o):r={startTime:n.index,endTime:n.index,open:o,high:o,low:o,close:o}}r&&t.push(r)};u.forEach((e=>{const t=(0,r.ensureDefined)(this._pressedChunks.chunks.get(e.barsToMerge)),s=(0,o.lowerbound)(t,i,((e,t)=>e.endTime0){const i=t[0].startTime-1,s=(0,r.ensureNotNull)(this.m_bars.firstIndex()),o=this.m_bars.rangeIterator(s,i),a=[];n(o,a,e);const l=a.concat(t);this._pressedChunks.chunks.set(e.barsToMerge,l)}else{const i=(0,r.ensureNotNull)(this.m_bars.lastIndex());t.splice(s);let o=(0,r.ensureNotNull)(this.m_bars.firstIndex());t.length&&(o=t[t.length-1].endTime+1);const a=this.m_bars.rangeIterator(o,i);n(a,t,e)}}))}_updateLatestChunks(){const e=(0,r.ensureNotNull)(this.m_bars.lastIndex());u.forEach((t=>{const i=(0,r.ensureDefined)(this._pressedChunks.chunks.get(t.barsToMerge)),s=this.m_bars.rangeIterator(e,e).next(),n=s.value[4],o=i[i.length-1];o.high=Math.max(o.high,n),o.low=Math.min(o.low,n),o.close=n,o.endTime=s.index}))}_clearPressedChunks(){u.forEach((e=>this._pressedChunks.chunks.set(e.barsToMerge,[])))}}},67245:(e,t,i)=>{"use strict";i.d(t,{SeriesTimeRangeVolumeCalculator:()=>s});class s{constructor(e){this._value=null,this._series=e,this._series.dataEvents().dataUpdated().subscribe(this,this._onSeriesUpdated)}destroy(){this._series.dataEvents().dataUpdated().unsubscribeAll(this)}volume(e,t){if(null!==this._value&&this._value.from===e&&this._value.to===t)return this._value.value;let i=0;const s=this._series.data().bars(),r=s.firstIndex(),n=s.lastIndex();if(null!==r&&en&&t>n)i=NaN;else{const s=this._series.data().bars().rangeIterator(Math.min(e,t),Math.max(e,t));for(;s.hasNext();){const e=s.next().value[5];if(void 0===e){i=NaN;break}i+=e}}return this._value={from:e,to:t,value:i},i}_onSeriesUpdated(e,t){if(null===this._value)return;if(t)return void(this._value=null);const i=this._series.data().bars().lastIndex();(null===i||i<=this._value.to)&&(this._value=null)}}},1930:(e,t,i)=>{"use strict";i.r(t),i.d(t,{getTranslatedChartStyleName:()=>w,isRequiringRestartSeriesStyles:()=>P, -isRangeBasedStyle:()=>C,isRangeStyle:()=>T,isTimeBasedStyle:()=>x,isValidStyle:()=>I,isSingleValueBasedStyle:()=>M,setLastUsedStyle:()=>A,getLastUsedStyle:()=>L,getLastUsedSingleValueBasedStyle:()=>k,getDefaultStyle:()=>E,getChartStyleByResolution:()=>D,chartStyleStudyId:()=>B,preparePriceAxisProperties:()=>V,hasProjection:()=>N,isPriceSourceStyle:()=>O,getSeriesPriceFormattingState:()=>F,createSeriesFormatter:()=>W,symbolCurrencyConvertible:()=>H,symbolCurrency:()=>z,symbolOriginalCurrency:()=>U,symbolBaseCurrency:()=>j,isConvertedToOtherCurrency:()=>G,symbolUnitConvertible:()=>q,symbolUnit:()=>$,symbolOriginalUnit:()=>Y,isConvertedToOtherUnit:()=>K,symbolUnitConvertibleGroupsIfExist:()=>X,symbolCurrentContract:()=>Z,symbolHasPreOrPostMarket:()=>J,symbolHasSeveralSessions:()=>Q,symbolHasEconomicEvents:()=>ee,extractSymbolNameFromSymbolInfo:()=>te,symbolTitle:()=>ie,displayedSymbolName:()=>se,displayedSymbolExchange:()=>re,actualSymbol:()=>ne,proSymbol:()=>oe,symbolForApi:()=>ae,isRegularSessionId:()=>le,isCloseBasedSymbol:()=>ce,isMeasureUnitSymbol:()=>he,measureUnitId:()=>de,hasVolume:()=>ue,isEconomicSymbol:()=>pe,getStudySymbolExchange:()=>_e,isFutureContinuousSymbolWithBackajustment:()=>me,isFuturesContractSymbol:()=>ge,isCryptoSymbol:()=>fe});var s=i(44352),r=i(56840),n=i(77906),o=i(578),a=i(74599),l=i(2484),c=i(50151),h=i(48566),d=i(18766);const u=l.enabled("pay_attention_to_ticker_not_symbol"),p=l.enabled("uppercase_instrument_names"),_=l.enabled("charting_library_single_symbol_request"),m=l.enabled("use_ticker_on_symbol_info_update"),g=l.enabled("hide_object_tree_and_price_scale_exchange_label"),f=[4,5,6,7,8],v=[4,5,6,7,11],S=[0,1,9,2,3,10,8,12,13],y=[2,10,3,13],b={0:s.t(null,void 0,i(16812)),1:s.t(null,void 0,i(63528)),2:s.t(null,void 0,i(1277)),3:s.t(null,void 0,i(42097)),9:s.t(null,void 0,i(61582)),10:s.t(null,void 0,i(17712)),12:s.t(null,void 0,i(31994)),13:s.t(null,void 0,i(36018)),4:s.t(null,void 0,i(20801)),7:s.t(null,void 0,i(63492)),5:s.t(null,void 0,i(92901)),6:s.t(null,void 0,i(99969)),11:s.t(null,void 0,i(90357)),8:s.t(null,void 0,i(40530))};function w(e){return b[e]}function P(e){return-1!==f.indexOf(e)}function C(e){return-1!==v.indexOf(e)}function T(e){return 11===e}function x(e){return-1!==S.indexOf(e)}function I(e){return C(e)||x(e)}function M(e){switch(e){case 3:case 10:case 2:case 13:return!0;default:return!1}}function A(e,t){I(e)&&(11!==e&&r.setValue("chart.lastUsedStyle",e),ce(t)&&M(e)&&r.setValue("chart.lastUsedSingleValueBasedStyle",e))}function L(){const e=r.getInt("chart.lastUsedStyle");return void 0===e?1:e}function k(){const e=r.getInt("chart.lastUsedSingleValueBasedStyle");return void 0===e?2:e}function E(e){return e?11:1}function D(e,t){const i=T(t),s=o.Interval.isRange(e);return!i&&s?E(!0):i&&!s?E(!1):t}function B(e,t){const i=n.SYMBOL_STRING_DATA[e];return void 0===i?null:t?`${i.type}-${i.basicStudyVersion}`:i.type}function V(e){const t=e.priceAxisProperties,i=t.lockScale.value(),s=6===e.style.value();(s||i)&&(t.log.setValue(!1),t.percentage.setValue(!1)), -t.logDisabled.setValue(!(!s&&!i)),t.percentageDisabled.setValue(!(!s&&!i))}const R=[4,7,5,6];function N(e){return-1!==R.indexOf(e)}function O(e){return y.includes(e)}function F(e,t="default",i=!1){let s,r,n=100,o=1;if("default"===t)null!=e&&(n=e.pricescale,o=e.minmov,s=e.fractional,r=e.minmove2);else{let e=t.split(",");3!==e.length&&(e=["100","1","false"]),n=parseInt(e[0]),o=parseInt(e[1]),s="true"===e[2]}return i&&(o=1),{priceScale:n,minMove:o,fractional:s,minMove2:r}}function W(e,t,i=!1){if("default"===t&&null!=e){const t=e.formatter||e.format;if("volume"===t)return new h.VolumeFormatter(2);if("percent"===t)return new d.PercentageFormatter(e.pricescale)}const{priceScale:s,minMove:r,fractional:n,minMove2:o}=F(e,t,i);return new a.PriceFormatter(s,r,n,o)}function H(e){return null!==e&&"spread"!==e.type}function z(e,t,i){if(null===e)return null;const s=!t||i?e.currency_id:e.currency_code;return void 0===s||""===s?null:s}function U(e,t){const i=t?e.original_currency_code:e.original_currency_id;return null!=i?i:z(e,t)}function j(e){return e.base_currency_id||null}function G(e){return!(null===e||!H(e))&&(void 0!==e.original_currency_id&&e.original_currency_id!==e.currency_id)}function q(e,t){return t&&null!==e&&"spread"!==e.type}function $(e,t){if(null===e||!t)return null;const i=e.unit_id;return void 0===i||""===i?null:i}function Y(e,t){return t?e.original_unit_id||$(e,t):null}function K(e,t){return!(null===e||!q(e,t))&&(void 0!==e.original_unit_id&&e.original_unit_id!==e.unit_id)}function X(e,t){return null!==e&&q(e,t)?e.unit_conversion_types||null:[]}function Z(e){return"futures"===e.type&&e.front_contract||null}function J(e){return null!==e&&void 0!==e.subsessions&&e.subsessions.some((e=>"premarket"===e.id||"postmarket"===e.id))}function Q(e){return null!==e&&void 0!==e.subsessions&&e.subsessions.filter((e=>!e.private)).length>1}function ee(e){return null!==e&&("forex"===e.type||"cfd"===e.type||fe(e))}function te(e,t){let i=e&&(e.pro_name||e.full_name||e.name);return _&&t?i=t:m&&e&&e.ticker&&(i=e.ticker),p&&i&&(i=i.toUpperCase()),i}function ie(e,t,i="exchange"){return t||g?e.name:`${e.name}, ${e[i]}`}function se(e){let t=e&&(Z(e)||e.name)||"";return t.length>40&&(t=t.substring(0,37)+"..."),t.trim()}function re(e){const t=e?e.exchange:"";return p?t.toUpperCase():t}function ne(e,t){return null!==e?e.full_name:t}function oe(e,t){return null!==e?e.pro_name:t}function ae(e,t){return u&&e?(0,c.ensureDefined)(e.ticker):ne(e,t)}function le(e){return"regular"===e||"us_regular"===e}function ce(e){return"c"===(null==e?void 0:e.visible_plots_set)}function he(e){return null!==e&&("unit"===e.measure&&null!==de(e))}function de(e){var t;return null!==(t=null==e?void 0:e.value_unit_id)&&void 0!==t?t:null}function ue(e){return void 0!==e.visible_plots_set?"ohlcv"===e.visible_plots_set:!e.has_no_volume}function pe(e){return null!==e&&"economic"===e.type}function _e(e){return pe(e)&&e.source?e.source:e.exchange&&0!==e.exchange.length?e.exchange:void 0}function me(e){var t +isRangeBasedStyle:()=>C,isRangeStyle:()=>T,isTimeBasedStyle:()=>x,isValidStyle:()=>I,isSingleValueBasedStyle:()=>M,setLastUsedStyle:()=>A,getLastUsedStyle:()=>L,getLastUsedSingleValueBasedStyle:()=>k,getDefaultStyle:()=>E,getChartStyleByResolution:()=>D,chartStyleStudyId:()=>B,preparePriceAxisProperties:()=>V,hasProjection:()=>N,isPriceSourceStyle:()=>O,getSeriesPriceFormattingState:()=>F,createSeriesFormatter:()=>W,symbolCurrencyConvertible:()=>H,symbolCurrency:()=>z,symbolOriginalCurrency:()=>U,symbolBaseCurrency:()=>j,isConvertedToOtherCurrency:()=>G,symbolUnitConvertible:()=>q,symbolUnit:()=>$,symbolOriginalUnit:()=>Y,isConvertedToOtherUnit:()=>K,symbolUnitConvertibleGroupsIfExist:()=>Z,symbolCurrentContract:()=>X,symbolHasPreOrPostMarket:()=>J,symbolHasSeveralSessions:()=>Q,symbolHasEconomicEvents:()=>ee,extractSymbolNameFromSymbolInfo:()=>te,symbolTitle:()=>ie,displayedSymbolName:()=>se,displayedSymbolExchange:()=>re,actualSymbol:()=>ne,proSymbol:()=>oe,symbolForApi:()=>ae,isRegularSessionId:()=>le,isCloseBasedSymbol:()=>ce,isMeasureUnitSymbol:()=>he,measureUnitId:()=>de,hasVolume:()=>ue,isEconomicSymbol:()=>pe,getStudySymbolExchange:()=>_e,isFutureContinuousSymbolWithBackajustment:()=>me,isFuturesContractSymbol:()=>ge,isCryptoSymbol:()=>fe});var s=i(44352),r=i(56840),n=i(77906),o=i(578),a=i(74599),l=i(2484),c=i(50151),h=i(48566),d=i(18766);const u=l.enabled("pay_attention_to_ticker_not_symbol"),p=l.enabled("uppercase_instrument_names"),_=l.enabled("charting_library_single_symbol_request"),m=l.enabled("use_ticker_on_symbol_info_update"),g=l.enabled("hide_object_tree_and_price_scale_exchange_label"),f=[4,5,6,7,8],v=[4,5,6,7,11],S=[0,1,9,2,3,10,8,12,13],y=[2,10,3,13],b={0:s.t(null,void 0,i(16812)),1:s.t(null,void 0,i(63528)),2:s.t(null,void 0,i(1277)),3:s.t(null,void 0,i(42097)),9:s.t(null,void 0,i(61582)),10:s.t(null,void 0,i(17712)),12:s.t(null,void 0,i(31994)),13:s.t(null,void 0,i(36018)),4:s.t(null,void 0,i(20801)),7:s.t(null,void 0,i(63492)),5:s.t(null,void 0,i(92901)),6:s.t(null,void 0,i(99969)),11:s.t(null,void 0,i(90357)),8:s.t(null,void 0,i(40530))};function w(e){return b[e]}function P(e){return-1!==f.indexOf(e)}function C(e){return-1!==v.indexOf(e)}function T(e){return 11===e}function x(e){return-1!==S.indexOf(e)}function I(e){return C(e)||x(e)}function M(e){switch(e){case 3:case 10:case 2:case 13:return!0;default:return!1}}function A(e,t){I(e)&&(11!==e&&r.setValue("chart.lastUsedStyle",e),ce(t)&&M(e)&&r.setValue("chart.lastUsedSingleValueBasedStyle",e))}function L(){const e=r.getInt("chart.lastUsedStyle");return void 0===e?1:e}function k(){const e=r.getInt("chart.lastUsedSingleValueBasedStyle");return void 0===e?2:e}function E(e){return e?11:1}function D(e,t){const i=T(t),s=o.Interval.isRange(e);return!i&&s?E(!0):i&&!s?E(!1):t}function B(e,t){const i=n.SYMBOL_STRING_DATA[e];return void 0===i?null:t?`${i.type}-${i.basicStudyVersion}`:i.type}function V(e){const t=e.priceAxisProperties,i=t.lockScale.value(),s=6===e.style.value();(s||i)&&(t.log.setValue(!1),t.percentage.setValue(!1)), +t.logDisabled.setValue(!(!s&&!i)),t.percentageDisabled.setValue(!(!s&&!i))}const R=[4,7,5,6];function N(e){return-1!==R.indexOf(e)}function O(e){return y.includes(e)}function F(e,t="default",i=!1){let s,r,n=100,o=1;if("default"===t)null!=e&&(n=e.pricescale,o=e.minmov,s=e.fractional,r=e.minmove2);else{let e=t.split(",");3!==e.length&&(e=["100","1","false"]),n=parseInt(e[0]),o=parseInt(e[1]),s="true"===e[2]}return i&&(o=1),{priceScale:n,minMove:o,fractional:s,minMove2:r}}function W(e,t,i=!1){if("default"===t&&null!=e){const t=e.formatter||e.format;if("volume"===t)return new h.VolumeFormatter(2);if("percent"===t)return new d.PercentageFormatter(e.pricescale)}const{priceScale:s,minMove:r,fractional:n,minMove2:o}=F(e,t,i);return new a.PriceFormatter(s,r,n,o)}function H(e){return null!==e&&"spread"!==e.type}function z(e,t,i){if(null===e)return null;const s=!t||i?e.currency_id:e.currency_code;return void 0===s||""===s?null:s}function U(e,t){const i=t?e.original_currency_code:e.original_currency_id;return null!=i?i:z(e,t)}function j(e){return e.base_currency_id||null}function G(e){return!(null===e||!H(e))&&(void 0!==e.original_currency_id&&e.original_currency_id!==e.currency_id)}function q(e,t){return t&&null!==e&&"spread"!==e.type}function $(e,t){if(null===e||!t)return null;const i=e.unit_id;return void 0===i||""===i?null:i}function Y(e,t){return t?e.original_unit_id||$(e,t):null}function K(e,t){return!(null===e||!q(e,t))&&(void 0!==e.original_unit_id&&e.original_unit_id!==e.unit_id)}function Z(e,t){return null!==e&&q(e,t)?e.unit_conversion_types||null:[]}function X(e){return"futures"===e.type&&e.front_contract||null}function J(e){return null!==e&&void 0!==e.subsessions&&e.subsessions.some((e=>"premarket"===e.id||"postmarket"===e.id))}function Q(e){return null!==e&&void 0!==e.subsessions&&e.subsessions.filter((e=>!e.private)).length>1}function ee(e){return null!==e&&("forex"===e.type||"cfd"===e.type||fe(e))}function te(e,t){let i=e&&(e.pro_name||e.full_name||e.name);return _&&t?i=t:m&&e&&e.ticker&&(i=e.ticker),p&&i&&(i=i.toUpperCase()),i}function ie(e,t,i="exchange"){return t||g?e.name:`${e.name}, ${e[i]}`}function se(e){let t=e&&(X(e)||e.name)||"";return t.length>40&&(t=t.substring(0,37)+"..."),t.trim()}function re(e){const t=e?e.exchange:"";return p?t.toUpperCase():t}function ne(e,t){return null!==e?e.full_name:t}function oe(e,t){return null!==e?e.pro_name:t}function ae(e,t){return u&&e?(0,c.ensureDefined)(e.ticker):ne(e,t)}function le(e){return"regular"===e||"us_regular"===e}function ce(e){return"c"===(null==e?void 0:e.visible_plots_set)}function he(e){return null!==e&&("unit"===e.measure&&null!==de(e))}function de(e){var t;return null!==(t=null==e?void 0:e.value_unit_id)&&void 0!==t?t:null}function ue(e){return void 0!==e.visible_plots_set?"ohlcv"===e.visible_plots_set:!e.has_no_volume}function pe(e){return null!==e&&"economic"===e.type}function _e(e){return pe(e)&&e.source?e.source:e.exchange&&0!==e.exchange.length?e.exchange:void 0}function me(e){var t ;return null!==e&&"futures"===e.type&&Boolean(e.has_backadjustment&&(null===(t=e.typespecs)||void 0===t?void 0:t.includes("continuous")))}function ge(e){var t;return null!==e&&"futures"===e.type&&!Boolean(null===(t=e.typespecs)||void 0===t?void 0:t.includes("continuous"))}function fe(e){var t;return(null===(t=e.typespecs)||void 0===t?void 0:t.includes("crypto"))||"crypto"===e.type||"bitcoin"===e.type}},46936:(e,t,i)=>{"use strict";var s=i(26220);TradingView.DEFAULT_BAR_COUNT=300,TradingView.TIME_PLOT=0,TradingView.OPEN_PLOT=1,TradingView.HIGH_PLOT=2,TradingView.LOW_PLOT=3,TradingView.CLOSE_PLOT=4,TradingView.ADT_PLOT=6;var r=i(95693).SeriesBase,n=(i(51768).trackEvent,i(98351).getLogger("Chart.Series")),o=i(77906),a=i(27944).SeriesHorizontalBaseLinePaneView,l=i(933).deepExtend,c=i(76422),h=i(45673).TIMEFRAMETYPE,d=i(1930).isSingleValueBasedStyle;class u extends r{constructor(e,t,i,s){t.removeProperty("currencyId"),super(e,t,i,s),this._chartApi=e._chartApi,this.createPaneView(),this._properties.addExclusion&&(this._properties.addExclusion("visible"),this._properties.addExclusion("currencyId")),this._futureBarsPaneView=null,this.properties().minTick.listeners().subscribe(this,u.prototype._recreateFormatter);var r=this;this.properties().minTick.listeners().subscribe(null,(function(){r._model.fullUpdate()})),this._priceLineView=null,this._baseHorizontalLineView=new a(this),this.bindStyleChange(),this.bindJapChartsInputs(),this._createIsDWMProperty(),this.properties().showCountdown.listeners().subscribe(this,u.prototype._onChangeShowCountdown),this._onChangeShowCountdown(this.properties().showCountdown),this._recreatePriceFormattingDependencies(),this.properties().lineStyle.priceSource.listeners().subscribe(this,this._updateBarFunction),this.properties().areaStyle.priceSource.listeners().subscribe(this,this._updateBarFunction),this.properties().baselineStyle.priceSource.listeners().subscribe(this,this._updateBarFunction),this.properties().columnStyle.priceSource.listeners().subscribe(this,this._updateBarFunction),this._updateBarFunction()}isLoading(){return this._loading}styleStudyInfo(e){return this.styleStudyInfos()[e]}serverTimeOffset(){return this._chartApi.serverTimeOffset()}_onChangeShowCountdown(e){var t=this;e.value()?this._countdownUpdateTimer=this._model.setInterval((function(){t._priceAxisView.updateCountdown()}),500):(this._model.clearInterval(this._countdownUpdateTimer),delete this._countdownUpdateTimer)}_createIsDWMProperty(){this._isDWMProperty=new s(this.isDWM()),this._onRestarted.subscribe(this,(function(){this._isDWMProperty.setValue(this.isDWM())}))}isDWMProperty(){return this._isDWMProperty}fixLastBar(e){0}isPulse(){return this._symbolInfo&&this._symbolInfo.resolutions.length>0}seriesSource(){return this._seriesSource}_onSeriesTimeFrame(e,t,i,s,r){var n=d(this.style())?e+.5:e,o=t;if(void 0===r)null!==i&&i.type!==h.PeriodBack||(o+=this._model.studyAwareDefaultRightOffset());else if(r.applyDefaultRightMargin)o+=this._model.studyAwareDefaultRightOffset();else if(r.percentRightMargin){ var a=t-n+1,l=Math.max(0,Math.min(.99,r.percentRightMargin/100));o+=l*a/(1-l)}this._model.setTimeViewport(n,o)}hl2(e){return(this.high(e)+this.low(e))/2}hlc3(e){return(this.high(e)+this.low(e)+this.close(e))/3}ohlc4(e){return(this.open(e)+this.high(e)+this.low(e)+this.close(e))/4}nearestData(e,t){if(TradingView.isInteger(e)){var i=this.data().search(e,t);return null!==i?i:void 0}n.logDebug("Series.nearestData: incorrect logicalPoint")}nearestIndex(e,t){var i=this.nearestData(e,t);return i?i.index:void 0}purgeSymbolInfo(){this._symbolInfo=null}bindStyleChange(){var e=this;Object.keys(u.STYLE_SHORT_NAMES).map((function(e){return u.STYLE_SHORT_NAMES[e]+"Style"})).forEach((function(t){e._properties[t].listeners().subscribe(e,u.prototype.invalidateBarStylesCache)}))}bindJapChartsInputs(){this._properties.renkoStyle.inputs.boxSize.listeners().subscribe(this,this.onInputChanged),this._properties.renkoStyle.inputs.style.listeners().subscribe(this,this.onInputChanged),this._properties.renkoStyle.inputs.atrLength.listeners().subscribe(this,this.onInputChanged),this._properties.renkoStyle.inputs.wicks.listeners().subscribe(this,this.onInputChanged),this._properties.renkoStyle.inputs.sources.listeners().subscribe(this,this.onInputChanged),this._properties.pbStyle.inputs.lb.listeners().subscribe(this,this.onInputChanged),this._properties.kagiStyle.inputs.reversalAmount.listeners().subscribe(this,this.onInputChanged),this._properties.kagiStyle.inputs.style.listeners().subscribe(this,this.onInputChanged),this._properties.kagiStyle.inputs.atrLength.listeners().subscribe(this,this.onInputChanged),this._properties.pnfStyle.inputs.boxSize.listeners().subscribe(this,this.onInputChanged),this._properties.pnfStyle.inputs.reversalAmount.listeners().subscribe(this,this.onInputChanged),this._properties.pnfStyle.inputs.sources.listeners().subscribe(this,this.onInputChanged),this._properties.pnfStyle.inputs.style.listeners().subscribe(this,this.onInputChanged),this._properties.pnfStyle.inputs.atrLength.listeners().subscribe(this,this.onInputChanged),this._properties.pnfStyle.inputs.oneStepBackBuilding.listeners().subscribe(this,this.onInputChanged),this._properties.rangeStyle.inputs.phantomBars.listeners().subscribe(this,this.onInputChanged)}createDividendsAdjustmentProperty(){throw new Error("Not implemented")}dividendsAdjustmentProperty(){return null}applyPreferences(e){var t=l({},e);this.m_priceScale.setMode({autoScale:t.priceAxisProperties.autoScale,percentage:t.priceAxisProperties.percentage,log:t.priceAxisProperties.log,lockScale:t.priceAxisProperties.lockScale}),this.setChartStyleWithIntervalIfNeeded(t.style),delete t.style,delete t.interval,this._properties.mergePreferences(t),this._properties.saveDefaults(),this.createPaneView(),this.invalidateBarStylesCache()}onInputChanged(){this.restart()}getStyleShortName(){var e=this._properties.style.value();if(u.STYLE_SHORT_NAMES.hasOwnProperty(e))return u.STYLE_SHORT_NAMES[e];throw new Error("Missed short name for style "+e)}getStyleProperties(){ return this._properties[this.getStyleShortName()+"Style"]}getInputsProperties(){return this.getStyleProperties().inputs||new s}getInputsInfoProperties(){return this.getStyleProperties().inputInfo||new s}getSymbolName(){return this._symbolInfo?this._symbolInfo.name:""}priceScale(){return this.m_priceScale}setPriceScale(e){this.m_priceScale!==e&&(this._priceScaleAboutToBeChanged.fire(),this.m_priceScale=e,this._properties.removeProperty("priceAxisProperties"),this._properties.addChild("priceAxisProperties",e.properties()),this._properties.priceAxisProperties.childChanged(),c.emit("series_event","price_scale_changed"),this._priceScaleChanged.fire(e))}getSourceIcon(){return{type:"loadSvg",svgId:"series."+this.properties().style.value()}}isStyleSupported(e){return!0}destroy(){this._quotesProvider.quotesUpdate().unsubscribeAll(this),this._quotesProvider.destroy(),this.clearGotoDateResult(),this._legendView.destroy(),this._marketStatusModel.destroy(),null!==this._dataUpdatedModeModel&&this._dataUpdatedModeModel.destroy(),this._dataProblemModel.destroy(),this._paneView&&this._paneView.destroy&&this._paneView.destroy(),this._seriesSource.destroy(),super.destroy()}dataEvents(){return this._seriesSource.dataEvents()}moveData(e){return this._seriesSource.moveData(e)}}Object.assign(u,o),TradingView.Series=u,t.Series=u,t.isSeries=function(e){return e instanceof u}},36767:(e,t,i)=>{"use strict";i.d(t,{SeriesAreaPaneView:()=>l});var s=i(38031),r=i(28962),n=i(29639),o=i(53074),a=i(46930);class l extends a.SeriesSingleLinePaneView{renderer(e,t){this._invalidated&&(this._updateImpl(),this._invalidated=!1);const i=this._source.priceScale();if(!i)return null;const a=this._source.properties().childs().areaStyle.childs(),l=a.transparency.value(),c={simpleMode:!1,barSpacing:this._model.timeScale().barSpacing(),items:this._items,lineColor:a.linecolor.value(),lineStyle:a.linestyle.value(),lineWidth:a.linewidth.value(),isSeries:!0,withMarkers:!1,bottom:i.height(),color1:(0,s.generateColor)(a.color1.value(),l),color2:(0,s.generateColor)(a.color2.value(),l)},h=new n.CompositeRenderer;return h.append(new r.PaneRendererArea(c)),this._model.selection().isSelected(this._source)&&this._isMarkersEnabled&&this._selectionData&&h.append(new o.SelectionRenderer(this._selectionData)),h}}},57757:(e,t,i)=>{"use strict";function s(e,t){return 100*(t-e)/Math.abs(e||1)}i.d(t,{barPercentChange:()=>s})},13428:(e,t,i)=>{"use strict";i.d(t,{PaneRendererBars:()=>n});var s=i(55014),r=i(91106);class n extends r.PaneRendererSeriesBase{constructor(e){super(),this._bars=e.bars,this._barSpacing=e.barSpacing,this._dontDrawOpen=e.dontDrawOpen,this._thinBars=e.thinBars}draw(e,t){e.save();const i=t.pixelRatio;if(this._barWidth=this._calcBarWidth(i),this._barWidth>=2){Math.max(1,Math.floor(i))%2!=this._barWidth%2&&this._barWidth--}this._barLineWidth=this._thinBars?Math.min(this._barWidth,Math.floor(i)):this._barWidth;let s=null;const r=this._barLineWidth<=this._barWidth&&this._barSpacing>=Math.floor(1.5*t.pixelRatio);for(const t of this._bars){ @@ -725,24 +726,24 @@ const t=this._valuesProvider.getValues(e),i=e=>!!this._hhistBasedStudy||this._st 86635:(e,t,i)=>{"use strict";i.d(t,{StudyStatusType:()=>c,convertStudyStatusToString:()=>h,studyStatusFeature:()=>p,studyStatusSolutionId:()=>d,studyStatusTitle:()=>u});var s=i(44352);const r=new Map([["You cannot see this pivot timeframe on this resolution",s.t(null,void 0,i(17126))],["The data vendor doesn't provide volume data for this symbol.",s.t(null,void 0,i(29198))],['Histogram is too large, please increase "Row Size" input.',s.t(null,void 0,i(69085))],["Histogram is too large, please reduce 'Row Size' input.",s.t(null,void 0,i(8122))],["This script is invite-only. To request access, please contact its author.",s.t(null,void 0,i(74986))],["Volume Profile indicator available only on our upgraded plans.",s.t(null,void 0,i(61022))]]),n=s.t(null,void 0,i(16971)),o=new Map,a=new Map,l=s.t(null,void 0,i(30295));var c;function h(e,t){if(e.type===c.Loading)return t?l:"loading...";if(e.type===c.Error){const s=e.errorDescription,n=t?(i=s.error,r.get(i)||i):s.error;if(s.ctx){const e={};return Object.entries(s.ctx).forEach((([t,i])=>{e[t]=i.toString()})),n.format(e)}return n}var i;return""}function d(e){if(e.type===c.Error)return e.errorDescription.solution_id?e.errorDescription.solution_id:function(e){for(const t of Array.from(o.keys()))if(e.includes(t))return o.get(t)}(e.errorDescription.error)}function u(e){if(e.type===c.Error)return-1!==e.errorDescription.error.toLowerCase().indexOf("the data vendor doesn't provide volume data for this symbol.")?n:void 0}function p(e){const{errorDescription:{error:t}}=e;for(const[e,i]of a)if(t.startsWith(e))return i}!function(e){e[e.Undefined=0]="Undefined",e[e.Loading=1]="Loading",e[e.Completed=2]="Completed",e[e.Error=3]="Error"}(c||(c={}))},46289:(e,t,i)=>{"use strict";i.d(t,{StudyStub:()=>m});var s=i(66019),r=i(88029),n=i(74599),o=i(26867),a=i.n(o),l=i(26220),c=i.n(l),h=i(93982);class d extends h.StudyStatusProviderBase{text(){return this._source.isActualInterval()?`${this._source.title()} ${this.sourceStatusText()}`:this._source.title()}}var u=i(86635);class p{getItems(){return[]}getValues(e){return[]}}const _=new(a());class m extends r.PriceDataSource{constructor(e,t,i){super(e),this._priceStep=.01,this._status={type:u.StudyStatusType.Undefined},this._statusChanged=new(a()),this._formatter=new n.PriceFormatter(100),this._origState=t,this._title=i;this._properties=new(c())({visible:!0}),this._statusView=new s.StudyStatusView(this)}barColorer(){return null}properties(){return this._properties}statusView(){return this._statusView}legendView(){return null}state(e){return this._origState}setStatus(e){this._status=e,this._statusChanged.fire()}formatter(){return this._formatter}name(){return this._title}title(){return this._title}titleInParts(){return[this._title]}isFailed(){return this._status.type===u.StudyStatusType.Error}isLoading(){return this._status.type===u.StudyStatusType.Loading}setFailed(e){this.setStatus({type:u.StudyStatusType.Error,errorDescription:{error:e}}),this._model.updateSource(this)}isSymbolInvalid(){return!1}isActualInterval(){return!0} onIsActualIntervalChange(){return _}start(){}status(){return this._status}onStatusChanged(){return this._statusChanged}firstValue(){return null}currency(){return null}sessionId(){return this._model.mainSeries().sessionId()}sessionIdChanged(){return this._model.mainSeries().sessionIdChanged()}unit(){return null}symbolSource(){return this._model.mainSeries()}barsProvider(){return this._model.mainSeries()}valuesProvider(){return new p}statusProvider(e){return new d(this,this._model.properties().childs().scalesProperties.childs().textColor)}}},77513:(e,t,i)=>{"use strict";i.d(t,{StudyValuesProvider:()=>f});var s=i(50335),r=i(49483),n=i(38031),o=i(2484),a=i(33639),l=i(28667),c=i(76076),h=i(83421),d=i(12702),u=i(49897),p=i(50151),_=i(2);const m=r.CheckMobile.any(),g=o.enabled("hide_last_na_study_output");class f{constructor(e,t){this._emptyValues=[],this._colorProviders=new Map,this._study=e,this._model=t,this._studyMetaInfo=this._study.metaInfo(),this._studyProperties=this._study.properties().childs(),this._isFundamental=!1;const i=this._studyMetaInfo.plots;i&&i.forEach(((e,t)=>{if((0,h.isPlotWithTechnicalValues)(e))return;const i=e.id;this._emptyValues.push(function(e,t="",i=""){return{id:t,index:e,title:i,value:"",visible:!1}}(t,i,this._study.guiPlotName(i)));const s=(0,h.isOhlcPlot)(e)?e.target:i;this._colorProviders.set(s,(0,d.createStudyPlotColorProvider)(this._studyMetaInfo,this._study.properties(),s))}))}getItems(){return this._emptyValues}getPlotColor(e,t){var i;const r=t[e+1];if(!(0,s.isNumber)(r))return"";const n=r>0;let o;const a=this._studyMetaInfo.plots[e];let l=a.id;const c=this._studyProperties;if((0,h.isOhlcPlot)(a))l=a.target||l,o=(0,p.ensureDefined)(c.ohlcPlots.childs()[l].childs().color).value();else if((0,h.isArrowsPlot)(a)){const e=(0,p.ensureDefined)(c.styles.childs()[l]);o=n?e.childs().colorup.value():e.childs().colordown.value()}else o=(0,p.ensureDefined)(null===(i=c.styles.childs()[l])||void 0===i?void 0:i.child("color")).value();let d=o;const u=this._colorProviders.get(l),_=u&&u.getPlotPointStyle(t);return _&&((0,h.isArrowsPlot)(a)?(n&&void 0!==_.colors[5]&&(d=_.colors[5]),n||void 0===_.colors[6]||(d=_.colors[6])):void 0!==_.colors[0]&&(d=_.colors[0])),"transparent"===d&&(d=o),d}getValues(e){var t,i;const r=this._emptyValues.map((e=>({...e})));let o=null;const l=this._study.data().lastIndex(),c=this._studyProperties;if(null!==l)for(const e of r){if(0===(null===(t=c.styles.childs()[e.id])||void 0===t?void 0:t.childs().display.value()))continue;const i=this._study.nearestIndex(l,a.PlotRowSearchMode.NearestLeft,e.index+1);if(void 0===i)continue;const s=i+this._study.offset(e.id);o=null!==o?Math.max(s,o):s}(null===e||null!==o&&e>o)&&(e=o);const d=this._hideValues(),m=this._study.isVisible()&&!d?_.notAvailable:"";for(const e of r)e.value=m;if(d)return r;g&&r.length&&(r[r.length-1].value="");const f=this._study.priceScale();if(!this._study.isVisible()||null===e||null===f||f.isEmpty()||this._model.timeScale().isEmpty())return r;const v=(0,u.getPriceValueFormatterForSource)(this._study),S={} ;for(const t of r){const r=t.id,o=(0,p.ensureDefined)(c.styles.childs()[r]),d=o.childs().display.value();if(t.visible=0!==d,!t.visible)continue;const u=o.hasChild("plottype")?null===(i=o.child("plottype"))||void 0===i?void 0:i.value():null,_=this._isFundamental&&(u===h.LineStudyPlotStyle.StepLine||u===h.LineStudyPlotStyle.StepLineWithDiamonds),m=t.index,g=e-this._study.offset(r),f=_||null!==l&&g>l?a.PlotRowSearchMode.NearestLeft:a.PlotRowSearchMode.Exact,y=this._study.nearestIndex(g,f);if(void 0===y)continue;let b=S[r];if(void 0===b&&(b=this._study.getMinFirstBarIndexForPlot(r),Number.isFinite(b)&&(S[r]=b)),b>y)continue;const w=this._study.data().last(),P=this._study.data().valueAt(y)||(null!==w?w.value:null);if(null===P)continue;const C=P[m+1];(0,s.isNumber)(C)&&(t.value=v(C),t.color=(0,n.resetTransparency)(this.getPlotColor(m,P)))}return r}_hideValues(){return m&&(null===this._model.crossHairSource().pane||(0,l.isLineToolName)(c.tool.value())||null!==this._model.lineBeingEdited())}}},91217:(e,t,i)=>{"use strict";i.d(t,{StudyBase:()=>Gt,prepareStudyProperties:()=>Wt,prepareStudyPropertiesForLoadChart:()=>Ut});var s=i(16230),r=i(27788),n=i(50151),o=i(44352),a=i(98351),l=i(49483),c=i(26867),h=i.n(c),d=i(65447),u=i(88029),p=i(23304),_=i(88552),m=i(58403),g=i(59780),f=i(33639),v=i(89),S=i(86368),y=i(43312),b=i(83421);class w extends S.StudyBaseWindowView{constructor(e,t){super(e,t),this._showStudyValues=t.properties().childs().paneProperties.childs().legendProperties.childs().showStudyValues,this._showStudyValues.subscribe(this,this.update);const i=this._study.properties();i.childs().showLegendValues.subscribe(this,this.update);const s=this._study.metaInfo().plots,r=new Set;s.forEach((e=>{var t;if((0,b.isOhlcPlot)(e)){const t=e.target;if(r.has(t))return;r.add(t),i.childs().ohlcPlots.childs()[t].childs().display.subscribe(this,this.update)}else(0,b.isPlotSupportDisplay)(e)&&(null===(t=i.childs().styles.childs()[e.id])||void 0===t||t.childs().display.subscribe(this,this.update))}))}areValuesVisible(){return this._showStudyValues.value()}additional(){return null}destroy(){this._showStudyValues.unsubscribeAll(this);const e=this._study.properties();e.childs().showLegendValues.unsubscribeAll(this);const t=this._study.metaInfo().plots,i=new Set;t.forEach((t=>{var s;if((0,b.isOhlcPlot)(t)){const s=t.target;if(i.has(s))return;i.add(s),e.childs().ohlcPlots.childs()[s].childs().display.unsubscribe(this,this.update)}else(0,b.isPlotSupportDisplay)(t)&&(null===(s=e.childs().styles.childs()[t.id])||void 0===s||s.childs().display.unsubscribe(this,this.update))}))}_createValuesProvider(e,t){return new y.StudyLegendValuesProvider(e,t)}}var P=i(76076),C=i(66019),T=i(91035),x=i(24760),I=i(7578),M=i(89111),A=i(26220),L=i.n(A),k=i(65665),E=i(34657),D=i(8890),B=i(2484),V=i(86441),R=i(38031),N=i(29639);class O{constructor(e){this._data=e}draw(e,t){}drawBackground(e,t){e.save();const i=this._data,s=t.pixelRatio;let r=null;const n=Math.round(this._data.w*s);for(let t=0;t0){i.items[t-1].index===o.index-1&&null!==r&&(l=r+1)}const c=a+n,h=c-l+1;e.fillRect(l,Math.round(i.y*s),h,Math.round(i.h*s)),r=c}e.restore()}hitTest(e){return null}}var F=i(12702);class W{constructor(e,t,i,s){this._items=[],this._invalidated=!0,this._isMarkersEnabled=B.enabled("source_selection_markers"),this._study=e,this._series=t,this._model=i,this._plotName=s;const r=this._study.metaInfo().plots;for(let e=0;e0?(i-=r,s+=r):(i+=r,s-=r);const o=this._study.getMinFirstBarIndexForPlot(this._plotName);if(o>s)return;i=Math.max(o,i);const a=this._study.data().rangeIterator(i,s);for(;a.hasNext();){const e=a.next();let i=e.index;const s=e.value;i+=r;const o=new V.Point(Math.floor(i)-.5,NaN);let l=(0,k.isNumber)(t)?t:50;l=Math.min(l,100),l=Math.max(l,0);const c=this._colorProvider.getPlotPointStyle(s);void 0!==c.colors[1]&&(o.color=(0,R.generateColor)((0,n.ensureDefined)(c.colors[1]),l)),o.index=i,this._items.push(o)}this._model.timeScale().timedValuesToCoordinates(this._items)}}var H,z,U=i(11536),j=i(53074),G=i(23387),q=i(91031),$=i(14888),Y=i(47149),K=i(22770),X=i(38217),Z=i(34026),J=i(17908),Q=i(95242),ee=i(27714),te=i(83499);!function(e){e.Left="left",e.Right="right",e.Center="center"}(H||(H={})),function(e){e.Top="top",e.Bottom="bottom",e.Middle="middle"}(z||(z={}));const ie=(0,te.createDisconnectedCanvas)(document,(0,ee.size)({width:0,height:0}),1);class se{constructor(e,t,i,s,r,o="center",a=0){this._lines=e.split(/[^\S\r\n]*(?:\r\n|\r|\n)/),this._font=function(e,t,i,s){return(0, -Q.makeFont)(s,i,`${e?"bold ":""}${t?"italic ":""}`)}(t,i,s,r),this._fontSize=r,this._verticalPadding=~~(r/6),this._textAlign=o,this._lineSpacing=a;const l=(0,n.ensureNotNull)(ie.getContext("2d"));l.font=this._font,l.textBaseline="top";let c=0;for(let e=0;e{for(const t of this._lines)n.strokeStyle&&e.strokeText(t,o,a),e.fillText(t,o,a),a+=this._fontSize,a+=this._lineSpacing})),e.restore()}}class re extends J.AbstractMapContainer{constructor(e){super(),this._maxSize=e,this._keysQueue=[]}get(e){const{fontSize:t,text:i,align:s,font:r,lineSpacing:n=0}=e;if(!i||!t||!s)return null;const o=(0,Q.makeFont)(t,r),a=(0,J.getDefault3)(this._map,n,s,o,new Map);let l=a.get(i);return void 0!==l||(this._size>=this._maxSize?this._deleteFirstKey():++this._size,this._keysQueue.push([o,s,n,i]),l=new se(i,e.bold,e.italic,r,t,s,n),a.set(i,l)),l}_deleteFirstKey(){const e=this._keysQueue.shift(),[t,i,s,r]=e,o=(0,n.ensureDefined)(this._map.get(s)),a=(0,n.ensureDefined)(o.get(i)),l=(0,n.ensureDefined)(a.get(t));l.delete(r),0===l.size&&a.delete(t),0===a.size&&o.delete(i),0===o.size&&this._map.delete(s)}}var ne=i(17364);class oe{constructor(e,t={skipRenderingOptimizations:!1}){this._items=[],this._barSpacing=0,this._vertOffset=0,this._textCache=t.textCache||new re(5e3),this._drawOperation=t.skipRenderingOptimizations?this._drawWithoutOptimizations.bind(this):this._drawWithOptimizations.bind(this),null!==e&&this.setData(e)}draw(e,t){this._preDrawInit(),this._drawOperation(e,t)}hitTest(e){const t=$.HitTestResult.REGULAR;let i=null;for(const s of this._items){if(!s)continue;const r=this._calcBoundingBox(s);if(r&&(0,Z.pointInBox)(e,r)){const e={tooltip:this._getTooltip(s,r)};i=new $.HitTestResult(t,e)}}return i}setData(e){this._height=void 0!==e.height?e.height:e.width,this._width=void 0!==e.width?e.width:e.height,this._color=e.color,this._borderColor=e.borderColor,this._vertOffset=e.vertOffset||0,e.text&&(this._text=e.text,this._fontSize=e.fontSize,this._lineSpacing=e.lineSpacing,this._textColor=e.textColor, +e.fillStyle=o.color;const a=Math.round(o.x*s);let l=a;if(t>0){i.items[t-1].index===o.index-1&&null!==r&&(l=r+1)}const c=a+n,h=c-l+1;e.fillRect(l,Math.round(i.y*s),h,Math.round(i.h*s)),r=c}e.restore()}hitTest(e){return null}}var F=i(12702);class W{constructor(e,t,i,s){this._items=[],this._invalidated=!0,this._isMarkersEnabled=B.enabled("source_selection_markers"),this._study=e,this._series=t,this._model=i,this._plotName=s;const r=this._study.metaInfo().plots;for(let e=0;e0?(i-=r,s+=r):(i+=r,s-=r);const o=this._study.getMinFirstBarIndexForPlot(this._plotName);if(o>s)return;i=Math.max(o,i);const a=this._study.data().rangeIterator(i,s);for(;a.hasNext();){const e=a.next();let i=e.index;const s=e.value;i+=r;const o=new V.Point(Math.floor(i)-.5,NaN);let l=(0,k.isNumber)(t)?t:50;l=Math.min(l,100),l=Math.max(l,0);const c=this._colorProvider.getPlotPointStyle(s);void 0!==c.colors[1]&&(o.color=(0,R.generateColor)((0,n.ensureDefined)(c.colors[1]),l)),o.index=i,this._items.push(o)}this._model.timeScale().timedValuesToCoordinates(this._items)}}var H,z,U=i(11536),j=i(53074),G=i(23387),q=i(91031),$=i(14888),Y=i(47149),K=i(22770),Z=i(38217),X=i(34026),J=i(17908),Q=i(95242),ee=i(27714),te=i(83499);!function(e){e.Left="left",e.Right="right",e.Center="center"}(H||(H={})),function(e){e.Top="top",e.Bottom="bottom",e.Middle="middle"}(z||(z={}));const ie=(0,te.createDisconnectedCanvas)(document,(0,ee.size)({width:0,height:0}),1);class se{constructor(e,t,i,s,r,o="center",a=0){this._lines=e.split(/[^\S\r\n]*(?:\r\n|\r|\n)/),this._font=function(e,t,i,s){return(0, +Q.makeFont)(s,i,`${e?"bold ":""}${t?"italic ":""}`)}(t,i,s,r),this._fontSize=r,this._verticalPadding=~~(r/6),this._textAlign=o,this._lineSpacing=a;const l=(0,n.ensureNotNull)(ie.getContext("2d"));l.font=this._font,l.textBaseline="top";let c=0;for(let e=0;e{for(const t of this._lines)n.strokeStyle&&e.strokeText(t,o,a),e.fillText(t,o,a),a+=this._fontSize,a+=this._lineSpacing})),e.restore()}}class re extends J.AbstractMapContainer{constructor(e){super(),this._maxSize=e,this._keysQueue=[]}get(e){const{fontSize:t,text:i,align:s,font:r,lineSpacing:n=0}=e;if(!i||!t||!s)return null;const o=(0,Q.makeFont)(t,r),a=(0,J.getDefault3)(this._map,n,s,o,new Map);let l=a.get(i);return void 0!==l||(this._size>=this._maxSize?this._deleteFirstKey():++this._size,this._keysQueue.push([o,s,n,i]),l=new se(i,e.bold,e.italic,r,t,s,n),a.set(i,l)),l}_deleteFirstKey(){const e=this._keysQueue.shift(),[t,i,s,r]=e,o=(0,n.ensureDefined)(this._map.get(s)),a=(0,n.ensureDefined)(o.get(i)),l=(0,n.ensureDefined)(a.get(t));l.delete(r),0===l.size&&a.delete(t),0===a.size&&o.delete(i),0===o.size&&this._map.delete(s)}}var ne=i(17364);class oe{constructor(e,t={skipRenderingOptimizations:!1}){this._items=[],this._barSpacing=0,this._vertOffset=0,this._textCache=t.textCache||new re(5e3),this._drawOperation=t.skipRenderingOptimizations?this._drawWithoutOptimizations.bind(this):this._drawWithOptimizations.bind(this),null!==e&&this.setData(e)}draw(e,t){this._preDrawInit(),this._drawOperation(e,t)}hitTest(e){const t=$.HitTestResult.REGULAR;let i=null;for(const s of this._items){if(!s)continue;const r=this._calcBoundingBox(s);if(r&&(0,X.pointInBox)(e,r)){const e={tooltip:this._getTooltip(s,r)};i=new $.HitTestResult(t,e)}}return i}setData(e){this._height=void 0!==e.height?e.height:e.width,this._width=void 0!==e.width?e.width:e.height,this._color=e.color,this._borderColor=e.borderColor,this._vertOffset=e.vertOffset||0,e.text&&(this._text=e.text,this._fontSize=e.fontSize,this._lineSpacing=e.lineSpacing,this._textColor=e.textColor, this._textAlign=e.textAlign||"center"),void 0!==e.items&&void 0!==e.barSpacing&&this.setItems(e.items,e.barSpacing)}setItems(e,t){this._setBaseData(e,t)}_calcBoundingBox(e){const t=e.vertOffset,i=this._getTextCache(e);if(!i)return;const s=i.textImageWidth,r=i.textImageHeight,n=s/2,o=e.y+t+e.textVertOffset,a=t>0?0:-r,l=t>0?r:0,c=new V.Point(e.x-n,o+a),h=new V.Point(e.x+n,o+l);return(0,V.box)(c,h)}_unionBox(e,t){const i=Math.min(e.min.x,t.min.x),s=Math.max(e.max.x,t.max.x),r=Math.min(e.min.y,t.min.y),n=Math.max(e.max.y,t.max.y),o=new V.Point(i,r),a=new V.Point(s,n);return(0,V.box)(o,a)}_getTooltip(e,t){if(e.tooltip)return{content:{type:"text",data:e.tooltip},tooltipDelay:200,extendMargin:!0,rect:{x:t.min.x,y:t.min.y,w:Math.abs(t.max.x-t.min.x),h:Math.abs(t.max.y-t.min.y)}}}_setBaseData(e,t){this._items.length=0,this._barSpacing=t;for(const t of e){const e=void 0===t.width?(0,n.ensureDefined)(this._width):t.width,i=void 0===t.height?(0,n.ensureDefined)(this._height):t.height,s=void 0===t.vertOffset?this._vertOffset:t.vertOffset,r=s>0?i:-i;this._items.push({width:e,height:i,vertOffset:s,textVertOffset:r,shapeWidth:0,shapeHeight:0,stepX:0,stepY:0,...t})}}_drawItemText(e,t,i){const s=this._getTextCache(i);if(null===s)return;const r=i.x,n=i.vertOffset,o=i.y+n+i.textVertOffset;let a;a=i.style&&void 0!==i.style.textColor?i.style.textColor:this._textColor;const l={style:{fillStyle:a},location:{x:r,y:o,horzAlign:H.Center,vertAlign:n>0?z.Top:z.Bottom}};s.paintTo(e,t,l)}_drawWithOptimizations(e,t){let i,s,r=null,n=!1;for(const o of this._items)o.style&&void 0!==o.style.color?(i=o.style.color||"rgba(0, 0, 0, 0)",s=o.style.borderColor||"rgba(0, 0, 0, 0)"):(i=this._color,s=this._borderColor),(r!==i||l.isSafari)&&(r=i,n&&this._endPath(e),this._startPath(e,t,i,s)),this._drawItemShape(e,t,o),n=!0;n&&this._endPath(e);for(const i of this._items)this._drawItemText(e,t,i)}_drawWithoutOptimizations(e,t){let i,s;for(const r of this._items){const o=(0,n.ensureDefined)(r.style);i=o.color||"rgba(0, 0, 0, 0)",s=o.borderColor||"rgba(0, 0, 0, 0)",this._startPath(e,t,i,s),this._drawItemShape(e,t,r),this._endPath(e),this._drawItemText(e,t,r)}}_drawItemShape(e,t,i){(0,te.drawScaled)(e,t.pixelRatio,(()=>this._drawItemShapeUsingCSSPixels(e,i)))}_drawItemShapeUsingCSSPixels(e,t){}_preDrawInit(){}_startPath(e,t,i,s){}_endPath(e){}_getTextCache(e){var t,i;const s=e.text||this._text,r=e.fontSize||this._fontSize,n=null!==(t=e.lineSpacing)&&void 0!==t?t:this._lineSpacing,o=e.textAlign||this._textAlign,a=null!==(i=e.font)&&void 0!==i?i:ne.CHART_FONT_FAMILY;return this._textCache.get({text:s,bold:!1,italic:!1,font:a,fontSize:r,lineSpacing:n,align:o})}}class ae extends oe{_startPath(e,t,i,s){e.beginPath(),e.lineWidth=this._lineWidth(t),e.lineCap="butt",e.strokeStyle=i}_endPath(e){e.stroke()}_lineWidth(e){return Math.max(1,Math.floor(2*e.pixelRatio))}}class le extends oe{_startPath(e,t,i,s){e.beginPath(),e.lineWidth=this._lineWidth(t),e.lineCap="butt",e.fillStyle=i,e.strokeStyle=s}_endPath(e){e.fill(),e.stroke()}_lineWidth(e){ return Math.max(1,Math.floor(e.pixelRatio))}}class ce extends le{constructor(){super(...arguments),this._sign=0,this._thinArrow=!1,this._thinArrowLineWidth=0,this._headHeight=0,this._arrowWidth=0}setItems(e,t){this._setBaseData(e,t)}_drawItemShape(e,t,i){const s=t.pixelRatio,r=this._lineWidth(t)%2?.5:0,n=this._sign,o=this._arrowWidth,a=this._headHeight,l=Math.abs(i.height),c=Math.round(i.x*s)+r,h=i.vertOffset,d=Math.round((i.y+h+n*l/2)*s)+r,u=(0,q.ceiledEven)(o*s),p=u/2,_=Math.round(l*s),m=Math.round(a*s);e.translate(c,d),this._thinArrow?(e.moveTo(0,0),e.lineTo(-p,-p*n),e.moveTo(0,0),e.lineTo(p,-p*n),e.moveTo(0,0),e.lineTo(0,-_*n),e.moveTo(-p,-_*n),e.lineTo(p,-_*n)):(e.moveTo(0,0),_=0?e.vertOffset:e.vertOffset-e.shapeHeight}}),me.set("PaneRendererLabelDown",class extends de{_calcBoundingBox(e){const t=e.x-e.shapeWidth/2,i=e.x+e.shapeWidth/2,s=e.y-e.shapeHeight+e.vertOffset,r=e.y+e.vertOffset,n=new V.Point(t,s),o=new V.Point(i,r);return(0,V.box)(n,o)}_drawItemShape(e,t,i){const s=t.pixelRatio,r=this._lineWidth(t)%2?.5:0,n=Math.max(1,Math.floor(s))%2?.5:0,o=this._getArrowSize(i);let a=Math.round(o*s);(n+a)%1!=r%1&&(a+=.5);let l=Math.round(i.shapeWidth/2*s);(n+l)%1!=r%1&&(l+=.5);const c=Math.round(i.x*s)+n,h=Math.round((i.y+i.vertOffset)*s)+r,d=c+a,u=Math.round((i.y+i.vertOffset-o)*s)+r,p=c-a,_=c+l,m=Math.round((i.y+i.vertOffset-i.shapeHeight)*s)+r,g=c-l;e.moveTo(d,u),e.lineTo(c,h),e.lineTo(p,u),i.shapeWidth<=2*o?(e.lineTo(g,u),this._drawCorner(e,g,m,pe.leftUp,s),this._drawCorner(e,_,m,pe.rightUp,s),e.lineTo(_,u)):(this._drawCorner(e,g,u,pe.leftDown,s),this._drawCorner(e,g,m,pe.leftUp,s),this._drawCorner(e,_,m,pe.rightUp,s),this._drawCorner(e,_,u,pe.rightDown,s)),e.lineTo(d,u)}_getVerticalTextOffset(e){return-e.shapeHeight/2-this._getArrowSize(e)/2}_calcVertOffset(e){return Math.sign(e.vertOffset)<=0?e.vertOffset:e.vertOffset+e.shapeHeight}}),me.set("PaneRendererSquare",class extends le{_drawItemShape(e,t,i){const s=t.pixelRatio,r=Math.max(1,Math.floor(s))%2?.5:0,n=this._lineWidth(t)%2?.5:0;let o=Math.round(i.height/2*s);(r+o)%1!=n%1&&(o+=.5);const a=Math.round(i.x*s)+r,l=Math.round((i.y+i.vertOffset)*s)+r,c=a-o,h=l-o,d=a+o,u=l+o;e.rect(c,h,d-c,u-h)}_calcBoundingBox(e){const t=e.height,i=Math.round(t/2),s=e.x-i,r=e.vertOffset,n=e.y+r-i,o=s,a=s+t,l=n,c=n+t,h=new V.Point(o,l),d=new V.Point(a,c);let u=(0,V.box)(h,d);const p=super._calcBoundingBox(e);return p&&(u=this._unionBox(u,p)),u}}),me.set("PaneRendererTriangleApexUp",class extends _e{_drawItemShape(e,t,i){const s=i.width,r=i.height,n=Math.round(r/3),o=i.vertOffset-2*n,a=t.pixelRatio,l=this._lineWidth(t)%2?.5:0,c=Math.max(1,Math.floor(a)),h=c%2?.5:0;let d=Math.round(s*a);d%2!=c%2&&(d+=1);const u=Math.round(i.x*a)+h,p=Math.round((i.y+o)*a),_=u+d/2,m=Math.round((i.y+o+r)*a)+l,g=u-d/2;e.moveTo(u,p),e.lineTo(_,m),e.lineTo(g,m),e.lineTo(u,p)}}),me.set("PaneRendererTriangleApexDown",class extends _e{_drawItemShape(e,t,i){const s=i.width,r=i.height,n=Math.round(r/3),o=i.vertOffset-n,a=t.pixelRatio,l=this._lineWidth(t)%2?.5:0,c=Math.max(1,Math.floor(a)),h=c%2?.5:0;let d=Math.round(s*a);d%2!=c%2&&(d+=1) ;const u=Math.round(i.x*a)+h,p=Math.round((i.y+o)*a)+l,_=u+d/2,m=Math.round((i.y+o+r)*a),g=u-d/2;e.moveTo(g,p),e.lineTo(_,p),e.lineTo(u,m),e.lineTo(g,p)}}),me.set("PaneRendererXCross",class extends ae{_drawItemShapeUsingCSSPixels(e,t){const i=t.width,s=t.height,r=t.x-i/2,n=t.vertOffset,o=t.y-s/2+n;e.moveTo(r,o),e.lineTo(r+i,o+s),e.moveTo(r,o+s),e.lineTo(r+i,o)}_calcBoundingBox(e){const t=e.width,i=e.height,s=e.x-t/2,r=e.vertOffset,n=e.y-i/2+r,o=s,a=s+t,l=n,c=n+i,h=new V.Point(o,l),d=new V.Point(a,c);let u=(0,V.box)(h,d);const p=super._calcBoundingBox(e);return p&&(u=this._unionBox(u,p)),u}});class ge{constructor(e,t,i,s){this._items=[],this._invalidated=!1,this._renderer=null,this._isMarkersEnabled=B.enabled("source_selection_markers"),this._selectionData=null,this._plotIndex=null,this._topCoord=0,this._bottomCoord=0,this._study=e,this._series=t,this._model=i,this._plotName=s;const r=e.metaInfo().plots;for(let e=0;e0?(s-=o,r+=o):(s+=o,r-=o);const a=this._study.getMinFirstBarIndexForPlot(this._plotName);if(a>r)return;s=Math.max(a,s);const l=this._study.data(),c=this._study.firstValue();if(null===c)return;const h=l.rangeIterator(s,r),d=this._getTranspValue();let u=[];const p=this._model.selection().isSelected(this._study);p?(u=this._selectionIndexer.indexes(),this._selectionData={points:[],hittestResult:$.HitTestResult.REGULAR,vertOffset:0,bgColors:[],barSpacing:e.barSpacing(),visible:!0}):(this._selectionIndexer.clear(),this._selectionData=null);const _=this._series.properties().childs().style.value(),m=2===_?"lineStyle":3===_?"areaStyle":null;let g,v;m?(g=this._series.properties().childs()[m].childs().priceSource.value(),v=g):(g="high",v="low");const S=t.isInverted(),y=t.coordinateToPrice(t.height()*t.topMargin(),c),b=t.coordinateToPrice(t.height()*(1-t.bottomMargin()),c);this._topCoord=S?b:y,this._bottomCoord=S?y:b;const w=(0, -n.ensureNotNull)(this._model.paneForSource(this._study)).height(),P=this._study.properties().childs().styles.childs()[this._plotName].childs(),C=P.color.value(),T=P.textColor?P.textColor.value():void 0,x=C,I=C,M=void 0===T?void 0:T,A=(0,n.ensureNotNull)(this._plotIndex),L=(0,X.createEmptyStyle)();for(;h.hasNext();){const e=h.next(),t=e.index,i=e.value,s=Math.floor(t+o),r=i[A+1];if(null==r)continue;const n=this._createItem(s,r,g,v);if(null!==n){if(this._colorProvider.isColorDefined()){n.style={color:x,borderColor:I,textColor:M};const e=this._colorProvider.getPlotPointStyle(i,L);this._fillItemWithPointStyle(n,e,d)}p&&-1!==u.indexOf(t)&&null!==this._selectionData&&(this._selectionData.points.push(n),this._selectionData.bgColors.push(this._model.backgroundColorAtYPercentFromTop(n.y/w))),this._items.push(n)}}this._convertItemsToCoordinates()}_fillItemWithPointStyle(e,t,i){const s=(0,n.ensureDefined)(e.style);if(void 0!==t.colors[0]){s.color=(0,R.generateColor)((0,n.ensureDefined)(t.colors[0]),i);const e=i>9?i-10:0;s.borderColor=(0,R.generateColor)(s.color,e)}void 0!==t.colors[2]&&(s.textColor=(0,R.generateColor)((0,n.ensureDefined)(t.colors[2]),i))}_updateRenderer(e){this._updateImpl();const t=this._model.timeScale(),i={},s=this._getTranspValue(),r=t.barSpacing(),n=this._calculateShapeHeight(r),o=this._study.properties().childs().styles.childs()[this._plotName].childs(),a=o.location.value(),l=this._calculateVerticalOffset(a,n+n/2);i.barSpacing=r,i.items=this._items,i.color=(0,R.generateColor)(o.color.value(),s),i.height=n,i.vertOffset=l;const c=o.plottype.value(),h=G.plotShapesData[c],d=new N.CompositeRenderer;h&&d.append(this._createRenderer(h.paneRendererClass,i)),this._model.selection().isSelected(this._study)&&this._isMarkersEnabled&&null!==this._selectionData&&(this._selectionData.vertOffset=l,d.append(new j.SelectionRenderer(this._selectionData))),this._renderer=d}_createRenderer(e,t){const i=me.get(e);return new((0,n.ensureDefined)(i))(t)}_getSeriesVal(e,t){const i=(0,K.barFunction)(e),s=this._series.data().valueAt(t);return null===s?null:i(s)}_getTranspValue(){let e=0;const t=this._study.properties().childs();t.transparency&&(e=t.transparency.value(),e=(0,k.isNumber)(e)?e:50);const i=t.styles.childs()[this._plotName].childs();return i.transparency&&(e=i.transparency.value(),e=(0,k.isNumber)(e)?e:50),(0,q.clamp)(e,0,100)}_createItem(e,t,i,s){const r=this._study.properties().childs().styles.childs()[this._plotName].childs().location.value();if((null===t||0===t)&&r!==v.MarkLocation.Absolute)return null;let o;switch(r){case v.MarkLocation.AboveBar:const a=this._getSeriesVal(i,e);if(null===a)return null;o=a;break;case v.MarkLocation.BelowBar:const l=this._getSeriesVal(s,e);if(null===l)return null;o=l;break;case v.MarkLocation.Top:o=this._topCoord;break;case v.MarkLocation.Bottom:o=this._bottomCoord;break;case v.MarkLocation.Absolute:o=(0,n.ensureNotNull)(t);break;default:throw new Error("Bad value: "+r)}return new V.Point(e,o)}_convertItemsToCoordinates(){const e=this._model.timeScale(),t=this._study.priceScale() +n.ensureNotNull)(this._model.paneForSource(this._study)).height(),P=this._study.properties().childs().styles.childs()[this._plotName].childs(),C=P.color.value(),T=P.textColor?P.textColor.value():void 0,x=C,I=C,M=void 0===T?void 0:T,A=(0,n.ensureNotNull)(this._plotIndex),L=(0,Z.createEmptyStyle)();for(;h.hasNext();){const e=h.next(),t=e.index,i=e.value,s=Math.floor(t+o),r=i[A+1];if(null==r)continue;const n=this._createItem(s,r,g,v);if(null!==n){if(this._colorProvider.isColorDefined()){n.style={color:x,borderColor:I,textColor:M};const e=this._colorProvider.getPlotPointStyle(i,L);this._fillItemWithPointStyle(n,e,d)}p&&-1!==u.indexOf(t)&&null!==this._selectionData&&(this._selectionData.points.push(n),this._selectionData.bgColors.push(this._model.backgroundColorAtYPercentFromTop(n.y/w))),this._items.push(n)}}this._convertItemsToCoordinates()}_fillItemWithPointStyle(e,t,i){const s=(0,n.ensureDefined)(e.style);if(void 0!==t.colors[0]){s.color=(0,R.generateColor)((0,n.ensureDefined)(t.colors[0]),i);const e=i>9?i-10:0;s.borderColor=(0,R.generateColor)(s.color,e)}void 0!==t.colors[2]&&(s.textColor=(0,R.generateColor)((0,n.ensureDefined)(t.colors[2]),i))}_updateRenderer(e){this._updateImpl();const t=this._model.timeScale(),i={},s=this._getTranspValue(),r=t.barSpacing(),n=this._calculateShapeHeight(r),o=this._study.properties().childs().styles.childs()[this._plotName].childs(),a=o.location.value(),l=this._calculateVerticalOffset(a,n+n/2);i.barSpacing=r,i.items=this._items,i.color=(0,R.generateColor)(o.color.value(),s),i.height=n,i.vertOffset=l;const c=o.plottype.value(),h=G.plotShapesData[c],d=new N.CompositeRenderer;h&&d.append(this._createRenderer(h.paneRendererClass,i)),this._model.selection().isSelected(this._study)&&this._isMarkersEnabled&&null!==this._selectionData&&(this._selectionData.vertOffset=l,d.append(new j.SelectionRenderer(this._selectionData))),this._renderer=d}_createRenderer(e,t){const i=me.get(e);return new((0,n.ensureDefined)(i))(t)}_getSeriesVal(e,t){const i=(0,K.barFunction)(e),s=this._series.data().valueAt(t);return null===s?null:i(s)}_getTranspValue(){let e=0;const t=this._study.properties().childs();t.transparency&&(e=t.transparency.value(),e=(0,k.isNumber)(e)?e:50);const i=t.styles.childs()[this._plotName].childs();return i.transparency&&(e=i.transparency.value(),e=(0,k.isNumber)(e)?e:50),(0,q.clamp)(e,0,100)}_createItem(e,t,i,s){const r=this._study.properties().childs().styles.childs()[this._plotName].childs().location.value();if((null===t||0===t)&&r!==v.MarkLocation.Absolute)return null;let o;switch(r){case v.MarkLocation.AboveBar:const a=this._getSeriesVal(i,e);if(null===a)return null;o=a;break;case v.MarkLocation.BelowBar:const l=this._getSeriesVal(s,e);if(null===l)return null;o=l;break;case v.MarkLocation.Top:o=this._topCoord;break;case v.MarkLocation.Bottom:o=this._bottomCoord;break;case v.MarkLocation.Absolute:o=(0,n.ensureNotNull)(t);break;default:throw new Error("Bad value: "+r)}return new V.Point(e,o)}_convertItemsToCoordinates(){const e=this._model.timeScale(),t=this._study.priceScale() ;e.timedValuesToCoordinates(this._items);const i=(0,n.ensureNotNull)(this._study.firstValue());(0,n.ensureNotNull)(t).pointsArrayToCoordinates(this._items,i)}_calculateVerticalOffset(e,t){let i=0;switch(e){case v.MarkLocation.AboveBar:case v.MarkLocation.Bottom:i=-t;break;case v.MarkLocation.BelowBar:case v.MarkLocation.Top:i=t}return(0,n.ensureNotNull)(this._study.priceScale()).isInverted()&&(i*=-1),i}_calculateShapeHeight(e,t){let i=e;switch(t){case b.PlotSymbolSize.Tiny:i=.3*e;break;case b.PlotSymbolSize.Small:i=.6*e;break;case b.PlotSymbolSize.Normal:i=e;break;case b.PlotSymbolSize.Large:i=1.5*e;break;case b.PlotSymbolSize.Huge:i=2*e}return i}}class fe extends ge{_updateRenderer(e){const t=e.childs();this._updateImpl();const i=this._model.timeScale(),s={},r=this._getTranspValue(),n=i.barSpacing();let o;if(t.size){const e=t.size.value();o=this._calculateShapeHeight(25,e)}else o=Math.round(n/2);o=Math.max(o,1);const a=t.location.value(),l=(0,R.generateColor)(t.color.value(),r),c=r>19?r-10:0,h=this._calculateVerticalOffset(a,Math.round(1.5*o));s.barSpacing=n,s.items=this.items(),s.color=l,s.borderColor=(0,R.generateColor)(t.color.value(),c),s.height=o,s.vertOffset=h;const d=t.plottype.value(),u=G.plotShapesData[d],p=new N.CompositeRenderer,_=t.text?t.text.value():void 0;if(void 0!==_&&""!==_.trim()){let e=_.trim().replace(/\\n/gm,"\n");e=(0,U.cleanButAmpersand)(e,!0),s.text=e,s.fontSize=12;const i=t.textColor?t.textColor.value():void 0;s.textColor=i?(0,R.generateColor)(i,r):l}p.append(super._createRenderer(u.paneRendererClass,s)),this._model.selection().isSelected(this._study)&&this._isMarkersEnabled&&null!==this._selectionData&&(this._selectionData.vertOffset=h,p.append(new j.SelectionRenderer(this._selectionData))),this._renderer=p}}var ve=i(87795),Se=i.n(ve),ye=i(55014);class be extends oe{constructor(e,t){super(null,t),this._fontSizeEnsured=0,this._ch="",this._fontFamily=ne.CHART_FONT_FAMILY,this._charCache=null,null!==e&&this.setData(e)}setData(e){super.setData(e),this._fontSizeEnsured=(0,n.ensureDefined)(this._height);const t=e.char.slice(0,40);this._ch=Se()(t)[0]||" ",this._fontFamily=e.fontFamily||ne.CHART_FONT_FAMILY}hitTest(e){const t=(0,ye.interactionTolerance)().series+this._fontSizeEnsured/2;for(const i of this._items){if(new V.Point(i.x,i.y+i.vertOffset).subtract(e).length()<=t)return new $.HitTestResult($.HitTestResult.REGULAR)}return null}_drawItemShape(e,t,i){const s=i.x,r=i.vertOffset>0?1:-1,n=i.y+i.vertOffset-r*Math.round(this._fontSizeEnsured/2);let o;o=i.style&&void 0!==i.style.color?i.style.color:this._color;const a=this._textImageCache(),l=t.pixelRatio;if(this._fontSizeEnsured<=4/l){e.save();const t=Math.max(1,Math.floor(l));let r=Math.max(1,Math.floor(a.textImageWidth*l));r%2!=t%2&&(r+=r>1?-1:1);const c=Math.round(n*l)+(i.vertOffset>=0?0:-r);return e.fillStyle=o,e.fillRect(Math.round(s*l)+(l%2?.5:0)-r/2,c,r,r),void e.restore()}const c={style:{fillStyle:o},location:{x:s,y:n,horzAlign:H.Center,vertAlign:i.vertOffset>0?z.Top:z.Bottom}};a.paintTo(e,t,c)}_startPath(e,t,i,s){}_endPath(e){} _textImageCache(){return null!==this._charCache&&this._charCache.fontFamily===this._fontFamily&&this._charCache.fontSize===this._fontSizeEnsured||(this._charCache={fontSize:this._fontSizeEnsured,fontFamily:this._fontFamily,cache:new se(this._ch,!1,!1,this._fontFamily,this._fontSizeEnsured,"center",0)}),this._charCache.cache}}class we extends ge{constructor(){super(...arguments),this._compositeRenderer=new N.CompositeRenderer,this._charRenderer=new be(null)}renderer(){return this._isPlotVisible()&&this._scalesReady()?(this._invalidated&&(this._updateImpl(),this._invalidated=!1),this._compositeRenderer):null}_updateImpl(){if(this._compositeRenderer.clear(),super._updateImpl(),0===this._items.length)return;const e=this._getTranspValue(),t=this._model.timeScale().barSpacing();let i;const s=this._study.properties().childs().styles.childs()[this._plotName].childs();if(s.size){const e=s.size.value();i=this._calculateShapeHeight(50,e)}else i=Math.round(t);const r=s.location.value(),n=(0,R.generateColor)(s.color.value(),e),o=this._calculateVerticalOffset(r,i),a={items:this.items(),barSpacing:t,char:s.char.value(),height:i,vertOffset:o,color:n},l=s.text?s.text.value():void 0;if(void 0!==l&&""!==l.trim()){let t=l.trim().replace(/\\n/gm,"\n");t=(0,U.cleanButAmpersand)(t,!0),a.text=t,a.fontSize=12;const i=s.textColor?s.textColor.value():void 0;a.textColor=i?(0,R.generateColor)(i,e):n}this._charRenderer.setData(a),this._compositeRenderer.append(this._charRenderer),this._model.selection().isSelected(this._study)&&this._isMarkersEnabled&&null!==this._selectionData&&(this._selectionData.vertOffset=o,this._compositeRenderer.append(new j.SelectionRenderer(this._selectionData)))}}var Pe=i(24377);class Ce extends V.Point{constructor(e,t,i,s){super(e,t),this.height=i,this.isUp=s,this.style={}}}function Te(e){return Math.round(e/4)}function xe(e){return Math.round(e/2)}class Ie{constructor(e){this._data=e}draw(e,t){var i;const s=t.pixelRatio,r=this._data,n=xe(r.barSpacing),o=Te(r.barSpacing),a=n<4,l=Math.max(n/2,1),c=(0,q.ceiledEven)(n*s),h=c/2,d=Math.round(n*s);e.lineCap="butt",e.lineWidth=Math.max(1,Math.floor(s));const u=e.lineWidth%2?.5:0;for(const t of r.items){const n=t.isUp?-1:1,p=Math.round(Math.abs(t.height)*s),_=Math.round(t.x*s)+u,m=Math.round((t.y-n*o)*s)+u;e.beginPath(),e.translate(_,m);const g=null!==(i=t.style&&t.style.color)&&void 0!==i?i:t.isUp?r.colorup:r.colordown;a?(e.moveTo(0,0),e.lineTo(-h,-h*n),e.moveTo(0,0),e.lineTo(h,-h*n),e.moveTo(0,0),e.lineTo(0,-p*n),e.moveTo(-h,-p*n),e.lineTo(h,-p*n),e.lineWidth=l,e.strokeStyle=g,e.stroke()):(e.moveTo(0,0),pthis._maxAbsValue&&(this._maxAbsValue=Math.abs(t));const r=t>0;let n;if(r){const t=this._getSeriesVal(s,e);if(null===t)return null;n=t}else{const t=this._getSeriesVal(i,e);if(null===t)return null;n=t}return new Ce(e,n,t,r)}_convertItemsToCoordinates(){const e=this._model.timeScale(),t=(0,n.ensureNotNull)(this._study.priceScale());e.timedValuesToCoordinates(this._items),t.pointsArrayToCoordinates(this._items,(0,n.ensureNotNull)(this._study.firstValue()));const i=this._study.properties().childs().styles.childs();let s=Math.abs(i[this._plotName].childs().minHeight.value()),r=Math.abs(i[this._plotName].childs().maxHeight.value());if(s>r){const e=s;s=r,r=e}const o=(r-s)/this._maxAbsValue,a=this._items;for(let e=0;es)return;i=Math.max(r,i);const o=this._study.data(),a=this._study.firstValue();if(null===a)return;const l=o.rangeIterator(i,s),c=(0,n.ensureDefined)(this._study.properties().childs().ohlcPlots).childs()[this._plotName].childs(),h=new Map,d=(e,t)=>{const i=e+"@"+t;if(!h.has(i)){const s=(0,R.generateColor)(e,t);return h.set(i,s),s}return h.get(i)},u=(0,X.createEmptyStyle)();for(;l.hasNext();){const e=l.next();let t=e.index;const i=e.value;t=Math.floor(t);let s=!0;const r=new Map;for(let e=1;e<=4;++e){const t=this._ohlcPlotIndexes.get(e);if(void 0===t){s=!1;break}const n=i[t+1];if(null==n){s=!1;break}r.set(e,n)}if(!s)continue;const o=(0,n.ensureDefined)(r.get(1)),a=(0,n.ensureDefined)(r.get(4)),h=(0,n.ensureDefined)(r.get(2)),p=(0,n.ensureDefined)(r.get(3)),_=Math.max(o,h,p,a),m=Math.min(o,h,p,a);let g=(0,n.ensureDefined)(d(c.color.value(),0));const f=this._colorProvider.getPlotPointStyle(i,u);void 0!==f.colors[0]&&(g=(0,n.ensureDefined)(f.colors[0]));const v={time:Math.round(t),open:o,high:_,low:m,close:a,color:g,wickColor:f.colors[4],borderColor:f.colors[3],hollow:null};this._bars.push(v)}if(e.barPricesToCoordinates(this._bars,a),this._model.timeScale().barIndexesToCoordinates(this._bars),this._model.selection().isSelected(this._study)){const t=this._selectionIndexer.indexes();this._selectionData={points:[],hittestResult:$.HitTestResult.REGULAR,bgColors:[],visible:!0,barSpacing:this._model.timeScale().barSpacing()};const i=(0,n.ensureNotNull)(this._model.paneForSource(this._study)).height(),s=(0,n.ensureDefined)(this._ohlcPlotIndexes.get(4));for(let r=0;rs)return;i=Math.max(r,i);const o=this._study.data(),a=this._study.firstValue();if(null===a)return;const l=o.rangeIterator(i,s),c=(0,n.ensureDefined)(this._study.properties().childs().ohlcPlots).childs()[this._plotName].childs(),h=new Map,d=(e,t)=>{const i=e+"@"+t;if(!h.has(i)){const s=(0,R.generateColor)(e,t);return h.set(i,s),s}return h.get(i)},u=(0,Z.createEmptyStyle)();for(;l.hasNext();){const e=l.next();let t=e.index;const i=e.value;t=Math.floor(t);let s=!0;const r=new Map;for(let e=1;e<=4;++e){const t=this._ohlcPlotIndexes.get(e);if(void 0===t){s=!1;break}const n=i[t+1];if(null==n){s=!1;break}r.set(e,n)}if(!s)continue;const o=(0,n.ensureDefined)(r.get(1)),a=(0,n.ensureDefined)(r.get(4)),h=(0,n.ensureDefined)(r.get(2)),p=(0,n.ensureDefined)(r.get(3)),_=Math.max(o,h,p,a),m=Math.min(o,h,p,a);let g=(0,n.ensureDefined)(d(c.color.value(),0));const f=this._colorProvider.getPlotPointStyle(i,u);void 0!==f.colors[0]&&(g=(0,n.ensureDefined)(f.colors[0]));const v={time:Math.round(t),open:o,high:_,low:m,close:a,color:g,wickColor:f.colors[4],borderColor:f.colors[3],hollow:null};this._bars.push(v)}if(e.barPricesToCoordinates(this._bars,a),this._model.timeScale().barIndexesToCoordinates(this._bars),this._model.selection().isSelected(this._study)){const t=this._selectionIndexer.indexes();this._selectionData={points:[],hittestResult:$.HitTestResult.REGULAR,bgColors:[],visible:!0,barSpacing:this._model.timeScale().barSpacing()};const i=(0,n.ensureNotNull)(this._model.paneForSource(this._study)).height(),s=(0,n.ensureDefined)(this._ohlcPlotIndexes.get(4));for(let r=0;rthis._actualLength?this._items[this._actualLength]:null;return null!==e&&Boolean(e.invalidateCache)&&e.invalidateCache(),e}invalidateCache(){this._invalidations+=1,3e3===this._invalidations&&(this._items.splice(this._actualLength),this._invalidations=0),this._actualLength=0}at(e){return this._items[e]}data(){return this._items}length(){return this._actualLength}}class He extends We{constructor(e){super(),this.color=e}}class ze{constructor(){this._map=new Map,this._usedKeys=new Set,this._invalidations=0}invalidateCache(){this._invalidations+=1,50===this._invalidations&&(this._deleteUnused(),this._invalidations=0),this._usedKeys.clear(),this._map.forEach(((e,t)=>e.invalidateCache()))}get(e){ const t=this._map.get(e);return void 0!==t&&this._usedKeys.add(e),t}set(e,t){this._usedKeys.add(e),this._map.set(e,t)}forEach(e){this._map.forEach(((t,i)=>{this._usedKeys.has(i)&&e(t,i)}))}delete(e){const t=this._map.get(e);void 0!==t&&t.invalidateCache(),this._usedKeys.delete(e)}_deleteUnused(){const e=[];this._map.forEach(((t,i)=>{this._usedKeys.has(i)||e.push(i)}));for(const t of e)this._map.delete(t)}}class Ue extends We{constructor(){super(),this.points1=new We,this.points2=new We,this.push(this.points1),this.push(this.points2)}addPoints1Point(e,t){let i=this.points1.newItem();null!==i?(i.x=e,i.y=t):i={x:e,y:t},this.points1.push(i)}addPoints2Point(e,t){let i=this.points2.newItem();null!==i?(i.x=e,i.y=t):i={x:e,y:t},this.points2.push(i)}invalidateCache(){this.points1.invalidateCache(),this.points2.invalidateCache()}}class je{constructor(){this._data=null}setData(e){this._data=e}hitTest(e,t){return null}draw(e,t){if(null===this._data)return;const i=t.pixelRatio,s=.25*this._data.barSpacing;this._data.colorAreas.forEach((t=>{var r,n;e.beginPath();for(let r=0;r=0;t--)e.lineTo(Math.round(n.points2.at(t).x*i),n.points2.at(t).y*i)}else{const t=n.points2.at(0).x,r=n.points2.at(0).y;e.lineTo(Math.round((o+s)*i),a*i),e.lineTo(Math.round((t+s)*i),r*i),e.lineTo(Math.round((t-s)*i),r*i),e.lineTo(Math.round((o-s)*i),a*i)}}if(e.closePath(),0===t.color.type)e.fillStyle=t.color.color;else{const s=e.createLinearGradient(0,t.color.value1*i,0,t.color.value2*i);s.addColorStop(0,null!==(r=t.color.color1)&&void 0!==r?r:"transparent"),s.addColorStop(1,null!==(n=t.color.color2)&&void 0!==n?n:"transparent"),e.fillStyle=s}e.fill()}))}}function Ge(e){return 0===e.type?`${e.color}`:`${e.color1}:${e.color2}:${e.value1}:${e.value2}`}class qe extends We{constructor(){super(...arguments),this._startIndex=0}setStartIndex(e){this._startIndex=e}isValidIndex(e){return e>=this._startIndex}at(e){const t=e-this._startIndex;for(;t>=this._actualLength;)this._items.length<=t?this._items.push(this._newObject()):this._clearObject(this._items[this._actualLength]),this._actualLength+=1;return this._items[t]}}class $e extends qe{_newObject(){return{plot1Value:void 0,plot2Value:void 0,colorValue:void 0}}_clearObject(e){e.plot1Value=void 0,e.plot2Value=void 0,e.colorValue=void 0}}class Ye extends qe{_newObject(){return{type:void 0,colorIndexOrRgba:void 0,colorIndexOrRgba1:void 0,colorIndexOrRgba2:void 0,value1:void 0,value2:void 0}}_clearObject(e){const t=e;t.type=void 0,t.colorIndexOrRgba=void 0,t.colorIndexOrRgba1=void 0,t.colorIndexOrRgba2=void 0,t.value1=void 0,t.value2=void 0}}class Ke{constructor(e,t,i=!1){this._isHlineFill=!1,this._bandAKey=null,this._bandBKey=null,this._colorPlotIndex=null,this._colors=new We, this._areaRenderer=new je,this._invalidated=!0,this._plIndex1=null,this._plIndex2=null,this._level1=0,this._level2=0,this._studyValuesCache=new $e,this._colorValuesCache=new Ye,this._points1=new We,this._points2=new We,this._timePoints=new We,this._colorAreas=new ze,this._source=e,this._model=t,this._fillGaps=i}update(){this._invalidated=!0}renderer(e,t){return this._invalidated&&(this._updateImpl(),this._invalidated=!1),this._areaRenderer}_correctVisibleRange(e,t){var i,s,r,n;const o=this._source.data().plottableRange(),a=e.firstBar()+Math.min(0,t)-1,l=e.lastBar()-t+1,c=this._plotIndex1(),h=this._plotIndex2(),d=o.search(a,f.PlotRowSearchMode.NearestLeft,c),u=o.search(a,f.PlotRowSearchMode.NearestLeft,h),p=o.search(l,f.PlotRowSearchMode.NearestRight,c),_=o.search(l,f.PlotRowSearchMode.NearestRight,h),m=Math.min(null!==(i=null==d?void 0:d.index)&&void 0!==i?i:1/0,e.firstBar()-1),g=Math.min(null!==(s=null==u?void 0:u.index)&&void 0!==s?s:1/0,e.firstBar()-1),v=Math.max(null!==(r=null==p?void 0:p.index)&&void 0!==r?r:-1/0,e.lastBar()+1),S=Math.max(null!==(n=null==_?void 0:_.index)&&void 0!==n?n:-1/0,e.lastBar()+1);let y=1/0;if(null!==this._colorPlotIndex&&(null!==d||null!==u)){const e=o.search(Math.min(m,g)-1,f.PlotRowSearchMode.NearestLeft);null!==e&&(y=e.index)}return[Math.min(m,g,y),Math.max(v,S)]}_plotNames(){return this._source.metaInfo().plots.map((e=>e.id))}_plotIndex1(){return null===this._plIndex1&&(this._plIndex1=this._plotNames().indexOf(this._plotAId())+1),this._plIndex1}_plotIndex2(){return null===this._plIndex2&&(this._plIndex2=this._plotNames().indexOf(this._plotBId())+1),this._plIndex2}_updateImpl(){var e,t;if(this._areaRenderer.setData(null),!this._visible())return;const i=this._source.priceScale(),s=this._model,r=s.timeScale();if(!i||i.isEmpty()||r.isEmpty())return;if(s.mainSeries().bars().isEmpty())return;const o=this._source.firstValue();if(null===o)return;if(this._isHlineFill){const e=this._source.properties().bands[(0,n.ensureNotNull)(this._bandAKey)],t=this._source.properties().bands[(0,n.ensureNotNull)(this._bandBKey)];this._level1=i.priceToCoordinate(e.value.value(),o),this._level2=i.priceToCoordinate(t.value.value(),o)}const a=r.visibleBarsStrictRange();if(null===a)return;const l=new Map,c=e=>{let t=l.get(e);return void 0===t&&(t=i.priceToCoordinate(e,o),l.set(e,t)),t},h=(0,q.clamp)(this._transparency(),0,100),d=new Map,u=e=>{let t=d.get(e);return void 0===t&&(t=(0,R.generateColor)(e,h),d.set(e,t)),t};this._timePoints.invalidateCache(),this._points1.invalidateCache(),this._points2.invalidateCache(),this._colors.invalidateCache(),this._colorAreas.invalidateCache();const p=this._source.offset(this._plotAId()),_=this._source.offset(this._plotBId()),m=Math.min(p,_),g=Math.max(p,_),[f,v]=this._correctVisibleRange(a,g),S=null!==this._colorPlotIndex?this._colors:null,y=this._plotIndex1(),b=this._plotIndex2(),w=this._source.data().plottableRange();if(w.isEmpty())return;let P,C;const T=(0,n.ensureNotNull)(w.firstIndex()),x=(0, n.ensureNotNull)(w.lastIndex()),I=T-Math.max(0,-m),M=x+Math.max(0,g),A=Math.max(f,I),L=Math.min(v,M),k=this._studyValuesCache,E=this._colorValuesCache;k.invalidateCache(),E.invalidateCache();const D=A-g,B=w.rangeIterator(D,L-m);let V;for(k.setStartIndex(D),E.setStartIndex(D);B.hasNext();){const e=B.next(),t=e.index,i=e.value,s=i[y],r=i[b],o=t+p,a=t+_;if(o===a&&k.isValidIndex(o)){const e=k.at(o);e.plot1Value=s,e.plot2Value=r}else{if(k.isValidIndex(o)){k.at(o).plot1Value=s}if(k.isValidIndex(a)){k.at(a).plot2Value=r}}if(null!==S&&void 0!==V){const e=V+m;if(k.isValidIndex(e)){const t=k.at(e),s=(0,n.ensureNotNull)(this._colorPlotIndex);if(0===s.type){const r=E.at(e);t.colorValue=r,r.type=0,r.colorIndexOrRgba=i[s.colorIndexOrRgba+1]}else{const r=E.at(e);t.colorValue=r,r.colorIndexOrRgba1=void 0===s.colorIndexOrRgba1?void 0:i[s.colorIndexOrRgba1+1],r.colorIndexOrRgba2=void 0===s.colorIndexOrRgba2?void 0:i[s.colorIndexOrRgba2+1],r.value1=void 0===s.valueIndex1?void 0:i[s.valueIndex1+1],r.value2=void 0===s.valueIndex2?void 0:i[s.valueIndex2+1]}}}V=t}const N=this._timePoints,O=this._points1,F=this._points2;let W=null;const H=D+k.length();for(let i=D;i{var e;return this._colorPlotIndex=null!==(e=this._colorPlotIndex)&&void 0!==e?e:{type:1}};for(let t=0;t{var e;return this._colorPlotIndex=null!==(e=this._colorPlotIndex)&&void 0!==e?e:{type:1}};for(let t=0;t{null===this._bandAKey&&i.id===e&&(this._bandAKey=s),null===this._bandBKey&&i.id===t&&(this._bandBKey=s)}))}}var ot=i(86635),at=i(10621),lt=i(36646),ct=i(97425),ht=i(40549),dt=i.n(ht),ut=i(1930),pt=i(35624),_t=i(67876);class mt extends _t.PriceAxisView{constructor(e,t){super(),this._model=e.model(),this._source=e,this._data=t}_updateRendererData(e,t,i){e.visible=!1,t.visible=!1;const s=this._source.model(),r=this._source.priceScale();if(null===r)return;if(!s.isPriceScaleVisible(r))return;const o=this._source.lastValueData(this._data.plotIndex,!1);if(o.noData)return;const a=s.timeScale().visibleBarsStrictRange(),l=s.mainSeries().bars().lastIndex();if(null!==a&&null!==l){if(l<=a.lastBar()){i.background=(0,R.resetTransparency)(o.color);let s=o.color;"transparent"===s&&(s=this._model.properties().childs().scalesProperties.childs().backgroundColor.value()),i.textColor=this.generateTextColor(s),i.borderColor=void 0,e.borderVisible=!1,t.borderVisible=!1}else{const r=s.backgroundColorAtYPercentFromTop(o.coordinate/(0,n.ensureNotNull)(s.paneForSource(this._source)).height());i.background=r,i.textColor=(0,R.resetTransparency)(o.color),i.borderColor=(0,R.resetTransparency)(i.textColor),e.borderVisible=!0,t.borderVisible=!0}i.coordinate=o.coordinate,i.floatCoordinate=o.floatCoordinate,this._showAxisLabel()&&(e.text=o.text,e.visible=!0),this._updatePaneRendererData(t)}}_showPaneLabel(){return!!this._model.properties().childs().scalesProperties.childs().showStudyPlotLabels.value()&&this._source.properties().childs().showLabelsOnPriceScale.value()&&this._source.isPlotVisibleAt(this._data.plotIndex,4)}_showAxisLabel(){return!!this._model.properties().childs().scalesProperties.childs().showStudyLastValue.value()&&this._source.properties().childs().showLabelsOnPriceScale.value()&&this._source.isPlotVisibleAt(this._data.plotIndex,4)}_updatePaneRendererData(e){e.text="",this._showPaneLabel()&&(e.text=this._source.priceLabelText(this._data.plotIndex),e.visible=!0)}}var gt=i(45703),ft=i(2250),vt=i(76422),St=i(64548),yt=i(7006),bt=i(7711),wt=i(93618),Pt=i(81685),Ct=i(77513),Tt=i(74599),xt=i(48566),It=i(18766),Mt=i(69145);const At=(0, a.getLogger)("Chart.Study"),Lt=o.t(null,void 0,i(14177));const kt={symbolsForDisplay:!1,symbolsForChartApi:!0,skipHiddenInputs:!1,skipFakeInputs:!1,skipBooleanInputs:B.enabled("dont_show_boolean_study_arguments"),asObject:!0,skippedGroups:[],skippedInputs:[],noExchanges:!1,noResolution:!1,keepOptionalSymbolsEmpty:!1,skipColorInputs:!1,skipTimeInputs:!1,skipOptionalEmptySymbolInputs:!1,skipTextareaInputs:!0,priceInputsForDisplay:!1},Et=B.enabled("study_symbol_ticker_description"),Dt=B.enabled("hide_main_series_symbol_from_indicator_legend");function Bt(e,t){const i=e.plots[t];if(!i||!(0,b.isOhlcPlot)(i))return!1;const s=i.target,r=e.defaults.styles&&e.defaults.styles[s],n=e.defaults.ohlcPlots&&e.defaults.ohlcPlots[s],o=e.ohlcPlots&&e.ohlcPlots[s];return r&&(0,b.isOhlcPlotStyleBars)(r)||n&&(0,b.isOhlcPlotStyleBars)(n)||!!o&&(0,b.isOhlcPlotStyleBars)(o)}function Vt(e,t){const i=e.plots[t];if(!i||!(0,b.isOhlcPlot)(i))return!1;const s=i.target,r=e.defaults.styles&&e.defaults.styles[s],n=e.defaults.ohlcPlots&&e.defaults.ohlcPlots[s],o=e.ohlcPlots&&e.ohlcPlots[s];return r&&(0,b.isOhlcPlotStyleCandles)(r)||n&&(0,b.isOhlcPlotStyleCandles)(n)||!!o&&(0,b.isOhlcPlotStyleCandles)(o)}function Rt(e,t){(0,n.assert)(void 0!==e,"zOrder must be defined"),(0,n.assert)(!t.has(e),"zOrder must be unique")}function Nt(e,t){return e.plots.some((e=>((0,b.isColorerPlot)(e)||(0,b.isDataPlot)(e))&&e.target===t))}function Ot(e,t){var i;if(t.plots)for(let s=0;s= 1");let a=(0,k.clone)((0,St.defaults)("study"));Ot(a,e);const l=m.StudyMetaInfo.getStudyPropertyRootName(e);let c=(0,k.clone)((0,St.defaults)(l,s));c.intervalsVisibilities=(0,k.clone)(yt.intervalsVisibilitiesDefaults),"Overlay"!==e.shortId&&"Compare"!==e.shortId||(c.currencyId=null,c.unitId=null),e.isTVScript&&e.TVScriptSourceCode!==c.TVScriptSourceCode&&(c=(0,k.clone)((0,St.factoryDefaults)(l))),(0,k.merge)(a,c),t&&((0,n.assert)(!(t instanceof L()),"propsState should not be an instance of Property"),(0,k.merge)(a,t));const h=(0,k.clone)(e),d={};Pt.StudyVersioning.mergeInputsObjPart(d,null!==(r=h.defaults.inputs)&&void 0!==r?r:{}),Pt.StudyVersioning.mergeInputsObjPart(d,a.inputs),a.inputs=d,delete h.inputs,delete h.defaults.inputs;const u={};if((0,k.merge)(u,h.defaults),(0,k.merge)(u,(0,St.factoryDefaults)(l)),(0,k.merge)(u,a),(0,k.merge)(u,h),delete u.defaults,a=u,null!==i){const t=i.model().studiesColorRotatorFactory().getColorRotator(e) @@ -755,7 +756,7 @@ a.id=m.StudyMetaInfo.parseIdString(a.id+(a.version?"-"+a.version:"")).fullId);co ;return Boolean(e)&&e.is_price_study?this._firstSourceOrSeries().currency():null}currencySourceSymbolInfo(){var e,t,i;return null!==(e=this._currencySourceSymbolInfo)&&void 0!==e?e:null!==(i=null===(t=this.symbolSource())||void 0===t?void 0:t.symbolInfo())&&void 0!==i?i:null}unit(){const e=this.metaInfo();return Boolean(e)&&e.is_price_study?this._firstSourceOrSeries().unit():null}dataWindowView(){return this._dataWindowView}statusView(){return this._statusView}legendView(){return this._legendView}inputsForAlertState(){return this.inputs()}sessionId(){return this._firstSourceOrSeries().sessionId()}sessionIdChanged(){return this._firstSourceOrSeries().sessionIdChanged()}getSymbolString(e){return""===e?"":(0,T.encodeExtendedSymbolOrGetSimpleSymbolString)(this._getSymbolObject(e))}onStatusChanged(){return this._statusChanged}symbolsResolved(){return this._symbolsResolved}onHibernationStateChange(){return this._onHibernationStateChange}valuesProvider(){return new y.StudyLegendValuesProvider(this,this.model())}statusProvider(e){return new M.StudyStatusProvider(this,this._model.properties().childs().scalesProperties.childs().textColor)}correctScaleMargins(e){if("Volume"===this.metaInfo().shortId){const t=this.model().paneForSource(this);return null!==t&&t.isOverlay(this)&&t.containsMainSeries()?{top:.75,bottom:0}:{top:e.top,bottom:0}}return e}canBeHiddenByGlobalFlag(){return!0}isSourceHidden(){return!this.isVisible()||this.canBeHiddenByGlobalFlag()&&P.hideAllIndicators().value()}paneViews(e){if(this.isSourceHidden()||!e.hasPriceDataSource(this))return null;const t=[];return!this._startMovingPoint&&this._wasCompletedBefore&&t.push(...this._paneViews),this._inputsLinesPaneView&&(this._startMovingPoint||this._model.selection().isSelected(this))&&t.push(this._inputsLinesPaneView),this._inputsAnchorsPaneView&&t.push(this._inputsAnchorsPaneView),t}labelPaneViews(){return this.isSourceHidden()?null:this._labelPaneViews}timeAxisViews(){return this._model.selection().isSelected(this)?this._inputsTimeAxisPaneViews:null}priceAxisViews(e,t){const i=this._properties.childs().oldShowLastValue;if(i&&!i.value())return null;let s=this._priceAxisViews.slice();return this._model.selection().isSelected(this)&&(s=s.concat(this._inputsPriceAxisPaneViews)),e.findTargetPriceAxisViews(this,t,s,this._priceLinesAxisViews)}movable(){return null!==this._inputsAnchorsPaneView}startMoving(e,t,i,s){this._startMovingPoint=e,this.stop()}move(e,t,i,s){if(void 0!==e.logical&&null!==this._startMovingPoint){if(Array.isArray(t)){const i=t;this._updateInputValue(e.logical,i[0]),this._updateInputValue(e.logical,i[1])}else this._updateInputValue(e.logical,t);this.updateAllViews((0,ct.sourceChangeEvent)(this.id()))}}endMoving(e,t){return this._startMovingPoint=null,this.start(),{indexesChanged:!1,pricesChanged:!1}}clearData(){var e;this._invalidateLastNonEmptyPlotRowCache(),this.data().clear(),this._graphics instanceof g.LiveStudyGraphics&&(null===(e=this._graphics)||void 0===e||e.clear()),this._plotOffsets={}, this.hasBarColorer()&&this._model.mainSeries().invalidateBarStylesCache(),this.updateAllViews((0,ct.sourceChangeEvent)({sourceId:this.id(),clearData:!0}))}convertYCoordinateToPriceForMoving(e,t){const i=this.priceScale();if(!t||!i||i.isEmpty())return null;const s=t.firstValue();return null===s?null:i.coordinateToPrice(e,s)}processHibernate(e){const t=this.isVisible();if(!this.isStarted()&&t&&(this._sources.forEach((e=>{e.processHibernate()})),this.start(void 0,void 0,e),this._onHibernationStateChange.fire(!1)),this.isHibernationAllowed()&&this.isStarted()&&!t){for(const e of this._children)e.processHibernate();this.stop(void 0,e),this._onHibernationStateChange.fire(!0)}}isHibernationAllowed(){return!this.metaInfo().historyCalculationMayChange&&(!this.hasChildren()||!!this._model.collapsed().value()&&this._children.every((e=>e.isHibernationAllowed())))}isPlotVisibleAt(e,t){let i;const s=this.metaInfo().plots.find((t=>t.id===e));if(i=void 0!==s?(0,b.isOhlcPlot)(s)?this._properties.childs().ohlcPlots.childs()[s.target]:this._properties.childs().styles.childs()[e]:this._properties.childs().ohlcPlots.childs()[e],void 0===i)throw new Error(`Study does not contain ${e} plot`);const r=i.childs().display.value();return null!==r&&(r&t)===t}recalculate(){const e=this._model.paneForSource(this);this._model.recalculatePane(e,(0,ct.sourceChangeEvent)(this.id())),this._model.updateSource(this)}maxOffset(){return this._maxOffset}onStart(){return this._onStart}isHibernated(){return!this.isVisible()&&!this.isStarted()}turnaround(e){if(!e)return this._turnaround;const t=this._series.seriesSource().turnaround(),i=buildTreeForStudy(this);return buildTurnaround(t,i)}canHaveChildren(){var e;return this._canHaveChildren=null!==(e=this._canHaveChildren)&&void 0!==e?e:m.StudyMetaInfo.canHaveChildren(this._metaInfo),this._canHaveChildren}setChild(e){-1===this._children.indexOf(e)&&this._children.push(e)}unsetChild(e){const t=this._children.indexOf(e);~t&&this._children.splice(t,1)}getAllChildren(){const e=this._children.slice();for(let t=0;te.id()===i)))&&void 0!==t?t:null}return this._series}priceStep(){return this._priceStep||this._firstSourceOrSeries().priceStep(!1)}_incrementTurnaround(){this._turnaround="st"+ ++this._turnaroundCounter}_checkTurnaround(e){return e===this._turnaround||e===this._model.mainSeries().seriesSource().turnaround()||e===this.turnaround(!0)}_createStudyOnServer(){if(this._isDestroyed)return;const e=this._getStudyIdWithLatestVersion();this._studyId=(0,x.makeNextStudyId)(),this._incrementTurnaround(),this._studyName=e;const t=(0,k.clone)((0,n.ensureDefined)(this._inputs));m.StudyMetaInfo.patchSoSInputs(t,(e=>{var t,i;return null!==(i=null===(t=this._sources.find((t=>t.id()===e)))||void 0===t?void 0:t.sourceId())&&void 0!==i?i:null})), this._chartApi.createStudy(this._studyId,this._turnaround,this.isChildStudy()?(0,n.ensureNotNull)(this._sources[0].sourceId()):(0,n.ensureNotNull)(this._series.seriesSource().instanceId()),this._studyName,t,this._handler,this.isChildStudy())}_stopStudyOnServer(){this._chartApi&&this._chartApi.isConnected().value()&&this.isStarted()&&(this._chartApi.removeStudy((0,n.ensureNotNull)(this._studyId),this.isChildStudy()),this._setStatus({type:ot.StudyStatusType.Undefined})),this._studyId=null}_modifyStudyOnServer(e,t){const i=(0,k.clone)((0,n.ensureDefined)(e));m.StudyMetaInfo.patchSoSInputs(i,(e=>{var t,i;return null!==(i=null===(t=this._sources.find((t=>t.id()===e)))||void 0===t?void 0:t.sourceId())&&void 0!==i?i:null})),this._chartApi.modifyStudy((0,n.ensureNotNull)(this._studyId),this._turnaround,i,this._handler,t)}_transformData(e){}_updateMaxOffsetValue(){let e=-1/0;for(const t of this._metaInfo.plots)e=Math.max(this.offset(t.id),e);this._maxOffset.setValue(e)}_rightOffsetToUnixTime(e){if(this._series.bars().size()>=e){const t=(0,n.ensureNotNull)(this._series.bars().lastIndex())-e;return(0,n.ensureNotNull)(this._series.bars().valueAt(t))[0]}return null}_invalidateLastNonEmptyPlotRowCache(){this._lastNonEmptyPlotRowCache={}}_collectDepsForAlert(){throw new Error("Not implemented")}_allInputsAreValid(){for(const e of this._metaInfo.inputs)if("bar_time"===e.type){const t=e.id;if(null==this._properties.childs().inputs.childs()[t].value())return!1}return!0}_startAfterSymbolsResolved(e,t){if(this.isStarted()&&!this._restarting)return;if(!this._sources.some((e=>!(e.isStarted()&&!e.isRestarting())&&(e.onStart().subscribe(this,this._startAfterSymbolsResolved,!0),!0)))&&(this._restarting=!1,this._allInputsAreValid()&&(this._inputs=this._apiInputs(),this._createStudyOnServer(),this._subscribeToSessionId(),this._onStart.fire(),!0===e&&this._children)))for(const e of this._children)e.start(!0,t)}_changeInputsImpl(e,t){var s;const r=this._calcSources();let a=!0;const l=jt(this._metaInfo,e,t);if(r.length!==this._sources.length||r[0]!==this._sources[0])a=this._rebindToSourceOrRestorePreviousValue(null!==(s=r[0])&&void 0!==s?s:this._series,e,t),a&&(this._inputs=e);else{if(this.isStarted()&&this._chartApi.isConnected().value()&&l>0&&!this._chartApi.canCreateStudy(!0)){const s=window.user.pro_plan;createGoProDialog({feature:"studyOnStudy",actions:s&&[ProPlans.ProPremium,ProPlans.ProPremiumTrial].includes(s)?[{text:o.t(null,void 0,i(75139)),action:PredefinedAction.Close}]:void 0});for(const i of this._metaInfo.inputs){if("source"!==i.type)continue;const s=e[i.id].v,r=t[i.id].v;if(s!==r){(0,n.ensureDefined)(this._properties.childs().inputs.child(i.id)).setValue(r)}}return}this._inputs=e;let s=!1;const a=Object.values(D.RangeDependentStudyInputNames);for(const i of Object.keys(e))if(JSON.stringify(e[i])!==JSON.stringify(t[i])&&!a.includes(i)){s=!0;break}this._incrementTurnaround(),s&&this.disablePriceRangeReady(),this._updateParentSources(r,l),this._modifyStudyOnServer(e,l)}this.invalidateTitleCache(),a&&(this._studyModified=a)} -createPriceAxisView(e){return new mt(this,{plotIndex:e})}createPriceLineAxisView(e){return new gt.StudyPriceLineAxisView(this,e)}_createStudyPlotPaneView(e){return new Re.StudyPlotPaneView(this,this._series,this._model,e)}_createViews(){var e,t,i,s;this._priceAxisViewsBase=[],this._priceLinesAxisViews=[],this._paneViews=[],this._labelPaneViews=[];const r=new Set,o=this.metaInfo(),a=Boolean(o.usePlotsZOrder),l=new Map,c=this._properties.childs();if(c.filledAreas&&o.filledAreas)for(let e=0;e{const i=c.bands.childs()[t];if(i&&i.childs().visible.value()){const t=new tt(i,this),s=a?(0,n.ensureDefined)(e.zorder):l.size;Rt(s,l),l.set(s,{paneViews:[t]})}})),c.bandsBackground&&((0,n.assert)(!a,"'usePlotsZOrder' flag does not supported"),l.set(l.size,{paneViews:[new rt(this)]}));const h=this._paneViews;this._createGraphicsPaneViews().then((e=>{for(let t=0;te-t));for(let e=0;e{const i=c.bands.childs()[t];if(i&&i.childs().visible.value()){const t=new tt(i,this),s=a?(0,n.ensureDefined)(e.zorder):l.size;Rt(s,l),l.set(s,{paneViews:[t]})}})),c.bandsBackground&&((0,n.assert)(!a,"'usePlotsZOrder' flag does not supported"),l.set(l.size,{paneViews:[new rt(this)]}));const h=this._paneViews;this._createGraphicsPaneViews().then((e=>{for(let t=0;te-t));for(let e=0;e0){const t=(0,n.ensureNotNull)(this.barColorer()).firstColoredBar(e[0].index);this._model.mainSeries().invalidateBarStylesCache(t)}null!==t&&this._postProcessGraphics();const r=this._model.paneForSource(this);this._model.recalculatePane(r,(0,ct.sourceChangeEvent)({sourceId:this.id(),firstUpdatedTimePointIndex:null!=s?s:void 0})),this._updateSources()}_updateSources(){this._model.updateSource(this),this.hasBarColorer()&&this._model.updateSource(this._model.mainSeries())}_titleInputs(e,t){return this.inputs(this._titleInputsOptions(e,t))}_titleInputsOptions(e,t){return{symbolsForDisplay:!0,skipHiddenInputs:!0,skipFakeInputs:!1,fakeInputsForDisplay:!0,asObject:!1,skippedGroups:[],noExchanges:e,noResolution:t,skipColorInputs:!0,skipTimeInputs:!0,priceInputsForDisplay:!0,skipOptionalEmptySymbolInputs:Dt}}_postProcessGraphics(){ this._graphicsPriceAxisViews=this._createGraphicsPriceAxisViews(),this._concatPriceAxisViews()}async _createGraphicsPaneViews(){return(0,g.createGraphicsPaneViews)(this,this.model())}_createGraphicsPriceAxisViews(){return(0,g.createGraphicsPriceAxisViews)(this)}_subscribeToSessionId(){!this._isSubscribedToSessionId&&this.hasSymbolInputs()&&(this.sessionIdChanged().subscribe(this,this._onSessionIdChanged),this._isSubscribedToSessionId=!0)}_unsubscribeToSessionId(){this._isSubscribedToSessionId&&(this.sessionIdChanged().unsubscribe(this,this._onSessionIdChanged),this._isSubscribedToSessionId=!1)}_onSessionIdChanged(){this.restart(!0)}_title(e,t,i,s){const r=this._titleInParts(e,t,i,s);return this._joinTitlesParts(r)}_formatterByProperties(){const e=this.metaInfo().format,t=this._priceScaleByProperties();if(null!==t)switch(e.type){case"inherit":case"price":return new Tt.PriceFormatter(t);case"volume":return new xt.VolumeFormatter(Math.log10(t));case"percent":return new It.PercentageFormatter(t)}return null}_formatterByMetaInfo(){var e,t;const i=this.metaInfo().format;if("inherit"===i.type)return null;const s=this.series().symbolInfo(),r=(0,k.isNumber)(i.precision)?Math.pow(10,i.precision):void 0;{const s=null!==(t=null===(e=null===Mt.customFormatters||void 0===Mt.customFormatters?void 0:Mt.customFormatters.studyFormatterFactory)||void 0===e?void 0:e.call(Mt.customFormatters,i,this.symbolSource().symbolInfo()))&&void 0!==t?t:null;if(null!==s)return s}switch(i.type){case"price":return new Tt.PriceFormatter(r);case"volume":{let e=i.precision;return void 0===e&&(e=s&&(0,k.isNumber)(s.volume_precision)?s.volume_precision:0),new xt.VolumeFormatter(e)}case"percent":return new It.PercentageFormatter(r);default:return At.logWarn(`Unsupported format type: ${i.type}`),null}}_postProcessPriceRange(e){if(e&&e.minValue()===e.maxValue()&&!this.metaInfo().is_price_study){const t=.005*e.minValue();e=new p.PriceRange(e.minValue()-t,e.maxValue()+t)}const t=this.priceScale();return t&&t.isLog()&&e?new p.PriceRange(t.priceToLogical(e.minValue()),t.priceToLogical(e.maxValue())):e}_joinTitlesParts(e){const t=e[1]?e[1].join(", "):"";return e[0]+(t.length>0?" ("+t+")":"")}_titleInParts(e,t,s,r){var a;const l=this.name(e);t=t||{};const c=[o.t(l,{context:"study"},i(68716))];let h=[];if(!s){const i=this._getMTFResolutionInputTitle();null!==i&&i.length>0&&c.push(i);const s=this.metaInfo(),o=this._titleInputs(r,!0)||[];if(o.length>0){const i={};if(this.isChildStudy())for(let t=0;t=0){const t=this.parentSourceForInput(c);if(t instanceof Gt){const s=t.metaInfo(),n=t.title(e,{},!0,r);if(1===s.plots.length)i[c]=n;else{const e=c.split("$")[1],t=null===(a=s.plots[parseInt(e)])||void 0===a?void 0:a.id,r=s.styles&&s.styles[t],o=r&&r.title||t;i[c]=n+": "+o}}}}h=o.map((e=>{let s=(0,k.isNumber)(e)?this._numericFormatter.format(e):i&&i[e.toString()]||e.toString() ;return t&&t[s.toString()]&&(s=t[s.toString()]),s}))}}return[c.join(" · "),h]}_getMTFResolutionInputTitle(){const e=this.metaInfo();for(let t=0;ts),(()=>s)).then(this._onDataUnpacked.bind(this,e,t.indexes,i)),this._ongoingDataUpdate}_mergeData(e){return this._invalidateLastNonEmptyPlotRowCache(),this.data().merge(e)}_getSymbolForResolve(e){return this.getSymbolString(this._getSymbolForApi(e))}_allSymbolsAreResolved(){const e=this.metaInfo(),t=[];let i=!1;for(let s=0;sthis._symbolsResolved.fire())):e}return Promise.all(t).catch((e=>(this._setStatus({type:ot.StudyStatusType.Error,errorDescription:{error:Lt}}),this.stop(!0),this._model.updateSource(this),Promise.reject("Invalid symbol, "+e)))).then((()=>{null!==this._studyId&&this.stop(!0),this.start(!0),this._symbolsResolved.fire(),this._recheckLineToolsActuality()}))}_getSymbolForApi(e){return e}_resolveSymbol(e,t){if(""===e)return Promise.resolve();let i=this._pendingResolveSymbols.get(e);return void 0!==i||(i=new Promise(((i,s)=>{this._onSymbolResolvingStart(),this._chartApi.resolveSymbol((0,x.makeNextSymbolId)(),e,(r=>{switch(this._pendingResolveSymbols.delete(e),r.method){case"symbol_resolved":this._setStatus({type:ot.StudyStatusType.Undefined}),this._resolvedSymbols[e]=r.params[1],this._resolvedSymbolsByInput[t]=r.params[1],this._onSymbolResolved(e,t,r.params[1]),this.invalidateTitleCache(!0),i();break;case"symbol_error":if(this._setStatus({type:ot.StudyStatusType.Error,errorDescription:{error:r.params[1]}}),this._onSymbolError(),r.params[1]===I.permissionDenied&&r.params[2]){if(r.params[2]!==I.SymbolErrorPermissionDeniedReason.Symbol)return void this._resolveSymbol(r.params[2],t).then(i);if(r.params[3])return void this._resolveSymbol(r.params[3],t).then(i)}0,s()}}))})),this._pendingResolveSymbols.set(e,i)),i}_recheckLineToolsActuality(){const e=this._model.paneForSource(this);null!==e&&e.sourcesByGroup().lineSourcesForAllSymbols().forEach((e=>{e.ownerSource()===this&&e.calcIsActualSymbol()}))}_getSymbolObject(e){const t={symbol:e},i=this.currency() @@ -768,11 +769,11 @@ this._showSeriesOHLC=t.properties().childs().paneProperties.childs().legendPrope o.isConvertedToOtherCurrency)(this.symbolInfo())}unit(){return this.properties().childs().unitId.value()||null}setUnit(e){this.setSymbolParams({unit:e})}isConvertedToOtherUnit(){return(0,o.isConvertedToOtherUnit)(this.symbolInfo(),this._model.unitConversionEnabled())}style(){return 2}setStyle(e){}interval(){return this._model.mainSeries().interval()}setInterval(e){}symbolSource(){return this}state(e,t){const i=super.state(e,t);return this._model.unitConversionEnabled()||delete i.state.unitId,e&&((0,s.ensureDefined)(i.data).symbols={___snapshot:this.symbolInfo()||void 0}),i}symbolTitle(e,t){return this.title(!0,{},!1,e)}titleInParts(e,t,i,s){var r;const n=this._titleInParts(e,t,i,s),o=[n[0],...null!==(r=n[1])&&void 0!==r?r:[]].join(", ");return[V?o.toUpperCase():o]}tags(){const e=this.symbol();return e?[e]:[]}statusView(){return R?super.statusView():null}guiPlotName(e){return this.properties().childs().inputs.childs().symbol.value()}canOverrideMinTick(){return!0}canBeHiddenByGlobalFlag(){return!1}valuesProvider(){return new w(this,this.model())}statusProvider(e){return new A(this,this._model.properties().childs().scalesProperties.childs().textColor)}measureUnitId(){return(0,o.measureUnitId)(this.symbolInfo())}_createViews(){this._legendView||(this._legendView=new T(this,this._model)),this._dataWindowView||(this._dataWindowView=new C(this,this._model)),this._statusView||(this._statusView=new x.StudyStatusView(this)),super._createViews()}_showLastValueOnPriceScale(){return this._model.properties().childs().scalesProperties.childs().showSeriesLastValue.value()}_onUnitChanged(){"alwaysOff"!==(0,r.currencyUnitVisibilityProperty)().value()&&this._model.fullUpdate(),this._model.unitConversionEnabled()&&this.isStarted()&&this._tryChangeInputs(),this._unitChanged.fire()}_getSymbolObject(e){const t=super._getSymbolObject(e),i=this.currency();null!==i&&(t["currency-id"]=i);const s=this.unit();return this._model.unitConversionEnabled()&&null!==s&&(t["unit-id"]=s),t}_getSymbolForApi(e){return(0,o.symbolForApi)(this._resolvedSymbolsByInput[e]||null,e)}_onSymbolResolvingStart(){super._onSymbolResolvingStart(),this._symbolResolvingActive.setValue(!0)}_onSymbolError(){super._onSymbolError(),this._symbolResolvingActive.setValue(!1)}_onSymbolResolved(e,t,i){super._onSymbolResolved(e,t,i),this._recreatePriceFormattingDependencies();const s=t===this.symbol()?(0,o.extractSymbolNameFromSymbolInfo)(i,this.symbol()):null,r=(0,o.symbolCurrency)(i),n=(0,o.symbolUnit)(i,this._model.unitConversionEnabled());this._setSymbolCurrencyUnitInternal({symbol:null!=s?s:void 0,currency:r,unit:n},i),this._symbolResolvingActive.setValue(!1)}_changeInputsImpl(e,t){super._changeInputsImpl(e,t),this._realignLineToolsIfParamsChanged()}_createStudyOnServer(){super._createStudyOnServer(),this._realignLineToolsIfParamsChanged()}_tryCreateFormatter(){var e,t ;const i=null!==(t=null===(e=null===I.customFormatters||void 0===I.customFormatters?void 0:I.customFormatters.priceFormatterFactory)||void 0===e?void 0:e.call(I.customFormatters,this.symbolInfo(),this.properties().childs().minTick.value()))&&void 0!==t?t:null;return null!==i?i:(0,o.createSeriesFormatter)(this.symbolInfo(),this.properties().childs().minTick.value())}_titleInParts(e,t,i,s){const r=this.symbolInfo();return[this._getSymbolTitlePart(r),[this._getExchangeTitlePart(r,s),this._getPriceSourceTitlePart(r)].filter((e=>null!==e))]}_getSymbolTitlePart(e){var t;if(null===e)return N?"":this.properties().childs().inputs.childs().symbol.value();const i=(0,o.getStudySymbolExchange)(e);if(B&&void 0!==i)return i;if(D)switch(this._model.mainSeries().symbolTextSourceProxyProperty().value()){case"description":return e.description;case"ticker-and-description":return`${e.name}, ${e.description}`;case"long-description":return null!==(t=e.long_description)&&void 0!==t?t:e.description}return e.name}_getExchangeTitlePart(e,t){var i;return null===e||t?null:null!==(i=(0,o.getStudySymbolExchange)(e))&&void 0!==i?i:null}_getPriceSourceTitlePart(e){var t;return O&&!1!==this._model.properties().childs().paneProperties.childs().legendProperties.childs().showPriceSource.value()&&void 0!==(null==e?void 0:e.price_source_id)&&null!==(t=this._model.availablePriceSources().name(e.price_source_id))&&void 0!==t?t:null}_setSymbolCurrencyUnitInternal(e,t){const{symbol:i,currency:s,unit:r}=e,n=this.properties().childs(),a=n.inputs.childs().symbol.value(),l=n.currencyId.value(),c=n.unitId.value();if(void 0!==i&&i!==a&&n.inputs.childs().symbol.setValueSilently(i),void 0!==s&&s!==l&&n.currencyId.setValueSilently(s),void 0!==r&&r!==c&&n.unitId.setValueSilently(r),t)this._resolvedSymbolsByInput[this.symbol()]=t,this._resolvedSymbols[this._getSymbolForResolve(this.symbol())]=t,this._realignToolsLastParams=null;else{const e=this.symbolInfo();null!==e&&(n.currencyId.setValueSilently((0,o.symbolCurrency)(e)),n.unitId.setValueSilently((0,o.symbolUnit)(e,this._model.unitConversionEnabled())))}n.inputs.childs().symbol.value()!==a&&n.inputs.childs().symbol.listeners().fire(n.inputs.childs().symbol),n.currencyId.value()!==l&&n.currencyId.listeners().fire(n.currencyId),n.unitId.value()!==c&&n.unitId.listeners().fire(n.unitId),this._realignLineToolsIfParamsChanged()}_realignLineToolsIfParamsChanged(){const e=this.symbol(),t=this.interval(),i=this.currency(),s=this.unit();null!==this._realignToolsLastParams&&this._realignToolsLastParams.symbol===e&&this._realignToolsLastParams.interval===t&&this._realignToolsLastParams.currency===i&&this._realignToolsLastParams.unit===s||(this._model.realignLineTools(this),this._realignToolsLastParams={symbol:e,interval:t,currency:i,unit:s})}}},51182:(e,t,i)=>{"use strict";i.d(t,{StudyOverlayBase:()=>me}) ;var s=i(50151),r=i(49483),n=i(98351),o=i(68927),a=i(98799),l=i(35624),c=i(22770),h=i(1930),d=i(26220),u=i.n(d),p=i(91035),_=i(2484),m=i(54168),g=i(90854),f=i(77213),v=i(92133),S=i(88552),y=i(33639),b=i(65665),w=i(23304),P=i(40549),C=i.n(P),T=i(69145),x=i(97425),I=i(66019),M=i(74234),A=i(67876),L=i(99846),k=i(1194),E=i(38031);const D=_.enabled("force_exchange_as_title");class B extends A.PriceAxisView{constructor(e){super(),this._source=e}_updateRendererData(e,t,i){e.visible=!1,t.visible=!1;const r=this._source.lastValueData("close",!1);if(r.noData)return;const n=this._source.model(),o=this._source.priceScale();if(null===o)return;if(!n.isPriceScaleVisible(o))return;const a=n.timeScale().visibleBarsStrictRange(),l=n.mainSeries().bars().lastIndex();if(null===a||null===l)return;if(l<=a.lastBar())i.background=(0,E.resetTransparency)(r.color),i.textColor=this.generateTextColor(r.color),e.borderVisible=!1,t.borderVisible=!1;else{const o=n.backgroundColorAtYPercentFromTop(r.coordinate/(0,s.ensureNotNull)(n.paneForSource(this._source)).height());i.background=o,i.textColor=(0,E.resetTransparency)(r.color),i.borderColor=i.textColor,e.borderVisible=!0,t.borderVisible=!0}i.coordinate=r.coordinate,i.floatCoordinate=r.floatCoordinate;const c=this._source.model().properties().childs().scalesProperties.childs();c.showSeriesLastValue.value()&&(e.text=(0,k.getCurrentModePriceText)(o,r),c.seriesLastValueMode.value()!==L.PriceAxisLastValueMode.LastPriceAndPercentageValue?e.secondLine="":e.secondLine=(0,k.getOppositeModePriceText)(o,r),e.visible=!0),t.text="",c.showSymbolLabels.value()&&(t.text=this._paneText(),t.visible=t.text.length>0)}_paneText(){let e="";const t=this._source.symbolInfo();return D?e=(0,h.displayedSymbolExchange)(t):this._source.model().properties().childs().scalesProperties.childs().showSymbolLabels.value()&&(e=(0,h.displayedSymbolName)(t)),e}}var V=i(45703);class R extends V.PriceLineAxisView{constructor(e){super(),this._study=e}_value(){return this._study.lastValueData("",!0)}_priceLineColor(e){return e}_lineWidth(){return 1}_isVisible(){const e=this._study.model().properties().childs().scalesProperties.childs().showSeriesLastValue.value();return this._study.properties().childs().showPriceLine.value()&&e}}var N=i(53479),O=i(2945);class F{constructor(e){this._lineRenderer=new O.HorizontalLineRenderer,this._visible=!1,this._source=e}update(){if(this._visible=!1,!this._source.properties().childs().showPriceLine.value())return;const e=this._source.lastValueData("",!0);e.noData||(this._visible=!0,this._lineRenderer.setData({y:e.coordinate,color:e.color,linewidth:1,linestyle:N.LINESTYLE_DOTTED,visible:this._visible}))}renderer(){return this._visible?this._lineRenderer:null}}var W=i(50335),H=i(95790),z=i(28667),U=i(76076),j=i(43312);const G=r.CheckMobile.any();class q extends H.DataWindowView{constructor(e,t){super(),this._invalidated=!0,this._study=e,this._model=t,this._valueProvider=this._createValuesProvider(e,t),this._items=this._valueProvider.getItems().map((e=>new H.DataWindowItem(e.id,e.title,""))),this.update()} -items(){return this._invalidated&&(this._updateImpl(),this._invalidated=!1),this._items}update(){this._invalidated=!0}study(){return this._study}_updateImpl(){var e,t;this._header=this._study.title();let i;this._showLastPriceAndChangeOnly()?i=this._study.data().lastIndex():(i=this._model.crossHairSource().appliedIndex(),_.enabled("use_last_visible_bar_value_in_legend")&&!(0,W.isNumber)(i)&&(i=null!==(t=null===(e=this._model.timeScale().visibleBarsStrictRange())||void 0===e?void 0:e.lastBar())&&void 0!==t?t:NaN));const s=this._valueProvider.getValues(i);for(let e=0;ee||t),i.showBarChange,i.showSeriesOHLC),this._visibilityProperty.subscribe(this,this.update)}areValuesVisible(){return this._visibilityProperty.value()}additional(){return this._additional}destroy(){this._backgroundColorSpawn.destroy(),this._visibilityProperty.destroy()}_updateImpl(){super._updateImpl()}_createValuesProvider(e,t){return new $.OverlayLegendValuesProvider(e,t)}}var X=i(64636),Z=i(83438),J=i(15381),Q=i(9657),ee=i(36767),te=i(14224),ie=i(73436),se=i(78201),re=i(16199),ne=i(2250);const oe=r.CheckMobile.any()&&!1,ae=_.enabled("uppercase_instrument_names"),le=_.enabled("study_overlay_compare_legend_option"),ce=_.enabled("secondary_series_extend_time_scale"),he=_.enabled("hide_unresolved_symbols_in_legend"),de=!_.enabled("hide_study_overlay_legend_item"),ue=_.enabled("symbol_info_price_source"),pe=(0,n.getLogger)("Chart.StudyOverlay");function _e(e,t){return null==e[t]}class me extends o.Study{constructor(e,t,i,s){super(e,function(e){return e.hasChild("currencyId")||e.addChild("currencyId",new(u())(null)),e.hasChild("unitId")||e.addChild("unitId",new(u())(null)),e.addExclusion("currencyId"),e.addExclusion("unitId"),e}(t),i,s),this._quotesProvider=new m.QuotesProvider,this._seriesSource=null,this._symbolResolvingActive=new(C())(!1),this._symbolHibernated=new(C())(!1),this._styleToRecover=null,this._isActingAsSymbolSource=new(C())(!0),this._realignToolsLastParams=null,this._precomputedBarStyles=new WeakMap,this.m_data=new S.PlotList((0,c.seriesPlotFunctionMap)(),_e),oe&&this._quotesProvider.quotesUpdate().subscribe(this,this._onQuotesUpdate);const r=this.properties().childs();r.currencyId.subscribe(this,this._onCurrencyChanged),r.unitId.subscribe(this,this._onUnitChanged), +items(){return this._invalidated&&(this._updateImpl(),this._invalidated=!1),this._items}update(){this._invalidated=!0}study(){return this._study}_updateImpl(){var e,t;this._header=this._study.title();let i;this._showLastPriceAndChangeOnly()?i=this._study.data().lastIndex():(i=this._model.crossHairSource().appliedIndex(),_.enabled("use_last_visible_bar_value_in_legend")&&!(0,W.isNumber)(i)&&(i=null!==(t=null===(e=this._model.timeScale().visibleBarsStrictRange())||void 0===e?void 0:e.lastBar())&&void 0!==t?t:NaN));const s=this._valueProvider.getValues(i);for(let e=0;ee||t),i.showBarChange,i.showSeriesOHLC),this._visibilityProperty.subscribe(this,this.update)}areValuesVisible(){return this._visibilityProperty.value()}additional(){return this._additional}destroy(){this._backgroundColorSpawn.destroy(),this._visibilityProperty.destroy()}_updateImpl(){super._updateImpl()}_createValuesProvider(e,t){return new $.OverlayLegendValuesProvider(e,t)}}var Z=i(64636),X=i(83438),J=i(15381),Q=i(9657),ee=i(36767),te=i(14224),ie=i(73436),se=i(78201),re=i(16199),ne=i(2250);const oe=r.CheckMobile.any()&&!1,ae=_.enabled("uppercase_instrument_names"),le=_.enabled("study_overlay_compare_legend_option"),ce=_.enabled("secondary_series_extend_time_scale"),he=_.enabled("hide_unresolved_symbols_in_legend"),de=!_.enabled("hide_study_overlay_legend_item"),ue=_.enabled("symbol_info_price_source"),pe=(0,n.getLogger)("Chart.StudyOverlay");function _e(e,t){return null==e[t]}class me extends o.Study{constructor(e,t,i,s){super(e,function(e){return e.hasChild("currencyId")||e.addChild("currencyId",new(u())(null)),e.hasChild("unitId")||e.addChild("unitId",new(u())(null)),e.addExclusion("currencyId"),e.addExclusion("unitId"),e}(t),i,s),this._quotesProvider=new m.QuotesProvider,this._seriesSource=null,this._symbolResolvingActive=new(C())(!1),this._symbolHibernated=new(C())(!1),this._styleToRecover=null,this._isActingAsSymbolSource=new(C())(!0),this._realignToolsLastParams=null,this._precomputedBarStyles=new WeakMap,this.m_data=new S.PlotList((0,c.seriesPlotFunctionMap)(),_e),oe&&this._quotesProvider.quotesUpdate().subscribe(this,this._onQuotesUpdate);const r=this.properties().childs();r.currencyId.subscribe(this,this._onCurrencyChanged),r.unitId.subscribe(this,this._onUnitChanged), r.allowExtendTimeScale.subscribe(this,this._onAllowExtendTimeScaleChanged),this._onAllowExtendTimeScaleChanged(),r.style.subscribe(this,this._onChartStyleChanged),r.lineStyle.childs().priceSource.subscribe(this,this._updateBarFunction),r.areaStyle.childs().priceSource.subscribe(this,this._updateBarFunction),r.baselineStyle.childs().priceSource.subscribe(this,this._updateBarFunction),r.columnStyle.childs().priceSource.subscribe(this,this._updateBarFunction),this._updateBarFunction(),this._formatter=null,e.mainSeries().onIntervalChanged().subscribe(this,(()=>e.realignLineTools(this)))}destroy(){this._model.mainSeries().onIntervalChanged().unsubscribeAll(this),super.destroy()}isActingAsSymbolSource(){return this._isActingAsSymbolSource.readonly()}precomputedBarStyle(e){return this._precomputedBarStyles.get(e)}setPrecomputedBarStyle(e,t){this._precomputedBarStyles.set(e,t)}properties(){return this._properties}barColorer(){return new ne.SeriesBarColorer(this)}setSymbolParams(e){this._setSymbolParamsInternal(e)}symbol(){return this.properties().childs().inputs.childs().symbol.value()}setSymbol(e){this.setSymbolParams({symbol:e})}symbolInfo(){if(!this._resolvedSymbols)return null;const e=this._properties.childs().inputs.childs().symbol.value();if(!e)return null;let t;return t=this._resolvedSymbols[this._getSymbolForResolve(e)]||null,t}supportsPressedChunks(){return!1}pressedChunks(e,t){throw new Error("Pressed chunks are not supported")}data(){return null===this._seriesSource?super.data():this._seriesSource.data().bars()}symbolResolved(){return this.symbolsResolved()}symbolResolvingActive(){return this._symbolResolvingActive}symbolHibernated(){return this._symbolHibernated}isVisible(){const e=super.isVisible();return this._symbolHibernated.setValue(!e),e}symbolSameAsCurrent(e){return(0,g.symbolSameAsCurrent)(e,this.symbolInfo())}priceSource(){const e=this.properties().childs();switch(e.style.value()){case 2:return e.lineStyle.childs().priceSource.value();case 3:return e.areaStyle.childs().priceSource.value();case 10:return e.baselineStyle.childs().priceSource.value();case 13:return e.columnStyle.childs().priceSource.value()}return null}barFunction(){return this._barFunction}quotes(){return this._quotesProvider.quotes()}currency(){return this.properties().childs().currencyId.value()||null}setCurrency(e){this.setSymbolParams({currency:e})}isConvertedToOtherCurrency(){return(0,h.isConvertedToOtherCurrency)(this.symbolInfo())}unit(){return this.properties().childs().unitId.value()||null}setUnit(e){this.setSymbolParams({unit:e})}isConvertedToOtherUnit(){return(0,h.isConvertedToOtherUnit)(this.symbolInfo(),this._model.unitConversionEnabled())}style(){return this.properties().childs().style.value()}setStyle(e){this.setSymbolParams({style:e})}interval(){return this._model.mainSeries().interval()}setInterval(e){}symbolSource(){return this}barsProvider(){return this}state(e,t){const i=super.state(e,t);return this._model.unitConversionEnabled()||delete i.state.unitId,e&&((0,s.ensureDefined)(i.data).symbols={ ___snapshot:this.symbolInfo()||void 0}),i}symbolTitle(e,t){return this.title(!0,{},!1,e)}title(e,t,i,s){var r;const n=this._titleInParts(e,t,i,s),o=[n[0],...null!==(r=n[1])&&void 0!==r?r:[]].join(", ");return ae?o.toUpperCase():o}titleInParts(e,t,i,s){return[this.title(e,t,i,s)]}isStarted(){return null===this._seriesSource?super.isStarted():this._seriesSource.isStarted()}sourceId(){return null===this._seriesSource?super.sourceId():(0,s.ensureNotNull)(this._seriesSource.instanceId())}moveData(e){null===this._seriesSource?super.moveData(e):this._seriesSource.moveData(e)}firstValue(){const e=this._model.timeScale().visibleBarsStrictRange();if(null===e)return null;const t=e.firstBar();if(0===this.data().size())return this._ownFirstValue;const i=this.data().search(t,y.PlotRowSearchMode.NearestRight,1);return this._ownFirstValue=null!==i?this._barFunction(i.value,0):null,this._ownFirstValue}lastValueData(e,t,i){const s={noData:!0},r=this.priceScale();if(this._model.timeScale().isEmpty()||null===r||r.isEmpty()||this.data().isEmpty())return s;const n=this._model.timeScale().visibleBarsStrictRange();if(null===n)return s;const o=this.properties().childs();if(!o.visible.value())return s;const a=this.nearestIndex(n.lastBar(),y.PlotRowSearchMode.NearestLeft,1);if(void 0===a)return s;const l=this.firstValue();if(null===l)return s;const c=this._lastNonEmptyPlotRow(4),h=null!==c&&n.contains(c.index),d=null!==c?c.value:null,u=t||h?d:this.data().valueAt(a);if(null===u)return s;const p=this._barFunction(u,2);if(!(0,b.isNumber)(p))return s;const _=r.priceToCoordinate(p,l);let m;switch(o.style.value()){case 0:m=u[1]<=u[4]?o.barStyle.childs().upColor.value():o.barStyle.childs().downColor.value();break;case 1:case 9:m=u[1]<=u[4]?o.candleStyle.childs().upColor.value():o.candleStyle.childs().downColor.value();break;case 13:m=u[1]<=u[4]?o.columnStyle.childs().upColor.value():o.columnStyle.childs().downColor.value();break;case 2:m=o.lineStyle.childs().color.value();break;case 3:m=o.areaStyle.childs().color1.value();break;case 10:{const e=o.baselineStyle.childs();m=_(0,s.ensureNotNull)(this.priceScale()).height(),color:()=>e.baselineColor.value(),baseLevelPercentage:()=>e.baseLevelPercentage.value()});break}case 12:r=new re.SeriesHiLoPaneView(this,this._model)}r&&this._paneViews.push(r),null!==i&&this._paneViews.push(i),this._paneViews.push(new F(this)),this._dataWindowView||(this._dataWindowView=new q(this,this._model)),this._legendView||(this._legendView=new K(this,this._model)),this._statusView||(this._statusView=new I.StudyStatusView(this)),this._priceAxisViews=[...this._priceAxisViewsBase],this._labelPaneViews.push(new X.PanePriceAxisView(e,this,this._model))}_createStudyOnServer(){null===this._seriesSource?super._createStudyOnServer():this._modifyStudyOnServer((0,s.ensureDefined)(this._inputs)),this._realignLineToolsIfParamsChanged()}_modifyStudyOnServer(e){null===this._seriesSource?super._modifyStudyOnServer(e,0):(this._seriesSource.modifySeries((0,p.decodeExtendedSymbol)(e.symbol),(0,v.getServerInterval)(this._series.properties().childs().interval.value())),this._seriesSource.isStarted()||this._seriesSource.start())}_stopStudyOnServer(){null===this._seriesSource?super._stopStudyOnServer():this._seriesSource.stop()}_titleInParts(e,t,i,s){const r=this.symbolInfo();return[this._getSymbolTitlePart(r),[this._getExchangeTitlePart(r,s),this._getPriceSourceTitlePart(r)].filter((e=>null!==e))]}_getSymbolTitlePart(e){var t;if(null===e)return he?"":this.properties().childs().inputs.childs().symbol.value();if(le)switch(this._model.mainSeries().symbolTextSourceProxyProperty().value()){case"description":return e.description;case"ticker-and-description":return`${e.name}, ${e.description}`;case"long-description":return null!==(t=e.long_description)&&void 0!==t?t:e.description}return e.name}_getExchangeTitlePart(e,t){var i;return null===e||t?null:null!==(i=(0,h.getStudySymbolExchange)(e))&&void 0!==i?i:null}_getPriceSourceTitlePart(e){var t;return ue&&!1!==this._model.properties().childs().paneProperties.childs().legendProperties.childs().showPriceSource.value()&&void 0!==(null==e?void 0:e.price_source_id)&&null!==(t=this._model.availablePriceSources().name(e.price_source_id))&&void 0!==t?t:null}_onAllowExtendTimeScaleChanged(){const e=this.isStarted();if(e&&this.stop(!0), +_createViews(){this._priceAxisViews=[];const e=new B(this);this._priceAxisViewsBase=[e];const t=new R(this);this._priceLinesAxisViews=[t],this._paneViews=[],this._labelPaneViews=[];let i=null,r=null;switch(this.properties().childs().style.value()){case 0:r=new X.SeriesBarsPaneView(this,this._model);break;case 1:r=new J.SeriesCandlesPaneView(this,this._model);break;case 9:r=new ie.SeriesHollowCandlesPaneView(this,this._model);break;case 13:r=new se.SeriesColumnsPaneView(this,this._model);break;case 2:r=new Q.SeriesLinePaneView(this,this._model);break;case 3:r=new ee.SeriesAreaPaneView(this,this._model);break;case 10:{r=new te.SeriesBaselinePaneView(this,this._model);const e=this.properties().childs().baselineStyle.childs();i=new M.SeriesWaterlinePaneView({paneHeight:()=>(0,s.ensureNotNull)(this.priceScale()).height(),color:()=>e.baselineColor.value(),baseLevelPercentage:()=>e.baseLevelPercentage.value()});break}case 12:r=new re.SeriesHiLoPaneView(this,this._model)}r&&this._paneViews.push(r),null!==i&&this._paneViews.push(i),this._paneViews.push(new F(this)),this._dataWindowView||(this._dataWindowView=new q(this,this._model)),this._legendView||(this._legendView=new K(this,this._model)),this._statusView||(this._statusView=new I.StudyStatusView(this)),this._priceAxisViews=[...this._priceAxisViewsBase],this._labelPaneViews.push(new Z.PanePriceAxisView(e,this,this._model))}_createStudyOnServer(){null===this._seriesSource?super._createStudyOnServer():this._modifyStudyOnServer((0,s.ensureDefined)(this._inputs)),this._realignLineToolsIfParamsChanged()}_modifyStudyOnServer(e){null===this._seriesSource?super._modifyStudyOnServer(e,0):(this._seriesSource.modifySeries((0,p.decodeExtendedSymbol)(e.symbol),(0,v.getServerInterval)(this._series.properties().childs().interval.value())),this._seriesSource.isStarted()||this._seriesSource.start())}_stopStudyOnServer(){null===this._seriesSource?super._stopStudyOnServer():this._seriesSource.stop()}_titleInParts(e,t,i,s){const r=this.symbolInfo();return[this._getSymbolTitlePart(r),[this._getExchangeTitlePart(r,s),this._getPriceSourceTitlePart(r)].filter((e=>null!==e))]}_getSymbolTitlePart(e){var t;if(null===e)return he?"":this.properties().childs().inputs.childs().symbol.value();if(le)switch(this._model.mainSeries().symbolTextSourceProxyProperty().value()){case"description":return e.description;case"ticker-and-description":return`${e.name}, ${e.description}`;case"long-description":return null!==(t=e.long_description)&&void 0!==t?t:e.description}return e.name}_getExchangeTitlePart(e,t){var i;return null===e||t?null:null!==(i=(0,h.getStudySymbolExchange)(e))&&void 0!==i?i:null}_getPriceSourceTitlePart(e){var t;return ue&&!1!==this._model.properties().childs().paneProperties.childs().legendProperties.childs().showPriceSource.value()&&void 0!==(null==e?void 0:e.price_source_id)&&null!==(t=this._model.availablePriceSources().name(e.price_source_id))&&void 0!==t?t:null}_onAllowExtendTimeScaleChanged(){const e=this.isStarted();if(e&&this.stop(!0), ce&&this.properties().childs().allowExtendTimeScale.value()){this._seriesSource=new f.SeriesDataSource(this._model.chartApi(),"st_o_");const e=this._seriesSource.dataEvents();e.seriesError().subscribe(this,(e=>{this._onStudyError(this._convertSeriesErrorToStudy(e))})),e.loading().subscribe(this,this._onStudyLoading),e.completed().subscribe(this,(e=>{this._onStudyCompleted(e.time)})),e.dataUpdated().subscribe(this,(()=>{this._studyModified=!1;const e=this._model.paneForSource(this);this._model.recalculatePane(e,(0,x.sourceChangeEvent)(this.id())),this._updateSources(),this.priceRangeReady()||this._enablePriceRangeReady()}))}else{if(null!==this._seriesSource){const e=this._seriesSource.dataEvents();e.seriesError().unsubscribeAll(this),e.loading().unsubscribeAll(this),e.completed().unsubscribeAll(this),e.dataUpdated().unsubscribeAll(this),this._seriesSource.destroy()}this._seriesSource=null}e&&this.start(!0)}_convertSeriesErrorToStudy(e){return{error:e.error,ctx:e.ctx,solution_id:e.solution_id}}_setSymbolParamsInternal(e,t){const{symbol:i,currency:s,unit:r,style:n}=e,o=this.properties().childs(),a=o.inputs.childs().symbol.value(),l=o.currencyId.value(),c=o.unitId.value(),d=o.style.value();if(void 0!==i&&i!==a&&o.inputs.childs().symbol.setValueSilently(i),void 0!==s&&s!==l&&o.currencyId.setValueSilently(s),void 0!==r&&r!==c&&o.unitId.setValueSilently(r),void 0!==n&&o.style.setValueSilently(n),t)this._resolvedSymbolsByInput[this.symbol()]=t,this._resolvedSymbols[this._getSymbolForResolve(this.symbol())]=t,this._realignToolsLastParams=null;else{const e=this.symbolInfo();null!==e&&(o.currencyId.setValueSilently((0,h.symbolCurrency)(e)),o.unitId.setValueSilently((0,h.symbolUnit)(e,this._model.unitConversionEnabled())))}o.inputs.childs().symbol.value()!==a&&o.inputs.childs().symbol.listeners().fire(o.inputs.childs().symbol),o.currencyId.value()!==l&&o.currencyId.listeners().fire(o.currencyId),o.unitId.value()!==c&&o.unitId.listeners().fire(o.unitId),o.style.value()!==d&&o.style.listeners().fire(o.style),this._checkStyle(),this._realignLineToolsIfParamsChanged()}_updateBarFunction(){this._barFunction=(0,a.barFunctionByStyle)(this.style(),this.priceSource())}_onChartStyleChanged(){var e;this._updateBarFunction(),(null===(e=this._styleToRecover)||void 0===e?void 0:e.originalStyle)!==this.style()&&(this._styleToRecover=null)}_checkStyle(){const e=this.style();(0,h.isCloseBasedSymbol)(this.symbolInfo())?(0,h.isSingleValueBasedStyle)(e)||(this.setStyle(2),this._styleToRecover={correctedStyle:this.style(),originalStyle:e}):null!==this._styleToRecover&&(this.setStyle(this._styleToRecover.originalStyle),this._styleToRecover=null)}_realignLineToolsIfParamsChanged(){const e=this.symbol(),t=this.interval(),i=this.currency(),s=this.unit();null!==this._realignToolsLastParams&&this._realignToolsLastParams.symbol===e&&this._realignToolsLastParams.interval===t&&this._realignToolsLastParams.currency===i&&this._realignToolsLastParams.unit===s||(this._model.realignLineTools(this),this._realignToolsLastParams={symbol:e,interval:t,currency:i, unit:s})}}},1140:(e,t,i)=>{"use strict";i.d(t,{applyOverridesToStudy:()=>c,applyOverridesToStudyDefaults:()=>h});var s=i(50151),r=i(83421);const n=(0,i(98351).getLogger)("Chart.Model.StudyPropertiesOverrider");var o,a;function l(e,t,i,s){const r=i.split(".");if(0===r.length||0===r[0].length)return;const l=function(e){const t=e.split(":");return{name:t[0],type:2===t.length?t[1]:null}}(r[0]),c=l.name,h=l.type,d=null!==h,u=!d||"band"===h,p=!d||"area"===h,_=!d||"input"===h,m=!d||"plot"===h?a.getPlotIdByTitle(e,c):null,g=u?a.getBandIndexByName(e,c):null,f=p?a.getFilledAreaIdByTitle(e,c):null,v=_?a.getInputByName(e,c):null,S=t.hasOwnProperty(c);if((null!==m?1:0)+(null!==g?1:0)+(null!==f?1:0)+(null!==v?1:0)+(S?1:0)>1)return void n.logWarn(`Study '${e.description}' has ambiguous identifier '${c}'`);const y=r[1];if(null!==m){if(1===r.length)return void n.logWarn(`Path of sub-property of '${c}' plot for study '${e.description}' must be not empty`);const i=r.slice(1);o.applyPlotProperty(e,t,m,i,s)}else if(null!==v)o.applyInputValue(t,v,s);else if(null!==g){if(void 0===y)return void n.logWarn(`Property name of '${c}' band for study '${e.description}' must be set`);o.applyBandProperty(t,g,y,s)}else if(null!==f){if(void 0===y)return void n.logWarn(`Property name of '${c}' area for study '${e.description}' must be set`);o.applyFilledAreaProperty(t,f,y,s)}else S?o.setRootProperty(t,r,s):n.logWarn(`Study '${e.description}' has no plot or input '${c}'`)}function c(e,t){const i=e.properties(),s=i.state();for(const i in t)t.hasOwnProperty(i)&&l(e.metaInfo(),s,i,t[i]);i.mergeAndFire(s)}function h(e,t,i){for(const s in e){if(!e.hasOwnProperty(s))continue;const r=s.indexOf(".");if(-1===r)continue;const o=s.substring(0,r),c=a.getMetaInfoByDescription(t,o);if(null===c){n.logWarn(`There is no such study ${o}`);continue}const h=i(c);null!==h?l(c,h,s.substring(r+1),e[s]):n.logWarn(`Cannot apply overrides for study ${o}`)}}!function(e){const t={line:r.LineStudyPlotStyle.Line,histogram:r.LineStudyPlotStyle.Histogram,cross:r.LineStudyPlotStyle.Cross,area:r.LineStudyPlotStyle.Area,columns:r.LineStudyPlotStyle.Columns,circles:r.LineStudyPlotStyle.Circles,line_with_breaks:r.LineStudyPlotStyle.LineWithBreaks,area_with_breaks:r.LineStudyPlotStyle.AreaWithBreaks,step_line:r.LineStudyPlotStyle.StepLine,step_line_with_breaks:r.LineStudyPlotStyle.StepLineWithBreaks};e.applyPlotProperty=function(e,i,o,a,l){if(void 0===i.styles)return void n.logWarn("Study does not have styles");const c=a[0];if("color"===c){const t=function(e,t,i){if(void 0===e.plots)return null;for(const s of e.plots){if(!(0,r.isPaletteColorerPlot)(s)||void 0===t.palettes)continue;const e=t.palettes[s.palette];if(s.target===i&&void 0!==e)return e}return null}(e,i,o);return void function(e,t,i,r,o){var a;void 0!==e.styles?null===t&&!isNaN(r)&&r>0?n.logWarn(`Study plot does not have color #${r}`):((0===r||isNaN(r))&&((0,s.ensureDefined)(e.styles[i]).color=String(o),r=0),null!==t&&((0, s.ensureDefined)(null===(a=t.colors)||void 0===a?void 0:a[r]).color=String(o))):n.logWarn("Study does not have styles")}(i,t,o,a.length>1?parseInt(a[1]):NaN,l)}const h=i.styles[o];if(void 0!==h&&h.hasOwnProperty(c)){if("plottype"===c){const e=t[String(l)];if(void 0===e)return void n.logWarn(`Unsupported plot type for plot: ${l}`);l=e}h[c]=l}else n.logWarn(`Study plot does not have property '${c}'`)},e.applyBandProperty=function(e,i,s,r){if(void 0===e.bands)return void n.logWarn("Study does not have bands");const o=e.bands[i];if(void 0!==o&&o.hasOwnProperty(s)){if("plottype"===s){const e=t[String(r)];if(void 0===e)return void n.logWarn(`Unsupported plot type for band: ${r}`);r=e}o[s]=r}else n.logWarn(`Study band does not have property '${s}'`)},e.applyFilledAreaProperty=function(e,t,i,s){if(void 0===e.filledAreasStyle)return void n.logWarn("Study does not have areas");const r=e.filledAreasStyle[t];void 0!==r&&r.hasOwnProperty(i)?r[i]=s:n.logWarn(`Study area does not have property '${i}'`)},e.applyInputValue=function(e,t,i){void 0!==e.inputs&&e.inputs.hasOwnProperty(t)?e.inputs[t]=i:n.logWarn(`Study does not have input '${t}'`)},e.setRootProperty=function(e,t,i){if(0===t.length)return;let s=e;for(const e of t.slice(0,-1)){if(null==s||!s.hasOwnProperty(e))break;s=s[e]}const r=t[t.length-1];null!=s&&s.hasOwnProperty(r)?s[r]=i:n.logWarn(`Study does not have property ${t.join(".")}`)}}(o||(o={})),function(e){e.getInputByName=function(e,t){if(void 0===e.inputs)return null;t=t.toLowerCase();for(const i of e.inputs)if(i.name.toLowerCase()===t)return i.id;return null},e.getPlotIdByTitle=function(e,t){if(void 0===e.styles)return null;t=t.toLowerCase();for(const i in e.styles){const s=e.styles[i];if((void 0!==s&&void 0!==s.title?s.title:i).toLowerCase()===t)return i}return null},e.getFilledAreaIdByTitle=function(e,t){if(void 0===e.filledAreas)return null;t=t.toLowerCase();for(const i of e.filledAreas)if(i.title.toLowerCase()===t)return i.id;return null},e.getBandIndexByName=function(e,t){if(void 0===e.bands)return null;t=t.toLowerCase();for(let i=0;i{"use strict";var s=i(26867),r=i(1930).symbolTitle,n=i(2250).StudyBarColorer,o=i(88552).PlotList,a=i(76422),l=i(83421),c=i(51332).studyPlotFunctionMap,h=i(51332).studyEmptyPlotValuePredicate,d=i(2484),u=i(91217).StudyBase,p=i(38031).colorToInteger,_=i(98351).getLogger("Chart.Study"),m=d.enabled("datasource_copypaste"),g=d.enabled("study_symbol_ticker_description"),f=d.enabled("hide_unresolved_symbols_in_legend");function v(e,t){return e&&e[t]&&e[t].hasOwnProperty("showLast")?e[t].showLast.value():null}class S extends u{constructor(e,t,i,r){super(e,t,i,r),this._resolvedSymbols={},this._chartApi=e._chartApi,this._plotFields=[];var n=this.metaInfo().plots;if(n)for(var a=0,u=n.length;a{(0,s.ensureNotNull)(t.dataSourceForId(i)).setUnit(e)})),this._chartWidget.model().selectionMacro((e=>{e.clearSelection()})),this._showFade&&this._chartWidget.screen.show(!0)}}},30684:(e,t,i)=>{"use strict";i.d(t,{SetScaleRatioPropertiesCommand:()=>o});var s=i(71733),r=i(7711),n=i(97425);class o extends s.UndoCommand{constructor(e,t,i,s){super(i),this._property=e,this._newValue=t,this._model=s,this._priceScale=this._model.mainSeries().priceScale(),this._oldValue=this._property.value(),this._oldMode=this._priceScale.mode()}redo(){this._oldValue=this._property.value(),this._oldMode=this._priceScale.mode(),(0,r.saveDefaultProperties)(!0),this._priceScale.setMode({autoScale:!1,percentage:!1,log:!1}),this._property.setValue(this._newValue),(0,r.saveDefaultProperties)(!1),this._model.recalculateAllPanes((0,n.viewportChangeEvent)()),this._model.lightUpdate()}undo(){(0,r.saveDefaultProperties)(!0),this._property.setValue(this._oldValue),this._priceScale.setMode(this._oldMode),(0,r.saveDefaultProperties)(!1),this._model.recalculateAllPanes((0,n.viewportChangeEvent)()),this._model.lightUpdate()}}},26989:(e,t,i)=>{"use strict";function s(e,t){let i=[];const r=e.children(t,!1);for(let t=0;t{e.children(t,!1).forEach((e=>{i.has(e)||(i.add(e),r(e))}))};return t.forEach(r),t.filter((e=>!i.has(e))).map((t=>s(e,t))).reduce(((e,t)=>e.concat(t)),[])}i.d(t,{closeSourcesSet:()=>r})},67278:(e,t,i)=>{"use strict";i.d(t,{TimeScaleChangeUndoCommand:()=>o});var s=i(98351),r=i(71733);const n=(0,s.getLogger)("Chart.ChartUndoModel");class o extends r.UndoCommand{constructor(e,t,i){super(i,!1),this._newRightOffsetAndBarSpacing=null,this.setCustomFlag("doesnt_affect_save",!0),this._model=e,this._rightOffsetAndBarSpacing=t}undo(){if(null!==this._newRightOffsetAndBarSpacing)return void n.logDebug("TimeScaleChangeUndoCommand.undo: Command is already undone");const e=this._model.timeScale();this._newRightOffsetAndBarSpacing={barSpacing:e.barSpacing(),rightOffset:e.rightOffset()},e.setBarSpacing(this._rightOffsetAndBarSpacing.barSpacing),e.setRightOffset(this._rightOffsetAndBarSpacing.rightOffset),this._model.lightUpdate()}redo(){if(null===this._newRightOffsetAndBarSpacing)return void n.logDebug("TimeScaleChangeUndoCommand.redo: Command is not undone");const e=this._model.timeScale();e.setBarSpacing(this._newRightOffsetAndBarSpacing.barSpacing),e.setRightOffset(this._newRightOffsetAndBarSpacing.rightOffset),this._model.lightUpdate(),this._newRightOffsetAndBarSpacing=null}}},71733:(e,t,i)=>{"use strict";i.d(t,{UndoCommand:()=>r});var s=i(47539);class r{constructor(e,t=!0){this._customFlags={},this._text=e||new s.TranslatedString("",""),this._executeOnPush=t}text(){return this._text}executeOnPush(){return this._executeOnPush}customFlag(e){return this._customFlags[e]}setCustomFlag(e,t){this._customFlags[e]=t}canMerge(e){return!1}merge(e){throw new Error("Should be re-implemented in child classes")}}}, 29443:(e,t,i)=>{"use strict";i.d(t,{createUndoHistory:()=>u});var s=i(50151),r=i(43426),n=i(42437),o=i(71733);class a extends o.UndoCommand{constructor(e,t,i){super(i),this._wv=e,this._newValue=t,this._oldValue=e.value()}redo(){this._wv.setValue(this._newValue)}undo(){this._wv.setValue(this._oldValue)}}var l=i(98351),c=i(26867),h=i.n(c);const d=(0,l.getLogger)("Common.UndoHistory");function u(){const e=[],t=new r.UndoStack,i=new r.UndoStack,o=new(h());function l(s){if(e.length>0)e[e.length-1].addCommand(s);else{i.clear();const e=t.head(),r=e&&e.text().originalText();e&&e.canMerge(s)?e.merge(s):t.push(s);const n=s.text().originalText();""!==n&&n!==r&&d.logNormal("DO: "+n)}s.executeOnPush()&&s.redo(),e.length||o.fire(c())}function c(){const e=t.head(),s=i.head(),r=void 0===e?void 0:e.text(),n=void 0===s?void 0:s.text();return{enableUndo:!t.isEmpty(),undoText:void 0!==r?r.translatedText():r,enableRedo:!i.isEmpty(),redoText:void 0!==n?n.translatedText():n,originalUndoText:void 0!==r?r.originalText():void 0,originalRedoText:void 0!==n?n.originalText():void 0}}return{beginUndoMacro:function(t){const i=new n.UndoMacroCommand(t);return e.push(i),i},clearStack:function(){t.clear(),i.clear(),o.fire(c())},createUndoCheckpoint:function(){return{lastActualCommand:t.isEmpty()?null:t.head()}},endUndoMacro:function(){const t=(0,s.ensureDefined)(e.pop());t.isEmpty()||l(t)},pushUndoCommand:l,redo:function(){if(i.isEmpty())return!1;const e=i.pop();return!!e&&(e.redo(),t.push(e),d.logNormal("REDO: "+e.text().originalText()),o.fire(c()),!0)},redoStack:function(){return i},setWatchedValue:function(e,t,i,s){if(e.value()!==t){const r=new a(e,t,i);r.setCustomFlag("doesnt_affect_save",!!s),l(r),r.redo()}},undo:function(){if(t.isEmpty())return!1;const e=t.pop();return!!e&&(e.undo(),i.push(e),d.logNormal("UNDO: "+e.text().originalText()),o.fire(c()),!0)},undoStack:function(){return t},undoToCheckpoint:function(e){for(;!t.isEmpty()&&e.lastActualCommand!==t.head();)t.pop().undo();i.clear(),o.fire(c())},state:c,onChange:function(){return o}}}},42437:(e,t,i)=>{"use strict";i.d(t,{UndoMacroCommand:()=>r});var s=i(71733);class r extends s.UndoCommand{constructor(e){super(e,!1),this._subcommands=[]}addCommand(e){this._subcommands.push(e)}isEmpty(){return 0===this._subcommands.length}redo(){for(let e=0;e=0;e--)this._subcommands[e].undo()}commands(){return this._subcommands}}},43426:(e,t,i)=>{"use strict";i.d(t,{UndoStack:()=>a});var s=i(71733),r=i(26867),n=i.n(r);const o=(0,i(98351).getLogger)("Common.UndoStack");class a{constructor(){this._commands=[],this._onChange=new(n())}onChange(){return this._onChange}isEmpty(){return 0===this._commands.length}clear(){this.isEmpty()||(this._commands.length=0,this._onChange.fire())}push(e){if(!(e instanceof s.UndoCommand))throw new TypeError("argument must be an instance of UndoCommand");this._commands.push(e),this._onChange.fire(e)}pop(){if(this.isEmpty())return void o.logDebug("pop: undo stack is empty") ;const e=this._commands.pop();return this._onChange.fire(e),e}head(){if(!this.isEmpty())return this._commands[this._commands.length-1]}}},52934:(e,t,i)=>{"use strict";i.d(t,{UnmergeDownUndoCommand:()=>o,UnmergeUpUndoCommand:()=>a,UnmergeToNewBottomPane:()=>l});var s=i(50151),r=i(74879);class n extends r.MoveSourceUndoCommand{constructor(e,t,i){super(e,t,i)}redo(){const e=(0,s.ensureNotNull)(this._chartModel.dataSourceForId(this._sourceId)),t=(0,s.ensureNotNull)(this._chartModel.paneForSource(e)),i=this._chartModel.children(e,!0);t.bulkActionMacro((()=>{i.forEach((e=>this._chartModel.detachSource(e))),this._chartModel.detachSource(e)}));const r=this._chartModel.createPane(this.targetPaneIndex()),n=r.findSuitableScale(e);r.bulkActionMacro((()=>{r.addDataSource(e,n,!1),i.forEach((e=>r.addDataSource(e,n,!1)))})),(0,s.ensureNotNull)(e.priceScale()).restoreState(this._newPriceScaleState(r.isOverlay(e))),this._chartModel.fullUpdate(),this._chartModel.setShouldBeSavedEvenIfHidden(!0)}undo(){const e=(0,s.ensureNotNull)(this._chartModel.dataSourceForId(this._sourceId)),t=(0,s.ensureNotNull)(this._chartModel.paneForSource(e)),i=this._chartModel.children(e,!0);t.bulkActionMacro((()=>{i.forEach((e=>this._chartModel.detachSource(e)));const t=this._chartModel.detachSource(e);(0,s.assert)(t,"Undo of detaching must remove pane")}));const r=this._chartModel.panes()[this._initialPaneIndex];let n=r.getPriceScaleById(this._initialPriceScaleId);null===n&&(n=r.createPriceScaleAtPosition(this._initialPriceScalePosition,this._initialPriceScaleIndex)),r.bulkActionMacro((()=>{r.addDataSource(e,n,!0),i.forEach((e=>r.addDataSource(e,n,!1)))})),(0,s.ensureNotNull)(e.priceScale()).restoreState(this._originalPriceScaleState()),this._chartModel.fullUpdate()}}class o extends n{constructor(e,t,i){super(e,t,i)}targetPaneIndex(){return this._initialPaneIndex+1}}class a extends n{constructor(e,t,i){super(e,t,i)}targetPaneIndex(){return this._initialPaneIndex}}class l extends n{constructor(e,t,i){super(e,t,i)}targetPaneIndex(){return this._chartModel.panes().length}}},50337:(e,t,i)=>{"use strict";i.d(t,{unitConvertibleGroups:()=>n,sourceNewUnitOnPinningToPriceScale:()=>o});var s=i(21580),r=i(1930);function n(e,t,i){const s=(0,r.symbolUnitConvertibleGroupsIfExist)(e,!0);if(null!==s)return s;const n=i.unitGroupById(t);return null===n?[]:[n]}function o(e,t,i,r){let o=null;if(i.unitConversionEnabled()&&(0,s.isSymbolSource)(e)){const s=i.availableUnits(),a=t.unit(s),l=e.unit(),c=null===l?[]:n(e.symbolInfo(),l,s);null!==a&&null!==a.selectedUnit&&!a.allUnitsAreOriginal&&a.selectedUnit!==l&&(r&&null===l||null!==l&&s.convertible(l,c))&&(o=a.selectedUnit)}return o}},84803:(e,t,i)=>{"use strict";i.d(t,{createVisibilityController:()=>l});var s=i(44352),r=i(32563),n=i(60923),o=i(56840);function a(e){return"alwaysOn"===e||"alwaysOff"===e?e:"visibleOnMouseOver"}function l(e,t){let l,c;function h(){if(!l){l=(0,n.createPrimitiveProperty)();let i=o.getValue(e);void 0===i&&void 0!==t&&(i=o.getValue(t)),l.setValue(a(i)),l.subscribe(l,(t=>{o.setValue(e,a(t.value()))}))} -return l}return{property:h,availableValues:function(){return[{id:"visibleOnMouseOver",value:"visibleOnMouseOver",title:s.t(null,void 0,i(89960))},{id:"alwaysOn",value:"alwaysOn",title:s.t(null,void 0,i(71997))},{id:"alwaysOff",value:"alwaysOff",title:s.t(null,void 0,i(9408))}]},actualBehavior:function(){if(!c){c=(0,n.createPrimitiveProperty)();const e=h(),t=()=>{let t=e.value();"alwaysOn"!==t&&"alwaysOff"!==t&&(t=r.mobiletouch?"alwaysOn":"visibleOnMouseOver"),c&&c.setValue(t)};e.subscribe(c,t),t()}return c}}}},3074:(e,t,i)=>{"use strict";i.r(t),i.d(t,{watermarkProperty:()=>d,restoreWatermarkPropertyDefaults:()=>u});var s=i(24377),r=i(56840),n=i(26220),o=i.n(n);const a="symbolWatermark",l={visibility:!1,color:"rgba(80, 83, 94, 0.25)"};function c(){const e=r.getJSON(a);let t=Object.assign({},l,e);if(void 0===e){if(void 0!==r.getJSON("chartproperties")){const e=r.getJSON("chartproperties").symbolWatermarkProperties;if(void 0!==e){const i=(0,s.tryParseRgba)(e.color);t=Object.assign(t,e),null!==i&&(0!==i[3]?t.visibility=!0:(i[3]=.25,t.color=(0,s.rgbaToString)(i)))}}delete t.transparency}return t}let h=null;function d(){return null===h&&(h=new(o())(c()),r.onSync.subscribe(null,(()=>{null!==h&&h.mergeAndFire(c())})),h.listeners().subscribe(null,(()=>{null!==h&&r.setJSON(a,h.state())}))),h}function u(){null!==h&&h.mergeAndFire(l)}},96881:(e,t,i)=>{"use strict";var s=i(12205).translatedIntervalString,r=i(23902).getTranslatedSymbolDescription,n=i(17364).CHART_FONT_FAMILY,o=i(3074),a=o.watermarkProperty,l=o.restoreWatermarkPropertyDefaults,c=i(83499).drawScaled,h=i(64548).applyDefaultsOverrides,d=i(64548).applyPropertiesOverrides;const u="symbolWatermarkProperties";t.Watermark=function(e,t){var i={},o=a();function p(e,t){var s=e.font;return i.hasOwnProperty(s)||(i[s]={}),i[s].hasOwnProperty(t)||(i[s][t]=e.measureText(t).width),i[s][t]}h(o,void 0,!1,u),o.listeners().subscribe(this,(function(){e.updateSource(this)})),this.destroy=function(){o.listeners().unsubscribeAll(this)},this.properties=function(){return o},this.restorePropertiesDefaults=function(){l()},this.applyOverrides=function(e){d(o,void 0,!1,e,u)};var _={renderer:function(e,i){return{draw:function(a,l){c(a,l.pixelRatio,(function(){var l=t.symbolInfo();a.fillStyle=o.color.value();var c,h=l.name;/QUANDL/.test(l.exchange)&&((c=h.split(/\//)).length&&(h=c[c.length-1]));for(var d={description:l.description,short_description:l.short_description,pro_name:l.pro_name,short_name:l.name,local_description:l.local_description,language:l.language},u=[{text:h?h+", "+s(t.interval()):"",font:"96px "+n,lineHeight:117,vertOffset:0},{text:r(d)||"",font:"48px "+n,lineHeight:58,vertOffset:5}],_=0,m=0;mi?i/g:1,_+=v.lineHeight*v.zoom}}var f=Math.max((e-_)/2,0);for(m=0;m{"use strict";i.d(t,{reorderDataSourcesStateZOrder:()=>S,newLineToolZOrder:()=>w,newStudyZOrder:()=>P,moveAfterSource:()=>k,moveBeforeSource:()=>E});var s=i(6250),r=i(89215),n=i(46936),o=i(62472),a=i(93975);function l(e){return(0,s.isLineTool)(e)&&!e.isSpeciallyZOrderedSource()}function c(e){return(0,r.isStudy)(e)&&!e.isSpeciallyZOrderedSource()}function h(e,t){return e.zorder-t.zorder}function d(e,t){(0,o.isMainSeriesState)(e)?e.zorder=0:e.zorder=t}function u(e,t){e.setZorder(t)}function p(e){return e.zorder()}function _(e){return Math.round(1e3*e)/1e3}function m(e,t){const i=Math.max(e,t),s=Math.min(e,t);return Math.max(0,Math.ceil(i)-Math.floor(s)-1)}function g(e,t,i){let s=0;const r=function(e,t){const i=1e3;return Math.abs(t*i-e*i)/i}(t,e);var n;return r>i?(e=Math.trunc(e),s=Math.floor(r/(i+1))):(n=r/(i+1),s=Math.floor(1e3*n)/1e3),{startZOrder:e,zOrderStep:s}}function f(e,t,i,s){let r=e.length,n=t;for(let t=e.length-1;t>=-1;t--)if(-1===t||s(e[t])){const s=t;let o=T(n);if(r-1===s)s>=0&&i(e[s],o);else{const t=m(r,s);let a=0;for(;0===a;){const e=g(n,o,t);n=e.startZOrder,a=e.zOrderStep,0===a&&(o-=1e4,0===o&&(o-=1e4))}let l=r-1;for(;l>s;){const t=_(n-a);i(e[l],t),n=t,l--}s>=0&&i(e[s],o)}n=o,r=s}}function v(e,t,i,s){let r=-1,n=t;for(let t=0;t<=e.length;t++)if(t===e.length||s(e[t])){const s=t;let o=C(n);if(r+1===s)s<=e.length-1&&i(e[s],o);else{const t=m(r,s);let a=0;for(;0===a;){const e=g(n,o,t);n=e.startZOrder,a=e.zOrderStep,0===a&&(o+=1e4,0===o&&(o+=1e4))}let l=r+1;for(;l<=s-1;){const t=_(n+a);i(e[l],t),n=t,l++}s<=e.length-1&&i(e[s],o)}n=o,r=s}}function S(e){!function(e,t,i,s,r,n){let o=null;const a=[];for(const r of e)t(r)?(a.push(r),o=r):(i(r)||s(r))&&a.push(r);a.sort(n),null!==o&&r(o,0);const l=null===o?-1:a.indexOf(o);-1!==l?(f(a.slice(0,l),0,r,i),v(a.slice(l+1),0,r,i)):v(a,0,r,i)}(e,o.isMainSeriesState,o.isStudyState,o.isLineToolState,d,h)}function y(e,t){const i=Math.floor(e/1e4);let s=t.get(i);return void 0===s&&(s=[],t.set(i,s)),s}function b(e,t,i,s,r,n){let o=-1/0,a=1/0,l=-1/0,c=0;const h=new Map;for(let s=0;sr(e)-r(t)));let p=T(r(u[0]));const m=C(p),f=g(p,m,u.length+1).zOrderStep;return 0!==f?(u.forEach((e=>{const t=_(p+f);s(e,t),p=t})),_(p+f)):_(m+5e3)}function w(e,t){return b(e,l,c,u,p,t)}function P(e){let t=-1e4;for(const i of e)c(i)&&(t=Math.min(t,i.zorder()-1e4));return 0===t?-1e4:t}function C(e){const t=1e4*Math.ceil(e/1e4);return t===e?t+1e4:t}function T(e){const t=1e4*Math.floor(e/1e4);return t===e?t-1e4:t}function x(e,t,i,s,r,n,o){const l=t.length,{newItems:c,movedItemsStartIndex:h}=i>0?(0, -a.moveAfter)(e,t,i-1):(0,a.moveBefore)(e,t,0);let d=!1;for(let t=h;tr(e)))?function(e,t,i,s,r,n){let o,a,l=-1,c=-1;0===i?(c=I(e,i+t,s),a=n(e[c])):i+t===e.length?(l=M(e,i-1,s),o=n(e[l])):(l=M(e,i-1,s),o=n(e[l]),c=I(e,i+t,s),a=n(e[c]));if((void 0===o||o<0)&&void 0!==a&&a<=0)f(e.slice(0,c),a,r,s);else if((void 0===a||a>0)&&void 0!==o&&o>=0)v(e.slice(l+1),o,r,s);else{i+t0)&&void 0!==a&&a>=0){c=a;const e=g(c,void 0!==l?l:C(a),t);c=e.startZOrder,p=e.zOrderStep,d=i,u=d+t,h=1}if(0!==p)for(;d!==u;){const t=_(c+h*p);n(e[d],t),c=t,d+=h}else{const t=e.findIndex((e=>r(e)));-1!==t?(f(e.slice(0,t),0,n,s),v(e.slice(t+1),0,n,s)):v(e,0,n,s)}}(c,l,h,r,s,n,o)}function I(e,t,i){for(;t=0&&i(e[t]);)t--;return Math.max(0,t)}function A(e,t,i,s,r,n,o){const a=e.indexOf(i)+1;x(e,t,a,s,r,n,o)}function L(e,t,i,s,r,n,o){const a=e.indexOf(i);x(e,t,a,s,r,n,o)}function k(e,t,i){A(e,t,i,n.isSeries,c,u,p)}function E(e,t,i){L(e,t,i,n.isSeries,c,u,p)}},82501:(e,t,i)=>{"use strict";i.d(t,{setSymbolSearchCompleteOverrideFunction:()=>r,getSymbolSearchCompleteOverrideFunction:()=>n});let s=(e,t)=>{var i;return Promise.resolve({symbol:e,name:null!==(i=null==t?void 0:t.symbol)&&void 0!==i?i:e})};function r(e){s=e}function n(){return s}},71107:(e,t,i)=>{"use strict";i.d(t,{StudyMetaInfoBase:()=>d});var s=i(27147),r=i(50151),n=i(8890);const o=new Set(["CorrelationCoefficient@tv-basicstudies","Correlation - Log@tv-basicstudies-1"]),a=new Set([]),l=new Set(["line"]),c=new Map([["AnchoredVWAP@tv-basicstudies","linetoolanchoredvwap"],["RegressionTrend@tv-basicstudies","linetoolregressiontrend"]]),h=/^([^\$]+)\$\d+$/;class d{static getSourceIdsByInputs(e,t){if(!Array.isArray(e)||!t)return[];const i=[];for(const r of e)if(d.isSourceInput(r)&&(0,s.default)(t[r.id])){const e=t[r.id];e.includes("$")&&i.push(e.split("$")[0])}return i}static isSourceInput(e){return Boolean(e.id&&(("source"===e.id||"src"===e.id)&&("text"===e.type||"source"===e.type)||"source"===e.type))}static getSourceInputIds(e){const t=[];for(const i of e.inputs)d.isSourceInput(i)&&t.push(i.id);return t}static setChildStudyMetaInfoPropertiesSourceId(e,t,i){for(const s of e.inputs){if(!d.isSourceInput(s))continue;const e=i.childs().inputs&&i.childs().inputs.childs()[s.id];if(e){const i=e.value(),s=h.exec(i);if(2===(null==s?void 0:s.length)){if("{pid}"===s[1]){const s=i.replace(/^[^\$]+/,t);e.setValue(s)}}}}}static patchSoSInputs(e,t){const i=e=>{const i=h.exec(e);if(2===(null==i?void 0:i.length)){const s=i[1],n=`${(0, -r.ensureNotNull)(t(s))}`;return e.replace(/^[^\$]+/,n)}return e};for(const t in e)if(/in_[\d+]/.test(t)||"source"===t){const r=e[t];(0,s.default)(r)?e[t]=i(r):(0,n.isExtendedInput)(r)&&(0,n.isExtendedInputSource)(r)&&(r.v=i(r.v))}}static canBeChild(e){if((0,s.default)(e))return!0;if(!e)return!1;if(e.extra&&!d.isAllowedSourceInputsCount(e.extra.sourceInputsCount)||!0===e.canNotBeChild||!1===e.canBeChild||o.has(e.id))return!1;let t=0;for(const i of e.inputs)d.isSourceInput(i)&&(t+=1);return d.isAllowedSourceInputsCount(t)}static isAllowedSourceInputsCount(e){return 1===e}static canHaveChildren(e){if(e){if(e.isTVScriptStrategy||e.TVScriptSourceCode&&isStrategy(e.TVScriptSourceCode))return!1;if(e.id&&!a.has(e.id)&&Array.isArray(e.plots))for(const t of e.plots)if(l.has(t.type))return!0}return!1}static getChildSourceInputTitles(e,t,i){var s;const r={};if(t.plots&&t.plots.length&&e.options&&e.options.length)for(const n of e.options){const e=n?+n.split("$")[1]:NaN,o=isFinite(e)&&t.plots[e];o&&l.has(o.type)&&(r[n]=t.styles&&t.styles[o.id]&&(null===(s=t.styles[o.id])||void 0===s?void 0:s.title)||o.id,i&&(r[n]=i+": "+r[n]))}return r}static canPlotBeSourceOfChildStudy(e){return l.has(e)}static getStudyPropertyRootName(e){const t=c.get(e.id);if(void 0!==t)return t;let i="study_"+e.id;return e.pine&&e.pine.version&&(i+="_"+e.pine.version.replace(".","_")),i}static getStudyPropertyRootNameById(e){const t=c.get(e);return void 0!==t?t:"study_"+e}}},58403:(e,t,i)=>{"use strict";i.d(t,{StudyMetaInfo:()=>a});var s=i(98351).getLogger("Chart.Study.MetaInfo"),r=i(1140).applyOverridesToStudyDefaults,n=i(71107).StudyMetaInfoBase,o={};class a extends n{constructor(e){super(),TradingView.merge(this,{palettes:{},inputs:[],plots:[],graphics:{},defaults:{}}),TradingView.merge(this,e);var t=e.fullId||e.id;TradingView.merge(this,a.parseIdString(t))}static versionOf(e){var t="_metainfoVersion"in e&&isNumber(e._metainfoVersion)?e._metainfoVersion:0;return t<0&&s.logError("Metainfo format version cannot be negative: "+t),t}static parseIdString(e){var t={};if(-1===e.indexOf("@"))t.shortId=e,t.packageId="tv-basicstudies",t.id=e+"@"+t.packageId,t.version=1;else{var i=e.split("@");t.shortId=i[0];var s=i[1].split("-");if(3===s.length)t.packageId=s.slice(0,2).join("-"),t.id=t.shortId+"@"+t.packageId,t.version=s[2];else if(1===s.length&&"decisionbar"===s[0])t.packageId="les-"+s[0],t.id=t.shortId+"@"+t.packageId,t.version=1;else{if(1!==s.length)throw new Error("unexpected study id:"+e);t.packageId="tv-"+s[0],t.id=t.shortId+"@"+t.packageId,t.version=1}}if(t.fullId=t.id+"-"+t.version,"tv-scripting"===t.packageId){var r=t.shortId;if(0===r.indexOf("Script$")||0===r.indexOf("StrategyScript$")){var n=r.indexOf("_");t.productId=n>=0?r.substring(0,n):t.packageId}else t.productId=t.packageId}else t.productId=t.packageId;return t}static getPackageName(e){return(/^[^@]+@([^-]+-[^-]+)/.exec(e||"")||[0,"tv-basicstudies"])[1]}static cutDollarHash(e){var t=e.indexOf("$"),i=e.indexOf("@");return-1===t?e:e.substring(0,t)+(i>=0?e.substring(i):"")}static hasUserIdSuffix(e){ -return/^USER;[\d\w]+;\d+$/.test(e)}static hasPubSuffix(e){return/^PUB;.+$/.test(e)}static hasStdSuffix(e){return/^STD;.+$/.test(e)}static isStandardPine(e){return/^(Strategy)?Script\$STD;.*@tv-scripting$/.test(e)}static getStudyIdWithLatestVersion(e){const t=a.cutDollarHash(e.id),i=t.indexOf("CP@tv-basicstudies")>=0;let s=t;return t.indexOf("@tv-scripting")>=0?s+="-101!":s+=i?"-"+e.version+"!":"-"+e.version,s}defaultInputs(){for(var e=[],t=0;t0?e[0].id:null}createDefaults(){if(this.defaults){var e=TradingView.clone(this.defaults);e.precision="default";var t=a.getStudyPropertyRootName(this);defaults.create(t,e)}}removeDefaults(){defaults.remove(a.getStudyPropertyRootName(this))}static findStudyMetaInfoByDescription(e,t){if(e){for(var i=0;i{"use strict";window.TradingView=window.TradingView||{},window.requireAll=function(e){return e.keys().map(e)},i(32563).setClasses(),i(32020),i(56186).install(),i(49483),i(65665),i(93731),i(11417),i(11536),i(39056),i(56840)},67498:(e,t,i)=>{"use strict";i(13781);var s=i(50151).assert;i(16051),i(64548),i(51368);const r=i(2484);JSON.parse(urlParams.disabledFeatures).forEach((function(e){r.setEnabled(e,!1)})),JSON.parse(urlParams.enabledFeatures).forEach((function(e){r.setEnabled(e,!0)})),function(){window.__settingsOverrides=window.parent[window.urlParams.uid].settingsOverrides||{};var e=window.parent[window.urlParams.uid].settingsAdapter;null!=e?(TVSettings.setSettingsAdapter(e),TVSettings.sync()):r.enabled("use_localstorage_for_settings")&&TVSettings.sync()}();var n=i(17364).setChartFontFamily;window.urlParams.customFontFamily&&n(window.urlParams.customFontFamily);var o=i(96642).RestrictedToolsetBootloader,a=i(38190).HeaderToolbarBootloader,l=i(26971).DrawingToolbarBootloader,c=i(85323).isDrawingToolbarVisible;(0,i(32563).setClasses)() -;var h=i(8840),d=i(45345).setTheme,u=i(9416),p=i(91612),_=i(66141),m=i(88021).migrateShortcut,g=i(93919).ChartSaver,f=i(93958).SaveChartService,v=i(5520).LoadChartService,S=i(87520).StudyTemplates,y=i(81205).FavoriteStudyTemplateService,b=i(82992).linking,w=i(76422),P=i(74599).formatterOptions,C=i(69145).customFormatters,T=i(30371).StudyMarket,x=i(21097).TVXWindowEvents,I=i(71668).createDeferredPromise,M=i(933).deepExtend,A=i(68671).randomHash,L=i(84912).convertPropertyToWatchedValue,k=i(11954).property,E=i(43074).property,D=i(55262).dateFormatProperty,B=i(51620).timeHoursFormatProperty,V=i(40962).CustomTimezones,R=i(35624).currencyUnitVisibilityProperty,N=i(43370).default,O=i(578).Interval,F=i(89356).Root,W=i(28325).ChartPage,H=i(36776).destroyQuoteSessions,z=i(45673).TIMEFRAMETYPE,U=new W(new F(window).allocate()),j=U.allocate({areaName:"center"}),G=(window.parent[urlParams.uid].brokerFactory,Boolean(!1)),q=i(90981).CHART_WIDGET_COLLECTION_SERVICE,$=i(16216);i(17152);var Y=i(45818),K=i(8222).createFavoriteDrawingToolbar,X=i(77317).setupChartEventHint,Z=i(81602).setupChartScreenshotHint,J=i(79930),Q=i(58403).StudyMetaInfo,ee=i(73809);i(95056),i(40716);var te=i(78136).setSearchRequestDelay,ie=i(77906),se=i(76702),re=i(74585).addBrandingSource,ne=i(65312).setAdditionalSymbolInfoFields,oe=i(82501).setSymbolSearchCompleteOverrideFunction,ae=i(39263).DropdownApi,le=i(60223).ContextMenuManager;i(67049).setDefaultWatchlistSymbols,i(67049).defaultWatchlistSymbols;const ce=new AbortController;var he=window.parent[urlParams.uid].getCustomIndicators,de=I(),ue=I(),pe=r.enabled("left_toolbar");if(void 0!==window.parent[urlParams.uid].contextMenu){var _e=window.parent[urlParams.uid].contextMenu;void 0!==_e.items_processor&&le.setCustomItemsProcessor(_e.items_processor),void 0!==_e.renderer_factory&&le.setCustomRendererFactory(_e.renderer_factory)}if(Promise.all([de.promise,ue.promise]).then((function(){window.ChartApiInstance.start()})),"function"==typeof he){var me=he(se);me&&me.then?me.then((function(e){if(!Array.isArray(e))return console.warn("custom_indicators_getter should be a function that returns a Promise object which result is an array of custom indicators"),void de.resolve();JSServer.studyLibrary.push.apply(JSServer.studyLibrary,e),de.resolve(),console.log("{0} custom indicators loaded.".format(e.length))})).catch((function(e){console.warn("Error loading custom indicators "+e),de.resolve()})):(console.warn("custom_indicators_getter should be a function that returns a Promise object"),de.resolve())}else de.resolve();window.widgetReady=function(e){w.subscribe("onChartReady",e)};var ge=urlParams.theme&&urlParams.theme.toLowerCase();function fe(e){window.__defaultsOverrides=window.__defaultsOverrides||{},M(window.__defaultsOverrides,e),void 0!==TradingView.defaultProperties&&void 0!==TradingView.defaultProperties.chartproperties&&(window.applyDefaultsOverrides(TradingView.defaultProperties.chartproperties),window.applyDefaultOverridesToLinetools())}!function(e){h.themes[e]&&d(e)}(ge), +return l}return{property:h,availableValues:function(){return[{id:"visibleOnMouseOver",value:"visibleOnMouseOver",title:s.t(null,void 0,i(89960))},{id:"alwaysOn",value:"alwaysOn",title:s.t(null,void 0,i(71997))},{id:"alwaysOff",value:"alwaysOff",title:s.t(null,void 0,i(9408))}]},actualBehavior:function(){if(!c){c=(0,n.createPrimitiveProperty)();const e=h(),t=()=>{let t=e.value();"alwaysOn"!==t&&"alwaysOff"!==t&&(t=r.mobiletouch?"alwaysOn":"visibleOnMouseOver"),c&&c.setValue(t)};e.subscribe(c,t),t()}return c}}}},3074:(e,t,i)=>{"use strict";i.r(t),i.d(t,{watermarkProperty:()=>h,restoreWatermarkPropertyDefaults:()=>d});var s=i(56840),r=i(26220),n=i.n(r);const o="symbolWatermark",a={visibility:!1,color:"rgba(80, 83, 94, 0.25)"};function l(){const e=s.getJSON(o);return Object.assign({},a,e)}let c=null;function h(){return null===c&&(c=new(n())(l()),s.onSync.subscribe(null,(()=>{null!==c&&c.mergeAndFire(l())})),c.listeners().subscribe(null,(()=>{null!==c&&s.setJSON(o,c.state())}))),c}function d(){null!==c&&c.mergeAndFire(a)}},96881:(e,t,i)=>{"use strict";var s=i(12205).translatedIntervalString,r=i(23902).getTranslatedSymbolDescription,n=i(17364).CHART_FONT_FAMILY,o=i(3074),a=o.watermarkProperty,l=o.restoreWatermarkPropertyDefaults,c=i(83499).drawScaled,h=i(64548).applyDefaultsOverrides,d=i(64548).applyPropertiesOverrides;const u="symbolWatermark";t.Watermark=function(e,t){var i={},o=a();function p(e,t){var s=e.font;return i.hasOwnProperty(s)||(i[s]={}),i[s].hasOwnProperty(t)||(i[s][t]=e.measureText(t).width),i[s][t]}h(o,void 0,!1,u),o.listeners().subscribe(this,(function(){e.updateSource(this)})),this.destroy=function(){o.listeners().unsubscribeAll(this)},this.properties=function(){return o},this.restorePropertiesDefaults=function(){l()},this.applyOverrides=function(e){d(o,void 0,!1,e,u)};var _={renderer:function(e,i){return{draw:function(a,l){c(a,l.pixelRatio,(function(){var l=t.symbolInfo();a.fillStyle=o.color.value();var c,h=l.name;/QUANDL/.test(l.exchange)&&((c=h.split(/\//)).length&&(h=c[c.length-1]));for(var d={description:l.description,short_description:l.short_description,pro_name:l.pro_name,short_name:l.name,local_description:l.local_description,language:l.language},u=[{text:h?h+", "+s(t.interval()):"",font:"96px "+n,lineHeight:117,vertOffset:0},{text:r(d)||"",font:"48px "+n,lineHeight:58,vertOffset:5}],_=0,m=0;mi?i/g:1,_+=v.lineHeight*v.zoom}}var f=Math.max((e-_)/2,0);for(m=0;m{"use strict";i.d(t,{reorderDataSourcesStateZOrder:()=>S,newLineToolZOrder:()=>w,newStudyZOrder:()=>P,moveAfterSource:()=>k,moveBeforeSource:()=>E});var s=i(6250),r=i(89215),n=i(46936),o=i(62472),a=i(93975);function l(e){return(0, +s.isLineTool)(e)&&!e.isSpeciallyZOrderedSource()}function c(e){return(0,r.isStudy)(e)&&!e.isSpeciallyZOrderedSource()}function h(e,t){return e.zorder-t.zorder}function d(e,t){(0,o.isMainSeriesState)(e)?e.zorder=0:e.zorder=t}function u(e,t){e.setZorder(t)}function p(e){return e.zorder()}function _(e){return Math.round(1e3*e)/1e3}function m(e,t){const i=Math.max(e,t),s=Math.min(e,t);return Math.max(0,Math.ceil(i)-Math.floor(s)-1)}function g(e,t,i){let s=0;const r=function(e,t){const i=1e3;return Math.abs(t*i-e*i)/i}(t,e);var n;return r>i?(e=Math.trunc(e),s=Math.floor(r/(i+1))):(n=r/(i+1),s=Math.floor(1e3*n)/1e3),{startZOrder:e,zOrderStep:s}}function f(e,t,i,s){let r=e.length,n=t;for(let t=e.length-1;t>=-1;t--)if(-1===t||s(e[t])){const s=t;let o=T(n);if(r-1===s)s>=0&&i(e[s],o);else{const t=m(r,s);let a=0;for(;0===a;){const e=g(n,o,t);n=e.startZOrder,a=e.zOrderStep,0===a&&(o-=1e4,0===o&&(o-=1e4))}let l=r-1;for(;l>s;){const t=_(n-a);i(e[l],t),n=t,l--}s>=0&&i(e[s],o)}n=o,r=s}}function v(e,t,i,s){let r=-1,n=t;for(let t=0;t<=e.length;t++)if(t===e.length||s(e[t])){const s=t;let o=C(n);if(r+1===s)s<=e.length-1&&i(e[s],o);else{const t=m(r,s);let a=0;for(;0===a;){const e=g(n,o,t);n=e.startZOrder,a=e.zOrderStep,0===a&&(o+=1e4,0===o&&(o+=1e4))}let l=r+1;for(;l<=s-1;){const t=_(n+a);i(e[l],t),n=t,l++}s<=e.length-1&&i(e[s],o)}n=o,r=s}}function S(e){!function(e,t,i,s,r,n){let o=null;const a=[];for(const r of e)t(r)?(a.push(r),o=r):(i(r)||s(r))&&a.push(r);a.sort(n),null!==o&&r(o,0);const l=null===o?-1:a.indexOf(o);-1!==l?(f(a.slice(0,l),0,r,i),v(a.slice(l+1),0,r,i)):v(a,0,r,i)}(e,o.isMainSeriesState,o.isStudyState,o.isLineToolState,d,h)}function y(e,t){const i=Math.floor(e/1e4);let s=t.get(i);return void 0===s&&(s=[],t.set(i,s)),s}function b(e,t,i,s,r,n){let o=-1/0,a=1/0,l=-1/0,c=0;const h=new Map;for(let s=0;sr(e)-r(t)));let p=T(r(u[0]));const m=C(p),f=g(p,m,u.length+1).zOrderStep;return 0!==f?(u.forEach((e=>{const t=_(p+f);s(e,t),p=t})),_(p+f)):_(m+5e3)}function w(e,t){return b(e,l,c,u,p,t)}function P(e){let t=-1e4;for(const i of e)c(i)&&(t=Math.min(t,i.zorder()-1e4));return 0===t?-1e4:t}function C(e){const t=1e4*Math.ceil(e/1e4);return t===e?t+1e4:t}function T(e){const t=1e4*Math.floor(e/1e4);return t===e?t-1e4:t}function x(e,t,i,s,r,n,o){const l=t.length,{newItems:c,movedItemsStartIndex:h}=i>0?(0,a.moveAfter)(e,t,i-1):(0,a.moveBefore)(e,t,0);let d=!1;for(let t=h;tr(e)))?function(e,t,i,s,r,n){let o,a,l=-1,c=-1;0===i?(c=I(e,i+t,s),a=n(e[c])):i+t===e.length?(l=M(e,i-1,s), +o=n(e[l])):(l=M(e,i-1,s),o=n(e[l]),c=I(e,i+t,s),a=n(e[c]));if((void 0===o||o<0)&&void 0!==a&&a<=0)f(e.slice(0,c),a,r,s);else if((void 0===a||a>0)&&void 0!==o&&o>=0)v(e.slice(l+1),o,r,s);else{i+t0)&&void 0!==a&&a>=0){c=a;const e=g(c,void 0!==l?l:C(a),t);c=e.startZOrder,p=e.zOrderStep,d=i,u=d+t,h=1}if(0!==p)for(;d!==u;){const t=_(c+h*p);n(e[d],t),c=t,d+=h}else{const t=e.findIndex((e=>r(e)));-1!==t?(f(e.slice(0,t),0,n,s),v(e.slice(t+1),0,n,s)):v(e,0,n,s)}}(c,l,h,r,s,n,o)}function I(e,t,i){for(;t=0&&i(e[t]);)t--;return Math.max(0,t)}function A(e,t,i,s,r,n,o){const a=e.indexOf(i)+1;x(e,t,a,s,r,n,o)}function L(e,t,i,s,r,n,o){const a=e.indexOf(i);x(e,t,a,s,r,n,o)}function k(e,t,i){A(e,t,i,n.isSeries,c,u,p)}function E(e,t,i){L(e,t,i,n.isSeries,c,u,p)}},82501:(e,t,i)=>{"use strict";i.d(t,{setSymbolSearchCompleteOverrideFunction:()=>r,getSymbolSearchCompleteOverrideFunction:()=>n});let s=(e,t)=>{var i;return Promise.resolve({symbol:e,name:null!==(i=null==t?void 0:t.symbol)&&void 0!==i?i:e})};function r(e){s=e}function n(){return s}},71107:(e,t,i)=>{"use strict";i.d(t,{StudyMetaInfoBase:()=>d});var s=i(27147),r=i(50151),n=i(8890);const o=new Set(["CorrelationCoefficient@tv-basicstudies","Correlation - Log@tv-basicstudies-1"]),a=new Set([]),l=new Set(["line"]),c=new Map([["AnchoredVWAP@tv-basicstudies","linetoolanchoredvwap"],["RegressionTrend@tv-basicstudies","linetoolregressiontrend"]]),h=/^([^\$]+)\$\d+$/;class d{static getSourceIdsByInputs(e,t){if(!Array.isArray(e)||!t)return[];const i=[];for(const r of e)if(d.isSourceInput(r)&&(0,s.default)(t[r.id])){const e=t[r.id];e.includes("$")&&i.push(e.split("$")[0])}return i}static isSourceInput(e){return Boolean(e.id&&(("source"===e.id||"src"===e.id)&&("text"===e.type||"source"===e.type)||"source"===e.type))}static getSourceInputIds(e){const t=[];for(const i of e.inputs)d.isSourceInput(i)&&t.push(i.id);return t}static setChildStudyMetaInfoPropertiesSourceId(e,t,i){for(const s of e.inputs){if(!d.isSourceInput(s))continue;const e=i.childs().inputs&&i.childs().inputs.childs()[s.id];if(e){const i=e.value(),s=h.exec(i);if(2===(null==s?void 0:s.length)){if("{pid}"===s[1]){const s=i.replace(/^[^\$]+/,t);e.setValue(s)}}}}}static patchSoSInputs(e,t){const i=e=>{const i=h.exec(e);if(2===(null==i?void 0:i.length)){const s=i[1],n=`${(0,r.ensureNotNull)(t(s))}`;return e.replace(/^[^\$]+/,n)}return e};for(const t in e)if(/in_[\d+]/.test(t)||"source"===t){const r=e[t];(0,s.default)(r)?e[t]=i(r):(0,n.isExtendedInput)(r)&&(0,n.isExtendedInputSource)(r)&&(r.v=i(r.v))}}static canBeChild(e){if((0,s.default)(e))return!0;if(!e)return!1 +;if(e.extra&&!d.isAllowedSourceInputsCount(e.extra.sourceInputsCount)||!0===e.canNotBeChild||!1===e.canBeChild||o.has(e.id))return!1;let t=0;for(const i of e.inputs)d.isSourceInput(i)&&(t+=1);return d.isAllowedSourceInputsCount(t)}static isAllowedSourceInputsCount(e){return 1===e}static canHaveChildren(e){if(e){if(e.isTVScriptStrategy||e.TVScriptSourceCode&&isStrategy(e.TVScriptSourceCode))return!1;if(e.id&&!a.has(e.id)&&Array.isArray(e.plots))for(const t of e.plots)if(l.has(t.type))return!0}return!1}static getChildSourceInputTitles(e,t,i){var s;const r={};if(t.plots&&t.plots.length&&e.options&&e.options.length)for(const n of e.options){const e=n?+n.split("$")[1]:NaN,o=isFinite(e)&&t.plots[e];o&&l.has(o.type)&&(r[n]=t.styles&&t.styles[o.id]&&(null===(s=t.styles[o.id])||void 0===s?void 0:s.title)||o.id,i&&(r[n]=i+": "+r[n]))}return r}static canPlotBeSourceOfChildStudy(e){return l.has(e)}static getStudyPropertyRootName(e){const t=c.get(e.id);if(void 0!==t)return t;let i="study_"+e.id;return e.pine&&e.pine.version&&(i+="_"+e.pine.version.replace(".","_")),i}static getStudyPropertyRootNameById(e){const t=c.get(e);return void 0!==t?t:"study_"+e}}},58403:(e,t,i)=>{"use strict";i.d(t,{StudyMetaInfo:()=>a});var s=i(98351).getLogger("Chart.Study.MetaInfo"),r=i(1140).applyOverridesToStudyDefaults,n=i(71107).StudyMetaInfoBase,o={};class a extends n{constructor(e){super(),TradingView.merge(this,{palettes:{},inputs:[],plots:[],graphics:{},defaults:{}}),TradingView.merge(this,e);var t=e.fullId||e.id;TradingView.merge(this,a.parseIdString(t))}static versionOf(e){var t="_metainfoVersion"in e&&isNumber(e._metainfoVersion)?e._metainfoVersion:0;return t<0&&s.logError("Metainfo format version cannot be negative: "+t),t}static parseIdString(e){var t={};if(-1===e.indexOf("@"))t.shortId=e,t.packageId="tv-basicstudies",t.id=e+"@"+t.packageId,t.version=1;else{var i=e.split("@");t.shortId=i[0];var s=i[1].split("-");if(3===s.length)t.packageId=s.slice(0,2).join("-"),t.id=t.shortId+"@"+t.packageId,t.version=s[2];else if(1===s.length&&"decisionbar"===s[0])t.packageId="les-"+s[0],t.id=t.shortId+"@"+t.packageId,t.version=1;else{if(1!==s.length)throw new Error("unexpected study id:"+e);t.packageId="tv-"+s[0],t.id=t.shortId+"@"+t.packageId,t.version=1}}if(t.fullId=t.id+"-"+t.version,"tv-scripting"===t.packageId){var r=t.shortId;if(0===r.indexOf("Script$")||0===r.indexOf("StrategyScript$")){var n=r.indexOf("_");t.productId=n>=0?r.substring(0,n):t.packageId}else t.productId=t.packageId}else t.productId=t.packageId;return t}static getPackageName(e){return(/^[^@]+@([^-]+-[^-]+)/.exec(e||"")||[0,"tv-basicstudies"])[1]}static cutDollarHash(e){var t=e.indexOf("$"),i=e.indexOf("@");return-1===t?e:e.substring(0,t)+(i>=0?e.substring(i):"")}static hasUserIdSuffix(e){return/^USER;[\d\w]+;\d+$/.test(e)}static hasPubSuffix(e){return/^PUB;.+$/.test(e)}static hasStdSuffix(e){return/^STD;.+$/.test(e)}static isStandardPine(e){return/^(Strategy)?Script\$STD;.*@tv-scripting$/.test(e)}static getStudyIdWithLatestVersion(e){ +const t=a.cutDollarHash(e.id),i=t.indexOf("CP@tv-basicstudies")>=0;let s=t;return t.indexOf("@tv-scripting")>=0?s+="-101!":s+=i?"-"+e.version+"!":"-"+e.version,s}defaultInputs(){for(var e=[],t=0;t0?e[0].id:null}createDefaults(){if(this.defaults){var e=TradingView.clone(this.defaults);e.precision="default";var t=a.getStudyPropertyRootName(this);defaults.create(t,e)}}removeDefaults(){defaults.remove(a.getStudyPropertyRootName(this))}static findStudyMetaInfoByDescription(e,t){if(e){for(var i=0;i{"use strict";window.TradingView=window.TradingView||{},window.requireAll=function(e){return e.keys().map(e)},i(32563).setClasses(),i(32020),i(56186).install(),i(49483),i(65665),i(93731),i(11417),i(11536),i(39056),i(56840)},67498:(e,t,i)=>{"use strict";i(13781);var s=i(50151).assert;i(16051),i(64548),i(51368);const r=i(2484);JSON.parse(urlParams.disabledFeatures).forEach((function(e){r.setEnabled(e,!1)})),JSON.parse(urlParams.enabledFeatures).forEach((function(e){r.setEnabled(e,!0)})),function(){window.__settingsOverrides=window.parent[window.urlParams.uid].settingsOverrides||{};var e=window.parent[window.urlParams.uid].settingsAdapter;null!=e?(TVSettings.setSettingsAdapter(e),TVSettings.sync()):r.enabled("use_localstorage_for_settings")&&TVSettings.sync()}();var n=i(17364).setChartFontFamily;window.urlParams.customFontFamily&&n(window.urlParams.customFontFamily);var o=i(96642).RestrictedToolsetBootloader,a=i(38190).HeaderToolbarBootloader,l=i(26971).DrawingToolbarBootloader,c=i(85323).isDrawingToolbarVisible;(0,i(32563).setClasses)() +;var h=i(8840),d=i(45345).setTheme,u=i(9416),p=i(91612),_=i(66141),m=i(88021).migrateShortcut,g=i(93919).ChartSaver,f=i(93958).SaveChartService,v=i(5520).LoadChartService,S=i(87520).StudyTemplates,y=i(81205).FavoriteStudyTemplateService,b=i(82992).linking,w=i(76422),P=i(74599).formatterOptions,C=i(69145).customFormatters,T=i(30371).StudyMarket,x=i(21097).TVXWindowEvents,I=i(71668).createDeferredPromise,M=i(933).deepExtend,A=i(68671).randomHash,L=i(84912).convertPropertyToWatchedValue,k=i(11954).property,E=i(43074).property,D=i(55262).dateFormatProperty,B=i(51620).timeHoursFormatProperty,V=i(40962).CustomTimezones,R=i(35624).currencyUnitVisibilityProperty,N=i(43370).default,O=i(578).Interval,F=i(89356).Root,W=i(28325).ChartPage,H=i(36776).destroyQuoteSessions,z=i(45673).TIMEFRAMETYPE,U=new W(new F(window).allocate()),j=U.allocate({areaName:"center"}),G=(window.parent[urlParams.uid].brokerFactory,Boolean(!1)),q=i(90981).CHART_WIDGET_COLLECTION_SERVICE,$=i(16216);i(17152);var Y=i(45818),K=i(8222).createFavoriteDrawingToolbar,Z=i(77317).setupChartEventHint,X=i(81602).setupChartScreenshotHint,J=i(79930),Q=i(58403).StudyMetaInfo,ee=i(73809);i(95056),i(40716);var te=i(78136).setSearchRequestDelay,ie=i(77906),se=i(76702),re=i(74585).addBrandingSource,ne=i(65312).setAdditionalSymbolInfoFields,oe=i(82501).setSymbolSearchCompleteOverrideFunction,ae=i(39263).DropdownApi,le=i(60223).ContextMenuManager;i(67049).setDefaultWatchlistSymbols,i(67049).defaultWatchlistSymbols;const ce=new AbortController;var he=window.parent[urlParams.uid].getCustomIndicators,de=I(),ue=I(),pe=r.enabled("left_toolbar");if(void 0!==window.parent[urlParams.uid].contextMenu){var _e=window.parent[urlParams.uid].contextMenu;void 0!==_e.items_processor&&le.setCustomItemsProcessor(_e.items_processor),void 0!==_e.renderer_factory&&le.setCustomRendererFactory(_e.renderer_factory)}if(Promise.all([de.promise,ue.promise]).then((function(){window.ChartApiInstance.start()})),"function"==typeof he){var me=he(se);me&&me.then?me.then((function(e){if(!Array.isArray(e))return console.warn("custom_indicators_getter should be a function that returns a Promise object which result is an array of custom indicators"),void de.resolve();JSServer.studyLibrary.push.apply(JSServer.studyLibrary,e),de.resolve(),console.log("{0} custom indicators loaded.".format(e.length))})).catch((function(e){console.warn("Error loading custom indicators "+e),de.resolve()})):(console.warn("custom_indicators_getter should be a function that returns a Promise object"),de.resolve())}else de.resolve();window.widgetReady=function(e){w.subscribe("onChartReady",e)};var ge=urlParams.theme&&urlParams.theme.toLowerCase();function fe(e){window.__defaultsOverrides=window.__defaultsOverrides||{},M(window.__defaultsOverrides,e),void 0!==TradingView.defaultProperties&&void 0!==TradingView.defaultProperties.chartproperties&&(window.applyDefaultsOverrides(TradingView.defaultProperties.chartproperties),window.applyDefaultOverridesToLinetools())}!function(e){h.themes[e]&&d(e)}(ge), window.applyStudiesOverrides=function(e){e&&(window.chartWidgetCollection?window.chartWidgetCollection.applyStudiesOverrides(e):Q.mergeDefaultsOverrides(e))},window.applyOverrides=function(e){fe(e),window.chartWidgetCollection&&window.chartWidgetCollection.applyOverrides(e)},window.doWhenApiIsReady=function(e){window.tradingViewApi?e():ue.promise.then(e)},window.applyTradingCustomization=function(e){for(var t in e.order)TradingView.defaultProperties.linetoolorder[t]=e.order[t];for(var t in e.position)TradingView.defaultProperties.linetoolposition[t]=e.position[t]},window.changeTheme=function(e,t){var i=h.themes[e.toLowerCase()];return i?window.tradingViewApi.themes().setStdTheme(i.name,!0,t&&t.disableUndo):Promise.resolve()},window.getTheme=function(){return window.tradingViewApi.themes().getCurrentThemeName()},window.is_authenticated=!1;JSON.parse(window.urlParams.brokerConfig);i(44352).t(null,void 0,i(65911)),i(44352).t(null,void 0,i(68111)),i(44352).t(null,void 0,i(5607));var ve=null,Se=I(),ye=null,be=function(){if(r.setEnabled("charting_library_debug_mode","true"===urlParams.debug),r.setEnabled("chart_property_page_trading",!1),r.enabled("remove_library_container_border")){var e=document.querySelector("#library-container");null!==e&&(e.style.border="0px",e.style.padding="1px")}r.enabled("no_min_chart_width")&&(window.document.body.style.minWidth="0px"),null!=urlParams.studiesOverrides&&Q.mergeDefaultsOverrides(JSON.parse(urlParams.studiesOverrides)),s(void 0===TradingView.defaultProperties,"Default properties are inited before applying overrides"),fe(JSON.parse(urlParams.overrides)),urlParams.numeric_formatting=urlParams.numeric_formatting&&JSON.parse(urlParams.numeric_formatting),urlParams.numeric_formatting&&"string"==typeof urlParams.numeric_formatting.decimal_sign&&(P.decimalSign=urlParams.numeric_formatting.decimal_sign[0]),window.ChartApiInstance=new J(window.parent[urlParams.uid].datafeed),window.parent[urlParams.uid].customFormatters&&(window.parent[urlParams.uid].customFormatters.timeFormatter&&(C.timeFormatter=window.parent[urlParams.uid].customFormatters.timeFormatter),window.parent[urlParams.uid].customFormatters.dateFormatter&&(C.dateFormatter=window.parent[urlParams.uid].customFormatters.dateFormatter),window.parent[urlParams.uid].customFormatters.tickMarkFormatter&&(C.tickMarkFormatter=window.parent[urlParams.uid].customFormatters.tickMarkFormatter),window.parent[urlParams.uid].customFormatters.priceFormatterFactory&&(C.priceFormatterFactory=window.parent[urlParams.uid].customFormatters.priceFormatterFactory),window.parent[urlParams.uid].customFormatters.studyFormatterFactory&&(C.studyFormatterFactory=window.parent[urlParams.uid].customFormatters.studyFormatterFactory)),window.parent[urlParams.uid].customTimezones&&V.instance().addTimezones(window.parent[urlParams.uid].customTimezones),window.ChartApiInstance.setStudiesAccessController(window.ChartApiInstance.createStudiesAccessController(urlParams.studiesAccess)) ;var t,n=urlParams.chartContent?JSON.parse(urlParams.chartContent).json:void 0,d=urlParams.chartContentExtendedData?JSON.parse(urlParams.chartContentExtendedData):n?n.extendedData:void 0,p=urlParams.interval||"D",_=function(e){var t=/(\d+)(\w+)/;return e.map((function(e){var s=t.exec(e.text),r=s[2].toLowerCase(),n=parseInt(s[1]),o="y"===r?12*n+"M":n+r,a=O.parse(e.resolution);return{text:e.title||n+i(44352).t(r,{context:"dates",count:n},i(673)),description:e.description||"",value:{value:o.toUpperCase(),type:z.PeriodBack},targetResolution:a.value(),requiresIntraday:a.isIntraday()}}))}(JSON.parse(urlParams.timeFrames)),m={resizerBridge:j,padding:r.enabled("border_around_the_chart")?2:0,content:n,widgetOptions:{addToWatchlistEnabled:!1,hideIdeas:!0,addVolume:window.ChartApiInstance.studiesAccessController.isToolEnabled("Volume"),muteSessionErrors:!0,timezone:urlParams.timezone,defSymbol:urlParams.symbol,defInterval:p,compareSymbols:urlParams.compareSymbols&&JSON.parse(urlParams.compareSymbols),defTimeframe:(t=window.parent[urlParams.uid].timeframe,t?"string"==typeof t?t:{...t,type:"time-range"}:t),paneContextMenuEnabled:r.enabled("pane_context_menu"),paneContextMenu:{mainSeriesTrade:G},priceScaleContextMenuEnabled:r.enabled("scales_context_menu"),currencyConversionEnabled:r.enabled("pricescale_currency"),unitConversionEnabled:r.enabled("pricescale_unit"),legendWidgetEnabled:r.enabled("legend_widget"),legendWidget:{contextMenu:{settings:r.enabled("show_chart_property_page"),showOpenMarketStatus:r.enabled("display_market_status")}},sourceStatusesWidget:{errorSolution:!1},marketStatusWidgetEnabled:r.enabled("display_market_status"),chartWarningWidget:{subscriptionFullInfo:!1},timeScaleWidget:{contextMenuEnabled:r.enabled("scales_context_menu"),timezoneMenuEnabled:r.enabled("timezone_menu"),priceAxisLabelsOptions:{showLabels:r.enabled("main_series_scale_menu")}},timeScale:{preserveBarSpacing:!1,lockVisibleTimeRangeOnResize:r.enabled("lock_visible_time_range_on_resize"),rightBarStaysOnScroll:r.enabled("right_bar_stays_on_scroll"),minBarSpacing:urlParams.time_scale&&JSON.parse(urlParams.time_scale).min_bar_spacing},goToDateEnabled:r.enabled("go_to_date"),crossHair:{menuEnabled:r.enabled("chart_crosshair_menu")},handleScale:{mouseWheel:r.enabled("mouse_wheel_scale"),pinch:r.enabled("pinch_scale"),axisPressedMouseMove:{time:r.enabled("axis_pressed_mouse_move_scale"),price:r.enabled("axis_pressed_mouse_move_scale")}},handleScroll:{mouseWheel:r.enabled("mouse_wheel_scroll"),pressedMouseMove:r.enabled("pressed_mouse_move_scroll"),horzTouchDrag:r.enabled("horz_touch_drag_scroll"),vertTouchDrag:r.enabled("vert_touch_drag_scroll")},shiftVisibleRangeOnNewBar:r.enabled("shift_visible_range_on_new_bar"),croppedTickMarks:r.enabled("cropped_tick_marks"),countdownEnabled:r.enabled("countdown"),indicatorsDialogShortcutEnabled:r.enabled("insert_indicator_dialog_shortcut")},seriesControlBarEnabled:r.enabled("timeframes_toolbar"),seriesControlBar:{timeFramesWidgetEnabled:!0,timeFramesWidget:{goToDateEnabled:r.enabled("go_to_date"), availableTimeFrames:function(e,t){return e?t!==ie.STATUS_DELAYED&&t!==ie.STATUS_DELAYED_STREAMING&&t!==ie.STATUS_EOD&&t!==ie.STATUS_READY?[]:_.filter((function(t){return!(t.requiresIntraday&&!e.has_intraday)&&!(e.supported_resolutions&&!e.supported_resolutions.includes(t.targetResolution))})):[]}},timeWidgetEnabled:!0,timeWidget:{timezoneMenuEnabled:r.enabled("timezone_menu")},adjustForDividendsButtonEnabled:!1,sessionIdButtonEnabled:r.enabled("pre_post_market_sessions"),backAdjustmentButtonEnabled:!1,settlementAsCloseButtonEnabled:!1,percentageScaleButtonEnabled:!0,logScaleButtonEnabled:!0,autoScaleButtonEnabled:!0,fullscreenButtonEnabled:!0,mobileChangeLayoutEnabled:!1},globalEvents:!0,snapshotUrl:urlParams.snapshotUrl,mobileForceChartMaximizeEnabled:!1,saveChartEnabled:r.enabled("save_shortcut")};pe&&(K(),m.widgetOptions.isDrawingToolbarVisible=c),d&&(m.metaInfo={id:d.uid,name:d.name,description:d.description,uid:d.uid,username:"",tags:""}),window.parent[urlParams.uid].additionalSymbolInfoFields&&ne(window.parent[urlParams.uid].additionalSymbolInfoFields),window.parent[urlParams.uid].symbolSearchComplete&&oe(window.parent[urlParams.uid].symbolSearchComplete);var I=window.chartWidgetCollection=new Y(m);let M=!1;I.onAboutToBeDestroyed.subscribe(null,(()=>{M=!0}),!0),re(I),window.studyMarket=new T(I),void 0!==$&&$.registerService(q,I),I.activeChartWidget.subscribe((function(e){w.emit("activeChartChanged",I.getAll().indexOf(e))})),window.saver=new g(I);var A=new f(I,window.saver),L=new v(I);window.chartWidget=I.activeChartWidget.value(),window.pro=new TradingView.Pro;var k=function(e){if(!r.enabled("header_widget"))return null;var t=U.allocate({areaName:"top"}),s=new(0,i(25927).ChartChangesWatcher)(e.chartWidgetCollection,window.saver,w),n=JSON.parse(urlParams.favorites);n.intervals=n.intervals.map((function(e){var t=""+e;return t.match(/1[DWMYdwmy]/)&&(t=t.slice(1)),t}));var l,c=null;r.enabled("study_templates")&&(c=new y(x,TVSettings),ye=new S({chartWidgetCollection:e.chartWidgetCollection,favoriteStudyTemplatesService:c}));var h=urlParams.header_widget_buttons_mode;"fullsize"===h&&(l=["full"]);"compact"===h&&(l=["small"]);return new a(new o,{chartSaver:window.saver,chartApiInstance:ChartApiInstance,chartWidgetCollection:e.chartWidgetCollection,defaultFavoriteStyles:n.chartTypes,defaultFavoriteIntervals:n.intervals,hideStudyTemplates:!0,resizerBridge:t,studyMarket:window.studyMarket,studyTemplates:ye,favoriteStudyTemplatesService:c,allowedModes:l,saveChartService:e.saveChartService,loadChartService:e.loadChartService,chartChangesWatcher:s,onClick:Ee,snapshotUrl:e.snapshotUrl})}({chartWidgetCollection:I,saveChartService:A,loadChartService:L,snapshotUrl:urlParams.snapshotUrl});null!==k?k.load().then((function(e){ve=e.getComponent(),Se.resolve()})):(Se.promise.catch((function(){})),Se.reject("header widget is not loaded"));var E=function(e){if(pe){var t=urlParams.toolbarbg&&/^[0-9a-f]+$/i.test(urlParams.toolbarbg)?String(urlParams.toolbarbg):void 0;if(t){var i=document.createElement("style") -;i.textContent="body,.chart-controls-bar,#footer-chart-panel{background-color:#"+t+" !important}",document.head.appendChild(i)}return new l({bgColor:t,chartWidgetCollection:e,drawingsAccess:urlParams.drawingsAccess?JSON.parse(urlParams.drawingsAccess):void 0,resizerBridge:U.allocate({areaName:"left"}),onClick:Ee})}return null}(I),D=null;window.tradingViewApi=new ee({chartWidgetCollection:I,chartApiInstance:window.ChartApiInstance,saveChartService:A,loadChartService:L});if(b.bindToChartWidgetCollection(I),TradingView.isNaN(urlParams.studyCountLimit)||(TradingView.STUDY_COUNT_LIMIT=Math.max(2,+urlParams.studyCountLimit)),!TradingView.isNaN(urlParams.ssreqdelay)){var B=Math.max(0,+urlParams.ssreqdelay);te(B)}window.ChartApiInstance.connect(),Promise.all([i.e(5652),i.e(8230),i.e(7624),i.e(4819),i.e(9333),i.e(6092),i.e(8619),i.e(8825),i.e(5761),i.e(4412),i.e(8009),i.e(1140),i.e(3562),i.e(105),i.e(5639),i.e(8819),i.e(6879),i.e(1528),i.e(7263),i.e(962),i.e(1075),i.e(5747),i.e(1890),i.e(2182),i.e(2804),i.e(2306)]).then(i.t.bind(i,59197,23)).then((({default:e})=>{M||(window.lineToolPropertiesToolbar=new e(I))}));var R=document.querySelector(".tv-content");function F(){E&&E.load(ce.signal),D&&D.load(ce.signal).then((function(e){window.footerWidget=e.getComponent()}))}null!==R&&R.addEventListener("contextmenu",(function(e){null!==e.target&&"input"!==e.target.tagName.toLowerCase()&&"textarea"!==e.target.tagName.toLowerCase()&&e.preventDefault()})),ue.resolve(),I.undoHistory.undoStack().onChange().subscribe(null,N((function(e){e&&!e.customFlag("doesnt_affect_save")&&w.emit("onAutoSaveNeeded")}),1e3*(urlParams.autoSaveDelay||5),{leading:!1,trailing:!0})),window.chartWidget.withModel(null,(function(){if(ChartApiInstance.on("realtime_tick",(function(e){w.emit("onTick",e)})),!h.savedThemeName()&&ge){var e=h.getStdTheme(ge);e&&e.content&&void 0===n&&I.applyTheme({theme:e.content,onlyActiveChart:!1,restoreNonThemeDefaults:!1,themeName:ge,standardTheme:!0,syncState:!0,noUndo:!0}).then((()=>window.applyOverrides(window.__defaultsOverrides)))}r.enabled("charting_library_debug_mode")&&w.subscribeToAll((function(){var e=Array.prototype.slice.call(arguments);console.log('Event "{0}", arguments: {1}'.format(e[0],JSON.stringify(e.slice(1))))})),X&&(X(I),X=null),Z&&(Z(I,{seriesControlBarEnabled:r.enabled("timeframes_toolbar")}),Z=null)})),u.isAnyChartWidgetInitialized(I)?F():u.waitAnyChartWidgetInitialized(I,F),w.subscribe("chart_load_requested",(function(e){window.tradingViewApi.loadChart({json:JSON.parse(e.content),extendedData:e})}))};window.addEventListener("unload",(function(){ce.abort(),window.widgetbar&&(window.widgetbar.destroy(),window.widgetbar=null),window.chartWidgetCollection&&(window.chartWidgetCollection.destroy(),window.chartWidgetCollection=null),window.ChartApiInstance&&window.ChartApiInstance.disconnect(),H(),window.ChartApiInstance&&(window.ChartApiInstance.destroy(),window.ChartApiInstance=null)})), +;i.textContent="body,.chart-controls-bar,#footer-chart-panel{background-color:#"+t+" !important}",document.head.appendChild(i)}return new l({bgColor:t,chartWidgetCollection:e,drawingsAccess:urlParams.drawingsAccess?JSON.parse(urlParams.drawingsAccess):void 0,resizerBridge:U.allocate({areaName:"left"}),onClick:Ee})}return null}(I),D=null;window.tradingViewApi=new ee({chartWidgetCollection:I,chartApiInstance:window.ChartApiInstance,saveChartService:A,loadChartService:L});if(b.bindToChartWidgetCollection(I),TradingView.isNaN(urlParams.studyCountLimit)||(TradingView.STUDY_COUNT_LIMIT=Math.max(2,+urlParams.studyCountLimit)),!TradingView.isNaN(urlParams.ssreqdelay)){var B=Math.max(0,+urlParams.ssreqdelay);te(B)}window.ChartApiInstance.connect(),Promise.all([i.e(5652),i.e(8230),i.e(7624),i.e(4819),i.e(9333),i.e(6092),i.e(8619),i.e(8825),i.e(5761),i.e(4412),i.e(8009),i.e(1140),i.e(3562),i.e(105),i.e(5639),i.e(8819),i.e(6879),i.e(1528),i.e(7263),i.e(962),i.e(1075),i.e(5747),i.e(1890),i.e(2182),i.e(2804),i.e(2306)]).then(i.t.bind(i,59197,23)).then((({default:e})=>{M||(window.lineToolPropertiesToolbar=new e(I))}));var R=document.querySelector(".tv-content");function F(){E&&E.load(ce.signal),D&&D.load(ce.signal).then((function(e){window.footerWidget=e.getComponent()}))}null!==R&&R.addEventListener("contextmenu",(function(e){null!==e.target&&"input"!==e.target.tagName.toLowerCase()&&"textarea"!==e.target.tagName.toLowerCase()&&e.preventDefault()})),ue.resolve(),I.undoHistory.undoStack().onChange().subscribe(null,N((function(e){e&&!e.customFlag("doesnt_affect_save")&&w.emit("onAutoSaveNeeded")}),1e3*(urlParams.autoSaveDelay||5),{leading:!1,trailing:!0})),window.chartWidget.withModel(null,(function(){if(ChartApiInstance.on("realtime_tick",(function(e){w.emit("onTick",e)})),!h.savedThemeName()&&ge){var e=h.getStdTheme(ge);e&&e.content&&void 0===n&&I.applyTheme({theme:e.content,onlyActiveChart:!1,restoreNonThemeDefaults:!1,themeName:ge,standardTheme:!0,syncState:!0,noUndo:!0}).then((()=>window.applyOverrides(window.__defaultsOverrides)))}r.enabled("charting_library_debug_mode")&&w.subscribeToAll((function(){var e=Array.prototype.slice.call(arguments);console.log('Event "{0}", arguments: {1}'.format(e[0],JSON.stringify(e.slice(1))))})),Z&&(Z(I),Z=null),X&&(X(I,{seriesControlBarEnabled:r.enabled("timeframes_toolbar")}),X=null)})),u.isAnyChartWidgetInitialized(I)?F():u.waitAnyChartWidgetInitialized(I,F),w.subscribe("chart_load_requested",(function(e){window.tradingViewApi.loadChart({json:JSON.parse(e.content),extendedData:e})}))};window.addEventListener("unload",(function(){ce.abort(),window.widgetbar&&(window.widgetbar.destroy(),window.widgetbar=null),window.chartWidgetCollection&&(window.chartWidgetCollection.destroy(),window.chartWidgetCollection=null),window.ChartApiInstance&&window.ChartApiInstance.disconnect(),H(),window.ChartApiInstance&&(window.ChartApiInstance.destroy(),window.ChartApiInstance=null)})), r.enabled("saveload_storage_customization")&&(window.parent[urlParams.uid].saveLoadAdapter?p.setCustomAdapter(window.parent[urlParams.uid].saveLoadAdapter):void 0!==urlParams.chartsStorageUrl&&urlParams.chartsStorageUrl&&void 0!==urlParams.clientId&&urlParams.clientId?p.initialize(urlParams.clientId,urlParams.userId,urlParams.chartsStorageUrl,urlParams.chartsStorageVer||"1.0"):(r.setEnabled("saveload_storage_customization",!1),r.setEnabled("header_saveload",!1)));var we=I();function Pe(){we.resolve()}window.parent[urlParams.uid].loadLastChart&&r.enabled("saveload_storage_customization")?p.getCharts().then((function(e){if(0!==e.length){var t=e.sort((function(e,t){return t.modified_iso-e.modified_iso}))[0];p.getChartContent(t).then((function(e){var t=JSON.parse(e.content);t.extendedData=e,urlParams.chartContent=JSON.stringify({json:t}),Pe()})).catch(Pe)}else Pe()})).catch(Pe):Pe();var Ce,Te,xe=I();Promise.all([xe.promise,we.promise,window.loadedCustomCss]).then((function(){var e,t,i,s,n,o,a=document.querySelector(".loading-indicator");if(a&&(a.style.display="none"),setTimeout(be,0),r.enabled("14851")&&Math.random()<=.02){e=window,t=document,i="script",s="ga",e.GoogleAnalyticsObject=s,e.ga=e.ga||function(){(e.ga.q=e.ga.q||[]).push(arguments)},e.ga.l=1*new Date,n=t.createElement(i),o=t.getElementsByTagName(i)[0],n.async=1,n.src="//www.google-analytics.com/analytics.js",o.parentNode.insertBefore(n,o);var l=document.URL.match(new RegExp("(:?.*://)([^/]+)/.*"))[2];ga("create","UA-112911840-1","auto"),ga("set","anonymizeIp",!0),ga("set",{hostname:l,page:l,referrer:l}),ga("send","pageview")}})),Ce=!0,window.parent[urlParams.uid].datafeed.onReady((function(e){Ce&&console.warn("`onReady` should return result asynchronously. Use `setTimeout` with 0 interval to execute the callback function."),window.configurationData=e,xe.resolve()})),Ce=!1,window.getFunctionFromArguments=function(e){return window.parent[urlParams.uid][e]},window.createShortcutAction=(Te=_.createGroup({desc:"API"}),function(e,t){Te.add({hotkey:m(e),handler:t})}),window.initializationFinished=function(){window.chartWidgetCollection.undoHistory.clearStack()},window.headerReady=function(){return Se.promise},window.createButton=function(e){if(null===ve)throw new Error("Cannot create button: header widget is not ready or is not loaded - use `headerReady` to wait until header is ready");return(e=e||{}).align=e.align||"left",e.useTradingViewStyle=e.useTradingViewStyle||!1,ve.addButton(A(),e)},window.createDropdown=function(e){if(void 0===e)throw new Error("Cannot create dropdown without any parameters. Please refer to the documentation");void 0===e.align&&(e.align="left");const t=A();return ve?(ve.addDropdown(t,e),Promise.resolve(new ae(ve,t))):Se.promise.then((()=>(ve.addDropdown(t,e),new ae(ve,t))))},window.getAllFeatures=function(){const e=r.getAllFeatures();return Object.keys(e).forEach((function(t){isNaN(parseFloat(t))||delete e[t]})),e};var Ie=null;window.getNavigationButtonsVisibility=function(){return null===Ie&&(Ie=L(k())),Ie};var Me=null ;window.getPaneButtonsVisibility=function(){return null===Me&&(Me=L(E())),Me};var Ae=null;window.getDateFormat=function(){return null===Ae&&(Ae=L(D)),Ae};var Le=null;window.getTimeHoursFormat=function(){return null===Le&&(Le=L(B)),Le};var ke=null;function Ee(e){var t=TradingView.bottomWidgetBar;t&&t.turnOffMaximize()}window.getCurrencyAndUnitVisibility=function(){return null===ke&&(ke=L(R())),ke}},11536:(e,t,i)=>{e=i.nmd(e),TradingView.cleanButAmpersand=function(e,t){var i=t?["&"]:["&"];return TradingView.clean(e,t,i)},TradingView.strip_tags=function(e){return e&&e.replace?e.replace(/(<([^>]+)>)/gi,""):e},TradingView.encodeSpread=function(e){return encodeURIComponent(e)},TradingView.clean=function(e,t,i){var s=[["&","&"],["<","<"],[">",">"],['"',"""],["'","'"],["'","'"]],r=e;if(!e||!e.replace)return r;for(var n=0;n{"use strict";i.r(t);var s=i(21097),r=i(51768),n=i(38780);function o(e,t=!1){"loading"!==document.readyState?t?setTimeout((()=>e()),1):e():document.addEventListener("DOMContentLoaded",(()=>e()))}new Promise((e=>{o(e)}));function a(e,t="x"){let i=!1;return"x"!==t&&"both"!==t||(i=i||e.offsetWidth{document.addEventListener("mouseenter",(e=>{const t=e.target;if(t instanceof HTMLElement&&t.matches(".apply-overflow-tooltip")){let e="x";if(t.matches(".apply-overflow-tooltip--direction_both")?e="both":t.matches(".apply-overflow-tooltip--direction_y")&&(e="y"),t.matches(".apply-overflow-tooltip--check-children-recursively")){if(!l(t,e))return}else if(t.matches(".apply-overflow-tooltip--check-children")){let i=!1;const s=t.children;for(let t=0;t(t.nodeType===Node.TEXT_NODE&&e.push(t.textContent||""),e)),[]).join("").trim(),(0,n.showOnElement)(t,{text:i});const s=()=>{(0,n.hide)(),["mouseleave","mousedown"].forEach((e=>t.removeEventListener(e,s)))};["mouseleave","mousedown"].forEach((e=>t.addEventListener(e,s)))}}),!0)}));var c=i(26867),h=i.n(c),d=i(11417),u=i(933);let p;function _(e){window.iframeAuthWidget&&!1===window.user.profile_data_filled&&(window.iframeAuthWidget.preventClose=!0);const t=window.user.available_offers||{};window.TVSettings&&window.TVSettings.sync(window.user.settings),window.is_authenticated?(e||(initOfferLoginStateChangeButton(),onGoPro()&&window.location.reload()),!1===window.user.profile_data_filled&&((0, r.trackEvent)("Conversion","First login"),delete window.user.profile_data_filled)):(Object.keys(t).forEach((e=>{const i=e;t[i].available_for_anons||delete t[i]})),window.user={username:"Guest",following:"0",followers:"0",ignore_list:[],available_offers:t},d.TVLocalStorage.removeItem("trial_availiable"))}p=window.loginStateChange?window.loginStateChange:window.loginStateChange=new(h()),p.subscribe(null,_),s.TVXWindowEvents.on("loginStateChange",(e=>{const t=JSON.parse(e);window.user=t.user,window.is_authenticated=!!t.is_authenticated,p.fire()})),s.TVXWindowEvents.on("signOut",(()=>{!function(){if(window.initData.lfs){const e=document.getElementsByClassName("js-admin-warning")[0];document.body.removeChild(e)}let e=!0;[/^\/chart\//,/^\/share-your-love\//].forEach((t=>{t.test(window.location.pathname)&&(e=!1)})),e&&window.location.reload()}()})),(()=>{const e="user-obj-changed",t={};window.crossTabSyncUserAttr=t=>{const i={};t instanceof Array?t.forEach((e=>{i[e]=window.user[e]})):i[t]=window.user[t],s.TVXWindowEvents.emit(e,JSON.stringify(i))},s.TVXWindowEvents.on(e,(e=>{const i=JSON.parse(e);let s;for(s in i)if(i.hasOwnProperty(s)){window.user[s]=i[s];(t[s]||[]).forEach((e=>{e.fire(i[s])}))}}))})(),window.TradingView.changeLoginState=e=>{window.is_authenticated=!!e,s.TVXWindowEvents.emit("loginStateChange",JSON.stringify({is_authenticated:window.is_authenticated,user:window.user})),p.fire()},window.loginUser=function(e,t){window.TVDialogs&&window.TVDialogs.signModal&&window.TVDialogs.signModal.close(),window.user=(0,u.deepExtend)({},e),window.TradingView.changeLoginState(!0),"function"==typeof t&&window.TVDialogs&&window.TVDialogs.signModal?window.TVDialogs.signModal.on("signinSuccess",(()=>{t()})):"function"==typeof t&&t()},window.loginRequiredDelegate=new(h()),window.runOrSignIn=(e,t)=>{t||(t={}),e()},window.onLoginStateChange=_,window.TradingView.setTrialAvailiable=e=>{d.TVLocalStorage.setItem("trial_availiable",e?"1":"0")},window.TradingView.notificationsChanged=new(h())},38031:(e,t,i)=>{"use strict";i.r(t),i.d(t,{generateColor:()=>r,applyAlpha:()=>n,alphaToTransparency:()=>o,transparencyToAlpha:()=>a,applyTransparency:()=>l,resetTransparency:()=>c,getLuminance:()=>h,isHexColor:()=>d,colorFromBackground:()=>u,gradientColorAtPercent:()=>p,isColorDark:()=>_,rgbaFromInteger:()=>m,rgbaToInteger:()=>g,colorToInteger:()=>f});var s=i(24377);function r(e,t,i){if(t=t||0,!d(e))return i?(0,s.rgbaToString)((0,s.rgba)((0,s.parseRgb)(e),(0,s.normalizeAlphaComponent)(a(t)))):e;const[r,n,o]=(0,s.parseRgb)(e),l=(0,s.normalizeAlphaComponent)(a(t));return(0,s.rgbaToString)([r,n,o,l])}function n(e,t){return r(e,o(t))}function o(e){return 100*(1-e)}function a(e){if(e<0||e>100)throw new Error("invalid transparency");return 1-e/100}function l(e,t){if("transparent"===e)return e;const i=(0,s.parseRgba)(e),r=i[3];return(0,s.rgbaToString)((0,s.rgba)(i[0],i[1],i[2],a(t)*r))}function c(e){return"transparent"===e||d(e)?e:(0,s.rgbaToString)((0,s.rgba)((0,s.parseRgb)(e),(0,s.normalizeAlphaComponent)(1)))}function h(e){const t=(0, s.parseRgb)(e).map((e=>(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)));return Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function d(e){return 0===e.indexOf("#")}function u(e){return"black"===(0,s.rgbToBlackWhiteString)((0,s.parseRgb)(e),150)?"#ffffff":"#000000"}function p(e,t,i){const[r,n,o,a]=(0,s.parseRgba)(e),[l,c,h,d]=(0,s.parseRgba)(t),u=(0,s.rgba)(Math.round(r+i*(l-r)),Math.round(n+i*(c-n)),Math.round(o+i*(h-o)),a+i*(d-a));return(0,s.rgbaToString)(u)}function _(e){return h(c(e))<.5}function m(e){const t=(e=Math.round(e))%256;e-=t;const i=(e/=256)%256;e-=i;const s=(e/=256)%256;e-=s;return`rgba(${t},${i},${s},${(e/=256)/255})`}function g(e){const t=Math.round(255*e[3]);return e[0]+256*e[1]+65536*e[2]+16777216*t}function f(e){const t=(0,s.tryParseRgba)(e);return null===t?0:g(t)}},70439:(e,t,i)=>{"use strict";i.d(t,{doAnimate:()=>n});const s={from:0,duration:250,easing:i(41207).easingFunc.easeOutCubic};class r{constructor(e){this._doing=!0,this._completed=!1,this._options={...s,...e};const t=performance.now();window.requestAnimationFrame((e=>{this._animation(t,this._options.from,e)}))}stop(){this._doing=!1}completed(){return this._completed}_animation(e,t,i){if(!this._doing)return void this._finishAnimation();const s=(i=!i||i<1e12?performance.now():i)-e,r=s>=this._options.duration||t===this._options.to,n=(o=this._options.from,a=this._options.to,l=this._options.easing(s/this._options.duration),o*(1-l)+a*l);var o,a,l;const c=r?this._options.to:n,h=c-t;this._options.onStep(h,c),r?this._finishAnimation():window.requestAnimationFrame((t=>{this._animation(e,c,t)}))}_finishAnimation(){this._options.onComplete&&this._options.onComplete(),this._completed=!0}}function n(e){return new r(e)}},93043:(e,t,i)=>{"use strict";i.d(t,{fetch:()=>s});(0,i(98351).getLogger)("Fetch");function s(e,t,i={}){return window.fetch(e,t)}},98351:(e,t,i)=>{"use strict";i.r(t),i.d(t,{LOGLEVEL:()=>n,getLogLevel:()=>g,isHighRateEnabled:()=>f,setLogLevel:()=>v,getRawLogHistory:()=>S,serializeLogHistoryEntry:()=>y,getLogHistory:()=>b,getLogger:()=>P,loggingOn:()=>T,loggingOff:()=>x});const s="undefined"!=typeof window?window:{};let r=!1;try{localStorage.getItem(""),r=!0}catch(e){}var n;!function(e){e[e.ERROR=1]="ERROR",e[e.WARNING=2]="WARNING",e[e.INFO=3]="INFO",e[e.NORMAL=4]="NORMAL",e[e.DEBUG=5]="DEBUG"}(n||(n={}));let o=0;const a="tv.logger.loglevel",l="tv.logger.logHighRate",c=[];let h=null,d=null,u=null,p=NaN,_=n.WARNING,m=!1;function g(){return _}function f(){return m}function v(e){e=Math.max(n.ERROR,Math.min(n.DEBUG,e)),_=e,I()}function S(e,t){let i=c.reduce(((e,t)=>e.concat(t)),[]);return i.sort(((e,t)=>e.id-t.id)),void 0!==t&&(i=i.filter((e=>e.subSystemId===t))),"number"==typeof e&&(i=i.slice(-e)),i}function y(e){return new Date(e.timestamp).toISOString()+":"+e.subSystemId+":"+e.message.replace(/"/g,"'")}function b(e,t){return function(e,t){let i,s=0,r=0;for(i=e.length-1;i>=1&&(s+=8*(1+encodeURIComponent(e[i]).length),!(i-1>0&&(r=8*(1+encodeURIComponent(e[i-1]).length),s+r>t)));i--);return e.slice(i)}(S(e,t).map(y),75497472) }function w(e,t,i,s){if(t===d&&s.id===u)return;const r=new Date;if(e<=n.NORMAL&&function(e,t,i,s,r){"function"==typeof structuredClone&&(t=structuredClone(t));const n={id:o,message:t,subSystemId:s,timestamp:Number(e)};o+=1,i.push(n),void 0!==r&&i.length>r&&i.splice(0,1)}(r,t,i,s.id,s.maxCount),e<=_&&(!s.highRate||f())&&(!h||s.id.match(h))){const i=r.toISOString()+":"+s.id+":"+t;switch(e){case n.DEBUG:console.debug(i);break;case n.INFO:case n.NORMAL:s.color?console.log("%c"+i,"color: "+s.color):console.log(i);break;case n.WARNING:console.warn(i);break;case n.ERROR:console.error(i)}d=t,u=s.id,p&&clearTimeout(p),p=setTimeout((()=>{d=null,u=null,p=NaN}),1e3)}}function P(e,t={}){const i=[];c.push(i);const s=Object.assign(t,{id:e});function r(e){return t=>w(e,String(t),i,s)}return{logDebug:r(n.DEBUG),logError:r(n.ERROR),logInfo:r(n.INFO),logNormal:r(n.NORMAL),logWarn:r(n.WARNING)}}const C=P("logger"),T=s.lon=(e,t)=>{v(n.DEBUG),C.logNormal("Debug logging enabled"),m=Boolean(e),h=t||null,I()},x=s.loff=()=>{v(n.INFO),C.logInfo("Debug logging disabled")};function I(){try{r&&(localStorage.setItem(l,String(m)),localStorage.setItem(a,String(_)))}catch(e){C.logWarn(`Cannot save logger state (level: ${_}, high-rate: ${m}) to localStorage: ${e.message}`)}}!function(){m=!!r&&"true"===localStorage.getItem(l);let e=parseInt(r&&localStorage.getItem(a)||"");Number.isNaN(e)&&(e=n.WARNING),v(e),C.logNormal(`Init with settings - level: ${_}, high-rate: ${m}`)}(),s.performance&&s.performance.now?C.logNormal(`Sync logger and perf times, now is ${s.performance.now()}`):C.logWarn("Perf time is not available")},95242:(e,t,i)=>{"use strict";function s(e,t,i,s){return`${s?s+" ":""}${i?i+" ":""}${e}px ${t}`}i.d(t,{makeFont:()=>s,parseFont:()=>n});const r=/(bold )?(italic )?(\d+)(px|pt) (.*)$/;function n(e){const t=r.exec(e);return null===t?null:{family:t[5],size:parseInt(t[3])*("pt"===t[4]?.75:1),bold:Boolean(t[1]),italic:Boolean(t[2])}}},70641:(e,t,i)=>{"use strict";i.d(t,{visitObject:()=>n});var s=i(65665);function r(e,t,i){return(0,s.isArray)(e)?function(e,t,i){return e.map((e=>{const s=r(e,t,i),n=t(s);return void 0!==n?n:s}))}(e,t,i):(0,s.isObject)(e)&&((0,s.isHashObject)(e)||i&&i.visitInstances)?function(e,t,i){const s={};return Object.keys(e).forEach((n=>{const o=r(e[n],t,i),a=t(o);s[n]=void 0!==a?a:o})),s}(e,t,i):e}function n(e,t,i){const s=r(e,t,i),n=t(s);return void 0!==n?n:s}},41225:(e,t,i)=>{"use strict";function s(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}i.d(t,{regExpEscape:()=>s})},80142:(e,t,i)=>{"use strict";i.r(t),i.d(t,{isRtl:()=>r,stripLTRMarks:()=>a,startWithLTR:()=>l,forceLTRStr:()=>c,forceLTRStrSsr:()=>h,forceRTLStr:()=>d,getLTRScrollLeft:()=>u,getLTRScrollLeftOffset:()=>p,detectAutoDirection:()=>g});var s=i(64531);const r=()=>"rtl"===window.document.dir,n="‬",o=new RegExp("‎|‪|‫|‬","g");function a(e){return""!==e&&r()&&null!=e?e.replace(o,""):e}function l(e){return""!==e&&r()&&null!=e?"‎"+e:e}function c(e){return""!==e&&r()&&null!=e?"‪"+e+n:e}function h(e){return"‪"+e+n}function d(e){ -return""!==e&&r()&&null!=e?"‫"+e+n:e}function u(e){return(0,s.getNormalizedScrollLeft)(e,"rtl")}function p(e,t){const i=(0,s.detectScrollType)();if("indeterminate"===i)return 0;switch(i){case"negative":t=e.clientWidth-e.scrollWidth+t;break;case"reverse":t=e.scrollWidth-e.clientWidth-t}return t}const _=/[^\u0000-\u0040\u005B-\u0060\u007B-\u00BF\u00D7\u00F7\u02B9-\u02FF\u2000-\u200E\u2010-\u2029\u202C\u202F-\u2BFF]/,m=/[\u0590-\u07FF\u200F\u202B\u202E\uFB1D-\uFDFD\uFE70-\uFEFC]/;function g(e){const t=_.exec(e);return t?m.test(t[0])?"rtl":"ltr":""}},41207:(e,t,i)=>{"use strict";i.d(t,{CubicBezier:()=>s.CubicBezier,dur:()=>s.dur,easingFunc:()=>s.easingFunc});var s=i(74991)},28105:(e,t,i)=>{"use strict";function s(){return Promise.all([i.e(8230),i.e(5384),i.e(346),i.e(5100),i.e(962),i.e(3016),i.e(2077)]).then(i.bind(i,73501))}i.d(t,{loadChangeIntervalDialog:()=>s})},84603:(e,t,i)=>{"use strict";i.d(t,{showChangeIntervalDialogAsync:()=>n});var s=i(28105);let r=null;function n(e){const t=r=(0,s.loadChangeIntervalDialog)().then((i=>{t===r&&i.showChangeIntervalDialog(e)}));return t}},68009:(e,t,i)=>{"use strict";function s(e){return Promise.all([i.e(8230),i.e(5384),i.e(7624),i.e(1428),i.e(1685),i.e(9333),i.e(8619),i.e(346),i.e(7177),i.e(8049),i.e(8955),i.e(9415),i.e(3046),i.e(7342),i.e(962),i.e(8180),i.e(3016),i.e(1075),i.e(9050),i.e(1859)]).then(i.bind(i,78789)).then((t=>t.showGoToDateDialog(e)))}i.d(t,{showGoToDateDialog:()=>s})},25071:(e,t,i)=>{"use strict";i.d(t,{showTooManyStudiesNotice:()=>n});var s=i(44352),r=i(3615);function n(e){"number"!=typeof e&&(e=TradingView.STUDY_COUNT_LIMIT),(0,r.showWarning)({title:s.t(null,void 0,i(33603)),text:s.t(null,void 0,i(70213)).format({number:e})})}},30371:(e,t,i)=>{"use strict";i.d(t,{StudyMarket:()=>n});var s=i(40549),r=i.n(s);class n{constructor(e,t){this._visibility=new(r())(!1),this._dialogPromise=null,this._dialog=null,this._chartWidgetCollection=e,this._options=t}visible(){return this._visibility.readonly()}show(e,t,i){var s;const r=void 0;null===this._dialog&&this._requestDialog(null!=e?e:[],r,t,i),null===(s=this._dialog)||void 0===s||s.open(null!=e?e:[],r,t,i)}hide(){var e;null===(e=this._dialog)||void 0===e||e.hide()}resetAllPages(){var e;null===(e=this._dialog)||void 0===e||e.resetAllStudies()}_requestDialog(e,t,s,r){if(null===this._dialogPromise){let n;n=Promise.all([i.e(8230),i.e(5384),i.e(1428),i.e(1685),i.e(8619),i.e(8271),i.e(4412),i.e(6304),i.e(9262),i.e(962),i.e(3016),i.e(6456)]).then(i.bind(i,56903)).then((e=>new e.IndicatorsLibraryContainer(this._chartWidgetCollection,this._options))),this._dialogPromise=n.then((i=>{this._dialog=i,this._dialog.visible().subscribe((e=>{this._visibility.setValue(e)})),this._dialog.open(e,t,s,r)}))}return this._dialogPromise}}},65312:(e,t,i)=>{"use strict";i.d(t,{setAdditionalSymbolInfoFields:()=>r,getAdditionalSymbolInfoFields:()=>n});let s=[];function r(e){s=e}function n(){return s}},29628:(e,t,i)=>{"use strict";function s(e,t){ +return""!==e&&r()&&null!=e?"‫"+e+n:e}function u(e){return(0,s.getNormalizedScrollLeft)(e,"rtl")}function p(e,t){const i=(0,s.detectScrollType)();if("indeterminate"===i)return 0;switch(i){case"negative":t=e.clientWidth-e.scrollWidth+t;break;case"reverse":t=e.scrollWidth-e.clientWidth-t}return t}const _=/[^\u0000-\u0040\u005B-\u0060\u007B-\u00BF\u00D7\u00F7\u02B9-\u02FF\u2000-\u200E\u2010-\u2029\u202C\u202F-\u2BFF]/,m=/[\u0590-\u07FF\u200F\u202B\u202E\uFB1D-\uFDFD\uFE70-\uFEFC]/;function g(e){const t=_.exec(e);return t?m.test(t[0])?"rtl":"ltr":""}},41207:(e,t,i)=>{"use strict";i.d(t,{CubicBezier:()=>s.CubicBezier,dur:()=>s.dur,easingFunc:()=>s.easingFunc});var s=i(74991)},28105:(e,t,i)=>{"use strict";function s(){return Promise.all([i.e(8230),i.e(5384),i.e(346),i.e(5100),i.e(962),i.e(3016),i.e(2077)]).then(i.bind(i,73501))}i.d(t,{loadChangeIntervalDialog:()=>s})},84603:(e,t,i)=>{"use strict";i.d(t,{showChangeIntervalDialogAsync:()=>n});var s=i(28105);let r=null;function n(e){const t=r=(0,s.loadChangeIntervalDialog)().then((i=>{t===r&&i.showChangeIntervalDialog(e)}));return t}},68009:(e,t,i)=>{"use strict";function s(e){return Promise.all([i.e(8230),i.e(5384),i.e(7624),i.e(1428),i.e(1685),i.e(9333),i.e(8619),i.e(346),i.e(7177),i.e(8049),i.e(8955),i.e(9415),i.e(3046),i.e(7342),i.e(962),i.e(2215),i.e(3016),i.e(1075),i.e(9050),i.e(1859)]).then(i.bind(i,78789)).then((t=>t.showGoToDateDialog(e)))}i.d(t,{showGoToDateDialog:()=>s})},25071:(e,t,i)=>{"use strict";i.d(t,{showTooManyStudiesNotice:()=>n});var s=i(44352),r=i(3615);function n(e){"number"!=typeof e&&(e=TradingView.STUDY_COUNT_LIMIT),(0,r.showWarning)({title:s.t(null,void 0,i(33603)),text:s.t(null,void 0,i(70213)).format({number:e})})}},30371:(e,t,i)=>{"use strict";i.d(t,{StudyMarket:()=>n});var s=i(40549),r=i.n(s);class n{constructor(e,t){this._visibility=new(r())(!1),this._dialogPromise=null,this._dialog=null,this._chartWidgetCollection=e,this._options=t}visible(){return this._visibility.readonly()}show(e,t,i){var s;const r=void 0;null===this._dialog&&this._requestDialog(null!=e?e:[],r,t,i),null===(s=this._dialog)||void 0===s||s.open(null!=e?e:[],r,t,i)}hide(){var e;null===(e=this._dialog)||void 0===e||e.hide()}resetAllPages(){var e;null===(e=this._dialog)||void 0===e||e.resetAllStudies()}_requestDialog(e,t,s,r){if(null===this._dialogPromise){let n;n=Promise.all([i.e(8230),i.e(5384),i.e(1428),i.e(1685),i.e(8619),i.e(8271),i.e(4412),i.e(6304),i.e(9262),i.e(962),i.e(3016),i.e(6456)]).then(i.bind(i,85634)).then((e=>new e.IndicatorsLibraryContainer(this._chartWidgetCollection,this._options))),this._dialogPromise=n.then((i=>{this._dialog=i,this._dialog.visible().subscribe((e=>{this._visibility.setValue(e)})),this._dialog.open(e,t,s,r)}))}return this._dialogPromise}}},65312:(e,t,i)=>{"use strict";i.d(t,{setAdditionalSymbolInfoFields:()=>r,getAdditionalSymbolInfoFields:()=>n});let s=[];function r(e){s=e}function n(){return s}},29628:(e,t,i)=>{"use strict";function s(e,t){ Promise.all([i.e(8230),i.e(5384),i.e(2685),i.e(962),i.e(3016),i.e(9374)]).then(i.bind(i,16078)).then((i=>{i.showSymbolInfoDialog(null!=e?e:null,t)}))}i.d(t,{showSymbolInfoDialog:()=>s})},26690:(e,t,i)=>{"use strict";i.d(t,{ChartSaverBase:()=>a});var s=i(16230),r=i(25927),n=i(26867),o=i.n(n);new WeakMap;new TextEncoder;class a{constructor(e){this._prevChartState=null,this._chartSavedDelegate=new(o()),this._chartWidgetCollection=e}saveChartLineTools(e,t,i,s){return Promise.reject("Line tools storage is not supported")}_getCommonSavingInfo(e){const t=this._chartWidgetCollection,i=this._chartWidgetCollection.chartsSymbols(),s=i[t.activeChartWidget.value().id()],r={...(n=s,{...n,legs:JSON.stringify(null!==(o=n.legs)&&void 0!==o?o:[])})};var n,o;const a=t.metaInfo;return a.id.value()&&(r.id=a.id.value()),r.name=a.name.value()||"",r.description=a.description.value()||"",r.charts_symbols=function(e){const t={};for(const i of Object.keys(e))t[i]={symbol:e[i].symbol};return JSON.stringify(t)}(i),r.is_realtime=r.is_realtime=e?"0":"1",r}async _saveLineToolsToStorage(){return Promise.resolve()}async _saveChart(e,t,i,n){var o;const a=this._chartWidgetCollection.metaInfo;let l=null!==(o=n.changes)&&void 0!==o?o:r.changedAll,c=!0;if(2&l)try{await this._saveLineToolsToStorage()}catch(e){l|=1,c=!1}if(1&l){const r=e(c);if((0,s.default)(this._prevChartState,r)&&null!==a.id.value())return this._chartSavedDelegate.fire(!0),void t(a,r);0;const o=(e,i)=>(c||this._chartWidgetCollection.getAll().forEach((e=>{var t;return null===(t=e.lineToolsSynchronizer())||void 0===t?void 0:t.markAsValidatedBecuaseOfSavingToContent(!0)})),t(e,i));return this._saveChartImpl(r,a,o,i,n,e)}this._chartSavedDelegate.fire(!0),t(a,null)}}},93919:(e,t,i)=>{"use strict";var s=i(26867),r=i(50151).assert,n=i(7276).backend,o=i(26690).ChartSaverBase;i(44352).t(null,void 0,i(8162)),i(44352).t(null,void 0,i(17994)),i(44352).t(null,void 0,i(87375));function a(e,t){e.content=JSON.stringify(t)}t.ChartSaver=class extends o{constructor(e){super(e),this._chartAboutToBeSavedDelegate=new s,this._chartSavedDelegate=new s,this._chartSizeLimitExceededDelegate=new s}chartSizeLimitExceeded(){return this._chartSizeLimitExceededDelegate}chartAboutToBeSaved(){return this._chartAboutToBeSavedDelegate}chartSaved(){return this._chartSavedDelegate}saveToJSON(){var e=this._getCommonSavingInfo(!1);return a(e,this._getChartWidgetCollectionState(!1,!0)),e}_getChartWidgetCollectionState(e,t,i,s,r){return e||(t=!0,s=!1),t?this._chartWidgetCollection.state(!!e,i,s,r):this._chartWidgetCollection.activeChartWidget.value().state(!!e,i,s,r)}publishChart(e){}publishScript(e,t,i){}onPublish(e,t){}_saveChartImpl(e,t,i,s,r,o){var a=i,l=s;if(a=function(s){t.id.value()||(t.id.setValue(s),t.uid.setValue(s)),"function"==typeof i&&i(t,e)},!e.name)return console.warn("Saving chart with empty name is not allowed"),void s();n.saveChart(e.name,e.short_name,e.resolution,e,t).then(a.bind(this)).catch(l.bind(this))}saveChartSilently(e,t,i){i=i||{};var s=function(e){ var t=e&&!1,s=this._getChartWidgetCollectionState(!1,void 0,void 0,void 0,t),r=this._getCommonSavingInfo(!1,t);return a(r,s),i.chartName&&(r.name=i.chartName),r.name&&0!==r.name.length||!i.defaultChartName||(r.name=i.defaultChartName),i.autoSave&&(r.autoSave=!0),r}.bind(this);this._isSaveInProcess=!0,this._chartAboutToBeSavedDelegate.fire(),this._saveChart(s,function(t,i){r(!this._chartWidgetCollection.readOnly(),"Trying to save layout in read-only mode"),i&&this._chartWidgetCollection.metaInfo.name.setValue(i.name),this._prevChartState=i,this._chartSavedDelegate.fire(!0),this._isSaveInProcess=!1,e&&e({uid:t.uid.value(),data:i}),this._prevChartState&&delete this._prevChartState.savingToken}.bind(this),function(){this._chartSavedDelegate.fire(!1),this._isSaveInProcess=!1,t&&t.apply(null,arguments)}.bind(this),i)}isSaveInProcess(){return this._isSaveInProcess}}},23902:(e,t,i)=>{"use strict";i.d(t,{getTranslatedSymbolDescription:()=>s});i(44352);function s(e){return e.description||""}},86339:(e,t,i)=>{"use strict";function s(e){return e+"…"}i.d(t,{appendEllipsis:()=>s})},99630:(e,t,i)=>{"use strict";function s(e){if(!o(e))throw e}function r(e){return(null==e?void 0:e.aborted)?Promise.reject(n()):new Promise(((t,i)=>{null==e||e.addEventListener("abort",(()=>i(n())),{once:!0})}))}function n(){return new DOMException("Aborted","AbortError")}function o(e){return e instanceof Error&&"AbortError"===e.name}function a(e,t){return Promise.race([r(e),t])}async function l(e,t){let i;try{await a(e,new Promise((e=>{i=setTimeout(e,t)})))}finally{clearTimeout(i)}}i.d(t,{skipAbortError:()=>s,isAbortError:()=>o,respectAbort:()=>a,delay:()=>l})},85228:(e,t,i)=>{"use strict";function s(e){let t;if("object"!=typeof e||null==e||"number"==typeof e.nodeType)t=e;else if(e instanceof Date)t=new Date(e.valueOf());else if(Array.isArray(e)){t=[];let i=0;const r=e.length;for(;is})},933:(e,t,i)=>{"use strict";function s(e,...t){return e&&"object"==typeof e?(0===t.length||t.forEach((t=>{null!=t&&"object"==typeof t&&Object.keys(t).forEach((i=>{const n=e[i],o=t[i];if(o===e)return;const a=Array.isArray(o);if(o&&(r(o)||a)){let t;t=a?n&&Array.isArray(n)?n:[]:n&&r(n)?n:{},e[i]=s(t,o)}else void 0!==o&&(e[i]=o)}))})),e):e}function r(e){if(!e||"[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);if(!t)return!0;const i=Object.hasOwnProperty.toString,s=t.hasOwnProperty("constructor")&&t.constructor;return"function"==typeof s&&i.call(s)===i.call(Object)}i.d(t,{deepExtend:()=>s})},71668:(e,t,i)=>{"use strict";function s(){let e,t;return{promise:new Promise(((i,s)=>{e=i,t=s})),reject:t,resolve:e}}i.d(t,{createDeferredPromise:()=>s})},33972:(e,t,i)=>{"use strict";function s(e){if(void 0===e)return"";if(e instanceof Error){let t=e.message;return e.stack&&(t+=" "+e.stack),t}return"string"==typeof e?e.toString():JSON.stringify(e)}i.d(t,{ errorToString:()=>s})},5692:(e,t,i)=>{"use strict";i.d(t,{getTwemojiUrl:()=>r});var s=i(18438);function r(e,t){let i="";return s.default.parse(e,(e=>(i=s.default.base+("svg"===t?`svg/${e}.svg`:`72x72/${e}.png`),!1))),i}s.default.base="https://cdnjs.cloudflare.com/ajax/libs/twemoji/13.0.1/"},68671:(e,t,i)=>{"use strict";i.r(t),i.d(t,{guid:()=>r,randomHash:()=>n,randomHashN:()=>o});const s="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function r(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}function n(){return o(12)}function o(e){let t="";for(let i=0;i{"use strict";i.d(t,{parseHtml:()=>r,parseHtmlElement:()=>n});const s=new WeakMap;function r(e,t){let i,r;return i=null==t?document.documentElement:9===t.nodeType?t.documentElement:t,s&&(r=s.get(i)),r||(r=i.ownerDocument.createRange(),r.selectNodeContents(i),s&&s.set(i,r)),r.createContextualFragment(e)}function n(e,t){const i=r(e,t),s=i.firstElementChild;return null!==s&&i.removeChild(s),s}},33933:(e,t,i)=>{"use strict";function s(e){e.preventDefault()}i.d(t,{preventDefault:()=>s,preventDefaultForContextMenu:()=>n});const r=["input:not([type])",'input[type="text"]','input[type="email"]','input[type="password"]','input[type="search"]','input[type="number"]','input[type="url"]',"textarea","a[href]",'*[contenteditable="true"]',"[data-allow-context-menu]"];function n(e){const t=e.target;t&&!t.closest(r.join(", "))&&e.preventDefault()}},10381:(e,t,i)=>{"use strict";i.d(t,{htmlEscape:()=>n,removeSpaces:()=>o,capitalizeFirstLetterInWord:()=>a});const s=/[<"'&>]/g,r=e=>`&#${e.charCodeAt(0)};`;function n(e){return e.replace(s,r)}function o(e=""){return e.replace(/\s+/g,"")}function a(e=""){return e.replace(/\b\w/g,(e=>e.toUpperCase()))}},21095:(e,t,i)=>{"use strict";function s(e){return e.reduce((function(e,t,i){return~e.indexOf(t)||e.push(t),e}),[])}i.r(t),i.d(t,{uniq:()=>s})},1457:e=>{e.exports=''},55824:e=>{e.exports=''},37924:e=>{e.exports=''},2872:e=>{ diff --git a/charting_library/bundles/runtime.dabbddb8e0cf198a3951.js b/charting_library/bundles/runtime.9e6a94224bc7334ac8fa.js similarity index 76% rename from charting_library/bundles/runtime.dabbddb8e0cf198a3951.js rename to charting_library/bundles/runtime.9e6a94224bc7334ac8fa.js index 6d0c92d2..944b9a55 100644 --- a/charting_library/bundles/runtime.dabbddb8e0cf198a3951.js +++ b/charting_library/bundles/runtime.9e6a94224bc7334ac8fa.js @@ -1,5 +1,5 @@ -(()=>{"use strict";var e,a,c,d,f,t={},b={};function r(e){var a=b[e];if(void 0!==a)return a.exports;var c=b[e]={id:e,loaded:!1,exports:{}};return t[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=t,r.c=b,e=[],r.O=(a,c,d,f)=>{if(!c){var t=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(b=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,d,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var t={};a=a||[null,c({}),c([]),c(c)];for(var b=2&d&&e;"object"==typeof b&&!~a.indexOf(b);b=c(b))Object.getOwnPropertyNames(b).forEach((a=>t[a]=()=>e[a]));return t.default=()=>e,r.d(f,t),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>5652===e?"__LANG__.5652.e8bf228a6da07385f3cd.js":2468===e?"__LANG__.2468.4338de5955cc8d3cb66d.js":4782===e?"__LANG__.4782.b54749a80d1b22661ce2.js":6848===e?"__LANG__.6848.1833cd09ce56c0318402.js":6803===e?"__LANG__.6803.be8cafcc34e317edec88.js":6444===e?"__LANG__.6444.4dd7c5a260f1ab2f3d47.js":6682===e?"__LANG__.6682.fc6d6d5a6889089c265c.js":4800===e?"__LANG__.4800.b83a96f0775e7b691faa.js":7257===e?"__LANG__.7257.089fbbc28bead9558b87.js":4150===e?"__LANG__.4150.61de76c7f578feeb03b8.js":8087===e?"__LANG__.8087.02a950e0b171d1520043.js":({92:"chart-screenshot-hint",139:"get-error-card",507:"study-pane-views",607:"study-property-pages-with-definitions",731:"add-compare-dialog",1583:"lt-pane-views",1584:"context-menu-renderer",1702:"manage-drawings-dialog",1754:"symbol-search-dialog",1859:"go-to-date-dialog-impl",1890:"line-tools-icons",2077:"change-interval-dialog",2183:"study-inputs-pane-views",2306:"floating-toolbars",2377:"hammerjs",2616:"svg-renderer",2704:"currency-label-menu",2878:"drawing-toolbar",3005:"header-toolbar",3030:"new-confirm-inputs-dialog",3596:"general-property-page",4013:"custom-intervals-add-dialog",4079:"series-pane-views",4389:"take-chart-image-impl",4665:"share-chart-to-social-utils",4862:"object-tree-dialog",5009:"load-chart-dialog",5093:"chart-widget-gui",5516:"restricted-toolset",5551:"favorite-drawings-api",6166:"chart-event-hint",6265:"new-edit-object-dialog",6456:"study-market",6631:"study-template-dialog",6780:"source-properties-editor",7078:"general-chart-properties-dialog",7260:"chart-bottom-toolbar",7271:"compare-model",7648:"show-theme-save-dialog",7987:"lt-icons-atlas",8020:"user-defined-bars-marks-tooltip",8537:"lt-property-pages-with-definitions",8643:"full-tooltips-popup",8890:"simple-dialog",9039:"lollipop-tooltip-renderer",9374:"symbol-info-dialog-impl", -9498:"export-data",9685:"series-icons-map"}[e]||e)+"."+{92:"313b0b47e4c76ba21a62",105:"85874ab839d32a8a7c70",139:"ea6360a95cdae7dad70f",140:"c698f8c0979e0aa76e73",240:"92480a47078a540a8a03",346:"76334afce982f8384be4",507:"8e4a9692b00afacda22d",535:"74d9bc0e51d0ad585990",537:"76ee48ffd2cc878e82ae",607:"0c619cfdb68ef43fdb67",731:"edd0f8d5d2491a1d1c06",892:"ac3eeb47e69ab8ff8ac7",962:"e2eb6a85de39a3d76e5d",1033:"bb804c64fe58de0bace7",1075:"1c913af3f0b8358a4d09",1140:"530d2fbf19217c6c2837",1271:"87cc24463b0ab368ff24",1416:"87239bba7a5772e2e600",1428:"4db8f95385076af2ebe2",1528:"9cdf3baeece30724e816",1553:"c076714f5e24887f0b94",1583:"659b8e5645df4b33847d",1584:"45f14d00e0059c52ee00",1685:"838d129505966759899c",1702:"35e2e7bf6e31f5598ae4",1754:"318dd6851c75d04282d4",1830:"d1c5f4191fdcdbf7b350",1859:"473a3b561104e5c3d51f",1890:"f41aaa48b2150958e27c",1960:"8ebd2403c6732e36d3bb",2077:"c471fd455cbea7147266",2140:"5564abccc94437be80a9",2158:"4b603780e909661194b1",2182:"585826b4a9a58eaa7e4a",2183:"45f89fd8e14c3fbea0d7",2215:"e87235d359e4c375c7b9",2306:"91bb0faa913751e75714",2377:"6e30e0c48af40bf2f6c0",2397:"b12d74441412d9602243",2616:"20f83194edf7431f951e",2685:"c1a906d8819deb9b5ca4",2704:"2815415ec54984e7a75c",2754:"617c76909eb4b2b7f861",2804:"51df698f3652fc234339",2842:"61ec1448858319f48d5a",2878:"7f226c0314e0a6d13a77",2913:"8db22dab61beccd65338",3005:"d4a8df2c27395bb909ac",3016:"534185c97bcc73193183",3030:"15afcdcee91654fbb6d7",3046:"620828ac31103f5257d0",3200:"da649f495aae3ade4977",3261:"d557899efcd7e4276746",3562:"1a11925dc658611c08ed",3578:"972a3bea2327d8adc96b",3596:"e96347394179591498c3",3626:"626757ec98cee6b4ccdb",3687:"60cdd7c35ed91e8ff15c",3795:"f7338c3d409d1ba72117",3988:"5a425dfbe11985aa0fb7",4013:"cd4f3ce7f332bef49355",4062:"ef79254d1273624a61fe",4079:"8a869c79235246b14f50",4147:"5e81c46177f5963f61bd",4369:"81ecb47c4af1b9de72fa",4389:"273732dacb23911fb5c7",4412:"b2890fa257fb53a16249",4450:"71a13a69c033ad5110aa",4665:"d0d8c434b737debe6dd6",4785:"3d5f5dd0e8226a08f4b1",4819:"3a61ed5890e6fa29c91e",4862:"ceb623c9061579ef4afa",4884:"5bb05ba58fdd28f9b5da",5009:"a3210be66957f59f90ce",5020:"b9af824a0a7e5e020d9b",5093:"c57c742ff21ef41b19be",5100:"ce3f026abe4f758bfc67",5384:"3dc3207fa2eabbc2a630",5516:"292f68f628b81c513fdc",5551:"ebdaba98fd7e4f0a9c1d",5639:"09442c72990cfe1eee09",5729:"7c2985725216bfa75c30",5747:"53cf5258c22b561b8dac",5761:"7cafd7b3fe32b50091c7",5890:"86bca7644e9b4742cfc0",5916:"2c61b4317a248eb7a089",6092:"54c2d754de303c9b7c8a",6166:"0ca3adae43eea16801cf",6265:"d3927b935fd414fbe5ee",6304:"7cb3ed0e3be488d1c8cc",6456:"bc7f3b05f94ea2ddbb50",6631:"a3c9e3bef9359e4ab092",6780:"b847fde494a538aa4b2f",6812:"8859133de433354e78db",6879:"5e54654d836077075405",7078:"8177033bd4fa0c3e7041",7177:"24fd4fdf27847261104f",7260:"fa391f32d66e5615a75e",7263:"f352f6d262009a8bb227",7271:"6458a853f4c2c658810e",7342:"6817554120c91fc72713",7507:"eec4c33278ede4ff77aa",7624:"2fec070ad8eb57fc72aa",7648:"24c0661ddf7f0b31089c",7695:"12e5d268652a1c17d1d3",7895:"6745fb102d98150c4426",7920:"e0aa14628406fdd9aa39",7987:"e989af9bf8cf9856ff25", +(()=>{"use strict";var e,a,d,c,f,t={},b={};function r(e){var a=b[e];if(void 0!==a)return a.exports;var d=b[e]={id:e,loaded:!1,exports:{}};return t[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=t,r.c=b,e=[],r.O=(a,d,c,f)=>{if(!d){var t=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(b=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[d,c,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var t={};a=a||[null,d({}),d([]),d(d)];for(var b=2&c&&e;"object"==typeof b&&!~a.indexOf(b);b=d(b))Object.getOwnPropertyNames(b).forEach((a=>t[a]=()=>e[a]));return t.default=()=>e,r.d(f,t),f},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>5652===e?"__LANG__.5652.e8bf228a6da07385f3cd.js":2468===e?"__LANG__.2468.4338de5955cc8d3cb66d.js":4782===e?"__LANG__.4782.b54749a80d1b22661ce2.js":6848===e?"__LANG__.6848.1833cd09ce56c0318402.js":6803===e?"__LANG__.6803.be8cafcc34e317edec88.js":6444===e?"__LANG__.6444.4dd7c5a260f1ab2f3d47.js":6682===e?"__LANG__.6682.fc6d6d5a6889089c265c.js":4800===e?"__LANG__.4800.b83a96f0775e7b691faa.js":7257===e?"__LANG__.7257.089fbbc28bead9558b87.js":4150===e?"__LANG__.4150.61de76c7f578feeb03b8.js":8087===e?"__LANG__.8087.02a950e0b171d1520043.js":({92:"chart-screenshot-hint",139:"get-error-card",507:"study-pane-views",607:"study-property-pages-with-definitions",731:"add-compare-dialog",1583:"lt-pane-views",1584:"context-menu-renderer",1702:"manage-drawings-dialog",1754:"symbol-search-dialog",1859:"go-to-date-dialog-impl",1890:"line-tools-icons",2077:"change-interval-dialog",2183:"study-inputs-pane-views",2306:"floating-toolbars",2377:"hammerjs",2616:"svg-renderer",2704:"currency-label-menu",2878:"drawing-toolbar",3005:"header-toolbar",3030:"new-confirm-inputs-dialog",3596:"general-property-page",4013:"custom-intervals-add-dialog",4079:"series-pane-views",4389:"take-chart-image-impl",4665:"share-chart-to-social-utils",4862:"object-tree-dialog",5009:"load-chart-dialog",5093:"chart-widget-gui",5516:"restricted-toolset",5551:"favorite-drawings-api",6166:"chart-event-hint",6265:"new-edit-object-dialog",6456:"study-market",6631:"study-template-dialog",6780:"source-properties-editor",7078:"general-chart-properties-dialog",7260:"chart-bottom-toolbar",7271:"compare-model",7648:"show-theme-save-dialog",7987:"lt-icons-atlas",8020:"user-defined-bars-marks-tooltip",8537:"lt-property-pages-with-definitions",8643:"full-tooltips-popup",8890:"simple-dialog",9039:"lollipop-tooltip-renderer",9374:"symbol-info-dialog-impl", +9498:"export-data",9685:"series-icons-map"}[e]||e)+"."+{92:"313b0b47e4c76ba21a62",105:"85874ab839d32a8a7c70",139:"ea6360a95cdae7dad70f",140:"c698f8c0979e0aa76e73",240:"92480a47078a540a8a03",346:"76334afce982f8384be4",507:"8e4a9692b00afacda22d",535:"74d9bc0e51d0ad585990",537:"76ee48ffd2cc878e82ae",607:"0c619cfdb68ef43fdb67",731:"edd0f8d5d2491a1d1c06",892:"ac3eeb47e69ab8ff8ac7",962:"e2eb6a85de39a3d76e5d",1033:"bb804c64fe58de0bace7",1075:"1c913af3f0b8358a4d09",1140:"530d2fbf19217c6c2837",1271:"87cc24463b0ab368ff24",1416:"87239bba7a5772e2e600",1428:"4db8f95385076af2ebe2",1528:"9cdf3baeece30724e816",1553:"c076714f5e24887f0b94",1583:"659b8e5645df4b33847d",1584:"45f14d00e0059c52ee00",1685:"838d129505966759899c",1702:"35e2e7bf6e31f5598ae4",1754:"318dd6851c75d04282d4",1830:"d1c5f4191fdcdbf7b350",1859:"473a3b561104e5c3d51f",1890:"f41aaa48b2150958e27c",1960:"8ebd2403c6732e36d3bb",2077:"c471fd455cbea7147266",2140:"5564abccc94437be80a9",2158:"4b603780e909661194b1",2182:"585826b4a9a58eaa7e4a",2183:"45f89fd8e14c3fbea0d7",2215:"e87235d359e4c375c7b9",2306:"91bb0faa913751e75714",2377:"6e30e0c48af40bf2f6c0",2397:"b12d74441412d9602243",2616:"20f83194edf7431f951e",2685:"c1a906d8819deb9b5ca4",2704:"2815415ec54984e7a75c",2754:"617c76909eb4b2b7f861",2804:"51df698f3652fc234339",2842:"61ec1448858319f48d5a",2878:"7f226c0314e0a6d13a77",2913:"8db22dab61beccd65338",3005:"d4a8df2c27395bb909ac",3016:"534185c97bcc73193183",3030:"15afcdcee91654fbb6d7",3046:"620828ac31103f5257d0",3200:"da649f495aae3ade4977",3261:"d557899efcd7e4276746",3562:"1a11925dc658611c08ed",3578:"972a3bea2327d8adc96b",3596:"e96347394179591498c3",3626:"626757ec98cee6b4ccdb",3687:"60cdd7c35ed91e8ff15c",3795:"f7338c3d409d1ba72117",3988:"5a425dfbe11985aa0fb7",4013:"cd4f3ce7f332bef49355",4062:"ef79254d1273624a61fe",4079:"8a869c79235246b14f50",4147:"5e81c46177f5963f61bd",4369:"81ecb47c4af1b9de72fa",4389:"273732dacb23911fb5c7",4412:"b2890fa257fb53a16249",4450:"71a13a69c033ad5110aa",4665:"d0d8c434b737debe6dd6",4785:"3d5f5dd0e8226a08f4b1",4819:"3a61ed5890e6fa29c91e",4862:"ceb623c9061579ef4afa",4884:"5bb05ba58fdd28f9b5da",5009:"a3210be66957f59f90ce",5020:"b9af824a0a7e5e020d9b",5093:"c57c742ff21ef41b19be",5100:"ce3f026abe4f758bfc67",5384:"3dc3207fa2eabbc2a630",5516:"292f68f628b81c513fdc",5551:"ebdaba98fd7e4f0a9c1d",5639:"09442c72990cfe1eee09",5729:"7c2985725216bfa75c30",5747:"53cf5258c22b561b8dac",5761:"7cafd7b3fe32b50091c7",5890:"86bca7644e9b4742cfc0",5916:"2c61b4317a248eb7a089",6092:"54c2d754de303c9b7c8a",6166:"0ca3adae43eea16801cf",6265:"d3927b935fd414fbe5ee",6304:"7cb3ed0e3be488d1c8cc",6456:"4b22b3a60fa9cdfe3a82",6631:"a3c9e3bef9359e4ab092",6780:"b847fde494a538aa4b2f",6812:"8859133de433354e78db",6879:"5e54654d836077075405",7078:"8177033bd4fa0c3e7041",7177:"24fd4fdf27847261104f",7260:"fa391f32d66e5615a75e",7263:"f352f6d262009a8bb227",7271:"6458a853f4c2c658810e",7342:"6817554120c91fc72713",7507:"eec4c33278ede4ff77aa",7624:"2fec070ad8eb57fc72aa",7648:"24c0661ddf7f0b31089c",7695:"12e5d268652a1c17d1d3",7895:"6745fb102d98150c4426",7920:"e0aa14628406fdd9aa39",7987:"e989af9bf8cf9856ff25", 7989:"c8b3bf0c012e67260f47",8009:"fced7dbff98ff0282061",8020:"bb7109c0dd0c814114f0",8049:"eb5d0cfe52ecca5d4a13",8110:"f1e1b764c4f798416c97",8180:"640f9faeb3f5f9fa190f",8230:"4f8002f852c9259f2469",8251:"233bde7b9dbc42454f05",8271:"ac057a0f1d09d0520f9c",8483:"abe3ea54e13546b167af",8494:"143450f7c00be27369b3",8537:"eafc283dde13edc363ab",8619:"ca45b77c88569b91c04c",8622:"00d0a8d0102afc963fc9",8643:"c4d76612cc0c730a7389",8707:"6f43254d31fccaa6165b",8819:"e3ef6f9f028524561c02",8825:"b6acc714d8c2208ce81d",8887:"5fa45d75b8eeb4bdead8",8890:"5dd31d8783a4794959a0",8955:"bafc3cf104daf05f1298",9039:"a3d3a335db14444e4890",9050:"f4820dabd96059521d2c",9230:"eb70b4621f18a82dd739",9262:"da35e5943f851a3e49f4",9333:"aa89d1acb624d48d0e25",9374:"f8ffbbd0e68800ec13af",9415:"5fa19f422ac378f0cac9",9498:"6abc81bd1f7ccefc360a",9519:"2141b98224d9a2c0391a",9685:"43449af05ef22dfd0e5b",9776:"40b8cf612c827a83ffac",9908:"33de634c55f5a8edf1f5"}[e]+".js",r.miniCssF=e=>e+"."+{105:"104b2f6f9b0648dec9bf",140:"c417fa2d4e2b597fd2e3",240:"593f7d3c53306cf0999b",346:"6fa4b7609b1ee60b9fb5",537:"727e7a8061aba6353cce",1033:"dea80f470e3a5dc32a99",1140:"9be2612a2846a641de60",1271:"e73cc4ab8811551cb45c",1416:"6c0ade7cf2b94bcf389f",1428:"41a7517d6c141851eae2",1528:"5a2e936d44d63a48a319",1685:"eced2d2ad306de76de93",1830:"3d15be044bd7454440f3",1960:"cd6136275cf3692b2266",2140:"93a097540409472a6ad2",2397:"b9ff782e9526b4bffdd5",2685:"e8f70c0201a60bff4a47",2754:"46c79b8e0e2bc98e902a",2913:"843022c70197263550f1",3046:"de47c70192f405571439",3200:"d157ce6579f91f2f5451",3261:"fe3d72da3000b9dbf293",3562:"7453d38d0f6e1f0e1a49",3578:"4df13838b20232303215",3626:"ef3204dc35e71442a34a",3687:"9ffb6026c275aa140253",3795:"6c74ef9929e63857d37b",4147:"19673911190824b00786",4369:"6857708113ce1c4a7366",4412:"8d4e1fafa391b5384b61",4450:"a48b4a4cfbe6f6242b22",4819:"7e5dabc76f3e263cb701",4884:"5b077a3cf794b5066e78",5020:"b567a8a918688a78eefe",5100:"cde5d07bb6ed8d0a8328",5384:"3532ec81f09f0141e063",5639:"9e2022f70344965799f4",5729:"cadde5f41c8c665ff811",5761:"5db6f6616a2be01d5134",5916:"ab1c13c6b34fbbeefca4",6092:"a16d5261d5e9f1e1a7e1",6304:"596786a2b899ca328639",6812:"e4cb798c8384903bd813",6879:"be7ca80c11bcfdfe07be",7177:"ef0a796f40d1c904a10c",7263:"33a0f5a8d0ecca3d6e24",7342:"627086d22455386a2362",7507:"15b05cc8ed1b2cbfc54d",7624:"85a46f1fadf76e279382",7695:"45a1554b55fcf2a2ed5a",7895:"289d3858a8027e0fe15d",7920:"367547efd90fe510d37e",7989:"5cffc6b68a106434f7c8",8009:"1b77a042c86ea9603545",8049:"0ee06a219c0b23490584",8110:"37ff9a45c0ecfd622003",8230:"fbb750fd312778403036",8251:"63e0709659f930aeabbf",8271:"4f5f0c715d1210b60de8",8619:"30c312c31b435f209065",8707:"82dca75e9f28e0c0ffda",8819:"3b1eafc3afb1e3b37d09",8825:"93e4bb012e7e3630302e",8887:"0779d4b1159318c66688",8955:"3b79457016de928c90de",9230:"cf0c009c4a14731a6723",9262:"ecc84aaa9d0bd39ee899",9333:"cd2a3f2212d4663f2c0a",9415:"46497a002c7a98a2f3fa",9519:"9380073fab73395bfea9",9776:"f3f7d85b8d83d2c36ae0",9908:"99b4c96fbed415f14f94"}[e]+".css",r.g=function(){if("object"==typeof globalThis)return globalThis;try{ -return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},f="tradingview:",r.l=(e,a,c,t)=>{if(d[e])d[e].push(a);else{var b,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{b.onerror=b.onload=null,clearTimeout(u);var f=d[e];if(delete d[e],b.parentNode&&b.parentNode.removeChild(b),f&&f.forEach((e=>e(c))),a)return a(c)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),o&&document.head.appendChild(b)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.g.importScripts&&(e=r.g.location+"");var a=r.g.document;if(!e&&a&&(a.currentScript&&(e=a.currentScript.src),!e)){var c=a.getElementsByTagName("script");c.length&&(e=c[c.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e})(),r.p.startsWith(location.origin)&&(r.p=r.p.slice(location.origin.length)),(()=>{const e=r.u;r.u=a=>e(a).replace("__LANG__",r.g.language)})(),r.p=self.WEBPACK_PUBLIC_PATH||r.p;var o,n,i=r.e,s=Object.create(null);function l(e,a){return i(e).catch((function(){return new Promise((function(c){var d=function(){self.removeEventListener("online",d,!1),!1===navigator.onLine?self.addEventListener("online",d,!1):c(a<2?l(e,a+1):i(e))};setTimeout(d,a*a*1e3)}))}))}r.e=function(e){if(!s[e]){s[e]=l(e,0);var a=function(){delete s[e]};s[e].then(a,a)}return s[e]},o=e=>new Promise(((a,c)=>{var d=r.miniCssF(e),f=r.p+d;if(((e,a)=>{for(var c=document.getElementsByTagName("link"),d=0;d{var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",f.onerror=f.onload=t=>{if(f.onerror=f.onload=null,"load"===t.type)c();else{var b=t&&("load"===t.type?"missing":t.type),r=t&&t.target&&t.target.href||a,o=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");o.code="CSS_CHUNK_LOAD_FAILED",o.type=b,o.request=r, -f.parentNode.removeChild(f),d(o)}},f.href=a,0!==f.href.indexOf(window.location.origin+"/")&&(f.crossOrigin="anonymous"),document.head.appendChild(f)})(e,f,a,c)})),n={3666:0},r.f.miniCss=(e,a)=>{n[e]?a.push(n[e]):0!==n[e]&&{105:1,140:1,240:1,346:1,537:1,1033:1,1140:1,1271:1,1416:1,1428:1,1528:1,1685:1,1830:1,1960:1,2140:1,2397:1,2685:1,2754:1,2913:1,3046:1,3200:1,3261:1,3562:1,3578:1,3626:1,3687:1,3795:1,4147:1,4369:1,4412:1,4450:1,4819:1,4884:1,5020:1,5100:1,5384:1,5639:1,5729:1,5761:1,5916:1,6092:1,6304:1,6812:1,6879:1,7177:1,7263:1,7342:1,7507:1,7624:1,7695:1,7895:1,7920:1,7989:1,8009:1,8049:1,8110:1,8230:1,8251:1,8271:1,8619:1,8707:1,8819:1,8825:1,8887:1,8955:1,9230:1,9262:1,9333:1,9415:1,9519:1,9776:1,9908:1}[e]&&a.push(n[e]=o(e).then((()=>{n[e]=0}),(a=>{throw delete n[e],a})))},(()=>{var e={3666:0,7717:0};r.f.j=(a,c)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)c.push(d[2]);else if(/^(1(4(0|16|28)|(14|83|96)0|033|05|271|528|685)|2((|1)40|397|685|754|913)|3(6(26|66|87)|(|0)46|200|261|562|578|795)|4(147|369|412|450|819|884)|5(020|100|37|384|639|729|761|916)|6(092|304|812|879)|7((17|50|71)7|[68]95|263|342|624|920|989)|8(2(30|51|71)|8(19|25|87)|(00|04|61)9|110|707|955)|9(230|262|333|415|519|776|908))$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>d=e[a]=[c,f]));c.push(d[2]=f);var t=r.p+r.u(a),b=new Error;r.l(t,(c=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var f=c&&("load"===c.type?"missing":c.type),t=c&&c.target&&c.target.src;b.message="Loading chunk "+a+" failed.\n("+f+": "+t+")",b.name="ChunkLoadError",b.type=f,b.request=t,d[1](b)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var d,f,[t,b,o]=c,n=0;if(t.some((a=>0!==e[a]))){for(d in b)r.o(b,d)&&(r.m[d]=b[d]);if(o)var i=o(r)}for(a&&a(c);n{const{miniCssF:e}=r;r.miniCssF=a=>self.document&&"rtl"===self.document.dir?e(a).replace(/\.css$/,".rtl.css"):e(a)})()})(); \ No newline at end of file +return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},f="tradingview:",r.l=(e,a,d,t)=>{if(c[e])c[e].push(a);else{var b,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{b.onerror=b.onload=null,clearTimeout(u);var f=c[e];if(delete c[e],b.parentNode&&b.parentNode.removeChild(b),f&&f.forEach((e=>e(d))),a)return a(d)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),o&&document.head.appendChild(b)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.g.importScripts&&(e=r.g.location+"");var a=r.g.document;if(!e&&a&&(a.currentScript&&(e=a.currentScript.src),!e)){var d=a.getElementsByTagName("script");d.length&&(e=d[d.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e})(),r.p.startsWith(location.origin)&&(r.p=r.p.slice(location.origin.length)),(()=>{const e=r.u;r.u=a=>e(a).replace("__LANG__",r.g.language)})(),r.p=self.WEBPACK_PUBLIC_PATH||r.p;var o,n,i=r.e,s=Object.create(null);function l(e,a){return i(e).catch((function(){return new Promise((function(d){var c=function(){self.removeEventListener("online",c,!1),!1===navigator.onLine?self.addEventListener("online",c,!1):d(a<2?l(e,a+1):i(e))};setTimeout(c,a*a*1e3)}))}))}r.e=function(e){if(!s[e]){s[e]=l(e,0);var a=function(){delete s[e]};s[e].then(a,a)}return s[e]},o=e=>new Promise(((a,d)=>{var c=r.miniCssF(e),f=r.p+c;if(((e,a)=>{for(var d=document.getElementsByTagName("link"),c=0;c{var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",f.onerror=f.onload=t=>{if(f.onerror=f.onload=null,"load"===t.type)d();else{var b=t&&("load"===t.type?"missing":t.type),r=t&&t.target&&t.target.href||a,o=new Error("Loading CSS chunk "+e+" failed.\n("+r+")");o.code="CSS_CHUNK_LOAD_FAILED",o.type=b,o.request=r, +f.parentNode.removeChild(f),c(o)}},f.href=a,0!==f.href.indexOf(window.location.origin+"/")&&(f.crossOrigin="anonymous"),document.head.appendChild(f)})(e,f,a,d)})),n={3666:0},r.f.miniCss=(e,a)=>{n[e]?a.push(n[e]):0!==n[e]&&{105:1,140:1,240:1,346:1,537:1,1033:1,1140:1,1271:1,1416:1,1428:1,1528:1,1685:1,1830:1,1960:1,2140:1,2397:1,2685:1,2754:1,2913:1,3046:1,3200:1,3261:1,3562:1,3578:1,3626:1,3687:1,3795:1,4147:1,4369:1,4412:1,4450:1,4819:1,4884:1,5020:1,5100:1,5384:1,5639:1,5729:1,5761:1,5916:1,6092:1,6304:1,6812:1,6879:1,7177:1,7263:1,7342:1,7507:1,7624:1,7695:1,7895:1,7920:1,7989:1,8009:1,8049:1,8110:1,8230:1,8251:1,8271:1,8619:1,8707:1,8819:1,8825:1,8887:1,8955:1,9230:1,9262:1,9333:1,9415:1,9519:1,9776:1,9908:1}[e]&&a.push(n[e]=o(e).then((()=>{n[e]=0}),(a=>{throw delete n[e],a})))},(()=>{var e={3666:0,7717:0};r.f.j=(a,d)=>{var c=r.o(e,a)?e[a]:void 0;if(0!==c)if(c)d.push(c[2]);else if(/^(1(4(0|16|28)|(14|83|96)0|033|05|271|528|685)|2((|1)40|397|685|754|913)|3(6(26|66|87)|(|0)46|200|261|562|578|795)|4(147|369|412|450|819|884)|5(020|100|37|384|639|729|761|916)|6(092|304|812|879)|7((17|50|71)7|[68]95|263|342|624|920|989)|8(2(30|51|71)|8(19|25|87)|(00|04|61)9|110|707|955)|9(230|262|333|415|519|776|908))$/.test(a))e[a]=0;else{var f=new Promise(((d,f)=>c=e[a]=[d,f]));d.push(c[2]=f);var t=r.p+r.u(a),b=new Error;r.l(t,(d=>{if(r.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var f=d&&("load"===d.type?"missing":d.type),t=d&&d.target&&d.target.src;b.message="Loading chunk "+a+" failed.\n("+f+": "+t+")",b.name="ChunkLoadError",b.type=f,b.request=t,c[1](b)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var c,f,[t,b,o]=d,n=0;if(t.some((a=>0!==e[a]))){for(c in b)r.o(b,c)&&(r.m[c]=b[c]);if(o)var i=o(r)}for(a&&a(d);n{const{miniCssF:e}=r;r.miniCssF=a=>self.document&&"rtl"===self.document.dir?e(a).replace(/\.css$/,".rtl.css"):e(a)})()})(); \ No newline at end of file diff --git a/charting_library/bundles/study-market.4b22b3a60fa9cdfe3a82.js b/charting_library/bundles/study-market.4b22b3a60fa9cdfe3a82.js new file mode 100644 index 00000000..3f2b4265 --- /dev/null +++ b/charting_library/bundles/study-market.4b22b3a60fa9cdfe3a82.js @@ -0,0 +1,17 @@ +(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[6456],{97754:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e=[],t=0;t{e.exports={button:"button-OvB35Th_",content:"content-OvB35Th_","icon-only":"icon-only-OvB35Th_",link:"link-OvB35Th_","color-brand":"color-brand-OvB35Th_","variant-primary":"variant-primary-OvB35Th_","variant-secondary":"variant-secondary-OvB35Th_","color-gray":"color-gray-OvB35Th_","color-green":"color-green-OvB35Th_","color-red":"color-red-OvB35Th_","size-xsmall":"size-xsmall-OvB35Th_","with-start-icon":"with-start-icon-OvB35Th_","with-end-icon":"with-end-icon-OvB35Th_","start-icon-wrap":"start-icon-wrap-OvB35Th_","end-icon-wrap":"end-icon-wrap-OvB35Th_","size-small":"size-small-OvB35Th_","size-medium":"size-medium-OvB35Th_","size-large":"size-large-OvB35Th_","size-xlarge":"size-xlarge-OvB35Th_",animated:"animated-OvB35Th_",stretch:"stretch-OvB35Th_",grouped:"grouped-OvB35Th_","adjust-position":"adjust-position-OvB35Th_","first-row":"first-row-OvB35Th_","first-col":"first-col-OvB35Th_","no-corner-top-left":"no-corner-top-left-OvB35Th_","no-corner-top-right":"no-corner-top-right-OvB35Th_","no-corner-bottom-right":"no-corner-bottom-right-OvB35Th_","no-corner-bottom-left":"no-corner-bottom-left-OvB35Th_"}},45469:e=>{e.exports={"tablet-normal-breakpoint":"screen and (max-width: 768px)","small-height-breakpoint":"screen and (max-height: 360px)","tablet-small-breakpoint":"screen and (max-width: 430px)"}},49361:e=>{e.exports={dialog:"dialog-o2xKpnz8",wrapper:"wrapper-o2xKpnz8",separator:"separator-o2xKpnz8"}},24810:e=>{e.exports={"small-height-breakpoint":"screen and (max-height: 360px)",container:"container-HS2PTQRJ",unsetAlign:"unsetAlign-HS2PTQRJ",title:"title-HS2PTQRJ",subtitle:"subtitle-HS2PTQRJ",textWrap:"textWrap-HS2PTQRJ",ellipsis:"ellipsis-HS2PTQRJ",close:"close-HS2PTQRJ",icon:"icon-HS2PTQRJ"}},90585:e=>{e.exports={container:"container-nVh4c_cg",inputContainer:"inputContainer-nVh4c_cg",withCancel:"withCancel-nVh4c_cg",input:"input-nVh4c_cg",icon:"icon-nVh4c_cg",cancel:"cancel-nVh4c_cg"}},21703:e=>{e.exports={wrapper:"wrapper-a7Y2yl3G",container:"container-a7Y2yl3G",tab:"tab-a7Y2yl3G",active:"active-a7Y2yl3G",title:"title-a7Y2yl3G",icon:"icon-a7Y2yl3G",titleText:"titleText-a7Y2yl3G",nested:"nested-a7Y2yl3G",isTablet:"isTablet-a7Y2yl3G",isMobile:"isMobile-a7Y2yl3G"}},49606:e=>{e.exports={title:"title-mMhB7Pv3",small:"small-mMhB7Pv3",normal:"normal-mMhB7Pv3",large:"large-mMhB7Pv3"}},42748:e=>{e.exports={container:"container-soqunFTo"}},73154:e=>{e.exports={title:"title-qtdSVkva",disabled:"disabled-qtdSVkva",icon:"icon-qtdSVkva",locked:"locked-qtdSVkva",open:"open-qtdSVkva", +actionIcon:"actionIcon-qtdSVkva",selected:"selected-qtdSVkva",codeIcon:"codeIcon-qtdSVkva",solutionIcon:"solutionIcon-qtdSVkva"}},28124:e=>{e.exports={"tablet-small-breakpoint":"screen and (max-width: 430px)",container:"container-YSK4uslt",selected:"selected-YSK4uslt",disabled:"disabled-YSK4uslt",favorite:"favorite-YSK4uslt",actions:"actions-YSK4uslt",highlighted:"highlighted-YSK4uslt",light:"light-YSK4uslt","highlight-animation-theme-light":"highlight-animation-theme-light-YSK4uslt",dark:"dark-YSK4uslt","highlight-animation-theme-dark":"highlight-animation-theme-dark-YSK4uslt",badge:"badge-YSK4uslt",main:"main-YSK4uslt",paddingLeft:"paddingLeft-YSK4uslt",isActive:"isActive-YSK4uslt",author:"author-YSK4uslt",likes:"likes-YSK4uslt"}},48019:e=>{e.exports={container:"container-Y8R6tAt1"}},74781:e=>{e.exports={"tablet-small-breakpoint":"screen and (max-width: 430px)",dialog:"dialog-Oa3ReD0b",dialogLibrary:"dialogLibrary-Oa3ReD0b",contentContainer:"contentContainer-Oa3ReD0b",listContainer:"listContainer-Oa3ReD0b",scroll:"scroll-Oa3ReD0b",sidebarContainer:"sidebarContainer-Oa3ReD0b",noContentBlock:"noContentBlock-Oa3ReD0b",tabWithHint:"tabWithHint-Oa3ReD0b",solution:"solution-Oa3ReD0b"}},72502:e=>{e.exports={container:"container-A3zSzBK_",image:"image-A3zSzBK_",title:"title-A3zSzBK_",description:"description-A3zSzBK_",button:"button-A3zSzBK_"}},64429:e=>{e.exports={favorite:"favorite-TPXOIXOJ",disabled:"disabled-TPXOIXOJ",active:"active-TPXOIXOJ",checked:"checked-TPXOIXOJ"}},83307:e=>{e.exports={highlighted:"highlighted-sanWmRqQ"}},94725:e=>{e.exports={separator:"separator-LQ6E1iWj"}},94720:(e,t,n)=>{"use strict";n.d(t,{Button:()=>_});var r=n(50959),i=n(97754),o=n(95604),a=n(9745),s=n(28146),l=n.n(s);function c(e){const{color:t="brand",size:n="medium",variant:r="primary",stretch:a=!1,icon:s,startIcon:c,endIcon:u,iconOnly:d=!1,className:h,isGrouped:p,cellState:f,disablePositionAdjustment:m=!1,isAnchor:v=!1}=e,g=function(e){let t="";return 0!==e&&(1&e&&(t=i(t,l()["no-corner-top-left"])),2&e&&(t=i(t,l()["no-corner-top-right"])),4&e&&(t=i(t,l()["no-corner-bottom-right"])),8&e&&(t=i(t,l()["no-corner-bottom-left"]))),t}((0,o.getGroupCellRemoveRoundBorders)(f));return i(h,l().button,l()[`size-${n}`],l()[`color-${t}`],l()[`variant-${r}`],a&&l().stretch,(s||c)&&l()["with-start-icon"],u&&l()["with-end-icon"],d&&l()["icon-only"],g,p&&l().grouped,p&&!m&&l()["adjust-position"],p&&f.isTop&&l()["first-row"],p&&f.isLeft&&l()["first-col"],v&&l().link)}function u(e){const{startIcon:t,icon:n,iconOnly:i,children:o,endIcon:s}=e,c=null!=t?t:n;return r.createElement(r.Fragment,null,c&&r.createElement(a.Icon,{icon:c,className:l()["start-icon-wrap"]}),o&&r.createElement("span",{className:l().content},o),s&&!i&&r.createElement(a.Icon,{icon:s,className:l()["end-icon-wrap"]}))}var d=n(86332),h=n(90186);function p(e){const{className:t,color:n,variant:r,size:i,stretch:o,animated:a,icon:s,iconOnly:l,startIcon:c,endIcon:u,...d}=e;return{...d,...(0,h.filterDataProps)(e),...(0,h.filterAriaProps)(e)}}function f(e){ +const{reference:t,...n}=e,{isGrouped:i,cellState:o,disablePositionAdjustment:a}=(0,r.useContext)(d.ControlGroupContext),s=c({...n,isGrouped:i,cellState:o,disablePositionAdjustment:a});return r.createElement("button",{...p(n),className:s,ref:t},r.createElement(u,{...n}))}function m(e="default"){switch(e){case"default":return"primary";case"stroke":return"secondary"}}function v(e="primary"){switch(e){case"primary":return"brand";case"success":return"green";case"default":return"gray";case"danger":return"red"}}function g(e="m"){switch(e){case"s":return"xsmall";case"m":return"small";case"l":return"large"}}function y(e){const{intent:t,size:n,appearance:r,useFullWidth:i,icon:o,...a}=e;return{...a,color:v(t),size:g(n),variant:m(r),stretch:i,startIcon:o}}function _(e){return r.createElement(f,{...y(e)})}},86332:(e,t,n)=>{"use strict";n.d(t,{ControlGroupContext:()=>r});const r=n(50959).createContext({isGrouped:!1,cellState:{isTop:!0,isRight:!0,isBottom:!0,isLeft:!0}})},95604:(e,t,n)=>{"use strict";function r(e){let t=0;return e.isTop&&e.isLeft||(t+=1),e.isTop&&e.isRight||(t+=2),e.isBottom&&e.isLeft||(t+=8),e.isBottom&&e.isRight||(t+=4),t}n.d(t,{getGroupCellRemoveRoundBorders:()=>r})},9745:(e,t,n)=>{"use strict";n.d(t,{Icon:()=>i});var r=n(50959);const i=r.forwardRef(((e,t)=>{const{icon:n="",...i}=e;return r.createElement("span",{...i,ref:t,dangerouslySetInnerHTML:{__html:n}})}))},90186:(e,t,n)=>{"use strict";function r(e){return o(e,a)}function i(e){return o(e,s)}function o(e,t){const n=Object.entries(e).filter(t),r={};for(const[e,t]of n)r[e]=t;return r}function a(e){const[t,n]=e;return 0===t.indexOf("data-")&&"string"==typeof n}function s(e){return 0===e[0].indexOf("aria-")}n.d(t,{filterDataProps:()=>r,filterAriaProps:()=>i,filterProps:()=>o,isDataAttribute:()=>a,isAriaAttribute:()=>s})},53017:(e,t,n)=>{"use strict";function r(e){return t=>{e.forEach((e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)}))}}function i(e){return r([e])}n.d(t,{mergeRefs:()=>r,isomorphicRef:()=>i})},39640:(e,t,n)=>{"use strict";function r(e,t,n,r,i){function o(i){if(e>i.timeStamp)return;const o=i.target;void 0!==n&&null!==t&&null!==o&&o.ownerDocument===r&&(t.contains(o)||n(i))}return i.click&&r.addEventListener("click",o,!1),i.mouseDown&&r.addEventListener("mousedown",o,!1),i.touchEnd&&r.addEventListener("touchend",o,!1),i.touchStart&&r.addEventListener("touchstart",o,!1),()=>{r.removeEventListener("click",o,!1),r.removeEventListener("mousedown",o,!1),r.removeEventListener("touchend",o,!1),r.removeEventListener("touchstart",o,!1)}}n.d(t,{addOutsideEventListener:()=>r})},99054:(e,t,n)=>{"use strict";n.d(t,{setFixedBodyState:()=>c});const r=(()=>{let e;return()=>{var t;if(void 0===e){const n=document.createElement("div"),r=n.style;r.visibility="hidden",r.width="100px",r.msOverflowStyle="scrollbar",document.body.appendChild(n);const i=n.offsetWidth;n.style.overflow="scroll";const o=document.createElement("div");o.style.width="100%",n.appendChild(o);const a=o.offsetWidth;null===(t=n.parentNode)||void 0===t||t.removeChild(n),e=i-a}return e}})() +;function i(e,t,n){null!==e&&e.style.setProperty(t,n)}function o(e,t){return getComputedStyle(e,null).getPropertyValue(t)}function a(e,t){return parseInt(o(e,t))}let s=0,l=!1;function c(e){const{body:t}=document,n=t.querySelector(".widgetbar-wrap");if(e&&1==++s){const e=o(t,"overflow"),s=a(t,"padding-right");"hidden"!==e.toLowerCase()&&t.scrollHeight>t.offsetHeight&&(i(n,"right",`${r()}px`),t.style.paddingRight=`${s+r()}px`,l=!0),t.classList.add("i-no-scroll")}else if(!e&&s>0&&0==--s&&(t.classList.remove("i-no-scroll"),l)){i(n,"right","0px");let e=0;0,t.scrollHeight<=t.clientHeight&&(e-=r()),t.style.paddingRight=(e<0?0:e)+"px",l=!1}}},24437:(e,t,n)=>{"use strict";n.d(t,{DialogBreakpoints:()=>i});var r=n(45469);const i={SmallHeight:r["small-height-breakpoint"],TabletSmall:r["tablet-small-breakpoint"],TabletNormal:r["tablet-normal-breakpoint"]}},75208:(e,t,n)=>{"use strict";n.d(t,{AdaptivePopupDialog:()=>k});var r=n(50959),i=n(50151);var o=n(97754),a=n.n(o),s=n(68335),l=n(35749),c=n(63016),u=n(1109),d=n(24437),h=n(90692),p=n(95711);var f=n(52092),m=n(76422),v=n(9745);const g=r.createContext({setHideClose:()=>{}});var y=n(7720),_=n(24810);function b(e){const{title:t,titleTextWrap:n=!1,subtitle:i,showCloseIcon:o=!0,onClose:s,onCloseButtonKeyDown:l,renderBefore:c,renderAfter:u,draggable:d,className:h,unsetAlign:p,closeAriaLabel:f,closeButtonReference:m}=e,[b,S]=(0,r.useState)(!1);return r.createElement(g.Provider,{value:{setHideClose:S}},r.createElement("div",{className:a()(_.container,h,(i||p)&&_.unsetAlign)},c,r.createElement("div",{"data-dragg-area":d,className:_.title},r.createElement("div",{className:a()(n?_.textWrap:_.ellipsis)},t),i&&r.createElement("div",{className:a()(_.ellipsis,_.subtitle)},i)),u,o&&!b&&r.createElement("button",{className:_.close,onClick:s,onKeyDown:l,"data-name":"close","aria-label":f,type:"button",ref:m},r.createElement(v.Icon,{className:_.icon,icon:y,"data-name":"close","data-role":"button"}))))}var S=n(53017),w=n(49361);const E={vertical:20},C={vertical:0};class k extends r.PureComponent{constructor(){super(...arguments),this._controller=null,this._reference=null,this._orientationMediaQuery=null,this._renderChildren=(e,t)=>(this._controller=e,this.props.render({requestResize:this._requestResize,centerAndFit:this._centerAndFit,isSmallWidth:t})),this._handleReference=e=>this._reference=e,this._handleCloseBtnClick=()=>{this.props.onKeyboardClose&&this.props.onKeyboardClose(),this._handleClose()},this._handleClose=()=>{this.props.onClose()},this._handleOpen=()=>{void 0!==this.props.onOpen&&this.props.isOpened&&this.props.onOpen(this.props.fullScreen||window.matchMedia(d.DialogBreakpoints.TabletSmall).matches)},this._handleKeyDown=e=>{if(!e.defaultPrevented){if(this.props.onKeyDown&&this.props.onKeyDown(e),27===(0,s.hashFromEvent)(e)){if(e.defaultPrevented)return;if(this.props.forceCloseOnEsc&&this.props.forceCloseOnEsc())return this.props.onKeyboardClose&&this.props.onKeyboardClose(),void this._handleClose();const{activeElement:n}=document,r=(0,i.ensureNotNull)(this._reference);if(null!==n){ +if(e.preventDefault(),"true"===(t=n).getAttribute("data-haspopup")&&"true"!==t.getAttribute("data-expanded"))return void this._handleClose();if((0,l.isTextEditingField)(n))return void r.focus();if(r.contains(n))return this.props.onKeyboardClose&&this.props.onKeyboardClose(),void this._handleClose()}}var t,n;(function(e){if("function"==typeof e)return e();return Boolean(e)})(this.props.disableTabNavigationContainment)||(n=e,[9,s.Modifiers.Shift+9].includes((0,s.hashFromEvent)(n))&&n.stopPropagation())}},this._requestResize=()=>{null!==this._controller&&this._controller.recalculateBounds()},this._centerAndFit=()=>{null!==this._controller&&this._controller.centerAndFit()}}componentDidMount(){var e,t;this.props.ignoreClosePopupsAndDialog||m.subscribe(f.CLOSE_POPUPS_AND_DIALOGS_COMMAND,this._handleClose,null),this._handleOpen(),void 0!==this.props.onOpen&&(this._orientationMediaQuery=window.matchMedia("(orientation: portrait)"),e=this._orientationMediaQuery,t=this._handleOpen,(null==e?void 0:e.addEventListener)?e.addEventListener("change",t):e.addListener(t))}componentWillUnmount(){var e,t;this.props.ignoreClosePopupsAndDialog||m.unsubscribe(f.CLOSE_POPUPS_AND_DIALOGS_COMMAND,this._handleClose,null),null!==this._orientationMediaQuery&&(e=this._orientationMediaQuery,t=this._handleOpen,(null==e?void 0:e.removeEventListener)?e.removeEventListener("change",t):e.removeListener(t))}focus(){(0,i.ensureNotNull)(this._reference).focus()}getElement(){return this._reference}contains(e){var t,n;return null!==(n=null===(t=this._reference)||void 0===t?void 0:t.contains(e))&&void 0!==n&&n}render(){const{className:e,wrapperClassName:t,headerClassName:n,isOpened:i,title:o,titleTextWrap:s,dataName:l,onClickOutside:f,additionalElementPos:m,additionalHeaderElement:v,backdrop:g,shouldForceFocus:y=!0,showSeparator:_,subtitle:k,draggable:x=!0,fullScreen:N=!1,showCloseIcon:I=!0,rounded:T=!0,isAnimationEnabled:O,growPoint:R,dialogTooltip:D,unsetHeaderAlign:P,onDragStart:B,dataDialogName:A,closeAriaLabel:L,containerAriaLabel:z,reference:M,containerTabIndex:F,closeButtonReference:K,onCloseButtonKeyDown:W}=this.props,H="after"!==m?v:void 0,j="after"===m?v:void 0,q="string"==typeof o?o:A||"",V=(0,S.mergeRefs)([this._handleReference,M]);return r.createElement(h.MatchMedia,{rule:d.DialogBreakpoints.SmallHeight},(m=>r.createElement(h.MatchMedia,{rule:d.DialogBreakpoints.TabletSmall},(d=>r.createElement(c.PopupDialog,{rounded:!(d||N)&&T,className:a()(w.dialog,e),isOpened:i,reference:V,onKeyDown:this._handleKeyDown,onClickOutside:f,onClickBackdrop:f,fullscreen:d||N,guard:m?C:E,boundByScreen:d||N,shouldForceFocus:y,backdrop:g,draggable:x,isAnimationEnabled:O,growPoint:R,name:this.props.dataName,dialogTooltip:D,onDragStart:B,containerAriaLabel:z,containerTabIndex:F},r.createElement("div",{className:a()(w.wrapper,t),"data-name":l,"data-dialog-name":q},void 0!==o&&r.createElement(b,{draggable:x&&!(d||N),onClose:this._handleCloseBtnClick,renderAfter:j,renderBefore:H,subtitle:k,title:o,titleTextWrap:s,showCloseIcon:I,className:n,unsetAlign:P,closeAriaLabel:L, +closeButtonReference:K,onCloseButtonKeyDown:W}),_&&r.createElement(u.Separator,{className:w.separator}),r.createElement(p.PopupContext.Consumer,null,(e=>this._renderChildren(e,d||N)))))))))}}},69654:(e,t,n)=>{"use strict";n.d(t,{DialogSearch:()=>u});var r=n(50959),i=n(97754),o=n.n(i),a=n(44352),s=n(9745),l=n(69859),c=n(90585);function u(e){const{children:t,renderInput:i,onCancel:u,containerClassName:h,...p}=e;return r.createElement("div",{className:o()(c.container,h)},r.createElement("div",{className:o()(c.inputContainer,u&&c.withCancel)},i||r.createElement(d,{...p})),t,r.createElement(s.Icon,{className:c.icon,icon:l}),u&&r.createElement("div",{className:c.cancel,onClick:u},a.t(null,void 0,n(20036))))}function d(e){const{className:t,reference:n,value:i,onChange:a,onFocus:s,onBlur:l,onKeyDown:u,onSelect:d,placeholder:h,...p}=e;return r.createElement("input",{...p,ref:n,type:"text",className:o()(t,c.input),autoComplete:"off","data-role":"search",placeholder:h,value:i,onChange:a,onFocus:s,onBlur:l,onSelect:d,onKeyDown:u})}},22265:(e,t,n)=>{"use strict";n.d(t,{DialogSidebarContainer:()=>u,DialogSidebarWrapper:()=>d,DialogSidebarItem:()=>h});var r=n(50959),i=n(97754),o=n.n(i),a=n(9745),s=n(68648),l=n(21703);function c(e){return{isMobile:"mobile"===e,isTablet:"tablet"===e}}function u(e){const{mode:t,className:n,...i}=e,{isMobile:a,isTablet:s}=c(t),u=o()(l.container,s&&l.isTablet,a&&l.isMobile,n);return r.createElement("div",{...i,className:u,"data-role":"dialog-sidebar"})}function d(e){return r.createElement("div",{className:l.wrapper,...e})}function h(e){const{mode:t,title:n,icon:i,isActive:u,onClick:d,...h}=e,{isMobile:p,isTablet:f}=c(t);return r.createElement("div",{...h,className:o()(l.tab,f&&l.isTablet,p&&l.isMobile,u&&l.active),onClick:d},r.createElement(a.Icon,{className:l.icon,icon:i}),!f&&r.createElement("span",{className:l.title},r.createElement("span",{className:l.titleText},n),p&&r.createElement(a.Icon,{className:l.nested,icon:s})))}},85634:(e,t,n)=>{"use strict";n.r(t),n.d(t,{IndicatorsLibraryContainer:()=>ce});var r=n(50959),i=n(962),o=n(44352),a=n(76076),s=n(58403),l=n(2484),c=n(6250);function u(e,t){const n=e.title.toLowerCase(),r=t.title.toLowerCase();return nr?1:0}const d={earning:new RegExp("EPS"),earnings:new RegExp("EPS"),"trailing twelve months":new RegExp("TTM")};function h(e){var t;const{id:r,description:i,shortDescription:a,description_localized:c,is_hidden_study:u,version:d,extra:h,tags:p}=e,f=l.enabled("graying_disabled_tools_enabled")&&(null===(t=window.ChartApiInstance)||void 0===t?void 0:t.studiesAccessController.isToolGrayed(i)),m=(null==h?void 0:h.isAuto)?"auto-java":s.StudyMetaInfo.getPackageName(r);return{id:r,title:c||o.t(i,{context:"study"},n(68716)),shortDescription:a,shortTitle:a,isStrategy:s.StudyMetaInfo.isScriptStrategy(e),isHidden:u,isNew:null==h?void 0:h.isNew,isUpdated:null==h?void 0:h.isUpdated,isBeta:null==h?void 0:h.isBeta,isFundamental:!1,studyData:{id:r,version:d,descriptor:{type:"java",studyId:e.id},packageName:m},isGrayed:f,tags:p}} +var p=n(97754),f=n.n(p),m=n(61074),v=n(75208),g=n(49483),y=n(69654),_=n(22265),b=n(48019);function S(e){const{reference:t,className:n,...i}=e;return r.createElement("div",{ref:t,className:f()(b.container,n),...i,"data-role":"dialog-content"})}var w=n(73154);function E(e){const{children:t,className:n,disabled:i}=e;return r.createElement("span",{className:f()(w.title,i&&w.disabled,n)},t)}const C=r.createContext(null);var k=n(24637),x=n(77975),N=n(45345),I=n(26843),T=n(36189),O=n(68335),R=n(28124);function D(e){var t;const i=(0,r.useContext)(C),{style:a,layoutMode:s,item:l,query:c,regExpRules:u,isBeta:d,isNew:h,isUpdated:p,isSelected:m,isHighlighted:v,reference:g,onClick:y,renderActions:_}=e,{isFavorite:b,isLocked:S,public:w,editorsPick:O}=l,D=void 0!==b,B=P(y,l),A=(0,r.useCallback)((e=>e.stopPropagation()),[]),L=null!==(t=e.favoriteClickHandler)&&void 0!==t?t:(null==i?void 0:i.toggleFavorite)?P(i.toggleFavorite,l):void 0,z=(0,x.useWatchedValueReadonly)({watchedValue:N.watchedTheme})===I.StdTheme.Dark?R.dark:R.light,M=f()(R.container,l.isGrayed&&R.disabled,m&&R.selected,v&&R.highlighted,v&&z);return r.createElement("div",{ref:g,className:M,onClick:B,style:a,"data-role":"list-item","data-disabled":l.isGrayed,"data-title":l.title,"data-id":l.id},r.createElement("div",{className:f()(R.main,!D&&R.paddingLeft)},D&&r.createElement(T.FavoriteButton,{className:f()(R.favorite,b&&R.isActive),isFilled:b,onClick:L}),r.createElement(E,{disabled:l.isGrayed},r.createElement(k.HighlightedText,{queryString:c,rules:u,text:l.title})),!1,d&&r.createElement(BadgeIndicator,{type:"beta",className:R.badge}),h&&r.createElement(BadgeIndicator,{type:"new",className:R.badge}),p&&r.createElement(BadgeIndicator,{type:"updated",className:R.badge}),O&&r.createElement(BadgeIndicator,{type:"ep",className:R.badge,tooltip:o.t(null,void 0,n(92490))})),w&&r.createElement("a",{href:w.authorLink,className:R.author,target:"_blank",onClick:A},w.authorName),"mobile"!==s&&w&&r.createElement("span",{className:R.likes},w.likesCount),!1)}function P(e,t){return n=>{const r=0===(0,O.modifiersFromEvent)(n)&&0===n.button;!n.defaultPrevented&&e&&r&&(n.preventDefault(),e(t))}}var B=n(49606);function A(e){const{title:t,type:n,className:i}=e;return r.createElement("h3",{className:f()(B.title,"Small"===n&&B.small,"Normal"===n&&B.normal,"Large"===n&&B.large,i)},t)}var L=n(42748);function z(e){const{style:t,children:n}=e;return r.createElement("div",{style:t,className:L.container},n)}var M=n(9745),F=n(94720),K=n(72502);function W(e){const{className:t,icon:n,title:i,description:o,buttonText:a,buttonAction:s}=e;return r.createElement("div",{className:f()(K.container,t)},n&&r.createElement(M.Icon,{icon:n,className:K.image}),i&&r.createElement("h3",{className:K.title},i),o&&r.createElement("p",{className:K.description},o),a&&s&&r.createElement(F.Button,{onClick:s,className:K.button},a))}function H(e){const[t,n]=(0,r.useState)(null);function i(e){return e.findIndex((e=>(null==t?void 0:t.id)===e.id))}return[t,n,function(){n(function(){var n;const r=i(e),o=r===e.length-1 +;return null===t||-1===r?null!==(n=e[0])&&void 0!==n?n:null:o?e[r]:e[r+1]}())},function(){n(function(){var n;const r=i(e);return null===t||0===r||-1===r?null!==(n=e[0])&&void 0!==n?n:null:e[r-1]}())}]}var j=n(19785),q=n(74781),V=n(26867),Y=n.n(V),$=n(56840);const G=new(Y()),U=new(Y()),J=new(Y());let Q=[];function X(e){return-1===ee(e)?(function(e){!Z(e)&&(Q.push(e),ne(),G.fire(e))}(e),!0):(function(e){const t=ee(e);-1!==t&&(Q.splice(t,1),ne(),U.fire(e))}(e),!1)}function Z(e){return-1!==ee(e)}function ee(e){return Q.indexOf(e)}function te(){var e,t;Q=[];const n=Boolean(void 0===(0,$.getValue)("chart.favoriteLibraryIndicators")),r=(0,$.getJSON)("chart.favoriteLibraryIndicators",[]);if(Q.push(...r),0===Q.length&&n&&"undefined"!=typeof window){const n=JSON.parse(null!==(t=null===(e=window.urlParams)||void 0===e?void 0:e.favorites)&&void 0!==t?t:"{}").indicators;n&&Array.isArray(n)&&Q.push(...n)}J.fire()}function ne(){const e=Q.slice();(0,$.setJSON)("chart.favoriteLibraryIndicators",e)}function re(e){const{reference:t,data:i,isOpened:a,onClose:s,applyStudy:l}=e,[c,u]=(0,r.useState)(""),h=(0,r.useMemo)((()=>(0,j.createRegExpList)(c,d)),[c]),p=(0,r.useMemo)((()=>c?(0,j.rankedSearch)({data:i,rules:h,queryString:c,primaryKey:"shortDescription",secondaryKey:"title",optionalPrimaryKey:"shortTitle",tertiaryKey:"tags"}):i),[c,h,i]),{highlightedItem:b,selectedItem:w,selectedNodeReference:E,scrollContainerRef:C,searchInputRef:k,onClickStudy:x,handleKeyDown:N}=function(e,t,n,i){let o=0;const[a,s]=(0,r.useState)(null),l=(0,r.useRef)(null),c=(0,r.useRef)(null),[u,d,h,p]=H(t),f=(0,r.useRef)(null);return(0,r.useEffect)((()=>{e?m(0):d(null)}),[e]),(0,r.useEffect)((()=>{void 0!==i&&(m(0),d(null))}),[i]),(0,r.useEffect)((()=>(a&&(o=setTimeout((()=>{s(null)}),1500)),()=>{clearInterval(o)})),[a]),{highlightedItem:a,scrollContainerRef:l,selectedNodeReference:c,selectedItem:u,searchInputRef:f,onClickStudy:function(e){n&&(n(e),d(e),s(e))},handleKeyDown:function(e){const[t,r]=function(e,t){if(null===e.current||null===t.current)return[0,0];const n=e.current.getBoundingClientRect(),r=t.current.getBoundingClientRect(),{height:i}=n,o=n.top-r.top,a=n.bottom-r.bottom+i<0?0:i,s=o-i>0?0:i,{scrollTop:l}=t.current;return[l-s,l+a]}(c,l);if(40===(0,O.hashFromEvent)(e)&&(e.preventDefault(),h(),m(r)),38===(0,O.hashFromEvent)(e)&&(e.preventDefault(),p(),m(t)),13===(0,O.hashFromEvent)(e)&&u){if(!n)return;n(u),s(u)}}};function m(e){null!==l.current&&l.current.scrollTo&&l.current.scrollTo(0,e)}}(a,p,l),I=""===c&&!p.length;return(0,r.useEffect)((()=>{var e;a||u(""),g.CheckMobile.any()||null===(e=k.current)||void 0===e||e.focus()}),[a]),r.createElement(v.AdaptivePopupDialog,{isOpened:a,onClose:s,onClickOutside:s,className:f()(q.dialogLibrary),render:function(){return r.createElement(r.Fragment,null,r.createElement(y.DialogSearch,{reference:k,placeholder:o.t(null,void 0,n(52298)),onChange:T,onFocus:R}),r.createElement(_.DialogSidebarWrapper,null,r.createElement(S,{reference:C,className:q.scroll +},I?r.createElement(m.Spinner,null):p.length?r.createElement(r.Fragment,null,r.createElement(z,null,r.createElement(A,{title:o.t(null,void 0,n(15491))})),p.slice().sort(ie).map((e=>{const t=(null==w?void 0:w.id)===e.id;return r.createElement(D,{key:e.id,item:e,onClick:()=>x(e),query:c,regExpRules:h,reference:t?E:void 0,isSelected:(null==w?void 0:w.id)===e.id,isHighlighted:(null==b?void 0:b.id)===e.id,favoriteClickHandler:t=>{t.stopPropagation(),X(e.title)}})}))):r.createElement(W,{className:q.noContentBlock,description:o.t(null,void 0,n(53170))}))))},title:o.t(null,void 0,n(61142)),dataName:"indicators-dialog",onKeyDown:N,ref:t});function T(e){u(e.target.value)}function R(){var e;c.length>0&&(null===(e=k.current)||void 0===e||e.select())}}function ie(e,t){return e.isFavorite===t.isFavorite?0:e.isFavorite?-1:1}te(),$.onSync.subscribe(null,te);var oe=n(76422),ae=n(40549),se=n.n(ae);function le(e,t){return e[t]||[]}class ce extends class{constructor(e){this._searchInputRef=r.createRef(),this._dialog=r.createRef(),this._visibility=new(se())(!1),this._container=document.createElement("div"),this._isForceRender=!1,this._parentSources=[],this._isDestroyed=!1,this._deepFundamentalsHistoryNotificationHasBeenShown=!1,this._showDeepFundamentalsHistoryNotification=()=>{},this._chartWidgetCollection=e}isDestroyed(){return this._isDestroyed}visible(){return this._visibility.readonly()}resetAllStudies(){}updateFavorites(){}open(e){this._parentSources=e,this._updateSymbol(),this._setProps({isOpened:!0}),this._visibility.setValue(!0),oe.emit("indicators_dialog")}show(){this.open([])}hide(){this._parentSources=[],this._setProps({isOpened:!1}),this._visibility.setValue(!1)}destroy(){this._isDestroyed=!0,i.unmountComponentAtNode(this._container)}_shouldPreventRender(){return this._isDestroyed||!this._isForceRender&&!this._getProps().value().isOpened}_getRenderData(){return{props:this._getProps().value(),container:this._getContainer()}}_applyStudy(e,t){var n;e.isGrayed?oe.emit("onGrayedObjectClicked",{type:"study",name:e.shortDescription}):(g.CheckMobile.any()||null===(n=this._searchInputRef.current)||void 0===n||n.select(),async function(e,t,n,r,i){const o=e.activeChartWidget.value();if(!o)return null;const{studyData:s}=t;if(!s)return Promise.resolve(null);const l=s.descriptor;if("java"===l.type){const e=(0,c.tryFindStudyLineToolNameByStudyId)(l.studyId);if(null!==e)return a.tool.setValue(e),null}return o.insertStudy(s.descriptor,n,t.shortDescription)}(this._chartWidgetCollection,e,this._parentSources,0,this._symbol).then((()=>{var e;window.is_authenticated;g.CheckMobile.any()||(null===document.activeElement||document.activeElement===document.body||null!==this._dialog.current&&this._dialog.current.contains(document.activeElement))&&(null===(e=this._searchInputRef.current)||void 0===e||e.focus())})))}_setProps(e){const t=this._getProps().value(),{isOpened:n}=t;this._isForceRender=n&&"isOpened"in e&&!e.isOpened;const r={...t,...e};this._getProps().setValue(r)}_requestBuiltInJavaStudies(){ +return this._chartWidgetCollection.activeChartWidget.value().metaInfoRepository().findAllJavaStudies()}_focus(){var e;this._getProps().value().isOpened&&(null===(e=this._dialog.current)||void 0===e||e.focus())}_getContainer(){return this._container}_getDialog(){return this._dialog}_getSymbol(){return this._symbol}_updateSymbol(){this._symbol=void 0}}{constructor(e,t){super(e),this._options={onWidget:!1},this._indicatorData=[],t&&(this._options=t),this._props=new(se())({data:[],applyStudy:this._applyStudy.bind(this),isOpened:!1,reference:this._getDialog(),onClose:this.hide.bind(this)}),this._getProps().subscribe(this._render.bind(this)),this._init()}_getProps(){return this._props}async _init(){const e=function(e){const t={};return e.forEach((e=>{const{studyData:n}=e;if(!n)return;const{packageName:r}=n;r in t?t[r].push(e):t[r]=[e]})),t}(function(e,t=!0){return e.filter((e=>{const n=!!t||!function(e){return e.isStrategy}(e);return!e.isHidden&&n}))}((await this._requestBuiltInJavaStudies()).map(h)));this._indicatorData=await async function(e,t){let n={...t};return[...le(n,"tv-basicstudies"),...le(n,"Script$STD"),...le(n,"tv-volumebyprice")].filter((e=>!e.isStrategy)).sort(u)}(this._options.onWidget,e),this._setFavorites(),this._setProps({data:this._indicatorData}),G.subscribe(null,(()=>this._refreshFavorites())),U.subscribe(null,(()=>this._refreshFavorites()))}_setFavorites(){l.enabled("items_favoriting")&&this._indicatorData.forEach((e=>{e.isFavorite=Z(e.title)}))}_refreshFavorites(){this._setFavorites(),this._setProps({data:this._indicatorData})}_render(){if(this._shouldPreventRender())return;const{props:e,container:t}=this._getRenderData();i.render(r.createElement(re,{...e}),t)}}},36189:(e,t,n)=>{"use strict";n.d(t,{FavoriteButton:()=>d});var r=n(44352),i=n(50959),o=n(97754),a=n(9745),s=n(39146),l=n(48010),c=n(64429);const u={add:r.t(null,void 0,n(44629)),remove:r.t(null,void 0,n(72482))};function d(e){const{className:t,isFilled:n,isActive:r,onClick:d,...h}=e;return i.createElement(a.Icon,{...h,className:o(c.favorite,"apply-common-tooltip",n&&c.checked,r&&c.active,t),icon:n?s:l,onClick:d,title:n?u.remove:u.add})}},19785:(e,t,n)=>{"use strict";n.d(t,{rankedSearch:()=>i,createRegExpList:()=>o,getHighlightedChars:()=>a});var r=n(65665);function i(e){const{data:t,rules:n,queryString:i,isPreventedFromFiltering:o,primaryKey:a,secondaryKey:s=a,optionalPrimaryKey:l,tertiaryKey:c}=e;return t.map((e=>{const t=l&&e[l]?e[l]:e[a],o=e[s],u=c&&e[c];let d,h=0;return n.forEach((e=>{var n,a,s,l,c;const{re:p,fullMatch:f}=e;if(p.lastIndex=0,(0,r.isString)(t)&&t&&t.toLowerCase()===i.toLowerCase())return h=4,void(d=null===(n=t.match(f))||void 0===n?void 0:n.index);if((0,r.isString)(t)&&f.test(t))return h=3,void(d=null===(a=t.match(f))||void 0===a?void 0:a.index);if((0,r.isString)(o)&&f.test(o))return h=2,void(d=null===(s=o.match(f))||void 0===s?void 0:s.index);if((0,r.isString)(o)&&p.test(o))return h=2,void(d=null===(l=o.match(p))||void 0===l?void 0:l.index);if(Array.isArray(u))for(const e of u)if(f.test(e))return h=1, +void(d=null===(c=e.match(f))||void 0===c?void 0:c.index)})),{matchPriority:h,matchIndex:d,item:e}})).filter((e=>o||e.matchPriority)).sort(((e,t)=>{if(e.matchPriorityt.matchPriority)return-1;if(e.matchPriority===t.matchPriority){if(void 0===e.matchIndex||void 0===t.matchIndex)return 0;if(e.matchIndex>t.matchIndex)return 1;if(e.matchIndexe))}function o(e,t){const n=[],r=e.toLowerCase(),i=e.split("").map(((e,t)=>`(${0!==t?`[/\\s-]${s(e)}`:s(e)})`)).join("(.*?)")+"(.*)";return n.push({fullMatch:new RegExp(`(${s(e)})`,"i"),re:new RegExp(`^${i}`,"i"),reserveRe:new RegExp(i,"i"),fuzzyHighlight:!0}),t&&t.hasOwnProperty(r)&&n.push({fullMatch:t[r],re:t[r],fuzzyHighlight:!1}),n}function a(e,t,n){const r=[];return e&&n?(n.forEach((e=>{const{fullMatch:n,re:i,reserveRe:o}=e;n.lastIndex=0,i.lastIndex=0;const a=n.exec(t),s=a||i.exec(t)||o&&o.exec(t);if(e.fuzzyHighlight=!a,s)if(e.fuzzyHighlight){let e=s.index;for(let t=1;t{"use strict";n.d(t,{HighlightedText:()=>s});var r=n(50959),i=n(97754),o=n(19785),a=n(83307);function s(e){const{queryString:t,rules:n,text:s,className:l}=e,c=(0,r.useMemo)((()=>(0,o.getHighlightedChars)(t,s,n)),[t,n,s]);return r.createElement(r.Fragment,null,c.length?s.split("").map(((e,t)=>r.createElement(r.Fragment,{key:t},c[t]?r.createElement("span",{className:i(a.highlighted,l)},e):r.createElement("span",null,e)))):s)}},58095:(e,t,n)=>{"use strict";n.d(t,{useOutsideEvent:()=>o});var r=n(50959),i=n(39640);function o(e){const{click:t,mouseDown:n,touchEnd:o,touchStart:a,handler:s,reference:l,ownerDocument:c=document}=e,u=(0,r.useRef)(null),d=(0,r.useRef)(new CustomEvent("timestamp").timeStamp);return(0,r.useLayoutEffect)((()=>{const e={click:t,mouseDown:n,touchEnd:o,touchStart:a},r=l?l.current:u.current;return(0,i.addOutsideEventListener)(d.current,r,s,c,e)}),[t,n,o,a,s]),l||u}},77975:(e,t,n)=>{"use strict";n.d(t,{useWatchedValueReadonly:()=>i});var r=n(50959);const i=(e,t=!1)=>{const n="watchedValue"in e?e.watchedValue:void 0,i="defaultValue"in e?e.defaultValue:e.watchedValue.value(),[o,a]=(0,r.useState)(n?n.value():i);return(t?r.useLayoutEffect:r.useEffect)((()=>{if(n){a(n.value());const e=e=>a(e);return n.subscribe(e),()=>n.unsubscribe(e)}return()=>{}}),[n]),o}},90692:(e,t,n)=>{"use strict";n.d(t,{MatchMedia:()=>i});var r=n(50959);class i extends r.PureComponent{constructor(e){super(e),this._handleChange=()=>{this.forceUpdate()},this.state={query:window.matchMedia(this.props.rule)}}componentDidMount(){this._subscribe(this.state.query)}componentDidUpdate(e,t){this.state.query!==t.query&&(this._unsubscribe(t.query),this._subscribe(this.state.query))}componentWillUnmount(){this._unsubscribe(this.state.query)}render(){ +return this.props.children(this.state.query.matches)}static getDerivedStateFromProps(e,t){return e.rule!==t.query.media?{query:window.matchMedia(e.rule)}:null}_subscribe(e){e.addListener(this._handleChange)}_unsubscribe(e){e.removeListener(this._handleChange)}}},1109:(e,t,n)=>{"use strict";n.d(t,{Separator:()=>a});var r=n(50959),i=n(97754),o=n(94725);function a(e){return r.createElement("div",{className:i(o.separator,e.className)})}},88216:(e,t,n)=>{"use strict";n.d(t,{OverlapManager:()=>o,getRootOverlapManager:()=>s});var r=n(50151);class i{constructor(){this._storage=[]}add(e){this._storage.push(e)}remove(e){this._storage=this._storage.filter((t=>e!==t))}has(e){return this._storage.includes(e)}getItems(){return this._storage}}class o{constructor(e=document){this._storage=new i,this._windows=new Map,this._index=0,this._document=e,this._container=e.createDocumentFragment()}setContainer(e){const t=this._container,n=null===e?this._document.createDocumentFragment():e;!function(e,t){Array.from(e.childNodes).forEach((e=>{e.nodeType===Node.ELEMENT_NODE&&t.appendChild(e)}))}(t,n),this._container=n}registerWindow(e){this._storage.has(e)||this._storage.add(e)}ensureWindow(e,t={position:"fixed",direction:"normal"}){const n=this._windows.get(e);if(void 0!==n)return n;this.registerWindow(e);const r=this._document.createElement("div");if(r.style.position=t.position,r.style.zIndex=this._index.toString(),r.dataset.id=e,void 0!==t.index){const e=this._container.childNodes.length;if(t.index>=e)this._container.appendChild(r);else if(t.index<=0)this._container.insertBefore(r,this._container.firstChild);else{const e=this._container.childNodes[t.index];this._container.insertBefore(r,e)}}else"reverse"===t.direction?this._container.insertBefore(r,this._container.firstChild):this._container.appendChild(r);return this._windows.set(e,r),++this._index,r}unregisterWindow(e){this._storage.remove(e);const t=this._windows.get(e);void 0!==t&&(null!==t.parentElement&&t.parentElement.removeChild(t),this._windows.delete(e))}getZindex(e){const t=this.ensureWindow(e);return parseInt(t.style.zIndex||"0")}moveToTop(e){if(this.getZindex(e)!==this._index){this.ensureWindow(e).style.zIndex=(++this._index).toString()}}removeWindow(e){this.unregisterWindow(e)}}const a=new WeakMap;function s(e=document){const t=e.getElementById("overlap-manager-root");if(null!==t)return(0,r.ensureDefined)(a.get(t));{const t=new o(e),n=function(e){const t=e.createElement("div");return t.style.position="absolute",t.style.zIndex=150..toString(),t.style.top="0px",t.style.left="0px",t.id="overlap-manager-root",t}(e);return a.set(n,t),t.setContainer(n),e.body.appendChild(n),t}}},65718:(e,t,n)=>{"use strict";n.d(t,{Portal:()=>l,PortalContext:()=>c});var r=n(50959),i=n(962),o=n(68671),a=n(88216),s=n(50655);class l extends r.PureComponent{constructor(){super(...arguments),this._uuid=(0,o.guid)()}componentWillUnmount(){this._manager().removeWindow(this._uuid)}render(){const e=this._manager().ensureWindow(this._uuid,this.props.layerOptions);return e.style.top=this.props.top||"", +e.style.bottom=this.props.bottom||"",e.style.left=this.props.left||"",e.style.right=this.props.right||"",e.style.pointerEvents=this.props.pointerEvents||"",i.createPortal(r.createElement(c.Provider,{value:this},this.props.children),e)}moveToTop(){this._manager().moveToTop(this._uuid)}_manager(){return null===this.context?(0,a.getRootOverlapManager)():this.context}}l.contextType=s.SlotContext;const c=r.createContext(null)},50655:(e,t,n)=>{"use strict";n.d(t,{Slot:()=>i,SlotContext:()=>o});var r=n(50959);class i extends r.Component{shouldComponentUpdate(){return!1}render(){return r.createElement("div",{style:{position:"fixed",zIndex:150,left:0,top:0},ref:this.props.reference})}}const o=r.createContext(null)},61074:(e,t,n)=>{"use strict";n.d(t,{Spinner:()=>a});var r=n(50959),i=n(97754),o=n(33134);n(86625);function a(e){const t=i(e.className,"tv-spinner","tv-spinner--shown",`tv-spinner--size_${o.spinnerSizeMap[e.size||o.DEFAULT_SIZE]}`);return r.createElement("div",{className:t,style:e.style,role:"progressbar"})}},95257:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.iterator;var f={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,v={};function g(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||f}function y(){}function _(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||f}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=g.prototype;var b=_.prototype=new y;b.constructor=_,m(b,g.prototype),b.isPureReactComponent=!0;var S=Array.isArray,w=Object.prototype.hasOwnProperty,E={current:null},C={key:!0,ref:!0,__self:!0,__source:!0};function k(e,t,r){var i,o={},a=null,s=null;if(null!=t)for(i in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(a=""+t.key),t)w.call(t,i)&&!C.hasOwnProperty(i)&&(o[i]=t[i]);var l=arguments.length-2;if(1===l)o.children=r;else if(1{"use strict";e.exports=n(95257)},68648:e=>{e.exports=''},7720:e=>{e.exports=''},69859:e=>{e.exports=''},39146:e=>{e.exports=''},48010:e=>{e.exports=''},20036:e=>{e.exports={ar:["إلغاء"],ca_ES:["Cancel·la"],cs:["Zrušit"],de:["Abbrechen"],el:["Άκυρο"],en:"Cancel",es:["Cancelar"],fa:["لغو"],fr:["Annuler"],he_IL:["ביטול"],hu_HU:["Törlés"],id_ID:["Batal"],it:["Annulla"],ja:["キャンセル"],ko:["취소"],ms_MY:["Batal"],nl_NL:["Annuleren"],pl:["Anuluj"],pt:["Cancelar"],ro:"Cancel",ru:["Отмена"],sv:["Avbryt"],th:["ยกเลิก"],tr:["İptal"],vi:["Hủy bỏ"],zh:["取消"],zh_TW:["取消"]}},44629:e=>{e.exports={ar:["اضف إلى القائمة التفضيلات"],ca_ES:["Afegeix a preferits"], +cs:["Přidat do oblíbených"],de:["Zu Favoriten hinzufügen"],el:["Προσθήκη στα αγαπημένα"],en:"Add to favorites",es:["Añadir a favoritos"],fa:["افزودن به موارد مورد علاقه"],fr:["Ajouter aux favoris"],he_IL:["הוסף למועדפים"],hu_HU:["Hozzáadás kedvencekhez"],id_ID:["Tambah ke daftar favorit"],it:["Aggiungi ai preferiti"],ja:["お気に入りに追加"],ko:["즐겨찾기에 넣기"],ms_MY:["Tambah kepada kegemaran"],nl_NL:["Voeg toe aan favorieten"],pl:["Dodaj do ulubionych"],pt:["Adicionar aos favoritos"],ro:"Add to favorites",ru:["Добавить в избранное"],sv:["Lägg till som favorit"],th:["เพิ่มลงรายการโปรด"],tr:["Favorilere ekle"],vi:["Thêm vào mục yêu thích"],zh:["添加到收藏"],zh_TW:["加入收藏"]}},92490:e=>{e.exports={ar:["مختارات المحرر"],ca_ES:["Seleccions dels editors"],cs:"Editors' picks",de:["Editor's Picks"],el:"Editors' picks",en:"Editors' picks",es:["Selecciones de los editores"],fa:"Editors' picks",fr:["Choix de la rédaction"],he_IL:["בחירות העורכים"],hu_HU:"Editors' picks",id_ID:["Pilihan editor"],it:["Selezione editoriale"],ja:["エディターズ・ピック"],ko:["에디터즈 픽"],ms_MY:["Pilihan Editor"],nl_NL:"Editors' picks",pl:["Wybór Redakcji"],pt:["Sugestão da Casa"],ro:"Editors' picks",ru:["Выбор редакции"],sv:["Redaktörens val"],th:["คัดสรรโดยบรรณาธิการ"],tr:["Editörün Seçtikleri"],vi:["Biên tập viên chọn"],zh:["编辑精选"],zh_TW:["編輯精選"]}},61142:e=>{e.exports={ar:["مؤشرات"],ca_ES:["Indicadors"],cs:["Indikátory"],de:["Indikatoren"],el:["Τέχν. Δείκτες"],en:"Indicators",es:["Indicadores"],fa:["اندیکاتورها"],fr:["Indicateurs"],he_IL:["אינדיקטורים"],hu_HU:["Indikátorok"],id_ID:["Indikator"],it:["Indicatori"],ja:["インジケーター"],ko:["지표"],ms_MY:["Penunjuk"],nl_NL:["Indicatoren"],pl:["Wskaźniki"],pt:["Indicadores"],ro:"Indicators",ru:["Индикаторы"],sv:["Indikatorer"],th:["อินดิเคเตอร์"],tr:["Göstergeler"],vi:["Các chỉ báo"],zh:["指标"],zh_TW:["技術指標"]}},53170:e=>{e.exports={ar:["لا توجد مؤشرات تتوافق مع معاييرك."],ca_ES:["Cap indicador coincideix amb els vostres criteris"],cs:["Indikátory nevyhovující vaším požadavkům"],de:["Keine passenden Indikatoren zu Ihren Kriterien gefunden"],el:["Δε βρέθηκαν Τέχνικο. Δείκτες που να ταιριάζουν με τα κριτήρια αναζήτησης"],en:"No indicators matched your criteria",es:["Ningún indicador coincide con sus criterios"],fa:["هیچ اندیکاتوری با شرط شما مطابقت ندارد."],fr:["Aucuns indicateurs ne correspondent à vos critères."],he_IL:["לא נמצאו התאמות לאינדקטור"],hu_HU:["Egyetlen indikátor se felel meg a kritériumoknak."],id_ID:["Tidak ada indikator yang cocok dengan kriteria anda."],it:["Nessun indicatore corrisponde ai criteri"],ja:["条件に合致するインジケーターはありません"],ko:["찾는 지표가 없습니다."],ms_MY:["Tiada penunjuk yang sepadan dengan kriteria anda."],nl_NL:["Geen indicator voldeed aan je criteria"],pl:["Brak wskaźników spełniających twoje kryteria"],pt:["Não foram encontrados indicadores que correspondam à escolha selecionada."],ro:["No indicators matched your criteria."],ru:["Нет подходящих индикаторов."],sv:["Inga indikatorer överensstämde med dina kriterier."],th:["ไม่พบตัวชี้วัดตามเกณฑ์ของคุณ"],tr:["Kriterinize uygun gösterge bulunamadı."], +vi:["Không có chỉ số nào khớp với tiêu chí của bạn."],zh:["没有符合您搜索条件的指标."],zh_TW:["沒有指標符合您的搜尋條件。"]}},15491:e=>{e.exports={ar:["اسم النص البرمجي"],ca_ES:["Nom de l'script"],cs:"Script name",de:["Skripname"],el:"Script name",en:"Script name",es:["Nombre del script"],fa:"Script name",fr:["Nom du script"],he_IL:["שם הסקריפט"],hu_HU:["Szkript név"],id_ID:["Nama skrip"],it:["Nome script"],ja:["スクリプト名"],ko:["스크립트 이름"],ms_MY:["Nama skrip"],nl_NL:"Script name",pl:["Nazwa skryptu"],pt:["Nome do script"],ro:"Script name",ru:["Имя скрипта"],sv:["Skriptets namn"],th:["ชื่อชุดคำสั่ง"],tr:["Komut adı"],vi:["Tên Script"],zh:["脚本名称"],zh_TW:["腳本名稱"]}},52298:e=>{e.exports={ar:["بحث"],ca_ES:["Cercar"],cs:["Hledat"],de:["Suche"],el:["Αναζήτησή"],en:"Search",es:["Buscar"],fa:["جستجو"],fr:["Chercher"],he_IL:["חפש"],hu_HU:["Keresés"],id_ID:["Cari"],it:["Cerca"],ja:["検索"],ko:["찾기"],ms_MY:["Cari"],nl_NL:["Zoeken"],pl:["Szukaj"],pt:["Pesquisar"],ro:"Search",ru:["Поиск"],sv:["Sök"],th:["ค้นหา"],tr:["Ara"],vi:["Tìm kiếm"],zh:["搜索"],zh_TW:["搜尋"]}},72482:e=>{e.exports={ar:["حذف من القائمة المفضلة"],ca_ES:["Treure de preferits"],cs:["Odebrat z oblíbených"],de:["Aus Favoriten entfernen"],el:["Διαγραφή απο τα αγαπημένα"],en:"Remove from favorites",es:["Quitar de favoritos"],fa:["حذف از موارد مورد علاقه"],fr:["Retirer des favoris"],he_IL:["הסר ממועדפים"],hu_HU:["Eltávolít kedvencek közül"],id_ID:["Hilangkan dari favorit"],it:["Rimuovi dai preferiti"],ja:["お気に入りから削除"],ko:["즐겨찾기지움"],ms_MY:["Keluarkan dari kegemaran"],nl_NL:["Verwijder van favorieten"],pl:["Usuń z ulubionych"],pt:["Remover dos favoritos"],ro:"Remove from favorites",ru:["Удалить из предпочтений"],sv:["Ta bort från favoriter"],th:["ลบออกจากรายการโปรด"],tr:["Favorilerimden çıkar"],vi:["Loại bỏ khỏi mục yêu thích"],zh:["从收藏中移除"],zh_TW:["從收藏移除"]}}}]); \ No newline at end of file diff --git a/charting_library/bundles/study-market.bc7f3b05f94ea2ddbb50.js b/charting_library/bundles/study-market.bc7f3b05f94ea2ddbb50.js deleted file mode 100644 index cca95e05..00000000 --- a/charting_library/bundles/study-market.bc7f3b05f94ea2ddbb50.js +++ /dev/null @@ -1,17 +0,0 @@ -(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[6456],{97754:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e=[],t=0;t{e.exports={button:"button-OvB35Th_",content:"content-OvB35Th_","icon-only":"icon-only-OvB35Th_",link:"link-OvB35Th_","color-brand":"color-brand-OvB35Th_","variant-primary":"variant-primary-OvB35Th_","variant-secondary":"variant-secondary-OvB35Th_","color-gray":"color-gray-OvB35Th_","color-green":"color-green-OvB35Th_","color-red":"color-red-OvB35Th_","size-xsmall":"size-xsmall-OvB35Th_","with-start-icon":"with-start-icon-OvB35Th_","with-end-icon":"with-end-icon-OvB35Th_","start-icon-wrap":"start-icon-wrap-OvB35Th_","end-icon-wrap":"end-icon-wrap-OvB35Th_","size-small":"size-small-OvB35Th_","size-medium":"size-medium-OvB35Th_","size-large":"size-large-OvB35Th_","size-xlarge":"size-xlarge-OvB35Th_",animated:"animated-OvB35Th_",stretch:"stretch-OvB35Th_",grouped:"grouped-OvB35Th_","adjust-position":"adjust-position-OvB35Th_","first-row":"first-row-OvB35Th_","first-col":"first-col-OvB35Th_","no-corner-top-left":"no-corner-top-left-OvB35Th_","no-corner-top-right":"no-corner-top-right-OvB35Th_","no-corner-bottom-right":"no-corner-bottom-right-OvB35Th_","no-corner-bottom-left":"no-corner-bottom-left-OvB35Th_"}},45469:e=>{e.exports={"tablet-normal-breakpoint":"screen and (max-width: 768px)","small-height-breakpoint":"screen and (max-height: 360px)","tablet-small-breakpoint":"screen and (max-width: 430px)"}},49361:e=>{e.exports={dialog:"dialog-o2xKpnz8",wrapper:"wrapper-o2xKpnz8",separator:"separator-o2xKpnz8"}},24810:e=>{e.exports={"small-height-breakpoint":"screen and (max-height: 360px)",container:"container-HS2PTQRJ",unsetAlign:"unsetAlign-HS2PTQRJ",title:"title-HS2PTQRJ",subtitle:"subtitle-HS2PTQRJ",textWrap:"textWrap-HS2PTQRJ",ellipsis:"ellipsis-HS2PTQRJ",close:"close-HS2PTQRJ",icon:"icon-HS2PTQRJ"}},90585:e=>{e.exports={container:"container-nVh4c_cg",inputContainer:"inputContainer-nVh4c_cg",withCancel:"withCancel-nVh4c_cg",input:"input-nVh4c_cg",icon:"icon-nVh4c_cg",cancel:"cancel-nVh4c_cg"}},21703:e=>{e.exports={wrapper:"wrapper-a7Y2yl3G",container:"container-a7Y2yl3G",tab:"tab-a7Y2yl3G",active:"active-a7Y2yl3G",title:"title-a7Y2yl3G",icon:"icon-a7Y2yl3G",titleText:"titleText-a7Y2yl3G",nested:"nested-a7Y2yl3G",isTablet:"isTablet-a7Y2yl3G",isMobile:"isMobile-a7Y2yl3G"}},49606:e=>{e.exports={title:"title-mMhB7Pv3",small:"small-mMhB7Pv3",normal:"normal-mMhB7Pv3",large:"large-mMhB7Pv3"}},42748:e=>{e.exports={container:"container-soqunFTo"}},73154:e=>{e.exports={title:"title-qtdSVkva",disabled:"disabled-qtdSVkva",icon:"icon-qtdSVkva",locked:"locked-qtdSVkva",open:"open-qtdSVkva", -actionIcon:"actionIcon-qtdSVkva",selected:"selected-qtdSVkva",codeIcon:"codeIcon-qtdSVkva",solutionIcon:"solutionIcon-qtdSVkva"}},28124:e=>{e.exports={"tablet-small-breakpoint":"screen and (max-width: 430px)",container:"container-YSK4uslt",selected:"selected-YSK4uslt",disabled:"disabled-YSK4uslt",favorite:"favorite-YSK4uslt",actions:"actions-YSK4uslt",highlighted:"highlighted-YSK4uslt",light:"light-YSK4uslt","highlight-animation-theme-light":"highlight-animation-theme-light-YSK4uslt",dark:"dark-YSK4uslt","highlight-animation-theme-dark":"highlight-animation-theme-dark-YSK4uslt",badge:"badge-YSK4uslt",main:"main-YSK4uslt",paddingLeft:"paddingLeft-YSK4uslt",isActive:"isActive-YSK4uslt",author:"author-YSK4uslt",likes:"likes-YSK4uslt"}},48019:e=>{e.exports={container:"container-Y8R6tAt1"}},74781:e=>{e.exports={"tablet-small-breakpoint":"screen and (max-width: 430px)",dialog:"dialog-Oa3ReD0b",dialogLibrary:"dialogLibrary-Oa3ReD0b",contentContainer:"contentContainer-Oa3ReD0b",listContainer:"listContainer-Oa3ReD0b",scroll:"scroll-Oa3ReD0b",sidebarContainer:"sidebarContainer-Oa3ReD0b",noContentBlock:"noContentBlock-Oa3ReD0b",tabWithHint:"tabWithHint-Oa3ReD0b",solution:"solution-Oa3ReD0b"}},72502:e=>{e.exports={container:"container-A3zSzBK_",image:"image-A3zSzBK_",title:"title-A3zSzBK_",description:"description-A3zSzBK_",button:"button-A3zSzBK_"}},64429:e=>{e.exports={favorite:"favorite-TPXOIXOJ",disabled:"disabled-TPXOIXOJ",active:"active-TPXOIXOJ",checked:"checked-TPXOIXOJ"}},83307:e=>{e.exports={highlighted:"highlighted-sanWmRqQ"}},94725:e=>{e.exports={separator:"separator-LQ6E1iWj"}},94720:(e,t,n)=>{"use strict";n.d(t,{Button:()=>_});var r=n(50959),i=n(97754),o=n(95604),a=n(9745),s=n(28146),l=n.n(s);function c(e){const{color:t="brand",size:n="medium",variant:r="primary",stretch:a=!1,icon:s,startIcon:c,endIcon:u,iconOnly:d=!1,className:h,isGrouped:p,cellState:m,disablePositionAdjustment:f=!1,isAnchor:v=!1}=e,g=function(e){let t="";return 0!==e&&(1&e&&(t=i(t,l()["no-corner-top-left"])),2&e&&(t=i(t,l()["no-corner-top-right"])),4&e&&(t=i(t,l()["no-corner-bottom-right"])),8&e&&(t=i(t,l()["no-corner-bottom-left"]))),t}((0,o.getGroupCellRemoveRoundBorders)(m));return i(h,l().button,l()[`size-${n}`],l()[`color-${t}`],l()[`variant-${r}`],a&&l().stretch,(s||c)&&l()["with-start-icon"],u&&l()["with-end-icon"],d&&l()["icon-only"],g,p&&l().grouped,p&&!f&&l()["adjust-position"],p&&m.isTop&&l()["first-row"],p&&m.isLeft&&l()["first-col"],v&&l().link)}function u(e){const{startIcon:t,icon:n,iconOnly:i,children:o,endIcon:s}=e,c=null!=t?t:n;return r.createElement(r.Fragment,null,c&&r.createElement(a.Icon,{icon:c,className:l()["start-icon-wrap"]}),o&&r.createElement("span",{className:l().content},o),s&&!i&&r.createElement(a.Icon,{icon:s,className:l()["end-icon-wrap"]}))}var d=n(86332),h=n(90186);function p(e){const{className:t,color:n,variant:r,size:i,stretch:o,animated:a,icon:s,iconOnly:l,startIcon:c,endIcon:u,...d}=e;return{...d,...(0,h.filterDataProps)(e),...(0,h.filterAriaProps)(e)}}function m(e){ -const{reference:t,...n}=e,{isGrouped:i,cellState:o,disablePositionAdjustment:a}=(0,r.useContext)(d.ControlGroupContext),s=c({...n,isGrouped:i,cellState:o,disablePositionAdjustment:a});return r.createElement("button",{...p(n),className:s,ref:t},r.createElement(u,{...n}))}function f(e="default"){switch(e){case"default":return"primary";case"stroke":return"secondary"}}function v(e="primary"){switch(e){case"primary":return"brand";case"success":return"green";case"default":return"gray";case"danger":return"red"}}function g(e="m"){switch(e){case"s":return"xsmall";case"m":return"small";case"l":return"large"}}function y(e){const{intent:t,size:n,appearance:r,useFullWidth:i,icon:o,...a}=e;return{...a,color:v(t),size:g(n),variant:f(r),stretch:i,startIcon:o}}function _(e){return r.createElement(m,{...y(e)})}},86332:(e,t,n)=>{"use strict";n.d(t,{ControlGroupContext:()=>r});const r=n(50959).createContext({isGrouped:!1,cellState:{isTop:!0,isRight:!0,isBottom:!0,isLeft:!0}})},95604:(e,t,n)=>{"use strict";function r(e){let t=0;return e.isTop&&e.isLeft||(t+=1),e.isTop&&e.isRight||(t+=2),e.isBottom&&e.isLeft||(t+=8),e.isBottom&&e.isRight||(t+=4),t}n.d(t,{getGroupCellRemoveRoundBorders:()=>r})},9745:(e,t,n)=>{"use strict";n.d(t,{Icon:()=>i});var r=n(50959);const i=r.forwardRef(((e,t)=>{const{icon:n="",...i}=e;return r.createElement("span",{...i,ref:t,dangerouslySetInnerHTML:{__html:n}})}))},90186:(e,t,n)=>{"use strict";function r(e){return o(e,a)}function i(e){return o(e,s)}function o(e,t){const n=Object.entries(e).filter(t),r={};for(const[e,t]of n)r[e]=t;return r}function a(e){const[t,n]=e;return 0===t.indexOf("data-")&&"string"==typeof n}function s(e){return 0===e[0].indexOf("aria-")}n.d(t,{filterDataProps:()=>r,filterAriaProps:()=>i,filterProps:()=>o,isDataAttribute:()=>a,isAriaAttribute:()=>s})},53017:(e,t,n)=>{"use strict";function r(e){return t=>{e.forEach((e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)}))}}function i(e){return r([e])}n.d(t,{mergeRefs:()=>r,isomorphicRef:()=>i})},39640:(e,t,n)=>{"use strict";function r(e,t,n,r,i){function o(i){if(e>i.timeStamp)return;const o=i.target;void 0!==n&&null!==t&&null!==o&&o.ownerDocument===r&&(t.contains(o)||n(i))}return i.click&&r.addEventListener("click",o,!1),i.mouseDown&&r.addEventListener("mousedown",o,!1),i.touchEnd&&r.addEventListener("touchend",o,!1),i.touchStart&&r.addEventListener("touchstart",o,!1),()=>{r.removeEventListener("click",o,!1),r.removeEventListener("mousedown",o,!1),r.removeEventListener("touchend",o,!1),r.removeEventListener("touchstart",o,!1)}}n.d(t,{addOutsideEventListener:()=>r})},99054:(e,t,n)=>{"use strict";n.d(t,{setFixedBodyState:()=>c});const r=(()=>{let e;return()=>{var t;if(void 0===e){const n=document.createElement("div"),r=n.style;r.visibility="hidden",r.width="100px",r.msOverflowStyle="scrollbar",document.body.appendChild(n);const i=n.offsetWidth;n.style.overflow="scroll";const o=document.createElement("div");o.style.width="100%",n.appendChild(o);const a=o.offsetWidth;null===(t=n.parentNode)||void 0===t||t.removeChild(n),e=i-a}return e}})() -;function i(e,t,n){null!==e&&e.style.setProperty(t,n)}function o(e,t){return getComputedStyle(e,null).getPropertyValue(t)}function a(e,t){return parseInt(o(e,t))}let s=0,l=!1;function c(e){const{body:t}=document,n=t.querySelector(".widgetbar-wrap");if(e&&1==++s){const e=o(t,"overflow"),s=a(t,"padding-right");"hidden"!==e.toLowerCase()&&t.scrollHeight>t.offsetHeight&&(i(n,"right",`${r()}px`),t.style.paddingRight=`${s+r()}px`,l=!0),t.classList.add("i-no-scroll")}else if(!e&&s>0&&0==--s&&(t.classList.remove("i-no-scroll"),l)){i(n,"right","0px");let e=0;0,t.scrollHeight<=t.clientHeight&&(e-=r()),t.style.paddingRight=(e<0?0:e)+"px",l=!1}}},24437:(e,t,n)=>{"use strict";n.d(t,{DialogBreakpoints:()=>i});var r=n(45469);const i={SmallHeight:r["small-height-breakpoint"],TabletSmall:r["tablet-small-breakpoint"],TabletNormal:r["tablet-normal-breakpoint"]}},75208:(e,t,n)=>{"use strict";n.d(t,{AdaptivePopupDialog:()=>k});var r=n(50959),i=n(50151);var o=n(97754),a=n.n(o),s=n(68335),l=n(35749),c=n(63016),u=n(1109),d=n(24437),h=n(90692),p=n(95711);var m=n(52092),f=n(76422),v=n(9745);const g=r.createContext({setHideClose:()=>{}});var y=n(7720),_=n(24810);function b(e){const{title:t,titleTextWrap:n=!1,subtitle:i,showCloseIcon:o=!0,onClose:s,onCloseButtonKeyDown:l,renderBefore:c,renderAfter:u,draggable:d,className:h,unsetAlign:p,closeAriaLabel:m,closeButtonReference:f}=e,[b,S]=(0,r.useState)(!1);return r.createElement(g.Provider,{value:{setHideClose:S}},r.createElement("div",{className:a()(_.container,h,(i||p)&&_.unsetAlign)},c,r.createElement("div",{"data-dragg-area":d,className:_.title},r.createElement("div",{className:a()(n?_.textWrap:_.ellipsis)},t),i&&r.createElement("div",{className:a()(_.ellipsis,_.subtitle)},i)),u,o&&!b&&r.createElement("button",{className:_.close,onClick:s,onKeyDown:l,"data-name":"close","aria-label":m,type:"button",ref:f},r.createElement(v.Icon,{className:_.icon,icon:y,"data-name":"close","data-role":"button"}))))}var S=n(53017),E=n(49361);const w={vertical:20},C={vertical:0};class k extends r.PureComponent{constructor(){super(...arguments),this._controller=null,this._reference=null,this._orientationMediaQuery=null,this._renderChildren=(e,t)=>(this._controller=e,this.props.render({requestResize:this._requestResize,centerAndFit:this._centerAndFit,isSmallWidth:t})),this._handleReference=e=>this._reference=e,this._handleCloseBtnClick=()=>{this.props.onKeyboardClose&&this.props.onKeyboardClose(),this._handleClose()},this._handleClose=()=>{this.props.onClose()},this._handleOpen=()=>{void 0!==this.props.onOpen&&this.props.isOpened&&this.props.onOpen(this.props.fullScreen||window.matchMedia(d.DialogBreakpoints.TabletSmall).matches)},this._handleKeyDown=e=>{if(!e.defaultPrevented){if(this.props.onKeyDown&&this.props.onKeyDown(e),27===(0,s.hashFromEvent)(e)){if(e.defaultPrevented)return;if(this.props.forceCloseOnEsc&&this.props.forceCloseOnEsc())return this.props.onKeyboardClose&&this.props.onKeyboardClose(),void this._handleClose();const{activeElement:n}=document,r=(0,i.ensureNotNull)(this._reference);if(null!==n){ -if(e.preventDefault(),"true"===(t=n).getAttribute("data-haspopup")&&"true"!==t.getAttribute("data-expanded"))return void this._handleClose();if((0,l.isTextEditingField)(n))return void r.focus();if(r.contains(n))return this.props.onKeyboardClose&&this.props.onKeyboardClose(),void this._handleClose()}}var t,n;(function(e){if("function"==typeof e)return e();return Boolean(e)})(this.props.disableTabNavigationContainment)||(n=e,[9,s.Modifiers.Shift+9].includes((0,s.hashFromEvent)(n))&&n.stopPropagation())}},this._requestResize=()=>{null!==this._controller&&this._controller.recalculateBounds()},this._centerAndFit=()=>{null!==this._controller&&this._controller.centerAndFit()}}componentDidMount(){var e,t;this.props.ignoreClosePopupsAndDialog||f.subscribe(m.CLOSE_POPUPS_AND_DIALOGS_COMMAND,this._handleClose,null),this._handleOpen(),void 0!==this.props.onOpen&&(this._orientationMediaQuery=window.matchMedia("(orientation: portrait)"),e=this._orientationMediaQuery,t=this._handleOpen,(null==e?void 0:e.addEventListener)?e.addEventListener("change",t):e.addListener(t))}componentWillUnmount(){var e,t;this.props.ignoreClosePopupsAndDialog||f.unsubscribe(m.CLOSE_POPUPS_AND_DIALOGS_COMMAND,this._handleClose,null),null!==this._orientationMediaQuery&&(e=this._orientationMediaQuery,t=this._handleOpen,(null==e?void 0:e.removeEventListener)?e.removeEventListener("change",t):e.removeListener(t))}focus(){(0,i.ensureNotNull)(this._reference).focus()}getElement(){return this._reference}contains(e){var t,n;return null!==(n=null===(t=this._reference)||void 0===t?void 0:t.contains(e))&&void 0!==n&&n}render(){const{className:e,wrapperClassName:t,headerClassName:n,isOpened:i,title:o,titleTextWrap:s,dataName:l,onClickOutside:m,additionalElementPos:f,additionalHeaderElement:v,backdrop:g,shouldForceFocus:y=!0,showSeparator:_,subtitle:k,draggable:x=!0,fullScreen:N=!1,showCloseIcon:I=!0,rounded:T=!0,isAnimationEnabled:O,growPoint:R,dialogTooltip:P,unsetHeaderAlign:D,onDragStart:B,dataDialogName:A,closeAriaLabel:L,containerAriaLabel:z,reference:M,containerTabIndex:K,closeButtonReference:F,onCloseButtonKeyDown:W}=this.props,j="after"!==f?v:void 0,H="after"===f?v:void 0,q="string"==typeof o?o:A||"",V=(0,S.mergeRefs)([this._handleReference,M]);return r.createElement(h.MatchMedia,{rule:d.DialogBreakpoints.SmallHeight},(f=>r.createElement(h.MatchMedia,{rule:d.DialogBreakpoints.TabletSmall},(d=>r.createElement(c.PopupDialog,{rounded:!(d||N)&&T,className:a()(E.dialog,e),isOpened:i,reference:V,onKeyDown:this._handleKeyDown,onClickOutside:m,onClickBackdrop:m,fullscreen:d||N,guard:f?C:w,boundByScreen:d||N,shouldForceFocus:y,backdrop:g,draggable:x,isAnimationEnabled:O,growPoint:R,name:this.props.dataName,dialogTooltip:P,onDragStart:B,containerAriaLabel:z,containerTabIndex:K},r.createElement("div",{className:a()(E.wrapper,t),"data-name":l,"data-dialog-name":q},void 0!==o&&r.createElement(b,{draggable:x&&!(d||N),onClose:this._handleCloseBtnClick,renderAfter:H,renderBefore:j,subtitle:k,title:o,titleTextWrap:s,showCloseIcon:I,className:n,unsetAlign:D,closeAriaLabel:L, -closeButtonReference:F,onCloseButtonKeyDown:W}),_&&r.createElement(u.Separator,{className:E.separator}),r.createElement(p.PopupContext.Consumer,null,(e=>this._renderChildren(e,d||N)))))))))}}},69654:(e,t,n)=>{"use strict";n.d(t,{DialogSearch:()=>u});var r=n(50959),i=n(97754),o=n.n(i),a=n(44352),s=n(9745),l=n(69859),c=n(90585);function u(e){const{children:t,renderInput:i,onCancel:u,containerClassName:h,...p}=e;return r.createElement("div",{className:o()(c.container,h)},r.createElement("div",{className:o()(c.inputContainer,u&&c.withCancel)},i||r.createElement(d,{...p})),t,r.createElement(s.Icon,{className:c.icon,icon:l}),u&&r.createElement("div",{className:c.cancel,onClick:u},a.t(null,void 0,n(20036))))}function d(e){const{className:t,reference:n,value:i,onChange:a,onFocus:s,onBlur:l,onKeyDown:u,onSelect:d,placeholder:h,...p}=e;return r.createElement("input",{...p,ref:n,type:"text",className:o()(t,c.input),autoComplete:"off","data-role":"search",placeholder:h,value:i,onChange:a,onFocus:s,onBlur:l,onSelect:d,onKeyDown:u})}},22265:(e,t,n)=>{"use strict";n.d(t,{DialogSidebarContainer:()=>u,DialogSidebarWrapper:()=>d,DialogSidebarItem:()=>h});var r=n(50959),i=n(97754),o=n.n(i),a=n(9745),s=n(68648),l=n(21703);function c(e){return{isMobile:"mobile"===e,isTablet:"tablet"===e}}function u(e){const{mode:t,className:n,...i}=e,{isMobile:a,isTablet:s}=c(t),u=o()(l.container,s&&l.isTablet,a&&l.isMobile,n);return r.createElement("div",{...i,className:u,"data-role":"dialog-sidebar"})}function d(e){return r.createElement("div",{className:l.wrapper,...e})}function h(e){const{mode:t,title:n,icon:i,isActive:u,onClick:d,...h}=e,{isMobile:p,isTablet:m}=c(t);return r.createElement("div",{...h,className:o()(l.tab,m&&l.isTablet,p&&l.isMobile,u&&l.active),onClick:d},r.createElement(a.Icon,{className:l.icon,icon:i}),!m&&r.createElement("span",{className:l.title},r.createElement("span",{className:l.titleText},n),p&&r.createElement(a.Icon,{className:l.nested,icon:s})))}},56903:(e,t,n)=>{"use strict";n.r(t),n.d(t,{IndicatorsLibraryContainer:()=>Q});var r=n(50959),i=n(962),o=n(44352),a=n(76076),s=n(58403),l=n(2484),c=n(6250);function u(e,t){const n=e.title.toLowerCase(),r=t.title.toLowerCase();return nr?1:0}const d={earning:new RegExp("EPS"),earnings:new RegExp("EPS"),"trailing twelve months":new RegExp("TTM")};function h(e){var t;const{id:r,description:i,shortDescription:a,description_localized:c,is_hidden_study:u,version:d,extra:h,tags:p}=e,m=l.enabled("graying_disabled_tools_enabled")&&(null===(t=window.ChartApiInstance)||void 0===t?void 0:t.studiesAccessController.isToolGrayed(i)),f=(null==h?void 0:h.isAuto)?"auto-java":s.StudyMetaInfo.getPackageName(r);return{id:r,title:c||o.t(i,{context:"study"},n(68716)),shortDescription:a,shortTitle:a,isStrategy:s.StudyMetaInfo.isScriptStrategy(e),isHidden:u,isNew:null==h?void 0:h.isNew,isUpdated:null==h?void 0:h.isUpdated,isBeta:null==h?void 0:h.isBeta,isFundamental:!1,studyData:{id:r,version:d,descriptor:{type:"java",studyId:e.id},packageName:f},isGrayed:m,tags:p}} -var p=n(97754),m=n.n(p),f=n(61074),v=n(75208),g=n(49483),y=n(69654),_=n(22265),b=n(48019);function S(e){const{reference:t,className:n,...i}=e;return r.createElement("div",{ref:t,className:m()(b.container,n),...i,"data-role":"dialog-content"})}var E=n(73154);function w(e){const{children:t,className:n,disabled:i}=e;return r.createElement("span",{className:m()(E.title,i&&E.disabled,n)},t)}const C=r.createContext(null);var k=n(24637),x=n(77975),N=n(45345),I=n(26843),T=n(36189),O=n(68335),R=n(28124);function P(e){const t=(0,r.useContext)(C),{style:i,layoutMode:a,item:s,query:l,regExpRules:c,isBeta:u,isNew:d,isUpdated:h,isSelected:p,isHighlighted:f,reference:v,onClick:g,renderActions:y}=e,{isFavorite:_,isLocked:b,public:S,editorsPick:E}=s,O=void 0!==_,P=D(g,s),B=(0,r.useCallback)((e=>e.stopPropagation()),[]),A=(null==t?void 0:t.toggleFavorite)?D(t.toggleFavorite,s):void 0,L=(0,x.useWatchedValueReadonly)({watchedValue:N.watchedTheme})===I.StdTheme.Dark?R.dark:R.light,z=m()(R.container,s.isGrayed&&R.disabled,p&&R.selected,f&&R.highlighted,f&&L);return r.createElement("div",{ref:v,className:z,onClick:P,style:i,"data-role":"list-item","data-disabled":s.isGrayed,"data-title":s.title,"data-id":s.id},r.createElement("div",{className:m()(R.main,!O&&R.paddingLeft)},O&&r.createElement(T.FavoriteButton,{className:m()(R.favorite,_&&R.isActive),isFilled:_,onClick:A}),r.createElement(w,{disabled:s.isGrayed},r.createElement(k.HighlightedText,{queryString:l,rules:c,text:s.title})),!1,u&&r.createElement(BadgeIndicator,{type:"beta",className:R.badge}),d&&r.createElement(BadgeIndicator,{type:"new",className:R.badge}),h&&r.createElement(BadgeIndicator,{type:"updated",className:R.badge}),E&&r.createElement(BadgeIndicator,{type:"ep",className:R.badge,tooltip:o.t(null,void 0,n(92490))})),S&&r.createElement("a",{href:S.authorLink,className:R.author,target:"_blank",onClick:B},S.authorName),"mobile"!==a&&S&&r.createElement("span",{className:R.likes},S.likesCount),!1)}function D(e,t){return n=>{const r=0===(0,O.modifiersFromEvent)(n)&&0===n.button;!n.defaultPrevented&&e&&r&&(n.preventDefault(),e(t))}}var B=n(49606);function A(e){const{title:t,type:n,className:i}=e;return r.createElement("h3",{className:m()(B.title,"Small"===n&&B.small,"Normal"===n&&B.normal,"Large"===n&&B.large,i)},t)}var L=n(42748);function z(e){const{style:t,children:n}=e;return r.createElement("div",{style:t,className:L.container},n)}var M=n(9745),K=n(94720),F=n(72502);function W(e){const{className:t,icon:n,title:i,description:o,buttonText:a,buttonAction:s}=e;return r.createElement("div",{className:m()(F.container,t)},n&&r.createElement(M.Icon,{icon:n,className:F.image}),i&&r.createElement("h3",{className:F.title},i),o&&r.createElement("p",{className:F.description},o),a&&s&&r.createElement(K.Button,{onClick:s,className:F.button},a))}function j(e){const[t,n]=(0,r.useState)(null);function i(e){return e.findIndex((e=>(null==t?void 0:t.id)===e.id))}return[t,n,function(){n(function(){var n;const r=i(e),o=r===e.length-1 -;return null===t||-1===r?null!==(n=e[0])&&void 0!==n?n:null:o?e[r]:e[r+1]}())},function(){n(function(){var n;const r=i(e);return null===t||0===r||-1===r?null!==(n=e[0])&&void 0!==n?n:null:e[r-1]}())}]}var H=n(19785),q=n(74781);function V(e){const{reference:t,data:i,isOpened:a,onClose:s,applyStudy:l}=e,[c,u]=(0,r.useState)(""),h=(0,r.useMemo)((()=>(0,H.createRegExpList)(c,d)),[c]),p=(0,r.useMemo)((()=>c?(0,H.rankedSearch)({data:i,rules:h,queryString:c,primaryKey:"shortDescription",secondaryKey:"title",optionalPrimaryKey:"shortTitle",tertiaryKey:"tags"}):i),[c,h,i]),{highlightedItem:b,selectedItem:E,selectedNodeReference:w,scrollContainerRef:C,searchInputRef:k,onClickStudy:x,handleKeyDown:N}=function(e,t,n,i){let o=0;const[a,s]=(0,r.useState)(null),l=(0,r.useRef)(null),c=(0,r.useRef)(null),[u,d,h,p]=j(t),m=(0,r.useRef)(null);return(0,r.useEffect)((()=>{e?f(0):d(null)}),[e]),(0,r.useEffect)((()=>{void 0!==i&&(f(0),d(null))}),[i]),(0,r.useEffect)((()=>(a&&(o=setTimeout((()=>{s(null)}),1500)),()=>{clearInterval(o)})),[a]),{highlightedItem:a,scrollContainerRef:l,selectedNodeReference:c,selectedItem:u,searchInputRef:m,onClickStudy:function(e){n&&(n(e),d(e),s(e))},handleKeyDown:function(e){const[t,r]=function(e,t){if(null===e.current||null===t.current)return[0,0];const n=e.current.getBoundingClientRect(),r=t.current.getBoundingClientRect(),{height:i}=n,o=n.top-r.top,a=n.bottom-r.bottom+i<0?0:i,s=o-i>0?0:i,{scrollTop:l}=t.current;return[l-s,l+a]}(c,l);if(40===(0,O.hashFromEvent)(e)&&(e.preventDefault(),h(),f(r)),38===(0,O.hashFromEvent)(e)&&(e.preventDefault(),p(),f(t)),13===(0,O.hashFromEvent)(e)&&u){if(!n)return;n(u),s(u)}}};function f(e){null!==l.current&&l.current.scrollTo&&l.current.scrollTo(0,e)}}(a,p,l),I=""===c&&!p.length;return(0,r.useEffect)((()=>{var e;a||u(""),g.CheckMobile.any()||null===(e=k.current)||void 0===e||e.focus()}),[a]),r.createElement(v.AdaptivePopupDialog,{isOpened:a,onClose:s,onClickOutside:s,className:m()(q.dialogLibrary),render:function(){return r.createElement(r.Fragment,null,r.createElement(y.DialogSearch,{reference:k,placeholder:o.t(null,void 0,n(52298)),onChange:T,onFocus:R}),r.createElement(_.DialogSidebarWrapper,null,r.createElement(S,{reference:C,className:q.scroll},I?r.createElement(f.Spinner,null):p.length?r.createElement(r.Fragment,null,r.createElement(z,null,r.createElement(A,{title:o.t(null,void 0,n(15491))})),p.map((e=>{const t=(null==E?void 0:E.id)===e.id;return r.createElement(P,{key:e.id,item:e,onClick:()=>x(e),query:c,regExpRules:h,reference:t?w:void 0,isSelected:(null==E?void 0:E.id)===e.id,isHighlighted:(null==b?void 0:b.id)===e.id})}))):r.createElement(W,{className:q.noContentBlock,description:o.t(null,void 0,n(53170))}))))},title:o.t(null,void 0,n(61142)),dataName:"indicators-dialog",onKeyDown:N,ref:t});function T(e){u(e.target.value)}function R(){var e;c.length>0&&(null===(e=k.current)||void 0===e||e.select())}}var Y=n(76422),$=n(40549),G=n.n($);function U(e,t){return e[t]||[]}class Q extends class{constructor(e){this._searchInputRef=r.createRef(),this._dialog=r.createRef(), -this._visibility=new(G())(!1),this._container=document.createElement("div"),this._isForceRender=!1,this._parentSources=[],this._isDestroyed=!1,this._deepFundamentalsHistoryNotificationHasBeenShown=!1,this._showDeepFundamentalsHistoryNotification=()=>{},this._chartWidgetCollection=e}isDestroyed(){return this._isDestroyed}visible(){return this._visibility.readonly()}resetAllStudies(){}updateFavorites(){}open(e){this._parentSources=e,this._updateSymbol(),this._setProps({isOpened:!0}),this._visibility.setValue(!0),Y.emit("indicators_dialog")}show(){this.open([])}hide(){this._parentSources=[],this._setProps({isOpened:!1}),this._visibility.setValue(!1)}destroy(){this._isDestroyed=!0,i.unmountComponentAtNode(this._container)}_shouldPreventRender(){return this._isDestroyed||!this._isForceRender&&!this._getProps().value().isOpened}_getRenderData(){return{props:this._getProps().value(),container:this._getContainer()}}_applyStudy(e,t){var n;e.isGrayed?Y.emit("onGrayedObjectClicked",{type:"study",name:e.shortDescription}):(g.CheckMobile.any()||null===(n=this._searchInputRef.current)||void 0===n||n.select(),async function(e,t,n,r,i){const o=e.activeChartWidget.value();if(!o)return null;const{studyData:s}=t;if(!s)return Promise.resolve(null);const l=s.descriptor;if("java"===l.type){const e=(0,c.tryFindStudyLineToolNameByStudyId)(l.studyId);if(null!==e)return a.tool.setValue(e),null}return o.insertStudy(s.descriptor,n,t.shortDescription)}(this._chartWidgetCollection,e,this._parentSources,0,this._symbol).then((()=>{var e;window.is_authenticated;g.CheckMobile.any()||(null===document.activeElement||document.activeElement===document.body||null!==this._dialog.current&&this._dialog.current.contains(document.activeElement))&&(null===(e=this._searchInputRef.current)||void 0===e||e.focus())})))}_setProps(e){const t=this._getProps().value(),{isOpened:n}=t;this._isForceRender=n&&"isOpened"in e&&!e.isOpened;const r={...t,...e};this._getProps().setValue(r)}_requestBuiltInJavaStudies(){return this._chartWidgetCollection.activeChartWidget.value().metaInfoRepository().findAllJavaStudies()}_focus(){var e;this._getProps().value().isOpened&&(null===(e=this._dialog.current)||void 0===e||e.focus())}_getContainer(){return this._container}_getDialog(){return this._dialog}_getSymbol(){return this._symbol}_updateSymbol(){this._symbol=void 0}}{constructor(e,t){super(e),this._options={onWidget:!1},t&&(this._options=t),this._props=new(G())({data:[],applyStudy:this._applyStudy.bind(this),isOpened:!1,reference:this._getDialog(),onClose:this.hide.bind(this)}),this._getProps().subscribe(this._render.bind(this)),this._init()}_getProps(){return this._props}async _init(){const e=function(e){const t={};return e.forEach((e=>{const{studyData:n}=e;if(!n)return;const{packageName:r}=n;r in t?t[r].push(e):t[r]=[e]})),t}(function(e,t=!0){return e.filter((e=>{const n=!!t||!function(e){return e.isStrategy}(e);return!e.isHidden&&n}))}((await this._requestBuiltInJavaStudies()).map(h))),t=await async function(e,t){let n={...t} -;return[...U(n,"tv-basicstudies"),...U(n,"Script$STD"),...U(n,"tv-volumebyprice")].filter((e=>!e.isStrategy)).sort(u)}(this._options.onWidget,e);this._setProps({data:t})}_render(){if(this._shouldPreventRender())return;const{props:e,container:t}=this._getRenderData();i.render(r.createElement(V,{...e}),t)}}},36189:(e,t,n)=>{"use strict";n.d(t,{FavoriteButton:()=>d});var r=n(44352),i=n(50959),o=n(97754),a=n(9745),s=n(39146),l=n(48010),c=n(64429);const u={add:r.t(null,void 0,n(44629)),remove:r.t(null,void 0,n(72482))};function d(e){const{className:t,isFilled:n,isActive:r,onClick:d,...h}=e;return i.createElement(a.Icon,{...h,className:o(c.favorite,"apply-common-tooltip",n&&c.checked,r&&c.active,t),icon:n?s:l,onClick:d,title:n?u.remove:u.add})}},19785:(e,t,n)=>{"use strict";n.d(t,{rankedSearch:()=>i,createRegExpList:()=>o,getHighlightedChars:()=>a});var r=n(65665);function i(e){const{data:t,rules:n,queryString:i,isPreventedFromFiltering:o,primaryKey:a,secondaryKey:s=a,optionalPrimaryKey:l,tertiaryKey:c}=e;return t.map((e=>{const t=l&&e[l]?e[l]:e[a],o=e[s],u=c&&e[c];let d,h=0;return n.forEach((e=>{var n,a,s,l,c;const{re:p,fullMatch:m}=e;if(p.lastIndex=0,(0,r.isString)(t)&&t&&t.toLowerCase()===i.toLowerCase())return h=4,void(d=null===(n=t.match(m))||void 0===n?void 0:n.index);if((0,r.isString)(t)&&m.test(t))return h=3,void(d=null===(a=t.match(m))||void 0===a?void 0:a.index);if((0,r.isString)(o)&&m.test(o))return h=2,void(d=null===(s=o.match(m))||void 0===s?void 0:s.index);if((0,r.isString)(o)&&p.test(o))return h=2,void(d=null===(l=o.match(p))||void 0===l?void 0:l.index);if(Array.isArray(u))for(const e of u)if(m.test(e))return h=1,void(d=null===(c=e.match(m))||void 0===c?void 0:c.index)})),{matchPriority:h,matchIndex:d,item:e}})).filter((e=>o||e.matchPriority)).sort(((e,t)=>{if(e.matchPriorityt.matchPriority)return-1;if(e.matchPriority===t.matchPriority){if(void 0===e.matchIndex||void 0===t.matchIndex)return 0;if(e.matchIndex>t.matchIndex)return 1;if(e.matchIndexe))}function o(e,t){const n=[],r=e.toLowerCase(),i=e.split("").map(((e,t)=>`(${0!==t?`[/\\s-]${s(e)}`:s(e)})`)).join("(.*?)")+"(.*)";return n.push({fullMatch:new RegExp(`(${s(e)})`,"i"),re:new RegExp(`^${i}`,"i"),reserveRe:new RegExp(i,"i"),fuzzyHighlight:!0}),t&&t.hasOwnProperty(r)&&n.push({fullMatch:t[r],re:t[r],fuzzyHighlight:!1}),n}function a(e,t,n){const r=[];return e&&n?(n.forEach((e=>{const{fullMatch:n,re:i,reserveRe:o}=e;n.lastIndex=0,i.lastIndex=0;const a=n.exec(t),s=a||i.exec(t)||o&&o.exec(t);if(e.fuzzyHighlight=!a,s)if(e.fuzzyHighlight){let e=s.index;for(let t=1;t{"use strict";n.d(t,{HighlightedText:()=>s});var r=n(50959),i=n(97754),o=n(19785),a=n(83307);function s(e){ -const{queryString:t,rules:n,text:s,className:l}=e,c=(0,r.useMemo)((()=>(0,o.getHighlightedChars)(t,s,n)),[t,n,s]);return r.createElement(r.Fragment,null,c.length?s.split("").map(((e,t)=>r.createElement(r.Fragment,{key:t},c[t]?r.createElement("span",{className:i(a.highlighted,l)},e):r.createElement("span",null,e)))):s)}},58095:(e,t,n)=>{"use strict";n.d(t,{useOutsideEvent:()=>o});var r=n(50959),i=n(39640);function o(e){const{click:t,mouseDown:n,touchEnd:o,touchStart:a,handler:s,reference:l,ownerDocument:c=document}=e,u=(0,r.useRef)(null),d=(0,r.useRef)(new CustomEvent("timestamp").timeStamp);return(0,r.useLayoutEffect)((()=>{const e={click:t,mouseDown:n,touchEnd:o,touchStart:a},r=l?l.current:u.current;return(0,i.addOutsideEventListener)(d.current,r,s,c,e)}),[t,n,o,a,s]),l||u}},77975:(e,t,n)=>{"use strict";n.d(t,{useWatchedValueReadonly:()=>i});var r=n(50959);const i=(e,t=!1)=>{const n="watchedValue"in e?e.watchedValue:void 0,i="defaultValue"in e?e.defaultValue:e.watchedValue.value(),[o,a]=(0,r.useState)(n?n.value():i);return(t?r.useLayoutEffect:r.useEffect)((()=>{if(n){a(n.value());const e=e=>a(e);return n.subscribe(e),()=>n.unsubscribe(e)}return()=>{}}),[n]),o}},90692:(e,t,n)=>{"use strict";n.d(t,{MatchMedia:()=>i});var r=n(50959);class i extends r.PureComponent{constructor(e){super(e),this._handleChange=()=>{this.forceUpdate()},this.state={query:window.matchMedia(this.props.rule)}}componentDidMount(){this._subscribe(this.state.query)}componentDidUpdate(e,t){this.state.query!==t.query&&(this._unsubscribe(t.query),this._subscribe(this.state.query))}componentWillUnmount(){this._unsubscribe(this.state.query)}render(){return this.props.children(this.state.query.matches)}static getDerivedStateFromProps(e,t){return e.rule!==t.query.media?{query:window.matchMedia(e.rule)}:null}_subscribe(e){e.addListener(this._handleChange)}_unsubscribe(e){e.removeListener(this._handleChange)}}},1109:(e,t,n)=>{"use strict";n.d(t,{Separator:()=>a});var r=n(50959),i=n(97754),o=n(94725);function a(e){return r.createElement("div",{className:i(o.separator,e.className)})}},88216:(e,t,n)=>{"use strict";n.d(t,{OverlapManager:()=>o,getRootOverlapManager:()=>s});var r=n(50151);class i{constructor(){this._storage=[]}add(e){this._storage.push(e)}remove(e){this._storage=this._storage.filter((t=>e!==t))}has(e){return this._storage.includes(e)}getItems(){return this._storage}}class o{constructor(e=document){this._storage=new i,this._windows=new Map,this._index=0,this._document=e,this._container=e.createDocumentFragment()}setContainer(e){const t=this._container,n=null===e?this._document.createDocumentFragment():e;!function(e,t){Array.from(e.childNodes).forEach((e=>{e.nodeType===Node.ELEMENT_NODE&&t.appendChild(e)}))}(t,n),this._container=n}registerWindow(e){this._storage.has(e)||this._storage.add(e)}ensureWindow(e,t={position:"fixed",direction:"normal"}){const n=this._windows.get(e);if(void 0!==n)return n;this.registerWindow(e);const r=this._document.createElement("div");if(r.style.position=t.position,r.style.zIndex=this._index.toString(),r.dataset.id=e, -void 0!==t.index){const e=this._container.childNodes.length;if(t.index>=e)this._container.appendChild(r);else if(t.index<=0)this._container.insertBefore(r,this._container.firstChild);else{const e=this._container.childNodes[t.index];this._container.insertBefore(r,e)}}else"reverse"===t.direction?this._container.insertBefore(r,this._container.firstChild):this._container.appendChild(r);return this._windows.set(e,r),++this._index,r}unregisterWindow(e){this._storage.remove(e);const t=this._windows.get(e);void 0!==t&&(null!==t.parentElement&&t.parentElement.removeChild(t),this._windows.delete(e))}getZindex(e){const t=this.ensureWindow(e);return parseInt(t.style.zIndex||"0")}moveToTop(e){if(this.getZindex(e)!==this._index){this.ensureWindow(e).style.zIndex=(++this._index).toString()}}removeWindow(e){this.unregisterWindow(e)}}const a=new WeakMap;function s(e=document){const t=e.getElementById("overlap-manager-root");if(null!==t)return(0,r.ensureDefined)(a.get(t));{const t=new o(e),n=function(e){const t=e.createElement("div");return t.style.position="absolute",t.style.zIndex=150..toString(),t.style.top="0px",t.style.left="0px",t.id="overlap-manager-root",t}(e);return a.set(n,t),t.setContainer(n),e.body.appendChild(n),t}}},65718:(e,t,n)=>{"use strict";n.d(t,{Portal:()=>l,PortalContext:()=>c});var r=n(50959),i=n(962),o=n(68671),a=n(88216),s=n(50655);class l extends r.PureComponent{constructor(){super(...arguments),this._uuid=(0,o.guid)()}componentWillUnmount(){this._manager().removeWindow(this._uuid)}render(){const e=this._manager().ensureWindow(this._uuid,this.props.layerOptions);return e.style.top=this.props.top||"",e.style.bottom=this.props.bottom||"",e.style.left=this.props.left||"",e.style.right=this.props.right||"",e.style.pointerEvents=this.props.pointerEvents||"",i.createPortal(r.createElement(c.Provider,{value:this},this.props.children),e)}moveToTop(){this._manager().moveToTop(this._uuid)}_manager(){return null===this.context?(0,a.getRootOverlapManager)():this.context}}l.contextType=s.SlotContext;const c=r.createContext(null)},50655:(e,t,n)=>{"use strict";n.d(t,{Slot:()=>i,SlotContext:()=>o});var r=n(50959);class i extends r.Component{shouldComponentUpdate(){return!1}render(){return r.createElement("div",{style:{position:"fixed",zIndex:150,left:0,top:0},ref:this.props.reference})}}const o=r.createContext(null)},61074:(e,t,n)=>{"use strict";n.d(t,{Spinner:()=>a});var r=n(50959),i=n(97754),o=n(33134);n(86625);function a(e){const t=i(e.className,"tv-spinner","tv-spinner--shown",`tv-spinner--size_${o.spinnerSizeMap[e.size||o.DEFAULT_SIZE]}`);return r.createElement("div",{className:t,style:e.style,role:"progressbar"})}},95257:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.iterator;var m={isMounted:function(){ -return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},f=Object.assign,v={};function g(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||m}function y(){}function _(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=g.prototype;var b=_.prototype=new y;b.constructor=_,f(b,g.prototype),b.isPureReactComponent=!0;var S=Array.isArray,E=Object.prototype.hasOwnProperty,w={current:null},C={key:!0,ref:!0,__self:!0,__source:!0};function k(e,t,r){var i,o={},a=null,s=null;if(null!=t)for(i in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(a=""+t.key),t)E.call(t,i)&&!C.hasOwnProperty(i)&&(o[i]=t[i]);var l=arguments.length-2;if(1===l)o.children=r;else if(1{"use strict";e.exports=n(95257)},68648:e=>{ -e.exports=''},7720:e=>{e.exports=''},69859:e=>{e.exports=''},39146:e=>{e.exports=''},48010:e=>{e.exports=''},20036:e=>{e.exports={ar:["إلغاء"],ca_ES:["Cancel·la"],cs:["Zrušit"],de:["Abbrechen"],el:["Άκυρο"],en:"Cancel",es:["Cancelar"],fa:["لغو"],fr:["Annuler"],he_IL:["ביטול"],hu_HU:["Törlés"],id_ID:["Batal"],it:["Annulla"],ja:["キャンセル"],ko:["취소"],ms_MY:["Batal"],nl_NL:["Annuleren"],pl:["Anuluj"],pt:["Cancelar"],ro:"Cancel",ru:["Отмена"],sv:["Avbryt"],th:["ยกเลิก"],tr:["İptal"],vi:["Hủy bỏ"],zh:["取消"],zh_TW:["取消"]}},44629:e=>{e.exports={ar:["اضف إلى القائمة التفضيلات"],ca_ES:["Afegeix a preferits"],cs:["Přidat do oblíbených"],de:["Zu Favoriten hinzufügen"],el:["Προσθήκη στα αγαπημένα"],en:"Add to favorites",es:["Añadir a favoritos"],fa:["افزودن به موارد مورد علاقه"],fr:["Ajouter aux favoris"],he_IL:["הוסף למועדפים"],hu_HU:["Hozzáadás kedvencekhez"],id_ID:["Tambah ke daftar favorit"],it:["Aggiungi ai preferiti"],ja:["お気に入りに追加"],ko:["즐겨찾기에 넣기"],ms_MY:["Tambah kepada kegemaran"],nl_NL:["Voeg toe aan favorieten"],pl:["Dodaj do ulubionych"],pt:["Adicionar aos favoritos"],ro:"Add to favorites",ru:["Добавить в избранное"],sv:["Lägg till som favorit"],th:["เพิ่มลงรายการโปรด"],tr:["Favorilere ekle"],vi:["Thêm vào mục yêu thích"],zh:["添加到收藏"],zh_TW:["加入收藏"]}},92490:e=>{e.exports={ar:["مختارات المحرر"],ca_ES:["Seleccions dels editors"],cs:"Editors' picks",de:["Editor's Picks"],el:"Editors' picks",en:"Editors' picks",es:["Selecciones de los editores"],fa:"Editors' picks",fr:["Choix de la rédaction"],he_IL:["בחירות העורכים"],hu_HU:"Editors' picks",id_ID:["Pilihan editor"],it:["Selezione editoriale"],ja:["エディターズ・ピック"],ko:["에디터즈 픽"],ms_MY:["Pilihan Editor"],nl_NL:"Editors' picks",pl:["Wybór Redakcji"],pt:["Sugestão da Casa"],ro:"Editors' picks",ru:["Выбор редакции"],sv:["Redaktörens val"],th:["คัดสรรโดยบรรณาธิการ"],tr:["Editörün Seçtikleri"],vi:["Biên tập viên chọn"],zh:["编辑精选"],zh_TW:["編輯精選"]}},61142:e=>{e.exports={ar:["مؤشرات"],ca_ES:["Indicadors"],cs:["Indikátory"], -de:["Indikatoren"],el:["Τέχν. Δείκτες"],en:"Indicators",es:["Indicadores"],fa:["اندیکاتورها"],fr:["Indicateurs"],he_IL:["אינדיקטורים"],hu_HU:["Indikátorok"],id_ID:["Indikator"],it:["Indicatori"],ja:["インジケーター"],ko:["지표"],ms_MY:["Penunjuk"],nl_NL:["Indicatoren"],pl:["Wskaźniki"],pt:["Indicadores"],ro:"Indicators",ru:["Индикаторы"],sv:["Indikatorer"],th:["อินดิเคเตอร์"],tr:["Göstergeler"],vi:["Các chỉ báo"],zh:["指标"],zh_TW:["技術指標"]}},53170:e=>{e.exports={ar:["لا توجد مؤشرات تتوافق مع معاييرك."],ca_ES:["Cap indicador coincideix amb els vostres criteris"],cs:["Indikátory nevyhovující vaším požadavkům"],de:["Keine passenden Indikatoren zu Ihren Kriterien gefunden"],el:["Δε βρέθηκαν Τέχνικο. Δείκτες που να ταιριάζουν με τα κριτήρια αναζήτησης"],en:"No indicators matched your criteria",es:["Ningún indicador coincide con sus criterios"],fa:["هیچ اندیکاتوری با شرط شما مطابقت ندارد."],fr:["Aucuns indicateurs ne correspondent à vos critères."],he_IL:["לא נמצאו התאמות לאינדקטור"],hu_HU:["Egyetlen indikátor se felel meg a kritériumoknak."],id_ID:["Tidak ada indikator yang cocok dengan kriteria anda."],it:["Nessun indicatore corrisponde ai criteri"],ja:["条件に合致するインジケーターはありません"],ko:["찾는 지표가 없습니다."],ms_MY:["Tiada penunjuk yang sepadan dengan kriteria anda."],nl_NL:["Geen indicator voldeed aan je criteria"],pl:["Brak wskaźników spełniających twoje kryteria"],pt:["Não foram encontrados indicadores que correspondam à escolha selecionada."],ro:["No indicators matched your criteria."],ru:["Нет подходящих индикаторов."],sv:["Inga indikatorer överensstämde med dina kriterier."],th:["ไม่พบตัวชี้วัดตามเกณฑ์ของคุณ"],tr:["Kriterinize uygun gösterge bulunamadı."],vi:["Không có chỉ số nào khớp với tiêu chí của bạn."],zh:["没有符合您搜索条件的指标."],zh_TW:["沒有指標符合您的搜尋條件。"]}},15491:e=>{e.exports={ar:["اسم النص البرمجي"],ca_ES:["Nom de l'script"],cs:"Script name",de:["Skripname"],el:"Script name",en:"Script name",es:["Nombre del script"],fa:"Script name",fr:["Nom du script"],he_IL:["שם הסקריפט"],hu_HU:["Szkript név"],id_ID:["Nama skrip"],it:["Nome script"],ja:["スクリプト名"],ko:["스크립트 이름"],ms_MY:["Nama skrip"],nl_NL:"Script name",pl:["Nazwa skryptu"],pt:["Nome do script"],ro:"Script name",ru:["Имя скрипта"],sv:["Skriptets namn"],th:["ชื่อชุดคำสั่ง"],tr:["Komut adı"],vi:["Tên Script"],zh:["脚本名称"],zh_TW:["腳本名稱"]}},52298:e=>{e.exports={ar:["بحث"],ca_ES:["Cercar"],cs:["Hledat"],de:["Suche"],el:["Αναζήτησή"],en:"Search",es:["Buscar"],fa:["جستجو"],fr:["Chercher"],he_IL:["חפש"],hu_HU:["Keresés"],id_ID:["Cari"],it:["Cerca"],ja:["検索"],ko:["찾기"],ms_MY:["Cari"],nl_NL:["Zoeken"],pl:["Szukaj"],pt:["Pesquisar"],ro:"Search",ru:["Поиск"],sv:["Sök"],th:["ค้นหา"],tr:["Ara"],vi:["Tìm kiếm"],zh:["搜索"],zh_TW:["搜尋"]}},72482:e=>{e.exports={ar:["حذف من القائمة المفضلة"],ca_ES:["Treure de preferits"],cs:["Odebrat z oblíbených"],de:["Aus Favoriten entfernen"],el:["Διαγραφή απο τα αγαπημένα"],en:"Remove from favorites",es:["Quitar de favoritos"],fa:["حذف از موارد مورد علاقه"],fr:["Retirer des favoris"],he_IL:["הסר ממועדפים"],hu_HU:["Eltávolít kedvencek közül"], -id_ID:["Hilangkan dari favorit"],it:["Rimuovi dai preferiti"],ja:["お気に入りから削除"],ko:["즐겨찾기지움"],ms_MY:["Keluarkan dari kegemaran"],nl_NL:["Verwijder van favorieten"],pl:["Usuń z ulubionych"],pt:["Remover dos favoritos"],ro:"Remove from favorites",ru:["Удалить из предпочтений"],sv:["Ta bort från favoriter"],th:["ลบออกจากรายการโปรด"],tr:["Favorilerimden çıkar"],vi:["Loại bỏ khỏi mục yêu thích"],zh:["从收藏中移除"],zh_TW:["從收藏移除"]}}}]); \ No newline at end of file diff --git a/charting_library/charting_library.cjs.js b/charting_library/charting_library.cjs.js index a3ee457b..070b83cf 100644 --- a/charting_library/charting_library.cjs.js +++ b/charting_library/charting_library.cjs.js @@ -1 +1 @@ -"use strict";function t(e,n){const i={...e};for(const o in n)"object"!=typeof e[o]||null===e[o]||Array.isArray(e[o])?void 0!==n[o]&&(i[o]=n[o]):i[o]=t(e[o],n[o]);return i}Object.defineProperty(exports,"__esModule",{value:!0});const e={width:800,height:500,interval:"1D",timezone:"Etc/UTC",container:"",library_path:"",locale:"en",widgetbar:{details:!1,watchlist:!1,news:!1,datawindow:!1,watchlist_settings:{default_symbols:[]}},overrides:{"mainSeriesProperties.showCountdown":!1},studies_overrides:{},trading_customization:{position:{},order:{}},brokerConfig:{configFlags:{}},fullscreen:!1,autosize:!1,disabled_features:[],enabled_features:[],debug:!1,logo:{},time_frames:[{text:"5y",resolution:"1W"},{text:"1y",resolution:"1W"},{text:"6m",resolution:"120"},{text:"3m",resolution:"60"},{text:"1m",resolution:"30"},{text:"5d",resolution:"5"},{text:"1d",resolution:"1"}],client_id:"0",user_id:"0",charts_storage_api_version:"1.0",favorites:{intervals:[],chartTypes:[],drawingTools:[]}},n=JSON.parse('[{"iso":"ar","dir":"rtl","language":"ar"},{"iso":"pt","dir":"ltr","language":"pt"},{"iso":"ca","dir":"ltr","language":"ca_ES"},{"iso":"cs","dir":"ltr","language":"cs"},{"iso":"de","dir":"ltr","language":"de"},{"iso":"en","dir":"ltr","language":"en"},{"iso":"es","dir":"ltr","language":"es"},{"iso":"fa","dir":"rtl","language":"fa"},{"iso":"fr","dir":"ltr","language":"fr"},{"iso":"he","dir":"rtl","language":"he_IL"},{"iso":"hu","dir":"ltr","language":"hu_HU"},{"iso":"id","dir":"ltr","language":"id_ID"},{"iso":"en","dir":"ltr","language":"en"},{"iso":"it","dir":"ltr","language":"it"},{"iso":"ja","dir":"ltr","language":"ja"},{"iso":"ko","dir":"ltr","language":"ko"},{"iso":"ms","dir":"ltr","language":"ms_MY"},{"iso":"pl","dir":"ltr","language":"pl"},{"iso":"ru","dir":"ltr","language":"ru"},{"iso":"sv","dir":"ltr","language":"sv"},{"iso":"th","dir":"ltr","language":"th"},{"iso":"tr","dir":"ltr","language":"tr"},{"iso":"vi","dir":"ltr","language":"vi"},{"iso":"zh-Hans","dir":"ltr","language":"zh"},{"iso":"zh-Hant","dir":"ltr","language":"zh_TW"},{"iso":"el","dir":"ltr","language":"el"},{"iso":"nl","dir":"ltr","language":"nl_NL"},{"iso":"ro","dir":"ltr","language":"ro"}]');let i=!1;function o(t){var e;const n=/\.woff(\d*)/.exec(t);return``}function s(t,e){var i;const s=new URL(`${t||""}`,location.href).href,r=JSON.parse('["bundles/runtime.dabbddb8e0cf198a3951.js","bundles/__LANG__.7076.5055b5f097e7204685ed.js","bundles/7717.8f75bd75d4b6ed45f3ff.css","bundles/7717.8f75bd75d4b6ed45f3ff.rtl.css","bundles/4618.e46ad0a894862e22afb5.js","bundles/library.fa294554299772125cc4.js","bundles/EuclidCircular.be8f862db48c2976009f.woff2"]'),a=encodeURIComponent(e),d=null!==(i=n.find((t=>t.language===a)))&&void 0!==i?i:{iso:"en",dir:"ltr"},l=`lang="${d.iso}" dir="${d.dir}"`,h=`\n${function(t,e,n){if(void 0===t)return"";const i=[],s=[],r=[],a=/\.css$/i,d=/\.rtl\.css$/i;for(const l of t)l.endsWith(".js")?s.push(`