ExpandViewModel.js 2.1 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import i from"../../core/Handles.js";import{on as s,when as o,pausable as a}from"../../core/reactiveUtils.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";let r=class extends t{constructor(e){super(e),this._viewpointHandle=null,this._handles=new i,this.group=null}initialize(){this._handles.add(s((()=>this.view?.ui),"expand",(e=>{const{target:t}=e;t&&t!==this&&t.expanded&&t.group&&t.group===this.group&&this._collapse()})))}destroy(){this._viewpointHandle=null,this.view=null,this._handles.destroy(),this._handles=null}set autoCollapse(e){this._set("autoCollapse",e),this._watchViewpoint()}set expanded(e){const t=!!e;this._set("expanded",t);const i=this.get("view.ui");i&&i.emit("expand",{target:this}),this._viewpointHandleChange(t)}get state(){return this.get("view.ready")?"ready":"disabled"}set view(e){this._get("view")!==e&&(this._set("view",e),e&&o((()=>e.ready),(()=>{this.view===e&&this._watchViewpoint()}),{once:!0,initial:!0}))}_viewpointHandleChange(e){this._viewpointHandle&&(e?o((()=>this.view.stationary),(()=>this._viewpointHandle.resume()),{once:!0,initial:!0}):this._viewpointHandle.pause())}_watchViewpoint(){const e="viewpoint";this._handles.remove(e),this._viewpointHandle=null;const{autoCollapse:t,view:i}=this;if(i&&t){const t=a((()=>"3d"===i.type?i.camera:i.viewpoint),(()=>this._collapse()));this._handles.add(t,e),this._viewpointHandle=t}}_collapse(){this.expanded=!1}};e([n({value:!1})],r.prototype,"autoCollapse",null),e([n({value:!1})],r.prototype,"expanded",null),e([n()],r.prototype,"group",void 0),e([n({readOnly:!0})],r.prototype,"state",null),e([n({value:null})],r.prototype,"view",null),r=e([l("esri.widgets.Expand.ExpandViewModel")],r);const p=r;export{p as default};