@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.99 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{property as l}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import t from"./BuildingNumericFilterViewModel.js";import{findFieldInfoByModelName as r}from"./support/buildingLayerUtils.js";import{getValueFromFilters as i}from"./support/filterUtils.js";import{getDomainInfo as o}from"./support/validation.js";const a="bldglevel";let n=class extends t{constructor(e){super(e),this._levelFieldName=null,this._parseValueFromFilter=e=>{const l=new RegExp(`${this._levelFieldName}\\s*=\\s*(\\d+)`,"gi"),s=new RegExp(`${this._levelFieldName}\\s*<\\s*(\\d+)`,"gi");for(const{filterMode:t,filterExpression:r}of e.filterBlocks?.items??[]){if(null==r)continue;let e=null;if("solid"===t.type?e=l.exec(r):"x-ray"===t.type&&(e=s.exec(r)),e)return parseInt(e[1],10)}return null}}get filterExpressions(){return this.enabled&&this._levelFieldName?{xRay:`${this._levelFieldName} < ${this.value}`,solid:`${this._levelFieldName} = ${this.value}`}:{solid:null,xRay:null}}get _firstValue(){const e=this.allowedValues;return e.length>0?e[0]:0}_setup(){const e=[];this.layers.forEach((l=>{const s=r(l,a);null!=s&&(this._levelFieldName=s.fieldName,e.push(s))})),this._domainInfo=o(e);const l=this._valueBeforeReady;this._set("state","ready"),this._valueBeforeReady=null;const s=l??i(this.layers,this._parseValueFromFilter);null!=s?this.select(s):(this.enabled=!1,this.value=this._firstValue)}};e([l({readOnly:!0})],n.prototype,"filterExpressions",null),e([l()],n.prototype,"_levelFieldName",void 0),e([l({readOnly:!0})],n.prototype,"_firstValue",null),n=e([s("esri.widgets.BuildingExplorer.BuildingLevel")],n);const u=n;export{u as default};