(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[6631],{20453:e=>{e.exports={autocomplete:"autocomplete-SY8CqC4y",caret:"caret-SY8CqC4y",icon:"icon-SY8CqC4y",suggestions:"suggestions-SY8CqC4y",suggestion:"suggestion-SY8CqC4y",noResults:"noResults-SY8CqC4y",selected:"selected-SY8CqC4y",opened:"opened-SY8CqC4y"}},37593:e=>{e.exports={wrapper:"wrapper-5Xd5conM",input:"input-5Xd5conM",box:"box-5Xd5conM",icon:"icon-5Xd5conM",noOutline:"noOutline-5Xd5conM","intent-danger":"intent-danger-5Xd5conM",check:"check-5Xd5conM",dot:"dot-5Xd5conM"}},96670:e=>{e.exports={checkbox:"checkbox-GxG6nBa7",reverse:"reverse-GxG6nBa7",label:"label-GxG6nBa7",baseline:"baseline-GxG6nBa7"}},21103:e=>{e.exports={container:"container-pgo9gj31","intent-default":"intent-default-pgo9gj31",focused:"focused-pgo9gj31",readonly:"readonly-pgo9gj31",disabled:"disabled-pgo9gj31","with-highlight":"with-highlight-pgo9gj31",grouped:"grouped-pgo9gj31","adjust-position":"adjust-position-pgo9gj31","first-row":"first-row-pgo9gj31","first-col":"first-col-pgo9gj31",stretch:"stretch-pgo9gj31","font-size-medium":"font-size-medium-pgo9gj31","font-size-large":"font-size-large-pgo9gj31","size-small":"size-small-pgo9gj31","size-medium":"size-medium-pgo9gj31","size-large":"size-large-pgo9gj31","intent-success":"intent-success-pgo9gj31","intent-warning":"intent-warning-pgo9gj31","intent-danger":"intent-danger-pgo9gj31","intent-primary":"intent-primary-pgo9gj31","border-none":"border-none-pgo9gj31","border-thin":"border-thin-pgo9gj31","border-thick":"border-thick-pgo9gj31","no-corner-top-left":"no-corner-top-left-pgo9gj31","no-corner-top-right":"no-corner-top-right-pgo9gj31","no-corner-bottom-right":"no-corner-bottom-right-pgo9gj31","no-corner-bottom-left":"no-corner-bottom-left-pgo9gj31",highlight:"highlight-pgo9gj31",shown:"shown-pgo9gj31"}},10306:e=>{e.exports={"inner-slot":"inner-slot-QpAAIiaV",interactive:"interactive-QpAAIiaV",icon:"icon-QpAAIiaV","inner-middle-slot":"inner-middle-slot-QpAAIiaV","before-slot":"before-slot-QpAAIiaV","after-slot":"after-slot-QpAAIiaV"}},66579:e=>{e.exports={input:"input-uGWFLwEy","with-start-slot":"with-start-slot-uGWFLwEy","with-end-slot":"with-end-slot-uGWFLwEy"}},62092:e=>{e.exports={loader:"loader-MuZZSHRY",static:"static-MuZZSHRY",item:"item-MuZZSHRY","tv-button-loader":"tv-button-loader-MuZZSHRY",medium:"medium-MuZZSHRY",small:"small-MuZZSHRY",black:"black-MuZZSHRY",white:"white-MuZZSHRY",gray:"gray-MuZZSHRY",primary:"primary-MuZZSHRY","loader-initial":"loader-initial-MuZZSHRY","loader-appear":"loader-appear-MuZZSHRY"}},35256:e=>{e.exports={loading:"loading-4Sqi3h6J"}},33558:e=>{e.exports={container:"container-PqABOUJm",withSuggestions:"withSuggestions-PqABOUJm",title:"title-PqABOUJm",autocomplete:"autocomplete-PqABOUJm",saveSymbol:"saveSymbol-PqABOUJm",saveInterval:"saveInterval-PqABOUJm",indicators:"indicators-PqABOUJm",hintLabel:"hintLabel-PqABOUJm",hintMark:"hintMark-PqABOUJm"}},96746: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: 428px)"}},40367:e=>{e.exports={icon:"icon-AL2odtws",dropped:"dropped-AL2odtws"}},84413:(e,t,n)=>{"use strict";n.d(t,{CheckboxInput:()=>c});var s=n(59496),o=n(97754),i=n(9745),r=n(49154),a=n(37593),l=n.n(a);function c(e){const t=o(l().box,l()["intent-"+e.intent],{[l().check]:!Boolean(e.indeterminate),[l().dot]:Boolean(e.indeterminate),[l().noOutline]:-1===e.tabIndex}),n=o(l().wrapper,e.className);return s.createElement("span",{className:n,title:e.title},s.createElement("input",{id:e.id,tabIndex:e.tabIndex,className:l().input,type:"checkbox",name:e.name,checked:e.checked,disabled:e.disabled,value:e.value,autoFocus:e.autoFocus,role:e.role,onChange:function(){e.onChange&&e.onChange(e.value)},ref:e.reference}),s.createElement("span",{className:t},s.createElement(i.Icon,{icon:r,className:l().icon})))}},15294:(e,t,n)=>{"use strict";n.d(t,{Checkbox:()=>c,GroupedCheckbox:()=>u});var s=n(59496),o=n(97754),i=n(54349),r=n(84413),a=n(96670),l=n.n(a);class c extends s.PureComponent{render(){const{inputClassName:e,labelClassName:t,...n}=this.props,i=o(this.props.className,l().checkbox,{[l().reverse]:Boolean(this.props.labelPositionReverse),[l().baseline]:Boolean(this.props.labelAlignBaseline)}),a=o(l().label,t,{[l().disabled]:this.props.disabled});let c=null;return this.props.label&&(c=s.createElement("span",{className:a,title:this.props.title},this.props.label)),s.createElement("label",{className:i},s.createElement(r.CheckboxInput,{...n,className:e}),c)}}c.defaultProps={value:"on"};const u=(0,i.makeSwitchGroupItem)(c)},86332:(e,t,n)=>{"use strict";n.d(t,{ControlGroupContext:()=>s});const s=n(59496).createContext({isGrouped:!1,cellState:{isTop:!0,isRight:!0,isBottom:!0,isLeft:!0}})},95604:(e,t,n)=>{"use strict";function s(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:()=>s})},67029:(e,t,n)=>{"use strict";n.d(t,{ControlSkeleton:()=>_,InputClasses:()=>g});var s=n(59496),o=n(97754),i=n(88537),r=n(66092),a=n(90186),l=n(86332),c=n(95604);var u=n(21103),d=n.n(u);function h(e){let t="";return 0!==e&&(1&e&&(t=o(t,d()["no-corner-top-left"])),2&e&&(t=o(t,d()["no-corner-top-right"])),4&e&&(t=o(t,d()["no-corner-bottom-right"])),8&e&&(t=o(t,d()["no-corner-bottom-left"]))),t}function p(e,t,n,s){const{removeRoundBorder:i,className:r,intent:a="default",borderStyle:l="thin",size:u,highlight:p,disabled:m,readonly:g,stretch:f,noReadonlyStyles:v,isFocused:_}=e,b=h(null!=i?i:(0,c.getGroupCellRemoveRoundBorders)(n));return o(d().container,d()["intent-"+a],d()["border-"+l],u&&d()["size-"+u],b,p&&d()["with-highlight"],m&&d().disabled,g&&!v&&d().readonly,_&&d().focused,f&&d().stretch,t&&d().grouped,!s&&d()["adjust-position"],n.isTop&&d()["first-row"],n.isLeft&&d()["first-col"],r)}function m(e,t){const{highlight:n,highlightRemoveRoundBorder:s}=e;if(!n)return d().highlight;const i=h(null!=s?s:(0,
c.getGroupCellRemoveRoundBorders)(t));return o(d().highlight,d().shown,i)}const g={FontSizeMedium:(0,i.ensureDefined)(d()["font-size-medium"]),FontSizeLarge:(0,i.ensureDefined)(d()["font-size-large"])},f={passive:!1};function v(e,t){const{id:n,role:o,onFocus:i,onBlur:c,onMouseOver:u,onMouseOut:d,onMouseDown:h,onMouseUp:g,onKeyDown:v,onClick:_,tabIndex:b,startSlot:S,middleSlot:w,endSlot:y,onWheel:C,onWheelNoPassive:x=null}=e,{isGrouped:E,cellState:k,disablePositionAdjustment:M=!1}=(0,s.useContext)(l.ControlGroupContext),N=function(e,t=null,n){const o=(0,s.useRef)(null),i=(0,s.useRef)(null),r=(0,s.useCallback)(()=>{if(null===o.current||null===i.current)return;const[e,t,n]=i.current;null!==t&&o.current.addEventListener(e,t,n)},[]),a=(0,s.useCallback)(()=>{if(null===o.current||null===i.current)return;const[e,t,n]=i.current;null!==t&&o.current.removeEventListener(e,t,n)},[]),l=(0,s.useCallback)(e=>{a(),o.current=e,r()},[]);return(0,s.useEffect)(()=>(i.current=[e,t,n],r(),a),[e,t,n]),l}("wheel",x,f);return s.createElement("span",{id:n,role:o,className:p(e,E,k,M),tabIndex:b,ref:(0,r.useMergedRefs)([t,N]),onFocus:i,onBlur:c,onMouseOver:u,onMouseOut:d,onMouseDown:h,onMouseUp:g,onKeyDown:v,onClick:_,onWheel:C,...(0,a.filterDataProps)(e),...(0,a.filterAriaProps)(e)},S,w,y,s.createElement("span",{className:m(e,k)}))}v.displayName="ControlSkeleton";const _=s.forwardRef(v)},78274:(e,t,n)=>{"use strict";n.d(t,{BeforeSlot:()=>a,StartSlot:()=>l,MiddleSlot:()=>c,EndSlot:()=>u,AfterSlot:()=>d});var s=n(59496),o=n(97754),i=n(10306),r=n.n(i);function a(e){const{className:t,children:n}=e;return s.createElement("span",{className:o(r()["before-slot"],t)},n)}function l(e){const{className:t,interactive:n=!0,icon:i=!1,children:a}=e;return s.createElement("span",{className:o(r()["inner-slot"],n&&r().interactive,i&&r().icon,t)},a)}function c(e){const{className:t,children:n}=e;return s.createElement("span",{className:o(r()["inner-slot"],r()["inner-middle-slot"],t)},n)}function u(e){const{className:t,interactive:n=!0,icon:i=!1,children:a}=e;return s.createElement("span",{className:o(r()["inner-slot"],n&&r().interactive,i&&r().icon,t)},a)}function d(e){const{className:t,children:n}=e;return s.createElement("span",{className:o(r()["after-slot"],t)},n)}},31261:(e,t,n)=>{"use strict";n.d(t,{InputControl:()=>_});var s=n(59496),o=n(97754),i=n(90186),r=n(47201),a=n(48907),l=n(66092),c=n(48027),u=n(29202),d=n(45812),h=n(67029),p=n(78274),m=n(66579),g=n.n(m);function f(e){return!(0,i.isAriaAttribute)(e)&&!(0,i.isDataAttribute)(e)}function v(e){const{id:t,title:n,role:r,tabIndex:a,placeholder:l,name:c,type:u,value:d,defaultValue:m,draggable:v,autoComplete:_,autoFocus:b,maxLength:S,min:w,max:y,step:C,pattern:x,inputMode:E,onSelect:k,onFocus:M,onBlur:N,onKeyDown:O,onKeyUp:T,onKeyPress:I,onChange:A,onDragStart:D,size:L="medium",className:R,inputClassName:B,disabled:P,readonly:U,containerTabIndex:j,startSlot:F,endSlot:q,reference:H,containerReference:V,onContainerFocus:G,...W}=e,z=(0,i.filterProps)(W,f),Z={...(0,i.filterAriaProps)(W),...(0,
i.filterDataProps)(W),id:t,title:n,role:r,tabIndex:a,placeholder:l,name:c,type:u,value:d,defaultValue:m,draggable:v,autoComplete:_,autoFocus:b,maxLength:S,min:w,max:y,step:C,pattern:x,inputMode:E,onSelect:k,onFocus:M,onBlur:N,onKeyDown:O,onKeyUp:T,onKeyPress:I,onChange:A,onDragStart:D};return s.createElement(h.ControlSkeleton,{...z,disabled:P,readonly:U,tabIndex:j,className:o(g().container,R),size:L,ref:V,onFocus:G,startSlot:F,middleSlot:s.createElement(p.MiddleSlot,null,s.createElement("input",{...Z,className:o(g().input,B,F&&g()["with-start-slot"],q&&g()["with-end-slot"]),disabled:P,readOnly:U,ref:H})),endSlot:q})}function _(e){e=(0,c.useControl)(e);const{disabled:t,autoSelectOnFocus:n,tabIndex:o=0,onFocus:i,onBlur:h,reference:p,containerReference:m=null}=e,g=(0,s.useRef)(null),f=(0,s.useRef)(null),[_,b]=(0,u.useFocus)(),S=t?void 0:_?-1:o,w=t?void 0:_?o:-1,{isMouseDown:y,handleMouseDown:C,handleMouseUp:x}=(0,d.useIsMouseDown)(),E=(0,r.createSafeMulticastEventHandler)(b.onFocus,(function(e){n&&!y.current&&(0,a.selectAllContent)(e.currentTarget)}),i),k=(0,r.createSafeMulticastEventHandler)(b.onBlur,h),M=(0,s.useCallback)(e=>{g.current=e,p&&("function"==typeof p&&p(e),"object"==typeof p&&(p.current=e))},[g,p]);return s.createElement(v,{...e,isFocused:_,containerTabIndex:S,tabIndex:w,onContainerFocus:function(e){f.current===e.target&&null!==g.current&&g.current.focus()},onFocus:E,onBlur:k,reference:M,containerReference:(0,l.useMergedRefs)([f,m]),onMouseDown:C,onMouseUp:x})}},48027:(e,t,n)=>{"use strict";n.d(t,{useControl:()=>i});var s=n(47201),o=n(29202);function i(e){const{onFocus:t,onBlur:n,intent:i,highlight:r,disabled:a}=e,[l,c]=(0,o.useFocus)(void 0,a),u=(0,s.createSafeMulticastEventHandler)(a?void 0:c.onFocus,t),d=(0,s.createSafeMulticastEventHandler)(a?void 0:c.onBlur,n);return{...e,intent:i||(l?"primary":"default"),highlight:null!=r?r:l,onFocus:u,onBlur:d}}},29202:(e,t,n)=>{"use strict";n.d(t,{useFocus:()=>o});var s=n(59496);function o(e,t){const[n,o]=(0,s.useState)(!1);(0,s.useEffect)(()=>{t&&n&&o(!1)},[t,n]);const i={onFocus:(0,s.useCallback)((function(t){void 0!==e&&e.current!==t.target||o(!0)}),[e]),onBlur:(0,s.useCallback)((function(t){void 0!==e&&e.current!==t.target||o(!1)}),[e])};return[n,i]}},45812:(e,t,n)=>{"use strict";n.d(t,{useIsMouseDown:()=>o});var s=n(59496);function o(){const e=(0,s.useRef)(!1),t=(0,s.useCallback)(()=>{e.current=!0},[e]),n=(0,s.useCallback)(()=>{e.current=!1},[e]);return{isMouseDown:e,handleMouseDown:t,handleMouseUp:n}}},66092:(e,t,n)=>{"use strict";n.d(t,{useMergedRefs:()=>o});var s=n(59496);function o(e){return(0,s.useCallback)(function(e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}}(e),e)}},9745:(e,t,n)=>{"use strict";n.d(t,{Icon:()=>o});var s=n(59496);const o=s.forwardRef((e,t)=>{const{icon:n="",...o}=e;return s.createElement("span",{...o,ref:t,dangerouslySetInnerHTML:{__html:n}})})},26996:(e,t,n)=>{"use strict";n.d(t,{Loader:()=>c});var s,o=n(59496),i=n(97754),r=n(74991),a=n(62092),l=n.n(a);!function(e){e[e.Initial=0]="Initial",
e[e.Appear=1]="Appear",e[e.Active=2]="Active"}(s||(s={}));class c extends o.PureComponent{constructor(e){super(e),this._stateChangeTimeout=null,this.state={state:s.Initial}}render(){const{className:e,color:t="black",size:n="medium",staticPosition:s}=this.props,r=i(l().item,l()[t],l()[n]);return o.createElement("span",{className:i(l().loader,s&&l().static,this._getStateClass(),e)},o.createElement("span",{className:r}),o.createElement("span",{className:r}),o.createElement("span",{className:r}))}componentDidMount(){this.setState({state:s.Appear}),this._stateChangeTimeout=setTimeout(()=>{this.setState({state:s.Active})},2*r.dur)}componentWillUnmount(){this._stateChangeTimeout&&(clearTimeout(this._stateChangeTimeout),this._stateChangeTimeout=null)}_getStateClass(){switch(this.state.state){case s.Initial:return l()["loader-initial"];case s.Appear:return l()["loader-appear"];default:return""}}}},54349:(e,t,n)=>{"use strict";n.d(t,{SwitchGroup:()=>i,makeSwitchGroupItem:()=>r});var s=n(59496),o=n(19036);class i extends s.PureComponent{constructor(){super(...arguments),this._subscriptions=new Set,this._getName=()=>this.props.name,this._getValues=()=>this.props.values,this._getOnChange=()=>this.props.onChange,this._subscribe=e=>{this._subscriptions.add(e)},this._unsubscribe=e=>{this._subscriptions.delete(e)}}getChildContext(){return{switchGroupContext:{getName:this._getName,getValues:this._getValues,getOnChange:this._getOnChange,subscribe:this._subscribe,unsubscribe:this._unsubscribe}}}render(){return this.props.children}componentDidUpdate(e){this._notify(this._getUpdates(this.props.values,e.values))}_notify(e){this._subscriptions.forEach(t=>t(e))}_getUpdates(e,t){return[...t,...e].filter(n=>t.includes(n)?!e.includes(n):e.includes(n))}}function r(e){var t;return(t=class extends s.PureComponent{constructor(){super(...arguments),this._onChange=e=>{this.context.switchGroupContext.getOnChange()(e)},this._onUpdate=e=>{e.includes(this.props.value)&&this.forceUpdate()}}componentDidMount(){this.context.switchGroupContext.subscribe(this._onUpdate)}render(){return s.createElement(e,{...this.props,name:this._getName(),onChange:this._onChange,checked:this._isChecked()})}componentWillUnmount(){this.context.switchGroupContext.unsubscribe(this._onUpdate)}_getName(){return this.context.switchGroupContext.getName()}_isChecked(){return this.context.switchGroupContext.getValues().includes(this.props.value)}}).contextTypes={switchGroupContext:o.any.isRequired},t}i.childContextTypes={switchGroupContext:o.any.isRequired}},90186:(e,t,n)=>{"use strict";function s(e){return i(e,r)}function o(e){return i(e,a)}function i(e,t){const n=Object.entries(e).filter(t),s={};for(const[e,t]of n)s[e]=t;return s}function r(e){const[t,n]=e;return 0===t.indexOf("data-")&&"string"==typeof n}function a(e){return 0===e[0].indexOf("aria-")}n.d(t,{filterDataProps:()=>s,filterAriaProps:()=>o,filterProps:()=>i,isDataAttribute:()=>r,isAriaAttribute:()=>a})},48907:(e,t,n)=>{"use strict";function s(e){null!==e&&e.setSelectionRange(0,e.value.length)}n.d(t,{selectAllContent:()=>s
})},47201:(e,t,n)=>{"use strict";function s(...e){return t=>{for(const n of e)void 0!==n&&n(t)}}n.d(t,{createSafeMulticastEventHandler:()=>s})},33165:(e,t,n)=>{"use strict";n.r(t),n.d(t,{StudyTemplateSaver:()=>V});var s,o=n(88537),i=n(28353),r=n(59496),a=n(87995),l=(n(94419),n(97754)),c=n(15294),u=n(10381),d=n(78274),h=n(31261),p=n(76594);!function(e){e[e.Enter=13]="Enter",e[e.Space=32]="Space",e[e.Backspace=8]="Backspace",e[e.DownArrow=40]="DownArrow",e[e.UpArrow=38]="UpArrow",e[e.RightArrow=39]="RightArrow",e[e.LeftArrow=37]="LeftArrow",e[e.Escape=27]="Escape",e[e.Tab=9]="Tab"}(s||(s={}));var m=n(20453);function g(e,t){return""===e||-1!==t.toLowerCase().indexOf(e.toLowerCase())}class f extends r.PureComponent{constructor(e){if(super(e),this._setInputRef=e=>{e&&(this._inputElement=e,this.props.setupHTMLInput&&this.props.setupHTMLInput(e),this._inputElement.addEventListener("keyup",this._handleKeyUpEnter))},this._handleCaretClick=()=>{this.state.isOpened?this.props.preventOnFocusOpen&&this._focus():this.props.preventOnFocusOpen?this._open():this._focus()},this._handleOutsideClick=()=>{const{allowUserDefinedValues:e,value:t,onChange:n}=this.props,{queryValue:s}=this.state;e?n&&s!==t&&n(s):this.setState(this._valueToQuery(t)),this._close()},this._handleFocus=e=>{this.props.preventOnFocusOpen||this._open(),this.props.onFocus&&this.props.onFocus(e)},this._handleChange=e=>{const{preventSearchOnEmptyQuery:t,allowUserDefinedValues:n,onChange:s,onSuggestionsOpen:o,onSuggestionsClose:i}=this.props,r=e.currentTarget.value;if(t&&""===r)this.setState({queryValue:r,isOpened:!1,active:void 0}),i&&i();else{const e=this._suggestions(r),t=Object.keys(e).length>0;this.setState({queryValue:r,isOpened:t,active:n?void 0:this._getActiveKeyByValue(r)}),t&&o&&o()}n&&s&&s(r)},this._handleItemClick=e=>{const t=e.currentTarget.id;this.setState({queryValue:this._source()[t]}),this.props.onChange&&this.props.onChange(t),this._close()},this._handleKeyDown=e=>{if(-1===[s.DownArrow,s.UpArrow,s.Enter,s.Escape].indexOf(e.which))return;const{allowUserDefinedValues:t,value:n,onChange:o,onSuggestionsOpen:i}=this.props,{active:r,isOpened:a,queryValue:l}=this.state;a&&(e.preventDefault(),e.stopPropagation());const c=this._suggestions(l);switch(e.which){case s.DownArrow:case s.UpArrow:const u=Object.keys(c);if(!a&&u.length&&e.which===s.DownArrow){this.setState({isOpened:!0,active:u[0]}),i&&i();break}let d;if(void 0===r){if(e.which===s.UpArrow){this._close();break}d=0}else d=u.indexOf(r)+(e.which===s.UpArrow?-1:1);d<0&&(d=0),d>u.length-1&&(d=u.length-1);const h=u[d];this.setState({active:h});const p=document.getElementById(h);p&&this._scrollIfNotVisible(p,this._suggestionsElement);break;case s.Escape:this._close(),a||this._blur();break;case s.Enter:let m=r;t&&(a&&m?this.setState(this._valueToQuery(m)):m=l),void 0!==m&&(this._close(),a||this._blur(),m!==n?o&&o(m):this.setState(this._valueToQuery(m)))}},this._setSuggestionsRef=e=>{e&&(this._suggestionsElement=e)},this._scrollIfNotVisible=(e,t)=>{
const n=t.scrollTop,s=t.scrollTop+t.clientHeight,o=e.offsetTop,i=o+e.clientHeight;o<=n?e.scrollIntoView(!0):i>=s&&e.scrollIntoView(!1)},!(e=>Array.isArray(e.source)||!e.allowUserDefinedValues)(e))throw new Error("allowUserDefinedProps === true cay only be used if source is array");this.state={isOpened:!1,active:e.value,...this._valueToQuery(e.value)}}UNSAFE_componentWillReceiveProps(e){const{allowUserDefinedValues:t,value:n}=e;if(n===this.props.value&&this.state.isOpened)return;const s=t?n:""===n?"":this._source()[n]||this.state.queryValue;this.setState({queryValue:s,active:n})}componentWillUnmount(){this._inputElement&&this._inputElement.removeEventListener("keyup",this._handleKeyUpEnter)}render(){return r.createElement(p.OutsideEvent,{handler:this._handleOutsideClick,click:!0},e=>r.createElement("div",{className:l(m.autocomplete,{[m.opened]:this.state.isOpened},"js-dialog-skip-escape"),ref:e},r.createElement(h.InputControl,{name:this.props.name,endSlot:Object.keys(this._suggestions(this.state.queryValue)).length?r.createElement(d.EndSlot,null,r.createElement("span",{className:m.caret,onClick:this._handleCaretClick},r.createElement(u.ToolWidgetCaret,{className:m.icon,dropped:this.state.isOpened}))):void 0,maxLength:this.props.maxLength,reference:this._setInputRef,stretch:!0,placeholder:this.props.placeholder,value:this.state.queryValue,intent:this.props.error?"danger":void 0,onChange:this._handleChange,onFocus:this._handleFocus,onBlur:this.props.onBlur,onMouseOver:this.props.onMouseOver,onMouseOut:this.props.onMouseOut,onKeyDown:this._handleKeyDown,autoComplete:"off"}),this._renderSuggestions()))}_focus(){this._inputElement.focus()}_blur(){this._inputElement.blur()}_open(){const{onSuggestionsOpen:e}=this.props;this._focus(),this.setState({isOpened:!0}),e&&e()}_close(){const{onSuggestionsClose:e}=this.props;this.setState({isOpened:!1,active:void 0}),e&&e()}_source(){let e={};return Array.isArray(this.props.source)?this.props.source.forEach(t=>{e[t]=t}):e=this.props.source,e}_suggestions(e){const{filter:t=g}=this.props,n=this._source(),s={};return Object.keys(n).filter(s=>t(e,n[s])).forEach(e=>s[e]=n[e]),s}_renderSuggestions(){const e=this._suggestions(this.state.queryValue),t=Object.keys(e).map(t=>{const n=l(m.suggestion,{[m.selected]:this.state.active===t});return r.createElement("li",{id:t,key:t,className:n,onClick:this._handleItemClick},e[t])}),n=r.createElement("li",{className:m.noResults},(0,i.t)("No results found"));return!t.length&&this.props.noEmptyText?null:r.createElement("ul",{className:m.suggestions,ref:this._setSuggestionsRef},t.length?t:n)}_handleKeyUpEnter(e){e.which===s.Enter&&e.stopImmediatePropagation()}_getActiveKeyByValue(e){const{filter:t=g}=this.props,n=this._suggestions(e),s=Object.keys(n);for(const o of s)if(t(e,n[o]))return o;return s[0]}_valueToQuery(e){return{queryValue:this._source()[e]||""}}}var v=n(9745),_=n(50182),b=n(50655),S=n(26996),w=n(35256);function y(e){const{isLoading:t}=e;return r.createElement("span",{className:t?w.loading:void 0},(0,i.t)("Save"),t&&r.createElement(S.Loader,{
color:"white"}))}class C extends r.PureComponent{constructor(e){super(e),this._dialogRef=r.createRef(),this._manager=null,this._handleSubmit=()=>{this.setState({isLoading:!0}),this.props.onSubmit(this)},this.state={isLoading:!1}}render(){const{isOpened:e,saveDisabled:t,title:n,onClose:s}=this.props;return r.createElement(_.AdaptiveConfirmDialog,{ref:this._dialogRef,onClose:s,onSubmit:this._handleSubmit,onCancel:s,onClickOutside:s,isOpened:e,title:n,dataName:"save-rename-dialog",render:this._renderDialogBody(),defaultActionOnClose:"none",submitButtonText:r.createElement(y,{isLoading:this.state.isLoading}),submitButtonDisabled:t})}focus(){(0,o.ensureNotNull)(this._dialogRef.current).focus()}manager(){return this._manager}submit(){this.props.onSubmit(this)}close(){this.props.onClose()}dropLoading(){this.setState({isLoading:!1})}_renderDialogBody(){return()=>r.createElement(b.SlotContext.Consumer,null,e=>(this._manager=e,this.props.children))}}var x=n(60495),E=n(33558);const k=(0,i.t)("Template name"),M=(0,i.t)("Saved indicators"),N=(0,i.t)("Remember Symbol"),O=(0,i.t)("Remember Interval");function T(e){const{title:t,saveSymbolHintText:n,saveIntervalHintText:s,indicatorsText:i,source:a,onClose:u,onSubmit:d}=e,[h,p]=(0,r.useState)(""),[m,g]=(0,r.useState)(!1),[_,b]=(0,r.useState)(!1),[S,w]=(0,r.useState)(!1),y=(0,r.useRef)(null),T=(0,r.useRef)(null);return(0,r.useEffect)(()=>{(0,o.ensureNotNull)(T.current).focus()},[]),r.createElement(C,{ref:y,isOpened:!0,saveDisabled:!h,title:t,onClose:u,onSubmit:function(e){d({title:h,saveSymbol:m,saveInterval:_},e)}},r.createElement("div",{className:l(E.container,S&&E.withSuggestions)},r.createElement("div",{className:E.title},k),r.createElement("div",{className:E.autocomplete},r.createElement(f,{maxLength:64,value:h,onChange:p,onBlur:function(){(0,o.ensureNotNull)(y.current).focus()},source:a,allowUserDefinedValues:!0,preventOnFocusOpen:!0,noEmptyText:!0,preventSearchOnEmptyQuery:!0,filter:function(e,t){return Boolean(""===e||e&&-1!==t.toLowerCase().indexOf(e.toLowerCase()))},setupHTMLInput:function(e){T.current=e},onSuggestionsOpen:function(){w(!0)},onSuggestionsClose:function(){w(!1)}})),r.createElement("div",{className:E.saveSymbol},r.createElement(c.Checkbox,{label:r.createElement("span",{className:E.hintLabel},N,r.createElement(v.Icon,{icon:x,className:l(E.hintMark,"apply-common-tooltip"),title:n})),onChange:function(){g(!m),(0,o.ensureNotNull)(y.current).focus()},checked:m})),r.createElement("div",{className:E.saveInterval},r.createElement(c.Checkbox,{label:r.createElement("span",{className:E.hintLabel},O,r.createElement(v.Icon,{icon:x,className:l(E.hintMark,"apply-common-tooltip"),title:s})),onChange:function(){b(!_),(0,o.ensureNotNull)(y.current).focus()},checked:_})),r.createElement("div",{className:E.title},M),r.createElement("div",{className:l(E.indicators,S&&E.withSuggestions)},i)))}var I=n(76422),A=n(52092);class D{constructor(e){this._container=document.createElement("div"),this.close=()=>{this.unmount(),this._onClose&&this._onClose()},this.unmount=()=>{
I.unsubscribe(A.CLOSE_POPUPS_AND_DIALOGS_COMMAND,this.unmount,null),a.unmountComponentAtNode(this._container)},this._title=e.title,this._saveSymbolHintText=e.saveSymbolHintText,this._saveIntervalHintText=e.saveIntervalHintText,this._indicatorsText=e.indicatorsText,this._source=e.source,this._onSubmit=e.onSubmit,this._onClose=e.onClose,I.subscribe(A.CLOSE_POPUPS_AND_DIALOGS_COMMAND,this.unmount,null)}mount(){a.render(r.createElement(T,{title:this._title,saveSymbolHintText:this._saveSymbolHintText,saveIntervalHintText:this._saveIntervalHintText,indicatorsText:this._indicatorsText,source:this._source,onClose:this.close,onSubmit:this._onSubmit}),this._container)}destroy(){this.unmount()}show(){this.mount()}}var L=n(43007),R=n(3615),B=n(35218),P=n(23177);const U=(0,i.t)("Save Indicator Template"),j=(0,i.t)("Selecting this option will set the {symbol} symbol on the chart when this template is applied"),F=(0,i.t)("Selecting this option will set the {interval} interval on the chart when this template is applied"),q=(0,i.t)("Study Template '{templateName}' already exists. Do you really want to replace it?");function H(e,t,n){const s=()=>{L.backend.invalidateStudyTemplatesList(),L.backend.getStudyTemplatesList().then(t)};L.backend.saveStudyTemplate(e).then(s)}class V{constructor(e){this._dialog=null,this._onSave=e=>{this._options.onSave(e),this._close()},this._showSaveDialog=async()=>{const e=this._controller.model().mainSeries().symbol(),t=this._controller.model().mainSeries().interval(),n=await this._getActualTemplateList();await this._showTemplateSaveRenameDialog(n,e,t)},this._close=()=>{this._dialog&&(this._dialog.destroy(),this._dialog=null)},this._options=e,this._controller=e.controller}show(){window.runOrSignIn(this._showSaveDialog,{source:"Study templates save as",sourceMeta:"Chart"})}_prepareData(e,t,n){const s=this._controller.model().studyTemplate(t,n);return{name:e,content:JSON.stringify(s),meta_info:(0,P.createStudyTemplateMetaInfo)(this._controller,s.interval)}}_doSave(e,t,n){const{title:s,saveSymbol:o,saveInterval:i}=t;if(!s)return;const r=n.manager()||void 0,a=this._prepareData(s,o,i);if(e.find(e=>e.name===s)){const e=e=>{e?H(a,this._onSave):(n.focus(),n.dropLoading())};(function(e,t){return new Promise(n=>(0,R.showConfirm)({text:q.format({templateName:e}),onConfirm:({dialogClose:e})=>{n(!0),e()},onClose:()=>n(!1)},t))})(s,r).then(e)}else{H(a,this._onSave)}}_getActualTemplateList(){return L.backend.invalidateStudyTemplatesList(),L.backend.getStudyTemplatesList()}_showTemplateSaveRenameDialog(e,t,n){const s=(0,P.createStudyTemplateMetaInfo)(this._controller);(this._dialog=new D({source:e.map(e=>e.name),title:U,saveSymbolHintText:j.format({symbol:t}),saveIntervalHintText:F.format({interval:(0,B.translatedIntervalString)(n)}),indicatorsText:(0,P.descriptionString)(s.indicators),onSubmit:(t,n)=>this._doSave(e,t,n),onClose:this._close})).show()}}},23177:(e,t,n)=>{"use strict";n.d(t,{createStudyTemplateMetaInfo:()=>o,descriptionString:()=>i});var s=n(81851);function o(e,t){return{
indicators:e.orderedDataSources(!0).filter(e=>(0,s.isStudy)(e)&&!0).map(e=>({id:e.metaInfo().id,description:e.title(!0,void 0,!0)})),interval:t}}function i(e){const t=new Map;return e.forEach(e=>{const[n,s]=t.get(e.id)||[e.description,0];t.set(e.id,[n,s+1])}),Array.from(t.values()).map(([e,t])=>`${e}${t>1?" x "+t:""}`).join(", ")}},39640:(e,t,n)=>{"use strict";function s(e,t,n,s,o){function i(o){if(e>o.timeStamp)return;const i=o.target;void 0!==n&&null!==t&&null!==i&&i.ownerDocument===s&&(t.contains(i)||n(o))}return o.click&&s.addEventListener("click",i,!1),o.mouseDown&&s.addEventListener("mousedown",i,!1),o.touchEnd&&s.addEventListener("touchend",i,!1),o.touchStart&&s.addEventListener("touchstart",i,!1),()=>{s.removeEventListener("click",i,!1),s.removeEventListener("mousedown",i,!1),s.removeEventListener("touchend",i,!1),s.removeEventListener("touchstart",i,!1)}}n.d(t,{addOutsideEventListener:()=>s})},68722:(e,t,n)=>{"use strict";n.d(t,{getScrollbarWidth:()=>s,matchMediaMinMax:()=>o,setStyle:()=>i,getCSSProperty:()=>r,getCSSPropertyNumericValue:()=>a});const s=(()=>{let e;return()=>{var t;if(void 0===e){const n=document.createElement("div"),s=n.style;s.visibility="hidden",s.width="100px",s.msOverflowStyle="scrollbar",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow="scroll";const i=document.createElement("div");i.style.width="100%",n.appendChild(i);const r=i.offsetWidth;null===(t=n.parentNode)||void 0===t||t.removeChild(n),e=o-r}return e}})();function o(e,t){return t===1/0?window.matchMedia(`(min-width: ${e}px)`):window.matchMedia(`(min-width: ${e}px) and (max-width: ${t}px)`)}function i(e,t,n){null!==e&&e.style.setProperty(t,n)}function r(e,t){return getComputedStyle(e,null).getPropertyValue(t)}function a(e,t){return parseInt(r(e,t))}},43989:(e,t,n)=>{"use strict";n.d(t,{setFixedBodyState:()=>r});var s=n(68722);let o=0,i=!1;function r(e){const{body:t}=document,n=t.querySelector(".widgetbar-wrap");if(e&&1==++o){const e=(0,s.getCSSProperty)(t,"overflow"),o=(0,s.getCSSPropertyNumericValue)(t,"padding-right");"hidden"!==e.toLowerCase()&&t.scrollHeight>t.offsetHeight&&((0,s.setStyle)(n,"right",(0,s.getScrollbarWidth)()+"px"),t.style.paddingRight=o+(0,s.getScrollbarWidth)()+"px",i=!0),t.classList.add("i-no-scroll")}else if(!e&&o>0&&0==--o&&(t.classList.remove("i-no-scroll"),i)){(0,s.setStyle)(n,"right","0px");let e=0;0,t.scrollHeight<=t.clientHeight&&(e-=(0,s.getScrollbarWidth)()),t.style.paddingRight=(e<0?0:e)+"px",i=!1}}},24437:(e,t,n)=>{"use strict";n.d(t,{DialogBreakpoints:()=>o});var s=n(96746);const o={SmallHeight:s["small-height-breakpoint"],TabletSmall:s["tablet-small-breakpoint"],TabletNormal:s["tablet-normal-breakpoint"]}},58095:(e,t,n)=>{"use strict";n.d(t,{useOutsideEvent:()=>i});var s=n(59496),o=n(39640);function i(e){const{click:t,mouseDown:n,touchEnd:i,touchStart:r,handler:a,reference:l,ownerDocument:c=document}=e,u=(0,s.useRef)(null),d=(0,s.useRef)(new CustomEvent("timestamp").timeStamp);return(0,s.useLayoutEffect)(()=>{const e={click:t,mouseDown:n,touchEnd:i,touchStart:r
},s=l?l.current:u.current;return(0,o.addOutsideEventListener)(d.current,s,a,c,e)},[t,n,i,r,a]),l||u}},90692:(e,t,n)=>{"use strict";n.d(t,{MatchMedia:()=>o});var s=n(59496);class o extends s.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)}}},88216:(e,t,n)=>{"use strict";n.d(t,{OverlapManager:()=>i,getRootOverlapManager:()=>a});var s=n(88537);class o{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 i{constructor(e=document){this._storage=new o,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 s=this._document.createElement("div");if(s.style.position=t.position,s.style.zIndex=this._index.toString(),s.dataset.id=e,void 0!==t.index){const e=this._container.childNodes.length;if(t.index>=e)this._container.appendChild(s);else if(t.index<=0)this._container.insertBefore(s,this._container.firstChild);else{const e=this._container.childNodes[t.index];this._container.insertBefore(s,e)}}else"reverse"===t.direction?this._container.insertBefore(s,this._container.firstChild):this._container.appendChild(s);return this._windows.set(e,s),++this._index,s}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 r=new WeakMap;function a(e=document){const t=e.getElementById("overlap-manager-root");if(null!==t)return(0,s.ensureDefined)(r.get(t));{const t=new i(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 r.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 s=n(59496),o=n(87995),i=n(9423),r=n(88216),a=n(50655);class l extends s.PureComponent{constructor(){super(...arguments),this._uuid=(0,i.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||"",o.createPortal(s.createElement(c.Provider,{value:this},this.props.children),e)}moveToTop(){this._manager().moveToTop(this._uuid)}_manager(){return null===this.context?(0,r.getRootOverlapManager)():this.context}}l.contextType=a.SlotContext;const c=s.createContext(null)},50655:(e,t,n)=>{"use strict";n.d(t,{Slot:()=>o,SlotContext:()=>i});var s=n(59496);class o extends s.Component{shouldComponentUpdate(){return!1}render(){return s.createElement("div",{style:{position:"fixed",zIndex:150,left:0,top:0},ref:this.props.reference})}}const i=s.createContext(null)},10381:(e,t,n)=>{"use strict";n.d(t,{ToolWidgetCaret:()=>l});var s=n(59496),o=n(97754),i=n(9745),r=n(40367),a=n(81268);function l(e){const{dropped:t,className:n}=e;return s.createElement(i.Icon,{className:o(n,r.icon,{[r.dropped]:t}),icon:a})}},49154:e=>{e.exports=''},81268:e=>{e.exports=''},60495:e=>{e.exports=''}}]);