// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("../../chunks/tslib.es6 ../../core/Error ../../core/has ../../core/Logger ../../core/promiseUtils ../../core/reactiveUtils ../../core/accessorSupport/decorators/property ../../core/RandomLCG ../../core/accessorSupport/decorators/subclass ../../layers/support/FeatureEffect ../../layers/support/FeatureFilter ../../layers/support/fieldUtils ../../layers/support/floorFilterUtils ../../rest/support/Query ../../support/arcadeOnDemand ./support/popupUtils".split(" "),function(m,u,F,v,w,q,n,G,A,B, C,f,x,y,D,r){return k=>{k=class extends k{constructor(...a){super(...a);this._updatingRequiredFieldsPromise=null;this.dataUpdating=!1;this.layer=this.filter=null;this.requiredFields=[];this.view=null}initialize(){this.addHandles([q.watch(()=>{const a=this.layer;return[a&&"elevationInfo"in a?a.elevationInfo?.featureExpressionInfo:null,a&&"displayField"in a?a.displayField:null,a&&"timeInfo"in a&&a.timeInfo,a&&"renderer"in a&&a.renderer,a&&"labelingInfo"in a&&a.labelingInfo,a&&"floorInfo"in a&&a.floorInfo, this.filter,this.featureEffect,this.timeExtent]},()=>this._handleRequiredFieldsChange(),q.syncAndInitial),q.on(()=>this.view?.floors,"change",()=>this._handleRequiredFieldsChange()),q.on(()=>{const a=this.layer;return a&&"sublayers"in a?a.sublayers:null},"change",()=>this._handleRequiredFieldsChange())])}get availableFields(){if(!this.layer)return[];const {layer:a,layer:{fieldsIndex:b},requiredFields:c}=this;return"outFields"in a&&a.outFields?f.fixFields(b,[...f.unpackFieldNames(b,a.outFields),...c]): f.fixFields(b,c)}get featureEffect(){return this.layer&&"featureEffect"in this.layer?this.layer.featureEffect:null}set featureEffect(a){this._override("featureEffect",a)}get maximumNumberOfFeatures(){return 0}set maximumNumberOfFeatures(a){v.getLogger(this).error("#maximumNumberOfFeatures\x3d","Setting maximum number of features is not supported")}get maximumNumberOfFeaturesExceeded(){return!1}highlight(a){throw Error("missing implementation");}createQuery(){var a={outFields:["*"],returnGeometry:!0, outSpatialReference:this.view.spatialReference};a=null!=this.filter?this.filter.createQuery(a):new y(a);if("floorInfo"in this.layer&&this.layer.floorInfo){const b=x.getFloorFilterClause(this);null!=b&&(a.where=a.where?`(${a.where}) AND (${b})`:b)}null!=this.timeExtent&&(a.timeExtent=null!=a.timeExtent?a.timeExtent.intersection(this.timeExtent):this.timeExtent.clone());return a}createAggregateQuery(){return new y({outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference})}queryFeatures(a, b){throw Error("missing implementation");}queryObjectIds(a,b){throw Error("missing implementation");}queryFeatureCount(a,b){throw Error("missing implementation");}queryExtent(a,b){throw Error("missing implementation");}async fetchPopupFeaturesFromGraphics(a,b){this._validateFetchPopupFeatures(a,b);return this._fetchPopupFeatures(a,b)}_loadArcadeModules(a){return a.expressionInfos?.length||Array.isArray(a.content)&&a.content.some(b=>"expression"===b.type)?D.loadArcade():Promise.resolve()}_handleRequiredFieldsChange(){const a= this._updateRequiredFields();this._set("_updatingRequiredFieldsPromise",a);a.then(()=>{this._updatingRequiredFieldsPromise===a&&this._set("_updatingRequiredFieldsPromise",null)})}async _updateRequiredFields(){if(this.layer&&this.view){var a="3d"===this.view.type,{layer:b,layer:{fieldsIndex:c,objectIdField:l}}=this,g="renderer"in b&&b.renderer,e="orderBy"in b&&b.orderBy,h="featureReduction"in b?b.featureReduction:null,d=new Set;g=await Promise.allSettled([g?g.collectRequiredFields(d,c):null,f.collectLabelingFields(d, b),a&&"elevationInfo"in b?f.collectElevationFields(d,b):null,null!=this.filter?f.collectFilterFields(d,b,this.filter):null,a||null==this.featureEffect?null:f.collectFilterFields(d,b,this.featureEffect.filter),!a&&h?f.collectFeatureReductionFields(d,b,h):null,!a&&e?f.collectOrderByInfos(d,b,e):null]);"timeInfo"in b&&b.timeInfo&&this.timeExtent&&f.collectFields(d,b.fieldsIndex,[b.timeInfo.startField,b.timeInfo.endField]);"floorInfo"in b&&b.floorInfo&&f.collectFields(d,b.fieldsIndex,[b.floorInfo.floorField]); "feature"===b.type&&a&&null!=b.infoFor3D&&(null==b.globalIdField&&v.getLogger(this).error("globalIdField missing on 3DObjectFeatureLayer"),f.collectFields(d,b.fieldsIndex,[b.globalIdField]));"subtype-group"===b.type&&(f.collectField(d,c,b.subtypeField),e=b.sublayers.map(p=>Promise.all([p.renderer?.collectRequiredFields(d,c),f.collectLabelingFields(d,p)])),await Promise.allSettled(e));"catalog-footprint"===b.type&&b.parent&&(e=b.parent,f.collectFields(d,c,[e.itemNameField,e.itemSourceField,e.itemTypeField, e.maxScaleField,e.minScaleField]));for(const p of g)"rejected"===p.status&&v.getLogger(this).error(p.reason);f.collectField(d,c,l);a&&"displayField"in b&&b.displayField&&f.collectField(d,c,b.displayField);a=Array.from(d).sort();this._set("requiredFields",a)}}_validateFetchPopupFeatures(a,b){if(null!=b)for(const c of a){a=c.origin&&"layer"in c.origin?c.origin.layer:c.layer;if("popupEnabled"in a&&!a.popupEnabled)throw new u("featurelayerview:fetchPopupFeatures","Popups are disabled",{layer:a});if(c.isAggregate){const l= "featureReduction"in a?a.featureReduction:null;if(!(l&&"popupTemplate"in l&&l.popupEnabled&&l.popupTemplate))throw new u("featurelayerview:fetchPopupFeatures","Popups are disabled",{layer:a});}else if("popupTemplate"in a&&!r.getFetchPopupTemplate(a,b))throw new u("featurelayerview:fetchPopupFeatures","Layer does not define a popup template",{layer:a});}}_popupFeatureHasRequiredFields(a,b){return f.featureHasFields(b,a)}async _fetchPopupFeatures(a,b){const c=Array(a.length),l=new Map,g=await this._createPopupQuery(a.map(h=> h.origin?.layer??h.layer),b);for(let h=0;h