UNPKG

@arcgis/map-components

Version:
4 lines 5.82 kB
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. v4.33.13 */ import a from"./4RFCEGOP.js";import{a as l,b as y}from"./KW27SA4Q.js";export default $arcgis.t(([{forceInteractive:V},m,{property:a,subclass:g},{ignoreAbortErrors:A},{when:f,watch:u,on:O,whenOnce:U},{a:w,b:_,c:d,d:p}])=>{var b=Object.defineProperty,F=Object.getOwnPropertyDescriptor,i=(s,t,n,r)=>{for(var o=r>1?void 0:r?F(t,n):t,c=s.length-1,h;c>=0;c--)(h=s[c])&&(o=(r?h(t,n,o):h(o))||o);return r&&o&&b(t,n,o),o},e=class extends m{constructor(){super({}),this._ownsAnalysis=!1,this._operationState="inactive",this._loggedUnsupportedErrorMessage=!1,this._changeFromReconnect=!1,this._startUserOperation=null}initialize(){this._set("analysis",this.constructAnalysis()),this._ownsAnalysis=!0;let s=()=>{!this._changeFromReconnect&&!this._viewHasAnalysis&&(this._ownsAnalysis=!1);let t=!this._changeFromReconnect;this._changeFromReconnect=!1,t&&this._scheduleViewReconnect()};this.addHandles([f(()=>this.view!=null&&this.view.ready&&!this.supported,()=>{this._loggedUnsupportedErrorMessage||console.error(this.unsupportedErrorMessage)},{sync:!0,initial:!0}),u(()=>[this.analysis,this._viewHasAnalysis],s,{sync:!0}),O(()=>this.view,"analysis-view-destroy",t=>{t.analysis===this.analysis&&s()}),u(()=>({view:this.view,ready:!!this.view?.ready,supported:this.supported}),({view:t},n)=>{let r=n?.view;t!==r&&(this._startUserOperation=l(this._startUserOperation),this._disconnectFromView(r)),this._scheduleViewReconnect()},{sync:!0,initial:!0})])}destroy(){this._reconnectViewTask=l(this._reconnectViewTask),this._startUserOperation=l(this._startUserOperation),this._analysisView!=null&&(this._analysisView.visible=void 0),this._disconnectFromView(this.view),this._set("view",null),this._ownsAnalysis&&this.analysis?.destroy()}get supported(){return this.view==null||this.view.type===this.supportedViewType}set visible(s){this._set("visible",s),this._analysisView!=null&&(this._analysisView.visible=s)}get active(){return this._startUserOperation?.state===2}get disabled(){return this.view==null||!this.view.ready||!this.supported}set analysis(s){s!==this._get("analysis")&&(this._startUserOperation=l(this._startUserOperation),this._disconnectFromView(this.view),this._setExternalAnalysis(s),this._scheduleViewReconnect())}get analysisView(){return this._analysisView}get ready(){return this._analysisView!=null&&!this.connectingToView}get connectingToView(){return this._reconnectViewTask!=null}get _viewHasAnalysis(){let{view:s}=this;return s?.analyses.includes(this.analysis)===!0}get operationState(){return this._operationState}clear(){this.clearAnalysis(),this._startUserOperation=l(this._startUserOperation)}async start(s){if(!this.visible){console.warn("Cannot start analysis when not visible");return}let t={task:null,abort:null,state:0},n=p(async r=>{if(t.state=1,await U(()=>this.ready,r),t.state=2,this._analysisView==null||this.view==null)return;this._operationState="active";let o=s?.({signal:r})??this.place({signal:r});await A(o)});return n.promise.finally(()=>{(this._startUserOperation===t||this._startUserOperation==null)&&(this._operationState="inactive")}),t.task=n,t.abort=()=>n.abort(),this._startUserOperation=t,await n.promise}async startNewAnalysis(){this.clear(),await this.start()}async continue(){await this.start()}stop(){this._startUserOperation=l(this._startUserOperation)}onConnectToAnalysisView(s){}onDisconnectFromAnalysisView(){}_scheduleViewReconnect(){this._reconnectViewTask=l(this._reconnectViewTask);let s=p(async t=>{try{await this._reconnectView(t)}catch(n){if(w(t),!d(n)){console.warn("Failed to use analysis in view model",n);return}throw n}finally{s===this._reconnectViewTask&&(this._reconnectViewTask=void 0)}});this._reconnectViewTask=s}async _reconnectView(s){let{view:t}=this,n=t!=null&&t.ready&&this.supported,r=this.analysis;if(this._startUserOperation=v(this._startUserOperation),this._disconnectFromView(t),!n||t==null||r==null)return;this._ownsAnalysis&&(this._changeFromReconnect=!0,t.analyses.add(r));let o=await t.whenAnalysisView(r);if(this._analysisView=o,_(s)){this._startUserOperation=v(this._startUserOperation);return}o.visible=this.visible,this._forceInteractiveHandle=V(o),this.addHandles(this._forceInteractiveHandle),this.onConnectToAnalysisView(o)}_disconnectFromView(s){s!=null&&this._ownsAnalysis&&s.analyses.includes(this.analysis)&&(this._changeFromReconnect=!0,this.analysis.clear(),s.analyses.remove(this.analysis)),this.onDisconnectFromAnalysisView(),this._forceInteractiveHandle=y(this._forceInteractiveHandle),this._analysisView=void 0}_setExternalAnalysis(s){this._analysisView!=null&&!this._ownsAnalysis&&(this._analysisView.visible=void 0,this._forceInteractiveHandle=y(this._forceInteractiveHandle)),this._analysisView=void 0,this._ownsAnalysis=!1,this._set("analysis",s),this._changeFromReconnect=!1}};i([a()],e.prototype,"supported",1);i([a()],e.prototype,"view",2);i([a({type:Boolean,value:!0})],e.prototype,"visible",1);i([a()],e.prototype,"active",1);i([a()],e.prototype,"disabled",1);i([a()],e.prototype,"analysis",1);i([a()],e.prototype,"_analysisView",2);i([a()],e.prototype,"analysisView",1);i([a()],e.prototype,"ready",1);i([a()],e.prototype,"connectingToView",1);i([a()],e.prototype,"_ownsAnalysis",2);i([a()],e.prototype,"_viewHasAnalysis",1);i([a()],e.prototype,"_reconnectViewTask",2);i([a()],e.prototype,"_forceInteractiveHandle",2);i([a()],e.prototype,"_operationState",2);i([a()],e.prototype,"operationState",1);e=i([g("esri.components.support.AnalysisViewModel")],e);function v(s){return s!=null&&s.state>=2?(s.abort(),null):s}return e},"applications/Components/analysisUtils","core/Accessor","core/accessorSupport/decorators","core/promiseUtils","core/reactiveUtils",a)