@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 3.5 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import r from"../../core/Evented.js";import i from"../../core/Identifiable.js";import s from"../../core/Logger.js";import{destroyMaybe as n}from"../../core/maybe.js";import l from"../../core/Promise.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as a}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as p}from"../../core/support/UpdatingHandles.js";import{validateScaleRange as d}from"../support/layerViewUtils.js";let u=class extends(i.IdentifiableMixin(l.EsriPromiseMixin(r.EventedMixin(t)))){get spatialReferenceSupported(){return!0}constructor(e){super(e),this._updatingHandles=new p,this.layer=null,this.parent=null}initialize(){this.when().catch((e=>{if("layerview:create-error"!==e.name){const t=this.layer&&this.layer.id||"no id",r=this.layer?.title||"no title";s.getLogger(this).error("#resolve()",`Failed to resolve layer view (layer title: '${r}', id: '${t}')`,e)}}))}destroy(){this._updatingHandles=n(this._updatingHandles)}get fullOpacity(){return(this.layer?.opacity??1)*(this.parent?.fullOpacity??1)}get suspended(){return this.destroyed||!this.canResume()}get suspendInfo(){return this.getSuspendInfo()}get legendEnabled(){return!this.suspended&&!0===this.layer?.legendEnabled}get updating(){return!(!this._updatingHandles?.updating&&!this.isUpdating())}get updatingProgress(){return this.updating?0:1}get updateSuspended(){return this.suspended}get visible(){return!0===this.layer?.visible}set visible(e){this._overrideIfSome("visible",e)}get visibleAtCurrentScale(){return!0}get visibleAtCurrentTimeExtent(){const e=this.view.timeExtent,t=this.layer?.visibilityTimeExtent;return!e||!t||!e.intersection(t).isEmpty}canResume(){const e=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;return this.visible&&this.layer?.loaded&&this.parent&&!this.parent.suspended&&this.view?.ready&&d(e)&&this.visibleAtCurrentScale&&this.visibleAtCurrentTimeExtent||!1}getSuspendInfo(){const e=this.parent?.suspended?this.parent.suspendInfo:{},t=this;t.view?.ready||(e.viewNotReady=!0),this.layer&&this.layer.loaded||(e.layerNotLoaded=!0);const r=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;return d(r)&&this.visibleAtCurrentScale||(e.outsideScaleRange=!0),this.visibleAtCurrentTimeExtent||(e.outsideVisibilityTimeExtent=!0),this.visible||(e.layerInvisible=!0),e}isUpdating(){return!1}};e([o({readOnly:!0})],u.prototype,"spatialReferenceSupported",null),e([o()],u.prototype,"view",void 0),e([o()],u.prototype,"fullOpacity",null),e([o()],u.prototype,"layer",void 0),e([o()],u.prototype,"parent",void 0),e([o({readOnly:!0})],u.prototype,"suspended",null),e([o({readOnly:!0})],u.prototype,"suspendInfo",null),e([o({readOnly:!0})],u.prototype,"legendEnabled",null),e([o({type:Boolean,readOnly:!0})],u.prototype,"updating",null),e([o({readOnly:!0})],u.prototype,"updatingProgress",null),e([o()],u.prototype,"updateSuspended",null),e([o()],u.prototype,"visible",null),e([o({readOnly:!0})],u.prototype,"visibleAtCurrentScale",null),e([o({readOnly:!0})],u.prototype,"visibleAtCurrentTimeExtent",null),u=e([a("esri.views.layers.LayerView")],u);export{u as default};