(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[3005],{77511:e=>{e.exports={group:"group-T57LDNqT",noLeftDecoration:"noLeftDecoration-T57LDNqT",noRightDecoration:"noRightDecoration-T57LDNqT",noMinimalWidth:"noMinimalWidth-T57LDNqT",newStyles:"newStyles-T57LDNqT",separator:"separator-T57LDNqT",separatorWrap:"separatorWrap-T57LDNqT"}},71747:e=>{e.exports={"css-value-header-toolbar-height":"38px",wrap:"wrap-7mUBPdQo"}},85291:e=>{e.exports={"css-value-header-toolbar-height":"38px",toolbar:"toolbar-ymEQuMuZ",isHidden:"isHidden-ymEQuMuZ",overflowWrap:"overflowWrap-ymEQuMuZ",customButton:"customButton-ymEQuMuZ",hovered:"hovered-ymEQuMuZ"}},36971:e=>{e.exports={wrap:"wrap-zQWNyqoF",icon:"icon-zQWNyqoF"}},93067:e=>{e.exports={"css-value-header-toolbar-height":"38px",inner:"inner-Kbdz4qEM",fake:"fake-Kbdz4qEM",fill:"fill-Kbdz4qEM",collapse:"collapse-Kbdz4qEM",button:"button-Kbdz4qEM",iconButton:"iconButton-Kbdz4qEM",hidden:"hidden-Kbdz4qEM",content:"content-Kbdz4qEM",desktopPublish:"desktopPublish-Kbdz4qEM",mobilePublish:"mobilePublish-Kbdz4qEM"}},41814:e=>{e.exports={wrap:"wrap-sfzcrPlH",wrapWithArrowsOuting:"wrapWithArrowsOuting-sfzcrPlH",wrapOverflow:"wrapOverflow-sfzcrPlH",scrollWrap:"scrollWrap-sfzcrPlH",noScrollBar:"noScrollBar-sfzcrPlH",icon:"icon-sfzcrPlH",scrollLeft:"scrollLeft-sfzcrPlH",scrollRight:"scrollRight-sfzcrPlH",isVisible:"isVisible-sfzcrPlH",iconWrap:"iconWrap-sfzcrPlH",fadeLeft:"fadeLeft-sfzcrPlH",fadeRight:"fadeRight-sfzcrPlH"}},9745:(e,t,r)=>{"use strict";r.d(t,{Icon:()=>i});var n=r(59496);const i=n.forwardRef((e,t)=>{const{icon:r="",...i}=e;return n.createElement("span",{...i,ref:t,dangerouslySetInnerHTML:{__html:r}})})},53374:(e,t,r)=>{"use strict";r.d(t,{INTERVALS:()=>i});var n=r(28353);const i=[{name:"",label:(0,n.t)("minutes",{context:"interval"})},{name:"H",label:(0,n.t)("hours",{context:"interval"})},{name:"D",label:(0,n.t)("days",{context:"interval"})},{name:"W",label:(0,n.t)("weeks",{context:"interval"})},{name:"M",label:(0,n.t)("months",{context:"interval"})}]},53335:(e,t,r)=>{"use strict";r.r(t),r.d(t,{HeaderToolbarRenderer:()=>ge});var n=r(59496),i=r(87995),o=r(88537),s=r(97754),a=r(85459),l=r.n(a),u=r(43370),c=r(67337),d=r(76422),h=r(19036),p=r(9837),f=r(32563),m=r(42142),v=r(37669),y=r(77511);function g(e){const{children:t,className:r,noLeftDecoration:i,noRightDecoration:o,noMinimalWidth:a,onClick:l,removeSeparator:u}=e;return n.createElement(n.Fragment,null,v.hasNewHeaderToolbarStyles&&!u&&n.createElement("div",{className:y.separatorWrap},n.createElement("div",{className:y.separator})),n.createElement("div",{className:s(r,y.group,{[y.noMinimalWidth]:a,[y.noLeftDecoration]:i,[y.noRightDecoration]:o,[y.newStyles]:v.hasNewHeaderToolbarStyles}),onClick:l},t))}var b=r(71747);class S extends n.PureComponent{constructor(){super(...arguments),this._handleMeasure=({width:e})=>{this.props.onWidthChange(e)}}render(){const{children:e,shouldMeasure:t}=this.props;return n.createElement(p,{shouldMeasure:t,onMeasure:this._handleMeasure,whitelist:["width"]},n.createElement("div",{ className:b.wrap},e))}}var w=r(28353),_=r(9745),E=r(36971),C=r(59266);const M={text:(0,w.t)("View Only Mode")};function T(e){return n.createElement("div",{className:E.wrap},n.createElement(_.Icon,{className:E.icon,icon:C}),M.text)}var k,R=r(39440),O=r(54475);!function(e){e.SymbolSearch="header-toolbar-symbol-search",e.Intervals="header-toolbar-intervals",e.ChartStyles="header-toolbar-chart-styles",e.Compare="header-toolbar-compare",e.Indicators="header-toolbar-indicators",e.StudyTemplates="header-toolbar-study-templates",e.Dropdown="header-toolbar-dropdown",e.Alerts="header-toolbar-alerts",e.Layouts="header-toolbar-layouts",e.SaveLoad="header-toolbar-save-load",e.UndoRedo="header-toolbar-undo-redo",e.Properties="header-toolbar-properties",e.PublishDesktop="header-toolbar-publish-desktop",e.PublishMobile="header-toolbar-publish-mobile",e.Fullscreen="header-toolbar-fullscreen",e.Screenshot="header-toolbar-screenshot",e.Replay="header-toolbar-replay",e.Financials="header-toolbar-financials",e.StartTrial="header-toolbar-start-trial"}(k||(k={}));var N=r(70412),I=r(55402),x=r(93067);const P=(0,I.registryContextType)();class V extends n.PureComponent{constructor(e,t){super(e,t),this._handleMouseOver=e=>{(0,N.hoverMouseEventFilter)(e)&&this.setState({isHovered:!0})},this._handleMouseOut=e=>{(0,N.hoverMouseEventFilter)(e)&&this.setState({isHovered:!1})},this._handleInnerResize=e=>{const{onWidthChange:t}=this.props;t&&t(e)},this._handleMeasureAvailableSpace=({width:e})=>{const{onAvailableSpaceChange:t}=this.props;t&&t(e)},this._processCustoms=e=>{const{isFake:t,displayMode:r}=this.props,{tools:i}=this.context;return e.map(e=>n.createElement(g,{key:e.id},(e=>{switch(e.type){case"Button":return n.createElement(i.Custom,{...e.params,isFake:t});case"TradingViewStyledButton":return n.createElement(i.CustomTradingViewStyledButton,{...e.params,className:x.button,displayMode:r});case"Dropdown":return n.createElement(i.Dropdown,{displayMode:r,params:e.params});default:return null}})(e)))},this._fixLastGroup=(e,t,r)=>{if(t===r.length-1&&n.isValidElement(e)&&e.type===g){const t=void 0!==this.context.tools.Publish&&!this.props.readOnly;return n.cloneElement(e,{noRightDecoration:t})}return e},(0,I.validateRegistry)(t,{tools:h.any.isRequired}),this.state={isHovered:!1,isAuthenticated:void 0}}componentDidMount(){0}componentWillUnmount(){0}render(){const{tools:e}=this.context,{features:t,displayMode:r,chartSaver:i,studyMarket:o,readOnly:a,saveLoadSyncEmitter:l,leftCustomElements:u,rightCustomElements:c,showScrollbarWhen:d,isFake:h=!1}=this.props,{isHovered:y,isAuthenticated:b}=this.state,w=this._processCustoms(u),_=this._processCustoms(c),E=d.includes(r);return n.createElement("div",{className:s(x.inner,{[x.fake]:h}),onContextMenu:O.preventDefaultForContextMenu,"data-is-fake-main-panel":h},n.createElement(p,{onMeasure:this._handleMeasureAvailableSpace,whitelist:["width"],shouldMeasure:!h},n.createElement(R.HorizontalScroll,{isVisibleFade:f.mobiletouch&&E,isVisibleButtons:!f.mobiletouch&&E&&y,isVisibleScrollbar:!1,shouldMeasure:E&&!h, onMouseOver:this._handleMouseOver,onMouseOut:this._handleMouseOut},n.createElement("div",{className:x.content},n.createElement(S,{onWidthChange:this._handleInnerResize,shouldMeasure:h},n.createElement(m.FragmentMap,{map:this._fixLastGroup},!a&&n.Children.toArray([e.SymbolSearch&&n.createElement(g,{key:"symbol"},n.createElement(e.SymbolSearch,{id:h?void 0:k.SymbolSearch,isActionsVisible:t.allowSymbolSearchSpread}),v.hasNewHeaderToolbarStyles&&e.Compare&&n.createElement(e.Compare,{id:h?void 0:k.Compare,className:x.button,displayMode:r})),e.DateRange&&n.createElement(g,{key:"range"},n.createElement(e.DateRange,null)),e.Intervals&&n.createElement(g,{key:"intervals"},n.createElement(e.Intervals,{id:h?void 0:k.Intervals,isShownQuicks:t.allowFavoriting,isFavoritingAllowed:t.allowFavoriting,displayMode:r,isFake:h})),e.Bars&&n.createElement(g,{key:"styles"},n.createElement(e.Bars,{id:h?void 0:k.ChartStyles,isShownQuicks:t.allowFavoriting,isFavoritingAllowed:t.allowFavoriting,displayMode:r,isFake:h})),!v.hasNewHeaderToolbarStyles&&e.Compare&&n.createElement(g,{key:"compare"},n.createElement(e.Compare,{id:h?void 0:k.Compare,className:x.button,displayMode:r})),e.Indicators&&n.createElement(g,{key:"indicators"},n.createElement(e.Indicators,{id:h?void 0:k.Indicators,className:x.button,studyMarket:o,displayMode:r}),v.hasNewHeaderToolbarStyles&&e.Templates&&n.createElement(e.Templates,{id:h?void 0:k.StudyTemplates,isShownQuicks:t.allowFavoriting,isFavoritingAllowed:t.allowFavoriting,displayMode:r})),!v.hasNewHeaderToolbarStyles&&e.Templates&&n.createElement(g,{key:"templates"},n.createElement(e.Templates,{id:h?void 0:k.StudyTemplates,isShownQuicks:t.allowFavoriting,isFavoritingAllowed:t.allowFavoriting,displayMode:r})),e.Alert&&n.createElement(g,{key:"alert"},n.createElement(e.Alert,{id:h?void 0:k.Alerts,className:x.button,displayMode:r}),v.hasNewHeaderToolbarStyles&&e.Replay&&n.createElement(e.Replay,{id:h?void 0:k.Replay,className:x.button,displayMode:r})),e.AlertReferral&&n.createElement(g,{key:"alert-referral"},n.createElement(e.AlertReferral,{className:x.button,displayMode:r})),!v.hasNewHeaderToolbarStyles&&e.Replay&&n.createElement(g,{key:"replay"},n.createElement(e.Replay,{id:h?void 0:k.Replay,className:x.button,displayMode:r})),!v.hasNewHeaderToolbarStyles&&e.UndoRedo&&n.createElement(g,{key:"undo-redo"},n.createElement(e.UndoRedo,{id:h?void 0:k.UndoRedo})),e.ScalePercentage&&n.createElement(g,{key:"percentage"},n.createElement(e.ScalePercentage,null)),e.ScaleLogarithm&&n.createElement(g,{key:"logarithm"},n.createElement(e.ScaleLogarithm,null)),...w]),function(e){const t=e.findIndex(e=>n.isValidElement(e)&&!!e.key&&-1!==e.key.toString().indexOf("view-only-badge"));return[t].filter(e=>e>=0).forEach(t=>{e=n.Children.map(e,(e,r)=>{if(n.isValidElement(e)){switch([t-1,t,t+1].indexOf(r)){case 0:const t={noRightDecoration:!0};e=n.cloneElement(e,t);break;case 1:const r={noLeftDecoration:!0,noRightDecoration:!0};e=n.cloneElement(e,r);break;case 2:const i={noLeftDecoration:!0};e=n.cloneElement(e,i)}}return e})}),e }(n.Children.toArray([a&&n.createElement(g,{key:"view-only-badge",removeSeparator:v.hasNewHeaderToolbarStyles},n.createElement(T,null)),n.createElement(g,{key:"gap",className:s(x.fill,h&&x.collapse),removeSeparator:v.hasNewHeaderToolbarStyles}),v.hasNewHeaderToolbarStyles&&!a&&e.UndoRedo&&n.createElement(g,{key:"undo-redo",removeSeparator:!0},n.createElement(e.UndoRedo,{id:h?void 0:k.UndoRedo})),(!a||v.hasNewHeaderToolbarStyles)&&e.Layout&&n.createElement(g,{key:"layout",removeSeparator:v.hasNewHeaderToolbarStyles&&a},!a&&n.createElement(e.Layout,{id:h?void 0:k.Layouts}),v.hasNewHeaderToolbarStyles&&e.SaveLoad&&n.createElement(e.SaveLoad,{id:h?void 0:k.SaveLoad,chartSaver:i,isReadOnly:a,displayMode:r,isFake:h,stateSyncEmitter:l})),!v.hasNewHeaderToolbarStyles&&e.SaveLoad&&n.createElement(g,{key:"save-load-right"},n.createElement(e.SaveLoad,{id:h?void 0:k.SaveLoad,chartSaver:i,isReadOnly:a,displayMode:r,isFake:h,stateSyncEmitter:l})),e.SaveLoadReferral&&n.createElement(g,{key:"save-load-referral"},n.createElement(e.SaveLoadReferral,{isReadOnly:a,displayMode:r})),t.showLaunchInPopupButton&&e.OpenPopup&&n.createElement(g,{key:"popup"},n.createElement(e.OpenPopup,null)),(!a||v.hasNewHeaderToolbarStyles)&&e.Properties&&n.createElement(g,{key:"properties",removeSeparator:v.hasNewHeaderToolbarStyles&&a},!a&&n.createElement(e.Properties,{id:h?void 0:k.Properties,className:x.iconButton}),v.hasNewHeaderToolbarStyles&&n.createElement(n.Fragment,null,!a&&e.Fullscreen&&n.createElement(e.Fullscreen,{id:h?void 0:k.Fullscreen}),e.Screenshot&&n.createElement(e.Screenshot,{id:h?void 0:k.Screenshot,className:x.iconButton}))),!v.hasNewHeaderToolbarStyles&&!a&&e.Fullscreen&&n.createElement(g,{key:"fullscreen",onClick:this._trackFullscreenButtonClick},n.createElement(e.Fullscreen,{id:h?void 0:k.Fullscreen})),!v.hasNewHeaderToolbarStyles&&e.Screenshot&&n.createElement(g,{key:"screenshot"},n.createElement(e.Screenshot,{id:h?void 0:k.Screenshot,className:x.iconButton})),!a&&e.Publish&&n.createElement(g,{key:"publish",className:x.mobilePublish,removeSeparator:v.hasNewHeaderToolbarStyles},n.createElement(e.Publish,{id:h?void 0:k.PublishMobile})),..._]))))))),e.Publish&&!a&&!h&&n.createElement(e.Publish,{id:k.PublishDesktop,className:x.desktopPublish}))}_onLoginStateChange(){0}_trackFullscreenButtonClick(){0}}V.contextType=P;var W=r(52714),D=r.n(W),F=r(9127);class L extends F.CommonJsonStoreService{constructor(e,t,r=[]){super(e,t,"FAVORITE_CHART_STYLES_CHANGED","StyleWidget.quicks",r)}}var A=r(9315),H=r(96397);class B extends F.AbstractJsonStoreService{constructor(e,t,r){super(e,t,"FAVORITE_INTERVALS_CHANGED","IntervalWidget.quicks",r)}_serialize(e){return(0,H.uniq)(e.map(A.normalizeIntervalString))}_deserialize(e){return(0,H.uniq)((0,A.convertResolutionsFromSettings)(e).filter(A.isResolutionMultiplierValid).map(A.normalizeIntervalString))}}var z=r(82992),j=r(2872),q=r.n(j),U=r(56840),K=r(21097);class Q extends F.AbstractJsonStoreService{constructor(e,t,r=[]){super(e,t,"CUSTOM_INTERVALS_CHANGED","IntervalWidget.intervals",r)}set(e,t){e.length, this.get().length,super.set(e,t)}_serialize(e){return(0,H.uniq)(e.map(A.normalizeIntervalString))}_deserialize(e){return(0,H.uniq)((0,A.convertResolutionsFromSettings)(e).filter(A.isResolutionMultiplierValid).map(A.normalizeIntervalString))}}const J=new Q(K.TVXWindowEvents,U);var X=r(53374);class G{constructor(e){this._customIntervalsService=J,this._supportedIntervalsMayChange=new(q()),this._fireSupportedIntervalsMayChange=()=>{this._supportedIntervalsMayChange.fire()},this._chartApiInstance=e,z.linking.supportedResolutions.subscribe(this._fireSupportedIntervalsMayChange),z.linking.range.subscribe(this._fireSupportedIntervalsMayChange),z.linking.seconds.subscribe(this._fireSupportedIntervalsMayChange),z.linking.ticks.subscribe(this._fireSupportedIntervalsMayChange),z.linking.intraday.subscribe(this._fireSupportedIntervalsMayChange)}destroy(){z.linking.supportedResolutions.unsubscribe(this._fireSupportedIntervalsMayChange),z.linking.range.unsubscribe(this._fireSupportedIntervalsMayChange),z.linking.seconds.unsubscribe(this._fireSupportedIntervalsMayChange),z.linking.ticks.unsubscribe(this._fireSupportedIntervalsMayChange),z.linking.intraday.unsubscribe(this._fireSupportedIntervalsMayChange)}getDefaultIntervals(){return null===this._chartApiInstance?[]:this._chartApiInstance.defaultResolutions().map(A.normalizeIntervalString)}getCustomIntervals(){return this._customIntervalsService.get()}add(e,t,r){if(!this.isValidInterval(e,t))return null;const n=(0,A.normalizeIntervalString)(`${e}${t}`),i=this.getCustomIntervals();return this._isIntervalDefault(n)||i.includes(n)?null:(this._customIntervalsService.set((0,A.sortResolutions)([...i,n])),n)}remove(e){this._customIntervalsService.set(this.getCustomIntervals().filter(t=>t!==e))}isValidInterval(e,t){return(0,A.isResolutionMultiplierValid)(`${e}${t}`)}isSupportedInterval(e){return(0,A.isAvailable)(e)}supportedIntervalsMayChange(){return this._supportedIntervalsMayChange}getOnChange(){return this._customIntervalsService.getOnChange()}getPossibleIntervals(){return X.INTERVALS}getResolutionUtils(){return{getMaxResolutionValue:A.getMaxResolutionValue,getTranslatedResolutionModel:A.getTranslatedResolutionModel,mergeResolutions:A.mergeResolutions,sortResolutions:A.sortResolutions}}_isIntervalDefault(e){return this.getDefaultIntervals().includes(e)}}var $=r(18387),Y=r(88145),Z=r(14905);const ee={};let te=null;class re{constructor(e=U){this._favorites=[],this._favoritesChanged=new(q()),this._settings=e,K.TVXWindowEvents.on("StudyFavoritesChanged",e=>{const t=JSON.parse(e);this._loadFromState(t.favorites||[])}),this._settings.onSync.subscribe(this,this._loadFavs),this._loadFavs()}isFav(e){const t=this.favId(e);return-1!==this._findFavIndex(t)}toggleFavorite(e){this.isFav(e)?this.removeFavorite(e):this.addFavorite(e)}addFavorite(e){const t=this.favId(e);this._favorites.push(ie(t)),this._favoritesChanged.fire(),this._saveFavs()}removeFavorite(e){const t=this.favId(e),r=this._findFavIndex(t);-1!==r&&(this._favorites.splice(r,1),this._favoritesChanged.fire()),this._saveFavs()}favId(e){ return(0,Z.isPineIdString)(e)?e:(0,Z.extractPineId)(e)||(0,Y.extractStudyId)(e)}favorites(){return this._favorites}favoritePineIds(){return this._favorites.filter(e=>"pine"===e.type).map(e=>e.pineId)}favoritesChanged(){return this._favoritesChanged}static getInstance(){return null===te&&(te=new re),te}static create(e){return new re(e)}_loadFavs(){const e=this._settings.getJSON("studyMarket.favorites",[]);this._loadFromState(e)}_saveFavs(){const e=this._stateToSave();this._settings.setJSON("studyMarket.favorites",e,{forceFlush:!0}),K.TVXWindowEvents.emit("StudyFavoritesChanged",JSON.stringify({favorites:e}))}_stateToSave(){return this._favorites.map(ne)}_loadFromState(e){this._favorites=e.map(e=>ie(function(e){return e in ee?ee[e]:e}(e))),this._favoritesChanged.fire()}_findFavIndex(e){return this._favorites.findIndex(t=>e===ne(t))}}function ne(e){return"java"===e.type?e.studyId:e.pineId}function ie(e){return(0,Z.isPineIdString)(e)?{type:"pine",pineId:e}:{type:"java",studyId:e}}var oe=r(29823);const se={[oe.ResolutionKind.Ticks]:!1,[oe.ResolutionKind.Seconds]:!1,[oe.ResolutionKind.Minutes]:!1,[oe.SpecialResolutionKind.Hours]:!1,[oe.ResolutionKind.Days]:!1,[oe.ResolutionKind.Range]:!1};class ae extends F.CommonJsonStoreService{constructor(e,t,r=se){super(e,t,"INTERVALS_MENU_VIEW_STATE_CHANGED","IntervalWidget.menu.viewState",r)}isAllowed(e){return Object.keys(se).includes(e)}}var le=r(22668);const ue={Area:3,Bars:0,Candles:1,"Heiken Ashi":8,"Hollow Candles":9,Line:2,Renko:4,Kagi:5,"Point & figure":6,"Line Break":7,Baseline:10},ce=["1","30","60"];function de(e=[]){let t=e.map(e=>ue[e])||[1,4,5,6];return c.enabled("widget")&&(t=[0,1,3]),t}function he(e=[]){return(0,A.mergeResolutions)(e,c.enabled("star_some_intervals_by_default")?ce:[])}new B(K.TVXWindowEvents,U,he()),new L(K.TVXWindowEvents,U,de()),new le.FavoriteStudyTemplateService(K.TVXWindowEvents,U);const pe={tools:h.any.isRequired,isFundamental:h.any,chartApiInstance:h.any,availableTimeFrames:h.any,chartWidgetCollection:h.any,windowMessageService:h.any,favoriteChartStylesService:h.any,favoriteIntervalsService:h.any,intervalService:h.any,favoriteStudyTemplatesService:h.any,studyTemplates:h.any,chartChangesWatcher:h.any,saveChartService:h.any,sharingChartService:h.any,loadChartService:h.any,chartWidget:h.any,favoriteScriptsModel:h.any,intervalsMenuViewStateService:h.any,templatesMenuViewStateService:h.any,financialsDialogController:h.any,snapshotUrl:h.any};var fe=r(62046),me=r(85291);const ve=[];class ye extends n.PureComponent{constructor(e){super(e),this._saveLoadSyncEmitter=new(l()),this._handleFullWidthChange=e=>{this._fullWidth=e,this.setState({measureValid:!1})},this._handleFavoritesWidthChange=e=>{this._favoritesWidth=e,this.setState({measureValid:!1})},this._handleCollapseWidthChange=e=>{this._collapseWidth=e,this.setState({measureValid:!1})},this._handleMeasure=e=>{this.setState({availableWidth:e,measureValid:!1})} ;const{tools:t,windowMessageService:r,chartWidgetCollection:n,chartApiInstance:i,availableTimeFrames:s,isFundamental:a,favoriteIntervalsService:d,favoriteChartStylesService:h,favoriteStudyTemplatesService:p,studyTemplates:f,saveChartService:m,sharingChartService:v,loadChartService:y,financialsDialogController:g,snapshotUrl:b}=e;this._showScrollbarWhen=(0,o.ensureDefined)(e.allowedModes).slice(-1),this._panelWidthChangeHandlers={full:this._handleFullWidthChange,medium:this._handleFavoritesWidthChange,small:this._handleCollapseWidthChange};const{chartChangesWatcher:S}=e;this._chartChangesWatcher=S;const w=de(this.props.defaultFavoriteStyles);this._favoriteChartStylesService=h||new L(K.TVXWindowEvents,U,w);const _=he(this.props.defaultFavoriteIntervals);this._favoriteIntervalsService=d||new B(K.TVXWindowEvents,U,_),this._intervalsMenuViewStateService=new ae(K.TVXWindowEvents,U),this._intervalService=new G(i),this._registry={tools:t,isFundamental:a,chartWidgetCollection:n,windowMessageService:r,chartApiInstance:i,availableTimeFrames:s,favoriteStudyTemplatesService:p,studyTemplates:f,saveChartService:m,sharingChartService:v,loadChartService:y,intervalsMenuViewStateService:this._intervalsMenuViewStateService,favoriteChartStylesService:this._favoriteChartStylesService,favoriteIntervalsService:this._favoriteIntervalsService,intervalService:this._intervalService,chartChangesWatcher:this._chartChangesWatcher,chartWidget:n.activeChartWidget.value(),favoriteScriptsModel:re.getInstance(),templatesMenuViewStateService:this._templatesMenuVuewStateService,financialsDialogController:g,snapshotUrl:b},this.state={isVisible:!0,availableWidth:0,displayMode:"full",measureValid:!1,leftCustomElements:[],rightCustomElements:[]},this._readOnly=n.readOnly(),this._features={allowFavoriting:c.enabled("items_favoriting"),showIdeasButton:Boolean(this.props.ideas),showLaunchInPopupButton:Boolean(this.props.popupButton),allowSymbolSearchSpread:c.enabled("header_symbol_search")&&c.enabled("show_spread_operators"),allowToolbarHiding:c.enabled("collapsible_header")},this._setDisplayMode=(0,u.default)(this._setDisplayMode,100),this._negotiateResizer()}componentDidUpdate(e,t){const{isVisible:r,measureValid:n}=this.state;r!==t.isVisible&&(d.emit("toggle_header",r),this._negotiateResizer()),n||this._setDisplayMode()}render(){const{resizerBridge:e,allowedModes:t,...r}=this.props,{displayMode:i,isVisible:a,leftCustomElements:l,rightCustomElements:u}=this.state,c={features:this._features,readOnly:this._readOnly,isFake:!1,saveLoadSyncEmitter:this._saveLoadSyncEmitter,leftCustomElements:l,rightCustomElements:u,...r},d={...c,isFake:!0,showScrollbarWhen:ve},h=(0,o.ensureDefined)(t),p=this.props.tools.PublishButtonManager||n.Fragment;return n.createElement(I.RegistryProvider,{value:this._registry,validation:pe},n.createElement(p,null,n.createElement("div",{className:s(me.toolbar,{[me.isHidden]:!a}),onClick:this.props.onClick},n.createElement("div",{className:me.overflowWrap},n.createElement(V,{key:"live",showScrollbarWhen:this._showScrollbarWhen,displayMode:i, onAvailableSpaceChange:this._handleMeasure,...c}),h.map(e=>n.createElement(V,{key:e,displayMode:e,onWidthChange:this._panelWidthChangeHandlers[e],...d}))))))}addButton(e,t){if(!t.useTradingViewStyle)return this._addCustomHTMLButton(e,t.align);this._addCustomTradingViewStyledButton(e,t)}addDropdown(e,t){const{leftCustomElements:r,rightCustomElements:n}=this.state,i={type:"Dropdown",id:e,params:t};"left"===t.align?this.setState({leftCustomElements:[...r,i]}):this.setState({rightCustomElements:[...n,i]})}updateDropdown(e,t){const r=t=>"Dropdown"===t.type&&t.id===e,n=this.state.leftCustomElements.find(r)||this.state.rightCustomElements.find(r);void 0!==n&&(n.params={...n.params,...t},this.setState({leftCustomElements:this.state.leftCustomElements.slice(),rightCustomElements:this.state.rightCustomElements.slice()}))}removeDropdown(e){const t=t=>"Dropdown"===t.type&&t.id!==e,r=this.state.leftCustomElements.filter(t),n=this.state.rightCustomElements.filter(t);this.setState({leftCustomElements:r,rightCustomElements:n})}_negotiateResizer(){this.props.resizerBridge.negotiateHeight(this.state.isVisible?$.HEADER_TOOLBAR_HEIGHT_EXPANDED:$.HEADER_TOOLBAR_HEIGHT_COLLAPSED)}_setDisplayMode(){const{availableWidth:e}=this.state,{allowedModes:t}=this.props,r={full:this._fullWidth,medium:this._favoritesWidth,small:this._collapseWidth},n=(0,o.ensureDefined)(t);let i=n.map(e=>r[e]).findIndex(t=>e>=t);-1===i&&(i=n.length-1);const s=n[i];this.setState({measureValid:!0,displayMode:s})}_addCustomHTMLButton(e,t="left"){const r=new(D())(0),n=(0,fe.parseHtmlElement)(`