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