(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[1297],{70150:e=>{e.exports={"css-value-chart-controls-bar-height-with-border":"calc(38px + 1px)","css-value-chart-controls-bar-border":"1px"}},70606:()=>{},24780:e=>{e.exports={"tv-spinner__container-rotate":"tv-spinner__container-rotate-z2AhmXBd"}},25966:e=>{e.exports={"tv-transition--fade-in":"tv-transition--fade-in-VA2P0ZT5","tv-transition--fade-out":"tv-transition--fade-out-VA2P0ZT5","tv-transition--slide-out":"tv-transition--slide-out-VA2P0ZT5"}},65592:e=>{e.exports={container:"container-RqLxZVKU",inner:"inner-RqLxZVKU","border-left":"border-left-RqLxZVKU","border-right":"border-right-RqLxZVKU","border-top":"border-top-RqLxZVKU","border-bottom":"border-bottom-RqLxZVKU","top-right-radius":"top-right-radius-RqLxZVKU","top-left-radius":"top-left-radius-RqLxZVKU","bottom-right-radius":"bottom-right-radius-RqLxZVKU","bottom-left-radius":"bottom-left-radius-RqLxZVKU"}},74228:()=>{},4103:e=>{e.exports={css_value_currency_label_radius:"4",css_wrapper_margin:"1",css_row_left_right_margin:"3",css_row_left_right_padding:"6",css_first_row_top_padding:"4",css_fade_height:"10","price-axis-currency-label-wrapper":"price-axis-currency-label-wrapper-vSuZFrDG","price-axis-currency-label":"price-axis-currency-label-vSuZFrDG",hidden:"hidden-vSuZFrDG",row:"row-vSuZFrDG",readonly:"readonly-vSuZFrDG","price-axis-currency-label-fade":"price-axis-currency-label-fade-vSuZFrDG","price-axis-currency-label-text":"price-axis-currency-label-text-vSuZFrDG","price-axis-currency-label-arrow-down":"price-axis-currency-label-arrow-down-vSuZFrDG"}},43842:e=>{e.exports={labelwidth:"19px",labelheight:"19px",bordersize:"2px",bottommargin:"5px",gearheight:"15px",gearwidth:"15px","price-axis-stub":"price-axis-stub-MAhpkWoV",wrapper:"wrapper-MAhpkWoV",label:"label-MAhpkWoV",symbol:"symbol-MAhpkWoV",gear:"gear-MAhpkWoV","fixed-gear":"fixed-gear-MAhpkWoV","fixed-symbol":"fixed-symbol-MAhpkWoV"}},1597:()=>{},97845:()=>{},98033:e=>{e.exports={"css-value-header-toolbar-height":"38px"}},87027:e=>{e.exports={chartsSplitter:"chartsSplitter-jXbRzI5l",hovered:"hovered-jXbRzI5l","i-active":"i-active-jXbRzI5l"}},50869:e=>{e.exports={"css-value-pane-controls-padding-left":"1px","css-value-pane-controls-padding-right":"5px"}},72045:e=>{e.exports={paneSeparator:"paneSeparator-9uSVw3Vg",handle:"handle-9uSVw3Vg",hovered:"hovered-9uSVw3Vg",active:"active-9uSVw3Vg"}},95306:()=>{},89405:e=>{e.exports={"common-tooltip":"common-tooltip-3cIbUUfe","common-tooltip--hidden":"common-tooltip--hidden-3cIbUUfe","common-tooltip--horizontal":"common-tooltip--horizontal-3cIbUUfe","common-tooltip--farther":"common-tooltip--farther-3cIbUUfe","common-tooltip--vertical":"common-tooltip--vertical-3cIbUUfe","common-tooltip-farther":"common-tooltip-farther-3cIbUUfe","common-tooltip--direction_normal":"common-tooltip--direction_normal-3cIbUUfe","common-tooltip__body":"common-tooltip__body-3cIbUUfe","common-tooltip__button-container":"common-tooltip__button-container-3cIbUUfe",
"common-tooltip__body--no-buttons":"common-tooltip__body--no-buttons-3cIbUUfe","common-tooltip__button":"common-tooltip__button-3cIbUUfe","common-tooltip--direction_reversed":"common-tooltip--direction_reversed-3cIbUUfe","common-tooltip__ear-holder":"common-tooltip__ear-holder-3cIbUUfe","common-tooltip__ear-holder--below":"common-tooltip__ear-holder--below-3cIbUUfe","common-tooltip__ear-holder--above":"common-tooltip__ear-holder--above-3cIbUUfe","common-tooltip__ear-holder--before":"common-tooltip__ear-holder--before-3cIbUUfe","common-tooltip__ear-holder--after":"common-tooltip__ear-holder--after-3cIbUUfe","common-tooltip__body--with-hotkey":"common-tooltip__body--with-hotkey-3cIbUUfe","common-tooltip__body--width_wide":"common-tooltip__body--width_wide-3cIbUUfe","common-tooltip__body--width_narrow":"common-tooltip__body--width_narrow-3cIbUUfe","common-tooltip__body--no-padding":"common-tooltip__body--no-padding-3cIbUUfe","common-tooltip__hotkey-block":"common-tooltip__hotkey-block-3cIbUUfe","common-tooltip__hotkey-block--divider":"common-tooltip__hotkey-block--divider-3cIbUUfe","common-tooltip__hotkey-text":"common-tooltip__hotkey-text-3cIbUUfe","common-tooltip__hotkey-button":"common-tooltip__hotkey-button-3cIbUUfe","common-tooltip__plus-sign":"common-tooltip__plus-sign-3cIbUUfe"}},45112:(e,t,i)=>{"use strict";i.r(t),i.d(t,{colorsPalette:()=>h,getHexColorByName:()=>d})
;const s=JSON.parse('{"color-white":"#ffffff","color-black":"#000000","color-cold-gray-50":"#F8F9FD","color-cold-gray-100":"#F0F3FA","color-cold-gray-150":"#E0E3EB","color-cold-gray-200":"#D1D4DC","color-cold-gray-250":"#C1C4CD","color-cold-gray-300":"#B2B5BE","color-cold-gray-350":"#A3A6AF","color-cold-gray-400":"#9598A1","color-cold-gray-450":"#868993","color-cold-gray-500":"#787B86","color-cold-gray-550":"#6A6D78","color-cold-gray-600":"#5D606B","color-cold-gray-650":"#50535E","color-cold-gray-700":"#434651","color-cold-gray-750":"#363A45","color-cold-gray-800":"#2A2E39","color-cold-gray-850":"#1E222D","color-cold-gray-900":"#131722","color-cold-gray-950":"#0C0E15","color-ripe-red-50":"#FFEBEC","color-ripe-red-100":"#FCCBCD","color-ripe-red-200":"#FAA1A4","color-ripe-red-300":"#F77C80","color-ripe-red-400":"#F7525F","color-ripe-red-500":"#F23645","color-ripe-red-600":"#CC2F3C","color-ripe-red-700":"#B22833","color-ripe-red-800":"#991F29","color-ripe-red-900":"#801922","color-ripe-red-a100":"#FF8080","color-ripe-red-a200":"#FF5252","color-ripe-red-a400":"#FF3333","color-ripe-red-a600":"#CC2929","color-ripe-red-a700":"#802028","color-ripe-red-a800":"#4D191D","color-ripe-red-a900":"#331F20","color-tan-orange-50":"#FFF3E0","color-tan-orange-100":"#FFE0B2","color-tan-orange-200":"#FFCC80","color-tan-orange-300":"#ffb74d","color-tan-orange-400":"#FFA726","color-tan-orange-500":"#FF9800","color-tan-orange-600":"#FB8C00","color-tan-orange-700":"#F57C00","color-tan-orange-800":"#EF6C00","color-tan-orange-900":"#e65100","color-tan-orange-a200":"#ffab40","color-tan-orange-a400":"#ff9100","color-tan-orange-a700":"#FF6D00","color-iguana-green-100":"#C8E6C9","color-iguana-green-200":"#A5D6A7","color-iguana-green-300":"#81c784","color-iguana-green-400":"#66BB6A","color-iguana-green-500":"#4caf50","color-iguana-green-600":"#43a047","color-iguana-green-700":"#388e3c","color-iguana-green-800":"#2E7D32","color-iguana-green-900":"#1B5E20","color-iguana-green-a700":"#00c853","color-banana-yellow-100":"#FFF9C4","color-banana-yellow-200":"#FFF59D","color-banana-yellow-300":"#FFF176","color-banana-yellow-400":"#ffee58","color-banana-yellow-500":"#ffeb3b","color-banana-yellow-600":"#fdd835","color-banana-yellow-700":"#fbc02d","color-banana-yellow-800":"#f9a825","color-banana-yellow-900":"#F57F17","color-banana-yellow-a400":"#ffea00","color-banana-yellow-a700":"#ffd600","color-tv-blue-50":"#E3EFFD","color-tv-blue-100":"#BBD9FB","color-tv-blue-200":"#90BFF9","color-tv-blue-300":"#5B9CF6","color-tv-blue-400":"#3179F5","color-tv-blue-500":"#2962FF","color-tv-blue-600":"#1E53E5","color-tv-blue-700":"#1848CC","color-tv-blue-800":"#143EB3","color-tv-blue-900":"#0C3299","color-tv-blue-a100":"#82b1ff","color-tv-blue-a200":"#448aff","color-tv-blue-a400":"#2979ff","color-tv-blue-a600":"#2962FF","color-tv-blue-a700":"#143A87","color-tv-blue-a800":"#142E61","color-tv-blue-a900":"#132042","color-deep-blue-100":"#D1C4E9","color-deep-blue-200":"#B39DDB","color-deep-blue-300":"#9575cd","color-deep-blue-400":"#7e57c2","color-deep-blue-500":"#673ab7","color-deep-blue-700":"#512da8","color-deep-blue-800":"#4527A0","color-deep-blue-900":"#311B92","color-deep-blue-a100":"#b388ff","color-deep-blue-a200":"#7C4DFF","color-deep-blue-a400":"#651FFF","color-deep-blue-a700":"#6200EA","color-minty-green-50":"#DAF2EE","color-minty-green-100":"#ACE5DC","color-minty-green-200":"#70CCBD","color-minty-green-300":"#42BDA8","color-minty-green-400":"#22AB94","color-minty-green-500":"#089981","color-minty-green-600":"#06806B","color-minty-green-700":"#056656","color-minty-green-800":"#004D40","color-minty-green-900":"#00332A","color-minty-green-a400":"#2BD9BC","color-minty-green-a700":"#24B29B","color-minty-green-a900":"#082621","color-grapes-purple-50":"#F3E5F5","color-grapes-purple-100":"#E1BEE7","color-grapes-purple-200":"#CE93D8","color-grapes-purple-300":"#ba68c8","color-grapes-purple-400":"#ab47bc","color-grapes-purple-500":"#9c27b0","color-grapes-purple-600":"#8e24aa","color-grapes-purple-700":"#7b1fa2","color-grapes-purple-800":"#6A1B9A","color-grapes-purple-900":"#4A148C","color-grapes-purple-a200":"#E040FB","color-grapes-purple-a400":"#D500F9","color-grapes-purple-a700":"#aa00ff","color-berry-pink-100":"#F8BBD0","color-berry-pink-200":"#f48fb1","color-berry-pink-300":"#f06292","color-berry-pink-400":"#ec407a","color-berry-pink-500":"#e91e63","color-berry-pink-600":"#D81B60","color-berry-pink-700":"#C2185B","color-berry-pink-800":"#AD1457","color-berry-pink-900":"#880E4F","color-berry-pink-a100":"#ff80ab","color-berry-pink-a200":"#ff4081","color-sky-blue-100":"#B2EBF2","color-sky-blue-200":"#80DEEA","color-sky-blue-300":"#4dd0e1","color-sky-blue-400":"#26c6da","color-sky-blue-500":"#00bcd4","color-sky-blue-600":"#00acc1","color-sky-blue-700":"#0097A7","color-sky-blue-800":"#00838F","color-sky-blue-900":"#006064","color-sky-blue-a400":"#00e5ff","color-sky-blue-a700":"#00B8D4","color-deep-blue-600":"#5E35B1","color-facebook":"#1877F2","color-deep-facebook":"#1564CA","color-twitter":"#1DA1F2","color-deep-twitter":"#188CD3","color-youtube":"#FF0000","color-linkedin":"#007BB5","color-aqua-spring":"#ebf9f5","color-army-green":"#3d2c12","color-army-green-2":"#31230d","color-athens-gray-1":"#f2f3f5","color-athens-gray-2":"#f7f8fa","color-athens-gray-3":"#eceff2","color-black-180":"#b4b4b4","color-blue-dianne":"#21384d","color-bluish":"#2185cc","color-bright-gray":"#363c4e","color-brownish-grey":"#8d6e63","color-carnation":"#f04561","color-catskill-white":"#e1ecf2","color-charade":"#2f3241","color-charcoal-grey":"#323337","color-curious-blue":"#299dcd","color-dark-blue-grey":"#123440","color-darkness-blue-grey":"#12213b","color-dark-grey":"#292a2d","color-dark-grey-blue":"#28415a","color-dark-sky-blue":"#37a6ef","color-deep-sea-blue":"#016087","color-ebony-clay":"#262b3e","color-foam":"#d7f0fb","color-gull-gray":"#9db2bd","color-humming-bird":"#d3eef9","color-keppel-1":"#37bc9b","color-keppel-2":"#34b293","color-lavender-blush":"#ffedf0","color-lightish-purple":"#a75ee8","color-loblolly":"#c5cbce","color-manatee":"#878ca8","color-mandy":"#eb4d5c","color-medium-blue":"#2e7bb2","color-milk-chocolate":"#6f2626","color-mirage-1":"#131722","color-mirage-2":"#171b29","color-mirage-3":"#1c2030","color-mischka":"#d6d8e0","color-morning-glory":"#9addcc","color-oslo-gray":"#8b8e95","color-pale":"#fff2cf","color-pale-grey-1":"#f9fafb","color-pale-grey-2":"#e7ebee","color-pale-sky":"#6b7988","color-picton-blue-1":"#3bb3e4","color-puerto-rico":"#3bc2a1","color-purple-brown":"#4e2934","color-purple-brown-2":"#3d2028","color-radical-red":"#ff4a68","color-regent-gray":"#8797a5","color-scooter":"#38acdb","color-silver-tree":"#53b987","color-slate-gray":"#758696","color-sundown":"#ffa4b3","color-sunglow":"#ffca3b","color-tan-hide":"#ff9850","color-trout-1":"#4c525e","color-trout-2":"#4f5966","color-violet-1":"#332738","color-violet-2":"#271d2b","color-white-ice":"#ebf7fc","color-wild-watermelon":"#ff5773","color-readonly-input":"#b4b4b4","color-brand-dark":"#2a2c39","color-seeking-alpha-brand":"#ff7200"}'),r=JSON.parse('{"color-bg-primary":"color-white","color-bg-primary-hover":"color-cold-gray-100","color-bg-secondary":"color-white","color-bg-highlight":"color-cold-gray-50","color-bg-scroll-buttons":"color-cold-gray-100","color-legacy-bg-scroll-buttons":"color-cold-gray-850","color-legacy-bg-widget":"color-white","color-text-primary":"color-cold-gray-900","color-text-secondary":"color-cold-gray-500","color-text-tertiary":"color-cold-gray-400","color-text-disabled":"color-cold-gray-300","color-accent-content":"color-cold-gray-900","color-box-shadow":"color-cold-gray-300","color-divider":"color-cold-gray-150","color-divider-hover":"color-cold-gray-100","color-divider-secondary":"color-cold-gray-100","color-active-hover-text":"color-cold-gray-900","color-alert-text":"color-cold-gray-900","color-border-table":"color-cold-gray-100","color-brand":"color-tv-blue-500","color-brand-active":"color-tv-blue-700","color-brand-hover":"color-tv-blue-600","color-chart-page-bg":"color-cold-gray-150","color-common-tooltip-bg":"color-cold-gray-800","color-danger":"color-ripe-red-400","color-danger-hover":"color-ripe-red-500","color-danger-active":"color-ripe-red-600","color-depthrenderer-stroke-style":"color-cold-gray-100","color-highlight-new":"color-tan-orange-50","color-input-bg":"color-white","color-input-publish-bg":"color-white","color-link":"color-tv-blue-500","color-link-hover":"color-tv-blue-600","color-link-active":"color-tv-blue-700","color-list-nth-child-bg":"color-cold-gray-50","color-pane-bg":"color-white","color-pane-secondary-bg":"color-cold-gray-100","color-popup-menu-item-hover-bg":"color-cold-gray-100","color-popup-menu-separator":"color-cold-gray-150","color-screener-description":"color-cold-gray-650","color-success":"color-minty-green-500","color-success-hover":"color-minty-green-600","color-success-active":"color-minty-green-700","color-toolbar-button-text":"color-cold-gray-900","color-toolbar-button-text-hover":"color-cold-gray-900","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-100","color-toolbar-button-background-secondary-hover":"color-cold-gray-150","color-toolbar-toggle-button-background-active":"color-tv-blue-500","color-toolbar-toggle-button-background-active-hover":"color-tv-blue-600","color-toolbar-interactive-element-text-normal":"color-cold-gray-900","color-toolbar-interactive-element-text-hover":"color-cold-gray-900","color-toolbar-opened-element-bg":"color-cold-gray-100","color-tooltip-bg":"color-cold-gray-800","color-tv-dialog-caption":"color-cold-gray-650","color-tv-dropdown-item-hover-bg":"color-cold-gray-100","color-underlined-text":"color-cold-gray-500","color-widget-pages-bg":"color-white","color-warning":"color-tan-orange-500","color-growing":"color-minty-green-400","color-falling":"color-ripe-red-400","color-forex-icon":"color-cold-gray-750","color-list-item-active-bg":"color-tv-blue-400","color-list-item-hover-bg":"color-tv-blue-50","color-list-item-text":"color-cold-gray-800","color-price-axis-label-back":"color-cold-gray-150","color-price-axis-label-text":"color-cold-gray-650","color-price-axis-gear":"color-cold-gray-900","color-price-axis-gear-hover":"color-black","color-price-axis-highlight":"color-cold-gray-150","color-bid":"color-tv-blue-500","color-border":"color-cold-gray-150","color-border-chat-fields":"color-cold-gray-250","color-border-hover":"color-cold-gray-250","color-button-hover-bg":"color-cold-gray-150","color-depthrenderer-fill-style":"color-cold-gray-650","color-disabled-border-and-color":"color-cold-gray-150","color-disabled-input":"color-cold-gray-150","color-empty-container-message":"color-cold-gray-500","color-icons":"color-cold-gray-500","color-input-textarea-readonly":"color-cold-gray-650","color-input-placeholder-text":"color-cold-gray-350","color-item-active-blue":"color-tv-blue-50","color-item-hover-active-bg":"color-tv-blue-100","color-item-hover-bg":"color-tv-blue-100","color-item-hover-blue":"color-tv-blue-100","color-item-selected-blue":"color-tv-blue-50","color-item-active-text":"color-white","color-item-active-bg":"color-tv-blue-500","color-list-item":"color-cold-gray-450","color-news-highlight":"color-tv-blue-100","color-placeholder":"color-cold-gray-350","color-row-hover-active-bg":"color-cold-gray-100","color-sb-scrollbar-body-bg":"color-cold-gray-200","color-section-separator-border":"color-cold-gray-300","color-separator-table-chat":"color-cold-gray-150","color-tag-active-bg":"color-cold-gray-200","color-tag-hover-bg":"color-cold-gray-150","color-text-regular":"color-cold-gray-700","color-tv-button-checked":"color-cold-gray-550","color-scroll-bg":"color-cold-gray-400","color-scroll-border":"color-cold-gray-100","color-widget-border":"color-cold-gray-100","color-scroll-buttons-arrow":"color-white","color-control-intent-default":"color-cold-gray-200","color-control-intent-success":"color-minty-green-600","color-control-intent-primary":"color-tv-blue-500","color-control-intent-warning":"color-tan-orange-500","color-control-intent-danger":"color-ripe-red-500","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-invalid-symbol":"color-ripe-red-400","color-invalid-symbol-hover":"color-ripe-red-700","color-replay-mode":"color-tv-blue-500","color-replay-mode-icon":"color-white","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-700","color-list-item-bg-highlighted":"color-tv-blue-50","color-list-item-bg-selected":"color-tv-blue-100","color-list-item-bg-highlighted-hover":"color-tv-blue-100","color-list-item-bg-selected-hover":"color-tv-blue-200","color-screener-header-bg":"color-white","color-screener-header-bg-hover":"color-cold-gray-100","color-marker-flagged":"color-ripe-red-400","color-marker-flagged-hovered":"color-ripe-red-600","color-ask":"color-ripe-red-400","color-sell":"color-ripe-red-400","color-buy":"color-tv-blue-500","color-neutral":"color-cold-gray-500","color-pro":"color-minty-green-400","color-pro-hover":"color-minty-green-600","color-pro-plus":"color-tv-blue-500","color-pro-plus-hover":"color-tv-blue-600","color-pro-premium":"color-tan-orange-500","color-pro-premium-hover":"color-tan-orange-700","color-trial":"color-cold-gray-500","color-trial-hover":"color-cold-gray-600","color-mod":"color-ripe-red-400","color-mod-hover":"color-ripe-red-600","color-ad":"color-tan-orange-500","color-broker-featured":"color-minty-green-400","color-broker-featured-hover":"color-minty-green-600","color-alert-status-active":"color-minty-green-400","color-alert-status-stopped":"color-ripe-red-500","color-alert-status-triggered":"color-tan-orange-500","color-overlay":"color-cold-gray-400","color-search-button-hover":"color-cold-gray-150","color-common-tooltip-text":"color-cold-gray-100","color-replay-data-mode":"color-radical-red","color-legacy-success":"color-keppel-1","color-collapse-tabs-border":"color-athens-gray-3","color-site-widget-hover":"color-athens-gray-1","color-attention":"color-sunglow","color-card-border":"color-cold-gray-150","color-card-border-hover":"color-cold-gray-300","color-background-special-primary":"color-white","color-stroke-special-primary":"color-cold-gray-150","color-selection-bg":"color-tv-blue-100"}')
;var n=i(88537);const o={...s,...r},a={},l=Object.keys(o).length,c=/^#[0-9A-F]{6}$/i;Object.keys(o).forEach(e=>{const t=function e(t,i=[]){const s=o[t];if(!s)return null;if(c.test(s))return s;const r=s;return i.push(t),-1!==i.indexOf(r)?(console.warn("Colors definitions cycled"),s):i.length>l?(console.warn("Too many variables-link in HEX-color search: "+i[0]),null):e(r,i)}(e);a[e]=(0,n.ensureNotNull)(t)});const h=a;function d(e){const t=h[e];if(!t)throw new Error("No such color "+e);return t}},74991:(e,t,i)=>{"use strict";i.d(t,{dur:()=>s,easingFunc:()=>r,CubicBezier:()=>n});const s=350,r={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>e*(2-e),easeInOutQuad:e=>e<.5?2*e*e:(4-2*e)*e-1,easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1,easeInQuart:e=>e*e*e*e,easeOutQuart:e=>1- --e*e*e*e,easeInOutQuart:e=>e<.5?8*e*e*e*e:1-8*--e*e*e*e,easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>1+--e*e*e*e*e,easeInOutQuint:e=>e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e};class n{constructor(e,t,i,s){this._mX1=e,this._mY1=t,this._mX2=i,this._mY2=s}easingFunc(e){return this._mX1===this._mY1&&this._mX2===this._mY2?e:this._calcBezier(this._getTForX(e))}_a(e,t){return 1-3*t+3*e}_b(e,t){return 3*t-6*e}_c(e){return 3*e}_calcBezier(e){return((this._a(this._mY1,this._mY2)*e+this._b(this._mY1,this._mY2))*e+this._c(this._mY1))*e}_getSlope(e){return 3*this._a(this._mX1,this._mX2)*e*e+2*this._b(this._mX1,this._mX2)*e+this._c(this._mX1)}_getTForX(e){let t=e;for(let i=0;i<4;++i){const i=this._getSlope(t);if(0===i)return t;t-=(this._calcBezier(t)-e)/i}return t}}},77317:(e,t,i)=>{"use strict";i.d(t,{setupChartEventHint:()=>d});var s=i(88537),r=i(28353),n=i(56840),o=i(85733),a=i(44601),l=i(49483),c=i(68335),h=i(67337);function d(e,t=!1){if(!h.enabled("popup_hints"))return;const d=e.getContainer();let u=null,p=null;function _(e,t){if(u)u.show(e,g.bind(null,t));else{const s=o.tool.value();Promise.all([i.e(5514),i.e(3402),i.e(6166)]).then(i.bind(i,5015)).then(i=>{u=new i.ChartEventHintRenderer(d),s===o.tool.value()&&u.show(e,g.bind(null,t))})}}function m(e){return!Boolean(n.getBool(e))}function g(e){n.setValue(e,!0,{forceFlush:!0}),(0,s.ensureNotNull)(u).destroy(),null!==p&&p(),u=null}o.tool.subscribe((function(){if(!m("hint.touchPainting"))return;const e=o.tool.value(),t=(0,a.isLineToolDrawWithoutPoints)(e),i=l.CheckMobile.any();!(0,a.isStudyLineToolName)(e)||"LineToolRegressionTrend"===e||t||i?(0,a.isLineToolName)(e)&&!(0,a.isLineDrawnWithPressedButton)(e)&&!t&&i?_((0,r.t)("Move the point to position the anchor then tap to place"),"hint.touchPainting"):u&&u.hide():_((0,r.t)("Click to set a point"),"hint.touchPainting")})),o.createdLineTool.subscribe(null,(function(){const e=o.tool.value();"LineToolPath"===e&&m("hint.finishBuildPathByDblClick")?_((0,r.t)("Double-click to finish Path"),"hint.finishBuildPathByDblClick"):"LineToolPolyline"===e&&m("hint.finishBuildPolylineByDblClick")&&_((0,r.t)("Double-click to finish Polyline"),"hint.finishBuildPolylineByDblClick")})),o.finishedLineTool.subscribe(null,(function(){if(u){
const e=o.tool.value();"LineToolPath"===e?g("hint.finishBuildPathByDblClick"):"LineToolPolyline"===e&&g("hint.finishBuildPolylineByDblClick")}})),e.layoutSizesChanged().subscribe((function(){if(!m("hint.startResizingChartInLayout"))return;_((0,r.t)("Double-click any edge to reset layout grid"),"hint.startResizingChartInLayout")})),t||l.CheckMobile.any()||!m("hint.startFocusedZoom")||(p=function(e,t){let i=!1;const s=r=>{r?(i&&t(r),e.onZoom().unsubscribe(null,s)):i||(t(r),i=!0)};return e.onZoom().subscribe(null,s),()=>e.onZoom().unsubscribe(null,s)}(e,(function(e){if(!m("hint.startFocusedZoom"))return;if(e)u&&(p=null,g("hint.startFocusedZoom"));else{const e=c.isMacKeyboard?"⌘":"Ctrl";_((0,r.t)("Press and hold {key} while zooming to maintain the chart position").format({key:e}),"hint.startFocusedZoom")}})))}},81602:(e,t,i)=>{"use strict";i.d(t,{setupChartScreenshotHint:()=>o});var s=i(28353),r=i(76422),n=i(88537);function o(e,t){const o=(0,s.t)("Link to the chart image copied to clipboard {emoji}").format({emoji:"👍"}),a=(0,s.t)("Chart image copied to clipboard {emoji}").format({emoji:"👍"});r.on("onServerScreenshotCopiedToClipboard",()=>h(o),null),r.on("onClientScreenshotCopiedToClipboard",()=>h(a),null);let l=null;const c=e.getContainer();function h(e){l?l.show(e):Promise.all([i.e(5514),i.e(7037),i.e(92)]).then(i.bind(i,78621)).then(i=>{l||(l=new i.ChartScreenshotHintRenderer((0,n.ensureNotNull)(c),{bottomPadding:t.seriesControlBarEnabled}),l.show(e))})}}},94194:(e,t,i)=>{"use strict";i.d(t,{getTooltipData:()=>r,setTooltipData:()=>n});const s=new WeakMap;function r(e,t){const i=s.get(e);return i instanceof Function?i(t):i&&i[t]}function n(e,t,i){if(i instanceof Function)return void s.set(e,i);const r=s.get(e),n=void 0===r||r instanceof Function?{}:r;n[t]=i,s.set(e,n)}},61814:(e,t,i)=>{"use strict";i.d(t,{hotKeySerialize:()=>r,hotKeyDeserialize:()=>n});var s=i(11372);function r(e){return(0,s.clean)(JSON.stringify(e))}function n(e){return JSON.parse((0,s.clean)(e,!0))}},38780:(e,t,i)=>{"use strict";i.d(t,{hide:()=>G,show:()=>U,showOnElement:()=>z});var s=i(32563);let r=0,n=0,o=0;function a(){clearTimeout(r),clearTimeout(n),clearTimeout(o)}function l(e,t){r=setTimeout(e,t)}const c="tooltip-root-element";let h;function d(){const e=document.getElementById(c);e?h=e:(h=document.createElement("div"),h.id=c,document.body.appendChild(h))}function u(){h&&(h.innerHTML="")}"interactive"===document.readyState?d():document.addEventListener("DOMContentLoaded",d);var p=i(88537);const _={default:"",white:"theme-white","round-shadow":"theme-round-shadow"},m=Object.keys(_);var g=i(94194),f=i(61814),v=i(62046),S=i(62820),y=(i(94419),i(54475)),b=i(64514),w=i(49483),C=i(89405);function P(e){const t=function(e){const t=e.hasAttribute("data-tooltip")?e.getAttribute("data-tooltip"):e.getAttribute("title");return t&&((0,g.setTooltipData)(e,"text",t),e.removeAttribute("title")),(0,g.getTooltipData)(e,"text")||""}(e),i=e.getBoundingClientRect(),s={h:i.height,w:i.width,x:i.left,y:i.top
},r=e.getAttribute("data-color-theme")||"",n=e.classList.contains("common-tooltip-html"),o=parseInt(e.getAttribute("data-tooltip-delay")||""),a=parseInt(e.getAttribute("data-tooltip-debounce")||"");let l={type:"none"};return t&&(l={type:n?"html":"text",data:t}),{above:e.classList.contains("common-tooltip-above"),below:e.classList.contains("common-tooltip-below"),otl:e.classList.contains("common-tooltip-otl"),otr:e.classList.contains("common-tooltip-otr"),vertical:e.classList.contains("common-tooltip-vertical"),hotkey:e.getAttribute("data-tooltip-hotkey"),narrow:e.classList.contains("common-tooltip-narrow"),wide:e.classList.contains("common-tooltip-wide"),colorTheme:r,tooltipDelay:o,tooltipDebounce:a,rect:s,content:l,target:e}}function T(e){const t=k.cloneNode(!0),i=B(t),{content:s}=e;switch(s.type){case"element":i.innerHTML="",i.appendChild(s.data);break;case"html":i.innerHTML=s.data;break;case"text":if(e.hotkey){const e=V.cloneNode(!0);e.innerText=s.data,i.appendChild(e)}else i.innerText=s.data}if(e.hotkey){const t="none"!==s.type,r=D.cloneNode(!0),n=(0,f.hotKeyDeserialize)(e.hotkey),o=n.keys.map(e=>`${e}`);r.innerHTML=function(e,t){return e.replace(/{\d}|{hotkey_\d}/gi,e=>{const i=Number(e.match(/\d/));return t[i]})}(n.text,o).replace(/\s\+\s/g,`+`),i.classList.add(C["common-tooltip__body--with-hotkey"]),t&&r.classList.add(C["common-tooltip__hotkey-block--divider"]),i.appendChild(r)}return t.addEventListener("contextmenu",y.preventDefault),t}function x(e,t){const i=t.rect;if(!i)return;!function(e,t){const i=m.includes(t)?_[t]:"";e.classList.remove(...m.map(e=>_[e]).filter(e=>!!e)),i&&!e.classList.contains(i)&&e.classList.add(i)}(e,t.colorTheme||"default"),t.addClass&&e.classList.add(t.addClass);const s=B(e),r=e.querySelector("."+C["common-tooltip__button-container"]);s.classList.toggle(C["common-tooltip__body--width_wide"],Boolean(t.wide)),s.classList.toggle(C["common-tooltip__body--no-padding"],Boolean(t.noPadding)),s.classList.toggle(C["common-tooltip__body--width_narrow"],Boolean(t.narrow)),s.classList.toggle(C["common-tooltip__body--no-buttons"],!0),s.style.left=M(0),s.style.width=M(s.clientWidth+(Boolean(t.noPadding)?0:2));const n=document.body.clientWidth,o=w.CheckMobile.iOS()||(0,w.supportTouch)()&&(0,w.isMac)()?window.innerHeight:document.body.clientHeight,a=t.vertical,l=t.extendMargin||a&&i.w<20||!a&&i.h<20;e.classList.toggle(C["common-tooltip--farther"],l),e.classList.toggle(C["common-tooltip--vertical"],a),e.classList.toggle(C["common-tooltip--horizontal"],!a);const c=function(e){return e.querySelector("."+C["common-tooltip__ear-holder"])}(e),h=e.offsetHeight;if(a){const a=10,l=o-10,d=12,u=a+d,p=l-d,_=(0,b.clamp)(i.y+i.h/2,u,p)-h/2,m=_+h;e.style.left=M(i.x+i.w),e.style.top=M(_),_l&&(s.style.top=r.style.top=M(l-m));const{right:g}=(e.querySelector(":last-child")||s).getBoundingClientRect(),f=g+10>n
;e.classList.toggle(C["common-tooltip--direction_reversed"],f),e.classList.toggle(C["common-tooltip--direction_normal"],!f);let v=f?"after":"before";(0,S.isRtl)()?(v=t.otr?"after":v,v=t.otl?"before":v):(v=t.otr?"before":v,v=t.otl?"after":v),c.classList.toggle(C["common-tooltip__ear-holder--before"],"before"===v),c.classList.toggle(C["common-tooltip__ear-holder--after"],"after"===v),"after"===v&&(e.style.left="auto",e.style.right=M(n-i.x))}else{const a=i.x-(s.offsetWidth-i.w)/2,l=n-10-e.offsetWidth,d=Math.max(10,Math.min(a,l));e.style.left=M(d);const u=l\n\t\t\n\t\t\n\t\n`,A=`\n\t\n`,E=`\n\t\n`,k=(0,v.parseHtmlElement)(L),D=(0,v.parseHtmlElement)(A),V=(0,v.parseHtmlElement)(E);function B(e){return e.querySelector("."+C["common-tooltip__body"])}function N(e,t){return 10+ez(t);if(i()){const e=e=>{e.target instanceof Element&&e.target.contains(t)&&s(null,!0)},s=(r,n=!1)=>{t.removeEventListener("common-tooltip-update",i),t.removeEventListener("mouseleave",s),t.removeEventListener("mousedown",s),document.removeEventListener("scroll",e,{capture:!0}),W&&(W.destroy(),W=null),G(n)};t.addEventListener("common-tooltip-update",i),t.addEventListener("mouseleave",s),t.addEventListener("mousedown",s),document.addEventListener("scroll",e,{capture:!0}),null===W&&(W=(0,R.createGroup)({desc:"Tooltip"}),W.add({desc:"Hide",hotkey:27,
handler:s}));break}}}),!0);const H=new MutationObserver(()=>{if(F&&F.options.target){let e;e="isConnected"in F.options.target?F.options.target.isConnected:document.body.contains(F.options.target),e||G()}}),z=(e,t={})=>{const{content:i,...s}=Y(t),r=P(e),n=Object.assign(r,s);return"none"!==i.type&&(n.content=i),!("none"===n.content.type&&!n.hotkey)&&(n.target=e,U(n),!0)},U=e=>{const t=Y(e),i=T(t);var s;if(F={options:t,element:i},s=i,u(),h&&h.appendChild(s),a(),!O)return I(i),void l(()=>q(i),function(e){return"number"!=typeof e.tooltipDelay||isNaN(e.tooltipDelay)?500:e.tooltipDelay}(t));const{tooltipDebounce:r}=e;"number"!=typeof r||isNaN(r)?q(i):l(()=>q(i),r)};function j(){u(),O=!1,F=null}const G=e=>{if(a(),H.disconnect(),!F)return;if(!e&&!O)return;const{element:t,options:i}=F,s=()=>{t.removeEventListener("mouseleave",s),I(t),e?j():o=setTimeout(()=>{j()},250)};var r,l;i.tooltipHideDelay?(r=()=>{t.querySelector(":hover")?t.addEventListener("mouseleave",s):s()},l=i.tooltipHideDelay,n=setTimeout(r,l)):s()};function q(e){const{options:t}=(0,p.ensureNotNull)(F);if(x(e,t),function(e){e.classList.toggle(C["common-tooltip--hidden"],!1)}(e),H.observe(document,{childList:!0,subtree:!0}),O=!0,t.forceHideOnMove){const e=()=>{document.removeEventListener("mousemove",e),G()};document.addEventListener("mousemove",e)}}function Y(e){if(function(e){return"content"in e}(e))return e;const{inner:t,html:i,text:s,...r}=e;let n={type:"none"};return t&&(n={type:"element",data:t}),s&&(n={type:i?"html":"text",data:s}),{content:n,...r}}},28325:(e,t,i)=>{"use strict";i.d(t,{ChartPage:()=>d});var s=i(52714),r=i.n(s),n=i(31940);function o(e,t){let i=0;for(const{min:s,max:r}of t){if(e0&&t.push({min:e,max:s})}return t.sort((e,t)=>e.min-t.min||e.max-t.max),t}function l(e,t){if(e.length!==t.length)return!1;for(let i=e.length;i--;){if(e[i].min!==t[i].min)return!1;if(e[i].max!==t[i].max)return!1}return!0}var c=i(67337);const h=c.enabled("no_min_chart_width");class d{constructor(e){this._processVisibility=e=>{const t=e.container.value();return this._affectsLayout(e.name)?(t&&t.classList.toggle("js-hidden",!1),!0):(t&&t.classList.toggle("js-hidden",!0),!1)},this._setWidth=(e,t)=>{let i=t;this._fullscreenArea!==e.name&&(e.availWidth.setValue(t),e.canNegotiate.width&&(i=o(t,e.negotiations.width)));const s=e.container.value();return s&&(s.style.width=i+"px"),e.width.setValue(i),i},this._setHeight=(e,t)=>{let i=t;this._fullscreenArea!==e.name&&(e.availHeight.setValue(t),e.canNegotiate.height&&(i=o(t,e.negotiations.height)));const s=e.container.value();return s&&(s.style.height=i+"px"),e.height.setValue(i),i};const t=e.container.value();if(!t)throw new Error("bridge.container.value() must be an element");this._container=t,
this._availableAreas=["left","tradingpanel","right","top","bottom","center","topleft","extratop"],this._areas={},this._bridge=e,this._width=e.width,this._height=e.height,this._width.subscribe(()=>this.recalculate()),this._height.subscribe(()=>this.recalculate()),this._bridge.visible.subscribe(()=>this._updateVisibility()),this._bridge.fullscreen.subscribe(()=>this._onParentFullscreenChange()),this.recalculate()}allocate(e){const t=e&&e.areaName;if(-1===this._availableAreas.indexOf(t))throw new Error("unknown options.areaName");this.free(t);const i=this._createDOM(t),s={name:t,canNegotiate:{width:"left"===t||"right"===t||"tradingpanel"===t||"topleft"===t,height:"top"===t||"bottom"===t||"topleft"===t||"extratop"===t},negotiations:{width:[],height:[]},remove:()=>{for(const e in this._areas)this._areas[e]===s&&this.free(e)},negotiateWidth:e=>{if(!s.canNegotiate.width)return;const t=a(e);l(s.negotiations.width,t)||(s.negotiations.width=t,this.recalculate())},negotiateHeight:e=>{if(!s.canNegotiate.height)return;const t=a(e);l(s.negotiations.height,t)||(s.negotiations.height=t,this.recalculate())},requestFullscreen:()=>{this._fullscreenArea||("right"!==t&&"center"!==t||(this._fullscreenArea=t),"center"===t&&this._bridge.requestFullscreen(),this._updateFullscreen())},exitFullscreen:()=>{t===this._fullscreenArea&&(this._fullscreenArea=void 0,"center"===t&&this._bridge.exitFullscreen(),this._updateFullscreen())},width:new(r()),height:new(r()),availWidth:new(r()),availHeight:new(r()),alive:new(r())(!0),container:new(r())(i),visible:new(r())(!0),fullscreen:new(r())(!1),fullscreenable:new(r())("right"===t||"center"===t),rdState:new n.ResizerDetacherState};return s.rdState.pushOwner(s),this._areas[t]=s,s.rdState.owner.subscribe(e=>{const i=s.container.value();if(e!==s)i&&(i.innerHTML="",i.parentElement&&i.parentElement.removeChild(i));else{let e=null;for(let i=this._availableAreas.indexOf(t);i--;){const t=this._availableAreas[i];if(this._affectsLayout(t)){e=this._areas[t].container.value();break}}i&&(e&&i.parentElement?i.insertAdjacentElement("afterend",e):this._container.appendChild(i))}this.recalculate()},{callWithLast:!0}),s.rdState.bridge()}free(e){const t=this._areas[e];if(!t)return;this._areas[e]=void 0;const i=t.container.value();i&&i.parentElement&&i.parentElement.removeChild(i),t.alive.setValue(!1)}recalculate(){const e={};this._recalcSingleRunToken=e;const t=this._areas.topleft,i=this._areas.left,s=this._areas.tradingpanel,r=this._areas.right,n=this._areas.top,o=this._areas.bottom,a=this._areas.center,l=this._areas.extratop,c=this._width.value(),d=this._height.value();let u=0,p=0,_=0,m=0,g=0,f=0,v=0,S=0;if(e===this._recalcSingleRunToken&&l&&this._processVisibility(l)&&(S=this._setHeight(l,d),this._setWidth(l,c)),e===this._recalcSingleRunToken&&t&&this._processVisibility(t)){v=this._setHeight(t,d),f=this._setWidth(t,c);const e=t.container.value();e&&(e.style.top=S+"px")}let y=0;if(e===this._recalcSingleRunToken&&n&&this._processVisibility(n)){const e=n.container.value();e&&(e.style.left=f+"px",e.style.top=S+"px")
;const t=c-f;this._setWidth(n,t),u=this._setHeight(n,d),u&&(y=1)}if(e===this._recalcSingleRunToken&&i&&this._processVisibility(i)){const e=Math.max(v,u),t=i.container.value();_=this._setWidth(i,c),_&&(_+=4),_&&1===y&&(y=4),t&&(t.style.top=e+S+y+"px"),this._setHeight(i,d-e-S)}if(e===this._recalcSingleRunToken&&s&&this._processVisibility(s)){let e=c-_;h||(e-=300),g=this._setWidth(s,e),g&&1===y&&(y=4),this._setHeight(s,d-S-u-y)}if(e===this._recalcSingleRunToken&&r&&this._processVisibility(r)){let e=c-_-g;h||(e-=300),m=this._setWidth(r,e),m&&1===y&&(y=4),this._setHeight(r,d-S-u-y);const t=r.container.value();t&&(t.style.top=u+S+y+"px",t.classList.toggle("no-border-top-left-radius",Boolean(g)))}const b=g+m;let w=0;const C=c-_-g-m-(b?4:0);if(e===this._recalcSingleRunToken&&o&&this._processVisibility(o)){const e=o.container.value();e&&(e.style.left=_+"px",e.classList.toggle("no-border-top-left-radius",!_),e.classList.toggle("no-border-top-right-radius",!b)),this._setWidth(o,C);const t=d-S;w=Math.min(300,t-0),p=this._setHeight(o,t)+4}const P=Boolean(u&&(_||b));if(this._container.classList.toggle("layout-with-border-radius",P),e===this._recalcSingleRunToken&&a&&this._processVisibility(a)){const e=a.container.value();e&&(e.style.left=_+"px",e.style.top=u+S+y+"px",e.classList.toggle("no-border-bottom-left-radius",!p||!_),e.classList.toggle("no-border-bottom-right-radius",!b||!p),e.classList.toggle("no-border-top-left-radius",Boolean(!_&&b)),e.classList.toggle("no-border-top-right-radius",Boolean(_&&!b))),this._setWidth(a,C);const t=d-u-p-S-y;this._setHeight(a,Math.max(t,w))}if(e===this._recalcSingleRunToken&&s&&this._affectsLayout("tradingpanel")){const e=s.container.value();e&&(e.style.right=m+"px",e.style.top=S+u+y+"px",e.style.borderTopLeftRadius=P?"4px":"0px")}e===this._recalcSingleRunToken&&this._updateVisibility()}_affectsLayout(e){const t=this._areas[e];if(!t)return!1;if(t.rdState.owner.value()!==t)return!1;if(this._fullscreenArea&&this._fullscreenArea!==e)return u(e);if(this._width.value()<=567||this._height.value()<=445){if(!["center","top","left","topleft","extratop"].includes(e))return!1}return!0}_updateVisibility(){const e=this._bridge.visible.value();for(let t=0;t{"use strict";i.d(t,{ResizerDetacherState:()=>o});var s=i(88537),r=i(52714),n=i.n(r);class o{constructor(e){this._alive=new(n()),this._container=new(n()),this._width=new(n()),this._height=new(n()),this._fullscreen=new(n()),this._detachable=new(n()),this._fullscreenable=new(n()),this._visible=new(n()),this._availWidth=new(n()),this._availHeight=new(n()),this._owner=new(n()),this._ownersStack=[],this.owner=this._owner.readonly(),this._bridge={alive:this._alive.readonly(),container:this._container.readonly(),width:this._width.readonly(),height:this._height.readonly(),fullscreen:this._fullscreen.readonly(),detachable:this._detachable.readonly(),fullscreenable:this._fullscreenable.readonly(),visible:this._visible.readonly(),availWidth:this._availWidth.readonly(),availHeight:this._availHeight.readonly(),remove:()=>{const e=this._owner.value();e&&e.remove&&e.remove()},negotiateWidth:e=>{const t=this._owner.value();t&&t.negotiateWidth&&t.negotiateWidth(e)},negotiateHeight:e=>{const t=this._owner.value();t&&t.negotiateHeight&&t.negotiateHeight(e)},requestFullscreen:()=>{const e=this._owner.value();e&&e.requestFullscreen&&e.requestFullscreen()},exitFullscreen:()=>{const e=this._owner.value();e&&e.exitFullscreen&&e.exitFullscreen()},detach:e=>{const t=this._owner.value();t&&t.detach&&t.detach(e)},attach:()=>{const e=this._owner.value();e&&e.attach&&e.attach()}},e&&this.pushOwner(e)}bridge(){return this._bridge}pushOwner(e){if(!e.alive.value())return;for(const e of this._ownersStack)this._unsubscribeOwner(e);const t={owner:e};this._ownersStack.push(t),this._subscribeOwner(t)}_subscribeOwner(e){const t=e.owner;if(e.deathWatcher||(this._alive.setValue(!0),e.deathWatcher=t.alive.spawn(),e.deathWatcher.subscribe(t=>{t||this._deadHandler(e)})),this._owner.setValue(t),!e.subscriptions){const i=e.subscriptions=[];this._visible.setValue(!1);const s=(e,t)=>{if(e){const s=e.spawn();i.push(s),s.subscribe(e=>{t.setValue(e)},{callWithLast:!0})}else t.deleteValue()};s(t.container,this._container),s(t.width,this._width),s(t.height,this._height),s(t.fullscreen,this._fullscreen),s(t.detachable,this._detachable),s(t.fullscreenable,this._fullscreenable),s(t.availWidth,this._availWidth),s(t.availHeight,this._availHeight),s(t.visible,this._visible)}}_unsubscribeOwner(e,t){if(e.subscriptions){for(const t of e.subscriptions)t.unsubscribe();e.subscriptions=null}t&&e.deathWatcher&&(e.deathWatcher.unsubscribe(),e.deathWatcher=null)}_deadHandler(e){const t=this._ownersStack.indexOf(e);(0,s.assert)(-1!==t,"sanitized owner should be in stack");for(let e=this._ownersStack.length-1;e>=t;e--)this._unsubscribeOwner(this._ownersStack[e],!0);this._ownersStack.length=t,t>0?this._subscribeOwner(this._ownersStack[t-1]):(this._alive.setValue(!1),this._owner.deleteValue())}}},
89356:(e,t,i)=>{"use strict";i.d(t,{Root:()=>d});i(28353);var s=i(52714),r=i.n(s),n=i(31940);class o{constructor(e){this._document=e,this.isFullscreen=new(r());const t=()=>{const e=["fullscreenElement","webkitFullscreenElement","mozFullscreenElement","mozFullScreenElement","msFullscreenElement"];for(let t=0;t{this.isVisible.setValue(!e[r])},i(),e.addEventListener(t,i,!1);break}}this.destroy=()=>{i&&(e.removeEventListener(t,i,!1),i=null)}}}var l=i(84015),c=i(88537),h=i(49483);class d{constructor(e){this._updateDocumentHeight=e=>{"visual"===this._viewportType&&this._window.document.documentElement.style.setProperty("height",e+"px","important")},this._window=e,this._fullscreenApi=new o(e.document),this._viewportType=h.CheckMobile.iOS()&&!(0,l.isOnMobileAppPage)("any")&&this._window.visualViewport?"visual":"quirks","visual"===this._viewportType?this._viewport=(0,c.ensureDefined)(this._window.visualViewport):this._viewport=this._window;const t=this._layoutSizeSensor=this._window.document.createElement("div");t.id="layout-size-sensor",t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.right="0",t.style.bottom="0",t.style.pointerEvents="none",t.style.visibility="hidden",this._initFullscreen()}allocate(){this.free();const e=this._window.document,t=e.createElement("div");t.classList.add("js-rootresizer__contents"),t.style.position="relative",t.style.width="100%",t.style.height="100%",e.body.insertAdjacentElement("afterbegin",t),e.body.insertAdjacentElement("afterbegin",this._layoutSizeSensor),this._visibilityApi=new a(this._window.document);const i={alive:new(r())(!0),fullscreenable:new(r())(!0),container:new(r())(t),width:new(r()),height:new(r()),availWidth:new(r()),availHeight:new(r()),visible:this._visibilityApi.isVisible,fullscreen:this._fullscreenApi.isFullscreen,remove:()=>{i.alive.setValue(!1)},attach:()=>{i.alive.setValue(!1),this._window.close()},requestFullscreen:()=>{this._requestFullscreen()},exitFullscreen:()=>{this._exitFullscreen()}};return i.alive.subscribe(e=>{e||i!==this._area||this.free()}),this._area=i,this._resizeHandler=()=>{const e=this._width(i)||800,t=this._height(i)||600;i.availHeight.setValue(t),i.availWidth.setValue(e),
i.height.setValue(t),i.width.setValue(e)},this._area.height.subscribe(this._updateDocumentHeight,{callWithLast:!0}),this._resizeHandler(),this._viewport.addEventListener("resize",this._resizeHandler),new n.ResizerDetacherState(i).bridge()}free(){if(this._resizeHandler&&(this._viewport.removeEventListener("resize",this._resizeHandler),this._resizeHandler=void 0),this._visibilityApi&&(this._visibilityApi.destroy(),this._visibilityApi=void 0),this._area){const e=this._area;this._area=void 0,e.height.unsubscribe(this._updateDocumentHeight),e.alive.setValue(!1);const t=e.container.value(),i=null==t?void 0:t.parentElement;i&&(i.removeChild(t),i.removeChild(this._layoutSizeSensor))}}_height(e){if("visual"===this._viewportType)return this._layoutSizeSensor.clientHeight;return e.container.value().clientHeight}_width(e){return e.container.value().clientWidth}_requestFullscreen(){this._fullscreenApi.enter()}_exitFullscreen(){this._fullscreenApi.exit()}_initFullscreen(){this._fullscreenApi.isFullscreen.subscribe(e=>{this._resizeHandler&&this._resizeHandler()})}}},33134:(e,t,i)=>{"use strict";i.d(t,{DEFAULT_SIZE:()=>s,spinnerSizeMap:()=>r});const s="large",r={mini:"xsmall",xsmall:"xsmall",small:"small",medium:"medium",large:"large"}},4185:(e,t,i)=>{"use strict";i.d(t,{Spinner:()=>o});i(24780);var s=i(62046),r=i(33134);const n=(0,s.parseHtmlElement)(function(e=""){return``}());class o{constructor(e){this._shown=!1,this._el=n.cloneNode(!0),this.setSize(r.spinnerSizeMap[e||r.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}}},5683:(e,t,i)=>{"use strict";i.d(t,{createStubElem:()=>r});var s=i(65592);function r(e=[],t=[]){const i=document.createElement("div"),r=document.createElement("div");return i.appendChild(r),i.classList.add(s.container),r.classList.add(s.inner),e.forEach(e=>{i.classList.add(s[e])}),t.forEach(e=>{i.classList.add(s[e])}),i}},45973:(e,t,i)=>{"use strict";i.r(t),i.d(t,{lineToolEntityInfo:()=>o,studyEntityInfo:()=>a,seriesEntityInfo:()=>l,entityForDataSource:()=>c});var s=i(81851),r=i(16906),n=i(14291);function o(e){return{id:e.id(),name:(t=e.toolname,Object.keys(r.supportedLineTools).find(e=>r.supportedLineTools[e].name===t)||null)};var t}function a(e){return{id:e.id(),name:e.metaInfo().description}}function l(e){return{id:e.id(),name:"Main Series"}}function c(e,t){return t===e.mainSeries()?l(e.mainSeries()):(0,s.isStudy)(t)?a(t):(0,
n.isLineTool)(t)?o(t):null}},68582:(e,t,i)=>{"use strict";i.r(t),i.d(t,{isLineToolRiskReward:()=>a,LineDataSourceApi:()=>c});var s=i(88537),r=i(80643);const n=new Map([["LineToolRiskRewardLong",2],["LineToolRiskRewardShort",2],["LineToolBezierQuadro",3],["LineToolBezierCubic",4]]);function o(e){const t=n.get(e.toolname);if(void 0!==t)return t;const i=e.pointsCount();return-1===i?e.points().length:i}function a(e){return"LineToolRiskRewardLong"===e||"LineToolRiskRewardShort"===e}const l=["alwaysShowStats","entryPrice","inputs.first bar time","inputs.last bar time","interval","linesWidths","points","snapTo45Degrees","stopPrice","symbol","symbolStateVersion","currencyId","unitId","targetPrice","zOrderVersion"];class c{constructor(e,t,i){this._source=e,this._undoModel=t,this._model=t.model(),this._pointsConverter=i}isSelectionEnabled(){return this._source.isSelectionEnabled()}setSelectionEnabled(e){this._source.setSelectionEnabled(e)}isSavingEnabled(){return this._source.isSavedInChart()}setSavingEnabled(e){this._source.setSavingInChartEnabled(e)}isShowInObjectsTreeEnabled(){return this._source.showInObjectTree()}setShowInObjectsTreeEnabled(e){this._source.setShowInObjectsTreeEnabled(e)}isUserEditEnabled(){return this._source.userEditEnabled()}setUserEditEnabled(e){this._source.setUserEditEnabled(e)}bringToFront(){this._model.bringToFront([this._source])}sendToBack(){this._model.sendToBack([this._source])}getProperties(){return this._source.properties().state(l,!0)}setProperties(e){this._setProps(this._source.properties(),e,"")}getPoints(){let e=this._source.points();const t=o(this._source);return e.length>t&&((0,s.assert)(a(this._source.toolname)),e=e.slice(0,t)),this._pointsConverter.dataSourcePointsToPriced(e)}setPoints(e){if(this._source.isFixed())return;const t=o(this._source);if(t!==e.length)throw new Error(`Wrong points count. Required: ${t}, provided: ${e.length}`);const i=this._pointsConverter.apiPointsToDataSource(e);this._model.startChangingLinetool(this._source),this._model.changeLinePoints(this._source,i),this._model.endChangingLinetool(!0),this._source.createServerPoints()}ownerSourceId(){return(0,s.ensureNotNull)(this._source.ownerSource()).id()}changePoint(e,t){if(this._source.isFixed())return;const i=this._pointsConverter.apiPointsToDataSource([e])[0];this._model.startChangingLinetool(this._source,{...i},t),this._model.changeLinePoint({...i}),this._model.endChangingLinetool(!1),this._source.createServerPoints()}isHidden(){return this._source.isSourceHidden()}getRawPoints(){return this._source.points()}setRawPoint(e,t){this._model.startChangingLinetool(this._source,{...t},e),this._model.changeLinePoint({...t}),this._model.endChangingLinetool(!1)}move(e,t){this._model.startMovingSources([this._source],{logical:e},null,new Map),this._model.moveSources({logical:t},new Map),this._model.endMovingSources(!1)}dataAndViewsReady(){return this._source.dataAndViewsReady()}zorder(){return this._source.zorder()}symbol(){return this._source.properties().symbol.value()}currency(){
return this._source.properties().currencyId.value()}unit(){return this._source.properties().unitId.value()}share(e){this._undoModel.shareLineTools([this._source],e)}sharingMode(){return this._source.sharingMode().value()}_setProps(e,t,i){for(const s in t){if(!t.hasOwnProperty(s))continue;const n=0===i.length?s:`${i}.${s}`;if(e.hasOwnProperty(s)){const i=t[s];(0,r.isHashObject)(i)?this._setProps(e[s],i,n):e[s].setValue(i)}else console.warn(`Unknown property "${n}"`)}}}},56233:(e,t,i)=>{"use strict";i.d(t,{PaneApi:()=>u});var s=i(88537),r=i(42534),n=i(45973),o=i(80643),a=i(28353),l=i(24980),c=i(35762);const h=new l.TranslatedString("change pane height",(0,a.t)("change pane height"));class d extends c.UndoCommand{constructor(e,t,i){super(h),this._model=e,this._paneIndex=t,this._paneHeight=i,this._prevStretchFactors=this._model.panes().map(e=>e.stretchFactor())}redo(){this._model.changePanesHeight(this._paneIndex,this._paneHeight)}undo(){const e=this._model.panes();for(let t=0;t(0,n.entityForDataSource)(e,t)).filter(o.notNull).filter(e=>null!==e.name)}getHeight(){return this._pane.height()}setHeight(e){const t=this._chartWidget.model().model(),i=t.panes();(0,s.assert)(i.length>1,"Unable to change pane's height if there is only one pane");const r=i.indexOf(this._pane);(0,s.assert)(-1!==r,"Invalid pane index");const n=new d(t,r,e);this._chartWidget.model().undoHistory().pushUndoCommand(n)}moveTo(e){const t=this.paneIndex();t!==e&&((0,s.assert)(e>=0&&e{"use strict";i.d(t,{PriceScaleApi:()=>s});class s{constructor(e,t){this._chartUndoModel=e,this._chartModel=e.model(),this._priceScale=t}getMode(){const e=this._priceScale.properties().childs();return e.percentage.value()?2:e.indexedTo100.value()?3:e.log.value()?1:0}setMode(e){this._priceScale.setMode({percentage:2===e,log:1===e,indexedTo100:3===e})}isInverted(){return this._priceScale.isInverted()}setInverted(e){this._priceScale.properties().childs().isInverted.setValue(e)}isLocked(){return this._priceScale.isLockScale()}setLocked(e){this._priceScale.setMode({lockScale:e})}isAutoScale(){return this._priceScale.isAutoScale()}setAutoScale(e){this._priceScale.setMode({autoScale:e})}getVisiblePriceRange(){return this._priceScale.priceRangeInPrice()}setVisiblePriceRange(e){this._priceScale.setPriceRangeInPrice(e),this._chartModel.lightUpdate()}hasMainSeries(){return this._priceScale.hasMainSeries()}getStudies(){return this._priceScale.getStudies().map(e=>e.id())}currency(){const e=this._priceScale.currency(this._chartModel.availableCurrencies());return null===e?null:{selectedCurrency:e.selectedCurrency,readOnly:e.readOnly}}setCurrency(e){this._chartUndoModel.setPriceScaleCurrency(this._priceScale,e)}unit(){const e=this._priceScale.unit(this._chartModel.availableUnits());return null===e?null:{selectedUnit:e.selectedUnit,readOnly:0===e.availableGroups.size,availableGroups:Array.from(e.availableGroups)}}setUnit(e){this._chartUndoModel.setPriceScaleUnit(this._priceScale,e)}}},32112:(e,t,i)=>{"use strict";function s(e,t){const i=e.dataSourceForId(t);if(null===i)throw new Error(`Chart has no study or shape with id "${t}"`);return i}i.d(t,{SelectionApi:()=>r});class r{constructor(e){this._model=e}add(e){Array.isArray(e)?this._model.selectionMacro(t=>{e.map(s.bind(null,this._model)).forEach(e=>t.addSourceToSelection(e))}):this.add([e])}canBeAddedToSelection(e){const t=s(this._model,e);return this._model.selection().canBeAddedToSelection(t)}set(e){Array.isArray(e)?this._model.selectionMacro(t=>{t.clearSelection(),e.map(s.bind(null,this._model)).forEach(e=>t.addSourceToSelection(e))}):this.set([e])}remove(e){Array.isArray(e)?this._model.selectionMacro(t=>{e.map(s.bind(null,this._model)).forEach(e=>t.removeSourceFromSelection(e))}):this.remove([e])}contains(e){const t=s(this._model,e);return this._model.selection().isSelected(t)}allSources(){return this._model.selection().dataSources().map(e=>e.id())}isEmpty(){return this._model.selection().isEmpty()}clear(){this._model.selectionMacro(e=>{e.clearSelection()})}onChanged(){return this._model.onSelectedSourceChanged()}}},82650:(e,t,i)=>{"use strict";i.d(t,{SeriesApi:()=>l});var s=i(88537),r=i(8597),n=i(36551),o=i(27579),a=i(42534)
;class l{constructor(e,t){this._series=e,this._undoModel=t,this._model=t.model()}isUserEditEnabled(){return this._series.userEditEnabled()}setUserEditEnabled(e){this._series.setUserEditEnabled(e)}mergeUp(){this._model.isMergeUpAvailableForSource(this._series)&&new r.MergeUpUndoCommand(this._model,this._series,null).redo()}mergeDown(){this._model.isMergeDownAvailableForSource(this._series)&&new r.MergeDownUndoCommand(this._model,this._series,null).redo()}unmergeUp(){this._model.isUnmergeAvailableForSource(this._series)&&new n.UnmergeUpUndoCommand(this._model,this._series,null).redo()}unmergeDown(){this._model.isUnmergeAvailableForSource(this._series)&&new n.UnmergeDownUndoCommand(this._model,this._series,null).redo()}detachToRight(){new o.MoveToNewPriceScaleUndoCommand(this._model,this._series,this._pane(),"right",null).redo()}detachToLeft(){new o.MoveToNewPriceScaleUndoCommand(this._model,this._series,this._pane(),"left",null).redo()}detachNoScale(){new o.MoveToNewPriceScaleUndoCommand(this._model,this._series,this._pane(),"overlay",null).redo()}changePriceScale(e){const t=(0,s.ensureNotNull)(this._model.paneForSource(this._series));switch(e){case"new-left":new o.MoveToNewPriceScaleUndoCommand(this._model,this._series,t,"left",null).redo();break;case"new-right":new o.MoveToNewPriceScaleUndoCommand(this._model,this._series,t,"right",null).redo();break;case"no-scale":(0,s.assert)(t.actionNoScaleIsEnabled(this._series),"Unable to leave a pane without any non-overlay price scale"),new o.MoveToNewPriceScaleUndoCommand(this._model,this._series,t,"overlay",null).redo();break;default:const i=this._model.dataSourceForId(e);if(null===i)throw new Error(`There is no study with entityId='${e}'`);const r=this._model.paneForSource(i)===t;(0,s.assert)(r,"Study should be on the main pane");const n=(0,s.ensureNotNull)(i.priceScale());new o.MoveToExistingPriceScaleUndoCommand(this._model,this._series,t,n,null).redo()}}isVisible(){return this._series.properties().childs().visible.value()}setVisible(e){this._series.properties().childs().visible.setValue(e)}bringToFront(){this._model.bringToFront([this._series])}sendToBack(){this._model.sendToBack([this._series])}entityId(){return this._series.id()}chartStyleProperties(e){return this._series.properties().childs()[c(e)].state(["inputs","inputsInfo"])}setChartStyleProperties(e,t){this._series.properties().childs()[c(e)].mergeAndFire(t)}barsCount(){return this._series.bars().size()}symbolSource(){return{symbol:this._series.symbol(),currencyId:this._series.currency(),unitId:this._series.unit()}}isLoading(){return this._series.isLoading()}data(){return this._series.data()}priceScale(){return new a.PriceScaleApi(this._undoModel,this._series.priceScale())}_pane(){return(0,s.ensureNotNull)(this._model.paneForSource(this._series))}}function c(e){switch(e){case 0:return"barStyle";case 1:return"candleStyle";case 2:return"lineStyle";case 3:return"areaStyle";case 4:return"renkoStyle";case 5:return"kagiStyle";case 6:return"pnfStyle";case 7:return"pbStyle";case 8:return"haStyle";case 9:
return"hollowCandleStyle";case 10:return"baselineStyle";case 11:return"rangeStyle";case 12:return"hiloStyle";case 13:return"columnStyle";default:(0,s.ensureNever)(e)}throw new Error("unsupported chart style: "+e)}},67e3:(e,t,i)=>{"use strict";i.d(t,{StudyApi:()=>y});var s=i(88537),r=i(2872),n=i.n(r),o=i(80643),a=i(59572),l=i(97401),c=i(13795),h=i(36551),d=i(8597),u=i(27579),p=i(61671),_=i(79222),m=i(35588),g=i(42534),f=i(13933),v=i(152),S=i(70120);class y{constructor(e,t){this._onStudyCompleted=new(n()),this._onStudyError=new(n()),this._study=e,this._chartWidget=t,this._undoModel=this._chartWidget.model(),this._model=this._undoModel.model(),this._study.onAboutToBeDestroyed().subscribe(this,()=>{this._study.onStatusChanged().unsubscribeAll(this),this._study.onAboutToBeDestroyed().unsubscribeAll(this)}),this._study.onStatusChanged().subscribe(this,e=>{switch(e.type){case f.StudyStatusType.Completed:this._onStudyCompleted.fire();break;case f.StudyStatusType.Error:this._onStudyError.fire()}})}isUserEditEnabled(){return this._study.userEditEnabled()}setUserEditEnabled(e){this._study.setUserEditEnabled(e)}getInputsInfo(){return(0,v.getStudyInputsInfo)(this._study.metaInfo())}getInputValues(){const e=this._study.inputs({symbolsForChartApi:!1,asObject:!0});return Object.keys(e).map(t=>{const i=e[t];return{id:t,value:(0,o.isObject)(i)?i.v:i}})}getStyleInfo(){return(0,S.getStudyStylesInfo)(this._study.metaInfo())}getStyleValues(){const{plots:e,styles:t,bands:i,filledAreas:s,palettes:r}=this._study.properties().state(),n={};return void 0!==e&&(n.plots=e),void 0!==t&&(n.styles=t),void 0!==i&&(n.bands=i),void 0!==s&&(n.filledAreas=s),void 0!==r&&(n.palettes=r),n}setInputValues(e){const t=this.getInputValues();for(const i of e){void 0!==t.find(e=>e.id===i.id)?this._study.properties().inputs[i.id].setValue(i.value):console.warn(`There is no such input: "${i.id}"`)}}mergeUp(){this._model.isMergeUpAvailableForSource(this._study)&&new d.MergeUpUndoCommand(this._model,this._study,null).redo()}mergeDown(){this._model.isMergeDownAvailableForSource(this._study)&&new d.MergeDownUndoCommand(this._model,this._study,null).redo()}unmergeUp(){this._model.isUnmergeAvailableForSource(this._study)&&new h.UnmergeUpUndoCommand(this._model,this._study,null).redo()}unmergeDown(){this._model.isUnmergeAvailableForSource(this._study)&&new h.UnmergeDownUndoCommand(this._model,this._study,null).redo()}onDataLoaded(){return this._onStudyCompleted}onStudyError(){return this._onStudyError}mergeUpWithUndo(){this._model.isMergeUpAvailableForSource(this._study)&&this._undoModel.mergeSourceUp(this._study)}mergeDownWithUndo(){this._model.isMergeDownAvailableForSource(this._study)&&this._undoModel.mergeSourceDown(this._study)}unmergeUpWithUndo(){this._model.isUnmergeAvailableForSource(this._study)&&this._undoModel.unmergeSourceUp(this._study)}unmergeDownWithUndo(){this._model.isUnmergeAvailableForSource(this._study)&&this._undoModel.unmergeSourceDown(this._study)}priceScale(){return new g.PriceScaleApi(this._undoModel,(0,s.ensureNotNull)(this._study.priceScale()))}
symbolSource(){const e=(0,s.ensureNotNull)(this._study.symbolSource());return{symbol:e.symbol(),currencyId:e.currency(),unitId:e.unit()}}currency(){return this._study.currency()}changePriceScale(e){const t=(0,s.ensureNotNull)(this._model.paneForSource(this._model.mainSeries())),i=(0,s.ensureNotNull)(this._model.paneForSource(this._study));switch(e){case"no-scale":(0,s.assert)(i.actionNoScaleIsEnabled(this._study),"Unable to leave a pane without any non-overlay price scale"),new u.MoveToNewPriceScaleUndoCommand(this._model,this._study,i,"overlay",null).redo();break;case"as-series":(0,s.assert)(i===t,"Study should be on the main pane"),new u.MoveToExistingPriceScaleUndoCommand(this._model,this._study,i,this._model.mainSeries().priceScale(),null).redo();break;case"new-left":new u.MoveToNewPriceScaleUndoCommand(this._model,this._study,i,"left",null).redo();break;case"new-right":new u.MoveToNewPriceScaleUndoCommand(this._model,this._study,i,"right",null).redo();break;default:const r=this._model.dataSourceForId(e);if(null===r)throw new Error(`There is no study with entityId='${e}'`);const n=i===this._model.paneForSource(r);(0,s.assert)(n,"Both studies should be on the same pane");const o=(0,s.ensureNotNull)(r.priceScale()),a=(0,c.sourceNewCurrencyOnPinningToPriceScale)(this._study,o,this._model),h=(0,_.sourceNewUnitOnPinningToPriceScale)(this._study,o,this._model);new u.MoveToExistingPriceScaleUndoCommand(this._model,this._study,i,o,null).redo(),null!==a&&new l.SetPriceScaleCurrencyUndoCommand(o,a,this._undoModel.chartWidget(),null).redo(),null!==h&&new m.SetPriceScaleUnitUndoCommand(o,h,this._undoModel.chartWidget(),null).redo()}}isVisible(){return this._study.properties().visible.value()}setVisible(e){this._study.properties().visible.setValue(e)}bringToFront(){this._model.bringToFront([this._study])}sendToBack(){this._model.sendToBack([this._study])}applyOverrides(e){(0,a.applyOverridesToStudy)(this._study,e)}dataLength(){return this._study.status().type!==f.StudyStatusType.Completed?0:this._study.metaInfo().plots.length>0?this._study.data().size():this._model.mainSeries().bars().size()}isLoading(){return this._study.isLoading()}properties(){return this._study.properties()}async applyToEntireLayout(){const e=new p.ActionsProvider(this._chartWidget),t=(await e.contextMenuActionsForSources([this._study])).find(e=>"applyStudyToEntireLayout"===e.id);t&&t.execute()}}},152:(e,t,i)=>{"use strict";i.d(t,{getStudyInputsInfo:()=>r});var s=i(28353);function r(e){return void 0===e.inputs?[]:e.inputs.map(e=>({...e,id:e.id,localizedName:void 0!==e.name?(0,s.t)(e.name,{context:"input"}):""}))}},70120:(e,t,i)=>{"use strict";i.d(t,{getStudyStylesInfo:()=>n});var s,r=i(27788);function n(e){const t={};if(e.defaults){const i=(0,r.default)(e.defaults);t.defaults=i}return void 0!==e.plots&&(t.plots=(0,r.default)(e.plots)),void 0!==e.styles&&(t.styles=(0,r.default)(e.styles)),void 0!==e.bands&&(t.bands=(0,r.default)(e.bands)),void 0!==e.filledAreas&&(t.filledAreas=(0,r.default)(e.filledAreas)),void 0!==e.palettes&&(t.palettes=(0,
r.default)(e.palettes)),t}!function(e){e.LeftToRight="left_to_right",e.RightToLeft="right_to_left"}(s||(s={}))},817:(e,t,i)=>{"use strict";i.d(t,{ChartSession:()=>u});var s=i(2872),r=i.n(s),n=i(88537),o=i(52714),a=i.n(o),l=i(9423),c=i(98125);const h=(0,c.getLogger)("ChartApi.AbstractSession");var d=i(80643);(0,c.getLogger)("ChartSession");class u extends class{constructor(e,t,i){this._isConnected=new(a())(!1),this._state=0,this._isConnectForbidden=!1,this._sessionId="",this._sessionIdChanged=new(r()),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,n.assert)(!this._isConnectForbidden,"Cannot call connect because it is forbidden at this moment"),this._setSessionId(`${this._sessionPrefix}_${(0,l.randomHash)()}`),this._logNormal("Connecting session - wait until transport stay connected"),this._state=1,this._chartApi.createSession(this._sessionId,this))}disconnect(){0!==this._state&&((0,n.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,n.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){h.logNormal(this._generateLogMessage(e))}_logError(e){h.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(r()),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()}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,d.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)})()}isCanCreateStudy(e){return this._getChartApi().isCanCreateStudy(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){return this._getChartApi().modifyStudy(this.sessionId(),e,t,i,s)}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)}}},84801:(e,t,i)=>{"use strict";var s=i(80643).declareClassAsPureInterface;function r(){}TradingView.WEB_SOCKET_WAS_CONNECTED=!1,r.REBIND_STUDY_STANDALONE_TO_CHILD=1,r.REBIND_STUDY_CHILD_TO_STANDALONE=2,r.prototype.defaultWatchlistSymbols=function(){},r.prototype.defaultResolutions=function(){},r.prototype.availableCurrencies=function(){},r.prototype.availableUnits=function(){},r.prototype.supportedSymbolsTypes=function(){},r.prototype.supportedExchangesList=function(){},r.prototype.symbolsGrouping=function(){},r.prototype.quoteCreateSession=function(e){},r.prototype.quoteDeleteSession=function(e){},r.prototype.quoteSetFields=function(e,t){},r.prototype.quoteAddSymbols=function(e,t){},r.prototype.quoteRemoveSymbols=function(e,t){},r.prototype.quoteFastSymbols=function(e,t){},r.prototype.depthCreateSession=function(e,t,i){},r.prototype.depthDeleteSession=function(e){},r.prototype.depthSetSymbol=function(e,t){},r.prototype.depthClearSymbol=function(e){},r.prototype.depthSetScale=function(e,t){},r.prototype.chartCreateSession=function(e,t){},r.prototype.chartDeleteSession=function(e){},r.prototype.createSession=function(e,t){},r.prototype.removeSession=function(e){},r.prototype.connected=function(){},r.prototype.connect=function(){},r.prototype.disconnect=function(){},r.prototype.switchTimezone=function(e,t){},r.prototype.resolveSymbol=function(e,t,i,s){},r.prototype.createSeries=function(e,t,i,s,r,n,o,a){},r.prototype.removeSeries=function(e,t,i){},r.prototype.modifySeries=function(e,t,i,s,r,n,o){},r.prototype.requestMoreData=function(e,t,i,s){},r.prototype.requestMetadata=function(e,t,i){},r.prototype.isCanCreateStudy=function(e,t){},r.prototype.createStudy=function(e,t,i,s,r,n,o){},r.prototype.rebindStudy=function(e,t,i,s,r,n,o,a){},r.prototype.removeStudy=function(e,t,i){},r.prototype.modifyStudy=function(e,t,i,s,r){},r.prototype.createPointset=function(e,t,i,s,r,n,o){},r.prototype.modifyPointset=function(e,t,i,s,r){},r.prototype.removePointset=function(e,t,i){},r.prototype.requestMoreTickmarks=function(e,t,i,s){},r.prototype.requestFirstBarTime=function(e,t,i,s){},r.prototype._invokeHandler=function(e,t){},r.prototype._sendRequest=function(e,t){},r.prototype._onMessage=function(e){},r.prototype._dispatchNotification=function(e){},r.prototype._invokeNotificationHandler=function(e,t,i){},r.prototype._notifySessions=function(e){},r.prototype.unpack=function(e){},r.prototype.searchSymbols=function(e,t,i,s,r,n,o,a,l,c){},r.prototype.serverTimeOffset=function(){},r.prototype.getMarks=function(e,t,i,s,r){},r.prototype.getTimescaleMarks=function(e,t,i,s,r){},s(r,"ChartApiInterface"),e.exports.HandlerInfo=function(e,t){this.handler=e,this.customId=t},e.exports.ChartApiInterface=r},17437:(e,t,i)=>{
"use strict";i.r(t),i.d(t,{setCustomAdapter:()=>_,initialize:()=>m,updateUser:()=>g,getChartsCount:()=>f,getCharts:()=>v,removeChart:()=>S,saveChart:()=>y,getChartContent:()=>b,loadChart:()=>w,removeStudyTemplate:()=>C,getStudyTemplateContent:()=>P,saveStudyTemplate:()=>T,getStudyTemplatesList:()=>x,invalidateStudyTemplatesList:()=>I,getStudyTemplateContentById:()=>M,getStandardStudyTemplateContentById:()=>L,removeStudyTemplateById:()=>A,renameStudyTemplate:()=>E,replaceStudyTemplate:()=>k,getDrawingTemplates:()=>D,loadDrawingTemplate:()=>V,removeDrawingTemplate:()=>B,saveDrawingTemplate:()=>N});var s=i(76422),r=i(98125),n=i(88461);const o=(0,r.getLogger)("Chart.SaveloadAdapter.Library");let a,l,c,h,d=null,u=null;function p(e){return`${c}/${encodeURIComponent(h)}/${e}?client=${encodeURIComponent(a)}&user=${encodeURIComponent(l)}`}function _(e){d=e}function m(e,t,i,s){a=e,l=t,c=i,h=s}function g(e){l=e}function f(e,t){throw new Error("Not implemented")}async function v(){const e=e=>e.map(e=>({id:e.id,name:e.name,image_url:String(e.id),modified_iso:e.timestamp,short_symbol:e.symbol,interval:e.resolution}));if(d)return d.getAllCharts().then(e);try{const t=await fetch(""+p("charts"),{credentials:"same-origin"});if(!t.ok)throw new Error(`Getting chart content response was not OK. Status: ${t.status}.`);const i=await t.json();if("ok"!==i.status)throw new Error("Get chart content request failed: "+i.message);return e(i.data)}catch(e){throw o.logWarn((0,n.errorToString)(e)),e}}async function S(e){if(d)d.removeChart(e);else try{const t=await fetch(`${p("charts")}&chart=${encodeURIComponent(e)}`,{method:"DELETE",credentials:"same-origin"});if(!t.ok)throw new Error(`Remove chart response was not OK. Status: ${t.status}.`);const i=await t.json();if("ok"!==i.status)throw new Error("Remove drawing template request failed: "+i.message)}catch(e){throw o.logWarn((0,n.errorToString)(e)),e}}async function y(e,t,i,s,r){const a=r.id.value(),l={name:e,content:JSON.stringify(s),symbol:t,resolution:i};if(d)return d.saveChart({...l,id:a});try{const e=new FormData;for(const t in l)e.append(t,l[t]);let t=p("charts");null!=a&&(t+="&chart="+encodeURIComponent(a));const i=await fetch(t,{credentials:"same-origin",method:"POST",body:e});if(!i.ok)throw new Error(`Saving chart content response was not OK. Status: ${i.status}.`);const s=await i.json();if("ok"!==s.status)throw new Error("Saving chart content request failed: "+s.message);return s.id.toString()}catch(e){throw o.logWarn((0,n.errorToString)(e)),e}}async function b(e){const t=t=>{const i=JSON.parse(t);return i.uid=e.id,i};if(d)return d.getChartContent(e.id).then(e=>t(e));try{const i=await fetch(`${p("charts")}&chart=${encodeURIComponent(e.id)}`,{credentials:"same-origin"});if(!i.ok)throw new Error(`Getting chart content response was not OK. Status: ${i.status}.`);const s=await i.json();if("ok"!==s.status)throw new Error("Get chart content request failed: "+s.message);return t(s.data.content)}catch(e){throw o.logWarn((0,n.errorToString)(e)),e}}function w(e){b(e).then(e=>{
s.emit("chart_load_requested",e)},()=>{o.logWarn("Error loading chart")})}async function C(e){try{if(d)return d.removeStudyTemplate({name:e});const t=await fetch(`${p("study_templates")}&template=${encodeURIComponent(e)}`,{method:"DELETE",credentials:"same-origin"});if(!t.ok)throw new Error(`Remove study template response was not OK. Status: ${t.status}.`);const i=await t.json();if("ok"!==i.status)throw new Error("Remove study template request failed: "+i.message)}catch(e){throw o.logWarn((0,n.errorToString)(e)),e}}async function P(e){try{if(d){return{content:await d.getStudyTemplateContent({name:e})}}const t=await fetch(`${p("study_templates")}&template=${encodeURIComponent(e)}`,{credentials:"same-origin"});if(!t.ok)throw new Error(`Get study template response was not OK. Status: ${t.status}.`);const i=await t.json();if("ok"!==i.status)throw new Error("Get study template request failed: "+i.message);return i.data}catch(e){throw o.logWarn((0,n.errorToString)(e)),e}}async function T(e){try{if(d)return d.saveStudyTemplate(e).then(()=>({error:""})).catch(e=>({error:null!=e?(0,n.errorToString)(e):"error"}));const t=new FormData;t.append("name",e.name),t.append("content",e.content);const i=await fetch(p("study_templates"),{method:"POST",body:t,credentials:"same-origin"});if(!i.ok)throw new Error(`Save study template response was not OK. Status: ${i.status}.`);const s=await i.json();return{error:"ok"===s.status?"":s.status}}catch(e){throw o.logWarn((0,n.errorToString)(e)),e}}async function x(){try{if(u)return u;u=[];const e=e=>(u=e.map(e=>({is_default:!1,name:e.name})),u);if(d)return d.getAllStudyTemplates().then(e);const t=await fetch(p("study_templates"),{method:"GET",credentials:"same-origin"});if(!t.ok)throw new Error(`Study templates list response was not OK. Status: ${t.status}.`);const i=await t.json();if("ok"!==i.status)throw new Error("Study templates list request failed: "+i.message);return e(i.data)}catch(e){throw o.logWarn((0,n.errorToString)(e)),e}}function I(){u=null}function M(e,t){throw new Error("Not implemented")}function L(e,t){throw new Error("Not implemented")}function A(e,t){throw new Error("Not implemented")}function E(e,t,i){throw new Error("Not implemented")}function k(e,t,i){throw new Error("Not implemented")}async function D(e){throw new Error("Not implemented")}async function V(e,t){throw new Error("Not implemented")}async function B(e,t){throw new Error("Not implemented")}async function N(e,t,i){throw new Error("Not implemented")}},87983:(e,t,i)=>{"use strict";var s=i(88537).ensureNotNull,r=i(69177),n=i(29823).Interval,o=i(16616),a=i(84093),l=i(84801),c=l.ChartApiInterface,h=l.HandlerInfo,d=i(80643).requireFullInterfaceImplementation,u=i(98125).getLogger("Chart.ChartApiLocal"),p=i(73383).TIMEFRAMETYPE,_=i(65862).createDwmAligner,m=i(67337);TradingView.STUDY_COUNT_LIMIT=210,JSServer.ChartApi=function(e){this._notificationHandlers={},this._sessions={},this.studyCounter=0,this._connected=!1,this._enabled=!1,this._studyEngine=new o(e),this._callbacks={},this._serverTimeOffset=0;var t=this
;this._studyEngine.on("configuration_received",(function(){t._fireEvent("configuration_received")})),this._studyEngine.on("realtime_tick",(function(e){var i={time:e.value[0]/1e3,open:e.value[1],high:e.value[2],low:e.value[3],close:e.value[4],volume:e.value[5]};t._fireEvent("realtime_tick",i,!0)})),this._setVisibleRangeTimeout={}},JSServer.ChartApi.prototype.destroy=function(){this._studyEngine.destroy(),this._studyEngine=null},JSServer.ChartApi.prototype.purgeCache=function(e){this._studyEngine.purgeCache(),this._studyEngine.purgeDataCache()},JSServer.ChartApi.prototype.defaultWatchlistSymbols=function(){const e=this._watchlistSettings.default_symbols;return m.enabled("uppercase_instrument_names")?e.map(e=>e.toUpperCase()):e},JSServer.ChartApi.prototype.defaultResolutions=function(){return this._studyEngine.supportedResolutions()||["1","3","5","15","30","45","60","120","180","240","1D","1W","1M"]},JSServer.ChartApi.prototype.availableCurrencies=function(){var e=this._studyEngine.supportedCurrencies().map((function(e){return"string"==typeof e?{id:e,code:e}:e}));return Promise.resolve(e)},JSServer.ChartApi.prototype.availableUnits=function(){return Promise.resolve(this._studyEngine.supportedUnits())},JSServer.ChartApi.prototype.supportedSymbolsTypes=function(){return this._studyEngine.supportedSymbolsTypes()},JSServer.ChartApi.prototype.supportedExchangesList=function(){return this._studyEngine.supportedExchangesList()},JSServer.ChartApi.prototype.symbolsGrouping=function(){return this._studyEngine.symbolsGrouping()},JSServer.ChartApi.prototype.start=function(){this._enabled=!0,this._fireEvent("start_enabled")},JSServer.ChartApi.prototype.unsubscribe=function(e,t){var i=this._callbacks[e];i&&i.splice(i.indexOf(t),1)},JSServer.ChartApi.prototype.on=function(e,t){return this._callbacks.hasOwnProperty(e)||(this._callbacks[e]=[]),this._callbacks[e].push(t),this},JSServer.ChartApi.prototype._fireEvent=function(e,t,i){if(this._callbacks.hasOwnProperty(e)){var s=this._callbacks[e].slice(0);i||(this._callbacks[e]=[]);for(var r=0;rn||(TradingView.ChartapiMessagerInstances[e].onSeriesTimeframeUpdate(t,i,_,n,a),l&&setTimeout(l,0))}}}if(this._studyEngine.isTimeScaleExtendedTo(e,1e3*r))p();else{var m=TradingView.ChartapiMessagerInstances[e].seriesCompleted,g=TradingView.ChartapiMessagerInstances[e].seriesError;void 0!==this._setVisibleRangeTimeout[e]&&clearTimeout(this._setVisibleRangeTimeout[e]),this._setVisibleRangeTimeout[e]=setTimeout(function(){delete this._setVisibleRangeTimeout[e],m.subscribe(null,f,!0),g.subscribe(null,v,!0),this._studyEngine.ensureExtendedTo(t,e,1e3*r)}.bind(this),0)}function f(e,s){e===t&&s===i&&(m.unsubscribe(null,f),g.unsubscribe(null,v),p())}function v(e,s){e===t&&s===i&&m.unsubscribe(null,f)}},JSServer.ChartApi.prototype._applyTimeFrame=function(e,t,i,s,o){var a,l,c={},h=!0;if(o.type===p.PeriodBack){var d=this._studyEngine.getSeriesLastBarTime(e,i);if(null===d)return;l=d/1e3;var u=n.parse(o.value),m=this._studyEngine.getSeriesSymbolInfo(e,i);a=r.alignPeriodsBackForVisibleRange(m.session,m.session_holidays,m.corrections,u.letter(),u.multiplier(),1,d)/1e3
;var g=_(this._studyEngine.getSeriesInterval(e,i),m);null!==g&&(l=g.timeToExchangeTradingDay(1e3*l)/1e3,a=g.timeToExchangeTradingDay(1e3*a)/1e3),c={applyDefaultRightMargin:!0},h=!1}else a=o.from,l=o.to;this.setVisibleTimeRange(e,i,s,a,l,h,c)},JSServer.ChartApi.prototype.modifySeries=function(e,t,i,s,r,n,o){var a=this;this._notificationHandlers[e][t]=new h((function(r){"series_completed"===r.method&&null!==n&&(a._applyTimeFrame(e,s,t,i,n),n=null),o(r)}),t),this._studyEngine.modifySeries(e,t,s,r,i)},JSServer.ChartApi.prototype.requestMoreData=function(e,t){this._studyEngine.extendSeriesRange(e,t)},JSServer.ChartApi.prototype.setStudiesAccessController=function(e){this.studiesAccessController=e},JSServer.ChartApi.prototype.setWatchlistSettings=function(e){this._watchlistSettings=e},JSServer.ChartApi.prototype.allStudiesMetadata=function(){return this._studyEngine.studiesMetadata()},JSServer.ChartApi.prototype.requestMetadata=function(e,t,i){this._notificationHandlers[e][t]=new h(i,t);var s=this.studiesAccessController.getEnabledTools();TradingView.ChartapiMessagerInstances[e].onRequestMetadata(t,s)},JSServer.ChartApi.prototype.isCanCreateStudy=function(){return this.studyCounter{"use strict";var s=i(2872),r=function(e,t){this._server=e,this._session=t,this.seriesCompleted=new s,this.seriesError=new s};r.prototype.onRequestMetadata=function(e,t){this._server.receiveLocalResponse({method:"studies_metadata",params:[this._session,e,{errors:[],hash:"",metainfo:t,migrations:[]}]})},r.prototype.onSymbolResolved=function(e,t){this._server.receiveLocalResponse({method:"symbol_resolved",params:[this._session,e,t]})},r.prototype.onSymbolError=function(e,t){this._server.receiveLocalResponse({method:"symbol_error",params:[this._session,e,t]})},r.prototype.onStudyError=function(e,t,i){this._server.receiveLocalResponse({method:"study_error",params:[this._session,e,t,i]})},r.prototype.onSeriesLoading=function(e,t){this._server.receiveLocalResponse({method:"series_loading",params:[this._session,e,t]})},r.prototype.onSeriesCompleted=function(e,t,i){this._server.receiveLocalResponse({method:"series_completed",params:[this._session,e,i,t]}),this.seriesCompleted.fire(e,t)},r.prototype.onSeriesError=function(e,t,i){this._server.receiveLocalResponse({method:"series_error",params:[this._session,e,t,i]}),this.seriesError.fire(e,t)},r.prototype.onStudyCompleted=function(e,t){this._server.receiveLocalResponse({method:"study_completed",params:[this._session,e,t]})},r.prototype.onStudyLoading=function(e,t){this._server.receiveLocalResponse({method:"study_loading",params:[this._session,e,t]})},r.prototype.onTickmarksUpdated=function(e,t){var i={method:"tickmark_update",params:[this._session,{index:e,zoffset:0,changes:[],marks:t,index_diff:[]
}]};this._server.receiveLocalResponse(i)},r.prototype.onTimescaleUpdate=function(e,t){var i={method:"timescale_update",params:[this._session,this._prepareDataUpdateObjects(t),{index:e.pointsIndex,zoffset:0,changes:e.points,marks:e.marks,index_diff:e.indexChange,baseIndex:e.baseIndex}]};this._server.receiveLocalResponse(i)},r.prototype.onTimescaleCompleted=function(e){this._server.receiveLocalResponse({method:"timescale_completed",params:[this._session,e]})},r.prototype.onSeriesTimeframeUpdate=function(e,t,i,s,r){var n={method:"series_timeframe",params:[this._session,e,t,i,s,null,!0,r]};this._server.receiveLocalResponse(n)},r.prototype.onPointsetDataUpdate=function(e,t,i){this.onDataUpdate(e,t,i,null)},r.prototype._prepareDataUpdateObjects=function(e){var t={};return e.forEach((function(e){t[e.objId]={series:e.data,turnaround:e.turnaround},e.nonSeriesData&&(e.nonSeriesData.data?t[e.objId].nonseries={d:JSON.stringify(e.nonSeriesData.data),indexes:e.nonSeriesData.indexes}:t[e.objId].nonseries={d:"",indexes:[]})})),t},r.prototype.onDataUpdate=function(e,t,i,s){var r={method:"data_update",params:[this._session,this._prepareDataUpdateObjects([{objId:e,turnaround:t,data:i,nonSeriesData:s}])]};this._server.receiveLocalResponse(r)},r.prototype.onQuotesData=function(e){this._server.receiveLocalResponse({method:"quote_symbol_data",params:e})},r.prototype.onDepthData=function(e){this._server.receiveLocalResponse({method:"dd",params:e})},r.prototype.onDepthUpdate=function(e){this._server.receiveLocalResponse({method:"dpu",params:e})},r.prototype.onClearData=function(e){this._server.receiveLocalResponse({method:"clear_data",params:[this._session,e]})},TradingView.ChartapiMessagerInstances=[],e.exports=r},41986:(e,t,i)=>{"use strict";i.d(t,{DatafeedRequestsCachedProcessor:()=>_});var s=i(88537),r=i(29823),n=i(55257),o=i(216),a=i(67337),l=i(69177),c=i(65862),h=i(90388);i(94419);function d(e,t){return e.ticker+(e.currency_code?"_#_"+e.currency_code:"")+(e.unit_id?"_#_"+e.unit_id:"")+(e.subsession_id?"_#_"+e.subsession_id:"")+"_#_"+t}function u(e){return new Date(e).toISOString()}class p{constructor(e,t,i,s,n,o){this._cache={bars:[]},this._nextSubscriptionId=0,this._pendingSubscribers=[],this._subscribers=[],this._requesting=!1,this._leftDate=null,this._nextTime=null,this._realtimeOn=!1,this._endOfData=!1,this._resetCacheTimeout=null,this._errorMessage=null,this._destroyed=!1,this._emptyResponsesCount=0,this._datafeed=e,this._symbolInfo=t,this._interval=r.Interval.parse(i),this._resolution=this._interval.value(),this._dwmAligner=n,this._serverTimeOffsetGetter=s,this._resetCacheTimePeriod=void 0===o?1e4:o,this._sessionSpec=new h.SessionSpec(t.timezone,t.session,t.session_holidays,t.corrections),this._updateDatesFromExpirationDate()}destroy(){0!==this._subscribers.length&&console.warn("Destroying with not-empty state"),this._clearResetCacheTimeout(),this._unsubscribeRealtime(),this._purgeCache(),delete this._datafeed,this._destroyed=!0}addSubscription(e,t,i){const s=this._getNextSubscriptionId();this._pendingSubscribers.push({key:s,
range:e,onHistoryCallback:t,onErrorCallback:i}),r.Interval.isDWM(this._resolution)&&void 0!==e.to&&null!==this._dwmAligner&&e.to%864e5&&console.warn(`Internal error: invalid date for DWM resolution ${u(e.to)}, expected time without a time part`),this._clearResetCacheTimeout();return setTimeout(()=>{this._destroyed||this._processPendingSubscribers()},0),s}removeSubscription(e){const t=this._pendingSubscribers.find(t=>t.key===e);if(t)return void this._pendingSubscribers.splice(this._pendingSubscribers.indexOf(t),1);const i=this._subscribers.find(t=>t.key===e);if(i)return this._subscribers.splice(this._subscribers.indexOf(i),1),void(this._subscribers.length||(this._resetCacheTimeout=setTimeout(()=>{this._resetCacheTimeout=null,this._purgeCache(),this._unsubscribeRealtime()},this._resetCacheTimePeriod)));console.warn("Unknown subscription symbol={0}, resolution={1}, key={2}".format(this._symbolInfo.name,this._resolution,e))}_logMessage(e,t){if(a.enabled("charting_library_debug_mode")||t){const t=this._symbolInfo.currency_code,i=this._symbolInfo.unit_id;console.log(`FEED [${this._symbolInfo.name}|${this._resolution}${t?"|"+t:""}${i?"|"+i:""}]: ${e}`)}}_clearResetCacheTimeout(){null!==this._resetCacheTimeout&&(clearTimeout(this._resetCacheTimeout),this._resetCacheTimeout=null)}_purgeCache(){this._logMessage("Reset cache"),this._cache={bars:[]},this._errorMessage=null,this._leftDate=null,this._endOfData=!1,this._updateDatesFromExpirationDate()}_updateDatesFromExpirationDate(){void 0!==this._symbolInfo.expiration_date&&(this._nextTime=1e3*this._symbolInfo.expiration_date,this._leftDate=1e3*(this._symbolInfo.expiration_date+1))}_dealignTime(e){return null===this._dwmAligner?e:this._dwmAligner.timeToExchangeTradingDay(e)}_normalizeRange(e){const t=void 0!==e.to?e.to:this._dealignTime(this._now());if(0===this._cache.bars.length||void 0!==e.to&&t<=(0,s.ensureNotNull)(this._leftDate))return{countBack:e.countBack,to:t};const i=null!==this._dwmAligner?this._dwmAligner.timeToSessionStart(t):t,r=(0,n.lowerbound)(this._cache.bars,i,(e,t)=>e.time{e.onErrorCallback(t)})}let t=this._normalizeRange(e[0].range);for(const i of e.map(e=>this._normalizeRange(e.range)))(i.tot.countBack)&&(t=i);this._logMessage(`Leftmost subscriber requires ${t.countBack} bars prior ${u(t.to)}`)
;!(null===this._leftDate||t.to{const t=this._moveSubscriberToRealtime(e);this._returnHistoryDataToSubscriber(e,t)}),this._subscribeRealtimeIfNeeded()):this._ensureRequestedTo(t)}_moveSubscriberToRealtime(e){const t={key:e.key,onHistoryCallback:e.onHistoryCallback,barset:null};return this._subscribers.push(t),t}_isSymbolExpired(){return this._symbolInfo.expired||void 0!==this._symbolInfo.expiration_date}_subscribeRealtimeIfNeeded(){!this._subscribers.length||this._realtimeOn||this._isSymbolExpired()||this._subscribeRealtime()}_subscribeRealtime(){if(this._symbolInfo.expired||this._realtimeOn)return;this._realtimeOn=!0,this._datafeed.subscribeBars(this._symbolInfo,this._resolution,e=>{null!==this._dwmAligner&&(e.time=this._dwmAligner.timeToSessionStart(e.time)),this._putToCacheNewBar(e),this._subscribers.forEach(t=>{const i=t.barset;if(null===i)throw new Error("subscriber.barset is null");i.add(e),t.onHistoryCallback(i)})},d(this._symbolInfo,this._resolution),()=>{this._unsubscribeRealtime();const e=this._leftDate;this._purgeCache(),null!==e&&this._ensureRequestedTo({to:e,countBack:0})}),this._logMessage("Subscribed to realtime")}_unsubscribeRealtime(){!this._isSymbolExpired()&&this._realtimeOn&&(this._datafeed.unsubscribeBars(d(this._symbolInfo,this._resolution)),this._logMessage("Unsubscribed from realtime"),this._realtimeOn=!1)}_returnHistoryDataToSubscriber(e,t){const i=this._normalizeRange(e.range),s=this._createBarsetForRange(i);s.count()>0?this._logMessage("Bars to return for request {0}: total {1} bars in [{2} ... {3}] ".format(e.key,s.count(),u(s.bars[0].time),u(s.bars[s.count()-1].time))):this._logMessage("Request {0}. Nothing to return.".format(e.key)),t.barset=s,this._endOfData&&null!==this._leftDate&&i.to<=this._leftDate&&(s.endOfData=!0),e.onHistoryCallback(s)}_createBarsetForRange(e){const t=null!==this._dwmAligner?this._dwmAligner.timeToSessionStart(e.to):e.to,i=(0,n.lowerbound)(this._cache.bars,t,(e,t)=>e.time{if(!this._destroyed)if(a)this._logMessage("getBars callback is already called before",!0);else{if(a=!0,e.length>0){const t=` [${u(e[0].time)} ... ${u(e[e.length-1].time)}]`;this._logMessage(`Receiving bars: total ${e.length} bars in ${t}, requested range: ${o}`)}else this._logMessage("Receiving bars: barset is empty, requested range: "+o);this._requesting=!1,this._processBars(e,t)}},e=>{this._destroyed||(a?this._logMessage("getBars callback is already called before",!0):(a=!0,this._requesting=!1,this._errorMessage=e||null,this._processPendingSubscribers()))})}_processBars(e,t){this._checkBars(e),this._alignBarsTime(e),e.length>0?(this._emptyResponsesCount=0,this._processFullBarset(e,t)):(this._emptyResponsesCount+=1,this._processEmptyBarset(t)),this._processPendingSubscribers()}_processEmptyBarset(e){e&&e.nextTime?(this._logMessage("Next time received: `{0}`".format(u(1e3*e.nextTime))),this._nextTime=1e3*e.nextTime):e&&e.noData?(this._logMessage("EOD received"),this._setEndOfData()):this._logMessage("nextTime or noData should present in metainfo when empty barset is returned"),50===this._emptyResponsesCount&&(this._logMessage("EOD detected due 50 empty responses in a row"),this._setEndOfData())}_setEndOfData(){this._endOfData=!0,this._cache.bars.length&&(this._leftDate=this._dealignTime(this._cache.bars[0].time))}_processFullBarset(e,t){this._putToCache(e)?null!==this._leftDate&&0!==this._cache.bars.length&&(this._interval.isTicks()?this._leftDate=this._dealignTime(this._cache.bars[0].time):this._leftDate=Math.min(this._leftDate,this._dealignTime(this._cache.bars[0].time))):this._logMessage("Incremental update failed. Starting full update. Returned data should be in the requested range.",!0),t&&t.nextTime?console.warn("nextTime should be set when there is no data in the requested period only"):t&&t.noData&&console.warn("noData should be set when there is no data in the requested period and earlier only")}_getNextSubscriptionId(){return this._nextSubscriptionId++}_checkBars(e,t=!1){
if(a.enabled("charting_library_debug_mode"))for(let i=1;i"number"!=typeof e[i][t]||!isFinite(e[i][t]))&&console.error("Wrong bars values: all OHLC values should be numbers")}}_putToCache(e){if(0===e.length)return!0;if(this._cache.bars.length===e.length&&this._cache.bars[0].time===e[0].time&&this._cache.bars[this._cache.bars.length-1].time===e[e.length-1].time)return this._logMessage("Time range of received data is the same as cached one. Skip the update."),!0;if(0!==this._cache.bars.length&&e[e.length-1].time===this._cache.bars[0].time&&this._cache.bars.splice(0,1),0!==this._cache.bars.length&&e[e.length-1].time>=this._cache.bars[0].time){const t=this._cache.bars[this._cache.bars.length-1].time===e[e.length-1].time;if(this._cache.bars=[],!t)return this._leftDate=null,!1;this._logMessage("Received history up to now instead of incremental update. Return exactly what is requested.")}return this._cache.bars=[...e,...this._cache.bars],this._checkBars(this._cache.bars,!0),!0}_putToCacheNewBar(e){const t=this._cache.bars.length,i=e.time,s=0===t?NaN:this._cache.bars[t-1].time;0===t||st.destroy()),this._threads={},delete this._datafeed}purgeCache(){this._forEachThread((e,t)=>t.destroy()),this._threads={}}subscribe(e,t,i,s,r){const n=d(e,t);this._threads[n]||(this._threads[n]=this._createThread(e,t));return n+'"'+this._threads[n].addSubscription(i,s,r)}unsubscribe(e){const t=e.split('"');if(2!==t.length)return void console.warn("Wrong guid format");const i=t[0],s=parseInt(t[1]);this._threads.hasOwnProperty(i)?this._threads[i].removeSubscription(s):console.warn("Data thread doesnt exist: "+e)}_createThread(e,t){return new p(this._datafeed,e,t,this._serverTimeOffsetGetter,(0,c.createDwmAligner)(t,e),this._resetCacheTimePeriod)}_forEachThread(e){Object.keys(this._threads).forEach(t=>e(t,this._threads[t]))}}},42934:(e,t,i)=>{"use strict";i.d(t,{barTimeToEndOfPeriod:()=>r,endOfPeriodToBarTime:()=>n});var s=i(68684);function r(e,t,i){if(i.isDays())return t;if(e.moveTo(1e3*t),i.isIntraday()){const i=e.indexOfBar(1e3*t);if(i<0)throw new Error(t+" is out of the instrument session ");return e.endOfBar(i)/1e3}
return e.startOfBar(s.SessionStage.LASTBAR_SESSION)/1e3}function n(e,t,i){if(i.isDays())return t;const s=1e3*t-1;if(e.moveTo(s),i.isIntraday()){const i=e.indexOfBar(s);if(i<0)throw new Error(t+" is out of the instrument session ");return e.startOfBar(i)/1e3}return t=e.startOfBar(0)/1e3}},79283:(e,t,i)=>{"use strict";i.d(t,{replaceGraphicsTimesWithTimePointIndexIndex:()=>n});const s=new Map([["horizlines",e=>[e.startIndex,e.endIndex]],["hhists",e=>[e.firstBarTime,e.firstBarTime]],["vertlines",e=>[e.index]],["polygons",e=>e.points.map(e=>e.index)],["backgrounds",e=>[e.start,e.stop]]]),r=new Map([["horizlines",(e,t)=>{const i=e;i.startIndex=t.get(i.startIndex),i.endIndex=t.get(i.endIndex)}],["hhists",(e,t)=>{const i=e;i.firstBarTime=t.get(i.firstBarTime),i.lastBarTime=t.get(i.lastBarTime)}],["vertlines",(e,t)=>{const i=e;i.index=t.get(i.index)}],["polygons",(e,t)=>{const i=e;for(const e of i.points)e.index=t.get(e.index)}],["backgrounds",(e,t)=>{const i=e;i.start=t.get(i.start),i.stop=t.get(i.stop)}]]);function n(e){const t=e.data&&e.data.graphicsCmds&&e.data.graphicsCmds.create;if(!t)return[];const i=new Map,n=new Set;s.forEach((e,s)=>{const r=t[s];if(r)for(const t of r)for(const s of t.data){const t=e(s);for(const e of t)i.set(e,-1),n.add(e)}});const o=Array.from(n).sort((e,t)=>e-t);return o.forEach((e,t)=>i.set(e,t)),r.forEach((e,s)=>{const r=t[s];if(r)for(const t of r)for(const s of t.data)e(s,i)}),o}},65235:(e,t,i)=>{"use strict";var s=i(67337);window.onload=function(){location.hostname.indexOf(".")>=0&&!function(){try{return/^(192|172|10)\.[0-9][0-9][0-9]\.[0-9][0-9][0-9]\.[0-9][0-9][0-9]/.test(location.hostname)||/^.*((?:\.local)|localhost)$/.test(location.hostname)}catch(e){return!1}}()&&setTimeout((function(){try{var e=function(){var e=0;return JSON.parse(urlParams.logo).image&&(e="C",s.enabled("link_to_tradingview")||(e="D")),e}();window.ga&&(0!==e&&window.ga("send","event","s",e),urlParams.utm||window.ga("send","event","l"))}catch(e){}}),3e4)}},41728:(e,t,i)=>{"use strict";var s=i(69177),r={};e.exports=function(e,t,i){var n,o,a={},l=r[i]||"out_of_session",c=!1,h=i,d=t,u=null;function p(){var e={};e.symbolname=h,e.status="ok",e.values={},e.values.current_session=l,r[h]=l,TradingView.ChartapiMessagerInstances[d].onQuotesData([d].concat([e]))}function _(){if(n)if(o)l="out_of_session";else{var e=s.isTradingNow((new Date).getTime(),n)?"market":"out_of_session";e!==l&&(l=e,p())}}return e(i,null,(function(e){c||function(e){n=new s.SessionInfo(e.timezone,e.session,e.session_holidays,e.corrections),o=e.expired,u=setInterval(_,6e4),_(),p()}(e)}),(function(){})),a.stop=function(){c=!0,u&&clearInterval(u)},a.marketStatus=function(){return l},a}},11565:(e,t,i)=>{"use strict";i.d(t,{getChartStyleStudy:()=>n});var s=i(216);class r{main(e){const t=e.new_var(s.Std.open(e)),i=e.new_var(s.Std.close(e)),r=t.get(1),n=i.get(1),o=s.Std.ohlc4(e),a=s.Std.na(t.get(1))?(s.Std.open(e)+s.Std.close(e))/2:(r+n)/2;t.set(a),i.set(o)
;const l=s.Std.max(s.Std.high(e),s.Std.max(a,o)),c=s.Std.min(s.Std.low(e),s.Std.min(a,o)),h=s.Std.volume(e),d=e.symbol;return[d.time,a,l,c,o,h,d.updatetime,d.isBarClosed]}}function n(e){if(0===e.type.indexOf("BarSetHeikenAshi@tv-basicstudies-"))return new r;const t="unknown builder type: "+e.type;throw console.error(t),new Error(t)}},37750:(e,t,i)=>{"use strict";var s=i(29823).Interval,r=i(65862).isAlignmentEnabled,n=i(11565).getChartStyleStudy,o=i(19234).decodeExtendedSymbol,a=i(983).findSuitableResolutionToBuildFrom,l=i(28930).SubsessionId,c=function(){var e=i(216),t=e.StudyEngine,c=e.BarBuilder,h=e.BarSet;function d(e){this.host=e,this.cache={}}function u(t){console.error(t),e.Std.error(t)}d.prototype.getCache=function(e){return this.cache[e]},d.prototype.putCache=function(e,t){this.cache[e]=t},d.prototype.subscribe=function(e,t,i,s,r,n,o,a,l,c,h){var d=l(o),u=function(e,t,i,s,r,n,o,a,l){var c=r.has_empty_bars?"_":"";return n+e+s+(t||"")+(i||"")+(l||"")+c+"_"+o.countBack+"_"+o.to+"_"+Boolean(a)}(e,t,i,s,o,a,d,c,h),p=this.getCache(u);return p||(p=this.createItem(e,t,i,s,o,d,a,c,h),this.putCache(u,p)),p.listeners.addListener(r,n),{key:u,listener:r}},d.prototype.unsubscribe=function(e){var t=this.getCache(e.key);t&&t.listeners.removeListener(e.listener)},d.prototype.removeUnused=function(){var e=[];for(var t in this.cache){if(this.cache[t])0===this.cache[t].listeners.listenersCount()&&e.push(t)}if(0!==e.length){for(var i=0;i{"use strict";i.d(t,{findSuitableResolutionToBuildFrom:()=>o});var s=i(29823);function r(e,t){const i=t.multiplier();for(let s=e.length-1;s>=0;s--){const r=Number(e[s]);if(i%r==0)return{error:!1,resolution:`${r}${t.letter()}`}}return{error:!0,errorMessage:n(t.value())}}
function n(e){return`Misconfiguration error: it is trying to request ${e} but we cannot build it from lower resolution`}function o(e,t){const i=s.Interval.parse(e);if((i.isWeeks()||i.isMonths())&&t.has_weekly_and_monthly){let e=["1"];i.isWeeks()&&void 0!==t.weekly_multipliers&&(e=t.weekly_multipliers),i.isMonths()&&void 0!==t.monthly_multipliers&&(e=t.monthly_multipliers);const s=r(e,i);if(!s.error)return s}if(i.isDWM()&&(void 0===t.has_daily||t.has_daily))return i.isDays()&&void 0!==t.daily_multipliers?r(t.daily_multipliers,i):void 0===t.daily_multipliers||t.daily_multipliers.includes("1")?{error:!1,resolution:"1D"}:{error:!0,errorMessage:"Misconfiguration error: it is trying to request a resolution but symbol does not support it"};if(i.isDWM())return{error:!0,errorMessage:n(i.value())};if(i.isMinutes()&&!t.has_intraday)return{error:!0,errorMessage:"Misconfiguration error: it is trying to request intraday resolution but symbol does not support it"};if(i.isSeconds()&&!t.has_seconds)return{error:!0,errorMessage:"Misconfiguration error: it is trying to request seconds resolution but symbol does not support it"};if(i.isTicks())return!t.has_ticks||i.multiplier()>1?{error:!0,errorMessage:`Misconfiguration error: it is trying to request ${i.multiplier()} ticks resolution but symbol does not support it`}:{error:!1,resolution:"1T"};const o=i.isSeconds()?t.seconds_multipliers:t.intraday_multipliers;return void 0===o?{error:!1,resolution:i.value()}:r(o,i)}},216:function(e,t,i){"use strict";var s=i(54631).StudyError,r=i(55257),n=i(80643).inherit,o=i(68684).SessionStage,a=i(29823).Interval,l=i(65862).createDwmAligner,c=i(65862).createTimeToBarTimeAligner,h=i(19234).decodeExtendedSymbol,d=i(19234).encodeExtendedSymbolOrGetSimpleSymbolString,u=i(28930).SubsessionId,p=i(37415).PrePostMarketBarIdentifier,_=i(90388).SessionSpec,m=function(){var e,t="undefined"!=typeof window?window:i.g,g=t.PineJsCalendar?t.PineJsCalendar:i(10480),f=i(69177),v=i(11075).extrapolateBarsFrontToTime,S={};function y(e,t,i,s,r){var n=r,o=0;if(isNaN(e.get(t-1)))return{index:NaN,value:NaN};for(var a=0;a1&&(this._currentIndex.set(n),this._currentValue.set(o),this._pivotIndex.set(a))}function w(e,t,i){this._deviation=e;var s=i.new_var(S.high(i)),r=i.new_var(S.low(i));s.get(2*t+1),r.get(2*t+1),this._pivotHigh=new b(t,t,b.HIGH,s,i),this._pivotLow=new b(t,t,b.LOW,r,i),this._lastVal=i.new_var(NaN),this._lastIndex=i.new_var(-1),this._lastType=i.new_var(),this._index=S.n(i),this._isNewBar=i.symbol.isNewBar,this._isBarClosed=i.symbol.isBarClosed;var n=this._lastIndex.get(1),o=this._lastVal.get(1),a=this._lastType.get(1);this._index>1&&this.addPivot(n,o,a),
this.processPivot(this._pivotHigh),this.processPivot(this._pivotLow)}function C(e){this.symbol=e,this.vars=[],this.vars_index=0,this.ctx=[],this.ctx_index=0,this.minimumAdditionalDepth=null}function P(e){this.mindepth=0,this.original=NaN,this.modified=!1,this.symbol=e}function T(e){P.call(this,e)}function x(e,t,i,s,r,n,o){var l=h(e);const c="string"==typeof l.symbol?l:l.symbol;this.ticker=c.symbol,this.currencyCode=i||c["currency-id"],this.unitId=s||c["unit-id"],this.subsessionId=o||c.session;var u=c["currency-id"]!==this.currencyCode||c["unit-id"]!==this.unitId;c["currency-id"]=this.currencyCode,c["unit-id"]=this.unitId,u&&(e=d(l)),this.tickerid=e;var p=a.parse(t);this.resolution=p.letter(),this.interval=p.multiplier(),this.period=p.value(),this.index=-1,this.time=NaN,this.open=NaN,this.high=NaN,this.low=NaN,this.close=NaN,this.volume=NaN,this.updatetime=NaN,this.isNewBar=!1,this.isBarClosed=!1,this.session=new f.SessionInfo("Etc/UTC","24x7"),this.regularSubsession=null,this.preMarketSubsession=null,this.postMarketSubsession=null,this.script=r,this.isAdditionalDepthAllowed=void 0===l.type,n&&this.set_symbolinfo(n)}function I(e,t,i,s,r,n,o,a,l,c,h){this.body=n,this.symbols=[],this.runner=r,this.inputCallback=a,this.out=o,this.nonseriesOut=l,this.ctx=new C(this.add_sym(e,t,i,s,c,h)),this.init()}function M(e){this.symbols=[],this.barsets=[],this.subscription=[],this.host=e,this.isRecalculated=!1,this.isStarted=!1,this.start()}function L(e){this.runner=new M(e)}function A(e,t){this.info=e,this.bars=t||[],this.isBarClosed=!0,this.firstLoadedTimeMs=0!==this.bars.length?this.bars[0].time:1/0,this._emptyBarCount=0,this._lastBarIsEmpty=!1}function E(e,t){this.period=e,this.generateEmptyBars=!!t}function k(){}return S.max_series_default_size=10001,S.n=function(e){return e.symbol.index+1},S.nz=function(e,t){return t=t||0,isFinite(e)?e:t},S.na=function(e){return 0===arguments.length?NaN:isNaN(e)?1:0},S.isZero=function(e){return Math.abs(e)<=1e-10},S.toBool=function(e){return isFinite(e)&&!S.isZero(e)},S.eq=function(e,t){return S.isZero(e-t)},S.neq=function(e,t){return!S.eq(e,t)},S.ge=function(e,t){return S.isZero(e-t)||e>t},S.gt=function(e,t){return!S.isZero(e-t)&&e>t},S.lt=function(e,t){return!S.isZero(e-t)&&e(i||1e-10)},S.less=function(e,t,i){return t-e>(i||1e-10)},S.compare=function(e,t,i){return S.equal(e,t,i)?0:S.greater(e,t,i)?1:-1},S.max=Math.max,S.min=Math.min,S.pow=Math.pow,S.abs=Math.abs,S.log=Math.log,S.log10=function(e){return Math.log(e)/Math.LN10},S.sqrt=Math.sqrt,S.sign=function(e){return isNaN(e)?NaN:S.isZero(e)?0:e>0?1:-1
},S.exp=Math.exp,S.sin=Math.sin,S.cos=Math.cos,S.tan=Math.tan,S.asin=Math.asin,S.acos=Math.acos,S.atan=Math.atan,S.floor=Math.floor,S.ceil=Math.ceil,S.round=Math.round,S.avg=function(e,t,i,s,r,n){if(2===arguments.length)return(e+t)/2;for(var o=0,a=0;a=0;--n){var o=t[n];if(!(o>=i.startOfBar(0))){i.moveTo(o);var a=t[n+1];s.push(a)}}s.reverse()}return s},S.iff=function(e,t,i){return S.not(e)?i:t},S.rising=function(e,t){for(var i=1;ie.get(0))return 0;return 1},S.falling=function(e,t){for(var i=1;i=0;r--){s+=(t-r)*e.get(r)}return 2*s/(t*(t+1))},S.vwma=function(e,t,i){var s=i.new_var(S.volume(i)),r=i.new_var(e.get(0)*S.volume(i));return S.sma(r,t,i)/S.sma(s,t,i)},S.swma=function(e,t){return(e.get(0)+2*e.get(1)+2*e.get(2)+e.get(3))/6},S.supertrend=function(e,t,i){var s=m.Std.atr(t,i),r=i.new_var(s).get(1),n=m.Std.hl2(i),o=n+s*e,a=n-s*e,l=m.Std.close(i),c=i.new_var(l).get(1),h=i.new_var(),d=m.Std.nz(h.get(1)),u=i.new_var(),p=m.Std.nz(u.get(1));a=S.gt(a,d)||S.lt(c,d)?a:d,h.set(a),o=S.lt(o,p)||S.gt(c,p)?o:p,u.set(o);var _=m.Std.na(),g=i.new_var(),f=g.get(1),v=-1===(_=m.Std.na(r)?1:f===p?l>o?-1:1:l2&&(T=Math.min(T,y))):(T=Math.max(T,b),S.n(s)>2&&(T=Math.max(T,w))),p.set(T),T},S.alma=function(e,t,i,s){for(var r=Math.floor(i*(t-1)),n=t/s*(t/s),o=[],a=0,l=0;lthis._currentValue.get():ithis._areaRight},b.prototype.update=function(){if(this._isNewBar&&this.isPivotFound()&&this.reset(),this.processPoint(this._index),this.isRightSideOk(this._index)){if(-1===this._pivotIndex.get()){for(var e=!0,t=0;tthis._deviation&&this.addPivot(e,t,i);else(i===b.HIGH?t>s:t0&&i.set(e),i},C.prototype.new_unlimited_var=function(e){var t=this.vars;t.length<=this.vars_index&&t.push(new T(this.symbol));var i=t[this.vars_index++];return arguments.length>0&&i.set(e),i},C.prototype.new_ctx=function(){return this.ctx.length<=this.ctx_index&&this.ctx.push(new C(this.symbol)),this.ctx[this.ctx_index++]},C.prototype.prepare=function(e){this.ctx_index=0,this.vars_index=0;for(var t=0;te&&(e=i)}return e},C.prototype.stop=function(){this.symbol=null,this.vars=null},C.prototype.setMinimumAdditionalDepth=function(e){this.minimumAdditionalDepth=e},P.prototype.valueOf=function(){return this.get(0)},P.prototype.get=function(e){return isNaN(e)&&(e=0),e=e||0,this.hist?e>=this.hist.length?(console.error("not enough depth: "+this),NaN):this._get(e):(this.mindepth=S.max(this.mindepth,e),NaN)},P.prototype._get=function(e){var t=this.hist_pos-e;return t<0&&(t+=this.hist.length),this.hist[t]},P.prototype.set=function(e){this.hist&&(this.hist[this.hist_pos]=e,this.modified=!0)},P.prototype.prepare=function(e){e===this.symbol&&(e.isNewBar?(this.original=this.get(0),!this.modified&&this.hist||this.add_hist()):this.set(this.original),this.modified=!1)},P.prototype.add_hist=function(){if(!this.hist){var e=S.na(this.mindepth)?S.max_series_default_size:S.max(this.mindepth+1,1);e=Math.round(e);for(var t=new Array(e),i=0;ie.id===u.Regular),i=e.subsessions.find(e=>e.id===u.PreMarket),s=e.subsessions.find(e=>e.id===u.PostMarket);void 0!==t&&(this.regularSubsession=new _(e.timezone,t.session,e.session_holidays,t["session-correction"])),void 0!==i&&(this.preMarketSubsession=new _(e.timezone,i.session,e.session_holidays,i["session-correction"])),void 0!==s&&(this.postMarketSubsession=new _(e.timezone,s.session,e.session_holidays,s["session-correction"]))}},x.prototype.isdwm=function(){return""!==this.resolution&&"S"!==this.resolution&&"T"!==this.resolution},x.prototype.enable_dwm_aligning=function(e,t){
this.dwm_aligner=f.newBarBuilder(this.period,e,t)},x.prototype.bartime=function(){var e=this.time;if(!this.isdwm()||isNaN(e))return e;var t=g.utc_to_cal(this.timezone,e);return this.session.spec.correctTradingDay(t),g.cal_to_utc(this.timezone,t)},x.prototype.lastbar=function(e){if(!isNaN(e.time)){var t=e.time;this.dwm_aligner&&(this.dwm_aligner.moveTo(t),t=this.dwm_aligner.startOfBar(0));var i=this.time!==t;i&&this.index>=0&&!this.isBarClosed&&(this.isNewBar=!1,this.isBarClosed=!0,this.script.calc(this)),this.time=t,this.open=e.open,this.high=e.high,this.low=e.low,this.close=e.close,this.volume=e.volume,this.updatetime=e.updatetime,this.isNewBar=i,this.isBarClosed=e.isBarClosed,this.isLastBar=e.isLastBar,this.isNewBar&&(this.index++,this.isFirstBar=0===this.index),this.script.calc(this)}},I.prototype.calc=function(e){var t=this.ctx,i=this.body;t.prepare(e);var s=i.main(t,this.inputCallback,e);if(s&&"composite"===s.type)for(let e=0;e1&&o.enable_dwm_aligning(this.symbols[0].session,o.session),o},I.prototype.maxAdditionalDepth=function(){return this.symbols[0].isAdditionalDepthAllowed?this.ctx.maxAdditionalDepth():0},I.prototype.stop=function(){this.symbols=null,this.ctx.stop(),this.ctx=null},I.prototype.get_sym=function(e){return this.symbols[e]},M.prototype.add_sym=function(e,t,i,s,r,n,o){var a=new x(e,t,i,s,r,n);return this.symbols.push(a),a},M.prototype.get_sym=function(e){return this.symbols[e]},M.prototype.out=function(e,t){if(this.nonseriesUpdate){var i=Object.assign({},this.nonseriesUpdate);t.splice(0,0,e.time),i.lastBar=t,this.host.nonseriesOut(e,i)}else this.host.out(e,t)},M.prototype.start=function(){this.isStarted=!0;var e=this.host;this._script=new I(e.tickerid,e.period,e.currencyCode,e.unitId,this,e.body,this.out.bind(this),e.input,e.nonseriesOut,e.symbolInfo,e.subsessionId);var t=this,i=[],s=this.symbols,r=Object.assign({},e.dataRange,{countBack:e.dataRange.countBack+t._script.maxAdditionalDepth()}),n=s[0];function o(t,s,r){i.push(M.feed.subscribe(t.tickerid,t.currencyCode,t.unitId,t.period,r,e.onErrorCallback,e.symbolInfo,e.sessionId,s,e.forceAlignBars,t.subsessionId))}function h(i,s){"series"===(s.nonseries?"nonseries":"series")?t.update(i,s):s.lastBar?(t.nonseriesUpdate=s,s.lastBar.isLastBar=!0,t.symbols[0].lastbar(s.lastBar),t.nonseriesUpdate=null):e.nonseriesOut(p,s)}function d(){return r}o(n,d,(function(e){!e.nonseries&&Number.isFinite(e.firstLoadedTimeMs)&&function(e){
function i(i,s){var r=c(i,s)(e),n=l(i,s);return null!==n&&(r=n.timeToExchangeTradingDay(r)),{to:r,countBack:t._script.maxAdditionalDepth()}}for(var r=1;r=0;i--)for(var s=e[i],r=this.barsets[i],n=r.count(),o=0;o{"use strict";const s=i(45112).getHexColorByName;var r=i(216);i(27595);var n=i(99294).pivotPointsStandardStudyItem,o=i(62839).volumeProfileVisibleRangeStudyItem,a=i(5748).volumeProfileFixedRangeVbPStudyItem,l=i(5748).volumeProfileFixedRangeBSStudyItem,c=i(65754).spreadStudyItem,h=i(82366).ratioStudyItem,d=i(13463).regressionTrendStudyItem;const u=s("color-ripe-red-400"),p=s("color-minty-green-400");JSServer.studyLibrary=JSServer.studyLibrary.concat([{name:"Compare",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!0,defaults:{styles:{compare:{linestyle:0,linewidth:2,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#9C27B0"}},inputs:{source:"close",symbol:""}},plots:[{id:"compare",type:"line"}],styles:{compare:{title:"Plot",histogramBase:0}},description:"Compare",shortDescription:"Compare",is_price_study:!0,inputs:[{defval:"close",id:"source",name:"Source",options:["open","high","low","close","hl2","hlc3","ohlc4"],type:"text"},{id:"symbol",name:"Symbol",type:"symbol",isHidden:!0}],id:"Compare@tv-basicstudies-1",format:{type:"inherit"}},constructor:function(){this.init=function(e,t){this._context=e,this._context.new_sym(t(1),r.Std.period(this._context))},this.main=function(e,t){this._context=e;var i=this._context.new_unlimited_var(this._context.symbol.time);this._context.select_sym(1);var s=this._context.new_unlimited_var(this._context.symbol.time),n=r.Std[t(0)](this._context),o=this._context.new_unlimited_var(n);return this._context.select_sym(0),[o.adopt(s,i,0)]}}},{name:"Overlay",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!0,defaults:{styles:{},inputs:{symbol:""}},plots:[{id:"open",type:"line"},{id:"high",type:"line"},{id:"low",type:"line"},{id:"close",type:"line"}],styles:{open:{title:"Open"},high:{title:"High"},low:{title:"Low"},close:{title:"Close"}},description:"Overlay",shortDescription:"Overlay",is_price_study:!1,inputs:[{id:"symbol",name:"symbol",defval:"",type:"symbol",isHidden:!0}],
id:"Overlay@tv-basicstudies-1",format:{type:"price",precision:4}},constructor:function(){this.init=function(e,t){this._context=e,this._context.new_sym(t(0),r.Std.period(this._context))},this.main=function(e,t){this._context=e;var i=this._context.new_unlimited_var(this._context.symbol.time);this._context.select_sym(1);var s=this._context.new_unlimited_var(this._context.symbol.time),n=this._context.new_unlimited_var(r.Std.open(this._context)),o=this._context.new_unlimited_var(r.Std.high(this._context)),a=this._context.new_unlimited_var(r.Std.low(this._context)),l=this._context.new_unlimited_var(r.Std.close(this._context));return this._context.select_sym(0),[n.adopt(s,i,1),o.adopt(s,i,1),a.adopt(s,i,1),l.adopt(s,i,1)]}}},{name:"Volume",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{vol:{linestyle:0,linewidth:1,plottype:5,trackPrice:!1,transparency:50,visible:!0,color:"#000080"},vol_ma:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!1,color:"#2196F3"},smoothedMA:{linestyle:0,linewidth:1,plottype:0,trackPrice:!1,transparency:0,visible:!1,color:"#2196F3"}},palettes:{volumePalette:{colors:{0:{color:u,width:1,style:0},1:{color:p,width:1,style:0}}}},inputs:{showMA:!1,length:20,col_prev_close:!1,symbol:"",smoothingLine:"SMA",smoothingLength:9}},plots:[{id:"vol",type:"line"},{id:"volumePalette",palette:"volumePalette",target:"vol",type:"colorer"},{id:"vol_ma",type:"line"},{id:"smoothedMA",type:"line"}],styles:{vol:{title:"Volume",histogramBase:0},vol_ma:{title:"Volume MA",histogramBase:0},smoothedMA:{title:"Smoothed MA",histogramBase:0}},description:"Volume",shortDescription:"Volume",is_price_study:!1,palettes:{volumePalette:{colors:{0:{name:"Falling"},1:{name:"Growing"}}}},inputs:[{id:"symbol",name:"Other Symbol",defval:"",type:"symbol",optional:!0,isHidden:!1},{id:"showMA",name:"show MA",defval:!1,type:"bool",isHidden:!0},{id:"length",name:"MA Length",defval:20,type:"integer",min:1,max:2e3},{defval:!1,id:"col_prev_close",name:"Color based on previous close",type:"bool"},{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:"Volume@tv-basicstudies-1",format:{type:"volume"}},constructor:function(){this.init=function(e,t){this._context=e,""!==t(0)&&this._context.new_sym(t(0),r.Std.period(this._context))},this.f_0=function(e,t){return r.Std.gt(e,t)?0:1},this.main=function(e,t){this._context=e,this._input=t;var i=r.Std.volume(this._context),s=r.Std.open(this._context),n=r.Std.close(this._context),o=this._context.new_var(this._context.symbol.time),a=this._input(4),l=this._input(5);if(this._context.setMinimumAdditionalDepth(this._input(2)+l),""!==this._input(0)){this._context.select_sym(1);var c=this._context.new_var(this._context.symbol.time),h=this._context.new_var(r.Std.volume(this._context)),d=this._context.new_var(r.Std.open(this._context)),u=this._context.new_var(r.Std.close(this._context));i=h.adopt(c,o,1),
s=d.adopt(c,o,1),n=u.adopt(c,o,1),this._context.select_sym(0)}var p,_,m=this._context.new_var(i),g=r.Std.sma(m,this._input(2),this._context),f=this._context.new_var(g),v=this._context.new_var(n);return p=v.get(1)&&this._input(3)?this.f_0(v.get(1),n):this.f_0(s,n),"EMA"===a?_=r.Std.ema(f,l,this._context):"WMA"===a?_=r.Std.wma(f,l,this._context):"SMA"===a&&(_=r.Std.sma(f,l,this._context)),[i,p,g,_]}}},{name:"ZigZag",metainfo:{_metainfoVersion:52,isTVScript:!1,isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:2,plottype:0,trackPrice:!1,transparency:0,visible:!0,color:"#2196F3"}},inputs:{in_0:5,in_1:10}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",target:"plot_0",type:"dataoffset"}],styles:{plot_0:{title:"Plot",histogramBase:0,joinPoints:!1}},description:"Zig Zag",shortDescription:"ZigZag",is_price_study:!0,classId:"ScriptWithDataOffset",inputs:[{id:"in_0",name:"deviation",defval:5,type:"float",min:.001,max:100},{id:"in_1",name:"depth",defval:10,type:"integer",min:2,max:1e3}],id:"ZigZag@tv-basicstudies-1",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=i/100,o=Math.ceil(s/2);return[r.Std.zigzag(n,o,this._context),r.Std.zigzagbars(n,o,this._context)]}}},{name:"Sessions",metainfo:{_metainfoVersion:52,defaults:{graphics:{vertlines:{sessBreaks:{color:"#4985e7",style:2,visible:!1,width:1}},backgrounds:{preMarket:{color:"#FF9800",transparency:92,visible:!0},postMarket:{color:"#2196F3",transparency:92,visible:!0}}},linkedToSeries:!0},description:"Sessions",graphics:{vertlines:{sessBreaks:{name:"Session Break",halign:"left"}},backgrounds:{preMarket:{name:"Pre market"},postMarket:{name:"Post market"}}},id:"Sessions@tv-basicstudies-1",inputs:[],is_hidden_study:!0,is_price_study:!0,name:"Sessions@tv-basicstudies",palettes:{},plots:[],shortDescription:"Sessions",format:{type:"inherit"}},constructor:function(){function e(e,t){return{id:e,index:e,extendBottom:!0,extendTop:!0}}function t(e){return{id:e.start,start:e.start,stop:e.stop}}this.init=function(){this._times=[]},this._getVerticalLineData=function(t){return r.Std.selectSessionBreaks(t,this._times).map(e)},this._getPreAndPostMarketBackgroundsData=function(e){const i=r.Std.selectPreAndPostMarketTimes(e,this._times);return{preMarket:i.preMarket.map(t),postMarket:i.postMarket.map(t)}},this.main=function(e,t){if(r.Std.isdwm(e))return null;var i=r.Std.time(e);if(isNaN(i))return null;var s=this._times.length;if(0!==s&&this._times[s-1]===i||this._times.push(i),!e.symbol.isLastBar||!e.symbol.isNewBar)return null;var n=this._getVerticalLineData(e),o=this._getPreAndPostMarketBackgroundsData(e);return 0===n.length&&0===o.preMarket.length&&0===o.postMarket?null:{nonseries:!0,type:"study_graphics",data:{graphicsCmds:{create:{vertlines:[{styleId:"sessBreaks",data:n}],backgrounds:[{styleId:"preMarket",data:o.preMarket},{styleId:"postMarket",data:o.postMarket}]},erase:[{action:"all"}]}}}}}},{name:"SuperTrend",metainfo:{_metainfoVersion:52,isTVScript:!1,
isTVScriptStub:!1,is_hidden_study:!1,defaults:{styles:{plot_0:{linestyle:0,linewidth:3,plottype:0,trackPrice:!1,transparency:35,visible:!0,color:"#000080"},plot_2:{linestyle:0,linewidth:3,plottype:"shape_arrow_up",trackPrice:!1,location:"BelowBar",transparency:35,visible:!0,color:"#00FF00"},plot_3:{linestyle:0,linewidth:3,plottype:"shape_arrow_down",trackPrice:!1,location:"AboveBar",transparency:35,visible:!0,color:"#FF0000"}},palettes:{palette_0:{colors:{0:{color:"#008000",width:3,style:0},1:{color:"#800000",width:3,style:0}}}},inputs:{in_0:10,in_1:3}},plots:[{id:"plot_0",type:"line"},{id:"plot_1",palette:"palette_0",target:"plot_0",type:"colorer"},{id:"plot_2",type:"shapes"},{id:"plot_3",type:"shapes"}],styles:{plot_0:{title:"SuperTrend",histogramBase:0,joinPoints:!1,isHidden:!1},plot_2:{title:"Up Arrow",histogramBase:0,joinPoints:!1,isHidden:!1},plot_3:{title:"Down Arrow",histogramBase:0,joinPoints:!1,isHidden:!1}},description:"SuperTrend",shortDescription:"SuperTrend",is_price_study:!0,palettes:{palette_0:{colors:{0:{name:"Color 0"},1:{name:"Color 1"}},valToIndex:{0:0,1:1}}},inputs:[{id:"in_0",name:"Length",defval:10,type:"integer",min:1,max:100},{id:"in_1",name:"Factor",defval:3,type:"float",min:1,max:100}],id:"SuperTrend@tv-basicstudies-1",scriptIdPart:"",name:"SuperTrend",isCustomIndicator:!0,format:{type:"inherit"}},constructor:function(){this.main=function(e,t){var i=t(0),s=t(1),[n,o]=r.Std.supertrend(s,i,e),a=e.new_var(o).get(1);return[n,-1===o?0:1,-1===o&&a!==o?1:NaN,1===o&&a!==o?1:NaN]}}},n,o,a,l,c,h,d])},99294:(e,t,i)=>{"use strict";i.d(t,{pivotPointsStandardStudyItem:()=>d});var s=i(216),r=i(29823),n=i(983);class o{constructor(){this.p=NaN,this.r1=NaN,this.s1=NaN,this.r2=NaN,this.s2=NaN,this.r3=NaN,this.s3=NaN,this.r4=NaN,this.s4=NaN,this.r5=NaN,this.s5=NaN,this.startIndex__t=NaN,this.endIndex__t=NaN}}class a{constructor(){this.pivots=[]}}function l(e,t){e.setUTCMonth(e.getUTCMonth()+t)}function c(e,t){if(s.Std.ismonthly(e)){let i=new Date(t);return i.getUTCDay()=1&&t.multiplier()<=15?"1D":"1W";case r.ResolutionKind.Seconds:case r.ResolutionKind.Ticks:return"1D"}throw new Error("Unexpected resolution type: "+e.symbol.resolution)}(e);case"Daily":return"1D";case"Weekly":return"1W";case"Monthly":return"1M";case"Yearly":return"12M";default:throw new Error("No such pivTimeFrame: "+t)}}const d={name:"Pivot Points Standard",metainfo:{_metainfoVersion:44,defaults:{inputs:{kind:"Traditional",lookBack:15,
pivTimeFrame:"Auto",showHistoricalPivots:!0},precision:"4"},description:"Pivot Points Standard",id:"PivotPointsStandard@tv-basicstudies-80",inputs:[{defval:"Traditional",id:"kind",name:"Type",options:["Traditional","Fibonacci","Woodie","Classic","DeMark","Camarilla"],type:"text"},{defval:!0,id:"showHistoricalPivots",name:"Show historical pivots",type:"bool"},{defval:"Auto",id:"pivTimeFrame",name:"Pivots Timeframe",options:["Auto","Daily","Weekly","Monthly","Yearly"],type:"text"},{defval:15,id:"lookBack",max:5e3,min:1,name:"Number of Pivots Back",type:"integer"}],is_price_study:!0,linkedToSeries:!0,shortDescription:"Pivots",format:{type:"price",precision:4}},constructor:class{constructor(){this._secondaryRes="1D",this._firstMainSeriesBarTime=NaN}init(e,t){const i=t(0),r=t(1),o=t(2),l=t(3);this._data=new a,this._firstMainSeriesBarTime=NaN,this._kindPP=function(e){switch(e){case"Traditional":return 0;case"Fibonacci":return 1;case"Woodie":return 2;case"Classic":return 3;case"DeMark":return 4;case"Camarilla":return 5;default:throw new Error("Unknown kind "+e)}}(i),this._showHistoricalPivots=r,this._historicalPivotsToKeep=l,this._pivTimeFrame=o,this._isValidResolution=function(e,t){return(!s.Std.isdaily(e)||"Daily"!==t)&&((!s.Std.isweekly(e)||"Daily"!==t&&"Weekly"!==t)&&(!s.Std.ismonthly(e)||"Daily"!==t&&"Weekly"!==t&&"Monthly"!==t))}(e,this._pivTimeFrame),this._isValidResolution||s.Std.error("You cannot see this pivot timeframe on this resolution"),this._isValidResolution&&(this._secondaryRes=h(e,this._pivTimeFrame),void 0!==e.symbol.info&&(0,n.findSuitableResolutionToBuildFrom)(this._secondaryRes,e.symbol.info).error&&(this._isValidResolution=!1,s.Std.error(`Resolution ${this._secondaryRes} is not supported for this symbol`))),e.new_sym(e.symbol.tickerid,this._secondaryRes)}main(e,t,i){if(!this._isValidResolution)return null;if(e.is_main_symbol(i))return isNaN(this._firstMainSeriesBarTime)&&(this._firstMainSeriesBarTime=e.symbol.time,this._removeUnusedPivots()),e.symbol.isLastBar&&e.symbol.isNewBar?this._createResponse():null;e.select_sym(1);const r=e.new_var(s.Std.open(e)),n=e.new_var(s.Std.high(e)),a=e.new_var(s.Std.low(e)),l=e.new_var(s.Std.close(e)),h=e.new_var(s.Std.time(e)),d=this._data,u=r.get(0),p=h.get(0),_=r.get(1),m=n.get(1),g=a.get(1),f=l.get(1),v=e.symbol.isLastBar;if(0!==d.pivots.length&&e.symbol.isNewBar){const e=d.pivots[d.pivots.length-1];e.endIndex__t!==p&&(e.endIndex__t=p)}if(0===e.symbol.index||!e.symbol.isNewBar)return e.select_sym(0),null;const S=function(e,t,i,r,n,a,l,c){const h=new o;let d=NaN;const u=i-r;switch(c){case 0:d=(i+r+n)/3,h.p=d,h.r1=2*d-r,h.s1=2*d-i,h.r2=d+(i-r),h.s2=d-(i-r),h.r3=2*d+(i-2*r),h.s3=2*d-(2*i-r),h.r4=3*d+(i-3*r),h.s4=3*d-(3*i-r),h.r5=4*d+(i-4*r),h.s5=4*d-(4*i-r);break;case 1:d=(i+r+n)/3,h.p=d,h.r1=d+.382*u,h.s1=d-.382*u,h.r2=d+.618*u,h.s2=d-.618*u,h.r3=d+u,h.s3=d-u;break;case 2:d=(i+r+2*e)/4,h.p=d,h.r1=2*d-r,h.s1=2*d-i,h.r2=d+u,h.s2=d-u,h.r3=i+2*(d-r),h.s3=r-2*(i-d),h.r4=h.r3+u,h.s4=h.s3-u;break;case 3:d=(i+r+n)/3,h.p=d,h.r1=2*d-r,h.s1=2*d-i,h.r2=d+u,h.s2=d-u,h.r3=d+2*u,
h.s3=d-2*u,h.r4=d+3*u,h.s4=d-3*u;break;case 4:let o=NaN;o=s.Std.equal(t,n)?i+r+2*n:s.Std.greater(n,t)?2*i+r+n:2*r+i+n,d=o/4,h.p=d,h.r1=o/2-r,h.s1=o/2-i;break;case 5:d=(i+r+n)/3,h.p=d,h.r1=n+1.1*u/12,h.s1=n-1.1*u/12,h.r2=n+1.1*u/6,h.s2=n-1.1*u/6,h.r3=n+1.1*u/4,h.s3=n-1.1*u/4,h.r4=n+1.1*u/2,h.s4=n-1.1*u/2;break;default:throw new Error("Unknown kind")}return h.startIndex__t=a,h.endIndex__t=l,h}(u,_,m,g,f,p,c(e,p),this._kindPP);return e.select_sym(0),this._showHistoricalPivots||(d.pivots=[]),d.pivots.push(S),d.pivots.length>this._historicalPivotsToKeep&&d.pivots.shift(),v?this._createResponse():null}_createResponse(){return 0===this._data.pivots.length?null:{nonseries:!0,type:"non_series_data",data:{data:this._data}}}_removeUnusedPivots(){const e=Math.max(this._data.pivots.findIndex(e=>e.startIndex__t>this._firstMainSeriesBarTime)-1,0);e>0&&this._data.pivots.splice(0,e)}}}},82366:(e,t,i)=>{"use strict";i.d(t,{ratioStudyItem:()=>n});var s=i(84707);class r extends s.SpreadRatioBase{_doCalculation(e,t,i,s){return e*t/(i*s)}}const n={name:"Ratio",metainfo:{_metainfoVersion:15,defaults:s.spreadRatioDefaults,plots:s.spreadRatioPlots,styles:s.spreadRatioStyles,description:"Ratio",shortDescription:"Ratio",is_price_study:!1,inputs:s.spreadRatioInputs,id:"Ratio@tv-basicstudies-1",format:{type:"price",precision:2}},constructor:r}},13463:(e,t,i)=>{"use strict";i.d(t,{regressionTrendStudyItem:()=>n});var s=i(216);function r(e,t,i){const r={slope:NaN,average:NaN,intercept:NaN,stdDev:NaN,upDev:NaN,downDev:NaN,pearsons:NaN};return 0===e.length||(function(e,t){let i=0,s=0,r=0,n=0;for(let t=0;tn&&(n=u),u=d-i[s],u>o&&(o=u),u=e[s];const _=u-r.average,m=d-p;u-=d,a+=u*u,l+=_*_,c+=m*m,h+=_*m,d+=r.slope}r.stdDev=Math.sqrt(a/(0===u?1:u)),r.pearsons=s.Std.isZero(l)||s.Std.isZero(c)?0:h/Math.sqrt(l*c),r.upDev=n,r.downDev=o}(e,t,i,r)),r}const n={name:"Regression Trend",metainfo:{_metainfoVersion:51,description:"Regression Trend",format:{type:"inherit"},id:"RegressionTrend@tv-basicstudies-144",is_hidden_study:!0,is_price_study:!0,shortDescription:"Reg Trend",defaults:{inputs:{"first bar time":0,"last bar time":0,"lower diviation":-2,source:"close","upper diviation":2,"use lower diviation":!0,"use upper diviation":!0}},inputs:[{defval:2,id:"upper diviation",max:500,min:-500,name:"Upper Deviation",type:"float"},{defval:-2,id:"lower diviation",max:500,min:-500,name:"Lower Deviation",type:"float"},{defval:!0,id:"use upper diviation",name:"Use Upper Deviation",type:"bool"},{defval:!0,id:"use lower diviation",name:"Use Lower Deviation",type:"bool"},{defval:0,id:"first bar time",isHidden:!0,max:253370764800,min:-253370764800,name:"First bar time",type:"time"},{defval:0,id:"last bar time",isHidden:!0,max:253370764800,min:-253370764800,
name:"Last bar time",type:"time"},{defval:"close",id:"source",name:"Source",options:["open","high","low","close","hl2","hlc3","ohlc4"],type:"source"}],plots:[]},constructor:class{constructor(){this._resultSent=!1}init(e,t){this._resultSent=!1,this._data={baseLine:{startPrice:NaN,endPrice:NaN},upLine:{startPrice:NaN,endPrice:NaN},downLine:{startPrice:NaN,endPrice:NaN},pearsons:NaN,startIndex__t:NaN,endIndex__t:NaN}}main(e,t){const i=t(6),n=e.new_unlimited_var(s.Std.time(e)),o=e.new_unlimited_var(s.Std.high(e)),a=e.new_unlimited_var(s.Std.low(e)),l=e.new_unlimited_var(s.Std[i](e));if(!e.symbol.isLastBar)return null;if(this._resultSent)return null;const c=t(0),h=t(1),d=t(2),u=t(3),p=t(4),_=t(5),m=n.indexOf(p),g=n.indexOf(_),f=[],v=[],S=[],y=[];for(let e=m;e>=g;--e)f.push(n.get(e)),v.push(o.get(e)),S.push(a.get(e)),y.push(l.get(e));return this._updateData(f,d,c,u,h,p,_,r(y,v,S)),this._resultSent=!0,{type:"non_series_data",nonseries:!0,data:{data:this._data}}}_updateData(e,t,i,s,r,n,o,a){const l=e.length-1;this._data.baseLine.startPrice=a.intercept,this._data.baseLine.endPrice=a.intercept+a.slope*l;const c=a.intercept+(t?a.stdDev*i:a.upDev);this._data.upLine.startPrice=c,this._data.upLine.endPrice=c+a.slope*l;const h=a.intercept+(s?a.stdDev*r:-a.downDev);this._data.downLine.startPrice=h,this._data.downLine.endPrice=h+a.slope*l,this._data.pearsons=a.pearsons,this._data.startIndex__t=n,this._data.endIndex__t=o}}}},84707:(e,t,i)=>{"use strict";i.d(t,{SpreadRatioBase:()=>r,spreadRatioDefaults:()=>n,spreadRatioInputs:()=>o,spreadRatioPlots:()=>a,spreadRatioStyles:()=>l});var s=i(216);class r{init(e,t){e.new_sym(t(1),s.Std.period(e)),this._source=t(0),this._scaleFactor1=1,this._scaleFactor2=1}main(e,t){const i=e.symbol.time,r=s.Std[this._source](e);e.select_sym(1);const n=s.Std[this._source](e),o=e.new_unlimited_var(n),a=e.new_unlimited_var(e.symbol.time);if(e.select_sym(0),isNaN(i))return null;let l=a.indexOf(i);-1!==l&&a.get(l)!==i&&(l=-1);const c=l<0?NaN:o.get(l);return[this._doCalculation(this._scaleFactor1,r,this._scaleFactor2,c)]}}const n={styles:{plot1:{linestyle:0,linewidth:2,plottype:0,trackPrice:!1,transparency:35,visible:!0,color:"#800080"}},precision:2,inputs:{source:"close",symbol2:""}},o=[{defval:"close",id:"source",name:"Source",options:["open","high","low","close","hl2","hlc3","ohlc4"],type:"text"},{id:"symbol2",name:"Symbol",type:"symbol",confirm:!0}],a=[{id:"plot1",type:"line"}],l={plot1:{title:"Plot",histogramBase:0}}},65754:(e,t,i)=>{"use strict";i.d(t,{spreadStudyItem:()=>n});var s=i(84707);class r extends s.SpreadRatioBase{_doCalculation(e,t,i,s){return e*t-i*s}}const n={name:"Spread",metainfo:{_metainfoVersion:15,defaults:s.spreadRatioDefaults,plots:s.spreadRatioPlots,styles:s.spreadRatioStyles,description:"Spread",shortDescription:"Spread",is_price_study:!1,inputs:s.spreadRatioInputs,id:"Spread@tv-basicstudies-1",format:{type:"price",precision:2}},constructor:r}},9345:(e,t,i)=>{"use strict";i.d(t,{VbPCheckHaveVolumeExpr:()=>r});var s=i(216);class r{constructor(e){this._haveAnyVolume=!1,
this._isDisabled=!1,this._seriesGetter=e}update(e,t){if(this._haveAnyVolume||this._isDisabled)return;const i=this._seriesGetter.volume().get(e);0!==i&&Number.isFinite(i)&&(this._haveAnyVolume=!0),t&&(this._haveAnyVolume||s.Std.error("The data vendor doesn't provide volume data for this symbol."),this._isDisabled=!0)}}},62876:(e,t,i)=>{"use strict";i.d(t,{VolumeByPriceExpr:()=>_});var s=i(88537),r=i(64514),n=i(29823),o=i(216),a=i(31738);class l extends a.GraphicsObj{constructor(e,t,i,r,n,o){super(e),(0,s.assert)(t({index:e.index,offset:e.offset,level:e.level}))}}}class u extends a.GraphicsObj{constructor(e,t,i,s,r=!1,n=!1){super(e),this._endIndex=this._mixinJSONObject.createTimeField(i,"endIndex"),this._extendLeft=this._mixinJSONObject.createField(r,"extendLeft"),this._extendRight=this._mixinJSONObject.createField(n,"extendRight"),this._level=this._mixinJSONObject.createDoubleField(s,"level"),this._startIndex=this._mixinJSONObject.createTimeField(t,"startIndex")}isNaN(){return super.isNaN()||Number.isNaN(this._level.get())||this._startIndex.get()<0||this._endIndex.get()<0||this._startIndex.get()===this._endIndex.get()&&!this._extendLeft.get()&&!this._extendRight.get()}jsonName(){return"horizlines"}primitiveData(){return{id:this.id(),startIndex:this._startIndex.get(),endIndex:this._endIndex.get(),extendLeft:this._extendLeft.get(),extendRight:this._extendRight.get(),level:this._level.get()}}startIndex(){return this._startIndex.get()}setStartIndex(e){this._startIndex.set(e)&&this._processObjUpdate()}endIndex(){return this._endIndex.get()}setEndIndex(e){this._endIndex.set(e)&&this._processObjUpdate()}level(){return this._level.get()}setLevel(e){this._level.set(e)&&this._processObjUpdate()}isExtendLeft(){return this._extendLeft.get()}setExtendLeft(e){this._extendLeft.set(e)&&this._processObjUpdate()}extendLeft(){return this.isExtendLeft()}isExtendRight(){return this._extendRight.get()}setExtendRight(e){this._extendRight.set(e)&&this._processObjUpdate()}extendRight(){return this.isExtendRight()}}class p{constructor(){this._map=new Map}get(e){const t=this._innerMap(e.start);return t&&t.get(e.end)}set(e,t){this._innerMap(e.start,!0).set(e.end,t)}clear(){this._map.clear()}size(){let e=0;return this._map.forEach(t=>e+=t.size),e}_innerMap(e,t){let i=this._map.get(e);return void 0===i&&t&&(i=new Map,this._map.set(e,i)),i}}class _{constructor(e,t,i,r,n,o,a,l,h,d,u,_,m,g){this._freezedBoxes=new c.GraphicsList,this._freezedHists=new c.GraphicsList,this._freezedPocs=new c.GraphicsList,this._freezedVAHists=new c.GraphicsList,this._currentHistsGr=new c.GraphicsList,this._currentVAHistsGr=new c.GraphicsList,this._currentHists=[],this._currentHistsMap=new p,this._currentBox=null,this._currentPoc=null,this._historyBarSet=[],this._prevRtBar=null,this._minPrice=Number.POSITIVE_INFINITY,this._maxPrice=Number.NEGATIVE_INFINITY,this._leftBoxTime=null,this._rightBoxTime=null,this._needRecalc=!1,this._largestHistItem=null,this._rowsLayout=null,this._currentVAStart=0,this._currentVAEnd=0,this._previousVAStart=0,this._previousVAEnd=0,this._idsGenerator=null,(0,s.assert)(1===e||2===e),this._numOfSubHists=e,this._outHists=r,this._outBoxLines=n,this._outPocLines=o,this._extendPocLeftRight=a,this._outVAHists=l,this._vaVolumePercent=h,this._rowsLayoutSupplier=d,this._outHists.addStable(this._freezedHists),this._outVAHists.addStable(this._freezedVAHists),this._maxHHistItems=u,this._layoutIsAutoselected=g,this._leftBoxTimeMutable=_,this._rightBoxTimeMutable=m,this._ctx=t,this._seriesGetter=i}update(e){this._supplyRowsLayout(this._ctx),
null===this._currentBox&&this._initCurrentBox(),null===this._currentPoc&&this._initCurrentPoc();const t=this._timeScale().get(e);this._leftBoxTime=this._leftBoxTimeMutable,this._rightBoxTime=this._rightBoxTimeMutable,this._ctx.symbol.isLastBar&&!Number.isNaN(this._rightBoxTime)&&(this._rightBoxTime=Math.min(t+n.Interval.parse(this._ctx.symbol.interval+this._ctx.symbol.resolution).inMilliseconds(t)-1,this._rightBoxTime));const i=o.Std.greaterOrEqual(this._seriesClose().get(e),this._seriesOpen().get(e)),s={high:this._seriesHigh().get(e),low:this._seriesLow().get(e),volume:this._seriesVol().get(e),isUp:i,time:t};this._updateCurrentHistogram(s),this._currentHists.length>0&&(this._largestHistItem=this._getLargestHistItem(),this._updateCurrentPoc(),this._seriesGetter.developingPoc().set(this._currentPoc.level()),this._updateValueArea(),this._vaVolumePercent>0&&(this._seriesGetter.developingVAHigh().set(this._currentHists[this._currentVAEnd].priceHigh()),this._seriesGetter.developingVALow().set(this._currentHists[this._currentVAStart].priceLow()))),this._updateCurrentBox(),this._rebuildOutData()}setIdsGeneratorProxy(e){this._idsGenerator=e}nextGraphicsObjId(){return(0,s.ensureNotNull)(this._idsGenerator).nextGraphicsObjId()}pushEraseObjCmd(e,t){(0,s.ensureNotNull)(this._idsGenerator).pushEraseObjCmd(e,t)}popEraseCmds(){return(0,s.ensureNotNull)(this._idsGenerator).popEraseCmds()}_timeScale(){return this._seriesGetter.time()}_seriesLow(){return this._seriesGetter.low()}_seriesHigh(){return this._seriesGetter.high()}_seriesVol(){return this._seriesGetter.volume()}_seriesOpen(){return this._seriesGetter.open()}_seriesClose(){return this._seriesGetter.close()}_freezeCurrentHistogramAndCleanup(){null!==this._currentBox&&this._freezedBoxes.add(this._currentBox),o.Std.greater(this._getVolume(this._currentHists),0)&&(this._freezedHists.addAll(this._currentHistsGr),this._freezedVAHists.addAll(this._currentVAHistsGr),null!==this._currentPoc&&this._freezedPocs.add(this._currentPoc)),this._currentHists=[],this._currentHistsGr.clear(),this._currentHistsMap.clear(),this._initCurrentBox(),this._initCurrentPoc(),this._currentVAHistsGr.clear(),this._historyBarSet=[],this._minPrice=Number.POSITIVE_INFINITY,this._maxPrice=Number.NEGATIVE_INFINITY,this._prevRtBar=null,this._leftBoxTime=null,this._rightBoxTime=null}_supplyRowsLayout(e){null===this._rowsLayout&&e.symbol.isFirstBar&&e.symbol.isNewBar&&(this._rowsLayout=this._rowsLayoutSupplier())}_updateCurrentHistogram(e){if(this._needRecalc=!1,o.Std.greater(this._minPrice,e.low)&&(this._minPrice=e.low,this._needRecalc=!0),o.Std.less(this._maxPrice,e.high)&&(this._maxPrice=e.high,this._needRecalc=!0),this._ctx.symbol.isBarClosed&&this._historyBarSet.length>0){const t=this._historyBarSet[this._historyBarSet.length-1];t.time===e.time&&(this._prevRtBar=t,this._historyBarSet.pop())}this._needRecalc&&0===(0,s.ensureNotNull)(this._rowsLayout).type()?(this._recalculateCurrentResultsOnHistoryBarSet(),this._applyUpdateToCurrentResults(e,!1)):this._applyUpdateToCurrentResults(e,!0),
this._ctx.symbol.isBarClosed?((0,s.assert)(null===this._prevRtBar||e.time===this._prevRtBar.time),this._historyBarSet.push(e),this._prevRtBar=null):this._prevRtBar=e}_getMidLevel(e){return(e.priceHigh()+e.priceLow())/2}_getMidLevelFromList(e){return e.length%2==0?e[e.length/2].priceLow():this._getMidLevel(e[Math.floor(e.length/2)])}_getLargestHistItem(){let e=[],t=this._currentHists[0];for(const i of this._currentHists)o.Std.greater(i.ratesSum(),t.ratesSum())?(t=i,e=[t]):o.Std.equal(i.ratesSum(),t.ratesSum())&&e.push(i);if(e.length>1){const i=this._getMidLevelFromList(this._currentHists);t=e[e.length-1];for(let s=e.length-2;s>=0;s--){const r=e[s];o.Std.lessOrEqual(Math.abs(this._getMidLevel(r)-i),Math.abs(this._getMidLevel(t)-i))&&(t=r)}}return t}_initCurrentPoc(){this._currentPoc=new u(this,0,0,0)}_updateCurrentPoc(){const e=(0,s.ensureNotNull)(this._currentPoc);e.setStartIndex((0,s.ensureNotNull)(this._leftBoxTime)),e.setEndIndex((0,s.ensureNotNull)(this._rightBoxTime)),e.setExtendLeft(this._extendPocLeftRight),e.setExtendRight(this._extendPocLeftRight);const t=this._getMidLevel((0,s.ensureNotNull)(this._largestHistItem));e.setLevel(t)}_getVolume(e){let t=0;for(const i of e)t+=i.ratesSum();return t}_getPocHistItemIndex(){for(let e=0;e=0,"ERROR - PocHistItemIndex == "+e),this._currentVAStart=e-1,this._currentVAEnd=e+1;const t=this._getVolume(this._currentHists)*this._vaVolumePercent*.01;let i=this._currentHists[e].ratesSum(),r=0,n=null;for(;o.Std.lessOrEqual(i+r,t)&&(i+=r,0===n?--this._currentVAStart:1===n&&++this._currentVAEnd,-1!==this._currentVAStart||this._currentVAEnd!==this._currentHists.length);){let t,i;if(this._currentVAStart>-1)if(t=this._currentHists[this._currentVAStart].ratesSum(),this._currentVAEndthis._getMidLevel(this._currentHists[this._currentVAStart])&&e.priceLow()0&&(e=this._currentHists[0].priceLow(),t=this._currentHists[this._currentHists.length-1].priceHigh());const i=[],r=(0,s.ensureNotNull)(this._leftBoxTime),n=(0,s.ensureNotNull)(this._rightBoxTime);i.push(new h(r,e)),i.push(new h(r,t)),i.push(new h(n,t)),i.push(new h(n,e)),(0,s.ensureNotNull)(this._currentBox).setPoints(i)}_recalculateCurrentResultsOnHistoryBarSet(){for(let e=0;e0&&(this._largestHistItem=this._getLargestHistItem(),this._updateCurrentPoc()),this._updateCurrentBox()}_applyUpdateToCurrentResults(e,t){t&&null!==this._prevRtBar&&this._addHistoryBarToHistogram(this._prevRtBar,this._historyBarSet.length-1,this._currentHists,this._currentHistsMap,-1),this._addHistoryBarToHistogram(e,this._historyBarSet.length-1,this._currentHists,this._currentHistsMap,1),this._updateLastBarTimeInHistogram(this._currentHists)}_addHistoryBarToHistogram(e,t,i,r,n){(0,s.assert)(-1===n||1===n,"Please set sign argument either +1 or -1");const a=e.low,l=e.high,c=isNaN(e.volume)?0:e.volume,h=e.isUp,d=(0,s.ensureNotNull)(this._rowsLayout);d.init(this._ctx.symbol.minTick,this._minPrice,this._maxPrice,a,l);const u=d.rowWidth();if(!o.Std.greater(u,0))return;d.calculate();const p=d.getIndexLowVbP(),_=d.getIndexHighVbP(),m=d.getStartPrice();if(p===_){const e=p*u+m,t=(p+1)*u+m;this._updateResult({start:e,end:t},n*c,h,i,r)}else{let e=0;for(let t=p;t<=_;t++){const s=t*u+m,o=(t+1)*u+m,d=this._rowCoeff(s,o,a,l),p=d*c;e+=d,this._updateResult({start:s,end:o},n*p,h,i,r)}(0,s.assert)(o.Std.equal(e,1,.05),"totalCoeff not equal 1! totalConf = "+e)}}_updateResult(e,t,i,r,n){const a=this._createRates(i,t);(0,s.assert)(null!==this._leftBoxTime,"leftBoxTime is not set (equals null)"),(0,s.assert)(null!==this._rightBoxTime,"rightBoxTime is not set (equals null)");const c=(0,s.ensureNotNull)(this._leftBoxTime),h=(0,s.ensureNotNull)(this._rightBoxTime);let d=n.get(e);if(void 0===d)d=new l(this,e.start,e.end,a,c,h),n.set(e,d),this._verifyHistogramSizeIsNotTooLarge(n.size()),this._currentHistsGr.add(d),_._addInOrder(d,r,0,r.length,(e,t)=>{let i=o.Std.compare(e.firstBarTime(),t.firstBarTime());return 0!==i?i:(i=o.Std.compare(e.priceLow(),t.priceLow()),
0!==i?i:o.Std.compare(e.priceHigh(),t.priceHigh()))});else{const e=[];for(let t=0;td,maxHHistItems:()=>c,numOfSubHists:()=>h});var s=i(216),r=i(29823);class n{constructor(e,t){this._minTick=NaN,this._minPrice=NaN,this._maxPrice=NaN,this._low=NaN,this._high=NaN,this._startPrice=NaN,this._indexLowVbP=NaN,this._indexHighVbP=NaN,this._rowSize=e,this._type=t}init(e,t,i,s,r){this._minTick=e,this._minPrice=t,this._maxPrice=i,this._low=s,this._high=r}getStartPrice(){return this._startPrice}setStartPrice(e){this._startPrice=e}getIndexLowVbP(){return this._indexLowVbP}setIndexLowVbP(e){this._indexLowVbP=e}getIndexHighVbP(){return this._indexHighVbP}setIndexHighVbP(e){this._indexHighVbP=e}type(){return this._type}}class o extends n{constructor(e){super(e,0)}calculate(){this.setStartPrice(this._minPrice);const e=this.rowWidth();let t=Math.floor((this._low-this._minPrice)/e),i=Math.ceil((this._high-this._minPrice)/e)-1;t=Math.max(t,0),i=Math.max(i,0),i=Math.min(i,this._rowSize-1),t=Math.min(t,i),this.setIndexLowVbP(t),this.setIndexHighVbP(i)}rowWidth(){return Math.max((this._maxPrice-this._minPrice)/this._rowSize,this._minTick)}}class a extends n{constructor(e){super(e,1)}calculate(){this.setStartPrice(0);const e=this.rowWidth();let t=Math.floor(this._low/e)
;const i=Math.ceil(this._high/e)-1;t=Math.min(t,i),this.setIndexLowVbP(t),this.setIndexHighVbP(i)}rowWidth(){return this._minTick*this._rowSize}}var l=i(67337);function c(){return 6e3}function h(e){switch(e){case"Delta":case"Up/Down":return 2;case"Total":return 1;default:s.Std.error("Invalid study argument value: "+e)}}class d{findBasicResolutionForFromTo(e,t,i,n){const o=(0,s.getVolumeProfileResolutionForPeriod)(e.value(),t,i,n),a=r.Interval.parse(o);return l.enabled("charting_library_debug_mode")&&console.log(`Selected resolution ${a.value()} for (${e.value()}, ${t}, ${i})`),a}verifyRowSizeInput(e,t){"Number Of Rows"===t&&e>6e3&&s.Std.error('Histogram is too large, please reduce "Row Size" input.')}_getRowsLayout(e,t){return"Number Of Rows"===e?new o(t):new a(t)}}},5748:(e,t,i)=>{"use strict";i.d(t,{volumeProfileFixedRangeBSStudyItem:()=>w,volumeProfileFixedRangeVbPStudyItem:()=>b});var s=i(88537),r=i(96761),n=i(216),o=i(50993),a=i(95018),l=i(29823),c=i(78002),h=i(34574),d=i(18317),u=i(79113),p=i(45548),_=i(9345),m=i(95936),g=i(62876);class f extends g.VolumeByPriceExpr{constructor(e,t,i,s,r,n,o,a,l,c,h,d){super(e,t,i,n,o,a,!1,l,c,()=>h,d,s,r,!1),this._firstBarTime=s,this._lastBarTime=r}update(e){this._supplyRowsLayout(this._ctx),this.timeInRequestedRange(e)&&super.update(e)}timeInRequestedRange(e){const t=this._timeScale().get(e);return this._firstBarTime<=t&&t=this._firstBarTime){const e=this._developingPocSeries.getLeftOrEqual(n),t=this._developingVAHighSeries.getLeftOrEqual(n),i=this._developingVALowSeries.getLeftOrEqual(n);r.data.push([e,t,i])}else r.data.push([NaN,NaN,NaN])}return r}time(){return this._timeSeries}open(){return this._openSeries}high(){return this._highSeries}low(){return this._lowSeries}close(){return this._closeSeries}volume(){return this._volumeSeries}developingPoc(){return this._developingPocSeries}developingVAHigh(){return this._developingVAHighSeries}developingVALow(){return this._developingVALowSeries}}function y(e){return{constructor:S,name:e.description,metainfo:{_metainfoVersion:51,shortDescription:"VPFR",format:{type:"volume"},is_price_study:!0,defaults:{graphics:{hhists:{histBars2:{colors:["#1592e6","#fbc123"],direction:a.HHistDirection.LeftToRight,percentWidth:30,
showValues:!1,transparencies:[76,76],valuesColor:"#424242",visible:!0},histBarsVA:{colors:["#1592e6","#fbc123"],direction:a.HHistDirection.LeftToRight,percentWidth:30,showValues:!1,transparencies:[30,30],valuesColor:"#424242",visible:!0}},horizlines:{pocLines:{color:"#ff0000",style:m.LineStyle.Solid,visible:!0,width:2}},polygons:{histBoxBg:{color:"#37a6ef",transparency:94}}},inputs:{first_bar_time:0,last_bar_time:0,rows:24,rowsLayout:"Number Of Rows",subscribeRealtime:!0,vaVolume:70,volume:"Up/Down"},styles:{developingPoc:{color:"#ff0000",linestyle:m.LineStyle.Solid,linewidth:1,plottype:o.LineStudyPlotStyle.StepLine,trackPrice:!1,transparency:0,visible:!1},developingVAHigh:{color:"#0000ff",linestyle:m.LineStyle.Solid,linewidth:1,plottype:o.LineStudyPlotStyle.StepLine,trackPrice:!1,transparency:0,visible:!1},developingVALow:{color:"#0000ff",linestyle:m.LineStyle.Solid,linewidth:1,plottype:o.LineStudyPlotStyle.StepLine,trackPrice:!1,transparency:0,visible:!1}}},graphics:{hhists:{histBars2:{location:a.HHistLocation.Absolute,title:"Volume Profile",titles:["Up Volume","Down Volume"]},histBarsVA:{location:a.HHistLocation.Absolute,title:"Value Area",titles:["Value Area Up","Value Area Down"]}},horizlines:{pocLines:{name:"POC",showPrice:!0}},polygons:{histBoxBg:{mouseTouchable:!1,name:"Histogram Box",showBorder:!1}}},inputs:[{defval:"Number Of Rows",id:"rowsLayout",name:"Rows Layout",options:["Number Of Rows","Ticks Per Row"],type:"text"},{defval:24,id:"rows",max:1e6,min:1,name:"Row Size",type:"integer"},{defval:"Up/Down",id:"volume",name:"Volume",options:["Up/Down","Total","Delta"],type:"text"},{defval:0,id:"first_bar_time",isHidden:!0,max:253370764800,min:-253370764800,name:"First Bar Time",type:"time"},{defval:0,id:"last_bar_time",isHidden:!0,max:253370764800,min:-253370764800,name:"Last Bar Time",type:"time"},{defval:70,id:"vaVolume",max:100,min:0,name:"Value Area Volume",type:"integer"},{defval:!0,id:"subscribeRealtime",isHidden:!0,name:"SubscribeRealtime",type:"bool"}],plots:[{id:"developingPoc",type:"line"},{id:"developingVAHigh",type:"line"},{id:"developingVALow",type:"line"}],styles:{developingPoc:{histogramBase:0,title:"Developing Poc"},developingVAHigh:{histogramBase:0,title:"Developing VA High"},developingVALow:{histogramBase:0,title:"Developing VA Low"}},...e}}}const b=y({id:"VbPFixed@tv-volumebyprice-57",description:"Volume Profile Fixed Range"}),w=y({id:"VbPFixed@tv-basicstudies-152",description:"Fixed Range",is_hidden_study:!0})},79258:(e,t,i)=>{"use strict";i.d(t,{VolumeProfileOutputSeries:()=>n});var s=i(88537),r=i(55257);class n{constructor(){this._histPos=-1,this._hist=new Float64Array(2e3),this._times=new Float64Array(2e3)}addHist(e){if(this._histPos>=0){const t=this._times[this._histPos];(0,s.assert)(t<=e,"History order violation"),this._histPos+=t===e?0:1}else this._histPos+=1;if(this._histPos===this._hist.length){const e=new Float64Array(2*this._hist.length);e.set(this._hist),this._hist=e;const t=new Float64Array(this._hist.length);t.set(this._times),this._times=t}this._hist[this._histPos]=NaN,
this._times[this._histPos]=e}removeLastIfNaN(){Number.isNaN(this.get(0))&&(this._histPos-=1)}get(e){(0,s.assert)(0===e);const t=this._histPos-e;return this._hist[t]}getLeftOrEqual(e){const t=(0,r.upperbound)(this._times,e,(e,t)=>e{"use strict";i.d(t,{volumeProfileVisibleRangeStudyItem:()=>v});var s=i(88537),r=i(96761),n=i(216),o=i(95018),a=i(29823),l=i(78002),c=i(62876),h=i(79113);class d extends c.VolumeByPriceExpr{constructor(e,t,i,s,r,n,o,a,l,c,d){super(e,t,i,n,new h.GraphicsList,o,!0,a,l,()=>c,d,s,r,!1),this._firstBarTime=s,this._lastBarTime=r}update(e){this._supplyRowsLayout(this._ctx),this.timeInRequestedRange(e)&&super.update(e)}timeInRequestedRange(e){const t=this._timeScale().get(e);return this._firstBarTime<=t&&t=this._firstBarTime){const e=this._developingPocSeries.getLeftOrEqual(n),t=this._developingVAHighSeries.getLeftOrEqual(n),i=this._developingVALowSeries.getLeftOrEqual(n);r.data.push([e,t,i])}else r.data.push([NaN,NaN,NaN])}return r}time(){return this._timeSeries}open(){return this._openSeries}high(){return this._highSeries}low(){return this._lowSeries}close(){return this._closeSeries}volume(){return this._volumeSeries}developingPoc(){return this._developingPocSeries}developingVAHigh(){return this._developingVAHighSeries}developingVALow(){return this._developingVALowSeries}}const v={constructor:f,name:"Volume Profile Visible Range",metainfo:{_metainfoVersion:51,id:"VbPVisible@tv-basicstudies-49",description:"Volume Profile Visible Range",shortDescription:"VPVR",format:{type:"volume"},is_price_study:!0,linkedToSeries:!0,palettes:{},inputs:[{id:"rowsLayout",name:"Rows Layout",defval:"Number Of Rows",options:["Number Of Rows","Ticks Per Row"],type:"text"},{id:"rows",name:"Row Size",defval:24,max:1e6,min:1,type:"integer"},{id:"volume",name:"Volume",defval:"Up/Down",options:["Up/Down","Total","Delta"],type:"text"},{id:"first_visible_bar_time",name:"First Visible Bar Time",defval:0,isHidden:!0,max:253370764800,min:-253370764800,type:"time"},{id:"last_visible_bar_time",name:"Last Visible Bar Time",defval:0,isHidden:!0,max:253370764800,min:-253370764800,type:"time"},{id:"vaVolume",name:"Value Area Volume",defval:70,max:100,min:0,type:"integer"}],plots:[{
id:"developingPoc",type:"line"},{id:"developingVAHigh",type:"line"},{id:"developingVALow",type:"line"}],graphics:{hhists:{histBars2:{location:o.HHistLocation.Relative,title:"Volume Profile",titles:["Up Volume","Down Volume"]},histBarsVA:{location:o.HHistLocation.Relative,title:"Value Area",titles:["Value Area Up","Value Area Down"]}},horizlines:{pocLines:{name:"POC",showPrice:!0}}},defaults:{graphics:{hhists:{histBars2:{colors:["#1592e6","#fbc123"],direction:o.HHistDirection.RightToLeft,percentWidth:30,showValues:!1,transparencies:[76,76],valuesColor:"#424242",visible:!0},histBarsVA:{colors:["#1592e6","#fbc123"],direction:o.HHistDirection.RightToLeft,percentWidth:30,showValues:!1,transparencies:[30,30],valuesColor:"#424242",visible:!0}},horizlines:{pocLines:{color:"#ff0000",style:0,visible:!0,width:2}}},inputs:{first_visible_bar_time:0,last_visible_bar_time:0,rows:24,rowsLayout:"Number Of Rows",vaVolume:70,volume:"Up/Down"},styles:{developingPoc:{color:"#ff0000",linestyle:0,linewidth:1,plottype:9,trackPrice:!1,transparency:0,visible:!1},developingVAHigh:{color:"#0000ff",linestyle:0,linewidth:1,plottype:9,trackPrice:!1,transparency:0,visible:!1},developingVALow:{color:"#0000ff",linestyle:0,linewidth:1,plottype:9,trackPrice:!1,transparency:0,visible:!1}}},styles:{developingPoc:{histogramBase:0,title:"Developing Poc"},developingVAHigh:{histogramBase:0,title:"Developing VA High"},developingVALow:{histogramBase:0,title:"Developing VA Low"}}}}},54631:(e,t,i)=>{"use strict";i.d(t,{StudyError:()=>s});class s extends Error{constructor(e){super(e),this.studyError=!0}}},18317:(e,t,i)=>{"use strict";i.d(t,{EraseObj:()=>s,EraseAll:()=>r,GraphicsCmds:()=>n});class s{constructor(e,t){this.id=e,this.type=t}primitiveData(){return{action:"one",id:this.id,type:this.type}}}class r{primitiveData(){return{action:"all"}}}class n{constructor(){this.erase=[],this.create=null,this._modified=!1}primitiveData(e){if(this.isNaN())return null;const t={},i=this.create&&this.create.primitiveData(e);return null!==i&&(t.create=i),null!==this.erase&&this.erase.length>0&&(t.erase=this.erase.map(e=>e.primitiveData())),void 0===t.create&&void 0===t.erase?null:t}setCreate(e){this.create=e,this.create.forEachList(e=>e.setOwner(this))}isNaN(){return(null===this.erase||0===this.erase.length)&&null===this.create}isModified(){return this._modified}setModified(e){this._modified=e}dirty(){this._modified=!0}setOwner(e){throw new Error("Unsupported")}}},78002:(e,t,i)=>{"use strict";i.d(t,{GraphicsListColl:()=>s});class s{constructor(){this._stable=[],this._variable=null,this._owner=null}addStable(e){e.setOwner(this),this._stable.push(e)}setVariable(e){this._variable=e,null!==this._variable&&this._variable.setOwner(this)}primitivesData(e){const t=[];return this._forEach(i=>t.push(...i.primitivesData(e))),t}deleteErasedItems(){this._forEach(e=>e.deleteErasedItems())}markPostedItems(){this._forEach(e=>e.markPostedItems())}isNaN(){return this._all(e=>e.isNaN())}dirty(){null!==this._owner&&this._owner.dirty()}setOwner(e){this._owner=e}_forEach(e){
for(const t of this._stable)e(t);null!==this._variable&&e(this._variable)}_all(e){for(const t of this._stable)if(!e(t))return!1;return null===this._variable||e(this._variable)}}},79113:(e,t,i)=>{"use strict";i.d(t,{GraphicsList:()=>n});var s=i(31738),r=i(28329);class n{constructor(){this._items=[],this._owner=null}primitivesData(e){const t=[];for(const i of this._items)e.isIgnoredObj(i)||t.push(i.primitiveData());return t}get(e){return this._items[e]}set(e,t){return this.dirty(),t.setOwner(this),this._items[e]=t,t}addAtIndex(e,t){this.dirty(),t.setOwner(this),this._items[e]=t}clear(){this._unsetOwner(this._items),this._items=[],this.dirty()}addAllFromNumber(e,t){this.setOwner(t),this._items.splice(e,0,...t._items);return this._setCachedDataValid(!1),!0}addAll(e){this.setOwner(e),this._items.push(...e._items);return this._setCachedDataValid(!1),!0}remove(e){const t=this._items[e];return this._items.splice(e,1),t.unsetOwner(this),this.dirty(),t}getItems(){return this._items}size(){return this._items.length}add(e){e.setOwner(this),this._items.push(e);return this._setCachedDataValid(!1),!0}deleteErasedItems(){this._items=this._items.filter(e=>!e.isErased())}markPostedItems(){for(const e of this._items)e.markAsPosted()}isNaN(){if(0===this._items.length)return!0;for(const e of this._items){if(!(0,r.isNaNable)(e))return!1;if(!e.isNaN())return!1}return!0}setOwner(e){this._owner=e}dirty(){null!==this._owner&&this._owner.dirty()}_unsetOwner(e){for(const t of e)t instanceof s.GraphicsObj&&t.unsetOwner(this)}_setCachedDataValid(e){e||this.dirty()}}},31738:(e,t,i)=>{"use strict";i.d(t,{GraphicsObj:()=>l});var s=i(216);class r{constructor(e,t,i,s){this._value=e,this._name=t,this._owner=i,this._comparer=void 0!==s?s:(e,t)=>null==e?null!=t:e===t}getName(){return this._name}set(e){const t=this._comparer(this._value,e);return t&&this._owner.dirty(),this._value=e,t}get(){return this._value}}class n{constructor(e,t,i){this._owner=null,this._value=e,this._name=t,this._owner=i}getName(){return this._name}set(e){return this._value!==e&&(this._value=e,null!==this._owner&&this._owner.dirty(),!0)}get(){return this._value}}class o extends r{constructor(e,t,i,s){super(e,t,i,s)}}class a{constructor(e){this._owner=e}createField(e,t){return new r(e,t,this)}createDoubleField(e,t){return new r(e,t,this,(e,t)=>!s.Std.equal(e,t))}createDoubleArrayField(e,t){return new o(e,t,this,(e,t)=>{if(e===t)return!1;const i=e.length;if(t.length!==i)return!0;for(let r=0;r{"use strict";function s(e){return Boolean(e.isNaN)}i.d(t,{isNaNable:()=>s})},45548:(e,t,i)=>{"use strict";i.d(t,{JStudyDataUpdate:()=>d});var s=i(18317);class r{constructor(){this.isUpdate=!1,this.graphicsCmds=new s.GraphicsCmds,this._offsetsChanged=!1,this._disableGraphicsAndData=!1}isNaN(){return this.graphicsCmds.isNaN()}primitiveData(e){const t={};if(!this._disableGraphicsAndData){const i=this.graphicsCmds.primitiveData(e);null!==i&&(t.graphicsCmds=i)}return this.isUpdate&&(t.isUpdate=!0),void 0===t.graphicsCmds?void 0:t}disable(){this._disableGraphicsAndData=!0}checkForChangeAndResetChangedState(e){const t=this._offsetsChanged,i=this.graphicsCmds.isModified();this.graphicsCmds.setModified(!1),this._offsetsChanged=!1;return i||t||0!==e.length}}var n=i(80643),o=i(28329);function a(e){return Boolean(e.isPosted)}class l{isIgnoredObj(e,t){return l.isIgnoredObjDefault(e,t)}static isIgnoredObjDefault(e,t){if(void 0===t)return l.isIgnoredObjNaNable(e);const i=e[t];return l.isIgnoredByGeneralRules(e,t)||l.isIgnoredObjNaNable(i)||l.isIgnoredObjListOfNaNables(i)}static isIgnoredObjNaNable(e){return(0,o.isNaNable)(e)&&e.isNaN()}static isIgnoredObjListOfNaNables(e){if(!(0,n.isArray)(e))return!1;let t=!0;for(const i of e)if(!(0,o.isNaNable)(i)||!i.isNaN()){t=!1;break}return t}static isIgnoredObjPosted(e){return a(e)&&e.isPosted()}static isIgnoredObjErased(e){return a(e)&&e.isErased()}static isIgnoredByGeneralRules(e,t){const i=e[t];return(0,n.isArray)(i)&&0===i.length}}class c{isIgnoredObj(e,t){if(void 0===t)return l.isIgnoredObjDefault(e)||l.isIgnoredObjErased(e);const i=e[t];return l.isIgnoredObjDefault(e,t)||l.isIgnoredObjErased(i)}}class h{isIgnoredObj(e,t){if(void 0===t)return l.isIgnoredObjDefault(e)||l.isIgnoredObjErased(e)||l.isIgnoredObjPosted(e);const i=e[t];return l.isIgnoredObjDefault(e,t)||l.isIgnoredObjErased(i)||l.isIgnoredObjPosted(i)}}class d extends class extends class{constructor(e){this._dataObj=new r,this._isDirty=!1,this._eraseCmds=[],this._enableCmdDataStudy=e}init(e){this._dataObj.graphicsCmds.setCreate(e),this.update(!0)}dataObj(){return this._dataObj}setEraseCmds(e){this._eraseCmds=e}resetDirtyState(){this._isDirty=!1}disable(){this._dataObj.disable()}}{constructor(e){super(e),this._snapshotPredicate=new c,this._dataSnapShot={}}getData(){return this._dataSnapShot}getUpdate(){return this._isDirty?this._dataSnapShot:{}}update(e){(this._dataObj.checkForChangeAndResetChangedState(this._eraseCmds)||e)&&(null!==this._dataObj.graphicsCmds.create&&(this._dataObj.graphicsCmds.create.deleteErasedObjs(),this._dataObj.graphicsCmds.erase=[new s.EraseAll]),this._makeSnapshot(),
this._isDirty=!0)}_makeSnapshot(){this._json=this._dataObj.primitiveData(this._snapshotPredicate),this._dataSnapShot={json:this._json}}}{constructor(e){super(e),this._updatePredicate=new h,this._sendShapshotOnly=!0,this._isFirstNotForcedUpdate=!0}update(e){(this._dataObj.checkForChangeAndResetChangedState(this._eraseCmds)||e)&&(null!==this._dataObj.graphicsCmds.create&&(this._dataObj.graphicsCmds.erase=[new s.EraseAll]),this._dataObj.isUpdate=!0,this._makeSnapshot(),null!==this._dataObj.graphicsCmds.create&&(this._dataObj.graphicsCmds.erase=this._eraseCmds),this._dataObj.isUpdate=!0,this._jsonUpdate=this._dataObj.primitiveData(this._updatePredicate),null!==this._dataObj.graphicsCmds.create&&this._dataObj.graphicsCmds.create.deleteErasedAndMarkPostedObjs(),this._sendShapshotOnly=e||this._isFirstNotForcedUpdate,this._isFirstNotForcedUpdate=Boolean(e),this._isDirty=!0)}getUpdate(){return this._isDirty?this._enableCmdDataStudy?{json:this._sendShapshotOnly?this._json:void 0,jsonUpdate:this._sendShapshotOnly?void 0:this._jsonUpdate}:{json:this._json,jsonUpdate:this._sendShapshotOnly?void 0:this._jsonUpdate}:{}}}},34574:(e,t,i)=>{"use strict";i.d(t,{StudyGraphicsData:()=>r,Container:()=>n});var s=i(88537);class r{constructor(){this._horizlines=[],this._hhists=[],this._polygons=[],this._vertlines=[],this._containersCache=[],this._containerNamesCache=[],this._containersMapCache=new Map,this._addToCache("horizlines",this._horizlines),this._addToCache("hhists",this._hhists),this._addToCache("polygons",this._polygons),this._addToCache("vertlines",this._vertlines)}primitiveData(e){const t={};let i=!1;for(const s of this._containerNamesCache){const r=[],n=this.getObjsContainer(s);for(const t of n){if(t.isNaN())continue;const i=t.primitiveData(e);i.data.length>0&&r.push(i)}r.length>0&&(t[s]=r,i=!0)}return i?t:null}deleteErasedAndMarkPostedObjs(){this.forEachList(e=>{e.deleteErasedItems(),e.markPostedItems()})}deleteErasedObjs(){this.forEachList(e=>e.deleteErasedItems())}getObjsContainer(e){return(0,s.ensureDefined)(this._containersMapCache.get(e))}forEachList(e){for(const t of this._containersCache)for(const i of t)e(i.data)}_addToCache(e,t){this._containersCache.push(t),this._containerNamesCache.push(e),this._containersMapCache.set(e,t)}}class n{constructor(e,t){this.styleId=e,this.data=t}isNaN(){return this.data.isNaN()}primitiveData(e){return{styleId:this.styleId,data:this.data.primitivesData(e)}}}},27595:(e,t,i)=>{"use strict";const s=i(45112).getHexColorByName;var r=i(216);const n=s("color-ripe-red-100"),o=s("color-ripe-red-200"),a=s("color-ripe-red-500"),l=s("color-ripe-red-900"),c=s("color-ripe-red-a200"),h=s("color-minty-green-100"),d=s("color-minty-green-400"),u=s("color-minty-green-500");JSServer.studyLibrary=[{name:"Accumulation/Distribution",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:"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)]}}}]},28930:(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={}))},64326:(e,t,i)=>{"use strict";i.d(t,{PointsetsManager:()=>n});var s=i(29823);const r=(0,i(98125).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}}},34972:(e,t,i)=>{"use strict";i.d(t,{SessionTimeScale:()=>v});var s=i(88537),r=i(67337),n=i(10480),o=i(55257),a=i(65862),l=i(2271),c=i(42934);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(41728),r=i(216),n=i(37750),o=i(66482).SymbolExtrapolator,a=i(34972).SessionTimeScale,l=i(64326).PointsetsManager,c=i(69177),h=i(65862).createDwmAligner,d=i(29823).Interval,u=i(76422),p=i(45415).visitObject,_=i(80643).isObject;i(27595),i(84093);var m=i(41986).DatafeedRequestsCachedProcessor,g=i(39277).timezoneIsAvailable,f=i(65862).isAlignmentEnabled,v=i(19234),S=v.isEncodedExtendedSymbol,y=v.decodeExtendedSymbol,b=i(37667).extractSymbolNameFromSymbolInfo,w=i(79283).replaceGraphicsTimesWithTimePointIndexIndex,C=i(67337),P=i(28930).SubsessionId,T=i(69177).getPeriodsBetweenDates;const x=C.enabled("pre_post_market_sessions");function I(e){var t=e.findIndex((function(e){return-5e6!==e.index}));return-1===t?[]:0===t?e:e.slice(t)}function M(e,t){return e+"_"+t}var L=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 A(e,t){return e+"_"+t}function E(e,t,i,s){return e+(t?"_#_"+t:"")+(i?"_#_"+i:"")+(s?"_#_"+s:"")}L.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},L.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]},L.prototype.destroy=function(){this._cachedDatafeed.destroy(),this._externalDatafeed=null,Object.keys(this._pointsetsManagers).forEach((function(e){this._pointsetsManagers[e].destroy()}),this),this._pointsetsManagers={}},L.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={}},L.prototype.purgeDataCache=function(){this._cachedDatafeed.purgeCache()},L.prototype._logMessage=function(e){C.enabled("charting_library_debug_mode")&&console.log(e)},L.prototype.on=function(e,t){return this._callbacks.hasOwnProperty(e)||(this._callbacks[e]=[]),this._callbacks[e].push(t),this},L.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,P)},L.prototype._createStudy=function(e,t,i,s,r,n,o,a){var l=this;function c(e,t,i){e=I(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},L.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)},L.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(M(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")},L.prototype.seriesTurnaround=function(e,t){return this._studiesCache[e]&&this._studiesCache[e][t]&&this._studiesCache[e][t].turnaround},L.prototype._seriesDataRange=function(e,t){var i=this._studiesCache[e][t];return null!==i.firstLoadedTimeMs?{
to:i.firstLoadedTimeMs,countBack:0}:i.dataRange},L.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))}},L.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)}},L.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))},L.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},L.prototype._seriesCount=function(e){var t=0;for(var i in this._studiesCache[e]){"series"===this._studiesCache[e][i].type&&(t+=1)}return t},L.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})))}},L.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(88537),r=i(55257),n=i(69177),o=i(11075),a=i(29823);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&ðis._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))}}},43007:(e,t,i)=>{"use strict";i.d(t,{backend:()=>s});const s=i(17437)},73383:(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={}))},87980:()=>{"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[]}},56910:(e,t,i)=>{"use strict";i.r(t),i.d(t,{QuoteCache:()=>r,QUOTE_FIELDS:()=>n,QUOTE_FIELDS_CACHE:()=>o});var s=i(88537);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){if(!t.has(s))continue;const r=e.values[s];(i||void 0!==r)&&(n.values[s]=r)}}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","logoid","currency-logoid","base-currency-logoid","short_name","description","exchange","type","country_code","provider_id","sector","type","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","update_mode"]),o=new r({fields:n})},39138:(e,t,i)=>{"use strict";i.d(t,{getQuoteSessionInstance:()=>o,destroyQuoteSessions:()=>a});var s=i(87467),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]}}},67311:(e,t,i)=>{"use strict";i.d(t,{QuoteSession:()=>r});var s=i(9423);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},87467:(e,t,i)=>{"use strict";e=i.nmd(e);var s=i(2872),r=i(43370).default,n=i(4889).default,o=i(97098).PriceFormatter;const{uniq:a}=i(96397);var l=i(9423),c=i(5370).parseUpdateMode,h=i(15840).deepExtend;const{QUOTE_FIELDS_CACHE:d,QUOTE_FIELDS:u}=i(56910);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(67311).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"],_.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","value_unit_id"],_.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){var t=c(e.update_mode);null!==t&&(e.update_mode=t.mode,e.update_mode_seconds=t.interval)},_.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}}},55257:(e,t,i)=>{"use strict";function s(e,t){return e>1,o=s+r;i(e(o),t)?(s=o+1,n-=r+1):n=r}return s}function n(e,t,i,s=0,n=e.length){return r(t=>e[t],t,i,s,n)}function o(e,t,i=0,r=e.length){return n(e,t,s,i,r)}function a(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 l(e,t,i=0,r=e.length){return a(e,t,s,i,r)}function c(e,t){return e.filter(e=>!t.includes(e))}function h(e,t){const i=e.indexOf(t);return i<0?e.slice():[t].concat(e.slice(0,i)).concat(e.slice(i+1))}function d(e,t,i){const s=new Set(t),r=[],n=[],a=[];return e.forEach((e,t)=>{s.has(e)?n.push(e):(r.push(e),a.push(t))}),i=i{s.has(e)?n.push(e):(r.push(e),a.push(t))}),i=i<=e.length-1?o(a,i):r.length,
r.splice(i,0,...n),{newItems:r,movedItemsStartIndex:i}}function p(e,t){const i=new Set;return e.forEach(e=>{t.has(e)&&i.add(e)}),i}i.r(t),i.d(t,{lowerboundExt:()=>r,lowerbound:()=>n,lowerbound_int:()=>o,upperbound:()=>a,upperbound_int:()=>l,subtract:()=>c,moveToHead:()=>h,moveAfter:()=>d,moveBefore:()=>u,intersect:()=>p})},10480:(e,t,i)=>{"use strict";var s=i(84917),r=i(84296).tzData;function n(e){this._name=e;var t=r[e];if(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,n=i.length,o=new Array(n),a=0;at){if((r=n-1)0&&e-t[s-1]<=r)return r;return 0},n.prototype.is_valid=function(){return!this._invalid},n._offset=function(e,t,i){var s=o(e,i);return-1===s?0:t[s]};var a=function(e){return 0|e},l=function(e){return 60*e*1e3},c=function(e,t){return h(e)-h(t)},h=function(e){return e<0?a(e/1e3)-(e%1e3!=0?1:0):a(e/1e3)};function d(e){return e%4==0&&(e%100!=0||e%400==0)}var u={0:0,1:31,2:59,3:90,4:120,5:151,6:181,7:212,8:243,9:273,10:304,11:334},p={...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:l(1440),get_minutes_from_hhmm:function(e){return-1!==e.indexOf(":")&&(e=e.split(":").join("")),e%100+60*a(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=u[t];return t>p.JANUARY+1&&d(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=p.get_day_of_year(e)-i;return Math.ceil(s/7)+1},get_minutes_from_midnight:function(e){return 60*p.get_hours(e)+p.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&&p.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*p.millisecondsPerDay)},add_minutes:function(e,t){e.setTime(e.getTime()+l(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 d(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,d(t)&&i++;break;default:i=30}return i},get_part:function(e,t){switch(t){case p.YEAR:return p.get_year(e);case p.MONTH:return p.get_month(e);case p.DAY_OF_MONTH:return p.get_day_of_month(e);case p.WEEK_OF_YEAR:return p.get_week_of_year(e);case p.DAY_OF_WEEK:return p.get_day_of_week(e);case p.HOUR_OF_DAY:return p.get_hours(e);case p.MINUTE:return p.get_minutes(e);case p.DAY_OF_YEAR:return p.get_day_of_year(e);case p.SECOND:return p.get_seconds(e);default:return e.getTime()}},time_minutes:l,time_seconds:function(e){return 1e3*e},time_minutes_diff:function(e,t){return a(c(e,t)/60)},time_seconds_diff:c,utc_to_cal:function(e,t){return new Date(p.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 n(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}};e.exports=p},43891:(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},29892:(e,t,i)=>{"use strict";var s=i(64514),r=s.greaterThan,n=s.lessThan,o=window.CanvasEx=i(43891);o.computeDashPattern=function(e){return[[e.lineWidth,2*e.lineWidth],[5*e.lineWidth,6*e.lineWidth],[6*e.lineWidth,6*e.lineWidth],[e.lineWidth,4*e.lineWidth],[2*e.lineWidth,e.lineWidth]][e.lineStyle-1]},o.drawLine=function(e,t,i,s,r){isFinite(t)&&isFinite(s)&&isFinite(i)&&isFinite(r)&&(e.lineStyle!==o.LINESTYLE_SOLID?o.drawDashedLine(e,t,i,s,r):o.drawSolidLine(e,t,i,s,r))},o.drawArrow=function(e,t,i,s,r,n){if(isFinite(t)&&isFinite(s)&&isFinite(i)&&isFinite(r)){var o=Math.round(n/2),a=t+o,l=s+o;e.beginPath(),e.moveTo(l,r),e.lineTo(a,i),e.moveTo(t,i+o),e.lineTo(a,i),e.lineTo(t+n,i+o),e.stroke()}},o.drawSolidLine=function(e,t,i,s,r){e.beginPath(),e.moveTo(t,i),e.lineTo(s,r),e.stroke()},o.setLineStyle=function(e,t){e.lineStyle=t;var i=[];t!==o.LINESTYLE_SOLID&&(i=o.computeDashPattern(e)),o.setLineDash(e,i)},o.setLineDash=function(e,t){"function"==typeof e.setLineDash?e.setLineDash(t):void 0!==e.mozDash?e.mozDash=t:void 0!==e.webkitLineDash&&(e.webkitLineDash=t)},o.drawPoly=function(e,t,i){e.beginPath(),e.moveTo(t[0].x,t[0].y);for(var s=0;s0&&(c.thereYet=n,c.cap=Math.max),t-s>0&&(l.thereYet=n,l.cap=Math.max),e.moveTo(t,i);for(var h=t,d=i,u=0,p=!0;!l.thereYet(h,s)||!c.thereYet(d,o);){var _=Math.atan2(o-i,s-t),m=a[u];h=l.cap(s,h+Math.cos(_)*m),d=c.cap(o,d+Math.sin(_)*m),p?e.lineTo(h,d):e.moveTo(h,d),u=(u+1)%a.length,p=!p}},o.setFont=function(e,t){if(e.font!==t)try{e.font=t}catch(e){}},"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.setFont=function(e){o.setFont(this,e)},CanvasRenderingContext2D.prototype.lineStyle=o.LINESTYLE_SOLID),e.exports=o},54089:(e,t,i)=>{"use strict";i.d(t,{combineWithFilteredUpdate:()=>o,combine:()=>a});var s=i(52714),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)}},39277:(e,t,i)=>{"use strict";i.r(t),i.d(t,{availableTimezones:()=>l,timezoneIsAvailable:()=>c,timezoneTitle:()=>h});var s=i(28353),r=i(23095);const n=[{id:"Etc/UTC",title:(0,s.t)("UTC")},{id:"exchange",title:(0,s.t)("Exchange")}],o=[{id:"Africa/Cairo",title:(0,s.t)("Cairo"),offset:0},{id:"Africa/Johannesburg",title:(0,s.t)("Johannesburg"),offset:0},{id:"Africa/Lagos",title:(0,s.t)("Lagos"),offset:0},{id:"America/Argentina/Buenos_Aires",title:(0,s.t)("Buenos Aires"),offset:0},{id:"America/Bogota",title:(0,s.t)("Bogota"),offset:0},{id:"America/Caracas",title:(0,s.t)("Caracas"),offset:0},{id:"America/Chicago",title:(0,s.t)("Chicago"),offset:0},{id:"America/El_Salvador",title:(0,s.t)("San Salvador"),offset:0},{id:"America/Juneau",title:(0,s.t)("Juneau"),offset:0},{id:"America/Lima",title:(0,s.t)("Lima"),offset:0},{id:"America/Los_Angeles",title:(0,s.t)("Los Angeles"),offset:0},{id:"America/Mexico_City",title:(0,s.t)("Mexico City"),offset:0},{id:"America/New_York",title:(0,s.t)("New York"),offset:0},{id:"America/Phoenix",title:(0,s.t)("Phoenix"),offset:0},{id:"America/Santiago",title:(0,s.t)("Santiago"),offset:0},{id:"America/Sao_Paulo",title:(0,
s.t)("Sao Paulo"),offset:0},{id:"America/Toronto",title:(0,s.t)("Toronto"),offset:0},{id:"America/Vancouver",title:(0,s.t)("Vancouver"),offset:0},{id:"US/Mountain",title:(0,s.t)("Denver"),offset:0},{id:"Asia/Almaty",title:(0,s.t)("Almaty"),offset:0},{id:"Asia/Ashkhabad",title:(0,s.t)("Ashgabat"),offset:0},{id:"Asia/Bahrain",title:(0,s.t)("Bahrain"),offset:0},{id:"Asia/Bangkok",title:(0,s.t)("Bangkok"),offset:0},{id:"Asia/Chongqing",title:(0,s.t)("Chongqing"),offset:0},{id:"Asia/Dubai",title:(0,s.t)("Dubai"),offset:0},{id:"Asia/Ho_Chi_Minh",title:(0,s.t)("Ho Chi Minh"),offset:0},{id:"Asia/Hong_Kong",title:(0,s.t)("Hong Kong"),offset:0},{id:"Asia/Jakarta",title:(0,s.t)("Jakarta"),offset:0},{id:"Asia/Jerusalem",title:(0,s.t)("Jerusalem"),offset:0},{id:"Asia/Karachi",title:(0,s.t)("Karachi"),offset:0},{id:"Asia/Kathmandu",title:(0,s.t)("Kathmandu"),offset:0},{id:"Asia/Kolkata",title:(0,s.t)("Kolkata"),offset:0},{id:"Asia/Kuwait",title:(0,s.t)("Kuwait"),offset:0},{id:"Asia/Manila",title:(0,s.t)("Manila"),offset:0},{id:"Asia/Muscat",title:(0,s.t)("Muscat"),offset:0},{id:"Asia/Qatar",title:(0,s.t)("Qatar"),offset:0},{id:"Asia/Riyadh",title:(0,s.t)("Riyadh"),offset:0},{id:"Asia/Seoul",title:(0,s.t)("Seoul"),offset:0},{id:"Asia/Shanghai",title:(0,s.t)("Shanghai"),offset:0},{id:"Asia/Singapore",title:(0,s.t)("Singapore"),offset:0},{id:"Asia/Taipei",title:(0,s.t)("Taipei"),offset:0},{id:"Asia/Tehran",title:(0,s.t)("Tehran"),offset:0},{id:"Asia/Tokyo",title:(0,s.t)("Tokyo"),offset:0},{id:"Atlantic/Reykjavik",title:(0,s.t)("Reykjavik"),offset:0},{id:"Australia/Adelaide",title:(0,s.t)("Adelaide"),offset:0},{id:"Australia/Brisbane",title:(0,s.t)("Brisbane"),offset:0},{id:"Australia/Perth",title:(0,s.t)("Perth"),offset:0},{id:"Australia/Sydney",title:(0,s.t)("Sydney"),offset:0},{id:"Europe/Amsterdam",title:(0,s.t)("Amsterdam"),offset:0},{id:"Europe/Athens",title:(0,s.t)("Athens"),offset:0},{id:"Europe/Belgrade",title:(0,s.t)("Belgrade"),offset:0},{id:"Europe/Berlin",title:(0,s.t)("Berlin"),offset:0},{id:"Europe/Bratislava",title:(0,s.t)("Bratislava"),offset:0},{id:"Europe/Brussels",title:(0,s.t)("Brussels"),offset:0},{id:"Europe/Bucharest",title:(0,s.t)("Bucharest"),offset:0},{id:"Europe/Budapest",title:(0,s.t)("Budapest"),offset:0},{id:"Europe/Copenhagen",title:(0,s.t)("Copenhagen"),offset:0},{id:"Europe/Dublin",title:(0,s.t)("Dublin"),offset:0},{id:"Europe/Helsinki",title:(0,s.t)("Helsinki"),offset:0},{id:"Europe/Istanbul",title:(0,s.t)("Istanbul"),offset:0},{id:"Europe/Lisbon",title:(0,s.t)("Lisbon"),offset:0},{id:"Europe/London",title:(0,s.t)("London"),offset:0},{id:"Europe/Luxembourg",title:(0,s.t)("Luxembourg"),offset:0},{id:"Europe/Madrid",title:(0,s.t)("Madrid"),offset:0},{id:"Europe/Malta",title:(0,s.t)("Malta"),offset:0},{id:"Europe/Moscow",title:(0,s.t)("Moscow"),offset:0},{id:"Europe/Oslo",title:(0,s.t)("Oslo"),offset:0},{id:"Europe/Paris",title:(0,s.t)("Paris"),offset:0},{id:"Europe/Riga",title:(0,s.t)("Riga"),offset:0},{id:"Europe/Rome",title:(0,s.t)("Rome"),offset:0},{id:"Europe/Stockholm",title:(0,s.t)("Stockholm"),
offset:0},{id:"Europe/Tallinn",title:(0,s.t)("Tallinn"),offset:0},{id:"Europe/Vilnius",title:(0,s.t)("Vilnius"),offset:0},{id:"Europe/Warsaw",title:(0,s.t)("Warsaw"),offset:0},{id:"Europe/Zurich",title:(0,s.t)("Zurich"),offset:0},{id:"Pacific/Auckland",title:(0,s.t)("New Zealand"),offset:0},{id:"Pacific/Chatham",title:(0,s.t)("Chatham Islands"),offset:0},{id:"Pacific/Fakaofo",title:(0,s.t)("Tokelau"),offset:0},{id:"Pacific/Honolulu",title:(0,s.t)("Honolulu"),offset:0},{id:"Pacific/Norfolk",title:(0,s.t)("Norfolk Island"),offset:0}],a=o.map(({id:e,title:t})=>{const{string:i,offset:s}=(0,r.parseTzOffset)(e);return{id:e,offset:s,title:`(${i}) ${t}`}}).sort((e,t)=>{const i=e.offset-t.offset;return 0!==i?i:e.title.localeCompare(t.title)}),l=n.concat(a);function c(e){for(let t=0;t{"use strict";e=i.nmd(e);const s=i(98125).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";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;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})},23095:(e,t,i)=>{"use strict";i.d(t,{parseTzOffset:()=>r});var s=i(10480);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=":"+n%1*60);let o="";return o=n>0?"+"+(n-n%1)+r:0===n?"":String(n-n%1+r),{offset:i,string:"UTC"+o}}},82029:(e,t,i)=>{"use strict";var s=i(67337),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 C(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={warnings:[],errors:[],isEmpty:!0},r=[],c=0;c{"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)}}},84296: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],
offset:[-21036,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600]},"America/Phoenix":{time:[-2717670498,-1633298400,-1615154400,-1601848800,-1583704800,-880236e3,-820540740,-812678340,-796867140,-84405600,-68680800,1924966800],offset:[-26898,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200]},"America/Toronto":{
time:[-2366755200,-1632088800,-1615154400,-1601771400,-1583712e3,-1567375200,-1554681600,-1534716e3,-1524088800,-1503266400,-149238e4,-1471816800,-1460930400,-1440972e3,-1428876e3,-1409522400,-1397426400,-1378072800,-1365976800,-1346623200,-1333922400,-1315173600,-1301868e3,-1283724e3,-1270418400,-1252274400,-1238968800,-1220824800,-1207519200,-1188770400,-1176069600,-1157320800,-1144015200,-1125871200,-1112565600,-1094421600,-1081116e3,-1062972e3,-1049666400,-1031522400,-1018216800,-1000072800,-986767200,-968018400,-955317600,-936568800,-880232400,-76941e4,-765410400,-747266400,-733960800,-715824e3,-702518400,-684374400,-671068800,-652924800,-634176e3,-620863200,-602719200,-589413600,-576108e3,-557964e3,-544658400,-526514400,-513208800,-495064800,-481759200,-463615200,-450309600,-431560800,-418255200,-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,136346400,152071200,167796e3,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:[-19052,-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,-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/Vancouver":{
time:[-2713910400,-1632088800,-1615154400,-880236e3,-769420800,-765410400,-747266400,-733960800,-715816800,-702511200,-684367200,-671061600,-652917600,-639612e3,-620863200,-608162400,-589413600,-576108e3,-557964e3,-544658400,-526514400,-513208800,-495064800,-481759200,-463615200,-450309600,-431560800,-418255200,-400111200,-386805600,-368661600,-355356e3,-337212e3,-323906400,-305762400,-292456800,-273708e3,-261007200,-242258400,-226533600,-210808800,-195084e3,-179359200,-163634400,-147909600,-13158e4,-11646e4,-100130400,-84405600,-68680800,-52956e3,-37231200,-21506400,-5781600,9943200,25668e3,41392800,57722400,73447200,89172e3,104896800,120621600,136346400,152071200,167796e3,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:[-29548,-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,-25200,-28800,-25200,-28800,-25200,-28800]},"America/Argentina/Buenos_Aires":{time:[-2372112e3,-1567468800,-1233446400,-1222992e3,-1205971200,-1194048e3,-117288e4,-1162512e3,-1141344e3,-1130976e3,-1109808e3,-109944e4,-1078272e3,-1067817600,-1046649600,-1036281600,-1015113600,-1004745600,-983577600,-973209600,-952041600,-941587200,-931046400,-900892800,-890352e3,-83376e4,-82728e4,-752284800,-733795200,-197337600,-190857600,-184204800,-164505600,-152668800,-132969600,-121132800,-101433600,-86832e3,-71107200,-54777600,-39052800,-23328e3,-7603200,128131200,136598400,596937600,605059200,624412800,636508800,656467200,667958400,687916800,699408e3,719366400,731462400,938908800,952041600,1198972800,1205625600,1224374400,1237075200,1924981200],offset:[-14028,-15408,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-10800,-10800,-7200,-10800,-7200,-10800]},"America/El_Salvador":{time:[-1546300800,546998400,559699200,578448e3,591148800,1924970400],offset:[-21408,-21600,-18e3,-21600,-18e3,-21600]},"America/Sao_Paulo":{
time:[-1767225600,-1206968400,-1191369600,-1175385600,-1159833600,-633830400,-622076400,-602294400,-59184e4,-570758400,-560217600,-539136e3,-53136e4,-195436800,-184204800,-155174400,-150076800,-128908800,-121132800,-99964800,-89596800,-68428800,-57974400,499737600,511228800,530582400,540259200,562118400,571190400,592963200,602035200,624412800,634694400,656467200,666748800,687916800,697593600,719971200,728438400,750816e3,761702400,782265600,793152e3,813715200,823996800,84456e4,856051200,876096e3,888710400,908064e3,919555200,938908800,951609600,970963200,982454400,1003017600,1013904e3,1036281600,1045353600,1066521600,1076803200,1099353600,1108857600,1129420800,1140307200,1162684800,1172361600,119232e4,1203206400,1224374400,1234656e3,1255824e3,1266710400,1287273600,129816e4,1318723200,1330214400,1350777600,1361059200,1382227200,1392508800,1413676800,1424563200,1445126400,1456012800,1476576e3,1487462400,1508025600,1518912e3,1541289600,1550361600,1924981200],offset:[-11188,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800,-7200,-10800]},"America/Bogota":{time:[-2707689600,-1739059200,704851200,733881600,1924974e3],offset:[-17776,-17776,-18e3,-14400,-18e3]},"America/Caracas":{time:[-2524521600,-1826755200,-157766400,1197169200,1462069800,1924977600],offset:[-16064,-16060,-16200,-14400,-16200,-14400]},"Europe/Moscow":{time:[-2840140800,-1688256e3,-165681e4,-1641340800,-1627956e3,-1618700400,-1596416400,-1593804521,-1589846400,-1542416400,-1539478800,-1525305600,-1522713600,-1491177600,-1247529600,354931200,370742400,386467200,402278400,418003200,433814400,449625600,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,695786400,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1414288800,1925002800],
offset:[9017,9017,9079,12679,9079,16279,12679,16279,14400,10800,14400,18e3,14400,10800,7200,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,10800,7200,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800]},"Europe/Athens":{time:[-2344636800,-1686095940,-1182988800,-1178150400,-906854400,-904867200,-85725e4,-844473600,-828230400,-812419200,-552355200,-541641600,166492800,186195600,198036e3,213764400,228880800,244090800,260330400,275457600,291805200,307418400,323395200,338947200,354682800,370411200,386132400,401860800,417582e3,433310400,449031600,465364800,481086e3,496814400,512535600,528264e3,543985200,559713600,575434800,591163200,606884400,622612800,638334e3,654667200,670388400,686116800,701838e3,717566400,733287600,749016e3,764737200,780465600,796186800,811915200,828241200,846388800,859690800,877838400,891140400,909288e3,92259e4,941342400,954039600,972792e3,985489200,1004241600,1017543600,1035691200,1048993200,1067140800,1080442800,1099195200,1111892400,1130644800,1143342e3,1162094400,1174791600,1193544e3,1206846e3,1224993600,1238295600,1256443200,1269745200,1288497600,1301194800,1319947200,1332644400,1351396800,1364698800,1382846400,1396148400,1414296e3,1427598e3,1445745600,1459047600,14778e5,1490497200,1509249600,1521946800,1540699200,1554001200,1572148800,1585450800,1603598400,1616900400,1635652800,164835e4,1667102400,1679799600,1698552e3,1711854e3,1730001600,1743303600,1761451200,1774753200,1792900800,1806202800,1824955200,1837652400,1856404800,1869102e3,1887854400,1901156400,1919304e3,1932606e3],offset:[5692,5692,7200,10800,7200,10800,7200,3600,7200,3600,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200]},"Europe/Belgrade":{
time:[-2713910400,-905821200,-85725e4,-844552800,-828219600,-812498400,-79677e4,-777938400,-766616400,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],offset:[4920,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Berlin":{time:[-2422051200,-1693702800,-1680476400,-1663452e3,-1650142800,-1632002400,-1618693200,-938901600,-85725e4,-844552800,-828219600,-812498400,-79677e4,-781048800,-776556e3,-765925200,-761173200,-748476e3,-733266e3,-717627600,-714603600,-71037e4,-701902800,-684972e3,-670453200,-654127200,-639003600,323834400,338958e3,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],
offset:[3208,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,10800,7200,3600,7200,3600,7200,10800,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Bratislava":{time:[-3786825600,-2469398400,-1693702800,-1680476400,-1663452e3,-1650142800,-1632002400,-1618693200,-938901600,-85725e4,-844552800,-828219600,-812498400,-79677e4,-781048800,-765320400,-746575200,-733352400,-728514e3,-72126e4,-716421600,-701902800,-684972e3,-670453200,-654213600,-639003600,29178e4,307508400,323834400,338958e3,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],offset:[3464,3464,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,0,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Bucharest":{
time:[-2469398400,-1213142400,-1187049600,-1175468400,-1159747200,-1144018800,-1127692800,-1111964400,-1096243200,-1080514800,-1064793600,-1049065200,-1033344e3,-1017615600,-1001894400,-986166e3,-970444800,-954716400,296611200,307497600,323823600,338950800,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670377600,686106e3,701827200,717555600,733276800,749005200,764726400,780451200,796176e3,811900800,828230400,846374400,859690800,877838400,891140400,909288e3,92259e4,941342400,954039600,972792e3,985489200,1004241600,1017543600,1035691200,1048993200,1067140800,1080442800,1099195200,1111892400,1130644800,1143342e3,1162094400,1174791600,1193544e3,1206846e3,1224993600,1238295600,1256443200,1269745200,1288497600,1301194800,1319947200,1332644400,1351396800,1364698800,1382846400,1396148400,1414296e3,1427598e3,1445745600,1459047600,14778e5,1490497200,1509249600,1521946800,1540699200,1554001200,1572148800,1585450800,1603598400,1616900400,1635652800,164835e4,1667102400,1679799600,1698552e3,1711854e3,1730001600,1743303600,1761451200,1774753200,1792900800,1806202800,1824955200,1837652400,1856404800,1869102e3,1887854400,1901156400,1919304e3,1932606e3],offset:[6264,6264,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200]},"Europe/Budapest":{
time:[-2498256e3,-1693702800,-1680476400,-1663452e3,-1650142800,-1632002400,-1618693200,-1600466400,-1587243600,-1569708e3,-1555189200,-906771600,-85725e4,-844552800,-828219600,-812498400,-79677e4,-778467600,-762649200,-749685600,-733269600,-717631200,-701902800,-686181600,-670453200,-654127200,-639003600,-492652800,-481161600,-461196e3,-449701200,-428536800,-418251600,-397087200,-386802e3,323827200,338950800,354672e3,370400400,386121600,40185e4,417571200,433299600,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],offset:[4580,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/London":{
time:[-3852662400,-1691964e3,-1680469200,-1664143200,-1650142800,-1633903200,-1617483600,-1601848800,-1586034e3,-1570399200,-1552165200,-1538344800,-152253e4,-15075e5,-1490562e3,-1473631200,-1460926800,-1442786400,-1428872400,-1410732e3,-1396213200,-1379282400,-1364763600,-1348437600,-1333314e3,-1315778400,-1301259600,-1284328800,-126981e4,-1253484e3,-1238360400,-1221429600,-1206910800,-118998e4,-1175461200,-1159135200,-1143406800,-1126476e3,-1111957200,-1095631200,-1080507600,-1063576800,-1049058e3,-1032127200,-1017608400,-1001282400,-986158800,-969228e3,-950475600,-942012e3,-904514400,-896043600,-875484e3,-864594e3,-844034400,-832539600,-812584800,-798066e3,-781048800,-772059600,-764802e3,-748476e3,-733352400,-719445600,-717026400,-706741200,-699483600,-687996e3,-668034e3,-654732e3,-636584400,-622072800,-605739600,-590623200,-57429e4,-558568800,-542235600,-527119200,-512600400,-496274400,-481150800,-46422e4,-449701200,-432165600,-417646800,-401320800,-386197200,-369266400,-354747600,-337816800,-323298e3,-306972e3,-291848400,-276732e3,-257979600,-245282400,-22653e4,-213228e3,-195080400,-182383200,-163630800,-150933600,-132181200,-119484e3,-100731600,-88034400,-68677200,-59004e3,-37238400,57726e3,69818400,89175600,101268e3,120625200,132717600,152074800,164167200,183524400,196221600,214974e3,227671200,246423600,259120800,278478e3,290570400,309927600,32202e4,341377200,354675600,372823200,386125200,404272800,417574800,435722400,449024400,467776800,481078800,499226400,512528400,530676e3,543978e3,562125600,575427600,593575200,606877200,625629600,638326800,657079200,670381200,688528800,701830800,719978400,733280400,751428e3,76473e4,782877600,796179600,814327200,828234e3,846381600,859683600,877831200,891133200,909280800,922582800,941335200,954032400,972784800,985482e3,1004234400,1017536400,1035684e3,1048986e3,1067133600,1080435600,1099188e3,1111885200,1130637600,1143334800,1162087200,1174784400,1193536800,1206838800,1224986400,1238288400,1256436e3,1269738e3,1288490400,1301187600,131994e4,1332637200,1351389600,1364691600,1382839200,1396141200,1414288800,1427590800,1445738400,1459040400,1477792800,149049e4,1509242400,1521939600,1540692e3,1553994e3,1572141600,1585443600,1603591200,1616893200,1635645600,1648342800,1667095200,1679792400,1698544800,1711846800,1729994400,1743296400,1761444e3,1774746e3,1792893600,1806195600,1824948e3,1837645200,1856397600,1869094800,1887847200,1901149200,1919296800,1932598800],
offset:[-75,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,0,3600,0,3600,7200,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0]},"Europe/Luxembourg":{time:[-2069712e3,-1692493200,-1680476400,-1662339600,-165015e4,-1632002400,-1618693200,-1612656e3,-1604278800,-1585515600,-1574038800,-1552255200,-1539997200,-1520546400,-1507510800,-1490569200,-1473642e3,-1459116e3,-1444006800,-142767e4,-1411866e3,-1396220400,-1379293200,-1364770800,-1348448400,-1333321200,-1316394e3,-1301266800,-1284339600,-126981e4,-1253484e3,-1238360400,-1221429600,-1206910800,-1191189600,-1175461200,-1160344800,-1143406800,-1127685600,-1111957200,-1096840800,-1080507600,-1063576800,-1049058e3,-1033336800,-1017608400,-1002492e3,-986158800,-969228e3,-950475600,-942012e3,-935182800,-85725e4,-844552800,-828219600,-812498400,-797979600,-781048800,-766616400,-745452e3,-733266e3,228880800,244004400,260330400,276058800,29178e4,307508400,323834400,338958e3,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],
offset:[1476,3600,7200,3600,7200,3600,7200,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Madrid":{time:[-2177453684,-1631926800,-1616886e3,-1601168400,-158535e4,-1442451600,-142767e4,-1379293200,-1364770800,-1348448400,-1333321200,-1316390400,-1301266800,-1284339600,-1269817200,-1026954e3,-1017615600,-1001898e3,-999478800,-986083200,-954111600,-940208400,-873075600,-862614e3,-842835600,-828313200,-811386e3,-796863600,-779936400,-765414e3,-748486800,-733964400,-652323600,-639010800,135126e3,150253200,166575600,181702800,196815600,212547600,22887e4,243997200,260330400,276058800,29178e4,307508400,323834400,338958e3,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],
offset:[-884,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,7200,3600,0,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Paris":{time:[-2486592e3,-1855958400,-1689814800,-1680393600,-1665363600,-1648339200,-1635123600,-1616889600,-1604278800,-158544e4,-1574038800,-1552262400,-1539997200,-1520553600,-1507510800,-1490572800,-1470618e3,-1459123200,-1444006800,-1427673600,-1411952400,-1396224e3,-1379293200,-1364774400,-1348448400,-1333324800,-1316394e3,-1301270400,-1284339600,-1269820800,-1253494800,-1238371200,-1221440400,-1206921600,-1191200400,-1175472e3,-1160355600,-1143417600,-1127696400,-1111968e3,-1096851600,-1080518400,-1063587600,-1049068800,-1033347600,-1017619200,-1002502800,-986169600,-969238800,-950486400,-942012e3,-932432400,-85725e4,-844552800,-828219600,-812498400,-800064e3,-796258800,-781048800,-766616400,196822800,212547600,228880800,244004400,260330400,276058800,29178e4,307508400,323834400,338958e3,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],
offset:[561,561,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,7200,3600,7200,3600,7200,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Rome":{time:[-3252096e3,-2403562204,-1690761600,-168048e4,-1664755200,-1648944e3,-163512e4,-1616889600,-1604275200,-1585526400,-1571011200,-1555286400,-932428800,-85725e4,-844552800,-828219600,-812498400,-798066e3,-781048800,-76671e4,-750895200,-733352400,-719452800,-70191e4,-689205600,-670453200,-114048e3,-103161600,-81993600,-71708400,-50544e3,-40258800,-18489600,-8204400,1296e4,23245200,43804800,54694800,75859200,86749200,107913600,118198800,138758400,149648400,170812800,181098e3,202262400,212547600,233107200,243997200,265161600,276051600,296611200,307501200,323834400,338958e3,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],
offset:[2996,2996,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Warsaw":{time:[-2840140800,-1717027200,-1693702800,-1680476400,-1663452e3,-1650142800,-1632002400,-1618693200,-1600466400,-1587157200,-1501718400,-931730400,-85725e4,-844552800,-828219600,-812498400,-796600800,-778723200,-762652800,-748483200,-733266e3,-715212e3,-701902800,-684972e3,-670453200,-654127200,-639003600,-397090800,-386805600,-371084400,-355356e3,-334191600,-323301600,-307580400,-291852e3,-271292400,-260402400,-239842800,-228952800,-208393200,-197503200,-176338800,-166053600,228877200,244000800,260326800,276055200,291776400,307504800,323830800,338954400,354675600,370404e3,386125200,401853600,417574800,433303200,449024400,465357600,481078800,496807200,512528400,528256800,543978e3,559706400,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],
offset:[5040,5040,3600,7200,3600,7200,3600,7200,7200,10800,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Istanbul":{time:[-2840140800,-1869868800,-1693699200,-168048e4,-1570406400,-1552176e3,-1538352e3,-1522540800,-1507507200,-1490572800,-1440201600,-1428019200,-1409702400,-1396483200,-931046400,-922665600,-917827200,-892425600,-875836800,-764726400,-744336e3,-733795200,-716428800,-701913600,-684979200,-670464e3,-654134400,-639014400,-62208e4,-60696e4,-590025600,-575510400,-235612800,-194832e3,-177724800,-165715200,107917200,121226400,133927200,152676e3,164685600,184125600,196221600,215575200,228880800,245815200,260330400,267926400,428464800,433908e3,468122400,482806800,496720800,512528400,528256800,543978e3,559706400,575427600,591156e3,606877200,622605600,638326800,65466e4,670381200,686109600,701830800,717559200,733280400,749008800,764125200,780458400,796179600,811908e3,828234e3,846381600,859683600,877831200,891133200,909280800,922582800,941335200,954032400,972784800,985482e3,1004234400,1017536400,1035684e3,1048986e3,1067133600,1080435600,1099188e3,1111885200,1130637600,1143334800,1162087200,1174791600,1193544e3,1206846e3,1224993600,1238295600,1256443200,1269745200,1288497600,1301281200,1319947200,1332644400,1351396800,1364698800,1382846400,1396234800,1414296e3,1427598e3,1446955200,1459047600,1473206400,1925002800],offset:[6952,7016,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,10800,14400,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,10800]},"Europe/Zurich":{
time:[-3675196800,-2385244800,-904431600,-891122400,-872982e3,-859672800,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],offset:[2048,1786,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Australia/Sydney":{time:[-2364076800,-1672524e3,-1665349200,-883605600,-876085200,-860364e3,-844635600,-828309600,-813186e3,57722400,68007600,89172e3,100062e3,120621600,131511600,152071200,162961200,183520800,195015600,215575200,226465200,247024800,257914800,278474400,289364400,309924e3,320814e3,341373600,352263600,372823200,386737200,404877600,415767600,436327200,447217200,467776800,478666800,499226400,511326e3,530071200,542775600,562125600,57483e4,59418e4,606279600,625629600,636519600,657079200,667969200,688528800,699418800,719978400,731473200,752032800,762922800,783482400,794372400,814932e3,828241200,846381600,859690800,877831200,891140400,909280800,92259e4,941335200,954039600,967341600,985489200,1004234400,1017543600,1035684e3,1048993200,1067133600,1080442800,1099188e3,1111892400,1130637600,1143946800,1162087200,1174791600,1193536800,1207450800,1223172e3,1238900400,1254621600,127035e4,1286071200,1301799600,1317520800,1333249200,1349575200,1365303600,1381024800,1396753200,1412474400,1428202800,1443924e3,1459652400,1475373600,1491102e3,1506823200,1522551600,1538877600,1554606e3,1570327200,1586055600,1601776800,1617505200,1633226400,1648954800,1664676e3,1680404400,1696125600,1712458800,172818e4,1743908400,1759629600,1775358e3,1791079200,1806807600,1822528800,1838257200,1853978400,1869706800,1886032800,1901761200,1917482400,1933210800],
offset:[36292,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600]},"Australia/Brisbane":{time:[-2366755200,-1672524e3,-1665349200,-883605600,-876085200,-860364e3,-844635600,-828309600,-813186e3,57722400,68007600,625629600,636519600,657079200,667969200,688528800,699418800,1925028e3],offset:[36728,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3]},"Australia/Adelaide":{time:[-2364076800,-2230156800,-1672524e3,-1665349200,-883605600,-876085200,-860364e3,-844635600,-828309600,-813186e3,57722400,68007600,89172e3,100062e3,120621600,131511600,152071200,162961200,183520800,195015600,215575200,226465200,247024800,257914800,278474400,289364400,309924e3,320814e3,341373600,352263600,372823200,384318e3,404877600,415767600,436327200,447217200,467776800,478666800,499226400,511326e3,530071200,542775600,562125600,57483e4,59418e4,606279600,625629600,637729200,657079200,667969200,688528800,701233200,719978400,731473200,752032800,764132400,783482400,796186800,814932e3,828241200,846381600,859690800,877831200,891140400,909280800,92259e4,941335200,954039600,972784800,985489200,1004234400,1017543600,1035684e3,1048993200,1067133600,1080442800,1099188e3,1111892400,1130637600,1143946800,1162087200,1174791600,1193536800,1207450800,1223172e3,1238900400,1254621600,127035e4,1286071200,1301799600,1317520800,1333249200,1349575200,1365303600,1381024800,1396753200,1412474400,1428202800,1443924e3,1459652400,1475373600,1491102e3,1506823200,1522551600,1538877600,1554606e3,1570327200,1586055600,1601776800,1617505200,1633226400,1648954800,1664676e3,1680404400,1696125600,1712458800,172818e4,1743908400,1759629600,1775358e3,1791079200,1806807600,1822528800,1838257200,1853978400,1869706800,1886032800,1901761200,1917482400,1933210800],
offset:[33260,32400,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800,34200,37800]},"Australia/ACT":{time:[-2364076800,-1672524e3,-1665349200,-883605600,-876085200,-860364e3,-844635600,-828309600,-813186e3,57722400,68007600,89172e3,100062e3,120621600,131511600,152071200,162961200,183520800,195015600,215575200,226465200,247024800,257914800,278474400,289364400,309924e3,320814e3,341373600,352263600,372823200,386737200,404877600,415767600,436327200,447217200,467776800,478666800,499226400,511326e3,530071200,542775600,562125600,57483e4,59418e4,606279600,625629600,636519600,657079200,667969200,688528800,699418800,719978400,731473200,752032800,762922800,783482400,794372400,814932e3,828241200,846381600,859690800,877831200,891140400,909280800,92259e4,941335200,954039600,967341600,985489200,1004234400,1017543600,1035684e3,1048993200,1067133600,1080442800,1099188e3,1111892400,1130637600,1143946800,1162087200,1174791600,1193536800,1207450800,1223172e3,1238900400,1254621600,127035e4,1286071200,1301799600,1317520800,1333249200,1349575200,1365303600,1381024800,1396753200,1412474400,1428202800,1443924e3,1459652400,1475373600,1491102e3,1506823200,1522551600,1538877600,1554606e3,1570327200,1586055600,1601776800,1617505200,1633226400,1648954800,1664676e3,1680404400,1696125600,1712458800,172818e4,1743908400,1759629600,1775358e3,1791079200,1806807600,1822528800,1838257200,1853978400,1869706800,1886032800,1901761200,1917482400,1933210800],offset:[36292,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600,36e3,39600]},"Asia/Almaty":{
time:[-1441152e3,-1247529600,354931200,370742400,386467200,402278400,418003200,433814400,449625600,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,695786400,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1925013600],offset:[18468,18e3,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,21600,18e3,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600,25200,21600]},"Asia/Ashkhabad":{time:[-1441152e3,-1247529600,354931200,370742400,386467200,402278400,418003200,433814400,449625600,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,695786400,192501e4],offset:[14012,14400,18e3,21600,18e3,21600,18e3,21600,18e3,21600,18e3,21600,18e3,21600,18e3,21600,18e3,21600,18e3,21600,18e3,21600,18e3,18e3,14400,18e3]},"Asia/Tokyo":{time:[-2587678861,-683769600,-672274800,-654739200,-640825200,-620265600,-609375600,-588816e3,-577926e3,1925024400],offset:[33539,32400,36e3,32400,36e3,32400,36e3,32400,36e3,32400]},"Asia/Taipei":{time:[-2335219200,-1017792e3,-766191600,-745804800,-733795200,-716860800,-699580800,-683856e3,-670636800,-65232e4,-639100800,-620784e3,-607564800,-589248e3,-576028800,-562896e3,-541728e3,-528681600,-510192e3,-497145600,-478656e3,-465609600,-449798400,-433987200,-418176e3,-402451200,-38664e4,-370915200,-355104e3,-339379200,-323568e3,-302486400,-291945600,-270950400,-260409600,134006400,149817600,165542400,181353600,299635200,307584e3,1925020800],offset:[29160,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800]},"Asia/Singapore":{time:[-2177452800,-2038176e3,-1167609600,-1073001600,-894153600,-879638400,-766972800,378691200,1925020800],offset:[24925,24925,25200,26400,26400,27e3,32400,27e3,28800]},"Asia/Karachi":{time:[-1988150400,-862617600,-764121600,-576115200,38793600,1018137600,1033862400,1212278400,1225497600,1239753600,1257033600,192501e4],offset:[16092,19800,23400,19800,18e3,18e3,21600,18e3,21600,18e3,21600,18e3]},"Asia/Manila":{time:[-3944678400,-2229292800,-1046649600,-1038700800,-873244800,-794188800,-496195200,-489283200,259372800,275184e3,1925020800],offset:[-57360,29040,28800,32400,28800,32400,28800,32400,28800,32400,28800]},"Asia/Shanghai":{
time:[-2177452800,-1600646400,-1585872e3,-933638400,-922060800,-908841600,-888796800,-881020800,-767836800,-745804800,-733795200,-716860800,-699580800,-683856e3,-670636800,-65232e4,-649987200,515556e3,527047200,545191200,558496800,577245600,589946400,608695200,622000800,640144800,653450400,671594400,6849e5,1925020800],offset:[29143,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800]},"Asia/Seoul":{time:[-1948752e3,-1830384e3,-767318400,-681177600,-672192e3,-654739200,-640828800,-623376e3,-609379200,-588816e3,-577929600,-498096e3,-462672e3,-451699200,-429753600,-418262400,-399513600,-387417600,-368064e3,-355968e3,-336614400,-324518400,-305164800,-293068800,-264902400,547610400,560919600,57906e4,592369200,1925024400],offset:[30472,30600,32400,32400,36e3,32400,36e3,32400,36e3,32400,36e3,32400,30600,34200,30600,34200,30600,34200,30600,34200,30600,34200,30600,34200,30600,32400,36e3,32400,36e3,32400]},"Asia/Tehran":{time:[-1704153600,-757382400,247190400,259286400,277776e3,283996800,290822400,306547200,322444800,338515200,673228800,685497600,701222400,71712e4,732758400,748656e3,764294400,780192e3,795830400,811728e3,827366400,843264e3,858988800,874886400,890524800,906422400,922060800,937958400,953596800,969494400,985219200,1001116800,1016755200,1032652800,1048291200,1064188800,1079827200,1095724800,1111449600,1127347200,1206057600,1221955200,123768e4,1253577600,1269216e3,1285113600,1300752e3,1316649600,1332288e3,1348185600,1363910400,1379808e3,1395446400,1411344e3,1426982400,144288e4,1458518400,1474416e3,1490140800,1506038400,1521676800,1537574400,1553212800,1569110400,1584748800,1600646400,1616371200,1632268800,1647907200,1663804800,1679443200,1695340800,1710979200,1726876800,1742601600,1758499200,1774137600,1790035200,1805673600,1821571200,1837209600,1853107200,1868745600,1884643200,1900368e3,1916265600,1931904e3],offset:[12344,12344,12600,14400,18e3,14400,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600,16200,12600]},"Asia/Dubai":{time:[-1577923200,1925006400],offset:[13272,14400]},"Asia/Kolkata":{time:[-3645216e3,-3155673600,-2019686400,-891561600,-872035200,-862617600,-764121600,1925011800],offset:[21208,21200,19270,19800,23400,19800,23400,19800]},"Asia/Hong_Kong":{
time:[-2056663398,-900882e3,-891547200,-884217600,-761176800,-747878400,-728508600,-717021e3,-697059e3,-683757e3,-668028600,-654726600,-636579e3,-623277e3,-605129400,-591827400,-573679800,-559773e3,-541625400,-528323400,-510179400,-498083400,-478729800,-466633800,-446675400,-435184200,-415225800,-403129800,-383776200,-371680200,-352326600,-340230600,-320877e3,-308781e3,-288822600,-277331400,-257373e3,-245881800,-225923400,-213827400,-194473800,-182377800,-163024200,-148509e3,-132784200,-117059400,-101334600,-85609800,-69280200,-53555400,-37830600,-22105800,-6381e3,9343800,25068600,40793400,56518200,72243e3,88572600,104297400,120022200,126070200,151471800,167196600,182921400,198646200,214371e3,295414200,309324600,1925020800],offset:[27402,28800,32400,30600,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800]},"Asia/Bangkok":{time:[-2840140800,-1570060800,1925017200],offset:[24124,24124,25200]},"Asia/Chongqing":{time:[-2177452800,-1600646400,-1585872e3,-933638400,-922060800,-908841600,-888796800,-881020800,-767836800,-745804800,-733795200,-716860800,-699580800,-683856e3,-670636800,-65232e4,-649987200,515556e3,527047200,545191200,558496800,577245600,589946400,608695200,622000800,640144800,653450400,671594400,6849e5,1925020800],offset:[29143,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800]},"Asia/Jerusalem":{
time:[-2840140800,-1640995200,-933631200,-923086800,-919029600,-857336400,-844293600,-825800400,-812671200,-794178e3,-779839200,-762642e3,-748303200,-731106e3,-681948e3,-673214400,-667947600,-652312800,-636411600,-622072800,-608936400,-591832800,-572475600,-558568800,-542840400,-527724e3,-514414800,-490831200,-482965200,-459381600,-451515600,-428536800,-418251600,-400111200,-387406800,142387200,150854400,167184e3,178675200,334108800,337741200,452649600,46233e4,482284800,494380800,516758400,526435200,545443200,558489600,576633600,589334400,609897600,620784e3,638323200,651628800,669772800,683683200,701827200,715737600,733708800,747187200,765158400,778032e3,796608e3,810086400,826848e3,842832e3,858902400,874195200,890352e3,90504e4,923018400,936324e3,955677600,970794e3,986778e3,1001293200,1017363600,1033952400,1048813200,1065142800,1081299600,1095814800,1112320800,1128823200,1143770400,1159668e3,117522e4,1189908e3,1206669600,1223172e3,1238119200,1254016800,1269568800,1284256800,1301623200,1317520800,1333072800,1348365600,1364522400,1382839200,1395972e3,1414288800,1427421600,1445738400,1458871200,1477792800,1490320800,1509242400,1521770400,1540692e3,1553824800,1572141600,1585274400,1603591200,1616724e3,1635645600,1648173600,1667095200,1679623200,1698544800,1711677600,1729994400,1743127200,1761444e3,1774576800,1792893600,1806026400,1824948e3,1837476e3,1856397600,1868925600,1887847200,190098e4,1919296800,1932429600],offset:[8454,8440,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,14400,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200]},"Asia/Kuwait":{time:[-719625600,1925002800],offset:[11212,10800]},"Asia/Muscat":{time:[-1577923200,1925006400],offset:[13272,14400]},"Asia/Qatar":{time:[-1577923200,76204800,1925002800],offset:[12368,14400,10800]},"Asia/Riyadh":{time:[-719625600,1925002800],offset:[11212,10800]},"Pacific/Auckland":{
time:[-3192393600,-1330293600,-1320012e3,-1300658400,-1287352800,-1269208800,-1255903200,-1237759200,-1224453600,-1206309600,-1192399200,-117486e4,-1160949600,-1143410400,-1125871200,-1112565600,-1094421600,-1081116e3,-1062972e3,-1049666400,-1031522400,-1018216800,-1000072800,-986767200,-968018400,-955317600,-936568800,-923263200,-757382400,152676e3,162356400,183520800,195015600,215575200,226465200,247024800,257914800,278474400,289364400,309924e3,320814e3,341373600,352263600,372823200,384318e3,404877600,415767600,436327200,447217200,467776800,478666800,499226400,510116400,530676e3,541566e3,562125600,573620400,59418e4,60507e4,623815200,637729200,655264800,669178800,686714400,700628400,718164e3,732682800,749613600,764132400,781063200,795582e3,812512800,827031600,844567200,858481200,876016800,889930800,907466400,921985200,938916e3,953434800,970365600,984884400,100242e4,1016334e3,1033869600,1047783600,1065319200,1079838e3,1096768800,1111287600,1128218400,1142737200,1159668e3,1174186800,1191117600,1207450800,1222567200,1238900400,1254016800,127035e4,1285466400,1301799600,1316916e3,1333249200,1348970400,1365303600,138042e4,1396753200,1411869600,1428202800,1443319200,1459652400,1474768800,1491102e3,1506218400,1522551600,1538272800,1554606e3,1569722400,1586055600,1601172e3,1617505200,1632621600,1648954800,1664071200,1680404400,1695520800,1712458800,1727575200,1743908400,1759024800,1775358e3,1790474400,1806807600,1821924e3,1838257200,1853373600,1869706800,1885428e3,1901761200,1916877600,1933210800],offset:[41944,41400,45e3,41400,43200,41400,43200,41400,43200,41400,43200,41400,43200,41400,43200,41400,43200,41400,43200,41400,43200,41400,43200,41400,43200,41400,43200,41400,43200,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800,43200,46800]},"Pacific/Chatham":{
time:[-3192393600,-757382400,152678700,162359100,183523500,195018300,215577900,226467900,247027500,257917500,278477100,289367100,309926700,320816700,341376300,352266300,372825900,384320700,404880300,415770300,436329900,447219900,467779500,478669500,499229100,510119100,530678700,541568700,562128300,573623100,594182700,605072700,623817900,637731900,655267500,669181500,686717100,700631100,718166700,732685500,749616300,764135100,781065900,795584700,812515500,827034300,844569900,858483900,876019500,889933500,907469100,921987900,938918700,953437500,970368300,984887100,1002422700,1016336700,1033872300,1047786300,1065321900,1079840700,1096771500,1111290300,1128221100,1142739900,1159670700,1174189500,1191120300,1207453500,1222569900,1238903100,1254019500,1270352700,1285469100,1301802300,1316918700,1333251900,1348973100,1365306300,1380422700,1396755900,1411872300,1428205500,1443321900,1459655100,1474771500,1491104700,1506221100,1522554300,1538275500,1554608700,1569725100,1586058300,1601174700,1617507900,1632624300,1648957500,1664073900,1680407100,1695523500,1712461500,1727577900,1743911100,1759027500,1775360700,1790477100,1806810300,1821926700,1838259900,1853376300,1869709500,1885430700,1901763900,1916880300,1933213500],offset:[44028,44100,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500,45900,49500]},"Pacific/Fakaofo":{time:[-2177452800,1325203200,1925038800],offset:[-41096,-39600,46800]},"Pacific/Honolulu":{time:[-2334139200,-1157320800,-1155470400,-880236e3,-769429800,-765410400,-712188e3,1924956e3],offset:[-37886,-37800,-34200,-37800,-34200,-34200,-37800,-36e3]},"America/Mexico_City":{
time:[-1514763396,-1343091600,-1234828800,-1220317200,-1207180800,-1191369600,-975283200,-963187200,-917136e3,-907372800,-821923200,-810086400,-627523200,-613008e3,828842400,846381600,860292e3,877831200,891741600,909280800,923191200,941335200,954640800,972784800,989114400,1001815200,1018144800,1035684e3,1049594400,1067133600,1081044e3,1099188e3,1112493600,1130637600,1143943200,1162087200,1175392800,1193536800,1207447200,1224986400,1238896800,1256436e3,1270346400,1288490400,1301796e3,131994e4,1333245600,1351389600,13653e5,1382839200,1396749600,1414288800,1428199200,1445738400,1459648800,1477792800,1491098400,1509242400,1522548e3,1540692e3,1554602400,1572141600,1586052e3,1603591200,1617501600,1635645600,1648951200,1667095200,1680400800,1698544800,1712455200,1729994400,1743904800,1761444e3,1775354400,1792893600,1806804e3,1824948e3,1838253600,1856397600,1869703200,1887847200,1901757600,1919296800,1933207200],offset:[-23796,-25200,-21600,-25200,-21600,-25200,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600,-18e3,-21600]},"Africa/Cairo":{time:[-2185401600,-929836800,-923097600,-906163200,-892857600,-875836800,-857779200,-844300800,-825811200,-812678400,-794188800,-779846400,-762652800,-399081600,-38664e4,-368323200,-355104e3,-336783600,-323643600,-305161200,-292021200,-273625200,-260485200,-242089200,-228949200,-210553200,-197413200,-178930800,-165790800,-147394800,-134254800,-115858800,-102632400,-84322800,-71096400,-52700400,-39474e3,-21164400,-7938e3,10371600,23598e3,41907600,55134e3,7353e4,86756400,105066e3,118292400,136602e3,149828400,168138e3,181364400,199760400,212986800,231296400,244522800,262832400,276058800,294368400,307594800,325990800,339217200,357526800,370753200,396406800,402289200,426819600,433825200,452221200,465447600,483757200,496983600,515293200,528519600,546829200,560055600,578451600,591678e3,610419600,623214e3,641523600,65475e4,673059600,686286e3,704682e3,717908400,736218e3,749444400,767754e3,780980400,799027200,812332800,830476800,843782400,861926400,875232e3,893376e3,906681600,925430400,938736e3,95688e4,970185600,988329600,1001635200,1019779200,1033084800,1051228800,1064534400,1083283200,1096588800,1114732800,1128038400,1146182400,1158883200,1177632e3,1189123200,1209081600,1219968e3,1240531200,1250812800,1272585600,1281484800,1284076800,1285891200,1400198400,1403827200,1406851200,1411689600,1924999200],
offset:[7509,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200]},"Africa/Johannesburg":{time:[-2458166400,-2109283200,-860968800,-845244e3,-829519200,-813794400,1924999200],offset:[6720,5400,7200,10800,7200,10800,7200]},"Asia/Kathmandu":{time:[-1577923200,504921600,1925012700],offset:[20476,19800,20700]},"US/Mountain":{time:[-2717668796,-1633298400,-1615154400,-1601848800,-1583704800,-1570399200,-1551650400,-1538949600,-1534111200,-880236e3,-769417200,-765410400,-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:[-25196,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200,-21600,-25200]},"Europe/Helsinki":{time:[-2890252800,-1535932800,-875664e3,-859762800,354679200,370407600,386128800,401857200,417582e3,433310400,449031600,465364800,481086e3,496814400,512535600,528264e3,543985200,559713600,575434800,591163200,606884400,622612800,638334e3,654667200,670388400,686116800,701838e3,717566400,733287600,749016e3,764737200,780465600,796186800,811915200,828241200,846388800,859690800,877838400,891140400,909288e3,92259e4,941342400,954039600,972792e3,985489200,1004241600,1017543600,1035691200,1048993200,1067140800,1080442800,1099195200,1111892400,1130644800,1143342e3,1162094400,1174791600,1193544e3,1206846e3,1224993600,1238295600,1256443200,1269745200,1288497600,1301194800,1319947200,1332644400,1351396800,1364698800,1382846400,1396148400,1414296e3,1427598e3,1445745600,1459047600,14778e5,1490497200,1509249600,1521946800,1540699200,1554001200,1572148800,1585450800,1603598400,1616900400,1635652800,164835e4,1667102400,1679799600,1698552e3,1711854e3,1730001600,1743303600,1761451200,1774753200,1792900800,1806202800,1824955200,1837652400,1856404800,1869102e3,1887854400,1901156400,1919304e3,1932606e3],offset:[5989,5989,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200]},"Europe/Stockholm":{
time:[-2871676800,-2208988800,-1692493200,-1680476400,323834400,338958e3,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],offset:[4332,3614,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Copenhagen":{time:[-2524521600,-2398291200,-1692493200,-1680483600,-935107200,-85725e4,-844552800,-828219600,-812498400,-79677e4,-781048800,-769381200,-747007200,-736376400,-715212e3,-706741200,-683157600,-675291600,323834400,338958e3,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],
offset:[3020,3020,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Atlantic/Reykjavik":{time:[-1956614400,-1668214800,-1647212400,-1636678800,-161343e4,-1605142800,-1581894e3,-1539565200,-153135e4,-968029200,-952293600,-942012e3,-920239200,-909961200,-888789600,-877906800,-857944800,-846457200,-826495200,-815007600,-795045600,-783558e3,-762991200,-752108400,-731541600,-717634800,-700092e3,-686185200,-668642400,-654735600,-636588e3,-623286e3,-605743200,-591836400,-573688800,-559782e3,-542239200,-528332400,-510789600,-496882800,-47934e4,-465433200,-447890400,-433983600,-415836e3,-401929200,-384386400,-370479600,-352936800,-33903e4,-321487200,-307580400,-290037600,-276130800,-258588e3,-244681200,-226533600,-212626800,-195084e3,-181177200,-163634400,-149727600,-132184800,-118278e3,-100735200,-86828400,-68680800,-54774e3,1924992e3],offset:[-5280,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0,-3600,0]},"Europe/Tallinn":{time:[-2840140800,-1638316800,-1632002400,-1618693200,-1593820800,-1535932800,-927936e3,-892944e3,-85725e4,-844552800,-828219600,-812498400,-797644800,354931200,370742400,386467200,402278400,418003200,433814400,449625600,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909288e3,92259e4,941342400,1017543600,1035691200,1048993200,1067140800,1080442800,1099195200,1111892400,1130644800,1143342e3,1162094400,1174791600,1193544e3,1206846e3,1224993600,1238295600,1256443200,1269745200,1288497600,1301194800,1319947200,1332644400,1351396800,1364698800,1382846400,1396148400,1414296e3,1427598e3,1445745600,1459047600,14778e5,1490497200,1509249600,1521946800,1540699200,1554001200,1572148800,1585450800,1603598400,1616900400,1635652800,164835e4,1667102400,1679799600,1698552e3,1711854e3,1730001600,1743303600,1761451200,1774753200,1792900800,1806202800,1824955200,1837652400,1856404800,1869102e3,1887854400,1901156400,1919304e3,1932606e3],
offset:[5940,5940,3600,7200,3600,5940,7200,10800,7200,3600,7200,3600,7200,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200]},"Europe/Riga":{time:[-2840140800,-1632002400,-1618693200,-1601676e3,-1597266e3,-1377302400,-928022400,-899510400,-85725e4,-844552800,-828219600,-812498400,-79677e4,-795830400,354931200,370742400,386467200,402278400,418003200,433814400,449625600,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,843966e3,859690800,877838400,891140400,909288e3,92259e4,941342400,985489200,1004241600,1017543600,1035691200,1048993200,1067140800,1080442800,1099195200,1111892400,1130644800,1143342e3,1162094400,1174791600,1193544e3,1206846e3,1224993600,1238295600,1256443200,1269745200,1288497600,1301194800,1319947200,1332644400,1351396800,1364698800,1382846400,1396148400,1414296e3,1427598e3,1445745600,1459047600,14778e5,1490497200,1509249600,1521946800,1540699200,1554001200,1572148800,1585450800,1603598400,1616900400,1635652800,164835e4,1667102400,1679799600,1698552e3,1711854e3,1730001600,1743303600,1761451200,1774753200,1792900800,1806202800,1824955200,1837652400,1856404800,1869102e3,1887854400,1901156400,1919304e3,1932606e3],offset:[5794,5794,9394,5794,9394,5794,7200,10800,7200,3600,7200,3600,7200,3600,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200]},"Europe/Vilnius":{
time:[-2840140800,-1672531200,-1585094400,-1561248e3,-1553558400,-928195200,-900115200,-85725e4,-844552800,-828219600,-812498400,-802137600,354931200,370742400,386467200,402278400,418003200,433814400,449625600,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891140400,909284400,922586400,941338800,1048993200,1067140800,1080442800,1099195200,1111892400,1130644800,1143342e3,1162094400,1174791600,1193544e3,1206846e3,1224993600,1238295600,1256443200,1269745200,1288497600,1301194800,1319947200,1332644400,1351396800,1364698800,1382846400,1396148400,1414296e3,1427598e3,1445745600,1459047600,14778e5,1490497200,1509249600,1521946800,1540699200,1554001200,1572148800,1585450800,1603598400,1616900400,1635652800,164835e4,1667102400,1679799600,1698552e3,1711854e3,1730001600,1743303600,1761451200,1774753200,1792900800,1806202800,1824955200,1837652400,1856404800,1869102e3,1887854400,1901156400,1919304e3,1932606e3],offset:[6076,5040,5736,3600,7200,3600,10800,7200,3600,7200,3600,7200,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,14400,10800,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,7200,3600,7200,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200,10800,7200]},"America/Lima":{time:[-2524521600,-1938556800,-1009843200,-1002067200,-986774400,-971049600,-955324800,-9396e5,504921600,512697600,536457600,544233600,631152e3,638928e3,757382400,765158400,1924974e3],offset:[-18492,-18516,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3]},"America/Santiago":{
time:[-2524521600,-1892678400,-1688428800,-1619222400,-1593820800,-1336003200,-13176e5,-1304380800,-1286064e3,-1272844800,-1254528e3,-1241308800,-1222992e3,-1209772800,-1191369600,-1178150400,-870566400,-865296e3,-740534400,-736387200,-718070400,-713667600,-36633600,-23932800,-3369600,7516800,24451200,37756800,55900800,69206400,87955200,100656e3,118195200,132105600,150854400,163555200,182304e3,195609600,213753600,227059200,245203200,258508800,277257600,289958400,308707200,321408e3,340156800,353462400,371606400,384912e3,403056e3,416361600,434505600,447811200,46656e4,479260800,498009600,510710400,529459200,545184e3,560908800,574214400,592358400,605664e3,624412800,637113600,653443200,668563200,687312e3,700617600,718761600,732067200,750211200,763516800,781660800,794966400,813715200,826416e3,845164800,85968e4,876614400,88992e4,906854400,923184e3,939513600,952819200,971568e3,984268800,1003017600,1015718400,1034467200,1047168e3,1065916800,1079222400,1097366400,1110672e3,1128816e3,1142121600,1160870400,1173571200,119232e4,1206835200,1223769600,1237075200,1255219200,1270339200,1286668800,1304812800,1313884800,1335657600,1346544e3,1367107200,1378598400,1398556800,1410048e3,1463270400,1471132800,149472e4,1502582400,1526169600,1534032e3,1554595200,1567900800,1586044800,1599350400,1617494400,16308e5,1648944e3,1662249600,1680393600,1693699200,1712448e3,1725753600,1743897600,1757203200,1775347200,1788652800,1806796800,1820102400,1838246400,1851552e3,1870300800,1883001600,1901750400,1915056e3,19332e5],offset:[-16966,-16966,-18e3,-16966,-14400,-16966,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-18e3,-14400,-10800,-14400,-18e3,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800,-14400,-10800]},"Asia/Bahrain":{time:[-1577923200,76204800,1925002800],offset:[12368,14400,10800]},"Asia/Jakarta":{time:[-3231273600,-1451693568,-117288e4,-876614400,-766022400,-683856e3,-620784e3,-189388800,1925017200],offset:[25632,25632,26400,27e3,32400,27e3,28800,27e3,25200]},"Africa/Lagos":{time:[-2035584e3,-1940889600,-1767225600,-1588464e3,1924995600],offset:[815,0,815,1800,3600]},"Pacific/Norfolk":{
time:[-2177452800,-599616e3,152071200,162961200,1443924e3,1570327200,1586055600,1601776800,1617505200,1633226400,1648954800,1664676e3,1680404400,1696125600,1712458800,172818e4,1743908400,1759629600,1775358e3,1791079200,1806807600,1822528800,1838257200,1853978400,1869706800,1886032800,1901761200,1917482400,1933210800],offset:[40312,40320,41400,45e3,41400,39600,43200,39600,43200,39600,43200,39600,43200,39600,43200,39600,43200,39600,43200,39600,43200,39600,43200,39600,43200,39600,43200,39600,43200]},"America/Juneau":{time:[-3225169588,-2188987200,-880236e3,-769420800,-765410400,-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,438998400,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:[54139,-32261,-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,-28800,-28800,-25200,-28800,-25200,-28800,-25200,-32400,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400,-28800,-32400]},"Asia/Ho_Chi_Minh":{time:[-2004048e3,-1851552e3,-852080400,-782614800,-767836800,-718070400,-457747200,-315622800,171849600,1925017200],offset:[25600,25590,25200,28800,32400,25200,28800,25200,28800,25200]},"Australia/Perth":{
time:[-2337897600,-1672524e3,-1665349200,-883605600,-876085200,-860364e3,-844635600,152071200,162961200,436327200,447217200,690343200,699418800,1165111200,1174791600,1193536800,1206846e3,1224986400,1238295600,1925020800],offset:[27804,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800,32400,28800]},"Europe/Malta":{time:[-2403475200,-1690761600,-168048e4,-1664755200,-1648944e3,-163512e4,-1616889600,-1604275200,-1585526400,-1571011200,-1555286400,-932428800,-85725e4,-844552800,-828219600,-812584800,-798066e3,-781048800,-76671e4,-750895200,-733352400,-719452800,-70191e4,-689205600,-670453200,-114048e3,-103161600,-81993600,-71708400,-50544e3,-40258800,-18489600,-8204400,1296e4,23245200,43804800,54694800,75859200,86749200,102384e3,118112400,135734400,148525200,167191200,180496800,198640800,211946400,230090400,243396e3,26154e4,274845600,292989600,306295200,323316e3,338349600,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],offset:[3484,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Amsterdam":{
time:[-4260211200,-1693699200,-168048e4,-1663452e3,-1650142800,-1633212e3,-1617483600,-1601157600,-1586034e3,-1569708e3,-1554584400,-1538258400,-1523134800,-15075e5,-1490562e3,-1470175200,-1459112400,-1443996e3,-1427662800,-1406671200,-1396213200,-1376949600,-1364763600,-1345413600,-1333314e3,-1313791200,-1301259600,-1282255200,-126981e4,-1250719200,-1238360400,-1219183200,-1206910800,-1186956e3,-1175461200,-1156024800,-1143406800,-1124488800,-1111957200,-1092952800,-1080507600,-1061330400,-1049058e3,-1029189600,-1025740800,-1017608400,-998258400,-986158800,-966722400,-954104400,-935020800,-85725e4,-844552800,-828219600,-812498400,-79677e4,-781048800,-766616400,228880800,244004400,260330400,276058800,29178e4,307508400,323834400,338958e3,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],offset:[1172,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,1172,4772,4800,1200,4800,1200,4800,1200,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Brussels":{
time:[-2840140800,-2450994150,-1740355200,-1693699200,-1680476400,-1663452e3,-1650142800,-1632002400,-1618693200,-1613822400,-1604278800,-1585526400,-1574038800,-1552262400,-1539997200,-1520553600,-1507510800,-1490572800,-1473642e3,-1459123200,-1444006800,-1427673600,-1411952400,-1396224e3,-1379293200,-1364774400,-1348448400,-1333324800,-1316394e3,-1301259600,-1284328800,-126981e4,-1253484e3,-1238360400,-1221429600,-1206910800,-1191189600,-1175461200,-1160344800,-1143406800,-1127685600,-1111957200,-1096840800,-1080507600,-1063576800,-1049058e3,-1033336800,-1017608400,-1002492e3,-986158800,-969228e3,-950475600,-942012e3,-934664400,-85725e4,-844552800,-828219600,-812498400,-798066e3,-781048800,-766616400,-745452e3,-733266e3,228880800,244004400,260330400,276058800,29178e4,307508400,323834400,338958e3,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],offset:[1050,1050,0,3600,7200,3600,7200,3600,7200,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]},"Europe/Lisbon":{
time:[-1830386205,-1689555600,-1677798e3,-1667437200,-1647734400,-1635814800,-1616198400,-1604365200,-1584662400,-1572742800,-155304e4,-1541206800,-1521504e3,-1442451600,-1426809600,-1379293200,-1364774400,-1348448400,-1333324800,-1316394e3,-1301270400,-1284339600,-1269820800,-1221440400,-1206921600,-1191200400,-1175472e3,-1127696400,-1111968e3,-1096851600,-1080518400,-1063587600,-1049068800,-1033347600,-1017619200,-1002502800,-986169600,-969238800,-950486400,-942022800,-922665600,-906944400,-891129600,-877309200,-873680400,-864e6,-857952e3,-845859600,-842835600,-831340800,-825897600,-81441e4,-810781200,-799891200,-794448e3,-782960400,-779331600,-768441600,-762998400,-749091600,-733363200,-717631200,-701902800,-686181600,-670453200,-654732e3,-639003600,-623282400,-607554e3,-591832800,-575499600,-559778400,-54405e4,-528328800,-512600400,-496879200,-481150800,-465429600,-449701200,-43398e4,-417646800,-401925600,-386197200,-370476e3,-354747600,-339026400,-323298e3,-307576800,-291848400,-276127200,-260398800,-244677600,-228344400,-212623200,-196894800,-181173600,-165445200,-149724e3,-133995600,-118274400,212547600,228268800,243997200,260323200,276051600,291772800,307504800,323222400,338954400,354675600,370404e3,386125200,401853600,417578400,433303200,449024400,465357600,481078800,496807200,512528400,528256800,543978e3,559706400,575427600,591156e3,606877200,622605600,638326800,65466e4,670381200,686109600,701830800,717559200,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846381600,859683600,877831200,891133200,909280800,922582800,941335200,954032400,972784800,985482e3,1004234400,1017536400,1035684e3,1048986e3,1067133600,1080435600,1099188e3,1111885200,1130637600,1143334800,1162087200,1174784400,1193536800,1206838800,1224986400,1238288400,1256436e3,1269738e3,1288490400,1301187600,131994e4,1332637200,1351389600,1364691600,1382839200,1396141200,1414288800,1427590800,1445738400,1459040400,1477792800,149049e4,1509242400,1521939600,1540692e3,1553994e3,1572141600,1585443600,1603591200,1616893200,1635645600,1648342800,1667095200,1679792400,1698544800,1711846800,1729994400,1743296400,1761444e3,1774746e3,1792893600,1806195600,1824948e3,1837645200,1856397600,1869094800,1887847200,1901149200,1919296800,1932598800],offset:[-2205,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,7200,3600,0,3600,7200,3600,0,3600,7200,3600,0,3600,7200,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,3600,7200,3600,7200,3600,7200,3600,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0]},"Europe/Dublin":{
time:[-2821651200,-1691964e3,-1680469200,-1664143200,-1650142800,-1633903200,-1617483600,-1601848800,-1586034e3,-1570399200,-1552165200,-1538344800,-152253e4,-15075e5,-1490562e3,-1473631200,-1460926800,-1442786400,-1428872400,-1410732e3,-1396213200,-1379282400,-1364763600,-1348437600,-1333314e3,-1315778400,-1301259600,-1284328800,-126981e4,-1253484e3,-1238360400,-1221429600,-1206910800,-118998e4,-1175461200,-1159135200,-1143406800,-1126476e3,-1111957200,-1095631200,-1080507600,-1063576800,-1049058e3,-1032127200,-1017608400,-1001282400,-986158800,-969228e3,-950475600,-942012e3,-733352400,-719445600,-699483600,-684972e3,-668034e3,-654732e3,-636584400,-622072800,-605739600,-590623200,-57429e4,-558568800,-542235600,-527119200,-512600400,-496274400,-481150800,-46422e4,-449701200,-432165600,-417646800,-401320800,-386197200,-369266400,-354747600,-337816800,-323298e3,-306972e3,-291848400,-276732e3,-257979600,-245282400,-22653e4,-213228e3,-195080400,-182383200,-163630800,-150933600,-132181200,-119484e3,-100731600,-88034400,-68677200,-59004e3,57726e3,69818400,89175600,101268e3,120625200,132717600,152074800,164167200,183524400,196221600,214974e3,227671200,246423600,259120800,278478e3,290570400,309927600,32202e4,341377200,354675600,372823200,386125200,404272800,417574800,435722400,449024400,467776800,481078800,499226400,512528400,530676e3,543978e3,562125600,575427600,593575200,606877200,625629600,638326800,657079200,670381200,688528800,701830800,719978400,733280400,751428e3,76473e4,782877600,796179600,814327200,828234e3,846381600,859683600,877831200,891133200,909280800,922582800,941335200,954032400,972784800,985482e3,1004234400,1017536400,1035684e3,1048986e3,1067133600,1080435600,1099188e3,1111885200,1130637600,1143334800,1162087200,1174784400,1193536800,1206838800,1224986400,1238288400,1256436e3,1269738e3,1288490400,1301187600,131994e4,1332637200,1351389600,1364691600,1382839200,1396141200,1414288800,1427590800,1445738400,1459040400,1477792800,149049e4,1509242400,1521939600,1540692e3,1553994e3,1572141600,1585443600,1603591200,1616893200,1635645600,1648342800,1667095200,1679792400,1698544800,1711846800,1729994400,1743296400,1761444e3,1774746e3,1792893600,1806195600,1824948e3,1837645200,1856397600,1869094800,1887847200,1901149200,1919296800,1932598800],offset:[-1500,-1521,2079,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0,3600,0]},"Europe/Oslo":{
time:[-2366755200,-1691881200,-1680566400,-927507600,-85725e4,-844552800,-828219600,-812498400,-79677e4,-781048800,-765320400,-340840800,-324507600,-308786400,-293058e3,-277336800,-261608400,-245887200,-230158800,-214437600,-198709200,-182988e3,-166654800,-147909600,-135205200,323834400,338958e3,354679200,370407600,386128800,401857200,417578400,433306800,449028e3,465361200,481082400,496810800,512532e3,528260400,543981600,55971e4,575431200,591159600,606880800,622609200,638330400,654663600,670384800,686113200,701834400,717562800,733284e3,749012400,764733600,780462e3,796183200,811911600,828237600,846385200,859687200,877834800,891136800,909284400,922586400,941338800,954036e3,972788400,985485600,1004238e3,101754e4,1035687600,1048989600,1067137200,1080439200,1099191600,1111888800,1130641200,1143338400,1162090800,1174788e3,1193540400,1206842400,122499e4,1238292e3,1256439600,1269741600,1288494e3,1301191200,1319943600,1332640800,1351393200,1364695200,1382842800,1396144800,1414292400,1427594400,1445742e3,1459044e3,1477796400,1490493600,1509246e3,1521943200,1540695600,1553997600,1572145200,1585447200,1603594800,1616896800,1635649200,1648346400,1667098800,1679796e3,1698548400,1711850400,1729998e3,17433e5,1761447600,1774749600,1792897200,1806199200,1824951600,1837648800,1856401200,1869098400,1887850800,1901152800,1919300400,1932602400],offset:[2580,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600,7200,3600]}}},15625:(e,t,i)=>{"use strict";i.d(t,{Version:()=>r});var s=i(88537);class r{constructor(e,t){this._major=e,this._minor=t}major(){return this._major}minor(){return this._minor}isZero(){return 0===this._major&&0===this._minor}toString(){return this._major+"."+this._minor}compareTo(e){return this._majore._major?1:this._minore._minor?1:0}isLess(e){return this.compareTo(e)<0}isLessOrEqual(e){return this.compareTo(e)<=0}isEqual(e){return 0===this.compareTo(e)}isGreater(e){return this.compareTo(e)>0}isGreaterOrEqual(e){return this.compareTo(e)>=0}static parse(e){if(e instanceof r)return new r(e.major(),e.minor());if("number"==typeof e)return(0,s.assert)(Math.floor(e)===e,"Version should not be a float number"),new r(e,0);if("string"==typeof e){const t=e.split(".");if(1===t.length){const i=parseInt(t[0],10);return(0,s.assert)(!isNaN(i),"Bad version string: "+e),new r(i,0)}if(2===t.length){const i=parseInt(t[0],10);(0,s.assert)(!isNaN(i),"Bad version string: "+e);const n=parseInt(t[1],10);return(0,
s.assert)(!isNaN(n),"Bad version string: "+e),new r(i,n)}throw new Error("Bad version string (one dot expected): "+e)}throw new Error("Bad version: "+e)}}r.ZERO=new r(0,0)},40144:(e,t,i)=>{"use strict";i.d(t,{WatchedObject:()=>a});var s=i(52714),r=i.n(s),n=i(80643);function o(e,t){return(0,n.deepEquals)(e,t)[0]}class a extends(r()){constructor(e,t=o){super(e),this._comparator=t}setValue(e,t){!1===this._comparator(this.value(),e)&&super.setValue(e,t)}}},52714:(e,t,i)=>{"use strict";e=i.nmd(e);var s=i(98125).getLogger("Common.WatchedValue");function r(){}function n(e){if(!(this instanceof n))return new n(e);arguments.length>0&&(this._value=e),this._listeners=[]}n.prototype.value=function(){return this._owner?this._owner._value:this._value},n.prototype.setValue=function(e,t){var i=this._owner?this._owner:this;if("function"==typeof i.hook&&(e=i.hook(e)),i.writeLock)return i._value;var r=i._value===e||Number.isNaN(i._value)&&Number.isNaN(e);if(!t&&r&&i.hasOwnProperty("_value"))return e;i._value=e;for(var n=i._listeners.slice(),o=0,a=0;a{"use strict";i.d(t,{TOOLBAR_WIDTH_EXPANDED:()=>s,TOOLBAR_WIDTH_COLLAPSED:()=>r});const s=52,r=5},84746:(e,t,i)=>{"use strict";i.d(t,{DrawingToolbarBootloader:()=>a});var s=i(85593),r=i(45216),n=i(38881),o=i(5683);class a extends n.ChunkLoader{constructor(e){super(),this._opts=e,s.isDrawingToolbarVisible.value()&&(this._opts.resizerBridge.negotiateWidth(r.TOOLBAR_WIDTH_EXPANDED),this._opts.resizerBridge.container.value().appendChild((0,o.createStubElem)()))}_startLoading(){return Promise.all([i.e(5514),i.e(9129),i.e(2e3),i.e(6363),i.e(3466),i.e(1112),i.e(4763),i.e(323),i.e(5175),i.e(7757),i.e(9837),i.e(1075),i.e(1890),i.e(1784),i.e(2878)]).then(i.bind(i,26862)).then(e=>new e.DrawingToolbarRenderer(this._opts.resizerBridge.container.value(),{...this._opts}))}}},85593:(e,t,i)=>{"use strict";i.d(t,{isDrawingToolbarVisible:()=>c});var s=i(56840),r=i(67337),n=i(52714),o=i.n(n);const a=!r.enabled("hide_left_toolbar_by_default"),l=s.getBool("ChartDrawingToolbarWidget.visible",a),c=new(o())(l)},9753:(e,t,i)=>{"use strict";i.d(t,{HeaderToolbarBootloader:()=>o});var s=i(18387),r=i(5683),n=i(38881);class o extends n.ChunkLoader{constructor(e,t){super(),this._toolsBootloader=e,this._headerProps=t,this._headerProps.resizerBridge.negotiateHeight(s.HEADER_TOOLBAR_HEIGHT_EXPANDED),this._headerProps.resizerBridge.container.value().appendChild((0,r.createStubElem)())}_startLoading(){return Promise.all([this._toolsBootloader.load(),this._loadHeaderToolbar()]).then(([e,t])=>new t(this._headerProps.resizerBridge.container.value(),{...this._headerProps,tools:e}))}_loadHeaderToolbar(){return Promise.all([i.e(5514),i.e(8268),i.e(1320),i.e(9837),i.e(3005)]).then(i.bind(i,53335)).then(e=>e.HeaderToolbarRenderer)}}},18387:(e,t,i)=>{"use strict";i.d(t,{HEADER_TOOLBAR_HEIGHT_EXPANDED:()=>r,HEADER_TOOLBAR_HEIGHT_COLLAPSED:()=>n});var s=i(98033);const r=parseInt(s["css-value-header-toolbar-height"]),n=3},84120:(e,t,i)=>{"use strict";i.d(t,{RestrictedToolsetBootloader:()=>r});var s=i(38881);class r extends s.ChunkLoader{_startLoading(){return Promise.all([i.e(5514),i.e(9129),i.e(2e3),i.e(6363),i.e(3466),i.e(7836),i.e(3921),i.e(1112),i.e(6909),i.e(5998),i.e(4763),i.e(7419),i.e(9042),i.e(6560),i.e(4474),i.e(1594),i.e(5175),i.e(3944),i.e(3645),i.e(9837),i.e(1075),i.e(9505),i.e(5516)]).then(i.bind(i,79389)).then(e=>e.getRestrictedToolSet())}}},22668:(e,t,i)=>{"use strict";i.d(t,{FavoriteStudyTemplateService:()=>r});var s=i(9127);class r extends s.CommonJsonStoreService{constructor(e,t){super(e,t,"FAVORITE_STUDY_TEMPLATES_CHANGED","StudyTemplates.quicks",[])}remove(e){this.set(this.get().filter(t=>t!==e))}}},52741:(e,t,i)=>{"use strict";i.d(t,{DropdownApi:()=>s});class s{constructor(e,t){this._headerToolbar=e,this._dropdownId=t}applyOptions(e){this._headerToolbar.updateDropdown(this._dropdownId,e)}remove(){this._headerToolbar.removeDropdown(this._dropdownId)}}},62060:(e,t,i)=>{"use strict";var s
;i.d(t,{ACTION_ID:()=>s}),function(e){e.TVActionId="TVActionId",e.ChartApplyIndicatorsToAllCharts="Chart.ApplyIndicatorsToAllCharts",e.ChartChangeTimeZone="Chart.ChangeTimeZone",e.ChartDialogsShowChangeInterval="Chart.Dialogs.ShowChangeInterval",e.ChartDialogsShowChangeSymbol="Chart.Dialogs.ShowChangeSymbol",e.ChartDialogsShowCompareOrAddSymbol="Chart.Dialogs.ShowCompareOrAddSymbol",e.ChartDialogsShowGeneralSettings="Chart.Dialogs.ShowGeneralSettings",e.ChartDialogsShowGeneralSettingsScalesTab="Chart.Dialogs.ShowGeneralSettings.ScalesTab",e.ChartDialogsShowGeneralSettingsSymbolTab="Chart.Dialogs.ShowGeneralSettings.SymbolTab",e.ChartDialogsShowGoToDate="Chart.Dialogs.ShowGoToDate",e.ChartDialogsShowInsertIndicators="Chart.Dialogs.ShowInsertIndicators",e.ChartDialogsShowSymbolInfo="Chart.Dialogs.ShowSymbolInfo",e.ChartDrawingToolbarToggleVisibility="Chart.DrawingToolbar.ToggleVisibility",e.ChartLinesToggleBidAskLinesVisibility="Chart.Lines.ToggleBidAskLinesVisibility",e.ChartLinesToggleHighLowLinesVisibility="Chart.Lines.ToggleHighLowLinesVisibility",e.ChartLinesToggleAverageLineVisibility="Chart.Lines.ToggleAverageLineVisibility",e.ChartLinesToggleSeriesPrevCloseLineVisibility="Chart.Lines.ToggleSeriesPrevCloseLineVisibility",e.ChartLinesToggleSeriesPriceLineVisibility="Chart.Lines.ToggleSeriesPriceLineVisibility",e.ChartLineToolPitchforkChangeTypeToInside="Chart.LineTool.Pitchfork.ChangeTypeToInside",e.ChartLineToolPitchforkChangeTypeToModifiedSchiff="Chart.LineTool.Pitchfork.ChangeTypeToModifiedSchiff",e.ChartLineToolPitchforkChangeTypeToOriginal="Chart.LineTool.Pitchfork.ChangeTypeToOriginal",e.ChartLineToolPitchforkChangeTypeToSchiff="Chart.LineTool.Pitchfork.ChangeTypeToSchiff",e.ChartMarksToggleVisibility="Chart.Marks.ToggleVisibility",e.ChartMoveChartInLayout="Chart.MoveChartInLayout",e.ChartMoveChartInLayoutBack="Chart.MoveChartInLayout.Back",e.ChartMoveChartInLayoutForward="Chart.MoveChartInLayout.Forward",e.ChartObjectTreeShow="Chart.ObjectTree.Show",e.ChartPriceScaleLabelsToggleBidAskLabelsVisibility="Chart.PriceScale.Labels.ToggleBidAskLabelsVisibility",e.ChartPriceScaleLabelsToggleHighLowPriceLabelsVisibility="Chart.PriceScale.Labels.ToggleHighLowPriceLabelsVisibility",e.ChartPriceScaleLabelsToggleAveragePriceLabelVisibility="Chart.PriceScale.Labels.ToggleAveragePriceLabelVisibility",e.ChartPriceScaleLabelsToggleIndicatorsNameLabelsVisibility="Chart.PriceScale.Labels.ToggleIndicatorsNameLabelsVisibility",e.ChartPriceScaleLabelsToggleIndicatorsValueLabelsVisibility="Chart.PriceScale.Labels.ToggleIndicatorsValueLabelsVisibility",e.ChartPriceScaleLabelsToggleSeriesLastValueVisibility="Chart.PriceScale.Labels.ToggleSeriesLastValueVisibility",e.ChartPriceScaleLabelsToggleSymbolNameLabelsVisibility="Chart.PriceScale.Labels.ToggleSymbolNameLabelsVisibility",e.ChartPriceScaleLabelsToggleSymbolPrevCloseValueVisibility="Chart.PriceScale.Labels.ToggleSymbolPrevCloseValueVisibility",e.ChartPriceScaleMergeAllScalesToLeft="Chart.PriceScale.MergeAllScalesToLeft",
e.ChartPriceScaleMergeAllScalesToRight="Chart.PriceScale.MergeAllScalesToRight",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"}(s||(s={}))},28296:(e,t,i)=>{"use strict";i.r(t),i.d(t,{Action:()=>l,ActionAsync:()=>c,Separator:()=>h,Loader:()=>d});var s=i(88537),r=i(2872),n=i.n(r),o=i(68335),a=i(9423);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"}}},61671:(e,t,i)=>{"use strict";i.d(t,{defaultContextMenuOptions:()=>Ie,createPasteAction:()=>Me,createActionCopyPrice:()=>Le,createMTPredictorActions:()=>Ae,createLinesAction:()=>Ee,createSyncDrawingActions:()=>ke,ActionsProvider:()=>De});var s=i(88537),r=i(98125),n=(i(60521),i(80643)),o=i(67337),a=i(28296),l=i(62138),c=i(41847),h=i(81851),d=(i(73591),i(13672)),u=i(56756),p=i(68335),_=(i(25812),i(9771)),m=i(55153),g=(i(37667),i(88679)),f=i(94578),v=i(14291),S=i(79680),y=i(82724),b=i(28353),w=i(24980);i(85733);(0,r.getLogger)("Chart.ActionsProvider"),new w.TranslatedString("show alert label lines",(0,b.t)("show alert label lines")),new w.TranslatedString("hide alert label lines",(0,b.t)("hide alert label lines"));const C=new w.TranslatedString("change visibility",(0,b.t)("change visibility")),P=new w.TranslatedString("pin to scale {label}",(0,b.t)("pin to scale {label}")),T=new w.TranslatedString("pin to right scale",(0,b.t)("pin to right scale")),x=new w.TranslatedString("pin to left scale",(0,b.t)("pin to left scale")),I=(new w.TranslatedString("change earnings visibility",(0,b.t)("change earnings visibility")),new w.TranslatedString("change dividends visibility",(0,b.t)("change dividends visibility")),
new w.TranslatedString("change splits visibility",(0,b.t)("change splits visibility")),new w.TranslatedString("change continuous contract switch visibility",(0,b.t)("change continuous contract switch visibility")),new w.TranslatedString("show all ideas",(0,b.t)("show all ideas"))),M=new w.TranslatedString("show ideas of followed users",(0,b.t)("show ideas of followed users")),L=new w.TranslatedString("show my ideas only",(0,b.t)("show my ideas only")),A=(new w.TranslatedString("change events visibility on chart",(0,b.t)("change events visibility on chart")),new w.TranslatedString("add this symbol to entire layout",(0,b.t)("add this symbol to entire layout"))),E=new w.TranslatedString("add this indicator to entire layout",(0,b.t)("add this indicator to entire layout")),k=(new w.TranslatedString("add this strategy to entire layout",(0,b.t)("add this strategy to entire layout")),new w.TranslatedString("add this financial metric to entire layout",(0,b.t)("add this financial metric to entire layout")),new w.TranslatedString("apply drawing template",(0,b.t)("apply drawing template")),new w.TranslatedString("lock objects",(0,b.t)("lock objects"))),D=new w.TranslatedString("unlock objects",(0,b.t)("unlock objects")),V=((0,b.t)("Add alert"),(0,b.t)("Add alert on {series}"),(0,b.t)("Add alert on {drawing}"),(0,y.appendEllipsis)((0,b.t)("Edit {title} alert"))),B=((0,b.t)("Extend alert lines"),(0,b.t)("Trade"),(0,y.appendEllipsis)((0,b.t)("Create limit order")),(0,b.t)("Show")),N=(0,b.t)("Hide"),R=((0,b.t)("MTPredictor"),(0,b.t)("Apply Manual Risk/Reward"),(0,b.t)("Apply Manual Decision Point"),(0,b.t)("Analyze Trade Setup"),(0,b.t)("Apply Elliott Wave"),(0,b.t)("Apply Elliott Wave Intermediate"),(0,b.t)("Apply Elliott Wave Major"),(0,b.t)("Apply Elliott Wave Minor"),(0,b.t)("Apply WPT Up Wave"),(0,b.t)("Up Wave 1 or A"),(0,b.t)("Up Wave 2 or B"),(0,b.t)("Up Wave C"),(0,b.t)("Up Wave 3"),(0,b.t)("Up Wave 4"),(0,b.t)("Up Wave 5"),(0,b.t)("Apply WPT Down Wave"),(0,b.t)("Down Wave 1 or A"),(0,b.t)("Down Wave 2 or B"),(0,b.t)("Down Wave C"),(0,b.t)("Down Wave 3"),(0,b.t)("Down Wave 4"),(0,b.t)("Down Wave 5"),(0,b.t)("Pinned to scale {label} (hidden)")),O=(0,b.t)("Pinned to right scale (hidden)"),F=(0,b.t)("Pin to scale {label} (hidden)"),W=(0,b.t)("Pin to right scale (hidden)"),H=(0,b.t)("Pinned to scale {label}"),z=(0,b.t)("Pinned to right scale"),U=(0,b.t)("Pin to scale {label}"),j=(0,b.t)("Pin to right scale"),G=(0,b.t)("Pinned to left scale (hidden)"),q=(0,b.t)("Pin to left scale (hidden)"),Y=(0,b.t)("Pinned to left scale"),K=(0,b.t)("Pin to left scale"),$=(0,b.t)("Pin to new left scale"),X=(0,b.t)("Pin to new right scale"),Z=(0,b.t)("Pin to scale (now {label})"),J=(0,b.t)("Pin to scale (now no scale)"),Q=(0,b.t)("Pin to scale (now left)"),ee=(0,b.t)("Pin to scale (now right)"),te=(0,b.t)("No scale (fullscreen)"),ie=(0,b.t)("Move to"),se=(0,b.t)("Existing pane above"),re=(0,b.t)("New pane above"),ne=(0,b.t)("Existing pane below"),oe=(0,b.t)("New pane below"),ae=(0,b.t)("Bring to front"),le=(0,b.t)("Send to back"),ce=(0,
b.t)("Bring forward"),he=(0,b.t)("Send backward"),de=(0,b.t)("Visual order"),ue=(0,b.t)("Lines"),pe=((0,y.appendEllipsis)((0,b.t)("Add indicator/strategy on {studyTitle}")),(0,y.appendEllipsis)((0,b.t)("Add financial metric for {instrumentName}")),(0,y.appendEllipsis)((0,b.t)("Settings"))),_e=((0,b.t)("Apply default"),(0,y.appendEllipsis)((0,b.t)("Save as")),(0,b.t)("Copy")),me=(0,b.t)("Clone"),ge=((0,b.t)("Template"),(0,b.t)("Go to {lineToolName}")),fe=(0,b.t)("Unlock"),ve=(0,b.t)("Lock"),Se=((0,b.t)("Show earnings"),(0,b.t)("Show dividends"),(0,b.t)("Show splits"),(0,b.t)("Show continuous contract switch"),(0,b.t)("Show all ideas")),ye=(0,b.t)("Show ideas of followed users"),be=(0,b.t)("Show my ideas only"),we=((0,y.appendEllipsis)((0,b.t)("Settings")),(0,b.t)("Hide events on chart"),(0,b.t)("Add this symbol to entire layout")),Ce=(0,b.t)("Add this indicator to entire layout"),Pe=((0,b.t)("Add this strategy to entire layout"),(0,b.t)("Add this financial metric to entire layout"),(0,b.t)("No sync"),(0,b.t)("Sync in layout"),(0,b.t)("Sync globally"),(0,y.appendEllipsis)((0,b.t)("Symbol info"))),Te=(0,b.t)("Paste"),xe=(0,b.t)("Copy price"),Ie={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 Me(e,t){return!t.isEmpty()&&o.enabled("datasource_copypaste")?new a.Action({actionId:"Chart.Clipboard.PasteSource",label:Te.trim(),shortcutHint:(0,p.humanReadableHash)(p.Modifiers.Mod+86),statName:"Paste",onExecute:()=>e.chartWidgetCollection().clipboard.uiRequestPaste(t)}):null}function Le(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,l=null===(r=e.mainDataSource())||void 0===r?void 0:r.formatter();if(void 0===o||!l)return null;const c=l.format(o);return new a.Action({actionId:"Chart.Clipboard.CopyPrice",label:`${xe} (${c})`,statName:"CopyPrice",onExecute:()=>window.navigator.clipboard.writeText(c)})}function Ae(e,t,i,s){return null}function Ee(e){const t=e.actions(),i=[t.showPriceLine];return i.push(t.showHighLowPriceLines),o.enabled("show_average_close_price_line_and_label")&&i.push(t.showAverageClosePriceLine),new a.Action({actionId:"Chart.Lines",label:ue,statName:"Lines",subItems:i})}function ke(e,t){return[]}class De{constructor(e,t){this._chartWidget=e,this._options=(0,n.merge)((0,n.clone)(Ie),t||{})}async contextMenuActionsForSources(e,t){const i=e[0],s=this._options;if(i===this._chartWidget.model().mainSeries()&&s.mainSeries)return this._contextMenuActionsForSeries(i,t);if((0,h.isStudy)(i)&&s.studies)return this._contextMenuActionsForStudy(i);if((0,v.isLineTool)(i)&&s.lineTools){const t=e.filter(v.isLineTool);return this._contextMenuActionsForLineTool(t)}return[]}_isReadOnly(){return this._chartWidget.readOnly()}_createActionHide(e){return new a.Action({actionId:"Chart.SelectedObject.Hide",
label:N,icon:i(48111),statName:"HideSelectedObject",onExecute:this._chartWidget.hideDataSources.bind(this._chartWidget,[e])})}_createActionShow(e){const t=new a.Action({actionId:"Chart.SelectedObject.Show",checkable:!0,label:B,icon:i(93418),statName:"ToggleShow"}),s=new l.ActionBinder(t,e.properties().visible,this._chartWidget.model(),C);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),l=("left"===o?n.leftPriceScales():n.rightPriceScales()).indexOf(t),h=r.priceScaleSlotsCount().totallySlots<2?"dontneedname":"needname",d="overlay"===o?"":(0,c.getPriceAxisNameInfo)(o,l).label,u=Z.format({label:d}),p={"left-needname":u,"left-dontneedname":Q,"right-needname":u,"right-dontneedname":ee,"overlay-needname":J,"overlay-dontneedname":J}[o+"-"+h];return new a.Action({actionId:"Chart.Source.ChangePriceScale",label:p,icon:i(74645),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 l=(0,s.ensureNotNull)(e.priceScale()),h=l.canDetachSource(e),d=o.priceScalePosition(l),u=h||d!==t;if(!u)return null;const p=n.priceScaleSlotsCount(),_={left:{labelled:U,sided:$},right:{labelled:U,sided:X}},m="left"===t?o.leftPriceScales().length:o.rightPriceScales().length,g=p[t]>m?"labelled":"sided",f=(0,c.getPriceAxisNameInfo)(t,m).label,v=_[t][g].format({label:f});return new a.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 a.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 a.Action({actionId:"Chart.Source.MoveToNoScale",checkable:!0,checked:i.isOverlay(e),label:te,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(),l=r.leftPriceScales(),h=this._createActionScaleDetachRight(e),d=this._createActionScaleDetachLeft(e),u=o.length+l.length+(null===h?0:1)+(null===d?0:1)>2,p={right:{hidden:{checked:{labelled:R,sided:O},unchecked:{labelled:F,sided:W}},visible:{checked:{labelled:H,sided:z},unchecked:{labelled:U,sided:j}}},left:{hidden:{checked:{labelled:R,sided:G},unchecked:{labelled:F,sided:q}},visible:{checked:{labelled:H,sided:Y},unchecked:{labelled:U,sided:K}}}},_={right:T,left:x},m={left:r.visibleLeftPriceScales(),right:r.visibleRightPriceScales()},g=(t,i)=>{const s=("right"===i?o:l)[t],r=m[i].includes(s)?"visible":"hidden",a=e.priceScale()===s?"checked":"unchecked",h=n?"labelled":"sided",d=p[i],u=(0,c.getPriceAxisNameInfo)(i,t).label;return{actionText:d[r][a][h].format({label:u}),undoText:n?P.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!==h&&t.push(h);u&&(o.length>0||null!==h)&&t.push(new a.Separator);t.push(...l.map((t,i)=>{const s=g(i,"left");return this._createMoveToScaleAction(e,t,s.actionText,s.undoText)})),null!==d&&t.push(d);u&&(l.length>0||null!==d)&&t.push(new a.Separator);return t.push(this._createActionNoScale(e)),t}_createVisualOrderAction(e){const t=this._chartWidget.model(),s=t.availableZOrderOperations(e),r=[new a.Action({actionId:"Chart.Source.VisualOrder.BringToFront",label:ae,statName:"BringToFront",disabled:!s.bringToFrontEnabled,onExecute:()=>t.bringToFront(e)}),new a.Action({actionId:"Chart.Source.VisualOrder.SendToBack",label:le,statName:"SendToBack",disabled:!s.sendToBackEnabled,onExecute:()=>t.sendToBack(e)}),new a.Action({actionId:"Chart.Source.VisualOrder.BringForward",label:ce,statName:"BringForward",disabled:!s.bringForwardEnabled,onExecute:()=>t.bringForward(e)}),new a.Action({actionId:"Chart.Source.VisualOrder.SendBackward",label:he,statName:"SendBackward",disabled:!s.sendBackwardEnabled,onExecute:()=>t.sendBackward(e)})];return new a.Action({actionId:"Chart.Source.VisualOrder",label:de,icon:i(26159),statName:"VisualOrder",subItems:r})}_createActionMergeUp(e){const t=this._chartWidget.model();return t.model().isMergeUpAvailableForSource(e)?new a.Action({actionId:"Chart.Source.MergeUp",label:se,statName:"MergeUp",onExecute:()=>t.mergeSourceUp(e)}):null}_createActionUnmergeUp(e){const t=this._chartWidget.model();return t.model().isUnmergeAvailableForSource(e)?new a.Action({actionId:"Chart.Source.UnmergeUp",label:re,statName:"UnmergeUp",onExecute:()=>t.unmergeSourceUp(e)}):null}_createActionMergeDown(e){
const t=this._chartWidget.model();return t.model().isMergeDownAvailableForSource(e)?new a.Action({actionId:"Chart.Source.MergeDown",label:ne,statName:"MergeDown",onExecute:()=>t.mergeSourceDown(e)}):null}_createActionUnmergeDown(e){const t=this._chartWidget.model();return t.model().isUnmergeAvailableForSource(e)?new a.Action({actionId:"Chart.Source.UnmergeDown",label:oe,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 a.Action({actionId:"Chart.Source.MoveToPane",label:ie,icon:i(6354),subItems:t}):null}_contextMenuActionsForSeries(e,t){var i;const r=[],n=e.properties().childs().visible.value(),l=this._chartWidget.model().model(),c=(0,s.ensureNotNull)(l.paneForSource(e)),h=this._chartWidget.actions();if(this._isReadOnly())r.push(n?this._createActionHide(e):this._createActionShow(e)),r.push(new a.Separator),r.push(this._createActionScale(e));else{0,r.length>0&&!(r[r.length-1]instanceof a.Separator)&&r.push(new a.Separator),o.enabled("symbol_info")&&r.push(h.showSymbolInfoDialog);l.mainSeries().symbolInfo();if(r.length>0&&!(r[r.length-1]instanceof a.Separator)&&r.push(new a.Separator),!c.isEmpty()&&o.enabled("datasource_copypaste")){const e=Le(c,t&&"localY"in t?t.localY:void 0),i=Me(this._chartWidget,c);(e||i)&&(e&&r.push(e),i&&r.push(i),r.push(new a.Separator))}r.push(this._createVisualOrderAction([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 a.Separator),r.push(Ee(this._chartWidget)),r.push(new a.Separator);Boolean(null===(i=window.widgetbar)||void 0===i?void 0:i.widget("watchlist"))&&h.addToWatchlist&&r.push(h.addToWatchlist),o.enabled("text_notes")&&r.push(h.addToTextNotes),r[r.length-1]instanceof a.Separator||r.push(new a.Separator),o.enabled("show_chart_property_page")&&!this._chartWidget.onWidget()&&r.push(h.mainSeriesPropertiesAction),r[r.length-1]instanceof a.Separator&&r.pop()}return r}_createActionAddChildStudy(e){throw new Error("unsupported")}_createActionAddFundamentals(e){return null}_createActionShowSymbolInfoDialog(e,t){return new a.Action({actionId:"Chart.Dialogs.ShowSymbolInfo",label:Pe,icon:i(69061),checkable:!1,statName:"SymbolInfo",onExecute:()=>{const i=e.symbol(),s={symbolInfo:e.symbolInfo(),unitDescription:e=>t.description(e)};(0,g.showSymbolInfoDialog)(i,s)}})}_createActionShowProperties(e){return new a.Action({actionId:"Chart.Indicator.ShowSettingsDialog",label:pe,icon:i(44368),statName:"EditSelectedObject",onExecute:()=>this._chartWidget.showSourceProperties(e)})}_contextMenuActionsForStudy(e){const t=this._chartWidget.actions(),i=e.properties().visible.value(),s=[];if(!e.userEditEnabled())return s;if(this._chartWidget.readOnly())s.push(i?this._createActionHide(e):this._createActionShow(e)),
s.push(new a.Separator),e.constructor instanceof d.NonSeriesStudy||s.push(this._createActionScale(e));else{0,o.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 a.Separator)&&s.push(new a.Separator),o.enabled("symbol_info")&&(e instanceof m.StudyCompare||e instanceof _.study_Overlay)&&null!==e.symbolInfo()&&(s.push(this._createActionShowSymbolInfoDialog(e,this._chartWidget.model().model().availableUnits())),s.push(new a.Separator)),s.push(this._createVisualOrderAction([e])),!(e.constructor instanceof d.NonSeriesStudy)){const t=this._createActionMove(e);null!==t&&s.push(t),s.push(this._createActionScale(e))}s.push(new a.Separator);const n=e.metaInfo();if(e.copiable()){const t=new a.Action({actionId:"Chart.Clipboard.CopySource",label:_e,shortcutHint:(0,p.humanReadableHash)(p.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 a.Separator),o.enabled("property_pages")&&new u.MetaInfoHelper(n).hasUserEditableOptions()&&s.push(this._createActionShowProperties(e)),s[s.length-1]instanceof a.Separator&&s.pop()}return s}_createEditAlertDrawingAction(e){return new TVAction({label:V.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?fe:ve;return new a.Action({actionId:"Chart.SelectedObject.ToggleLocked",label:s,statName:"ToggleLockSelectedObject",checkable:!0,icon:i(t?76576:54859),onExecute:()=>{if(1===e.length)this._chartWidget.toggleLockSelectedObject();else{const i=t?D:k,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(this._createVisualOrderAction(e))}),n=()=>{const s=e.filter(e=>e.cloneable());if(s.length>0){const e=new a.Action({actionId:"Chart.LineTool.Clone",label:me,icon:i(17191),shortcutHint:(0,p.humanReadableModifiers)(p.Modifiers.Mod)+"Drag",statName:"Clone",onExecute:()=>this._chartWidget.model().cloneLineTools(s,!1)},"Clone");t.push(e)}return!!s.length},l=()=>{const i=e.filter(e=>e.copiable());if(i.length>0){const e=new a.Action({actionId:"Chart.Clipboard.CopyLineTools",label:_e,shortcutHint:(0,p.humanReadableHash)(p.Modifiers.Mod+67),statName:"Copy",onExecute:()=>this._chartWidget.chartWidgetCollection().clipboard.uiRequestCopy(i)},"Copy");t.push(e)}return!!i.length},c=()=>{const e=(this._chartWidget,[]);return t.push(...e),e.length>0},h=e=>{const i=new a.Action({actionId:"Chart.ScrollToLineTool",label:ge.format({
lineToolName:e.title()}),statName:"GoToLineTool",checkable:!1,onExecute:async()=>this._chartWidget.model().scrollToLineTool(e)});t.push(i)},d=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(),this._options.objectTree&&s.paneObjectTree&&t.push(s.paneObjectTree),t.push(new a.Separator);let e=n();e=l()||e,e=c()||e,e&&t.push(new a.Separator),t.push(this._createActionToggleLockLineTools([i])),t.push(s.lineHide),t.push(s.lineRemove),i.points().length>0&&this._options.gotoLineTool&&(t.push(new a.Separator),h(i));const d=await this._chartWidget.propertiesDefinitionsForSource(i);if(o.enabled("property_pages")&&null!==d&&(t.push(new a.Separator),t.push(s.format)),i.additionalActions){t.push(new a.Separator);const e=i.additionalActions(this._chartWidget.model());t.push(...e)}}}else this._options.objectTree&&s.paneObjectTree&&t.push(s.paneObjectTree),d(e)&&r(),t.length>0&&t.push(new a.Separator),n(),l(),c(),t.push(new a.Separator),t.push(this._createActionToggleLockLineTools(e)),t.push(s.lineHide),t.push(s.lineRemove),o.enabled("property_pages")&&(t.push(new a.Separator),t.push(s.format));return t}_createEarningsShow(){return null}_createRollDatesShow(){return null}_createDividendsShow(){return null}_createSplitsShow(){return null}_contextMenuActionsForESD(){return[]}_contextMenuActionsForRollDates(){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:Se,name:"ToggleAllIdeas",statName:"ToggleAllIdeas",onExecute:()=>this._chartWidget.model().setProperty(t,PublishedChartsFilter.None,I)}),r=new TVAction({checked:t.value()===PublishedChartsFilter.Following,checkable:!0,label:ye,name:"ToggleIdeasOfPeopleAndUser",statName:"ToggleIdeasOfPeopleAndUser",onExecute:()=>this._chartWidget.model().setProperty(t,PublishedChartsFilter.Following,M)}),n=new TVAction({checked:t.value()===PublishedChartsFilter.Private,checkable:!0,label:be,name:"ToggleUserIdeas",statName:"ToggleUserIdeas",onExecute:()=>this._chartWidget.model().setProperty(t,PublishedChartsFilter.Private,L)});i.push(new a.Separator,s,r,n)}return i}_contextMenuActionsForTradingDrawings(e){return e.contextMenuItems()}_createAlertToggleHorzLineLabelAction(){throw new Error("Not implemented")}_contextMenuActionsForAlertLabel(e){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.parentSource()!==t.mainSeries())return null;const i=(0,
s.ensureNotNull)(t.paneForSource(e)),r=t.paneForSource(t.mainSeries())===i,n=e instanceof m.StudyCompare&&e.priceScale()===t.mainSeries().priceScale()&&(0,s.ensureNotNull)(e.priceScale()).isPercentage(),o=r?void 0:t.panes().indexOf(i);let l=Ce,c=E,h="AddStudyToEntireLayout";return(0,S.isActingAsSymbolSource)(e)&&(l=we,c=A,h="AddSymbolToEntireLayout"),new a.Action({actionId:"Chart.AddIndicatorToAllCharts",label:l,statName:h,onExecute:()=>{const i=(0,s.ensureNotNull)((0,f.clipboardDataForSources)(t.id(),[e])),a=this._chartWidget.chartWidgetCollection(),l={isOnMainPane:r,asCompare:n,paneIndex:o};a.applyIndicatorToAllCharts(this._chartWidget,i,l,c)}},"applyStudyToEntireLayout")}}},16906:(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"},note:{name:"LineToolNote"},anchored_note:{name:"LineToolNoteAbsolute"},signpost:{name:"LineToolSignpost"},callout:{name:"LineToolCallout"},balloon:{name:"LineToolBalloon"},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"},regression_trend:{name:"LineToolRegressionTrend"},fixed_range_volume_profile:{name:"LineToolFixedRangeVolumeProfile"}}},94578:(e,t,i)=>{"use strict";i.d(t,{clipboardDataForSources:()=>o});var s=i(88537),r=i(81851),n=i(14291);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}},17937:(e,t,i)=>{"use strict";i.d(t,{addBrandingSource:()=>z});var s=i(4889),r=i(86441),n=i(34026),o=i(45112),a=i(88537),l=i(28353),c=i(67337),h=i(99305),d=i(84346),u=i(68587),p=i(68906),_=i(59199),m=i(42759),g=i(93435),f=i(52892),v=i(22799),S=i(76818);i(95306);const y=c.enabled("adaptive_logo"),b=c.enabled("small_no_display"),w=c.enabled("38914"),C="Ch{0}ar{1}t{2}by{3}{4}".format("",""," "," ","TradingView"),P="po{0}wer{1}ed{2}by{3}{4}".format("",""," "," ","TradingView"),T="by{3}{4}".format("",""," "," ","TradingView"),x=w?T:P,I=navigator.userAgent.toLowerCase().indexOf("chrome")>-1&&-1===navigator.userAgent.toLowerCase().indexOf("edge"),M=window.urlParams||{};window.initData;M.no_referral_id&&enable(M.referral_id||"","aggressive");(0,l.t)("By TradingView"),(0,l.t)("{symbol} financials by TradingView"),(0,l.t)("More features on tradingview.com"),(0,l.t)("powered by");const L=(0,l.t)(C),A=(0,l.t)(x);function E(e){return"px EuclidCircular"===e?.1:0}
class k extends h.CustomSourceBase{constructor(e,t,i,r){super(e,t),this._canvasWidth=0,this._paneHeight=0,this._left=13,this._bottom=16,this._layout="site_branding",this._needToShow=!0,this._showBranding=!1,this._customLogoSrc="",this._customLogoLink="",this._cubicBezier=new u.CubicBezier(.4,.01,.22,1),this._openAnimation=null,this._closeAnimation=null,this._powBy=null,this._custom=null,this._mainSeries=this._model.mainSeries(),this._showAllowance=i,this._showForPro=Boolean(r),this._checkLayout(),"widget_custom_branding"!==this._layout&&"fundamental_custom_branding"!==this._layout||(this._left=8,this._bottom=5);const n=()=>{this._needToShow?this._showBranding=!0:this._showBranding=!1};this._resizeHandlerDelayed=(0,s.default)(n,200),n(),window.addEventListener("resize",this._resizeHandlerDelayed),this._monitorCanvas=(0,g.createDisconnectedBoundCanvas)(document,new g.Size(0,0)),this._monitorCanvas.subscribeCanvasConfigured(()=>{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()}paneViews(e){if(window.TradingView.printing)return[];if(!this._showAllowance())return[];if("site_branding"===this._layout&&!this._showForPro&&window.user&&window.user.is_pro)return[];const t=c.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||c.enabled("logo_without_link")?null:this._powBy&&"widget_custom_no_powered_branding"!==this._layout&&"fundamental_custom_no_powered_branding"!==this._layout&&(this._powBy.hitTest(e)||this._custom&&this._custom.hitTest(e))?new d.HitTestResult(d.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("library_branding"===this._layout||"library_custom_branding"===this._layout){let t;switch(!0){case c.enabled("charting_library"):t="library";break;case c.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;M.utm=!0,(0,g.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 W(this._layout,(null==e?void 0:e.name)||"",this._model,()=>this._model.fullUpdate()),this._custom=new H(this._layout,this._customLogoSrc,()=>this._model.fullUpdate()),this._openAnimation=null,this._closeAnimation=null}_checkLayout(){if(c.enabled("widget"))0;else if(c.enabled("charting_library")||c.enabled("trading_terminal")){const e=JSON.parse(M.logo)||{};e.image?(this._customLogoSrc=e.image,this._customLogoLink=e.link,this._needToShow=c.enabled("widget_logo"),c.enabled("link_to_tradingview")?this._layout="library_custom_branding":this._layout="library_custom_no_powered_branding"):(this._layout="library_branding",this._needToShow=c.enabled("widget_logo"))}else this._layout="site_branding"}_startOpenAnimation(){null===this._openAnimation&&(null!==this._closeAnimation&&(this._closeAnimation.stop(),this._closeAnimation=null),this._openAnimation=(0,_.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,_.doAnimate)({from:this._currentStateForAnimation(),to:this._closedStateForAnimation(),duration:200,easing:this._cubicBezier.easingFunc,onStep:this._animatedDrawStep.bind(this)}))}_currentStateForAnimation(){return(0,a.ensureNotNull)(this._powBy).width}_closedStateForAnimation(){return(0,a.ensureNotNull)(this._powBy).minimizedAnimationWidth()}_openedStateForAnimation(){return(0,a.ensureNotNull)(this._powBy).maximizedAnimationWidth()}_animatedDrawStep(e,t){(0,a.ensureNotNull)(this._powBy).animatedDrawStep(e,t),this._model.lightUpdate()}_hasAnimation(){return null!==this._powBy&&this._powBy.hasAnimation()}_openLink(){if("site_branding"===this._layout)return!1;c.enabled("widget");return(0,a.ensureNotNull)(window.open(this.tvUrl(),"_blank")).opener=null,!0}_toggleOpenAnimatedOrOpenLink(){null!==this._openAnimation&&this._openAnimation.completed()?this._openLink()||this._startCloseAnimation():this._startOpenAnimation()}}function D(e){return!y||e>500}
const V={customBrandingTradingViewText:o.colorsPalette["color-brand"],customBrandingText:o.colorsPalette["color-cold-gray-850"],background:o.colorsPalette["color-cold-gray-900"],shadow:(0,p.generateColor)(o.colorsPalette["color-white"],91),text:o.colorsPalette["color-white"],staticTextBackground:(0,p.generateColor)(o.colorsPalette["color-cold-gray-800"],20),logo:o.colorsPalette["color-white"]},B={customBrandingTradingViewText:o.colorsPalette["color-brand"],customBrandingText:o.colorsPalette["color-cold-gray-850"],background:o.colorsPalette["color-white"],shadow:(0,p.generateColor)(o.colorsPalette["color-black"],91),text:o.colorsPalette["color-cold-gray-900"],staticTextBackground:(0,p.generateColor)(o.colorsPalette["color-white"],20),logo:o.colorsPalette["color-cold-gray-900"]};const N={};function R(e,t){const i=N[e];if(void 0!==i)return i.image||null;const s={};return N[e]=s,function(e){return new Promise(t=>{const i=f.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 O(e){const{a:t,d:i,e:s,f:n}=e;return new r.Point(s/t,n/i)}class F{constructor(){this._originPoint=null}hitTest(e){const t=this._getHitTestBox();if(t)return(0,n.pointInBox)(e,t)}_getHitTestBox(){const e=this._originPoint;if(e){const{x:t,y:i}=e;return(0,r.box)(e,new r.Point(t+this.width,i+this.height))}}}class W extends F{constructor(e,t,i,s){if(super(),this.show=!0,this.borderRadius=0,this._needDisplayImage=!1,this._imageWidth=22,this._imageHeight=11,this._animatedWidth=32,this._font="px "+v.CHART_FONT_FAMILY,this._txt="TradingView",this._textWidth=0,this._maximizedAnimationTextWidth=0,this._textWidthCache=new S.TextWidthCache,this._pixelRatio=1,this._model=i,this._layout=e,this._symbol=t,this.showAnimatedBranding=c.enabled("show_animated_logo")||"widget_branding"===this._layout,this._fontSize=this.showAnimatedBranding?11:14,this.showAnimatedBranding||"widget_custom_branding"!==this._layout&&"fundamental_custom_branding"!==this._layout||(this._fontSize=12),this.width=32,this.height=this._fontSize+2,this._onReadyCallback=s,this._init(),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._recalculateMetrics()}destroy(){this._model.properties().childs().paneProperties.childs().background.unsubscribeAll(this),this._model.onChartThemeLoaded().unsubscribeAll(this)}hasAnimation(){return this.showAnimatedBranding}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=O(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*E(this._font))),this._drawFillTextCropWidth(e,this._animatedWidth-32)),e.restore(),this.width=this._animatedWidth);else if("widget_custom_branding"===this._layout||"fundamental_custom_branding"===this._layout){e.font=this._fontSize+this._font;const t=e.measureText(this._txt).width+2;this.width=t+e.measureText("TradingView").width+2,this._originPoint=O(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(function(e){return!b||e>480}(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=O(e.getTransform()),this.borderRadius=16,this._drawBgCircle(e),e.drawImage((0,a.ensureNotNull)(this._getLogoImage(s.logo)),Math.round((32-this._imageWidth)/2),Math.round((32-this._imageHeight)/2)+0);const t=D(i);t&&(e.translate(37,Math.round(this._fontSize*E(this._font))),this._drawTextStroke(e),this._drawTextFill(e)),e.restore(),this.width=32,t&&(this.width+=this._maximizedAnimationTextWidth)}else{const t=D(i);t&&(e.save(),e.translate(I?-.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))}_recalculateMetrics(){const e=(0,g.createDisconnectedBoundCanvas)(document,new g.Size(0,0)),t=(0,g.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()}_updateColors(){this._colors=this._model.isDark()?V:B}_getLogoImage(e){return R(e,this._onReadyCallback)}_checkLayout(){switch(this._layout){case"widget_branding":case"widget_referral_branding":case"widget_custom_branding":case"fundamental_branding":case"fundamental_custom_branding":case"library_custom_branding":case"library_branding":case"site_branding":this.show=!0;break;case"widget_custom_no_powered_branding":case"fundamental_custom_no_powered_branding":case"library_custom_no_powered_branding":this.show=!1}switch(this._layout){case"library_branding":this._needDisplayImage=!0,this._txt=L;break;case"library_custom_branding":this._txt=A}}_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,m.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,m.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,a.ensureNotNull)(this._getLogoImage(this._colors.logo)),t,i)}}class H extends F{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=O(e.getTransform()))}_checkLayout(){switch(this._layout){case"widget_custom_branding":case"widget_custom_no_powered_branding":case"fundamental_custom_branding":case"fundamental_custom_no_powered_branding":case"library_custom_branding":case"library_custom_no_powered_branding":this.show=!0;break;case"site_branding":case"widget_branding":case"widget_referral_branding":case"fundamental_branding":case"library_branding":this.show=!1}}}function z(e,t){function i(t){const i=e.getAll();if(1===i.length)return!0;const s=i[0].hasModel()&&i[0].model();return s&&s.model()===t}e.addCustomSource("branding",(e,s)=>new k(e,s,i.bind(null,s),t))}},93435:(e,t,i)=>{"use strict";i.d(t,{Size:()=>o,getCanvasDevicePixelRatio:()=>a,getContext2D:()=>l,getPrescaledContext2D:()=>c,getPretransformedContext2D:()=>h,fillRect:()=>d,clearRect:()=>u,drawScaled:()=>p,createDisconnectedCanvas:()=>_,createDisconnectedBoundCanvas:()=>m,createBoundCanvas:()=>f,calcTextHorizontalShift:()=>v,disableSelection:()=>S});var s=i(81746),r=i(88537),n=i(62820);class o{constructor(e,t){this.w=e,this.h=t}equals(e){return this.w===e.w&&this.h===e.h}}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){const t=(0,
r.ensureNotNull)(e.getContext("2d"));return t.setTransform(1,0,0,1,0,0),t}function c(e){const t=(0,r.ensureNotNull)(e.getContext("2d")),i=a(e);return t.setTransform(i,0,0,i,0,0),t}function h(e,t){const i=(0,r.ensureNotNull)(e.canvas.getContext("2d"));return i.setTransform(e.pixelRatio,0,0,e.pixelRatio,0,0),t||i.translate(.5,.5),i}function d(e,t,i,s,r,n){e.save(),e.translate(-.5,-.5),e.fillStyle=n,e.fillRect(t,i,s,r),e.restore()}function u(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 p(e,t,i){e.save(),e.scale(t,t),i(),e.restore()}function _(e,t,i){const s=g(e);return void 0===i&&(i=a(s)),s.width=t.w*i,s.height=t.h*i,s}function m(e,t){const i=g(e),r=(0,s.bindToDevicePixelRatio)(i,{allowDownsampling:!1});return r.resizeCanvas({width:t.w,height:t.h}),r}function g(e){const t=e.createElement("canvas");return S(t),t}function f(e,t){const i=g((0,r.ensureNotNull)(e.ownerDocument));e.appendChild(i);const n=(0,s.bindToDevicePixelRatio)(i,{allowDownsampling:!1});return n.resizeCanvas({width:t.w,height:t.h}),n}function v(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 S(e){e.style.userSelect="none",e.style.webkitUserSelect="none",e.style.msUserSelect="none",e.style.MozUserSelect="none",e.style.webkitTapHighlightColor="transparent"}},68425:(e,t,i)=>{"use strict";i.d(t,{ChartChangesWatcher:()=>n});var s=i(2872),r=i.n(s);class n{constructor(e,t,i,s){this._undoHistoryHasChanges=!1,this._hasChanges=!1,this._recalculateHaveChanges=()=>{const e=this._undoHistoryHasChanges||this._lineToolsHaveChanges.value();e!==this._hasChanges&&(this._hasChanges=e,this._onValueChanged.fire(e))},this._undoHistory=e,this._lineToolsHaveChanges=t,this._chartSaver=i,this._globalEvents=s,this._onValueChanged=new(r()),this._subscribe()}destroy(){this._unsubscribe(),this._onValueChanged.destroy()}hasChanges(){return this._hasChanges}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)}_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)}_setUndoHistoryHasChanges(e){this._undoHistoryHasChanges=e,this._recalculateHaveChanges()}_handleChartLoaded(){this._setUndoHistoryHasChanges(!1)}_handleUndoHistoryChange(e){e&&!e.customFlag("doesnt_affect_save")&&this._setUndoHistoryHasChanges(!0)}_handleChartSaved(e){e&&this._setUndoHistoryHasChanges(!1)}}},76367:(e,t,i)=>{"use strict";i.d(t,{shiftPressed:()=>p,
modifierPressed:()=>_,globalEnvironmentState:()=>m,ChartHotkeysListener:()=>g});var s=i(25760),r=i(68335),n=i(35749),o=i(52714),a=i.n(o),l=i(77216);const c=new(a())(Boolean(s.pressedKeys.value()&r.Modifiers.Shift)),h=new(a())(Boolean(s.pressedKeys.value()&r.Modifiers.Mod)),d=new(a())(Boolean(s.pressedKeys.value()&r.Modifiers.Alt)),u=[r.Modifiers.None,r.Modifiers.Alt,r.Modifiers.Mod,r.Modifiers.Alt+r.Modifiers.Shift];function p(){return c}function _(){return h}function m(){return new l.EnvironmentState({altKey:d.value(),ctrlKey:_().value(),metaKey:_().value(),shiftKey:p().value()})}s.pressedKeys.subscribe(e=>{c.setValue(Boolean(e&r.Modifiers.Shift)),h.setValue(Boolean(e&r.Modifiers.Mod)),d.setValue(Boolean(e&r.Modifiers.Alt))});class g{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,r.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,r.hashFromEvent)(e),i=255&t,s=(0,r.modifiersFromEvent)(e);let o;if(37===i)o=1;else{if(39!==i)return!1;o=-1}return!(r.isMacKeyboard&&s===r.Modifiers.Mod||!u.includes(s))&&(!(0,n.isNativeUIInteraction)(t,e.target)&&(this._pressedKeyCode=i,s===r.Modifiers.None?this._chartWidget.scrollHelper().moveByBar(o):s===r.Modifiers.Alt||s===r.Modifiers.Mod?this._chartWidget.scrollHelper().move(o):-1===o?this._chartWidget.model().timeScale().scrollToRealtime(!0):this._chartWidget.model().timeScale().scrollToFirstBar(),!0))}_handleScrollKeyUp(e){if(null===this._pressedKeyCode)return!1;const t=(0,r.hashFromEvent)(e);if((0,n.isNativeUIInteraction)(t,e.target))return!1;return(255&t)===this._pressedKeyCode&&(this._pressedKeyCode=null,this._chartWidget.scrollHelper().stopMove(),!0)}_handleZoomKeyDown(e){const t=(0,r.hashFromEvent)(e),i=255&t;if((0,r.modifiersFromEvent)(e)!==r.Modifiers.Mod||(0,n.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}}},37786:(e,t,i)=>{"use strict";i.d(t,{ChartWidgetApiBase:()=>C});var s=i(88537),r=i(28353),n=i(24980),o=i(29823),a=i(69177),l=i(42934);class c{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()}isEmpty(){return this._timeScale.isEmpty()}}var h=i(2872),d=i.n(h),u=i(39277);const p=new n.TranslatedString("change timezone",(0,r.t)("change timezone"));class _{constructor(e){this._onTimezoneChanged=new(d()),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 u.availableTimezones}getTimezone(){const e=this._timezoneProperty.value();return(0,s.ensureDefined)(u.availableTimezones.find(t=>t.id===e))}setTimezone(e,t){(0,s.assert)((0,u.timezoneIsAvailable)(e),"Incorrect timezone: "+e),(null==t?void 0:t.disableUndo)?this._timezoneProperty.setValue(e):this._chartWidget.model().setProperty(this._timezoneProperty,e,p)}onTimezoneChanged(){return this._onTimezoneChanged}}var m=i(45973),g=i(59836),f=i(870);function v(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 S=i(65862);const y=new n.TranslatedString("change price to bar ratio",(0,r.t)("change price to bar ratio")),b=new n.TranslatedString("toggle lock scale",(0,r.t)("toggle lock scale")),w=new n.TranslatedString("change series style",(0,r.t)("change series style"));class C{constructor(e,t){this._visibleBarsChanged=new(d()),this._crosshairMoved=new(d()),this._ranges=null,this._alignerResolution=o.Interval.parse(""),this._alignerSymbolInfo=null,this._dwmAligner=null,this._chartWidget=e,this._activateChart=t,this._timezoneApi=new _(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 f.SetScaleRatioPropertiesCommand(r,e,null,s).redo():i.setScaleRatioProperty(r,e,y)}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 g.SetPriceScaleModeCommand({lockScale:e},r,null,s).redo():i.setPriceScaleMode({lockScale:e},r,b)}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&&v(s,i),this._activateChart(),this._chartWidget.setSymbol(e)}setResolution(e,t){const i=o.Interval.normalize(e);if(null===i||i===this.resolution())return void(null==t||t());const s=e=>{!e&&t&&t()},r=this._chartWidget.model().mainSeries().dataEvents();t&&v(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&&v(r,s),this._chartWidget.model().setChartStyleProperty(i,e,w)}getAllStudies(){return this._chartWidget.model().model().allStudies(!0).map(m.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()}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,29630)).then(e=>e.exportData(this._chartWidget.model().model(),t))}barTimeToEndOfPeriod(e){const t=this._prepareEndOfPeriodArgs();return(0,l.barTimeToEndOfPeriod)(t.barBuilder,e,t.intervalObj)}endOfPeriodToBarTime(e){const t=this._prepareEndOfPeriodArgs();return(0,l.endOfPeriodToBarTime)(t.barBuilder,e,t.intervalObj)}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 c(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){const t=this._getSeriesAligner();return null!==t?t.timeToExchangeTradingDay(1e3*e)/1e3:e}_convertIndexToPublicTime(e){const t=this._chartWidget.model(),i=t.timeScale();if(i.isEmpty())return null;const r=i.points(),n=(0,s.ensureNotNull)(r.firstIndex()),o=(0,s.ensureNotNull)(r.lastIndex());let a=null;if(n<=e&&e<=o)a=r.valueAt(e);else if(e>o){const r=t.mainSeries().syncModel();if(null!==r){const t=(0,s.ensureNotNull)(i.indexToTimePoint(o));a=r.projectTime(t,e-o)}}return null!==a&&(a=this._convertTimeToPublic(a)),a}_getDefaultCreateMultipointShapeOptions(){return{filled:!0}}_convertTimeFromPublic(e){const t=this._getSeriesAligner();return null!==t?t.timeToSessionStart(1e3*e)/1e3:e}_getSeriesAligner(){const e=this._chartWidget.model().mainSeries(),t=e.interval(),i=o.Interval.parse(t),s=e.symbolInfo();return this._alignerResolution.isEqualTo(i)&&this._alignerSymbolInfo===s||(this._dwmAligner=null===s?null:(0,S.createDwmAligner)(t,s),this._alignerResolution=i,this._alignerSymbolInfo=s),this._dwmAligner}_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 a.SessionInfo(t,i.session,i.session_holidays,i.corrections);return{barBuilder:(0,a.newBarBuilder)(r,n,n),intervalObj:o.Interval.parse(r)}}}},79500:(e,t,i)=>{"use strict";i.d(t,{ChartWidgetBase:()=>ui})
;var s=i(88537),r=i(28353),n=i(98125);function o(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 a=i(56840),l=i(49483),c=i(81836),h=i(76422),d=i(22729);let u;class p extends d.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 u||(u=new p),u}_load(){return Promise.all([i.e(9685),i.e(5514),i.e(9129),i.e(4194),i.e(2e3),i.e(7962),i.e(8986),i.e(6363),i.e(3466),i.e(7836),i.e(9289),i.e(3921),i.e(1112),i.e(6909),i.e(7419),i.e(9042),i.e(6427),i.e(9283),i.e(9837),i.e(3199),i.e(5827),i.e(4707),i.e(3016),i.e(1075),i.e(9505),i.e(9811),i.e(4862)]).then(i.bind(i,49469)).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})}}var _=i(80643),m=i(54089),g=i(24431);var f=i(14291),v=i(81851),S=i(81465),y=i(88564),b=i(23653),w=i(16230),C=i(86441),P=i(45112),T=i(24980),x=i(71413),I=i(15840),M=i(84346),L=i(27759),A=i(77216),E=i(35878),k=i(85733),D=i(16757),V=i(4676),B=i(54386),N=i(93435),R=i(42759),O=i(52640),F=i(6087),W=i(15917),H=i(43842),z=i(22799);const U=parseInt(H.labelheight),j=parseInt(H.bottommargin);function G(e){return e/11}class q{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(H.wrapper),this._element.classList.add(H.label),this._labelElement.className=H.symbol,this._element.appendChild(this._labelElement),this._gearElement.className=H.gear,this._gearElement.innerHTML=W,this._element.appendChild(this._gearElement)}getElement(){return this._wrapper}setMode(e){this._mode!==e&&(this._mode=e)}align(e,t){const i=G(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,O.makeFont)(t.fontSize,z.CHART_FONT_FAMILY);e.fillStyle=F.themes[t.theme].getThemedColor("color-price-axis-label-back"),e.globalAlpha=.5,e.beginPath();const s=G(t.fontSize)*U/2,r=(0,C.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=F.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(U+j)*e}}var Y=i(2872),K=i.n(Y),$=i(97056),X=i(94194)
;const Z={enableTooltip:!0,showLabels:!0,enableMenu:!0,enableHighlight:!0};class J{constructor(e,t,i,s,r,n=null){this._invalidated=!0,this._size=new N.Size(0,0),this._offset=0,this._axisInfo=null,this._onLabelHovered=new(K()),this._highlighted=!1,this._labelMode="auto",this._fixedLabelMode=null,this._canvasConfiguredHandler=()=>this.update(),this._timeAxisWidget=n,this._isLeft="left"===e,this._rendererOptionsProvider=s.rendererOptionsProvider,this._sourcesTitlesProvider=s.sourcesTitlesProvider,this._contextMenuItemsProvider=s.contextMenuItemsProvider,this._backgroundBasedTheme=s.backgroundBasedTheme,this._getBackgroundTopColor=s.getBackgroundTopColor,this._getBackgroundBottomColor=s.getBackgroundBottomColor,this._showHorizontalBorder=Boolean(s.showHorizontalBorder),this._properties=t,this._axisInfo=i,this._labelOptions={...Z,...r},this._properties.lineColor.subscribe(this,this._onPropertyChanged),this._cell=document.createElement("div"),this._cell.classList.add(H["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 q,this._label.setAxisNameInfo(this._axisInfo),this._cell.appendChild(this._label.getElement()),this._labelOptions.enableTooltip&&(0,X.setTooltipData)(this._cell,"text",e=>this._tooltipContent())):this._label=null,this._mouseEventHandler=new B.MouseEventHandler(this._cell,this,{treatHorzTouchDragAsPageScroll:!0,treatVertTouchDragAsPageScroll:!0}),this._canvasBinding=(0,N.createBoundCanvas)(this._cell,new N.Size(16,16)),this._canvasBinding.subscribeCanvasConfigured(this._canvasConfiguredHandler);const o=this._canvasBinding.canvas;o.style.position="absolute",o.style.left="0",o.style.top="0"}destroy(){this._canvasBinding.unsubscribeCanvasConfigured(this._canvasConfiguredHandler),this._canvasBinding.destroy(),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){if(e.w<0||e.h<0)throw new Error("Try to set invalid size to PriceAxisStub "+JSON.stringify(e));this._size.equals(e)||(this._size=e,this._canvasBinding.resizeCanvas({width:e.w,height:e.h}),this._cell.style.width=e.w+"px",this._cell.style.minWidth=e.w+"px",this._cell.style.height=e.h+"px",this._invalidated=!0),this._offset!==t&&(this._offset=t,this._cell.style.left=t+"px")}paint(e){if(e{this.setLabelMode((0,s.ensureNotNull)(this._fixedLabelMode)),this._fixedLabelMode=null})}}var Q=i(41847);class ee{constructor(e,t,i,s,r,n=null){this._axises=[],this._stubs=[],this._size=new N.Size(0,0),this._onLabelHovered=new(K()),this._scalesProperties=e,this._priceAxisWidgetFactory=i,this._timeAxisWidget=n,this._rendererOptionsProvider=s.rendererOptionsProvider,this._titlesProvider=s.titlesProvider,this._stubContextMenuProvider=s.stubContextMenuProvider,this._backgroundBasedTheme=s.backgroundBasedTheme,this._getBackgroundTopColor=s.getBackgroundTopColor,this._getBackgroundBottomColor=s.getBackgroundBottomColor,this._showHorisontalBorder=Boolean(s.showHorizontalBorder),this._labelsOptions={...Z,...r};const o=this._scalesProperties.childs();this._stubProperties={lineColor:o.lineColor,fontSize:o.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,r){for(;e.length>this._axises.length&&this._axises.lengtho;){const e=(0,s.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,s.ensureNotNull)(e)},i)}),this._stubs.push(t),this._cell.appendChild(t.getElement())}const a=this._labelsOptions.enableMenu;1===r?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=new N.Size(t.reduce((e,t)=>e+t,0),e),this._cell.style.width=this._size.w+"px",this._cell.style.minWidth=this._size.w+"px",
this._cell.style.height=this._size.h+"px",t.length!==this._axises.length+this._stubs.length&&(0,s.assert)(t.length===this._axises.length+this._stubs.length,"Widgets count should be the same as widths one");let i=0;this._forEachWidgetFromLeft((s,r)=>{const n=t[r];s.setSizeAndOffset(new N.Size(n,e),i),i+=n})}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.w}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.h,contentWidth:this._size.w}}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,N.createDisconnectedCanvas)(document,this._size),t=(0,N.getPrescaledContext2D)(e);let i=0;return this._forEachWidgetFromLeft((e,s)=>{const r=e.getWidth();0!==r&&(t.drawImage(e.getImage(),i,0,r,this._size.h),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 te=i(29892),ie=i(76818),se=i(51768),re=i(24377),ne=i(68906),oe=i(45345),ae=i(24633),le=i(64514),ce=i(91216),he=i(4103);const de=(0,P.getHexColorByName)("color-white"),ue=(0,P.getHexColorByName)("color-cold-gray-100"),pe=(0,ne.applyTransparency)((0,P.getHexColorByName)("color-white"),60),_e=(0,P.getHexColorByName)("color-cold-gray-800"),me=(0,ne.applyTransparency)((0,P.getHexColorByName)("color-black"),60);function ge(e){const t=(0,ne.isHexColor)(e)?e.toLowerCase():(0,re.rgbToHexString)((0,re.parseRgb)(e));return oe.watchedTheme.value()===ae.StdTheme.Light?t===de?ue:pe:"#181c27"===t?_e:me}class fe{constructor(){this._width=null,this._currencyInfo=null,this._unitInfo=null,this._fontSize=0,this._backgroundColor="",this._hoverColor="",this._fadeEndColor="",this._hoveredLabel=null,this._currencyAndUnitLabelsWrapper=document.createElement("div"),this._currencyAndUnitLabelsWrapper.className=he["price-axis-currency-label-wrapper"],this._controlsContainer=document.createElement("div"),this._controlsContainer.className=he["price-axis-currency-label"],this._currencyAndUnitLabelsWrapper.appendChild(this._controlsContainer),
this._currencyLabelDiv=document.createElement("div"),this._currencyLabelDiv.className=he.row,this._currencyLabelDiv.classList.add("apply-common-tooltip"),(0,X.setTooltipData)(this._currencyLabelDiv,"text",e=>this._currencyTooltipContent()),this._currencyText=document.createElement("span"),this._currencyText.className=he["price-axis-currency-label-text"],this._currencyLabelDiv.appendChild(this._currencyText),this._currencyArrowDown=document.createElement("span"),this._currencyArrowDown.className=he["price-axis-currency-label-arrow-down"],this._currencyArrowDown.innerHTML=ce,this._currencyLabelDiv.appendChild(this._currencyArrowDown),this._unitLabelDiv=document.createElement("div"),this._unitLabelDiv.className=he.row,this._unitLabelDiv.classList.add("apply-common-tooltip"),(0,X.setTooltipData)(this._unitLabelDiv,"text",e=>this._unitTooltipContent()),this._unitText=document.createElement("span"),this._unitText.className=he["price-axis-currency-label-text"],this._unitLabelDiv.appendChild(this._unitText),this._unitArrowDown=document.createElement("span"),this._unitArrowDown.className=he["price-axis-currency-label-arrow-down"],this._unitArrowDown.innerHTML=ce,this._unitLabelDiv.appendChild(this._unitArrowDown),this._controlsContainer.appendChild(this._currencyLabelDiv),this._controlsContainer.appendChild(this._unitLabelDiv),this._fadeDiv=document.createElement("div"),this._fadeDiv.className=he["price-axis-currency-label-fade"],this._currencyAndUnitLabelsWrapper.appendChild(this._fadeDiv);const e=e=>{null!==this._hoveredLabel&&this._hoveredLabel!==e&&(this._hoveredLabel.style.background=""),this._hoveredLabel=e,""===this._hoverColor&&(this._hoverColor=ge(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}isEnabled(){return this.currencyLabelEnabled()||this.unitLabelEnabled()}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.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){if(!this.isEnabled())return;const s=this.currencyLabelEnabled()?this._currencyText.textContent||"":this._unitText.textContent||"",r=this._unitText.textContent||"";e.font=(0,O.makeFont)(this._fontSize,z.CHART_FONT_FAMILY)
;const n=new ie.TextWidthCache,o=n.yMidCorrection(e,s),a=n.yMidCorrection(e,r),l=Math.round(Number(he.css_wrapper_margin)*i),c=(0,le.ceiledEven)(t*i)-2*l,h=Math.round(this.labelBottom()*i);e.fillStyle=this._backgroundColor,e.fillRect(l,0,c,h);const d=Math.round(Number(he.css_fade_height)*i),u=e.createLinearGradient(0,h,0,h+d);u.addColorStop(0,this._backgroundColor),u.addColorStop(1,this._fadeEndColor),e.fillStyle=u;const p=Math.round(Number(he.css_value_currency_label_radius)*i);(0,R.drawRoundRect)(e,l,h,c,d,[0,0,p,p]),e.fill();const _=Math.round(Number(he.css_first_row_top_padding)*i),m=Math.round(this._textMarginAndPadding()*i)+l,g=this._oneLineHeight()/2*i,f=_+g,v=Math.ceil(f+2*g);e.fillStyle=this._controlsContainer.style.color,e.textBaseline="middle",e.textAlign="left",(0,N.drawScaled)(e,i,()=>e.fillText(s,m/i,(f+o)/i)),this._isMultiLine()&&(0,N.drawScaled)(e,i,()=>e.fillText(r,m/i,(v+a)/i))}setHidden(e){this._controlsContainer.classList.toggle(he.hidden,e),this._fadeDiv.classList.toggle(he.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()}currencyLabelEnabled(){return!this._currencyLabelDiv.classList.contains("js-hidden")}unitLabelEnabled(){return!this._unitLabelDiv.classList.contains("js-hidden")}setCurrencyInfo(e){if(this._currencyInfo===e)return!1;this._currencyInfo=e;const t=null===e.selectedCurrency?(0,r.t)("Mixed"):(0,s.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(he.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?(0,r.t)("Mixed"):(0,s.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(he.readonly,0===e.availableGroups.size),this._width=null),!0}updateColors(e,t){this._controlsContainer.style.color=t,this._backgroundColor!==e&&(this._backgroundColor=e,this._fadeEndColor=(0,ne.applyTransparency)(e,100),this._hoverColor=ge(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}setFontSize(e){this._fontSize!==e&&(this._fontSize=e,this._currencyLabelDiv.style.fontSize=e+"px",this._unitLabelDiv.style.fontSize=e+"px",this._width=null,this._setLineHeight(this._oneLineHeight()))}labelBottom(){const e=this._oneLineHeight();let t=e+Number(he.css_first_row_top_padding);return this._isMultiLine()&&(t+=e),t}_textMarginAndPadding(){return Number(he.css_row_left_right_margin)+Number(he.css_row_left_right_padding)}_currencyTooltipContent(){const e=this._currencyInfo;return null===e?"":null===e.selectedCurrency?Array.from(e.currencies).map(t=>(0,s.ensureDefined)(e.displayedValues.get(t))).join(", "):""}_unitTooltipContent(){const e=this._unitInfo;return null===e?"":null===e.selectedUnit?Array.from(e.units).map(t=>(0,s.ensureDefined)(e.names.get(t))).join(", "):e.descriptions.get(e.selectedUnit)||""}_setLineHeight(e){this._currencyLabelDiv.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}_isMultiLine(){return this.unitLabelEnabled()&&this.currencyLabelEnabled()}}async function ve(e,t,s){const{UnitConversionRenderer:r}=await Promise.all([i.e(5514),i.e(9129),i.e(4194),i.e(2e3),i.e(7962),i.e(8986),i.e(7836),i.e(5774),i.e(1112),i.e(4763),i.e(4474),i.e(7237),i.e(3016),i.e(1075),i.e(2704)]).then(i.bind(i,71834));return new r(e,s,t)}function Se(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 ye{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)),Se(t,e)}_reset(){this._totalDeltaX=0,this._totalDeltaY=0}}var be=i(68335),we=i(62138),Ce=i(51264),Pe=i(67337),Te=i(61671),xe=i(28296),Ie=i(8175),Me=i(27966);i(1597);const Le=new T.TranslatedString("change no overlapping labels",(0,r.t)("change no overlapping labels")),Ae=(0,r.t)("Merge all scales into one"),Ee=(0,r.t)("Labels"),ke=(0,r.t)("Currencies"),De=(0,r.t)("Units"),Ve=(0,r.t)("Reset price scale"),Be=(0,r.t)("Auto (fits data to screen)"),Ne=(0,r.t)("Percent",{context:"scale_menu"}),Re=(0,r.t)("Indexed to 100",{context:"scale_menu"}),Oe=(0,r.t)("Logarithmic",{context:"scale_menu"}),Fe=(0,r.t)("Regular",{context:"scale_menu"}),We=(0,r.t)("No overlapping labels",{
context:"scale_menu"}),He=(0,r.t)("Invert scale",{context:"scale_menu"});const ze=function(e){const t=new Ce.LimitedPrecisionNumericFormatter(e);return(e,i)=>(0,_.isNumber)(i)&&!e.isLog()?t.format(i):""}(4),Ue={contextMenuEnabled:!0,currencyConversionEnabled:!1,unitConversionEnabled:!1,countdownEnabled:!0,contextMenu:{general:!0,source:!0},pressedMouseMoveScale:!0,mouseWheelScale:!0,pinchScale:!0,croppedTickMarks:!0};class je{constructor(e,t,i,s,r,n,o,a,l){this._actions=null,this._priceScale=null,this._widthCache=new ie.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=new N.Size(-1,-1),this._currentCursorClassName="",this._destroyed=!1,this._highlighted=!1,this._mouseWheelHelper=null,this._dragScaleActive=!1,this._offset=NaN,this._pinching=!1,this._recalcCurrencyAndUnitVisibility=()=>{if(null===this._currencyLabel)return;const e=(0,Ie.currencyUnitVisibilityProperty)().value(),t="alwaysOff"===e||!this._chart.anyPriceAxisHovered().value()&&"visibleOnMouseOver"===e;this._currencyLabel.setHidden(t)},this._chart=e,this._pane=t,this._undoModel=i,this._properties=s,this._isLeft="left"===n,this._options=(0,_.merge)((0,_.clone)(Ue),o),this._rendererOptionsProvider=r,this._backgroundBasedTheme=l,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,N.createBoundCanvas)(this._cell,new N.Size(16,16)),this._canvasBinding.subscribeCanvasConfigured(this._canvasConfiguredHandler);const c=this._canvasBinding.canvas;c.style.position="absolute",c.style.zIndex="1",c.style.left="0",c.style.top="0",this._topCanvasConfiguredHandler=()=>this._undoModel.model().lightUpdate(),this._topCanvasBinding=(0,N.createBoundCanvas)(this._cell,new N.Size(16,16)),this._topCanvasBinding.subscribeCanvasConfigured(this._topCanvasConfiguredHandler);const h=this._topCanvasBinding.canvas;h.style.position="absolute",h.style.zIndex="2",h.style.left="0",h.style.top="0",this._mouseEventHandler=new B.MouseEventHandler(this._cell,this,{treatVertTouchDragAsPageScroll:!1,treatHorzTouchDragAsPageScroll:!0}),this._options.currencyConversionEnabled||this._options.unitConversionEnabled?(this._currencyLabel=new fe,this._cell.appendChild(this._currencyLabel.element())):this._currencyLabel=null,this._properties.childs().fontSize.subscribe(this,this._onFontSizeChanged),this._options.mouseWheelScale&&(this._mouseWheelHelper=new ye,this._cell.addEventListener("wheel",this._onMousewheel.bind(this),{passive:!1})),this._axisInfo=a,this._offset=0,this.restoreDefaultCursor(),(0,Ie.currencyUnitVisibilityProperty)().subscribe(this,this._recalcCurrencyAndUnitVisibility),this._chart.anyPriceAxisHovered().subscribe(this._recalcCurrencyAndUnitVisibility),this._recalcCurrencyAndUnitVisibility(),this.update()}getContextMenuActions(){
this._initActions();const e=(0,s.ensureNotNull)(this._actions),t=this._chart.actions(),i=[];return i.push(e.reset,new xe.Separator,this._autoScaleAction()),this._isMainSeriesAxis()&&i.push(this._lockScaleAction()),i.push(t.scaleSeriesOnly,this._invertAction(),new xe.Separator,this._regularScaleAction(),this._percentageAction(),this._indexedTo100Action(),this._logAction(),new xe.Separator),l.CheckMobile.any()||(i.push(this._createMergeScalesAction()),i.push(new xe.Separator)),Pe.enabled("fundamental_widget")||i.push(new xe.Action({actionId:"Chart.PriceScale.Labels",label:Ee,subItems:[t.showSymbolLabelsAction,t.showSeriesLastValue,null,null,t.showHighLowPriceLabels,Pe.enabled("show_average_close_price_line_and_label")?t.showAverageClosePriceLabel:null,null,t.showStudyPlotNamesAction,t.showStudyLastValue,e.alignLabels].filter(Boolean)})),i.push((0,Te.createLinesAction)(this._chart)),this._options.countdownEnabled&&i.push(t.showCountdown),this._undoModel.crossHairSource().isMenuEnabled()&&i.push(t.addPlusButton),!(0,l.onWidget)()&&Pe.enabled("show_chart_property_page")&&Pe.enabled("chart_property_page_scales")&&t.scalesProperties&&i.push(new xe.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,N.getContext2D)(this._canvasBinding.canvas);(0,te.setFont)(i,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.h-2,o);t=Math.max(t,this._widthCache.measureText(i,r.formatPrice(Math.floor(Math.min(e,s))+.11111111111111,o)),this._widthCache.measureText(i,r.formatPrice(Math.ceil(Math.max(e,s))-.11111111111111,o)))}}let r=0;this._isCurrencyLabelEnabled()&&(null===this._currencyLabelWidth&&(this._currencyLabelWidth=(0,s.ensureNotNull)(this._currencyLabel).width()),r=Math.round(this._currencyLabelWidth));const n=t||34;let o=Math.max(r,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){if(e.w<0||e.h<0)throw new Error("Try to set invalid size to PriceAxisWidget "+JSON.stringify(e));this._size.equals(e)||(this._size=e,this._canvasBinding.resizeCanvas({width:e.w,height:e.h}),this._topCanvasBinding.resizeCanvas({width:e.w,height:e.h}),this._cell.style.width=e.w+"px",this._cell.style.height=e.h+"px",this._cell.style.minWidth=e.w+"px"),this._offset!==t&&(this._offset=t,this._cell.style.left=t+"px")}getWidth(){return this._size.w}getImage(){const e=this._size,t=(0,N.createDisconnectedCanvas)(document,e);return(0,N.getPrescaledContext2D)(t).drawImage(this._canvasBinding.canvas,0,0,e.w,e.h),null!==this._currencyLabel&&this._currencyLabel.isEnabled()&&this._currencyLabel.drawLabel((0,N.getContext2D)(t),e.w,(0,N.getCanvasDevicePixelRatio)(t)),t}update(){}paint(e){if(!this._isVisible)return;if(e===b.InvalidationLevel.None)return;const t=this._pane.state(),i=!t.maximized().value()&&t.collapsed().value();if(e>b.InvalidationLevel.Cursor){const e=(0,N.getContext2D)(this._canvasBinding.canvas);i||this._alignLabels(),this._drawBackground(e,this._canvasBinding.pixelRatio),this._drawBorder(e,this._canvasBinding.pixelRatio),this._pane.hasState()&&(this.updateCurrencyLabel(),i||(this._drawTickMarks(e,this._canvasBinding.pixelRatio),this._drawBackLabels(e,this._canvasBinding.pixelRatio)))}if(this._pane.hasState()&&!i){const e=(0,N.getContext2D)(this._topCanvasBinding.canvas),t=this._topCanvasBinding.pixelRatio;e.clearRect(0,0,Math.ceil(this._size.w*t)+1,Math.ceil(this._size.h*t)+1),this._drawCrossHairLabel(e,t)}}restoreDefaultCursor(){this._setCursor("")}priceScale(){return(0,s.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.unsubscribeCanvasConfigured(this._topCanvasConfiguredHandler),this._topCanvasBinding.destroy(),this._canvasBinding.unsubscribeCanvasConfigured(this._canvasConfiguredHandler),this._canvasBinding.destroy(),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,Ie.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,O.makeFont)(this.fontSize(),z.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()}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 C.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.w,this._isLeft?"left":"right");null!==e&&a(e,t)}}}return 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,Ie.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=this.priceScale().unit(this._undoModel.model().availableUnits());null===t||"alwaysOff"===(0,Ie.currencyUnitVisibilityProperty)().value()?(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(t)||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(){const e=this._size.h;let t=e/2;const i=[],s=this.priceScale(),r=s.orderedSources().slice(),n=this._pane.state(),o=this.rendererOptions();if(s===n.defaultPriceScale()){const e=n.priceDataSources();for(let t=0;t{if(t.ignoreAlignment()||!t.isVisible())return!1;const i=t.height(o),s=t.floatCoordinate();return s>-i&&se.floatCoordinate()<=t),c=i.filter(e=>e.floatCoordinate()>t);l.sort((e,t)=>t.floatCoordinate()-e.floatCoordinate()),l.length>0&&c.length>0&&c.push(l[0]),c.sort((e,t)=>e.floatCoordinate()-t.floatCoordinate());for(const e of i)e.setFixedCoordinate(e.coordinate());if(s.properties().childs().alignLabels.value()){for(let e=1;en-s&&t.setFixedCoordinate(n-s)}for(let e=1;e{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.h||ithis._size.h||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,se.trackEvent)("GUI","Currency conversion");const{currencyActions:e}=await Promise.all([i.e(5514),i.e(9129),i.e(4194),i.e(2e3),i.e(7962),i.e(8986),i.e(7836),i.e(5774),i.e(1112),i.e(4763),i.e(4474),i.e(7237),i.e(3016),i.e(1075),i.e(2704)]).then(i.bind(i,11507)),t=await ve(ke,()=>e(this._undoModel,(0,s.ensureNotNull)(this._currencyLabel).currencyInfo(),this.priceScale()),(0,s.ensureNotNull)(this._currencyLabel).currencyLabelElement());this._destroyed?t.close():this._currencyMenu=t}async _showUnitsContextMenu(){if(null!==this._unitMenu&&this._unitMenu.isOpened())return void this._unitMenu.close();(0,se.trackEvent)("GUI","Unit conversion");const{unitActions:e}=await Promise.all([i.e(5514),i.e(9129),i.e(4194),i.e(2e3),i.e(7962),i.e(8986),i.e(7836),i.e(5774),i.e(1112),i.e(4763),i.e(4474),i.e(7237),i.e(3016),i.e(1075),i.e(2704)]).then(i.bind(i,53997)),t=await ve(De,()=>e(this._undoModel,(0,s.ensureNotNull)(this._currencyLabel).unitInfo(),this.priceScale()),(0,s.ensureNotNull)(this._currencyLabel).unitLabelElement());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.currencyLabelElement().contains(e.target))return void this._showCurrenciesContextMenu();if(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){const t=this.dataSourceAtPoint(e.localX,e.localY);t?this._pane.processDoubleClickOnSource(t):(this.reset(),(0,se.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)})}this._options.contextMenu.general&&$.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,s.ensureNotNull)(this._mouseWheelHelper).processWheel(e).deltaY;if(0===t)return;e.cancelable&&e.preventDefault();const i=this._undoModel,r=this._pane.state(),n=this.priceScale(),o=this._cell.getBoundingClientRect(),a=e.clientY-o.top,l=a+15*t;i.startScalePrice(r,this.priceScale(),a,!0),i.scalePriceTo(r,n,l),i.endScalePrice(r,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.w,this._size.h,_,t),e.restore()})}),e.restore()}_drawBackground(e,t){const i=Math.ceil(this._size.w*t),s=Math.ceil(this._size.h*t),r=this.backgroundTopColor(),n=this.backgroundColor();if(r===n?(0,N.clearRect)(e,0,0,i+1,s+1,this.backgroundColor()):(0,R.clearRectWithGradient)(e,0,0,i+1,s+1,r,n),this._highlighted){e.globalAlpha=.5;const t=F.themes[this._backgroundBasedTheme.value()].getThemedColor("color-price-axis-highlight");(0,N.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.w*t)-i:0;e.fillRect(s,0,i,Math.ceil(this._size.h*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.w,this._size.h,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 xe.Action({actionId:"Chart.PriceScale.Reset",label:Ve,icon:Me,shortcutHint:(0,be.humanReadableHash)(be.Modifiers.Alt+82),statName:"ResetScale",onExecute:()=>this.reset()}),i=new xe.Action({actionId:"Chart.PriceScale.ToggleAutoScale",label:Be,checkable:!0,checked:!0,statName:"ToggleAutoScale",onExecute:()=>{e.togglePriceScaleAutoScaleMode(this.priceScale()),this._updateScalesActions()}}),s=new xe.Action({actionId:"Chart.PriceScale.TogglePercentage",label:Ne,checkable:!0,checked:this.priceScale().isPercentage(),statName:"TogglePercantage",onExecute:()=>{e.togglePriceScalePercentageScaleMode(this.priceScale()),this._updateScalesActions()}}),r=new xe.Action({actionId:"Chart.PriceScale.ToggleIndexedTo100",label:Re,checkable:!0,checked:this.priceScale().isIndexedTo100(),statName:"ToggleIndexedTo100",onExecute:()=>{e.togglePriceScaleIndexedTo100ScaleMode(this.priceScale()),this._updateScalesActions()}}),n=new xe.Action({actionId:"Chart.PriceScale.ToggleLogarithmic",label:Oe,checkable:!0,checked:this.priceScale().isLog(),statName:"ToggleLogScale",onExecute:()=>{e.togglePriceScaleLogScaleMode(this.priceScale()),this._updateScalesActions()}}),o=new xe.Action({actionId:"Chart.PriceScale.ToggleRegular",label:Fe,checkable:!0,checked:this.priceScale().isRegular(),statName:"ToggleRegularScale",onExecute:()=>{e.setPriceScaleRegularScaleMode(this.priceScale()),this._updateScalesActions()}}),a=new xe.Action({actionId:"Chart.PriceScale.Labels.ToggleNoOverlappingLabelsVisibility",label:We,checkable:!0,checked:this.priceScale().properties().childs().alignLabels.value(),statName:"TogglePreciseLabels"});a.setBinding(new we.ActionBinder(a,this.priceScale().properties().childs().alignLabels,e,Le));const l=new xe.Action({actionId:"Chart.PriceScale.ToggleInvertScale",label:He,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,s.ensureNotNull)(this._actions).setLog}_percentageAction(){return this._isMainSeriesAxis()?this._chart.actions().percentSeriesScale:(0,s.ensureNotNull)(this._actions).setPercentage}_indexedTo100Action(){return this._isMainSeriesAxis()?this._chart.actions().indexedTo100SeriesScale:(0,s.ensureNotNull)(this._actions).setIndexedTo100}_autoScaleAction(){return this._isMainSeriesAxis()?this._chart.actions().autoSeriesScale:(0,
s.ensureNotNull)(this._actions).setAutoScale}_regularScaleAction(){return this._isMainSeriesAxis()?this._chart.actions().regularSeriesScale:(0,s.ensureNotNull)(this._actions).setRegular}_lockScaleAction(){const e=this._chart.actions().lockSeriesScale,t=ze(this.priceScale(),this._undoModel.model().mainSeriesScaleRatio());return e.update({hint:t}),e}_invertAction(){return this._isMainSeriesAxis()?this._chart.actions().invertSeriesScale:(0,s.ensureNotNull)(this._actions).invertScale}_isMainSeriesAxis(){return this.priceScale().hasMainSeries()}_updateScalesActions(){const e=this.priceScale(),t=this._isMainSeriesAxis(),i=(0,s.ensureNotNull)(e.mainSource()).properties(),r=t&&e.isLockScale(),n=t&&6===i.style.value(),o=(0,s.ensureNotNull)(this._actions);o.setRegular.update({checked:e.isRegular(),disabled:r||n}),o.setPercentage.update({checked:e.isPercentage(),disabled:r||n}),o.setIndexedTo100.update({checked:e.isIndexedTo100(),disabled:r||n}),o.setLog.update({checked:e.isLog(),disabled:r||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 xe.Action({actionId:"Chart.PriceScale.MergeAllScales",label:Ae,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 Ge(e,t){return e.position-t.position}function qe(e,t,i){const s=(e.position-t.position)/(e.time-t.time);return Math.sign(s)*Math.min(Math.abs(s),i)}class Ye{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=qe(this._position1,this._position2,this._maxSpeed),r=Ge(this._position1,this._position2),n=[s],o=[r];if(i+=r,null!==this._position3){const e=qe(this._position2,this._position3,this._maxSpeed);if(Math.sign(e)===Math.sign(s)){const t=Ge(this._position2,this._position3);if(n.push(e),o.push(t),i+=t,null!==this._position4){const e=qe(this._position3,this._position4,this._maxSpeed);if(Math.sign(e)===Math.sign(s)){const t=Ge(this._position3,this._position4)
;n.push(e),o.push(t),i+=t}}}}let a=0;for(let e=0;ea&&(e.hittest=t,e.source=i,e.renderer=s,e.isCustom=r)}const xt={contextMenuEnabled:!0,contextMenu:Te.defaultContextMenuOptions,priceScaleContextMenuEnabled:!0,legendWidgetEnabled:!0,controlsEnabled:!0,propertyPagesEnabled:!0,sourceSelectionEnabled:!0,countdownEnabled:!0},It=new Map([[M.AreaName.Text,"Text"],[M.AreaName.Style,"Style"]]),Mt=!Pe.enabled("display_legend_on_all_charts");function Lt(e,t){return!(0,M.shouldDefaultActionBeExecuted)(e,t,"pressedMouseMoveHandler","touchMoveHandler")}class At{constructor(e,t,i,s){this._legendWidget=null,this._paneControls=null,this._isDestroyed=!1,this._trackCrosshairOnlyAfterLongTap=(0,x.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=new N.Size(0,0),this._themedTopColor=null,this._initCrossHairPosition=null,this._firstZoomPoint=null,this._editDialog=null,
this._processing=!1,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._scrollYAnimation=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($e())({owner:"",axis:null}),this._visuallyCollapsed=new($e())(!1),this._canvasConfiguredHandler=()=>this._state&&this._chartModel().lightUpdate(),this._topCanvasConfiguredHandler=()=>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,_.merge)((0,_.clone)(xt),i),this._paneWidgetsSharedState=s,this._state&&this._subscribeToState();const r={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&&(r.contextMenu=this._options.priceScaleContextMenu);const n=(e,t,i,s,n)=>new je(this._chart,this,this._chartUndoModel(),i,t,e,r,s,n),o=e.properties().childs().scalesProperties,a=this._chartModel().rendererOptionsProvider(),l={backgroundBasedTheme:e.backgroundBasedTheme(),rendererOptionsProvider:a,getBackgroundTopColor:()=>this._chartModel().backgroundTopColor().value(),getBackgroundBottomColor:()=>this._chartModel().backgroundColor().value()},c={showLabels:!1};this._lhsPriceAxisesContainer=new ee(o,"left",n,l,c),this._rhsPriceAxisesContainer=new ee(o,"right",n,l,c),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,N.createBoundCanvas)(this._div,new N.Size(16,16)),this._canvasBinding.subscribeCanvasConfigured(this._canvasConfiguredHandler);const h=this._canvasBinding.canvas;h.style.position="absolute",h.style.left="0",h.style.top="0",this._topCanvasBinding=(0,
N.createBoundCanvas)(this._div,new N.Size(16,16)),this._topCanvasBinding.subscribeCanvasConfigured(this._topCanvasConfiguredHandler);const d=this._topCanvasBinding.canvas;d.style.position="absolute",d.style.left="0",d.style.top="0",this._rowElement=document.createElement("tr"),this._rowElement.appendChild(this._lhsPriceAxisesContainer.getElement()),this._rowElement.appendChild(this._paneCell),this._rowElement.appendChild(this._rhsPriceAxisesContainer.getElement()),this._options.legendWidgetEnabled&&(this._options.customLegendWidgetFactories&&(this._customLegendWidgetsFactoryMap=this._options.customLegendWidgetFactories),this._loadAndCreateLegendWidget()),this._state&&!this._chart.readOnly()&&this._options.controlsEnabled&&this._loadAndCreatePaneControlsWidget(),(0,nt.magnetEnabled)().subscribe(this._onMagnetStateChangedListener),(0,ot.shiftPressed)().subscribe(this._onShiftKeyStateChangedListener),this._paneCell.addEventListener("dragover",e=>{e.dataTransfer&&Array.from(e.dataTransfer.files).some(blobImageFilter)&&e.preventDefault()}),this.setCursorForTool(),this._mouseEventHandler=new B.MouseEventHandler(this._topCanvasBinding.canvas,this,{treatVertTouchDragAsPageScroll:!this._options.handleScroll.vertTouchDrag,treatHorzTouchDragAsPageScroll:!this._options.handleScroll.horzTouchDrag}),this._prevHoveredHittest=null,this._highlightedPriceAxis.subscribe(e=>this._highlightPriceAxisByLabel(e.axis)),this._prevPinchScale=0,this._isDestroyed=!1}destroy(){var e;this._chart.onPaneWidgetDestroyed(this),this._customLegendWidgetsFactoryMap.clear(),this._topCanvasBinding.unsubscribeCanvasConfigured(this._topCanvasConfiguredHandler),this._topCanvasBinding.destroy(),this._canvasBinding.unsubscribeCanvasConfigured(this._canvasConfiguredHandler),this._canvasBinding.destroy(),this._legendWidget&&(this._legendWidget.destroy(),this._legendWidget=null),null!==this._paneControlsResizeObserver&&this._paneControlsResizeObserver.disconnect(),null!==this._paneControls&&(this._paneControls.destroy(),this._paneControls=null),this._lhsPriceAxisesContainer.destroy(),this._rhsPriceAxisesContainer.destroy(),this.hasState()&&this._unsubscribeFromState(),(0,nt.magnetEnabled)().unsubscribe(this._onMagnetStateChangedListener),(0,ot.shiftPressed)().unsubscribe(this._onShiftKeyStateChangedListener),this._paneWidgetsSharedState.onPaneDestroyed(this),this._errorRenderer&&this._errorRenderer.then(e=>{e.destroy(),this._errorRenderer=null}),this._prevHoveredHittest=null,this._mouseEventHandler.destroy(),null===(e=this._rowElement.parentElement)||void 0===e||e.removeChild(this._rowElement),this._isDestroyed=!0}size(){return this._size}setSize(e){(0,s.assert)(e.w>=0&&e.h>=0,"Try to set invalid size to PaneWidget "+JSON.stringify(e)),this._size.equals(e)||(this._size=e,this._canvasBinding.resizeCanvas({width:e.w,height:e.h}),this._topCanvasBinding.resizeCanvas({width:e.w,height:e.h}),this._paneCell.style.width=e.w+"px",this._paneCell.style.height=e.h+"px",this._div.style.width=e.w+"px",this._div.style.height=e.h+"px",
this._rowElement.classList.toggle("js-hidden",0===e.h),null!==this._legendWidget&&this._legendWidget.updateWidgetModeBySize(e),null!==this._paneControls&&this._paneControls.updateWidgetModeByWidth(e.w))}width(){return this._size.w}height(){return this._size.h}backgroundColor(){return this._chartModel().backgroundColor().value()}highlightedPriceAxis(){return this._highlightedPriceAxis}processDoubleClickOnSource(e,t){(0,E.isDataSource)(e)&&e.id()!==this._lastFinishedToolId&&this._showEditDialogForSource(e,t)}stretchFactor(){return this._state?this._state.stretchFactor():0}setStretchFactor(e){this.hasState()&&this.state().setStretchFactor(e)}setCursorForTool(e,t,i){if(t&&t.mod()&&e)return void this._setCursorClassName("pointer");if(void 0!==i){switch(i){case it.PaneCursorType.VerticalResize:this._setCursorClassName("ns-resize");break;case it.PaneCursorType.HorizontalResize:this._setCursorClassName("ew-resize");break;case it.PaneCursorType.DiagonalNeSwResize:this._setCursorClassName("nesw-resize");break;case it.PaneCursorType.DiagonalNwSeResize:this._setCursorClassName("nwse-resize");break;case it.PaneCursorType.Default:this._setCursorClassName("default");break;case it.PaneCursorType.Pointer:this._setCursorClassName("pointer");break;case it.PaneCursorType.Grabbing:this._setCursorClassName("grabbing")}return}const s=k.tool.value();if((0,k.toolIsCursor)(s)){if(null!==this._paneWidgetsSharedState.draggingSource()||this._isScrolling||this._chartUndoModel()&&this._chartUndoModel().model().sourcesBeingMoved().length)return void this._setCursorClassName("grabbing");if(e&&this._options.sourceSelectionEnabled)return void this._setCursorClassName("pointer")}if("eraser"===s)return void this._setCursorClassName("eraser");if("zoom"===s)return void this._setCursorClassName("zoom-in");const r=k.cursorTool.value();"dot"!==r?"arrow"!==r?this._setCursorClassName(""):this._setCursorClassName("default"):this._setCursorClassName("dot")}showContextMenuForSelection(e){const t=this._chartUndoModel().selection();if(t.isEmpty())return;const i=t.dataSources().filter(e=>e.hasContextMenu());this.showContextMenuForSources(i,e)}async showContextMenuForSources(e,t,i){var s;if(!e.length)return Promise.resolve(null);const r=e[0],n=(0,_.merge)((0,_.clone)(this._options.contextMenu),i||{}),o=new Te.ActionsProvider(this._chart,n);if(r===this._chartUndoModel().crossHairSource())return r.handleContextMenuEvent(t),Promise.resolve(null);{const i=await o.contextMenuActionsForSources(e,t);if(0===i.length)return Promise.resolve(null);{let e;return e=r instanceof lt.Series?{menuName:"ObjectTreeContextMenu",detail:{type:"series",id:r.instanceId()}}:(0,f.isLineTool)(r)?{menuName:"ObjectTreeContextMenu",detail:{type:"shape",id:null!==(s=null==r?void 0:r.id())&&void 0!==s?s:null}}:{menuName:"ObjectTreeContextMenu",detail:{type:"study",id:(null==r?void 0:r.id())||null}},$.ContextMenuManager.createMenu(i,void 0,e).then(e=>(e.show(t),e))}}}leftPriceAxisesContainer(){return this._lhsPriceAxisesContainer}rightPriceAxisesContainer(){return this._rhsPriceAxisesContainer}
setPriceAxisSizes(e,t,i){this._priceAxisesContainer(e).setSizes(t,i)}state(){return(0,s.ensureNotNull)(this._state)}hasState(){return null!==this._state}setState(e){this._state!==e&&(this.hasState()&&this._unsubscribeFromState(),this._state=e,this.hasState()&&(this._subscribeToState(),this.updatePriceAxisWidgets()))}getScreenshotData(e){const t=[],i=[];let s,r=[];const n=this.state().sourcesByGroup().priceSources().slice().reverse(),o=this._chart.properties().childs().paneProperties.childs().legendProperties.childs();for(const a of n){const n=a.statusView();if((0,v.isStudy)(a)&&(o.showLegend.value()||(null==e?void 0:e.showCollapsedStudies))){const s=o.showStudyTitles.value(),r=s;a.properties().visible.value()&&n&&r&&(t.push(s?a.statusProvider(null==e?void 0:e.status).text():""),i.push(a.valuesProvider().getValues(null)))}else a===this._chartModel().mainSeries()&&n&&o.showSeriesTitle.value()&&(s=a.statusProvider((null==e?void 0:e.status)||{}).text(),r=a.valuesProvider().getValues(null))}return{type:"pane",leftAxis:this._lhsPriceAxisesContainer.getScreenshotData(),rightAxis:this._rhsPriceAxisesContainer.getScreenshotData(),content:this._canvasBinding.canvas.toDataURL(),canvas:this._canvasBinding.canvas,contentWidth:this._size.w,contentHeight:this._size.h,studies:t,studiesValues:i,containsMainSeries:this.containsMainSeries(),mainSeriesText:s,mainSeriesValues:r}}updatePriceAxisWidgets(){if(!this.hasState())return;const e=this._chartModel(),t=e.paneForSource(e.mainSeries());if(!t)return;const i=e.priceScaleSlotsCount(),s=this.state(),r=s.visibleLeftPriceScales(),n=s.visibleRightPriceScales();this._lhsPriceAxisesContainer.setScales(r,i.left,t.leftPriceScales().length,i.left+i.right),this._rhsPriceAxisesContainer.setScales(n,i.right,t.rightPriceScales().length,i.left+i.right)}update(){this.hasState()&&(this._lhsPriceAxisesContainer.update(),this._rhsPriceAxisesContainer.update(),null!==this._legendWidget&&this._legendWidget.update(),this.updateControls())}updateStatusWidget(e=b.InvalidationLevel.None){this.hasState()&&null!==this._legendWidget&&(e===b.InvalidationLevel.Full?this._legendWidget.updateLayout():this._legendWidget.update())}updateControls(){this.hasState()&&null!==this._paneControls&&this._paneControls.update()}updateThemedColors(e){this._themedTopColor=e.topColor,this._updateByThemedColors()}statusWidget(){return this._legendWidget}getElement(){return this._rowElement}canvasElement(){return this._canvasBinding.canvas}hasCanvas(e){return this._canvasBinding.canvas===e||this._topCanvasBinding.canvas===e}pinchStartEvent(){null===this._paneWidgetsSharedState.scrollingPane()&&null===this._paneWidgetsSharedState.pinchingPane()&&(this._onTouchEvent(),this._options.handleScale.pinch&&(this._terminateActiveAnimations(),this._prevPinchScale=1,this._pinching=!0,this._wasPinched=!0,this._paneWidgetsSharedState.setPinchingPane(this)))}pinchEvent(e,t,i,s){if(null!==this._paneWidgetsSharedState.scrollingPane()||this._paneWidgetsSharedState.pinchingPane()!==this)return;if(this._onTouchEvent(),
!this._options.handleScale.pinch)return;const r=10*(s-this._prevPinchScale);this._prevPinchScale=s,this._chartModel().zoomTime(e.x,r,!0),this._prevPinchScale=s}pinchEndEvent(){null===this._paneWidgetsSharedState.scrollingPane()&&this._paneWidgetsSharedState.pinchingPane()===this&&(this._onTouchEvent(),this._pinching=!1,this._paneWidgetsSharedState.setPinchingPane(null))}mouseClickEvent(e){this._onMouseEvent(),this._mouseClickOrTapEvent(e)}tapEvent(e){this._preventTouchEventsExceptPinch()||(this._onTouchEvent(),this._mouseClickOrTapEvent(e))}mouseDownEvent(e){this._onMouseEvent(),this.hasState()&&this._mouseDownOrTouchStartEvent(e,(0,s.ensureNotNull)(this._dataSourceAtPoint(e.localX,e.localY)))}touchStartEvent(e){if(this._paneWidgetsSharedState.startTouch(this),this._preventTouchEventsExceptPinch())return;const t=this._chartModel().crossHairSource(),i=!this._trackCrosshairOnlyAfterLongTap&&t.pane===this._state&&Number.isFinite(t.originX())&&Number.isFinite(t.originY())&&Math.abs(t.originX()-e.localX)+Math.abs(t.originY()-e.localY)<5;this._onTouchEvent(),this._chart.setActivePaneWidget(this);const r=(0,s.ensureNotNull)(this._dataSourceAtPoint(e.localX,e.localY));i&&(r.source===t||t.selectPointMode().value()?this.startTrackingMode(new C.Point(e.localX,e.localY),new C.Point(e.localX,e.localY)):!this._chart.readOnly()&&(0,f.isLineTool)(r.source)&&r.source.userEditEnabled()&&this._chartUndoModel().selectionMacro(e=>{var t;e.clearSelection(),e.addSourceToSelection(r.source,null===(t=r.hittest)||void 0===t?void 0:t.data())})),this._mouseDownOrTouchStartEvent(e,r),this._mouseOrTouchMoveEvent(e)}mouseUpEvent(e){this._onMouseEvent(),this._mouseUpOrTouchEndEvent(e)}touchEndEvent(e){this._paneWidgetsSharedState.endTouch(this),this._preventTouchEventsExceptPinch()||(this._onTouchEvent(),this._mouseOrTouchLeaveEvent(e),this._mouseUpOrTouchEndEvent(e))}mouseMoveEvent(e){this._onMouseEvent(),this._mouseOrTouchMoveEvent(e)}pressedMouseMoveEvent(e){this._onMouseEvent(),this._pressedMouseOrTouchMoveEvent(e)}touchMoveEvent(e){this._preventTouchEventsExceptPinch()||(this._onTouchEvent(),this._pressedMouseOrTouchMoveEvent(e))}mouseLeaveEvent(e){this._onMouseEvent(),this._mouseOrTouchLeaveEvent(e)}mouseDoubleClickEvent(e){this._onMouseEvent(),this._mouseDoubleClickOrDoubleTapEvent(e)}wheelClickEvent(e){var t,i;if(this._chart.readOnly())return;const r=this._dataSourceAtPoint(e.localX,e.localY);if(null===r||r.isCustom||null===r.source)return;if(((null===(t=r.hittest)||void 0===t?void 0:t.result())||0)<=M.HitTestResult.MOVEPOINT_BACKGROUND)return;const n=new A.EnvironmentState(e),o=null===(i=r.hittest)||void 0===i?void 0:i.eraseMarker();if(n.mod()&&void 0!==o&&r.source.processErase)return void r.source.processErase(this._chartUndoModel(),o);const a=this._chartUndoModel();a.selection().isSelected(r.source)||a.selectionMacro(e=>{e.clearSelection();const t=(0,s.ensureNotNull)(r.source);e.addSourceToSelection(t,Pt(r,t))}),this._chart.removeSelectedSources()}doubleTapEvent(e){this._preventTouchEventsExceptPinch()||(this._onTouchEvent(),
this._mouseDoubleClickOrDoubleTapEvent(e))}longTapEvent(e){if(null===this._state||this._preventTouchEventsExceptPinch())return;if(this._onTouchEvent(),this._longTap=!0,null!==this._startTrackPoint||!this._trackingModeShouldBeActive())return;const t=this._chartModel().selection();if(!t.isEmpty()){const i=(0,s.ensureNotNull)(this._dataSourceAtPoint(e.localX,e.localY));if(null!==i.source&&t.isSelected(i.source))return}this.startTrackingMode(new C.Point(e.localX,e.localY),new C.Point(e.localX,e.localY),new A.EnvironmentState(e))}mouseEnterEvent(e){this._onMouseEvent(),this.hasState()&&(this._chart.setActivePaneWidget(this),this._setCursorPosition(e.localX,e.localY,new A.EnvironmentState(e)))}contextMenuEvent(e){this._onMouseEvent(),this._contextMenuEvent(e)}touchContextMenuEvent(e){this._preventTouchEventsExceptPinch()||(this._onTouchEvent(),this._contextMenuEvent(e))}mouseDownOutsideEvent(){this._processOutsideClick({hittest:null,isCustom:!1,renderer:null,source:null})}cancelZoom(){this._chartModel().crossHairSource().clearSelection(),this._firstZoomPoint=null,this._preventCrossHairMove()&&this._clearCursorPosition()}startTrackingMode(e,t,i){this._startChangeLineToolParams=null,this._startMoveSourceParams=null,this._currentChangingLineToolHitTest=null,this._currentMovingHitTest=null,this._chartUndoModel().selectionMacro(e=>e.clearSelection()),this._startTrackPoint=e,this._exitTrackingModeOnNextTry=!1,this._setCursorPosition(t.x,t.y,i),this._initCrossHairPosition=this._chartModel().crossHairSource().currentPoint()}setDragToAnotherPaneCursor(){this._setCursorClassName("grabbing")}cloneLineTools(e,t){return this._chartUndoModel().cloneLineTools(e,t)}exitTrackingMode(){null!==this._state&&null!==this._startTrackPoint&&(this._exitTrackingModeOnNextTry=!0,this._tryExitTrackingMode())}trackingModeEnabled(){return null!==this._state&&null!==this._startTrackPoint}addCustomWidgetToLegend(e,t){this._options.legendWidgetEnabled&&(this._customLegendWidgetsFactoryMap.set(e,t),null!==this._legendWidget&&this._legendWidget.addCustomWidgetToLegend(e,t))}containsMainSeries(){return!!this.hasState()&&this.state().containsMainSeries()}paint(e,t){if(!this._chartUndoModel()||!this.hasState())return;this._state&&(e.priceScaleSideMaxLevel("left")>b.InvalidationLevel.Cursor||e.priceScaleSideMaxLevel("right")>b.InvalidationLevel.Cursor)&&(this._recalculatePriceScales((0,ht.viewportChangeEvent)()),this._chartModel().updateCrosshairPositionByOriginCoords());const i=e.fullInvalidation();if(i>b.InvalidationLevel.Cursor){const e=this._chartModel().crossHairSource(),t=e.originX(),i=e.originY();if(e.pane===this._state&&Number.isFinite(t)&&Number.isFinite(i)){const e=this._dataSourceAtPoint(t,i);null!==e&&this._updateHoveredSource(e,(0,ot.globalEnvironmentState)())}}if(this._lhsPriceAxisesContainer.paint(e.getterForPriceScaleInvalidationLevelBySide("left")),this._rhsPriceAxisesContainer.paint(e.getterForPriceScaleInvalidationLevelBySide("right")),i===b.InvalidationLevel.None)return
;const r=this._state&&(this._state.maximized().value()||!this._state.collapsed().value());if(i>b.InvalidationLevel.Cursor){const e=(0,s.ensureNotNull)(this._canvasBinding.canvas.getContext("2d"));e.setTransform(1,0,0,1,0,0);const i=this._canvasRenderParams();this._drawBackground(e,i),r&&this._drawSources(e,i,t)}if(null!==this._state){const e=(0,s.ensureNotNull)(this._topCanvasBinding.canvas.getContext("2d"));e.setTransform(1,0,0,1,0,0);const t=this._topCanvasRenderParams();e.clearRect(0,0,Math.ceil(this._size.w*t.pixelRatio),Math.ceil(this._size.h*t.pixelRatio)),r&&this._drawSeriesTopViews(e,t),this._drawCrossHair(e,t),r&&this._drawActiveLineTools(e,t)}}cancelCreatingLineTool(){const e=this._chartUndoModel(),t=this._chartUndoModel().lineBeingCreated();if(t)if(t.pointsCount()<=0&&!(0,et.isLineDrawnWithPressedButton)(t.toolname)){const i=t.points();if(i.length>2){const s=i[i.length-2];e.continueCreatingLine(s),this._finishTool(t)}else e.cancelCreatingLine()}else e.cancelCreatingLine();null!==this._firstZoomPoint&&this.cancelZoom(),this.setCursorForTool()}drawRightThere(e){if((0,f.isLineToolName)(e)&&this.hasState()){const t=this._chartUndoModel(),i=t.crossHairSource(),s=t.model().magnet().align(i.price,i.index,this.state());t.createLineTool({pane:this.state(),point:{index:i.index,price:s},linetool:e})}}cancelMeasuring(){this._chartUndoModel().crossHairSource().clearMeasure(),(0,k.resetToCursor)(),this.setCursorForTool()}async setErrorMessage(e){var t,i,s;e&&!this._errorRenderer&&(this._errorRenderer=this._createErrorBlock()),null===(t=await this._errorRenderer)||void 0===t||t.update({message:null==e?void 0:e.message,icon:(null===(i=this._state)||void 0===i?void 0:i.containsMainSeries())||(null===(s=this._state)||void 0===s?void 0:s.maximized().value())?null==e?void 0:e.icon:void 0,backgroundColor:`linear-gradient(${this._chartModel().backgroundTopColor().value()}, ${this._chartModel().backgroundColor().value()})`,textColor:this._chartModel().isDark()?_t:pt})}collapsedHeight(){var e,t;return Math.max(Math.ceil(null!==(t=null===(e=this._paneControls)||void 0===e?void 0:e.bottomWithMargin())&&void 0!==t?t:0),33)}_topCanvasRenderParams(){return{pixelRatio:this._topCanvasBinding.pixelRatio,physicalWidth:this._topCanvasBinding.canvas.width,physicalHeight:this._topCanvasBinding.canvas.height,cssWidth:this._chartModel().timeScale().width(),cssHeight:this.height()}}_canvasRenderParams(){return{pixelRatio:this._canvasBinding.pixelRatio,physicalWidth:this._canvasBinding.canvas.width,physicalHeight:this._canvasBinding.canvas.height,cssWidth:this._chartModel().timeScale().width(),cssHeight:this.height()}}_tryExitTrackingMode(e){this._exitTrackingModeOnNextTry&&(this._startTrackPoint=null,e||this._clearCursorPosition())}_tryStartMeasure(e,t,i,s,r){return!(!(0,k.toolIsMeasure)(k.tool.value())||t.startMeasurePoint())&&(e.isTouch||this._preventCrossHairMove()||this._setCursorPosition(e.localX,e.localY,i),s=this._chartModel().magnet().align(s,r,this.state()),t.startMeasuring({price:s,index:r},this.state()),!0)}_tryFinishMeasure(e,t){
if(t.startMeasurePoint()&&!t.endMeasurePoint()){let i=t.price;const s=t.index;return i=this._chartModel().magnet().align(i,s,this.state()),t.finishMeasure({price:i,index:s}),e.isTouch?(0,k.resetToCursor)():this._needResetMeasureLater=!0,this._preventCrossHairMove()&&this._clearCursorPosition(),!0}return!1}_tryStartZoom(e,t,i,s){const r=this._chart.model().model().zoomEnabled();if("zoom"===k.tool.value()&&r){const r=this._chartUndoModel(),n=r.timeScale().indexToCoordinate(i)-.5*r.timeScale().barSpacing();return this._firstZoomPoint={price:t,index:i,x:n,y:e.localY},this._preventCrossHairMove()||this._setCursorPosition(e.localX,e.localY,s),this._chartModel().crossHairSource().startSelection(this.state()),!0}return!1}_finishZoom(e){const t=this.state(),i=t.defaultPriceScale(),r=(0,s.ensureNotNull)(t.mainDataSource()).firstValue(),n=i.coordinateToPrice(e.localY,(0,s.ensureNotNull)(r)),o=this._chartUndoModel(),a=Math.round(o.timeScale().coordinateToIndex(e.localX)),l=(0,s.ensureNotNull)(this._firstZoomPoint);a!==l.index&&o.zoomToViewport(l.index,a,l.price,n,t),this._chartModel().crossHairSource().clearSelection(),this._firstZoomPoint=null,(0,k.resetToCursor)(),this._preventCrossHairMove()&&this._clearCursorPosition()}_tryFinishZoom(e){return null!==this._firstZoomPoint&&(this._finishZoom(e),!0)}_tryHandleEraserMouseDown(e,t){if(e.source&&"eraser"===k.tool.value()&&!e.isCustom&&(!(i=e.source)||!i.customization||!i.customization.disableErasing)){const i=this._chartUndoModel();if(null!==e.hittest&&((0,f.isLineTool)(e.source)||(0,v.isStudy)(e.source))){const s=e.hittest.eraseMarker();return t.mod()&&void 0!==s&&e.source.processErase?e.source.processErase(i,s):i.removeSource(e.source,!1),!0}}var i;return!1}_tryStartChangingLineTool(e,t,i,r){var n,o;if(e.isTouch&&null!==this._startTrackPoint)return!1;const a=t.hittest;if((!e.isTouch||!this._preventSourceChange)&&a&&(0,f.isLineTool)(t.source)&&a.result()===M.HitTestResult.CHANGEPOINT){const l=this._chartUndoModel(),c=(0,s.ensure)(null===(n=this.state().mainDataSource())||void 0===n?void 0:n.firstValue()),h=(0,s.ensureNotNull)(t.source.priceScale()).coordinateToPrice(e.localY,c);l.selectionMacro(e=>{e.clearSelection(),e.addSourceToSelection(t.source,a.data())});const d=l.model().magnet().align(h,r,this.state()),u=null===(o=a.data())||void 0===o?void 0:o.pointIndex;return this._startChangeLineToolParams={source:t.source,startPoint:{index:r,price:d},screenPoint:{x:e.localX,y:e.localY},pointIndex:u,envState:i},!0}return this._startChangeLineToolParams=null,!1}_tryStartCloning(e,t,i,s){if(i.mod()){const t=this._chartUndoModel().selection().dataSources().filter(e=>e.cloneable());if(s&&s.cloneable()&&t.push(s),t.length>0)return this._clonningAtMoveLineTools=t.map(e=>e.id()),this._startCloningPoint=new C.Point(e.localX,e.localY),!0}return!1}_tryFinishClonning(e,t,i){const r=this._chartUndoModel(),n=this._chartModel();if(t.mod()&&this._clonningAtMoveLineTools){const o=new C.Point(e.localX,e.localY),a=(0,s.ensureNotNull)(this._startCloningPoint).subtract(o).length(),l=[]
;for(const e of this._clonningAtMoveLineTools){const t=n.dataSourceForId(e);null!==t&&l.push(t)}if(0===l.length)return!1;if(a>8){const n=this.cloneLineTools(l,!0).map(e=>(0,s.ensureNotNull)(r.model().dataSourceForId(e)));r.selectionMacro(e=>{e.clearSelection();let t=null;n.forEach(s=>{null===t&&(t=Pt(i,s)),e.addSourceToSelection(s,t)})});const o=new C.Point(e.localX,e.localY),a=(0,s.ensureNotNull)(n[0].priceScale()),c=(0,s.ensureNotNull)(this.state().mainDataSource()).firstValue(),h={index:r.timeScale().coordinateToIndex(e.localX),price:a.coordinateToPrice(e.localY,(0,s.ensureNotNull)(c))};r.startMovingSources(n,{logical:h,screen:o},null,t),this._clonningAtMoveLineTools=null,this._startCloningPoint=null}return!0}return!1}_mouseDownEventForLineTool(e,t,i,r){var n,o;const a=k.tool.value();if(!this.hasState()||(0,et.isLineToolDrawWithoutPoints)(a))return;const l=this._chartUndoModel();let c=!1,h=null;(0,k.hideAllDrawings)().value()&&(0,ct.toggleHideMode)(),(0,k.lockDrawings)().setValue(!1),e.isTouch&&!e.stylus&&((0,f.isLineToolName)(a)&&!(0,et.isLineDrawnWithPressedButton)(a)||l.lineBeingCreated())&&this._initToolCreationModeParams(e);const d=l.lineBeingCreated();if(d&&!(0,et.isLineDrawnWithPressedButton)(d.toolname)){const a=(0,s.ensure)(null===(n=d.ownerSource())||void 0===n?void 0:n.firstValue());if(e.isTouch&&!e.stylus){if(!this._startTouchPoint){this._startTouchPoint=new C.Point(e.pageX,e.pageY);const t=d.points(),i=t[t.length-1],r=l.timeScale().indexToCoordinate(i.index),n=(0,s.ensureNotNull)(d.priceScale()).priceToCoordinate(i.price,a);return void(this._initCrossHairPosition=new C.Point(r,n))}}else if(!e.isTouch){h=d;const n=l.model().paneForSource(d);if(n!==this._state&&null!==n){const i=this._externalPaneXCoord(n,e.localX),r=this._externalPaneYCoord(n,e.localY);c=l.continueCreatingLine({index:Math.round(l.timeScale().coordinateToIndex(i)),price:(0,s.ensure)(null===(o=d.priceScale())||void 0===o?void 0:o.coordinateToPrice(r,a))},t)}else{const e=l.model().magnet().align(r,i,this.state());c=l.continueCreatingLine({index:i,price:e},t)}}}else if(!e.isTouch||e.stylus||(0,et.isLineDrawnWithPressedButton)(a)){const e={index:i,price:l.model().magnet().align(r,i,this.state())};h=l.createLineTool({pane:this.state(),point:e,linetool:a}),l.lineBeingCreated()||(c=!0)}const u=(0,s.ensureNotNull)(this._dataSourceAtPoint(e.localX,e.localY));h&&l.selectionMacro(e=>{var t;return e.addSourceToSelection((0,s.ensureNotNull)(h),null===(t=u.hittest)||void 0===t?void 0:t.data())}),c&&h&&(this._finishTool(h,u),e.preventDefault())}_handleSelectionMouseDownAndGetJustDeselectedSource(e,t,i){const s=this._chartUndoModel();let r=null;if(null===t.source||t.source.isSelectionEnabled()){let n=e.isTouch?Boolean(t.hittest&&t.hittest.result()>=M.HitTestResult.MOVEPOINT_BACKGROUND):Boolean(t.hittest&&t.hittest.result()>M.HitTestResult.MOVEPOINT_BACKGROUND);this._preventSourceChange&&(n=!1),s.selectionMacro(e=>{var s;n&&t.source?(i.mod()||e.selection().isSelected(t.source)||e.clearSelection(),i.mod()&&e.selection().isSelected(t.source)?(r=t.source,
e.removeSourceFromSelection(t.source)):e.addSourceToSelection(t.source,null===(s=t.hittest)||void 0===s?void 0:s.data()),e.selection().allSources().length>1&&(0,se.trackEvent)("GUI","Multiselect","Click Select")):i.mod()||e.clearSelection()})}return r}_processMouseMoveWhileZoom(e,t){this._preventCrossHairMove()||this._setCursorPosition(e.localX,e.localY,t)}_updateCommonTooltip(e,t){let i=null;if(null!==e&&null!==e.hittest){const t=e.hittest.data();t&&(i=t.tooltip||null)}if(null===this._prevTooltipData&&null===i)return;if(null===i||""===i.text)return this._prevTooltipData=null,void(0,st.hide)(t);if(this._prevTooltipData&&(0,w.default)(i,this._prevTooltipData))return;this._prevTooltipData=i;const s=(0,_.clone)(i);if(void 0!==s.rect){const e=this._paneCell.getBoundingClientRect();s.rect.x+=e.left,s.rect.y+=e.top}(0,st.show)(s)}_setCursorPositionOnExternalPane(e,t,i,s){t=this._externalPaneXCoord(e,t),i=this._externalPaneYCoord(e,i);this._chart.paneByState(e)._setCursorPosition(t,i,s)}_setCursorPosition(e,t,i){this._chartModel().setAndSaveCurrentPosition(this._correctXCoord(e),this._correctYCoord(t),this.state(),i)}_setCursorClassName(e){let t="";e&&(t="pane--cursor-"+e),this._currentCursorClassName!==t&&(this._currentCursorClassName&&this._paneCell.classList.remove(this._currentCursorClassName),t&&this._paneCell.classList.add(t),this._currentCursorClassName=t,this._paneCell.style.cursor)}_processMouseUpOrTouchEndHandler(e){var t;null===(t=(0,s.ensureNotNull)(this._dataSourceAtPoint(e.localX,e.localY)).hittest)||void 0===t||t.tryCallMouseUpOrTouchEndHandler(e)}_crossHairShouldBeVisible(){const e=this._chartModel().crossHairSource();return(0,f.isLineToolName)(k.tool.value())||(0,k.toolIsMeasure)(k.tool.value())||e.startMeasurePoint()&&!e.endMeasurePoint()||null!==this._firstZoomPoint||null!==this._chartModel().lineBeingEdited()||null!==this._chartModel().lineBeingCreated()}_clearCursorPosition(){this._chartModel().clearCurrentPosition()}_dataSourceAtPoint(e,t){if(!this.hasState())return null;const i={source:null,hittest:null,isCustom:!1,renderer:null},s=this._chartUndoModel();if((0,f.isLineToolName)(k.tool.value())||null!==s.lineBeingCreated())return i;if(this._currentChangingLineToolHitTest)return this._currentChangingLineToolHitTest;if(this._currentMovingHitTest)return this._currentMovingHitTest;const r=this.state(),n=r.height(),o=r.width(),a=Tt.bind(null,i),l=this._canvasRenderParams(),c=new C.Point(e,t);if(!this.state().maximized().value()&&this.state().collapsed().value()||(0,x.lastMouseOrTouchEventInfo)().isTouch&&(k.isPointSelectedNow.value()||null!==this._startTrackPoint))return this._hitTestSources(l,[s.crossHairSource()],c,a,!1),i;const h=r.sourcesByGroup(),d=s.selection();this._hitTestSources(l,d.dataSources(),c,a,!1),this._hitTestSources(l,d.customSources(),c,a,!0);const u=new Set(d.allSources().map(e=>e.id()));this._hitTestSources(l,[s.crossHairSource()],c,a,!1,u),this._hitTestSources(l,r.customSources(L.CustomSourceLayer.Topmost),c,a,!0,u),this._hitTestSources(l,h.tradingSources(),c,a,!1,u),
this._hitTestSources(l,r.customSources(L.CustomSourceLayer.Foreground),c,a,!0,u);const p=[...this._chartModel().multiPaneSources(r),...h.hitTestSources()];if(this._hitTestSources(l,p,c,a,!1,u),this.containsMainSeries()){const e=s.barsMarksSources();for(let t=0;t=0;--s){const h=t[s];if(void 0!==o&&o.has(h.id()))continue;const d=h.paneViews(a);if(null!==d&&0!==d.length)for(let t=d.length-1;t>=0;--t){const s=d[t].renderer(l,c);if(s&&s.hitTest){const t=s.hitTest(i,e);null!==t&&r(t,h,s,n)}}}}_tryStartMovingLineTool(e,t,i,r){var n,o;if(null===t.source||!t.source.movable()||null!==this._startTrackPoint)return!1;if(!this._preventSourceChange){const a=this._chartUndoModel(),l=(0,s.ensureNotNull)((0,s.ensureNotNull)(this._state).mainDataSource()).firstValue(),c=(0,s.ensureNotNull)(t.source.priceScale()).coordinateToPrice(e.localY,(0,s.ensureNotNull)(l));let h=(t.source.isSelectionEnabled()?a.selection().allSources():[t.source]).filter(at);const d=h.filter(f.isLineTool);h=d.length>0?d:h.includes(t.source)?[t.source]:[h[0]];const u=new C.Point(e.localX,e.localY),p={index:r,price:c},_=null===(o=null===(n=t.hittest)||void 0===n?void 0:n.data())||void 0===o?void 0:o.activeItem;return this._startMoveSourceParams={source:h,startPoint:{logical:p,screen:u},activeItem:void 0===_?null:_,envState:i},!0}return this._startMoveSourceParams=null,!1}_chartModel(){return this._chart.model().model()}_chartUndoModel(){return this._chart.model()}_externalPaneXCoord(e,t){t+=this._div.getBoundingClientRect().left+document.body.scrollLeft;const i=(0,s.ensureNotNull)(this._chart.paneByState(e)),r=i._div.getBoundingClientRect().left+document.body.scrollLeft;return i._correctXCoord(t-r)}_externalPaneYCoord(e,t){t+=this._div.getBoundingClientRect().top+document.body.scrollTop;const i=(0,s.ensureNotNull)(this._chart.paneByState(e)),r=i._div.getBoundingClientRect().top+document.body.scrollTop;return i._correctYCoord(t-r)}_correctXCoord(e){return Math.max(0,Math.min(e,this._size.w-1))}_correctYCoord(e){return Math.max(0,Math.min(e,this._size.h-1))}_processScroll(e){if(!this._chart.model().model().scrollEnabled())return;const t=Date.now();this._startScrollingPos||this._preventScroll()||(this._startScrollingPos={x:e.clientX,y:e.clientY,timestamp:t,localX:e.localX,localY:e.localY}),null!==this._scrollXAnimation&&this._scrollXAnimation.addPosition(e.localX,t),null!==this._scrollYAnimation&&this._scrollYAnimation.addPosition(e.localY,t);const i=this._chartUndoModel();let s=this.state().defaultPriceScale()
;if(this._startScrollingPos&&!this._isScrolling&&(this._startScrollingPos.x!==e.clientX||this._startScrollingPos.y!==e.clientY))return i.beginUndoMacro(mt,!0),null===this._scrollXAnimation&&this._options.useKineticScroll&&(this._scrollXAnimation=new Ye(.2,7,.997,15),this._scrollXAnimation.addPosition(this._startScrollingPos.localX,this._startScrollingPos.timestamp),this._scrollXAnimation.addPosition(e.localX,t)),this._scrollYAnimation,i.selection().isEmpty()||(s=i.selection().allSources()[0].priceScale()),null===s||s.isEmpty()||(this._scrollPriceScale=s,i.startScrollPrice(this.state(),s,e.localY)),i.startScrollTime(e.localX),this._isScrolling=!0,this.setCursorForTool(),void this._paneWidgetsSharedState.setScrollingPane(this);this._isScrolling&&(null!==this._scrollPriceScale&&i.scrollPriceTo(this.state(),this._scrollPriceScale,e.localY),i.scrollTimeTo(e.localX))}_finishScroll(){const e=this._chartUndoModel();e.endScrollTime(),null!==this._scrollPriceScale&&e.endScrollPrice(this.state(),this._scrollPriceScale),e.endUndoMacro(),this._isScrolling=!1,this._startScrollingPos=null,this._scrollPriceScale=null,this.setCursorForTool(),this._paneWidgetsSharedState.setScrollingPane(null)}_endScroll(e){if(!this._isScrolling)return!1;const t=this._isScrolling&&this._scrollUndoCommandInStack();if(this._isScrolling){const i=Date.now();null!==this._scrollXAnimation&&this._scrollXAnimation.start(e.localX,i),null!==this._scrollYAnimation&&this._scrollYAnimation.start(e.localY,i);const s=this._chartUndoModel(),r=null===this._scrollXAnimation||this._scrollXAnimation.finished(i),n=null===this._scrollYAnimation||this._scrollYAnimation.finished(i);if(r&&n)return this._finishScroll(),t;r?(s.endScrollTime(),this._paneWidgetsSharedState.setScrollingPane(null)):n&&(this._scrollPriceScale&&s.endScrollPrice(this.state(),this._scrollPriceScale),this._scrollPriceScale=null);const o=s.timeScale(),a=this._scrollXAnimation,l=this._scrollYAnimation,c=()=>{if((null===a||a.terminated())&&(null===l||l.terminated()))return;const e=Date.now();let t=null===a||a.finished(e);const i=null===l||l.finished(e);if(null!==a&&!a.terminated()){const i=o.rightOffset();s.scrollTimeTo(a.getPosition(e)),i===o.rightOffset()&&(t=!0,this._scrollXAnimation=null)}null===l||l.terminated()||null===this._scrollPriceScale||s.scrollPriceTo(this.state(),this._scrollPriceScale,l.getPosition(e)),t&&i?this._finishScroll():requestAnimationFrame(c)};requestAnimationFrame(c)}return t}_terminateActiveAnimations(){const e=Date.now(),t=null===this._scrollXAnimation||this._scrollXAnimation.finished(e),i=null===this._scrollYAnimation||this._scrollYAnimation.finished(e);null===this._scrollXAnimation&&null===this._scrollYAnimation||t&&i||this._finishScroll(),null!==this._scrollXAnimation&&(this._scrollXAnimation.terminate(),this._scrollXAnimation=null),null!==this._scrollYAnimation&&(this._scrollYAnimation.terminate(),this._scrollYAnimation=null)}_preventScroll(){return this._trackCrosshairOnlyAfterLongTap&&this._longTap||this._contextMenuOpenedOnLastTap||(0,
f.isLineToolName)(k.tool.value())||Boolean(this._chartUndoModel().lineBeingCreated())||null!==this._startTrackPoint}_isSelectPointModeEnabled(){return this._chartUndoModel().crossHairSource().selectPointMode().value()}_preventCrossHairMove(){return!!this._trackCrosshairOnlyAfterLongTap&&(null===this._chart.trackingModePaneWidget()&&(!!this._contextMenuOpenedOnLastTap||!this._crossHairShouldBeVisible()&&null===this._startTrackPoint))}_finishTool(e,t=null){const i=this._chartUndoModel(),s=k.tool.value();if((0,k.resetToCursor)(),this._preventCrossHairMove()&&this._clearCursorPosition(),i.selectionMacro(i=>{i.addSourceToSelection(e,Pt(t,e))}),(0,et.isTextToolName)(s)){const t=i.createUndoCheckpoint();this._chart.showChartPropertiesForSource(e,tt.TabNames.text,void 0,t).then(e=>{0})}this._lastFinishedToolId=e.id(),(0,h.emit)("drawing_event",e.id(),"create"),(0,Qe.trackDrawingCreated)(e)}_alignSourcesThatBeingMoved(e,t,i,s){const r=this._chartUndoModel(),n=r.timeScale().coordinateToIndex(t);r.model().sourcesBeingMoved().forEach(e=>{var o,a;let l=n,c=e.convertYCoordinateToPriceForMoving(i,this.state().mainDataSource());if(null!==c){if((0,v.isStudy)(e)){const e=r.mainSeries(),t=e.bars().firstIndex(),i=e.bars().lastIndex();null!==t&&null!==i&&(l=Math.min(Math.max(n,t),i)),c=this._chartModel().magnet().align(c,n,this.state())}null!==this._currentMovingHitTest&&void 0!==(null===(a=null===(o=this._currentMovingHitTest.hittest)||void 0===o?void 0:o.data())||void 0===a?void 0:a.cursorType)||this.setCursorForTool(),r.moveSources({screen:new C.Point(t,i),logical:{index:l,price:c}},s)}})}_resetMeasureIfRequired(){this._needResetMeasureLater&&((0,k.resetToCursor)(),this._needResetMeasureLater=!1)}_drawBackground(e,t){const i=Math.ceil(t.pixelRatio*this._size.w),s=Math.ceil(t.pixelRatio*this._size.h),r=this._chartModel(),n=r.backgroundTopColor().value(),o=r.backgroundColor().value();n===o?(0,N.clearRect)(e,0,0,i+1,s+1,o):(0,R.clearRectWithGradient)(e,0,0,i+1,s+1,n,o)}_drawWatermark(e,t){const i=this._chartModel().watermarkSource();if(null===i)return;const s=this.state();if(!s.containsMainSeries())return;const r=i.paneViews(),n=s.height(),o=s.width();for(const i of r){e.save();const s=i.renderer(n,o);s&&s.draw(e,t),e.restore()}}_drawCrossHair(e,t){const i=this._chartUndoModel().crossHairSource();!i.visible&&(0,k.lockTimeAxis)().value()&&(i.setLockedPosition((0,s.ensureNotNull)(this._state)),i.updateAllViews((0,ht.dataSourceChangeEvent)(i.id()))),this._drawSourceImpl(e,t,yt,St,i)}_drawActiveLineTools(e,t){const i=this._chartModel(),s=[i.lineBeingCreated(),i.lineBeingEdited(),...i.sourcesBeingMoved(),i.customSourceBeingMoved()].filter(e=>!!e);for(const r of s){(i.paneForSource(r)===this.state()||(0,E.isDataSource)(r)&&r.isMultiPaneEnabled())&&this._drawSourceImpl(e,t,yt,St,r)}}_drawSeriesTopViews(e,t){this.state().containsMainSeries()&&this._drawSourceImpl(e,t,bt,St,this._chartUndoModel().mainSeries())}_drawSources(e,t,i){
const s=this.state(),r=s.model(),n=s.sourcesByGroup(),o=n.tradingSources(),a=[...r.multiPaneSources(s),...n.generalSources()],l=n.phantomSources(),c=s.customSources(L.CustomSourceLayer.Background).slice(),h=s.customSources(L.CustomSourceLayer.Foreground).slice(),d=s.customSources(L.CustomSourceLayer.Topmost).slice();{const e=r.panes();for(let t=e.length-1;t>=0;t--)e[t].createDrawingsCaches()}this._drawSourceImpl(e,t,yt,St,r.gridSource()),this._drawWatermark(e,t);for(const i of c)this._drawSourceImpl(e,t,yt,vt,i);for(const i of a)this._drawSourceImpl(e,t,yt,vt,i);for(const i of h)this._drawSourceImpl(e,t,yt,vt,i);for(const i of l)this._drawSourceImpl(e,t,yt,vt,i);const u=new Set;[r.lineBeingCreated(),r.lineBeingEdited(),...r.sourcesBeingMoved(),r.customSourceBeingMoved()].filter(_.notNull).forEach(e=>u.add(e.id()));let p=r.hoveredSource();null!==p&&(ft(p)||u.has(p.id())||(0,E.isDataSource)(p)&&!a.includes(p)?p=null:u.add(p.id()));const m=r.selection().allSources().filter(e=>!((0,E.isDataSource)(e)&&!a.includes(e))&&(!u.has(e.id())&&!ft(e)));m.forEach(e=>u.add(e.id()));{for(const i of c)this._drawSourceImpl(e,t,yt,St,i,u);for(const i of a)this._drawSourceImpl(e,t,yt,St,i,u);for(const i of h)this._drawSourceImpl(e,t,yt,St,i,u);const i=r.activeStrategySource().value();i&&this.containsMainSeries()&&this._drawSourceImpl(e,t,Ct,St,i)}for(const i of o)this._drawSourceImpl(e,t,yt,vt,i);for(const i of d)this._drawSourceImpl(e,t,yt,vt,i);for(const i of a)this._drawSourceImpl(e,t,wt,St,i,u);for(const i of h)this._drawSourceImpl(e,t,wt,St,i,u);this._drawBarsMarks(e,t,i);for(const i of o)this._drawSourceImpl(e,t,yt,St,i,u);for(const i of d)this._drawSourceImpl(e,t,yt,St,i,u);for(const i of m)this._drawSourceImpl(e,t,yt,St,i);for(const i of m)this._drawSourceImpl(e,t,wt,St,i);p&&(this._drawSourceImpl(e,t,yt,St,p),this._drawSourceImpl(e,t,wt,St,p));for(const i of l)this._drawSourceImpl(e,t,yt,St,i,u);{const e=r.panes();for(let t=e.length-1;t>=0;t--)e[t].clearDrawingCaches()}}_drawSourceImpl(e,t,i,s,r,n){if(n&&n.has(r.id()))return;const o=this.state(),a=o.height(),l=o.width(),c=i(r,this.state());if(c)for(const i of c){const r=i.renderer(a,l);r&&(e.save(),s(r,e,t),e.restore())}}_drawBarsMarks(e,t,i){if(this.containsMainSeries()&&!i){const i=this._chartUndoModel().barsMarksSources();for(const s of i)this._drawSourceImpl(e,t,yt,St,s)}}_updateByThemedColors(){null!==this._legendWidget&&this._legendWidget.updateThemedColors(this._themedTopColor),null!==this._paneControls&&this._paneControls.updateThemedColors(this._themedTopColor)}_scrollUndoCommandInStack(){const e=this._chartUndoModel().undoHistory().undoStack();if(e.isEmpty())return!1;const t=e.head();if(!(t instanceof D.UndoMacroCommand))return!1;if(t.isEmpty())return!1;const i=t.commands()[0];return i instanceof Ze.PriceScaleChangeUndoCommand||i instanceof Xe.TimeScaleChangeUndoCommand}_onStateDestroyed(){this.setState(null)}_onDataSourcesCollectionChanged(){this._startMoveSourceParams=null}_processMouseEnterLeaveMoveHandlers(e,t){var i,s,r,n
;null!==this._prevHoveredHittest&&this._prevHoveredHittest.renderer!==e.renderer&&((0,M.tryCallHandler)(t,null===(s=null===(i=this._prevHoveredHittest.hittest)||void 0===i?void 0:i.data())||void 0===s?void 0:s.mouseLeaveHandler),this._prevHoveredHittest=null),t.isTouch||(e.hittest&&(null===(r=this._prevHoveredHittest)||void 0===r?void 0:r.renderer)!==e.renderer&&(e.hittest.tryCallMouseEnterHandler(t),this._prevHoveredHittest=e),null===(n=e.hittest)||void 0===n||n.tryCallMouseMoveHandler(t))}_startChangeOrMoveLineToolIfNeeded(){if(null!==this._startChangeLineToolParams){const e=this._startChangeLineToolParams;this._chartUndoModel().startChangingLinetool(e.source,e.startPoint,e.pointIndex,e.envState)}if(null!==this._startMoveSourceParams){const e=this._startMoveSourceParams;this._chartUndoModel().startMovingSources(e.source,e.startPoint,e.activeItem,e.envState)}this._startMoveSourceParams=null,this._startChangeLineToolParams=null}_trackingModeShouldBeActive(){return!(!this._trackCrosshairOnlyAfterLongTap||this._contextMenuOpenedOnLastTap||this._crossHairShouldBeVisible())&&this._longTap}_processOutsideClick(e){let t=null;const i=this._chartModel();if(e.source&&(t=e.isCustom?i.customSourceName(e.source):e.source.id()),null!==this._lastClickedSource&&this._lastClickedSource.id!==t){const e=this._lastClickedSource.id;let t=this._lastClickedSource.isCustom?i.customSourceForName(e):i.dataSourceForId(e);null!==t||this._lastClickedSource.isCustom||(t=this._chartUndoModel().barMarksSourceForId(e)),null!==t&&t.onClickOutside&&(t.onClickOutside(),this._chartModel().updateSource(t))}this._lastClickedSource=null!==t?{id:t,isCustom:e.isCustom}:null}_mouseClickOrTapEvent(e){var t,i,r;if(!this.hasState())return;const n=this._dataSourceAtPoint(e.localX,e.localY),o=n&&n.source,a=this._chartUndoModel(),l=Boolean(null===(i=null===(t=null==n?void 0:n.hittest)||void 0===t?void 0:t.data())||void 0===i?void 0:i.hideCrosshairLinesOnHover);this._processOutsideClick((0,s.ensureNotNull)(n)),!this._isSelectPointModeEnabled()||l||e.isTouch&&this.trackingModeEnabled()&&!this._exitTrackingModeOnNextTry||a.crossHairSource().trySelectCurrentPoint(),(null===(r=null==n?void 0:n.hittest)||void 0===r?void 0:r.tryCallClickOrTapHandler(e))&&a.model().updateSource((0,s.ensureNotNull)(o)),!e.isTouch||this._isSelectPointModeEnabled()||n&&n.source===a.crossHairSource()||this._tryExitTrackingMode(),o instanceof V.BarsMarksContainer&&n&&n.hittest&&n.hittest.data()&&o.onClicked((0,s.ensureNotNull)(n.hittest).data()),o&&(0,f.isLineTool)(o)&&this._lastFinishedToolId!==o.id()&&(0,h.emit)("drawing_event",o.id(),"click"),this._resetMeasureIfRequired()}_mouseDownOrTouchStartEvent(e,t){var i,r,n,o,a,l,c,d;if(e.isTouch&&(this._longTap=!1,this._exitTrackingModeOnNextTry=null!==this._startTrackPoint,this._paneWidgetsSharedState.clearDraggingSource()),this._contextMenuOpenedOnLastTap=!1,this._lastFinishedToolId=null,this._terminateActiveAnimations(),e.isTouch&&this._switchTrackingModeFromAnotherPaneIfNeeded(e),
document.activeElement!==document.body&&document.activeElement!==document.documentElement)document.activeElement&&document.activeElement.blur?document.activeElement.blur():document.body.focus();else{const e=document.getSelection();null!==e&&e.removeAllRanges()}(0,h.emit)("mouse_down",{clientX:e.clientX,clientY:e.clientY,pageX:e.pageX,pageY:e.pageY,screenX:e.screenX,screenY:e.screenY}),this._updateCommonTooltip(null);const u=this._chartUndoModel(),p=new A.EnvironmentState(e);u.mainSeries().clearGotoDateResult();const _=this.state().defaultPriceScale();if(_.isEmpty()||u.timeScale().isEmpty())return;const m=u.crossHairSource();if(!e.isTouch&&!(0,et.isLineDrawnWithPressedButton)(k.tool.value())){const t=u.lineBeingCreated(),i=null!==t?u.model().paneForSource(t):null;null!==i&&i!==this._state?this._setCursorPositionOnExternalPane(i,e.localX,e.localY,p):this._setCursorPosition(e.localX,e.localY,p)}e.isTouch&&(0,f.isLineToolName)(k.tool.value())&&((0,et.isLineDrawnWithPressedButton)(k.tool.value())||null!==m.pane?(0,et.isLineDrawnWithPressedButton)(k.tool.value())&&this._clearCursorPosition():this._chart.updateCrossHairPositionIfNeeded());const g=(0,s.ensureNotNull)(this.state().mainDataSource()).firstValue();if(null===g)return void(this._chart.readOnly()||(this._handleSelectionMouseDownAndGetJustDeselectedSource(e,t,p),t.source&&(0,Je.isPriceDataSource)(t.source)&&t.source.isDraggable()&&this._paneWidgetsSharedState.trySetDraggingSource(t.source,this)));let v=_.coordinateToPrice(e.localY,g),S=this._chartModel().timeScale().coordinateToIndex(e.localX);if(m.startMeasurePoint()&&m.endMeasurePoint()&&m.clearMeasure(),p.shift()&&!(null===(n=null===(r=null===(i=t.hittest)||void 0===i?void 0:i.data())||void 0===r?void 0:r.hasOwnShortcutsBehaviourFor)||void 0===n?void 0:n.shiftKey)&&(0,k.toolIsCursor)(k.tool.value())&&u.selection().isEmpty()&&k.tool.setValue("measure"),(e.isTouch&&!e.stylus||!this._tryStartMeasure(e,m,p,v,S))&&(e.isTouch&&!e.stylus||!this._tryFinishMeasure(e,m))&&!this._tryFinishZoom(e)&&!this._tryStartZoom(e,v,S,p)){if(e.isTouch&&(null!==this._startTrackPoint?(this._initCrossHairPosition=m.currentPoint(),this._startTrackPoint=new C.Point(e.localX,e.localY)):this._isSelectPointModeEnabled()&&null===this._chart.trackingModePaneWidget()&&this.startTrackingMode(new C.Point(e.localX,e.localY),new C.Point(e.localX,e.localY),new A.EnvironmentState(e))),e.isTouch&&(this._preventSourceChange=null===t.source||!u.selection().isSelected(t.source)),!this._isSelectPointModeEnabled()&&!this._isScrolling){if(e.isTouch&&!e.stylus&&((0,k.toolIsMeasure)(k.tool.value())||null!==m.measurePane().value()))return void this._initToolCreationModeParams(e);if((0,f.isLineToolName)(k.tool.value())||u.lineBeingCreated())return p.shift()||u.selectionMacro(e=>e.clearSelection()),void this._mouseDownEventForLineTool(e,p,S,v)}if(null===(o=t.hittest)||void 0===o||o.tryCallMouseDownOrTouchStartHandler(e),!this._chart.readOnly()){const i=this._handleSelectionMouseDownAndGetJustDeselectedSource(e,t,p)
;if(t.hittest&&t.source&&!this._preventSourceChange){const i=t.hittest.data();if(t.isCustom){if(t.hittest.hasPressedMoveHandler(e))return u.model().setMovingCustomSource(t.source,i),this._currentMovingHitTest=t,void u.selectionMacro(e=>{e.clearSelection(),e.addSourceToSelection((0,s.ensureNotNull)(t.source),(0,s.ensureNotNull)(i))})}else if((null==i?void 0:i.areaName)===M.AreaName.SourceItemMove){const r=null==i?void 0:i.activeItem;if(void 0!==r)return u.startCustomMoving(t.source,r,e),this._currentMovingHitTest=t,void u.selectionMacro(e=>{e.clearSelection(),e.addSourceToSelection((0,s.ensureNotNull)(t.source),(0,s.ensureNotNull)(i))})}}if(this._tryHandleEraserMouseDown(t,p))return;const r=t.source&&(0,f.isLineTool)(t.source)&&t.source.isLocked&&t.source.isLocked();if(!((0,k.lockDrawings)().value()||r)&&!t.isCustom){if(t.source&&!t.source.userEditEnabled())return;const s=null===(l=null===(a=t.hittest)||void 0===a?void 0:a.data())||void 0===l?void 0:l.snappingPrice,r=null===(d=null===(c=t.hittest)||void 0===c?void 0:c.data())||void 0===d?void 0:d.snappingIndex;let n=e.localY,o=e.localX;if(void 0!==s&&(n=_.priceToCoordinate(s,g),v=s),void 0!==r&&(o=this._chartModel().timeScale().indexToCoordinate(r),S=r),n===e.localY&&o===e.localX||(e={...e,localY:n,localX:o},this._setCursorPosition(e.localX,e.localY,p)),this._tryStartChangingLineTool(e,t,p,S))return void(this._currentChangingLineToolHitTest=t);if(this._currentChangingLineToolHitTest=null,t.hittest&&((y=t.hittest.result())===M.HitTestResult.MOVEPOINT||y===M.HitTestResult.MOVEPOINT_BACKGROUND&&(0,x.lastMouseOrTouchEventInfo)().isTouch)){if(this._tryStartCloning(e,t,p,i))return;if(this._tryStartMovingLineTool(e,t,p,S))return void(this._currentMovingHitTest=t);this._currentMovingHitTest=null}}if(t.source&&(0,Je.isPriceDataSource)(t.source)&&t.source.isDraggable()&&this._paneWidgetsSharedState.trySetDraggingSource(t.source,this))return}var y;t&&t.hittest&&t.hittest.result()===M.HitTestResult.REGULAR||(this._processing=!0)}}_mouseUpOrTouchEndEvent(e){var t,i;if(!this.hasState())return;const r=e.isTouch&&null!==this._startTrackPoint,n=e.isTouch&&this._wasPinched;e.isTouch&&(this._wasPinched=!1,this._longTap=!1),this._startMoveSourceParams=null,this._startChangeLineToolParams=null,this._currentChangingLineToolHitTest=null,this._currentMovingHitTest=null;const o=this._chartUndoModel(),a=o.model().customSourceMovingHitTestData();null!==a||o.customMoveBeingProcessed()||this._processMouseUpOrTouchEndHandler(e),this._isSelecting=!1;const l=o.model(),c=l.crossHairSource(),d=this._dataSourceAtPoint(e.localX,e.localY),u=null==d?void 0:d.hittest;if(c.selection()&&null===this._firstZoomPoint){const e=this.state().lineToolsForArea(c.selection());o.selectionMacro(t=>{let i=null;e.forEach(e=>{null===i&&(i=Pt(d,e)),t.addSourceToSelection(e,i)})}),c.clearSelection(),(0,se.trackEvent)("GUI","Multiselect","Area Select")}(0,h.emit)("mouse_up",{clientX:e.clientX,clientY:e.clientY,pageX:e.pageX,pageY:e.pageY,screenX:e.screenX,screenY:e.screenY});const p=e.isTouch&&this._touchMove
;e.isTouch&&(this._touchMove=!1);const _=new A.EnvironmentState(e),m=k.tool.value();if(e.isTouch&&((0,k.toolIsMeasure)(m)||null!==c.measurePane().value())){if(!p&&!e.stylus&&null===c.measurePane().value()&&c.pane!==this._state)return void this._setCursorPosition(e.localX,e.localY);if(!p&&!e.stylus&&this._tryStartMeasure(e,c,_,c.price,c.index))return;if((!p||e.stylus)&&this._tryFinishMeasure(e,c))return}if(e.isTouch&&!p&&!(0,et.isLineDrawnWithPressedButton)(m)&&(0,f.isLineToolName)(m)&&!o.lineBeingCreated()){if(this._chart.justActivated())return;if(c.pane!==this._state)return void this._setCursorPosition(e.localX,e.localY,_);const i=c.currentPoint(),r=this.state().defaultPriceScale(),n=(0,s.ensure)(null===(t=this.state().mainDataSource())||void 0===t?void 0:t.firstValue()),a={index:Math.round(o.timeScale().coordinateToIndex(i.x)),price:r.coordinateToPrice(i.y,n)},l=(0,s.ensureNotNull)(o.createLineTool({pane:this.state(),point:a,linetool:m}));return o.selectionMacro(e=>{e.addSourceToSelection(l)}),o.lineBeingCreated()||(this._finishTool(l,d),e.preventDefault()),void(this._startTouchPoint=null)}const g=o.lineBeingCreated();if(g&&!(0,et.isLineDrawnWithPressedButton)(g.toolname)&&e.isTouch&&(this._startTouchPoint||e.stylus)){if(this._startTouchPoint=null,!p||e.stylus){const t=g.points()[g.points().length-1],i=o.continueCreatingLine({index:t.index,price:t.price},new A.EnvironmentState(e));this._initCrossHairPosition=null,i&&(this._finishTool(g,d),e.preventDefault())}return}if(null!==this._firstZoomPoint&&this._firstZoomPoint.draggingMode)return void this._finishZoom(e);if(this._processing=!1,o.customMoveBeingProcessed())return void o.endCustomMoving();if(null!==a&&(a.beingMoved&&((0,M.tryCallHandler)(e,a.mouseUpHandler,a.touchEndHandler),this.setCursorForTool()),l.setMovingCustomSource(null,null),Lt(e,a)))return;if(l.lineBeingEdited())return o.endChangingLinetool(!1),void(this._preventCrossHairMove()&&this._clearCursorPosition());if((0,et.isLineDrawnWithPressedButton)(m)&&!this._isSelectPointModeEnabled()){const t=o.lineBeingCreated();null!==t&&((0,Qe.trackDrawingCreated)(t),t.finish());const r=this.state().defaultPriceScale();if(r.isEmpty())return;if(!t)return;const n=(0,s.ensure)(null===(i=t.ownerSource())||void 0===i?void 0:i.firstValue()),a=r.coordinateToPrice(e.localY,n),l={index:Math.round(o.timeScale().coordinateToIndex(e.localX)),price:a};return void o.continueCreatingLine(l)}if(l.sourcesBeingMoved().length)return o.endMovingSource(!1,!1),l.sourcesBeingMoved().filter(f.isLineTool).forEach(e=>{this.setCursorForTool(e)}),void l.invalidate(b.InvalidationMask.cursor());if(!this._chart.readOnly()){const t=e.localX>=0&&e.localXM.HitTestResult.MOVEPOINT_BACKGROUND||(0,x.lastMouseOrTouchEventInfo)().isTouch)&&o.selectionMacro(e=>{e.clearSelection();const t=(0,s.ensureNotNull)(d.source);e.addSourceToSelection(t,Pt(d,t))}),e.isTouch&&(this._touchMove=!1)}_mouseOrTouchMoveEvent(e){if(!this.hasState())return;this._resetMeasureIfRequired();const t=(0,s.ensureNotNull)(this._dataSourceAtPoint(e.localX,e.localY));this._processMouseEnterLeaveMoveHandlers(t,e);const i=this._chartUndoModel();if(!i)return;const r=e.localX,n=e.localY;this._prevMoveEventPosition=new C.Point(r,n);const o=new A.EnvironmentState(e);if(null===this._firstZoomPoint){if(this._updateHoveredSource(t,o,e),!e.isTouch&&i.lineBeingCreated()){const e=i.lineBeingCreated(),t=null===e?null:i.model().paneForSource(e);if(null!==t&&t!==this._state)return void this._setCursorPositionOnExternalPane(t,r,n,o)}e.isTouch||this._setCursorPosition(r,n,o)}else this._processMouseMoveWhileZoom(e,o)}_pressedMouseOrTouchMoveEvent(e){var t;if(!this.hasState()||this._pinching||e.isTouch&&this._contextMenuOpenedOnLastTap)return;this._resetMeasureIfRequired(),this._startChangeOrMoveLineToolIfNeeded(),e.isTouch&&(this._touchMove=!0,this._preventSourceChange=!1);const i=new A.EnvironmentState(e),r=this._chartUndoModel(),n=r.crossHairSource(),o=e.localX,a=e.localY;if(this._prevMoveEventPosition=new C.Point(o,a),null!==this._firstZoomPoint)return this._processMouseMoveWhileZoom(e),void(this._firstZoomPoint.draggingMode=!0);const l=k.tool.value();if(e.isTouch&&this._startTouchPoint&&(0,f.isLineToolName)(l)&&!(0,et.isLineDrawnWithPressedButton)(l)&&!r.lineBeingCreated()&&!this._isSelectPointModeEnabled())return void this._updateCrosshairPositionInToolCreationMode(e,this.state());const c=n.measurePane().value();if(e.isTouch&&(this._startTouchPoint||e.stylus)&&((0,k.toolIsMeasure)(l)||null!==c))return void(e.stylus?this._setCursorPosition(e.localX,e.localY,new A.EnvironmentState(e)):this._updateCrosshairPositionInToolCreationMode(e,c||this.state()));const h=r.lineBeingCreated();if(e.isTouch&&!e.stylus&&h&&!(0,et.isLineDrawnWithPressedButton)(h.toolname)){if(this._startTouchPoint){const t=(0,s.ensureNotNull)(r.lineBeingCreated()),i=(0,s.ensureNotNull)(r.model().paneForSource(t))
;this._updateCrosshairPositionInToolCreationMode(e,i)}return}if(e.isTouch&&null!==this._startTrackPoint){this._exitTrackingModeOnNextTry=!1;const e=(0,s.ensureNotNull)(this._initCrossHairPosition),t=new C.Point(o,a).subtract(this._startTrackPoint),r=e.add(t);this._setCursorPosition(r.x,r.y,i)}else e.isTouch&&this._preventCrossHairMove()||this._setCursorPosition(o,a,i);const d=this._isSelectPointModeEnabled();if((0,f.isLineToolName)(l)&&!(0,et.isLineDrawnWithPressedButton)(l)&&!d&&!i.mod())return;if((0,et.isLineDrawnWithPressedButton)(l)&&!d){const i=this.state().defaultPriceScale();if(i.isEmpty())return;const n=r.lineBeingCreated();if(!n)return;const o=new C.Point(e.localX,e.localY),a=(0,s.ensure)(null===(t=n.ownerSource())||void 0===t?void 0:t.firstValue());return o.price=i.coordinateToPrice(e.localY,a),o.index=Math.round(r.timeScale().coordinateToIndex(e.localX)),void r.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(r.timeScale().isEmpty())return;const u=this._options.handleScroll;if((!u.pressedMouseMove||e.isTouch)&&(!u.horzTouchDrag&&!u.vertTouchDrag||!e.isTouch))return;if(r.customMoveBeingProcessed())return void r.processCustomMove(e);const p=r.model().customSourceMovingHitTestData();if(null!==p&&(this._updateCommonTooltip(null,!0),r.model().processingCustomSourceMove(),(0,M.tryCallHandler)(e,p.pressedMouseMoveHandler,p.touchMoveHandler),Lt(e,p)))return;if(r.model().lineBeingEdited())return void this._setCursorPosition(o,a,i);if(r.model().sourcesBeingMoved().length)return void this._alignSourcesThatBeingMoved(r.model().sourcesBeingMoved(),e.localX,e.localY,i);const _=this._dataSourceAtPoint(e.localX,e.localY);if(this._tryFinishClonning(e,new A.EnvironmentState(e),_))return;const m=(0,k.toolIsMeasure)(l)||n.startMeasurePoint()&&n.endMeasurePoint();this._chart.readOnly()||!i.mod()||(0,f.isLineToolName)(l)||m||d?(this._processScroll(e),this._preventScroll()&&!this._preventCrossHairMove()&&null===this._startTrackPoint&&this._setCursorPosition(e.localX,e.localY,new A.EnvironmentState(e))):this._isSelecting||(n.startSelection(this.state()),this._isSelecting=!0)}_mouseOrTouchLeaveEvent(e){var t,i;if(!this.hasState())return;const s=this._chartUndoModel();if(!s)return;const r=s.crossHairSource();e.isTouch||null!==r.measurePane().value()&&null===r.endMeasurePoint()||this._clearCursorPosition(),s.model().setHoveredSource(null,null),null!==this._prevHoveredHittest&&((0,M.tryCallHandler)(e,null===(i=null===(t=this._prevHoveredHittest.hittest)||void 0===t?void 0:t.data())||void 0===i?void 0:i.mouseLeaveHandler),this._prevHoveredHittest=null),this._updateCommonTooltip(null),this._chart.unsetActivePaneWidget()}_mouseDoubleClickOrDoubleTapEvent(e){var t;if(!this.hasState())return;const i=!this._chart.readOnly()&&!(0,f.isLineToolName)(k.tool.value())&&(0,
s.ensureNotNull)(this._dataSourceAtPoint(e.localX,e.localY))||null;if(null===i)return;if(i.isCustom)return void(null===(t=i.hittest)||void 0===t||t.tryCallDblClickOrDblTapHandler(e));let r=i.hittest&&i.source||null;r&&i.hittest&&i.hittest.result()<=M.HitTestResult.MOVEPOINT_BACKGROUND&&!e.isTouch&&(r=null),r&&!r.isSelectionEnabled()&&(r=null);const n=this.state();r?this.processDoubleClickOnSource(r,i.hittest?i.hittest:void 0):this._chart.readOnly()||(0,f.isLineToolName)(k.tool.value())||this._chartUndoModel().lineBeingCreated()||!this._chartUndoModel().selection().isEmpty()||(new A.EnvironmentState(e).mod()&&!n.maximized().value()?(n.collapsed().value()||this._chartModel().paneCollapsingAvailable().value())&&this._chart.toggleCollapsedPane(this):this._chart.toggleMaximizePane(this))}_contextMenuEvent(e){var t;const i=this._chartUndoModel();if(i.crossHairSource().startMeasurePoint()&&!this._trackCrosshairOnlyAfterLongTap)return i.crossHairSource().clearMeasure(),void(0,k.resetToCursor)(!0);if(this._pinching)return;if(null===this._firstZoomPoint||this._trackCrosshairOnlyAfterLongTap||this.cancelZoom(),!(0,k.toolIsCursor)(k.tool.value())||this._isSelectPointModeEnabled()){if(e.isTouch)return;return(0,k.resetToCursor)(!0),this.setCursorForTool(),void(i.lineBeingCreated()&&i.cancelCreatingLine())}if(!this._options.contextMenuEnabled)return;const s=this._dataSourceAtPoint(e.localX,e.localY),r=s?s.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 n=s&&s.hittest?s.hittest.result():0,o=n>=M.HitTestResult.REGULAR||n>=M.HitTestResult.MOVEPOINT_BACKGROUND&&e.isTouch;this._chart.updateActions(),i.selectionMacro(t=>{null!==r&&o?t.selection().isSelected(r)||(t.clearSelection(),t.addSourceToSelection(r,Pt(s,r))):(this._options.contextMenu.general&&this._showContextMenu(e),t.clearSelection())}),s&&o&&null!==r&&((0,E.isDataSource)(r)&&r.hasContextMenu()?r.isSelectionEnabled()?this.showContextMenuForSelection(e):this.showContextMenuForSources([r],e):null===(t=s.hittest)||void 0===t||t.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 C.Point(e.localX,e.localY),new C.Point(i.x,e.localY),new A.EnvironmentState(e))}}_showContextMenu(e){const t=e=>e instanceof xe.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),$.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 xe.Separator),!this.state().isEmpty()&&Pe.enabled("datasource_copypaste")){const t=(0,Te.createActionCopyPrice)(this.state(),e.localY),i=(0,Te.createPasteAction)(this._chart,this.state());(t||i)&&(t&&r.push(t),i&&r.push(i),r.push(new xe.Separator))}r[r.length-1]instanceof xe.Separator||r.push(new xe.Separator);return Boolean(null===(t=window.widgetbar)||void 0===t?void 0:t.widget("watchlist"))&&s.addToWatchlist&&r.push(s.addToWatchlist),Pe.enabled("text_notes")&&r.push(s.addToTextNotes),r[r.length-1]instanceof xe.Separator||r.push(new xe.Separator),r.push(this._createLockTimeAxisAction(e)),r.push(new xe.Separator),r.push((0,Te.createLinesAction)(this._chart)),!Pe.enabled("charting_library_base")&&s.applyColorTheme&&r.push(s.applyColorTheme),r[r.length-1]instanceof xe.Separator||r.push(new xe.Separator),this._chart.applyIndicatorsToAllChartsAvailable()&&(r.push(s.applyStudiesToAllCharts),r.push(new xe.Separator)),r.push(s.paneRemoveAllDrawingTools),r.push(s.paneRemoveAllStudies),r.push(new xe.Separator),(null===(i=window.pro)||void 0===i?void 0:i.hasPackage("mtp-mtpredictor"))&&this.state().containsMainSeries()&&r.push((0,Te.createMTPredictorActions)(this._chart,this.state(),this._contextMenuX,this._contextMenuY),new xe.Separator),r.push(s.hideAllMarks),r.push(new xe.Separator),Pe.enabled("show_chart_property_page")&&r.push(s.chartProperties),r[r.length-1]instanceof xe.Separator&&r.pop(),r}_loadAndCreateLegendWidget(){Promise.all([i.e(5514),i.e(3770),i.e(9255),i.e(5093)]).then(i.bind(i,74335)).then(e=>{if(this._isDestroyed)return;const t=e.LegendWidget,i=(0,I.deepExtend)({},this._options.legendWidget);i.canShowSourceCode=!this._chart.onWidget()&&!l.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 r=(0,m.combine)((e,t)=>Mt&&this._chart!==e&&!t,this._chart.chartWidgetCollection().activeChartWidget,this._chart.chartWidgetCollection().lock.crosshair),n=(0,m.combine)((e,t)=>null!==e?e===this._state:(0,k.toolIsMeasure)(t),this._chartModel().crossHairSource().measurePane(),k.tool);this._legendWidget=new t(this._chartUndoModel(),this,this._chart.backgroundTopTheme().spawn(),r,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,s.ensureDefined)(this._customLegendWidgetsFactoryMap.get(e)))})}_loadAndCreatePaneControlsWidget(){Promise.all([Promise.all([i.e(5514),i.e(3770),i.e(9255),i.e(5093)]).then(i.bind(i,20648)),Promise.all([i.e(5514),i.e(3770),i.e(9255),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.w),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+dt+ut;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(A.EnvironmentState.create((0,ot.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,f.isLineToolName)(k.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?(k.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(tt.TabNames.symbol);else if((0,f.isLineTool)(e)||(0,v.isStudy)(e)){let i
;const s=null==t?void 0:t.data();if(null!=s){const e=s.areaName;void 0!==e&&(i=It.get(e))}this._chart.showChartPropertiesForSource(e,i).then(e=>{this._editDialog=e})}}_initToolCreationModeParams(e){this._startTouchPoint=new C.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 r=e.pageX,n=e.pageY,o=(0,s.ensureNotNull)(this._initCrossHairPosition),a=new C.Point(r,n).subtract((0,s.ensureNotNull)(this._startTouchPoint)),l=o.add(a);this._setCursorPosition(l.x,l.y,new A.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,f.isLineTool)(i)||t.recalculatePriceScale(i.priceScale(),e)}_createLockTimeAxisAction(e){const t=(0,k.lockTimeAxis)().value();return new xe.Action({actionId:"Chart.Crosshair.LockVerticalCursor",label:gt,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&&k.lockTimeAxisTime.setValue(s)}(0,k.lockTimeAxis)().setValue(t)}_preventTouchEventsExceptPinch(){return this._paneWidgetsSharedState.hasTouchesOnOtherPanes(this)||null!==this._paneWidgetsSharedState.pinchingPane()}_updateHoveredSource(e,t,i){var s,r,n;const o=this._chartUndoModel(),a=o.model();let l=!1;const c=e&&e.source,h=this._chart.readOnly();if(h&&!(0,f.isLineTool)(e.source)||this._editDialog&&this._editDialog.visible().value())h&&(a.setHoveredSource(null,null),this.setCursorForTool());else{const d=k.tool.value();let u=null;if(!this._processing&&((0,k.toolIsCursor)(d)||"eraser"===d&&!h||t.mod()||!o.lineBeingCreated())){const{hittest:t}=e;l=Boolean(null===(s=null==t?void 0:t.data())||void 0===s?void 0:s.hideCrosshairLinesOnHover),t&&t.result()>M.HitTestResult.MOVEPOINT_BACKGROUND?(u=c,!(null==c?void 0:c.isHoveredEnabled())||"eraser"===d&&c===o.mainSeries()?a.setHoveredSource(null,null):a.setHoveredSource(c,null==t?void 0:t.data())):a.setHoveredSource(null,null)}h?this.setCursorForTool(u,t,it.PaneCursorType.Default):this._options.sourceSelectionEnabled&&(this._isSelectPointModeEnabled()?this._setCursorClassName("pointer"):this.setCursorForTool(u,t,null===(n=null===(r=null==e?void 0:e.hittest)||void 0===r?void 0:r.data())||void 0===n?void 0:n.cursorType))
;const p=a.customSourceBeingMoved(),_=null!==p?[p]:a.sourcesBeingMoved(),m=e.source;if((!_.length||null!==m&&-1===_.indexOf(m))&&this._updateCommonTooltip(e),!h&&null!==e.hittest&&i&&e.hittest.hasPressedMoveHandler(i)){switch((e.hittest.data()||{}).cursorType){case it.PaneCursorType.VerticalResize:this._setCursorClassName("ns-resize");break;case it.PaneCursorType.HorizontalResize:this._setCursorClassName("we-resize");break;case it.PaneCursorType.DiagonalNeSwResize:this._setCursorClassName("nesw-resize");break;case it.PaneCursorType.DiagonalNwSeResize:this._setCursorClassName("nwse-resize")}}}this._preventCrossHairMove()&&this._clearCursorPosition(),a.crossHairSource().setLinesShouldBeHidden(l)}async _createErrorBlock(){const e=new(await async function(){return(await Promise.all([i.e(5514),i.e(8879),i.e(139)]).then(i.bind(i,81200))).ErrorCardRenderer}());return this._div.insertBefore(e.container,this._topCanvasBinding.canvas.nextSibling),e}_customActions(){const e={top:[],bottom:[],remove:[]},t=this._chartUndoModel().timeScale(),i=this._state&&this._state.defaultPriceScale();if(!Pe.enabled("custom_items_in_context_menu"))return e;const r=t.isEmpty()?void 0:t.indexToUserTime(t.coordinateToIndex(this._contextMenuX));let n;if(i&&!i.isEmpty()){const e=(0,s.ensureNotNull)(this.state().mainDataSource()).firstValue();n=i.coordinateToPrice(this._contextMenuY,(0,s.ensureNotNull)(e))}return(0,h.emit)("onContextMenu",{unixtime:null!=r?r.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 xe.Separator:new xe.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)}}var Et=i(72045);class kt{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(Et.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(Et.handle),this._cell.appendChild(s),
this._mouseEventHandler=new B.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=kt.height()+"px"}mouseEnterEvent(e){const{topPane:t,bottomPane:i}=this._topBottomPane(!0);null!==t&&null!==i&&(0,s.ensureNotNull)(this._handleEl).classList.add(Et.hovered)}mouseLeaveEvent(e){(0,s.ensureNotNull)(this._handleEl).classList.remove(Et.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(),s=e.rightPriceAxisesContainer().getWidth(),r=this._color(),n=(0,N.createDisconnectedCanvas)(document,new N.Size(t,1)),o=(0,N.getPrescaledContext2D)(n);o.fillStyle=r,o.fillRect(0,0,t,1);const a=(0,N.createDisconnectedCanvas)(document,new N.Size(i,1)),l=(0,N.getPrescaledContext2D)(a);l.fillStyle=r,l.fillRect(0,0,i,1);const c=(0,N.createDisconnectedCanvas)(document,new N.Size(s,1)),h=(0,N.getPrescaledContext2D)(c);return h.fillStyle=r,h.fillRect(0,0,s,1),{type:"separator",leftAxis:{content:n.toDataURL(),canvas:n,contentWidth:t,contentHeight:1},rightAxis:{content:c.toDataURL(),canvas:c,contentWidth:s,contentHeight:1},content:a.toDataURL(),canvas:a,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 r=t.state().stretchFactor()+i.state().stretchFactor(),n=r/(t.height()+i.height()),o=30*n;r<=2*o||(this._resizeInfo={startY:e.pageY,prevStretchTopPane:t.state().stretchFactor(),maxPaneStretch:r-o,totalStretch:r,pixelStretchFactor:n,minPaneStretch:o},(0,s.ensureNotNull)(this._handleEl).classList.add(Et.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,le.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),r=this._resizeInfo;null!==r&&null!==t&&null!==i&&(this._chart.model().addPaneStretchFactorUndoCommand(t.state(),i.state(),r.prevStretchTopPane,t.state().stretchFactor()),this._resizeInfo=null,(0,
s.ensureNotNull)(this._handleEl).classList.remove(Et.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,re.parseRgba)(t),s=(0,re.parseRgba)(e),r=0===i[3]&&0===s[3]?"rgba(0,0,0,0)":(0,re.rgbaToString)((0,re.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(),o=()=>{throw new Error("Time axis does not support real price scales")},a={titlesProvider:i,stubContextMenuProvider:(e,t)=>{const i=this.getContextMenuActions(!0);let r=s(e,t);if(r[r.length-1]===this.chart.actions().scalesProperties){const e=[new xe.Separator].concat(i);Array.prototype.splice.apply(r,[r.length-2,0,...e])}else r.push(new xe.Separator),r=r.concat(i);return r},backgroundBasedTheme:r,rendererOptionsProvider:e.model().model().rendererOptionsProvider(),getBackgroundTopColor:n,getBackgroundBottomColor:n,showHorizontalBorder:!0};this._lhsStubContainer=new ee(this._properties,"left",o,a,this._options.priceAxisLabelsOptions,this),this._lhsStubContainer.onLabelHovered().subscribe(this,(e,t)=>{this._onLabelHovered.fire(e,t)}),this._rhsStubContainer=new ee(this._properties,"right",o,a,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,N.createBoundCanvas)(this._dv,new N.Size(16,16)),this._canvasBinding.subscribeCanvasConfigured(this._canvasConfiguredHandler);const l=this._canvasBinding.canvas;l.style.position="absolute",l.style.zIndex="1",
l.style.left="0",l.style.top="0",this._topCanvasConfiguredHandler=()=>this.chart.model().model().lightUpdate(),this._topCanvasBinding=(0,N.createBoundCanvas)(this._dv,new N.Size(16,16)),this._topCanvasBinding.subscribeCanvasConfigured(this._topCanvasConfiguredHandler);const c=this._topCanvasBinding.canvas;c.style.position="absolute",c.style.zIndex="2",c.style.left="0",c.style.top="0",this._element.appendChild(this._rhsStubContainer.getElement()),this.restoreDefaultCursor(),this.update(),this._minVisibleSpan=Dt.MINUTE_SPAN,this._mouseEventHandler=new B.MouseEventHandler(this._topCanvasBinding.canvas,this,{treatVertTouchDragAsPageScroll:!0,treatHorzTouchDragAsPageScroll:!1}),this.size=new N.Size(0,0),(0,k.hideMarksOnBars)().subscribe(this,()=>this.chart.model().model().lightUpdate())}destroy(){this._mouseEventHandler.destroy(),this._topCanvasBinding.unsubscribeCanvasConfigured(this._topCanvasConfiguredHandler),this._topCanvasBinding.destroy(),this._canvasBinding.unsubscribeCanvasConfigured(this._canvasConfiguredHandler),this._canvasBinding.destroy(),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,k.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&&this.size.equals(e)||(this.size=e,this._canvasBinding.resizeCanvas({width:e.w,height:e.h}),this._topCanvasBinding.resizeCanvas({width:e.w,height:e.h}),this._cell.style.width=e.w+"px",this._cell.style.height=e.h+"px"),this._lhsStubContainer.setSizes(e.h,t),this._rhsStubContainer.setSizes(e.h,i)}rendererOptions(){if(!this._rendererOptions||this._rendererOptions.fontSize!==this.fontSize()){const e=this.fontSize();this._rendererOptions={borderSize:1,offsetSize:5,fontSize:e,font:(0,O.makeFont)(e,z.CHART_FONT_FAMILY,""),widthCache:new ie.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,re.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,O.makeFont)(this.fontSize(),z.CHART_FONT_FAMILY)}baseBoldFont(){return(0,O.makeFont)(this.fontSize(),z.CHART_FONT_FAMILY,"","bold")}hasCanvas(e){return this._canvasBinding.canvas===e||this._topCanvasBinding.canvas===e}onLabelHovered(){return this._onLabelHovered}getScreenshotData(){return{content:this._canvasBinding.canvas.toDataURL(),canvas:this._canvasBinding.canvas,contentWidth:this.size.w,contentHeight:this.size.h,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 xe.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:translateSessionDescription(e.description),checkable:!0,checked:t.value()===e.id,statName:"SetSession",onExecute:()=>{i.model().setProperty(t,e.id,Bt)}};return new xe.Action({...s,actionId:"Chart.SetSession"})}),n={label:Nt,statName:"SetSession",subItems:e},o=new xe.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=Dt.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,s.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===b.InvalidationLevel.None)return;const t=(0,N.getContext2D)(this._topCanvasBinding.canvas);if(e>b.InvalidationLevel.Cursor){const i=(0,N.getContext2D)(this._canvasBinding.canvas),s=this._canvasBinding.pixelRatio;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,this._topCanvasBinding.pixelRatio)}drawBackground(e,t){if((0,N.clearRect)(e,0,0,Math.ceil(this.size.w*t)+1,Math.ceil(this.size.h*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.w*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,N.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&&$.ContextMenuManager.showMenu(this.getContextMenuActions(),e,{statName:"TimeScaleContextMenu"},{menuName:"TimeScaleContextMenu"})}_mouseOrTouchEnterEvent(e){this._zoomAvailable()&&this.setCursor("ew-resize")}_mouseOrTouchLeaveEvent(e){this.restoreDefaultCursor()}_mouseDoubleClickOrDoubleTapEvent(e){(0,se.trackEvent)("GUI","Double click time scale"),this.chart.model().resetTimeScale()}_areEventsEnabled(){return!(0,k.hideMarksOnBars)().value()}}function Ot(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ft(e){return e.reduce((e,t)=>{for(const i in t)if(Ot(t,i)){const s=t[i],r=e[i];r?r.push(s):e[i]=[s]}return e},{})}const Wt=new T.TranslatedString("move left",(0,r.t)("move left")),Ht=new T.TranslatedString("move right",(0,r.t)("move right")),zt={moving:"wait_finishing",wait_finishing:"stop",stop:"moving"};class Ut{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?Wt:Ht),this._state=zt.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?Wt:Ht),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=zt.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=zt.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=zt.wait_finishing,this._moveType="",this._movingTimeout=0,this._currentDistance=0,this._chartModel.endUndoMacro())};this._finishingTimeout=setTimeout(i,10)}_stopMove(){"moving"===this._state&&(this._state=zt.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 jt=i(37667),Gt=i(9315);class qt{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,s.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,s.assert)(null===e||null===this._scrollingPane||this._scrollingPane===e),this._scrollingPane=e}scrollingPane(){return this._scrollingPane}setPinchingPane(e){(0,s.assert)(null===e||null===this._pinchingPane||this._pinchingPane===e),this._pinchingPane=e}pinchingPane(){return this._pinchingPane}}let Yt=null;function Kt(e,t,s,r,n){return Promise.all([i.e(9685),i.e(5514),i.e(9129),i.e(4194),i.e(2e3),i.e(7962),i.e(8986),i.e(6363),i.e(3466),i.e(7836),i.e(8463),i.e(9289),i.e(3921),i.e(5774),i.e(7427),i.e(6909),i.e(7345),i.e(2153),i.e(4763),i.e(6416),i.e(7176),i.e(2385),i.e(7552),i.e(2316),i.e(8268),i.e(9055),i.e(2205),i.e(2358),i.e(6560),i.e(7635),i.e(3682),i.e(9837),i.e(3199),i.e(5827),i.e(2301),i.e(6085),i.e(4891),i.e(8883),i.e(6265)]).then(i.bind(i,73562)).then(i=>{const o=new(0,i.EditObjectDialogRenderer)(e,t,r,n);return o.show(s),o})}let $t=null;var Xt=i(20299);const Zt={[tt.TabNames.symbol]:"symbol",[tt.TabNames.legend]:"legend",[tt.TabNames.scales]:"scales",[tt.TabNames.trading]:"trading",[tt.TabNames.events]:"events",[tt.TabNames.timezoneSessions]:"appearance",[tt.TabNames.text]:"text",[tt.TabNames.style]:"style",[tt.TabNames.visibility]:"visibility"},Jt={[tt.TabNames.style]:"style",[tt.TabNames.visibility]:"visibilities"};async function Qt(e,t,s={},r,n){const o=r.activeChartWidget.value(),{initialTab:a,tabName:l}=s;if(l&&!a&&(s.initialTab=Jt[l]),(0,f.isStudyLineTool)(e)&&function(e){return[Xt.LineToolVbPFixed].some(t=>e instanceof t)}(e))return o.propertiesDefinitionsForSource(e).then(i=>null!==i?Kt(e,t,s,n,i):null);if((0,v.isStudy)(e)&&function(e){const{shortId:t}=e.metaInfo();return"Overlay"===t}(e)||(0,f.isLineTool)(e))return o.propertiesDefinitionsForSource(e).then(s=>{if(null!==s){return function(e){return Promise.all([i.e(9685),i.e(5514),i.e(9129),i.e(4194),i.e(2e3),i.e(7962),i.e(8986),i.e(6363),i.e(3466),i.e(7836),i.e(8463),i.e(9289),i.e(3921),i.e(5774),i.e(7427),i.e(6909),i.e(7345),i.e(2153),i.e(6416),i.e(7176),i.e(2385),i.e(7552),i.e(2316),i.e(8268),i.e(9055),i.e(2205),i.e(2358),i.e(7635),i.e(8090),i.e(9837),i.e(3199),i.e(5827),i.e(2301),i.e(6085),i.e(4891),i.e(8883),i.e(6780)]).then(i.bind(i,75892)).then(t=>{const i=new(0,t.SourcePropertiesEditorRenderer)(e);return null!==$t&&$t.hide(),i.show(),$t=i,i})}({propertyPages:s,model:t,source:e,activePageId:l&&Zt[l]})}return null});if((0,v.isStudy)(e))return Kt(e,t,s,n);{const e=l&&Zt[l],t=r.getChartPropertiesDialogRenderer();return t.setActivePage(e),t.show()}}var ei=i(39277),ti=i(15618),ii=i(49642),si=i(95836);class ri{constructor(e,t){this._showed=!1,this._cw=e,this._element=document.createElement("div"),this._element.classList.add("chart-loading-screen"),this._shield=document.createElement("div"),this._shield.classList.add("chart-loading-screen-shield"),this._element.appendChild(this._shield),t.appendChild(this._element),this._cw.withModel(this,this._connectToModel)}show(){this._cw.setInLoadingState(!0),this._showed||(this._showed=!0,this._show())}hide(){this._cw.setInLoadingState(!1),this._showed&&this._hide()}isShown(){
return this._showed}_connectToModel(){const e=this._cw.model().mainSeries().dataEvents();e.symbolError().subscribe(this,e=>{e!==si.permissionDenied&&this.hide()}),e.seriesError().subscribe(this,()=>{(0,Pe.enabled)("hide_loading_screen_on_series_error")&&this.hide()}),e.completed().subscribe(this,this.hide)}_show(){const e=this._cw.properties().childs().paneProperties.childs();let t;if(e.backgroundType.value()===ii.ColorType.Solid)t=e.background.value();else{t=`linear-gradient(${e.backgroundGradientStartColor.value()},${e.backgroundGradientEndColor.value()})`}this._shield.style.background=t,this._element.classList.add("fade")}_hide(){this._showed=!1,this._element.classList.remove("fade")}}var ni=i(55257),oi=i(36759);const ai=(0,Pe.enabled)("chart_content_overrides_by_defaults"),li=(0,n.getLogger)("ChartWidget",{color:"#606"}),ci=new T.TranslatedString("hide {title}",(0,r.t)("hide {title}"));const hi={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,croppedTickMarks:!0,countdownEnabled:!0,lastPriceAnimationEnabled:!0,useKineticScroll:l.CheckMobile.any(),indicatorsDialogShortcutEnabled:!0,handleScale:{mouseWheel:!0,pinch:!0,axisPressedMouseMove:{time:!0,price:!0}},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0}};function di(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))}class ui{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(K()),this._isDestroyed=!1,this._customLegendWidgetsFactoryMap=new Map,this._backgroundTopTheme=new($e())("light"),this._backgroundBasedTheme=new($e())("light"),this._backgroundBottomTheme=new($e())("light"),this._lhsAxesWidth=0,this._rhsAxesWidth=0,this._lhsPriceAxisWidthChanged=new(K()),this._rhsPriceAxisWidthChanged=new(K()),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(K()),this._redraw=new(K()),this._isVisible=new($e())(!0),
this._collapsed=new($e())(!1),this._dataWindowWidget=null,this._mainSeriesErrorMessage=null,this._resizeHandler=null,this._spinner=null,this._keydownEventListener=null,this._properties=null,this._updateThemedColorBound=this._updateThemedColor.bind(this),this._saveChartService=null,this._objectTreeDialogController=null,this._chartPaintedPromise=null,this._noExchangeSubscrptionWarning=null,this._paneWidgetsSharedState=new qt,this._brokerName="",this._onZoom=new(K()),this._onScroll=new(K()),this._availableScreen=null,this._hoveredPriceAxes=new Set,this._anyAxisHovered=new($e())(!1),this._invalidationHandler=e=>{if(!(e instanceof b.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,s.ensureNotNull)((0,s.ensureNotNull)(this._parent).ownerDocument.defaultView);this._drawRafId=i.requestAnimationFrame(this._invalidationRAFCallback.bind(this))}))},this._id=t,this._layoutId=i,this._options=(0,_.merge)((0,_.clone)(hi),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._subscribeToMainSeriesErrors(),this._scrollHelper=new Ut(this),this._objectTreeDialogController=p.getInstance(),this._showChartEvents=Boolean(!this._options.containsData&&this._options.chartEventsEnabled),this._properties=new y.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")}destroy(){var e,t,i;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(),null===(i=this._mainSeriesErrorMessage)||void 0===i||i.destroy(),this._isDestroyed=!0}lineToolsSynchronizer(){return this._lineToolsSynchronizer}model(){return(0,s.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})}async showGeneralChartProperties(e){if(!Pe.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,6087)),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,Pe.enabled)("property_pages"))return Promise.resolve(null);const{sources:t,title:n,tabName:o,renamable:a}=e,l=(0,s.ensureNotNull)(this._model),c=Ft(t.map(e=>e.properties().childs())),h=Ft(t.map(e=>e.properties().childs().intervalsVisibilities)),[{createPropertyPage:d},{getSelectionStylePropertiesDefinitions:u},{getSelectionIntervalsVisibilitiesPropertiesDefinition:p}]=await Promise.all([Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,80331)),Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,23206)),Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,80975))]),_=[];return _.push(d(u(c,l),"Style",(0,r.t)("Style"))),_.push(d(p(h,l),"Visibility",(0,r.t)("Visibility"))),async function(e){const{SourcesPropertiesEditorRenderer:t}=await Promise.all([i.e(9685),i.e(5514),i.e(9129),i.e(4194),i.e(2e3),i.e(7962),i.e(8986),i.e(6363),i.e(3466),i.e(7836),i.e(8463),i.e(9289),i.e(3921),i.e(5774),i.e(7427),i.e(6909),i.e(7345),i.e(2153),i.e(6416),i.e(7176),i.e(2385),i.e(7552),i.e(2316),i.e(8268),i.e(9055),i.e(2205),i.e(2358),i.e(7635),i.e(8090),i.e(9837),i.e(3199),i.e(5827),i.e(2301),i.e(6085),i.e(4891),i.e(8883),i.e(6780)]).then(i.bind(i,66512)),s=new t(e);return null!==Yt&&(Yt.hide(),Yt=s),s.show(),s}({sources:t,propertyPages:_,undoModel:l,title:n,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.h: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,s.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,ci.format({title:new T.TranslatedString(e[0].name(),e[0].title())}))}}hideSelectedObject(){this.hideDataSources(this.model().selection().dataSources().filter(e=>!0))}unlinkSelectedLine(){const e=(0,s.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,ht.globalChangeEvent)());const i=(t,i)=>{t.paint(i,this.onWidget());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,b.InvalidationMask.light().invalidateForPane(e)))}else for(let e=0;e{t.forEach(t=>{e.addSourceToSelection(t)})}),this.model().model().recalculateAllPanes((0,ht.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}}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=k.tool.value();this._model.model().setCurrentTool(e);const t=(0,x.lastMouseOrTouchEventInfo)();if(t.isTouch){const e=this._maximizedPaneWidget||this._paneWidgets[0];if(e.hasState()&&(!t.stylus&&(this._isLineToolModeExceptBrush()||(0,k.toolIsMeasure)(k.tool.value()))||this.selectPointMode().value())){
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,ht.dataSourceChangeEvent)(e.id()))}}}trackingModePaneWidget(){if(!(0,x.lastMouseOrTouchEventInfo)().isTouch)return null;for(const e of this.paneWidgets())if(e.trackingModeEnabled())return e;return null}startTrackingMode(){if((0,x.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,x.lastMouseOrTouchEventInfo)().isTouch&&this.paneWidgets().some(e=>e.trackingModeEnabled())&&(this.paneWidgets().forEach(e=>e.exitTrackingMode()),this.model().model().clearCurrentPosition())}onToolChanged(){this.selectPointMode().value()&&this.cancelRequestSelectPoint(),this.exitTrackingMode()}setInLoadingState(e){this._inLoadingState=e}paint(e){const t=null!=e?e:b.InvalidationMask.full();t.validationActions().forEach(e=>e()),this._paneWidgets.forEach((e,i)=>{null!==this._maximizedPaneWidget&&this._maximizedPaneWidget!==e||e.paint(t.invalidateForPane(i),!1)}),this._timeAxisWidget&&this._timeAxisWidget.paint(t.invalidateForTimeScale()),this._redraw.fire()}GUIResetScales(){(0,se.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._paneWidgets[e].setErrorMessage(this._mainSeriesErrorMessage?this._mainSeriesErrorMessage.value():null);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,s.ensureNotNull)(this._lineToolsSynchronizer).prepareDTO()}resetLineToolsInvalidated(e,t,i){(0,
s.ensureNotNull)(this._lineToolsSynchronizer).resetInvalidated(e,t,i)}applyLineToolUpdateNotification(e,t){(0,s.ensureNotNull)(this._lineToolsSynchronizer).applyLineToolUpdateNotification(e,t)}reloadAllLineTools(){(0,s.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().model().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,v.isStudy)(e)&&!0))return!0}return!1}restoreState(e,t,i){this._adjustSize();(0,s.ensureNotNull)(this._model).restoreState(this._content,t,i);this._setActions()}addCompareAsOverlay(e,t){const i=this.model();return(0,s.ensureDefined)(this._options.isSymbolAvailable)(e).then(s=>{if(!s)return null;const r=i.createStudyInserter({type:"java",studyId:"Overlay@tv-basicstudies"});return r.setForceOverlay(!0),r.setPreferredPriceScale("as-series"),r.setTargetPriceScaleMode({percentage:!0}),void 0!==t&&r.setPropertiesState({allowExtendTimeScale:t}),r.insert(async()=>({inputs:{symbol:e}}))})}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,c.createDeferredPromise)()),this._chartPaintedPromise.promise):Promise.resolve()}setDataWindowWidget(e){this._dataWindowWidget=e}removeDataWindowWidget(){this._dataWindowWidget=null}showSelectedSourcesProperties(e){const t=(0,s.ensureNotNull)(this._model).selection().dataSources();if(1===t.length)this.showSourceProperties(t[0],e);else{const i=t.filter(f.isLineTool);i.length>0&&this.showChartPropertiesForSources({sources:i,tabName:e})}}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()}async _showChartProperties(e,t,i,s){if(!this._model)return null;t&&((0,
a.setValue)("properties_dialog.active_tab.chart",t),i.tabName=t);const r=await Qt(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,ne.isColorDark)(t),n=(0,ne.isColorDark)(i),o=(0,ne.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,F.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=k.tool.value();return(0,f.isLineToolName)(e)&&!(0,f.isLineDrawnWithPressedButton)(e)&&!this.selectPointMode().value()}_cancelCreatingLine(){const e=(0,s.ensureNotNull)(this._model).model(),t=e.lineBeingCreated();if(null!==t){const i=(0,s.ensureNotNull)(e.paneForSource(t));(0,s.ensureNotNull)(this.paneByState(i)).cancelCreatingLineTool()}const i=e.crossHairSource().measurePane().value();if(null!==i){(0,s.ensureNotNull)(this.paneByState(i)).cancelMeasuring()}}_adjustSize(e){var t;let i=0;const s=null===this._model?null:this._model.model().priceScaleSlotsCount(),r=new Uint32Array(null===s?0:s.left),n=new Uint32Array(null===s?0:s.right),o=(0,N.getCanvasDevicePixelRatio)(document.body),a=(e,t)=>e+t,l=(e,t)=>{t.forEach((t,i)=>{e[i]=Math.max(e[i],t)})},c=this._width(),d=this._height(),u=this._paneSeparators.length,p=this.isMaximizedPane()?0:kt.height()*u,_=null!==this._timeAxisWidget?this._timeAxisWidget.optimalHeight():0;let m=d-_>=61?_:0;m%2&&(m+=1);const g=Math.max(1,Math.floor((d-p-m)/this._paneWidgets.length));let f=0,v=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();l(r,t),l(n,s),this._maximizedPaneWidget!==e&&e.state().collapsed().value()?f+=Math.min(g,e.collapsedHeight()):(i+=e.stretchFactor(),v=e)}let S=r.reduce(a,0),y=n.reduce(a,0),b=Math.max(c-S-y,0);if(b<=102){S=0,y=0,b=c;for(let e=0;e0){const e=new kt(this,s-1,s);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;ib.InvalidationLevel.Cursor&&(null===(t=this._timeAxisWidget)||void 0===t||t.update()),this.paint(e),this._dataWindowWidget){const t=e.maxPaneInvalidation();t===b.InvalidationLevel.Full?this._dataWindowWidget.fullUpdate():t>b.InvalidationLevel.None&&this._dataWindowWidget.update()}for(let t=0;t{i.appendChild(r),r.addEventListener("mousedown",this._beginRequestActive.bind(this)),r.addEventListener("mouseup",this._endRequestActive.bind(this)),r.addEventListener("touchstart",this._beginRequestActive.bind(this)),r.addEventListener("touchmove",this._endRequestActive.bind(this)),r.addEventListener("touchend",this._endRequestActive.bind(this)),r.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(b.InvalidationMask.full()))}_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(b.InvalidationMask.full())},this._resizeHandler(),(0,s.ensureNotNull)(this._parent).appendChild((0,s.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._initBarsMarksSources(),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,s.ensureNotNull)(this._metaInfoRepository).getInternalMetaInfoArray())throw new Error("Cannot create chart model: studies metainfo is absent");const t=()=>{var t,i;const r={readOnly:this.readOnly(),isSnapshot:!!this._containsData,...o(this._options,["timeScale","crossHair","esdEnabled","countdownEnabled","lastPriceAnimationEnabled","currencyConversionEnabled","unitConversionEnabled","watermarkEnabled","shiftVisibleRangeOnNewBar","hideIdeas","onWidget"])};let n;n=this._collapsed;const a=function(e,t,i,s,r,n,o,a,l,c,h){const d=new g.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,s.ensureNotNull)(this._metaInfoRepository),this,this._options.undoHistory,this._options.barsMarksContainersFactory,r,n,null!==(i=null===(t=this._saveChartService)||void 0===t?void 0:t.autoSaveEnabled())&&void 0!==i?i:new($e())(!0));return this._createSessions(a.model()),a};(0,Pe.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={};ai&&this._initialLoading&&(e={symbol:this._defSymbol,interval:this._defInterval,style:this._defStyle}),this.restoreState(this._content,this._containsData,e),ai&&this._defSymbol&&this.model().model().recalculatePriceRangeOnce()}else this._setActions();this._createLineToolsSynchronizerIfNeeded(),(()=>{const e=(0,s.ensureNotNull)(this._model);e.onTagsChanged().subscribe(this,()=>this.onModelTagsChanged()),this._initBackgroundColor(),this._updateGui(),this._modelCreated.fire(e),this._tagsChanged.fire();const t=e.mainSeries(),i=t.properties().childs();this._defTimeframe&&t.setDefaultTimeframe(this._defTimeframe),e.lineCancelled().subscribe(this,()=>this.onLineCancelled()),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,()=>{t.setSymbolParams({interval:(0,Gt.getDefaultResolution)((0,jt.isRangeStyle)(i.style.value()))})}),t.dataEvents().intradayExchangeNotPermitted().subscribe(null,()=>{t.setSymbolParams({interval:"D"})}),t.requestingResolutionWhenNotSupported.subscribe(null,e=>t.setInterval(e)),t.requestingStyleIsNotSupported.subscribe(null,()=>{const i=t.interval(),s=e.model().defaultResolutions(),r=(0,jt.getLastUsedSingleValueBasedStyle)(),n=(0,Gt.getResolutionByChartStyle)(r,i,s);t.setChartStyleWithIntervalIfNeeded(r,n)}),t.requestingStyleSupportRecovered.subscribe(null,i=>{const s=t.interval(),r=e.model().defaultResolutions(),n=(0,Gt.getResolutionByChartStyle)(i,s,r);t.setChartStyleWithIntervalIfNeeded(i,n)})})()}_initBarsMarksSources(){this.withModel(this,()=>{for(const e of this.model().barsMarksSources())e.onNeedRepaint.subscribe(this,()=>this.model().model().lightUpdate())})}_handleLoginStateChanged(){0}_checkObsoleteTimezone(){const e=this.properties().childs().timezone.value();(0,ei.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,N.disableSelection)(this._elMainTable),this.update(),this.paint()}_makeLoadingScreen(){if(Pe.enabled("lean_chart_load")){if(this.screen)return;this.screen=new ri(this,(0,s.ensureNotNull)(this._parent))}else this.screen=new ri(this,(0,s.ensureNotNull)(this._mainDiv))}_makeAvailableOnTVPopup(){throw new Error("Not implemented")}_createChartEventsSource(){throw new Error("Not implemented")}_activateSymbolSearchHotkeys(){this.readOnly()||this._options.hideSymbolSearch||(0,ti.activateKeyPressHandler)()}_makeTimeAxisWidget(){if(this._timeAxisWidget)return void this._timeAxisWidget.updatePriceAxisStubs();const e=this.model();this._timeAxisWidget=new Rt(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 r=this._maximizedPaneWidget?this._maximizedPaneWidget.state():e.paneForSource(e.mainSeries()),n=(0,s.ensureNotNull)(this.paneByState((0,s.ensureNotNull)(r))).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(),r=(0,s.ensureNotNull)(this._maximizedPaneWidget?this._maximizedPaneWidget.state():i.paneForSource(i.mainSeries())),n="right"===e?r.rightPriceScales():r.leftPriceScales();if(n.lengthe===i.mainSeries()||(0,v.isStudy)(e));return o.reverse(),o=(0,ni.moveToHead)(o,i.mainSeries()),o.map(e=>e.title(!0,void 0,!1))}_menuItemsProvider(e,t){const i=this.model(),r=(0,s.ensureNotNull)(this._maximizedPaneWidget?this._maximizedPaneWidget.state():i.paneForSource(i.mainSeries())),n="right"===e?r.visibleRightPriceScales():r.visibleLeftPriceScales();if(n.length{const e=this.model().model().mainSeries();let t;t=new($e())(null).readonly(),this._mainSeriesErrorMessage=(0,m.combine)((e,t,i)=>{switch(t){case 4:{const e=this.model().model().mainSeries().seriesErrorMessage();if(!(null!==e&&("resolution_not_entitled"===e||"custom_resolution"===e||"seconds_not_entitled"===e||e.startsWith("study_not_auth:"))))return{message:(0,r.t)("Invalid symbol"),icon:(0,Pe.enabled)("hide_image_invalid_symbol")?void 0:"ghost"};break}case 1:case 2:break;default:if(i)return{message:(0,r.t)("No data here"),icon:"ghost"}}return null},t,(0,S.createWVFromGetterAndSubscription)(()=>e.status(),e.onStatusChanged()),(0,S.createWVFromGetterAndSubscription)(()=>!e.bars().size(),e.dataEvents().dataUpdated()),(0,S.createWVFromGetterAndSubscription)(()=>({}),this.model().model().onChartThemeLoaded())),this._mainSeriesErrorMessage.subscribe(e=>{this._paneWidgets.forEach(t=>t.setErrorMessage(e))},{callWithLast:!0})})}async _createControlBar(){const e=await Promise.all([i.e(5514),i.e(3770),i.e(9255),i.e(5093)]).then(i.bind(i,62101));this._controlBarNavigation=new e.ControlBarNavigation(this,(0,s.ensureNotNull)(this._mainDiv),this._options.controlBar),this._model&&this._adjustSize()}_subscribeToDrawingState(){if(this._options.readOnly)return;(0,k.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))};k.createdLineTool.subscribe(null,t=>{e(t,(e,i)=>{const r=(0,s.ensureNotNull)(e.paneForSource(e.mainSeries()));let n,o=null;if(void 0===t.pointPositionPercents){if(o=di(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,s.ensureNotNull)(o),price:n},l=i.createLineTool({pane:r,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})})}),k.continuedLineTool.subscribe(null,t=>{e(t,(e,i)=>{var s;const r=di(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})})}),k.cancelledLineTool.subscribe(null,t=>{e(t,(e,t)=>{e.cancelCreatingLine()})}),k.beenSetLineToolLastPoint.subscribe(null,t=>{e(t,(e,i)=>{const s=e.lineBeingCreated();if(null===s||s.linkKey().value()!==t.linkKey)return;const r=di(e,t.model,t.point.timeStamp);if(null===r)return;const n={index:r,price:t.point.price};s.setLastPoint(n),s.updateAllViews((0,
ht.dataSourceChangeEvent)(s.id())),e.lightUpdate()})}),k.startedMovingLineTool.subscribe(null,t=>{e(t,(e,i)=>{var s;const r=t.linkKeys.map(f.lineToolByLinkKey.bind(null,e)).filter(_.notNull);if(r.length){const i=di(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)}})}),k.movedLineTool.subscribe(null,t=>{e(t,(e,i)=>{var s;const r=e.sourcesBeingMoved().filter(f.isLineTool).filter(e=>(e=>t.linkKeys.some(t=>e.linkKey().value()===t))(e));if(!r.length)return;const n=di(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)})}),k.finishedMovingLineTool.subscribe(null,t=>{e(t,(e,i)=>{const s=e.sourcesBeingMoved().filter(f.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,f.lineToolByLinkKey)(e,t.linkKey);if(null!==r){const i=r.getPoint(t.pointIndex),n=i?i.index:di(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)}}})}),k.changedLineTool.subscribe(null,t=>{e(t,(e,i)=>{const r=e.lineBeingEdited();if(null===r||r.linkKey().value()!==t.linkKey)return;let n=null;if(n=t.changes.indexesChanged?di(e,t.model,t.point.timeStamp):(0,s.ensureNotNull)(e.linePointBeingChanged()).index,null!==n&&r.isActualSymbol()&&r.isActualCurrency()&&r.isActualUnit()){const i={index:n,price:t.point.price};e.changeLinePoint(i,void 0,!0)}})}),k.finishedChangingLineTool.subscribe(null,t=>{e(t,(e,i)=>{const s=(0,f.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)})}),k.removedLineTool.subscribe(null,t=>{e(t,(e,i)=>{const{withUndo:s,unlink:r,linkKey:n}=t,o=(0,f.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})}})}),k.finishedLineTool.subscribe(null,t=>{e(t,(e,i)=>{const s=(0,f.lineToolByLinkKey)(e,t.linkKey);null!==s&&(0,
et.isLineToolFinishRequiredWhenCreatedByApi)(s.toolname)&&s.finish()})}),k.changedLineStyle.subscribe(null,t=>{e(t,(e,i)=>{const s=(0,f.lineToolByLinkKey)(e,t.linkKey);null!==s&&(s.restoreExternalState(t.state),s.propertiesChanged(!0),t.alertId&&s.syncAlert(t.alertId))})}),k.restoredLineToolState.subscribe(null,t=>{e(t,(e,i)=>{const s=(0,f.lineToolByLinkKey)(e,t.linkKey);if(null!==s){const i={...t.state};i.indexes=t.state.points.map(i=>({index:di(e,t.model,i.time_t),price:i.price})),e.restoreLineToolState(s,i,!1)}})}),k.restoredLineTool.subscribe(null,t=>{e(t,(e,i)=>{e.restoreSource(t.state.restorePane,t.state.paneIndex,t.state.paneState,t.state.sourceState,null)})}),k.copiedLineTool.subscribe(null,t=>{e(t,(e,i)=>{const r=(0,s.ensureNotNull)(e.paneForSource(e.mainSeries()));let n;const o={...t.state,intervalsVisibilities:(0,oi.mergeIntervalVisibilitiesDefaults)(t.state.intervalsVisibilities)},a=(0,f.createLineToolProperties)(t.linetool,o,e),l=e.dataSourceForId(t.id);if(l){if(!(0,f.isLineTool)(l))return void li.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 li.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:r,point:e,linetool:t.linetool,properties:a,linkKey:t.linkKey,disableSynchronization:!0,id:t.id}),null===n)return;n.restorePositionPercents((0,s.ensureDefined)(t.pointPositionPercents))}else{const o=t.points.map(i=>({index:(0,s.ensureNotNull)(di(e,t.model,i.timeStamp)),price:i.price})),c=o[0];if(n=null!=l?l:i.createLineTool({pane:r,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;e{"use strict";i.r(t),i.d(t,{allInitialModelsCreated:()=>It,allInitialSymbolsResolved:()=>xt,applyIndicatorToAllChartsImpl:()=>je,applyIndicatorsToAllChartsImpl:()=>Ue,applyLineToolUpdateNotificationImpl:()=>Xe,applyThemeImpl:()=>At,chartsSymbolsImpl:()=>Qe,checkProFeatureImpl:()=>Mt,computeContentBoxImpl:()=>at,copyScreenshotToClipboard:()=>rt,createBroadcastChannel:()=>Ct,createChartStorageSubscriptionsIfRequired:()=>et,createClipboardHandler:()=>Ze,destroyBroadcastChannel:()=>Pt,downloadScreenshot:()=>st,generateNewChartId:()=>_t,getAsyncStateForChartImpl:()=>Ke,getClientSnapshot:()=>ot,
getSnapshot:()=>nt,getStateForChartImpl:()=>Ye,getVisuallyAdjacentDefImpl:()=>ut,hideChartImpl:()=>vt,lineToolsAndGroupsDTOsImpl:()=>qe,removeChartWidgetSubscriptionsImpl:()=>St,resetLineToolsInvalidatedImpl:()=>$e,setBrokerImpl:()=>Je,setChartLayoutWithUndoImpl:()=>Lt,setLayoutImpl:()=>yt,syncCrosshairImpl:()=>wt,syncScrollImpl:()=>Tt,takeScreenshot:()=>tt,takeServerScreenshot:()=>it,updateLayoutImpl:()=>dt,updateLayoutPartialImpl:()=>ht});var s=i(88537),r=i(86441),n=i(28353),o=i(24980),a=i(49483);function l(e){const t={};return{promise:new Promise((i,s)=>{e.subscribe(t,i,!0)}),destroy:()=>{e.unsubscribeAll(t)}}}i(54427);var c=i(35762);class h extends c.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 d extends c.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 u extends d{constructor(e,t,i,s){super(e=>this._vwState.setValue(e),t,i,s),this._vwState=e}}var p=i(98125),_=i(80054),m=i(65446);const g=(0,p.getLogger)("Clipboard");class f{constructor(e){this._e=e}write(e){return(0,m.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,_.htmlEscape)(t.slice(0,256)):"📈"}`}}class v{constructor(e){this._e=e}async read(){this._e&&0===this._e.eventPhase&&(g.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 S=i(35749);function y(e){const t=e.target;return null!==t&&1===t.nodeType&&(0,S.isTextEditingField)(t)}function b(e){const t=e.target;if(null===t)return!1;const i=(t.ownerDocument||t).getSelection();return null!==i&&!i.isCollapsed}class w 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 v(null).read()}uiRequestCopy(e){this._callbacks.copyRequested&&this._callbacks.copyRequested(new f(null),e)}uiRequestCut(e){this._callbacks.cutRequested&&this._callbacks.cutRequested(new f(null),e)}uiRequestPaste(e){this._callbacks.pasteRequested&&this._callbacks.pasteRequested(new v(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 f(e))}_onCutEv(e){e.defaultPrevented||this._callbacks.cutRequested&&this._callbacks.cutRequested(new f(e))}_onPasteEv(e){e.defaultPrevented||this._callbacks.pasteRequested&&this._callbacks.pasteRequested(new v(e))}}{_onCopyEv(e){if(!y(e)&&!b(e))return super._onCopyEv(e)}_onCutEv(e){if(!y(e)&&!b(e))return super._onCutEv(e)}_onPasteEv(e){if(!y(e))return super._onPasteEv(e)}}const C=()=>i.e(4389).then(i.bind(i,4897));function P(e,t={}){return C().then(i=>i.copyToClipboardImageOfChart(e,t))}function T(e,t={}){return C().then(i=>i.getImageOfChartSilently(e,t))}var x=i(76422),I=i(84015),M=i(6087),L=i(42060),A=i(24377),E=i(26843),k=i(55257),D=i(93435),V=i(22799),B=i(52640),N=i(38069),R=i(67337),O=i(34954);const F=!R.enabled("widget_logo");function W(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=W(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=W(r,t,i);s={...s,...n.relativePositions},t=n.nextElementLeft,e=n.nextElementTop}i=e}return{relativePositions:s,nextElementTop:i,nextElementLeft:t}}const H=function(e){const t={};for(const i of Object.keys(e)){const s=W(e[i]).relativePositions
;t[i]=s}return t}(N);function z(e,t,i,s){return(0,D.drawScaled)(e,s,()=>{e.fillText(i,t.x/s,t.y/s)}),e.measureText(i).width*s}function U(e){return e.map(e=>({...e,title:""}))}function j(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 G{constructor(e,t){this._logoTextColor=null,this._snapshotData=e,t=t||{},this._options={backgroundColor:M.themes[e.theme].getThemedColor("color-bg-primary"),borderColor:M.themes[e.theme].getThemedColor("color-border"),font:V.CHART_FONT_FAMILY,fontSize:12,legendMode:"vertical",hideResolution:!1,showHeaderPublishedBy:!1,showHeaderMainSymbol:!1,...t};const i=H[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&&(s+=e.timeAxis.canvas.height),new D.Size(i,s)}(e));if(this._pixelRatio=e.hidpiRatio,this._chartsGeometry=e.charts.map((e,t)=>function e(t,i,s,r){let n=Math.round(10*r),o=Math.round(10*r);const a=s[t];if(null!==a.l){const t=e(a.l,i,s,r);n=t.x+t.width+Math.round(5*r)}if(null!==a.t){const t=e(a.t,i,s,r);o=t.y+t.height+Math.round(5*r)}const l=i[t];return{x:n,y:o,width:l.w,height:l.h}}(t,s,i,this._pixelRatio)),!F){let i=e.theme;void 0!==t.backgroundColor&&(i="black"===(0,A.rgbToBlackWhiteString)((0,A.parseRgb)(t.backgroundColor),150)?E.StdTheme.Dark:E.StdTheme.Light),this._logoTextColor=M.themes[i].getThemedColor("color-text-primary")}this._headerDefaultTextColor=M.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=F?Math.round(10*e):Math.round(35*e),h=i;i+=c;const d=(0,D.createDisconnectedCanvas)(document,new D.Size(t,i),1),u=(0,D.getContext2D)(d);u.font=(0,B.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;e{const s=new Image;s.width=e,s.height=t,s.onload=()=>{i({image:s,width:e,height:t})},s.src=n})}(Math.round(20*e),Math.round(15*e),this._logoTextColor);u.fillStyle=this._logoTextColor,u.font=(0,B.makeFont)(13,V.CHART_FONT_FAMILY)
;const i=h+Math.round(c/2-t.height/2);!function(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,D.drawScaled)(e,r,()=>{e.fillText("TradingView",n,o)}),e.restore()}(u,Math.round(10*e),i,t,e)}return d}_drawChart(e,t,i,s){i.save(),i.translate(t.x+s.x,t.y+s.y);let n=0;for(const t of e.panes){let s=0;const o=t.leftAxis.canvas.width+Math.round(8*this._pixelRatio),a=n,l=n+Math.round(10*this._pixelRatio);t.leftAxis.contentWidth>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&&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){let t=0;e.timeAxis.lhsStub.contentWidth>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&&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(j(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)=>{this._drawLegendLine(e,new r.Point(s.x,s.y+n*o),i,t,!0)}),e.restore()}_drawLegend(e,t,i,s){let n=!0;const o=Math.ceil(1.4*this._options.fontSize*this._pixelRatio);let a=i.x,l=i.y;if(e.mainSeriesText&&l+oe.text).join("");let a=t.x;const l=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,o,i-a,this._pixelRatio);if(l.elided&&!n)return null;const c=[];let h=0;for(const e of s){if(h+e.text.length>l.text.length)break;c.push(e.text),
h+=e.text.length}const d=c.join("").trim().length;h=0;for(const i of s){if(h+i.text.length>d)break;i.color&&(e.save(),e.fillStyle=i.color),a+=z(e,new r.Point(a,t.y),i.text,this._pixelRatio),i.color&&e.restore(),h+=i.text.length}return l.elided&&(a+=z(e,new r.Point(a,t.y),"...",this._pixelRatio)),a}}var q=i(9423),Y=i(4676),K=i(85733),$=i(45112),X=i(80643),Z=i(94804),J=i(76818),Q=i(44349),ee=i(34026),te=i(29892),ie=i(43891),se=i(42759),re=i(49094);class ne{constructor(e,t,i){this._data=e,this._hittest=t,this._textWidthCache=i}draw(e,t){const i=t.pixelRatio,s=this._data.centerPoint,n=Math.round(s.x*i),o=Math.round(s.y*i),a=Math.max(1,Math.floor(i))%2/2,l=new r.Point(n+a,o-a);this._drawLollipop(e,l,t),this._drawLabel(e,l,t.pixelRatio),this._drawImage(e,l,t.pixelRatio)}hitTest(e,t){const i=(0,re.interactionTolerance)().esd,s=this._data.centerPoint.y-this._data.style.lollipop.height/2-i,n=this._data.centerPoint.x-this._data.style.lollipop.width/2-i,o=(0,r.box)(new r.Point(n,s),new r.Point(n+this._data.style.lollipop.width+2*i,s+this._data.style.lollipop.height+2*i));return(0,ee.pointInBox)(e,o)?this._hittest:null}_drawLollipop(e,t,i){const s=this._data.style,r=i.pixelRatio,n=Math.max(1,Math.floor(r));let o=Math.round(s.lollipop.width*r);o%2!=n%2&&(o+=1);const a=o/2;s.lollipop.fillCircle&&s.lollipop.backgroundColor&&(e.fillStyle=s.lollipop.backgroundColor,(0,se.createCircle)(e,t.x,t.y,a),e.fill());const l=Math.round(s.lollipop.lineWidth*r);e.strokeStyle=s.lollipop.strokeStyle,e.lineWidth=l,(0,te.setLineStyle)(e,ie.LINESTYLE_SOLID);const c=a-Math.round(1*r+l/2);(0,se.createCircle)(e,t.x,t.y,c),s.lollipop.fillCircle&&s.lollipop.fillStyle&&(e.fillStyle=s.lollipop.fillStyle,e.fill()),e.stroke()}_drawLabel(e,t,i){const s=this._data.style.lollipop.text,r=s.label;if(""===r)return;e.textAlign="center",e.textBaseline="middle",e.fillStyle=s.strokeStyle,e.font=s.font;const n=this._textWidthCache.yMidCorrection(e,r);e.translate(t.x,t.y+((s.deltaY||0)+n)*i),(0,D.drawScaled)(e,i,()=>{e.fillText(r,0,0)})}_drawImage(e,t,i){const s=this._data.style.lollipop.image;if(void 0===s)return;const{width:r,height:n}=s,o=Math.round(r*i),a=Math.round(n*i),l=Math.round(t.x-o/2),c=Math.round(t.y-a/2);e.drawImage(s,0,0,r,n,l,c,o,a)}}var oe=i(84346);const ae={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")},le={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")},ce={
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 he(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,te.setLineStyle)(e,ie.LINESTYLE_SOLID),s.lollipop.fillCircle&&s.lollipop.fillStyle&&(e.fillStyle=s.lollipop.fillStyle,e.fill(r.strokePath)),e.stroke(r.strokePath),e.restore()}function de(e,t,i,s){he(e,t,i,s,ae)}function ue(e,t,i,s){he(e,t,i,s,le)}function pe(e,t,i,s){he(e,t,i,s,ce)}class _e extends ne{_drawLollipop(e,t,i){const s=this._data.style;switch(s.shape){case"earningUp":de(e,t,i,s);break;case"earningDown":ue(e,t,i,s);break;case"earning":pe(e,t,i,s);break;default:super._drawLollipop(e,t,i)}}}const me={backgroundDark:(0,$.getHexColorByName)("color-cold-gray-900"),backgroundLight:(0,$.getHexColorByName)("color-white")};class ge extends class{constructor(e,t,i){this._invalidated=!1,this._renderer=new Z.CompositeRenderer,this._textWidthCache=new J.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._hitTestHandler=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)}onClickOutside(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){const t=e.active?"active":e.hovered?"hovered":"default";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,X.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=new D.Size(e,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.getStyle(t),s={id:t.id,centerPoint:new r.Point(t.basePoint.x,t.basePoint.y-e.lollipop.bottom-e.lollipop.height/2-(e.lollipop.incHeight||0)),style:e},n={activeItem:t.itemIndex,clickHandler:this._lollipopMouseClickHandler.bind(this,s,i),tapHandler:this._lollipopMouseClickHandler.bind(this,s,i)};if(this._renderer.append(this._createRendererForLollipop(s,n)),this._showBarLine(t)){const{strokeStyle:i,lineStyle:s,lineWidth:r}=e.barLine,n={color:i,linestyle:s,linewidth:r,x:t.basePoint.x,top:0,bottom:t.basePoint.y-e.lollipop.bottom-e.lollipop.height},o=new Q.VerticalLineRenderer;o.setData(n),this._renderer.insert(o,0)}}}}_recreateStyles(e){this._stylesCache=null}_createRendererForLollipop(e,t){return new ne(e,new oe.HitTestResult(oe.HitTestResult.CUSTOM,t),this._textWidthCache)}_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._hitTestHandler(o,()=>{const e=(0,s.ensureDefined)(this._lollipops[n]),t=this.createTooltipContent(e);return t?[t]:null})}_onSymbolOrIntervalChanged(){this._lollipops={},this._lollipopsCounter=0,this._renderer.clear(),this.clearLastClicked()}}{constructor(e,t,i){super(e,t,i),this.stylesCache={},this.templatesCache={},this._itemIndexToId=new Map,this.source=t}createTooltipContent(e){const t=e.items;return t?{subTitle:Array.isArray(t)?t.map(e=>({value:e})):[{value:t}],style:{color:e.color}}:null}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.color,e.label,e.stack,e.shape)}hasTooltip(e){return Boolean(e.items&&e.items.length)}getLollipopIdByIndex(e){return this._itemIndexToId.get(e)}_createRendererForLollipop(e,t){return new _e(e,new oe.HitTestResult(oe.HitTestResult.CUSTOM,t),this._textWidthCache)}_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}}}),super._createRenderers(e,t)}_generateStyle(e,t,i,s,r){let n=e+t+i;if(void 0!==s&&(n+="_stack"+s),!(n in this.stylesCache)){const o=this._model.isDark()?me.backgroundDark:me.backgroundLight;let a,l=t;if("active"===e)a=t,l="rgba(255, 255, 255, 0.92)";else if("hovered"===e){const e=(0,A.tryParseRgba)(t);if(null!==e){const t=e[3]*(1-.85);a=(0,A.rgbaToString)((0,A.rgba)(e[0],e[1],e[2],t))}}let c=23,h=23,d=1,u=0;"earning"===r?(h=21,c=21,d=2):"earningUp"===r?(c=21,u=1,d=2):"earningDown"===r&&(c=21,u=-.5,d=.5);const p={barLine:{lineStyle:ie.LINESTYLE_DASHED,lineWidth:1,strokeStyle:t},lollipop:{width:c,height:h,bottom:d,backgroundColor:o,lineWidth:1.5,fillStyle:a,strokeStyle:t,fillCircle:!0,text:{label:i,deltaY:u,strokeStyle:l,font:(0,B.makeFont)(12,V.CHART_FONT_FAMILY,"bold")}},shape:r};void 0!==s&&(p.lollipop.incHeight=25*s),this.stylesCache[n]=p}return this.stylesCache[n]}}class fe extends Y.BarsMarksContainer{constructor(e){super(e),this.toolname="UserDefinedTimescaleMarks",this._requestedPointsets=new Set,(0,K.hideMarksOnBars)().subscribe(this,()=>this._properties.childs().visible.setValue(!(0,K.hideMarksOnBars)().value())),this._paneView=new ge(e,this,this._showTooltip.bind(this))}destroy(){(0,K.hideMarksOnBars)().unsubscribeAll(this),super.destroy()}userEditEnabled(){return!1}onClicked(e){if(null!==e){const t=this._paneView.getLollipopIdByIndex(e.activeItem);(0,x.emit)("onTimescaleMarkClick",t)}}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.onNeedRepaint.fire()}updatePlateData(e,t){return{...t,barWidth:this.barWidth(),text:e.text,tooltipMargin:-1*Math.max(e.minSize/2,.4*this.barWidth())}}hasContextMenu(){return!1}paneViews(){return this._properties.childs().visible.value()?[this._paneView]:[]}updateAllViews(){this._paneView.update()}onClickOutside(e){this._paneView.onClickOutside(e)}_createTooltipRenderer(){return null}_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))),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.updateAllViews(),this.onNeedRepaint.fire()},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.onClickOutside.bind(this);(await Promise.all([i.e(5514),i.e(2e3),i.e(3466),i.e(2731),i.e(1075),i.e(9039)]).then(i.bind(i,22838))).showLollipopTooltip({items:s,position:e,customCloseSubscriptions:n,onClickOutside:o})}}function ve(e,t,i){return new Promise(s=>{i&&e.classList.remove(i),e.classList.add(t);const r=i=>{i.target===e&&i.animationName===t&&(e.removeEventListener(i.type,r),s(i))};e.addEventListener("animationend",r,!1),e.addEventListener("webkitAnimationEnd",r,!1),e.addEventListener("MSAnimationEnd",r,!1)})}function Se(e){return ve(e,"tv-transition--fade-in","tv-transition--fade-out")}class ye extends class{constructor(){this._source=null,this._tooltipHovered=!1,this._layout=null,this._container=null,this._context=null,this._plateArrowSize=14,this._handleTouchMouseLeave=e=>{(0,s.ensureNotNull)(this._layout).contains(e.target)||this._clearHovered()},this._setHovered=()=>{this._tooltipHovered=!0,document.addEventListener("touchstart",this._handleTouchMouseLeave),Se((0,s.ensureNotNull)(this._layout))},this._clearHovered=()=>{var e;this._tooltipHovered=!1,document.removeEventListener("touchstart",this._handleTouchMouseLeave),null===(e=this._source)||void 0===e||e.onNeedRepaint.fire()}}showPlate(e,t){if(this._currentId!==e.id||!this._layout||null===this._layout.parentNode){this._currentId=e.id,this._createLayout();const i=(0,s.ensureNotNull)(this._layout);this._getContainer(t).appendChild(i),i.addEventListener("mouseenter",this._setHovered),i.addEventListener("mouseleave",this._clearHovered)}const i=(0,s.ensureNotNull)(this._layout);let r=Math.round(e.barWidth/2);r>15&&(r=15),r<10&&(r=10),this._updatePlate(e);const n=t.canvas.getBoundingClientRect(),o=e.x-i.offsetWidth{t.remove(),e()})}
setSource(e){this._source=e}removeLayout(){var e;this._tooltipHovered||null===(e=this._layout)||void 0===e||e.remove()}toggleLayout(e){(0,s.ensureNotNull)(this._layout).style.visibility=e?"visible":"hidden"}_getContainer(e){return this._container&&this._context===e||(this._context=e,this._container=e.canvas.parentElement),(0,s.ensureNotNull)(this._container)}}{constructor(){super(...arguments),this._layoutText=null}_createLayout(){this._layout=document.createElement("div"),this._layout.classList.add("bar-mark-tooltip"),this._layoutText=document.createElement("div"),this._layoutText.classList.add("text"),this._layout.appendChild(this._layoutText)}_updatePlate(e){this._currentId=e.id;const t=(0,s.ensureNotNull)(this._layout);t.style.borderColor=e.theme.border,t.style.marginTop=e.tooltipMargin+"px";const i=(0,s.ensureNotNull)(this._layoutText);i.innerHTML=e.text,t.appendChild(i)}}class be{constructor(e,t){this._tooltips={},this._hoveredId=null,this._tooltipFactory=e,this.source=t}showPlate(e,t){const i=this._findOrCreateTooltip(e);null!==i&&(i.drawPlate(e,t),i.plateData=e)}draw(e,t){this._hoveredId=null;for(const t of e)t.hovered&&(this._hoveredId=t.id);for(const i of e)this.showPlate(i,t)}endDraw(){var e,t;for(const i in this._tooltips)if(this._tooltips.hasOwnProperty(i)){const r=(0,s.ensureDefined)(this._tooltips[i]);r.toggleVisibility(),this._hoveredId&&(null===(e=r.plateData)||void 0===e?void 0:e.id)!==this._hoveredId&&!(null===(t=r.plateData)||void 0===t?void 0:t.pinned)&&(r.remove(),delete this._tooltips[i])}}removeAll(){for(const e in this._tooltips)if(this._tooltips.hasOwnProperty(e)){(0,s.ensureDefined)(this._tooltips[e]).remove()}this._tooltips={}}removeTooltip(e){delete this._tooltips[e]}_createTooltip(){return new we(this,this._tooltipFactory())}_findOrCreateTooltip(e){let t=this._tooltips[e.id];return void 0===t&&(e.hovered||e.pinned)&&(t=this._createTooltip(),this._tooltips[e.id]=t),t||null}}class we{constructor(e,t){this._visible=!1,this._renderer=e,this._tooltip=t}drawPlate(e,t){this._visible=!0,this._tooltip.setSource(this._renderer.source),this._tooltip.showPlate(e,t),e.hovered||e.pinned||this._tooltip.hide(()=>this._renderer.removeTooltip(e.id))}remove(){this._tooltip.removeLayout()}toggleVisibility(){this._tooltip.toggleLayout(this._visible),this._visible=!1}}class Ce extends Y.BarsMarksContainer{constructor(e){super(e),this.toolname="UserDefinedBarsMarks",(0,K.hideMarksOnBars)().subscribe(this,()=>{this.properties().childs().visible.setValue(!(0,K.hideMarksOnBars)().value())})}destroy(){(0,K.hideMarksOnBars)().unsubscribeAll(this),super.destroy()}userEditEnabled(){return!1}onClicked(e){var t,i,s;const r=null===(t=null==e?void 0:e.activeItem)||void 0===t?void 0:t.id;null===(s=(i=this._marks[r]).onClicked)||void 0===s||s.call(i)}clearMarks(){super.clearMarks(),this.onNeedRepaint.fire()}updatePlateData(e,t){return{...t,barWidth:this.barWidth(),text:e.text,tooltipMargin:-1*Math.max(e.minSize/2,.4*this.barWidth())}}hasContextMenu(){return!1}calcIsActualCurrency(){this._isActualCurrency=!0}
calcIsActualUnit(){this._isActualUnit=!0}_initialize(){this.properties().childs().visible.setValue(!0)}_plateViewData(e){const t={text:e.text};return"object"==typeof e.color&&(t.theme="user_defined_theme",t.overridedTheme={},t.overridedTheme.border=e.color.border,t.overridedTheme.background=e.color.background),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;this._loadedRange=this._rangeUnion(e,this._loadedRange),this.onNeedRepaint.fire()},s)}_createTooltipRenderer(){return new be(()=>new ye,this)}}var Pe=i(31940),Te=i(35548),xe=i(37416),Ie=i(98619),Me=i(54386),Le=i(76367);const Ae=new o.TranslatedString("change chart layout to {title}",(0,n.t)("change chart layout to {title}"));class Ee extends c.UndoCommand{constructor(e,t){super(Ae.format({title:L.layouts[t].title})),this._chartWidgetCollection=e,this._newLayoutType=t,this._oldLayoutType=e.layout.value()}redo(){this._chartWidgetCollection.setLayout(this._newLayoutType)}undo(){this._chartWidgetCollection.setLayout(this._oldLayoutType)}}var ke=i(45345);const De=new o.TranslatedString("apply toolbars theme",(0,n.t)("apply toolbars theme"));class Ve extends c.UndoCommand{constructor(e,t,i=!0){super(De),this._prevThemeName=e,this._themeName=t,this._syncState=i}undo(){(0,M.isStdThemeName)(this._prevThemeName)&&((0,ke.setTheme)(this._prevThemeName),this._syncState&&(0,M.syncTheme)())}redo(){(0,M.isStdThemeName)(this._themeName.toLowerCase())&&((0,ke.setTheme)(this._themeName.toLowerCase()),this._syncState&&(0,M.syncTheme)())}}var Be=i(87027),Ne=i(52714);const Re=!a.CheckMobile.any(),Oe=new o.TranslatedString("apply indicators to entire layout",(0,n.t)("apply indicators to entire layout")),Fe=new o.TranslatedString("sync time",(0,n.t)("sync time")),We=new o.TranslatedString("resize layout",(0,n.t)("resize layout")),He=new o.TranslatedString("reset layout sizes",(0,n.t)("reset layout sizes")),ze=new o.TranslatedString("apply chart theme",(0,n.t)("apply chart theme"));(0,n.t)("Please give us a clipboard writing permission in your browser or press {keystroke}"),(0,n.t)("Couldn't copy"),(0,n.t)("Couldn't cut"),(0,n.t)("Couldn't paste"),(0,n.t)("{userName} published on {customer}, {date}"),(0,n.t)("Published on {customer}, {date}");function Ue(e,t){const i=t.model().model().studyTemplate();e.undoHistory.beginUndoMacro(Oe);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 Ge(e){let t=1;for(;e.has(""+t);)t++;return""+t}function qe(e){const t=new Map,i=e.chartsCountToSave(),s=new Set;for(let r=0;r{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 Xe(e,t,i,s){const r=e.map(e=>e.chartWidget);r.forEach(e=>e.startApplyingLineToolUpdateNotification());try{r.filter(e=>e.id()===t||0!==s).forEach(e=>e.applyLineToolUpdateNotification(i,s))}finally{r.forEach(e=>e.endApplyingLineToolUpdateNotification())}}function Ze(e){return new w({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 Je(e,t){0}function Qe(e){const t={};return e.chartWidgetsDefs.map(e=>e.chartWidget).forEach(e=>t[e.id()]=function(e){var t,i;const s={},r=e.model().mainSeries(),n=r.properties().childs(),o=r.symbolInfo();s.resolution=n.interval.value(),s.symbol_type=null!==o&&o.type||"",s.exchange=null!==o&&o.exchange||"",s.listed_exchange=null!==o&&o.listed_exchange||"";const a=null!==(t=null==o?void 0:o.legs)&&void 0!==t?t:[];if(null!==o&&r.isSpread()){const e=a[0];let t=o.base_name[0];t=t.split(":")[1],s.symbol=e,s.short_name=t,s.expression=o.full_name}else s.symbol=null!==o&&o.ticker||n.symbol.value(),s.short_name=n.shortName.value();const l=null!==(i=null==o?void 0:o.base_name)&&void 0!==i?i:[];return s.legs=a.map((e,t)=>({symbol:e,pro_symbol:l[t]})),s}(e)),t}function et(e,t){0}function tt(e,t){return T(t,{snapshotUrl:e}).then(e=>((0,x.emit)("onScreenshotReady",e),e))}function it(e,t){const i={snapshotUrl:e};const s=(0,I.isOnMobileAppPage)("any")
;return(s?T:P)(t,i).then(e=>((0,x.emit)("onScreenshotReady",e),s||(0,x.emit)("onServerScreenshotCopiedToClipboard"),e))}function st(e){return function(e){return C().then(t=>t.downloadClientScreenshot(e))}(e)}function rt(e){return function(e){return C().then(t=>t.copyToClipboardClientScreenshot(e))}(e).then(()=>{(0,x.emit)("onClientScreenshotCopiedToClipboard")})}function nt(e,t,i,s){const r=Math.max(1,window.devicePixelRatio||1),n=e.getAll();const o=e.maximizedChartWidget();if(s&&s.onlyActiveChart||o)return{layout:"s",hidpiRatio:r,theme:(0,M.getCurrentTheme)().name,charts:[e.activeChartWidget.value().images(s)],publishedBy:void 0};const a=[],l=L.layouts[e.layout.value()].count,c={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,Le.shiftPressed)().subscribe(this._onShiftPressed)}destroy(){(0,Le.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=lt(this._splitter.className);Array.from(this._state.parent.getElementsByClassName(t)).forEach(e=>e.classList.remove(Be.hovered))}mouseDoubleClickEvent(e){const t=(0,xe.layoutInitialSizingState)(this._state.layoutTemplate.value().expression);this._state.undoHistory.beginUndoMacro(He),this._state.undoHistory.pushUndoCommand(new u(this._state.sizingState.spawn(),this._state.sizingState.value(),t,He));const i=this._state.layoutTemplate.value().layoutType;this._state.undoHistory.pushUndoCommand(new d(e=>e?this._state.allLayoutSizesState.set(i,e):this._state.allLayoutSizesState.delete(i),this._state.allLayoutSizesState.get(this._state.layoutTemplate.value().layoutType),t,He)),this._state.undoHistory.endUndoMacro()}_highlightSplitters(e){const t=lt(this._splitter.className);Array.from(this._state.parent.getElementsByClassName(t)).forEach(e=>e.classList.remove(Be.hovered))
;(e?Array.from(this._state.parent.getElementsByClassName(t)):[this._splitterElement]).forEach(e=>e.classList.add(Be.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(Be["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(Be["i-active"]),this._state.currentLayoutResizeAction.setValue(null),t.currentState)){this._state.undoHistory.beginUndoMacro(We),this._state.undoHistory.pushUndoCommand(new u(this._state.sizingState.spawn(),t.initialState,t.currentState,We));const e=this._state.layoutTemplate.value().layoutType;this._state.undoHistory.pushUndoCommand(new d(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(),He)),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=at(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 ht(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=at(e),h=r.sizer(c,i,s,a+l,Re?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;0;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 dt(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)=>ht(e,t,i,r.length)),Re&&!e.maximizedChartDef.value()){const r=at(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 pt(e,t){return e.chartWidgetsDefs.some(e=>{var i;return(null===(i=e.chartWidget)||void 0===i?void 0:i.id())===t})}function _t(e){let t=1;for(;e(""+t);)t++;return""+t}function mt(e){const t=e.activeChartWidget.value();if(t){const i=t.state();return i.chartId=_t(t=>pt(e,t)),i.shouldBeSavedEvenIfHidden=!1,{content:i}}}function gt(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 Ce(e);s.push(t);const i=new fe(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),a.isEdge&&(o.style.touchAction="none",o.style.msTouchAction="none"),n.className&&o.classList.add(n.className);const l={alive:new Ne(!0),container:new Ne(o),width:new Ne,height:new Ne,collapsed:new Ne(!1),hiddenInLayout:new Ne(!1),visible:new Ne,rdState:new Pe.ResizerDetacherState,requestFullscreen:()=>{e.globalDetachable.value()&&(e.setMaximized(l),e.activeChartWidget.setValue((0,s.ensureNotNull)(l.chartWidget)))},
exitFullscreen:()=>{e.activeChartWidget.value()===l.chartWidget&&e.setMaximized(null)},detachable:e.globalDetachable,fullscreenable:e.globalDetachable,fullscreen:new Ne,chartWidget:null};l.rdState.pushOwner(l),e.chartWidgetsDefs.push(l);const c=()=>{l.visible.setValue(!l.hiddenInLayout.value()&&e.options.resizerBridge.visible.value())};l.hiddenInLayout.subscribe(()=>{(0,s.ensureNotNull)(l.chartWidget).setVisible(!l.hiddenInLayout.value()),c()}),l.collapsed.subscribe(()=>(0,s.ensureNotNull)(l.chartWidget).setCollapsed(l.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;npt(e,t)),d=new Te.ChartWidget(n,h,t.metaInfo.uid.value());return l.chartWidget=d,e.saveChartService&&l.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),l}function ft(e,t,i,s){const r={...e.widgetOptions,...e.savedChartWidgetOptions.shift()||mt(e),...0===i||e.symbolLock.value()?void 0:{defSymbol:null}},n=gt(e,t,r),o=n.chartWidget;return o.modelCreated().subscribe(null,()=>{s?s():e.checkAllPendingModelsAlreadyCreated(),e.dateRangeLock.value()&&e.subscribeToCompletedEventForDateRangeSync(o,!0)},!0),n}function vt(e){e.hiddenInLayout.setValue(!0);const t=e.container.value();t.parentNode&&t.parentNode.removeChild(t),e.fullscreen.setValue(!1)}function St(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 yt(e,t,i){var r,n;const o=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(X.notNull);o.length&&await Promise.all(o),(t=e.checkProFeature(t))in L.layouts||(t="s"),St(e,i);const a=e.layoutType,l=L.layouts[t].count;(0,x.emit)("layout_about_to_be_changed",t),e.layoutWV.setValue(t),e.setLayoutType(t),(null!==(r=e.splitters.value())&&void 0!==r?r:[]).forEach((e,t)=>{e.splitterElement.remove(),e.mouseHandler.destroy()}),e.splitters.setValue([]);const c=L.layouts[t];e.layoutTemplate.setValue(c);const h=null!==(n=e.allLayoutSizesState.get(c.layoutType))&&void 0!==n?n:(0,xe.layoutInitialSizingState)(c.expression);e.allLayoutSizesState.set(c.layoutType,h),e.sizingState.setValue(h);const d=e.maximizedChartDef.value();a!==t&&e.maximizedChartDef.value()&&e.maximizedChartDef.setValue(null),d&&e.activeChartWidget.setValue((0,s.ensureNotNull)(d.chartWidget))
;for(let t=0;t=l;if(r=e.maximizedChartDef.value()?e.maximizedChartDef.value()===n:t1),n.fullscreen.setValue(e.maximizedChartDef.value()===n),n.collapsed.setValue(o)}else n&&(vt(n),n.collapsed.setValue(o))}e.sizingState.setValue(h),dt(e),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&&l>0&&e.chartWidgetsDefs[l-1].rdState.bridge().attach()}function bt(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 wt(e,t,i,s,r){if(bt(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 Ct(e){const t=new BroadcastChannel("ChartWidgetsCollection");return t.onmessage=t=>{const i=t.data,s=e();if(s.crossHairSyncBroadcast)switch(i.type){case"crosshair":s.crossHairSyncBroadcast.uniqueId!==i.payload.sourceUniqueId&&bt(s,i.payload.point,null,!1,i.payload.envState)}},{channel:t,uniqueId:(0,q.randomHashN)(6)}}function Pt(e){var t;null===(t=e.crossHairSyncBroadcast)||void 0===t||t.channel.close()}function Tt(e,t,i){if(!e.trackTimeLock.value()||e.dateRangeLock.value())return;const s=e.layoutTemplate.value().count;e.undoHistory.beginUndoMacro(Fe),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 xt(e){return Promise.all(e.map(e=>{const t=e.model().mainSeries();return t.symbolResolvingActive().value()?l(t.dataEvents().symbolResolved()).promise:t.symbolInfo()}))}function It(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()||l(e.chartWidget.modelCreated()).promise)).then(()=>It(e))}function Mt(e,t){var i;if((0,
R.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)>=L.layouts[t].count)return t;return"s"}async function Lt(e,t,i){if(i=Mt(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(X.notNull);return s.length&&await Promise.all(s),e.undoHistory.pushUndoCommand(new Ee(t,i)),!0}async function At(e,t,i){const{theme:s,onlyActiveChart:r,restoreNonThemeDefaults:n,themeName:o,standardTheme:a,syncState:l=!0,noUndo:c}=i,h=(0,M.getCurrentTheme)().name;let d;r?d=[e.activeChartWidget.value()]:(await Promise.all(e.savedChartWidgetOptions.map((i,s)=>new Promise(i=>{vt(ft(e,t,s,i))}))),d=e.chartWidgetsDefs.map(e=>e.chartWidget)),c?(a&&new Ve(h,o,l).redo(),d.forEach(e=>{e.model().model().restoreTheme(s,n,c)})):(e.undoHistory.beginUndoMacro(ze),a&&e.undoHistory.pushUndoCommand(new Ve(h,o,l)),d.forEach(e=>{e.model().model().restoreTheme(s,n)}),e.undoHistory.endUndoMacro())}},22799:(e,t,i)=>{"use strict";i.r(t),i.d(t,{setChartFontFamily:()=>s,CHART_FONT_FAMILY:()=>r});function s(e){r=e}let r="-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif"},35548:(e,t,i)=>{"use strict";var s=i(2872);i(70150);var r=i(28353).t,n=i(24980).TranslatedString,o=i(88537),a=o.assert,l=o.ensureDefined,c=i(56972).Series,h=i(67337),d=i(62138).ActionBinder,u=i(56840).setValue,p=i(73591).TabNames,_=i(94420).showGoToDateDialog,m=i(68335),g=i(25760),f=i(15219).showConfirmInputsDialog,v=i(66101).Study,S=i(25270).StudyStub,y=i(81851).isStudy,b=i(89857).LineDataSource,w=i(14291),C=w.isLineTool,P=w.isStudyLineTool,T=i(28296).Action,x=i(62060).ACTION_ID,I=i(85733),M=i(29823).Interval,L=i(37667),A=L.getDefaultStyle,E=L.hasVolume,k=i(88679).showSymbolInfoDialog,D=i(23653).InvalidationMask,V=i(82992).linking,B=i(8636).showChangeIntervalDialogAsync,N=i(15618).showDialog,R=i(39277),O=R.availableTimezones,F=R.timezoneIsAvailable,W=i(90995).toggleHideMode,H=i(817).ChartSession,z=i(67072),U=i(4185).Spinner,j=i(51768).trackEvent,G=i(71413).lastMouseOrTouchEventInfo,q=i(59803),Y=i(98125).getLogger("ChartWidget",{color:"#606"}),K=i(82724).appendEllipsis,$=i(43181).StudyMetaInfoRepository,X=i(42060).isMultipleLayout,Z=i(19334).addPerfMark,J=i(81465).combineProperty,Q=i(79500).ChartWidgetBase,ee=i(49483).CheckMobile.any(),te=i(73383).TIMEFRAMETYPE,ie=i(81836).createDeferredPromise,se=i(76166).addPlusButtonProperty;const re=h.enabled("show_average_close_price_line_and_label");var ne=new n("change timezone",r("change timezone")),oe=new n("scale price chart only",r("scale price chart only")),ae=new n("stay in drawing mode",r("stay in drawing mode")),le=(new n("hide all drawing tools",r("hide all drawing tools")),
new n("hide marks on bars",r("hide marks on bars"))),ce=new n("change symbol last value visibility",r("change symbol last value visibility")),he=(new n("change symbol previous close value visibility",r("change symbol previous close value visibility")),new n("change previous close price line visibility",r("change previous close price line visibility")),new n("change symbol labels visibility",r("change symbol labels visibility"))),de=new n("change indicators name labels visibility",r("change indicators name labels visibility")),ue=new n("change indicators value labels visibility",r("change indicators value labels visibility")),pe=(new n("change bid and ask labels visibility",r("change bid and ask labels visibility")),new n("change bid and ask lines visibility",r("change bid and ask lines visibility")),new n("change pre/post market price label visibility",r("change pre/post market price label visibility")),new n("change pre/post market price line visibility",r("change pre/post market price line visibility")),new n("change high and low price lines visibility",r("change high and low price lines visibility"))),_e=new n("change high and low price labels visibility",r("change high and low price labels visibility")),me=new n("change average close price line visibility",r("change average close price line visibility")),ge=new n("change average close price label visibility",r("change average close price label visibility")),fe=new n("change countdown to bar close visibility",r("change countdown to bar close visibility")),ve=new n("change plus button visibility",r("change plus button visibility")),Se=new n("change price line visibility",r("change price line visibility")),ye=new n("unlock {title}",r("unlock {title}")),be=new n("lock {title}",r("lock {title}")),we=new n("change session breaks visibility",r("change session breaks visibility")),Ce=r("On the left"),Pe=r("On the right"),Te=r("Move scale to left"),xe=r("Move scale to right");e.exports.ChartWidget=class extends Q{constructor(e,t,i){super(e,t,i),this._options.timeScaleWidget&&(this._options.timeScaleWidget.pressedMouseMoveScale=this._options.handleScale.axisPressedMouseMove.time);var r=this;this._startSpinner(this._options.container.value());var n=this._options.content,o=this._options.readOnly;this._removeMaximizeHotkey=null,r._hotkeys=g.createGroup({desc:"Chart actions",isDisabled:function(){return!r._isActive}});var a=this._options.containsData,l=this._options.onWidget,c=this._options.onCmeWidget;c&&Y.logWarn("[ChartWidget] 'onCmeWidget' option is depricated");var h=this._options.widgetCustomer,d=this._options.timezone,u=this._options.hideSymbolSearch,p=this._options.defSymbol,_=M.isValid(this._options.defInterval)?this._options.defInterval:void 0,m=parseInt(this._options.defStyle),f=L.isValidStyle(m)?m:void 0,v=this._options.defSessionId,S=void 0!==this._options.defTimeframe?"string"==typeof this._options.defTimeframe?{value:this._options.defTimeframe.toUpperCase(),type:te.PeriodBack}:{...this._options.defTimeframe,type:te.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=this._options.useUserChartPreferences?q.defaults("chartproperties.mainSeriesProperties"):q.factoryDefaults("chartproperties.mainSeriesProperties");this._properties.mainSeriesProperties.merge(b),this._properties.mainSeriesProperties.hasChild("esdBreaksStyle")&&this._properties.mainSeriesProperties.removeProperty("esdBreaksStyle"),_=_||b.interval||"D",L.isValidStyle(f)||(f=L.isValidStyle(b.style)?b.style:A(M.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:q.factoryDefaults("chartproperties.mainSeriesProperties.lineStyle.styleType")}}),this._containsData&&this._properties.mainSeriesProperties.merge({showCountdown:!1}),d&&F(d)&&this._properties.timezone.setValue(d),this._tagsChanged=new s,this._disconnected=new s,this._reconnectBailout=new s,this._connected=new s,this.chartWidgetInitialized=new s,this._chartSession=new H(ChartApiInstance),this._metaInfoRepository=new $(this._chartSession),this._timingsMeter=null,this._isActive=this._options.isActive,this._options.container.subscribe((function(e){r._setElement(e)}),{callWithLast:!0});var w=function(){r.resize()};this._options.width.subscribe(w),this._options.height.subscribe(w),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(1369),i.e(7387),i.e(3596)]).then(i.bind(i,47806));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||m.modifiersFromEvent(e)===m.Modifiers.Alt&&e.stopPropagation()}function s(e){e.defaultPrevented||m.modifiersFromEvent(e)===m.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=G();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&&F(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(){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!==t&&e()})}));var s=new T({actionId:x.ChartScalesReset,label:r("Reset chart"),icon:i(27966),statName:"ResetChart",onExecute:this.GUIResetScales.bind(this),hotkeyGroup:this._hotkeys,hotkeyHash:g.Modifiers.Alt+82}),n=new T({actionId:x.ChartSeriesPriceScaleToggleInvertPriceScale,label:r("Invert scale"),statName:"Invert Scale",checkable:!0,onExecute:function(){t._model.invertPriceScale(t._model.mainSeries().priceScale())},hotkeyGroup:this._hotkeys,hotkeyHash:g.Modifiers.Alt+73}),o=new T({actionId:x.ChartSeriesPriceScaleToggleAutoScale,label:r("Auto (fits data to screen)"),checkable:!0,onExecute:function(){var e=t._model.mainSeries().priceScale();t._model.togglePriceScaleAutoScaleMode(e),o.update({checked:e.isAutoScale()})}}),a=new T({
actionId:x.ChartScalesToggleLockPriceToBarRatio,label:r("Lock price to bar ratio"),checkable:!0,statName:"ToggleLockScale",onExecute:function(){t._model.togglePriceScaleLockScaleMode(t._model.mainSeries().priceScale())}}),l=new T({actionId:x.ChartSeriesPriceScaleToggleRegular,label:r("Regular"),checkable:!0,statName:"ToggleRegularScale",onExecute:function(){var e=t._model.mainSeries().priceScale();t._model.setPriceScaleRegularScaleMode(e),l.update({checked:e.isRegular()})}}),c=new T({actionId:x.ChartSeriesPriceScaleTogglePercentage,label:r("Percent"),checkable:!0,statName:"TogglePercantage",onExecute:function(){t._model.togglePriceScalePercentageScaleMode(t._model.mainSeries().priceScale())},hotkeyGroup:this._hotkeys,hotkeyHash:g.Modifiers.Alt+80}),f=new T({actionId:x.ChartSeriesPriceScaleToggleIndexedTo100,label:r("Indexed to 100"),checkable:!0,statName:"ToggleIndexedTo100",onExecute:function(){t._model.togglePriceScaleIndexedTo100ScaleMode(t._model.mainSeries().priceScale())}}),v=new T({actionId:x.ChartSeriesPriceScaleToggleLogarithmic,label:r("Logarithmic"),statName:"ToggleLogScale",checkable:!0,onExecute:function(){t._model.togglePriceScaleLogScaleMode(t._model.mainSeries().priceScale())},hotkeyGroup:this._hotkeys,hotkeyHash:g.Modifiers.Alt+76}),S=new T({actionId:x.ChartUndo,label:r("Undo"),onExecute:function(){j("GUI","Undo"),t._model.undoHistory().undo()},disabled:!0,hotkeyGroup:this._hotkeys,hotkeyHash:g.Modifiers.Mod+90}),y=new T({actionId:x.ChartRedo,label:r("Redo"),onExecute:function(){j("GUI","Redo"),t._model.undoHistory().redo()},disabled:!0,hotkeyGroup:this._hotkeys,hotkeyHash:g.Modifiers.Mod+89});t.withModel(null,(function(){t._model.undoHistory().undoStack().onChange().subscribe(t,t.updateUndoRedo),t._model.undoHistory().redoStack().onChange().subscribe(t,t.updateUndoRedo)}));var b=new T({actionId:x.ChartChangeTimeZone,label:r("Time zone"),statName:"TimeZone"}),w=new T({actionId:x.ChartDialogsShowChangeSymbol,label:K(r("Change Symbol")),statName:"ChangeSymbol",onExecute:function(){N({defaultValue:""})}});u("symboledit.dialog_last_entry","");var C={actionId:x.ChartDialogsShowChangeInterval,label:K(r("Change interval")),statName:"ChangeInterval",onExecute:function(){B({initVal:V.interval.value(),selectOnInit:!0})}};!h.enabled("show_interval_dialog_on_key_press")||this.readOnly()||this._hideSymbolSearch||(C.shortcutHint=",",C.hotkeyGroup=this._hotkeys,C.hotkeyHash=188);var P,M=new T(C);if(!TradingView.onWidget()){if(this._options.addToWatchlistEnabled){const e={hotkeyGroup:this._hotkeys};P=new WatchListAction(this,e)}0}var L=new T({actionId:x.ChartTimeScaleReset,label:r("Reset time scale"),icon:i(27966),statName:"ResetScale",onExecute:function(){t.model().resetTimeScale()},hotkeyGroup:this._hotkeys,hotkeyHash:g.Modifiers.Mod+g.Modifiers.Alt+81}),A=new T({actionId:x.ChartRemoveAllIndicators,label:r("Remove indicators"),statName:"RemoveAllIndicators",onExecute:this.removeAllStudies.bind(this)}),E=new T({actionId:x.ChartRemoveAllLineTools,label:r("Remove drawings"),statName:"RemoveAllDrawingTools",
onExecute:this.removeAllDrawingTools.bind(this)}),R=new T({actionId:x.ChartRemoveAllIndicatorsAndLineTools,label:r("All indicators and drawing tools"),statName:"RemoveAllIndicatorsAndDrawingTools",onExecute:this.removeAllStudiesDrawingTools.bind(this)}),O=this.chartWidgetCollection(),F=new T({actionId:x.ChartApplyIndicatorsToAllCharts,label:r("Apply these indicators to entire layout"),statName:"ApplyIndicatorsToAllCharts",onExecute:function(){O.applyIndicatorsToAllCharts(t)}}),H={actionId:x.ChartDialogsShowInsertIndicators,label:K(r("Insert indicator")),statName:"InsertIndicator",onExecute:function(){t.showIndicators()}};this._options.indicatorsDialogShortcutEnabled&&(H.hotkeyGroup=this._hotkeys,H.hotkeyHash=191,this._hotkeys.add({handler:function(){this.showIndicators()}.bind(this),desc:"Show insert indicator dialog",hotkey:111}));var z,U=new T(H),G=new T({actionId:x.ChartDialogsShowCompareOrAddSymbol,label:K(r("Compare or Add Symbol")),statName:"CompareOrAddSymbol",onExecute:this.toggleCompareOrAdd.bind(this)}),q=new T({actionId:x.ChartObjectTreeShow,label:K(r("Object Tree")),statName:"ObjectsTree",onExecute:this.showObjectsTreePanelOrDialog.bind(this)}),Y=new T({actionId:x.ChartDialogsShowGeneralSettings,label:K(r("Settings")),icon:i(44368),statName:"ChartProperties",onExecute:function(){t.showGeneralChartProperties()}}),$=new T({actionId:x.ChartDialogsShowGeneralSettingsSymbolTab,label:K(r("Settings")),icon:i(44368),statName:"MainSeriesProperties",onExecute:function(){t.showGeneralChartProperties(p.symbol)}}),X=new T({actionId:x.ChartSelectedObjectToggleLocked,label:r("Lock/unlock"),statName:"ToggleLockSelectedObject",onExecute:this.toggleLockSelectedObject.bind(this)}),Z=new T({actionId:x.ChartSelectedObjectHide,label:r("Hide"),icon:i(48111),statName:"HideSelectedObject",onExecute:this.hideSelectedObject.bind(this)});h.enabled("property_pages")&&(z=new T({actionId:x.ChartSelectedObjectShowSettingsDialog,label:K(r("Settings")),icon:i(44368),statName:"EditSelectedObject",onExecute:function(){t.showSelectedSourcesProperties()}})),this.withModel(null,(function(){var e=t.model().mainSeries(),i=e.properties();i.priceAxisProperties.subscribe(t,t._updateScalesActions),e.priceScaleAboutToBeChanged().subscribe(t,(function(){i.priceAxisProperties.unsubscribeAll(t)})),e.priceScaleChanged().subscribe(t,(function(){i.priceAxisProperties.subscribe(t,t._updateScalesActions),t._updateScalesActions()}))}));var Q=new T({actionId:x.ChartPriceScaleToggleAutoScaleSeriesOnly,label:r("Scale price chart only"),checkable:!0,statName:"ScalePriceChartOnly"});Q.binder=new d(Q,this._properties.scalesProperties.scaleSeriesOnly,this.model(),oe);var ee=this.model().model();this._properties.scalesProperties.scaleSeriesOnly.listeners().subscribe(null,(function(){ee.recalculateAllPanes(),ee.invalidate(D.full())}));var te=new T({actionId:x.ChartDrawingToolbarToggleVisibility,label:r("Drawings toolbar"),checkable:!0,statName:"ToggleDrawingToolbar"}),ie=this._options.isDrawingToolbarVisible;ie&&(ie.subscribe((function(e){te.update({checked:e})}),{
callWithLast:!0}),te.update({onExecute:function(){ie.setValue(!ie.value())}}));var ne=new T({actionId:"",label:r("Stay in drawing mode"),checkable:!0,statName:"ToggleStayInDrawingMode"});ne.binder=new d(ne,I.properties().stayInDrawingMode,this.model(),ae),this._hotkeys.add({handler:function(){W()},desc:"Hide all drawing tools",hotkey:g.Modifiers.Mod+g.Modifiers.Alt+72});var ye=new T({actionId:x.ChartMarksToggleVisibility,label:r("Hide marks on bars"),checkable:!0,statName:"ToggleHideMarksOnBars"});ye.binder=new d(ye,I.hideMarksOnBars(),this.model(),le,(function(){I.hideMarksOnBars().setValue(this.value())}));const be=this.properties().scalesProperties;var we=new T({actionId:x.ChartPriceScaleLabelsToggleSeriesLastValueVisibility,label:r("Symbol last price label"),checkable:!0,checked:!1,statName:"ToggleSymbolLastValue"});we.binder=new d(we,be.showSeriesLastValue,this.model(),ce);var Ie=new T({actionId:x.ChartPriceScaleLabelsToggleSymbolNameLabelsVisibility,label:r("Symbol name label"),checkable:!0,checked:!1,statName:"ToggleSymbolLabels"});Ie.binding=new d(Ie,be.showSymbolLabels,this.model(),he);const Me=J((e,t)=>e||!1,be.showStudyLastValue,be.showFundamentalLastValue);var Le=new T({actionId:x.ChartPriceScaleLabelsToggleIndicatorsValueLabelsVisibility,label:r("Indicators value labels"),checkable:!0,checked:!1,statName:"ToggleStudiesAndFundamentalsPriceLabels"});Le.binder=new d(Le,Me,this.model(),null,()=>{const e=!Me.value();this.model().beginUndoMacro(ue),this.model().setProperty(be.showStudyLastValue,e,null),this.model().endUndoMacro()});const Ae=J((e,t)=>e||!1,be.showStudyPlotLabels,be.showFundamentalNameLabel);var Ee=new T({actionId:x.ChartPriceScaleLabelsToggleIndicatorsNameLabelsVisibility,label:r("Indicators name labels"),checkable:!0,checked:!1,statName:"ToggleStudiesAndFundamentalsNameLabels"});Ee.binding=new d(Ee,Ae,this.model(),null,()=>{const e=!Ae.value();this.model().beginUndoMacro(de),this.model().setProperty(be.showStudyPlotLabels,e,null),this.model().endUndoMacro()});var ke=this.model().mainSeries().properties().highLowAvgPrice,De=new T({actionId:x.ChartPriceScaleLabelsToggleHighLowPriceLabelsVisibility,label:r("High and low price labels"),checkable:!0,checked:!1,statName:"ToggleHighLowPriceLabels"});De.binding=new d(De,ke.highLowPriceLabelsVisible,this.model(),_e);var Ve=new T({actionId:x.ChartLinesToggleHighLowLinesVisibility,label:r("High and low price lines"),checkable:!0,checked:!1,statName:"ToggleHighLowPriceLine"});if(Ve.binding=new d(Ve,ke.highLowPriceLinesVisible,this.model(),pe),re){var Be=new T({actionId:x.ChartPriceScaleLabelsToggleAveragePriceLabelVisibility,label:r("Average close price label"),checkable:!0,checked:!1,statName:"ToggleAverageClosePriceLabel"});Be.binding=new d(Be,ke.averageClosePriceLabelVisible,this.model(),ge);var Ne=new T({actionId:x.ChartLinesToggleAverageLineVisibility,label:r("Average close price line"),checkable:!0,checked:!1,statName:"ToggleAverageClosePriceLine"});Ne.binding=new d(Ne,ke.averageClosePriceLineVisible,this.model(),me)}var Re=new T({
actionId:x.ChartPriceScaleToggleCountdownToBarCloseVisibility,label:r("Countdown to bar close"),checkable:!0,checked:!1,statName:"ToggleCountdown"});Re.binder=new d(Re,this.model().mainSeries().properties().showCountdown,this.model(),fe);var Oe=new T({actionId:x.ChartPriceScaleToggleAddOrderPlusButtonVisibility,label:r("Plus button"),checkable:!0,checked:se.value(),statName:"ToggleAddOrderPlusButton"});Oe.binder=new d(Oe,se,this.model(),ve);var Fe=null;this._options.goToDateEnabled&&(Fe=new T({actionId:x.ChartDialogsShowGoToDate,label:K(r("Go to date")),statName:"GoToDate",onExecute:function(){var e=t._chartWidgetCollection.activeChartWidget.value();_(e)},hotkeyGroup:this._hotkeys,hotkeyHash:g.Modifiers.Alt+71}));var We=new T({actionId:x.ChartDialogsShowSymbolInfo,label:K(r("Symbol info")),icon:i(69061),checkable:!1,statName:"SymbolInfo",onExecute:function(){var e=t.model().mainSeries().symbol(),i=t.model().mainSeries().symbolInfo(),s=t.model().model().availableUnits(),r=t.model().model().unitConversionEnabled();k(e,{symbolInfo:i,showUnit:r,unitDescription:e=>s.description(e)})}}),He=new T({actionId:x.ChartPriceScaleMergeAllScalesToLeft,label:Ce,statName:"MergeAllScalesToLeft",onExecute:function(){t.model().mergeAllScales("left")}}),ze=new T({actionId:x.ChartPriceScaleMergeAllScalesToRight,label:Pe,statName:"MergeAllScalesToRight",onExecute:function(){t.model().mergeAllScales("right")}}),Ue=new T({actionId:x.ChartPriceScaleMoveToLeft,label:Te,statName:"MoveScaleToLeft",onExecute:function(){t.model().mergeAllScales("left")}}),je=new T({actionId:x.ChartPriceScaleMoveToRight,label:xe,statName:"MoveScaleToRight",onExecute:function(){t.model().mergeAllScales("right")}});var Ge=h.enabled("show_object_tree");if(this._actions={chartProperties:Y,mainSeriesPropertiesAction:$,timeScaleReset:L,chartReset:s,invertSeriesScale:n,logSeriesScale:v,autoSeriesScale:o,lockSeriesScale:a,regularSeriesScale:l,percentSeriesScale:c,indexedTo100SeriesScale:f,compareOrAdd:G,paneObjectTree:Ge?q:void 0,insertIndicator:U,symbolSearch:w,showSymbolInfoDialog:We,changeInterval:M,seriesHide:Z,studyHide:Z,lineToggleLock:X,lineHide:Z,scaleSeriesOnly:Q,drawingToolbarAction:te,stayInDrawingModeAction:ne,hideAllMarks:ye,applyTimeZone:b,showCountdown:Re,addPlusButton:Oe,showSeriesLastValue:we,showHighLowPriceLabels:De,showHighLowPriceLines:Ve,showAverageClosePriceLabel:Be,showAverageClosePriceLine:Ne,showSymbolLabelsAction:Ie,showStudyLastValue:Le,showStudyPlotNamesAction:Ee,undo:S,redo:y,mergeLeftScalesAction:He,mergeRightScalesAction:ze,moveScaleToLeft:Ue,moveScaleToRight:je,moveChartAction:void 0},e&&(this._actions.scalesProperties=e),P&&(this._actions.addToWatchlist=P),h.enabled("show_source_code")&&(this._actions.viewSourceCode=new TVAction({label:K(r("Source code")),statName:"OpenSelectedObjectSource",onExecute:this.openSelectedObjectSource.bind(this)})),!TradingView.onWidget()&&h.enabled("text_notes")&&(this._actions.addToTextNotes=void 0),null!==Fe&&(this._actions.gotoDate=Fe),this.createSessionBreaksActions(),!this.readOnly()){var qe=new T({
actionId:x.ChartSelectedObjectRemove,label:r("Remove"),icon:i(78679),statName:"RemoveSelectedObject",onExecute:function(){var e=this._chartWidgetCollection.activeChartWidget.value();e||(e=this),e.removeSelectedSources()}.bind(this),hotkeyGroup:this._hotkeys,hotkeyHash:m.isMacKeyboard?8:46});this._hotkeys.add({handler:function(){this.removeSelectedSources()}.bind(this),desc:"Remove selected source",hotkey:m.isMacKeyboard?46:8}),this._actions.paneRemoveAllStudies=A,this._actions.paneRemoveAllDrawingTools=E,this._actions.paneRemoveAllStudiesDrawingTools=R,this._actions.applyStudiesToAllCharts=F,this._actions.studyRemove=qe,this._actions.lineRemove=qe,h.enabled("property_pages")&&(this._actions.format=z)}this._actions.showPriceLine=new T({actionId:x.ChartLinesToggleSeriesPriceLineVisibility,label:r("Price line"),checkable:!0,statName:"TogglePriceLine"}),this._actions.showPriceLine.binding=new d(this._actions.showPriceLine,this.model().mainSeries().properties().showPriceLine,this.model(),Se),this.readOnly()||(this._hotkeys.add({desc:"Draw Horizontal Line here",hotkey:g.Modifiers.Alt+72,handler:function(){t.activePaneWidget&&t.activePaneWidget.drawRightThere("LineToolHorzLine")}}),this._hotkeys.add({desc:"Draw Horizontal Ray here",hotkey:g.Modifiers.Alt+74,handler:function(){t.activePaneWidget&&t.activePaneWidget.drawRightThere("LineToolHorzRay")}}),this._hotkeys.add({desc:"Draw Vertical Line here",hotkey:g.Modifiers.Alt+86,handler:function(){t.activePaneWidget&&t.activePaneWidget.drawRightThere("LineToolVertLine")}}),this._hotkeys.add({desc:"Draw Cross Line here",hotkey:g.Modifiers.Alt+67,handler:function(){t.activePaneWidget&&t.activePaneWidget.drawRightThere("LineToolCrossLine")}}),this._hotkeys.add({desc:"Draw Trend Line",hotkey:g.Modifiers.Alt+84,handler:function(){t.activePaneWidget&&I.tool.setValue("LineToolTrendLine")}}),this._hotkeys.add({desc:"Draw Fib Retracement",hotkey:g.Modifiers.Alt+70,handler:function(){t.activePaneWidget&&I.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 T&&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 T&&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()===c.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}connect(){this._handler=function(e){this._onData(e)}.bind(this),this._boundOnChartSessionIsConnectedChanged=this._onChartSessionIsConnectedChanged.bind(this),this._chartSession.isConnected().subscribe(this._boundOnChartSessionIsConnectedChanged),this._chartSession.criticalError().subscribe(this,this._onChartSessionCriticalError),this._chartSession.connect(this._handler)}finishInitWithoutConnect(){this._chartSession.disable(),this._init(),this.chartWidgetInitialized.fire()}reconnect(){this._chartSession.disconnect(),this._chartSession.connect()}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 T({actionId:x.ChartSessionBreaksToggleVisibility,label:r("Session breaks"),checkable:!0,statName:"ToggleSessionBreaks"});e.binder=new d(e,this._model.chartModel().sessions().properties().graphics.vertlines.sessBreaks.visible,this.model(),we),this._actions.sessionBreaks=e}updateActionForIntradayOnly(e){e&&e instanceof T&&e.update({disabled:this.model().mainSeries().isDWM()})}containsVolume(){return this.model().dataSources().some((function(e){
return e instanceof v&&"Volume"===e.metaInfo().shortId}))}containsStudyByPredicate(e){return!!this._model&&this._model.dataSources().some((function(t){if(!(t instanceof v))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()}chartSession(){return this._chartSession}onLineCancelled(){I.resetToCursor()}_startSpinner(e){this._spinner||e&&(this._spinner=(new U).spin(e))}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){z.mergeDefaultsOverrides(e),this._applyStudiesOverrides()}setActive(e){this._isActive=e,G().isTouch&&(e&&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}trackTime(){return this._chartWidgetCollection.lock.trackTime}isMultipleLayout(){return X(this._chartWidgetCollection.layout.value())}selectPointMode(){return this._model.model().selectPointMode()}cancelRequestSelectPoint(){this._model.model().cancelRequestSelectPoint()}requestSelectPoint(e,t){var i=this;return new Promise((function(s,r){if(a()){I.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||(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=ie();this._hintDefferedPromise=e
;var t=this;Promise.all([i.e(5514),i.e(3402),i.e(6166)]).then(i.bind(i,5015)).then((function(i){e.resolve(new i.ChartEventHintRenderer(t._chartWidgetCollection.getContainer()))}))}return this._hintDefferedPromise?l(this._hintDefferedPromise).promise:null}_showHint(e){if(h.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()}}},21269:(e,t,i)=>{"use strict";var s=i(88537).ensureNotNull,r=i(59572).applyOverridesToStudy,n=i(67072),o=i(68582),a=o.LineDataSourceApi,l=o.isLineToolRiskReward,c=i(67e3).StudyApi,h=i(82650).SeriesApi,d=i(32112).SelectionApi,u=i(56233).PaneApi,p=i(65862).createDwmAligner,_=i(29823).Interval,m=i(16906).supportedLineTools,g=i(65645).showTooManyStudiesNotice,f=i(80643),v=f.isNumber,S=f.deepEquals,y=i(14291).createLineToolProperties,b=i(14291).prepareLineToolPropertiesByOwnerSource,w=i(45973).lineToolEntityInfo,C=i(7099).LineToolsGroupControllerApi,P=i(65284).RemoveSourcesCommand;const{isLineDrawnWithPressedButton:T,isLineToolFinishRequiredWhenCreatedByApi:x}=i(44601),I=i(77216).EnvironmentState;var M=i(37786).ChartWidgetApiBase,L=i(85733);i(51768).trackEvent;function A(e,t){return t.map((function(t){return e.dataSourceForId(t)}))}e.exports=class extends M{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 u(e,this._chartWidget),this._panes.set(e,t)),t}_getStudyApi(e){var t=this._studies.get(e);return void 0===t&&(t=new c(e,this._chartWidget),this._studies.set(e,t)),t}_getLineDataSourceApi(e){var t=this._lineDataSources.get(e);return void 0===t&&(t=new a(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()}symbolExt(){var e=this._chartWidget.model().mainSeries().symbolInfo();return e?{
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}:null}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=A(this._chartWidget.model().model(),e);return this._chartWidget.model().availableZOrderOperations(t)}sendToBack(e){var t=A(this._chartWidget.model().model(),e);this._chartWidget.model().sendToBack(t)}bringToFront(e){var t=A(this._chartWidget.model().model(),e);this._chartWidget.model().bringToFront(t)}insertAfter(e,t){var i=this._chartWidget.model().model(),s=A(i,e),r=i.dataSourceForId(t);this._chartWidget.model().insertAfter(s,r)}insertBefore(e,t){var i=this._chartWidget.model().model(),s=A(i,e),r=i.dataSourceForId(t);this._chartWidget.model().insertBefore(s,r)}bringForward(e){var t=A(this._chartWidget.model().model(),e);this._chartWidget.model().bringForward(t)}sendBackward(e){var t=A(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(w).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 P(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 d(this._chartWidget.model().model())),this._selectionApi}createStudyTemplate(e){return this._chartWidget.model().model().studyTemplate(e.saveSymbol,e.saveInterval)}drawOnAllCharts(e){L.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))}getVisibleRange(){var e={from:0,to:0},t=this._chartWidget.model().timeScale();if(t.isEmpty())return e;var i=t.coordinateToVisibleIndex(0),s=t.coordinateToVisibleIndex(t.width()-1),r=this._convertIndexToPublicTime(s);return null===r||(e.from=this._convertIndexToPublicTime(Math.max(t.points().firstIndex(),i)),e.to=r),e}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()||!_.isDWM(s))return e;var r=p(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);if(e>l&&o===s.lastIndex())(c=i.syncModel().distance(l,e)).success&&(a.index=a.index+c.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 _=d.pointsCount();if(_!==c.length&&-1!==_)throw new Error("Wrong points count for "+i.shape+". Required "+_);for(var g=new I(void 0,!0),f=T(s.name),v=1;v{"use strict";var s=i(2872),r=i(88537).assert,n=i(28353).t,o=i(81836).createDeferredPromise,a=(n=i(28353).t,i(24980).TranslatedString),l=i(42060).layouts,c=i(49483).supportTouch,h=i(52940).createUndoHistory,d=i(85733),u=i(25760),p=i(68335),_=i(76422),m=i(67337),g=i(52714),f=i(98125).getLogger("Chart.ChartWidgetCollection"),v=i(54475).preventDefaultForContextMenu,S=i(16654),y=i(64237).rangesAreEqual,b=i(13323).GeneralChartPropertiesRenderer,w=i(9315).setLastUsedResolution,C=i(42120).CompareDialogRenderer,P=i(84015).isOnMobileAppPage,T=i(10480),x=i(37667),I=i(8578),M=I.applyIndicatorsToAllChartsImpl,L=I.applyIndicatorToAllChartsImpl,A=I.lineToolsAndGroupsDTOsImpl,E=I.getStateForChartImpl,k=I.resetLineToolsInvalidatedImpl,D=I.applyLineToolUpdateNotificationImpl,V=I.createClipboardHandler,B=I.chartsSymbolsImpl,N=I.updateLayoutImpl,R=I.computeContentBoxImpl,O=(I.getVisuallyAdjacentDefImpl,
I.setLayoutImpl),F=I.removeChartWidgetSubscriptionsImpl,W=I.createChartWidgetImpl,H=I.generateNewChartId,z=I.syncCrosshairImpl,U=I.createBroadcastChannel,j=I.destroyBroadcastChannel,G=I.syncScrollImpl,q=I.allInitialModelsCreated,Y=I.allInitialSymbolsResolved,K=I.applyThemeImpl,$={saveChartEnabled:!0,takeScreenshotEnabled:!0,publishedChartsEnabled:!0},X=new a("symbol lock",n("symbol lock")),Z=new a("interval lock",n("interval lock")),J=new a("date range lock",n("date range lock")),Q=new a("track time",n("track time")),ee=new a("change symbol",n("change symbol")),te=new a("change resolution",n("change resolution")),ie=new a("change series style",n("change series style"));n("Bar Replay isn't available for this chart type. Do you want to exit Bar Replay?");e.exports=function(e){var t=this,n=Object.assign({},$,e),a=new g,se=n.readOnly||!1,re=[],ne=0,oe=new g,ae=new g,le=new g,ce="s",he=new g(null),de=new Map,ue=new g([]),pe=new g,_e=[],me=!1,ge=!1,fe=new g(!1),ve=new g(null),Se=new g(!1),ye=new g(!1),be=new g(!1),we=new g(!1),Ce=new g(!1);Ce.subscribe(Ct),he.subscribe(Pt);var Pe=new g(TVSettings.getBool("chart.syncCrosshair",!0)),Te=u.createGroup({desc:"Layout"}),xe=null,Ie=null,Me=null,Le=null;if(window.TVD){var Ae=window.TVD.crosshairSyncEnabled;Ae?(Ae.value()&&(Me=U(Qe)),Le=Ae.subscribe(e=>{e?Me=U(Qe):(j(Qe()),Me=null)})):Me=U(Qe)}var Ee=Pe.value();Pe.subscribe((function(e){Ee=e=!!e,TVSettings.setValue("chart.syncCrosshair",e);for(var t=0;t{var i=n.resizerBridge,r=[i.container.spawn(),i.width.spawn(),i.height.spawn()],o=i.container.value(),a=new s,l=function(){a.fire()};r.forEach((function(e){e.subscribe(l)})),Ye=new e(qe.value(),a,(function(){var e=o.getBoundingClientRect(),t=R(Qe());return t.top=e.top+t.top,t.left=e.left+t.left,t}),t,ChartApiInstance,Ne,n.seriesControlBar),Ke=function(){null!==Ye&&(Ye.destroy(),Ye=null,qe.value().remove(),qe.setValue(null)),r.forEach((function(e){e.destroy()})),a.destroy()
}}));var $e=new b(t),Xe=new C(t);function Ze(){Ge.setValue(re.some(e=>{const t=e.chartWidget.lineToolsSynchronizer();return null!==t&&t.hasChanges().value()}))}function Je(e){return I.checkProFeatureImpl(Qe(),e)}function Qe(){return{undoHistory:Fe,chartWidgetsDefs:re,chartsCountToSave:et,actualLayoutCount:tt,savedChartWidgetOptions:_e,activeChartWidget:a,options:n,parent:We,toastsFactory:null,crosshairLockRaw:Ee,crossHairSyncBroadcast:Me,setChartStorageNotificationSubscription:e=>{Ie=e},maximizedChartDef:Be,setMaximized:ot,layoutTemplate:le,widthWV:De,heightWV:Ve,checkProFeature:Je,lineToolsSynchronizerHasChanges:Ge,recalcHasChanges:Ze,onZoom:Ue,onScroll:je,layoutType:ce,layoutWV:ke,setLayoutType:e=>{ce=e},isPhoneSize:fe,viewMode:pe,updateViewMode:lt,loadingContent:me,setLoadingContent:e=>{me=e},initialLoading:ge,inlineChartsCount:ae,updateWatchedValue:ct,checkAllPendingModelsAlreadyCreated:at,readOnly:se,symbolLock:ye,customLegendWidgetsFactoriesMap:Ot,globalDetachable:oe,saveChartService:xe,customSources:Rt,updateActivityView:ht,chartWidgetCreatedDelegate:ze,sizingState:ve,currentLayoutResizeAction:he,allLayoutSizesState:de,splitters:ue,trackTimeLock:we,widgetOptions:Ne,dateRangeLock:Ce,bottomToolbar:qe,layoutSizesChanged:Se,subscribeToCompletedEventForDateRangeSync:yt}}function et(){return tt()}function tt(){return l[ce].count}function it(e,t,i,s,r){return E(Qe(),e,t,i,s,r)}function st(){N(Qe())}function rt(e){return e.rdState.owner.value()!==e}function nt(e){return O(Qe(),e,t)}function ot(e){Be.value()!==e&&(Be.setValue(e),nt(ce))}function at(){re.every(e=>e.chartWidget.hasModel())&&(ct(),_.emit("layout_changed"))}function lt(){"s"===ce||Be.value()?pe.setValue((void 0).ForceFullscreen):pe.setValue((void 0).Multichart)}function ct(){var e=Math.min(le.value().count,re.length)-1;if(e<0)a.deleteValue();else{var t=ne;t<0&&(t=0),t>e&&(t=e),a.setValue(re[t].chartWidget)}}function ht(){for(var e=re.length;e--;){var t=e===ne;re[e].container.value().classList.toggle("active",t),re[e].container.value().classList.toggle("inactive",!t)}}function dt(e){}ve.subscribe(()=>st()),De.subscribe(st),Ve.subscribe(st),this.updateLayout=st;var ut=new s,pt=new g,_t=new g([]),mt=null;function gt(e){var t=e.mainSeries().properties();t.style.subscribe(null,ft),ft(t.style),e.model().onSelectedSourceChanged().subscribe(null,vt),Ce.value()&&(bt(e),xt()),vt(e.selection().allSources())}function ft(e){pt.setValue(e.value())}function vt(){var e=mt.model();_t.setValue(e.selection().allSources())}a.subscribe((function(e){if(e){for(var t,i=re.length;i--;)if(re[i].chartWidget===e){t=i;break}if(!isFinite(t))throw new Error("Cannot make detached ChartWidget active");if(ne!==t){Be.value()&&(rt(re[t])||Be.setValue(re[t])),ne=t,ht();for(i=re.length;i--;)re[i].chartWidget!==e&&re[i].chartWidget.setActive(!1);Ht(),e.setActive(!0)}!function(e){if(mt!==e){if(mt&&(mt.modelCreated().unsubscribe(null,gt),mt.hasModel())){var t=mt.model();Ce.value()&&wt(t),t.mainSeries().properties().style.unsubscribe(null,ft),
t.model().onSelectedSourceChanged().unsubscribe(null,vt),mt=null}e&&(mt=e,e.hasModel()?gt(e.model()):e.modelCreated().subscribe(null,gt))}}(e)}}),{callWithLast:!0});var St=new Map;function yt(e,t){var i=e.id();if(!St.has(i)){var s=function(){St.delete(e.id()),xt(t?e:void 0)};e.model().mainSeries().dataEvents().completed().subscribe(null,s,!0),St.set(i,{cw:e,callback:s})}}function bt(e){e.timeScale().visibleBarsStrictRangeChanged().subscribe(null,Tt)}function wt(e){e.timeScale().visibleBarsStrictRangeChanged().unsubscribe(null,Tt),St.forEach((function(e){var t=e.cw,i=e.callback;t.model().mainSeries().dataEvents().completed().unsubscribe(null,i)})),St.clear()}function Ct(e){var t=a.value();if(t&&t.hasModel()){var i=t.model();e?(bt(i),xt()):wt(i)}}function Pt(e){Ce.value()&&null===e&&xt()}function Tt(e,t){xt()}function xt(e){if(Ce.value()&&null===he.value()){var t=a.value(),i=t.model().mainSeries();if(x.isTimeBasedStyle(i.style())){var s=t.model().timeScale(),r=s.visibleBarsStrictRange();if(null!==r){var n=r.firstBar(),o=Math.min(r.lastBar(),s.points().lastIndex()),l=s.indexToTimePoint(n);null===l&&i.endOfData()&&(l=s.indexToTimePoint(s.points().firstIndex()));var c=s.indexToTimePoint(o);if(null!==l&&null!==c){var h=i.barCloseTime();null!==h&&hnull===Be.value()?null:Be.value().chartWidget,destroy:function(){if(Et.fire(),Nt(!1),null!==Ke&&(Ke(),Ke=null),F(Qe()),Ce.unsubscribe(Ct),he.unsubscribe(Pt),re.forEach((function(e){void 0!==e.timingsMeter&&e.timingsMeter.destroy(),e.chartWidget.destroy()})),n.resizerBridge.remove(),ue.value().forEach(e=>{e.mouseHandler.destroy(),e.mouseListener.destroy()}),window.removeEventListener("resize",st),d.tool.unsubscribe(Ht),d.tool.unsubscribe(zt),He.resolve(),We.remove(),Rt.clear(),Ot.clear(),Te.destroy(),Ie&&Ie.destroy(),Ft&&Ft.destroy(),window.TVD){const e=window.TVD.crosshairSyncEnabled;e&&e.unsubscribe(Le),j(Qe())}},onAboutToBeDestroyed:Et,layout:ke.readonly(),setLayout:nt,activeChartWidget:a,viewMode:pe,activeChartStyle:pt.readonly(),setChartStyleToWidget:function(e,t){t||(t=a.value()),t&&function(e,t){var i=e.model(),s=i.mainSeries().properties().style;i.setChartStyleProperty(s,t,ie)}(t,e)},selectedSources:_t.readonly(),metaInfo:Oe,state:function(e,i,s,r){for(var n=[],o=et(),a=0;a{c.layoutsSizes[t]=e}),c},lineToolsAndGroupsDTOs:function(){return A(Qe())},resetLineToolsInvalidated:function(e,t){return k(Qe(),e,t)},applyLineToolUpdateNotification:D.bind(null,re),readOnly:function(){return se},onZoom:function(){return Ue},onScroll:function(){return je},resizerBridge:function(){return n.resizerBridge},lock:{symbol:ye,setSymbolLockWithUndo:function(e){if(e!==ye.value()){if(Fe.beginUndoMacro(X),e)for(var t=a.value(),i=t.getSymbol(),s=0;sz(Qe(),e,t,i,s),syncScroll:function(e,t){return G(Qe(),e,t)},setSymbolAll:Mt,clearChartMetaInfo:function(){Oe.id.setValue(null),Oe.uid.setValue(void 0),Oe.name.setValue(void 0)},takeScreenshot:I.takeScreenshot.bind(this,n.snapshotUrl,this),takeServerScreenshot:I.takeServerScreenshot.bind(this,n.snapshotUrl,this),loadContent:Wt,purgeUnusedWidgets:function(){for(var e=l[ce].count;e1},applyIndicatorToAllCharts:function(e,t,i,s){L(Qe(),e,t,i,s)},setActive:Nt,inlineChartsCount:ae.readonly(),revertToInline:function(){ot(null);for(var e=0;eSe}),Wt(n.content,!0),ke.subscribe((function(){ht()})),ke.hook=function(e){return e===this.value()?e:Je(e)},se&&(ke.writeLock=!0),window.addEventListener("resize",st);var Ut=0;function jt(){0===--Ut&&_.emitOnce("onChartReady")}if(re.forEach((function(e){if(e){Ut++;var t=e.chartWidget;t.withModel(null,(function(){n.metaInfo&&t.model().model().setChartSaveTime(1e3*n.metaInfo.lastModified);var e=t.model().mainSeries();if(e.bars().size()>0||e.isStatusBad())jt();else{var i=e.dataEvents(),s=function(){jt(),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)}}))}})),c()){var Gt=d.tool.setValue;d.tool.setValue=function(){t.selectedSources.value()&&t.activeChartWidget.value().model().lineBeingCreated()&&t.activeChartWidget.value().model().cancelCreatingLine(),Gt.apply(d.tool,arguments)}}q(Qe()).then(Y).then((function(){window.saver&&window.is_authenticated&&n.widgetOptions.justCloned&&window.saver.saveChartSilently()})).catch(f.logError.bind(f))}},97056:(e,t,i)=>{"use strict";i.d(t,{ContextMenuManager:()=>s});var s,r=i(28296),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(5514),i.e(2e3),i.e(3466),i.e(7427),i.e(1112),i.e(6909),i.e(5998),i.e(3520),i.e(2849),i.e(1075),i.e(7210),i.e(1584)]).then(i.bind(i,46608));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(52714),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)}}},73591:(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={}))},33225:(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})},12409:(e,t,i)=>{"use strict";i.d(t,{getFavoriteDrawingToolbarPromise:()=>o,createFavoriteDrawingToolbar:()=>a});i(28353);var s=i(18387);let r=null,n=null;function o(){return n}function a(){null===n&&(n=Promise.all([i.e(5514),i.e(9129),i.e(2e3),i.e(6363),i.e(3466),i.e(7836),i.e(8463),i.e(3921),i.e(7427),i.e(1112),i.e(6909),i.e(5998),i.e(6416),i.e(7419),i.e(3520),i.e(9042),i.e(323),i.e(2849),i.e(880),i.e(1075),i.e(9505),i.e(1890),i.e(1784),i.e(7210),i.e(2306)]).then(i.bind(i,56588)).then(({FavoriteDrawingToolbar:e})=>(r=null!==r?r:new e({left:window.innerWidth/2,top:s.HEADER_TOOLBAR_HEIGHT_EXPANDED+61}),r)))}},41847:(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={}))},23653:(e,t,i)=>{"use strict";i.d(t,{InvalidationLevel:()=>s,InvalidationMask:()=>a,defaultInvalidationLevel:()=>o});var s,r=i(88537);class n{constructor(e=o){this._paneInvalidationLevel=o,this._leftPriceScalesInvalidationMap=new Map,
this._rightPriceScalesInvalidationMap=new Map,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)}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)}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))})}}!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._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)}),e._invalidatedPanes.forEach((e,t)=>{this._invalidatedPanes.has(t)||this._invalidatedPanes.set(t,new n(this._invalidationLevel)),(0,r.ensureDefined)(this._invalidatedPanes.get(t)).merge(e)}),this._timeAxisInvalidationLevel=Math.max(this._timeAxisInvalidationLevel,e._timeAxisInvalidationLevel);for(let t=0;t{"use strict";i.d(t,{lastMouseOrTouchEventInfo:()=>r,setLastMouseOrTouchEventInfo:()=>n});let s=(0,i(49483).supportTouch)()?{isTouch:!0,stylus:!1}:{isTouch:!1};function r(){return s}function n(e){s=e.isTouch?{isTouch:!0,stylus:e.stylus}:{isTouch:!1}}},37416:(e,t,i)=>{"use strict";i.d(t,{layoutInitialSizingState:()=>r});var s=i(3308);i(88537);function r(e){return function e(t){return t.map(i=>{if((0,s.default)(i))return{percent:1/t.length};{const s=i.slice(1);return{percent:1/t.length,substate:e(s)}}})}(e.slice(1))}},42060:(e,t,i)=>{"use strict";i.d(t,{layouts:()=>r,isMultipleLayout:()=>n});i(38069),i(37416);let s;s={};const r={...{s:{title:"1 chart",count:1,layoutType:"s",sizer:(e,t)=>{if(0!==t)throw new RangeError("invalid index");return e},splitters:()=>[],resizeApplier:(e,t,i,s,r)=>r,syncSublayoutsBySplitter:(e,t)=>t,expression:["h",0]}},...s};function n(e){return!function(e){return"s"===e}(e)}},7099:(e,t,i)=>{"use strict";i.d(t,{LineToolsGroupControllerApi:()=>o});var s=i(59555),r=i(88537),n=i(14291);class o{constructor(e,t){this._controller=e,this._model=t}createGroupFromSelection(){return this._controller.createGroupFromSelection().id}removeGroup(e){const t=(0,r.ensureDefined)(this._groupById(e));this._controller.removeGroup(t)}groups(){return this._controller.groups().map(e=>e.id)}shapesInGroup(e){const t=(0,r.ensureDefined)(this._groupById(e));return(0,s.sortSources)(t.lineTools()).map(e=>e.id())}excludeShapeFromGroup(e,t){const i=(0,r.ensureDefined)(this._groupById(e)),s=(0,r.ensureNotNull)(this._model.dataSourceForId(t));(0,r.assert)((0,n.isLineTool)(s),"Passed shapeId is not a line tool"),this._controller.excludeLineToolFromGroup(i,s)}addShapeToGroup(e,t){const i=(0,r.ensureDefined)(this._groupById(e)),s=(0,r.ensureNotNull)(this._model.dataSourceForId(t));(0,r.assert)((0,n.isLineTool)(s),"Passed shapeId is not a line tool"),this._controller.addLineToolToGroup(i,s)}availableZOrderOperations(e){
const t=(0,r.ensureDefined)(this._groupById(e));return this._controller.availableZOrderOperations(t)}bringToFront(e){const t=(0,r.ensureDefined)(this._groupById(e));this._controller.bringToFront(t)}bringForward(e){const t=(0,r.ensureDefined)(this._groupById(e));this._controller.bringForward(t)}sendBackward(e){const t=(0,r.ensureDefined)(this._groupById(e));this._controller.sendBackward(t)}sendToBack(e){const t=(0,r.ensureDefined)(this._groupById(e));this._controller.sendToBack(t)}insertAfter(e,t){const i=(0,r.ensureDefined)(this._groupById(e)),s=(0,r.ensureNotNull)(this._groupById(t)||this._model.dataSourceForId(t));this._controller.insertAfter(i,s)}insertBefore(e,t){const i=(0,r.ensureDefined)(this._groupById(e)),s=(0,r.ensureNotNull)(this._groupById(t)||this._model.dataSourceForId(t));this._controller.insertBefore(i,s)}groupVisibility(e){return(0,r.ensureDefined)(this._groupById(e)).visibility()}setGroupVisibility(e,t){const i=(0,r.ensureDefined)(this._groupById(e));this._controller.setGroupVisibility(i,t)}groupLock(e){return(0,r.ensureDefined)(this._groupById(e)).locked()}setGroupLock(e,t){const i=(0,r.ensureDefined)(this._groupById(e));this._controller.setGroupLock(i,t)}getGroupName(e){return(0,r.ensureDefined)(this._groupById(e)).name()}setGroupName(e,t){const i=(0,r.ensureDefined)(this._groupById(e));this._controller.setGroupName(i,t)}canBeGroupped(e){const t=e.map(e=>(0,r.ensureNotNull)(this._model.dataSourceForId(e)));return!t.some(e=>!(0,n.isLineTool)(e))&&this._controller.canBeGroupped(t)}_groupById(e){return this._controller.groups().find(t=>t.id===e)}}},54386:(e,t,i)=>{"use strict";i.d(t,{MouseEventHandler:()=>h});var s=i(49483),r=i(88537),n=i(80643),o=i(80007),a=i(71413);const l=s.isSafari?"click":"auxclick",c={treatVertTouchDragAsPageScroll:!1,treatHorzTouchDragAsPageScroll:!1};class h{constructor(e,t,i){this._clickCount=0,this._clickTimeoutId=null,this._clickPosition={x:Number.NEGATIVE_INFINITY,y:Number.POSITIVE_INFINITY},this._tapCount=0,this._tapTimeoutId=null,this._tapPosition={x:Number.NEGATIVE_INFINITY,y:Number.POSITIVE_INFINITY},this._longTapTimeoutId=null,this._longTapActive=!1,this._mouseMoveStartPosition=null,this._touchMoveStartPosition=null,this._touchMoveExceededManhattanDistance=!1,this._cancelClick=!1,this._cancelTap=!1,this._unsubscribeOutsideMouseEvents=null,this._unsubscribeOutsideTouchEvents=null,this._unsubscribeMobileSafariEvents=null,this._unsubscribeMousemove=null,this._unsubscribeRootMouseEvents=null,this._unsubscribeRootTouchEvents=null,this._startPinchMiddlePoint=null,this._startPinchDistance=0,this._pinchPrevented=!1,this._preventTouchDragProcess=!1,this._mousePressed=!1,this._lastTouchEventTimeStamp=0,this._activeTouchId=null,this._acceptMouseLeave=!s.CheckMobile.iOS(),this._onFirefoxOutsideMouseUp=e=>{this._mouseUpHandler(e)},this._onMobileSafariDoubleClick=e=>{if(this._firesTouchEvents(e)){const t=this._makeCompatEvent(e);if(++this._tapCount,this._tapTimeoutId&&this._tapCount>1){const{manhattanDistance:i}=this._touchMouseMoveWithDownInfo(u(e),this._tapPosition)
;i<30&&!this._cancelTap&&this._processTouchEvent(t,this._handler.doubleTapEvent),this._resetTapTimeout()}}else{const t=this._makeCompatEvent(e);if(++this._clickCount,this._clickTimeoutId&&this._clickCount>1){const{manhattanDistance:i}=this._touchMouseMoveWithDownInfo(u(e),this._clickPosition);i<5&&!this._cancelClick&&this._processMouseEvent(t,this._handler.mouseDoubleClickEvent),this._resetClickTimeout()}}},this._target=e,this._handler=t,this._options=(0,n.merge)((0,n.clone)(c),i||{}),this._init()}destroy(){null!==this._unsubscribeOutsideMouseEvents&&(this._unsubscribeOutsideMouseEvents(),this._unsubscribeOutsideMouseEvents=null),null!==this._unsubscribeOutsideTouchEvents&&(this._unsubscribeOutsideTouchEvents(),this._unsubscribeOutsideTouchEvents=null),null!==this._unsubscribeMousemove&&(this._unsubscribeMousemove(),this._unsubscribeMousemove=null),null!==this._unsubscribeRootMouseEvents&&(this._unsubscribeRootMouseEvents(),this._unsubscribeRootMouseEvents=null),null!==this._unsubscribeRootTouchEvents&&(this._unsubscribeRootTouchEvents(),this._unsubscribeRootTouchEvents=null),null!==this._unsubscribeMobileSafariEvents&&(this._unsubscribeMobileSafariEvents(),this._unsubscribeMobileSafariEvents=null),this._clearLongTapTimeout(),this._resetClickTimeout()}_mouseEnterHandler(e){this._unsubscribeMousemove&&this._unsubscribeMousemove();const t=this._mouseMoveHandler.bind(this);if(this._unsubscribeMousemove=()=>{this._target.removeEventListener("mousemove",t)},this._target.addEventListener("mousemove",t),this._firesTouchEvents(e))return;const i=this._makeCompatEvent(e);this._processMouseEvent(i,this._handler.mouseEnterEvent),this._acceptMouseLeave=!0}_resetClickTimeout(){null!==this._clickTimeoutId&&clearTimeout(this._clickTimeoutId),this._clickCount=0,this._clickTimeoutId=null,this._clickPosition={x:Number.NEGATIVE_INFINITY,y:Number.POSITIVE_INFINITY}}_resetTapTimeout(){null!==this._tapTimeoutId&&clearTimeout(this._tapTimeoutId),this._tapCount=0,this._tapTimeoutId=null,this._tapPosition={x:Number.NEGATIVE_INFINITY,y:Number.POSITIVE_INFINITY}}_mouseMoveHandler(e){if(this._mousePressed||null!==this._touchMoveStartPosition)return;if(this._firesTouchEvents(e))return;const t=this._makeCompatEvent(e);this._processMouseEvent(t,this._handler.mouseMoveEvent),this._acceptMouseLeave=!0}_touchMoveHandler(e){const t=m(e.changedTouches,(0,r.ensureNotNull)(this._activeTouchId));if(null===t)return;if(this._lastTouchEventTimeStamp=_(e),null!==this._startPinchMiddlePoint)return;if(this._preventTouchDragProcess)return;this._pinchPrevented=!0;const i=this._touchMouseMoveWithDownInfo(u(t),(0,r.ensureNotNull)(this._touchMoveStartPosition)),{xOffset:s,yOffset:n,manhattanDistance:a}=i;if(this._touchMoveExceededManhattanDistance||!(a<5)){if(!this._touchMoveExceededManhattanDistance){const e=.5*s,t=n>=e&&!this._options.treatVertTouchDragAsPageScroll,i=e>n&&!this._options.treatHorzTouchDragAsPageScroll;t||i||(this._preventTouchDragProcess=!0),this._touchMoveExceededManhattanDistance=!0,this._cancelTap=!0,this._clearLongTapTimeout(),
this._resetTapTimeout()}if(!this._preventTouchDragProcess){const i=this._makeCompatEvent(e,t);this._processTouchEvent(i,this._handler.touchMoveEvent),(0,o.preventDefault)(e)}}}_mouseMoveWithDownHandler(e){if(0!==e.button)return;const t=this._touchMouseMoveWithDownInfo(u(e),(0,r.ensureNotNull)(this._mouseMoveStartPosition)),{manhattanDistance:i}=t;if(i>=5&&(this._cancelClick=!0,this._resetClickTimeout()),this._cancelClick){const t=this._makeCompatEvent(e);this._processMouseEvent(t,this._handler.pressedMouseMoveEvent)}}_touchMouseMoveWithDownInfo(e,t){const i=Math.abs(t.x-e.x),s=Math.abs(t.y-e.y);return{xOffset:i,yOffset:s,manhattanDistance:i+s}}_touchEndHandler(e){let t=m(e.changedTouches,(0,r.ensureNotNull)(this._activeTouchId));if(null===t&&0===e.touches.length&&(t=e.changedTouches[0]),null===t)return;this._activeTouchId=null,this._lastTouchEventTimeStamp=_(e),this._clearLongTapTimeout(),this._touchMoveStartPosition=null,this._unsubscribeRootTouchEvents&&(this._unsubscribeRootTouchEvents(),this._unsubscribeRootTouchEvents=null);const i=this._makeCompatEvent(e,t);if(this._processTouchEvent(i,this._handler.touchEndEvent),++this._tapCount,this._tapTimeoutId&&this._tapCount>1){const{manhattanDistance:e}=this._touchMouseMoveWithDownInfo(u(t),this._tapPosition);e<30&&!this._cancelTap&&this._processTouchEvent(i,this._handler.doubleTapEvent),this._resetTapTimeout()}else this._cancelTap||(this._processTouchEvent(i,this._handler.tapEvent),this._handler.tapEvent&&(0,o.preventDefault)(e));0===this._tapCount&&(0,o.preventDefault)(e),0===e.touches.length&&this._longTapActive&&(this._longTapActive=!1,(0,o.preventDefault)(e))}_mouseUpHandler(e){if(0!==e.button)return;const t=this._makeCompatEvent(e);if(this._mouseMoveStartPosition=null,this._mousePressed=!1,this._unsubscribeRootMouseEvents&&(this._unsubscribeRootMouseEvents(),this._unsubscribeRootMouseEvents=null),s.isFF){this._target.ownerDocument.documentElement.removeEventListener("mouseleave",this._onFirefoxOutsideMouseUp)}if(!this._firesTouchEvents(e))if(this._processMouseEvent(t,this._handler.mouseUpEvent),++this._clickCount,this._clickTimeoutId&&this._clickCount>1){const{manhattanDistance:i}=this._touchMouseMoveWithDownInfo(u(e),this._clickPosition);i<5&&!this._cancelClick&&this._processMouseEvent(t,this._handler.mouseDoubleClickEvent),this._resetClickTimeout()}else this._cancelClick||this._processMouseEvent(t,this._handler.mouseClickEvent)}_clearLongTapTimeout(){null!==this._longTapTimeoutId&&(clearTimeout(this._longTapTimeoutId),this._longTapTimeoutId=null)}_touchStartHandler(e){if(null!==this._activeTouchId)return;const t=e.changedTouches[0];this._activeTouchId=t.identifier,this._lastTouchEventTimeStamp=_(e);const i=this._target.ownerDocument.documentElement;this._cancelTap=!1,this._touchMoveExceededManhattanDistance=!1,this._preventTouchDragProcess=!1,this._touchMoveStartPosition=u(t),this._unsubscribeRootTouchEvents&&(this._unsubscribeRootTouchEvents(),this._unsubscribeRootTouchEvents=null);{const t=this._touchMoveHandler.bind(this),s=this._touchEndHandler.bind(this)
;this._unsubscribeRootTouchEvents=()=>{i.removeEventListener("touchmove",t),i.removeEventListener("touchend",s)},i.addEventListener("touchmove",t,{passive:!1}),i.addEventListener("touchend",s,{passive:!1}),this._clearLongTapTimeout(),this._longTapTimeoutId=setTimeout(this._longTapHandler.bind(this,e),240)}const s=this._makeCompatEvent(e,t);this._processTouchEvent(s,this._handler.touchStartEvent),this._tapTimeoutId||(this._tapCount=0,this._tapTimeoutId=setTimeout(this._resetTapTimeout.bind(this),500),this._tapPosition=u(t))}_wheelClickHandler(e){if(1!==e.button)return;if(this._firesTouchEvents(e))return;const t=this._makeCompatEvent(e);this._processMouseEvent(t,this._handler.wheelClickEvent)}_mouseDownHandler(e){if(0!==e.button)return;const t=this._target.ownerDocument.documentElement;s.isFF&&t.addEventListener("mouseleave",this._onFirefoxOutsideMouseUp),this._cancelClick=!1,this._mouseMoveStartPosition=u(e),this._unsubscribeRootMouseEvents&&(this._unsubscribeRootMouseEvents(),this._unsubscribeRootMouseEvents=null);{const e=this._mouseMoveWithDownHandler.bind(this),i=this._mouseUpHandler.bind(this);this._unsubscribeRootMouseEvents=()=>{t.removeEventListener("mousemove",e),t.removeEventListener("mouseup",i)},t.addEventListener("mousemove",e),t.addEventListener("mouseup",i)}if(this._mousePressed=!0,this._firesTouchEvents(e))return;const i=this._makeCompatEvent(e);this._processMouseEvent(i,this._handler.mouseDownEvent),this._clickTimeoutId||(this._clickCount=0,this._clickTimeoutId=setTimeout(this._resetClickTimeout.bind(this),500),this._clickPosition=u(e))}_init(){this._target.addEventListener("mouseenter",this._mouseEnterHandler.bind(this)),this._target.addEventListener("touchcancel",this._clearLongTapTimeout.bind(this));{const e=this._target.ownerDocument,t=e=>{this._handler.mouseDownOutsideEvent&&(e.target&&this._target.contains(e.target)||this._handler.mouseDownOutsideEvent())};this._unsubscribeOutsideTouchEvents=()=>{e.removeEventListener("touchstart",t)},this._unsubscribeOutsideMouseEvents=()=>{e.removeEventListener("mousedown",t)},e.addEventListener("mousedown",t),e.addEventListener("touchstart",t,{passive:!0})}s.CheckMobile.iOS()&&(this._unsubscribeMobileSafariEvents=()=>{this._target.removeEventListener("dblclick",this._onMobileSafariDoubleClick)},this._target.addEventListener("dblclick",this._onMobileSafariDoubleClick)),this._target.addEventListener("mouseleave",this._mouseLeaveHandler.bind(this)),this._target.addEventListener("contextmenu",this._contextMenuHandler.bind(this)),this._target.addEventListener("touchstart",this._touchStartHandler.bind(this),{passive:!0}),(0,o.preventScrollByWheelClick)(this._target),this._target.addEventListener("mousedown",this._mouseDownHandler.bind(this)),this._target.addEventListener(l,this._wheelClickHandler.bind(this)),this._initPinch(),this._target.addEventListener("touchmove",()=>{},{passive:!1})}_initPinch(){
void 0===this._handler.pinchStartEvent&&void 0===this._handler.pinchEvent&&void 0===this._handler.pinchEndEvent||(this._target.addEventListener("touchstart",e=>this._checkPinchState(e.touches),{passive:!0}),this._target.addEventListener("touchmove",e=>{if(2===e.touches.length&&null!==this._startPinchMiddlePoint&&void 0!==this._handler.pinchEvent){const t=e.touches[0],i=e.touches[1],s=p(t,i)/this._startPinchDistance,r=d(this._target);this._handler.pinchEvent(this._startPinchMiddlePoint,{x:t.clientX-r.left,y:t.clientY-r.top},{x:i.clientX-r.left,y:i.clientY-r.top},s),(0,o.preventDefault)(e)}},{passive:!1}),this._target.addEventListener("touchend",e=>{this._checkPinchState(e.touches)}))}_checkPinchState(e){1===e.length&&(this._pinchPrevented=!1),2!==e.length||this._pinchPrevented||this._longTapActive?this._stopPinch():this._startPinch(e)}_startPinch(e){if(void 0!==this._handler.pinchStartEvent){const t=d(this._target),i=e[0],s=e[1],r={x:i.clientX-t.left,y:i.clientY-t.top},n={x:s.clientX-t.left,y:s.clientY-t.top};this._startPinchMiddlePoint={x:(r.x+n.x)/2,y:(r.y+n.y)/2},this._startPinchDistance=p(i,s),this._handler.pinchStartEvent(this._startPinchMiddlePoint,r,n)}this._clearLongTapTimeout()}_stopPinch(){null!==this._startPinchMiddlePoint&&(this._startPinchMiddlePoint=null,void 0!==this._handler.pinchEndEvent&&this._handler.pinchEndEvent())}_mouseLeaveHandler(e){if(this._unsubscribeMousemove&&this._unsubscribeMousemove(),this._firesTouchEvents(e))return;if(!this._acceptMouseLeave)return;const t=this._makeCompatEvent(e);this._processMouseEvent(t,this._handler.mouseLeaveEvent),this._acceptMouseLeave=!s.CheckMobile.iOS()}_longTapHandler(e){const t=m(e.touches,(0,r.ensureNotNull)(this._activeTouchId));if(null===t)return;const i=this._makeCompatEvent(e,t);this._processTouchEvent(i,this._handler.longTapEvent),this._processTouchEvent(i,this._handler.touchContextMenuEvent),this._cancelTap=!0,this._longTapActive=!0}_contextMenuHandler(e){if((0,o.preventDefault)(e),null!==this._touchMoveStartPosition)return;if(this._firesTouchEvents(e))return;const t=this._makeCompatEvent(e);this._processMouseEvent(t,this._handler.contextMenuEvent),this._cancelClick=!0}_firesTouchEvents(e){return e.sourceCapabilities&&void 0!==e.sourceCapabilities.firesTouchEvents?e.sourceCapabilities.firesTouchEvents:_(e){
"touchstart"!==e.type&&(0,o.preventDefault)(e)}}}}function d(e){return e.getBoundingClientRect()||{left:0,top:0}}function u(e){return{x:e.pageX,y:e.pageY}}function p(e,t){const i=e.clientX-t.clientX,s=e.clientY-t.clientY;return Math.sqrt(i*i+s*s)}function _(e){return e.timeStamp||performance.now()}function m(e,t){for(let i=0;i{"use strict";i.d(t,{navigationButtonsVisibilityKey:()=>r,property:()=>n,availableValues:()=>o,actualBehavior:()=>a});var s=i(10133);const r="NavigationButtons.visibility",{property:n,availableValues:o,actualBehavior:a}=(0,s.createVisibilityController)(r)},62428:(e,t,i)=>{"use strict";i.d(t,{property:()=>n,availableValues:()=>o,actualBehavior:()=>a});var s=i(10133),r=i(95707);const{property:n,availableValues:o,actualBehavior:a}=(0,s.createVisibilityController)("PaneButtons.visibility",r.navigationButtonsVisibilityKey)},62138:(e,t,i)=>{"use strict";i.d(t,{ActionBinder:()=>s});class s{constructor(e,t,i,s,r=null){this._property=t,this._undoModel=i,this._undoText=s,this._action=e,this.setValue(t.value()),t.subscribe(this,this._propertyChanged),null!==r?e.update({onExecute:r.bind(this)}):e.update({onExecute:this._onActionCallback.bind(this)})}destroy(){this._property.unsubscribe(this,this._propertyChanged)}value(){return this._action.isChecked()}setValue(e){this._action.update({checked:Boolean(e)})}_onActionCallback(){this._undoModel.setProperty(this._property,this.value(),this._undoText)}_propertyChanged(e){this.setValue(e.value())}}},37701:(e,t,i)=>{"use strict";i.d(t,{isCustomStudy:()=>r});const s={VbPFixed:!0,PivotPointsStandard:!0,VbPVisible:!0};function r(e){return e in s}},56756:(e,t,i)=>{"use strict";i.d(t,{MetaInfoHelper:()=>p});var s=i(88537),r=i(67072),n=i.n(r),o=i(50993),a=i(80643),l=i(98125);const c=["first_visible_bar_time","last_visible_bar_time"];function h(e){return!e.groupId&&!e.isHidden&&!c.includes(e.id)}var d=i(37701);const u=(0,l.getLogger)("Platform.GUI.PropertyDialog.Indicators.MetaInfo");class p{constructor(e){this._metaInfo=e}hasUserEditableInputs(){return this._metaInfo.inputs.some(h)}getUserEditableInputs(){return this._metaInfo.inputs.filter(h)}hasUserEditableProperties(){return n().isScriptStrategy(this._metaInfo)}hasUserEditableStyles(){const e=this._metaInfo;return e.plots.length>0||void 0!==e.bands||void 0!==e.filledAreas||(0,d.isCustomStudy)(e.shortId)||n().isScriptStrategy(this._metaInfo)||Object.values(e.graphics).some(e=>void 0!==e)}getUserEditablePlots(){const e=new Set,t=this._metaInfo;return t.plots.filter(i=>{if((0,o.isColorerPlot)(i)||(0,o.isTextColorerPlot)(i)||(0,o.isDataOffsetPlot)(i)||(0,o.isOhlcColorerPlot)(i)||(0,o.isAlertConditionPlot)(i))return!1;if((0,o.isOhlcPlot)(i)){const r=i.target;if(e.has(r))return!1;e.add(r);const n=(0,s.ensureDefined)(t.ohlcPlots);return!(0,s.ensureDefined)(n[r]).isHidden}{const e=t.styles?t.styles[i.id]:void 0;return void 0===e||!e.isHidden}})}hasUserEditableOptions(){
return this.hasUserEditableInputs()||this.hasUserEditableProperties()||this.hasUserEditableStyles()}getStrategyProperties(){const e=this._metaInfo,t=e.inputs.filter(m),i={..._};for(const s of t){const t=s.internalID;i[t]=s,_.hasOwnProperty(t)||u.logWarn(`Unknown strategy input internal id ${t} in ${e.fullId}`)}return(0,a.clone)(i)}}const _={currency:void 0,backtest_fill_limits_assumption:void 0,calc_on_every_tick:void 0,calc_on_order_fills:void 0,commission_value:void 0,commission_type:void 0,initial_capital:void 0,pyramiding:void 0,slippage:void 0,default_qty_type:void 0,default_qty_value:void 0,margin_long:void 0,margin_short:void 0,use_bar_magnifier:void 0};function m(e){return"strategy_props"===e.groupId}},27772:(e,t,i)=>{"use strict";i.d(t,{checkAuthBeforeSaveLoad:()=>r});var s=i(67337);function r(e,t){s.enabled("saveload_requires_authentication")?window.runOrSignIn(e,t):e()}},9127:(e,t,i)=>{"use strict";i.d(t,{AbstractJsonStoreService:()=>n,CommonJsonStoreService:()=>o});var s=i(2872),r=i.n(s);class n{constructor(e,t,i,s,n){this._onChange=new(r()),this._handleChange=()=>{this._onChange.fire(this.get())},this._crossTabEvents=e,this._jsonKeyValueStore=t,this.CROSSTAB_EVENT_NAME=i,this.JSON_STORE_KEY=s,this.defaultStoreValue=this._serialize(n),this._subscribe()}get(){const e=this._jsonKeyValueStore.getJSON(this.JSON_STORE_KEY,this.defaultStoreValue);return this._deserialize(e)}set(e,t){const i=this._serialize(e);this._jsonKeyValueStore.setJSON(this.JSON_STORE_KEY,i,t),this._crossTabEvents.emit(this.CROSSTAB_EVENT_NAME),this._onChange.fire(e)}getOnChange(){return this._onChange}destroy(){this._unsubscribe(),this._onChange.destroy(),delete this._onChange}_subscribe(){this._crossTabEvents.on(this.CROSSTAB_EVENT_NAME,this._handleChange),this._jsonKeyValueStore.onSync.subscribe(this,this._handleChange)}_unsubscribe(){this._crossTabEvents.off(this.CROSSTAB_EVENT_NAME,this._handleChange),this._jsonKeyValueStore.onSync.unsubscribe(this,this._handleChange)}}class o extends n{_serialize(e){return e}_deserialize(e){return e}}},86879:(e,t,i)=>{"use strict";i.d(t,{LoadChartService:()=>d});var s=i(67337),r=i(9127);class n extends r.CommonJsonStoreService{constructor(e,t){super(e,t,"FAVORITE_CHARTS_CHANGED","loadChartDialog.favorites",{})}}var o=i(43007),a=i(21097),l=i(56840),c=i(27772),h=i(22729);class d extends h.DialogRenderer{constructor(e=null){super(),this._favoriteChartsService=new n(a.TVXWindowEvents,l),this._chartWidgetCollection=null,this._promise=null,this._dialog=null,this._subscribe=e=>{this._setVisibility(e)},this._getChartEntry=e=>({id:e.id,url:e.url,title:e.name,symbol:e.short_symbol,interval:e.interval,toolsCount:0,modified:e.modified_iso,active:()=>this._isActiveChart(e.id),openAction:()=>o.backend.loadChart(e),deleteAction:()=>o.backend.removeChart(e.image_url).then(()=>this._deleteChart(e.id)),favoriteAction:this._updateFavorites}),this._updateFavorites=e=>this._favoriteChartsService.set(e),this._isActiveChart=e=>null!==this._chartWidgetCollection&&e===this._chartWidgetCollection.metaInfo.id.value(),
this._deleteChart=e=>{this._isActiveChart(e)&&(s.enabled("saveload_storage_customization")?null!==this._chartWidgetCollection&&this._chartWidgetCollection.clearChartMetaInfo():location.href="/chart/"+location.search)},this._chartWidgetCollection=e}showLoadDialog(){(0,c.checkAuthBeforeSaveLoad)(this._showLoadDialog.bind(this),{source:"Load chart",sourceMeta:"Chart"})}show(){this.showLoadDialog()}hide(){var e,t;null===(e=this._dialog)||void 0===e||e.hide(),null===(t=this._dialog)||void 0===t||t.visible().unsubscribe(this._subscribe)}_showLoadDialog(){(s.enabled("saveload_requires_authentication")&&!window.is_authenticated?Promise.resolve([]):o.backend.getCharts()).then(e=>e.map(this._getChartEntry)).then(e=>{const t=this._promise=Promise.all([i.e(9685),i.e(5514),i.e(9129),i.e(4194),i.e(2e3),i.e(7962),i.e(8986),i.e(6363),i.e(5774),i.e(1112),i.e(6909),i.e(6427),i.e(5325),i.e(9837),i.e(3199),i.e(3016),i.e(1075),i.e(9811),i.e(5009)]).then(i.bind(i,9512)).then(i=>{if(this._promise===t){this._dialog&&(this._dialog.hide(),this._dialog.visible().unsubscribe(this._subscribe));const t={charts:e,favoriteChartsService:this._favoriteChartsService,chartWidgetCollection:this._chartWidgetCollection};this._dialog=new i.LoadChartDialogRenderer(t),this._dialog.visible().subscribe(this._subscribe),this._dialog.show()}})})}}},41051:(e,t,i)=>{"use strict";i.d(t,{SaveChartService:()=>v});var s=i(67337),r=i(52714),n=i.n(r),o=i(76422),a=i(68425),l=i(27772);i(94419);var c=i(28353),h=i(43007);async function d(){return!0}var u=i(3615);const p=s.enabled("confirm_overwrite_if_chart_layout_with_name_exists");class _{constructor(e,t,i){this._visibility=new(n())(!1),this._chartWidgetCollection=e,this._doSave=t,this._doLoad=i}hide(){var e;null===(e=this._hide)||void 0===e||e.call(this),this._visibility.setValue(!1)}visible(){return this._visibility.readonly()}_showRenameDialog(e,t,i,s){return(0,u.showRename)({title:this._renameDialogTitle(),text:this._renameDialogText(),maxLength:64,initValue:e,onRename:async e=>{if(!p)return void this._renameActionHandler(e,t,i,s);const{newValue:r,dialogClose:n}=e,o=(await this._doLoad()).find(e=>e.name===r);n(),void 0!==o?this._hide=await(0,u.showConfirm)({title:(0,c.t)("A layout with that name already exists"),text:(0,c.t)("A layout with that name already exists. Do you want to overwrite it?"),onConfirm:({dialogClose:e})=>{e(),this._doOverwriteExistingLayout(o.id,r,t,i,s)},onCancel:({dialogClose:e})=>{e(),this._showRenameDialog(r,t,i,s)}}):this._renameActionHandler({newValue:r,dialogClose:n},t,i,s)},onClose:()=>this._visibility.setValue(!1)})}_doSaveCurrentLayout(e,t,i,s){const r=this._chartWidgetCollection.metaInfo.name.value();this._chartWidgetCollection.metaInfo.name.setValue(e),this._doSave(t,i,()=>{this._chartWidgetCollection.metaInfo.name.setValue(r),null==s||s()})}_doOverwriteExistingLayout(e,t,i,s,r){const n=this._chartWidgetCollection.metaInfo.name.value();this._chartWidgetCollection.metaInfo.id.setValue(e),this._chartWidgetCollection.metaInfo.name.setValue(t),this._doSave(i,s,()=>{
this._chartWidgetCollection.metaInfo.name.setValue(n),null==r||r()})}}class m extends _{cloneChart(){this._cloneChart().then(()=>this._visibility.setValue(!0))}show(){(0,l.checkAuthBeforeSaveLoad)(()=>this.cloneChart(),{source:"Clone chart"})}_renameDialogTitle(){return(0,c.t)("Copy Chart Layout")}_renameDialogText(){return(0,c.t)("Enter a new chart layout name")+":"}_renameActionHandler({newValue:e,dialogClose:t}){s.enabled("saveload_storage_customization")&&this._doCloneCurrentLayout(e),t()}async _cloneChart(){const e=await d();e&&(this._hide=await this._showRenameDialog(this._getInitialRenameDialogInput()))}_doCloneCurrentLayout(e){const t=this._chartWidgetCollection.metaInfo.name.value();this._chartWidgetCollection.metaInfo.uid.deleteValue(),this._chartWidgetCollection.metaInfo.id.deleteValue(),this._chartWidgetCollection.metaInfo.name.setValue(e),this._doSave(void 0,void 0,()=>{this._chartWidgetCollection.metaInfo.name.setValue(t)})}_getInitialRenameDialogInput(){return(0,c.t)("{title} copy",{context:"ex: AAPL chart copy"}).format({title:this._chartWidgetCollection.metaInfo.name.value()})}}class g extends _{show(e,t,i){this._saveNewChart(e,t,i).then(()=>this._visibility.setValue(!0))}_renameDialogTitle(){return(0,c.t)("Save New Chart Layout")}_renameDialogText(){return(0,c.t)("Enter a new chart layout name")+":"}_renameActionHandler({newValue:e,dialogClose:t},i,s,r){this._doSaveCurrentLayout(e,i,s,r),t()}async _saveNewChart(e,t,i){await d();const s=this._chartWidgetCollection.metaInfo.name.value();this._hide=await this._showRenameDialog(s,e,t,i)}}class f extends _{show(){(0,l.checkAuthBeforeSaveLoad)(()=>this._show(),{source:"Rename chart"})}_renameDialogTitle(){return(0,c.t)("Rename Chart Layout")}_renameDialogText(){return(0,c.t)("Enter a new chart layout name")+":"}_renameActionHandler({newValue:e,dialogClose:t}){this._doSaveCurrentLayout(e),t()}async _show(){await this._renameChart(),this._visibility.setValue(!0)}async _renameChart(){const e=this._chartWidgetCollection.metaInfo.name.value();this._hide=await this._showRenameDialog(e)}}class v{constructor(e,t){this._autosaveTimer=null,this._watchedAutoSaveEnabled=new(n()),this._toggleAutoSaveEnabledHandler=this._toggleAutoSaveEnabled.bind(this),this._doSave=(e,t,i,s)=>{const r=this._chartWidgetCollection;void 0!==e&&e(),this._chartSaver.saveChartSilently(e=>{var i;i=r.metaInfo.uid.value(),"/chart/"===location.pathname&&(location.href="/chart/"+i),void 0!==t&&t(e)},()=>{void 0!==i&&i()},{autoSave:Boolean(s)})},this._doLoad=()=>h.backend.getCharts(),this._chartWidgetCollection=e,this._chartSaver=t,this._createController=new g(e,this._doSave,this._doLoad),this._renameController=new f(e,this._doSave,this._doLoad),this._saveAsController=new m(e,this._doSave,this._doLoad),this._chartChangesWatcher=new a.ChartChangesWatcher(e.undoHistory,e.lineToolsSynchronizerHasChanges,t,o),e.saveKeysPressed().subscribe(this,this.saveChartOrShowTitleDialog),this._chartChangesWatcher.getOnChange().subscribe(this,this._onStateChanged)}autoSaveEnabled(){
return this._watchedAutoSaveEnabled}destroy(){0}getCreateController(){return this._createController}getRenameController(){return this._renameController}getSaveAsController(){return this._saveAsController}cloneChart(){this._saveAsController.cloneChart()}saveChartAs(){this._saveAsController.show()}renameChart(){this._renameController.show()}saveNewChart(e,t,i){this._createController.show(e,t,i)}saveExistentChart(e,t,i){this._doSave(e,t,i)}hasChanges(){return this._chartChangesWatcher.hasChanges()}saveChartOrShowTitleDialog(e,t,i){const s=window.saver.isSaveInProcess(),r=this._chartChangesWatcher.hasChanges(),n=!!this._chartWidgetCollection.metaInfo.id.value();window.is_authenticated&&(s||!r&&n)||(0,l.checkAuthBeforeSaveLoad)(()=>{null!=this._chartWidgetCollection.metaInfo.id.value()?this.saveExistentChart(e,t,i):this.saveNewChart(e,t,i)},{source:"Save chart",sourceMeta:"Chart"})}whenReadyToSave(e){this._chartSaver.whenReadyToSave(e)}saveToJSON(){return this._chartSaver.saveToJSON()}saveChartSilently(e,t,i){this._chartSaver.saveChartSilently(e,t,i)}setAutoSaveEnabled(e){window.is_authenticated&&window.saver.isSaveInProcess()||(0,l.checkAuthBeforeSaveLoad)(()=>{this._watchedAutoSaveEnabled.setValue(e)},{source:"AutoSave chart"})}saveChartLineTools(e,t,i){return this._chartSaver.saveChartLineTools(e,t,i)}_autoSaveEnabledSettingHandler(e){0}_toggleAutoSaveEnabled(e){0}_enableAutoSave(){0}_disableAutoSave(){0}_onStateChanged(e){e?this._startAutosave():this._stopAutosave()}_startAutosave(){s.enabled("charts_auto_save")&&null===this._autosaveTimer&&(this._autosaveTimer=setTimeout(()=>{this._autosaveTimer=null,this._chartWidgetCollection.metaInfo.id.value()&&this._doSave(void 0,void 0,void 0,!0)},6e4))}_stopAutosave(){null!==this._autosaveTimer&&(clearInterval(this._autosaveTimer),this._autosaveTimer=null)}}},13647:(e,t,i)=>{"use strict";i.d(t,{showMarketOpenStatusProperty:()=>o,restoreShowMarketOpenStatusProperty:()=>a});var s=i(32255),r=i(56840);function n(){return r.getBool("Chart.ShowMarketOpenStatus",!0)}const o=(0,s.createPrimitiveProperty)(n());function a(){o.setValue(!0),r.remove("Chart.ShowMarketOpenStatus")}r.onSync.subscribe(null,()=>o.setValue(n())),o.subscribe(null,()=>r.setValue("Chart.ShowMarketOpenStatus",o.value()))},46723:(e,t,i)=>{"use strict";i.d(t,{StudyTemplates:()=>p});var s=i(28353),r=i(43007),n=i(51768),o=i(2872),a=i.n(o),l=i(52714),c=i.n(l),h=i(3615);const d=(0,i(98125).getLogger)("Platform.StudyTemplates"),u=(0,s.t)("Do you really want to delete Study Template '{name}' ?");class p{constructor(e){this._chartWidgetCollection=e.chartWidgetCollection,this._favoriteStudyTemplatesService=e.favoriteStudyTemplatesService,window.loginStateChange.subscribe(null,r.backend.invalidateStudyTemplatesList),this._list=new(c())([]),this._onChange=new(a()),this._list.subscribe(()=>this._onChange.fire())}findRecordByName(e){return this._list.value().find(t=>t.name===e)||null}showSaveAsDialog(){const e=this._chartWidgetCollection.activeChartWidget.value().model()
;Promise.all([i.e(5514),i.e(9129),i.e(4194),i.e(7962),i.e(8986),i.e(7836),i.e(8463),i.e(9289),i.e(7427),i.e(7345),i.e(5998),i.e(7552),i.e(5804),i.e(3016),i.e(6631)]).then(i.bind(i,33165)).then(t=>{new t.StudyTemplateSaver({controller:e,onSave:e=>{this._list.setValue(e)}}).show()})}applyTemplate(e){const t=this.findRecordByName(e);null!==t?window.runOrSignIn(()=>{const e=this._chartWidgetCollection.activeChartWidget.value(),i=i=>{(0,n.trackEvent)("GUI","Load Study Template"),e.model().applyStudyTemplate(JSON.parse(i.content),t.name)};void 0!==t.id?t.is_default?r.backend.getStandardStudyTemplateContentById(t.id,i):r.backend.getStudyTemplateContentById(t.id,i):r.backend.getStudyTemplateContent(t.name).then(i)},{source:"Study templates apply"}):d.logNormal(`Template ${e} not found in cache`)}deleteStudyTemplate(e){const t=this.findRecordByName(e);null!==t?this._removeTemplate(t):d.logNormal(`Template ${e} not found in cache`)}list(){return this._list.value()}getOnChange(){return this._onChange}refreshStudyTemplateList(e){r.backend.getStudyTemplatesList().then(t=>{this._list.setValue(t),void 0!==e&&e()})}invalidate(){r.backend.invalidateStudyTemplatesList()}_removeTemplate(e){window.runOrSignIn(()=>{(0,h.showConfirm)({text:u.format({name:e.name}),onConfirm:({dialogClose:t})=>new Promise(i=>{const s=()=>{this.refreshStudyTemplateList(()=>{const s=this.list();this._list.setValue(s.filter(t=>t!==e)),this._favoriteStudyTemplatesService&&this._favoriteStudyTemplatesService.remove(e.name),i(),t()})};r.backend.invalidateStudyTemplatesList(),void 0!==e.id?r.backend.removeStudyTemplateById(e.id,s):r.backend.removeStudyTemplate(e.name).then(s)})})},{source:"Study templates delete"})}}},38318:(e,t,i)=>{"use strict";i.d(t,{canShowSpreadActions:()=>c,globalKeypressMatches:()=>h,intervalIsSupported:()=>l,parseIntervalValue:()=>a});var s=i(67337),r=i(9315),n=i(82992),o=i(29823);new RegExp("^quandl","i");function a(e){let t;t=/^[,\s]*(^[1-9][0-9]*)?\s*([hdwmst]?)\s*$/i;const i=t.exec(e)||[],s=~~i[1],r=i[2]&&i[2].toUpperCase()||null,n={qty:!s&&r?1:s,unit:r};return n.error=!s&&!r,n.intraday=!(n.error||n.unit&&"H"!==n.unit&&"S"!==n.unit&&"T"!==n.unit),n}function l(e){if(s.enabled("allow_supported_resolutions_set_only")){const t=o.Interval.normalize(e);return null!==t&&(0,r.isAvailable)(t)}{const t=a(e);if(t.error)return!1;if(t.intraday)return n.linking.intraday.value();{const e=n.linking.supportedResolutions.value();return!e||null!==t.unit&&!!~e.indexOf(t.unit)}}}function c(){let e=!1;return s.enabled("show_spread_operators")&&(e=!0),e}function h(e){return!e.ctrlKey&&(!e.metaKey&&(!!e.charCode&&(!(!e.which||e.which<=32)&&(null===e.target||!/^(input|textarea)$/i.test(e.target.tagName)))))}},11181:(e,t,i)=>{"use strict";function s(){return Promise.all([i.e(9685),i.e(5514),i.e(9129),i.e(4194),i.e(7962),i.e(8986),i.e(7836),i.e(3921),i.e(5774),i.e(2153),i.e(9837),i.e(3199),i.e(3016),i.e(2301),i.e(1754)]).then(i.bind(i,89324))}i.d(t,{loadNewSymbolSearch:()=>s})},92033:(e,t,i)=>{"use strict";i.d(t,{tradingService:()=>n});var s=i(16216);const r={
id:"TradingService"};function n(){return(0,s.hasService)(r)?(0,s.service)(r):null}},1314:(e,t,i)=>{"use strict";i.d(t,{TradingViewApiBase:()=>_});i(88537);var s=i(82992),r=i(67337),n=i(51768),o=i(6087),a=i(45345),l=i(2872),c=i.n(l);class h{constructor(e){this._toolbarThemeChanged=new(c()),this._onWatchedThemeChanged=e=>{this._toolbarThemeChanged.fire(e)},this._opts=e,a.watchedTheme.subscribe(this._onWatchedThemeChanged)}destroy(){a.watchedTheme.unsubscribe(this._onWatchedThemeChanged)}isStdTheme(){const e=this._opts.chartWidgetCollection.getAll().every(e=>(0,o.isStdTheme)((0,o.extractThemeFromModel)(e.model())));return Promise.resolve(e)}async setStdTheme(e,t=!0,i){await(0,o.loadTheme)(this._opts.chartWidgetCollection,{themeName:e,standardTheme:!0,syncState:t,noUndo:i})}setStdThemeForLayout(e,t=!0){(0,a.setTheme)(e),t&&(0,o.syncTheme)()}getCurrentThemeName(){return(0,o.getCurrentTheme)().name}toolbarThemeChanged(){return this._toolbarThemeChanged}}var d=i(16906),u=i(85733);function p(){throw new Error("not implemented")}class _{constructor(e){this._studyTemplatesDrawer=null,this._fontIconsSettingsDrawer=null,this._favoriteDrawingsToolbar=null,this._themesApi=null,this._newsApiDeferredPromise=null,this._newsApiRejectionReason=null,this._watchlistApiDeferredPromise=null,this._watchlistApiRejectionReason=null,this._widgetbarApiDeferredPromise=null,this._widgetbarApiRejectionReason=null,this._isDestroyed=!1,this._widgebarApi=null;const{chartApiInstance:t,chartWidgetCollection:i,studyMarket:r,financialsDialog:n,saveChartService:o,loadChartService:a,sharingChartService:l=null}=e;this._chartWidgetCollection=i,this._studyMarket=r,this._financialsDialog=n,this._saveChartService=o,this._sharingChartService=l,this._loadChartLayoutDialog=a,this._intervalsService=null,this._alertsWidgetDialog=null,this._detailsDialogController=null,this._supportedChartStylesSpawn=s.linking.supportedChartStyles.spawn(),this._chartWidgetCollection.onAboutToBeDestroyed.subscribe(null,()=>this.destroy(),!0)}destroy(){var e,t,i;this._supportedChartStylesSpawn.destroy(),null===(e=this._intervalsService)||void 0===e||e.destroy(),null===(t=this._themesApi)||void 0===t||t.destroy(),null===(i=this._widgebarApi)||void 0===i||i.destroy(),this._widgetbarApiRejectionReason="This ITradingViewApi instance has been destroyed",this._isDestroyed=!0}themes(){return null===this._themesApi&&(this._themesApi=new h({chartWidgetCollection:this._chartWidgetCollection})),this._themesApi}dialogs(){var e,t,i,s,r,n;return{Indicators:this._studyMarket,Financials:this._financialsDialog,Compare:this._chartWidgetCollection.getCompareDialogRenderer(),ObjectsTree:null,ChartProperties:this._chartWidgetCollection.getChartPropertiesDialogRenderer(),ChartLayoutSaveAs:null!==(t=null===(e=this._saveChartService)||void 0===e?void 0:e.getSaveAsController())&&void 0!==t?t:null,ChartLayoutRename:null!==(s=null===(i=this._saveChartService)||void 0===i?void 0:i.getRenameController())&&void 0!==s?s:null,
ChartLayoutCreate:null!==(n=null===(r=this._saveChartService)||void 0===r?void 0:r.getCreateController())&&void 0!==n?n:null,ChartLayoutLoad:this._loadChartLayoutDialog,Alerts:this._alertsWidgetDialog,Details:this._detailsDialogController,FinancialsCharts:null}}studyTemplatesDrawerApi(){p()}fontIconsSettingsDrawer(){p()}intervalsService(){p()}supportedChartTypes(){return this._supportedChartStylesSpawn}setBrokerName(e){this._chartWidgetCollection.setBroker(e)}drawOnAllChartsMode(e){(0,u.drawOnAllChartsMode)().setValue(e)}disableTrackingEvents(){(0,n.disableTrackingEvents)()}setSymbolSearchUI(e){p()}setLayout(e,t){(null==t?void 0:t.withUndo)?this._chartWidgetCollection.setChartLayoutWithUndo(e):this._chartWidgetCollection.setLayout(e)}selectLineTool(e,t){if(!d.supportedLineTools[e])return;const i=d.supportedLineTools[e].name;if("icon"===e){const e=null==t?void 0:t.icon;void 0!==e&&u.iconTool.setValue(e)}u.tool.setValue(i)}favoriteDrawingsToolbar(){return i.e(5551).then(i.bind(i,88823)).then(e=>(this._favoriteDrawingsToolbar||(this._favoriteDrawingsToolbar=new e.FavoriteDrawingsApi),this._favoriteDrawingsToolbar))}sharingChart(){return this._sharingChartService}watchlist(){p()}setWatchlistApiPromise(e){p()}news(){p()}setNewsApiPromise(e){p()}widgetbar(){p()}setWidgetbarApiPromise(e){p()}setDebugMode(e){r.setEnabled("charting_library_debug_mode",e)}}},28399:(e,t,i)=>{"use strict";var s=i(2872),r=i(52714),n=i(82992).linking,o=(i(81836).createDeferredPromise,i(21269)),a=i(42060).layouts,l=i(76422),c=i(97056).ContextMenuManager,h=i(85733),d=i(9315),u=i(43007).backend,p=i(98125),_=i(3615).showWarning,m=i(3615).showConfirm,g=i(16906),f=i(52092).CLOSE_POPUPS_AND_DIALOGS_COMMAND,v=i(29823).Interval,S=i(88564).saveDefaultProperties,y=i(68425).ChartChangesWatcher,b=i(1314).TradingViewApiBase,w=i(67072),C=i(152).getStudyInputsInfo,P=i(70120).getStudyStylesInfo;e.exports=class extends b{constructor(e){const{chartWidgetCollection:t,saveChartService:i,loadChartService:r,sharingChartService:o,alertsDispatcher:a,supportTicketData:l,favoriteServices:c,chartApiInstance:h=null,studyMarket:d=null,financialsDialog:u=null}=e;super({chartApiInstance:h,chartWidgetCollection:t,studyMarket:d,financialsDialog:u,saveChartService:i,loadChartService:r,sharingChartService:o}),this._chartApiInstance=h,this._loadChartService=r,this._alertsDispatcher=a,this._supportTicketData=l,this._favoriteServices=c,this._proxyWatchListChangedDelegate=null,this._lockDrawingsWatchedValue=null,this._hideDrawingsWatchedValue=null,this._hideIndicatorsWatchedValue=null,this._magnetEnabledWatchedValue=null,this._magnetModeWatchedValue=null,this._replayApi=null,this._chartChangesWatcher=null,this._hasChartChangesWatchedValue=null,this._getDataSourceHub=function(){return t.activeChartWidget.value().model().model()},this._chartWidgetCollection.getResizerDetacher=function(){return t.activeChartWidget.value().getResizerDetacher()},this._alertService=this._alertsDispatcher?new(void 0)(this._alertsDispatcher,this._getDataSourceHub):null,this._activeChangedChangedDelegate=new s,
this._chartWidgetCollection.activeChartWidget.subscribe(function(){this._activeChangedChangedDelegate.fire()}.bind(this)),this._chartWidgets=new WeakMap,this._activateChart=function(e){t.activeChartWidget.setValue(e)},this.linking=n}subscribe(e,t){l.subscribe(e,t)}unsubscribe(e,t){l.unsubscribe(e,t)}onContextMenu(e){l.subscribe("onContextMenu",(function(t){t.callback(e(t.unixtime,t.price))}))}onGrayedObjectClicked(e){l.subscribe("onGrayedObjectClicked",e)}activeChart(){return this._getChartWidgetApi(this._chartWidgetCollection.activeChartWidget.value())}_getChartWidgetApi(e){var t=this._chartWidgets.get(e);return void 0===t&&(t=new o(e,this._activateChart.bind(null,e)),this._chartWidgets.set(e,t)),t}onActiveChartChanged(){return this._activeChangedChangedDelegate}changeSymbol(e,t,i){n.interval.setValue(v.normalize(t)),n.symbol.setValue(e),i&&this.activeChart().onDataLoaded().subscribe(null,i,!0)}layout(){return this._chartWidgetCollection.layout.value()}layoutName(){return this._chartWidgetCollection.metaInfo.name.value()}layoutNameWatchedValue(){return this._chartWidgetCollection.metaInfo.name.readonly()}layoutSettingsDrawer(){throw new Error("not implemented")}chartsCount(){return a[this.layout()].count}viewMode(){throw new Error("not implemented")}viewModeWatchedValue(){throw new Error("not implemented")}setForceFullscreenMode(){throw new Error("not implemented")}setMultichartMode(){throw new Error("not implemented")}setActiveChart(e){throw new Error("not implemented")}chart(e){if(void 0===e&&(e=0),e<0||e>=this.chartsCount())throw Error("Incorrect index: "+e);return this._getChartWidgetApi(this._chartWidgetCollection.getAll()[e])}getSymbolInterval(e){var t={symbol:n.symbol.value(),interval:n.interval.value()};return e&&e(t),t}saveChart(e){if(this._saveChartService){var t=this;this._saveChartService.whenReadyToSave((function(){var i=t._saveChartService.saveToJSON();return e&&e(JSON.parse(i.content))}))}}loadChart(e){this._chartApiInstance.disconnect(),this._chartWidgetCollection.loadContent(e.json),this._chartWidgetCollection.purgeUnusedWidgets(),e.extendedData&&(this._chartWidgetCollection.metaInfo.id.setValue(e.extendedData.uid),this._chartWidgetCollection.metaInfo.uid.setValue(e.extendedData.uid),this._chartWidgetCollection.metaInfo.name.setValue(e.extendedData.name)),this._chartApiInstance.connect(),n.symbol.setValue(this.activeChart().symbol()),l.emit("chart_loaded")}getStudiesList(){return this._chartApiInstance.allStudiesMetadata().filter((function(e){return!e.is_hidden_study})).map((function(e){return e.description}))}getStudyInputs(e){{const t=w.findStudyMetaInfoByDescription(this._chartApiInstance.allStudiesMetadata(),e);return C(t)}}getStudyStyles(e){{const t=w.findStudyMetaInfoByDescription(this._chartApiInstance.allStudiesMetadata(),e);return P(t)}}getSavedCharts(e){u.getCharts().then(e)}loadChartFromServer(e){u.loadChart(e)}saveChartToServer(e,t,i){this._saveChartService&&this._saveChartService.saveChartSilently(e,t,i)}setAutosave(e){
this._saveChartService&&this._saveChartService.autoSaveEnabled().setValue(e)}removeChartFromServer(e,t){u.removeChart(e).then(t)}getIntervals(){var e=[],t=d.getCustomResolutions();return null!==this._chartApiInstance&&(e=this._chartApiInstance.defaultResolutions()),d.mergeResolutions(e,t)}closePopupsAndDialogs(){c.hideAll(),l.emit(f)}selectedLineTool(){for(var e=Object.keys(g.supportedLineTools),t=h.tool.value(),i=0;i{"use strict";i.d(t,{addPlusButtonProperty:()=>o,restoreAddPlusButtonSettingsValue:()=>a});var s=i(56840),r=i(32255);function n(){return s.getBool("add_plus_button",!0)}const o=(0,r.createPrimitiveProperty)(n());function a(){o.setValue(!0),s.remove("add_plus_button")}s.onSync.subscribe(null,()=>o.setValue(n())),o.listeners().subscribe(null,()=>s.setValue("add_plus_button",o.value()))},20165:(e,t,i)=>{"use strict";i.d(t,{alignToStep:()=>n});var s=i(60521),r=i.n(s);function n(e,t){return r()(e).div(t).round(0,r().roundHalfUp).mul(t).toNumber()}},44419:(e,t,i)=>{"use strict";i.d(t,{AppliedTimeFrame:()=>r});var s=i(40144);class r{constructor(e){this._appliedTimeFrame=new s.WatchedObject(null),this._appliedTimeFrameInfo=null,this._appliedTimeFrameChangedBound=this._appliedTimeFrameChanged.bind(this),this._model=e,e.mainSeries().dataEvents().seriesTimeFrame().subscribe(this,this._onSeriesTimeFrame),this._appliedTimeFrame.subscribe(this._appliedTimeFrameChangedBound)}destroy(){this._appliedTimeFrame.unsubscribe(this._appliedTimeFrameChangedBound),this._model.timeScale().logicalRangeChanged().unsubscribeAll(this),this._model.mainSeries().dataEvents().seriesTimeFrame().unsubscribeAll(this)}appliedTimeFrame(){return this._appliedTimeFrame}_appliedTimeFrameChanged(){this._model.timeScale().logicalRangeChanged().unsubscribe(this,this._invalidateAppliedTimeFrame)}_onSeriesTimeFrame(e,t,i,s){if(s){const e=this._model.timeScale();this._appliedTimeFrameInfo={logicalRange:e.logicalRange(),baseIndex:e.baseIndex()},e.logicalRangeChanged().subscribe(this,this._invalidateAppliedTimeFrame)}}_invalidateAppliedTimeFrame(){if(null===this._appliedTimeFrameInfo)return;const e=this._model.timeScale(),t=e.logicalRange(),i=e.baseIndex(),s=this._appliedTimeFrameInfo.logicalRange,r=this._appliedTimeFrameInfo.baseIndex;(null===t||null===s||Math.abs(i-t.left()-(r-s.left()))>=.01||Math.abs(i-t.right()-(r-s.right()))>=.01)&&this._appliedTimeFrame.setValue(null)}}},67396:(e,t,i)=>{"use strict";i.d(t,{defaultsPreferencesByWhiteList:()=>P,preferencesByWhiteList:()=>C});var s=i(80643),r=i(27759);var n=i(98125),o=i(3825),a=i(59803),l=i(47484),c=i(15840),h=i(49642);const d=(0,n.getLogger)("Chart.ApplyPreferencesToAllCharts"),u={color:"",style:0},p={autoScale:!1,autoScaleDisabled:!1,lockScale:!1,percentage:!1,percentageDisabled:!1,log:!1,logDisabled:!1,alignLabels:!1,isInverted:!1,indexedTo100:!1},_={backgroundType:h.ColorType.Solid,background:"",backgroundGradientStartColor:"",backgroundGradientEndColor:"",topMargin:0,bottomMargin:0,rightOffset:0,horzGridProperties:(0,c.deepExtend)({},u),vertGridProperties:(0,c.deepExtend)({},u),crossHairProperties:(0,c.deepExtend)({},{color:"",style:0,transparency:0,width:0}),legendProperties:(0,c.deepExtend)({},{showStudyArguments:!1,showStudyTitles:!1,showStudyValues:!1,showSeriesTitle:!1,showSeriesOHLC:!1,showLegend:!1,showBarChange:!0,showVolume:!1,showBackground:!0,backgroundTransparency:0}),axisProperties:(0,c.deepExtend)({},p),separatorColor:""},m={lineColor:"",textColor:"",fontSize:0,
scaleSeriesOnly:!1,showSeriesLastValue:!1,seriesLastValueMode:o.PriceAxisLastValueMode.LastValueAccordingToScale,showSeriesPrevCloseValue:!1,showStudyLastValue:!1,showSymbolLabels:!1,showStudyPlotLabels:!1,showBidAskLabels:!1,showPrePostMarketPriceLabel:!0,showFundamentalLastValue:!1,showFundamentalNameLabel:!1,showPriceScaleCrosshairLabel:!0,showTimeScaleCrosshairLabel:!0},g={...m},f={visible:!1,futureOnly:!1,breaks:(0,c.deepExtend)({},{color:"",visible:!1,style:0,width:0})},v={style:0,minTick:"",showPriceLine:!1,priceLineWidth:0,priceLineColor:"",baseLineColor:"",showPrevClosePriceLine:!1,showCountdown:!0,prevClosePriceLineWidth:0,sessionId:"regular",prevClosePriceLineColor:"",esdShowDividends:!1,esdShowSplits:!1,esdShowEarnings:!1,esdShowBreaks:!1,showContinuousContractSwitches:!1,showContinuousContractSwitchesBreaks:!1,dividendsAdjustment:!1,backAdjustment:!1,settlementAsClose:!0,statusViewStyle:(0,c.deepExtend)({},{fontSize:16,showExchange:!0,showInterval:!0,symbolTextSource:"description"}),priceAxisProperties:(0,c.deepExtend)({},p),highLowAvgPrice:(0,c.deepExtend)({},{highLowPriceLinesVisible:!1,highLowPriceLabelsVisible:!1,averageClosePriceLabelVisible:!1,averageClosePriceLineVisible:!1,highLowPriceLinesColor:"",highLowPriceLinesWidth:0,averagePriceLineColor:"",averagePriceLineWidth:0}),candleStyle:(0,c.deepExtend)({},{upColor:"",downColor:"",drawWick:!1,drawBorder:!1,drawBody:!0,borderColor:"",borderUpColor:"",borderDownColor:"",wickColor:"",wickUpColor:"",wickDownColor:"",barColorsOnPrevClose:!1}),hollowCandleStyle:(0,c.deepExtend)({},{upColor:"",downColor:"",drawWick:!1,drawBorder:!1,drawBody:!0,borderColor:"",borderUpColor:"",borderDownColor:"",wickColor:"",wickUpColor:"",wickDownColor:""}),barStyle:(0,c.deepExtend)({},{upColor:"",downColor:"",barColorsOnPrevClose:!1,dontDrawOpen:!1,thinBars:!0}),lineStyle:(0,c.deepExtend)({},{color:"",linestyle:0,linewidth:0,styleType:0}),areaStyle:(0,c.deepExtend)({},{color1:"",color2:"",linecolor:"",linestyle:0,linewidth:0,transparency:0}),baselineStyle:(0,c.deepExtend)({},{topFillColor1:"",topFillColor2:"",bottomFillColor1:"",bottomFillColor2:"",topLineColor:"",bottomLineColor:"",baselineColor:"",topLineWidth:0,bottomLineWidth:0,transparency:0,baseLevelPercentage:0}),hiloStyle:(0,c.deepExtend)({},{color:"",showBorders:!1,borderColor:"",showLabels:!1,labelColor:"",fontSize:0,drawBody:!0}),haStyle:(0,c.deepExtend)({},{upColor:"",downColor:"",drawWick:!1,drawBorder:!1,drawBody:!0,borderColor:"",borderUpColor:"",borderDownColor:"",wickColor:"",wickUpColor:"",wickDownColor:"",showRealLastPrice:!1,barColorsOnPrevClose:!1,inputs:{}}),renkoStyle:(0,c.deepExtend)({},{upColor:"",downColor:"",borderUpColor:"",borderDownColor:"",upColorProjection:"",downColorProjection:"",borderUpColorProjection:"",borderDownColorProjection:"",wickUpColor:"",wickDownColor:"",inputs:{boxSize:0,style:"",atrLength:0,wicks:!1,sources:"",source:""}}),pbStyle:(0,c.deepExtend)({},{upColor:"",downColor:"",borderUpColor:"",borderDownColor:"",upColorProjection:"",downColorProjection:"",
borderUpColorProjection:"",borderDownColorProjection:"",inputs:{source:"",lb:0}}),kagiStyle:(0,c.deepExtend)({},{upColor:"",downColor:"",upColorProjection:"",downColorProjection:"",inputs:{style:"",atrLength:0,reversalAmount:0}}),pnfStyle:(0,c.deepExtend)({},{upColor:"",downColor:"",upColorProjection:"",downColorProjection:"",inputs:{reversalAmount:0,boxSize:0,style:"",atrLength:0}}),rangeStyle:(0,c.deepExtend)({},{upColor:"",downColor:"",upColorProjection:"",downColorProjection:"",thinBars:!1,inputs:{range:0,phantomBars:!1}}),columnStyle:(0,c.deepExtend)({},{upColor:"",downColor:"",barColorsOnPrevClose:!1})},S={priceScaleSelectionStrategyName:"auto",timeScale:(0,c.deepExtend)({},{defaultRightOffset:0}),mainSeries:(0,c.deepExtend)({},v),sessions:(0,c.deepExtend)({},l.sessionsPreferencesDefault),paneProperties:(0,c.deepExtend)({},_),chartEventsSourceProperties:(0,c.deepExtend)({},f),tradingProperties:(0,c.deepExtend)({},r.tradingPreferencesDefault)},y={timezone:"",scalesProperties:(0,c.deepExtend)({},g),...S},b={scalesProperties:(0,c.deepExtend)({},m),...S};function w(e,t,i,r,n=!0){if(void 0===t[e])return d.logDebug(`We haven't had this property ${r}.${e} yet, please, remove it from whiteList`),null;if((0,s.isObject)(i[e])){const s=Object.keys(i[e]);let o="";return s.map(s=>({[s]:w(s,t[e],i[e],`${r}.${e}`,n)})).reduce((e,t)=>(o=Object.keys(t)[0],e[o]=t[o],e),{})}return n?t[e].value():t[e]}function C(e,t,i=y){const s={timezone:"",priceScaleSelectionStrategyName:"auto",timeScale:{defaultRightOffset:e.timeScale().defaultRightOffset().value()},mainSeries:{},sessions:{},paneProperties:{},scalesProperties:{},chartEventsSourceProperties:{},tradingProperties:{}},r=["timeScale","mainSeries","sessions"],n=i.mainSeries,o=Object.keys(i),a=Object.keys(n),l=t.properties(),c=e.properties(),h=i.sessions,d=Object.keys(h),u=e.sessions().properties();return a.forEach(e=>{s.mainSeries[e]=w(e,l,n,"mainSeries")}),d.forEach(e=>{s.sessions[e]=w(e,u,h,"sessions")}),o.forEach(e=>{r.includes(e)||(s[e]=w(e,c,i,"preferences"))}),s}function P(e,t,i=b){const s={timeScale:{defaultRightOffset:e.timeScale().rightOffsetDefaultValue()},mainSeries:{},sessions:(0,c.deepExtend)({},l.sessionsPreferencesDefault),paneProperties:{},scalesProperties:{},chartEventsSourceProperties:{},tradingProperties:{},priceScaleSelectionStrategyName:"auto"},r=["timeScale","mainSeries","sessions"],n=i.mainSeries,o=Object.keys(i),h=Object.keys(n),d=(0,a.factoryDefaults)("chartproperties.mainSeriesProperties"),u=(0,a.factoryDefaults)("chartproperties");return h.forEach(e=>{s.mainSeries[e]=w(e,d,n,"mainSeries",!1)}),o.forEach(e=>{r.includes(e)||(s[e]=w(e,u,i,"preferences",!1))}),s}},87426:(e,t,i)=>{"use strict";i.d(t,{axisLabelBackgroundColor:()=>r});var s=i(45112);const r={common:s.colorsPalette["color-tv-blue-500"],active:s.colorsPalette["color-tv-blue-800"]}},65862:(e,t,i)=>{"use strict";i.d(t,{createDwmAligner:()=>c,isAlignmentEnabled:()=>h,createTimeToBarTimeAligner:()=>d});var s=i(10480),r=i(67337),n=i(29823),o=i(29617),a=i(69177)
;const l=new o.SessionInfo("Etc/UTC","0000-0000:1234567");function c(e,t){if(!h()||!n.Interval.isDWM(e))return null;const i=new o.SessionInfo(t.timezone,t.session,t.session_holidays,t.corrections),r=(0,a.newBarBuilder)(e,i,l);return{timeToSessionStart:e=>r.tradingDayToSessionStart(e),timeToExchangeTradingDay:e=>{const t=s.utc_to_cal(i.timezone,e),r=i.spec.correctTradingDay(t);return s.set_hms(r,0,0,0,0,s.get_timezone("Etc/UTC")),r.getTime()}}}function h(){return!r.enabled("disable_resolution_rebuild")}function d(e,t){if(!h())return e=>e;const i=new o.SessionInfo(t.timezone,t.session,t.session_holidays,t.corrections),s=(0,a.newBarBuilder)(e,i,i,!1);return e=>s.alignTimeIfPossible(e)}},29617:(e,t,i)=>{"use strict";i.d(t,{SessionInfo:()=>o,BarBuilderBase:()=>a});var s=i(10480),r=i(68684),n=i(90388);class o{constructor(e,t,i,s){this.init(e,t,i,s),this._state={timezone:e,spec:t,holidays:i,corrections:s}}init(e,t,i,r){this.timezone=s.get_timezone(e),this.spec=new n.SessionSpec(e,t,i,r)}state(){return this._state}static fromState(e){return new o(e.timezone,e.spec,e.holidays,e.corrections)}}class a{alignTime(e){if(isNaN(e))return NaN;let t=this.indexOfBar(e);return t===r.SessionStage.POST_SESSION&&(this.moveTo(e),t=this.indexOfBar(e)),t<0?NaN:this.startOfBar(t)}}},69177:(e,t,i)=>{"use strict";i.r(t),i.d(t,{SessionInfo:()=>o.SessionInfo,alignExchangeTimeToSessionStartAndReturnUTC:()=>P,alignPeriodsBackForDataRequest:()=>y,alignPeriodsBackForVisibleRange:()=>b,getPeriodsBetweenDates:()=>C,isTradingNow:()=>T,newBarBuilder:()=>S});var s=i(10480),r=i(29823),n=i(64514),o=i(29617),a=i(68684);class l extends o.BarBuilderBase{constructor(e,t){super(),this._sessionStartMs=-Number.MAX_VALUE,this._sessionEndMs=-Number.MAX_VALUE,this._periodSec=e,this._session=t}alignTimeIfPossible(e){const t=this.alignTime(e);return isNaN(t)?e:t}indexOfBar(e){return e=this._sessionEndMs?a.SessionStage.POST_SESSION:(0,n.toInt)(s.time_seconds_diff(e,this._sessionStartMs)/this._periodSec)}startOfBar(e){if(e===a.SessionStage.PRE_SESSION){const e=s.get_cal_from_unix_timestamp_ms(this._session.timezone,this._sessionStartMs-1),t=this._session.spec.alignToNearestSessionEnd(e,-1);return s.cal_to_utc(this._session.timezone,t)}if(e===a.SessionStage.POST_SESSION)return this._sessionEndMs;if(e<0)throw new Error("Negative offset is not supported");return this._sessionStartMs+s.time_seconds(this._periodSec*e)}endOfBar(e){if(e<0)throw new Error("Index cannot be negative");const t=this.startOfBar(e)+1e3*this._periodSec;return t>this._sessionEndMs?this._sessionEndMs:t}isLastBar(e,t){return t>=this._sessionStartMs+s.time_seconds(this._periodSec*(e+1)-1)}moveTo(e){const t=this._session.timezone,i=s.utc_to_cal(t,e),r=this._session.spec.alignToSessionStart(i);this._sessionStartMs=s.cal_to_utc(t,i),s.add_minutes(i,r),this._sessionEndMs=s.cal_to_utc(t,i)}indexOfLastBarInSession(){return(0,n.toInt)((this._sessionEndMs-1-this._sessionStartMs)/1e3/this._periodSec)}moveNext(){this.moveTo(this._sessionEndMs)}}var c=i(26985)
;function h(e,t){const i=s.clone(t),r=e.businessDaysToCalendarDays(i,1);r>1&&s.add_date(i,r-1);const n=e.leftBorderOfDailyBar(i);if(null===n)throw new Error("Cannot calculate left border of daily bar");return s.cal_to_utc(s.get_timezone(e.timezone()),n)}class d extends o.BarBuilderBase{constructor(e,t,i,s,r=!1){super(),this._periodStart=-Number.MAX_VALUE,this._periodEnd=-Number.MAX_VALUE,this._periodLastBarStart=-Number.MAX_VALUE,this._periodStartDay=new c.BusinessDay(0,0,0),this._periodEndDay=new c.BusinessDay(0,0,0),this._period=i,this._sessionTgt=e,this._builder=s,this._useBusinessDays=r,this._sessionSrc=r?new o.SessionInfo("Etc/UTC","24x7"):t||e}builder(){return this._builder}alignTimeIfPossible(e){return this.tradingDayToSessionStart(e)}tradingDayToSessionStart(e){return this.moveTo(e),this.startOfBar(0)}indexOfBar(e){if(this._useBusinessDays){const t=c.BusinessDay.fromCalendar(s.get_cal_from_unix_timestamp_ms(this._sessionSrc.timezone,e));return t.before(this._periodStartDay)?a.SessionStage.PRE_SESSION:this._periodEndDay.before(t)?a.SessionStage.POST_SESSION:0}return e=this._periodEnd?a.SessionStage.POST_SESSION:0}startOfBar(e){if(e===a.SessionStage.PRE_SESSION){const e=s.get_cal_from_unix_timestamp_ms(this._sessionTgt.timezone,this._periodStart-1),t=this._sessionTgt.spec.alignToNearestSessionEnd(e,-1);return s.cal_to_utc(this._sessionTgt.timezone,t)-1}return e===a.SessionStage.POST_SESSION||e>0?this._periodEnd:e===a.SessionStage.LASTBAR_SESSION?this._periodLastBarStart:this._periodStart}moveTo(e){const t=s.get_cal_from_unix_timestamp_ms(this._sessionSrc.timezone,e);this._sessionSrc.spec.correctTradingDay(t);const i=s.get_year(t),r=this._indexOfPeriodInYear(t),n=r+this._period,o=this._sessionTgt.spec,a=this._sessionTgt.timezone,l=this._builder.startOfPeriod(a,r,i);this._periodStart=h(o,l);const d=s.clone(l),u=o.businessDaysToCalendarDays(d,1);u>1&&s.add_date(d,u-1),this._periodStartDay=c.BusinessDay.fromCalendar(d);const p=this._builder.startOfPeriod(a,n,i);this._periodEnd=h(o,p);const _=s.clone(p);for(s.add_date(_,-1);o.isCalWeekEnd(_);)s.add_date(_,-1);this._periodEndDay=c.BusinessDay.fromCalendar(_),s.add_date(p,-1),function(e,t){for(;e.isCalWeekEnd(t);)s.add_date(t,-1)}(this._sessionTgt.spec,p),this._periodLastBarStart=h(o,p),(this._periodLastBarStart=this._periodLastBarStart}currentRange(){return{from:this._periodStartDay,to:this._periodEndDay}}indexOfBarInYear(e){const t=s.get_cal_from_unix_timestamp_ms(this._sessionSrc.timezone,e),i=s.get_year(t),r=this._builder.indexOfPeriod(t),o=this._sessionTgt.timezone;let a=this._builder.startOfPeriod(o,r,i),l=h(this._sessionTgt.spec,a);return a=s.get_cal_from_unix_timestamp_ms(s.get_timezone("Etc/UTC"),l),i=0&&(r-=7),(0,n.toInt)((r+i)/7))}class _{indexOfPeriod(e){return s.get_day_of_year(e)-1}startOfPeriod(e,t,i){const r=s.days_per_year(i);return s.get_cal(s.get_timezone("Etc/UTC"),i,s.JANUARY,1+Math.min(t,r))}}class m extends _{constructor(e){super(),this._sessionsSpec=e}indexOfPeriod(e){return super.indexOfPeriod(e)-function(e,t){const i=p(e,t),r=s.get_cal(s.get_timezone("Etc/UTC"),s.get_year(t),s.JANUARY,1);s.add_date(r,7*i);const n=i*e.weekEndsCount()+e.holidaysFromYearStart(r),o=s.get_day_of_year(t)-s.get_day_of_year(r);return n+o-e.calendarDaysToBusinessDays(r,o)}(this._sessionsSpec,e)}startOfPeriod(e,t,i){const r=7-this._sessionsSpec.weekEndsCount(),o=Math.max(0,(0,n.toInt)(t/r)-1),a=s.get_cal(s.get_timezone("Etc/UTC"),i,s.JANUARY,1),l=s.get_days_per_year(a);if(s.add_date(a,7*o),(t-=r*o-this._sessionsSpec.holidaysFromYearStart(a))>0){const e=this._sessionsSpec.businessDaysToCalendarDays(a,t);s.add_date(a,e)}let c=s.get_day_of_year(a)-1;return is.get_days_per_year(r)?this.startOfPeriod(e,0,i+1):(s.add_date(r,a),r)}}class v{indexOfPeriod(e){return s.get_month(e)}startOfPeriod(e,t,i){if(t<0){const e=(0,n.toInt)((11-t)/12);i-=e,t+=12*e}else t>s.DECEMBER&&(i++,t=s.JANUARY);return s.get_cal(s.get_timezone("Etc/UTC"),i,t,1)}}function S(e,t,i,s=!1){const n=r.Interval.parse(e),o=n.multiplier();return n.isMinutes()?new l(60*o,t):n.isSeconds()?new l(o,t):n.isTicks()?new l(1,t):n.isRange()?new l(60*o,t):new d(t,i,o,function(e,t){switch(e){case r.ResolutionKind.Days:return new g(t);case r.ResolutionKind.Weeks:return new f(t);case r.ResolutionKind.Months:return new v}throw new Error("Unknown dwm resolution: "+e)}(n.kind(),t),s)}
function y(e,t,i,s,r,n,o){return w(e,t,i,s,r,n,o,0)}function b(e,t,i,s,r,n,o){return w(e,t,i,s,r,n,o,1)}function w(e,t,i,s,n,a,l,c){const h=r.Interval.parse(n+s);if(h.isMonths()){const e=new Date(l);return 0===c&&e.setUTCDate(1),function(e,t){x(e,Math.floor(t/12));let i=e.getUTCMonth()-t%12;i<0&&(x(e,1),i+=12);e.setUTCMonth(i);for(;e.getUTCMonth()!==i;)I(e,1)}(e,a*h.multiplier()),e.getTime()}const d=new o.SessionInfo("Etc/UTC",e,t,i),u=h.inMilliseconds(),p=h.isDWM();let _;_=p?864e5:60*d.spec.maxTradingDayLength()*1e3;let m=0;m=h.isWeeks()?7:7-d.spec.weekEndsCount();const g=_/u,f=m*g;let v;if(a=g&&(f=_/6048e5*g),Math.ceil(f)}function P(e,t){const i=s.clone(t);return e.alignToSessionStart(i),s.cal_to_utc(s.get_timezone(e.timezone()),i)}function T(e,t){const i=s.utc_to_cal(t.timezone,+e);let r=s.get_day_of_week(i),n=s.get_minutes_from_midnight(i);const o=t.spec.findSession(t.spec.getWeekIndex(i),r,n).getEntry();return o.isOvernight()&&n>o.startOffset()+o.length()&&r===o.dayOfWeek()-1&&(r++,n-=1440),r===o.dayOfWeek()&&n>=o.startOffset()&&n{"use strict";i.d(t,{BusinessDay:()=>r});var s=i(10480);class r{constructor(e,t,i){this.year=e,this.month=t,this.day=i}toString(){return`${this.year}-${this.month}-${this.day}`}compareTo(e){return this.year>e.year||this.year===e.year&&this.month>e.month||this.year===e.year&&this.month===e.month&&this.day>e.day?1:this.year===e.year&&this.month===e.month&&this.day===e.day?0:-1}before(e){return-1===this.compareTo(e)}toCalendar(e){return s.get_cal(s.get_timezone("Etc/UTC"),this.year,this.month-1,this.day)}addDays(e){const t=this.toCalendar(s.get_timezone("Etc/UTC"));return s.add_date(t,e),r.fromCalendar(t)}static fromCalendar(e){return new r(s.get_year(e),s.get_month(e)+1,s.get_day_of_month(e))}}},68684:(e,t,i)=>{"use strict";var s;i.d(t,{SessionStage:()=>s}),function(e){e[e.PRE_SESSION=-1]="PRE_SESSION",e[e.POST_SESSION=-2]="POST_SESSION",e[e.LASTBAR_SESSION=-3]="LASTBAR_SESSION"}(s||(s={}))},11075:(e,t,i)=>{"use strict";i.d(t,{extrapolateBarsFrontToTime:()=>r,extrapolateBarsFrontByCount:()=>n});var s=i(68684);function r(e,t,i,s,n=!1){if(t>i){const o=r(e,i,t,s,n);return o.count=-o.count,o}return o(e,t,1,(e,t)=>t>i||0!==s&&e>s,n)}function n(e,t,i,s=!1){const r=i<0?-1:1;return o(e,t,r,(e,t)=>e>=i*r,s)}function o(e,t,i,r,n){let o=0,a=t;e.moveTo(a);let l=0,c=Number.MAX_VALUE,h=!1,d=t;const u=[]
;for(;!r(o,a);){if(l>15)throw new Error("Internal error 0x10 while extrapolating.");const r=e.indexOfBar(a);if(r===s.SessionStage.PRE_SESSION&&1===i)a=e.startOfBar(0),e.moveTo(a);else if(r===s.SessionStage.PRE_SESSION&&-1===i)a=e.startOfBar(s.SessionStage.PRE_SESSION),e.moveTo(a);else if(r===s.SessionStage.POST_SESSION&&1===i)a=e.startOfBar(s.SessionStage.POST_SESSION),e.moveTo(a);else{if(r===s.SessionStage.POST_SESSION&&-1===i)throw new Error("Internal error 0x12 while extrapolating.");{const p=e.startOfBar(r);if(p>t&&i>0||t>p&&i<0){if(h&&c===p)throw new Error("Internal error 0x11 while extrapolating.");h=!0,c=p,l=0,o++,d=p,n&&u.push(d)}if(0===r&&-1===i)a=p-1;else{a=e.startOfBar(r+i);const t=e.startOfBar(s.SessionStage.POST_SESSION);a>t&&(e.moveTo(t),a=e.startOfBar(0))}}}l++}return{time:d,times:u,count:o}}},37415:(e,t,i)=>{"use strict";i.d(t,{PrePostMarketBarIdentifier:()=>n});var s=i(10480);function r(e,t){return null!==t&&t.to>e&&e>=t.from}class n{constructor(e,t,i,s){this._timezone=e,this._regularSessionSpec=t,this._preMarketSessionSpec=i,this._postMarketSessionSpec=s}getPreAndPostMarketTimes(e){if(0===e.length)return{preMarket:[],postMarket:[]};const t=[],i=[];let r=null,n=null,o=e[0],a=(0,s.utc_to_cal)(this._timezone,o);this._isInPreMarketSession(a)&&(n=o);for(let l=1;l{"use strict";i.d(t,{SessionSpec:()=>f});var s=i(10480),r=i(55257),n=i(26985);function o(e,t){return e.compareTo(t)}class a{constructor(e,t,i){this._dayOfWeek=e,this._start=t,this._length=i}start(){return this._start+s.minutesPerDay*this.sessionStartDaysOffset()}startOffset(){return this._start}sessionStartDaysOffset(){return this._start>=0?0:this._start%s.minutesPerDay==0?-Math.ceil(this._start/s.minutesPerDay):-Math.floor(this._start/s.minutesPerDay)}sessionEndDaysOffset(){const e=this._start+this._length;return e>=0?0:e%s.minutesPerDay==0?-Math.ceil(e/s.minutesPerDay):-Math.floor(e/s.minutesPerDay)}isOvernight(){return this._start<0}dayOfWeek(){return this._dayOfWeek}sessionStartDayOfWeek(){let e=this._dayOfWeek-this.sessionStartDaysOffset();return es.SATURDAY&&(e=1),e}length(){return this._length}weight(){return this._dayOfWeek*s.minutesPerDay+this._start}compareTo(e){const t=this.weight(),i=t+this._length,s=e.weight(),r=s+e._length
;return t<=s&&ss?1:-1}contains(e){const t=60*s.get_hours(e)+s.get_minutes(e);let i=s.get_day_of_week(e)-this._dayOfWeek;i>0&&(i-=7);const r=i*s.minutesPerDay+t;return r>=this._start&&r=48&&e<=57}class _{constructor(){this.entries=[],this.firstDayOfWeek=s.MONDAY,this.weekEndsCount=-1,this.maxTradingDayLength=0}parseSessions(e,t){var i;let s=!1;this._clear(),this.timezone=e;const{hasErrors:r,spec:n}=this._parseFirstDayOfWeek(t);if("24x7"===n.toLowerCase())for(const e of d)this.entries.push(_._createSessionEntry(e,0,0,0,0));else{let e=!1;const t=new Map;for(const i of n.split("|")){const r=i.split(":");if(1!==r.length&&2!==r.length){s=!0,u.logError("Bad session section: "+i);continue}const n=1===r.length;if(n){if(e){s=!0,u.logError("Duplicated default section: "+i);continue}e=!0}const o=n?h:_._parseWorkingDays(r[1]);for(const e of o)n&&t.has(e)||t.set(e,r[0])}for(const e of d){const i=t.get(e);if(void 0!==i)for(const t of i.split(",")){const{hasErrors:i,sessionEntry:r}=_._parseSessionEntry(e,t);i&&(s=i),this.entries.push(r)}}}this.entries.sort(o);const a=new Map;for(const e of this.entries){const t=e.dayOfWeek();a.set(t,e.length()+(null!==(i=a.get(t))&&void 0!==i?i:0))}return this.maxTradingDayLength=0,a.forEach(e=>{this.maxTradingDayLength=Math.max(this.maxTradingDayLength,e)}),this.weekEndsCount=7-a.size,s||r}static parseHolidaysAndCorrections(e,t,i){const r=new Map,n=new Map,o=e=>{const t=this._parseDay(e),i=t.toString(),s=n.get(i);return void 0!==s?s:(n.set(i,t),t)};if(""!==t){const e=[];for(const i of t.split(",")){if(8!==i.length)throw new Error("bad holiday date: "+i);const t=o(i);r.set(t,e)}}if(""===i)return r;const l=s.get_timezone("Etc/UTC");for(const e of i.split(";")){const t=e.split(":");if(2!==t.length)throw new Error("bad correction section: "+e);const i=[];if("dayoff"!==t[0])for(const e of t[0].split(","))i.push(this._parseSessionEntry(1,e).sessionEntry);for(const e of t[1].split(",")){if(8!==e.length)throw new Error("bad correction date: "+e);const t=o(e),n=s.get_day_of_week(s.get_cal(l,t.year,t.month-1,t.day)),c=[];for(const e of i)c.push(new a(n,e.startOffset(),e.length()));r.set(t,c)}}return r}_clear(){this.entries=[],this.timezone="",this.firstDayOfWeek=s.MONDAY,this.weekEndsCount=-1}_parseFirstDayOfWeek(e){const t=e.split(";");if(t.length>2)return u.logError("Only one `first day` specification expected @ session "+e),{hasErrors:!0,spec:e};if(1===t.length)return{hasErrors:!1,spec:e};let i=1;let r=t[0].indexOf("-")>=0?NaN:parseInt(t[0]);return isNaN(r)&&(i=0,r=parseInt(t[1])),rs.SATURDAY?(u.logError(`Unexpected day index @ session: ${e}; day index ${r}`),{hasErrors:!0,spec:e}):(this.firstDayOfWeek=r,{
hasErrors:!1,spec:t[i]})}static _parseDay(e){const t=parseInt(e.substring(0,4)),i=parseInt(e.substring(4,6)),s=parseInt(e.substring(6,8));return new n.BusinessDay(t,i,s)}static _parseSessionEntry(e,t){let i=!1,s=t.split("-");2!==s.length&&(i=!0,u.logError("Bad sessions entry: "+t),s=["0000","0000"]);let r=0,n=s[0];if(n.includes("F")){const e=n.split("F");n=e[0],r=""!==e[1]?parseInt(e[1]):1}let o=0,a=s[1];if(a.includes("F")){const e=a.split("F");a=e[0],o=""!==e[1]?parseInt(e[1]):1}if(!this._isCorrectSession(n)||!this._isCorrectSession(a))throw new Error("Incorrect entry syntax: "+t);const l=n,c=a;return{hasErrors:i,sessionEntry:this._createSessionEntry(e,_._minutesFromHHMM(l),_._minutesFromHHMM(c),r,o)}}static _isCorrectSession(e){return 4===e.length&&p(e.charCodeAt(0))&&p(e.charCodeAt(1))&&p(e.charCodeAt(2))&&p(e.charCodeAt(3))}static _parseWorkingDays(e){const t=[];for(let i=0;i0&&(t-=r*s.minutesPerDay),n>0&&(i-=n*s.minutesPerDay);return new a(e,t,i-t)}}function m(e,t){return e.compareTo(t)<0}function g(e,t){const i=(0,r.lowerbound)(e,t,(e,t)=>-1===e.day.compareTo(t));return i===e.length?null:e[i]}class f{constructor(e="Etc/UTC",t="0000-0000",i="",r=""){this._entries=[],this._firstDayOfWeek=s.MONDAY,this._entriesHash=new Map,this._holidayAndCorrectionMap=new Map,this._holidaySessions=[];const n=new _;n.parseSessions(e,t),this._entries=n.entries,this._timezone=n.timezone,this._spec=t,this._firstDayOfWeek=n.firstDayOfWeek,this._weekEndsCount=n.weekEndsCount,this._maxTradingDayLength=n.maxTradingDayLength;const o=_.parseHolidaysAndCorrections(e,i,r),a=s.get_timezone(e);this._isThereCorrections=""!==i||""!==r,o.forEach((e,t)=>{this._holidayAndCorrectionMap.set(t.toString(),e),this._holidaySessions.push({day:t,sessions:e});const i=this.getWeekIndex(t.toCalendar(a));this._entriesHash.set(i,null)}),this._holidaySessions.sort((e,t)=>e.day.compareTo(t.day))}entries(){return this._entries}timezone(){return this._timezone}spec(){return this._spec}firstDayOfWeek(){return this._firstDayOfWeek}addSessionEntry(e,t,i,r,n){0===i&&(i=s.minutesPerDay),r===n&&i<=t&&(r+=1),r>0&&(t-=r*s.minutesPerDay),n>0&&(i-=n*s.minutesPerDay);const o=i-t;this._entries.push(new a(e,t,o))}longestSessionLength(){let e=0,t=0;for(const t of this._holidaySessions)t.sessions.forEach(t=>{e=Math.max(e,t.length())});return this._entries.forEach(e=>{t=Math.max(t,e.length())}),Math.max(e,t)}isWeekEnd(e){const t=(0,r.lowerbound)(this._entries,new a(e,0,0),(e,t)=>e.dayOfWeek()this._entries.length-1||this._entries[t].dayOfWeek()!==e}isCalWeekEnd(e){const t=s.get_day_of_week(e);if(!this._isThereCorrections)return this.isWeekEnd(t);const i=n.BusinessDay.fromCalendar(e),r=this._holidayAndCorrectionMap.get(i.toString());return void 0===r?this.isWeekEnd(t):0===r.length}hasWeekEnds(){return this.weekEndsCount()>0}weekEndsCount(){
return this._weekEndsCount}maxTradingDayLength(){return this._maxTradingDayLength}holidaysFromYearStart(e){if(!this._isThereCorrections)return 0;const t=s.get_timezone(this._timezone),i=new n.BusinessDay(s.get_year(e),s.JANUARY,1),r=n.BusinessDay.fromCalendar(e);let o=0;const a=this._selectHolidays(i,r);for(let e=0;et.start()%e==0&&t.length()%e==0)}indexOfSession(e,t,i){const n=this._getEntriesForWeek(e);let o=(0,r.lowerbound)(n,new a(t,i,0),m);if(o!==n.length)return new l(e,o,n);let c=e;const h=7-t+this._firstDayOfWeek-1;for(i=-(s.minutesPerDay-i+h*s.minutesPerDay);;){c++;const e=this._getEntriesForWeek(c);if(0!==e.length)return o=(0,r.lowerbound)(e,new a(this._firstDayOfWeek,i,0),m),new l(c,o,e)}}findSession(e,t,i,s=0){const r=this.indexOfSession(e,t,i),n=r.entries;let o=r.entryIndex;if(0!==s){const e=n[o].dayOfWeek(),t=s>0?1:-1;for(;;){const i=o+t;if(i<0||i>=n.length||n[i].dayOfWeek()!==e)break;o=i}}return new l(r.weekIndex,o,n)}getWeekIndex(e){if(!this._isThereCorrections)return 0;const t=s.get_day_of_week(e)-s.SUNDAY,i=s.get_timezone("Etc/UTC"),r=s.get_cal(i,s.get_year(e),s.get_month(e),s.get_day_of_month(e)-t);return Math.floor((r.getTime()+621672192e5)/1e3/86400/7)}correctTradingDay(e){const t=s.get_day_of_week(e),i=60*s.get_hours(e)+s.get_minutes(e),r=this.getWeekIndex(e),n=this.findSession(r,t,i,0),o=n.getEntry().dayOfWeek()-t+7*(n.weekIndex-r);return 0!==o&&s.add_date(e,o),e}alignToSessionStart(e,t=0){const i=s.get_day_of_week(e),r=60*s.get_hours(e)+s.get_minutes(e),n=this.getWeekIndex(e),o=this.findSession(n,i,r,t),a=o.getEntry(),l=a.dayOfWeek()-i+7*(o.weekIndex-n);0!==l&&s.add_date(e,l);const c=a.startOffset();return s.set_hms(e,c/60,c%60,0,0,s.get_timezone(this._timezone)),a.length()}businessDaysToCalendarDays(e,t){let i=this.getWeekIndex(e),r=s.get_day_of_week(e),n=0,o=0;for(;oi);)e[a].dayOfWeek()=t)return n}i++,r=s.SUNDAY}return n}calendarDaysToBusinessDays(e,t){let i=this.getWeekIndex(e),r=s.get_day_of_week(e),n=0,o=0;for(;ni);)e[a].dayOfWeek()=t)return o}i++,r=s.SUNDAY}return o}alignToNearestSessionStart(e,t){return this._alignToNearestSessionValue(e,t,this._entrySessionStart.bind(this))}alignToNearestSessionEnd(e,t){return this._alignToNearestSessionValue(e,t,this._entrySessionEnd.bind(this))}leftBorderOfDailyBar(e){const t=this._getEntriesForDay(e);return 0===t.length?null:(t.sort(o),this._getLeftEntryBorder(e,t[0]))}bordersOfDailyBar(e){const t=this._getEntriesForDay(e);if(0===t.length)return null;t.sort(o);const i=this._getLeftEntryBorder(e,t[0]),r=t[t.length-1],n=s.clone(e)
;let a=60*(r.startOffset()+r.length())-1;const l=Math.floor(a/3600);return a-=3600*l,s.set_hms(n,l,a/60,a%60,0,s.get_timezone(this._timezone)),{from:i,to:n}}getEntriesForWeekByCalendar(e){const t=this.getWeekIndex(e);return this._getEntriesForWeek(t)}_getEntriesForWeek(e){let t=this._entriesHash.get(e);if(void 0===t)return this._entries;if(null!==t)return t;const i=s.get_timezone(this._timezone);t=this._entries.slice();const r=this._weekIndexToCalendar(e),a=this._weekIndexToCalendar(e+1),l=n.BusinessDay.fromCalendar(r),c=n.BusinessDay.fromCalendar(a),h=this._selectHolidays(l,c);for(const e of h){const r=e.day.toCalendar(i),n=s.get_day_of_week(r);t=t.filter(e=>e.dayOfWeek()!==n),t=t.concat(e.sessions)}return t.sort(o),this._entriesHash.set(e,t),t}_selectHolidays(e,t){const i=[];let s=e;for(;;){const e=g(this._holidaySessions,s);if(null===e)return i;if(!e.day.before(t))return i;i.push(e),s=e.day.addDays(1)}}_weekIndexToCalendar(e){const t=1e3*(86400*e*7+86400)-621672192e5,i=s.get_cal_from_unix_timestamp_ms(s.get_timezone("Etc/UTC"),t),r=s.get_timezone("Etc/UTC");return s.get_cal(r,s.get_year(i),s.get_month(i),s.get_day_of_month(i))}_alignToNearestSessionValue(e,t,i){const r=s.get_day_of_week(e),n=60*s.get_hours(e)+s.get_minutes(e),o=this.getWeekIndex(e);let a=this.findSession(o,r,n);if(a.getEntry().contains(e)&&o===a.weekIndex||1===t)return i(a,s.clone(e),t);let c=a.entryIndex-1;if(c<0){let e=a.weekIndex,t=a.entries;for(;c<0;)e--,t=this._getEntriesForWeek(e),c+=t.length;a=new l(e,c,t)}else a=new l(a.weekIndex,c,a.entries);return i(a,s.clone(e),t)}_entrySessionStart(e,t,i){return this._entrySessionValue(e,t,i,e=>60*e.start())}_entrySessionEnd(e,t,i){return this._entrySessionValue(e,t,i,e=>60*(e.start()+e.length())-1)}_entrySessionValue(e,t,i,r){let n=s.get_day_of_week(t);const o=e.getEntry();let a=o.dayOfWeek()-o.sessionStartDaysOffset();const l=this.getWeekIndex(t);let c=e.weekIndex-l,h=!1;if(a0&&i>=0||c<0&&i<0)&&s.add_date(t,7*c),!o.contains(t)){let e=a-n;h&&i<0&&(e=-(7-a+n)),s.add_date(t,e),n=s.get_day_of_week(t)}o.isOvernight()&&n===o.dayOfWeek()&&s.add_date(t,-o.sessionStartDaysOffset());let d=r(o);const u=Math.floor(d/3600);return d-=3600*u,s.set_hms(t,u,d/60,d%60,0,s.get_timezone(this._timezone)),t}_getEntriesForDay(e){const t=s.get_day_of_week(e);return this._getEntriesForWeek(this.getWeekIndex(e)).filter(e=>e.dayOfWeek()===t)}_getLeftEntryBorder(e,t){const i=s.clone(e),r=t.startOffset();return s.set_hms(i,r/60,r%60,0,0,s.get_timezone(this._timezone)),i}}},33981:(e,t,i)=>{"use strict";var s=i(71053).PlotRowSearchMode,r=i(68906).rgbaFromInteger;function n(){this.backColorers=[]}function o(e){n.call(this),this._series=e}function a(e,t){n.call(this),this._study=e,this._plotIndex=t}n.prototype.barStyle=function(e,t,i){for(var s={},r=this.backColorers.length-1;r>=0;r--)this.backColorers[r].applyBarStyle(e,t,s,i);return this.applyBarStyle(e,t,s,i),s},n.prototype.pushBackBarColorer=function(e){this.backColorers.push(e)},n.prototype.applyBarStyle=function(e,t,i){
throw new Error("This function is supposed to be reimplemented in a subclass")},inherit(o,n),o.upColor=function(e,t){switch(e.style.value()){case TradingView.Series.STYLE_LINE:return e.lineStyle.color.value();case TradingView.Series.STYLE_AREA:return e.areaStyle.linecolor.value();case TradingView.Series.STYLE_BARS:return e.barStyle.upColor.value();case TradingView.Series.STYLE_CANDLES:return e.candleStyle.upColor.value();case TradingView.Series.STYLE_HOLLOW_CANDLES:return e.hollowCandleStyle.upColor.value();case TradingView.Series.STYLE_HEIKEN_ASHI:return e.haStyle.upColor.value();case TradingView.Series.STYLE_BASELINE:return e.baselineStyle.topLineColor.value();case TradingView.Series.STYLE_HILO:return e.hiloStyle.color.value();case TradingView.Series.STYLE_COLUMNS:return e.columnStyle.upColor.value()}throw new Error("Unknown series style")},o.downColor=function(e,t){switch(e.style.value()){case TradingView.Series.STYLE_LINE:return e.lineStyle.color.value();case TradingView.Series.STYLE_AREA:return e.areaStyle.linecolor.value();case TradingView.Series.STYLE_BARS:return e.barStyle.downColor.value();case TradingView.Series.STYLE_CANDLES:return e.candleStyle.downColor.value();case TradingView.Series.STYLE_HOLLOW_CANDLES:return e.hollowCandleStyle.downColor.value();case TradingView.Series.STYLE_HEIKEN_ASHI:return e.haStyle.downColor.value();case TradingView.Series.STYLE_BASELINE:return e.baselineStyle.bottomLineColor.value();case TradingView.Series.STYLE_HILO:return e.hiloStyle.color.value();case TradingView.Series.STYLE_COLUMNS:return e.columnStyle.downColor.value()}throw new Error("Unknown series style")},o.prototype._applyLineStyle=function(e,t,i,s,r){i.barColor=o.upColor(r)},o.prototype._applyAreaStyle=function(e,t,i,s,r){i.barColor=o.upColor(r)},o.prototype._applyBarStyle=function(e,t,i,s,r){var n=o.upColor(r),a=o.downColor(r),l=this.findBar(e,!1,s);if(r.barStyle.barColorsOnPrevClose.value()){var c=this.findPrevBar(e,!1,s);i.barColor=c[TradingView.CLOSE_PLOT]<=l[TradingView.CLOSE_PLOT]?n:a,i.barBorderColor=c[TradingView.CLOSE_PLOT]<=l[TradingView.CLOSE_PLOT]?n:a}else i.barColor=l[TradingView.OPEN_PLOT]<=l[TradingView.CLOSE_PLOT]?n:a,i.barBorderColor=l[TradingView.OPEN_PLOT]<=l[TradingView.CLOSE_PLOT]?n:a},o.prototype._applyCandleStyle=function(e,t,i,s,r){var n,a=o.upColor(r,t),l=o.downColor(r,t),c=r.candleStyle.borderUpColor?r.candleStyle.borderUpColor.value():r.candleStyle.borderColor.value(),h=r.candleStyle.borderDownColor?r.candleStyle.borderDownColor.value():r.candleStyle.borderColor.value(),d=r.candleStyle.wickUpColor?r.candleStyle.wickUpColor.value():r.candleStyle.wickColor.value(),u=r.candleStyle.wickDownColor?r.candleStyle.wickDownColor.value():r.candleStyle.wickColor.value(),p=this.findBar(e,!1,s);r.candleStyle.barColorsOnPrevClose.value()&&this._series.data().first().index!==e?n=this.findPrevBar(e,!1,s)[TradingView.CLOSE_PLOT]<=p[TradingView.CLOSE_PLOT]:n=p[TradingView.OPEN_PLOT]<=p[TradingView.CLOSE_PLOT];i.barColor=n?a:l,i.barBorderColor=n?c:h,i.barWickColor=n?d:u},
o.prototype._applyHollowCandleStyle=function(e,t,i,s,r){var n,a=o.upColor(r,t),l=o.downColor(r,t),c=r.hollowCandleStyle.borderUpColor?r.hollowCandleStyle.borderUpColor.value():r.hollowCandleStyle.borderColor.value(),h=r.hollowCandleStyle.borderDownColor?r.hollowCandleStyle.borderDownColor.value():r.hollowCandleStyle.borderColor.value(),d=r.hollowCandleStyle.wickUpColor?r.hollowCandleStyle.wickUpColor.value():r.hollowCandleStyle.wickColor.value(),u=r.hollowCandleStyle.wickDownColor?r.hollowCandleStyle.wickDownColor.value():r.hollowCandleStyle.wickColor.value(),p=this.findBar(e,!1,s),_=this.findPrevBar(e,!1,s);n=this._series.data().first().index!==e?_[TradingView.CLOSE_PLOT]<=p[TradingView.CLOSE_PLOT]:p[TradingView.OPEN_PLOT]<=p[TradingView.CLOSE_PLOT],i.barColor=n?a:l,i.barBorderColor=n?c:h,i.barWickColor=n?d:u,i.isBarHollow=p[TradingView.OPEN_PLOT]<=p[TradingView.CLOSE_PLOT]},o.prototype._applyHAStyle=function(e,t,i,s,r){var n,a=o.upColor(r,t),l=o.downColor(r,t),c=r.haStyle.borderUpColor.value(),h=r.haStyle.borderDownColor.value(),d=r.haStyle.wickUpColor.value(),u=r.haStyle.wickDownColor.value(),p=this.findBar(e,t,s);r.haStyle.barColorsOnPrevClose.value()?n=this.findPrevBar(e,t,s)[TradingView.CLOSE_PLOT]<=p[TradingView.CLOSE_PLOT]:n=p[TradingView.OPEN_PLOT]<=p[TradingView.CLOSE_PLOT];i.barColor=n?a:l,i.barBorderColor=n?c:h,i.barWickColor=n?d:u},o.prototype._applyBaseLineStyle=function(e,t,i,s,r){var n=this.findBar(e,t,s),a=r.baselineStyle,l=this._series.priceScale(),c=Math.round(l.height()*(Math.abs(100-a.baseLevelPercentage.value())/100)),h=this._series.firstValue(),d=l.coordinateToPrice(c,h);n[TradingView.CLOSE_PLOT]>d?i.barColor=o.upColor(r,t):i.barColor=o.downColor(r,t)},o.prototype._applyHiLoStyle=function(e,t,i,s,r){i.barColor=o.upColor(r,t),i.barBorderColor=r.hiloStyle.borderColor.value()},o.prototype._applyColumnStyle=function(e,t,i,s,r){var n=o.upColor(r),a=o.downColor(r),l=this.findBar(e,!1,s);if(r.columnStyle.barColorsOnPrevClose.value()){var c=this.findPrevBar(e,!1,s);i.color=c[TradingView.CLOSE_PLOT]<=l[TradingView.CLOSE_PLOT]?n:a}else i.color=l[TradingView.OPEN_PLOT]<=l[TradingView.CLOSE_PLOT]?n:a;i.barColor=i.color},o.prototype.applyBarStyle=function(e,t,i,s){i||(i={}),i.barColor=null,i.barBorderColor=null,i.barWickColor=null,i.isBarHollow=null,i.isBarUp=null,i.upColor=null,i.downColor=null,i.isTwoColorBar=null,i.isMergedBar=null;var r=this._series.properties();switch(r.style.value()){case TradingView.Series.STYLE_LINE:this._applyLineStyle(e,t,i,s,r);break;case TradingView.Series.STYLE_AREA:this._applyAreaStyle(e,t,i,s,r);break;case TradingView.Series.STYLE_BARS:this._applyBarStyle(e,t,i,s,r);break;case TradingView.Series.STYLE_CANDLES:this._applyCandleStyle(e,t,i,s,r);break;case TradingView.Series.STYLE_HOLLOW_CANDLES:this._applyHollowCandleStyle(e,t,i,s,r);break;case TradingView.Series.STYLE_HEIKEN_ASHI:this._applyHAStyle(e,t,i,s,r);break;case TradingView.Series.STYLE_BASELINE:this._applyBaseLineStyle(e,t,i,s,r);break;case TradingView.Series.STYLE_HILO:this._applyHiLoStyle(e,t,i,s,r);break
;case TradingView.Series.STYLE_COLUMNS:this._applyColumnStyle(e,t,i,s,r)}return i},o.prototype.getSeriesBars=function(e){return e?this._series.nsBars():this._series.bars()},o.prototype._findBarFieldValue=function(e,t,i){var s=this.getSeriesBars(i).valueAt(e);if(null!==s)return s[t]},o.prototype.findBar=function(e,t,i){return i?i.value:this.getSeriesBars(t).valueAt(e)||[]},o.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(a,n),a.prototype.getBars=function(){return this._study.series().bars()},a.prototype.firstColoredBar=function(e){for(var t=e,i=0;ie+l)return i;var c=s.styles[a.id];if(c.visible&&!c.visible.value())return i;var h=o.valueAt(e-l);if(null===h)return i;var d=h[this._plotIndex+1];if(null==d)return i;if(d=Math.round(d),n.isRGB)i.barColor=r(d),i.upColor=i.barColor,i.downColor=i.barColor;else{var u=n.plots[this._plotIndex].palette,p=s.palettes[u],_=n.palettes[u].valToIndex?n.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=o,t.StudyBarColorer=a},81688:(e,t,i)=>{"use strict";i.d(t,{BarsRange:()=>r});var s=i(88537);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)}}},36244:(e,t,i)=>{"use strict";i.d(t,{ChartModelBase:()=>Vi});var s=i(4889),r=i(88537),n=i(86441),o=i(24377),a=i(45112),l=i(45345),c=i(6087),h=i(51768),d=i(81836),u=i(76422),p=i(11417),_=i(27759),m=i(35878),g=i(55257),f=i(14291);function v(e){return(0,f.isLineTool)(e)&&e.boundToSymbol()||!1}class S{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&&!v(this._items[0])&&this.clear(),v(e)){const t=(0,g.lowerbound)(this._items,e,(e,t)=>e.zorder()!(0,m.isDataSource)(e))),this._customSourcesCache}checkLineToolSelection(){this._items.forEach(e=>(0,f.isLineTool)(e)&&e.calcIsActualSymbol()),this._items=this._items.filter(e=>!(0,f.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 y=i(31752),b=i.n(y),w=i(25270),C=i(29823),P=i(88564),T=i(2015),x=i.n(T),I=i(52640),M=i(22799);class L{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,I.makeFont)(i,M.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 A=i(27982),E=i(54376),k=i(97098),D=i(59803),V=i(99305),B=i(67337),N=i(37667),R=i(47484),O=i(33291);const F=new k.PriceFormatter;class W extends V.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 P.DefaultProperty("sessions"),(0,D.applyDefaultsOverrides)(this._properties.childs().graphics,void 0,!1,"sessions"),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 A.StudyDataSource(t.chartApi(),s.seriesSource(),"sessions_",this._metaInfo),this._createPaneViews(),this._studySource.dataCleared().subscribe(this,this.updateAllViews.bind(this,(0,O.dataSourceChangeEvent)(e))),this._studySource.dataUpdated().subscribe(this,this.updateAllViews.bind(this,(0,O.dataSourceChangeEvent)(e))),this._studySource.setInputs({}),this._processHibernate()))}),
t.timeScale().onReset().subscribe(this,this._clearData),t.timeScale().logicalRangeChanged().subscribe(this,this.updateAllViews.bind(this,(0,O.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,D.applyPropertiesOverrides)(this._properties.childs().graphics,void 0,!1,e,"sessions"),this._model.updateSource(this)}start(){this._isStarted=!0,this._processHibernate()}restart(){this._clearData(),B.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,r.ensureNotNull)(this._studySource).graphics()}properties(){return this._properties}graphicsInfo(){return(0,r.ensureNotNull)(this._metaInfo).graphics}firstValue(e){return this._model.mainSeries().firstValue()}formatter(){return F}state(e){const t={properties:this._properties.state()};return e&&null!==this._metaInfo&&(t.data={graphics:(0,E.saveStudyGraphics)(this.graphics()),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,r.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,E.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,N.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,E.createGraphicsPaneViews)(this,this._model,e).then(e=>{this._paneViews=e,this._model.lightUpdate()})}_onPropertiesChanged(){this._processHibernate(),this.updateAllViews((0,O.dataSourceChangeEvent)(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,P.saveDefaultProperties)(!0),this._properties.childChanged(null),(0,P.saveDefaultProperties)(!1))}_migrateOutOfSessionProperty(e){const t=e.graphics.backgrounds;if(void 0!==t){const i=t.outOfSession;i.color===(0,r.ensureDefined)(R.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 H=i(81851),z=i(2872),U=i.n(z),j=i(52714),G=i.n(j),q=i(23653),Y=i(8175),K=i(28353),$=i(98125),X=i(9423),Z=i(39593),J=i(22932),Q=i(74325),ee=i(59555);const te=new Map([["price",e=>(0,J.isPriceDataSource)(e)],["trading",e=>(0,f.isTrading)(e)],["drawing",e=>(0,f.isLineTool)(e)&&!(0,f.isTrading)(e)&&!e.isPhantom()],["drawingsForAllSymbols",e=>(0,f.isLineTool)(e)&&!(0,f.isTrading)(e)&&!e.isPhantom()],["phantom",e=>(0,f.isLineTool)(e)&&e.isPhantom()],["restRowSources",e=>!(0,f.isLineTool)(e)&&!(0,
f.isTrading)(e)],["leftPriceScale",(e,t)=>"left"===se(e,t)],["rightPriceScale",(e,t)=>"right"===se(e,t)],["overlayPriceScale",(e,t)=>"overlay"===se(e,t)]]),ie=new Map([["price","visibleSorted"],["trading","visibleSorted"],["drawing","visibleSorted"],["drawingsForAllSymbols","allSorted"],["phantom","visibleSorted"],["restRowSources","visibleSorted"],["leftPriceScale","visibleSorted"],["rightPriceScale","visibleSorted"],["overlayPriceScale","visibleSorted"]]);function se(e,t){const i=e.priceScale();return null===i?"overlay":t.priceScalePosition(i)}class re{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,r.ensureDefined)(this._groupedSources.get("visibleSorted"))}allIncludingHidden(){return this._groupedSources.has("allSorted")||this._sortSources(),(0,r.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,r.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,r.ensureDefined)(this._groupedSources.get("hitTest"))}generalSources(){if(!this._groupedSources.has("general")){const e=this.allExceptLineAndTradingSources().concat(this.lineSources());this._groupedSources.set("general",(0,ee.sortSources)(e))}return(0,r.ensureDefined)(this._groupedSources.get("general"))}leftPriceScalesSources(){return this._getSourcesByGroupType("leftPriceScale")}rightPriceScalesSources(){return this._getSourcesByGroupType("rightPriceScale")}overlayPriceScaleSources(){return this._getSourcesByGroupType("overlayPriceScale")}_getSourcesByGroupType(e){const t=(0,r.ensureDefined)(ie.get(e));return this._groupedSources.has(t)?this._groupedSources.has(e)||this._groupSources(e):(this._sortSources(),this._groupSources(e)),(0,r.ensureDefined)(this._groupedSources.get(e))}_sortSources(){null===this._sources&&(this._sources=this._pane.dataSources());const e=(0,ee.sortSources)(this._sources),t=e.filter(e=>!(0,f.isLineTool)(e)||e.isActualSymbol()&&e.isActualCurrency()&&e.isActualUnit());this._groupedSources.set("allSorted",e),this._groupedSources.set("visibleSorted",t)}_groupSources(e){const t=(0,r.ensureDefined)(ie.get(e)),i=te.get(e);if(void 0!==i){const s=(0,
r.ensureDefined)(this._groupedSources.get(t)).filter(e=>i(e,this._pane));this._groupedSources.set(e,s)}}}var ne=i(28372),oe=i(22423),ae=i(69927),le=i(79680),ce=i(26161),he=i(50669),de=i(16654),ue=i(67072),pe=i.n(ue),_e=i(80643),me=i(13933);const ge=[],fe=[];class ve{constructor(e){this._studies={},this._deferreds={},this._container=e,ge.push(e),fe.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,d.createDeferredPromise)()),this._deferreds[e].promise)}reset(){const e=ge.indexOf(this._container);~e&&(ge.splice(e,1),fe.splice(e,1))}static instance(e){const t=ge.indexOf(e);return~t?fe[t]:new ve(e)}}var Se=i(66101),ye=i(97917);var be=i(36759),we=i(98802),Ce=i(95536),Pe=i(86225),Te=i(82241),xe=i(78898);const Ie=(0,$.getLogger)("Chart.Pane");function Me(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 re(this),this._sourcesById=new Map,this._priceSourcesById=new Map,this._sourcePropertiesChanged=new(U()),this._sourcesZOrderChanged=new(U()),this._tagsChanged=new(U()),this._stretchFactor=1e3,this._isInInsertManyDataSourcesState=!1,this._lastLineDataSourceZOrder=null,this._rightPriceScales=[],this._leftPriceScales=[],this._lockedPriceScale=null,this._currentPriceScaleRatio=null,this._onPriceScalesChanged=new(U()),this._isRecalculatingScales=!1,this._priceDataSources=[],this._symbolSources=[],this._symbolSourceResolved=new(U()),this._symbolSourceResolvingActive=new(G())(!1),this._bulkActions={activeCounter:0},this._height=0,this._width=0,this._dataSourcesCollectionChanged=new(U()),this._symbolSourceCollectionChanged=new(U()),this._maximized=new(G())(!1),this._collapsed=new(G())(!1),this._destroyed=new(U()),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,X.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 ne.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,g.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,g.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,r.assert)(this.hasDataSource(e));const i=e.id();e.setId(t),this._sourcesById.delete(i),this._sourcesById.set(t,e),(0,J.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,J.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,J.isPriceDataSource)(e)&&this.recalculatePriceScale(t,(0,O.dataSourceChangeEvent)(e.id())),this._invalidateSourcesCache()}addDataSource(e,t,i){let s=e.zorder();i||((0,f.isLineTool)(e)&&!e.isSpeciallyZOrderedSource()?(s=null!==this._lastLineDataSourceZOrder?this._lastLineDataSourceZOrder+1:this.newLineToolZOrder(),this._isInInsertManyDataSourcesState&&(this._lastLineDataSourceZOrder=s)):(0,H.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 Ie.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,J.isPriceDataSource)(e)&&!t&&this._processMainSourceChange(),this._tagsChanged.fire(),r&&(0,J.isPriceDataSource)(e)&&this.recalculatePriceScale(r,(0,O.dataSourceChangeEvent)(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}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,J.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,f.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)}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 ne.PriceScale(this.model().properties().childs().scalesProperties,i);return s.setHeight(this.height()),Me(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&&Ie.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,O.dataSourceChangeEvent)(e.id())),this.recalculatePriceScale(t,(0,O.dataSourceChangeEvent)(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,ce.newStudyZOrder)(this._priceDataSources)}newLineToolZOrder(e){return(0,ce.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),null!==this._lockedPriceScale?this._tryToApplyNewPriceScaleRatio():e.isLog()||this.model().mainSeriesScaleRatioPropertyOnChanged())}sendToBack(e){const t=this.sourcesByGroup().allExceptSpecialSources();this._batchReorder(e,t[0],ce.moveBeforeSource)}bringToFront(e){const t=this.sourcesByGroup().allExceptSpecialSources();this._batchReorder(e,t[t.length-1],ce.moveAfterSource)}sendBackward(e){
const t=this.sourcesByGroup().allIncludingHidden(),i=t.indexOf(e[0]);if(0===i)this.bringToFront(e);else{const s=t[i-1];this.insertBefore(e,s)}}bringForward(e){const t=this.sourcesByGroup().allExceptSpecialSources(),i=t.indexOf(e[e.length-1]);if(i===t.length-1)this.sendToBack(e);else{const s=t[i+1];this.insertAfter(e,s)}}insertAfter(e,t){this._batchReorder(e,t,ce.moveAfterSource)}insertBefore(e,t){this._batchReorder(e,t,ce.moveBeforeSource)}maximized(){return this._maximized}collapsed(){return this._collapsed}getPriceScaleById(e){const t=this.m_dataSources.find(t=>{var i;return(null===(i=t.priceScale())||void 0===i?void 0:i.id())===e});return void 0===t?null:t.priceScale()}priceScaleSelectionStrategy(){return this._priceScaleSelectionStrategy}setPriceScaleSelectionStrategy(e){this._priceScaleSelectionStrategy=e,e.apply(this)}findTargetPriceAxisViews(e,t,i,s){if((0,m.isDataSource)(e)&&this.model().paneForSource(e)!==this)return[];const r=e.priceScale();if(t===r)return i;if(null===r)return[];if("overlay"===this.priceScalePosition(r))return t===this.defaultPriceScale()?i:[];const n=this.priceScalePosition(t);if(n!==this.priceScalePosition(r))return[];const o="left"===n?this.leftPriceScales():this.rightPriceScales();return o.indexOf(t)1}properties(){return this._properties}setPriceAutoScale(e,t){e.setMode({autoScale:t}),this.timeScale().isEmpty()||this.recalculatePriceScale(e,(0,O.viewportChangeEvent)())}state(e,t,i,s,r,n){var o,a;const l={sources:[],mainSourceId:null===(o=this.m_mainDataSource)||void 0===o?void 0:o.id(),stretchFactor:this._stretchFactor,leftAxisesState:[],rightAxisesState:[],overlayPriceScales:{},priceScaleRatio:this._currentPriceScaleRatio},c=new Map,h=e=>{if(c.has(e))return c.get(e);let o=null;const a=i&&!e.isSavedInStudyTemplates()||!e.state||(0,f.isLineTool)(e)&&n||!(o=e.state(t,r))||!e.isSavedInChart(Boolean(t))||s&&(0,f.isLineTool)(e)&&e.isActualSymbol&&!e.isActualSymbol()||e.isPhantom()?null:o;return c.set(e,a),a};if(e){l.sources=[];for(let e=0;enull!==c.get(e),u=e=>!n||!(0,f.isLineTool)(e);l.leftAxisesState=this._leftPriceScales.map(e=>({state:e.state(),sources:e.dataSources().filter(d).filter(u).map(e=>e.id())})),l.rightAxisesState=this._rightPriceScales.map(e=>({state:e.state(),sources:e.dataSources().filter(d).filter(u).map(e=>e.id())})),l.overlayPriceScales={};for(const e of this.m_dataSources)if(this.isOverlay(e)&&e.isSavedInChart(Boolean(t))){const t=e.priceScale();l.overlayPriceScales[e.id()]=null!==(a=null==t?void 0:t.state())&&void 0!==a?a:null}return l}restoreState(e,t,i,s,n,o){var a;s=s||{},e.stretchFactor&&(this._stretchFactor=e.stretchFactor);const l={};if(e.sources){const r=e.sources.filter(e=>{var t
;return!!e&&("MainSeries"===e.type||(!(null===(t=e.points)||void 0===t?void 0:t.some(e=>null===e.time_t||!isFinite(e.time_t)))||(Ie.logNormal("Dropped invalid "+e.type+". Reason: non-numeric point time"),!1)))}),a=r.findIndex(he.isMainSeriesState);-1!==a&&this.model().mainSeries().setObsoleteZOrder(r[a].zorder),i<3&&(0,ce.reorderDataSourcesStateZOrder)(r);const c=-1!==this.m_dataSources.indexOf(this._model.mainSeries());this.clearSeries(Boolean(o)),this.m_mainDataSource=null,c&&this._addSourceToCollections(this._model.mainSeries(),o),(()=>{const t=r.find(t=>t.id===e.mainSourceId);if(void 0===t)return void Ie.logWarn("There is no main source with id "+e.mainSourceId+", total sources="+r.length);if(!window.TradingView[t.type]||!(0,f.isLineToolName)(t.type))return void Ie.logNormal("The type of main source is not line tool - fix is unnecessary");let i=null;for(const e of r)if(!window.TradingView[t.type]||!(0,f.isLineToolName)(e.type)){if(null!==i)return void Ie.logWarn("Pane contains more than 1 possibly main sources - auto fix cannot be applied");i=e}if(null===i)return void Ie.logWarn("Pane contains only line tools - possible we need to remove this pane?");const s=e.mainSourceId;let n=0;e.mainSourceId=i.id,r.forEach(e=>{e.ownerSource===s&&(e.ownerSource=null==i?void 0:i.id,n+=1)}),Ie.logNormal("Auto fix broken pane is applied, changed line tools="+n+", changed from="+s+" to="+i.id)})();for(const e of r)if("study_Sessions"===e.type){this.model().sessions().restoreOldState(e,t);break}for(const e of r){if("study_Sessions"===e.type)continue;const i=e.id;null===this._model.dataSourceForId(e.id)||"MainSeries"===e.type?(l[i]=e.ownerSource,(0,he.isMainSeriesState)(e)?this._restoreMainSeries(e,t,c,s,n,o):(0,he.isStudyState)(e)?this.restoreStudy(e,t,s,o):(0,he.isLineToolState)(e)?(e.state&&(e.state.zOrderVersion=2),this.restoreLineTool(e,t,void 0,o)):"ChartEventsSource"===e.type&&this._restoreSpecialSource(e,t,o)):Ie.logError("Duplicate id while restoring pane: "+e.type+","+e.id)}}const c=new Set,h=(e,t)=>{e.priceScale()!==t&&(this.removeSourceFromPriceScale(e),e.setPriceScale(t),t.addDataSource(e))},d=(e,t,i)=>{if(c.has(e))return;c.add(e);const s=i.m_showSymbolLabels;void 0!==s&&e===this.model().mainSeries()&&this.model().properties().childs().scalesProperties.childs().showSymbolLabels.setValue(s),this._model.children(e,!0).forEach(e=>d(e,t,i)),h(e,t)},u=e=>{const t=(0,D.defaults)("chartproperties").paneProperties.axisProperties,i=new ne.PriceScale(this.model().properties().childs().scalesProperties,t);return i.restoreState(e.state),e.sources.forEach(e=>{const s=this.dataSourceForId(e);s&&d(s,i,t)}),0===i.dataSources().length?null:i},p=e=>e.map(u).filter(e=>null!==e);let _;if(e.leftAxisesState)_=p(e.leftAxisesState);else{const t=u({state:e.leftAxisState,sources:e.leftAxisSources});_=null!==t?[t]:[]}let m;if(this._leftPriceScales.slice().forEach(e=>this.removePriceScale(e)),this._leftPriceScales=[],_.forEach(e=>this._placePriceScale(e,"left")),e.rightAxisesState)m=p(e.rightAxisesState);else{const t=u({state:e.rightAxisState,
sources:e.rightAxisSources});m=null!==t?[t]:[]}this._rightPriceScales.slice().forEach(e=>this.removePriceScale(e)),this._rightPriceScales=[],m.forEach(e=>this._placePriceScale(e,"right")),this._currentPriceScaleRatio=e.priceScaleRatio||e.leftPriceScaleRatio||e.rightPriceScaleRatio||null;const g=new Map;for(const t of this.m_dataSources){if(c.has(t))continue;let i;if(e.overlayPriceScales&&e.overlayPriceScales[t.id()]){let s=e.overlayPriceScales[t.id()];g.has(null==s?void 0:s.id)?i=g.get(null==s?void 0:s.id):(s=(0,r.ensure)(s),i=new ne.PriceScale(this._model.properties().childs().scalesProperties),i.setHeight(this._height),s.m_isAutoScale=!0,s.m_isLog=!1,s.m_isPercentage=!1,s.m_isLockScale=!1,i.restoreState(s),g.set(s.id,i))}else i=new ne.PriceScale(this._model.properties().childs().scalesProperties),i.setHeight(this._height);h(t,i)}for(const e of Object.keys(l)){const t=l[e];t&&(null===(a=this.dataSourceForId(e))||void 0===a||a.setOwnerSource(this.dataSourceForId(t)))}if(e.mainSourceId&&!this.containsMainSeries()&&(this.m_mainDataSource=this.dataSourceForId(e.mainSourceId)),!this.m_mainDataSource)for(const e of this.m_dataSources)if((0,J.isPriceDataSource)(e)){this.m_mainDataSource=e;break}for(const e of this.m_dataSources)if((0,f.isLineTool)(e))e.ownerSource()||e.setOwnerSource(this.mainDataSource()),e.isFixed()&&e.restoreFixedPoints();else if((0,H.isStudy)(e)){const t=e.properties();t.linkedToSeries&&t.linkedToSeries.value()&&(e.ownerSource()||e.setOwnerSource(this.model().mainSeries()))}this._updateMargins(),this._cachedOrderedSources.clear()}onPriceScalesChanged(){return this._onPriceScalesChanged}setPaneSize(e){let t;switch(e){case"large":t=1;break;case"medium":t=.6;break;case"small":t=.3;break;case"tiny":t=.15;break;default:throw new Error("Unknown size enum value: "+e)}this._stretchFactor=1e3*t}stretchFactor(){return this._stretchFactor}setStretchFactor(e){this._stretchFactor=e}customSources(e){return this.model().customSources(e)}createDrawingsCaches(){Z.ExecutionsPositionController.recreateOrderedByBarsSourcesCache(this)}clearDrawingCaches(){Z.ExecutionsPositionController.clearOrderedByBarsSourcesCache()}executionsPositionController(){return this._executionsPositionController||(this._executionsPositionController=new Z.ExecutionsPositionController(this,this._model.timeScale())),this._executionsPositionController}width(){return this._width}height(){return this._height}setHeight(e){this._height=e,this._leftPriceScales.forEach(t=>t.setHeight(e)),this._rightPriceScales.forEach(t=>t.setHeight(e));for(let t=0;t(e.paneViews(this)||[]).some(e=>{const r=e.renderer(t,i);return r&&r.doesIntersectWithBox&&r.doesIntersectWithBox(s)}))}logicalRectToPixels(e){const t=this.defaultPriceScale(),i=this.timeScale(),s=(0,r.ensureNotNull)((0,r.ensureNotNull)(t.mainSource()).firstValue()),o=t.priceToCoordinate(e.p1.price,s),a=i.indexToCoordinate(e.p1.index),l=t.priceToCoordinate(e.p2.price,s),c=i.indexToCoordinate(e.p2.index),h=new n.Point(Math.min(a,c),Math.min(o,l)),d=new n.Point(Math.max(a,c),Math.max(o,l));return(0,n.box)(h,d)}timeScale(){return this._timeScale}restoreLineTool(e,t,i,s){var n,o,a,l,c,h,d,u,p,_,m;delete e.state.lastUpdateTime,e.state.intervalsVisibilities=(0,be.mergeIntervalVisibilitiesDefaults)(e.state.intervalsVisibilities),i=void 0===i||i,ye.LineToolElliott.migrateState(e),"LineToolGannComplex"!==(m=e).type||void 0!==m.version&&1!==m.version||(m.type="LineToolGannFixed");const g=e.type,v=e.id,S=e.state,y=i?e.zorder:this.newLineToolZOrder();(0,r.assert)((0,f.isLineToolName)(g),"invalid data source type:"+g+" (expected to be a Line Tool)");let b,w,C=null;if((0,he.isStudyLineToolState)(e)){C=this._model.studyVersioning();const t=C.patchPointsBasedStudyState(e);e=t;const i=t.metaInfo;Object.assign(i,pe().parseIdString(null==i?void 0:i.fullId));const s=C.updateMetaInfo(i)||i;w=(0,f.createStudyLineToolProperties)(g,i,s,S,C),b=(0,f.createLineTool)(g,this._model,w,s,!0)}else w=(0,f.createLineToolProperties)(g,S,this._model),t?null===(n=w.child("fixedSize"))||void 0===n||n.setValue(!1):null===(o=w.child("fixedSize"))||void 0===o||o.setValue(!0),b=(0,f.createLineTool)(g,this._model,w,null,!0);b.setId(v),b.linkKey().setValue(e.linkKey||null);const P=e.alertId;P&&b.canHasAlert()&&B.enabled("alerts")&&!this._model.readOnly()&&!this._model.isJustClonedChart()&&b.setAlert(P,{noChartSave:!0});let T=null!==(a=e.indexes)&&void 0!==a?a:[];if(T=T.slice(0,null!==(c=null===(l=e.points)||void 0===l?void 0:l.length)&&void 0!==c?c:T.length),b.isFixed()?e.positionPercents&&b.restorePositionPercents(e.positionPercents):e.points&&b.restorePoints(e.points,T,t),b instanceof we.LineToolBarsPattern||b instanceof Ce.LineToolCallout||b instanceof Pe.LineToolTrendAngle||b instanceof Te.LineToolGhostFeed||b instanceof xe.LineToolParallelChannel)null===(d=(h=b).restoreData)||void 0===d||d.call(h,e);else if(t&&(0,he.isStudyLineToolState)(e)&&b.restoreData){const t=e;C&&(t.graphics=C.patchPointsBasedStudyData(t.metaInfo,t.graphics)),null===(u=b.restoreData)||void 0===u||u.call(b,t)}const x=null==e.version?1:e.version,I=null==b.version?1:b.version;return x!==I&&(null===(_=(p=b).migrateVersion)||void 0===_||_.call(p,x,I,{pane:this,
model:this._model,properties:w})),void 0!==y&&b.setZorder(y),this._addSourceToCollections(b,s),this._cachedOrderedSources.clear(),b}restoreStudy(e,t,i,s){if(t&&void 0===e.data&&void 0===e.nonSeriesData&&void 0===e.indexes)return Ie.logError("Cannot restore (skipping) study without data "+e.id+", "+e.metaInfo.id),null;const r=e.id,n=e.state,o=e.zorder,a=e.ownerSource;let l=(0,_e.clone)(e.metaInfo);if(Object.assign(l,pe().parseIdString(l.id)),function(e){return"Script$TV_EARNINGS@tv-scripting"===e||"Script$TV_DIVIDENDS@tv-scripting"===e||"Script$TV_SPLITS@tv-scripting"===e||"ESD$TV_EARNINGS@tv-scripting"===e||"ESD$TV_DIVIDENDS@tv-scripting"===e||"ESD$TV_SPLITS@tv-scripting"===e||"Earnings@tv-basicstudies"===e||"Dividends@tv-basicstudies"===e||"Splits@tv-basicstudies"===e||"BarSetContinuousRollDates@tv-basicstudies"===e}(l.id)&&!t)return Ie.logNormal("Skipping study "+l.id),null;let c=n;const h=this._model.studyVersioning(),d=h.patchPropsStateAndMetaInfo(c,l,{oldShowStudyLastValueProperty:t&&!i.showStudyLastValueProperty});c=d.propsState,l=d.metaInfo;const u=new w.StudyStub(this._model,e,l.shortDescription);let p;u.setId(r),u.setZorder(o);const _=i=>{u.setStatus({type:me.StudyStatusType.Undefined});const s=i||new(pe())(l),n=ve.instance(this._model),o=o=>{var a;const d=(0,Se.prepareStudyPropertiesForLoadChart)(l,i,c,null,h),_=(0,H.createStudy)(this._model,d,o||this._model.mainSeries(),s);if(_.setId(r),_.setOwnFirstValue(null!==(a=e.ownFirstValue)&&void 0!==a?a:null),t){const t=e,{data:i,nsData:s,indexes:r}=h.patchStudyData(l,t.data,t.nonSeriesData,t.indexes);_.restoreData(i,s,r)}this._model.replaceStudyStub(u,_)||(p=_),n.add(r,_)};a&&e.state.isChildStudy?n.get(a).then(o):o()};if(t)_(null);else{const e=h.updateMetaInfoAsync(l);e.sync?_(e.result):e.result.then(_).catch(e=>u.setFailed("error: "+e))}const m=null!=p?p:u;return m&&(m.setZorder(o),this._addSourceToCollections(m,s),this._processMainSourceChange()),this._cachedOrderedSources.clear(),m}clipboardLineToolOwnerSource(e){const t=this.dataSourceForId(e);if(null!==t){const e=t.ownerSource();if(null!==e&&null!==e.firstValue())return e}const i=this.mainDataSource();if(null!==i&&null!==i.firstValue())return i;for(const e of this.dataSources())if((0,J.isPriceDataSource)(e)&&null!==e.firstValue())return e;return null}realignLineTools(e){var t;let i=!1;for(const s of this.m_dataSources)!(0,f.isLineTool)(s)||void 0!==e&&(null===(t=null==s?void 0:s.ownerSource())||void 0===t?void 0:t.symbolSource())!==e&&(0,le.isActingAsSymbolSource)(e)||(s.realign(),s.updateAllViews((0,O.dataSourceChangeEvent)(s.id())),i=!0);return i&&this._invalidateSourcesCache(),i}startScalePrice(e,t){e.startScale(t)}scalePriceTo(e,t){e.scaleTo(t),this.updateAllViews((0,O.viewportChangeEvent)())}endScalePrice(e){e.endScale()}startScrollPrice(e,t){e.startScroll(t)}scrollPriceTo(e,t){e.scrollTo(t),this.updateAllViews((0,O.viewportChangeEvent)())}endScrollPrice(e){e.endScroll()}resetPriceScale(e){const t=this.timeScale().visibleBarsStrictRange();e.isLockScale()||e.setMode({autoScale:!0}),
e.recalculatePriceRange(t),this.updateAllViews((0,O.viewportChangeEvent)())}restorePriceScaleState(e,t){e.restoreState(t),this.updateAllViews((0,O.viewportChangeEvent)())}beginInsertManyLineDataSources(){this._isInInsertManyDataSourcesState=!0,this._lastLineDataSourceZOrder=null}endInsertManyLineDataSources(){this._isInInsertManyDataSourcesState=!1,this._lastLineDataSourceZOrder=null}removeSourceFromPriceScale(e){const t=e.priceScale();if(null!==t){const i=t.dataSources();i.indexOf(e)>=0&&t.removeDataSource(e),0===i.length&&this.removePriceScale(t)}}_invalidateSourcesCache(){this._cachedOrderedSources.clear(),this._leftPriceScales.forEach(e=>e.invalidateSourcesCache()),this._rightPriceScales.forEach(e=>e.invalidateSourcesCache())}_processMainSourceChange(){let e=!1;if(null===this.m_mainDataSource)for(const t of this.m_dataSources)if((0,J.isPriceDataSource)(t)&&!this.isOverlay(t)&&(!t.properties().linkedToSeries||!t.properties().linkedToSeries.value())){this.m_mainDataSource=t,e=!0;break}if(this.m_mainDataSource&&e){let e=this.m_dataSources.filter(f.isLineTool);e=(0,ee.sortSources)(e);for(const t of e)this.move(t,(0,r.ensureNotNull)(this.m_mainDataSource.priceScale()),!0)}else if(!this.m_mainDataSource||this.isOverlay(this.m_mainDataSource)&&0===this._nonOverlayPricesSourcesCount()){let e=null;if(this.m_dataSources.includes(this._model.mainSeries()))e=this._model.mainSeries();else for(const t of this.m_dataSources)if((0,J.isPriceDataSource)(t)&&this.isOverlay(t)&&t.showInObjectTree()){e=t;break}if(null!==e){const t=this.m_mainDataSource===e;this.m_mainDataSource=e;const i=this.createNewPriceScaleIfPossible();if(t&&e===this._model.mainSeries()){const t=(0,r.ensureNotNull)(e.priceScale());this._model.children(e,!0).forEach(e=>{this.removeSourceFromPriceScale(e),i.addDataSource(e),e.setPriceScale(i)}),this.removePriceScale(t)}this.move(e,i,!0),this.recalculatePriceScale(e.priceScale(),(0,O.globalChangeEvent)())}}}_addSourceToCollections(e,t){this.m_dataSources.push(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,f.isLineTool)(e)&&(e.normalizedPointsChanged().subscribe(this,i),e.fixedPointsChanged().subscribe(this,i),e.hasAlert.subscribe(i),e.sharingMode().subscribe(i),e.linkKey().subscribe(i),this._sourceWatchedValuesSubscriptions.set(e.id(),i));const s=(0,le.isSymbolSource)(e)?e:null;(0,J.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,f.isLineTool)(i)&&(i.normalizedPointsChanged().unsubscribeAll(this),i.fixedPointsChanged().unsubscribeAll(this),this._sourceWatchedValuesSubscriptions.has(s))){const e=this._sourceWatchedValuesSubscriptions.get(s);i.hasAlert.unsubscribe(e),i.linkKey().unsubscribe(e)}this._invalidateSourcesCache();const n=(0,le.isSymbolSource)(i)?i:null;if((0,J.isPriceDataSource)(i)){this._priceSourcesById.delete(i.id()),i.currencyChanged().unsubscribeAll(this),i.unitChanged().unsubscribeAll(this);const e=this._priceDataSources.indexOf(i);if((0,r.assert)(-1!==e),this._priceDataSources.splice(e,1),null!==n){const e=this._symbolSources.indexOf(n);(0,r.assert)(-1!==e,"Source is not found"),this._symbolSources.splice(e,1),n.symbolResolved().unsubscribeAll(this),n.symbolResolvingActive().unsubscribe(this._recalcSymbolSourceResolvingActive),n.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)Me(i,e,t);for(const i of this._rightPriceScales)Me(i,e,t);for(const i of this.m_dataSources)if(this.isOverlay(i)){const s=i.priceScale();null!==s&&(Me(s,e,t),this.recalculatePriceScale(s,(0,O.viewportChangeEvent)()))}for(const e of this._leftPriceScales)this.recalculatePriceScale(e,(0,O.viewportChangeEvent)());for(const e of this._rightPriceScales)this.recalculatePriceScale(e,(0,O.viewportChangeEvent)());this.updateAllViews((0,O.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,n=void 0===i?s.length:i;s.splice(n,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,r.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,oe.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,O.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,oe.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,r.ensureNotNull)(this._lockedPriceScale),t=(0,oe.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,oe.barSpacingByScaleRatio)((0,r.ensureNotNull)(this._lockedPriceScale),this._currentPriceScaleRatio));this.timeScale().isValidBarSpacing(e)&&this.timeScale().setBarSpacing(e)}_mainSourceVisiblePriceRange(e){const t=this.timeScale().visibleBarsStrictRange();return null!==t?(0,r.ensureNotNull)((0,r.ensureNotNull)(e.mainSource()).priceRange(t.firstBar(),t.lastBar())):new ae.PriceRange(-.5,.5)}_setMinMaxPriceRange(){const e=(0,r.ensureNotNull)(this._lockedPriceScale),t=(0,oe.priceRangeByScaleRatio)(e,this.timeScale().maxBarSpacing(),this._currentPriceScaleRatio),i=(0,oe.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,
J.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&&a.style,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,N.chartStyleStudyId)(8,!0),renkoStyle:(0,N.chartStyleStudyId)(4,!0),pbStyle:(0,N.chartStyleStudyId)(7,!0),kagiStyle:(0,N.chartStyleStudyId)(5,!0),pnfStyle:(0,N.chartStyleStudyId)(6,!0),rangeStyle:(0,N.chartStyleStudyId)(11,!0)},i=this._model.studyVersioning(),s=l.styleStudyInfos(),r=Object.keys(de.SYMBOL_STRING_DATA);for(let n=0;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;tthis._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(!(n{this.setRightOffset(e)}),
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,n=(0,r.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._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,r.ensureNotNull)(this.visibleBarsStrictRange()),n=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(!(n<=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>=He.DAY_SPAN})}return l}visibleBarsStrictRange(){return this._visibleBarsInvalidated&&(this._visibleBarsInvalidated=!1,this._updateVisibleBars()),this._visibleBars.strictRange()}visibleBarsStrictRangeChanged(){return this._visibleBarsChanged}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 Ke.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,r.ensureNotNull)(this.visibleBarsStrictRange()).firstBar()<=this._leftEdgeIndex){const t=this._width-e;this._rightOffset-=Math.round(t/this._barSpacing)+1}}this._width=e,this._widthChanged.fire(e);const i=this._rightOffset;this._correctOffset(),this._rightOffset!==i&&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,_e.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){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,r.ensureNotNull)(this._points.valueAt(t)),s=this.indexToCoordinate(t);if(s<=0||s>=this._width)return null;const n=this.barSpacing(),o=this.baseIndex(),a=s+(e-i)/((0,r.ensureNotNull)(this._points.valueAt(o))-(0,r.ensureNotNull)(this._points.valueAt(o-1)))*n+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,i.exactTime=r}}timedValuesToCoordinates(e,t){var i,s;const r=this.baseIndex()+this._rightOffset,n=this._width-r*this._barSpacing-.5*this._barSpacing-1,o=null!==(i=null==t?void 0:t.startItemIndex)&&void 0!==i?i:0,a=null!==(s=null==t?void 0:t.endItemIndex)&&void 0!==s?s:e.length;for(let t=o;t{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,Ee.doAnimate)({from:e,to:i,duration:1e3,easing:Ae.easingFunc.easeInOutQuint,onComplete:s,onStep:(e,t)=>{this._visibleBarsInvalidated=!0,this._updateRightOffset(t),r.recalculateAllPanes((0,O.viewportChangeEvent)()),r.lightUpdate(),r.recalcVisibleRangeStudies()}})}else this._visibleBarsInvalidated=!0,this._updateRightOffset(i),s()}scrollToFirstBar(){this._model.gotoTime(new Date("1800-01-01").getTime())}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,O.viewportChangeEvent)()),void this._model.lightUpdate();const o=s+(e-s)*t;this._updateRightOffset(o),this._model.recalculateAllPanes((0,O.viewportChangeEvent)()),setTimeout(n,20)};n()}defaultRightOffset(){return this._defaultRightOffset}rightOffsetDefaultValue(){return 10}barSpacing(){return this._barSpacing}setBarSpacing(e){Number.isFinite(e)?(e=this.getValidBarSpacing(e),this._tryToUpdateBarSpacing(this._barSpacing,e)&&(this._correctOffset(),this._options.preserveBarSpacing&&((0,P.saveDefaultProperties)(!0),this._scalesProperties.childs().barSpacing.setValue(this._barSpacing),(0,P.saveDefaultProperties)(!1)),this._model.recalculateAllPanes((0,O.viewportChangeEvent)()),this._model.lightUpdate())):Ke.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(),n=(0,r.ensureNotNull)(this._points.firstIndex());return es?(t=(0,r.ensureNotNull)(this._points.valueAt(s)),i=e-s):(t=(0,r.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(){const e=this.points().firstIndex(),t=this._baseIndex;if(null===e||null===t)return null;if(null!==this._leftEdgeIndex){const e=this.width()/this._barSpacing;return this._leftEdgeIndex-t+e-1}return e-t-1+Ye}maxRightOffset(){return this.width()/this._barSpacing-Ye}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 Ke.logWarn(`zoom: invalid arguments: ${e}, ${t}, ${i}`);const s=this.coordinateToIndex(e),r=this.barSpacing(),n=r+t*(r/10);this.setBarSpacing(n);(void 0!==i?!i:this._options.rightBarStaysOnScroll)||this.setRightOffset(this.rightOffset()-.5+(s-this._coordinateToFloatIndex(e))),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,Ye);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 qe?e:e/Ye}resetRightOffset(){this.setRightOffset(this._defaultRightOffset.value())}reset(){this._visibleBarsInvalidated=!0,this._points=new Re,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()):Ke.logDebug("setBaseIndex: invalid argument: "+e)}resetBaseIndex(){this._visibleBarsInvalidated=!0,this._baseIndex=null}setRightOffset(e){Number.isFinite(e)?(this._visibleBarsInvalidated=!0,this._updateRightOffset(e)):Ke.logWarn("setRightOffset: invalid argument: "+e)}correctBarSpacing(){this.isEmpty()||this.points().size()this.formatLabelImpl(e,t)),this._formattedBySpan.set(t,i)),i.format(new Date(e))}formatLabelImpl(e,t){if(!(e&&e instanceof Date))return"incorrect time";const i=function(e,t){if(ee&&(this._rightOffset=e,this._visibleBarsInvalidated=!0);const t=this.minRightOffset();null!==t&&this._rightOffset{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 et.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){
this._groups.forEach(t=>{const i=e.filter(t.containsLineTool.bind(t));i.length&&t.excludeLineTools(i)});this._groups.filter(e=>0===e.lineTools().length).forEach(e=>this.removeGroup(e))}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=et.LineToolsGroup.fromState(e,s);null!==t&&i.push(t)}return new tt(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 it=i(10480),st=i.n(it),rt=i(69177);let nt=null;function ot(e){return Boolean(e.symbolInfo.timezone)&&Boolean(e.symbolInfo.session)}class at{constructor(e,t){var i,s;this._sourceTargetBarBuilder=null,this._cache=new Map,this._source=e,this._sourceSession=rt.SessionInfo.fromState(e.session),this._target=t,this._targetSession=rt.SessionInfo.fromState(t.session),this._isResolutionTheSame=C.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=C.Interval.isDWM(e.resolution)&&!this._isSessionTheSame}sourceTimeToTargetTime(e){if(this._isSessionTheSame&&this._isResolutionTheSame)return e;if(!ot(this._source)||!ot(this._target))return e;let t=this._cache.get(e);if(void 0===t){let i=1e3*e;if(this._shouldCorrectTradingDay){let e=st().utc_to_cal(this._sourceSession.timezone,i);e=this._sourceSession.spec.correctTradingDay(e);const t=new Date(e);st().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===nt&&(nt=new rt.SessionInfo("Etc/UTC","24x7")),nt);this._sourceTargetBarBuilder=(0,rt.newBarBuilder)(this._target.resolution,this._targetSession,e)}return this._sourceTargetBarBuilder}}var lt=i(85733),ct=i(68906),ht=i(4676),dt=i(49642);function ut(e,t){return e.codet.code?1:0}class pt{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(ut),i}}class _t{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 mt=i(93751);class gt{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,f.isLineToolName)(e)&&(0,f.supportsPhantomMode)(e)}onCursorPositionUpdated(){if(!this._currentToolSupportsPhantomMode)return;const e=this._model.crossHairSource();if(this._sourcePane!==e.pane&&this._removeSource(),null===e.pane||!(0,mt.isNumber)(e.index)||!(0,mt.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 ft=i(71053),vt=i(73383),St=i(90373),yt=i(30460);class bt{align(e,t,i){let s=e;if(!(0,yt.magnetEnabled)().value())return s;const n=i.mainDataSource();if(null===n)return s;const o=n.model().mainSeries();if(n!==o)return s;const a=o.priceScale(),l=o.bars();if(a.isEmpty()||!l.contains(t))return s;const c=l.valueAt(t);if(null===c)return s;const h=[];null!==o.priceSource()?h.push(o.barFunction()(c)):h.push(c[1],c[2],c[3],c[4]);const d=(0,r.ensure)(o.firstValue()),u=h.map(e=>({y:a.priceToCoordinate(e,d),price:e})),p=a.priceToCoordinate(e,d);u.sort((e,t)=>Math.abs(e.y-p)-Math.abs(t.y-p));const _=u[0];return((0,yt.magnetMode)().value()===St.MagnetMode.StrongMagnet||Math.abs(_.y-p)<50)&&(s=_.price),s}}var wt=i(65862),Ct=i(62443),Pt=i(29892),Tt=i(42759);class xt{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,Pt.setLineStyle)(e,this._data.vertLineStyle);for(const t of this._data.timeMarks){const s=Math.round(t.coord*i);(0,Tt.drawVerticalLine)(e,s,0,r)}}if(this._data.horzLinesVisible){e.strokeStyle=this._data.horzLinesColor,(0,Pt.setLineStyle)(e,this._data.horzLineStyle);for(const t of this._data.priceMarks){
const s=Math.round(t.coord*i);(0,Tt.drawHorizontalLine)(e,s,0,n)}}e.restore()}hitTest(e){return null}}class It{constructor(e){this._renderer=new xt,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:i.horzGridProperties.childs().style.value(),vertLineStyle:i.vertGridProperties.childs().style.value(),priceMarks:e.marks(),timeMarks:null!==s?s:[],w:this._pane.width(),h:this._pane.height()};return this._renderer.setData(r),this._renderer}}class Mt extends Ct.DataSource{id(){return"grid"}paneViews(e){return[new It(e)]}}var Lt=i(97938);class At extends Lt.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=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}}const Et={normalBgColor:a.colorsPalette["color-cold-gray-750"],hoveredBgColor:a.colorsPalette["color-cold-gray-600"]},kt={normalBgColor:a.colorsPalette["color-cold-gray-900"],hoveredBgColor:a.colorsPalette["color-cold-gray-650"]};class Dt extends At{additionalPadding(e){return 2/12*e}_isVisible(){return this._properties.childs().showPriceScaleCrosshairLabel.value()&&this._source.visible&&null!==this._source.pane}_bgColor(){return this._getThemedColors().normalBgColor}_updateRendererData(e,t,i){const s=t.visible;super._updateRendererData(e,t,i),this._source.isHovered()?t.backgroung=this._getThemedColors().hoveredBgColor:t.backgroung=void 0,s||(t.visible=s)}_getThemedColors(){return this._source.model().isDark()?Et:kt}}class Vt extends At{_isVisible(){return null!==this._source.measurePane().value()}_bgColor(){return this._properties.childs().axisLineToolLabelBackgroundColorCommon.value()}}var Bt=i(28978),Nt=(i(28296),i(97056));function Rt(e){const t=e.priceScale();return null===t?0:t.isPercentage()||t.isIndexedTo100()?2:1}const Ot=B.enabled("show_context_menu_in_crosshair_if_only_one_item");class Ft extends Bt.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=Rt(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,le.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||Ot||(this._tooltipText=""),this._crosshairPriceAxisView.setPaneRendererLabelIcon(r),this._hasActions=0!==s}_handleClick(e,t,i){(0,h.trackEvent)(this._gaOrigin,"click");const s=this._mainDataSourceOnPane(),r=null!==s&&(0,le.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};u.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 n="left"===s;setTimeout(()=>{const t=(0,r.ensureDefined)(this._data),s=n?t.xl:t.xr,o=i.localX-s,a=i.clientX-o,l=i.clientX-o+t.containerWidth;Nt.ContextMenuManager.showMenu(e,{clientX:n?a:l,clientY:i.clientY-t.containerHeight/2,boxHeight:t.containerHeight,attachToXBy:n?"left":"right",attachToYBy:"auto-strict"},void 0,{menuName:"CrosshairMenuView"})})}_mainDataSourceOnPane(){const e=this._crosshair.pane;return null!==e?e.mainDataSource():null}}var Wt=i(43891),Ht=i(71413),zt=i(84346);class Ut{
constructor(e){this._data=e}hitTest(e){return void 0===this._data.clickHandler?null:new zt.HitTestResult(zt.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,Pt.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,Tt.drawVerticalLine)(e,n,0,l),r&&o>=0&&(0,Tt.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()),e.restore()}}const jt=a.colorsPalette["color-tv-blue-500"];class Gt{constructor(e,t){this._rendererData={},this._renderer=new Ut(this._rendererData),this._source=e,this._pane=t}update(){}renderer(e,t){const i=this._source.selectPointMode().value(),s=this._source.visible&&(this._source.areLinesVisible||i)&&!this._source.linesShouldBeHidden(),n=this._rendererData;if(!s||null===this._pane)return null;const o=this._source.paneForPointSelect(),a=null!==o?this._source.pane===o&&this._pane===o:this._pane===this._source.pane;if(i&&this._source.isOnHoveredChartWidget()&&a){const e=(0,r.ensureNotNull)(this._source.pointToSelect());n.color=this._source.lineColor()||jt,n.lineWidth=1,n.lineStyle=Wt.LINESTYLE_SOLID,n.horzLinesVisible=!0,n.vertLinesVisible=!0,n.drawCenter=!1,"time"===e?n.horzLinesVisible=!1:"price"===e&&(n.vertLinesVisible=!1)}else{const e=this._source.properties(),t=this._source.model().currentTool(),i=(0,Ht.lastMouseOrTouchEventInfo)(),s=i.isTouch&&!i.stylus&&((0,f.isLineToolName)(t)||(0,lt.toolIsMeasure)(t));let r;r=s?jt:e.childs().color.value();const o=e.childs().transparency.value();!s&&o>0&&(r=(0,ct.generateColor)(r,o)),n.color=r,n.horzLinesVisible=this._pane===this._source.pane&&(this._pane.maximized().value()||!this._pane.collapsed().value()),n.vertLinesVisible=!0,n.lineWidth=e.childs().width.value(),n.lineStyle=e.childs().style.value(),n.drawCenter=s&&this._pane===this._source.pane}return n.w=this._pane.width(),n.h=this._pane.height(),n.x=void 0!==this._source.lockedX&&isFinite(this._source.lockedX)&&this._source.lockedX||this._source.x,n.y=this._source.y,this._renderer}}var qt=i(55776);const Yt={backgroundColor:(0,ct.generateColor)(a.colorsPalette["color-tv-blue-500"],70),borderColor:(0,ct.generateColor)(a.colorsPalette["color-tv-blue-500"],20)};class Kt{constructor(e){this._renderer=new qt.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:Yt.backgroundColor,color:Yt.borderColor,fillBackground:!0,linewidth:1,points:[this._rectangle.min,this._rectangle.max],
extendLeft:!1,extendRight:!1};return this._renderer.setData(i),this._renderer}}var $t=i(62820),Xt=i(26811),Zt=i(97645),Jt=i(92242),Qt=i(67802),ei=i(63300),ti=i(98664),ii=i(94804),si=i(49612);const ri=(0,K.t)("{count} bars"),ni=(0,K.t)("Vol"),oi=new Xt.PercentageFormatter,ai=new Jt.TimeSpanFormatter,li=new Qt.VolumeFormatter,ci=(0,a.getHexColorByName)("color-tv-blue-500"),hi=(0,a.getHexColorByName)("color-ripe-red-400"),di={bgColorPositive:(0,ct.generateColor)(ci,80),bgColorNegative:(0,ct.generateColor)(hi,80),colorPositive:(0,a.getHexColorByName)("color-tv-blue-600"),colorNegative:(0,a.getHexColorByName)("color-ripe-red-400"),labelBgColorPositive:ci,labelBgColorNegative:hi};class ui{constructor(e,t){this._pipFormatter=null,this._lastSymbolInfo=null,this._horzTrenRenderer=new ei.TrendLineRenderer,this._vertTrenRenderer=new ei.TrendLineRenderer,this._bgRenderer=new qt.RectangleRenderer,this._labelRenderer=new ti.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,r.ensureNotNull)(this._source.measurePane().value()),o=t.price,a=i.price,l=i.price-o,c=i.index-t.index,h=(0,$t.forceLTRStr)(""+c),d=(0,r.ensureNotNull)(s.mainDataSource());let u=(0,r.ensureNotNull)(d.formatter()).format(l);if(Math.abs(o)>1e-8){const e=l/Math.abs(o);u+=" ("+oi.format(100*e)+")"}const p=(0,$t.forceLTRStr)(u);this._label=p+"\n"+ri.format({count:h});const _=(0,r.ensureNotNull)(d.firstValue()),m=this._source.model().timeScale().indexToCoordinate(t.index),g=this._source.model().timeScale().indexToCoordinate(i.index),f=s.defaultPriceScale().priceToCoordinate(o,_),v=s.defaultPriceScale().priceToCoordinate(a,_);this._p1=new n.Point(m,f),this._p2=new n.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 Zt.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,C=null!==w?" , "+w:"",P=null!==b?ai.format(b):null,T=null!==P?", "+(0,$t.startWithLTR)(P):"";this._label=(0,$t.forceLTRStr)(p+C)+"\n"+ri.format({count:h})+T;const x=this._source.measureVolume();Number.isNaN(x)||(this._label+=`\n${ni} ${li.format(x)}`);const I=a=50?si.LineEnd.Arrow:si.LineEnd.Normal};this._horzTrenRenderer.setData(s)}{const e=Math.round(k.x),t=new n.Point(e,this._p1.y),i=new n.Point(e,this._p2.y),s={points:[t,i],color:L,linewidth:1,linestyle:Wt.LINESTYLE_SOLID,extendleft:!1,extendright:!1,leftend:si.LineEnd.Normal,rightend:Math.abs(t.y-i.y)>=50?si.LineEnd.Arrow:si.LineEnd.Normal};this._vertTrenRenderer.setData(s)}const D={x:0,y:10},V=.5*(this._p1.x+this._p2.x),B=this._p2.y,N=new n.Point(V,B),R=(O=(0,r.ensureNotNull)(this._label),{points:[N],text:O,color:"#FFFFFF",horzAlign:"center",vertAlign:"middle",font:M.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(R);const F=this._labelRenderer.measure(),W=(0,ti.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 ii.CompositeRenderer;return e.append(this._bgRenderer),e.append(this._horzTrenRenderer),e.append(this._vertTrenRenderer),e.append(this._labelRenderer),e}}var pi=i(16282);class _i extends pi.ScaledPaneRenderer{constructor(e){super(),this._data=e}hitTest(e){return null}_drawImpl(e){e.translate(this._data.x-this._data.width/2,this._data.y-this._data.height/2),e.strokeStyle="rgba(153,153,153,.3)",e.lineWidth=2,e.beginPath(),this._drawShackle(e),e.stroke(),e.closePath(),e.strokeStyle="rgba(153,153,153,.7)",e.lineWidth=1,e.beginPath(),e.rect(0,this._data.height-this._data.bodyHeight+.5,this._data.width,this._data.bodyHeight),e.closePath(),e.stroke(),e.translate(0,-1),e.strokeStyle="#777",e.beginPath(),this._drawShackle(e),e.stroke(),e.closePath(),e.fillStyle="rgba(255,255,255,.7)",e.beginPath(),e.rect(1,this._data.height-this._data.bodyHeight+1.5,this._data.width-2,this._data.bodyHeight-2),e.fill(),e.beginPath(),e.rect(.5,this._data.height-this._data.bodyHeight+1,this._data.width-1,this._data.bodyHeight-1),e.stroke(),e.closePath(),e.fillStyle="#777",e.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 mi{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,lt.lockTimeAxis)().value(),n=i&&this._horzVisible,o=i||s;if("y"===this._axis&&!n||!o)return null;const a="y"===this._axis?this._pane.width()-4.5:(0,r.ensureDefined)(this._source.lockedX)+1,l="y"===this._axis?this._source.y:this._pane.height()-5.5-1;return new _i({x:a,y:l,width:9,height:11,bodyHeight:7})}}var gi=i(49483),fi=i(76166),vi=i(14445),Si=i(57626);class yi extends vi.DataWindowView{constructor(e){super(),
this._invalidated=!0,this._dateItem=new vi.DataWindowItem((0,K.t)("Date"),""),this._timeItem=new vi.DataWindowItem((0,K.t)("Time"),""),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(Si.notAvailable),this._dateItem.setValue(Si.notAvailable),this._model.timeScale().isEmpty())return;let t=this._model.crossHairSource().appliedIndex();if(!(0,mt.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 bi=i(85578);class wi extends bi.TimeAxisView{constructor(e,t,i=!1){super(e),this._indexProvider=t,this._highlighted=i,this._properties=e.properties().childs().scalesProperties}_getBgColor(){const e=this._model.isDark();return this._highlighted?this._properties.childs().axisLineToolLabelBackgroundColorCommon.value():e?a.colorsPalette["color-cold-gray-750"]:a.colorsPalette["color-cold-gray-900"]}_getIndex(){return this._model.crossHairSource().visible?this._indexProvider():null}_isVisible(){return this._properties.childs().showTimeScaleCrosshairLabel.value()}}var Ci=i(34081);const Pi={menuEnabled:!1,menuForMainSourceOnly:!1,disableTradingMenuActions:!1,disableDrawHorizLineMenuAction:!1};class Ti extends Ct.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(G())(null),this._startMeasurePoint=null,this._endMeasurePoint=null,this._lastValidMeasurePoint=null,this._isOnHoveredChartWidget=!1,this._selectPointMode=new(G())(!1),this._selectionPane=null,this._selectionView=new Kt(this),this._selectionStartPoint=null,this._measurePaneView=null,this._timeLockPaneView=null,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(U()),this._pointSelectedDelegate=new(U()),this._requestedPoint=null,this._paneForRequestedPoint=null,this._selectLineColor=null,this._volumeCalculator=null,this._model=e,this._options=Object.assign({},Pi,i||{}),this._linesShouldBeHidden=this._model.readOnly(),this._dataWindowView=new yi(e),this.setSelectionEnabled(!1);const s=e=>t=>t===(0,r.ensureNotNull)(this._measurePane.value()).defaultPriceScale()?e():null;this._currentPosPriceProvider=e=>{const t=(0,r.ensureNotNull)(this.pane);if(e===t.defaultPriceScale())return this.price;const i=(0,r.ensureNotNull)(t.defaultPriceScale().mainSource()).firstValue();if(null===i)return null;const s=t.defaultPriceScale().priceToCoordinate(this.price,i),n=(0,r.ensureNotNull)(e.mainSource()).firstValue()
;return null===n?null:e.coordinateToPrice(s,n)},this._startMeasurePriceProvider=s(()=>(0,r.ensureNotNull)(this._startMeasurePoint).price),this._endMeasurePriceProvider=s(()=>(0,r.ensureNotNull)(this._lastMeasurePoint()).price),this._properties=t;this._timeAxisView=new wi(e,()=>this.appliedIndex(),!1),this._startMeasureTimeAxisView=new wi(e,()=>(0,r.ensureNotNull)(this._startMeasurePoint).index,!0),this._endMeasureTimeAxisView=new wi(e,()=>(0,r.ensureNotNull)(this._lastMeasurePoint()).index,!0),e.readOnly()||lt.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 n.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,r.assert)(null===this._volumeCalculator),this._volumeCalculator=new Ci.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,r.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._selectPointMode}lineColor(){return this._selectLineColor}cancelRequestSelectPoint(){this._selectPointMode.value()&&this._setSelectPointModeState(!1)}requestSelectPoint(e){(0,r.assert)(!this._selectPointMode.value(),"Point already requested");const{pointType:t,pane:i,lineColor:s=null}=e;i&&((0,r.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(!0)}onPointSelected(){
return this._pointSelectedDelegate}trySelectCurrentPoint(){const e=(0,r.ensureNotNull)(this._requestedPoint);if(!this._model.mainSeries().bars().contains(this.index)&&"price"!==e)return;const t=(0,r.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(!1),this._pointSelectedDelegate.fire({time:i,price:s},t)}}isOnHoveredChartWidget(){return this._isOnHoveredChartWidget}setOnHoveredChartWidget(e){this._isOnHoveredChartWidget=e}clearPosition(){this.visible=!1,this.index=NaN,this.price=NaN,this.x=NaN,this.y=NaN,this.pane=null,this.clearOriginCoords()}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._selectPointMode.value()&&this._setSelectPointModeState(!1)}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,Dt,!0)[0]),this._startMeasurePoint&&s.push(this._createPriceAxisViewOnDemand(this._startMeasurePriceAxisViews,null,e,t,this._startMeasurePriceProvider,Vt)[0]),this._lastMeasurePoint()&&s.push(this._createPriceAxisViewOnDemand(this._endMeasurePriceAxisViews,null,e,t,this._endMeasurePriceProvider,Vt)[0]),s}timeAxisViews(){const e=[],t=null===this._requestedPoint||"price"!==this._requestedPoint||!this._isOnHoveredChartWidget;return!this._linesShouldBeHidden&&(this.visible||(0,lt.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=[new Gt(this,e)];if(e===this._selectionPane&&t.push(this._selectionView),e===this._measurePane.value()&&(null===this._measurePaneView&&(this._measurePaneView=new ui(this,e)),this._measurePaneView.update((0,O.dataSourceChangeEvent)(this.id())),t.push(this._measurePaneView)),fi.addPlusButtonProperty.value()){const i=e===this.pane,s=!gi.CheckMobile.any()||window.screen.width>=320,r=lt.tool.value(),n=(0,f.isLineToolName)(r),o=null!==this._model.lineBeingEdited()||null!==this._model.lineBeingCreated()||this._model.sourcesBeingMoved().length>0||null!==this._model.customSourceBeingMoved()||(0,lt.toolIsMeasure)(r);if(i&&this._isOnHoveredChartWidget&&!this._selectPointMode.value()&&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,Dt,!0)[1];null!==i&&t.push(i)}}}}return(0,lt.lockTimeAxis)().value()&&(null===this._timeLockPaneView&&(this._timeLockPaneView=new mi(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()}setLockedPosition(e){delete this.lockedIndex,delete this.lockedX,e!==this._measurePane.value()&&(0,lt.lockTimeAxis)().value()&&(this.lockedIndex=this._model.timeScale().points().roughIndex(lt.lockTimeAxisTime.value()),null!==this.lockedIndex&&(this.lockedX=this._model.timeScale().indexToCoordinate(this.lockedIndex)))}isMenuEnabled(){return this._options.menuEnabled}isHoveredEnabled(){return fi.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,n,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,n),l.set(s,h),void 0!==c){const e=new Ft(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,r.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,O.dataSourceChangeEvent)(this.id())),this._movedDelegate.fire({index:this.index,price:this.price}),!0)}_tryToUpdateData(e,t,i){const s=this.x,n=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,r.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||n!==this.y||a!==this.index||o!==this.price||l!==this.pane}_priceScaleByPane(e){return e&&!e.defaultPriceScale().isEmpty()?e.defaultPriceScale():null}_setSelectPointModeState(e){e||(this._requestedPoint=null,this._selectLineColor=null,this._paneForRequestedPoint&&(this._paneForRequestedPoint=null,this._model.panesCollectionChanged().unsubscribe(this,this._paneCollectionChanged))),lt.isPointSelectedNow.setValue(e),this._selectPointMode.setValue(e),this._model.lightUpdate()}_paneCollectionChanged(e){const t=this._paneForRequestedPoint;null!==t&&-1===e.indexOf(t)&&this.cancelRequestSelectPoint()}}var xi=i(56972),Ii=i(40236),Mi=i(67396),Li=i(52418);const Ai=(0,$.getLogger)("Chart.ChartModel");function Ei(e,t){const i=e.indexOf(t);return-1!==i&&(e.splice(i,1),!0)}function ki(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 Di={isSnapshot:!1,readOnly:!1,watermarkEnabled:!0,shiftVisibleRangeOnNewBar:!0,currencyConversionEnabled:!1,unitConversionEnabled:!1,countdownEnabled:!0,lastPriceAnimationEnabled:!0,onWidget:!1,hideIdeas:!1};class Vi{constructor(e,t,i,r,n,o,a,c,h,d){this._onRearrangePanes=new(U()),this._lineToolsGroupModel=new tt,this._sourcesBeingMoved=[],this._activeItemBeingMoved=null,this._lineBeingEdited=null,this._linePointBeingEdited=null,this._linePointBeingChanged=null,this._customSourceBeingMovedHitTestData=null,this._customSourceBeingMoved=null,this._dataSourceCollectionChanged=new(U()),this._sourceProperitesChanged=new(U()),this._sourceZOrderChanged=new(U()),this._symbolSourceResolved=new(U()),this._symbolSourceResolvingActive=new(G())(!1),this._adjustForDividendsAvailability=new(G())(0),this._adjustForDividendsEnabled=new(G())(!1),this._sessions=null,this._currentTool="",this._lineBeingCreated=null,this._paneBeingCreatedLineOn=null,this._lineCancelled=new(U()),this._phantomSourceContainer=new gt(this),this._destroyed=!1,this._isSettingsExternalPosition=!1,this._isTimeScrolling=!1,this._magnet=new bt,this._scrollingState=null,this._modelIntervals=[],this._rendererOptionsProvider=new L(this),this._cachedStudiesMaxOffset=0,this._panes=[],this._tagsChanged=new(U()),this._strategySources=[],this._strategySourcesChange=new(U()),this._activeStrategySource=new(G())(null),this._paneCollapsingAvailable=new(G())(!1),this._panesCollectionChanged=new(U()),this._scrollEnabled=B.enabled("chart_scroll"),this._zoomEnabled=B.enabled("chart_zoom"),this._isScalesResetAvailableChanged=new(U()),this._isScalesResetAvailable=!1,this._esdWatcher=null,this._alertsWatcher=null,this._hoveredSource=null,this._hoveredSourceChanged=new(U()),
this._lastHoveredHittestData=null,this._lastSelectedHittestData=null,this._topmostCustomSources=[],this._fgCustomSources=[],this._bgCustomSources=[],this._allCustomSources=[],this._customSourcesMap=new Map,this._multiPaneSources=[],this._showLegendProperty=new(x()),this._id=(0,X.guid)(),this._chartSaveTime=null,this._availableCurrenciesList=null,this._availableCurrencies=new pt([]),this._availableUnitsObject=null,this._availableUnits=new _t({}),this._shouldBeSavedEvenIfHidden=!1,this._watchedThemeSpawn=l.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(U()),this._chartThemeLoaded=new(U()),this._selection=new S,this._selectedSourceChanged=new(U()),this._symbolSourceCollectionChanged=new(U()),this._gridSource=new Mt,this._syncPointCache=new Map,this._lastAppliedTimeRange=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(le.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,_e.merge)((0,_e.clone)(Di),c),this._collapsedWV=h,this._isAutoSaveEnabled=d,this._studiesMetaInfoRepository=n,this._readOnly=this._options.readOnly,this._isSnapshot=this._options.isSnapshot,this._chartSaveTime=(new Date).valueOf(),this._backgroundColor=new(G())(this._getBackgroundColor()),this._backgroundTopColor=new(G())(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,lt.init)();const u=this._readOnly?new(x())((0,D.defaults)("chartproperties.paneProperties.crossHairProperties")):this._properties.childs().paneProperties.childs().crossHairProperties;this.m_crossHairSource=new Ti(this,u,this._options.crossHair),this.m_crossHairSource.selectPointMode().subscribe(e=>{if(e&&this.lineBeingCreated()){const e=lt.tool.value();this.cancelCreatingLine(),lt.tool.setValue(e)}}),this._tagsChanged=new(U());const p=new P.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 $e(this,this._options.timeScale);const _={countdownEnabled:this._options.countdownEnabled,lastPriceAnimationEnabled:this._options.lastPriceAnimationEnabled};this.m_mainSeries=new xi.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,O.dataSourceChangeEvent)(this.m_mainSeries.id())),m()}),(0,Y.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._lastAppliedTimeRange&&null!==i&&s&&(0,vt.areEqualTimeFrames)(this._lastAppliedTimeRange.range,i)){const e=this.appliedTimeFrame().value();null!==e&&!this._lastAppliedTimeRange.actual&&(0,vt.areEqualTimeFrames)(this._lastAppliedTimeRange.range,e.val)&&this.appliedTimeFrame().setValue(null),this._lastAppliedTimeRange=null}})}setStudiesMetaData(e,t){this._studiesMetaData=e,this._studyVersioning=new(b())(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,r.assert)(0===this._topmostCustomSources.length),(0,r.assert)(0===this._fgCustomSources.length),(0,r.assert)(0===this._bgCustomSources.length),(0,r.assert)(0===this._allCustomSources.length),(0,r.assert)(0===this._customSourcesMap.size),null!==this._esdWatcher&&(this._esdWatcher.destroy(),this._esdWatcher=null),null!==this._alertsWatcher&&(this._alertsWatcher.destroy(),this._alertsWatcher=null),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,Y.currencyUnitVisibilityProperty)().unsubscribeAll(this),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 ae.PriceRange(n,o)),this.recalculateAllPanes((0,O.viewportChangeEvent)()),this.invalidate(this._paneInvalidationMask(r,q.InvalidationLevel.Light)),this._setScalesResetAvailable(!0)}setTimeViewport(e,t){const i=this.appliedTimeFrame().value();null!==this._lastAppliedTimeRange&&null!==i&&(0,vt.areEqualTimeFrames)(this._lastAppliedTimeRange.range,i.val)&&!this._lastAppliedTimeRange.actual||(this.timeScale().zoomToBarsRange(e,t),this.recalculateAllPanes((0,O.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}updateCrosshairPositionByOriginCoords(){const e=this.crossHairSource(),t=e.pane;let i=e.originX(),s=e.originY();if(Number.isFinite(i)||(i=e.x,s=e.y),null!==t&&Number.isFinite(i)&&Number.isFinite(s)){const n=this._timeScale.coordinateToVisibleIndex(i);let o=NaN;const a=t.defaultPriceScale();if(!a.isEmpty()){const e=(0,
r.ensureNotNull)(t.mainDataSource()).firstValue();null!==e&&(o=a.coordinateToPrice(s,(0,r.ensureNotNull)(e)))}this.crossHairSource().setPosition(n,o,t)&&e.isOnHoveredChartWidget()&&this._syncCrosshair()}}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,O.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);for(const t of this.barsMarksSources())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){const t=this.selection().allSources();e({removeSourceFromSelection:this._removeSourceFromSelection,addSourceToSelection:this._addSourceToSelection,clearSelection:this._clearSelection,selection:this.selection.bind(this)});const i=(0,g.subtract)(t,this.selection().allSources()),s=(0,g.subtract)(this.selection().allSources(),t);s.concat(t).forEach(e=>e.updateAllViews((0,O.selectionChangeEvent)())),i.forEach(e=>{const t=(0,f.isLineTool)(e)&&e.hasAlert.value()&&e.getAlertSync();t&&t.set("selected",!1)}),s.forEach(e=>{const t=(0,f.isLineTool)(e)&&e.hasAlert&&e.hasAlert.value()&&e.getAlertSync();t&&t.set("selected",!0)}),this.lightUpdate(),(i.length>0||s.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=tt.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))}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,O.dataSourceChangeEvent)(t.id())),this.fullUpdate(),!0}insertStudyStub(e){const t=this.mainSeries(),i=(0,r.ensureNotNull)(this.paneForSource(t)),s=new w.StudyStub(this,null,e),n=i.createPriceScaleAtPosition("overlay");return i.addDataSource(s,n,!1),this.recalculatePane(i,(0,O.dataSourceChangeEvent)(s.id())),this.fullUpdate(),s}removeStudyStub(e){const t=this.dataSourceForId(e);return null===t?(Ai.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,O.selectionChangeEvent)()),s=new q.InvalidationMask(q.InvalidationLevel.Cursor);const e=this._invalidationMaskForSource(this._hoveredSource,q.InvalidationLevel.Light);null!==e&&s.merge(e)}if(this._hoveredSource=e,e){e.updateAllViews((0,O.selectionChangeEvent)()),s||(s=new q.InvalidationMask(q.InvalidationLevel.Cursor));const t=this._invalidationMaskForSource(e,q.InvalidationLevel.Light);null!==t&&s.merge(t)}s&&this.invalidate(s),i&&this._hoveredSourceChanged.fire(e)}properties(){return this._properties}disconnect(){this.sessions().stop();for(const e of this.dataSources())e.disconnect&&e.disconnect();this._timeScale.disconnect()}gridSource(){return this._gridSource}hoveredSource(){return this._hoveredSource}hoveredSourceChanged(){return this._hoveredSourceChanged}lastHittestData(){return this._lastHoveredHittestData}lastSelectedHittestData(){return this._lastSelectedHittestData}syncTimeWithModel(e,t){const i=this.mainSeries().syncModel();if(null===i)return;const s=1e3*this.createSyncPoint(e,i.syncSourceTarget()).sourceTimeToTargetTime(t/1e3),r=(0,it.get_timezone)(this.timezone());let n=(0,it.utc_to_cal)(r,s);this.mainSeries().isDWM()&&(n=i.getSession().spec.correctTradingDay(n),(0,it.set_hms)(n,0,0,0,0,(0,it.get_timezone)("Etc/UTC"))),this._gotoTimeImpl(n.getTime(),{centerIfVisible:!1})}gotoTime(e){return this._gotoTimeImpl(e,{centerIfVisible:!0})}recalculatePane(e,t){null==e||e.recalculate(t)}recalculateAllPanes(e){this._panes.forEach(t=>t.recalculate(e)),this.updateAllPaneViews(e),this.crossHairSource().updateAllViews(e)}gotoTimeRange(e,t){const i=this.timeScale(),s=i.tickMarks(),n=this.mainSeries();if(void 0===s.minIndex)return;let o=e,a=t;const l=n.symbolInfo();if(null!==l){let i=this.properties().childs().timezone.value();"exchange"===i&&(i=l.timezone);const s=(0,it.get_timezone)(i),r=(0,it.utc_to_cal)(s,e),c=(0,it.utc_to_cal)(s,t);if(n.isDWM()){const e=(0,it.get_timezone)("Etc/UTC");(0,it.set_hms)(r,0,0,0,0,e),(0,it.set_hms)(c,0,0,0,0,e)}o=r.getTime(),a=c.getTime()}const c=(0,r.ensureDefined)(s.maxIndex),h=(0,r.ensureNotNull)(s.indexToTime((0,r.ensureDefined)(s.minIndex))).valueOf();if(h-o<=0&&h-a<=0){const e=(e,t)=>e(0,r.ensureNotNull)(s.indexToTime(e)).valueOf(),n=(0,
g.lowerboundExt)(t,o,e,s.nearestIndex(o),c),l=(0,g.lowerboundExt)(t,a,e,s.nearestIndex(a),c);if(null!==this._lastAppliedTimeRange&&(this._lastAppliedTimeRange.actual=!1),n!==l)i.zoomToBarsRange(n,l),this.lightUpdate();else{this.startScrollTime(0);const e=((0,r.ensureNotNull)(i.logicalRange()).left()-n+1)*i.barSpacing();this.scrollTimeTo(e),this.endScrollTime()}}else{const i={type:"time-range",from:e/1e3,to:t/1e3};this._lastAppliedTimeRange={range:i,actual:!0},n.loadDataTo(i)}}paneForSource(e){if(!(0,m.isDataSource)(e))return Array.from(this._customSourcesMap.values()).includes(e)?this.paneForSource(this.mainSeries()):null;for(let t=this._panes.length-1;t>=0;t--)if(this._panes[t].hasDataSource(e))return this._panes[t];return e instanceof ht.BarsMarksContainer?this.paneForSource(this.mainSeries()):null}mainPane(){for(const e of this._panes)if(e.isMainPane())return e;throw new Error("Main pane is not found")}lastPane(){return this._panes[this._panes.length-1]}removeSource(e,t){this.selectionMacro(t=>t.removeSourceFromSelection(e)),this._hoveredSource===e&&(this._hoveredSource=null,this._lastHoveredHittestData=null),this._sourcesBeingMoved.includes(e)&&(this._sourcesBeingMoved=this._sourcesBeingMoved.filter(t=>t!==e),this._sourcesBeingMoved.length||(this._activeItemBeingMoved=null)),e===this._lineBeingEdited&&(this._lineBeingEdited=null,lt.isToolEditingNow.setValue(!1)),e===this._lineBeingCreated&&(this._lineBeingCreated=null,lt.isToolCreatingNow.setValue(!1)),e.stop&&e.stop();const i=this.detachSource(e),s=this.mainSeries().priceScale();return(0,H.isStudy)(e)&&(0,le.isActingAsSymbolSource)(e)&&e.priceScale()===s&&s.isPercentage()&&1===s.seriesLikeSources().filter(le.isActingAsSymbolSource).length&&s.setMode({percentage:!1}),this.fullUpdate(),this._invalidateBarColorerCaches(),(0,H.isStudy)(e)&&((0,u.emit)("study_event",e.id(),"remove"),e.isChildStudy()&&e.parentSource().unsetChild(e),e.maxOffset().unsubscribe(this._boundUpdateStudiesMaxOffset)),e.destroy&&e.destroy(),(0,f.isLineTool)(e)&&(e.removeAlert(),(0,u.emit)("drawing_event",e.id(),"remove")),i}allStudies(e){const t=e?e=>(0,H.isStudy)(e)&&!0:H.isStudy;return this._getAllSources(t)}findNonOverlayStudyWithGroupingKey(e,t){const i=void 0!==t?[t]:this._panes;for(const t of i){const i=t.dataSources().find(i=>(0,H.isStudy)(i)&&i.metaInfo().groupingKey===e&&!t.isOverlay(i));if(void 0!==i)return{pane:t,study:i}}return null}movePaneUp(e){this.movePane(e,e-1)}movePaneDown(e){this.movePane(e,e+1)}movePane(e,t){const i=this._panes[e];this._panes.splice(e,1),this._panes.splice(t,0,i),this._panesCollectionChanged.fire(this._panes),this._onRearrangePanes.fire(),this.invalidate(q.InvalidationMask.panesOrder())}backgroundColor(){return this._backgroundColor}backgroundTopColor(){return this._backgroundTopColor}backgroundColorAtYPercentFromTop(e){const t=this.backgroundColor().value(),i=this.backgroundTopColor().value();if(t===i)return t;if(e=Math.max(0,Math.min(100,Math.round(100*e))),
null===this._gradientColorsCache||this._gradientColorsCache.topColor!==i||this._gradientColorsCache.bottomColor!==t)this._gradientColorsCache={topColor:i,bottomColor:t,colors:new Map};else{const t=this._gradientColorsCache.colors.get(e);if(void 0!==t)return t}const s=(0,ct.gradientColorAtPercent)(i,t,e/100);return this._gradientColorsCache.colors.set(e,s),s}backgroundCounterColor(){const e=this.backgroundColor().value();if(void 0===this._lastBackgroundColor||void 0===this._lastOriginalColor||e!==this._lastBackgroundColor){const t=(0,o.rgbToBlackWhiteString)((0,o.parseRgb)(e),150);this._lastBackgroundColor=e,this._lastOriginalColor="black"===t?"white":"black"}return this._lastOriginalColor}isDark(){return"white"===this.backgroundCounterColor()}defaultResolutions(){return this.chartApi().defaultResolutions()}availableCurrencies(){const e=this._getAvailableCurrencies();return e.length!==this._availableCurrencies.size()&&(this._availableCurrencies=new pt(e)),this._availableCurrencies}currencyConversionEnabled(){return this._options.currencyConversionEnabled}availableUnits(){const e=this._getAvailableUnits();return this._availableUnits.unitsChanged(e)&&(this._availableUnits=new _t(e)),this._availableUnits}unitConversionEnabled(){return this._options.unitConversionEnabled}resetDeferredStudies(){ve.instance(this).reset()}isJustClonedChart(){return this._undoModel.isJustClonedChart()}studyTemplate(e,t,i){const s={panes:[],version:this.version()};for(const e of this.panes())s.panes.push(e.state(!0,!1,!0));const r=this.mainSeries();return e&&(s.symbol=r.symbol(),this.currencyConversionEnabled()&&i&&(s.currency=r.currency()),this.unitConversionEnabled()&&i&&(s.unit=r.unit())),t&&(s.interval=r.interval()),s}restoreLineToolState(e,t,i){e.restorePoints(t.points,t.indexes||[]),e.properties().merge(t.state),e.restoreData&&e.restoreData(t),e.linkKey().setValue(t.linkKey||null),e.createServerPoints(),this.fullUpdate();const s=e.linkKey().value();null!==s&&i&&(0,lt.restoreLineToolState)({model:this,linkKey:s,state:t})}preferences(){return(0,Mi.preferencesByWhiteList)(this,this.mainSeries())}restoreTheme(e,t,i){e.mainSourceProperties.hollowCandleStyle||(e.mainSourceProperties.hollowCandleStyle=e.mainSourceProperties.candleStyle),this._undoModel.chartLoadTheme(e,t,i)}onResetScales(){return this._resetScales}startMovingSources(e,t,i,s,n,o){this._sourcesBeingMoved=e,this._activeItemBeingMoved=i;let a=!1;if(this._sourcesBeingMoved.forEach(e=>{!a&&(0,H.isStudy)(e)&&(a=!0);const l=(0,r.ensureNotNull)(this.paneForSource(e)),c=(0,f.isLineTool)(e),h=c&&e.linkKey().value();if(!1!==h&&null!==h&&s.has(h)&&c&&e.isFixed()){const t=(0,r.ensureDefined)(s.get(h)),a={screen:this._percentPositionToPoint(t,l)};e.startMoving(a,i,n,o)}else e.startMoving(t,i,n,o);const d=this._paneInvalidationMask(l,q.InvalidationLevel.Light);this.invalidate(d)}),!o){const s=e.filter(f.isLineTool).filter(e=>e.linkKey().value()&&e.isSynchronizable()).map(e=>e.linkKey().value());if(s.length&&t.logical){const o=this.externalTimeStamp(t.logical.index),a={linkKeys:s,model:this,
symbol:this.mainSeries().symbol(),point:{price:t.logical.price,timeStamp:o},activeItem:null!==i?i:void 0,envState:n,pointPositionPercents:new Map};e.forEach(e=>{if((0,f.isLineTool)(e)){const i=e.linkKey().value();if(i&&e.isSynchronizable()&&e.isFixed()){const s=(0,r.ensureNotNull)(this.paneForSource(e));a.pointPositionPercents.set(i,this._pointToPercentPosition((0,r.ensureDefined)(t.screen),s))}}}),(0,lt.startMovingLineTool)(a)}}lt.isToolMovingNow.setValue(!0),a&<.isStudyEditingNow.setValue(!0)}moveSources(e,t,i,s){if(this._sourcesBeingMoved.filter(e=>!e.isLocked||!e.isLocked()).forEach(n=>{const o=(0,f.isLineTool)(n)?n.linkKey().value():null;if(null!==o&&t.has(o)){const e=(0,r.ensureNotNull)(this.paneForSource(n)),a=(0,r.ensureDefined)(t.get(o)),l={screen:this._percentPositionToPoint(a,e)};n.move(l,this._activeItemBeingMoved,i,s)}else n.move(e,this._activeItemBeingMoved,i,s)}),this.lightUpdate(),!s&&e.logical){const t=this._sourcesBeingMoved.filter(f.isLineTool).filter(e=>e.isSynchronizable()&&!!e.linkKey().value()).map(e=>e.linkKey().value()),s=this.externalTimeStamp(e.logical.index),n={linkKeys:t,model:this,point:{price:e.logical.price,timeStamp:s},envState:i,pointPositionPercents:new Map};this._sourcesBeingMoved.filter(f.isLineTool).forEach(t=>{if(t.linkKey().value()&&t.isSynchronizable()&&t.isFixed()){const i=(0,r.ensureNotNull)(this.paneForSource(t));n.pointPositionPercents.set(t.linkKey().value(),this._pointToPercentPosition((0,r.ensureDefined)(e.screen),i))}}),(0,lt.moveLineTool)(n)}}endMovingSources(e,t,i){const s=this._sourcesBeingMoved.map(s=>{const n=(0,r.ensureNotNull)(this.paneForSource(s)),o=s.endMoving(e,t,i),a=this._paneInvalidationMask(n,q.InvalidationLevel.Light);return a.invalidateAll(q.InvalidationLevel.Light),this.invalidate(a),o}),n=this._sourcesBeingMoved.filter(f.isLineTool).filter(e=>e.isSynchronizable()&&!!e.linkKey().value()).map(e=>e.linkKey().value()),o=this._sourcesBeingMoved.filter(f.isLineTool).filter(e=>e.isSynchronizable()&&!!e.linkKey).map(e=>{const t={points:e.normalizedPoints(),interval:this.mainSeries().interval()};return e.isFixed()&&(t.pointPositionPercents=e.calcPositionPercents()),t});n.length&&(0,lt.finishMovingLineTool)({linkKeys:n,model:this,finalStates:o,changes:s}),this._sourcesBeingMoved=[],this._activeItemBeingMoved=null,lt.isToolMovingNow.setValue(!1),lt.isStudyEditingNow.setValue(!1)}sourcesBeingMoved(){return this._sourcesBeingMoved}setMovingCustomSource(e,t){this._customSourceBeingMoved=e,this._customSourceBeingMovedHitTestData=null!==t?{beingMoved:!1,...t}:null}processingCustomSourceMove(){null!==this._customSourceBeingMovedHitTestData&&(this._customSourceBeingMovedHitTestData.beingMoved=!0)}customSourceMovingHitTestData(){return this._customSourceBeingMovedHitTestData}customSourceBeingMoved(){return null!==this._customSourceBeingMovedHitTestData&&this._customSourceBeingMovedHitTestData.beingMoved?this._customSourceBeingMoved:null}width(){return this._width}setWidth(e,t){this._width=e,this._timeScale.setWidth(e,t);for(const t of this._panes)t.setWidth(e)
;this.recalculateAllPanes((0,O.viewportChangeEvent)()),this.recalcVisibleRangeStudies()}setPaneHeight(e,t){e.setHeight(t),this.recalculateAllPanes((0,O.viewportChangeEvent)()),this.lightUpdate()}isScalesResetAvailableChanged(){return this._isScalesResetAvailableChanged}isScalesResetAvailable(){return this._isScalesResetAvailable}panes(){return this._panes}paneForId(e){return this._panes.find(t=>t.id()===e)||null}createPane(e,t,i){const s=this._undoModel.chartWidget();s.isMaximizedPane()&&s.toggleMaximizePane(null);const r=this._properties.childs().paneProperties;t&&r.merge(t);const n=new Le(this._timeScale,r,this,i);return void 0!==e?this._panes.splice(e,0,n):this._panes.push(n),n.onTagsChanged().subscribe(this,Vi.prototype.onPaneTagsChanged),n.dataSourcesCollectionChanged().subscribe(this,()=>this._dataSourceCollectionChanged.fire(n)),n.symbolSourceCollectionChanged().subscribe(this,()=>this._onSymbolSourceCollectionChanged(n)),n.sourcePropertiesChanged().subscribe(this,e=>this._sourceProperitesChanged.fire(n,e)),n.sourceZOrderChanged().subscribe(this,e=>this._sourceZOrderChanged.fire(n,e)),n.symbolSourceResolved().subscribe(this,e=>this._symbolSourceResolved.fire(n,e)),n.symbolSourceResolvingActive().subscribe(this._recalcSymbolResolvingActive),n.collapsed().subscribe(this._recalcPaneCollapsingAvailable),this._recalcPaneCollapsingAvailable(),this._panesCollectionChanged.fire(this._panes),this.invalidate(q.InvalidationMask.panesOrder()),n}removePane(e){const t=this._undoModel.chartWidget();t.isMaximizedPane()&&t.toggleMaximizePane(null);const i=e;i.destroy();const s=this._panes.indexOf(i);-1!==s&&(this._panes.splice(s,1),e.dataSourcesCollectionChanged().unsubscribeAll(this),e.symbolSourceCollectionChanged().unsubscribeAll(this),e.sourcePropertiesChanged().unsubscribeAll(this),e.onTagsChanged().unsubscribeAll(this),e.symbolSourceResolved().unsubscribeAll(this),i.symbolSourceResolvingActive().unsubscribe(this._recalcSymbolResolvingActive),e.collapsed().unsubscribe(this._recalcPaneCollapsingAvailable),this._recalcPaneCollapsingAvailable(!0));this.crossHairSource().pane===e&&this.clearCurrentPosition(),this._panesCollectionChanged.fire(this._panes),this.invalidate(q.InvalidationMask.panesOrder())}changePanesHeight(e,t){if(this._panes.length<2)return;(0,r.assert)(e>=0&&ee+t.stretchFactor(),0),n=this._panes.reduce((e,t)=>e+t.height(),0),o=n-30*(this._panes.length-1);t=Math.min(o,Math.max(30,t));const a=s/n,l=i.height();i.setStretchFactor(t*a);let c=t-l,h=this._panes.length-1;for(const e of this._panes)if(e!==i){const t=Math.min(o,Math.max(30,e.height()-c/h));c-=e.height()-t,h-=1;const i=t*a;e.setStretchFactor(i)}this.fullUpdate()}clearCurrentPosition(){const e=this.crossHairSource();e.clearPosition(),(0,r.ensureNotNull)(e.dataWindowView()).update(),ki(this._panes),this.invalidate(q.InvalidationMask.cursor());const t=this._undoModel.chartWidget();t.chartWidgetCollection().syncCrosshair(null,t.id()),
this._phantomSourceContainer.onCursorPositionUpdated()}setAndSaveCurrentPosition(e,t,i,s){this.crossHairSource().saveOriginCoords(e,t),this.setCurrentPosition(e,t,i,s)}setCurrentPosition(e,t,i,s){let n=NaN;const o=this._timeScale.coordinateToVisibleIndex(e),a=i.defaultPriceScale();let l=null;!a.isEmpty()&&Number.isFinite(t)&&(l=(0,r.ensureNotNull)(i.mainDataSource()).firstValue(),null!==l&&(n=a.coordinateToPrice(t,l)));const c=this.crossHairSource(),h=c.selectPointMode().value(),d=this.currentTool(),u=this.mainSeries(),p=h||lt.isStudyEditingNow.value(),_=this._lineBeingCreated||this._lineBeingEdited||(0,f.isLineToolName)(d)||(0,lt.toolIsMeasure)(d)||p;!this._isSettingsExternalPosition&&_&&(n=this._magnet.align(n,o,i),null!==l&&c.saveOriginCoords(c.originX(),a.priceToCoordinate(n,l)));let m=null;if(isNaN(n)||(m=i),this._isTimeScrolling){if(!this._isSettingsExternalPosition&&h){const e=u.bars().firstIndex(),t=u.bars().lastIndex();if(null!==e&&null!==t){const s=Math.min(Math.max(o,e),t);s!==o&&this._setCorrectedPositionToCrosshair(s,n,l,i)}}else c.setPosition(c.index,n,m);return}c.setOnHoveredChartWidget(!0),c.setPosition(o,n,m),(0,r.ensureNotNull)(c.dataWindowView()).update(),ki(this._panes);const g=u.syncModel();if(this.crossHairSource().startMeasurePoint()||this._lineBeingCreated?this.lightUpdate():this.invalidate(q.InvalidationMask.cursor()),this._lineBeingCreated){const e=this._lineBeingCreated.linkKey().value();if(!this._isSettingsExternalPosition){const t=this._lineBeingCreated.setLastPoint({index:o,price:n},s);if(this._lineBeingCreated.updateAllViews((0,O.dataSourceChangeEvent)(this._lineBeingCreated.id())),t.price===n&&t.index===o||this._setCorrectedPositionToCrosshair(t.index,t.price,l,i),g&&e){const i=this._timeScale.points().roughTime(t.index,g.projectTime.bind(g));(0,lt.setLineToolLastPoint)({model:this,linkKey:e,point:{timeStamp:(0,r.ensureNotNull)(i),price:t.price}})}}}if(!this._isSettingsExternalPosition&&null!==this._lineBeingEdited&&null!==this._linePointBeingEdited){const e={index:o,price:n};this.changeLinePoint(e,s);const t=this._lineBeingEdited.alignCrossHairToAnchor(this._linePointBeingEdited)?this._lineBeingEdited.getPoint(this._linePointBeingEdited):e;null!==t&&this._setCorrectedPositionToCrosshair(t.index,t.price,l,i)}if(!this._isSettingsExternalPosition&&p){const e=u.bars().firstIndex(),t=u.bars().lastIndex();if(null!==e&&null!==t){const s=Math.min(Math.max(o,e),t);s!==o&&this._setCorrectedPositionToCrosshair(s,n,l,i)}}this._syncCrosshair(s)}setExternalPosition(e,t){let i;const s=this.crossHairSource();if(s.setOnHoveredChartWidget(!1),null!==e&&(0,_e.isNumber)(e.timeStamp)){const t=this.mainSeries().syncModel();if(t){const s=this.createSyncPoint(e.syncSourceTarget,t.syncSourceTarget()).sourceTimeToTargetTime(e.timeStamp);i=this._timeScale.points().roughIndex(s,t.distance.bind(t))}}if(null!==e&&null!=i&&Number.isFinite(i)){this._isSettingsExternalPosition=!0;const n=(0,r.ensureNotNull)(this.paneForSource(this.mainSeries())),o=this._timeScale.indexToCoordinate(i),a=(0,
r.ensureNotNull)(n.mainDataSource()).firstValue();if(null!==a){let i=NaN;void 0!==e.price&&Number.isFinite(e.price)&&(i=this.mainSeries().priceScale().priceToCoordinate(e.price,a)),s.clearOriginCoords(),this.setCurrentPosition(o,i,n,t)}return s.setOnHoveredChartWidget(!1),void(this._isSettingsExternalPosition=!1)}s.clearPosition(),(0,r.ensureNotNull)(s.dataWindowView()).update(),ki(this._panes),this.invalidate(q.InvalidationMask.cursor())}startScaleTime(e){this._timeScale.startScale(e)}scaleTimeTo(e){this._timeScale.scaleTo(e),this.recalculateAllPanes((0,O.viewportChangeEvent)()),this.lightUpdate(),this._setScalesResetAvailable(!0)}endScaleTime(){this._timeScale.endScale(),this.lightUpdate(),this.recalcVisibleRangeStudies()}resetTimeScale(){this._timeScale.restoreDefault(),this.recalculateAllPanes((0,O.viewportChangeEvent)()),this.recalcVisibleRangeStudies(),this.lightUpdate(),this._resetScales.fire(),this._setScalesResetAvailable(!1)}startScalePrice(e,t,i){e.startScalePrice(t,i)}scalePriceTo(e,t,i){e.scalePriceTo(t,i),this.mainSeries().priceScale().isLockScale()?this.lightUpdate():this.invalidate(this._paneInvalidationMask(e,q.InvalidationLevel.Light)),this._setScalesResetAvailable(!0)}endScalePrice(e,t){e.endScalePrice(t),this.invalidate(this._paneInvalidationMask(e,q.InvalidationLevel.Light))}startTwoPointsScalePrice(e,t,i,s){t.startTwoPointsScale(i,s)}twoPointsScalePriceTo(e,t,i,s){t.twoPointsScale(i,s),this.invalidate(this._paneInvalidationMask(e)),this._setScalesResetAvailable(!0)}endTwoPointsScalePrice(e,t){t.endTwoPointsScale(),this.invalidate(this._paneInvalidationMask(e))}resetPriceScale(e,t){this._setScalesResetAvailable(!1),e.resetPriceScale(t),this.invalidate(this._paneInvalidationMask(e,q.InvalidationLevel.Light))}restorePriceScaleState(e,t,i){e.restorePriceScaleState(t,i),this.invalidate(this._paneInvalidationMask(e,q.InvalidationLevel.Light))}currentTool(){return this._currentTool}setCurrentTool(e){this._currentTool!==e&&((0,f.isLineToolName)(e)&&this.selectionMacro(e=>{e.clearSelection()}),this._currentTool=e,this._phantomSourceContainer.onToolChanged())}detachSource(e){const t=this.paneForSource(e);return!!t&&(t.removeDataSource(e),t.isEmpty()?(this._lineBeingCreated&&t===this._paneBeingCreatedLineOn&&this.cancelCreatingLine(),this.removePane(t),!0):(this.fullUpdate(),!1))}onRearrangePanes(){return this._onRearrangePanes}finishLineTool(e){const t=e.linkKey().value();(0,lt.drawOnAllCharts)().value()&&null!==t&&e.isSynchronizable()&&(0,lt.finishLineTool)({linkKey:t,model:this})}startChangingLinetool(e,t,i,s,n){this._lineBeingEdited=e,this._linePointBeingChanged=t||null,this._linePointBeingEdited=void 0===i?null:i,this._lineBeingEdited.startChanging(i,t,n),lt.isToolEditingNow.setValue(!0);const o=(0,r.ensureNotNull)(this.paneForSource(e));this._lineBeingEdited.startDragPoint&&void 0!==i&&void 0!==t&&this._lineBeingEdited.startDragPoint(i,t),n||void 0===i||void 0===t||this._lineBeingEdited.setPoint(i,t,s,n),this._lineBeingEdited.updateAllViews((0,O.dataSourceChangeEvent)(this._lineBeingEdited.id()))
;const a=this._paneInvalidationMask(o,q.InvalidationLevel.Light);this.invalidate(a);const l=e.linkKey().value();if(l&&e.isSynchronizable()&&void 0!==i&&void 0!==t){const e=(0,r.ensureNotNull)(this.externalTimeStamp(t.index));(0,lt.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,o,a,l){if((0,r.assert)((0,f.isLineToolName)(i),"Cannot create unknown line tool: "+i),s){const e={...Li.intervalsVisibilitiesDefaults},t=s.childs().intervalsVisibilities.state();(0,_e.merge)(e,null!=t?t:{});const r=s.state();r.intervalsVisibilities=e,s=(0,f.createLineToolProperties)(i,r,this)}const c=(0,f.createLineTool)(i,this,s,null,void 0,l);if("LineToolExecution"!==i){const e="LineToolIcon"===i?c.properties().childs().icon.value().toString(16).toUpperCase():void 0;(0,h.trackEvent)("drawings","Study_Drawing_"+i,e)}const d=!c.linkKey().value()&&!o;a=(0,r.ensureDefined)(a||(0,r.ensureNotNull)(e.mainDataSource())),s||(0,f.prepareLineToolPropertiesByOwnerSource)(c.properties(),a),c.setOwnerSource(a);const u=a.priceScale();if(e.addDataSource(c,u,!1),(0,lt.drawOnAllCharts)().value()){const e=c.isSynchronizable()?o||(0,X.randomHash)():null;c.linkKey().setValue(e)}else c.linkKey().setValue(o);let p;if(c.isFixed()){const i=(0,r.ensureNotNull)((0,r.ensureNotNull)(e.mainDataSource()).firstValue()),s=this._timeScale.indexToCoordinate(t.index),o=(0,r.ensureNotNull)(u).priceToCoordinate(t.price,i);p=c.addFixedPoint(new n.Point(s,o))}else p=c.addPoint(t);return p||(this._lineBeingCreated=c,this._paneBeingCreatedLineOn=e,lt.isToolCreatingNow.setValue(!0)),d&&c.enableCurrentIntervalVisibility(),this.fullUpdate(),c}endChangingLinetool(e,t){const i=(0,r.ensureNotNull)(this._lineBeingEdited),s=i.endChanging(!1,e,t);this._lineBeingEdited=null,lt.isToolEditingNow.setValue(!1),this._linePointBeingEdited=null,this._linePointBeingChanged=null,this.lightUpdate();const n={points:i.normalizedPoints(),interval:this.mainSeries().interval()},o=i.linkKey().value();null!==o&&i.isSynchronizable()&&!t&&(0,lt.finishChangingLineTool)({model:this,linkKey:o,symbol:this.mainSeries().symbol(),finalState:n,changes:s})}continueCreatingLine(e,t,i,s){const n=(0,r.ensureNotNull)(this._lineBeingCreated),o=n.addPoint(e,t,i);n.updateAllViews((0,O.dataSourceChangeEvent)(n.id()));const a=new q.InvalidationMask(q.InvalidationLevel.Light);return o&&(this._paneBeingCreatedLineOn=null,this._lineBeingCreated=null,lt.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(),lt.isToolCreatingNow.setValue(!1),(0,lt.drawOnAllCharts)().value()&&e.isSynchronizable()&&(0,lt.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,r.ensureNotNull)(this._lineBeingEdited),n=(0,r.ensureNotNull)(this._linePointBeingEdited);let o=e.price,a=e.index;if(s.setPoint(n,e,t,i),!i){const t=s.alignCrossHairToAnchor(n)?s.getPoint(n):e;null!==t&&(a=t.index,o=t.price)}s.updateAllViews((0,O.dataSourceChangeEvent)(s.id())),this.lightUpdate();const l=s.linkKey().value();if(!i&&null!==l&&s.isSynchronizable()){const e=(0,r.ensureNotNull)(this._linePointBeingChanged),i={indexesChanged:a!==e.index,pricesChanged:o!==e.price},c=s.getChangePointForSync(n);if(null!==c){const e=this.externalTimeStamp(a);null!==e&&(o=c.price,(0,lt.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(),n=e.linkKey().value();!i&&n&&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,r.ensureNotNull)(this.externalTimeStamp(t.index));(0,lt.changeLineTool)({linkKey:n,model:this,symbol:this.mainSeries().symbol(),point:{price:t.price,timeStamp:e},changes:{pricesChanged:a,indexesChanged:l}})}}),e.setPoints(t),e.updateAllViews((0,O.dataSourceChangeEvent)(e.id())),this.lightUpdate()}startScrollTime(e){this._timeScale.startScroll(e),this._isTimeScrolling=!0}scrollTimeTo(e){this._timeScale.scrollTo(e),this.recalculateAllPanes((0,O.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,q.InvalidationLevel.Light))}endScrollPrice(e,t){e.endScrollPrice(t),this.invalidate(this._paneInvalidationMask(e,q.InvalidationLevel.Light))}addCustomSource(e,t,i=_.CustomSourceLayer.Foreground){this._customSourcesMap.has(e)&&Ai.logWarn(`Attempt to add the same custom source multiple time "${e}"`),Ai.logNormal(`Adding custom source "${e}"`);const s=t(e,this);switch(i){case _.CustomSourceLayer.Background:this._bgCustomSources.push(s);break;case _.CustomSourceLayer.Foreground:this._fgCustomSources.push(s);break;case _.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 _.CustomSourceLayer.Background:return this._bgCustomSources;case _.CustomSourceLayer.Foreground:return this._fgCustomSources;case _.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?Ai.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))}dateTimeFormatter(){return this._dateTimeFormatter}dateFormatter(){return this._dateFormatter}timeFormatter(){return this._timeFormatter}sessions(){return(0,r.ensureNotNull)(this._sessions)}createSessions(e){(0,r.assert)(null===this._sessions,"Sessions are already created"),this.addCustomSource("sessions",(t,i)=>(this._sessions=new W(t,i,e),this._sessions.start(),this._sessions),_.CustomSourceLayer.Background)}createPrePostMarket(e){this.addCustomSource("prePostMarket",(t,i)=>new PrePostMarket(t,i,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){ve.instance(this).reset();const s={};if(!e.panes)return void Ai.logDebug("ChartModel.restoreState: invalid state");if(!Array.isArray(e.panes))return void Ai.logDebug("ChartModel.restoreState: invalid state");if(e.panes.length<1)return void Ai.logDebug("ChartModel.restoreState: invalid state");if(this._shouldBeSavedEvenIfHidden=void 0===e.shouldBeSavedEvenIfHidden||e.shouldBeSavedEvenIfHidden,e.chartProperties&&!e.chartProperties.timezone&&(e.chartProperties.timezone=e.timezone),e.chartProperties){const i=(0,D.factoryDefaults)("chartproperties").scalesProperties;(0,_e.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,Y.migrateShowCurrencyAndShowUnitProperties)(i.showCurrency,i.showUnit),e.chartProperties.paneProperties.vertGridProperties=e.chartProperties.paneProperties.vertGridProperties||(0,_e.clone)(e.chartProperties.paneProperties.gridProperties),e.chartProperties.paneProperties.horzGridProperties=e.chartProperties.paneProperties.horzGridProperties||(0,_e.clone)(e.chartProperties.paneProperties.gridProperties),"backgroundType"in e.chartProperties.paneProperties||(e.chartProperties.paneProperties.backgroundType=dt.ColorType.Solid),"separatorColor"in e.chartProperties.paneProperties||(e.chartProperties.paneProperties.separatorColor=(0,c.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?_.TradingSourcesHorizontalAlignment.Right:r>=60?_.TradingSourcesHorizontalAlignment.Left:_.TradingSourcesHorizontalAlignment.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;this.panes()[0].restoreState(o[0],t,n,s,i,!0);let a=1;for(let r=1;rd&&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))}syncESD(){null!==this._esdWatcher&&this._esdWatcher.syncESDStudies()}recalcVisibleRangeStudies(e){this._recalcVRStudiesParams.force=this._recalcVRStudiesParams.force||Boolean(e),this._recalcVisibleRangeStudiesImplDebounced()}recalcColorStudies(e){this._recalcColorStudiesParams.force=this._recalcColorStudiesParams.force||Boolean(e),this._recalcColorStudiesImplDebounced()}alertsWatcher(){return this._alertsWatcher}showLegend(){return this._showLegendProperty}id(){return this._id}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}barMarksSourceForId(e){for(const t of this._barsMarksSources)if(t.id()===e)return t;return null}createSyncPoint(e,t){return(0,Ii.getDefault2Lazy)(this._syncPointCache,e.uniqueId,t.uniqueId,()=>new at(e,t))}isAutoSaveEnabled(){return this._isAutoSaveEnabled}studyAwareDefaultRightOffset(){return Math.max(this._timeScale.defaultRightOffset().value(),this._cachedStudiesMaxOffset)}clearAllStudies(){this.dataSources().forEach(e=>{var t;return null===(t=e.clearData)||void 0===t?void 0:t.call(e)})}_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)}_createESDWatcher(){}_updateDateTimeFormatter(){const e=Je.dateFormatProperty.value(),t=new Ze.DateFormatter(e);if(this._dateFormatter=t,this.mainSeries().isDWM())this._dateTimeFormatter=t,this._timeFormatter=new Qe.TimeFormatter("%h:%m");else{const t=C.Interval.parse(this.mainSeries().interval()),i=t.isSeconds()||t.isTicks()?"%h:%m:%s":"%h:%m"
;this._dateTimeFormatter=new Xe.DateTimeFormatter({dateFormat:e,timeFormat:i,dateTimeSeparator:" "}),this._timeFormatter=new Qe.TimeFormatter(i)}}_setScalesResetAvailable(e){this._isScalesResetAvailable!==e&&(this._isScalesResetAvailable=e,this._isScalesResetAvailableChanged.fire())}_invalidationMaskForSource(e,t=q.InvalidationLevel.Light){if(e===this.crossHairSource())return q.InvalidationMask.cursor();if(this._watermarkSource===e)return this._paneInvalidationMask((0,r.ensureNotNull)(this.paneForSource(this.mainSeries())),t);if(-1!==this._allCustomSources.indexOf(e)){const e=new q.InvalidationMask;return e.invalidateAll(t),e}if(!(0,m.isDataSource)(e))return null;if(e.isMultiPaneEnabled())return new q.InvalidationMask(t);const i=this.paneForSource(e);return null!==i?this._paneInvalidationMask(i,t):null}_paneInvalidationMask(e,t=q.InvalidationLevel.Light){const i=new q.InvalidationMask,s=this._panes.indexOf(e);return i.invalidateAllPane(s,t),i}_invalidationMaskForSourcePriceScale(e,t=q.InvalidationLevel.Light){if(!(0,m.isDataSource)(e))return new q.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 q.InvalidationMask;return a.invalidatePriceScale(r,n,o,t),a}_removeCustomSource(e){const t=this._customSourcesMap.get(e);if(void 0===t)return void Ai.logWarn(`Attempt to remove custom source which does not exist in the model - "${e}"`);Ai.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=Ei(this._bgCustomSources,t),s=Ei(this._fgCustomSources,t),n=Ei(this._topmostCustomSources,t),o=Ei(this._allCustomSources,t);(0,r.assert)(i||s||n,"Source should be presented in one of the layers"),(0,r.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,r.ensureNotNull)((0,r.ensureNotNull)(t.mainDataSource()).priceScale()).height()}}_percentPositionToPoint(e,t){const i=e.x*this._timeScale.width(),s=e.y*(0,r.ensureNotNull)((0,r.ensureNotNull)(t.mainDataSource()).priceScale()).height();return new n.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(),ft.PlotRowSearchMode.NearestRight),a=n.search(r.lastBar(),ft.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,H.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().inputs;for(const e of i)s[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()?a.colorsPalette["color-cold-gray-200"]:a.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},l=null!==(t=e.studies)&&void 0!==t?t:this.priceDataSources();e.studies=void 0;for(const e of l)if((0,H.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().inputs;for(const e of i)s[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()}_updateTimeScale(e){var t,i;const{index:s,zoffset:r,values:n,indexDiffs:o,baseIndex:a,marks:l,clearFlag:c}=e;if(c){this._timeScale.reset();for(const e of this.dataSources())null===(t=e.clearData)||void 0===t||t.call(e)}if(o.length>0)for(const e of this.dataSources())null===(i=e.moveData)||void 0===i||i.call(e,o);const h=this._timeScale.indexToTimePoint(this._timeScale.baseIndex()),d=this._timeScale.canNormalize();this._timeScale.update(s,r,n,l);let u="ChartModel.prototype._updateTimeScale("+s+","+r+","+n.length+","+o.length+","+l.length+","+c+")";if(u+="TimeScale: {first:"+this._timeScale.points().firstIndex()+",last:"+this._timeScale.points().lastIndex()+"}",null===a){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!==a){const e=this._timeScale.indexToTimePoint(a),t=null!==h&&null!==e&&e>h;this._updateBaseIndex(a,t)}if(Ai.logDebug(u),!d&&d!==this._timeScale.canNormalize())for(const e of this.dataSources())!(0,f.isLineTool)(e)||e.isFixed()||e.isSourceHidden()||e.processHibernate();this.recalculateAllPanes((0,O.globalChangeEvent)()),this.lightUpdate()}_getAvailableCurrencies(){
return!this.currencyConversionEnabled()||this.isSnapshot()?[]:(0,_e.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=>{Ai.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=>{Ai.logWarn("An error occurred while getting units config: "+e)})),{}):this._availableUnitsObject}_getBackgroundColor(e){const t=this._properties.childs().paneProperties.childs();if(t.backgroundType.value()===dt.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,lt.drawOnAllCharts)().value(),t.chartWidgetCollection().syncCrosshair(o,t.id(),a,e)}this._phantomSourceContainer.onCursorPositionUpdated()}}_gotoTimeImpl(e,t){const i=this.timeScale(),s=this.mainSeries();let n;if(void 0!==e){if(this._scrollingState&&this._scrollingState.deferred.reject(),n=(0,d.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,it.cal_to_utc)((0,it.get_timezone)(i),new Date(e)),n=(0,wt.createTimeToBarTimeAligner)(s.interval(),t)(r);e=(0,it.utc_to_cal)((0,it.get_timezone)(i),n).getTime()}}this._scrollingState={targetDate:e,deferred:n,centerIfVisible:t.centerIfVisible}}else{if(!this._scrollingState)return Ai.logError("scrollTo called without an argument"),Promise.reject();e=this._scrollingState.targetDate,n=this._scrollingState.deferred}if(void 0===i.tickMarks().minIndex)return n.resolve(void 0),n.promise;let o=((e,t)=>{if((e=>(0,r.ensureNotNull)(i.tickMarks().indexToTime((0,r.ensureDefined)(i.tickMarks().minIndex))).valueOf()-e)(t)<0){let n=i.tickMarks().nearestIndex(t);const o=s.bars().lastIndex();if(null===o)return null;n=Math.min(n,o);let a=(0,
r.ensureNotNull)(i.tickMarks().indexToTime(n)).valueOf();for(;a1&&s.push(e)),n=(n+1)%t.length}return s}}},15943:(e,t,i)=>{"use strict";i.d(t,{japaneseChartStyles:()=>r,commonChartStyles:()=>n,allChartStyles:()=>o});var s=i(67337);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())}},97205:(e,t,i)=>{"use strict";i.d(t,{ChartUndoModelBase:()=>Wi});var s=i(85459),r=i.n(s),n=i(16230),o=i(88537),a=i(86441),l=i(28353),c=i(24980),h=i(68587),d=i(65645),u=i(67072),p=i.n(u),_=i(98125);const m=new c.TranslatedString("move all scales to left",(0,l.t)("move all scales to left")),g=new c.TranslatedString("move all scales to right",(0,l.t)("move all scales to right")),f=(0,_.getLogger)("Chart.MergeAllScales");var v=i(44556),S=i(35762);class y extends S.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()}}var b=i(14291)
;class w extends S.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,b.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 C=i(65284),P=i(79495),T=i(80643),x=i(81851);class I extends S.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(T.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,x.isStudy)(e)){const i=t.state.inputs,s=e.properties().inputs;for(const e in i)s[e]&&s[e].setValue(i[e])}else this._model.restoreLineToolState(e,t,!0)}}}var M=i(36551),L=i(8597),A=i(59555),E=i(60870);const k=new c.TranslatedString("create {tool}",(0,l.t)("create {tool}"));class D extends S.UndoCommand{constructor(e,t,i,s,r=0,n){super(k.format({tool:new c.TranslatedString(i,E.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}}var V=i(94578);const B=new c.TranslatedString("bring {title} to front",(0,l.t)("bring {title} to front")),N=new c.TranslatedString("send {title} to back",(0,l.t)("send {title} to back")),R=new c.TranslatedString("insert {title} after {targetTitle}",(0,l.t)("insert {title} after {targetTitle}")),O=new c.TranslatedString("insert {title} before {targetTitle}",(0,l.t)("insert {title} before {targetTitle}")),F=new c.TranslatedString("send {title} backward",(0,l.t)("send {title} backward")),W=new c.TranslatedString("bring {title} forward",(0,l.t)("bring {title} forward")),H=new c.TranslatedString("send group {title} backward",(0,l.t)("send group {title} backward")),z=new c.TranslatedString("bring group {title} forward",(0,l.t)("bring group {title} forward"));function U(e){return new c.TranslatedString(e.name(),e.title())}class j extends S.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 G extends j{constructor(e,t){super(e,t,B.format({title:U(t[0])}))}_paneOperation(e,t){e.bringToFront(t)}}class q extends j{constructor(e,t){super(e,t,N.format({title:U(t[0])}))}_paneOperation(e,t){e.sendToBack(t)}}class Y extends j{constructor(e,t,i,s){super(e,t,s),this._targetSource=i}_paneOperation(e,t){e.insertAfter(t,this._targetSource)}}class K extends Y{constructor(e,t,i){super(e,t,i,R.format({title:U(t[0]),targetTitle:U(i)}))}}class $ extends j{constructor(e,t,i,s){super(e,t,s),this._targetSource=i}_paneOperation(e,t){e.insertBefore(t,this._targetSource)}}class X extends ${constructor(e,t,i){super(e,t,i,O.format({title:U(t[0]),targetTitle:U(i)}))}}function Z(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,b.isLineTool)(r)){const t=e.model().lineToolsGroupModel().groupForLineTool(r);if(null!==t){const e=t.lineTools();r=e[e.length-1]}}return r}class ee extends Y{constructor(e,t,i){super(e,i,Q(t,i),W.format({title:U(i[0])}))}}function te(e,t){return(0,o.ensureNotNull)(e.paneForSource(t.lineTools()[0]))}class ie extends ${constructor(e,t){super(e,t.lineTools(),Z(te(e,t),t.lineTools()),H.format({title:t.name()}))}}class se extends Y{constructor(e,t){super(e,t.lineTools(),Q(te(e,t),t.lineTools()),z.format({title:t.name()}))}}const re=new c.TranslatedString("rearrange panes",(0,l.t)("rearrange panes"));class ne extends S.UndoCommand{constructor(e,t,i){super(re),this._chartModel=e,this._index=t,(0,T.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 Se.LineToolsGroup(e,this._groupName,this._groupId);this._model.lineToolsGroupModel().addGroup(t)}}const be=new c.TranslatedString("create line tools group",(0,l.t)("create line tools group"));class we extends S.UndoCommand{constructor(e,t){super(be),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 Ce=new c.TranslatedString("add line tool(s) to group {group}",(0,l.t)("add line tool(s) to group {group}"));class Pe extends S.UndoCommand{constructor(e,t,i){super(Ce.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)}}var Te=i(46627);class xe extends S.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,le.saveDefaultProperties)(!0),this._targetObj.setValue(this._newValue),(0,le.saveDefaultProperties)(!1),this._model.recalculateAllPanes((0,ue.globalChangeEvent)()),this._model.lightUpdate()}undo(){(0,le.saveDefaultProperties)(!0),this._targetObj.setValue(this._oldValue),(0,le.saveDefaultProperties)(!1),this._model.recalculateAllPanes((0,ue.globalChangeEvent)()),this._model.lightUpdate()}}class Ie extends S.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 Me=i(85733);const Le=new c.TranslatedString("create line tools group from selection",(0,l.t)("create line tools group from selection")),Ae=new c.TranslatedString("removing line tools group {name}",(0,l.t)("removing line tools group {name}")),Ee=new c.TranslatedString("add line tool {lineTool} to group {name}",(0,l.t)("add line tool {lineTool} to group {name}")),ke=new c.TranslatedString("make group {group} visible",(0,l.t)("make group {group} visible")),De=new c.TranslatedString("make group {group} invisible",(0,l.t)("make group {group} invisible")),Ve=new c.TranslatedString("lock group {group}",(0,l.t)("lock group {group}")),Be=new c.TranslatedString("unlock group {group}",(0,l.t)("unlock group {group}")),Ne=new c.TranslatedString("rename group {group} to {newName}",(0,l.t)("rename group {group} to {newName}"));class Re{constructor(e){this._lineToolsAffectChartInvalidation=new Te.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,A.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(Le,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 P.ExcludeLineToolsFromGroupUndoCommand(e,i,t);this._environment.pushUndoCommand(s)});const c=new we(e,(0,A.sortSources)(t));if(this._environment.pushUndoCommand(c),i){const i=new K(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(Ae.format({name:e.name()}),this._lineToolsAffectChartInvalidation.value());const s=new ye(t,e,null);this._environment.pushUndoCommand(s);const r=new C.RemoveSourcesCommand(t,i,null);this._environment.pushUndoCommand(r);const n=t.mainSeries().symbol();i.forEach(e=>{null!==e.linkKey().value()&&(0,Me.removeLineTool)({withUndo:!0,model:t,symbol:n,sourceTitle:new c.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 P.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=Ee.format({lineTool:new c.TranslatedString(t.name(),t.title()),name:e.name()});this._environment.beginUndoMacro(r,this._lineToolsAffectChartInvalidation.value()),null!==s&&this._environment.pushUndoCommand(new P.ExcludeLineToolsFromGroupUndoCommand(i,s,[t])),this._environment.pushUndoCommand(new Pe(i,e,[t])),this._environment.endUndoMacro()}bringToFront(e){const t=this._environment.model(),i=new G(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 q(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 se(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 ie(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 Se.LineToolsGroup){const e=t.lineTools();s=e[e.length-1]}else s=t;const r=new K(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 Se.LineToolsGroup){s=t.lineTools()[0]}else s=t;const r=new X(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?ke:De).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 xe(i,t,null,s);this._environment.pushUndoCommand(r)}),this._environment.endUndoMacro()}setGroupLock(e,t){const i=(t?Ve:Be).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 xe(i,t,null,s);this._environment.pushUndoCommand(r)}),this._environment.endUndoMacro()}setGroupName(e,t){const i=this._environment.model(),s=Ne.format({group:e.name(),newName:t}),r=new Ie(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 Oe=i(58121),Fe=i(52546),We=i(50669),He=i(26161);const ze=new c.TranslatedString("apply study template {template}",(0,l.t)("apply study template {template}"));function Ue(e){for(const t of e.panes)for(const e of t.sources)if((0,We.isMainSeriesState)(e))return e.id;return null}class je extends S.UndoCommand{constructor(e,t,i){var s,r;super(ze.format({template:i})),this._newSymbolParams={},this._model=e,this._templateContent=function(e,t){const i=(0,Oe.default)({},e),s=(0,o.ensureNotNull)(Ue(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,ce.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(b.isLineTool);this._model.lineToolsGroupModel().removeLineTools(e);const t=this._model.mainSeries().properties();(0,ce.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()===Ue(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,x.isStudy)(t)&&t.isRemovedByStudyTemplates())&&n.push(t)}}i.resetDeferredStudies();const a=(0,Fe.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,He.reorderDataSourcesStateZOrder)(n.sources),a.restoreState(n,!1,t),null!==a.mainDataSource()||i.removePane(a)}return i.syncESD(),s.priceScale().setMode({autoScale:!0}),i.startNotStartedStudies(),i.recalculateAllPanes((0,ue.globalChangeEvent)()),i.fullUpdate(),a}}var Ge=i(9423),qe=i(79680);const Ye=(0,_.getLogger)("Chart.ChartUndoModel"),Ke=new c.TranslatedString("paste drawing",(0,l.t)("paste drawing"));class $e extends S.UndoCommand{constructor(e,t,i,s,r){super(Ke),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));this._clipboardData.centeredOnChart&&i.centerPosition&&i.centerPosition();const s=(0,o.ensureNotNull)(t.priceScale());i.setOwnerSource(t),i.setPriceScale(s),s.addDataSource(i),i.restoreFixedPoints(),(0,b.prepareLineToolPropertiesByOwnerSource)(i.properties(),t),i.calcIsActualSymbol(),i.createServerPoints();const r=(0,qe.isActingAsSymbolSource)(t)||t.metaInfo().is_price_study;this._needCopyToOtherCharts=Boolean(r&&((0,Me.drawOnAllCharts)().value()||i.linkKey().value()&&i.isSynchronizable())),this._model.setShouldBeSavedEvenIfHidden(!0)}undo(){if(!this._sourceState)return void Ye.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,T.clone)(this._clipboardData.source);delete t.state.symbol,null!=t.linkKey&&(t.linkKey=(0,Ge.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,ce.symbolCurrency)(c.symbolInfo(),void 0,!0):c.isConvertedToOtherCurrency())||(null!==l?l!==(0,ce.symbolUnit)(c.symbolInfo(),this._model.unitConversionEnabled()):c.isConvertedToOtherUnit())||((0,qe.isActingAsSymbolSource)(e)?h=!0:(0,x.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;e(0,tt.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 dt=i(59836),ut=i(88735),pt=i.n(ut),_t=i(79222),mt=i(69746),gt=i(67337);const ft=new c.TranslatedString("zoom",(0,l.t)("zoom"));class vt extends S.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,ue.viewportChangeEvent)()),this._model.lightUpdate()}}const St=(0,_.getLogger)("Chart.ChartUndoModel"),yt=new c.TranslatedString("zoom",(0,l.t)("zoom"));class bt extends S.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 c.TranslatedString("stop syncing drawing",(0,l.t)("stop syncing drawing"));class Ct extends S.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 Pt=new c.TranslatedString("restore defaults",(0,l.t)("restore defaults"));class Tt extends S.UndoCommand{constructor(e,t,i=Pt){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(52418);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 Lt=i(36759),At=i(15840),Et=i(59803);function kt(e){const{visible:t,...i}=e;return i}function Dt(e){const{visible:t,...i}=e;return i}function Vt(e){const{drawWick:t,drawBorder:i,drawBody:s,barColorsOnPrevClose:r,...n}=e;return n}function Bt(e){const{drawWick:t,drawBorder:i,drawBody:s,...r}=e;return r}function Nt(e){const{drawWick:t,drawBorder:i,drawBody:s,showRealLastPrice:r,inputs:n,...o}=e;return o}function Rt(e){const{barColorsOnPrevClose:t,dontDrawOpen:i,thinBars:s,...r}=e;return r}function Ot(e){const{showBorders:t,showLabels:i,fontSize:s,drawBody:r,...n}=e;return n}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 Yt(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:C,...P}=e;return{bidAsk:kt(l),prePostMarket:Dt(c),candleStyle:Vt(d),hollowCandleStyle:Bt(u),haStyle:Nt(p),barStyle:Rt(_),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(C),...P}}function Kt(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 $t(e){const{topMargin:t,bottomMargin:i,...s}=e;return s}const Xt=new c.TranslatedString("apply chart theme",(0,l.t)("apply chart theme"));class Zt extends S.UndoCommand{constructor(e,t,i){var s,r,n;super(Xt),this._model=e,this._newSessionProps=t.sessions||(0,Et.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,Et.factoryDefaults)("chartproperties"),l=(0,At.deepExtend)({},a,t.chartProperties);this._newChartProps={paneProperties:$t(l.paneProperties),scalesProperties:Kt(l.scalesProperties)},e.timeScale().preserveBarSpacing()&&delete this._newChartProps.scalesProperties.barSpacing;const c=(0,Et.factoryDefaults)("chartproperties.mainSeriesProperties"),h=(0,At.deepExtend)({},c,t.mainSourceProperties);this._newSeriesProps=i?h:Yt(h);const d=e.properties().state();this._oldChartProps={paneProperties:$t(d.paneProperties),scalesProperties:Kt(d.scalesProperties)};const u=e.mainSeries().properties().state();this._oldSeriesProps=i?u:Yt(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,le.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,ue.globalChangeEvent)()),a.fullUpdate(),a.properties().saveDefaults(),a.sessions().restoreState({properties:i},!1),(0,le.saveDefaultProperties)(!1)}}const Jt=new c.TranslatedString("change resolution",(0,l.t)("change resolution"));class Qt extends S.UndoCommand{constructor(e,t,i){let s;super(Jt),this._sourceId=e.id();const r=(0,ce.isRangeStyle)(e.style()),n=me.Interval.isRange(t);!r&&n?s=11:r&&!n&&(s=(0,ce.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._chartWidget.screen.show();this._symbolSource().setSymbolParams(this._newSymbolParams)}undo(){this._chartWidget.screen.show();this._symbolSource().setSymbolParams(this._prevSymbolParams)}_symbolSource(){return(0,o.ensureNotNull)(this._chartWidget.model().model().dataSourceForId(this._sourceId))}}const ei=new c.TranslatedString("send {title} backward",(0,
l.t)("send {title} backward")),ti=new c.TranslatedString("bring {title} forward",(0,l.t)("bring {title} forward")),ii=new c.TranslatedString("insert {title} after {target}",(0,l.t)("insert {title} after {target}")),si=new c.TranslatedString("insert {title} before {target}",(0,l.t)("insert {title} before {target}")),ri=new c.TranslatedString("cut {title}",(0,l.t)("cut {title}")),ni=new c.TranslatedString("cut sources",(0,l.t)("cut sources")),oi=new c.TranslatedString("remove {title}",(0,l.t)("remove {title}")),ai=new c.TranslatedString("remove drawings group",(0,l.t)("remove drawings group")),li=new c.TranslatedString("move scale",(0,l.t)("move scale")),ci=new c.TranslatedString("stop syncing line tool(s)",(0,l.t)("stop syncing line tool(s)")),hi=new c.TranslatedString("zoom out",(0,l.t)("zoom out")),di=new c.TranslatedString("zoom in",(0,l.t)("zoom in")),ui=new c.TranslatedString("move drawing(s)",(0,l.t)("move drawing(s)")),pi=new c.TranslatedString("load default drawing template",(0,l.t)("load default drawing template")),_i=new c.TranslatedString("change currency",(0,l.t)("change currency")),mi=new c.TranslatedString("change unit",(0,l.t)("change unit")),gi=new c.TranslatedString("clone line tools",(0,l.t)("clone line tools")),fi=new c.TranslatedString("merge up",(0,l.t)("merge up")),vi=new c.TranslatedString("merge down",(0,l.t)("merge down")),Si=new c.TranslatedString("merge to pane",(0,l.t)("merge to pane")),yi=new c.TranslatedString("unmerge up",(0,l.t)("unmerge up")),bi=new c.TranslatedString("unmerge down",(0,l.t)("unmerge down")),wi=new c.TranslatedString("unmerge to new bottom pane",(0,l.t)("unmerge to new bottom pane")),Ci=new c.TranslatedString("move {title} to new right scale",(0,l.t)("move {title} to new right scale")),Pi=new c.TranslatedString("move {title} to new left scale",(0,l.t)("move {title} to new left scale")),Ti=new c.TranslatedString("make {title} no scale (Full screen)",(0,l.t)("make {title} no scale (Full screen)")),xi=new c.TranslatedString("scroll time",(0,l.t)("scroll time")),Ii=new c.TranslatedString("scale time",(0,l.t)("scale time")),Mi=new c.TranslatedString("reset time scale",(0,l.t)("reset time scale")),Li=new c.TranslatedString("reset scales",(0,l.t)("reset scales")),Ai=new c.TranslatedString("create {tool}",(0,l.t)("create {tool}")),Ei=new c.TranslatedString("change {pointIndex} point",(0,l.t)("change {pointIndex} point")),ki=new c.TranslatedString("paste {title}",(0,l.t)("paste {title}")),Di=new c.TranslatedString("insert {title}",(0,l.t)("insert {title}")),Vi=new c.TranslatedString("remove all studies",(0,l.t)("remove all studies")),Bi=new c.TranslatedString("remove drawings",(0,l.t)("remove drawings")),Ni=new c.TranslatedString("remove all studies and drawing tools",(0,l.t)("remove all studies and drawing tools"));new c.TranslatedString("turn line tools sharing off",(0,l.t)("turn line tools sharing off")),new c.TranslatedString("share line tools in layout",(0,l.t)("share line tools in layout")),new c.TranslatedString("share line tools globally",(0,
l.t)("share line tools globally"));function Ri(e,t){return{bringForwardEnabled:e.bringForwardEnabled||t.bringForwardEnabled,bringToFrontEnabled:e.bringToFrontEnabled||t.bringToFrontEnabled,sendBackwardEnabled:e.sendBackwardEnabled||t.sendBackwardEnabled,sendToBackEnabled:e.sendToBackEnabled||t.sendToBackEnabled}}function Oi(e){return new c.TranslatedString(e.name(),e.title())}function Fi(){return(0,Me.drawOnAllCharts)().value()?1:0}class Wi 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 v.UndoStack,this._lineToolsDoNotAffectChartInvalidation=new Te.FeatureToggleWatchedValue("do_not_invalidate_chart_on_changing_line_tools",!1),this._chartWidget=n,this.m_model=new(pt())(e,t,i,s,r,this,a,l,c,h),this._undoHistory=o,this._lineToolsGroupController=new Re({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:g),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){f.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 y(this._model(),e,t,i,s,li);this._pushUndoCommand(r)}createLineTool({pane:e,point:t,linetool:i,properties:s,linkKey:r,ownerSource:n,disableSynchronization:a,sharingMode:l=Fi(),id:h}){if(("LineToolRegressionTrend"===i||"LineToolAnchoredVWAP"===i)&&!this.canCreateStudy())return(0,d.showTooManyStudiesNotice)(),null;const u=Ai.format({tool:new c.TranslatedString(i,E.lineToolsLocalizedNames[i])});this.beginUndoMacro(u,this._lineToolsDoNotAffectChartInvalidation.value());const p=!a;this._createLineCommand=new D(this._model(),e,i,n||(0,o.ensureNotNull)(e.mainDataSource()),l,h);const _=this._createLineCommand.startCreatingLine(t,s,r||null),m=(0,o.ensureNotNull)(this._createLineCommand.line());let g=null;if(_&&(p&&this.finishLineTool(m),this._pushUndoCommand(this._createLineCommand),this._createLineCommand=null,g={points:m.normalizedPoints(),interval:this.mainSeries().interval()}),p&&void 0===r&&(0,Me.drawOnAllCharts)().value()&&m.isSynchronizable()){const e=(0,
o.ensureNotNull)(this.model().externalTimeStamp(t.index)),s={point:{price:t.price,timeStamp:e},linetool:i,properties:m.properties(),symbol:this.mainSeries().symbol(),model:this.model(),linkKey:(0,o.ensureNotNull)(m.linkKey().value()),finalState:g,id:m.id()};m.isFixed()&&(s.pointPositionPercents=m.calcPositionPercents()[0]),(0,Me.createLineTool)(s)}return this.endUndoMacro(),m}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,Me.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){this._pushUndoCommand(new fe(this._model(),e))}unlinkLines(e){const t=this.model();this.beginUndoMacro(ci,this._lineToolsDoNotAffectChartInvalidation.value());for(const i of e)null!==i.linkKey().value()&&(0,Me.removeLineTool)({withUndo:!0,model:this.model(),symbol:i.symbol(),linkKey:(0,o.ensureNotNull)(i.linkKey().value()),sourceTitle:Oi(i),lineToolState:i.state(!1),unlink:!0}),this._pushUndoCommand(new Ct(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 xe(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()}barMarksSourceForId(e){return this.m_model.barMarksSourceForId(e)}removeAllDrawingTools(){this.beginUndoMacro(Bi,!0),this._removeAllDrawingToolsImpl(),this.endUndoMacro()}removeAllStudiesAndDrawingTools(){this.beginUndoMacro(Ni),this._removeAllDrawingToolsImpl(),this._removeAllStudiesImpl(),this.endUndoMacro()}removeAllStudies(){this.beginUndoMacro(Vi),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(hi)}catch(e){return}(0,ve.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(di)}catch(e){return}(0,ve.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 I(this.model(),e,ui,!1),e.every(b.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 I(this.model(),[e],Ei.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 pe(e,t,this.mainSeries(),i,this.model(),this.chartWidget());this._pushUndoCommand(s),this.emitEvent("setChartStyleProperty"),(0,ae.trackChartStyleChanged)(e.value())}}restorePropertiesForSource(e){(0,b.isLineTool)(e)?this._restoreLineToolFactoryDefaults(e):this._restoreStudyFactoryDefaults(e)}restoreState(e,t,i){return this.m_model.restoreState(e,t,i)}async clipboardCopy(e,t=this.selection().dataSources()){if(!(0,gt.enabled)("datasource_copypaste"))return;const i=t.filter(e=>e.copiable());if(0===i.length)return;for(const e of i)if((0,x.isStudy)(e)&&e.isChildStudy())throw new Error("Can not copy child study");const s=(0,V.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,gt.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?ri:ni).format({title:Oi(s[0])});this.beginUndoMacro(r),this.m_model.selectionMacro(()=>{this.removeSources(s,!1,r)}),this.endUndoMacro()}async clipboardPaste(e,t){let i=null;if((0,gt.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 je(this._model(),e,t);this._pushUndoCommand(i)}
startCustomMoving(e,t,i){this._currentCustomMoveCommand=new ct(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)}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,oi.format({title:Oi(e)}),i):this.cancelCreatingLine()}removeSelectedSources(){const e=this._model().selection().dataSources();if(!e.length)return;const t=(e.length>1?ai:oi).format({title:Oi(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(b.isLineTool)&&this._lineToolsDoNotAffectChartInvalidation.value();this.beginUndoMacro(i,a),r.selectionMacro(s=>{const a=new Map;e.forEach(e=>{if((0,b.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,Me.removeLineTool)({withUndo:!0,model:this.model(),linkKey:(0,o.ensureNotNull)(e.linkKey().value()),symbol:this.model().mainSeries().symbol(),lineToolState:e.state(!1),sourceTitle:Oi(e)})}}),a.forEach((e,t)=>{const i=new P.ExcludeLineToolsFromGroupUndoCommand(r,t,e);this._pushUndoCommand(i)});const l=new C.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]))}),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);let n=this.timeScale().points().firstIndex();const a=this.timeScale().points().lastIndex();if(null===n||null===a)return;const l=t.length()/2;if(0===r.length||r.some(e=>t.contains(e)))return;const c=()=>{const t=e.points().map(e=>e.index),i=t.filter(e=>e<=a).reduce((e,t)=>null===e?t:Math.max(e,t),null);return null!==i?i:t.reduce((e,t)=>Math.min(e,t))};let d,u=c();if(n-l>u){const t=e.points().map(e=>e.time).filter(T.notUndefined).map(e=>e.valueOf()/1e3);if(0===t.length)return;const i=t.reduce((e,t)=>Math.min(e,t),t[0]);await this.model().gotoTime(i),u=c();s=(0,o.ensureNotNull)(this.timeScale().logicalRange()).left(),n=(0,o.ensureNotNull)(this.timeScale().points().firstIndex())}n-l>u?(d=(s-n+l)*i,
this.mainSeries().setGotoDateResult({timestamp:(0,o.ensureNotNull)(this.timeScale().points().valueAt(n)),eod:!0})):d=(s-u+1+l)*i,this.startScrollTime(0),(0,ve.doAnimate)({onStep:(e,t)=>this.scrollTimeTo(t),from:0,to:Math.round(d),easing:h.easingFunc.easeInOutCubic,duration:h.dur,onComplete:()=>this.endScrollTime()})}mergeSourceUp(e){const t=new L.MergeUpUndoCommand(this._model(),e,fi);this._mergeUnmergeSource(e,t)}mergeSourceDown(e){const t=new L.MergeDownUndoCommand(this._model(),e,vi);this._mergeUnmergeSource(e,t)}mergeToPane(e,t){const i=this._model().panes().indexOf(t),s=new L.MergeToTargetPane(this._model(),e,i,Si);this._mergeUnmergeSource(e,s)}unmergeSourceUp(e){const t=new M.UnmergeUpUndoCommand(this._model(),e,yi);this._mergeUnmergeSource(e,t)}unmergeSourceDown(e){const t=new M.UnmergeDownUndoCommand(this._model(),e,bi);this._mergeUnmergeSource(e,t)}unmergeToNewBottomPane(e){const t=new M.UnmergeToNewBottomPane(this._model(),e,wi);this._mergeUnmergeSource(e,t)}availableZOrderOperations(e){const t=this._model().lineToolsGroupModel(),i=e.filter(b.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,A.sortSources)(e)){if((0,b.isLineTool)(t)&&null!==r){const e=(0,A.sortSources)(r.lineTools().filter(e=>!a.has(e)||e===t));n=Ri(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=Ri(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,b.isLineTool)(i)){const s=this._model().lineToolsGroupModel().groupForLineTool(i);if(null!==s){const i=s.lineTools();t=new X(this.model(),(0,A.sortSources)(e),i[0])}}null===t&&(t=new q(this.model(),(0,A.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,b.isLineTool)(i)){const s=this._model().lineToolsGroupModel().groupForLineTool(i);if(null!==s){const i=s.lineTools();t=new K(this.model(),(0,A.sortSources)(e),i[i.length-1])}}null===t&&(t=new G(this.model(),(0,A.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=ei.format({title:Oi(e[0])});this._sendBackOrBringForward(t,(0,
A.sortSources)(e),(e,t)=>new J(this.model(),e,t))}bringForward(e){if(!this.availableZOrderOperations(e).bringForwardEnabled)throw new Error("Bring forward operation is unavailable");const t=ti.format({title:Oi(e[0])});this._sendBackOrBringForward(t,(0,A.sortSources)(e),(e,t)=>new ee(this.model(),e,t))}insertAfter(e,t){e=(0,A.sortSources)(e);const i=ii.format({title:Oi(e[0]),target:Oi(t)});this._insertAfterOrBefore(i,e,t,()=>new K(this.model(),e,t))}insertBefore(e,t){e=(0,A.sortSources)(e);const i=si.format({title:Oi(e[0]),target:Oi(t)});this._insertAfterOrBefore(i,e,t,()=>new X(this.model(),e,t))}detachToRight(e,t){(0,tt.trackEvent)("Chart","Move to new right scale");const i=Ci.format({title:Oi(e)}),s=new Je.MoveToNewPriceScaleUndoCommand(this.model(),e,t,"right",i);this._pushUndoCommand(s),this.emitEvent("moveSource",[e])}detachToLeft(e,t){(0,tt.trackEvent)("Chart","Move to new left scale");const i=Pi.format({title:Oi(e)}),s=new Je.MoveToNewPriceScaleUndoCommand(this.model(),e,t,"left",i);this._pushUndoCommand(s),this.emitEvent("moveSource",[e])}detachNoScale(e,t){(0,tt.trackEvent)("Chart","Make source no scale");const i=Ti.format({title:Oi(e)}),s=new Je.MoveToNewPriceScaleUndoCommand(this.model(),e,t,"overlay",i);this._pushUndoCommand(s),this.emitEvent("moveSource",[e])}moveToScale(e,t,i,s,r){(0,tt.trackEvent)("Chart","Move source to target scale"),this.beginUndoMacro(s);const n=new Je.MoveToExistingPriceScaleUndoCommand(this.model(),e,t,i,s),o=r?null:(0,it.sourceNewCurrencyOnPinningToPriceScale)(e,i,this._model()),a=r?null:(0,_t.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){let t=!1;return null!==this._initialTimeScrollPos&&null!==this._initialTimeScrollState&&Math.abs(e-this._initialTimeScrollPos)>20&&(this._pushUndoCommand(new oe.TimeScaleChangeUndoCommand(this.model(),this._initialTimeScrollState,xi)),this._initialTimeScrollPos=null,this._initialTimeScrollState=null,t=!0),this.model().scrollTimeTo(e),t}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 oe.TimeScaleChangeUndoCommand(this.model(),i,Ii)),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 oe.TimeScaleChangeUndoCommand(this.model(),t,Mi)),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 mt.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 mt.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 mt.PriceScaleChangeUndoCommand(this.m_model,e,t,i))}rearrangePanes(e,t){const i=new ne(this._model(),e,t);this._pushUndoCommand(i)}movePane(e,t){const i=new ne(this._model(),e,t);this._pushUndoCommand(i)}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(ki.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,ae.trackDrawingPasted)(e),n+=1),l.push(e),a.push(e)}else"study"===t.type&&t.source&&t.source.metaInfo&&this.checkIfFeatureAvailable(new(p())(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,Lt.mergeIntervalVisibilitiesDefaults)(t.source.state.intervalsVisibilities),(0,Lt.makeIntervalsVisibilitiesVisibleAtInterval)(t.source.state.intervalsVisibilities,me.Interval.parse(this.model().mainSeries().interval()));const r=new $e(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 nt(this.model(),e,null==t?void 0:t.id());this._pushUndoCommand(i);const s=(0,o.ensureNotNull)(i.state()).id;return(0,o.ensureNotNull)(this._model().dataSourceForId(s))}setPriceScaleCurrency(e,t){const i=new Xe.SetPriceScaleCurrencyUndoCommand(e,t,this.chartWidget(),_i);this._pushUndoCommand(i)}setPriceScaleUnit(e,t){const i=new Ze.SetPriceScaleUnitUndoCommand(e,t,this.chartWidget(),mi);this._pushUndoCommand(i)}setSymbol(e,t){e.symbol()!==t&&this._pushUndoCommand(new et(e,t,this.chartWidget()))}
setResolution(e,t){me.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,Ge.randomHash)();r.linkKey().setValue(e);const n=r.state(!1),a=r.normalizedPoints(),l=r.properties().interval.value(),c=t.interval();let h;if(me.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,Me.copyLineTool)(d)}}addPaneStretchFactorUndoCommand(e,t,i,s){const r=new ot(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){return this._insertStudy(e,t,{},!1,void 0,void 0,void 0,void 0,void 0,null,void 0)}saveLineToolState(e,t){this._pushUndoCommand(new I(this.m_model,[e],t))}resetScales(){this.beginUndoMacro(Li),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,ue.viewportChangeEvent)())}shareLineTools(e,t){}_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 P.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=Di.format({title:e.description});this.beginUndoMacro(u);const p=new ht(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 dt.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,b.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,Me.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(ui,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 Me.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)}),Me.isDirectionalMovementActive.setValue(!1),this.endUndoMacro(),!0}_restoreStudyFactoryDefaults(e){const t=new Mt(this.m_model,e.properties());this._pushUndoCommand(t)}_restoreLineToolFactoryDefaults(e){this.beginUndoMacro(pi,this._lineToolsDoNotAffectChartInvalidation.value()),this.saveLineToolState(e,pi);const t=new It(this.m_model,e.properties(),pi);this._pushUndoCommand(t),this.saveLineToolState(e,pi),this.endUndoMacro(),this.model().updateSource(e)}_removeAllDrawingToolsImpl(e){this.selectionMacro(()=>{this.lineBeingCreated()&&this.cancelCreatingLine();this.dataSources().filter(b.isLineTool).filter(e=>e.isActualSymbol()&&e.isUserDeletable()).filter(t=>!e||e===t.toolname).forEach(e=>this.removeSource(e,!1))})}_removeAllStudiesImpl(){const e=this.dataSources(),t=e.filter(x.isStudy).filter(e=>!e.isChildStudy()&&e.removeByRemoveAllStudies()),i=e.filter(x.isStudyStub);t.concat(i).forEach(e=>this.removeSource(e,!1))}}},88735:(e,t,i)=>{"use strict"
;var s=i(2872),r=i(88537).ensureNotNull,n=i(56840),o=i(88537).assert,a=i(36244).ChartModelBase,l=i(14291),c=l.isLineTool,h=l.isStudyLineTool,d=i(39094).Watermark,u=i(49483).CheckMobile,p=i(23653).InvalidationMask,_=i(23653).InvalidationLevel;const{globalChangeEvent:m,dataSourceChangeEvent:g}=i(33291);var f=i(66101),v=f.Study,S=i(13672).NonSeriesStudy,y=i(81851),b=y.createStudy,w=y.isStudy,C=y.isFundamentalStudy,P=f.prepareStudyProperties,T=i(85733),x=i(88564).saveDefaultProperties,I=i(32050).MainSeriesScaleRatioProperty,M=i(22423).scaleRatio,L=i(90998).StudyInserter,A=i(21761).dateFormatProperty,E=i(79680).isActingAsSymbolSource,k=i(13795).sourceNewCurrencyOnPinningToPriceScale,D=i(79222).sourceNewUnitOnPinningToPriceScale,V=i(76422),B=i(56606).StudyColorRotatorFactory,N=i(67337),R=i(44419).AppliedTimeFrame,O=N.enabled("auto_enable_symbol_labels");N.enabled("fix_left_edge");class F extends a{constructor(e,t,i,r,n,o,a,l,c,h){super(e,t,i,r,n,o,a,l,c,h);var u=this,p=this.m_mainSeries.properties(),_=this._panes[0];_.setStretchFactor(2*_.stretchFactor()),this._properties.listeners().subscribe(this,F.prototype.propertyChangeHandler),this._properties.timezone.listeners().subscribe(null,(function(){u._chartApi&&u._chartApi.isConnected().value()&&u._chartApi.switchTimezone(u.timezone())})),_.addDataSource(this.m_mainSeries,this._panes[0].findSuitableScale(this.m_mainSeries)),this._mainSeriesScaleRatioProperty=new I(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||(p.addChild("priceAxisProperties",this.m_mainSeries.m_priceScale.properties()),this._properties.paneProperties.legendProperties.showStudyTitles.listeners().subscribe(this,(function(e){e.value()||u._properties.paneProperties.legendProperties.showStudyArguments.setValue(!1)}))),this._barsMarksSources=a(this);for(var m=0;m0),n?{left:0,right:1,totallySlots:i}:{left:1,right:0,totallySlots:i}}return{left:e,right:t,totallySlots:e+t}}setPriceAutoScale(e,t,i){e.setPriceAutoScale(t,i),this.invalidate(this._paneInvalidationMask(e,_.Light))}updateScales(e,t){this._undoModel._chartWidget._updateScalesActions()}mainSeriesScaleRatioProperty(){return this._mainSeriesScaleRatioProperty}mainSeriesScaleRatioPropertyOnChanged(){this._mainSeriesScaleRatioProperty.listeners().fire(this._mainSeriesScaleRatioProperty)}mainSeriesScaleRatio(){return M(this._timeScale,this.m_mainSeries.priceScale())}setMainSeriesScaleRatio(e){
this.paneForSource(this.m_mainSeries).applyPriceScaleRatio(this.m_mainSeries.priceScale(),e)}recalcStudyBasedLineTools(){this.dataSources().forEach((function(e){h(e)&&e.recalcStudyIfNeeded&&e.recalcStudyIfNeeded()}))}restoreFactoryDefaults(e){e.restoreFactoryDefaults(),this.recalcVisibleRangeStudies(!0)}orderedDataSources(e){var t=[];t.push(this.m_crossHairSource);for(var i=0;i0)}createStudyInserter(e){return new L(e,this._studiesMetaInfoRepository,{createStudy:this.insertStudyWithParams.bind(this)})}insertStudyWithParams(e,t,i,s,r,o,a,l,c,h,d){null==o&&(o=this.mainSeries());var u=null;if(!r&&void 0!==e.groupingKey){var p=this.findNonOverlayStudyWithGroupingKey(e.groupingKey);null!==p&&(u=p.pane)}null===u&&(r||e.is_price_study?u=this.paneForSource(o):(u=this.createPane(),void 0!==h&&u.setPaneSize(h))),"Compare@tv-basicstudies"===e.id&&this.m_mainSeries.priceScale().setMode({log:!1,percentage:!0});var _=Object.assign({},s,{inputs:t}),m=P(e,_,u,this.studyVersioning(),o),f=b(this,m,o,e,d);this._recalcVisibleRangeStudiesImpl({studies:[f],oldEndVisibleIndex:-1,oldStartVisibleIndex:-1,force:!0,timerId:null});var v=u.findSuitableScale(f,o,a);if(v===this.mainSeries().priceScale()&&E(f)){var S=l?k(f,v,this,!0):null,y=c?D(f,v,this,!0):null;null===S&&null===y||f.setSymbolParams({currency:S||void 0,unit:y||void 0})}return E(f)&&u.hasDataSource(this.mainSeries())&&O&&!n.getBool("enable_symbol_labels_on_inserting_compare_once",!1)&&(x(!0),this.properties().scalesProperties.showSymbolLabels.setValue(!0),x(!1),n.setValue("enable_symbol_labels_on_inserting_compare_once",!0)),f.start(),null!==i&&u.id()===i.paneId?u.insertDataSource(f,v,i.zorder):u.addDataSource(f,v),f.properties().linkedToSeries&&f.properties().linkedToSeries.value()&&f.setOwnerSource(this.mainSeries()),this.recalculatePane(u,g(f.id())),this.fullUpdate(),this._invalidateBarColorerCaches(),this._recalcVisibleRangeStudiesImpl({studies:[f],force:!0}),this._recalcColorStudiesImpl({studies:[f],force:!0}),this._studyInserted.fire(f),f.maxOffset().subscribe(this._boundUpdateStudiesMaxOffset,{callWithLast:!0}),f}studyInserted(){return this._studyInserted}_unmergeAvailable(e){return e===this.m_mainSeries||TradingView.isInherited(e.constructor,v)&&!e.isLinkedToSeries()&&!TradingView.isInherited(e.constructor,S)&&e.showInObjectTree()}isMergeUpAvailableForSource(e){
return!!this._unmergeAvailable(e)&&this.paneForSource(e)!==this.panes()[0]}isMergeDownAvailableForSource(e){if(!this._unmergeAvailable(e))return!1;var t=this.paneForSource(e),i=this.panes();return t!==i[i.length-1]}isUnmergeAvailableForSource(e){return!!this._unmergeAvailable(e)&&this.paneForSource(e).dataSources().filter(this._unmergeAvailable,this).length>1}lineBeingEdited(){return this._lineBeingEdited}linePointBeingEdited(){return this._linePointBeingEdited}calculateDefaultTags(){for(var e=[],t=this.dataSources(),i=0;i-1&&this._modelIntervals.splice(t,1)}clearIntervals(){for(var e=0;ethis.removeSource(e)),Array.from(this._customSourcesMap.keys()).forEach(this._removeCustomSource,this),o(0===this._topmostCustomSources.length),o(0===this._fgCustomSources.length),o(0===this._bgCustomSources.length),o(0===this._allCustomSources.length),o(0===this._customSourcesMap.size);for(e=0;e{"use strict";var s=i(52640).makeFont,r=i(52640).parseFont,n=(0,i(98125).getLogger)("Model.ChartTradingUtils"),o={_fontHeightCache:{},_parsedColorCache:{},_parseColor:function(e){if(this._parsedColorCache[e])return this._parsedColorCache[e];var t=document.createElement("div");t.style.color=e;var i=t.style.color.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i)||t.style.color.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d*\.?\d+)\s*\)$/i),s={r:i[1],g:i[2],b:i[3],a:i[4]||"1"};return this._parsedColorCache[e]=s,s},getColorFromProperties:function(e,t){var i=1-t.value()/100,s=this._parseColor(e.value());return"rgba("+s.r+","+s.g+","+s.b+","+i+")"},setColorToProperties:function(e,t,i){var s=this._parseColor(e);t.setValue("rgb("+s.r+","+s.g+","+s.b+")");var r=100*(1-s.a);i.setValue(Math.max(0,Math.min(r,100)))},getFontFromProperties:function(e,t,i,r){return s(t.value(),e.value(),r.value()?"italic":"",i.value()?"bold":"")},setFontToProperties:function(e,t,i,s,o){var a=r(e);null!==a?(a.family.length>0&&t.setValue(a.family),i.setValue(a.size),s.setValue(a.bold),o.setValue(a.italic)):n.logError("Invalid font: "+e)},fontHeight:function(e){if(!this._fontHeightCache[e]){var t=document.createElement("span");t.appendChild(document.createTextNode("height")),document.body.appendChild(t),t.style.cssText="font: "+e+"; white-space: nowrap; display: inline;";var i=t.offsetHeight;document.body.removeChild(t),this._fontHeightCache[e]=Math.ceil(i)}return this._fontHeightCache[e]},drawPolyHoverOrPress:function(e,t,i,s){s?(e.save(),e.fillStyle="rgba(0, 0, 0, 0.15)",CanvasEx.drawPoly(e,t,!0),e.restore()):i&&(e.save(),e.fillStyle="rgba(0, 0, 0, 0.1)",CanvasEx.drawPoly(e,t,!0),e.restore())},repaint:function(e){e.lightUpdate()},roundToMinTick:function(e,t){var i=1/e.mainSource().base();return i*Math.round(t/i)}};e.exports=o},24431:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(24980).TranslatedString,n=i(59199).doAnimate,o=i(97205).ChartUndoModelBase,a=(i(88564).saveDefaultProperties,i(66101).Study),l=i(65645).showTooManyStudiesNotice,c=(i(35762).UndoCommand,
i(17691).ApplyLineToolTemplateUndoCommand),h=i(89730).SetPriceScaleSelectionStrategyCommand,d=i(870).SetScaleRatioPropertiesCommand,u=i(90998).StudyInserter,p=i(51768).trackEvent,_=i(98125).getLogger("Chart.ChartUndoModel"),m=i(91794).RestoreDefaultsPreferencesUndoCommand,g=i(59836).SetPriceScaleModeCommand,f=i(69746).PriceScaleChangeUndoCommand,v=new r("move left",s("move left")),S=new r("move right",s("move right")),y=new r("toggle auto scale",s("toggle auto scale")),b=new r("toggle lock scale",s("toggle lock scale")),w=new r("toggle regular scale",s("toggle regular scale")),C=new r("toggle indexed to 100 scale",s("toggle indexed to 100 scale")),P=new r("toggle percentage scale",s("toggle percentage scale")),T=new r("toggle log scale",s("toggle log scale")),x=new r("invert scale",s("invert scale")),I=new r("remove pane",s("remove pane")),M=(new r("apply all chart properties",s("apply all chart properties")),new r("set price scale selection strategy to {title}",s("set price scale selection strategy to {title}")));s("Cheers");t.ChartUndoModel=class extends o{constructor(e,t,i,s,r,n,o,a,l,c,h){super(e,t,i,s,r,n,o,a,l,c,h),this.beginUndoMacro=(e,t)=>{var i=o.beginUndoMacro(e);return i.setCustomFlag("doesnt_affect_save",t),i},this.endUndoMacro=o.endUndoMacro.bind(o),this.createUndoCheckpoint=o.createUndoCheckpoint.bind(o),this.undoToCheckpoint=o.undoToCheckpoint.bind(o)}version(){return this.m_model.version()}createPane(e){return this.m_model.createPane(e)}readOnly(){return this.m_model.readOnly()}restart(){this.m_model.restart()}disconnect(){this.m_model.disconnect()}studiesMetaData(){return this.m_model.studiesMetaData()}studyVersioning(){return this.m_model.studyVersioning()}chartModel(){return this._model()}_model(){return this.m_model}pushUndoCommand(e){this._pushUndoCommand(e)}_pushUndoCommand(e){this._undoHistory.pushUndoCommand(e)}startScrollPrice(e,t,i){t.isAutoScale()||(this._initialPriceScrollState=t.state(),this._initialPriceScrollPos=i,this.chartModel().startScrollPrice(e,t,i))}scrollPriceTo(e,t,i){t.isAutoScale()||(this._initialPriceScrollPos&&Math.abs(this._initialPriceScrollPos-i)>20&&(this.pushUndoCommand(new f(this.m_model,e,t,this._initialPriceScrollState)),delete this._initialPriceScrollState,delete this._initialPriceScrollPos),this.chartModel().scrollPriceTo(e,t,i))}endScrollPrice(e,t){t.isAutoScale()||(delete this._initialPriceScrollState,delete this._initialPriceScrollPos,this.chartModel().endScrollPrice(e,t))}setPriceAutoScale(e,t,i){this.pushUndoCommand(new f(this.m_model,e,t,t.state())),this.chartModel().setPriceAutoScale(e,t,i)}setWidth(e){this.m_model.setWidth(e)}setPaneHeight(e,t){this.m_model.setPaneHeight(e,t)}gridSource(){return this.m_model.gridSource()}watermarkSource(){return this.m_model.watermarkSource()}addAlertsSource(e){return this.m_model.addAlertsSource(e)}alertsSources(){return this.m_model.alertsSources()}publishedChartsTimelineSource(){return this.m_model.publishedChartsTimelineSource()}crossHairSource(){return this.m_model.crossHairSource()}model(){return this.m_model}
chartWidget(){return this._chartWidget}mainSeries(){return this.m_model.m_mainSeries}mainSeriesScaleRatioProperty(){return this.m_model.mainSeriesScaleRatioProperty()}panes(){return this.m_model.panes()}timeScale(){return this.m_model.timeScale()}selectionMacro(e){return this.m_model.selectionMacro(e)}setHoveredSource(e,t){this.m_model.setHoveredSource(e,t)}selection(){return this.m_model.selection()}onSelectedSourceChanged(){return this.m_model.onSelectedSourceChanged()}activeStrategySource(){return this.m_model.activeStrategySource()}invalidate(e){this.m_model.invalidate(e)}setCurrentPosition(e,t,i,s){this.m_model.setCurrentPosition(e,t,i,s)}setAndSaveCurrentPosition(e,t,i,s){this.m_model.setAndSaveCurrentPosition(e,t,i,s)}canCreateStudy(e){return this.model().chartApi().chartApi().isCanCreateStudy(e)}_isCountedStudy(e){throw new Error("Not implemented")}checkIfFeatureAvailable(e,t){var i=this.canCreateStudy(),s=t&&t instanceof a;return!this.readOnly()&&s&&(i=this.canCreateStudy(!0)),!!i||(s||l(),!1)}createStudyInserter(e,t,i){var s=this,r=null,n={createStudy:function(e,t,i,n,o,a,l,c,h,d,u){return s.checkIfFeatureAvailable(e,a)?(p("studies","Study_"+e.id),"Compare@tv-basicstudies"===e.id&&p("compare","symbol:"+t.symbol),s._insertStudy(e,t,n,o,a,l,c,h,d,r,u)):(_.logNormal("Cannot insert study "+e.id),null)}};void 0!==i&&(n.createStub=function(){var e=s.m_model.insertStudyStub(i);return r={targetPaneId:s.m_model.paneForSource(e).id(),targetZOrder:e.zorder()},e.id()},n.removeStub=function(e){return s.m_model.removeStudyStub(e)});var o=new u(e,this.m_model._studiesMetaInfoRepository,n);return o.setParentSource(t),o}setProperties(e,t,i){var s=this;this.beginUndoMacro(i),this.m_model.selectionMacro((function(){for(var r=0;r{"use strict";var s;i.d(t,{ColorType:()=>s}),function(e){e.Solid="solid",e.Gradient="gradient"}(s||(s={}))},8175:(e,t,i)=>{"use strict";i.d(t,{currencyUnitVisibilityProperty:()=>o,currencyUnitVisibilityOptions:()=>a,migrateShowCurrencyAndShowUnitProperties:()=>c});var s=i(10133),r=i(56840),n=i.n(r);const{property:o,availableValues:a}=(0,s.createVisibilityController)("PriceAxisCurrencyAndUnit.visibility");let l=!1;function c(e,t){l||(l=!0,void 0===n().getValue("PriceAxisCurrencyAndUnit.visibility")&&o().setValue(e||t?"alwaysOn":"alwaysOff"))}},13795:(e,t,i)=>{"use strict";i.d(t,{sourceNewCurrencyOnPinningToPriceScale:()=>r});var s=i(79680);function r(e,t,i,r){let n=null;if(i.currencyConversionEnabled()&&(0,s.isActingAsSymbolSource)(e)){const s=i.availableCurrencies(),o=t.currency(s),a=e.currency()
;null!==o&&null!==o.selectedCurrency&&!o.allCurrenciesAreOriginal&&o.selectedCurrency!==a&&(r&&null===a||null!==a&&s.convertible(a))&&(n=o.selectedCurrency)}return n}},99305:(e,t,i)=>{"use strict";i.d(t,{CustomSourceBase:()=>s});class s{constructor(e,t){this._id=e,this._model=t}id(){return this._id}isHoveredEnabled(){return!0}isSelectionEnabled(){return!1}priceScale(){return null}paneViews(e){return[]}labelPaneViews(e){return[]}priceAxisViews(e,t){return[]}updateViewsForPane(e,t){e.containsMainSeries()&&this.updateAllViews(t)}}},50669:(e,t,i)=>{"use strict";i.d(t,{isMainSeriesState:()=>r,isStudyState:()=>n,isLineToolState:()=>o,isStudyLineToolState:()=>a});var s=i(14291);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)}},62443:(e,t,i)=>{"use strict";i.d(t,{DataSource:()=>l});i(67337);var s=i(52714),r=i.n(s),n=i(9423),o=i(2872),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){this._ownerSource=e,this._ownerSourceChanged.fire()}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(){}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()}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 this.hasStateForAlert()}hasStateForAlert(){return!1}idForAlert(){return this._id}}},14445:(e,t,i)=>{"use strict";i.d(t,{DataWindowItem:()=>s,DataWindowView:()=>r});class s{constructor(e,t,i=!1){this._visible=!0,this._title=e,this._value=t,this._unimportant=i}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(){}}},21761:(e,t,i)=>{"use strict";i.d(t,{dateFormatProperty:()=>a,restoreDateFormatSettingsValue:()=>l});var s=i(56840),r=i(32255),n=i(7043);function o(){return s.getValue("date_format",(0,n.defaultDateFormat)())}const a=(0,r.createPrimitiveProperty)(o());function l(){a.setValue((0,n.defaultDateFormat)()),s.remove("date_format")}s.onSync.subscribe(null,()=>a.setValue(o())),a.listeners().subscribe(null,()=>s.setValue("date_format",a.value()))},88564:(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(59803),a=i(2015),l=i.n(a),c=i(2872),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),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(27759).PlDisplay;const{getHexColorByName:r}=i(45112),{generateColor:n}=i(68906);var o=i(27759).TradingSourcesHorizontalAlignment,a=i(16654),l=i(30823).LineToolPitchforkStyle,c=i(8059).LineToolBarsPatternMode,h=i(50993).LineStudyPlotStyle,d=i(5816),u=i(3825).PriceAxisLastValueMode,p=i(245).StoriesTimeLineItemType,_=i(90373).MagnetMode,m=i(49612).LineEnd,g=i(49642).ColorType,f=i(13632).StatsPosition,v=i(47484).sessionsPreferencesDefault,S=i(87426).axisLabelBackgroundColor,y=i(98125).getLogger("Chart.Defaults");const b=r("color-black"),w=r("color-white"),C=n(w,75),P=r("color-tv-blue-50"),T=r("color-tv-blue-500"),x=n(T,30),I=n(T,70),M=n(T,72),L=n(T,75),A=n(T,80),E=r("color-tv-blue-600"),k=r("color-deep-blue-200"),D=r("color-deep-blue-300"),V=r("color-deep-blue-400"),B=n(V,80),N=r("color-deep-blue-500"),R=r("color-sky-blue-500"),O=n(R,80),F=n(R,50),W=r("color-sky-blue-700"),H=n(W,30),z=r("color-youtube"),U=r("color-ripe-red-200"),j=r("color-ripe-red-300"),G=r("color-ripe-red-400"),q=r("color-ripe-red-500"),Y=n(q,70),K=n(q,80),$=n(q,72),X=n(q,95),Z=r("color-ripe-red-600"),J=r("color-grapes-purple-400"),Q=n(J,80),ee=r("color-grapes-purple-500"),te=n(ee,100),ie=n(ee,80),se=n(ee,30),re=n(r("color-berry-pink-400"),85),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=n(Se,80),be=r("color-tan-orange-a700"),we=r("color-cold-gray-150"),Ce=r("color-cold-gray-300"),Pe=r("color-cold-gray-400"),Te=r("color-cold-gray-500"),xe=r("color-cold-gray-800"),Ie=n(xe,94),Me=n(xe,100),Le=r("color-cold-gray-900"),Ae=r("color-slate-gray"),Ee=r("color-silver-tree"),ke=n(Ee,95),De=r("color-mandy"),Ve=n(De,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?CanvasEx.LINESTYLE_SOLID:s,linewidth:void 0===r?1:r}},y=function(e,t,i){return{color:e,width:i,visible:t}},xe=function(e,t,i,s,r){return{color:e,visible:t,width:i,x:s,y:r}},Be=function(e,t,i,s,r,n){return{coeff1:e,coeff2:t,color:i,visible:s,
linestyle:void 0===r?CanvasEx.LINESTYLE_SOLID:r,linewidth:void 0===n?1:n}};if(void 0===TradingView.defaultProperties){var Ne;switch(window.locale){case"ar_AE":Ne="Asia/Dubai";break;case"au":Ne="Australia/Sydney";break;case"br":Ne="America/Sao_Paulo";break;case"ca":Ne="America/Toronto";break;case"de_DE":case"it":Ne="Europe/Berlin";break;case"es":Ne="Europe/Madrid";break;case"fa_IR":Ne="Asia/Tehran";break;case"fr":case"sv_SE":Ne="Europe/Paris";break;case"he_IL":case"tr":Ne="Europe/Athens";break;case"hu_HU":case"pl":Ne="Europe/Warsaw";break;case"id":case"th_TH":case"vi_VN":Ne="Asia/Bangkok";break;case"in":Ne="Asia/Kolkata";break;case"ja":case"kr":Ne="Asia/Tokyo";break;case"ms_MY":Ne="Asia/Singapore";break;case"ru":Ne="Europe/Moscow";break;case"uk":Ne="Europe/London";break;case"zh_CN":case"zh_TW":Ne="Asia/Shanghai";break;default:Ne="Etc/UTC"}TradingView.defaultProperties={chartproperties:{timezone:Ne,priceScaleSelectionStrategyName:"auto",dataWindowProperties:{background:"rgba( 255, 254, 206, 0.2)",border:"#606090",font:"Verdana",fontBold:!1,fontItalic:!1,fontSize:10,transparency:80,visible:!0},paneProperties:{backgroundType:g.Solid,background:w,backgroundGradientStartColor:w,backgroundGradientEndColor:w,vertGridProperties:{color:Ie,style:CanvasEx.LINESTYLE_SOLID},horzGridProperties:{color:Ie,style:CanvasEx.LINESTYLE_SOLID},crossHairProperties:{color:Pe,style:CanvasEx.LINESTYLE_DASHED,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,backgroundTransparency:50},separatorColor:we},scalesProperties:{backgroundColor:w,lineColor:Me,textColor:Le,fontSize:12,scaleSeriesOnly:!1,showSeriesLastValue:!0,seriesLastValueMode:u.LastValueAccordingToScale,showSeriesPrevCloseValue:!1,showStudyLastValue:!0,showSymbolLabels:!1,showStudyPlotLabels:!1,showBidAskLabels:!1,showPrePostMarketPriceLabel:!0,showFundamentalNameLabel:!1,showFundamentalLastValue:!0,barSpacing:d.DEFAULT_BAR_SPACING,axisHighlightColor:L,axisLineToolLabelBackgroundColorCommon:S.common,axisLineToolLabelBackgroundColorActive:S.active,showPriceScaleCrosshairLabel:!0,showTimeScaleCrosshairLabel:!0},mainSeriesProperties:{style:a.STYLE_CANDLES,esdShowDividends:!0,esdShowSplits:!0,esdShowEarnings:!0,esdShowBreaks:!1,esdFlagSize:2,showContinuousContractSwitches:!0,showContinuousContractSwitchesBreaks:!1,showCountdown:!0,bidAsk:{visible:!1,lineStyle:CanvasEx.LINESTYLE_DOTTED,lineWidth:1,bidLineColor:T,askLineColor:G},prePostMarket:{visible:!0,lineStyle:CanvasEx.LINESTYLE_DOTTED,lineWidth:1,preMarketColor:ve,postMarketColor:T},highLowAvgPrice:{highLowPriceLinesVisible:!1,highLowPriceLabelsVisible:!1,averageClosePriceLineVisible:!1,averageClosePriceLabelVisible:!1,highLowPriceLinesColor:"",highLowPriceLinesWidth:1,averagePriceLineColor:"",
averagePriceLineWidth:1},visible:!0,showPriceLine:!0,priceLineWidth:1,priceLineColor:"",baseLineColor:Ce,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:q,drawWick:!0,drawBorder:!0,borderColor:"#378658",borderUpColor:le,borderDownColor:q,wickColor:"#737375",wickUpColor:le,wickDownColor:q,barColorsOnPrevClose:!1,drawBody:!0},hollowCandleStyle:{upColor:le,downColor:q,drawWick:!0,drawBorder:!0,borderColor:"#378658",borderUpColor:le,borderDownColor:q,wickColor:"#737375",wickUpColor:le,wickDownColor:q,drawBody:!0},haStyle:{upColor:le,downColor:q,drawWick:!0,drawBorder:!0,borderColor:"#378658",borderUpColor:le,borderDownColor:q,wickColor:"#737375",wickUpColor:le,wickDownColor:q,showRealLastPrice:!1,barColorsOnPrevClose:!1,inputs:{},inputInfo:{},drawBody:!0},barStyle:{upColor:le,downColor:q,barColorsOnPrevClose:!1,dontDrawOpen:!1,thinBars:!0},hiloStyle:{color:T,showBorders:!0,borderColor:T,showLabels:!0,labelColor:T,fontSize:7,drawBody:!0},columnStyle:{upColor:n(le,50),downColor:n(q,50),barColorsOnPrevClose:!0,priceSource:"close"},lineStyle:{color:T,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:2,priceSource:"close",styleType:a.STYLE_LINE_TYPE_SIMPLE},areaStyle:{color1:M,color2:T,linecolor:T,linestyle:CanvasEx.LINESTYLE_SOLID,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:q,borderUpColor:le,borderDownColor:q,upColorProjection:"#a9dcc3",downColorProjection:"#f5a6ae",borderUpColorProjection:"#a9dcc3",borderDownColorProjection:"#f5a6ae",wickUpColor:le,wickDownColor:q,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:q,borderUpColor:le,borderDownColor:q,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:q,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:q,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:X,bottomFillColor2:$,topLineColor:le,bottomLineColor:q,topLineWidth:2,bottomLineWidth:2,priceSource:"close",transparency:50,baseLevelPercentage:50},rangeStyle:{upColor:le,downColor:q,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:CanvasEx.LINESTYLE_DASHED,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:CanvasEx.LINESTYLE_SOLID},editorFontsList:["Verdana","Courier New","Times New Roman","Arial"],volumePaneSize:"large"},sessions:v,drawings:{magnet:!1,magnetMode:_.WeakMagnet,stayInDrawingMode:!1,drawOnAllCharts:!0,drawOnAllChartsMode:1},linetoolorder:{extendLeft:"inherit",lineLength:"inherit",lineColor:z,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:C,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:w,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:C,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:C,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:w,quantityTextTransparency:0,quantityFontFamily:"Verdana",quantityFontSize:9,quantityFontBold:!0,quantityFontItalic:!1,reverseButtonBorderBuyColor:"#4094e8",reverseButtonBorderSellColor:"#e75656",reverseButtonBackgroundColor:C,reverseButtonBackgroundTransparency:25,reverseButtonIconBuyColor:"#4094e8",reverseButtonIconSellColor:"#e75656",closeButtonBorderBuyColor:"#4094e8",closeButtonBorderSellColor:"#e75656",closeButtonBackgroundColor:C,closeButtonBackgroundTransparency:25,closeButtonIconBuyColor:"#4094e8",closeButtonIconSellColor:"#e75656",tooltip:"",protectTooltip:"",closeTooltip:"",reverseTooltip:""},linetoolexecution:{direction:"buy",arrowHeight:8,arrowSpacing:1,arrowBuyColor:"#4094e8",arrowSellColor:"#e75656",text:"",textColor:b,textTransparency:0,fontFamily:"Verdana",fontSize:10,fontBold:!1,fontItalic:!1,tooltip:""},linetoolicon:{color:T,size:40,icon:61720,angle:.5*Math.PI},linetoolimage:{transparency:0,cssWidth:0,cssHeight:0,angle:0},linetoolbezierquadro:{linecolor:T,linewidth:1,fillBackground:!1,backgroundColor:A,transparency:50,linestyle:CanvasEx.LINESTYLE_SOLID,extendLeft:!1,extendRight:!1,leftEnd:m.Normal,rightEnd:m.Normal},linetoolbeziercubic:{linecolor:R,linewidth:1,fillBackground:!1,backgroundColor:O,transparency:50,linestyle:CanvasEx.LINESTYLE_SOLID,extendLeft:!1,extendRight:!1,leftEnd:m.Normal,rightEnd:m.Normal},linetooltrendline:{linecolor:T,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,extendLeft:!1,extendRight:!1,leftEnd:m.Normal,rightEnd:m.Normal,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:T,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,showDateTimeRange:!1,showDistance:!1,showAngle:!1,statsPosition:f.Right},linetoolinfoline:{linecolor:T,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,extendLeft:!1,extendRight:!1,leftEnd:m.Normal,rightEnd:m.Normal,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:T,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!0,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!0,showBarsRange:!0,showDateTimeRange:!0,showDistance:!0,showAngle:!0,statsPosition:f.Center},linetooltimecycles:{linecolor:"#159980",linewidth:1,fillBackground:!0,backgroundColor:"rgba(106, 168, 79, 0.5)",transparency:50,linestyle:CanvasEx.LINESTYLE_SOLID},linetoolsineline:{linecolor:"#159980",
linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID},linetooltrendangle:{linecolor:T,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,textcolor:T,fontsize:12,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,extendRight:!1,extendLeft:!1,statsPosition:f.Right},linetooldisjointangle:{linecolor:le,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,fillBackground:!0,backgroundColor:ce,transparency:20,extendLeft:!1,extendRight:!1,leftEnd:m.Normal,rightEnd:m.Normal,textcolor:le,fontsize:12,bold:!1,italic:!1,showPrices:!1,showPriceRange:!1,showDateTimeRange:!1,showBarsRange:!1},linetoolflatbottom:{linecolor:ge,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,fillBackground:!0,backgroundColor:fe,transparency:20,extendLeft:!1,extendRight:!1,leftEnd:m.Normal,rightEnd:m.Normal,textcolor:ge,fontsize:12,bold:!1,italic:!1,showPrices:!1,showPriceRange:!1,showDateTimeRange:!1,showBarsRange:!1},linetoolfibspiral:{counterclockwise:!1,linecolor:le,linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID},linetoolriskrewardshort:{linecolor:Te,linewidth:1,textcolor:w,fontsize:12,fillLabelBackground:!0,labelBackgroundColor:"#585858",fillBackground:!0,stopBackground:K,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:Te,linewidth:1,textcolor:w,fontsize:12,fillLabelBackground:!0,labelBackgroundColor:"#585858",fillBackground:!0,stopBackground:K,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:T,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,extendLeft:!1,extendRight:!1,leftEnd:m.Normal,rightEnd:m.Arrow,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:T,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,showDateTimeRange:!1,showDistance:!1,showAngle:!1,statsPosition:f.Right},linetoolray:{linecolor:T,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,extendLeft:!1,extendRight:!0,leftEnd:m.Normal,rightEnd:m.Normal,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:T,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,showDateTimeRange:!1,showDistance:!1,showAngle:!1,statsPosition:f.Right},linetoolextended:{linecolor:T,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,extendLeft:!0,extendRight:!0,leftEnd:m.Normal,rightEnd:m.Normal,showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textcolor:T,fontsize:14,bold:!1,italic:!1,alwaysShowStats:!1,showMiddlePoint:!1,showPriceLabels:!1,showPriceRange:!1,showBarsRange:!1,showDateTimeRange:!1,showDistance:!1,showAngle:!1,statsPosition:f.Right},linetoolhorzline:{
linecolor:T,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,showPrice:!0,showLabel:!1,textcolor:T,fontsize:12,bold:!1,italic:!1,horzLabelsAlign:"center",vertLabelsAlign:"top"},linetoolhorzray:{linecolor:T,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,showPrice:!0,showLabel:!1,textcolor:T,fontsize:12,bold:!1,italic:!1,horzLabelsAlign:"center",vertLabelsAlign:"top"},linetoolvertline:{linecolor:T,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,extendLine:!0,showTime:!0,showLabel:!1,horzLabelsAlign:"right",vertLabelsAlign:"top",textcolor:T,textOrientation:"vertical",fontsize:14,bold:!1,italic:!1},linetoolcrossline:{linecolor:T,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,showPrice:!0,showTime:!0},linetoolcirclelines:{trendline:{visible:!0,color:"#808080",linewidth:1,linestyle:CanvasEx.LINESTYLE_DASHED},linecolor:"#80ccdb",linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID},linetoolfibtimezone:{horzLabelsAlign:"right",vertLabelsAlign:"bottom",baselinecolor:"#808080",linecolor:"#0055db",linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID,showLabels:!0,fillBackground:!1,transparency:80,trendline:{visible:!0,color:"#808080",linewidth:1,linestyle:CanvasEx.LINESTYLE_DASHED},level1:r(0,Te,!0),level2:r(1,T,!0),level3:r(2,T,!0),level4:r(3,T,!0),level5:r(5,T,!0),level6:r(8,T,!0),level7:r(13,T,!0),level8:r(21,T,!0),level9:r(34,T,!0),level10:r(55,T,!0),level11:r(89,T,!0)},linetooltext:{color:T,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:T,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:w,backgroundColor:se,borderColor:te,fontsize:14,transparency:30},linetoolbrush:{linecolor:R,linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID,smooth:5,fillBackground:!1,backgroundColor:F,transparency:50,leftEnd:m.Normal,rightEnd:m.Normal},linetoolhighlighter:{linecolor:re,smooth:5,transparency:85},linetoolpolyline:{linecolor:V,linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID,fillBackground:!0,backgroundColor:B,transparency:50,filled:!1},linetoolsignpost:{itemType:p.Emoji,emoji:"🙂",showImage:!1,plateColor:T,fontSize:12,bold:!1,italic:!1},linetoolpath:{lineColor:T,lineWidth:2,lineStyle:CanvasEx.LINESTYLE_SOLID,leftEnd:m.Normal,rightEnd:m.Arrow},linetoolarrowmarkleft:{color:T,arrowColor:T,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolarrowmarkup:{color:le,arrowColor:le,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolarrowmarkright:{color:T,arrowColor:T,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolarrowmarkdown:{color:Z,arrowColor:Z,fontsize:14,bold:!1,italic:!1,showLabel:!0},linetoolflagmark:{flagColor:T},linetoolnote:{markerColor:T,textColor:w,backgroundColor:x,backgroundTransparency:0,borderColor:T,fontSize:14,bold:!1,italic:!1,fixedSize:!0},linetoolnoteabsolute:{markerColor:T,textColor:w,
backgroundColor:x,backgroundTransparency:0,borderColor:T,fontSize:14,bold:!1,italic:!1,fixedSize:!0},linetoolpricelabel:{color:w,backgroundColor:T,borderColor:T,fontWeight:"bold",fontsize:14,transparency:0},linetoolpricenote:{showLabel:!1,horzLabelsAlign:"center",vertLabelsAlign:"bottom",textColor:T,fontSize:14,bold:!1,italic:!1,lineColor:T,priceLabelBackgroundColor:T,priceLabelBorderColor:T,priceLabelTextColor:w,priceLabelFontSize:12,priceLabelBold:!1,priceLabelItalic:!1},linetoolarrowmarker:{backgroundColor:E,textColor:E,bold:!0,italic:!1,fontsize:16,showLabel:!0},linetoolrectangle:{color:ee,fillBackground:!0,backgroundColor:ie,linewidth:1,transparency:50,showLabel:!1,horzLabelsAlign:"left",vertLabelsAlign:"bottom",textColor:ee,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:ne,fillBackground:!0,backgroundColor:oe,transparency:50,linewidth:1,showLabel:!1,textColor:ne,fontSize:14,bold:!1,italic:!1},linetoolarc:{color:J,fillBackground:!0,backgroundColor:Q,transparency:50,linewidth:1},linetoolprediction:{linecolor:T,linewidth:1,sourceBackColor:T,sourceTextColor:w,sourceStrokeColor:T,targetStrokeColor:T,targetBackColor:T,targetTextColor:w,successBackground:pe,successTextColor:w,failureBackground:q,failureTextColor:w,intermediateBackColor:"#ead289",intermediateTextColor:"#6d4d22",transparency:10,centersColor:"#202020"},linetooltriangle:{color:Se,fillBackground:!0,backgroundColor:ye,transparency:50,linewidth:1},linetoolcallout:{color:w,backgroundColor:H,transparency:50,linewidth:1,fontsize:14,bordercolor:W,bold:!1,italic:!1,wordWrap:!1,wordWrapWidth:200},linetoolparallelchannel:{linecolor:T,linewidth:2,linestyle:CanvasEx.LINESTYLE_SOLID,extendLeft:!1,extendRight:!1,fillBackground:!0,backgroundColor:A,transparency:20,showMidline:!0,midlinecolor:T,midlinewidth:1,midlinestyle:CanvasEx.LINESTYLE_DASHED},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:T,mode:c.Bars,mirrored:!1,flipped:!1},linetoolghostfeed:{averageHL:20,variance:50,candleStyle:{upColor:ae,downColor:U,drawWick:!0,drawBorder:!0,borderColor:"#378658",borderUpColor:le,borderDownColor:q,wickColor:Te},transparency:50},study:{inputs:{},styles:{},palettes:{},bands:{},area:{},graphics:{},visible:!0,showLegendValues:!0,showLabelsOnPriceScale:!0,precision:"default"},linetoolpitchfork:{fillBackground:!0,transparency:80,style:l.Original,median:{visible:!0,color:q,linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID},extendLines:!1,level0:r(.25,me,!1),
level1:r(.382,ue,!1),level2:r(.5,pe,!0),level3:r(.618,le,!1),level4:r(.75,"#64b5f6",!1),level5:r(1,T,!0),level6:r(1.5,ee,!1),level7:r(1.75,ne,!1),level8:r(2,j,!1)},linetoolpitchfan:{fillBackground:!0,transparency:80,median:{visible:!0,color:q,linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID},level0:r(.25,me,!1),level1:r(.382,ue,!1),level2:r(.5,pe,!0),level3:r(.618,le,!1),level4:r(.75,"#64b5f6",!1),level5:r(1,T,!0),level6:r(1.5,ee,!1),level7:r(1.75,ne,!1),level8:r(2,j,!1)},linetoolgannfan:{showLabels:!0,fillBackground:!0,transparency:80,level1:Be(1,8,me,!0),level2:Be(1,4,ue,!0),level3:Be(1,3,pe,!0),level4:Be(1,2,le,!0),level5:Be(1,1,"#64b5f6",!0),level6:Be(2,1,T,!0),level7:Be(3,1,ee,!0),level8:Be(4,1,ne,!0),level9:Be(8,1,j,!0)},linetoolganncomplex:{fillBackground:!1,arcsBackground:{fillBackground:!0,transparency:80},reverse:!1,scaleRatio:"",showLabels:!0,labelsStyle:{fontSize:12,bold:!1,italic:!1},levels:[y(Te,!0,1),y(ge,!0,1),y(ue,!0,1),y(pe,!0,1),y(le,!0,1),y(Te,!0,1)],fanlines:[xe(k,!1,1,8,1),xe(q,!1,1,5,1),xe(Te,!1,1,4,1),xe(ge,!1,1,3,1),xe(ue,!0,1,2,1),xe(pe,!0,1,1,1),xe(le,!0,1,1,2),xe(le,!1,1,1,3),xe(T,!1,1,1,4),xe(D,!1,1,1,5),xe(k,!1,1,1,8)],arcs:[xe(ge,!0,1,1,0),xe(ge,!0,1,1,1),xe(ge,!0,1,1.5,0),xe(ue,!0,1,2,0),xe(ue,!0,1,2,1),xe(pe,!0,1,3,0),xe(pe,!0,1,3,1),xe(le,!0,1,4,0),xe(le,!0,1,4,1),xe(T,!0,1,5,0),xe(T,!0,1,5,1)]},linetoolgannfixed:{fillBackground:!1,arcsBackground:{fillBackground:!0,transparency:80},reverse:!1,levels:[y(Te,!0,1),y(ge,!0,1),y(ue,!0,1),y(pe,!0,1),y(le,!0,1),y(Te,!0,1)],fanlines:[xe(k,!1,1,8,1),xe(q,!1,1,5,1),xe(Te,!1,1,4,1),xe(ge,!1,1,3,1),xe(ue,!0,1,2,1),xe(pe,!0,1,1,1),xe(le,!0,1,1,2),xe(le,!1,1,1,3),xe(T,!1,1,1,4),xe(D,!1,1,1,5),xe(k,!1,1,1,8)],arcs:[xe(ge,!0,1,1,0),xe(ge,!0,1,1,1),xe(ge,!0,1,1.5,0),xe(ue,!0,1,2,0),xe(ue,!0,1,2,1),xe(pe,!0,1,3,0),xe(pe,!0,1,3,1),xe(le,!0,1,4,0),xe(le,!0,1,4,1),xe(T,!0,1,5,0),xe(T,!0,1,5,1)]},linetoolgannsquare:{color:"rgba(21, 56, 153, 0.8)",linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID,showTopLabels:!0,showBottomLabels:!0,showLeftLabels:!0,showRightLabels:!0,fillHorzBackground:!0,horzTransparency:80,fillVertBackground:!0,vertTransparency:80,reverse:!1,fans:t(Pe,!1),hlevel1:i(0,Te,!0),hlevel2:i(.25,Se,!0),hlevel3:i(.382,ue,!0),hlevel4:i(.5,pe,!0),hlevel5:i(.618,le,!0),hlevel6:i(.75,T,!0),hlevel7:i(1,Te,!0),vlevel1:i(0,Te,!0),vlevel2:i(.25,Se,!0),vlevel3:i(.382,ue,!0),vlevel4:i(.5,pe,!0),vlevel5:i(.618,le,!0),vlevel6:i(.75,T,!0),vlevel7:i(1,Te,!0)},linetoolfibspeedresistancefan:{fillBackground:!0,transparency:80,grid:{color:"rgba(21, 56, 153, 0.8)",linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID,visible:!0},linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID,showTopLabels:!0,showBottomLabels:!0,showLeftLabels:!0,showRightLabels:!0,reverse:!1,hlevel1:i(0,Te,!0),hlevel2:i(.25,Se,!0),hlevel3:i(.382,ue,!0),hlevel4:i(.5,pe,!0),hlevel5:i(.618,le,!0),hlevel6:i(.75,T,!0),hlevel7:i(1,Te,!0),vlevel1:i(0,Te,!0),vlevel2:i(.25,Se,!0),vlevel3:i(.382,ue,!0),vlevel4:i(.5,pe,!0),vlevel5:i(.618,le,!0),vlevel6:i(.75,T,!0),vlevel7:i(1,Te,!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:Te,linewidth:1,linestyle:CanvasEx.LINESTYLE_DASHED},levelsStyle:{linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID},level1:i(0,Te,!0),level2:i(.236,q,!0),level3:i(.382,ue,!0),level4:i(.5,pe,!0),level5:i(.618,le,!0),level6:i(.786,"#64b5f6",!0),level7:i(1,Te,!0),level8:i(1.618,T,!0),level9:i(2.618,q,!0),level10:i(3.618,ee,!0),level11:i(4.236,ne,!0),level12:i(1.272,ue,!1),level13:i(1.414,q,!1),level16:i(2,le,!1),level14:i(2.272,ue,!1),level15:i(2.414,pe,!1),level17:i(3,"#64b5f6",!1),level18:i(3.272,Te,!1),level19:i(3.414,T,!1),level20:i(4,"#cc2828",!1),level21:i(4.272,ee,!1),level22:i(4.414,ne,!1),level23:i(4.618,ue,!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:CanvasEx.LINESTYLE_SOLID},level1:i(0,Te,!0),level2:i(.236,q,!0),level3:i(.382,ue,!0),level4:i(.5,pe,!0),level5:i(.618,le,!0),level6:i(.786,"#64b5f6",!0),level7:i(1,Te,!0),level8:i(1.618,T,!0),level9:i(2.618,q,!0),level10:i(3.618,ee,!0),level11:i(4.236,ne,!0),level12:i(1.272,ue,!1),level13:i(1.414,q,!1),level16:i(2,le,!1),level14:i(2.272,ue,!1),level15:i(2.414,pe,!1),level17:i(3,"#64b5f6",!1),level18:i(3.272,Te,!1),level19:i(3.414,T,!1),level20:i(4,"#cc2828",!1),level21:i(4.272,ee,!1),level22:i(4.414,ne,!1),level23:i(4.618,ue,!1),level24:i(4.764,le,!1)},linetoolprojection:{showCoeffs:!0,fillBackground:!0,transparency:80,color1:A,color2:ie,linewidth:1,trendline:{visible:!0,color:Pe,linestyle:CanvasEx.LINESTYLE_SOLID},level1:r(1,"#808080",!0)},linetool5pointspattern:{color:T,textcolor:w,fillBackground:!0,backgroundColor:T,fontsize:12,bold:!1,italic:!1,transparency:85,linewidth:1},linetoolcypherpattern:{color:T,textcolor:w,fillBackground:!0,backgroundColor:T,fontsize:12,bold:!1,italic:!1,transparency:85,linewidth:1},linetooltrianglepattern:{color:N,textcolor:w,fillBackground:!0,backgroundColor:N,fontsize:12,bold:!1,italic:!1,transparency:85,linewidth:1},linetoolabcd:{color:le,textcolor:w,fontsize:12,bold:!1,italic:!1,linewidth:1},linetoolthreedrivers:{color:N,textcolor:w,fillBackground:!0,backgroundColor:"rgba(149, 40, 204, 0.5)",fontsize:12,bold:!1,italic:!1,transparency:50,linewidth:1},linetoolheadandshoulders:{color:le,textcolor:w,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:CanvasEx.LINESTYLE_SOLID},level1:r(.236,q,!0),level2:r(.382,ue,!0),level3:r(.5,pe,!0),level4:r(.618,le,!0),level5:r(.786,"#64b5f6",!0),level6:r(1,Te,!0),level7:r(1.618,T,!1),level8:r(2.618,q,!1),level9:r(3.618,N,!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:Te,linewidth:1,linestyle:CanvasEx.LINESTYLE_DASHED},level1:r(.236,q,!0),level2:r(.382,ue,!0),level3:r(.5,pe,!0),level4:r(.618,le,!0),level5:r(.786,"#64b5f6",!0),level6:r(1,Te,!0),level7:r(1.618,T,!0),level8:r(2.618,q,!0),level9:r(3.618,N,!0),level10:r(4.236,ne,!0),level11:r(4.618,ne,!0)},linetoolfibspeedresistancearcs:{showCoeffs:!0,fillBackground:!0,transparency:80,fullCircles:!1,trendline:{visible:!0,color:Te,linewidth:1,linestyle:CanvasEx.LINESTYLE_DASHED},level1:r(.236,q,!0),level2:r(.382,ue,!0),level3:r(.5,pe,!0),level4:r(.618,le,!0),level5:r(.786,"#64b5f6",!0),level6:r(1,Te,!0),level7:r(1.618,T,!0),level8:r(2.618,q,!0),level9:r(3.618,N,!0),level10:r(4.236,ne,!0),level11:r(4.618,ne,!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:Te,linewidth:1,linestyle:CanvasEx.LINESTYLE_DASHED},levelsStyle:{linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID},level1:i(0,Te,!0),level2:i(.236,q,!0),level3:i(.382,ue,!0),level4:i(.5,pe,!0),level5:i(.618,le,!0),level6:i(.786,"#64b5f6",!0),level7:i(1,Te,!0),level8:i(1.618,T,!0),level9:i(2.618,q,!0),level10:i(3.618,ee,!0),level11:i(4.236,ne,!0),level12:i(1.272,ue,!1),level13:i(1.414,q,!1),level16:i(2,le,!1),level14:i(2.272,ue,!1),level15:i(2.414,pe,!1),level17:i(3,"#64b5f6",!1),level18:i(3.272,Te,!1),level19:i(3.414,T,!1),level20:i(4,"#cc2828",!1),level21:i(4.272,ee,!1),level22:i(4.414,ne,!1),level23:i(4.618,ue,!1),level24:i(4.764,le,!1)},linetooltrendbasedfibtime:{showCoeffs:!0,fillBackground:!0,transparency:80,horzLabelsAlign:"right",vertLabelsAlign:"bottom",trendline:{visible:!0,color:Te,linewidth:1,linestyle:CanvasEx.LINESTYLE_DASHED},level1:r(0,Te,!0),level2:r(.382,q,!0),level3:r(.5,ue,!1),level4:r(.618,pe,!0),level5:r(1,le,!0),level6:r(1.382,"#64b5f6",!0),level7:r(1.618,Te,!0),level8:r(2,T,!0),level9:r(2.382,q,!0),level10:r(2.618,ee,!0),level11:r(3,ne,!0)},linetoolschiffpitchfork:{fillBackground:!0,transparency:80,style:l.Schiff,median:{visible:!0,color:q,linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID},extendLines:!1,level0:r(.25,me,!1),level1:r(.382,ue,!1),level2:r(.5,pe,!0),level3:r(.618,le,!1),level4:r(.75,"#64b5f6",!1),level5:r(1,T,!0),level6:r(1.5,ee,!1),level7:r(1.75,ne,!1),level8:r(2,j,!1)},linetoolschiffpitchfork2:{fillBackground:!0,transparency:80,style:l.Schiff2,median:{visible:!0,color:q,linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID},extendLines:!1,level0:r(.25,me,!1),level1:r(.382,ue,!1),level2:r(.5,pe,!0),level3:r(.618,le,!1),level4:r(.75,"#64b5f6",!1),level5:r(1,T,!0),level6:r(1.5,ee,!1),level7:r(1.75,ne,!1),level8:r(2,j,!1)},linetoolinsidepitchfork:{fillBackground:!0,transparency:80,style:l.Inside,median:{visible:!0,color:q,linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID},extendLines:!1,level0:r(.25,me,!1),
level1:r(.382,ue,!1),level2:r(.5,pe,!0),level3:r(.618,le,!1),level4:r(.75,"#64b5f6",!1),level5:r(1,T,!0),level6:r(1.5,ee,!1),level7:r(1.75,ne,!1),level8:r(2,j,!1)},linetoolregressiontrend:{linewidth:1,linestyle:CanvasEx.LINESTYLE_SOLID,styles:{upLine:{visible:!0,color:I,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:2},downLine:{visible:!0,color:I,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:2},baseLine:{visible:!0,color:Y,linestyle:CanvasEx.LINESTYLE_DASHED,linewidth:1},extendLines:!1,showPearsons:!0,transparency:70}}},Re(TradingView.defaultProperties.chartproperties),Fe()}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:{visible:!0,color:T,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:1,plottype:h.Line,histogramBase:0,title:"MA"}}}),void 0===TradingView.defaultProperties["study_PivotPointsHighLow@tv-basicstudies"]&&(TradingView.defaultProperties["study_PivotPointsHighLow@tv-basicstudies"]={fontsize:10,borderColor:T,backColor:P,textColor:Le}),void 0===TradingView.defaultProperties["study_PivotPointsStandard@tv-basicstudies"]){TradingView.defaultProperties["study_PivotPointsStandard@tv-basicstudies"]={_hardCodedDefaultsVersion:1,fontsize:11,levelsStyle:{showLabels:!0,visibility:{P:!0,"S1/R1":!0,"S2/R2":!0,"S3/R3":!0,"S4/R4":!0,"S5/R5":!0},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:T,linewidth:2}),void 0===TradingView.defaultProperties["study_ElliottWave@tv-basicstudies"]&&(TradingView.defaultProperties["study_ElliottWave@tv-basicstudies"]={inputs:{},level0:t(z,!1),level1:t("#008000",!1),level2:t("#0000ff",!1),level3:t("#ff00ff",!1),level4:t("#0080ff",!0),level5:t(z,!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:{visible:!0,color:I,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:1},downLine:{visible:!0,color:I,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:1},baseLine:{visible:!0,color:Y,linestyle:CanvasEx.LINESTYLE_SOLID,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:be,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:2,priceSource:"close",styleType:a.STYLE_LINE_TYPE_SIMPLE},areaStyle:{color1:T,color2:T,linecolor:T,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:2,priceSource:"close",transparency:95},baselineStyle:{baselineColor:Ae,topFillColor1:ke,topFillColor2:ke,bottomFillColor1:Ve,bottomFillColor2:Ve,topLineColor:Ee,bottomLineColor:De,topLineWidth:2,bottomLineWidth:2,priceSource:"close",transparency:50,baseLevelPercentage:50},columnStyle:{upColor:n(le,50),downColor:n(q,50),barColorsOnPrevClose:!0,priceSource:"close"},styles:{open:{visible:!0,color:z,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:1,plottype:h.Line,histogramBase:0},high:{visible:!0,color:z,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:1,plottype:h.Line,histogramBase:0},low:{visible:!0,color:z,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:1,plottype:h.Line,histogramBase:0},close:{visible:!0,color:z,linestyle:CanvasEx.LINESTYLE_SOLID,linewidth:1,plottype:h.Line,histogramBase:0}}}}for(var Oe=e.split("."),We=TradingView.defaultProperties,He=0;He1?h(e[r],t.slice(1),i):(e[r]&&e[r].setValue?e[r].setValue(i):e[r]=i,!0))}function d(e){i||y.logWarn("Path `"+e+"` does not exist.")}}function Re(e,t,i,s){window.__defaultsOverrides&&Ne(e,t,i,window.__defaultsOverrides,s)}function Oe(e,t){window.__settingsOverrides&&Ne(e,null,!1,window.__settingsOverrides,t)}function Fe(){var e=/^linetool.+/;Object.keys(TradingView.defaultProperties).forEach((function(t){e.test(t)&&Re(TradingView.defaultProperties[t],null,!1,t)}))}function We(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;var o=t.updateStudyState(s,s);s=o}TradingView.merge(i,s),Oe(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(".");Oe(t,void 0===s[1]?e:s[1])}}return t}(e)}We.create=function(e,t){if(t){var i=Be(e);TradingView.defaultProperties[e]=Object.assign(t,i)}},We.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=Fe,window.applyDefaultsOverrides=Re,window.applyPropertiesOverrides=Ne,window.defaults=We,t.applyDefaultOverridesToLinetools=Fe,t.applyDefaultsOverrides=Re,t.applyPropertiesOverrides=Ne,t.defaults=We,t.factoryDefaults=Be,t.saveDefaults=TradingView.saveDefaults},85733:(e,t,i)=>{"use strict";i.r(t),i.d(t,{toolIsCursor:()=>p,toolIsMeasure:()=>_,resetToCursor:()=>m,lockTimeAxisTime:()=>w,tool:()=>C,iconTool:()=>P,cursorTool:()=>T,isToolCreatingNow:()=>x,isToolEditingNow:()=>I,isToolMovingNow:()=>M,isDirectionalMovementActive:()=>L,createdLineTool:()=>A,continuedLineTool:()=>E,cancelledLineTool:()=>k,beenSetLineToolLastPoint:()=>D,startedMovingLineTool:()=>V,movedLineTool:()=>B,finishedMovingLineTool:()=>N,startedChangingLineTool:()=>R,changedLineTool:()=>O,finishedChangingLineTool:()=>F,removedLineTool:()=>W,finishedLineTool:()=>H,changedLineStyle:()=>z,copiedLineTool:()=>U,restoredLineTool:()=>j,restoredLineToolState:()=>G,isPointSelectedNow:()=>q,isStudyEditingNow:()=>Y,createLineTool:()=>X,continueLineTool:()=>Z,cancelLineTool:()=>J,setLineToolLastPoint:()=>Q,startMovingLineTool:()=>ee,moveLineTool:()=>te,finishMovingLineTool:()=>ie,startChangingLineTool:()=>se,changeLineTool:()=>re,finishChangingLineTool:()=>ne,removeLineTool:()=>oe,finishLineTool:()=>ae,changeLineStyle:()=>le,copyLineTool:()=>ce,restoreLineTool:()=>he,restoreLineToolState:()=>de,init:()=>_e,runOnDrawingStateReady:()=>me,properties:()=>ge,hideAllDrawings:()=>fe,hideAllIndicators:()=>ve,lockDrawings:()=>Se,hideMarksOnBars:()=>ye,drawOnAllCharts:()=>be,drawOnAllChartsMode:()=>we,lockTimeAxis:()=>Ce});var s=i(88537),r=i(32255),n=i(88564),o=i(59803),a=i(52714),l=i.n(a),c=i(2872),h=i.n(c),d=i(56840),u=i(76422);function p(e){return"cursor"===e||"arrow"===e||"dot"===e}function _(e){return"measure"===e}function m(e=!1){if(!e&&g){if(g.childs().stayInDrawingMode.value())return}C.setValue(T.value())}let g=null,f=null,v=null,S=null,y=null,b=null;const w=new(l()),C=new(l()),P=new(l()),T=new(l()),x=new(l())(!1),I=new(l())(!1),M=new(l())(!1),L=new(l())(!1),A=new(h()),E=new(h()),k=new(h()),D=new(h()),V=new(h()),B=new(h()),N=new(h()),R=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(l())(!1),Y=new(l())(!1);function K(e,t){const i=t||{value:!1};return t=>{i.value||(i.value=!0,e.fire(t),i.value=!1)}}const $={value:!1},X=K(A,$),Z=K(E,$),J=K(k,$),Q=K(D,$),ee=K(V),te=K(B),ie=K(N),se=K(R),re=K(O),ne=K(F),oe=K(W),ae=K(H),le=K(z,$),ce=K(U,$),he=K(j),de=K(G);let ue=!1,pe=[];function _e(){ue||(C.setValue(d.getValue("chart.cursorPreference","cursor")),C.subscribe(e=>p(e)&&T.setValue(e),{callWithLast:!0}),T.subscribe(e=>{
e&&d.setValue("chart.cursorPreference",e)}),g=new n.DefaultProperty("drawings"),f=(0,r.createPrimitiveProperty)(),v=(0,r.createPrimitiveProperty)(),S=(0,r.createPrimitiveProperty)(),y=(0,r.createPrimitiveProperty)(),b=(0,r.createPrimitiveProperty)(),f.setValue(!1),v.setValue(!1),S.setValue(!1),y.setValue(!1),b.setValue(!1),C.subscribe(()=>{(0,u.emit)("onSelectedLineToolChanged")}),P.subscribe(()=>{(0,o.saveDefaults)("linetoolicon",{...(0,o.defaults)("linetoolicon"),icon:P.value()})}),ue=!0,pe.forEach(e=>e()),pe=[])}function me(e){ue?e():pe.push(e)}function ge(){return(0,s.ensureNotNull)(g)}function fe(){return(0,s.ensureNotNull)(f)}function ve(){return(0,s.ensureNotNull)(v)}function Se(){return(0,s.ensureNotNull)(S)}function ye(){return(0,s.ensureNotNull)(y)}function be(){return ge().childs().drawOnAllCharts}function we(){return ge().childs().drawOnAllChartsMode}function Ce(){return(0,s.ensureNotNull)(b)}},77216:(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})}}},19234:(e,t,i)=>{"use strict";function s(e){return"="+JSON.stringify(function e(t){return Object.keys(t).sort().reduce((i,s)=>("[object Object]"===Object.prototype.toString.call(t[s])?i[s]=e(t[s]):i[s]=t[s],i),{})}(e))}function r(e){return s(e)}function n(e){return"="===e[0]}function o(e){if(!n(e))return{symbol:e};try{return JSON.parse(e.slice(1))}catch(t){return{symbol:e}}}function a(e){return"string"==typeof e?e:a(e.symbol)}i.r(t),i.d(t,{encodeExtendedSymbolOrGetSimpleSymbolString:()=>r,isEncodedExtendedSymbol:()=>n,decodeExtendedSymbol:()=>o,unwrapSimpleSymbol:()=>a})},69147:(e,t,i)=>{"use strict";i.d(t,{customFormatters:()=>s});const s={dateFormatter:null,timeFormatter:null,tickMarkFormatter:null,priceFormatterFactory:null,studyFormatterFactory:null}},7043:(e,t,i)=>{"use strict";i.d(t,{dateFormatFunctions:()=>p,availableDateFormats:()=>_,defaultDateFormat:()=>m});var s=i(28353),r=i(97098);const n={1:()=>(0,s.t)("Jan"),2:()=>(0,s.t)("Feb"),3:()=>(0,s.t)("Mar"),4:()=>(0,s.t)("Apr"),5:()=>(0,s.t)("May",{context:"short"}),6:()=>(0,s.t)("Jun"),7:()=>(0,s.t)("Jul"),8:()=>(0,s.t)("Aug"),9:()=>(0,s.t)("Sep"),10:()=>(0,s.t)("Oct"),11:()=>(0,s.t)("Nov"),12:()=>(0,s.t)("Dec")},o=(e,t)=>(t?e.getMonth():e.getUTCMonth())+1,a=(e,t)=>t?e.getFullYear():e.getUTCFullYear(),l=(e,t)=>(0,r.numberToStringWithLeadingZero)(((e,t)=>t?e.getDate():e.getUTCDate())(e,t),2),c=(e,t)=>n[o(e,t)](),h=(e,t)=>(0,
r.numberToStringWithLeadingZero)(o(e,t),2),d=(e,t)=>(0,r.numberToStringWithLeadingZero)(a(e,t)%100,2),u=(e,t)=>(0,r.numberToStringWithLeadingZero)(a(e,t),4),p={"dd MMM 'yy":(e,t)=>`${l(e,t)} ${c(e,t)} '${d(e,t)}`,"MMM dd, yyyy":(e,t)=>`${c(e,t)} ${l(e,t)}, ${u(e,t)}`,"MMM dd":(e,t)=>`${c(e,t)} ${l(e,t)}`,"yyyy-MM-dd":(e,t)=>`${u(e,t)}-${h(e,t)}-${l(e,t)}`,"yy-MM-dd":(e,t)=>`${d(e,t)}-${h(e,t)}-${l(e,t)}`,"yy/MM/dd":(e,t)=>`${d(e,t)}/${h(e,t)}/${l(e,t)}`,"yyyy/MM/dd":(e,t)=>`${u(e,t)}/${h(e,t)}/${l(e,t)}`,"dd-MM-yyyy":(e,t)=>`${l(e,t)}-${h(e,t)}-${u(e,t)}`,"dd-MM-yy":(e,t)=>`${l(e,t)}-${h(e,t)}-${d(e,t)}`,"dd/MM/yy":(e,t)=>`${l(e,t)}/${h(e,t)}/${d(e,t)}`,"dd/MM/yyyy":(e,t)=>`${l(e,t)}/${h(e,t)}/${u(e,t)}`,"MM/dd/yy":(e,t)=>`${h(e,t)}/${l(e,t)}/${d(e,t)}`,"MM/dd/yyyy":(e,t)=>`${h(e,t)}/${l(e,t)}/${u(e,t)}`},_=Object.keys(p),m=()=>-1!==["ja","ko","zh","zh_TW"].indexOf(window.language||"")?"yyyy-MM-dd":"dd MMM 'yy"},1860:(e,t,i)=>{"use strict";i.d(t,{DateFormatter:()=>n});var s=i(69147),r=i(7043);class n{constructor(e="yyyy-MM-dd"){this._dateFormatFunc=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)}}},95792:(e,t,i)=>{"use strict";i.d(t,{DateTimeFormatter:()=>o});var s=i(64806),r=i(1860);const n={dateFormat:"yyyy-MM-dd",timeFormat:"%h:%m:%s",dateTimeSeparator:" "};class o{constructor(e={}){const t=Object.assign({},n,e);this._dateFormatter=new r.DateFormatter(t.dateFormat),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)}`}}},51264:(e,t,i)=>{"use strict";i.d(t,{LimitedPrecisionNumericFormatter:()=>r});var s=i(80643);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)}}}},95505:(e,t,i)=>{"use strict";i.d(t,{NumericFormatter:()=>n});var s=i(97098),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()}}},26811:(e,t,i)=>{"use strict";i.d(t,{PercentageFormatter:()=>n});var s=i(97098),r=i(62820);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)}}},97645:(e,t,i)=>{"use strict";i.d(t,{PipFormatter:()=>r});var s=i(97098);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)}}},97098:(e,t,i)=>{"use strict";i.r(t),i.d(t,{formatterOptions:()=>l,numberToStringWithLeadingZero:()=>c,isFormatterHasForexAdditionalPrecision:()=>h,PriceFormatter:()=>d});var s=i(28353),r=i(80643),n=i(62820);const o=(0,i(98125).getLogger)("Chart.PriceFormatter"),a=new RegExp(/^(-?)[0-9]+$/),l={decimalSign:".",decimalSignFractional:"'"};function c(e,t){if(!(0,r.isNumber)(e))return"n/a";if(!(0,r.isInteger)(t))throw new TypeError("invalid length");if(t<0||t>16)throw new TypeError("invalid length");if(0===t)return e.toString();return("0000000000000000"+e.toString()).slice(-t)}function h(e){return"hasForexAdditionalPrecision"in e}class d{constructor(e,t,i,n){if(this.type="price",this._formatterErrors={custom:(0,s.t)("Price format is invalid."),fraction:(0,s.t)("Fraction part is invalid."),secondFraction:(0,s.t)("Second fraction part is invalid.")},t||(t=1),(0,r.isNumber)(e)&&(0,r.isInteger)(e)||(e=100),e<0)throw new TypeError("invalid base");this._priceScale=e,this._minMove=t,this._minMove2=n,i&&void 0!==n&&n>0&&2!==n&&4!==n&&8!==n?o.logDebug("invalid minmove2"):(this._fractional=i,this.calculateDecimal())}isFractional(){return!!this._fractional}state(){return{fractional:this._fractional,fractionalLength:this._fractionalLength,minMove:this._minMove,minMove2:this._minMove2,priceScale:this._priceScale}}calculateDecimal(){if(this._fractionalLength=0,this._priceScale>0&&this._minMove>0){let e=this._priceScale;for(this._fractional&&this._minMove2&&(e/=this._minMove2);e>1;)e/=10,this._fractionalLength++}}format(e,t,i,s=!0,r=!0){let o,a="";return e<0?(a=!1===s?"":"−",e=-e):e&&!0===t&&(a="+"),o=this._fractional?a+this._formatAsFractional(e,i):a+this._formatAsDecimal(e,i),r?(0,n.forceLTRStr)(o):o}parse(e){return e=(e=(0,n.stripLTRMarks)(e)).replace("−","-"),this._fractional?this._minMove2?this._parseAsDoubleFractional(e):this._parseAsSingleFractional(e):this._parseAsDecimal(e)}hasForexAdditionalPrecision(){return!this._fractional&&10===this._minMove2}static serialize(e){return e.state()}static deserialize(e){return new d(e.priceScale,e.minMove,e.fractional,e.minMove2)}_formatAsDecimal(e,t){let i;t=t||0,i=this._fractional?Math.pow(10,this._fractionalLength||0):Math.pow(10,t)*this._priceScale/this._minMove;const s=1/i;let r;if(i>1)r=Math.floor(e);else{
const t=Math.floor(Math.round(e/s)*s);r=0===Math.round((e-t)/s)?t:t+s}let n="";if(i>1){let s=parseFloat((Math.round(e*i)-r*i).toFixed(this._fractionalLength));s>=i&&(s-=i,r+=1);const o=void 0!==this._fractionalLength?this._fractionalLength:NaN;n=l.decimalSign+c(parseFloat(s.toFixed(this._fractionalLength))*this._minMove,o+t),n=this._removeEndingZeros(n,t)}return r.toString()+n}_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){const i=this._priceScale/this._minMove;let s=Math.floor(e),r=t?Math.floor(e*i)-s*i:Math.round(e*i)-s*i;r===i&&(r=0,s+=1);let n="";if(t){let o=(e-s-r/i)*i;o=Math.round(o*Math.pow(10,t)),n=c(o,t),n=this._removeEndingZeros(n,t)}if(!this._fractionalLength)throw new Error("_fractionalLength is not calculated");let o="";if(this._minMove2){const e=r%this._minMove2;r=(r-e)/this._minMove2;const t=c(r,this._fractionalLength),i=this._getFractPart(e,2,this._minMove2);o=t+l.decimalSignFractional+i}else r=this._getFractPart(r,1,this._priceScale),o=c(r*this._minMove,this._fractionalLength);return s.toString()+l.decimalSignFractional+o+n}_removeEndingZeros(e,t){for(let i=0;i=s||r<0)return{error:this._formatterErrors.fraction,res:!1};let n=i+r/s;return e&&(n=-n),{value:n,res:!0,suggest:this.format(n)}}return{error:this._formatterErrors.custom,res:!1}}_parseAsDoubleFractional(e){let t=a.exec(e);if(t){const t=parseFloat(e);return{value:t,res:!0,suggest:this.format(t)}}if(t=new RegExp("^(-?)([0-9]+)\\"+l.decimalSignFractional+"([0-9]+)\\"+l.decimalSignFractional+"([0-9]+)$").exec(e),t){const e=!!t[1],i=parseInt(t[2]),s=void 0!==this._minMove2?this._minMove2:NaN,r=this._priceScale/s,n=this._minMove2,o=this._patchFractPart(parseInt(t[3]),1,r),a=this._patchFractPart(parseInt(t[4]),2,n);if(o>=r||o<0)return{error:this._formatterErrors.fraction,res:!1};if(void 0!==n&&a>=n||a<0)return{error:this._formatterErrors.secondFraction,res:!1};let l=void 0!==n?i+o/r+a/(r*n):NaN;return e&&(l=-l),{value:l,res:!0,suggest:this.format(l)}}return{error:this._formatterErrors.custom,res:!1}}}},64806:(e,t,i)=>{"use strict";i.d(t,{
TimeFormatter:()=>n});var s=i(69147),r=i(97098);class n{constructor(e){this._formatStr=e||"%h:%m:%s"}format(e){return s.customFormatters.timeFormatter?s.customFormatters.timeFormatter.format(e):this._formatStr.replace("%h",(0,r.numberToStringWithLeadingZero)(e.getUTCHours(),2)).replace("%m",(0,r.numberToStringWithLeadingZero)(e.getUTCMinutes(),2)).replace("%s",(0,r.numberToStringWithLeadingZero)(e.getUTCSeconds(),2))}formatLocal(e){return s.customFormatters.timeFormatter?s.customFormatters.timeFormatter.formatLocal?s.customFormatters.timeFormatter.formatLocal(e):s.customFormatters.timeFormatter.format(e):this._formatStr.replace("%h",(0,r.numberToStringWithLeadingZero)(e.getHours(),2)).replace("%m",(0,r.numberToStringWithLeadingZero)(e.getMinutes(),2)).replace("%s",(0,r.numberToStringWithLeadingZero)(e.getSeconds(),2))}}},92242:(e,t,i)=>{"use strict";i.d(t,{TimeSpanFormatter:()=>r});var s=i(28353);class r{format(e){const t=e<0;e=Math.abs(e);const i=Math.floor(e/86400);e-=86400*i;const r=Math.floor(e/3600);e-=3600*r;const n=Math.floor(e/60);e-=60*n;let o="";return i&&(o+=i+(0,s.t)("d",{context:"dates"})+" "),r&&(o+=r+(0,s.t)("h",{context:"dates"})+" "),n&&(o+=n+(0,s.t)("m",{context:"dates"})+" "),e&&(o+=e+(0,s.t)("s",{context:"dates"})+" "),t&&(o="-"+o),o.trim()}}},67802:(e,t,i)=>{"use strict";i.d(t,{VolumeFormatter:()=>a});var s=i(28353),r=i(95505),n=i(80643),o=i(93751);class a{constructor(e){this.type="volume",this._numericFormatter=new r.NumericFormatter,this._fractionalValues=void 0!==e&&e>0,this._precision=e}state(){return{precision:this._precision}}format(e,t){if(!(0,n.isNumber)(e))return"---";let i="";return e<0?(i="−",e=-e):e>0&&t&&(i="+"),e>=1e100?(0,s.t)("N/A"):(!this._fractionalValues||e>=995?e=Math.round(e):this._fractionalValues&&(e=+e.toFixed(this._precision)),e<995?i+this._formatNumber(e):e<999995?i+this._formatNumber(e/1e3)+"K":e<999999995?(e=1e3*Math.round(e/1e3),i+this._formatNumber(e/1e6)+"M"):e<999999999995?(e=1e6*Math.round(e/1e6),i+this._formatNumber(e/1e9)+"B"):(e=1e9*Math.round(e/1e9),i+this._formatNumber(e/1e12)+"T"))}parse(e){if("---"===e)return{error:"not a number",res:!1,value:NaN};const t={K:1e3,M:1e6,B:1e9},i=e.slice(-1);if(t.hasOwnProperty(i)){const s=this._numericFormatter.parse(e.slice(0,-1));return(0,n.isNumber)(s)?{res:!0,value:s*t[i]}:{error:"not a number",res:!1,value:NaN}}{const t=this._numericFormatter.parse(e);return(0,n.isNumber)(t)?{res:!0,value:t}:{error:"not a number",res:!1,value:NaN}}}static serialize(e){return e.state()}static deserialize(e){return new a(e.precision)}_formatNumber(e){return this._fractionalValues&&(e=(0,o.fixComputationError)(e)),this._numericFormatter.format(e).replace(/(\.[1-9]*)0+$/,(e,t)=>t)}}},88129:(e,t,i)=>{"use strict";i.d(t,{shouldBeFormattedAsPercent:()=>n,shouldBeFormattedAsIndexedTo100:()=>o,getPriceValueFormatterForSource:()=>a});var s=i(37667),r=i(79680);function n(e){const t=e.priceScale();return!(null===t||!t.isPercentage())&&(!(0,r.isActingAsSymbolSource)(e)||(0,s.isPriceSourceStyle)(e.style()))}function o(e){const t=e.priceScale()
;return!(null===t||!t.isIndexedTo100())&&(!(0,r.isActingAsSymbolSource)(e)||(0,s.isPriceSourceStyle)(e.style()))}function a(e){const t=e.priceScale();if(o(e)&&null!==t)return i=>{var s;return t.formatPriceIndexedTo100(i,null!==(s=e.firstValue())&&void 0!==s?s:100)};if(n(e)&&null!==t)return i=>{var s;return t.formatPricePercentage(i,null!==(s=e.firstValue())&&void 0!==s?s:100)};const i=e.formatter();return i.format.bind(i)}},84346:(e,t,i)=>{"use strict";function s(e,t,i){if(e.isTouch){if(void 0!==i)return i(e),!0}else if(void 0!==t)return t(e),!0;return!1}function r(e,t,i,s){return void 0!==t.executeDefaultAction&&(e.isTouch?Boolean(t.executeDefaultAction[s]):Boolean(t.executeDefaultAction[i]))}var n;i.d(t,{tryCallHandler:()=>s,shouldDefaultActionBeExecuted:()=>r,AreaName:()=>n,HitTestResult:()=>o}),function(e){e.Style="Style",e.Text="Text",e.SourceItemMove="SourceItemMove"}(n||(n={}));class o{constructor(e,t,i){this._result=e,this._data=t||null,this._eraseMarker=i}result(){return this._result}data(){return this._data}hasPressedMoveHandler(e){return null!==this._data&&function(e,t,i){if(e.isTouch){if(void 0!==i)return!0}else if(void 0!==t)return!0;return!1}(e,this._data.pressedMouseMoveHandler,this._data.touchMoveHandler)}tryCallMouseDownOrTouchStartHandler(e){return null!==this._data&&s(e,this._data.mouseDownHandler,this._data.touchStartHandler)}tryCallMouseUpOrTouchEndHandler(e){return null!==this._data&&s(e,this._data.mouseUpHandler,this._data.touchEndHandler)}tryCallMouseEnterHandler(e){return null!==this._data&&s(e,this._data.mouseEnterHandler)}tryCallMouseLeaveHandler(e){return null!==this._data&&s(e,this._data.mouseLeaveHandler)}tryCallMouseMoveHandler(e){return null!==this._data&&s(e,this._data.mouseMoveHandler)}tryCallClickOrTapHandler(e){return null!==this._data&&s(e,this._data.clickHandler,this._data.tapHandler)}tryCallDblClickOrDblTapHandler(e){return null!==this._data&&s(e,this._data.doubleClickHandler,this._data.doubleTapHandler)}tryCallContextMenuHandler(e){return null!==this._data&&s(e,this._data.contextMenuHandler,this._data.touchContextMenuHandler)}eraseMarker(){return this._eraseMarker}}o.MOVEPOINT_BACKGROUND=1,o.REGULAR=2,o.MOVEPOINT=3,o.CHANGEPOINT=4,o.CUSTOM=5},22221:(e,t,i)=>{"use strict";i.d(t,{HorizontalLinePaneView:()=>n});var s=i(40254),r=i(43891);class n{constructor(){this._lineRendererData={y:0,color:"rgba(0, 0, 0, 0)",linewidth:1,linestyle:r.LINESTYLE_SOLID,visible:!1},this._lineRenderer=new s.HorizontalLineRenderer,this._invalidated=!0,this._lineRenderer.setData(this._lineRendererData)}update(e){this._invalidated=!0}renderer(){return this._invalidated&&(this._updateImpl(),this._invalidated=!1),this._lineRenderer}}},27759:(e,t,i)=>{"use strict";var s,r;i.d(t,{PlDisplay:()=>s,TradingSourcesHorizontalAlignment:()=>r,tradingPreferencesDefault:()=>n,CustomSourceLayer:()=>o}),function(e){e[e.Money=0]="Money",e[e.Pips=1]="Pips",e[e.Percentage=2]="Percentage"}(s||(s={})),function(e){e[e.Left=0]="Left",e[e.Center=1]="Center",e[e.Right=2]="Right"}(r||(r={}));const n={showPositions:!1,positionPL:{
visibility:!1,display:s.Money},bracketsPL:{visibility:!1,display:s.Money},showOrders:!1,showExecutions:!1,showExecutionsLabels:!1,showReverse:!1,extendLeft:!1,lineLength:0,horizontalAlignment:r.Right,lineWidth:0,lineStyle:0};var o;!function(e){e[e.Background=0]="Background",e[e.Foreground=1]="Foreground",e[e.Topmost=2]="Topmost"}(o||(o={}))},29823:(e,t,i)=>{"use strict";i.r(t),i.d(t,{ResolutionKind:()=>n,SpecialResolutionKind:()=>o,Interval:()=>h,isHour:()=>u});const s=/^(\d*)([TSHDWMR])$/,r=/^(\d+)$/;var n,o;!function(e){e.Ticks="ticks",e.Seconds="seconds",e.Minutes="minutes",e.Days="days",e.Weeks="weeks",e.Months="months",e.Range="range",e.Invalid="invalid"}(n||(n={})),function(e){e.Hours="hours"}(o||(o={}));const a={};a[n.Ticks]=1e3,a[n.Seconds]=1e3,a[n.Minutes]=60*a[n.Seconds],a[n.Days]=1440*a[n.Minutes],a[n.Weeks]=7*a[n.Days];const l={T:n.Ticks,S:n.Seconds,D:n.Days,W:n.Weeks,M:n.Months,R:n.Range},c=new Set([n.Ticks,n.Seconds,n.Minutes]);class h{constructor(e,t){this._kind=n.Invalid,this._multiplier=0,e!==n.Invalid&&t>0&&(this._kind=e,this._multiplier=t)}kind(){return this._kind}multiplier(){return this._multiplier}isValid(){return this.kind()!==n.Invalid&&this.multiplier()>0}isDWM(){return this.isValid()&&!this.isRange()&&!this.isIntraday()&&!this.isTicks()}isIntraday(){const e=c.has(this.kind());return this.isValid()&&e}isSeconds(){return this.kind()===n.Seconds}isMinutes(){return this.kind()===n.Minutes}isMinuteHours(){return this.kind()===n.Minutes&&u(this.multiplier())}isDays(){return this.kind()===n.Days}isWeeks(){return this.kind()===n.Weeks}isMonths(){return this.kind()===n.Months}isRange(){return this.kind()===n.Range}isTicks(){return this.kind()===n.Ticks}isTimeBased(){return!this.isRange()}letter(){return this.isValid()&&this.kind()!==n.Minutes?this.kind()[0].toUpperCase():""}value(){return this.isValid()?this.kind()===n.Minutes?this.multiplier()+"":this.multiplier()+this.letter():""}isEqualTo(e){if(!(e instanceof h))throw new Error("Argument is not an Interval");return!(!this.isValid()||!e.isValid())&&(this.kind()===e.kind()&&this.multiplier()===e.multiplier())}inMilliseconds(e=Date.now()){if(!this.isValid()||this.isRange())return NaN;if(this.isMonths()){const t=new Date(e);t.setUTCMonth(t.getUTCMonth()+(this.multiplier()||1));return+t-e}const t=this.multiplier();return a[this.kind()]*t}static isEqual(e,t){return e===t||h.parse(e).isEqualTo(h.parse(t))}static parseExt(e){e=(e+"").toUpperCase().split(",")[0];let t=s.exec(e);return null!==t?"H"===t[2]?{interval:new h(n.Minutes,60*d(t[1])),guiResolutionKind:o.Hours}:{interval:new h(l[t[2]],d(t[1])),guiResolutionKind:l[t[2]]}:(t=r.exec(e),null!==t?{interval:new h(n.Minutes,d(t[1])),guiResolutionKind:n.Minutes}:{interval:new h(n.Invalid,0),guiResolutionKind:n.Invalid})}static parse(e){return h.parseExt(e).interval}static kind(e){return h.parse(e).kind()}static isValid(e){return h.parse(e).isValid()}static isDWM(e){return h.parse(e).isDWM()}static isIntraday(e){return h.parse(e).isIntraday()}static isSeconds(e){return h.parse(e).isSeconds()}
static isMinutes(e){return h.parse(e).isMinutes()}static isMinuteHours(e){return h.parse(e).isMinuteHours()}static isDays(e){return h.parse(e).isDays()}static isWeeks(e){return h.parse(e).isWeeks()}static isMonths(e){return h.parse(e).isMonths()}static isRange(e){return h.parse(e).isRange()}static isTicks(e){return h.parse(e).isTicks()}static isTimeBased(e){return h.parse(e).isTimeBased()}static normalize(e){const t=h.parse(e);return t.isValid()?t.value():null}}function d(e){return 0===e.length?1:parseInt(e,10)}function u(e){return e>=60&&!(e%60)}},52418:(e,t,i)=>{"use strict";i.d(t,{intervalsVisibilitiesDefaults:()=>s});const s={ticks:!0,seconds:!0,secondsFrom:1,secondsTo:59,minutes:!0,minutesFrom:1,minutesTo:59,hours:!0,hoursFrom:1,hoursTo:24,days:!0,daysFrom:1,daysTo:366,weeks:!0,weeksFrom:1,weeksTo:52,months:!0,monthsFrom:1,monthsTo:12,ranges:!0}},20838:(e,t,i)=>{"use strict";i.d(t,{IntervalsVisibilitiesProperty:()=>n});var s=i(2015),r=i.n(s);i(36759);class n extends(r()){state(e){return super.state(e)}storeStateIfUndefined(){return!1}}},36759:(e,t,i)=>{"use strict";i.d(t,{makeIntervalsVisibilitiesVisibleAtInterval:()=>a,isActualInterval:()=>c,nonDefaultIntervalsVisibilities:()=>h,mergeIntervalVisibilitiesDefaults:()=>d});var s=i(88537),r=i(29823),n=i(52418),o=i(80643);function a(e,t){let i=t.multiplier();if(t.isTicks()&&(e.ticks=!0),t.isSeconds()&&(i<60?(e.seconds=!0,e.secondsFrom=Math.min(e.secondsFrom,i),e.secondsTo=Math.max(e.secondsTo,i)):(i/=60,t=new r.Interval(r.ResolutionKind.Minutes,i))),t.isMinutes())if(i<60)e.minutes=!0,e.minutesFrom=Math.min(e.minutesFrom,i),e.minutesTo=Math.max(e.minutesTo,i);else{const t=Math.floor(i/60);e.hours=!0,e.hoursFrom=Math.min(e.hoursFrom,t),e.hoursTo=Math.max(e.hoursTo,t)}t.isDays()&&(e.days=!0,e.daysFrom=Math.min(e.daysFrom,i),e.daysTo=Math.max(e.daysTo,i)),t.isWeeks()&&(e.weeks=!0,e.weeksFrom=Math.min(e.weeksFrom,i),e.weeksTo=Math.max(e.weeksTo,i)),t.isMonths()&&(e.months=!0,e.monthsFrom=Math.min(e.monthsFrom,i),e.monthsTo=Math.max(e.monthsTo,i)),t.isRange()&&(e.ranges=!0)}function l(e,t,i,s){return e&&s>=t&&s<=i}function c(e,t){const i=t.childs();switch(e.kind()){case r.ResolutionKind.Ticks:return i.ticks.value();case r.ResolutionKind.Seconds:if(e.multiplier()<60)return l(i.seconds.value(),i.secondsFrom.value(),i.secondsTo.value(),e.multiplier());{const t=Math.floor(e.multiplier()/60);return l(i.minutes.value(),i.minutesFrom.value(),i.minutesTo.value(),t)}case r.ResolutionKind.Minutes:if(e.multiplier()<60)return l(i.minutes.value(),i.minutesFrom.value(),i.minutesTo.value(),e.multiplier());{const t=Math.floor(e.multiplier()/60);return l(i.hours.value(),i.hoursFrom.value(),i.hoursTo.value(),t)}case r.ResolutionKind.Days:return l(i.days.value(),i.daysFrom.value(),i.daysTo.value(),e.multiplier());case r.ResolutionKind.Weeks:return l(i.weeks.value(),i.weeksFrom.value(),i.weeksTo.value(),e.multiplier());case r.ResolutionKind.Months:return l(i.months.value(),i.monthsFrom.value(),i.monthsTo.value(),e.multiplier());case r.ResolutionKind.Range:return i.ranges.value()}return(0,
s.assert)(!1,"Unsupported resolution: "+e.value()),!1}function h(e){const t=Object.keys(e).filter(t=>n.intervalsVisibilitiesDefaults[t]!==e[t]);return 0===t.length?null:t.reduce((t,i)=>(t[i]=e[i],t),{})}function d(e){return(0,o.merge)((0,o.clone)(n.intervalsVisibilitiesDefaults),null!=e?e:{})}},35878:(e,t,i)=>{"use strict";function s(e){return Boolean(e.showInObjectTree)}i.d(t,{isDataSource:()=>s})},95836:(e,t,i)=>{"use strict";var s;i.d(t,{SymbolErrorPermissionDeniedReason:()=>s,permissionDenied:()=>r,invalidSymbol:()=>n}),function(e){e.Symbol="symbol",e.GroupPermission="group"}(s||(s={}));const r="permission denied",n="invalid symbol"},79680:(e,t,i)=>{"use strict";function s(e){const t=(null==e?void 0:e.symbolSource)&&e.symbolSource()===e,i=void 0!==(null==e?void 0:e.isActingAsSymbolSource);return t||i}function r(e){return s(e)&&e.isActingAsSymbolSource().value()}i.d(t,{isSymbolSource:()=>s,isActingAsSymbolSource:()=>r})},34580:(e,t,i)=>{"use strict";i.d(t,{LevelsProperty:()=>p});var s=i(80643),r=i(88564),n=i(59803);const o={prefixes:[""],range:[0,0],names:["coeff","color","visible","linestyle","linewidth"],typecheck:{pack:()=>Object(),unpack:()=>[]}};function a(e,t,i,s){return s.push(i[t]),s}function l(e,t,i,s){return s[t]=i[e],s}function c(){return[]}function h(){return{}}function d(e,t,i){return i.prefixes.forEach(r=>{const n=r+"level";for(let r=i.range[0];r<=i.range[1];r++)if(e[n+r]&&(0,s.isSameType)(e[n+r],t.typecheck())){let s=t.tpl();i.names.forEach((i,o)=>{s=t.fill(""+o,i,e[n+r],s)}),e[n+r]=s}}),e}function u(e,t,i){return i(e,{tpl:h,fill:l,typecheck:t.typecheck.unpack},t)}class p extends r.DefaultProperty{constructor(e,t,i,s,r){r=null!=r?r:d;const n={...o,...null!=s?s:{}};super(e,t?u(t,n,r):t,i),this._map=n,this._levelsIterator=r}state(e,t){const i=super.state(e);return t?i:(s=i,r=this._map,(0,this._levelsIterator)(s,{tpl:c,fill:a,typecheck:r.typecheck.pack},r));var s,r}saveDefaults(){this._useUserPreferences&&(0,n.saveDefaults)(this._defaultName,this.state(this._exclusions,!0))}clone(){const e=this.state(),t=new p(this._defaultName,e);for(let e=0;e{"use strict";i.d(t,{LineToolsGroup:()=>l});var s=i(2872),r=i.n(s),n=i(9423);function o(e){return e.properties().visible.value()}function a(e){return!o(e)}class l{constructor(e,t,i){this._instanceId=(0,n.randomHashN)(6),this._onChanged=new(r()),this._lineToolsSet=new Set,this._lineTools=[...e],this._lineToolsSet=new Set(this._lineTools),this._name=t,this.id=i||(0,n.randomHashN)(6)}instanceId(){return this._instanceId}lineTools(){return this._lineTools}name(){return this._name}setName(e){this._doAndFireOnChange(()=>{this._name=e})}isActualSymbol(){return this._lineTools.length>0&&this._lineTools[0].isActualSymbol()&&this._lineTools[0].isActualCurrency()&&this._lineTools[0].isActualUnit()}symbol(){return this._lineTools[0].symbol()}currencyId(){var e
;return null!==(e=this._lineTools[0].properties().childs().currencyId.value())&&void 0!==e?e:null}unitId(){var e;return null!==(e=this._lineTools[0].properties().childs().unitId.value())&&void 0!==e?e:null}sharingMode(){return this._lineTools[0].sharingMode()}share(e){this._lineTools.forEach(t=>t.share(e))}containsLineTool(e){return this._lineToolsSet.has(e)}addLineTools(e){this._doAndFireOnChange(t=>{e.forEach(e=>this._lineToolsSet.add(e)),this._lineTools.push(...e),t.push(...e.map(e=>e.id()))})}excludeLineTool(e){this._doAndFireOnChange(t=>{this._lineToolsSet.delete(e);const i=this._lineTools.indexOf(e);this._lineTools.splice(i,1),t.push(e.id())})}excludeLineTools(e){this._doAndFireOnChange(t=>{const i=new Set(e);e.forEach(e=>this._lineToolsSet.delete(e)),this._lineTools=this._lineTools.filter(e=>!i.has(e)),t.push(...e.map(e=>e.id()))})}state(){return{id:this.id,name:this._name,tools:this._lineTools.map(e=>e.id())}}visibility(){const e=this._lineTools.some(o),t=this._lineTools.some(a);return e&&!t?"Visible":t&&!e?"Invisible":"Partial"}locked(){const e=this._lineTools.some(e=>e.properties().frozen.value()),t=this._lineTools.some(e=>!e.properties().frozen.value());return e&&!t?"Locked":t&&!e?"Unlocked":"Partial"}isActualInterval(){const e=this._lineTools.some(e=>e.isActualInterval()),t=this._lineTools.some(e=>!e.isActualInterval());return e&&!t?"IsActualInterval":t&&!e?"IsNotActualInterval":"Partial"}onChanged(){return this._onChanged}static fromState(e,t){const i=[];for(const s of t.tools){const t=e.dataSourceForId(s);null!==t&&i.push(t)}return i.length>0?new l(i,t.name,t.id):null}_doAndFireOnChange(e){const t=[],i=this.visibility(),s=this.locked(),r=this.name(),n=this.isActualInterval();e(t),this._onChanged.fire({affectedLineTools:t,visibilityChanged:i!==this.visibility(),lockedChanged:s!==this.locked(),titleChanged:r!==this.name(),isActualIntervalChanged:n!==this.isActualInterval()})}}},656:(e,t,i)=>{"use strict";i.d(t,{LineTool5PointsPattern:()=>a});var s=i(88537),r=i(88564),n=i(89857),o=i(37865);class a extends n.LineDataSource{constructor(e,t,i,s){super(e,t||a.createProperties(),i,s),this._loadPaneViews(e)}pointsCount(){return 5}name(){return"XABCD Pattern"}static createProperties(e){const t=new r.DefaultProperty("linetool5pointspattern",e);return a._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,93262)).then(e=>e.PatternWithBackgroundDefinitionViewModel)}_loadPaneViews(e){i.e(1583).then(i.bind(i,46010)).then(t=>{this._setPaneViews([new t.Pattern5pointsPaneView(this,e)])})}static _configureProperties(e){n.LineDataSource._configureProperties(e),e.addChild("linesColors",new o.LineToolColorsProperty([(0,s.ensureDefined)(e.child("color"))])),e.addChild("textsColors",new o.LineToolColorsProperty([(0,s.ensureDefined)(e.child("textcolor"))]))}}},82203:(e,t,i)=>{"use strict";i.d(t,{LineToolABCD:()=>a});var s=i(88537),r=i(88564),n=i(89857),o=i(37865);class a extends n.LineDataSource{constructor(e,t,s,r){const n=t||a.createProperties()
;super(e,n,s,r),i.e(1583).then(i.bind(i,5040)).then(t=>{this._setPaneViews([new t.ABCDPaneView(this,e)])})}pointsCount(){return 4}name(){return"ABCD Pattern"}static createProperties(e){const t=new r.DefaultProperty("linetoolabcd",e);return a._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,98890)).then(e=>e.PatternWithoutBackgroundDefinitionsViewModel)}static _configureProperties(e){n.LineDataSource._configureProperties(e),e.addChild("linesColors",new o.LineToolColorsProperty([(0,s.ensureDefined)(e.child("color"))])),e.addChild("textsColors",new o.LineToolColorsProperty([(0,s.ensureDefined)(e.child("textcolor"))]))}}},17337:(e,t,i)=>{"use strict";i.d(t,{LineToolArc:()=>h});var s=i(88537),r=i(4652),n=i(86441),o=i(25422),a=i(88564),l=i(89857),c=i(37865);class h extends l.LineDataSource{constructor(e,t,s,r){const n=t||h.createProperties();super(e,n,s,r),this.version=2,this._dist=null,i.e(1583).then(i.bind(i,24843)).then(({ArcPaneView:t})=>{const i=[new t(this,e)];this._setPaneViews(i)})}startChanging(e,t){if(super.startChanging(e,t),0===e||1===e){const e=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[0])),t=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[1])),i=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[2]));this._dist=(0,r.distanceToLine)(e,t,i).distance;const o=t.subtract(e),a=new n.Point(-o.y,o.x),l=e.add(t).scaled(.5);i.subtract(l).dotProduct(a)<0&&(this._dist=-this._dist)}}endChanging(e,t){return this._dist=null,super.endChanging(e,t)}pointsCount(){return 3}name(){return"Arc"}hasEditableCoordinates(){return!1}setPoint(e,t){const i={...t},a=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[0])),l=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[1]));switch(e){case 0:{const e=(0,s.ensureNotNull)(this._dist),t=(0,s.ensureNotNull)(this.pointToScreenPoint(i)),r=l.subtract(t),o=t.add(l).scaled(.5);let a=new n.Point(-r.y,r.x);a=a.normalized();const c=o.add(a.scaled(e));this._points[0]=i,this._points[2]=(0,s.ensureNotNull)(this.screenPointToPoint(c));break}case 1:{const e=(0,s.ensureNotNull)(this._dist),t=(0,s.ensureNotNull)(this.pointToScreenPoint(i)),r=t.subtract(a),o=a.add(t).scaled(.5),l=new n.Point(-r.y,r.x).normalized(),c=o.add(l.scaled(e));this._points[1]=i,this._points[2]=(0,s.ensureNotNull)(this.screenPointToPoint(c));break}case 2:{let e=(0,s.ensureNotNull)(this.pointToScreenPoint(i));const t=(0,r.distanceToLine)(a,l,e).distance,c=l.subtract(a),h=a.add(l).scaled(.5),d=new n.Point(-c.y,c.x).normalized(),u=h.add(d.scaled(t)),p=h.add(d.scaled(-t)),_=c.length(),m=c.x/_,g=c.y/_;let f=Math.acos(m);g<0&&(f=-f);let v=(0,o.translationMatrix)(-h.x,-h.y);e=(0,o.transformPoint)(v,e);let S=(0,o.transformPoint)(v,u);v=(0,o.rotationMatrix)(-f),e=(0,o.transformPoint)(v,e),S=(0,o.transformPoint)(v,S),v=(0,o.scalingMatrix)(1,_/(2*t)),e=(0,o.transformPoint)(v,e),S=(0,o.transformPoint)(v,S);const y=e.y*S.y>=0?new n.Point(u.x,u.y):new n.Point(p.x,p.y);this._points[2]=(0,
s.ensureNotNull)(this.screenPointToPoint(y));break}}this.normalizePoints()}migrateVersion(e,t,i){if(1===e&&2===this._points.length){const e=(2*this._points[0].price+3*this._points[1].price)/5;this._points.push({price:e,index:this._points[1].index})}if(1===e&&2===this._timePoint.length){const e={price:(2*this._timePoint[0].price+3*this._timePoint[1].price)/5,offset:this._timePoint[1].offset,time_t:this._timePoint[1].time_t};this._timePoint.push(e)}}static createProperties(e){const t=new a.DefaultProperty("linetoolarc",e);return h._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,24965))).GeneralFiguresDefinitionsViewModelBase}static _configureProperties(e){l.LineDataSource._configureProperties(e),e.addChild("linesColors",new c.LineToolColorsProperty([e.childs().color]))}}},18659:(e,t,i)=>{"use strict";i.d(t,{LineToolArrowMark:()=>l,LineToolArrowMarkLeft:()=>c,LineToolArrowMarkUp:()=>h,LineToolArrowMarkRight:()=>d,LineToolArrowMarkDown:()=>u});var s=i(88564),r=i(89857),n=i(2015),o=i.n(n),a=i(37865);class l extends r.LineDataSource{constructor(e,t,s,r,n){const o=t||l.createProperties(null,s);super(e,o,r,n),this._textPaneView=null,i.e(1583).then(i.bind(i,71407)).then(({ArrowMarkPaneView:t})=>{const i=[new t(this,e)];this._setPaneViews(i)})}paneViews(e){const t=super.paneViews();return null!==t&&this._textPaneView&&t.push(this._textPaneView),t}pointsCount(){return 1}template(){const e=super.template();return e.text=this.properties().childs().text.value(),e}static createProperties(e,t){const i=new s.DefaultProperty(t,e);return l._configureProperties(i),i}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,72930)).then(e=>e.ArrowMarkDefinitionsViewModel)}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text)}static _configureProperties(e){r.LineDataSource._configureProperties(e),e.addChild("linesColors",new a.LineToolColorsProperty([e.childs().arrowColor])),e.addChild("textsColors",new a.LineToolColorsProperty([e.childs().color])),e.hasChild("text")||e.addChild("text",new(o())("")),e.addExclusion("text")}}l.version=2;class c extends l{constructor(e,t,i,s){super(e,t,"linetoolarrowmarkleft",i,s)}direction(){return"left"}name(){return"Arrow Mark Left"}textAlignParams(){return{horzAlign:"left",vertAlign:"middle",offsetX:22,offsetY:3}}static createProperties(e){return l.createProperties(e,"linetoolarrowmarkleft")}}class h extends l{constructor(e,t,i,s){super(e,t,"linetoolarrowmarkup",i,s)}direction(){return"up"}name(){return"Arrow Mark Up"}textAlignParams(){return{horzAlign:"center",vertAlign:"top",offsetX:0,offsetY:20}}static createProperties(e){return l.createProperties(e,"linetoolarrowmarkup")}}class d extends l{constructor(e,t,i,s){super(e,t,"linetoolarrowmarkright",i,s)}direction(){return"right"}name(){return"Arrow Mark Right"}textAlignParams(){return{horzAlign:"right",vertAlign:"middle",offsetX:22,offsetY:3,forceTextAlign:!0}}
static createProperties(e){return l.createProperties(e,"linetoolarrowmarkright")}}class u extends l{constructor(e,t,i,s){super(e,t,"linetoolarrowmarkdown",i,s)}direction(){return"down"}name(){return"Arrow Mark Down"}textAlignParams(){return{horzAlign:"center",vertAlign:"bottom",offsetX:0,offsetY:20}}static createProperties(e){return l.createProperties(e,"linetoolarrowmarkdown")}}},10167:(e,t,i)=>{"use strict";i.d(t,{LineToolArrowMarker:()=>a});var s=i(89857),r=i(88564),n=i(2015),o=i.n(n);class a extends s.LineDataSource{constructor(e,t,s,r){super(e,null!=t?t:a.createProperties(),s,r),i.e(1583).then(i.bind(i,39833)).then(({ArrowMarkerPaneView:e})=>{this._setPaneViews([new e(this,this.model())])})}pointsCount(){return 2}name(){return"Trend Line"}static createProperties(e){const t=new r.DefaultProperty("linetoolarrowmarker",e);return a._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,92138)).then(e=>e.ArrowMarkerDefinitionsViewModel)}static _configureProperties(e){s.LineDataSource._configureProperties(e),e.hasChild("text")||e.addChild("text",new(o())("")),e.addExclusion("text")}}},59358:(e,t,i)=>{"use strict";var s=i(57649).LineToolTrendLine,r=i(88564).DefaultProperty;class n extends s{constructor(e,t,i,s){super(e,t||n.createProperties(),i,s)}name(){return"Arrow"}static createProperties(e){var t=new r("linetoolarrow",e);return n._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e)}}t.LineToolArrow=n},57666:(e,t,i)=>{"use strict";i.d(t,{LineToolBalloon:()=>h});var s=i(28353),r=i(88564),n=i(89857),o=i(2015),a=i.n(o),l=i(37865);const c=(0,s.t)("Comment");class h extends n.LineDataSource{constructor(e,t,s,r){const n=t||h.createProperties();super(e,n,s,r),i.e(1583).then(i.bind(i,17952)).then(t=>{this._setPaneViews([new t.BalloonPaneView(this,e)])})}pointsCount(){return 1}name(){return"Balloon"}template(){const e=super.template();return e.text=this.properties().childs().text.value(),e}static createProperties(e){const t=new r.DefaultProperty("linetoolballoon",e);return h._configureProperties(t),t}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text)}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,60991)).then(e=>e.BalloonDefinitionsViewModel)}static _configureProperties(e){n.LineDataSource._configureProperties(e),e.hasChild("text")||e.addChild("text",new(a())(c)),e.addExclusion("text"),e.addChild("linesColors",new l.LineToolColorsProperty([e.childs().borderColor])),e.addChild("textsColors",new l.LineToolColorsProperty([e.childs().color]))}}},4676:(e,t,i)=>{"use strict";i.d(t,{BarsMarksContainer:()=>T});var s=i(88537),r=i(98125),n=i(56840),o=i.n(n),a=i(67337),l=i(89857),c=i(2872),h=i.n(c),d=i(29823),u=i(80643),p=i(37667);class _{constructor(e,t){this.source=e,this._rendererFactory=t}update(){}renderer(e,t){return this._rendererFactory(this.source)}}var m=i(16282),g=i(22799),f=i(86441),v=i(84346),S=i(34026);const y={
green:{border:"#78C143",background:"#8DDD54"},red:{border:"#CC4545",background:"#ED5A5A"},neutral:{border:"#EAC300",background:"#FFD400"},yellow:{border:"#EAC300",background:"#FFD400"},blue:{border:"#047ACE",background:"#0496FF"}};class b extends m.ScaledPaneRenderer{constructor(e,t){super(),this._highlightByAuthor=!1,this._barWidth=e.barWidth,this._plates=e.plates,this._tooltip=e.tooltip,this._model=t}hitTest(e){for(let t=this._plates.length-1;t>=0;--t){const i=this._hitTestDot(this._plates[t],e);if(i)return i}return null}_drawImpl(e){var t,i;e.save();for(let e=0;ethis._plateTransform(e));null===(t=this._tooltip)||void 0===t||t.draw(s,e),null===(i=this._tooltip)||void 0===i||i.endDraw(),e.restore()}_drawItem(e,t){e.save(),this._highlightByAuthor&&!t.highlightByAuthor&&(e.globalAlpha=.4);const i=this._dotTransform(t);i.mine?this._drawTriangle(e,i):this._drawDot(e,i),e.restore()}_commonTransform(e){const t=Math.max(1.4*e.minSize,this._barWidth+4),i={up:-1,down:1}[e.direction]*(e.yInverted?-1:1)*(t*(e.order+.6)+.25*t),s=e.y+i,r=(0,u.clone)(e.overridedTheme||y[e.theme]);return r.dotBorderWidth=e.hovered||e.highlightByAuthor?4:2,{id:e.id,theme:r,themeName:e.theme,x:Math.round(e.x+1),y:Math.round(s),yInverted:e.yInverted,pinned:Boolean(e.pinned),hovered:Boolean(e.hovered)}}_dotTransform(e){const t=Math.max(e.minSize/2,.4*this._barWidth),i={...this._commonTransform(e),radius:t,label:e.label,labelFontColor:e.labelFontColor,labelFontSize:Math.ceil(Math.max(10,Math.min(t,20)))};return this._model.updateDotData(e,i)}_plateTransform(e){const t=this._commonTransform(e);return this._model.updatePlateData(e,t)}_drawTriangle(e,t){e.strokeStyle=t.theme.border,e.fillStyle=t.theme.background,e.lineWidth=t.theme.dotBorderWidth||2;const i=t,s=t.radius,r=Math.cos(Math.PI/6)*s,n=Math.sin(Math.PI/6)*s;e.translate(i.x,i.y);"up"===t.direction!==t.yInverted&&e.rotate(Math.PI),t.public||(e.lineWidth/=2),e.beginPath(),e.moveTo(0,-s),e.lineTo(r,n),e.lineTo(-r,n),e.lineTo(0,-s),e.closePath(),e.stroke(),t.public&&e.fill()}_drawDot(e,t){e.strokeStyle=t.theme.border,e.fillStyle=t.theme.background,e.lineWidth=t.theme.dotBorderWidth||2,e.beginPath(),e.arc(t.x,t.y,t.radius,0,2*Math.PI,!0),e.closePath(),e.stroke(),e.fill(),t.label&&t.radius>=7&&(e.textAlign="center",e.textBaseline="middle",e.font="bold "+t.labelFontSize+"px "+g.CHART_FONT_FAMILY,e.fillStyle=t.labelFontColor,e.fillText(t.label,t.x,t.y))}_hitTestDot(e,t){const i=this._dotTransform(e),s=new f.Point(i.x,i.y);return(0,S.pointInCircle)(t,s,Math.max(i.radius,8))?new v.HitTestResult(v.HitTestResult.REGULAR,{activeItem:e}):null}}var w=i(88564);const C=(0,r.getLogger)("Chart.BarsMarksContainer"),P=Math.round(new Date(2037,0,1).getTime()/1e3);class T extends l.LineDataSource{constructor(e,t,i,r){const n=e.onWidget();let c;if(c=n?!e.hideIdeas():!!a.enabled("bars_marks")&&o().getBool("BarsMarksContainer.visibile",!1),t)t.merge({
visible:c,frozen:!1});else{t=new w.DefaultProperty("barmarks",{visible:c,frozen:!1})}t.childs().visible.listeners().subscribe(null,t=>{n||e.isSnapshot()||!a.enabled("bars_marks")||o().setValue("BarsMarksContainer.visibile",!!t.value()),this._tooltip&&this._tooltip.removeAll()}),l.LineDataSource._configureProperties(t),super(e,t,i,r),this.onNeedRepaint=new(h()),this._requests=[],this._marks={},this._loadedRange=null,this._getDataTimeout=null,this._collectedRange=null,this._lastRange=null,this._model.mainSeries().onSymbolIntervalChanged().subscribe(this,this.clearMarks),this._model.mainSeries().dataEvents().symbolResolved().subscribe(this,this.clearMarks),this._model.mainSeries().dataEvents().completed().subscribe(this,()=>{var e,t;const i=this._model.mainSeries().data();if(0===i.size())return;const r=(0,s.ensureNotNull)(i.first()).index,n=(0,s.ensureNotNull)(i.last()).index,o=this.timeScale();this.getData({start:null!==(e=o.indexToTimePoint(r))&&void 0!==e?e:1/0,end:null!==(t=o.indexToTimePoint(n))&&void 0!==t?t:-1/0})}),this._initialize(),this._pinnedTooltips={},this._tooltip=this._createTooltipRenderer()}marks(){return this._marks}updateDotData(e,t){return t}isAvailableInFloatingWidget(){return!1}pinTooltip(e,t){this._pinnedTooltips[e]=t}timeScale(){return this._model.timeScale()}getIntervalInTicks(){const e=this._model.mainSeries().properties().childs().interval.value(),t=d.Interval.parse(e);if(!t.isValid())throw new TypeError("Unexpected interval");return t.isRange()?60:t.inMilliseconds()/1e3}getVisibleTickMarksRange(){var e,t;if(this.timeScale().isEmpty())return{start:0,end:0};const i=(0,s.ensureNotNull)(this.timeScale().visibleBarsStrictRange()),r=(0,s.ensureNotNull)(this.timeScale().points().firstIndex()),n=(0,s.ensureNotNull)(this.timeScale().points().lastIndex());if(!(i.lastBar()>r&&i.firstBar(){var r,n;const o=this._marks[s],a=o.tickmark;a>=(null!==(r=t.start)&&void 0!==r?r:1/0)&&a<=(null!==(n=t.end)&&void 0!==n?n:-1/0)+i&&e.push(o)}),e}getPublishedPlates(){const e={};return window.is_authenticated?(this.getVisibleRangePlates().forEach(t=>{t.is_public&&(this._pinnedTooltips[t.id]||t.user__id===window.user.id)&&(e[t.id]=t)}),e):e}filterDisplayedPlates(e){const t=e.reduce((e,t)=>{const i=this._getIndex(t.tickmark);return null!==i&&(e[i]=e[i]||[],e[i].push(t)),e},{});return Object.keys(t).reduce((e,i)=>{let s=t[i];return s=s.sort((e,t)=>t.views_count-e.views_count),s=s.slice(0,10),e.concat(s)},[])}getViewData(){return{barWidth:this.barWidth(),plates:this.getPlatesViewData(),tooltip:this._tooltip}}barWidth(){return this.timeScale().barSpacing()}getPlatesViewData(){var e,t,i;const r=this._model.mainSeries()
;if(r.data().isEmpty())return[];const n=(0,p.isPriceSourceStyle)(r.style())?r.barFunction():null,o=this.filterDisplayedPlates(this.getVisibleRangePlates()),a={},l=null!==(e=this._model.lastHittestData())&&void 0!==e?e:this._model.lastSelectedHittestData(),c=[];for(const e of o){const i=(0,s.ensureNotNull)(this._getIndex(e.tickmark)),r=this._getBar(i);if(null===r)continue;const o=this._layout(e.direction),h=this._theme(e.direction);let d=null;null!==l&&this._model.hoveredSource()===this&&(d=null!==(t=l.activeItem)&&void 0!==t?t:null);const p=null!==d&&d.id===e.id,_=this.timeScale().indexToCoordinate(i),m=this._offset(o,r,n),g=(0,s.ensureNotNull)(this.priceScale()).isInverted();let f=0;i in a||(a[i]={up:0,down:0}),f=a[i][o]++,c.push((0,u.merge)({id:e.id,x:_,y:m,yInverted:g,order:f,direction:o,theme:h,hovered:p,pinned:!0===this._pinnedTooltips[e.id],user__id:e.user__id,label:e.label,labelFontColor:e.labelFontColor||"#444",minSize:e.minSize||5},this._plateViewData(e)))}const h=c.filter(e=>!0===e.hovered);for(let e=0;ee.hovered&&!t.hovered?1:0),c}paneViews(){return this._properties.childs().visible.value()?[new _(this,e=>new b(e.getViewData(),this))]:[]}priceAxisViews(){return null}updateAllViews(){}pointsCount(){return 0}roundRange(e){return{start:Math.round(e.start),end:Math.round(e.end)}}refreshData(){null!==this._lastRange&&this.getData(this._lastRange)}getData(e){(0,u.isNumber)(e.start)&&(0,u.isNumber)(e.end)?(this._lastRange=e,e.end=P,this._pushGetDataStack(Object.assign({},e))):C.logError("Wrong range")}clearMarks(){this._abortAllRequests(),this._marks={},this._loadedRange=null}isUserDeletable(){return!1}_plateViewData(e){return{}}_layout(e){switch(e){default:case 0:return"up";case 1:return"down";case 2:return"up";case 3:case 4:case 5:case 6:return"up"}}_theme(e){switch(e){default:case 0:return"neutral";case 1:return"green";case 2:return"red";case 3:return"yellow";case 4:return"blue";case 5:return"green";case 6:return"red"}}_offset(e,t,i){let r;switch(e){default:case"up":r=null===i?t[2]:i(t);break;case"down":r=null===i?t[3]:i(t)}return(0,s.ensureNotNull)(this.priceScale()).priceToCoordinate(r,(0,s.ensureNotNull)((0,s.ensureNotNull)(this.ownerSource()).firstValue()))}_getIndex(e){return this.timeScale().timePointToIndex(e)}_getBar(e){return this._model.mainSeries().data().valueAt(e)}_rangeDifference(e){return e=Object.assign({start:1/0,end:-1/0},e),this._loadedRange&&(e.startthis._loadedRange.end&&(e.start=this._loadedRange.end)),e}_rangeUnion(e,t){return e=Object.assign({start:1/0,end:-1/0},e),t&&(e.start=Math.min(t.start,e.start),e.end=Math.max(t.end,e.end)),e}_pushGetDataStack(e){(0,u.isNumber)(e.start)&&(0,u.isNumber)(e.end)?(this._getDataTimeout&&clearTimeout(this._getDataTimeout),this._collectedRange=this._rangeUnion(e,this._collectedRange),this._getDataTimeout=setTimeout(()=>{this._getData(this._collectedRange),
this._getDataTimeout=this._collectedRange=null},300)):C.logError("Wrong tickmark range")}_abortAllRequests(){this._requests.forEach(e=>{e.cancel()}),this._requests=[],this._getDataTimeout&&clearTimeout(this._getDataTimeout),this._getDataTimeout=this._collectedRange=null}}},8059:(e,t,i)=>{"use strict";var s;i.d(t,{LineToolBarsPatternMode:()=>s}),function(e){e[e.Bars=0]="Bars",e[e.Line=1]="Line",e[e.OpenClose=2]="OpenClose",e[e.LineOpen=3]="LineOpen",e[e.LineHigh=4]="LineHigh",e[e.LineLow=5]="LineLow",e[e.LineHL2=6]="LineHL2"}(s||(s={}))},98802:(e,t,i)=>{"use strict";i.d(t,{LineToolBarsPattern:()=>S});var s=i(88537),r=i(28353),n=i(24980),o=i(80643),a=i(28296),l=i(88564),c=i(71053),h=i(89857),d=i(8059),u=i(33291);const p=new n.TranslatedString("mirror bars pattern",(0,r.t)("mirror bars pattern")),_=new n.TranslatedString("flip bars pattern",(0,r.t)("flip bars pattern")),m=(0,r.t)("Mirrored"),g=(0,r.t)("Flipped"),f={0:2,1:4,2:1,3:1,4:2,5:3,6:-1},v={0:3,1:4,2:4,3:1,4:2,5:3,6:-1};class S extends h.LineDataSource{constructor(e,t=S.createProperties(),s,r){super(e,t,s,r),this._pattern=[],this._scale=1,this._pointsCoordinatePricesDiff=null;const n=t.childs().mode.value();(0,o.isString)(n)&&t.childs().mode.setValue(parseInt(n)),t.childs().mirrored.listeners().subscribe(this,this._mirror),t.childs().flipped.listeners().subscribe(this,this._flip),t.childs().mode.subscribe(this,this._updateLastPoint),this.version=2,i.e(1583).then(i.bind(i,27106)).then(t=>{this._setPaneViews([new t.BarsPatternPaneView(this,e)])})}pattern(){return this._pattern}isSynchronizable(){return!1}additionalActions(e){return[new a.Action({actionId:"Chart.LineTool.BarsPattern.ToggleMirrored",checked:this.properties().childs().mirrored.value(),checkable:!0,label:m,onExecute:()=>{e.setProperty(this.properties().childs().mirrored,!this.properties().childs().mirrored.value(),p),this.updateAllViews((0,u.dataSourceChangeEvent)(this.id())),this._model.updateSource(this)}}),new a.Action({actionId:"Chart.LineTool.BarsPattern.ToggleFlipped",checked:this.properties().childs().flipped.value(),checkable:!0,label:g,onExecute:()=>{e.setProperty(this.properties().childs().flipped,!this.properties().childs().flipped.value(),_),this.updateAllViews((0,u.dataSourceChangeEvent)(this.id())),this._model.updateSource(this)}})]}pointsCount(){return 2}state(e){return{...super.state(e),pattern:this._pattern,scale:this._scale,diff:this._pointsCoordinatePricesDiff}}restoreData(e){const{pattern:t=this._pattern,scale:i=this._scale,diff:s=this._pointsCoordinatePricesDiff}=e;this._pattern=t,this._scale=i,this._pointsCoordinatePricesDiff=s}name(){return"Bars Pattern"}hasEditableCoordinates(){return!1}cloneData(e){this._pattern=(0,o.clone)(e._pattern),this._scale=e._scale,this._pointsCoordinatePricesDiff=e._pointsCoordinatePricesDiff}firstPatternPrice(){const{mode:e,flipped:t}=this.properties().childs(),i=this._pattern[0];return e.value()===d.LineToolBarsPatternMode.LineHL2?(i[2]+i[3])/2:t.value()?i[v[e.value()]]:i[f[e.value()]]}lastPatternPrice(){
const{mode:e,flipped:t}=this.properties().childs(),i=this._pattern[this._pattern.length-1];return e.value()===d.LineToolBarsPatternMode.LineHL2?(i[2]+i[3])/2:t.value()?i[f[e.value()]]:i[v[e.value()]]}addPoint(e,t,i){const r=super.addPoint(e,t,!0);if(r){const e=this._model.mainSeries(),[{index:t},{index:i}]=this.points(),r=(0,s.ensureDefined)(e.nearestIndex(Math.min(t,i),c.PlotRowSearchMode.NearestRight)),n=(0,s.ensureDefined)(e.nearestIndex(Math.max(t,i),c.PlotRowSearchMode.NearestLeft));this._pattern=this._createPattern(r,n),this._pattern.length>0&&(t>i&&this._points.reverse(),this._points[1].price=this._points[0].price+this._patternPriceDiff(),this._points[1].index=this._points[0].index+(n-r),this.normalizePoints(),this.createServerPoints()),this._updatePointsCoordinatePricesDiff()}return r}setPoint(e,t,i,s){1===e&&t.index<=this._points[0].index&&(t.index=this._points[0].index+1),0===e&&t.index>=this._points[1].index&&(t.index=this._points[1].index-1),super.setPoint(e,t,i),this._updatePointsCoordinatePricesDiff()}move(e,t,i,s){super.move(e,t,i,s),this._updatePointsCoordinatePricesDiff()}migrateVersion(e,t,i){if(1===e&&this._pattern.length>0){const e=this._patternPriceDiff();2===this._timePoint.length&&(this._timePoint[1].price=this._timePoint[0].price+e),2===this._points.length&&(this._points[1].price=this._points[0].price+e)}}getScale(){return this._scale=this._calculateScale()}static createProperties(e){const t=new l.DefaultProperty("linetoolbarspattern",e);return S._configureProperties(t),t}_preparePoint(e,t){var i;const r=this._alignPointToRangeOfActualData(e),n=this._model.mainSeries(),o=(0,s.ensureNotNull)(n.bars().valueAt(r.index));this.properties().childs().mode.value()===d.LineToolBarsPatternMode.Bars?r.price=(0,s.ensure)(o[2]):r.price=(0,s.ensure)(o[4]);const a=(0,s.ensureNotNull)(this.priceScale()),l=(0,s.ensure)(null===(i=this.ownerSource())||void 0===i?void 0:i.firstValue()),c=.05*a.height(),h=a.priceToCoordinate(r.price,l)-c;return r.price=a.coordinateToPrice(h,l),super._preparePoint(r,t)}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,14725))).BarsPatternDefinitionsViewModel}static _configureProperties(e){h.LineDataSource._configureProperties(e),e.addExclusion("mirrored"),e.addExclusion("flipped")}_calculatePatternCoordinatePricesDiff(){var e;return this._pattern.length>0&&null!==(e=this._priceCoordinateDiff([this.firstPatternPrice(),this.lastPatternPrice()]))&&void 0!==e?e:null}_updatePointsCoordinatePricesDiff(){this._pointsCoordinatePricesDiff=this._calculatePointsCoordinatePricesDiff()}_calculatePointsCoordinatePricesDiff(){var e;if(2===this._points.length){const[{price:t},{price:i}]=this.points();return null!==(e=this._priceCoordinateDiff([t,i]))&&void 0!==e?e:null}return null}_createPattern(e,t){const i=this._model.mainSeries().data(),r=[];for(let n=e;n<=t;n++)r.push((0,o.clone)((0,s.ensureNotNull)(i.valueAt(n))));return r}_switchPointsPrice(){const e=this._points[0].price
;this._timePoint[0].price=this._points[0].price=this._points[1].price,this._timePoint[1].price=this._points[1].price=e}_mirror(){const e=this._pattern;let t=Math.min(e[0][3],e[0][2]),i=Math.max(e[0][3],e[0][2]);for(let s=1;ss-(e-s);for(let t=0;ts.priceToCoordinate(e,r))}_priceCoordinateDiff(e){const t=this._pricesToCoordinates(e);if(t)return t[1]-t[0]}_calculateScale(){let e=1;if(2===this._points.length){const t=this._calculatePatternCoordinatePricesDiff();if(!t)return e;const i=this._calculatePointsCoordinatePricesDiff();if(t&&null!==i&&(e=+(i/t).toFixed(8)),this._pointsCoordinatePricesDiff!==i){if(this._scale!==e)return this._updateLastPoint(),this._scale;this._updatePointsCoordinatePricesDiff()}}return e}_updateLastPoint(){var e,t;if(this._points.length<2)return;const i=this.priceScale(),s=null!==(t=null===(e=this.ownerSource())||void 0===e?void 0:e.firstValue())&&void 0!==t?t:null;if(null===s||null===i||i.isEmpty())return;const r=this._calculatePatternCoordinatePricesDiff(),n=this._pricesToCoordinates([this.points()[0].price]);null!==r&&n&&(this._timePoint[1].price=this._points[1].price=i.coordinateToPrice(+(this._scale*r).toFixed(8)+n[0],s),this._updatePointsCoordinatePricesDiff())}}},47679:(e,t,i)=>{"use strict";i.d(t,{LineToolBezierCubic:()=>o});var s=i(88537),r=i(88564),n=i(89857);class o extends n.LineDataSource{constructor(e,t,s,r){const n=t||o.createProperties();super(e,n,s,r),this._controlPoints=null,i.e(1583).then(i.bind(i,11933)).then(t=>{this._setPaneViews([new t.BezierCubicPaneView(this,e)])})}pointsCount(){return 2}name(){return"Double Curve"}setLastPoint(e,t){const i=super.setLastPoint(e,t);return this._controlPoints=this._calculateControlPoints(),i}addPoint(e,t,i){const s=super.addPoint(e,t,i);if(s){const e=this._calculateControlPoints();this._controlPoints=null,this._points.push(e[0]),this._points.push(e[1]),i||(this.normalizePoints(),this.createServerPoints()),this._createPointProperty(2),this._createPointProperty(3)}return s}restorePoints(e,t,i){super.restorePoints(e,t,i),this._createPointProperty(2),this._createPointProperty(3)}controlPoints(){return this._controlPoints}static createProperties(e){const t=new r.DefaultProperty("linetoolbeziercubic",e);return o._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){
return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,79462)).then(e=>e.GeneralBezierDefinitionsViewModel)}static _configureProperties(e){n.LineDataSource._configureProperties(e)}_calculateControlPoints(){const e=(0,s.ensureNotNull)(this.pointToScreenPoint(this.points()[0])),t=(0,s.ensureNotNull)(this.pointToScreenPoint(this.points()[1])),i=t.subtract(e).scaled(.5).transposed().scaled(.3),r=e.add(t).scaled(.33),n=e.add(t).scaled(.67),o=r.add(i),a=n.subtract(i);return[(0,s.ensureNotNull)(this.screenPointToPoint(o)),(0,s.ensureNotNull)(this.screenPointToPoint(a))]}}},30899:(e,t,i)=>{"use strict";i.d(t,{LineToolBezierQuadro:()=>o});var s=i(88537),r=i(88564),n=i(89857);class o extends n.LineDataSource{constructor(e,t,s,r){const n=t||o.createProperties();super(e,n,s,r),this._controlPoint=null,i.e(1583).then(i.bind(i,79998)).then(t=>{this._setPaneViews([new t.BezierQuadroPaneView(this,e)])})}pointsCount(){return 2}name(){return"Curve"}setLastPoint(e,t){const i=super.setLastPoint(e,t);return this._controlPoint=this._calculateControlPoint(),i}addPoint(e,t,i){const s=super.addPoint(e,t,i);if(s){const e=this._calculateControlPoint();this._points.push(e),this._controlPoint=null,i||(this.normalizePoints(),this.createServerPoints()),this._createPointProperty(2)}return s}restorePoints(e,t,i){super.restorePoints(e,t,i),this._createPointProperty(2)}controlPoint(){return this._controlPoint}static createProperties(e){const t=new r.DefaultProperty("linetoolbezierquadro",e);return o._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,79462)).then(e=>e.GeneralBezierDefinitionsViewModel)}static _configureProperties(e){n.LineDataSource._configureProperties(e)}_calculateControlPoint(){const e=(0,s.ensureNotNull)(this.pointToScreenPoint(this.points()[0])),t=(0,s.ensureNotNull)(this.pointToScreenPoint(this.points()[1])),i=t.subtract(e).scaled(.5).transposed().scaled(.3),r=e.add(t).scaled(.5).add(i);return(0,s.ensureNotNull)(this.screenPointToPoint(r))}}},27258:(e,t,i)=>{"use strict";i.d(t,{LineToolBrushBase:()=>n});var s=i(88537),r=i(89857);class n extends r.LineDataSource{constructor(){super(...arguments),this._finished=!1}pointsCount(){return-1}finished(){return this._finished}finish(){this._finished=!0,this._lastPoint=null,this.normalizePoints(),this.createServerPoints()}hasEditableCoordinates(){return!1}addPoint(e,t,i){if(this._finished)return!0;if(this._lastPoint=null,this._points.length>0){const t=this._points[this._points.length-1],i=(0,s.ensureNotNull)(this.pointToScreenPoint(t));if((0,s.ensureNotNull)(this.pointToScreenPoint(e)).subtract(i).length()<2)return this._finished}return super.addPoint(e),this._finished}restorePoints(e,t,i){super.restorePoints(e,t,i),this._finished=!0}}},43871:(e,t,i)=>{"use strict";i.d(t,{LineToolBrush:()=>o});var s=i(88564),r=i(27258),n=i(37865);class o extends r.LineToolBrushBase{constructor(e,t,i,s){super(e,t||o.createProperties(),i,s),this._loadPaneViews(e)}smooth(){
return this.properties().childs().smooth.value()}name(){return"Brush"}hasEditableCoordinates(){return!1}static createProperties(e){const t=new s.DefaultProperty("linetoolbrush",e);return o._configureProperties(t),t}_loadPaneViews(e){i.e(1583).then(i.bind(i,87394)).then(t=>{this._setPaneViews([new t.BrushPaneView(this,e)])})}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,288)).then(e=>e.BrushDefinitionsViewModel)}static _configureProperties(e){r.LineToolBrushBase._configureProperties(e),e.addChild("backgroundsColors",new n.LineToolColorsProperty([e.childs().backgroundColor],e.childs().fillBackground))}}},73932:(e,t,i)=>{"use strict";var s;i.d(t,{CalloutConsts:()=>s}),function(e){e[e.RoundRadius=8]="RoundRadius",e[e.TextMargins=2]="TextMargins",e[e.MinWidth=100]="MinWidth"}(s||(s={}))},95536:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(89857).LineDataSource,n=i(62443).DataSource,o=i(2015),a=i(88564).DefaultProperty,l=i(73932).CalloutConsts,c=i(37865).LineToolColorsProperty;class h extends r{constructor(e,t,s,r){super(e,t||h.createProperties(),s,r),this._barOffset=0,this._timeScale=e.timeScale(),i.e(1583).then(i.t.bind(i,86449,19)).then(({CalloutPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}pointsCount(){return 2}name(){return"Callout"}_correctPoints(e,t){var i=this._currentMovingPoint.logical.index-this._startMovingPoint.logical.index,s=this._currentMovingPoint.logical.price-this._startMovingPoint.logical.price,r=e[1];r.index+=i,r.price+=s,e[1]=r}addPoint(e){var t=r.prototype.addPoint.call(this,e);return t&&this._calculateBarOffset(),t}_calculateBarOffset(){this.points().length>1&&(this._barOffset=this.points()[1].index-this.points()[0].index)}setLastPoint(e){var t=super.setLastPoint(e);return 2===this.points().length&&this._calculateBarOffset(),t}setPoint(e,t){switch(e){case 0:super.setPoint(e,t),this._calculateBarOffset();break;case 1:var i=this.properties();if(!i.wordWrapWidth)return;var s=this._points,r=this._dragStartLeftEdgeIndex,n=Math.round((t.index-r)/2);if(isFinite(r)&&isFinite(n)){s[1]={index:r+n,price:s[1].price},this._calculateBarOffset(),this.normalizePoints();var o=this._timeScale.indexToCoordinate(r+2*n)-this._timeScale.indexToCoordinate(r)-l.RoundRadius-l.TextMargins;if(!isFinite(o))return;i.wordWrapWidth.setValue(Math.max(l.MinWidth,o));break}s[1]=t,this._calculateBarOffset(),this.normalizePoints()}}setPoints(e){super.setPoints(e);var t=this.properties();if(t.wordWrapWidth){var i=this._dragStartLeftEdgeIndex,s=Math.round((e[1].index-i)/2);if(this._calculateBarOffset(),this.normalizePoints(),isFinite(i)&&isFinite(s)){var r=this._timeScale.indexToCoordinate(i+2*s)-this._timeScale.indexToCoordinate(i)-l.RoundRadius-l.TextMargins;if(!isFinite(r))return;t.wordWrapWidth.setValue(Math.max(l.MinWidth,r))}}}_onPointsetUpdated(e){super._onPointsetUpdated(e),0!==e.length&&(this._dragStartLeftEdgeIndex=this.points()[1].index)}move(e,t,i){super.move(e,t,i),this._calculateBarOffset()}state(e){var t=r.prototype.state.call(this,e)
;return t.barOffset=this._barOffset,t}restoreData(e){e.barOffset?this._barOffset=e.barOffset:this._calculateBarOffset(),this._calculatePoint2()}setPriceScale(e){n.prototype.setPriceScale.call(this,e),e&&e.priceRange()&&this._calculatePoint2()}template(){var e=r.prototype.template.call(this);return e.text=this.properties().childs().text.value(),e}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text)}_calculatePoint2(){if(!(this._model.lineBeingEdited()===this||this._model.sourcesBeingMoved().includes(this)||this._points.length<2)){var e=this.points()[0],t=this.points()[1];this._points[1]={price:t.price,index:e.index+this._barOffset}}}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,26599))).CalloutDefinitionsViewModel}static createProperties(e){var t=new a("linetoolcallout",e);return h._configureProperties(t),t}static _configureProperties(e){r._configureProperties(e),e.hasChild("text")||e.addChild("text",new o(s("Text"))),e.addExclusion("text"),e.addChild("textsColors",new c([e.childs().color]))}}t.LineToolCallout=h},49802:(e,t,i)=>{"use strict";var s=i(89857).LineDataSource,r=i(88564).DefaultProperty;class n extends s{constructor(e,t,s,r){super(e,t||n.createProperties(),s,r),i.e(1583).then(i.t.bind(i,99517,19)).then(({LineToolCircleLinesPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}pointsCount(){return 2}name(){return"Cyclic Lines"}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,66819))).CyclicAndSineLinesPatternDefinitionsViewModel}static createProperties(e){var t=new r("linetoolcirclelines",e);return n._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e)}}t.LineToolCircleLines=n},2039:(e,t,i)=>{"use strict";i.d(t,{LineToolCircle:()=>l});var s=i(2015),r=i.n(s),n=i(88564),o=i(89857),a=i(37865);class l extends o.LineDataSource{constructor(e,t,s,r){const n=t||l.createProperties();super(e,n,s,r),i.e(1583).then(i.bind(i,13167)).then(({CirclePaneView:t})=>{const i=[new t(this,e)];this._setPaneViews(i)})}pointsCount(){return 2}name(){return"Circle"}template(){const e=super.template();return e.text=this.properties().childs().text.value(),e}static createProperties(e){const t=new n.DefaultProperty("linetoolcircle",e);return l._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,3410))).EllipseCircleDefinitionsViewModel}_snapTo45DegreesAvailable(){return!0}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text)}static _configureProperties(e){o.LineDataSource._configureProperties(e),e.hasChild("text")||e.addChild("text",new(r())("")),e.addChild("linesColors",new a.LineToolColorsProperty([e.childs().color])),e.addChild("linesWidths",new a.LineToolWidthsProperty([e.childs().linewidth])),
e.addChild("backgroundsColors",new a.LineToolColorsProperty([e.childs().backgroundColor])),e.addChild("textsColors",new a.LineToolColorsProperty([e.childs().textColor],e.childs().showLabel)),e.addExclusion("linesColors"),e.addExclusion("linesWidths"),e.addExclusion("backgroundsColors"),e.addExclusion("text")}}},53193:(e,t,i)=>{"use strict";i.d(t,{LineToolCrossLine:()=>a});var s=i(88564),r=i(10198),n=i(67103),o=i(89857);class a extends o.LineDataSource{constructor(e,t,s,o){super(e,t||a.createProperties(),s,o),this._priceAxisView=new r.LineToolHorzLinePriceAxisView(this),this._timeAxisView=new n.LineToolVertLineTimeAxisView(this),i.e(1583).then(i.bind(i,62105)).then(({CrossLinePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}pointsCount(){return 1}name(){return"Cross Line"}priceAxisViews(e,t){return this.isSourceHidden()?null:t===this.priceScale()&&this.properties().childs().showPrice.value()&&this._model.paneForSource(this)===e?[this._priceAxisView]:null}timeAxisViews(){return this.isSourceHidden()?null:this.properties().childs().showTime.value()?[this._timeAxisView]:null}updateAllViews(e){super.updateAllViews(e),this._priceAxisView.update(e),this._timeAxisView.update()}canHasAlert(){return!1}lineColor(){return this.properties().childs().linecolor.value()}lineWidth(){return this.properties().childs().linewidth.value()}lineStyle(){return this.properties().childs().linestyle.value()}static createProperties(e){const t=new s.DefaultProperty("linetoolcrossline",e);return a._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,99645)).then(e=>e.CrossLineDefinitionsViewModel)}static _configureProperties(e){o.LineDataSource._configureProperties(e)}}},980:(e,t,i)=>{"use strict";i.d(t,{LineToolCypherPattern:()=>n});var s=i(656),r=i(88564);class n extends s.LineTool5PointsPattern{constructor(e,t,i,s){super(e,t||n.createProperties(),i,s)}name(){return"Cypher Pattern"}static createProperties(e){const t=new r.DefaultProperty("linetoolcypherpattern",e);return n._configureProperties(t),t}_loadPaneViews(e){i.e(1583).then(i.bind(i,58062)).then(t=>{this._setPaneViews([new t.CypherPaneView(this,e)])})}static _configureProperties(e){s.LineTool5PointsPattern._configureProperties(e)}}},85402:(e,t,i)=>{"use strict";i.d(t,{nonThemedFactoryDefaultsBase:()=>l,themedFactoryDefaultsBase:()=>c});var s=i(45112),r=i(24633),n=i(68906),o=i(52418);const a=(0,s.getHexColorByName)("color-tv-blue-500"),l={linewidth:1,fontsize:12,fillLabelBackground:!0,fillBackground:!0,backgroundTransparency:60,intervalsVisibilities:{...o.intervalsVisibilitiesDefaults}},c=new Map([[r.StdTheme.Light,{textcolor:(0,s.getHexColorByName)("color-black"),labelBackgroundColor:(0,s.getHexColorByName)("color-white"),linecolor:a,backgroundColor:(0,n.generateColor)(a,85),shadow:"rgba(0, 0, 0, 0.2)"}],[r.StdTheme.Dark,{textcolor:(0,s.getHexColorByName)("color-white"),labelBackgroundColor:(0,s.getHexColorByName)("color-cold-gray-800"),linecolor:a,backgroundColor:(0,n.generateColor)(a,85),
shadow:"rgba(0, 0, 0, 0.4)"}]])},26215:(e,t,i)=>{"use strict";i.d(t,{LineToolDateAndPriceRange:()=>g});var s=i(88537),r=i(89857),n=i(34081),o=i(24633),a=i(45112),l=i(45383),c=i(85402);const h=(0,a.getHexColorByName)("color-tv-blue-500"),d={...c.nonThemedFactoryDefaultsBase,drawBorder:!1,borderWidth:1},u=new Map([[o.StdTheme.Light,{...c.themedFactoryDefaultsBase.get(o.StdTheme.Light),borderColor:h}],[o.StdTheme.Dark,{...c.themedFactoryDefaultsBase.get(o.StdTheme.Dark),borderColor:h}]]),p=(0,l.extractAllPropertiesKeys)((0,s.ensureDefined)(u.get(o.StdTheme.Light))),_=(0,l.extractAllPropertiesKeys)(d);class m extends l.ThemedDefaultProperty{static create(e){return new m("linetooldateandpricerange",()=>(0,l.factoryDefaultsForCurrentTheme)(d,u),_,p,e)}}class g extends r.LineDataSource{constructor(e,t,s,r){super(e,t||g.createProperties(),s,r),this._volumeCalculator=null,i.e(1583).then(i.bind(i,81226)).then(e=>{this._setPaneViews([new e.DateAndPriceRangePaneView(this,this._model)])})}destroy(){super.destroy(),null!==this._volumeCalculator&&this._volumeCalculator.destroy()}pointsCount(){return 2}name(){return"Date and Price Range"}volume(){if(null===this._volumeCalculator)return NaN;const e=this.points();return this._volumeCalculator.volume(e[0].index,e[1].index)}setOwnerSource(e){e===this._model.mainSeries()&&((0,s.assert)(null===this._volumeCalculator),this._volumeCalculator=new n.SeriesTimeRangeVolumeCalculator(this._model.mainSeries())),super.setOwnerSource(e)}static createProperties(e){const t=m.create(e);return g._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,80447))).GeneralDatePriceRangeDefinitionsViewModel}static _configureProperties(e){r.LineDataSource._configureProperties(e)}}},45669:(e,t,i)=>{"use strict";i.d(t,{LineToolDateRange:()=>_});var s=i(88537),r=i(89857),n=i(34081),o=i(24633),a=i(45383),l=i(85402);const c={...l.nonThemedFactoryDefaultsBase,extendTop:!1,extendBottom:!1},h=l.themedFactoryDefaultsBase,d=(0,a.extractAllPropertiesKeys)((0,s.ensureDefined)(h.get(o.StdTheme.Light))),u=(0,a.extractAllPropertiesKeys)(c);class p extends a.ThemedDefaultProperty{static create(e){return new p("linetooldaterange",()=>(0,a.factoryDefaultsForCurrentTheme)(c,h),u,d,e)}}class _ extends r.LineDataSource{constructor(e,t,s,r){super(e,t||_.createProperties(),s,r),this._volumeCalculator=null,i.e(1583).then(i.bind(i,27913)).then(e=>{this._setPaneViews([new e.DateRangePaneView(this,this._model)])})}destroy(){super.destroy(),null!==this._volumeCalculator&&this._volumeCalculator.destroy()}pointsCount(){return 2}name(){return"Date Range"}volume(){if(null===this._volumeCalculator)return NaN;const e=this.points();return this._volumeCalculator.volume(e[0].index,e[1].index)}setOwnerSource(e){e===this._model.mainSeries()&&((0,s.assert)(null===this._volumeCalculator),this._volumeCalculator=new n.SeriesTimeRangeVolumeCalculator(this._model.mainSeries())),super.setOwnerSource(e)}static createProperties(e){const t=p.create(e)
;return _._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,80447))).GeneralDatePriceRangeDefinitionsViewModel}static _configureProperties(e){r.LineDataSource._configureProperties(e)}}},46512:(e,t,i)=>{"use strict";var s=i(89857).LineDataSource,r=i(88564).DefaultProperty;class n extends s{constructor(e,t,s,r){super(e,t||n.createProperties(),s,r),this.version=n.version,i.e(1583).then(i.t.bind(i,56863,19)).then(({DisjointChannelPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}pointsCount(){return 3}name(){return"Disjoint Channel"}hasEditableCoordinates(){return!1}addPoint(e,t){return t&&t.shift()&&2===this.points().length&&this._snapPoint45Degree(e,this.points()[this.points().length-2]),s.prototype.addPoint.call(this,e)}setLastPoint(e,t){return t&&t.shift()&&2===this.points().length&&this._snapPoint45Degree(e,this.points()[this.points().length-2]),s.prototype.setLastPoint.call(this,e)}setPoint(e,t,i){var s=.5*(this._points[1].price+this._points[2].price);if(i&&i.shift()&&1===e){this._snapPoint45Degree(t,this.points()[0])}if(e<3&&super.setPoint(e,t),0!==e&&2!==e){if(1===e){var r=this._points[1].price-s;this._points[2].price=this._points[1].price-2*r}else if(3===e){r=t.price-this._points[2].price;this._points[0].price=this._points[1].price-r,this._points[0].index=t.index}this.normalizePoints()}}getPoint(e){if(e<3)return s.prototype.getPoint.call(this,e);var t=this._points[0].price-this._points[2].price;return{index:this._points[0].index,price:this._points[1].price-t}}canHasAlert(){return!0}_getAlertPlots(){var e=this._points[0],t=this._points[1],i=[];e.index<=t.index?(i.push(e),i.push(t)):(i.push(t),i.push(e));var s=this._points[2];s.time=t.time,s.index=t.index;var r,n,o,a,l={price:s.price+(t.price-e.price),time:e.time,index:e.index},c=[];s.index<=l.index?(c.push(s),c.push(l)):(c.push(l),c.push(s)),i[0].price>c[0].price?(r=i,n=c):c[0].price>i[0].price||c[1].price>i[1].price?(r=c,n=i):(r=i,n=c);var h=this.properties().extendLeft.value(),d=this.properties().extendRight.value();return e.index<=t.index?(o=h,a=d):(o=d,a=h),[this._linePointsToAlertPlot(r,"Upper",o,a),this._linePointsToAlertPlot(n,"Lower",o,a)]}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,14145))).GeneralTrendFiguresDefinitionsViewModel}static createProperties(e){var t=new r("linetooldisjointangle",e);return n._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e)}}n.version=1,t.LineToolDisjointChannel=n},97917:(e,t,i)=>{"use strict";i.d(t,{LineToolElliott:()=>u,LineToolElliottImpulse:()=>m,LineToolElliottTriangle:()=>f,LineToolElliottTripleCombo:()=>S,LineToolElliottCorrection:()=>w,LineToolElliottDoubleCombo:()=>P});var s=i(28353),r=i(24980),n=i(89857),o=i(28296),a=i(88564),l=i(37865);const c=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],h=new r.TranslatedString("change Elliott degree",(0,s.t)("change Elliott degree")),d=[{value:0,title:(0,s.t)("Supermillennium")
},{value:1,title:(0,s.t)("Millennium")},{value:2,title:(0,s.t)("Submillennium")},{value:3,title:(0,s.t)("Grand supercycle")},{value:4,title:(0,s.t)("Supercycle")},{value:5,title:(0,s.t)("Cycle")},{value:6,title:(0,s.t)("Primary")},{value:7,title:(0,s.t)("Intermediate")},{value:8,title:(0,s.t)("Minor",{context:"wave"})},{value:9,title:(0,s.t)("Minute",{context:"wave"})},{value:10,title:(0,s.t)("Minuette")},{value:11,title:(0,s.t)("Subminuette")},{value:12,title:(0,s.t)("Micro")},{value:13,title:(0,s.t)("Submicro")},{value:14,title:(0,s.t)("Minuscule")}];class u extends n.LineDataSource{constructor(e,t,s,r){super(e,null!=t?t:u.createProperties(),s,r),this.version=4,i.e(1583).then(i.bind(i,5761)).then(e=>{this._setPaneViews([new e.ElliottLabelsPaneView(this,this._model)])})}migrateVersion(e,t,i){if(i.properties.hasChild("background")&&i.properties.removeProperty("background"),i.properties.hasChild("backgroundColor")&&i.properties.removeProperty("backgroundColor"),i.properties.hasChild("showBackground")&&i.properties.removeProperty("showBackground"),1===e){const e=Object.assign({},this._timePoint[0]);if(this._timePoint.unshift(e),this._points.length>0){const e=Object.assign({},this._points[0]);this._points.unshift(e)}}}applyTemplate(e){const t=e;delete t.background,delete t.backgroundColor,delete t.showBackground,super.applyTemplate(e)}name(){return"Elliott Labels"}additionalActions(e){return[new o.Action({actionId:"Chart.LineTool.Elliot.ChangeDegreeProperty",label:(0,s.t)("Degree"),subItems:c.map(t=>{const i=d.filter(e=>e.value===t)[0];return new o.Action({actionId:"Chart.LineTool.Elliot.ChangeDegreeProperty",label:i.title,checkable:!0,checked:this.properties().childs().degree.value()===t,onExecute:()=>{e.setProperty(this.properties().childs().degree,t,h)}})})})]}label(e){const t=c.length-this.properties().childs().degree.value()-1,i=Math.floor(t/3);return{group:i,bold:!!(i%2),decoration:["","brackets","circle"][t%3],label:this.labelsGroup()[i][e]}}availableDegreesValues(){return d}static createProperties(e){const t=new a.DefaultProperty("linetoolelliott",e);return u._configureProperties(t),t}static migrateState(e){const t={0:11,1:10,2:9,3:8,4:7,5:6,6:5,7:4,8:3},i={0:11,1:8};"LineToolElliottSubminuette"===e.type&&(e.type="LineToolElliottImpulse",e.state.degree=t[e.state.wavesize]),"LineToolElliottMinor"===e.type&&(e.type="LineToolElliottImpulse",e.state.degree=t[e.state.wavesize]),"LineToolElliottCircle"===e.type&&(e.type="LineToolElliottImpulse",e.state.degree=t[e.state.wavesize]),"LineToolElliottMinorRetr"===e.type&&(e.type="LineToolElliottCorrection",e.state.degree=i[e.state.wavesize]),"LineToolElliottMajorRetr"===e.type&&(e.type="LineToolElliottCorrection",e.state.degree=i[e.state.wavesize])}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,31522))).ElliottPatternDefinitionsViewModel}static _configureProperties(e){n.LineDataSource._configureProperties(e),e.addChild("linesColors",new l.LineToolColorsProperty([e.childs().color])),
e.addExclusion("linesColors")}}class p extends u{pointsCount(){return 6}static _configureProperties(e){u._configureProperties(e)}}const _=[["0","1","2","3","4","5"],["0","i","ii","iii","iv","v"],["0","1","2","3","4","5"],["0","I","II","III","IV","V"],["0","1","2","3","4","5"]];class m extends p{constructor(e,t,i,s){super(e,t||m.createProperties(),i,s)}name(){return"Elliott Impulse Wave (12345)"}labelsGroup(){return _}static createProperties(e){const t=new a.DefaultProperty("linetoolelliottimpulse",e);return m._configureProperties(t),t}static _configureProperties(e){p._configureProperties(e)}}const g=[["0","A","B","C","D","E"],["0","a","b","c","d","e"],["0","A","B","C","D","E"],["0","a","b","c","d","e"],["0","A","B","C","D","E"]];class f extends p{constructor(e,t,i,s){super(e,t||f.createProperties(),i,s)}name(){return"Elliott Triangle Wave (ABCDE)"}labelsGroup(){return g}static createProperties(e){const t=new a.DefaultProperty("linetoolelliotttriangle",e);return f._configureProperties(t),t}static _configureProperties(e){p._configureProperties(e)}}const v=[["0","W","X","Y","X","Z"],["0","w","x","y","x","z"],["0","W","X","Y","X","Z"],["0","w","x","y","x","z"],["0","W","X","Y","X","Z"]];class S extends p{constructor(e,t,i,s){super(e,null!=t?t:S.createProperties(),i,s)}name(){return"Elliott Triple Combo Wave (WXYXZ)"}labelsGroup(){return v}static createProperties(e){const t=new a.DefaultProperty("linetoolelliotttriplecombo",e);return S._configureProperties(t),t}static _configureProperties(e){p._configureProperties(e)}}class y extends u{pointsCount(){return 4}static _configureProperties(e){u._configureProperties(e)}}const b=[["0","A","B","C"],["0","a","b","c"],["0","A","B","C"],["0","a","b","c"],["0","A","B","C"]];class w extends y{constructor(e,t,i,s){super(e,null!=t?t:w.createProperties(),i,s)}name(){return"Elliott Correction Wave (ABC)"}labelsGroup(){return b}static createProperties(e){const t=new a.DefaultProperty("linetoolelliottcorrection",e);return w._configureProperties(t),t}static _configureProperties(e){y._configureProperties(e)}}const C=[["0","W","X","Y"],["0","w","x","y"],["0","W","X","Y"],["0","w","x","y"],["0","W","X","Y"]];class P extends y{constructor(e,t,i,s){super(e,null!=t?t:P.createProperties(),i,s)}name(){return"Elliott Double Combo Wave (WXY)"}labelsGroup(){return C}static createProperties(e){const t=new a.DefaultProperty("linetoolelliottdoublecombo",e);return P._configureProperties(t),t}static _configureProperties(e){y._configureProperties(e)}}},38430:(e,t,i)=>{"use strict";i.d(t,{LineToolEllipse:()=>d});var s=i(88537),r=i(4652),n=i(86441),o=i(2015),a=i.n(o),l=i(89857),c=i(88564),h=i(37865);class d extends l.LineDataSource{constructor(e,t,s,r){super(e,t||d.createProperties(),s,r),this.version=2,this._dist=null,this._fakePointAdded=!1,i.e(1583).then(i.bind(i,58446)).then(({EllipsePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}startChanging(e,t){if(super.startChanging(e,t),0===e||1===e){const e=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[0])),t=(0,
s.ensureNotNull)(this.pointToScreenPoint(this._points[1])),i=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[2]));this._dist=(0,r.distanceToLine)(e,t,i).distance||0}}addPoint(e,t,i){const s=l.LineDataSource.prototype.addPoint.call(this,e,t,i);return s&&(this._fakePointAdded=!1),s}setPoint(e,t,i,o){const a={...t};let l=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[0])),c=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[1])),h=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[2]));switch(e){case 0:{if(i&&i.shift()){this._snapPoint45Degree(a,this._points[1]),this._points[0]=a,this._points[2]=this._preparePointInternal(this._points[2],i,!0),this._points[0].index===this._points[1].index&&this._fixVerticalDiameterPoints(this._points[0],this._points[1],this._points[2]);break}l=(0,s.ensureNotNull)(this.pointToScreenPoint(a));const e=c.subtract(l),t=l.add(c).scaled(.5),r=new n.Point(-e.y,e.x).normalized();h=t.add(r.scaled((0,s.ensureNotNull)(this._dist))),this._points[0]=a,this._points[2]=(0,s.ensureNotNull)(this.screenPointToPoint(h));break}case 1:{if(i&&i.shift()){this._snapPoint45Degree(a,this._points[0]),this._points[1]=a,this._points[2]=this._preparePointInternal(this._points[2],i,!0),this._points[0].index===this._points[1].index&&this._fixVerticalDiameterPoints(this._points[1],this._points[0],this._points[2]);break}c=(0,s.ensureNotNull)(this.pointToScreenPoint(a));const e=c.subtract(l),t=l.add(c).scaled(.5),r=new n.Point(-e.y,e.x).normalized();h=t.add(r.scaled((0,s.ensureNotNull)(this._dist))),this._points[1]=a,this._points[2]=(0,s.ensureNotNull)(this.screenPointToPoint(h));break}case 2:{const e=(0,s.ensureNotNull)(this.pointToScreenPoint(a)),t=(0,r.distanceToLine)(l,c,e).distance,i=c.subtract(l),o=l.add(c).scaled(.5),d=new n.Point(-i.y,i.x).normalized();h=o.add(d.scaled(t)),this._points[2]=(0,s.ensureNotNull)(this.screenPointToPoint(h));break}case 3:{const e=(0,s.ensureNotNull)(this.pointToScreenPoint(a)),t=(0,r.distanceToLine)(l,c,e).distance,i=c.subtract(l),o=l.add(c).scaled(.5),d=new n.Point(-i.y,i.x).normalized();h=o.add(d.scaled(t)),this._points[2]=(0,s.ensureNotNull)(this.screenPointToPoint(h));break}}this.normalizePoints()}pointsCount(){return 3}name(){return"Ellipse"}hasEditableCoordinates(){return!1}migrateVersion(e,t,i){if(1===e&&2===this._points.length){const e=this._points[0].price,t=.5*(this._points[0].price+this._points[1].price);this._points[0]={price:t,index:this._points[0].index},this._points[1]={price:t,index:this._points[1].index},this._points.push({price:e,index:this._points[0].index})}if(1===e&&2===this._timePoint.length){const e=this._timePoint[0].price,t=.5*(this._timePoint[0].price+this._timePoint[1].price);this._timePoint[0].price=t,this._timePoint[1].price=t;const i={price:e,offset:this._timePoint[0].offset,time_t:this._timePoint[0].time_t};this._timePoint.push(i)}}template(){const e=super.template();return e.text=this.properties().childs().text.value(),e}static createProperties(e){const t=new c.DefaultProperty("linetoolellipse",e)
;return d._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,3410))).EllipseCircleDefinitionsViewModel}_preparePoint(e,t){const i=this._preparePointInternal(e,t,!1);return t&&t.shift()&&this._points[0].index===this._points[1].index&&this._fixVerticalDiameterPoints(this._points[1],this._points[0],i),i}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text)}static _configureProperties(e){l.LineDataSource._configureProperties(e),e.hasChild("text")||e.addChild("text",new(a())("")),e.addChild("linesColors",new h.LineToolColorsProperty([e.childs().color])),e.addChild("textsColors",new h.LineToolColorsProperty([e.childs().textColor],e.childs().showLabel)),e.addExclusion("text")}_preparePointInternal(e,t,i){let r={...e};if(t&&t.shift()){const t=this.points().length;if(!this._fakePointAdded&&3===t&&!i)return r;if(this._fakePointAdded||2===t||i){this._snapPoint45Degree(e,this._points[0]),this._fakePointAdded?this._points[1]=e:i||(this._fakePointAdded=!0,super._addPointIntenal(e));const t=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[0])),o=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[1])),a=o.x-t.x,l=o.y-t.y,c=Math.sqrt(a*a+l*l)/2,h=o.subtract(t),d=t.add(o).scaled(.5),u=new n.Point(-h.y,h.x).normalized(),p=d.add(u.scaled(c));r=(0,s.ensureNotNull)(this.screenPointToPoint(p)),(isNaN(r.price)||isNaN(r.index))&&(r=(0,s.ensureNotNull)(this.screenPointToPoint(d)))}}else this._fakePointAdded&&(this._points.splice(1,1),this._fakePointAdded=!1);return r}_fixVerticalDiameterPoints(e,t,i){const r=(0,s.ensureNotNull)(this.pointToScreenPoint(e)),o=(0,s.ensureNotNull)(this.pointToScreenPoint(t)),a=this._model.timeScale(),l=a.indexToCoordinate(e.index),c=a.indexToCoordinate(i.index);let h=2*Math.abs(l-c);h*=t.price>e.price?1:-1,e.price=(0,s.ensureNotNull)(this.screenPointToPoint(new n.Point(r.x,o.y+h))).price}}},39593:(e,t,i)=>{"use strict";var s=i(89857).LineDataSource,r=i(53664),n=i(88564).DefaultProperty,o=i(71053).PlotRowSearchMode;const a=i(67337);var l=i(59555).sortSourcesPreOrdered.LineToolExecution;class c{constructor(e,t){this._pane=e,this._timeScale=t}static recreateOrderedByBarsSourcesCache(e){c.clearOrderedByBarsSourcesCache();for(var t=c.prototype,i=e.sourcesByGroup().all(),s=0;s_.lastBar()||i<_.firstBar())return{x:-1,y:-1};for(var m=this._cachedByBarIndexOrderedExecutions[i]||this._pane.sourcesByGroup().all(),g=m.length-1;g>=0;--g){var f=m[g];if(f instanceof d&&f._adapter._index===i&&f._adapter.getDirection()===r){if(f===e._line)break;var v=f._adapter._height();s=n?s+v:s-v}}return{x:t.indexToCoordinate(i),y:s}}}c.prototype._cachedByBarIndexOrderedExecutions={};class h{constructor(e){this._line=e}_height(){var e=this.getArrowHeight(),t=this.getArrowSpacing();this.getText()&&r.fontHeight(this.getFont());return e+t+0+10}getIndex(){return this._line._model.timeScale().baseIndex()-this._line.points()[0].index}setIndex(e){var t=this._line._model.timeScale().baseIndex()-Math.abs(e);this._line.startMoving({logical:this._line.points()[0]});var i=TradingView.merge({},this._line.points()[0]);return i.index=t,this._line.move({logical:i}),this._line.endMoving(),this}getTime(){return this._unixtime}setTime(e){return this._unixtime=e,this._line.restorePoints([{offset:0,price:this.getPrice(),time_t:this._unixtime}],[]),this._line.createServerPoints(),this}getPrice(){return this._line.points().length>0?this._line.points()[0].price:this._line._timePoint.length>0?this._line._timePoint[0].price:void 0}setPrice(e){return this._line.points().length>0&&(this._line.points()[0].price=e),this._line._timePoint.length>0&&(this._line._timePoint[0].price=e),this}getText(){return this._line.properties().text.value()}setText(e){return this._line.properties().text.setValue(e||""),this._line.updateAllViewsAndRedraw(),this}getArrowHeight(){return this._line.properties().arrowHeight.value()}setArrowHeight(e){return this._line.properties().arrowHeight.setValue(e||5),this}getArrowSpacing(){return this._line.properties().arrowSpacing.value()}setArrowSpacing(e){return this._line.properties().arrowSpacing.setValue(e||1),this}getDirection(){return this._line.properties().direction.value()}setDirection(e){return this._line.properties().direction.setValue(e||"buy"),this}getArrowColor(){var e=this._line.properties();return"buy"===this.getDirection()?e.arrowBuyColor.value():e.arrowSellColor.value()}setArrowColor(e){return"buy"===this.getDirection()?this.setArrowBuyColor(e):this.setArrowSellColor(e),this}setArrowBuyColor(e){return this._line.properties().arrowBuyColor.setValue(e),this}setArrowSellColor(e){return this._line.properties().arrowSellColor.setValue(e),this}getTextColor(){return r.getColorFromProperties(this._line.properties().textColor,this._line.properties().textTransparency)}setTextColor(e){return r.setColorToProperties(e,this._line.properties().textColor,this._line.properties().textTransparency),this}getFont(){return r.getFontFromProperties(this._line.properties().fontFamily,this._line.properties().fontSize,this._line.properties().fontBold,this._line.properties().fontItalic)}setFont(e){return r.setFontToProperties(e,this._line.properties().fontFamily,this._line.properties().fontSize,this._line.properties().fontBold,this._line.properties().fontItalic),this}setTooltip(e){
return null==e?e="":e+="",this._line.properties().tooltip.setValue(e),this}getTooltip(){return this._line.properties().tooltip.value()}remove(){this._line._model.removeSource(this._line),delete this._line}getPoints(){return this._line.points()}}class d extends s{constructor(e,t,s,r){super(e,t||d.createProperties(),s,r),this._adapter=new h(this),this.customization.forcePriceAxisLabel=!1,this.customization.disableErasing=!0,this.customization.showInObjectTree=!1,this.setSelectionEnabled(!1),i.e(1583).then(i.t.bind(i,90216,19)).then(({ExecutionPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}zorder(){return l}isSpeciallyZOrderedSource(){return!0}pointsCount(){return d.POINTS_COUNT}name(){return"Execution"}hasContextMenu(){return!1}state(){return null}updateAllViews(){return this._isVisible()?s.prototype.updateAllViews.call(this):null}priceAxisViews(e,t){return this._isVisible()?s.prototype.priceAxisViews.call(this,e,t):null}_isVisible(){return this._model.properties().tradingProperties.showExecutions.value()}paneViews(){return TradingView.printing&&!a.enabled("snapshot_trading_drawings")?null:this._model.properties().tradingProperties.showExecutions.value()?s.prototype.paneViews.call(this):null}userEditEnabled(){return!1}showInObjectTree(){return!1}cloneable(){return!1}copiable(){return!1}isSynchronizable(){return!1}static createProperties(e){var t=new n("linetoolexecution",e,!1,!1);return d._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e)}}d.POINTS_COUNT=1,t.ExecutionsPositionController=c,t.LineToolExecution=d},41239:(e,t,i)=>{"use strict";var s=i(57649).LineToolTrendLine,r=i(88564).DefaultProperty;class n extends s{constructor(e,t,i,s){super(e,t||n.createProperties(),i,s)}name(){return"Extended Line"}static createProperties(e){var t=new r("linetoolextended",e);return n._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e)}}t.LineToolExtended=n},48917:(e,t,i)=>{"use strict";i.d(t,{LineToolFibChannel:()=>h});var s=i(88537),r=i(28353),n=i(24980),o=i(89857),a=i(34580),l=i(37865);const c=new n.TranslatedString("erase level line",(0,r.t)("erase level line"));class h extends o.LineDataSource{constructor(e,t,s,r){super(e,t||h.createProperties(),s,r),this.version=2,i.e(1583).then(i.bind(i,74042)).then(({FibChannelPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}levelsCount(){return 24}migrateVersion(e,t,i){i.properties.removeProperty("reverse")}pointsCount(){return 3}name(){return"Fib Channel"}processErase(e,t){const i="level"+t,s=this.properties().child(i).childs().visible;e.setProperty(s,!1,c)}static createProperties(e){const t=new a.LevelsProperty("linetoolfibchannel",e,!1,{range:[1,24],names:["coeff","color","visible"]});return h._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,34670))).FibDrawingsWith24LevelsDefinitionsViewModel}static _configureProperties(e){o.LineDataSource._configureProperties(e);const t=[];for(let i=1;i<=24;i++){
const r=(0,s.ensureDefined)(e.child("level"+i));t.push((0,s.ensureDefined)(r.child("color")))}e.addChild("linesColors",new l.LineToolColorsProperty(t))}}},54502:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(24980).TranslatedString,n=i(89857).LineDataSource,o=i(34580).LevelsProperty,a=i(37865),l=a.LineToolWidthsProperty,c=a.LineToolColorsProperty,h=new r("erase level line",s("erase level line"));class d extends n{constructor(e,t,s,r){super(e,t||d.createProperties(),s,r),i.e(1583).then(i.t.bind(i,24227,19)).then(({FibCirclesPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}levelsCount(){return d.LevelsCount}pointsCount(){return 2}name(){return"Fib Circles"}processErase(e,t){var i="level"+t,s=this.properties()[i].visible;e.setProperty(s,!1,h)}static createProperties(e){var t=new o("linetoolfibcircles",e,!1,{range:[1,11]});return d._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,9948))).FibCirclesDefinitionsViewModel}_snapTo45DegreesAvailable(){return!0}static _configureProperties(e){n._configureProperties(e);for(var t=[e.child("trendline").child("linewidth")],i=[e.child("trendline").child("color")],s=1;s<=d.LevelsCount;s++)t.push(e.child("level"+s).child("linewidth")),i.push(e.child("level"+s).child("color"));e.addChild("linesColors",new c(i)),e.addChild("linesWidths",new l(t))}}d.LevelsCount=11,t.LineToolFibCircles=d},44860:(e,t,i)=>{"use strict";i.d(t,{LineToolFibRetracement:()=>c});var s=i(28353),r=i(24980),n=i(34580),o=i(89857),a=i(37865);const l=new r.TranslatedString("erase level line",(0,s.t)("erase level line"));class c extends o.LineDataSource{constructor(e,t,s,r){super(e,t||c.createProperties(),s,r),this.version=2,i.e(1583).then(i.bind(i,22567)).then(e=>{this._setPaneViews([new e.FibRetracementPaneView(this,this._model)])})}levelsCount(){return 24}pointsCount(){return 2}name(){return"Fib Retracement"}migrateVersion(e){1===e&&this.properties().childs().extendLines.setValue(!0)}processErase(e,t){const i="level"+t,{visible:s}=this.properties().childs()[i].childs();e.setProperty(s,!1,l)}fibLevelsBasedOnLogScale(){var e;return this.properties().childs().fibLevelsBasedOnLogScale.value()&&!!(null===(e=this.priceScale())||void 0===e?void 0:e.isLog())}static createProperties(e){const t=new n.LevelsProperty("linetoolfibretracement",e,!1,{range:[1,24],names:["coeff","color","visible"]});return c._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,34670))).FibDrawingsWith24LevelsDefinitionsViewModel}static _configureProperties(e){var t;const i=e;super._configureProperties(i);const s=[i.childs().trendline.childs().linewidth,i.childs().levelsStyle.childs().linewidth],r=[i.childs().trendline.childs().color];for(let e=1;e<=24;e++){const s=null===(t=i.child("level"+e))||void 0===t?void 0:t.child("color");r.push(s)}i.addChild("linesColors",new a.LineToolColorsProperty(r)),i.addChild("linesWidths",new a.LineToolWidthsProperty(s))}}},
19857:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(24980).TranslatedString,n=i(89857).LineDataSource,o=i(34580).LevelsProperty,a=i(37865),l=a.LineToolWidthsProperty,c=a.LineToolColorsProperty,h=new r("erase level line",s("erase level line"));class d extends n{constructor(e,t,s,r){super(e,t||d.createProperties(),s,r),i.e(1583).then(i.bind(i,52832)).then(({FibSpeedResistanceArcsPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}levelsCount(){return d.LevelsCount}pointsCount(){return 2}name(){return"Fib Speed Resistance Arcs"}processErase(e,t){var i="level"+t,s=this.properties()[i].visible;e.setProperty(s,!1,h)}static createProperties(e){var t=new o("linetoolfibspeedresistancearcs",e,!1,{range:[1,11]});return d._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,17770))).FibSpeedResistanceArcsDefinitionsViewModel}static _configureProperties(e){n._configureProperties(e);for(var t=[e.child("trendline").child("linewidth")],i=[e.child("trendline").child("color")],s=1;s<=d.LevelsCount;s++)t.push(e.child("level"+s).child("linewidth")),i.push(e.child("level"+s).child("color"));e.addChild("linesColors",new c(i)),e.addChild("linesWidths",new l(t))}}d.LevelsCount=11,t.LineToolFibSpeedResistanceArcs=d},70673:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(24980).TranslatedString,n=i(89857).LineDataSource,o=i(34580).LevelsProperty,a=i(37865).LineToolColorsProperty,l=new r("erase level line",s("erase level line"));class c extends n{constructor(e,t,s,r){super(e,t||c.createProperties(),s,r),i.e(1583).then(i.bind(i,95294)).then(({FibSpeedResistanceFanPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}hLevelsCount(){return c.HLevelsCount}vLevelsCount(){return c.VLevelsCount}pointsCount(){return 2}name(){return"Fib Speed Resistance Fan"}processErase(e,t){var i="h"===t.type?"hlevel"+t.index:"vlevel"+t.index,s=this.properties()[i].visible;e.setProperty(s,!1,l)}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,51697))).FibSpeedResistanceFanDefinitionsViewModel}_snapTo45DegreesAvailable(){return!0}static createProperties(e){void 0!==e&&void 0===e.reverse&&(e.reverse=!0);var t=new o("linetoolfibspeedresistancefan",e,!1,{range:[1,7],prefixes:["h","v"],names:["coeff","color","visible"]});return c._configureProperties(t),t}static _configureProperties(e){n._configureProperties(e);var t=[e.child("grid").child("color")];for(let i=1;i<=c.HLevelsCount;i++)t.push(e.child("hlevel"+i).child("color"));for(let i=1;i<=c.VLevelsCount;i++)t.push(e.child("vlevel"+i).child("color"));e.addChild("linesColors",new a(t)),e.addExclusion("linesColors")}}c.HLevelsCount=7,c.VLevelsCount=7,t.LineToolFibSpeedResistanceFan=c},29638:(e,t,i)=>{"use strict";var s=i(89857).LineDataSource,r=i(88564).DefaultProperty;class n extends s{constructor(e,t,s,r){super(e,t||n.createProperties(),s,r),i.e(1583).then(i.bind(i,22115)).then(({FibSpiralPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}
pointsCount(){return 2}name(){return"Fib Spiral"}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,29216))).FibSpiralDefinitionsViewModel}static createProperties(e){var t=new r("linetoolfibspiral",e);return n._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e)}}t.LineToolFibSpiral=n},63835:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(24980).TranslatedString,n=i(89857).LineDataSource,o=i(34580).LevelsProperty,a=i(37865),l=a.LineToolWidthsProperty,c=a.LineToolColorsProperty,h=new r("erase level line",s("erase level line"));class d extends n{constructor(e,t,s,r){super(e,t||d.createProperties(),s,r),this.version=d.version,i.e(1583).then(i.t.bind(i,28550,19)).then(({FibTimeZonePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}levelsCount(){return d.LevelsCount}migrateVersion(e,t,i){if(1===e){i.properties.level1.color.setValue(i.properties.baselinecolor.value());for(var s=2;s<=11;s++)i.properties["level"+s].color.setValue(i.properties.linecolor.value());for(s=1;s<=11;s++)i.properties["level"+s].linewidth.setValue(i.properties.linewidth.value()),i.properties["level"+s].linestyle.setValue(i.properties.linestyle.value())}}pointsCount(){return 2}name(){return"Fib Time Zone"}processErase(e,t){var i="level"+t,s=this.properties()[i].visible;e.setProperty(s,!1,h)}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,45384))).FibTimezoneDefinitionsViewModel}static createProperties(e){var t=new o("linetoolfibtimezone",e,!1,{range:[1,11]});return d._configureProperties(t),t}static _configureProperties(e){n._configureProperties(e);for(var t=[],i=[],s=1;s<=d.LevelsCount;s++)t.push(e.child("level"+s).child("linewidth")),i.push(e.child("level"+s).child("color"));for(t=[],i=[],s=1;s<=d.LevelsCount;s++)t.push(e.child("level"+s).child("linewidth")),i.push(e.child("level"+s).child("color"));e.addChild("linesColors",new c(i)),e.addChild("linesWidths",new l(t))}}d.version=2,d.LevelsCount=11,t.LineToolFibTimeZone=d},53804:(e,t,i)=>{"use strict";i.d(t,{LineToolFibWedgeBase:()=>o});var s=i(88537),r=i(86441),n=i(89857);class o extends n.LineDataSource{pointsCount(){return 3}hasEditableCoordinates(){return!1}setPoint(e,t){if(super.setPoint(e,t),!this._recursiveGuard)try{if(this._recursiveGuard=!0,2===e){const e=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[0]));let t=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[1]));const i=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[2])).subtract(e).length();let n=t.subtract(e);n.length()<=0&&(n=new r.Point(1,0)),t=e.add(n.normalized().scaled(i));const o=(0,s.ensureNotNull)(this.screenPointToPoint(t)),a=this._pointsProperty.childs().points[1];a.childs().price.setValue(o.price),a.childs().bar.setValue(o.index)}else{const e=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[0])),t=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[1]));let i=(0,
s.ensureNotNull)(this.pointToScreenPoint(this._points[2]));const n=t.subtract(e).length();let o=i.subtract(e);o.length()<=0&&(o=new r.Point(1,0)),i=e.add(o.normalized().scaled(n));const a=(0,s.ensureNotNull)(this.screenPointToPoint(i)),l=this._pointsProperty.childs().points[2];l.childs().price.setValue(a.price),l.childs().bar.setValue(a.index)}}finally{this._recursiveGuard=!1}}addPoint(e){if(2===this._points.length){const t=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[0])),i=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[1]));let r=(0,s.ensureNotNull)(this.pointToScreenPoint(e));const n=i.subtract(t).length(),o=r.subtract(t).normalized();r=t.add(o.scaled(n));const a=(0,s.ensureNotNull)(this.ownerSource()),l=(0,s.ensureNotNull)(a.firstValue()),c=(0,s.ensureNotNull)(this.priceScale()).coordinateToPrice(r.y,l);e={index:Math.round(this._model.timeScale().coordinateToIndex(r.x)),price:c}}return n.LineDataSource.prototype.addPoint.call(this,e)}}},41668:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(24980).TranslatedString,n=i(53804).LineToolFibWedgeBase,o=i(34580).LevelsProperty,a=i(37865),l=a.LineToolWidthsProperty,c=a.LineToolColorsProperty,h=new r("erase level line",s("erase level line"));class d extends n{constructor(e,t,s,r){super(e,t||d.createProperties(),s,r),i.e(1583).then(i.t.bind(i,82522,19)).then(({FibWedgePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}isSynchronizable(){return!1}levelsCount(){return d.LevelsCount}name(){return"Fib Wedge"}processErase(e,t){var i="level"+t,s=this.properties()[i].visible;e.setProperty(s,!1,h)}static createProperties(e){var t=new o("linetoolfibwedge",e,!1,{range:[1,11]});return d._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,90156))).FibWedgeDefinitionsViewModel}static _configureProperties(e){n._configureProperties(e);for(var t=[e.child("trendline").child("linewidth")],i=[e.child("trendline").child("color")],s=1;s<=d.LevelsCount;s++)t.push(e.child("level"+s).child("linewidth")),i.push(e.child("level"+s).child("color"));e.addChild("linesColors",new c(i)),e.addChild("linesWidths",new l(t))}}d.LevelsCount=11,t.LineToolFibWedge=d},53342:(e,t,i)=>{"use strict";i.d(t,{LineToolFlagMark:()=>a});var s=i(86441),r=i(89857),n=i(88564),o=i(37865);class a extends r.LineDataSource{constructor(e,t,r,n){super(e,t||a.createProperties(),r,n),i.e(1583).then(i.bind(i,16089)).then(({FlagMarkPaneView:e})=>{const t=new e(this,this.model());t.setAnchors(new s.Point(0,0)),this._setPaneViews([t])})}pointsCount(){return 1}name(){return"Flag Mark"}static createProperties(e){e&&void 0===e.flagColor&&(e.flagColor="#318757");const t=new n.DefaultProperty("linetoolflagmark",e);return a._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,18661)).then(e=>e.FlagMarkDefinitionsViewModel)}static _configureProperties(e){r.LineDataSource._configureProperties(e),
e.addChild("backgroundsColors",new o.LineToolColorsProperty([e.childs().flagColor])),e.addExclusion("backgroundsColors")}}a.version=2},47047:(e,t,i)=>{"use strict";var s=i(89857).LineDataSource,r=i(88564).DefaultProperty;class n extends s{constructor(e,t,s,r){super(e,t||n.createProperties(),s,r),this.version=n.version,i.e(1583).then(i.t.bind(i,82830,19)).then(({FlatBottomPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}pointsCount(){return 3}name(){return"Flat Bottom"}hasEditableCoordinates(){return!1}addPoint(e,t){return t&&t.shift()&&2===this.points().length&&this._snapPoint45Degree(e,this.points()[this.points().length-2]),s.prototype.addPoint.call(this,e)}setLastPoint(e,t){return t&&t.shift()&&2===this.points().length&&this._snapPoint45Degree(e,this.points()[this.points().length-2]),s.prototype.setLastPoint.call(this,e)}setPoint(e,t,i){if(i&&i.shift()&&1===e){this._snapPoint45Degree(t,this.points()[0])}if(2===e)this._points[1].index=t.index;else if(3===e)return this._points[0].index=t.index,this._points[2].price=t.price,void this.normalizePoints();super.setPoint(e,t)}getPoint(e){return e<3?s.prototype.getPoint.call(this,e):3===e?{index:this._points[0].index,price:this._points[2].price}:void 0}canHasAlert(){return!0}_getAlertPlots(){var e=this._points[0],t=this._points[1],i=[];e.index<=t.index?(i.push(e),i.push(t)):(i.push(t),i.push(e));var s=this._points[2];s.time=t.time,s.index=t.index;var r,n,o,a,l={price:s.price,time:e.time,index:e.index},c=[];s.index<=l.index?(c.push(s),c.push(l)):(c.push(l),c.push(s)),i[0].price>c[0].price?(r=i,n=c):c[0].price>i[0].price||c[1].price>i[1].price?(r=c,n=i):(r=i,n=c);var h=this.properties().extendLeft.value(),d=this.properties().extendRight.value();return e.index<=t.index?(o=h,a=d):(o=d,a=h),[this._linePointsToAlertPlot(r,"Upper",o,a),this._linePointsToAlertPlot(n,"Lower",h,a)]}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,14145))).GeneralTrendFiguresDefinitionsViewModel}static createProperties(e){var t=new r("linetoolflatbottom",e);return n._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e)}}n.version=1,t.LineToolFlatBottom=n},50301:(e,t,i)=>{"use strict";i.d(t,{createPropertiesObject:()=>a});var s=i(80643),r=i(34580);function n(e,t,i){var r;for(const n of Object.keys(null!==(r=e.levels)&&void 0!==r?r:{}))if(e.levels[n]&&(0,s.isSameType)(e.levels[n],t.typecheck())){let s=t.tpl();i.names.forEach((i,r)=>{s=t.fill(""+r,i,e.levels[n],s)}),e.levels[n]=s}return e}class o extends r.LevelsProperty{constructor(e,t){super(e,t,!1,{names:["width","color","visible"]},n)}}function a(e,t){return new o(e,t)}},52870:(e,t,i)=>{"use strict";i.d(t,{LineToolGannComplex:()=>d});var s=i(86441),r=i(88537),n=i(51264),o=i(89857),a=i(22423),l=i(50301),c=i(37865),h=i(22799);class d extends o.LineDataSource{constructor(e,t,s,r){super(e,t||d.createProperties(),s,r),this.version=2,this._scaleRatioFormatter=new n.LimitedPrecisionNumericFormatter(7),this.version=2,
i.e(1583).then(i.bind(i,72e3)).then(({GannComplexPaneView:e})=>{this._setPaneViews([new e(this,this.model())])});const o=this.properties();this._adjustScaleRatio(o),o.subscribe(this,this._adjustScaleRatio),o.childs().scaleRatio.subscribe(this,this._correctFirstPoint),this._syncStateExclusions=["scaleRatio"],o.onRestoreFactoryDefaults().subscribe(this,this._handleRestoringFactoryDefaults),this._onTemplateApplying.subscribe(this,this._handleTemplateApplying),this._onTemplateApplied.subscribe(this,this._correctFirstPoint)}migrateVersion(e,t,i){1===e&&(this._points.length>=this.pointsCount()?setTimeout(()=>this._migratePoint()):this._timePoint.length>=this.pointsCount()&&this._pointAdded.subscribe(this,this._migratePoint))}destroy(){const e=this.properties();e.unsubscribe(this,this._adjustScaleRatio),e.childs().scaleRatio.unsubscribe(this,this._correctFirstPoint),e.onRestoreFactoryDefaults().unsubscribe(this,this._handleRestoringFactoryDefaults),this._onTemplateApplying.unsubscribe(this,this._handleTemplateApplying),this._onTemplateApplied.unsubscribe(this,this._correctFirstPoint),super.destroy()}pointsCount(){return 2}name(){return"Gann Square"}addPoint(e,t,i){this._points.length>1&&this._points.pop();const s=super.addPoint(e,t,i),n=this.priceScale();return!(0,r.ensureNotNull)(n).isLog()&&s&&this._correctFirstPoint(),s}setPoint(e,t,i){super.setPoint(e,t,i),void 0!==i&&i.shift()?this._correctPoint(e):this._correctScaleRatio()}setLastPoint(e,t){const i=this.priceScale();return(0,r.ensureNotNull)(i).isLog()||(this._points[1]=e,this._correctPoint(1)),super.setLastPoint(e,t)}isReversed(){return this.properties().childs().reverse.value()}levelsCount(){return this.properties().childs().levels.childCount()}levels(){const e=[],t=this.properties().childs(),i=t.levels.childCount();for(let s=0;se.GannComplexAndFixedDefinitionsViewModel)}static _configureProperties(e){o.LineDataSource._configureProperties(e),e.addExclusion("scaleRatio");const t=[],i=[],s=e.childs();{const e=s.levels.childCount();for(let r=0;r0,o=s.index-r.index>0;let a=n&&!o||!n&&o?-1:1;0===e&&(a=-a),s.price=r.price+a*t*i,this._pointChanged.fire(e)}this.normalizePoints()}_correctFirstPoint(){this._correctPoint(this.isReversed()?0:1)}_handleRestoringFactoryDefaults(){this.properties().childs().scaleRatio.setValue(this._getAdjustedScaleRatio())}_handleTemplateApplying(e){""===e.scaleRatio&&(e.scaleRatio=this._getAdjustedScaleRatio())}_migratePoint(){if(this.points().length0){s=s.normalized();let e=Math.acos(s.x);return s.y>0&&(e=-e),e}return null}}},5094:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(24980).TranslatedString,n=i(89857).LineDataSource,o=i(34580).LevelsProperty,a=i(37865),l=a.LineToolWidthsProperty,c=a.LineToolColorsProperty,h=new r("erase level line",s("erase level line"));class d extends n{constructor(e,t,s,r){super(e,t||d.createProperties(),s,r),i.e(1583).then(i.bind(i,66323)).then(({GannFanPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}levelsCount(){return d.LevelsCount}pointsCount(){return 2}name(){return"Gann Fan"}processErase(e,t){var i="level"+t,s=this.properties()[i].visible;e.setProperty(s,!1,h)}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,73511))).GannFanDefinitionsViewModel}static createProperties(e){var t=new o("linetoolgannfan",e,!1,{range:[1,9]});return d._configureProperties(t),t}static _configureProperties(e){n._configureProperties(e);for(var t=[],i=[],s=1;s<=d.LevelsCount;s++)t.push(e.child("level"+s).child("linewidth")),i.push(e.child("level"+s).child("color"));e.addChild("linesColors",new c(i)),e.addChild("linesWidths",new l(t))}}d.LevelsCount=9,t.LineToolGannFan=d},33209:(e,t,i)=>{"use strict";i.d(t,{LineToolGannFixed:()=>l});var s=i(86441),r=i(88537),n=i(89857),o=i(37865),a=i(50301);class l extends n.LineDataSource{constructor(e,t,s,r){super(e,t||l.createProperties(),s,r),this._constructor="LineToolGannFixed",i.e(1583).then(i.bind(i,93695)).then(({GannFixedPaneView:e})=>{this._setPaneViews([new e(this,this.model())])}),this.properties().childs().reverse.subscribe(this,this._reversePoints)}pointsCount(){return 2}name(){return"Gann Square Fixed"}axisPoints(){const e=this.points(),t=this.getScreenPoints();return e.length<2||t.length<2?[]:[e[0],(0,r.ensureNotNull)(this.screenPointToPoint(t[1]))]}getScreenPoints(){const e=this.points();if(e.length<2)return[];const t=this._calcAngle();if(null===t)return[];const[i,n]=e,o=(0,r.ensureNotNull)(this.pointToScreenPoint(i)),a=(0,r.ensureNotNull)(this.pointToScreenPoint(n)),l=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),c=new s.Point(Math.cos(t),-Math.sin(t)),h=c.normalized(),d=h.x<0?-1:1,u=h.y<0?-1:1;return[o.addScaled(c,l),o.add(new s.Point(5*l*d,5*l*u))]}levelsCount(){return this.properties().childs().levels.childCount()}levels(){const e=[],t=this.properties().childs(),i=t.levels.childCount();for(let s=0;se.GannComplexAndFixedDefinitionsViewModel)}static _configureProperties(e){n.LineDataSource._configureProperties(e);const t=[],i=[],s=e.childs();{const e=s.levels.childCount();for(let r=0;r0&&(o=-o),o}_reversePoints(){const[e,t]=this._points;this._points[0]=t,this._points[1]=e,this.normalizePoints(),this.restart()}}},97433:(e,t,i)=>{"use strict";var s=i(89857).LineDataSource,r=i(34580).LevelsProperty,n=i(37865).LineToolColorsProperty,o=[4.5,9,11.25,18,22.5,36,45],a=function(){for(var e=[],t=o.length-1,i=1,s=0,r=0;r<1e10;)r=o[s]*i,e.push(Math.round(r)),e.push(Math.ceil(-r)),s===t-1&&(i*=10),s=(s+1)%t;return e.sort((function(e,t){return et?1:0})),e}();class l extends s{constructor(e,t,s,r){super(e,t||l.createProperties(),s,r),i.e(1583).then(i.t.bind(i,50527,19)).then(({GannSquarePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}hLevelsCount(){return l.HLevelsCount}vLevelsCount(){return l.VLevelsCount}pointsCount(){return 2}name(){return"Gann Box"}_alignPriceOnPattern(e,t){var i=Math.round(1e6*(e.price-t.price))/1e6;if(0===i)return t.price;for(var s=o[0],r=o[o.length-1],n=1,a=Math.abs(i);a=0&&!(o[c]*n=0?l:-l),e}_alignTimeOnPattern(e,t){var i=e.index-t.index;if(0===i)return 0;for(var s=a.length-2;s>=0&&!(a[s]0?1:0,e.index=t.index+a[s],e}_alignPointsFixedIncrement(e,t){return this._alignTimeOnPattern(e,t),this._alignPriceOnPattern(e,t),e}
_preparePoint(e,t){return t&&t.shift()&&0!==this._points.length&&this._alignPointsFixedIncrement(e,this._points[0]),super._preparePoint(e,t)}getPoint(e){if(e<2)return super.getPoint(e);var t=null;switch(e){case 2:case 3:var i=this.points();if(i.length===this.pointsCount()){var s=i[0].index,r=i[1].price;3===e&&(s=i[1].index,r=i[0].price),t={index:s,price:r}}}return t}setPoint(e,t,i){if(i&&i.shift()){var s=e%2==0?this._points[1]:this._points[0];this._alignPointsFixedIncrement(t,s)}switch(e){case 2:this._points[0].index=t.index,this._points[1].price=t.price;break;case 3:this._points[1].index=t.index,this._points[0].price=t.price;break;default:super.setPoint(e,t,i)}}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,58026))).GannSquareDefinitionsViewModel}static createProperties(e){var t=new r("linetoolgannsquare",e,!1,{range:[1,7],prefixes:["h","v"],names:["coeff","color","visible"]});return l._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e);for(var t=[e.child("color"),e.child("fans").child("color")],i=1;i<=l.HLevelsCount;i++)t.push(e.child("hlevel"+i).child("color"));for(i=1;i<=l.VLevelsCount;i++)t.push(e.child("vlevel"+i).child("color"));e.addChild("linesColors",new n(t)),e.addExclusion("linesColors")}}l.HLevelsCount=7,l.VLevelsCount=7,t.LineToolGannSquare=l},82241:(e,t,i)=>{"use strict";i.d(t,{LineToolGhostFeed:()=>c});var s=i(88564),r=i(89857),n=i(88537),o=i(80643);class a{constructor(e,t,i){this._source=e,this._segmentIndex=t,this._bars=null!=i?i:[]}setBars(e){this._bars=e}clone(e){return new a(e,this._segmentIndex,(0,o.clone)(this._bars))}generate(){this._bars=[];const e=this._source.points(),t=e[this._segmentIndex],i=e[this._segmentIndex+1];if(!t||!i||t.index===i.index)return;const s=this._segmentIndex?t.index+1:t.index,r=Math.sign(i.index-t.index);for(let e=s;e!==i.index;e+=r)this._bars.push(this._createBar())}bars(){return this._bars}setSize(e){if(e{this._setPaneViews([new t.GhostFeedPaneView(this,e)])})}isSynchronizable(){return!1}destroy(){this.properties().onRestoreFactoryDefaults().unsubscribe(this,this._handleRestoringFactoryDefaults),super.destroy()}propertiesChanged(){super.propertiesChanged(),this._currentAverageHL===this.properties().childs().averageHL.value()&&this._currentVariance===this.properties().childs().variance.value()||this._regenerate()}pointsCount(){return-1}name(){return"Ghost Feed"}segmentBars(e){return this._segments[e].bars()}segments(){return this._segments}generateBars(e){this._segments.length<=e&&this._segments.push(new a(this,e)),this._segments[e].generate()}addPoint(e,t,i){if(this._finished)return!0;if(this._points.length>0){const i=this._points[this._points.length-1];if(!(null==t?void 0:t.isApiEvent())&&i.index===e.index){this._lastPoint=null,this.normalizePoints(),this.createServerPoints();for(let e=0;e1&&this.generateBars(this._points.length-2),s}finish(){this._finished=!0,this._lastPoint=null,this.normalizePoints(),this.createServerPoints()}setPoint(e,t,i,s){if(super.setPoint(e,t,i),e>0){const i=this.points()[e-1],s=t.index-i.index;this._segments[e-1].setSize(Math.abs(s))}if(e({bars:[...e.bars()]})),t}restoreData(e){e.segments&&(this._segments=e.segments.map((e,t)=>new a(this,t,e.bars))),this._currentAverageHL=this.properties().childs().averageHL.value(),this._currentVariance=this.properties().childs().variance.value()}onData(e){super.onData(e);if(!this.pointsProperty().childs().points.child("0"))for(let e=0;ee.clone(this))}startMoving(e,t,i,s){super.startMoving(e,t,i,s),this._preparePixelSegments()}move(e,t,i,s){super.move(e,t,i,s),this._restoreSegmentsFromPixels()}endMoving(e,t){return this._segmentsPixelsWhileMoving=null,super.endMoving(e,t)}static createProperties(e){const t=new s.DefaultProperty("linetoolghostfeed",e);return c._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,65818))).GhostFeedDefinitionsViewModel}_handleRestoringFactoryDefaults(){const e=Math.round(this._calculateATR());this.properties().childs().averageHL.setValue(e)}_regenerate(){this._currentAverageHL=this.properties().childs().averageHL.value(),this._currentVariance=this.properties().childs().variance.value(),this._segments.forEach(e=>e.generate()),
this.updateAllViews((0,l.dataSourceChangeEvent)(this.id())),this._model.updateSource(this)}_calculateATR(){const e=this._model.mainSeries(),t=[];e.bars().each((e,i)=>{const s=i[2],r=i[3];return null!=s&&null!=r&&t.push(s-r),!1});let i=0===t.length?0:t.reduce((e,t)=>e+t,0)/t.length;return i*=e.base(),i}_preparePixelSegments(){var e,t;const i=this.priceScale(),s=null!==(t=null===(e=this.ownerSource())||void 0===e?void 0:e.firstValue())&&void 0!==t?t:null;if(null===i||null===s||i.isEmpty()||!i.isLog())return;const r=this.points();this._segmentsPixelsWhileMoving=this._segments.map((e,t)=>{const n=r[t].price,o=r[t+1].price,a=i.priceToCoordinate(n,s),l=(i.priceToCoordinate(o,s)-a)/(e.bars().length-1);return{bars:e.bars().map((e,t)=>{const r=a+t*l,n=i.coordinateToPrice(r,s);return{open:i.priceToCoordinate(n+e.o,s)-r,high:i.priceToCoordinate(n+e.h,s)-r,low:i.priceToCoordinate(n+e.l,s)-r,close:i.priceToCoordinate(n+e.c,s)-r}})}})}_restoreSegmentsFromPixels(){var e,t;const i=this.priceScale(),s=null!==(t=null===(e=this.ownerSource())||void 0===e?void 0:e.firstValue())&&void 0!==t?t:null;if(null===i||null===s||null===this._segmentsPixelsWhileMoving)return;const r=this.points();this._segmentsPixelsWhileMoving.forEach((e,t)=>{const n=this._segments[t],o=r[t].price,a=r[t+1].price,l=i.priceToCoordinate(o,s),c=(i.priceToCoordinate(a,s)-l)/(e.bars.length-1),h=n.bars().map((t,r)=>{const n=e.bars[r],o=l+r*c,a=i.coordinateToPrice(o,s);return{...t,o:i.coordinateToPrice(n.open+o,s)-a,h:i.coordinateToPrice(n.high+o,s)-a,l:i.coordinateToPrice(n.low+o,s)-a,c:i.coordinateToPrice(n.close+o,s)-a}});n.setBars(h)})}}},90378:(e,t,i)=>{"use strict";i.d(t,{LineToolHeadAndShoulders:()=>o});var s=i(88564),r=i(89857),n=i(37865);class o extends r.LineDataSource{constructor(e,t,s,r){const n=t||o.createProperties();super(e,n,s,r),i.e(1583).then(i.bind(i,75545)).then(t=>{this._setPaneViews([new t.LineToolHeadAndShouldersPaneView(this,e)])})}pointsCount(){return 7}name(){return"Head and Shoulders"}static createProperties(e){const t=new s.DefaultProperty("linetoolheadandshoulders",e);return o._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,93262)).then(e=>e.PatternWithBackgroundDefinitionViewModel)}static _configureProperties(e){r.LineDataSource._configureProperties(e),e.addChild("linesColors",new n.LineToolColorsProperty([e.childs().color])),e.addChild("textsColors",new n.LineToolColorsProperty([e.childs().textcolor]))}}},65649:(e,t,i)=>{"use strict";i.d(t,{LineToolHighlighter:()=>n});var s=i(88564),r=i(27258);class n extends r.LineToolBrushBase{constructor(e,t,i,s){super(e,t||n.createProperties(),i,s),this._loadPaneViews(e)}smooth(){return this.properties().childs().smooth.value()}name(){return"Highlighter"}static createProperties(e){const t=new s.DefaultProperty("linetoolhighlighter",e);return n._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){
return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,19461)).then(e=>e.HighlighterDefinitionsViewModel)}_loadPaneViews(e){i.e(1583).then(i.bind(i,94672)).then(t=>{this._setPaneViews([new t.HighlighterPaneView(this,e)])})}static _configureProperties(e){r.LineToolBrushBase._configureProperties(e)}}},10198:(e,t,i)=>{"use strict";i.d(t,{LineToolHorzLinePriceAxisView:()=>r});var s=i(97938);class r extends s.PriceAxisView{constructor(e){super(),this._source=e}_updateRendererData(e,t,i){e.visible=!1;const s=this._source.points(),r=this._source.priceScale();if(0===s.length||null===r||r.isEmpty())return;const n=s[0];if(!isFinite(n.price))return;const o=this._source.ownerSource(),a=null!==o?o.firstValue():null;if(null===a)return;const l=this._source.properties().linecolor.value();i.background=l,i.textColor=this.generateTextColor(l),i.coordinate=r.priceToCoordinate(n.price,a),e.text=r.formatPrice(n.price,a),e.visible=!0}}},8877:(e,t,i)=>{"use strict";i.d(t,{LineToolHorzLine:()=>l});var s=i(2015),r=i.n(s),n=i(88564),o=i(89857),a=i(10198);class l extends o.LineDataSource{constructor(e,t,s,r){super(e,t||l.createProperties(),s,r),this._priceAxisView=new a.LineToolHorzLinePriceAxisView(this),i.e(1583).then(i.bind(i,8196)).then(({HorzLinePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}state(e){const t=super.state(e);return t.points&&0!==t.points.length&&(t.points[0].offset=0),t}pointsCount(){return 1}name(){return"Horizontal Line"}priceAxisViews(e,t){return this.isSourceHidden()||t!==this.priceScale()||!this._model.selection().isSelected(this)&&!this.properties().childs().showPrice.value()||e!==this._model.paneForSource(this)?null:[this._priceAxisView]}timeAxisViews(){return null}timeAxisPoints(){return[]}updateAllViews(e){super.updateAllViews(e),this._priceAxisView.update(e)}canHasAlert(){return!0}template(){const e=super.template();return e.text=this.properties().childs().text.value(),e}denormalizeTimePoints(){this._points=[],this._timePoint.length>0&&this._points.push({price:this._timePoint[0].price,index:0})}clearData(){const e=this._points;super.clearData(),this._points=e}static createProperties(e){const t=new n.DefaultProperty("linetoolhorzline",e);return l._configureProperties(t),t}_getAlertPlots(){return[this.points()[0].price]}_pointsForPointset(){return[]}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,81204)).then(e=>e.HorizontalLineDefinitionsViewModel)}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text||"")}static _configureProperties(e){o.LineDataSource._configureProperties(e),e.hasChild("text")||e.addChild("text",new(r())("")),e.addExclusion("text")}}},10471:(e,t,i)=>{"use strict";i.d(t,{LineToolHorzRay:()=>l});var s=i(88564),r=i(2015),n=i.n(r),o=i(10198),a=i(89857);class l extends a.LineDataSource{constructor(e,t,s,r){super(e,null!=t?t:l.createProperties(),s,r),this._priceAxisView=new o.LineToolHorzLinePriceAxisView(this),i.e(1583).then(i.bind(i,95325)).then(({HorzRayPaneView:e})=>{
this._setPaneViews([new e(this,this._model)])})}pointsCount(){return 1}name(){return"Horizontal Ray"}priceAxisViews(e,t){return this.isSourceHidden()||t!==this.priceScale()||!this._model.selection().isSelected(this)&&!this.properties().childs().showPrice.value()||e!==this._model.paneForSource(this)?null:[this._priceAxisView]}updateAllViews(e){super.updateAllViews(e),this._priceAxisView.update(e)}template(){const e=super.template();return e.text=this.properties().childs().text.value(),e}canHasAlert(){return!0}static createProperties(e){const t=new s.DefaultProperty("linetoolhorzray",e);return l._configureProperties(t),t}_getAlertPlots(){const e=this._points[0],t={index:e.index+1,price:e.price};return[this._linePointsToAlertPlot([e,t],null,!1,!0)]}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,58148))).HorizontalRayDefinitionsViewModel}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text||"")}static _configureProperties(e){a.LineDataSource._configureProperties(e),e.hasChild("text")||e.addChild("text",new(n())("")),e.addExclusion("text")}}},74468:(e,t,i)=>{"use strict";i.d(t,{LineToolIcon:()=>l});var s=i(88537),r=i(86441),n=i(88564),o=i(89857),a=i(37865);class l extends o.LineDataSource{constructor(e,t,s,r){super(e,t||l.createProperties(),s,r),this.version=1,document.fonts&&document.fonts.check&&document.fonts.load&&!document.fonts.check("12px FontAwesome")&&document.fonts.load("12px FontAwesome","☺").then(()=>{this._isDestroyed||e.updateSource(this)}),i.e(1583).then(i.bind(i,78583)).then(t=>{this._setPaneViews([new t.IconPaneView(this,e)])})}pointsCount(){return 1}name(){return"Icon"}hasEditableCoordinates(){return!1}getAnchorLimit(){return 80}applyTemplate(e){delete e.icon,super.applyTemplate(e)}getChangePointForSync(e){return null}setPoint(e,t,i){const n=Object.assign({},t),o=(0,s.ensureNotNull)(this.pointToScreenPoint(this.points()[0])),a=(0,s.ensureNotNull)(this.pointToScreenPoint(n)).subtract(o),l=this.properties().childs();if(0===e||1===e){const t=a.normalized();let i=Math.acos(-t.x);Math.asin(t.y)>0&&(i=2*Math.PI-i),0===e&&(i+=Math.PI),l.angle.setValue(i)}else{const t=a.add(new r.Point(15*(3===e?-1:1),0));l.size.setValue(2*Math.abs(t.x))}}getSourceIcon(){return{type:"text",text:String.fromCharCode(this.properties().childs().icon.value())}}static createProperties(e){const t=new n.DefaultProperty("linetoolicon",e);return l._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,80449)).then(e=>e.IconsDefinitionsViewModel)}static _configureProperties(e){o.LineDataSource._configureProperties(e),e.addChild("backgroundsColors",new a.LineToolColorsProperty([e.childs().color])),e.addExclusion("angle")}}},51139:(e,t,i)=>{"use strict";i.d(t,{LineToolInfoLine:()=>n});var s=i(88564),r=i(57649);class n extends r.LineToolTrendLine{constructor(e,t,i,s){super(e,t||n.createProperties(),i,s)}pointsCount(){return 2}name(){return"Info Line"}
static createProperties(e){const t=new s.DefaultProperty("linetoolinfoline",e);return n._configureProperties(t),t}static _configureProperties(e){r.LineToolTrendLine._configureProperties(e)}}},87639:(e,t,i)=>{"use strict";var s=i(34580).LevelsProperty,r=i(40100).LineToolPitchfork;class n extends r{constructor(e,t,i,s){super(e,t||n.createProperties(),i,s)}name(){return"Inside Pitchfork"}static createProperties(e){var t=new s("linetoolinsidepitchfork",e,!1,{range:[0,8]});return n._configureProperties(t),t}static _configureProperties(e){r._configureProperties(e)}}t.LineToolInsidePitchfork=n},44601:(e,t,i)=>{"use strict";var s;i.r(t),i.d(t,{isMtpPredictorToolName:()=>o,isStudyLineToolName:()=>a,isLineToolName:()=>l,isLineDrawnWithPressedButton:()=>c,isLineToolFinishRequiredWhenCreatedByApi:()=>h,isLineToolDrawWithoutPoints:()=>d,isImageToolName:()=>u,isTextToolName:()=>p});var r=i(72708);const n=new Set([]);function o(e){return n.has(e)}function a(e){return"LineToolRegressionTrend"===e||"LineToolVbPFixed"===e||"LineToolFixedRangeVolumeProfile"===e}function l(e){return e in(s||(s=i.t(r,2)))||a(e)}function c(e){return"LineToolBrush"===e||"LineToolHighlighter"===e}function h(e){return c(e)||"LineToolPath"===e||"LineToolPolyline"===e||"LineToolGhostFeed"===e}function d(e){return"LineToolTweet"===e||"LineToolIdea"===e||"LineToolImage"===e}function u(e){return"LineToolImage"===e}function p(e){switch(e){case"LineToolBalloon":case"LineToolText":case"LineToolTextAbsolute":case"LineToolCallout":case"LineToolNote":case"LineToolNoteAbsolute":case"LineToolSignpost":return!0}return!1}},50144:(e,t,i)=>{"use strict";i.d(t,{LineDataSourceBase:()=>B});var s=i(86441),r=i(88537),n=i(76422),o=i(98125),a=i(62443),l=i(85733),c=i(2872),h=i.n(c),d=i(2015),u=i.n(d),p=i(37865),_=i(22474),m=i(19528);class g extends(u()){constructor(e,t){super(),this._lineSource=e,this._pointIndex=t,e.pointAdded().subscribe(this,e=>{this._pointIndex===e&&this._listeners.fire(this)}),e.pointChanged().subscribe(this,e=>{this._pointIndex===e&&this._listeners.fire(this)})}value(){const e=this._lineSource.points()[this._pointIndex].price,t=(0,r.ensureNotNull)(this._lineSource.ownerSource()).formatter();if(t.parse){const i=t.format(e),s=t.parse(i);return s.res?s.value:e}return e}setValue(e){const t=this._lineSource.points()[this._pointIndex];t.price=parseFloat(""+e),this._lineSource.startChanging(this._pointIndex,t),this._lineSource.setPoint(this._pointIndex,t),this._lineSource.model().updateSource(this._lineSource),this._listeners.fire(this);const i=this._lineSource.endChanging(!0,!1);this._lineSource.syncMultichartState(i)}}var f=i(38015),v=i(29823),S=i(98619),y=i(14791),b=i(37667),w=i(52714),C=i.n(w),P=i(23653),T=i(9315),x=i(36759),I=i(52418),M=i(20838),L=i(80643),A=i(33291),E=i(79680);const k=(0,o.getLogger)("Chart.LineDataSource");class D{constructor(){this._states=[]}start(e){this._states.push(e)}finish(e){const t=(0,r.ensureDefined)(this._states.pop());return s=t,(i=e).length!==s.length?{indexesChanged:!0,pricesChanged:!0}:i.reduce((e,t,i)=>{const r=s[i]
;return e.indexesChanged=e.indexesChanged||t.index!==r.index,e.pricesChanged=e.pricesChanged||t.price!==r.price,e},{indexesChanged:!1,pricesChanged:!1});var i,s}isEmpty(){return 0===this._states.length}}let V=0;class B extends a.DataSource{constructor(e,t,i,s){if(super(s),this.version=1,this.customization={forcePriceAxisLabel:!1,disableErasing:!1,disableSave:!1,showInObjectsTree:!0},this._currentPointsetAndSymbolId=null,this._pointChanged=new(h()),this._pointAdded=new(h()),this._alertUndoMode=!1,this._priceAxisViews=[],this._timeAxisViews=[],this._timePoint=[],this._points=[],this._lastPoint=null,this._paneViews=new Map,this._normalizedPointsChanged=new(h()),this._fixedPointsChanged=new(h()),this._changeStatesStack=new D,this._startMovingPoint=null,this._currentMovingPoint=null,this._fixedPoints=[],this._isActualSymbol=!1,this._isActualInterval=!1,this._isActualCurrency=!1,this._isActualUnit=!1,this._isDestroyed=!1,this._sharingMode=new(C())(0),this._onTemplateApplying=new(h()),this._onTemplateApplied=new(h()),this._syncStateExclusions=[],this._definitionsViewModel=null,this._syncLineStyleMuted=!1,this._onIsActualIntervalChange=new(h()),this._linkKey=new(C())(null),this._serverUpdateTime=null,this._boundCalcIsActualSymbol=this.calcIsActualSymbol.bind(this),this._model=e,this._properties=t,this._localAndServerAlertsMismatch=!1,this._properties.hasChild("interval")||this._properties.addChild("interval",new(u())(e.mainSeries().interval())),this.calcIsActualSymbol(),this._properties.childs().intervalsVisibilities.listeners().subscribe(this,this.calcIsActualSymbol),this._properties.subscribe(this,()=>this.propertiesChanged()),this._createPointsProperties(),this.pointsCount()>0)for(let e=0;e{const t=!1===(0,l.hideAllDrawings)().value();e.value()?e.value()&&t&&n.emit("drawing_event",this._id,"show"):(this._model.selection().isSelected(this)&&this._model.selectionMacro(e=>{e.removeSourceFromSelection(this)}),t&&n.emit("drawing_event",this._id,"hide")),this._onSourceHiddenMayChange()}),(0,l.hideAllDrawings)().subscribe(this,this._onSourceHiddenMayChange),this._definitionsViewModel=null,this._isDestroyed=!1}destroy(){this._paneViews.forEach((e,t)=>this._destroyPanePaneViews(t)),this.stop(),null!==this._definitionsViewModel&&(this._definitionsViewModel.destroy(),this._definitionsViewModel=null),null!==this._ownerSource&&(this._ownerSource.currencyChanged().unsubscribeAll(this),this._ownerSource.unitChanged().unsubscribeAll(this),(0,E.isSymbolSource)(this._ownerSource)&&(this._ownerSource.symbolResolved().subscribe(this,this._boundCalcIsActualSymbol),this._ownerSource.isActingAsSymbolSource().unsubscribe(this._boundCalcIsActualSymbol))),this.ownerSourceChanged().unsubscribeAll(this),(0,l.hideAllDrawings)().unsubscribeAll(this),this.deleteAlert(),this._isDestroyed=!0}createPriceAxisView(e){return new _.LineToolPriceAxisView(this,{
pointIndex:e})}model(){return this._model}linkKey(){return this._linkKey}serverUpdateTime(){return this._serverUpdateTime}setServerUpdateTime(e){this._serverUpdateTime=e}boundToSymbol(){return!0}points(){const e=[];for(let t=0;t0&&(this._points=e)}restorePoints(e,t,i){const s=this._timePoint.length>0&&!(0,L.deepEquals)(this._timePoint,e)[0];this._timePoint=(0,S.deepCopy)(e),this._points=t,i||this.denormalizeTimePoints(),s&&this._normalizedPointsChanged.fire()}restorePositionPercents(e){this._positionPercents=e}calcIsActualSymbol(){if(this._model.mainSeries().hasDelayedSymbolIntervalChange())return;const e=this.ownerSource();if(null===e)this._isActualSymbol=!1;else{const t=(0,r.ensureNotNull)(e.symbolSource());this._migrateSymbolProperty();const i=this._properties.childs().symbol,s=i.value();if(this._isActualSymbol=t.symbolSameAsCurrent(s),this._isActualSymbol){const e=t.symbol();(0,y.areEqualSymbols)(s,e)||(k.logWarn('Possible drawing "migrating" detected from "'+s+'" to "'+e+'"'),k.logWarn("Series symbolInfo: "+JSON.stringify(t.symbolInfo())),k.logWarn(""+(new Error).stack)),i.setValue(e)}}this.calcIsActualInterval(),this.calcIsActualCurrency(),this.calcIsActualUnit(),this._onSourceHiddenMayChange()}calcIsActualCurrency(){const e=this.ownerSource();if(null===e)return void(this._isActualCurrency=!1);let t=this._properties.childs().currencyId.value();if(null!==t){const i=e.symbolSource();if(null===i)return;0,this._isActualCurrency=t===(0,b.symbolCurrency)(i.symbolInfo(),void 0,!0)}else{const t=(0,
r.ensureNotNull)(e.symbolSource()).symbolInfo();this._isActualCurrency=null!==t&&(0,b.symbolCurrency)(t)===(0,b.symbolOriginalCurrency)(t)}this._onSourceHiddenMayChange()}calcIsActualUnit(){const e=this.ownerSource();if(null===e)return void(this._isActualUnit=!1);const t=this._properties.childs().unitId.value();if(null!==t)this._isActualUnit=t===(0,r.ensureNotNull)(e.symbolSource()).unit();else{const t=(0,r.ensureNotNull)(e.symbolSource()).symbolInfo(),i=this._model.unitConversionEnabled();this._isActualUnit=null!==t&&(0,b.symbolUnit)(t,i)===(0,b.symbolOriginalUnit)(t,i)}this._onSourceHiddenMayChange()}calcIsActualInterval(){const e=this._isActualInterval,t=this._properties,i=this._model.mainSeries();this._isActualInterval=(0,x.isActualInterval)(v.Interval.parse(i.interval()),t.childs().intervalsVisibilities),!this._isActualInterval&&this._model.selection().isSelected(this)&&this._model.selectionMacro(e=>e.removeSourceFromSelection(this)),this._isActualInterval!==e&&this._onIsActualIntervalChange.fire(),this._onSourceHiddenMayChange()}paneViews(e){if(this.isSourceHidden())return null;const t=this._getPaneViews(this.isMultiPaneAvailable()?e:void 0);if(null===t)return null;if(1===t.length)return[t[0]];const i=[];for(let e=t.length-1;e>=0;--e)i.push(t[e]);return i}isSavedInChart(){return!this.customization.disableSave}setSavingInChartEnabled(e){this.customization.disableSave=!e}detachAlert(){const e=this.getAlertSync();if(e&&this._alertCallbacks){const t=this._alertCallbacks;e.off("destroy",t.remove),e.off("change:hovered",t.hovered),e.off("change:selected",t.selected)}this.hasAlert.setValue(!1),this._alertId=void 0}removeAlert(){this._alertId=void 0,this.hasAlert.setValue(!1)}deleteAlert(){0}areLocalAndServerAlertsMismatch(){return this._localAndServerAlertsMismatch}showInObjectTree(){return this.customization.showInObjectsTree}setShowInObjectsTreeEnabled(e){this.customization.showInObjectsTree=e}start(){this.createServerPoints()}processHibernate(){this.isSourceHidden()?this.isStarted()&&this.stop():this.isStarted()||this.start()}onData(e){"pointset_error"!==e.method?e.params.customId===this._currentPointsetIdWithPrefix()&&this._onPointsetUpdated(e.params.plots):k.logError(`Error getting pointset: ${e.params[0]} ${e.params[1]}`)}isActualSymbol(){return this._isActualSymbol}isActualCurrency(){return this._isActualCurrency}isActualInterval(){return this._isActualInterval}isActualUnit(){return this._isActualUnit}onIsActualIntervalChange(){return this._onIsActualIntervalChange}setOwnerSource(e){null!==this._ownerSource&&(this._ownerSource.currencyChanged().unsubscribeAll(this),this._ownerSource.unitChanged().unsubscribeAll(this)),null!==this._ownerSource&&(0,E.isSymbolSource)(this._ownerSource)&&(this._ownerSource.symbolResolved().unsubscribe(this,this._boundCalcIsActualSymbol),this._ownerSource.isActingAsSymbolSource().unsubscribe(this._boundCalcIsActualSymbol)),super.setOwnerSource(e),e&&(this.setPriceScale(e.priceScale()),e.currencyChanged().subscribe(this,this.calcIsActualCurrency),
e.unitChanged().subscribe(this,this.calcIsActualUnit),this.calcIsActualSymbol(),this._migrateZOrder()),(0,E.isSymbolSource)(e)&&(e.symbolResolved().subscribe(this,this._boundCalcIsActualSymbol),e.isActingAsSymbolSource().subscribe(this._boundCalcIsActualSymbol))}dataAndViewsReady(){return this._paneViews.size>0}pointAdded(){return this._pointAdded}pointChanged(){return this._pointChanged}pointToScreenPoint(e){var t;const i=this._model.timeScale(),r=this.priceScale(),n=null===(t=this.ownerSource())||void 0===t?void 0:t.firstValue();if(!r||r.isEmpty()||i.isEmpty()||null==n)return null;const o=i.indexToCoordinate(e.index),a=r.priceToCoordinate(e.price,n);return new s.Point(o,a)}screenPointToPoint(e){var t;const i=this.priceScale(),s=null===(t=this.ownerSource())||void 0===t?void 0:t.firstValue();if(null==s||!isFinite(s)||null===i)return null;const r=this._model.timeScale().coordinateToIndex(e.x);return{price:i.coordinateToPrice(e.y,s),index:r}}addPoint(e,t,i){const s=this._preparePoint(e,t);return this._addPointIntenal(s,t,i)}propertiesChanged(e){this.calcIsActualInterval(),this.updateAllViewsAndRedraw((0,A.dataSourceChangeEvent)(this.id())),e||this._syncLineStyleIfNeeded(),void 0===this._pendingPropertyChangedEvent&&(this._pendingPropertyChangedEvent=setTimeout(()=>{this._pendingPropertyChangedEvent=void 0,n.emit("drawing_event",this._id,"properties_changed")},0))}state(e){var t,i;const s={type:this.toolname,id:this.id(),state:this.properties().state(null!==(t=this._propertiesStateExclusions())&&void 0!==t?t:void 0),points:(0,S.deepCopy)(this._timePoint),zorder:this.zorder(),ownerSource:null===(i=this.ownerSource())||void 0===i?void 0:i.id()};return this.linkKey().value()&&(s.linkKey=this.linkKey().value()),delete s.state.points,e&&(s.indexes=this._points),this.isFixed()&&(s.positionPercents=this._positionPercents||this.calcPositionPercents()),"version"in this&&1!==this.version&&(s.version=this.version),this._saveAlertIdInState()&&this.hasAlert.value()&&void 0!==this._alertId&&(s.alertId=this._alertId.toString()),s}updateAllViews(e){this._isActualSymbol&&this._isActualCurrency&&this._isActualUnit&&this._isActualInterval&&this._properties.childs().visible.value()&&(this._updateAllPaneViews(e),this._priceAxisViews.forEach(t=>t.update(e)),this._timeAxisViews.forEach(t=>t.update(e)))}updateAllViewsAndRedraw(e){this.updateAllViews(e),this._model.updateSource(this)}properties(){return this._properties}restoreExternalPoints(e,t){if(this._timePoint=(0,S.deepCopy)(e.points),t.indexesChanged){if(this.properties().childs().interval.setValue(e.interval),!this.isActualSymbol())return this._clearServerPoints(),void this._normalizedPointsChanged.fire();this.createServerPoints()}else{const t=Math.min(this._points.length,e.points.length);for(let i=0;i0&&this.normalizePoints(),!this._readyToCreatePointset())return;const e=this._pointsForPointset();if(0===e.length)return;++V,this._currentPointsetAndSymbolId={pointsetId:V,symbolId:(0,r.ensureNotNull)(this._model.mainSeries().seriesSource().symbolInstanceId())};const t=(0,T.getServerInterval)(this.properties().childs().interval.value());this._model.chartApi().createPointset(this._currentPointsetIdWithPrefix(),"turnaround",this._currentPointsetAndSymbolId.symbolId,t,e,this.onData.bind(this))}finish(){}realign(){var e;this.calcIsActualSymbol(),this.isFixed()||this.isSourceHidden()||this._model.lineBeingCreated()===this||this._model.lineBeingEdited()===this||(null===(e=this._currentPointsetAndSymbolId)||void 0===e?void 0:e.symbolId)===this._model.mainSeries().seriesSource().symbolInstanceId()||this._clearServerPoints(),this.updateAllViews((0,A.dataSourceChangeEvent)(this.id()))}stop(){this._clearServerPoints()}restart(){this.isFixed()||(this._currentPointsetAndSymbolId=null,this.createServerPoints())}isStarted(){return null!==this._currentPointsetAndSymbolId}convertYCoordinateToPriceForMoving(e,t){var i;const s=(0,r.ensureNotNull)(this.priceScale());if(s.isEmpty())return null;const n=this.ownerSource(),o=(0,r.ensure)(null===(i=n||t)||void 0===i?void 0:i.firstValue());return s.coordinateToPrice(e,o)}syncMultichartState(e){const t={points:this._timePoint,interval:this._model.mainSeries().interval()},i=this.linkKey().value();if(null!==i&&this.isSynchronizable()){const s={model:this._model,linkKey:i,symbol:this._model.mainSeries().symbol(),finalState:t,changes:e};(0,l.finishChangingLineTool)(s)}}enableCurrentIntervalVisibility(){const e=this.properties().childs().intervalsVisibilities.state();void 0!==e&&((0,x.makeIntervalsVisibilitiesVisibleAtInterval)(e,v.Interval.parse(this._model.mainSeries().interval())),this.properties().childs().intervalsVisibilities.mergeAndFire(e))}clonePositionOffset(){return this.isFixed()?{barOffset:0,xCoordOffset:20,yCoordOffset:20}:{barOffset:0,xCoordOffset:0,yCoordOffset:-40}}sharingMode(){return this._sharingMode}share(e){
this.isSynchronizable()&&this._sharingMode.setValue(e)}syncLineStyleState(){const e=this.properties().state(this._syncStateExclusions);return delete e.interval,e.intervalsVisibilities=(0,x.mergeIntervalVisibilitiesDefaults)(e.intervalsVisibilities),e}_correctLastPoint(e){return(0,L.clone)(e)}_pointsForPointset(){return this._timePoint.map(e=>[e.time_t,e.offset])}_snapPoint45Degree(e,t,i){const s=this._model.timeScale(),n=s.indexToCoordinate(t.index),o=s.indexToCoordinate(e.index)-n,a=(0,r.ensureNotNull)(this.priceScale()),l=t.price,c=e.price,h=(0,r.ensureNotNull)((0,r.ensureNotNull)(this.ownerSource()).firstValue()),d=a.priceToCoordinate(l,h),u=a.priceToCoordinate(c,h)-d,p=Math.round(Math.atan2(o,u)/Math.PI*4);if(2===Math.abs(p))i||(e.price=l);else if(0===Math.abs(p)||4===Math.abs(p))i||(e.index=t.index);else{const t=Math.sqrt(o*o+u*u),i=o<0?-1:1,r=u<0?-1:1;let l=Math.max(Math.abs(u),Math.abs(o));l/=l*Math.sqrt(2)/t;const c=Math.round(s.coordinateToIndex(n+l*i)),p=Math.abs(s.indexToCoordinate(c)-n),_=a.coordinateToPrice(d+p*r,h);e.index=c,e.price=_}}normalizePoint(e){return{...this._model.timeScale().normalizeBarIndex(e.index),price:e.price}}normalizePoints(){this._timePoint=[];for(let e=0;ethis._destroyPanePaneViews(t)),this._model.lightUpdate()}_getPaneViews(e){return this._paneViews.get(e)||null}_updateAllPaneViews(e){this._paneViews.forEach(t=>{for(const i of t)i.update(e)})}_alignPointHorizontallyOrVertically(e){const t=(0,r.ensureNotNull)(this.pointToScreenPoint(e)),i=(0,r.ensureDefined)((0,r.ensureNotNull)(this._startMovingPoint).logical),s=(0,r.ensureDefined)((0,r.ensureNotNull)(this._startMovingPoint).screen),n=Math.abs(s.x-t.x),o=Math.abs(s.y-t.y);if(n<10&&o<10)return e;return{index:n=1){for(let t=0;t=2&&this._snapTo45DegreesAvailable()&&this._snapPoint45Degree(i,this.points()[this.points().length-2]),i}_addPointIntenal(e,t,i){this._points.push(e);const s=this._points.length===this.pointsCount();return s?(this._lastPoint=null,i||(this.normalizePoints(),this.createServerPoints())):this._lastPoint=e,this._pointAdded.fire(this._points.length-1),s}_onSourceHiddenMayChange(){this._model.invalidate(P.InvalidationMask.validateAction(()=>{this!==this._model.lineBeingCreated()&&(this._isDestroyed||this.processHibernate())}))}_saveAlertIdInState(){return!0}_onPointsetUpdated(e){if(0===e.length)return;for(let t=0;t0}_onAlertData(e){}_propertiesStateExclusions(){return null}_syncLineStyleIfNeeded(){const e=this.linkKey().value();!this._syncLineStyleMuted&&e&&(0,l.changeLineStyle)({
linkKey:e,state:this.syncLineStyleState(),model:this._model})}_muteSyncLineStyle(){this._syncLineStyleMuted=!0}_unmuteSyncLineStyleWithoutApplyingChanges(){this.propertiesChanged(),this._syncLineStyleMuted=!1}_applyTemplateImpl(e){e.intervalsVisibilities=(0,x.mergeIntervalVisibilitiesDefaults)(e.intervalsVisibilities);const t=this.properties();t.mergePreferences(e),t.saveDefaults(),this.propertiesChanged()}_getPropertyDefinitionsViewModelClass(){return Promise.resolve(null)}static _configureProperties(e){if(B._addCollectedProperties(e),e.hasChild("symbolStateVersion")||e.addChild("symbolStateVersion",new(u())(B._initialSymbolStateVersion())),e.hasChild("zOrderVersion")||e.addChild("zOrderVersion",new(u())(B._initialZOrderVersion())),e.hasChild("visible")||e.addChild("visible",new(u())(!0)),e.hasChild("frozen")||e.addChild("frozen",new(u())(!1)),e.hasChild("symbol")||e.addChild("symbol",new(u())("")),e.hasChild("currencyId")||e.addChild("currencyId",new(u())(null)),e.hasChild("unitId")||e.addChild("unitId",new(u())(null)),e.addExclusion("symbolStateVersion"),e.addExclusion("zOrderVersion"),e.addExclusion("visible"),e.addExclusion("frozen"),e.addExclusion("symbol"),e.addExclusion("currencyId"),e.addExclusion("unitId"),e.hasChild("intervalsVisibilities")){const t=(0,L.merge)((0,L.clone)(I.intervalsVisibilitiesDefaults),e.childs().intervalsVisibilities.state());e.removeProperty("intervalsVisibilities"),e.addChild("intervalsVisibilities",new M.IntervalsVisibilitiesProperty(t))}else e.addChild("intervalsVisibilities",new M.IntervalsVisibilitiesProperty(I.intervalsVisibilitiesDefaults));e.hasChild("title")||e.addChild("title",new(u())("")),e.addExclusion("symbolInfo"),e.addExclusion("points"),e.addExclusion("interval"),e.addExclusion("title"),e.hasChild("singleChartOnly")&&e.removeProperty("singleChartOnly"),e.hasChild("font")&&e.removeProperty("font")}static _addCollectedProperties(e){e.hasChild("linewidth")&&e.addChild("linesWidths",new p.LineToolWidthsProperty([(0,r.ensureDefined)(e.child("linewidth"))])),e.hasChild("linecolor")&&e.addChild("linesColors",new p.LineToolColorsProperty([(0,r.ensureDefined)(e.child("linecolor"))])),e.hasChild("backgroundColor")&&e.addChild("backgroundsColors",new p.LineToolColorsProperty([(0,r.ensureDefined)(e.child("backgroundColor"))])),e.hasChild("textColor")&&e.addChild("textsColors",new p.LineToolColorsProperty([(0,r.ensureDefined)(e.child("textColor"))])),e.addExclusion("linesWidths"),e.addExclusion("linesColors"),e.addExclusion("backgroundsColors"),e.addExclusion("textsColors")}static _initialSymbolStateVersion(){return 1}static _initialZOrderVersion(){return 1}_destroyPanePaneViews(e){const t=this._paneViews.get(e);if(void 0!==t)for(const e of t)e.destroy&&e.destroy();void 0!==e&&e.onDestroyed().unsubscribeAll(this),this._paneViews.delete(e)}_copyPricesWithoutNormalization(){const e=Math.min(this._points.length,this._timePoint.length);for(let t=0;t{"use strict";i.d(t,{LineDataSourcePointIndexProperty:()=>n})
;var s=i(2015),r=i.n(s);class n extends(r()){constructor(e,t){super(),this._lineSource=e,this._pointIndex=t}value(){return this._lineSource.points()[this._pointIndex].index}setValue(e){const t=this._lineSource.points()[this._pointIndex];t.index=e,this._lineSource.startChanging(this._pointIndex,t),this._setPointImpl(t),this._lineSource.model().updateSource(this._lineSource),this._listeners.fire(this);const i=this._lineSource.endChanging(!0,!1);this._lineSource.syncMultichartState(i)}_setPointImpl(e){this._lineSource.setPoint(this._pointIndex,e)}}},22474:(e,t,i)=>{"use strict";i.d(t,{LineToolPriceAxisView:()=>n});var s=i(88537),r=i(97938);class n extends r.PriceAxisView{constructor(e,t){super(),this._active=!1,this._source=e,this._data=t,this._properties=e.model().properties().childs().scalesProperties}setActive(e){this._active=e}_updateRendererData(e,t,i){e.visible=!1;const s=this._source.model();if(!s.timeScale()||s.timeScale().isEmpty())return;const r=this._source.priceScale();if(null===r||r.isEmpty())return;if(!s.selection().isSelected(this._source)&&!this._source.isForcedDrawPriceAxisLabel())return;if(null===s.timeScale().visibleBarsStrictRange())return;const n=this._source.priceAxisPoints(),o=this._data.pointIndex;if(n.length<=o)return;const a=n[o];if(!isFinite(a.price))return;const l=this._source.ownerSource(),c=null!==l?l.firstValue():null;if(null===c)return;let h=this._data.backgroundPropertyGetter?this._data.backgroundPropertyGetter():null;null===h&&(h=this._getBgColor()),i.background=h,i.borderColor="#2E84A6",i.textColor=this.generateTextColor(h),i.coordinate=r.priceToCoordinate(a.price,c),e.text=this._formatPrice(a.price,c),e.visible=!0}_getBgColor(){return this._active?this._properties.childs().axisLineToolLabelBackgroundColorActive.value():this._properties.childs().axisLineToolLabelBackgroundColorCommon.value()}_formatPrice(e,t){return(0,s.ensureNotNull)(this._source.priceScale()).formatPrice(e,t)}}},19528:(e,t,i)=>{"use strict";i.d(t,{LineDataSourceTimeAxisView:()=>r});var s=i(85578);class r extends s.TimeAxisView{constructor(e,t){super(e.model()),this._active=!1,this._source=e,this._pointIndex=t,this._properties=e.model().properties().childs().scalesProperties}setActive(e){this._active=e}_getBgColor(){return this._active?this._properties.childs().axisLineToolLabelBackgroundColorActive.value():this._properties.childs().axisLineToolLabelBackgroundColorCommon.value()}_getIndex(){if(!this._model.selection().isSelected(this._source))return null;const e=this._source.timeAxisPoints();return e.length<=this._pointIndex?null:e[this._pointIndex].index}_isVisible(){return!0}}},89857:(e,t,i)=>{"use strict";var s=i(86441).Point,r=i(22474).LineToolPriceAxisView,n=(i(85733),i(29823).Interval),o=i(98125).getLogger("Chart.LineDataSource"),a=i(67337),l=i(60870).lineToolsLocalizedNames,c=a.enabled("datasource_copypaste"),h=i(50144).LineDataSourceBase;class d extends h{isAvailableInFloatingWidget(){return!0}visibilityKeyByInterval(e){var t,i=n.parse(e);return d.IntervalsVisibilities.forEach((function(e){
e.kind===i.kind()&&e.from<=i.multiplier()&&e.to>=i.multiplier()&&(t=e.key)})),t}priceScale(){return this._ownerSource?this._ownerSource.m_priceScale:null}symbol(){return this._properties.symbol.value()}isSavedInStudyTemplates(){return!1}fixedPoints(){var e=[];if(this._positionPercents&&!this.priceScale().isEmpty())for(var t=0;t{"use strict";i.r(t),i.d(t,{LineToolMultiplePropertyBaseImpl:()=>l,LineToolCollectedProperty:()=>c,LineToolWidthsProperty:()=>h,LineToolColorsProperty:()=>d,MultipleLineWidthsProperty:()=>p,MultipleLineColorsProperty:()=>_})
;var s=i(98125),r=i(2872),n=i.n(r);const o=(0,s.getLogger)("Chart.LineToolCollectedProperty");class a{applyValue(e,t){e.setValue(t)}}class l{constructor(e,t){this._onChange=new(n()),this._properties=e,e.forEach(e=>e.subscribe(this,()=>{this._onChange.fire(this)})),this._showIfProperty=t}visible(){var e;return!this._showIfProperty||(null===(e=this._showIfProperty)||void 0===e?void 0:e.value())}value(){if(0===this._properties.length)return o.logError("Incorrect call, should not request value of 0 properties"),"mixed";const e=this._properties[0].value();return 1===this._properties.length||this._properties.every(t=>t.value()===e)?e:"mixed"}state(){}merge(){}destroy(){this._properties.forEach(e=>e.unsubscribeAll(this))}subscribe(e,t){this._onChange.subscribe(e,t)}unsubscribe(e,t){this._onChange.unsubscribe(e,t)}unsubscribeAll(e){this._onChange.unsubscribeAll(e)}storeStateIfUndefined(){return!0}}class c extends l{setValue(e,t,i){if("mixed"===e)return;const s=null!=i?i:new a;this._properties.forEach(t=>s.applyValue(t,e))}}class h extends c{}class d extends c{firstColor(){return this._properties[0].value()}}class u extends l{setValue(e,t,i){if("mixed"===e)return;const s=null!=i?i:new a;this._properties.forEach(t=>t.setValue(e,void 0,s))}}class p extends u{}class _ extends u{}},72708:(e,t,i)=>{"use strict";t.LineToolFibRetracement=i(44860).LineToolFibRetracement,t.LineToolFibChannel=i(48917).LineToolFibChannel,t.LineToolFibSpeedResistanceArcs=i(19857).LineToolFibSpeedResistanceArcs,t.LineToolProjection=i(35344).LineToolProjection,t.LineToolTrendBasedFibExtension=i(25861).LineToolTrendBasedFibExtension,t.LineToolElliott=i(97917).LineToolElliott,t.LineToolFibCircles=i(54502).LineToolFibCircles,t.LineToolVertLine=i(51922).LineToolVertLine,t.LineToolCrossLine=i(53193).LineToolCrossLine,t.LineToolBarsPattern=i(98802).LineToolBarsPattern,t.LineToolTrendBasedFibTime=i(6245).LineToolTrendBasedFibTime,t.LineToolFibTimeZone=i(63835).LineToolFibTimeZone,t.LineToolCircleLines=i(49802).LineToolCircleLines,t.LineToolDateRange=i(45669).LineToolDateRange,t.LineToolPriceRange=i(66602).LineToolPriceRange,t.LineToolDateAndPriceRange=i(26215).LineToolDateAndPriceRange,t.LineToolParallelChannel=i(78898).LineToolParallelChannel,t.LineToolTrendAngle=i(86225).LineToolTrendAngle,t.LineToolTrendLine=i(57649).LineToolTrendLine,t.LineToolInfoLine=i(51139).LineToolInfoLine,t.LineToolArrowMark=i(18659).LineToolArrowMark,t.LineToolExecution=i(39593).LineToolExecution,t.LineToolPitchfan=i(18977).LineToolPitchfan,t.LineToolGannSquare=i(97433).LineToolGannSquare,t.LineToolFibSpeedResistanceFan=i(70673).LineToolFibSpeedResistanceFan,t.LineToolGannComplex=i(52870).LineToolGannComplex,t.LineToolGannFixed=i(33209).LineToolGannFixed,t.LineToolGannFan=i(5094).LineToolGannFan,t.LineToolFibWedge=i(41668).LineToolFibWedge,t.LineToolPitchfork=i(40100).LineToolPitchfork,t.LineToolDisjointAngle=i(46512).LineToolDisjointChannel,t.LineToolFlatBottom=i(47047).LineToolFlatBottom,t.LineToolIcon=i(74468).LineToolIcon,
t.LineToolRotatedRectangle=i(61272).LineToolRotatedRectangle,t.LineToolFibSpiral=i(29638).LineToolFibSpiral,t.LineToolHeadAndShoulders=i(90378).LineToolHeadAndShoulders,t.LineToolTriangle=i(99092).LineToolTriangle,t.LineToolTrianglePattern=i(53403).LineToolTrianglePattern,t.LineTool5PointsPattern=i(656).LineTool5PointsPattern,t.LineToolThreeDrivers=i(6980).LineToolThreeDrivers,t.LineToolABCD=i(82203).LineToolABCD,t.LineToolPolyline=i(19085).LineToolPolyline,t.LineToolPath=i(48950).LineToolPath,t.LineToolPrediction=i(12346).LineToolPrediction,t.LineToolPriceLabel=i(3113).LineToolPriceLabel,t.LineToolArrowMarker=i(10167).LineToolArrowMarker,t.LineToolNote=i(87517).LineToolNote,t.LineToolNoteAbsolute=i(87517).LineToolNoteAbsolute,t.LineToolSignpost=i(52827).LineToolSignpost,t.LineToolBrush=i(43871).LineToolBrush,t.LineToolArc=i(17337).LineToolArc,t.LineToolCallout=i(95536).LineToolCallout,t.LineToolBalloon=i(57666).LineToolBalloon,t.LineToolText=i(74971).LineToolText,t.LineToolHorzLine=i(8877).LineToolHorzLine,t.LineToolHorzRay=i(10471).LineToolHorzRay,t.LineToolRectangle=i(20258).LineToolRectangle,t.LineToolCircle=i(2039).LineToolCircle,t.LineToolEllipse=i(38430).LineToolEllipse,t.LineToolTimeCycles=i(38513).LineToolTimeCycles,t.LineToolSineLine=i(15718).LineToolSineLine,t.LineToolGhostFeed=i(82241).LineToolGhostFeed,t.LineToolBezierQuadro=i(30899).LineToolBezierQuadro,t.LineToolBezierCubic=i(47679).LineToolBezierCubic,t.LineToolArrow=i(59358).LineToolArrow,t.LineToolRay=i(31702).LineToolRay,t.LineToolExtended=i(41239).LineToolExtended,t.LineToolSchiffPitchfork=i(98390).LineToolSchiffPitchfork,t.LineToolSchiffPitchfork2=i(98225).LineToolSchiffPitchfork2,t.LineToolInsidePitchfork=i(87639).LineToolInsidePitchfork,t.LineToolTextAbsolute=i(74971).LineToolTextAbsolute,t.LineToolArrowMarkLeft=i(18659).LineToolArrowMarkLeft,t.LineToolArrowMarkRight=i(18659).LineToolArrowMarkRight,t.LineToolArrowMarkUp=i(18659).LineToolArrowMarkUp,t.LineToolArrowMarkDown=i(18659).LineToolArrowMarkDown,t.LineToolFlagMark=i(53342).LineToolFlagMark,t.LineToolCypherPattern=i(980).LineToolCypherPattern,t.LineToolElliottImpulse=i(97917).LineToolElliottImpulse,t.LineToolElliottTriangle=i(97917).LineToolElliottTriangle,t.LineToolElliottTripleCombo=i(97917).LineToolElliottTripleCombo,t.LineToolElliottCorrection=i(97917).LineToolElliottCorrection,t.LineToolElliottDoubleCombo=i(97917).LineToolElliottDoubleCombo,t.LineToolRiskRewardLong=i(34291).LineToolRiskRewardLong,t.LineToolRiskRewardShort=i(34291).LineToolRiskRewardShort,t.LineToolPosition=i(2157).LineToolPosition,t.LineToolOrder=i(86858).LineToolOrder,t.LineToolHighlighter=i(65649).LineToolHighlighter,t.LineToolPriceNote=i(7648).LineToolPriceNote},60870:(e,t,i)=>{"use strict";i.d(t,{lineToolsLocalizedNames:()=>r});var s=i(28353);const r={LineTool5PointsPattern:(0,s.t)("XABCD Pattern"),LineToolABCD:(0,s.t)("ABCD Pattern"),LineToolArc:(0,s.t)("Arc"),LineToolArrow:(0,s.t)("Arrow"),LineToolArrowMarkDown:(0,s.t)("Arrow Mark Down"),LineToolArrowMarkLeft:(0,s.t)("Arrow Mark Left"),
LineToolArrowMarkRight:(0,s.t)("Arrow Mark Right"),LineToolArrowMarkUp:(0,s.t)("Arrow Mark Up"),LineToolBalloon:(0,s.t)("Balloon"),LineToolBarsPattern:(0,s.t)("Bars Pattern"),LineToolBezierCubic:(0,s.t)("Double Curve"),LineToolBezierQuadro:(0,s.t)("Curve"),LineToolBrush:(0,s.t)("Brush"),LineToolCallout:(0,s.t)("Callout"),LineToolCircleLines:(0,s.t)("Cyclic Lines"),LineToolCypherPattern:(0,s.t)("Cypher Pattern"),LineToolDateAndPriceRange:(0,s.t)("Date and Price Range"),LineToolDateRange:(0,s.t)("Date Range"),LineToolDisjointAngle:(0,s.t)("Disjoint Channel"),LineToolElliottCorrection:(0,s.t)("Elliott Correction Wave (ABC)"),LineToolElliottDoubleCombo:(0,s.t)("Elliott Double Combo Wave (WXY)"),LineToolElliottImpulse:(0,s.t)("Elliott Impulse Wave (12345)"),LineToolElliottTriangle:(0,s.t)("Elliott Triangle Wave (ABCDE)"),LineToolElliottTripleCombo:(0,s.t)("Elliott Triple Combo Wave (WXYXZ)"),LineToolEllipse:(0,s.t)("Ellipse"),LineToolExtended:(0,s.t)("Extended Line"),LineToolFibChannel:(0,s.t)("Fib Channel"),LineToolFibCircles:(0,s.t)("Fib Circles"),LineToolFibRetracement:(0,s.t)("Fib Retracement"),LineToolFibSpeedResistanceArcs:(0,s.t)("Fib Speed Resistance Arcs"),LineToolFibSpeedResistanceFan:(0,s.t)("Fib Speed Resistance Fan"),LineToolFibSpiral:(0,s.t)("Fib Spiral"),LineToolFibTimeZone:(0,s.t)("Fib Time Zone"),LineToolFibWedge:(0,s.t)("Fib Wedge"),LineToolFlagMark:(0,s.t)("Flag Mark"),LineToolImage:(0,s.t)("Image"),LineToolFlatBottom:(0,s.t)("Flat Top/Bottom"),LineToolAnchoredVWAP:(0,s.t)("Anchored VWAP"),LineToolGannComplex:(0,s.t)("Gann Square"),LineToolGannFixed:(0,s.t)("Gann Square Fixed"),LineToolGannFan:(0,s.t)("Gann Fan"),LineToolGannSquare:(0,s.t)("Gann Box"),LineToolHeadAndShoulders:(0,s.t)("Head and Shoulders"),LineToolHorzLine:(0,s.t)("Horizontal Line"),LineToolHorzRay:(0,s.t)("Horizontal Ray"),LineToolIcon:(0,s.t)("Icon"),LineToolInsidePitchfork:(0,s.t)("Inside Pitchfork"),LineToolNote:(0,s.t)("Note"),LineToolNoteAbsolute:(0,s.t)("Anchored Note"),LineToolSignpost:(0,s.t)("Signpost"),LineToolParallelChannel:(0,s.t)("Parallel Channel"),LineToolPitchfan:(0,s.t)("Pitchfan"),LineToolPitchfork:(0,s.t)("Pitchfork"),LineToolPolyline:(0,s.t)("Polyline"),LineToolPath:(0,s.t)("Path"),LineToolPrediction:(0,s.t)("Forecast"),LineToolPriceLabel:(0,s.t)("Price Label"),LineToolArrowMarker:(0,s.t)("Arrow Marker"),LineToolPriceRange:(0,s.t)("Price Range"),LineToolProjection:(0,s.t)("Projection"),LineToolRay:(0,s.t)("Ray"),LineToolRectangle:(0,s.t)("Rectangle"),LineToolCircle:(0,s.t)("Circle"),LineToolRegressionTrend:(0,s.t)("Regression Trend"),LineToolRiskRewardLong:(0,s.t)("Long Position"),LineToolRiskRewardShort:(0,s.t)("Short Position"),LineToolFixedRangeVolumeProfile:(0,s.t)("Fixed Range Volume Profile"),LineToolRotatedRectangle:(0,s.t)("Rotated Rectangle"),LineToolSchiffPitchfork:(0,s.t)("Modified Schiff Pitchfork"),LineToolSchiffPitchfork2:(0,s.t)("Schiff Pitchfork"),LineToolSineLine:(0,s.t)("Sine Line"),LineToolText:(0,s.t)("Text",{context:"tool"}),LineToolTextAbsolute:(0,s.t)("Anchored Text"),LineToolThreeDrivers:(0,
s.t)("Three Drives Pattern"),LineToolTimeCycles:(0,s.t)("Time Cycles"),LineToolTrendAngle:(0,s.t)("Trend Angle"),LineToolTrendBasedFibExtension:(0,s.t)("Trend-Based Fib Extension"),LineToolTrendBasedFibTime:(0,s.t)("Trend-Based Fib Time"),LineToolTrendLine:(0,s.t)("Trend Line"),LineToolInfoLine:(0,s.t)("Info Line"),LineToolTriangle:(0,s.t)("Triangle"),LineToolTrianglePattern:(0,s.t)("Triangle Pattern"),LineToolVertLine:(0,s.t)("Vertical Line"),LineToolCrossLine:(0,s.t)("Cross Line"),LineToolHighlighter:(0,s.t)("Highlighter"),LineToolPriceNote:(0,s.t)("Price Note"),LineToolVbPFixed:(0,s.t)("Volume Profile Fixed Range")};r.LineToolGhostFeed=(0,s.t)("Ghost Feed")},14291:(e,t,i)=>{"use strict";i.r(t),i.d(t,{cloneLineTool:()=>W,createLineTool:()=>E,createLineToolProperties:()=>D,createStudyLineToolProperties:()=>V,getNewToolProperties:()=>A,isLineDrawnWithPressedButton:()=>C.isLineDrawnWithPressedButton,isLineTool:()=>N,isLineToolName:()=>C.isLineToolName,isStudyLineTool:()=>R,isStudyLineToolName:()=>C.isStudyLineToolName,isTrading:()=>O,lineToolByLinkKey:()=>H,prepareLineToolPropertiesByOwnerSource:()=>k,setNewToolProperties:()=>M,supportsPhantomMode:()=>B,tryFindStudyLineToolNameByStudyId:()=>F,unsetNewToolProperties:()=>L});var s=i(88537),r=i(86441),n=i(51934),o=i(89857),a=i(72708),l=i.t(a,2),c=i(2271),h=i(88145),d=i(67072),u=i.n(d),p=i(66101),_=i(37865),m=i(80643),g=i(88564);const f=(0,h.studyIdString)("RegressionTrend","tv-basicstudies");function v(e){return void 0!==e.startPrice&&void 0!==e.endPrice}class S extends n.StudyLineDataSource{constructor(e,t,r,n,o){r=null!=r?r:(0,s.ensureNotNull)(e.studyMetaInfoRepository().findByIdSync({type:"java",studyId:f}));super(e,r,"linreg_",null!=t?t:S.createProperties(e),n,o),this.version=2,this._trendData=null,i.e(1583).then(i.bind(i,79752)).then(e=>{this._setPaneViews([new e.RegressionTrendPaneView(this,this._model)])})}formatter(){throw new Error("This method should never be called")}pointsCount(){return 2}clearData(){this._trendData=null,super.clearData()}state(e){var t;const i=super.state(e);return e?{...i,nonseriesdata:null!==(t=this._trendData)&&void 0!==t?t:void 0}:i}restoreData(e){var t;super.restoreData(e),this._trendData=null!==(t=e.nonseriesdata)&&void 0!==t?t:null}startIndex(){if(null===this._trendData||null===this._indexes)return null;const e=this._indexes[this._trendData.startIndex];return e!==c.INVALID_TIME_POINT_INDEX?e:null}endIndex(){if(null===this._trendData||null===this._indexes)return null;const e=this._indexes[this._trendData.endIndex];return e!==c.INVALID_TIME_POINT_INDEX?e:null}baseLine(){return null===this._trendData?null:this._trendData.baseLine}downLine(){return null===this._trendData?null:this._trendData.downLine}upLine(){return null===this._trendData?null:this._trendData.upLine}pearsons(){return null===this._trendData?null:this._trendData.pearsons}recalcStudyIfNeeded(){this._onStudyInputsMayChange()}cloneable(){return!1}static createProperties(e,t){const i=u().getStudyPropertyRootNameById(f),r=(0,
s.ensureNotNull)(e.studyMetaInfoRepository().findByIdSync({type:"java",studyId:f})),n=(0,g.createDefaultsState)(!0,i,[],e.studyVersioning());return V("LineToolRegressionTrend",r,r,(0,m.merge)((0,m.clone)(n),null!=t?t:{}),e.studyVersioning())}static createRegressionTrendPropertiesFromStudyMetaInfoAndState(e,t,i,s){const r=(0,p.prepareStudyPropertiesForLoadChart)(e,t,i,null,s);return S._configureProperties(r),r}static studyId(){return f}_studyInputs(e){(0,s.assert)(2===e.length,"all the line tool points should be defined");const[t,i]=e;if(t.index===i.index)return null;const r=this._getPointTime(t.index<=i.index?t:i,!0),n=this._getPointTime(i.index>=t.index?i:t,!0);return null===r||null===n?(this._subscribeApplyInputsOnSeriesCompleted(),null):{...this.properties().childs().inputs.state(),"first bar time":1e3*r,"last bar time":1e3*n}}_onDataUpdated(e,t,i){null!==t&&(t.indexes_replace||(this._trendData=t.data),"nochange"!==i&&(this._indexes=i),super._onDataUpdated(e,t,i))}_isReady(){return null!==this._trendData&&void 0!==this._trendData.startIndex&&void 0!==this._trendData.endIndex&&v(this._trendData.upLine)&&v(this._trendData.baseLine)&&v(this._trendData.downLine)}_updateAnchorsPrice(){if(!this._trendData||(0,m.isNaN)(this._trendData.baseLine.startPrice)||(0,m.isNaN)(this._trendData.baseLine.endPrice))return;const{startPrice:e,endPrice:t}=this._trendData.baseLine;2===this._points.length&&(this._points[0].price=(0,s.ensureDefined)(e),this._points[1].price=(0,s.ensureDefined)(t),this._timePoint[0].price=(0,s.ensureDefined)(e),this._timePoint[1].price=(0,s.ensureDefined)(t))}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(7387),i.e(8623),i.e(607)]).then(i.bind(i,96457))).RegressionTrendDefinitionsViewModel}static _configureProperties(e){n.StudyLineDataSource._configureProperties(e);const t=e.childs().styles.childs(),i=[t.upLine.childs().linewidth,t.downLine.childs().linewidth,t.baseLine.childs().linewidth];e.addChild("linesWidths",new _.LineToolWidthsProperty(i))}}var y=i(20299);const b=(0,h.studyIdString)("VbPFixed","tv-basicstudies");class w extends y.LineToolVbPFixed{constructor(e,t,i,s,r,n){const o=i||e.studyMetaInfoRepository().findByIdSync({type:"java",studyId:b});super(e,t,o,s,r,n)}calcIsActualSymbol(){n.StudyLineDataSource.prototype.calcIsActualSymbol.apply(this)}boundToSymbol(){return!0}isSynchronizable(){return this.priceScale()===this._model.mainSeries().priceScale()}static studyId(){return b}static createProperties(e,t){const i=u().getStudyPropertyRootNameById(b),r=(0,s.ensureNotNull)(e.studyMetaInfoRepository().findByIdSync({type:"java",studyId:b})),n=(0,g.createDefaultsState)(!0,i,[],e.studyVersioning());return V("LineToolFixedRangeVolumeProfile",r,r,(0,m.merge)((0,m.clone)(n),null!=t?t:{}),e.studyVersioning())}static createPropertiesFromStudyMetaInfoAndState(e,t,i,s){const r=(0,p.prepareStudyPropertiesForLoadChart)(e,t,i,null,s);return w._configureProperties(r),r}}var C=i(44601),P=i(2587),T=i(36759);function x(e){for(const t of Object.keys(e))TradingView[t]=e[t]}x(l),x({
LineToolRegressionTrend:S,LineToolVbPFixed:y.LineToolVbPFixed,LineToolFixedRangeVolumeProfile:w});let I=null;function M(e,t,i){return null!==I&&I.tool===e&&I.toolData===t||(I={properties:D(e,void 0,i),tool:e,toolData:t}),I.properties}function L(){I=null}function A(e){return null!==I&&I.tool===e?I.properties:null}function E(e,t,i,r,n,o){let a;if((0,s.assert)((0,C.isLineToolName)(e),"Unknown line tool: "+e),n||i||(i=A(e)||void 0),"LineToolVbPFixed"===e)a=new y.LineToolVbPFixed(t,i,(0,s.ensureDefined)(r),t.mainSeries(),n,o);else if("LineToolFixedRangeVolumeProfile"===e)a=new w(t,i,(0,s.ensureDefined)(r),t.mainSeries(),n,o);else if("LineToolRegressionTrend"===e)a=new S(t,i,(0,s.ensureDefined)(r),n,o);else{a=new((0,s.ensureDefined)(l[e]))(t,i,n,o)}return a.toolname=e,L(),a}function k(e,t){const i=(0,s.ensureNotNull)(t.symbolSource());e.childs().symbol.setValue(i.symbol()),i.model().currencyConversionEnabled()&&e.childs().currencyId.setValue(i.currency()),i.model().unitConversionEnabled()&&e.childs().unitId.setValue(i.unit()),e.childs().symbolStateVersion.setValue(2),e.childs().zOrderVersion.setValue(2)}function D(e,t,i){if((0,s.assert)((0,C.isLineToolName)(e),e+" should be name of the line tool"),"LineToolVbPFixed"===e)return y.LineToolVbPFixed.createProperties(i,t);if("LineToolFixedRangeVolumeProfile"===e)return w.createProperties(i,t);if("LineToolRegressionTrend"===e)return S.createProperties(i,t);return(0,s.ensureDefined)(l[e]).createProperties(t)}function V(e,t,i,r,n){if((0,s.assert)((0,C.isStudyLineToolName)(e),e+" should be name of the study line tool"),"LineToolVbPFixed"===e)return y.LineToolVbPFixed.createPropertiesFromStudyMetaInfoAndState(t,i,r,n);if("LineToolFixedRangeVolumeProfile"===e)return w.createPropertiesFromStudyMetaInfoAndState(t,i,r,n);if("LineToolRegressionTrend"===e)return S.createRegressionTrendPropertiesFromStudyMetaInfoAndState(t,i,r,n);throw new Error("Property creation is not implemented for study line tool "+e)}function B(e){(0,s.assert)((0,C.isLineToolName)(e),e+" should be name of the line tool");const t=l[e];return void 0!==t&&Boolean(t.supportPhantomMode)}function N(e){return e instanceof o.LineDataSource}function R(e){return e instanceof n.StudyLineDataSource}function O(e){return e instanceof P.LineToolTrading}function F(e){let t=null;return e===S.studyId()?t="LineToolRegressionTrend":e===y.LineToolVbPFixed.studyId()?t="LineToolVbPFixed":e===w.studyId()&&(t="LineToolFixedRangeVolumeProfile"),t}function W(e,t,i,n){const o=t.toolname,a=t.properties().state();a.intervalsVisibilities=(0,T.mergeIntervalVisibilitiesDefaults)(null==a?void 0:a.intervalsVisibilities);const l=D(t.toolname,a,e);l.childs().visible.setValue(!0);const c=(0,s.ensureNotNull)(t.ownerSource()),h=E(o,e,l);void 0!==n&&h.setId(n),h.setOwnerSource(c),h.toolname=o;const d=h.clonePositionOffset(),u=t.fixedPoints();(i?u.map(e=>e.add(new r.Point(d.xCoordOffset,d.yCoordOffset))):u).forEach(e=>h.addFixedPoint(e));const p=t.normalizedPoints(),_=i?function(e,t,i){const r=(0,s.ensureNotNull)(t.priceScale()),n=(0,
s.ensureNotNull)(t.firstValue());return e.map(e=>{const t=e.price,s=r.priceToCoordinate(t,n)+i.yCoordOffset,o=r.coordinateToPrice(s,n);return{time_t:e.time_t,price:o,offset:e.offset+i.barOffset}})}(p,c,d):p,m=t.points();return h.restorePoints(_,m),h.cloneData&&h.cloneData(t),h.checkAlert&&h.checkAlert(),h}function H(e,t){var i;return null!==(i=e.dataSources().find(e=>N(e)&&e.linkKey().value()===t))&&void 0!==i?i:null}},87517:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(89857).LineDataSource,n=i(2015),o=i(88564).DefaultProperty;class a extends r{constructor(e,t,s,r){super(e,t||a.createProperties(),s,r),this.version=a.version,i.e(1583).then(i.bind(i,99578)).then(({NotePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}pointsCount(){return 1}name(){return"Note"}getTooltipWidth(){return a.TOOLTIP_WIDTH}getTooltipPadding(){return a.TOOLTIP_PADDING}getTooltipLineSpacing(){return a.TOOLTIP_LINESPACING}template(){var e=r.prototype.template.call(this);return e.text=this.properties().childs().text.value(),e}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text)}static createProperties(e){void 0!==e&&void 0!==e.markerColor&&void 0===e.borderColor&&(e.borderColor=e.markerColor);var t=new o("linetoolnote",e);return a._configureProperties(t),t}state(e){var t=r.prototype.state.call(this,e);return e&&(t.state.fixedSize=!1),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,55510))).NoteDefinitionsViewModel}static _configureProperties(e){r._configureProperties(e),e.hasChild("text")||e.addChild("text",new n(s("Text"))),e.addExclusion("text")}}a.TOOLTIP_WIDTH=300,a.TOOLTIP_PADDING=10,a.TOOLTIP_LINESPACING=5,a.version=1;class l extends a{constructor(e,t){super(e,t||l.createProperties())}title(){return s("Anchored Note")}name(){return"Anchored Note"}isFixed(){return!0}hasEditableCoordinates(){return!1}static createProperties(e){var t=new o("linetoolnoteabsolute",e);return l._configureProperties(t),t}static _configureProperties(e){a._configureProperties(e)}}t.LineToolNote=a,t.LineToolNoteAbsolute=l},86858:(e,t,i)=>{"use strict";var s=i(2587).LineToolTrading,r=i(22474).LineToolPriceAxisView,n=i(53664),o=i(89857).LineDataSource,a=i(88564).DefaultProperty;const l=i(67337);var c=i(59555).sortSourcesPreOrdered.LineToolOrder;function h(e){return null==e?e="":e+="",e}class d{constructor(e){this._line=e,this._data={bodyText:"order",quantityText:"0"},this._editable=!0,this._cancellable=!0,this._mode="",this._direction="buy",this._active=!0}setMode(e){return this._mode=e,this._line.updateAllViewsAndRedraw(),this}setDirection(e){return this._direction=e,this._line.updateAllViewsAndRedraw(),this}setActive(e){return this._active=e,this._line.updateAllViewsAndRedraw(),this}setEditable(e){return this._editable=e,this._line.updateAllViewsAndRedraw(),this}getEditable(){return this._editable}setCancellable(e){return this._cancellable=e,this._line.updateAllViewsAndRedraw(),this}getCancellable(){return this._cancellable}
hasMoveCallback(){return this.isFunction(this._onMoveCallback)}hasModifyCallback(){return this.isFunction(this._onModifyCallback)}getPrice(){return this._line.points().length>0?this._line.points()[0].price:this._line._timePoint.length>0?this._line._timePoint[0].price:void 0}setPrice(e){if(this._line.points().length>0){var t=this._line.points()[0];t.price=e,this._line._points[0]=t,this._line.normalizePoints(),this._line.updateAllViewsAndRedraw()}return this._line._timePoint.length>0&&(this._line._timePoint[0].price=e),this}getText(){return this._data.bodyText}setText(e){return this._data.bodyText=e||"",this._line.updateAllViewsAndRedraw(),this}setTooltip(e){return this._line.properties().tooltip.setValue(h(e)),this}getTooltip(){return this._line.properties().tooltip.value()}setModifyTooltip(e){return this._line.properties().modifyTooltip.setValue(h(e)),this}getModifyTooltip(){return this._line.properties().modifyTooltip.value()}setCancelTooltip(e){return this._line.properties().cancelTooltip.setValue(h(e)),this}getCancelTooltip(){return this._line.properties().cancelTooltip.value()}getQuantity(){return this._data.quantityText}setQuantity(e){return this._data.quantityText=e||"",this._line.updateAllViewsAndRedraw(),this}getExtendLeft(){var e=this._line.properties().extendLeft.value();return"inherit"===e?this._line._model.properties().tradingProperties.extendLeft.value():e}setExtendLeft(e){return this._line.properties().extendLeft.setValue(e),this}getLineLength(){var e=this._line.properties().lineLength.value();return"inherit"===e?this._line._model.properties().tradingProperties.lineLength.value():e}setLineLength(e){return this._line.properties().lineLength.setValue(Math.max(0,Math.min(e,100))),this}getLineColor(){var e=this._line.properties();return"buy"===this._direction?this._active?e.lineActiveBuyColor.value():e.lineInactiveBuyColor.value():this._active?e.lineActiveSellColor.value():e.lineInactiveSellColor.value()}setLineColor(e){return"buy"===this._direction?this._active?this.setLineActiveBuyColor(e):this.setLineInactiveBuyColor(e):this._active?this.setLineActiveSellColor(e):this.setLineInactiveSellColor(e),this}setLineActiveBuyColor(e){return this._line.properties().lineActiveBuyColor.setValue(e),this}setLineInactiveBuyColor(e){return this._line.properties().lineInactiveBuyColor.setValue(e),this}setLineActiveSellColor(e){return this._line.properties().lineActiveSellColor.setValue(e),this}setLineInactiveSellColor(e){return this._line.properties().lineInactiveSellColor.setValue(e),this}getLineStyle(){var e=this._line.properties().lineStyle.value();return"inherit"===e?this._line._model.properties().tradingProperties.lineStyle.value():e}setLineStyle(e){return this._line.properties().lineStyle.setValue(e),this}getLineWidth(){var e=this._line.properties().lineWidth.value();return"inherit"===e?this._line._model.properties().tradingProperties.lineWidth.value():e}setLineWidth(e){return this._line.properties().lineWidth.setValue(e),this}getBodyBorderColor(){var e=this._line.properties()
;return"buy"===this._direction?this._active?e.bodyBorderActiveBuyColor.value():e.bodyBorderInactiveBuyColor.value():this._active?e.bodyBorderActiveSellColor.value():e.bodyBorderInactiveSellColor.value()}setBodyBorderColor(e){return"buy"===this._direction?this._active?this.setBodyBorderActiveBuyColor(e):this.setBodyBorderInactiveBuyColor(e):this._active?this.setBodyBorderActiveSellColor(e):this.setBodyBorderInactiveSellColor(e),this}setBodyBorderActiveBuyColor(e){return this._line.properties().bodyBorderActiveBuyColor.setValue(e),this}setBodyBorderInactiveBuyColor(e){return this._line.properties().bodyBorderInactiveBuyColor.setValue(e),this}setBodyBorderActiveSellColor(e){return this._line.properties().bodyBorderActiveSellColor.setValue(e),this}setBodyBorderInactiveSellColor(e){return this._line.properties().bodyBorderInactiveSellColor.setValue(e),this}getBodyBackgroundColor(){return n.getColorFromProperties(this._line.properties().bodyBackgroundColor,this._line.properties().bodyBackgroundTransparency)}setBodyBackgroundColor(e){return n.setColorToProperties(e,this._line.properties().bodyBackgroundColor,this._line.properties().bodyBackgroundTransparency),this}getBodyTextColor(){var e=this._line.properties();return"limit"===this._mode?this._active?e.bodyTextActiveLimitColor.value():e.bodyTextInactiveLimitColor.value():"stop"===this._mode?this._active?e.bodyTextActiveStopColor.value():e.bodyTextInactiveStopColor.value():"buy"===this._direction?this._active?e.bodyTextActiveBuyColor.value():e.bodyTextInactiveBuyColor.value():this._active?e.bodyTextActiveSellColor.value():e.bodyTextInactiveSellColor.value()}setBodyTextColor(e){return"limit"===this._mode?this._active?this.setBodyTextActiveLimitColor(e):this.setBodyTextInactiveLimitColor(e):"stop"===this._mode?this._active?this.setBodyTextActiveStopColor(e):this.setBodyTextInactiveStopColor(e):"buy"===this._direction?this._active?this.setBodyTextActiveBuyColor(e):this.setBodyTextInactiveBuyColor(e):this._active?this.setBodyTextActiveSellColor(e):this.setBodyTextInactiveSellColor(e),this}setBodyTextInactiveLimitColor(e){return this._line.properties().bodyTextInactiveLimitColor.setValue(e),this}setBodyTextActiveLimitColor(e){return this._line.properties().bodyTextActiveLimitColor.setValue(e),this}setBodyTextInactiveStopColor(e){return this._line.properties().bodyTextInactiveStopColor.setValue(e),this}setBodyTextActiveStopColor(e){return this._line.properties().bodyTextActiveStopColor.setValue(e),this}setBodyTextInactiveBuyColor(e){return this._line.properties().bodyTextInactiveBuyColor.setValue(e),this}setBodyTextActiveBuyColor(e){return this._line.properties().bodyTextActiveBuyColor.setValue(e),this}setBodyTextInactiveSellColor(e){return this._line.properties().bodyTextInactiveSellColor.setValue(e),this}setBodyTextActiveSellColor(e){return this._line.properties().bodyTextActiveSellColor.setValue(e),this}getBodyFont(){
return n.getFontFromProperties(this._line.properties().bodyFontFamily,this._line.properties().bodyFontSize,this._line.properties().bodyFontBold,this._line.properties().bodyFontItalic)}setBodyFont(e){return n.setFontToProperties(e,this._line.properties().bodyFontFamily,this._line.properties().bodyFontSize,this._line.properties().bodyFontBold,this._line.properties().bodyFontItalic),this}getQuantityBorderColor(){var e=this._line.properties();return"buy"===this._direction?this._active?e.quantityBorderActiveBuyColor.value():e.quantityBorderInactiveBuyColor.value():this._active?e.quantityBorderActiveSellColor.value():e.quantityBorderInactiveSellColor.value()}setQuantityBorderColor(e){return"buy"===this._direction?this._active?this.setQuantityBorderActiveBuyColor(e):this.setQuantityBorderInactiveBuyColor(e):this._active?this.setQuantityBorderActiveSellColor(e):this.setQuantityBorderInactiveSellColor(e),this}setQuantityBorderActiveBuyColor(e){return this._line.properties().quantityBorderActiveBuyColor.setValue(e),this}setQuantityBorderInactiveBuyColor(e){return this._line.properties().quantityBorderInactiveBuyColor.setValue(e),this}setQuantityBorderActiveSellColor(e){return this._line.properties().quantityBorderActiveSellColor.setValue(e),this}setQuantityBorderInactiveSellColor(e){return this._line.properties().quantityBorderInactiveSellColor.setValue(e),this}getQuantityBackgroundColor(){var e=this._line.properties();return"buy"===this._direction?this._active?e.quantityBackgroundActiveBuyColor.value():e.quantityBackgroundInactiveBuyColor.value():this._active?e.quantityBackgroundActiveSellColor.value():e.quantityBackgroundInactiveSellColor.value()}setQuantityBackgroundColor(e){return"buy"===this._direction?this._active?this.setQuantityBackgroundActiveBuyColor(e):this.setQuantityBackgroundInactiveBuyColor(e):this._active?this.setQuantityBackgroundActiveSellColor(e):this.setQuantityBackgroundInactiveSellColor(e),this}setQuantityBackgroundActiveBuyColor(e){return this._line.properties().quantityBackgroundActiveBuyColor.setValue(e),this}setQuantityBackgroundInactiveBuyColor(e){return this._line.properties().quantityBackgroundInactiveBuyColor.setValue(e),this}setQuantityBackgroundActiveSellColor(e){return this._line.properties().quantityBackgroundActiveSellColor.setValue(e),this}setQuantityBackgroundInactiveSellColor(e){return this._line.properties().quantityBackgroundInactiveSellColor.setValue(e),this}getQuantityTextColor(){return n.getColorFromProperties(this._line.properties().quantityTextColor,this._line.properties().quantityTextTransparency)}setQuantityTextColor(e){return n.setColorToProperties(e,this._line.properties().quantityTextColor,this._line.properties().quantityTextTransparency),this}getQuantityFont(){return n.getFontFromProperties(this._line.properties().quantityFontFamily,this._line.properties().quantityFontSize,this._line.properties().quantityFontBold,this._line.properties().quantityFontItalic)}setQuantityFont(e){
return n.setFontToProperties(e,this._line.properties().quantityFontFamily,this._line.properties().quantityFontSize,this._line.properties().quantityFontBold,this._line.properties().quantityFontItalic),this}getCancelButtonBorderColor(){var e=this._line.properties();return"buy"===this._direction?this._active?e.cancelButtonBorderActiveBuyColor.value():e.cancelButtonBorderInactiveBuyColor.value():this._active?e.cancelButtonBorderActiveSellColor.value():e.cancelButtonBorderInactiveSellColor.value()}setCancelButtonBorderColor(e){return"buy"===this._direction?this._active?this.setCancelButtonBorderActiveBuyColor(e):this.setCancelButtonBorderInactiveBuyColor(e):this._active?this.setCancelButtonBorderActiveSellColor(e):this.setCancelButtonBorderInactiveSellColor(e),this}setCancelButtonBorderActiveBuyColor(e){return this._line.properties().cancelButtonBorderActiveBuyColor.setValue(e),this}setCancelButtonBorderInactiveBuyColor(e){return this._line.properties().cancelButtonBorderInactiveBuyColor.setValue(e),this}setCancelButtonBorderActiveSellColor(e){return this._line.properties().cancelButtonBorderActiveSellColor.setValue(e),this}setCancelButtonBorderInactiveSellColor(e){return this._line.properties().cancelButtonBorderInactiveSellColor.setValue(e),this}getCancelButtonBackgroundColor(){return n.getColorFromProperties(this._line.properties().cancelButtonBackgroundColor,this._line.properties().cancelButtonBackgroundTransparency)}setCancelButtonBackgroundColor(e){return n.setColorToProperties(e,this._line.properties().cancelButtonBackgroundColor,this._line.properties().cancelButtonBackgroundTransparency),this}getCancelButtonIconColor(){var e=this._line.properties();return"buy"===this._direction?this._active?e.cancelButtonIconActiveBuyColor.value():e.cancelButtonIconInactiveBuyColor.value():this._active?e.cancelButtonIconActiveSellColor.value():e.cancelButtonIconInactiveSellColor.value()}setCancelButtonIconColor(e){return"buy"===this._direction?this._active?this.setCancelButtonIconActiveBuyColor(e):this.setCancelButtonIconInactiveBuyColor(e):this._active?this.setCancelButtonIconActiveSellColor(e):this.setCancelButtonIconInactiveSellColor(e),this}setCancelButtonIconActiveBuyColor(e){return this._line.properties().cancelButtonIconActiveBuyColor.setValue(e),this}setCancelButtonIconInactiveBuyColor(e){return this._line.properties().cancelButtonIconInactiveBuyColor.setValue(e),this}setCancelButtonIconActiveSellColor(e){return this._line.properties().cancelButtonIconActiveSellColor.setValue(e),this}setCancelButtonIconInactiveSellColor(e){return this._line.properties().cancelButtonIconInactiveSellColor.setValue(e),this}block(){this._blocked=!0,this._line.updateAllViewsAndRedraw()}unblock(){this._blocked=!1,this._line.updateAllViewsAndRedraw()}getBlocked(){return this._blocked}isFunction(e){return"function"==typeof e}onCancel(e,t){return t?this.isFunction(t)&&(this._onCancelData=e,this._onCancelCallback=t):this.isFunction(e)&&(this._onCancelCallback=e),this}callOnCancel(){
this.isFunction(this._onCancelCallback)&&this._onCancelCallback.call(this,this._onCancelData)}isOnCancelCallbackPresent(){return this.isFunction(this._onCancelCallback)}onModify(e,t){return t?this.isFunction(t)&&(this._onModifyData=e,this._onModifyCallback=t):this.isFunction(e)&&(this._onModifyCallback=e),this}callOnModify(){this.isFunction(this._onModifyCallback)&&this._onModifyCallback.call(this,this._onModifyData)}onMove(e,t){return t?this.isFunction(t)&&(this._onMoveData=e,this._onMoveCallback=t):this.isFunction(e)&&(this._onMoveCallback=e),this}callOnMove(){this.isFunction(this._onMoveCallback)&&this._onMoveCallback.call(this,this._onMoveData)}onContextMenu(e,t){return t?this.isFunction(t)&&(this._onContextMenuData=e,this._onContextMenuCallback=t):this.isFunction(e)&&(this._onContextMenuCallback=e),this}shouldShowContextMenu(){return this.isFunction(this._onContextMenuCallback)}callOnContextMenu(){if(this.isFunction(this._onContextMenuCallback))return this._onContextMenuCallback.call(this,this._onContextMenuData)}remove(){this._line._model.removeSource(this._line),delete this._line}}class u extends s{constructor(e,t){super(e,t||u.createProperties()),this._adapter=new d(this),this.setSelectionEnabled(!0),i.e(1583).then(i.bind(i,45175)).then(({OrderPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}zorder(){return c}isSpeciallyZOrderedSource(){return!0}setPoint(e,t,i){this._points[e]=t,this.normalizePoints()}addPoint(e,t){return this._points.push(e),this._lastPoint=null,this.normalizePoints(),this.createServerPoints(),!0}name(){return"Order"}endMoving(e){var t=this._startMovingPoint&&this._currentMovingPoint&&this._startMovingPoint.logical.price!==this._currentMovingPoint.logical.price;super.endMoving(),!e&&t&&this._adapter.callOnMove()}createPriceAxisView(e){var t={pointIndex:e,backgroundPropertyGetter:()=>this._adapter.getLineColor()};return this._priceAxisView=new r(this,t),this._priceAxisView}paneViews(){return TradingView.printing&&!l.enabled("snapshot_trading_drawings")?null:this._model.properties().tradingProperties.showOrders.value()?o.prototype.paneViews.call(this):null}priceAxisViews(e,t){return TradingView.printing&&!l.enabled("snapshot_trading_drawings")?null:this._model.properties().tradingProperties.showOrders.value()?o.prototype.priceAxisViews.call(this,e,t):null}adapter(){return this._adapter}hasContextMenu(){return this._adapter.shouldShowContextMenu()}contextMenuItems(){return this._adapter.callOnContextMenu()}movable(){return Boolean(this._adapter._onMoveCallback)}static createProperties(e){var t=new a("linetoolorder",e,!1,!1);return u._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e)}}t.LineToolOrder=u},78898:(e,t,i)=>{"use strict";i.d(t,{LineToolParallelChannel:()=>c});var s=i(88537),r=i(86441),n=i(88564),o=i(85733),a=i(89857),l=i(80643);class c extends a.LineDataSource{constructor(e,t,s,r){super(e,t||c.createProperties(),s,r),this._priceAxisViews.push(this.createPriceAxisView(3)),this._coordOffsetWhileMovingOrChanging=null,
this._pendingPriceOffset=null,i.e(1583).then(i.bind(i,74143)).then(({ParallelChannelPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}paneViews(e){return null!==this._pendingPriceOffset&&this._applyPendingPriceOffset(),super.paneViews(e)}setLastPoint(e,t){t&&t.shift()&&2===this.points().length&&this._snapPoint45Degree(e,this.points()[0]);const i=(0,l.clone)(e);return super.setLastPoint(e),i}startMoving(e,t,i,s){super.startMoving(e,t,i,s),this._coordOffsetWhileMovingOrChanging=this._findPixelsHeight()}endMoving(e,t,i){return this._coordOffsetWhileMovingOrChanging=null,super.endMoving(e,t,i)}startChanging(e,t){super.startChanging(e,t),this._coordOffsetWhileMovingOrChanging=this._findPixelsHeight()}endChanging(e,t,i){return this._coordOffsetWhileMovingOrChanging=null,super.endChanging(e,t)}restoreExternalPoints(e,t,i){const s=i?e.points:this._timePoint.map((t,i)=>({price:t.price,offset:e.points[i].offset,time_t:e.points[i].time_t}));if(super.restoreExternalPoints({...e,points:s},t),t.pricesChanged&&this._points.length===s.length)for(let e=0;e=4)return;this._snapPointBeforeChange(e,t,i);const a=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[0])),l=(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[1])),c=(0,s.ensureNotNull)(this.pointToScreenPoint(t)),h=(0,s.ensureNotNull)(this._coordOffsetWhileMovingOrChanging),d=(0,s.ensureNotNull)(this.priceScale()),u=(0,s.ensure)(null===(n=this.ownerSource())||void 0===n?void 0:n.firstValue());switch(e){case 0:super.setPoint(e,t,i),this._points[2].price=d.coordinateToPrice(c.y+h,u);break;case 1:super.setPoint(e,t,i);break;case 2:super.setPoint(e,t,i),this._points[0].price=d.coordinateToPrice(c.y-h,u),this._points[0].index=t.index;break;case 3:this._points[1].price=d.coordinateToPrice(c.y-h,u),this._points[1].index=t.index;break;case 4:{const e=l.subtract(a),t=(c.x-a.x)/e.x,i=a.addScaled(e,t),s=c.y-i.y;this._points[2].price=d.coordinateToPrice(a.y+s,u);break}case 5:{const e=l.subtract(a),t=(c.x-a.x)/e.x,i=a.addScaled(e,t),s=c.y-i.y;this._points[0].price=d.coordinateToPrice(a.y+s,u),this._points[1].price=d.coordinateToPrice(l.y+s,u);break}}const p=this.linkKey().value();if(p&&!r&&e<4){const e=this._points.map(e=>e.price);(0,o.changeLineStyle)({model:this._model,linkKey:p,state:{prices:e}})}}state(e){const t=a.LineDataSource.prototype.state.call(this,e);return this._pendingPriceOffset&&(t.priceOffset=this._pendingPriceOffset),t}restoreExternalState(e){const t={...e};if(t.prices&&this.isActualSymbol())for(let e=0;ee.index<=t.index?[e,t]:[t,e],s=i(t[0],t[1]),r=i(t[2],t[3]);let n,o,a,l;t[2].price{"use strict";i.d(t,{LineToolPath:()=>c});var s=i(88537),r=i(86441),n=i(88564),o=i(49094),a=i(89857),l=i(37865);class c extends a.LineDataSource{constructor(e,t,s,r){const n=t||c.createProperties();super(e,n,s,r),this._finished=!1,i.e(1583).then(i.bind(i,10155)).then(t=>{this._setPaneViews([new t.PathPaneView(this,e)])})}pointsCount(){return-1}name(){return"Path"}hasEditableCoordinates(){return!1}finish(){this._finished=!0,this._lastPoint=null,this.normalizePoints(),this.createServerPoints()}addPoint(e,t,i){var n;if(this._finished)return!0;const a=(0,s.ensureNotNull)(this.priceScale()),l=this._model.timeScale().indexToCoordinate(e.index),c=e.price,h=(0,s.ensure)(null===(n=this.ownerSource())||void 0===n?void 0:n.firstValue()),d=a.priceToCoordinate(c,h);if(this._points.length>0){const e=this._points[this._points.length-1],i=this._model.timeScale().indexToCoordinate(e.index),s=e.price,n=a.priceToCoordinate(s,h),c=new r.Point(l,d).subtract(new r.Point(i,n)).length();if(!(null==t?void 0:t.isApiEvent())&&c<(0,o.interactionTolerance)().minDistanceBetweenPoints)return this._lastPoint=null,this.normalizePoints(),this.createServerPoints(),!0}return super.addPoint(e,t,i)}static createProperties(e){const t=new n.DefaultProperty("linetoolpath",e);return c._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,4283)).then(e=>e.PathDefinitionsViewModel)}static _configureProperties(e){a.LineDataSource._configureProperties(e),e.addChild("linesWidths",new l.LineToolWidthsProperty([(0,s.ensureDefined)(e.child("lineWidth"))])),e.addChild("linesColors",new l.LineToolColorsProperty([e.childs().lineColor]))}}},18977:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(24980).TranslatedString,n=i(89857).LineDataSource,o=i(34580).LevelsProperty,a=i(37865),l=a.LineToolWidthsProperty,c=a.LineToolColorsProperty,h=new r("erase level line",s("erase level line"));class d extends n{constructor(e,t,s,r){super(e,t||d.createProperties(),s,r),i.e(1583).then(i.bind(i,92669)).then(({PitchfanLinePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}levelsCount(){return d.LevelsCount}pointsCount(){return 3}name(){return"Pitchfan"}processErase(e,t){var i="level"+t,s=this.properties()[i].visible;e.setProperty(s,!1,h)}
async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,34879))).PitchBaseDefinitionsViewModel}static createProperties(e){var t=new o("linetoolpitchfan",e,!1,{range:[0,8]});return d._configureProperties(t),t}static _configureProperties(e){n._configureProperties(e);for(var t=[e.child("median").child("linewidth")],i=[e.child("median").child("color")],s=0;s<=d.LevelsCount;s++)t.push(e.child("level"+s).child("linewidth")),i.push(e.child("level"+s).child("color"));e.addChild("linesColors",new c(i)),e.addChild("linesWidths",new l(t))}}d.LevelsCount=8,t.LineToolPitchfan=d},30823:(e,t,i)=>{"use strict";var s;i.d(t,{LineToolPitchforkStyle:()=>s}),function(e){e[e.Original=0]="Original",e[e.Schiff=1]="Schiff",e[e.Inside=2]="Inside",e[e.Schiff2=3]="Schiff2"}(s||(s={}))},40100:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(24980).TranslatedString,n=i(89857).LineDataSource,o=i(34580).LevelsProperty,a=i(28296).Action,l=i(62060).ACTION_ID,c=i(30823).LineToolPitchforkStyle,h=null,d=i(37865),u=d.LineToolWidthsProperty,p=d.LineToolColorsProperty,_=new r("erase level line",s("erase level line")),m=new r("change {title} style",s("change {title} style"));class g extends n{constructor(e,t,i,s){super(e,t||g.createProperties(),i,s),this._properties.style.listeners().subscribe(this,g.prototype._recreatePaneView),this._recreatePaneView()}levelsCount(){return g.LevelsCount}additionalActions(e){for(var t=[],i=[{title:s("Original"),actionId:l.ChartLineToolPitchforkChangeTypeToOriginal},{title:s("Modified Schiff"),actionId:l.ChartLineToolPitchforkChangeTypeToModifiedSchiff},{title:s("Inside"),actionId:l.ChartLineToolPitchforkChangeTypeToInside},{title:s("Schiff"),actionId:l.ChartLineToolPitchforkChangeTypeToSchiff}],n=0;n<4;n++){var o=new a({actionId:i[n].actionId,checked:this.properties().style.value()===n,checkable:!0,label:i[n].title,payload:{target:this,value:n},onExecute:function(t){var i=t.getPayload(),s=i.target;e.setProperty(s.properties().style,i.value,m.format({title:new r(s.name(),s.title())})),s.updateAllViews(),s._model.updateSource(s)}});t.push(o)}return[t[0],t[3],t[1],t[2]]}_recreatePaneView(){if(null!==h){var e=[];this._properties.style.value()===c.Original?e=[new h.PitchforkLinePaneView(this,this._model)]:this._properties.style.value()===c.Schiff?e=[new h.SchiffPitchforkLinePaneView(this,this._model)]:this._properties.style.value()===c.Schiff2?e=[new h.SchiffPitchfork2LinePaneView(this,this._model)]:this._properties.style.value()===c.Inside&&(e=[new h.InsidePitchforkLinePaneView(this,this._model)]),this._setPaneViews(e)}else i.e(1583).then(i.bind(i,41829)).then(e=>{null===h&&(h=e),this._recreatePaneView()})}pointsCount(){return 3}name(){return"Pitchfork"}processErase(e,t){var i="level"+t,s=this.properties()[i].visible;e.setProperty(s,!1,_)}static createProperties(e){var t=new o("linetoolpitchfork",e,!1,{range:[0,8]});return g._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){
return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,84806))).PitchForkDefinitionsViewModel}static _configureProperties(e){n._configureProperties(e);for(var t=[e.child("median").child("linewidth")],i=[e.child("median").child("color")],s=0;s<=g.LevelsCount;s++)t.push(e.child("level"+s).child("linewidth")),i.push(e.child("level"+s).child("color"));e.addChild("linesColors",new p(i)),e.addChild("linesWidths",new u(t))}}g.LevelsCount=8,t.LineToolPitchfork=g},19085:(e,t,i)=>{"use strict";i.d(t,{LineToolPolyline:()=>l});var s=i(88537),r=i(86441),n=i(88564),o=i(49094),a=i(89857);class l extends a.LineDataSource{constructor(e,t,s,r){const n=t||l.createProperties();super(e,n,s,r),this._finished=!1,i.e(1583).then(i.bind(i,95907)).then(t=>{this._setPaneViews([new t.PolylinePaneView(this,e)])})}pointsCount(){return-1}name(){return"Polyline"}hasEditableCoordinates(){return!1}finish(){this._finished=!0,this._lastPoint=null,this.normalizePoints(),this.createServerPoints()}addPoint(e,t,i){var n;if(this._finished)return!0;const a=(0,s.ensureNotNull)(this.priceScale()),l=this._model.timeScale().indexToCoordinate(e.index),c=e.price,h=(0,s.ensure)(null===(n=this.ownerSource())||void 0===n?void 0:n.firstValue()),d=a.priceToCoordinate(c,h),u=(0,o.interactionTolerance)().minDistanceBetweenPoints;if(this._points.length>0){const e=this._points[this._points.length-1],i=this._model.timeScale().indexToCoordinate(e.index),s=e.price,n=a.priceToCoordinate(s,h),o=new r.Point(l,d).subtract(new r.Point(i,n)).length();if(!(null==t?void 0:t.isApiEvent())&&oe.PolylinesDefinitionsViewModel)}static _configureProperties(e){a.LineDataSource._configureProperties(e),e.addExclusion("filled")}}},96295:(e,t,i)=>{"use strict"
;i.d(t,{PositionAveragePriceAxisView:()=>r});var s=i(22474);class r extends s.LineToolPriceAxisView{_formatPrice(e,t){return this._source.formatter().format(e)}}},2157:(e,t,i)=>{"use strict";var s=i(2587).LineToolTrading,r=i(89857).LineDataSource,n=i(96295).PositionAveragePriceAxisView,o=i(53664),a=i(88564).DefaultProperty,l=i(97098).PriceFormatter;const c=i(67337);var h=i(59555).sortSourcesPreOrdered.LineToolPosition;function d(e){return null==e?e="":e+="",e}class u{constructor(e){this._line=e,this._data={bodyText:"position",quantityText:"0"},this._closeEnabled=!0,this._direction="buy",this._profitState="neutral"}setDirection(e){return this._direction=e,this._line.updateAllViewsAndRedraw(),this}setProfitState(e){return this._profitState=e,this._line.updateAllViewsAndRedraw(),this}getPrice(){return this._line.points().length>0?this._line.points()[0].price:this._line._timePoint.length>0?this._line._timePoint[0].price:void 0}setPrice(e){if(this._line.points().length>0){var t=this._line.points()[0];t.price=e,this._line._points[0]=t,this._line.normalizePoints(),this._line.updateAllViewsAndRedraw()}return this._line._timePoint.length>0&&(this._line._timePoint[0].price=e),this}getText(){return this._data.bodyText}setText(e){return this._data.bodyText=e||"",this._line.updateAllViewsAndRedraw(),this}setTooltip(e){return this._line.properties().tooltip.setValue(d(e)),this}getTooltip(){return this._line.properties().tooltip.value()}setProtectTooltip(e){return this._line.properties().protectTooltip.setValue(d(e)),this}getProtectTooltip(){return this._line.properties().protectTooltip.value()}setCloseTooltip(e){return this._line.properties().closeTooltip.setValue(d(e)),this}getCloseTooltip(){return this._line.properties().closeTooltip.value()}setReverseTooltip(e){return this._line.properties().reverseTooltip.setValue(d(e)),this}getReverseTooltip(){return this._line.properties().reverseTooltip.value()}getQuantity(){return this._data.quantityText}setQuantity(e){return this._data.quantityText=e||"",this._line.updateAllViewsAndRedraw(),this}getExtendLeft(){var e=this._line.properties().extendLeft.value();return"inherit"===e?this._line._model.properties().tradingProperties.extendLeft.value():e}setExtendLeft(e){return this._line.properties().extendLeft.setValue(e),this}getLineLength(){var e=this._line.properties().lineLength.value();return"inherit"===e?this._line._model.properties().tradingProperties.lineLength.value():e}setLineLength(e){return this._line.properties().lineLength.setValue(Math.max(0,Math.min(e,100))),this}getLineColor(){var e=this._line.properties();return("buy"===this._direction?e.lineBuyColor:e.lineSellColor).value()}setLineColor(e){return"buy"===this._direction?this.setLineBuyColor(e):this.setLineSellColor(e),this}setLineBuyColor(e){return this._line.properties().lineBuyColor.setValue(e),this}setLineSellColor(e){return this._line.properties().lineSellColor.setValue(e),this}getLineStyle(){var e=this._line.properties().lineStyle.value()
;return"inherit"===e?this._line._model.properties().tradingProperties.lineStyle.value():e}setLineStyle(e){return this._line.properties().lineStyle.setValue(e),this}getLineWidth(){var e=this._line.properties().lineWidth.value();return"inherit"===e?this._line._model.properties().tradingProperties.lineWidth.value():e}setLineWidth(e){return this._line.properties().lineWidth.setValue(e),this}getBodyBorderColor(){var e=this._line.properties();return("buy"===this._direction?e.bodyBorderBuyColor:e.bodyBorderSellColor).value()}setBodyBorderColor(e){return"buy"===this._direction?this.setBodyBorderBuyColor(e):this.setBodyBorderSellColor(e),this}setBodyBorderBuyColor(e){return this._line.properties().bodyBorderBuyColor.setValue(e),this}setBodyBorderSellColor(e){return this._line.properties().bodyBorderSellColor.setValue(e),this}getBodyBackgroundColor(){return o.getColorFromProperties(this._line.properties().bodyBackgroundColor,this._line.properties().bodyBackgroundTransparency)}setBodyBackgroundColor(e){return o.setColorToProperties(e,this._line.properties().bodyBackgroundColor,this._line.properties().bodyBackgroundTransparency),this}getBodyTextColor(){var e=this._line.properties();return("positive"===this._profitState?e.bodyTextPositiveColor:"negative"===this._profitState?e.bodyTextNegativeColor:e.bodyTextNeutralColor).value()}setBodyTextColor(e){return"positive"===this._profitState?this.setBodyTextPositiveColor(e):"negative"===this._profitState?this.setBodyTextNegativeColor(e):this.setBodyTextNeutralColor(e),this}setBodyTextPositiveColor(e){return this._line.properties().bodyTextPositiveColor.setValue(e),this}setBodyTextNegativeColor(e){return this._line.properties().bodyTextNegativeColor.setValue(e),this}setBodyTextNeutralColor(e){return this._line.properties().bodyTextNeutralColor.setValue(e),this}getBodyFont(){return o.getFontFromProperties(this._line.properties().bodyFontFamily,this._line.properties().bodyFontSize,this._line.properties().bodyFontBold,this._line.properties().bodyFontItalic)}setBodyFont(e){return o.setFontToProperties(e,this._line.properties().bodyFontFamily,this._line.properties().bodyFontSize,this._line.properties().bodyFontBold,this._line.properties().bodyFontItalic),this}getQuantityBorderColor(){var e=this._line.properties();return("buy"===this._direction?e.quantityBorderBuyColor:e.quantityBorderSellColor).value()}setQuantityBorderColor(e){return"buy"===this._direction?this.setQuantityBorderBuyColor(e):this.setQuantityBorderSellColor(e),this}setQuantityBorderBuyColor(e){return this._line.properties().quantityBorderBuyColor.setValue(e),this}setQuantityBorderSellColor(e){return this._line.properties().quantityBorderSellColor.setValue(e),this}getQuantityBackgroundColor(){var e=this._line.properties();return("buy"===this._direction?e.quantityBackgroundBuyColor:e.quantityBackgroundSellColor).value()}setQuantityBackgroundColor(e){return"buy"===this._direction?this.setQuantityBackgroundBuyColor(e):this.setQuantityBackgroundSellColor(e),this}setQuantityBackgroundBuyColor(e){
return this._line.properties().quantityBackgroundBuyColor.setValue(e),this}setQuantityBackgroundSellColor(e){return this._line.properties().quantityBackgroundSellColor.setValue(e),this}getQuantityTextColor(){return o.getColorFromProperties(this._line.properties().quantityTextColor,this._line.properties().quantityTextTransparency)}setQuantityTextColor(e){return o.setColorToProperties(e,this._line.properties().quantityTextColor,this._line.properties().quantityTextTransparency),this}getQuantityFont(){return o.getFontFromProperties(this._line.properties().quantityFontFamily,this._line.properties().quantityFontSize,this._line.properties().quantityFontBold,this._line.properties().quantityFontItalic)}setQuantityFont(e){return o.setFontToProperties(e,this._line.properties().quantityFontFamily,this._line.properties().quantityFontSize,this._line.properties().quantityFontBold,this._line.properties().quantityFontItalic),this}getReverseButtonBorderColor(){var e=this._line.properties();return("buy"===this._direction?e.reverseButtonBorderBuyColor:e.reverseButtonBorderSellColor).value()}setReverseButtonBorderColor(e){return"buy"===this._direction?this.setReverseButtonBorderBuyColor(e):this.setReverseButtonBorderSellColor(e),this}setReverseButtonBorderBuyColor(e){return this._line.properties().reverseButtonBorderBuyColor.setValue(e),this}setReverseButtonBorderSellColor(e){return this._line.properties().reverseButtonBorderSellColor.setValue(e),this}getReverseButtonBackgroundColor(){return o.getColorFromProperties(this._line.properties().reverseButtonBackgroundColor,this._line.properties().reverseButtonBackgroundTransparency)}setReverseButtonBackgroundColor(e){return o.setColorToProperties(e,this._line.properties().reverseButtonBackgroundColor,this._line.properties().reverseButtonBackgroundTransparency),this}getReverseButtonIconColor(){var e=this._line.properties();return("buy"===this._direction?e.reverseButtonIconBuyColor:e.reverseButtonIconSellColor).value()}setReverseButtonIconColor(e){return"buy"===this._direction?this.setReverseButtonIconBuyColor(e):this.setReverseButtonIconSellColor(e),this}setReverseButtonIconBuyColor(e){return this._line.properties().reverseButtonIconBuyColor.setValue(e),this}setReverseButtonIconSellColor(e){return this._line.properties().reverseButtonIconSellColor.setValue(e),this}getCloseButtonBorderColor(){var e=this._line.properties();return("buy"===this._direction?e.closeButtonBorderBuyColor:e.closeButtonBorderSellColor).value()}setCloseButtonBorderColor(e){return"buy"===this._direction?this.setCloseButtonBorderBuyColor(e):this.setCloseButtonBorderSellColor(e),this}setCloseButtonBorderBuyColor(e){return this._line.properties().closeButtonBorderBuyColor.setValue(e),this}setCloseButtonBorderSellColor(e){return this._line.properties().closeButtonBorderSellColor.setValue(e),this}getCloseButtonBackgroundColor(){return o.getColorFromProperties(this._line.properties().closeButtonBackgroundColor,this._line.properties().closeButtonBackgroundTransparency)}setCloseButtonBackgroundColor(e){
return o.setColorToProperties(e,this._line.properties().closeButtonBackgroundColor,this._line.properties().closeButtonBackgroundTransparency),this}getCloseButtonIconColor(){var e=this._line.properties();return("buy"===this._direction?e.closeButtonIconBuyColor:e.closeButtonIconSellColor).value()}setCloseButtonIconColor(e){return"buy"===this._direction?this.setCloseButtonIconBuyColor(e):this.setCloseButtonIconSellColor(e),this}setCloseButtonIconBuyColor(e){return this._line.properties().closeButtonIconBuyColor.setValue(e),this}setCloseButtonIconSellColor(e){return this._line.properties().closeButtonIconSellColor.setValue(e),this}block(){this._blocked=!0,this._line.updateAllViewsAndRedraw()}unblock(){this._blocked=!1,this._line.updateAllViewsAndRedraw()}isFunction(e){return"function"==typeof e}onReverse(e,t){return t?this.isFunction(t)&&(this._onReverseData=e,this._onReverseCallback=t):this.isFunction(e)&&(this._onReverseCallback=e),this}callOnReverse(){this.isFunction(this._onReverseCallback)&&this._onReverseCallback.call(this,this._onReverseData)}isOnReverseCallbackPresent(){return this.isFunction(this._onReverseCallback)}onClose(e,t){return t?this.isFunction(t)&&(this._onCloseData=e,this._onCloseCallback=t):this.isFunction(e)&&(this._onCloseCallback=e),this}setCloseEnabled(e){return this._closeEnabled===e||(this._closeEnabled=e,this._onCloseCallback&&this._line.updateAllViewsAndRedraw()),this}isCloseEnabled(){return this._closeEnabled}callOnClose(){this.isFunction(this._onCloseCallback)&&this._closeEnabled&&this._onCloseCallback.call(this,this._onCloseData)}isOnCloseCallbackPresent(){return this._closeEnabled&&this.isFunction(this._onCloseCallback)}onModify(e,t){return t?this.isFunction(t)&&(this._onModifyData=e,this._onModifyCallback=t):this.isFunction(e)&&(this._onModifyCallback=e),this}callOnModify(){this.isFunction(this._onModifyCallback)&&this._onModifyCallback.call(this,this._onModifyData)}onContextMenu(e,t){return t?this.isFunction(t)&&(this._onContextMenuData=e,this._onContextMenuCallback=t):this.isFunction(e)&&(this._onContextMenuCallback=e),this}shouldShowContextMenu(){return this.isFunction(this._onContextMenuCallback)}callOnContextMenu(){if(this.isFunction(this._onContextMenuCallback))return this._onContextMenuCallback.call(this,this._onContextMenuData)}remove(){this._line._model.removeSource(this._line),delete this._line}}class p extends s{constructor(e,t){super(e,t||p.createProperties()),this._adapter=new u(this),i.e(1583).then(i.t.bind(i,69127,19)).then(({PositionPaneView:e})=>{this._setPaneViews([new e(this,this._model)])});var s=e.mainSeries().symbolInfo(),r=null!==s?s.pricescale:100,n=null!==s&&s.fractional?s.minmov:1,o=null!==s&&s.fractional,a=null!==s?s.minmove2:void 0;this._formatter=new l(r,n,o,a)}zorder(){return h}isSpeciallyZOrderedSource(){return!0}setPoint(e,t,i){this._points[e]=t,this.normalizePoints()}addPoint(e,t){return this._points.push(e),this._lastPoint=null,this.normalizePoints(),this.createServerPoints(),!0}name(){return"Position"}createPriceAxisView(e){
return this._priceAxisView=new n(this,{pointIndex:e,backgroundPropertyGetter:()=>this._adapter.getLineColor()}),this._priceAxisView}paneViews(){return TradingView.printing&&!c.enabled("snapshot_trading_drawings")?null:this._model.properties().tradingProperties.showPositions.value()?r.prototype.paneViews.call(this):null}priceAxisViews(e,t){return TradingView.printing&&!c.enabled("snapshot_trading_drawings")?null:this._model.properties().tradingProperties.showPositions.value()?r.prototype.priceAxisViews.call(this,e,t):null}hasContextMenu(){return this._adapter.shouldShowContextMenu()}contextMenuItems(){return this._adapter.callOnContextMenu()}formatter(){return this._formatter}static createProperties(e){var t=new a("linetoolposition",e,!1,!1);return p._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e)}}t.LineToolPosition=p},19582:(e,t,i)=>{"use strict";var s,r;i.r(t),i.d(t,{AlertStatus:()=>s,Direction:()=>r}),function(e){e[e.Waiting=0]="Waiting",e[e.Success=1]="Success",e[e.Failure=2]="Failure"}(s||(s={})),function(e){e[e.Up=1]="Up",e[e.Down=2]="Down"}(r||(r={}))},12346:(e,t,i)=>{"use strict";var s=i(88537).ensureNotNull,r=i(89857).LineDataSource,n=i(88564).DefaultProperty,o=i(19582);class a extends r{constructor(e,t,s,r){super(e,t||a.createProperties(),s,r),this._predictionPaneView=null;const n=this._model.mainSeries();n.properties().interval.subscribe(this,()=>{this.setStatus(o.AlertStatus.Waiting)}),n.dataEvents().dataUpdated().subscribe(this,this.checkAlert),i.e(1583).then(i.t.bind(i,58090,19)).then(({PredictionPaneView:e})=>{this._predictionPaneView=new e(this,this._model),this._setPaneViews([this._predictionPaneView])})}destroy(){const e=this._model.mainSeries();e.properties().interval.unsubscribeAll(this),e.dataEvents().dataUpdated().unsubscribeAll(this),super.destroy()}dataAndViewsReady(){return r.prototype.dataAndViewsReady.call(this)&&this._predictionPaneView&&this._predictionPaneView.iconsReady()}isSynchronizable(){return!1}status(){return this._properties.status.value()}setStatus(e){return this._properties.status.setValue(e)}pointsCount(){return 2}name(){return"Forecast"}restorePoints(e,t,i){super.restorePoints(e,t,i),this.checkAlert()}checkAlert(){if(!this.isSourceHidden()&&!(this._points.length<2||this._model.mainSeries().bars().isEmpty())){var e=this._points[1];if(this.status())e.index>this._model.timeScale().baseIndex()&&this.setStatus(o.AlertStatus.Waiting);else{var t=this._model.mainSeries().bars().valueAt(e.index);if(null!==t){var i=this.direction();if(i===o.Direction.Up&&t[TradingView.HIGH_PLOT]>=e.price)this.setStatus(o.AlertStatus.Success);else if(i===o.Direction.Down&&t[TradingView.LOW_PLOT]<=e.price)this.setStatus(o.AlertStatus.Success);else{var r=s(this._model.mainSeries().bars().lastIndex());e.index!==r&&this.setStatus(o.AlertStatus.Failure)}}}}}addPoint(e){var t=r.prototype.addPoint.call(this,e);return t&&this.checkAlert(),t}endChanging(){super.endChanging(),this.setStatus(o.AlertStatus.Waiting),this.checkAlert()}onData(e){super.onData(e),this.checkAlert()}
endMoving(e,t,i){super.endMoving(e,t,i),this.setStatus(o.AlertStatus.Waiting),this.checkAlert()}direction(){if(this.points().length<2)return o.Direction.Up;var e=this.points()[0];return this.points()[1].price>e.price?o.Direction.Up:o.Direction.Down}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,53697))).PredictionDefinitionsViewModel}cloneable(){return!1}static createProperties(e){var t=new n("linetoolprediction",e);return a._configureProperties(t),t}static _configureProperties(e){r._configureProperties(e),e.merge({status:o.AlertStatus.Waiting})}}t.LineToolPrediction=a},3113:(e,t,i)=>{"use strict";var s=i(89857).LineDataSource,r=i(88564).DefaultProperty,n=i(37865).LineToolColorsProperty;class o extends s{constructor(e,t,s,r){super(e,t||o.createProperties(),s,r),i.e(1583).then(i.t.bind(i,69741,19)).then(({PriceLabelPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}pointsCount(){return 1}name(){return"Price Label"}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,61641))).PriceLabelDefinitionsViewModel}static createProperties(e){var t=new r("linetoolpricelabel",e);return o._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e),e.addChild("linesColors",new n([e.childs().borderColor])),e.addChild("textsColors",new n([e.childs().color]))}}t.LineToolPriceLabel=o},7648:(e,t,i)=>{"use strict";i.d(t,{LineToolPriceNote:()=>c});var s=i(88537),r=i(88564),n=i(2015),o=i.n(n),a=i(89857),l=i(33291);class c extends a.LineDataSource{constructor(e,t,s,r){super(e,t||c.createProperties(),s,r),this._labelMovingDelta=null,i.e(1583).then(i.bind(i,19226)).then(t=>{this._setPaneViews([new t.PriceNotePaneView(this,e)])})}pointsCount(){return 2}name(){return"Price Note"}template(){const e=super.template();return e.text=this.properties().childs().text.value(),e}startMoving(e,t,i){if(1===t){if(this.isSourceHidden())return;const i=(0,s.ensureDefined)(e.logical),r=this.points()[1];this._labelMovingDelta={index:r.index-i.index,price:r.price-i.price},this.startChanging(t,i)}else this._labelMovingDelta=null,super.startMoving(e,t,i)}move(e,t,i){if(null!==this._labelMovingDelta){const t=(0,s.ensureDefined)(e.logical),r={index:t.index+this._labelMovingDelta.index,price:t.price+this._labelMovingDelta.price};this.setPoint(1,r,i),this.updateAllViews((0,l.dataSourceChangeEvent)(this.id()))}else super.move(e,t,i)}endMoving(e,t,i){return null!==this._labelMovingDelta?(this._labelMovingDelta=null,this.endChanging(!1,e)):super.endMoving(e,t,i)}static createProperties(e){const t=new r.DefaultProperty("linetoolpricenote",e);return c._configureProperties(t),t}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text)}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,90727)).then(e=>e.PriceNoteDefinitionsViewModel)}_snapTo45DegreesAvailable(){return!0}static _configureProperties(e){
a.LineDataSource._configureProperties(e),e.hasChild("text")||e.addChild("text",new(o())("")),e.addExclusion("text"),e.hasChild("backgroundsColors")&&e.removeProperty("backgroundsColors"),e.hasChild("textsColors")&&e.removeProperty("textsColors")}}},66602:(e,t,i)=>{"use strict";i.d(t,{LineToolPriceRange:()=>p});var s=i(89857),r=i(88537),n=i(24633),o=i(45383),a=i(85402);const l={...a.nonThemedFactoryDefaultsBase,extendLeft:!1,extendRight:!1},c=a.themedFactoryDefaultsBase,h=(0,o.extractAllPropertiesKeys)((0,r.ensureDefined)(c.get(n.StdTheme.Light))),d=(0,o.extractAllPropertiesKeys)(l);class u extends o.ThemedDefaultProperty{static create(e){return new u("linetoolpricerange",()=>(0,o.factoryDefaultsForCurrentTheme)(l,c),d,h,e)}}class p extends s.LineDataSource{constructor(e,t,s,r){super(e,t||p.createProperties(),s,r),i.e(1583).then(i.bind(i,25965)).then(e=>{this._setPaneViews([new e.PriceRangePaneView(this,this._model)])})}pointsCount(){return 2}name(){return"Price Range"}static createProperties(e){const t=u.create(e);return p._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,80447))).GeneralDatePriceRangeDefinitionsViewModel}static _configureProperties(e){s.LineDataSource._configureProperties(e)}}},35344:(e,t,i)=>{"use strict";var s=i(34580).LevelsProperty,r=i(53804).LineToolFibWedgeBase,n=i(37865).LineToolColorsProperty;class o extends r{constructor(e,t,s,r){super(e,t||o.createProperties(),s,r),i.e(1583).then(i.t.bind(i,76207,19)).then(({ProjectionLinePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}levelsCount(){return 1}name(){return"Projection"}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,12590))).ProjectionDefinitionsViewModel}static createProperties(e){var t=new s("linetoolprojection",e,!1,{range:[1,1]});return o._configureProperties(t),t}static _configureProperties(e){r._configureProperties(e),e.addChild("linesColors",new n([e.trendline.color]))}}t.LineToolProjection=o},31702:(e,t,i)=>{"use strict";var s=i(57649).LineToolTrendLine,r=i(88564).DefaultProperty;class n extends s{constructor(e,t,i,s){super(e,t||n.createProperties(),i,s)}name(){return"Ray"}static createProperties(e){var t=new r("linetoolray",e);return n._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e)}}t.LineToolRay=n},20258:(e,t,i)=>{"use strict";i.d(t,{LineToolRectangle:()=>h});var s=i(86441),r=i(88564),n=i(2015),o=i.n(n),a=i(89857),l=i(37865),c=i(88537);class h extends a.LineDataSource{constructor(e,t,s,r){const n=t||h.createProperties();super(e,n,s,r),i.e(1583).then(i.bind(i,79090)).then(({RectanglePaneView:t})=>{const i=[new t(this,e)];this._setPaneViews(i)})}pointsCount(){return 2}textColorsProperty(){return this.properties().childs().showLabel.value()?super.textColorsProperty():null}name(){return"Rectangle"}setPoint(e,t,i){if(e<2&&super.setPoint(e,t,i),i&&i.shift()){const i=this._getAnchorPointForIndex(e)
;if(e>=4)return this._correctMiddlePoints(e,t,i),void this.normalizePoints();this._snapPoint45Degree(t,i)}switch(e){case 2:this._points[1].price=t.price,this._points[0].index=t.index;break;case 3:this._points[0].price=t.price,this._points[1].index=t.index;break;case 4:this._points[0].index=t.index;break;case 5:this._points[1].index=t.index;break;case 6:this._points[0].price=t.price;break;case 7:this._points[1].price=t.price}this.normalizePoints()}getPoint(e){return e<2?super.getPoint(e):this._getAnchorPointForIndex(e)}template(){const e=super.template();return e.text=this.properties().childs().text.value(),e}static createProperties(e){const t=new r.DefaultProperty("linetoolrectangle",e);return h._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,39457)).then(e=>e.RectangleDefinitionsViewModel)}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text)}_snapPoint45Degree(e,t,i){const s=this.m_priceScale,r=this.ownerSource();if(null===s||null===r)return;const n=r.firstValue();if(null===n)return;const o=this._model.timeScale(),a=(0,c.ensureNotNull)(this.pointToScreenPoint(e)),l=(0,c.ensureNotNull)(this.pointToScreenPoint(t)),h=a.x-l.x,d=a.y-l.y,u=h<0?-1:1,p=d<0?-1:1,_=Math.max(Math.abs(h),Math.abs(d)),m=Math.round(o.coordinateToIndex(l.x+_*u)),g=Math.abs(o.indexToCoordinate(m)-l.x),f=s.coordinateToPrice(l.y+g*p,n);e.index=m,e.price=f}_correctMiddlePoints(e,t,i){e<6?this._correctRightLeftMiddlePoint(e,t,i):this._correctTopBottomMiddlePoint(e,t,i)}_correctRightLeftMiddlePoint(e,t,i){const r=(0,c.ensureNotNull)(this.pointToScreenPoint(t)),n=(0,c.ensureNotNull)(this.pointToScreenPoint(i)),o=(0,c.ensureNotNull)(this.pointToScreenPoint(this._points[0])),a=(0,c.ensureNotNull)(this.pointToScreenPoint(this._points[1]));let l=r.x-n.x;if(0===l)return;const h=o.x{"use strict";i.d(t,{LineToolRiskRewardBase:()=>v});var s=i(88537),r=i(95505),n=i(71053),o=i(69927),a=i(89857),l=i(10324),c=i(41628),h=i(97938);class d extends h.PriceAxisView{constructor(e,t){super(),this._source=e,this._data=t}_updateRendererData(e,t,i){if(e.visible=!1,!this._showAxisLabel())return;const s=this._source.priceScale();if(0===this._source.points().length||null===s||s.isEmpty())return;const r=this._source.ownerSource(),n=null!==r?r.firstValue():null;if(null===n)return;const o=this._data.priceProperty.value(),a=this._data.colorProperty.value();i.background=a,i.textColor=this.generateTextColor(a),i.coordinate=s.priceToCoordinate(o,n),e.text=s.formatPrice(o,n),e.visible=!0}_showAxisLabel(){return this._source.properties().childs().showPriceLabels.value()}}var u=i(2015),p=i.n(u);class _ extends(p()){constructor(e,t){super(),this._lineSource=e,this._pointIndex=t}value(){const e=this._lineSource.points()[this._pointIndex].price;return this._formatAndParsePrice(e)}state(){return this.value()}merge(e,t){return this.setValue(e),t?[]:null}_formatAndParsePrice(e){const t=(0,s.ensureNotNull)(this._lineSource.ownerSource()).formatter();if(t.parse){const i=t.format(e),s=t.parse(i);return s.res?s.value:e}return e}}class m extends _{constructor(e){super(e,0)}setValue(e){const t=this._lineSource.points()[this._pointIndex];this._lineSource.startChanging(this._pointIndex,t),t.price=parseFloat(""+e),
this._lineSource.setPoint(this._pointIndex,t),this._lineSource.recalculate(),this._lineSource.model().updateSource(this._lineSource),this._listeners.fire(this),this._lineSource.endChanging(!1,!1),this._lineSource.syncPriceLevels()}}class g extends _{constructor(e){super(e,1)}value(){const e=this._lineSource.stopPrice();return this._formatAndParsePrice(e)}setValue(e){const t=Math.round(Math.abs(e-this._lineSource.entryPrice())*this._lineSource.model().mainSeries().base());this._lineSource.properties().childs().stopLevel.setValue(t),this._lineSource.syncPriceLevels()}}class f extends _{constructor(e){super(e,2)}value(){const e=this._lineSource.profitPrice();return this._formatAndParsePrice(e)}setValue(e){const t=Math.round(Math.abs(e-this._lineSource.entryPrice())*this._lineSource.model().mainSeries().base());this._lineSource.properties().childs().profitLevel.setValue(t),this._lineSource.syncPriceLevels()}}class v extends a.LineDataSource{constructor(e,t,n,a){if(super(e,t,n,a),this._syncStateExclusions=["points","entryPrice","stopPrice","targetPrice","stopLevel","profitLevel","riskSize","qty","amountTarget","amountStop"],!t.hasChild("stopLevel")&&!t.hasChild("profitLevel")){const i=(0,s.ensureNotNull)(e.timeScale().visibleBarsStrictRange()),r=i.firstBar(),n=i.lastBar();let a=(0,s.ensureNotNull)(e.mainSeries().priceRange(r,n));const l=e.mainSeries().priceScale();if(l.isLog()){const e=l.logicalToPrice(a.minValue()),t=l.logicalToPrice(a.maxValue());a=new o.PriceRange(e,t)}if(a&&!a.isEmpty()){const i=Math.round(.2*a.length()*e.mainSeries().base());t.merge({stopLevel:i,profitLevel:i})}}t.childs().stopLevel.listeners().subscribe(this,this.recalculate),t.childs().stopLevel.listeners().subscribe(null,()=>{this.properties().childs().stopPrice.childChanged(null)}),t.childs().profitLevel.listeners().subscribe(this,this.recalculate),t.childs().profitLevel.listeners().subscribe(null,()=>{this.properties().childs().targetPrice.childChanged(null)}),t.addChild("entryPrice",new m(this)),t.addChild("stopPrice",new g(this)),t.addChild("targetPrice",new f(this)),t.hasChild("riskSize")||t.addProperty("riskSize",0),t.hasChild("qty")||t.addProperty("qty",0),t.hasChild("amountTarget")||t.addProperty("amountTarget",t.childs().accountSize.value()),t.hasChild("amountStop")||t.addProperty("amountStop",t.childs().accountSize.value()),t.addExclusion("riskSize"),t.addExclusion("qty"),t.addExclusion("amountTarget"),t.addExclusion("amountStop"),this._riskInPercentsFormatter=new r.NumericFormatter(2),this._riskInMoneyFormatter=new r.NumericFormatter,t.childs().risk.subscribe(this,this._recalculateRiskSize),t.childs().accountSize.subscribe(this,this._recalculateRiskSize),t.childs().riskDisplayMode.subscribe(this,this._recalculateRisk),t.childs().riskDisplayMode.subscribe(this,this._recalculateRiskSize),t.childs().entryPrice.subscribe(this,this._recalculateRiskSize),t.childs().stopPrice.subscribe(this,this._recalculateRiskSize),t.childs().profitLevel.subscribe(this,this._recalculateRiskSize),
t.childs().profitLevel.subscribe(this,this.syncPriceLevels.bind(this)),t.childs().stopLevel.subscribe(this,this._recalculateRiskSize),t.childs().stopLevel.subscribe(this,this.syncPriceLevels.bind(this)),t.childs().qty.subscribe(this,this._recalculateRiskSize),e.mainSeries().dataEvents().dataUpdated().subscribe(this,this._onSeriesUpdated),this.pointAdded().subscribe(this,e=>{switch(e){case c.RiskRewardPointIndex.Entry:case c.RiskRewardPointIndex.Close:this._recalculateRiskSize(),this._recalculateQty()}}),this.pointChanged().subscribe(this,e=>{switch(e){case c.RiskRewardPointIndex.Entry:case c.RiskRewardPointIndex.Close:this._recalculateRiskSize(),this._recalculateQty()}}),t.childs().riskDisplayMode.value()===l.RiskDisplayMode.Percentage&&t.childs().risk.value()>100&&t.childs().riskDisplayMode.setValueSilently(l.RiskDisplayMode.Money),this.version=2,this._entryPriceAxisView=new d(this,{colorProperty:t.childs().linecolor,priceProperty:t.childs().entryPrice}),this._stopPriceAxisView=new d(this,{colorProperty:t.childs().stopBackground,priceProperty:t.childs().stopPrice}),this._profitPriceAxisView=new d(this,{colorProperty:t.childs().profitBackground,priceProperty:t.childs().targetPrice}),i.e(1583).then(i.bind(i,35362)).then(({RiskRewardPaneView:t})=>{const i=[new t(this,e)];this._setPaneViews(i)})}destroy(){this._model.mainSeries().dataEvents().dataUpdated().unsubscribeAll(this),super.destroy()}checkAlert(){this.recalculate()}calculatePL(e){return this.entryPrice()-e}lastBarData(){const e=this._model.mainSeries().bars().firstIndex(),t=this._model.mainSeries().bars().lastIndex();if(null===e||null===t||isNaN(e)||isNaN(t))return null;const i=this.points();if(4===i.length){const s=i[c.RiskRewardPointIndex.ActualClose];return s.indexMath.max(this._points[0].index,this._points[1].index)||this.checkAlert()}}},10324:(e,t,i)=>{"use strict";var s;i.d(t,{RiskDisplayMode:()=>s}),function(e){e.Percentage="percents",e.Money="money"}(s||(s={}))},41628:(e,t,i)=>{"use strict";var s;i.d(t,{RiskRewardPointIndex:()=>s}),function(e){e[e.Entry=0]="Entry",e[e.Close=1]="Close",e[e.ActualEntry=2]="ActualEntry",e[e.ActualClose=3]="ActualClose"}(s||(s={}))},34291:(e,t,i)=>{"use strict";var s=i(88537).ensureNotNull,r=i(89857).LineDataSource,n=i(85733),o=i(88564).DefaultProperty,a=i(41628).RiskRewardPointIndex,l=i(10324).RiskDisplayMode,c=i(79029).LineToolRiskRewardBase,h=i(80643).isNumber;class d extends c{riskFormatter(e){return e===l.Percentage?this._riskInPercentsFormatter:this._riskInMoneyFormatter}getRiskStep(e){return e===l.Percentage?.01:1}_roundValue(e){return parseFloat(e.toFixed(2))}hasEditableCoordinates(){return!1}_recalculateRisk(){
var e=this.properties(),t=e.riskDisplayMode.value(),i=e.riskSize.value(),s=e.accountSize.value(),r=e.risk.value();r=t===l.Percentage?this._roundValue(i/s*100):this._roundValue(s/100*r),this._riskInChange=!0,e.risk.setValue(this.riskFormatter(t).format(r)),this._riskInChange=!1}_recalculateRiskSize(){if(!this._riskInChange){var e=this.properties(),t=e.risk.value(),i=e.riskDisplayMode.value(),s=e.accountSize.value();i===l.Percentage?e.riskSize.setValue(t/100*s):t>s?(e.risk.setValue(s),e.riskSize.setValue(s)):e.riskSize.setValue(t)}}migrateVersion(e,t,i){if(1===e&&this._points.length>=1){var s=[];if(s.push(this._points[0]),n={price:(n=this._points[0]).price,index:this._getClosePointIndex(n.index)},s.push(n),this._points[1]&&s.push(this._points[1]),this._points[2]&&s.push(this._points[2]),this._points=s,this._timePoint.length>=1){var r=[],n=this._timePoint[0];r.push(n);var o={price:n.price,time_t:n.time_t,offset:this._getClosePointIndex(n.offset)};r.push(o),this._timePoint[1]&&s.push(this._points[1]),this._timePoint[2]&&s.push(this._points[2]),this._timePoint=r}}}priceAxisViews(e,t){return this.isSourceHidden()||t!==this.priceScale()||this._model.paneForSource(this)!==e?null:[this._entryPriceAxisView,this._stopPriceAxisView,this._profitPriceAxisView]}updateAllViews(){this.isActualSymbol()&&this._properties.visible.value()&&(n.hideAllDrawings().value()&&this.userEditEnabled()||(super.updateAllViews(),this._entryPriceAxisView.update(),this._stopPriceAxisView.update(),this._profitPriceAxisView.update()))}restoreExternalState(e){if(h(e.entryPrice)){if(e=Object.assign({},e),!this.isActualSymbol())this._timePoint[0].price=e.entryPrice,delete e.entryPrice;this.properties().merge(e)}else super.restoreExternalState(e)}_changeEntryPoint(e){var t=this.properties().stopPrice.value(),i=this.properties().targetPrice.value(),s=1/this._model.mainSeries().base(),r=Math.min(t,i)+s,n=Math.max(t,i)-s;e.price=Math.max(r,Math.min(n,this._roundPrice(e.price))),super.setPoint(0,e),this.properties().stopPrice.setValue(t),this.properties().targetPrice.setValue(i)}setPoint(e,t,i){if(this.isActualSymbol()){switch(this._muteSyncLineStyle(),e){case 0:this._changeEntryPoint(t);break;case 2:this.properties().stopPrice.setValue(this.preparseStopPrice(t.price));break;case 3:this.properties().targetPrice.setValue(this.preparseProfitPrice(t.price));break;case 1:t.price=this._roundPrice(t.price),super.setPoint(1,t),this.recalculate()}this._unmuteSyncLineStyleWithoutApplyingChanges(),this.syncPriceLevels()}}getPoint(e){switch(e){case 0:return this._points[0];case 1:return{index:this._points[1].index,price:this._points[0].price};case 2:return{index:this._points[0].index,price:this.stopPrice()};case 3:return{index:this._points[0].index,price:this.profitPrice()}}return null}setPoints(e){this._muteSyncLineStyle(),super.setPoints(e),this.recalculate(),this._unmuteSyncLineStyleWithoutApplyingChanges(),this.syncPriceLevels()}syncPriceLevels(){if(this.linkKey().value()){var e=this.properties(),t={entryPrice:e.entryPrice.value(),stopLevel:e.stopLevel.value(),
profitLevel:e.profitLevel.value()};n.changeLineStyle({linkKey:this.linkKey().value(),state:t,model:this._model})}}pointsCount(){return 1}name(){return"Risk/Reward"}addPoint(e){e.price=this._roundPrice(e.price),super.addPoint(e,null,!0);var t={price:e.price,index:this._getClosePointIndex(e.index)};super._addPointIntenal(t,null,!0);var i=this.calculateActualEntry(e,t);i&&(super._addPointIntenal(i,null,!0),(t=this.findClosePoint(i,t))&&super._addPointIntenal(t,null,!0));return this._lastPoint=null,this.normalizePoints(),this.createServerPoints(),!0}setOwnerSource(e){super.setOwnerSource(e),this._model.mainSeries().symbolInfo()&&(this._recalculateAmount(),this._recalculateRiskSize(),this._recalculateQty())}_roundPrice(e){var t=this._model.mainSeries().base();return Math.round(e*t)/t}recalculate(){if(0!==this.points().length){var e=this.properties().targetPrice.value(),t=this.properties().stopPrice.value(),i=[this._points[0],this._points[1]],s=this.calculateActualEntry(this.points()[0],this.points()[1]);if(s){i.push(s);var r=this.findClosePoint(s,this.points()[1]);r&&i.push(r)}this._points=i,e!==this.properties().targetPrice.value()&&this.properties().targetPrice._listeners.fire(this.properties().targetPrice),t!==this.properties().stopPrice.value()&&this.properties().stopPrice._listeners.fire(this.properties().stopPrice)}}start(){super.start(),this.recalculate()}startMoving(e,t,i){e.logical.price=this._roundPrice(e.logical.price),super.startMoving(e,t,i)}move(e,t,i){e.logical.price=this._roundPrice(e.logical.price),super.move(e,t,i),this.recalculate(),this._entryPriceAxisView.update()}_correctPoints(e,t){return!!this.isActualSymbol()&&r.prototype._correctPoints.call(this,[e[0],e[1]],t)}entryPrice(){return this.points()[0].price}findClosePoint(e,t){for(var i=this._model.mainSeries().bars(),r=s(i.firstIndex()),n=Math.max(e.index,r),o=s(i.lastIndex()),a=Math.min(o,t.index),l=n;l<=a;l++){var c=i.valueAt(l);if(null!==c){var h=this.checkStopPrice(c);if(null!=h)return{index:l,price:h}}}return null}calculateActualEntry(e,t){var i=this._model.mainSeries().bars();if(i.isEmpty())return null;for(var r=s(i.firstIndex()),n=Math.max(e.index,r),o=e.price,a=s(i.lastIndex()),l=Math.min(a,t.index),c=n;c<=l;c++){var h=i.valueAt(c);if(null!==h&&h[TradingView.HIGH_PLOT]>=o&&h[TradingView.LOW_PLOT]<=o)return{index:c,price:o}}return null}axisPoints(){if(!this._points[a.ActualEntry])return[];var e=this._points[a.ActualEntry],t=null;if(4===this._points.length)t=this._points[a.ActualClose];else{var i=this.lastBarData();if(!i)return[];t={index:i.index,price:i.closePrice}}return[e,t]}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,18736))).RiskRewardDefinitionsViewModel}template(){var e=this.properties(),t=r.prototype.template.call(this);return t.stopLevel=e.stopLevel.value(),t.profitLevel=e.profitLevel.value(),t}_applyTemplateImpl(e){delete e.targetPrice,delete e.stopPrice,delete e.entryPrice,super._applyTemplateImpl(e);var t=this.properties()
;void 0!==e.stopLevel&&t.stopLevel.setValue(e.stopLevel),void 0!==e.profitLevel&&t.profitLevel.setValue(e.profitLevel)}getOrderTemplate(){return null}_propertiesStateExclusions(){return["entryPrice","stopPrice","targetPrice"]}static _configureProperties(e){r._configureProperties(e),e.addExclusion("stopLevel"),e.addExclusion("profitLevel"),e.addExclusion("stopPrice"),e.addExclusion("targetPrice"),e.addExclusion("entryPrice")}_getClosePointIndex(e){var t=this._model.timeScale(),i=Math.round(t.width()/t.barSpacing());return e+Math.max(3,Math.round(.15*i))}}d.version=2;class u extends d{constructor(e,t,i,s){super(e,t||u.createProperties(),i,s);var r=this.properties();r.entryPrice.subscribe(this,this._recalculateQty),r.stopPrice.subscribe(this,this._recalculateQty),r.riskSize.subscribe(this,this._recalculateQty),r.entryPrice.subscribe(this,this._recalculateAmount),r.profitLevel.subscribe(this,this._recalculateAmount),r.stopLevel.subscribe(this,this._recalculateAmount),r.accountSize.subscribe(this,this._recalculateAmount),r.riskSize.subscribe(this,this._recalculateAmount),r.qty.subscribe(this,this._recalculateAmount)}_recalculateQty(){if(0!==this.points().length){var e=this.properties(),t=e.entryPrice.value(),i=e.stopPrice.value(),s=e.riskSize.value(),r=this._model.mainSeries().pointValue(),n=s/(Math.abs(i-t)*r);e.qty.setValue(n)}}_recalculateAmount(){if(0!==this.points().length){var e=this.properties(),t=e.accountSize.value(),i=e.entryPrice.value(),s=e.qty.value(),r=e.stopPrice.value(),n=e.targetPrice.value(),o=this._model.mainSeries().pointValue(),a=this._roundValue(t+(i-n)*s*o),l=this._roundValue(t-(r-i)*s*o);e.amountTarget.setValue(a),e.amountStop.setValue(l)}}name(){return"Risk/Reward short"}stopPrice(){return this.entryPrice()+this.properties().stopLevel.value()/this._model.mainSeries().base()}profitPrice(){return this.entryPrice()-this.properties().profitLevel.value()/this._model.mainSeries().base()}preparseStopPrice(e){e=this._roundPrice(e);var t=this.entryPrice()+1/this._model.mainSeries().base();return Math.max(e,t)}preparseProfitPrice(e){e=this._roundPrice(e);var t=this.entryPrice()-1/this._model.mainSeries().base();return Math.min(e,t)}checkStopPrice(e){var t=this.stopPrice(),i=this.profitPrice();return e[TradingView.HIGH_PLOT]>=t?this.stopPrice():e[TradingView.LOW_PLOT]<=i?this.profitPrice():null}_orderSide(){throw new Error("not supported")}static createProperties(e){var t=new o("linetoolriskrewardshort",e);return u._configureProperties(t),t}static _configureProperties(e){d._configureProperties(e)}}class p extends d{constructor(e,t,i,s){super(e,t||p.createProperties(),i,s);var r=this.properties();r.entryPrice.subscribe(this,this._recalculateQty),r.stopPrice.subscribe(this,this._recalculateQty),r.riskSize.subscribe(this,this._recalculateQty),r.entryPrice.subscribe(this,this._recalculateAmount),r.profitLevel.subscribe(this,this._recalculateAmount),r.stopLevel.subscribe(this,this._recalculateAmount),r.accountSize.subscribe(this,this._recalculateAmount),r.riskSize.subscribe(this,this._recalculateAmount),
r.qty.subscribe(this,this._recalculateAmount)}_recalculateQty(){if(0!==this.points().length){var e=this.properties(),t=e.entryPrice.value(),i=e.stopPrice.value(),s=e.riskSize.value(),r=this._model.mainSeries().pointValue(),n=s/(Math.abs(t-i)*r);e.qty.setValue(n)}}_recalculateAmount(){if(0!==this.points().length){var e=this.properties(),t=e.accountSize.value(),i=e.entryPrice.value(),s=e.qty.value(),r=e.stopPrice.value(),n=e.targetPrice.value(),o=this._model.mainSeries().pointValue(),a=this._roundValue(t+(n-i)*s*o),l=this._roundValue(t-(i-r)*s*o);e.amountTarget.setValue(a),e.amountStop.setValue(l)}}stopPrice(){return this.entryPrice()-this.properties().stopLevel.value()/this._model.mainSeries().base()}profitPrice(){return this.entryPrice()+this.properties().profitLevel.value()/this._model.mainSeries().base()}calculatePL(e){return e-this.entryPrice()}preparseStopPrice(e){e=this._roundPrice(e);var t=this.entryPrice()-1/this._model.mainSeries().base();return Math.min(e,t)}preparseProfitPrice(e){e=this._roundPrice(e);var t=this.entryPrice()+1/this._model.mainSeries().base();return Math.max(e,t)}checkStopPrice(e){var t=this.stopPrice(),i=this.profitPrice();return e[TradingView.LOW_PLOT]<=t?this.stopPrice():e[TradingView.HIGH_PLOT]>=i?this.profitPrice():null}name(){return"Risk/Reward long"}_orderSide(){throw new Error("not supported")}static createProperties(e){var t=new o("linetoolriskrewardlong",e);return p._configureProperties(t),t}static _configureProperties(e){d._configureProperties(e)}}t.LineToolRiskRewardLong=p,t.LineToolRiskRewardShort=u},61272:(e,t,i)=>{"use strict";var s=i(86441).Point,r=i(4652).distanceToLine,n=i(89857).LineDataSource,o=i(88564).DefaultProperty,a=i(37865).LineToolColorsProperty;class l extends n{constructor(e,t,s,r){super(e,t||l.createProperties(),s,r),i.e(1583).then(i.t.bind(i,33261,19)).then(({RotatedRectanglePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}startChanging(e,t){if(super.startChanging(e,t),0===e||1===e){var i=this._getPaneViews()[0],s=i._points[0],n=i._points[1],o=i._points[2];this._distance=r(s,n,o).distance}}setPoint(e,t,i){if(super.setPoint(e,t,i),0===e||1===e){var r=this._getPaneViews()[0];r.update();var n=r._points[0],o=r._points[1].subtract(n),a=new s(o.y,-o.x).normalized().scaled(this._distance),l=n.add(a),c=this.screenPointToPoint(l);this._points[2]=c}}endChanging(e,t){delete this._distance,super.endChanging(e,t)}pointsCount(){return 3}name(){return"Rotated Rectangle"}hasEditableCoordinates(){return!1}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,24965))).GeneralFiguresDefinitionsViewModel}_snapTo45DegreesAvailable(){return!0}static createProperties(e){var t=new o("linetoolrotatedrectangle",e);return l._configureProperties(t),t}static _configureProperties(e){n._configureProperties(e),e.addChild("linesColors",new a([e.color]))}}t.LineToolRotatedRectangle=l},98390:(e,t,i)=>{"use strict";var s=i(34580).LevelsProperty,r=i(40100).LineToolPitchfork;class n extends r{constructor(e,t,i,s){
super(e,t||n.createProperties(),i,s)}name(){return"Modified Schiff Pitchfork"}static createProperties(e){var t=new s("linetoolschiffpitchfork",e,!1,{range:[0,8]});return n._configureProperties(t),t}static _configureProperties(e){r._configureProperties(e)}}t.LineToolSchiffPitchfork=n},98225:(e,t,i)=>{"use strict";var s=i(34580).LevelsProperty,r=i(40100).LineToolPitchfork;class n extends r{constructor(e,t,i,s){super(e,t||n.createProperties(),i,s)}name(){return"Schiff Pitchfork"}static createProperties(e){var t=new s("linetoolschiffpitchfork2",e,!1,{range:[0,8]});return n._configureProperties(t),t}static _configureProperties(e){r._configureProperties(e)}}t.LineToolSchiffPitchfork2=n},52827:(e,t,i)=>{"use strict";i.d(t,{LineToolSignpost:()=>f});var s=i(28353),r=i(88564),n=i(89857),o=i(2015),a=i.n(o);class l extends(a()){constructor(e){super(),this._source=e,e.pointAdded().subscribe(this,()=>this.listeners().fire(this)),e.pointChanged().subscribe(this,()=>this.listeners().fire(this))}value(){const e=this._source.properties().childs().position.value();return parseFloat(e.toFixed(2))}setValue(e){this._source.properties().childs().position.setValue(e),this._source.model().updateSource(this._source),this.listeners().fire(this),this._source.syncMultichartState({pricesChanged:!1,indexesChanged:!1})}}var c=i(38015);class h extends c.LineDataSourcePointIndexProperty{constructor(e,t){super(e,t),this._source=e}_setPointImpl(e){this._source.setPointAndChangeIndex(this._pointIndex,e)}}var d=i(37865),u=i(88537),p=i(70581),_=i(85733);class m extends n.LineDataSource{constructor(){super(...arguments),this._startMovingAnchorY=NaN}priceSource(){return this.ownerSource()}addPoint(e,t,i){return super.addPoint(this._updatePositionAndCorrectPoint(e),t,i)}setPoint(e,t,i){super.setPoint(e,this._updatePositionAndCorrectPoint(t,!this.isPhantom()&&!this._allowChangeAnchorHorizontally()),i),this._syncPosition()}setPointAndChangeIndex(e,t,i){super.setPoint(e,this._updatePositionAndCorrectPoint(t,!1),i),this._syncPosition()}startMoving(e,t,i,s){s||(this._startMovingAnchorY=(0,u.ensureNotNull)(this._anchorYCoordinate())),super.startMoving(e,t,i)}move(e,t,i,s){var r;const n=(0,u.ensureDefined)((0,u.ensureNotNull)(this.startMovingPoint()).logical),o=(0,u.ensureDefined)(e.logical);if(!s&&0===t){const e=this._points[0],t=o.index-n.index,i=(0,u.ensureNotNull)(this.priceScale()),s=(0,u.ensure)(null===(r=this.ownerSource())||void 0===r?void 0:r.firstValue()),a=i.priceToCoordinate(o.price,s)-i.priceToCoordinate(n.price,s),l=this._startMovingAnchorY+a,c=i.coordinateToPrice(l,s);this._updatePositionAndCorrectPoint({index:e.index+t,price:c})}super.move(e,t,i),s||this._syncPosition()}_allowChangeAnchorHorizontally(){return!1}_updatePositionAndCorrectPoint(e,t){t&&(e.index=this._points[0].index);const i=this.priceSource();if(null===i)return e;const s=i.priceScale(),r=i.firstValue();if(null===s||s.isEmpty()||null===r)return e;const n=s.height();let o=n/2,a=e.price>=s.coordinateToPrice(o,r)?1:-1;const l=this._model.mainSeries();if(i===l){
const t=l.data().search(this._baseSeriesIndexForPoint(e));if(null!==t){const i=(0,p.seriesPrice)(l,t,-1),n=(0,p.seriesPrice)(l,t,1);a=e.price>=i?1:-1,o=s.priceToCoordinate(1===a?n:i,r),e.price=1===a?Math.max(n,e.price):e.price}}const c=1===(-1===a!==s.isInverted()?-1:1)?o:n-o,h=s.priceToCoordinate(e.price,r),d=Math.min(n,Math.abs(h-o)),u=Math.max(0,Math.min(100,100*d/c))*a;return this.properties().childs().position.setValue(u),e}_baseSeriesIndexForPoint(e){return e.index}_syncPosition(){const e=this.linkKey().value();if(null!==e){const t={position:this.properties().childs().position.value()};(0,_.changeLineStyle)({linkKey:e,state:t,model:this._model})}}_anchorYCoordinate(){const e=this.priceSource();if(null===e)return null;const t=e.priceScale(),i=e.firstValue();if(null===t||t.isEmpty()||null===i)return null;const s=this._model.mainSeries(),r=this.customEvent();if(null===r)return null;let n=null;if(e===s&&(n=(0,p.seriesBasePosition)(s,r)),null===n&&(n=(0,p.noDataBasePosition)(r,t,i)),null===n)return null;const o=r.position(),a=t.priceToCoordinate(n.price,i);return(0,p.positionToCoordinate)(o,t.height(),a,(0,p.positionVisualDirection)(o,t.isInverted()))}}var g=i(72077);class f extends m{constructor(e,t,s,r){super(e,null!=t?t:f.createProperties(),s,r),this._image=null,this._currentImageURL=null,this._imageReady=!1,this._updateImage(),this.properties().childs().emoji.subscribe(this,()=>this._updateImage()),i.e(1583).then(i.bind(i,74328)).then(t=>{this._setPaneViews([new t.SignpostPaneView(this,e)])})}pointsCount(){return 1}name(){return"Signpost"}customEvent(){return{index:()=>{var e,t;return null!==(t=null===(e=this.points()[0])||void 0===e?void 0:e.index)&&void 0!==t?t:null},position:()=>this.properties().childs().position.value()}}image(){return this._imageReady&&this.properties().childs().showImage.value()?this._image:null}showInObjectTree(){return!this.isPhantom()&&super.showInObjectTree()}isPhantom(){return this._model.isPhantomLine(this)}clonePositionOffset(){return{barOffset:1,xCoordOffset:0,yCoordOffset:0}}template(){const e=super.template(),t=this.properties().childs();return e.text=t.text.value(),e.position=t.position.value(),e}static createProperties(e){const t=new r.DefaultProperty("linetoolsignpost",e);return f._configureProperties(t),t.hasChild("text")||t.addChild("text",new(a())((0,s.t)("Text"))),t.hasChild("position")||t.addChild("position",new(a())(50)),t.addExclusion("text"),t.addExclusion("position"),t.addChild("backgroundsColors",new d.LineToolColorsProperty([t.childs().plateColor])),t}_createPointProperty(e){super._createPointProperty(e);const t=this._pointsProperty.childs().points[e];t.removeProperty("price"),t.removeProperty("bar"),t.addChild("price",new l(this)),t.addChild("bar",new h(this,0))}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text),this.properties().childs().position.setValue(e.position)}_getPropertyDefinitionsViewModelClass(){
return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,30882)).then(e=>e.SignpostDefinitionsViewModel)}static _configureProperties(e){n.LineDataSource._configureProperties(e)}_updateImage(){const e=this._imageURL();if(this._currentImageURL!==e&&(this._currentImageURL=e,this._image=null,this._imageReady=!1,null!==this._currentImageURL)){const e=new Image;this._image=e,e.onload=()=>{this._imageReady=!0,this._model.updateSource(this),e.onload=null},e.crossOrigin="anonymous",e.src=this._currentImageURL}}_imageURL(){const e=this.properties().childs().emoji.value();return(0,g.getTwemojiUrl)(e,"png")||null}}f.supportPhantomMode=!0},15718:(e,t,i)=>{"use strict";i.d(t,{LineToolSineLine:()=>n});var s=i(88564),r=i(89857);class n extends r.LineDataSource{constructor(e,t,s,r){super(e,t||n.createProperties(),s,r),i.e(1583).then(i.bind(i,85)).then(e=>{this._setPaneViews([new e.SineLinePaneView(this,this._model)])})}pointsCount(){return 2}name(){return"Sine Line"}static createProperties(e){const t=new s.DefaultProperty("linetoolsineline",e);return n._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,66819))).CyclicAndSineLinesPatternDefinitionsViewModel}static _configureProperties(e){r.LineDataSource._configureProperties(e)}}},51934:(e,t,i)=>{"use strict";i.d(t,{StudyLineDataSource:()=>v});var s=i(88537),r=i(80643),n=i(71053),o=i(89857),a=i(88564),l=i(67072),c=i.n(l),h=i(54376),d=i(33266),u=i(27982),p=i(8671),_=i(66101),m=i(10480),g=i(65862),f=i(33291);class v extends o.LineDataSource{constructor(e,t,s,r,n,o){super(e,r,n,o),this._indexes=null,this._inputs=null,this._definitionsViewModel=null,this._pointsetPoints=null,this._loadedPlots=null,this._loadedGraphics=null,this._beingCreatedPaneView=null,this._anchorsPaneView=null,this._alignerCache=null,Promise.all([i.e(1583).then(i.bind(i,15788)),i.e(1583).then(i.bind(i,77557))]).then(t=>{const{LineToolBeingCreatedPaneView:i}=t[0],{StudyLineDataSourceAnchorsPaneView:s}=t[1];this._beingCreatedPaneView=new i(this,e),this._anchorsPaneView=new s(this,this.model()),this._model.lightUpdate()}),this._metaInfo=t,this._dataSource=new u.StudyDataSource(e.chartApi(),e.mainSeries().seriesSource(),s,t),this._dataSource.dataCleared().subscribe(this,this._onDataCleared),this._dataSource.dataUpdated().subscribe(this,this._onDataUpdated)}destroy(){this._dataSource.dataUpdated().unsubscribe(this,this._onDataUpdated),this._dataSource.dataCleared().unsubscribe(this,this._onDataCleared),this._dataSource.destroy(),null!==this._definitionsViewModel&&(this._definitionsViewModel.destroy(),this._definitionsViewModel=null),this._unsubscribeApplyInputsOnSeriesCompleted(),this._isDestroyed=!0,super.destroy()}stop(){super.stop(),this._isDestroyed||(this._dataSource.stop(),this.clearData())}start(){super.start(),this._isDestroyed||null===this._inputs||this._dataSource.start()}metaInfo(){return this._metaInfo}graphicsInfo(){return this._metaInfo.graphics}series(){return this._model.mainSeries()}translatedType(){
return this._metaInfo.description}name(){return this._metaInfo.description}studyId(){return this._metaInfo.id}setPoint(e,t,i){super.setPoint(e,this._preparePoint(t,i))}move(e){}clearData(){this._clearAllDataExceptPointsetPoints(),this._pointsetPoints=null,this.updateAllViews((0,f.dataSourceChangeEvent)(this.id()))}data(){return this.plots()}plots(){return this._loadedPlots||this._dataSource.plots()}graphics(){return this._loadedGraphics||this._dataSource.graphics()}firstValue(){return this._model.mainSeries().firstValue()}state(e){const t=super.state(e);let i;this.metaInfo()instanceof c()?i=this.metaInfo().state():(i=(0,r.clone)(this.metaInfo()),i.id=c().parseIdString(i.id+(i.version?"-"+i.version:"")).fullId);const s={...t,metaInfo:i};return e&&(s.data=this.plots().state(),s.nonseriesindexes=this._indexes,s.graphics=(0,h.saveStudyGraphics)(this.graphics())),s}restoreData(e){var t;void 0!==e.data&&(this._loadedPlots=new n.PlotList((0,p.studyPlotFunctionMap)(this._metaInfo),p.studyEmptyPlotValuePredicate),this._loadedPlots.restoreState(e.data)),this._indexes=null!==(t=e.nonseriesindexes)&&void 0!==t?t:this._indexes,this._loadedGraphics=e.graphics?(0,h.loadStudyGraphics)(e.graphics):this._loadedGraphics}getPropertyDefinitionsViewModel(){return null===this._definitionsViewModel?this._getPropertyDefinitionsViewModelClass().then(e=>null===e||this._isDestroyed?null:(null===this._definitionsViewModel&&(this._definitionsViewModel=new e(this._model.undoModel(),this)),this._definitionsViewModel)):Promise.resolve(this._definitionsViewModel)}paneViews(e){let t=[];if(this.isSourceHidden())return t;if(this._isReady()&&this._changeStatesStack.isEmpty()){const i=super.paneViews(e);null!==i&&(t=t.concat(i))}else null!==this._beingCreatedPaneView&&t.push(this._beingCreatedPaneView);return null!==this._anchorsPaneView&&t.push(this._anchorsPaneView),t}propertiesChanged(e){super.propertiesChanged(e),this._onStudyInputsMayChange()}dataAndViewsReady(){return super.dataAndViewsReady()&&this._isReady()}endChanging(e,t){const i=super.endChanging(e,t);return i.indexesChanged?this.clearData():this._updateAnchorsPrice(!0),i}moveData(e){this._dataSource.moveData(e)}restorePoints(e,t,i){super.restorePoints(e,t,i),this._updateAnchorsPrice(!0)}realign(){super.realign(),null===this._model.mainSeries().symbolInfo()&&(this._alignerCache=null)}static createPropertiesFromStudyMetaInfoAndState(e,t,i,s){const r=(0,_.prepareStudyPropertiesForLoadChart)(e,t,i,null,s);return v._configureProperties(r),r}_studyId(){return this._dataSource.studyId()}_isReady(){return!0}_updateAllPaneViews(e){var t,i;super._updateAllPaneViews(e),null===(t=this._beingCreatedPaneView)||void 0===t||t.update(),null===(i=this._anchorsPaneView)||void 0===i||i.update(e)}_getPointTime(e,t){const i=e.index,s=this._model.timeScale().indexToTimePoint(i);if(null!==s)return s;if(t||void 0===e.time)return null;const r=this._model.mainSeries().symbolInfo();if(null===r)return null;let n=this._model.properties().childs().timezone.value();"exchange"===n&&(n=r.timezone);const o=(0,m.cal_to_utc)((0,
m.get_timezone)(n),e.time);return this._getStartBarAligner()(o)/1e3}_updateAnchorsPrice(e){}_onPointsetUpdated(e){super._onPointsetUpdated(e),this._pointsetPoints=this._points.map(e=>({price:e.price,index:e.index,time:e.time})),this._onStudyInputsMayChange()}_onDataCleared(){this.updateAllViews((0,f.dataSourceChangeEvent)(this.id(),void 0,!0)),this._model.updateSource(this)}_onDataUpdated(e,t,i){var s;this._updateAnchorsPrice(),this.updateAllViews((0,f.dataSourceChangeEvent)(this.id(),null===(s=e[0])||void 0===s?void 0:s.index)),this._model.updateSource(this)}_onStudyInputsMayChange(){let e=null;if(null!==this._pointsetPoints&&this._pointsetPoints.length===this.pointsCount()&&(e=this._studyInputs(this._pointsetPoints),null===e&&(this._clearAllDataExceptPointsetPoints(),this.updateAllViews((0,f.dataSourceChangeEvent)(this.id())))),null!==e){const t=this.metaInfo().inputs.map(e=>e.id),i=Object.keys(e);for(const s of i)t.includes(s)||delete e[s]}this._areInputsEqual(this._inputs,e)||this._applyStudyInputs(e)}_preparePoint(e,t){return super._preparePoint(this._alignPointToRangeOfActualData(e),t)}_getPropertyDefinitionsViewModelClass(){return Promise.resolve(null)}_subscribeApplyInputsOnSeriesCompleted(){this._unsubscribeApplyInputsOnSeriesCompleted(),this._model.mainSeries().dataEvents().completed().subscribe(this,()=>this._onStudyInputsMayChange(),!0)}_unsubscribeApplyInputsOnSeriesCompleted(){this._model.mainSeries().dataEvents().completed().unsubscribeAll(this)}_onInputsChanged(){0}static _createPropertiesFromStudyIdAndState(e,t){const i=c().getStudyPropertyRootNameById(e),s=new a.DefaultProperty(i,t);return v._configureProperties(s),s}static _configureProperties(e){o.LineDataSource._configureProperties(e),e.removeExclusion("intervalsVisibilities")}_areInputsEqual(e,t){return null===t?null===e:null!==e&&(0,d.areStudyInputsEqual)(this._metaInfo.inputs,e,t)}_applyStudyInputs(e){const t=this._inputs;this._inputs=e,null!==e&&(this._unsubscribeApplyInputsOnSeriesCompleted(),this._dataSource.setInputs(e),null===t&&this.isStarted()&&!this._dataSource.isStarted()&&this._dataSource.start()),this._onInputsChanged()}_clearAllDataExceptPointsetPoints(){this._inputs=null,this._dataSource.clearData(),this._loadedPlots=null,this._indexes=null,this._loadedGraphics=null}_getStartBarAligner(){const e=this._model.mainSeries().interval();return null!==this._alignerCache&&this._alignerCache.resolution===this._model.mainSeries().interval()||(this._alignerCache={resolution:e,aligner:(0,g.createTimeToBarTimeAligner)(e,(0,s.ensureNotNull)(this._model.mainSeries().symbolInfo()))}),this._alignerCache.aligner}}},74971:(e,t,i)=>{"use strict";i.d(t,{LineToolText:()=>u,LineToolTextAbsolute:()=>p});var s=i(88537),r=i(86441),n=i(28353),o=i(89857),a=i(2015),l=i.n(a),c=i(88564),h=i(37865),d=i(33291);class u extends o.LineDataSource{constructor(e,t,s,r){const n=t||u.createProperties();super(e,n,s,r),this._barSpacing=e.timeScale().barSpacing(),this._recalculatePointsOnCenter=!1,i.e(1583).then(i.bind(i,44074)).then(({TextPaneView:t})=>{
const i=this._recalculatePointsOnCenter?(e,t)=>{this._recalculatePointsOnCenter&&this._recalculateCenterPosition(e,t)}:void 0;this._setPaneViews([new t(this,e,void 0,void 0,void 0,void 0,void 0,i)])})}centerPosition(){this._recalculatePointsOnCenter=!0}setPoint(e,t,i){const s=this.properties().childs();let r;if(1===e&&s.wordWrapWidth.value()){const e=this.model().timeScale();r=this.isFixed()?this.fixedPoints()[0].x:e.indexToCoordinate(this.points()[0].index);const i=e.indexToCoordinate(t.index)-r-~~(s.fontsize.value()/6);if(!isFinite(i))return;s.wordWrapWidth.setValue(Math.max(100,i))}}pointsCount(){return 1}name(){return"Text"}setPriceScale(e){super.setPriceScale(e),e&&e.priceRange()&&(this._priceDencity=e.height()/(0,s.ensureNotNull)(e.priceRange()).length(),this._isPriceDencityLog=e.isLog())}restoreSize(){const e=(0,s.ensureNotNull)(this.priceScale());this._barSpacing=this.model().timeScale().barSpacing(),this._priceDencity=e.height()/(0,s.ensureNotNull)(e.priceRange()).length(),this.redraw((0,d.dataSourceChangeEvent)(this.id()))}redraw(e){this.updateAllViews(e),this._model.updateSource(this)}template(){const e=super.template();return e.text=this.properties().childs().text.value(),e}state(e){const t=super.state(e);return e&&(t.state.fixedSize=!1),t}barSpacing(){return this._barSpacing}priceDencity(){return this._priceDencity}isPriceDencityLog(){return this._isPriceDencityLog}hasEditableCoordinates(){return!1}static createProperties(e){const t=new c.DefaultProperty("linetooltext",e);return u._configureProperties(t),t}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text)}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,99734)).then(e=>e.TextDefinitionsViewModel)}static _configureProperties(e){o.LineDataSource._configureProperties(e),e.hasChild("text")||e.addChild("text",new(l())((0,n.t)("Text"))),e.addChild("linesColors",new h.LineToolColorsProperty([e.childs().borderColor])),e.addChild("textsColors",new h.LineToolColorsProperty([e.childs().color])),e.addExclusion("text"),e.addExclusion("linesColors"),e.addExclusion("textsColors")}_recalculateCenterPosition(e,t){const i=this.isFixed()?this.fixedPoints()[0]:(0,s.ensureNotNull)(this.pointToScreenPoint(this._points[0])),n=new r.Point(i.x-e/2,i.y-t/2),o=(0,s.ensureNotNull)(this.screenPointToPoint(n));this.setPoints([o]),this.normalizePoints(),this.createServerPoints(),this.redraw((0,d.dataSourceChangeEvent)(this.id()))}}class p extends u{constructor(e,t){super(e,t||p.createProperties())}name(){return"Anchored Text"}hasEditableCoordinates(){return!1}isFixed(){return!0}static createProperties(e){const t=new c.DefaultProperty("linetooltextabsolute",e);return p._configureProperties(t),t}static _configureProperties(e){u._configureProperties(e)}}},6980:(e,t,i)=>{"use strict";i.d(t,{LineToolThreeDrivers:()=>o});var s=i(88564),r=i(89857),n=i(37865);class o extends r.LineDataSource{constructor(e,t,s,r){const n=t||o.createProperties();super(e,n,s,r),
i.e(1583).then(i.bind(i,88993)).then(t=>{this._setPaneViews([new t.LineToolThreeDrivesPaneView(this,e)])})}pointsCount(){return 7}name(){return"Three Drives Pattern"}static createProperties(e){const t=new s.DefaultProperty("linetoolthreedrivers",e);return o._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,98890)).then(e=>e.PatternWithoutBackgroundDefinitionsViewModel)}static _configureProperties(e){r.LineDataSource._configureProperties(e),e.addChild("linesColors",new n.LineToolColorsProperty([e.childs().color])),e.addChild("textsColors",new n.LineToolColorsProperty([e.childs().textcolor])),e.addChild("linesWidths",new n.LineToolWidthsProperty([e.childs().linewidth])),e.hasChild("backgroundsColors")&&e.removeProperty("backgroundsColors")}}},38513:(e,t,i)=>{"use strict";var s=i(89857).LineDataSource,r=i(88564).DefaultProperty;class n extends s{constructor(e,t,s,r){super(e,t||n.createProperties(),s,r),i.e(1583).then(i.t.bind(i,59905,19)).then(({TimeCyclesPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}pointsCount(){return 2}name(){return"Time Cycles"}setPoint(e,t,i){var s=Object.assign({},t),r=this._points[0],n=this._points[1];r.price=s.price,n.price=s.price,this._points[e]=s,this.normalizePoints()}addPoint(e,t,i){var r=s.prototype.addPoint.call(this,e,t,!0);if(r){var n=this._points[0];this._points[1].price=n.price,i||(this.normalizePoints(),this.createServerPoints())}return r}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,3956))).TimeCyclesPatternDefinitionsViewModel}static createProperties(e){var t=new r("linetooltimecycles",e);return n._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e)}}t.LineToolTimeCycles=n},2587:(e,t,i)=>{"use strict";const s=i(89857).LineDataSource,r=i(20165).alignToStep;class n extends s{constructor(e,t){super(e,t),this.customization.forcePriceAxisLabel=!0,this.customization.disableErasing=!0,this.customization.showInObjectsTree=!1,this.setSelectionEnabled(!1)}isSynchronizable(){return!1}pointsCount(){return n.POINTS_COUNT}hasContextMenu(){return!1}state(){return null}startMoving(){s.prototype.startMoving.apply(this,arguments),this._cursorMoved=!1}endMoving(){s.prototype.endMoving.apply(this,arguments),this._cursorMoved=!1}_correctPoints(e,t){this._currentMovingPoint&&this._startMovingPoint?this._currentMovingPoint.logical.price-this._startMovingPoint.logical.price&&(this._cursorMoved=!0):this._cursorMoved=!1;for(var i=1/this.priceScale().mainSource().base(),s=0;s{"use strict";var s=i(2015),r=i(86441).Point,n=i(89857).LineDataSource,o=i(88564).DefaultProperty;class a extends s{constructor(e){super(),this._lineSource=e}value(){var e=180*this._lineSource._angle/Math.PI;return Math.round(e)}setValue(e){var t=e*Math.PI/180;this._lineSource._angle=t;var i=this._lineSource.pointToScreenPoint(this._lineSource.points()[0]),s=Math.cos(this._lineSource._angle),n=-Math.sin(this._lineSource._angle),o=new r(s,n),a=i.addScaled(o,this._lineSource._distance),l=this._lineSource.screenPointToPoint(a);this._lineSource._points[1]=l,this._lineSource._model.updateSource(this._lineSource),this._lineSource.updateAllViews(),this._lineSource._model.updateSource(this._lineSource)}}class l extends n{constructor(e,t,s,r){super(e,t||l.createProperties(),s,r),this._properties.addChild("angle",new a(this)),i.e(1583).then(i.t.bind(i,74108,19)).then(({TrendAnglePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}isSynchronizable(){return!1}pointsCount(){return 2}name(){return"Trend Angle"}_calculateAngle(){var e=this.pointToScreenPoint(this.points()[0]),t=this.pointToScreenPoint(this.points()[1]),i=t.subtract(e);i.length()>0?(i=i.normalized(),this._angle=Math.acos(i.x),i.y>0&&(this._angle=-this._angle),this._distance=t.subtract(e).length()):delete this._angle,this.properties().hasOwnProperty("angle")&&this.properties().angle.listeners().fire(this.properties().angle)}addPoint(e,t){var i=n.prototype.addPoint.call(this,e,t);return i&&this._calculateAngle(),i}setLastPoint(e,t){var i=super.setLastPoint(e,t);return this.points().length>1&&this._calculateAngle(),i}axisPoints(){if(this.points().length<2)return[];var e=[this.points()[0]],t=this.pointToScreenPoint(this.points()[0]),i=Math.cos(this._angle)*this._distance,s=-Math.sin(this._angle)*this._distance,n=t.add(new r(i,s)),o=this.screenPointToPoint(n);return e.push(o),e}setPoint(e,t,i){super.setPoint(e,t,i),this.points().length>1&&1===e&&this._calculateAngle()}restoreData(e){this._angle=e.angle,this._distance=e.distance}state(e){var t=n.prototype.state.call(this,e);return t.angle=this._angle,t.distance=this._distance,t}cloneData(e){this._angle=e._angle,this._distance=e._distance}canHasAlert(){return!0}_getAlertPlots(){return[this._linePointsToAlertPlot(this._points,null,this.properties().extendLeft.value(),this.properties().extendRight.value())]}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,38909))).TrendAngleDefinitionsViewModel}_snapTo45DegreesAvailable(){return!0}static createProperties(e){var t=new o("linetooltrendangle",e);return l._configureProperties(t),t}static _configureProperties(e){n._configureProperties(e)}}t.LineToolTrendAngle=l},25861:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(24980).TranslatedString,n=i(89857).LineDataSource,o=i(34580).LevelsProperty,a=i(37865),l=a.LineToolWidthsProperty,c=a.LineToolColorsProperty,h=new r("erase level line",s("erase level line"))
;class d extends n{constructor(e,t,s,r){super(e,t||d.createProperties(),s,r),this.version=d.version,i.e(1583).then(i.t.bind(i,80741,19)).then(({TrendBasedFibExtensionPaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}levelsCount(){return d.LevelsCount}pointsCount(){return 3}name(){return"Trend-Based Fib Extension"}migrateVersion(e,t,i){1===e&&this.properties().extendLines.setValue(!0)}processErase(e,t){var i="level"+t,s=this.properties()[i].visible;e.setProperty(s,!1,h)}static createProperties(e){var t=new o("linetooltrendbasedfibextension",e,!1,{range:[0,8]});return d._configureProperties(t),t}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,34670))).FibDrawingsWith24LevelsDefinitionsViewModel}static _configureProperties(e){n._configureProperties(e);for(var t=[e.child("trendline").child("linewidth"),e.child("levelsStyle").child("linewidth")],i=[e.child("trendline").child("color")],s=1;s<=d.LevelsCount;s++)i.push(e.child("level"+s).child("color"));e.addChild("linesColors",new c(i)),e.addChild("linesWidths",new l(t))}fibLevelsBasedOnLogScale(){return this.properties().fibLevelsBasedOnLogScale.value()&&this.priceScale().isLog()}}d.version=2,d.LevelsCount=24,t.LineToolTrendBasedFibExtension=d},6245:(e,t,i)=>{"use strict";var s=i(28353).t,r=i(24980).TranslatedString,n=i(89857).LineDataSource,o=i(34580).LevelsProperty,a=i(37865),l=a.LineToolWidthsProperty,c=a.LineToolColorsProperty,h=new r("erase level line",s("erase level line"));class d extends n{constructor(e,t,s,r){super(e,t||d.createProperties(),s,r),this.version=d.version,i.e(1583).then(i.t.bind(i,78343,19)).then(({TrendBasedFibTimePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}levelsCount(){return d.LevelsCount}pointsCount(){return 3}name(){return"Trend-Based Fib Time"}migrateVersion(e,t,i){}processErase(e,t){var i="level"+t,s=this.properties()[i].visible;e.setProperty(s,!1,h)}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,42882))).TrendBasedFibTimeDefinitionsViewModel}static createProperties(e){var t=new o("linetooltrendbasedfibtime",e,!1,{range:[1,11]});return d._configureProperties(t),t}static _configureProperties(e){n._configureProperties(e);for(var t=[e.child("trendline").child("linewidth")],i=[e.child("trendline").child("color")],s=1;s<=d.LevelsCount;s++)t.push(e.child("level"+s).child("linewidth")),i.push(e.child("level"+s).child("color"));e.addChild("linesColors",new c(i)),e.addChild("linesWidths",new l(t))}}d.LevelsCount=11,d.version=1,t.LineToolTrendBasedFibTime=d},57649:(e,t,i)=>{"use strict";var s=i(2015),r=i(89857).LineDataSource,n=i(22474).LineToolPriceAxisView,o=i(88564).DefaultProperty;class a extends r{constructor(e,t,s,r){super(e,t||a.createProperties(),s,r),this._trendLinePaneView=null,i.e(1583).then(i.t.bind(i,38743,19)).then(({TrendLinePaneView:e})=>{this._trendLinePaneView=new e(this,this._model),this._setPaneViews([this._trendLinePaneView])})}dataAndViewsReady(){
return r.prototype.dataAndViewsReady.call(this)&&this._trendLinePaneView&&this._trendLinePaneView.iconsReady()}stop(){super.stop()}pointsCount(){return 2}name(){return"Trend Line"}canHasAlert(){return!0}showPriceLabels(){return this._properties.childs().showPriceLabels.value()}createPriceAxisView(e){return new n(this,{pointIndex:e,backgroundPropertyGetter:()=>this.showPriceLabels()?this._properties.linecolor.value():null})}isForcedDrawPriceAxisLabel(){return this.showPriceLabels()}_getAlertPlots(){return[this._linePointsToAlertPlot(this._points,null,this.properties().extendLeft.value(),this.properties().extendRight.value())]}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,43266))).TrendLineDefinitionsViewModel}template(){var e=r.prototype.template.call(this);return e.text=this.properties().childs().text.value(),e}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text||"")}_snapTo45DegreesAvailable(){return!0}static createProperties(e){var t=new o("linetooltrendline",e);return a._configureProperties(t),t}static _configureProperties(e){r._configureProperties(e),e.hasChild("text")||e.addChild("text",new s("")),e.addExclusion("text")}}t.LineToolTrendLine=a},53403:(e,t,i)=>{"use strict";i.d(t,{LineToolTrianglePattern:()=>o});var s=i(88564),r=i(89857),n=i(37865);class o extends r.LineDataSource{constructor(e,t,s,r){const n=t||o.createProperties();super(e,n,s,r),i.e(1583).then(i.bind(i,51145)).then(t=>{this._setPaneViews([new t.LineToolTrianglePatternPaneView(this,e)])})}pointsCount(){return 4}name(){return"Triangle Pattern"}static createProperties(e){const t=new s.DefaultProperty("linetooltrianglepattern",e);return o._configureProperties(t),t}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,93262)).then(e=>e.PatternWithBackgroundDefinitionViewModel)}static _configureProperties(e){r.LineDataSource._configureProperties(e),e.addChild("linesColors",new n.LineToolColorsProperty([e.childs().color])),e.addChild("textsColors",new n.LineToolColorsProperty([e.childs().textcolor])),e.addChild("backgroundsColors",new n.LineToolColorsProperty([e.childs().backgroundColor]))}}},99092:(e,t,i)=>{"use strict";var s=i(89857).LineDataSource,r=i(88564).DefaultProperty,n=i(37865).LineToolColorsProperty;class o extends s{constructor(e,t,s,r){super(e,t||o.createProperties(),s,r),i.e(1583).then(i.t.bind(i,12258,19)).then(({TrianglePaneView:e})=>{this._setPaneViews([new e(this,this._model)])})}pointsCount(){return 3}name(){return"Triangle"}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,24965))).GeneralFiguresDefinitionsViewModel}static createProperties(e){var t=new r("linetooltriangle",e);return o._configureProperties(t),t}static _configureProperties(e){s._configureProperties(e),e.addChild("linesColors",new n([e.childs().color]))}}t.LineToolTriangle=o},67103:(e,t,i)=>{"use strict";i.d(t,{
LineToolVertLineTimeAxisView:()=>r});var s=i(19528);class r extends s.LineDataSourceTimeAxisView{constructor(e){super(e,0)}_getBgColor(){return this._source.properties().linecolor.value()}_getAlwaysInViewPort(){return!1}_getIndex(){const e=this._source.points();return 0===e.length?null:e[0].index}}},51922:(e,t,i)=>{"use strict";i.d(t,{LineToolVertLine:()=>h});var s=i(88537),r=i(86441),n=i(88564),o=i(2015),a=i.n(o),l=i(89857),c=i(67103);class h extends l.LineDataSource{constructor(e,t,s,r){const n=t||h.createProperties();super(e,n,s,r),this._timeAxisView=new c.LineToolVertLineTimeAxisView(this),this._paneViewFactory=null,this.properties().childs().extendLine.subscribe(this,()=>e.lightUpdate()),i.e(1583).then(i.bind(i,68022)).then(t=>{this._paneViewFactory=i=>new t.VertLinePaneView(this,e,i),this._model.lightUpdate()})}destroy(){this.properties().childs().extendLine.unsubscribeAll(this),super.destroy()}pointsCount(){return 1}name(){return"Vertical Line"}timeAxisViews(){return this.isSourceHidden()?null:this.properties().childs().showTime.value()?[this._timeAxisView]:null}updateAllViews(e){super.updateAllViews(e),this._timeAxisView.update(e)}canHasAlert(){return!0}template(){const e=super.template();return e.text=this.properties().childs().text.value(),e}isMultiPaneAvailable(){return!0}isMultiPaneEnabled(){return this.properties().childs().extendLine.value()}paneViews(e){return e=(0,s.ensureDefined)(e),this.isMultiPaneEnabled()||this._model.paneForSource(this)===e?(null===this._getPaneViews(e)&&null!==this._paneViewFactory&&this._setPaneViews([this._paneViewFactory(e)],e,!0),super.paneViews(e)):null}priceAxisViews(){return null}priceAxisPoints(){return[]}pointToScreenPoint(e){const t=this._model.timeScale();if(t.isEmpty())return null;const i=t.indexToCoordinate(e.index);return new r.Point(i,0)}convertYCoordinateToPriceForMoving(e){return 0}static createProperties(e){null!=e&&(void 0===e.textOrientation&&(e.textOrientation="horizontal"),void 0===e.extendLine&&(e.extendLine=!1));const t=new n.DefaultProperty("linetoolvertline",e);return h._configureProperties(t),t}_getAlertPlots(){const e=this._points[0],t={index:e.index,price:e.price+1};return[this._linePointsToAlertPlot([e,t],null,!0,!0)]}_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1369),i.e(8623),i.e(8537)]).then(i.bind(i,90308)).then(e=>e.VerticalLineDefinitionsViewModel)}_applyTemplateImpl(e){super._applyTemplateImpl(e),this.properties().childs().text.setValue(e.text||"")}static _configureProperties(e){l.LineDataSource._configureProperties(e),e.hasChild("text")||e.addChild("text",new(a())("")),e.addExclusion("text")}}},20299:(e,t,i)=>{"use strict";i.d(t,{LineToolVbPFixed:()=>f});var s=i(77973),r=i(88537),n=i(88145),o=i(67072),a=i.n(o),l=i(51934),c=i(54376),h=i(2662),d=i(33291),u=i(80643),p=i(88564),_=i(14291),m=i(66101);const g=(0,n.studyIdString)("VbPFixed","tv-volumebyprice");class f extends l.StudyLineDataSource{constructor(e,t,i,s,r,n){const o=i||e.studyMetaInfoRepository().findByIdSync({type:"java",studyId:g
}),a=null!=t?t:f.createProperties(e);super(e,o,"vbpfixed_",a,r,n),(0,c.createGraphicsPaneViews)(this,e).then(t=>{if(s=e.mainSeries(),o.plots.length>0){const i=new h.StudyPlotPaneView(this,s,e,o.plots[0].id);t.push(i)}if(o.plots.length>1){const i=new h.StudyPlotPaneView(this,s,e,o.plots[1].id);t.push(i)}if(o.plots.length>2){const i=new h.StudyPlotPaneView(this,s,e,o.plots[2].id);t.push(i)}this._setPaneViews(t)}),this.clearData()}pointsCount(){return 2}boundToSymbol(){return!1}offset(e){return 0}getMinFirstBarIndexForPlot(){return-1/0}calcIsActualSymbol(){this._isActualSymbol=!0,this._isActualCurrency=!0,this._isActualUnit=!0,this.calcIsActualInterval()}cloneable(){return!1}isSynchronizable(){return!1}static createProperties(e,t){const i=a().getStudyPropertyRootNameById(g),s=(0,r.ensureNotNull)(e.studyMetaInfoRepository().findByIdSync({type:"java",studyId:g})),n=(0,p.createDefaultsState)(!0,i,[],e.studyVersioning());return(0,_.createStudyLineToolProperties)("LineToolVbPFixed",s,s,(0,u.merge)((0,u.clone)(n),null!=t?t:{}),e.studyVersioning())}static createPropertiesFromStudyMetaInfoAndState(e,t,i,s){const r=(0,m.prepareStudyPropertiesForLoadChart)(e,t,i,null,s);return f._configureProperties(r),r}static studyId(){return g}_studyInputs(e){(0,r.assert)(2===e.length,"all the line tool points should be defined");const[t,i]=e,s=Math.max(t.index,i.index),n=this._model.mainSeries().bars().lastIndex(),o=this._getPointTime(t.index<=i.index?t:i,!0),a=this._getPointTime(i.index>=t.index?i:t,!0);if(null===o||null===a)return this._subscribeApplyInputsOnSeriesCompleted(),null;return{...this.properties().childs().inputs.state(),first_bar_time:1e3*o,last_bar_time:1e3*a,subscribeRealtime:n===s}}_isReady(){return!(0,c.isStudyGraphicsEmpty)(this.graphics())}async _getPropertyDefinitionsViewModelClass(){return(await Promise.all([i.e(1369),i.e(7387),i.e(8623),i.e(607)]).then(i.bind(i,26667))).StudyLineDataSourceDefinitionsViewModel}_onDataUpdated(){this._updateAnchors(),this.updateAllViews((0,d.dataSourceChangeEvent)(this.id())),this._model.updateSource(this)}_updateAnchors(){const e=this._calculateAnchors();if(!e)return;const[{index:t,price:i},{index:s,price:r}]=e;if(this._timePoint.length&&(this._timePoint[0].price=i,this._timePoint[1].price=r),this._points.length){const e=this.model().timeScale(),n=e.indexToTimePoint(t),o=e.indexToTimePoint(t);this._points[0]={index:t,price:i,time:(0,u.isNumber)(n)?new Date(1e3*n):void 0},this._points[1]={index:s,price:r,time:(0,u.isNumber)(o)?new Date(1e3*o):void 0}}}_calculateAnchors(){let e=null,t=null,i=null,r=null;if(this.graphics().hhists().forEach(s=>{s.forEach(s=>{const{priceLow:n,priceHigh:o,firstBarTime:a,lastBarTime:l}=s;(!e||nt)&&(t=o),(!i||ar)&&(r=l)})}),!((0,s.default)(e)||(0,s.default)(t)||(0,s.default)(r)||(0,s.default)(i)))return[{price:t,index:i},{price:e,index:r}]}_updateAnchorsPrice(){const e=this._calculateAnchors();if(!e)return;const[{price:t},{price:i}]=e;this._timePoint.length&&(this._timePoint[0].price=t,this._timePoint[1].price=i),
this._points.length&&(this._points[0].price=t,this._points[1].price=i)}}},90373:(e,t,i)=>{"use strict";var s;i.d(t,{MagnetMode:()=>s}),function(e){e[e.WeakMagnet=0]="WeakMagnet",e[e.StrongMagnet=1]="StrongMagnet"}(s||(s={}))},30460:(e,t,i)=>{"use strict";i.d(t,{magnetEnabled:()=>m,magnetMode:()=>g,setIsMagnetEnabled:()=>f,setMagnetMode:()=>v});var s=i(88564),r=i(52714),n=i.n(r),o=i(90373),a=i(85733),l=i(14291),c=i(76367);const h=new(n())(!1),d=new(n())(o.MagnetMode.WeakMagnet),u=(0,c.modifierPressed)(),p=(0,c.shiftPressed)();function _(){const e=u.value();if(p.value()&&(a.isToolEditingNow.value()||a.isToolCreatingNow.value()))return void h.setValue(!1);const t=a.tool.value(),i=a.isStudyEditingNow.value()||a.isPointSelectedNow.value(),s=e&&((0,l.isLineToolName)(t)||a.isToolEditingNow.value()||(0,a.toolIsMeasure)(t)||i),r=(0,a.properties)().childs().magnet.value();d.setValue(!r&&s?o.MagnetMode.StrongMagnet:(0,a.properties)().childs().magnetMode.value()),h.setValue(s?!r:r)}function m(){return h}function g(){return d}function f(e){(0,s.saveDefaultProperties)(!0),(0,a.properties)().childs().magnet.setValue(e),(0,s.saveDefaultProperties)(!1)}function v(e){(0,s.saveDefaultProperties)(!0),(0,a.properties)().childs().magnetMode.setValue(e),(0,a.properties)().childs().magnet.setValue(!0),(0,s.saveDefaultProperties)(!1)}(0,a.runOnDrawingStateReady)(()=>{(0,a.properties)().childs().magnet.subscribe(null,_),(0,a.properties)().childs().magnetMode.subscribe(null,_),u.subscribe(_),p.subscribe(_),a.tool.subscribe(_),a.isToolEditingNow.subscribe(_),_()})},32050:(e,t,i)=>{"use strict";i.d(t,{MainSeriesScaleRatioProperty:()=>n});var s=i(2872),r=i.n(s);class n{constructor(e){this._changed=new(r()),this._model=e}getStepChangeValue(){return.1}getMinValue(){return 1e-7}getMaxValue(){return 99999999}value(){return this._model.mainSeriesScaleRatio()}setValue(e,t){(e!==this.value()||t)&&(this._model.setMainSeriesScaleRatio(e),this._onChanged())}state(){return null}clone(){return new n(this._model)}listeners(){return this._changed}subscribe(e,t){this._changed.subscribe(e,t)}unsubscribe(e,t){this._changed.unsubscribe(e,t)}unsubscribeAll(e){this._changed.unsubscribeAll(e)}storeStateIfUndefined(){return!0}_onChanged(){this._changed.fire(this)}}},33291:(e,t,i)=>{"use strict";function s(e,t,i){return{type:"data-source-change",dataSourceId:e,firstUpdatedTimePointIndex:t,clearData:i}}i.r(t),i.d(t,{dataSourceChangeEvent:()=>s,globalChangeEvent:()=>n,viewportChangeEvent:()=>a,selectionChangeEvent:()=>c});const r={type:"global-change"};function n(){return r}const o={type:"viewport-change"};function a(){return o}const l={type:"selection-change"};function c(){return l}},51344:(e,t,i)=>{"use strict";i.d(t,{ensureTimePointIndexIndex:()=>n,unpackNonSeriesData:()=>o});var s=i(6617),r=i(88537);function n(e){if(e<0)throw new Error("TimePointIndexIndex should be non-negative integer");return e}async function o(e){if(""===e)return null;const t=JSON.parse(e);if(!(0,s.isObject)(t)||"function"==typeof t)throw new Error("Non-object content in the non-series envelope")
;if((0,s.hasProperty)(t,"indexes_replace"))return{indexes_replace:!0};const i={indexes_replace:!1};if((0,s.hasProperty)(t,"offsets")&&(i.offsets=t.offsets),(0,s.hasProperty)(t,"isUpdate")){if("boolean"!=typeof t.isUpdate)throw new Error('Invalid type of "isUpdate" field');i.isUpdate=t.isUpdate}return(0,s.hasProperty)(t,"data")&&(i.data=t.data),(0,s.hasProperty)(t,"graphicsCmds")&&(i.graphicsCmds=function(e){if(!(0,s.isObject)(e))throw new Error("Graphics commands should be wrapped in an object");if((0,s.hasProperty)(e,"create"),(0,s.hasProperty)(e,"erase")){const t=e.erase;(0,r.assert)(Array.isArray(t),"Collection of erase commands should be array");for(const e of t){if(!(0,s.isObject)(e)||!(0,s.hasProperty)(e,"action"))throw new Error("Command should be an object with 'action' property");(0,r.assert)("all"===e.action||"one"===e.action,"Erase command action should be 'all' or 'one'")}}return e}(t.graphicsCmds)),i}},57626:(e,t,i)=>{"use strict";i.d(t,{notAvailable:()=>r});var s=i(28353);const r=i(67337).enabled("use_na_string_for_not_available_values")?(0,s.t)("n/a"):"∅"},56589:(e,t,i)=>{"use strict";var s;i.d(t,{PaneCursorType:()=>s}),function(e){e[e.Default=0]="Default",e[e.Pointer=1]="Pointer",e[e.Eraser=2]="Eraser",e[e.Dot=3]="Dot",e[e.Grabbing=4]="Grabbing",e[e.ZoomIn=5]="ZoomIn",e[e.VerticalResize=6]="VerticalResize",e[e.HorizontalResize=7]="HorizontalResize",e[e.DiagonalNeSwResize=8]="DiagonalNeSwResize",e[e.DiagonalNwSeResize=9]="DiagonalNwSeResize"}(s||(s={}))},28978:(e,t,i)=>{"use strict";i.d(t,{PanePriceAxisView:()=>n});var s=i(76818);class r{constructor(e){this._priceAxisViewRenderer=null,this._rendererOptions=null,this._align="right",this._width=0,this._height=0,this._textWidthCache=e}setParams(e,t,i,s,r){this._priceAxisViewRenderer=e,this._rendererOptions=t,this._width=i,this._height=s,this._align=r}draw(e,t){null!==this._rendererOptions&&null!==this._priceAxisViewRenderer&&this._priceAxisViewRenderer.draw(e,this._rendererOptions,this._textWidthCache,this._width,this._height,this._align,t.pixelRatio)}hitTest(e){var t,i;return void 0===(null===(t=this._priceAxisViewRenderer)||void 0===t?void 0:t.hitTest)?null:null===(i=this._priceAxisViewRenderer)||void 0===i?void 0:i.hitTest(e,this._width,this._align)}}class n{constructor(e,t,i){this._renderer=null,this._invalidated=!0,this._priceAxisView=e,this._textWidthCache=new s.TextWidthCache(100),this._dataSource=t,this._chartModel=i,this._fontSize=-1,this._panePriceAxisViewRenderer=new r(this._textWidthCache)}update(e){this._invalidated=!0}renderer(e,t){return this._invalidated&&this._updateImpl(e,t),this._renderer}_updateImpl(e,t){this._renderer=null;const i=this._chartModel.crossHairSource(),s=this._dataSource===i?i.pane:this._chartModel.paneForSource(this._dataSource);if(null===s)return;const r=this._priceScale();if(null===r)return;let n=s.priceScalePosition(r);if("overlay"===n&&(n=s.priceScalePosition(s.defaultPriceScale())),"overlay"===n)return;const o=this._chartModel.priceAxisRendererOptions();o.fontSize!==this._fontSize&&(this._fontSize=o.fontSize,
this._textWidthCache.reset()),this._panePriceAxisViewRenderer.setParams(this._priceAxisView.paneRenderer(),o,t,e,n),this._renderer=this._panePriceAxisViewRenderer,this._invalidated=!1}_priceScale(){return this._dataSource.priceScale()}}},84705:(e,t,i)=>{"use strict";i.d(t,{PaneRendererArea:()=>a});var s=i(88537),r=i(46214),n=i(29892),o=i(49094);class a extends r.PaneRendererLine{constructor(e){e.forceLineColor=!1,super(e)}draw(e,t){var i,r,a,l,c;const h=this._data;if(0===h.items.length)return;let d=null!==(r=null===(i=this._data.visibleItemsRange)||void 0===i?void 0:i.startItemIndex)&&void 0!==r?r:0,u=(null!==(l=null===(a=this._data.visibleItemsRange)||void 0===a?void 0:a.endItemIndex)&&void 0!==l?l:this._data.items.length)-1;for(;d=0&&!(0,o.coordinateIsValid)(h.items[u].y);)u--;if(d>u)return;e.save(),e.scale(t.pixelRatio,t.pixelRatio),e.lineCap="butt",e.strokeStyle=h.lineColor,e.lineWidth=h.lineWidth,(0,n.setLineStyle)(e,h.lineStyle),e.lineWidth=1;const p={},_=h.items;for(let e=d;e<=u;e++){const t=_[e];let i;if(i=t.style?t.style.color:h.lineColor,e{"use strict";i.d(t,{CompositeRenderer:()=>s});class s{constructor(){this._renderers=[],this._globalAlpha=1}setGlobalAlpha(e){this._globalAlpha=e}append(e){this._renderers.push(e)}insert(e,t){this._renderers.splice(t,0,e)}clear(){this._renderers.length=0}isEmpty(){return 0===this._renderers.length}draw(e,t){for(let i=0;i=0;s--){const r=this._renderers[s].hitTest(e,t);null!==r&&(null===i||r.result()>i.result())&&(i=r)}return i}doesIntersectWithBox(e){return this._renderers.some(t=>!!t.doesIntersectWithBox&&t.doesIntersectWithBox(e))}}},42759:(e,t,i)=>{"use strict";i.d(t,{clearRectWithGradient:()=>o,fillRectInnerBorder:()=>a,drawHorizontalLine:()=>l,drawVerticalLine:()=>c,drawRoundRect:()=>d,drawRoundRectWithInnerBorder:()=>u,fillRectWithBorder:()=>p,createCircle:()=>_});var s=i(86441),r=i(29892),n=i(95936);function o(e,t,i,s,r,n,o){e.save(),
e.globalCompositeOperation="copy";const a=e.createLinearGradient(0,0,0,r);a.addColorStop(0,n),a.addColorStop(1,o),e.fillStyle=a,e.fillRect(t,i,s,r),e.restore()}function a(e,t,i,s,r,n){e.fillRect(t+n,i,s-2*n,n),e.fillRect(t+n,i+r-n,s-2*n,n),e.fillRect(t,i,n,r),e.fillRect(t+s-n,i,n,r)}function l(e,t,i,s){e.beginPath();const r=e.lineWidth%2?.5:0;e.moveTo(i,t+r),e.lineTo(s,t+r),e.stroke()}function c(e,t,i,s){e.beginPath();const r=e.lineWidth%2?.5:0;e.moveTo(t+r,i),e.lineTo(t+r,s),e.stroke()}function h(e,t){return Array.isArray(e)?e.map(e=>0===e?e:e+t):e+t}function d(e,t,i,s,r,n,o){let a,l,c,h;if(Array.isArray(n))if(2===n.length){const e=Math.max(0,n[0]),t=Math.max(0,n[1]);a=e,l=e,c=t,h=t}else{if(4!==n.length)throw new Error("Wrong border radius - it should be like css border radius");a=Math.max(0,n[0]),l=Math.max(0,n[1]),c=Math.max(0,n[2]),h=Math.max(0,n[3])}else{const e=Math.max(0,n);a=e,l=e,c=e,h=e}o||e.beginPath(),e.moveTo(t+a,i),e.lineTo(t+s-l,i),0!==l&&e.arcTo(t+s,i,t+s,i+l,l),e.lineTo(t+s,i+r-c),0!==c&&e.arcTo(t+s,i+r,t+s-c,i+r,c),e.lineTo(t+h,i+r),0!==h&&e.arcTo(t,i+r,t,i+r-h,h),e.lineTo(t,i+a),0!==a&&e.arcTo(t,i,t+a,i,a)}function u(e,t,i,s,o,a,l=0,c=0,u="",p=n.LineStyle.Solid){if(e.save(),!c||!u||u===a)return d(e,t,i,s,o,l),e.fillStyle=a,e.fill(),void e.restore();const _=c/2;if("transparent"!==a){const r="transparent"!==u&&p!==n.LineStyle.Solid;d(e,r?t:t+c,r?i:i+c,r?s:s-2*c,r?o:o-2*c,r?l:h(l,-c)),e.fillStyle=a,e.fill()}if("transparent"!==u){d(e,t+_,i+_,s-c,o-c,h(l,-_)),e.lineWidth=c,e.strokeStyle=u,(0,r.setLineStyle)(e,p),e.closePath(),e.stroke()}e.restore()}function p(e,t,i,n,o,a,l,c,h,d,u,p,_,m,g){const f=d?0:t,v=u?_:n;if(void 0!==a&&(e.fillStyle=a,e.fillRect(f,i,v-f+m,o-i)),void 0!==l&&c>0){if(e.beginPath(),(0,r.setLineStyle)(e,h),void 0!==g){const t=g.map(e=>e*c);(0,r.setLineDash)(e,t)}let a=(0,s.point)(0,0),d=(0,s.point)(0,0),u=(0,s.point)(0,0),_=(0,s.point)(0,0);switch(p){case"outer":{const e=.5*c;u=(0,s.point)(0,e),_=(0,s.point)(0,e),a=(0,s.point)(e,-c),d=(0,s.point)(e,-c);break}case"center":{const e=c%2?.5:0,t=c%2?.5:m;u=(0,s.point)(.5*c-e,-e),_=(0,s.point)(t+.5*c,-e),a=(0,s.point)(-e,e+.5*c),d=(0,s.point)(t,e+.5*c);break}case"inner":{const e=.5*c;u=(0,s.point)(0,-e),_=(0,s.point)(1,-e),a=(0,s.point)(-e,c),d=(0,s.point)(1-e,c);break}}e.lineWidth=c,e.strokeStyle=l,e.moveTo(f-u.x,i-u.y),e.lineTo(v+_.x,i-_.y),e.moveTo(n+d.x,i+d.y),e.lineTo(n+d.x,o-d.y),e.moveTo(f-u.x,o+u.y),e.lineTo(v+_.x,o+_.y),e.moveTo(t-a.x,i+a.y),e.lineTo(t-a.x,o-a.y),e.stroke()}}function _(e,t,i,s){e.beginPath(),e.arc(t,i,s,0,2*Math.PI,!1),e.closePath()}},49094:(e,t,i)=>{"use strict";i.d(t,{extendAndClipLineSegment:()=>h,getArrowPoints:()=>d,optimalBarWidth:()=>u,optimalCandlestickWidth:()=>p,optimalHiLoWidth:()=>_,interactionTolerance:()=>m,coordinateIsValid:()=>g,setValidLineStyle:()=>f,fillScaledRadius:()=>v,strokeScaledRadius:()=>S});var s=i(86441),r=i(5531),n=i(71413),o=i(80643),a=i(29892);const l={line:13,minDistanceBetweenPoints:10,series:14,curve:10,anchor:13,esd:4},c={line:3,minDistanceBetweenPoints:5,series:2,curve:3,anchor:2,
esd:0};function h(e,t,i,n,o,a){if((0,s.equalPoints)(e,t))return null;const l=new s.Point(0,0),c=new s.Point(i,n);if(o){if(a){const i=(0,r.intersectLineAndBox)((0,s.lineThroughPoints)(e,t),(0,s.box)(l,c));return Array.isArray(i)?i:null}{const i=(0,r.intersectRayAndBox)(t,e,(0,s.box)(l,c));return null===i||(0,s.equalPoints)(t,i)?null:(0,s.lineSegment)(t,i)}}if(a){const i=(0,r.intersectRayAndBox)(e,t,(0,s.box)(l,c));return null===i||(0,s.equalPoints)(e,i)?null:(0,s.lineSegment)(e,i)}{const i=(0,r.intersectLineSegmentAndBox)((0,s.lineSegment)(e,t),(0,s.box)(l,c));return Array.isArray(i)?i:null}}function d(e,t,i,s){const r=.5*i,n=Math.sqrt(2),o=t.subtract(e),a=o.normalized();let l=5*i;s&&(l=Math.min(l,.35*o.length()));const c=1*r;if(l*n*.2<=c)return[];const h=a.scaled(l),d=t.subtract(h),u=a.transposed(),p=1*l,_=u.scaled(p),m=d.add(_),g=d.subtract(_),f=m.subtract(t).normalized().scaled(c),v=g.subtract(t).normalized().scaled(c),S=t.add(f),y=t.add(v),b=r*(n-1),w=u.scaled(b),C=Math.min(l-1*r/n,r*n*1),P=a.scaled(C),T=t.subtract(w),x=t.add(w),I=t.subtract(P);return[[m,S],[g,y],[T,I.subtract(w)],[x,I.add(w)]]}function u(e,t){return t=t||1,Math.floor(.3*e*t)}function p(e,t){if(e>=2.5&&e<=4)return Math.floor(3*t);const i=1-.2*Math.atan(Math.max(4,e)-4)/(.5*Math.PI),s=Math.floor(e*i*t),r=Math.floor(e*t),n=Math.min(s,r);return Math.max(Math.floor(t),n)}function _(e){return.4*e}function m(){return(0,n.lastMouseOrTouchEventInfo)().isTouch?l:c}function g(e){return null!=e&&!(0,o.isNaN)(e)}function f(e,t){void 0!==t&&(0,a.setLineStyle)(e,t)}function v(e,t){const i=Math.max(1,Math.floor(t))%2?.5:0;return Math.round(e*t)+i}function S(e,t,i){const s=Math.max(1,Math.floor(t))%2?.5:0;return Math.round(e*t)+(s!==i%2?.5:0)}},40254:(e,t,i)=>{"use strict";i.d(t,{HorizontalLineRenderer:()=>a});var s=i(84346),r=i(29892),n=i(42759),o=i(49094);class a{constructor(){this._data=null,this._hitTest=new s.HitTestResult(s.HitTestResult.REGULAR)}setData(e){this._data=e}setHitTest(e){this._hitTest=e}hitTest(e){if(null===this._data||!1===this._data.visible||null===this._hitTest)return null;const t=(0,o.interactionTolerance)().line,i=Math.abs(e.y-this._data.y)<=t+this._data.linewidth/2,s=void 0===this._data.left||this._data.left-e.x<=t,r=void 0===this._data.right||e.x-this._data.right<=t;return i&&s&&r?this._hitTest:null}draw(e,t){if(null===this._data)return;if(!1===this._data.visible)return;if(this._data.y<-this._data.linewidth/2||this._data.y>t.cssHeight+this._data.linewidth/2)return;const i=t.pixelRatio;e.lineCap="butt",e.strokeStyle=this._data.color,e.lineWidth=Math.max(1,Math.floor(this._data.linewidth*i)),void 0!==this._data.linestyle&&(0,r.setLineStyle)(e,this._data.linestyle);const s=void 0!==this._data.left?Math.max(this._data.left,0):0,o=void 0!==this._data.right?Math.min(this._data.right,t.cssWidth):t.cssWidth,a=Math.round(this._data.y*i),l=Math.floor(s*i),c=Math.ceil(o*i);(0,n.drawHorizontalLine)(e,a,l,c)}}},15712:(e,t,i)=>{"use strict";function s(e,t){return e.pixelRatio===t.pixelRatio}i.d(t,{areEqualPaneRenderParams:()=>s})},49612:(e,t,i)=>{
"use strict";var s;i.d(t,{LineEnd:()=>s}),function(e){e[e.Normal=0]="Normal",e[e.Arrow=1]="Arrow",e[e.Circle=2]="Circle"}(s||(s={}))},46214:(e,t,i)=>{"use strict";i.d(t,{PaneRendererLine:()=>l});var s=i(86441),r=i(4652),n=i(84346),o=i(29892),a=i(49094);class l{constructor(e){this._data=e}hitTest(e,t){var i,o,l,c;const h=(0,a.interactionTolerance)().series+this._data.lineWidth/2;let d=null!==(o=null===(i=this._data.visibleItemsRange)||void 0===i?void 0:i.startItemIndex)&&void 0!==o?o:0,u=(null!==(c=null===(l=this._data.visibleItemsRange)||void 0===l?void 0:l.endItemIndex)&&void 0!==c?c:this._data.items.length)-1;for(;u-d>2;){const t=Math.round((u+d)/2);this._data.items[t].x<=e.x?d=t:u=t}d=Math.max(1,d-1),u=Math.min(this._data.items.length-1,u+1);for(let t=d;t<=u;++t){const i=this._data.items[t-1],o=this._data.items[t],a=i.x,l=o.x;if((0,r.distanceToSegment)(new s.Point(a,i.y),new s.Point(l,o.y),new s.Point(e.x,e.y)).distance<=h)return this._data.hittest?this._data.hittest:new n.HitTestResult(n.HitTestResult.REGULAR)}return null}draw(e,t){e.save(),e.scale(t.pixelRatio,t.pixelRatio),e.lineCap="square",e.lineJoin="round",e.strokeStyle=this._data.lineColor,e.fillStyle=this._data.lineColor,e.lineWidth=this._data.lineWidth,(0,o.setLineStyle)(e,this._data.lineStyle),(0,a.setValidLineStyle)(e,this._data.lineStyle),this._data.simpleMode?this._drawSimpleMode(e,t.pixelRatio):this._drawLines(e),e.restore()}_drawSimpleMode(e,t){var i,s,r,n;if(e.beginPath(),this._walkLine(e,this._data.items,!1,NaN),e.stroke(),this._data.withMarkers){e.save(),e.scale(1/t,1/t);const o=Math.max(1,Math.floor(t))%2/2,a=(this._data.lineWidth+2)*t+o,l=2*Math.PI;e.beginPath();const c=null!==(s=null===(i=this._data.visibleItemsRange)||void 0===i?void 0:i.startItemIndex)&&void 0!==s?s:0;for(let i=(null!==(n=null===(r=this._data.visibleItemsRange)||void 0===r?void 0:r.endItemIndex)&&void 0!==n?n:this._data.items.length)-1+1;i-- >=c;){const s=this._data.items[i];if(s){const i=Math.round(s.x*t)+o,r=s.y*t;e.moveTo(i,r),e.arc(i,r,a,0,l)}}e.fill(),e.restore()}}_walkLine(e,t,i,s,r){var n,o,l,c;if(!t)return;const h=.25*this._data.barSpacing;let d,u,p,_,m;const g=a.coordinateIsValid,f=r?0:null!==(o=null===(n=this._data.visibleItemsRange)||void 0===n?void 0:n.startItemIndex)&&void 0!==o?o:0,v=r?t.length-1:Math.min((null!==(c=null===(l=this._data.visibleItemsRange)||void 0===l?void 0:l.endItemIndex)&&void 0!==c?c:t.length)-1,t.length-1);for(let e=f;e<=v;e++){const i=t[e];if(g(i.y)){u=i,d=e;break}}if(void 0!==d&&void 0!==u)for(let r=d;r<=v;r++){_=t[r],m=t[r+1]||{};const n=Math.round(_.x);if(g(_.y))if(p&&g(p.y))e.lineTo(n,_.y),i&&!g(m.y)&&e.lineTo(n,s);else if(m&&g(m.y))i?(r!==d&&e.lineTo(n,s),e.lineTo(n,_.y)):e.moveTo(n,_.y);else if(i){if(0===r)continue;r!==d&&e.lineTo(n-h,s),e.lineTo(n-h,_.y),e.lineTo(n+h,_.y),e.lineTo(n+h,s)}else e.moveTo(n-h,_.y),e.lineTo(n+h,_.y);p=_}}_drawLines(e){var t,i,s,r;if(!this._data.items.length)return;let n,o,l;const c=.25*this._data.barSpacing,h=a.coordinateIsValid;e.beginPath()
;const d=null!==(i=null===(t=this._data.visibleItemsRange)||void 0===t?void 0:t.startItemIndex)&&void 0!==i?i:0,u=(null!==(r=null===(s=this._data.visibleItemsRange)||void 0===s?void 0:s.endItemIndex)&&void 0!==r?r:this._data.items.length)-1,p=this._data.items[d];p&&e.moveTo(p.x,p.y);let _,m=e.strokeStyle,g=e.lineWidth;for(let t=d+1;t<=u;++t){let i,s,r;n=this._data.items[t-1],o=this._data.items[t],l=this._data.items[t+1],o.style&&!this._data.forceLineColor?(i=o.style.color,s=o.style.width,r=o.style.style):(i=this._data.lineColor,s=this._data.lineWidth,r=this._data.lineStyle),this._data.ignorePaletteLineWidth&&(s=this._data.lineWidth);(i!==m||s!==g||r!==_)&&(m=i,g=s,_=r,e.stroke(),e.beginPath(),e.strokeStyle=i,e.lineWidth=s,(0,a.setValidLineStyle)(e,r),e.moveTo(n.x,n.y)),f=n,S=l,h((v=o).y)&&(h(f.y)?e.lineTo(v.x,v.y):S&&h(S.y)?e.moveTo(v.x,v.y):(e.moveTo(v.x-c,v.y),e.lineTo(v.x+c,v.y)))}var f,v,S;e.stroke()}}},55776:(e,t,i)=>{"use strict";i.d(t,{RectangleRenderer:()=>d});var s=i(88537),r=i(86441),n=i(34026),o=i(4652),a=i(84346),l=i(68906),c=i(43891),h=i(42759);class d{constructor(e,t,i){this._data=null,this._hitTestResult=e||new a.HitTestResult(a.HitTestResult.MOVEPOINT),this._backHitTestResult=t||new a.HitTestResult(a.HitTestResult.MOVEPOINT_BACKGROUND),this._forceOverrideTransparency=Boolean(i)}setData(e){this._data=e}hitTest(e,t){if(null===this._data||this._data.points.length<2||this._data.nohittest)return null;const[i,s]=this._getPointsInPhysicalSpace(t),n=new r.Point(s.x,i.y),a=new r.Point(i.x,s.y),l=new r.Point(e.x*t.pixelRatio,e.y*t.pixelRatio),c=this._extendAndHitTestLineSegment(l,i,n,t);if(null!==c)return c;const h=this._extendAndHitTestLineSegment(l,a,s,t);if(null!==h)return h;let d=(0,o.distanceToSegment)(n,s,l);return d.distance<=3?this._hitTestResult:(d=(0,o.distanceToSegment)(i,a,l),d.distance<=3?this._hitTestResult:this._data.fillBackground?this._hitTestBackground(l,i,s,t):null)}getColor(){const e=(0,s.ensure)(this._data);return void 0===e.transparency?e.backcolor:(0,l.generateColor)(e.backcolor,e.transparency,this._forceOverrideTransparency)}draw(e,t){if(null===this._data||this._data.points.length<2||this._data.linewidth<=0&&!this._data.fillBackground)return;e.save();const[i,s]=this._getPointsInPhysicalSpace(t),r=this._data.linewidth?Math.max(1,Math.floor(this._data.linewidth*t.pixelRatio)):0,n=this._data.fillBackground?this.getColor():void 0,o=Math.max(1,Math.floor(t.pixelRatio));(0,h.fillRectWithBorder)(e,i.x,i.y,s.x,s.y,n,this._data.color,r,c.LINESTYLE_SOLID,this._data.extendLeft,this._data.extendRight,"center",t.physicalWidth,this._data.includeRightEdge&&1===o?1:0),e.restore()}_getPointsInPhysicalSpace(e,t=0){const i=(0,s.ensureNotNull)(this._data),[n,o]=i.points,a=e.pixelRatio,l=Math.min(n.x,o.x),c=Math.max(n.x,o.x),h=Math.min(n.y,o.y),d=Math.max(n.y,o.y),u=Math.round(l*a)+t,p=Math.round(c*a)+t,_=Math.round(h*a)+t,m=Math.round(d*a)+t;return[new r.Point(u,_),new r.Point(p,m)]}_extendAndHitTestLineSegment(e,t,i,s){const r=this._extendAndClipLineSegment(t,i,s);if(null!==r){if((0,
o.distanceToSegment)(r[0],r[1],e).distance<=3)return this._hitTestResult}return null}_extendAndClipLineSegment(e,t,i){const n=(0,s.ensureNotNull)(this._data);if((0,r.equalPoints)(e,t)&&!n.extendLeft&&!n.extendRight)return null;const o=i.physicalWidth,a=Math.min(e.x,t.x),l=Math.max(e.x,t.x),c=n.extendLeft?0:Math.max(a,0),h=n.extendRight?o:Math.min(l,o);return c>h||h<=0||c>=o?null:[new r.Point(c,e.y),new r.Point(h,t.y)]}_hitTestBackground(e,t,i,s){const o=this._extendAndClipLineSegment(t,i,s);return null!==o&&(0,n.pointInBox)(e,(0,r.box)(o[0],o[1]))?this._backHitTestResult:null}}},16282:(e,t,i)=>{"use strict";i.d(t,{ScaledPaneRenderer:()=>s,ScaledPaneRendererWrapper:()=>r});class s{draw(e,t){e.save(),e.scale(t.pixelRatio,t.pixelRatio),e.translate(.5,.5),this._drawImpl(e,{...t,pixelRatio:1}),e.restore()}drawBackground(e,t){e.save(),e.scale(t.pixelRatio,t.pixelRatio),e.translate(.5,.5),this._drawBackgroundImpl(e,{...t,pixelRatio:1}),e.restore()}_drawBackgroundImpl(e,t){}}class r{constructor(e){this._base=e}hitTest(e,t){return this._base.hitTest(e,t)}draw(e,t){e.save(),e.scale(t.pixelRatio,t.pixelRatio),e.translate(.5,.5),this._base.draw(e,{...t,pixelRatio:1}),e.restore()}drawBackground(e,t){e.save(),e.scale(t.pixelRatio,t.pixelRatio),e.translate(.5,.5),this._base.drawBackground&&this._base.drawBackground(e,{...t,pixelRatio:1}),e.restore()}}},13632:(e,t,i)=>{"use strict";var s;i.d(t,{StatsPosition:()=>s}),function(e){e[e.Left=0]="Left",e[e.Center=1]="Center",e[e.Right=2]="Right"}(s||(s={}))},28113:(e,t,i)=>{"use strict";i.d(t,{StepLineDecoration:()=>s,PaneRendererStepLine:()=>g});var s,r=i(4652),n=i(84346),o=i(86441),a=i(29892),l=i(55257),c=i(49094),h=i(42759),d=i(68906);!function(e){e[e.None=0]="None",e[e.Diamonds=1]="Diamonds"}(s||(s={}));class u{initialize(e,t,i,s){var r,n,o,l;const c=e.lineStyle;t.lineCap="butt",t.lineJoin="round";const h=Math.max(Math.floor(null!==(n=null===(r=s.style)||void 0===r?void 0:r.width)&&void 0!==n?n:e.lineWidth*i.pixelRatio));void 0!==c&&(0,a.setLineStyle)(t,c);const d=h%2?.5:0;t.moveTo(Math.round(s.x*i.pixelRatio)+d,Math.round(s.y*i.pixelRatio)+d),t.strokeStyle=null!==(l=null===(o=s.style)||void 0===o?void 0:o.color)&&void 0!==l?l:e.lineColor,t.lineWidth=h}finishFragment(e){e.stroke()}hitTest(e,t,i,s,n){var a,l;const h=Math.round((i.x+s.x)/2),d=new o.Point(h,i.y),u=new o.Point(h,s.y),p=null!==(l=null===(a=i.style)||void 0===a?void 0:a.width)&&void 0!==l?l:e.lineWidth,_=(0,c.interactionTolerance)().series+p/2;return Math.min((0,r.distanceToSegment)(i,d,n).distance,(0,r.distanceToSegment)(d,u,n).distance,(0,r.distanceToSegment)(u,s,n).distance)<=_}applyColor(e,t){e.strokeStyle=t}applyLineWidth(e,t){e.lineWidth=t}drawItem(e,t,i,s){e.lineTo(i.x,i.y),void 0!==s&&(e.lineTo(s.x,i.y),e.lineTo(s.x,s.y))}}class p{constructor(){this._lineWidth=1}initialize(e,t,i,s){var r,n,o,a;this.applyColor(t,null!==(n=null===(r=s.style)||void 0===r?void 0:r.color)&&void 0!==n?n:e.lineColor),
this._lineWidth=Math.max(Math.floor(null!==(a=null===(o=s.style)||void 0===o?void 0:o.width)&&void 0!==a?a:e.lineWidth*i.pixelRatio))}finishFragment(e){e.fill()}drawItem(e,t,i,s,r){if(r&&void 0!==s&&!Number.isNaN(s.y)){e.save(),e.translate(s.x,s.y),e.rotate(Math.PI/4);const i=this._scaleByLineWidth(this._lineWidth);e.scale(i,i),this._drawItemRotatedAndTranslated(e,t),e.restore()}}applyLineWidth(e,t){this._lineWidth=t}hitTest(e,t,i,s,r){var n,a;if(!s.valIsNotSameAsPrev)return!1;const l=Math.round((i.x+s.x)/2),c=new o.Point(l,s.y),h=r.subtract(c),d=Math.max(Math.floor(null!==(a=null===(n=i.style)||void 0===n?void 0:n.width)&&void 0!==a?a:e.lineWidth*t.pixelRatio));return this._hitTestTranslated(h,d)}_scaleByLineWidth(e){return Math.sqrt(e)}}class _ extends p{applyColor(e,t){e.fillStyle=t}_hitTestTranslated(e,t){return Math.abs(e.x)+Math.abs(e.y)<8*this._scaleByLineWidth(t)/2}_drawItemRotatedAndTranslated(e,t){(0,h.drawRoundRect)(e,-4,-4,8,8,2,!0)}}class m extends p{applyColor(e,t){e.fillStyle=(0,d.applyTransparency)(t,85)}_hitTestTranslated(e,t){return Math.abs(e.x)+Math.abs(e.y)<21*this._scaleByLineWidth(t)/2}_drawItemRotatedAndTranslated(e,t){(0,h.drawRoundRect)(e,-10.5,-10.5,21,21,5,!0)}}class g{constructor(e){this._data=null,this._data=null!=e?e:null}setData(e){this._data=e}hitTest(e,t){var i;const r=this._data;if(null===r||0===r.items.length)return null;const o=r.items,a=(0,l.lowerbound)(o,e,(e,t)=>e.x<=t.x),c=Math.max(0,a-1),h=Math.min(o.length-1,a+1),d=function(e){switch(e){case s.Diamonds:return[new u,new m];default:return[new u]}}(null===(i=this._data)||void 0===i?void 0:i.decoration);for(let i=c;ii.hitTest(r,t,s,a,e)))return new n.HitTestResult(n.HitTestResult.REGULAR)}return null}draw(e,t){if(null===this._data||0===this._data.items.length)return;e.save();(function(e){switch(e){case s.Diamonds:return[new u,new _,new m];default:return[new u]}})(this._data.decoration).forEach(i=>this._drawImpl(e,t,i)),e.restore()}_drawImpl(e,t,i){var s,r,n,a,l,c,h,d,u,p,_,m,g,f,v,S;if(null===this._data||0===this._data.items.length)return;const{lineWidth:y,lineColor:b,items:w}=this._data,C=t.pixelRatio;let P=Math.max(Math.floor(null!==(r=null===(s=w[0].style)||void 0===s?void 0:s.width)&&void 0!==r?r:y*C)),T=P%2?.5:0;i.initialize(this._data,e,t,w[0]);const x=null!==(a=null===(n=this._data.visibleItemsRange)||void 0===n?void 0:n.startItemIndex)&&void 0!==a?a:0,I=null!==(c=null===(l=this._data.visibleItemsRange)||void 0===l?void 0:l.endItemIndex)&&void 0!==c?c:w.length;if(!(I<=x)){e.beginPath(),i.applyColor(e,null!==(d=null===(h=w[x].style)||void 0===h?void 0:h.color)&&void 0!==d?d:b);for(let s=x;s{"use strict";i.d(t,{calculateLabelPosition:()=>p,wordWrap:()=>g,TextRenderer:()=>M});var s=i(86441),r=i(88537),n=i(34026),o=i(62820),a=i(84346),l=i(42759),c=i(29892),h=i(80643),d=i(93435),u=i(43891);function p(e,t,i,r,n){const o=.5*(t.x+i.x);let a=i.y;return t.y>i.y?(a-=e.height/2+r.y,a=Math.max(e.height/2,a)):(a+=e.height/2+r.y,a=Math.min(n-e.height/2,a)),new s.Point(o,a)}let _;function m(){const e=document.createElement("canvas");e.width=0,e.height=0,_=(0,r.ensureNotNull)(e.getContext("2d"))}function g(e,t,i){_||m(),i=(0,h.isString)(i)?parseInt(i):i,e+="";const s=!(0,h.isNumber)(i)||!isFinite(i)||i<=0?e.split(/\r\n|\r|\n|$/):e.split(/[^\S\r\n]*(?:\r\n|\r|\n|$)/);if(s[s.length-1]||s.pop(),!(0,h.isNumber)(i)||!isFinite(i)||i<=0)return s;_.font=t;const r=[];for(let e=0;e0&&_.measureText(o.slice(0,3*--e-1).join("")).width>i;);if(e>0)r.push(o.slice(0,3*e-1).join("")),o.splice(0,3*e);else{const e=o[0]+(o[1]||"");if(a=1===a?1:~~(i/_.measureText(e).width*e.length),_.measureText(e.substring(0,a)).width<=i)for(;_.measureText(e.substring(0,a+1)).width<=i;)a++;else for(;a>1&&_.measureText(e.substring(0,--a)).width>i;);a<1&&(a=1),r.push(e.substring(0,a)),o[0]=e.substring(a),o[1]=""}if(_.measureText(o.join("")).width<=i){r.push(o.join(""));break}}}return r}function f(e,t,i){if(0===i)return e.clone();const r=(e.x-t.x)*Math.cos(i)-(e.y-t.y)*Math.sin(i)+t.x,n=(e.x-t.x)*Math.sin(i)+(e.y-t.y)*Math.cos(i)+t.y;return new s.Point(r,n)}function v(e,t){const i=Math.round(t+2*C(e)+2*b(e));return i%2?i-1:i}function S(e,t){return T(e)*t+P(e)*(t-1)+2*w(e)+2*y(e)}function y(e){return void 0!==e.boxPaddingVert?e.boxPaddingVert*I(e):void 0!==e.boxPadding?e.boxPadding*I(e):T(e)/3}function b(e){return void 0!==e.boxPaddingHorz?e.boxPaddingHorz*I(e):void 0!==e.boxPadding?e.boxPadding*I(e):T(e)/3}function w(e){return(e.backgroundVertInflate||0)*I(e)}function C(e){return(e.backgroundHorzInflate||0)*I(e)}function P(e){return(e.padding||0)*I(e)}function T(e){return Math.ceil(x(e)*I(e))}function x(e){return e.fontsize||e.fontSize||30}function I(e){const t=Math.min(1,Math.max(.2,Math.min(e.scaleX||1,e.scaleY||1)));if(1===t)return t;const i=x(e);return Math.ceil(t*i)/i}class M{constructor(e,t){this._data=null,this._internalData=null,
this._boxSize=null,this._polygonPoints=null,this._linesInfo=null,this._fontInfo=null,this._hittest=t||new a.HitTestResult(a.HitTestResult.MOVEPOINT,{areaName:a.AreaName.Text}),void 0!==e&&this.setData(e)}setData(e){e.horzTextAlign||(e.horzTextAlign=e.horzAlign),function(e,t){if(null===e||null===t)return null===e==(null===t);if(void 0===e.points!=(void 0===t.points))return!1;if(void 0!==e.points&&void 0!==t.points){if(e.points.length!==t.points.length)return!1;for(let r=0;r