@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.97 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 r from"../../../../core/Accessor.js";import{AsyncUpdateMixin as s}from"../../../../core/AsyncUpdate.js";import t from"../../../../core/Logger.js";import{property as i}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/RandomLCG.js";import{subclass as o}from"../../../../core/accessorSupport/decorators/subclass.js";import{fixFields as l,collectLabelingFields as d,collectFilterFields as n}from"../../../../layers/support/fieldUtils.js";let a=class extends(s(r)){get layer(){return this.layerView.layer}get requiredFields(){const{layerView:{layer:{fieldsIndex:e},definitionExpressionFields:r},rendererFields:s,labelingFields:t,viewFilterFields:i}=this;return l(e,[...r??[],...s??[],...t??[],...i??[]])}constructor(e){super(e)}initialize(){this.addHandles([this.autoUpdateAsync("rendererFields",(async()=>{const{fieldsIndex:e,renderer:r}=this.layer;return r?this._getFieldsAsync((s=>r.collectRequiredFields(s,e))):null})),this.autoUpdateAsync("labelingFields",(async()=>{const{layer:e}=this;return e.labelsVisible?this._getFieldsAsync((r=>d(r,e))):null})),this.autoUpdateAsync("viewFilterFields",(()=>{const{layer:e,mergedFilter:r}=this.layerView;return this._getFieldsAsync((s=>n(s,e,r)))}))])}async _getFieldsAsync(e){const r=new Set;try{return await e(r),Array.from(r).sort()}catch(s){return t.getLogger(this).error(s),null}}};e([i()],a.prototype,"layerView",void 0),e([i()],a.prototype,"layer",null),e([i()],a.prototype,"requiredFields",null),e([i()],a.prototype,"rendererFields",void 0),e([i()],a.prototype,"labelingFields",void 0),e([i()],a.prototype,"viewFilterFields",void 0),a=e([o("esri.views.3d.layers.support.SceneLayerViewRequiredFields")],a);export{a as SceneLayerViewRequiredFields};