Release v31.0.0 (from 028f81fbf6fef55e9694e5df4bd5106cc04c188a)

This commit is contained in:
jenkins
2026-03-05 21:03:46 +00:00
committed by Edward Dewhurst
parent 6fe5436603
commit c8eebb69a4
3622 changed files with 7663 additions and 6956 deletions

View File

@@ -0,0 +1,2 @@
"use strict";(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[2186],{23957:(e,t,i)=>{var s,r;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={}))},24717:(e,t,i)=>{i.r(t),i.d(t,{LineToolPrediction:()=>u});var s=i(85842),r=i(93445),n=i(22384),a=i(82014),o=i(23957);class u extends a.LineDataSource{constructor(e,t,s,r){super(e,t??u.createProperties(e.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(8263),i.e(144),i.e(4073),i.e(1912),i.e(1495)]).then(i.bind(i,78320)).then((t=>{this._predictionPaneView=new t.PredictionPaneView(this,e),this._setPaneViews([this._predictionPaneView])}))}destroy(){const e=this._model.mainSeries();e.properties().childs().interval.unsubscribeAll(this),e.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(e){return this._properties.childs().status.setValue(e)}pointsCount(){return 2}name(){return"Forecast"}restorePoints(e,t,i){super.restorePoints(e,t,i),this.recalculateStateByData()}recalculateStateByData(){if(this.isSourceHidden())return;if(this._points.length<2)return;if(this._model.mainSeries().bars().isEmpty())return;const e=this._points[1];if(this.status())return void(e.index>this._model.timeScale().baseIndex()&&this.setStatus(o.AlertStatus.Waiting));const t=this._model.mainSeries().bars().valueAt(e.index);if(null===t)return;const i=this.direction();if(i===o.Direction.Up&&(0,s.ensure)(t[2])>=e.price)this.setStatus(o.AlertStatus.Success);else if(i===o.Direction.Down&&(0,s.ensure)(t[3])<=e.price)this.setStatus(o.AlertStatus.Success);else{const t=(0,s.ensureNotNull)(this._model.mainSeries().bars().lastIndex());e.index!==t&&this.setStatus(o.AlertStatus.Failure)}}addPoint(e,t,i){const s=super.addPoint(e,t,i);return s&&this.recalculateStateByData(),s}endChanging(e,t){const i=super.endChanging(e,t);return this.setStatus(o.AlertStatus.Waiting),this.recalculateStateByData(),i}onData(e){super.onData(e),this.recalculateStateByData()}endMoving(e,t,i){const s=super.endMoving(e,t,i);return this.setStatus(o.AlertStatus.Waiting),this.recalculateStateByData(),s}direction(){if(this._points.length<2)return o.Direction.Up;const e=this._points[0];return this._points[1].price>e.price?o.Direction.Up:o.Direction.Down}static createProperties(e,t){const i=new r.DefaultProperty({defaultName:"linetoolprediction",state:t,theme:e});return this._configureProperties(i),i}_ignoreSourceEvent(e){return super._ignoreSourceEvent(e)&&e.sourceId!==this._model.mainSeries().id()}
_getPropertyDefinitionsViewModelClass(){return Promise.all([i.e(1982),i.e(7686),i.e(2428),i.e(3920),i.e(9328)]).then(i.bind(i,36067)).then((e=>e.PredictionDefinitionsViewModel))}static _configureProperties(e){super._configureProperties(e),e.hasChild("status")||e.addChild("status",new n.Property(o.AlertStatus.Waiting))}}}}]);