initial commit with charts and assistant chat

This commit is contained in:
2026-03-02 00:08:19 -04:00
commit d907c5765e
1828 changed files with 50054 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[5386],{10553:e=>{e.exports={container:"container-WDZ0PRNh","container-xxsmall":"container-xxsmall-WDZ0PRNh","container-xsmall":"container-xsmall-WDZ0PRNh","container-small":"container-small-WDZ0PRNh","container-medium":"container-medium-WDZ0PRNh","container-large":"container-large-WDZ0PRNh","intent-default":"intent-default-WDZ0PRNh",focused:"focused-WDZ0PRNh",readonly:"readonly-WDZ0PRNh",disabled:"disabled-WDZ0PRNh","with-highlight":"with-highlight-WDZ0PRNh",grouped:"grouped-WDZ0PRNh","adjust-position":"adjust-position-WDZ0PRNh","first-row":"first-row-WDZ0PRNh","first-col":"first-col-WDZ0PRNh",stretch:"stretch-WDZ0PRNh","font-size-medium":"font-size-medium-WDZ0PRNh","font-size-large":"font-size-large-WDZ0PRNh","no-corner-top-left":"no-corner-top-left-WDZ0PRNh","no-corner-top-right":"no-corner-top-right-WDZ0PRNh","no-corner-bottom-right":"no-corner-bottom-right-WDZ0PRNh","no-corner-bottom-left":"no-corner-bottom-left-WDZ0PRNh","size-xxsmall":"size-xxsmall-WDZ0PRNh","size-xsmall":"size-xsmall-WDZ0PRNh","size-small":"size-small-WDZ0PRNh","size-medium":"size-medium-WDZ0PRNh","size-large":"size-large-WDZ0PRNh","intent-success":"intent-success-WDZ0PRNh","intent-warning":"intent-warning-WDZ0PRNh","intent-danger":"intent-danger-WDZ0PRNh","intent-primary":"intent-primary-WDZ0PRNh","border-none":"border-none-WDZ0PRNh","border-thin":"border-thin-WDZ0PRNh","border-thick":"border-thick-WDZ0PRNh",highlight:"highlight-WDZ0PRNh",shown:"shown-WDZ0PRNh"}},42130:e=>{e.exports={"inner-slot":"inner-slot-W53jtLjw",interactive:"interactive-W53jtLjw",icon:"icon-W53jtLjw","inner-middle-slot":"inner-middle-slot-W53jtLjw","before-slot":"before-slot-W53jtLjw","after-slot":"after-slot-W53jtLjw"}},90871:e=>{e.exports={scrollWrap:"scrollWrap-FaOvTD2r"}},67701:e=>{e.exports={wrap:"wrap-vSb6C0Bj","wrap--horizontal":"wrap--horizontal-vSb6C0Bj",bar:"bar-vSb6C0Bj",barInner:"barInner-vSb6C0Bj","barInner--horizontal":"barInner--horizontal-vSb6C0Bj","bar--horizontal":"bar--horizontal-vSb6C0Bj"}},86332:(e,n,t)=>{"use strict";t.d(n,{ControlGroupContext:()=>o});const o=t(50959).createContext({isGrouped:!1,cellState:{isTop:!0,isRight:!0,isBottom:!0,isLeft:!0}})},95604:(e,n,t)=>{"use strict";function o(e){let n=0;return e.isTop&&e.isLeft||(n+=1),e.isTop&&e.isRight||(n+=2),e.isBottom&&e.isLeft||(n+=8),e.isBottom&&e.isRight||(n+=4),n}t.d(n,{getGroupCellRemoveRoundBorders:()=>o})},67029:(e,n,t)=>{"use strict";t.d(n,{ControlSkeleton:()=>v,InputClasses:()=>_});var o=t(50959),r=t(97754),a=t.n(r),i=t(50151),s=t(38528),l=t(90186),u=t(86332),c=t(95604);var g=t(10553),d=t.n(g);function m(e){let n="";return 0!==e&&(1&e&&(n=a()(n,d()["no-corner-top-left"])),2&e&&(n=a()(n,d()["no-corner-top-right"])),4&e&&(n=a()(n,d()["no-corner-bottom-right"])),8&e&&(n=a()(n,d()["no-corner-bottom-left"]))),n}function h(e,n,t,o){const{removeRoundBorder:r,className:i,intent:s="default",borderStyle:l="thin",size:u,highlight:g,disabled:h,readonly:f,stretch:_,noReadonlyStyles:p,isFocused:b}=e,v=m(r??(0,
c.getGroupCellRemoveRoundBorders)(t));return a()(d().container,d()[`container-${u}`],d()[`intent-${s}`],d()[`border-${l}`],u&&d()[`size-${u}`],v,g&&d()["with-highlight"],h&&d().disabled,f&&!p&&d().readonly,b&&d().focused,_&&d().stretch,n&&d().grouped,!o&&d()["adjust-position"],t.isTop&&d()["first-row"],t.isLeft&&d()["first-col"],i)}function f(e,n,t){const{highlight:o,highlightRemoveRoundBorder:r}=e;if(!o)return d().highlight;const i=m(r??(0,c.getGroupCellRemoveRoundBorders)(n));return a()(d().highlight,d().shown,d()[`size-${t}`],i)}const _={FontSizeMedium:(0,i.ensureDefined)(d()["font-size-medium"]),FontSizeLarge:(0,i.ensureDefined)(d()["font-size-large"])},p={passive:!1};function b(e,n){const{style:t,id:r,role:a,onFocus:i,onBlur:c,onMouseOver:g,onMouseOut:d,onMouseDown:m,onMouseUp:_,onKeyDown:b,onClick:v,tabIndex:N,startSlot:P,middleSlot:R,endSlot:z,onWheel:w,onWheelNoPassive:y=null,size:D,tag:S="span",type:W}=e,{isGrouped:E,cellState:C,disablePositionAdjustment:k=!1}=(0,o.useContext)(u.ControlGroupContext),M=function(e,n=null,t){const r=(0,o.useRef)(null),a=(0,o.useRef)(null),i=(0,o.useCallback)((()=>{if(null===r.current||null===a.current)return;const[e,n,t]=a.current;null!==n&&r.current.addEventListener(e,n,t)}),[]),s=(0,o.useCallback)((()=>{if(null===r.current||null===a.current)return;const[e,n,t]=a.current;null!==n&&r.current.removeEventListener(e,n,t)}),[]),l=(0,o.useCallback)((e=>{s(),r.current=e,i()}),[]);return(0,o.useEffect)((()=>(a.current=[e,n,t],i(),s)),[e,n,t]),l}("wheel",y,p),Z=S;return o.createElement(Z,{type:W,style:t,id:r,role:a,className:h(e,E,C,k),tabIndex:N,ref:(0,s.useMergedRefs)([n,M]),onFocus:i,onBlur:c,onMouseOver:g,onMouseOut:d,onMouseDown:m,onMouseUp:_,onKeyDown:b,onClick:v,onWheel:w,...(0,l.filterDataProps)(e),...(0,l.filterAriaProps)(e)},P,R,z,o.createElement("span",{className:f(e,C,D)}))}b.displayName="ControlSkeleton";const v=o.forwardRef(b)},78274:(e,n,t)=>{"use strict";t.d(n,{AfterSlot:()=>g,EndSlot:()=>c,MiddleSlot:()=>u,StartSlot:()=>l});var o=t(50959),r=t(97754),a=t.n(r),i=t(42130),s=t.n(i);function l(e){const{className:n,interactive:t=!0,icon:r=!1,children:i}=e;return o.createElement("span",{className:a()(s()["inner-slot"],t&&s().interactive,r&&s().icon,n)},i)}function u(e){const{className:n,children:t}=e;return o.createElement("span",{className:a()(s()["inner-slot"],s()["inner-middle-slot"],n)},t)}function c(e){const{className:n,interactive:t=!0,icon:r=!1,children:i,dataQaId:l}=e;return o.createElement("span",{className:a()(s()["inner-slot"],t&&s().interactive,r&&s().icon,n),"data-qa-id":l},i)}function g(e){const{className:n,children:t,dataQaId:r}=e;return o.createElement("span",{className:a()(s()["after-slot"],n),"data-qa-id":r},t)}},29202:(e,n,t)=>{"use strict";t.d(n,{useFocus:()=>r});var o=t(50959);function r(e,n){const[t,r]=(0,o.useState)(!1);(0,o.useEffect)((()=>{n&&t&&r(!1)}),[n,t]);const a={onFocus:(0,o.useCallback)((function(n){void 0!==e&&e.current!==n.target||r(!0)}),[e]),onBlur:(0,o.useCallback)((function(n){void 0!==e&&e.current!==n.target||r(!1)}),[e])};return[t,a]}
},38528:(e,n,t)=>{"use strict";t.d(n,{useMergedRefs:()=>a});var o=t(50959),r=t(53017);function a(e){return(0,o.useCallback)((0,r.mergeRefs)(e),e)}},67842:(e,n,t)=>{"use strict";t.d(n,{useResizeObserver:()=>i});var o=t(50959),r=t(43010),a=t(39416);function i(e,n=[]){const{callback:t,ref:i=null}=function(e){return"function"==typeof e?{callback:e}:e}(e),s=(0,o.useRef)(null),l=(0,o.useRef)(t);l.current=t;const u=(0,a.useFunctionalRefObject)(i),c=(0,o.useCallback)((e=>{u(e),null!==s.current&&(s.current.disconnect(),null!==e&&s.current.observe(e))}),[u,s]);return(0,r.useIsomorphicLayoutEffect)((()=>(s.current=new ResizeObserver(((e,n)=>{l.current(e,n)})),u.current&&c(u.current),()=>{s.current?.disconnect()})),[u,...n]),c}},47930:(e,n,t)=>{"use strict";t.d(n,{formatTime:()=>d,isValidTimeOptionsDateStyle:()=>g,isValidTimeOptionsRange:()=>c});const o={calendar:"gregory",numberingSystem:"latn",hour12:!1},r={year:"numeric",month:"short",day:"numeric"},a={year:"numeric",month:"2-digit",day:"2-digit"},i={hour:"2-digit",minute:"2-digit",second:"2-digit"},s={timeZoneName:"shortOffset",weekday:"short"},l={year:0,month:1,day:2,hour:3,minute:4,second:5};const u=["year","month","day","hour","minute","second"];function c(e){return u.includes(e)}function g(e){return"numeric"===e||"short"===e}function d(e,n,t="year",u="day",c){const g=function(e="year",n="day",t={}){[e,n]=l[n]>l[e]?[e,n]:[n,e];const u={..."numeric"===t.dateStyle?a:r,...i},c=t.fractionalSecondDigits,g={...o,fractionalSecondDigits:void 0===c?void 0:Math.floor(Math.min(Math.max(1,c),3)),timeZone:t.timeZone,weekday:t.weekday?s.weekday:void 0,timeZoneName:t.timeZoneName?s.timeZoneName:void 0};return Object.keys(u).forEach((t=>{l[t]>=l[e]&&l[t]<=l[n]&&(g[t]=u[t])})),g}(t,u,c),d=new Intl.DateTimeFormat(n,g),m=new Date(e);return d.format(m)}},87896:(e,n,t)=>{"use strict";t.d(n,{createReactRoot:()=>g});var o=t(50959),r=t(32227),a=t(4237);const i=(0,o.createContext)({isOnMobileAppPage:()=>!1,isRtl:!1,locale:"en",renderMode:"legacy"});var s=t(84015),l=t(24640);const u={iOs:"old",android:"new",old:"old",new:"new",any:"any"};function c(e){const[n]=(0,o.useState)({isOnMobileAppPage:e=>(0,s.isOnMobileAppPage)(u[e]),isRtl:(0,l.isRtl)(),locale:window.locale,renderMode:e.renderMode??"legacy"});return o.createElement(i.Provider,{value:n},e.children)}function g(e,n,t="legacy"){const i=o.createElement(c,{renderMode:t},e);if("modern"===t){const e=(0,a.createRoot)(n);return e.render(i),{render(n){e.render(o.createElement(c,{renderMode:t},n))},unmount(){e.unmount()}}}return r.render(i,n),{render(e){r.render(o.createElement(c,{renderMode:t},e),n)},unmount(){r.unmountComponentAtNode(n)}}}},48126:(e,n,t)=>{"use strict";t.d(n,{getLocaleIso:()=>i});var o=t(50151)
;const r=JSON.parse('{"en":{"language":"en","language_name":"English","flag":"us","geoip_code":"us","iso":"en","iso_639_3":"eng","global_name":"English","is_only_recommended_tw_autorepost":true},"in":{"language":"en","language_name":"English (India)","flag":"in","geoip_code":"in","iso":"en","iso_639_3":"eng","global_name":"Indian"},"de_DE":{"language":"de","language_name":"Deutsch","flag":"de","geoip_code":"de","countries_with_this_language":["at","ch"],"iso":"de","iso_639_3":"deu","global_name":"German","is_in_european_union":true},"fr":{"language":"fr","language_name":"Français","flag":"fr","geoip_code":"fr","iso":"fr","iso_639_3":"fra","global_name":"French","is_in_european_union":true},"ca_ES":{"language":"ca_ES","language_name":"Català","flag":"es","geoip_code":"es","iso":"ca","iso_639_3":"cat","global_name":"Catalan"},"es":{"language":"es","language_name":"Español","flag":"es","geoip_code":"es","countries_with_this_language":["mx","ar","ve","cl","co","pe","uy","py","cr","gt","c","bo","pa","pr"],"iso":"es","iso_639_3":"spa","global_name":"Spanish","is_in_european_union":true},"it":{"language":"it","language_name":"Italiano","flag":"it","geoip_code":"it","iso":"it","iso_639_3":"ita","global_name":"Italian","is_in_european_union":true},"pl":{"language":"pl","language_name":"Polski","flag":"pl","geoip_code":"pl","iso":"pl","iso_639_3":"pol","global_name":"Polish","is_in_european_union":true},"hu_HU":{"language":"hu_HU","language_name":"Magyar","flag":"hu","geoip_code":"hu","iso":"hu","iso_639_3":"hun","global_name":"Hungarian","is_in_european_union":true},"sv_SE":{"language":"sv","language_name":"Svenska","flag":"se","geoip_code":"se","iso":"sv","iso_639_3":"swe","global_name":"Swedish","is_in_european_union":true},"tr":{"language":"tr","language_name":"Türkçe","flag":"tr","geoip_code":"tr","iso":"tr","iso_639_3":"tur","global_name":"Turkish","is_only_recommended_tw_autorepost":true},"ru":{"language":"ru","language_name":"Русский","flag":"ru","geoip_code":"ru","countries_with_this_language":["am","by","kg","kz","md","tj","tm","uz"],"iso":"ru","iso_639_3":"rus","global_name":"Russian","is_only_recommended_tw_autorepost":true},"br":{"language":"pt","language_name":"Português","flag":"br","geoip_code":"br","iso":"pt","iso_639_3":"por","global_name":"Portuguese"},"id":{"language":"id_ID","language_name":"Bahasa Indonesia","flag":"id","geoip_code":"id","iso":"id","iso_639_3":"ind","global_name":"Indonesian"},"ms_MY":{"language":"ms_MY","language_name":"Bahasa Melayu","flag":"my","geoip_code":"my","iso":"ms","iso_639_3":"zlm","global_name":"Malaysian"},"th_TH":{"language":"th","language_name":"ภาษาไทย","flag":"th","geoip_code":"th","iso":"th","iso_639_3":"tha","global_name":"Thai"},"vi_VN":{"language":"vi","language_name":"Tiếng Việt","flag":"vn","geoip_code":"vn","iso":"vi","iso_639_3":"vie","global_name":"Vietnamese"},"ja":{"language":"ja","language_name":"日本語","flag":"jp","geoip_code":"jp","iso":"ja","iso_639_3":"jpn","global_name":"Japanese"},"kr":{"language":"ko","language_name":"한국어","flag":"kr","geoip_code":"kr","iso":"ko","iso_639_3":"kor","global_name":"Korean"},"zh_CN":{"language":"zh","language_name":"简体中文","flag":"cn","geoip_code":"cn","countries_with_this_language":["zh"],"iso":"zh-Hans","iso_639_3":"cmn","global_name":"Chinese"},"zh_TW":{"language":"zh_TW","language_name":"繁體中文","flag":"tw","geoip_code":"tw","countries_with_this_language":["hk"],"iso":"zh-Hant","iso_639_3":"cmn","global_name":"Taiwanese"},"ar_AE":{"language":"ar","language_name":"العربية","flag":"sa","geoip_code":"sa","countries_with_this_language":["ae","bh","dj","dz","eg","er","iq","jo","km","kw","lb","ly","ma","mr","om","qa","sa","sd","so","sy","td","tn","ye"],"dir":"rtl","iso":"ar","iso_639_3":"arb","global_name":"Arabic"},"he_IL":{"language":"he_IL","language_name":"עברית","flag":"il","geoip_code":"il","dir":"rtl","iso":"he","iso_639_3":"heb","global_name":"Israeli"}}'),a=function(){
const e=document.querySelectorAll("link[rel~=link-locale][data-locale]");if(0===e.length)return r;const n={};return e.forEach((e=>{const t=(0,o.ensureNotNull)(e.getAttribute("data-locale"));n[t]={...r[t],href:e.href}})),n}();function i(e){return e=e||window.locale,a[e]?.iso}},3085:(e,n,t)=>{"use strict";t.d(n,{OverlayScrollContainer:()=>p});var o=t(50959),r=t(97754),a=t.n(r),i=t(24640),s=t(50151),l=t(77914);const u=t(67701);var c;!function(e){e[e.Vertical=0]="Vertical",e[e.Horizontal=1]="Horizontal",e[e.HorizontalRtl=2]="HorizontalRtl"}(c||(c={}));const g={0:{isHorizontal:!1,isNegative:!1,sizePropName:"height",minSizePropName:"minHeight",startPointPropName:"top",currentMousePointPropName:"clientY",progressBarTransform:"translateY"},1:{isHorizontal:!0,isNegative:!1,sizePropName:"width",minSizePropName:"minWidth",startPointPropName:"left",currentMousePointPropName:"clientX",progressBarTransform:"translateX"},2:{isHorizontal:!0,isNegative:!0,sizePropName:"width",minSizePropName:"minWidth",startPointPropName:"right",currentMousePointPropName:"clientX",progressBarTransform:"translateX"}},d=40;function m(e){const{size:n,scrollSize:t,clientSize:r,scrollProgress:i,onScrollProgressChange:c,scrollMode:m,theme:h=u,onDragStart:f,onDragEnd:_,minBarSize:p=d}=e,b=(0,o.useRef)(null),v=(0,o.useRef)(null),[N,P]=(0,o.useState)(!1),R=(0,o.useRef)(0),{isHorizontal:z,isNegative:w,sizePropName:y,minSizePropName:D,startPointPropName:S,currentMousePointPropName:W,progressBarTransform:E}=g[m];(0,o.useEffect)((()=>{const e=(0,s.ensureNotNull)(b.current).ownerDocument;return N?(f&&f(),e&&(e.addEventListener("mousemove",B),e.addEventListener("mouseup",H))):_&&_(),()=>{e&&(e.removeEventListener("mousemove",B),e.removeEventListener("mouseup",H))}}),[N]);const C=n/t||0,k=r*C||0,M=Math.max(k,p),Z=(n-M)/(n-k),j=t-n,L=w?-j:0,T=w?0:j,x=O((0,l.clamp)(i,L,T))||0;return o.createElement("div",{ref:b,className:a()(h.wrap,z&&h["wrap--horizontal"]),style:{[y]:n},onMouseDown:function(e){if(e.isDefaultPrevented())return;e.preventDefault();const n=I(e.nativeEvent,(0,s.ensureNotNull)(b.current)),t=Math.sign(n),o=(0,s.ensureNotNull)(v.current).getBoundingClientRect();R.current=t*o[y]/2;let r=Math.abs(n)-Math.abs(R.current);const a=O(j);r<0?(r=0,R.current=n):r>a&&(r=a,R.current=n-t*a);c(V(t*r)),P(!0)}},o.createElement("div",{ref:v,className:a()(h.bar,z&&h["bar--horizontal"]),style:{[D]:p,[y]:M,transform:`${E}(${x}px)`},onMouseDown:function(e){e.preventDefault(),R.current=I(e.nativeEvent,(0,s.ensureNotNull)(v.current)),P(!0)}},o.createElement("div",{className:a()(h.barInner,z&&h["barInner--horizontal"])})));function B(e){const n=I(e,(0,s.ensureNotNull)(b.current))-R.current;c(V(n))}function H(){P(!1)}function I(e,n){const t=n.getBoundingClientRect()[S];return e[W]-t}function O(e){return e*C*Z}function V(e){return e/C/Z}}var h=t(70412),f=t(90871);const _=8;function p(e){
const{reference:n,className:t,containerHeight:a=0,containerWidth:s=0,contentHeight:l=0,contentWidth:u=0,scrollPosTop:c=0,scrollPosLeft:g=0,onVerticalChange:d,onHorizontalChange:p,visible:b}=e,[v,N]=(0,h.useHoverDeprecated)(),[P,R]=(0,o.useState)(!1),z=a<l,w=s<u,y=z&&w?_:0;return o.createElement("div",{...N,ref:n,className:r(t,f.scrollWrap),style:{visibility:b||v||P?"visible":"hidden"}},z&&o.createElement(m,{size:a-y,scrollSize:l-y,clientSize:a-y,scrollProgress:c,onScrollProgressChange:function(e){d&&d(e)},onDragStart:D,onDragEnd:S,scrollMode:0}),w&&o.createElement(m,{size:s-y,scrollSize:u-y,clientSize:s-y,scrollProgress:g,onScrollProgressChange:function(e){p&&p(e)},onDragStart:D,onDragEnd:S,scrollMode:(0,i.isRtl)()?2:1}));function D(){R(!0)}function S(){R(!1)}}},898:(e,n,t)=>{"use strict";t.d(n,{useDimensions:()=>a});var o=t(50959),r=t(67842);function a(e){const[n,t]=(0,o.useState)(null),a=(0,o.useCallback)((([e])=>{const o=e.target.getBoundingClientRect();o.width===n?.width&&o.height===n.height||t(o)}),[n]);return[(0,r.useResizeObserver)({callback:a,ref:e}),n]}},33127:(e,n,t)=>{"use strict";t.d(n,{useOverlayScroll:()=>l});var o=t(50959),r=t(50151),a=t(70412),i=t(49483);const s={onMouseEnter:()=>{},onMouseLeave:()=>{}};function l(e,n=i.CheckMobile.any()){const t=(0,o.useRef)(null),l=e||(0,o.useRef)(null),[u,c]=(0,a.useHover)(),[g,d]=(0,o.useState)({reference:t,containerHeight:0,containerWidth:0,contentHeight:0,contentWidth:0,scrollPosTop:0,scrollPosLeft:0,onVerticalChange:function(e){d((n=>({...n,scrollPosTop:e}))),(0,r.ensureNotNull)(l.current).scrollTop=e},onHorizontalChange:function(e){d((n=>({...n,scrollPosLeft:e}))),(0,r.ensureNotNull)(l.current).scrollLeft=e},visible:u}),m=(0,o.useCallback)((()=>{if(!l.current)return;const{clientHeight:e,scrollHeight:n,scrollTop:o,clientWidth:r,scrollWidth:a,scrollLeft:i}=l.current,s=t.current?t.current.offsetTop:0;d((t=>({...t,containerHeight:e-s,contentHeight:n-s,scrollPosTop:o,containerWidth:r,contentWidth:a,scrollPosLeft:i})))}),[]);function h(){d((e=>({...e,scrollPosTop:(0,r.ensureNotNull)(l.current).scrollTop,scrollPosLeft:(0,r.ensureNotNull)(l.current).scrollLeft})))}return(0,o.useEffect)((()=>{u&&m(),d((e=>({...e,visible:u})))}),[u]),(0,o.useEffect)((()=>{const e=l.current;return e&&e.addEventListener("scroll",h),()=>{e&&e.removeEventListener("scroll",h)}}),[l]),[g,n?s:c,l,m]}},77975:(e,n,t)=>{"use strict";t.d(n,{useWatchedValueReadonly:()=>r});var o=t(50959);const r=(e,n=!1,t=[])=>{const r="watchedValue"in e?e.watchedValue:void 0,a="defaultValue"in e?e.defaultValue:e.watchedValue.value(),[i,s]=(0,o.useState)(r?r.value():a);return(n?o.useLayoutEffect:o.useEffect)((()=>{if(r){s(r.value());const e=e=>s(e);return r.subscribe(e),()=>r.unsubscribe(e)}return()=>{}}),[r,...t]),i}}}]);