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,2 @@
"use strict";(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[9534],{77325:(t,e,i)=>{var s,r;i.d(e,{AlertStatus:()=>s,Direction:()=>r}),function(t){t[t.Waiting=0]="Waiting",t[t.Success=1]="Success",t[t.Failure=2]="Failure"}(s||(s={})),function(t){t[t.Up=1]="Up",t[t.Down=2]="Down"}(r||(r={}))},45372:(t,e,i)=>{i.r(e),i.d(e,{LineToolPrediction:()=>u});var s=i(50151),r=i(78176),n=i(43337),a=i(41414),o=i(77325);class u extends a.LineDataSource{constructor(t,e,s,r){super(t,e??u.createProperties(t.backgroundTheme().spawnOwnership()),s,r),this._predictionPaneView=null;const n=this._model.mainSeries();n.properties().childs().interval.subscribe(this,(()=>{this.setStatus(o.AlertStatus.Waiting)})),n.dataEvents().dataUpdated().subscribe(this,this.recalculateStateByData),Promise.all([i.e(6290),i.e(986),i.e(6668),i.e(1583)]).then(i.bind(i,55908)).then((e=>{this._predictionPaneView=new e.PredictionPaneView(this,t),this._setPaneViews([this._predictionPaneView])}))}destroy(){const t=this._model.mainSeries();t.properties().childs().interval.unsubscribeAll(this),t.dataEvents().dataUpdated().unsubscribeAll(this),super.destroy()}dataAndViewsReady(){return super.dataAndViewsReady()&&Boolean(this._predictionPaneView&&this._predictionPaneView.iconsReady())}cloneable(){return!1}isSynchronizable(){return!1}status(){return this._properties.childs().status.value()}setStatus(t){return this._properties.childs().status.setValue(t)}pointsCount(){return 2}name(){return"Forecast"}restorePoints(t,e,i){super.restorePoints(t,e,i),this.recalculateStateByData()}recalculateStateByData(){if(this.isSourceHidden())return;if(this._points.length<2)return;if(this._model.mainSeries().bars().isEmpty())return;const t=this._points[1];if(this.status())return void(t.index>this._model.timeScale().baseIndex()&&this.setStatus(o.AlertStatus.Waiting));const e=this._model.mainSeries().bars().valueAt(t.index);if(null===e)return;const i=this.direction();if(i===o.Direction.Up&&(0,s.ensure)(e[2])>=t.price)this.setStatus(o.AlertStatus.Success);else if(i===o.Direction.Down&&(0,s.ensure)(e[3])<=t.price)this.setStatus(o.AlertStatus.Success);else{const e=(0,s.ensureNotNull)(this._model.mainSeries().bars().lastIndex());t.index!==e&&this.setStatus(o.AlertStatus.Failure)}}addPoint(t,e,i){const s=super.addPoint(t,e,i);return s&&this.recalculateStateByData(),s}endChanging(t,e){const i=super.endChanging(t,e);return this.setStatus(o.AlertStatus.Waiting),this.recalculateStateByData(),i}onData(t){super.onData(t),this.recalculateStateByData()}endMoving(t,e,i){const s=super.endMoving(t,e,i);return this.setStatus(o.AlertStatus.Waiting),this.recalculateStateByData(),s}direction(){if(this._points.length<2)return o.Direction.Up;const t=this._points[0];return this._points[1].price>t.price?o.Direction.Up:o.Direction.Down}static createProperties(t,e){const i=new r.DefaultProperty({defaultName:"linetoolprediction",state:e,theme:t});return this._configureProperties(i),i}_ignoreSourceEvent(t){return super._ignoreSourceEvent(t)&&t.sourceId!==this._model.mainSeries().id()}
_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(3198),i.e(5410),i.e(2745),i.e(8823),i.e(8537)]).then(i.bind(i,24457)).then((t=>t.PredictionDefinitionsViewModel))}static _configureProperties(t){super._configureProperties(t),t.hasChild("status")||t.addChild("status",new n.Property(o.AlertStatus.Waiting))}}}}]);